/*
Package uexampleoc is a generated package which contains definitions
of structs which represent a YANG schema. The generated schema can be
compressed by a series of transformations (compression was false
in this case).

NOTE WELL: This is an example code file that is distributed with ygot.
It should not be used within your application, as it WILL change,
without warning. Rather, you should generate structs directly from
OpenConfig models using the ygot package.

This package was generated by github.com/openconfig/ygot
using the following YANG input files:
  - public/release/models/system/openconfig-system.yang
  - public/release/models/platform/openconfig-platform.yang
  - public/release/models/optical-transport/openconfig-terminal-device.yang

Imported modules were sourced from:
  - public/...
  - deps/...
*/
package uexampleoc

import (
	"encoding/json"
	"fmt"
	"reflect"

	"github.com/openconfig/goyang/pkg/yang"
	"github.com/openconfig/ygot/ygot"
	"github.com/openconfig/ygot/ytypes"
)

// Binary is a type that is used for fields that have a YANG type of
// binary. It is used such that binary fields can be distinguished from
// leaf-lists of uint8s (which are mapped to []uint8, equivalent to
// []byte in reflection).
type Binary []byte

// YANGEmpty is a type that is used for fields that have a YANG type of
// empty. It is used such that empty fields can be distinguished from boolean fields
// in the generated code.
type YANGEmpty bool

// UnionInt8 is an int8 type assignable to unions of which it is a subtype.
type UnionInt8 int8

// UnionInt16 is an int16 type assignable to unions of which it is a subtype.
type UnionInt16 int16

// UnionInt32 is an int32 type assignable to unions of which it is a subtype.
type UnionInt32 int32

// UnionInt64 is an int64 type assignable to unions of which it is a subtype.
type UnionInt64 int64

// UnionUint8 is a uint8 type assignable to unions of which it is a subtype.
type UnionUint8 uint8

// UnionUint16 is a uint16 type assignable to unions of which it is a subtype.
type UnionUint16 uint16

// UnionUint32 is a uint32 type assignable to unions of which it is a subtype.
type UnionUint32 uint32

// UnionUint64 is a uint64 type assignable to unions of which it is a subtype.
type UnionUint64 uint64

// UnionFloat64 is a float64 type assignable to unions of which it is a subtype.
type UnionFloat64 float64

// UnionString is a string type assignable to unions of which it is a subtype.
type UnionString string

// UnionBool is a bool type assignable to unions of which it is a subtype.
type UnionBool bool

// UnionUnsupported is an interface{} wrapper type for unsupported types. It is
// assignable to unions of which it is a subtype.
type UnionUnsupported struct {
	Value interface{}
}

var (
	SchemaTree map[string]*yang.Entry
	ΛEnumTypes map[string][]reflect.Type
)

func init() {
	var err error
	initΛEnumTypes()
	if SchemaTree, err = UnzipSchema(); err != nil {
		panic("schema error: " + err.Error())
	}
}

// Schema returns the details of the generated schema.
func Schema() (*ytypes.Schema, error) {
	uzp, err := UnzipSchema()
	if err != nil {
		return nil, fmt.Errorf("cannot unzip schema, %v", err)
	}

	return &ytypes.Schema{
		Root:       &Device{},
		SchemaTree: uzp,
		Unmarshal:  Unmarshal,
	}, nil
}

// UnzipSchema unzips the zipped schema and returns a map of yang.Entry nodes,
// keyed by the name of the struct that the yang.Entry describes the schema for.
func UnzipSchema() (map[string]*yang.Entry, error) {
	var schemaTree map[string]*yang.Entry
	var err error
	if schemaTree, err = ygot.GzipToSchema(ySchema); err != nil {
		return nil, fmt.Errorf("could not unzip the schema; %v", err)
	}
	return schemaTree, nil
}

// Unmarshal unmarshals data, which must be RFC7951 JSON format, into
// destStruct, which must be non-nil and the correct GoStruct type. It returns
// an error if the destStruct is not found in the schema or the data cannot be
// unmarshaled. The supplied options (opts) are used to control the behaviour
// of the unmarshal function - for example, determining whether errors are
// thrown for unknown fields in the input JSON.
func Unmarshal(data []byte, destStruct ygot.GoStruct, opts ...ytypes.UnmarshalOpt) error {
	tn := reflect.TypeOf(destStruct).Elem().Name()
	schema, ok := SchemaTree[tn]
	if !ok {
		return fmt.Errorf("could not find schema for type %s", tn)
	}
	var jsonTree interface{}
	if err := json.Unmarshal([]byte(data), &jsonTree); err != nil {
		return err
	}
	return ytypes.Unmarshal(schema, destStruct, jsonTree, opts...)
}

// Device represents the /device YANG schema element.
type Device struct {
	ΛMetadata         []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	Acl               *OpenconfigAcl_Acl                          `path:"acl" module:"openconfig-acl"`
	ΛAcl              []ygot.Annotation                           `path:"@acl" ygotAnnotation:"true"`
	Bfd               *OpenconfigBfd_Bfd                          `path:"bfd" module:"openconfig-bfd"`
	ΛBfd              []ygot.Annotation                           `path:"@bfd" ygotAnnotation:"true"`
	Components        *OpenconfigPlatform_Components              `path:"components" module:"openconfig-platform"`
	ΛComponents       []ygot.Annotation                           `path:"@components" ygotAnnotation:"true"`
	DefinedSets       *OpenconfigDefinedSets_DefinedSets          `path:"defined-sets" module:"openconfig-defined-sets"`
	ΛDefinedSets      []ygot.Annotation                           `path:"@defined-sets" ygotAnnotation:"true"`
	Interfaces        *OpenconfigInterfaces_Interfaces            `path:"interfaces" module:"openconfig-interfaces"`
	ΛInterfaces       []ygot.Annotation                           `path:"@interfaces" ygotAnnotation:"true"`
	Keychains         *OpenconfigKeychain_Keychains               `path:"keychains" module:"openconfig-keychain"`
	ΛKeychains        []ygot.Annotation                           `path:"@keychains" ygotAnnotation:"true"`
	Lldp              *OpenconfigLldp_Lldp                        `path:"lldp" module:"openconfig-lldp"`
	ΛLldp             []ygot.Annotation                           `path:"@lldp" ygotAnnotation:"true"`
	Messages          *OpenconfigMessages_Messages                `path:"messages" module:"openconfig-messages"`
	ΛMessages         []ygot.Annotation                           `path:"@messages" ygotAnnotation:"true"`
	NetworkInstances  *OpenconfigNetworkInstance_NetworkInstances `path:"network-instances" module:"openconfig-network-instance"`
	ΛNetworkInstances []ygot.Annotation                           `path:"@network-instances" ygotAnnotation:"true"`
	RoutingPolicy     *OpenconfigRoutingPolicy_RoutingPolicy      `path:"routing-policy" module:"openconfig-routing-policy"`
	ΛRoutingPolicy    []ygot.Annotation                           `path:"@routing-policy" ygotAnnotation:"true"`
	System            *OpenconfigSystem_System                    `path:"system" module:"openconfig-system"`
	ΛSystem           []ygot.Annotation                           `path:"@system" ygotAnnotation:"true"`
	TerminalDevice    *OpenconfigTerminalDevice_TerminalDevice    `path:"terminal-device" module:"openconfig-terminal-device"`
	ΛTerminalDevice   []ygot.Annotation                           `path:"@terminal-device" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that Device implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*Device) IsYANGGoStruct() {}

// GetOrCreateAcl retrieves the value of the Acl field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateAcl() *OpenconfigAcl_Acl {
	if t.Acl != nil {
		return t.Acl
	}
	t.Acl = &OpenconfigAcl_Acl{}
	return t.Acl
}

// GetOrCreateBfd retrieves the value of the Bfd field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateBfd() *OpenconfigBfd_Bfd {
	if t.Bfd != nil {
		return t.Bfd
	}
	t.Bfd = &OpenconfigBfd_Bfd{}
	return t.Bfd
}

// GetOrCreateComponents retrieves the value of the Components field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateComponents() *OpenconfigPlatform_Components {
	if t.Components != nil {
		return t.Components
	}
	t.Components = &OpenconfigPlatform_Components{}
	return t.Components
}

// GetOrCreateDefinedSets retrieves the value of the DefinedSets field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateDefinedSets() *OpenconfigDefinedSets_DefinedSets {
	if t.DefinedSets != nil {
		return t.DefinedSets
	}
	t.DefinedSets = &OpenconfigDefinedSets_DefinedSets{}
	return t.DefinedSets
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateInterfaces() *OpenconfigInterfaces_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigInterfaces_Interfaces{}
	return t.Interfaces
}

// GetOrCreateKeychains retrieves the value of the Keychains field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateKeychains() *OpenconfigKeychain_Keychains {
	if t.Keychains != nil {
		return t.Keychains
	}
	t.Keychains = &OpenconfigKeychain_Keychains{}
	return t.Keychains
}

// GetOrCreateLldp retrieves the value of the Lldp field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateLldp() *OpenconfigLldp_Lldp {
	if t.Lldp != nil {
		return t.Lldp
	}
	t.Lldp = &OpenconfigLldp_Lldp{}
	return t.Lldp
}

// GetOrCreateMessages retrieves the value of the Messages field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateMessages() *OpenconfigMessages_Messages {
	if t.Messages != nil {
		return t.Messages
	}
	t.Messages = &OpenconfigMessages_Messages{}
	return t.Messages
}

// GetOrCreateNetworkInstances retrieves the value of the NetworkInstances field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateNetworkInstances() *OpenconfigNetworkInstance_NetworkInstances {
	if t.NetworkInstances != nil {
		return t.NetworkInstances
	}
	t.NetworkInstances = &OpenconfigNetworkInstance_NetworkInstances{}
	return t.NetworkInstances
}

// GetOrCreateRoutingPolicy retrieves the value of the RoutingPolicy field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateRoutingPolicy() *OpenconfigRoutingPolicy_RoutingPolicy {
	if t.RoutingPolicy != nil {
		return t.RoutingPolicy
	}
	t.RoutingPolicy = &OpenconfigRoutingPolicy_RoutingPolicy{}
	return t.RoutingPolicy
}

// GetOrCreateSystem retrieves the value of the System field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateSystem() *OpenconfigSystem_System {
	if t.System != nil {
		return t.System
	}
	t.System = &OpenconfigSystem_System{}
	return t.System
}

// GetOrCreateTerminalDevice retrieves the value of the TerminalDevice field
// or returns the existing field if it already exists.
func (t *Device) GetOrCreateTerminalDevice() *OpenconfigTerminalDevice_TerminalDevice {
	if t.TerminalDevice != nil {
		return t.TerminalDevice
	}
	t.TerminalDevice = &OpenconfigTerminalDevice_TerminalDevice{}
	return t.TerminalDevice
}

// GetAcl returns the value of the Acl struct pointer
// from Device. If the receiver or the field Acl is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetAcl() *OpenconfigAcl_Acl {
	if t != nil && t.Acl != nil {
		return t.Acl
	}
	return nil
}

// GetBfd returns the value of the Bfd struct pointer
// from Device. If the receiver or the field Bfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetBfd() *OpenconfigBfd_Bfd {
	if t != nil && t.Bfd != nil {
		return t.Bfd
	}
	return nil
}

// GetComponents returns the value of the Components struct pointer
// from Device. If the receiver or the field Components is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetComponents() *OpenconfigPlatform_Components {
	if t != nil && t.Components != nil {
		return t.Components
	}
	return nil
}

// GetDefinedSets returns the value of the DefinedSets struct pointer
// from Device. If the receiver or the field DefinedSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetDefinedSets() *OpenconfigDefinedSets_DefinedSets {
	if t != nil && t.DefinedSets != nil {
		return t.DefinedSets
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from Device. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetInterfaces() *OpenconfigInterfaces_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetKeychains returns the value of the Keychains struct pointer
// from Device. If the receiver or the field Keychains is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetKeychains() *OpenconfigKeychain_Keychains {
	if t != nil && t.Keychains != nil {
		return t.Keychains
	}
	return nil
}

// GetLldp returns the value of the Lldp struct pointer
// from Device. If the receiver or the field Lldp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetLldp() *OpenconfigLldp_Lldp {
	if t != nil && t.Lldp != nil {
		return t.Lldp
	}
	return nil
}

// GetMessages returns the value of the Messages struct pointer
// from Device. If the receiver or the field Messages is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetMessages() *OpenconfigMessages_Messages {
	if t != nil && t.Messages != nil {
		return t.Messages
	}
	return nil
}

// GetNetworkInstances returns the value of the NetworkInstances struct pointer
// from Device. If the receiver or the field NetworkInstances is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetNetworkInstances() *OpenconfigNetworkInstance_NetworkInstances {
	if t != nil && t.NetworkInstances != nil {
		return t.NetworkInstances
	}
	return nil
}

// GetRoutingPolicy returns the value of the RoutingPolicy struct pointer
// from Device. If the receiver or the field RoutingPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetRoutingPolicy() *OpenconfigRoutingPolicy_RoutingPolicy {
	if t != nil && t.RoutingPolicy != nil {
		return t.RoutingPolicy
	}
	return nil
}

// GetSystem returns the value of the System struct pointer
// from Device. If the receiver or the field System is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetSystem() *OpenconfigSystem_System {
	if t != nil && t.System != nil {
		return t.System
	}
	return nil
}

// GetTerminalDevice returns the value of the TerminalDevice struct pointer
// from Device. If the receiver or the field TerminalDevice is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *Device) GetTerminalDevice() *OpenconfigTerminalDevice_TerminalDevice {
	if t != nil && t.TerminalDevice != nil {
		return t.TerminalDevice
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the Device
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *Device) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Acl.PopulateDefaults()
	t.Bfd.PopulateDefaults()
	t.Components.PopulateDefaults()
	t.DefinedSets.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
	t.Keychains.PopulateDefaults()
	t.Lldp.PopulateDefaults()
	t.Messages.PopulateDefaults()
	t.NetworkInstances.PopulateDefaults()
	t.RoutingPolicy.PopulateDefaults()
	t.System.PopulateDefaults()
	t.TerminalDevice.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *Device) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["Device"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *Device) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *Device) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of Device.
func (*Device) ΛBelongingModule() string {
	return ""
}

// OpenconfigAcl_Acl represents the /openconfig-acl/acl YANG schema element.
type OpenconfigAcl_Acl struct {
	ΛMetadata   []ygot.Annotation             `path:"@" ygotAnnotation:"true"`
	AclSets     *OpenconfigAcl_Acl_AclSets    `path:"acl-sets" module:"openconfig-acl"`
	ΛAclSets    []ygot.Annotation             `path:"@acl-sets" ygotAnnotation:"true"`
	Config      *OpenconfigAcl_Acl_Config     `path:"config" module:"openconfig-acl"`
	ΛConfig     []ygot.Annotation             `path:"@config" ygotAnnotation:"true"`
	Interfaces  *OpenconfigAcl_Acl_Interfaces `path:"interfaces" module:"openconfig-acl"`
	ΛInterfaces []ygot.Annotation             `path:"@interfaces" ygotAnnotation:"true"`
	State       *OpenconfigAcl_Acl_State      `path:"state" module:"openconfig-acl"`
	ΛState      []ygot.Annotation             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl) IsYANGGoStruct() {}

// GetOrCreateAclSets retrieves the value of the AclSets field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl) GetOrCreateAclSets() *OpenconfigAcl_Acl_AclSets {
	if t.AclSets != nil {
		return t.AclSets
	}
	t.AclSets = &OpenconfigAcl_Acl_AclSets{}
	return t.AclSets
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl) GetOrCreateConfig() *OpenconfigAcl_Acl_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_Config{}
	return t.Config
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl) GetOrCreateInterfaces() *OpenconfigAcl_Acl_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigAcl_Acl_Interfaces{}
	return t.Interfaces
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl) GetOrCreateState() *OpenconfigAcl_Acl_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_State{}
	return t.State
}

// GetAclSets returns the value of the AclSets struct pointer
// from OpenconfigAcl_Acl. If the receiver or the field AclSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl) GetAclSets() *OpenconfigAcl_Acl_AclSets {
	if t != nil && t.AclSets != nil {
		return t.AclSets
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl) GetConfig() *OpenconfigAcl_Acl_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigAcl_Acl. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl) GetInterfaces() *OpenconfigAcl_Acl_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl) GetState() *OpenconfigAcl_Acl_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AclSets.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl.
func (*OpenconfigAcl_Acl) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets represents the /openconfig-acl/acl/acl-sets YANG schema element.
type OpenconfigAcl_Acl_AclSets struct {
	ΛMetadata []ygot.Annotation                                                          `path:"@" ygotAnnotation:"true"`
	AclSet    map[OpenconfigAcl_Acl_AclSets_AclSet_Key]*OpenconfigAcl_Acl_AclSets_AclSet `path:"acl-set" module:"openconfig-acl"`
	ΛAclSet   []ygot.Annotation                                                          `path:"@acl-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets) IsYANGGoStruct() {}

// OpenconfigAcl_Acl_AclSets_AclSet_Key represents the key for list AclSet of element /openconfig-acl/acl/acl-sets.
type OpenconfigAcl_Acl_AclSets_AclSet_Key struct {
	Name string                   `path:"name"`
	Type E_OpenconfigAcl_ACL_TYPE `path:"type"`
}

// IsYANGGoKeyStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigAcl_Acl_AclSets_AclSet_Key) IsYANGGoKeyStruct() {}

// ΛListKeyMap returns the values of the OpenconfigAcl_Acl_AclSets_AclSet_Key key struct.
func (t OpenconfigAcl_Acl_AclSets_AclSet_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"name": t.Name,
		"type": t.Type,
	}, nil
}

// NewAclSet creates a new entry in the AclSet list of the
// OpenconfigAcl_Acl_AclSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigAcl_Acl_AclSets) NewAclSet(Name string, Type E_OpenconfigAcl_ACL_TYPE) (*OpenconfigAcl_Acl_AclSets_AclSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclSet == nil {
		t.AclSet = make(map[OpenconfigAcl_Acl_AclSets_AclSet_Key]*OpenconfigAcl_Acl_AclSets_AclSet)
	}

	key := OpenconfigAcl_Acl_AclSets_AclSet_Key{
		Name: Name,
		Type: Type,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AclSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AclSet", key)
	}

	t.AclSet[key] = &OpenconfigAcl_Acl_AclSets_AclSet{
		Name: &Name,
		Type: Type,
	}

	return t.AclSet[key], nil
}

// RenameAclSet renames an entry in the list AclSet within
// the OpenconfigAcl_Acl_AclSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigAcl_Acl_AclSets) RenameAclSet(oldK, newK OpenconfigAcl_Acl_AclSets_AclSet_Key) error {
	if _, ok := t.AclSet[newK]; ok {
		return fmt.Errorf("key %v already exists in AclSet", newK)
	}

	e, ok := t.AclSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AclSet", oldK)
	}
	e.Name = &newK.Name
	e.Type = newK.Type

	t.AclSet[newK] = e
	delete(t.AclSet, oldK)
	return nil
}

// GetOrCreateAclSetMap returns the list (map) from OpenconfigAcl_Acl_AclSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigAcl_Acl_AclSets) GetOrCreateAclSetMap() map[OpenconfigAcl_Acl_AclSets_AclSet_Key]*OpenconfigAcl_Acl_AclSets_AclSet {
	if t.AclSet == nil {
		t.AclSet = make(map[OpenconfigAcl_Acl_AclSets_AclSet_Key]*OpenconfigAcl_Acl_AclSets_AclSet)
	}
	return t.AclSet
}

// GetOrCreateAclSet retrieves the value with the specified keys from
// the receiver OpenconfigAcl_Acl_AclSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigAcl_Acl_AclSets) GetOrCreateAclSet(Name string, Type E_OpenconfigAcl_ACL_TYPE) *OpenconfigAcl_Acl_AclSets_AclSet {

	key := OpenconfigAcl_Acl_AclSets_AclSet_Key{
		Name: Name,
		Type: Type,
	}

	if v, ok := t.AclSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAclSet(Name, Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAclSet got unexpected error: %v", err))
	}
	return v
}

// GetAclSet retrieves the value with the specified key from
// the AclSet map field of OpenconfigAcl_Acl_AclSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigAcl_Acl_AclSets) GetAclSet(Name string, Type E_OpenconfigAcl_ACL_TYPE) *OpenconfigAcl_Acl_AclSets_AclSet {

	if t == nil {
		return nil
	}

	key := OpenconfigAcl_Acl_AclSets_AclSet_Key{
		Name: Name,
		Type: Type,
	}

	if lm, ok := t.AclSet[key]; ok {
		return lm
	}
	return nil
}

// AppendAclSet appends the supplied OpenconfigAcl_Acl_AclSets_AclSet struct to the
// list AclSet of OpenconfigAcl_Acl_AclSets. If the key value(s) specified in
// the supplied OpenconfigAcl_Acl_AclSets_AclSet already exist in the list, an error is
// returned.
func (t *OpenconfigAcl_Acl_AclSets) AppendAclSet(v *OpenconfigAcl_Acl_AclSets_AclSet) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key for Name")
	}

	key := OpenconfigAcl_Acl_AclSets_AclSet_Key{
		Name: *v.Name,
		Type: v.Type,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclSet == nil {
		t.AclSet = make(map[OpenconfigAcl_Acl_AclSets_AclSet_Key]*OpenconfigAcl_Acl_AclSets_AclSet)
	}

	if _, ok := t.AclSet[key]; ok {
		return fmt.Errorf("duplicate key for list AclSet %v", key)
	}

	t.AclSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AclSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets.
func (*OpenconfigAcl_Acl_AclSets) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet represents the /openconfig-acl/acl/acl-sets/acl-set YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet struct {
	ΛMetadata   []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AclEntries  *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries `path:"acl-entries" module:"openconfig-acl"`
	ΛAclEntries []ygot.Annotation                            `path:"@acl-entries" ygotAnnotation:"true"`
	Config      *OpenconfigAcl_Acl_AclSets_AclSet_Config     `path:"config" module:"openconfig-acl"`
	ΛConfig     []ygot.Annotation                            `path:"@config" ygotAnnotation:"true"`
	Name        *string                                      `path:"name" module:"openconfig-acl"`
	ΛName       []ygot.Annotation                            `path:"@name" ygotAnnotation:"true"`
	State       *OpenconfigAcl_Acl_AclSets_AclSet_State      `path:"state" module:"openconfig-acl"`
	ΛState      []ygot.Annotation                            `path:"@state" ygotAnnotation:"true"`
	Type        E_OpenconfigAcl_ACL_TYPE                     `path:"type" module:"openconfig-acl"`
	ΛType       []ygot.Annotation                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet) IsYANGGoStruct() {}

// GetOrCreateAclEntries retrieves the value of the AclEntries field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetOrCreateAclEntries() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries {
	if t.AclEntries != nil {
		return t.AclEntries
	}
	t.AclEntries = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries{}
	return t.AclEntries
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_State{}
	return t.State
}

// GetAclEntries returns the value of the AclEntries struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet. If the receiver or the field AclEntries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetAclEntries() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries {
	if t != nil && t.AclEntries != nil {
		return t.AclEntries
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigAcl_Acl_AclSets_AclSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_AclSets_AclSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AclEntries.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigAcl_Acl_AclSets_AclSet struct, which is a YANG list entry.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet.
func (*OpenconfigAcl_Acl_AclSets_AclSet) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries struct {
	ΛMetadata []ygot.Annotation                                                `path:"@" ygotAnnotation:"true"`
	AclEntry  map[uint32]*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry `path:"acl-entry" module:"openconfig-acl"`
	ΛAclEntry []ygot.Annotation                                                `path:"@acl-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) IsYANGGoStruct() {}

// NewAclEntry creates a new entry in the AclEntry list of the
// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) NewAclEntry(SequenceId uint32) (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry)
	}

	key := SequenceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AclEntry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AclEntry", key)
	}

	t.AclEntry[key] = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry{
		SequenceId: &SequenceId,
	}

	return t.AclEntry[key], nil
}

// RenameAclEntry renames an entry in the list AclEntry within
// the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) RenameAclEntry(oldK, newK uint32) error {
	if _, ok := t.AclEntry[newK]; ok {
		return fmt.Errorf("key %v already exists in AclEntry", newK)
	}

	e, ok := t.AclEntry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AclEntry", oldK)
	}
	e.SequenceId = &newK

	t.AclEntry[newK] = e
	delete(t.AclEntry, oldK)
	return nil
}

// GetOrCreateAclEntryMap returns the list (map) from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) GetOrCreateAclEntryMap() map[uint32]*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry {
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry)
	}
	return t.AclEntry
}

// GetOrCreateAclEntry retrieves the value with the specified keys from
// the receiver OpenconfigAcl_Acl_AclSets_AclSet_AclEntries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) GetOrCreateAclEntry(SequenceId uint32) *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry {

	key := SequenceId

	if v, ok := t.AclEntry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAclEntry(SequenceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAclEntry got unexpected error: %v", err))
	}
	return v
}

// GetAclEntry retrieves the value with the specified key from
// the AclEntry map field of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) GetAclEntry(SequenceId uint32) *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry {

	if t == nil {
		return nil
	}

	key := SequenceId

	if lm, ok := t.AclEntry[key]; ok {
		return lm
	}
	return nil
}

// AppendAclEntry appends the supplied OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry struct to the
// list AclEntry of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries. If the key value(s) specified in
// the supplied OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry already exist in the list, an error is
// returned.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) AppendAclEntry(v *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) error {
	if v.SequenceId == nil {
		return fmt.Errorf("invalid nil key received for SequenceId")
	}

	key := *v.SequenceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry)
	}

	if _, ok := t.AclEntry[key]; ok {
		return fmt.Errorf("duplicate key for list AclEntry %v", key)
	}

	t.AclEntry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AclEntry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry struct {
	ΛMetadata       []ygot.Annotation                                                    `path:"@" ygotAnnotation:"true"`
	Actions         *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions        `path:"actions" module:"openconfig-acl"`
	ΛActions        []ygot.Annotation                                                    `path:"@actions" ygotAnnotation:"true"`
	Config          *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config         `path:"config" module:"openconfig-acl"`
	ΛConfig         []ygot.Annotation                                                    `path:"@config" ygotAnnotation:"true"`
	InputInterface  *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface `path:"input-interface" module:"openconfig-acl"`
	ΛInputInterface []ygot.Annotation                                                    `path:"@input-interface" ygotAnnotation:"true"`
	Ipv4            *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4           `path:"ipv4" module:"openconfig-acl"`
	ΛIpv4           []ygot.Annotation                                                    `path:"@ipv4" ygotAnnotation:"true"`
	Ipv6            *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6           `path:"ipv6" module:"openconfig-acl"`
	ΛIpv6           []ygot.Annotation                                                    `path:"@ipv6" ygotAnnotation:"true"`
	L2              *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2             `path:"l2" module:"openconfig-acl"`
	ΛL2             []ygot.Annotation                                                    `path:"@l2" ygotAnnotation:"true"`
	Mpls            *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls           `path:"mpls" module:"openconfig-acl"`
	ΛMpls           []ygot.Annotation                                                    `path:"@mpls" ygotAnnotation:"true"`
	SequenceId      *uint32                                                              `path:"sequence-id" module:"openconfig-acl"`
	ΛSequenceId     []ygot.Annotation                                                    `path:"@sequence-id" ygotAnnotation:"true"`
	State           *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State          `path:"state" module:"openconfig-acl"`
	ΛState          []ygot.Annotation                                                    `path:"@state" ygotAnnotation:"true"`
	Transport       *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport      `path:"transport" module:"openconfig-acl"`
	ΛTransport      []ygot.Annotation                                                    `path:"@transport" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) IsYANGGoStruct() {}

// GetOrCreateActions retrieves the value of the Actions field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateActions() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions {
	if t.Actions != nil {
		return t.Actions
	}
	t.Actions = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions{}
	return t.Actions
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config{}
	return t.Config
}

// GetOrCreateInputInterface retrieves the value of the InputInterface field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateInputInterface() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface {
	if t.InputInterface != nil {
		return t.InputInterface
	}
	t.InputInterface = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface{}
	return t.InputInterface
}

// GetOrCreateIpv4 retrieves the value of the Ipv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateIpv4() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4 {
	if t.Ipv4 != nil {
		return t.Ipv4
	}
	t.Ipv4 = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4{}
	return t.Ipv4
}

// GetOrCreateIpv6 retrieves the value of the Ipv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateIpv6() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6 {
	if t.Ipv6 != nil {
		return t.Ipv6
	}
	t.Ipv6 = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6{}
	return t.Ipv6
}

// GetOrCreateL2 retrieves the value of the L2 field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateL2() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2 {
	if t.L2 != nil {
		return t.L2
	}
	t.L2 = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2{}
	return t.L2
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateMpls() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls{}
	return t.Mpls
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State{}
	return t.State
}

// GetOrCreateTransport retrieves the value of the Transport field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetOrCreateTransport() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport {
	if t.Transport != nil {
		return t.Transport
	}
	t.Transport = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport{}
	return t.Transport
}

// GetActions returns the value of the Actions struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field Actions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetActions() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions {
	if t != nil && t.Actions != nil {
		return t.Actions
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInputInterface returns the value of the InputInterface struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field InputInterface is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetInputInterface() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface {
	if t != nil && t.InputInterface != nil {
		return t.InputInterface
	}
	return nil
}

// GetIpv4 returns the value of the Ipv4 struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field Ipv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetIpv4() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4 {
	if t != nil && t.Ipv4 != nil {
		return t.Ipv4
	}
	return nil
}

// GetIpv6 returns the value of the Ipv6 struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field Ipv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetIpv6() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6 {
	if t != nil && t.Ipv6 != nil {
		return t.Ipv6
	}
	return nil
}

// GetL2 returns the value of the L2 struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field L2 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetL2() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2 {
	if t != nil && t.L2 != nil {
		return t.L2
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetMpls() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTransport returns the value of the Transport struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry. If the receiver or the field Transport is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetTransport() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport {
	if t != nil && t.Transport != nil {
		return t.Transport
	}
	return nil
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Actions.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.InputInterface.PopulateDefaults()
	t.Ipv4.PopulateDefaults()
	t.Ipv6.PopulateDefaults()
	t.L2.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Transport.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry struct, which is a YANG list entry.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SequenceId == nil {
		return nil, fmt.Errorf("nil value for key SequenceId")
	}

	return map[string]interface{}{
		"sequence-id": *t.SequenceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/actions YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions struct {
	ΛMetadata []ygot.Annotation                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/actions/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config struct {
	ΛMetadata         []ygot.Annotation                 `path:"@" ygotAnnotation:"true"`
	ForwardingAction  E_OpenconfigAcl_FORWARDING_ACTION `path:"forwarding-action" module:"openconfig-acl"`
	ΛForwardingAction []ygot.Annotation                 `path:"@forwarding-action" ygotAnnotation:"true"`
	LogAction         E_OpenconfigAcl_LOG_ACTION        `path:"log-action" module:"openconfig-acl"`
	ΛLogAction        []ygot.Annotation                 `path:"@log-action" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) IsYANGGoStruct() {}

// GetForwardingAction retrieves the value of the leaf ForwardingAction from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingAction is set, it can
// safely use t.GetForwardingAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingAction == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) GetForwardingAction() E_OpenconfigAcl_FORWARDING_ACTION {
	if t == nil || t.ForwardingAction == 0 {
		return 0
	}
	return t.ForwardingAction
}

// GetLogAction retrieves the value of the leaf LogAction from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogAction is set, it can
// safely use t.GetLogAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogAction == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) GetLogAction() E_OpenconfigAcl_LOG_ACTION {
	if t == nil || t.LogAction == 0 {
		return OpenconfigAcl_LOG_ACTION_LOG_NONE
	}
	return t.LogAction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LogAction == 0 {
		t.LogAction = OpenconfigAcl_LOG_ACTION_LOG_NONE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/actions/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State struct {
	ΛMetadata         []ygot.Annotation                 `path:"@" ygotAnnotation:"true"`
	ForwardingAction  E_OpenconfigAcl_FORWARDING_ACTION `path:"forwarding-action" module:"openconfig-acl"`
	ΛForwardingAction []ygot.Annotation                 `path:"@forwarding-action" ygotAnnotation:"true"`
	LogAction         E_OpenconfigAcl_LOG_ACTION        `path:"log-action" module:"openconfig-acl"`
	ΛLogAction        []ygot.Annotation                 `path:"@log-action" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) IsYANGGoStruct() {}

// GetForwardingAction retrieves the value of the leaf ForwardingAction from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingAction is set, it can
// safely use t.GetForwardingAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingAction == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) GetForwardingAction() E_OpenconfigAcl_FORWARDING_ACTION {
	if t == nil || t.ForwardingAction == 0 {
		return 0
	}
	return t.ForwardingAction
}

// GetLogAction retrieves the value of the leaf LogAction from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogAction is set, it can
// safely use t.GetLogAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogAction == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) GetLogAction() E_OpenconfigAcl_LOG_ACTION {
	if t == nil || t.LogAction == 0 {
		return OpenconfigAcl_LOG_ACTION_LOG_NONE
	}
	return t.LogAction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LogAction == 0 {
		t.LogAction = OpenconfigAcl_LOG_ACTION_LOG_NONE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Actions_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description  *string           `path:"description" module:"openconfig-acl"`
	ΛDescription []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	SequenceId   *uint32           `path:"sequence-id" module:"openconfig-acl"`
	ΛSequenceId  []ygot.Annotation `path:"@sequence-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/input-interface YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface struct {
	ΛMetadata     []ygot.Annotation                                                                 `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config       `path:"config" module:"openconfig-acl"`
	ΛConfig       []ygot.Annotation                                                                 `path:"@config" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef `path:"interface-ref" module:"openconfig-acl"`
	ΛInterfaceRef []ygot.Annotation                                                                 `path:"@interface-ref" ygotAnnotation:"true"`
	State         *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State        `path:"state" module:"openconfig-acl"`
	ΛState        []ygot.Annotation                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config{}
	return t.Config
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) GetOrCreateInterfaceRef() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) GetInterfaceRef() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/input-interface/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/input-interface/interface-ref YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/input-interface/interface-ref/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-acl"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-acl"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/input-interface/interface-ref/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-acl"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-acl"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/input-interface/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_InputInterface_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4 represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4 YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4 struct {
	ΛMetadata []ygot.Annotation                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                 `path:"@config" ygotAnnotation:"true"`
	Icmpv4    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4 `path:"icmpv4" module:"openconfig-acl"`
	ΛIcmpv4   []ygot.Annotation                                                 `path:"@icmpv4" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config{}
	return t.Config
}

// GetOrCreateIcmpv4 retrieves the value of the Icmpv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) GetOrCreateIcmpv4() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4 {
	if t.Icmpv4 != nil {
		return t.Icmpv4
	}
	t.Icmpv4 = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4{}
	return t.Icmpv4
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIcmpv4 returns the value of the Icmpv4 struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4. If the receiver or the field Icmpv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) GetIcmpv4() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4 {
	if t != nil && t.Icmpv4 != nil {
		return t.Icmpv4
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Icmpv4.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config struct {
	ΛMetadata                    []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                         `path:"destination-address" module:"openconfig-acl"`
	ΛDestinationAddress          []ygot.Annotation                                                               `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                         `path:"destination-address-prefix-set" module:"openconfig-acl"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                               `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                          `path:"dscp" module:"openconfig-acl"`
	ΛDscp                        []ygot.Annotation                                                               `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                         `path:"dscp-set" module:"openconfig-acl"`
	ΛDscpSet                     []ygot.Annotation                                                               `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                          `path:"hop-limit" module:"openconfig-acl"`
	ΛHopLimit                    []ygot.Annotation                                                               `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                         `path:"length" module:"openconfig-acl"`
	ΛLength                      []ygot.Annotation                                                               `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union `path:"protocol" module:"openconfig-acl"`
	ΛProtocol                    []ygot.Annotation                                                               `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                         `path:"source-address" module:"openconfig-acl"`
	ΛSourceAddress               []ygot.Annotation                                                               `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                         `path:"source-address-prefix-set" module:"openconfig-acl"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                               `path:"@source-address-prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) IsYANGGoStruct() {}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetProtocol() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/config/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union ensures that UnionUint8
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Config_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4 represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/icmpv4 YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4 struct {
	ΛMetadata []ygot.Annotation                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/icmpv4/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv4Types_CODE `path:"code" module:"openconfig-acl"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv4Types_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) IsYANGGoStruct() {}

// GetCode retrieves the value of the leaf Code from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) GetCode() E_OpenconfigIcmpv4Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) GetType() E_OpenconfigIcmpv4Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/icmpv4/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv4Types_CODE `path:"code" module:"openconfig-acl"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv4Types_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) IsYANGGoStruct() {}

// GetCode retrieves the value of the leaf Code from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) GetCode() E_OpenconfigIcmpv4Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) GetType() E_OpenconfigIcmpv4Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_Icmpv4_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State struct {
	ΛMetadata                    []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                        `path:"destination-address" module:"openconfig-acl"`
	ΛDestinationAddress          []ygot.Annotation                                                              `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                        `path:"destination-address-prefix-set" module:"openconfig-acl"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                              `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                         `path:"dscp" module:"openconfig-acl"`
	ΛDscp                        []ygot.Annotation                                                              `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                        `path:"dscp-set" module:"openconfig-acl"`
	ΛDscpSet                     []ygot.Annotation                                                              `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                         `path:"hop-limit" module:"openconfig-acl"`
	ΛHopLimit                    []ygot.Annotation                                                              `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                        `path:"length" module:"openconfig-acl"`
	ΛLength                      []ygot.Annotation                                                              `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union `path:"protocol" module:"openconfig-acl"`
	ΛProtocol                    []ygot.Annotation                                                              `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                        `path:"source-address" module:"openconfig-acl"`
	ΛSourceAddress               []ygot.Annotation                                                              `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                        `path:"source-address-prefix-set" module:"openconfig-acl"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                              `path:"@source-address-prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) IsYANGGoStruct() {}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetProtocol() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/state/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union ensures that UnionUint8
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv4_State_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6 represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6 YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6 struct {
	ΛMetadata []ygot.Annotation                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                 `path:"@config" ygotAnnotation:"true"`
	Icmpv6    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6 `path:"icmpv6" module:"openconfig-acl"`
	ΛIcmpv6   []ygot.Annotation                                                 `path:"@icmpv6" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config{}
	return t.Config
}

// GetOrCreateIcmpv6 retrieves the value of the Icmpv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) GetOrCreateIcmpv6() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6 {
	if t.Icmpv6 != nil {
		return t.Icmpv6
	}
	t.Icmpv6 = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6{}
	return t.Icmpv6
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIcmpv6 returns the value of the Icmpv6 struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6. If the receiver or the field Icmpv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) GetIcmpv6() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6 {
	if t != nil && t.Icmpv6 != nil {
		return t.Icmpv6
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Icmpv6.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config struct {
	ΛMetadata                    []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                         `path:"destination-address" module:"openconfig-acl"`
	ΛDestinationAddress          []ygot.Annotation                                                               `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                         `path:"destination-address-prefix-set" module:"openconfig-acl"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                               `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	DestinationFlowLabel         *uint32                                                                         `path:"destination-flow-label" module:"openconfig-acl"`
	ΛDestinationFlowLabel        []ygot.Annotation                                                               `path:"@destination-flow-label" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                          `path:"dscp" module:"openconfig-acl"`
	ΛDscp                        []ygot.Annotation                                                               `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                         `path:"dscp-set" module:"openconfig-acl"`
	ΛDscpSet                     []ygot.Annotation                                                               `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                          `path:"hop-limit" module:"openconfig-acl"`
	ΛHopLimit                    []ygot.Annotation                                                               `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                         `path:"length" module:"openconfig-acl"`
	ΛLength                      []ygot.Annotation                                                               `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union `path:"protocol" module:"openconfig-acl"`
	ΛProtocol                    []ygot.Annotation                                                               `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                         `path:"source-address" module:"openconfig-acl"`
	ΛSourceAddress               []ygot.Annotation                                                               `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                         `path:"source-address-prefix-set" module:"openconfig-acl"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                               `path:"@source-address-prefix-set" ygotAnnotation:"true"`
	SourceFlowLabel              *uint32                                                                         `path:"source-flow-label" module:"openconfig-acl"`
	ΛSourceFlowLabel             []ygot.Annotation                                                               `path:"@source-flow-label" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) IsYANGGoStruct() {}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDestinationFlowLabel retrieves the value of the leaf DestinationFlowLabel from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationFlowLabel is set, it can
// safely use t.GetDestinationFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetDestinationFlowLabel() uint32 {
	if t == nil || t.DestinationFlowLabel == nil {
		return 0
	}
	return *t.DestinationFlowLabel
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetProtocol() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// GetSourceFlowLabel retrieves the value of the leaf SourceFlowLabel from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceFlowLabel is set, it can
// safely use t.GetSourceFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) GetSourceFlowLabel() uint32 {
	if t == nil || t.SourceFlowLabel == nil {
		return 0
	}
	return *t.SourceFlowLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/config/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union ensures that UnionUint8
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Config_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6 represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/icmpv6 YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6 struct {
	ΛMetadata []ygot.Annotation                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/icmpv6/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv6Types_CODE `path:"code" module:"openconfig-acl"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv6Types_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) IsYANGGoStruct() {}

// GetCode retrieves the value of the leaf Code from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) GetCode() E_OpenconfigIcmpv6Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) GetType() E_OpenconfigIcmpv6Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/icmpv6/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv6Types_CODE `path:"code" module:"openconfig-acl"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv6Types_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) IsYANGGoStruct() {}

// GetCode retrieves the value of the leaf Code from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) GetCode() E_OpenconfigIcmpv6Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) GetType() E_OpenconfigIcmpv6Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_Icmpv6_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State struct {
	ΛMetadata                    []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                        `path:"destination-address" module:"openconfig-acl"`
	ΛDestinationAddress          []ygot.Annotation                                                              `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                        `path:"destination-address-prefix-set" module:"openconfig-acl"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                              `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	DestinationFlowLabel         *uint32                                                                        `path:"destination-flow-label" module:"openconfig-acl"`
	ΛDestinationFlowLabel        []ygot.Annotation                                                              `path:"@destination-flow-label" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                         `path:"dscp" module:"openconfig-acl"`
	ΛDscp                        []ygot.Annotation                                                              `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                        `path:"dscp-set" module:"openconfig-acl"`
	ΛDscpSet                     []ygot.Annotation                                                              `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                         `path:"hop-limit" module:"openconfig-acl"`
	ΛHopLimit                    []ygot.Annotation                                                              `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                        `path:"length" module:"openconfig-acl"`
	ΛLength                      []ygot.Annotation                                                              `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union `path:"protocol" module:"openconfig-acl"`
	ΛProtocol                    []ygot.Annotation                                                              `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                        `path:"source-address" module:"openconfig-acl"`
	ΛSourceAddress               []ygot.Annotation                                                              `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                        `path:"source-address-prefix-set" module:"openconfig-acl"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                              `path:"@source-address-prefix-set" ygotAnnotation:"true"`
	SourceFlowLabel              *uint32                                                                        `path:"source-flow-label" module:"openconfig-acl"`
	ΛSourceFlowLabel             []ygot.Annotation                                                              `path:"@source-flow-label" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) IsYANGGoStruct() {}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDestinationFlowLabel retrieves the value of the leaf DestinationFlowLabel from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationFlowLabel is set, it can
// safely use t.GetDestinationFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetDestinationFlowLabel() uint32 {
	if t == nil || t.DestinationFlowLabel == nil {
		return 0
	}
	return *t.DestinationFlowLabel
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetProtocol() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// GetSourceFlowLabel retrieves the value of the leaf SourceFlowLabel from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceFlowLabel is set, it can
// safely use t.GetSourceFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) GetSourceFlowLabel() uint32 {
	if t == nil || t.SourceFlowLabel == nil {
		return 0
	}
	return *t.SourceFlowLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/state/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union ensures that UnionUint8
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Ipv6_State_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2 represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/l2 YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2 struct {
	ΛMetadata []ygot.Annotation                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/l2/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config struct {
	ΛMetadata           []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	DestinationMac      *string                                                                        `path:"destination-mac" module:"openconfig-acl"`
	ΛDestinationMac     []ygot.Annotation                                                              `path:"@destination-mac" ygotAnnotation:"true"`
	DestinationMacMask  *string                                                                        `path:"destination-mac-mask" module:"openconfig-acl"`
	ΛDestinationMacMask []ygot.Annotation                                                              `path:"@destination-mac-mask" ygotAnnotation:"true"`
	Ethertype           OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union `path:"ethertype" module:"openconfig-acl"`
	ΛEthertype          []ygot.Annotation                                                              `path:"@ethertype" ygotAnnotation:"true"`
	SourceMac           *string                                                                        `path:"source-mac" module:"openconfig-acl"`
	ΛSourceMac          []ygot.Annotation                                                              `path:"@source-mac" ygotAnnotation:"true"`
	SourceMacMask       *string                                                                        `path:"source-mac-mask" module:"openconfig-acl"`
	ΛSourceMacMask      []ygot.Annotation                                                              `path:"@source-mac-mask" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) IsYANGGoStruct() {}

// GetDestinationMac retrieves the value of the leaf DestinationMac from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMac is set, it can
// safely use t.GetDestinationMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMac == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) GetDestinationMac() string {
	if t == nil || t.DestinationMac == nil {
		return ""
	}
	return *t.DestinationMac
}

// GetDestinationMacMask retrieves the value of the leaf DestinationMacMask from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMacMask is set, it can
// safely use t.GetDestinationMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) GetDestinationMacMask() string {
	if t == nil || t.DestinationMacMask == nil {
		return ""
	}
	return *t.DestinationMacMask
}

// GetEthertype retrieves the value of the leaf Ethertype from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ethertype is set, it can
// safely use t.GetEthertype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ethertype == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) GetEthertype() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union {
	if t == nil || t.Ethertype == nil {
		return nil
	}
	return t.Ethertype
}

// GetSourceMac retrieves the value of the leaf SourceMac from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMac is set, it can
// safely use t.GetSourceMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMac == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) GetSourceMac() string {
	if t == nil || t.SourceMac == nil {
		return ""
	}
	return *t.SourceMac
}

// GetSourceMacMask retrieves the value of the leaf SourceMacMask from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMacMask is set, it can
// safely use t.GetSourceMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) GetSourceMacMask() string {
	if t == nil || t.SourceMacMask == nil {
		return ""
	}
	return *t.SourceMacMask
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/l2/config/ethertype within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union ensures that E_OpenconfigPacketMatchTypes_ETHERTYPE
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union interface.
func (E_OpenconfigPacketMatchTypes_ETHERTYPE) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union ensures that UnionUint16
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union interface.
func (UnionUint16) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_Config_Ethertype_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_ETHERTYPE, uint16]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/l2/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State struct {
	ΛMetadata           []ygot.Annotation                                                             `path:"@" ygotAnnotation:"true"`
	DestinationMac      *string                                                                       `path:"destination-mac" module:"openconfig-acl"`
	ΛDestinationMac     []ygot.Annotation                                                             `path:"@destination-mac" ygotAnnotation:"true"`
	DestinationMacMask  *string                                                                       `path:"destination-mac-mask" module:"openconfig-acl"`
	ΛDestinationMacMask []ygot.Annotation                                                             `path:"@destination-mac-mask" ygotAnnotation:"true"`
	Ethertype           OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union `path:"ethertype" module:"openconfig-acl"`
	ΛEthertype          []ygot.Annotation                                                             `path:"@ethertype" ygotAnnotation:"true"`
	SourceMac           *string                                                                       `path:"source-mac" module:"openconfig-acl"`
	ΛSourceMac          []ygot.Annotation                                                             `path:"@source-mac" ygotAnnotation:"true"`
	SourceMacMask       *string                                                                       `path:"source-mac-mask" module:"openconfig-acl"`
	ΛSourceMacMask      []ygot.Annotation                                                             `path:"@source-mac-mask" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) IsYANGGoStruct() {}

// GetDestinationMac retrieves the value of the leaf DestinationMac from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMac is set, it can
// safely use t.GetDestinationMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMac == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) GetDestinationMac() string {
	if t == nil || t.DestinationMac == nil {
		return ""
	}
	return *t.DestinationMac
}

// GetDestinationMacMask retrieves the value of the leaf DestinationMacMask from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMacMask is set, it can
// safely use t.GetDestinationMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) GetDestinationMacMask() string {
	if t == nil || t.DestinationMacMask == nil {
		return ""
	}
	return *t.DestinationMacMask
}

// GetEthertype retrieves the value of the leaf Ethertype from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ethertype is set, it can
// safely use t.GetEthertype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ethertype == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) GetEthertype() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union {
	if t == nil || t.Ethertype == nil {
		return nil
	}
	return t.Ethertype
}

// GetSourceMac retrieves the value of the leaf SourceMac from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMac is set, it can
// safely use t.GetSourceMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMac == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) GetSourceMac() string {
	if t == nil || t.SourceMac == nil {
		return ""
	}
	return *t.SourceMac
}

// GetSourceMacMask retrieves the value of the leaf SourceMacMask from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMacMask is set, it can
// safely use t.GetSourceMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) GetSourceMacMask() string {
	if t == nil || t.SourceMacMask == nil {
		return ""
	}
	return *t.SourceMacMask
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/l2/state/ethertype within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union ensures that E_OpenconfigPacketMatchTypes_ETHERTYPE
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union interface.
func (E_OpenconfigPacketMatchTypes_ETHERTYPE) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union ensures that UnionUint16
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union interface.
func (UnionUint16) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_L2_State_Ethertype_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_ETHERTYPE, uint16]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls struct {
	ΛMetadata []ygot.Annotation                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config struct {
	ΛMetadata        []ygot.Annotation                                                                      `path:"@" ygotAnnotation:"true"`
	EndLabelValue    OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union   `path:"end-label-value" module:"openconfig-acl"`
	ΛEndLabelValue   []ygot.Annotation                                                                      `path:"@end-label-value" ygotAnnotation:"true"`
	StartLabelValue  OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union `path:"start-label-value" module:"openconfig-acl"`
	ΛStartLabelValue []ygot.Annotation                                                                      `path:"@start-label-value" ygotAnnotation:"true"`
	TrafficClass     *uint8                                                                                 `path:"traffic-class" module:"openconfig-acl"`
	ΛTrafficClass    []ygot.Annotation                                                                      `path:"@traffic-class" ygotAnnotation:"true"`
	TtlValue         *uint8                                                                                 `path:"ttl-value" module:"openconfig-acl"`
	ΛTtlValue        []ygot.Annotation                                                                      `path:"@ttl-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) IsYANGGoStruct() {}

// GetEndLabelValue retrieves the value of the leaf EndLabelValue from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndLabelValue is set, it can
// safely use t.GetEndLabelValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndLabelValue == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) GetEndLabelValue() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union {
	if t == nil || t.EndLabelValue == nil {
		return nil
	}
	return t.EndLabelValue
}

// GetStartLabelValue retrieves the value of the leaf StartLabelValue from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StartLabelValue is set, it can
// safely use t.GetStartLabelValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StartLabelValue == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) GetStartLabelValue() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union {
	if t == nil || t.StartLabelValue == nil {
		return nil
	}
	return t.StartLabelValue
}

// GetTrafficClass retrieves the value of the leaf TrafficClass from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficClass is set, it can
// safely use t.GetTrafficClass() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficClass == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) GetTrafficClass() uint8 {
	if t == nil || t.TrafficClass == nil {
		return 0
	}
	return *t.TrafficClass
}

// GetTtlValue retrieves the value of the leaf TtlValue from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtlValue is set, it can
// safely use t.GetTtlValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtlValue == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) GetTtlValue() uint8 {
	if t == nil || t.TtlValue == nil {
		return 0
	}
	return *t.TtlValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/config/end-label-value within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union ensures that UnionUint32
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union interface.
func (UnionUint32) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_EndLabelValue_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/config/start-label-value within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union ensures that UnionUint32
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union interface.
func (UnionUint32) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_Config_StartLabelValue_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State struct {
	ΛMetadata        []ygot.Annotation                                                                     `path:"@" ygotAnnotation:"true"`
	EndLabelValue    OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union   `path:"end-label-value" module:"openconfig-acl"`
	ΛEndLabelValue   []ygot.Annotation                                                                     `path:"@end-label-value" ygotAnnotation:"true"`
	StartLabelValue  OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union `path:"start-label-value" module:"openconfig-acl"`
	ΛStartLabelValue []ygot.Annotation                                                                     `path:"@start-label-value" ygotAnnotation:"true"`
	TrafficClass     *uint8                                                                                `path:"traffic-class" module:"openconfig-acl"`
	ΛTrafficClass    []ygot.Annotation                                                                     `path:"@traffic-class" ygotAnnotation:"true"`
	TtlValue         *uint8                                                                                `path:"ttl-value" module:"openconfig-acl"`
	ΛTtlValue        []ygot.Annotation                                                                     `path:"@ttl-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) IsYANGGoStruct() {}

// GetEndLabelValue retrieves the value of the leaf EndLabelValue from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndLabelValue is set, it can
// safely use t.GetEndLabelValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndLabelValue == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) GetEndLabelValue() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union {
	if t == nil || t.EndLabelValue == nil {
		return nil
	}
	return t.EndLabelValue
}

// GetStartLabelValue retrieves the value of the leaf StartLabelValue from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StartLabelValue is set, it can
// safely use t.GetStartLabelValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StartLabelValue == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) GetStartLabelValue() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union {
	if t == nil || t.StartLabelValue == nil {
		return nil
	}
	return t.StartLabelValue
}

// GetTrafficClass retrieves the value of the leaf TrafficClass from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficClass is set, it can
// safely use t.GetTrafficClass() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficClass == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) GetTrafficClass() uint8 {
	if t == nil || t.TrafficClass == nil {
		return 0
	}
	return *t.TrafficClass
}

// GetTtlValue retrieves the value of the leaf TtlValue from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtlValue is set, it can
// safely use t.GetTtlValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtlValue == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) GetTtlValue() uint8 {
	if t == nil || t.TtlValue == nil {
		return 0
	}
	return *t.TtlValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/state/end-label-value within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union ensures that UnionUint32
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union interface.
func (UnionUint32) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_EndLabelValue_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/state/start-label-value within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union ensures that UnionUint32
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union interface.
func (UnionUint32) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Mpls_State_StartLabelValue_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description     *string           `path:"description" module:"openconfig-acl"`
	ΛDescription    []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	MatchedOctets   *uint64           `path:"matched-octets" module:"openconfig-acl"`
	ΛMatchedOctets  []ygot.Annotation `path:"@matched-octets" ygotAnnotation:"true"`
	MatchedPackets  *uint64           `path:"matched-packets" module:"openconfig-acl"`
	ΛMatchedPackets []ygot.Annotation `path:"@matched-packets" ygotAnnotation:"true"`
	SequenceId      *uint32           `path:"sequence-id" module:"openconfig-acl"`
	ΛSequenceId     []ygot.Annotation `path:"@sequence-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetMatchedOctets retrieves the value of the leaf MatchedOctets from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedOctets is set, it can
// safely use t.GetMatchedOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) GetMatchedOctets() uint64 {
	if t == nil || t.MatchedOctets == nil {
		return 0
	}
	return *t.MatchedOctets
}

// GetMatchedPackets retrieves the value of the leaf MatchedPackets from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedPackets is set, it can
// safely use t.GetMatchedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) GetMatchedPackets() uint64 {
	if t == nil || t.MatchedPackets == nil {
		return 0
	}
	return *t.MatchedPackets
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/transport YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport struct {
	ΛMetadata []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) GetOrCreateConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) GetOrCreateState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) GetConfig() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) GetState() *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config struct {
	ΛMetadata                []ygot.Annotation                                                                               `path:"@" ygotAnnotation:"true"`
	BuiltinDetail            E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail           `path:"builtin-detail" module:"openconfig-acl"`
	ΛBuiltinDetail           []ygot.Annotation                                                                               `path:"@builtin-detail" ygotAnnotation:"true"`
	DestinationPort          OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union     `path:"destination-port" module:"openconfig-acl"`
	ΛDestinationPort         []ygot.Annotation                                                                               `path:"@destination-port" ygotAnnotation:"true"`
	DestinationPortSet       *string                                                                                         `path:"destination-port-set" module:"openconfig-acl"`
	ΛDestinationPortSet      []ygot.Annotation                                                                               `path:"@destination-port-set" ygotAnnotation:"true"`
	DetailMode               E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode              `path:"detail-mode" module:"openconfig-acl"`
	ΛDetailMode              []ygot.Annotation                                                                               `path:"@detail-mode" ygotAnnotation:"true"`
	ExplicitDetailMatchMode  E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode `path:"explicit-detail-match-mode" module:"openconfig-acl"`
	ΛExplicitDetailMatchMode []ygot.Annotation                                                                               `path:"@explicit-detail-match-mode" ygotAnnotation:"true"`
	ExplicitTcpFlags         []E_OpenconfigPacketMatchTypes_TCP_FLAGS                                                        `path:"explicit-tcp-flags" module:"openconfig-acl"`
	ΛExplicitTcpFlags        []ygot.Annotation                                                                               `path:"@explicit-tcp-flags" ygotAnnotation:"true"`
	SourcePort               OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union          `path:"source-port" module:"openconfig-acl"`
	ΛSourcePort              []ygot.Annotation                                                                               `path:"@source-port" ygotAnnotation:"true"`
	SourcePortSet            *string                                                                                         `path:"source-port-set" module:"openconfig-acl"`
	ΛSourcePortSet           []ygot.Annotation                                                                               `path:"@source-port-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) IsYANGGoStruct() {}

// GetBuiltinDetail retrieves the value of the leaf BuiltinDetail from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BuiltinDetail is set, it can
// safely use t.GetBuiltinDetail() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BuiltinDetail == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetBuiltinDetail() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail {
	if t == nil || t.BuiltinDetail == 0 {
		return 0
	}
	return t.BuiltinDetail
}

// GetDestinationPort retrieves the value of the leaf DestinationPort from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPort is set, it can
// safely use t.GetDestinationPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPort == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetDestinationPort() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union {
	if t == nil || t.DestinationPort == nil {
		return nil
	}
	return t.DestinationPort
}

// GetDestinationPortSet retrieves the value of the leaf DestinationPortSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPortSet is set, it can
// safely use t.GetDestinationPortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetDestinationPortSet() string {
	if t == nil || t.DestinationPortSet == nil {
		return ""
	}
	return *t.DestinationPortSet
}

// GetDetailMode retrieves the value of the leaf DetailMode from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DetailMode is set, it can
// safely use t.GetDetailMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DetailMode == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetDetailMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode {
	if t == nil || t.DetailMode == 0 {
		return 0
	}
	return t.DetailMode
}

// GetExplicitDetailMatchMode retrieves the value of the leaf ExplicitDetailMatchMode from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitDetailMatchMode is set, it can
// safely use t.GetExplicitDetailMatchMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitDetailMatchMode == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetExplicitDetailMatchMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode {
	if t == nil || t.ExplicitDetailMatchMode == 0 {
		return 0
	}
	return t.ExplicitDetailMatchMode
}

// GetExplicitTcpFlags retrieves the value of the leaf ExplicitTcpFlags from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitTcpFlags is set, it can
// safely use t.GetExplicitTcpFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitTcpFlags == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetExplicitTcpFlags() []E_OpenconfigPacketMatchTypes_TCP_FLAGS {
	if t == nil || t.ExplicitTcpFlags == nil {
		return nil
	}
	return t.ExplicitTcpFlags
}

// GetSourcePort retrieves the value of the leaf SourcePort from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePort is set, it can
// safely use t.GetSourcePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePort == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetSourcePort() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union {
	if t == nil || t.SourcePort == nil {
		return nil
	}
	return t.SourcePort
}

// GetSourcePortSet retrieves the value of the leaf SourcePortSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePortSet is set, it can
// safely use t.GetSourcePortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) GetSourcePortSet() string {
	if t == nil || t.SourcePortSet == nil {
		return ""
	}
	return *t.SourcePortSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/destination-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union ensures that UnionString
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union interface.
func (UnionString) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union ensures that UnionUint16
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DestinationPort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/source-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union ensures that UnionString
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union interface.
func (UnionString) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union ensures that UnionUint16
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_SourcePort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State represents the /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State struct {
	ΛMetadata                []ygot.Annotation                                                                               `path:"@" ygotAnnotation:"true"`
	BuiltinDetail            E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail           `path:"builtin-detail" module:"openconfig-acl"`
	ΛBuiltinDetail           []ygot.Annotation                                                                               `path:"@builtin-detail" ygotAnnotation:"true"`
	DestinationPort          OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union      `path:"destination-port" module:"openconfig-acl"`
	ΛDestinationPort         []ygot.Annotation                                                                               `path:"@destination-port" ygotAnnotation:"true"`
	DestinationPortSet       *string                                                                                         `path:"destination-port-set" module:"openconfig-acl"`
	ΛDestinationPortSet      []ygot.Annotation                                                                               `path:"@destination-port-set" ygotAnnotation:"true"`
	DetailMode               E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode              `path:"detail-mode" module:"openconfig-acl"`
	ΛDetailMode              []ygot.Annotation                                                                               `path:"@detail-mode" ygotAnnotation:"true"`
	ExplicitDetailMatchMode  E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode `path:"explicit-detail-match-mode" module:"openconfig-acl"`
	ΛExplicitDetailMatchMode []ygot.Annotation                                                                               `path:"@explicit-detail-match-mode" ygotAnnotation:"true"`
	ExplicitTcpFlags         []E_OpenconfigPacketMatchTypes_TCP_FLAGS                                                        `path:"explicit-tcp-flags" module:"openconfig-acl"`
	ΛExplicitTcpFlags        []ygot.Annotation                                                                               `path:"@explicit-tcp-flags" ygotAnnotation:"true"`
	SourcePort               OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union           `path:"source-port" module:"openconfig-acl"`
	ΛSourcePort              []ygot.Annotation                                                                               `path:"@source-port" ygotAnnotation:"true"`
	SourcePortSet            *string                                                                                         `path:"source-port-set" module:"openconfig-acl"`
	ΛSourcePortSet           []ygot.Annotation                                                                               `path:"@source-port-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) IsYANGGoStruct() {}

// GetBuiltinDetail retrieves the value of the leaf BuiltinDetail from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BuiltinDetail is set, it can
// safely use t.GetBuiltinDetail() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BuiltinDetail == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetBuiltinDetail() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail {
	if t == nil || t.BuiltinDetail == 0 {
		return 0
	}
	return t.BuiltinDetail
}

// GetDestinationPort retrieves the value of the leaf DestinationPort from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPort is set, it can
// safely use t.GetDestinationPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPort == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetDestinationPort() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union {
	if t == nil || t.DestinationPort == nil {
		return nil
	}
	return t.DestinationPort
}

// GetDestinationPortSet retrieves the value of the leaf DestinationPortSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPortSet is set, it can
// safely use t.GetDestinationPortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetDestinationPortSet() string {
	if t == nil || t.DestinationPortSet == nil {
		return ""
	}
	return *t.DestinationPortSet
}

// GetDetailMode retrieves the value of the leaf DetailMode from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DetailMode is set, it can
// safely use t.GetDetailMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DetailMode == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetDetailMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode {
	if t == nil || t.DetailMode == 0 {
		return 0
	}
	return t.DetailMode
}

// GetExplicitDetailMatchMode retrieves the value of the leaf ExplicitDetailMatchMode from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitDetailMatchMode is set, it can
// safely use t.GetExplicitDetailMatchMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitDetailMatchMode == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetExplicitDetailMatchMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode {
	if t == nil || t.ExplicitDetailMatchMode == 0 {
		return 0
	}
	return t.ExplicitDetailMatchMode
}

// GetExplicitTcpFlags retrieves the value of the leaf ExplicitTcpFlags from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitTcpFlags is set, it can
// safely use t.GetExplicitTcpFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitTcpFlags == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetExplicitTcpFlags() []E_OpenconfigPacketMatchTypes_TCP_FLAGS {
	if t == nil || t.ExplicitTcpFlags == nil {
		return nil
	}
	return t.ExplicitTcpFlags
}

// GetSourcePort retrieves the value of the leaf SourcePort from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePort is set, it can
// safely use t.GetSourcePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePort == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetSourcePort() OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union {
	if t == nil || t.SourcePort == nil {
		return nil
	}
	return t.SourcePort
}

// GetSourcePortSet retrieves the value of the leaf SourcePortSet from the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePortSet is set, it can
// safely use t.GetSourcePortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) GetSourcePortSet() string {
	if t == nil || t.SourcePortSet == nil {
		return ""
	}
	return *t.SourcePortSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/destination-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union ensures that UnionString
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union interface.
func (UnionString) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union ensures that UnionUint16
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_DestinationPort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-acl/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/source-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union()
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union ensures that UnionString
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union interface.
func (UnionString) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union() {
}

// Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union ensures that UnionUint16
// implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union() {
}

// To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State) To_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union(i interface{}) (OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union, error) {
	if v, ok := i.(OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_State_SourcePort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigAcl_Acl_AclSets_AclSet_Config represents the /openconfig-acl/acl/acl-sets/acl-set/config YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_Config struct {
	ΛMetadata    []ygot.Annotation        `path:"@" ygotAnnotation:"true"`
	Description  *string                  `path:"description" module:"openconfig-acl"`
	ΛDescription []ygot.Annotation        `path:"@description" ygotAnnotation:"true"`
	Name         *string                  `path:"name" module:"openconfig-acl"`
	ΛName        []ygot.Annotation        `path:"@name" ygotAnnotation:"true"`
	Type         E_OpenconfigAcl_ACL_TYPE `path:"type" module:"openconfig-acl"`
	ΛType        []ygot.Annotation        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_Config) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigAcl_Acl_AclSets_AclSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigAcl_Acl_AclSets_AclSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_AclSets_AclSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_Config) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_Config.
func (*OpenconfigAcl_Acl_AclSets_AclSet_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_AclSets_AclSet_State represents the /openconfig-acl/acl/acl-sets/acl-set/state YANG schema element.
type OpenconfigAcl_Acl_AclSets_AclSet_State struct {
	ΛMetadata    []ygot.Annotation        `path:"@" ygotAnnotation:"true"`
	Description  *string                  `path:"description" module:"openconfig-acl"`
	ΛDescription []ygot.Annotation        `path:"@description" ygotAnnotation:"true"`
	Name         *string                  `path:"name" module:"openconfig-acl"`
	ΛName        []ygot.Annotation        `path:"@name" ygotAnnotation:"true"`
	Type         E_OpenconfigAcl_ACL_TYPE `path:"type" module:"openconfig-acl"`
	ΛType        []ygot.Annotation        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_AclSets_AclSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_AclSets_AclSet_State) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigAcl_Acl_AclSets_AclSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigAcl_Acl_AclSets_AclSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_AclSets_AclSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_State) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_AclSets_AclSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_AclSets_AclSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_AclSets_AclSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_AclSets_AclSet_State.
func (*OpenconfigAcl_Acl_AclSets_AclSet_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Config represents the /openconfig-acl/acl/config YANG schema element.
type OpenconfigAcl_Acl_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Config.
func (*OpenconfigAcl_Acl_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces represents the /openconfig-acl/acl/interfaces YANG schema element.
type OpenconfigAcl_Acl_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                  `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigAcl_Acl_Interfaces_Interface `path:"interface" module:"openconfig-acl"`
	ΛInterface []ygot.Annotation                                  `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces) IsYANGGoStruct() {}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigAcl_Acl_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigAcl_Acl_Interfaces) NewInterface(Id string) (*OpenconfigAcl_Acl_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigAcl_Acl_Interfaces_Interface)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigAcl_Acl_Interfaces_Interface{
		Id: &Id,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigAcl_Acl_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigAcl_Acl_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.Id = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigAcl_Acl_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigAcl_Acl_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigAcl_Acl_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigAcl_Acl_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigAcl_Acl_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigAcl_Acl_Interfaces) GetOrCreateInterface(Id string) *OpenconfigAcl_Acl_Interfaces_Interface {

	key := Id

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigAcl_Acl_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces) GetInterface(Id string) *OpenconfigAcl_Acl_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigAcl_Acl_Interfaces_Interface struct to the
// list Interface of OpenconfigAcl_Acl_Interfaces. If the key value(s) specified in
// the supplied OpenconfigAcl_Acl_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigAcl_Acl_Interfaces) AppendInterface(v *OpenconfigAcl_Acl_Interfaces_Interface) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigAcl_Acl_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces.
func (*OpenconfigAcl_Acl_Interfaces) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface represents the /openconfig-acl/acl/interfaces/interface YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface struct {
	ΛMetadata       []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	Config          *OpenconfigAcl_Acl_Interfaces_Interface_Config         `path:"config" module:"openconfig-acl"`
	ΛConfig         []ygot.Annotation                                      `path:"@config" ygotAnnotation:"true"`
	EgressAclSets   *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets  `path:"egress-acl-sets" module:"openconfig-acl"`
	ΛEgressAclSets  []ygot.Annotation                                      `path:"@egress-acl-sets" ygotAnnotation:"true"`
	Id              *string                                                `path:"id" module:"openconfig-acl"`
	ΛId             []ygot.Annotation                                      `path:"@id" ygotAnnotation:"true"`
	IngressAclSets  *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets `path:"ingress-acl-sets" module:"openconfig-acl"`
	ΛIngressAclSets []ygot.Annotation                                      `path:"@ingress-acl-sets" ygotAnnotation:"true"`
	InterfaceRef    *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef   `path:"interface-ref" module:"openconfig-acl"`
	ΛInterfaceRef   []ygot.Annotation                                      `path:"@interface-ref" ygotAnnotation:"true"`
	State           *OpenconfigAcl_Acl_Interfaces_Interface_State          `path:"state" module:"openconfig-acl"`
	ΛState          []ygot.Annotation                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetOrCreateConfig() *OpenconfigAcl_Acl_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateEgressAclSets retrieves the value of the EgressAclSets field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetOrCreateEgressAclSets() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets {
	if t.EgressAclSets != nil {
		return t.EgressAclSets
	}
	t.EgressAclSets = &OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets{}
	return t.EgressAclSets
}

// GetOrCreateIngressAclSets retrieves the value of the IngressAclSets field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetOrCreateIngressAclSets() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets {
	if t.IngressAclSets != nil {
		return t.IngressAclSets
	}
	t.IngressAclSets = &OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets{}
	return t.IngressAclSets
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetOrCreateState() *OpenconfigAcl_Acl_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_Interfaces_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetConfig() *OpenconfigAcl_Acl_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEgressAclSets returns the value of the EgressAclSets struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface. If the receiver or the field EgressAclSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetEgressAclSets() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets {
	if t != nil && t.EgressAclSets != nil {
		return t.EgressAclSets
	}
	return nil
}

// GetIngressAclSets returns the value of the IngressAclSets struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface. If the receiver or the field IngressAclSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetIngressAclSets() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets {
	if t != nil && t.IngressAclSets != nil {
		return t.IngressAclSets
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetInterfaceRef() *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetState() *OpenconfigAcl_Acl_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigAcl_Acl_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.EgressAclSets.PopulateDefaults()
	t.IngressAclSets.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigAcl_Acl_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface.
func (*OpenconfigAcl_Acl_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_Config represents the /openconfig-acl/acl/interfaces/interface/config YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Id        *string           `path:"id" module:"openconfig-acl"`
	ΛId       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_Config) IsYANGGoStruct() {}

// GetId retrieves the value of the leaf Id from the OpenconfigAcl_Acl_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_Config) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_Config.
func (*OpenconfigAcl_Acl_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets represents the /openconfig-acl/acl/interfaces/interface/egress-acl-sets YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets struct {
	ΛMetadata     []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	EgressAclSet  map[OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet `path:"egress-acl-set" module:"openconfig-acl"`
	ΛEgressAclSet []ygot.Annotation                                                                                                                            `path:"@egress-acl-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) IsYANGGoStruct() {}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key represents the key for list EgressAclSet of element /openconfig-acl/acl/interfaces/interface/egress-acl-sets.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key struct {
	SetName string                   `path:"set-name"`
	Type    E_OpenconfigAcl_ACL_TYPE `path:"type"`
}

// IsYANGGoKeyStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key) IsYANGGoKeyStruct() {}

// ΛListKeyMap returns the values of the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key key struct.
func (t OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"set-name": t.SetName,
		"type":     t.Type,
	}, nil
}

// NewEgressAclSet creates a new entry in the EgressAclSet list of the
// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) NewEgressAclSet(SetName string, Type E_OpenconfigAcl_ACL_TYPE) (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EgressAclSet == nil {
		t.EgressAclSet = make(map[OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet)
	}

	key := OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key{
		SetName: SetName,
		Type:    Type,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EgressAclSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EgressAclSet", key)
	}

	t.EgressAclSet[key] = &OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet{
		SetName: &SetName,
		Type:    Type,
	}

	return t.EgressAclSet[key], nil
}

// RenameEgressAclSet renames an entry in the list EgressAclSet within
// the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) RenameEgressAclSet(oldK, newK OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key) error {
	if _, ok := t.EgressAclSet[newK]; ok {
		return fmt.Errorf("key %v already exists in EgressAclSet", newK)
	}

	e, ok := t.EgressAclSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in EgressAclSet", oldK)
	}
	e.SetName = &newK.SetName
	e.Type = newK.Type

	t.EgressAclSet[newK] = e
	delete(t.EgressAclSet, oldK)
	return nil
}

// GetOrCreateEgressAclSetMap returns the list (map) from OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) GetOrCreateEgressAclSetMap() map[OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet {
	if t.EgressAclSet == nil {
		t.EgressAclSet = make(map[OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet)
	}
	return t.EgressAclSet
}

// GetOrCreateEgressAclSet retrieves the value with the specified keys from
// the receiver OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) GetOrCreateEgressAclSet(SetName string, Type E_OpenconfigAcl_ACL_TYPE) *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet {

	key := OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key{
		SetName: SetName,
		Type:    Type,
	}

	if v, ok := t.EgressAclSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEgressAclSet(SetName, Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEgressAclSet got unexpected error: %v", err))
	}
	return v
}

// GetEgressAclSet retrieves the value with the specified key from
// the EgressAclSet map field of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) GetEgressAclSet(SetName string, Type E_OpenconfigAcl_ACL_TYPE) *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet {

	if t == nil {
		return nil
	}

	key := OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key{
		SetName: SetName,
		Type:    Type,
	}

	if lm, ok := t.EgressAclSet[key]; ok {
		return lm
	}
	return nil
}

// AppendEgressAclSet appends the supplied OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet struct to the
// list EgressAclSet of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets. If the key value(s) specified in
// the supplied OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet already exist in the list, an error is
// returned.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) AppendEgressAclSet(v *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) error {
	if v.SetName == nil {
		return fmt.Errorf("invalid nil key for SetName")
	}

	key := OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key{
		SetName: *v.SetName,
		Type:    v.Type,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EgressAclSet == nil {
		t.EgressAclSet = make(map[OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet)
	}

	if _, ok := t.EgressAclSet[key]; ok {
		return fmt.Errorf("duplicate key for list EgressAclSet %v", key)
	}

	t.EgressAclSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.EgressAclSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet represents the /openconfig-acl/acl/interfaces/interface/egress-acl-sets/egress-acl-set YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet struct {
	ΛMetadata   []ygot.Annotation                                                             `path:"@" ygotAnnotation:"true"`
	AclEntries  *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries `path:"acl-entries" module:"openconfig-acl"`
	ΛAclEntries []ygot.Annotation                                                             `path:"@acl-entries" ygotAnnotation:"true"`
	Config      *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config     `path:"config" module:"openconfig-acl"`
	ΛConfig     []ygot.Annotation                                                             `path:"@config" ygotAnnotation:"true"`
	SetName     *string                                                                       `path:"set-name" module:"openconfig-acl"`
	ΛSetName    []ygot.Annotation                                                             `path:"@set-name" ygotAnnotation:"true"`
	State       *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State      `path:"state" module:"openconfig-acl"`
	ΛState      []ygot.Annotation                                                             `path:"@state" ygotAnnotation:"true"`
	Type        E_OpenconfigAcl_ACL_TYPE                                                      `path:"type" module:"openconfig-acl"`
	ΛType       []ygot.Annotation                                                             `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) IsYANGGoStruct() {}

// GetOrCreateAclEntries retrieves the value of the AclEntries field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetOrCreateAclEntries() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries {
	if t.AclEntries != nil {
		return t.AclEntries
	}
	t.AclEntries = &OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries{}
	return t.AclEntries
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetOrCreateConfig() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetOrCreateState() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State{}
	return t.State
}

// GetAclEntries returns the value of the AclEntries struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet. If the receiver or the field AclEntries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetAclEntries() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries {
	if t != nil && t.AclEntries != nil {
		return t.AclEntries
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetConfig() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetState() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSetName retrieves the value of the leaf SetName from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetName is set, it can
// safely use t.GetSetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetName == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetSetName() string {
	if t == nil || t.SetName == nil {
		return ""
	}
	return *t.SetName
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AclEntries.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet struct, which is a YANG list entry.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SetName == nil {
		return nil, fmt.Errorf("nil value for key SetName")
	}

	return map[string]interface{}{
		"set-name": *t.SetName,
		"type":     t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries represents the /openconfig-acl/acl/interfaces/interface/egress-acl-sets/egress-acl-set/acl-entries YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries struct {
	ΛMetadata []ygot.Annotation                                                                                 `path:"@" ygotAnnotation:"true"`
	AclEntry  map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry `path:"acl-entry" module:"openconfig-acl"`
	ΛAclEntry []ygot.Annotation                                                                                 `path:"@acl-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) IsYANGGoStruct() {
}

// NewAclEntry creates a new entry in the AclEntry list of the
// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) NewAclEntry(SequenceId uint32) (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry)
	}

	key := SequenceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AclEntry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AclEntry", key)
	}

	t.AclEntry[key] = &OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry{
		SequenceId: &SequenceId,
	}

	return t.AclEntry[key], nil
}

// RenameAclEntry renames an entry in the list AclEntry within
// the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) RenameAclEntry(oldK, newK uint32) error {
	if _, ok := t.AclEntry[newK]; ok {
		return fmt.Errorf("key %v already exists in AclEntry", newK)
	}

	e, ok := t.AclEntry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AclEntry", oldK)
	}
	e.SequenceId = &newK

	t.AclEntry[newK] = e
	delete(t.AclEntry, oldK)
	return nil
}

// GetOrCreateAclEntryMap returns the list (map) from OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) GetOrCreateAclEntryMap() map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry {
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry)
	}
	return t.AclEntry
}

// GetOrCreateAclEntry retrieves the value with the specified keys from
// the receiver OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) GetOrCreateAclEntry(SequenceId uint32) *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry {

	key := SequenceId

	if v, ok := t.AclEntry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAclEntry(SequenceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAclEntry got unexpected error: %v", err))
	}
	return v
}

// GetAclEntry retrieves the value with the specified key from
// the AclEntry map field of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) GetAclEntry(SequenceId uint32) *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry {

	if t == nil {
		return nil
	}

	key := SequenceId

	if lm, ok := t.AclEntry[key]; ok {
		return lm
	}
	return nil
}

// AppendAclEntry appends the supplied OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry struct to the
// list AclEntry of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries. If the key value(s) specified in
// the supplied OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry already exist in the list, an error is
// returned.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) AppendAclEntry(v *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) error {
	if v.SequenceId == nil {
		return fmt.Errorf("invalid nil key received for SequenceId")
	}

	key := *v.SequenceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry)
	}

	if _, ok := t.AclEntry[key]; ok {
		return fmt.Errorf("duplicate key for list AclEntry %v", key)
	}

	t.AclEntry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AclEntry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry represents the /openconfig-acl/acl/interfaces/interface/egress-acl-sets/egress-acl-set/acl-entries/acl-entry YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry struct {
	ΛMetadata   []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	SequenceId  *uint32                                                                                      `path:"sequence-id" module:"openconfig-acl"`
	ΛSequenceId []ygot.Annotation                                                                            `path:"@sequence-id" ygotAnnotation:"true"`
	State       *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State `path:"state" module:"openconfig-acl"`
	ΛState      []ygot.Annotation                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) GetOrCreateState() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) GetState() *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry struct, which is a YANG list entry.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SequenceId == nil {
		return nil, fmt.Errorf("nil value for key SequenceId")
	}

	return map[string]interface{}{
		"sequence-id": *t.SequenceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State represents the /openconfig-acl/acl/interfaces/interface/egress-acl-sets/egress-acl-set/acl-entries/acl-entry/state YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MatchedOctets   *uint64           `path:"matched-octets" module:"openconfig-acl"`
	ΛMatchedOctets  []ygot.Annotation `path:"@matched-octets" ygotAnnotation:"true"`
	MatchedPackets  *uint64           `path:"matched-packets" module:"openconfig-acl"`
	ΛMatchedPackets []ygot.Annotation `path:"@matched-packets" ygotAnnotation:"true"`
	SequenceId      *uint32           `path:"sequence-id" module:"openconfig-acl"`
	ΛSequenceId     []ygot.Annotation `path:"@sequence-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) IsYANGGoStruct() {
}

// GetMatchedOctets retrieves the value of the leaf MatchedOctets from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedOctets is set, it can
// safely use t.GetMatchedOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) GetMatchedOctets() uint64 {
	if t == nil || t.MatchedOctets == nil {
		return 0
	}
	return *t.MatchedOctets
}

// GetMatchedPackets retrieves the value of the leaf MatchedPackets from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedPackets is set, it can
// safely use t.GetMatchedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) GetMatchedPackets() uint64 {
	if t == nil || t.MatchedPackets == nil {
		return 0
	}
	return *t.MatchedPackets
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_AclEntries_AclEntry_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config represents the /openconfig-acl/acl/interfaces/interface/egress-acl-sets/egress-acl-set/config YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config struct {
	ΛMetadata []ygot.Annotation        `path:"@" ygotAnnotation:"true"`
	SetName   *string                  `path:"set-name" module:"openconfig-acl"`
	ΛSetName  []ygot.Annotation        `path:"@set-name" ygotAnnotation:"true"`
	Type      E_OpenconfigAcl_ACL_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) IsYANGGoStruct() {}

// GetSetName retrieves the value of the leaf SetName from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetName is set, it can
// safely use t.GetSetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetName == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) GetSetName() string {
	if t == nil || t.SetName == nil {
		return ""
	}
	return *t.SetName
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State represents the /openconfig-acl/acl/interfaces/interface/egress-acl-sets/egress-acl-set/state YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State struct {
	ΛMetadata []ygot.Annotation        `path:"@" ygotAnnotation:"true"`
	SetName   *string                  `path:"set-name" module:"openconfig-acl"`
	ΛSetName  []ygot.Annotation        `path:"@set-name" ygotAnnotation:"true"`
	Type      E_OpenconfigAcl_ACL_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) IsYANGGoStruct() {}

// GetSetName retrieves the value of the leaf SetName from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetName is set, it can
// safely use t.GetSetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetName == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) GetSetName() string {
	if t == nil || t.SetName == nil {
		return ""
	}
	return *t.SetName
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State.
func (*OpenconfigAcl_Acl_Interfaces_Interface_EgressAclSets_EgressAclSet_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets represents the /openconfig-acl/acl/interfaces/interface/ingress-acl-sets YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	IngressAclSet  map[OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet `path:"ingress-acl-set" module:"openconfig-acl"`
	ΛIngressAclSet []ygot.Annotation                                                                                                                                `path:"@ingress-acl-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) IsYANGGoStruct() {}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key represents the key for list IngressAclSet of element /openconfig-acl/acl/interfaces/interface/ingress-acl-sets.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key struct {
	SetName string                   `path:"set-name"`
	Type    E_OpenconfigAcl_ACL_TYPE `path:"type"`
}

// IsYANGGoKeyStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key) IsYANGGoKeyStruct() {}

// ΛListKeyMap returns the values of the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key key struct.
func (t OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"set-name": t.SetName,
		"type":     t.Type,
	}, nil
}

// NewIngressAclSet creates a new entry in the IngressAclSet list of the
// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) NewIngressAclSet(SetName string, Type E_OpenconfigAcl_ACL_TYPE) (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.IngressAclSet == nil {
		t.IngressAclSet = make(map[OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet)
	}

	key := OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key{
		SetName: SetName,
		Type:    Type,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.IngressAclSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list IngressAclSet", key)
	}

	t.IngressAclSet[key] = &OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet{
		SetName: &SetName,
		Type:    Type,
	}

	return t.IngressAclSet[key], nil
}

// RenameIngressAclSet renames an entry in the list IngressAclSet within
// the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) RenameIngressAclSet(oldK, newK OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key) error {
	if _, ok := t.IngressAclSet[newK]; ok {
		return fmt.Errorf("key %v already exists in IngressAclSet", newK)
	}

	e, ok := t.IngressAclSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in IngressAclSet", oldK)
	}
	e.SetName = &newK.SetName
	e.Type = newK.Type

	t.IngressAclSet[newK] = e
	delete(t.IngressAclSet, oldK)
	return nil
}

// GetOrCreateIngressAclSetMap returns the list (map) from OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) GetOrCreateIngressAclSetMap() map[OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet {
	if t.IngressAclSet == nil {
		t.IngressAclSet = make(map[OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet)
	}
	return t.IngressAclSet
}

// GetOrCreateIngressAclSet retrieves the value with the specified keys from
// the receiver OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) GetOrCreateIngressAclSet(SetName string, Type E_OpenconfigAcl_ACL_TYPE) *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet {

	key := OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key{
		SetName: SetName,
		Type:    Type,
	}

	if v, ok := t.IngressAclSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIngressAclSet(SetName, Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIngressAclSet got unexpected error: %v", err))
	}
	return v
}

// GetIngressAclSet retrieves the value with the specified key from
// the IngressAclSet map field of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) GetIngressAclSet(SetName string, Type E_OpenconfigAcl_ACL_TYPE) *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet {

	if t == nil {
		return nil
	}

	key := OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key{
		SetName: SetName,
		Type:    Type,
	}

	if lm, ok := t.IngressAclSet[key]; ok {
		return lm
	}
	return nil
}

// AppendIngressAclSet appends the supplied OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet struct to the
// list IngressAclSet of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets. If the key value(s) specified in
// the supplied OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet already exist in the list, an error is
// returned.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) AppendIngressAclSet(v *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) error {
	if v.SetName == nil {
		return fmt.Errorf("invalid nil key for SetName")
	}

	key := OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key{
		SetName: *v.SetName,
		Type:    v.Type,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.IngressAclSet == nil {
		t.IngressAclSet = make(map[OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Key]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet)
	}

	if _, ok := t.IngressAclSet[key]; ok {
		return fmt.Errorf("duplicate key for list IngressAclSet %v", key)
	}

	t.IngressAclSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.IngressAclSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet represents the /openconfig-acl/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet struct {
	ΛMetadata   []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	AclEntries  *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries `path:"acl-entries" module:"openconfig-acl"`
	ΛAclEntries []ygot.Annotation                                                               `path:"@acl-entries" ygotAnnotation:"true"`
	Config      *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config     `path:"config" module:"openconfig-acl"`
	ΛConfig     []ygot.Annotation                                                               `path:"@config" ygotAnnotation:"true"`
	SetName     *string                                                                         `path:"set-name" module:"openconfig-acl"`
	ΛSetName    []ygot.Annotation                                                               `path:"@set-name" ygotAnnotation:"true"`
	State       *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State      `path:"state" module:"openconfig-acl"`
	ΛState      []ygot.Annotation                                                               `path:"@state" ygotAnnotation:"true"`
	Type        E_OpenconfigAcl_ACL_TYPE                                                        `path:"type" module:"openconfig-acl"`
	ΛType       []ygot.Annotation                                                               `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) IsYANGGoStruct() {}

// GetOrCreateAclEntries retrieves the value of the AclEntries field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetOrCreateAclEntries() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries {
	if t.AclEntries != nil {
		return t.AclEntries
	}
	t.AclEntries = &OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries{}
	return t.AclEntries
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetOrCreateConfig() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetOrCreateState() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State{}
	return t.State
}

// GetAclEntries returns the value of the AclEntries struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet. If the receiver or the field AclEntries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetAclEntries() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries {
	if t != nil && t.AclEntries != nil {
		return t.AclEntries
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetConfig() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetState() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSetName retrieves the value of the leaf SetName from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetName is set, it can
// safely use t.GetSetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetName == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetSetName() string {
	if t == nil || t.SetName == nil {
		return ""
	}
	return *t.SetName
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AclEntries.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet struct, which is a YANG list entry.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SetName == nil {
		return nil, fmt.Errorf("nil value for key SetName")
	}

	return map[string]interface{}{
		"set-name": *t.SetName,
		"type":     t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries represents the /openconfig-acl/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/acl-entries YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries struct {
	ΛMetadata []ygot.Annotation                                                                                   `path:"@" ygotAnnotation:"true"`
	AclEntry  map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry `path:"acl-entry" module:"openconfig-acl"`
	ΛAclEntry []ygot.Annotation                                                                                   `path:"@acl-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) IsYANGGoStruct() {
}

// NewAclEntry creates a new entry in the AclEntry list of the
// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) NewAclEntry(SequenceId uint32) (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry)
	}

	key := SequenceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AclEntry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AclEntry", key)
	}

	t.AclEntry[key] = &OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry{
		SequenceId: &SequenceId,
	}

	return t.AclEntry[key], nil
}

// RenameAclEntry renames an entry in the list AclEntry within
// the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) RenameAclEntry(oldK, newK uint32) error {
	if _, ok := t.AclEntry[newK]; ok {
		return fmt.Errorf("key %v already exists in AclEntry", newK)
	}

	e, ok := t.AclEntry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AclEntry", oldK)
	}
	e.SequenceId = &newK

	t.AclEntry[newK] = e
	delete(t.AclEntry, oldK)
	return nil
}

// GetOrCreateAclEntryMap returns the list (map) from OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) GetOrCreateAclEntryMap() map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry {
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry)
	}
	return t.AclEntry
}

// GetOrCreateAclEntry retrieves the value with the specified keys from
// the receiver OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) GetOrCreateAclEntry(SequenceId uint32) *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry {

	key := SequenceId

	if v, ok := t.AclEntry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAclEntry(SequenceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAclEntry got unexpected error: %v", err))
	}
	return v
}

// GetAclEntry retrieves the value with the specified key from
// the AclEntry map field of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) GetAclEntry(SequenceId uint32) *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry {

	if t == nil {
		return nil
	}

	key := SequenceId

	if lm, ok := t.AclEntry[key]; ok {
		return lm
	}
	return nil
}

// AppendAclEntry appends the supplied OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry struct to the
// list AclEntry of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries. If the key value(s) specified in
// the supplied OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry already exist in the list, an error is
// returned.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) AppendAclEntry(v *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) error {
	if v.SequenceId == nil {
		return fmt.Errorf("invalid nil key received for SequenceId")
	}

	key := *v.SequenceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AclEntry == nil {
		t.AclEntry = make(map[uint32]*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry)
	}

	if _, ok := t.AclEntry[key]; ok {
		return fmt.Errorf("duplicate key for list AclEntry %v", key)
	}

	t.AclEntry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AclEntry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry represents the /openconfig-acl/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/acl-entries/acl-entry YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry struct {
	ΛMetadata   []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	SequenceId  *uint32                                                                                        `path:"sequence-id" module:"openconfig-acl"`
	ΛSequenceId []ygot.Annotation                                                                              `path:"@sequence-id" ygotAnnotation:"true"`
	State       *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State `path:"state" module:"openconfig-acl"`
	ΛState      []ygot.Annotation                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) GetOrCreateState() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) GetState() *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry struct, which is a YANG list entry.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SequenceId == nil {
		return nil, fmt.Errorf("nil value for key SequenceId")
	}

	return map[string]interface{}{
		"sequence-id": *t.SequenceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State represents the /openconfig-acl/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/acl-entries/acl-entry/state YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MatchedOctets   *uint64           `path:"matched-octets" module:"openconfig-acl"`
	ΛMatchedOctets  []ygot.Annotation `path:"@matched-octets" ygotAnnotation:"true"`
	MatchedPackets  *uint64           `path:"matched-packets" module:"openconfig-acl"`
	ΛMatchedPackets []ygot.Annotation `path:"@matched-packets" ygotAnnotation:"true"`
	SequenceId      *uint32           `path:"sequence-id" module:"openconfig-acl"`
	ΛSequenceId     []ygot.Annotation `path:"@sequence-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) IsYANGGoStruct() {
}

// GetMatchedOctets retrieves the value of the leaf MatchedOctets from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedOctets is set, it can
// safely use t.GetMatchedOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) GetMatchedOctets() uint64 {
	if t == nil || t.MatchedOctets == nil {
		return 0
	}
	return *t.MatchedOctets
}

// GetMatchedPackets retrieves the value of the leaf MatchedPackets from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedPackets is set, it can
// safely use t.GetMatchedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) GetMatchedPackets() uint64 {
	if t == nil || t.MatchedPackets == nil {
		return 0
	}
	return *t.MatchedPackets
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_AclEntries_AclEntry_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config represents the /openconfig-acl/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/config YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config struct {
	ΛMetadata []ygot.Annotation        `path:"@" ygotAnnotation:"true"`
	SetName   *string                  `path:"set-name" module:"openconfig-acl"`
	ΛSetName  []ygot.Annotation        `path:"@set-name" ygotAnnotation:"true"`
	Type      E_OpenconfigAcl_ACL_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) IsYANGGoStruct() {}

// GetSetName retrieves the value of the leaf SetName from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetName is set, it can
// safely use t.GetSetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetName == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) GetSetName() string {
	if t == nil || t.SetName == nil {
		return ""
	}
	return *t.SetName
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State represents the /openconfig-acl/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/state YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State struct {
	ΛMetadata []ygot.Annotation        `path:"@" ygotAnnotation:"true"`
	SetName   *string                  `path:"set-name" module:"openconfig-acl"`
	ΛSetName  []ygot.Annotation        `path:"@set-name" ygotAnnotation:"true"`
	Type      E_OpenconfigAcl_ACL_TYPE `path:"type" module:"openconfig-acl"`
	ΛType     []ygot.Annotation        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) IsYANGGoStruct() {}

// GetSetName retrieves the value of the leaf SetName from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetName is set, it can
// safely use t.GetSetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetName == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) GetSetName() string {
	if t == nil || t.SetName == nil {
		return ""
	}
	return *t.SetName
}

// GetType retrieves the value of the leaf Type from the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) GetType() E_OpenconfigAcl_ACL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State.
func (*OpenconfigAcl_Acl_Interfaces_Interface_IngressAclSets_IngressAclSet_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef represents the /openconfig-acl/acl/interfaces/interface/interface-ref YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-acl"`
	ΛConfig   []ygot.Annotation                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-acl"`
	ΛState    []ygot.Annotation                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef.
func (*OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-acl/acl/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-acl"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-acl"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State represents the /openconfig-acl/acl/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-acl"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-acl"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigAcl_Acl_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_Interfaces_Interface_State represents the /openconfig-acl/acl/interfaces/interface/state YANG schema element.
type OpenconfigAcl_Acl_Interfaces_Interface_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Id        *string           `path:"id" module:"openconfig-acl"`
	ΛId       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_Interfaces_Interface_State) IsYANGGoStruct() {}

// GetId retrieves the value of the leaf Id from the OpenconfigAcl_Acl_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_Interfaces_Interface_State.
func (*OpenconfigAcl_Acl_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigAcl_Acl_State represents the /openconfig-acl/acl/state YANG schema element.
type OpenconfigAcl_Acl_State struct {
	ΛMetadata          []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	CounterCapability  E_OpenconfigAcl_ACL_COUNTER_CAPABILITY `path:"counter-capability" module:"openconfig-acl"`
	ΛCounterCapability []ygot.Annotation                      `path:"@counter-capability" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigAcl_Acl_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigAcl_Acl_State) IsYANGGoStruct() {}

// GetCounterCapability retrieves the value of the leaf CounterCapability from the OpenconfigAcl_Acl_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CounterCapability is set, it can
// safely use t.GetCounterCapability() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CounterCapability == nil' before retrieving the leaf's value.
func (t *OpenconfigAcl_Acl_State) GetCounterCapability() E_OpenconfigAcl_ACL_COUNTER_CAPABILITY {
	if t == nil || t.CounterCapability == 0 {
		return 0
	}
	return t.CounterCapability
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigAcl_Acl_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigAcl_Acl_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigAcl_Acl_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigAcl_Acl_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigAcl_Acl_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigAcl_Acl_State.
func (*OpenconfigAcl_Acl_State) ΛBelongingModule() string {
	return "openconfig-acl"
}

// OpenconfigBfd_Bfd represents the /openconfig-bfd/bfd YANG schema element.
type OpenconfigBfd_Bfd struct {
	ΛMetadata   []ygot.Annotation             `path:"@" ygotAnnotation:"true"`
	Interfaces  *OpenconfigBfd_Bfd_Interfaces `path:"interfaces" module:"openconfig-bfd"`
	ΛInterfaces []ygot.Annotation             `path:"@interfaces" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd) IsYANGGoStruct() {}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd) GetOrCreateInterfaces() *OpenconfigBfd_Bfd_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigBfd_Bfd_Interfaces{}
	return t.Interfaces
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigBfd_Bfd. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd) GetInterfaces() *OpenconfigBfd_Bfd_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Interfaces.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd.
func (*OpenconfigBfd_Bfd) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces represents the /openconfig-bfd/bfd/interfaces YANG schema element.
type OpenconfigBfd_Bfd_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                  `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigBfd_Bfd_Interfaces_Interface `path:"interface" module:"openconfig-bfd"`
	ΛInterface []ygot.Annotation                                  `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces) IsYANGGoStruct() {}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigBfd_Bfd_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigBfd_Bfd_Interfaces) NewInterface(Id string) (*OpenconfigBfd_Bfd_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigBfd_Bfd_Interfaces_Interface{
		Id: &Id,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigBfd_Bfd_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigBfd_Bfd_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.Id = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigBfd_Bfd_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigBfd_Bfd_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigBfd_Bfd_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigBfd_Bfd_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigBfd_Bfd_Interfaces) GetOrCreateInterface(Id string) *OpenconfigBfd_Bfd_Interfaces_Interface {

	key := Id

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigBfd_Bfd_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces) GetInterface(Id string) *OpenconfigBfd_Bfd_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigBfd_Bfd_Interfaces_Interface struct to the
// list Interface of OpenconfigBfd_Bfd_Interfaces. If the key value(s) specified in
// the supplied OpenconfigBfd_Bfd_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigBfd_Bfd_Interfaces) AppendInterface(v *OpenconfigBfd_Bfd_Interfaces_Interface) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces.
func (*OpenconfigBfd_Bfd_Interfaces) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface represents the /openconfig-bfd/bfd/interfaces/interface YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface struct {
	ΛMetadata         []ygot.Annotation                                        `path:"@" ygotAnnotation:"true"`
	Config            *OpenconfigBfd_Bfd_Interfaces_Interface_Config           `path:"config" module:"openconfig-bfd"`
	ΛConfig           []ygot.Annotation                                        `path:"@config" ygotAnnotation:"true"`
	Id                *string                                                  `path:"id" module:"openconfig-bfd"`
	ΛId               []ygot.Annotation                                        `path:"@id" ygotAnnotation:"true"`
	InterfaceRef      *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef     `path:"interface-ref" module:"openconfig-bfd"`
	ΛInterfaceRef     []ygot.Annotation                                        `path:"@interface-ref" ygotAnnotation:"true"`
	MicroBfdSessions  *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions `path:"micro-bfd-sessions" module:"openconfig-bfd"`
	ΛMicroBfdSessions []ygot.Annotation                                        `path:"@micro-bfd-sessions" ygotAnnotation:"true"`
	Peers             *OpenconfigBfd_Bfd_Interfaces_Interface_Peers            `path:"peers" module:"openconfig-bfd"`
	ΛPeers            []ygot.Annotation                                        `path:"@peers" ygotAnnotation:"true"`
	State             *OpenconfigBfd_Bfd_Interfaces_Interface_State            `path:"state" module:"openconfig-bfd"`
	ΛState            []ygot.Annotation                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetOrCreateConfig() *OpenconfigBfd_Bfd_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigBfd_Bfd_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateMicroBfdSessions retrieves the value of the MicroBfdSessions field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetOrCreateMicroBfdSessions() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions {
	if t.MicroBfdSessions != nil {
		return t.MicroBfdSessions
	}
	t.MicroBfdSessions = &OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions{}
	return t.MicroBfdSessions
}

// GetOrCreatePeers retrieves the value of the Peers field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetOrCreatePeers() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers {
	if t.Peers != nil {
		return t.Peers
	}
	t.Peers = &OpenconfigBfd_Bfd_Interfaces_Interface_Peers{}
	return t.Peers
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetOrCreateState() *OpenconfigBfd_Bfd_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigBfd_Bfd_Interfaces_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetConfig() *OpenconfigBfd_Bfd_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetInterfaceRef() *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetMicroBfdSessions returns the value of the MicroBfdSessions struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface. If the receiver or the field MicroBfdSessions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetMicroBfdSessions() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions {
	if t != nil && t.MicroBfdSessions != nil {
		return t.MicroBfdSessions
	}
	return nil
}

// GetPeers returns the value of the Peers struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface. If the receiver or the field Peers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetPeers() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers {
	if t != nil && t.Peers != nil {
		return t.Peers
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetState() *OpenconfigBfd_Bfd_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigBfd_Bfd_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.MicroBfdSessions.PopulateDefaults()
	t.Peers.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigBfd_Bfd_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface.
func (*OpenconfigBfd_Bfd_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_Config represents the /openconfig-bfd/bfd/interfaces/interface/config YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_Config struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DesiredMinimumTxInterval  *uint32           `path:"desired-minimum-tx-interval" module:"openconfig-bfd"`
	ΛDesiredMinimumTxInterval []ygot.Annotation `path:"@desired-minimum-tx-interval" ygotAnnotation:"true"`
	DetectionMultiplier       *uint8            `path:"detection-multiplier" module:"openconfig-bfd"`
	ΛDetectionMultiplier      []ygot.Annotation `path:"@detection-multiplier" ygotAnnotation:"true"`
	EnablePerMemberLink       *bool             `path:"enable-per-member-link" module:"openconfig-bfd"`
	ΛEnablePerMemberLink      []ygot.Annotation `path:"@enable-per-member-link" ygotAnnotation:"true"`
	Enabled                   *bool             `path:"enabled" module:"openconfig-bfd"`
	ΛEnabled                  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Id                        *string           `path:"id" module:"openconfig-bfd"`
	ΛId                       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	LocalAddress              *string           `path:"local-address" module:"openconfig-bfd"`
	ΛLocalAddress             []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	RequiredMinimumReceive    *uint32           `path:"required-minimum-receive" module:"openconfig-bfd"`
	ΛRequiredMinimumReceive   []ygot.Annotation `path:"@required-minimum-receive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Config) IsYANGGoStruct() {}

// GetDesiredMinimumTxInterval retrieves the value of the leaf DesiredMinimumTxInterval from the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DesiredMinimumTxInterval is set, it can
// safely use t.GetDesiredMinimumTxInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DesiredMinimumTxInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) GetDesiredMinimumTxInterval() uint32 {
	if t == nil || t.DesiredMinimumTxInterval == nil {
		return 0
	}
	return *t.DesiredMinimumTxInterval
}

// GetDetectionMultiplier retrieves the value of the leaf DetectionMultiplier from the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DetectionMultiplier is set, it can
// safely use t.GetDetectionMultiplier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DetectionMultiplier == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) GetDetectionMultiplier() uint8 {
	if t == nil || t.DetectionMultiplier == nil {
		return 0
	}
	return *t.DetectionMultiplier
}

// GetEnablePerMemberLink retrieves the value of the leaf EnablePerMemberLink from the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnablePerMemberLink is set, it can
// safely use t.GetEnablePerMemberLink() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnablePerMemberLink == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) GetEnablePerMemberLink() bool {
	if t == nil || t.EnablePerMemberLink == nil {
		return false
	}
	return *t.EnablePerMemberLink
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetId retrieves the value of the leaf Id from the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetRequiredMinimumReceive retrieves the value of the leaf RequiredMinimumReceive from the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RequiredMinimumReceive is set, it can
// safely use t.GetRequiredMinimumReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RequiredMinimumReceive == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) GetRequiredMinimumReceive() uint32 {
	if t == nil || t.RequiredMinimumReceive == nil {
		return 0
	}
	return *t.RequiredMinimumReceive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.EnablePerMemberLink == nil {
		var v bool = false
		t.EnablePerMemberLink = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_Config.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef represents the /openconfig-bfd/bfd/interfaces/interface/interface-ref YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-bfd"`
	ΛConfig   []ygot.Annotation                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-bfd"`
	ΛState    []ygot.Annotation                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-bfd/bfd/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-bfd"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-bfd"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State represents the /openconfig-bfd/bfd/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-bfd"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-bfd"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions represents the /openconfig-bfd/bfd/interfaces/interface/micro-bfd-sessions YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions struct {
	ΛMetadata        []ygot.Annotation                                                                   `path:"@" ygotAnnotation:"true"`
	MicroBfdSession  map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession `path:"micro-bfd-session" module:"openconfig-bfd"`
	ΛMicroBfdSession []ygot.Annotation                                                                   `path:"@micro-bfd-session" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) IsYANGGoStruct() {}

// NewMicroBfdSession creates a new entry in the MicroBfdSession list of the
// OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) NewMicroBfdSession(MemberInterface string) (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MicroBfdSession == nil {
		t.MicroBfdSession = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession)
	}

	key := MemberInterface

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.MicroBfdSession[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list MicroBfdSession", key)
	}

	t.MicroBfdSession[key] = &OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession{
		MemberInterface: &MemberInterface,
	}

	return t.MicroBfdSession[key], nil
}

// RenameMicroBfdSession renames an entry in the list MicroBfdSession within
// the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) RenameMicroBfdSession(oldK, newK string) error {
	if _, ok := t.MicroBfdSession[newK]; ok {
		return fmt.Errorf("key %v already exists in MicroBfdSession", newK)
	}

	e, ok := t.MicroBfdSession[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in MicroBfdSession", oldK)
	}
	e.MemberInterface = &newK

	t.MicroBfdSession[newK] = e
	delete(t.MicroBfdSession, oldK)
	return nil
}

// GetOrCreateMicroBfdSessionMap returns the list (map) from OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions.
//
// It initializes the field if not already initialized.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) GetOrCreateMicroBfdSessionMap() map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession {
	if t.MicroBfdSession == nil {
		t.MicroBfdSession = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession)
	}
	return t.MicroBfdSession
}

// GetOrCreateMicroBfdSession retrieves the value with the specified keys from
// the receiver OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) GetOrCreateMicroBfdSession(MemberInterface string) *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession {

	key := MemberInterface

	if v, ok := t.MicroBfdSession[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewMicroBfdSession(MemberInterface)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateMicroBfdSession got unexpected error: %v", err))
	}
	return v
}

// GetMicroBfdSession retrieves the value with the specified key from
// the MicroBfdSession map field of OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) GetMicroBfdSession(MemberInterface string) *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession {

	if t == nil {
		return nil
	}

	key := MemberInterface

	if lm, ok := t.MicroBfdSession[key]; ok {
		return lm
	}
	return nil
}

// AppendMicroBfdSession appends the supplied OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession struct to the
// list MicroBfdSession of OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions. If the key value(s) specified in
// the supplied OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession already exist in the list, an error is
// returned.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) AppendMicroBfdSession(v *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) error {
	if v.MemberInterface == nil {
		return fmt.Errorf("invalid nil key received for MemberInterface")
	}

	key := *v.MemberInterface

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MicroBfdSession == nil {
		t.MicroBfdSession = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession)
	}

	if _, ok := t.MicroBfdSession[key]; ok {
		return fmt.Errorf("duplicate key for list MicroBfdSession %v", key)
	}

	t.MicroBfdSession[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.MicroBfdSession {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession represents the /openconfig-bfd/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession struct {
	ΛMetadata        []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	Config           *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config `path:"config" module:"openconfig-bfd"`
	ΛConfig          []ygot.Annotation                                                               `path:"@config" ygotAnnotation:"true"`
	MemberInterface  *string                                                                         `path:"member-interface" module:"openconfig-bfd"`
	ΛMemberInterface []ygot.Annotation                                                               `path:"@member-interface" ygotAnnotation:"true"`
	State            *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State  `path:"state" module:"openconfig-bfd"`
	ΛState           []ygot.Annotation                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) GetOrCreateConfig() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) GetOrCreateState() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) GetConfig() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) GetState() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMemberInterface retrieves the value of the leaf MemberInterface from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MemberInterface is set, it can
// safely use t.GetMemberInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MemberInterface == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) GetMemberInterface() string {
	if t == nil || t.MemberInterface == nil {
		return ""
	}
	return *t.MemberInterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession struct, which is a YANG list entry.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MemberInterface == nil {
		return nil, fmt.Errorf("nil value for key MemberInterface")
	}

	return map[string]interface{}{
		"member-interface": *t.MemberInterface,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config represents the /openconfig-bfd/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session/config YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LocalAddress     *string           `path:"local-address" module:"openconfig-bfd"`
	ΛLocalAddress    []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	MemberInterface  *string           `path:"member-interface" module:"openconfig-bfd"`
	ΛMemberInterface []ygot.Annotation `path:"@member-interface" ygotAnnotation:"true"`
	RemoteAddress    *string           `path:"remote-address" module:"openconfig-bfd"`
	ΛRemoteAddress   []ygot.Annotation `path:"@remote-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) IsYANGGoStruct() {
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetMemberInterface retrieves the value of the leaf MemberInterface from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MemberInterface is set, it can
// safely use t.GetMemberInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MemberInterface == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) GetMemberInterface() string {
	if t == nil || t.MemberInterface == nil {
		return ""
	}
	return *t.MemberInterface
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_Config) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State represents the /openconfig-bfd/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session/state YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State struct {
	ΛMetadata                      []ygot.Annotation                                                                    `path:"@" ygotAnnotation:"true"`
	Async                          *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async `path:"async" module:"openconfig-bfd"`
	ΛAsync                         []ygot.Annotation                                                                    `path:"@async" ygotAnnotation:"true"`
	DemandModeRequested            *bool                                                                                `path:"demand-mode-requested" module:"openconfig-bfd"`
	ΛDemandModeRequested           []ygot.Annotation                                                                    `path:"@demand-mode-requested" ygotAnnotation:"true"`
	FailureTransitions             *uint64                                                                              `path:"failure-transitions" module:"openconfig-bfd"`
	ΛFailureTransitions            []ygot.Annotation                                                                    `path:"@failure-transitions" ygotAnnotation:"true"`
	LastFailureTime                *uint64                                                                              `path:"last-failure-time" module:"openconfig-bfd"`
	ΛLastFailureTime               []ygot.Annotation                                                                    `path:"@last-failure-time" ygotAnnotation:"true"`
	LocalAddress                   *string                                                                              `path:"local-address" module:"openconfig-bfd"`
	ΛLocalAddress                  []ygot.Annotation                                                                    `path:"@local-address" ygotAnnotation:"true"`
	LocalDiagnosticCode            E_OpenconfigBfd_BfdDiagnosticCode                                                    `path:"local-diagnostic-code" module:"openconfig-bfd"`
	ΛLocalDiagnosticCode           []ygot.Annotation                                                                    `path:"@local-diagnostic-code" ygotAnnotation:"true"`
	LocalDiscriminator             *string                                                                              `path:"local-discriminator" module:"openconfig-bfd"`
	ΛLocalDiscriminator            []ygot.Annotation                                                                    `path:"@local-discriminator" ygotAnnotation:"true"`
	MemberInterface                *string                                                                              `path:"member-interface" module:"openconfig-bfd"`
	ΛMemberInterface               []ygot.Annotation                                                                    `path:"@member-interface" ygotAnnotation:"true"`
	RemoteAddress                  *string                                                                              `path:"remote-address" module:"openconfig-bfd"`
	ΛRemoteAddress                 []ygot.Annotation                                                                    `path:"@remote-address" ygotAnnotation:"true"`
	RemoteAuthenticationEnabled    *bool                                                                                `path:"remote-authentication-enabled" module:"openconfig-bfd"`
	ΛRemoteAuthenticationEnabled   []ygot.Annotation                                                                    `path:"@remote-authentication-enabled" ygotAnnotation:"true"`
	RemoteControlPlaneIndependent  *bool                                                                                `path:"remote-control-plane-independent" module:"openconfig-bfd"`
	ΛRemoteControlPlaneIndependent []ygot.Annotation                                                                    `path:"@remote-control-plane-independent" ygotAnnotation:"true"`
	RemoteDiagnosticCode           E_OpenconfigBfd_BfdDiagnosticCode                                                    `path:"remote-diagnostic-code" module:"openconfig-bfd"`
	ΛRemoteDiagnosticCode          []ygot.Annotation                                                                    `path:"@remote-diagnostic-code" ygotAnnotation:"true"`
	RemoteDiscriminator            *string                                                                              `path:"remote-discriminator" module:"openconfig-bfd"`
	ΛRemoteDiscriminator           []ygot.Annotation                                                                    `path:"@remote-discriminator" ygotAnnotation:"true"`
	RemoteMinimumReceiveInterval   *uint32                                                                              `path:"remote-minimum-receive-interval" module:"openconfig-bfd"`
	ΛRemoteMinimumReceiveInterval  []ygot.Annotation                                                                    `path:"@remote-minimum-receive-interval" ygotAnnotation:"true"`
	RemoteSessionState             E_OpenconfigBfd_BfdSessionState                                                      `path:"remote-session-state" module:"openconfig-bfd"`
	ΛRemoteSessionState            []ygot.Annotation                                                                    `path:"@remote-session-state" ygotAnnotation:"true"`
	SessionState                   E_OpenconfigBfd_BfdSessionState                                                      `path:"session-state" module:"openconfig-bfd"`
	ΛSessionState                  []ygot.Annotation                                                                    `path:"@session-state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) IsYANGGoStruct() {
}

// GetOrCreateAsync retrieves the value of the Async field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetOrCreateAsync() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async {
	if t.Async != nil {
		return t.Async
	}
	t.Async = &OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async{}
	return t.Async
}

// GetAsync returns the value of the Async struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State. If the receiver or the field Async is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetAsync() *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async {
	if t != nil && t.Async != nil {
		return t.Async
	}
	return nil
}

// GetDemandModeRequested retrieves the value of the leaf DemandModeRequested from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DemandModeRequested is set, it can
// safely use t.GetDemandModeRequested() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DemandModeRequested == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetDemandModeRequested() bool {
	if t == nil || t.DemandModeRequested == nil {
		return false
	}
	return *t.DemandModeRequested
}

// GetFailureTransitions retrieves the value of the leaf FailureTransitions from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FailureTransitions is set, it can
// safely use t.GetFailureTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FailureTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetFailureTransitions() uint64 {
	if t == nil || t.FailureTransitions == nil {
		return 0
	}
	return *t.FailureTransitions
}

// GetLastFailureTime retrieves the value of the leaf LastFailureTime from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastFailureTime is set, it can
// safely use t.GetLastFailureTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastFailureTime == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetLastFailureTime() uint64 {
	if t == nil || t.LastFailureTime == nil {
		return 0
	}
	return *t.LastFailureTime
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetLocalDiagnosticCode retrieves the value of the leaf LocalDiagnosticCode from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalDiagnosticCode is set, it can
// safely use t.GetLocalDiagnosticCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalDiagnosticCode == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetLocalDiagnosticCode() E_OpenconfigBfd_BfdDiagnosticCode {
	if t == nil || t.LocalDiagnosticCode == 0 {
		return 0
	}
	return t.LocalDiagnosticCode
}

// GetLocalDiscriminator retrieves the value of the leaf LocalDiscriminator from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalDiscriminator is set, it can
// safely use t.GetLocalDiscriminator() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalDiscriminator == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetLocalDiscriminator() string {
	if t == nil || t.LocalDiscriminator == nil {
		return ""
	}
	return *t.LocalDiscriminator
}

// GetMemberInterface retrieves the value of the leaf MemberInterface from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MemberInterface is set, it can
// safely use t.GetMemberInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MemberInterface == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetMemberInterface() string {
	if t == nil || t.MemberInterface == nil {
		return ""
	}
	return *t.MemberInterface
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// GetRemoteAuthenticationEnabled retrieves the value of the leaf RemoteAuthenticationEnabled from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAuthenticationEnabled is set, it can
// safely use t.GetRemoteAuthenticationEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAuthenticationEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetRemoteAuthenticationEnabled() bool {
	if t == nil || t.RemoteAuthenticationEnabled == nil {
		return false
	}
	return *t.RemoteAuthenticationEnabled
}

// GetRemoteControlPlaneIndependent retrieves the value of the leaf RemoteControlPlaneIndependent from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteControlPlaneIndependent is set, it can
// safely use t.GetRemoteControlPlaneIndependent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteControlPlaneIndependent == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetRemoteControlPlaneIndependent() bool {
	if t == nil || t.RemoteControlPlaneIndependent == nil {
		return false
	}
	return *t.RemoteControlPlaneIndependent
}

// GetRemoteDiagnosticCode retrieves the value of the leaf RemoteDiagnosticCode from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteDiagnosticCode is set, it can
// safely use t.GetRemoteDiagnosticCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteDiagnosticCode == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetRemoteDiagnosticCode() E_OpenconfigBfd_BfdDiagnosticCode {
	if t == nil || t.RemoteDiagnosticCode == 0 {
		return 0
	}
	return t.RemoteDiagnosticCode
}

// GetRemoteDiscriminator retrieves the value of the leaf RemoteDiscriminator from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteDiscriminator is set, it can
// safely use t.GetRemoteDiscriminator() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteDiscriminator == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetRemoteDiscriminator() string {
	if t == nil || t.RemoteDiscriminator == nil {
		return ""
	}
	return *t.RemoteDiscriminator
}

// GetRemoteMinimumReceiveInterval retrieves the value of the leaf RemoteMinimumReceiveInterval from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteMinimumReceiveInterval is set, it can
// safely use t.GetRemoteMinimumReceiveInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteMinimumReceiveInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetRemoteMinimumReceiveInterval() uint32 {
	if t == nil || t.RemoteMinimumReceiveInterval == nil {
		return 0
	}
	return *t.RemoteMinimumReceiveInterval
}

// GetRemoteSessionState retrieves the value of the leaf RemoteSessionState from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteSessionState is set, it can
// safely use t.GetRemoteSessionState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteSessionState == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetRemoteSessionState() E_OpenconfigBfd_BfdSessionState {
	if t == nil || t.RemoteSessionState == 0 {
		return 0
	}
	return t.RemoteSessionState
}

// GetSessionState retrieves the value of the leaf SessionState from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionState is set, it can
// safely use t.GetSessionState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionState == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) GetSessionState() E_OpenconfigBfd_BfdSessionState {
	if t == nil || t.SessionState == 0 {
		return 0
	}
	return t.SessionState
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Async.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async represents the /openconfig-bfd/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session/state/async YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LastPacketReceived     *uint64           `path:"last-packet-received" module:"openconfig-bfd"`
	ΛLastPacketReceived    []ygot.Annotation `path:"@last-packet-received" ygotAnnotation:"true"`
	LastPacketTransmitted  *uint64           `path:"last-packet-transmitted" module:"openconfig-bfd"`
	ΛLastPacketTransmitted []ygot.Annotation `path:"@last-packet-transmitted" ygotAnnotation:"true"`
	ReceivedPackets        *uint64           `path:"received-packets" module:"openconfig-bfd"`
	ΛReceivedPackets       []ygot.Annotation `path:"@received-packets" ygotAnnotation:"true"`
	TransmittedPackets     *uint64           `path:"transmitted-packets" module:"openconfig-bfd"`
	ΛTransmittedPackets    []ygot.Annotation `path:"@transmitted-packets" ygotAnnotation:"true"`
	UpTransitions          *uint64           `path:"up-transitions" module:"openconfig-bfd"`
	ΛUpTransitions         []ygot.Annotation `path:"@up-transitions" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) IsYANGGoStruct() {
}

// GetLastPacketReceived retrieves the value of the leaf LastPacketReceived from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastPacketReceived is set, it can
// safely use t.GetLastPacketReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastPacketReceived == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) GetLastPacketReceived() uint64 {
	if t == nil || t.LastPacketReceived == nil {
		return 0
	}
	return *t.LastPacketReceived
}

// GetLastPacketTransmitted retrieves the value of the leaf LastPacketTransmitted from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastPacketTransmitted is set, it can
// safely use t.GetLastPacketTransmitted() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastPacketTransmitted == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) GetLastPacketTransmitted() uint64 {
	if t == nil || t.LastPacketTransmitted == nil {
		return 0
	}
	return *t.LastPacketTransmitted
}

// GetReceivedPackets retrieves the value of the leaf ReceivedPackets from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceivedPackets is set, it can
// safely use t.GetReceivedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceivedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) GetReceivedPackets() uint64 {
	if t == nil || t.ReceivedPackets == nil {
		return 0
	}
	return *t.ReceivedPackets
}

// GetTransmittedPackets retrieves the value of the leaf TransmittedPackets from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TransmittedPackets is set, it can
// safely use t.GetTransmittedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TransmittedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) GetTransmittedPackets() uint64 {
	if t == nil || t.TransmittedPackets == nil {
		return 0
	}
	return *t.TransmittedPackets
}

// GetUpTransitions retrieves the value of the leaf UpTransitions from the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpTransitions is set, it can
// safely use t.GetUpTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) GetUpTransitions() uint64 {
	if t == nil || t.UpTransitions == nil {
		return 0
	}
	return *t.UpTransitions
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_MicroBfdSessions_MicroBfdSession_State_Async) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_Peers represents the /openconfig-bfd/bfd/interfaces/interface/peers YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_Peers struct {
	ΛMetadata []ygot.Annotation                                             `path:"@" ygotAnnotation:"true"`
	Peer      map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer `path:"peer" module:"openconfig-bfd"`
	ΛPeer     []ygot.Annotation                                             `path:"@peer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_Peers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers) IsYANGGoStruct() {}

// NewPeer creates a new entry in the Peer list of the
// OpenconfigBfd_Bfd_Interfaces_Interface_Peers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) NewPeer(LocalDiscriminator string) (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Peer == nil {
		t.Peer = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer)
	}

	key := LocalDiscriminator

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Peer[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Peer", key)
	}

	t.Peer[key] = &OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer{
		LocalDiscriminator: &LocalDiscriminator,
	}

	return t.Peer[key], nil
}

// RenamePeer renames an entry in the list Peer within
// the OpenconfigBfd_Bfd_Interfaces_Interface_Peers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) RenamePeer(oldK, newK string) error {
	if _, ok := t.Peer[newK]; ok {
		return fmt.Errorf("key %v already exists in Peer", newK)
	}

	e, ok := t.Peer[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Peer", oldK)
	}
	e.LocalDiscriminator = &newK

	t.Peer[newK] = e
	delete(t.Peer, oldK)
	return nil
}

// GetOrCreatePeerMap returns the list (map) from OpenconfigBfd_Bfd_Interfaces_Interface_Peers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) GetOrCreatePeerMap() map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer {
	if t.Peer == nil {
		t.Peer = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer)
	}
	return t.Peer
}

// GetOrCreatePeer retrieves the value with the specified keys from
// the receiver OpenconfigBfd_Bfd_Interfaces_Interface_Peers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) GetOrCreatePeer(LocalDiscriminator string) *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer {

	key := LocalDiscriminator

	if v, ok := t.Peer[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPeer(LocalDiscriminator)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePeer got unexpected error: %v", err))
	}
	return v
}

// GetPeer retrieves the value with the specified key from
// the Peer map field of OpenconfigBfd_Bfd_Interfaces_Interface_Peers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) GetPeer(LocalDiscriminator string) *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer {

	if t == nil {
		return nil
	}

	key := LocalDiscriminator

	if lm, ok := t.Peer[key]; ok {
		return lm
	}
	return nil
}

// AppendPeer appends the supplied OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer struct to the
// list Peer of OpenconfigBfd_Bfd_Interfaces_Interface_Peers. If the key value(s) specified in
// the supplied OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer already exist in the list, an error is
// returned.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) AppendPeer(v *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) error {
	if v.LocalDiscriminator == nil {
		return fmt.Errorf("invalid nil key received for LocalDiscriminator")
	}

	key := *v.LocalDiscriminator

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Peer == nil {
		t.Peer = make(map[string]*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer)
	}

	if _, ok := t.Peer[key]; ok {
		return fmt.Errorf("duplicate key for list Peer %v", key)
	}

	t.Peer[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_Peers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Peer {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_Peers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_Peers.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer represents the /openconfig-bfd/bfd/interfaces/interface/peers/peer YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer struct {
	ΛMetadata           []ygot.Annotation                                        `path:"@" ygotAnnotation:"true"`
	LocalDiscriminator  *string                                                  `path:"local-discriminator" module:"openconfig-bfd"`
	ΛLocalDiscriminator []ygot.Annotation                                        `path:"@local-discriminator" ygotAnnotation:"true"`
	State               *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State `path:"state" module:"openconfig-bfd"`
	ΛState              []ygot.Annotation                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) IsYANGGoStruct() {}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) GetOrCreateState() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) GetState() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLocalDiscriminator retrieves the value of the leaf LocalDiscriminator from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalDiscriminator is set, it can
// safely use t.GetLocalDiscriminator() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalDiscriminator == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) GetLocalDiscriminator() string {
	if t == nil || t.LocalDiscriminator == nil {
		return ""
	}
	return *t.LocalDiscriminator
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer struct, which is a YANG list entry.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalDiscriminator == nil {
		return nil, fmt.Errorf("nil value for key LocalDiscriminator")
	}

	return map[string]interface{}{
		"local-discriminator": *t.LocalDiscriminator,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State represents the /openconfig-bfd/bfd/interfaces/interface/peers/peer/state YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State struct {
	ΛMetadata                      []ygot.Annotation                                              `path:"@" ygotAnnotation:"true"`
	Async                          *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async `path:"async" module:"openconfig-bfd"`
	ΛAsync                         []ygot.Annotation                                              `path:"@async" ygotAnnotation:"true"`
	DemandModeRequested            *bool                                                          `path:"demand-mode-requested" module:"openconfig-bfd"`
	ΛDemandModeRequested           []ygot.Annotation                                              `path:"@demand-mode-requested" ygotAnnotation:"true"`
	Echo                           *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo  `path:"echo" module:"openconfig-bfd"`
	ΛEcho                          []ygot.Annotation                                              `path:"@echo" ygotAnnotation:"true"`
	FailureTransitions             *uint64                                                        `path:"failure-transitions" module:"openconfig-bfd"`
	ΛFailureTransitions            []ygot.Annotation                                              `path:"@failure-transitions" ygotAnnotation:"true"`
	LastFailureTime                *uint64                                                        `path:"last-failure-time" module:"openconfig-bfd"`
	ΛLastFailureTime               []ygot.Annotation                                              `path:"@last-failure-time" ygotAnnotation:"true"`
	LocalAddress                   *string                                                        `path:"local-address" module:"openconfig-bfd"`
	ΛLocalAddress                  []ygot.Annotation                                              `path:"@local-address" ygotAnnotation:"true"`
	LocalDiagnosticCode            E_OpenconfigBfd_BfdDiagnosticCode                              `path:"local-diagnostic-code" module:"openconfig-bfd"`
	ΛLocalDiagnosticCode           []ygot.Annotation                                              `path:"@local-diagnostic-code" ygotAnnotation:"true"`
	LocalDiscriminator             *string                                                        `path:"local-discriminator" module:"openconfig-bfd"`
	ΛLocalDiscriminator            []ygot.Annotation                                              `path:"@local-discriminator" ygotAnnotation:"true"`
	RemoteAddress                  *string                                                        `path:"remote-address" module:"openconfig-bfd"`
	ΛRemoteAddress                 []ygot.Annotation                                              `path:"@remote-address" ygotAnnotation:"true"`
	RemoteAuthenticationEnabled    *bool                                                          `path:"remote-authentication-enabled" module:"openconfig-bfd"`
	ΛRemoteAuthenticationEnabled   []ygot.Annotation                                              `path:"@remote-authentication-enabled" ygotAnnotation:"true"`
	RemoteControlPlaneIndependent  *bool                                                          `path:"remote-control-plane-independent" module:"openconfig-bfd"`
	ΛRemoteControlPlaneIndependent []ygot.Annotation                                              `path:"@remote-control-plane-independent" ygotAnnotation:"true"`
	RemoteDiagnosticCode           E_OpenconfigBfd_BfdDiagnosticCode                              `path:"remote-diagnostic-code" module:"openconfig-bfd"`
	ΛRemoteDiagnosticCode          []ygot.Annotation                                              `path:"@remote-diagnostic-code" ygotAnnotation:"true"`
	RemoteDiscriminator            *string                                                        `path:"remote-discriminator" module:"openconfig-bfd"`
	ΛRemoteDiscriminator           []ygot.Annotation                                              `path:"@remote-discriminator" ygotAnnotation:"true"`
	RemoteMinimumReceiveInterval   *uint32                                                        `path:"remote-minimum-receive-interval" module:"openconfig-bfd"`
	ΛRemoteMinimumReceiveInterval  []ygot.Annotation                                              `path:"@remote-minimum-receive-interval" ygotAnnotation:"true"`
	RemoteSessionState             E_OpenconfigBfd_BfdSessionState                                `path:"remote-session-state" module:"openconfig-bfd"`
	ΛRemoteSessionState            []ygot.Annotation                                              `path:"@remote-session-state" ygotAnnotation:"true"`
	SessionState                   E_OpenconfigBfd_BfdSessionState                                `path:"session-state" module:"openconfig-bfd"`
	ΛSessionState                  []ygot.Annotation                                              `path:"@session-state" ygotAnnotation:"true"`
	SubscribedProtocols            []E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                `path:"subscribed-protocols" module:"openconfig-bfd"`
	ΛSubscribedProtocols           []ygot.Annotation                                              `path:"@subscribed-protocols" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) IsYANGGoStruct() {}

// GetOrCreateAsync retrieves the value of the Async field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetOrCreateAsync() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async {
	if t.Async != nil {
		return t.Async
	}
	t.Async = &OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async{}
	return t.Async
}

// GetOrCreateEcho retrieves the value of the Echo field
// or returns the existing field if it already exists.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetOrCreateEcho() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo {
	if t.Echo != nil {
		return t.Echo
	}
	t.Echo = &OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo{}
	return t.Echo
}

// GetAsync returns the value of the Async struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State. If the receiver or the field Async is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetAsync() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async {
	if t != nil && t.Async != nil {
		return t.Async
	}
	return nil
}

// GetEcho returns the value of the Echo struct pointer
// from OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State. If the receiver or the field Echo is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetEcho() *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo {
	if t != nil && t.Echo != nil {
		return t.Echo
	}
	return nil
}

// GetDemandModeRequested retrieves the value of the leaf DemandModeRequested from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DemandModeRequested is set, it can
// safely use t.GetDemandModeRequested() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DemandModeRequested == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetDemandModeRequested() bool {
	if t == nil || t.DemandModeRequested == nil {
		return false
	}
	return *t.DemandModeRequested
}

// GetFailureTransitions retrieves the value of the leaf FailureTransitions from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FailureTransitions is set, it can
// safely use t.GetFailureTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FailureTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetFailureTransitions() uint64 {
	if t == nil || t.FailureTransitions == nil {
		return 0
	}
	return *t.FailureTransitions
}

// GetLastFailureTime retrieves the value of the leaf LastFailureTime from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastFailureTime is set, it can
// safely use t.GetLastFailureTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastFailureTime == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetLastFailureTime() uint64 {
	if t == nil || t.LastFailureTime == nil {
		return 0
	}
	return *t.LastFailureTime
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetLocalDiagnosticCode retrieves the value of the leaf LocalDiagnosticCode from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalDiagnosticCode is set, it can
// safely use t.GetLocalDiagnosticCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalDiagnosticCode == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetLocalDiagnosticCode() E_OpenconfigBfd_BfdDiagnosticCode {
	if t == nil || t.LocalDiagnosticCode == 0 {
		return 0
	}
	return t.LocalDiagnosticCode
}

// GetLocalDiscriminator retrieves the value of the leaf LocalDiscriminator from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalDiscriminator is set, it can
// safely use t.GetLocalDiscriminator() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalDiscriminator == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetLocalDiscriminator() string {
	if t == nil || t.LocalDiscriminator == nil {
		return ""
	}
	return *t.LocalDiscriminator
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// GetRemoteAuthenticationEnabled retrieves the value of the leaf RemoteAuthenticationEnabled from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAuthenticationEnabled is set, it can
// safely use t.GetRemoteAuthenticationEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAuthenticationEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetRemoteAuthenticationEnabled() bool {
	if t == nil || t.RemoteAuthenticationEnabled == nil {
		return false
	}
	return *t.RemoteAuthenticationEnabled
}

// GetRemoteControlPlaneIndependent retrieves the value of the leaf RemoteControlPlaneIndependent from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteControlPlaneIndependent is set, it can
// safely use t.GetRemoteControlPlaneIndependent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteControlPlaneIndependent == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetRemoteControlPlaneIndependent() bool {
	if t == nil || t.RemoteControlPlaneIndependent == nil {
		return false
	}
	return *t.RemoteControlPlaneIndependent
}

// GetRemoteDiagnosticCode retrieves the value of the leaf RemoteDiagnosticCode from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteDiagnosticCode is set, it can
// safely use t.GetRemoteDiagnosticCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteDiagnosticCode == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetRemoteDiagnosticCode() E_OpenconfigBfd_BfdDiagnosticCode {
	if t == nil || t.RemoteDiagnosticCode == 0 {
		return 0
	}
	return t.RemoteDiagnosticCode
}

// GetRemoteDiscriminator retrieves the value of the leaf RemoteDiscriminator from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteDiscriminator is set, it can
// safely use t.GetRemoteDiscriminator() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteDiscriminator == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetRemoteDiscriminator() string {
	if t == nil || t.RemoteDiscriminator == nil {
		return ""
	}
	return *t.RemoteDiscriminator
}

// GetRemoteMinimumReceiveInterval retrieves the value of the leaf RemoteMinimumReceiveInterval from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteMinimumReceiveInterval is set, it can
// safely use t.GetRemoteMinimumReceiveInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteMinimumReceiveInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetRemoteMinimumReceiveInterval() uint32 {
	if t == nil || t.RemoteMinimumReceiveInterval == nil {
		return 0
	}
	return *t.RemoteMinimumReceiveInterval
}

// GetRemoteSessionState retrieves the value of the leaf RemoteSessionState from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteSessionState is set, it can
// safely use t.GetRemoteSessionState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteSessionState == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetRemoteSessionState() E_OpenconfigBfd_BfdSessionState {
	if t == nil || t.RemoteSessionState == 0 {
		return 0
	}
	return t.RemoteSessionState
}

// GetSessionState retrieves the value of the leaf SessionState from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionState is set, it can
// safely use t.GetSessionState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionState == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetSessionState() E_OpenconfigBfd_BfdSessionState {
	if t == nil || t.SessionState == 0 {
		return 0
	}
	return t.SessionState
}

// GetSubscribedProtocols retrieves the value of the leaf SubscribedProtocols from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SubscribedProtocols is set, it can
// safely use t.GetSubscribedProtocols() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SubscribedProtocols == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) GetSubscribedProtocols() []E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.SubscribedProtocols == nil {
		return nil
	}
	return t.SubscribedProtocols
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Async.PopulateDefaults()
	t.Echo.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async represents the /openconfig-bfd/bfd/interfaces/interface/peers/peer/state/async YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LastPacketReceived     *uint64           `path:"last-packet-received" module:"openconfig-bfd"`
	ΛLastPacketReceived    []ygot.Annotation `path:"@last-packet-received" ygotAnnotation:"true"`
	LastPacketTransmitted  *uint64           `path:"last-packet-transmitted" module:"openconfig-bfd"`
	ΛLastPacketTransmitted []ygot.Annotation `path:"@last-packet-transmitted" ygotAnnotation:"true"`
	ReceivedPackets        *uint64           `path:"received-packets" module:"openconfig-bfd"`
	ΛReceivedPackets       []ygot.Annotation `path:"@received-packets" ygotAnnotation:"true"`
	TransmittedPackets     *uint64           `path:"transmitted-packets" module:"openconfig-bfd"`
	ΛTransmittedPackets    []ygot.Annotation `path:"@transmitted-packets" ygotAnnotation:"true"`
	UpTransitions          *uint64           `path:"up-transitions" module:"openconfig-bfd"`
	ΛUpTransitions         []ygot.Annotation `path:"@up-transitions" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) IsYANGGoStruct() {}

// GetLastPacketReceived retrieves the value of the leaf LastPacketReceived from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastPacketReceived is set, it can
// safely use t.GetLastPacketReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastPacketReceived == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) GetLastPacketReceived() uint64 {
	if t == nil || t.LastPacketReceived == nil {
		return 0
	}
	return *t.LastPacketReceived
}

// GetLastPacketTransmitted retrieves the value of the leaf LastPacketTransmitted from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastPacketTransmitted is set, it can
// safely use t.GetLastPacketTransmitted() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastPacketTransmitted == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) GetLastPacketTransmitted() uint64 {
	if t == nil || t.LastPacketTransmitted == nil {
		return 0
	}
	return *t.LastPacketTransmitted
}

// GetReceivedPackets retrieves the value of the leaf ReceivedPackets from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceivedPackets is set, it can
// safely use t.GetReceivedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceivedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) GetReceivedPackets() uint64 {
	if t == nil || t.ReceivedPackets == nil {
		return 0
	}
	return *t.ReceivedPackets
}

// GetTransmittedPackets retrieves the value of the leaf TransmittedPackets from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TransmittedPackets is set, it can
// safely use t.GetTransmittedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TransmittedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) GetTransmittedPackets() uint64 {
	if t == nil || t.TransmittedPackets == nil {
		return 0
	}
	return *t.TransmittedPackets
}

// GetUpTransitions retrieves the value of the leaf UpTransitions from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpTransitions is set, it can
// safely use t.GetUpTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) GetUpTransitions() uint64 {
	if t == nil || t.UpTransitions == nil {
		return 0
	}
	return *t.UpTransitions
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Async) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo represents the /openconfig-bfd/bfd/interfaces/interface/peers/peer/state/echo YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Active                 *bool             `path:"active" module:"openconfig-bfd"`
	ΛActive                []ygot.Annotation `path:"@active" ygotAnnotation:"true"`
	LastPacketReceived     *uint64           `path:"last-packet-received" module:"openconfig-bfd"`
	ΛLastPacketReceived    []ygot.Annotation `path:"@last-packet-received" ygotAnnotation:"true"`
	LastPacketTransmitted  *uint64           `path:"last-packet-transmitted" module:"openconfig-bfd"`
	ΛLastPacketTransmitted []ygot.Annotation `path:"@last-packet-transmitted" ygotAnnotation:"true"`
	ReceivedPackets        *uint64           `path:"received-packets" module:"openconfig-bfd"`
	ΛReceivedPackets       []ygot.Annotation `path:"@received-packets" ygotAnnotation:"true"`
	TransmittedPackets     *uint64           `path:"transmitted-packets" module:"openconfig-bfd"`
	ΛTransmittedPackets    []ygot.Annotation `path:"@transmitted-packets" ygotAnnotation:"true"`
	UpTransitions          *uint64           `path:"up-transitions" module:"openconfig-bfd"`
	ΛUpTransitions         []ygot.Annotation `path:"@up-transitions" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) IsYANGGoStruct() {}

// GetActive retrieves the value of the leaf Active from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetLastPacketReceived retrieves the value of the leaf LastPacketReceived from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastPacketReceived is set, it can
// safely use t.GetLastPacketReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastPacketReceived == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) GetLastPacketReceived() uint64 {
	if t == nil || t.LastPacketReceived == nil {
		return 0
	}
	return *t.LastPacketReceived
}

// GetLastPacketTransmitted retrieves the value of the leaf LastPacketTransmitted from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastPacketTransmitted is set, it can
// safely use t.GetLastPacketTransmitted() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastPacketTransmitted == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) GetLastPacketTransmitted() uint64 {
	if t == nil || t.LastPacketTransmitted == nil {
		return 0
	}
	return *t.LastPacketTransmitted
}

// GetReceivedPackets retrieves the value of the leaf ReceivedPackets from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceivedPackets is set, it can
// safely use t.GetReceivedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceivedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) GetReceivedPackets() uint64 {
	if t == nil || t.ReceivedPackets == nil {
		return 0
	}
	return *t.ReceivedPackets
}

// GetTransmittedPackets retrieves the value of the leaf TransmittedPackets from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TransmittedPackets is set, it can
// safely use t.GetTransmittedPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TransmittedPackets == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) GetTransmittedPackets() uint64 {
	if t == nil || t.TransmittedPackets == nil {
		return 0
	}
	return *t.TransmittedPackets
}

// GetUpTransitions retrieves the value of the leaf UpTransitions from the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpTransitions is set, it can
// safely use t.GetUpTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) GetUpTransitions() uint64 {
	if t == nil || t.UpTransitions == nil {
		return 0
	}
	return *t.UpTransitions
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_Peers_Peer_State_Echo) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigBfd_Bfd_Interfaces_Interface_State represents the /openconfig-bfd/bfd/interfaces/interface/state YANG schema element.
type OpenconfigBfd_Bfd_Interfaces_Interface_State struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DesiredMinimumTxInterval  *uint32           `path:"desired-minimum-tx-interval" module:"openconfig-bfd"`
	ΛDesiredMinimumTxInterval []ygot.Annotation `path:"@desired-minimum-tx-interval" ygotAnnotation:"true"`
	DetectionMultiplier       *uint8            `path:"detection-multiplier" module:"openconfig-bfd"`
	ΛDetectionMultiplier      []ygot.Annotation `path:"@detection-multiplier" ygotAnnotation:"true"`
	EnablePerMemberLink       *bool             `path:"enable-per-member-link" module:"openconfig-bfd"`
	ΛEnablePerMemberLink      []ygot.Annotation `path:"@enable-per-member-link" ygotAnnotation:"true"`
	Enabled                   *bool             `path:"enabled" module:"openconfig-bfd"`
	ΛEnabled                  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Id                        *string           `path:"id" module:"openconfig-bfd"`
	ΛId                       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	LocalAddress              *string           `path:"local-address" module:"openconfig-bfd"`
	ΛLocalAddress             []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	RequiredMinimumReceive    *uint32           `path:"required-minimum-receive" module:"openconfig-bfd"`
	ΛRequiredMinimumReceive   []ygot.Annotation `path:"@required-minimum-receive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigBfd_Bfd_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_State) IsYANGGoStruct() {}

// GetDesiredMinimumTxInterval retrieves the value of the leaf DesiredMinimumTxInterval from the OpenconfigBfd_Bfd_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DesiredMinimumTxInterval is set, it can
// safely use t.GetDesiredMinimumTxInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DesiredMinimumTxInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) GetDesiredMinimumTxInterval() uint32 {
	if t == nil || t.DesiredMinimumTxInterval == nil {
		return 0
	}
	return *t.DesiredMinimumTxInterval
}

// GetDetectionMultiplier retrieves the value of the leaf DetectionMultiplier from the OpenconfigBfd_Bfd_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DetectionMultiplier is set, it can
// safely use t.GetDetectionMultiplier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DetectionMultiplier == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) GetDetectionMultiplier() uint8 {
	if t == nil || t.DetectionMultiplier == nil {
		return 0
	}
	return *t.DetectionMultiplier
}

// GetEnablePerMemberLink retrieves the value of the leaf EnablePerMemberLink from the OpenconfigBfd_Bfd_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnablePerMemberLink is set, it can
// safely use t.GetEnablePerMemberLink() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnablePerMemberLink == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) GetEnablePerMemberLink() bool {
	if t == nil || t.EnablePerMemberLink == nil {
		return false
	}
	return *t.EnablePerMemberLink
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigBfd_Bfd_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetId retrieves the value of the leaf Id from the OpenconfigBfd_Bfd_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigBfd_Bfd_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetRequiredMinimumReceive retrieves the value of the leaf RequiredMinimumReceive from the OpenconfigBfd_Bfd_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RequiredMinimumReceive is set, it can
// safely use t.GetRequiredMinimumReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RequiredMinimumReceive == nil' before retrieving the leaf's value.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) GetRequiredMinimumReceive() uint32 {
	if t == nil || t.RequiredMinimumReceive == nil {
		return 0
	}
	return *t.RequiredMinimumReceive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigBfd_Bfd_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.EnablePerMemberLink == nil {
		var v bool = false
		t.EnablePerMemberLink = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigBfd_Bfd_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigBfd_Bfd_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigBfd_Bfd_Interfaces_Interface_State.
func (*OpenconfigBfd_Bfd_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-bfd"
}

// OpenconfigDefinedSets_DefinedSets represents the /openconfig-defined-sets/defined-sets YANG schema element.
type OpenconfigDefinedSets_DefinedSets struct {
	ΛMetadata       []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	Ipv4PrefixSets  *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets `path:"ipv4-prefix-sets" module:"openconfig-defined-sets"`
	ΛIpv4PrefixSets []ygot.Annotation                                 `path:"@ipv4-prefix-sets" ygotAnnotation:"true"`
	Ipv6PrefixSets  *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets `path:"ipv6-prefix-sets" module:"openconfig-defined-sets"`
	ΛIpv6PrefixSets []ygot.Annotation                                 `path:"@ipv6-prefix-sets" ygotAnnotation:"true"`
	PortSets        *OpenconfigDefinedSets_DefinedSets_PortSets       `path:"port-sets" module:"openconfig-defined-sets"`
	ΛPortSets       []ygot.Annotation                                 `path:"@port-sets" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets) IsYANGGoStruct() {}

// GetOrCreateIpv4PrefixSets retrieves the value of the Ipv4PrefixSets field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets) GetOrCreateIpv4PrefixSets() *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets {
	if t.Ipv4PrefixSets != nil {
		return t.Ipv4PrefixSets
	}
	t.Ipv4PrefixSets = &OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets{}
	return t.Ipv4PrefixSets
}

// GetOrCreateIpv6PrefixSets retrieves the value of the Ipv6PrefixSets field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets) GetOrCreateIpv6PrefixSets() *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets {
	if t.Ipv6PrefixSets != nil {
		return t.Ipv6PrefixSets
	}
	t.Ipv6PrefixSets = &OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets{}
	return t.Ipv6PrefixSets
}

// GetOrCreatePortSets retrieves the value of the PortSets field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets) GetOrCreatePortSets() *OpenconfigDefinedSets_DefinedSets_PortSets {
	if t.PortSets != nil {
		return t.PortSets
	}
	t.PortSets = &OpenconfigDefinedSets_DefinedSets_PortSets{}
	return t.PortSets
}

// GetIpv4PrefixSets returns the value of the Ipv4PrefixSets struct pointer
// from OpenconfigDefinedSets_DefinedSets. If the receiver or the field Ipv4PrefixSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets) GetIpv4PrefixSets() *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets {
	if t != nil && t.Ipv4PrefixSets != nil {
		return t.Ipv4PrefixSets
	}
	return nil
}

// GetIpv6PrefixSets returns the value of the Ipv6PrefixSets struct pointer
// from OpenconfigDefinedSets_DefinedSets. If the receiver or the field Ipv6PrefixSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets) GetIpv6PrefixSets() *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets {
	if t != nil && t.Ipv6PrefixSets != nil {
		return t.Ipv6PrefixSets
	}
	return nil
}

// GetPortSets returns the value of the PortSets struct pointer
// from OpenconfigDefinedSets_DefinedSets. If the receiver or the field PortSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets) GetPortSets() *OpenconfigDefinedSets_DefinedSets_PortSets {
	if t != nil && t.PortSets != nil {
		return t.PortSets
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ipv4PrefixSets.PopulateDefaults()
	t.Ipv6PrefixSets.PopulateDefaults()
	t.PortSets.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets.
func (*OpenconfigDefinedSets_DefinedSets) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets represents the /openconfig-defined-sets/defined-sets/ipv4-prefix-sets YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets struct {
	ΛMetadata      []ygot.Annotation                                                          `path:"@" ygotAnnotation:"true"`
	Ipv4PrefixSet  map[string]*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet `path:"ipv4-prefix-set" module:"openconfig-defined-sets"`
	ΛIpv4PrefixSet []ygot.Annotation                                                          `path:"@ipv4-prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) IsYANGGoStruct() {}

// NewIpv4PrefixSet creates a new entry in the Ipv4PrefixSet list of the
// OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) NewIpv4PrefixSet(Name string) (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv4PrefixSet == nil {
		t.Ipv4PrefixSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Ipv4PrefixSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Ipv4PrefixSet", key)
	}

	t.Ipv4PrefixSet[key] = &OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet{
		Name: &Name,
	}

	return t.Ipv4PrefixSet[key], nil
}

// RenameIpv4PrefixSet renames an entry in the list Ipv4PrefixSet within
// the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) RenameIpv4PrefixSet(oldK, newK string) error {
	if _, ok := t.Ipv4PrefixSet[newK]; ok {
		return fmt.Errorf("key %v already exists in Ipv4PrefixSet", newK)
	}

	e, ok := t.Ipv4PrefixSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Ipv4PrefixSet", oldK)
	}
	e.Name = &newK

	t.Ipv4PrefixSet[newK] = e
	delete(t.Ipv4PrefixSet, oldK)
	return nil
}

// GetOrCreateIpv4PrefixSetMap returns the list (map) from OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) GetOrCreateIpv4PrefixSetMap() map[string]*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet {
	if t.Ipv4PrefixSet == nil {
		t.Ipv4PrefixSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet)
	}
	return t.Ipv4PrefixSet
}

// GetOrCreateIpv4PrefixSet retrieves the value with the specified keys from
// the receiver OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) GetOrCreateIpv4PrefixSet(Name string) *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet {

	key := Name

	if v, ok := t.Ipv4PrefixSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIpv4PrefixSet(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIpv4PrefixSet got unexpected error: %v", err))
	}
	return v
}

// GetIpv4PrefixSet retrieves the value with the specified key from
// the Ipv4PrefixSet map field of OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) GetIpv4PrefixSet(Name string) *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Ipv4PrefixSet[key]; ok {
		return lm
	}
	return nil
}

// AppendIpv4PrefixSet appends the supplied OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet struct to the
// list Ipv4PrefixSet of OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets. If the key value(s) specified in
// the supplied OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet already exist in the list, an error is
// returned.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) AppendIpv4PrefixSet(v *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv4PrefixSet == nil {
		t.Ipv4PrefixSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet)
	}

	if _, ok := t.Ipv4PrefixSet[key]; ok {
		return fmt.Errorf("duplicate key for list Ipv4PrefixSet %v", key)
	}

	t.Ipv4PrefixSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Ipv4PrefixSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet represents the /openconfig-defined-sets/defined-sets/ipv4-prefix-sets/ipv4-prefix-set YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet struct {
	ΛMetadata []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config `path:"config" module:"openconfig-defined-sets"`
	ΛConfig   []ygot.Annotation                                                      `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                `path:"name" module:"openconfig-defined-sets"`
	ΛName     []ygot.Annotation                                                      `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State  `path:"state" module:"openconfig-defined-sets"`
	ΛState    []ygot.Annotation                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) GetOrCreateConfig() *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) GetOrCreateState() *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) GetConfig() *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) GetState() *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet struct, which is a YANG list entry.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config represents the /openconfig-defined-sets/defined-sets/ipv4-prefix-sets/ipv4-prefix-set/config YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description  *string           `path:"description" module:"openconfig-defined-sets"`
	ΛDescription []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Name         *string           `path:"name" module:"openconfig-defined-sets"`
	ΛName        []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Prefix       []string          `path:"prefix" module:"openconfig-defined-sets"`
	ΛPrefix      []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) GetPrefix() []string {
	if t == nil || t.Prefix == nil {
		return nil
	}
	return t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_Config) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State represents the /openconfig-defined-sets/defined-sets/ipv4-prefix-sets/ipv4-prefix-set/state YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description  *string           `path:"description" module:"openconfig-defined-sets"`
	ΛDescription []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Name         *string           `path:"name" module:"openconfig-defined-sets"`
	ΛName        []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Prefix       []string          `path:"prefix" module:"openconfig-defined-sets"`
	ΛPrefix      []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) GetPrefix() []string {
	if t == nil || t.Prefix == nil {
		return nil
	}
	return t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State.
func (*OpenconfigDefinedSets_DefinedSets_Ipv4PrefixSets_Ipv4PrefixSet_State) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets represents the /openconfig-defined-sets/defined-sets/ipv6-prefix-sets YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets struct {
	ΛMetadata      []ygot.Annotation                                                          `path:"@" ygotAnnotation:"true"`
	Ipv6PrefixSet  map[string]*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet `path:"ipv6-prefix-set" module:"openconfig-defined-sets"`
	ΛIpv6PrefixSet []ygot.Annotation                                                          `path:"@ipv6-prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) IsYANGGoStruct() {}

// NewIpv6PrefixSet creates a new entry in the Ipv6PrefixSet list of the
// OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) NewIpv6PrefixSet(Name string) (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv6PrefixSet == nil {
		t.Ipv6PrefixSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Ipv6PrefixSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Ipv6PrefixSet", key)
	}

	t.Ipv6PrefixSet[key] = &OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet{
		Name: &Name,
	}

	return t.Ipv6PrefixSet[key], nil
}

// RenameIpv6PrefixSet renames an entry in the list Ipv6PrefixSet within
// the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) RenameIpv6PrefixSet(oldK, newK string) error {
	if _, ok := t.Ipv6PrefixSet[newK]; ok {
		return fmt.Errorf("key %v already exists in Ipv6PrefixSet", newK)
	}

	e, ok := t.Ipv6PrefixSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Ipv6PrefixSet", oldK)
	}
	e.Name = &newK

	t.Ipv6PrefixSet[newK] = e
	delete(t.Ipv6PrefixSet, oldK)
	return nil
}

// GetOrCreateIpv6PrefixSetMap returns the list (map) from OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) GetOrCreateIpv6PrefixSetMap() map[string]*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet {
	if t.Ipv6PrefixSet == nil {
		t.Ipv6PrefixSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet)
	}
	return t.Ipv6PrefixSet
}

// GetOrCreateIpv6PrefixSet retrieves the value with the specified keys from
// the receiver OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) GetOrCreateIpv6PrefixSet(Name string) *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet {

	key := Name

	if v, ok := t.Ipv6PrefixSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIpv6PrefixSet(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIpv6PrefixSet got unexpected error: %v", err))
	}
	return v
}

// GetIpv6PrefixSet retrieves the value with the specified key from
// the Ipv6PrefixSet map field of OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) GetIpv6PrefixSet(Name string) *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Ipv6PrefixSet[key]; ok {
		return lm
	}
	return nil
}

// AppendIpv6PrefixSet appends the supplied OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet struct to the
// list Ipv6PrefixSet of OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets. If the key value(s) specified in
// the supplied OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet already exist in the list, an error is
// returned.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) AppendIpv6PrefixSet(v *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv6PrefixSet == nil {
		t.Ipv6PrefixSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet)
	}

	if _, ok := t.Ipv6PrefixSet[key]; ok {
		return fmt.Errorf("duplicate key for list Ipv6PrefixSet %v", key)
	}

	t.Ipv6PrefixSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Ipv6PrefixSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet represents the /openconfig-defined-sets/defined-sets/ipv6-prefix-sets/ipv6-prefix-set YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet struct {
	ΛMetadata []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config `path:"config" module:"openconfig-defined-sets"`
	ΛConfig   []ygot.Annotation                                                      `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                `path:"name" module:"openconfig-defined-sets"`
	ΛName     []ygot.Annotation                                                      `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State  `path:"state" module:"openconfig-defined-sets"`
	ΛState    []ygot.Annotation                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) GetOrCreateConfig() *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) GetOrCreateState() *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) GetConfig() *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) GetState() *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet struct, which is a YANG list entry.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config represents the /openconfig-defined-sets/defined-sets/ipv6-prefix-sets/ipv6-prefix-set/config YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description  *string           `path:"description" module:"openconfig-defined-sets"`
	ΛDescription []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Name         *string           `path:"name" module:"openconfig-defined-sets"`
	ΛName        []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Prefix       []string          `path:"prefix" module:"openconfig-defined-sets"`
	ΛPrefix      []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) GetPrefix() []string {
	if t == nil || t.Prefix == nil {
		return nil
	}
	return t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_Config) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State represents the /openconfig-defined-sets/defined-sets/ipv6-prefix-sets/ipv6-prefix-set/state YANG schema element.
type OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description  *string           `path:"description" module:"openconfig-defined-sets"`
	ΛDescription []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Name         *string           `path:"name" module:"openconfig-defined-sets"`
	ΛName        []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Prefix       []string          `path:"prefix" module:"openconfig-defined-sets"`
	ΛPrefix      []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) GetPrefix() []string {
	if t == nil || t.Prefix == nil {
		return nil
	}
	return t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State.
func (*OpenconfigDefinedSets_DefinedSets_Ipv6PrefixSets_Ipv6PrefixSet_State) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_PortSets represents the /openconfig-defined-sets/defined-sets/port-sets YANG schema element.
type OpenconfigDefinedSets_DefinedSets_PortSets struct {
	ΛMetadata []ygot.Annotation                                              `path:"@" ygotAnnotation:"true"`
	PortSet   map[string]*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet `path:"port-set" module:"openconfig-defined-sets"`
	ΛPortSet  []ygot.Annotation                                              `path:"@port-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_PortSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_PortSets) IsYANGGoStruct() {}

// NewPortSet creates a new entry in the PortSet list of the
// OpenconfigDefinedSets_DefinedSets_PortSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) NewPortSet(Name string) (*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PortSet == nil {
		t.PortSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PortSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PortSet", key)
	}

	t.PortSet[key] = &OpenconfigDefinedSets_DefinedSets_PortSets_PortSet{
		Name: &Name,
	}

	return t.PortSet[key], nil
}

// RenamePortSet renames an entry in the list PortSet within
// the OpenconfigDefinedSets_DefinedSets_PortSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) RenamePortSet(oldK, newK string) error {
	if _, ok := t.PortSet[newK]; ok {
		return fmt.Errorf("key %v already exists in PortSet", newK)
	}

	e, ok := t.PortSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PortSet", oldK)
	}
	e.Name = &newK

	t.PortSet[newK] = e
	delete(t.PortSet, oldK)
	return nil
}

// GetOrCreatePortSetMap returns the list (map) from OpenconfigDefinedSets_DefinedSets_PortSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) GetOrCreatePortSetMap() map[string]*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet {
	if t.PortSet == nil {
		t.PortSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet)
	}
	return t.PortSet
}

// GetOrCreatePortSet retrieves the value with the specified keys from
// the receiver OpenconfigDefinedSets_DefinedSets_PortSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) GetOrCreatePortSet(Name string) *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet {

	key := Name

	if v, ok := t.PortSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPortSet(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePortSet got unexpected error: %v", err))
	}
	return v
}

// GetPortSet retrieves the value with the specified key from
// the PortSet map field of OpenconfigDefinedSets_DefinedSets_PortSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) GetPortSet(Name string) *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.PortSet[key]; ok {
		return lm
	}
	return nil
}

// AppendPortSet appends the supplied OpenconfigDefinedSets_DefinedSets_PortSets_PortSet struct to the
// list PortSet of OpenconfigDefinedSets_DefinedSets_PortSets. If the key value(s) specified in
// the supplied OpenconfigDefinedSets_DefinedSets_PortSets_PortSet already exist in the list, an error is
// returned.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) AppendPortSet(v *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PortSet == nil {
		t.PortSet = make(map[string]*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet)
	}

	if _, ok := t.PortSet[key]; ok {
		return fmt.Errorf("duplicate key for list PortSet %v", key)
	}

	t.PortSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_PortSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PortSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_PortSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_PortSets.
func (*OpenconfigDefinedSets_DefinedSets_PortSets) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_PortSets_PortSet represents the /openconfig-defined-sets/defined-sets/port-sets/port-set YANG schema element.
type OpenconfigDefinedSets_DefinedSets_PortSets_PortSet struct {
	ΛMetadata []ygot.Annotation                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config `path:"config" module:"openconfig-defined-sets"`
	ΛConfig   []ygot.Annotation                                          `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                    `path:"name" module:"openconfig-defined-sets"`
	ΛName     []ygot.Annotation                                          `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State  `path:"state" module:"openconfig-defined-sets"`
	ΛState    []ygot.Annotation                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_PortSets_PortSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) GetOrCreateConfig() *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) GetOrCreateState() *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigDefinedSets_DefinedSets_PortSets_PortSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) GetConfig() *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigDefinedSets_DefinedSets_PortSets_PortSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) GetState() *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet struct, which is a YANG list entry.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_PortSets_PortSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_PortSets_PortSet.
func (*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config represents the /openconfig-defined-sets/defined-sets/port-sets/port-set/config YANG schema element.
type OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config struct {
	ΛMetadata    []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Description  *string                                                                `path:"description" module:"openconfig-defined-sets"`
	ΛDescription []ygot.Annotation                                                      `path:"@description" ygotAnnotation:"true"`
	Name         *string                                                                `path:"name" module:"openconfig-defined-sets"`
	ΛName        []ygot.Annotation                                                      `path:"@name" ygotAnnotation:"true"`
	Port         []OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union `path:"port" module:"openconfig-defined-sets"`
	ΛPort        []ygot.Annotation                                                      `path:"@port" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPort retrieves the value of the leaf Port from the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) GetPort() []OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union {
	if t == nil || t.Port == nil {
		return nil
	}
	return t.Port
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config.
func (*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-defined-sets/defined-sets/port-sets/port-set/config/port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union()
}

// Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union() {
}

// Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union ensures that UnionString
// implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union interface.
func (UnionString) Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union() {
}

// Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union ensures that UnionUint16
// implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union interface.
func (UnionUint16) Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union() {
}

// To_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config) To_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union(i interface{}) (OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union, error) {
	if v, ok := i.(OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_Config_Port_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State represents the /openconfig-defined-sets/defined-sets/port-sets/port-set/state YANG schema element.
type OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State struct {
	ΛMetadata    []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	Description  *string                                                               `path:"description" module:"openconfig-defined-sets"`
	ΛDescription []ygot.Annotation                                                     `path:"@description" ygotAnnotation:"true"`
	Name         *string                                                               `path:"name" module:"openconfig-defined-sets"`
	ΛName        []ygot.Annotation                                                     `path:"@name" ygotAnnotation:"true"`
	Port         []OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union `path:"port" module:"openconfig-defined-sets"`
	ΛPort        []ygot.Annotation                                                     `path:"@port" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetName retrieves the value of the leaf Name from the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPort retrieves the value of the leaf Port from the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) GetPort() []OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union {
	if t == nil || t.Port == nil {
		return nil
	}
	return t.Port
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State.
func (*OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) ΛBelongingModule() string {
	return "openconfig-defined-sets"
}

// OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-defined-sets/defined-sets/port-sets/port-set/state/port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union()
}

// Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union() {
}

// Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union ensures that UnionString
// implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union interface.
func (UnionString) Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union() {
}

// Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union ensures that UnionUint16
// implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union interface.
func (UnionUint16) Documentation_for_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union() {
}

// To_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State) To_OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union(i interface{}) (OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union, error) {
	if v, ok := i.(OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigDefinedSets_DefinedSets_PortSets_PortSet_State_Port_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces represents the /openconfig-interfaces/interfaces YANG schema element.
type OpenconfigInterfaces_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigInterfaces_Interfaces_Interface `path:"interface" module:"openconfig-interfaces"`
	ΛInterface []ygot.Annotation                                     `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces) IsYANGGoStruct() {}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigInterfaces_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigInterfaces_Interfaces) NewInterface(Name string) (*OpenconfigInterfaces_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigInterfaces_Interfaces_Interface)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigInterfaces_Interfaces_Interface{
		Name: &Name,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigInterfaces_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigInterfaces_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.Name = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigInterfaces_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigInterfaces_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigInterfaces_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigInterfaces_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigInterfaces_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigInterfaces_Interfaces) GetOrCreateInterface(Name string) *OpenconfigInterfaces_Interfaces_Interface {

	key := Name

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigInterfaces_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigInterfaces_Interfaces) GetInterface(Name string) *OpenconfigInterfaces_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigInterfaces_Interfaces_Interface struct to the
// list Interface of OpenconfigInterfaces_Interfaces. If the key value(s) specified in
// the supplied OpenconfigInterfaces_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigInterfaces_Interfaces) AppendInterface(v *OpenconfigInterfaces_Interfaces_Interface) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigInterfaces_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces.
func (*OpenconfigInterfaces_Interfaces) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface represents the /openconfig-interfaces/interfaces/interface YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface struct {
	ΛMetadata         []ygot.Annotation                                           `path:"@" ygotAnnotation:"true"`
	Aggregation       *OpenconfigInterfaces_Interfaces_Interface_Aggregation      `path:"aggregation" module:"openconfig-if-aggregate"`
	ΛAggregation      []ygot.Annotation                                           `path:"@aggregation" ygotAnnotation:"true"`
	Config            *OpenconfigInterfaces_Interfaces_Interface_Config           `path:"config" module:"openconfig-interfaces"`
	ΛConfig           []ygot.Annotation                                           `path:"@config" ygotAnnotation:"true"`
	Ethernet          *OpenconfigInterfaces_Interfaces_Interface_Ethernet         `path:"ethernet" module:"openconfig-if-ethernet"`
	ΛEthernet         []ygot.Annotation                                           `path:"@ethernet" ygotAnnotation:"true"`
	HoldTime          *OpenconfigInterfaces_Interfaces_Interface_HoldTime         `path:"hold-time" module:"openconfig-interfaces"`
	ΛHoldTime         []ygot.Annotation                                           `path:"@hold-time" ygotAnnotation:"true"`
	Name              *string                                                     `path:"name" module:"openconfig-interfaces"`
	ΛName             []ygot.Annotation                                           `path:"@name" ygotAnnotation:"true"`
	PenaltyBasedAied  *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied `path:"penalty-based-aied" module:"openconfig-interfaces"`
	ΛPenaltyBasedAied []ygot.Annotation                                           `path:"@penalty-based-aied" ygotAnnotation:"true"`
	RoutedVlan        *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan       `path:"routed-vlan" module:"openconfig-vlan"`
	ΛRoutedVlan       []ygot.Annotation                                           `path:"@routed-vlan" ygotAnnotation:"true"`
	State             *OpenconfigInterfaces_Interfaces_Interface_State            `path:"state" module:"openconfig-interfaces"`
	ΛState            []ygot.Annotation                                           `path:"@state" ygotAnnotation:"true"`
	Subinterfaces     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces    `path:"subinterfaces" module:"openconfig-interfaces"`
	ΛSubinterfaces    []ygot.Annotation                                           `path:"@subinterfaces" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface) IsYANGGoStruct() {}

// GetOrCreateAggregation retrieves the value of the Aggregation field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreateAggregation() *OpenconfigInterfaces_Interfaces_Interface_Aggregation {
	if t.Aggregation != nil {
		return t.Aggregation
	}
	t.Aggregation = &OpenconfigInterfaces_Interfaces_Interface_Aggregation{}
	return t.Aggregation
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateEthernet retrieves the value of the Ethernet field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreateEthernet() *OpenconfigInterfaces_Interfaces_Interface_Ethernet {
	if t.Ethernet != nil {
		return t.Ethernet
	}
	t.Ethernet = &OpenconfigInterfaces_Interfaces_Interface_Ethernet{}
	return t.Ethernet
}

// GetOrCreateHoldTime retrieves the value of the HoldTime field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreateHoldTime() *OpenconfigInterfaces_Interfaces_Interface_HoldTime {
	if t.HoldTime != nil {
		return t.HoldTime
	}
	t.HoldTime = &OpenconfigInterfaces_Interfaces_Interface_HoldTime{}
	return t.HoldTime
}

// GetOrCreatePenaltyBasedAied retrieves the value of the PenaltyBasedAied field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreatePenaltyBasedAied() *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied {
	if t.PenaltyBasedAied != nil {
		return t.PenaltyBasedAied
	}
	t.PenaltyBasedAied = &OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied{}
	return t.PenaltyBasedAied
}

// GetOrCreateRoutedVlan retrieves the value of the RoutedVlan field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreateRoutedVlan() *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan {
	if t.RoutedVlan != nil {
		return t.RoutedVlan
	}
	t.RoutedVlan = &OpenconfigInterfaces_Interfaces_Interface_RoutedVlan{}
	return t.RoutedVlan
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_State{}
	return t.State
}

// GetOrCreateSubinterfaces retrieves the value of the Subinterfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetOrCreateSubinterfaces() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces {
	if t.Subinterfaces != nil {
		return t.Subinterfaces
	}
	t.Subinterfaces = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces{}
	return t.Subinterfaces
}

// GetAggregation returns the value of the Aggregation struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field Aggregation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetAggregation() *OpenconfigInterfaces_Interfaces_Interface_Aggregation {
	if t != nil && t.Aggregation != nil {
		return t.Aggregation
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEthernet returns the value of the Ethernet struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field Ethernet is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetEthernet() *OpenconfigInterfaces_Interfaces_Interface_Ethernet {
	if t != nil && t.Ethernet != nil {
		return t.Ethernet
	}
	return nil
}

// GetHoldTime returns the value of the HoldTime struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field HoldTime is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetHoldTime() *OpenconfigInterfaces_Interfaces_Interface_HoldTime {
	if t != nil && t.HoldTime != nil {
		return t.HoldTime
	}
	return nil
}

// GetPenaltyBasedAied returns the value of the PenaltyBasedAied struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field PenaltyBasedAied is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetPenaltyBasedAied() *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied {
	if t != nil && t.PenaltyBasedAied != nil {
		return t.PenaltyBasedAied
	}
	return nil
}

// GetRoutedVlan returns the value of the RoutedVlan struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field RoutedVlan is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetRoutedVlan() *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan {
	if t != nil && t.RoutedVlan != nil {
		return t.RoutedVlan
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetState() *OpenconfigInterfaces_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubinterfaces returns the value of the Subinterfaces struct pointer
// from OpenconfigInterfaces_Interfaces_Interface. If the receiver or the field Subinterfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetSubinterfaces() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces {
	if t != nil && t.Subinterfaces != nil {
		return t.Subinterfaces
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigInterfaces_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Aggregation.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.Ethernet.PopulateDefaults()
	t.HoldTime.PopulateDefaults()
	t.PenaltyBasedAied.PopulateDefaults()
	t.RoutedVlan.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Subinterfaces.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigInterfaces_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigInterfaces_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface.
func (*OpenconfigInterfaces_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation represents the /openconfig-interfaces/interfaces/interface/aggregation YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Aggregation struct {
	ΛMetadata     []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config       `path:"config" module:"openconfig-if-aggregate"`
	ΛConfig       []ygot.Annotation                                                   `path:"@config" ygotAnnotation:"true"`
	State         *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State        `path:"state" module:"openconfig-if-aggregate"`
	ΛState        []ygot.Annotation                                                   `path:"@state" ygotAnnotation:"true"`
	SwitchedVlan  *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan `path:"switched-vlan" module:"openconfig-vlan"`
	ΛSwitchedVlan []ygot.Annotation                                                   `path:"@switched-vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Aggregation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Aggregation_State{}
	return t.State
}

// GetOrCreateSwitchedVlan retrieves the value of the SwitchedVlan field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) GetOrCreateSwitchedVlan() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan {
	if t.SwitchedVlan != nil {
		return t.SwitchedVlan
	}
	t.SwitchedVlan = &OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan{}
	return t.SwitchedVlan
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Aggregation. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Aggregation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) GetState() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSwitchedVlan returns the value of the SwitchedVlan struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Aggregation. If the receiver or the field SwitchedVlan is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) GetSwitchedVlan() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan {
	if t != nil && t.SwitchedVlan != nil {
		return t.SwitchedVlan
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Aggregation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.SwitchedVlan.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Aggregation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Aggregation.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation) ΛBelongingModule() string {
	return "openconfig-if-aggregate"
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config represents the /openconfig-interfaces/interfaces/interface/aggregation/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config struct {
	ΛMetadata []ygot.Annotation                       `path:"@" ygotAnnotation:"true"`
	LagType   E_OpenconfigIfAggregate_AggregationType `path:"lag-type" module:"openconfig-if-aggregate"`
	ΛLagType  []ygot.Annotation                       `path:"@lag-type" ygotAnnotation:"true"`
	MinLinks  *uint16                                 `path:"min-links" module:"openconfig-if-aggregate"`
	ΛMinLinks []ygot.Annotation                       `path:"@min-links" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) IsYANGGoStruct() {}

// GetLagType retrieves the value of the leaf LagType from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LagType is set, it can
// safely use t.GetLagType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LagType == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) GetLagType() E_OpenconfigIfAggregate_AggregationType {
	if t == nil || t.LagType == 0 {
		return 0
	}
	return t.LagType
}

// GetMinLinks retrieves the value of the leaf MinLinks from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinLinks is set, it can
// safely use t.GetMinLinks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinLinks == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) GetMinLinks() uint16 {
	if t == nil || t.MinLinks == nil {
		return 0
	}
	return *t.MinLinks
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_Config) ΛBelongingModule() string {
	return "openconfig-if-aggregate"
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation_State represents the /openconfig-interfaces/interfaces/interface/aggregation/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Aggregation_State struct {
	ΛMetadata []ygot.Annotation                       `path:"@" ygotAnnotation:"true"`
	LagSpeed  *uint32                                 `path:"lag-speed" module:"openconfig-if-aggregate"`
	ΛLagSpeed []ygot.Annotation                       `path:"@lag-speed" ygotAnnotation:"true"`
	LagType   E_OpenconfigIfAggregate_AggregationType `path:"lag-type" module:"openconfig-if-aggregate"`
	ΛLagType  []ygot.Annotation                       `path:"@lag-type" ygotAnnotation:"true"`
	Member    []string                                `path:"member" module:"openconfig-if-aggregate"`
	ΛMember   []ygot.Annotation                       `path:"@member" ygotAnnotation:"true"`
	MinLinks  *uint16                                 `path:"min-links" module:"openconfig-if-aggregate"`
	ΛMinLinks []ygot.Annotation                       `path:"@min-links" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Aggregation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) IsYANGGoStruct() {}

// GetLagSpeed retrieves the value of the leaf LagSpeed from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LagSpeed is set, it can
// safely use t.GetLagSpeed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LagSpeed == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) GetLagSpeed() uint32 {
	if t == nil || t.LagSpeed == nil {
		return 0
	}
	return *t.LagSpeed
}

// GetLagType retrieves the value of the leaf LagType from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LagType is set, it can
// safely use t.GetLagType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LagType == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) GetLagType() E_OpenconfigIfAggregate_AggregationType {
	if t == nil || t.LagType == 0 {
		return 0
	}
	return t.LagType
}

// GetMember retrieves the value of the leaf Member from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Member is set, it can
// safely use t.GetMember() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Member == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) GetMember() []string {
	if t == nil || t.Member == nil {
		return nil
	}
	return t.Member
}

// GetMinLinks retrieves the value of the leaf MinLinks from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinLinks is set, it can
// safely use t.GetMinLinks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinLinks == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) GetMinLinks() uint16 {
	if t == nil || t.MinLinks == nil {
		return 0
	}
	return *t.MinLinks
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Aggregation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Aggregation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Aggregation_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_State) ΛBelongingModule() string {
	return "openconfig-if-aggregate"
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan represents the /openconfig-interfaces/interfaces/interface/aggregation/switched-vlan YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan struct {
	ΛMetadata []ygot.Annotation                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) GetState() *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config represents the /openconfig-interfaces/interfaces/interface/aggregation/switched-vlan/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config struct {
	ΛMetadata      []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	AccessVlan     *uint16                                                                                      `path:"access-vlan" module:"openconfig-vlan"`
	ΛAccessVlan    []ygot.Annotation                                                                            `path:"@access-vlan" ygotAnnotation:"true"`
	InterfaceMode  E_OpenconfigVlanTypes_VlanModeType                                                           `path:"interface-mode" module:"openconfig-vlan"`
	ΛInterfaceMode []ygot.Annotation                                                                            `path:"@interface-mode" ygotAnnotation:"true"`
	NativeVlan     *uint16                                                                                      `path:"native-vlan" module:"openconfig-vlan"`
	ΛNativeVlan    []ygot.Annotation                                                                            `path:"@native-vlan" ygotAnnotation:"true"`
	TrunkVlans     []OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union `path:"trunk-vlans" module:"openconfig-vlan"`
	ΛTrunkVlans    []ygot.Annotation                                                                            `path:"@trunk-vlans" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) IsYANGGoStruct() {}

// GetAccessVlan retrieves the value of the leaf AccessVlan from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccessVlan is set, it can
// safely use t.GetAccessVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccessVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) GetAccessVlan() uint16 {
	if t == nil || t.AccessVlan == nil {
		return 0
	}
	return *t.AccessVlan
}

// GetInterfaceMode retrieves the value of the leaf InterfaceMode from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceMode is set, it can
// safely use t.GetInterfaceMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) GetInterfaceMode() E_OpenconfigVlanTypes_VlanModeType {
	if t == nil || t.InterfaceMode == 0 {
		return 0
	}
	return t.InterfaceMode
}

// GetNativeVlan retrieves the value of the leaf NativeVlan from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NativeVlan is set, it can
// safely use t.GetNativeVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NativeVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) GetNativeVlan() uint16 {
	if t == nil || t.NativeVlan == nil {
		return 0
	}
	return *t.NativeVlan
}

// GetTrunkVlans retrieves the value of the leaf TrunkVlans from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrunkVlans is set, it can
// safely use t.GetTrunkVlans() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrunkVlans == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) GetTrunkVlans() []OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union {
	if t == nil || t.TrunkVlans == nil {
		return nil
	}
	return t.TrunkVlans
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/aggregation/switched-vlan/config/trunk-vlans within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config) To_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_Config_TrunkVlans_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State represents the /openconfig-interfaces/interfaces/interface/aggregation/switched-vlan/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State struct {
	ΛMetadata      []ygot.Annotation                                                                           `path:"@" ygotAnnotation:"true"`
	AccessVlan     *uint16                                                                                     `path:"access-vlan" module:"openconfig-vlan"`
	ΛAccessVlan    []ygot.Annotation                                                                           `path:"@access-vlan" ygotAnnotation:"true"`
	InterfaceMode  E_OpenconfigVlanTypes_VlanModeType                                                          `path:"interface-mode" module:"openconfig-vlan"`
	ΛInterfaceMode []ygot.Annotation                                                                           `path:"@interface-mode" ygotAnnotation:"true"`
	NativeVlan     *uint16                                                                                     `path:"native-vlan" module:"openconfig-vlan"`
	ΛNativeVlan    []ygot.Annotation                                                                           `path:"@native-vlan" ygotAnnotation:"true"`
	TrunkVlans     []OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union `path:"trunk-vlans" module:"openconfig-vlan"`
	ΛTrunkVlans    []ygot.Annotation                                                                           `path:"@trunk-vlans" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) IsYANGGoStruct() {}

// GetAccessVlan retrieves the value of the leaf AccessVlan from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccessVlan is set, it can
// safely use t.GetAccessVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccessVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) GetAccessVlan() uint16 {
	if t == nil || t.AccessVlan == nil {
		return 0
	}
	return *t.AccessVlan
}

// GetInterfaceMode retrieves the value of the leaf InterfaceMode from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceMode is set, it can
// safely use t.GetInterfaceMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) GetInterfaceMode() E_OpenconfigVlanTypes_VlanModeType {
	if t == nil || t.InterfaceMode == 0 {
		return 0
	}
	return t.InterfaceMode
}

// GetNativeVlan retrieves the value of the leaf NativeVlan from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NativeVlan is set, it can
// safely use t.GetNativeVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NativeVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) GetNativeVlan() uint16 {
	if t == nil || t.NativeVlan == nil {
		return 0
	}
	return *t.NativeVlan
}

// GetTrunkVlans retrieves the value of the leaf TrunkVlans from the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrunkVlans is set, it can
// safely use t.GetTrunkVlans() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrunkVlans == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) GetTrunkVlans() []OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union {
	if t == nil || t.TrunkVlans == nil {
		return nil
	}
	return t.TrunkVlans
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/aggregation/switched-vlan/state/trunk-vlans within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State) To_OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_Aggregation_SwitchedVlan_State_TrunkVlans_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces_Interface_Config represents the /openconfig-interfaces/interfaces/interface/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Config struct {
	ΛMetadata     []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	Description   *string                                     `path:"description" module:"openconfig-interfaces"`
	ΛDescription  []ygot.Annotation                           `path:"@description" ygotAnnotation:"true"`
	Enabled       *bool                                       `path:"enabled" module:"openconfig-interfaces"`
	ΛEnabled      []ygot.Annotation                           `path:"@enabled" ygotAnnotation:"true"`
	LoopbackMode  E_OpenconfigTransportTypes_LoopbackModeType `path:"loopback-mode" module:"openconfig-interfaces"`
	ΛLoopbackMode []ygot.Annotation                           `path:"@loopback-mode" ygotAnnotation:"true"`
	Mtu           *uint16                                     `path:"mtu" module:"openconfig-interfaces"`
	ΛMtu          []ygot.Annotation                           `path:"@mtu" ygotAnnotation:"true"`
	Name          *string                                     `path:"name" module:"openconfig-interfaces"`
	ΛName         []ygot.Annotation                           `path:"@name" ygotAnnotation:"true"`
	Tpid          E_OpenconfigVlanTypes_TPID_TYPES            `path:"tpid" module:"openconfig-vlan"`
	ΛTpid         []ygot.Annotation                           `path:"@tpid" ygotAnnotation:"true"`
	Type          E_IETFInterfaces_InterfaceType              `path:"type" module:"openconfig-interfaces"`
	ΛType         []ygot.Annotation                           `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Config) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigInterfaces_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigInterfaces_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetLoopbackMode retrieves the value of the leaf LoopbackMode from the OpenconfigInterfaces_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoopbackMode is set, it can
// safely use t.GetLoopbackMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoopbackMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) GetLoopbackMode() E_OpenconfigTransportTypes_LoopbackModeType {
	if t == nil || t.LoopbackMode == 0 {
		return OpenconfigTransportTypes_LoopbackModeType_NONE
	}
	return t.LoopbackMode
}

// GetMtu retrieves the value of the leaf Mtu from the OpenconfigInterfaces_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mtu is set, it can
// safely use t.GetMtu() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mtu == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) GetMtu() uint16 {
	if t == nil || t.Mtu == nil {
		return 0
	}
	return *t.Mtu
}

// GetName retrieves the value of the leaf Name from the OpenconfigInterfaces_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetTpid retrieves the value of the leaf Tpid from the OpenconfigInterfaces_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tpid is set, it can
// safely use t.GetTpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tpid == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) GetTpid() E_OpenconfigVlanTypes_TPID_TYPES {
	if t == nil || t.Tpid == 0 {
		return OpenconfigVlanTypes_TPID_TYPES_TPID_0X8100
	}
	return t.Tpid
}

// GetType retrieves the value of the leaf Type from the OpenconfigInterfaces_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) GetType() E_IETFInterfaces_InterfaceType {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	if t.LoopbackMode == 0 {
		t.LoopbackMode = OpenconfigTransportTypes_LoopbackModeType_NONE
	}
	if t.Tpid == 0 {
		t.Tpid = OpenconfigVlanTypes_TPID_TYPES_TPID_0X8100
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet represents the /openconfig-interfaces/interfaces/interface/ethernet YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Ethernet struct {
	ΛMetadata     []ygot.Annotation                                                `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config       `path:"config" module:"openconfig-if-ethernet"`
	ΛConfig       []ygot.Annotation                                                `path:"@config" ygotAnnotation:"true"`
	State         *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State        `path:"state" module:"openconfig-if-ethernet"`
	ΛState        []ygot.Annotation                                                `path:"@state" ygotAnnotation:"true"`
	SwitchedVlan  *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan `path:"switched-vlan" module:"openconfig-vlan"`
	ΛSwitchedVlan []ygot.Annotation                                                `path:"@switched-vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Ethernet_State{}
	return t.State
}

// GetOrCreateSwitchedVlan retrieves the value of the SwitchedVlan field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) GetOrCreateSwitchedVlan() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan {
	if t.SwitchedVlan != nil {
		return t.SwitchedVlan
	}
	t.SwitchedVlan = &OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan{}
	return t.SwitchedVlan
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Ethernet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Ethernet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) GetState() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSwitchedVlan returns the value of the SwitchedVlan struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Ethernet. If the receiver or the field SwitchedVlan is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) GetSwitchedVlan() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan {
	if t != nil && t.SwitchedVlan != nil {
		return t.SwitchedVlan
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Ethernet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.SwitchedVlan.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Ethernet.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet) ΛBelongingModule() string {
	return "openconfig-if-ethernet"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config represents the /openconfig-interfaces/interfaces/interface/ethernet/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config struct {
	ΛMetadata               []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	AggregateId             *string                                                                `path:"aggregate-id" module:"openconfig-if-aggregate"`
	ΛAggregateId            []ygot.Annotation                                                      `path:"@aggregate-id" ygotAnnotation:"true"`
	AutoNegotiate           *bool                                                                  `path:"auto-negotiate" module:"openconfig-if-ethernet"`
	ΛAutoNegotiate          []ygot.Annotation                                                      `path:"@auto-negotiate" ygotAnnotation:"true"`
	DuplexMode              E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode `path:"duplex-mode" module:"openconfig-if-ethernet"`
	ΛDuplexMode             []ygot.Annotation                                                      `path:"@duplex-mode" ygotAnnotation:"true"`
	EnableFlowControl       *bool                                                                  `path:"enable-flow-control" module:"openconfig-if-ethernet"`
	ΛEnableFlowControl      []ygot.Annotation                                                      `path:"@enable-flow-control" ygotAnnotation:"true"`
	FecMode                 E_OpenconfigIfEthernet_INTERFACE_FEC                                   `path:"fec-mode" module:"openconfig-if-ethernet"`
	ΛFecMode                []ygot.Annotation                                                      `path:"@fec-mode" ygotAnnotation:"true"`
	MacAddress              *string                                                                `path:"mac-address" module:"openconfig-if-ethernet"`
	ΛMacAddress             []ygot.Annotation                                                      `path:"@mac-address" ygotAnnotation:"true"`
	PortSpeed               E_OpenconfigIfEthernet_ETHERNET_SPEED                                  `path:"port-speed" module:"openconfig-if-ethernet"`
	ΛPortSpeed              []ygot.Annotation                                                      `path:"@port-speed" ygotAnnotation:"true"`
	StandaloneLinkTraining  *bool                                                                  `path:"standalone-link-training" module:"openconfig-if-ethernet"`
	ΛStandaloneLinkTraining []ygot.Annotation                                                      `path:"@standalone-link-training" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) IsYANGGoStruct() {}

// GetAggregateId retrieves the value of the leaf AggregateId from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AggregateId is set, it can
// safely use t.GetAggregateId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AggregateId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetAggregateId() string {
	if t == nil || t.AggregateId == nil {
		return ""
	}
	return *t.AggregateId
}

// GetAutoNegotiate retrieves the value of the leaf AutoNegotiate from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AutoNegotiate is set, it can
// safely use t.GetAutoNegotiate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AutoNegotiate == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetAutoNegotiate() bool {
	if t == nil || t.AutoNegotiate == nil {
		return true
	}
	return *t.AutoNegotiate
}

// GetDuplexMode retrieves the value of the leaf DuplexMode from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplexMode is set, it can
// safely use t.GetDuplexMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplexMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetDuplexMode() E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode {
	if t == nil || t.DuplexMode == 0 {
		return 0
	}
	return t.DuplexMode
}

// GetEnableFlowControl retrieves the value of the leaf EnableFlowControl from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableFlowControl is set, it can
// safely use t.GetEnableFlowControl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableFlowControl == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetEnableFlowControl() bool {
	if t == nil || t.EnableFlowControl == nil {
		return false
	}
	return *t.EnableFlowControl
}

// GetFecMode retrieves the value of the leaf FecMode from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecMode is set, it can
// safely use t.GetFecMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetFecMode() E_OpenconfigIfEthernet_INTERFACE_FEC {
	if t == nil || t.FecMode == 0 {
		return 0
	}
	return t.FecMode
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetPortSpeed retrieves the value of the leaf PortSpeed from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortSpeed is set, it can
// safely use t.GetPortSpeed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortSpeed == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetPortSpeed() E_OpenconfigIfEthernet_ETHERNET_SPEED {
	if t == nil || t.PortSpeed == 0 {
		return 0
	}
	return t.PortSpeed
}

// GetStandaloneLinkTraining retrieves the value of the leaf StandaloneLinkTraining from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StandaloneLinkTraining is set, it can
// safely use t.GetStandaloneLinkTraining() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StandaloneLinkTraining == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) GetStandaloneLinkTraining() bool {
	if t == nil || t.StandaloneLinkTraining == nil {
		return false
	}
	return *t.StandaloneLinkTraining
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AutoNegotiate == nil {
		var v bool = true
		t.AutoNegotiate = &v
	}
	if t.EnableFlowControl == nil {
		var v bool = false
		t.EnableFlowControl = &v
	}
	if t.StandaloneLinkTraining == nil {
		var v bool = false
		t.StandaloneLinkTraining = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) ΛBelongingModule() string {
	return "openconfig-if-ethernet"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State represents the /openconfig-interfaces/interfaces/interface/ethernet/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_State struct {
	ΛMetadata               []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	AggregateId             *string                                                                         `path:"aggregate-id" module:"openconfig-if-aggregate"`
	ΛAggregateId            []ygot.Annotation                                                               `path:"@aggregate-id" ygotAnnotation:"true"`
	AutoNegotiate           *bool                                                                           `path:"auto-negotiate" module:"openconfig-if-ethernet"`
	ΛAutoNegotiate          []ygot.Annotation                                                               `path:"@auto-negotiate" ygotAnnotation:"true"`
	Counters                *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters              `path:"counters" module:"openconfig-if-ethernet"`
	ΛCounters               []ygot.Annotation                                                               `path:"@counters" ygotAnnotation:"true"`
	DuplexMode              E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode          `path:"duplex-mode" module:"openconfig-if-ethernet"`
	ΛDuplexMode             []ygot.Annotation                                                               `path:"@duplex-mode" ygotAnnotation:"true"`
	EnableFlowControl       *bool                                                                           `path:"enable-flow-control" module:"openconfig-if-ethernet"`
	ΛEnableFlowControl      []ygot.Annotation                                                               `path:"@enable-flow-control" ygotAnnotation:"true"`
	FecMode                 E_OpenconfigIfEthernet_INTERFACE_FEC                                            `path:"fec-mode" module:"openconfig-if-ethernet"`
	ΛFecMode                []ygot.Annotation                                                               `path:"@fec-mode" ygotAnnotation:"true"`
	HwMacAddress            *string                                                                         `path:"hw-mac-address" module:"openconfig-if-ethernet"`
	ΛHwMacAddress           []ygot.Annotation                                                               `path:"@hw-mac-address" ygotAnnotation:"true"`
	MacAddress              *string                                                                         `path:"mac-address" module:"openconfig-if-ethernet"`
	ΛMacAddress             []ygot.Annotation                                                               `path:"@mac-address" ygotAnnotation:"true"`
	NegotiatedDuplexMode    E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode `path:"negotiated-duplex-mode" module:"openconfig-if-ethernet"`
	ΛNegotiatedDuplexMode   []ygot.Annotation                                                               `path:"@negotiated-duplex-mode" ygotAnnotation:"true"`
	NegotiatedPortSpeed     E_OpenconfigIfEthernet_ETHERNET_SPEED                                           `path:"negotiated-port-speed" module:"openconfig-if-ethernet"`
	ΛNegotiatedPortSpeed    []ygot.Annotation                                                               `path:"@negotiated-port-speed" ygotAnnotation:"true"`
	PortSpeed               E_OpenconfigIfEthernet_ETHERNET_SPEED                                           `path:"port-speed" module:"openconfig-if-ethernet"`
	ΛPortSpeed              []ygot.Annotation                                                               `path:"@port-speed" ygotAnnotation:"true"`
	StandaloneLinkTraining  *bool                                                                           `path:"standalone-link-training" module:"openconfig-if-ethernet"`
	ΛStandaloneLinkTraining []ygot.Annotation                                                               `path:"@standalone-link-training" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) IsYANGGoStruct() {}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetOrCreateCounters() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Ethernet_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetCounters() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetAggregateId retrieves the value of the leaf AggregateId from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AggregateId is set, it can
// safely use t.GetAggregateId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AggregateId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetAggregateId() string {
	if t == nil || t.AggregateId == nil {
		return ""
	}
	return *t.AggregateId
}

// GetAutoNegotiate retrieves the value of the leaf AutoNegotiate from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AutoNegotiate is set, it can
// safely use t.GetAutoNegotiate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AutoNegotiate == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetAutoNegotiate() bool {
	if t == nil || t.AutoNegotiate == nil {
		return true
	}
	return *t.AutoNegotiate
}

// GetDuplexMode retrieves the value of the leaf DuplexMode from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplexMode is set, it can
// safely use t.GetDuplexMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplexMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetDuplexMode() E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode {
	if t == nil || t.DuplexMode == 0 {
		return 0
	}
	return t.DuplexMode
}

// GetEnableFlowControl retrieves the value of the leaf EnableFlowControl from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableFlowControl is set, it can
// safely use t.GetEnableFlowControl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableFlowControl == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetEnableFlowControl() bool {
	if t == nil || t.EnableFlowControl == nil {
		return false
	}
	return *t.EnableFlowControl
}

// GetFecMode retrieves the value of the leaf FecMode from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecMode is set, it can
// safely use t.GetFecMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetFecMode() E_OpenconfigIfEthernet_INTERFACE_FEC {
	if t == nil || t.FecMode == 0 {
		return 0
	}
	return t.FecMode
}

// GetHwMacAddress retrieves the value of the leaf HwMacAddress from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HwMacAddress is set, it can
// safely use t.GetHwMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HwMacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetHwMacAddress() string {
	if t == nil || t.HwMacAddress == nil {
		return ""
	}
	return *t.HwMacAddress
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetNegotiatedDuplexMode retrieves the value of the leaf NegotiatedDuplexMode from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NegotiatedDuplexMode is set, it can
// safely use t.GetNegotiatedDuplexMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NegotiatedDuplexMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetNegotiatedDuplexMode() E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode {
	if t == nil || t.NegotiatedDuplexMode == 0 {
		return 0
	}
	return t.NegotiatedDuplexMode
}

// GetNegotiatedPortSpeed retrieves the value of the leaf NegotiatedPortSpeed from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NegotiatedPortSpeed is set, it can
// safely use t.GetNegotiatedPortSpeed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NegotiatedPortSpeed == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetNegotiatedPortSpeed() E_OpenconfigIfEthernet_ETHERNET_SPEED {
	if t == nil || t.NegotiatedPortSpeed == 0 {
		return 0
	}
	return t.NegotiatedPortSpeed
}

// GetPortSpeed retrieves the value of the leaf PortSpeed from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortSpeed is set, it can
// safely use t.GetPortSpeed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortSpeed == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetPortSpeed() E_OpenconfigIfEthernet_ETHERNET_SPEED {
	if t == nil || t.PortSpeed == 0 {
		return 0
	}
	return t.PortSpeed
}

// GetStandaloneLinkTraining retrieves the value of the leaf StandaloneLinkTraining from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StandaloneLinkTraining is set, it can
// safely use t.GetStandaloneLinkTraining() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StandaloneLinkTraining == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) GetStandaloneLinkTraining() bool {
	if t == nil || t.StandaloneLinkTraining == nil {
		return false
	}
	return *t.StandaloneLinkTraining
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AutoNegotiate == nil {
		var v bool = true
		t.AutoNegotiate = &v
	}
	if t.EnableFlowControl == nil {
		var v bool = false
		t.EnableFlowControl = &v
	}
	if t.StandaloneLinkTraining == nil {
		var v bool = false
		t.StandaloneLinkTraining = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) ΛBelongingModule() string {
	return "openconfig-if-ethernet"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters represents the /openconfig-interfaces/interfaces/interface/ethernet/state/counters YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	In_8021QFrames       *uint64           `path:"in-8021q-frames" module:"openconfig-if-ethernet"`
	ΛIn_8021QFrames      []ygot.Annotation `path:"@in-8021q-frames" ygotAnnotation:"true"`
	InBlockErrors        *uint64           `path:"in-block-errors" module:"openconfig-if-ethernet"`
	ΛInBlockErrors       []ygot.Annotation `path:"@in-block-errors" ygotAnnotation:"true"`
	InCarrierErrors      *uint64           `path:"in-carrier-errors" module:"openconfig-if-ethernet"`
	ΛInCarrierErrors     []ygot.Annotation `path:"@in-carrier-errors" ygotAnnotation:"true"`
	InCrcErrors          *uint64           `path:"in-crc-errors" module:"openconfig-if-ethernet"`
	ΛInCrcErrors         []ygot.Annotation `path:"@in-crc-errors" ygotAnnotation:"true"`
	InFragmentFrames     *uint64           `path:"in-fragment-frames" module:"openconfig-if-ethernet"`
	ΛInFragmentFrames    []ygot.Annotation `path:"@in-fragment-frames" ygotAnnotation:"true"`
	InInterruptedTx      *uint64           `path:"in-interrupted-tx" module:"openconfig-if-ethernet"`
	ΛInInterruptedTx     []ygot.Annotation `path:"@in-interrupted-tx" ygotAnnotation:"true"`
	InJabberFrames       *uint64           `path:"in-jabber-frames" module:"openconfig-if-ethernet"`
	ΛInJabberFrames      []ygot.Annotation `path:"@in-jabber-frames" ygotAnnotation:"true"`
	InLateCollision      *uint64           `path:"in-late-collision" module:"openconfig-if-ethernet"`
	ΛInLateCollision     []ygot.Annotation `path:"@in-late-collision" ygotAnnotation:"true"`
	InMacControlFrames   *uint64           `path:"in-mac-control-frames" module:"openconfig-if-ethernet"`
	ΛInMacControlFrames  []ygot.Annotation `path:"@in-mac-control-frames" ygotAnnotation:"true"`
	InMacErrorsRx        *uint64           `path:"in-mac-errors-rx" module:"openconfig-if-ethernet"`
	ΛInMacErrorsRx       []ygot.Annotation `path:"@in-mac-errors-rx" ygotAnnotation:"true"`
	InMacPauseFrames     *uint64           `path:"in-mac-pause-frames" module:"openconfig-if-ethernet"`
	ΛInMacPauseFrames    []ygot.Annotation `path:"@in-mac-pause-frames" ygotAnnotation:"true"`
	InMaxsizeExceeded    *uint64           `path:"in-maxsize-exceeded" module:"openconfig-if-ethernet"`
	ΛInMaxsizeExceeded   []ygot.Annotation `path:"@in-maxsize-exceeded" ygotAnnotation:"true"`
	InOversizeFrames     *uint64           `path:"in-oversize-frames" module:"openconfig-if-ethernet"`
	ΛInOversizeFrames    []ygot.Annotation `path:"@in-oversize-frames" ygotAnnotation:"true"`
	InSingleCollision    *uint64           `path:"in-single-collision" module:"openconfig-if-ethernet"`
	ΛInSingleCollision   []ygot.Annotation `path:"@in-single-collision" ygotAnnotation:"true"`
	InSymbolError        *uint64           `path:"in-symbol-error" module:"openconfig-if-ethernet"`
	ΛInSymbolError       []ygot.Annotation `path:"@in-symbol-error" ygotAnnotation:"true"`
	InUndersizeFrames    *uint64           `path:"in-undersize-frames" module:"openconfig-if-ethernet"`
	ΛInUndersizeFrames   []ygot.Annotation `path:"@in-undersize-frames" ygotAnnotation:"true"`
	Out_8021QFrames      *uint64           `path:"out-8021q-frames" module:"openconfig-if-ethernet"`
	ΛOut_8021QFrames     []ygot.Annotation `path:"@out-8021q-frames" ygotAnnotation:"true"`
	OutMacControlFrames  *uint64           `path:"out-mac-control-frames" module:"openconfig-if-ethernet"`
	ΛOutMacControlFrames []ygot.Annotation `path:"@out-mac-control-frames" ygotAnnotation:"true"`
	OutMacErrorsTx       *uint64           `path:"out-mac-errors-tx" module:"openconfig-if-ethernet"`
	ΛOutMacErrorsTx      []ygot.Annotation `path:"@out-mac-errors-tx" ygotAnnotation:"true"`
	OutMacPauseFrames    *uint64           `path:"out-mac-pause-frames" module:"openconfig-if-ethernet"`
	ΛOutMacPauseFrames   []ygot.Annotation `path:"@out-mac-pause-frames" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) IsYANGGoStruct() {}

// GetIn_8021QFrames retrieves the value of the leaf In_8021QFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if In_8021QFrames is set, it can
// safely use t.GetIn_8021QFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.In_8021QFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetIn_8021QFrames() uint64 {
	if t == nil || t.In_8021QFrames == nil {
		return 0
	}
	return *t.In_8021QFrames
}

// GetInBlockErrors retrieves the value of the leaf InBlockErrors from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InBlockErrors is set, it can
// safely use t.GetInBlockErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InBlockErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInBlockErrors() uint64 {
	if t == nil || t.InBlockErrors == nil {
		return 0
	}
	return *t.InBlockErrors
}

// GetInCarrierErrors retrieves the value of the leaf InCarrierErrors from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InCarrierErrors is set, it can
// safely use t.GetInCarrierErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InCarrierErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInCarrierErrors() uint64 {
	if t == nil || t.InCarrierErrors == nil {
		return 0
	}
	return *t.InCarrierErrors
}

// GetInCrcErrors retrieves the value of the leaf InCrcErrors from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InCrcErrors is set, it can
// safely use t.GetInCrcErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InCrcErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInCrcErrors() uint64 {
	if t == nil || t.InCrcErrors == nil {
		return 0
	}
	return *t.InCrcErrors
}

// GetInFragmentFrames retrieves the value of the leaf InFragmentFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InFragmentFrames is set, it can
// safely use t.GetInFragmentFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InFragmentFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInFragmentFrames() uint64 {
	if t == nil || t.InFragmentFrames == nil {
		return 0
	}
	return *t.InFragmentFrames
}

// GetInInterruptedTx retrieves the value of the leaf InInterruptedTx from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InInterruptedTx is set, it can
// safely use t.GetInInterruptedTx() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InInterruptedTx == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInInterruptedTx() uint64 {
	if t == nil || t.InInterruptedTx == nil {
		return 0
	}
	return *t.InInterruptedTx
}

// GetInJabberFrames retrieves the value of the leaf InJabberFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InJabberFrames is set, it can
// safely use t.GetInJabberFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InJabberFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInJabberFrames() uint64 {
	if t == nil || t.InJabberFrames == nil {
		return 0
	}
	return *t.InJabberFrames
}

// GetInLateCollision retrieves the value of the leaf InLateCollision from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InLateCollision is set, it can
// safely use t.GetInLateCollision() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InLateCollision == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInLateCollision() uint64 {
	if t == nil || t.InLateCollision == nil {
		return 0
	}
	return *t.InLateCollision
}

// GetInMacControlFrames retrieves the value of the leaf InMacControlFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMacControlFrames is set, it can
// safely use t.GetInMacControlFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMacControlFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInMacControlFrames() uint64 {
	if t == nil || t.InMacControlFrames == nil {
		return 0
	}
	return *t.InMacControlFrames
}

// GetInMacErrorsRx retrieves the value of the leaf InMacErrorsRx from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMacErrorsRx is set, it can
// safely use t.GetInMacErrorsRx() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMacErrorsRx == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInMacErrorsRx() uint64 {
	if t == nil || t.InMacErrorsRx == nil {
		return 0
	}
	return *t.InMacErrorsRx
}

// GetInMacPauseFrames retrieves the value of the leaf InMacPauseFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMacPauseFrames is set, it can
// safely use t.GetInMacPauseFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMacPauseFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInMacPauseFrames() uint64 {
	if t == nil || t.InMacPauseFrames == nil {
		return 0
	}
	return *t.InMacPauseFrames
}

// GetInMaxsizeExceeded retrieves the value of the leaf InMaxsizeExceeded from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMaxsizeExceeded is set, it can
// safely use t.GetInMaxsizeExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMaxsizeExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInMaxsizeExceeded() uint64 {
	if t == nil || t.InMaxsizeExceeded == nil {
		return 0
	}
	return *t.InMaxsizeExceeded
}

// GetInOversizeFrames retrieves the value of the leaf InOversizeFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOversizeFrames is set, it can
// safely use t.GetInOversizeFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOversizeFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInOversizeFrames() uint64 {
	if t == nil || t.InOversizeFrames == nil {
		return 0
	}
	return *t.InOversizeFrames
}

// GetInSingleCollision retrieves the value of the leaf InSingleCollision from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InSingleCollision is set, it can
// safely use t.GetInSingleCollision() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InSingleCollision == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInSingleCollision() uint64 {
	if t == nil || t.InSingleCollision == nil {
		return 0
	}
	return *t.InSingleCollision
}

// GetInSymbolError retrieves the value of the leaf InSymbolError from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InSymbolError is set, it can
// safely use t.GetInSymbolError() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InSymbolError == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInSymbolError() uint64 {
	if t == nil || t.InSymbolError == nil {
		return 0
	}
	return *t.InSymbolError
}

// GetInUndersizeFrames retrieves the value of the leaf InUndersizeFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InUndersizeFrames is set, it can
// safely use t.GetInUndersizeFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InUndersizeFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetInUndersizeFrames() uint64 {
	if t == nil || t.InUndersizeFrames == nil {
		return 0
	}
	return *t.InUndersizeFrames
}

// GetOut_8021QFrames retrieves the value of the leaf Out_8021QFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Out_8021QFrames is set, it can
// safely use t.GetOut_8021QFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Out_8021QFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetOut_8021QFrames() uint64 {
	if t == nil || t.Out_8021QFrames == nil {
		return 0
	}
	return *t.Out_8021QFrames
}

// GetOutMacControlFrames retrieves the value of the leaf OutMacControlFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMacControlFrames is set, it can
// safely use t.GetOutMacControlFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMacControlFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetOutMacControlFrames() uint64 {
	if t == nil || t.OutMacControlFrames == nil {
		return 0
	}
	return *t.OutMacControlFrames
}

// GetOutMacErrorsTx retrieves the value of the leaf OutMacErrorsTx from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMacErrorsTx is set, it can
// safely use t.GetOutMacErrorsTx() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMacErrorsTx == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetOutMacErrorsTx() uint64 {
	if t == nil || t.OutMacErrorsTx == nil {
		return 0
	}
	return *t.OutMacErrorsTx
}

// GetOutMacPauseFrames retrieves the value of the leaf OutMacPauseFrames from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMacPauseFrames is set, it can
// safely use t.GetOutMacPauseFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMacPauseFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) GetOutMacPauseFrames() uint64 {
	if t == nil || t.OutMacPauseFrames == nil {
		return 0
	}
	return *t.OutMacPauseFrames
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) ΛBelongingModule() string {
	return "openconfig-if-ethernet"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan represents the /openconfig-interfaces/interfaces/interface/ethernet/switched-vlan YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan struct {
	ΛMetadata []ygot.Annotation                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) GetState() *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config represents the /openconfig-interfaces/interfaces/interface/ethernet/switched-vlan/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config struct {
	ΛMetadata      []ygot.Annotation                                                                         `path:"@" ygotAnnotation:"true"`
	AccessVlan     *uint16                                                                                   `path:"access-vlan" module:"openconfig-vlan"`
	ΛAccessVlan    []ygot.Annotation                                                                         `path:"@access-vlan" ygotAnnotation:"true"`
	InterfaceMode  E_OpenconfigVlanTypes_VlanModeType                                                        `path:"interface-mode" module:"openconfig-vlan"`
	ΛInterfaceMode []ygot.Annotation                                                                         `path:"@interface-mode" ygotAnnotation:"true"`
	NativeVlan     *uint16                                                                                   `path:"native-vlan" module:"openconfig-vlan"`
	ΛNativeVlan    []ygot.Annotation                                                                         `path:"@native-vlan" ygotAnnotation:"true"`
	TrunkVlans     []OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union `path:"trunk-vlans" module:"openconfig-vlan"`
	ΛTrunkVlans    []ygot.Annotation                                                                         `path:"@trunk-vlans" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) IsYANGGoStruct() {}

// GetAccessVlan retrieves the value of the leaf AccessVlan from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccessVlan is set, it can
// safely use t.GetAccessVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccessVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) GetAccessVlan() uint16 {
	if t == nil || t.AccessVlan == nil {
		return 0
	}
	return *t.AccessVlan
}

// GetInterfaceMode retrieves the value of the leaf InterfaceMode from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceMode is set, it can
// safely use t.GetInterfaceMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) GetInterfaceMode() E_OpenconfigVlanTypes_VlanModeType {
	if t == nil || t.InterfaceMode == 0 {
		return 0
	}
	return t.InterfaceMode
}

// GetNativeVlan retrieves the value of the leaf NativeVlan from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NativeVlan is set, it can
// safely use t.GetNativeVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NativeVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) GetNativeVlan() uint16 {
	if t == nil || t.NativeVlan == nil {
		return 0
	}
	return *t.NativeVlan
}

// GetTrunkVlans retrieves the value of the leaf TrunkVlans from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrunkVlans is set, it can
// safely use t.GetTrunkVlans() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrunkVlans == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) GetTrunkVlans() []OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union {
	if t == nil || t.TrunkVlans == nil {
		return nil
	}
	return t.TrunkVlans
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/ethernet/switched-vlan/config/trunk-vlans within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config) To_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_Config_TrunkVlans_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State represents the /openconfig-interfaces/interfaces/interface/ethernet/switched-vlan/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State struct {
	ΛMetadata      []ygot.Annotation                                                                        `path:"@" ygotAnnotation:"true"`
	AccessVlan     *uint16                                                                                  `path:"access-vlan" module:"openconfig-vlan"`
	ΛAccessVlan    []ygot.Annotation                                                                        `path:"@access-vlan" ygotAnnotation:"true"`
	InterfaceMode  E_OpenconfigVlanTypes_VlanModeType                                                       `path:"interface-mode" module:"openconfig-vlan"`
	ΛInterfaceMode []ygot.Annotation                                                                        `path:"@interface-mode" ygotAnnotation:"true"`
	NativeVlan     *uint16                                                                                  `path:"native-vlan" module:"openconfig-vlan"`
	ΛNativeVlan    []ygot.Annotation                                                                        `path:"@native-vlan" ygotAnnotation:"true"`
	TrunkVlans     []OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union `path:"trunk-vlans" module:"openconfig-vlan"`
	ΛTrunkVlans    []ygot.Annotation                                                                        `path:"@trunk-vlans" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) IsYANGGoStruct() {}

// GetAccessVlan retrieves the value of the leaf AccessVlan from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccessVlan is set, it can
// safely use t.GetAccessVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccessVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) GetAccessVlan() uint16 {
	if t == nil || t.AccessVlan == nil {
		return 0
	}
	return *t.AccessVlan
}

// GetInterfaceMode retrieves the value of the leaf InterfaceMode from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceMode is set, it can
// safely use t.GetInterfaceMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) GetInterfaceMode() E_OpenconfigVlanTypes_VlanModeType {
	if t == nil || t.InterfaceMode == 0 {
		return 0
	}
	return t.InterfaceMode
}

// GetNativeVlan retrieves the value of the leaf NativeVlan from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NativeVlan is set, it can
// safely use t.GetNativeVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NativeVlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) GetNativeVlan() uint16 {
	if t == nil || t.NativeVlan == nil {
		return 0
	}
	return *t.NativeVlan
}

// GetTrunkVlans retrieves the value of the leaf TrunkVlans from the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrunkVlans is set, it can
// safely use t.GetTrunkVlans() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrunkVlans == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) GetTrunkVlans() []OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union {
	if t == nil || t.TrunkVlans == nil {
		return nil
	}
	return t.TrunkVlans
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/ethernet/switched-vlan/state/trunk-vlans within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State) To_OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_Ethernet_SwitchedVlan_State_TrunkVlans_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces_Interface_HoldTime represents the /openconfig-interfaces/interfaces/interface/hold-time YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_HoldTime struct {
	ΛMetadata []ygot.Annotation                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config `path:"config" module:"openconfig-interfaces"`
	ΛConfig   []ygot.Annotation                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State  `path:"state" module:"openconfig-interfaces"`
	ΛState    []ygot.Annotation                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_HoldTime implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_HoldTime_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_HoldTime. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_HoldTime. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) GetState() *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_HoldTime
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_HoldTime"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_HoldTime.
func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config represents the /openconfig-interfaces/interfaces/interface/hold-time/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Down      *uint32           `path:"down" module:"openconfig-interfaces"`
	ΛDown     []ygot.Annotation `path:"@down" ygotAnnotation:"true"`
	Up        *uint32           `path:"up" module:"openconfig-interfaces"`
	ΛUp       []ygot.Annotation `path:"@up" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) IsYANGGoStruct() {}

// GetDown retrieves the value of the leaf Down from the OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Down is set, it can
// safely use t.GetDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Down == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) GetDown() uint32 {
	if t == nil || t.Down == nil {
		return 0
	}
	return *t.Down
}

// GetUp retrieves the value of the leaf Up from the OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Up is set, it can
// safely use t.GetUp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Up == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) GetUp() uint32 {
	if t == nil || t.Up == nil {
		return 0
	}
	return *t.Up
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Down == nil {
		var v uint32 = 0
		t.Down = &v
	}
	if t.Up == nil {
		var v uint32 = 0
		t.Up = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_HoldTime_State represents the /openconfig-interfaces/interfaces/interface/hold-time/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_HoldTime_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Down      *uint32           `path:"down" module:"openconfig-interfaces"`
	ΛDown     []ygot.Annotation `path:"@down" ygotAnnotation:"true"`
	Up        *uint32           `path:"up" module:"openconfig-interfaces"`
	ΛUp       []ygot.Annotation `path:"@up" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_HoldTime_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) IsYANGGoStruct() {}

// GetDown retrieves the value of the leaf Down from the OpenconfigInterfaces_Interfaces_Interface_HoldTime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Down is set, it can
// safely use t.GetDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Down == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) GetDown() uint32 {
	if t == nil || t.Down == nil {
		return 0
	}
	return *t.Down
}

// GetUp retrieves the value of the leaf Up from the OpenconfigInterfaces_Interfaces_Interface_HoldTime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Up is set, it can
// safely use t.GetUp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Up == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) GetUp() uint32 {
	if t == nil || t.Up == nil {
		return 0
	}
	return *t.Up
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_HoldTime_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Down == nil {
		var v uint32 = 0
		t.Down = &v
	}
	if t.Up == nil {
		var v uint32 = 0
		t.Up = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_HoldTime_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_HoldTime_State.
func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied represents the /openconfig-interfaces/interfaces/interface/penalty-based-aied YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied struct {
	ΛMetadata []ygot.Annotation                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config `path:"config" module:"openconfig-interfaces"`
	ΛConfig   []ygot.Annotation                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State  `path:"state" module:"openconfig-interfaces"`
	ΛState    []ygot.Annotation                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) GetState() *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied.
func (*OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config represents the /openconfig-interfaces/interfaces/interface/penalty-based-aied/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DecayHalfLife      *uint32           `path:"decay-half-life" module:"openconfig-interfaces"`
	ΛDecayHalfLife     []ygot.Annotation `path:"@decay-half-life" ygotAnnotation:"true"`
	FlapPenalty        *uint32           `path:"flap-penalty" module:"openconfig-interfaces"`
	ΛFlapPenalty       []ygot.Annotation `path:"@flap-penalty" ygotAnnotation:"true"`
	MaxSuppressTime    *uint32           `path:"max-suppress-time" module:"openconfig-interfaces"`
	ΛMaxSuppressTime   []ygot.Annotation `path:"@max-suppress-time" ygotAnnotation:"true"`
	ReuseThreshold     *uint32           `path:"reuse-threshold" module:"openconfig-interfaces"`
	ΛReuseThreshold    []ygot.Annotation `path:"@reuse-threshold" ygotAnnotation:"true"`
	SuppressThreshold  *uint32           `path:"suppress-threshold" module:"openconfig-interfaces"`
	ΛSuppressThreshold []ygot.Annotation `path:"@suppress-threshold" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) IsYANGGoStruct() {}

// GetDecayHalfLife retrieves the value of the leaf DecayHalfLife from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecayHalfLife is set, it can
// safely use t.GetDecayHalfLife() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecayHalfLife == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) GetDecayHalfLife() uint32 {
	if t == nil || t.DecayHalfLife == nil {
		return 0
	}
	return *t.DecayHalfLife
}

// GetFlapPenalty retrieves the value of the leaf FlapPenalty from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlapPenalty is set, it can
// safely use t.GetFlapPenalty() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlapPenalty == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) GetFlapPenalty() uint32 {
	if t == nil || t.FlapPenalty == nil {
		return 0
	}
	return *t.FlapPenalty
}

// GetMaxSuppressTime retrieves the value of the leaf MaxSuppressTime from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxSuppressTime is set, it can
// safely use t.GetMaxSuppressTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxSuppressTime == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) GetMaxSuppressTime() uint32 {
	if t == nil || t.MaxSuppressTime == nil {
		return 0
	}
	return *t.MaxSuppressTime
}

// GetReuseThreshold retrieves the value of the leaf ReuseThreshold from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReuseThreshold is set, it can
// safely use t.GetReuseThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReuseThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) GetReuseThreshold() uint32 {
	if t == nil || t.ReuseThreshold == nil {
		return 0
	}
	return *t.ReuseThreshold
}

// GetSuppressThreshold retrieves the value of the leaf SuppressThreshold from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SuppressThreshold is set, it can
// safely use t.GetSuppressThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SuppressThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) GetSuppressThreshold() uint32 {
	if t == nil || t.SuppressThreshold == nil {
		return 0
	}
	return *t.SuppressThreshold
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DecayHalfLife == nil {
		var v uint32 = 0
		t.DecayHalfLife = &v
	}
	if t.FlapPenalty == nil {
		var v uint32 = 0
		t.FlapPenalty = &v
	}
	if t.MaxSuppressTime == nil {
		var v uint32 = 0
		t.MaxSuppressTime = &v
	}
	if t.ReuseThreshold == nil {
		var v uint32 = 0
		t.ReuseThreshold = &v
	}
	if t.SuppressThreshold == nil {
		var v uint32 = 0
		t.SuppressThreshold = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_Config) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State represents the /openconfig-interfaces/interfaces/interface/penalty-based-aied/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DecayHalfLife      *uint32           `path:"decay-half-life" module:"openconfig-interfaces"`
	ΛDecayHalfLife     []ygot.Annotation `path:"@decay-half-life" ygotAnnotation:"true"`
	FlapPenalty        *uint32           `path:"flap-penalty" module:"openconfig-interfaces"`
	ΛFlapPenalty       []ygot.Annotation `path:"@flap-penalty" ygotAnnotation:"true"`
	MaxSuppressTime    *uint32           `path:"max-suppress-time" module:"openconfig-interfaces"`
	ΛMaxSuppressTime   []ygot.Annotation `path:"@max-suppress-time" ygotAnnotation:"true"`
	ReuseThreshold     *uint32           `path:"reuse-threshold" module:"openconfig-interfaces"`
	ΛReuseThreshold    []ygot.Annotation `path:"@reuse-threshold" ygotAnnotation:"true"`
	SuppressThreshold  *uint32           `path:"suppress-threshold" module:"openconfig-interfaces"`
	ΛSuppressThreshold []ygot.Annotation `path:"@suppress-threshold" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) IsYANGGoStruct() {}

// GetDecayHalfLife retrieves the value of the leaf DecayHalfLife from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecayHalfLife is set, it can
// safely use t.GetDecayHalfLife() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecayHalfLife == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) GetDecayHalfLife() uint32 {
	if t == nil || t.DecayHalfLife == nil {
		return 0
	}
	return *t.DecayHalfLife
}

// GetFlapPenalty retrieves the value of the leaf FlapPenalty from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlapPenalty is set, it can
// safely use t.GetFlapPenalty() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlapPenalty == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) GetFlapPenalty() uint32 {
	if t == nil || t.FlapPenalty == nil {
		return 0
	}
	return *t.FlapPenalty
}

// GetMaxSuppressTime retrieves the value of the leaf MaxSuppressTime from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxSuppressTime is set, it can
// safely use t.GetMaxSuppressTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxSuppressTime == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) GetMaxSuppressTime() uint32 {
	if t == nil || t.MaxSuppressTime == nil {
		return 0
	}
	return *t.MaxSuppressTime
}

// GetReuseThreshold retrieves the value of the leaf ReuseThreshold from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReuseThreshold is set, it can
// safely use t.GetReuseThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReuseThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) GetReuseThreshold() uint32 {
	if t == nil || t.ReuseThreshold == nil {
		return 0
	}
	return *t.ReuseThreshold
}

// GetSuppressThreshold retrieves the value of the leaf SuppressThreshold from the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SuppressThreshold is set, it can
// safely use t.GetSuppressThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SuppressThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) GetSuppressThreshold() uint32 {
	if t == nil || t.SuppressThreshold == nil {
		return 0
	}
	return *t.SuppressThreshold
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DecayHalfLife == nil {
		var v uint32 = 0
		t.DecayHalfLife = &v
	}
	if t.FlapPenalty == nil {
		var v uint32 = 0
		t.FlapPenalty = &v
	}
	if t.MaxSuppressTime == nil {
		var v uint32 = 0
		t.MaxSuppressTime = &v
	}
	if t.ReuseThreshold == nil {
		var v uint32 = 0
		t.ReuseThreshold = &v
	}
	if t.SuppressThreshold == nil {
		var v uint32 = 0
		t.SuppressThreshold = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State.
func (*OpenconfigInterfaces_Interfaces_Interface_PenaltyBasedAied_State) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_RoutedVlan represents the /openconfig-interfaces/interfaces/interface/routed-vlan YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_RoutedVlan struct {
	ΛMetadata []ygot.Annotation                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_RoutedVlan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_RoutedVlan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_RoutedVlan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) GetState() *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_RoutedVlan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_RoutedVlan.
func (*OpenconfigInterfaces_Interfaces_Interface_RoutedVlan) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config represents the /openconfig-interfaces/interfaces/interface/routed-vlan/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config struct {
	ΛMetadata []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Vlan      OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union `path:"vlan" module:"openconfig-vlan"`
	ΛVlan     []ygot.Annotation                                                      `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) IsYANGGoStruct() {}

// GetVlan retrieves the value of the leaf Vlan from the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vlan is set, it can
// safely use t.GetVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) GetVlan() OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union {
	if t == nil || t.Vlan == nil {
		return nil
	}
	return t.Vlan
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/routed-vlan/config/vlan within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config) To_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_Config_Vlan_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State represents the /openconfig-interfaces/interfaces/interface/routed-vlan/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State struct {
	ΛMetadata []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	Vlan      OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union `path:"vlan" module:"openconfig-vlan"`
	ΛVlan     []ygot.Annotation                                                     `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) IsYANGGoStruct() {}

// GetVlan retrieves the value of the leaf Vlan from the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vlan is set, it can
// safely use t.GetVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vlan == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) GetVlan() OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union {
	if t == nil || t.Vlan == nil {
		return nil
	}
	return t.Vlan
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State.
func (*OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/routed-vlan/state/vlan within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State) To_OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_RoutedVlan_State_Vlan_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces_Interface_State represents the /openconfig-interfaces/interfaces/interface/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_State struct {
	ΛMetadata        []ygot.Annotation                                             `path:"@" ygotAnnotation:"true"`
	AdminStatus      E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus `path:"admin-status" module:"openconfig-interfaces"`
	ΛAdminStatus     []ygot.Annotation                                             `path:"@admin-status" ygotAnnotation:"true"`
	Counters         *OpenconfigInterfaces_Interfaces_Interface_State_Counters     `path:"counters" module:"openconfig-interfaces"`
	ΛCounters        []ygot.Annotation                                             `path:"@counters" ygotAnnotation:"true"`
	Cpu              *bool                                                         `path:"cpu" module:"openconfig-interfaces"`
	ΛCpu             []ygot.Annotation                                             `path:"@cpu" ygotAnnotation:"true"`
	Description      *string                                                       `path:"description" module:"openconfig-interfaces"`
	ΛDescription     []ygot.Annotation                                             `path:"@description" ygotAnnotation:"true"`
	Enabled          *bool                                                         `path:"enabled" module:"openconfig-interfaces"`
	ΛEnabled         []ygot.Annotation                                             `path:"@enabled" ygotAnnotation:"true"`
	HardwarePort     *string                                                       `path:"hardware-port" module:"openconfig-platform-port"`
	ΛHardwarePort    []ygot.Annotation                                             `path:"@hardware-port" ygotAnnotation:"true"`
	Ifindex          *uint32                                                       `path:"ifindex" module:"openconfig-interfaces"`
	ΛIfindex         []ygot.Annotation                                             `path:"@ifindex" ygotAnnotation:"true"`
	LastChange       *uint64                                                       `path:"last-change" module:"openconfig-interfaces"`
	ΛLastChange      []ygot.Annotation                                             `path:"@last-change" ygotAnnotation:"true"`
	Logical          *bool                                                         `path:"logical" module:"openconfig-interfaces"`
	ΛLogical         []ygot.Annotation                                             `path:"@logical" ygotAnnotation:"true"`
	LoopbackMode     E_OpenconfigTransportTypes_LoopbackModeType                   `path:"loopback-mode" module:"openconfig-interfaces"`
	ΛLoopbackMode    []ygot.Annotation                                             `path:"@loopback-mode" ygotAnnotation:"true"`
	Management       *bool                                                         `path:"management" module:"openconfig-interfaces"`
	ΛManagement      []ygot.Annotation                                             `path:"@management" ygotAnnotation:"true"`
	Mtu              *uint16                                                       `path:"mtu" module:"openconfig-interfaces"`
	ΛMtu             []ygot.Annotation                                             `path:"@mtu" ygotAnnotation:"true"`
	Name             *string                                                       `path:"name" module:"openconfig-interfaces"`
	ΛName            []ygot.Annotation                                             `path:"@name" ygotAnnotation:"true"`
	OperStatus       E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus  `path:"oper-status" module:"openconfig-interfaces"`
	ΛOperStatus      []ygot.Annotation                                             `path:"@oper-status" ygotAnnotation:"true"`
	PhysicalChannel  []uint16                                                      `path:"physical-channel" module:"openconfig-platform-transceiver"`
	ΛPhysicalChannel []ygot.Annotation                                             `path:"@physical-channel" ygotAnnotation:"true"`
	Tpid             E_OpenconfigVlanTypes_TPID_TYPES                              `path:"tpid" module:"openconfig-vlan"`
	ΛTpid            []ygot.Annotation                                             `path:"@tpid" ygotAnnotation:"true"`
	Transceiver      *string                                                       `path:"transceiver" module:"openconfig-platform-transceiver"`
	ΛTransceiver     []ygot.Annotation                                             `path:"@transceiver" ygotAnnotation:"true"`
	Type             E_IETFInterfaces_InterfaceType                                `path:"type" module:"openconfig-interfaces"`
	ΛType            []ygot.Annotation                                             `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_State) IsYANGGoStruct() {}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetOrCreateCounters() *OpenconfigInterfaces_Interfaces_Interface_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigInterfaces_Interfaces_Interface_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetCounters() *OpenconfigInterfaces_Interfaces_Interface_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetAdminStatus retrieves the value of the leaf AdminStatus from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminStatus is set, it can
// safely use t.GetAdminStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetAdminStatus() E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus {
	if t == nil || t.AdminStatus == 0 {
		return 0
	}
	return t.AdminStatus
}

// GetCpu retrieves the value of the leaf Cpu from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Cpu is set, it can
// safely use t.GetCpu() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Cpu == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetCpu() bool {
	if t == nil || t.Cpu == nil {
		return false
	}
	return *t.Cpu
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetHardwarePort retrieves the value of the leaf HardwarePort from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HardwarePort is set, it can
// safely use t.GetHardwarePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HardwarePort == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetHardwarePort() string {
	if t == nil || t.HardwarePort == nil {
		return ""
	}
	return *t.HardwarePort
}

// GetIfindex retrieves the value of the leaf Ifindex from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ifindex is set, it can
// safely use t.GetIfindex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ifindex == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetIfindex() uint32 {
	if t == nil || t.Ifindex == nil {
		return 0
	}
	return *t.Ifindex
}

// GetLastChange retrieves the value of the leaf LastChange from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastChange is set, it can
// safely use t.GetLastChange() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastChange == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetLastChange() uint64 {
	if t == nil || t.LastChange == nil {
		return 0
	}
	return *t.LastChange
}

// GetLogical retrieves the value of the leaf Logical from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Logical is set, it can
// safely use t.GetLogical() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Logical == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetLogical() bool {
	if t == nil || t.Logical == nil {
		return false
	}
	return *t.Logical
}

// GetLoopbackMode retrieves the value of the leaf LoopbackMode from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoopbackMode is set, it can
// safely use t.GetLoopbackMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoopbackMode == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetLoopbackMode() E_OpenconfigTransportTypes_LoopbackModeType {
	if t == nil || t.LoopbackMode == 0 {
		return OpenconfigTransportTypes_LoopbackModeType_NONE
	}
	return t.LoopbackMode
}

// GetManagement retrieves the value of the leaf Management from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Management is set, it can
// safely use t.GetManagement() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Management == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetManagement() bool {
	if t == nil || t.Management == nil {
		return false
	}
	return *t.Management
}

// GetMtu retrieves the value of the leaf Mtu from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mtu is set, it can
// safely use t.GetMtu() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mtu == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetMtu() uint16 {
	if t == nil || t.Mtu == nil {
		return 0
	}
	return *t.Mtu
}

// GetName retrieves the value of the leaf Name from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetOperStatus retrieves the value of the leaf OperStatus from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OperStatus is set, it can
// safely use t.GetOperStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OperStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetOperStatus() E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus {
	if t == nil || t.OperStatus == 0 {
		return 0
	}
	return t.OperStatus
}

// GetPhysicalChannel retrieves the value of the leaf PhysicalChannel from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PhysicalChannel is set, it can
// safely use t.GetPhysicalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PhysicalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetPhysicalChannel() []uint16 {
	if t == nil || t.PhysicalChannel == nil {
		return nil
	}
	return t.PhysicalChannel
}

// GetTpid retrieves the value of the leaf Tpid from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tpid is set, it can
// safely use t.GetTpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tpid == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetTpid() E_OpenconfigVlanTypes_TPID_TYPES {
	if t == nil || t.Tpid == 0 {
		return OpenconfigVlanTypes_TPID_TYPES_TPID_0X8100
	}
	return t.Tpid
}

// GetTransceiver retrieves the value of the leaf Transceiver from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transceiver is set, it can
// safely use t.GetTransceiver() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transceiver == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetTransceiver() string {
	if t == nil || t.Transceiver == nil {
		return ""
	}
	return *t.Transceiver
}

// GetType retrieves the value of the leaf Type from the OpenconfigInterfaces_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) GetType() E_IETFInterfaces_InterfaceType {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	if t.LoopbackMode == 0 {
		t.LoopbackMode = OpenconfigTransportTypes_LoopbackModeType_NONE
	}
	if t.Tpid == 0 {
		t.Tpid = OpenconfigVlanTypes_TPID_TYPES_TPID_0X8100
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_State.
func (*OpenconfigInterfaces_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_State_Counters represents the /openconfig-interfaces/interfaces/interface/state/counters YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_State_Counters struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CarrierTransitions  *uint64           `path:"carrier-transitions" module:"openconfig-interfaces"`
	ΛCarrierTransitions []ygot.Annotation `path:"@carrier-transitions" ygotAnnotation:"true"`
	InBroadcastPkts     *uint64           `path:"in-broadcast-pkts" module:"openconfig-interfaces"`
	ΛInBroadcastPkts    []ygot.Annotation `path:"@in-broadcast-pkts" ygotAnnotation:"true"`
	InDiscards          *uint64           `path:"in-discards" module:"openconfig-interfaces"`
	ΛInDiscards         []ygot.Annotation `path:"@in-discards" ygotAnnotation:"true"`
	InErrors            *uint64           `path:"in-errors" module:"openconfig-interfaces"`
	ΛInErrors           []ygot.Annotation `path:"@in-errors" ygotAnnotation:"true"`
	InFcsErrors         *uint64           `path:"in-fcs-errors" module:"openconfig-interfaces"`
	ΛInFcsErrors        []ygot.Annotation `path:"@in-fcs-errors" ygotAnnotation:"true"`
	InMulticastPkts     *uint64           `path:"in-multicast-pkts" module:"openconfig-interfaces"`
	ΛInMulticastPkts    []ygot.Annotation `path:"@in-multicast-pkts" ygotAnnotation:"true"`
	InOctets            *uint64           `path:"in-octets" module:"openconfig-interfaces"`
	ΛInOctets           []ygot.Annotation `path:"@in-octets" ygotAnnotation:"true"`
	InPkts              *uint64           `path:"in-pkts" module:"openconfig-interfaces"`
	ΛInPkts             []ygot.Annotation `path:"@in-pkts" ygotAnnotation:"true"`
	InUnicastPkts       *uint64           `path:"in-unicast-pkts" module:"openconfig-interfaces"`
	ΛInUnicastPkts      []ygot.Annotation `path:"@in-unicast-pkts" ygotAnnotation:"true"`
	InUnknownProtos     *uint64           `path:"in-unknown-protos" module:"openconfig-interfaces"`
	ΛInUnknownProtos    []ygot.Annotation `path:"@in-unknown-protos" ygotAnnotation:"true"`
	LastClear           *uint64           `path:"last-clear" module:"openconfig-interfaces"`
	ΛLastClear          []ygot.Annotation `path:"@last-clear" ygotAnnotation:"true"`
	OutBroadcastPkts    *uint64           `path:"out-broadcast-pkts" module:"openconfig-interfaces"`
	ΛOutBroadcastPkts   []ygot.Annotation `path:"@out-broadcast-pkts" ygotAnnotation:"true"`
	OutDiscards         *uint64           `path:"out-discards" module:"openconfig-interfaces"`
	ΛOutDiscards        []ygot.Annotation `path:"@out-discards" ygotAnnotation:"true"`
	OutErrors           *uint64           `path:"out-errors" module:"openconfig-interfaces"`
	ΛOutErrors          []ygot.Annotation `path:"@out-errors" ygotAnnotation:"true"`
	OutMulticastPkts    *uint64           `path:"out-multicast-pkts" module:"openconfig-interfaces"`
	ΛOutMulticastPkts   []ygot.Annotation `path:"@out-multicast-pkts" ygotAnnotation:"true"`
	OutOctets           *uint64           `path:"out-octets" module:"openconfig-interfaces"`
	ΛOutOctets          []ygot.Annotation `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts             *uint64           `path:"out-pkts" module:"openconfig-interfaces"`
	ΛOutPkts            []ygot.Annotation `path:"@out-pkts" ygotAnnotation:"true"`
	OutUnicastPkts      *uint64           `path:"out-unicast-pkts" module:"openconfig-interfaces"`
	ΛOutUnicastPkts     []ygot.Annotation `path:"@out-unicast-pkts" ygotAnnotation:"true"`
	Resets              *uint64           `path:"resets" module:"openconfig-interfaces"`
	ΛResets             []ygot.Annotation `path:"@resets" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_State_Counters) IsYANGGoStruct() {}

// GetCarrierTransitions retrieves the value of the leaf CarrierTransitions from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CarrierTransitions is set, it can
// safely use t.GetCarrierTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CarrierTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetCarrierTransitions() uint64 {
	if t == nil || t.CarrierTransitions == nil {
		return 0
	}
	return *t.CarrierTransitions
}

// GetInBroadcastPkts retrieves the value of the leaf InBroadcastPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InBroadcastPkts is set, it can
// safely use t.GetInBroadcastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InBroadcastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInBroadcastPkts() uint64 {
	if t == nil || t.InBroadcastPkts == nil {
		return 0
	}
	return *t.InBroadcastPkts
}

// GetInDiscards retrieves the value of the leaf InDiscards from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InDiscards is set, it can
// safely use t.GetInDiscards() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InDiscards == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInDiscards() uint64 {
	if t == nil || t.InDiscards == nil {
		return 0
	}
	return *t.InDiscards
}

// GetInErrors retrieves the value of the leaf InErrors from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InErrors is set, it can
// safely use t.GetInErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInErrors() uint64 {
	if t == nil || t.InErrors == nil {
		return 0
	}
	return *t.InErrors
}

// GetInFcsErrors retrieves the value of the leaf InFcsErrors from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InFcsErrors is set, it can
// safely use t.GetInFcsErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InFcsErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInFcsErrors() uint64 {
	if t == nil || t.InFcsErrors == nil {
		return 0
	}
	return *t.InFcsErrors
}

// GetInMulticastPkts retrieves the value of the leaf InMulticastPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMulticastPkts is set, it can
// safely use t.GetInMulticastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMulticastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInMulticastPkts() uint64 {
	if t == nil || t.InMulticastPkts == nil {
		return 0
	}
	return *t.InMulticastPkts
}

// GetInOctets retrieves the value of the leaf InOctets from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOctets is set, it can
// safely use t.GetInOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInOctets() uint64 {
	if t == nil || t.InOctets == nil {
		return 0
	}
	return *t.InOctets
}

// GetInPkts retrieves the value of the leaf InPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPkts is set, it can
// safely use t.GetInPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInPkts() uint64 {
	if t == nil || t.InPkts == nil {
		return 0
	}
	return *t.InPkts
}

// GetInUnicastPkts retrieves the value of the leaf InUnicastPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InUnicastPkts is set, it can
// safely use t.GetInUnicastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InUnicastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInUnicastPkts() uint64 {
	if t == nil || t.InUnicastPkts == nil {
		return 0
	}
	return *t.InUnicastPkts
}

// GetInUnknownProtos retrieves the value of the leaf InUnknownProtos from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InUnknownProtos is set, it can
// safely use t.GetInUnknownProtos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InUnknownProtos == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetInUnknownProtos() uint64 {
	if t == nil || t.InUnknownProtos == nil {
		return 0
	}
	return *t.InUnknownProtos
}

// GetLastClear retrieves the value of the leaf LastClear from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastClear is set, it can
// safely use t.GetLastClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastClear == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetLastClear() uint64 {
	if t == nil || t.LastClear == nil {
		return 0
	}
	return *t.LastClear
}

// GetOutBroadcastPkts retrieves the value of the leaf OutBroadcastPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutBroadcastPkts is set, it can
// safely use t.GetOutBroadcastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutBroadcastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetOutBroadcastPkts() uint64 {
	if t == nil || t.OutBroadcastPkts == nil {
		return 0
	}
	return *t.OutBroadcastPkts
}

// GetOutDiscards retrieves the value of the leaf OutDiscards from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutDiscards is set, it can
// safely use t.GetOutDiscards() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutDiscards == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetOutDiscards() uint64 {
	if t == nil || t.OutDiscards == nil {
		return 0
	}
	return *t.OutDiscards
}

// GetOutErrors retrieves the value of the leaf OutErrors from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutErrors is set, it can
// safely use t.GetOutErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetOutErrors() uint64 {
	if t == nil || t.OutErrors == nil {
		return 0
	}
	return *t.OutErrors
}

// GetOutMulticastPkts retrieves the value of the leaf OutMulticastPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMulticastPkts is set, it can
// safely use t.GetOutMulticastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMulticastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetOutMulticastPkts() uint64 {
	if t == nil || t.OutMulticastPkts == nil {
		return 0
	}
	return *t.OutMulticastPkts
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// GetOutUnicastPkts retrieves the value of the leaf OutUnicastPkts from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutUnicastPkts is set, it can
// safely use t.GetOutUnicastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutUnicastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetOutUnicastPkts() uint64 {
	if t == nil || t.OutUnicastPkts == nil {
		return 0
	}
	return *t.OutUnicastPkts
}

// GetResets retrieves the value of the leaf Resets from the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Resets is set, it can
// safely use t.GetResets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Resets == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) GetResets() uint64 {
	if t == nil || t.Resets == nil {
		return 0
	}
	return *t.Resets
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_State_Counters.
func (*OpenconfigInterfaces_Interfaces_Interface_State_Counters) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces represents the /openconfig-interfaces/interfaces/interface/subinterfaces YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces struct {
	ΛMetadata     []ygot.Annotation                                                                `path:"@" ygotAnnotation:"true"`
	Subinterface  map[uint32]*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface `path:"subinterface" module:"openconfig-interfaces"`
	ΛSubinterface []ygot.Annotation                                                                `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) IsYANGGoStruct() {}

// NewSubinterface creates a new entry in the Subinterface list of the
// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) NewSubinterface(Index uint32) (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subinterface == nil {
		t.Subinterface = make(map[uint32]*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subinterface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subinterface", key)
	}

	t.Subinterface[key] = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface{
		Index: &Index,
	}

	return t.Subinterface[key], nil
}

// RenameSubinterface renames an entry in the list Subinterface within
// the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) RenameSubinterface(oldK, newK uint32) error {
	if _, ok := t.Subinterface[newK]; ok {
		return fmt.Errorf("key %v already exists in Subinterface", newK)
	}

	e, ok := t.Subinterface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subinterface", oldK)
	}
	e.Index = &newK

	t.Subinterface[newK] = e
	delete(t.Subinterface, oldK)
	return nil
}

// GetOrCreateSubinterfaceMap returns the list (map) from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) GetOrCreateSubinterfaceMap() map[uint32]*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface {
	if t.Subinterface == nil {
		t.Subinterface = make(map[uint32]*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface)
	}
	return t.Subinterface
}

// GetOrCreateSubinterface retrieves the value with the specified keys from
// the receiver OpenconfigInterfaces_Interfaces_Interface_Subinterfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) GetOrCreateSubinterface(Index uint32) *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface {

	key := Index

	if v, ok := t.Subinterface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubinterface(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubinterface got unexpected error: %v", err))
	}
	return v
}

// GetSubinterface retrieves the value with the specified key from
// the Subinterface map field of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) GetSubinterface(Index uint32) *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Subinterface[key]; ok {
		return lm
	}
	return nil
}

// AppendSubinterface appends the supplied OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface struct to the
// list Subinterface of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces. If the key value(s) specified in
// the supplied OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface already exist in the list, an error is
// returned.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) AppendSubinterface(v *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subinterface == nil {
		t.Subinterface = make(map[uint32]*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface)
	}

	if _, ok := t.Subinterface[key]; ok {
		return fmt.Errorf("duplicate key for list Subinterface %v", key)
	}

	t.Subinterface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subinterface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface struct {
	ΛMetadata []ygot.Annotation                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config `path:"config" module:"openconfig-interfaces"`
	ΛConfig   []ygot.Annotation                                                            `path:"@config" ygotAnnotation:"true"`
	Index     *uint32                                                                      `path:"index" module:"openconfig-interfaces"`
	ΛIndex    []ygot.Annotation                                                            `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State  `path:"state" module:"openconfig-interfaces"`
	ΛState    []ygot.Annotation                                                            `path:"@state" ygotAnnotation:"true"`
	Vlan      *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan   `path:"vlan" module:"openconfig-vlan"`
	ΛVlan     []ygot.Annotation                                                            `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State{}
	return t.State
}

// GetOrCreateVlan retrieves the value of the Vlan field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) GetOrCreateVlan() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan {
	if t.Vlan != nil {
		return t.Vlan
	}
	t.Vlan = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan{}
	return t.Vlan
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetVlan returns the value of the Vlan struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface. If the receiver or the field Vlan is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) GetVlan() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan {
	if t != nil && t.Vlan != nil {
		return t.Vlan
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Vlan.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface struct, which is a YANG list entry.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description  *string           `path:"description" module:"openconfig-interfaces"`
	ΛDescription []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-interfaces"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Index        *uint32           `path:"index" module:"openconfig-interfaces"`
	ΛIndex       []ygot.Annotation `path:"@index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) IsYANGGoStruct() {
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	if t.Index == nil {
		var v uint32 = 0
		t.Index = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State struct {
	ΛMetadata    []ygot.Annotation                                                                    `path:"@" ygotAnnotation:"true"`
	AdminStatus  E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus                        `path:"admin-status" module:"openconfig-interfaces"`
	ΛAdminStatus []ygot.Annotation                                                                    `path:"@admin-status" ygotAnnotation:"true"`
	Counters     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters `path:"counters" module:"openconfig-interfaces"`
	ΛCounters    []ygot.Annotation                                                                    `path:"@counters" ygotAnnotation:"true"`
	Cpu          *bool                                                                                `path:"cpu" module:"openconfig-interfaces"`
	ΛCpu         []ygot.Annotation                                                                    `path:"@cpu" ygotAnnotation:"true"`
	Description  *string                                                                              `path:"description" module:"openconfig-interfaces"`
	ΛDescription []ygot.Annotation                                                                    `path:"@description" ygotAnnotation:"true"`
	Enabled      *bool                                                                                `path:"enabled" module:"openconfig-interfaces"`
	ΛEnabled     []ygot.Annotation                                                                    `path:"@enabled" ygotAnnotation:"true"`
	Ifindex      *uint32                                                                              `path:"ifindex" module:"openconfig-interfaces"`
	ΛIfindex     []ygot.Annotation                                                                    `path:"@ifindex" ygotAnnotation:"true"`
	Index        *uint32                                                                              `path:"index" module:"openconfig-interfaces"`
	ΛIndex       []ygot.Annotation                                                                    `path:"@index" ygotAnnotation:"true"`
	LastChange   *uint64                                                                              `path:"last-change" module:"openconfig-interfaces"`
	ΛLastChange  []ygot.Annotation                                                                    `path:"@last-change" ygotAnnotation:"true"`
	Logical      *bool                                                                                `path:"logical" module:"openconfig-interfaces"`
	ΛLogical     []ygot.Annotation                                                                    `path:"@logical" ygotAnnotation:"true"`
	Management   *bool                                                                                `path:"management" module:"openconfig-interfaces"`
	ΛManagement  []ygot.Annotation                                                                    `path:"@management" ygotAnnotation:"true"`
	Name         *string                                                                              `path:"name" module:"openconfig-interfaces"`
	ΛName        []ygot.Annotation                                                                    `path:"@name" ygotAnnotation:"true"`
	OperStatus   E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus                         `path:"oper-status" module:"openconfig-interfaces"`
	ΛOperStatus  []ygot.Annotation                                                                    `path:"@oper-status" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) IsYANGGoStruct() {}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetOrCreateCounters() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetCounters() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetAdminStatus retrieves the value of the leaf AdminStatus from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminStatus is set, it can
// safely use t.GetAdminStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetAdminStatus() E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus {
	if t == nil || t.AdminStatus == 0 {
		return 0
	}
	return t.AdminStatus
}

// GetCpu retrieves the value of the leaf Cpu from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Cpu is set, it can
// safely use t.GetCpu() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Cpu == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetCpu() bool {
	if t == nil || t.Cpu == nil {
		return false
	}
	return *t.Cpu
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetIfindex retrieves the value of the leaf Ifindex from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ifindex is set, it can
// safely use t.GetIfindex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ifindex == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetIfindex() uint32 {
	if t == nil || t.Ifindex == nil {
		return 0
	}
	return *t.Ifindex
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLastChange retrieves the value of the leaf LastChange from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastChange is set, it can
// safely use t.GetLastChange() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastChange == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetLastChange() uint64 {
	if t == nil || t.LastChange == nil {
		return 0
	}
	return *t.LastChange
}

// GetLogical retrieves the value of the leaf Logical from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Logical is set, it can
// safely use t.GetLogical() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Logical == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetLogical() bool {
	if t == nil || t.Logical == nil {
		return false
	}
	return *t.Logical
}

// GetManagement retrieves the value of the leaf Management from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Management is set, it can
// safely use t.GetManagement() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Management == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetManagement() bool {
	if t == nil || t.Management == nil {
		return false
	}
	return *t.Management
}

// GetName retrieves the value of the leaf Name from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetOperStatus retrieves the value of the leaf OperStatus from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OperStatus is set, it can
// safely use t.GetOperStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OperStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) GetOperStatus() E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus {
	if t == nil || t.OperStatus == 0 {
		return 0
	}
	return t.OperStatus
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	if t.Index == nil {
		var v uint32 = 0
		t.Index = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/state/counters YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CarrierTransitions  *uint64           `path:"carrier-transitions" module:"openconfig-interfaces"`
	ΛCarrierTransitions []ygot.Annotation `path:"@carrier-transitions" ygotAnnotation:"true"`
	InBroadcastPkts     *uint64           `path:"in-broadcast-pkts" module:"openconfig-interfaces"`
	ΛInBroadcastPkts    []ygot.Annotation `path:"@in-broadcast-pkts" ygotAnnotation:"true"`
	InDiscards          *uint64           `path:"in-discards" module:"openconfig-interfaces"`
	ΛInDiscards         []ygot.Annotation `path:"@in-discards" ygotAnnotation:"true"`
	InErrors            *uint64           `path:"in-errors" module:"openconfig-interfaces"`
	ΛInErrors           []ygot.Annotation `path:"@in-errors" ygotAnnotation:"true"`
	InFcsErrors         *uint64           `path:"in-fcs-errors" module:"openconfig-interfaces"`
	ΛInFcsErrors        []ygot.Annotation `path:"@in-fcs-errors" ygotAnnotation:"true"`
	InMulticastPkts     *uint64           `path:"in-multicast-pkts" module:"openconfig-interfaces"`
	ΛInMulticastPkts    []ygot.Annotation `path:"@in-multicast-pkts" ygotAnnotation:"true"`
	InOctets            *uint64           `path:"in-octets" module:"openconfig-interfaces"`
	ΛInOctets           []ygot.Annotation `path:"@in-octets" ygotAnnotation:"true"`
	InPkts              *uint64           `path:"in-pkts" module:"openconfig-interfaces"`
	ΛInPkts             []ygot.Annotation `path:"@in-pkts" ygotAnnotation:"true"`
	InUnicastPkts       *uint64           `path:"in-unicast-pkts" module:"openconfig-interfaces"`
	ΛInUnicastPkts      []ygot.Annotation `path:"@in-unicast-pkts" ygotAnnotation:"true"`
	InUnknownProtos     *uint64           `path:"in-unknown-protos" module:"openconfig-interfaces"`
	ΛInUnknownProtos    []ygot.Annotation `path:"@in-unknown-protos" ygotAnnotation:"true"`
	LastClear           *uint64           `path:"last-clear" module:"openconfig-interfaces"`
	ΛLastClear          []ygot.Annotation `path:"@last-clear" ygotAnnotation:"true"`
	OutBroadcastPkts    *uint64           `path:"out-broadcast-pkts" module:"openconfig-interfaces"`
	ΛOutBroadcastPkts   []ygot.Annotation `path:"@out-broadcast-pkts" ygotAnnotation:"true"`
	OutDiscards         *uint64           `path:"out-discards" module:"openconfig-interfaces"`
	ΛOutDiscards        []ygot.Annotation `path:"@out-discards" ygotAnnotation:"true"`
	OutErrors           *uint64           `path:"out-errors" module:"openconfig-interfaces"`
	ΛOutErrors          []ygot.Annotation `path:"@out-errors" ygotAnnotation:"true"`
	OutMulticastPkts    *uint64           `path:"out-multicast-pkts" module:"openconfig-interfaces"`
	ΛOutMulticastPkts   []ygot.Annotation `path:"@out-multicast-pkts" ygotAnnotation:"true"`
	OutOctets           *uint64           `path:"out-octets" module:"openconfig-interfaces"`
	ΛOutOctets          []ygot.Annotation `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts             *uint64           `path:"out-pkts" module:"openconfig-interfaces"`
	ΛOutPkts            []ygot.Annotation `path:"@out-pkts" ygotAnnotation:"true"`
	OutUnicastPkts      *uint64           `path:"out-unicast-pkts" module:"openconfig-interfaces"`
	ΛOutUnicastPkts     []ygot.Annotation `path:"@out-unicast-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) IsYANGGoStruct() {
}

// GetCarrierTransitions retrieves the value of the leaf CarrierTransitions from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CarrierTransitions is set, it can
// safely use t.GetCarrierTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CarrierTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetCarrierTransitions() uint64 {
	if t == nil || t.CarrierTransitions == nil {
		return 0
	}
	return *t.CarrierTransitions
}

// GetInBroadcastPkts retrieves the value of the leaf InBroadcastPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InBroadcastPkts is set, it can
// safely use t.GetInBroadcastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InBroadcastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInBroadcastPkts() uint64 {
	if t == nil || t.InBroadcastPkts == nil {
		return 0
	}
	return *t.InBroadcastPkts
}

// GetInDiscards retrieves the value of the leaf InDiscards from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InDiscards is set, it can
// safely use t.GetInDiscards() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InDiscards == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInDiscards() uint64 {
	if t == nil || t.InDiscards == nil {
		return 0
	}
	return *t.InDiscards
}

// GetInErrors retrieves the value of the leaf InErrors from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InErrors is set, it can
// safely use t.GetInErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInErrors() uint64 {
	if t == nil || t.InErrors == nil {
		return 0
	}
	return *t.InErrors
}

// GetInFcsErrors retrieves the value of the leaf InFcsErrors from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InFcsErrors is set, it can
// safely use t.GetInFcsErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InFcsErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInFcsErrors() uint64 {
	if t == nil || t.InFcsErrors == nil {
		return 0
	}
	return *t.InFcsErrors
}

// GetInMulticastPkts retrieves the value of the leaf InMulticastPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMulticastPkts is set, it can
// safely use t.GetInMulticastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMulticastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInMulticastPkts() uint64 {
	if t == nil || t.InMulticastPkts == nil {
		return 0
	}
	return *t.InMulticastPkts
}

// GetInOctets retrieves the value of the leaf InOctets from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOctets is set, it can
// safely use t.GetInOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInOctets() uint64 {
	if t == nil || t.InOctets == nil {
		return 0
	}
	return *t.InOctets
}

// GetInPkts retrieves the value of the leaf InPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPkts is set, it can
// safely use t.GetInPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInPkts() uint64 {
	if t == nil || t.InPkts == nil {
		return 0
	}
	return *t.InPkts
}

// GetInUnicastPkts retrieves the value of the leaf InUnicastPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InUnicastPkts is set, it can
// safely use t.GetInUnicastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InUnicastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInUnicastPkts() uint64 {
	if t == nil || t.InUnicastPkts == nil {
		return 0
	}
	return *t.InUnicastPkts
}

// GetInUnknownProtos retrieves the value of the leaf InUnknownProtos from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InUnknownProtos is set, it can
// safely use t.GetInUnknownProtos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InUnknownProtos == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInUnknownProtos() uint64 {
	if t == nil || t.InUnknownProtos == nil {
		return 0
	}
	return *t.InUnknownProtos
}

// GetLastClear retrieves the value of the leaf LastClear from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastClear is set, it can
// safely use t.GetLastClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastClear == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetLastClear() uint64 {
	if t == nil || t.LastClear == nil {
		return 0
	}
	return *t.LastClear
}

// GetOutBroadcastPkts retrieves the value of the leaf OutBroadcastPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutBroadcastPkts is set, it can
// safely use t.GetOutBroadcastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutBroadcastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutBroadcastPkts() uint64 {
	if t == nil || t.OutBroadcastPkts == nil {
		return 0
	}
	return *t.OutBroadcastPkts
}

// GetOutDiscards retrieves the value of the leaf OutDiscards from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutDiscards is set, it can
// safely use t.GetOutDiscards() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutDiscards == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutDiscards() uint64 {
	if t == nil || t.OutDiscards == nil {
		return 0
	}
	return *t.OutDiscards
}

// GetOutErrors retrieves the value of the leaf OutErrors from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutErrors is set, it can
// safely use t.GetOutErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutErrors() uint64 {
	if t == nil || t.OutErrors == nil {
		return 0
	}
	return *t.OutErrors
}

// GetOutMulticastPkts retrieves the value of the leaf OutMulticastPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMulticastPkts is set, it can
// safely use t.GetOutMulticastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMulticastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutMulticastPkts() uint64 {
	if t == nil || t.OutMulticastPkts == nil {
		return 0
	}
	return *t.OutMulticastPkts
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// GetOutUnicastPkts retrieves the value of the leaf OutUnicastPkts from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutUnicastPkts is set, it can
// safely use t.GetOutUnicastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutUnicastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutUnicastPkts() uint64 {
	if t == nil || t.OutUnicastPkts == nil {
		return 0
	}
	return *t.OutUnicastPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ΛBelongingModule() string {
	return "openconfig-interfaces"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan struct {
	ΛMetadata       []ygot.Annotation                                                                         `path:"@" ygotAnnotation:"true"`
	Config          *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config         `path:"config" module:"openconfig-vlan"`
	ΛConfig         []ygot.Annotation                                                                         `path:"@config" ygotAnnotation:"true"`
	EgressMapping   *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping  `path:"egress-mapping" module:"openconfig-vlan"`
	ΛEgressMapping  []ygot.Annotation                                                                         `path:"@egress-mapping" ygotAnnotation:"true"`
	IngressMapping  *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping `path:"ingress-mapping" module:"openconfig-vlan"`
	ΛIngressMapping []ygot.Annotation                                                                         `path:"@ingress-mapping" ygotAnnotation:"true"`
	Match           *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match          `path:"match" module:"openconfig-vlan"`
	ΛMatch          []ygot.Annotation                                                                         `path:"@match" ygotAnnotation:"true"`
	State           *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State          `path:"state" module:"openconfig-vlan"`
	ΛState          []ygot.Annotation                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config{}
	return t.Config
}

// GetOrCreateEgressMapping retrieves the value of the EgressMapping field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetOrCreateEgressMapping() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping {
	if t.EgressMapping != nil {
		return t.EgressMapping
	}
	t.EgressMapping = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping{}
	return t.EgressMapping
}

// GetOrCreateIngressMapping retrieves the value of the IngressMapping field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetOrCreateIngressMapping() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping {
	if t.IngressMapping != nil {
		return t.IngressMapping
	}
	t.IngressMapping = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping{}
	return t.IngressMapping
}

// GetOrCreateMatch retrieves the value of the Match field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetOrCreateMatch() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match {
	if t.Match != nil {
		return t.Match
	}
	t.Match = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match{}
	return t.Match
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEgressMapping returns the value of the EgressMapping struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan. If the receiver or the field EgressMapping is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetEgressMapping() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping {
	if t != nil && t.EgressMapping != nil {
		return t.EgressMapping
	}
	return nil
}

// GetIngressMapping returns the value of the IngressMapping struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan. If the receiver or the field IngressMapping is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetIngressMapping() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping {
	if t != nil && t.IngressMapping != nil {
		return t.IngressMapping
	}
	return nil
}

// GetMatch returns the value of the Match struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan. If the receiver or the field Match is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetMatch() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match {
	if t != nil && t.Match != nil {
		return t.Match
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.EgressMapping.PopulateDefaults()
	t.IngressMapping.PopulateDefaults()
	t.Match.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config struct {
	ΛMetadata []ygot.Annotation                                                                             `path:"@" ygotAnnotation:"true"`
	VlanId    OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId   []ygot.Annotation                                                                             `path:"@vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) IsYANGGoStruct() {
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) GetVlanId() OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union {
	if t == nil || t.VlanId == nil {
		return nil
	}
	return t.VlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/config/vlan-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config) To_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Config_VlanId_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/egress-mapping YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping struct {
	ΛMetadata []ygot.Annotation                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/egress-mapping/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config struct {
	ΛMetadata        []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Tpid             E_OpenconfigVlanTypes_TPID_TYPES      `path:"tpid" module:"openconfig-vlan"`
	ΛTpid            []ygot.Annotation                     `path:"@tpid" ygotAnnotation:"true"`
	VlanId           *uint16                               `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId          []ygot.Annotation                     `path:"@vlan-id" ygotAnnotation:"true"`
	VlanStackAction  E_OpenconfigVlanTypes_VlanStackAction `path:"vlan-stack-action" module:"openconfig-vlan"`
	ΛVlanStackAction []ygot.Annotation                     `path:"@vlan-stack-action" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) IsYANGGoStruct() {
}

// GetTpid retrieves the value of the leaf Tpid from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tpid is set, it can
// safely use t.GetTpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tpid == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) GetTpid() E_OpenconfigVlanTypes_TPID_TYPES {
	if t == nil || t.Tpid == 0 {
		return 0
	}
	return t.Tpid
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// GetVlanStackAction retrieves the value of the leaf VlanStackAction from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanStackAction is set, it can
// safely use t.GetVlanStackAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanStackAction == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) GetVlanStackAction() E_OpenconfigVlanTypes_VlanStackAction {
	if t == nil || t.VlanStackAction == 0 {
		return 0
	}
	return t.VlanStackAction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/egress-mapping/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State struct {
	ΛMetadata        []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Tpid             E_OpenconfigVlanTypes_TPID_TYPES      `path:"tpid" module:"openconfig-vlan"`
	ΛTpid            []ygot.Annotation                     `path:"@tpid" ygotAnnotation:"true"`
	VlanId           *uint16                               `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId          []ygot.Annotation                     `path:"@vlan-id" ygotAnnotation:"true"`
	VlanStackAction  E_OpenconfigVlanTypes_VlanStackAction `path:"vlan-stack-action" module:"openconfig-vlan"`
	ΛVlanStackAction []ygot.Annotation                     `path:"@vlan-stack-action" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) IsYANGGoStruct() {
}

// GetTpid retrieves the value of the leaf Tpid from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tpid is set, it can
// safely use t.GetTpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tpid == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) GetTpid() E_OpenconfigVlanTypes_TPID_TYPES {
	if t == nil || t.Tpid == 0 {
		return 0
	}
	return t.Tpid
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// GetVlanStackAction retrieves the value of the leaf VlanStackAction from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanStackAction is set, it can
// safely use t.GetVlanStackAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanStackAction == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) GetVlanStackAction() E_OpenconfigVlanTypes_VlanStackAction {
	if t == nil || t.VlanStackAction == 0 {
		return 0
	}
	return t.VlanStackAction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_EgressMapping_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/ingress-mapping YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping struct {
	ΛMetadata []ygot.Annotation                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/ingress-mapping/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config struct {
	ΛMetadata        []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Tpid             E_OpenconfigVlanTypes_TPID_TYPES      `path:"tpid" module:"openconfig-vlan"`
	ΛTpid            []ygot.Annotation                     `path:"@tpid" ygotAnnotation:"true"`
	VlanId           *uint16                               `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId          []ygot.Annotation                     `path:"@vlan-id" ygotAnnotation:"true"`
	VlanStackAction  E_OpenconfigVlanTypes_VlanStackAction `path:"vlan-stack-action" module:"openconfig-vlan"`
	ΛVlanStackAction []ygot.Annotation                     `path:"@vlan-stack-action" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) IsYANGGoStruct() {
}

// GetTpid retrieves the value of the leaf Tpid from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tpid is set, it can
// safely use t.GetTpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tpid == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) GetTpid() E_OpenconfigVlanTypes_TPID_TYPES {
	if t == nil || t.Tpid == 0 {
		return 0
	}
	return t.Tpid
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// GetVlanStackAction retrieves the value of the leaf VlanStackAction from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanStackAction is set, it can
// safely use t.GetVlanStackAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanStackAction == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) GetVlanStackAction() E_OpenconfigVlanTypes_VlanStackAction {
	if t == nil || t.VlanStackAction == 0 {
		return 0
	}
	return t.VlanStackAction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/ingress-mapping/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State struct {
	ΛMetadata        []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Tpid             E_OpenconfigVlanTypes_TPID_TYPES      `path:"tpid" module:"openconfig-vlan"`
	ΛTpid            []ygot.Annotation                     `path:"@tpid" ygotAnnotation:"true"`
	VlanId           *uint16                               `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId          []ygot.Annotation                     `path:"@vlan-id" ygotAnnotation:"true"`
	VlanStackAction  E_OpenconfigVlanTypes_VlanStackAction `path:"vlan-stack-action" module:"openconfig-vlan"`
	ΛVlanStackAction []ygot.Annotation                     `path:"@vlan-stack-action" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) IsYANGGoStruct() {
}

// GetTpid retrieves the value of the leaf Tpid from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tpid is set, it can
// safely use t.GetTpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tpid == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) GetTpid() E_OpenconfigVlanTypes_TPID_TYPES {
	if t == nil || t.Tpid == 0 {
		return 0
	}
	return t.Tpid
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// GetVlanStackAction retrieves the value of the leaf VlanStackAction from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanStackAction is set, it can
// safely use t.GetVlanStackAction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanStackAction == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) GetVlanStackAction() E_OpenconfigVlanTypes_VlanStackAction {
	if t == nil || t.VlanStackAction == 0 {
		return 0
	}
	return t.VlanStackAction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_IngressMapping_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match struct {
	ΛMetadata                    []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	DoubleTagged                 *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged                `path:"double-tagged" module:"openconfig-vlan"`
	ΛDoubleTagged                []ygot.Annotation                                                                                            `path:"@double-tagged" ygotAnnotation:"true"`
	DoubleTaggedInnerList        *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList       `path:"double-tagged-inner-list" module:"openconfig-vlan"`
	ΛDoubleTaggedInnerList       []ygot.Annotation                                                                                            `path:"@double-tagged-inner-list" ygotAnnotation:"true"`
	DoubleTaggedInnerOuterRange  *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange `path:"double-tagged-inner-outer-range" module:"openconfig-vlan"`
	ΛDoubleTaggedInnerOuterRange []ygot.Annotation                                                                                            `path:"@double-tagged-inner-outer-range" ygotAnnotation:"true"`
	DoubleTaggedInnerRange       *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange      `path:"double-tagged-inner-range" module:"openconfig-vlan"`
	ΛDoubleTaggedInnerRange      []ygot.Annotation                                                                                            `path:"@double-tagged-inner-range" ygotAnnotation:"true"`
	DoubleTaggedOuterList        *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList       `path:"double-tagged-outer-list" module:"openconfig-vlan"`
	ΛDoubleTaggedOuterList       []ygot.Annotation                                                                                            `path:"@double-tagged-outer-list" ygotAnnotation:"true"`
	DoubleTaggedOuterRange       *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange      `path:"double-tagged-outer-range" module:"openconfig-vlan"`
	ΛDoubleTaggedOuterRange      []ygot.Annotation                                                                                            `path:"@double-tagged-outer-range" ygotAnnotation:"true"`
	SingleTagged                 *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged                `path:"single-tagged" module:"openconfig-vlan"`
	ΛSingleTagged                []ygot.Annotation                                                                                            `path:"@single-tagged" ygotAnnotation:"true"`
	SingleTaggedList             *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList            `path:"single-tagged-list" module:"openconfig-vlan"`
	ΛSingleTaggedList            []ygot.Annotation                                                                                            `path:"@single-tagged-list" ygotAnnotation:"true"`
	SingleTaggedRange            *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange           `path:"single-tagged-range" module:"openconfig-vlan"`
	ΛSingleTaggedRange           []ygot.Annotation                                                                                            `path:"@single-tagged-range" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) IsYANGGoStruct() {
}

// GetOrCreateDoubleTagged retrieves the value of the DoubleTagged field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateDoubleTagged() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged {
	if t.DoubleTagged != nil {
		return t.DoubleTagged
	}
	t.DoubleTagged = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged{}
	return t.DoubleTagged
}

// GetOrCreateDoubleTaggedInnerList retrieves the value of the DoubleTaggedInnerList field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateDoubleTaggedInnerList() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList {
	if t.DoubleTaggedInnerList != nil {
		return t.DoubleTaggedInnerList
	}
	t.DoubleTaggedInnerList = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList{}
	return t.DoubleTaggedInnerList
}

// GetOrCreateDoubleTaggedInnerOuterRange retrieves the value of the DoubleTaggedInnerOuterRange field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateDoubleTaggedInnerOuterRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange {
	if t.DoubleTaggedInnerOuterRange != nil {
		return t.DoubleTaggedInnerOuterRange
	}
	t.DoubleTaggedInnerOuterRange = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange{}
	return t.DoubleTaggedInnerOuterRange
}

// GetOrCreateDoubleTaggedInnerRange retrieves the value of the DoubleTaggedInnerRange field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateDoubleTaggedInnerRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange {
	if t.DoubleTaggedInnerRange != nil {
		return t.DoubleTaggedInnerRange
	}
	t.DoubleTaggedInnerRange = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange{}
	return t.DoubleTaggedInnerRange
}

// GetOrCreateDoubleTaggedOuterList retrieves the value of the DoubleTaggedOuterList field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateDoubleTaggedOuterList() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList {
	if t.DoubleTaggedOuterList != nil {
		return t.DoubleTaggedOuterList
	}
	t.DoubleTaggedOuterList = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList{}
	return t.DoubleTaggedOuterList
}

// GetOrCreateDoubleTaggedOuterRange retrieves the value of the DoubleTaggedOuterRange field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateDoubleTaggedOuterRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange {
	if t.DoubleTaggedOuterRange != nil {
		return t.DoubleTaggedOuterRange
	}
	t.DoubleTaggedOuterRange = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange{}
	return t.DoubleTaggedOuterRange
}

// GetOrCreateSingleTagged retrieves the value of the SingleTagged field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateSingleTagged() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged {
	if t.SingleTagged != nil {
		return t.SingleTagged
	}
	t.SingleTagged = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged{}
	return t.SingleTagged
}

// GetOrCreateSingleTaggedList retrieves the value of the SingleTaggedList field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateSingleTaggedList() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList {
	if t.SingleTaggedList != nil {
		return t.SingleTaggedList
	}
	t.SingleTaggedList = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList{}
	return t.SingleTaggedList
}

// GetOrCreateSingleTaggedRange retrieves the value of the SingleTaggedRange field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetOrCreateSingleTaggedRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange {
	if t.SingleTaggedRange != nil {
		return t.SingleTaggedRange
	}
	t.SingleTaggedRange = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange{}
	return t.SingleTaggedRange
}

// GetDoubleTagged returns the value of the DoubleTagged struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field DoubleTagged is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetDoubleTagged() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged {
	if t != nil && t.DoubleTagged != nil {
		return t.DoubleTagged
	}
	return nil
}

// GetDoubleTaggedInnerList returns the value of the DoubleTaggedInnerList struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field DoubleTaggedInnerList is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetDoubleTaggedInnerList() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList {
	if t != nil && t.DoubleTaggedInnerList != nil {
		return t.DoubleTaggedInnerList
	}
	return nil
}

// GetDoubleTaggedInnerOuterRange returns the value of the DoubleTaggedInnerOuterRange struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field DoubleTaggedInnerOuterRange is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetDoubleTaggedInnerOuterRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange {
	if t != nil && t.DoubleTaggedInnerOuterRange != nil {
		return t.DoubleTaggedInnerOuterRange
	}
	return nil
}

// GetDoubleTaggedInnerRange returns the value of the DoubleTaggedInnerRange struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field DoubleTaggedInnerRange is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetDoubleTaggedInnerRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange {
	if t != nil && t.DoubleTaggedInnerRange != nil {
		return t.DoubleTaggedInnerRange
	}
	return nil
}

// GetDoubleTaggedOuterList returns the value of the DoubleTaggedOuterList struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field DoubleTaggedOuterList is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetDoubleTaggedOuterList() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList {
	if t != nil && t.DoubleTaggedOuterList != nil {
		return t.DoubleTaggedOuterList
	}
	return nil
}

// GetDoubleTaggedOuterRange returns the value of the DoubleTaggedOuterRange struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field DoubleTaggedOuterRange is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetDoubleTaggedOuterRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange {
	if t != nil && t.DoubleTaggedOuterRange != nil {
		return t.DoubleTaggedOuterRange
	}
	return nil
}

// GetSingleTagged returns the value of the SingleTagged struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field SingleTagged is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetSingleTagged() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged {
	if t != nil && t.SingleTagged != nil {
		return t.SingleTagged
	}
	return nil
}

// GetSingleTaggedList returns the value of the SingleTaggedList struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field SingleTaggedList is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetSingleTaggedList() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList {
	if t != nil && t.SingleTaggedList != nil {
		return t.SingleTaggedList
	}
	return nil
}

// GetSingleTaggedRange returns the value of the SingleTaggedRange struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match. If the receiver or the field SingleTaggedRange is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) GetSingleTaggedRange() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange {
	if t != nil && t.SingleTaggedRange != nil {
		return t.SingleTaggedRange
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.DoubleTagged.PopulateDefaults()
	t.DoubleTaggedInnerList.PopulateDefaults()
	t.DoubleTaggedInnerOuterRange.PopulateDefaults()
	t.DoubleTaggedInnerRange.PopulateDefaults()
	t.DoubleTaggedOuterList.PopulateDefaults()
	t.DoubleTaggedOuterRange.PopulateDefaults()
	t.SingleTagged.PopulateDefaults()
	t.SingleTaggedList.PopulateDefaults()
	t.SingleTaggedRange.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged struct {
	ΛMetadata []ygot.Annotation                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-list YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList struct {
	ΛMetadata []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-list/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanIds  []uint16          `path:"inner-vlan-ids" module:"openconfig-vlan"`
	ΛInnerVlanIds []ygot.Annotation `path:"@inner-vlan-ids" ygotAnnotation:"true"`
	OuterVlanId   *uint16           `path:"outer-vlan-id" module:"openconfig-vlan"`
	ΛOuterVlanId  []ygot.Annotation `path:"@outer-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) IsYANGGoStruct() {
}

// GetInnerVlanIds retrieves the value of the leaf InnerVlanIds from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanIds is set, it can
// safely use t.GetInnerVlanIds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanIds == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) GetInnerVlanIds() []uint16 {
	if t == nil || t.InnerVlanIds == nil {
		return nil
	}
	return t.InnerVlanIds
}

// GetOuterVlanId retrieves the value of the leaf OuterVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanId is set, it can
// safely use t.GetOuterVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) GetOuterVlanId() uint16 {
	if t == nil || t.OuterVlanId == nil {
		return 0
	}
	return *t.OuterVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-list/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanIds  []uint16          `path:"inner-vlan-ids" module:"openconfig-vlan"`
	ΛInnerVlanIds []ygot.Annotation `path:"@inner-vlan-ids" ygotAnnotation:"true"`
	OuterVlanId   *uint16           `path:"outer-vlan-id" module:"openconfig-vlan"`
	ΛOuterVlanId  []ygot.Annotation `path:"@outer-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) IsYANGGoStruct() {
}

// GetInnerVlanIds retrieves the value of the leaf InnerVlanIds from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanIds is set, it can
// safely use t.GetInnerVlanIds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanIds == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) GetInnerVlanIds() []uint16 {
	if t == nil || t.InnerVlanIds == nil {
		return nil
	}
	return t.InnerVlanIds
}

// GetOuterVlanId retrieves the value of the leaf OuterVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanId is set, it can
// safely use t.GetOuterVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) GetOuterVlanId() uint16 {
	if t == nil || t.OuterVlanId == nil {
		return 0
	}
	return *t.OuterVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerList_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-outer-range YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-outer-range/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerHighVlanId  *uint16           `path:"inner-high-vlan-id" module:"openconfig-vlan"`
	ΛInnerHighVlanId []ygot.Annotation `path:"@inner-high-vlan-id" ygotAnnotation:"true"`
	InnerLowVlanId   *uint16           `path:"inner-low-vlan-id" module:"openconfig-vlan"`
	ΛInnerLowVlanId  []ygot.Annotation `path:"@inner-low-vlan-id" ygotAnnotation:"true"`
	OuterHighVlanId  *uint16           `path:"outer-high-vlan-id" module:"openconfig-vlan"`
	ΛOuterHighVlanId []ygot.Annotation `path:"@outer-high-vlan-id" ygotAnnotation:"true"`
	OuterLowVlanId   *uint16           `path:"outer-low-vlan-id" module:"openconfig-vlan"`
	ΛOuterLowVlanId  []ygot.Annotation `path:"@outer-low-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) IsYANGGoStruct() {
}

// GetInnerHighVlanId retrieves the value of the leaf InnerHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerHighVlanId is set, it can
// safely use t.GetInnerHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) GetInnerHighVlanId() uint16 {
	if t == nil || t.InnerHighVlanId == nil {
		return 0
	}
	return *t.InnerHighVlanId
}

// GetInnerLowVlanId retrieves the value of the leaf InnerLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerLowVlanId is set, it can
// safely use t.GetInnerLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) GetInnerLowVlanId() uint16 {
	if t == nil || t.InnerLowVlanId == nil {
		return 0
	}
	return *t.InnerLowVlanId
}

// GetOuterHighVlanId retrieves the value of the leaf OuterHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterHighVlanId is set, it can
// safely use t.GetOuterHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) GetOuterHighVlanId() uint16 {
	if t == nil || t.OuterHighVlanId == nil {
		return 0
	}
	return *t.OuterHighVlanId
}

// GetOuterLowVlanId retrieves the value of the leaf OuterLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterLowVlanId is set, it can
// safely use t.GetOuterLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) GetOuterLowVlanId() uint16 {
	if t == nil || t.OuterLowVlanId == nil {
		return 0
	}
	return *t.OuterLowVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-outer-range/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerHighVlanId  *uint16           `path:"inner-high-vlan-id" module:"openconfig-vlan"`
	ΛInnerHighVlanId []ygot.Annotation `path:"@inner-high-vlan-id" ygotAnnotation:"true"`
	InnerLowVlanId   *uint16           `path:"inner-low-vlan-id" module:"openconfig-vlan"`
	ΛInnerLowVlanId  []ygot.Annotation `path:"@inner-low-vlan-id" ygotAnnotation:"true"`
	OuterHighVlanId  *uint16           `path:"outer-high-vlan-id" module:"openconfig-vlan"`
	ΛOuterHighVlanId []ygot.Annotation `path:"@outer-high-vlan-id" ygotAnnotation:"true"`
	OuterLowVlanId   *uint16           `path:"outer-low-vlan-id" module:"openconfig-vlan"`
	ΛOuterLowVlanId  []ygot.Annotation `path:"@outer-low-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) IsYANGGoStruct() {
}

// GetInnerHighVlanId retrieves the value of the leaf InnerHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerHighVlanId is set, it can
// safely use t.GetInnerHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) GetInnerHighVlanId() uint16 {
	if t == nil || t.InnerHighVlanId == nil {
		return 0
	}
	return *t.InnerHighVlanId
}

// GetInnerLowVlanId retrieves the value of the leaf InnerLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerLowVlanId is set, it can
// safely use t.GetInnerLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) GetInnerLowVlanId() uint16 {
	if t == nil || t.InnerLowVlanId == nil {
		return 0
	}
	return *t.InnerLowVlanId
}

// GetOuterHighVlanId retrieves the value of the leaf OuterHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterHighVlanId is set, it can
// safely use t.GetOuterHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) GetOuterHighVlanId() uint16 {
	if t == nil || t.OuterHighVlanId == nil {
		return 0
	}
	return *t.OuterHighVlanId
}

// GetOuterLowVlanId retrieves the value of the leaf OuterLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterLowVlanId is set, it can
// safely use t.GetOuterLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) GetOuterLowVlanId() uint16 {
	if t == nil || t.OuterLowVlanId == nil {
		return 0
	}
	return *t.OuterLowVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerOuterRange_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-range YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange struct {
	ΛMetadata []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-range/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerHighVlanId  *uint16           `path:"inner-high-vlan-id" module:"openconfig-vlan"`
	ΛInnerHighVlanId []ygot.Annotation `path:"@inner-high-vlan-id" ygotAnnotation:"true"`
	InnerLowVlanId   *uint16           `path:"inner-low-vlan-id" module:"openconfig-vlan"`
	ΛInnerLowVlanId  []ygot.Annotation `path:"@inner-low-vlan-id" ygotAnnotation:"true"`
	OuterVlanId      []uint16          `path:"outer-vlan-id" module:"openconfig-vlan"`
	ΛOuterVlanId     []ygot.Annotation `path:"@outer-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) IsYANGGoStruct() {
}

// GetInnerHighVlanId retrieves the value of the leaf InnerHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerHighVlanId is set, it can
// safely use t.GetInnerHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) GetInnerHighVlanId() uint16 {
	if t == nil || t.InnerHighVlanId == nil {
		return 0
	}
	return *t.InnerHighVlanId
}

// GetInnerLowVlanId retrieves the value of the leaf InnerLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerLowVlanId is set, it can
// safely use t.GetInnerLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) GetInnerLowVlanId() uint16 {
	if t == nil || t.InnerLowVlanId == nil {
		return 0
	}
	return *t.InnerLowVlanId
}

// GetOuterVlanId retrieves the value of the leaf OuterVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanId is set, it can
// safely use t.GetOuterVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) GetOuterVlanId() []uint16 {
	if t == nil || t.OuterVlanId == nil {
		return nil
	}
	return t.OuterVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-inner-range/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerHighVlanId  *uint16           `path:"inner-high-vlan-id" module:"openconfig-vlan"`
	ΛInnerHighVlanId []ygot.Annotation `path:"@inner-high-vlan-id" ygotAnnotation:"true"`
	InnerLowVlanId   *uint16           `path:"inner-low-vlan-id" module:"openconfig-vlan"`
	ΛInnerLowVlanId  []ygot.Annotation `path:"@inner-low-vlan-id" ygotAnnotation:"true"`
	OuterVlanId      []uint16          `path:"outer-vlan-id" module:"openconfig-vlan"`
	ΛOuterVlanId     []ygot.Annotation `path:"@outer-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) IsYANGGoStruct() {
}

// GetInnerHighVlanId retrieves the value of the leaf InnerHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerHighVlanId is set, it can
// safely use t.GetInnerHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) GetInnerHighVlanId() uint16 {
	if t == nil || t.InnerHighVlanId == nil {
		return 0
	}
	return *t.InnerHighVlanId
}

// GetInnerLowVlanId retrieves the value of the leaf InnerLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerLowVlanId is set, it can
// safely use t.GetInnerLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) GetInnerLowVlanId() uint16 {
	if t == nil || t.InnerLowVlanId == nil {
		return 0
	}
	return *t.InnerLowVlanId
}

// GetOuterVlanId retrieves the value of the leaf OuterVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanId is set, it can
// safely use t.GetOuterVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) GetOuterVlanId() []uint16 {
	if t == nil || t.OuterVlanId == nil {
		return nil
	}
	return t.OuterVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedInnerRange_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-outer-list YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList struct {
	ΛMetadata []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-outer-list/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanId   *uint16           `path:"inner-vlan-id" module:"openconfig-vlan"`
	ΛInnerVlanId  []ygot.Annotation `path:"@inner-vlan-id" ygotAnnotation:"true"`
	OuterVlanIds  []uint16          `path:"outer-vlan-ids" module:"openconfig-vlan"`
	ΛOuterVlanIds []ygot.Annotation `path:"@outer-vlan-ids" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) IsYANGGoStruct() {
}

// GetInnerVlanId retrieves the value of the leaf InnerVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanId is set, it can
// safely use t.GetInnerVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) GetInnerVlanId() uint16 {
	if t == nil || t.InnerVlanId == nil {
		return 0
	}
	return *t.InnerVlanId
}

// GetOuterVlanIds retrieves the value of the leaf OuterVlanIds from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanIds is set, it can
// safely use t.GetOuterVlanIds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanIds == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) GetOuterVlanIds() []uint16 {
	if t == nil || t.OuterVlanIds == nil {
		return nil
	}
	return t.OuterVlanIds
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-outer-list/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanId   *uint16           `path:"inner-vlan-id" module:"openconfig-vlan"`
	ΛInnerVlanId  []ygot.Annotation `path:"@inner-vlan-id" ygotAnnotation:"true"`
	OuterVlanIds  []uint16          `path:"outer-vlan-ids" module:"openconfig-vlan"`
	ΛOuterVlanIds []ygot.Annotation `path:"@outer-vlan-ids" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) IsYANGGoStruct() {
}

// GetInnerVlanId retrieves the value of the leaf InnerVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanId is set, it can
// safely use t.GetInnerVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) GetInnerVlanId() uint16 {
	if t == nil || t.InnerVlanId == nil {
		return 0
	}
	return *t.InnerVlanId
}

// GetOuterVlanIds retrieves the value of the leaf OuterVlanIds from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanIds is set, it can
// safely use t.GetOuterVlanIds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanIds == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) GetOuterVlanIds() []uint16 {
	if t == nil || t.OuterVlanIds == nil {
		return nil
	}
	return t.OuterVlanIds
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterList_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-outer-range YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange struct {
	ΛMetadata []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-outer-range/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanId      *uint16           `path:"inner-vlan-id" module:"openconfig-vlan"`
	ΛInnerVlanId     []ygot.Annotation `path:"@inner-vlan-id" ygotAnnotation:"true"`
	OuterHighVlanId  *uint16           `path:"outer-high-vlan-id" module:"openconfig-vlan"`
	ΛOuterHighVlanId []ygot.Annotation `path:"@outer-high-vlan-id" ygotAnnotation:"true"`
	OuterLowVlanId   *uint16           `path:"outer-low-vlan-id" module:"openconfig-vlan"`
	ΛOuterLowVlanId  []ygot.Annotation `path:"@outer-low-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) IsYANGGoStruct() {
}

// GetInnerVlanId retrieves the value of the leaf InnerVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanId is set, it can
// safely use t.GetInnerVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) GetInnerVlanId() uint16 {
	if t == nil || t.InnerVlanId == nil {
		return 0
	}
	return *t.InnerVlanId
}

// GetOuterHighVlanId retrieves the value of the leaf OuterHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterHighVlanId is set, it can
// safely use t.GetOuterHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) GetOuterHighVlanId() uint16 {
	if t == nil || t.OuterHighVlanId == nil {
		return 0
	}
	return *t.OuterHighVlanId
}

// GetOuterLowVlanId retrieves the value of the leaf OuterLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterLowVlanId is set, it can
// safely use t.GetOuterLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) GetOuterLowVlanId() uint16 {
	if t == nil || t.OuterLowVlanId == nil {
		return 0
	}
	return *t.OuterLowVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged-outer-range/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanId      *uint16           `path:"inner-vlan-id" module:"openconfig-vlan"`
	ΛInnerVlanId     []ygot.Annotation `path:"@inner-vlan-id" ygotAnnotation:"true"`
	OuterHighVlanId  *uint16           `path:"outer-high-vlan-id" module:"openconfig-vlan"`
	ΛOuterHighVlanId []ygot.Annotation `path:"@outer-high-vlan-id" ygotAnnotation:"true"`
	OuterLowVlanId   *uint16           `path:"outer-low-vlan-id" module:"openconfig-vlan"`
	ΛOuterLowVlanId  []ygot.Annotation `path:"@outer-low-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) IsYANGGoStruct() {
}

// GetInnerVlanId retrieves the value of the leaf InnerVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanId is set, it can
// safely use t.GetInnerVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) GetInnerVlanId() uint16 {
	if t == nil || t.InnerVlanId == nil {
		return 0
	}
	return *t.InnerVlanId
}

// GetOuterHighVlanId retrieves the value of the leaf OuterHighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterHighVlanId is set, it can
// safely use t.GetOuterHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterHighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) GetOuterHighVlanId() uint16 {
	if t == nil || t.OuterHighVlanId == nil {
		return 0
	}
	return *t.OuterHighVlanId
}

// GetOuterLowVlanId retrieves the value of the leaf OuterLowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterLowVlanId is set, it can
// safely use t.GetOuterLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterLowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) GetOuterLowVlanId() uint16 {
	if t == nil || t.OuterLowVlanId == nil {
		return 0
	}
	return *t.OuterLowVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTaggedOuterRange_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanId  *uint16           `path:"inner-vlan-id" module:"openconfig-vlan"`
	ΛInnerVlanId []ygot.Annotation `path:"@inner-vlan-id" ygotAnnotation:"true"`
	OuterVlanId  *uint16           `path:"outer-vlan-id" module:"openconfig-vlan"`
	ΛOuterVlanId []ygot.Annotation `path:"@outer-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) IsYANGGoStruct() {
}

// GetInnerVlanId retrieves the value of the leaf InnerVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanId is set, it can
// safely use t.GetInnerVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) GetInnerVlanId() uint16 {
	if t == nil || t.InnerVlanId == nil {
		return 0
	}
	return *t.InnerVlanId
}

// GetOuterVlanId retrieves the value of the leaf OuterVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanId is set, it can
// safely use t.GetOuterVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) GetOuterVlanId() uint16 {
	if t == nil || t.OuterVlanId == nil {
		return 0
	}
	return *t.OuterVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/double-tagged/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InnerVlanId  *uint16           `path:"inner-vlan-id" module:"openconfig-vlan"`
	ΛInnerVlanId []ygot.Annotation `path:"@inner-vlan-id" ygotAnnotation:"true"`
	OuterVlanId  *uint16           `path:"outer-vlan-id" module:"openconfig-vlan"`
	ΛOuterVlanId []ygot.Annotation `path:"@outer-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) IsYANGGoStruct() {
}

// GetInnerVlanId retrieves the value of the leaf InnerVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InnerVlanId is set, it can
// safely use t.GetInnerVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InnerVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) GetInnerVlanId() uint16 {
	if t == nil || t.InnerVlanId == nil {
		return 0
	}
	return *t.InnerVlanId
}

// GetOuterVlanId retrieves the value of the leaf OuterVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuterVlanId is set, it can
// safely use t.GetOuterVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuterVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) GetOuterVlanId() uint16 {
	if t == nil || t.OuterVlanId == nil {
		return 0
	}
	return *t.OuterVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_DoubleTagged_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged struct {
	ΛMetadata []ygot.Annotation                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged-list YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList struct {
	ΛMetadata []ygot.Annotation                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged-list/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	VlanIds   []uint16          `path:"vlan-ids" module:"openconfig-vlan"`
	ΛVlanIds  []ygot.Annotation `path:"@vlan-ids" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config) IsYANGGoStruct() {
}

// GetVlanIds retrieves the value of the leaf VlanIds from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanIds is set, it can
// safely use t.GetVlanIds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanIds == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config) GetVlanIds() []uint16 {
	if t == nil || t.VlanIds == nil {
		return nil
	}
	return t.VlanIds
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged-list/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	VlanIds   []uint16          `path:"vlan-ids" module:"openconfig-vlan"`
	ΛVlanIds  []ygot.Annotation `path:"@vlan-ids" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State) IsYANGGoStruct() {
}

// GetVlanIds retrieves the value of the leaf VlanIds from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanIds is set, it can
// safely use t.GetVlanIds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanIds == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State) GetVlanIds() []uint16 {
	if t == nil || t.VlanIds == nil {
		return nil
	}
	return t.VlanIds
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedList_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged-range YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange struct {
	ΛMetadata []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config `path:"config" module:"openconfig-vlan"`
	ΛConfig   []ygot.Annotation                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State  `path:"state" module:"openconfig-vlan"`
	ΛState    []ygot.Annotation                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) GetOrCreateConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) GetOrCreateState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) GetConfig() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) GetState() *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged-range/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HighVlanId  *uint16           `path:"high-vlan-id" module:"openconfig-vlan"`
	ΛHighVlanId []ygot.Annotation `path:"@high-vlan-id" ygotAnnotation:"true"`
	LowVlanId   *uint16           `path:"low-vlan-id" module:"openconfig-vlan"`
	ΛLowVlanId  []ygot.Annotation `path:"@low-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) IsYANGGoStruct() {
}

// GetHighVlanId retrieves the value of the leaf HighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HighVlanId is set, it can
// safely use t.GetHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) GetHighVlanId() uint16 {
	if t == nil || t.HighVlanId == nil {
		return 0
	}
	return *t.HighVlanId
}

// GetLowVlanId retrieves the value of the leaf LowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LowVlanId is set, it can
// safely use t.GetLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) GetLowVlanId() uint16 {
	if t == nil || t.LowVlanId == nil {
		return 0
	}
	return *t.LowVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged-range/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HighVlanId  *uint16           `path:"high-vlan-id" module:"openconfig-vlan"`
	ΛHighVlanId []ygot.Annotation `path:"@high-vlan-id" ygotAnnotation:"true"`
	LowVlanId   *uint16           `path:"low-vlan-id" module:"openconfig-vlan"`
	ΛLowVlanId  []ygot.Annotation `path:"@low-vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) IsYANGGoStruct() {
}

// GetHighVlanId retrieves the value of the leaf HighVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HighVlanId is set, it can
// safely use t.GetHighVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HighVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) GetHighVlanId() uint16 {
	if t == nil || t.HighVlanId == nil {
		return 0
	}
	return *t.HighVlanId
}

// GetLowVlanId retrieves the value of the leaf LowVlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LowVlanId is set, it can
// safely use t.GetLowVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LowVlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) GetLowVlanId() uint16 {
	if t == nil || t.LowVlanId == nil {
		return 0
	}
	return *t.LowVlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTaggedRange_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged/config YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	VlanId    *uint16           `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId   []ygot.Annotation `path:"@vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config) IsYANGGoStruct() {
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_Config) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/match/single-tagged/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	VlanId    *uint16           `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId   []ygot.Annotation `path:"@vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State) IsYANGGoStruct() {
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_Match_SingleTagged_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/state YANG schema element.
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State struct {
	ΛMetadata []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	VlanId    OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union `path:"vlan-id" module:"openconfig-vlan"`
	ΛVlanId   []ygot.Annotation                                                                            `path:"@vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) IsYANGGoStruct() {
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) GetVlanId() OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union {
	if t == nil || t.VlanId == nil {
		return nil
	}
	return t.VlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State.
func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) ΛBelongingModule() string {
	return "openconfig-vlan"
}

// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/vlan/state/vlan-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint16].
type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union interface {
	// Union type can be one of [UnionString, UnionUint16]
	Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union()
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union ensures that UnionString
// implements the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union interface.
func (UnionString) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union() {
}

// Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union ensures that UnionUint16
// implements the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union interface.
func (UnionUint16) Documentation_for_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union() {
}

// To_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State) To_OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union(i interface{}) (OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union, error) {
	if v, ok := i.(OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Vlan_State_VlanId_Union, unknown union type, got: %T, want any of [string, uint16]", i, i)
}

// OpenconfigKeychain_Keychains represents the /openconfig-keychain/keychains YANG schema element.
type OpenconfigKeychain_Keychains struct {
	ΛMetadata []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	Keychain  map[string]*OpenconfigKeychain_Keychains_Keychain `path:"keychain" module:"openconfig-keychain"`
	ΛKeychain []ygot.Annotation                                 `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains) IsYANGGoStruct() {}

// NewKeychain creates a new entry in the Keychain list of the
// OpenconfigKeychain_Keychains struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigKeychain_Keychains) NewKeychain(Name string) (*OpenconfigKeychain_Keychains_Keychain, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Keychain == nil {
		t.Keychain = make(map[string]*OpenconfigKeychain_Keychains_Keychain)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Keychain[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Keychain", key)
	}

	t.Keychain[key] = &OpenconfigKeychain_Keychains_Keychain{
		Name: &Name,
	}

	return t.Keychain[key], nil
}

// RenameKeychain renames an entry in the list Keychain within
// the OpenconfigKeychain_Keychains struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigKeychain_Keychains) RenameKeychain(oldK, newK string) error {
	if _, ok := t.Keychain[newK]; ok {
		return fmt.Errorf("key %v already exists in Keychain", newK)
	}

	e, ok := t.Keychain[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Keychain", oldK)
	}
	e.Name = &newK

	t.Keychain[newK] = e
	delete(t.Keychain, oldK)
	return nil
}

// GetOrCreateKeychainMap returns the list (map) from OpenconfigKeychain_Keychains.
//
// It initializes the field if not already initialized.
func (t *OpenconfigKeychain_Keychains) GetOrCreateKeychainMap() map[string]*OpenconfigKeychain_Keychains_Keychain {
	if t.Keychain == nil {
		t.Keychain = make(map[string]*OpenconfigKeychain_Keychains_Keychain)
	}
	return t.Keychain
}

// GetOrCreateKeychain retrieves the value with the specified keys from
// the receiver OpenconfigKeychain_Keychains. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigKeychain_Keychains) GetOrCreateKeychain(Name string) *OpenconfigKeychain_Keychains_Keychain {

	key := Name

	if v, ok := t.Keychain[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewKeychain(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateKeychain got unexpected error: %v", err))
	}
	return v
}

// GetKeychain retrieves the value with the specified key from
// the Keychain map field of OpenconfigKeychain_Keychains. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigKeychain_Keychains) GetKeychain(Name string) *OpenconfigKeychain_Keychains_Keychain {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Keychain[key]; ok {
		return lm
	}
	return nil
}

// AppendKeychain appends the supplied OpenconfigKeychain_Keychains_Keychain struct to the
// list Keychain of OpenconfigKeychain_Keychains. If the key value(s) specified in
// the supplied OpenconfigKeychain_Keychains_Keychain already exist in the list, an error is
// returned.
func (t *OpenconfigKeychain_Keychains) AppendKeychain(v *OpenconfigKeychain_Keychains_Keychain) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Keychain == nil {
		t.Keychain = make(map[string]*OpenconfigKeychain_Keychains_Keychain)
	}

	if _, ok := t.Keychain[key]; ok {
		return fmt.Errorf("duplicate key for list Keychain %v", key)
	}

	t.Keychain[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Keychain {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains.
func (*OpenconfigKeychain_Keychains) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain represents the /openconfig-keychain/keychains/keychain YANG schema element.
type OpenconfigKeychain_Keychains_Keychain struct {
	ΛMetadata []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigKeychain_Keychains_Keychain_Config `path:"config" module:"openconfig-keychain"`
	ΛConfig   []ygot.Annotation                             `path:"@config" ygotAnnotation:"true"`
	Keys      *OpenconfigKeychain_Keychains_Keychain_Keys   `path:"keys" module:"openconfig-keychain"`
	ΛKeys     []ygot.Annotation                             `path:"@keys" ygotAnnotation:"true"`
	Name      *string                                       `path:"name" module:"openconfig-keychain"`
	ΛName     []ygot.Annotation                             `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigKeychain_Keychains_Keychain_State  `path:"state" module:"openconfig-keychain"`
	ΛState    []ygot.Annotation                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain) GetOrCreateConfig() *OpenconfigKeychain_Keychains_Keychain_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigKeychain_Keychains_Keychain_Config{}
	return t.Config
}

// GetOrCreateKeys retrieves the value of the Keys field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain) GetOrCreateKeys() *OpenconfigKeychain_Keychains_Keychain_Keys {
	if t.Keys != nil {
		return t.Keys
	}
	t.Keys = &OpenconfigKeychain_Keychains_Keychain_Keys{}
	return t.Keys
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain) GetOrCreateState() *OpenconfigKeychain_Keychains_Keychain_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigKeychain_Keychains_Keychain_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigKeychain_Keychains_Keychain. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain) GetConfig() *OpenconfigKeychain_Keychains_Keychain_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetKeys returns the value of the Keys struct pointer
// from OpenconfigKeychain_Keychains_Keychain. If the receiver or the field Keys is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain) GetKeys() *OpenconfigKeychain_Keychains_Keychain_Keys {
	if t != nil && t.Keys != nil {
		return t.Keys
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigKeychain_Keychains_Keychain. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain) GetState() *OpenconfigKeychain_Keychains_Keychain_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigKeychain_Keychains_Keychain
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Keys.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigKeychain_Keychains_Keychain struct, which is a YANG list entry.
func (t *OpenconfigKeychain_Keychains_Keychain) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain.
func (*OpenconfigKeychain_Keychains_Keychain) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Config represents the /openconfig-keychain/keychains/keychain/config YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Config struct {
	ΛMetadata  []ygot.Annotation                                            `path:"@" ygotAnnotation:"true"`
	Name       *string                                                      `path:"name" module:"openconfig-keychain"`
	ΛName      []ygot.Annotation                                            `path:"@name" ygotAnnotation:"true"`
	Tolerance  OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union `path:"tolerance" module:"openconfig-keychain"`
	ΛTolerance []ygot.Annotation                                            `path:"@tolerance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Config) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigKeychain_Keychains_Keychain_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetTolerance retrieves the value of the leaf Tolerance from the OpenconfigKeychain_Keychains_Keychain_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tolerance is set, it can
// safely use t.GetTolerance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tolerance == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Config) GetTolerance() OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union {
	if t == nil || t.Tolerance == nil {
		return nil
	}
	return t.Tolerance
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Config.
func (*OpenconfigKeychain_Keychains_Keychain_Config) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-keychain/keychains/keychain/config/tolerance within the YANG schema.
// Union type can be one of [E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum, UnionUint32].
type OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union interface {
	// Union type can be one of [E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum, UnionUint32]
	Documentation_for_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union()
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union ensures that E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum
// implements the OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union interface.
func (E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum) Documentation_for_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union() {
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union ensures that UnionUint32
// implements the OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union interface.
func (UnionUint32) Documentation_for_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union() {}

// To_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigKeychain_Keychains_Keychain_Config) To_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union(i interface{}) (OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union, error) {
	if v, ok := i.(OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Union, unknown union type, got: %T, want any of [E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum, uint32]", i, i)
}

// OpenconfigKeychain_Keychains_Keychain_Keys represents the /openconfig-keychain/keychains/keychain/keys YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys struct {
	ΛMetadata []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Key       map[OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union]*OpenconfigKeychain_Keychains_Keychain_Keys_Key `path:"key" module:"openconfig-keychain"`
	ΛKey      []ygot.Annotation                                                                                                     `path:"@key" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys) IsYANGGoStruct() {}

// NewKey creates a new entry in the Key list of the
// OpenconfigKeychain_Keychains_Keychain_Keys struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) NewKey(KeyId OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union) (*OpenconfigKeychain_Keychains_Keychain_Keys_Key, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Key == nil {
		t.Key = make(map[OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union]*OpenconfigKeychain_Keychains_Keychain_Keys_Key)
	}

	key := KeyId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Key[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Key", key)
	}

	t.Key[key] = &OpenconfigKeychain_Keychains_Keychain_Keys_Key{
		KeyId: KeyId,
	}

	return t.Key[key], nil
}

// RenameKey renames an entry in the list Key within
// the OpenconfigKeychain_Keychains_Keychain_Keys struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) RenameKey(oldK, newK OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union) error {
	if _, ok := t.Key[newK]; ok {
		return fmt.Errorf("key %v already exists in Key", newK)
	}

	e, ok := t.Key[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Key", oldK)
	}
	e.KeyId = newK

	t.Key[newK] = e
	delete(t.Key, oldK)
	return nil
}

// GetOrCreateKeyMap returns the list (map) from OpenconfigKeychain_Keychains_Keychain_Keys.
//
// It initializes the field if not already initialized.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) GetOrCreateKeyMap() map[OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union]*OpenconfigKeychain_Keychains_Keychain_Keys_Key {
	if t.Key == nil {
		t.Key = make(map[OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union]*OpenconfigKeychain_Keychains_Keychain_Keys_Key)
	}
	return t.Key
}

// GetOrCreateKey retrieves the value with the specified keys from
// the receiver OpenconfigKeychain_Keychains_Keychain_Keys. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) GetOrCreateKey(KeyId OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union) *OpenconfigKeychain_Keychains_Keychain_Keys_Key {

	key := KeyId

	if v, ok := t.Key[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewKey(KeyId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateKey got unexpected error: %v", err))
	}
	return v
}

// GetKey retrieves the value with the specified key from
// the Key map field of OpenconfigKeychain_Keychains_Keychain_Keys. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) GetKey(KeyId OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union) *OpenconfigKeychain_Keychains_Keychain_Keys_Key {

	if t == nil {
		return nil
	}

	key := KeyId

	if lm, ok := t.Key[key]; ok {
		return lm
	}
	return nil
}

// AppendKey appends the supplied OpenconfigKeychain_Keychains_Keychain_Keys_Key struct to the
// list Key of OpenconfigKeychain_Keychains_Keychain_Keys. If the key value(s) specified in
// the supplied OpenconfigKeychain_Keychains_Keychain_Keys_Key already exist in the list, an error is
// returned.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) AppendKey(v *OpenconfigKeychain_Keychains_Keychain_Keys_Key) error {
	key := v.KeyId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Key == nil {
		t.Key = make(map[OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union]*OpenconfigKeychain_Keychains_Keychain_Keys_Key)
	}

	if _, ok := t.Key[key]; ok {
		return fmt.Errorf("duplicate key for list Key %v", key)
	}

	t.Key[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Key {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys.
func (*OpenconfigKeychain_Keychains_Keychain_Keys) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key represents the /openconfig-keychain/keychains/keychain/keys/key YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key struct {
	ΛMetadata        []ygot.Annotation                                                 `path:"@" ygotAnnotation:"true"`
	Config           *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config            `path:"config" module:"openconfig-keychain"`
	ΛConfig          []ygot.Annotation                                                 `path:"@config" ygotAnnotation:"true"`
	KeyId            OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union `path:"key-id" module:"openconfig-keychain"`
	ΛKeyId           []ygot.Annotation                                                 `path:"@key-id" ygotAnnotation:"true"`
	ReceiveLifetime  *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime   `path:"receive-lifetime" module:"openconfig-keychain"`
	ΛReceiveLifetime []ygot.Annotation                                                 `path:"@receive-lifetime" ygotAnnotation:"true"`
	SendLifetime     *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime      `path:"send-lifetime" module:"openconfig-keychain"`
	ΛSendLifetime    []ygot.Annotation                                                 `path:"@send-lifetime" ygotAnnotation:"true"`
	State            *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State             `path:"state" module:"openconfig-keychain"`
	ΛState           []ygot.Annotation                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetOrCreateConfig() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config{}
	return t.Config
}

// GetOrCreateReceiveLifetime retrieves the value of the ReceiveLifetime field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetOrCreateReceiveLifetime() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime {
	if t.ReceiveLifetime != nil {
		return t.ReceiveLifetime
	}
	t.ReceiveLifetime = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime{}
	return t.ReceiveLifetime
}

// GetOrCreateSendLifetime retrieves the value of the SendLifetime field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetOrCreateSendLifetime() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime {
	if t.SendLifetime != nil {
		return t.SendLifetime
	}
	t.SendLifetime = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime{}
	return t.SendLifetime
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetOrCreateState() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetConfig() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetReceiveLifetime returns the value of the ReceiveLifetime struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key. If the receiver or the field ReceiveLifetime is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetReceiveLifetime() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime {
	if t != nil && t.ReceiveLifetime != nil {
		return t.ReceiveLifetime
	}
	return nil
}

// GetSendLifetime returns the value of the SendLifetime struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key. If the receiver or the field SendLifetime is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetSendLifetime() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime {
	if t != nil && t.SendLifetime != nil {
		return t.SendLifetime
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetState() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetKeyId retrieves the value of the leaf KeyId from the OpenconfigKeychain_Keychains_Keychain_Keys_Key
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyId is set, it can
// safely use t.GetKeyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyId == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) GetKeyId() OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union {
	if t == nil || t.KeyId == nil {
		return nil
	}
	return t.KeyId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.ReceiveLifetime.PopulateDefaults()
	t.SendLifetime.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigKeychain_Keychains_Keychain_Keys_Key struct, which is a YANG list entry.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"key-id": t.KeyId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-keychain/keychains/keychain/keys/key/key-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint64].
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union interface {
	// Union type can be one of [UnionString, UnionUint64]
	Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union()
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union ensures that UnionString
// implements the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union interface.
func (UnionString) Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union() {
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union ensures that UnionUint64
// implements the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union interface.
func (UnionUint64) Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union() {
}

// To_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key) To_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union(i interface{}) (OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union, error) {
	if v, ok := i.(OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint64:
		return UnionUint64(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union, unknown union type, got: %T, want any of [string, uint64]", i, i)
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config represents the /openconfig-keychain/keychains/keychain/keys/key/config YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config struct {
	ΛMetadata        []ygot.Annotation                                                 `path:"@" ygotAnnotation:"true"`
	CryptoAlgorithm  E_OpenconfigKeychainTypes_CRYPTO_TYPE                             `path:"crypto-algorithm" module:"openconfig-keychain"`
	ΛCryptoAlgorithm []ygot.Annotation                                                 `path:"@crypto-algorithm" ygotAnnotation:"true"`
	KeyId            OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union `path:"key-id" module:"openconfig-keychain"`
	ΛKeyId           []ygot.Annotation                                                 `path:"@key-id" ygotAnnotation:"true"`
	SecretKey        *string                                                           `path:"secret-key" module:"openconfig-keychain"`
	ΛSecretKey       []ygot.Annotation                                                 `path:"@secret-key" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) IsYANGGoStruct() {}

// GetCryptoAlgorithm retrieves the value of the leaf CryptoAlgorithm from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CryptoAlgorithm is set, it can
// safely use t.GetCryptoAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CryptoAlgorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) GetCryptoAlgorithm() E_OpenconfigKeychainTypes_CRYPTO_TYPE {
	if t == nil || t.CryptoAlgorithm == 0 {
		return 0
	}
	return t.CryptoAlgorithm
}

// GetKeyId retrieves the value of the leaf KeyId from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyId is set, it can
// safely use t.GetKeyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyId == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) GetKeyId() OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union {
	if t == nil || t.KeyId == nil {
		return nil
	}
	return t.KeyId
}

// GetSecretKey retrieves the value of the leaf SecretKey from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKey is set, it can
// safely use t.GetSecretKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKey == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) GetSecretKey() string {
	if t == nil || t.SecretKey == nil {
		return ""
	}
	return *t.SecretKey
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// To_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config) To_OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union(i interface{}) (OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union, error) {
	if v, ok := i.(OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint64:
		return UnionUint64(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigKeychain_Keychains_Keychain_Keys_Key_Config_KeyId_Union, unknown union type, got: %T, want any of [string, uint64]", i, i)
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime represents the /openconfig-keychain/keychains/keychain/keys/key/receive-lifetime YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime struct {
	ΛMetadata []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config `path:"config" module:"openconfig-keychain"`
	ΛConfig   []ygot.Annotation                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State  `path:"state" module:"openconfig-keychain"`
	ΛState    []ygot.Annotation                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) GetOrCreateConfig() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) GetOrCreateState() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) GetConfig() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) GetState() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config represents the /openconfig-keychain/keychains/keychain/keys/key/receive-lifetime/config YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EndTime    *uint64           `path:"end-time" module:"openconfig-keychain"`
	ΛEndTime   []ygot.Annotation `path:"@end-time" ygotAnnotation:"true"`
	StartTime  *uint64           `path:"start-time" module:"openconfig-keychain"`
	ΛStartTime []ygot.Annotation `path:"@start-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) IsYANGGoStruct() {}

// GetEndTime retrieves the value of the leaf EndTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndTime is set, it can
// safely use t.GetEndTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) GetEndTime() uint64 {
	if t == nil || t.EndTime == nil {
		return 0
	}
	return *t.EndTime
}

// GetStartTime retrieves the value of the leaf StartTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StartTime is set, it can
// safely use t.GetStartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) GetStartTime() uint64 {
	if t == nil || t.StartTime == nil {
		return 0
	}
	return *t.StartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_Config) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State represents the /openconfig-keychain/keychains/keychain/keys/key/receive-lifetime/state YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EndTime    *uint64           `path:"end-time" module:"openconfig-keychain"`
	ΛEndTime   []ygot.Annotation `path:"@end-time" ygotAnnotation:"true"`
	StartTime  *uint64           `path:"start-time" module:"openconfig-keychain"`
	ΛStartTime []ygot.Annotation `path:"@start-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) IsYANGGoStruct() {}

// GetEndTime retrieves the value of the leaf EndTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndTime is set, it can
// safely use t.GetEndTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) GetEndTime() uint64 {
	if t == nil || t.EndTime == nil {
		return 0
	}
	return *t.EndTime
}

// GetStartTime retrieves the value of the leaf StartTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StartTime is set, it can
// safely use t.GetStartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) GetStartTime() uint64 {
	if t == nil || t.StartTime == nil {
		return 0
	}
	return *t.StartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_ReceiveLifetime_State) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime represents the /openconfig-keychain/keychains/keychain/keys/key/send-lifetime YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime struct {
	ΛMetadata []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config `path:"config" module:"openconfig-keychain"`
	ΛConfig   []ygot.Annotation                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State  `path:"state" module:"openconfig-keychain"`
	ΛState    []ygot.Annotation                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) GetOrCreateConfig() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) GetOrCreateState() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) GetConfig() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) GetState() *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config represents the /openconfig-keychain/keychains/keychain/keys/key/send-lifetime/config YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EndTime         *uint64           `path:"end-time" module:"openconfig-keychain"`
	ΛEndTime        []ygot.Annotation `path:"@end-time" ygotAnnotation:"true"`
	SendAndReceive  *bool             `path:"send-and-receive" module:"openconfig-keychain"`
	ΛSendAndReceive []ygot.Annotation `path:"@send-and-receive" ygotAnnotation:"true"`
	StartTime       *uint64           `path:"start-time" module:"openconfig-keychain"`
	ΛStartTime      []ygot.Annotation `path:"@start-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) IsYANGGoStruct() {}

// GetEndTime retrieves the value of the leaf EndTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndTime is set, it can
// safely use t.GetEndTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) GetEndTime() uint64 {
	if t == nil || t.EndTime == nil {
		return 0
	}
	return *t.EndTime
}

// GetSendAndReceive retrieves the value of the leaf SendAndReceive from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendAndReceive is set, it can
// safely use t.GetSendAndReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendAndReceive == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) GetSendAndReceive() bool {
	if t == nil || t.SendAndReceive == nil {
		return true
	}
	return *t.SendAndReceive
}

// GetStartTime retrieves the value of the leaf StartTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StartTime is set, it can
// safely use t.GetStartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) GetStartTime() uint64 {
	if t == nil || t.StartTime == nil {
		return 0
	}
	return *t.StartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendAndReceive == nil {
		var v bool = true
		t.SendAndReceive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_Config) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State represents the /openconfig-keychain/keychains/keychain/keys/key/send-lifetime/state YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EndTime         *uint64           `path:"end-time" module:"openconfig-keychain"`
	ΛEndTime        []ygot.Annotation `path:"@end-time" ygotAnnotation:"true"`
	SendAndReceive  *bool             `path:"send-and-receive" module:"openconfig-keychain"`
	ΛSendAndReceive []ygot.Annotation `path:"@send-and-receive" ygotAnnotation:"true"`
	StartTime       *uint64           `path:"start-time" module:"openconfig-keychain"`
	ΛStartTime      []ygot.Annotation `path:"@start-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) IsYANGGoStruct() {}

// GetEndTime retrieves the value of the leaf EndTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndTime is set, it can
// safely use t.GetEndTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) GetEndTime() uint64 {
	if t == nil || t.EndTime == nil {
		return 0
	}
	return *t.EndTime
}

// GetSendAndReceive retrieves the value of the leaf SendAndReceive from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendAndReceive is set, it can
// safely use t.GetSendAndReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendAndReceive == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) GetSendAndReceive() bool {
	if t == nil || t.SendAndReceive == nil {
		return true
	}
	return *t.SendAndReceive
}

// GetStartTime retrieves the value of the leaf StartTime from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StartTime is set, it can
// safely use t.GetStartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) GetStartTime() uint64 {
	if t == nil || t.StartTime == nil {
		return 0
	}
	return *t.StartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendAndReceive == nil {
		var v bool = true
		t.SendAndReceive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_SendLifetime_State) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_State represents the /openconfig-keychain/keychains/keychain/keys/key/state YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_State struct {
	ΛMetadata        []ygot.Annotation                                                `path:"@" ygotAnnotation:"true"`
	CryptoAlgorithm  E_OpenconfigKeychainTypes_CRYPTO_TYPE                            `path:"crypto-algorithm" module:"openconfig-keychain"`
	ΛCryptoAlgorithm []ygot.Annotation                                                `path:"@crypto-algorithm" ygotAnnotation:"true"`
	KeyId            OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union `path:"key-id" module:"openconfig-keychain"`
	ΛKeyId           []ygot.Annotation                                                `path:"@key-id" ygotAnnotation:"true"`
	SecretKey        *string                                                          `path:"secret-key" module:"openconfig-keychain"`
	ΛSecretKey       []ygot.Annotation                                                `path:"@secret-key" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_Keys_Key_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) IsYANGGoStruct() {}

// GetCryptoAlgorithm retrieves the value of the leaf CryptoAlgorithm from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CryptoAlgorithm is set, it can
// safely use t.GetCryptoAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CryptoAlgorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) GetCryptoAlgorithm() E_OpenconfigKeychainTypes_CRYPTO_TYPE {
	if t == nil || t.CryptoAlgorithm == 0 {
		return 0
	}
	return t.CryptoAlgorithm
}

// GetKeyId retrieves the value of the leaf KeyId from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyId is set, it can
// safely use t.GetKeyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyId == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) GetKeyId() OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union {
	if t == nil || t.KeyId == nil {
		return nil
	}
	return t.KeyId
}

// GetSecretKey retrieves the value of the leaf SecretKey from the OpenconfigKeychain_Keychains_Keychain_Keys_Key_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKey is set, it can
// safely use t.GetSecretKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKey == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) GetSecretKey() string {
	if t == nil || t.SecretKey == nil {
		return ""
	}
	return *t.SecretKey
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_Keys_Key_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_Keys_Key_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_Keys_Key_State.
func (*OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-keychain/keychains/keychain/keys/key/state/key-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint64].
type OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union interface {
	// Union type can be one of [UnionString, UnionUint64]
	Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union()
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union ensures that UnionString
// implements the OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union interface.
func (UnionString) Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union() {
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union ensures that UnionUint64
// implements the OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union interface.
func (UnionUint64) Documentation_for_OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union() {
}

// To_OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigKeychain_Keychains_Keychain_Keys_Key_State) To_OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union(i interface{}) (OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union, error) {
	if v, ok := i.(OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint64:
		return UnionUint64(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigKeychain_Keychains_Keychain_Keys_Key_State_KeyId_Union, unknown union type, got: %T, want any of [string, uint64]", i, i)
}

// OpenconfigKeychain_Keychains_Keychain_State represents the /openconfig-keychain/keychains/keychain/state YANG schema element.
type OpenconfigKeychain_Keychains_Keychain_State struct {
	ΛMetadata  []ygot.Annotation                                           `path:"@" ygotAnnotation:"true"`
	Name       *string                                                     `path:"name" module:"openconfig-keychain"`
	ΛName      []ygot.Annotation                                           `path:"@name" ygotAnnotation:"true"`
	Tolerance  OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union `path:"tolerance" module:"openconfig-keychain"`
	ΛTolerance []ygot.Annotation                                           `path:"@tolerance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigKeychain_Keychains_Keychain_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigKeychain_Keychains_Keychain_State) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigKeychain_Keychains_Keychain_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetTolerance retrieves the value of the leaf Tolerance from the OpenconfigKeychain_Keychains_Keychain_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tolerance is set, it can
// safely use t.GetTolerance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tolerance == nil' before retrieving the leaf's value.
func (t *OpenconfigKeychain_Keychains_Keychain_State) GetTolerance() OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union {
	if t == nil || t.Tolerance == nil {
		return nil
	}
	return t.Tolerance
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigKeychain_Keychains_Keychain_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigKeychain_Keychains_Keychain_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigKeychain_Keychains_Keychain_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigKeychain_Keychains_Keychain_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigKeychain_Keychains_Keychain_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigKeychain_Keychains_Keychain_State.
func (*OpenconfigKeychain_Keychains_Keychain_State) ΛBelongingModule() string {
	return "openconfig-keychain"
}

// OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-keychain/keychains/keychain/state/tolerance within the YANG schema.
// Union type can be one of [E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum, UnionUint32].
type OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union interface {
	// Union type can be one of [E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum, UnionUint32]
	Documentation_for_OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union()
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union ensures that E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum
// implements the OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union interface.
func (E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum) Documentation_for_OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union() {
}

// Documentation_for_OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union ensures that UnionUint32
// implements the OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union interface.
func (UnionUint32) Documentation_for_OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union() {}

// To_OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigKeychain_Keychains_Keychain_State) To_OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union(i interface{}) (OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union, error) {
	if v, ok := i.(OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigKeychain_Keychains_Keychain_State_Tolerance_Union, unknown union type, got: %T, want any of [E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum, uint32]", i, i)
}

// OpenconfigLldp_Lldp represents the /openconfig-lldp/lldp YANG schema element.
type OpenconfigLldp_Lldp struct {
	ΛMetadata   []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigLldp_Lldp_Config     `path:"config" module:"openconfig-lldp"`
	ΛConfig     []ygot.Annotation               `path:"@config" ygotAnnotation:"true"`
	Interfaces  *OpenconfigLldp_Lldp_Interfaces `path:"interfaces" module:"openconfig-lldp"`
	ΛInterfaces []ygot.Annotation               `path:"@interfaces" ygotAnnotation:"true"`
	State       *OpenconfigLldp_Lldp_State      `path:"state" module:"openconfig-lldp"`
	ΛState      []ygot.Annotation               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp) GetOrCreateConfig() *OpenconfigLldp_Lldp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigLldp_Lldp_Config{}
	return t.Config
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp) GetOrCreateInterfaces() *OpenconfigLldp_Lldp_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigLldp_Lldp_Interfaces{}
	return t.Interfaces
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp) GetOrCreateState() *OpenconfigLldp_Lldp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigLldp_Lldp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigLldp_Lldp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp) GetConfig() *OpenconfigLldp_Lldp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigLldp_Lldp. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp) GetInterfaces() *OpenconfigLldp_Lldp_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigLldp_Lldp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp) GetState() *OpenconfigLldp_Lldp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp.
func (*OpenconfigLldp_Lldp) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Config represents the /openconfig-lldp/lldp/config YANG schema element.
type OpenconfigLldp_Lldp_Config struct {
	ΛMetadata                 []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	ChassisId                 *string                             `path:"chassis-id" module:"openconfig-lldp"`
	ΛChassisId                []ygot.Annotation                   `path:"@chassis-id" ygotAnnotation:"true"`
	ChassisIdType             E_OpenconfigLldpTypes_ChassisIdType `path:"chassis-id-type" module:"openconfig-lldp"`
	ΛChassisIdType            []ygot.Annotation                   `path:"@chassis-id-type" ygotAnnotation:"true"`
	Enabled                   *bool                               `path:"enabled" module:"openconfig-lldp"`
	ΛEnabled                  []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	HelloTimer                *uint64                             `path:"hello-timer" module:"openconfig-lldp"`
	ΛHelloTimer               []ygot.Annotation                   `path:"@hello-timer" ygotAnnotation:"true"`
	SuppressTlvAdvertisement  []E_OpenconfigLldpTypes_LLDP_TLV    `path:"suppress-tlv-advertisement" module:"openconfig-lldp"`
	ΛSuppressTlvAdvertisement []ygot.Annotation                   `path:"@suppress-tlv-advertisement" ygotAnnotation:"true"`
	SystemDescription         *string                             `path:"system-description" module:"openconfig-lldp"`
	ΛSystemDescription        []ygot.Annotation                   `path:"@system-description" ygotAnnotation:"true"`
	SystemName                *string                             `path:"system-name" module:"openconfig-lldp"`
	ΛSystemName               []ygot.Annotation                   `path:"@system-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Config) IsYANGGoStruct() {}

// GetChassisId retrieves the value of the leaf ChassisId from the OpenconfigLldp_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisId is set, it can
// safely use t.GetChassisId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisId == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Config) GetChassisId() string {
	if t == nil || t.ChassisId == nil {
		return ""
	}
	return *t.ChassisId
}

// GetChassisIdType retrieves the value of the leaf ChassisIdType from the OpenconfigLldp_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisIdType is set, it can
// safely use t.GetChassisIdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisIdType == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Config) GetChassisIdType() E_OpenconfigLldpTypes_ChassisIdType {
	if t == nil || t.ChassisIdType == 0 {
		return 0
	}
	return t.ChassisIdType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigLldp_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetHelloTimer retrieves the value of the leaf HelloTimer from the OpenconfigLldp_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloTimer is set, it can
// safely use t.GetHelloTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Config) GetHelloTimer() uint64 {
	if t == nil || t.HelloTimer == nil {
		return 0
	}
	return *t.HelloTimer
}

// GetSuppressTlvAdvertisement retrieves the value of the leaf SuppressTlvAdvertisement from the OpenconfigLldp_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SuppressTlvAdvertisement is set, it can
// safely use t.GetSuppressTlvAdvertisement() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SuppressTlvAdvertisement == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Config) GetSuppressTlvAdvertisement() []E_OpenconfigLldpTypes_LLDP_TLV {
	if t == nil || t.SuppressTlvAdvertisement == nil {
		return nil
	}
	return t.SuppressTlvAdvertisement
}

// GetSystemDescription retrieves the value of the leaf SystemDescription from the OpenconfigLldp_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemDescription is set, it can
// safely use t.GetSystemDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemDescription == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Config) GetSystemDescription() string {
	if t == nil || t.SystemDescription == nil {
		return ""
	}
	return *t.SystemDescription
}

// GetSystemName retrieves the value of the leaf SystemName from the OpenconfigLldp_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemName is set, it can
// safely use t.GetSystemName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemName == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Config) GetSystemName() string {
	if t == nil || t.SystemName == nil {
		return ""
	}
	return *t.SystemName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Config.
func (*OpenconfigLldp_Lldp_Config) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces represents the /openconfig-lldp/lldp/interfaces YANG schema element.
type OpenconfigLldp_Lldp_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                    `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigLldp_Lldp_Interfaces_Interface `path:"interface" module:"openconfig-lldp"`
	ΛInterface []ygot.Annotation                                    `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces) IsYANGGoStruct() {}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigLldp_Lldp_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigLldp_Lldp_Interfaces) NewInterface(Name string) (*OpenconfigLldp_Lldp_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigLldp_Lldp_Interfaces_Interface{
		Name: &Name,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigLldp_Lldp_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigLldp_Lldp_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.Name = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigLldp_Lldp_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigLldp_Lldp_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigLldp_Lldp_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigLldp_Lldp_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigLldp_Lldp_Interfaces) GetOrCreateInterface(Name string) *OpenconfigLldp_Lldp_Interfaces_Interface {

	key := Name

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigLldp_Lldp_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces) GetInterface(Name string) *OpenconfigLldp_Lldp_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigLldp_Lldp_Interfaces_Interface struct to the
// list Interface of OpenconfigLldp_Lldp_Interfaces. If the key value(s) specified in
// the supplied OpenconfigLldp_Lldp_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigLldp_Lldp_Interfaces) AppendInterface(v *OpenconfigLldp_Lldp_Interfaces_Interface) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces.
func (*OpenconfigLldp_Lldp_Interfaces) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface represents the /openconfig-lldp/lldp/interfaces/interface YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface struct {
	ΛMetadata  []ygot.Annotation                                   `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigLldp_Lldp_Interfaces_Interface_Config    `path:"config" module:"openconfig-lldp"`
	ΛConfig    []ygot.Annotation                                   `path:"@config" ygotAnnotation:"true"`
	Name       *string                                             `path:"name" module:"openconfig-lldp"`
	ΛName      []ygot.Annotation                                   `path:"@name" ygotAnnotation:"true"`
	Neighbors  *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors `path:"neighbors" module:"openconfig-lldp"`
	ΛNeighbors []ygot.Annotation                                   `path:"@neighbors" ygotAnnotation:"true"`
	State      *OpenconfigLldp_Lldp_Interfaces_Interface_State     `path:"state" module:"openconfig-lldp"`
	ΛState     []ygot.Annotation                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) GetOrCreateConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigLldp_Lldp_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) GetOrCreateNeighbors() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors{}
	return t.Neighbors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) GetOrCreateState() *OpenconfigLldp_Lldp_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigLldp_Lldp_Interfaces_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) GetConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) GetNeighbors() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) GetState() *OpenconfigLldp_Lldp_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigLldp_Lldp_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface.
func (*OpenconfigLldp_Lldp_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Config represents the /openconfig-lldp/lldp/interfaces/interface/config YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-lldp"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-lldp"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Config) IsYANGGoStruct() {}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigLldp_Lldp_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetName retrieves the value of the leaf Name from the OpenconfigLldp_Lldp_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Config.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors represents the /openconfig-lldp/lldp/interfaces/interface/neighbors YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                       `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor `path:"neighbor" module:"openconfig-lldp"`
	ΛNeighbor []ygot.Annotation                                                       `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) IsYANGGoStruct() {}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) NewNeighbor(Id string) (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor{
		Id: &Id,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.Id = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) GetOrCreateNeighbor(Id string) *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor {

	key := Id

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) GetNeighbor(Id string) *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors. If the key value(s) specified in
// the supplied OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) AppendNeighbor(v *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor struct {
	ΛMetadata     []ygot.Annotation                                                         `path:"@" ygotAnnotation:"true"`
	Capabilities  *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities `path:"capabilities" module:"openconfig-lldp"`
	ΛCapabilities []ygot.Annotation                                                         `path:"@capabilities" ygotAnnotation:"true"`
	Config        *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config       `path:"config" module:"openconfig-lldp"`
	ΛConfig       []ygot.Annotation                                                         `path:"@config" ygotAnnotation:"true"`
	CustomTlvs    *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs   `path:"custom-tlvs" module:"openconfig-lldp"`
	ΛCustomTlvs   []ygot.Annotation                                                         `path:"@custom-tlvs" ygotAnnotation:"true"`
	Id            *string                                                                   `path:"id" module:"openconfig-lldp"`
	ΛId           []ygot.Annotation                                                         `path:"@id" ygotAnnotation:"true"`
	State         *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State        `path:"state" module:"openconfig-lldp"`
	ΛState        []ygot.Annotation                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) IsYANGGoStruct() {}

// GetOrCreateCapabilities retrieves the value of the Capabilities field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetOrCreateCapabilities() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities {
	if t.Capabilities != nil {
		return t.Capabilities
	}
	t.Capabilities = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities{}
	return t.Capabilities
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetOrCreateConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config{}
	return t.Config
}

// GetOrCreateCustomTlvs retrieves the value of the CustomTlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetOrCreateCustomTlvs() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs {
	if t.CustomTlvs != nil {
		return t.CustomTlvs
	}
	t.CustomTlvs = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs{}
	return t.CustomTlvs
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetOrCreateState() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State{}
	return t.State
}

// GetCapabilities returns the value of the Capabilities struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor. If the receiver or the field Capabilities is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetCapabilities() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities {
	if t != nil && t.Capabilities != nil {
		return t.Capabilities
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetCustomTlvs returns the value of the CustomTlvs struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor. If the receiver or the field CustomTlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetCustomTlvs() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs {
	if t != nil && t.CustomTlvs != nil {
		return t.CustomTlvs
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetState() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Capabilities.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.CustomTlvs.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities struct {
	ΛMetadata   []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Capability  map[E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability `path:"capability" module:"openconfig-lldp"`
	ΛCapability []ygot.Annotation                                                                                                                     `path:"@capability" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) IsYANGGoStruct() {}

// NewCapability creates a new entry in the Capability list of the
// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) NewCapability(Name E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Capability == nil {
		t.Capability = make(map[E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Capability[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Capability", key)
	}

	t.Capability[key] = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability{
		Name: Name,
	}

	return t.Capability[key], nil
}

// RenameCapability renames an entry in the list Capability within
// the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) RenameCapability(oldK, newK E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) error {
	if _, ok := t.Capability[newK]; ok {
		return fmt.Errorf("key %v already exists in Capability", newK)
	}

	e, ok := t.Capability[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Capability", oldK)
	}
	e.Name = newK

	t.Capability[newK] = e
	delete(t.Capability, oldK)
	return nil
}

// GetOrCreateCapabilityMap returns the list (map) from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities.
//
// It initializes the field if not already initialized.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) GetOrCreateCapabilityMap() map[E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability {
	if t.Capability == nil {
		t.Capability = make(map[E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability)
	}
	return t.Capability
}

// GetOrCreateCapability retrieves the value with the specified keys from
// the receiver OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) GetOrCreateCapability(Name E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability {

	key := Name

	if v, ok := t.Capability[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewCapability(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateCapability got unexpected error: %v", err))
	}
	return v
}

// GetCapability retrieves the value with the specified key from
// the Capability map field of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) GetCapability(Name E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Capability[key]; ok {
		return lm
	}
	return nil
}

// AppendCapability appends the supplied OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability struct to the
// list Capability of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities. If the key value(s) specified in
// the supplied OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability already exist in the list, an error is
// returned.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) AppendCapability(v *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) error {
	key := v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Capability == nil {
		t.Capability = make(map[E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability)
	}

	if _, ok := t.Capability[key]; ok {
		return fmt.Errorf("duplicate key for list Capability %v", key)
	}

	t.Capability[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Capability {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability struct {
	ΛMetadata []ygot.Annotation                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config `path:"config" module:"openconfig-lldp"`
	ΛConfig   []ygot.Annotation                                                                           `path:"@config" ygotAnnotation:"true"`
	Name      E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY                                                `path:"name" module:"openconfig-lldp"`
	ΛName     []ygot.Annotation                                                                           `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State  `path:"state" module:"openconfig-lldp"`
	ΛState    []ygot.Annotation                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) GetOrCreateConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) GetOrCreateState() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) GetConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) GetState() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) GetName() E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY {
	if t == nil || t.Name == 0 {
		return 0
	}
	return t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability struct, which is a YANG list entry.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"name": t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/config YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/state YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State struct {
	ΛMetadata []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	Enabled   *bool                                        `path:"enabled" module:"openconfig-lldp"`
	ΛEnabled  []ygot.Annotation                            `path:"@enabled" ygotAnnotation:"true"`
	Name      E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY `path:"name" module:"openconfig-lldp"`
	ΛName     []ygot.Annotation                            `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetName retrieves the value of the leaf Name from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) GetName() E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY {
	if t == nil || t.Name == 0 {
		return 0
	}
	return t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/config YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Tlv       map[OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv `path:"tlv" module:"openconfig-lldp"`
	ΛTlv      []ygot.Annotation                                                                                                                                              `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) IsYANGGoStruct() {}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key represents the key for list Tlv of element /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key struct {
	Type       int32  `path:"type"`
	Oui        string `path:"oui"`
	OuiSubtype string `path:"oui-subtype"`
}

// IsYANGGoKeyStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key key struct.
func (t OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"type":        t.Type,
		"oui":         t.Oui,
		"oui-subtype": t.OuiSubtype,
	}, nil
}

// NewTlv creates a new entry in the Tlv list of the
// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) NewTlv(Type int32, Oui string, OuiSubtype string) (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tlv == nil {
		t.Tlv = make(map[OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv)
	}

	key := OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       Type,
		Oui:        Oui,
		OuiSubtype: OuiSubtype,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Tlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Tlv", key)
	}

	t.Tlv[key] = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv{
		Type:       &Type,
		Oui:        &Oui,
		OuiSubtype: &OuiSubtype,
	}

	return t.Tlv[key], nil
}

// RenameTlv renames an entry in the list Tlv within
// the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) RenameTlv(oldK, newK OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key) error {
	if _, ok := t.Tlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Tlv", newK)
	}

	e, ok := t.Tlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Tlv", oldK)
	}
	e.Type = &newK.Type
	e.Oui = &newK.Oui
	e.OuiSubtype = &newK.OuiSubtype

	t.Tlv[newK] = e
	delete(t.Tlv, oldK)
	return nil
}

// GetOrCreateTlvMap returns the list (map) from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) GetOrCreateTlvMap() map[OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv {
	if t.Tlv == nil {
		t.Tlv = make(map[OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv)
	}
	return t.Tlv
}

// GetOrCreateTlv retrieves the value with the specified keys from
// the receiver OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) GetOrCreateTlv(Type int32, Oui string, OuiSubtype string) *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv {

	key := OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       Type,
		Oui:        Oui,
		OuiSubtype: OuiSubtype,
	}

	if v, ok := t.Tlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTlv(Type, Oui, OuiSubtype)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTlv got unexpected error: %v", err))
	}
	return v
}

// GetTlv retrieves the value with the specified key from
// the Tlv map field of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) GetTlv(Type int32, Oui string, OuiSubtype string) *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv {

	if t == nil {
		return nil
	}

	key := OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       Type,
		Oui:        Oui,
		OuiSubtype: OuiSubtype,
	}

	if lm, ok := t.Tlv[key]; ok {
		return lm
	}
	return nil
}

// AppendTlv appends the supplied OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv struct to the
// list Tlv of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs. If the key value(s) specified in
// the supplied OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv already exist in the list, an error is
// returned.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) AppendTlv(v *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key for Type")
	}

	if v.Oui == nil {
		return fmt.Errorf("invalid nil key for Oui")
	}

	if v.OuiSubtype == nil {
		return fmt.Errorf("invalid nil key for OuiSubtype")
	}

	key := OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       *v.Type,
		Oui:        *v.Oui,
		OuiSubtype: *v.OuiSubtype,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tlv == nil {
		t.Tlv = make(map[OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv)
	}

	if _, ok := t.Tlv[key]; ok {
		return fmt.Errorf("duplicate key for list Tlv %v", key)
	}

	t.Tlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs/tlv YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv struct {
	ΛMetadata   []ygot.Annotation                                                                  `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config `path:"config" module:"openconfig-lldp"`
	ΛConfig     []ygot.Annotation                                                                  `path:"@config" ygotAnnotation:"true"`
	Oui         *string                                                                            `path:"oui" module:"openconfig-lldp"`
	ΛOui        []ygot.Annotation                                                                  `path:"@oui" ygotAnnotation:"true"`
	OuiSubtype  *string                                                                            `path:"oui-subtype" module:"openconfig-lldp"`
	ΛOuiSubtype []ygot.Annotation                                                                  `path:"@oui-subtype" ygotAnnotation:"true"`
	State       *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State  `path:"state" module:"openconfig-lldp"`
	ΛState      []ygot.Annotation                                                                  `path:"@state" ygotAnnotation:"true"`
	Type        *int32                                                                             `path:"type" module:"openconfig-lldp"`
	ΛType       []ygot.Annotation                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) GetOrCreateConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) GetOrCreateState() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) GetConfig() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) GetState() *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetOui retrieves the value of the leaf Oui from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Oui is set, it can
// safely use t.GetOui() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Oui == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) GetOui() string {
	if t == nil || t.Oui == nil {
		return ""
	}
	return *t.Oui
}

// GetOuiSubtype retrieves the value of the leaf OuiSubtype from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuiSubtype is set, it can
// safely use t.GetOuiSubtype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuiSubtype == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) GetOuiSubtype() string {
	if t == nil || t.OuiSubtype == nil {
		return ""
	}
	return *t.OuiSubtype
}

// GetType retrieves the value of the leaf Type from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) GetType() int32 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv struct, which is a YANG list entry.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Oui == nil {
		return nil, fmt.Errorf("nil value for key Oui")
	}

	if t.OuiSubtype == nil {
		return nil, fmt.Errorf("nil value for key OuiSubtype")
	}

	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"oui":         *t.Oui,
		"oui-subtype": *t.OuiSubtype,
		"type":        *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs/tlv/config YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs/tlv/state YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Oui         *string           `path:"oui" module:"openconfig-lldp"`
	ΛOui        []ygot.Annotation `path:"@oui" ygotAnnotation:"true"`
	OuiSubtype  *string           `path:"oui-subtype" module:"openconfig-lldp"`
	ΛOuiSubtype []ygot.Annotation `path:"@oui-subtype" ygotAnnotation:"true"`
	Type        *int32            `path:"type" module:"openconfig-lldp"`
	ΛType       []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value       Binary            `path:"value" module:"openconfig-lldp"`
	ΛValue      []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) IsYANGGoStruct() {
}

// GetOui retrieves the value of the leaf Oui from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Oui is set, it can
// safely use t.GetOui() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Oui == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetOui() string {
	if t == nil || t.Oui == nil {
		return ""
	}
	return *t.Oui
}

// GetOuiSubtype retrieves the value of the leaf OuiSubtype from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuiSubtype is set, it can
// safely use t.GetOuiSubtype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuiSubtype == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetOuiSubtype() string {
	if t == nil || t.OuiSubtype == nil {
		return ""
	}
	return *t.OuiSubtype
}

// GetType retrieves the value of the leaf Type from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetType() int32 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/state YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State struct {
	ΛMetadata              []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	Age                    *uint64                             `path:"age" module:"openconfig-lldp"`
	ΛAge                   []ygot.Annotation                   `path:"@age" ygotAnnotation:"true"`
	ChassisId              *string                             `path:"chassis-id" module:"openconfig-lldp"`
	ΛChassisId             []ygot.Annotation                   `path:"@chassis-id" ygotAnnotation:"true"`
	ChassisIdType          E_OpenconfigLldpTypes_ChassisIdType `path:"chassis-id-type" module:"openconfig-lldp"`
	ΛChassisIdType         []ygot.Annotation                   `path:"@chassis-id-type" ygotAnnotation:"true"`
	Id                     *string                             `path:"id" module:"openconfig-lldp"`
	ΛId                    []ygot.Annotation                   `path:"@id" ygotAnnotation:"true"`
	LastUpdate             *int64                              `path:"last-update" module:"openconfig-lldp"`
	ΛLastUpdate            []ygot.Annotation                   `path:"@last-update" ygotAnnotation:"true"`
	ManagementAddress      *string                             `path:"management-address" module:"openconfig-lldp"`
	ΛManagementAddress     []ygot.Annotation                   `path:"@management-address" ygotAnnotation:"true"`
	ManagementAddressType  *string                             `path:"management-address-type" module:"openconfig-lldp"`
	ΛManagementAddressType []ygot.Annotation                   `path:"@management-address-type" ygotAnnotation:"true"`
	PortDescription        *string                             `path:"port-description" module:"openconfig-lldp"`
	ΛPortDescription       []ygot.Annotation                   `path:"@port-description" ygotAnnotation:"true"`
	PortId                 *string                             `path:"port-id" module:"openconfig-lldp"`
	ΛPortId                []ygot.Annotation                   `path:"@port-id" ygotAnnotation:"true"`
	PortIdType             E_OpenconfigLldpTypes_PortIdType    `path:"port-id-type" module:"openconfig-lldp"`
	ΛPortIdType            []ygot.Annotation                   `path:"@port-id-type" ygotAnnotation:"true"`
	SystemDescription      *string                             `path:"system-description" module:"openconfig-lldp"`
	ΛSystemDescription     []ygot.Annotation                   `path:"@system-description" ygotAnnotation:"true"`
	SystemName             *string                             `path:"system-name" module:"openconfig-lldp"`
	ΛSystemName            []ygot.Annotation                   `path:"@system-name" ygotAnnotation:"true"`
	Ttl                    *uint16                             `path:"ttl" module:"openconfig-lldp"`
	ΛTtl                   []ygot.Annotation                   `path:"@ttl" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) IsYANGGoStruct() {}

// GetAge retrieves the value of the leaf Age from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Age is set, it can
// safely use t.GetAge() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Age == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetAge() uint64 {
	if t == nil || t.Age == nil {
		return 0
	}
	return *t.Age
}

// GetChassisId retrieves the value of the leaf ChassisId from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisId is set, it can
// safely use t.GetChassisId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisId == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetChassisId() string {
	if t == nil || t.ChassisId == nil {
		return ""
	}
	return *t.ChassisId
}

// GetChassisIdType retrieves the value of the leaf ChassisIdType from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisIdType is set, it can
// safely use t.GetChassisIdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisIdType == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetChassisIdType() E_OpenconfigLldpTypes_ChassisIdType {
	if t == nil || t.ChassisIdType == 0 {
		return 0
	}
	return t.ChassisIdType
}

// GetId retrieves the value of the leaf Id from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetLastUpdate retrieves the value of the leaf LastUpdate from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastUpdate is set, it can
// safely use t.GetLastUpdate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastUpdate == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetLastUpdate() int64 {
	if t == nil || t.LastUpdate == nil {
		return 0
	}
	return *t.LastUpdate
}

// GetManagementAddress retrieves the value of the leaf ManagementAddress from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ManagementAddress is set, it can
// safely use t.GetManagementAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ManagementAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetManagementAddress() string {
	if t == nil || t.ManagementAddress == nil {
		return ""
	}
	return *t.ManagementAddress
}

// GetManagementAddressType retrieves the value of the leaf ManagementAddressType from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ManagementAddressType is set, it can
// safely use t.GetManagementAddressType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ManagementAddressType == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetManagementAddressType() string {
	if t == nil || t.ManagementAddressType == nil {
		return ""
	}
	return *t.ManagementAddressType
}

// GetPortDescription retrieves the value of the leaf PortDescription from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortDescription is set, it can
// safely use t.GetPortDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortDescription == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetPortDescription() string {
	if t == nil || t.PortDescription == nil {
		return ""
	}
	return *t.PortDescription
}

// GetPortId retrieves the value of the leaf PortId from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortId is set, it can
// safely use t.GetPortId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortId == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetPortId() string {
	if t == nil || t.PortId == nil {
		return ""
	}
	return *t.PortId
}

// GetPortIdType retrieves the value of the leaf PortIdType from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortIdType is set, it can
// safely use t.GetPortIdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortIdType == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetPortIdType() E_OpenconfigLldpTypes_PortIdType {
	if t == nil || t.PortIdType == 0 {
		return 0
	}
	return t.PortIdType
}

// GetSystemDescription retrieves the value of the leaf SystemDescription from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemDescription is set, it can
// safely use t.GetSystemDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemDescription == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetSystemDescription() string {
	if t == nil || t.SystemDescription == nil {
		return ""
	}
	return *t.SystemDescription
}

// GetSystemName retrieves the value of the leaf SystemName from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemName is set, it can
// safely use t.GetSystemName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemName == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetSystemName() string {
	if t == nil || t.SystemName == nil {
		return ""
	}
	return *t.SystemName
}

// GetTtl retrieves the value of the leaf Ttl from the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ttl is set, it can
// safely use t.GetTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ttl == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) GetTtl() uint16 {
	if t == nil || t.Ttl == nil {
		return 0
	}
	return *t.Ttl
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_State represents the /openconfig-lldp/lldp/interfaces/interface/state YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_State struct {
	ΛMetadata []ygot.Annotation                                        `path:"@" ygotAnnotation:"true"`
	Counters  *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters `path:"counters" module:"openconfig-lldp"`
	ΛCounters []ygot.Annotation                                        `path:"@counters" ygotAnnotation:"true"`
	Enabled   *bool                                                    `path:"enabled" module:"openconfig-lldp"`
	ΛEnabled  []ygot.Annotation                                        `path:"@enabled" ygotAnnotation:"true"`
	Name      *string                                                  `path:"name" module:"openconfig-lldp"`
	ΛName     []ygot.Annotation                                        `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_State) IsYANGGoStruct() {}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) GetOrCreateCounters() *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigLldp_Lldp_Interfaces_Interface_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) GetCounters() *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigLldp_Lldp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetName retrieves the value of the leaf Name from the OpenconfigLldp_Lldp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_State.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters represents the /openconfig-lldp/lldp/interfaces/interface/state/counters YANG schema element.
type OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	FrameDiscard   *uint64           `path:"frame-discard" module:"openconfig-lldp"`
	ΛFrameDiscard  []ygot.Annotation `path:"@frame-discard" ygotAnnotation:"true"`
	FrameErrorIn   *uint64           `path:"frame-error-in" module:"openconfig-lldp"`
	ΛFrameErrorIn  []ygot.Annotation `path:"@frame-error-in" ygotAnnotation:"true"`
	FrameErrorOut  *uint64           `path:"frame-error-out" module:"openconfig-lldp"`
	ΛFrameErrorOut []ygot.Annotation `path:"@frame-error-out" ygotAnnotation:"true"`
	FrameIn        *uint64           `path:"frame-in" module:"openconfig-lldp"`
	ΛFrameIn       []ygot.Annotation `path:"@frame-in" ygotAnnotation:"true"`
	FrameOut       *uint64           `path:"frame-out" module:"openconfig-lldp"`
	ΛFrameOut      []ygot.Annotation `path:"@frame-out" ygotAnnotation:"true"`
	LastClear      *string           `path:"last-clear" module:"openconfig-lldp"`
	ΛLastClear     []ygot.Annotation `path:"@last-clear" ygotAnnotation:"true"`
	TlvDiscard     *uint64           `path:"tlv-discard" module:"openconfig-lldp"`
	ΛTlvDiscard    []ygot.Annotation `path:"@tlv-discard" ygotAnnotation:"true"`
	TlvUnknown     *uint64           `path:"tlv-unknown" module:"openconfig-lldp"`
	ΛTlvUnknown    []ygot.Annotation `path:"@tlv-unknown" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) IsYANGGoStruct() {}

// GetFrameDiscard retrieves the value of the leaf FrameDiscard from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameDiscard is set, it can
// safely use t.GetFrameDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameDiscard == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetFrameDiscard() uint64 {
	if t == nil || t.FrameDiscard == nil {
		return 0
	}
	return *t.FrameDiscard
}

// GetFrameErrorIn retrieves the value of the leaf FrameErrorIn from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameErrorIn is set, it can
// safely use t.GetFrameErrorIn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameErrorIn == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetFrameErrorIn() uint64 {
	if t == nil || t.FrameErrorIn == nil {
		return 0
	}
	return *t.FrameErrorIn
}

// GetFrameErrorOut retrieves the value of the leaf FrameErrorOut from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameErrorOut is set, it can
// safely use t.GetFrameErrorOut() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameErrorOut == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetFrameErrorOut() uint64 {
	if t == nil || t.FrameErrorOut == nil {
		return 0
	}
	return *t.FrameErrorOut
}

// GetFrameIn retrieves the value of the leaf FrameIn from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameIn is set, it can
// safely use t.GetFrameIn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameIn == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetFrameIn() uint64 {
	if t == nil || t.FrameIn == nil {
		return 0
	}
	return *t.FrameIn
}

// GetFrameOut retrieves the value of the leaf FrameOut from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameOut is set, it can
// safely use t.GetFrameOut() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameOut == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetFrameOut() uint64 {
	if t == nil || t.FrameOut == nil {
		return 0
	}
	return *t.FrameOut
}

// GetLastClear retrieves the value of the leaf LastClear from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastClear is set, it can
// safely use t.GetLastClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastClear == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetLastClear() string {
	if t == nil || t.LastClear == nil {
		return ""
	}
	return *t.LastClear
}

// GetTlvDiscard retrieves the value of the leaf TlvDiscard from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlvDiscard is set, it can
// safely use t.GetTlvDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlvDiscard == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetTlvDiscard() uint64 {
	if t == nil || t.TlvDiscard == nil {
		return 0
	}
	return *t.TlvDiscard
}

// GetTlvUnknown retrieves the value of the leaf TlvUnknown from the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlvUnknown is set, it can
// safely use t.GetTlvUnknown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlvUnknown == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) GetTlvUnknown() uint64 {
	if t == nil || t.TlvUnknown == nil {
		return 0
	}
	return *t.TlvUnknown
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters.
func (*OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_State represents the /openconfig-lldp/lldp/state YANG schema element.
type OpenconfigLldp_Lldp_State struct {
	ΛMetadata                 []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	ChassisId                 *string                             `path:"chassis-id" module:"openconfig-lldp"`
	ΛChassisId                []ygot.Annotation                   `path:"@chassis-id" ygotAnnotation:"true"`
	ChassisIdType             E_OpenconfigLldpTypes_ChassisIdType `path:"chassis-id-type" module:"openconfig-lldp"`
	ΛChassisIdType            []ygot.Annotation                   `path:"@chassis-id-type" ygotAnnotation:"true"`
	Counters                  *OpenconfigLldp_Lldp_State_Counters `path:"counters" module:"openconfig-lldp"`
	ΛCounters                 []ygot.Annotation                   `path:"@counters" ygotAnnotation:"true"`
	Enabled                   *bool                               `path:"enabled" module:"openconfig-lldp"`
	ΛEnabled                  []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	HelloTimer                *uint64                             `path:"hello-timer" module:"openconfig-lldp"`
	ΛHelloTimer               []ygot.Annotation                   `path:"@hello-timer" ygotAnnotation:"true"`
	SuppressTlvAdvertisement  []E_OpenconfigLldpTypes_LLDP_TLV    `path:"suppress-tlv-advertisement" module:"openconfig-lldp"`
	ΛSuppressTlvAdvertisement []ygot.Annotation                   `path:"@suppress-tlv-advertisement" ygotAnnotation:"true"`
	SystemDescription         *string                             `path:"system-description" module:"openconfig-lldp"`
	ΛSystemDescription        []ygot.Annotation                   `path:"@system-description" ygotAnnotation:"true"`
	SystemName                *string                             `path:"system-name" module:"openconfig-lldp"`
	ΛSystemName               []ygot.Annotation                   `path:"@system-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_State) IsYANGGoStruct() {}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigLldp_Lldp_State) GetOrCreateCounters() *OpenconfigLldp_Lldp_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigLldp_Lldp_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigLldp_Lldp_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigLldp_Lldp_State) GetCounters() *OpenconfigLldp_Lldp_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetChassisId retrieves the value of the leaf ChassisId from the OpenconfigLldp_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisId is set, it can
// safely use t.GetChassisId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisId == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State) GetChassisId() string {
	if t == nil || t.ChassisId == nil {
		return ""
	}
	return *t.ChassisId
}

// GetChassisIdType retrieves the value of the leaf ChassisIdType from the OpenconfigLldp_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisIdType is set, it can
// safely use t.GetChassisIdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisIdType == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State) GetChassisIdType() E_OpenconfigLldpTypes_ChassisIdType {
	if t == nil || t.ChassisIdType == 0 {
		return 0
	}
	return t.ChassisIdType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigLldp_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetHelloTimer retrieves the value of the leaf HelloTimer from the OpenconfigLldp_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloTimer is set, it can
// safely use t.GetHelloTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State) GetHelloTimer() uint64 {
	if t == nil || t.HelloTimer == nil {
		return 0
	}
	return *t.HelloTimer
}

// GetSuppressTlvAdvertisement retrieves the value of the leaf SuppressTlvAdvertisement from the OpenconfigLldp_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SuppressTlvAdvertisement is set, it can
// safely use t.GetSuppressTlvAdvertisement() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SuppressTlvAdvertisement == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State) GetSuppressTlvAdvertisement() []E_OpenconfigLldpTypes_LLDP_TLV {
	if t == nil || t.SuppressTlvAdvertisement == nil {
		return nil
	}
	return t.SuppressTlvAdvertisement
}

// GetSystemDescription retrieves the value of the leaf SystemDescription from the OpenconfigLldp_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemDescription is set, it can
// safely use t.GetSystemDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemDescription == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State) GetSystemDescription() string {
	if t == nil || t.SystemDescription == nil {
		return ""
	}
	return *t.SystemDescription
}

// GetSystemName retrieves the value of the leaf SystemName from the OpenconfigLldp_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemName is set, it can
// safely use t.GetSystemName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemName == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State) GetSystemName() string {
	if t == nil || t.SystemName == nil {
		return ""
	}
	return *t.SystemName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_State.
func (*OpenconfigLldp_Lldp_State) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigLldp_Lldp_State_Counters represents the /openconfig-lldp/lldp/state/counters YANG schema element.
type OpenconfigLldp_Lldp_State_Counters struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EntriesAgedOut  *uint64           `path:"entries-aged-out" module:"openconfig-lldp"`
	ΛEntriesAgedOut []ygot.Annotation `path:"@entries-aged-out" ygotAnnotation:"true"`
	FrameDiscard    *uint64           `path:"frame-discard" module:"openconfig-lldp"`
	ΛFrameDiscard   []ygot.Annotation `path:"@frame-discard" ygotAnnotation:"true"`
	FrameErrorIn    *uint64           `path:"frame-error-in" module:"openconfig-lldp"`
	ΛFrameErrorIn   []ygot.Annotation `path:"@frame-error-in" ygotAnnotation:"true"`
	FrameIn         *uint64           `path:"frame-in" module:"openconfig-lldp"`
	ΛFrameIn        []ygot.Annotation `path:"@frame-in" ygotAnnotation:"true"`
	FrameOut        *uint64           `path:"frame-out" module:"openconfig-lldp"`
	ΛFrameOut       []ygot.Annotation `path:"@frame-out" ygotAnnotation:"true"`
	LastClear       *string           `path:"last-clear" module:"openconfig-lldp"`
	ΛLastClear      []ygot.Annotation `path:"@last-clear" ygotAnnotation:"true"`
	TlvAccepted     *uint64           `path:"tlv-accepted" module:"openconfig-lldp"`
	ΛTlvAccepted    []ygot.Annotation `path:"@tlv-accepted" ygotAnnotation:"true"`
	TlvDiscard      *uint64           `path:"tlv-discard" module:"openconfig-lldp"`
	ΛTlvDiscard     []ygot.Annotation `path:"@tlv-discard" ygotAnnotation:"true"`
	TlvUnknown      *uint64           `path:"tlv-unknown" module:"openconfig-lldp"`
	ΛTlvUnknown     []ygot.Annotation `path:"@tlv-unknown" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigLldp_Lldp_State_Counters) IsYANGGoStruct() {}

// GetEntriesAgedOut retrieves the value of the leaf EntriesAgedOut from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntriesAgedOut is set, it can
// safely use t.GetEntriesAgedOut() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntriesAgedOut == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetEntriesAgedOut() uint64 {
	if t == nil || t.EntriesAgedOut == nil {
		return 0
	}
	return *t.EntriesAgedOut
}

// GetFrameDiscard retrieves the value of the leaf FrameDiscard from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameDiscard is set, it can
// safely use t.GetFrameDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameDiscard == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetFrameDiscard() uint64 {
	if t == nil || t.FrameDiscard == nil {
		return 0
	}
	return *t.FrameDiscard
}

// GetFrameErrorIn retrieves the value of the leaf FrameErrorIn from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameErrorIn is set, it can
// safely use t.GetFrameErrorIn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameErrorIn == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetFrameErrorIn() uint64 {
	if t == nil || t.FrameErrorIn == nil {
		return 0
	}
	return *t.FrameErrorIn
}

// GetFrameIn retrieves the value of the leaf FrameIn from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameIn is set, it can
// safely use t.GetFrameIn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameIn == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetFrameIn() uint64 {
	if t == nil || t.FrameIn == nil {
		return 0
	}
	return *t.FrameIn
}

// GetFrameOut retrieves the value of the leaf FrameOut from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameOut is set, it can
// safely use t.GetFrameOut() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameOut == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetFrameOut() uint64 {
	if t == nil || t.FrameOut == nil {
		return 0
	}
	return *t.FrameOut
}

// GetLastClear retrieves the value of the leaf LastClear from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastClear is set, it can
// safely use t.GetLastClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastClear == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetLastClear() string {
	if t == nil || t.LastClear == nil {
		return ""
	}
	return *t.LastClear
}

// GetTlvAccepted retrieves the value of the leaf TlvAccepted from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlvAccepted is set, it can
// safely use t.GetTlvAccepted() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlvAccepted == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetTlvAccepted() uint64 {
	if t == nil || t.TlvAccepted == nil {
		return 0
	}
	return *t.TlvAccepted
}

// GetTlvDiscard retrieves the value of the leaf TlvDiscard from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlvDiscard is set, it can
// safely use t.GetTlvDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlvDiscard == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetTlvDiscard() uint64 {
	if t == nil || t.TlvDiscard == nil {
		return 0
	}
	return *t.TlvDiscard
}

// GetTlvUnknown retrieves the value of the leaf TlvUnknown from the OpenconfigLldp_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlvUnknown is set, it can
// safely use t.GetTlvUnknown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlvUnknown == nil' before retrieving the leaf's value.
func (t *OpenconfigLldp_Lldp_State_Counters) GetTlvUnknown() uint64 {
	if t == nil || t.TlvUnknown == nil {
		return 0
	}
	return *t.TlvUnknown
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigLldp_Lldp_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigLldp_Lldp_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigLldp_Lldp_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigLldp_Lldp_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigLldp_Lldp_State_Counters.
func (*OpenconfigLldp_Lldp_State_Counters) ΛBelongingModule() string {
	return "openconfig-lldp"
}

// OpenconfigMessages_Messages represents the /openconfig-messages/messages YANG schema element.
type OpenconfigMessages_Messages struct {
	ΛMetadata     []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigMessages_Messages_Config       `path:"config" module:"openconfig-messages"`
	ΛConfig       []ygot.Annotation                         `path:"@config" ygotAnnotation:"true"`
	DebugEntries  *OpenconfigMessages_Messages_DebugEntries `path:"debug-entries" module:"openconfig-messages"`
	ΛDebugEntries []ygot.Annotation                         `path:"@debug-entries" ygotAnnotation:"true"`
	State         *OpenconfigMessages_Messages_State        `path:"state" module:"openconfig-messages"`
	ΛState        []ygot.Annotation                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigMessages_Messages) GetOrCreateConfig() *OpenconfigMessages_Messages_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigMessages_Messages_Config{}
	return t.Config
}

// GetOrCreateDebugEntries retrieves the value of the DebugEntries field
// or returns the existing field if it already exists.
func (t *OpenconfigMessages_Messages) GetOrCreateDebugEntries() *OpenconfigMessages_Messages_DebugEntries {
	if t.DebugEntries != nil {
		return t.DebugEntries
	}
	t.DebugEntries = &OpenconfigMessages_Messages_DebugEntries{}
	return t.DebugEntries
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigMessages_Messages) GetOrCreateState() *OpenconfigMessages_Messages_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigMessages_Messages_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigMessages_Messages. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigMessages_Messages) GetConfig() *OpenconfigMessages_Messages_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetDebugEntries returns the value of the DebugEntries struct pointer
// from OpenconfigMessages_Messages. If the receiver or the field DebugEntries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigMessages_Messages) GetDebugEntries() *OpenconfigMessages_Messages_DebugEntries {
	if t != nil && t.DebugEntries != nil {
		return t.DebugEntries
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigMessages_Messages. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigMessages_Messages) GetState() *OpenconfigMessages_Messages_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.DebugEntries.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages.
func (*OpenconfigMessages_Messages) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigMessages_Messages_Config represents the /openconfig-messages/messages/config YANG schema element.
type OpenconfigMessages_Messages_Config struct {
	ΛMetadata []ygot.Annotation                        `path:"@" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity `path:"severity" module:"openconfig-messages"`
	ΛSeverity []ygot.Annotation                        `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages_Config) IsYANGGoStruct() {}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigMessages_Messages_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_Config) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages_Config.
func (*OpenconfigMessages_Messages_Config) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigMessages_Messages_DebugEntries represents the /openconfig-messages/messages/debug-entries YANG schema element.
type OpenconfigMessages_Messages_DebugEntries struct {
	ΛMetadata     []ygot.Annotation                                                                             `path:"@" ygotAnnotation:"true"`
	DebugService  map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigMessages_Messages_DebugEntries_DebugService `path:"debug-service" module:"openconfig-messages"`
	ΛDebugService []ygot.Annotation                                                                             `path:"@debug-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages_DebugEntries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages_DebugEntries) IsYANGGoStruct() {}

// NewDebugService creates a new entry in the DebugService list of the
// OpenconfigMessages_Messages_DebugEntries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigMessages_Messages_DebugEntries) NewDebugService(Service E_OpenconfigMessages_DEBUG_SERVICE) (*OpenconfigMessages_Messages_DebugEntries_DebugService, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DebugService == nil {
		t.DebugService = make(map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigMessages_Messages_DebugEntries_DebugService)
	}

	key := Service

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.DebugService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list DebugService", key)
	}

	t.DebugService[key] = &OpenconfigMessages_Messages_DebugEntries_DebugService{
		Service: Service,
	}

	return t.DebugService[key], nil
}

// RenameDebugService renames an entry in the list DebugService within
// the OpenconfigMessages_Messages_DebugEntries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigMessages_Messages_DebugEntries) RenameDebugService(oldK, newK E_OpenconfigMessages_DEBUG_SERVICE) error {
	if _, ok := t.DebugService[newK]; ok {
		return fmt.Errorf("key %v already exists in DebugService", newK)
	}

	e, ok := t.DebugService[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in DebugService", oldK)
	}
	e.Service = newK

	t.DebugService[newK] = e
	delete(t.DebugService, oldK)
	return nil
}

// GetOrCreateDebugServiceMap returns the list (map) from OpenconfigMessages_Messages_DebugEntries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigMessages_Messages_DebugEntries) GetOrCreateDebugServiceMap() map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigMessages_Messages_DebugEntries_DebugService {
	if t.DebugService == nil {
		t.DebugService = make(map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigMessages_Messages_DebugEntries_DebugService)
	}
	return t.DebugService
}

// GetOrCreateDebugService retrieves the value with the specified keys from
// the receiver OpenconfigMessages_Messages_DebugEntries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigMessages_Messages_DebugEntries) GetOrCreateDebugService(Service E_OpenconfigMessages_DEBUG_SERVICE) *OpenconfigMessages_Messages_DebugEntries_DebugService {

	key := Service

	if v, ok := t.DebugService[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewDebugService(Service)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateDebugService got unexpected error: %v", err))
	}
	return v
}

// GetDebugService retrieves the value with the specified key from
// the DebugService map field of OpenconfigMessages_Messages_DebugEntries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigMessages_Messages_DebugEntries) GetDebugService(Service E_OpenconfigMessages_DEBUG_SERVICE) *OpenconfigMessages_Messages_DebugEntries_DebugService {

	if t == nil {
		return nil
	}

	key := Service

	if lm, ok := t.DebugService[key]; ok {
		return lm
	}
	return nil
}

// AppendDebugService appends the supplied OpenconfigMessages_Messages_DebugEntries_DebugService struct to the
// list DebugService of OpenconfigMessages_Messages_DebugEntries. If the key value(s) specified in
// the supplied OpenconfigMessages_Messages_DebugEntries_DebugService already exist in the list, an error is
// returned.
func (t *OpenconfigMessages_Messages_DebugEntries) AppendDebugService(v *OpenconfigMessages_Messages_DebugEntries_DebugService) error {
	key := v.Service

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DebugService == nil {
		t.DebugService = make(map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigMessages_Messages_DebugEntries_DebugService)
	}

	if _, ok := t.DebugService[key]; ok {
		return fmt.Errorf("duplicate key for list DebugService %v", key)
	}

	t.DebugService[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages_DebugEntries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages_DebugEntries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.DebugService {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages_DebugEntries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages_DebugEntries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages_DebugEntries.
func (*OpenconfigMessages_Messages_DebugEntries) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigMessages_Messages_DebugEntries_DebugService represents the /openconfig-messages/messages/debug-entries/debug-service YANG schema element.
type OpenconfigMessages_Messages_DebugEntries_DebugService struct {
	ΛMetadata []ygot.Annotation                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigMessages_Messages_DebugEntries_DebugService_Config `path:"config" module:"openconfig-messages"`
	ΛConfig   []ygot.Annotation                                             `path:"@config" ygotAnnotation:"true"`
	Service   E_OpenconfigMessages_DEBUG_SERVICE                            `path:"service" module:"openconfig-messages"`
	ΛService  []ygot.Annotation                                             `path:"@service" ygotAnnotation:"true"`
	State     *OpenconfigMessages_Messages_DebugEntries_DebugService_State  `path:"state" module:"openconfig-messages"`
	ΛState    []ygot.Annotation                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages_DebugEntries_DebugService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages_DebugEntries_DebugService) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) GetOrCreateConfig() *OpenconfigMessages_Messages_DebugEntries_DebugService_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigMessages_Messages_DebugEntries_DebugService_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) GetOrCreateState() *OpenconfigMessages_Messages_DebugEntries_DebugService_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigMessages_Messages_DebugEntries_DebugService_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigMessages_Messages_DebugEntries_DebugService. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) GetConfig() *OpenconfigMessages_Messages_DebugEntries_DebugService_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigMessages_Messages_DebugEntries_DebugService. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) GetState() *OpenconfigMessages_Messages_DebugEntries_DebugService_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetService retrieves the value of the leaf Service from the OpenconfigMessages_Messages_DebugEntries_DebugService
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Service is set, it can
// safely use t.GetService() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Service == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) GetService() E_OpenconfigMessages_DEBUG_SERVICE {
	if t == nil || t.Service == 0 {
		return 0
	}
	return t.Service
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages_DebugEntries_DebugService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigMessages_Messages_DebugEntries_DebugService struct, which is a YANG list entry.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"service": t.Service,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages_DebugEntries_DebugService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages_DebugEntries_DebugService.
func (*OpenconfigMessages_Messages_DebugEntries_DebugService) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigMessages_Messages_DebugEntries_DebugService_Config represents the /openconfig-messages/messages/debug-entries/debug-service/config YANG schema element.
type OpenconfigMessages_Messages_DebugEntries_DebugService_Config struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Enabled   *bool                              `path:"enabled" module:"openconfig-messages"`
	ΛEnabled  []ygot.Annotation                  `path:"@enabled" ygotAnnotation:"true"`
	Service   E_OpenconfigMessages_DEBUG_SERVICE `path:"service" module:"openconfig-messages"`
	ΛService  []ygot.Annotation                  `path:"@service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages_DebugEntries_DebugService_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages_DebugEntries_DebugService_Config) IsYANGGoStruct() {}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigMessages_Messages_DebugEntries_DebugService_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetService retrieves the value of the leaf Service from the OpenconfigMessages_Messages_DebugEntries_DebugService_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Service is set, it can
// safely use t.GetService() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Service == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_Config) GetService() E_OpenconfigMessages_DEBUG_SERVICE {
	if t == nil || t.Service == 0 {
		return 0
	}
	return t.Service
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages_DebugEntries_DebugService_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages_DebugEntries_DebugService_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages_DebugEntries_DebugService_Config.
func (*OpenconfigMessages_Messages_DebugEntries_DebugService_Config) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigMessages_Messages_DebugEntries_DebugService_State represents the /openconfig-messages/messages/debug-entries/debug-service/state YANG schema element.
type OpenconfigMessages_Messages_DebugEntries_DebugService_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Enabled   *bool                              `path:"enabled" module:"openconfig-messages"`
	ΛEnabled  []ygot.Annotation                  `path:"@enabled" ygotAnnotation:"true"`
	Service   E_OpenconfigMessages_DEBUG_SERVICE `path:"service" module:"openconfig-messages"`
	ΛService  []ygot.Annotation                  `path:"@service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages_DebugEntries_DebugService_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages_DebugEntries_DebugService_State) IsYANGGoStruct() {}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigMessages_Messages_DebugEntries_DebugService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetService retrieves the value of the leaf Service from the OpenconfigMessages_Messages_DebugEntries_DebugService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Service is set, it can
// safely use t.GetService() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Service == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_State) GetService() E_OpenconfigMessages_DEBUG_SERVICE {
	if t == nil || t.Service == 0 {
		return 0
	}
	return t.Service
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages_DebugEntries_DebugService_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages_DebugEntries_DebugService_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages_DebugEntries_DebugService_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages_DebugEntries_DebugService_State.
func (*OpenconfigMessages_Messages_DebugEntries_DebugService_State) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigMessages_Messages_State represents the /openconfig-messages/messages/state YANG schema element.
type OpenconfigMessages_Messages_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Message   *OpenconfigMessages_Messages_State_Message `path:"message" module:"openconfig-messages"`
	ΛMessage  []ygot.Annotation                          `path:"@message" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity   `path:"severity" module:"openconfig-messages"`
	ΛSeverity []ygot.Annotation                          `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages_State) IsYANGGoStruct() {}

// GetOrCreateMessage retrieves the value of the Message field
// or returns the existing field if it already exists.
func (t *OpenconfigMessages_Messages_State) GetOrCreateMessage() *OpenconfigMessages_Messages_State_Message {
	if t.Message != nil {
		return t.Message
	}
	t.Message = &OpenconfigMessages_Messages_State_Message{}
	return t.Message
}

// GetMessage returns the value of the Message struct pointer
// from OpenconfigMessages_Messages_State. If the receiver or the field Message is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigMessages_Messages_State) GetMessage() *OpenconfigMessages_Messages_State_Message {
	if t != nil && t.Message != nil {
		return t.Message
	}
	return nil
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigMessages_Messages_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_State) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Message.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages_State.
func (*OpenconfigMessages_Messages_State) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigMessages_Messages_State_Message represents the /openconfig-messages/messages/state/message YANG schema element.
type OpenconfigMessages_Messages_State_Message struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AppName   *string           `path:"app-name" module:"openconfig-messages"`
	ΛAppName  []ygot.Annotation `path:"@app-name" ygotAnnotation:"true"`
	Msg       *string           `path:"msg" module:"openconfig-messages"`
	ΛMsg      []ygot.Annotation `path:"@msg" ygotAnnotation:"true"`
	Msgid     *string           `path:"msgid" module:"openconfig-messages"`
	ΛMsgid    []ygot.Annotation `path:"@msgid" ygotAnnotation:"true"`
	Priority  *uint8            `path:"priority" module:"openconfig-messages"`
	ΛPriority []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
	Procid    *string           `path:"procid" module:"openconfig-messages"`
	ΛProcid   []ygot.Annotation `path:"@procid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigMessages_Messages_State_Message implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigMessages_Messages_State_Message) IsYANGGoStruct() {}

// GetAppName retrieves the value of the leaf AppName from the OpenconfigMessages_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AppName is set, it can
// safely use t.GetAppName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AppName == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_State_Message) GetAppName() string {
	if t == nil || t.AppName == nil {
		return ""
	}
	return *t.AppName
}

// GetMsg retrieves the value of the leaf Msg from the OpenconfigMessages_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Msg is set, it can
// safely use t.GetMsg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Msg == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_State_Message) GetMsg() string {
	if t == nil || t.Msg == nil {
		return ""
	}
	return *t.Msg
}

// GetMsgid retrieves the value of the leaf Msgid from the OpenconfigMessages_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Msgid is set, it can
// safely use t.GetMsgid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Msgid == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_State_Message) GetMsgid() string {
	if t == nil || t.Msgid == nil {
		return ""
	}
	return *t.Msgid
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigMessages_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_State_Message) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetProcid retrieves the value of the leaf Procid from the OpenconfigMessages_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Procid is set, it can
// safely use t.GetProcid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Procid == nil' before retrieving the leaf's value.
func (t *OpenconfigMessages_Messages_State_Message) GetProcid() string {
	if t == nil || t.Procid == nil {
		return ""
	}
	return *t.Procid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigMessages_Messages_State_Message
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigMessages_Messages_State_Message) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_State_Message) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigMessages_Messages_State_Message"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigMessages_Messages_State_Message) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigMessages_Messages_State_Message) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigMessages_Messages_State_Message.
func (*OpenconfigMessages_Messages_State_Message) ΛBelongingModule() string {
	return "openconfig-messages"
}

// OpenconfigNetworkInstance_NetworkInstances represents the /openconfig-network-instance/network-instances YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances struct {
	ΛMetadata        []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	NetworkInstance  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance `path:"network-instance" module:"openconfig-network-instance"`
	ΛNetworkInstance []ygot.Annotation                                                      `path:"@network-instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances) IsYANGGoStruct() {}

// NewNetworkInstance creates a new entry in the NetworkInstance list of the
// OpenconfigNetworkInstance_NetworkInstances struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances) NewNetworkInstance(Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NetworkInstance == nil {
		t.NetworkInstance = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NetworkInstance[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NetworkInstance", key)
	}

	t.NetworkInstance[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance{
		Name: &Name,
	}

	return t.NetworkInstance[key], nil
}

// RenameNetworkInstance renames an entry in the list NetworkInstance within
// the OpenconfigNetworkInstance_NetworkInstances struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances) RenameNetworkInstance(oldK, newK string) error {
	if _, ok := t.NetworkInstance[newK]; ok {
		return fmt.Errorf("key %v already exists in NetworkInstance", newK)
	}

	e, ok := t.NetworkInstance[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NetworkInstance", oldK)
	}
	e.Name = &newK

	t.NetworkInstance[newK] = e
	delete(t.NetworkInstance, oldK)
	return nil
}

// GetOrCreateNetworkInstanceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances) GetOrCreateNetworkInstanceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance {
	if t.NetworkInstance == nil {
		t.NetworkInstance = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance)
	}
	return t.NetworkInstance
}

// GetOrCreateNetworkInstance retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances) GetOrCreateNetworkInstance(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance {

	key := Name

	if v, ok := t.NetworkInstance[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNetworkInstance(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNetworkInstance got unexpected error: %v", err))
	}
	return v
}

// GetNetworkInstance retrieves the value with the specified key from
// the NetworkInstance map field of OpenconfigNetworkInstance_NetworkInstances. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances) GetNetworkInstance(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.NetworkInstance[key]; ok {
		return lm
	}
	return nil
}

// AppendNetworkInstance appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance struct to the
// list NetworkInstance of OpenconfigNetworkInstance_NetworkInstances. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances) AppendNetworkInstance(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NetworkInstance == nil {
		t.NetworkInstance = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance)
	}

	if _, ok := t.NetworkInstance[key]; ok {
		return fmt.Errorf("duplicate key for list NetworkInstance %v", key)
	}

	t.NetworkInstance[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NetworkInstance {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances.
func (*OpenconfigNetworkInstance_NetworkInstances) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance represents the /openconfig-network-instance/network-instances/network-instance YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance struct {
	ΛMetadata              []ygot.Annotation                                                                 `path:"@" ygotAnnotation:"true"`
	Afts                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts                  `path:"afts" module:"openconfig-network-instance"`
	ΛAfts                  []ygot.Annotation                                                                 `path:"@afts" ygotAnnotation:"true"`
	Config                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config                `path:"config" module:"openconfig-network-instance"`
	ΛConfig                []ygot.Annotation                                                                 `path:"@config" ygotAnnotation:"true"`
	ConnectionPoints       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints      `path:"connection-points" module:"openconfig-network-instance"`
	ΛConnectionPoints      []ygot.Annotation                                                                 `path:"@connection-points" ygotAnnotation:"true"`
	Encapsulation          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation         `path:"encapsulation" module:"openconfig-network-instance"`
	ΛEncapsulation         []ygot.Annotation                                                                 `path:"@encapsulation" ygotAnnotation:"true"`
	Evpn                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn                  `path:"evpn" module:"openconfig-network-instance"`
	ΛEvpn                  []ygot.Annotation                                                                 `path:"@evpn" ygotAnnotation:"true"`
	Fdb                    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb                   `path:"fdb" module:"openconfig-network-instance"`
	ΛFdb                   []ygot.Annotation                                                                 `path:"@fdb" ygotAnnotation:"true"`
	InterInstancePolicies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies `path:"inter-instance-policies" module:"openconfig-network-instance"`
	ΛInterInstancePolicies []ygot.Annotation                                                                 `path:"@inter-instance-policies" ygotAnnotation:"true"`
	Interfaces             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces            `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces            []ygot.Annotation                                                                 `path:"@interfaces" ygotAnnotation:"true"`
	Mpls                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls                  `path:"mpls" module:"openconfig-network-instance"`
	ΛMpls                  []ygot.Annotation                                                                 `path:"@mpls" ygotAnnotation:"true"`
	Name                   *string                                                                           `path:"name" module:"openconfig-network-instance"`
	ΛName                  []ygot.Annotation                                                                 `path:"@name" ygotAnnotation:"true"`
	PolicyForwarding       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding      `path:"policy-forwarding" module:"openconfig-network-instance"`
	ΛPolicyForwarding      []ygot.Annotation                                                                 `path:"@policy-forwarding" ygotAnnotation:"true"`
	Protocols              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols             `path:"protocols" module:"openconfig-network-instance"`
	ΛProtocols             []ygot.Annotation                                                                 `path:"@protocols" ygotAnnotation:"true"`
	RouteLimits            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits           `path:"route-limits" module:"openconfig-network-instance"`
	ΛRouteLimits           []ygot.Annotation                                                                 `path:"@route-limits" ygotAnnotation:"true"`
	SegmentRouting         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting        `path:"segment-routing" module:"openconfig-network-instance"`
	ΛSegmentRouting        []ygot.Annotation                                                                 `path:"@segment-routing" ygotAnnotation:"true"`
	State                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State                 `path:"state" module:"openconfig-network-instance"`
	ΛState                 []ygot.Annotation                                                                 `path:"@state" ygotAnnotation:"true"`
	TableConnections       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections      `path:"table-connections" module:"openconfig-network-instance"`
	ΛTableConnections      []ygot.Annotation                                                                 `path:"@table-connections" ygotAnnotation:"true"`
	Tables                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables                `path:"tables" module:"openconfig-network-instance"`
	ΛTables                []ygot.Annotation                                                                 `path:"@tables" ygotAnnotation:"true"`
	Vlans                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans                 `path:"vlans" module:"openconfig-network-instance"`
	ΛVlans                 []ygot.Annotation                                                                 `path:"@vlans" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) IsYANGGoStruct() {}

// GetOrCreateAfts retrieves the value of the Afts field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateAfts() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts {
	if t.Afts != nil {
		return t.Afts
	}
	t.Afts = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts{}
	return t.Afts
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config{}
	return t.Config
}

// GetOrCreateConnectionPoints retrieves the value of the ConnectionPoints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateConnectionPoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints {
	if t.ConnectionPoints != nil {
		return t.ConnectionPoints
	}
	t.ConnectionPoints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints{}
	return t.ConnectionPoints
}

// GetOrCreateEncapsulation retrieves the value of the Encapsulation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateEncapsulation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation {
	if t.Encapsulation != nil {
		return t.Encapsulation
	}
	t.Encapsulation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation{}
	return t.Encapsulation
}

// GetOrCreateEvpn retrieves the value of the Evpn field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn {
	if t.Evpn != nil {
		return t.Evpn
	}
	t.Evpn = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn{}
	return t.Evpn
}

// GetOrCreateFdb retrieves the value of the Fdb field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateFdb() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb {
	if t.Fdb != nil {
		return t.Fdb
	}
	t.Fdb = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb{}
	return t.Fdb
}

// GetOrCreateInterInstancePolicies retrieves the value of the InterInstancePolicies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateInterInstancePolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies {
	if t.InterInstancePolicies != nil {
		return t.InterInstancePolicies
	}
	t.InterInstancePolicies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies{}
	return t.InterInstancePolicies
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces{}
	return t.Interfaces
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls{}
	return t.Mpls
}

// GetOrCreatePolicyForwarding retrieves the value of the PolicyForwarding field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreatePolicyForwarding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding {
	if t.PolicyForwarding != nil {
		return t.PolicyForwarding
	}
	t.PolicyForwarding = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding{}
	return t.PolicyForwarding
}

// GetOrCreateProtocols retrieves the value of the Protocols field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateProtocols() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols {
	if t.Protocols != nil {
		return t.Protocols
	}
	t.Protocols = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols{}
	return t.Protocols
}

// GetOrCreateRouteLimits retrieves the value of the RouteLimits field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateRouteLimits() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits {
	if t.RouteLimits != nil {
		return t.RouteLimits
	}
	t.RouteLimits = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits{}
	return t.RouteLimits
}

// GetOrCreateSegmentRouting retrieves the value of the SegmentRouting field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting {
	if t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	t.SegmentRouting = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting{}
	return t.SegmentRouting
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State{}
	return t.State
}

// GetOrCreateTableConnections retrieves the value of the TableConnections field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateTableConnections() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections {
	if t.TableConnections != nil {
		return t.TableConnections
	}
	t.TableConnections = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections{}
	return t.TableConnections
}

// GetOrCreateTables retrieves the value of the Tables field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateTables() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables {
	if t.Tables != nil {
		return t.Tables
	}
	t.Tables = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables{}
	return t.Tables
}

// GetOrCreateVlans retrieves the value of the Vlans field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetOrCreateVlans() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans {
	if t.Vlans != nil {
		return t.Vlans
	}
	t.Vlans = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans{}
	return t.Vlans
}

// GetAfts returns the value of the Afts struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Afts is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetAfts() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts {
	if t != nil && t.Afts != nil {
		return t.Afts
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetConnectionPoints returns the value of the ConnectionPoints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field ConnectionPoints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetConnectionPoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints {
	if t != nil && t.ConnectionPoints != nil {
		return t.ConnectionPoints
	}
	return nil
}

// GetEncapsulation returns the value of the Encapsulation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Encapsulation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetEncapsulation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation {
	if t != nil && t.Encapsulation != nil {
		return t.Encapsulation
	}
	return nil
}

// GetEvpn returns the value of the Evpn struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Evpn is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn {
	if t != nil && t.Evpn != nil {
		return t.Evpn
	}
	return nil
}

// GetFdb returns the value of the Fdb struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Fdb is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetFdb() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb {
	if t != nil && t.Fdb != nil {
		return t.Fdb
	}
	return nil
}

// GetInterInstancePolicies returns the value of the InterInstancePolicies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field InterInstancePolicies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetInterInstancePolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies {
	if t != nil && t.InterInstancePolicies != nil {
		return t.InterInstancePolicies
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetPolicyForwarding returns the value of the PolicyForwarding struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field PolicyForwarding is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetPolicyForwarding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding {
	if t != nil && t.PolicyForwarding != nil {
		return t.PolicyForwarding
	}
	return nil
}

// GetProtocols returns the value of the Protocols struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Protocols is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetProtocols() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols {
	if t != nil && t.Protocols != nil {
		return t.Protocols
	}
	return nil
}

// GetRouteLimits returns the value of the RouteLimits struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field RouteLimits is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetRouteLimits() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits {
	if t != nil && t.RouteLimits != nil {
		return t.RouteLimits
	}
	return nil
}

// GetSegmentRouting returns the value of the SegmentRouting struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field SegmentRouting is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting {
	if t != nil && t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTableConnections returns the value of the TableConnections struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field TableConnections is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetTableConnections() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections {
	if t != nil && t.TableConnections != nil {
		return t.TableConnections
	}
	return nil
}

// GetTables returns the value of the Tables struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Tables is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetTables() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables {
	if t != nil && t.Tables != nil {
		return t.Tables
	}
	return nil
}

// GetVlans returns the value of the Vlans struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance. If the receiver or the field Vlans is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetVlans() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans {
	if t != nil && t.Vlans != nil {
		return t.Vlans
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Afts.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.ConnectionPoints.PopulateDefaults()
	t.Encapsulation.PopulateDefaults()
	t.Evpn.PopulateDefaults()
	t.Fdb.PopulateDefaults()
	t.InterInstancePolicies.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.PolicyForwarding.PopulateDefaults()
	t.Protocols.PopulateDefaults()
	t.RouteLimits.PopulateDefaults()
	t.SegmentRouting.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TableConnections.PopulateDefaults()
	t.Tables.PopulateDefaults()
	t.Vlans.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts represents the /openconfig-network-instance/network-instances/network-instance/afts YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts struct {
	ΛMetadata         []ygot.Annotation                                                                 `path:"@" ygotAnnotation:"true"`
	Ethernet          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet         `path:"ethernet" module:"openconfig-network-instance"`
	ΛEthernet         []ygot.Annotation                                                                 `path:"@ethernet" ygotAnnotation:"true"`
	Ipv4Unicast       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast      `path:"ipv4-unicast" module:"openconfig-network-instance"`
	ΛIpv4Unicast      []ygot.Annotation                                                                 `path:"@ipv4-unicast" ygotAnnotation:"true"`
	Ipv6Unicast       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast      `path:"ipv6-unicast" module:"openconfig-network-instance"`
	ΛIpv6Unicast      []ygot.Annotation                                                                 `path:"@ipv6-unicast" ygotAnnotation:"true"`
	Mpls              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls             `path:"mpls" module:"openconfig-network-instance"`
	ΛMpls             []ygot.Annotation                                                                 `path:"@mpls" ygotAnnotation:"true"`
	NextHopGroups     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups    `path:"next-hop-groups" module:"openconfig-network-instance"`
	ΛNextHopGroups    []ygot.Annotation                                                                 `path:"@next-hop-groups" ygotAnnotation:"true"`
	NextHops          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops         `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops         []ygot.Annotation                                                                 `path:"@next-hops" ygotAnnotation:"true"`
	PolicyForwarding  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding `path:"policy-forwarding" module:"openconfig-network-instance"`
	ΛPolicyForwarding []ygot.Annotation                                                                 `path:"@policy-forwarding" ygotAnnotation:"true"`
	StateSynced       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced      `path:"state-synced" module:"openconfig-network-instance"`
	ΛStateSynced      []ygot.Annotation                                                                 `path:"@state-synced" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) IsYANGGoStruct() {}

// GetOrCreateEthernet retrieves the value of the Ethernet field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreateEthernet() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet {
	if t.Ethernet != nil {
		return t.Ethernet
	}
	t.Ethernet = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet{}
	return t.Ethernet
}

// GetOrCreateIpv4Unicast retrieves the value of the Ipv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreateIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast {
	if t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	t.Ipv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast{}
	return t.Ipv4Unicast
}

// GetOrCreateIpv6Unicast retrieves the value of the Ipv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreateIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast {
	if t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	t.Ipv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast{}
	return t.Ipv6Unicast
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreateMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls{}
	return t.Mpls
}

// GetOrCreateNextHopGroups retrieves the value of the NextHopGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreateNextHopGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups {
	if t.NextHopGroups != nil {
		return t.NextHopGroups
	}
	t.NextHopGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups{}
	return t.NextHopGroups
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops{}
	return t.NextHops
}

// GetOrCreatePolicyForwarding retrieves the value of the PolicyForwarding field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreatePolicyForwarding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding {
	if t.PolicyForwarding != nil {
		return t.PolicyForwarding
	}
	t.PolicyForwarding = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding{}
	return t.PolicyForwarding
}

// GetOrCreateStateSynced retrieves the value of the StateSynced field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetOrCreateStateSynced() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced {
	if t.StateSynced != nil {
		return t.StateSynced
	}
	t.StateSynced = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced{}
	return t.StateSynced
}

// GetEthernet returns the value of the Ethernet struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field Ethernet is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetEthernet() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet {
	if t != nil && t.Ethernet != nil {
		return t.Ethernet
	}
	return nil
}

// GetIpv4Unicast returns the value of the Ipv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field Ipv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast {
	if t != nil && t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	return nil
}

// GetIpv6Unicast returns the value of the Ipv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field Ipv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast {
	if t != nil && t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetNextHopGroups returns the value of the NextHopGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field NextHopGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetNextHopGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups {
	if t != nil && t.NextHopGroups != nil {
		return t.NextHopGroups
	}
	return nil
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// GetPolicyForwarding returns the value of the PolicyForwarding struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field PolicyForwarding is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetPolicyForwarding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding {
	if t != nil && t.PolicyForwarding != nil {
		return t.PolicyForwarding
	}
	return nil
}

// GetStateSynced returns the value of the StateSynced struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts. If the receiver or the field StateSynced is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) GetStateSynced() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced {
	if t != nil && t.StateSynced != nil {
		return t.StateSynced
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ethernet.PopulateDefaults()
	t.Ipv4Unicast.PopulateDefaults()
	t.Ipv6Unicast.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.NextHopGroups.PopulateDefaults()
	t.NextHops.PopulateDefaults()
	t.PolicyForwarding.PopulateDefaults()
	t.StateSynced.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet represents the /openconfig-network-instance/network-instances/network-instance/afts/ethernet YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet struct {
	ΛMetadata []ygot.Annotation                                                                             `path:"@" ygotAnnotation:"true"`
	MacEntry  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry `path:"mac-entry" module:"openconfig-network-instance"`
	ΛMacEntry []ygot.Annotation                                                                             `path:"@mac-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) IsYANGGoStruct() {}

// NewMacEntry creates a new entry in the MacEntry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) NewMacEntry(MacAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MacEntry == nil {
		t.MacEntry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry)
	}

	key := MacAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.MacEntry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list MacEntry", key)
	}

	t.MacEntry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry{
		MacAddress: &MacAddress,
	}

	return t.MacEntry[key], nil
}

// RenameMacEntry renames an entry in the list MacEntry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) RenameMacEntry(oldK, newK string) error {
	if _, ok := t.MacEntry[newK]; ok {
		return fmt.Errorf("key %v already exists in MacEntry", newK)
	}

	e, ok := t.MacEntry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in MacEntry", oldK)
	}
	e.MacAddress = &newK

	t.MacEntry[newK] = e
	delete(t.MacEntry, oldK)
	return nil
}

// GetOrCreateMacEntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) GetOrCreateMacEntryMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry {
	if t.MacEntry == nil {
		t.MacEntry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry)
	}
	return t.MacEntry
}

// GetOrCreateMacEntry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) GetOrCreateMacEntry(MacAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry {

	key := MacAddress

	if v, ok := t.MacEntry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewMacEntry(MacAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateMacEntry got unexpected error: %v", err))
	}
	return v
}

// GetMacEntry retrieves the value with the specified key from
// the MacEntry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) GetMacEntry(MacAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry {

	if t == nil {
		return nil
	}

	key := MacAddress

	if lm, ok := t.MacEntry[key]; ok {
		return lm
	}
	return nil
}

// AppendMacEntry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry struct to the
// list MacEntry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) AppendMacEntry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) error {
	if v.MacAddress == nil {
		return fmt.Errorf("invalid nil key received for MacAddress")
	}

	key := *v.MacAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MacEntry == nil {
		t.MacEntry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry)
	}

	if _, ok := t.MacEntry[key]; ok {
		return fmt.Errorf("duplicate key for list MacEntry %v", key)
	}

	t.MacEntry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.MacEntry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry represents the /openconfig-network-instance/network-instances/network-instance/afts/ethernet/mac-entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry struct {
	ΛMetadata   []ygot.Annotation                                                                        `path:"@" ygotAnnotation:"true"`
	MacAddress  *string                                                                                  `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation                                                                        `path:"@mac-address" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MacAddress == nil {
		return nil, fmt.Errorf("nil value for key MacAddress")
	}

	return map[string]interface{}{
		"mac-address": *t.MacAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State represents the /openconfig-network-instance/network-instances/network-instance/afts/ethernet/mac-entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State struct {
	ΛMetadata      []ygot.Annotation                                                                                 `path:"@" ygotAnnotation:"true"`
	Counters       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters      []ygot.Annotation                                                                                 `path:"@counters" ygotAnnotation:"true"`
	EntryMetadata  Binary                                                                                            `path:"entry-metadata" module:"openconfig-network-instance"`
	ΛEntryMetadata []ygot.Annotation                                                                                 `path:"@entry-metadata" ygotAnnotation:"true"`
	MacAddress     *string                                                                                           `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress    []ygot.Annotation                                                                                 `path:"@mac-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetEntryMetadata retrieves the value of the leaf EntryMetadata from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntryMetadata is set, it can
// safely use t.GetEntryMetadata() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntryMetadata == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) GetEntryMetadata() Binary {
	if t == nil || t.EntryMetadata == nil {
		return nil
	}
	return t.EntryMetadata
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/afts/ethernet/mac-entry/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OctetsForwarded   *uint64           `path:"octets-forwarded" module:"openconfig-network-instance"`
	ΛOctetsForwarded  []ygot.Annotation `path:"@octets-forwarded" ygotAnnotation:"true"`
	PacketsForwarded  *uint64           `path:"packets-forwarded" module:"openconfig-network-instance"`
	ΛPacketsForwarded []ygot.Annotation `path:"@packets-forwarded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) IsYANGGoStruct() {
}

// GetOctetsForwarded retrieves the value of the leaf OctetsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OctetsForwarded is set, it can
// safely use t.GetOctetsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OctetsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) GetOctetsForwarded() uint64 {
	if t == nil || t.OctetsForwarded == nil {
		return 0
	}
	return *t.OctetsForwarded
}

// GetPacketsForwarded retrieves the value of the leaf PacketsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PacketsForwarded is set, it can
// safely use t.GetPacketsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PacketsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) GetPacketsForwarded() uint64 {
	if t == nil || t.PacketsForwarded == nil {
		return 0
	}
	return *t.PacketsForwarded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ethernet_MacEntry_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast struct {
	ΛMetadata  []ygot.Annotation                                                                                 `path:"@" ygotAnnotation:"true"`
	Ipv4Entry  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry `path:"ipv4-entry" module:"openconfig-network-instance"`
	ΛIpv4Entry []ygot.Annotation                                                                                 `path:"@ipv4-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) IsYANGGoStruct() {
}

// NewIpv4Entry creates a new entry in the Ipv4Entry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) NewIpv4Entry(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv4Entry == nil {
		t.Ipv4Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Ipv4Entry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Ipv4Entry", key)
	}

	t.Ipv4Entry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry{
		Prefix: &Prefix,
	}

	return t.Ipv4Entry[key], nil
}

// RenameIpv4Entry renames an entry in the list Ipv4Entry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) RenameIpv4Entry(oldK, newK string) error {
	if _, ok := t.Ipv4Entry[newK]; ok {
		return fmt.Errorf("key %v already exists in Ipv4Entry", newK)
	}

	e, ok := t.Ipv4Entry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Ipv4Entry", oldK)
	}
	e.Prefix = &newK

	t.Ipv4Entry[newK] = e
	delete(t.Ipv4Entry, oldK)
	return nil
}

// GetOrCreateIpv4EntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) GetOrCreateIpv4EntryMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry {
	if t.Ipv4Entry == nil {
		t.Ipv4Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry)
	}
	return t.Ipv4Entry
}

// GetOrCreateIpv4Entry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) GetOrCreateIpv4Entry(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry {

	key := Prefix

	if v, ok := t.Ipv4Entry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIpv4Entry(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIpv4Entry got unexpected error: %v", err))
	}
	return v
}

// GetIpv4Entry retrieves the value with the specified key from
// the Ipv4Entry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) GetIpv4Entry(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Ipv4Entry[key]; ok {
		return lm
	}
	return nil
}

// AppendIpv4Entry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry struct to the
// list Ipv4Entry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) AppendIpv4Entry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv4Entry == nil {
		t.Ipv4Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry)
	}

	if _, ok := t.Ipv4Entry[key]; ok {
		return fmt.Errorf("duplicate key for list Ipv4Entry %v", key)
	}

	t.Ipv4Entry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Ipv4Entry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry struct {
	ΛMetadata []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	Prefix    *string                                                                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                            `path:"@prefix" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State struct {
	ΛMetadata          []ygot.Annotation                                                                                     `path:"@" ygotAnnotation:"true"`
	Counters           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters          []ygot.Annotation                                                                                     `path:"@counters" ygotAnnotation:"true"`
	DecapsulateHeader  E_OpenconfigAftTypes_EncapsulationHeaderType                                                          `path:"decapsulate-header" module:"openconfig-network-instance"`
	ΛDecapsulateHeader []ygot.Annotation                                                                                     `path:"@decapsulate-header" ygotAnnotation:"true"`
	EntryMetadata      Binary                                                                                                `path:"entry-metadata" module:"openconfig-network-instance"`
	ΛEntryMetadata     []ygot.Annotation                                                                                     `path:"@entry-metadata" ygotAnnotation:"true"`
	OriginProtocol     E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                                         `path:"origin-protocol" module:"openconfig-network-instance"`
	ΛOriginProtocol    []ygot.Annotation                                                                                     `path:"@origin-protocol" ygotAnnotation:"true"`
	Prefix             *string                                                                                               `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                     `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetDecapsulateHeader retrieves the value of the leaf DecapsulateHeader from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateHeader is set, it can
// safely use t.GetDecapsulateHeader() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateHeader == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) GetDecapsulateHeader() E_OpenconfigAftTypes_EncapsulationHeaderType {
	if t == nil || t.DecapsulateHeader == 0 {
		return 0
	}
	return t.DecapsulateHeader
}

// GetEntryMetadata retrieves the value of the leaf EntryMetadata from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntryMetadata is set, it can
// safely use t.GetEntryMetadata() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntryMetadata == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) GetEntryMetadata() Binary {
	if t == nil || t.EntryMetadata == nil {
		return nil
	}
	return t.EntryMetadata
}

// GetOriginProtocol retrieves the value of the leaf OriginProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginProtocol is set, it can
// safely use t.GetOriginProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) GetOriginProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.OriginProtocol == 0 {
		return 0
	}
	return t.OriginProtocol
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OctetsForwarded   *uint64           `path:"octets-forwarded" module:"openconfig-network-instance"`
	ΛOctetsForwarded  []ygot.Annotation `path:"@octets-forwarded" ygotAnnotation:"true"`
	PacketsForwarded  *uint64           `path:"packets-forwarded" module:"openconfig-network-instance"`
	ΛPacketsForwarded []ygot.Annotation `path:"@packets-forwarded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) IsYANGGoStruct() {
}

// GetOctetsForwarded retrieves the value of the leaf OctetsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OctetsForwarded is set, it can
// safely use t.GetOctetsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OctetsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) GetOctetsForwarded() uint64 {
	if t == nil || t.OctetsForwarded == nil {
		return 0
	}
	return *t.OctetsForwarded
}

// GetPacketsForwarded retrieves the value of the leaf PacketsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PacketsForwarded is set, it can
// safely use t.GetPacketsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PacketsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) GetPacketsForwarded() uint64 {
	if t == nil || t.PacketsForwarded == nil {
		return 0
	}
	return *t.PacketsForwarded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv4Unicast_Ipv4Entry_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast struct {
	ΛMetadata  []ygot.Annotation                                                                                 `path:"@" ygotAnnotation:"true"`
	Ipv6Entry  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry `path:"ipv6-entry" module:"openconfig-network-instance"`
	ΛIpv6Entry []ygot.Annotation                                                                                 `path:"@ipv6-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) IsYANGGoStruct() {
}

// NewIpv6Entry creates a new entry in the Ipv6Entry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) NewIpv6Entry(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv6Entry == nil {
		t.Ipv6Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Ipv6Entry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Ipv6Entry", key)
	}

	t.Ipv6Entry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry{
		Prefix: &Prefix,
	}

	return t.Ipv6Entry[key], nil
}

// RenameIpv6Entry renames an entry in the list Ipv6Entry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) RenameIpv6Entry(oldK, newK string) error {
	if _, ok := t.Ipv6Entry[newK]; ok {
		return fmt.Errorf("key %v already exists in Ipv6Entry", newK)
	}

	e, ok := t.Ipv6Entry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Ipv6Entry", oldK)
	}
	e.Prefix = &newK

	t.Ipv6Entry[newK] = e
	delete(t.Ipv6Entry, oldK)
	return nil
}

// GetOrCreateIpv6EntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) GetOrCreateIpv6EntryMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry {
	if t.Ipv6Entry == nil {
		t.Ipv6Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry)
	}
	return t.Ipv6Entry
}

// GetOrCreateIpv6Entry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) GetOrCreateIpv6Entry(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry {

	key := Prefix

	if v, ok := t.Ipv6Entry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIpv6Entry(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIpv6Entry got unexpected error: %v", err))
	}
	return v
}

// GetIpv6Entry retrieves the value with the specified key from
// the Ipv6Entry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) GetIpv6Entry(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Ipv6Entry[key]; ok {
		return lm
	}
	return nil
}

// AppendIpv6Entry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry struct to the
// list Ipv6Entry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) AppendIpv6Entry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv6Entry == nil {
		t.Ipv6Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry)
	}

	if _, ok := t.Ipv6Entry[key]; ok {
		return fmt.Errorf("duplicate key for list Ipv6Entry %v", key)
	}

	t.Ipv6Entry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Ipv6Entry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry struct {
	ΛMetadata []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	Prefix    *string                                                                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                            `path:"@prefix" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State struct {
	ΛMetadata          []ygot.Annotation                                                                                     `path:"@" ygotAnnotation:"true"`
	Counters           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters          []ygot.Annotation                                                                                     `path:"@counters" ygotAnnotation:"true"`
	DecapsulateHeader  E_OpenconfigAftTypes_EncapsulationHeaderType                                                          `path:"decapsulate-header" module:"openconfig-network-instance"`
	ΛDecapsulateHeader []ygot.Annotation                                                                                     `path:"@decapsulate-header" ygotAnnotation:"true"`
	EntryMetadata      Binary                                                                                                `path:"entry-metadata" module:"openconfig-network-instance"`
	ΛEntryMetadata     []ygot.Annotation                                                                                     `path:"@entry-metadata" ygotAnnotation:"true"`
	OriginProtocol     E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                                         `path:"origin-protocol" module:"openconfig-network-instance"`
	ΛOriginProtocol    []ygot.Annotation                                                                                     `path:"@origin-protocol" ygotAnnotation:"true"`
	Prefix             *string                                                                                               `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                     `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetDecapsulateHeader retrieves the value of the leaf DecapsulateHeader from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateHeader is set, it can
// safely use t.GetDecapsulateHeader() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateHeader == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) GetDecapsulateHeader() E_OpenconfigAftTypes_EncapsulationHeaderType {
	if t == nil || t.DecapsulateHeader == 0 {
		return 0
	}
	return t.DecapsulateHeader
}

// GetEntryMetadata retrieves the value of the leaf EntryMetadata from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntryMetadata is set, it can
// safely use t.GetEntryMetadata() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntryMetadata == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) GetEntryMetadata() Binary {
	if t == nil || t.EntryMetadata == nil {
		return nil
	}
	return t.EntryMetadata
}

// GetOriginProtocol retrieves the value of the leaf OriginProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginProtocol is set, it can
// safely use t.GetOriginProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) GetOriginProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.OriginProtocol == 0 {
		return 0
	}
	return t.OriginProtocol
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OctetsForwarded   *uint64           `path:"octets-forwarded" module:"openconfig-network-instance"`
	ΛOctetsForwarded  []ygot.Annotation `path:"@octets-forwarded" ygotAnnotation:"true"`
	PacketsForwarded  *uint64           `path:"packets-forwarded" module:"openconfig-network-instance"`
	ΛPacketsForwarded []ygot.Annotation `path:"@packets-forwarded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) IsYANGGoStruct() {
}

// GetOctetsForwarded retrieves the value of the leaf OctetsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OctetsForwarded is set, it can
// safely use t.GetOctetsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OctetsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) GetOctetsForwarded() uint64 {
	if t == nil || t.OctetsForwarded == nil {
		return 0
	}
	return *t.OctetsForwarded
}

// GetPacketsForwarded retrieves the value of the leaf PacketsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PacketsForwarded is set, it can
// safely use t.GetPacketsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PacketsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) GetPacketsForwarded() uint64 {
	if t == nil || t.PacketsForwarded == nil {
		return 0
	}
	return *t.PacketsForwarded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Ipv6Unicast_Ipv6Entry_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls represents the /openconfig-network-instance/network-instances/network-instance/afts/mpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	LabelEntry  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry `path:"label-entry" module:"openconfig-network-instance"`
	ΛLabelEntry []ygot.Annotation                                                                                                                                                                      `path:"@label-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) IsYANGGoStruct() {}

// NewLabelEntry creates a new entry in the LabelEntry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) NewLabelEntry(Label OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LabelEntry == nil {
		t.LabelEntry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry)
	}

	key := Label

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LabelEntry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LabelEntry", key)
	}

	t.LabelEntry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry{
		Label: Label,
	}

	return t.LabelEntry[key], nil
}

// RenameLabelEntry renames an entry in the list LabelEntry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) RenameLabelEntry(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union) error {
	if _, ok := t.LabelEntry[newK]; ok {
		return fmt.Errorf("key %v already exists in LabelEntry", newK)
	}

	e, ok := t.LabelEntry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in LabelEntry", oldK)
	}
	e.Label = newK

	t.LabelEntry[newK] = e
	delete(t.LabelEntry, oldK)
	return nil
}

// GetOrCreateLabelEntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) GetOrCreateLabelEntryMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry {
	if t.LabelEntry == nil {
		t.LabelEntry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry)
	}
	return t.LabelEntry
}

// GetOrCreateLabelEntry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) GetOrCreateLabelEntry(Label OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry {

	key := Label

	if v, ok := t.LabelEntry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLabelEntry(Label)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLabelEntry got unexpected error: %v", err))
	}
	return v
}

// GetLabelEntry retrieves the value with the specified key from
// the LabelEntry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) GetLabelEntry(Label OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry {

	if t == nil {
		return nil
	}

	key := Label

	if lm, ok := t.LabelEntry[key]; ok {
		return lm
	}
	return nil
}

// AppendLabelEntry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry struct to the
// list LabelEntry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) AppendLabelEntry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) error {
	key := v.Label

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LabelEntry == nil {
		t.LabelEntry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry)
	}

	if _, ok := t.LabelEntry[key]; ok {
		return fmt.Errorf("duplicate key for list LabelEntry %v", key)
	}

	t.LabelEntry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.LabelEntry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry represents the /openconfig-network-instance/network-instances/network-instance/afts/mpls/label-entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry struct {
	ΛMetadata []ygot.Annotation                                                                                 `path:"@" ygotAnnotation:"true"`
	Label     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union `path:"label" module:"openconfig-network-instance"`
	ΛLabel    []ygot.Annotation                                                                                 `path:"@label" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State            `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) GetLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union {
	if t == nil || t.Label == nil {
		return nil
	}
	return t.Label
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"label": t.Label,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/afts/mpls/label-entry/label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State represents the /openconfig-network-instance/network-instances/network-instance/afts/mpls/label-entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State struct {
	ΛMetadata             []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	Counters              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters                    `path:"counters" module:"openconfig-network-instance"`
	ΛCounters             []ygot.Annotation                                                                                                  `path:"@counters" ygotAnnotation:"true"`
	EntryMetadata         Binary                                                                                                             `path:"entry-metadata" module:"openconfig-network-instance"`
	ΛEntryMetadata        []ygot.Annotation                                                                                                  `path:"@entry-metadata" ygotAnnotation:"true"`
	Label                 OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union                  `path:"label" module:"openconfig-network-instance"`
	ΛLabel                []ygot.Annotation                                                                                                  `path:"@label" ygotAnnotation:"true"`
	PoppedMplsLabelStack  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union `path:"popped-mpls-label-stack" module:"openconfig-network-instance"`
	ΛPoppedMplsLabelStack []ygot.Annotation                                                                                                  `path:"@popped-mpls-label-stack" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetEntryMetadata retrieves the value of the leaf EntryMetadata from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntryMetadata is set, it can
// safely use t.GetEntryMetadata() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntryMetadata == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) GetEntryMetadata() Binary {
	if t == nil || t.EntryMetadata == nil {
		return nil
	}
	return t.EntryMetadata
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) GetLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union {
	if t == nil || t.Label == nil {
		return nil
	}
	return t.Label
}

// GetPoppedMplsLabelStack retrieves the value of the leaf PoppedMplsLabelStack from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PoppedMplsLabelStack is set, it can
// safely use t.GetPoppedMplsLabelStack() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PoppedMplsLabelStack == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) GetPoppedMplsLabelStack() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union {
	if t == nil || t.PoppedMplsLabelStack == nil {
		return nil
	}
	return t.PoppedMplsLabelStack
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Label_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/afts/mpls/label-entry/state/popped-mpls-label-stack within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_PoppedMplsLabelStack_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/afts/mpls/label-entry/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OctetsForwarded   *uint64           `path:"octets-forwarded" module:"openconfig-network-instance"`
	ΛOctetsForwarded  []ygot.Annotation `path:"@octets-forwarded" ygotAnnotation:"true"`
	PacketsForwarded  *uint64           `path:"packets-forwarded" module:"openconfig-network-instance"`
	ΛPacketsForwarded []ygot.Annotation `path:"@packets-forwarded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) IsYANGGoStruct() {
}

// GetOctetsForwarded retrieves the value of the leaf OctetsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OctetsForwarded is set, it can
// safely use t.GetOctetsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OctetsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) GetOctetsForwarded() uint64 {
	if t == nil || t.OctetsForwarded == nil {
		return 0
	}
	return *t.OctetsForwarded
}

// GetPacketsForwarded retrieves the value of the leaf PacketsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PacketsForwarded is set, it can
// safely use t.GetPacketsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PacketsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) GetPacketsForwarded() uint64 {
	if t == nil || t.PacketsForwarded == nil {
		return 0
	}
	return *t.PacketsForwarded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_Mpls_LabelEntry_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups struct {
	ΛMetadata     []ygot.Annotation                                                                                      `path:"@" ygotAnnotation:"true"`
	NextHopGroup  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup `path:"next-hop-group" module:"openconfig-network-instance"`
	ΛNextHopGroup []ygot.Annotation                                                                                      `path:"@next-hop-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) IsYANGGoStruct() {
}

// NewNextHopGroup creates a new entry in the NextHopGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) NewNextHopGroup(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHopGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHopGroup", key)
	}

	t.NextHopGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup{
		Id: &Id,
	}

	return t.NextHopGroup[key], nil
}

// RenameNextHopGroup renames an entry in the list NextHopGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) RenameNextHopGroup(oldK, newK uint64) error {
	if _, ok := t.NextHopGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHopGroup", newK)
	}

	e, ok := t.NextHopGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHopGroup", oldK)
	}
	e.Id = &newK

	t.NextHopGroup[newK] = e
	delete(t.NextHopGroup, oldK)
	return nil
}

// GetOrCreateNextHopGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) GetOrCreateNextHopGroupMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup {
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup)
	}
	return t.NextHopGroup
}

// GetOrCreateNextHopGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) GetOrCreateNextHopGroup(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup {

	key := Id

	if v, ok := t.NextHopGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHopGroup(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHopGroup got unexpected error: %v", err))
	}
	return v
}

// GetNextHopGroup retrieves the value with the specified key from
// the NextHopGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) GetNextHopGroup(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.NextHopGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHopGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup struct to the
// list NextHopGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) AppendNextHopGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup)
	}

	if _, ok := t.NextHopGroup[key]; ok {
		return fmt.Errorf("duplicate key for list NextHopGroup %v", key)
	}

	t.NextHopGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHopGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup struct {
	ΛMetadata    []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	Conditional  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional `path:"conditional" module:"openconfig-network-instance"`
	ΛConditional []ygot.Annotation                                                                                       `path:"@conditional" ygotAnnotation:"true"`
	Id           *uint64                                                                                                 `path:"id" module:"openconfig-network-instance"`
	ΛId          []ygot.Annotation                                                                                       `path:"@id" ygotAnnotation:"true"`
	NextHops     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops    `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops    []ygot.Annotation                                                                                       `path:"@next-hops" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State       `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) IsYANGGoStruct() {
}

// GetOrCreateConditional retrieves the value of the Conditional field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) GetOrCreateConditional() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional {
	if t.Conditional != nil {
		return t.Conditional
	}
	t.Conditional = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional{}
	return t.Conditional
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops{}
	return t.NextHops
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State{}
	return t.State
}

// GetConditional returns the value of the Conditional struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup. If the receiver or the field Conditional is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) GetConditional() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional {
	if t != nil && t.Conditional != nil {
		return t.Conditional
	}
	return nil
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Conditional.PopulateDefaults()
	t.NextHops.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/conditional YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional struct {
	ΛMetadata  []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Condition  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition `path:"condition" module:"openconfig-network-instance"`
	ΛCondition []ygot.Annotation                                                                                                            `path:"@condition" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) IsYANGGoStruct() {
}

// NewCondition creates a new entry in the Condition list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) NewCondition(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Condition == nil {
		t.Condition = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Condition[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Condition", key)
	}

	t.Condition[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition{
		Id: &Id,
	}

	return t.Condition[key], nil
}

// RenameCondition renames an entry in the list Condition within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) RenameCondition(oldK, newK uint64) error {
	if _, ok := t.Condition[newK]; ok {
		return fmt.Errorf("key %v already exists in Condition", newK)
	}

	e, ok := t.Condition[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Condition", oldK)
	}
	e.Id = &newK

	t.Condition[newK] = e
	delete(t.Condition, oldK)
	return nil
}

// GetOrCreateConditionMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) GetOrCreateConditionMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition {
	if t.Condition == nil {
		t.Condition = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition)
	}
	return t.Condition
}

// GetOrCreateCondition retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) GetOrCreateCondition(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition {

	key := Id

	if v, ok := t.Condition[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewCondition(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateCondition got unexpected error: %v", err))
	}
	return v
}

// GetCondition retrieves the value with the specified key from
// the Condition map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) GetCondition(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Condition[key]; ok {
		return lm
	}
	return nil
}

// AppendCondition appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition struct to the
// list Condition of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) AppendCondition(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Condition == nil {
		t.Condition = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition)
	}

	if _, ok := t.Condition[key]; ok {
		return fmt.Errorf("duplicate key for list Condition %v", key)
	}

	t.Condition[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Condition {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/conditional/condition YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition struct {
	ΛMetadata        []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Id               *uint64                                                                                                                           `path:"id" module:"openconfig-network-instance"`
	ΛId              []ygot.Annotation                                                                                                                 `path:"@id" ygotAnnotation:"true"`
	InputInterfaces  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces `path:"input-interfaces" module:"openconfig-network-instance"`
	ΛInputInterfaces []ygot.Annotation                                                                                                                 `path:"@input-interfaces" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) IsYANGGoStruct() {
}

// GetOrCreateInputInterfaces retrieves the value of the InputInterfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) GetOrCreateInputInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces {
	if t.InputInterfaces != nil {
		return t.InputInterfaces
	}
	t.InputInterfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces{}
	return t.InputInterfaces
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State{}
	return t.State
}

// GetInputInterfaces returns the value of the InputInterfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition. If the receiver or the field InputInterfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) GetInputInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces {
	if t != nil && t.InputInterfaces != nil {
		return t.InputInterfaces
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.InputInterfaces.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/conditional/condition/input-interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	InputInterface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface `path:"input-interface" module:"openconfig-network-instance"`
	ΛInputInterface []ygot.Annotation                                                                                                                                           `path:"@input-interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) IsYANGGoStruct() {
}

// NewInputInterface creates a new entry in the InputInterface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) NewInputInterface(Id string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InputInterface == nil {
		t.InputInterface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.InputInterface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list InputInterface", key)
	}

	t.InputInterface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface{
		Id: &Id,
	}

	return t.InputInterface[key], nil
}

// RenameInputInterface renames an entry in the list InputInterface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) RenameInputInterface(oldK, newK string) error {
	if _, ok := t.InputInterface[newK]; ok {
		return fmt.Errorf("key %v already exists in InputInterface", newK)
	}

	e, ok := t.InputInterface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in InputInterface", oldK)
	}
	e.Id = &newK

	t.InputInterface[newK] = e
	delete(t.InputInterface, oldK)
	return nil
}

// GetOrCreateInputInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) GetOrCreateInputInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface {
	if t.InputInterface == nil {
		t.InputInterface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface)
	}
	return t.InputInterface
}

// GetOrCreateInputInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) GetOrCreateInputInterface(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface {

	key := Id

	if v, ok := t.InputInterface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInputInterface(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInputInterface got unexpected error: %v", err))
	}
	return v
}

// GetInputInterface retrieves the value with the specified key from
// the InputInterface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) GetInputInterface(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.InputInterface[key]; ok {
		return lm
	}
	return nil
}

// AppendInputInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface struct to the
// list InputInterface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) AppendInputInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InputInterface == nil {
		t.InputInterface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface)
	}

	if _, ok := t.InputInterface[key]; ok {
		return fmt.Errorf("duplicate key for list InputInterface %v", key)
	}

	t.InputInterface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.InputInterface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/conditional/condition/input-interfaces/input-interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface struct {
	ΛMetadata []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Id        *string                                                                                                                                                `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                                                                                      `path:"@id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/conditional/condition/input-interfaces/input-interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Id            *string           `path:"id" module:"openconfig-network-instance"`
	ΛId           []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) IsYANGGoStruct() {
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_InputInterfaces_InputInterface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/conditional/condition/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dscp          []uint8           `path:"dscp" module:"openconfig-network-instance"`
	ΛDscp         []ygot.Annotation `path:"@dscp" ygotAnnotation:"true"`
	Id            *uint64           `path:"id" module:"openconfig-network-instance"`
	ΛId           []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	NextHopGroup  *uint64           `path:"next-hop-group" module:"openconfig-network-instance"`
	ΛNextHopGroup []ygot.Annotation `path:"@next-hop-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) IsYANGGoStruct() {
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) GetDscp() []uint8 {
	if t == nil || t.Dscp == nil {
		return nil
	}
	return t.Dscp
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetNextHopGroup retrieves the value of the leaf NextHopGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHopGroup is set, it can
// safely use t.GetNextHopGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHopGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) GetNextHopGroup() uint64 {
	if t == nil || t.NextHopGroup == nil {
		return 0
	}
	return *t.NextHopGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_Conditional_Condition_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	NextHop   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                                                       `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) IsYANGGoStruct() {
}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) NewNextHop(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) RenameNextHop(oldK, newK uint64) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) GetOrCreateNextHopMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) GetOrCreateNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) GetNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop struct {
	ΛMetadata []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                            `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                  `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Index     *uint64           `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation `path:"@index" ygotAnnotation:"true"`
	Weight    *uint64           `path:"weight" module:"openconfig-network-instance"`
	ΛWeight   []ygot.Annotation `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) GetWeight() uint64 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hop-groups/next-hop-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BackupNextHopGroup  *uint64           `path:"backup-next-hop-group" module:"openconfig-network-instance"`
	ΛBackupNextHopGroup []ygot.Annotation `path:"@backup-next-hop-group" ygotAnnotation:"true"`
	Color               *uint64           `path:"color" module:"openconfig-network-instance"`
	ΛColor              []ygot.Annotation `path:"@color" ygotAnnotation:"true"`
	Id                  *uint64           `path:"id" module:"openconfig-network-instance"`
	ΛId                 []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	NextHopGroupName    *string           `path:"next-hop-group-name" module:"openconfig-network-instance"`
	ΛNextHopGroupName   []ygot.Annotation `path:"@next-hop-group-name" ygotAnnotation:"true"`
	ProgrammedId        *uint64           `path:"programmed-id" module:"openconfig-network-instance"`
	ΛProgrammedId       []ygot.Annotation `path:"@programmed-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) IsYANGGoStruct() {
}

// GetBackupNextHopGroup retrieves the value of the leaf BackupNextHopGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BackupNextHopGroup is set, it can
// safely use t.GetBackupNextHopGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BackupNextHopGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) GetBackupNextHopGroup() uint64 {
	if t == nil || t.BackupNextHopGroup == nil {
		return 0
	}
	return *t.BackupNextHopGroup
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) GetColor() uint64 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetNextHopGroupName retrieves the value of the leaf NextHopGroupName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHopGroupName is set, it can
// safely use t.GetNextHopGroupName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHopGroupName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) GetNextHopGroupName() string {
	if t == nil || t.NextHopGroupName == nil {
		return ""
	}
	return *t.NextHopGroupName
}

// GetProgrammedId retrieves the value of the leaf ProgrammedId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProgrammedId is set, it can
// safely use t.GetProgrammedId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProgrammedId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) GetProgrammedId() uint64 {
	if t == nil || t.ProgrammedId == nil {
		return 0
	}
	return *t.ProgrammedId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHopGroups_NextHopGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	NextHop   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                            `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) IsYANGGoStruct() {}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) NewNextHop(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) RenameNextHop(oldK, newK uint64) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) GetOrCreateNextHopMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) GetOrCreateNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) GetNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop struct {
	ΛMetadata     []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	Index         *uint64                                                                                        `path:"index" module:"openconfig-network-instance"`
	ΛIndex        []ygot.Annotation                                                                              `path:"@index" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                              `path:"@interface-ref" ygotAnnotation:"true"`
	IpInIp        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp       `path:"ip-in-ip" module:"openconfig-network-instance"`
	ΛIpInIp       []ygot.Annotation                                                                              `path:"@ip-in-ip" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateIpInIp retrieves the value of the IpInIp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) GetOrCreateIpInIp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp {
	if t.IpInIp != nil {
		return t.IpInIp
	}
	t.IpInIp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp{}
	return t.IpInIp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State{}
	return t.State
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetIpInIp returns the value of the IpInIp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop. If the receiver or the field IpInIp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) GetIpInIp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp {
	if t != nil && t.IpInIp != nil {
		return t.IpInIp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.InterfaceRef.PopulateDefaults()
	t.IpInIp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop/ip-in-ip YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp struct {
	ΛMetadata []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop/ip-in-ip/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DstIp     *string           `path:"dst-ip" module:"openconfig-network-instance"`
	ΛDstIp    []ygot.Annotation `path:"@dst-ip" ygotAnnotation:"true"`
	SrcIp     *string           `path:"src-ip" module:"openconfig-network-instance"`
	ΛSrcIp    []ygot.Annotation `path:"@src-ip" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) IsYANGGoStruct() {
}

// GetDstIp retrieves the value of the leaf DstIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DstIp is set, it can
// safely use t.GetDstIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DstIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) GetDstIp() string {
	if t == nil || t.DstIp == nil {
		return ""
	}
	return *t.DstIp
}

// GetSrcIp retrieves the value of the leaf SrcIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrcIp is set, it can
// safely use t.GetSrcIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrcIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) GetSrcIp() string {
	if t == nil || t.SrcIp == nil {
		return ""
	}
	return *t.SrcIp
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_IpInIp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State struct {
	ΛMetadata             []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Counters              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters                    `path:"counters" module:"openconfig-network-instance"`
	ΛCounters             []ygot.Annotation                                                                                                   `path:"@counters" ygotAnnotation:"true"`
	DecapsulateHeader     E_OpenconfigAftTypes_EncapsulationHeaderType                                                                        `path:"decapsulate-header" module:"openconfig-network-instance"`
	ΛDecapsulateHeader    []ygot.Annotation                                                                                                   `path:"@decapsulate-header" ygotAnnotation:"true"`
	EncapsulateHeader     E_OpenconfigAftTypes_EncapsulationHeaderType                                                                        `path:"encapsulate-header" module:"openconfig-network-instance"`
	ΛEncapsulateHeader    []ygot.Annotation                                                                                                   `path:"@encapsulate-header" ygotAnnotation:"true"`
	Index                 *uint64                                                                                                             `path:"index" module:"openconfig-network-instance"`
	ΛIndex                []ygot.Annotation                                                                                                   `path:"@index" ygotAnnotation:"true"`
	IpAddress             *string                                                                                                             `path:"ip-address" module:"openconfig-network-instance"`
	ΛIpAddress            []ygot.Annotation                                                                                                   `path:"@ip-address" ygotAnnotation:"true"`
	LspName               *string                                                                                                             `path:"lsp-name" module:"openconfig-network-instance"`
	ΛLspName              []ygot.Annotation                                                                                                   `path:"@lsp-name" ygotAnnotation:"true"`
	MacAddress            *string                                                                                                             `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress           []ygot.Annotation                                                                                                   `path:"@mac-address" ygotAnnotation:"true"`
	OriginProtocol        E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                                                       `path:"origin-protocol" module:"openconfig-network-instance"`
	ΛOriginProtocol       []ygot.Annotation                                                                                                   `path:"@origin-protocol" ygotAnnotation:"true"`
	PopTopLabel           *bool                                                                                                               `path:"pop-top-label" module:"openconfig-network-instance"`
	ΛPopTopLabel          []ygot.Annotation                                                                                                   `path:"@pop-top-label" ygotAnnotation:"true"`
	ProgrammedIndex       *uint64                                                                                                             `path:"programmed-index" module:"openconfig-network-instance"`
	ΛProgrammedIndex      []ygot.Annotation                                                                                                   `path:"@programmed-index" ygotAnnotation:"true"`
	PushedMplsLabelStack  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union `path:"pushed-mpls-label-stack" module:"openconfig-network-instance"`
	ΛPushedMplsLabelStack []ygot.Annotation                                                                                                   `path:"@pushed-mpls-label-stack" ygotAnnotation:"true"`
	TunnelSrcIpAddress    *string                                                                                                             `path:"tunnel-src-ip-address" module:"openconfig-network-instance"`
	ΛTunnelSrcIpAddress   []ygot.Annotation                                                                                                   `path:"@tunnel-src-ip-address" ygotAnnotation:"true"`
	VniLabel              *uint32                                                                                                             `path:"vni-label" module:"openconfig-network-instance"`
	ΛVniLabel             []ygot.Annotation                                                                                                   `path:"@vni-label" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetDecapsulateHeader retrieves the value of the leaf DecapsulateHeader from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateHeader is set, it can
// safely use t.GetDecapsulateHeader() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateHeader == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetDecapsulateHeader() E_OpenconfigAftTypes_EncapsulationHeaderType {
	if t == nil || t.DecapsulateHeader == 0 {
		return 0
	}
	return t.DecapsulateHeader
}

// GetEncapsulateHeader retrieves the value of the leaf EncapsulateHeader from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EncapsulateHeader is set, it can
// safely use t.GetEncapsulateHeader() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EncapsulateHeader == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetEncapsulateHeader() E_OpenconfigAftTypes_EncapsulationHeaderType {
	if t == nil || t.EncapsulateHeader == 0 {
		return 0
	}
	return t.EncapsulateHeader
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetIpAddress retrieves the value of the leaf IpAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpAddress is set, it can
// safely use t.GetIpAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetIpAddress() string {
	if t == nil || t.IpAddress == nil {
		return ""
	}
	return *t.IpAddress
}

// GetLspName retrieves the value of the leaf LspName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspName is set, it can
// safely use t.GetLspName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetLspName() string {
	if t == nil || t.LspName == nil {
		return ""
	}
	return *t.LspName
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetOriginProtocol retrieves the value of the leaf OriginProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginProtocol is set, it can
// safely use t.GetOriginProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetOriginProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.OriginProtocol == 0 {
		return 0
	}
	return t.OriginProtocol
}

// GetPopTopLabel retrieves the value of the leaf PopTopLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PopTopLabel is set, it can
// safely use t.GetPopTopLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PopTopLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetPopTopLabel() bool {
	if t == nil || t.PopTopLabel == nil {
		return false
	}
	return *t.PopTopLabel
}

// GetProgrammedIndex retrieves the value of the leaf ProgrammedIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProgrammedIndex is set, it can
// safely use t.GetProgrammedIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProgrammedIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetProgrammedIndex() uint64 {
	if t == nil || t.ProgrammedIndex == nil {
		return 0
	}
	return *t.ProgrammedIndex
}

// GetPushedMplsLabelStack retrieves the value of the leaf PushedMplsLabelStack from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushedMplsLabelStack is set, it can
// safely use t.GetPushedMplsLabelStack() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushedMplsLabelStack == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetPushedMplsLabelStack() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union {
	if t == nil || t.PushedMplsLabelStack == nil {
		return nil
	}
	return t.PushedMplsLabelStack
}

// GetTunnelSrcIpAddress retrieves the value of the leaf TunnelSrcIpAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TunnelSrcIpAddress is set, it can
// safely use t.GetTunnelSrcIpAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TunnelSrcIpAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetTunnelSrcIpAddress() string {
	if t == nil || t.TunnelSrcIpAddress == nil {
		return ""
	}
	return *t.TunnelSrcIpAddress
}

// GetVniLabel retrieves the value of the leaf VniLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VniLabel is set, it can
// safely use t.GetVniLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VniLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) GetVniLabel() uint32 {
	if t == nil || t.VniLabel == nil {
		return 0
	}
	return *t.VniLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PopTopLabel == nil {
		var v bool = false
		t.PopTopLabel = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop/state/pushed-mpls-label-stack within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_PushedMplsLabelStack_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/afts/next-hops/next-hop/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OctetsForwarded   *uint64           `path:"octets-forwarded" module:"openconfig-network-instance"`
	ΛOctetsForwarded  []ygot.Annotation `path:"@octets-forwarded" ygotAnnotation:"true"`
	PacketsForwarded  *uint64           `path:"packets-forwarded" module:"openconfig-network-instance"`
	ΛPacketsForwarded []ygot.Annotation `path:"@packets-forwarded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) IsYANGGoStruct() {
}

// GetOctetsForwarded retrieves the value of the leaf OctetsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OctetsForwarded is set, it can
// safely use t.GetOctetsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OctetsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) GetOctetsForwarded() uint64 {
	if t == nil || t.OctetsForwarded == nil {
		return 0
	}
	return *t.OctetsForwarded
}

// GetPacketsForwarded retrieves the value of the leaf PacketsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PacketsForwarded is set, it can
// safely use t.GetPacketsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PacketsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) GetPacketsForwarded() uint64 {
	if t == nil || t.PacketsForwarded == nil {
		return 0
	}
	return *t.PacketsForwarded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_NextHops_NextHop_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding represents the /openconfig-network-instance/network-instances/network-instance/afts/policy-forwarding YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding struct {
	ΛMetadata              []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	PolicyForwardingEntry  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry `path:"policy-forwarding-entry" module:"openconfig-network-instance"`
	ΛPolicyForwardingEntry []ygot.Annotation                                                                                                  `path:"@policy-forwarding-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) IsYANGGoStruct() {
}

// NewPolicyForwardingEntry creates a new entry in the PolicyForwardingEntry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) NewPolicyForwardingEntry(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PolicyForwardingEntry == nil {
		t.PolicyForwardingEntry = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PolicyForwardingEntry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PolicyForwardingEntry", key)
	}

	t.PolicyForwardingEntry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry{
		Index: &Index,
	}

	return t.PolicyForwardingEntry[key], nil
}

// RenamePolicyForwardingEntry renames an entry in the list PolicyForwardingEntry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) RenamePolicyForwardingEntry(oldK, newK uint64) error {
	if _, ok := t.PolicyForwardingEntry[newK]; ok {
		return fmt.Errorf("key %v already exists in PolicyForwardingEntry", newK)
	}

	e, ok := t.PolicyForwardingEntry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PolicyForwardingEntry", oldK)
	}
	e.Index = &newK

	t.PolicyForwardingEntry[newK] = e
	delete(t.PolicyForwardingEntry, oldK)
	return nil
}

// GetOrCreatePolicyForwardingEntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) GetOrCreatePolicyForwardingEntryMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry {
	if t.PolicyForwardingEntry == nil {
		t.PolicyForwardingEntry = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry)
	}
	return t.PolicyForwardingEntry
}

// GetOrCreatePolicyForwardingEntry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) GetOrCreatePolicyForwardingEntry(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry {

	key := Index

	if v, ok := t.PolicyForwardingEntry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPolicyForwardingEntry(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePolicyForwardingEntry got unexpected error: %v", err))
	}
	return v
}

// GetPolicyForwardingEntry retrieves the value with the specified key from
// the PolicyForwardingEntry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) GetPolicyForwardingEntry(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.PolicyForwardingEntry[key]; ok {
		return lm
	}
	return nil
}

// AppendPolicyForwardingEntry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry struct to the
// list PolicyForwardingEntry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) AppendPolicyForwardingEntry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PolicyForwardingEntry == nil {
		t.PolicyForwardingEntry = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry)
	}

	if _, ok := t.PolicyForwardingEntry[key]; ok {
		return fmt.Errorf("duplicate key for list PolicyForwardingEntry %v", key)
	}

	t.PolicyForwardingEntry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PolicyForwardingEntry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry represents the /openconfig-network-instance/network-instances/network-instance/afts/policy-forwarding/policy-forwarding-entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry struct {
	ΛMetadata []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                       `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                             `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State represents the /openconfig-network-instance/network-instances/network-instance/afts/policy-forwarding/policy-forwarding-entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Counters       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters        `path:"counters" module:"openconfig-network-instance"`
	ΛCounters      []ygot.Annotation                                                                                                             `path:"@counters" ygotAnnotation:"true"`
	EntryMetadata  Binary                                                                                                                        `path:"entry-metadata" module:"openconfig-network-instance"`
	ΛEntryMetadata []ygot.Annotation                                                                                                             `path:"@entry-metadata" ygotAnnotation:"true"`
	Index          *uint64                                                                                                                       `path:"index" module:"openconfig-network-instance"`
	ΛIndex         []ygot.Annotation                                                                                                             `path:"@index" ygotAnnotation:"true"`
	IpDscp         *uint8                                                                                                                        `path:"ip-dscp" module:"openconfig-network-instance"`
	ΛIpDscp        []ygot.Annotation                                                                                                             `path:"@ip-dscp" ygotAnnotation:"true"`
	IpPrefix       *string                                                                                                                       `path:"ip-prefix" module:"openconfig-network-instance"`
	ΛIpPrefix      []ygot.Annotation                                                                                                             `path:"@ip-prefix" ygotAnnotation:"true"`
	IpProtocol     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union `path:"ip-protocol" module:"openconfig-network-instance"`
	ΛIpProtocol    []ygot.Annotation                                                                                                             `path:"@ip-protocol" ygotAnnotation:"true"`
	L4DstPort      *uint16                                                                                                                       `path:"l4-dst-port" module:"openconfig-network-instance"`
	ΛL4DstPort     []ygot.Annotation                                                                                                             `path:"@l4-dst-port" ygotAnnotation:"true"`
	L4SrcPort      *uint16                                                                                                                       `path:"l4-src-port" module:"openconfig-network-instance"`
	ΛL4SrcPort     []ygot.Annotation                                                                                                             `path:"@l4-src-port" ygotAnnotation:"true"`
	MacAddress     *string                                                                                                                       `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress    []ygot.Annotation                                                                                                             `path:"@mac-address" ygotAnnotation:"true"`
	MplsLabel      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union  `path:"mpls-label" module:"openconfig-network-instance"`
	ΛMplsLabel     []ygot.Annotation                                                                                                             `path:"@mpls-label" ygotAnnotation:"true"`
	MplsTc         *uint8                                                                                                                        `path:"mpls-tc" module:"openconfig-network-instance"`
	ΛMplsTc        []ygot.Annotation                                                                                                             `path:"@mpls-tc" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetEntryMetadata retrieves the value of the leaf EntryMetadata from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntryMetadata is set, it can
// safely use t.GetEntryMetadata() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntryMetadata == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetEntryMetadata() Binary {
	if t == nil || t.EntryMetadata == nil {
		return nil
	}
	return t.EntryMetadata
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetIpDscp retrieves the value of the leaf IpDscp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpDscp is set, it can
// safely use t.GetIpDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpDscp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetIpDscp() uint8 {
	if t == nil || t.IpDscp == nil {
		return 0
	}
	return *t.IpDscp
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetIpProtocol retrieves the value of the leaf IpProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpProtocol is set, it can
// safely use t.GetIpProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetIpProtocol() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union {
	if t == nil || t.IpProtocol == nil {
		return nil
	}
	return t.IpProtocol
}

// GetL4DstPort retrieves the value of the leaf L4DstPort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if L4DstPort is set, it can
// safely use t.GetL4DstPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.L4DstPort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetL4DstPort() uint16 {
	if t == nil || t.L4DstPort == nil {
		return 0
	}
	return *t.L4DstPort
}

// GetL4SrcPort retrieves the value of the leaf L4SrcPort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if L4SrcPort is set, it can
// safely use t.GetL4SrcPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.L4SrcPort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetL4SrcPort() uint16 {
	if t == nil || t.L4SrcPort == nil {
		return 0
	}
	return *t.L4SrcPort
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetMplsLabel retrieves the value of the leaf MplsLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabel is set, it can
// safely use t.GetMplsLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetMplsLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union {
	if t == nil || t.MplsLabel == nil {
		return nil
	}
	return t.MplsLabel
}

// GetMplsTc retrieves the value of the leaf MplsTc from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsTc is set, it can
// safely use t.GetMplsTc() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsTc == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) GetMplsTc() uint8 {
	if t == nil || t.MplsTc == nil {
		return 0
	}
	return *t.MplsTc
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/afts/policy-forwarding/policy-forwarding-entry/state/ip-protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union ensures that UnionUint8
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_IpProtocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/afts/policy-forwarding/policy-forwarding-entry/state/mpls-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_MplsLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/afts/policy-forwarding/policy-forwarding-entry/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OctetsForwarded   *uint64           `path:"octets-forwarded" module:"openconfig-network-instance"`
	ΛOctetsForwarded  []ygot.Annotation `path:"@octets-forwarded" ygotAnnotation:"true"`
	PacketsForwarded  *uint64           `path:"packets-forwarded" module:"openconfig-network-instance"`
	ΛPacketsForwarded []ygot.Annotation `path:"@packets-forwarded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) IsYANGGoStruct() {
}

// GetOctetsForwarded retrieves the value of the leaf OctetsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OctetsForwarded is set, it can
// safely use t.GetOctetsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OctetsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) GetOctetsForwarded() uint64 {
	if t == nil || t.OctetsForwarded == nil {
		return 0
	}
	return *t.OctetsForwarded
}

// GetPacketsForwarded retrieves the value of the leaf PacketsForwarded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PacketsForwarded is set, it can
// safely use t.GetPacketsForwarded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PacketsForwarded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) GetPacketsForwarded() uint64 {
	if t == nil || t.PacketsForwarded == nil {
		return 0
	}
	return *t.PacketsForwarded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_PolicyForwarding_PolicyForwardingEntry_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced represents the /openconfig-network-instance/network-instances/network-instance/afts/state-synced YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced struct {
	ΛMetadata []ygot.Annotation                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State represents the /openconfig-network-instance/network-instances/network-instance/afts/state-synced/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Ipv4Unicast  *bool             `path:"ipv4-unicast" module:"openconfig-network-instance"`
	ΛIpv4Unicast []ygot.Annotation `path:"@ipv4-unicast" ygotAnnotation:"true"`
	Ipv6Unicast  *bool             `path:"ipv6-unicast" module:"openconfig-network-instance"`
	ΛIpv6Unicast []ygot.Annotation `path:"@ipv6-unicast" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) IsYANGGoStruct() {
}

// GetIpv4Unicast retrieves the value of the leaf Ipv4Unicast from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv4Unicast is set, it can
// safely use t.GetIpv4Unicast() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv4Unicast == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) GetIpv4Unicast() bool {
	if t == nil || t.Ipv4Unicast == nil {
		return false
	}
	return *t.Ipv4Unicast
}

// GetIpv6Unicast retrieves the value of the leaf Ipv6Unicast from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6Unicast is set, it can
// safely use t.GetIpv6Unicast() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6Unicast == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) GetIpv6Unicast() bool {
	if t == nil || t.Ipv6Unicast == nil {
		return false
	}
	return *t.Ipv6Unicast
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Ipv4Unicast == nil {
		var v bool = false
		t.Ipv4Unicast = &v
	}
	if t.Ipv6Unicast == nil {
		var v bool = false
		t.Ipv6Unicast = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Afts_StateSynced_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config represents the /openconfig-network-instance/network-instances/network-instance/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config struct {
	ΛMetadata                []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	Description              *string                                                `path:"description" module:"openconfig-network-instance"`
	ΛDescription             []ygot.Annotation                                      `path:"@description" ygotAnnotation:"true"`
	FallbackNetworkInstance  *string                                                `path:"fallback-network-instance" module:"openconfig-network-instance"`
	ΛFallbackNetworkInstance []ygot.Annotation                                      `path:"@fallback-network-instance" ygotAnnotation:"true"`
	Name                     *string                                                `path:"name" module:"openconfig-network-instance"`
	ΛName                    []ygot.Annotation                                      `path:"@name" ygotAnnotation:"true"`
	RouteDistinguisher       *string                                                `path:"route-distinguisher" module:"openconfig-network-instance"`
	ΛRouteDistinguisher      []ygot.Annotation                                      `path:"@route-distinguisher" ygotAnnotation:"true"`
	RouterId                 *string                                                `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId                []ygot.Annotation                                      `path:"@router-id" ygotAnnotation:"true"`
	Type                     E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType                    []ygot.Annotation                                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetFallbackNetworkInstance retrieves the value of the leaf FallbackNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FallbackNetworkInstance is set, it can
// safely use t.GetFallbackNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FallbackNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) GetFallbackNetworkInstance() string {
	if t == nil || t.FallbackNetworkInstance == nil {
		return ""
	}
	return *t.FallbackNetworkInstance
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetRouteDistinguisher retrieves the value of the leaf RouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteDistinguisher is set, it can
// safely use t.GetRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) GetRouteDistinguisher() string {
	if t == nil || t.RouteDistinguisher == nil {
		return ""
	}
	return *t.RouteDistinguisher
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) GetType() E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints represents the /openconfig-network-instance/network-instances/network-instance/connection-points YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints struct {
	ΛMetadata        []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	ConnectionPoint  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint `path:"connection-point" module:"openconfig-network-instance"`
	ΛConnectionPoint []ygot.Annotation                                                                                       `path:"@connection-point" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) IsYANGGoStruct() {
}

// NewConnectionPoint creates a new entry in the ConnectionPoint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) NewConnectionPoint(ConnectionPointId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionPoint == nil {
		t.ConnectionPoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint)
	}

	key := ConnectionPointId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionPoint", key)
	}

	t.ConnectionPoint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint{
		ConnectionPointId: &ConnectionPointId,
	}

	return t.ConnectionPoint[key], nil
}

// RenameConnectionPoint renames an entry in the list ConnectionPoint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) RenameConnectionPoint(oldK, newK string) error {
	if _, ok := t.ConnectionPoint[newK]; ok {
		return fmt.Errorf("key %v already exists in ConnectionPoint", newK)
	}

	e, ok := t.ConnectionPoint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ConnectionPoint", oldK)
	}
	e.ConnectionPointId = &newK

	t.ConnectionPoint[newK] = e
	delete(t.ConnectionPoint, oldK)
	return nil
}

// GetOrCreateConnectionPointMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) GetOrCreateConnectionPointMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint {
	if t.ConnectionPoint == nil {
		t.ConnectionPoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint)
	}
	return t.ConnectionPoint
}

// GetOrCreateConnectionPoint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) GetOrCreateConnectionPoint(ConnectionPointId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint {

	key := ConnectionPointId

	if v, ok := t.ConnectionPoint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewConnectionPoint(ConnectionPointId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateConnectionPoint got unexpected error: %v", err))
	}
	return v
}

// GetConnectionPoint retrieves the value with the specified key from
// the ConnectionPoint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) GetConnectionPoint(ConnectionPointId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint {

	if t == nil {
		return nil
	}

	key := ConnectionPointId

	if lm, ok := t.ConnectionPoint[key]; ok {
		return lm
	}
	return nil
}

// AppendConnectionPoint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint struct to the
// list ConnectionPoint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) AppendConnectionPoint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) error {
	if v.ConnectionPointId == nil {
		return fmt.Errorf("invalid nil key received for ConnectionPointId")
	}

	key := *v.ConnectionPointId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionPoint == nil {
		t.ConnectionPoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint)
	}

	if _, ok := t.ConnectionPoint[key]; ok {
		return fmt.Errorf("duplicate key for list ConnectionPoint %v", key)
	}

	t.ConnectionPoint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ConnectionPoint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint struct {
	ΛMetadata          []ygot.Annotation                                                                                      `path:"@" ygotAnnotation:"true"`
	Config             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config    `path:"config" module:"openconfig-network-instance"`
	ΛConfig            []ygot.Annotation                                                                                      `path:"@config" ygotAnnotation:"true"`
	ConnectionPointId  *string                                                                                                `path:"connection-point-id" module:"openconfig-network-instance"`
	ΛConnectionPointId []ygot.Annotation                                                                                      `path:"@connection-point-id" ygotAnnotation:"true"`
	Endpoints          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints `path:"endpoints" module:"openconfig-network-instance"`
	ΛEndpoints         []ygot.Annotation                                                                                      `path:"@endpoints" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State     `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config{}
	return t.Config
}

// GetOrCreateEndpoints retrieves the value of the Endpoints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) GetOrCreateEndpoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints {
	if t.Endpoints != nil {
		return t.Endpoints
	}
	t.Endpoints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints{}
	return t.Endpoints
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEndpoints returns the value of the Endpoints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint. If the receiver or the field Endpoints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) GetEndpoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints {
	if t != nil && t.Endpoints != nil {
		return t.Endpoints
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetConnectionPointId retrieves the value of the leaf ConnectionPointId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionPointId is set, it can
// safely use t.GetConnectionPointId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionPointId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) GetConnectionPointId() string {
	if t == nil || t.ConnectionPointId == nil {
		return ""
	}
	return *t.ConnectionPointId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Endpoints.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionPointId == nil {
		return nil, fmt.Errorf("nil value for key ConnectionPointId")
	}

	return map[string]interface{}{
		"connection-point-id": *t.ConnectionPointId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ConnectionPointId  *string           `path:"connection-point-id" module:"openconfig-network-instance"`
	ΛConnectionPointId []ygot.Annotation `path:"@connection-point-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config) IsYANGGoStruct() {
}

// GetConnectionPointId retrieves the value of the leaf ConnectionPointId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionPointId is set, it can
// safely use t.GetConnectionPointId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionPointId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config) GetConnectionPointId() string {
	if t == nil || t.ConnectionPointId == nil {
		return ""
	}
	return *t.ConnectionPointId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Endpoint  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint []ygot.Annotation                                                                                                          `path:"@endpoint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) IsYANGGoStruct() {
}

// NewEndpoint creates a new entry in the Endpoint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) NewEndpoint(EndpointId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Endpoint == nil {
		t.Endpoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint)
	}

	key := EndpointId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Endpoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Endpoint", key)
	}

	t.Endpoint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint{
		EndpointId: &EndpointId,
	}

	return t.Endpoint[key], nil
}

// RenameEndpoint renames an entry in the list Endpoint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) RenameEndpoint(oldK, newK string) error {
	if _, ok := t.Endpoint[newK]; ok {
		return fmt.Errorf("key %v already exists in Endpoint", newK)
	}

	e, ok := t.Endpoint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Endpoint", oldK)
	}
	e.EndpointId = &newK

	t.Endpoint[newK] = e
	delete(t.Endpoint, oldK)
	return nil
}

// GetOrCreateEndpointMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) GetOrCreateEndpointMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint {
	if t.Endpoint == nil {
		t.Endpoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint)
	}
	return t.Endpoint
}

// GetOrCreateEndpoint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) GetOrCreateEndpoint(EndpointId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint {

	key := EndpointId

	if v, ok := t.Endpoint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEndpoint(EndpointId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEndpoint got unexpected error: %v", err))
	}
	return v
}

// GetEndpoint retrieves the value with the specified key from
// the Endpoint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) GetEndpoint(EndpointId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint {

	if t == nil {
		return nil
	}

	key := EndpointId

	if lm, ok := t.Endpoint[key]; ok {
		return lm
	}
	return nil
}

// AppendEndpoint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint struct to the
// list Endpoint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) AppendEndpoint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) error {
	if v.EndpointId == nil {
		return fmt.Errorf("invalid nil key received for EndpointId")
	}

	key := *v.EndpointId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Endpoint == nil {
		t.Endpoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint)
	}

	if _, ok := t.Endpoint[key]; ok {
		return fmt.Errorf("duplicate key for list Endpoint %v", key)
	}

	t.Endpoint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Endpoint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint struct {
	ΛMetadata   []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	EndpointId  *string                                                                                                                `path:"endpoint-id" module:"openconfig-network-instance"`
	ΛEndpointId []ygot.Annotation                                                                                                      `path:"@endpoint-id" ygotAnnotation:"true"`
	Local       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local  `path:"local" module:"openconfig-network-instance"`
	ΛLocal      []ygot.Annotation                                                                                                      `path:"@local" ygotAnnotation:"true"`
	Remote      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote `path:"remote" module:"openconfig-network-instance"`
	ΛRemote     []ygot.Annotation                                                                                                      `path:"@remote" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State  `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
	Vxlan       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan  `path:"vxlan" module:"openconfig-network-instance"`
	ΛVxlan      []ygot.Annotation                                                                                                      `path:"@vxlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config{}
	return t.Config
}

// GetOrCreateLocal retrieves the value of the Local field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetOrCreateLocal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local {
	if t.Local != nil {
		return t.Local
	}
	t.Local = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local{}
	return t.Local
}

// GetOrCreateRemote retrieves the value of the Remote field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetOrCreateRemote() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote {
	if t.Remote != nil {
		return t.Remote
	}
	t.Remote = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote{}
	return t.Remote
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State{}
	return t.State
}

// GetOrCreateVxlan retrieves the value of the Vxlan field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetOrCreateVxlan() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan {
	if t.Vxlan != nil {
		return t.Vxlan
	}
	t.Vxlan = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan{}
	return t.Vxlan
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLocal returns the value of the Local struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint. If the receiver or the field Local is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetLocal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local {
	if t != nil && t.Local != nil {
		return t.Local
	}
	return nil
}

// GetRemote returns the value of the Remote struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint. If the receiver or the field Remote is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetRemote() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote {
	if t != nil && t.Remote != nil {
		return t.Remote
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetVxlan returns the value of the Vxlan struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint. If the receiver or the field Vxlan is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetVxlan() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan {
	if t != nil && t.Vxlan != nil {
		return t.Vxlan
	}
	return nil
}

// GetEndpointId retrieves the value of the leaf EndpointId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndpointId is set, it can
// safely use t.GetEndpointId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndpointId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) GetEndpointId() string {
	if t == nil || t.EndpointId == nil {
		return ""
	}
	return *t.EndpointId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Local.PopulateDefaults()
	t.Remote.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Vxlan.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.EndpointId == nil {
		return nil, fmt.Errorf("nil value for key EndpointId")
	}

	return map[string]interface{}{
		"endpoint-id": *t.EndpointId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config struct {
	ΛMetadata   []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	EndpointId  *string                                        `path:"endpoint-id" module:"openconfig-network-instance"`
	ΛEndpointId []ygot.Annotation                              `path:"@endpoint-id" ygotAnnotation:"true"`
	Precedence  *uint16                                        `path:"precedence" module:"openconfig-network-instance"`
	ΛPrecedence []ygot.Annotation                              `path:"@precedence" ygotAnnotation:"true"`
	Type        E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType       []ygot.Annotation                              `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) IsYANGGoStruct() {
}

// GetEndpointId retrieves the value of the leaf EndpointId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndpointId is set, it can
// safely use t.GetEndpointId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndpointId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) GetEndpointId() string {
	if t == nil || t.EndpointId == nil {
		return ""
	}
	return *t.EndpointId
}

// GetPrecedence retrieves the value of the leaf Precedence from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Precedence is set, it can
// safely use t.GetPrecedence() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Precedence == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) GetPrecedence() uint16 {
	if t == nil || t.Precedence == nil {
		return 0
	}
	return *t.Precedence
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) GetType() E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/local YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/local/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface             *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface            []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	SiteId                *uint16           `path:"site-id" module:"openconfig-network-instance"`
	ΛSiteId               []ygot.Annotation `path:"@site-id" ygotAnnotation:"true"`
	SiteLabelBlockOffset  *uint16           `path:"site-label-block-offset" module:"openconfig-network-instance"`
	ΛSiteLabelBlockOffset []ygot.Annotation `path:"@site-label-block-offset" ygotAnnotation:"true"`
	SiteLabelBlockSize    *uint16           `path:"site-label-block-size" module:"openconfig-network-instance"`
	ΛSiteLabelBlockSize   []ygot.Annotation `path:"@site-label-block-size" ygotAnnotation:"true"`
	Subinterface          *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface         []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSiteId retrieves the value of the leaf SiteId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteId is set, it can
// safely use t.GetSiteId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) GetSiteId() uint16 {
	if t == nil || t.SiteId == nil {
		return 0
	}
	return *t.SiteId
}

// GetSiteLabelBlockOffset retrieves the value of the leaf SiteLabelBlockOffset from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteLabelBlockOffset is set, it can
// safely use t.GetSiteLabelBlockOffset() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteLabelBlockOffset == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) GetSiteLabelBlockOffset() uint16 {
	if t == nil || t.SiteLabelBlockOffset == nil {
		return 0
	}
	return *t.SiteLabelBlockOffset
}

// GetSiteLabelBlockSize retrieves the value of the leaf SiteLabelBlockSize from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteLabelBlockSize is set, it can
// safely use t.GetSiteLabelBlockSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteLabelBlockSize == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) GetSiteLabelBlockSize() uint16 {
	if t == nil || t.SiteLabelBlockSize == nil {
		return 0
	}
	return *t.SiteLabelBlockSize
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/local/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface             *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface            []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	SiteId                *uint16           `path:"site-id" module:"openconfig-network-instance"`
	ΛSiteId               []ygot.Annotation `path:"@site-id" ygotAnnotation:"true"`
	SiteLabelBlockOffset  *uint16           `path:"site-label-block-offset" module:"openconfig-network-instance"`
	ΛSiteLabelBlockOffset []ygot.Annotation `path:"@site-label-block-offset" ygotAnnotation:"true"`
	SiteLabelBlockSize    *uint16           `path:"site-label-block-size" module:"openconfig-network-instance"`
	ΛSiteLabelBlockSize   []ygot.Annotation `path:"@site-label-block-size" ygotAnnotation:"true"`
	Subinterface          *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface         []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSiteId retrieves the value of the leaf SiteId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteId is set, it can
// safely use t.GetSiteId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) GetSiteId() uint16 {
	if t == nil || t.SiteId == nil {
		return 0
	}
	return *t.SiteId
}

// GetSiteLabelBlockOffset retrieves the value of the leaf SiteLabelBlockOffset from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteLabelBlockOffset is set, it can
// safely use t.GetSiteLabelBlockOffset() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteLabelBlockOffset == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) GetSiteLabelBlockOffset() uint16 {
	if t == nil || t.SiteLabelBlockOffset == nil {
		return 0
	}
	return *t.SiteLabelBlockOffset
}

// GetSiteLabelBlockSize retrieves the value of the leaf SiteLabelBlockSize from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteLabelBlockSize is set, it can
// safely use t.GetSiteLabelBlockSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteLabelBlockSize == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) GetSiteLabelBlockSize() uint16 {
	if t == nil || t.SiteLabelBlockSize == nil {
		return 0
	}
	return *t.SiteLabelBlockSize
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Local_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/remote YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote struct {
	ΛMetadata []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/remote/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RemoteSystem              *string           `path:"remote-system" module:"openconfig-network-instance"`
	ΛRemoteSystem             []ygot.Annotation `path:"@remote-system" ygotAnnotation:"true"`
	SiteId                    *uint16           `path:"site-id" module:"openconfig-network-instance"`
	ΛSiteId                   []ygot.Annotation `path:"@site-id" ygotAnnotation:"true"`
	VirtualCircuitIdentifier  *uint32           `path:"virtual-circuit-identifier" module:"openconfig-network-instance"`
	ΛVirtualCircuitIdentifier []ygot.Annotation `path:"@virtual-circuit-identifier" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) IsYANGGoStruct() {
}

// GetRemoteSystem retrieves the value of the leaf RemoteSystem from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteSystem is set, it can
// safely use t.GetRemoteSystem() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteSystem == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) GetRemoteSystem() string {
	if t == nil || t.RemoteSystem == nil {
		return ""
	}
	return *t.RemoteSystem
}

// GetSiteId retrieves the value of the leaf SiteId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteId is set, it can
// safely use t.GetSiteId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) GetSiteId() uint16 {
	if t == nil || t.SiteId == nil {
		return 0
	}
	return *t.SiteId
}

// GetVirtualCircuitIdentifier retrieves the value of the leaf VirtualCircuitIdentifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VirtualCircuitIdentifier is set, it can
// safely use t.GetVirtualCircuitIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VirtualCircuitIdentifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) GetVirtualCircuitIdentifier() uint32 {
	if t == nil || t.VirtualCircuitIdentifier == nil {
		return 0
	}
	return *t.VirtualCircuitIdentifier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/remote/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RemoteSystem              *string           `path:"remote-system" module:"openconfig-network-instance"`
	ΛRemoteSystem             []ygot.Annotation `path:"@remote-system" ygotAnnotation:"true"`
	SiteId                    *uint16           `path:"site-id" module:"openconfig-network-instance"`
	ΛSiteId                   []ygot.Annotation `path:"@site-id" ygotAnnotation:"true"`
	VirtualCircuitIdentifier  *uint32           `path:"virtual-circuit-identifier" module:"openconfig-network-instance"`
	ΛVirtualCircuitIdentifier []ygot.Annotation `path:"@virtual-circuit-identifier" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) IsYANGGoStruct() {
}

// GetRemoteSystem retrieves the value of the leaf RemoteSystem from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteSystem is set, it can
// safely use t.GetRemoteSystem() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteSystem == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) GetRemoteSystem() string {
	if t == nil || t.RemoteSystem == nil {
		return ""
	}
	return *t.RemoteSystem
}

// GetSiteId retrieves the value of the leaf SiteId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SiteId is set, it can
// safely use t.GetSiteId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SiteId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) GetSiteId() uint16 {
	if t == nil || t.SiteId == nil {
		return 0
	}
	return *t.SiteId
}

// GetVirtualCircuitIdentifier retrieves the value of the leaf VirtualCircuitIdentifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VirtualCircuitIdentifier is set, it can
// safely use t.GetVirtualCircuitIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VirtualCircuitIdentifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) GetVirtualCircuitIdentifier() uint32 {
	if t == nil || t.VirtualCircuitIdentifier == nil {
		return 0
	}
	return *t.VirtualCircuitIdentifier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Remote_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State struct {
	ΛMetadata   []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	Active      *bool                                          `path:"active" module:"openconfig-network-instance"`
	ΛActive     []ygot.Annotation                              `path:"@active" ygotAnnotation:"true"`
	EndpointId  *string                                        `path:"endpoint-id" module:"openconfig-network-instance"`
	ΛEndpointId []ygot.Annotation                              `path:"@endpoint-id" ygotAnnotation:"true"`
	Precedence  *uint16                                        `path:"precedence" module:"openconfig-network-instance"`
	ΛPrecedence []ygot.Annotation                              `path:"@precedence" ygotAnnotation:"true"`
	Type        E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType       []ygot.Annotation                              `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) IsYANGGoStruct() {
}

// GetActive retrieves the value of the leaf Active from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetEndpointId retrieves the value of the leaf EndpointId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EndpointId is set, it can
// safely use t.GetEndpointId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EndpointId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) GetEndpointId() string {
	if t == nil || t.EndpointId == nil {
		return ""
	}
	return *t.EndpointId
}

// GetPrecedence retrieves the value of the leaf Precedence from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Precedence is set, it can
// safely use t.GetPrecedence() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Precedence == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) GetPrecedence() uint16 {
	if t == nil || t.Precedence == nil {
		return 0
	}
	return *t.Precedence
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) GetType() E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan struct {
	ΛMetadata      []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config        `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	EndpointPeers  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers `path:"endpoint-peers" module:"openconfig-network-instance"`
	ΛEndpointPeers []ygot.Annotation                                                                                                                   `path:"@endpoint-peers" ygotAnnotation:"true"`
	EndpointVnis   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis  `path:"endpoint-vnis" module:"openconfig-network-instance"`
	ΛEndpointVnis  []ygot.Annotation                                                                                                                   `path:"@endpoint-vnis" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config{}
	return t.Config
}

// GetOrCreateEndpointPeers retrieves the value of the EndpointPeers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetOrCreateEndpointPeers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers {
	if t.EndpointPeers != nil {
		return t.EndpointPeers
	}
	t.EndpointPeers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers{}
	return t.EndpointPeers
}

// GetOrCreateEndpointVnis retrieves the value of the EndpointVnis field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetOrCreateEndpointVnis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis {
	if t.EndpointVnis != nil {
		return t.EndpointVnis
	}
	t.EndpointVnis = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis{}
	return t.EndpointVnis
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEndpointPeers returns the value of the EndpointPeers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan. If the receiver or the field EndpointPeers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetEndpointPeers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers {
	if t != nil && t.EndpointPeers != nil {
		return t.EndpointPeers
	}
	return nil
}

// GetEndpointVnis returns the value of the EndpointVnis struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan. If the receiver or the field EndpointVnis is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetEndpointVnis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis {
	if t != nil && t.EndpointVnis != nil {
		return t.EndpointVnis
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.EndpointPeers.PopulateDefaults()
	t.EndpointVnis.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description      *string           `path:"description" module:"openconfig-network-instance"`
	ΛDescription     []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	SourceInterface  *string           `path:"source-interface" module:"openconfig-network-instance"`
	ΛSourceInterface []ygot.Annotation `path:"@source-interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) IsYANGGoStruct() {
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSourceInterface retrieves the value of the leaf SourceInterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceInterface is set, it can
// safely use t.GetSourceInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceInterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) GetSourceInterface() string {
	if t == nil || t.SourceInterface == nil {
		return ""
	}
	return *t.SourceInterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	EndpointPeer  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer `path:"endpoint-peer" module:"openconfig-network-instance"`
	ΛEndpointPeer []ygot.Annotation                                                                                                                                           `path:"@endpoint-peer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) IsYANGGoStruct() {
}

// NewEndpointPeer creates a new entry in the EndpointPeer list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) NewEndpointPeer(PeerAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndpointPeer == nil {
		t.EndpointPeer = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer)
	}

	key := PeerAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EndpointPeer[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EndpointPeer", key)
	}

	t.EndpointPeer[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer{
		PeerAddress: &PeerAddress,
	}

	return t.EndpointPeer[key], nil
}

// RenameEndpointPeer renames an entry in the list EndpointPeer within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) RenameEndpointPeer(oldK, newK string) error {
	if _, ok := t.EndpointPeer[newK]; ok {
		return fmt.Errorf("key %v already exists in EndpointPeer", newK)
	}

	e, ok := t.EndpointPeer[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in EndpointPeer", oldK)
	}
	e.PeerAddress = &newK

	t.EndpointPeer[newK] = e
	delete(t.EndpointPeer, oldK)
	return nil
}

// GetOrCreateEndpointPeerMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) GetOrCreateEndpointPeerMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer {
	if t.EndpointPeer == nil {
		t.EndpointPeer = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer)
	}
	return t.EndpointPeer
}

// GetOrCreateEndpointPeer retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) GetOrCreateEndpointPeer(PeerAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer {

	key := PeerAddress

	if v, ok := t.EndpointPeer[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEndpointPeer(PeerAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEndpointPeer got unexpected error: %v", err))
	}
	return v
}

// GetEndpointPeer retrieves the value with the specified key from
// the EndpointPeer map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) GetEndpointPeer(PeerAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer {

	if t == nil {
		return nil
	}

	key := PeerAddress

	if lm, ok := t.EndpointPeer[key]; ok {
		return lm
	}
	return nil
}

// AppendEndpointPeer appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer struct to the
// list EndpointPeer of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) AppendEndpointPeer(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) error {
	if v.PeerAddress == nil {
		return fmt.Errorf("invalid nil key received for PeerAddress")
	}

	key := *v.PeerAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndpointPeer == nil {
		t.EndpointPeer = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer)
	}

	if _, ok := t.EndpointPeer[key]; ok {
		return fmt.Errorf("duplicate key for list EndpointPeer %v", key)
	}

	t.EndpointPeer[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.EndpointPeer {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	PeerAddress    *string                                                                                                                                                        `path:"peer-address" module:"openconfig-network-instance"`
	ΛPeerAddress   []ygot.Annotation                                                                                                                                              `path:"@peer-address" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	VniPeerGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups `path:"vni-peer-groups" module:"openconfig-network-instance"`
	ΛVniPeerGroups []ygot.Annotation                                                                                                                                              `path:"@vni-peer-groups" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State{}
	return t.State
}

// GetOrCreateVniPeerGroups retrieves the value of the VniPeerGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) GetOrCreateVniPeerGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups {
	if t.VniPeerGroups != nil {
		return t.VniPeerGroups
	}
	t.VniPeerGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups{}
	return t.VniPeerGroups
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetVniPeerGroups returns the value of the VniPeerGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer. If the receiver or the field VniPeerGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) GetVniPeerGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups {
	if t != nil && t.VniPeerGroups != nil {
		return t.VniPeerGroups
	}
	return nil
}

// GetPeerAddress retrieves the value of the leaf PeerAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerAddress is set, it can
// safely use t.GetPeerAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) GetPeerAddress() string {
	if t == nil || t.PeerAddress == nil {
		return ""
	}
	return *t.PeerAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.VniPeerGroups.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PeerAddress == nil {
		return nil, fmt.Errorf("nil value for key PeerAddress")
	}

	return map[string]interface{}{
		"peer-address": *t.PeerAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	ControlPlaneVnis  []uint32                                                                                                                                                          `path:"control-plane-vnis" module:"openconfig-network-instance"`
	ΛControlPlaneVnis []ygot.Annotation                                                                                                                                                 `path:"@control-plane-vnis" ygotAnnotation:"true"`
	Counters          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters   `path:"counters" module:"openconfig-network-instance"`
	ΛCounters         []ygot.Annotation                                                                                                                                                 `path:"@counters" ygotAnnotation:"true"`
	PeerAddress       *string                                                                                                                                                           `path:"peer-address" module:"openconfig-network-instance"`
	ΛPeerAddress      []ygot.Annotation                                                                                                                                                 `path:"@peer-address" ygotAnnotation:"true"`
	PeerState         E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState `path:"peer-state" module:"openconfig-network-instance"`
	ΛPeerState        []ygot.Annotation                                                                                                                                                 `path:"@peer-state" ygotAnnotation:"true"`
	RouterMac         *string                                                                                                                                                           `path:"router-mac" module:"openconfig-network-instance"`
	ΛRouterMac        []ygot.Annotation                                                                                                                                                 `path:"@router-mac" ygotAnnotation:"true"`
	Uptime            *uint64                                                                                                                                                           `path:"uptime" module:"openconfig-network-instance"`
	ΛUptime           []ygot.Annotation                                                                                                                                                 `path:"@uptime" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetControlPlaneVnis retrieves the value of the leaf ControlPlaneVnis from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ControlPlaneVnis is set, it can
// safely use t.GetControlPlaneVnis() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ControlPlaneVnis == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) GetControlPlaneVnis() []uint32 {
	if t == nil || t.ControlPlaneVnis == nil {
		return nil
	}
	return t.ControlPlaneVnis
}

// GetPeerAddress retrieves the value of the leaf PeerAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerAddress is set, it can
// safely use t.GetPeerAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) GetPeerAddress() string {
	if t == nil || t.PeerAddress == nil {
		return ""
	}
	return *t.PeerAddress
}

// GetPeerState retrieves the value of the leaf PeerState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerState is set, it can
// safely use t.GetPeerState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) GetPeerState() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState {
	if t == nil || t.PeerState == 0 {
		return 0
	}
	return t.PeerState
}

// GetRouterMac retrieves the value of the leaf RouterMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterMac is set, it can
// safely use t.GetRouterMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) GetRouterMac() string {
	if t == nil || t.RouterMac == nil {
		return ""
	}
	return *t.RouterMac
}

// GetUptime retrieves the value of the leaf Uptime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Uptime is set, it can
// safely use t.GetUptime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Uptime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) GetUptime() uint64 {
	if t == nil || t.Uptime == nil {
		return 0
	}
	return *t.Uptime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BumDecapIrPkts         *uint64           `path:"bum-decap-ir-pkts" module:"openconfig-network-instance"`
	ΛBumDecapIrPkts        []ygot.Annotation `path:"@bum-decap-ir-pkts" ygotAnnotation:"true"`
	BumDecapMulticastPkts  *uint64           `path:"bum-decap-multicast-pkts" module:"openconfig-network-instance"`
	ΛBumDecapMulticastPkts []ygot.Annotation `path:"@bum-decap-multicast-pkts" ygotAnnotation:"true"`
	BumDecapPkts           *uint64           `path:"bum-decap-pkts" module:"openconfig-network-instance"`
	ΛBumDecapPkts          []ygot.Annotation `path:"@bum-decap-pkts" ygotAnnotation:"true"`
	BumEncapPkts           *uint64           `path:"bum-encap-pkts" module:"openconfig-network-instance"`
	ΛBumEncapPkts          []ygot.Annotation `path:"@bum-encap-pkts" ygotAnnotation:"true"`
	DropDecapPkts          *uint64           `path:"drop-decap-pkts" module:"openconfig-network-instance"`
	ΛDropDecapPkts         []ygot.Annotation `path:"@drop-decap-pkts" ygotAnnotation:"true"`
	ExceptDecapPkts        *uint64           `path:"except-decap-pkts" module:"openconfig-network-instance"`
	ΛExceptDecapPkts       []ygot.Annotation `path:"@except-decap-pkts" ygotAnnotation:"true"`
	TotalDecapBytes        *uint64           `path:"total-decap-bytes" module:"openconfig-network-instance"`
	ΛTotalDecapBytes       []ygot.Annotation `path:"@total-decap-bytes" ygotAnnotation:"true"`
	TotalDecapPkts         *uint64           `path:"total-decap-pkts" module:"openconfig-network-instance"`
	ΛTotalDecapPkts        []ygot.Annotation `path:"@total-decap-pkts" ygotAnnotation:"true"`
	TotalEncapBytes        *uint64           `path:"total-encap-bytes" module:"openconfig-network-instance"`
	ΛTotalEncapBytes       []ygot.Annotation `path:"@total-encap-bytes" ygotAnnotation:"true"`
	TotalEncapPkts         *uint64           `path:"total-encap-pkts" module:"openconfig-network-instance"`
	ΛTotalEncapPkts        []ygot.Annotation `path:"@total-encap-pkts" ygotAnnotation:"true"`
	UnicastDecapPkts       *uint64           `path:"unicast-decap-pkts" module:"openconfig-network-instance"`
	ΛUnicastDecapPkts      []ygot.Annotation `path:"@unicast-decap-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) IsYANGGoStruct() {
}

// GetBumDecapIrPkts retrieves the value of the leaf BumDecapIrPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapIrPkts is set, it can
// safely use t.GetBumDecapIrPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapIrPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetBumDecapIrPkts() uint64 {
	if t == nil || t.BumDecapIrPkts == nil {
		return 0
	}
	return *t.BumDecapIrPkts
}

// GetBumDecapMulticastPkts retrieves the value of the leaf BumDecapMulticastPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapMulticastPkts is set, it can
// safely use t.GetBumDecapMulticastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapMulticastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetBumDecapMulticastPkts() uint64 {
	if t == nil || t.BumDecapMulticastPkts == nil {
		return 0
	}
	return *t.BumDecapMulticastPkts
}

// GetBumDecapPkts retrieves the value of the leaf BumDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapPkts is set, it can
// safely use t.GetBumDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetBumDecapPkts() uint64 {
	if t == nil || t.BumDecapPkts == nil {
		return 0
	}
	return *t.BumDecapPkts
}

// GetBumEncapPkts retrieves the value of the leaf BumEncapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumEncapPkts is set, it can
// safely use t.GetBumEncapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumEncapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetBumEncapPkts() uint64 {
	if t == nil || t.BumEncapPkts == nil {
		return 0
	}
	return *t.BumEncapPkts
}

// GetDropDecapPkts retrieves the value of the leaf DropDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DropDecapPkts is set, it can
// safely use t.GetDropDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DropDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetDropDecapPkts() uint64 {
	if t == nil || t.DropDecapPkts == nil {
		return 0
	}
	return *t.DropDecapPkts
}

// GetExceptDecapPkts retrieves the value of the leaf ExceptDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExceptDecapPkts is set, it can
// safely use t.GetExceptDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExceptDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetExceptDecapPkts() uint64 {
	if t == nil || t.ExceptDecapPkts == nil {
		return 0
	}
	return *t.ExceptDecapPkts
}

// GetTotalDecapBytes retrieves the value of the leaf TotalDecapBytes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalDecapBytes is set, it can
// safely use t.GetTotalDecapBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalDecapBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetTotalDecapBytes() uint64 {
	if t == nil || t.TotalDecapBytes == nil {
		return 0
	}
	return *t.TotalDecapBytes
}

// GetTotalDecapPkts retrieves the value of the leaf TotalDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalDecapPkts is set, it can
// safely use t.GetTotalDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetTotalDecapPkts() uint64 {
	if t == nil || t.TotalDecapPkts == nil {
		return 0
	}
	return *t.TotalDecapPkts
}

// GetTotalEncapBytes retrieves the value of the leaf TotalEncapBytes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalEncapBytes is set, it can
// safely use t.GetTotalEncapBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalEncapBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetTotalEncapBytes() uint64 {
	if t == nil || t.TotalEncapBytes == nil {
		return 0
	}
	return *t.TotalEncapBytes
}

// GetTotalEncapPkts retrieves the value of the leaf TotalEncapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalEncapPkts is set, it can
// safely use t.GetTotalEncapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalEncapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetTotalEncapPkts() uint64 {
	if t == nil || t.TotalEncapPkts == nil {
		return 0
	}
	return *t.TotalEncapPkts
}

// GetUnicastDecapPkts retrieves the value of the leaf UnicastDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnicastDecapPkts is set, it can
// safely use t.GetUnicastDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnicastDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) GetUnicastDecapPkts() uint64 {
	if t == nil || t.UnicastDecapPkts == nil {
		return 0
	}
	return *t.UnicastDecapPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer/vni-peer-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	VniPeerGroup  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup `path:"vni-peer-group" module:"openconfig-network-instance"`
	ΛVniPeerGroup []ygot.Annotation                                                                                                                                                                                                                                                                                                                                              `path:"@vni-peer-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key represents the key for list VniPeerGroup of element /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer/vni-peer-groups.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key struct {
	CpVni     uint32 `path:"cp-vni"`
	EgressVni uint32 `path:"egress-vni"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"cp-vni":     t.CpVni,
		"egress-vni": t.EgressVni,
	}, nil
}

// NewVniPeerGroup creates a new entry in the VniPeerGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) NewVniPeerGroup(CpVni uint32, EgressVni uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.VniPeerGroup == nil {
		t.VniPeerGroup = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key{
		CpVni:     CpVni,
		EgressVni: EgressVni,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.VniPeerGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list VniPeerGroup", key)
	}

	t.VniPeerGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup{
		CpVni:     &CpVni,
		EgressVni: &EgressVni,
	}

	return t.VniPeerGroup[key], nil
}

// RenameVniPeerGroup renames an entry in the list VniPeerGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) RenameVniPeerGroup(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key) error {
	if _, ok := t.VniPeerGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in VniPeerGroup", newK)
	}

	e, ok := t.VniPeerGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in VniPeerGroup", oldK)
	}
	e.CpVni = &newK.CpVni
	e.EgressVni = &newK.EgressVni

	t.VniPeerGroup[newK] = e
	delete(t.VniPeerGroup, oldK)
	return nil
}

// GetOrCreateVniPeerGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) GetOrCreateVniPeerGroupMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup {
	if t.VniPeerGroup == nil {
		t.VniPeerGroup = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup)
	}
	return t.VniPeerGroup
}

// GetOrCreateVniPeerGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) GetOrCreateVniPeerGroup(CpVni uint32, EgressVni uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key{
		CpVni:     CpVni,
		EgressVni: EgressVni,
	}

	if v, ok := t.VniPeerGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewVniPeerGroup(CpVni, EgressVni)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateVniPeerGroup got unexpected error: %v", err))
	}
	return v
}

// GetVniPeerGroup retrieves the value with the specified key from
// the VniPeerGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) GetVniPeerGroup(CpVni uint32, EgressVni uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key{
		CpVni:     CpVni,
		EgressVni: EgressVni,
	}

	if lm, ok := t.VniPeerGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendVniPeerGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup struct to the
// list VniPeerGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) AppendVniPeerGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) error {
	if v.CpVni == nil {
		return fmt.Errorf("invalid nil key for CpVni")
	}

	if v.EgressVni == nil {
		return fmt.Errorf("invalid nil key for EgressVni")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key{
		CpVni:     *v.CpVni,
		EgressVni: *v.EgressVni,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.VniPeerGroup == nil {
		t.VniPeerGroup = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup)
	}

	if _, ok := t.VniPeerGroup[key]; ok {
		return fmt.Errorf("duplicate key for list VniPeerGroup %v", key)
	}

	t.VniPeerGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.VniPeerGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer/vni-peer-groups/vni-peer-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	CpVni      *uint32                                                                                                                                                                           `path:"cp-vni" module:"openconfig-network-instance"`
	ΛCpVni     []ygot.Annotation                                                                                                                                                                 `path:"@cp-vni" ygotAnnotation:"true"`
	EgressVni  *uint32                                                                                                                                                                           `path:"egress-vni" module:"openconfig-network-instance"`
	ΛEgressVni []ygot.Annotation                                                                                                                                                                 `path:"@egress-vni" ygotAnnotation:"true"`
	State      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState     []ygot.Annotation                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetCpVni retrieves the value of the leaf CpVni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CpVni is set, it can
// safely use t.GetCpVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CpVni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) GetCpVni() uint32 {
	if t == nil || t.CpVni == nil {
		return 0
	}
	return *t.CpVni
}

// GetEgressVni retrieves the value of the leaf EgressVni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EgressVni is set, it can
// safely use t.GetEgressVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EgressVni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) GetEgressVni() uint32 {
	if t == nil || t.EgressVni == nil {
		return 0
	}
	return *t.EgressVni
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CpVni == nil {
		return nil, fmt.Errorf("nil value for key CpVni")
	}

	if t.EgressVni == nil {
		return nil, fmt.Errorf("nil value for key EgressVni")
	}

	return map[string]interface{}{
		"cp-vni":     *t.CpVni,
		"egress-vni": *t.EgressVni,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer/vni-peer-groups/vni-peer-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CpVni      *uint32           `path:"cp-vni" module:"openconfig-network-instance"`
	ΛCpVni     []ygot.Annotation `path:"@cp-vni" ygotAnnotation:"true"`
	EgressVni  *uint32           `path:"egress-vni" module:"openconfig-network-instance"`
	ΛEgressVni []ygot.Annotation `path:"@egress-vni" ygotAnnotation:"true"`
	RouterMac  *string           `path:"router-mac" module:"openconfig-network-instance"`
	ΛRouterMac []ygot.Annotation `path:"@router-mac" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) IsYANGGoStruct() {
}

// GetCpVni retrieves the value of the leaf CpVni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CpVni is set, it can
// safely use t.GetCpVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CpVni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) GetCpVni() uint32 {
	if t == nil || t.CpVni == nil {
		return 0
	}
	return *t.CpVni
}

// GetEgressVni retrieves the value of the leaf EgressVni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EgressVni is set, it can
// safely use t.GetEgressVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EgressVni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) GetEgressVni() uint32 {
	if t == nil || t.EgressVni == nil {
		return 0
	}
	return *t.EgressVni
}

// GetRouterMac retrieves the value of the leaf RouterMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterMac is set, it can
// safely use t.GetRouterMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) GetRouterMac() string {
	if t == nil || t.RouterMac == nil {
		return ""
	}
	return *t.RouterMac
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_VniPeerGroups_VniPeerGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	EndpointVni  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni `path:"endpoint-vni" module:"openconfig-network-instance"`
	ΛEndpointVni []ygot.Annotation                                                                                                                                         `path:"@endpoint-vni" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) IsYANGGoStruct() {
}

// NewEndpointVni creates a new entry in the EndpointVni list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) NewEndpointVni(Vni uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndpointVni == nil {
		t.EndpointVni = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni)
	}

	key := Vni

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EndpointVni[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EndpointVni", key)
	}

	t.EndpointVni[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni{
		Vni: &Vni,
	}

	return t.EndpointVni[key], nil
}

// RenameEndpointVni renames an entry in the list EndpointVni within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) RenameEndpointVni(oldK, newK uint32) error {
	if _, ok := t.EndpointVni[newK]; ok {
		return fmt.Errorf("key %v already exists in EndpointVni", newK)
	}

	e, ok := t.EndpointVni[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in EndpointVni", oldK)
	}
	e.Vni = &newK

	t.EndpointVni[newK] = e
	delete(t.EndpointVni, oldK)
	return nil
}

// GetOrCreateEndpointVniMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) GetOrCreateEndpointVniMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni {
	if t.EndpointVni == nil {
		t.EndpointVni = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni)
	}
	return t.EndpointVni
}

// GetOrCreateEndpointVni retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) GetOrCreateEndpointVni(Vni uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni {

	key := Vni

	if v, ok := t.EndpointVni[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEndpointVni(Vni)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEndpointVni got unexpected error: %v", err))
	}
	return v
}

// GetEndpointVni retrieves the value with the specified key from
// the EndpointVni map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) GetEndpointVni(Vni uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni {

	if t == nil {
		return nil
	}

	key := Vni

	if lm, ok := t.EndpointVni[key]; ok {
		return lm
	}
	return nil
}

// AppendEndpointVni appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni struct to the
// list EndpointVni of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) AppendEndpointVni(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) error {
	if v.Vni == nil {
		return fmt.Errorf("invalid nil key received for Vni")
	}

	key := *v.Vni

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndpointVni == nil {
		t.EndpointVni = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni)
	}

	if _, ok := t.EndpointVni[key]; ok {
		return fmt.Errorf("duplicate key for list EndpointVni %v", key)
	}

	t.EndpointVni[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.EndpointVni {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Ipv4      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4  `path:"ipv4" module:"openconfig-network-instance"`
	ΛIpv4     []ygot.Annotation                                                                                                                                    `path:"@ipv4" ygotAnnotation:"true"`
	Ipv6      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6  `path:"ipv6" module:"openconfig-network-instance"`
	ΛIpv6     []ygot.Annotation                                                                                                                                    `path:"@ipv6" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	Vni       *uint32                                                                                                                                              `path:"vni" module:"openconfig-network-instance"`
	ΛVni      []ygot.Annotation                                                                                                                                    `path:"@vni" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) IsYANGGoStruct() {
}

// GetOrCreateIpv4 retrieves the value of the Ipv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) GetOrCreateIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4 {
	if t.Ipv4 != nil {
		return t.Ipv4
	}
	t.Ipv4 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4{}
	return t.Ipv4
}

// GetOrCreateIpv6 retrieves the value of the Ipv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) GetOrCreateIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6 {
	if t.Ipv6 != nil {
		return t.Ipv6
	}
	t.Ipv6 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6{}
	return t.Ipv6
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State{}
	return t.State
}

// GetIpv4 returns the value of the Ipv4 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni. If the receiver or the field Ipv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) GetIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4 {
	if t != nil && t.Ipv4 != nil {
		return t.Ipv4
	}
	return nil
}

// GetIpv6 returns the value of the Ipv6 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni. If the receiver or the field Ipv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) GetIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6 {
	if t != nil && t.Ipv6 != nil {
		return t.Ipv6
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetVni retrieves the value of the leaf Vni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vni is set, it can
// safely use t.GetVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) GetVni() uint32 {
	if t == nil || t.Vni == nil {
		return 0
	}
	return *t.Vni
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ipv4.PopulateDefaults()
	t.Ipv6.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Vni == nil {
		return nil, fmt.Errorf("nil value for key Vni")
	}

	return map[string]interface{}{
		"vni": *t.Vni,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4 represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/ipv4 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4 struct {
	ΛMetadata []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/ipv4/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Counters  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters []ygot.Annotation                                                                                                                                                  `path:"@counters" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/ipv4/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BumDecapIrPkts         *uint64           `path:"bum-decap-ir-pkts" module:"openconfig-network-instance"`
	ΛBumDecapIrPkts        []ygot.Annotation `path:"@bum-decap-ir-pkts" ygotAnnotation:"true"`
	BumDecapMulticastPkts  *uint64           `path:"bum-decap-multicast-pkts" module:"openconfig-network-instance"`
	ΛBumDecapMulticastPkts []ygot.Annotation `path:"@bum-decap-multicast-pkts" ygotAnnotation:"true"`
	BumDecapPkts           *uint64           `path:"bum-decap-pkts" module:"openconfig-network-instance"`
	ΛBumDecapPkts          []ygot.Annotation `path:"@bum-decap-pkts" ygotAnnotation:"true"`
	BumEncapPkts           *uint64           `path:"bum-encap-pkts" module:"openconfig-network-instance"`
	ΛBumEncapPkts          []ygot.Annotation `path:"@bum-encap-pkts" ygotAnnotation:"true"`
	DropDecapPkts          *uint64           `path:"drop-decap-pkts" module:"openconfig-network-instance"`
	ΛDropDecapPkts         []ygot.Annotation `path:"@drop-decap-pkts" ygotAnnotation:"true"`
	ExceptDecapPkts        *uint64           `path:"except-decap-pkts" module:"openconfig-network-instance"`
	ΛExceptDecapPkts       []ygot.Annotation `path:"@except-decap-pkts" ygotAnnotation:"true"`
	TotalDecapBytes        *uint64           `path:"total-decap-bytes" module:"openconfig-network-instance"`
	ΛTotalDecapBytes       []ygot.Annotation `path:"@total-decap-bytes" ygotAnnotation:"true"`
	TotalDecapPkts         *uint64           `path:"total-decap-pkts" module:"openconfig-network-instance"`
	ΛTotalDecapPkts        []ygot.Annotation `path:"@total-decap-pkts" ygotAnnotation:"true"`
	TotalEncapBytes        *uint64           `path:"total-encap-bytes" module:"openconfig-network-instance"`
	ΛTotalEncapBytes       []ygot.Annotation `path:"@total-encap-bytes" ygotAnnotation:"true"`
	TotalEncapPkts         *uint64           `path:"total-encap-pkts" module:"openconfig-network-instance"`
	ΛTotalEncapPkts        []ygot.Annotation `path:"@total-encap-pkts" ygotAnnotation:"true"`
	UnicastDecapPkts       *uint64           `path:"unicast-decap-pkts" module:"openconfig-network-instance"`
	ΛUnicastDecapPkts      []ygot.Annotation `path:"@unicast-decap-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) IsYANGGoStruct() {
}

// GetBumDecapIrPkts retrieves the value of the leaf BumDecapIrPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapIrPkts is set, it can
// safely use t.GetBumDecapIrPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapIrPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetBumDecapIrPkts() uint64 {
	if t == nil || t.BumDecapIrPkts == nil {
		return 0
	}
	return *t.BumDecapIrPkts
}

// GetBumDecapMulticastPkts retrieves the value of the leaf BumDecapMulticastPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapMulticastPkts is set, it can
// safely use t.GetBumDecapMulticastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapMulticastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetBumDecapMulticastPkts() uint64 {
	if t == nil || t.BumDecapMulticastPkts == nil {
		return 0
	}
	return *t.BumDecapMulticastPkts
}

// GetBumDecapPkts retrieves the value of the leaf BumDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapPkts is set, it can
// safely use t.GetBumDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetBumDecapPkts() uint64 {
	if t == nil || t.BumDecapPkts == nil {
		return 0
	}
	return *t.BumDecapPkts
}

// GetBumEncapPkts retrieves the value of the leaf BumEncapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumEncapPkts is set, it can
// safely use t.GetBumEncapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumEncapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetBumEncapPkts() uint64 {
	if t == nil || t.BumEncapPkts == nil {
		return 0
	}
	return *t.BumEncapPkts
}

// GetDropDecapPkts retrieves the value of the leaf DropDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DropDecapPkts is set, it can
// safely use t.GetDropDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DropDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetDropDecapPkts() uint64 {
	if t == nil || t.DropDecapPkts == nil {
		return 0
	}
	return *t.DropDecapPkts
}

// GetExceptDecapPkts retrieves the value of the leaf ExceptDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExceptDecapPkts is set, it can
// safely use t.GetExceptDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExceptDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetExceptDecapPkts() uint64 {
	if t == nil || t.ExceptDecapPkts == nil {
		return 0
	}
	return *t.ExceptDecapPkts
}

// GetTotalDecapBytes retrieves the value of the leaf TotalDecapBytes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalDecapBytes is set, it can
// safely use t.GetTotalDecapBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalDecapBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetTotalDecapBytes() uint64 {
	if t == nil || t.TotalDecapBytes == nil {
		return 0
	}
	return *t.TotalDecapBytes
}

// GetTotalDecapPkts retrieves the value of the leaf TotalDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalDecapPkts is set, it can
// safely use t.GetTotalDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetTotalDecapPkts() uint64 {
	if t == nil || t.TotalDecapPkts == nil {
		return 0
	}
	return *t.TotalDecapPkts
}

// GetTotalEncapBytes retrieves the value of the leaf TotalEncapBytes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalEncapBytes is set, it can
// safely use t.GetTotalEncapBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalEncapBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetTotalEncapBytes() uint64 {
	if t == nil || t.TotalEncapBytes == nil {
		return 0
	}
	return *t.TotalEncapBytes
}

// GetTotalEncapPkts retrieves the value of the leaf TotalEncapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalEncapPkts is set, it can
// safely use t.GetTotalEncapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalEncapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetTotalEncapPkts() uint64 {
	if t == nil || t.TotalEncapPkts == nil {
		return 0
	}
	return *t.TotalEncapPkts
}

// GetUnicastDecapPkts retrieves the value of the leaf UnicastDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnicastDecapPkts is set, it can
// safely use t.GetUnicastDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnicastDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) GetUnicastDecapPkts() uint64 {
	if t == nil || t.UnicastDecapPkts == nil {
		return 0
	}
	return *t.UnicastDecapPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv4_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6 represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/ipv6 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6 struct {
	ΛMetadata []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/ipv6/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Counters  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters []ygot.Annotation                                                                                                                                                  `path:"@counters" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/ipv6/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BumDecapIrPkts         *uint64           `path:"bum-decap-ir-pkts" module:"openconfig-network-instance"`
	ΛBumDecapIrPkts        []ygot.Annotation `path:"@bum-decap-ir-pkts" ygotAnnotation:"true"`
	BumDecapMulticastPkts  *uint64           `path:"bum-decap-multicast-pkts" module:"openconfig-network-instance"`
	ΛBumDecapMulticastPkts []ygot.Annotation `path:"@bum-decap-multicast-pkts" ygotAnnotation:"true"`
	BumDecapPkts           *uint64           `path:"bum-decap-pkts" module:"openconfig-network-instance"`
	ΛBumDecapPkts          []ygot.Annotation `path:"@bum-decap-pkts" ygotAnnotation:"true"`
	BumEncapPkts           *uint64           `path:"bum-encap-pkts" module:"openconfig-network-instance"`
	ΛBumEncapPkts          []ygot.Annotation `path:"@bum-encap-pkts" ygotAnnotation:"true"`
	DropDecapPkts          *uint64           `path:"drop-decap-pkts" module:"openconfig-network-instance"`
	ΛDropDecapPkts         []ygot.Annotation `path:"@drop-decap-pkts" ygotAnnotation:"true"`
	ExceptDecapPkts        *uint64           `path:"except-decap-pkts" module:"openconfig-network-instance"`
	ΛExceptDecapPkts       []ygot.Annotation `path:"@except-decap-pkts" ygotAnnotation:"true"`
	TotalDecapBytes        *uint64           `path:"total-decap-bytes" module:"openconfig-network-instance"`
	ΛTotalDecapBytes       []ygot.Annotation `path:"@total-decap-bytes" ygotAnnotation:"true"`
	TotalDecapPkts         *uint64           `path:"total-decap-pkts" module:"openconfig-network-instance"`
	ΛTotalDecapPkts        []ygot.Annotation `path:"@total-decap-pkts" ygotAnnotation:"true"`
	TotalEncapBytes        *uint64           `path:"total-encap-bytes" module:"openconfig-network-instance"`
	ΛTotalEncapBytes       []ygot.Annotation `path:"@total-encap-bytes" ygotAnnotation:"true"`
	TotalEncapPkts         *uint64           `path:"total-encap-pkts" module:"openconfig-network-instance"`
	ΛTotalEncapPkts        []ygot.Annotation `path:"@total-encap-pkts" ygotAnnotation:"true"`
	UnicastDecapPkts       *uint64           `path:"unicast-decap-pkts" module:"openconfig-network-instance"`
	ΛUnicastDecapPkts      []ygot.Annotation `path:"@unicast-decap-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) IsYANGGoStruct() {
}

// GetBumDecapIrPkts retrieves the value of the leaf BumDecapIrPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapIrPkts is set, it can
// safely use t.GetBumDecapIrPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapIrPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetBumDecapIrPkts() uint64 {
	if t == nil || t.BumDecapIrPkts == nil {
		return 0
	}
	return *t.BumDecapIrPkts
}

// GetBumDecapMulticastPkts retrieves the value of the leaf BumDecapMulticastPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapMulticastPkts is set, it can
// safely use t.GetBumDecapMulticastPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapMulticastPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetBumDecapMulticastPkts() uint64 {
	if t == nil || t.BumDecapMulticastPkts == nil {
		return 0
	}
	return *t.BumDecapMulticastPkts
}

// GetBumDecapPkts retrieves the value of the leaf BumDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumDecapPkts is set, it can
// safely use t.GetBumDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetBumDecapPkts() uint64 {
	if t == nil || t.BumDecapPkts == nil {
		return 0
	}
	return *t.BumDecapPkts
}

// GetBumEncapPkts retrieves the value of the leaf BumEncapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BumEncapPkts is set, it can
// safely use t.GetBumEncapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BumEncapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetBumEncapPkts() uint64 {
	if t == nil || t.BumEncapPkts == nil {
		return 0
	}
	return *t.BumEncapPkts
}

// GetDropDecapPkts retrieves the value of the leaf DropDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DropDecapPkts is set, it can
// safely use t.GetDropDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DropDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetDropDecapPkts() uint64 {
	if t == nil || t.DropDecapPkts == nil {
		return 0
	}
	return *t.DropDecapPkts
}

// GetExceptDecapPkts retrieves the value of the leaf ExceptDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExceptDecapPkts is set, it can
// safely use t.GetExceptDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExceptDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetExceptDecapPkts() uint64 {
	if t == nil || t.ExceptDecapPkts == nil {
		return 0
	}
	return *t.ExceptDecapPkts
}

// GetTotalDecapBytes retrieves the value of the leaf TotalDecapBytes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalDecapBytes is set, it can
// safely use t.GetTotalDecapBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalDecapBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetTotalDecapBytes() uint64 {
	if t == nil || t.TotalDecapBytes == nil {
		return 0
	}
	return *t.TotalDecapBytes
}

// GetTotalDecapPkts retrieves the value of the leaf TotalDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalDecapPkts is set, it can
// safely use t.GetTotalDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetTotalDecapPkts() uint64 {
	if t == nil || t.TotalDecapPkts == nil {
		return 0
	}
	return *t.TotalDecapPkts
}

// GetTotalEncapBytes retrieves the value of the leaf TotalEncapBytes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalEncapBytes is set, it can
// safely use t.GetTotalEncapBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalEncapBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetTotalEncapBytes() uint64 {
	if t == nil || t.TotalEncapBytes == nil {
		return 0
	}
	return *t.TotalEncapBytes
}

// GetTotalEncapPkts retrieves the value of the leaf TotalEncapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalEncapPkts is set, it can
// safely use t.GetTotalEncapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalEncapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetTotalEncapPkts() uint64 {
	if t == nil || t.TotalEncapPkts == nil {
		return 0
	}
	return *t.TotalEncapPkts
}

// GetUnicastDecapPkts retrieves the value of the leaf UnicastDecapPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnicastDecapPkts is set, it can
// safely use t.GetUnicastDecapPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnicastDecapPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) GetUnicastDecapPkts() uint64 {
	if t == nil || t.UnicastDecapPkts == nil {
		return 0
	}
	return *t.UnicastDecapPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_Ipv6_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	BridgeDomain             *uint32                                                                                                                                                                           `path:"bridge-domain" module:"openconfig-network-instance"`
	ΛBridgeDomain            []ygot.Annotation                                                                                                                                                                 `path:"@bridge-domain" ygotAnnotation:"true"`
	L3VrfName                *string                                                                                                                                                                           `path:"l3-vrf-name" module:"openconfig-network-instance"`
	ΛL3VrfName               []ygot.Annotation                                                                                                                                                                 `path:"@l3-vrf-name" ygotAnnotation:"true"`
	LearningMode             E_OpenconfigEvpnTypes_LearningMode                                                                                                                                                `path:"learning-mode" module:"openconfig-network-instance"`
	ΛLearningMode            []ygot.Annotation                                                                                                                                                                 `path:"@learning-mode" ygotAnnotation:"true"`
	MultidestinationTraffic  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union `path:"multidestination-traffic" module:"openconfig-network-instance"`
	ΛMultidestinationTraffic []ygot.Annotation                                                                                                                                                                 `path:"@multidestination-traffic" ygotAnnotation:"true"`
	SviState                 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState                    `path:"svi-state" module:"openconfig-network-instance"`
	ΛSviState                []ygot.Annotation                                                                                                                                                                 `path:"@svi-state" ygotAnnotation:"true"`
	Vni                      *uint32                                                                                                                                                                           `path:"vni" module:"openconfig-network-instance"`
	ΛVni                     []ygot.Annotation                                                                                                                                                                 `path:"@vni" ygotAnnotation:"true"`
	VniState                 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState                    `path:"vni-state" module:"openconfig-network-instance"`
	ΛVniState                []ygot.Annotation                                                                                                                                                                 `path:"@vni-state" ygotAnnotation:"true"`
	VniType                  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType                     `path:"vni-type" module:"openconfig-network-instance"`
	ΛVniType                 []ygot.Annotation                                                                                                                                                                 `path:"@vni-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) IsYANGGoStruct() {
}

// GetBridgeDomain retrieves the value of the leaf BridgeDomain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BridgeDomain is set, it can
// safely use t.GetBridgeDomain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BridgeDomain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetBridgeDomain() uint32 {
	if t == nil || t.BridgeDomain == nil {
		return 0
	}
	return *t.BridgeDomain
}

// GetL3VrfName retrieves the value of the leaf L3VrfName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if L3VrfName is set, it can
// safely use t.GetL3VrfName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.L3VrfName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetL3VrfName() string {
	if t == nil || t.L3VrfName == nil {
		return ""
	}
	return *t.L3VrfName
}

// GetLearningMode retrieves the value of the leaf LearningMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LearningMode is set, it can
// safely use t.GetLearningMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LearningMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetLearningMode() E_OpenconfigEvpnTypes_LearningMode {
	if t == nil || t.LearningMode == 0 {
		return 0
	}
	return t.LearningMode
}

// GetMultidestinationTraffic retrieves the value of the leaf MultidestinationTraffic from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultidestinationTraffic is set, it can
// safely use t.GetMultidestinationTraffic() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultidestinationTraffic == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetMultidestinationTraffic() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union {
	if t == nil || t.MultidestinationTraffic == nil {
		return nil
	}
	return t.MultidestinationTraffic
}

// GetSviState retrieves the value of the leaf SviState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SviState is set, it can
// safely use t.GetSviState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SviState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetSviState() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState {
	if t == nil || t.SviState == 0 {
		return 0
	}
	return t.SviState
}

// GetVni retrieves the value of the leaf Vni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vni is set, it can
// safely use t.GetVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetVni() uint32 {
	if t == nil || t.Vni == nil {
		return 0
	}
	return *t.Vni
}

// GetVniState retrieves the value of the leaf VniState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VniState is set, it can
// safely use t.GetVniState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VniState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetVniState() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState {
	if t == nil || t.VniState == 0 {
		return 0
	}
	return t.VniState
}

// GetVniType retrieves the value of the leaf VniType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VniType is set, it can
// safely use t.GetVniType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VniType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) GetVniType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType {
	if t == nil || t.VniType == 0 {
		return 0
	}
	return t.VniType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/state/multidestination-traffic within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description      *string           `path:"description" module:"openconfig-network-instance"`
	ΛDescription     []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	SourceInterface  *string           `path:"source-interface" module:"openconfig-network-instance"`
	ΛSourceInterface []ygot.Annotation `path:"@source-interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) IsYANGGoStruct() {
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSourceInterface retrieves the value of the leaf SourceInterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceInterface is set, it can
// safely use t.GetSourceInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceInterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) GetSourceInterface() string {
	if t == nil || t.SourceInterface == nil {
		return ""
	}
	return *t.SourceInterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State represents the /openconfig-network-instance/network-instances/network-instance/connection-points/connection-point/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ConnectionPointId  *string           `path:"connection-point-id" module:"openconfig-network-instance"`
	ΛConnectionPointId []ygot.Annotation `path:"@connection-point-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State) IsYANGGoStruct() {
}

// GetConnectionPointId retrieves the value of the leaf ConnectionPointId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionPointId is set, it can
// safely use t.GetConnectionPointId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionPointId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State) GetConnectionPointId() string {
	if t == nil || t.ConnectionPointId == nil {
		return ""
	}
	return *t.ConnectionPointId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation represents the /openconfig-network-instance/network-instances/network-instance/encapsulation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation struct {
	ΛMetadata []ygot.Annotation                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config represents the /openconfig-network-instance/network-instances/network-instance/encapsulation/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config struct {
	ΛMetadata            []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	ControlWord          *bool                                                  `path:"control-word" module:"openconfig-network-instance"`
	ΛControlWord         []ygot.Annotation                                      `path:"@control-word" ygotAnnotation:"true"`
	EncapsulationType    E_OpenconfigNetworkInstanceTypes_ENCAPSULATION         `path:"encapsulation-type" module:"openconfig-network-instance"`
	ΛEncapsulationType   []ygot.Annotation                                      `path:"@encapsulation-type" ygotAnnotation:"true"`
	LabelAllocationMode  E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE `path:"label-allocation-mode" module:"openconfig-network-instance"`
	ΛLabelAllocationMode []ygot.Annotation                                      `path:"@label-allocation-mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) IsYANGGoStruct() {
}

// GetControlWord retrieves the value of the leaf ControlWord from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ControlWord is set, it can
// safely use t.GetControlWord() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ControlWord == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) GetControlWord() bool {
	if t == nil || t.ControlWord == nil {
		return false
	}
	return *t.ControlWord
}

// GetEncapsulationType retrieves the value of the leaf EncapsulationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EncapsulationType is set, it can
// safely use t.GetEncapsulationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EncapsulationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) GetEncapsulationType() E_OpenconfigNetworkInstanceTypes_ENCAPSULATION {
	if t == nil || t.EncapsulationType == 0 {
		return 0
	}
	return t.EncapsulationType
}

// GetLabelAllocationMode retrieves the value of the leaf LabelAllocationMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelAllocationMode is set, it can
// safely use t.GetLabelAllocationMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelAllocationMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) GetLabelAllocationMode() E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE {
	if t == nil || t.LabelAllocationMode == 0 {
		return 0
	}
	return t.LabelAllocationMode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State represents the /openconfig-network-instance/network-instances/network-instance/encapsulation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State struct {
	ΛMetadata            []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	ControlWord          *bool                                                  `path:"control-word" module:"openconfig-network-instance"`
	ΛControlWord         []ygot.Annotation                                      `path:"@control-word" ygotAnnotation:"true"`
	EncapsulationType    E_OpenconfigNetworkInstanceTypes_ENCAPSULATION         `path:"encapsulation-type" module:"openconfig-network-instance"`
	ΛEncapsulationType   []ygot.Annotation                                      `path:"@encapsulation-type" ygotAnnotation:"true"`
	LabelAllocationMode  E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE `path:"label-allocation-mode" module:"openconfig-network-instance"`
	ΛLabelAllocationMode []ygot.Annotation                                      `path:"@label-allocation-mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) IsYANGGoStruct() {
}

// GetControlWord retrieves the value of the leaf ControlWord from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ControlWord is set, it can
// safely use t.GetControlWord() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ControlWord == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) GetControlWord() bool {
	if t == nil || t.ControlWord == nil {
		return false
	}
	return *t.ControlWord
}

// GetEncapsulationType retrieves the value of the leaf EncapsulationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EncapsulationType is set, it can
// safely use t.GetEncapsulationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EncapsulationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) GetEncapsulationType() E_OpenconfigNetworkInstanceTypes_ENCAPSULATION {
	if t == nil || t.EncapsulationType == 0 {
		return 0
	}
	return t.EncapsulationType
}

// GetLabelAllocationMode retrieves the value of the leaf LabelAllocationMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelAllocationMode is set, it can
// safely use t.GetLabelAllocationMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelAllocationMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) GetLabelAllocationMode() E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE {
	if t == nil || t.LabelAllocationMode == 0 {
		return 0
	}
	return t.LabelAllocationMode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Encapsulation_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn represents the /openconfig-network-instance/network-instances/network-instance/evpn YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn struct {
	ΛMetadata      []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	EvpnInstances  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances `path:"evpn-instances" module:"openconfig-network-instance"`
	ΛEvpnInstances []ygot.Annotation                                                              `path:"@evpn-instances" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) IsYANGGoStruct() {}

// GetOrCreateEvpnInstances retrieves the value of the EvpnInstances field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) GetOrCreateEvpnInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances {
	if t.EvpnInstances != nil {
		return t.EvpnInstances
	}
	t.EvpnInstances = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances{}
	return t.EvpnInstances
}

// GetEvpnInstances returns the value of the EvpnInstances struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn. If the receiver or the field EvpnInstances is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) GetEvpnInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances {
	if t != nil && t.EvpnInstances != nil {
		return t.EvpnInstances
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.EvpnInstances.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances struct {
	ΛMetadata     []ygot.Annotation                                                                                      `path:"@" ygotAnnotation:"true"`
	EvpnInstance  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance `path:"evpn-instance" module:"openconfig-network-instance"`
	ΛEvpnInstance []ygot.Annotation                                                                                      `path:"@evpn-instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) IsYANGGoStruct() {
}

// NewEvpnInstance creates a new entry in the EvpnInstance list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) NewEvpnInstance(Evi string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EvpnInstance == nil {
		t.EvpnInstance = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance)
	}

	key := Evi

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EvpnInstance[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EvpnInstance", key)
	}

	t.EvpnInstance[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance{
		Evi: &Evi,
	}

	return t.EvpnInstance[key], nil
}

// RenameEvpnInstance renames an entry in the list EvpnInstance within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) RenameEvpnInstance(oldK, newK string) error {
	if _, ok := t.EvpnInstance[newK]; ok {
		return fmt.Errorf("key %v already exists in EvpnInstance", newK)
	}

	e, ok := t.EvpnInstance[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in EvpnInstance", oldK)
	}
	e.Evi = &newK

	t.EvpnInstance[newK] = e
	delete(t.EvpnInstance, oldK)
	return nil
}

// GetOrCreateEvpnInstanceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) GetOrCreateEvpnInstanceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance {
	if t.EvpnInstance == nil {
		t.EvpnInstance = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance)
	}
	return t.EvpnInstance
}

// GetOrCreateEvpnInstance retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) GetOrCreateEvpnInstance(Evi string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance {

	key := Evi

	if v, ok := t.EvpnInstance[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEvpnInstance(Evi)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEvpnInstance got unexpected error: %v", err))
	}
	return v
}

// GetEvpnInstance retrieves the value with the specified key from
// the EvpnInstance map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) GetEvpnInstance(Evi string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance {

	if t == nil {
		return nil
	}

	key := Evi

	if lm, ok := t.EvpnInstance[key]; ok {
		return lm
	}
	return nil
}

// AppendEvpnInstance appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance struct to the
// list EvpnInstance of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) AppendEvpnInstance(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) error {
	if v.Evi == nil {
		return fmt.Errorf("invalid nil key received for Evi")
	}

	key := *v.Evi

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EvpnInstance == nil {
		t.EvpnInstance = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance)
	}

	if _, ok := t.EvpnInstance[key]; ok {
		return fmt.Errorf("duplicate key for list EvpnInstance %v", key)
	}

	t.EvpnInstance[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.EvpnInstance {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance struct {
	ΛMetadata           []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Config              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config             `path:"config" module:"openconfig-network-instance"`
	ΛConfig             []ygot.Annotation                                                                                              `path:"@config" ygotAnnotation:"true"`
	Evi                 *string                                                                                                        `path:"evi" module:"openconfig-network-instance"`
	ΛEvi                []ygot.Annotation                                                                                              `path:"@evi" ygotAnnotation:"true"`
	ImportExportPolicy  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy `path:"import-export-policy" module:"openconfig-network-instance"`
	ΛImportExportPolicy []ygot.Annotation                                                                                              `path:"@import-export-policy" ygotAnnotation:"true"`
	Pbb                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb                `path:"pbb" module:"openconfig-network-instance"`
	ΛPbb                []ygot.Annotation                                                                                              `path:"@pbb" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
	Vxlan               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan              `path:"vxlan" module:"openconfig-network-instance"`
	ΛVxlan              []ygot.Annotation                                                                                              `path:"@vxlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config{}
	return t.Config
}

// GetOrCreateImportExportPolicy retrieves the value of the ImportExportPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetOrCreateImportExportPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy {
	if t.ImportExportPolicy != nil {
		return t.ImportExportPolicy
	}
	t.ImportExportPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy{}
	return t.ImportExportPolicy
}

// GetOrCreatePbb retrieves the value of the Pbb field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetOrCreatePbb() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb {
	if t.Pbb != nil {
		return t.Pbb
	}
	t.Pbb = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb{}
	return t.Pbb
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State{}
	return t.State
}

// GetOrCreateVxlan retrieves the value of the Vxlan field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetOrCreateVxlan() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan {
	if t.Vxlan != nil {
		return t.Vxlan
	}
	t.Vxlan = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan{}
	return t.Vxlan
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetImportExportPolicy returns the value of the ImportExportPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance. If the receiver or the field ImportExportPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetImportExportPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy {
	if t != nil && t.ImportExportPolicy != nil {
		return t.ImportExportPolicy
	}
	return nil
}

// GetPbb returns the value of the Pbb struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance. If the receiver or the field Pbb is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetPbb() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb {
	if t != nil && t.Pbb != nil {
		return t.Pbb
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetVxlan returns the value of the Vxlan struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance. If the receiver or the field Vxlan is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetVxlan() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan {
	if t != nil && t.Vxlan != nil {
		return t.Vxlan
	}
	return nil
}

// GetEvi retrieves the value of the leaf Evi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Evi is set, it can
// safely use t.GetEvi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Evi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) GetEvi() string {
	if t == nil || t.Evi == nil {
		return ""
	}
	return *t.Evi
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.ImportExportPolicy.PopulateDefaults()
	t.Pbb.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Vxlan.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Evi == nil {
		return nil, fmt.Errorf("nil value for key Evi")
	}

	return map[string]interface{}{
		"evi": *t.Evi,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config struct {
	ΛMetadata           []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	ControlWordEnabled  *bool                                                                                                                      `path:"control-word-enabled" module:"openconfig-network-instance"`
	ΛControlWordEnabled []ygot.Annotation                                                                                                          `path:"@control-word-enabled" ygotAnnotation:"true"`
	EncapsulationType   E_OpenconfigNetworkInstanceTypes_ENCAPSULATION                                                                             `path:"encapsulation-type" module:"openconfig-network-instance"`
	ΛEncapsulationType  []ygot.Annotation                                                                                                          `path:"@encapsulation-type" ygotAnnotation:"true"`
	Evi                 *string                                                                                                                    `path:"evi" module:"openconfig-network-instance"`
	ΛEvi                []ygot.Annotation                                                                                                          `path:"@evi" ygotAnnotation:"true"`
	MulticastGroup      *string                                                                                                                    `path:"multicast-group" module:"openconfig-network-instance"`
	ΛMulticastGroup     []ygot.Annotation                                                                                                          `path:"@multicast-group" ygotAnnotation:"true"`
	MulticastMask       *string                                                                                                                    `path:"multicast-mask" module:"openconfig-network-instance"`
	ΛMulticastMask      []ygot.Annotation                                                                                                          `path:"@multicast-mask" ygotAnnotation:"true"`
	ReplicationMode     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode        `path:"replication-mode" module:"openconfig-network-instance"`
	ΛReplicationMode    []ygot.Annotation                                                                                                          `path:"@replication-mode" ygotAnnotation:"true"`
	RouteDistinguisher  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union `path:"route-distinguisher" module:"openconfig-network-instance"`
	ΛRouteDistinguisher []ygot.Annotation                                                                                                          `path:"@route-distinguisher" ygotAnnotation:"true"`
	ServiceType         E_OpenconfigEvpnTypes_EVPN_TYPE                                                                                            `path:"service-type" module:"openconfig-network-instance"`
	ΛServiceType        []ygot.Annotation                                                                                                          `path:"@service-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) IsYANGGoStruct() {
}

// GetControlWordEnabled retrieves the value of the leaf ControlWordEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ControlWordEnabled is set, it can
// safely use t.GetControlWordEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ControlWordEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetControlWordEnabled() bool {
	if t == nil || t.ControlWordEnabled == nil {
		return false
	}
	return *t.ControlWordEnabled
}

// GetEncapsulationType retrieves the value of the leaf EncapsulationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EncapsulationType is set, it can
// safely use t.GetEncapsulationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EncapsulationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetEncapsulationType() E_OpenconfigNetworkInstanceTypes_ENCAPSULATION {
	if t == nil || t.EncapsulationType == 0 {
		return 0
	}
	return t.EncapsulationType
}

// GetEvi retrieves the value of the leaf Evi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Evi is set, it can
// safely use t.GetEvi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Evi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetEvi() string {
	if t == nil || t.Evi == nil {
		return ""
	}
	return *t.Evi
}

// GetMulticastGroup retrieves the value of the leaf MulticastGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastGroup is set, it can
// safely use t.GetMulticastGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetMulticastGroup() string {
	if t == nil || t.MulticastGroup == nil {
		return ""
	}
	return *t.MulticastGroup
}

// GetMulticastMask retrieves the value of the leaf MulticastMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastMask is set, it can
// safely use t.GetMulticastMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetMulticastMask() string {
	if t == nil || t.MulticastMask == nil {
		return ""
	}
	return *t.MulticastMask
}

// GetReplicationMode retrieves the value of the leaf ReplicationMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReplicationMode is set, it can
// safely use t.GetReplicationMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReplicationMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetReplicationMode() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode {
	if t == nil || t.ReplicationMode == 0 {
		return 0
	}
	return t.ReplicationMode
}

// GetRouteDistinguisher retrieves the value of the leaf RouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteDistinguisher is set, it can
// safely use t.GetRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetRouteDistinguisher() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union {
	if t == nil || t.RouteDistinguisher == nil {
		return nil
	}
	return t.RouteDistinguisher
}

// GetServiceType retrieves the value of the leaf ServiceType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ServiceType is set, it can
// safely use t.GetServiceType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ServiceType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) GetServiceType() E_OpenconfigEvpnTypes_EVPN_TYPE {
	if t == nil || t.ServiceType == 0 {
		return 0
	}
	return t.ServiceType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/config/route-distinguisher within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config struct {
	ΛMetadata          []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	ExportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union `path:"export-route-target" module:"openconfig-network-instance"`
	ΛExportRouteTarget []ygot.Annotation                                                                                                                              `path:"@export-route-target" ygotAnnotation:"true"`
	ImportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union `path:"import-route-target" module:"openconfig-network-instance"`
	ΛImportRouteTarget []ygot.Annotation                                                                                                                              `path:"@import-route-target" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) IsYANGGoStruct() {
}

// GetExportRouteTarget retrieves the value of the leaf ExportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportRouteTarget is set, it can
// safely use t.GetExportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) GetExportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union {
	if t == nil || t.ExportRouteTarget == nil {
		return nil
	}
	return t.ExportRouteTarget
}

// GetImportRouteTarget retrieves the value of the leaf ImportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportRouteTarget is set, it can
// safely use t.GetImportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) GetImportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union {
	if t == nil || t.ImportRouteTarget == nil {
		return nil
	}
	return t.ImportRouteTarget
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/config/export-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/config/import-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                             `path:"@" ygotAnnotation:"true"`
	ExportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union `path:"export-route-target" module:"openconfig-network-instance"`
	ΛExportRouteTarget []ygot.Annotation                                                                                                                             `path:"@export-route-target" ygotAnnotation:"true"`
	ImportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union `path:"import-route-target" module:"openconfig-network-instance"`
	ΛImportRouteTarget []ygot.Annotation                                                                                                                             `path:"@import-route-target" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) IsYANGGoStruct() {
}

// GetExportRouteTarget retrieves the value of the leaf ExportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportRouteTarget is set, it can
// safely use t.GetExportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) GetExportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union {
	if t == nil || t.ExportRouteTarget == nil {
		return nil
	}
	return t.ExportRouteTarget
}

// GetImportRouteTarget retrieves the value of the leaf ImportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportRouteTarget is set, it can
// safely use t.GetImportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) GetImportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union {
	if t == nil || t.ImportRouteTarget == nil {
		return nil
	}
	return t.ImportRouteTarget
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/state/export-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ExportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/state/import-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_State_ImportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb struct {
	ΛMetadata   []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	BComponent  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent `path:"b-component" module:"openconfig-network-instance"`
	ΛBComponent []ygot.Annotation                                                                                                     `path:"@b-component" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) IsYANGGoStruct() {
}

// NewBComponent creates a new entry in the BComponent list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) NewBComponent(BComponentName string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BComponent == nil {
		t.BComponent = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent)
	}

	key := BComponentName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BComponent[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BComponent", key)
	}

	t.BComponent[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent{
		BComponentName: &BComponentName,
	}

	return t.BComponent[key], nil
}

// RenameBComponent renames an entry in the list BComponent within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) RenameBComponent(oldK, newK string) error {
	if _, ok := t.BComponent[newK]; ok {
		return fmt.Errorf("key %v already exists in BComponent", newK)
	}

	e, ok := t.BComponent[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in BComponent", oldK)
	}
	e.BComponentName = &newK

	t.BComponent[newK] = e
	delete(t.BComponent, oldK)
	return nil
}

// GetOrCreateBComponentMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) GetOrCreateBComponentMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent {
	if t.BComponent == nil {
		t.BComponent = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent)
	}
	return t.BComponent
}

// GetOrCreateBComponent retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) GetOrCreateBComponent(BComponentName string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent {

	key := BComponentName

	if v, ok := t.BComponent[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewBComponent(BComponentName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateBComponent got unexpected error: %v", err))
	}
	return v
}

// GetBComponent retrieves the value with the specified key from
// the BComponent map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) GetBComponent(BComponentName string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent {

	if t == nil {
		return nil
	}

	key := BComponentName

	if lm, ok := t.BComponent[key]; ok {
		return lm
	}
	return nil
}

// AppendBComponent appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent struct to the
// list BComponent of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) AppendBComponent(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) error {
	if v.BComponentName == nil {
		return fmt.Errorf("invalid nil key received for BComponentName")
	}

	key := *v.BComponentName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BComponent == nil {
		t.BComponent = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent)
	}

	if _, ok := t.BComponent[key]; ok {
		return fmt.Errorf("duplicate key for list BComponent %v", key)
	}

	t.BComponent[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.BComponent {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb/b-component YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent struct {
	ΛMetadata       []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	BComponentName  *string                                                                                                                `path:"b-component-name" module:"openconfig-network-instance"`
	ΛBComponentName []ygot.Annotation                                                                                                      `path:"@b-component-name" ygotAnnotation:"true"`
	Config          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config      `path:"config" module:"openconfig-network-instance"`
	ΛConfig         []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	IComponents     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents `path:"i-components" module:"openconfig-network-instance"`
	ΛIComponents    []ygot.Annotation                                                                                                      `path:"@i-components" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State       `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config{}
	return t.Config
}

// GetOrCreateIComponents retrieves the value of the IComponents field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) GetOrCreateIComponents() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents {
	if t.IComponents != nil {
		return t.IComponents
	}
	t.IComponents = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents{}
	return t.IComponents
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIComponents returns the value of the IComponents struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent. If the receiver or the field IComponents is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) GetIComponents() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents {
	if t != nil && t.IComponents != nil {
		return t.IComponents
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetBComponentName retrieves the value of the leaf BComponentName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BComponentName is set, it can
// safely use t.GetBComponentName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BComponentName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) GetBComponentName() string {
	if t == nil || t.BComponentName == nil {
		return ""
	}
	return *t.BComponentName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.IComponents.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) ΛListKeyMap() (map[string]interface{}, error) {
	if t.BComponentName == nil {
		return nil, fmt.Errorf("nil value for key BComponentName")
	}

	return map[string]interface{}{
		"b-component-name": *t.BComponentName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb/b-component/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BComponentName  *string           `path:"b-component-name" module:"openconfig-network-instance"`
	ΛBComponentName []ygot.Annotation `path:"@b-component-name" ygotAnnotation:"true"`
	BackboneSrcMac  *string           `path:"backbone-src-mac" module:"openconfig-network-instance"`
	ΛBackboneSrcMac []ygot.Annotation `path:"@backbone-src-mac" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) IsYANGGoStruct() {
}

// GetBComponentName retrieves the value of the leaf BComponentName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BComponentName is set, it can
// safely use t.GetBComponentName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BComponentName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) GetBComponentName() string {
	if t == nil || t.BComponentName == nil {
		return ""
	}
	return *t.BComponentName
}

// GetBackboneSrcMac retrieves the value of the leaf BackboneSrcMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BackboneSrcMac is set, it can
// safely use t.GetBackboneSrcMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BackboneSrcMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) GetBackboneSrcMac() string {
	if t == nil || t.BackboneSrcMac == nil {
		return ""
	}
	return *t.BackboneSrcMac
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb/b-component/i-components YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents struct {
	ΛMetadata   []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	IComponent  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent `path:"i-component" module:"openconfig-network-instance"`
	ΛIComponent []ygot.Annotation                                                                                                                            `path:"@i-component" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) IsYANGGoStruct() {
}

// NewIComponent creates a new entry in the IComponent list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) NewIComponent(ISid uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.IComponent == nil {
		t.IComponent = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent)
	}

	key := ISid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.IComponent[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list IComponent", key)
	}

	t.IComponent[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent{
		ISid: &ISid,
	}

	return t.IComponent[key], nil
}

// RenameIComponent renames an entry in the list IComponent within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) RenameIComponent(oldK, newK uint32) error {
	if _, ok := t.IComponent[newK]; ok {
		return fmt.Errorf("key %v already exists in IComponent", newK)
	}

	e, ok := t.IComponent[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in IComponent", oldK)
	}
	e.ISid = &newK

	t.IComponent[newK] = e
	delete(t.IComponent, oldK)
	return nil
}

// GetOrCreateIComponentMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) GetOrCreateIComponentMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent {
	if t.IComponent == nil {
		t.IComponent = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent)
	}
	return t.IComponent
}

// GetOrCreateIComponent retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) GetOrCreateIComponent(ISid uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent {

	key := ISid

	if v, ok := t.IComponent[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIComponent(ISid)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIComponent got unexpected error: %v", err))
	}
	return v
}

// GetIComponent retrieves the value with the specified key from
// the IComponent map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) GetIComponent(ISid uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent {

	if t == nil {
		return nil
	}

	key := ISid

	if lm, ok := t.IComponent[key]; ok {
		return lm
	}
	return nil
}

// AppendIComponent appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent struct to the
// list IComponent of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) AppendIComponent(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) error {
	if v.ISid == nil {
		return fmt.Errorf("invalid nil key received for ISid")
	}

	key := *v.ISid

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.IComponent == nil {
		t.IComponent = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent)
	}

	if _, ok := t.IComponent[key]; ok {
		return fmt.Errorf("duplicate key for list IComponent %v", key)
	}

	t.IComponent[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.IComponent {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb/b-component/i-components/i-component YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent struct {
	ΛMetadata []ygot.Annotation                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	ISid      *uint32                                                                                                                                  `path:"i-sid" module:"openconfig-network-instance"`
	ΛISid     []ygot.Annotation                                                                                                                        `path:"@i-sid" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetISid retrieves the value of the leaf ISid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ISid is set, it can
// safely use t.GetISid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ISid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) GetISid() uint32 {
	if t == nil || t.ISid == nil {
		return 0
	}
	return *t.ISid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ISid == nil {
		return nil, fmt.Errorf("nil value for key ISid")
	}

	return map[string]interface{}{
		"i-sid": *t.ISid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb/b-component/i-components/i-component/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ISid      *uint32           `path:"i-sid" module:"openconfig-network-instance"`
	ΛISid     []ygot.Annotation `path:"@i-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config) IsYANGGoStruct() {
}

// GetISid retrieves the value of the leaf ISid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ISid is set, it can
// safely use t.GetISid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ISid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config) GetISid() uint32 {
	if t == nil || t.ISid == nil {
		return 0
	}
	return *t.ISid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb/b-component/i-components/i-component/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ISid      *uint32           `path:"i-sid" module:"openconfig-network-instance"`
	ΛISid     []ygot.Annotation `path:"@i-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State) IsYANGGoStruct() {
}

// GetISid retrieves the value of the leaf ISid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ISid is set, it can
// safely use t.GetISid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ISid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State) GetISid() uint32 {
	if t == nil || t.ISid == nil {
		return 0
	}
	return *t.ISid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_IComponents_IComponent_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/pbb/b-component/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BComponentName  *string           `path:"b-component-name" module:"openconfig-network-instance"`
	ΛBComponentName []ygot.Annotation `path:"@b-component-name" ygotAnnotation:"true"`
	BackboneSrcMac  *string           `path:"backbone-src-mac" module:"openconfig-network-instance"`
	ΛBackboneSrcMac []ygot.Annotation `path:"@backbone-src-mac" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) IsYANGGoStruct() {
}

// GetBComponentName retrieves the value of the leaf BComponentName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BComponentName is set, it can
// safely use t.GetBComponentName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BComponentName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) GetBComponentName() string {
	if t == nil || t.BComponentName == nil {
		return ""
	}
	return *t.BComponentName
}

// GetBackboneSrcMac retrieves the value of the leaf BackboneSrcMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BackboneSrcMac is set, it can
// safely use t.GetBackboneSrcMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BackboneSrcMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) GetBackboneSrcMac() string {
	if t == nil || t.BackboneSrcMac == nil {
		return ""
	}
	return *t.BackboneSrcMac
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Pbb_BComponent_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State struct {
	ΛMetadata           []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	ControlWordEnabled  *bool                                                                                                                     `path:"control-word-enabled" module:"openconfig-network-instance"`
	ΛControlWordEnabled []ygot.Annotation                                                                                                         `path:"@control-word-enabled" ygotAnnotation:"true"`
	EncapsulationType   E_OpenconfigNetworkInstanceTypes_ENCAPSULATION                                                                            `path:"encapsulation-type" module:"openconfig-network-instance"`
	ΛEncapsulationType  []ygot.Annotation                                                                                                         `path:"@encapsulation-type" ygotAnnotation:"true"`
	Evi                 *string                                                                                                                   `path:"evi" module:"openconfig-network-instance"`
	ΛEvi                []ygot.Annotation                                                                                                         `path:"@evi" ygotAnnotation:"true"`
	MulticastGroup      *string                                                                                                                   `path:"multicast-group" module:"openconfig-network-instance"`
	ΛMulticastGroup     []ygot.Annotation                                                                                                         `path:"@multicast-group" ygotAnnotation:"true"`
	MulticastMask       *string                                                                                                                   `path:"multicast-mask" module:"openconfig-network-instance"`
	ΛMulticastMask      []ygot.Annotation                                                                                                         `path:"@multicast-mask" ygotAnnotation:"true"`
	ReplicationMode     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode       `path:"replication-mode" module:"openconfig-network-instance"`
	ΛReplicationMode    []ygot.Annotation                                                                                                         `path:"@replication-mode" ygotAnnotation:"true"`
	RouteDistinguisher  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union `path:"route-distinguisher" module:"openconfig-network-instance"`
	ΛRouteDistinguisher []ygot.Annotation                                                                                                         `path:"@route-distinguisher" ygotAnnotation:"true"`
	ServiceType         E_OpenconfigEvpnTypes_EVPN_TYPE                                                                                           `path:"service-type" module:"openconfig-network-instance"`
	ΛServiceType        []ygot.Annotation                                                                                                         `path:"@service-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) IsYANGGoStruct() {
}

// GetControlWordEnabled retrieves the value of the leaf ControlWordEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ControlWordEnabled is set, it can
// safely use t.GetControlWordEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ControlWordEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetControlWordEnabled() bool {
	if t == nil || t.ControlWordEnabled == nil {
		return false
	}
	return *t.ControlWordEnabled
}

// GetEncapsulationType retrieves the value of the leaf EncapsulationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EncapsulationType is set, it can
// safely use t.GetEncapsulationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EncapsulationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetEncapsulationType() E_OpenconfigNetworkInstanceTypes_ENCAPSULATION {
	if t == nil || t.EncapsulationType == 0 {
		return 0
	}
	return t.EncapsulationType
}

// GetEvi retrieves the value of the leaf Evi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Evi is set, it can
// safely use t.GetEvi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Evi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetEvi() string {
	if t == nil || t.Evi == nil {
		return ""
	}
	return *t.Evi
}

// GetMulticastGroup retrieves the value of the leaf MulticastGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastGroup is set, it can
// safely use t.GetMulticastGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetMulticastGroup() string {
	if t == nil || t.MulticastGroup == nil {
		return ""
	}
	return *t.MulticastGroup
}

// GetMulticastMask retrieves the value of the leaf MulticastMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastMask is set, it can
// safely use t.GetMulticastMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetMulticastMask() string {
	if t == nil || t.MulticastMask == nil {
		return ""
	}
	return *t.MulticastMask
}

// GetReplicationMode retrieves the value of the leaf ReplicationMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReplicationMode is set, it can
// safely use t.GetReplicationMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReplicationMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetReplicationMode() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode {
	if t == nil || t.ReplicationMode == 0 {
		return 0
	}
	return t.ReplicationMode
}

// GetRouteDistinguisher retrieves the value of the leaf RouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteDistinguisher is set, it can
// safely use t.GetRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetRouteDistinguisher() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union {
	if t == nil || t.RouteDistinguisher == nil {
		return nil
	}
	return t.RouteDistinguisher
}

// GetServiceType retrieves the value of the leaf ServiceType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ServiceType is set, it can
// safely use t.GetServiceType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ServiceType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) GetServiceType() E_OpenconfigEvpnTypes_EVPN_TYPE {
	if t == nil || t.ServiceType == 0 {
		return 0
	}
	return t.ServiceType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/state/route-distinguisher within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_State_RouteDistinguisher_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan struct {
	ΛMetadata               []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	AnycastSourceInterface  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface `path:"anycast-source-interface" module:"openconfig-network-instance"`
	ΛAnycastSourceInterface []ygot.Annotation                                                                                                        `path:"@anycast-source-interface" ygotAnnotation:"true"`
	Config                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config                 `path:"config" module:"openconfig-network-instance"`
	ΛConfig                 []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State                  `path:"state" module:"openconfig-network-instance"`
	ΛState                  []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) IsYANGGoStruct() {
}

// GetOrCreateAnycastSourceInterface retrieves the value of the AnycastSourceInterface field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) GetOrCreateAnycastSourceInterface() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface {
	if t.AnycastSourceInterface != nil {
		return t.AnycastSourceInterface
	}
	t.AnycastSourceInterface = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface{}
	return t.AnycastSourceInterface
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State{}
	return t.State
}

// GetAnycastSourceInterface returns the value of the AnycastSourceInterface struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan. If the receiver or the field AnycastSourceInterface is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) GetAnycastSourceInterface() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface {
	if t != nil && t.AnycastSourceInterface != nil {
		return t.AnycastSourceInterface
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AnycastSourceInterface.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/anycast-source-interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/anycast-source-interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/anycast-source-interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_AnycastSourceInterface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config struct {
	ΛMetadata                       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HostReachabilityBgp             *bool             `path:"host-reachability-bgp" module:"openconfig-network-instance"`
	ΛHostReachabilityBgp            []ygot.Annotation `path:"@host-reachability-bgp" ygotAnnotation:"true"`
	MulticastGroup                  *string           `path:"multicast-group" module:"openconfig-network-instance"`
	ΛMulticastGroup                 []ygot.Annotation `path:"@multicast-group" ygotAnnotation:"true"`
	MulticastMask                   *string           `path:"multicast-mask" module:"openconfig-network-instance"`
	ΛMulticastMask                  []ygot.Annotation `path:"@multicast-mask" ygotAnnotation:"true"`
	OverlayEndpoint                 *string           `path:"overlay-endpoint" module:"openconfig-network-instance"`
	ΛOverlayEndpoint                []ygot.Annotation `path:"@overlay-endpoint" ygotAnnotation:"true"`
	OverlayEndpointNetworkInstance  *string           `path:"overlay-endpoint-network-instance" module:"openconfig-network-instance"`
	ΛOverlayEndpointNetworkInstance []ygot.Annotation `path:"@overlay-endpoint-network-instance" ygotAnnotation:"true"`
	Vni                             *uint32           `path:"vni" module:"openconfig-network-instance"`
	ΛVni                            []ygot.Annotation `path:"@vni" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) IsYANGGoStruct() {
}

// GetHostReachabilityBgp retrieves the value of the leaf HostReachabilityBgp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HostReachabilityBgp is set, it can
// safely use t.GetHostReachabilityBgp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HostReachabilityBgp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) GetHostReachabilityBgp() bool {
	if t == nil || t.HostReachabilityBgp == nil {
		return false
	}
	return *t.HostReachabilityBgp
}

// GetMulticastGroup retrieves the value of the leaf MulticastGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastGroup is set, it can
// safely use t.GetMulticastGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) GetMulticastGroup() string {
	if t == nil || t.MulticastGroup == nil {
		return ""
	}
	return *t.MulticastGroup
}

// GetMulticastMask retrieves the value of the leaf MulticastMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastMask is set, it can
// safely use t.GetMulticastMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) GetMulticastMask() string {
	if t == nil || t.MulticastMask == nil {
		return ""
	}
	return *t.MulticastMask
}

// GetOverlayEndpoint retrieves the value of the leaf OverlayEndpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OverlayEndpoint is set, it can
// safely use t.GetOverlayEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OverlayEndpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) GetOverlayEndpoint() string {
	if t == nil || t.OverlayEndpoint == nil {
		return ""
	}
	return *t.OverlayEndpoint
}

// GetOverlayEndpointNetworkInstance retrieves the value of the leaf OverlayEndpointNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OverlayEndpointNetworkInstance is set, it can
// safely use t.GetOverlayEndpointNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OverlayEndpointNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) GetOverlayEndpointNetworkInstance() string {
	if t == nil || t.OverlayEndpointNetworkInstance == nil {
		return ""
	}
	return *t.OverlayEndpointNetworkInstance
}

// GetVni retrieves the value of the leaf Vni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vni is set, it can
// safely use t.GetVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) GetVni() uint32 {
	if t == nil || t.Vni == nil {
		return 0
	}
	return *t.Vni
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State represents the /openconfig-network-instance/network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State struct {
	ΛMetadata                       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HostReachabilityBgp             *bool             `path:"host-reachability-bgp" module:"openconfig-network-instance"`
	ΛHostReachabilityBgp            []ygot.Annotation `path:"@host-reachability-bgp" ygotAnnotation:"true"`
	MulticastGroup                  *string           `path:"multicast-group" module:"openconfig-network-instance"`
	ΛMulticastGroup                 []ygot.Annotation `path:"@multicast-group" ygotAnnotation:"true"`
	MulticastMask                   *string           `path:"multicast-mask" module:"openconfig-network-instance"`
	ΛMulticastMask                  []ygot.Annotation `path:"@multicast-mask" ygotAnnotation:"true"`
	OverlayEndpoint                 *string           `path:"overlay-endpoint" module:"openconfig-network-instance"`
	ΛOverlayEndpoint                []ygot.Annotation `path:"@overlay-endpoint" ygotAnnotation:"true"`
	OverlayEndpointNetworkInstance  *string           `path:"overlay-endpoint-network-instance" module:"openconfig-network-instance"`
	ΛOverlayEndpointNetworkInstance []ygot.Annotation `path:"@overlay-endpoint-network-instance" ygotAnnotation:"true"`
	Vni                             *uint32           `path:"vni" module:"openconfig-network-instance"`
	ΛVni                            []ygot.Annotation `path:"@vni" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) IsYANGGoStruct() {
}

// GetHostReachabilityBgp retrieves the value of the leaf HostReachabilityBgp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HostReachabilityBgp is set, it can
// safely use t.GetHostReachabilityBgp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HostReachabilityBgp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) GetHostReachabilityBgp() bool {
	if t == nil || t.HostReachabilityBgp == nil {
		return false
	}
	return *t.HostReachabilityBgp
}

// GetMulticastGroup retrieves the value of the leaf MulticastGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastGroup is set, it can
// safely use t.GetMulticastGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) GetMulticastGroup() string {
	if t == nil || t.MulticastGroup == nil {
		return ""
	}
	return *t.MulticastGroup
}

// GetMulticastMask retrieves the value of the leaf MulticastMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastMask is set, it can
// safely use t.GetMulticastMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) GetMulticastMask() string {
	if t == nil || t.MulticastMask == nil {
		return ""
	}
	return *t.MulticastMask
}

// GetOverlayEndpoint retrieves the value of the leaf OverlayEndpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OverlayEndpoint is set, it can
// safely use t.GetOverlayEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OverlayEndpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) GetOverlayEndpoint() string {
	if t == nil || t.OverlayEndpoint == nil {
		return ""
	}
	return *t.OverlayEndpoint
}

// GetOverlayEndpointNetworkInstance retrieves the value of the leaf OverlayEndpointNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OverlayEndpointNetworkInstance is set, it can
// safely use t.GetOverlayEndpointNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OverlayEndpointNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) GetOverlayEndpointNetworkInstance() string {
	if t == nil || t.OverlayEndpointNetworkInstance == nil {
		return ""
	}
	return *t.OverlayEndpointNetworkInstance
}

// GetVni retrieves the value of the leaf Vni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vni is set, it can
// safely use t.GetVni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) GetVni() uint32 {
	if t == nil || t.Vni == nil {
		return 0
	}
	return *t.Vni
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Vxlan_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb represents the /openconfig-network-instance/network-instances/network-instance/fdb YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb struct {
	ΛMetadata    []ygot.Annotation                                                           `path:"@" ygotAnnotation:"true"`
	ArpProxy     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy    `path:"arp-proxy" module:"openconfig-network-instance"`
	ΛArpProxy    []ygot.Annotation                                                           `path:"@arp-proxy" ygotAnnotation:"true"`
	Config       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config      `path:"config" module:"openconfig-network-instance"`
	ΛConfig      []ygot.Annotation                                                           `path:"@config" ygotAnnotation:"true"`
	L2Rib        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib       `path:"l2rib" module:"openconfig-network-instance"`
	ΛL2Rib       []ygot.Annotation                                                           `path:"@l2rib" ygotAnnotation:"true"`
	MacMobility  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility `path:"mac-mobility" module:"openconfig-network-instance"`
	ΛMacMobility []ygot.Annotation                                                           `path:"@mac-mobility" ygotAnnotation:"true"`
	MacTable     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable    `path:"mac-table" module:"openconfig-network-instance"`
	ΛMacTable    []ygot.Annotation                                                           `path:"@mac-table" ygotAnnotation:"true"`
	NdProxy      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy     `path:"nd-proxy" module:"openconfig-network-instance"`
	ΛNdProxy     []ygot.Annotation                                                           `path:"@nd-proxy" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State       `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) IsYANGGoStruct() {}

// GetOrCreateArpProxy retrieves the value of the ArpProxy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetOrCreateArpProxy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy {
	if t.ArpProxy != nil {
		return t.ArpProxy
	}
	t.ArpProxy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy{}
	return t.ArpProxy
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config{}
	return t.Config
}

// GetOrCreateL2Rib retrieves the value of the L2Rib field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetOrCreateL2Rib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib {
	if t.L2Rib != nil {
		return t.L2Rib
	}
	t.L2Rib = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib{}
	return t.L2Rib
}

// GetOrCreateMacMobility retrieves the value of the MacMobility field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetOrCreateMacMobility() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility {
	if t.MacMobility != nil {
		return t.MacMobility
	}
	t.MacMobility = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility{}
	return t.MacMobility
}

// GetOrCreateMacTable retrieves the value of the MacTable field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetOrCreateMacTable() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable {
	if t.MacTable != nil {
		return t.MacTable
	}
	t.MacTable = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable{}
	return t.MacTable
}

// GetOrCreateNdProxy retrieves the value of the NdProxy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetOrCreateNdProxy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy {
	if t.NdProxy != nil {
		return t.NdProxy
	}
	t.NdProxy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy{}
	return t.NdProxy
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State{}
	return t.State
}

// GetArpProxy returns the value of the ArpProxy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb. If the receiver or the field ArpProxy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetArpProxy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy {
	if t != nil && t.ArpProxy != nil {
		return t.ArpProxy
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetL2Rib returns the value of the L2Rib struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb. If the receiver or the field L2Rib is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetL2Rib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib {
	if t != nil && t.L2Rib != nil {
		return t.L2Rib
	}
	return nil
}

// GetMacMobility returns the value of the MacMobility struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb. If the receiver or the field MacMobility is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetMacMobility() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility {
	if t != nil && t.MacMobility != nil {
		return t.MacMobility
	}
	return nil
}

// GetMacTable returns the value of the MacTable struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb. If the receiver or the field MacTable is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetMacTable() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable {
	if t != nil && t.MacTable != nil {
		return t.MacTable
	}
	return nil
}

// GetNdProxy returns the value of the NdProxy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb. If the receiver or the field NdProxy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetNdProxy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy {
	if t != nil && t.NdProxy != nil {
		return t.NdProxy
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.ArpProxy.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.L2Rib.PopulateDefaults()
	t.MacMobility.PopulateDefaults()
	t.MacTable.PopulateDefaults()
	t.NdProxy.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy represents the /openconfig-network-instance/network-instances/network-instance/fdb/arp-proxy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy struct {
	ΛMetadata []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config represents the /openconfig-network-instance/network-instances/network-instance/fdb/arp-proxy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ArpSuppression                *bool             `path:"arp-suppression" module:"openconfig-network-instance"`
	ΛArpSuppression               []ygot.Annotation `path:"@arp-suppression" ygotAnnotation:"true"`
	DuplicateIpDetectionInterval  *uint16           `path:"duplicate-ip-detection-interval" module:"openconfig-network-instance"`
	ΛDuplicateIpDetectionInterval []ygot.Annotation `path:"@duplicate-ip-detection-interval" ygotAnnotation:"true"`
	Enable                        *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable                       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	IpMobilityThreshold           *uint16           `path:"ip-mobility-threshold" module:"openconfig-network-instance"`
	ΛIpMobilityThreshold          []ygot.Annotation `path:"@ip-mobility-threshold" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) IsYANGGoStruct() {
}

// GetArpSuppression retrieves the value of the leaf ArpSuppression from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ArpSuppression is set, it can
// safely use t.GetArpSuppression() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ArpSuppression == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) GetArpSuppression() bool {
	if t == nil || t.ArpSuppression == nil {
		return false
	}
	return *t.ArpSuppression
}

// GetDuplicateIpDetectionInterval retrieves the value of the leaf DuplicateIpDetectionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplicateIpDetectionInterval is set, it can
// safely use t.GetDuplicateIpDetectionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplicateIpDetectionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) GetDuplicateIpDetectionInterval() uint16 {
	if t == nil || t.DuplicateIpDetectionInterval == nil {
		return 0
	}
	return *t.DuplicateIpDetectionInterval
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetIpMobilityThreshold retrieves the value of the leaf IpMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpMobilityThreshold is set, it can
// safely use t.GetIpMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) GetIpMobilityThreshold() uint16 {
	if t == nil || t.IpMobilityThreshold == nil {
		return 0
	}
	return *t.IpMobilityThreshold
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ArpSuppression == nil {
		var v bool = false
		t.ArpSuppression = &v
	}
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/arp-proxy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ArpSuppression                *bool             `path:"arp-suppression" module:"openconfig-network-instance"`
	ΛArpSuppression               []ygot.Annotation `path:"@arp-suppression" ygotAnnotation:"true"`
	DuplicateIpDetectionInterval  *uint16           `path:"duplicate-ip-detection-interval" module:"openconfig-network-instance"`
	ΛDuplicateIpDetectionInterval []ygot.Annotation `path:"@duplicate-ip-detection-interval" ygotAnnotation:"true"`
	Enable                        *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable                       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	IpMobilityThreshold           *uint16           `path:"ip-mobility-threshold" module:"openconfig-network-instance"`
	ΛIpMobilityThreshold          []ygot.Annotation `path:"@ip-mobility-threshold" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) IsYANGGoStruct() {
}

// GetArpSuppression retrieves the value of the leaf ArpSuppression from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ArpSuppression is set, it can
// safely use t.GetArpSuppression() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ArpSuppression == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) GetArpSuppression() bool {
	if t == nil || t.ArpSuppression == nil {
		return false
	}
	return *t.ArpSuppression
}

// GetDuplicateIpDetectionInterval retrieves the value of the leaf DuplicateIpDetectionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplicateIpDetectionInterval is set, it can
// safely use t.GetDuplicateIpDetectionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplicateIpDetectionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) GetDuplicateIpDetectionInterval() uint16 {
	if t == nil || t.DuplicateIpDetectionInterval == nil {
		return 0
	}
	return *t.DuplicateIpDetectionInterval
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetIpMobilityThreshold retrieves the value of the leaf IpMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpMobilityThreshold is set, it can
// safely use t.GetIpMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) GetIpMobilityThreshold() uint16 {
	if t == nil || t.IpMobilityThreshold == nil {
		return 0
	}
	return *t.IpMobilityThreshold
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ArpSuppression == nil {
		var v bool = false
		t.ArpSuppression = &v
	}
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_ArpProxy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config represents the /openconfig-network-instance/network-instances/network-instance/fdb/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config struct {
	ΛMetadata                      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AnycastGatewayMac              *string           `path:"anycast-gateway-mac" module:"openconfig-network-instance"`
	ΛAnycastGatewayMac             []ygot.Annotation `path:"@anycast-gateway-mac" ygotAnnotation:"true"`
	FloodUnknownUnicastSupression  *bool             `path:"flood-unknown-unicast-supression" module:"openconfig-network-instance"`
	ΛFloodUnknownUnicastSupression []ygot.Annotation `path:"@flood-unknown-unicast-supression" ygotAnnotation:"true"`
	MacAgingTime                   *uint16           `path:"mac-aging-time" module:"openconfig-network-instance"`
	ΛMacAgingTime                  []ygot.Annotation `path:"@mac-aging-time" ygotAnnotation:"true"`
	MacLearning                    *bool             `path:"mac-learning" module:"openconfig-network-instance"`
	ΛMacLearning                   []ygot.Annotation `path:"@mac-learning" ygotAnnotation:"true"`
	MaximumEntries                 *uint16           `path:"maximum-entries" module:"openconfig-network-instance"`
	ΛMaximumEntries                []ygot.Annotation `path:"@maximum-entries" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) IsYANGGoStruct() {}

// GetAnycastGatewayMac retrieves the value of the leaf AnycastGatewayMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AnycastGatewayMac is set, it can
// safely use t.GetAnycastGatewayMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AnycastGatewayMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) GetAnycastGatewayMac() string {
	if t == nil || t.AnycastGatewayMac == nil {
		return ""
	}
	return *t.AnycastGatewayMac
}

// GetFloodUnknownUnicastSupression retrieves the value of the leaf FloodUnknownUnicastSupression from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FloodUnknownUnicastSupression is set, it can
// safely use t.GetFloodUnknownUnicastSupression() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FloodUnknownUnicastSupression == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) GetFloodUnknownUnicastSupression() bool {
	if t == nil || t.FloodUnknownUnicastSupression == nil {
		return false
	}
	return *t.FloodUnknownUnicastSupression
}

// GetMacAgingTime retrieves the value of the leaf MacAgingTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAgingTime is set, it can
// safely use t.GetMacAgingTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAgingTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) GetMacAgingTime() uint16 {
	if t == nil || t.MacAgingTime == nil {
		return 0
	}
	return *t.MacAgingTime
}

// GetMacLearning retrieves the value of the leaf MacLearning from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacLearning is set, it can
// safely use t.GetMacLearning() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacLearning == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) GetMacLearning() bool {
	if t == nil || t.MacLearning == nil {
		return false
	}
	return *t.MacLearning
}

// GetMaximumEntries retrieves the value of the leaf MaximumEntries from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumEntries is set, it can
// safely use t.GetMaximumEntries() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumEntries == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) GetMaximumEntries() uint16 {
	if t == nil || t.MaximumEntries == nil {
		return 0
	}
	return *t.MaximumEntries
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.FloodUnknownUnicastSupression == nil {
		var v bool = false
		t.FloodUnknownUnicastSupression = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib struct {
	ΛMetadata   []ygot.Annotation                                                                `path:"@" ygotAnnotation:"true"`
	MacIpTable  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable `path:"mac-ip-table" module:"openconfig-network-instance"`
	ΛMacIpTable []ygot.Annotation                                                                `path:"@mac-ip-table" ygotAnnotation:"true"`
	MacTable    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable   `path:"mac-table" module:"openconfig-network-instance"`
	ΛMacTable   []ygot.Annotation                                                                `path:"@mac-table" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) IsYANGGoStruct() {}

// GetOrCreateMacIpTable retrieves the value of the MacIpTable field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) GetOrCreateMacIpTable() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable {
	if t.MacIpTable != nil {
		return t.MacIpTable
	}
	t.MacIpTable = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable{}
	return t.MacIpTable
}

// GetOrCreateMacTable retrieves the value of the MacTable field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) GetOrCreateMacTable() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable {
	if t.MacTable != nil {
		return t.MacTable
	}
	t.MacTable = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable{}
	return t.MacTable
}

// GetMacIpTable returns the value of the MacIpTable struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib. If the receiver or the field MacIpTable is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) GetMacIpTable() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable {
	if t != nil && t.MacIpTable != nil {
		return t.MacIpTable
	}
	return nil
}

// GetMacTable returns the value of the MacTable struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib. If the receiver or the field MacTable is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) GetMacTable() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable {
	if t != nil && t.MacTable != nil {
		return t.MacTable
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.MacIpTable.PopulateDefaults()
	t.MacTable.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable struct {
	ΛMetadata      []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	Entries        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries       `path:"entries" module:"openconfig-network-instance"`
	ΛEntries       []ygot.Annotation                                                                              `path:"@entries" ygotAnnotation:"true"`
	NextHopGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups `path:"next-hop-groups" module:"openconfig-network-instance"`
	ΛNextHopGroups []ygot.Annotation                                                                              `path:"@next-hop-groups" ygotAnnotation:"true"`
	NextHops       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops      `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops      []ygot.Annotation                                                                              `path:"@next-hops" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) IsYANGGoStruct() {
}

// GetOrCreateEntries retrieves the value of the Entries field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) GetOrCreateEntries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries {
	if t.Entries != nil {
		return t.Entries
	}
	t.Entries = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries{}
	return t.Entries
}

// GetOrCreateNextHopGroups retrieves the value of the NextHopGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) GetOrCreateNextHopGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups {
	if t.NextHopGroups != nil {
		return t.NextHopGroups
	}
	t.NextHopGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups{}
	return t.NextHopGroups
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops{}
	return t.NextHops
}

// GetEntries returns the value of the Entries struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable. If the receiver or the field Entries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) GetEntries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries {
	if t != nil && t.Entries != nil {
		return t.Entries
	}
	return nil
}

// GetNextHopGroups returns the value of the NextHopGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable. If the receiver or the field NextHopGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) GetNextHopGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups {
	if t != nil && t.NextHopGroups != nil {
		return t.NextHopGroups
	}
	return nil
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Entries.PopulateDefaults()
	t.NextHopGroups.PopulateDefaults()
	t.NextHops.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Entry     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry `path:"entry" module:"openconfig-network-instance"`
	ΛEntry    []ygot.Annotation                                                                                                                                                                                    `path:"@entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key represents the key for list Entry of element /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key struct {
	MacAddress string `path:"mac-address"`
	HostIp     string `path:"host-ip"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"mac-address": t.MacAddress,
		"host-ip":     t.HostIp,
	}, nil
}

// NewEntry creates a new entry in the Entry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) NewEntry(MacAddress string, HostIp string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Entry == nil {
		t.Entry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key{
		MacAddress: MacAddress,
		HostIp:     HostIp,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Entry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Entry", key)
	}

	t.Entry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry{
		MacAddress: &MacAddress,
		HostIp:     &HostIp,
	}

	return t.Entry[key], nil
}

// RenameEntry renames an entry in the list Entry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) RenameEntry(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key) error {
	if _, ok := t.Entry[newK]; ok {
		return fmt.Errorf("key %v already exists in Entry", newK)
	}

	e, ok := t.Entry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Entry", oldK)
	}
	e.MacAddress = &newK.MacAddress
	e.HostIp = &newK.HostIp

	t.Entry[newK] = e
	delete(t.Entry, oldK)
	return nil
}

// GetOrCreateEntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) GetOrCreateEntryMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry {
	if t.Entry == nil {
		t.Entry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry)
	}
	return t.Entry
}

// GetOrCreateEntry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) GetOrCreateEntry(MacAddress string, HostIp string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key{
		MacAddress: MacAddress,
		HostIp:     HostIp,
	}

	if v, ok := t.Entry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEntry(MacAddress, HostIp)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEntry got unexpected error: %v", err))
	}
	return v
}

// GetEntry retrieves the value with the specified key from
// the Entry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) GetEntry(MacAddress string, HostIp string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key{
		MacAddress: MacAddress,
		HostIp:     HostIp,
	}

	if lm, ok := t.Entry[key]; ok {
		return lm
	}
	return nil
}

// AppendEntry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry struct to the
// list Entry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) AppendEntry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) error {
	if v.MacAddress == nil {
		return fmt.Errorf("invalid nil key for MacAddress")
	}

	if v.HostIp == nil {
		return fmt.Errorf("invalid nil key for HostIp")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key{
		MacAddress: *v.MacAddress,
		HostIp:     *v.HostIp,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Entry == nil {
		t.Entry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry)
	}

	if _, ok := t.Entry[key]; ok {
		return fmt.Errorf("duplicate key for list Entry %v", key)
	}

	t.Entry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Entry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry struct {
	ΛMetadata   []ygot.Annotation                                                                                        `path:"@" ygotAnnotation:"true"`
	HostIp      *string                                                                                                  `path:"host-ip" module:"openconfig-network-instance"`
	ΛHostIp     []ygot.Annotation                                                                                        `path:"@host-ip" ygotAnnotation:"true"`
	MacAddress  *string                                                                                                  `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation                                                                                        `path:"@mac-address" ygotAnnotation:"true"`
	Producers   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers `path:"producers" module:"openconfig-network-instance"`
	ΛProducers  []ygot.Annotation                                                                                        `path:"@producers" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State     `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) IsYANGGoStruct() {
}

// GetOrCreateProducers retrieves the value of the Producers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) GetOrCreateProducers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers {
	if t.Producers != nil {
		return t.Producers
	}
	t.Producers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers{}
	return t.Producers
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State{}
	return t.State
}

// GetProducers returns the value of the Producers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry. If the receiver or the field Producers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) GetProducers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers {
	if t != nil && t.Producers != nil {
		return t.Producers
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetHostIp retrieves the value of the leaf HostIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HostIp is set, it can
// safely use t.GetHostIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HostIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) GetHostIp() string {
	if t == nil || t.HostIp == nil {
		return ""
	}
	return *t.HostIp
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Producers.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.HostIp == nil {
		return nil, fmt.Errorf("nil value for key HostIp")
	}

	if t.MacAddress == nil {
		return nil, fmt.Errorf("nil value for key MacAddress")
	}

	return map[string]interface{}{
		"host-ip":     *t.HostIp,
		"mac-address": *t.MacAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry/producers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Producer  map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer `path:"producer" module:"openconfig-network-instance"`
	ΛProducer []ygot.Annotation                                                                                                                                                                                                                                       `path:"@producer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) IsYANGGoStruct() {
}

// NewProducer creates a new entry in the Producer list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) NewProducer(Producer E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Producer == nil {
		t.Producer = make(map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer)
	}

	key := Producer

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Producer[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Producer", key)
	}

	t.Producer[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer{
		Producer: Producer,
	}

	return t.Producer[key], nil
}

// RenameProducer renames an entry in the list Producer within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) RenameProducer(oldK, newK E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) error {
	if _, ok := t.Producer[newK]; ok {
		return fmt.Errorf("key %v already exists in Producer", newK)
	}

	e, ok := t.Producer[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Producer", oldK)
	}
	e.Producer = newK

	t.Producer[newK] = e
	delete(t.Producer, oldK)
	return nil
}

// GetOrCreateProducerMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) GetOrCreateProducerMap() map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer {
	if t.Producer == nil {
		t.Producer = make(map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer)
	}
	return t.Producer
}

// GetOrCreateProducer retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) GetOrCreateProducer(Producer E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer {

	key := Producer

	if v, ok := t.Producer[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewProducer(Producer)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateProducer got unexpected error: %v", err))
	}
	return v
}

// GetProducer retrieves the value with the specified key from
// the Producer map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) GetProducer(Producer E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer {

	if t == nil {
		return nil
	}

	key := Producer

	if lm, ok := t.Producer[key]; ok {
		return lm
	}
	return nil
}

// AppendProducer appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer struct to the
// list Producer of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) AppendProducer(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) error {
	key := v.Producer

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Producer == nil {
		t.Producer = make(map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer)
	}

	if _, ok := t.Producer[key]; ok {
		return fmt.Errorf("duplicate key for list Producer %v", key)
	}

	t.Producer[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Producer {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry/producers/producer YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Producer  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer `path:"producer" module:"openconfig-network-instance"`
	ΛProducer []ygot.Annotation                                                                                                                 `path:"@producer" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State           `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetProducer retrieves the value of the leaf Producer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Producer is set, it can
// safely use t.GetProducer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Producer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) GetProducer() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer {
	if t == nil || t.Producer == 0 {
		return 0
	}
	return t.Producer
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"producer": t.Producer,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry/producers/producer/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Esi            *string                                                                                                                                `path:"esi" module:"openconfig-network-instance"`
	ΛEsi           []ygot.Annotation                                                                                                                      `path:"@esi" ygotAnnotation:"true"`
	MobilityState  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState `path:"mobility-state" module:"openconfig-network-instance"`
	ΛMobilityState []ygot.Annotation                                                                                                                      `path:"@mobility-state" ygotAnnotation:"true"`
	NextHop        *uint64                                                                                                                                `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop       []ygot.Annotation                                                                                                                      `path:"@next-hop" ygotAnnotation:"true"`
	NextHopGroup   []uint64                                                                                                                               `path:"next-hop-group" module:"openconfig-network-instance"`
	ΛNextHopGroup  []ygot.Annotation                                                                                                                      `path:"@next-hop-group" ygotAnnotation:"true"`
	Producer       E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer      `path:"producer" module:"openconfig-network-instance"`
	ΛProducer      []ygot.Annotation                                                                                                                      `path:"@producer" ygotAnnotation:"true"`
	SeqNumber      *uint32                                                                                                                                `path:"seq-number" module:"openconfig-network-instance"`
	ΛSeqNumber     []ygot.Annotation                                                                                                                      `path:"@seq-number" ygotAnnotation:"true"`
	Sticky         *bool                                                                                                                                  `path:"sticky" module:"openconfig-network-instance"`
	ΛSticky        []ygot.Annotation                                                                                                                      `path:"@sticky" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) IsYANGGoStruct() {
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetMobilityState retrieves the value of the leaf MobilityState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MobilityState is set, it can
// safely use t.GetMobilityState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MobilityState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) GetMobilityState() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState {
	if t == nil || t.MobilityState == 0 {
		return 0
	}
	return t.MobilityState
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) GetNextHop() uint64 {
	if t == nil || t.NextHop == nil {
		return 0
	}
	return *t.NextHop
}

// GetNextHopGroup retrieves the value of the leaf NextHopGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHopGroup is set, it can
// safely use t.GetNextHopGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHopGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) GetNextHopGroup() []uint64 {
	if t == nil || t.NextHopGroup == nil {
		return nil
	}
	return t.NextHopGroup
}

// GetProducer retrieves the value of the leaf Producer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Producer is set, it can
// safely use t.GetProducer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Producer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) GetProducer() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer {
	if t == nil || t.Producer == 0 {
		return 0
	}
	return t.Producer
}

// GetSeqNumber retrieves the value of the leaf SeqNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SeqNumber is set, it can
// safely use t.GetSeqNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SeqNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) GetSeqNumber() uint32 {
	if t == nil || t.SeqNumber == nil {
		return 0
	}
	return *t.SeqNumber
}

// GetSticky retrieves the value of the leaf Sticky from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sticky is set, it can
// safely use t.GetSticky() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sticky == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) GetSticky() bool {
	if t == nil || t.Sticky == nil {
		return false
	}
	return *t.Sticky
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Evi         *uint32           `path:"evi" module:"openconfig-network-instance"`
	ΛEvi        []ygot.Annotation `path:"@evi" ygotAnnotation:"true"`
	HostIp      *string           `path:"host-ip" module:"openconfig-network-instance"`
	ΛHostIp     []ygot.Annotation `path:"@host-ip" ygotAnnotation:"true"`
	L2Vni       *uint32           `path:"l2-vni" module:"openconfig-network-instance"`
	ΛL2Vni      []ygot.Annotation `path:"@l2-vni" ygotAnnotation:"true"`
	L3Vni       *uint32           `path:"l3-vni" module:"openconfig-network-instance"`
	ΛL3Vni      []ygot.Annotation `path:"@l3-vni" ygotAnnotation:"true"`
	MacAddress  *string           `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation `path:"@mac-address" ygotAnnotation:"true"`
	Vlan        *uint16           `path:"vlan" module:"openconfig-network-instance"`
	ΛVlan       []ygot.Annotation `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) IsYANGGoStruct() {
}

// GetEvi retrieves the value of the leaf Evi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Evi is set, it can
// safely use t.GetEvi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Evi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) GetEvi() uint32 {
	if t == nil || t.Evi == nil {
		return 0
	}
	return *t.Evi
}

// GetHostIp retrieves the value of the leaf HostIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HostIp is set, it can
// safely use t.GetHostIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HostIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) GetHostIp() string {
	if t == nil || t.HostIp == nil {
		return ""
	}
	return *t.HostIp
}

// GetL2Vni retrieves the value of the leaf L2Vni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if L2Vni is set, it can
// safely use t.GetL2Vni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.L2Vni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) GetL2Vni() uint32 {
	if t == nil || t.L2Vni == nil {
		return 0
	}
	return *t.L2Vni
}

// GetL3Vni retrieves the value of the leaf L3Vni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if L3Vni is set, it can
// safely use t.GetL3Vni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.L3Vni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) GetL3Vni() uint32 {
	if t == nil || t.L3Vni == nil {
		return 0
	}
	return *t.L3Vni
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetVlan retrieves the value of the leaf Vlan from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vlan is set, it can
// safely use t.GetVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vlan == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) GetVlan() uint16 {
	if t == nil || t.Vlan == nil {
		return 0
	}
	return *t.Vlan
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hop-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups struct {
	ΛMetadata     []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	NextHopGroup  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup `path:"next-hop-group" module:"openconfig-network-instance"`
	ΛNextHopGroup []ygot.Annotation                                                                                                      `path:"@next-hop-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) IsYANGGoStruct() {
}

// NewNextHopGroup creates a new entry in the NextHopGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) NewNextHopGroup(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHopGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHopGroup", key)
	}

	t.NextHopGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup{
		Id: &Id,
	}

	return t.NextHopGroup[key], nil
}

// RenameNextHopGroup renames an entry in the list NextHopGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) RenameNextHopGroup(oldK, newK uint64) error {
	if _, ok := t.NextHopGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHopGroup", newK)
	}

	e, ok := t.NextHopGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHopGroup", oldK)
	}
	e.Id = &newK

	t.NextHopGroup[newK] = e
	delete(t.NextHopGroup, oldK)
	return nil
}

// GetOrCreateNextHopGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) GetOrCreateNextHopGroupMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup {
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup)
	}
	return t.NextHopGroup
}

// GetOrCreateNextHopGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) GetOrCreateNextHopGroup(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup {

	key := Id

	if v, ok := t.NextHopGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHopGroup(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHopGroup got unexpected error: %v", err))
	}
	return v
}

// GetNextHopGroup retrieves the value with the specified key from
// the NextHopGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) GetNextHopGroup(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.NextHopGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHopGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup struct to the
// list NextHopGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) AppendNextHopGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup)
	}

	if _, ok := t.NextHopGroup[key]; ok {
		return fmt.Errorf("duplicate key for list NextHopGroup %v", key)
	}

	t.NextHopGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHopGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hop-groups/next-hop-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Id        *uint64                                                                                                              `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                                                    `path:"@id" ygotAnnotation:"true"`
	NextHops  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops []ygot.Annotation                                                                                                    `path:"@next-hops" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State    `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) IsYANGGoStruct() {
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops{}
	return t.NextHops
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State{}
	return t.State
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.NextHops.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hop-groups/next-hop-group/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	NextHop   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                                                                       `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) IsYANGGoStruct() {
}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) NewNextHop(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) RenameNextHop(oldK, newK uint64) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) GetOrCreateNextHopMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) GetOrCreateNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) GetNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hop-groups/next-hop-group/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop struct {
	ΛMetadata []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                                            `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                  `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hop-groups/next-hop-group/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Index     *uint64           `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation `path:"@index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hop-groups/next-hop-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State struct {
	ΛMetadata []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Esi       *string                                                                                                                 `path:"esi" module:"openconfig-network-instance"`
	ΛEsi      []ygot.Annotation                                                                                                       `path:"@esi" ygotAnnotation:"true"`
	Id        *uint64                                                                                                                 `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                                                       `path:"@id" ygotAnnotation:"true"`
	Type      E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                       `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) IsYANGGoStruct() {
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) GetType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	NextHop   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                                            `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) IsYANGGoStruct() {
}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) NewNextHop(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) RenameNextHop(oldK, newK uint64) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) GetOrCreateNextHopMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) GetOrCreateNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) GetNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop struct {
	ΛMetadata []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                 `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                       `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Esi           *string           `path:"esi" module:"openconfig-network-instance"`
	ΛEsi          []ygot.Annotation `path:"@esi" ygotAnnotation:"true"`
	Index         *uint64           `path:"index" module:"openconfig-network-instance"`
	ΛIndex        []ygot.Annotation `path:"@index" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Label         *uint32           `path:"label" module:"openconfig-network-instance"`
	ΛLabel        []ygot.Annotation `path:"@label" ygotAnnotation:"true"`
	PeerIp        *string           `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp       []ygot.Annotation `path:"@peer-ip" ygotAnnotation:"true"`
	Resolved      *bool             `path:"resolved" module:"openconfig-network-instance"`
	ΛResolved     []ygot.Annotation `path:"@resolved" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) GetLabel() uint32 {
	if t == nil || t.Label == nil {
		return 0
	}
	return *t.Label
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetResolved retrieves the value of the leaf Resolved from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Resolved is set, it can
// safely use t.GetResolved() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Resolved == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) GetResolved() bool {
	if t == nil || t.Resolved == nil {
		return false
	}
	return *t.Resolved
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable struct {
	ΛMetadata      []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	Entries        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries       `path:"entries" module:"openconfig-network-instance"`
	ΛEntries       []ygot.Annotation                                                                            `path:"@entries" ygotAnnotation:"true"`
	NextHopGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups `path:"next-hop-groups" module:"openconfig-network-instance"`
	ΛNextHopGroups []ygot.Annotation                                                                            `path:"@next-hop-groups" ygotAnnotation:"true"`
	NextHops       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops      `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops      []ygot.Annotation                                                                            `path:"@next-hops" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) IsYANGGoStruct() {
}

// GetOrCreateEntries retrieves the value of the Entries field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) GetOrCreateEntries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries {
	if t.Entries != nil {
		return t.Entries
	}
	t.Entries = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries{}
	return t.Entries
}

// GetOrCreateNextHopGroups retrieves the value of the NextHopGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) GetOrCreateNextHopGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups {
	if t.NextHopGroups != nil {
		return t.NextHopGroups
	}
	t.NextHopGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups{}
	return t.NextHopGroups
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops{}
	return t.NextHops
}

// GetEntries returns the value of the Entries struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable. If the receiver or the field Entries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) GetEntries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries {
	if t != nil && t.Entries != nil {
		return t.Entries
	}
	return nil
}

// GetNextHopGroups returns the value of the NextHopGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable. If the receiver or the field NextHopGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) GetNextHopGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups {
	if t != nil && t.NextHopGroups != nil {
		return t.NextHopGroups
	}
	return nil
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Entries.PopulateDefaults()
	t.NextHopGroups.PopulateDefaults()
	t.NextHops.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/entries YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries struct {
	ΛMetadata []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	Entry     map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry `path:"entry" module:"openconfig-network-instance"`
	ΛEntry    []ygot.Annotation                                                                                       `path:"@entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) IsYANGGoStruct() {
}

// NewEntry creates a new entry in the Entry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) NewEntry(MacAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Entry == nil {
		t.Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry)
	}

	key := MacAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Entry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Entry", key)
	}

	t.Entry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry{
		MacAddress: &MacAddress,
	}

	return t.Entry[key], nil
}

// RenameEntry renames an entry in the list Entry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) RenameEntry(oldK, newK string) error {
	if _, ok := t.Entry[newK]; ok {
		return fmt.Errorf("key %v already exists in Entry", newK)
	}

	e, ok := t.Entry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Entry", oldK)
	}
	e.MacAddress = &newK

	t.Entry[newK] = e
	delete(t.Entry, oldK)
	return nil
}

// GetOrCreateEntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) GetOrCreateEntryMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry {
	if t.Entry == nil {
		t.Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry)
	}
	return t.Entry
}

// GetOrCreateEntry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) GetOrCreateEntry(MacAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry {

	key := MacAddress

	if v, ok := t.Entry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEntry(MacAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEntry got unexpected error: %v", err))
	}
	return v
}

// GetEntry retrieves the value with the specified key from
// the Entry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) GetEntry(MacAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry {

	if t == nil {
		return nil
	}

	key := MacAddress

	if lm, ok := t.Entry[key]; ok {
		return lm
	}
	return nil
}

// AppendEntry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry struct to the
// list Entry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) AppendEntry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) error {
	if v.MacAddress == nil {
		return fmt.Errorf("invalid nil key received for MacAddress")
	}

	key := *v.MacAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Entry == nil {
		t.Entry = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry)
	}

	if _, ok := t.Entry[key]; ok {
		return fmt.Errorf("duplicate key for list Entry %v", key)
	}

	t.Entry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Entry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry struct {
	ΛMetadata   []ygot.Annotation                                                                                      `path:"@" ygotAnnotation:"true"`
	MacAddress  *string                                                                                                `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation                                                                                      `path:"@mac-address" ygotAnnotation:"true"`
	Producers   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers `path:"producers" module:"openconfig-network-instance"`
	ΛProducers  []ygot.Annotation                                                                                      `path:"@producers" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State     `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) IsYANGGoStruct() {
}

// GetOrCreateProducers retrieves the value of the Producers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) GetOrCreateProducers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers {
	if t.Producers != nil {
		return t.Producers
	}
	t.Producers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers{}
	return t.Producers
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State{}
	return t.State
}

// GetProducers returns the value of the Producers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry. If the receiver or the field Producers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) GetProducers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers {
	if t != nil && t.Producers != nil {
		return t.Producers
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Producers.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MacAddress == nil {
		return nil, fmt.Errorf("nil value for key MacAddress")
	}

	return map[string]interface{}{
		"mac-address": *t.MacAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry/producers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Producer  map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer `path:"producer" module:"openconfig-network-instance"`
	ΛProducer []ygot.Annotation                                                                                                                                                                                                                                     `path:"@producer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) IsYANGGoStruct() {
}

// NewProducer creates a new entry in the Producer list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) NewProducer(Producer E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Producer == nil {
		t.Producer = make(map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer)
	}

	key := Producer

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Producer[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Producer", key)
	}

	t.Producer[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer{
		Producer: Producer,
	}

	return t.Producer[key], nil
}

// RenameProducer renames an entry in the list Producer within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) RenameProducer(oldK, newK E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) error {
	if _, ok := t.Producer[newK]; ok {
		return fmt.Errorf("key %v already exists in Producer", newK)
	}

	e, ok := t.Producer[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Producer", oldK)
	}
	e.Producer = newK

	t.Producer[newK] = e
	delete(t.Producer, oldK)
	return nil
}

// GetOrCreateProducerMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) GetOrCreateProducerMap() map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer {
	if t.Producer == nil {
		t.Producer = make(map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer)
	}
	return t.Producer
}

// GetOrCreateProducer retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) GetOrCreateProducer(Producer E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer {

	key := Producer

	if v, ok := t.Producer[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewProducer(Producer)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateProducer got unexpected error: %v", err))
	}
	return v
}

// GetProducer retrieves the value with the specified key from
// the Producer map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) GetProducer(Producer E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer {

	if t == nil {
		return nil
	}

	key := Producer

	if lm, ok := t.Producer[key]; ok {
		return lm
	}
	return nil
}

// AppendProducer appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer struct to the
// list Producer of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) AppendProducer(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) error {
	key := v.Producer

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Producer == nil {
		t.Producer = make(map[E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer)
	}

	if _, ok := t.Producer[key]; ok {
		return fmt.Errorf("duplicate key for list Producer %v", key)
	}

	t.Producer[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Producer {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry/producers/producer YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Producer  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer `path:"producer" module:"openconfig-network-instance"`
	ΛProducer []ygot.Annotation                                                                                                                 `path:"@producer" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State             `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetProducer retrieves the value of the leaf Producer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Producer is set, it can
// safely use t.GetProducer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Producer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) GetProducer() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer {
	if t == nil || t.Producer == 0 {
		return 0
	}
	return t.Producer
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"producer": t.Producer,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry/producers/producer/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State struct {
	ΛMetadata         []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	DerivedFromMacIp  *bool                                                                                                                                  `path:"derived-from-mac-ip" module:"openconfig-network-instance"`
	ΛDerivedFromMacIp []ygot.Annotation                                                                                                                      `path:"@derived-from-mac-ip" ygotAnnotation:"true"`
	DirectlyReceived  *bool                                                                                                                                  `path:"directly-received" module:"openconfig-network-instance"`
	ΛDirectlyReceived []ygot.Annotation                                                                                                                      `path:"@directly-received" ygotAnnotation:"true"`
	Esi               *string                                                                                                                                `path:"esi" module:"openconfig-network-instance"`
	ΛEsi              []ygot.Annotation                                                                                                                      `path:"@esi" ygotAnnotation:"true"`
	MobilityState     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState `path:"mobility-state" module:"openconfig-network-instance"`
	ΛMobilityState    []ygot.Annotation                                                                                                                      `path:"@mobility-state" ygotAnnotation:"true"`
	NextHop           *uint64                                                                                                                                `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop          []ygot.Annotation                                                                                                                      `path:"@next-hop" ygotAnnotation:"true"`
	NextHopGroup      []uint64                                                                                                                               `path:"next-hop-group" module:"openconfig-network-instance"`
	ΛNextHopGroup     []ygot.Annotation                                                                                                                      `path:"@next-hop-group" ygotAnnotation:"true"`
	Producer          E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer      `path:"producer" module:"openconfig-network-instance"`
	ΛProducer         []ygot.Annotation                                                                                                                      `path:"@producer" ygotAnnotation:"true"`
	SeqNumber         *uint32                                                                                                                                `path:"seq-number" module:"openconfig-network-instance"`
	ΛSeqNumber        []ygot.Annotation                                                                                                                      `path:"@seq-number" ygotAnnotation:"true"`
	Sticky            *bool                                                                                                                                  `path:"sticky" module:"openconfig-network-instance"`
	ΛSticky           []ygot.Annotation                                                                                                                      `path:"@sticky" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) IsYANGGoStruct() {
}

// GetDerivedFromMacIp retrieves the value of the leaf DerivedFromMacIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DerivedFromMacIp is set, it can
// safely use t.GetDerivedFromMacIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DerivedFromMacIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetDerivedFromMacIp() bool {
	if t == nil || t.DerivedFromMacIp == nil {
		return false
	}
	return *t.DerivedFromMacIp
}

// GetDirectlyReceived retrieves the value of the leaf DirectlyReceived from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DirectlyReceived is set, it can
// safely use t.GetDirectlyReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DirectlyReceived == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetDirectlyReceived() bool {
	if t == nil || t.DirectlyReceived == nil {
		return false
	}
	return *t.DirectlyReceived
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetMobilityState retrieves the value of the leaf MobilityState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MobilityState is set, it can
// safely use t.GetMobilityState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MobilityState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetMobilityState() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState {
	if t == nil || t.MobilityState == 0 {
		return 0
	}
	return t.MobilityState
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetNextHop() uint64 {
	if t == nil || t.NextHop == nil {
		return 0
	}
	return *t.NextHop
}

// GetNextHopGroup retrieves the value of the leaf NextHopGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHopGroup is set, it can
// safely use t.GetNextHopGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHopGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetNextHopGroup() []uint64 {
	if t == nil || t.NextHopGroup == nil {
		return nil
	}
	return t.NextHopGroup
}

// GetProducer retrieves the value of the leaf Producer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Producer is set, it can
// safely use t.GetProducer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Producer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetProducer() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer {
	if t == nil || t.Producer == 0 {
		return 0
	}
	return t.Producer
}

// GetSeqNumber retrieves the value of the leaf SeqNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SeqNumber is set, it can
// safely use t.GetSeqNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SeqNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetSeqNumber() uint32 {
	if t == nil || t.SeqNumber == nil {
		return 0
	}
	return *t.SeqNumber
}

// GetSticky retrieves the value of the leaf Sticky from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sticky is set, it can
// safely use t.GetSticky() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sticky == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) GetSticky() bool {
	if t == nil || t.Sticky == nil {
		return false
	}
	return *t.Sticky
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_Producers_Producer_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Evi         *uint32           `path:"evi" module:"openconfig-network-instance"`
	ΛEvi        []ygot.Annotation `path:"@evi" ygotAnnotation:"true"`
	L2Vni       *uint32           `path:"l2-vni" module:"openconfig-network-instance"`
	ΛL2Vni      []ygot.Annotation `path:"@l2-vni" ygotAnnotation:"true"`
	MacAddress  *string           `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation `path:"@mac-address" ygotAnnotation:"true"`
	Vlan        *uint16           `path:"vlan" module:"openconfig-network-instance"`
	ΛVlan       []ygot.Annotation `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) IsYANGGoStruct() {
}

// GetEvi retrieves the value of the leaf Evi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Evi is set, it can
// safely use t.GetEvi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Evi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) GetEvi() uint32 {
	if t == nil || t.Evi == nil {
		return 0
	}
	return *t.Evi
}

// GetL2Vni retrieves the value of the leaf L2Vni from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if L2Vni is set, it can
// safely use t.GetL2Vni() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.L2Vni == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) GetL2Vni() uint32 {
	if t == nil || t.L2Vni == nil {
		return 0
	}
	return *t.L2Vni
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetVlan retrieves the value of the leaf Vlan from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vlan is set, it can
// safely use t.GetVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vlan == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) GetVlan() uint16 {
	if t == nil || t.Vlan == nil {
		return 0
	}
	return *t.Vlan
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_Entries_Entry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hop-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups struct {
	ΛMetadata     []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	NextHopGroup  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup `path:"next-hop-group" module:"openconfig-network-instance"`
	ΛNextHopGroup []ygot.Annotation                                                                                                    `path:"@next-hop-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) IsYANGGoStruct() {
}

// NewNextHopGroup creates a new entry in the NextHopGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) NewNextHopGroup(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHopGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHopGroup", key)
	}

	t.NextHopGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup{
		Id: &Id,
	}

	return t.NextHopGroup[key], nil
}

// RenameNextHopGroup renames an entry in the list NextHopGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) RenameNextHopGroup(oldK, newK uint64) error {
	if _, ok := t.NextHopGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHopGroup", newK)
	}

	e, ok := t.NextHopGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHopGroup", oldK)
	}
	e.Id = &newK

	t.NextHopGroup[newK] = e
	delete(t.NextHopGroup, oldK)
	return nil
}

// GetOrCreateNextHopGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) GetOrCreateNextHopGroupMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup {
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup)
	}
	return t.NextHopGroup
}

// GetOrCreateNextHopGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) GetOrCreateNextHopGroup(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup {

	key := Id

	if v, ok := t.NextHopGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHopGroup(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHopGroup got unexpected error: %v", err))
	}
	return v
}

// GetNextHopGroup retrieves the value with the specified key from
// the NextHopGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) GetNextHopGroup(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.NextHopGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHopGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup struct to the
// list NextHopGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) AppendNextHopGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHopGroup == nil {
		t.NextHopGroup = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup)
	}

	if _, ok := t.NextHopGroup[key]; ok {
		return fmt.Errorf("duplicate key for list NextHopGroup %v", key)
	}

	t.NextHopGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHopGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hop-groups/next-hop-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	Id        *uint64                                                                                                            `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                                                  `path:"@id" ygotAnnotation:"true"`
	NextHops  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops []ygot.Annotation                                                                                                  `path:"@next-hops" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State    `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) IsYANGGoStruct() {
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops{}
	return t.NextHops
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State{}
	return t.State
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.NextHops.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hop-groups/next-hop-group/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	NextHop   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                                                                     `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) IsYANGGoStruct() {
}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) NewNextHop(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) RenameNextHop(oldK, newK uint64) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) GetOrCreateNextHopMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) GetOrCreateNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) GetNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hop-groups/next-hop-group/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop struct {
	ΛMetadata []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                                          `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hop-groups/next-hop-group/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Index     *uint64           `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation `path:"@index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hop-groups/next-hop-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State struct {
	ΛMetadata []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Esi       *string                                                                                                                 `path:"esi" module:"openconfig-network-instance"`
	ΛEsi      []ygot.Annotation                                                                                                       `path:"@esi" ygotAnnotation:"true"`
	Id        *uint64                                                                                                                 `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                                                       `path:"@id" ygotAnnotation:"true"`
	Type      E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                       `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) IsYANGGoStruct() {
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) GetType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHopGroups_NextHopGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                                          `path:"@" ygotAnnotation:"true"`
	NextHop   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                                          `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) IsYANGGoStruct() {
}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) NewNextHop(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) RenameNextHop(oldK, newK uint64) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) GetOrCreateNextHopMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) GetOrCreateNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) GetNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop struct {
	ΛMetadata []ygot.Annotation                                                                                     `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                               `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                     `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/l2rib/mac-table/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Esi           *string           `path:"esi" module:"openconfig-network-instance"`
	ΛEsi          []ygot.Annotation `path:"@esi" ygotAnnotation:"true"`
	Index         *uint64           `path:"index" module:"openconfig-network-instance"`
	ΛIndex        []ygot.Annotation `path:"@index" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Label         *uint32           `path:"label" module:"openconfig-network-instance"`
	ΛLabel        []ygot.Annotation `path:"@label" ygotAnnotation:"true"`
	PeerIp        *string           `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp       []ygot.Annotation `path:"@peer-ip" ygotAnnotation:"true"`
	Resolved      *bool             `path:"resolved" module:"openconfig-network-instance"`
	ΛResolved     []ygot.Annotation `path:"@resolved" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) GetLabel() uint32 {
	if t == nil || t.Label == nil {
		return 0
	}
	return *t.Label
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetResolved retrieves the value of the leaf Resolved from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Resolved is set, it can
// safely use t.GetResolved() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Resolved == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) GetResolved() bool {
	if t == nil || t.Resolved == nil {
		return false
	}
	return *t.Resolved
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacTable_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-mobility YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility struct {
	ΛMetadata []ygot.Annotation                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-mobility/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DuplicateIpDetectionInterval  *uint16           `path:"duplicate-ip-detection-interval" module:"openconfig-network-instance"`
	ΛDuplicateIpDetectionInterval []ygot.Annotation `path:"@duplicate-ip-detection-interval" ygotAnnotation:"true"`
	IpMobilityThreshold           *uint16           `path:"ip-mobility-threshold" module:"openconfig-network-instance"`
	ΛIpMobilityThreshold          []ygot.Annotation `path:"@ip-mobility-threshold" ygotAnnotation:"true"`
	MacMobility                   *bool             `path:"mac-mobility" module:"openconfig-network-instance"`
	ΛMacMobility                  []ygot.Annotation `path:"@mac-mobility" ygotAnnotation:"true"`
	MacMobilityThreshold          *uint8            `path:"mac-mobility-threshold" module:"openconfig-network-instance"`
	ΛMacMobilityThreshold         []ygot.Annotation `path:"@mac-mobility-threshold" ygotAnnotation:"true"`
	MacMobilityWindow             *uint16           `path:"mac-mobility-window" module:"openconfig-network-instance"`
	ΛMacMobilityWindow            []ygot.Annotation `path:"@mac-mobility-window" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) IsYANGGoStruct() {
}

// GetDuplicateIpDetectionInterval retrieves the value of the leaf DuplicateIpDetectionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplicateIpDetectionInterval is set, it can
// safely use t.GetDuplicateIpDetectionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplicateIpDetectionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) GetDuplicateIpDetectionInterval() uint16 {
	if t == nil || t.DuplicateIpDetectionInterval == nil {
		return 0
	}
	return *t.DuplicateIpDetectionInterval
}

// GetIpMobilityThreshold retrieves the value of the leaf IpMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpMobilityThreshold is set, it can
// safely use t.GetIpMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) GetIpMobilityThreshold() uint16 {
	if t == nil || t.IpMobilityThreshold == nil {
		return 0
	}
	return *t.IpMobilityThreshold
}

// GetMacMobility retrieves the value of the leaf MacMobility from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacMobility is set, it can
// safely use t.GetMacMobility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacMobility == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) GetMacMobility() bool {
	if t == nil || t.MacMobility == nil {
		return false
	}
	return *t.MacMobility
}

// GetMacMobilityThreshold retrieves the value of the leaf MacMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacMobilityThreshold is set, it can
// safely use t.GetMacMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) GetMacMobilityThreshold() uint8 {
	if t == nil || t.MacMobilityThreshold == nil {
		return 5
	}
	return *t.MacMobilityThreshold
}

// GetMacMobilityWindow retrieves the value of the leaf MacMobilityWindow from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacMobilityWindow is set, it can
// safely use t.GetMacMobilityWindow() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacMobilityWindow == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) GetMacMobilityWindow() uint16 {
	if t == nil || t.MacMobilityWindow == nil {
		return 180
	}
	return *t.MacMobilityWindow
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MacMobilityThreshold == nil {
		var v uint8 = 5
		t.MacMobilityThreshold = &v
	}
	if t.MacMobilityWindow == nil {
		var v uint16 = 180
		t.MacMobilityWindow = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-mobility/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DuplicateIpDetectionInterval  *uint16           `path:"duplicate-ip-detection-interval" module:"openconfig-network-instance"`
	ΛDuplicateIpDetectionInterval []ygot.Annotation `path:"@duplicate-ip-detection-interval" ygotAnnotation:"true"`
	IpMobilityThreshold           *uint16           `path:"ip-mobility-threshold" module:"openconfig-network-instance"`
	ΛIpMobilityThreshold          []ygot.Annotation `path:"@ip-mobility-threshold" ygotAnnotation:"true"`
	MacMobility                   *bool             `path:"mac-mobility" module:"openconfig-network-instance"`
	ΛMacMobility                  []ygot.Annotation `path:"@mac-mobility" ygotAnnotation:"true"`
	MacMobilityThreshold          *uint8            `path:"mac-mobility-threshold" module:"openconfig-network-instance"`
	ΛMacMobilityThreshold         []ygot.Annotation `path:"@mac-mobility-threshold" ygotAnnotation:"true"`
	MacMobilityWindow             *uint16           `path:"mac-mobility-window" module:"openconfig-network-instance"`
	ΛMacMobilityWindow            []ygot.Annotation `path:"@mac-mobility-window" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) IsYANGGoStruct() {
}

// GetDuplicateIpDetectionInterval retrieves the value of the leaf DuplicateIpDetectionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplicateIpDetectionInterval is set, it can
// safely use t.GetDuplicateIpDetectionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplicateIpDetectionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) GetDuplicateIpDetectionInterval() uint16 {
	if t == nil || t.DuplicateIpDetectionInterval == nil {
		return 0
	}
	return *t.DuplicateIpDetectionInterval
}

// GetIpMobilityThreshold retrieves the value of the leaf IpMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpMobilityThreshold is set, it can
// safely use t.GetIpMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) GetIpMobilityThreshold() uint16 {
	if t == nil || t.IpMobilityThreshold == nil {
		return 0
	}
	return *t.IpMobilityThreshold
}

// GetMacMobility retrieves the value of the leaf MacMobility from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacMobility is set, it can
// safely use t.GetMacMobility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacMobility == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) GetMacMobility() bool {
	if t == nil || t.MacMobility == nil {
		return false
	}
	return *t.MacMobility
}

// GetMacMobilityThreshold retrieves the value of the leaf MacMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacMobilityThreshold is set, it can
// safely use t.GetMacMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) GetMacMobilityThreshold() uint8 {
	if t == nil || t.MacMobilityThreshold == nil {
		return 5
	}
	return *t.MacMobilityThreshold
}

// GetMacMobilityWindow retrieves the value of the leaf MacMobilityWindow from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacMobilityWindow is set, it can
// safely use t.GetMacMobilityWindow() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacMobilityWindow == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) GetMacMobilityWindow() uint16 {
	if t == nil || t.MacMobilityWindow == nil {
		return 180
	}
	return *t.MacMobilityWindow
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MacMobilityThreshold == nil {
		var v uint8 = 5
		t.MacMobilityThreshold = &v
	}
	if t.MacMobilityWindow == nil {
		var v uint16 = 180
		t.MacMobilityWindow = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacMobility_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable struct {
	ΛMetadata []ygot.Annotation                                                                `path:"@" ygotAnnotation:"true"`
	Entries   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries `path:"entries" module:"openconfig-network-instance"`
	ΛEntries  []ygot.Annotation                                                                `path:"@entries" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) IsYANGGoStruct() {}

// GetOrCreateEntries retrieves the value of the Entries field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) GetOrCreateEntries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries {
	if t.Entries != nil {
		return t.Entries
	}
	t.Entries = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries{}
	return t.Entries
}

// GetEntries returns the value of the Entries struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable. If the receiver or the field Entries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) GetEntries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries {
	if t != nil && t.Entries != nil {
		return t.Entries
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Entries.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Entry     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry `path:"entry" module:"openconfig-network-instance"`
	ΛEntry    []ygot.Annotation                                                                                                                                                                    `path:"@entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key represents the key for list Entry of element /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key struct {
	MacAddress string `path:"mac-address"`
	Vlan       uint16 `path:"vlan"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"mac-address": t.MacAddress,
		"vlan":        t.Vlan,
	}, nil
}

// NewEntry creates a new entry in the Entry list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) NewEntry(MacAddress string, Vlan uint16) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Entry == nil {
		t.Entry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key{
		MacAddress: MacAddress,
		Vlan:       Vlan,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Entry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Entry", key)
	}

	t.Entry[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry{
		MacAddress: &MacAddress,
		Vlan:       &Vlan,
	}

	return t.Entry[key], nil
}

// RenameEntry renames an entry in the list Entry within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) RenameEntry(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key) error {
	if _, ok := t.Entry[newK]; ok {
		return fmt.Errorf("key %v already exists in Entry", newK)
	}

	e, ok := t.Entry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Entry", oldK)
	}
	e.MacAddress = &newK.MacAddress
	e.Vlan = &newK.Vlan

	t.Entry[newK] = e
	delete(t.Entry, oldK)
	return nil
}

// GetOrCreateEntryMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) GetOrCreateEntryMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry {
	if t.Entry == nil {
		t.Entry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry)
	}
	return t.Entry
}

// GetOrCreateEntry retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) GetOrCreateEntry(MacAddress string, Vlan uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key{
		MacAddress: MacAddress,
		Vlan:       Vlan,
	}

	if v, ok := t.Entry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEntry(MacAddress, Vlan)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEntry got unexpected error: %v", err))
	}
	return v
}

// GetEntry retrieves the value with the specified key from
// the Entry map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) GetEntry(MacAddress string, Vlan uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key{
		MacAddress: MacAddress,
		Vlan:       Vlan,
	}

	if lm, ok := t.Entry[key]; ok {
		return lm
	}
	return nil
}

// AppendEntry appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry struct to the
// list Entry of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) AppendEntry(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) error {
	if v.MacAddress == nil {
		return fmt.Errorf("invalid nil key for MacAddress")
	}

	if v.Vlan == nil {
		return fmt.Errorf("invalid nil key for Vlan")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key{
		MacAddress: *v.MacAddress,
		Vlan:       *v.Vlan,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Entry == nil {
		t.Entry = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry)
	}

	if _, ok := t.Entry[key]; ok {
		return fmt.Errorf("duplicate key for list Entry %v", key)
	}

	t.Entry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Entry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries/entry YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry struct {
	ΛMetadata   []ygot.Annotation                                                                                `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config    `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                `path:"@config" ygotAnnotation:"true"`
	Interface   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface  []ygot.Annotation                                                                                `path:"@interface" ygotAnnotation:"true"`
	MacAddress  *string                                                                                          `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation                                                                                `path:"@mac-address" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State     `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                `path:"@state" ygotAnnotation:"true"`
	Vlan        *uint16                                                                                          `path:"vlan" module:"openconfig-network-instance"`
	ΛVlan       []ygot.Annotation                                                                                `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config{}
	return t.Config
}

// GetOrCreateInterface retrieves the value of the Interface field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetOrCreateInterface() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface {
	if t.Interface != nil {
		return t.Interface
	}
	t.Interface = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface{}
	return t.Interface
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterface returns the value of the Interface struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry. If the receiver or the field Interface is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetInterface() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface {
	if t != nil && t.Interface != nil {
		return t.Interface
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetVlan retrieves the value of the leaf Vlan from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vlan is set, it can
// safely use t.GetVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vlan == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) GetVlan() uint16 {
	if t == nil || t.Vlan == nil {
		return 0
	}
	return *t.Vlan
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Interface.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MacAddress == nil {
		return nil, fmt.Errorf("nil value for key MacAddress")
	}

	if t.Vlan == nil {
		return nil, fmt.Errorf("nil value for key Vlan")
	}

	return map[string]interface{}{
		"mac-address": *t.MacAddress,
		"vlan":        *t.Vlan,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries/entry/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MacAddress  *string           `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation `path:"@mac-address" ygotAnnotation:"true"`
	Vlan        *uint16           `path:"vlan" module:"openconfig-network-instance"`
	ΛVlan       []ygot.Annotation `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) IsYANGGoStruct() {
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetVlan retrieves the value of the leaf Vlan from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vlan is set, it can
// safely use t.GetVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vlan == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) GetVlan() uint16 {
	if t == nil || t.Vlan == nil {
		return 0
	}
	return *t.Vlan
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries/entry/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface struct {
	ΛMetadata     []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                             `path:"@interface-ref" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) IsYANGGoStruct() {
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.InterfaceRef.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries/entry/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries/entry/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries/entry/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/mac-table/entries/entry/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State struct {
	ΛMetadata   []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	Age         *uint64                                                                                                 `path:"age" module:"openconfig-network-instance"`
	ΛAge        []ygot.Annotation                                                                                       `path:"@age" ygotAnnotation:"true"`
	EntryType   E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType `path:"entry-type" module:"openconfig-network-instance"`
	ΛEntryType  []ygot.Annotation                                                                                       `path:"@entry-type" ygotAnnotation:"true"`
	Evi         *uint32                                                                                                 `path:"evi" module:"openconfig-network-instance"`
	ΛEvi        []ygot.Annotation                                                                                       `path:"@evi" ygotAnnotation:"true"`
	MacAddress  *string                                                                                                 `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress []ygot.Annotation                                                                                       `path:"@mac-address" ygotAnnotation:"true"`
	Vlan        *uint16                                                                                                 `path:"vlan" module:"openconfig-network-instance"`
	ΛVlan       []ygot.Annotation                                                                                       `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) IsYANGGoStruct() {
}

// GetAge retrieves the value of the leaf Age from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Age is set, it can
// safely use t.GetAge() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Age == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) GetAge() uint64 {
	if t == nil || t.Age == nil {
		return 0
	}
	return *t.Age
}

// GetEntryType retrieves the value of the leaf EntryType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntryType is set, it can
// safely use t.GetEntryType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntryType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) GetEntryType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType {
	if t == nil || t.EntryType == 0 {
		return 0
	}
	return t.EntryType
}

// GetEvi retrieves the value of the leaf Evi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Evi is set, it can
// safely use t.GetEvi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Evi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) GetEvi() uint32 {
	if t == nil || t.Evi == nil {
		return 0
	}
	return *t.Evi
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetVlan retrieves the value of the leaf Vlan from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vlan is set, it can
// safely use t.GetVlan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vlan == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) GetVlan() uint16 {
	if t == nil || t.Vlan == nil {
		return 0
	}
	return *t.Vlan
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy represents the /openconfig-network-instance/network-instances/network-instance/fdb/nd-proxy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy struct {
	ΛMetadata []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config represents the /openconfig-network-instance/network-instances/network-instance/fdb/nd-proxy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DuplicateIpDetectionInterval  *uint16           `path:"duplicate-ip-detection-interval" module:"openconfig-network-instance"`
	ΛDuplicateIpDetectionInterval []ygot.Annotation `path:"@duplicate-ip-detection-interval" ygotAnnotation:"true"`
	Enable                        *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable                       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	IpMobilityThreshold           *uint16           `path:"ip-mobility-threshold" module:"openconfig-network-instance"`
	ΛIpMobilityThreshold          []ygot.Annotation `path:"@ip-mobility-threshold" ygotAnnotation:"true"`
	NdSuppression                 *bool             `path:"nd-suppression" module:"openconfig-network-instance"`
	ΛNdSuppression                []ygot.Annotation `path:"@nd-suppression" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) IsYANGGoStruct() {
}

// GetDuplicateIpDetectionInterval retrieves the value of the leaf DuplicateIpDetectionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplicateIpDetectionInterval is set, it can
// safely use t.GetDuplicateIpDetectionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplicateIpDetectionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) GetDuplicateIpDetectionInterval() uint16 {
	if t == nil || t.DuplicateIpDetectionInterval == nil {
		return 0
	}
	return *t.DuplicateIpDetectionInterval
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetIpMobilityThreshold retrieves the value of the leaf IpMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpMobilityThreshold is set, it can
// safely use t.GetIpMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) GetIpMobilityThreshold() uint16 {
	if t == nil || t.IpMobilityThreshold == nil {
		return 0
	}
	return *t.IpMobilityThreshold
}

// GetNdSuppression retrieves the value of the leaf NdSuppression from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NdSuppression is set, it can
// safely use t.GetNdSuppression() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NdSuppression == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) GetNdSuppression() bool {
	if t == nil || t.NdSuppression == nil {
		return false
	}
	return *t.NdSuppression
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
	if t.NdSuppression == nil {
		var v bool = false
		t.NdSuppression = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/nd-proxy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DuplicateIpDetectionInterval  *uint16           `path:"duplicate-ip-detection-interval" module:"openconfig-network-instance"`
	ΛDuplicateIpDetectionInterval []ygot.Annotation `path:"@duplicate-ip-detection-interval" ygotAnnotation:"true"`
	Enable                        *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable                       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	IpMobilityThreshold           *uint16           `path:"ip-mobility-threshold" module:"openconfig-network-instance"`
	ΛIpMobilityThreshold          []ygot.Annotation `path:"@ip-mobility-threshold" ygotAnnotation:"true"`
	NdSuppression                 *bool             `path:"nd-suppression" module:"openconfig-network-instance"`
	ΛNdSuppression                []ygot.Annotation `path:"@nd-suppression" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) IsYANGGoStruct() {
}

// GetDuplicateIpDetectionInterval retrieves the value of the leaf DuplicateIpDetectionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DuplicateIpDetectionInterval is set, it can
// safely use t.GetDuplicateIpDetectionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DuplicateIpDetectionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) GetDuplicateIpDetectionInterval() uint16 {
	if t == nil || t.DuplicateIpDetectionInterval == nil {
		return 0
	}
	return *t.DuplicateIpDetectionInterval
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetIpMobilityThreshold retrieves the value of the leaf IpMobilityThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpMobilityThreshold is set, it can
// safely use t.GetIpMobilityThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpMobilityThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) GetIpMobilityThreshold() uint16 {
	if t == nil || t.IpMobilityThreshold == nil {
		return 0
	}
	return *t.IpMobilityThreshold
}

// GetNdSuppression retrieves the value of the leaf NdSuppression from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NdSuppression is set, it can
// safely use t.GetNdSuppression() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NdSuppression == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) GetNdSuppression() bool {
	if t == nil || t.NdSuppression == nil {
		return false
	}
	return *t.NdSuppression
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
	if t.NdSuppression == nil {
		var v bool = false
		t.NdSuppression = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_NdProxy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State represents the /openconfig-network-instance/network-instances/network-instance/fdb/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State struct {
	ΛMetadata                      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AnycastGatewayMac              *string           `path:"anycast-gateway-mac" module:"openconfig-network-instance"`
	ΛAnycastGatewayMac             []ygot.Annotation `path:"@anycast-gateway-mac" ygotAnnotation:"true"`
	FloodUnknownUnicastSupression  *bool             `path:"flood-unknown-unicast-supression" module:"openconfig-network-instance"`
	ΛFloodUnknownUnicastSupression []ygot.Annotation `path:"@flood-unknown-unicast-supression" ygotAnnotation:"true"`
	MacAgingTime                   *uint16           `path:"mac-aging-time" module:"openconfig-network-instance"`
	ΛMacAgingTime                  []ygot.Annotation `path:"@mac-aging-time" ygotAnnotation:"true"`
	MacLearning                    *bool             `path:"mac-learning" module:"openconfig-network-instance"`
	ΛMacLearning                   []ygot.Annotation `path:"@mac-learning" ygotAnnotation:"true"`
	MaximumEntries                 *uint16           `path:"maximum-entries" module:"openconfig-network-instance"`
	ΛMaximumEntries                []ygot.Annotation `path:"@maximum-entries" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) IsYANGGoStruct() {}

// GetAnycastGatewayMac retrieves the value of the leaf AnycastGatewayMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AnycastGatewayMac is set, it can
// safely use t.GetAnycastGatewayMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AnycastGatewayMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) GetAnycastGatewayMac() string {
	if t == nil || t.AnycastGatewayMac == nil {
		return ""
	}
	return *t.AnycastGatewayMac
}

// GetFloodUnknownUnicastSupression retrieves the value of the leaf FloodUnknownUnicastSupression from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FloodUnknownUnicastSupression is set, it can
// safely use t.GetFloodUnknownUnicastSupression() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FloodUnknownUnicastSupression == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) GetFloodUnknownUnicastSupression() bool {
	if t == nil || t.FloodUnknownUnicastSupression == nil {
		return false
	}
	return *t.FloodUnknownUnicastSupression
}

// GetMacAgingTime retrieves the value of the leaf MacAgingTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAgingTime is set, it can
// safely use t.GetMacAgingTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAgingTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) GetMacAgingTime() uint16 {
	if t == nil || t.MacAgingTime == nil {
		return 0
	}
	return *t.MacAgingTime
}

// GetMacLearning retrieves the value of the leaf MacLearning from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacLearning is set, it can
// safely use t.GetMacLearning() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacLearning == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) GetMacLearning() bool {
	if t == nil || t.MacLearning == nil {
		return false
	}
	return *t.MacLearning
}

// GetMaximumEntries retrieves the value of the leaf MaximumEntries from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumEntries is set, it can
// safely use t.GetMaximumEntries() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumEntries == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) GetMaximumEntries() uint16 {
	if t == nil || t.MaximumEntries == nil {
		return 0
	}
	return *t.MaximumEntries
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.FloodUnknownUnicastSupression == nil {
		var v bool = false
		t.FloodUnknownUnicastSupression = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies represents the /openconfig-network-instance/network-instances/network-instance/inter-instance-policies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies struct {
	ΛMetadata           []ygot.Annotation                                                                                    `path:"@" ygotAnnotation:"true"`
	ApplyPolicy         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy        `path:"apply-policy" module:"openconfig-network-instance"`
	ΛApplyPolicy        []ygot.Annotation                                                                                    `path:"@apply-policy" ygotAnnotation:"true"`
	ImportExportPolicy  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy `path:"import-export-policy" module:"openconfig-network-instance"`
	ΛImportExportPolicy []ygot.Annotation                                                                                    `path:"@import-export-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) IsYANGGoStruct() {
}

// GetOrCreateApplyPolicy retrieves the value of the ApplyPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) GetOrCreateApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy {
	if t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	t.ApplyPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy{}
	return t.ApplyPolicy
}

// GetOrCreateImportExportPolicy retrieves the value of the ImportExportPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) GetOrCreateImportExportPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy {
	if t.ImportExportPolicy != nil {
		return t.ImportExportPolicy
	}
	t.ImportExportPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy{}
	return t.ImportExportPolicy
}

// GetApplyPolicy returns the value of the ApplyPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies. If the receiver or the field ApplyPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) GetApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy {
	if t != nil && t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	return nil
}

// GetImportExportPolicy returns the value of the ImportExportPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies. If the receiver or the field ImportExportPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) GetImportExportPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy {
	if t != nil && t.ImportExportPolicy != nil {
		return t.ImportExportPolicy
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.ApplyPolicy.PopulateDefaults()
	t.ImportExportPolicy.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy represents the /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/apply-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/apply-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/apply-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ApplyPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy represents the /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/import-export-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/import-export-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config struct {
	ΛMetadata          []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	ExportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union `path:"export-route-target" module:"openconfig-network-instance"`
	ΛExportRouteTarget []ygot.Annotation                                                                                                                    `path:"@export-route-target" ygotAnnotation:"true"`
	ImportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union `path:"import-route-target" module:"openconfig-network-instance"`
	ΛImportRouteTarget []ygot.Annotation                                                                                                                    `path:"@import-route-target" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) IsYANGGoStruct() {
}

// GetExportRouteTarget retrieves the value of the leaf ExportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportRouteTarget is set, it can
// safely use t.GetExportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) GetExportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union {
	if t == nil || t.ExportRouteTarget == nil {
		return nil
	}
	return t.ExportRouteTarget
}

// GetImportRouteTarget retrieves the value of the leaf ImportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportRouteTarget is set, it can
// safely use t.GetImportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) GetImportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union {
	if t == nil || t.ImportRouteTarget == nil {
		return nil
	}
	return t.ImportRouteTarget
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/import-export-policy/config/export-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ExportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/import-export-policy/config/import-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_Config_ImportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/import-export-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	ExportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union `path:"export-route-target" module:"openconfig-network-instance"`
	ΛExportRouteTarget []ygot.Annotation                                                                                                                   `path:"@export-route-target" ygotAnnotation:"true"`
	ImportRouteTarget  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union `path:"import-route-target" module:"openconfig-network-instance"`
	ΛImportRouteTarget []ygot.Annotation                                                                                                                   `path:"@import-route-target" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) IsYANGGoStruct() {
}

// GetExportRouteTarget retrieves the value of the leaf ExportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportRouteTarget is set, it can
// safely use t.GetExportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) GetExportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union {
	if t == nil || t.ExportRouteTarget == nil {
		return nil
	}
	return t.ExportRouteTarget
}

// GetImportRouteTarget retrieves the value of the leaf ImportRouteTarget from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportRouteTarget is set, it can
// safely use t.GetImportRouteTarget() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportRouteTarget == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) GetImportRouteTarget() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union {
	if t == nil || t.ImportRouteTarget == nil {
		return nil
	}
	return t.ImportRouteTarget
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/import-export-policy/state/export-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ExportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/inter-instance-policies/import-export-policy/state/import-route-target within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_InterInstancePolicies_ImportExportPolicy_State_ImportRouteTarget_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                           `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                           `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) IsYANGGoStruct() {}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) NewInterface(Id string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface{
		Id: &Id,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.Id = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) GetOrCreateInterface(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface {

	key := Id

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) GetInterface(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface struct {
	ΛMetadata []ygot.Annotation                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                       `path:"@config" ygotAnnotation:"true"`
	Id        *string                                                                                 `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                       `path:"@id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config struct {
	ΛMetadata                  []ygot.Annotation                                                                                          `path:"@" ygotAnnotation:"true"`
	AssociatedAddressFamilies  []E_OpenconfigTypes_ADDRESS_FAMILY                                                                         `path:"associated-address-families" module:"openconfig-network-instance"`
	ΛAssociatedAddressFamilies []ygot.Annotation                                                                                          `path:"@associated-address-families" ygotAnnotation:"true"`
	Id                         *string                                                                                                    `path:"id" module:"openconfig-network-instance"`
	ΛId                        []ygot.Annotation                                                                                          `path:"@id" ygotAnnotation:"true"`
	Interface                  *string                                                                                                    `path:"interface" module:"openconfig-network-instance"`
	ΛInterface                 []ygot.Annotation                                                                                          `path:"@interface" ygotAnnotation:"true"`
	IrbAnycastGateway          E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway `path:"irb-anycast-gateway" module:"openconfig-network-instance"`
	ΛIrbAnycastGateway         []ygot.Annotation                                                                                          `path:"@irb-anycast-gateway" ygotAnnotation:"true"`
	MacPinning                 *bool                                                                                                      `path:"mac-pinning" module:"openconfig-network-instance"`
	ΛMacPinning                []ygot.Annotation                                                                                          `path:"@mac-pinning" ygotAnnotation:"true"`
	Subinterface               *uint32                                                                                                    `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface              []ygot.Annotation                                                                                          `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetAssociatedAddressFamilies retrieves the value of the leaf AssociatedAddressFamilies from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociatedAddressFamilies is set, it can
// safely use t.GetAssociatedAddressFamilies() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociatedAddressFamilies == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) GetAssociatedAddressFamilies() []E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AssociatedAddressFamilies == nil {
		return nil
	}
	return t.AssociatedAddressFamilies
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetIrbAnycastGateway retrieves the value of the leaf IrbAnycastGateway from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IrbAnycastGateway is set, it can
// safely use t.GetIrbAnycastGateway() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IrbAnycastGateway == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) GetIrbAnycastGateway() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway {
	if t == nil || t.IrbAnycastGateway == 0 {
		return 0
	}
	return t.IrbAnycastGateway
}

// GetMacPinning retrieves the value of the leaf MacPinning from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacPinning is set, it can
// safely use t.GetMacPinning() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacPinning == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) GetMacPinning() bool {
	if t == nil || t.MacPinning == nil {
		return false
	}
	return *t.MacPinning
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State struct {
	ΛMetadata                  []ygot.Annotation                                                                                          `path:"@" ygotAnnotation:"true"`
	AssociatedAddressFamilies  []E_OpenconfigTypes_ADDRESS_FAMILY                                                                         `path:"associated-address-families" module:"openconfig-network-instance"`
	ΛAssociatedAddressFamilies []ygot.Annotation                                                                                          `path:"@associated-address-families" ygotAnnotation:"true"`
	Id                         *string                                                                                                    `path:"id" module:"openconfig-network-instance"`
	ΛId                        []ygot.Annotation                                                                                          `path:"@id" ygotAnnotation:"true"`
	Interface                  *string                                                                                                    `path:"interface" module:"openconfig-network-instance"`
	ΛInterface                 []ygot.Annotation                                                                                          `path:"@interface" ygotAnnotation:"true"`
	IrbAnycastGateway          E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway `path:"irb-anycast-gateway" module:"openconfig-network-instance"`
	ΛIrbAnycastGateway         []ygot.Annotation                                                                                          `path:"@irb-anycast-gateway" ygotAnnotation:"true"`
	MacPinning                 *bool                                                                                                      `path:"mac-pinning" module:"openconfig-network-instance"`
	ΛMacPinning                []ygot.Annotation                                                                                          `path:"@mac-pinning" ygotAnnotation:"true"`
	Subinterface               *uint32                                                                                                    `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface              []ygot.Annotation                                                                                          `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetAssociatedAddressFamilies retrieves the value of the leaf AssociatedAddressFamilies from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociatedAddressFamilies is set, it can
// safely use t.GetAssociatedAddressFamilies() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociatedAddressFamilies == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) GetAssociatedAddressFamilies() []E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AssociatedAddressFamilies == nil {
		return nil
	}
	return t.AssociatedAddressFamilies
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetIrbAnycastGateway retrieves the value of the leaf IrbAnycastGateway from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IrbAnycastGateway is set, it can
// safely use t.GetIrbAnycastGateway() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IrbAnycastGateway == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) GetIrbAnycastGateway() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway {
	if t == nil || t.IrbAnycastGateway == 0 {
		return 0
	}
	return t.IrbAnycastGateway
}

// GetMacPinning retrieves the value of the leaf MacPinning from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacPinning is set, it can
// safely use t.GetMacPinning() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacPinning == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) GetMacPinning() bool {
	if t == nil || t.MacPinning == nil {
		return false
	}
	return *t.MacPinning
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls represents the /openconfig-network-instance/network-instances/network-instance/mpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls struct {
	ΛMetadata              []ygot.Annotation                                                                      `path:"@" ygotAnnotation:"true"`
	Global                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global                `path:"global" module:"openconfig-network-instance"`
	ΛGlobal                []ygot.Annotation                                                                      `path:"@global" ygotAnnotation:"true"`
	Lsps                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps                  `path:"lsps" module:"openconfig-network-instance"`
	ΛLsps                  []ygot.Annotation                                                                      `path:"@lsps" ygotAnnotation:"true"`
	SignalingProtocols     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols    `path:"signaling-protocols" module:"openconfig-network-instance"`
	ΛSignalingProtocols    []ygot.Annotation                                                                      `path:"@signaling-protocols" ygotAnnotation:"true"`
	TeGlobalAttributes     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes    `path:"te-global-attributes" module:"openconfig-network-instance"`
	ΛTeGlobalAttributes    []ygot.Annotation                                                                      `path:"@te-global-attributes" ygotAnnotation:"true"`
	TeInterfaceAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes `path:"te-interface-attributes" module:"openconfig-network-instance"`
	ΛTeInterfaceAttributes []ygot.Annotation                                                                      `path:"@te-interface-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) IsYANGGoStruct() {}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global{}
	return t.Global
}

// GetOrCreateLsps retrieves the value of the Lsps field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetOrCreateLsps() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps {
	if t.Lsps != nil {
		return t.Lsps
	}
	t.Lsps = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps{}
	return t.Lsps
}

// GetOrCreateSignalingProtocols retrieves the value of the SignalingProtocols field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetOrCreateSignalingProtocols() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols {
	if t.SignalingProtocols != nil {
		return t.SignalingProtocols
	}
	t.SignalingProtocols = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols{}
	return t.SignalingProtocols
}

// GetOrCreateTeGlobalAttributes retrieves the value of the TeGlobalAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetOrCreateTeGlobalAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes {
	if t.TeGlobalAttributes != nil {
		return t.TeGlobalAttributes
	}
	t.TeGlobalAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes{}
	return t.TeGlobalAttributes
}

// GetOrCreateTeInterfaceAttributes retrieves the value of the TeInterfaceAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetOrCreateTeInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes {
	if t.TeInterfaceAttributes != nil {
		return t.TeInterfaceAttributes
	}
	t.TeInterfaceAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes{}
	return t.TeInterfaceAttributes
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// GetLsps returns the value of the Lsps struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls. If the receiver or the field Lsps is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetLsps() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps {
	if t != nil && t.Lsps != nil {
		return t.Lsps
	}
	return nil
}

// GetSignalingProtocols returns the value of the SignalingProtocols struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls. If the receiver or the field SignalingProtocols is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetSignalingProtocols() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols {
	if t != nil && t.SignalingProtocols != nil {
		return t.SignalingProtocols
	}
	return nil
}

// GetTeGlobalAttributes returns the value of the TeGlobalAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls. If the receiver or the field TeGlobalAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetTeGlobalAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes {
	if t != nil && t.TeGlobalAttributes != nil {
		return t.TeGlobalAttributes
	}
	return nil
}

// GetTeInterfaceAttributes returns the value of the TeInterfaceAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls. If the receiver or the field TeInterfaceAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) GetTeInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes {
	if t != nil && t.TeInterfaceAttributes != nil {
		return t.TeInterfaceAttributes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Global.PopulateDefaults()
	t.Lsps.PopulateDefaults()
	t.SignalingProtocols.PopulateDefaults()
	t.TeGlobalAttributes.PopulateDefaults()
	t.TeInterfaceAttributes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global represents the /openconfig-network-instance/network-instances/network-instance/mpls/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global struct {
	ΛMetadata            []ygot.Annotation                                                                           `path:"@" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                           `path:"@config" ygotAnnotation:"true"`
	InterfaceAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes `path:"interface-attributes" module:"openconfig-network-instance"`
	ΛInterfaceAttributes []ygot.Annotation                                                                           `path:"@interface-attributes" ygotAnnotation:"true"`
	ReservedLabelBlocks  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks `path:"reserved-label-blocks" module:"openconfig-network-instance"`
	ΛReservedLabelBlocks []ygot.Annotation                                                                           `path:"@reserved-label-blocks" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config{}
	return t.Config
}

// GetOrCreateInterfaceAttributes retrieves the value of the InterfaceAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetOrCreateInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes {
	if t.InterfaceAttributes != nil {
		return t.InterfaceAttributes
	}
	t.InterfaceAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes{}
	return t.InterfaceAttributes
}

// GetOrCreateReservedLabelBlocks retrieves the value of the ReservedLabelBlocks field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetOrCreateReservedLabelBlocks() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks {
	if t.ReservedLabelBlocks != nil {
		return t.ReservedLabelBlocks
	}
	t.ReservedLabelBlocks = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks{}
	return t.ReservedLabelBlocks
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaceAttributes returns the value of the InterfaceAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global. If the receiver or the field InterfaceAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes {
	if t != nil && t.InterfaceAttributes != nil {
		return t.InterfaceAttributes
	}
	return nil
}

// GetReservedLabelBlocks returns the value of the ReservedLabelBlocks struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global. If the receiver or the field ReservedLabelBlocks is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetReservedLabelBlocks() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks {
	if t != nil && t.ReservedLabelBlocks != nil {
		return t.ReservedLabelBlocks
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.InterfaceAttributes.PopulateDefaults()
	t.ReservedLabelBlocks.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config struct {
	ΛMetadata        []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	NullLabel        E_OpenconfigMplsTypes_NULL_LABEL_TYPE          `path:"null-label" module:"openconfig-network-instance"`
	ΛNullLabel       []ygot.Annotation                              `path:"@null-label" ygotAnnotation:"true"`
	PwEncapsulation  E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION `path:"pw-encapsulation" module:"openconfig-network-instance"`
	ΛPwEncapsulation []ygot.Annotation                              `path:"@pw-encapsulation" ygotAnnotation:"true"`
	TtlPropagation   *bool                                          `path:"ttl-propagation" module:"openconfig-network-instance"`
	ΛTtlPropagation  []ygot.Annotation                              `path:"@ttl-propagation" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) IsYANGGoStruct() {
}

// GetNullLabel retrieves the value of the leaf NullLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NullLabel is set, it can
// safely use t.GetNullLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NullLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) GetNullLabel() E_OpenconfigMplsTypes_NULL_LABEL_TYPE {
	if t == nil || t.NullLabel == 0 {
		return OpenconfigMplsTypes_NULL_LABEL_TYPE_IMPLICIT
	}
	return t.NullLabel
}

// GetPwEncapsulation retrieves the value of the leaf PwEncapsulation from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PwEncapsulation is set, it can
// safely use t.GetPwEncapsulation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PwEncapsulation == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) GetPwEncapsulation() E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION {
	if t == nil || t.PwEncapsulation == 0 {
		return 0
	}
	return t.PwEncapsulation
}

// GetTtlPropagation retrieves the value of the leaf TtlPropagation from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtlPropagation is set, it can
// safely use t.GetTtlPropagation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtlPropagation == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) GetTtlPropagation() bool {
	if t == nil || t.TtlPropagation == nil {
		return true
	}
	return *t.TtlPropagation
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.NullLabel == 0 {
		t.NullLabel = OpenconfigMplsTypes_NULL_LABEL_TYPE_IMPLICIT
	}
	if t.TtlPropagation == nil {
		var v bool = true
		t.TtlPropagation = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/interface-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes struct {
	ΛMetadata  []ygot.Annotation                                                                                                `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/interface-attributes/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface struct {
	ΛMetadata     []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config       `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                                  `path:"@config" ygotAnnotation:"true"`
	InterfaceId   *string                                                                                                            `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId  []ygot.Annotation                                                                                                  `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                                  `path:"@interface-ref" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config{}
	return t.Config
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/interface-attributes/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InterfaceId  *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	MplsEnabled  *bool             `path:"mpls-enabled" module:"openconfig-network-instance"`
	ΛMplsEnabled []ygot.Annotation `path:"@mpls-enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) IsYANGGoStruct() {
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetMplsEnabled retrieves the value of the leaf MplsEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsEnabled is set, it can
// safely use t.GetMplsEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) GetMplsEnabled() bool {
	if t == nil || t.MplsEnabled == nil {
		return false
	}
	return *t.MplsEnabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MplsEnabled == nil {
		var v bool = false
		t.MplsEnabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/interface-attributes/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/interface-attributes/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/interface-attributes/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/interface-attributes/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InterfaceId  *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	MplsEnabled  *bool             `path:"mpls-enabled" module:"openconfig-network-instance"`
	ΛMplsEnabled []ygot.Annotation `path:"@mpls-enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) IsYANGGoStruct() {
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetMplsEnabled retrieves the value of the leaf MplsEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsEnabled is set, it can
// safely use t.GetMplsEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) GetMplsEnabled() bool {
	if t == nil || t.MplsEnabled == nil {
		return false
	}
	return *t.MplsEnabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MplsEnabled == nil {
		var v bool = false
		t.MplsEnabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_InterfaceAttributes_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks struct {
	ΛMetadata           []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	ReservedLabelBlock  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock `path:"reserved-label-block" module:"openconfig-network-instance"`
	ΛReservedLabelBlock []ygot.Annotation                                                                                                         `path:"@reserved-label-block" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) IsYANGGoStruct() {
}

// NewReservedLabelBlock creates a new entry in the ReservedLabelBlock list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) NewReservedLabelBlock(LocalId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ReservedLabelBlock == nil {
		t.ReservedLabelBlock = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ReservedLabelBlock[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ReservedLabelBlock", key)
	}

	t.ReservedLabelBlock[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock{
		LocalId: &LocalId,
	}

	return t.ReservedLabelBlock[key], nil
}

// RenameReservedLabelBlock renames an entry in the list ReservedLabelBlock within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) RenameReservedLabelBlock(oldK, newK string) error {
	if _, ok := t.ReservedLabelBlock[newK]; ok {
		return fmt.Errorf("key %v already exists in ReservedLabelBlock", newK)
	}

	e, ok := t.ReservedLabelBlock[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ReservedLabelBlock", oldK)
	}
	e.LocalId = &newK

	t.ReservedLabelBlock[newK] = e
	delete(t.ReservedLabelBlock, oldK)
	return nil
}

// GetOrCreateReservedLabelBlockMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) GetOrCreateReservedLabelBlockMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock {
	if t.ReservedLabelBlock == nil {
		t.ReservedLabelBlock = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock)
	}
	return t.ReservedLabelBlock
}

// GetOrCreateReservedLabelBlock retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) GetOrCreateReservedLabelBlock(LocalId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock {

	key := LocalId

	if v, ok := t.ReservedLabelBlock[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewReservedLabelBlock(LocalId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateReservedLabelBlock got unexpected error: %v", err))
	}
	return v
}

// GetReservedLabelBlock retrieves the value with the specified key from
// the ReservedLabelBlock map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) GetReservedLabelBlock(LocalId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock {

	if t == nil {
		return nil
	}

	key := LocalId

	if lm, ok := t.ReservedLabelBlock[key]; ok {
		return lm
	}
	return nil
}

// AppendReservedLabelBlock appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock struct to the
// list ReservedLabelBlock of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) AppendReservedLabelBlock(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) error {
	if v.LocalId == nil {
		return fmt.Errorf("invalid nil key received for LocalId")
	}

	key := *v.LocalId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ReservedLabelBlock == nil {
		t.ReservedLabelBlock = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock)
	}

	if _, ok := t.ReservedLabelBlock[key]; ok {
		return fmt.Errorf("duplicate key for list ReservedLabelBlock %v", key)
	}

	t.ReservedLabelBlock[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ReservedLabelBlock {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock struct {
	ΛMetadata []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	LocalId   *string                                                                                                               `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId  []ygot.Annotation                                                                                                     `path:"@local-id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config struct {
	ΛMetadata   []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	LocalId     *string                                                                                                                               `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId    []ygot.Annotation                                                                                                                     `path:"@local-id" ygotAnnotation:"true"`
	LowerBound  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union `path:"lower-bound" module:"openconfig-network-instance"`
	ΛLowerBound []ygot.Annotation                                                                                                                     `path:"@lower-bound" ygotAnnotation:"true"`
	UpperBound  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union `path:"upper-bound" module:"openconfig-network-instance"`
	ΛUpperBound []ygot.Annotation                                                                                                                     `path:"@upper-bound" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) IsYANGGoStruct() {
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// GetLowerBound retrieves the value of the leaf LowerBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LowerBound is set, it can
// safely use t.GetLowerBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LowerBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) GetLowerBound() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union {
	if t == nil || t.LowerBound == nil {
		return nil
	}
	return t.LowerBound
}

// GetUpperBound retrieves the value of the leaf UpperBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpperBound is set, it can
// safely use t.GetUpperBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpperBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) GetUpperBound() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union {
	if t == nil || t.UpperBound == nil {
		return nil
	}
	return t.UpperBound
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/config/lower-bound within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_LowerBound_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/config/upper-bound within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_Config_UpperBound_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	LocalId     *string                                                                                                                              `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId    []ygot.Annotation                                                                                                                    `path:"@local-id" ygotAnnotation:"true"`
	LowerBound  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union `path:"lower-bound" module:"openconfig-network-instance"`
	ΛLowerBound []ygot.Annotation                                                                                                                    `path:"@lower-bound" ygotAnnotation:"true"`
	UpperBound  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union `path:"upper-bound" module:"openconfig-network-instance"`
	ΛUpperBound []ygot.Annotation                                                                                                                    `path:"@upper-bound" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) IsYANGGoStruct() {
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// GetLowerBound retrieves the value of the leaf LowerBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LowerBound is set, it can
// safely use t.GetLowerBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LowerBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) GetLowerBound() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union {
	if t == nil || t.LowerBound == nil {
		return nil
	}
	return t.LowerBound
}

// GetUpperBound retrieves the value of the leaf UpperBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpperBound is set, it can
// safely use t.GetUpperBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpperBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) GetUpperBound() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union {
	if t == nil || t.UpperBound == nil {
		return nil
	}
	return t.UpperBound
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/state/lower-bound within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_LowerBound_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/state/upper-bound within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_ReservedLabelBlocks_ReservedLabelBlock_State_UpperBound_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/global/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State struct {
	ΛMetadata        []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	NullLabel        E_OpenconfigMplsTypes_NULL_LABEL_TYPE          `path:"null-label" module:"openconfig-network-instance"`
	ΛNullLabel       []ygot.Annotation                              `path:"@null-label" ygotAnnotation:"true"`
	PwEncapsulation  E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION `path:"pw-encapsulation" module:"openconfig-network-instance"`
	ΛPwEncapsulation []ygot.Annotation                              `path:"@pw-encapsulation" ygotAnnotation:"true"`
	TtlPropagation   *bool                                          `path:"ttl-propagation" module:"openconfig-network-instance"`
	ΛTtlPropagation  []ygot.Annotation                              `path:"@ttl-propagation" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) IsYANGGoStruct() {
}

// GetNullLabel retrieves the value of the leaf NullLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NullLabel is set, it can
// safely use t.GetNullLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NullLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) GetNullLabel() E_OpenconfigMplsTypes_NULL_LABEL_TYPE {
	if t == nil || t.NullLabel == 0 {
		return OpenconfigMplsTypes_NULL_LABEL_TYPE_IMPLICIT
	}
	return t.NullLabel
}

// GetPwEncapsulation retrieves the value of the leaf PwEncapsulation from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PwEncapsulation is set, it can
// safely use t.GetPwEncapsulation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PwEncapsulation == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) GetPwEncapsulation() E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION {
	if t == nil || t.PwEncapsulation == 0 {
		return 0
	}
	return t.PwEncapsulation
}

// GetTtlPropagation retrieves the value of the leaf TtlPropagation from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtlPropagation is set, it can
// safely use t.GetTtlPropagation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtlPropagation == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) GetTtlPropagation() bool {
	if t == nil || t.TtlPropagation == nil {
		return true
	}
	return *t.TtlPropagation
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.NullLabel == 0 {
		t.NullLabel = OpenconfigMplsTypes_NULL_LABEL_TYPE_IMPLICIT
	}
	if t.TtlPropagation == nil {
		var v bool = true
		t.TtlPropagation = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Global_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps struct {
	ΛMetadata          []ygot.Annotation                                                                       `path:"@" ygotAnnotation:"true"`
	ConstrainedPath    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath   `path:"constrained-path" module:"openconfig-network-instance"`
	ΛConstrainedPath   []ygot.Annotation                                                                       `path:"@constrained-path" ygotAnnotation:"true"`
	StaticLsps         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps        `path:"static-lsps" module:"openconfig-network-instance"`
	ΛStaticLsps        []ygot.Annotation                                                                       `path:"@static-lsps" ygotAnnotation:"true"`
	UnconstrainedPath  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath `path:"unconstrained-path" module:"openconfig-network-instance"`
	ΛUnconstrainedPath []ygot.Annotation                                                                       `path:"@unconstrained-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) IsYANGGoStruct() {}

// GetOrCreateConstrainedPath retrieves the value of the ConstrainedPath field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) GetOrCreateConstrainedPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath {
	if t.ConstrainedPath != nil {
		return t.ConstrainedPath
	}
	t.ConstrainedPath = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath{}
	return t.ConstrainedPath
}

// GetOrCreateStaticLsps retrieves the value of the StaticLsps field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) GetOrCreateStaticLsps() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps {
	if t.StaticLsps != nil {
		return t.StaticLsps
	}
	t.StaticLsps = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps{}
	return t.StaticLsps
}

// GetOrCreateUnconstrainedPath retrieves the value of the UnconstrainedPath field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) GetOrCreateUnconstrainedPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath {
	if t.UnconstrainedPath != nil {
		return t.UnconstrainedPath
	}
	t.UnconstrainedPath = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath{}
	return t.UnconstrainedPath
}

// GetConstrainedPath returns the value of the ConstrainedPath struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps. If the receiver or the field ConstrainedPath is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) GetConstrainedPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath {
	if t != nil && t.ConstrainedPath != nil {
		return t.ConstrainedPath
	}
	return nil
}

// GetStaticLsps returns the value of the StaticLsps struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps. If the receiver or the field StaticLsps is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) GetStaticLsps() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps {
	if t != nil && t.StaticLsps != nil {
		return t.StaticLsps
	}
	return nil
}

// GetUnconstrainedPath returns the value of the UnconstrainedPath struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps. If the receiver or the field UnconstrainedPath is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) GetUnconstrainedPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath {
	if t != nil && t.UnconstrainedPath != nil {
		return t.UnconstrainedPath
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.ConstrainedPath.PopulateDefaults()
	t.StaticLsps.PopulateDefaults()
	t.UnconstrainedPath.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath struct {
	ΛMetadata           []ygot.Annotation                                                                                        `path:"@" ygotAnnotation:"true"`
	NamedExplicitPaths  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths `path:"named-explicit-paths" module:"openconfig-network-instance"`
	ΛNamedExplicitPaths []ygot.Annotation                                                                                        `path:"@named-explicit-paths" ygotAnnotation:"true"`
	Tunnels             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels            `path:"tunnels" module:"openconfig-network-instance"`
	ΛTunnels            []ygot.Annotation                                                                                        `path:"@tunnels" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) IsYANGGoStruct() {
}

// GetOrCreateNamedExplicitPaths retrieves the value of the NamedExplicitPaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) GetOrCreateNamedExplicitPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths {
	if t.NamedExplicitPaths != nil {
		return t.NamedExplicitPaths
	}
	t.NamedExplicitPaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths{}
	return t.NamedExplicitPaths
}

// GetOrCreateTunnels retrieves the value of the Tunnels field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) GetOrCreateTunnels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels {
	if t.Tunnels != nil {
		return t.Tunnels
	}
	t.Tunnels = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels{}
	return t.Tunnels
}

// GetNamedExplicitPaths returns the value of the NamedExplicitPaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath. If the receiver or the field NamedExplicitPaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) GetNamedExplicitPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths {
	if t != nil && t.NamedExplicitPaths != nil {
		return t.NamedExplicitPaths
	}
	return nil
}

// GetTunnels returns the value of the Tunnels struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath. If the receiver or the field Tunnels is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) GetTunnels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels {
	if t != nil && t.Tunnels != nil {
		return t.Tunnels
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.NamedExplicitPaths.PopulateDefaults()
	t.Tunnels.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths struct {
	ΛMetadata          []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	NamedExplicitPath  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath `path:"named-explicit-path" module:"openconfig-network-instance"`
	ΛNamedExplicitPath []ygot.Annotation                                                                                                                     `path:"@named-explicit-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) IsYANGGoStruct() {
}

// NewNamedExplicitPath creates a new entry in the NamedExplicitPath list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) NewNamedExplicitPath(Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NamedExplicitPath == nil {
		t.NamedExplicitPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NamedExplicitPath[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NamedExplicitPath", key)
	}

	t.NamedExplicitPath[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath{
		Name: &Name,
	}

	return t.NamedExplicitPath[key], nil
}

// RenameNamedExplicitPath renames an entry in the list NamedExplicitPath within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) RenameNamedExplicitPath(oldK, newK string) error {
	if _, ok := t.NamedExplicitPath[newK]; ok {
		return fmt.Errorf("key %v already exists in NamedExplicitPath", newK)
	}

	e, ok := t.NamedExplicitPath[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NamedExplicitPath", oldK)
	}
	e.Name = &newK

	t.NamedExplicitPath[newK] = e
	delete(t.NamedExplicitPath, oldK)
	return nil
}

// GetOrCreateNamedExplicitPathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) GetOrCreateNamedExplicitPathMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath {
	if t.NamedExplicitPath == nil {
		t.NamedExplicitPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath)
	}
	return t.NamedExplicitPath
}

// GetOrCreateNamedExplicitPath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) GetOrCreateNamedExplicitPath(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath {

	key := Name

	if v, ok := t.NamedExplicitPath[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNamedExplicitPath(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNamedExplicitPath got unexpected error: %v", err))
	}
	return v
}

// GetNamedExplicitPath retrieves the value with the specified key from
// the NamedExplicitPath map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) GetNamedExplicitPath(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.NamedExplicitPath[key]; ok {
		return lm
	}
	return nil
}

// AppendNamedExplicitPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath struct to the
// list NamedExplicitPath of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) AppendNamedExplicitPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NamedExplicitPath == nil {
		t.NamedExplicitPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath)
	}

	if _, ok := t.NamedExplicitPath[key]; ok {
		return fmt.Errorf("duplicate key for list NamedExplicitPath %v", key)
	}

	t.NamedExplicitPath[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NamedExplicitPath {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath struct {
	ΛMetadata             []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config               `path:"config" module:"openconfig-network-instance"`
	ΛConfig               []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	ExplicitRouteObjects  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects `path:"explicit-route-objects" module:"openconfig-network-instance"`
	ΛExplicitRouteObjects []ygot.Annotation                                                                                                                               `path:"@explicit-route-objects" ygotAnnotation:"true"`
	Name                  *string                                                                                                                                         `path:"name" module:"openconfig-network-instance"`
	ΛName                 []ygot.Annotation                                                                                                                               `path:"@name" ygotAnnotation:"true"`
	State                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State                `path:"state" module:"openconfig-network-instance"`
	ΛState                []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config{}
	return t.Config
}

// GetOrCreateExplicitRouteObjects retrieves the value of the ExplicitRouteObjects field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) GetOrCreateExplicitRouteObjects() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects {
	if t.ExplicitRouteObjects != nil {
		return t.ExplicitRouteObjects
	}
	t.ExplicitRouteObjects = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects{}
	return t.ExplicitRouteObjects
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetExplicitRouteObjects returns the value of the ExplicitRouteObjects struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath. If the receiver or the field ExplicitRouteObjects is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) GetExplicitRouteObjects() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects {
	if t != nil && t.ExplicitRouteObjects != nil {
		return t.ExplicitRouteObjects
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.ExplicitRouteObjects.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config struct {
	ΛMetadata              []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Name                   *string                                                                                                                                             `path:"name" module:"openconfig-network-instance"`
	ΛName                  []ygot.Annotation                                                                                                                                   `path:"@name" ygotAnnotation:"true"`
	SidProtectionRequired  *bool                                                                                                                                               `path:"sid-protection-required" module:"openconfig-network-instance"`
	ΛSidProtectionRequired []ygot.Annotation                                                                                                                                   `path:"@sid-protection-required" ygotAnnotation:"true"`
	SidSelectionMode       E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode `path:"sid-selection-mode" module:"openconfig-network-instance"`
	ΛSidSelectionMode      []ygot.Annotation                                                                                                                                   `path:"@sid-selection-mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetSidProtectionRequired retrieves the value of the leaf SidProtectionRequired from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidProtectionRequired is set, it can
// safely use t.GetSidProtectionRequired() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidProtectionRequired == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) GetSidProtectionRequired() bool {
	if t == nil || t.SidProtectionRequired == nil {
		return false
	}
	return *t.SidProtectionRequired
}

// GetSidSelectionMode retrieves the value of the leaf SidSelectionMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidSelectionMode is set, it can
// safely use t.GetSidSelectionMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidSelectionMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) GetSidSelectionMode() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode {
	if t == nil || t.SidSelectionMode == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_MIXED_MODE
	}
	return t.SidSelectionMode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SidProtectionRequired == nil {
		var v bool = false
		t.SidProtectionRequired = &v
	}
	if t.SidSelectionMode == 0 {
		t.SidSelectionMode = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_MIXED_MODE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/explicit-route-objects YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	ExplicitRouteObject  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject `path:"explicit-route-object" module:"openconfig-network-instance"`
	ΛExplicitRouteObject []ygot.Annotation                                                                                                                                                             `path:"@explicit-route-object" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) IsYANGGoStruct() {
}

// NewExplicitRouteObject creates a new entry in the ExplicitRouteObject list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) NewExplicitRouteObject(Index uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ExplicitRouteObject == nil {
		t.ExplicitRouteObject = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ExplicitRouteObject[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ExplicitRouteObject", key)
	}

	t.ExplicitRouteObject[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject{
		Index: &Index,
	}

	return t.ExplicitRouteObject[key], nil
}

// RenameExplicitRouteObject renames an entry in the list ExplicitRouteObject within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) RenameExplicitRouteObject(oldK, newK uint8) error {
	if _, ok := t.ExplicitRouteObject[newK]; ok {
		return fmt.Errorf("key %v already exists in ExplicitRouteObject", newK)
	}

	e, ok := t.ExplicitRouteObject[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ExplicitRouteObject", oldK)
	}
	e.Index = &newK

	t.ExplicitRouteObject[newK] = e
	delete(t.ExplicitRouteObject, oldK)
	return nil
}

// GetOrCreateExplicitRouteObjectMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) GetOrCreateExplicitRouteObjectMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject {
	if t.ExplicitRouteObject == nil {
		t.ExplicitRouteObject = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject)
	}
	return t.ExplicitRouteObject
}

// GetOrCreateExplicitRouteObject retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) GetOrCreateExplicitRouteObject(Index uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject {

	key := Index

	if v, ok := t.ExplicitRouteObject[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewExplicitRouteObject(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateExplicitRouteObject got unexpected error: %v", err))
	}
	return v
}

// GetExplicitRouteObject retrieves the value with the specified key from
// the ExplicitRouteObject map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) GetExplicitRouteObject(Index uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.ExplicitRouteObject[key]; ok {
		return lm
	}
	return nil
}

// AppendExplicitRouteObject appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject struct to the
// list ExplicitRouteObject of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) AppendExplicitRouteObject(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ExplicitRouteObject == nil {
		t.ExplicitRouteObject = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject)
	}

	if _, ok := t.ExplicitRouteObject[key]; ok {
		return fmt.Errorf("duplicate key for list ExplicitRouteObject %v", key)
	}

	t.ExplicitRouteObject[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ExplicitRouteObject {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/explicit-route-objects/explicit-route-object YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	Index     *uint8                                                                                                                                                                     `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                                                          `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/explicit-route-objects/explicit-route-object/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Address   *string                      `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation            `path:"@address" ygotAnnotation:"true"`
	HopType   E_OpenconfigMpls_MplsHopType `path:"hop-type" module:"openconfig-network-instance"`
	ΛHopType  []ygot.Annotation            `path:"@hop-type" ygotAnnotation:"true"`
	Index     *uint8                       `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation            `path:"@index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetHopType retrieves the value of the leaf HopType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopType is set, it can
// safely use t.GetHopType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) GetHopType() E_OpenconfigMpls_MplsHopType {
	if t == nil || t.HopType == 0 {
		return 0
	}
	return t.HopType
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/explicit-route-objects/explicit-route-object/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Address   *string                      `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation            `path:"@address" ygotAnnotation:"true"`
	HopType   E_OpenconfigMpls_MplsHopType `path:"hop-type" module:"openconfig-network-instance"`
	ΛHopType  []ygot.Annotation            `path:"@hop-type" ygotAnnotation:"true"`
	Index     *uint8                       `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation            `path:"@index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetHopType retrieves the value of the leaf HopType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopType is set, it can
// safely use t.GetHopType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) GetHopType() E_OpenconfigMpls_MplsHopType {
	if t == nil || t.HopType == 0 {
		return 0
	}
	return t.HopType
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_ExplicitRouteObjects_ExplicitRouteObject_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State struct {
	ΛMetadata              []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Name                   *string                                                                                                                                             `path:"name" module:"openconfig-network-instance"`
	ΛName                  []ygot.Annotation                                                                                                                                   `path:"@name" ygotAnnotation:"true"`
	SidProtectionRequired  *bool                                                                                                                                               `path:"sid-protection-required" module:"openconfig-network-instance"`
	ΛSidProtectionRequired []ygot.Annotation                                                                                                                                   `path:"@sid-protection-required" ygotAnnotation:"true"`
	SidSelectionMode       E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode `path:"sid-selection-mode" module:"openconfig-network-instance"`
	ΛSidSelectionMode      []ygot.Annotation                                                                                                                                   `path:"@sid-selection-mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetSidProtectionRequired retrieves the value of the leaf SidProtectionRequired from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidProtectionRequired is set, it can
// safely use t.GetSidProtectionRequired() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidProtectionRequired == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) GetSidProtectionRequired() bool {
	if t == nil || t.SidProtectionRequired == nil {
		return false
	}
	return *t.SidProtectionRequired
}

// GetSidSelectionMode retrieves the value of the leaf SidSelectionMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidSelectionMode is set, it can
// safely use t.GetSidSelectionMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidSelectionMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) GetSidSelectionMode() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode {
	if t == nil || t.SidSelectionMode == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_MIXED_MODE
	}
	return t.SidSelectionMode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SidProtectionRequired == nil {
		var v bool = false
		t.SidProtectionRequired = &v
	}
	if t.SidSelectionMode == 0 {
		t.SidSelectionMode = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_MIXED_MODE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels struct {
	ΛMetadata []ygot.Annotation                                                                                               `path:"@" ygotAnnotation:"true"`
	Tunnel    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel `path:"tunnel" module:"openconfig-network-instance"`
	ΛTunnel   []ygot.Annotation                                                                                               `path:"@tunnel" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) IsYANGGoStruct() {
}

// NewTunnel creates a new entry in the Tunnel list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) NewTunnel(Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tunnel == nil {
		t.Tunnel = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Tunnel[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Tunnel", key)
	}

	t.Tunnel[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel{
		Name: &Name,
	}

	return t.Tunnel[key], nil
}

// RenameTunnel renames an entry in the list Tunnel within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) RenameTunnel(oldK, newK string) error {
	if _, ok := t.Tunnel[newK]; ok {
		return fmt.Errorf("key %v already exists in Tunnel", newK)
	}

	e, ok := t.Tunnel[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Tunnel", oldK)
	}
	e.Name = &newK

	t.Tunnel[newK] = e
	delete(t.Tunnel, oldK)
	return nil
}

// GetOrCreateTunnelMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) GetOrCreateTunnelMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel {
	if t.Tunnel == nil {
		t.Tunnel = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel)
	}
	return t.Tunnel
}

// GetOrCreateTunnel retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) GetOrCreateTunnel(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel {

	key := Name

	if v, ok := t.Tunnel[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTunnel(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTunnel got unexpected error: %v", err))
	}
	return v
}

// GetTunnel retrieves the value with the specified key from
// the Tunnel map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) GetTunnel(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Tunnel[key]; ok {
		return lm
	}
	return nil
}

// AppendTunnel appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel struct to the
// list Tunnel of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) AppendTunnel(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tunnel == nil {
		t.Tunnel = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel)
	}

	if _, ok := t.Tunnel[key]; ok {
		return fmt.Errorf("duplicate key for list Tunnel %v", key)
	}

	t.Tunnel[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tunnel {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel struct {
	ΛMetadata            []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Bandwidth            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth           `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth           []ygot.Annotation                                                                                                        `path:"@bandwidth" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	Name                 *string                                                                                                                  `path:"name" module:"openconfig-network-instance"`
	ΛName                []ygot.Annotation                                                                                                        `path:"@name" ygotAnnotation:"true"`
	P2PTunnelAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes `path:"p2p-tunnel-attributes" module:"openconfig-network-instance"`
	ΛP2PTunnelAttributes []ygot.Annotation                                                                                                        `path:"@p2p-tunnel-attributes" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) IsYANGGoStruct() {
}

// GetOrCreateBandwidth retrieves the value of the Bandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetOrCreateBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth {
	if t.Bandwidth != nil {
		return t.Bandwidth
	}
	t.Bandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth{}
	return t.Bandwidth
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config{}
	return t.Config
}

// GetOrCreateP2PTunnelAttributes retrieves the value of the P2PTunnelAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetOrCreateP2PTunnelAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes {
	if t.P2PTunnelAttributes != nil {
		return t.P2PTunnelAttributes
	}
	t.P2PTunnelAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes{}
	return t.P2PTunnelAttributes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State{}
	return t.State
}

// GetBandwidth returns the value of the Bandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel. If the receiver or the field Bandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth {
	if t != nil && t.Bandwidth != nil {
		return t.Bandwidth
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetP2PTunnelAttributes returns the value of the P2PTunnelAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel. If the receiver or the field P2PTunnelAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetP2PTunnelAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes {
	if t != nil && t.P2PTunnelAttributes != nil {
		return t.P2PTunnelAttributes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Bandwidth.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.P2PTunnelAttributes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth struct {
	ΛMetadata      []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	AutoBandwidth  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth `path:"auto-bandwidth" module:"openconfig-network-instance"`
	ΛAutoBandwidth []ygot.Annotation                                                                                                            `path:"@auto-bandwidth" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config        `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) IsYANGGoStruct() {
}

// GetOrCreateAutoBandwidth retrieves the value of the AutoBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) GetOrCreateAutoBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth {
	if t.AutoBandwidth != nil {
		return t.AutoBandwidth
	}
	t.AutoBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth{}
	return t.AutoBandwidth
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State{}
	return t.State
}

// GetAutoBandwidth returns the value of the AutoBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth. If the receiver or the field AutoBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) GetAutoBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth {
	if t != nil && t.AutoBandwidth != nil {
		return t.AutoBandwidth
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AutoBandwidth.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth struct {
	ΛMetadata  []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config    `path:"config" module:"openconfig-network-instance"`
	ΛConfig    []ygot.Annotation                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	Overflow   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow  `path:"overflow" module:"openconfig-network-instance"`
	ΛOverflow  []ygot.Annotation                                                                                                                      `path:"@overflow" ygotAnnotation:"true"`
	State      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State     `path:"state" module:"openconfig-network-instance"`
	ΛState     []ygot.Annotation                                                                                                                      `path:"@state" ygotAnnotation:"true"`
	Underflow  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow `path:"underflow" module:"openconfig-network-instance"`
	ΛUnderflow []ygot.Annotation                                                                                                                      `path:"@underflow" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config{}
	return t.Config
}

// GetOrCreateOverflow retrieves the value of the Overflow field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetOrCreateOverflow() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow {
	if t.Overflow != nil {
		return t.Overflow
	}
	t.Overflow = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow{}
	return t.Overflow
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State{}
	return t.State
}

// GetOrCreateUnderflow retrieves the value of the Underflow field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetOrCreateUnderflow() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow {
	if t.Underflow != nil {
		return t.Underflow
	}
	t.Underflow = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow{}
	return t.Underflow
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetOverflow returns the value of the Overflow struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth. If the receiver or the field Overflow is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetOverflow() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow {
	if t != nil && t.Overflow != nil {
		return t.Overflow
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnderflow returns the value of the Underflow struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth. If the receiver or the field Underflow is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) GetUnderflow() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow {
	if t != nil && t.Underflow != nil {
		return t.Underflow
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Overflow.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Underflow.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdjustInterval   *uint32           `path:"adjust-interval" module:"openconfig-network-instance"`
	ΛAdjustInterval  []ygot.Annotation `path:"@adjust-interval" ygotAnnotation:"true"`
	AdjustThreshold  *uint8            `path:"adjust-threshold" module:"openconfig-network-instance"`
	ΛAdjustThreshold []ygot.Annotation `path:"@adjust-threshold" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	MaxBw            *uint64           `path:"max-bw" module:"openconfig-network-instance"`
	ΛMaxBw           []ygot.Annotation `path:"@max-bw" ygotAnnotation:"true"`
	MinBw            *uint64           `path:"min-bw" module:"openconfig-network-instance"`
	ΛMinBw           []ygot.Annotation `path:"@min-bw" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) IsYANGGoStruct() {
}

// GetAdjustInterval retrieves the value of the leaf AdjustInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjustInterval is set, it can
// safely use t.GetAdjustInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjustInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) GetAdjustInterval() uint32 {
	if t == nil || t.AdjustInterval == nil {
		return 0
	}
	return *t.AdjustInterval
}

// GetAdjustThreshold retrieves the value of the leaf AdjustThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjustThreshold is set, it can
// safely use t.GetAdjustThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjustThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) GetAdjustThreshold() uint8 {
	if t == nil || t.AdjustThreshold == nil {
		return 0
	}
	return *t.AdjustThreshold
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMaxBw retrieves the value of the leaf MaxBw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxBw is set, it can
// safely use t.GetMaxBw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxBw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) GetMaxBw() uint64 {
	if t == nil || t.MaxBw == nil {
		return 0
	}
	return *t.MaxBw
}

// GetMinBw retrieves the value of the leaf MinBw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinBw is set, it can
// safely use t.GetMinBw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinBw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) GetMinBw() uint64 {
	if t == nil || t.MinBw == nil {
		return 0
	}
	return *t.MinBw
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/overflow YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow struct {
	ΛMetadata []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/overflow/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled            *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	OverflowThreshold  *uint8            `path:"overflow-threshold" module:"openconfig-network-instance"`
	ΛOverflowThreshold []ygot.Annotation `path:"@overflow-threshold" ygotAnnotation:"true"`
	TriggerEventCount  *uint16           `path:"trigger-event-count" module:"openconfig-network-instance"`
	ΛTriggerEventCount []ygot.Annotation `path:"@trigger-event-count" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetOverflowThreshold retrieves the value of the leaf OverflowThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OverflowThreshold is set, it can
// safely use t.GetOverflowThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OverflowThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) GetOverflowThreshold() uint8 {
	if t == nil || t.OverflowThreshold == nil {
		return 0
	}
	return *t.OverflowThreshold
}

// GetTriggerEventCount retrieves the value of the leaf TriggerEventCount from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TriggerEventCount is set, it can
// safely use t.GetTriggerEventCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TriggerEventCount == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) GetTriggerEventCount() uint16 {
	if t == nil || t.TriggerEventCount == nil {
		return 0
	}
	return *t.TriggerEventCount
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/overflow/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled            *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	OverflowThreshold  *uint8            `path:"overflow-threshold" module:"openconfig-network-instance"`
	ΛOverflowThreshold []ygot.Annotation `path:"@overflow-threshold" ygotAnnotation:"true"`
	TriggerEventCount  *uint16           `path:"trigger-event-count" module:"openconfig-network-instance"`
	ΛTriggerEventCount []ygot.Annotation `path:"@trigger-event-count" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetOverflowThreshold retrieves the value of the leaf OverflowThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OverflowThreshold is set, it can
// safely use t.GetOverflowThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OverflowThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) GetOverflowThreshold() uint8 {
	if t == nil || t.OverflowThreshold == nil {
		return 0
	}
	return *t.OverflowThreshold
}

// GetTriggerEventCount retrieves the value of the leaf TriggerEventCount from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TriggerEventCount is set, it can
// safely use t.GetTriggerEventCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TriggerEventCount == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) GetTriggerEventCount() uint16 {
	if t == nil || t.TriggerEventCount == nil {
		return 0
	}
	return *t.TriggerEventCount
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Overflow_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdjustInterval   *uint32           `path:"adjust-interval" module:"openconfig-network-instance"`
	ΛAdjustInterval  []ygot.Annotation `path:"@adjust-interval" ygotAnnotation:"true"`
	AdjustThreshold  *uint8            `path:"adjust-threshold" module:"openconfig-network-instance"`
	ΛAdjustThreshold []ygot.Annotation `path:"@adjust-threshold" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	IntervalHighBw   *uint64           `path:"interval-high-bw" module:"openconfig-network-instance"`
	ΛIntervalHighBw  []ygot.Annotation `path:"@interval-high-bw" ygotAnnotation:"true"`
	MaxBw            *uint64           `path:"max-bw" module:"openconfig-network-instance"`
	ΛMaxBw           []ygot.Annotation `path:"@max-bw" ygotAnnotation:"true"`
	MinBw            *uint64           `path:"min-bw" module:"openconfig-network-instance"`
	ΛMinBw           []ygot.Annotation `path:"@min-bw" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) IsYANGGoStruct() {
}

// GetAdjustInterval retrieves the value of the leaf AdjustInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjustInterval is set, it can
// safely use t.GetAdjustInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjustInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) GetAdjustInterval() uint32 {
	if t == nil || t.AdjustInterval == nil {
		return 0
	}
	return *t.AdjustInterval
}

// GetAdjustThreshold retrieves the value of the leaf AdjustThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjustThreshold is set, it can
// safely use t.GetAdjustThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjustThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) GetAdjustThreshold() uint8 {
	if t == nil || t.AdjustThreshold == nil {
		return 0
	}
	return *t.AdjustThreshold
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetIntervalHighBw retrieves the value of the leaf IntervalHighBw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IntervalHighBw is set, it can
// safely use t.GetIntervalHighBw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IntervalHighBw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) GetIntervalHighBw() uint64 {
	if t == nil || t.IntervalHighBw == nil {
		return 0
	}
	return *t.IntervalHighBw
}

// GetMaxBw retrieves the value of the leaf MaxBw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxBw is set, it can
// safely use t.GetMaxBw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxBw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) GetMaxBw() uint64 {
	if t == nil || t.MaxBw == nil {
		return 0
	}
	return *t.MaxBw
}

// GetMinBw retrieves the value of the leaf MinBw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinBw is set, it can
// safely use t.GetMinBw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinBw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) GetMinBw() uint64 {
	if t == nil || t.MinBw == nil {
		return 0
	}
	return *t.MinBw
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/underflow YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow struct {
	ΛMetadata []ygot.Annotation                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/underflow/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	TriggerEventCount   *uint16           `path:"trigger-event-count" module:"openconfig-network-instance"`
	ΛTriggerEventCount  []ygot.Annotation `path:"@trigger-event-count" ygotAnnotation:"true"`
	UnderflowThreshold  *uint8            `path:"underflow-threshold" module:"openconfig-network-instance"`
	ΛUnderflowThreshold []ygot.Annotation `path:"@underflow-threshold" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetTriggerEventCount retrieves the value of the leaf TriggerEventCount from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TriggerEventCount is set, it can
// safely use t.GetTriggerEventCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TriggerEventCount == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) GetTriggerEventCount() uint16 {
	if t == nil || t.TriggerEventCount == nil {
		return 0
	}
	return *t.TriggerEventCount
}

// GetUnderflowThreshold retrieves the value of the leaf UnderflowThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnderflowThreshold is set, it can
// safely use t.GetUnderflowThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnderflowThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) GetUnderflowThreshold() uint8 {
	if t == nil || t.UnderflowThreshold == nil {
		return 0
	}
	return *t.UnderflowThreshold
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/auto-bandwidth/underflow/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	TriggerEventCount   *uint16           `path:"trigger-event-count" module:"openconfig-network-instance"`
	ΛTriggerEventCount  []ygot.Annotation `path:"@trigger-event-count" ygotAnnotation:"true"`
	UnderflowThreshold  *uint8            `path:"underflow-threshold" module:"openconfig-network-instance"`
	ΛUnderflowThreshold []ygot.Annotation `path:"@underflow-threshold" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetTriggerEventCount retrieves the value of the leaf TriggerEventCount from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TriggerEventCount is set, it can
// safely use t.GetTriggerEventCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TriggerEventCount == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) GetTriggerEventCount() uint16 {
	if t == nil || t.TriggerEventCount == nil {
		return 0
	}
	return *t.TriggerEventCount
}

// GetUnderflowThreshold retrieves the value of the leaf UnderflowThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnderflowThreshold is set, it can
// safely use t.GetUnderflowThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnderflowThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) GetUnderflowThreshold() uint8 {
	if t == nil || t.UnderflowThreshold == nil {
		return 0
	}
	return *t.UnderflowThreshold
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_AutoBandwidth_Underflow_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config struct {
	ΛMetadata          []ygot.Annotation                `path:"@" ygotAnnotation:"true"`
	SetBandwidth       *uint64                          `path:"set-bandwidth" module:"openconfig-network-instance"`
	ΛSetBandwidth      []ygot.Annotation                `path:"@set-bandwidth" ygotAnnotation:"true"`
	SpecificationType  E_OpenconfigMpls_TeBandwidthType `path:"specification-type" module:"openconfig-network-instance"`
	ΛSpecificationType []ygot.Annotation                `path:"@specification-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) IsYANGGoStruct() {
}

// GetSetBandwidth retrieves the value of the leaf SetBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetBandwidth is set, it can
// safely use t.GetSetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) GetSetBandwidth() uint64 {
	if t == nil || t.SetBandwidth == nil {
		return 0
	}
	return *t.SetBandwidth
}

// GetSpecificationType retrieves the value of the leaf SpecificationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpecificationType is set, it can
// safely use t.GetSpecificationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpecificationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) GetSpecificationType() E_OpenconfigMpls_TeBandwidthType {
	if t == nil || t.SpecificationType == 0 {
		return OpenconfigMpls_TeBandwidthType_SPECIFIED
	}
	return t.SpecificationType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SpecificationType == 0 {
		t.SpecificationType = OpenconfigMpls_TeBandwidthType_SPECIFIED
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State struct {
	ΛMetadata          []ygot.Annotation                `path:"@" ygotAnnotation:"true"`
	SetBandwidth       *uint64                          `path:"set-bandwidth" module:"openconfig-network-instance"`
	ΛSetBandwidth      []ygot.Annotation                `path:"@set-bandwidth" ygotAnnotation:"true"`
	SignaledBandwidth  *uint64                          `path:"signaled-bandwidth" module:"openconfig-network-instance"`
	ΛSignaledBandwidth []ygot.Annotation                `path:"@signaled-bandwidth" ygotAnnotation:"true"`
	SpecificationType  E_OpenconfigMpls_TeBandwidthType `path:"specification-type" module:"openconfig-network-instance"`
	ΛSpecificationType []ygot.Annotation                `path:"@specification-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) IsYANGGoStruct() {
}

// GetSetBandwidth retrieves the value of the leaf SetBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetBandwidth is set, it can
// safely use t.GetSetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) GetSetBandwidth() uint64 {
	if t == nil || t.SetBandwidth == nil {
		return 0
	}
	return *t.SetBandwidth
}

// GetSignaledBandwidth retrieves the value of the leaf SignaledBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SignaledBandwidth is set, it can
// safely use t.GetSignaledBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SignaledBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) GetSignaledBandwidth() uint64 {
	if t == nil || t.SignaledBandwidth == nil {
		return 0
	}
	return *t.SignaledBandwidth
}

// GetSpecificationType retrieves the value of the leaf SpecificationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpecificationType is set, it can
// safely use t.GetSpecificationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpecificationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) GetSpecificationType() E_OpenconfigMpls_TeBandwidthType {
	if t == nil || t.SpecificationType == 0 {
		return OpenconfigMpls_TeBandwidthType_SPECIFIED
	}
	return t.SpecificationType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SpecificationType == 0 {
		t.SpecificationType = OpenconfigMpls_TeBandwidthType_SPECIFIED
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Bandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config struct {
	ΛMetadata                 []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	AdminStatus               E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS `path:"admin-status" module:"openconfig-network-instance"`
	ΛAdminStatus              []ygot.Annotation                         `path:"@admin-status" ygotAnnotation:"true"`
	Description               *string                                   `path:"description" module:"openconfig-network-instance"`
	ΛDescription              []ygot.Annotation                         `path:"@description" ygotAnnotation:"true"`
	HoldPriority              *uint8                                    `path:"hold-priority" module:"openconfig-network-instance"`
	ΛHoldPriority             []ygot.Annotation                         `path:"@hold-priority" ygotAnnotation:"true"`
	Metric                    *int32                                    `path:"metric" module:"openconfig-network-instance"`
	ΛMetric                   []ygot.Annotation                         `path:"@metric" ygotAnnotation:"true"`
	MetricType                E_OpenconfigMplsTypes_LSP_METRIC_TYPE     `path:"metric-type" module:"openconfig-network-instance"`
	ΛMetricType               []ygot.Annotation                         `path:"@metric-type" ygotAnnotation:"true"`
	Name                      *string                                   `path:"name" module:"openconfig-network-instance"`
	ΛName                     []ygot.Annotation                         `path:"@name" ygotAnnotation:"true"`
	Preference                *uint8                                    `path:"preference" module:"openconfig-network-instance"`
	ΛPreference               []ygot.Annotation                         `path:"@preference" ygotAnnotation:"true"`
	ProtectionStyleRequested  E_OpenconfigMplsTypes_PROTECTION_TYPE     `path:"protection-style-requested" module:"openconfig-network-instance"`
	ΛProtectionStyleRequested []ygot.Annotation                         `path:"@protection-style-requested" ygotAnnotation:"true"`
	ReoptimizeTimer           *uint16                                   `path:"reoptimize-timer" module:"openconfig-network-instance"`
	ΛReoptimizeTimer          []ygot.Annotation                         `path:"@reoptimize-timer" ygotAnnotation:"true"`
	SetupPriority             *uint8                                    `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority            []ygot.Annotation                         `path:"@setup-priority" ygotAnnotation:"true"`
	ShortcutEligible          *bool                                     `path:"shortcut-eligible" module:"openconfig-network-instance"`
	ΛShortcutEligible         []ygot.Annotation                         `path:"@shortcut-eligible" ygotAnnotation:"true"`
	SignalingProtocol         E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL `path:"signaling-protocol" module:"openconfig-network-instance"`
	ΛSignalingProtocol        []ygot.Annotation                         `path:"@signaling-protocol" ygotAnnotation:"true"`
	SoftPreemption            *bool                                     `path:"soft-preemption" module:"openconfig-network-instance"`
	ΛSoftPreemption           []ygot.Annotation                         `path:"@soft-preemption" ygotAnnotation:"true"`
	Source                    *string                                   `path:"source" module:"openconfig-network-instance"`
	ΛSource                   []ygot.Annotation                         `path:"@source" ygotAnnotation:"true"`
	Type                      E_OpenconfigMplsTypes_TUNNEL_TYPE         `path:"type" module:"openconfig-network-instance"`
	ΛType                     []ygot.Annotation                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) IsYANGGoStruct() {
}

// GetAdminStatus retrieves the value of the leaf AdminStatus from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminStatus is set, it can
// safely use t.GetAdminStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetAdminStatus() E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS {
	if t == nil || t.AdminStatus == 0 {
		return OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_UP
	}
	return t.AdminStatus
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetHoldPriority retrieves the value of the leaf HoldPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldPriority is set, it can
// safely use t.GetHoldPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetHoldPriority() uint8 {
	if t == nil || t.HoldPriority == nil {
		return 0
	}
	return *t.HoldPriority
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetMetric() int32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMetricType retrieves the value of the leaf MetricType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricType is set, it can
// safely use t.GetMetricType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetMetricType() E_OpenconfigMplsTypes_LSP_METRIC_TYPE {
	if t == nil || t.MetricType == 0 {
		return OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_INHERITED
	}
	return t.MetricType
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetProtectionStyleRequested retrieves the value of the leaf ProtectionStyleRequested from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtectionStyleRequested is set, it can
// safely use t.GetProtectionStyleRequested() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtectionStyleRequested == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetProtectionStyleRequested() E_OpenconfigMplsTypes_PROTECTION_TYPE {
	if t == nil || t.ProtectionStyleRequested == 0 {
		return OpenconfigMplsTypes_PROTECTION_TYPE_UNPROTECTED
	}
	return t.ProtectionStyleRequested
}

// GetReoptimizeTimer retrieves the value of the leaf ReoptimizeTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReoptimizeTimer is set, it can
// safely use t.GetReoptimizeTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReoptimizeTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetReoptimizeTimer() uint16 {
	if t == nil || t.ReoptimizeTimer == nil {
		return 0
	}
	return *t.ReoptimizeTimer
}

// GetSetupPriority retrieves the value of the leaf SetupPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetupPriority is set, it can
// safely use t.GetSetupPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetupPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetSetupPriority() uint8 {
	if t == nil || t.SetupPriority == nil {
		return 7
	}
	return *t.SetupPriority
}

// GetShortcutEligible retrieves the value of the leaf ShortcutEligible from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ShortcutEligible is set, it can
// safely use t.GetShortcutEligible() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ShortcutEligible == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetShortcutEligible() bool {
	if t == nil || t.ShortcutEligible == nil {
		return true
	}
	return *t.ShortcutEligible
}

// GetSignalingProtocol retrieves the value of the leaf SignalingProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SignalingProtocol is set, it can
// safely use t.GetSignalingProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SignalingProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetSignalingProtocol() E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL {
	if t == nil || t.SignalingProtocol == 0 {
		return 0
	}
	return t.SignalingProtocol
}

// GetSoftPreemption retrieves the value of the leaf SoftPreemption from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SoftPreemption is set, it can
// safely use t.GetSoftPreemption() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SoftPreemption == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetSoftPreemption() bool {
	if t == nil || t.SoftPreemption == nil {
		return false
	}
	return *t.SoftPreemption
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) GetType() E_OpenconfigMplsTypes_TUNNEL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdminStatus == 0 {
		t.AdminStatus = OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_UP
	}
	if t.HoldPriority == nil {
		var v uint8 = 0
		t.HoldPriority = &v
	}
	if t.MetricType == 0 {
		t.MetricType = OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_INHERITED
	}
	if t.ProtectionStyleRequested == 0 {
		t.ProtectionStyleRequested = OpenconfigMplsTypes_PROTECTION_TYPE_UNPROTECTED
	}
	if t.SetupPriority == nil {
		var v uint8 = 7
		t.SetupPriority = &v
	}
	if t.ShortcutEligible == nil {
		var v bool = true
		t.ShortcutEligible = &v
	}
	if t.SoftPreemption == nil {
		var v bool = false
		t.SoftPreemption = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes struct {
	ΛMetadata          []ygot.Annotation                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config            `path:"config" module:"openconfig-network-instance"`
	ΛConfig            []ygot.Annotation                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	P2PPrimaryPath     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath    `path:"p2p-primary-path" module:"openconfig-network-instance"`
	ΛP2PPrimaryPath    []ygot.Annotation                                                                                                                          `path:"@p2p-primary-path" ygotAnnotation:"true"`
	P2PSecondaryPaths  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths `path:"p2p-secondary-paths" module:"openconfig-network-instance"`
	ΛP2PSecondaryPaths []ygot.Annotation                                                                                                                          `path:"@p2p-secondary-paths" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config{}
	return t.Config
}

// GetOrCreateP2PPrimaryPath retrieves the value of the P2PPrimaryPath field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetOrCreateP2PPrimaryPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath {
	if t.P2PPrimaryPath != nil {
		return t.P2PPrimaryPath
	}
	t.P2PPrimaryPath = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath{}
	return t.P2PPrimaryPath
}

// GetOrCreateP2PSecondaryPaths retrieves the value of the P2PSecondaryPaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetOrCreateP2PSecondaryPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths {
	if t.P2PSecondaryPaths != nil {
		return t.P2PSecondaryPaths
	}
	t.P2PSecondaryPaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths{}
	return t.P2PSecondaryPaths
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetP2PPrimaryPath returns the value of the P2PPrimaryPath struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes. If the receiver or the field P2PPrimaryPath is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetP2PPrimaryPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath {
	if t != nil && t.P2PPrimaryPath != nil {
		return t.P2PPrimaryPath
	}
	return nil
}

// GetP2PSecondaryPaths returns the value of the P2PSecondaryPaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes. If the receiver or the field P2PSecondaryPaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetP2PSecondaryPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths {
	if t != nil && t.P2PSecondaryPaths != nil {
		return t.P2PSecondaryPaths
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.P2PPrimaryPath.PopulateDefaults()
	t.P2PSecondaryPaths.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Destination         *string           `path:"destination" module:"openconfig-network-instance"`
	ΛDestination        []ygot.Annotation `path:"@destination" ygotAnnotation:"true"`
	RecordRouteEnabled  *bool             `path:"record-route-enabled" module:"openconfig-network-instance"`
	ΛRecordRouteEnabled []ygot.Annotation `path:"@record-route-enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) IsYANGGoStruct() {
}

// GetDestination retrieves the value of the leaf Destination from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Destination is set, it can
// safely use t.GetDestination() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Destination == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) GetDestination() string {
	if t == nil || t.Destination == nil {
		return ""
	}
	return *t.Destination
}

// GetRecordRouteEnabled retrieves the value of the leaf RecordRouteEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RecordRouteEnabled is set, it can
// safely use t.GetRecordRouteEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RecordRouteEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) GetRecordRouteEnabled() bool {
	if t == nil || t.RecordRouteEnabled == nil {
		return false
	}
	return *t.RecordRouteEnabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	P2PPrimaryPath  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath `path:"p2p-primary-path" module:"openconfig-network-instance"`
	ΛP2PPrimaryPath []ygot.Annotation                                                                                                                                                 `path:"@p2p-primary-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) IsYANGGoStruct() {
}

// NewP2PPrimaryPath creates a new entry in the P2PPrimaryPath list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) NewP2PPrimaryPath(Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.P2PPrimaryPath == nil {
		t.P2PPrimaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.P2PPrimaryPath[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list P2PPrimaryPath", key)
	}

	t.P2PPrimaryPath[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath{
		Name: &Name,
	}

	return t.P2PPrimaryPath[key], nil
}

// RenameP2PPrimaryPath renames an entry in the list P2PPrimaryPath within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) RenameP2PPrimaryPath(oldK, newK string) error {
	if _, ok := t.P2PPrimaryPath[newK]; ok {
		return fmt.Errorf("key %v already exists in P2PPrimaryPath", newK)
	}

	e, ok := t.P2PPrimaryPath[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in P2PPrimaryPath", oldK)
	}
	e.Name = &newK

	t.P2PPrimaryPath[newK] = e
	delete(t.P2PPrimaryPath, oldK)
	return nil
}

// GetOrCreateP2PPrimaryPathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) GetOrCreateP2PPrimaryPathMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath {
	if t.P2PPrimaryPath == nil {
		t.P2PPrimaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath)
	}
	return t.P2PPrimaryPath
}

// GetOrCreateP2PPrimaryPath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) GetOrCreateP2PPrimaryPath(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath {

	key := Name

	if v, ok := t.P2PPrimaryPath[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewP2PPrimaryPath(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateP2PPrimaryPath got unexpected error: %v", err))
	}
	return v
}

// GetP2PPrimaryPath retrieves the value with the specified key from
// the P2PPrimaryPath map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) GetP2PPrimaryPath(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.P2PPrimaryPath[key]; ok {
		return lm
	}
	return nil
}

// AppendP2PPrimaryPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath struct to the
// list P2PPrimaryPath of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) AppendP2PPrimaryPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.P2PPrimaryPath == nil {
		t.P2PPrimaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath)
	}

	if _, ok := t.P2PPrimaryPath[key]; ok {
		return fmt.Errorf("duplicate key for list P2PPrimaryPath %v", key)
	}

	t.P2PPrimaryPath[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.P2PPrimaryPath {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	AdminGroups                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups                `path:"admin-groups" module:"openconfig-network-instance"`
	ΛAdminGroups                []ygot.Annotation                                                                                                                                                                 `path:"@admin-groups" ygotAnnotation:"true"`
	CandidateSecondaryPaths     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths    `path:"candidate-secondary-paths" module:"openconfig-network-instance"`
	ΛCandidateSecondaryPaths    []ygot.Annotation                                                                                                                                                                 `path:"@candidate-secondary-paths" ygotAnnotation:"true"`
	Config                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config                     `path:"config" module:"openconfig-network-instance"`
	ΛConfig                     []ygot.Annotation                                                                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	Name                        *string                                                                                                                                                                           `path:"name" module:"openconfig-network-instance"`
	ΛName                       []ygot.Annotation                                                                                                                                                                 `path:"@name" ygotAnnotation:"true"`
	PathMetricBoundConstraints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints `path:"path-metric-bound-constraints" module:"openconfig-network-instance"`
	ΛPathMetricBoundConstraints []ygot.Annotation                                                                                                                                                                 `path:"@path-metric-bound-constraints" ygotAnnotation:"true"`
	State                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State                      `path:"state" module:"openconfig-network-instance"`
	ΛState                      []ygot.Annotation                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) IsYANGGoStruct() {
}

// GetOrCreateAdminGroups retrieves the value of the AdminGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetOrCreateAdminGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups {
	if t.AdminGroups != nil {
		return t.AdminGroups
	}
	t.AdminGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups{}
	return t.AdminGroups
}

// GetOrCreateCandidateSecondaryPaths retrieves the value of the CandidateSecondaryPaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetOrCreateCandidateSecondaryPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths {
	if t.CandidateSecondaryPaths != nil {
		return t.CandidateSecondaryPaths
	}
	t.CandidateSecondaryPaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths{}
	return t.CandidateSecondaryPaths
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config{}
	return t.Config
}

// GetOrCreatePathMetricBoundConstraints retrieves the value of the PathMetricBoundConstraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetOrCreatePathMetricBoundConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints {
	if t.PathMetricBoundConstraints != nil {
		return t.PathMetricBoundConstraints
	}
	t.PathMetricBoundConstraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints{}
	return t.PathMetricBoundConstraints
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State{}
	return t.State
}

// GetAdminGroups returns the value of the AdminGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath. If the receiver or the field AdminGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetAdminGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups {
	if t != nil && t.AdminGroups != nil {
		return t.AdminGroups
	}
	return nil
}

// GetCandidateSecondaryPaths returns the value of the CandidateSecondaryPaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath. If the receiver or the field CandidateSecondaryPaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetCandidateSecondaryPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths {
	if t != nil && t.CandidateSecondaryPaths != nil {
		return t.CandidateSecondaryPaths
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPathMetricBoundConstraints returns the value of the PathMetricBoundConstraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath. If the receiver or the field PathMetricBoundConstraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetPathMetricBoundConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints {
	if t != nil && t.PathMetricBoundConstraints != nil {
		return t.PathMetricBoundConstraints
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdminGroups.PopulateDefaults()
	t.CandidateSecondaryPaths.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.PathMetricBoundConstraints.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/admin-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/admin-groups/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExcludeGroup     []string          `path:"exclude-group" module:"openconfig-network-instance"`
	ΛExcludeGroup    []ygot.Annotation `path:"@exclude-group" ygotAnnotation:"true"`
	IncludeAllGroup  []string          `path:"include-all-group" module:"openconfig-network-instance"`
	ΛIncludeAllGroup []ygot.Annotation `path:"@include-all-group" ygotAnnotation:"true"`
	IncludeAnyGroup  []string          `path:"include-any-group" module:"openconfig-network-instance"`
	ΛIncludeAnyGroup []ygot.Annotation `path:"@include-any-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) IsYANGGoStruct() {
}

// GetExcludeGroup retrieves the value of the leaf ExcludeGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExcludeGroup is set, it can
// safely use t.GetExcludeGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExcludeGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) GetExcludeGroup() []string {
	if t == nil || t.ExcludeGroup == nil {
		return nil
	}
	return t.ExcludeGroup
}

// GetIncludeAllGroup retrieves the value of the leaf IncludeAllGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAllGroup is set, it can
// safely use t.GetIncludeAllGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAllGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) GetIncludeAllGroup() []string {
	if t == nil || t.IncludeAllGroup == nil {
		return nil
	}
	return t.IncludeAllGroup
}

// GetIncludeAnyGroup retrieves the value of the leaf IncludeAnyGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAnyGroup is set, it can
// safely use t.GetIncludeAnyGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAnyGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) GetIncludeAnyGroup() []string {
	if t == nil || t.IncludeAnyGroup == nil {
		return nil
	}
	return t.IncludeAnyGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/admin-groups/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExcludeGroup     []string          `path:"exclude-group" module:"openconfig-network-instance"`
	ΛExcludeGroup    []ygot.Annotation `path:"@exclude-group" ygotAnnotation:"true"`
	IncludeAllGroup  []string          `path:"include-all-group" module:"openconfig-network-instance"`
	ΛIncludeAllGroup []ygot.Annotation `path:"@include-all-group" ygotAnnotation:"true"`
	IncludeAnyGroup  []string          `path:"include-any-group" module:"openconfig-network-instance"`
	ΛIncludeAnyGroup []ygot.Annotation `path:"@include-any-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) IsYANGGoStruct() {
}

// GetExcludeGroup retrieves the value of the leaf ExcludeGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExcludeGroup is set, it can
// safely use t.GetExcludeGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExcludeGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) GetExcludeGroup() []string {
	if t == nil || t.ExcludeGroup == nil {
		return nil
	}
	return t.ExcludeGroup
}

// GetIncludeAllGroup retrieves the value of the leaf IncludeAllGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAllGroup is set, it can
// safely use t.GetIncludeAllGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAllGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) GetIncludeAllGroup() []string {
	if t == nil || t.IncludeAllGroup == nil {
		return nil
	}
	return t.IncludeAllGroup
}

// GetIncludeAnyGroup retrieves the value of the leaf IncludeAnyGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAnyGroup is set, it can
// safely use t.GetIncludeAnyGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAnyGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) GetIncludeAnyGroup() []string {
	if t == nil || t.IncludeAnyGroup == nil {
		return nil
	}
	return t.IncludeAnyGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_AdminGroups_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/candidate-secondary-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths struct {
	ΛMetadata               []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	CandidateSecondaryPath  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath `path:"candidate-secondary-path" module:"openconfig-network-instance"`
	ΛCandidateSecondaryPath []ygot.Annotation                                                                                                                                                                                                `path:"@candidate-secondary-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) IsYANGGoStruct() {
}

// NewCandidateSecondaryPath creates a new entry in the CandidateSecondaryPath list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) NewCandidateSecondaryPath(SecondaryPath string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CandidateSecondaryPath == nil {
		t.CandidateSecondaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath)
	}

	key := SecondaryPath

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CandidateSecondaryPath[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CandidateSecondaryPath", key)
	}

	t.CandidateSecondaryPath[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath{
		SecondaryPath: &SecondaryPath,
	}

	return t.CandidateSecondaryPath[key], nil
}

// RenameCandidateSecondaryPath renames an entry in the list CandidateSecondaryPath within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) RenameCandidateSecondaryPath(oldK, newK string) error {
	if _, ok := t.CandidateSecondaryPath[newK]; ok {
		return fmt.Errorf("key %v already exists in CandidateSecondaryPath", newK)
	}

	e, ok := t.CandidateSecondaryPath[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in CandidateSecondaryPath", oldK)
	}
	e.SecondaryPath = &newK

	t.CandidateSecondaryPath[newK] = e
	delete(t.CandidateSecondaryPath, oldK)
	return nil
}

// GetOrCreateCandidateSecondaryPathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) GetOrCreateCandidateSecondaryPathMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath {
	if t.CandidateSecondaryPath == nil {
		t.CandidateSecondaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath)
	}
	return t.CandidateSecondaryPath
}

// GetOrCreateCandidateSecondaryPath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) GetOrCreateCandidateSecondaryPath(SecondaryPath string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath {

	key := SecondaryPath

	if v, ok := t.CandidateSecondaryPath[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewCandidateSecondaryPath(SecondaryPath)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateCandidateSecondaryPath got unexpected error: %v", err))
	}
	return v
}

// GetCandidateSecondaryPath retrieves the value with the specified key from
// the CandidateSecondaryPath map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) GetCandidateSecondaryPath(SecondaryPath string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath {

	if t == nil {
		return nil
	}

	key := SecondaryPath

	if lm, ok := t.CandidateSecondaryPath[key]; ok {
		return lm
	}
	return nil
}

// AppendCandidateSecondaryPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath struct to the
// list CandidateSecondaryPath of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) AppendCandidateSecondaryPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) error {
	if v.SecondaryPath == nil {
		return fmt.Errorf("invalid nil key received for SecondaryPath")
	}

	key := *v.SecondaryPath

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CandidateSecondaryPath == nil {
		t.CandidateSecondaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath)
	}

	if _, ok := t.CandidateSecondaryPath[key]; ok {
		return fmt.Errorf("duplicate key for list CandidateSecondaryPath %v", key)
	}

	t.CandidateSecondaryPath[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.CandidateSecondaryPath {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/candidate-secondary-paths/candidate-secondary-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	SecondaryPath  *string                                                                                                                                                                                                      `path:"secondary-path" module:"openconfig-network-instance"`
	ΛSecondaryPath []ygot.Annotation                                                                                                                                                                                            `path:"@secondary-path" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State  `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSecondaryPath retrieves the value of the leaf SecondaryPath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecondaryPath is set, it can
// safely use t.GetSecondaryPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecondaryPath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) GetSecondaryPath() string {
	if t == nil || t.SecondaryPath == nil {
		return ""
	}
	return *t.SecondaryPath
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SecondaryPath == nil {
		return nil, fmt.Errorf("nil value for key SecondaryPath")
	}

	return map[string]interface{}{
		"secondary-path": *t.SecondaryPath,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/candidate-secondary-paths/candidate-secondary-path/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Priority       *uint16           `path:"priority" module:"openconfig-network-instance"`
	ΛPriority      []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
	SecondaryPath  *string           `path:"secondary-path" module:"openconfig-network-instance"`
	ΛSecondaryPath []ygot.Annotation `path:"@secondary-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) IsYANGGoStruct() {
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) GetPriority() uint16 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetSecondaryPath retrieves the value of the leaf SecondaryPath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecondaryPath is set, it can
// safely use t.GetSecondaryPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecondaryPath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) GetSecondaryPath() string {
	if t == nil || t.SecondaryPath == nil {
		return ""
	}
	return *t.SecondaryPath
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/candidate-secondary-paths/candidate-secondary-path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Active         *bool             `path:"active" module:"openconfig-network-instance"`
	ΛActive        []ygot.Annotation `path:"@active" ygotAnnotation:"true"`
	Priority       *uint16           `path:"priority" module:"openconfig-network-instance"`
	ΛPriority      []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
	SecondaryPath  *string           `path:"secondary-path" module:"openconfig-network-instance"`
	ΛSecondaryPath []ygot.Annotation `path:"@secondary-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) IsYANGGoStruct() {
}

// GetActive retrieves the value of the leaf Active from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) GetPriority() uint16 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetSecondaryPath retrieves the value of the leaf SecondaryPath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecondaryPath is set, it can
// safely use t.GetSecondaryPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecondaryPath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) GetSecondaryPath() string {
	if t == nil || t.SecondaryPath == nil {
		return ""
	}
	return *t.SecondaryPath
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_CandidateSecondaryPaths_CandidateSecondaryPath_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config struct {
	ΛMetadata              []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	CspfTiebreaker         E_OpenconfigMpls_CspfTieBreaking              `path:"cspf-tiebreaker" module:"openconfig-network-instance"`
	ΛCspfTiebreaker        []ygot.Annotation                             `path:"@cspf-tiebreaker" ygotAnnotation:"true"`
	ExplicitPathName       *string                                       `path:"explicit-path-name" module:"openconfig-network-instance"`
	ΛExplicitPathName      []ygot.Annotation                             `path:"@explicit-path-name" ygotAnnotation:"true"`
	HoldPriority           *uint8                                        `path:"hold-priority" module:"openconfig-network-instance"`
	ΛHoldPriority          []ygot.Annotation                             `path:"@hold-priority" ygotAnnotation:"true"`
	Name                   *string                                       `path:"name" module:"openconfig-network-instance"`
	ΛName                  []ygot.Annotation                             `path:"@name" ygotAnnotation:"true"`
	PathComputationMethod  E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD `path:"path-computation-method" module:"openconfig-network-instance"`
	ΛPathComputationMethod []ygot.Annotation                             `path:"@path-computation-method" ygotAnnotation:"true"`
	PathComputationServer  *string                                       `path:"path-computation-server" module:"openconfig-network-instance"`
	ΛPathComputationServer []ygot.Annotation                             `path:"@path-computation-server" ygotAnnotation:"true"`
	PathControl            E_OpenconfigPcep_LspControlType               `path:"path-control" module:"openconfig-network-instance"`
	ΛPathControl           []ygot.Annotation                             `path:"@path-control" ygotAnnotation:"true"`
	Preference             *uint8                                        `path:"preference" module:"openconfig-network-instance"`
	ΛPreference            []ygot.Annotation                             `path:"@preference" ygotAnnotation:"true"`
	RetryTimer             *uint16                                       `path:"retry-timer" module:"openconfig-network-instance"`
	ΛRetryTimer            []ygot.Annotation                             `path:"@retry-timer" ygotAnnotation:"true"`
	SetupPriority          *uint8                                        `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority         []ygot.Annotation                             `path:"@setup-priority" ygotAnnotation:"true"`
	UseCspf                *bool                                         `path:"use-cspf" module:"openconfig-network-instance"`
	ΛUseCspf               []ygot.Annotation                             `path:"@use-cspf" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) IsYANGGoStruct() {
}

// GetCspfTiebreaker retrieves the value of the leaf CspfTiebreaker from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CspfTiebreaker is set, it can
// safely use t.GetCspfTiebreaker() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CspfTiebreaker == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetCspfTiebreaker() E_OpenconfigMpls_CspfTieBreaking {
	if t == nil || t.CspfTiebreaker == 0 {
		return OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	return t.CspfTiebreaker
}

// GetExplicitPathName retrieves the value of the leaf ExplicitPathName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitPathName is set, it can
// safely use t.GetExplicitPathName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitPathName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetExplicitPathName() string {
	if t == nil || t.ExplicitPathName == nil {
		return ""
	}
	return *t.ExplicitPathName
}

// GetHoldPriority retrieves the value of the leaf HoldPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldPriority is set, it can
// safely use t.GetHoldPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetHoldPriority() uint8 {
	if t == nil || t.HoldPriority == nil {
		return 0
	}
	return *t.HoldPriority
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPathComputationMethod retrieves the value of the leaf PathComputationMethod from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationMethod is set, it can
// safely use t.GetPathComputationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetPathComputationMethod() E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD {
	if t == nil || t.PathComputationMethod == 0 {
		return OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	return t.PathComputationMethod
}

// GetPathComputationServer retrieves the value of the leaf PathComputationServer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationServer is set, it can
// safely use t.GetPathComputationServer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationServer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetPathComputationServer() string {
	if t == nil || t.PathComputationServer == nil {
		return ""
	}
	return *t.PathComputationServer
}

// GetPathControl retrieves the value of the leaf PathControl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathControl is set, it can
// safely use t.GetPathControl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathControl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetPathControl() E_OpenconfigPcep_LspControlType {
	if t == nil || t.PathControl == 0 {
		return 0
	}
	return t.PathControl
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetRetryTimer retrieves the value of the leaf RetryTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetryTimer is set, it can
// safely use t.GetRetryTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetryTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetRetryTimer() uint16 {
	if t == nil || t.RetryTimer == nil {
		return 0
	}
	return *t.RetryTimer
}

// GetSetupPriority retrieves the value of the leaf SetupPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetupPriority is set, it can
// safely use t.GetSetupPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetupPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetSetupPriority() uint8 {
	if t == nil || t.SetupPriority == nil {
		return 7
	}
	return *t.SetupPriority
}

// GetUseCspf retrieves the value of the leaf UseCspf from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UseCspf is set, it can
// safely use t.GetUseCspf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UseCspf == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) GetUseCspf() bool {
	if t == nil || t.UseCspf == nil {
		return false
	}
	return *t.UseCspf
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.CspfTiebreaker == 0 {
		t.CspfTiebreaker = OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	if t.HoldPriority == nil {
		var v uint8 = 0
		t.HoldPriority = &v
	}
	if t.PathComputationMethod == 0 {
		t.PathComputationMethod = OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	if t.SetupPriority == nil {
		var v uint8 = 7
		t.SetupPriority = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/path-metric-bound-constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	PathMetricBoundConstraint  map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint `path:"path-metric-bound-constraint" module:"openconfig-network-instance"`
	ΛPathMetricBoundConstraint []ygot.Annotation                                                                                                                                                                                                                                      `path:"@path-metric-bound-constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) IsYANGGoStruct() {
}

// NewPathMetricBoundConstraint creates a new entry in the PathMetricBoundConstraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) NewPathMetricBoundConstraint(Type E_OpenconfigMplsTypes_PATH_METRIC_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathMetricBoundConstraint == nil {
		t.PathMetricBoundConstraint = make(map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PathMetricBoundConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PathMetricBoundConstraint", key)
	}

	t.PathMetricBoundConstraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint{
		Type: Type,
	}

	return t.PathMetricBoundConstraint[key], nil
}

// RenamePathMetricBoundConstraint renames an entry in the list PathMetricBoundConstraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) RenamePathMetricBoundConstraint(oldK, newK E_OpenconfigMplsTypes_PATH_METRIC_TYPE) error {
	if _, ok := t.PathMetricBoundConstraint[newK]; ok {
		return fmt.Errorf("key %v already exists in PathMetricBoundConstraint", newK)
	}

	e, ok := t.PathMetricBoundConstraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PathMetricBoundConstraint", oldK)
	}
	e.Type = newK

	t.PathMetricBoundConstraint[newK] = e
	delete(t.PathMetricBoundConstraint, oldK)
	return nil
}

// GetOrCreatePathMetricBoundConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) GetOrCreatePathMetricBoundConstraintMap() map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint {
	if t.PathMetricBoundConstraint == nil {
		t.PathMetricBoundConstraint = make(map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint)
	}
	return t.PathMetricBoundConstraint
}

// GetOrCreatePathMetricBoundConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) GetOrCreatePathMetricBoundConstraint(Type E_OpenconfigMplsTypes_PATH_METRIC_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint {

	key := Type

	if v, ok := t.PathMetricBoundConstraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPathMetricBoundConstraint(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePathMetricBoundConstraint got unexpected error: %v", err))
	}
	return v
}

// GetPathMetricBoundConstraint retrieves the value with the specified key from
// the PathMetricBoundConstraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) GetPathMetricBoundConstraint(Type E_OpenconfigMplsTypes_PATH_METRIC_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.PathMetricBoundConstraint[key]; ok {
		return lm
	}
	return nil
}

// AppendPathMetricBoundConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint struct to the
// list PathMetricBoundConstraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) AppendPathMetricBoundConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathMetricBoundConstraint == nil {
		t.PathMetricBoundConstraint = make(map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint)
	}

	if _, ok := t.PathMetricBoundConstraint[key]; ok {
		return fmt.Errorf("duplicate key for list PathMetricBoundConstraint %v", key)
	}

	t.PathMetricBoundConstraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PathMetricBoundConstraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/path-metric-bound-constraints/path-metric-bound-constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Type      E_OpenconfigMplsTypes_PATH_METRIC_TYPE                                                                                                                                                                             `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetType() E_OpenconfigMplsTypes_PATH_METRIC_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/path-metric-bound-constraints/path-metric-bound-constraint/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config struct {
	ΛMetadata         []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	MetricUpperBound  *uint64                                `path:"metric-upper-bound" module:"openconfig-network-instance"`
	ΛMetricUpperBound []ygot.Annotation                      `path:"@metric-upper-bound" ygotAnnotation:"true"`
	Type              E_OpenconfigMplsTypes_PATH_METRIC_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType             []ygot.Annotation                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) IsYANGGoStruct() {
}

// GetMetricUpperBound retrieves the value of the leaf MetricUpperBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricUpperBound is set, it can
// safely use t.GetMetricUpperBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricUpperBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) GetMetricUpperBound() uint64 {
	if t == nil || t.MetricUpperBound == nil {
		return 0
	}
	return *t.MetricUpperBound
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) GetType() E_OpenconfigMplsTypes_PATH_METRIC_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MetricUpperBound == nil {
		var v uint64 = 0
		t.MetricUpperBound = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/path-metric-bound-constraints/path-metric-bound-constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State struct {
	ΛMetadata         []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	MetricUpperBound  *uint64                                `path:"metric-upper-bound" module:"openconfig-network-instance"`
	ΛMetricUpperBound []ygot.Annotation                      `path:"@metric-upper-bound" ygotAnnotation:"true"`
	Type              E_OpenconfigMplsTypes_PATH_METRIC_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType             []ygot.Annotation                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) IsYANGGoStruct() {
}

// GetMetricUpperBound retrieves the value of the leaf MetricUpperBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricUpperBound is set, it can
// safely use t.GetMetricUpperBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricUpperBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) GetMetricUpperBound() uint64 {
	if t == nil || t.MetricUpperBound == nil {
		return 0
	}
	return *t.MetricUpperBound
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) GetType() E_OpenconfigMplsTypes_PATH_METRIC_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MetricUpperBound == nil {
		var v uint64 = 0
		t.MetricUpperBound = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State struct {
	ΛMetadata               []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	AssociatedRsvpSessions  []uint64                                      `path:"associated-rsvp-sessions" module:"openconfig-network-instance"`
	ΛAssociatedRsvpSessions []ygot.Annotation                             `path:"@associated-rsvp-sessions" ygotAnnotation:"true"`
	CspfMetric              *uint64                                       `path:"cspf-metric" module:"openconfig-network-instance"`
	ΛCspfMetric             []ygot.Annotation                             `path:"@cspf-metric" ygotAnnotation:"true"`
	CspfTiebreaker          E_OpenconfigMpls_CspfTieBreaking              `path:"cspf-tiebreaker" module:"openconfig-network-instance"`
	ΛCspfTiebreaker         []ygot.Annotation                             `path:"@cspf-tiebreaker" ygotAnnotation:"true"`
	ExplicitPathName        *string                                       `path:"explicit-path-name" module:"openconfig-network-instance"`
	ΛExplicitPathName       []ygot.Annotation                             `path:"@explicit-path-name" ygotAnnotation:"true"`
	HoldPriority            *uint8                                        `path:"hold-priority" module:"openconfig-network-instance"`
	ΛHoldPriority           []ygot.Annotation                             `path:"@hold-priority" ygotAnnotation:"true"`
	Name                    *string                                       `path:"name" module:"openconfig-network-instance"`
	ΛName                   []ygot.Annotation                             `path:"@name" ygotAnnotation:"true"`
	PathComputationMethod   E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD `path:"path-computation-method" module:"openconfig-network-instance"`
	ΛPathComputationMethod  []ygot.Annotation                             `path:"@path-computation-method" ygotAnnotation:"true"`
	PathComputationServer   *string                                       `path:"path-computation-server" module:"openconfig-network-instance"`
	ΛPathComputationServer  []ygot.Annotation                             `path:"@path-computation-server" ygotAnnotation:"true"`
	PathControl             E_OpenconfigPcep_LspControlType               `path:"path-control" module:"openconfig-network-instance"`
	ΛPathControl            []ygot.Annotation                             `path:"@path-control" ygotAnnotation:"true"`
	Preference              *uint8                                        `path:"preference" module:"openconfig-network-instance"`
	ΛPreference             []ygot.Annotation                             `path:"@preference" ygotAnnotation:"true"`
	RetryTimer              *uint16                                       `path:"retry-timer" module:"openconfig-network-instance"`
	ΛRetryTimer             []ygot.Annotation                             `path:"@retry-timer" ygotAnnotation:"true"`
	SetupPriority           *uint8                                        `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority          []ygot.Annotation                             `path:"@setup-priority" ygotAnnotation:"true"`
	SpfMetric               *uint64                                       `path:"spf-metric" module:"openconfig-network-instance"`
	ΛSpfMetric              []ygot.Annotation                             `path:"@spf-metric" ygotAnnotation:"true"`
	UseCspf                 *bool                                         `path:"use-cspf" module:"openconfig-network-instance"`
	ΛUseCspf                []ygot.Annotation                             `path:"@use-cspf" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) IsYANGGoStruct() {
}

// GetAssociatedRsvpSessions retrieves the value of the leaf AssociatedRsvpSessions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociatedRsvpSessions is set, it can
// safely use t.GetAssociatedRsvpSessions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociatedRsvpSessions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetAssociatedRsvpSessions() []uint64 {
	if t == nil || t.AssociatedRsvpSessions == nil {
		return nil
	}
	return t.AssociatedRsvpSessions
}

// GetCspfMetric retrieves the value of the leaf CspfMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CspfMetric is set, it can
// safely use t.GetCspfMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CspfMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetCspfMetric() uint64 {
	if t == nil || t.CspfMetric == nil {
		return 0
	}
	return *t.CspfMetric
}

// GetCspfTiebreaker retrieves the value of the leaf CspfTiebreaker from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CspfTiebreaker is set, it can
// safely use t.GetCspfTiebreaker() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CspfTiebreaker == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetCspfTiebreaker() E_OpenconfigMpls_CspfTieBreaking {
	if t == nil || t.CspfTiebreaker == 0 {
		return OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	return t.CspfTiebreaker
}

// GetExplicitPathName retrieves the value of the leaf ExplicitPathName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitPathName is set, it can
// safely use t.GetExplicitPathName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitPathName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetExplicitPathName() string {
	if t == nil || t.ExplicitPathName == nil {
		return ""
	}
	return *t.ExplicitPathName
}

// GetHoldPriority retrieves the value of the leaf HoldPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldPriority is set, it can
// safely use t.GetHoldPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetHoldPriority() uint8 {
	if t == nil || t.HoldPriority == nil {
		return 0
	}
	return *t.HoldPriority
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPathComputationMethod retrieves the value of the leaf PathComputationMethod from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationMethod is set, it can
// safely use t.GetPathComputationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetPathComputationMethod() E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD {
	if t == nil || t.PathComputationMethod == 0 {
		return OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	return t.PathComputationMethod
}

// GetPathComputationServer retrieves the value of the leaf PathComputationServer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationServer is set, it can
// safely use t.GetPathComputationServer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationServer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetPathComputationServer() string {
	if t == nil || t.PathComputationServer == nil {
		return ""
	}
	return *t.PathComputationServer
}

// GetPathControl retrieves the value of the leaf PathControl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathControl is set, it can
// safely use t.GetPathControl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathControl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetPathControl() E_OpenconfigPcep_LspControlType {
	if t == nil || t.PathControl == 0 {
		return 0
	}
	return t.PathControl
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetRetryTimer retrieves the value of the leaf RetryTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetryTimer is set, it can
// safely use t.GetRetryTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetryTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetRetryTimer() uint16 {
	if t == nil || t.RetryTimer == nil {
		return 0
	}
	return *t.RetryTimer
}

// GetSetupPriority retrieves the value of the leaf SetupPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetupPriority is set, it can
// safely use t.GetSetupPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetupPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetSetupPriority() uint8 {
	if t == nil || t.SetupPriority == nil {
		return 7
	}
	return *t.SetupPriority
}

// GetSpfMetric retrieves the value of the leaf SpfMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfMetric is set, it can
// safely use t.GetSpfMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetSpfMetric() uint64 {
	if t == nil || t.SpfMetric == nil {
		return 0
	}
	return *t.SpfMetric
}

// GetUseCspf retrieves the value of the leaf UseCspf from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UseCspf is set, it can
// safely use t.GetUseCspf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UseCspf == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) GetUseCspf() bool {
	if t == nil || t.UseCspf == nil {
		return false
	}
	return *t.UseCspf
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.CspfTiebreaker == 0 {
		t.CspfTiebreaker = OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	if t.HoldPriority == nil {
		var v uint8 = 0
		t.HoldPriority = &v
	}
	if t.PathComputationMethod == 0 {
		t.PathComputationMethod = OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	if t.SetupPriority == nil {
		var v uint8 = 7
		t.SetupPriority = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PPrimaryPath_P2PPrimaryPath_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	P2PSecondaryPath  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath `path:"p2p-secondary-path" module:"openconfig-network-instance"`
	ΛP2PSecondaryPath []ygot.Annotation                                                                                                                                                      `path:"@p2p-secondary-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) IsYANGGoStruct() {
}

// NewP2PSecondaryPath creates a new entry in the P2PSecondaryPath list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) NewP2PSecondaryPath(Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.P2PSecondaryPath == nil {
		t.P2PSecondaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.P2PSecondaryPath[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list P2PSecondaryPath", key)
	}

	t.P2PSecondaryPath[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath{
		Name: &Name,
	}

	return t.P2PSecondaryPath[key], nil
}

// RenameP2PSecondaryPath renames an entry in the list P2PSecondaryPath within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) RenameP2PSecondaryPath(oldK, newK string) error {
	if _, ok := t.P2PSecondaryPath[newK]; ok {
		return fmt.Errorf("key %v already exists in P2PSecondaryPath", newK)
	}

	e, ok := t.P2PSecondaryPath[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in P2PSecondaryPath", oldK)
	}
	e.Name = &newK

	t.P2PSecondaryPath[newK] = e
	delete(t.P2PSecondaryPath, oldK)
	return nil
}

// GetOrCreateP2PSecondaryPathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) GetOrCreateP2PSecondaryPathMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath {
	if t.P2PSecondaryPath == nil {
		t.P2PSecondaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath)
	}
	return t.P2PSecondaryPath
}

// GetOrCreateP2PSecondaryPath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) GetOrCreateP2PSecondaryPath(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath {

	key := Name

	if v, ok := t.P2PSecondaryPath[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewP2PSecondaryPath(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateP2PSecondaryPath got unexpected error: %v", err))
	}
	return v
}

// GetP2PSecondaryPath retrieves the value with the specified key from
// the P2PSecondaryPath map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) GetP2PSecondaryPath(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.P2PSecondaryPath[key]; ok {
		return lm
	}
	return nil
}

// AppendP2PSecondaryPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath struct to the
// list P2PSecondaryPath of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) AppendP2PSecondaryPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.P2PSecondaryPath == nil {
		t.P2PSecondaryPath = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath)
	}

	if _, ok := t.P2PSecondaryPath[key]; ok {
		return fmt.Errorf("duplicate key for list P2PSecondaryPath %v", key)
	}

	t.P2PSecondaryPath[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.P2PSecondaryPath {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	AdminGroups                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups                `path:"admin-groups" module:"openconfig-network-instance"`
	ΛAdminGroups                []ygot.Annotation                                                                                                                                                                      `path:"@admin-groups" ygotAnnotation:"true"`
	Config                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config                     `path:"config" module:"openconfig-network-instance"`
	ΛConfig                     []ygot.Annotation                                                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	Name                        *string                                                                                                                                                                                `path:"name" module:"openconfig-network-instance"`
	ΛName                       []ygot.Annotation                                                                                                                                                                      `path:"@name" ygotAnnotation:"true"`
	PathMetricBoundConstraints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints `path:"path-metric-bound-constraints" module:"openconfig-network-instance"`
	ΛPathMetricBoundConstraints []ygot.Annotation                                                                                                                                                                      `path:"@path-metric-bound-constraints" ygotAnnotation:"true"`
	State                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State                      `path:"state" module:"openconfig-network-instance"`
	ΛState                      []ygot.Annotation                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) IsYANGGoStruct() {
}

// GetOrCreateAdminGroups retrieves the value of the AdminGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetOrCreateAdminGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups {
	if t.AdminGroups != nil {
		return t.AdminGroups
	}
	t.AdminGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups{}
	return t.AdminGroups
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config{}
	return t.Config
}

// GetOrCreatePathMetricBoundConstraints retrieves the value of the PathMetricBoundConstraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetOrCreatePathMetricBoundConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints {
	if t.PathMetricBoundConstraints != nil {
		return t.PathMetricBoundConstraints
	}
	t.PathMetricBoundConstraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints{}
	return t.PathMetricBoundConstraints
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State{}
	return t.State
}

// GetAdminGroups returns the value of the AdminGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath. If the receiver or the field AdminGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetAdminGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups {
	if t != nil && t.AdminGroups != nil {
		return t.AdminGroups
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPathMetricBoundConstraints returns the value of the PathMetricBoundConstraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath. If the receiver or the field PathMetricBoundConstraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetPathMetricBoundConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints {
	if t != nil && t.PathMetricBoundConstraints != nil {
		return t.PathMetricBoundConstraints
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdminGroups.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.PathMetricBoundConstraints.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/admin-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/admin-groups/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExcludeGroup     []string          `path:"exclude-group" module:"openconfig-network-instance"`
	ΛExcludeGroup    []ygot.Annotation `path:"@exclude-group" ygotAnnotation:"true"`
	IncludeAllGroup  []string          `path:"include-all-group" module:"openconfig-network-instance"`
	ΛIncludeAllGroup []ygot.Annotation `path:"@include-all-group" ygotAnnotation:"true"`
	IncludeAnyGroup  []string          `path:"include-any-group" module:"openconfig-network-instance"`
	ΛIncludeAnyGroup []ygot.Annotation `path:"@include-any-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) IsYANGGoStruct() {
}

// GetExcludeGroup retrieves the value of the leaf ExcludeGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExcludeGroup is set, it can
// safely use t.GetExcludeGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExcludeGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) GetExcludeGroup() []string {
	if t == nil || t.ExcludeGroup == nil {
		return nil
	}
	return t.ExcludeGroup
}

// GetIncludeAllGroup retrieves the value of the leaf IncludeAllGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAllGroup is set, it can
// safely use t.GetIncludeAllGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAllGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) GetIncludeAllGroup() []string {
	if t == nil || t.IncludeAllGroup == nil {
		return nil
	}
	return t.IncludeAllGroup
}

// GetIncludeAnyGroup retrieves the value of the leaf IncludeAnyGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAnyGroup is set, it can
// safely use t.GetIncludeAnyGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAnyGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) GetIncludeAnyGroup() []string {
	if t == nil || t.IncludeAnyGroup == nil {
		return nil
	}
	return t.IncludeAnyGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/admin-groups/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExcludeGroup     []string          `path:"exclude-group" module:"openconfig-network-instance"`
	ΛExcludeGroup    []ygot.Annotation `path:"@exclude-group" ygotAnnotation:"true"`
	IncludeAllGroup  []string          `path:"include-all-group" module:"openconfig-network-instance"`
	ΛIncludeAllGroup []ygot.Annotation `path:"@include-all-group" ygotAnnotation:"true"`
	IncludeAnyGroup  []string          `path:"include-any-group" module:"openconfig-network-instance"`
	ΛIncludeAnyGroup []ygot.Annotation `path:"@include-any-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) IsYANGGoStruct() {
}

// GetExcludeGroup retrieves the value of the leaf ExcludeGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExcludeGroup is set, it can
// safely use t.GetExcludeGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExcludeGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) GetExcludeGroup() []string {
	if t == nil || t.ExcludeGroup == nil {
		return nil
	}
	return t.ExcludeGroup
}

// GetIncludeAllGroup retrieves the value of the leaf IncludeAllGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAllGroup is set, it can
// safely use t.GetIncludeAllGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAllGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) GetIncludeAllGroup() []string {
	if t == nil || t.IncludeAllGroup == nil {
		return nil
	}
	return t.IncludeAllGroup
}

// GetIncludeAnyGroup retrieves the value of the leaf IncludeAnyGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncludeAnyGroup is set, it can
// safely use t.GetIncludeAnyGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncludeAnyGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) GetIncludeAnyGroup() []string {
	if t == nil || t.IncludeAnyGroup == nil {
		return nil
	}
	return t.IncludeAnyGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_AdminGroups_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config struct {
	ΛMetadata              []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	CspfTiebreaker         E_OpenconfigMpls_CspfTieBreaking              `path:"cspf-tiebreaker" module:"openconfig-network-instance"`
	ΛCspfTiebreaker        []ygot.Annotation                             `path:"@cspf-tiebreaker" ygotAnnotation:"true"`
	ExplicitPathName       *string                                       `path:"explicit-path-name" module:"openconfig-network-instance"`
	ΛExplicitPathName      []ygot.Annotation                             `path:"@explicit-path-name" ygotAnnotation:"true"`
	HoldPriority           *uint8                                        `path:"hold-priority" module:"openconfig-network-instance"`
	ΛHoldPriority          []ygot.Annotation                             `path:"@hold-priority" ygotAnnotation:"true"`
	Name                   *string                                       `path:"name" module:"openconfig-network-instance"`
	ΛName                  []ygot.Annotation                             `path:"@name" ygotAnnotation:"true"`
	PathComputationMethod  E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD `path:"path-computation-method" module:"openconfig-network-instance"`
	ΛPathComputationMethod []ygot.Annotation                             `path:"@path-computation-method" ygotAnnotation:"true"`
	PathComputationServer  *string                                       `path:"path-computation-server" module:"openconfig-network-instance"`
	ΛPathComputationServer []ygot.Annotation                             `path:"@path-computation-server" ygotAnnotation:"true"`
	PathControl            E_OpenconfigPcep_LspControlType               `path:"path-control" module:"openconfig-network-instance"`
	ΛPathControl           []ygot.Annotation                             `path:"@path-control" ygotAnnotation:"true"`
	Preference             *uint8                                        `path:"preference" module:"openconfig-network-instance"`
	ΛPreference            []ygot.Annotation                             `path:"@preference" ygotAnnotation:"true"`
	RetryTimer             *uint16                                       `path:"retry-timer" module:"openconfig-network-instance"`
	ΛRetryTimer            []ygot.Annotation                             `path:"@retry-timer" ygotAnnotation:"true"`
	SetupPriority          *uint8                                        `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority         []ygot.Annotation                             `path:"@setup-priority" ygotAnnotation:"true"`
	UseCspf                *bool                                         `path:"use-cspf" module:"openconfig-network-instance"`
	ΛUseCspf               []ygot.Annotation                             `path:"@use-cspf" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) IsYANGGoStruct() {
}

// GetCspfTiebreaker retrieves the value of the leaf CspfTiebreaker from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CspfTiebreaker is set, it can
// safely use t.GetCspfTiebreaker() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CspfTiebreaker == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetCspfTiebreaker() E_OpenconfigMpls_CspfTieBreaking {
	if t == nil || t.CspfTiebreaker == 0 {
		return OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	return t.CspfTiebreaker
}

// GetExplicitPathName retrieves the value of the leaf ExplicitPathName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitPathName is set, it can
// safely use t.GetExplicitPathName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitPathName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetExplicitPathName() string {
	if t == nil || t.ExplicitPathName == nil {
		return ""
	}
	return *t.ExplicitPathName
}

// GetHoldPriority retrieves the value of the leaf HoldPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldPriority is set, it can
// safely use t.GetHoldPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetHoldPriority() uint8 {
	if t == nil || t.HoldPriority == nil {
		return 0
	}
	return *t.HoldPriority
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPathComputationMethod retrieves the value of the leaf PathComputationMethod from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationMethod is set, it can
// safely use t.GetPathComputationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetPathComputationMethod() E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD {
	if t == nil || t.PathComputationMethod == 0 {
		return OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	return t.PathComputationMethod
}

// GetPathComputationServer retrieves the value of the leaf PathComputationServer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationServer is set, it can
// safely use t.GetPathComputationServer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationServer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetPathComputationServer() string {
	if t == nil || t.PathComputationServer == nil {
		return ""
	}
	return *t.PathComputationServer
}

// GetPathControl retrieves the value of the leaf PathControl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathControl is set, it can
// safely use t.GetPathControl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathControl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetPathControl() E_OpenconfigPcep_LspControlType {
	if t == nil || t.PathControl == 0 {
		return 0
	}
	return t.PathControl
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetRetryTimer retrieves the value of the leaf RetryTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetryTimer is set, it can
// safely use t.GetRetryTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetryTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetRetryTimer() uint16 {
	if t == nil || t.RetryTimer == nil {
		return 0
	}
	return *t.RetryTimer
}

// GetSetupPriority retrieves the value of the leaf SetupPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetupPriority is set, it can
// safely use t.GetSetupPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetupPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetSetupPriority() uint8 {
	if t == nil || t.SetupPriority == nil {
		return 7
	}
	return *t.SetupPriority
}

// GetUseCspf retrieves the value of the leaf UseCspf from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UseCspf is set, it can
// safely use t.GetUseCspf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UseCspf == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) GetUseCspf() bool {
	if t == nil || t.UseCspf == nil {
		return false
	}
	return *t.UseCspf
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.CspfTiebreaker == 0 {
		t.CspfTiebreaker = OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	if t.HoldPriority == nil {
		var v uint8 = 0
		t.HoldPriority = &v
	}
	if t.PathComputationMethod == 0 {
		t.PathComputationMethod = OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	if t.SetupPriority == nil {
		var v uint8 = 7
		t.SetupPriority = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/path-metric-bound-constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	PathMetricBoundConstraint  map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint `path:"path-metric-bound-constraint" module:"openconfig-network-instance"`
	ΛPathMetricBoundConstraint []ygot.Annotation                                                                                                                                                                                                                                           `path:"@path-metric-bound-constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) IsYANGGoStruct() {
}

// NewPathMetricBoundConstraint creates a new entry in the PathMetricBoundConstraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) NewPathMetricBoundConstraint(Type E_OpenconfigMplsTypes_PATH_METRIC_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathMetricBoundConstraint == nil {
		t.PathMetricBoundConstraint = make(map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PathMetricBoundConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PathMetricBoundConstraint", key)
	}

	t.PathMetricBoundConstraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint{
		Type: Type,
	}

	return t.PathMetricBoundConstraint[key], nil
}

// RenamePathMetricBoundConstraint renames an entry in the list PathMetricBoundConstraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) RenamePathMetricBoundConstraint(oldK, newK E_OpenconfigMplsTypes_PATH_METRIC_TYPE) error {
	if _, ok := t.PathMetricBoundConstraint[newK]; ok {
		return fmt.Errorf("key %v already exists in PathMetricBoundConstraint", newK)
	}

	e, ok := t.PathMetricBoundConstraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PathMetricBoundConstraint", oldK)
	}
	e.Type = newK

	t.PathMetricBoundConstraint[newK] = e
	delete(t.PathMetricBoundConstraint, oldK)
	return nil
}

// GetOrCreatePathMetricBoundConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) GetOrCreatePathMetricBoundConstraintMap() map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint {
	if t.PathMetricBoundConstraint == nil {
		t.PathMetricBoundConstraint = make(map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint)
	}
	return t.PathMetricBoundConstraint
}

// GetOrCreatePathMetricBoundConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) GetOrCreatePathMetricBoundConstraint(Type E_OpenconfigMplsTypes_PATH_METRIC_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint {

	key := Type

	if v, ok := t.PathMetricBoundConstraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPathMetricBoundConstraint(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePathMetricBoundConstraint got unexpected error: %v", err))
	}
	return v
}

// GetPathMetricBoundConstraint retrieves the value with the specified key from
// the PathMetricBoundConstraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) GetPathMetricBoundConstraint(Type E_OpenconfigMplsTypes_PATH_METRIC_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.PathMetricBoundConstraint[key]; ok {
		return lm
	}
	return nil
}

// AppendPathMetricBoundConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint struct to the
// list PathMetricBoundConstraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) AppendPathMetricBoundConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathMetricBoundConstraint == nil {
		t.PathMetricBoundConstraint = make(map[E_OpenconfigMplsTypes_PATH_METRIC_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint)
	}

	if _, ok := t.PathMetricBoundConstraint[key]; ok {
		return fmt.Errorf("duplicate key for list PathMetricBoundConstraint %v", key)
	}

	t.PathMetricBoundConstraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PathMetricBoundConstraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/path-metric-bound-constraints/path-metric-bound-constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
	Type      E_OpenconfigMplsTypes_PATH_METRIC_TYPE                                                                                                                                                                                  `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                       `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) GetType() E_OpenconfigMplsTypes_PATH_METRIC_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/path-metric-bound-constraints/path-metric-bound-constraint/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config struct {
	ΛMetadata         []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	MetricUpperBound  *uint64                                `path:"metric-upper-bound" module:"openconfig-network-instance"`
	ΛMetricUpperBound []ygot.Annotation                      `path:"@metric-upper-bound" ygotAnnotation:"true"`
	Type              E_OpenconfigMplsTypes_PATH_METRIC_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType             []ygot.Annotation                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) IsYANGGoStruct() {
}

// GetMetricUpperBound retrieves the value of the leaf MetricUpperBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricUpperBound is set, it can
// safely use t.GetMetricUpperBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricUpperBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) GetMetricUpperBound() uint64 {
	if t == nil || t.MetricUpperBound == nil {
		return 0
	}
	return *t.MetricUpperBound
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) GetType() E_OpenconfigMplsTypes_PATH_METRIC_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MetricUpperBound == nil {
		var v uint64 = 0
		t.MetricUpperBound = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/path-metric-bound-constraints/path-metric-bound-constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State struct {
	ΛMetadata         []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	MetricUpperBound  *uint64                                `path:"metric-upper-bound" module:"openconfig-network-instance"`
	ΛMetricUpperBound []ygot.Annotation                      `path:"@metric-upper-bound" ygotAnnotation:"true"`
	Type              E_OpenconfigMplsTypes_PATH_METRIC_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType             []ygot.Annotation                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) IsYANGGoStruct() {
}

// GetMetricUpperBound retrieves the value of the leaf MetricUpperBound from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricUpperBound is set, it can
// safely use t.GetMetricUpperBound() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricUpperBound == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) GetMetricUpperBound() uint64 {
	if t == nil || t.MetricUpperBound == nil {
		return 0
	}
	return *t.MetricUpperBound
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) GetType() E_OpenconfigMplsTypes_PATH_METRIC_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MetricUpperBound == nil {
		var v uint64 = 0
		t.MetricUpperBound = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_PathMetricBoundConstraints_PathMetricBoundConstraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State struct {
	ΛMetadata               []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	AssociatedRsvpSessions  []uint64                                      `path:"associated-rsvp-sessions" module:"openconfig-network-instance"`
	ΛAssociatedRsvpSessions []ygot.Annotation                             `path:"@associated-rsvp-sessions" ygotAnnotation:"true"`
	CspfMetric              *uint64                                       `path:"cspf-metric" module:"openconfig-network-instance"`
	ΛCspfMetric             []ygot.Annotation                             `path:"@cspf-metric" ygotAnnotation:"true"`
	CspfTiebreaker          E_OpenconfigMpls_CspfTieBreaking              `path:"cspf-tiebreaker" module:"openconfig-network-instance"`
	ΛCspfTiebreaker         []ygot.Annotation                             `path:"@cspf-tiebreaker" ygotAnnotation:"true"`
	ExplicitPathName        *string                                       `path:"explicit-path-name" module:"openconfig-network-instance"`
	ΛExplicitPathName       []ygot.Annotation                             `path:"@explicit-path-name" ygotAnnotation:"true"`
	HoldPriority            *uint8                                        `path:"hold-priority" module:"openconfig-network-instance"`
	ΛHoldPriority           []ygot.Annotation                             `path:"@hold-priority" ygotAnnotation:"true"`
	Name                    *string                                       `path:"name" module:"openconfig-network-instance"`
	ΛName                   []ygot.Annotation                             `path:"@name" ygotAnnotation:"true"`
	PathComputationMethod   E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD `path:"path-computation-method" module:"openconfig-network-instance"`
	ΛPathComputationMethod  []ygot.Annotation                             `path:"@path-computation-method" ygotAnnotation:"true"`
	PathComputationServer   *string                                       `path:"path-computation-server" module:"openconfig-network-instance"`
	ΛPathComputationServer  []ygot.Annotation                             `path:"@path-computation-server" ygotAnnotation:"true"`
	PathControl             E_OpenconfigPcep_LspControlType               `path:"path-control" module:"openconfig-network-instance"`
	ΛPathControl            []ygot.Annotation                             `path:"@path-control" ygotAnnotation:"true"`
	Preference              *uint8                                        `path:"preference" module:"openconfig-network-instance"`
	ΛPreference             []ygot.Annotation                             `path:"@preference" ygotAnnotation:"true"`
	RetryTimer              *uint16                                       `path:"retry-timer" module:"openconfig-network-instance"`
	ΛRetryTimer             []ygot.Annotation                             `path:"@retry-timer" ygotAnnotation:"true"`
	SetupPriority           *uint8                                        `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority          []ygot.Annotation                             `path:"@setup-priority" ygotAnnotation:"true"`
	SpfMetric               *uint64                                       `path:"spf-metric" module:"openconfig-network-instance"`
	ΛSpfMetric              []ygot.Annotation                             `path:"@spf-metric" ygotAnnotation:"true"`
	UseCspf                 *bool                                         `path:"use-cspf" module:"openconfig-network-instance"`
	ΛUseCspf                []ygot.Annotation                             `path:"@use-cspf" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) IsYANGGoStruct() {
}

// GetAssociatedRsvpSessions retrieves the value of the leaf AssociatedRsvpSessions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociatedRsvpSessions is set, it can
// safely use t.GetAssociatedRsvpSessions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociatedRsvpSessions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetAssociatedRsvpSessions() []uint64 {
	if t == nil || t.AssociatedRsvpSessions == nil {
		return nil
	}
	return t.AssociatedRsvpSessions
}

// GetCspfMetric retrieves the value of the leaf CspfMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CspfMetric is set, it can
// safely use t.GetCspfMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CspfMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetCspfMetric() uint64 {
	if t == nil || t.CspfMetric == nil {
		return 0
	}
	return *t.CspfMetric
}

// GetCspfTiebreaker retrieves the value of the leaf CspfTiebreaker from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CspfTiebreaker is set, it can
// safely use t.GetCspfTiebreaker() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CspfTiebreaker == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetCspfTiebreaker() E_OpenconfigMpls_CspfTieBreaking {
	if t == nil || t.CspfTiebreaker == 0 {
		return OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	return t.CspfTiebreaker
}

// GetExplicitPathName retrieves the value of the leaf ExplicitPathName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitPathName is set, it can
// safely use t.GetExplicitPathName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitPathName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetExplicitPathName() string {
	if t == nil || t.ExplicitPathName == nil {
		return ""
	}
	return *t.ExplicitPathName
}

// GetHoldPriority retrieves the value of the leaf HoldPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldPriority is set, it can
// safely use t.GetHoldPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetHoldPriority() uint8 {
	if t == nil || t.HoldPriority == nil {
		return 0
	}
	return *t.HoldPriority
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPathComputationMethod retrieves the value of the leaf PathComputationMethod from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationMethod is set, it can
// safely use t.GetPathComputationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetPathComputationMethod() E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD {
	if t == nil || t.PathComputationMethod == 0 {
		return OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	return t.PathComputationMethod
}

// GetPathComputationServer retrieves the value of the leaf PathComputationServer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathComputationServer is set, it can
// safely use t.GetPathComputationServer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathComputationServer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetPathComputationServer() string {
	if t == nil || t.PathComputationServer == nil {
		return ""
	}
	return *t.PathComputationServer
}

// GetPathControl retrieves the value of the leaf PathControl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathControl is set, it can
// safely use t.GetPathControl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathControl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetPathControl() E_OpenconfigPcep_LspControlType {
	if t == nil || t.PathControl == 0 {
		return 0
	}
	return t.PathControl
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetRetryTimer retrieves the value of the leaf RetryTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetryTimer is set, it can
// safely use t.GetRetryTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetryTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetRetryTimer() uint16 {
	if t == nil || t.RetryTimer == nil {
		return 0
	}
	return *t.RetryTimer
}

// GetSetupPriority retrieves the value of the leaf SetupPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetupPriority is set, it can
// safely use t.GetSetupPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetupPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetSetupPriority() uint8 {
	if t == nil || t.SetupPriority == nil {
		return 7
	}
	return *t.SetupPriority
}

// GetSpfMetric retrieves the value of the leaf SpfMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfMetric is set, it can
// safely use t.GetSpfMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetSpfMetric() uint64 {
	if t == nil || t.SpfMetric == nil {
		return 0
	}
	return *t.SpfMetric
}

// GetUseCspf retrieves the value of the leaf UseCspf from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UseCspf is set, it can
// safely use t.GetUseCspf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UseCspf == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) GetUseCspf() bool {
	if t == nil || t.UseCspf == nil {
		return false
	}
	return *t.UseCspf
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.CspfTiebreaker == 0 {
		t.CspfTiebreaker = OpenconfigMpls_CspfTieBreaking_RANDOM
	}
	if t.HoldPriority == nil {
		var v uint8 = 0
		t.HoldPriority = &v
	}
	if t.PathComputationMethod == 0 {
		t.PathComputationMethod = OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED
	}
	if t.SetupPriority == nil {
		var v uint8 = 7
		t.SetupPriority = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_P2PSecondaryPaths_P2PSecondaryPath_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Destination         *string           `path:"destination" module:"openconfig-network-instance"`
	ΛDestination        []ygot.Annotation `path:"@destination" ygotAnnotation:"true"`
	RecordRouteEnabled  *bool             `path:"record-route-enabled" module:"openconfig-network-instance"`
	ΛRecordRouteEnabled []ygot.Annotation `path:"@record-route-enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) IsYANGGoStruct() {
}

// GetDestination retrieves the value of the leaf Destination from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Destination is set, it can
// safely use t.GetDestination() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Destination == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) GetDestination() string {
	if t == nil || t.Destination == nil {
		return ""
	}
	return *t.Destination
}

// GetRecordRouteEnabled retrieves the value of the leaf RecordRouteEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RecordRouteEnabled is set, it can
// safely use t.GetRecordRouteEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RecordRouteEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) GetRecordRouteEnabled() bool {
	if t == nil || t.RecordRouteEnabled == nil {
		return false
	}
	return *t.RecordRouteEnabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_P2PTunnelAttributes_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State struct {
	ΛMetadata                 []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	AdminStatus               E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS                                                                           `path:"admin-status" module:"openconfig-network-instance"`
	ΛAdminStatus              []ygot.Annotation                                                                                                   `path:"@admin-status" ygotAnnotation:"true"`
	AutoGenerated             *bool                                                                                                               `path:"auto-generated" module:"openconfig-network-instance"`
	ΛAutoGenerated            []ygot.Annotation                                                                                                   `path:"@auto-generated" ygotAnnotation:"true"`
	Counters                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters                 []ygot.Annotation                                                                                                   `path:"@counters" ygotAnnotation:"true"`
	Description               *string                                                                                                             `path:"description" module:"openconfig-network-instance"`
	ΛDescription              []ygot.Annotation                                                                                                   `path:"@description" ygotAnnotation:"true"`
	HoldPriority              *uint8                                                                                                              `path:"hold-priority" module:"openconfig-network-instance"`
	ΛHoldPriority             []ygot.Annotation                                                                                                   `path:"@hold-priority" ygotAnnotation:"true"`
	Metric                    *int32                                                                                                              `path:"metric" module:"openconfig-network-instance"`
	ΛMetric                   []ygot.Annotation                                                                                                   `path:"@metric" ygotAnnotation:"true"`
	MetricType                E_OpenconfigMplsTypes_LSP_METRIC_TYPE                                                                               `path:"metric-type" module:"openconfig-network-instance"`
	ΛMetricType               []ygot.Annotation                                                                                                   `path:"@metric-type" ygotAnnotation:"true"`
	Name                      *string                                                                                                             `path:"name" module:"openconfig-network-instance"`
	ΛName                     []ygot.Annotation                                                                                                   `path:"@name" ygotAnnotation:"true"`
	OperStatus                E_OpenconfigMplsTypes_LSP_OPER_STATUS                                                                               `path:"oper-status" module:"openconfig-network-instance"`
	ΛOperStatus               []ygot.Annotation                                                                                                   `path:"@oper-status" ygotAnnotation:"true"`
	Preference                *uint8                                                                                                              `path:"preference" module:"openconfig-network-instance"`
	ΛPreference               []ygot.Annotation                                                                                                   `path:"@preference" ygotAnnotation:"true"`
	ProtectionStyleRequested  E_OpenconfigMplsTypes_PROTECTION_TYPE                                                                               `path:"protection-style-requested" module:"openconfig-network-instance"`
	ΛProtectionStyleRequested []ygot.Annotation                                                                                                   `path:"@protection-style-requested" ygotAnnotation:"true"`
	ReoptimizeTimer           *uint16                                                                                                             `path:"reoptimize-timer" module:"openconfig-network-instance"`
	ΛReoptimizeTimer          []ygot.Annotation                                                                                                   `path:"@reoptimize-timer" ygotAnnotation:"true"`
	Role                      E_OpenconfigMplsTypes_LSP_ROLE                                                                                      `path:"role" module:"openconfig-network-instance"`
	ΛRole                     []ygot.Annotation                                                                                                   `path:"@role" ygotAnnotation:"true"`
	SetupPriority             *uint8                                                                                                              `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority            []ygot.Annotation                                                                                                   `path:"@setup-priority" ygotAnnotation:"true"`
	ShortcutEligible          *bool                                                                                                               `path:"shortcut-eligible" module:"openconfig-network-instance"`
	ΛShortcutEligible         []ygot.Annotation                                                                                                   `path:"@shortcut-eligible" ygotAnnotation:"true"`
	SignalingProtocol         E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL                                                                           `path:"signaling-protocol" module:"openconfig-network-instance"`
	ΛSignalingProtocol        []ygot.Annotation                                                                                                   `path:"@signaling-protocol" ygotAnnotation:"true"`
	SoftPreemption            *bool                                                                                                               `path:"soft-preemption" module:"openconfig-network-instance"`
	ΛSoftPreemption           []ygot.Annotation                                                                                                   `path:"@soft-preemption" ygotAnnotation:"true"`
	Source                    *string                                                                                                             `path:"source" module:"openconfig-network-instance"`
	ΛSource                   []ygot.Annotation                                                                                                   `path:"@source" ygotAnnotation:"true"`
	Type                      E_OpenconfigMplsTypes_TUNNEL_TYPE                                                                                   `path:"type" module:"openconfig-network-instance"`
	ΛType                     []ygot.Annotation                                                                                                   `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetAdminStatus retrieves the value of the leaf AdminStatus from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminStatus is set, it can
// safely use t.GetAdminStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetAdminStatus() E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS {
	if t == nil || t.AdminStatus == 0 {
		return OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_UP
	}
	return t.AdminStatus
}

// GetAutoGenerated retrieves the value of the leaf AutoGenerated from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AutoGenerated is set, it can
// safely use t.GetAutoGenerated() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AutoGenerated == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetAutoGenerated() bool {
	if t == nil || t.AutoGenerated == nil {
		return false
	}
	return *t.AutoGenerated
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetHoldPriority retrieves the value of the leaf HoldPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldPriority is set, it can
// safely use t.GetHoldPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetHoldPriority() uint8 {
	if t == nil || t.HoldPriority == nil {
		return 0
	}
	return *t.HoldPriority
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetMetric() int32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMetricType retrieves the value of the leaf MetricType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricType is set, it can
// safely use t.GetMetricType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetMetricType() E_OpenconfigMplsTypes_LSP_METRIC_TYPE {
	if t == nil || t.MetricType == 0 {
		return OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_INHERITED
	}
	return t.MetricType
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetOperStatus retrieves the value of the leaf OperStatus from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OperStatus is set, it can
// safely use t.GetOperStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OperStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetOperStatus() E_OpenconfigMplsTypes_LSP_OPER_STATUS {
	if t == nil || t.OperStatus == 0 {
		return 0
	}
	return t.OperStatus
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetProtectionStyleRequested retrieves the value of the leaf ProtectionStyleRequested from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtectionStyleRequested is set, it can
// safely use t.GetProtectionStyleRequested() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtectionStyleRequested == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetProtectionStyleRequested() E_OpenconfigMplsTypes_PROTECTION_TYPE {
	if t == nil || t.ProtectionStyleRequested == 0 {
		return OpenconfigMplsTypes_PROTECTION_TYPE_UNPROTECTED
	}
	return t.ProtectionStyleRequested
}

// GetReoptimizeTimer retrieves the value of the leaf ReoptimizeTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReoptimizeTimer is set, it can
// safely use t.GetReoptimizeTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReoptimizeTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetReoptimizeTimer() uint16 {
	if t == nil || t.ReoptimizeTimer == nil {
		return 0
	}
	return *t.ReoptimizeTimer
}

// GetRole retrieves the value of the leaf Role from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Role is set, it can
// safely use t.GetRole() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Role == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetRole() E_OpenconfigMplsTypes_LSP_ROLE {
	if t == nil || t.Role == 0 {
		return 0
	}
	return t.Role
}

// GetSetupPriority retrieves the value of the leaf SetupPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetupPriority is set, it can
// safely use t.GetSetupPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetupPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetSetupPriority() uint8 {
	if t == nil || t.SetupPriority == nil {
		return 7
	}
	return *t.SetupPriority
}

// GetShortcutEligible retrieves the value of the leaf ShortcutEligible from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ShortcutEligible is set, it can
// safely use t.GetShortcutEligible() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ShortcutEligible == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetShortcutEligible() bool {
	if t == nil || t.ShortcutEligible == nil {
		return true
	}
	return *t.ShortcutEligible
}

// GetSignalingProtocol retrieves the value of the leaf SignalingProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SignalingProtocol is set, it can
// safely use t.GetSignalingProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SignalingProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetSignalingProtocol() E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL {
	if t == nil || t.SignalingProtocol == 0 {
		return 0
	}
	return t.SignalingProtocol
}

// GetSoftPreemption retrieves the value of the leaf SoftPreemption from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SoftPreemption is set, it can
// safely use t.GetSoftPreemption() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SoftPreemption == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetSoftPreemption() bool {
	if t == nil || t.SoftPreemption == nil {
		return false
	}
	return *t.SoftPreemption
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) GetType() E_OpenconfigMplsTypes_TUNNEL_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdminStatus == 0 {
		t.AdminStatus = OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_UP
	}
	if t.HoldPriority == nil {
		var v uint8 = 0
		t.HoldPriority = &v
	}
	if t.MetricType == 0 {
		t.MetricType = OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_INHERITED
	}
	if t.ProtectionStyleRequested == 0 {
		t.ProtectionStyleRequested = OpenconfigMplsTypes_PROTECTION_TYPE_UNPROTECTED
	}
	if t.SetupPriority == nil {
		var v uint8 = 7
		t.SetupPriority = &v
	}
	if t.ShortcutEligible == nil {
		var v bool = true
		t.ShortcutEligible = &v
	}
	if t.SoftPreemption == nil {
		var v bool = false
		t.SoftPreemption = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters struct {
	ΛMetadata               []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bytes                   *uint64           `path:"bytes" module:"openconfig-network-instance"`
	ΛBytes                  []ygot.Annotation `path:"@bytes" ygotAnnotation:"true"`
	CurrentPathTime         *uint64           `path:"current-path-time" module:"openconfig-network-instance"`
	ΛCurrentPathTime        []ygot.Annotation `path:"@current-path-time" ygotAnnotation:"true"`
	NextReoptimizationTime  *uint64           `path:"next-reoptimization-time" module:"openconfig-network-instance"`
	ΛNextReoptimizationTime []ygot.Annotation `path:"@next-reoptimization-time" ygotAnnotation:"true"`
	OnlineTime              *uint64           `path:"online-time" module:"openconfig-network-instance"`
	ΛOnlineTime             []ygot.Annotation `path:"@online-time" ygotAnnotation:"true"`
	Packets                 *uint64           `path:"packets" module:"openconfig-network-instance"`
	ΛPackets                []ygot.Annotation `path:"@packets" ygotAnnotation:"true"`
	PathChanges             *uint64           `path:"path-changes" module:"openconfig-network-instance"`
	ΛPathChanges            []ygot.Annotation `path:"@path-changes" ygotAnnotation:"true"`
	StateChanges            *uint64           `path:"state-changes" module:"openconfig-network-instance"`
	ΛStateChanges           []ygot.Annotation `path:"@state-changes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) IsYANGGoStruct() {
}

// GetBytes retrieves the value of the leaf Bytes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bytes is set, it can
// safely use t.GetBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bytes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) GetBytes() uint64 {
	if t == nil || t.Bytes == nil {
		return 0
	}
	return *t.Bytes
}

// GetCurrentPathTime retrieves the value of the leaf CurrentPathTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CurrentPathTime is set, it can
// safely use t.GetCurrentPathTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CurrentPathTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) GetCurrentPathTime() uint64 {
	if t == nil || t.CurrentPathTime == nil {
		return 0
	}
	return *t.CurrentPathTime
}

// GetNextReoptimizationTime retrieves the value of the leaf NextReoptimizationTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextReoptimizationTime is set, it can
// safely use t.GetNextReoptimizationTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextReoptimizationTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) GetNextReoptimizationTime() uint64 {
	if t == nil || t.NextReoptimizationTime == nil {
		return 0
	}
	return *t.NextReoptimizationTime
}

// GetOnlineTime retrieves the value of the leaf OnlineTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OnlineTime is set, it can
// safely use t.GetOnlineTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OnlineTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) GetOnlineTime() uint64 {
	if t == nil || t.OnlineTime == nil {
		return 0
	}
	return *t.OnlineTime
}

// GetPackets retrieves the value of the leaf Packets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Packets is set, it can
// safely use t.GetPackets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Packets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) GetPackets() uint64 {
	if t == nil || t.Packets == nil {
		return 0
	}
	return *t.Packets
}

// GetPathChanges retrieves the value of the leaf PathChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathChanges is set, it can
// safely use t.GetPathChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) GetPathChanges() uint64 {
	if t == nil || t.PathChanges == nil {
		return 0
	}
	return *t.PathChanges
}

// GetStateChanges retrieves the value of the leaf StateChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StateChanges is set, it can
// safely use t.GetStateChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StateChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) GetStateChanges() uint64 {
	if t == nil || t.StateChanges == nil {
		return 0
	}
	return *t.StateChanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_Tunnels_Tunnel_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps struct {
	ΛMetadata  []ygot.Annotation                                                                                     `path:"@" ygotAnnotation:"true"`
	StaticLsp  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp `path:"static-lsp" module:"openconfig-network-instance"`
	ΛStaticLsp []ygot.Annotation                                                                                     `path:"@static-lsp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) IsYANGGoStruct() {
}

// NewStaticLsp creates a new entry in the StaticLsp list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) NewStaticLsp(Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.StaticLsp == nil {
		t.StaticLsp = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.StaticLsp[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list StaticLsp", key)
	}

	t.StaticLsp[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp{
		Name: &Name,
	}

	return t.StaticLsp[key], nil
}

// RenameStaticLsp renames an entry in the list StaticLsp within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) RenameStaticLsp(oldK, newK string) error {
	if _, ok := t.StaticLsp[newK]; ok {
		return fmt.Errorf("key %v already exists in StaticLsp", newK)
	}

	e, ok := t.StaticLsp[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in StaticLsp", oldK)
	}
	e.Name = &newK

	t.StaticLsp[newK] = e
	delete(t.StaticLsp, oldK)
	return nil
}

// GetOrCreateStaticLspMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) GetOrCreateStaticLspMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp {
	if t.StaticLsp == nil {
		t.StaticLsp = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp)
	}
	return t.StaticLsp
}

// GetOrCreateStaticLsp retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) GetOrCreateStaticLsp(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp {

	key := Name

	if v, ok := t.StaticLsp[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewStaticLsp(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateStaticLsp got unexpected error: %v", err))
	}
	return v
}

// GetStaticLsp retrieves the value with the specified key from
// the StaticLsp map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) GetStaticLsp(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.StaticLsp[key]; ok {
		return lm
	}
	return nil
}

// AppendStaticLsp appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp struct to the
// list StaticLsp of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) AppendStaticLsp(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.StaticLsp == nil {
		t.StaticLsp = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp)
	}

	if _, ok := t.StaticLsp[key]; ok {
		return fmt.Errorf("duplicate key for list StaticLsp %v", key)
	}

	t.StaticLsp[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.StaticLsp {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp struct {
	ΛMetadata []ygot.Annotation                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config  `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                  `path:"@config" ygotAnnotation:"true"`
	Egress    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress  `path:"egress" module:"openconfig-network-instance"`
	ΛEgress   []ygot.Annotation                                                                                  `path:"@egress" ygotAnnotation:"true"`
	Ingress   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress `path:"ingress" module:"openconfig-network-instance"`
	ΛIngress  []ygot.Annotation                                                                                  `path:"@ingress" ygotAnnotation:"true"`
	Name      *string                                                                                            `path:"name" module:"openconfig-network-instance"`
	ΛName     []ygot.Annotation                                                                                  `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State   `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                  `path:"@state" ygotAnnotation:"true"`
	Transit   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit `path:"transit" module:"openconfig-network-instance"`
	ΛTransit  []ygot.Annotation                                                                                  `path:"@transit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config{}
	return t.Config
}

// GetOrCreateEgress retrieves the value of the Egress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetOrCreateEgress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress {
	if t.Egress != nil {
		return t.Egress
	}
	t.Egress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress{}
	return t.Egress
}

// GetOrCreateIngress retrieves the value of the Ingress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetOrCreateIngress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress {
	if t.Ingress != nil {
		return t.Ingress
	}
	t.Ingress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress{}
	return t.Ingress
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State{}
	return t.State
}

// GetOrCreateTransit retrieves the value of the Transit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetOrCreateTransit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit {
	if t.Transit != nil {
		return t.Transit
	}
	t.Transit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit{}
	return t.Transit
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEgress returns the value of the Egress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp. If the receiver or the field Egress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetEgress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress {
	if t != nil && t.Egress != nil {
		return t.Egress
	}
	return nil
}

// GetIngress returns the value of the Ingress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp. If the receiver or the field Ingress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetIngress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress {
	if t != nil && t.Ingress != nil {
		return t.Ingress
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTransit returns the value of the Transit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp. If the receiver or the field Transit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetTransit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit {
	if t != nil && t.Transit != nil {
		return t.Transit
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Egress.PopulateDefaults()
	t.Ingress.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Transit.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-network-instance"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress struct {
	ΛMetadata []ygot.Annotation                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config struct {
	ΛMetadata      []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	IncomingLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union `path:"incoming-label" module:"openconfig-network-instance"`
	ΛIncomingLabel []ygot.Annotation                                                                                                           `path:"@incoming-label" ygotAnnotation:"true"`
	Interface      *string                                                                                                                     `path:"interface" module:"openconfig-network-instance"`
	ΛInterface     []ygot.Annotation                                                                                                           `path:"@interface" ygotAnnotation:"true"`
	Metric         *uint8                                                                                                                      `path:"metric" module:"openconfig-network-instance"`
	ΛMetric        []ygot.Annotation                                                                                                           `path:"@metric" ygotAnnotation:"true"`
	NextHop        *string                                                                                                                     `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop       []ygot.Annotation                                                                                                           `path:"@next-hop" ygotAnnotation:"true"`
	PushLabel      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union     `path:"push-label" module:"openconfig-network-instance"`
	ΛPushLabel     []ygot.Annotation                                                                                                           `path:"@push-label" ygotAnnotation:"true"`
	Subinterface   *uint32                                                                                                                     `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface  []ygot.Annotation                                                                                                           `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) IsYANGGoStruct() {
}

// GetIncomingLabel retrieves the value of the leaf IncomingLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncomingLabel is set, it can
// safely use t.GetIncomingLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncomingLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) GetIncomingLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union {
	if t == nil || t.IncomingLabel == nil {
		return nil
	}
	return t.IncomingLabel
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPushLabel retrieves the value of the leaf PushLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushLabel is set, it can
// safely use t.GetPushLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) GetPushLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union {
	if t == nil || t.PushLabel == nil {
		return nil
	}
	return t.PushLabel
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/config/incoming-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_IncomingLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/config/push-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_Config_PushLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	IncomingLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union `path:"incoming-label" module:"openconfig-network-instance"`
	ΛIncomingLabel []ygot.Annotation                                                                                                          `path:"@incoming-label" ygotAnnotation:"true"`
	Interface      *string                                                                                                                    `path:"interface" module:"openconfig-network-instance"`
	ΛInterface     []ygot.Annotation                                                                                                          `path:"@interface" ygotAnnotation:"true"`
	Metric         *uint8                                                                                                                     `path:"metric" module:"openconfig-network-instance"`
	ΛMetric        []ygot.Annotation                                                                                                          `path:"@metric" ygotAnnotation:"true"`
	NextHop        *string                                                                                                                    `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop       []ygot.Annotation                                                                                                          `path:"@next-hop" ygotAnnotation:"true"`
	PushLabel      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union     `path:"push-label" module:"openconfig-network-instance"`
	ΛPushLabel     []ygot.Annotation                                                                                                          `path:"@push-label" ygotAnnotation:"true"`
	Subinterface   *uint32                                                                                                                    `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface  []ygot.Annotation                                                                                                          `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) IsYANGGoStruct() {
}

// GetIncomingLabel retrieves the value of the leaf IncomingLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncomingLabel is set, it can
// safely use t.GetIncomingLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncomingLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) GetIncomingLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union {
	if t == nil || t.IncomingLabel == nil {
		return nil
	}
	return t.IncomingLabel
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPushLabel retrieves the value of the leaf PushLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushLabel is set, it can
// safely use t.GetPushLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) GetPushLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union {
	if t == nil || t.PushLabel == nil {
		return nil
	}
	return t.PushLabel
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/state/incoming-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_IncomingLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/state/push-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Egress_State_PushLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress struct {
	ΛMetadata []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config struct {
	ΛMetadata      []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	IncomingLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union `path:"incoming-label" module:"openconfig-network-instance"`
	ΛIncomingLabel []ygot.Annotation                                                                                                            `path:"@incoming-label" ygotAnnotation:"true"`
	Interface      *string                                                                                                                      `path:"interface" module:"openconfig-network-instance"`
	ΛInterface     []ygot.Annotation                                                                                                            `path:"@interface" ygotAnnotation:"true"`
	Metric         *uint8                                                                                                                       `path:"metric" module:"openconfig-network-instance"`
	ΛMetric        []ygot.Annotation                                                                                                            `path:"@metric" ygotAnnotation:"true"`
	NextHop        *string                                                                                                                      `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop       []ygot.Annotation                                                                                                            `path:"@next-hop" ygotAnnotation:"true"`
	PushLabel      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union     `path:"push-label" module:"openconfig-network-instance"`
	ΛPushLabel     []ygot.Annotation                                                                                                            `path:"@push-label" ygotAnnotation:"true"`
	Subinterface   *uint32                                                                                                                      `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface  []ygot.Annotation                                                                                                            `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) IsYANGGoStruct() {
}

// GetIncomingLabel retrieves the value of the leaf IncomingLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncomingLabel is set, it can
// safely use t.GetIncomingLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncomingLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) GetIncomingLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union {
	if t == nil || t.IncomingLabel == nil {
		return nil
	}
	return t.IncomingLabel
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPushLabel retrieves the value of the leaf PushLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushLabel is set, it can
// safely use t.GetPushLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) GetPushLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union {
	if t == nil || t.PushLabel == nil {
		return nil
	}
	return t.PushLabel
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/config/incoming-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_IncomingLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/config/push-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_Config_PushLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	IncomingLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union `path:"incoming-label" module:"openconfig-network-instance"`
	ΛIncomingLabel []ygot.Annotation                                                                                                           `path:"@incoming-label" ygotAnnotation:"true"`
	Interface      *string                                                                                                                     `path:"interface" module:"openconfig-network-instance"`
	ΛInterface     []ygot.Annotation                                                                                                           `path:"@interface" ygotAnnotation:"true"`
	Metric         *uint8                                                                                                                      `path:"metric" module:"openconfig-network-instance"`
	ΛMetric        []ygot.Annotation                                                                                                           `path:"@metric" ygotAnnotation:"true"`
	NextHop        *string                                                                                                                     `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop       []ygot.Annotation                                                                                                           `path:"@next-hop" ygotAnnotation:"true"`
	PushLabel      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union     `path:"push-label" module:"openconfig-network-instance"`
	ΛPushLabel     []ygot.Annotation                                                                                                           `path:"@push-label" ygotAnnotation:"true"`
	Subinterface   *uint32                                                                                                                     `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface  []ygot.Annotation                                                                                                           `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) IsYANGGoStruct() {
}

// GetIncomingLabel retrieves the value of the leaf IncomingLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncomingLabel is set, it can
// safely use t.GetIncomingLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncomingLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) GetIncomingLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union {
	if t == nil || t.IncomingLabel == nil {
		return nil
	}
	return t.IncomingLabel
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPushLabel retrieves the value of the leaf PushLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushLabel is set, it can
// safely use t.GetPushLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) GetPushLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union {
	if t == nil || t.PushLabel == nil {
		return nil
	}
	return t.PushLabel
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/state/incoming-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_IncomingLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/state/push-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Ingress_State_PushLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-network-instance"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit struct {
	ΛMetadata []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config struct {
	ΛMetadata      []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	IncomingLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union `path:"incoming-label" module:"openconfig-network-instance"`
	ΛIncomingLabel []ygot.Annotation                                                                                                            `path:"@incoming-label" ygotAnnotation:"true"`
	Interface      *string                                                                                                                      `path:"interface" module:"openconfig-network-instance"`
	ΛInterface     []ygot.Annotation                                                                                                            `path:"@interface" ygotAnnotation:"true"`
	Metric         *uint8                                                                                                                       `path:"metric" module:"openconfig-network-instance"`
	ΛMetric        []ygot.Annotation                                                                                                            `path:"@metric" ygotAnnotation:"true"`
	NextHop        *string                                                                                                                      `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop       []ygot.Annotation                                                                                                            `path:"@next-hop" ygotAnnotation:"true"`
	PushLabel      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union     `path:"push-label" module:"openconfig-network-instance"`
	ΛPushLabel     []ygot.Annotation                                                                                                            `path:"@push-label" ygotAnnotation:"true"`
	Subinterface   *uint32                                                                                                                      `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface  []ygot.Annotation                                                                                                            `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) IsYANGGoStruct() {
}

// GetIncomingLabel retrieves the value of the leaf IncomingLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncomingLabel is set, it can
// safely use t.GetIncomingLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncomingLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) GetIncomingLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union {
	if t == nil || t.IncomingLabel == nil {
		return nil
	}
	return t.IncomingLabel
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPushLabel retrieves the value of the leaf PushLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushLabel is set, it can
// safely use t.GetPushLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) GetPushLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union {
	if t == nil || t.PushLabel == nil {
		return nil
	}
	return t.PushLabel
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/config/incoming-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_IncomingLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/config/push-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_Config_PushLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	IncomingLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union `path:"incoming-label" module:"openconfig-network-instance"`
	ΛIncomingLabel []ygot.Annotation                                                                                                           `path:"@incoming-label" ygotAnnotation:"true"`
	Interface      *string                                                                                                                     `path:"interface" module:"openconfig-network-instance"`
	ΛInterface     []ygot.Annotation                                                                                                           `path:"@interface" ygotAnnotation:"true"`
	Metric         *uint8                                                                                                                      `path:"metric" module:"openconfig-network-instance"`
	ΛMetric        []ygot.Annotation                                                                                                           `path:"@metric" ygotAnnotation:"true"`
	NextHop        *string                                                                                                                     `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop       []ygot.Annotation                                                                                                           `path:"@next-hop" ygotAnnotation:"true"`
	PushLabel      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union     `path:"push-label" module:"openconfig-network-instance"`
	ΛPushLabel     []ygot.Annotation                                                                                                           `path:"@push-label" ygotAnnotation:"true"`
	Subinterface   *uint32                                                                                                                     `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface  []ygot.Annotation                                                                                                           `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) IsYANGGoStruct() {
}

// GetIncomingLabel retrieves the value of the leaf IncomingLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IncomingLabel is set, it can
// safely use t.GetIncomingLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IncomingLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) GetIncomingLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union {
	if t == nil || t.IncomingLabel == nil {
		return nil
	}
	return t.IncomingLabel
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPushLabel retrieves the value of the leaf PushLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushLabel is set, it can
// safely use t.GetPushLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) GetPushLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union {
	if t == nil || t.PushLabel == nil {
		return nil
	}
	return t.PushLabel
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/state/incoming-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_IncomingLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/state/push-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_StaticLsps_StaticLsp_Transit_State_PushLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/unconstrained-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath struct {
	ΛMetadata          []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	PathSetupProtocol  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol `path:"path-setup-protocol" module:"openconfig-network-instance"`
	ΛPathSetupProtocol []ygot.Annotation                                                                                         `path:"@path-setup-protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) IsYANGGoStruct() {
}

// GetOrCreatePathSetupProtocol retrieves the value of the PathSetupProtocol field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) GetOrCreatePathSetupProtocol() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol {
	if t.PathSetupProtocol != nil {
		return t.PathSetupProtocol
	}
	t.PathSetupProtocol = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol{}
	return t.PathSetupProtocol
}

// GetPathSetupProtocol returns the value of the PathSetupProtocol struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath. If the receiver or the field PathSetupProtocol is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) GetPathSetupProtocol() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol {
	if t != nil && t.PathSetupProtocol != nil {
		return t.PathSetupProtocol
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PathSetupProtocol.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/unconstrained-path/path-setup-protocol YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol struct {
	ΛMetadata []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	Ldp       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp `path:"ldp" module:"openconfig-network-instance"`
	ΛLdp      []ygot.Annotation                                                                                             `path:"@ldp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) IsYANGGoStruct() {
}

// GetOrCreateLdp retrieves the value of the Ldp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) GetOrCreateLdp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp {
	if t.Ldp != nil {
		return t.Ldp
	}
	t.Ldp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp{}
	return t.Ldp
}

// GetLdp returns the value of the Ldp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol. If the receiver or the field Ldp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) GetLdp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp {
	if t != nil && t.Ldp != nil {
		return t.Ldp
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ldp.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp represents the /openconfig-network-instance/network-instances/network-instance/mpls/lsps/unconstrained-path/path-setup-protocol/ldp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_UnconstrainedPath_PathSetupProtocol_Ldp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols struct {
	ΛMetadata       []ygot.Annotation                                                                                  `path:"@" ygotAnnotation:"true"`
	Ldp             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp            `path:"ldp" module:"openconfig-network-instance"`
	ΛLdp            []ygot.Annotation                                                                                  `path:"@ldp" ygotAnnotation:"true"`
	RsvpTe          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe         `path:"rsvp-te" module:"openconfig-network-instance"`
	ΛRsvpTe         []ygot.Annotation                                                                                  `path:"@rsvp-te" ygotAnnotation:"true"`
	SegmentRouting  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting `path:"segment-routing" module:"openconfig-network-instance"`
	ΛSegmentRouting []ygot.Annotation                                                                                  `path:"@segment-routing" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) IsYANGGoStruct() {
}

// GetOrCreateLdp retrieves the value of the Ldp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) GetOrCreateLdp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp {
	if t.Ldp != nil {
		return t.Ldp
	}
	t.Ldp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp{}
	return t.Ldp
}

// GetOrCreateRsvpTe retrieves the value of the RsvpTe field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) GetOrCreateRsvpTe() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe {
	if t.RsvpTe != nil {
		return t.RsvpTe
	}
	t.RsvpTe = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe{}
	return t.RsvpTe
}

// GetOrCreateSegmentRouting retrieves the value of the SegmentRouting field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) GetOrCreateSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting {
	if t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	t.SegmentRouting = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting{}
	return t.SegmentRouting
}

// GetLdp returns the value of the Ldp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols. If the receiver or the field Ldp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) GetLdp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp {
	if t != nil && t.Ldp != nil {
		return t.Ldp
	}
	return nil
}

// GetRsvpTe returns the value of the RsvpTe struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols. If the receiver or the field RsvpTe is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) GetRsvpTe() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe {
	if t != nil && t.RsvpTe != nil {
		return t.RsvpTe
	}
	return nil
}

// GetSegmentRouting returns the value of the SegmentRouting struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols. If the receiver or the field SegmentRouting is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) GetSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting {
	if t != nil && t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ldp.PopulateDefaults()
	t.RsvpTe.PopulateDefaults()
	t.SegmentRouting.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp struct {
	ΛMetadata            []ygot.Annotation                                                                                           `path:"@" ygotAnnotation:"true"`
	Global               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global              `path:"global" module:"openconfig-network-instance"`
	ΛGlobal              []ygot.Annotation                                                                                           `path:"@global" ygotAnnotation:"true"`
	InterfaceAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes `path:"interface-attributes" module:"openconfig-network-instance"`
	ΛInterfaceAttributes []ygot.Annotation                                                                                           `path:"@interface-attributes" ygotAnnotation:"true"`
	Neighbors            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors           `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors           []ygot.Annotation                                                                                           `path:"@neighbors" ygotAnnotation:"true"`
	Targeted             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted            `path:"targeted" module:"openconfig-network-instance"`
	ΛTargeted            []ygot.Annotation                                                                                           `path:"@targeted" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) IsYANGGoStruct() {
}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global{}
	return t.Global
}

// GetOrCreateInterfaceAttributes retrieves the value of the InterfaceAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetOrCreateInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes {
	if t.InterfaceAttributes != nil {
		return t.InterfaceAttributes
	}
	t.InterfaceAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes{}
	return t.InterfaceAttributes
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors{}
	return t.Neighbors
}

// GetOrCreateTargeted retrieves the value of the Targeted field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetOrCreateTargeted() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted {
	if t.Targeted != nil {
		return t.Targeted
	}
	t.Targeted = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted{}
	return t.Targeted
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// GetInterfaceAttributes returns the value of the InterfaceAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp. If the receiver or the field InterfaceAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes {
	if t != nil && t.InterfaceAttributes != nil {
		return t.InterfaceAttributes
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// GetTargeted returns the value of the Targeted struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp. If the receiver or the field Targeted is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) GetTargeted() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted {
	if t != nil && t.Targeted != nil {
		return t.Targeted
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Global.PopulateDefaults()
	t.InterfaceAttributes.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
	t.Targeted.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global struct {
	ΛMetadata        []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Authentication   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication  `path:"authentication" module:"openconfig-network-instance"`
	ΛAuthentication  []ygot.Annotation                                                                                              `path:"@authentication" ygotAnnotation:"true"`
	Config           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config          `path:"config" module:"openconfig-network-instance"`
	ΛConfig          []ygot.Annotation                                                                                              `path:"@config" ygotAnnotation:"true"`
	GracefulRestart  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart []ygot.Annotation                                                                                              `path:"@graceful-restart" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) IsYANGGoStruct() {
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetOrCreateAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication{}
	return t.Authentication
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config{}
	return t.Config
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State{}
	return t.State
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Authentication.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/authentication/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationKey  *string           `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey []ygot.Annotation `path:"@authentication-key" ygotAnnotation:"true"`
	Enable             *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable            []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationKey  *string           `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey []ygot.Annotation `path:"@authentication-key" ygotAnnotation:"true"`
	Enable             *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable            []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Authentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LsrId     *string           `path:"lsr-id" module:"openconfig-network-instance"`
	ΛLsrId    []ygot.Annotation `path:"@lsr-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config) IsYANGGoStruct() {
}

// GetLsrId retrieves the value of the leaf LsrId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LsrId is set, it can
// safely use t.GetLsrId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LsrId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config) GetLsrId() string {
	if t == nil || t.LsrId == nil {
		return ""
	}
	return *t.LsrId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	ForwardingHoldtime  *uint16           `path:"forwarding-holdtime" module:"openconfig-network-instance"`
	ΛForwardingHoldtime []ygot.Annotation `path:"@forwarding-holdtime" ygotAnnotation:"true"`
	HelperEnable        *bool             `path:"helper-enable" module:"openconfig-network-instance"`
	ΛHelperEnable       []ygot.Annotation `path:"@helper-enable" ygotAnnotation:"true"`
	ReconnectTime       *uint16           `path:"reconnect-time" module:"openconfig-network-instance"`
	ΛReconnectTime      []ygot.Annotation `path:"@reconnect-time" ygotAnnotation:"true"`
	RecoveryTime        *uint16           `path:"recovery-time" module:"openconfig-network-instance"`
	ΛRecoveryTime       []ygot.Annotation `path:"@recovery-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetForwardingHoldtime retrieves the value of the leaf ForwardingHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingHoldtime is set, it can
// safely use t.GetForwardingHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) GetForwardingHoldtime() uint16 {
	if t == nil || t.ForwardingHoldtime == nil {
		return 0
	}
	return *t.ForwardingHoldtime
}

// GetHelperEnable retrieves the value of the leaf HelperEnable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperEnable is set, it can
// safely use t.GetHelperEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperEnable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) GetHelperEnable() bool {
	if t == nil || t.HelperEnable == nil {
		return false
	}
	return *t.HelperEnable
}

// GetReconnectTime retrieves the value of the leaf ReconnectTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReconnectTime is set, it can
// safely use t.GetReconnectTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReconnectTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) GetReconnectTime() uint16 {
	if t == nil || t.ReconnectTime == nil {
		return 0
	}
	return *t.ReconnectTime
}

// GetRecoveryTime retrieves the value of the leaf RecoveryTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RecoveryTime is set, it can
// safely use t.GetRecoveryTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RecoveryTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) GetRecoveryTime() uint16 {
	if t == nil || t.RecoveryTime == nil {
		return 0
	}
	return *t.RecoveryTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	ForwardingHoldtime  *uint16           `path:"forwarding-holdtime" module:"openconfig-network-instance"`
	ΛForwardingHoldtime []ygot.Annotation `path:"@forwarding-holdtime" ygotAnnotation:"true"`
	HelperEnable        *bool             `path:"helper-enable" module:"openconfig-network-instance"`
	ΛHelperEnable       []ygot.Annotation `path:"@helper-enable" ygotAnnotation:"true"`
	ReconnectTime       *uint16           `path:"reconnect-time" module:"openconfig-network-instance"`
	ΛReconnectTime      []ygot.Annotation `path:"@reconnect-time" ygotAnnotation:"true"`
	RecoveryTime        *uint16           `path:"recovery-time" module:"openconfig-network-instance"`
	ΛRecoveryTime       []ygot.Annotation `path:"@recovery-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetForwardingHoldtime retrieves the value of the leaf ForwardingHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingHoldtime is set, it can
// safely use t.GetForwardingHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) GetForwardingHoldtime() uint16 {
	if t == nil || t.ForwardingHoldtime == nil {
		return 0
	}
	return *t.ForwardingHoldtime
}

// GetHelperEnable retrieves the value of the leaf HelperEnable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperEnable is set, it can
// safely use t.GetHelperEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperEnable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) GetHelperEnable() bool {
	if t == nil || t.HelperEnable == nil {
		return false
	}
	return *t.HelperEnable
}

// GetReconnectTime retrieves the value of the leaf ReconnectTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReconnectTime is set, it can
// safely use t.GetReconnectTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReconnectTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) GetReconnectTime() uint16 {
	if t == nil || t.ReconnectTime == nil {
		return 0
	}
	return *t.ReconnectTime
}

// GetRecoveryTime retrieves the value of the leaf RecoveryTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RecoveryTime is set, it can
// safely use t.GetRecoveryTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RecoveryTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) GetRecoveryTime() uint16 {
	if t == nil || t.RecoveryTime == nil {
		return 0
	}
	return *t.RecoveryTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/global/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LsrId     *string           `path:"lsr-id" module:"openconfig-network-instance"`
	ΛLsrId    []ygot.Annotation `path:"@lsr-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State) IsYANGGoStruct() {
}

// GetLsrId retrieves the value of the leaf LsrId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LsrId is set, it can
// safely use t.GetLsrId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LsrId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State) GetLsrId() string {
	if t == nil || t.LsrId == nil {
		return ""
	}
	return *t.LsrId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Global_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes struct {
	ΛMetadata   []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config     `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	Interfaces  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces []ygot.Annotation                                                                                                      `path:"@interfaces" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State      `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config{}
	return t.Config
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces{}
	return t.Interfaces
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloHoldtime  *uint16           `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) IsYANGGoStruct() {
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                                           `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AddressFamilies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies `path:"address-families" module:"openconfig-network-instance"`
	ΛAddressFamilies []ygot.Annotation                                                                                                                                `path:"@address-families" ygotAnnotation:"true"`
	Config           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config          `path:"config" module:"openconfig-network-instance"`
	ΛConfig          []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	InterfaceId      *string                                                                                                                                          `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId     []ygot.Annotation                                                                                                                                `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef    `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef    []ygot.Annotation                                                                                                                                `path:"@interface-ref" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateAddressFamilies retrieves the value of the AddressFamilies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetOrCreateAddressFamilies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies {
	if t.AddressFamilies != nil {
		return t.AddressFamilies
	}
	t.AddressFamilies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies{}
	return t.AddressFamilies
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State{}
	return t.State
}

// GetAddressFamilies returns the value of the AddressFamilies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface. If the receiver or the field AddressFamilies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetAddressFamilies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies {
	if t != nil && t.AddressFamilies != nil {
		return t.AddressFamilies
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AddressFamilies.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/address-families YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	AddressFamily  map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                                                                                                                                                                                 `path:"@address-family" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) IsYANGGoStruct() {
}

// NewAddressFamily creates a new entry in the AddressFamily list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) NewAddressFamily(AfiName E_OpenconfigMplsLdp_MplsLdpAfi) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AddressFamily == nil {
		t.AddressFamily = make(map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily)
	}

	key := AfiName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AddressFamily[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AddressFamily", key)
	}

	t.AddressFamily[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily{
		AfiName: AfiName,
	}

	return t.AddressFamily[key], nil
}

// RenameAddressFamily renames an entry in the list AddressFamily within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) RenameAddressFamily(oldK, newK E_OpenconfigMplsLdp_MplsLdpAfi) error {
	if _, ok := t.AddressFamily[newK]; ok {
		return fmt.Errorf("key %v already exists in AddressFamily", newK)
	}

	e, ok := t.AddressFamily[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AddressFamily", oldK)
	}
	e.AfiName = newK

	t.AddressFamily[newK] = e
	delete(t.AddressFamily, oldK)
	return nil
}

// GetOrCreateAddressFamilyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) GetOrCreateAddressFamilyMap() map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily {
	if t.AddressFamily == nil {
		t.AddressFamily = make(map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily)
	}
	return t.AddressFamily
}

// GetOrCreateAddressFamily retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) GetOrCreateAddressFamily(AfiName E_OpenconfigMplsLdp_MplsLdpAfi) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily {

	key := AfiName

	if v, ok := t.AddressFamily[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAddressFamily(AfiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAddressFamily got unexpected error: %v", err))
	}
	return v
}

// GetAddressFamily retrieves the value with the specified key from
// the AddressFamily map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) GetAddressFamily(AfiName E_OpenconfigMplsLdp_MplsLdpAfi) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily {

	if t == nil {
		return nil
	}

	key := AfiName

	if lm, ok := t.AddressFamily[key]; ok {
		return lm
	}
	return nil
}

// AppendAddressFamily appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily struct to the
// list AddressFamily of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) AppendAddressFamily(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) error {
	key := v.AfiName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AddressFamily == nil {
		t.AddressFamily = make(map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily)
	}

	if _, ok := t.AddressFamily[key]; ok {
		return fmt.Errorf("duplicate key for list AddressFamily %v", key)
	}

	t.AddressFamily[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AddressFamily {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/address-families/address-family YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigMplsLdp_MplsLdpAfi                                                                                                                                        `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation                                                                                                                                                     `path:"@afi-name" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) GetAfiName() E_OpenconfigMplsLdp_MplsLdpAfi {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-name": t.AfiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/address-families/address-family/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config struct {
	ΛMetadata []ygot.Annotation              `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigMplsLdp_MplsLdpAfi `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation              `path:"@afi-name" ygotAnnotation:"true"`
	Enabled   *bool                          `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation              `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) GetAfiName() E_OpenconfigMplsLdp_MplsLdpAfi {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/address-families/address-family/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State struct {
	ΛMetadata []ygot.Annotation              `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigMplsLdp_MplsLdpAfi `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation              `path:"@afi-name" ygotAnnotation:"true"`
	Enabled   *bool                          `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation              `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) GetAfiName() E_OpenconfigMplsLdp_MplsLdpAfi {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_AddressFamilies_AddressFamily_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloHoldtime  *uint16           `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	InterfaceId    *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId   []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Counters       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters      []ygot.Annotation                                                                                                                               `path:"@counters" ygotAnnotation:"true"`
	HelloHoldtime  *uint16                                                                                                                                         `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation                                                                                                                               `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16                                                                                                                                         `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation                                                                                                                               `path:"@hello-interval" ygotAnnotation:"true"`
	InterfaceId    *string                                                                                                                                         `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId   []ygot.Annotation                                                                                                                               `path:"@interface-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_Interfaces_Interface_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloHoldtime  *uint16           `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) IsYANGGoStruct() {
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_InterfaceAttributes_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Neighbor  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                                                                                            `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key represents the key for list Neighbor of element /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key struct {
	LsrId        string `path:"lsr-id"`
	LabelSpaceId uint16 `path:"label-space-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"lsr-id":         t.LsrId,
		"label-space-id": t.LabelSpaceId,
	}, nil
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) NewNeighbor(LsrId string, LabelSpaceId uint16) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key{
		LsrId:        LsrId,
		LabelSpaceId: LabelSpaceId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor{
		LsrId:        &LsrId,
		LabelSpaceId: &LabelSpaceId,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) RenameNeighbor(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.LsrId = &newK.LsrId
	e.LabelSpaceId = &newK.LabelSpaceId

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) GetOrCreateNeighborMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) GetOrCreateNeighbor(LsrId string, LabelSpaceId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key{
		LsrId:        LsrId,
		LabelSpaceId: LabelSpaceId,
	}

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(LsrId, LabelSpaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) GetNeighbor(LsrId string, LabelSpaceId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key{
		LsrId:        LsrId,
		LabelSpaceId: LabelSpaceId,
	}

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) error {
	if v.LsrId == nil {
		return fmt.Errorf("invalid nil key for LsrId")
	}

	if v.LabelSpaceId == nil {
		return fmt.Errorf("invalid nil key for LabelSpaceId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key{
		LsrId:        *v.LsrId,
		LabelSpaceId: *v.LabelSpaceId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor struct {
	ΛMetadata         []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Authentication    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication   `path:"authentication" module:"openconfig-network-instance"`
	ΛAuthentication   []ygot.Annotation                                                                                                           `path:"@authentication" ygotAnnotation:"true"`
	Config            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config           `path:"config" module:"openconfig-network-instance"`
	ΛConfig           []ygot.Annotation                                                                                                           `path:"@config" ygotAnnotation:"true"`
	HelloAdjacencies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies `path:"hello-adjacencies" module:"openconfig-network-instance"`
	ΛHelloAdjacencies []ygot.Annotation                                                                                                           `path:"@hello-adjacencies" ygotAnnotation:"true"`
	LabelSpaceId      *uint16                                                                                                                     `path:"label-space-id" module:"openconfig-network-instance"`
	ΛLabelSpaceId     []ygot.Annotation                                                                                                           `path:"@label-space-id" ygotAnnotation:"true"`
	LsrId             *string                                                                                                                     `path:"lsr-id" module:"openconfig-network-instance"`
	ΛLsrId            []ygot.Annotation                                                                                                           `path:"@lsr-id" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetOrCreateAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication{}
	return t.Authentication
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config{}
	return t.Config
}

// GetOrCreateHelloAdjacencies retrieves the value of the HelloAdjacencies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetOrCreateHelloAdjacencies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies {
	if t.HelloAdjacencies != nil {
		return t.HelloAdjacencies
	}
	t.HelloAdjacencies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies{}
	return t.HelloAdjacencies
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State{}
	return t.State
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetHelloAdjacencies returns the value of the HelloAdjacencies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor. If the receiver or the field HelloAdjacencies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetHelloAdjacencies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies {
	if t != nil && t.HelloAdjacencies != nil {
		return t.HelloAdjacencies
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLabelSpaceId retrieves the value of the leaf LabelSpaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelSpaceId is set, it can
// safely use t.GetLabelSpaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelSpaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetLabelSpaceId() uint16 {
	if t == nil || t.LabelSpaceId == nil {
		return 0
	}
	return *t.LabelSpaceId
}

// GetLsrId retrieves the value of the leaf LsrId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LsrId is set, it can
// safely use t.GetLsrId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LsrId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) GetLsrId() string {
	if t == nil || t.LsrId == nil {
		return ""
	}
	return *t.LsrId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Authentication.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.HelloAdjacencies.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LabelSpaceId == nil {
		return nil, fmt.Errorf("nil value for key LabelSpaceId")
	}

	if t.LsrId == nil {
		return nil, fmt.Errorf("nil value for key LsrId")
	}

	return map[string]interface{}{
		"label-space-id": *t.LabelSpaceId,
		"lsr-id":         *t.LsrId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication struct {
	ΛMetadata []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/authentication/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationKey  *string           `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey []ygot.Annotation `path:"@authentication-key" ygotAnnotation:"true"`
	Enable             *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable            []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationKey  *string           `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey []ygot.Annotation `path:"@authentication-key" ygotAnnotation:"true"`
	Enable             *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable            []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Authentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EnableDownstreamOnDemand  *bool             `path:"enable-downstream-on-demand" module:"openconfig-network-instance"`
	ΛEnableDownstreamOnDemand []ygot.Annotation `path:"@enable-downstream-on-demand" ygotAnnotation:"true"`
	LabelSpaceId              *uint16           `path:"label-space-id" module:"openconfig-network-instance"`
	ΛLabelSpaceId             []ygot.Annotation `path:"@label-space-id" ygotAnnotation:"true"`
	LsrId                     *string           `path:"lsr-id" module:"openconfig-network-instance"`
	ΛLsrId                    []ygot.Annotation `path:"@lsr-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) IsYANGGoStruct() {
}

// GetEnableDownstreamOnDemand retrieves the value of the leaf EnableDownstreamOnDemand from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableDownstreamOnDemand is set, it can
// safely use t.GetEnableDownstreamOnDemand() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableDownstreamOnDemand == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) GetEnableDownstreamOnDemand() bool {
	if t == nil || t.EnableDownstreamOnDemand == nil {
		return false
	}
	return *t.EnableDownstreamOnDemand
}

// GetLabelSpaceId retrieves the value of the leaf LabelSpaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelSpaceId is set, it can
// safely use t.GetLabelSpaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelSpaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) GetLabelSpaceId() uint16 {
	if t == nil || t.LabelSpaceId == nil {
		return 0
	}
	return *t.LabelSpaceId
}

// GetLsrId retrieves the value of the leaf LsrId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LsrId is set, it can
// safely use t.GetLsrId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LsrId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) GetLsrId() string {
	if t == nil || t.LsrId == nil {
		return ""
	}
	return *t.LsrId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.EnableDownstreamOnDemand == nil {
		var v bool = false
		t.EnableDownstreamOnDemand = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	HelloAdjacency  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency `path:"hello-adjacency" module:"openconfig-network-instance"`
	ΛHelloAdjacency []ygot.Annotation                                                                                                                                                                                                                                                                            `path:"@hello-adjacency" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key represents the key for list HelloAdjacency of element /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key struct {
	RemoteAddress string `path:"remote-address"`
	LocalAddress  string `path:"local-address"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"remote-address": t.RemoteAddress,
		"local-address":  t.LocalAddress,
	}, nil
}

// NewHelloAdjacency creates a new entry in the HelloAdjacency list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) NewHelloAdjacency(RemoteAddress string, LocalAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.HelloAdjacency == nil {
		t.HelloAdjacency = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key{
		RemoteAddress: RemoteAddress,
		LocalAddress:  LocalAddress,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.HelloAdjacency[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list HelloAdjacency", key)
	}

	t.HelloAdjacency[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency{
		RemoteAddress: &RemoteAddress,
		LocalAddress:  &LocalAddress,
	}

	return t.HelloAdjacency[key], nil
}

// RenameHelloAdjacency renames an entry in the list HelloAdjacency within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) RenameHelloAdjacency(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key) error {
	if _, ok := t.HelloAdjacency[newK]; ok {
		return fmt.Errorf("key %v already exists in HelloAdjacency", newK)
	}

	e, ok := t.HelloAdjacency[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in HelloAdjacency", oldK)
	}
	e.RemoteAddress = &newK.RemoteAddress
	e.LocalAddress = &newK.LocalAddress

	t.HelloAdjacency[newK] = e
	delete(t.HelloAdjacency, oldK)
	return nil
}

// GetOrCreateHelloAdjacencyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) GetOrCreateHelloAdjacencyMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency {
	if t.HelloAdjacency == nil {
		t.HelloAdjacency = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency)
	}
	return t.HelloAdjacency
}

// GetOrCreateHelloAdjacency retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) GetOrCreateHelloAdjacency(RemoteAddress string, LocalAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key{
		RemoteAddress: RemoteAddress,
		LocalAddress:  LocalAddress,
	}

	if v, ok := t.HelloAdjacency[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewHelloAdjacency(RemoteAddress, LocalAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateHelloAdjacency got unexpected error: %v", err))
	}
	return v
}

// GetHelloAdjacency retrieves the value with the specified key from
// the HelloAdjacency map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) GetHelloAdjacency(RemoteAddress string, LocalAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key{
		RemoteAddress: RemoteAddress,
		LocalAddress:  LocalAddress,
	}

	if lm, ok := t.HelloAdjacency[key]; ok {
		return lm
	}
	return nil
}

// AppendHelloAdjacency appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency struct to the
// list HelloAdjacency of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) AppendHelloAdjacency(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) error {
	if v.RemoteAddress == nil {
		return fmt.Errorf("invalid nil key for RemoteAddress")
	}

	if v.LocalAddress == nil {
		return fmt.Errorf("invalid nil key for LocalAddress")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key{
		RemoteAddress: *v.RemoteAddress,
		LocalAddress:  *v.LocalAddress,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.HelloAdjacency == nil {
		t.HelloAdjacency = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency)
	}

	if _, ok := t.HelloAdjacency[key]; ok {
		return fmt.Errorf("duplicate key for list HelloAdjacency %v", key)
	}

	t.HelloAdjacency[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.HelloAdjacency {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies/hello-adjacency YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	HelloHoldtime  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation                                                                                                                                        `path:"@hello-holdtime" ygotAnnotation:"true"`
	InterfaceRef   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef  `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef  []ygot.Annotation                                                                                                                                        `path:"@interface-ref" ygotAnnotation:"true"`
	LocalAddress   *string                                                                                                                                                  `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress  []ygot.Annotation                                                                                                                                        `path:"@local-address" ygotAnnotation:"true"`
	RemoteAddress  *string                                                                                                                                                  `path:"remote-address" module:"openconfig-network-instance"`
	ΛRemoteAddress []ygot.Annotation                                                                                                                                        `path:"@remote-address" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) IsYANGGoStruct() {
}

// GetOrCreateHelloHoldtime retrieves the value of the HelloHoldtime field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetOrCreateHelloHoldtime() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime {
	if t.HelloHoldtime != nil {
		return t.HelloHoldtime
	}
	t.HelloHoldtime = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime{}
	return t.HelloHoldtime
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State{}
	return t.State
}

// GetHelloHoldtime returns the value of the HelloHoldtime struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency. If the receiver or the field HelloHoldtime is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetHelloHoldtime() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime {
	if t != nil && t.HelloHoldtime != nil {
		return t.HelloHoldtime
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.HelloHoldtime.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalAddress == nil {
		return nil, fmt.Errorf("nil value for key LocalAddress")
	}

	if t.RemoteAddress == nil {
		return nil, fmt.Errorf("nil value for key RemoteAddress")
	}

	return map[string]interface{}{
		"local-address":  *t.LocalAddress,
		"remote-address": *t.RemoteAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies/hello-adjacency/hello-holdtime YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies/hello-adjacency/hello-holdtime/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Adjacent         *uint16           `path:"adjacent" module:"openconfig-network-instance"`
	ΛAdjacent        []ygot.Annotation `path:"@adjacent" ygotAnnotation:"true"`
	HelloExpiration  *uint64           `path:"hello-expiration" module:"openconfig-network-instance"`
	ΛHelloExpiration []ygot.Annotation `path:"@hello-expiration" ygotAnnotation:"true"`
	Negotiated       *uint16           `path:"negotiated" module:"openconfig-network-instance"`
	ΛNegotiated      []ygot.Annotation `path:"@negotiated" ygotAnnotation:"true"`
	NextHello        *uint64           `path:"next-hello" module:"openconfig-network-instance"`
	ΛNextHello       []ygot.Annotation `path:"@next-hello" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) IsYANGGoStruct() {
}

// GetAdjacent retrieves the value of the leaf Adjacent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Adjacent is set, it can
// safely use t.GetAdjacent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Adjacent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) GetAdjacent() uint16 {
	if t == nil || t.Adjacent == nil {
		return 0
	}
	return *t.Adjacent
}

// GetHelloExpiration retrieves the value of the leaf HelloExpiration from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloExpiration is set, it can
// safely use t.GetHelloExpiration() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloExpiration == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) GetHelloExpiration() uint64 {
	if t == nil || t.HelloExpiration == nil {
		return 0
	}
	return *t.HelloExpiration
}

// GetNegotiated retrieves the value of the leaf Negotiated from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Negotiated is set, it can
// safely use t.GetNegotiated() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Negotiated == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) GetNegotiated() uint16 {
	if t == nil || t.Negotiated == nil {
		return 0
	}
	return *t.Negotiated
}

// GetNextHello retrieves the value of the leaf NextHello from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHello is set, it can
// safely use t.GetNextHello() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHello == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) GetNextHello() uint64 {
	if t == nil || t.NextHello == nil {
		return 0
	}
	return *t.NextHello
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_HelloHoldtime_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies/hello-adjacency/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies/hello-adjacency/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies/hello-adjacency/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State struct {
	ΛMetadata      []ygot.Annotation                        `path:"@" ygotAnnotation:"true"`
	AdjacencyType  E_OpenconfigMplsLdp_MplsLdpAdjacencyType `path:"adjacency-type" module:"openconfig-network-instance"`
	ΛAdjacencyType []ygot.Annotation                        `path:"@adjacency-type" ygotAnnotation:"true"`
	HelloDropped   *uint64                                  `path:"hello-dropped" module:"openconfig-network-instance"`
	ΛHelloDropped  []ygot.Annotation                        `path:"@hello-dropped" ygotAnnotation:"true"`
	HelloReceived  *uint64                                  `path:"hello-received" module:"openconfig-network-instance"`
	ΛHelloReceived []ygot.Annotation                        `path:"@hello-received" ygotAnnotation:"true"`
	LastClear      *uint64                                  `path:"last-clear" module:"openconfig-network-instance"`
	ΛLastClear     []ygot.Annotation                        `path:"@last-clear" ygotAnnotation:"true"`
	LocalAddress   *string                                  `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress  []ygot.Annotation                        `path:"@local-address" ygotAnnotation:"true"`
	RemoteAddress  *string                                  `path:"remote-address" module:"openconfig-network-instance"`
	ΛRemoteAddress []ygot.Annotation                        `path:"@remote-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) IsYANGGoStruct() {
}

// GetAdjacencyType retrieves the value of the leaf AdjacencyType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjacencyType is set, it can
// safely use t.GetAdjacencyType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjacencyType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) GetAdjacencyType() E_OpenconfigMplsLdp_MplsLdpAdjacencyType {
	if t == nil || t.AdjacencyType == 0 {
		return 0
	}
	return t.AdjacencyType
}

// GetHelloDropped retrieves the value of the leaf HelloDropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloDropped is set, it can
// safely use t.GetHelloDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloDropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) GetHelloDropped() uint64 {
	if t == nil || t.HelloDropped == nil {
		return 0
	}
	return *t.HelloDropped
}

// GetHelloReceived retrieves the value of the leaf HelloReceived from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloReceived is set, it can
// safely use t.GetHelloReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloReceived == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) GetHelloReceived() uint64 {
	if t == nil || t.HelloReceived == nil {
		return 0
	}
	return *t.HelloReceived
}

// GetLastClear retrieves the value of the leaf LastClear from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastClear is set, it can
// safely use t.GetLastClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastClear == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) GetLastClear() uint64 {
	if t == nil || t.LastClear == nil {
		return 0
	}
	return *t.LastClear
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_HelloAdjacencies_HelloAdjacency_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State struct {
	ΛMetadata                         []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	EnableDownstreamOnDemand          *bool                                                                                                                          `path:"enable-downstream-on-demand" module:"openconfig-network-instance"`
	ΛEnableDownstreamOnDemand         []ygot.Annotation                                                                                                              `path:"@enable-downstream-on-demand" ygotAnnotation:"true"`
	LabelSpaceId                      *uint16                                                                                                                        `path:"label-space-id" module:"openconfig-network-instance"`
	ΛLabelSpaceId                     []ygot.Annotation                                                                                                              `path:"@label-space-id" ygotAnnotation:"true"`
	LsrId                             *string                                                                                                                        `path:"lsr-id" module:"openconfig-network-instance"`
	ΛLsrId                            []ygot.Annotation                                                                                                              `path:"@lsr-id" ygotAnnotation:"true"`
	NegotiatedLabelAdvertisementMode  E_OpenconfigMplsLdp_LabelAdvertisementMode                                                                                     `path:"negotiated-label-advertisement-mode" module:"openconfig-network-instance"`
	ΛNegotiatedLabelAdvertisementMode []ygot.Annotation                                                                                                              `path:"@negotiated-label-advertisement-mode" ygotAnnotation:"true"`
	PeerLabelAdvertisementMode        E_OpenconfigMplsLdp_LabelAdvertisementMode                                                                                     `path:"peer-label-advertisement-mode" module:"openconfig-network-instance"`
	ΛPeerLabelAdvertisementMode       []ygot.Annotation                                                                                                              `path:"@peer-label-advertisement-mode" ygotAnnotation:"true"`
	SessionState                      E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState `path:"session-state" module:"openconfig-network-instance"`
	ΛSessionState                     []ygot.Annotation                                                                                                              `path:"@session-state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetEnableDownstreamOnDemand retrieves the value of the leaf EnableDownstreamOnDemand from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableDownstreamOnDemand is set, it can
// safely use t.GetEnableDownstreamOnDemand() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableDownstreamOnDemand == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) GetEnableDownstreamOnDemand() bool {
	if t == nil || t.EnableDownstreamOnDemand == nil {
		return false
	}
	return *t.EnableDownstreamOnDemand
}

// GetLabelSpaceId retrieves the value of the leaf LabelSpaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelSpaceId is set, it can
// safely use t.GetLabelSpaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelSpaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) GetLabelSpaceId() uint16 {
	if t == nil || t.LabelSpaceId == nil {
		return 0
	}
	return *t.LabelSpaceId
}

// GetLsrId retrieves the value of the leaf LsrId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LsrId is set, it can
// safely use t.GetLsrId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LsrId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) GetLsrId() string {
	if t == nil || t.LsrId == nil {
		return ""
	}
	return *t.LsrId
}

// GetNegotiatedLabelAdvertisementMode retrieves the value of the leaf NegotiatedLabelAdvertisementMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NegotiatedLabelAdvertisementMode is set, it can
// safely use t.GetNegotiatedLabelAdvertisementMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NegotiatedLabelAdvertisementMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) GetNegotiatedLabelAdvertisementMode() E_OpenconfigMplsLdp_LabelAdvertisementMode {
	if t == nil || t.NegotiatedLabelAdvertisementMode == 0 {
		return 0
	}
	return t.NegotiatedLabelAdvertisementMode
}

// GetPeerLabelAdvertisementMode retrieves the value of the leaf PeerLabelAdvertisementMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerLabelAdvertisementMode is set, it can
// safely use t.GetPeerLabelAdvertisementMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerLabelAdvertisementMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) GetPeerLabelAdvertisementMode() E_OpenconfigMplsLdp_LabelAdvertisementMode {
	if t == nil || t.PeerLabelAdvertisementMode == 0 {
		return 0
	}
	return t.PeerLabelAdvertisementMode
}

// GetSessionState retrieves the value of the leaf SessionState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionState is set, it can
// safely use t.GetSessionState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) GetSessionState() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState {
	if t == nil || t.SessionState == 0 {
		return 0
	}
	return t.SessionState
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.EnableDownstreamOnDemand == nil {
		var v bool = false
		t.EnableDownstreamOnDemand = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted struct {
	ΛMetadata        []ygot.Annotation                                                                                                `path:"@" ygotAnnotation:"true"`
	AddressFamilies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies `path:"address-families" module:"openconfig-network-instance"`
	ΛAddressFamilies []ygot.Annotation                                                                                                `path:"@address-families" ygotAnnotation:"true"`
	Config           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config          `path:"config" module:"openconfig-network-instance"`
	ΛConfig          []ygot.Annotation                                                                                                `path:"@config" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) IsYANGGoStruct() {
}

// GetOrCreateAddressFamilies retrieves the value of the AddressFamilies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) GetOrCreateAddressFamilies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies {
	if t.AddressFamilies != nil {
		return t.AddressFamilies
	}
	t.AddressFamilies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies{}
	return t.AddressFamilies
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State{}
	return t.State
}

// GetAddressFamilies returns the value of the AddressFamilies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted. If the receiver or the field AddressFamilies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) GetAddressFamilies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies {
	if t != nil && t.AddressFamilies != nil {
		return t.AddressFamilies
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AddressFamilies.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	AddressFamily  map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                                                                                                                                                 `path:"@address-family" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) IsYANGGoStruct() {
}

// NewAddressFamily creates a new entry in the AddressFamily list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) NewAddressFamily(AfiName E_OpenconfigMplsLdp_MplsLdpAfi) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AddressFamily == nil {
		t.AddressFamily = make(map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily)
	}

	key := AfiName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AddressFamily[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AddressFamily", key)
	}

	t.AddressFamily[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily{
		AfiName: AfiName,
	}

	return t.AddressFamily[key], nil
}

// RenameAddressFamily renames an entry in the list AddressFamily within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) RenameAddressFamily(oldK, newK E_OpenconfigMplsLdp_MplsLdpAfi) error {
	if _, ok := t.AddressFamily[newK]; ok {
		return fmt.Errorf("key %v already exists in AddressFamily", newK)
	}

	e, ok := t.AddressFamily[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AddressFamily", oldK)
	}
	e.AfiName = newK

	t.AddressFamily[newK] = e
	delete(t.AddressFamily, oldK)
	return nil
}

// GetOrCreateAddressFamilyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) GetOrCreateAddressFamilyMap() map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily {
	if t.AddressFamily == nil {
		t.AddressFamily = make(map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily)
	}
	return t.AddressFamily
}

// GetOrCreateAddressFamily retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) GetOrCreateAddressFamily(AfiName E_OpenconfigMplsLdp_MplsLdpAfi) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily {

	key := AfiName

	if v, ok := t.AddressFamily[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAddressFamily(AfiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAddressFamily got unexpected error: %v", err))
	}
	return v
}

// GetAddressFamily retrieves the value with the specified key from
// the AddressFamily map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) GetAddressFamily(AfiName E_OpenconfigMplsLdp_MplsLdpAfi) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily {

	if t == nil {
		return nil
	}

	key := AfiName

	if lm, ok := t.AddressFamily[key]; ok {
		return lm
	}
	return nil
}

// AppendAddressFamily appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily struct to the
// list AddressFamily of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) AppendAddressFamily(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) error {
	key := v.AfiName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AddressFamily == nil {
		t.AddressFamily = make(map[E_OpenconfigMplsLdp_MplsLdpAfi]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily)
	}

	if _, ok := t.AddressFamily[key]; ok {
		return fmt.Errorf("duplicate key for list AddressFamily %v", key)
	}

	t.AddressFamily[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AddressFamily {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily struct {
	ΛMetadata []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigMplsLdp_MplsLdpAfi                                                                                                         `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation                                                                                                                      `path:"@afi-name" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config  `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State   `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                      `path:"@state" ygotAnnotation:"true"`
	Targets   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets `path:"targets" module:"openconfig-network-instance"`
	ΛTargets  []ygot.Annotation                                                                                                                      `path:"@targets" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State{}
	return t.State
}

// GetOrCreateTargets retrieves the value of the Targets field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) GetOrCreateTargets() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets {
	if t.Targets != nil {
		return t.Targets
	}
	t.Targets = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets{}
	return t.Targets
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTargets returns the value of the Targets struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily. If the receiver or the field Targets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) GetTargets() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets {
	if t != nil && t.Targets != nil {
		return t.Targets
	}
	return nil
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) GetAfiName() E_OpenconfigMplsLdp_MplsLdpAfi {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Targets.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-name": t.AfiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config struct {
	ΛMetadata []ygot.Annotation              `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigMplsLdp_MplsLdpAfi `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation              `path:"@afi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config) GetAfiName() E_OpenconfigMplsLdp_MplsLdpAfi {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State struct {
	ΛMetadata []ygot.Annotation              `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigMplsLdp_MplsLdpAfi `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation              `path:"@afi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State) GetAfiName() E_OpenconfigMplsLdp_MplsLdpAfi {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/targets YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Target    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target `path:"target" module:"openconfig-network-instance"`
	ΛTarget   []ygot.Annotation                                                                                                                                        `path:"@target" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) IsYANGGoStruct() {
}

// NewTarget creates a new entry in the Target list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) NewTarget(RemoteAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Target == nil {
		t.Target = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target)
	}

	key := RemoteAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Target[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Target", key)
	}

	t.Target[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target{
		RemoteAddress: &RemoteAddress,
	}

	return t.Target[key], nil
}

// RenameTarget renames an entry in the list Target within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) RenameTarget(oldK, newK string) error {
	if _, ok := t.Target[newK]; ok {
		return fmt.Errorf("key %v already exists in Target", newK)
	}

	e, ok := t.Target[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Target", oldK)
	}
	e.RemoteAddress = &newK

	t.Target[newK] = e
	delete(t.Target, oldK)
	return nil
}

// GetOrCreateTargetMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) GetOrCreateTargetMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target {
	if t.Target == nil {
		t.Target = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target)
	}
	return t.Target
}

// GetOrCreateTarget retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) GetOrCreateTarget(RemoteAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target {

	key := RemoteAddress

	if v, ok := t.Target[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTarget(RemoteAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTarget got unexpected error: %v", err))
	}
	return v
}

// GetTarget retrieves the value with the specified key from
// the Target map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) GetTarget(RemoteAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target {

	if t == nil {
		return nil
	}

	key := RemoteAddress

	if lm, ok := t.Target[key]; ok {
		return lm
	}
	return nil
}

// AppendTarget appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target struct to the
// list Target of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) AppendTarget(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) error {
	if v.RemoteAddress == nil {
		return fmt.Errorf("invalid nil key received for RemoteAddress")
	}

	key := *v.RemoteAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Target == nil {
		t.Target = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target)
	}

	if _, ok := t.Target[key]; ok {
		return fmt.Errorf("duplicate key for list Target %v", key)
	}

	t.Target[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Target {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/targets/target YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	RemoteAddress  *string                                                                                                                                              `path:"remote-address" module:"openconfig-network-instance"`
	ΛRemoteAddress []ygot.Annotation                                                                                                                                    `path:"@remote-address" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State  `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RemoteAddress == nil {
		return nil, fmt.Errorf("nil value for key RemoteAddress")
	}

	return map[string]interface{}{
		"remote-address": *t.RemoteAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/targets/target/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled        *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled       []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelloHoldtime  *uint16           `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	LocalAddress   *string           `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress  []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	RemoteAddress  *string           `path:"remote-address" module:"openconfig-network-instance"`
	ΛRemoteAddress []ygot.Annotation `path:"@remote-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/targets/target/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled        *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled       []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelloHoldtime  *uint16           `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	LocalAddress   *string           `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress  []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	RemoteAddress  *string           `path:"remote-address" module:"openconfig-network-instance"`
	ΛRemoteAddress []ygot.Annotation `path:"@remote-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_AddressFamilies_AddressFamily_Targets_Target_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloAccept    *bool             `path:"hello-accept" module:"openconfig-network-instance"`
	ΛHelloAccept   []ygot.Annotation `path:"@hello-accept" ygotAnnotation:"true"`
	HelloHoldtime  *uint16           `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) IsYANGGoStruct() {
}

// GetHelloAccept retrieves the value of the leaf HelloAccept from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloAccept is set, it can
// safely use t.GetHelloAccept() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloAccept == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) GetHelloAccept() bool {
	if t == nil || t.HelloAccept == nil {
		return false
	}
	return *t.HelloAccept
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloAccept    *bool             `path:"hello-accept" module:"openconfig-network-instance"`
	ΛHelloAccept   []ygot.Annotation `path:"@hello-accept" ygotAnnotation:"true"`
	HelloHoldtime  *uint16           `path:"hello-holdtime" module:"openconfig-network-instance"`
	ΛHelloHoldtime []ygot.Annotation `path:"@hello-holdtime" ygotAnnotation:"true"`
	HelloInterval  *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) IsYANGGoStruct() {
}

// GetHelloAccept retrieves the value of the leaf HelloAccept from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloAccept is set, it can
// safely use t.GetHelloAccept() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloAccept == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) GetHelloAccept() bool {
	if t == nil || t.HelloAccept == nil {
		return false
	}
	return *t.HelloAccept
}

// GetHelloHoldtime retrieves the value of the leaf HelloHoldtime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloHoldtime is set, it can
// safely use t.GetHelloHoldtime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloHoldtime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) GetHelloHoldtime() uint16 {
	if t == nil || t.HelloHoldtime == nil {
		return 0
	}
	return *t.HelloHoldtime
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Targeted_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe struct {
	ΛMetadata            []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Global               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global              `path:"global" module:"openconfig-network-instance"`
	ΛGlobal              []ygot.Annotation                                                                                              `path:"@global" ygotAnnotation:"true"`
	InterfaceAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes `path:"interface-attributes" module:"openconfig-network-instance"`
	ΛInterfaceAttributes []ygot.Annotation                                                                                              `path:"@interface-attributes" ygotAnnotation:"true"`
	Neighbors            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors           `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors           []ygot.Annotation                                                                                              `path:"@neighbors" ygotAnnotation:"true"`
	Sessions             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions            `path:"sessions" module:"openconfig-network-instance"`
	ΛSessions            []ygot.Annotation                                                                                              `path:"@sessions" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) IsYANGGoStruct() {
}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global{}
	return t.Global
}

// GetOrCreateInterfaceAttributes retrieves the value of the InterfaceAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetOrCreateInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes {
	if t.InterfaceAttributes != nil {
		return t.InterfaceAttributes
	}
	t.InterfaceAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes{}
	return t.InterfaceAttributes
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors{}
	return t.Neighbors
}

// GetOrCreateSessions retrieves the value of the Sessions field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetOrCreateSessions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions {
	if t.Sessions != nil {
		return t.Sessions
	}
	t.Sessions = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions{}
	return t.Sessions
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// GetInterfaceAttributes returns the value of the InterfaceAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe. If the receiver or the field InterfaceAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetInterfaceAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes {
	if t != nil && t.InterfaceAttributes != nil {
		return t.InterfaceAttributes
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// GetSessions returns the value of the Sessions struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe. If the receiver or the field Sessions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) GetSessions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions {
	if t != nil && t.Sessions != nil {
		return t.Sessions
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Global.PopulateDefaults()
	t.InterfaceAttributes.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
	t.Sessions.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global struct {
	ΛMetadata        []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	GracefulRestart  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart []ygot.Annotation                                                                                                 `path:"@graceful-restart" ygotAnnotation:"true"`
	Hellos           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos          `path:"hellos" module:"openconfig-network-instance"`
	ΛHellos          []ygot.Annotation                                                                                                 `path:"@hellos" ygotAnnotation:"true"`
	SoftPreemption   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption  `path:"soft-preemption" module:"openconfig-network-instance"`
	ΛSoftPreemption  []ygot.Annotation                                                                                                 `path:"@soft-preemption" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) IsYANGGoStruct() {
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateHellos retrieves the value of the Hellos field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetOrCreateHellos() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos {
	if t.Hellos != nil {
		return t.Hellos
	}
	t.Hellos = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos{}
	return t.Hellos
}

// GetOrCreateSoftPreemption retrieves the value of the SoftPreemption field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetOrCreateSoftPreemption() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption {
	if t.SoftPreemption != nil {
		return t.SoftPreemption
	}
	t.SoftPreemption = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption{}
	return t.SoftPreemption
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State{}
	return t.State
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetHellos returns the value of the Hellos struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global. If the receiver or the field Hellos is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetHellos() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos {
	if t != nil && t.Hellos != nil {
		return t.Hellos
	}
	return nil
}

// GetSoftPreemption returns the value of the SoftPreemption struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global. If the receiver or the field SoftPreemption is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetSoftPreemption() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption {
	if t != nil && t.SoftPreemption != nil {
		return t.SoftPreemption
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.GracefulRestart.PopulateDefaults()
	t.Hellos.PopulateDefaults()
	t.SoftPreemption.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enable        *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	RecoveryTime  *uint32           `path:"recovery-time" module:"openconfig-network-instance"`
	ΛRecoveryTime []ygot.Annotation `path:"@recovery-time" ygotAnnotation:"true"`
	RestartTime   *uint32           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime  []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetRecoveryTime retrieves the value of the leaf RecoveryTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RecoveryTime is set, it can
// safely use t.GetRecoveryTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RecoveryTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) GetRecoveryTime() uint32 {
	if t == nil || t.RecoveryTime == nil {
		return 0
	}
	return *t.RecoveryTime
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) GetRestartTime() uint32 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enable        *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	RecoveryTime  *uint32           `path:"recovery-time" module:"openconfig-network-instance"`
	ΛRecoveryTime []ygot.Annotation `path:"@recovery-time" ygotAnnotation:"true"`
	RestartTime   *uint32           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime  []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetRecoveryTime retrieves the value of the leaf RecoveryTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RecoveryTime is set, it can
// safely use t.GetRecoveryTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RecoveryTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) GetRecoveryTime() uint32 {
	if t == nil || t.RecoveryTime == nil {
		return 0
	}
	return *t.RecoveryTime
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) GetRestartTime() uint32 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/hellos YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos struct {
	ΛMetadata []ygot.Annotation                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/hellos/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloInterval     *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval    []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	RefreshReduction  *bool             `path:"refresh-reduction" module:"openconfig-network-instance"`
	ΛRefreshReduction []ygot.Annotation `path:"@refresh-reduction" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) IsYANGGoStruct() {
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 9000
	}
	return *t.HelloInterval
}

// GetRefreshReduction retrieves the value of the leaf RefreshReduction from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RefreshReduction is set, it can
// safely use t.GetRefreshReduction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RefreshReduction == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) GetRefreshReduction() bool {
	if t == nil || t.RefreshReduction == nil {
		return true
	}
	return *t.RefreshReduction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.HelloInterval == nil {
		var v uint16 = 9000
		t.HelloInterval = &v
	}
	if t.RefreshReduction == nil {
		var v bool = true
		t.RefreshReduction = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/hellos/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloInterval     *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval    []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	RefreshReduction  *bool             `path:"refresh-reduction" module:"openconfig-network-instance"`
	ΛRefreshReduction []ygot.Annotation `path:"@refresh-reduction" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) IsYANGGoStruct() {
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 9000
	}
	return *t.HelloInterval
}

// GetRefreshReduction retrieves the value of the leaf RefreshReduction from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RefreshReduction is set, it can
// safely use t.GetRefreshReduction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RefreshReduction == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) GetRefreshReduction() bool {
	if t == nil || t.RefreshReduction == nil {
		return true
	}
	return *t.RefreshReduction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.HelloInterval == nil {
		var v uint16 = 9000
		t.HelloInterval = &v
	}
	if t.RefreshReduction == nil {
		var v bool = true
		t.RefreshReduction = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_Hellos_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/soft-preemption YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption struct {
	ΛMetadata []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/soft-preemption/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enable                 *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable                []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	SoftPreemptionTimeout  *uint16           `path:"soft-preemption-timeout" module:"openconfig-network-instance"`
	ΛSoftPreemptionTimeout []ygot.Annotation `path:"@soft-preemption-timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) IsYANGGoStruct() {
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetSoftPreemptionTimeout retrieves the value of the leaf SoftPreemptionTimeout from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SoftPreemptionTimeout is set, it can
// safely use t.GetSoftPreemptionTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SoftPreemptionTimeout == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) GetSoftPreemptionTimeout() uint16 {
	if t == nil || t.SoftPreemptionTimeout == nil {
		return 30
	}
	return *t.SoftPreemptionTimeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
	if t.SoftPreemptionTimeout == nil {
		var v uint16 = 30
		t.SoftPreemptionTimeout = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/soft-preemption/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enable                 *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable                []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	SoftPreemptionTimeout  *uint16           `path:"soft-preemption-timeout" module:"openconfig-network-instance"`
	ΛSoftPreemptionTimeout []ygot.Annotation `path:"@soft-preemption-timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) IsYANGGoStruct() {
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetSoftPreemptionTimeout retrieves the value of the leaf SoftPreemptionTimeout from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SoftPreemptionTimeout is set, it can
// safely use t.GetSoftPreemptionTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SoftPreemptionTimeout == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) GetSoftPreemptionTimeout() uint16 {
	if t == nil || t.SoftPreemptionTimeout == nil {
		return 30
	}
	return *t.SoftPreemptionTimeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
	if t.SoftPreemptionTimeout == nil {
		var v uint16 = 30
		t.SoftPreemptionTimeout = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_SoftPreemption_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State struct {
	ΛMetadata []ygot.Annotation                                                                                                `path:"@" ygotAnnotation:"true"`
	Counters  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters []ygot.Annotation                                                                                                `path:"@counters" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters struct {
	ΛMetadata                    []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Errors                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors `path:"errors" module:"openconfig-network-instance"`
	ΛErrors                      []ygot.Annotation                                                                                                       `path:"@errors" ygotAnnotation:"true"`
	InAckMessages                *uint64                                                                                                                 `path:"in-ack-messages" module:"openconfig-network-instance"`
	ΛInAckMessages               []ygot.Annotation                                                                                                       `path:"@in-ack-messages" ygotAnnotation:"true"`
	InHelloMessages              *uint64                                                                                                                 `path:"in-hello-messages" module:"openconfig-network-instance"`
	ΛInHelloMessages             []ygot.Annotation                                                                                                       `path:"@in-hello-messages" ygotAnnotation:"true"`
	InPathErrorMessages          *uint64                                                                                                                 `path:"in-path-error-messages" module:"openconfig-network-instance"`
	ΛInPathErrorMessages         []ygot.Annotation                                                                                                       `path:"@in-path-error-messages" ygotAnnotation:"true"`
	InPathMessages               *uint64                                                                                                                 `path:"in-path-messages" module:"openconfig-network-instance"`
	ΛInPathMessages              []ygot.Annotation                                                                                                       `path:"@in-path-messages" ygotAnnotation:"true"`
	InPathTearMessages           *uint64                                                                                                                 `path:"in-path-tear-messages" module:"openconfig-network-instance"`
	ΛInPathTearMessages          []ygot.Annotation                                                                                                       `path:"@in-path-tear-messages" ygotAnnotation:"true"`
	InReservationErrorMessages   *uint64                                                                                                                 `path:"in-reservation-error-messages" module:"openconfig-network-instance"`
	ΛInReservationErrorMessages  []ygot.Annotation                                                                                                       `path:"@in-reservation-error-messages" ygotAnnotation:"true"`
	InReservationMessages        *uint64                                                                                                                 `path:"in-reservation-messages" module:"openconfig-network-instance"`
	ΛInReservationMessages       []ygot.Annotation                                                                                                       `path:"@in-reservation-messages" ygotAnnotation:"true"`
	InReservationTearMessages    *uint64                                                                                                                 `path:"in-reservation-tear-messages" module:"openconfig-network-instance"`
	ΛInReservationTearMessages   []ygot.Annotation                                                                                                       `path:"@in-reservation-tear-messages" ygotAnnotation:"true"`
	InSrefreshMessages           *uint64                                                                                                                 `path:"in-srefresh-messages" module:"openconfig-network-instance"`
	ΛInSrefreshMessages          []ygot.Annotation                                                                                                       `path:"@in-srefresh-messages" ygotAnnotation:"true"`
	OutAckMessages               *uint64                                                                                                                 `path:"out-ack-messages" module:"openconfig-network-instance"`
	ΛOutAckMessages              []ygot.Annotation                                                                                                       `path:"@out-ack-messages" ygotAnnotation:"true"`
	OutHelloMessages             *uint64                                                                                                                 `path:"out-hello-messages" module:"openconfig-network-instance"`
	ΛOutHelloMessages            []ygot.Annotation                                                                                                       `path:"@out-hello-messages" ygotAnnotation:"true"`
	OutPathErrorMessages         *uint64                                                                                                                 `path:"out-path-error-messages" module:"openconfig-network-instance"`
	ΛOutPathErrorMessages        []ygot.Annotation                                                                                                       `path:"@out-path-error-messages" ygotAnnotation:"true"`
	OutPathMessages              *uint64                                                                                                                 `path:"out-path-messages" module:"openconfig-network-instance"`
	ΛOutPathMessages             []ygot.Annotation                                                                                                       `path:"@out-path-messages" ygotAnnotation:"true"`
	OutPathTearMessages          *uint64                                                                                                                 `path:"out-path-tear-messages" module:"openconfig-network-instance"`
	ΛOutPathTearMessages         []ygot.Annotation                                                                                                       `path:"@out-path-tear-messages" ygotAnnotation:"true"`
	OutReservationErrorMessages  *uint64                                                                                                                 `path:"out-reservation-error-messages" module:"openconfig-network-instance"`
	ΛOutReservationErrorMessages []ygot.Annotation                                                                                                       `path:"@out-reservation-error-messages" ygotAnnotation:"true"`
	OutReservationMessages       *uint64                                                                                                                 `path:"out-reservation-messages" module:"openconfig-network-instance"`
	ΛOutReservationMessages      []ygot.Annotation                                                                                                       `path:"@out-reservation-messages" ygotAnnotation:"true"`
	OutReservationTearMessages   *uint64                                                                                                                 `path:"out-reservation-tear-messages" module:"openconfig-network-instance"`
	ΛOutReservationTearMessages  []ygot.Annotation                                                                                                       `path:"@out-reservation-tear-messages" ygotAnnotation:"true"`
	OutSrefreshMessages          *uint64                                                                                                                 `path:"out-srefresh-messages" module:"openconfig-network-instance"`
	ΛOutSrefreshMessages         []ygot.Annotation                                                                                                       `path:"@out-srefresh-messages" ygotAnnotation:"true"`
	PathTimeouts                 *uint64                                                                                                                 `path:"path-timeouts" module:"openconfig-network-instance"`
	ΛPathTimeouts                []ygot.Annotation                                                                                                       `path:"@path-timeouts" ygotAnnotation:"true"`
	RateLimitedMessages          *uint64                                                                                                                 `path:"rate-limited-messages" module:"openconfig-network-instance"`
	ΛRateLimitedMessages         []ygot.Annotation                                                                                                       `path:"@rate-limited-messages" ygotAnnotation:"true"`
	ReservationTimeouts          *uint64                                                                                                                 `path:"reservation-timeouts" module:"openconfig-network-instance"`
	ΛReservationTimeouts         []ygot.Annotation                                                                                                       `path:"@reservation-timeouts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) IsYANGGoStruct() {
}

// GetOrCreateErrors retrieves the value of the Errors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOrCreateErrors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors {
	if t.Errors != nil {
		return t.Errors
	}
	t.Errors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors{}
	return t.Errors
}

// GetErrors returns the value of the Errors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters. If the receiver or the field Errors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetErrors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors {
	if t != nil && t.Errors != nil {
		return t.Errors
	}
	return nil
}

// GetInAckMessages retrieves the value of the leaf InAckMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InAckMessages is set, it can
// safely use t.GetInAckMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InAckMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInAckMessages() uint64 {
	if t == nil || t.InAckMessages == nil {
		return 0
	}
	return *t.InAckMessages
}

// GetInHelloMessages retrieves the value of the leaf InHelloMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InHelloMessages is set, it can
// safely use t.GetInHelloMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InHelloMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInHelloMessages() uint64 {
	if t == nil || t.InHelloMessages == nil {
		return 0
	}
	return *t.InHelloMessages
}

// GetInPathErrorMessages retrieves the value of the leaf InPathErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPathErrorMessages is set, it can
// safely use t.GetInPathErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPathErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInPathErrorMessages() uint64 {
	if t == nil || t.InPathErrorMessages == nil {
		return 0
	}
	return *t.InPathErrorMessages
}

// GetInPathMessages retrieves the value of the leaf InPathMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPathMessages is set, it can
// safely use t.GetInPathMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPathMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInPathMessages() uint64 {
	if t == nil || t.InPathMessages == nil {
		return 0
	}
	return *t.InPathMessages
}

// GetInPathTearMessages retrieves the value of the leaf InPathTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPathTearMessages is set, it can
// safely use t.GetInPathTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPathTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInPathTearMessages() uint64 {
	if t == nil || t.InPathTearMessages == nil {
		return 0
	}
	return *t.InPathTearMessages
}

// GetInReservationErrorMessages retrieves the value of the leaf InReservationErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InReservationErrorMessages is set, it can
// safely use t.GetInReservationErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InReservationErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInReservationErrorMessages() uint64 {
	if t == nil || t.InReservationErrorMessages == nil {
		return 0
	}
	return *t.InReservationErrorMessages
}

// GetInReservationMessages retrieves the value of the leaf InReservationMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InReservationMessages is set, it can
// safely use t.GetInReservationMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InReservationMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInReservationMessages() uint64 {
	if t == nil || t.InReservationMessages == nil {
		return 0
	}
	return *t.InReservationMessages
}

// GetInReservationTearMessages retrieves the value of the leaf InReservationTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InReservationTearMessages is set, it can
// safely use t.GetInReservationTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InReservationTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInReservationTearMessages() uint64 {
	if t == nil || t.InReservationTearMessages == nil {
		return 0
	}
	return *t.InReservationTearMessages
}

// GetInSrefreshMessages retrieves the value of the leaf InSrefreshMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InSrefreshMessages is set, it can
// safely use t.GetInSrefreshMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InSrefreshMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetInSrefreshMessages() uint64 {
	if t == nil || t.InSrefreshMessages == nil {
		return 0
	}
	return *t.InSrefreshMessages
}

// GetOutAckMessages retrieves the value of the leaf OutAckMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutAckMessages is set, it can
// safely use t.GetOutAckMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutAckMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutAckMessages() uint64 {
	if t == nil || t.OutAckMessages == nil {
		return 0
	}
	return *t.OutAckMessages
}

// GetOutHelloMessages retrieves the value of the leaf OutHelloMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutHelloMessages is set, it can
// safely use t.GetOutHelloMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutHelloMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutHelloMessages() uint64 {
	if t == nil || t.OutHelloMessages == nil {
		return 0
	}
	return *t.OutHelloMessages
}

// GetOutPathErrorMessages retrieves the value of the leaf OutPathErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPathErrorMessages is set, it can
// safely use t.GetOutPathErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPathErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutPathErrorMessages() uint64 {
	if t == nil || t.OutPathErrorMessages == nil {
		return 0
	}
	return *t.OutPathErrorMessages
}

// GetOutPathMessages retrieves the value of the leaf OutPathMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPathMessages is set, it can
// safely use t.GetOutPathMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPathMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutPathMessages() uint64 {
	if t == nil || t.OutPathMessages == nil {
		return 0
	}
	return *t.OutPathMessages
}

// GetOutPathTearMessages retrieves the value of the leaf OutPathTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPathTearMessages is set, it can
// safely use t.GetOutPathTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPathTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutPathTearMessages() uint64 {
	if t == nil || t.OutPathTearMessages == nil {
		return 0
	}
	return *t.OutPathTearMessages
}

// GetOutReservationErrorMessages retrieves the value of the leaf OutReservationErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutReservationErrorMessages is set, it can
// safely use t.GetOutReservationErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutReservationErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutReservationErrorMessages() uint64 {
	if t == nil || t.OutReservationErrorMessages == nil {
		return 0
	}
	return *t.OutReservationErrorMessages
}

// GetOutReservationMessages retrieves the value of the leaf OutReservationMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutReservationMessages is set, it can
// safely use t.GetOutReservationMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutReservationMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutReservationMessages() uint64 {
	if t == nil || t.OutReservationMessages == nil {
		return 0
	}
	return *t.OutReservationMessages
}

// GetOutReservationTearMessages retrieves the value of the leaf OutReservationTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutReservationTearMessages is set, it can
// safely use t.GetOutReservationTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutReservationTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutReservationTearMessages() uint64 {
	if t == nil || t.OutReservationTearMessages == nil {
		return 0
	}
	return *t.OutReservationTearMessages
}

// GetOutSrefreshMessages retrieves the value of the leaf OutSrefreshMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutSrefreshMessages is set, it can
// safely use t.GetOutSrefreshMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutSrefreshMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetOutSrefreshMessages() uint64 {
	if t == nil || t.OutSrefreshMessages == nil {
		return 0
	}
	return *t.OutSrefreshMessages
}

// GetPathTimeouts retrieves the value of the leaf PathTimeouts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathTimeouts is set, it can
// safely use t.GetPathTimeouts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathTimeouts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetPathTimeouts() uint64 {
	if t == nil || t.PathTimeouts == nil {
		return 0
	}
	return *t.PathTimeouts
}

// GetRateLimitedMessages retrieves the value of the leaf RateLimitedMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateLimitedMessages is set, it can
// safely use t.GetRateLimitedMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateLimitedMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetRateLimitedMessages() uint64 {
	if t == nil || t.RateLimitedMessages == nil {
		return 0
	}
	return *t.RateLimitedMessages
}

// GetReservationTimeouts retrieves the value of the leaf ReservationTimeouts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReservationTimeouts is set, it can
// safely use t.GetReservationTimeouts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReservationTimeouts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) GetReservationTimeouts() uint64 {
	if t == nil || t.ReservationTimeouts == nil {
		return 0
	}
	return *t.ReservationTimeouts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Errors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/global/state/counters/errors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationFail  *uint64           `path:"authentication-fail" module:"openconfig-network-instance"`
	ΛAuthenticationFail []ygot.Annotation `path:"@authentication-fail" ygotAnnotation:"true"`
	BadChecksum         *uint64           `path:"bad-checksum" module:"openconfig-network-instance"`
	ΛBadChecksum        []ygot.Annotation `path:"@bad-checksum" ygotAnnotation:"true"`
	BadPacketFormat     *uint64           `path:"bad-packet-format" module:"openconfig-network-instance"`
	ΛBadPacketFormat    []ygot.Annotation `path:"@bad-packet-format" ygotAnnotation:"true"`
	BadPacketLength     *uint64           `path:"bad-packet-length" module:"openconfig-network-instance"`
	ΛBadPacketLength    []ygot.Annotation `path:"@bad-packet-length" ygotAnnotation:"true"`
	OutOfOrder          *uint64           `path:"out-of-order" module:"openconfig-network-instance"`
	ΛOutOfOrder         []ygot.Annotation `path:"@out-of-order" ygotAnnotation:"true"`
	ReceivedNack        *uint64           `path:"received-nack" module:"openconfig-network-instance"`
	ΛReceivedNack       []ygot.Annotation `path:"@received-nack" ygotAnnotation:"true"`
	TransmitFailure     *uint64           `path:"transmit-failure" module:"openconfig-network-instance"`
	ΛTransmitFailure    []ygot.Annotation `path:"@transmit-failure" ygotAnnotation:"true"`
	TransmitQueueFull   *uint64           `path:"transmit-queue-full" module:"openconfig-network-instance"`
	ΛTransmitQueueFull  []ygot.Annotation `path:"@transmit-queue-full" ygotAnnotation:"true"`
	UnknownAck          *uint64           `path:"unknown-ack" module:"openconfig-network-instance"`
	ΛUnknownAck         []ygot.Annotation `path:"@unknown-ack" ygotAnnotation:"true"`
	UnknownNack         *uint64           `path:"unknown-nack" module:"openconfig-network-instance"`
	ΛUnknownNack        []ygot.Annotation `path:"@unknown-nack" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) IsYANGGoStruct() {
}

// GetAuthenticationFail retrieves the value of the leaf AuthenticationFail from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationFail is set, it can
// safely use t.GetAuthenticationFail() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationFail == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetAuthenticationFail() uint64 {
	if t == nil || t.AuthenticationFail == nil {
		return 0
	}
	return *t.AuthenticationFail
}

// GetBadChecksum retrieves the value of the leaf BadChecksum from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadChecksum is set, it can
// safely use t.GetBadChecksum() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadChecksum == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetBadChecksum() uint64 {
	if t == nil || t.BadChecksum == nil {
		return 0
	}
	return *t.BadChecksum
}

// GetBadPacketFormat retrieves the value of the leaf BadPacketFormat from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadPacketFormat is set, it can
// safely use t.GetBadPacketFormat() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadPacketFormat == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetBadPacketFormat() uint64 {
	if t == nil || t.BadPacketFormat == nil {
		return 0
	}
	return *t.BadPacketFormat
}

// GetBadPacketLength retrieves the value of the leaf BadPacketLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadPacketLength is set, it can
// safely use t.GetBadPacketLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadPacketLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetBadPacketLength() uint64 {
	if t == nil || t.BadPacketLength == nil {
		return 0
	}
	return *t.BadPacketLength
}

// GetOutOfOrder retrieves the value of the leaf OutOfOrder from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOfOrder is set, it can
// safely use t.GetOutOfOrder() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOfOrder == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetOutOfOrder() uint64 {
	if t == nil || t.OutOfOrder == nil {
		return 0
	}
	return *t.OutOfOrder
}

// GetReceivedNack retrieves the value of the leaf ReceivedNack from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceivedNack is set, it can
// safely use t.GetReceivedNack() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceivedNack == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetReceivedNack() uint64 {
	if t == nil || t.ReceivedNack == nil {
		return 0
	}
	return *t.ReceivedNack
}

// GetTransmitFailure retrieves the value of the leaf TransmitFailure from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TransmitFailure is set, it can
// safely use t.GetTransmitFailure() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TransmitFailure == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetTransmitFailure() uint64 {
	if t == nil || t.TransmitFailure == nil {
		return 0
	}
	return *t.TransmitFailure
}

// GetTransmitQueueFull retrieves the value of the leaf TransmitQueueFull from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TransmitQueueFull is set, it can
// safely use t.GetTransmitQueueFull() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TransmitQueueFull == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetTransmitQueueFull() uint64 {
	if t == nil || t.TransmitQueueFull == nil {
		return 0
	}
	return *t.TransmitQueueFull
}

// GetUnknownAck retrieves the value of the leaf UnknownAck from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnknownAck is set, it can
// safely use t.GetUnknownAck() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnknownAck == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetUnknownAck() uint64 {
	if t == nil || t.UnknownAck == nil {
		return 0
	}
	return *t.UnknownAck
}

// GetUnknownNack retrieves the value of the leaf UnknownNack from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnknownNack is set, it can
// safely use t.GetUnknownNack() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnknownNack == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) GetUnknownNack() uint64 {
	if t == nil || t.UnknownNack == nil {
		return 0
	}
	return *t.UnknownNack
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Global_State_Counters_Errors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes struct {
	ΛMetadata  []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                                   `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface struct {
	ΛMetadata              []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Authentication         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication        `path:"authentication" module:"openconfig-network-instance"`
	ΛAuthentication        []ygot.Annotation                                                                                                                              `path:"@authentication" ygotAnnotation:"true"`
	BandwidthReservations  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations `path:"bandwidth-reservations" module:"openconfig-network-instance"`
	ΛBandwidthReservations []ygot.Annotation                                                                                                                              `path:"@bandwidth-reservations" ygotAnnotation:"true"`
	Config                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config                `path:"config" module:"openconfig-network-instance"`
	ΛConfig                []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	Hellos                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos                `path:"hellos" module:"openconfig-network-instance"`
	ΛHellos                []ygot.Annotation                                                                                                                              `path:"@hellos" ygotAnnotation:"true"`
	InterfaceId            *string                                                                                                                                        `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId           []ygot.Annotation                                                                                                                              `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef          `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef          []ygot.Annotation                                                                                                                              `path:"@interface-ref" ygotAnnotation:"true"`
	Protection             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection            `path:"protection" module:"openconfig-network-instance"`
	ΛProtection            []ygot.Annotation                                                                                                                              `path:"@protection" ygotAnnotation:"true"`
	State                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State                 `path:"state" module:"openconfig-network-instance"`
	ΛState                 []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	Subscription           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription          `path:"subscription" module:"openconfig-network-instance"`
	ΛSubscription          []ygot.Annotation                                                                                                                              `path:"@subscription" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) IsYANGGoStruct() {
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication{}
	return t.Authentication
}

// GetOrCreateBandwidthReservations retrieves the value of the BandwidthReservations field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateBandwidthReservations() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations {
	if t.BandwidthReservations != nil {
		return t.BandwidthReservations
	}
	t.BandwidthReservations = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations{}
	return t.BandwidthReservations
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config{}
	return t.Config
}

// GetOrCreateHellos retrieves the value of the Hellos field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateHellos() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos {
	if t.Hellos != nil {
		return t.Hellos
	}
	t.Hellos = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos{}
	return t.Hellos
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateProtection retrieves the value of the Protection field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateProtection() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection {
	if t.Protection != nil {
		return t.Protection
	}
	t.Protection = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection{}
	return t.Protection
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State{}
	return t.State
}

// GetOrCreateSubscription retrieves the value of the Subscription field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetOrCreateSubscription() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription {
	if t.Subscription != nil {
		return t.Subscription
	}
	t.Subscription = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription{}
	return t.Subscription
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetBandwidthReservations returns the value of the BandwidthReservations struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field BandwidthReservations is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetBandwidthReservations() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations {
	if t != nil && t.BandwidthReservations != nil {
		return t.BandwidthReservations
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetHellos returns the value of the Hellos struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field Hellos is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetHellos() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos {
	if t != nil && t.Hellos != nil {
		return t.Hellos
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetProtection returns the value of the Protection struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field Protection is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetProtection() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection {
	if t != nil && t.Protection != nil {
		return t.Protection
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubscription returns the value of the Subscription struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface. If the receiver or the field Subscription is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetSubscription() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription {
	if t != nil && t.Subscription != nil {
		return t.Subscription
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Authentication.PopulateDefaults()
	t.BandwidthReservations.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.Hellos.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.Protection.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Subscription.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/authentication/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config struct {
	ΛMetadata           []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	AuthenticationKey   *string                              `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey  []ygot.Annotation                    `path:"@authentication-key" ygotAnnotation:"true"`
	AuthenticationType  E_OpenconfigMplsTypes_RSVP_AUTH_TYPE `path:"authentication-type" module:"openconfig-network-instance"`
	ΛAuthenticationType []ygot.Annotation                    `path:"@authentication-type" ygotAnnotation:"true"`
	Enable              *bool                                `path:"enable" module:"openconfig-network-instance"`
	ΛEnable             []ygot.Annotation                    `path:"@enable" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetAuthenticationType retrieves the value of the leaf AuthenticationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationType is set, it can
// safely use t.GetAuthenticationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) GetAuthenticationType() E_OpenconfigMplsTypes_RSVP_AUTH_TYPE {
	if t == nil || t.AuthenticationType == 0 {
		return 0
	}
	return t.AuthenticationType
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State struct {
	ΛMetadata           []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	AuthenticationKey   *string                              `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey  []ygot.Annotation                    `path:"@authentication-key" ygotAnnotation:"true"`
	AuthenticationType  E_OpenconfigMplsTypes_RSVP_AUTH_TYPE `path:"authentication-type" module:"openconfig-network-instance"`
	ΛAuthenticationType []ygot.Annotation                    `path:"@authentication-type" ygotAnnotation:"true"`
	Enable              *bool                                `path:"enable" module:"openconfig-network-instance"`
	ΛEnable             []ygot.Annotation                    `path:"@enable" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetAuthenticationType retrieves the value of the leaf AuthenticationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationType is set, it can
// safely use t.GetAuthenticationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) GetAuthenticationType() E_OpenconfigMplsTypes_RSVP_AUTH_TYPE {
	if t == nil || t.AuthenticationType == 0 {
		return 0
	}
	return t.AuthenticationType
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Authentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/bandwidth-reservations YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations struct {
	ΛMetadata             []ygot.Annotation                                                                                                                                                                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	BandwidthReservation  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation `path:"bandwidth-reservation" module:"openconfig-network-instance"`
	ΛBandwidthReservation []ygot.Annotation                                                                                                                                                                                                                                                                                                                                               `path:"@bandwidth-reservation" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) IsYANGGoStruct() {
}

// NewBandwidthReservation creates a new entry in the BandwidthReservation list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) NewBandwidthReservation(Priority OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthReservation == nil {
		t.BandwidthReservation = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation)
	}

	key := Priority

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BandwidthReservation[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BandwidthReservation", key)
	}

	t.BandwidthReservation[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation{
		Priority: Priority,
	}

	return t.BandwidthReservation[key], nil
}

// RenameBandwidthReservation renames an entry in the list BandwidthReservation within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) RenameBandwidthReservation(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union) error {
	if _, ok := t.BandwidthReservation[newK]; ok {
		return fmt.Errorf("key %v already exists in BandwidthReservation", newK)
	}

	e, ok := t.BandwidthReservation[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in BandwidthReservation", oldK)
	}
	e.Priority = newK

	t.BandwidthReservation[newK] = e
	delete(t.BandwidthReservation, oldK)
	return nil
}

// GetOrCreateBandwidthReservationMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) GetOrCreateBandwidthReservationMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation {
	if t.BandwidthReservation == nil {
		t.BandwidthReservation = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation)
	}
	return t.BandwidthReservation
}

// GetOrCreateBandwidthReservation retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) GetOrCreateBandwidthReservation(Priority OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation {

	key := Priority

	if v, ok := t.BandwidthReservation[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewBandwidthReservation(Priority)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateBandwidthReservation got unexpected error: %v", err))
	}
	return v
}

// GetBandwidthReservation retrieves the value with the specified key from
// the BandwidthReservation map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) GetBandwidthReservation(Priority OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation {

	if t == nil {
		return nil
	}

	key := Priority

	if lm, ok := t.BandwidthReservation[key]; ok {
		return lm
	}
	return nil
}

// AppendBandwidthReservation appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation struct to the
// list BandwidthReservation of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) AppendBandwidthReservation(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) error {
	key := v.Priority

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthReservation == nil {
		t.BandwidthReservation = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation)
	}

	if _, ok := t.BandwidthReservation[key]; ok {
		return fmt.Errorf("duplicate key for list BandwidthReservation %v", key)
	}

	t.BandwidthReservation[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.BandwidthReservation {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/bandwidth-reservations/bandwidth-reservation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Priority  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union `path:"priority" module:"openconfig-network-instance"`
	ΛPriority []ygot.Annotation                                                                                                                                                                       `path:"@priority" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State               `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) GetPriority() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union {
	if t == nil || t.Priority == nil {
		return nil
	}
	return t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"priority": t.Priority,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/bandwidth-reservations/bandwidth-reservation/priority within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum, UnionUint8].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum, UnionUint8]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union ensures that UnionUint8
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union interface.
func (UnionUint8) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum, uint8]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/bandwidth-reservations/bandwidth-reservation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	ActiveReservationsCount  *uint64                                                                                                                                                                                 `path:"active-reservations-count" module:"openconfig-network-instance"`
	ΛActiveReservationsCount []ygot.Annotation                                                                                                                                                                       `path:"@active-reservations-count" ygotAnnotation:"true"`
	AvailableBandwidth       *uint64                                                                                                                                                                                 `path:"available-bandwidth" module:"openconfig-network-instance"`
	ΛAvailableBandwidth      []ygot.Annotation                                                                                                                                                                       `path:"@available-bandwidth" ygotAnnotation:"true"`
	HighwaterMark            *uint64                                                                                                                                                                                 `path:"highwater-mark" module:"openconfig-network-instance"`
	ΛHighwaterMark           []ygot.Annotation                                                                                                                                                                       `path:"@highwater-mark" ygotAnnotation:"true"`
	Priority                 OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union `path:"priority" module:"openconfig-network-instance"`
	ΛPriority                []ygot.Annotation                                                                                                                                                                       `path:"@priority" ygotAnnotation:"true"`
	ReservedBandwidth        *uint64                                                                                                                                                                                 `path:"reserved-bandwidth" module:"openconfig-network-instance"`
	ΛReservedBandwidth       []ygot.Annotation                                                                                                                                                                       `path:"@reserved-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) IsYANGGoStruct() {
}

// GetActiveReservationsCount retrieves the value of the leaf ActiveReservationsCount from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ActiveReservationsCount is set, it can
// safely use t.GetActiveReservationsCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ActiveReservationsCount == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) GetActiveReservationsCount() uint64 {
	if t == nil || t.ActiveReservationsCount == nil {
		return 0
	}
	return *t.ActiveReservationsCount
}

// GetAvailableBandwidth retrieves the value of the leaf AvailableBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AvailableBandwidth is set, it can
// safely use t.GetAvailableBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AvailableBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) GetAvailableBandwidth() uint64 {
	if t == nil || t.AvailableBandwidth == nil {
		return 0
	}
	return *t.AvailableBandwidth
}

// GetHighwaterMark retrieves the value of the leaf HighwaterMark from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HighwaterMark is set, it can
// safely use t.GetHighwaterMark() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HighwaterMark == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) GetHighwaterMark() uint64 {
	if t == nil || t.HighwaterMark == nil {
		return 0
	}
	return *t.HighwaterMark
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) GetPriority() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union {
	if t == nil || t.Priority == nil {
		return nil
	}
	return t.Priority
}

// GetReservedBandwidth retrieves the value of the leaf ReservedBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReservedBandwidth is set, it can
// safely use t.GetReservedBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReservedBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) GetReservedBandwidth() uint64 {
	if t == nil || t.ReservedBandwidth == nil {
		return 0
	}
	return *t.ReservedBandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum, uint8]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InterfaceId  *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config) IsYANGGoStruct() {
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/hellos YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos struct {
	ΛMetadata []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/hellos/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloInterval     *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval    []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	RefreshReduction  *bool             `path:"refresh-reduction" module:"openconfig-network-instance"`
	ΛRefreshReduction []ygot.Annotation `path:"@refresh-reduction" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) IsYANGGoStruct() {
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 9000
	}
	return *t.HelloInterval
}

// GetRefreshReduction retrieves the value of the leaf RefreshReduction from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RefreshReduction is set, it can
// safely use t.GetRefreshReduction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RefreshReduction == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) GetRefreshReduction() bool {
	if t == nil || t.RefreshReduction == nil {
		return true
	}
	return *t.RefreshReduction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.HelloInterval == nil {
		var v uint16 = 9000
		t.HelloInterval = &v
	}
	if t.RefreshReduction == nil {
		var v bool = true
		t.RefreshReduction = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/hellos/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloInterval     *uint16           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval    []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	RefreshReduction  *bool             `path:"refresh-reduction" module:"openconfig-network-instance"`
	ΛRefreshReduction []ygot.Annotation `path:"@refresh-reduction" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) IsYANGGoStruct() {
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) GetHelloInterval() uint16 {
	if t == nil || t.HelloInterval == nil {
		return 9000
	}
	return *t.HelloInterval
}

// GetRefreshReduction retrieves the value of the leaf RefreshReduction from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RefreshReduction is set, it can
// safely use t.GetRefreshReduction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RefreshReduction == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) GetRefreshReduction() bool {
	if t == nil || t.RefreshReduction == nil {
		return true
	}
	return *t.RefreshReduction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.HelloInterval == nil {
		var v uint16 = 9000
		t.HelloInterval = &v
	}
	if t.RefreshReduction == nil {
		var v bool = true
		t.RefreshReduction = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Hellos_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/protection YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection struct {
	ΛMetadata []ygot.Annotation                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/protection/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config struct {
	ΛMetadata                     []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	BypassOptimizeInterval        *uint16                               `path:"bypass-optimize-interval" module:"openconfig-network-instance"`
	ΛBypassOptimizeInterval       []ygot.Annotation                     `path:"@bypass-optimize-interval" ygotAnnotation:"true"`
	LinkProtectionStyleRequested  E_OpenconfigMplsTypes_PROTECTION_TYPE `path:"link-protection-style-requested" module:"openconfig-network-instance"`
	ΛLinkProtectionStyleRequested []ygot.Annotation                     `path:"@link-protection-style-requested" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) IsYANGGoStruct() {
}

// GetBypassOptimizeInterval retrieves the value of the leaf BypassOptimizeInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BypassOptimizeInterval is set, it can
// safely use t.GetBypassOptimizeInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BypassOptimizeInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) GetBypassOptimizeInterval() uint16 {
	if t == nil || t.BypassOptimizeInterval == nil {
		return 0
	}
	return *t.BypassOptimizeInterval
}

// GetLinkProtectionStyleRequested retrieves the value of the leaf LinkProtectionStyleRequested from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkProtectionStyleRequested is set, it can
// safely use t.GetLinkProtectionStyleRequested() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkProtectionStyleRequested == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) GetLinkProtectionStyleRequested() E_OpenconfigMplsTypes_PROTECTION_TYPE {
	if t == nil || t.LinkProtectionStyleRequested == 0 {
		return OpenconfigMplsTypes_PROTECTION_TYPE_LINK_NODE_PROTECTION_REQUESTED
	}
	return t.LinkProtectionStyleRequested
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LinkProtectionStyleRequested == 0 {
		t.LinkProtectionStyleRequested = OpenconfigMplsTypes_PROTECTION_TYPE_LINK_NODE_PROTECTION_REQUESTED
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/protection/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State struct {
	ΛMetadata                     []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	BypassOptimizeInterval        *uint16                               `path:"bypass-optimize-interval" module:"openconfig-network-instance"`
	ΛBypassOptimizeInterval       []ygot.Annotation                     `path:"@bypass-optimize-interval" ygotAnnotation:"true"`
	LinkProtectionStyleRequested  E_OpenconfigMplsTypes_PROTECTION_TYPE `path:"link-protection-style-requested" module:"openconfig-network-instance"`
	ΛLinkProtectionStyleRequested []ygot.Annotation                     `path:"@link-protection-style-requested" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) IsYANGGoStruct() {
}

// GetBypassOptimizeInterval retrieves the value of the leaf BypassOptimizeInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BypassOptimizeInterval is set, it can
// safely use t.GetBypassOptimizeInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BypassOptimizeInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) GetBypassOptimizeInterval() uint16 {
	if t == nil || t.BypassOptimizeInterval == nil {
		return 0
	}
	return *t.BypassOptimizeInterval
}

// GetLinkProtectionStyleRequested retrieves the value of the leaf LinkProtectionStyleRequested from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkProtectionStyleRequested is set, it can
// safely use t.GetLinkProtectionStyleRequested() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkProtectionStyleRequested == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) GetLinkProtectionStyleRequested() E_OpenconfigMplsTypes_PROTECTION_TYPE {
	if t == nil || t.LinkProtectionStyleRequested == 0 {
		return OpenconfigMplsTypes_PROTECTION_TYPE_LINK_NODE_PROTECTION_REQUESTED
	}
	return t.LinkProtectionStyleRequested
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LinkProtectionStyleRequested == 0 {
		t.LinkProtectionStyleRequested = OpenconfigMplsTypes_PROTECTION_TYPE_LINK_NODE_PROTECTION_REQUESTED
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Protection_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State struct {
	ΛMetadata         []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Counters          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters         []ygot.Annotation                                                                                                                       `path:"@counters" ygotAnnotation:"true"`
	InterfaceId       *string                                                                                                                                 `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId      []ygot.Annotation                                                                                                                       `path:"@interface-id" ygotAnnotation:"true"`
	MaxLinkBandwidth  *uint64                                                                                                                                 `path:"max-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxLinkBandwidth []ygot.Annotation                                                                                                                       `path:"@max-link-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetMaxLinkBandwidth retrieves the value of the leaf MaxLinkBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxLinkBandwidth is set, it can
// safely use t.GetMaxLinkBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxLinkBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) GetMaxLinkBandwidth() uint64 {
	if t == nil || t.MaxLinkBandwidth == nil {
		return 0
	}
	return *t.MaxLinkBandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters struct {
	ΛMetadata                    []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Errors                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors `path:"errors" module:"openconfig-network-instance"`
	ΛErrors                      []ygot.Annotation                                                                                                                              `path:"@errors" ygotAnnotation:"true"`
	InAckMessages                *uint64                                                                                                                                        `path:"in-ack-messages" module:"openconfig-network-instance"`
	ΛInAckMessages               []ygot.Annotation                                                                                                                              `path:"@in-ack-messages" ygotAnnotation:"true"`
	InHelloMessages              *uint64                                                                                                                                        `path:"in-hello-messages" module:"openconfig-network-instance"`
	ΛInHelloMessages             []ygot.Annotation                                                                                                                              `path:"@in-hello-messages" ygotAnnotation:"true"`
	InPathErrorMessages          *uint64                                                                                                                                        `path:"in-path-error-messages" module:"openconfig-network-instance"`
	ΛInPathErrorMessages         []ygot.Annotation                                                                                                                              `path:"@in-path-error-messages" ygotAnnotation:"true"`
	InPathMessages               *uint64                                                                                                                                        `path:"in-path-messages" module:"openconfig-network-instance"`
	ΛInPathMessages              []ygot.Annotation                                                                                                                              `path:"@in-path-messages" ygotAnnotation:"true"`
	InPathTearMessages           *uint64                                                                                                                                        `path:"in-path-tear-messages" module:"openconfig-network-instance"`
	ΛInPathTearMessages          []ygot.Annotation                                                                                                                              `path:"@in-path-tear-messages" ygotAnnotation:"true"`
	InReservationErrorMessages   *uint64                                                                                                                                        `path:"in-reservation-error-messages" module:"openconfig-network-instance"`
	ΛInReservationErrorMessages  []ygot.Annotation                                                                                                                              `path:"@in-reservation-error-messages" ygotAnnotation:"true"`
	InReservationMessages        *uint64                                                                                                                                        `path:"in-reservation-messages" module:"openconfig-network-instance"`
	ΛInReservationMessages       []ygot.Annotation                                                                                                                              `path:"@in-reservation-messages" ygotAnnotation:"true"`
	InReservationTearMessages    *uint64                                                                                                                                        `path:"in-reservation-tear-messages" module:"openconfig-network-instance"`
	ΛInReservationTearMessages   []ygot.Annotation                                                                                                                              `path:"@in-reservation-tear-messages" ygotAnnotation:"true"`
	InSrefreshMessages           *uint64                                                                                                                                        `path:"in-srefresh-messages" module:"openconfig-network-instance"`
	ΛInSrefreshMessages          []ygot.Annotation                                                                                                                              `path:"@in-srefresh-messages" ygotAnnotation:"true"`
	OutAckMessages               *uint64                                                                                                                                        `path:"out-ack-messages" module:"openconfig-network-instance"`
	ΛOutAckMessages              []ygot.Annotation                                                                                                                              `path:"@out-ack-messages" ygotAnnotation:"true"`
	OutHelloMessages             *uint64                                                                                                                                        `path:"out-hello-messages" module:"openconfig-network-instance"`
	ΛOutHelloMessages            []ygot.Annotation                                                                                                                              `path:"@out-hello-messages" ygotAnnotation:"true"`
	OutPathErrorMessages         *uint64                                                                                                                                        `path:"out-path-error-messages" module:"openconfig-network-instance"`
	ΛOutPathErrorMessages        []ygot.Annotation                                                                                                                              `path:"@out-path-error-messages" ygotAnnotation:"true"`
	OutPathMessages              *uint64                                                                                                                                        `path:"out-path-messages" module:"openconfig-network-instance"`
	ΛOutPathMessages             []ygot.Annotation                                                                                                                              `path:"@out-path-messages" ygotAnnotation:"true"`
	OutPathTearMessages          *uint64                                                                                                                                        `path:"out-path-tear-messages" module:"openconfig-network-instance"`
	ΛOutPathTearMessages         []ygot.Annotation                                                                                                                              `path:"@out-path-tear-messages" ygotAnnotation:"true"`
	OutReservationErrorMessages  *uint64                                                                                                                                        `path:"out-reservation-error-messages" module:"openconfig-network-instance"`
	ΛOutReservationErrorMessages []ygot.Annotation                                                                                                                              `path:"@out-reservation-error-messages" ygotAnnotation:"true"`
	OutReservationMessages       *uint64                                                                                                                                        `path:"out-reservation-messages" module:"openconfig-network-instance"`
	ΛOutReservationMessages      []ygot.Annotation                                                                                                                              `path:"@out-reservation-messages" ygotAnnotation:"true"`
	OutReservationTearMessages   *uint64                                                                                                                                        `path:"out-reservation-tear-messages" module:"openconfig-network-instance"`
	ΛOutReservationTearMessages  []ygot.Annotation                                                                                                                              `path:"@out-reservation-tear-messages" ygotAnnotation:"true"`
	OutSrefreshMessages          *uint64                                                                                                                                        `path:"out-srefresh-messages" module:"openconfig-network-instance"`
	ΛOutSrefreshMessages         []ygot.Annotation                                                                                                                              `path:"@out-srefresh-messages" ygotAnnotation:"true"`
	RateLimitedMessages          *uint64                                                                                                                                        `path:"rate-limited-messages" module:"openconfig-network-instance"`
	ΛRateLimitedMessages         []ygot.Annotation                                                                                                                              `path:"@rate-limited-messages" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) IsYANGGoStruct() {
}

// GetOrCreateErrors retrieves the value of the Errors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOrCreateErrors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors {
	if t.Errors != nil {
		return t.Errors
	}
	t.Errors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors{}
	return t.Errors
}

// GetErrors returns the value of the Errors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters. If the receiver or the field Errors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetErrors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors {
	if t != nil && t.Errors != nil {
		return t.Errors
	}
	return nil
}

// GetInAckMessages retrieves the value of the leaf InAckMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InAckMessages is set, it can
// safely use t.GetInAckMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InAckMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInAckMessages() uint64 {
	if t == nil || t.InAckMessages == nil {
		return 0
	}
	return *t.InAckMessages
}

// GetInHelloMessages retrieves the value of the leaf InHelloMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InHelloMessages is set, it can
// safely use t.GetInHelloMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InHelloMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInHelloMessages() uint64 {
	if t == nil || t.InHelloMessages == nil {
		return 0
	}
	return *t.InHelloMessages
}

// GetInPathErrorMessages retrieves the value of the leaf InPathErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPathErrorMessages is set, it can
// safely use t.GetInPathErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPathErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInPathErrorMessages() uint64 {
	if t == nil || t.InPathErrorMessages == nil {
		return 0
	}
	return *t.InPathErrorMessages
}

// GetInPathMessages retrieves the value of the leaf InPathMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPathMessages is set, it can
// safely use t.GetInPathMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPathMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInPathMessages() uint64 {
	if t == nil || t.InPathMessages == nil {
		return 0
	}
	return *t.InPathMessages
}

// GetInPathTearMessages retrieves the value of the leaf InPathTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPathTearMessages is set, it can
// safely use t.GetInPathTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPathTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInPathTearMessages() uint64 {
	if t == nil || t.InPathTearMessages == nil {
		return 0
	}
	return *t.InPathTearMessages
}

// GetInReservationErrorMessages retrieves the value of the leaf InReservationErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InReservationErrorMessages is set, it can
// safely use t.GetInReservationErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InReservationErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInReservationErrorMessages() uint64 {
	if t == nil || t.InReservationErrorMessages == nil {
		return 0
	}
	return *t.InReservationErrorMessages
}

// GetInReservationMessages retrieves the value of the leaf InReservationMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InReservationMessages is set, it can
// safely use t.GetInReservationMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InReservationMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInReservationMessages() uint64 {
	if t == nil || t.InReservationMessages == nil {
		return 0
	}
	return *t.InReservationMessages
}

// GetInReservationTearMessages retrieves the value of the leaf InReservationTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InReservationTearMessages is set, it can
// safely use t.GetInReservationTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InReservationTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInReservationTearMessages() uint64 {
	if t == nil || t.InReservationTearMessages == nil {
		return 0
	}
	return *t.InReservationTearMessages
}

// GetInSrefreshMessages retrieves the value of the leaf InSrefreshMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InSrefreshMessages is set, it can
// safely use t.GetInSrefreshMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InSrefreshMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetInSrefreshMessages() uint64 {
	if t == nil || t.InSrefreshMessages == nil {
		return 0
	}
	return *t.InSrefreshMessages
}

// GetOutAckMessages retrieves the value of the leaf OutAckMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutAckMessages is set, it can
// safely use t.GetOutAckMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutAckMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutAckMessages() uint64 {
	if t == nil || t.OutAckMessages == nil {
		return 0
	}
	return *t.OutAckMessages
}

// GetOutHelloMessages retrieves the value of the leaf OutHelloMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutHelloMessages is set, it can
// safely use t.GetOutHelloMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutHelloMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutHelloMessages() uint64 {
	if t == nil || t.OutHelloMessages == nil {
		return 0
	}
	return *t.OutHelloMessages
}

// GetOutPathErrorMessages retrieves the value of the leaf OutPathErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPathErrorMessages is set, it can
// safely use t.GetOutPathErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPathErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutPathErrorMessages() uint64 {
	if t == nil || t.OutPathErrorMessages == nil {
		return 0
	}
	return *t.OutPathErrorMessages
}

// GetOutPathMessages retrieves the value of the leaf OutPathMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPathMessages is set, it can
// safely use t.GetOutPathMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPathMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutPathMessages() uint64 {
	if t == nil || t.OutPathMessages == nil {
		return 0
	}
	return *t.OutPathMessages
}

// GetOutPathTearMessages retrieves the value of the leaf OutPathTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPathTearMessages is set, it can
// safely use t.GetOutPathTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPathTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutPathTearMessages() uint64 {
	if t == nil || t.OutPathTearMessages == nil {
		return 0
	}
	return *t.OutPathTearMessages
}

// GetOutReservationErrorMessages retrieves the value of the leaf OutReservationErrorMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutReservationErrorMessages is set, it can
// safely use t.GetOutReservationErrorMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutReservationErrorMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutReservationErrorMessages() uint64 {
	if t == nil || t.OutReservationErrorMessages == nil {
		return 0
	}
	return *t.OutReservationErrorMessages
}

// GetOutReservationMessages retrieves the value of the leaf OutReservationMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutReservationMessages is set, it can
// safely use t.GetOutReservationMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutReservationMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutReservationMessages() uint64 {
	if t == nil || t.OutReservationMessages == nil {
		return 0
	}
	return *t.OutReservationMessages
}

// GetOutReservationTearMessages retrieves the value of the leaf OutReservationTearMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutReservationTearMessages is set, it can
// safely use t.GetOutReservationTearMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutReservationTearMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutReservationTearMessages() uint64 {
	if t == nil || t.OutReservationTearMessages == nil {
		return 0
	}
	return *t.OutReservationTearMessages
}

// GetOutSrefreshMessages retrieves the value of the leaf OutSrefreshMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutSrefreshMessages is set, it can
// safely use t.GetOutSrefreshMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutSrefreshMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetOutSrefreshMessages() uint64 {
	if t == nil || t.OutSrefreshMessages == nil {
		return 0
	}
	return *t.OutSrefreshMessages
}

// GetRateLimitedMessages retrieves the value of the leaf RateLimitedMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateLimitedMessages is set, it can
// safely use t.GetRateLimitedMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateLimitedMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) GetRateLimitedMessages() uint64 {
	if t == nil || t.RateLimitedMessages == nil {
		return 0
	}
	return *t.RateLimitedMessages
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Errors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/state/counters/errors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationFail  *uint64           `path:"authentication-fail" module:"openconfig-network-instance"`
	ΛAuthenticationFail []ygot.Annotation `path:"@authentication-fail" ygotAnnotation:"true"`
	BadChecksum         *uint64           `path:"bad-checksum" module:"openconfig-network-instance"`
	ΛBadChecksum        []ygot.Annotation `path:"@bad-checksum" ygotAnnotation:"true"`
	BadPacketFormat     *uint64           `path:"bad-packet-format" module:"openconfig-network-instance"`
	ΛBadPacketFormat    []ygot.Annotation `path:"@bad-packet-format" ygotAnnotation:"true"`
	BadPacketLength     *uint64           `path:"bad-packet-length" module:"openconfig-network-instance"`
	ΛBadPacketLength    []ygot.Annotation `path:"@bad-packet-length" ygotAnnotation:"true"`
	OutOfOrder          *uint64           `path:"out-of-order" module:"openconfig-network-instance"`
	ΛOutOfOrder         []ygot.Annotation `path:"@out-of-order" ygotAnnotation:"true"`
	ReceivedNack        *uint64           `path:"received-nack" module:"openconfig-network-instance"`
	ΛReceivedNack       []ygot.Annotation `path:"@received-nack" ygotAnnotation:"true"`
	TransmitFailure     *uint64           `path:"transmit-failure" module:"openconfig-network-instance"`
	ΛTransmitFailure    []ygot.Annotation `path:"@transmit-failure" ygotAnnotation:"true"`
	TransmitQueueFull   *uint64           `path:"transmit-queue-full" module:"openconfig-network-instance"`
	ΛTransmitQueueFull  []ygot.Annotation `path:"@transmit-queue-full" ygotAnnotation:"true"`
	UnknownAck          *uint64           `path:"unknown-ack" module:"openconfig-network-instance"`
	ΛUnknownAck         []ygot.Annotation `path:"@unknown-ack" ygotAnnotation:"true"`
	UnknownNack         *uint64           `path:"unknown-nack" module:"openconfig-network-instance"`
	ΛUnknownNack        []ygot.Annotation `path:"@unknown-nack" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) IsYANGGoStruct() {
}

// GetAuthenticationFail retrieves the value of the leaf AuthenticationFail from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationFail is set, it can
// safely use t.GetAuthenticationFail() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationFail == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetAuthenticationFail() uint64 {
	if t == nil || t.AuthenticationFail == nil {
		return 0
	}
	return *t.AuthenticationFail
}

// GetBadChecksum retrieves the value of the leaf BadChecksum from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadChecksum is set, it can
// safely use t.GetBadChecksum() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadChecksum == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetBadChecksum() uint64 {
	if t == nil || t.BadChecksum == nil {
		return 0
	}
	return *t.BadChecksum
}

// GetBadPacketFormat retrieves the value of the leaf BadPacketFormat from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadPacketFormat is set, it can
// safely use t.GetBadPacketFormat() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadPacketFormat == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetBadPacketFormat() uint64 {
	if t == nil || t.BadPacketFormat == nil {
		return 0
	}
	return *t.BadPacketFormat
}

// GetBadPacketLength retrieves the value of the leaf BadPacketLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadPacketLength is set, it can
// safely use t.GetBadPacketLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadPacketLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetBadPacketLength() uint64 {
	if t == nil || t.BadPacketLength == nil {
		return 0
	}
	return *t.BadPacketLength
}

// GetOutOfOrder retrieves the value of the leaf OutOfOrder from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOfOrder is set, it can
// safely use t.GetOutOfOrder() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOfOrder == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetOutOfOrder() uint64 {
	if t == nil || t.OutOfOrder == nil {
		return 0
	}
	return *t.OutOfOrder
}

// GetReceivedNack retrieves the value of the leaf ReceivedNack from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceivedNack is set, it can
// safely use t.GetReceivedNack() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceivedNack == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetReceivedNack() uint64 {
	if t == nil || t.ReceivedNack == nil {
		return 0
	}
	return *t.ReceivedNack
}

// GetTransmitFailure retrieves the value of the leaf TransmitFailure from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TransmitFailure is set, it can
// safely use t.GetTransmitFailure() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TransmitFailure == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetTransmitFailure() uint64 {
	if t == nil || t.TransmitFailure == nil {
		return 0
	}
	return *t.TransmitFailure
}

// GetTransmitQueueFull retrieves the value of the leaf TransmitQueueFull from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TransmitQueueFull is set, it can
// safely use t.GetTransmitQueueFull() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TransmitQueueFull == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetTransmitQueueFull() uint64 {
	if t == nil || t.TransmitQueueFull == nil {
		return 0
	}
	return *t.TransmitQueueFull
}

// GetUnknownAck retrieves the value of the leaf UnknownAck from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnknownAck is set, it can
// safely use t.GetUnknownAck() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnknownAck == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetUnknownAck() uint64 {
	if t == nil || t.UnknownAck == nil {
		return 0
	}
	return *t.UnknownAck
}

// GetUnknownNack retrieves the value of the leaf UnknownNack from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnknownNack is set, it can
// safely use t.GetUnknownNack() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnknownNack == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) GetUnknownNack() uint64 {
	if t == nil || t.UnknownNack == nil {
		return 0
	}
	return *t.UnknownNack
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_State_Counters_Errors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/subscription YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription struct {
	ΛMetadata []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/subscription/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Subscription  *uint8            `path:"subscription" module:"openconfig-network-instance"`
	ΛSubscription []ygot.Annotation `path:"@subscription" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config) IsYANGGoStruct() {
}

// GetSubscription retrieves the value of the leaf Subscription from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subscription is set, it can
// safely use t.GetSubscription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subscription == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config) GetSubscription() uint8 {
	if t == nil || t.Subscription == nil {
		return 0
	}
	return *t.Subscription
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/subscription/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State struct {
	ΛMetadata                         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CalculatedAbsoluteSubscriptionBw  *uint64           `path:"calculated-absolute-subscription-bw" module:"openconfig-network-instance"`
	ΛCalculatedAbsoluteSubscriptionBw []ygot.Annotation `path:"@calculated-absolute-subscription-bw" ygotAnnotation:"true"`
	Subscription                      *uint8            `path:"subscription" module:"openconfig-network-instance"`
	ΛSubscription                     []ygot.Annotation `path:"@subscription" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) IsYANGGoStruct() {
}

// GetCalculatedAbsoluteSubscriptionBw retrieves the value of the leaf CalculatedAbsoluteSubscriptionBw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CalculatedAbsoluteSubscriptionBw is set, it can
// safely use t.GetCalculatedAbsoluteSubscriptionBw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CalculatedAbsoluteSubscriptionBw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) GetCalculatedAbsoluteSubscriptionBw() uint64 {
	if t == nil || t.CalculatedAbsoluteSubscriptionBw == nil {
		return 0
	}
	return *t.CalculatedAbsoluteSubscriptionBw
}

// GetSubscription retrieves the value of the leaf Subscription from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subscription is set, it can
// safely use t.GetSubscription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subscription == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) GetSubscription() uint8 {
	if t == nil || t.Subscription == nil {
		return 0
	}
	return *t.Subscription
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_Subscription_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                        `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) NewNeighbor(Address string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor)
	}

	key := Address

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor{
		Address: &Address,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.Address = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) GetOrCreateNeighbor(Address string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor {

	key := Address

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(Address)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) GetNeighbor(Address string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := Address

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) error {
	if v.Address == nil {
		return fmt.Errorf("invalid nil key received for Address")
	}

	key := *v.Address

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Address   *string                                                                                                             `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation                                                                                                   `path:"@address" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Address == nil {
		return nil, fmt.Errorf("nil value for key Address")
	}

	return map[string]interface{}{
		"address": *t.Address,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Address            *string                                                                                                                             `path:"address" module:"openconfig-network-instance"`
	ΛAddress           []ygot.Annotation                                                                                                                   `path:"@address" ygotAnnotation:"true"`
	DetectedInterface  *string                                                                                                                             `path:"detected-interface" module:"openconfig-network-instance"`
	ΛDetectedInterface []ygot.Annotation                                                                                                                   `path:"@detected-interface" ygotAnnotation:"true"`
	NeighborStatus     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus `path:"neighbor-status" module:"openconfig-network-instance"`
	ΛNeighborStatus    []ygot.Annotation                                                                                                                   `path:"@neighbor-status" ygotAnnotation:"true"`
	RefreshReduction   *bool                                                                                                                               `path:"refresh-reduction" module:"openconfig-network-instance"`
	ΛRefreshReduction  []ygot.Annotation                                                                                                                   `path:"@refresh-reduction" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetDetectedInterface retrieves the value of the leaf DetectedInterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DetectedInterface is set, it can
// safely use t.GetDetectedInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DetectedInterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) GetDetectedInterface() string {
	if t == nil || t.DetectedInterface == nil {
		return ""
	}
	return *t.DetectedInterface
}

// GetNeighborStatus retrieves the value of the leaf NeighborStatus from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborStatus is set, it can
// safely use t.GetNeighborStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) GetNeighborStatus() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus {
	if t == nil || t.NeighborStatus == 0 {
		return 0
	}
	return t.NeighborStatus
}

// GetRefreshReduction retrieves the value of the leaf RefreshReduction from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RefreshReduction is set, it can
// safely use t.GetRefreshReduction() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RefreshReduction == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) GetRefreshReduction() bool {
	if t == nil || t.RefreshReduction == nil {
		return false
	}
	return *t.RefreshReduction
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Session   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session `path:"session" module:"openconfig-network-instance"`
	ΛSession  []ygot.Annotation                                                                                                      `path:"@session" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) IsYANGGoStruct() {
}

// NewSession creates a new entry in the Session list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) NewSession(LocalIndex uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Session == nil {
		t.Session = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session)
	}

	key := LocalIndex

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Session[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Session", key)
	}

	t.Session[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session{
		LocalIndex: &LocalIndex,
	}

	return t.Session[key], nil
}

// RenameSession renames an entry in the list Session within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) RenameSession(oldK, newK uint64) error {
	if _, ok := t.Session[newK]; ok {
		return fmt.Errorf("key %v already exists in Session", newK)
	}

	e, ok := t.Session[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Session", oldK)
	}
	e.LocalIndex = &newK

	t.Session[newK] = e
	delete(t.Session, oldK)
	return nil
}

// GetOrCreateSessionMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) GetOrCreateSessionMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session {
	if t.Session == nil {
		t.Session = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session)
	}
	return t.Session
}

// GetOrCreateSession retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) GetOrCreateSession(LocalIndex uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session {

	key := LocalIndex

	if v, ok := t.Session[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSession(LocalIndex)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSession got unexpected error: %v", err))
	}
	return v
}

// GetSession retrieves the value with the specified key from
// the Session map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) GetSession(LocalIndex uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session {

	if t == nil {
		return nil
	}

	key := LocalIndex

	if lm, ok := t.Session[key]; ok {
		return lm
	}
	return nil
}

// AppendSession appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session struct to the
// list Session of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) AppendSession(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) error {
	if v.LocalIndex == nil {
		return fmt.Errorf("invalid nil key received for LocalIndex")
	}

	key := *v.LocalIndex

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Session == nil {
		t.Session = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session)
	}

	if _, ok := t.Session[key]; ok {
		return fmt.Errorf("duplicate key for list Session %v", key)
	}

	t.Session[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Session {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session struct {
	ΛMetadata             []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	ExplicitRouteObjects  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects `path:"explicit-route-objects" module:"openconfig-network-instance"`
	ΛExplicitRouteObjects []ygot.Annotation                                                                                                                `path:"@explicit-route-objects" ygotAnnotation:"true"`
	LocalIndex            *uint64                                                                                                                          `path:"local-index" module:"openconfig-network-instance"`
	ΛLocalIndex           []ygot.Annotation                                                                                                                `path:"@local-index" ygotAnnotation:"true"`
	RecordRouteObjects    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects   `path:"record-route-objects" module:"openconfig-network-instance"`
	ΛRecordRouteObjects   []ygot.Annotation                                                                                                                `path:"@record-route-objects" ygotAnnotation:"true"`
	State                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State                `path:"state" module:"openconfig-network-instance"`
	ΛState                []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) IsYANGGoStruct() {
}

// GetOrCreateExplicitRouteObjects retrieves the value of the ExplicitRouteObjects field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) GetOrCreateExplicitRouteObjects() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects {
	if t.ExplicitRouteObjects != nil {
		return t.ExplicitRouteObjects
	}
	t.ExplicitRouteObjects = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects{}
	return t.ExplicitRouteObjects
}

// GetOrCreateRecordRouteObjects retrieves the value of the RecordRouteObjects field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) GetOrCreateRecordRouteObjects() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects {
	if t.RecordRouteObjects != nil {
		return t.RecordRouteObjects
	}
	t.RecordRouteObjects = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects{}
	return t.RecordRouteObjects
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State{}
	return t.State
}

// GetExplicitRouteObjects returns the value of the ExplicitRouteObjects struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session. If the receiver or the field ExplicitRouteObjects is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) GetExplicitRouteObjects() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects {
	if t != nil && t.ExplicitRouteObjects != nil {
		return t.ExplicitRouteObjects
	}
	return nil
}

// GetRecordRouteObjects returns the value of the RecordRouteObjects struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session. If the receiver or the field RecordRouteObjects is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) GetRecordRouteObjects() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects {
	if t != nil && t.RecordRouteObjects != nil {
		return t.RecordRouteObjects
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLocalIndex retrieves the value of the leaf LocalIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalIndex is set, it can
// safely use t.GetLocalIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) GetLocalIndex() uint64 {
	if t == nil || t.LocalIndex == nil {
		return 0
	}
	return *t.LocalIndex
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.ExplicitRouteObjects.PopulateDefaults()
	t.RecordRouteObjects.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalIndex == nil {
		return nil, fmt.Errorf("nil value for key LocalIndex")
	}

	return map[string]interface{}{
		"local-index": *t.LocalIndex,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/explicit-route-objects YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	ExplicitRouteObject  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject `path:"explicit-route-object" module:"openconfig-network-instance"`
	ΛExplicitRouteObject []ygot.Annotation                                                                                                                                               `path:"@explicit-route-object" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) IsYANGGoStruct() {
}

// NewExplicitRouteObject creates a new entry in the ExplicitRouteObject list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) NewExplicitRouteObject(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ExplicitRouteObject == nil {
		t.ExplicitRouteObject = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ExplicitRouteObject[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ExplicitRouteObject", key)
	}

	t.ExplicitRouteObject[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject{
		Index: &Index,
	}

	return t.ExplicitRouteObject[key], nil
}

// RenameExplicitRouteObject renames an entry in the list ExplicitRouteObject within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) RenameExplicitRouteObject(oldK, newK uint64) error {
	if _, ok := t.ExplicitRouteObject[newK]; ok {
		return fmt.Errorf("key %v already exists in ExplicitRouteObject", newK)
	}

	e, ok := t.ExplicitRouteObject[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ExplicitRouteObject", oldK)
	}
	e.Index = &newK

	t.ExplicitRouteObject[newK] = e
	delete(t.ExplicitRouteObject, oldK)
	return nil
}

// GetOrCreateExplicitRouteObjectMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) GetOrCreateExplicitRouteObjectMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject {
	if t.ExplicitRouteObject == nil {
		t.ExplicitRouteObject = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject)
	}
	return t.ExplicitRouteObject
}

// GetOrCreateExplicitRouteObject retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) GetOrCreateExplicitRouteObject(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject {

	key := Index

	if v, ok := t.ExplicitRouteObject[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewExplicitRouteObject(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateExplicitRouteObject got unexpected error: %v", err))
	}
	return v
}

// GetExplicitRouteObject retrieves the value with the specified key from
// the ExplicitRouteObject map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) GetExplicitRouteObject(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.ExplicitRouteObject[key]; ok {
		return lm
	}
	return nil
}

// AppendExplicitRouteObject appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject struct to the
// list ExplicitRouteObject of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) AppendExplicitRouteObject(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ExplicitRouteObject == nil {
		t.ExplicitRouteObject = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject)
	}

	if _, ok := t.ExplicitRouteObject[key]; ok {
		return fmt.Errorf("duplicate key for list ExplicitRouteObject %v", key)
	}

	t.ExplicitRouteObject[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ExplicitRouteObject {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/explicit-route-objects/explicit-route-object YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                                                                    `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                                          `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/explicit-route-objects/explicit-route-object/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Asn          *uint32                                                                                                                                                               `path:"asn" module:"openconfig-network-instance"`
	ΛAsn         []ygot.Annotation                                                                                                                                                     `path:"@asn" ygotAnnotation:"true"`
	Index        *uint64                                                                                                                                                               `path:"index" module:"openconfig-network-instance"`
	ΛIndex       []ygot.Annotation                                                                                                                                                     `path:"@index" ygotAnnotation:"true"`
	InterfaceId  *uint32                                                                                                                                                               `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId []ygot.Annotation                                                                                                                                                     `path:"@interface-id" ygotAnnotation:"true"`
	IpPrefix     *string                                                                                                                                                               `path:"ip-prefix" module:"openconfig-network-instance"`
	ΛIpPrefix    []ygot.Annotation                                                                                                                                                     `path:"@ip-prefix" ygotAnnotation:"true"`
	Label        OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union `path:"label" module:"openconfig-network-instance"`
	ΛLabel       []ygot.Annotation                                                                                                                                                     `path:"@label" ygotAnnotation:"true"`
	Loose        *bool                                                                                                                                                                 `path:"loose" module:"openconfig-network-instance"`
	ΛLoose       []ygot.Annotation                                                                                                                                                     `path:"@loose" ygotAnnotation:"true"`
	Type         E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type      `path:"type" module:"openconfig-network-instance"`
	ΛType        []ygot.Annotation                                                                                                                                                     `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) IsYANGGoStruct() {
}

// GetAsn retrieves the value of the leaf Asn from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Asn is set, it can
// safely use t.GetAsn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Asn == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) GetAsn() uint32 {
	if t == nil || t.Asn == nil {
		return 0
	}
	return *t.Asn
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) GetInterfaceId() uint32 {
	if t == nil || t.InterfaceId == nil {
		return 0
	}
	return *t.InterfaceId
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) GetLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union {
	if t == nil || t.Label == nil {
		return nil
	}
	return t.Label
}

// GetLoose retrieves the value of the leaf Loose from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Loose is set, it can
// safely use t.GetLoose() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Loose == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) GetLoose() bool {
	if t == nil || t.Loose == nil {
		return false
	}
	return *t.Loose
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) GetType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/explicit-route-objects/explicit-route-object/state/label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Label_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/record-route-objects YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	RecordRouteObject  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject `path:"record-route-object" module:"openconfig-network-instance"`
	ΛRecordRouteObject []ygot.Annotation                                                                                                                                          `path:"@record-route-object" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) IsYANGGoStruct() {
}

// NewRecordRouteObject creates a new entry in the RecordRouteObject list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) NewRecordRouteObject(Index uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RecordRouteObject == nil {
		t.RecordRouteObject = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RecordRouteObject[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RecordRouteObject", key)
	}

	t.RecordRouteObject[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject{
		Index: &Index,
	}

	return t.RecordRouteObject[key], nil
}

// RenameRecordRouteObject renames an entry in the list RecordRouteObject within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) RenameRecordRouteObject(oldK, newK uint8) error {
	if _, ok := t.RecordRouteObject[newK]; ok {
		return fmt.Errorf("key %v already exists in RecordRouteObject", newK)
	}

	e, ok := t.RecordRouteObject[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in RecordRouteObject", oldK)
	}
	e.Index = &newK

	t.RecordRouteObject[newK] = e
	delete(t.RecordRouteObject, oldK)
	return nil
}

// GetOrCreateRecordRouteObjectMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) GetOrCreateRecordRouteObjectMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject {
	if t.RecordRouteObject == nil {
		t.RecordRouteObject = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject)
	}
	return t.RecordRouteObject
}

// GetOrCreateRecordRouteObject retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) GetOrCreateRecordRouteObject(Index uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject {

	key := Index

	if v, ok := t.RecordRouteObject[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRecordRouteObject(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRecordRouteObject got unexpected error: %v", err))
	}
	return v
}

// GetRecordRouteObject retrieves the value with the specified key from
// the RecordRouteObject map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) GetRecordRouteObject(Index uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.RecordRouteObject[key]; ok {
		return lm
	}
	return nil
}

// AppendRecordRouteObject appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject struct to the
// list RecordRouteObject of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) AppendRecordRouteObject(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RecordRouteObject == nil {
		t.RecordRouteObject = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject)
	}

	if _, ok := t.RecordRouteObject[key]; ok {
		return fmt.Errorf("duplicate key for list RecordRouteObject %v", key)
	}

	t.RecordRouteObject[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.RecordRouteObject {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/record-route-objects/record-route-object YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject struct {
	ΛMetadata []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Index     *uint8                                                                                                                                                 `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                                      `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/record-route-objects/record-route-object/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Address        *string                                                                                                                                                                   `path:"address" module:"openconfig-network-instance"`
	ΛAddress       []ygot.Annotation                                                                                                                                                         `path:"@address" ygotAnnotation:"true"`
	Index          *uint8                                                                                                                                                                    `path:"index" module:"openconfig-network-instance"`
	ΛIndex         []ygot.Annotation                                                                                                                                                         `path:"@index" ygotAnnotation:"true"`
	ReportedFlags  *uint8                                                                                                                                                                    `path:"reported-flags" module:"openconfig-network-instance"`
	ΛReportedFlags []ygot.Annotation                                                                                                                                                         `path:"@reported-flags" ygotAnnotation:"true"`
	ReportedLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union `path:"reported-label" module:"openconfig-network-instance"`
	ΛReportedLabel []ygot.Annotation                                                                                                                                                         `path:"@reported-label" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetReportedFlags retrieves the value of the leaf ReportedFlags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReportedFlags is set, it can
// safely use t.GetReportedFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReportedFlags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) GetReportedFlags() uint8 {
	if t == nil || t.ReportedFlags == nil {
		return 0
	}
	return *t.ReportedFlags
}

// GetReportedLabel retrieves the value of the leaf ReportedLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReportedLabel is set, it can
// safely use t.GetReportedLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReportedLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) GetReportedLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union {
	if t == nil || t.ReportedLabel == nil {
		return nil
	}
	return t.ReportedLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/record-route-objects/record-route-object/state/reported-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_RecordRouteObjects_RecordRouteObject_State_ReportedLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State struct {
	ΛMetadata            []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	DestinationAddress   *string                                                                                                                         `path:"destination-address" module:"openconfig-network-instance"`
	ΛDestinationAddress  []ygot.Annotation                                                                                                               `path:"@destination-address" ygotAnnotation:"true"`
	LabelIn              OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union  `path:"label-in" module:"openconfig-network-instance"`
	ΛLabelIn             []ygot.Annotation                                                                                                               `path:"@label-in" ygotAnnotation:"true"`
	LabelOut             OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union `path:"label-out" module:"openconfig-network-instance"`
	ΛLabelOut            []ygot.Annotation                                                                                                               `path:"@label-out" ygotAnnotation:"true"`
	LocalIndex           *uint64                                                                                                                         `path:"local-index" module:"openconfig-network-instance"`
	ΛLocalIndex          []ygot.Annotation                                                                                                               `path:"@local-index" ygotAnnotation:"true"`
	LspId                *uint16                                                                                                                         `path:"lsp-id" module:"openconfig-network-instance"`
	ΛLspId               []ygot.Annotation                                                                                                               `path:"@lsp-id" ygotAnnotation:"true"`
	ProtectionRequested  E_OpenconfigMplsTypes_PROTECTION_TYPE                                                                                           `path:"protection-requested" module:"openconfig-network-instance"`
	ΛProtectionRequested []ygot.Annotation                                                                                                               `path:"@protection-requested" ygotAnnotation:"true"`
	SenderTspec          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec   `path:"sender-tspec" module:"openconfig-network-instance"`
	ΛSenderTspec         []ygot.Annotation                                                                                                               `path:"@sender-tspec" ygotAnnotation:"true"`
	SessionName          *string                                                                                                                         `path:"session-name" module:"openconfig-network-instance"`
	ΛSessionName         []ygot.Annotation                                                                                                               `path:"@session-name" ygotAnnotation:"true"`
	SourceAddress        *string                                                                                                                         `path:"source-address" module:"openconfig-network-instance"`
	ΛSourceAddress       []ygot.Annotation                                                                                                               `path:"@source-address" ygotAnnotation:"true"`
	Status               E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status       `path:"status" module:"openconfig-network-instance"`
	ΛStatus              []ygot.Annotation                                                                                                               `path:"@status" ygotAnnotation:"true"`
	TunnelId             *uint16                                                                                                                         `path:"tunnel-id" module:"openconfig-network-instance"`
	ΛTunnelId            []ygot.Annotation                                                                                                               `path:"@tunnel-id" ygotAnnotation:"true"`
	Type                 E_OpenconfigMplsTypes_LSP_ROLE                                                                                                  `path:"type" module:"openconfig-network-instance"`
	ΛType                []ygot.Annotation                                                                                                               `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) IsYANGGoStruct() {
}

// GetOrCreateSenderTspec retrieves the value of the SenderTspec field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetOrCreateSenderTspec() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec {
	if t.SenderTspec != nil {
		return t.SenderTspec
	}
	t.SenderTspec = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec{}
	return t.SenderTspec
}

// GetSenderTspec returns the value of the SenderTspec struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State. If the receiver or the field SenderTspec is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetSenderTspec() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec {
	if t != nil && t.SenderTspec != nil {
		return t.SenderTspec
	}
	return nil
}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetLabelIn retrieves the value of the leaf LabelIn from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelIn is set, it can
// safely use t.GetLabelIn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelIn == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetLabelIn() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union {
	if t == nil || t.LabelIn == nil {
		return nil
	}
	return t.LabelIn
}

// GetLabelOut retrieves the value of the leaf LabelOut from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelOut is set, it can
// safely use t.GetLabelOut() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelOut == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetLabelOut() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union {
	if t == nil || t.LabelOut == nil {
		return nil
	}
	return t.LabelOut
}

// GetLocalIndex retrieves the value of the leaf LocalIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalIndex is set, it can
// safely use t.GetLocalIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetLocalIndex() uint64 {
	if t == nil || t.LocalIndex == nil {
		return 0
	}
	return *t.LocalIndex
}

// GetLspId retrieves the value of the leaf LspId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspId is set, it can
// safely use t.GetLspId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetLspId() uint16 {
	if t == nil || t.LspId == nil {
		return 0
	}
	return *t.LspId
}

// GetProtectionRequested retrieves the value of the leaf ProtectionRequested from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtectionRequested is set, it can
// safely use t.GetProtectionRequested() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtectionRequested == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetProtectionRequested() E_OpenconfigMplsTypes_PROTECTION_TYPE {
	if t == nil || t.ProtectionRequested == 0 {
		return 0
	}
	return t.ProtectionRequested
}

// GetSessionName retrieves the value of the leaf SessionName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionName is set, it can
// safely use t.GetSessionName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetSessionName() string {
	if t == nil || t.SessionName == nil {
		return ""
	}
	return *t.SessionName
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetStatus retrieves the value of the leaf Status from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Status is set, it can
// safely use t.GetStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Status == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetStatus() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status {
	if t == nil || t.Status == 0 {
		return 0
	}
	return t.Status
}

// GetTunnelId retrieves the value of the leaf TunnelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TunnelId is set, it can
// safely use t.GetTunnelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TunnelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetTunnelId() uint16 {
	if t == nil || t.TunnelId == nil {
		return 0
	}
	return *t.TunnelId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) GetType() E_OpenconfigMplsTypes_LSP_ROLE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.SenderTspec.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/label-in within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelIn_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/label-out within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_LabelOut_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/sender-tspec YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	PeakDataRate  Binary            `path:"peak-data-rate" module:"openconfig-network-instance"`
	ΛPeakDataRate []ygot.Annotation `path:"@peak-data-rate" ygotAnnotation:"true"`
	Rate          Binary            `path:"rate" module:"openconfig-network-instance"`
	ΛRate         []ygot.Annotation `path:"@rate" ygotAnnotation:"true"`
	Size          Binary            `path:"size" module:"openconfig-network-instance"`
	ΛSize         []ygot.Annotation `path:"@size" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) IsYANGGoStruct() {
}

// GetPeakDataRate retrieves the value of the leaf PeakDataRate from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeakDataRate is set, it can
// safely use t.GetPeakDataRate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeakDataRate == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) GetPeakDataRate() Binary {
	if t == nil || t.PeakDataRate == nil {
		return nil
	}
	return t.PeakDataRate
}

// GetRate retrieves the value of the leaf Rate from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Rate is set, it can
// safely use t.GetRate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Rate == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) GetRate() Binary {
	if t == nil || t.Rate == nil {
		return nil
	}
	return t.Rate
}

// GetSize retrieves the value of the leaf Size from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Size is set, it can
// safely use t.GetSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Size == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) GetSize() Binary {
	if t == nil || t.Size == nil {
		return nil
	}
	return t.Size
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_SenderTspec) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting struct {
	ΛMetadata             []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	AggregateSidCounters  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters `path:"aggregate-sid-counters" module:"openconfig-network-instance"`
	ΛAggregateSidCounters []ygot.Annotation                                                                                                       `path:"@aggregate-sid-counters" ygotAnnotation:"true"`
	Interfaces            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces           `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces           []ygot.Annotation                                                                                                       `path:"@interfaces" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) IsYANGGoStruct() {
}

// GetOrCreateAggregateSidCounters retrieves the value of the AggregateSidCounters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) GetOrCreateAggregateSidCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters {
	if t.AggregateSidCounters != nil {
		return t.AggregateSidCounters
	}
	t.AggregateSidCounters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters{}
	return t.AggregateSidCounters
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces{}
	return t.Interfaces
}

// GetAggregateSidCounters returns the value of the AggregateSidCounters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting. If the receiver or the field AggregateSidCounters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) GetAggregateSidCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters {
	if t != nil && t.AggregateSidCounters != nil {
		return t.AggregateSidCounters
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AggregateSidCounters.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/aggregate-sid-counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AggregateSidCounter  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter `path:"aggregate-sid-counter" module:"openconfig-network-instance"`
	ΛAggregateSidCounter []ygot.Annotation                                                                                                                                                                                                                                                                                                `path:"@aggregate-sid-counter" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) IsYANGGoStruct() {
}

// NewAggregateSidCounter creates a new entry in the AggregateSidCounter list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) NewAggregateSidCounter(MplsLabel OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregateSidCounter == nil {
		t.AggregateSidCounter = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter)
	}

	key := MplsLabel

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AggregateSidCounter[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AggregateSidCounter", key)
	}

	t.AggregateSidCounter[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter{
		MplsLabel: MplsLabel,
	}

	return t.AggregateSidCounter[key], nil
}

// RenameAggregateSidCounter renames an entry in the list AggregateSidCounter within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) RenameAggregateSidCounter(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union) error {
	if _, ok := t.AggregateSidCounter[newK]; ok {
		return fmt.Errorf("key %v already exists in AggregateSidCounter", newK)
	}

	e, ok := t.AggregateSidCounter[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AggregateSidCounter", oldK)
	}
	e.MplsLabel = newK

	t.AggregateSidCounter[newK] = e
	delete(t.AggregateSidCounter, oldK)
	return nil
}

// GetOrCreateAggregateSidCounterMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) GetOrCreateAggregateSidCounterMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter {
	if t.AggregateSidCounter == nil {
		t.AggregateSidCounter = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter)
	}
	return t.AggregateSidCounter
}

// GetOrCreateAggregateSidCounter retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) GetOrCreateAggregateSidCounter(MplsLabel OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter {

	key := MplsLabel

	if v, ok := t.AggregateSidCounter[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAggregateSidCounter(MplsLabel)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAggregateSidCounter got unexpected error: %v", err))
	}
	return v
}

// GetAggregateSidCounter retrieves the value with the specified key from
// the AggregateSidCounter map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) GetAggregateSidCounter(MplsLabel OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter {

	if t == nil {
		return nil
	}

	key := MplsLabel

	if lm, ok := t.AggregateSidCounter[key]; ok {
		return lm
	}
	return nil
}

// AppendAggregateSidCounter appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter struct to the
// list AggregateSidCounter of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) AppendAggregateSidCounter(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) error {
	key := v.MplsLabel

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregateSidCounter == nil {
		t.AggregateSidCounter = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter)
	}

	if _, ok := t.AggregateSidCounter[key]; ok {
		return fmt.Errorf("duplicate key for list AggregateSidCounter %v", key)
	}

	t.AggregateSidCounter[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AggregateSidCounter {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/aggregate-sid-counters/aggregate-sid-counter YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	MplsLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union `path:"mpls-label" module:"openconfig-network-instance"`
	ΛMplsLabel []ygot.Annotation                                                                                                                                                `path:"@mpls-label" ygotAnnotation:"true"`
	State      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State                `path:"state" module:"openconfig-network-instance"`
	ΛState     []ygot.Annotation                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMplsLabel retrieves the value of the leaf MplsLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabel is set, it can
// safely use t.GetMplsLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) GetMplsLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union {
	if t == nil || t.MplsLabel == nil {
		return nil
	}
	return t.MplsLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"mpls-label": t.MplsLabel,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/aggregate-sid-counters/aggregate-sid-counter/mpls-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/aggregate-sid-counters/aggregate-sid-counter/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	InOctets   *uint64                                                                                                                                                          `path:"in-octets" module:"openconfig-network-instance"`
	ΛInOctets  []ygot.Annotation                                                                                                                                                `path:"@in-octets" ygotAnnotation:"true"`
	InPkts     *uint64                                                                                                                                                          `path:"in-pkts" module:"openconfig-network-instance"`
	ΛInPkts    []ygot.Annotation                                                                                                                                                `path:"@in-pkts" ygotAnnotation:"true"`
	MplsLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union `path:"mpls-label" module:"openconfig-network-instance"`
	ΛMplsLabel []ygot.Annotation                                                                                                                                                `path:"@mpls-label" ygotAnnotation:"true"`
	OutOctets  *uint64                                                                                                                                                          `path:"out-octets" module:"openconfig-network-instance"`
	ΛOutOctets []ygot.Annotation                                                                                                                                                `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts    *uint64                                                                                                                                                          `path:"out-pkts" module:"openconfig-network-instance"`
	ΛOutPkts   []ygot.Annotation                                                                                                                                                `path:"@out-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) IsYANGGoStruct() {
}

// GetInOctets retrieves the value of the leaf InOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOctets is set, it can
// safely use t.GetInOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) GetInOctets() uint64 {
	if t == nil || t.InOctets == nil {
		return 0
	}
	return *t.InOctets
}

// GetInPkts retrieves the value of the leaf InPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPkts is set, it can
// safely use t.GetInPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) GetInPkts() uint64 {
	if t == nil || t.InPkts == nil {
		return 0
	}
	return *t.InPkts
}

// GetMplsLabel retrieves the value of the leaf MplsLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabel is set, it can
// safely use t.GetMplsLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) GetMplsLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union {
	if t == nil || t.MplsLabel == nil {
		return nil
	}
	return t.MplsLabel
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_AggregateSidCounters_AggregateSidCounter_State_MplsLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                                  `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface struct {
	ΛMetadata     []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config       `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	InterfaceId   *string                                                                                                                              `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId  []ygot.Annotation                                                                                                                    `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                                                    `path:"@interface-ref" ygotAnnotation:"true"`
	SidCounters   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters  `path:"sid-counters" module:"openconfig-network-instance"`
	ΛSidCounters  []ygot.Annotation                                                                                                                    `path:"@sid-counters" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateSidCounters retrieves the value of the SidCounters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetOrCreateSidCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters {
	if t.SidCounters != nil {
		return t.SidCounters
	}
	t.SidCounters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters{}
	return t.SidCounters
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetSidCounters returns the value of the SidCounters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface. If the receiver or the field SidCounters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetSidCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters {
	if t != nil && t.SidCounters != nil {
		return t.SidCounters
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.SidCounters.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InterfaceId  *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	SidCounter  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter `path:"sid-counter" module:"openconfig-network-instance"`
	ΛSidCounter []ygot.Annotation                                                                                                                                                                                                                                                                                                      `path:"@sid-counter" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) IsYANGGoStruct() {
}

// NewSidCounter creates a new entry in the SidCounter list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) NewSidCounter(MplsLabel OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SidCounter == nil {
		t.SidCounter = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter)
	}

	key := MplsLabel

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SidCounter[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SidCounter", key)
	}

	t.SidCounter[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter{
		MplsLabel: MplsLabel,
	}

	return t.SidCounter[key], nil
}

// RenameSidCounter renames an entry in the list SidCounter within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) RenameSidCounter(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union) error {
	if _, ok := t.SidCounter[newK]; ok {
		return fmt.Errorf("key %v already exists in SidCounter", newK)
	}

	e, ok := t.SidCounter[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SidCounter", oldK)
	}
	e.MplsLabel = newK

	t.SidCounter[newK] = e
	delete(t.SidCounter, oldK)
	return nil
}

// GetOrCreateSidCounterMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) GetOrCreateSidCounterMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter {
	if t.SidCounter == nil {
		t.SidCounter = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter)
	}
	return t.SidCounter
}

// GetOrCreateSidCounter retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) GetOrCreateSidCounter(MplsLabel OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter {

	key := MplsLabel

	if v, ok := t.SidCounter[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSidCounter(MplsLabel)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSidCounter got unexpected error: %v", err))
	}
	return v
}

// GetSidCounter retrieves the value with the specified key from
// the SidCounter map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) GetSidCounter(MplsLabel OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter {

	if t == nil {
		return nil
	}

	key := MplsLabel

	if lm, ok := t.SidCounter[key]; ok {
		return lm
	}
	return nil
}

// AppendSidCounter appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter struct to the
// list SidCounter of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) AppendSidCounter(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) error {
	key := v.MplsLabel

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SidCounter == nil {
		t.SidCounter = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter)
	}

	if _, ok := t.SidCounter[key]; ok {
		return fmt.Errorf("duplicate key for list SidCounter %v", key)
	}

	t.SidCounter[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SidCounter {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	ForwardingClasses  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses    `path:"forwarding-classes" module:"openconfig-network-instance"`
	ΛForwardingClasses []ygot.Annotation                                                                                                                                                   `path:"@forwarding-classes" ygotAnnotation:"true"`
	MplsLabel          OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union `path:"mpls-label" module:"openconfig-network-instance"`
	ΛMplsLabel         []ygot.Annotation                                                                                                                                                   `path:"@mpls-label" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State                `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) IsYANGGoStruct() {
}

// GetOrCreateForwardingClasses retrieves the value of the ForwardingClasses field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) GetOrCreateForwardingClasses() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses {
	if t.ForwardingClasses != nil {
		return t.ForwardingClasses
	}
	t.ForwardingClasses = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses{}
	return t.ForwardingClasses
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State{}
	return t.State
}

// GetForwardingClasses returns the value of the ForwardingClasses struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter. If the receiver or the field ForwardingClasses is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) GetForwardingClasses() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses {
	if t != nil && t.ForwardingClasses != nil {
		return t.ForwardingClasses
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMplsLabel retrieves the value of the leaf MplsLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabel is set, it can
// safely use t.GetMplsLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) GetMplsLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union {
	if t == nil || t.MplsLabel == nil {
		return nil
	}
	return t.MplsLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.ForwardingClasses.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"mpls-label": t.MplsLabel,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter/mpls-label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter/forwarding-classes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	ForwardingClass  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass `path:"forwarding-class" module:"openconfig-network-instance"`
	ΛForwardingClass []ygot.Annotation                                                                                                                                                                          `path:"@forwarding-class" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) IsYANGGoStruct() {
}

// NewForwardingClass creates a new entry in the ForwardingClass list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) NewForwardingClass(Exp uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ForwardingClass == nil {
		t.ForwardingClass = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass)
	}

	key := Exp

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ForwardingClass[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ForwardingClass", key)
	}

	t.ForwardingClass[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass{
		Exp: &Exp,
	}

	return t.ForwardingClass[key], nil
}

// RenameForwardingClass renames an entry in the list ForwardingClass within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) RenameForwardingClass(oldK, newK uint8) error {
	if _, ok := t.ForwardingClass[newK]; ok {
		return fmt.Errorf("key %v already exists in ForwardingClass", newK)
	}

	e, ok := t.ForwardingClass[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ForwardingClass", oldK)
	}
	e.Exp = &newK

	t.ForwardingClass[newK] = e
	delete(t.ForwardingClass, oldK)
	return nil
}

// GetOrCreateForwardingClassMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) GetOrCreateForwardingClassMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass {
	if t.ForwardingClass == nil {
		t.ForwardingClass = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass)
	}
	return t.ForwardingClass
}

// GetOrCreateForwardingClass retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) GetOrCreateForwardingClass(Exp uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass {

	key := Exp

	if v, ok := t.ForwardingClass[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewForwardingClass(Exp)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateForwardingClass got unexpected error: %v", err))
	}
	return v
}

// GetForwardingClass retrieves the value with the specified key from
// the ForwardingClass map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) GetForwardingClass(Exp uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass {

	if t == nil {
		return nil
	}

	key := Exp

	if lm, ok := t.ForwardingClass[key]; ok {
		return lm
	}
	return nil
}

// AppendForwardingClass appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass struct to the
// list ForwardingClass of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) AppendForwardingClass(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) error {
	if v.Exp == nil {
		return fmt.Errorf("invalid nil key received for Exp")
	}

	key := *v.Exp

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ForwardingClass == nil {
		t.ForwardingClass = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass)
	}

	if _, ok := t.ForwardingClass[key]; ok {
		return fmt.Errorf("duplicate key for list ForwardingClass %v", key)
	}

	t.ForwardingClass[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ForwardingClass {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter/forwarding-classes/forwarding-class YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Exp       *uint8                                                                                                                                                                                 `path:"exp" module:"openconfig-network-instance"`
	ΛExp      []ygot.Annotation                                                                                                                                                                      `path:"@exp" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetExp retrieves the value of the leaf Exp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Exp is set, it can
// safely use t.GetExp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Exp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) GetExp() uint8 {
	if t == nil || t.Exp == nil {
		return 0
	}
	return *t.Exp
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Exp == nil {
		return nil, fmt.Errorf("nil value for key Exp")
	}

	return map[string]interface{}{
		"exp": *t.Exp,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter/forwarding-classes/forwarding-class/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Exp        *uint8            `path:"exp" module:"openconfig-network-instance"`
	ΛExp       []ygot.Annotation `path:"@exp" ygotAnnotation:"true"`
	InOctets   *uint64           `path:"in-octets" module:"openconfig-network-instance"`
	ΛInOctets  []ygot.Annotation `path:"@in-octets" ygotAnnotation:"true"`
	InPkts     *uint64           `path:"in-pkts" module:"openconfig-network-instance"`
	ΛInPkts    []ygot.Annotation `path:"@in-pkts" ygotAnnotation:"true"`
	OutOctets  *uint64           `path:"out-octets" module:"openconfig-network-instance"`
	ΛOutOctets []ygot.Annotation `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts    *uint64           `path:"out-pkts" module:"openconfig-network-instance"`
	ΛOutPkts   []ygot.Annotation `path:"@out-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) IsYANGGoStruct() {
}

// GetExp retrieves the value of the leaf Exp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Exp is set, it can
// safely use t.GetExp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Exp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) GetExp() uint8 {
	if t == nil || t.Exp == nil {
		return 0
	}
	return *t.Exp
}

// GetInOctets retrieves the value of the leaf InOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOctets is set, it can
// safely use t.GetInOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) GetInOctets() uint64 {
	if t == nil || t.InOctets == nil {
		return 0
	}
	return *t.InOctets
}

// GetInPkts retrieves the value of the leaf InPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPkts is set, it can
// safely use t.GetInPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) GetInPkts() uint64 {
	if t == nil || t.InPkts == nil {
		return 0
	}
	return *t.InPkts
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_ForwardingClasses_ForwardingClass_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	InOctets   *uint64                                                                                                                                                             `path:"in-octets" module:"openconfig-network-instance"`
	ΛInOctets  []ygot.Annotation                                                                                                                                                   `path:"@in-octets" ygotAnnotation:"true"`
	InPkts     *uint64                                                                                                                                                             `path:"in-pkts" module:"openconfig-network-instance"`
	ΛInPkts    []ygot.Annotation                                                                                                                                                   `path:"@in-pkts" ygotAnnotation:"true"`
	MplsLabel  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union `path:"mpls-label" module:"openconfig-network-instance"`
	ΛMplsLabel []ygot.Annotation                                                                                                                                                   `path:"@mpls-label" ygotAnnotation:"true"`
	OutOctets  *uint64                                                                                                                                                             `path:"out-octets" module:"openconfig-network-instance"`
	ΛOutOctets []ygot.Annotation                                                                                                                                                   `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts    *uint64                                                                                                                                                             `path:"out-pkts" module:"openconfig-network-instance"`
	ΛOutPkts   []ygot.Annotation                                                                                                                                                   `path:"@out-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) IsYANGGoStruct() {
}

// GetInOctets retrieves the value of the leaf InOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOctets is set, it can
// safely use t.GetInOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) GetInOctets() uint64 {
	if t == nil || t.InOctets == nil {
		return 0
	}
	return *t.InOctets
}

// GetInPkts retrieves the value of the leaf InPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPkts is set, it can
// safely use t.GetInPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) GetInPkts() uint64 {
	if t == nil || t.InPkts == nil {
		return 0
	}
	return *t.InPkts
}

// GetMplsLabel retrieves the value of the leaf MplsLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabel is set, it can
// safely use t.GetMplsLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) GetMplsLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union {
	if t == nil || t.MplsLabel == nil {
		return nil
	}
	return t.MplsLabel
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_SidCounters_SidCounter_State_MplsLabel_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InOctets     *uint64           `path:"in-octets" module:"openconfig-network-instance"`
	ΛInOctets    []ygot.Annotation `path:"@in-octets" ygotAnnotation:"true"`
	InPkts       *uint64           `path:"in-pkts" module:"openconfig-network-instance"`
	ΛInPkts      []ygot.Annotation `path:"@in-pkts" ygotAnnotation:"true"`
	InterfaceId  *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	OutOctets    *uint64           `path:"out-octets" module:"openconfig-network-instance"`
	ΛOutOctets   []ygot.Annotation `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts      *uint64           `path:"out-pkts" module:"openconfig-network-instance"`
	ΛOutPkts     []ygot.Annotation `path:"@out-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetInOctets retrieves the value of the leaf InOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOctets is set, it can
// safely use t.GetInOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) GetInOctets() uint64 {
	if t == nil || t.InOctets == nil {
		return 0
	}
	return *t.InOctets
}

// GetInPkts retrieves the value of the leaf InPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPkts is set, it can
// safely use t.GetInPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) GetInPkts() uint64 {
	if t == nil || t.InPkts == nil {
		return 0
	}
	return *t.InPkts
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_SegmentRouting_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes struct {
	ΛMetadata        []ygot.Annotation                                                                                   `path:"@" ygotAnnotation:"true"`
	MplsAdminGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups `path:"mpls-admin-groups" module:"openconfig-network-instance"`
	ΛMplsAdminGroups []ygot.Annotation                                                                                   `path:"@mpls-admin-groups" ygotAnnotation:"true"`
	Srlgs            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs           `path:"srlgs" module:"openconfig-network-instance"`
	ΛSrlgs           []ygot.Annotation                                                                                   `path:"@srlgs" ygotAnnotation:"true"`
	TeLspTimers      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers     `path:"te-lsp-timers" module:"openconfig-network-instance"`
	ΛTeLspTimers     []ygot.Annotation                                                                                   `path:"@te-lsp-timers" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) IsYANGGoStruct() {
}

// GetOrCreateMplsAdminGroups retrieves the value of the MplsAdminGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) GetOrCreateMplsAdminGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups {
	if t.MplsAdminGroups != nil {
		return t.MplsAdminGroups
	}
	t.MplsAdminGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups{}
	return t.MplsAdminGroups
}

// GetOrCreateSrlgs retrieves the value of the Srlgs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) GetOrCreateSrlgs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs {
	if t.Srlgs != nil {
		return t.Srlgs
	}
	t.Srlgs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs{}
	return t.Srlgs
}

// GetOrCreateTeLspTimers retrieves the value of the TeLspTimers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) GetOrCreateTeLspTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers {
	if t.TeLspTimers != nil {
		return t.TeLspTimers
	}
	t.TeLspTimers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers{}
	return t.TeLspTimers
}

// GetMplsAdminGroups returns the value of the MplsAdminGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes. If the receiver or the field MplsAdminGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) GetMplsAdminGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups {
	if t != nil && t.MplsAdminGroups != nil {
		return t.MplsAdminGroups
	}
	return nil
}

// GetSrlgs returns the value of the Srlgs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes. If the receiver or the field Srlgs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) GetSrlgs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs {
	if t != nil && t.Srlgs != nil {
		return t.Srlgs
	}
	return nil
}

// GetTeLspTimers returns the value of the TeLspTimers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes. If the receiver or the field TeLspTimers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) GetTeLspTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers {
	if t != nil && t.TeLspTimers != nil {
		return t.TeLspTimers
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.MplsAdminGroups.PopulateDefaults()
	t.Srlgs.PopulateDefaults()
	t.TeLspTimers.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/mpls-admin-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups struct {
	ΛMetadata   []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	AdminGroup  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup []ygot.Annotation                                                                                                         `path:"@admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) IsYANGGoStruct() {
}

// NewAdminGroup creates a new entry in the AdminGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) NewAdminGroup(AdminGroupName string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdminGroup == nil {
		t.AdminGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup)
	}

	key := AdminGroupName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AdminGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AdminGroup", key)
	}

	t.AdminGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup{
		AdminGroupName: &AdminGroupName,
	}

	return t.AdminGroup[key], nil
}

// RenameAdminGroup renames an entry in the list AdminGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) RenameAdminGroup(oldK, newK string) error {
	if _, ok := t.AdminGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in AdminGroup", newK)
	}

	e, ok := t.AdminGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AdminGroup", oldK)
	}
	e.AdminGroupName = &newK

	t.AdminGroup[newK] = e
	delete(t.AdminGroup, oldK)
	return nil
}

// GetOrCreateAdminGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) GetOrCreateAdminGroupMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup {
	if t.AdminGroup == nil {
		t.AdminGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup)
	}
	return t.AdminGroup
}

// GetOrCreateAdminGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) GetOrCreateAdminGroup(AdminGroupName string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup {

	key := AdminGroupName

	if v, ok := t.AdminGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdminGroup(AdminGroupName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdminGroup got unexpected error: %v", err))
	}
	return v
}

// GetAdminGroup retrieves the value with the specified key from
// the AdminGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) GetAdminGroup(AdminGroupName string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup {

	if t == nil {
		return nil
	}

	key := AdminGroupName

	if lm, ok := t.AdminGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendAdminGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup struct to the
// list AdminGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) AppendAdminGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) error {
	if v.AdminGroupName == nil {
		return fmt.Errorf("invalid nil key received for AdminGroupName")
	}

	key := *v.AdminGroupName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdminGroup == nil {
		t.AdminGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup)
	}

	if _, ok := t.AdminGroup[key]; ok {
		return fmt.Errorf("duplicate key for list AdminGroup %v", key)
	}

	t.AdminGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AdminGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/mpls-admin-groups/admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup struct {
	ΛMetadata       []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	AdminGroupName  *string                                                                                                               `path:"admin-group-name" module:"openconfig-network-instance"`
	ΛAdminGroupName []ygot.Annotation                                                                                                     `path:"@admin-group-name" ygotAnnotation:"true"`
	Config          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig         []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State  `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAdminGroupName retrieves the value of the leaf AdminGroupName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroupName is set, it can
// safely use t.GetAdminGroupName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroupName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) GetAdminGroupName() string {
	if t == nil || t.AdminGroupName == nil {
		return ""
	}
	return *t.AdminGroupName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AdminGroupName == nil {
		return nil, fmt.Errorf("nil value for key AdminGroupName")
	}

	return map[string]interface{}{
		"admin-group-name": *t.AdminGroupName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/mpls-admin-groups/admin-group/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroupName  *string           `path:"admin-group-name" module:"openconfig-network-instance"`
	ΛAdminGroupName []ygot.Annotation `path:"@admin-group-name" ygotAnnotation:"true"`
	BitPosition     *uint32           `path:"bit-position" module:"openconfig-network-instance"`
	ΛBitPosition    []ygot.Annotation `path:"@bit-position" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) IsYANGGoStruct() {
}

// GetAdminGroupName retrieves the value of the leaf AdminGroupName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroupName is set, it can
// safely use t.GetAdminGroupName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroupName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) GetAdminGroupName() string {
	if t == nil || t.AdminGroupName == nil {
		return ""
	}
	return *t.AdminGroupName
}

// GetBitPosition retrieves the value of the leaf BitPosition from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BitPosition is set, it can
// safely use t.GetBitPosition() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BitPosition == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) GetBitPosition() uint32 {
	if t == nil || t.BitPosition == nil {
		return 0
	}
	return *t.BitPosition
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/mpls-admin-groups/admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroupName  *string           `path:"admin-group-name" module:"openconfig-network-instance"`
	ΛAdminGroupName []ygot.Annotation `path:"@admin-group-name" ygotAnnotation:"true"`
	BitPosition     *uint32           `path:"bit-position" module:"openconfig-network-instance"`
	ΛBitPosition    []ygot.Annotation `path:"@bit-position" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) IsYANGGoStruct() {
}

// GetAdminGroupName retrieves the value of the leaf AdminGroupName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroupName is set, it can
// safely use t.GetAdminGroupName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroupName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) GetAdminGroupName() string {
	if t == nil || t.AdminGroupName == nil {
		return ""
	}
	return *t.AdminGroupName
}

// GetBitPosition retrieves the value of the leaf BitPosition from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BitPosition is set, it can
// safely use t.GetBitPosition() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BitPosition == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) GetBitPosition() uint32 {
	if t == nil || t.BitPosition == nil {
		return 0
	}
	return *t.BitPosition
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_MplsAdminGroups_AdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs struct {
	ΛMetadata []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	Srlg      map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg `path:"srlg" module:"openconfig-network-instance"`
	ΛSrlg     []ygot.Annotation                                                                                         `path:"@srlg" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) IsYANGGoStruct() {
}

// NewSrlg creates a new entry in the Srlg list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) NewSrlg(Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Srlg == nil {
		t.Srlg = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Srlg[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Srlg", key)
	}

	t.Srlg[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg{
		Name: &Name,
	}

	return t.Srlg[key], nil
}

// RenameSrlg renames an entry in the list Srlg within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) RenameSrlg(oldK, newK string) error {
	if _, ok := t.Srlg[newK]; ok {
		return fmt.Errorf("key %v already exists in Srlg", newK)
	}

	e, ok := t.Srlg[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Srlg", oldK)
	}
	e.Name = &newK

	t.Srlg[newK] = e
	delete(t.Srlg, oldK)
	return nil
}

// GetOrCreateSrlgMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) GetOrCreateSrlgMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg {
	if t.Srlg == nil {
		t.Srlg = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg)
	}
	return t.Srlg
}

// GetOrCreateSrlg retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) GetOrCreateSrlg(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg {

	key := Name

	if v, ok := t.Srlg[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSrlg(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSrlg got unexpected error: %v", err))
	}
	return v
}

// GetSrlg retrieves the value with the specified key from
// the Srlg map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) GetSrlg(Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Srlg[key]; ok {
		return lm
	}
	return nil
}

// AppendSrlg appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg struct to the
// list Srlg of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) AppendSrlg(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Srlg == nil {
		t.Srlg = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg)
	}

	if _, ok := t.Srlg[key]; ok {
		return fmt.Errorf("duplicate key for list Srlg %v", key)
	}

	t.Srlg[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Srlg {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg struct {
	ΛMetadata          []ygot.Annotation                                                                                                `path:"@" ygotAnnotation:"true"`
	Config             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config            `path:"config" module:"openconfig-network-instance"`
	ΛConfig            []ygot.Annotation                                                                                                `path:"@config" ygotAnnotation:"true"`
	Name               *string                                                                                                          `path:"name" module:"openconfig-network-instance"`
	ΛName              []ygot.Annotation                                                                                                `path:"@name" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                `path:"@state" ygotAnnotation:"true"`
	StaticSrlgMembers  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers `path:"static-srlg-members" module:"openconfig-network-instance"`
	ΛStaticSrlgMembers []ygot.Annotation                                                                                                `path:"@static-srlg-members" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State{}
	return t.State
}

// GetOrCreateStaticSrlgMembers retrieves the value of the StaticSrlgMembers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) GetOrCreateStaticSrlgMembers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers {
	if t.StaticSrlgMembers != nil {
		return t.StaticSrlgMembers
	}
	t.StaticSrlgMembers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers{}
	return t.StaticSrlgMembers
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetStaticSrlgMembers returns the value of the StaticSrlgMembers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg. If the receiver or the field StaticSrlgMembers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) GetStaticSrlgMembers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers {
	if t != nil && t.StaticSrlgMembers != nil {
		return t.StaticSrlgMembers
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.StaticSrlgMembers.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config struct {
	ΛMetadata     []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Cost          *uint32                               `path:"cost" module:"openconfig-network-instance"`
	ΛCost         []ygot.Annotation                     `path:"@cost" ygotAnnotation:"true"`
	FloodingType  E_OpenconfigMpls_MplsSrlgFloodingType `path:"flooding-type" module:"openconfig-network-instance"`
	ΛFloodingType []ygot.Annotation                     `path:"@flooding-type" ygotAnnotation:"true"`
	Name          *string                               `path:"name" module:"openconfig-network-instance"`
	ΛName         []ygot.Annotation                     `path:"@name" ygotAnnotation:"true"`
	Value         *uint32                               `path:"value" module:"openconfig-network-instance"`
	ΛValue        []ygot.Annotation                     `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) IsYANGGoStruct() {
}

// GetCost retrieves the value of the leaf Cost from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Cost is set, it can
// safely use t.GetCost() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Cost == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) GetCost() uint32 {
	if t == nil || t.Cost == nil {
		return 0
	}
	return *t.Cost
}

// GetFloodingType retrieves the value of the leaf FloodingType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FloodingType is set, it can
// safely use t.GetFloodingType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FloodingType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) GetFloodingType() E_OpenconfigMpls_MplsSrlgFloodingType {
	if t == nil || t.FloodingType == 0 {
		return OpenconfigMpls_MplsSrlgFloodingType_FLOODED_SRLG
	}
	return t.FloodingType
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.FloodingType == 0 {
		t.FloodingType = OpenconfigMpls_MplsSrlgFloodingType_FLOODED_SRLG
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State struct {
	ΛMetadata     []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Cost          *uint32                               `path:"cost" module:"openconfig-network-instance"`
	ΛCost         []ygot.Annotation                     `path:"@cost" ygotAnnotation:"true"`
	FloodingType  E_OpenconfigMpls_MplsSrlgFloodingType `path:"flooding-type" module:"openconfig-network-instance"`
	ΛFloodingType []ygot.Annotation                     `path:"@flooding-type" ygotAnnotation:"true"`
	Name          *string                               `path:"name" module:"openconfig-network-instance"`
	ΛName         []ygot.Annotation                     `path:"@name" ygotAnnotation:"true"`
	Value         *uint32                               `path:"value" module:"openconfig-network-instance"`
	ΛValue        []ygot.Annotation                     `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) IsYANGGoStruct() {
}

// GetCost retrieves the value of the leaf Cost from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Cost is set, it can
// safely use t.GetCost() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Cost == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) GetCost() uint32 {
	if t == nil || t.Cost == nil {
		return 0
	}
	return *t.Cost
}

// GetFloodingType retrieves the value of the leaf FloodingType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FloodingType is set, it can
// safely use t.GetFloodingType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FloodingType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) GetFloodingType() E_OpenconfigMpls_MplsSrlgFloodingType {
	if t == nil || t.FloodingType == 0 {
		return OpenconfigMpls_MplsSrlgFloodingType_FLOODED_SRLG
	}
	return t.FloodingType
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.FloodingType == 0 {
		t.FloodingType = OpenconfigMpls_MplsSrlgFloodingType_FLOODED_SRLG
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/static-srlg-members YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers struct {
	ΛMetadata    []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	MembersList  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList `path:"members-list" module:"openconfig-network-instance"`
	ΛMembersList []ygot.Annotation                                                                                                                       `path:"@members-list" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) IsYANGGoStruct() {
}

// NewMembersList creates a new entry in the MembersList list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) NewMembersList(FromAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MembersList == nil {
		t.MembersList = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList)
	}

	key := FromAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.MembersList[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list MembersList", key)
	}

	t.MembersList[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList{
		FromAddress: &FromAddress,
	}

	return t.MembersList[key], nil
}

// RenameMembersList renames an entry in the list MembersList within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) RenameMembersList(oldK, newK string) error {
	if _, ok := t.MembersList[newK]; ok {
		return fmt.Errorf("key %v already exists in MembersList", newK)
	}

	e, ok := t.MembersList[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in MembersList", oldK)
	}
	e.FromAddress = &newK

	t.MembersList[newK] = e
	delete(t.MembersList, oldK)
	return nil
}

// GetOrCreateMembersListMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) GetOrCreateMembersListMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList {
	if t.MembersList == nil {
		t.MembersList = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList)
	}
	return t.MembersList
}

// GetOrCreateMembersList retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) GetOrCreateMembersList(FromAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList {

	key := FromAddress

	if v, ok := t.MembersList[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewMembersList(FromAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateMembersList got unexpected error: %v", err))
	}
	return v
}

// GetMembersList retrieves the value with the specified key from
// the MembersList map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) GetMembersList(FromAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList {

	if t == nil {
		return nil
	}

	key := FromAddress

	if lm, ok := t.MembersList[key]; ok {
		return lm
	}
	return nil
}

// AppendMembersList appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList struct to the
// list MembersList of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) AppendMembersList(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) error {
	if v.FromAddress == nil {
		return fmt.Errorf("invalid nil key received for FromAddress")
	}

	key := *v.FromAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MembersList == nil {
		t.MembersList = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList)
	}

	if _, ok := t.MembersList[key]; ok {
		return fmt.Errorf("duplicate key for list MembersList %v", key)
	}

	t.MembersList[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.MembersList {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/static-srlg-members/members-list YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList struct {
	ΛMetadata    []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig      []ygot.Annotation                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	FromAddress  *string                                                                                                                             `path:"from-address" module:"openconfig-network-instance"`
	ΛFromAddress []ygot.Annotation                                                                                                                   `path:"@from-address" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State  `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFromAddress retrieves the value of the leaf FromAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FromAddress is set, it can
// safely use t.GetFromAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FromAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) GetFromAddress() string {
	if t == nil || t.FromAddress == nil {
		return ""
	}
	return *t.FromAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) ΛListKeyMap() (map[string]interface{}, error) {
	if t.FromAddress == nil {
		return nil, fmt.Errorf("nil value for key FromAddress")
	}

	return map[string]interface{}{
		"from-address": *t.FromAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/static-srlg-members/members-list/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	FromAddress  *string           `path:"from-address" module:"openconfig-network-instance"`
	ΛFromAddress []ygot.Annotation `path:"@from-address" ygotAnnotation:"true"`
	ToAddress    *string           `path:"to-address" module:"openconfig-network-instance"`
	ΛToAddress   []ygot.Annotation `path:"@to-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) IsYANGGoStruct() {
}

// GetFromAddress retrieves the value of the leaf FromAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FromAddress is set, it can
// safely use t.GetFromAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FromAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) GetFromAddress() string {
	if t == nil || t.FromAddress == nil {
		return ""
	}
	return *t.FromAddress
}

// GetToAddress retrieves the value of the leaf ToAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ToAddress is set, it can
// safely use t.GetToAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ToAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) GetToAddress() string {
	if t == nil || t.ToAddress == nil {
		return ""
	}
	return *t.ToAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/static-srlg-members/members-list/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	FromAddress  *string           `path:"from-address" module:"openconfig-network-instance"`
	ΛFromAddress []ygot.Annotation `path:"@from-address" ygotAnnotation:"true"`
	ToAddress    *string           `path:"to-address" module:"openconfig-network-instance"`
	ΛToAddress   []ygot.Annotation `path:"@to-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) IsYANGGoStruct() {
}

// GetFromAddress retrieves the value of the leaf FromAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FromAddress is set, it can
// safely use t.GetFromAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FromAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) GetFromAddress() string {
	if t == nil || t.FromAddress == nil {
		return ""
	}
	return *t.FromAddress
}

// GetToAddress retrieves the value of the leaf ToAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ToAddress is set, it can
// safely use t.GetToAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ToAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) GetToAddress() string {
	if t == nil || t.ToAddress == nil {
		return ""
	}
	return *t.ToAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_Srlgs_Srlg_StaticSrlgMembers_MembersList_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/te-lsp-timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers struct {
	ΛMetadata []ygot.Annotation                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/te-lsp-timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CleanupDelay     *uint16           `path:"cleanup-delay" module:"openconfig-network-instance"`
	ΛCleanupDelay    []ygot.Annotation `path:"@cleanup-delay" ygotAnnotation:"true"`
	InstallDelay     *uint16           `path:"install-delay" module:"openconfig-network-instance"`
	ΛInstallDelay    []ygot.Annotation `path:"@install-delay" ygotAnnotation:"true"`
	ReoptimizeTimer  *uint16           `path:"reoptimize-timer" module:"openconfig-network-instance"`
	ΛReoptimizeTimer []ygot.Annotation `path:"@reoptimize-timer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) IsYANGGoStruct() {
}

// GetCleanupDelay retrieves the value of the leaf CleanupDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CleanupDelay is set, it can
// safely use t.GetCleanupDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CleanupDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) GetCleanupDelay() uint16 {
	if t == nil || t.CleanupDelay == nil {
		return 0
	}
	return *t.CleanupDelay
}

// GetInstallDelay retrieves the value of the leaf InstallDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstallDelay is set, it can
// safely use t.GetInstallDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstallDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) GetInstallDelay() uint16 {
	if t == nil || t.InstallDelay == nil {
		return 0
	}
	return *t.InstallDelay
}

// GetReoptimizeTimer retrieves the value of the leaf ReoptimizeTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReoptimizeTimer is set, it can
// safely use t.GetReoptimizeTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReoptimizeTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) GetReoptimizeTimer() uint16 {
	if t == nil || t.ReoptimizeTimer == nil {
		return 0
	}
	return *t.ReoptimizeTimer
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-global-attributes/te-lsp-timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CleanupDelay     *uint16           `path:"cleanup-delay" module:"openconfig-network-instance"`
	ΛCleanupDelay    []ygot.Annotation `path:"@cleanup-delay" ygotAnnotation:"true"`
	InstallDelay     *uint16           `path:"install-delay" module:"openconfig-network-instance"`
	ΛInstallDelay    []ygot.Annotation `path:"@install-delay" ygotAnnotation:"true"`
	ReoptimizeTimer  *uint16           `path:"reoptimize-timer" module:"openconfig-network-instance"`
	ΛReoptimizeTimer []ygot.Annotation `path:"@reoptimize-timer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) IsYANGGoStruct() {
}

// GetCleanupDelay retrieves the value of the leaf CleanupDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CleanupDelay is set, it can
// safely use t.GetCleanupDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CleanupDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) GetCleanupDelay() uint16 {
	if t == nil || t.CleanupDelay == nil {
		return 0
	}
	return *t.CleanupDelay
}

// GetInstallDelay retrieves the value of the leaf InstallDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstallDelay is set, it can
// safely use t.GetInstallDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstallDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) GetInstallDelay() uint16 {
	if t == nil || t.InstallDelay == nil {
		return 0
	}
	return *t.InstallDelay
}

// GetReoptimizeTimer retrieves the value of the leaf ReoptimizeTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReoptimizeTimer is set, it can
// safely use t.GetReoptimizeTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReoptimizeTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) GetReoptimizeTimer() uint16 {
	if t == nil || t.ReoptimizeTimer == nil {
		return 0
	}
	return *t.ReoptimizeTimer
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeGlobalAttributes_TeLspTimers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes struct {
	ΛMetadata  []ygot.Annotation                                                                                           `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                           `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface struct {
	ΛMetadata             []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config               `path:"config" module:"openconfig-network-instance"`
	ΛConfig               []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	IgpFloodingBandwidth  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth `path:"igp-flooding-bandwidth" module:"openconfig-network-instance"`
	ΛIgpFloodingBandwidth []ygot.Annotation                                                                                                     `path:"@igp-flooding-bandwidth" ygotAnnotation:"true"`
	InterfaceId           *string                                                                                                               `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId          []ygot.Annotation                                                                                                     `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef         `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef         []ygot.Annotation                                                                                                     `path:"@interface-ref" ygotAnnotation:"true"`
	State                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State                `path:"state" module:"openconfig-network-instance"`
	ΛState                []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config{}
	return t.Config
}

// GetOrCreateIgpFloodingBandwidth retrieves the value of the IgpFloodingBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetOrCreateIgpFloodingBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth {
	if t.IgpFloodingBandwidth != nil {
		return t.IgpFloodingBandwidth
	}
	t.IgpFloodingBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth{}
	return t.IgpFloodingBandwidth
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIgpFloodingBandwidth returns the value of the IgpFloodingBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface. If the receiver or the field IgpFloodingBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetIgpFloodingBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth {
	if t != nil && t.IgpFloodingBandwidth != nil {
		return t.IgpFloodingBandwidth
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.IgpFloodingBandwidth.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroup      []string          `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup     []ygot.Annotation `path:"@admin-group" ygotAnnotation:"true"`
	InterfaceId     *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId    []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	SrlgMembership  []string          `path:"srlg-membership" module:"openconfig-network-instance"`
	ΛSrlgMembership []ygot.Annotation `path:"@srlg-membership" ygotAnnotation:"true"`
	TeMetric        *uint32           `path:"te-metric" module:"openconfig-network-instance"`
	ΛTeMetric       []ygot.Annotation `path:"@te-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) IsYANGGoStruct() {
}

// GetAdminGroup retrieves the value of the leaf AdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroup is set, it can
// safely use t.GetAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) GetAdminGroup() []string {
	if t == nil || t.AdminGroup == nil {
		return nil
	}
	return t.AdminGroup
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetSrlgMembership retrieves the value of the leaf SrlgMembership from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrlgMembership is set, it can
// safely use t.GetSrlgMembership() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrlgMembership == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) GetSrlgMembership() []string {
	if t == nil || t.SrlgMembership == nil {
		return nil
	}
	return t.SrlgMembership
}

// GetTeMetric retrieves the value of the leaf TeMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TeMetric is set, it can
// safely use t.GetTeMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TeMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) GetTeMetric() uint32 {
	if t == nil || t.TeMetric == nil {
		return 0
	}
	return *t.TeMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/igp-flooding-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/igp-flooding-bandwidth/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config struct {
	ΛMetadata               []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	DeltaPercentage         *uint8                                                                                                                                               `path:"delta-percentage" module:"openconfig-network-instance"`
	ΛDeltaPercentage        []ygot.Annotation                                                                                                                                    `path:"@delta-percentage" ygotAnnotation:"true"`
	DownThresholds          []uint8                                                                                                                                              `path:"down-thresholds" module:"openconfig-network-instance"`
	ΛDownThresholds         []ygot.Annotation                                                                                                                                    `path:"@down-thresholds" ygotAnnotation:"true"`
	ThresholdSpecification  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification `path:"threshold-specification" module:"openconfig-network-instance"`
	ΛThresholdSpecification []ygot.Annotation                                                                                                                                    `path:"@threshold-specification" ygotAnnotation:"true"`
	ThresholdType           E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType          `path:"threshold-type" module:"openconfig-network-instance"`
	ΛThresholdType          []ygot.Annotation                                                                                                                                    `path:"@threshold-type" ygotAnnotation:"true"`
	UpDownThresholds        []uint8                                                                                                                                              `path:"up-down-thresholds" module:"openconfig-network-instance"`
	ΛUpDownThresholds       []ygot.Annotation                                                                                                                                    `path:"@up-down-thresholds" ygotAnnotation:"true"`
	UpThresholds            []uint8                                                                                                                                              `path:"up-thresholds" module:"openconfig-network-instance"`
	ΛUpThresholds           []ygot.Annotation                                                                                                                                    `path:"@up-thresholds" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) IsYANGGoStruct() {
}

// GetDeltaPercentage retrieves the value of the leaf DeltaPercentage from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeltaPercentage is set, it can
// safely use t.GetDeltaPercentage() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeltaPercentage == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) GetDeltaPercentage() uint8 {
	if t == nil || t.DeltaPercentage == nil {
		return 0
	}
	return *t.DeltaPercentage
}

// GetDownThresholds retrieves the value of the leaf DownThresholds from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DownThresholds is set, it can
// safely use t.GetDownThresholds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DownThresholds == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) GetDownThresholds() []uint8 {
	if t == nil || t.DownThresholds == nil {
		return nil
	}
	return t.DownThresholds
}

// GetThresholdSpecification retrieves the value of the leaf ThresholdSpecification from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ThresholdSpecification is set, it can
// safely use t.GetThresholdSpecification() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ThresholdSpecification == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) GetThresholdSpecification() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification {
	if t == nil || t.ThresholdSpecification == 0 {
		return 0
	}
	return t.ThresholdSpecification
}

// GetThresholdType retrieves the value of the leaf ThresholdType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ThresholdType is set, it can
// safely use t.GetThresholdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ThresholdType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) GetThresholdType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType {
	if t == nil || t.ThresholdType == 0 {
		return 0
	}
	return t.ThresholdType
}

// GetUpDownThresholds retrieves the value of the leaf UpDownThresholds from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDownThresholds is set, it can
// safely use t.GetUpDownThresholds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDownThresholds == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) GetUpDownThresholds() []uint8 {
	if t == nil || t.UpDownThresholds == nil {
		return nil
	}
	return t.UpDownThresholds
}

// GetUpThresholds retrieves the value of the leaf UpThresholds from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpThresholds is set, it can
// safely use t.GetUpThresholds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpThresholds == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) GetUpThresholds() []uint8 {
	if t == nil || t.UpThresholds == nil {
		return nil
	}
	return t.UpThresholds
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/igp-flooding-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State struct {
	ΛMetadata               []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	DeltaPercentage         *uint8                                                                                                                                               `path:"delta-percentage" module:"openconfig-network-instance"`
	ΛDeltaPercentage        []ygot.Annotation                                                                                                                                    `path:"@delta-percentage" ygotAnnotation:"true"`
	DownThresholds          []uint8                                                                                                                                              `path:"down-thresholds" module:"openconfig-network-instance"`
	ΛDownThresholds         []ygot.Annotation                                                                                                                                    `path:"@down-thresholds" ygotAnnotation:"true"`
	ThresholdSpecification  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification `path:"threshold-specification" module:"openconfig-network-instance"`
	ΛThresholdSpecification []ygot.Annotation                                                                                                                                    `path:"@threshold-specification" ygotAnnotation:"true"`
	ThresholdType           E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType          `path:"threshold-type" module:"openconfig-network-instance"`
	ΛThresholdType          []ygot.Annotation                                                                                                                                    `path:"@threshold-type" ygotAnnotation:"true"`
	UpDownThresholds        []uint8                                                                                                                                              `path:"up-down-thresholds" module:"openconfig-network-instance"`
	ΛUpDownThresholds       []ygot.Annotation                                                                                                                                    `path:"@up-down-thresholds" ygotAnnotation:"true"`
	UpThresholds            []uint8                                                                                                                                              `path:"up-thresholds" module:"openconfig-network-instance"`
	ΛUpThresholds           []ygot.Annotation                                                                                                                                    `path:"@up-thresholds" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) IsYANGGoStruct() {
}

// GetDeltaPercentage retrieves the value of the leaf DeltaPercentage from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeltaPercentage is set, it can
// safely use t.GetDeltaPercentage() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeltaPercentage == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) GetDeltaPercentage() uint8 {
	if t == nil || t.DeltaPercentage == nil {
		return 0
	}
	return *t.DeltaPercentage
}

// GetDownThresholds retrieves the value of the leaf DownThresholds from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DownThresholds is set, it can
// safely use t.GetDownThresholds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DownThresholds == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) GetDownThresholds() []uint8 {
	if t == nil || t.DownThresholds == nil {
		return nil
	}
	return t.DownThresholds
}

// GetThresholdSpecification retrieves the value of the leaf ThresholdSpecification from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ThresholdSpecification is set, it can
// safely use t.GetThresholdSpecification() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ThresholdSpecification == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) GetThresholdSpecification() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification {
	if t == nil || t.ThresholdSpecification == 0 {
		return 0
	}
	return t.ThresholdSpecification
}

// GetThresholdType retrieves the value of the leaf ThresholdType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ThresholdType is set, it can
// safely use t.GetThresholdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ThresholdType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) GetThresholdType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType {
	if t == nil || t.ThresholdType == 0 {
		return 0
	}
	return t.ThresholdType
}

// GetUpDownThresholds retrieves the value of the leaf UpDownThresholds from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDownThresholds is set, it can
// safely use t.GetUpDownThresholds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDownThresholds == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) GetUpDownThresholds() []uint8 {
	if t == nil || t.UpDownThresholds == nil {
		return nil
	}
	return t.UpDownThresholds
}

// GetUpThresholds retrieves the value of the leaf UpThresholds from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpThresholds is set, it can
// safely use t.GetUpThresholds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpThresholds == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) GetUpThresholds() []uint8 {
	if t == nil || t.UpThresholds == nil {
		return nil
	}
	return t.UpThresholds
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/mpls/te-interface-attributes/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroup      []string          `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup     []ygot.Annotation `path:"@admin-group" ygotAnnotation:"true"`
	InterfaceId     *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId    []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	SrlgMembership  []string          `path:"srlg-membership" module:"openconfig-network-instance"`
	ΛSrlgMembership []ygot.Annotation `path:"@srlg-membership" ygotAnnotation:"true"`
	TeMetric        *uint32           `path:"te-metric" module:"openconfig-network-instance"`
	ΛTeMetric       []ygot.Annotation `path:"@te-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) IsYANGGoStruct() {
}

// GetAdminGroup retrieves the value of the leaf AdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroup is set, it can
// safely use t.GetAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) GetAdminGroup() []string {
	if t == nil || t.AdminGroup == nil {
		return nil
	}
	return t.AdminGroup
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetSrlgMembership retrieves the value of the leaf SrlgMembership from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrlgMembership is set, it can
// safely use t.GetSrlgMembership() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrlgMembership == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) GetSrlgMembership() []string {
	if t == nil || t.SrlgMembership == nil {
		return nil
	}
	return t.SrlgMembership
}

// GetTeMetric retrieves the value of the leaf TeMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TeMetric is set, it can
// safely use t.GetTeMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TeMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) GetTeMetric() uint32 {
	if t == nil || t.TeMetric == nil {
		return 0
	}
	return *t.TeMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding struct {
	ΛMetadata            []ygot.Annotation                                                                                `path:"@" ygotAnnotation:"true"`
	Interfaces           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces          `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces          []ygot.Annotation                                                                                `path:"@interfaces" ygotAnnotation:"true"`
	PathSelectionGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups `path:"path-selection-groups" module:"openconfig-network-instance"`
	ΛPathSelectionGroups []ygot.Annotation                                                                                `path:"@path-selection-groups" ygotAnnotation:"true"`
	Policies             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies            `path:"policies" module:"openconfig-network-instance"`
	ΛPolicies            []ygot.Annotation                                                                                `path:"@policies" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) IsYANGGoStruct() {
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces{}
	return t.Interfaces
}

// GetOrCreatePathSelectionGroups retrieves the value of the PathSelectionGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) GetOrCreatePathSelectionGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups {
	if t.PathSelectionGroups != nil {
		return t.PathSelectionGroups
	}
	t.PathSelectionGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups{}
	return t.PathSelectionGroups
}

// GetOrCreatePolicies retrieves the value of the Policies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) GetOrCreatePolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies {
	if t.Policies != nil {
		return t.Policies
	}
	t.Policies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies{}
	return t.Policies
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetPathSelectionGroups returns the value of the PathSelectionGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding. If the receiver or the field PathSelectionGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) GetPathSelectionGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups {
	if t != nil && t.PathSelectionGroups != nil {
		return t.PathSelectionGroups
	}
	return nil
}

// GetPolicies returns the value of the Policies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding. If the receiver or the field Policies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) GetPolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies {
	if t != nil && t.Policies != nil {
		return t.Policies
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Interfaces.PopulateDefaults()
	t.PathSelectionGroups.PopulateDefaults()
	t.Policies.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                            `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface struct {
	ΛMetadata     []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config       `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                              `path:"@config" ygotAnnotation:"true"`
	InterfaceId   *string                                                                                                        `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId  []ygot.Annotation                                                                                              `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                              `path:"@interface-ref" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ApplyForwardingPolicy    *string           `path:"apply-forwarding-policy" module:"openconfig-network-instance"`
	ΛApplyForwardingPolicy   []ygot.Annotation `path:"@apply-forwarding-policy" ygotAnnotation:"true"`
	ApplyVrfSelectionPolicy  *string           `path:"apply-vrf-selection-policy" module:"openconfig-network-instance"`
	ΛApplyVrfSelectionPolicy []ygot.Annotation `path:"@apply-vrf-selection-policy" ygotAnnotation:"true"`
	InterfaceId              *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId             []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetApplyForwardingPolicy retrieves the value of the leaf ApplyForwardingPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ApplyForwardingPolicy is set, it can
// safely use t.GetApplyForwardingPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ApplyForwardingPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) GetApplyForwardingPolicy() string {
	if t == nil || t.ApplyForwardingPolicy == nil {
		return ""
	}
	return *t.ApplyForwardingPolicy
}

// GetApplyVrfSelectionPolicy retrieves the value of the leaf ApplyVrfSelectionPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ApplyVrfSelectionPolicy is set, it can
// safely use t.GetApplyVrfSelectionPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ApplyVrfSelectionPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) GetApplyVrfSelectionPolicy() string {
	if t == nil || t.ApplyVrfSelectionPolicy == nil {
		return ""
	}
	return *t.ApplyVrfSelectionPolicy
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/interfaces/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ApplyForwardingPolicy    *string           `path:"apply-forwarding-policy" module:"openconfig-network-instance"`
	ΛApplyForwardingPolicy   []ygot.Annotation `path:"@apply-forwarding-policy" ygotAnnotation:"true"`
	ApplyVrfSelectionPolicy  *string           `path:"apply-vrf-selection-policy" module:"openconfig-network-instance"`
	ΛApplyVrfSelectionPolicy []ygot.Annotation `path:"@apply-vrf-selection-policy" ygotAnnotation:"true"`
	InterfaceId              *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId             []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetApplyForwardingPolicy retrieves the value of the leaf ApplyForwardingPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ApplyForwardingPolicy is set, it can
// safely use t.GetApplyForwardingPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ApplyForwardingPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) GetApplyForwardingPolicy() string {
	if t == nil || t.ApplyForwardingPolicy == nil {
		return ""
	}
	return *t.ApplyForwardingPolicy
}

// GetApplyVrfSelectionPolicy retrieves the value of the leaf ApplyVrfSelectionPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ApplyVrfSelectionPolicy is set, it can
// safely use t.GetApplyVrfSelectionPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ApplyVrfSelectionPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) GetApplyVrfSelectionPolicy() string {
	if t == nil || t.ApplyVrfSelectionPolicy == nil {
		return ""
	}
	return *t.ApplyVrfSelectionPolicy
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/path-selection-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups struct {
	ΛMetadata           []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	PathSelectionGroup  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup `path:"path-selection-group" module:"openconfig-network-instance"`
	ΛPathSelectionGroup []ygot.Annotation                                                                                                              `path:"@path-selection-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) IsYANGGoStruct() {
}

// NewPathSelectionGroup creates a new entry in the PathSelectionGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) NewPathSelectionGroup(GroupId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathSelectionGroup == nil {
		t.PathSelectionGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup)
	}

	key := GroupId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PathSelectionGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PathSelectionGroup", key)
	}

	t.PathSelectionGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup{
		GroupId: &GroupId,
	}

	return t.PathSelectionGroup[key], nil
}

// RenamePathSelectionGroup renames an entry in the list PathSelectionGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) RenamePathSelectionGroup(oldK, newK string) error {
	if _, ok := t.PathSelectionGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in PathSelectionGroup", newK)
	}

	e, ok := t.PathSelectionGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PathSelectionGroup", oldK)
	}
	e.GroupId = &newK

	t.PathSelectionGroup[newK] = e
	delete(t.PathSelectionGroup, oldK)
	return nil
}

// GetOrCreatePathSelectionGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) GetOrCreatePathSelectionGroupMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup {
	if t.PathSelectionGroup == nil {
		t.PathSelectionGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup)
	}
	return t.PathSelectionGroup
}

// GetOrCreatePathSelectionGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) GetOrCreatePathSelectionGroup(GroupId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup {

	key := GroupId

	if v, ok := t.PathSelectionGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPathSelectionGroup(GroupId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePathSelectionGroup got unexpected error: %v", err))
	}
	return v
}

// GetPathSelectionGroup retrieves the value with the specified key from
// the PathSelectionGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) GetPathSelectionGroup(GroupId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup {

	if t == nil {
		return nil
	}

	key := GroupId

	if lm, ok := t.PathSelectionGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendPathSelectionGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup struct to the
// list PathSelectionGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) AppendPathSelectionGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) error {
	if v.GroupId == nil {
		return fmt.Errorf("invalid nil key received for GroupId")
	}

	key := *v.GroupId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathSelectionGroup == nil {
		t.PathSelectionGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup)
	}

	if _, ok := t.PathSelectionGroup[key]; ok {
		return fmt.Errorf("duplicate key for list PathSelectionGroup %v", key)
	}

	t.PathSelectionGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PathSelectionGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/path-selection-groups/path-selection-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	GroupId   *string                                                                                                                    `path:"group-id" module:"openconfig-network-instance"`
	ΛGroupId  []ygot.Annotation                                                                                                          `path:"@group-id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetGroupId retrieves the value of the leaf GroupId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if GroupId is set, it can
// safely use t.GetGroupId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.GroupId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) GetGroupId() string {
	if t == nil || t.GroupId == nil {
		return ""
	}
	return *t.GroupId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.GroupId == nil {
		return nil, fmt.Errorf("nil value for key GroupId")
	}

	return map[string]interface{}{
		"group-id": *t.GroupId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/path-selection-groups/path-selection-group/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	GroupId   *string           `path:"group-id" module:"openconfig-network-instance"`
	ΛGroupId  []ygot.Annotation `path:"@group-id" ygotAnnotation:"true"`
	MplsLsp   []string          `path:"mpls-lsp" module:"openconfig-network-instance"`
	ΛMplsLsp  []ygot.Annotation `path:"@mpls-lsp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) IsYANGGoStruct() {
}

// GetGroupId retrieves the value of the leaf GroupId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if GroupId is set, it can
// safely use t.GetGroupId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.GroupId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) GetGroupId() string {
	if t == nil || t.GroupId == nil {
		return ""
	}
	return *t.GroupId
}

// GetMplsLsp retrieves the value of the leaf MplsLsp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLsp is set, it can
// safely use t.GetMplsLsp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLsp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) GetMplsLsp() []string {
	if t == nil || t.MplsLsp == nil {
		return nil
	}
	return t.MplsLsp
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/path-selection-groups/path-selection-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	GroupId   *string           `path:"group-id" module:"openconfig-network-instance"`
	ΛGroupId  []ygot.Annotation `path:"@group-id" ygotAnnotation:"true"`
	MplsLsp   []string          `path:"mpls-lsp" module:"openconfig-network-instance"`
	ΛMplsLsp  []ygot.Annotation `path:"@mpls-lsp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) IsYANGGoStruct() {
}

// GetGroupId retrieves the value of the leaf GroupId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if GroupId is set, it can
// safely use t.GetGroupId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.GroupId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) GetGroupId() string {
	if t == nil || t.GroupId == nil {
		return ""
	}
	return *t.GroupId
}

// GetMplsLsp retrieves the value of the leaf MplsLsp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLsp is set, it can
// safely use t.GetMplsLsp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLsp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) GetMplsLsp() []string {
	if t == nil || t.MplsLsp == nil {
		return nil
	}
	return t.MplsLsp
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_PathSelectionGroups_PathSelectionGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies struct {
	ΛMetadata []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	Policy    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy `path:"policy" module:"openconfig-network-instance"`
	ΛPolicy   []ygot.Annotation                                                                                       `path:"@policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) IsYANGGoStruct() {
}

// NewPolicy creates a new entry in the Policy list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) NewPolicy(PolicyId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Policy == nil {
		t.Policy = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy)
	}

	key := PolicyId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Policy[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Policy", key)
	}

	t.Policy[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy{
		PolicyId: &PolicyId,
	}

	return t.Policy[key], nil
}

// RenamePolicy renames an entry in the list Policy within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) RenamePolicy(oldK, newK string) error {
	if _, ok := t.Policy[newK]; ok {
		return fmt.Errorf("key %v already exists in Policy", newK)
	}

	e, ok := t.Policy[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Policy", oldK)
	}
	e.PolicyId = &newK

	t.Policy[newK] = e
	delete(t.Policy, oldK)
	return nil
}

// GetOrCreatePolicyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) GetOrCreatePolicyMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy {
	if t.Policy == nil {
		t.Policy = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy)
	}
	return t.Policy
}

// GetOrCreatePolicy retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) GetOrCreatePolicy(PolicyId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy {

	key := PolicyId

	if v, ok := t.Policy[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPolicy(PolicyId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePolicy got unexpected error: %v", err))
	}
	return v
}

// GetPolicy retrieves the value with the specified key from
// the Policy map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) GetPolicy(PolicyId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy {

	if t == nil {
		return nil
	}

	key := PolicyId

	if lm, ok := t.Policy[key]; ok {
		return lm
	}
	return nil
}

// AppendPolicy appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy struct to the
// list Policy of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) AppendPolicy(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) error {
	if v.PolicyId == nil {
		return fmt.Errorf("invalid nil key received for PolicyId")
	}

	key := *v.PolicyId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Policy == nil {
		t.Policy = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy)
	}

	if _, ok := t.Policy[key]; ok {
		return fmt.Errorf("duplicate key for list Policy %v", key)
	}

	t.Policy[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Policy {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy struct {
	ΛMetadata []ygot.Annotation                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                   `path:"@config" ygotAnnotation:"true"`
	PolicyId  *string                                                                                             `path:"policy-id" module:"openconfig-network-instance"`
	ΛPolicyId []ygot.Annotation                                                                                   `path:"@policy-id" ygotAnnotation:"true"`
	Rules     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules  `path:"rules" module:"openconfig-network-instance"`
	ΛRules    []ygot.Annotation                                                                                   `path:"@rules" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config{}
	return t.Config
}

// GetOrCreateRules retrieves the value of the Rules field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) GetOrCreateRules() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules {
	if t.Rules != nil {
		return t.Rules
	}
	t.Rules = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules{}
	return t.Rules
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetRules returns the value of the Rules struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy. If the receiver or the field Rules is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) GetRules() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules {
	if t != nil && t.Rules != nil {
		return t.Rules
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPolicyId retrieves the value of the leaf PolicyId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PolicyId is set, it can
// safely use t.GetPolicyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PolicyId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) GetPolicyId() string {
	if t == nil || t.PolicyId == nil {
		return ""
	}
	return *t.PolicyId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Rules.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PolicyId == nil {
		return nil, fmt.Errorf("nil value for key PolicyId")
	}

	return map[string]interface{}{
		"policy-id": *t.PolicyId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config struct {
	ΛMetadata []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	PolicyId  *string                                                                                                   `path:"policy-id" module:"openconfig-network-instance"`
	ΛPolicyId []ygot.Annotation                                                                                         `path:"@policy-id" ygotAnnotation:"true"`
	Type      E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) IsYANGGoStruct() {
}

// GetPolicyId retrieves the value of the leaf PolicyId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PolicyId is set, it can
// safely use t.GetPolicyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PolicyId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) GetPolicyId() string {
	if t == nil || t.PolicyId == nil {
		return ""
	}
	return *t.PolicyId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) GetType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type {
	if t == nil || t.Type == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_PBR_POLICY
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Type == 0 {
		t.Type = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_PBR_POLICY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules struct {
	ΛMetadata []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	Rule      map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule `path:"rule" module:"openconfig-network-instance"`
	ΛRule     []ygot.Annotation                                                                                                  `path:"@rule" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) IsYANGGoStruct() {
}

// NewRule creates a new entry in the Rule list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) NewRule(SequenceId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Rule == nil {
		t.Rule = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule)
	}

	key := SequenceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Rule[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Rule", key)
	}

	t.Rule[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule{
		SequenceId: &SequenceId,
	}

	return t.Rule[key], nil
}

// RenameRule renames an entry in the list Rule within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) RenameRule(oldK, newK uint32) error {
	if _, ok := t.Rule[newK]; ok {
		return fmt.Errorf("key %v already exists in Rule", newK)
	}

	e, ok := t.Rule[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Rule", oldK)
	}
	e.SequenceId = &newK

	t.Rule[newK] = e
	delete(t.Rule, oldK)
	return nil
}

// GetOrCreateRuleMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) GetOrCreateRuleMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule {
	if t.Rule == nil {
		t.Rule = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule)
	}
	return t.Rule
}

// GetOrCreateRule retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) GetOrCreateRule(SequenceId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule {

	key := SequenceId

	if v, ok := t.Rule[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRule(SequenceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRule got unexpected error: %v", err))
	}
	return v
}

// GetRule retrieves the value with the specified key from
// the Rule map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) GetRule(SequenceId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule {

	if t == nil {
		return nil
	}

	key := SequenceId

	if lm, ok := t.Rule[key]; ok {
		return lm
	}
	return nil
}

// AppendRule appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule struct to the
// list Rule of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) AppendRule(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) error {
	if v.SequenceId == nil {
		return fmt.Errorf("invalid nil key received for SequenceId")
	}

	key := *v.SequenceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Rule == nil {
		t.Rule = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule)
	}

	if _, ok := t.Rule[key]; ok {
		return fmt.Errorf("duplicate key for list Rule %v", key)
	}

	t.Rule[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Rule {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule struct {
	ΛMetadata   []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	Action      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action    `path:"action" module:"openconfig-network-instance"`
	ΛAction     []ygot.Annotation                                                                                                 `path:"@action" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config    `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                                 `path:"@config" ygotAnnotation:"true"`
	Ipv4        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4      `path:"ipv4" module:"openconfig-network-instance"`
	ΛIpv4       []ygot.Annotation                                                                                                 `path:"@ipv4" ygotAnnotation:"true"`
	Ipv6        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6      `path:"ipv6" module:"openconfig-network-instance"`
	ΛIpv6       []ygot.Annotation                                                                                                 `path:"@ipv6" ygotAnnotation:"true"`
	L2          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2        `path:"l2" module:"openconfig-network-instance"`
	ΛL2         []ygot.Annotation                                                                                                 `path:"@l2" ygotAnnotation:"true"`
	SequenceId  *uint32                                                                                                           `path:"sequence-id" module:"openconfig-network-instance"`
	ΛSequenceId []ygot.Annotation                                                                                                 `path:"@sequence-id" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State     `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                 `path:"@state" ygotAnnotation:"true"`
	Transport   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport `path:"transport" module:"openconfig-network-instance"`
	ΛTransport  []ygot.Annotation                                                                                                 `path:"@transport" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) IsYANGGoStruct() {
}

// GetOrCreateAction retrieves the value of the Action field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetOrCreateAction() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action {
	if t.Action != nil {
		return t.Action
	}
	t.Action = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action{}
	return t.Action
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config{}
	return t.Config
}

// GetOrCreateIpv4 retrieves the value of the Ipv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetOrCreateIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4 {
	if t.Ipv4 != nil {
		return t.Ipv4
	}
	t.Ipv4 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4{}
	return t.Ipv4
}

// GetOrCreateIpv6 retrieves the value of the Ipv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetOrCreateIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6 {
	if t.Ipv6 != nil {
		return t.Ipv6
	}
	t.Ipv6 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6{}
	return t.Ipv6
}

// GetOrCreateL2 retrieves the value of the L2 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetOrCreateL2() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2 {
	if t.L2 != nil {
		return t.L2
	}
	t.L2 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2{}
	return t.L2
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State{}
	return t.State
}

// GetOrCreateTransport retrieves the value of the Transport field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetOrCreateTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport {
	if t.Transport != nil {
		return t.Transport
	}
	t.Transport = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport{}
	return t.Transport
}

// GetAction returns the value of the Action struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule. If the receiver or the field Action is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetAction() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action {
	if t != nil && t.Action != nil {
		return t.Action
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIpv4 returns the value of the Ipv4 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule. If the receiver or the field Ipv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4 {
	if t != nil && t.Ipv4 != nil {
		return t.Ipv4
	}
	return nil
}

// GetIpv6 returns the value of the Ipv6 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule. If the receiver or the field Ipv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6 {
	if t != nil && t.Ipv6 != nil {
		return t.Ipv6
	}
	return nil
}

// GetL2 returns the value of the L2 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule. If the receiver or the field L2 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetL2() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2 {
	if t != nil && t.L2 != nil {
		return t.L2
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTransport returns the value of the Transport struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule. If the receiver or the field Transport is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport {
	if t != nil && t.Transport != nil {
		return t.Transport
	}
	return nil
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Action.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.Ipv4.PopulateDefaults()
	t.Ipv6.PopulateDefaults()
	t.L2.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Transport.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SequenceId == nil {
		return nil, fmt.Errorf("nil value for key SequenceId")
	}

	return map[string]interface{}{
		"sequence-id": *t.SequenceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action struct {
	ΛMetadata       []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config         `path:"config" module:"openconfig-network-instance"`
	ΛConfig         []ygot.Annotation                                                                                                             `path:"@config" ygotAnnotation:"true"`
	EncapsulateGre  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre `path:"encapsulate-gre" module:"openconfig-network-instance"`
	ΛEncapsulateGre []ygot.Annotation                                                                                                             `path:"@encapsulate-gre" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config{}
	return t.Config
}

// GetOrCreateEncapsulateGre retrieves the value of the EncapsulateGre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) GetOrCreateEncapsulateGre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre {
	if t.EncapsulateGre != nil {
		return t.EncapsulateGre
	}
	t.EncapsulateGre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre{}
	return t.EncapsulateGre
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEncapsulateGre returns the value of the EncapsulateGre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action. If the receiver or the field EncapsulateGre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) GetEncapsulateGre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre {
	if t != nil && t.EncapsulateGre != nil {
		return t.EncapsulateGre
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.EncapsulateGre.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DecapFallbackNetworkInstance  *string           `path:"decap-fallback-network-instance" module:"openconfig-network-instance"`
	ΛDecapFallbackNetworkInstance []ygot.Annotation `path:"@decap-fallback-network-instance" ygotAnnotation:"true"`
	DecapNetworkInstance          *string           `path:"decap-network-instance" module:"openconfig-network-instance"`
	ΛDecapNetworkInstance         []ygot.Annotation `path:"@decap-network-instance" ygotAnnotation:"true"`
	DecapsulateGre                *bool             `path:"decapsulate-gre" module:"openconfig-network-instance"`
	ΛDecapsulateGre               []ygot.Annotation `path:"@decapsulate-gre" ygotAnnotation:"true"`
	DecapsulateGue                *bool             `path:"decapsulate-gue" module:"openconfig-network-instance"`
	ΛDecapsulateGue               []ygot.Annotation `path:"@decapsulate-gue" ygotAnnotation:"true"`
	DecapsulateMplsInUdp          *bool             `path:"decapsulate-mpls-in-udp" module:"openconfig-network-instance"`
	ΛDecapsulateMplsInUdp         []ygot.Annotation `path:"@decapsulate-mpls-in-udp" ygotAnnotation:"true"`
	Discard                       *bool             `path:"discard" module:"openconfig-network-instance"`
	ΛDiscard                      []ygot.Annotation `path:"@discard" ygotAnnotation:"true"`
	NetworkInstance               *string           `path:"network-instance" module:"openconfig-network-instance"`
	ΛNetworkInstance              []ygot.Annotation `path:"@network-instance" ygotAnnotation:"true"`
	NextHop                       *string           `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop                      []ygot.Annotation `path:"@next-hop" ygotAnnotation:"true"`
	PathSelectionGroup            *string           `path:"path-selection-group" module:"openconfig-network-instance"`
	ΛPathSelectionGroup           []ygot.Annotation `path:"@path-selection-group" ygotAnnotation:"true"`
	PostDecapNetworkInstance      *string           `path:"post-decap-network-instance" module:"openconfig-network-instance"`
	ΛPostDecapNetworkInstance     []ygot.Annotation `path:"@post-decap-network-instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) IsYANGGoStruct() {
}

// GetDecapFallbackNetworkInstance retrieves the value of the leaf DecapFallbackNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapFallbackNetworkInstance is set, it can
// safely use t.GetDecapFallbackNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapFallbackNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetDecapFallbackNetworkInstance() string {
	if t == nil || t.DecapFallbackNetworkInstance == nil {
		return ""
	}
	return *t.DecapFallbackNetworkInstance
}

// GetDecapNetworkInstance retrieves the value of the leaf DecapNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapNetworkInstance is set, it can
// safely use t.GetDecapNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetDecapNetworkInstance() string {
	if t == nil || t.DecapNetworkInstance == nil {
		return ""
	}
	return *t.DecapNetworkInstance
}

// GetDecapsulateGre retrieves the value of the leaf DecapsulateGre from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateGre is set, it can
// safely use t.GetDecapsulateGre() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateGre == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetDecapsulateGre() bool {
	if t == nil || t.DecapsulateGre == nil {
		return false
	}
	return *t.DecapsulateGre
}

// GetDecapsulateGue retrieves the value of the leaf DecapsulateGue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateGue is set, it can
// safely use t.GetDecapsulateGue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateGue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetDecapsulateGue() bool {
	if t == nil || t.DecapsulateGue == nil {
		return false
	}
	return *t.DecapsulateGue
}

// GetDecapsulateMplsInUdp retrieves the value of the leaf DecapsulateMplsInUdp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateMplsInUdp is set, it can
// safely use t.GetDecapsulateMplsInUdp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateMplsInUdp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetDecapsulateMplsInUdp() bool {
	if t == nil || t.DecapsulateMplsInUdp == nil {
		return false
	}
	return *t.DecapsulateMplsInUdp
}

// GetDiscard retrieves the value of the leaf Discard from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Discard is set, it can
// safely use t.GetDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Discard == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetDiscard() bool {
	if t == nil || t.Discard == nil {
		return false
	}
	return *t.Discard
}

// GetNetworkInstance retrieves the value of the leaf NetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkInstance is set, it can
// safely use t.GetNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetNetworkInstance() string {
	if t == nil || t.NetworkInstance == nil {
		return ""
	}
	return *t.NetworkInstance
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPathSelectionGroup retrieves the value of the leaf PathSelectionGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathSelectionGroup is set, it can
// safely use t.GetPathSelectionGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathSelectionGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetPathSelectionGroup() string {
	if t == nil || t.PathSelectionGroup == nil {
		return ""
	}
	return *t.PathSelectionGroup
}

// GetPostDecapNetworkInstance retrieves the value of the leaf PostDecapNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostDecapNetworkInstance is set, it can
// safely use t.GetPostDecapNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostDecapNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) GetPostDecapNetworkInstance() string {
	if t == nil || t.PostDecapNetworkInstance == nil {
		return ""
	}
	return *t.PostDecapNetworkInstance
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DecapsulateGre == nil {
		var v bool = false
		t.DecapsulateGre = &v
	}
	if t.DecapsulateGue == nil {
		var v bool = false
		t.DecapsulateGue = &v
	}
	if t.DecapsulateMplsInUdp == nil {
		var v bool = false
		t.DecapsulateMplsInUdp = &v
	}
	if t.Discard == nil {
		var v bool = false
		t.Discard = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encapsulate-gre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre struct {
	ΛMetadata []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config  `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State   `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	Targets   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets `path:"targets" module:"openconfig-network-instance"`
	ΛTargets  []ygot.Annotation                                                                                                                     `path:"@targets" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State{}
	return t.State
}

// GetOrCreateTargets retrieves the value of the Targets field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) GetOrCreateTargets() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets {
	if t.Targets != nil {
		return t.Targets
	}
	t.Targets = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets{}
	return t.Targets
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTargets returns the value of the Targets struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre. If the receiver or the field Targets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) GetTargets() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets {
	if t != nil && t.Targets != nil {
		return t.Targets
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Targets.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encapsulate-gre/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	IdentifyingPrefix  *string           `path:"identifying-prefix" module:"openconfig-network-instance"`
	ΛIdentifyingPrefix []ygot.Annotation `path:"@identifying-prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config) IsYANGGoStruct() {
}

// GetIdentifyingPrefix retrieves the value of the leaf IdentifyingPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IdentifyingPrefix is set, it can
// safely use t.GetIdentifyingPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IdentifyingPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config) GetIdentifyingPrefix() string {
	if t == nil || t.IdentifyingPrefix == nil {
		return ""
	}
	return *t.IdentifyingPrefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encapsulate-gre/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	IdentifyingPrefix  *string           `path:"identifying-prefix" module:"openconfig-network-instance"`
	ΛIdentifyingPrefix []ygot.Annotation `path:"@identifying-prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State) IsYANGGoStruct() {
}

// GetIdentifyingPrefix retrieves the value of the leaf IdentifyingPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IdentifyingPrefix is set, it can
// safely use t.GetIdentifyingPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IdentifyingPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State) GetIdentifyingPrefix() string {
	if t == nil || t.IdentifyingPrefix == nil {
		return ""
	}
	return *t.IdentifyingPrefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encapsulate-gre/targets YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets struct {
	ΛMetadata []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Target    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target `path:"target" module:"openconfig-network-instance"`
	ΛTarget   []ygot.Annotation                                                                                                                                       `path:"@target" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) IsYANGGoStruct() {
}

// NewTarget creates a new entry in the Target list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) NewTarget(Id string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Target == nil {
		t.Target = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Target[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Target", key)
	}

	t.Target[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target{
		Id: &Id,
	}

	return t.Target[key], nil
}

// RenameTarget renames an entry in the list Target within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) RenameTarget(oldK, newK string) error {
	if _, ok := t.Target[newK]; ok {
		return fmt.Errorf("key %v already exists in Target", newK)
	}

	e, ok := t.Target[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Target", oldK)
	}
	e.Id = &newK

	t.Target[newK] = e
	delete(t.Target, oldK)
	return nil
}

// GetOrCreateTargetMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) GetOrCreateTargetMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target {
	if t.Target == nil {
		t.Target = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target)
	}
	return t.Target
}

// GetOrCreateTarget retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) GetOrCreateTarget(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target {

	key := Id

	if v, ok := t.Target[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTarget(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTarget got unexpected error: %v", err))
	}
	return v
}

// GetTarget retrieves the value with the specified key from
// the Target map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) GetTarget(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Target[key]; ok {
		return lm
	}
	return nil
}

// AppendTarget appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target struct to the
// list Target of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) AppendTarget(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Target == nil {
		t.Target = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target)
	}

	if _, ok := t.Target[key]; ok {
		return fmt.Errorf("duplicate key for list Target %v", key)
	}

	t.Target[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Target {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encapsulate-gre/targets/target YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target struct {
	ΛMetadata []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	Id        *string                                                                                                                                             `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                                                                                   `path:"@id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encapsulate-gre/targets/target/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Destination  *string           `path:"destination" module:"openconfig-network-instance"`
	ΛDestination []ygot.Annotation `path:"@destination" ygotAnnotation:"true"`
	Id           *string           `path:"id" module:"openconfig-network-instance"`
	ΛId          []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	IpTtl        *uint8            `path:"ip-ttl" module:"openconfig-network-instance"`
	ΛIpTtl       []ygot.Annotation `path:"@ip-ttl" ygotAnnotation:"true"`
	Source       *string           `path:"source" module:"openconfig-network-instance"`
	ΛSource      []ygot.Annotation `path:"@source" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) IsYANGGoStruct() {
}

// GetDestination retrieves the value of the leaf Destination from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Destination is set, it can
// safely use t.GetDestination() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Destination == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) GetDestination() string {
	if t == nil || t.Destination == nil {
		return ""
	}
	return *t.Destination
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetIpTtl retrieves the value of the leaf IpTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpTtl is set, it can
// safely use t.GetIpTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) GetIpTtl() uint8 {
	if t == nil || t.IpTtl == nil {
		return 0
	}
	return *t.IpTtl
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encapsulate-gre/targets/target/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Destination  *string           `path:"destination" module:"openconfig-network-instance"`
	ΛDestination []ygot.Annotation `path:"@destination" ygotAnnotation:"true"`
	Id           *string           `path:"id" module:"openconfig-network-instance"`
	ΛId          []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	IpTtl        *uint8            `path:"ip-ttl" module:"openconfig-network-instance"`
	ΛIpTtl       []ygot.Annotation `path:"@ip-ttl" ygotAnnotation:"true"`
	Source       *string           `path:"source" module:"openconfig-network-instance"`
	ΛSource      []ygot.Annotation `path:"@source" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) IsYANGGoStruct() {
}

// GetDestination retrieves the value of the leaf Destination from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Destination is set, it can
// safely use t.GetDestination() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Destination == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) GetDestination() string {
	if t == nil || t.Destination == nil {
		return ""
	}
	return *t.Destination
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetIpTtl retrieves the value of the leaf IpTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpTtl is set, it can
// safely use t.GetIpTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) GetIpTtl() uint8 {
	if t == nil || t.IpTtl == nil {
		return 0
	}
	return *t.IpTtl
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_EncapsulateGre_Targets_Target_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DecapFallbackNetworkInstance  *string           `path:"decap-fallback-network-instance" module:"openconfig-network-instance"`
	ΛDecapFallbackNetworkInstance []ygot.Annotation `path:"@decap-fallback-network-instance" ygotAnnotation:"true"`
	DecapNetworkInstance          *string           `path:"decap-network-instance" module:"openconfig-network-instance"`
	ΛDecapNetworkInstance         []ygot.Annotation `path:"@decap-network-instance" ygotAnnotation:"true"`
	DecapsulateGre                *bool             `path:"decapsulate-gre" module:"openconfig-network-instance"`
	ΛDecapsulateGre               []ygot.Annotation `path:"@decapsulate-gre" ygotAnnotation:"true"`
	DecapsulateGue                *bool             `path:"decapsulate-gue" module:"openconfig-network-instance"`
	ΛDecapsulateGue               []ygot.Annotation `path:"@decapsulate-gue" ygotAnnotation:"true"`
	DecapsulateMplsInUdp          *bool             `path:"decapsulate-mpls-in-udp" module:"openconfig-network-instance"`
	ΛDecapsulateMplsInUdp         []ygot.Annotation `path:"@decapsulate-mpls-in-udp" ygotAnnotation:"true"`
	Discard                       *bool             `path:"discard" module:"openconfig-network-instance"`
	ΛDiscard                      []ygot.Annotation `path:"@discard" ygotAnnotation:"true"`
	NetworkInstance               *string           `path:"network-instance" module:"openconfig-network-instance"`
	ΛNetworkInstance              []ygot.Annotation `path:"@network-instance" ygotAnnotation:"true"`
	NextHop                       *string           `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop                      []ygot.Annotation `path:"@next-hop" ygotAnnotation:"true"`
	PathSelectionGroup            *string           `path:"path-selection-group" module:"openconfig-network-instance"`
	ΛPathSelectionGroup           []ygot.Annotation `path:"@path-selection-group" ygotAnnotation:"true"`
	PostDecapNetworkInstance      *string           `path:"post-decap-network-instance" module:"openconfig-network-instance"`
	ΛPostDecapNetworkInstance     []ygot.Annotation `path:"@post-decap-network-instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) IsYANGGoStruct() {
}

// GetDecapFallbackNetworkInstance retrieves the value of the leaf DecapFallbackNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapFallbackNetworkInstance is set, it can
// safely use t.GetDecapFallbackNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapFallbackNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetDecapFallbackNetworkInstance() string {
	if t == nil || t.DecapFallbackNetworkInstance == nil {
		return ""
	}
	return *t.DecapFallbackNetworkInstance
}

// GetDecapNetworkInstance retrieves the value of the leaf DecapNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapNetworkInstance is set, it can
// safely use t.GetDecapNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetDecapNetworkInstance() string {
	if t == nil || t.DecapNetworkInstance == nil {
		return ""
	}
	return *t.DecapNetworkInstance
}

// GetDecapsulateGre retrieves the value of the leaf DecapsulateGre from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateGre is set, it can
// safely use t.GetDecapsulateGre() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateGre == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetDecapsulateGre() bool {
	if t == nil || t.DecapsulateGre == nil {
		return false
	}
	return *t.DecapsulateGre
}

// GetDecapsulateGue retrieves the value of the leaf DecapsulateGue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateGue is set, it can
// safely use t.GetDecapsulateGue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateGue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetDecapsulateGue() bool {
	if t == nil || t.DecapsulateGue == nil {
		return false
	}
	return *t.DecapsulateGue
}

// GetDecapsulateMplsInUdp retrieves the value of the leaf DecapsulateMplsInUdp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateMplsInUdp is set, it can
// safely use t.GetDecapsulateMplsInUdp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateMplsInUdp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetDecapsulateMplsInUdp() bool {
	if t == nil || t.DecapsulateMplsInUdp == nil {
		return false
	}
	return *t.DecapsulateMplsInUdp
}

// GetDiscard retrieves the value of the leaf Discard from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Discard is set, it can
// safely use t.GetDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Discard == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetDiscard() bool {
	if t == nil || t.Discard == nil {
		return false
	}
	return *t.Discard
}

// GetNetworkInstance retrieves the value of the leaf NetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkInstance is set, it can
// safely use t.GetNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetNetworkInstance() string {
	if t == nil || t.NetworkInstance == nil {
		return ""
	}
	return *t.NetworkInstance
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetPathSelectionGroup retrieves the value of the leaf PathSelectionGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathSelectionGroup is set, it can
// safely use t.GetPathSelectionGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathSelectionGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetPathSelectionGroup() string {
	if t == nil || t.PathSelectionGroup == nil {
		return ""
	}
	return *t.PathSelectionGroup
}

// GetPostDecapNetworkInstance retrieves the value of the leaf PostDecapNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostDecapNetworkInstance is set, it can
// safely use t.GetPostDecapNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostDecapNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) GetPostDecapNetworkInstance() string {
	if t == nil || t.PostDecapNetworkInstance == nil {
		return ""
	}
	return *t.PostDecapNetworkInstance
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DecapsulateGre == nil {
		var v bool = false
		t.DecapsulateGre = &v
	}
	if t.DecapsulateGue == nil {
		var v bool = false
		t.DecapsulateGue = &v
	}
	if t.DecapsulateMplsInUdp == nil {
		var v bool = false
		t.DecapsulateMplsInUdp = &v
	}
	if t.Discard == nil {
		var v bool = false
		t.Discard = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Action_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SequenceId  *uint32           `path:"sequence-id" module:"openconfig-network-instance"`
	ΛSequenceId []ygot.Annotation `path:"@sequence-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config) IsYANGGoStruct() {
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4 represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4 struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	Icmpv4    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4 `path:"icmpv4" module:"openconfig-network-instance"`
	ΛIcmpv4   []ygot.Annotation                                                                                                   `path:"@icmpv4" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config{}
	return t.Config
}

// GetOrCreateIcmpv4 retrieves the value of the Icmpv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) GetOrCreateIcmpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4 {
	if t.Icmpv4 != nil {
		return t.Icmpv4
	}
	t.Icmpv4 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4{}
	return t.Icmpv4
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIcmpv4 returns the value of the Icmpv4 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4. If the receiver or the field Icmpv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) GetIcmpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4 {
	if t != nil && t.Icmpv4 != nil {
		return t.Icmpv4
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Icmpv4.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config struct {
	ΛMetadata                    []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                                                                           `path:"destination-address" module:"openconfig-network-instance"`
	ΛDestinationAddress          []ygot.Annotation                                                                                                                 `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                                                                           `path:"destination-address-prefix-set" module:"openconfig-network-instance"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                                                                                 `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                                                                            `path:"dscp" module:"openconfig-network-instance"`
	ΛDscp                        []ygot.Annotation                                                                                                                 `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                                                                           `path:"dscp-set" module:"openconfig-network-instance"`
	ΛDscpSet                     []ygot.Annotation                                                                                                                 `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                                                                            `path:"hop-limit" module:"openconfig-network-instance"`
	ΛHopLimit                    []ygot.Annotation                                                                                                                 `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                                                                           `path:"length" module:"openconfig-network-instance"`
	ΛLength                      []ygot.Annotation                                                                                                                 `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol                    []ygot.Annotation                                                                                                                 `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                                                                           `path:"source-address" module:"openconfig-network-instance"`
	ΛSourceAddress               []ygot.Annotation                                                                                                                 `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                                                                           `path:"source-address-prefix-set" module:"openconfig-network-instance"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                                                                                 `path:"@source-address-prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) IsYANGGoStruct() {
}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetProtocol() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union ensures that UnionUint8
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Config_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4 represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/icmpv4 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4 struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/icmpv4/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv4Types_CODE `path:"code" module:"openconfig-network-instance"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv4Types_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) IsYANGGoStruct() {
}

// GetCode retrieves the value of the leaf Code from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) GetCode() E_OpenconfigIcmpv4Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) GetType() E_OpenconfigIcmpv4Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/icmpv4/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv4Types_CODE `path:"code" module:"openconfig-network-instance"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv4Types_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) IsYANGGoStruct() {
}

// GetCode retrieves the value of the leaf Code from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) GetCode() E_OpenconfigIcmpv4Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) GetType() E_OpenconfigIcmpv4Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_Icmpv4_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State struct {
	ΛMetadata                    []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                                                                          `path:"destination-address" module:"openconfig-network-instance"`
	ΛDestinationAddress          []ygot.Annotation                                                                                                                `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                                                                          `path:"destination-address-prefix-set" module:"openconfig-network-instance"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                                                                                `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                                                                           `path:"dscp" module:"openconfig-network-instance"`
	ΛDscp                        []ygot.Annotation                                                                                                                `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                                                                          `path:"dscp-set" module:"openconfig-network-instance"`
	ΛDscpSet                     []ygot.Annotation                                                                                                                `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                                                                           `path:"hop-limit" module:"openconfig-network-instance"`
	ΛHopLimit                    []ygot.Annotation                                                                                                                `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                                                                          `path:"length" module:"openconfig-network-instance"`
	ΛLength                      []ygot.Annotation                                                                                                                `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol                    []ygot.Annotation                                                                                                                `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                                                                          `path:"source-address" module:"openconfig-network-instance"`
	ΛSourceAddress               []ygot.Annotation                                                                                                                `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                                                                          `path:"source-address-prefix-set" module:"openconfig-network-instance"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                                                                                `path:"@source-address-prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) IsYANGGoStruct() {
}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetProtocol() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/state/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union ensures that UnionUint8
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv4_State_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6 represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6 struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	Icmpv6    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6 `path:"icmpv6" module:"openconfig-network-instance"`
	ΛIcmpv6   []ygot.Annotation                                                                                                   `path:"@icmpv6" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config{}
	return t.Config
}

// GetOrCreateIcmpv6 retrieves the value of the Icmpv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) GetOrCreateIcmpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6 {
	if t.Icmpv6 != nil {
		return t.Icmpv6
	}
	t.Icmpv6 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6{}
	return t.Icmpv6
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIcmpv6 returns the value of the Icmpv6 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6. If the receiver or the field Icmpv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) GetIcmpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6 {
	if t != nil && t.Icmpv6 != nil {
		return t.Icmpv6
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Icmpv6.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config struct {
	ΛMetadata                    []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                                                                           `path:"destination-address" module:"openconfig-network-instance"`
	ΛDestinationAddress          []ygot.Annotation                                                                                                                 `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                                                                           `path:"destination-address-prefix-set" module:"openconfig-network-instance"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                                                                                 `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	DestinationFlowLabel         *uint32                                                                                                                           `path:"destination-flow-label" module:"openconfig-network-instance"`
	ΛDestinationFlowLabel        []ygot.Annotation                                                                                                                 `path:"@destination-flow-label" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                                                                            `path:"dscp" module:"openconfig-network-instance"`
	ΛDscp                        []ygot.Annotation                                                                                                                 `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                                                                           `path:"dscp-set" module:"openconfig-network-instance"`
	ΛDscpSet                     []ygot.Annotation                                                                                                                 `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                                                                            `path:"hop-limit" module:"openconfig-network-instance"`
	ΛHopLimit                    []ygot.Annotation                                                                                                                 `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                                                                           `path:"length" module:"openconfig-network-instance"`
	ΛLength                      []ygot.Annotation                                                                                                                 `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol                    []ygot.Annotation                                                                                                                 `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                                                                           `path:"source-address" module:"openconfig-network-instance"`
	ΛSourceAddress               []ygot.Annotation                                                                                                                 `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                                                                           `path:"source-address-prefix-set" module:"openconfig-network-instance"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                                                                                 `path:"@source-address-prefix-set" ygotAnnotation:"true"`
	SourceFlowLabel              *uint32                                                                                                                           `path:"source-flow-label" module:"openconfig-network-instance"`
	ΛSourceFlowLabel             []ygot.Annotation                                                                                                                 `path:"@source-flow-label" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) IsYANGGoStruct() {
}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDestinationFlowLabel retrieves the value of the leaf DestinationFlowLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationFlowLabel is set, it can
// safely use t.GetDestinationFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetDestinationFlowLabel() uint32 {
	if t == nil || t.DestinationFlowLabel == nil {
		return 0
	}
	return *t.DestinationFlowLabel
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetProtocol() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// GetSourceFlowLabel retrieves the value of the leaf SourceFlowLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceFlowLabel is set, it can
// safely use t.GetSourceFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) GetSourceFlowLabel() uint32 {
	if t == nil || t.SourceFlowLabel == nil {
		return 0
	}
	return *t.SourceFlowLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/config/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union ensures that UnionUint8
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Config_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6 represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/icmpv6 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6 struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/icmpv6/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv6Types_CODE `path:"code" module:"openconfig-network-instance"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv6Types_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) IsYANGGoStruct() {
}

// GetCode retrieves the value of the leaf Code from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) GetCode() E_OpenconfigIcmpv6Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) GetType() E_OpenconfigIcmpv6Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/icmpv6/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State struct {
	ΛMetadata []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Code      E_OpenconfigIcmpv6Types_CODE `path:"code" module:"openconfig-network-instance"`
	ΛCode     []ygot.Annotation            `path:"@code" ygotAnnotation:"true"`
	Type      E_OpenconfigIcmpv6Types_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) IsYANGGoStruct() {
}

// GetCode retrieves the value of the leaf Code from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Code is set, it can
// safely use t.GetCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Code == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) GetCode() E_OpenconfigIcmpv6Types_CODE {
	if t == nil || t.Code == 0 {
		return 0
	}
	return t.Code
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) GetType() E_OpenconfigIcmpv6Types_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_Icmpv6_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State struct {
	ΛMetadata                    []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	DestinationAddress           *string                                                                                                                          `path:"destination-address" module:"openconfig-network-instance"`
	ΛDestinationAddress          []ygot.Annotation                                                                                                                `path:"@destination-address" ygotAnnotation:"true"`
	DestinationAddressPrefixSet  *string                                                                                                                          `path:"destination-address-prefix-set" module:"openconfig-network-instance"`
	ΛDestinationAddressPrefixSet []ygot.Annotation                                                                                                                `path:"@destination-address-prefix-set" ygotAnnotation:"true"`
	DestinationFlowLabel         *uint32                                                                                                                          `path:"destination-flow-label" module:"openconfig-network-instance"`
	ΛDestinationFlowLabel        []ygot.Annotation                                                                                                                `path:"@destination-flow-label" ygotAnnotation:"true"`
	Dscp                         *uint8                                                                                                                           `path:"dscp" module:"openconfig-network-instance"`
	ΛDscp                        []ygot.Annotation                                                                                                                `path:"@dscp" ygotAnnotation:"true"`
	DscpSet                      []uint8                                                                                                                          `path:"dscp-set" module:"openconfig-network-instance"`
	ΛDscpSet                     []ygot.Annotation                                                                                                                `path:"@dscp-set" ygotAnnotation:"true"`
	HopLimit                     *uint8                                                                                                                           `path:"hop-limit" module:"openconfig-network-instance"`
	ΛHopLimit                    []ygot.Annotation                                                                                                                `path:"@hop-limit" ygotAnnotation:"true"`
	Length                       *uint16                                                                                                                          `path:"length" module:"openconfig-network-instance"`
	ΛLength                      []ygot.Annotation                                                                                                                `path:"@length" ygotAnnotation:"true"`
	Protocol                     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol                    []ygot.Annotation                                                                                                                `path:"@protocol" ygotAnnotation:"true"`
	SourceAddress                *string                                                                                                                          `path:"source-address" module:"openconfig-network-instance"`
	ΛSourceAddress               []ygot.Annotation                                                                                                                `path:"@source-address" ygotAnnotation:"true"`
	SourceAddressPrefixSet       *string                                                                                                                          `path:"source-address-prefix-set" module:"openconfig-network-instance"`
	ΛSourceAddressPrefixSet      []ygot.Annotation                                                                                                                `path:"@source-address-prefix-set" ygotAnnotation:"true"`
	SourceFlowLabel              *uint32                                                                                                                          `path:"source-flow-label" module:"openconfig-network-instance"`
	ΛSourceFlowLabel             []ygot.Annotation                                                                                                                `path:"@source-flow-label" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) IsYANGGoStruct() {
}

// GetDestinationAddress retrieves the value of the leaf DestinationAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddress is set, it can
// safely use t.GetDestinationAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetDestinationAddress() string {
	if t == nil || t.DestinationAddress == nil {
		return ""
	}
	return *t.DestinationAddress
}

// GetDestinationAddressPrefixSet retrieves the value of the leaf DestinationAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationAddressPrefixSet is set, it can
// safely use t.GetDestinationAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetDestinationAddressPrefixSet() string {
	if t == nil || t.DestinationAddressPrefixSet == nil {
		return ""
	}
	return *t.DestinationAddressPrefixSet
}

// GetDestinationFlowLabel retrieves the value of the leaf DestinationFlowLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationFlowLabel is set, it can
// safely use t.GetDestinationFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetDestinationFlowLabel() uint32 {
	if t == nil || t.DestinationFlowLabel == nil {
		return 0
	}
	return *t.DestinationFlowLabel
}

// GetDscp retrieves the value of the leaf Dscp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dscp is set, it can
// safely use t.GetDscp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dscp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetDscp() uint8 {
	if t == nil || t.Dscp == nil {
		return 0
	}
	return *t.Dscp
}

// GetDscpSet retrieves the value of the leaf DscpSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DscpSet is set, it can
// safely use t.GetDscpSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DscpSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetDscpSet() []uint8 {
	if t == nil || t.DscpSet == nil {
		return nil
	}
	return t.DscpSet
}

// GetHopLimit retrieves the value of the leaf HopLimit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HopLimit is set, it can
// safely use t.GetHopLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HopLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetHopLimit() uint8 {
	if t == nil || t.HopLimit == nil {
		return 0
	}
	return *t.HopLimit
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetProtocol() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union {
	if t == nil || t.Protocol == nil {
		return nil
	}
	return t.Protocol
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSourceAddressPrefixSet retrieves the value of the leaf SourceAddressPrefixSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressPrefixSet is set, it can
// safely use t.GetSourceAddressPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressPrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetSourceAddressPrefixSet() string {
	if t == nil || t.SourceAddressPrefixSet == nil {
		return ""
	}
	return *t.SourceAddressPrefixSet
}

// GetSourceFlowLabel retrieves the value of the leaf SourceFlowLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceFlowLabel is set, it can
// safely use t.GetSourceFlowLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceFlowLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) GetSourceFlowLabel() uint32 {
	if t == nil || t.SourceFlowLabel == nil {
		return 0
	}
	return *t.SourceFlowLabel
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/state/protocol within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, UnionUint8]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union ensures that E_OpenconfigPacketMatchTypes_IP_PROTOCOL
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union interface.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union ensures that UnionUint8
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union interface.
func (UnionUint8) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint8:
		return UnionUint8(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Ipv6_State_Protocol_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_IP_PROTOCOL, uint8]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2 represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/l2 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2 struct {
	ΛMetadata []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/l2/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config struct {
	ΛMetadata           []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	DestinationMac      *string                                                                                                                          `path:"destination-mac" module:"openconfig-network-instance"`
	ΛDestinationMac     []ygot.Annotation                                                                                                                `path:"@destination-mac" ygotAnnotation:"true"`
	DestinationMacMask  *string                                                                                                                          `path:"destination-mac-mask" module:"openconfig-network-instance"`
	ΛDestinationMacMask []ygot.Annotation                                                                                                                `path:"@destination-mac-mask" ygotAnnotation:"true"`
	Ethertype           OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union `path:"ethertype" module:"openconfig-network-instance"`
	ΛEthertype          []ygot.Annotation                                                                                                                `path:"@ethertype" ygotAnnotation:"true"`
	SourceMac           *string                                                                                                                          `path:"source-mac" module:"openconfig-network-instance"`
	ΛSourceMac          []ygot.Annotation                                                                                                                `path:"@source-mac" ygotAnnotation:"true"`
	SourceMacMask       *string                                                                                                                          `path:"source-mac-mask" module:"openconfig-network-instance"`
	ΛSourceMacMask      []ygot.Annotation                                                                                                                `path:"@source-mac-mask" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) IsYANGGoStruct() {
}

// GetDestinationMac retrieves the value of the leaf DestinationMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMac is set, it can
// safely use t.GetDestinationMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) GetDestinationMac() string {
	if t == nil || t.DestinationMac == nil {
		return ""
	}
	return *t.DestinationMac
}

// GetDestinationMacMask retrieves the value of the leaf DestinationMacMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMacMask is set, it can
// safely use t.GetDestinationMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) GetDestinationMacMask() string {
	if t == nil || t.DestinationMacMask == nil {
		return ""
	}
	return *t.DestinationMacMask
}

// GetEthertype retrieves the value of the leaf Ethertype from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ethertype is set, it can
// safely use t.GetEthertype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ethertype == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) GetEthertype() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union {
	if t == nil || t.Ethertype == nil {
		return nil
	}
	return t.Ethertype
}

// GetSourceMac retrieves the value of the leaf SourceMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMac is set, it can
// safely use t.GetSourceMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) GetSourceMac() string {
	if t == nil || t.SourceMac == nil {
		return ""
	}
	return *t.SourceMac
}

// GetSourceMacMask retrieves the value of the leaf SourceMacMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMacMask is set, it can
// safely use t.GetSourceMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) GetSourceMacMask() string {
	if t == nil || t.SourceMacMask == nil {
		return ""
	}
	return *t.SourceMacMask
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/l2/config/ethertype within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union ensures that E_OpenconfigPacketMatchTypes_ETHERTYPE
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union interface.
func (E_OpenconfigPacketMatchTypes_ETHERTYPE) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union ensures that UnionUint16
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union interface.
func (UnionUint16) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_Config_Ethertype_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_ETHERTYPE, uint16]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/l2/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State struct {
	ΛMetadata           []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	DestinationMac      *string                                                                                                                         `path:"destination-mac" module:"openconfig-network-instance"`
	ΛDestinationMac     []ygot.Annotation                                                                                                               `path:"@destination-mac" ygotAnnotation:"true"`
	DestinationMacMask  *string                                                                                                                         `path:"destination-mac-mask" module:"openconfig-network-instance"`
	ΛDestinationMacMask []ygot.Annotation                                                                                                               `path:"@destination-mac-mask" ygotAnnotation:"true"`
	Ethertype           OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union `path:"ethertype" module:"openconfig-network-instance"`
	ΛEthertype          []ygot.Annotation                                                                                                               `path:"@ethertype" ygotAnnotation:"true"`
	SourceMac           *string                                                                                                                         `path:"source-mac" module:"openconfig-network-instance"`
	ΛSourceMac          []ygot.Annotation                                                                                                               `path:"@source-mac" ygotAnnotation:"true"`
	SourceMacMask       *string                                                                                                                         `path:"source-mac-mask" module:"openconfig-network-instance"`
	ΛSourceMacMask      []ygot.Annotation                                                                                                               `path:"@source-mac-mask" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) IsYANGGoStruct() {
}

// GetDestinationMac retrieves the value of the leaf DestinationMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMac is set, it can
// safely use t.GetDestinationMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) GetDestinationMac() string {
	if t == nil || t.DestinationMac == nil {
		return ""
	}
	return *t.DestinationMac
}

// GetDestinationMacMask retrieves the value of the leaf DestinationMacMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationMacMask is set, it can
// safely use t.GetDestinationMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) GetDestinationMacMask() string {
	if t == nil || t.DestinationMacMask == nil {
		return ""
	}
	return *t.DestinationMacMask
}

// GetEthertype retrieves the value of the leaf Ethertype from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ethertype is set, it can
// safely use t.GetEthertype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ethertype == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) GetEthertype() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union {
	if t == nil || t.Ethertype == nil {
		return nil
	}
	return t.Ethertype
}

// GetSourceMac retrieves the value of the leaf SourceMac from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMac is set, it can
// safely use t.GetSourceMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMac == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) GetSourceMac() string {
	if t == nil || t.SourceMac == nil {
		return ""
	}
	return *t.SourceMac
}

// GetSourceMacMask retrieves the value of the leaf SourceMacMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceMacMask is set, it can
// safely use t.GetSourceMacMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceMacMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) GetSourceMacMask() string {
	if t == nil || t.SourceMacMask == nil {
		return ""
	}
	return *t.SourceMacMask
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/l2/state/ethertype within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_ETHERTYPE, UnionUint16]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union ensures that E_OpenconfigPacketMatchTypes_ETHERTYPE
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union interface.
func (E_OpenconfigPacketMatchTypes_ETHERTYPE) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union ensures that UnionUint16
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union interface.
func (UnionUint16) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_L2_State_Ethertype_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_ETHERTYPE, uint16]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MatchedOctets  *uint64           `path:"matched-octets" module:"openconfig-network-instance"`
	ΛMatchedOctets []ygot.Annotation `path:"@matched-octets" ygotAnnotation:"true"`
	MatchedPkts    *uint64           `path:"matched-pkts" module:"openconfig-network-instance"`
	ΛMatchedPkts   []ygot.Annotation `path:"@matched-pkts" ygotAnnotation:"true"`
	SequenceId     *uint32           `path:"sequence-id" module:"openconfig-network-instance"`
	ΛSequenceId    []ygot.Annotation `path:"@sequence-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) IsYANGGoStruct() {
}

// GetMatchedOctets retrieves the value of the leaf MatchedOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedOctets is set, it can
// safely use t.GetMatchedOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) GetMatchedOctets() uint64 {
	if t == nil || t.MatchedOctets == nil {
		return 0
	}
	return *t.MatchedOctets
}

// GetMatchedPkts retrieves the value of the leaf MatchedPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchedPkts is set, it can
// safely use t.GetMatchedPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchedPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) GetMatchedPkts() uint64 {
	if t == nil || t.MatchedPkts == nil {
		return 0
	}
	return *t.MatchedPkts
}

// GetSequenceId retrieves the value of the leaf SequenceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceId is set, it can
// safely use t.GetSequenceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) GetSequenceId() uint32 {
	if t == nil || t.SequenceId == nil {
		return 0
	}
	return *t.SequenceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config struct {
	ΛMetadata                []ygot.Annotation                                                                                                                             `path:"@" ygotAnnotation:"true"`
	BuiltinDetail            E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail                                                         `path:"builtin-detail" module:"openconfig-network-instance"`
	ΛBuiltinDetail           []ygot.Annotation                                                                                                                             `path:"@builtin-detail" ygotAnnotation:"true"`
	DestinationPort          OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union `path:"destination-port" module:"openconfig-network-instance"`
	ΛDestinationPort         []ygot.Annotation                                                                                                                             `path:"@destination-port" ygotAnnotation:"true"`
	DestinationPortSet       *string                                                                                                                                       `path:"destination-port-set" module:"openconfig-network-instance"`
	ΛDestinationPortSet      []ygot.Annotation                                                                                                                             `path:"@destination-port-set" ygotAnnotation:"true"`
	DetailMode               E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode                                                            `path:"detail-mode" module:"openconfig-network-instance"`
	ΛDetailMode              []ygot.Annotation                                                                                                                             `path:"@detail-mode" ygotAnnotation:"true"`
	ExplicitDetailMatchMode  E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode                                               `path:"explicit-detail-match-mode" module:"openconfig-network-instance"`
	ΛExplicitDetailMatchMode []ygot.Annotation                                                                                                                             `path:"@explicit-detail-match-mode" ygotAnnotation:"true"`
	ExplicitTcpFlags         []E_OpenconfigPacketMatchTypes_TCP_FLAGS                                                                                                      `path:"explicit-tcp-flags" module:"openconfig-network-instance"`
	ΛExplicitTcpFlags        []ygot.Annotation                                                                                                                             `path:"@explicit-tcp-flags" ygotAnnotation:"true"`
	SourcePort               OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union      `path:"source-port" module:"openconfig-network-instance"`
	ΛSourcePort              []ygot.Annotation                                                                                                                             `path:"@source-port" ygotAnnotation:"true"`
	SourcePortSet            *string                                                                                                                                       `path:"source-port-set" module:"openconfig-network-instance"`
	ΛSourcePortSet           []ygot.Annotation                                                                                                                             `path:"@source-port-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) IsYANGGoStruct() {
}

// GetBuiltinDetail retrieves the value of the leaf BuiltinDetail from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BuiltinDetail is set, it can
// safely use t.GetBuiltinDetail() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BuiltinDetail == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetBuiltinDetail() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail {
	if t == nil || t.BuiltinDetail == 0 {
		return 0
	}
	return t.BuiltinDetail
}

// GetDestinationPort retrieves the value of the leaf DestinationPort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPort is set, it can
// safely use t.GetDestinationPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetDestinationPort() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union {
	if t == nil || t.DestinationPort == nil {
		return nil
	}
	return t.DestinationPort
}

// GetDestinationPortSet retrieves the value of the leaf DestinationPortSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPortSet is set, it can
// safely use t.GetDestinationPortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetDestinationPortSet() string {
	if t == nil || t.DestinationPortSet == nil {
		return ""
	}
	return *t.DestinationPortSet
}

// GetDetailMode retrieves the value of the leaf DetailMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DetailMode is set, it can
// safely use t.GetDetailMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DetailMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetDetailMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode {
	if t == nil || t.DetailMode == 0 {
		return 0
	}
	return t.DetailMode
}

// GetExplicitDetailMatchMode retrieves the value of the leaf ExplicitDetailMatchMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitDetailMatchMode is set, it can
// safely use t.GetExplicitDetailMatchMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitDetailMatchMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetExplicitDetailMatchMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode {
	if t == nil || t.ExplicitDetailMatchMode == 0 {
		return 0
	}
	return t.ExplicitDetailMatchMode
}

// GetExplicitTcpFlags retrieves the value of the leaf ExplicitTcpFlags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitTcpFlags is set, it can
// safely use t.GetExplicitTcpFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitTcpFlags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetExplicitTcpFlags() []E_OpenconfigPacketMatchTypes_TCP_FLAGS {
	if t == nil || t.ExplicitTcpFlags == nil {
		return nil
	}
	return t.ExplicitTcpFlags
}

// GetSourcePort retrieves the value of the leaf SourcePort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePort is set, it can
// safely use t.GetSourcePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetSourcePort() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union {
	if t == nil || t.SourcePort == nil {
		return nil
	}
	return t.SourcePort
}

// GetSourcePortSet retrieves the value of the leaf SourcePortSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePortSet is set, it can
// safely use t.GetSourcePortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) GetSourcePortSet() string {
	if t == nil || t.SourcePortSet == nil {
		return ""
	}
	return *t.SourcePortSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/destination-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union ensures that UnionUint16
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_DestinationPort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/source-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union ensures that UnionUint16
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_Config_SourcePort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	BuiltinDetail            E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail                                                        `path:"builtin-detail" module:"openconfig-network-instance"`
	ΛBuiltinDetail           []ygot.Annotation                                                                                                                            `path:"@builtin-detail" ygotAnnotation:"true"`
	DestinationPort          OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union `path:"destination-port" module:"openconfig-network-instance"`
	ΛDestinationPort         []ygot.Annotation                                                                                                                            `path:"@destination-port" ygotAnnotation:"true"`
	DestinationPortSet       *string                                                                                                                                      `path:"destination-port-set" module:"openconfig-network-instance"`
	ΛDestinationPortSet      []ygot.Annotation                                                                                                                            `path:"@destination-port-set" ygotAnnotation:"true"`
	DetailMode               E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode                                                           `path:"detail-mode" module:"openconfig-network-instance"`
	ΛDetailMode              []ygot.Annotation                                                                                                                            `path:"@detail-mode" ygotAnnotation:"true"`
	ExplicitDetailMatchMode  E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode                                              `path:"explicit-detail-match-mode" module:"openconfig-network-instance"`
	ΛExplicitDetailMatchMode []ygot.Annotation                                                                                                                            `path:"@explicit-detail-match-mode" ygotAnnotation:"true"`
	ExplicitTcpFlags         []E_OpenconfigPacketMatchTypes_TCP_FLAGS                                                                                                     `path:"explicit-tcp-flags" module:"openconfig-network-instance"`
	ΛExplicitTcpFlags        []ygot.Annotation                                                                                                                            `path:"@explicit-tcp-flags" ygotAnnotation:"true"`
	SourcePort               OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union      `path:"source-port" module:"openconfig-network-instance"`
	ΛSourcePort              []ygot.Annotation                                                                                                                            `path:"@source-port" ygotAnnotation:"true"`
	SourcePortSet            *string                                                                                                                                      `path:"source-port-set" module:"openconfig-network-instance"`
	ΛSourcePortSet           []ygot.Annotation                                                                                                                            `path:"@source-port-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) IsYANGGoStruct() {
}

// GetBuiltinDetail retrieves the value of the leaf BuiltinDetail from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BuiltinDetail is set, it can
// safely use t.GetBuiltinDetail() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BuiltinDetail == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetBuiltinDetail() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail {
	if t == nil || t.BuiltinDetail == 0 {
		return 0
	}
	return t.BuiltinDetail
}

// GetDestinationPort retrieves the value of the leaf DestinationPort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPort is set, it can
// safely use t.GetDestinationPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetDestinationPort() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union {
	if t == nil || t.DestinationPort == nil {
		return nil
	}
	return t.DestinationPort
}

// GetDestinationPortSet retrieves the value of the leaf DestinationPortSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DestinationPortSet is set, it can
// safely use t.GetDestinationPortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DestinationPortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetDestinationPortSet() string {
	if t == nil || t.DestinationPortSet == nil {
		return ""
	}
	return *t.DestinationPortSet
}

// GetDetailMode retrieves the value of the leaf DetailMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DetailMode is set, it can
// safely use t.GetDetailMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DetailMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetDetailMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode {
	if t == nil || t.DetailMode == 0 {
		return 0
	}
	return t.DetailMode
}

// GetExplicitDetailMatchMode retrieves the value of the leaf ExplicitDetailMatchMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitDetailMatchMode is set, it can
// safely use t.GetExplicitDetailMatchMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitDetailMatchMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetExplicitDetailMatchMode() E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode {
	if t == nil || t.ExplicitDetailMatchMode == 0 {
		return 0
	}
	return t.ExplicitDetailMatchMode
}

// GetExplicitTcpFlags retrieves the value of the leaf ExplicitTcpFlags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitTcpFlags is set, it can
// safely use t.GetExplicitTcpFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitTcpFlags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetExplicitTcpFlags() []E_OpenconfigPacketMatchTypes_TCP_FLAGS {
	if t == nil || t.ExplicitTcpFlags == nil {
		return nil
	}
	return t.ExplicitTcpFlags
}

// GetSourcePort retrieves the value of the leaf SourcePort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePort is set, it can
// safely use t.GetSourcePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetSourcePort() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union {
	if t == nil || t.SourcePort == nil {
		return nil
	}
	return t.SourcePort
}

// GetSourcePortSet retrieves the value of the leaf SourcePortSet from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourcePortSet is set, it can
// safely use t.GetSourcePortSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourcePortSet == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) GetSourcePortSet() string {
	if t == nil || t.SourcePortSet == nil {
		return ""
	}
	return *t.SourcePortSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/destination-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union ensures that UnionUint16
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_DestinationPort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/source-port within the YANG schema.
// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union interface {
	// Union type can be one of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, UnionString, UnionUint16]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union ensures that E_OpenconfigPacketMatchTypes_PortNumRange_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union interface.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union ensures that UnionUint16
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union interface.
func (UnionUint16) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint16:
		return UnionUint16(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Rules_Rule_Transport_State_SourcePort_Union, unknown union type, got: %T, want any of [E_OpenconfigPacketMatchTypes_PortNumRange_Enum, string, uint16]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State represents the /openconfig-network-instance/network-instances/network-instance/policy-forwarding/policies/policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State struct {
	ΛMetadata []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	PolicyId  *string                                                                                                   `path:"policy-id" module:"openconfig-network-instance"`
	ΛPolicyId []ygot.Annotation                                                                                         `path:"@policy-id" ygotAnnotation:"true"`
	Type      E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) IsYANGGoStruct() {
}

// GetPolicyId retrieves the value of the leaf PolicyId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PolicyId is set, it can
// safely use t.GetPolicyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PolicyId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) GetPolicyId() string {
	if t == nil || t.PolicyId == nil {
		return ""
	}
	return *t.PolicyId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) GetType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type {
	if t == nil || t.Type == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_PBR_POLICY
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Type == 0 {
		t.Type = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_PBR_POLICY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols represents the /openconfig-network-instance/network-instances/network-instance/protocols YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Protocol  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol []ygot.Annotation                                                                                                                                                    `path:"@protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) IsYANGGoStruct() {}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key represents the key for list Protocol of element /openconfig-network-instance/network-instances/network-instance/protocols.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key struct {
	Identifier E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"identifier"`
	Name       string                                        `path:"name"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"identifier": t.Identifier,
		"name":       t.Name,
	}, nil
}

// NewProtocol creates a new entry in the Protocol list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) NewProtocol(Identifier E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, Name string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Protocol == nil {
		t.Protocol = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key{
		Identifier: Identifier,
		Name:       Name,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Protocol[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Protocol", key)
	}

	t.Protocol[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol{
		Identifier: Identifier,
		Name:       &Name,
	}

	return t.Protocol[key], nil
}

// RenameProtocol renames an entry in the list Protocol within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) RenameProtocol(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key) error {
	if _, ok := t.Protocol[newK]; ok {
		return fmt.Errorf("key %v already exists in Protocol", newK)
	}

	e, ok := t.Protocol[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Protocol", oldK)
	}
	e.Identifier = newK.Identifier
	e.Name = &newK.Name

	t.Protocol[newK] = e
	delete(t.Protocol, oldK)
	return nil
}

// GetOrCreateProtocolMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) GetOrCreateProtocolMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol {
	if t.Protocol == nil {
		t.Protocol = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol)
	}
	return t.Protocol
}

// GetOrCreateProtocol retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) GetOrCreateProtocol(Identifier E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key{
		Identifier: Identifier,
		Name:       Name,
	}

	if v, ok := t.Protocol[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewProtocol(Identifier, Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateProtocol got unexpected error: %v", err))
	}
	return v
}

// GetProtocol retrieves the value with the specified key from
// the Protocol map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) GetProtocol(Identifier E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, Name string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key{
		Identifier: Identifier,
		Name:       Name,
	}

	if lm, ok := t.Protocol[key]; ok {
		return lm
	}
	return nil
}

// AppendProtocol appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol struct to the
// list Protocol of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) AppendProtocol(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key for Name")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key{
		Identifier: v.Identifier,
		Name:       *v.Name,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Protocol == nil {
		t.Protocol = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol)
	}

	if _, ok := t.Protocol[key]; ok {
		return fmt.Errorf("duplicate key for list Protocol %v", key)
	}

	t.Protocol[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Protocol {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol struct {
	ΛMetadata        []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	Bgp              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp             `path:"bgp" module:"openconfig-network-instance"`
	ΛBgp             []ygot.Annotation                                                                              `path:"@bgp" ygotAnnotation:"true"`
	Config           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config          `path:"config" module:"openconfig-network-instance"`
	ΛConfig          []ygot.Annotation                                                                              `path:"@config" ygotAnnotation:"true"`
	Identifier       E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                                  `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier      []ygot.Annotation                                                                              `path:"@identifier" ygotAnnotation:"true"`
	Igmp             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp            `path:"igmp" module:"openconfig-network-instance"`
	ΛIgmp            []ygot.Annotation                                                                              `path:"@igmp" ygotAnnotation:"true"`
	Isis             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis            `path:"isis" module:"openconfig-network-instance"`
	ΛIsis            []ygot.Annotation                                                                              `path:"@isis" ygotAnnotation:"true"`
	LocalAggregates  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates `path:"local-aggregates" module:"openconfig-network-instance"`
	ΛLocalAggregates []ygot.Annotation                                                                              `path:"@local-aggregates" ygotAnnotation:"true"`
	Name             *string                                                                                        `path:"name" module:"openconfig-network-instance"`
	ΛName            []ygot.Annotation                                                                              `path:"@name" ygotAnnotation:"true"`
	Ospfv2           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2          `path:"ospfv2" module:"openconfig-network-instance"`
	ΛOspfv2          []ygot.Annotation                                                                              `path:"@ospfv2" ygotAnnotation:"true"`
	Pcep             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep            `path:"pcep" module:"openconfig-network-instance"`
	ΛPcep            []ygot.Annotation                                                                              `path:"@pcep" ygotAnnotation:"true"`
	Pim              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim             `path:"pim" module:"openconfig-network-instance"`
	ΛPim             []ygot.Annotation                                                                              `path:"@pim" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                              `path:"@state" ygotAnnotation:"true"`
	StaticRoutes     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes    `path:"static-routes" module:"openconfig-network-instance"`
	ΛStaticRoutes    []ygot.Annotation                                                                              `path:"@static-routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) IsYANGGoStruct() {
}

// GetOrCreateBgp retrieves the value of the Bgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateBgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp {
	if t.Bgp != nil {
		return t.Bgp
	}
	t.Bgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp{}
	return t.Bgp
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config{}
	return t.Config
}

// GetOrCreateIgmp retrieves the value of the Igmp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateIgmp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp {
	if t.Igmp != nil {
		return t.Igmp
	}
	t.Igmp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp{}
	return t.Igmp
}

// GetOrCreateIsis retrieves the value of the Isis field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateIsis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis {
	if t.Isis != nil {
		return t.Isis
	}
	t.Isis = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis{}
	return t.Isis
}

// GetOrCreateLocalAggregates retrieves the value of the LocalAggregates field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateLocalAggregates() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates {
	if t.LocalAggregates != nil {
		return t.LocalAggregates
	}
	t.LocalAggregates = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates{}
	return t.LocalAggregates
}

// GetOrCreateOspfv2 retrieves the value of the Ospfv2 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateOspfv2() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2 {
	if t.Ospfv2 != nil {
		return t.Ospfv2
	}
	t.Ospfv2 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2{}
	return t.Ospfv2
}

// GetOrCreatePcep retrieves the value of the Pcep field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreatePcep() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep {
	if t.Pcep != nil {
		return t.Pcep
	}
	t.Pcep = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep{}
	return t.Pcep
}

// GetOrCreatePim retrieves the value of the Pim field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreatePim() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim {
	if t.Pim != nil {
		return t.Pim
	}
	t.Pim = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim{}
	return t.Pim
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State{}
	return t.State
}

// GetOrCreateStaticRoutes retrieves the value of the StaticRoutes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOrCreateStaticRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes {
	if t.StaticRoutes != nil {
		return t.StaticRoutes
	}
	t.StaticRoutes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes{}
	return t.StaticRoutes
}

// GetBgp returns the value of the Bgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field Bgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetBgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp {
	if t != nil && t.Bgp != nil {
		return t.Bgp
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIgmp returns the value of the Igmp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field Igmp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetIgmp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp {
	if t != nil && t.Igmp != nil {
		return t.Igmp
	}
	return nil
}

// GetIsis returns the value of the Isis struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field Isis is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetIsis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis {
	if t != nil && t.Isis != nil {
		return t.Isis
	}
	return nil
}

// GetLocalAggregates returns the value of the LocalAggregates struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field LocalAggregates is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetLocalAggregates() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates {
	if t != nil && t.LocalAggregates != nil {
		return t.LocalAggregates
	}
	return nil
}

// GetOspfv2 returns the value of the Ospfv2 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field Ospfv2 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetOspfv2() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2 {
	if t != nil && t.Ospfv2 != nil {
		return t.Ospfv2
	}
	return nil
}

// GetPcep returns the value of the Pcep struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field Pcep is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetPcep() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep {
	if t != nil && t.Pcep != nil {
		return t.Pcep
	}
	return nil
}

// GetPim returns the value of the Pim struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field Pim is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetPim() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim {
	if t != nil && t.Pim != nil {
		return t.Pim
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetStaticRoutes returns the value of the StaticRoutes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol. If the receiver or the field StaticRoutes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetStaticRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes {
	if t != nil && t.StaticRoutes != nil {
		return t.StaticRoutes
	}
	return nil
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetIdentifier() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.Identifier == 0 {
		return 0
	}
	return t.Identifier
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Bgp.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.Igmp.PopulateDefaults()
	t.Isis.PopulateDefaults()
	t.LocalAggregates.PopulateDefaults()
	t.Ospfv2.PopulateDefaults()
	t.Pcep.PopulateDefaults()
	t.Pim.PopulateDefaults()
	t.State.PopulateDefaults()
	t.StaticRoutes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) ΛListKeyMap() (map[string]interface{}, error) {

	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"identifier": t.Identifier,
		"name":       *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp struct {
	ΛMetadata   []ygot.Annotation                                                                             `path:"@" ygotAnnotation:"true"`
	Global      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global     `path:"global" module:"openconfig-network-instance"`
	ΛGlobal     []ygot.Annotation                                                                             `path:"@global" ygotAnnotation:"true"`
	Neighbors   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors  `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors  []ygot.Annotation                                                                             `path:"@neighbors" ygotAnnotation:"true"`
	PeerGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups `path:"peer-groups" module:"openconfig-network-instance"`
	ΛPeerGroups []ygot.Annotation                                                                             `path:"@peer-groups" ygotAnnotation:"true"`
	Rib         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib        `path:"rib" module:"openconfig-network-instance"`
	ΛRib        []ygot.Annotation                                                                             `path:"@rib" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) IsYANGGoStruct() {
}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global{}
	return t.Global
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors{}
	return t.Neighbors
}

// GetOrCreatePeerGroups retrieves the value of the PeerGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetOrCreatePeerGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups {
	if t.PeerGroups != nil {
		return t.PeerGroups
	}
	t.PeerGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups{}
	return t.PeerGroups
}

// GetOrCreateRib retrieves the value of the Rib field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetOrCreateRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib {
	if t.Rib != nil {
		return t.Rib
	}
	t.Rib = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib{}
	return t.Rib
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// GetPeerGroups returns the value of the PeerGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp. If the receiver or the field PeerGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetPeerGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups {
	if t != nil && t.PeerGroups != nil {
		return t.PeerGroups
	}
	return nil
}

// GetRib returns the value of the Rib struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp. If the receiver or the field Rib is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) GetRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib {
	if t != nil && t.Rib != nil {
		return t.Rib
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Global.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
	t.PeerGroups.PopulateDefaults()
	t.Rib.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global struct {
	ΛMetadata                []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	AfiSafis                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis                `path:"afi-safis" module:"openconfig-network-instance"`
	ΛAfiSafis                []ygot.Annotation                                                                                                 `path:"@afi-safis" ygotAnnotation:"true"`
	ApplyPolicy              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy             `path:"apply-policy" module:"openconfig-network-instance"`
	ΛApplyPolicy             []ygot.Annotation                                                                                                 `path:"@apply-policy" ygotAnnotation:"true"`
	Confederation            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation           `path:"confederation" module:"openconfig-network-instance"`
	ΛConfederation           []ygot.Annotation                                                                                                 `path:"@confederation" ygotAnnotation:"true"`
	Config                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config                  `path:"config" module:"openconfig-network-instance"`
	ΛConfig                  []ygot.Annotation                                                                                                 `path:"@config" ygotAnnotation:"true"`
	DefaultRouteDistance     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance    `path:"default-route-distance" module:"openconfig-network-instance"`
	ΛDefaultRouteDistance    []ygot.Annotation                                                                                                 `path:"@default-route-distance" ygotAnnotation:"true"`
	DynamicNeighborPrefixes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes `path:"dynamic-neighbor-prefixes" module:"openconfig-network-instance"`
	ΛDynamicNeighborPrefixes []ygot.Annotation                                                                                                 `path:"@dynamic-neighbor-prefixes" ygotAnnotation:"true"`
	GracefulRestart          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart         `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart         []ygot.Annotation                                                                                                 `path:"@graceful-restart" ygotAnnotation:"true"`
	RouteSelectionOptions    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions   `path:"route-selection-options" module:"openconfig-network-instance"`
	ΛRouteSelectionOptions   []ygot.Annotation                                                                                                 `path:"@route-selection-options" ygotAnnotation:"true"`
	State                    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State                   `path:"state" module:"openconfig-network-instance"`
	ΛState                   []ygot.Annotation                                                                                                 `path:"@state" ygotAnnotation:"true"`
	UseMultiplePaths         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths        `path:"use-multiple-paths" module:"openconfig-network-instance"`
	ΛUseMultiplePaths        []ygot.Annotation                                                                                                 `path:"@use-multiple-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) IsYANGGoStruct() {
}

// GetOrCreateAfiSafis retrieves the value of the AfiSafis field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis {
	if t.AfiSafis != nil {
		return t.AfiSafis
	}
	t.AfiSafis = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis{}
	return t.AfiSafis
}

// GetOrCreateApplyPolicy retrieves the value of the ApplyPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy {
	if t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	t.ApplyPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy{}
	return t.ApplyPolicy
}

// GetOrCreateConfederation retrieves the value of the Confederation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateConfederation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation {
	if t.Confederation != nil {
		return t.Confederation
	}
	t.Confederation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation{}
	return t.Confederation
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config{}
	return t.Config
}

// GetOrCreateDefaultRouteDistance retrieves the value of the DefaultRouteDistance field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateDefaultRouteDistance() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance {
	if t.DefaultRouteDistance != nil {
		return t.DefaultRouteDistance
	}
	t.DefaultRouteDistance = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance{}
	return t.DefaultRouteDistance
}

// GetOrCreateDynamicNeighborPrefixes retrieves the value of the DynamicNeighborPrefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateDynamicNeighborPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes {
	if t.DynamicNeighborPrefixes != nil {
		return t.DynamicNeighborPrefixes
	}
	t.DynamicNeighborPrefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes{}
	return t.DynamicNeighborPrefixes
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateRouteSelectionOptions retrieves the value of the RouteSelectionOptions field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateRouteSelectionOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions {
	if t.RouteSelectionOptions != nil {
		return t.RouteSelectionOptions
	}
	t.RouteSelectionOptions = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions{}
	return t.RouteSelectionOptions
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State{}
	return t.State
}

// GetOrCreateUseMultiplePaths retrieves the value of the UseMultiplePaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetOrCreateUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths {
	if t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	t.UseMultiplePaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths{}
	return t.UseMultiplePaths
}

// GetAfiSafis returns the value of the AfiSafis struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field AfiSafis is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis {
	if t != nil && t.AfiSafis != nil {
		return t.AfiSafis
	}
	return nil
}

// GetApplyPolicy returns the value of the ApplyPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field ApplyPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy {
	if t != nil && t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	return nil
}

// GetConfederation returns the value of the Confederation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field Confederation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetConfederation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation {
	if t != nil && t.Confederation != nil {
		return t.Confederation
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetDefaultRouteDistance returns the value of the DefaultRouteDistance struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field DefaultRouteDistance is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetDefaultRouteDistance() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance {
	if t != nil && t.DefaultRouteDistance != nil {
		return t.DefaultRouteDistance
	}
	return nil
}

// GetDynamicNeighborPrefixes returns the value of the DynamicNeighborPrefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field DynamicNeighborPrefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetDynamicNeighborPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes {
	if t != nil && t.DynamicNeighborPrefixes != nil {
		return t.DynamicNeighborPrefixes
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetRouteSelectionOptions returns the value of the RouteSelectionOptions struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field RouteSelectionOptions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetRouteSelectionOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions {
	if t != nil && t.RouteSelectionOptions != nil {
		return t.RouteSelectionOptions
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUseMultiplePaths returns the value of the UseMultiplePaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global. If the receiver or the field UseMultiplePaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) GetUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths {
	if t != nil && t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AfiSafis.PopulateDefaults()
	t.ApplyPolicy.PopulateDefaults()
	t.Confederation.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.DefaultRouteDistance.PopulateDefaults()
	t.DynamicNeighborPrefixes.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.RouteSelectionOptions.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UseMultiplePaths.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis struct {
	ΛMetadata []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	AfiSafi   map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi `path:"afi-safi" module:"openconfig-network-instance"`
	ΛAfiSafi  []ygot.Annotation                                                                                                                                 `path:"@afi-safi" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) IsYANGGoStruct() {
}

// NewAfiSafi creates a new entry in the AfiSafi list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) NewAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi)
	}

	key := AfiSafiName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AfiSafi[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AfiSafi", key)
	}

	t.AfiSafi[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi{
		AfiSafiName: AfiSafiName,
	}

	return t.AfiSafi[key], nil
}

// RenameAfiSafi renames an entry in the list AfiSafi within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) RenameAfiSafi(oldK, newK E_OpenconfigBgpTypes_AFI_SAFI_TYPE) error {
	if _, ok := t.AfiSafi[newK]; ok {
		return fmt.Errorf("key %v already exists in AfiSafi", newK)
	}

	e, ok := t.AfiSafi[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AfiSafi", oldK)
	}
	e.AfiSafiName = newK

	t.AfiSafi[newK] = e
	delete(t.AfiSafi, oldK)
	return nil
}

// GetOrCreateAfiSafiMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) GetOrCreateAfiSafiMap() map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi {
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi)
	}
	return t.AfiSafi
}

// GetOrCreateAfiSafi retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) GetOrCreateAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi {

	key := AfiSafiName

	if v, ok := t.AfiSafi[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAfiSafi(AfiSafiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAfiSafi got unexpected error: %v", err))
	}
	return v
}

// GetAfiSafi retrieves the value with the specified key from
// the AfiSafi map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) GetAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi {

	if t == nil {
		return nil
	}

	key := AfiSafiName

	if lm, ok := t.AfiSafi[key]; ok {
		return lm
	}
	return nil
}

// AppendAfiSafi appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi struct to the
// list AfiSafi of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) AppendAfiSafi(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) error {
	key := v.AfiSafiName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi)
	}

	if _, ok := t.AfiSafi[key]; ok {
		return fmt.Errorf("duplicate key for list AfiSafi %v", key)
	}

	t.AfiSafi[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AfiSafi {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi struct {
	ΛMetadata              []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	AddPaths               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths              `path:"add-paths" module:"openconfig-network-instance"`
	ΛAddPaths              []ygot.Annotation                                                                                                                `path:"@add-paths" ygotAnnotation:"true"`
	AfiSafiName            E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                               `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName           []ygot.Annotation                                                                                                                `path:"@afi-safi-name" ygotAnnotation:"true"`
	ApplyPolicy            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy           `path:"apply-policy" module:"openconfig-network-instance"`
	ΛApplyPolicy           []ygot.Annotation                                                                                                                `path:"@apply-policy" ygotAnnotation:"true"`
	Config                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config                `path:"config" module:"openconfig-network-instance"`
	ΛConfig                []ygot.Annotation                                                                                                                `path:"@config" ygotAnnotation:"true"`
	GracefulRestart        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart       `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart       []ygot.Annotation                                                                                                                `path:"@graceful-restart" ygotAnnotation:"true"`
	Ipv4LabeledUnicast     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast    `path:"ipv4-labeled-unicast" module:"openconfig-network-instance"`
	ΛIpv4LabeledUnicast    []ygot.Annotation                                                                                                                `path:"@ipv4-labeled-unicast" ygotAnnotation:"true"`
	Ipv4Unicast            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast           `path:"ipv4-unicast" module:"openconfig-network-instance"`
	ΛIpv4Unicast           []ygot.Annotation                                                                                                                `path:"@ipv4-unicast" ygotAnnotation:"true"`
	Ipv6LabeledUnicast     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast    `path:"ipv6-labeled-unicast" module:"openconfig-network-instance"`
	ΛIpv6LabeledUnicast    []ygot.Annotation                                                                                                                `path:"@ipv6-labeled-unicast" ygotAnnotation:"true"`
	Ipv6Unicast            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast           `path:"ipv6-unicast" module:"openconfig-network-instance"`
	ΛIpv6Unicast           []ygot.Annotation                                                                                                                `path:"@ipv6-unicast" ygotAnnotation:"true"`
	L2VpnEvpn              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn             `path:"l2vpn-evpn" module:"openconfig-network-instance"`
	ΛL2VpnEvpn             []ygot.Annotation                                                                                                                `path:"@l2vpn-evpn" ygotAnnotation:"true"`
	L2VpnVpls              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls             `path:"l2vpn-vpls" module:"openconfig-network-instance"`
	ΛL2VpnVpls             []ygot.Annotation                                                                                                                `path:"@l2vpn-vpls" ygotAnnotation:"true"`
	L3VpnIpv4Multicast     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast    `path:"l3vpn-ipv4-multicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv4Multicast    []ygot.Annotation                                                                                                                `path:"@l3vpn-ipv4-multicast" ygotAnnotation:"true"`
	L3VpnIpv4Unicast       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast      `path:"l3vpn-ipv4-unicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv4Unicast      []ygot.Annotation                                                                                                                `path:"@l3vpn-ipv4-unicast" ygotAnnotation:"true"`
	L3VpnIpv6Multicast     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast    `path:"l3vpn-ipv6-multicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv6Multicast    []ygot.Annotation                                                                                                                `path:"@l3vpn-ipv6-multicast" ygotAnnotation:"true"`
	L3VpnIpv6Unicast       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast      `path:"l3vpn-ipv6-unicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv6Unicast      []ygot.Annotation                                                                                                                `path:"@l3vpn-ipv6-unicast" ygotAnnotation:"true"`
	RouteSelectionOptions  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions `path:"route-selection-options" module:"openconfig-network-instance"`
	ΛRouteSelectionOptions []ygot.Annotation                                                                                                                `path:"@route-selection-options" ygotAnnotation:"true"`
	SrtePolicyIpv4         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4        `path:"srte-policy-ipv4" module:"openconfig-network-instance"`
	ΛSrtePolicyIpv4        []ygot.Annotation                                                                                                                `path:"@srte-policy-ipv4" ygotAnnotation:"true"`
	SrtePolicyIpv6         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6        `path:"srte-policy-ipv6" module:"openconfig-network-instance"`
	ΛSrtePolicyIpv6        []ygot.Annotation                                                                                                                `path:"@srte-policy-ipv6" ygotAnnotation:"true"`
	State                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State                 `path:"state" module:"openconfig-network-instance"`
	ΛState                 []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
	UseMultiplePaths       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths      `path:"use-multiple-paths" module:"openconfig-network-instance"`
	ΛUseMultiplePaths      []ygot.Annotation                                                                                                                `path:"@use-multiple-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) IsYANGGoStruct() {
}

// GetOrCreateAddPaths retrieves the value of the AddPaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateAddPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths {
	if t.AddPaths != nil {
		return t.AddPaths
	}
	t.AddPaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths{}
	return t.AddPaths
}

// GetOrCreateApplyPolicy retrieves the value of the ApplyPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy {
	if t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	t.ApplyPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy{}
	return t.ApplyPolicy
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config{}
	return t.Config
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateIpv4LabeledUnicast retrieves the value of the Ipv4LabeledUnicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateIpv4LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast {
	if t.Ipv4LabeledUnicast != nil {
		return t.Ipv4LabeledUnicast
	}
	t.Ipv4LabeledUnicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast{}
	return t.Ipv4LabeledUnicast
}

// GetOrCreateIpv4Unicast retrieves the value of the Ipv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast {
	if t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	t.Ipv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast{}
	return t.Ipv4Unicast
}

// GetOrCreateIpv6LabeledUnicast retrieves the value of the Ipv6LabeledUnicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateIpv6LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast {
	if t.Ipv6LabeledUnicast != nil {
		return t.Ipv6LabeledUnicast
	}
	t.Ipv6LabeledUnicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast{}
	return t.Ipv6LabeledUnicast
}

// GetOrCreateIpv6Unicast retrieves the value of the Ipv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast {
	if t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	t.Ipv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast{}
	return t.Ipv6Unicast
}

// GetOrCreateL2VpnEvpn retrieves the value of the L2VpnEvpn field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn {
	if t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	t.L2VpnEvpn = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn{}
	return t.L2VpnEvpn
}

// GetOrCreateL2VpnVpls retrieves the value of the L2VpnVpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateL2VpnVpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls {
	if t.L2VpnVpls != nil {
		return t.L2VpnVpls
	}
	t.L2VpnVpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls{}
	return t.L2VpnVpls
}

// GetOrCreateL3VpnIpv4Multicast retrieves the value of the L3VpnIpv4Multicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv4Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast {
	if t.L3VpnIpv4Multicast != nil {
		return t.L3VpnIpv4Multicast
	}
	t.L3VpnIpv4Multicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast{}
	return t.L3VpnIpv4Multicast
}

// GetOrCreateL3VpnIpv4Unicast retrieves the value of the L3VpnIpv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast {
	if t.L3VpnIpv4Unicast != nil {
		return t.L3VpnIpv4Unicast
	}
	t.L3VpnIpv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast{}
	return t.L3VpnIpv4Unicast
}

// GetOrCreateL3VpnIpv6Multicast retrieves the value of the L3VpnIpv6Multicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv6Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast {
	if t.L3VpnIpv6Multicast != nil {
		return t.L3VpnIpv6Multicast
	}
	t.L3VpnIpv6Multicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast{}
	return t.L3VpnIpv6Multicast
}

// GetOrCreateL3VpnIpv6Unicast retrieves the value of the L3VpnIpv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast {
	if t.L3VpnIpv6Unicast != nil {
		return t.L3VpnIpv6Unicast
	}
	t.L3VpnIpv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast{}
	return t.L3VpnIpv6Unicast
}

// GetOrCreateRouteSelectionOptions retrieves the value of the RouteSelectionOptions field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateRouteSelectionOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions {
	if t.RouteSelectionOptions != nil {
		return t.RouteSelectionOptions
	}
	t.RouteSelectionOptions = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions{}
	return t.RouteSelectionOptions
}

// GetOrCreateSrtePolicyIpv4 retrieves the value of the SrtePolicyIpv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateSrtePolicyIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4 {
	if t.SrtePolicyIpv4 != nil {
		return t.SrtePolicyIpv4
	}
	t.SrtePolicyIpv4 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4{}
	return t.SrtePolicyIpv4
}

// GetOrCreateSrtePolicyIpv6 retrieves the value of the SrtePolicyIpv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateSrtePolicyIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6 {
	if t.SrtePolicyIpv6 != nil {
		return t.SrtePolicyIpv6
	}
	t.SrtePolicyIpv6 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6{}
	return t.SrtePolicyIpv6
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State{}
	return t.State
}

// GetOrCreateUseMultiplePaths retrieves the value of the UseMultiplePaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetOrCreateUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths {
	if t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	t.UseMultiplePaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths{}
	return t.UseMultiplePaths
}

// GetAddPaths returns the value of the AddPaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field AddPaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetAddPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths {
	if t != nil && t.AddPaths != nil {
		return t.AddPaths
	}
	return nil
}

// GetApplyPolicy returns the value of the ApplyPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field ApplyPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy {
	if t != nil && t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetIpv4LabeledUnicast returns the value of the Ipv4LabeledUnicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field Ipv4LabeledUnicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetIpv4LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast {
	if t != nil && t.Ipv4LabeledUnicast != nil {
		return t.Ipv4LabeledUnicast
	}
	return nil
}

// GetIpv4Unicast returns the value of the Ipv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field Ipv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast {
	if t != nil && t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	return nil
}

// GetIpv6LabeledUnicast returns the value of the Ipv6LabeledUnicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field Ipv6LabeledUnicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetIpv6LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast {
	if t != nil && t.Ipv6LabeledUnicast != nil {
		return t.Ipv6LabeledUnicast
	}
	return nil
}

// GetIpv6Unicast returns the value of the Ipv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field Ipv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast {
	if t != nil && t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	return nil
}

// GetL2VpnEvpn returns the value of the L2VpnEvpn struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field L2VpnEvpn is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn {
	if t != nil && t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	return nil
}

// GetL2VpnVpls returns the value of the L2VpnVpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field L2VpnVpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetL2VpnVpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls {
	if t != nil && t.L2VpnVpls != nil {
		return t.L2VpnVpls
	}
	return nil
}

// GetL3VpnIpv4Multicast returns the value of the L3VpnIpv4Multicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv4Multicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetL3VpnIpv4Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast {
	if t != nil && t.L3VpnIpv4Multicast != nil {
		return t.L3VpnIpv4Multicast
	}
	return nil
}

// GetL3VpnIpv4Unicast returns the value of the L3VpnIpv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetL3VpnIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast {
	if t != nil && t.L3VpnIpv4Unicast != nil {
		return t.L3VpnIpv4Unicast
	}
	return nil
}

// GetL3VpnIpv6Multicast returns the value of the L3VpnIpv6Multicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv6Multicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetL3VpnIpv6Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast {
	if t != nil && t.L3VpnIpv6Multicast != nil {
		return t.L3VpnIpv6Multicast
	}
	return nil
}

// GetL3VpnIpv6Unicast returns the value of the L3VpnIpv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetL3VpnIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast {
	if t != nil && t.L3VpnIpv6Unicast != nil {
		return t.L3VpnIpv6Unicast
	}
	return nil
}

// GetRouteSelectionOptions returns the value of the RouteSelectionOptions struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field RouteSelectionOptions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetRouteSelectionOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions {
	if t != nil && t.RouteSelectionOptions != nil {
		return t.RouteSelectionOptions
	}
	return nil
}

// GetSrtePolicyIpv4 returns the value of the SrtePolicyIpv4 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field SrtePolicyIpv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetSrtePolicyIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4 {
	if t != nil && t.SrtePolicyIpv4 != nil {
		return t.SrtePolicyIpv4
	}
	return nil
}

// GetSrtePolicyIpv6 returns the value of the SrtePolicyIpv6 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field SrtePolicyIpv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetSrtePolicyIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6 {
	if t != nil && t.SrtePolicyIpv6 != nil {
		return t.SrtePolicyIpv6
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUseMultiplePaths returns the value of the UseMultiplePaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi. If the receiver or the field UseMultiplePaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths {
	if t != nil && t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	return nil
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AddPaths.PopulateDefaults()
	t.ApplyPolicy.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.Ipv4LabeledUnicast.PopulateDefaults()
	t.Ipv4Unicast.PopulateDefaults()
	t.Ipv6LabeledUnicast.PopulateDefaults()
	t.Ipv6Unicast.PopulateDefaults()
	t.L2VpnEvpn.PopulateDefaults()
	t.L2VpnVpls.PopulateDefaults()
	t.L3VpnIpv4Multicast.PopulateDefaults()
	t.L3VpnIpv4Unicast.PopulateDefaults()
	t.L3VpnIpv6Multicast.PopulateDefaults()
	t.L3VpnIpv6Unicast.PopulateDefaults()
	t.RouteSelectionOptions.PopulateDefaults()
	t.SrtePolicyIpv4.PopulateDefaults()
	t.SrtePolicyIpv6.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UseMultiplePaths.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-safi-name": t.AfiSafiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EligiblePrefixPolicy  *string           `path:"eligible-prefix-policy" module:"openconfig-network-instance"`
	ΛEligiblePrefixPolicy []ygot.Annotation `path:"@eligible-prefix-policy" ygotAnnotation:"true"`
	Receive               *bool             `path:"receive" module:"openconfig-network-instance"`
	ΛReceive              []ygot.Annotation `path:"@receive" ygotAnnotation:"true"`
	Send                  *bool             `path:"send" module:"openconfig-network-instance"`
	ΛSend                 []ygot.Annotation `path:"@send" ygotAnnotation:"true"`
	SendMax               *uint8            `path:"send-max" module:"openconfig-network-instance"`
	ΛSendMax              []ygot.Annotation `path:"@send-max" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) IsYANGGoStruct() {
}

// GetEligiblePrefixPolicy retrieves the value of the leaf EligiblePrefixPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EligiblePrefixPolicy is set, it can
// safely use t.GetEligiblePrefixPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EligiblePrefixPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) GetEligiblePrefixPolicy() string {
	if t == nil || t.EligiblePrefixPolicy == nil {
		return ""
	}
	return *t.EligiblePrefixPolicy
}

// GetReceive retrieves the value of the leaf Receive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Receive is set, it can
// safely use t.GetReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Receive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) GetReceive() bool {
	if t == nil || t.Receive == nil {
		return false
	}
	return *t.Receive
}

// GetSend retrieves the value of the leaf Send from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Send is set, it can
// safely use t.GetSend() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Send == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) GetSend() bool {
	if t == nil || t.Send == nil {
		return false
	}
	return *t.Send
}

// GetSendMax retrieves the value of the leaf SendMax from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendMax is set, it can
// safely use t.GetSendMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendMax == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) GetSendMax() uint8 {
	if t == nil || t.SendMax == nil {
		return 0
	}
	return *t.SendMax
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Receive == nil {
		var v bool = false
		t.Receive = &v
	}
	if t.Send == nil {
		var v bool = false
		t.Send = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/add-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EligiblePrefixPolicy  *string           `path:"eligible-prefix-policy" module:"openconfig-network-instance"`
	ΛEligiblePrefixPolicy []ygot.Annotation `path:"@eligible-prefix-policy" ygotAnnotation:"true"`
	Receive               *bool             `path:"receive" module:"openconfig-network-instance"`
	ΛReceive              []ygot.Annotation `path:"@receive" ygotAnnotation:"true"`
	Send                  *bool             `path:"send" module:"openconfig-network-instance"`
	ΛSend                 []ygot.Annotation `path:"@send" ygotAnnotation:"true"`
	SendMax               *uint8            `path:"send-max" module:"openconfig-network-instance"`
	ΛSendMax              []ygot.Annotation `path:"@send-max" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) IsYANGGoStruct() {
}

// GetEligiblePrefixPolicy retrieves the value of the leaf EligiblePrefixPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EligiblePrefixPolicy is set, it can
// safely use t.GetEligiblePrefixPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EligiblePrefixPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) GetEligiblePrefixPolicy() string {
	if t == nil || t.EligiblePrefixPolicy == nil {
		return ""
	}
	return *t.EligiblePrefixPolicy
}

// GetReceive retrieves the value of the leaf Receive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Receive is set, it can
// safely use t.GetReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Receive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) GetReceive() bool {
	if t == nil || t.Receive == nil {
		return false
	}
	return *t.Receive
}

// GetSend retrieves the value of the leaf Send from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Send is set, it can
// safely use t.GetSend() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Send == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) GetSend() bool {
	if t == nil || t.Send == nil {
		return false
	}
	return *t.Send
}

// GetSendMax retrieves the value of the leaf SendMax from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendMax is set, it can
// safely use t.GetSendMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendMax == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) GetSendMax() uint8 {
	if t == nil || t.SendMax == nil {
		return 0
	}
	return *t.SendMax
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Receive == nil {
		var v bool = false
		t.Receive = &v
	}
	if t.Send == nil {
		var v bool = false
		t.Send = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_AddPaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/apply-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/apply-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/apply-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_ApplyPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config struct {
	ΛMetadata          []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	AfiSafiName        E_OpenconfigBgpTypes_AFI_SAFI_TYPE   `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName       []ygot.Annotation                    `path:"@afi-safi-name" ygotAnnotation:"true"`
	Enabled            *bool                                `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                    `path:"@enabled" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                    `path:"@send-community-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) IsYANGGoStruct() {
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                 `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                 `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                          `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                          `path:"@prefix-limit-received" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config{}
	return t.Config
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedNextHopEncoding  *bool             `path:"extended-next-hop-encoding" module:"openconfig-network-instance"`
	ΛExtendedNextHopEncoding []ygot.Annotation `path:"@extended-next-hop-encoding" ygotAnnotation:"true"`
	SendDefaultRoute         *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute        []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) IsYANGGoStruct() {
}

// GetExtendedNextHopEncoding retrieves the value of the leaf ExtendedNextHopEncoding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedNextHopEncoding is set, it can
// safely use t.GetExtendedNextHopEncoding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedNextHopEncoding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) GetExtendedNextHopEncoding() bool {
	if t == nil || t.ExtendedNextHopEncoding == nil {
		return false
	}
	return *t.ExtendedNextHopEncoding
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExtendedNextHopEncoding == nil {
		var v bool = false
		t.ExtendedNextHopEncoding = &v
	}
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv4-unicast/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedNextHopEncoding  *bool             `path:"extended-next-hop-encoding" module:"openconfig-network-instance"`
	ΛExtendedNextHopEncoding []ygot.Annotation `path:"@extended-next-hop-encoding" ygotAnnotation:"true"`
	SendDefaultRoute         *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute        []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) IsYANGGoStruct() {
}

// GetExtendedNextHopEncoding retrieves the value of the leaf ExtendedNextHopEncoding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedNextHopEncoding is set, it can
// safely use t.GetExtendedNextHopEncoding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedNextHopEncoding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) GetExtendedNextHopEncoding() bool {
	if t == nil || t.ExtendedNextHopEncoding == nil {
		return false
	}
	return *t.ExtendedNextHopEncoding
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExtendedNextHopEncoding == nil {
		var v bool = false
		t.ExtendedNextHopEncoding = &v
	}
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                 `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                 `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                          `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                          `path:"@prefix-limit-received" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config{}
	return t.Config
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SendDefaultRoute  *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config) IsYANGGoStruct() {
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/ipv6-unicast/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SendDefaultRoute  *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State) IsYANGGoStruct() {
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-evpn YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn struct {
	ΛMetadata            []ygot.Annotation                                                                                                                        `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                        `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                        `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-evpn/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-evpn/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-evpn/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-vpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls struct {
	ΛMetadata            []ygot.Annotation                                                                                                                        `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                        `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                        `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-vpls/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-vpls/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l2vpn-vpls/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-multicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                 `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                 `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                               `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                               `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-multicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                 `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                 `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                               `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                               `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/route-selection-options YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions struct {
	ΛMetadata []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/route-selection-options/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvertiseInactiveRoutes  *bool             `path:"advertise-inactive-routes" module:"openconfig-network-instance"`
	ΛAdvertiseInactiveRoutes []ygot.Annotation `path:"@advertise-inactive-routes" ygotAnnotation:"true"`
	AlwaysCompareMed         *bool             `path:"always-compare-med" module:"openconfig-network-instance"`
	ΛAlwaysCompareMed        []ygot.Annotation `path:"@always-compare-med" ygotAnnotation:"true"`
	EnableAigp               *bool             `path:"enable-aigp" module:"openconfig-network-instance"`
	ΛEnableAigp              []ygot.Annotation `path:"@enable-aigp" ygotAnnotation:"true"`
	ExternalCompareRouterId  *bool             `path:"external-compare-router-id" module:"openconfig-network-instance"`
	ΛExternalCompareRouterId []ygot.Annotation `path:"@external-compare-router-id" ygotAnnotation:"true"`
	IgnoreAsPathLength       *bool             `path:"ignore-as-path-length" module:"openconfig-network-instance"`
	ΛIgnoreAsPathLength      []ygot.Annotation `path:"@ignore-as-path-length" ygotAnnotation:"true"`
	IgnoreNextHopIgpMetric   *bool             `path:"ignore-next-hop-igp-metric" module:"openconfig-network-instance"`
	ΛIgnoreNextHopIgpMetric  []ygot.Annotation `path:"@ignore-next-hop-igp-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) IsYANGGoStruct() {
}

// GetAdvertiseInactiveRoutes retrieves the value of the leaf AdvertiseInactiveRoutes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertiseInactiveRoutes is set, it can
// safely use t.GetAdvertiseInactiveRoutes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertiseInactiveRoutes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) GetAdvertiseInactiveRoutes() bool {
	if t == nil || t.AdvertiseInactiveRoutes == nil {
		return false
	}
	return *t.AdvertiseInactiveRoutes
}

// GetAlwaysCompareMed retrieves the value of the leaf AlwaysCompareMed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlwaysCompareMed is set, it can
// safely use t.GetAlwaysCompareMed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlwaysCompareMed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) GetAlwaysCompareMed() bool {
	if t == nil || t.AlwaysCompareMed == nil {
		return false
	}
	return *t.AlwaysCompareMed
}

// GetEnableAigp retrieves the value of the leaf EnableAigp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableAigp is set, it can
// safely use t.GetEnableAigp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableAigp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) GetEnableAigp() bool {
	if t == nil || t.EnableAigp == nil {
		return false
	}
	return *t.EnableAigp
}

// GetExternalCompareRouterId retrieves the value of the leaf ExternalCompareRouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalCompareRouterId is set, it can
// safely use t.GetExternalCompareRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalCompareRouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) GetExternalCompareRouterId() bool {
	if t == nil || t.ExternalCompareRouterId == nil {
		return true
	}
	return *t.ExternalCompareRouterId
}

// GetIgnoreAsPathLength retrieves the value of the leaf IgnoreAsPathLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreAsPathLength is set, it can
// safely use t.GetIgnoreAsPathLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreAsPathLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) GetIgnoreAsPathLength() bool {
	if t == nil || t.IgnoreAsPathLength == nil {
		return false
	}
	return *t.IgnoreAsPathLength
}

// GetIgnoreNextHopIgpMetric retrieves the value of the leaf IgnoreNextHopIgpMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreNextHopIgpMetric is set, it can
// safely use t.GetIgnoreNextHopIgpMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreNextHopIgpMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) GetIgnoreNextHopIgpMetric() bool {
	if t == nil || t.IgnoreNextHopIgpMetric == nil {
		return false
	}
	return *t.IgnoreNextHopIgpMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdvertiseInactiveRoutes == nil {
		var v bool = false
		t.AdvertiseInactiveRoutes = &v
	}
	if t.AlwaysCompareMed == nil {
		var v bool = false
		t.AlwaysCompareMed = &v
	}
	if t.EnableAigp == nil {
		var v bool = false
		t.EnableAigp = &v
	}
	if t.ExternalCompareRouterId == nil {
		var v bool = true
		t.ExternalCompareRouterId = &v
	}
	if t.IgnoreAsPathLength == nil {
		var v bool = false
		t.IgnoreAsPathLength = &v
	}
	if t.IgnoreNextHopIgpMetric == nil {
		var v bool = false
		t.IgnoreNextHopIgpMetric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/route-selection-options/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvertiseInactiveRoutes  *bool             `path:"advertise-inactive-routes" module:"openconfig-network-instance"`
	ΛAdvertiseInactiveRoutes []ygot.Annotation `path:"@advertise-inactive-routes" ygotAnnotation:"true"`
	AlwaysCompareMed         *bool             `path:"always-compare-med" module:"openconfig-network-instance"`
	ΛAlwaysCompareMed        []ygot.Annotation `path:"@always-compare-med" ygotAnnotation:"true"`
	EnableAigp               *bool             `path:"enable-aigp" module:"openconfig-network-instance"`
	ΛEnableAigp              []ygot.Annotation `path:"@enable-aigp" ygotAnnotation:"true"`
	ExternalCompareRouterId  *bool             `path:"external-compare-router-id" module:"openconfig-network-instance"`
	ΛExternalCompareRouterId []ygot.Annotation `path:"@external-compare-router-id" ygotAnnotation:"true"`
	IgnoreAsPathLength       *bool             `path:"ignore-as-path-length" module:"openconfig-network-instance"`
	ΛIgnoreAsPathLength      []ygot.Annotation `path:"@ignore-as-path-length" ygotAnnotation:"true"`
	IgnoreNextHopIgpMetric   *bool             `path:"ignore-next-hop-igp-metric" module:"openconfig-network-instance"`
	ΛIgnoreNextHopIgpMetric  []ygot.Annotation `path:"@ignore-next-hop-igp-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) IsYANGGoStruct() {
}

// GetAdvertiseInactiveRoutes retrieves the value of the leaf AdvertiseInactiveRoutes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertiseInactiveRoutes is set, it can
// safely use t.GetAdvertiseInactiveRoutes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertiseInactiveRoutes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) GetAdvertiseInactiveRoutes() bool {
	if t == nil || t.AdvertiseInactiveRoutes == nil {
		return false
	}
	return *t.AdvertiseInactiveRoutes
}

// GetAlwaysCompareMed retrieves the value of the leaf AlwaysCompareMed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlwaysCompareMed is set, it can
// safely use t.GetAlwaysCompareMed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlwaysCompareMed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) GetAlwaysCompareMed() bool {
	if t == nil || t.AlwaysCompareMed == nil {
		return false
	}
	return *t.AlwaysCompareMed
}

// GetEnableAigp retrieves the value of the leaf EnableAigp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableAigp is set, it can
// safely use t.GetEnableAigp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableAigp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) GetEnableAigp() bool {
	if t == nil || t.EnableAigp == nil {
		return false
	}
	return *t.EnableAigp
}

// GetExternalCompareRouterId retrieves the value of the leaf ExternalCompareRouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalCompareRouterId is set, it can
// safely use t.GetExternalCompareRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalCompareRouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) GetExternalCompareRouterId() bool {
	if t == nil || t.ExternalCompareRouterId == nil {
		return true
	}
	return *t.ExternalCompareRouterId
}

// GetIgnoreAsPathLength retrieves the value of the leaf IgnoreAsPathLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreAsPathLength is set, it can
// safely use t.GetIgnoreAsPathLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreAsPathLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) GetIgnoreAsPathLength() bool {
	if t == nil || t.IgnoreAsPathLength == nil {
		return false
	}
	return *t.IgnoreAsPathLength
}

// GetIgnoreNextHopIgpMetric retrieves the value of the leaf IgnoreNextHopIgpMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreNextHopIgpMetric is set, it can
// safely use t.GetIgnoreNextHopIgpMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreNextHopIgpMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) GetIgnoreNextHopIgpMetric() bool {
	if t == nil || t.IgnoreNextHopIgpMetric == nil {
		return false
	}
	return *t.IgnoreNextHopIgpMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdvertiseInactiveRoutes == nil {
		var v bool = false
		t.AdvertiseInactiveRoutes = &v
	}
	if t.AlwaysCompareMed == nil {
		var v bool = false
		t.AlwaysCompareMed = &v
	}
	if t.EnableAigp == nil {
		var v bool = false
		t.EnableAigp = &v
	}
	if t.ExternalCompareRouterId == nil {
		var v bool = true
		t.ExternalCompareRouterId = &v
	}
	if t.IgnoreAsPathLength == nil {
		var v bool = false
		t.IgnoreAsPathLength = &v
	}
	if t.IgnoreNextHopIgpMetric == nil {
		var v bool = false
		t.IgnoreNextHopIgpMetric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_RouteSelectionOptions_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv4 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4 struct {
	ΛMetadata            []ygot.Annotation                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv6 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6 struct {
	ΛMetadata            []ygot.Annotation                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State struct {
	ΛMetadata          []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	AfiSafiName        E_OpenconfigBgpTypes_AFI_SAFI_TYPE   `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName       []ygot.Annotation                    `path:"@afi-safi-name" ygotAnnotation:"true"`
	Enabled            *bool                                `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                    `path:"@enabled" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                    `path:"@send-community-type" ygotAnnotation:"true"`
	TotalPaths         *uint32                              `path:"total-paths" module:"openconfig-network-instance"`
	ΛTotalPaths        []ygot.Annotation                    `path:"@total-paths" ygotAnnotation:"true"`
	TotalPrefixes      *uint32                              `path:"total-prefixes" module:"openconfig-network-instance"`
	ΛTotalPrefixes     []ygot.Annotation                    `path:"@total-prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) IsYANGGoStruct() {
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// GetTotalPaths retrieves the value of the leaf TotalPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalPaths is set, it can
// safely use t.GetTotalPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) GetTotalPaths() uint32 {
	if t == nil || t.TotalPaths == nil {
		return 0
	}
	return *t.TotalPaths
}

// GetTotalPrefixes retrieves the value of the leaf TotalPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalPrefixes is set, it can
// safely use t.GetTotalPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) GetTotalPrefixes() uint32 {
	if t == nil || t.TotalPrefixes == nil {
		return 0
	}
	return *t.TotalPrefixes
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths struct {
	ΛMetadata []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	Ebgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp   `path:"ebgp" module:"openconfig-network-instance"`
	ΛEbgp     []ygot.Annotation                                                                                                                  `path:"@ebgp" ygotAnnotation:"true"`
	Ibgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp   `path:"ibgp" module:"openconfig-network-instance"`
	ΛIbgp     []ygot.Annotation                                                                                                                  `path:"@ibgp" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config{}
	return t.Config
}

// GetOrCreateEbgp retrieves the value of the Ebgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp {
	if t.Ebgp != nil {
		return t.Ebgp
	}
	t.Ebgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp{}
	return t.Ebgp
}

// GetOrCreateIbgp retrieves the value of the Ibgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp {
	if t.Ibgp != nil {
		return t.Ibgp
	}
	t.Ibgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp{}
	return t.Ibgp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgp returns the value of the Ebgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Ebgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp {
	if t != nil && t.Ebgp != nil {
		return t.Ebgp
	}
	return nil
}

// GetIbgp returns the value of the Ibgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Ibgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp {
	if t != nil && t.Ibgp != nil {
		return t.Ibgp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Ebgp.PopulateDefaults()
	t.Ibgp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ebgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                                          `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ebgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ebgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ebgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ebgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ebgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ibgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                                          `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ibgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ibgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ibgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ibgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/ibgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/use-multiple-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/apply-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/apply-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/apply-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_ApplyPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/confederation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation struct {
	ΛMetadata []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/confederation/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Identifier  *uint32           `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier []ygot.Annotation `path:"@identifier" ygotAnnotation:"true"`
	MemberAs    []uint32          `path:"member-as" module:"openconfig-network-instance"`
	ΛMemberAs   []ygot.Annotation `path:"@member-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) IsYANGGoStruct() {
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) GetIdentifier() uint32 {
	if t == nil || t.Identifier == nil {
		return 0
	}
	return *t.Identifier
}

// GetMemberAs retrieves the value of the leaf MemberAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MemberAs is set, it can
// safely use t.GetMemberAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MemberAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) GetMemberAs() []uint32 {
	if t == nil || t.MemberAs == nil {
		return nil
	}
	return t.MemberAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/confederation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Identifier  *uint32           `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier []ygot.Annotation `path:"@identifier" ygotAnnotation:"true"`
	MemberAs    []uint32          `path:"member-as" module:"openconfig-network-instance"`
	ΛMemberAs   []ygot.Annotation `path:"@member-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) IsYANGGoStruct() {
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) GetIdentifier() uint32 {
	if t == nil || t.Identifier == nil {
		return 0
	}
	return *t.Identifier
}

// GetMemberAs retrieves the value of the leaf MemberAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MemberAs is set, it can
// safely use t.GetMemberAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MemberAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) GetMemberAs() []uint32 {
	if t == nil || t.MemberAs == nil {
		return nil
	}
	return t.MemberAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Confederation_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	As        *uint32           `path:"as" module:"openconfig-network-instance"`
	ΛAs       []ygot.Annotation `path:"@as" ygotAnnotation:"true"`
	RouterId  *string           `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation `path:"@router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) IsYANGGoStruct() {
}

// GetAs retrieves the value of the leaf As from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if As is set, it can
// safely use t.GetAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.As == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) GetAs() uint32 {
	if t == nil || t.As == nil {
		return 0
	}
	return *t.As
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/default-route-distance YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance struct {
	ΛMetadata []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/default-route-distance/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExternalRouteDistance  *uint8            `path:"external-route-distance" module:"openconfig-network-instance"`
	ΛExternalRouteDistance []ygot.Annotation `path:"@external-route-distance" ygotAnnotation:"true"`
	InternalRouteDistance  *uint8            `path:"internal-route-distance" module:"openconfig-network-instance"`
	ΛInternalRouteDistance []ygot.Annotation `path:"@internal-route-distance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) IsYANGGoStruct() {
}

// GetExternalRouteDistance retrieves the value of the leaf ExternalRouteDistance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRouteDistance is set, it can
// safely use t.GetExternalRouteDistance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRouteDistance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) GetExternalRouteDistance() uint8 {
	if t == nil || t.ExternalRouteDistance == nil {
		return 0
	}
	return *t.ExternalRouteDistance
}

// GetInternalRouteDistance retrieves the value of the leaf InternalRouteDistance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InternalRouteDistance is set, it can
// safely use t.GetInternalRouteDistance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InternalRouteDistance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) GetInternalRouteDistance() uint8 {
	if t == nil || t.InternalRouteDistance == nil {
		return 0
	}
	return *t.InternalRouteDistance
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/default-route-distance/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExternalRouteDistance  *uint8            `path:"external-route-distance" module:"openconfig-network-instance"`
	ΛExternalRouteDistance []ygot.Annotation `path:"@external-route-distance" ygotAnnotation:"true"`
	InternalRouteDistance  *uint8            `path:"internal-route-distance" module:"openconfig-network-instance"`
	ΛInternalRouteDistance []ygot.Annotation `path:"@internal-route-distance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) IsYANGGoStruct() {
}

// GetExternalRouteDistance retrieves the value of the leaf ExternalRouteDistance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRouteDistance is set, it can
// safely use t.GetExternalRouteDistance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRouteDistance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) GetExternalRouteDistance() uint8 {
	if t == nil || t.ExternalRouteDistance == nil {
		return 0
	}
	return *t.ExternalRouteDistance
}

// GetInternalRouteDistance retrieves the value of the leaf InternalRouteDistance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InternalRouteDistance is set, it can
// safely use t.GetInternalRouteDistance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InternalRouteDistance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) GetInternalRouteDistance() uint8 {
	if t == nil || t.InternalRouteDistance == nil {
		return 0
	}
	return *t.InternalRouteDistance
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DefaultRouteDistance_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/dynamic-neighbor-prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes struct {
	ΛMetadata              []ygot.Annotation                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	DynamicNeighborPrefix  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix `path:"dynamic-neighbor-prefix" module:"openconfig-network-instance"`
	ΛDynamicNeighborPrefix []ygot.Annotation                                                                                                                                  `path:"@dynamic-neighbor-prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) IsYANGGoStruct() {
}

// NewDynamicNeighborPrefix creates a new entry in the DynamicNeighborPrefix list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) NewDynamicNeighborPrefix(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DynamicNeighborPrefix == nil {
		t.DynamicNeighborPrefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.DynamicNeighborPrefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list DynamicNeighborPrefix", key)
	}

	t.DynamicNeighborPrefix[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix{
		Prefix: &Prefix,
	}

	return t.DynamicNeighborPrefix[key], nil
}

// RenameDynamicNeighborPrefix renames an entry in the list DynamicNeighborPrefix within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) RenameDynamicNeighborPrefix(oldK, newK string) error {
	if _, ok := t.DynamicNeighborPrefix[newK]; ok {
		return fmt.Errorf("key %v already exists in DynamicNeighborPrefix", newK)
	}

	e, ok := t.DynamicNeighborPrefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in DynamicNeighborPrefix", oldK)
	}
	e.Prefix = &newK

	t.DynamicNeighborPrefix[newK] = e
	delete(t.DynamicNeighborPrefix, oldK)
	return nil
}

// GetOrCreateDynamicNeighborPrefixMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) GetOrCreateDynamicNeighborPrefixMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix {
	if t.DynamicNeighborPrefix == nil {
		t.DynamicNeighborPrefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix)
	}
	return t.DynamicNeighborPrefix
}

// GetOrCreateDynamicNeighborPrefix retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) GetOrCreateDynamicNeighborPrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix {

	key := Prefix

	if v, ok := t.DynamicNeighborPrefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewDynamicNeighborPrefix(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateDynamicNeighborPrefix got unexpected error: %v", err))
	}
	return v
}

// GetDynamicNeighborPrefix retrieves the value with the specified key from
// the DynamicNeighborPrefix map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) GetDynamicNeighborPrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.DynamicNeighborPrefix[key]; ok {
		return lm
	}
	return nil
}

// AppendDynamicNeighborPrefix appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix struct to the
// list DynamicNeighborPrefix of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) AppendDynamicNeighborPrefix(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DynamicNeighborPrefix == nil {
		t.DynamicNeighborPrefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix)
	}

	if _, ok := t.DynamicNeighborPrefix[key]; ok {
		return fmt.Errorf("duplicate key for list DynamicNeighborPrefix %v", key)
	}

	t.DynamicNeighborPrefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.DynamicNeighborPrefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/dynamic-neighbor-prefixes/dynamic-neighbor-prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	Prefix    *string                                                                                                                                        `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                              `path:"@prefix" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/dynamic-neighbor-prefixes/dynamic-neighbor-prefix/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	PeerGroup  *string           `path:"peer-group" module:"openconfig-network-instance"`
	ΛPeerGroup []ygot.Annotation `path:"@peer-group" ygotAnnotation:"true"`
	Prefix     *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix    []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) IsYANGGoStruct() {
}

// GetPeerGroup retrieves the value of the leaf PeerGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerGroup is set, it can
// safely use t.GetPeerGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) GetPeerGroup() string {
	if t == nil || t.PeerGroup == nil {
		return ""
	}
	return *t.PeerGroup
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/dynamic-neighbor-prefixes/dynamic-neighbor-prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	PeerGroup  *string           `path:"peer-group" module:"openconfig-network-instance"`
	ΛPeerGroup []ygot.Annotation `path:"@peer-group" ygotAnnotation:"true"`
	Prefix     *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix    []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) IsYANGGoStruct() {
}

// GetPeerGroup retrieves the value of the leaf PeerGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerGroup is set, it can
// safely use t.GetPeerGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) GetPeerGroup() string {
	if t == nil || t.PeerGroup == nil {
		return ""
	}
	return *t.PeerGroup
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_DynamicNeighborPrefixes_DynamicNeighborPrefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly       *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly      []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
	RestartTime      *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime     []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
	StaleRoutesTime  *uint16           `path:"stale-routes-time" module:"openconfig-network-instance"`
	ΛStaleRoutesTime []ygot.Annotation `path:"@stale-routes-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// GetStaleRoutesTime retrieves the value of the leaf StaleRoutesTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaleRoutesTime is set, it can
// safely use t.GetStaleRoutesTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaleRoutesTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) GetStaleRoutesTime() uint16 {
	if t == nil || t.StaleRoutesTime == nil {
		return 0
	}
	return *t.StaleRoutesTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly       *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly      []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
	RestartTime      *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime     []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
	StaleRoutesTime  *uint16           `path:"stale-routes-time" module:"openconfig-network-instance"`
	ΛStaleRoutesTime []ygot.Annotation `path:"@stale-routes-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// GetStaleRoutesTime retrieves the value of the leaf StaleRoutesTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaleRoutesTime is set, it can
// safely use t.GetStaleRoutesTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaleRoutesTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) GetStaleRoutesTime() uint16 {
	if t == nil || t.StaleRoutesTime == nil {
		return 0
	}
	return *t.StaleRoutesTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/route-selection-options YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/route-selection-options/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvertiseInactiveRoutes  *bool             `path:"advertise-inactive-routes" module:"openconfig-network-instance"`
	ΛAdvertiseInactiveRoutes []ygot.Annotation `path:"@advertise-inactive-routes" ygotAnnotation:"true"`
	AlwaysCompareMed         *bool             `path:"always-compare-med" module:"openconfig-network-instance"`
	ΛAlwaysCompareMed        []ygot.Annotation `path:"@always-compare-med" ygotAnnotation:"true"`
	EnableAigp               *bool             `path:"enable-aigp" module:"openconfig-network-instance"`
	ΛEnableAigp              []ygot.Annotation `path:"@enable-aigp" ygotAnnotation:"true"`
	ExternalCompareRouterId  *bool             `path:"external-compare-router-id" module:"openconfig-network-instance"`
	ΛExternalCompareRouterId []ygot.Annotation `path:"@external-compare-router-id" ygotAnnotation:"true"`
	IgnoreAsPathLength       *bool             `path:"ignore-as-path-length" module:"openconfig-network-instance"`
	ΛIgnoreAsPathLength      []ygot.Annotation `path:"@ignore-as-path-length" ygotAnnotation:"true"`
	IgnoreNextHopIgpMetric   *bool             `path:"ignore-next-hop-igp-metric" module:"openconfig-network-instance"`
	ΛIgnoreNextHopIgpMetric  []ygot.Annotation `path:"@ignore-next-hop-igp-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) IsYANGGoStruct() {
}

// GetAdvertiseInactiveRoutes retrieves the value of the leaf AdvertiseInactiveRoutes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertiseInactiveRoutes is set, it can
// safely use t.GetAdvertiseInactiveRoutes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertiseInactiveRoutes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) GetAdvertiseInactiveRoutes() bool {
	if t == nil || t.AdvertiseInactiveRoutes == nil {
		return false
	}
	return *t.AdvertiseInactiveRoutes
}

// GetAlwaysCompareMed retrieves the value of the leaf AlwaysCompareMed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlwaysCompareMed is set, it can
// safely use t.GetAlwaysCompareMed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlwaysCompareMed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) GetAlwaysCompareMed() bool {
	if t == nil || t.AlwaysCompareMed == nil {
		return false
	}
	return *t.AlwaysCompareMed
}

// GetEnableAigp retrieves the value of the leaf EnableAigp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableAigp is set, it can
// safely use t.GetEnableAigp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableAigp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) GetEnableAigp() bool {
	if t == nil || t.EnableAigp == nil {
		return false
	}
	return *t.EnableAigp
}

// GetExternalCompareRouterId retrieves the value of the leaf ExternalCompareRouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalCompareRouterId is set, it can
// safely use t.GetExternalCompareRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalCompareRouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) GetExternalCompareRouterId() bool {
	if t == nil || t.ExternalCompareRouterId == nil {
		return true
	}
	return *t.ExternalCompareRouterId
}

// GetIgnoreAsPathLength retrieves the value of the leaf IgnoreAsPathLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreAsPathLength is set, it can
// safely use t.GetIgnoreAsPathLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreAsPathLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) GetIgnoreAsPathLength() bool {
	if t == nil || t.IgnoreAsPathLength == nil {
		return false
	}
	return *t.IgnoreAsPathLength
}

// GetIgnoreNextHopIgpMetric retrieves the value of the leaf IgnoreNextHopIgpMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreNextHopIgpMetric is set, it can
// safely use t.GetIgnoreNextHopIgpMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreNextHopIgpMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) GetIgnoreNextHopIgpMetric() bool {
	if t == nil || t.IgnoreNextHopIgpMetric == nil {
		return false
	}
	return *t.IgnoreNextHopIgpMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdvertiseInactiveRoutes == nil {
		var v bool = false
		t.AdvertiseInactiveRoutes = &v
	}
	if t.AlwaysCompareMed == nil {
		var v bool = false
		t.AlwaysCompareMed = &v
	}
	if t.EnableAigp == nil {
		var v bool = false
		t.EnableAigp = &v
	}
	if t.ExternalCompareRouterId == nil {
		var v bool = true
		t.ExternalCompareRouterId = &v
	}
	if t.IgnoreAsPathLength == nil {
		var v bool = false
		t.IgnoreAsPathLength = &v
	}
	if t.IgnoreNextHopIgpMetric == nil {
		var v bool = false
		t.IgnoreNextHopIgpMetric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/route-selection-options/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvertiseInactiveRoutes  *bool             `path:"advertise-inactive-routes" module:"openconfig-network-instance"`
	ΛAdvertiseInactiveRoutes []ygot.Annotation `path:"@advertise-inactive-routes" ygotAnnotation:"true"`
	AlwaysCompareMed         *bool             `path:"always-compare-med" module:"openconfig-network-instance"`
	ΛAlwaysCompareMed        []ygot.Annotation `path:"@always-compare-med" ygotAnnotation:"true"`
	EnableAigp               *bool             `path:"enable-aigp" module:"openconfig-network-instance"`
	ΛEnableAigp              []ygot.Annotation `path:"@enable-aigp" ygotAnnotation:"true"`
	ExternalCompareRouterId  *bool             `path:"external-compare-router-id" module:"openconfig-network-instance"`
	ΛExternalCompareRouterId []ygot.Annotation `path:"@external-compare-router-id" ygotAnnotation:"true"`
	IgnoreAsPathLength       *bool             `path:"ignore-as-path-length" module:"openconfig-network-instance"`
	ΛIgnoreAsPathLength      []ygot.Annotation `path:"@ignore-as-path-length" ygotAnnotation:"true"`
	IgnoreNextHopIgpMetric   *bool             `path:"ignore-next-hop-igp-metric" module:"openconfig-network-instance"`
	ΛIgnoreNextHopIgpMetric  []ygot.Annotation `path:"@ignore-next-hop-igp-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) IsYANGGoStruct() {
}

// GetAdvertiseInactiveRoutes retrieves the value of the leaf AdvertiseInactiveRoutes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertiseInactiveRoutes is set, it can
// safely use t.GetAdvertiseInactiveRoutes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertiseInactiveRoutes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) GetAdvertiseInactiveRoutes() bool {
	if t == nil || t.AdvertiseInactiveRoutes == nil {
		return false
	}
	return *t.AdvertiseInactiveRoutes
}

// GetAlwaysCompareMed retrieves the value of the leaf AlwaysCompareMed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlwaysCompareMed is set, it can
// safely use t.GetAlwaysCompareMed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlwaysCompareMed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) GetAlwaysCompareMed() bool {
	if t == nil || t.AlwaysCompareMed == nil {
		return false
	}
	return *t.AlwaysCompareMed
}

// GetEnableAigp retrieves the value of the leaf EnableAigp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableAigp is set, it can
// safely use t.GetEnableAigp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableAigp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) GetEnableAigp() bool {
	if t == nil || t.EnableAigp == nil {
		return false
	}
	return *t.EnableAigp
}

// GetExternalCompareRouterId retrieves the value of the leaf ExternalCompareRouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalCompareRouterId is set, it can
// safely use t.GetExternalCompareRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalCompareRouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) GetExternalCompareRouterId() bool {
	if t == nil || t.ExternalCompareRouterId == nil {
		return true
	}
	return *t.ExternalCompareRouterId
}

// GetIgnoreAsPathLength retrieves the value of the leaf IgnoreAsPathLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreAsPathLength is set, it can
// safely use t.GetIgnoreAsPathLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreAsPathLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) GetIgnoreAsPathLength() bool {
	if t == nil || t.IgnoreAsPathLength == nil {
		return false
	}
	return *t.IgnoreAsPathLength
}

// GetIgnoreNextHopIgpMetric retrieves the value of the leaf IgnoreNextHopIgpMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreNextHopIgpMetric is set, it can
// safely use t.GetIgnoreNextHopIgpMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreNextHopIgpMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) GetIgnoreNextHopIgpMetric() bool {
	if t == nil || t.IgnoreNextHopIgpMetric == nil {
		return false
	}
	return *t.IgnoreNextHopIgpMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdvertiseInactiveRoutes == nil {
		var v bool = false
		t.AdvertiseInactiveRoutes = &v
	}
	if t.AlwaysCompareMed == nil {
		var v bool = false
		t.AlwaysCompareMed = &v
	}
	if t.EnableAigp == nil {
		var v bool = false
		t.EnableAigp = &v
	}
	if t.ExternalCompareRouterId == nil {
		var v bool = true
		t.ExternalCompareRouterId = &v
	}
	if t.IgnoreAsPathLength == nil {
		var v bool = false
		t.IgnoreAsPathLength = &v
	}
	if t.IgnoreNextHopIgpMetric == nil {
		var v bool = false
		t.IgnoreNextHopIgpMetric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_RouteSelectionOptions_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	As             *uint32           `path:"as" module:"openconfig-network-instance"`
	ΛAs            []ygot.Annotation `path:"@as" ygotAnnotation:"true"`
	RouterId       *string           `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId      []ygot.Annotation `path:"@router-id" ygotAnnotation:"true"`
	TotalPaths     *uint32           `path:"total-paths" module:"openconfig-network-instance"`
	ΛTotalPaths    []ygot.Annotation `path:"@total-paths" ygotAnnotation:"true"`
	TotalPrefixes  *uint32           `path:"total-prefixes" module:"openconfig-network-instance"`
	ΛTotalPrefixes []ygot.Annotation `path:"@total-prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) IsYANGGoStruct() {
}

// GetAs retrieves the value of the leaf As from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if As is set, it can
// safely use t.GetAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.As == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) GetAs() uint32 {
	if t == nil || t.As == nil {
		return 0
	}
	return *t.As
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetTotalPaths retrieves the value of the leaf TotalPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalPaths is set, it can
// safely use t.GetTotalPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) GetTotalPaths() uint32 {
	if t == nil || t.TotalPaths == nil {
		return 0
	}
	return *t.TotalPaths
}

// GetTotalPrefixes retrieves the value of the leaf TotalPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalPrefixes is set, it can
// safely use t.GetTotalPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) GetTotalPrefixes() uint32 {
	if t == nil || t.TotalPrefixes == nil {
		return 0
	}
	return *t.TotalPrefixes
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths struct {
	ΛMetadata []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                 `path:"@config" ygotAnnotation:"true"`
	Ebgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp   `path:"ebgp" module:"openconfig-network-instance"`
	ΛEbgp     []ygot.Annotation                                                                                                 `path:"@ebgp" ygotAnnotation:"true"`
	Ibgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp   `path:"ibgp" module:"openconfig-network-instance"`
	ΛIbgp     []ygot.Annotation                                                                                                 `path:"@ibgp" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config{}
	return t.Config
}

// GetOrCreateEbgp retrieves the value of the Ebgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetOrCreateEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp {
	if t.Ebgp != nil {
		return t.Ebgp
	}
	t.Ebgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp{}
	return t.Ebgp
}

// GetOrCreateIbgp retrieves the value of the Ibgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetOrCreateIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp {
	if t.Ibgp != nil {
		return t.Ibgp
	}
	t.Ibgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp{}
	return t.Ibgp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgp returns the value of the Ebgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths. If the receiver or the field Ebgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp {
	if t != nil && t.Ebgp != nil {
		return t.Ebgp
	}
	return nil
}

// GetIbgp returns the value of the Ibgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths. If the receiver or the field Ibgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp {
	if t != nil && t.Ibgp != nil {
		return t.Ibgp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Ebgp.PopulateDefaults()
	t.Ibgp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ebgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                         `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ebgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ebgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ebgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ebgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ebgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ebgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ibgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                         `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ibgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ibgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ibgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ibgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/ibgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_Ibgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/global/use-multiple-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Global_UseMultiplePaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) NewNeighbor(NeighborAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor)
	}

	key := NeighborAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor{
		NeighborAddress: &NeighborAddress,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.NeighborAddress = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) GetOrCreateNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor {

	key := NeighborAddress

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(NeighborAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) GetNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := NeighborAddress

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) error {
	if v.NeighborAddress == nil {
		return fmt.Errorf("invalid nil key received for NeighborAddress")
	}

	key := *v.NeighborAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor struct {
	ΛMetadata         []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	AfiSafis          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis         `path:"afi-safis" module:"openconfig-network-instance"`
	ΛAfiSafis         []ygot.Annotation                                                                                                      `path:"@afi-safis" ygotAnnotation:"true"`
	ApplyPolicy       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy      `path:"apply-policy" module:"openconfig-network-instance"`
	ΛApplyPolicy      []ygot.Annotation                                                                                                      `path:"@apply-policy" ygotAnnotation:"true"`
	AsPathOptions     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions    `path:"as-path-options" module:"openconfig-network-instance"`
	ΛAsPathOptions    []ygot.Annotation                                                                                                      `path:"@as-path-options" ygotAnnotation:"true"`
	Config            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config           `path:"config" module:"openconfig-network-instance"`
	ΛConfig           []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	EbgpMultihop      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop     `path:"ebgp-multihop" module:"openconfig-network-instance"`
	ΛEbgpMultihop     []ygot.Annotation                                                                                                      `path:"@ebgp-multihop" ygotAnnotation:"true"`
	EnableBfd         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd        `path:"enable-bfd" module:"openconfig-network-instance"`
	ΛEnableBfd        []ygot.Annotation                                                                                                      `path:"@enable-bfd" ygotAnnotation:"true"`
	ErrorHandling     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling    `path:"error-handling" module:"openconfig-network-instance"`
	ΛErrorHandling    []ygot.Annotation                                                                                                      `path:"@error-handling" ygotAnnotation:"true"`
	GracefulRestart   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart  `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart  []ygot.Annotation                                                                                                      `path:"@graceful-restart" ygotAnnotation:"true"`
	LoggingOptions    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions   `path:"logging-options" module:"openconfig-network-instance"`
	ΛLoggingOptions   []ygot.Annotation                                                                                                      `path:"@logging-options" ygotAnnotation:"true"`
	NeighborAddress   *string                                                                                                                `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress  []ygot.Annotation                                                                                                      `path:"@neighbor-address" ygotAnnotation:"true"`
	RouteReflector    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector   `path:"route-reflector" module:"openconfig-network-instance"`
	ΛRouteReflector   []ygot.Annotation                                                                                                      `path:"@route-reflector" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
	Timers            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers           `path:"timers" module:"openconfig-network-instance"`
	ΛTimers           []ygot.Annotation                                                                                                      `path:"@timers" ygotAnnotation:"true"`
	Transport         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport        `path:"transport" module:"openconfig-network-instance"`
	ΛTransport        []ygot.Annotation                                                                                                      `path:"@transport" ygotAnnotation:"true"`
	UseMultiplePaths  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths `path:"use-multiple-paths" module:"openconfig-network-instance"`
	ΛUseMultiplePaths []ygot.Annotation                                                                                                      `path:"@use-multiple-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateAfiSafis retrieves the value of the AfiSafis field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis {
	if t.AfiSafis != nil {
		return t.AfiSafis
	}
	t.AfiSafis = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis{}
	return t.AfiSafis
}

// GetOrCreateApplyPolicy retrieves the value of the ApplyPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy {
	if t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	t.ApplyPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy{}
	return t.ApplyPolicy
}

// GetOrCreateAsPathOptions retrieves the value of the AsPathOptions field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateAsPathOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions {
	if t.AsPathOptions != nil {
		return t.AsPathOptions
	}
	t.AsPathOptions = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions{}
	return t.AsPathOptions
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config{}
	return t.Config
}

// GetOrCreateEbgpMultihop retrieves the value of the EbgpMultihop field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateEbgpMultihop() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop {
	if t.EbgpMultihop != nil {
		return t.EbgpMultihop
	}
	t.EbgpMultihop = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop{}
	return t.EbgpMultihop
}

// GetOrCreateEnableBfd retrieves the value of the EnableBfd field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd {
	if t.EnableBfd != nil {
		return t.EnableBfd
	}
	t.EnableBfd = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd{}
	return t.EnableBfd
}

// GetOrCreateErrorHandling retrieves the value of the ErrorHandling field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateErrorHandling() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling {
	if t.ErrorHandling != nil {
		return t.ErrorHandling
	}
	t.ErrorHandling = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling{}
	return t.ErrorHandling
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateLoggingOptions retrieves the value of the LoggingOptions field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateLoggingOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions {
	if t.LoggingOptions != nil {
		return t.LoggingOptions
	}
	t.LoggingOptions = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions{}
	return t.LoggingOptions
}

// GetOrCreateRouteReflector retrieves the value of the RouteReflector field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateRouteReflector() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector {
	if t.RouteReflector != nil {
		return t.RouteReflector
	}
	t.RouteReflector = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector{}
	return t.RouteReflector
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers{}
	return t.Timers
}

// GetOrCreateTransport retrieves the value of the Transport field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport {
	if t.Transport != nil {
		return t.Transport
	}
	t.Transport = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport{}
	return t.Transport
}

// GetOrCreateUseMultiplePaths retrieves the value of the UseMultiplePaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetOrCreateUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths {
	if t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	t.UseMultiplePaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths{}
	return t.UseMultiplePaths
}

// GetAfiSafis returns the value of the AfiSafis struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field AfiSafis is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis {
	if t != nil && t.AfiSafis != nil {
		return t.AfiSafis
	}
	return nil
}

// GetApplyPolicy returns the value of the ApplyPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field ApplyPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy {
	if t != nil && t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	return nil
}

// GetAsPathOptions returns the value of the AsPathOptions struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field AsPathOptions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetAsPathOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions {
	if t != nil && t.AsPathOptions != nil {
		return t.AsPathOptions
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgpMultihop returns the value of the EbgpMultihop struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field EbgpMultihop is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetEbgpMultihop() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop {
	if t != nil && t.EbgpMultihop != nil {
		return t.EbgpMultihop
	}
	return nil
}

// GetEnableBfd returns the value of the EnableBfd struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field EnableBfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd {
	if t != nil && t.EnableBfd != nil {
		return t.EnableBfd
	}
	return nil
}

// GetErrorHandling returns the value of the ErrorHandling struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field ErrorHandling is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetErrorHandling() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling {
	if t != nil && t.ErrorHandling != nil {
		return t.ErrorHandling
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetLoggingOptions returns the value of the LoggingOptions struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field LoggingOptions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetLoggingOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions {
	if t != nil && t.LoggingOptions != nil {
		return t.LoggingOptions
	}
	return nil
}

// GetRouteReflector returns the value of the RouteReflector struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field RouteReflector is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetRouteReflector() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector {
	if t != nil && t.RouteReflector != nil {
		return t.RouteReflector
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// GetTransport returns the value of the Transport struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field Transport is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport {
	if t != nil && t.Transport != nil {
		return t.Transport
	}
	return nil
}

// GetUseMultiplePaths returns the value of the UseMultiplePaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor. If the receiver or the field UseMultiplePaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths {
	if t != nil && t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	return nil
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AfiSafis.PopulateDefaults()
	t.ApplyPolicy.PopulateDefaults()
	t.AsPathOptions.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.EbgpMultihop.PopulateDefaults()
	t.EnableBfd.PopulateDefaults()
	t.ErrorHandling.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.LoggingOptions.PopulateDefaults()
	t.RouteReflector.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
	t.Transport.PopulateDefaults()
	t.UseMultiplePaths.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NeighborAddress == nil {
		return nil, fmt.Errorf("nil value for key NeighborAddress")
	}

	return map[string]interface{}{
		"neighbor-address": *t.NeighborAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	AfiSafi   map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi `path:"afi-safi" module:"openconfig-network-instance"`
	ΛAfiSafi  []ygot.Annotation                                                                                                                                             `path:"@afi-safi" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) IsYANGGoStruct() {
}

// NewAfiSafi creates a new entry in the AfiSafi list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) NewAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi)
	}

	key := AfiSafiName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AfiSafi[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AfiSafi", key)
	}

	t.AfiSafi[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi{
		AfiSafiName: AfiSafiName,
	}

	return t.AfiSafi[key], nil
}

// RenameAfiSafi renames an entry in the list AfiSafi within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) RenameAfiSafi(oldK, newK E_OpenconfigBgpTypes_AFI_SAFI_TYPE) error {
	if _, ok := t.AfiSafi[newK]; ok {
		return fmt.Errorf("key %v already exists in AfiSafi", newK)
	}

	e, ok := t.AfiSafi[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AfiSafi", oldK)
	}
	e.AfiSafiName = newK

	t.AfiSafi[newK] = e
	delete(t.AfiSafi, oldK)
	return nil
}

// GetOrCreateAfiSafiMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) GetOrCreateAfiSafiMap() map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi {
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi)
	}
	return t.AfiSafi
}

// GetOrCreateAfiSafi retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) GetOrCreateAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi {

	key := AfiSafiName

	if v, ok := t.AfiSafi[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAfiSafi(AfiSafiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAfiSafi got unexpected error: %v", err))
	}
	return v
}

// GetAfiSafi retrieves the value with the specified key from
// the AfiSafi map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) GetAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi {

	if t == nil {
		return nil
	}

	key := AfiSafiName

	if lm, ok := t.AfiSafi[key]; ok {
		return lm
	}
	return nil
}

// AppendAfiSafi appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi struct to the
// list AfiSafi of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) AppendAfiSafi(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) error {
	key := v.AfiSafiName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi)
	}

	if _, ok := t.AfiSafi[key]; ok {
		return fmt.Errorf("duplicate key for list AfiSafi %v", key)
	}

	t.AfiSafi[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AfiSafi {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi struct {
	ΛMetadata           []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	AddPaths            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths           `path:"add-paths" module:"openconfig-network-instance"`
	ΛAddPaths           []ygot.Annotation                                                                                                                         `path:"@add-paths" ygotAnnotation:"true"`
	AfiSafiName         E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                        `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName        []ygot.Annotation                                                                                                                         `path:"@afi-safi-name" ygotAnnotation:"true"`
	ApplyPolicy         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy        `path:"apply-policy" module:"openconfig-network-instance"`
	ΛApplyPolicy        []ygot.Annotation                                                                                                                         `path:"@apply-policy" ygotAnnotation:"true"`
	Config              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config             `path:"config" module:"openconfig-network-instance"`
	ΛConfig             []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	GracefulRestart     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart    `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart    []ygot.Annotation                                                                                                                         `path:"@graceful-restart" ygotAnnotation:"true"`
	Ipv4LabeledUnicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast `path:"ipv4-labeled-unicast" module:"openconfig-network-instance"`
	ΛIpv4LabeledUnicast []ygot.Annotation                                                                                                                         `path:"@ipv4-labeled-unicast" ygotAnnotation:"true"`
	Ipv4Unicast         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast        `path:"ipv4-unicast" module:"openconfig-network-instance"`
	ΛIpv4Unicast        []ygot.Annotation                                                                                                                         `path:"@ipv4-unicast" ygotAnnotation:"true"`
	Ipv6LabeledUnicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast `path:"ipv6-labeled-unicast" module:"openconfig-network-instance"`
	ΛIpv6LabeledUnicast []ygot.Annotation                                                                                                                         `path:"@ipv6-labeled-unicast" ygotAnnotation:"true"`
	Ipv6Unicast         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast        `path:"ipv6-unicast" module:"openconfig-network-instance"`
	ΛIpv6Unicast        []ygot.Annotation                                                                                                                         `path:"@ipv6-unicast" ygotAnnotation:"true"`
	L2VpnEvpn           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn          `path:"l2vpn-evpn" module:"openconfig-network-instance"`
	ΛL2VpnEvpn          []ygot.Annotation                                                                                                                         `path:"@l2vpn-evpn" ygotAnnotation:"true"`
	L2VpnVpls           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls          `path:"l2vpn-vpls" module:"openconfig-network-instance"`
	ΛL2VpnVpls          []ygot.Annotation                                                                                                                         `path:"@l2vpn-vpls" ygotAnnotation:"true"`
	L3VpnIpv4Multicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast `path:"l3vpn-ipv4-multicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv4Multicast []ygot.Annotation                                                                                                                         `path:"@l3vpn-ipv4-multicast" ygotAnnotation:"true"`
	L3VpnIpv4Unicast    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast   `path:"l3vpn-ipv4-unicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv4Unicast   []ygot.Annotation                                                                                                                         `path:"@l3vpn-ipv4-unicast" ygotAnnotation:"true"`
	L3VpnIpv6Multicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast `path:"l3vpn-ipv6-multicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv6Multicast []ygot.Annotation                                                                                                                         `path:"@l3vpn-ipv6-multicast" ygotAnnotation:"true"`
	L3VpnIpv6Unicast    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast   `path:"l3vpn-ipv6-unicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv6Unicast   []ygot.Annotation                                                                                                                         `path:"@l3vpn-ipv6-unicast" ygotAnnotation:"true"`
	SrtePolicyIpv4      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4     `path:"srte-policy-ipv4" module:"openconfig-network-instance"`
	ΛSrtePolicyIpv4     []ygot.Annotation                                                                                                                         `path:"@srte-policy-ipv4" ygotAnnotation:"true"`
	SrtePolicyIpv6      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6     `path:"srte-policy-ipv6" module:"openconfig-network-instance"`
	ΛSrtePolicyIpv6     []ygot.Annotation                                                                                                                         `path:"@srte-policy-ipv6" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	UseMultiplePaths    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths   `path:"use-multiple-paths" module:"openconfig-network-instance"`
	ΛUseMultiplePaths   []ygot.Annotation                                                                                                                         `path:"@use-multiple-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) IsYANGGoStruct() {
}

// GetOrCreateAddPaths retrieves the value of the AddPaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateAddPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths {
	if t.AddPaths != nil {
		return t.AddPaths
	}
	t.AddPaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths{}
	return t.AddPaths
}

// GetOrCreateApplyPolicy retrieves the value of the ApplyPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy {
	if t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	t.ApplyPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy{}
	return t.ApplyPolicy
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config{}
	return t.Config
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateIpv4LabeledUnicast retrieves the value of the Ipv4LabeledUnicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateIpv4LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast {
	if t.Ipv4LabeledUnicast != nil {
		return t.Ipv4LabeledUnicast
	}
	t.Ipv4LabeledUnicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast{}
	return t.Ipv4LabeledUnicast
}

// GetOrCreateIpv4Unicast retrieves the value of the Ipv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast {
	if t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	t.Ipv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast{}
	return t.Ipv4Unicast
}

// GetOrCreateIpv6LabeledUnicast retrieves the value of the Ipv6LabeledUnicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateIpv6LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast {
	if t.Ipv6LabeledUnicast != nil {
		return t.Ipv6LabeledUnicast
	}
	t.Ipv6LabeledUnicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast{}
	return t.Ipv6LabeledUnicast
}

// GetOrCreateIpv6Unicast retrieves the value of the Ipv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast {
	if t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	t.Ipv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast{}
	return t.Ipv6Unicast
}

// GetOrCreateL2VpnEvpn retrieves the value of the L2VpnEvpn field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn {
	if t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	t.L2VpnEvpn = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn{}
	return t.L2VpnEvpn
}

// GetOrCreateL2VpnVpls retrieves the value of the L2VpnVpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateL2VpnVpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls {
	if t.L2VpnVpls != nil {
		return t.L2VpnVpls
	}
	t.L2VpnVpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls{}
	return t.L2VpnVpls
}

// GetOrCreateL3VpnIpv4Multicast retrieves the value of the L3VpnIpv4Multicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv4Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast {
	if t.L3VpnIpv4Multicast != nil {
		return t.L3VpnIpv4Multicast
	}
	t.L3VpnIpv4Multicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast{}
	return t.L3VpnIpv4Multicast
}

// GetOrCreateL3VpnIpv4Unicast retrieves the value of the L3VpnIpv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast {
	if t.L3VpnIpv4Unicast != nil {
		return t.L3VpnIpv4Unicast
	}
	t.L3VpnIpv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast{}
	return t.L3VpnIpv4Unicast
}

// GetOrCreateL3VpnIpv6Multicast retrieves the value of the L3VpnIpv6Multicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv6Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast {
	if t.L3VpnIpv6Multicast != nil {
		return t.L3VpnIpv6Multicast
	}
	t.L3VpnIpv6Multicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast{}
	return t.L3VpnIpv6Multicast
}

// GetOrCreateL3VpnIpv6Unicast retrieves the value of the L3VpnIpv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast {
	if t.L3VpnIpv6Unicast != nil {
		return t.L3VpnIpv6Unicast
	}
	t.L3VpnIpv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast{}
	return t.L3VpnIpv6Unicast
}

// GetOrCreateSrtePolicyIpv4 retrieves the value of the SrtePolicyIpv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateSrtePolicyIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4 {
	if t.SrtePolicyIpv4 != nil {
		return t.SrtePolicyIpv4
	}
	t.SrtePolicyIpv4 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4{}
	return t.SrtePolicyIpv4
}

// GetOrCreateSrtePolicyIpv6 retrieves the value of the SrtePolicyIpv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateSrtePolicyIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6 {
	if t.SrtePolicyIpv6 != nil {
		return t.SrtePolicyIpv6
	}
	t.SrtePolicyIpv6 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6{}
	return t.SrtePolicyIpv6
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State{}
	return t.State
}

// GetOrCreateUseMultiplePaths retrieves the value of the UseMultiplePaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetOrCreateUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths {
	if t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	t.UseMultiplePaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths{}
	return t.UseMultiplePaths
}

// GetAddPaths returns the value of the AddPaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field AddPaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetAddPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths {
	if t != nil && t.AddPaths != nil {
		return t.AddPaths
	}
	return nil
}

// GetApplyPolicy returns the value of the ApplyPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field ApplyPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy {
	if t != nil && t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetIpv4LabeledUnicast returns the value of the Ipv4LabeledUnicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field Ipv4LabeledUnicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetIpv4LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast {
	if t != nil && t.Ipv4LabeledUnicast != nil {
		return t.Ipv4LabeledUnicast
	}
	return nil
}

// GetIpv4Unicast returns the value of the Ipv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field Ipv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast {
	if t != nil && t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	return nil
}

// GetIpv6LabeledUnicast returns the value of the Ipv6LabeledUnicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field Ipv6LabeledUnicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetIpv6LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast {
	if t != nil && t.Ipv6LabeledUnicast != nil {
		return t.Ipv6LabeledUnicast
	}
	return nil
}

// GetIpv6Unicast returns the value of the Ipv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field Ipv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast {
	if t != nil && t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	return nil
}

// GetL2VpnEvpn returns the value of the L2VpnEvpn struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field L2VpnEvpn is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn {
	if t != nil && t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	return nil
}

// GetL2VpnVpls returns the value of the L2VpnVpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field L2VpnVpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetL2VpnVpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls {
	if t != nil && t.L2VpnVpls != nil {
		return t.L2VpnVpls
	}
	return nil
}

// GetL3VpnIpv4Multicast returns the value of the L3VpnIpv4Multicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv4Multicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetL3VpnIpv4Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast {
	if t != nil && t.L3VpnIpv4Multicast != nil {
		return t.L3VpnIpv4Multicast
	}
	return nil
}

// GetL3VpnIpv4Unicast returns the value of the L3VpnIpv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetL3VpnIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast {
	if t != nil && t.L3VpnIpv4Unicast != nil {
		return t.L3VpnIpv4Unicast
	}
	return nil
}

// GetL3VpnIpv6Multicast returns the value of the L3VpnIpv6Multicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv6Multicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetL3VpnIpv6Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast {
	if t != nil && t.L3VpnIpv6Multicast != nil {
		return t.L3VpnIpv6Multicast
	}
	return nil
}

// GetL3VpnIpv6Unicast returns the value of the L3VpnIpv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetL3VpnIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast {
	if t != nil && t.L3VpnIpv6Unicast != nil {
		return t.L3VpnIpv6Unicast
	}
	return nil
}

// GetSrtePolicyIpv4 returns the value of the SrtePolicyIpv4 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field SrtePolicyIpv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetSrtePolicyIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4 {
	if t != nil && t.SrtePolicyIpv4 != nil {
		return t.SrtePolicyIpv4
	}
	return nil
}

// GetSrtePolicyIpv6 returns the value of the SrtePolicyIpv6 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field SrtePolicyIpv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetSrtePolicyIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6 {
	if t != nil && t.SrtePolicyIpv6 != nil {
		return t.SrtePolicyIpv6
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUseMultiplePaths returns the value of the UseMultiplePaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi. If the receiver or the field UseMultiplePaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths {
	if t != nil && t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	return nil
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AddPaths.PopulateDefaults()
	t.ApplyPolicy.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.Ipv4LabeledUnicast.PopulateDefaults()
	t.Ipv4Unicast.PopulateDefaults()
	t.Ipv6LabeledUnicast.PopulateDefaults()
	t.Ipv6Unicast.PopulateDefaults()
	t.L2VpnEvpn.PopulateDefaults()
	t.L2VpnVpls.PopulateDefaults()
	t.L3VpnIpv4Multicast.PopulateDefaults()
	t.L3VpnIpv4Unicast.PopulateDefaults()
	t.L3VpnIpv6Multicast.PopulateDefaults()
	t.L3VpnIpv6Unicast.PopulateDefaults()
	t.SrtePolicyIpv4.PopulateDefaults()
	t.SrtePolicyIpv6.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UseMultiplePaths.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-safi-name": t.AfiSafiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths struct {
	ΛMetadata []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EligiblePrefixPolicy  *string           `path:"eligible-prefix-policy" module:"openconfig-network-instance"`
	ΛEligiblePrefixPolicy []ygot.Annotation `path:"@eligible-prefix-policy" ygotAnnotation:"true"`
	Receive               *bool             `path:"receive" module:"openconfig-network-instance"`
	ΛReceive              []ygot.Annotation `path:"@receive" ygotAnnotation:"true"`
	Send                  *bool             `path:"send" module:"openconfig-network-instance"`
	ΛSend                 []ygot.Annotation `path:"@send" ygotAnnotation:"true"`
	SendMax               *uint8            `path:"send-max" module:"openconfig-network-instance"`
	ΛSendMax              []ygot.Annotation `path:"@send-max" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) IsYANGGoStruct() {
}

// GetEligiblePrefixPolicy retrieves the value of the leaf EligiblePrefixPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EligiblePrefixPolicy is set, it can
// safely use t.GetEligiblePrefixPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EligiblePrefixPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) GetEligiblePrefixPolicy() string {
	if t == nil || t.EligiblePrefixPolicy == nil {
		return ""
	}
	return *t.EligiblePrefixPolicy
}

// GetReceive retrieves the value of the leaf Receive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Receive is set, it can
// safely use t.GetReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Receive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) GetReceive() bool {
	if t == nil || t.Receive == nil {
		return false
	}
	return *t.Receive
}

// GetSend retrieves the value of the leaf Send from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Send is set, it can
// safely use t.GetSend() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Send == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) GetSend() bool {
	if t == nil || t.Send == nil {
		return false
	}
	return *t.Send
}

// GetSendMax retrieves the value of the leaf SendMax from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendMax is set, it can
// safely use t.GetSendMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendMax == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) GetSendMax() uint8 {
	if t == nil || t.SendMax == nil {
		return 0
	}
	return *t.SendMax
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Receive == nil {
		var v bool = false
		t.Receive = &v
	}
	if t.Send == nil {
		var v bool = false
		t.Send = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/add-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EligiblePrefixPolicy  *string           `path:"eligible-prefix-policy" module:"openconfig-network-instance"`
	ΛEligiblePrefixPolicy []ygot.Annotation `path:"@eligible-prefix-policy" ygotAnnotation:"true"`
	Receive               *bool             `path:"receive" module:"openconfig-network-instance"`
	ΛReceive              []ygot.Annotation `path:"@receive" ygotAnnotation:"true"`
	Send                  *bool             `path:"send" module:"openconfig-network-instance"`
	ΛSend                 []ygot.Annotation `path:"@send" ygotAnnotation:"true"`
	SendMax               *uint8            `path:"send-max" module:"openconfig-network-instance"`
	ΛSendMax              []ygot.Annotation `path:"@send-max" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) IsYANGGoStruct() {
}

// GetEligiblePrefixPolicy retrieves the value of the leaf EligiblePrefixPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EligiblePrefixPolicy is set, it can
// safely use t.GetEligiblePrefixPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EligiblePrefixPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) GetEligiblePrefixPolicy() string {
	if t == nil || t.EligiblePrefixPolicy == nil {
		return ""
	}
	return *t.EligiblePrefixPolicy
}

// GetReceive retrieves the value of the leaf Receive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Receive is set, it can
// safely use t.GetReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Receive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) GetReceive() bool {
	if t == nil || t.Receive == nil {
		return false
	}
	return *t.Receive
}

// GetSend retrieves the value of the leaf Send from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Send is set, it can
// safely use t.GetSend() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Send == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) GetSend() bool {
	if t == nil || t.Send == nil {
		return false
	}
	return *t.Send
}

// GetSendMax retrieves the value of the leaf SendMax from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendMax is set, it can
// safely use t.GetSendMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendMax == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) GetSendMax() uint8 {
	if t == nil || t.SendMax == nil {
		return 0
	}
	return *t.SendMax
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Receive == nil {
		var v bool = false
		t.Receive = &v
	}
	if t.Send == nil {
		var v bool = false
		t.Send = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_AddPaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_ApplyPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config struct {
	ΛMetadata          []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	AfiSafiName        E_OpenconfigBgpTypes_AFI_SAFI_TYPE   `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName       []ygot.Annotation                    `path:"@afi-safi-name" ygotAnnotation:"true"`
	Enabled            *bool                                `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                    `path:"@enabled" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                    `path:"@send-community-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) IsYANGGoStruct() {
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Advertised  *bool             `path:"advertised" module:"openconfig-network-instance"`
	ΛAdvertised []ygot.Annotation `path:"@advertised" ygotAnnotation:"true"`
	Enabled     *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled    []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Received    *bool             `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) IsYANGGoStruct() {
}

// GetAdvertised retrieves the value of the leaf Advertised from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Advertised is set, it can
// safely use t.GetAdvertised() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Advertised == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) GetAdvertised() bool {
	if t == nil || t.Advertised == nil {
		return false
	}
	return *t.Advertised
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) GetReceived() bool {
	if t == nil || t.Received == nil {
		return false
	}
	return *t.Received
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                      `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                      `path:"@prefix-limit-received" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config{}
	return t.Config
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedNextHopEncoding  *bool             `path:"extended-next-hop-encoding" module:"openconfig-network-instance"`
	ΛExtendedNextHopEncoding []ygot.Annotation `path:"@extended-next-hop-encoding" ygotAnnotation:"true"`
	SendDefaultRoute         *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute        []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) IsYANGGoStruct() {
}

// GetExtendedNextHopEncoding retrieves the value of the leaf ExtendedNextHopEncoding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedNextHopEncoding is set, it can
// safely use t.GetExtendedNextHopEncoding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedNextHopEncoding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) GetExtendedNextHopEncoding() bool {
	if t == nil || t.ExtendedNextHopEncoding == nil {
		return false
	}
	return *t.ExtendedNextHopEncoding
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExtendedNextHopEncoding == nil {
		var v bool = false
		t.ExtendedNextHopEncoding = &v
	}
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedNextHopEncoding  *bool             `path:"extended-next-hop-encoding" module:"openconfig-network-instance"`
	ΛExtendedNextHopEncoding []ygot.Annotation `path:"@extended-next-hop-encoding" ygotAnnotation:"true"`
	SendDefaultRoute         *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute        []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) IsYANGGoStruct() {
}

// GetExtendedNextHopEncoding retrieves the value of the leaf ExtendedNextHopEncoding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedNextHopEncoding is set, it can
// safely use t.GetExtendedNextHopEncoding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedNextHopEncoding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) GetExtendedNextHopEncoding() bool {
	if t == nil || t.ExtendedNextHopEncoding == nil {
		return false
	}
	return *t.ExtendedNextHopEncoding
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExtendedNextHopEncoding == nil {
		var v bool = false
		t.ExtendedNextHopEncoding = &v
	}
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                      `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                      `path:"@prefix-limit-received" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config{}
	return t.Config
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SendDefaultRoute  *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config) IsYANGGoStruct() {
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SendDefaultRoute  *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State) IsYANGGoStruct() {
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                    `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                    `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-vpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                    `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                    `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-vpls/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-vpls/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-vpls/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-multicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                           `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                           `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-multicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                           `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                           `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv4 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4 struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                         `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                         `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv6 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6 struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                         `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                         `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Active             *bool                                                                                                                                 `path:"active" module:"openconfig-network-instance"`
	ΛActive            []ygot.Annotation                                                                                                                     `path:"@active" ygotAnnotation:"true"`
	AfiSafiName        E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                    `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName       []ygot.Annotation                                                                                                                     `path:"@afi-safi-name" ygotAnnotation:"true"`
	Enabled            *bool                                                                                                                                 `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                                                                                                                     `path:"@enabled" ygotAnnotation:"true"`
	Prefixes           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes `path:"prefixes" module:"openconfig-network-instance"`
	ΛPrefixes          []ygot.Annotation                                                                                                                     `path:"@prefixes" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType                                                                                                  `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                                                                                                                     `path:"@send-community-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) IsYANGGoStruct() {
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) GetOrCreatePrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes{}
	return t.Prefixes
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) GetPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// GetActive retrieves the value of the leaf Active from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Prefixes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/state/prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Installed          *uint32           `path:"installed" module:"openconfig-network-instance"`
	ΛInstalled         []ygot.Annotation `path:"@installed" ygotAnnotation:"true"`
	Received           *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived          []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	ReceivedPrePolicy  *uint32           `path:"received-pre-policy" module:"openconfig-network-instance"`
	ΛReceivedPrePolicy []ygot.Annotation `path:"@received-pre-policy" ygotAnnotation:"true"`
	Sent               *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent              []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) IsYANGGoStruct() {
}

// GetInstalled retrieves the value of the leaf Installed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Installed is set, it can
// safely use t.GetInstalled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Installed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) GetInstalled() uint32 {
	if t == nil || t.Installed == nil {
		return 0
	}
	return *t.Installed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetReceivedPrePolicy retrieves the value of the leaf ReceivedPrePolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceivedPrePolicy is set, it can
// safely use t.GetReceivedPrePolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceivedPrePolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) GetReceivedPrePolicy() uint32 {
	if t == nil || t.ReceivedPrePolicy == nil {
		return 0
	}
	return *t.ReceivedPrePolicy
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_State_Prefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/use-multiple-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	Ebgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp   `path:"ebgp" module:"openconfig-network-instance"`
	ΛEbgp     []ygot.Annotation                                                                                                                              `path:"@ebgp" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config{}
	return t.Config
}

// GetOrCreateEbgp retrieves the value of the Ebgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp {
	if t.Ebgp != nil {
		return t.Ebgp
	}
	t.Ebgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp{}
	return t.Ebgp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgp returns the value of the Ebgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Ebgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) GetEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp {
	if t != nil && t.Ebgp != nil {
		return t.Ebgp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Ebgp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/use-multiple-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/use-multiple-paths/ebgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp struct {
	ΛMetadata []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/use-multiple-paths/ebgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/use-multiple-paths/ebgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/use-multiple-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/apply-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/apply-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/apply-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ApplyPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/as-path-options YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/as-path-options/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowOwnAs           *uint8            `path:"allow-own-as" module:"openconfig-network-instance"`
	ΛAllowOwnAs          []ygot.Annotation `path:"@allow-own-as" ygotAnnotation:"true"`
	DisablePeerAsFilter  *bool             `path:"disable-peer-as-filter" module:"openconfig-network-instance"`
	ΛDisablePeerAsFilter []ygot.Annotation `path:"@disable-peer-as-filter" ygotAnnotation:"true"`
	ReplacePeerAs        *bool             `path:"replace-peer-as" module:"openconfig-network-instance"`
	ΛReplacePeerAs       []ygot.Annotation `path:"@replace-peer-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) IsYANGGoStruct() {
}

// GetAllowOwnAs retrieves the value of the leaf AllowOwnAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowOwnAs is set, it can
// safely use t.GetAllowOwnAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowOwnAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) GetAllowOwnAs() uint8 {
	if t == nil || t.AllowOwnAs == nil {
		return 0
	}
	return *t.AllowOwnAs
}

// GetDisablePeerAsFilter retrieves the value of the leaf DisablePeerAsFilter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisablePeerAsFilter is set, it can
// safely use t.GetDisablePeerAsFilter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisablePeerAsFilter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) GetDisablePeerAsFilter() bool {
	if t == nil || t.DisablePeerAsFilter == nil {
		return false
	}
	return *t.DisablePeerAsFilter
}

// GetReplacePeerAs retrieves the value of the leaf ReplacePeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReplacePeerAs is set, it can
// safely use t.GetReplacePeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReplacePeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) GetReplacePeerAs() bool {
	if t == nil || t.ReplacePeerAs == nil {
		return false
	}
	return *t.ReplacePeerAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowOwnAs == nil {
		var v uint8 = 0
		t.AllowOwnAs = &v
	}
	if t.DisablePeerAsFilter == nil {
		var v bool = false
		t.DisablePeerAsFilter = &v
	}
	if t.ReplacePeerAs == nil {
		var v bool = false
		t.ReplacePeerAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/as-path-options/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowOwnAs           *uint8            `path:"allow-own-as" module:"openconfig-network-instance"`
	ΛAllowOwnAs          []ygot.Annotation `path:"@allow-own-as" ygotAnnotation:"true"`
	DisablePeerAsFilter  *bool             `path:"disable-peer-as-filter" module:"openconfig-network-instance"`
	ΛDisablePeerAsFilter []ygot.Annotation `path:"@disable-peer-as-filter" ygotAnnotation:"true"`
	ReplacePeerAs        *bool             `path:"replace-peer-as" module:"openconfig-network-instance"`
	ΛReplacePeerAs       []ygot.Annotation `path:"@replace-peer-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) IsYANGGoStruct() {
}

// GetAllowOwnAs retrieves the value of the leaf AllowOwnAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowOwnAs is set, it can
// safely use t.GetAllowOwnAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowOwnAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) GetAllowOwnAs() uint8 {
	if t == nil || t.AllowOwnAs == nil {
		return 0
	}
	return *t.AllowOwnAs
}

// GetDisablePeerAsFilter retrieves the value of the leaf DisablePeerAsFilter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisablePeerAsFilter is set, it can
// safely use t.GetDisablePeerAsFilter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisablePeerAsFilter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) GetDisablePeerAsFilter() bool {
	if t == nil || t.DisablePeerAsFilter == nil {
		return false
	}
	return *t.DisablePeerAsFilter
}

// GetReplacePeerAs retrieves the value of the leaf ReplacePeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReplacePeerAs is set, it can
// safely use t.GetReplacePeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReplacePeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) GetReplacePeerAs() bool {
	if t == nil || t.ReplacePeerAs == nil {
		return false
	}
	return *t.ReplacePeerAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowOwnAs == nil {
		var v uint8 = 0
		t.AllowOwnAs = &v
	}
	if t.DisablePeerAsFilter == nil {
		var v bool = false
		t.DisablePeerAsFilter = &v
	}
	if t.ReplacePeerAs == nil {
		var v bool = false
		t.ReplacePeerAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_AsPathOptions_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config struct {
	ΛMetadata          []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	AuthPassword       *string                                    `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword      []ygot.Annotation                          `path:"@auth-password" ygotAnnotation:"true"`
	Description        *string                                    `path:"description" module:"openconfig-network-instance"`
	ΛDescription       []ygot.Annotation                          `path:"@description" ygotAnnotation:"true"`
	Enabled            *bool                                      `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                          `path:"@enabled" ygotAnnotation:"true"`
	LocalAs            *uint32                                    `path:"local-as" module:"openconfig-network-instance"`
	ΛLocalAs           []ygot.Annotation                          `path:"@local-as" ygotAnnotation:"true"`
	NeighborAddress    *string                                    `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress   []ygot.Annotation                          `path:"@neighbor-address" ygotAnnotation:"true"`
	NeighborPort       *uint16                                    `path:"neighbor-port" module:"openconfig-network-instance"`
	ΛNeighborPort      []ygot.Annotation                          `path:"@neighbor-port" ygotAnnotation:"true"`
	PeerAs             *uint32                                    `path:"peer-as" module:"openconfig-network-instance"`
	ΛPeerAs            []ygot.Annotation                          `path:"@peer-as" ygotAnnotation:"true"`
	PeerGroup          *string                                    `path:"peer-group" module:"openconfig-network-instance"`
	ΛPeerGroup         []ygot.Annotation                          `path:"@peer-group" ygotAnnotation:"true"`
	PeerType           E_OpenconfigBgpTypes_PeerType              `path:"peer-type" module:"openconfig-network-instance"`
	ΛPeerType          []ygot.Annotation                          `path:"@peer-type" ygotAnnotation:"true"`
	RemovePrivateAs    E_OpenconfigBgpTypes_RemovePrivateAsOption `path:"remove-private-as" module:"openconfig-network-instance"`
	ΛRemovePrivateAs   []ygot.Annotation                          `path:"@remove-private-as" ygotAnnotation:"true"`
	RouteFlapDamping   *bool                                      `path:"route-flap-damping" module:"openconfig-network-instance"`
	ΛRouteFlapDamping  []ygot.Annotation                          `path:"@route-flap-damping" ygotAnnotation:"true"`
	SendCommunity      E_OpenconfigBgpTypes_CommunityType         `path:"send-community" module:"openconfig-network-instance"`
	ΛSendCommunity     []ygot.Annotation                          `path:"@send-community" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType       `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                          `path:"@send-community-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) IsYANGGoStruct() {
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetLocalAs retrieves the value of the leaf LocalAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAs is set, it can
// safely use t.GetLocalAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetLocalAs() uint32 {
	if t == nil || t.LocalAs == nil {
		return 0
	}
	return *t.LocalAs
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// GetNeighborPort retrieves the value of the leaf NeighborPort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborPort is set, it can
// safely use t.GetNeighborPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborPort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetNeighborPort() uint16 {
	if t == nil || t.NeighborPort == nil {
		return 179
	}
	return *t.NeighborPort
}

// GetPeerAs retrieves the value of the leaf PeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerAs is set, it can
// safely use t.GetPeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetPeerAs() uint32 {
	if t == nil || t.PeerAs == nil {
		return 0
	}
	return *t.PeerAs
}

// GetPeerGroup retrieves the value of the leaf PeerGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerGroup is set, it can
// safely use t.GetPeerGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetPeerGroup() string {
	if t == nil || t.PeerGroup == nil {
		return ""
	}
	return *t.PeerGroup
}

// GetPeerType retrieves the value of the leaf PeerType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerType is set, it can
// safely use t.GetPeerType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetPeerType() E_OpenconfigBgpTypes_PeerType {
	if t == nil || t.PeerType == 0 {
		return 0
	}
	return t.PeerType
}

// GetRemovePrivateAs retrieves the value of the leaf RemovePrivateAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemovePrivateAs is set, it can
// safely use t.GetRemovePrivateAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemovePrivateAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetRemovePrivateAs() E_OpenconfigBgpTypes_RemovePrivateAsOption {
	if t == nil || t.RemovePrivateAs == 0 {
		return 0
	}
	return t.RemovePrivateAs
}

// GetRouteFlapDamping retrieves the value of the leaf RouteFlapDamping from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteFlapDamping is set, it can
// safely use t.GetRouteFlapDamping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteFlapDamping == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetRouteFlapDamping() bool {
	if t == nil || t.RouteFlapDamping == nil {
		return false
	}
	return *t.RouteFlapDamping
}

// GetSendCommunity retrieves the value of the leaf SendCommunity from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunity is set, it can
// safely use t.GetSendCommunity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunity == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetSendCommunity() E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunity == 0 {
		return OpenconfigBgpTypes_CommunityType_NONE
	}
	return t.SendCommunity
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	if t.NeighborPort == nil {
		var v uint16 = 179
		t.NeighborPort = &v
	}
	if t.RouteFlapDamping == nil {
		var v bool = false
		t.RouteFlapDamping = &v
	}
	if t.SendCommunity == 0 {
		t.SendCommunity = OpenconfigBgpTypes_CommunityType_NONE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/ebgp-multihop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop struct {
	ΛMetadata []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/ebgp-multihop/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	MultihopTtl  *uint8            `path:"multihop-ttl" module:"openconfig-network-instance"`
	ΛMultihopTtl []ygot.Annotation `path:"@multihop-ttl" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMultihopTtl retrieves the value of the leaf MultihopTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultihopTtl is set, it can
// safely use t.GetMultihopTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultihopTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) GetMultihopTtl() uint8 {
	if t == nil || t.MultihopTtl == nil {
		return 0
	}
	return *t.MultihopTtl
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/ebgp-multihop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	MultihopTtl  *uint8            `path:"multihop-ttl" module:"openconfig-network-instance"`
	ΛMultihopTtl []ygot.Annotation `path:"@multihop-ttl" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMultihopTtl retrieves the value of the leaf MultihopTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultihopTtl is set, it can
// safely use t.GetMultihopTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultihopTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) GetMultihopTtl() uint8 {
	if t == nil || t.MultihopTtl == nil {
		return 0
	}
	return *t.MultihopTtl
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EbgpMultihop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/enable-bfd YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/enable-bfd/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/enable-bfd/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_EnableBfd_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/error-handling YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/error-handling/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TreatAsWithdraw  *bool             `path:"treat-as-withdraw" module:"openconfig-network-instance"`
	ΛTreatAsWithdraw []ygot.Annotation `path:"@treat-as-withdraw" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config) IsYANGGoStruct() {
}

// GetTreatAsWithdraw retrieves the value of the leaf TreatAsWithdraw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TreatAsWithdraw is set, it can
// safely use t.GetTreatAsWithdraw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TreatAsWithdraw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config) GetTreatAsWithdraw() bool {
	if t == nil || t.TreatAsWithdraw == nil {
		return false
	}
	return *t.TreatAsWithdraw
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.TreatAsWithdraw == nil {
		var v bool = false
		t.TreatAsWithdraw = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/error-handling/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ErroneousUpdateMessages  *uint32           `path:"erroneous-update-messages" module:"openconfig-network-instance"`
	ΛErroneousUpdateMessages []ygot.Annotation `path:"@erroneous-update-messages" ygotAnnotation:"true"`
	TreatAsWithdraw          *bool             `path:"treat-as-withdraw" module:"openconfig-network-instance"`
	ΛTreatAsWithdraw         []ygot.Annotation `path:"@treat-as-withdraw" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) IsYANGGoStruct() {
}

// GetErroneousUpdateMessages retrieves the value of the leaf ErroneousUpdateMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ErroneousUpdateMessages is set, it can
// safely use t.GetErroneousUpdateMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ErroneousUpdateMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) GetErroneousUpdateMessages() uint32 {
	if t == nil || t.ErroneousUpdateMessages == nil {
		return 0
	}
	return *t.ErroneousUpdateMessages
}

// GetTreatAsWithdraw retrieves the value of the leaf TreatAsWithdraw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TreatAsWithdraw is set, it can
// safely use t.GetTreatAsWithdraw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TreatAsWithdraw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) GetTreatAsWithdraw() bool {
	if t == nil || t.TreatAsWithdraw == nil {
		return false
	}
	return *t.TreatAsWithdraw
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.TreatAsWithdraw == nil {
		var v bool = false
		t.TreatAsWithdraw = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_ErrorHandling_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly       *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly      []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
	RestartTime      *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime     []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
	StaleRoutesTime  *uint16           `path:"stale-routes-time" module:"openconfig-network-instance"`
	ΛStaleRoutesTime []ygot.Annotation `path:"@stale-routes-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// GetStaleRoutesTime retrieves the value of the leaf StaleRoutesTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaleRoutesTime is set, it can
// safely use t.GetStaleRoutesTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaleRoutesTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) GetStaleRoutesTime() uint16 {
	if t == nil || t.StaleRoutesTime == nil {
		return 0
	}
	return *t.StaleRoutesTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State struct {
	ΛMetadata        []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Enabled          *bool                                                                                                                             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation                                                                                                                 `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly       *bool                                                                                                                             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly      []ygot.Annotation                                                                                                                 `path:"@helper-only" ygotAnnotation:"true"`
	LocalRestarting  *bool                                                                                                                             `path:"local-restarting" module:"openconfig-network-instance"`
	ΛLocalRestarting []ygot.Annotation                                                                                                                 `path:"@local-restarting" ygotAnnotation:"true"`
	Mode             E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode `path:"mode" module:"openconfig-network-instance"`
	ΛMode            []ygot.Annotation                                                                                                                 `path:"@mode" ygotAnnotation:"true"`
	PeerRestartTime  *uint16                                                                                                                           `path:"peer-restart-time" module:"openconfig-network-instance"`
	ΛPeerRestartTime []ygot.Annotation                                                                                                                 `path:"@peer-restart-time" ygotAnnotation:"true"`
	PeerRestarting   *bool                                                                                                                             `path:"peer-restarting" module:"openconfig-network-instance"`
	ΛPeerRestarting  []ygot.Annotation                                                                                                                 `path:"@peer-restarting" ygotAnnotation:"true"`
	RestartTime      *uint16                                                                                                                           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime     []ygot.Annotation                                                                                                                 `path:"@restart-time" ygotAnnotation:"true"`
	StaleRoutesTime  *uint16                                                                                                                           `path:"stale-routes-time" module:"openconfig-network-instance"`
	ΛStaleRoutesTime []ygot.Annotation                                                                                                                 `path:"@stale-routes-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetLocalRestarting retrieves the value of the leaf LocalRestarting from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalRestarting is set, it can
// safely use t.GetLocalRestarting() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalRestarting == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetLocalRestarting() bool {
	if t == nil || t.LocalRestarting == nil {
		return false
	}
	return *t.LocalRestarting
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetMode() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// GetPeerRestartTime retrieves the value of the leaf PeerRestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerRestartTime is set, it can
// safely use t.GetPeerRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerRestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetPeerRestartTime() uint16 {
	if t == nil || t.PeerRestartTime == nil {
		return 0
	}
	return *t.PeerRestartTime
}

// GetPeerRestarting retrieves the value of the leaf PeerRestarting from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerRestarting is set, it can
// safely use t.GetPeerRestarting() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerRestarting == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetPeerRestarting() bool {
	if t == nil || t.PeerRestarting == nil {
		return false
	}
	return *t.PeerRestarting
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// GetStaleRoutesTime retrieves the value of the leaf StaleRoutesTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaleRoutesTime is set, it can
// safely use t.GetStaleRoutesTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaleRoutesTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) GetStaleRoutesTime() uint16 {
	if t == nil || t.StaleRoutesTime == nil {
		return 0
	}
	return *t.StaleRoutesTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/logging-options YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions struct {
	ΛMetadata []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/logging-options/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LogNeighborStateChanges  *bool             `path:"log-neighbor-state-changes" module:"openconfig-network-instance"`
	ΛLogNeighborStateChanges []ygot.Annotation `path:"@log-neighbor-state-changes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config) IsYANGGoStruct() {
}

// GetLogNeighborStateChanges retrieves the value of the leaf LogNeighborStateChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogNeighborStateChanges is set, it can
// safely use t.GetLogNeighborStateChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogNeighborStateChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config) GetLogNeighborStateChanges() bool {
	if t == nil || t.LogNeighborStateChanges == nil {
		return true
	}
	return *t.LogNeighborStateChanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LogNeighborStateChanges == nil {
		var v bool = true
		t.LogNeighborStateChanges = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/logging-options/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LogNeighborStateChanges  *bool             `path:"log-neighbor-state-changes" module:"openconfig-network-instance"`
	ΛLogNeighborStateChanges []ygot.Annotation `path:"@log-neighbor-state-changes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State) IsYANGGoStruct() {
}

// GetLogNeighborStateChanges retrieves the value of the leaf LogNeighborStateChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogNeighborStateChanges is set, it can
// safely use t.GetLogNeighborStateChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogNeighborStateChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State) GetLogNeighborStateChanges() bool {
	if t == nil || t.LogNeighborStateChanges == nil {
		return true
	}
	return *t.LogNeighborStateChanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LogNeighborStateChanges == nil {
		var v bool = true
		t.LogNeighborStateChanges = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_LoggingOptions_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector struct {
	ΛMetadata []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config struct {
	ΛMetadata                []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	RouteReflectorClient     *bool                                                                                                                                                    `path:"route-reflector-client" module:"openconfig-network-instance"`
	ΛRouteReflectorClient    []ygot.Annotation                                                                                                                                        `path:"@route-reflector-client" ygotAnnotation:"true"`
	RouteReflectorClusterId  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union `path:"route-reflector-cluster-id" module:"openconfig-network-instance"`
	ΛRouteReflectorClusterId []ygot.Annotation                                                                                                                                        `path:"@route-reflector-cluster-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) IsYANGGoStruct() {
}

// GetRouteReflectorClient retrieves the value of the leaf RouteReflectorClient from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClient is set, it can
// safely use t.GetRouteReflectorClient() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClient == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) GetRouteReflectorClient() bool {
	if t == nil || t.RouteReflectorClient == nil {
		return false
	}
	return *t.RouteReflectorClient
}

// GetRouteReflectorClusterId retrieves the value of the leaf RouteReflectorClusterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClusterId is set, it can
// safely use t.GetRouteReflectorClusterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClusterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) GetRouteReflectorClusterId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union {
	if t == nil || t.RouteReflectorClusterId == nil {
		return nil
	}
	return t.RouteReflectorClusterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RouteReflectorClient == nil {
		var v bool = false
		t.RouteReflectorClient = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/config/route-reflector-cluster-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_Config_RouteReflectorClusterId_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	RouteReflectorClient     *bool                                                                                                                                                   `path:"route-reflector-client" module:"openconfig-network-instance"`
	ΛRouteReflectorClient    []ygot.Annotation                                                                                                                                       `path:"@route-reflector-client" ygotAnnotation:"true"`
	RouteReflectorClusterId  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union `path:"route-reflector-cluster-id" module:"openconfig-network-instance"`
	ΛRouteReflectorClusterId []ygot.Annotation                                                                                                                                       `path:"@route-reflector-cluster-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) IsYANGGoStruct() {
}

// GetRouteReflectorClient retrieves the value of the leaf RouteReflectorClient from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClient is set, it can
// safely use t.GetRouteReflectorClient() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClient == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) GetRouteReflectorClient() bool {
	if t == nil || t.RouteReflectorClient == nil {
		return false
	}
	return *t.RouteReflectorClient
}

// GetRouteReflectorClusterId retrieves the value of the leaf RouteReflectorClusterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClusterId is set, it can
// safely use t.GetRouteReflectorClusterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClusterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) GetRouteReflectorClusterId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union {
	if t == nil || t.RouteReflectorClusterId == nil {
		return nil
	}
	return t.RouteReflectorClusterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RouteReflectorClient == nil {
		var v bool = false
		t.RouteReflectorClient = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/route-reflector/state/route-reflector-cluster-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_RouteReflector_State_RouteReflectorClusterId_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	AuthPassword             *string                                                                                                                   `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword            []ygot.Annotation                                                                                                         `path:"@auth-password" ygotAnnotation:"true"`
	Description              *string                                                                                                                   `path:"description" module:"openconfig-network-instance"`
	ΛDescription             []ygot.Annotation                                                                                                         `path:"@description" ygotAnnotation:"true"`
	DynamicallyConfigured    *bool                                                                                                                     `path:"dynamically-configured" module:"openconfig-network-instance"`
	ΛDynamicallyConfigured   []ygot.Annotation                                                                                                         `path:"@dynamically-configured" ygotAnnotation:"true"`
	Enabled                  *bool                                                                                                                     `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled                 []ygot.Annotation                                                                                                         `path:"@enabled" ygotAnnotation:"true"`
	EstablishedTransitions   *uint64                                                                                                                   `path:"established-transitions" module:"openconfig-network-instance"`
	ΛEstablishedTransitions  []ygot.Annotation                                                                                                         `path:"@established-transitions" ygotAnnotation:"true"`
	LastEstablished          *uint64                                                                                                                   `path:"last-established" module:"openconfig-network-instance"`
	ΛLastEstablished         []ygot.Annotation                                                                                                         `path:"@last-established" ygotAnnotation:"true"`
	LastPrefixLimitExceeded  *uint64                                                                                                                   `path:"last-prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛLastPrefixLimitExceeded []ygot.Annotation                                                                                                         `path:"@last-prefix-limit-exceeded" ygotAnnotation:"true"`
	LocalAs                  *uint32                                                                                                                   `path:"local-as" module:"openconfig-network-instance"`
	ΛLocalAs                 []ygot.Annotation                                                                                                         `path:"@local-as" ygotAnnotation:"true"`
	Messages                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages      `path:"messages" module:"openconfig-network-instance"`
	ΛMessages                []ygot.Annotation                                                                                                         `path:"@messages" ygotAnnotation:"true"`
	NeighborAddress          *string                                                                                                                   `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress         []ygot.Annotation                                                                                                         `path:"@neighbor-address" ygotAnnotation:"true"`
	NeighborPort             *uint16                                                                                                                   `path:"neighbor-port" module:"openconfig-network-instance"`
	ΛNeighborPort            []ygot.Annotation                                                                                                         `path:"@neighbor-port" ygotAnnotation:"true"`
	PeerAs                   *uint32                                                                                                                   `path:"peer-as" module:"openconfig-network-instance"`
	ΛPeerAs                  []ygot.Annotation                                                                                                         `path:"@peer-as" ygotAnnotation:"true"`
	PeerGroup                *string                                                                                                                   `path:"peer-group" module:"openconfig-network-instance"`
	ΛPeerGroup               []ygot.Annotation                                                                                                         `path:"@peer-group" ygotAnnotation:"true"`
	PeerType                 E_OpenconfigBgpTypes_PeerType                                                                                             `path:"peer-type" module:"openconfig-network-instance"`
	ΛPeerType                []ygot.Annotation                                                                                                         `path:"@peer-type" ygotAnnotation:"true"`
	Queues                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues        `path:"queues" module:"openconfig-network-instance"`
	ΛQueues                  []ygot.Annotation                                                                                                         `path:"@queues" ygotAnnotation:"true"`
	RemovePrivateAs          E_OpenconfigBgpTypes_RemovePrivateAsOption                                                                                `path:"remove-private-as" module:"openconfig-network-instance"`
	ΛRemovePrivateAs         []ygot.Annotation                                                                                                         `path:"@remove-private-as" ygotAnnotation:"true"`
	RouteFlapDamping         *bool                                                                                                                     `path:"route-flap-damping" module:"openconfig-network-instance"`
	ΛRouteFlapDamping        []ygot.Annotation                                                                                                         `path:"@route-flap-damping" ygotAnnotation:"true"`
	SendCommunity            E_OpenconfigBgpTypes_CommunityType                                                                                        `path:"send-community" module:"openconfig-network-instance"`
	ΛSendCommunity           []ygot.Annotation                                                                                                         `path:"@send-community" ygotAnnotation:"true"`
	SendCommunityType        []E_OpenconfigBgpTypes_CommunityType                                                                                      `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType       []ygot.Annotation                                                                                                         `path:"@send-community-type" ygotAnnotation:"true"`
	SessionState             E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState `path:"session-state" module:"openconfig-network-instance"`
	ΛSessionState            []ygot.Annotation                                                                                                         `path:"@session-state" ygotAnnotation:"true"`
	SupportedCapabilities    []E_OpenconfigBgpTypes_BGP_CAPABILITY                                                                                     `path:"supported-capabilities" module:"openconfig-network-instance"`
	ΛSupportedCapabilities   []ygot.Annotation                                                                                                         `path:"@supported-capabilities" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetOrCreateMessages retrieves the value of the Messages field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetOrCreateMessages() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages {
	if t.Messages != nil {
		return t.Messages
	}
	t.Messages = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages{}
	return t.Messages
}

// GetOrCreateQueues retrieves the value of the Queues field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetOrCreateQueues() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues {
	if t.Queues != nil {
		return t.Queues
	}
	t.Queues = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues{}
	return t.Queues
}

// GetMessages returns the value of the Messages struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State. If the receiver or the field Messages is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetMessages() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages {
	if t != nil && t.Messages != nil {
		return t.Messages
	}
	return nil
}

// GetQueues returns the value of the Queues struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State. If the receiver or the field Queues is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetQueues() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues {
	if t != nil && t.Queues != nil {
		return t.Queues
	}
	return nil
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetDynamicallyConfigured retrieves the value of the leaf DynamicallyConfigured from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DynamicallyConfigured is set, it can
// safely use t.GetDynamicallyConfigured() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DynamicallyConfigured == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetDynamicallyConfigured() bool {
	if t == nil || t.DynamicallyConfigured == nil {
		return false
	}
	return *t.DynamicallyConfigured
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetEstablishedTransitions retrieves the value of the leaf EstablishedTransitions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EstablishedTransitions is set, it can
// safely use t.GetEstablishedTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EstablishedTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetEstablishedTransitions() uint64 {
	if t == nil || t.EstablishedTransitions == nil {
		return 0
	}
	return *t.EstablishedTransitions
}

// GetLastEstablished retrieves the value of the leaf LastEstablished from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastEstablished is set, it can
// safely use t.GetLastEstablished() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastEstablished == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetLastEstablished() uint64 {
	if t == nil || t.LastEstablished == nil {
		return 0
	}
	return *t.LastEstablished
}

// GetLastPrefixLimitExceeded retrieves the value of the leaf LastPrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastPrefixLimitExceeded is set, it can
// safely use t.GetLastPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastPrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetLastPrefixLimitExceeded() uint64 {
	if t == nil || t.LastPrefixLimitExceeded == nil {
		return 0
	}
	return *t.LastPrefixLimitExceeded
}

// GetLocalAs retrieves the value of the leaf LocalAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAs is set, it can
// safely use t.GetLocalAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetLocalAs() uint32 {
	if t == nil || t.LocalAs == nil {
		return 0
	}
	return *t.LocalAs
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// GetNeighborPort retrieves the value of the leaf NeighborPort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborPort is set, it can
// safely use t.GetNeighborPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborPort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetNeighborPort() uint16 {
	if t == nil || t.NeighborPort == nil {
		return 179
	}
	return *t.NeighborPort
}

// GetPeerAs retrieves the value of the leaf PeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerAs is set, it can
// safely use t.GetPeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetPeerAs() uint32 {
	if t == nil || t.PeerAs == nil {
		return 0
	}
	return *t.PeerAs
}

// GetPeerGroup retrieves the value of the leaf PeerGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerGroup is set, it can
// safely use t.GetPeerGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetPeerGroup() string {
	if t == nil || t.PeerGroup == nil {
		return ""
	}
	return *t.PeerGroup
}

// GetPeerType retrieves the value of the leaf PeerType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerType is set, it can
// safely use t.GetPeerType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetPeerType() E_OpenconfigBgpTypes_PeerType {
	if t == nil || t.PeerType == 0 {
		return 0
	}
	return t.PeerType
}

// GetRemovePrivateAs retrieves the value of the leaf RemovePrivateAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemovePrivateAs is set, it can
// safely use t.GetRemovePrivateAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemovePrivateAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetRemovePrivateAs() E_OpenconfigBgpTypes_RemovePrivateAsOption {
	if t == nil || t.RemovePrivateAs == 0 {
		return 0
	}
	return t.RemovePrivateAs
}

// GetRouteFlapDamping retrieves the value of the leaf RouteFlapDamping from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteFlapDamping is set, it can
// safely use t.GetRouteFlapDamping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteFlapDamping == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetRouteFlapDamping() bool {
	if t == nil || t.RouteFlapDamping == nil {
		return false
	}
	return *t.RouteFlapDamping
}

// GetSendCommunity retrieves the value of the leaf SendCommunity from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunity is set, it can
// safely use t.GetSendCommunity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunity == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetSendCommunity() E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunity == 0 {
		return OpenconfigBgpTypes_CommunityType_NONE
	}
	return t.SendCommunity
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// GetSessionState retrieves the value of the leaf SessionState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionState is set, it can
// safely use t.GetSessionState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetSessionState() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState {
	if t == nil || t.SessionState == 0 {
		return 0
	}
	return t.SessionState
}

// GetSupportedCapabilities retrieves the value of the leaf SupportedCapabilities from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SupportedCapabilities is set, it can
// safely use t.GetSupportedCapabilities() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SupportedCapabilities == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) GetSupportedCapabilities() []E_OpenconfigBgpTypes_BGP_CAPABILITY {
	if t == nil || t.SupportedCapabilities == nil {
		return nil
	}
	return t.SupportedCapabilities
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DynamicallyConfigured == nil {
		var v bool = false
		t.DynamicallyConfigured = &v
	}
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
	if t.NeighborPort == nil {
		var v uint16 = 179
		t.NeighborPort = &v
	}
	if t.RouteFlapDamping == nil {
		var v bool = false
		t.RouteFlapDamping = &v
	}
	if t.SendCommunity == 0 {
		t.SendCommunity = OpenconfigBgpTypes_CommunityType_NONE
	}
	t.Messages.PopulateDefaults()
	t.Queues.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/messages YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages struct {
	ΛMetadata []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Received  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received `path:"received" module:"openconfig-network-instance"`
	ΛReceived []ygot.Annotation                                                                                                             `path:"@received" ygotAnnotation:"true"`
	Sent      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent     `path:"sent" module:"openconfig-network-instance"`
	ΛSent     []ygot.Annotation                                                                                                             `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) IsYANGGoStruct() {
}

// GetOrCreateReceived retrieves the value of the Received field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) GetOrCreateReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received {
	if t.Received != nil {
		return t.Received
	}
	t.Received = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received{}
	return t.Received
}

// GetOrCreateSent retrieves the value of the Sent field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) GetOrCreateSent() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent {
	if t.Sent != nil {
		return t.Sent
	}
	t.Sent = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent{}
	return t.Sent
}

// GetReceived returns the value of the Received struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages. If the receiver or the field Received is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) GetReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received {
	if t != nil && t.Received != nil {
		return t.Received
	}
	return nil
}

// GetSent returns the value of the Sent struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages. If the receiver or the field Sent is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) GetSent() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent {
	if t != nil && t.Sent != nil {
		return t.Sent
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Received.PopulateDefaults()
	t.Sent.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/messages/received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received struct {
	ΛMetadata                     []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	NOTIFICATION                  *uint64                                `path:"NOTIFICATION" module:"openconfig-network-instance"`
	ΛNOTIFICATION                 []ygot.Annotation                      `path:"@NOTIFICATION" ygotAnnotation:"true"`
	UPDATE                        *uint64                                `path:"UPDATE" module:"openconfig-network-instance"`
	ΛUPDATE                       []ygot.Annotation                      `path:"@UPDATE" ygotAnnotation:"true"`
	LastNotificationErrorCode     E_OpenconfigBgpTypes_BGP_ERROR_CODE    `path:"last-notification-error-code" module:"openconfig-network-instance"`
	ΛLastNotificationErrorCode    []ygot.Annotation                      `path:"@last-notification-error-code" ygotAnnotation:"true"`
	LastNotificationErrorSubcode  E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE `path:"last-notification-error-subcode" module:"openconfig-network-instance"`
	ΛLastNotificationErrorSubcode []ygot.Annotation                      `path:"@last-notification-error-subcode" ygotAnnotation:"true"`
	LastNotificationTime          *uint64                                `path:"last-notification-time" module:"openconfig-network-instance"`
	ΛLastNotificationTime         []ygot.Annotation                      `path:"@last-notification-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) IsYANGGoStruct() {
}

// GetNOTIFICATION retrieves the value of the leaf NOTIFICATION from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NOTIFICATION is set, it can
// safely use t.GetNOTIFICATION() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NOTIFICATION == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) GetNOTIFICATION() uint64 {
	if t == nil || t.NOTIFICATION == nil {
		return 0
	}
	return *t.NOTIFICATION
}

// GetUPDATE retrieves the value of the leaf UPDATE from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UPDATE is set, it can
// safely use t.GetUPDATE() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UPDATE == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) GetUPDATE() uint64 {
	if t == nil || t.UPDATE == nil {
		return 0
	}
	return *t.UPDATE
}

// GetLastNotificationErrorCode retrieves the value of the leaf LastNotificationErrorCode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastNotificationErrorCode is set, it can
// safely use t.GetLastNotificationErrorCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastNotificationErrorCode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) GetLastNotificationErrorCode() E_OpenconfigBgpTypes_BGP_ERROR_CODE {
	if t == nil || t.LastNotificationErrorCode == 0 {
		return 0
	}
	return t.LastNotificationErrorCode
}

// GetLastNotificationErrorSubcode retrieves the value of the leaf LastNotificationErrorSubcode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastNotificationErrorSubcode is set, it can
// safely use t.GetLastNotificationErrorSubcode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastNotificationErrorSubcode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) GetLastNotificationErrorSubcode() E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE {
	if t == nil || t.LastNotificationErrorSubcode == 0 {
		return 0
	}
	return t.LastNotificationErrorSubcode
}

// GetLastNotificationTime retrieves the value of the leaf LastNotificationTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastNotificationTime is set, it can
// safely use t.GetLastNotificationTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastNotificationTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) GetLastNotificationTime() uint64 {
	if t == nil || t.LastNotificationTime == nil {
		return 0
	}
	return *t.LastNotificationTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Received) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/messages/sent YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent struct {
	ΛMetadata                     []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	NOTIFICATION                  *uint64                                `path:"NOTIFICATION" module:"openconfig-network-instance"`
	ΛNOTIFICATION                 []ygot.Annotation                      `path:"@NOTIFICATION" ygotAnnotation:"true"`
	UPDATE                        *uint64                                `path:"UPDATE" module:"openconfig-network-instance"`
	ΛUPDATE                       []ygot.Annotation                      `path:"@UPDATE" ygotAnnotation:"true"`
	LastNotificationErrorCode     E_OpenconfigBgpTypes_BGP_ERROR_CODE    `path:"last-notification-error-code" module:"openconfig-network-instance"`
	ΛLastNotificationErrorCode    []ygot.Annotation                      `path:"@last-notification-error-code" ygotAnnotation:"true"`
	LastNotificationErrorSubcode  E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE `path:"last-notification-error-subcode" module:"openconfig-network-instance"`
	ΛLastNotificationErrorSubcode []ygot.Annotation                      `path:"@last-notification-error-subcode" ygotAnnotation:"true"`
	LastNotificationTime          *uint64                                `path:"last-notification-time" module:"openconfig-network-instance"`
	ΛLastNotificationTime         []ygot.Annotation                      `path:"@last-notification-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) IsYANGGoStruct() {
}

// GetNOTIFICATION retrieves the value of the leaf NOTIFICATION from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NOTIFICATION is set, it can
// safely use t.GetNOTIFICATION() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NOTIFICATION == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) GetNOTIFICATION() uint64 {
	if t == nil || t.NOTIFICATION == nil {
		return 0
	}
	return *t.NOTIFICATION
}

// GetUPDATE retrieves the value of the leaf UPDATE from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UPDATE is set, it can
// safely use t.GetUPDATE() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UPDATE == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) GetUPDATE() uint64 {
	if t == nil || t.UPDATE == nil {
		return 0
	}
	return *t.UPDATE
}

// GetLastNotificationErrorCode retrieves the value of the leaf LastNotificationErrorCode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastNotificationErrorCode is set, it can
// safely use t.GetLastNotificationErrorCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastNotificationErrorCode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) GetLastNotificationErrorCode() E_OpenconfigBgpTypes_BGP_ERROR_CODE {
	if t == nil || t.LastNotificationErrorCode == 0 {
		return 0
	}
	return t.LastNotificationErrorCode
}

// GetLastNotificationErrorSubcode retrieves the value of the leaf LastNotificationErrorSubcode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastNotificationErrorSubcode is set, it can
// safely use t.GetLastNotificationErrorSubcode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastNotificationErrorSubcode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) GetLastNotificationErrorSubcode() E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE {
	if t == nil || t.LastNotificationErrorSubcode == 0 {
		return 0
	}
	return t.LastNotificationErrorSubcode
}

// GetLastNotificationTime retrieves the value of the leaf LastNotificationTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastNotificationTime is set, it can
// safely use t.GetLastNotificationTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastNotificationTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) GetLastNotificationTime() uint64 {
	if t == nil || t.LastNotificationTime == nil {
		return 0
	}
	return *t.LastNotificationTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Messages_Sent) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/queues YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Input     *uint32           `path:"input" module:"openconfig-network-instance"`
	ΛInput    []ygot.Annotation `path:"@input" ygotAnnotation:"true"`
	Output    *uint32           `path:"output" module:"openconfig-network-instance"`
	ΛOutput   []ygot.Annotation `path:"@output" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) IsYANGGoStruct() {
}

// GetInput retrieves the value of the leaf Input from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Input is set, it can
// safely use t.GetInput() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Input == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) GetInput() uint32 {
	if t == nil || t.Input == nil {
		return 0
	}
	return *t.Input
}

// GetOutput retrieves the value of the leaf Output from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Output is set, it can
// safely use t.GetOutput() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Output == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) GetOutput() uint32 {
	if t == nil || t.Output == nil {
		return 0
	}
	return *t.Output
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_Queues) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ConnectRetry                  *uint16           `path:"connect-retry" module:"openconfig-network-instance"`
	ΛConnectRetry                 []ygot.Annotation `path:"@connect-retry" ygotAnnotation:"true"`
	HoldTime                      *uint16           `path:"hold-time" module:"openconfig-network-instance"`
	ΛHoldTime                     []ygot.Annotation `path:"@hold-time" ygotAnnotation:"true"`
	KeepaliveInterval             *uint16           `path:"keepalive-interval" module:"openconfig-network-instance"`
	ΛKeepaliveInterval            []ygot.Annotation `path:"@keepalive-interval" ygotAnnotation:"true"`
	MinimumAdvertisementInterval  *uint16           `path:"minimum-advertisement-interval" module:"openconfig-network-instance"`
	ΛMinimumAdvertisementInterval []ygot.Annotation `path:"@minimum-advertisement-interval" ygotAnnotation:"true"`
	RestartTime                   *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime                  []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) IsYANGGoStruct() {
}

// GetConnectRetry retrieves the value of the leaf ConnectRetry from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectRetry is set, it can
// safely use t.GetConnectRetry() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectRetry == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) GetConnectRetry() uint16 {
	if t == nil || t.ConnectRetry == nil {
		return 30
	}
	return *t.ConnectRetry
}

// GetHoldTime retrieves the value of the leaf HoldTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldTime is set, it can
// safely use t.GetHoldTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) GetHoldTime() uint16 {
	if t == nil || t.HoldTime == nil {
		return 90
	}
	return *t.HoldTime
}

// GetKeepaliveInterval retrieves the value of the leaf KeepaliveInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeepaliveInterval is set, it can
// safely use t.GetKeepaliveInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeepaliveInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) GetKeepaliveInterval() uint16 {
	if t == nil || t.KeepaliveInterval == nil {
		return 30
	}
	return *t.KeepaliveInterval
}

// GetMinimumAdvertisementInterval retrieves the value of the leaf MinimumAdvertisementInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinimumAdvertisementInterval is set, it can
// safely use t.GetMinimumAdvertisementInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinimumAdvertisementInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) GetMinimumAdvertisementInterval() uint16 {
	if t == nil || t.MinimumAdvertisementInterval == nil {
		return 30
	}
	return *t.MinimumAdvertisementInterval
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ConnectRetry == nil {
		var v uint16 = 30
		t.ConnectRetry = &v
	}
	if t.HoldTime == nil {
		var v uint16 = 90
		t.HoldTime = &v
	}
	if t.KeepaliveInterval == nil {
		var v uint16 = 30
		t.KeepaliveInterval = &v
	}
	if t.MinimumAdvertisementInterval == nil {
		var v uint16 = 30
		t.MinimumAdvertisementInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ConnectRetry                  *uint16           `path:"connect-retry" module:"openconfig-network-instance"`
	ΛConnectRetry                 []ygot.Annotation `path:"@connect-retry" ygotAnnotation:"true"`
	HoldTime                      *uint16           `path:"hold-time" module:"openconfig-network-instance"`
	ΛHoldTime                     []ygot.Annotation `path:"@hold-time" ygotAnnotation:"true"`
	KeepaliveInterval             *uint16           `path:"keepalive-interval" module:"openconfig-network-instance"`
	ΛKeepaliveInterval            []ygot.Annotation `path:"@keepalive-interval" ygotAnnotation:"true"`
	MinimumAdvertisementInterval  *uint16           `path:"minimum-advertisement-interval" module:"openconfig-network-instance"`
	ΛMinimumAdvertisementInterval []ygot.Annotation `path:"@minimum-advertisement-interval" ygotAnnotation:"true"`
	NegotiatedHoldTime            *uint16           `path:"negotiated-hold-time" module:"openconfig-network-instance"`
	ΛNegotiatedHoldTime           []ygot.Annotation `path:"@negotiated-hold-time" ygotAnnotation:"true"`
	RestartTime                   *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime                  []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) IsYANGGoStruct() {
}

// GetConnectRetry retrieves the value of the leaf ConnectRetry from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectRetry is set, it can
// safely use t.GetConnectRetry() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectRetry == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) GetConnectRetry() uint16 {
	if t == nil || t.ConnectRetry == nil {
		return 30
	}
	return *t.ConnectRetry
}

// GetHoldTime retrieves the value of the leaf HoldTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldTime is set, it can
// safely use t.GetHoldTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) GetHoldTime() uint16 {
	if t == nil || t.HoldTime == nil {
		return 90
	}
	return *t.HoldTime
}

// GetKeepaliveInterval retrieves the value of the leaf KeepaliveInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeepaliveInterval is set, it can
// safely use t.GetKeepaliveInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeepaliveInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) GetKeepaliveInterval() uint16 {
	if t == nil || t.KeepaliveInterval == nil {
		return 30
	}
	return *t.KeepaliveInterval
}

// GetMinimumAdvertisementInterval retrieves the value of the leaf MinimumAdvertisementInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinimumAdvertisementInterval is set, it can
// safely use t.GetMinimumAdvertisementInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinimumAdvertisementInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) GetMinimumAdvertisementInterval() uint16 {
	if t == nil || t.MinimumAdvertisementInterval == nil {
		return 30
	}
	return *t.MinimumAdvertisementInterval
}

// GetNegotiatedHoldTime retrieves the value of the leaf NegotiatedHoldTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NegotiatedHoldTime is set, it can
// safely use t.GetNegotiatedHoldTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NegotiatedHoldTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) GetNegotiatedHoldTime() uint16 {
	if t == nil || t.NegotiatedHoldTime == nil {
		return 0
	}
	return *t.NegotiatedHoldTime
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ConnectRetry == nil {
		var v uint16 = 30
		t.ConnectRetry = &v
	}
	if t.HoldTime == nil {
		var v uint16 = 90
		t.HoldTime = &v
	}
	if t.KeepaliveInterval == nil {
		var v uint16 = 30
		t.KeepaliveInterval = &v
	}
	if t.MinimumAdvertisementInterval == nil {
		var v uint16 = 30
		t.MinimumAdvertisementInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Timers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/transport YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/transport/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LocalAddress  *string           `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	MtuDiscovery  *bool             `path:"mtu-discovery" module:"openconfig-network-instance"`
	ΛMtuDiscovery []ygot.Annotation `path:"@mtu-discovery" ygotAnnotation:"true"`
	PassiveMode   *bool             `path:"passive-mode" module:"openconfig-network-instance"`
	ΛPassiveMode  []ygot.Annotation `path:"@passive-mode" ygotAnnotation:"true"`
	TcpMss        *uint16           `path:"tcp-mss" module:"openconfig-network-instance"`
	ΛTcpMss       []ygot.Annotation `path:"@tcp-mss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) IsYANGGoStruct() {
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetMtuDiscovery retrieves the value of the leaf MtuDiscovery from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtuDiscovery is set, it can
// safely use t.GetMtuDiscovery() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtuDiscovery == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) GetMtuDiscovery() bool {
	if t == nil || t.MtuDiscovery == nil {
		return false
	}
	return *t.MtuDiscovery
}

// GetPassiveMode retrieves the value of the leaf PassiveMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PassiveMode is set, it can
// safely use t.GetPassiveMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PassiveMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) GetPassiveMode() bool {
	if t == nil || t.PassiveMode == nil {
		return false
	}
	return *t.PassiveMode
}

// GetTcpMss retrieves the value of the leaf TcpMss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TcpMss is set, it can
// safely use t.GetTcpMss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TcpMss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) GetTcpMss() uint16 {
	if t == nil || t.TcpMss == nil {
		return 0
	}
	return *t.TcpMss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MtuDiscovery == nil {
		var v bool = false
		t.MtuDiscovery = &v
	}
	if t.PassiveMode == nil {
		var v bool = false
		t.PassiveMode = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/transport/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LocalAddress   *string           `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress  []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	LocalPort      *uint16           `path:"local-port" module:"openconfig-network-instance"`
	ΛLocalPort     []ygot.Annotation `path:"@local-port" ygotAnnotation:"true"`
	MtuDiscovery   *bool             `path:"mtu-discovery" module:"openconfig-network-instance"`
	ΛMtuDiscovery  []ygot.Annotation `path:"@mtu-discovery" ygotAnnotation:"true"`
	PassiveMode    *bool             `path:"passive-mode" module:"openconfig-network-instance"`
	ΛPassiveMode   []ygot.Annotation `path:"@passive-mode" ygotAnnotation:"true"`
	RemoteAddress  *string           `path:"remote-address" module:"openconfig-network-instance"`
	ΛRemoteAddress []ygot.Annotation `path:"@remote-address" ygotAnnotation:"true"`
	RemotePort     *uint16           `path:"remote-port" module:"openconfig-network-instance"`
	ΛRemotePort    []ygot.Annotation `path:"@remote-port" ygotAnnotation:"true"`
	TcpMss         *uint16           `path:"tcp-mss" module:"openconfig-network-instance"`
	ΛTcpMss        []ygot.Annotation `path:"@tcp-mss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) IsYANGGoStruct() {
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetLocalPort retrieves the value of the leaf LocalPort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalPort is set, it can
// safely use t.GetLocalPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalPort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) GetLocalPort() uint16 {
	if t == nil || t.LocalPort == nil {
		return 0
	}
	return *t.LocalPort
}

// GetMtuDiscovery retrieves the value of the leaf MtuDiscovery from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtuDiscovery is set, it can
// safely use t.GetMtuDiscovery() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtuDiscovery == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) GetMtuDiscovery() bool {
	if t == nil || t.MtuDiscovery == nil {
		return false
	}
	return *t.MtuDiscovery
}

// GetPassiveMode retrieves the value of the leaf PassiveMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PassiveMode is set, it can
// safely use t.GetPassiveMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PassiveMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) GetPassiveMode() bool {
	if t == nil || t.PassiveMode == nil {
		return false
	}
	return *t.PassiveMode
}

// GetRemoteAddress retrieves the value of the leaf RemoteAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteAddress is set, it can
// safely use t.GetRemoteAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) GetRemoteAddress() string {
	if t == nil || t.RemoteAddress == nil {
		return ""
	}
	return *t.RemoteAddress
}

// GetRemotePort retrieves the value of the leaf RemotePort from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemotePort is set, it can
// safely use t.GetRemotePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemotePort == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) GetRemotePort() uint16 {
	if t == nil || t.RemotePort == nil {
		return 0
	}
	return *t.RemotePort
}

// GetTcpMss retrieves the value of the leaf TcpMss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TcpMss is set, it can
// safely use t.GetTcpMss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TcpMss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) GetTcpMss() uint16 {
	if t == nil || t.TcpMss == nil {
		return 0
	}
	return *t.TcpMss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MtuDiscovery == nil {
		var v bool = false
		t.MtuDiscovery = &v
	}
	if t.PassiveMode == nil {
		var v bool = false
		t.PassiveMode = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_Transport_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/use-multiple-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths struct {
	ΛMetadata []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                             `path:"@config" ygotAnnotation:"true"`
	Ebgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp   `path:"ebgp" module:"openconfig-network-instance"`
	ΛEbgp     []ygot.Annotation                                                                                                             `path:"@ebgp" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config{}
	return t.Config
}

// GetOrCreateEbgp retrieves the value of the Ebgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) GetOrCreateEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp {
	if t.Ebgp != nil {
		return t.Ebgp
	}
	t.Ebgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp{}
	return t.Ebgp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgp returns the value of the Ebgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths. If the receiver or the field Ebgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) GetEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp {
	if t != nil && t.Ebgp != nil {
		return t.Ebgp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Ebgp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/use-multiple-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/use-multiple-paths/ebgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp struct {
	ΛMetadata []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/use-multiple-paths/ebgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/use-multiple-paths/ebgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_Ebgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/use-multiple-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_UseMultiplePaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups struct {
	ΛMetadata  []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	PeerGroup  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup `path:"peer-group" module:"openconfig-network-instance"`
	ΛPeerGroup []ygot.Annotation                                                                                                  `path:"@peer-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) IsYANGGoStruct() {
}

// NewPeerGroup creates a new entry in the PeerGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) NewPeerGroup(PeerGroupName string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PeerGroup == nil {
		t.PeerGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup)
	}

	key := PeerGroupName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PeerGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PeerGroup", key)
	}

	t.PeerGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup{
		PeerGroupName: &PeerGroupName,
	}

	return t.PeerGroup[key], nil
}

// RenamePeerGroup renames an entry in the list PeerGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) RenamePeerGroup(oldK, newK string) error {
	if _, ok := t.PeerGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in PeerGroup", newK)
	}

	e, ok := t.PeerGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PeerGroup", oldK)
	}
	e.PeerGroupName = &newK

	t.PeerGroup[newK] = e
	delete(t.PeerGroup, oldK)
	return nil
}

// GetOrCreatePeerGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) GetOrCreatePeerGroupMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup {
	if t.PeerGroup == nil {
		t.PeerGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup)
	}
	return t.PeerGroup
}

// GetOrCreatePeerGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) GetOrCreatePeerGroup(PeerGroupName string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup {

	key := PeerGroupName

	if v, ok := t.PeerGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPeerGroup(PeerGroupName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePeerGroup got unexpected error: %v", err))
	}
	return v
}

// GetPeerGroup retrieves the value with the specified key from
// the PeerGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) GetPeerGroup(PeerGroupName string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup {

	if t == nil {
		return nil
	}

	key := PeerGroupName

	if lm, ok := t.PeerGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendPeerGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup struct to the
// list PeerGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) AppendPeerGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) error {
	if v.PeerGroupName == nil {
		return fmt.Errorf("invalid nil key received for PeerGroupName")
	}

	key := *v.PeerGroupName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PeerGroup == nil {
		t.PeerGroup = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup)
	}

	if _, ok := t.PeerGroup[key]; ok {
		return fmt.Errorf("duplicate key for list PeerGroup %v", key)
	}

	t.PeerGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PeerGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup struct {
	ΛMetadata         []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	AfiSafis          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis         `path:"afi-safis" module:"openconfig-network-instance"`
	ΛAfiSafis         []ygot.Annotation                                                                                                        `path:"@afi-safis" ygotAnnotation:"true"`
	ApplyPolicy       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy      `path:"apply-policy" module:"openconfig-network-instance"`
	ΛApplyPolicy      []ygot.Annotation                                                                                                        `path:"@apply-policy" ygotAnnotation:"true"`
	AsPathOptions     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions    `path:"as-path-options" module:"openconfig-network-instance"`
	ΛAsPathOptions    []ygot.Annotation                                                                                                        `path:"@as-path-options" ygotAnnotation:"true"`
	Config            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config           `path:"config" module:"openconfig-network-instance"`
	ΛConfig           []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	EbgpMultihop      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop     `path:"ebgp-multihop" module:"openconfig-network-instance"`
	ΛEbgpMultihop     []ygot.Annotation                                                                                                        `path:"@ebgp-multihop" ygotAnnotation:"true"`
	EnableBfd         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd        `path:"enable-bfd" module:"openconfig-network-instance"`
	ΛEnableBfd        []ygot.Annotation                                                                                                        `path:"@enable-bfd" ygotAnnotation:"true"`
	ErrorHandling     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling    `path:"error-handling" module:"openconfig-network-instance"`
	ΛErrorHandling    []ygot.Annotation                                                                                                        `path:"@error-handling" ygotAnnotation:"true"`
	GracefulRestart   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart  `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart  []ygot.Annotation                                                                                                        `path:"@graceful-restart" ygotAnnotation:"true"`
	LoggingOptions    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions   `path:"logging-options" module:"openconfig-network-instance"`
	ΛLoggingOptions   []ygot.Annotation                                                                                                        `path:"@logging-options" ygotAnnotation:"true"`
	PeerGroupName     *string                                                                                                                  `path:"peer-group-name" module:"openconfig-network-instance"`
	ΛPeerGroupName    []ygot.Annotation                                                                                                        `path:"@peer-group-name" ygotAnnotation:"true"`
	RouteReflector    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector   `path:"route-reflector" module:"openconfig-network-instance"`
	ΛRouteReflector   []ygot.Annotation                                                                                                        `path:"@route-reflector" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
	Timers            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers           `path:"timers" module:"openconfig-network-instance"`
	ΛTimers           []ygot.Annotation                                                                                                        `path:"@timers" ygotAnnotation:"true"`
	Transport         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport        `path:"transport" module:"openconfig-network-instance"`
	ΛTransport        []ygot.Annotation                                                                                                        `path:"@transport" ygotAnnotation:"true"`
	UseMultiplePaths  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths `path:"use-multiple-paths" module:"openconfig-network-instance"`
	ΛUseMultiplePaths []ygot.Annotation                                                                                                        `path:"@use-multiple-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) IsYANGGoStruct() {
}

// GetOrCreateAfiSafis retrieves the value of the AfiSafis field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis {
	if t.AfiSafis != nil {
		return t.AfiSafis
	}
	t.AfiSafis = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis{}
	return t.AfiSafis
}

// GetOrCreateApplyPolicy retrieves the value of the ApplyPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy {
	if t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	t.ApplyPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy{}
	return t.ApplyPolicy
}

// GetOrCreateAsPathOptions retrieves the value of the AsPathOptions field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateAsPathOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions {
	if t.AsPathOptions != nil {
		return t.AsPathOptions
	}
	t.AsPathOptions = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions{}
	return t.AsPathOptions
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config{}
	return t.Config
}

// GetOrCreateEbgpMultihop retrieves the value of the EbgpMultihop field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateEbgpMultihop() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop {
	if t.EbgpMultihop != nil {
		return t.EbgpMultihop
	}
	t.EbgpMultihop = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop{}
	return t.EbgpMultihop
}

// GetOrCreateEnableBfd retrieves the value of the EnableBfd field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd {
	if t.EnableBfd != nil {
		return t.EnableBfd
	}
	t.EnableBfd = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd{}
	return t.EnableBfd
}

// GetOrCreateErrorHandling retrieves the value of the ErrorHandling field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateErrorHandling() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling {
	if t.ErrorHandling != nil {
		return t.ErrorHandling
	}
	t.ErrorHandling = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling{}
	return t.ErrorHandling
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateLoggingOptions retrieves the value of the LoggingOptions field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateLoggingOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions {
	if t.LoggingOptions != nil {
		return t.LoggingOptions
	}
	t.LoggingOptions = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions{}
	return t.LoggingOptions
}

// GetOrCreateRouteReflector retrieves the value of the RouteReflector field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateRouteReflector() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector {
	if t.RouteReflector != nil {
		return t.RouteReflector
	}
	t.RouteReflector = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector{}
	return t.RouteReflector
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers{}
	return t.Timers
}

// GetOrCreateTransport retrieves the value of the Transport field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport {
	if t.Transport != nil {
		return t.Transport
	}
	t.Transport = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport{}
	return t.Transport
}

// GetOrCreateUseMultiplePaths retrieves the value of the UseMultiplePaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetOrCreateUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths {
	if t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	t.UseMultiplePaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths{}
	return t.UseMultiplePaths
}

// GetAfiSafis returns the value of the AfiSafis struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field AfiSafis is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis {
	if t != nil && t.AfiSafis != nil {
		return t.AfiSafis
	}
	return nil
}

// GetApplyPolicy returns the value of the ApplyPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field ApplyPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy {
	if t != nil && t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	return nil
}

// GetAsPathOptions returns the value of the AsPathOptions struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field AsPathOptions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetAsPathOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions {
	if t != nil && t.AsPathOptions != nil {
		return t.AsPathOptions
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgpMultihop returns the value of the EbgpMultihop struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field EbgpMultihop is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetEbgpMultihop() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop {
	if t != nil && t.EbgpMultihop != nil {
		return t.EbgpMultihop
	}
	return nil
}

// GetEnableBfd returns the value of the EnableBfd struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field EnableBfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd {
	if t != nil && t.EnableBfd != nil {
		return t.EnableBfd
	}
	return nil
}

// GetErrorHandling returns the value of the ErrorHandling struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field ErrorHandling is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetErrorHandling() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling {
	if t != nil && t.ErrorHandling != nil {
		return t.ErrorHandling
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetLoggingOptions returns the value of the LoggingOptions struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field LoggingOptions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetLoggingOptions() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions {
	if t != nil && t.LoggingOptions != nil {
		return t.LoggingOptions
	}
	return nil
}

// GetRouteReflector returns the value of the RouteReflector struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field RouteReflector is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetRouteReflector() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector {
	if t != nil && t.RouteReflector != nil {
		return t.RouteReflector
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// GetTransport returns the value of the Transport struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field Transport is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport {
	if t != nil && t.Transport != nil {
		return t.Transport
	}
	return nil
}

// GetUseMultiplePaths returns the value of the UseMultiplePaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup. If the receiver or the field UseMultiplePaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths {
	if t != nil && t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	return nil
}

// GetPeerGroupName retrieves the value of the leaf PeerGroupName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerGroupName is set, it can
// safely use t.GetPeerGroupName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerGroupName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) GetPeerGroupName() string {
	if t == nil || t.PeerGroupName == nil {
		return ""
	}
	return *t.PeerGroupName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AfiSafis.PopulateDefaults()
	t.ApplyPolicy.PopulateDefaults()
	t.AsPathOptions.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.EbgpMultihop.PopulateDefaults()
	t.EnableBfd.PopulateDefaults()
	t.ErrorHandling.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.LoggingOptions.PopulateDefaults()
	t.RouteReflector.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
	t.Transport.PopulateDefaults()
	t.UseMultiplePaths.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PeerGroupName == nil {
		return nil, fmt.Errorf("nil value for key PeerGroupName")
	}

	return map[string]interface{}{
		"peer-group-name": *t.PeerGroupName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis struct {
	ΛMetadata []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	AfiSafi   map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi `path:"afi-safi" module:"openconfig-network-instance"`
	ΛAfiSafi  []ygot.Annotation                                                                                                                                               `path:"@afi-safi" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) IsYANGGoStruct() {
}

// NewAfiSafi creates a new entry in the AfiSafi list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) NewAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi)
	}

	key := AfiSafiName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AfiSafi[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AfiSafi", key)
	}

	t.AfiSafi[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi{
		AfiSafiName: AfiSafiName,
	}

	return t.AfiSafi[key], nil
}

// RenameAfiSafi renames an entry in the list AfiSafi within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) RenameAfiSafi(oldK, newK E_OpenconfigBgpTypes_AFI_SAFI_TYPE) error {
	if _, ok := t.AfiSafi[newK]; ok {
		return fmt.Errorf("key %v already exists in AfiSafi", newK)
	}

	e, ok := t.AfiSafi[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AfiSafi", oldK)
	}
	e.AfiSafiName = newK

	t.AfiSafi[newK] = e
	delete(t.AfiSafi, oldK)
	return nil
}

// GetOrCreateAfiSafiMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) GetOrCreateAfiSafiMap() map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi {
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi)
	}
	return t.AfiSafi
}

// GetOrCreateAfiSafi retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) GetOrCreateAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi {

	key := AfiSafiName

	if v, ok := t.AfiSafi[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAfiSafi(AfiSafiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAfiSafi got unexpected error: %v", err))
	}
	return v
}

// GetAfiSafi retrieves the value with the specified key from
// the AfiSafi map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) GetAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi {

	if t == nil {
		return nil
	}

	key := AfiSafiName

	if lm, ok := t.AfiSafi[key]; ok {
		return lm
	}
	return nil
}

// AppendAfiSafi appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi struct to the
// list AfiSafi of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) AppendAfiSafi(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) error {
	key := v.AfiSafiName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi)
	}

	if _, ok := t.AfiSafi[key]; ok {
		return fmt.Errorf("duplicate key for list AfiSafi %v", key)
	}

	t.AfiSafi[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AfiSafi {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi struct {
	ΛMetadata           []ygot.Annotation                                                                                                                           `path:"@" ygotAnnotation:"true"`
	AddPaths            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths           `path:"add-paths" module:"openconfig-network-instance"`
	ΛAddPaths           []ygot.Annotation                                                                                                                           `path:"@add-paths" ygotAnnotation:"true"`
	AfiSafiName         E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                          `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName        []ygot.Annotation                                                                                                                           `path:"@afi-safi-name" ygotAnnotation:"true"`
	ApplyPolicy         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy        `path:"apply-policy" module:"openconfig-network-instance"`
	ΛApplyPolicy        []ygot.Annotation                                                                                                                           `path:"@apply-policy" ygotAnnotation:"true"`
	Config              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config             `path:"config" module:"openconfig-network-instance"`
	ΛConfig             []ygot.Annotation                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	GracefulRestart     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart    `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart    []ygot.Annotation                                                                                                                           `path:"@graceful-restart" ygotAnnotation:"true"`
	Ipv4LabeledUnicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast `path:"ipv4-labeled-unicast" module:"openconfig-network-instance"`
	ΛIpv4LabeledUnicast []ygot.Annotation                                                                                                                           `path:"@ipv4-labeled-unicast" ygotAnnotation:"true"`
	Ipv4Unicast         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast        `path:"ipv4-unicast" module:"openconfig-network-instance"`
	ΛIpv4Unicast        []ygot.Annotation                                                                                                                           `path:"@ipv4-unicast" ygotAnnotation:"true"`
	Ipv6LabeledUnicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast `path:"ipv6-labeled-unicast" module:"openconfig-network-instance"`
	ΛIpv6LabeledUnicast []ygot.Annotation                                                                                                                           `path:"@ipv6-labeled-unicast" ygotAnnotation:"true"`
	Ipv6Unicast         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast        `path:"ipv6-unicast" module:"openconfig-network-instance"`
	ΛIpv6Unicast        []ygot.Annotation                                                                                                                           `path:"@ipv6-unicast" ygotAnnotation:"true"`
	L2VpnEvpn           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn          `path:"l2vpn-evpn" module:"openconfig-network-instance"`
	ΛL2VpnEvpn          []ygot.Annotation                                                                                                                           `path:"@l2vpn-evpn" ygotAnnotation:"true"`
	L2VpnVpls           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls          `path:"l2vpn-vpls" module:"openconfig-network-instance"`
	ΛL2VpnVpls          []ygot.Annotation                                                                                                                           `path:"@l2vpn-vpls" ygotAnnotation:"true"`
	L3VpnIpv4Multicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast `path:"l3vpn-ipv4-multicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv4Multicast []ygot.Annotation                                                                                                                           `path:"@l3vpn-ipv4-multicast" ygotAnnotation:"true"`
	L3VpnIpv4Unicast    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast   `path:"l3vpn-ipv4-unicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv4Unicast   []ygot.Annotation                                                                                                                           `path:"@l3vpn-ipv4-unicast" ygotAnnotation:"true"`
	L3VpnIpv6Multicast  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast `path:"l3vpn-ipv6-multicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv6Multicast []ygot.Annotation                                                                                                                           `path:"@l3vpn-ipv6-multicast" ygotAnnotation:"true"`
	L3VpnIpv6Unicast    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast   `path:"l3vpn-ipv6-unicast" module:"openconfig-network-instance"`
	ΛL3VpnIpv6Unicast   []ygot.Annotation                                                                                                                           `path:"@l3vpn-ipv6-unicast" ygotAnnotation:"true"`
	SrtePolicyIpv4      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4     `path:"srte-policy-ipv4" module:"openconfig-network-instance"`
	ΛSrtePolicyIpv4     []ygot.Annotation                                                                                                                           `path:"@srte-policy-ipv4" ygotAnnotation:"true"`
	SrtePolicyIpv6      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6     `path:"srte-policy-ipv6" module:"openconfig-network-instance"`
	ΛSrtePolicyIpv6     []ygot.Annotation                                                                                                                           `path:"@srte-policy-ipv6" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                                                           `path:"@state" ygotAnnotation:"true"`
	UseMultiplePaths    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths   `path:"use-multiple-paths" module:"openconfig-network-instance"`
	ΛUseMultiplePaths   []ygot.Annotation                                                                                                                           `path:"@use-multiple-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) IsYANGGoStruct() {
}

// GetOrCreateAddPaths retrieves the value of the AddPaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateAddPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths {
	if t.AddPaths != nil {
		return t.AddPaths
	}
	t.AddPaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths{}
	return t.AddPaths
}

// GetOrCreateApplyPolicy retrieves the value of the ApplyPolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy {
	if t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	t.ApplyPolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy{}
	return t.ApplyPolicy
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config{}
	return t.Config
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateIpv4LabeledUnicast retrieves the value of the Ipv4LabeledUnicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateIpv4LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast {
	if t.Ipv4LabeledUnicast != nil {
		return t.Ipv4LabeledUnicast
	}
	t.Ipv4LabeledUnicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast{}
	return t.Ipv4LabeledUnicast
}

// GetOrCreateIpv4Unicast retrieves the value of the Ipv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast {
	if t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	t.Ipv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast{}
	return t.Ipv4Unicast
}

// GetOrCreateIpv6LabeledUnicast retrieves the value of the Ipv6LabeledUnicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateIpv6LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast {
	if t.Ipv6LabeledUnicast != nil {
		return t.Ipv6LabeledUnicast
	}
	t.Ipv6LabeledUnicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast{}
	return t.Ipv6LabeledUnicast
}

// GetOrCreateIpv6Unicast retrieves the value of the Ipv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast {
	if t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	t.Ipv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast{}
	return t.Ipv6Unicast
}

// GetOrCreateL2VpnEvpn retrieves the value of the L2VpnEvpn field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn {
	if t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	t.L2VpnEvpn = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn{}
	return t.L2VpnEvpn
}

// GetOrCreateL2VpnVpls retrieves the value of the L2VpnVpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateL2VpnVpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls {
	if t.L2VpnVpls != nil {
		return t.L2VpnVpls
	}
	t.L2VpnVpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls{}
	return t.L2VpnVpls
}

// GetOrCreateL3VpnIpv4Multicast retrieves the value of the L3VpnIpv4Multicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv4Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast {
	if t.L3VpnIpv4Multicast != nil {
		return t.L3VpnIpv4Multicast
	}
	t.L3VpnIpv4Multicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast{}
	return t.L3VpnIpv4Multicast
}

// GetOrCreateL3VpnIpv4Unicast retrieves the value of the L3VpnIpv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast {
	if t.L3VpnIpv4Unicast != nil {
		return t.L3VpnIpv4Unicast
	}
	t.L3VpnIpv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast{}
	return t.L3VpnIpv4Unicast
}

// GetOrCreateL3VpnIpv6Multicast retrieves the value of the L3VpnIpv6Multicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv6Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast {
	if t.L3VpnIpv6Multicast != nil {
		return t.L3VpnIpv6Multicast
	}
	t.L3VpnIpv6Multicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast{}
	return t.L3VpnIpv6Multicast
}

// GetOrCreateL3VpnIpv6Unicast retrieves the value of the L3VpnIpv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateL3VpnIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast {
	if t.L3VpnIpv6Unicast != nil {
		return t.L3VpnIpv6Unicast
	}
	t.L3VpnIpv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast{}
	return t.L3VpnIpv6Unicast
}

// GetOrCreateSrtePolicyIpv4 retrieves the value of the SrtePolicyIpv4 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateSrtePolicyIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4 {
	if t.SrtePolicyIpv4 != nil {
		return t.SrtePolicyIpv4
	}
	t.SrtePolicyIpv4 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4{}
	return t.SrtePolicyIpv4
}

// GetOrCreateSrtePolicyIpv6 retrieves the value of the SrtePolicyIpv6 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateSrtePolicyIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6 {
	if t.SrtePolicyIpv6 != nil {
		return t.SrtePolicyIpv6
	}
	t.SrtePolicyIpv6 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6{}
	return t.SrtePolicyIpv6
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State{}
	return t.State
}

// GetOrCreateUseMultiplePaths retrieves the value of the UseMultiplePaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetOrCreateUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths {
	if t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	t.UseMultiplePaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths{}
	return t.UseMultiplePaths
}

// GetAddPaths returns the value of the AddPaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field AddPaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetAddPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths {
	if t != nil && t.AddPaths != nil {
		return t.AddPaths
	}
	return nil
}

// GetApplyPolicy returns the value of the ApplyPolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field ApplyPolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetApplyPolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy {
	if t != nil && t.ApplyPolicy != nil {
		return t.ApplyPolicy
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetIpv4LabeledUnicast returns the value of the Ipv4LabeledUnicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field Ipv4LabeledUnicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetIpv4LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast {
	if t != nil && t.Ipv4LabeledUnicast != nil {
		return t.Ipv4LabeledUnicast
	}
	return nil
}

// GetIpv4Unicast returns the value of the Ipv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field Ipv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast {
	if t != nil && t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	return nil
}

// GetIpv6LabeledUnicast returns the value of the Ipv6LabeledUnicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field Ipv6LabeledUnicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetIpv6LabeledUnicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast {
	if t != nil && t.Ipv6LabeledUnicast != nil {
		return t.Ipv6LabeledUnicast
	}
	return nil
}

// GetIpv6Unicast returns the value of the Ipv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field Ipv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast {
	if t != nil && t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	return nil
}

// GetL2VpnEvpn returns the value of the L2VpnEvpn struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field L2VpnEvpn is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn {
	if t != nil && t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	return nil
}

// GetL2VpnVpls returns the value of the L2VpnVpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field L2VpnVpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetL2VpnVpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls {
	if t != nil && t.L2VpnVpls != nil {
		return t.L2VpnVpls
	}
	return nil
}

// GetL3VpnIpv4Multicast returns the value of the L3VpnIpv4Multicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv4Multicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetL3VpnIpv4Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast {
	if t != nil && t.L3VpnIpv4Multicast != nil {
		return t.L3VpnIpv4Multicast
	}
	return nil
}

// GetL3VpnIpv4Unicast returns the value of the L3VpnIpv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetL3VpnIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast {
	if t != nil && t.L3VpnIpv4Unicast != nil {
		return t.L3VpnIpv4Unicast
	}
	return nil
}

// GetL3VpnIpv6Multicast returns the value of the L3VpnIpv6Multicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv6Multicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetL3VpnIpv6Multicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast {
	if t != nil && t.L3VpnIpv6Multicast != nil {
		return t.L3VpnIpv6Multicast
	}
	return nil
}

// GetL3VpnIpv6Unicast returns the value of the L3VpnIpv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field L3VpnIpv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetL3VpnIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast {
	if t != nil && t.L3VpnIpv6Unicast != nil {
		return t.L3VpnIpv6Unicast
	}
	return nil
}

// GetSrtePolicyIpv4 returns the value of the SrtePolicyIpv4 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field SrtePolicyIpv4 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetSrtePolicyIpv4() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4 {
	if t != nil && t.SrtePolicyIpv4 != nil {
		return t.SrtePolicyIpv4
	}
	return nil
}

// GetSrtePolicyIpv6 returns the value of the SrtePolicyIpv6 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field SrtePolicyIpv6 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetSrtePolicyIpv6() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6 {
	if t != nil && t.SrtePolicyIpv6 != nil {
		return t.SrtePolicyIpv6
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUseMultiplePaths returns the value of the UseMultiplePaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi. If the receiver or the field UseMultiplePaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetUseMultiplePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths {
	if t != nil && t.UseMultiplePaths != nil {
		return t.UseMultiplePaths
	}
	return nil
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AddPaths.PopulateDefaults()
	t.ApplyPolicy.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.Ipv4LabeledUnicast.PopulateDefaults()
	t.Ipv4Unicast.PopulateDefaults()
	t.Ipv6LabeledUnicast.PopulateDefaults()
	t.Ipv6Unicast.PopulateDefaults()
	t.L2VpnEvpn.PopulateDefaults()
	t.L2VpnVpls.PopulateDefaults()
	t.L3VpnIpv4Multicast.PopulateDefaults()
	t.L3VpnIpv4Unicast.PopulateDefaults()
	t.L3VpnIpv6Multicast.PopulateDefaults()
	t.L3VpnIpv6Unicast.PopulateDefaults()
	t.SrtePolicyIpv4.PopulateDefaults()
	t.SrtePolicyIpv6.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UseMultiplePaths.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-safi-name": t.AfiSafiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths struct {
	ΛMetadata []ygot.Annotation                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EligiblePrefixPolicy  *string           `path:"eligible-prefix-policy" module:"openconfig-network-instance"`
	ΛEligiblePrefixPolicy []ygot.Annotation `path:"@eligible-prefix-policy" ygotAnnotation:"true"`
	Receive               *bool             `path:"receive" module:"openconfig-network-instance"`
	ΛReceive              []ygot.Annotation `path:"@receive" ygotAnnotation:"true"`
	Send                  *bool             `path:"send" module:"openconfig-network-instance"`
	ΛSend                 []ygot.Annotation `path:"@send" ygotAnnotation:"true"`
	SendMax               *uint8            `path:"send-max" module:"openconfig-network-instance"`
	ΛSendMax              []ygot.Annotation `path:"@send-max" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) IsYANGGoStruct() {
}

// GetEligiblePrefixPolicy retrieves the value of the leaf EligiblePrefixPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EligiblePrefixPolicy is set, it can
// safely use t.GetEligiblePrefixPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EligiblePrefixPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) GetEligiblePrefixPolicy() string {
	if t == nil || t.EligiblePrefixPolicy == nil {
		return ""
	}
	return *t.EligiblePrefixPolicy
}

// GetReceive retrieves the value of the leaf Receive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Receive is set, it can
// safely use t.GetReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Receive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) GetReceive() bool {
	if t == nil || t.Receive == nil {
		return false
	}
	return *t.Receive
}

// GetSend retrieves the value of the leaf Send from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Send is set, it can
// safely use t.GetSend() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Send == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) GetSend() bool {
	if t == nil || t.Send == nil {
		return false
	}
	return *t.Send
}

// GetSendMax retrieves the value of the leaf SendMax from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendMax is set, it can
// safely use t.GetSendMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendMax == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) GetSendMax() uint8 {
	if t == nil || t.SendMax == nil {
		return 0
	}
	return *t.SendMax
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Receive == nil {
		var v bool = false
		t.Receive = &v
	}
	if t.Send == nil {
		var v bool = false
		t.Send = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/add-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State struct {
	ΛMetadata             []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EligiblePrefixPolicy  *string           `path:"eligible-prefix-policy" module:"openconfig-network-instance"`
	ΛEligiblePrefixPolicy []ygot.Annotation `path:"@eligible-prefix-policy" ygotAnnotation:"true"`
	Receive               *bool             `path:"receive" module:"openconfig-network-instance"`
	ΛReceive              []ygot.Annotation `path:"@receive" ygotAnnotation:"true"`
	Send                  *bool             `path:"send" module:"openconfig-network-instance"`
	ΛSend                 []ygot.Annotation `path:"@send" ygotAnnotation:"true"`
	SendMax               *uint8            `path:"send-max" module:"openconfig-network-instance"`
	ΛSendMax              []ygot.Annotation `path:"@send-max" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) IsYANGGoStruct() {
}

// GetEligiblePrefixPolicy retrieves the value of the leaf EligiblePrefixPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EligiblePrefixPolicy is set, it can
// safely use t.GetEligiblePrefixPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EligiblePrefixPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) GetEligiblePrefixPolicy() string {
	if t == nil || t.EligiblePrefixPolicy == nil {
		return ""
	}
	return *t.EligiblePrefixPolicy
}

// GetReceive retrieves the value of the leaf Receive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Receive is set, it can
// safely use t.GetReceive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Receive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) GetReceive() bool {
	if t == nil || t.Receive == nil {
		return false
	}
	return *t.Receive
}

// GetSend retrieves the value of the leaf Send from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Send is set, it can
// safely use t.GetSend() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Send == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) GetSend() bool {
	if t == nil || t.Send == nil {
		return false
	}
	return *t.Send
}

// GetSendMax retrieves the value of the leaf SendMax from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendMax is set, it can
// safely use t.GetSendMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendMax == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) GetSendMax() uint8 {
	if t == nil || t.SendMax == nil {
		return 0
	}
	return *t.SendMax
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Receive == nil {
		var v bool = false
		t.Receive = &v
	}
	if t.Send == nil {
		var v bool = false
		t.Send = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_AddPaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_ApplyPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config struct {
	ΛMetadata          []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	AfiSafiName        E_OpenconfigBgpTypes_AFI_SAFI_TYPE   `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName       []ygot.Annotation                    `path:"@afi-safi-name" ygotAnnotation:"true"`
	Enabled            *bool                                `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                    `path:"@enabled" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                    `path:"@send-community-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) IsYANGGoStruct() {
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                               `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                               `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4LabeledUnicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                        `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                        `path:"@prefix-limit-received" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config{}
	return t.Config
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedNextHopEncoding  *bool             `path:"extended-next-hop-encoding" module:"openconfig-network-instance"`
	ΛExtendedNextHopEncoding []ygot.Annotation `path:"@extended-next-hop-encoding" ygotAnnotation:"true"`
	SendDefaultRoute         *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute        []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) IsYANGGoStruct() {
}

// GetExtendedNextHopEncoding retrieves the value of the leaf ExtendedNextHopEncoding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedNextHopEncoding is set, it can
// safely use t.GetExtendedNextHopEncoding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedNextHopEncoding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) GetExtendedNextHopEncoding() bool {
	if t == nil || t.ExtendedNextHopEncoding == nil {
		return false
	}
	return *t.ExtendedNextHopEncoding
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExtendedNextHopEncoding == nil {
		var v bool = false
		t.ExtendedNextHopEncoding = &v
	}
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedNextHopEncoding  *bool             `path:"extended-next-hop-encoding" module:"openconfig-network-instance"`
	ΛExtendedNextHopEncoding []ygot.Annotation `path:"@extended-next-hop-encoding" ygotAnnotation:"true"`
	SendDefaultRoute         *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute        []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) IsYANGGoStruct() {
}

// GetExtendedNextHopEncoding retrieves the value of the leaf ExtendedNextHopEncoding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedNextHopEncoding is set, it can
// safely use t.GetExtendedNextHopEncoding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedNextHopEncoding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) GetExtendedNextHopEncoding() bool {
	if t == nil || t.ExtendedNextHopEncoding == nil {
		return false
	}
	return *t.ExtendedNextHopEncoding
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExtendedNextHopEncoding == nil {
		var v bool = false
		t.ExtendedNextHopEncoding = &v
	}
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv4Unicast_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                               `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                               `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6LabeledUnicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                        `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                        `path:"@prefix-limit-received" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config{}
	return t.Config
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SendDefaultRoute  *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config) IsYANGGoStruct() {
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SendDefaultRoute  *bool             `path:"send-default-route" module:"openconfig-network-instance"`
	ΛSendDefaultRoute []ygot.Annotation `path:"@send-default-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State) IsYANGGoStruct() {
}

// GetSendDefaultRoute retrieves the value of the leaf SendDefaultRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendDefaultRoute is set, it can
// safely use t.GetSendDefaultRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendDefaultRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State) GetSendDefaultRoute() bool {
	if t == nil || t.SendDefaultRoute == nil {
		return false
	}
	return *t.SendDefaultRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SendDefaultRoute == nil {
		var v bool = false
		t.SendDefaultRoute = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_Ipv6Unicast_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                      `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                      `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnEvpn_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-vpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                      `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                      `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-vpls/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-vpls/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-vpls/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-vpls/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L2VpnVpls_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-multicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                               `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                               `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-multicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Multicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv4Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-multicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                               `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                               `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-multicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Multicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                             `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                             `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_L3VpnIpv6Unicast_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv4 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4 struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                           `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                           `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv4/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv4_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv6 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6 struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	PrefixLimit          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit         `path:"prefix-limit" module:"openconfig-network-instance"`
	ΛPrefixLimit         []ygot.Annotation                                                                                                                                           `path:"@prefix-limit" ygotAnnotation:"true"`
	PrefixLimitReceived  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived `path:"prefix-limit-received" module:"openconfig-network-instance"`
	ΛPrefixLimitReceived []ygot.Annotation                                                                                                                                           `path:"@prefix-limit-received" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) IsYANGGoStruct() {
}

// GetOrCreatePrefixLimit retrieves the value of the PrefixLimit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) GetOrCreatePrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit {
	if t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	t.PrefixLimit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit{}
	return t.PrefixLimit
}

// GetOrCreatePrefixLimitReceived retrieves the value of the PrefixLimitReceived field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) GetOrCreatePrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived {
	if t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	t.PrefixLimitReceived = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived{}
	return t.PrefixLimitReceived
}

// GetPrefixLimit returns the value of the PrefixLimit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6. If the receiver or the field PrefixLimit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) GetPrefixLimit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit {
	if t != nil && t.PrefixLimit != nil {
		return t.PrefixLimit
	}
	return nil
}

// GetPrefixLimitReceived returns the value of the PrefixLimitReceived struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6. If the receiver or the field PrefixLimitReceived is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) GetPrefixLimitReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived {
	if t != nil && t.PrefixLimitReceived != nil {
		return t.PrefixLimitReceived
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PrefixLimit.PopulateDefaults()
	t.PrefixLimitReceived.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit-received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimitReceived_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/srte-policy-ipv6/prefix-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaxPrefixes          *uint32           `path:"max-prefixes" module:"openconfig-network-instance"`
	ΛMaxPrefixes         []ygot.Annotation `path:"@max-prefixes" ygotAnnotation:"true"`
	PrefixLimitExceeded  *bool             `path:"prefix-limit-exceeded" module:"openconfig-network-instance"`
	ΛPrefixLimitExceeded []ygot.Annotation `path:"@prefix-limit-exceeded" ygotAnnotation:"true"`
	PreventTeardown      *bool             `path:"prevent-teardown" module:"openconfig-network-instance"`
	ΛPreventTeardown     []ygot.Annotation `path:"@prevent-teardown" ygotAnnotation:"true"`
	WarningThresholdPct  *uint8            `path:"warning-threshold-pct" module:"openconfig-network-instance"`
	ΛWarningThresholdPct []ygot.Annotation `path:"@warning-threshold-pct" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) IsYANGGoStruct() {
}

// GetMaxPrefixes retrieves the value of the leaf MaxPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxPrefixes is set, it can
// safely use t.GetMaxPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetMaxPrefixes() uint32 {
	if t == nil || t.MaxPrefixes == nil {
		return 0
	}
	return *t.MaxPrefixes
}

// GetPrefixLimitExceeded retrieves the value of the leaf PrefixLimitExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLimitExceeded is set, it can
// safely use t.GetPrefixLimitExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLimitExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetPrefixLimitExceeded() bool {
	if t == nil || t.PrefixLimitExceeded == nil {
		return false
	}
	return *t.PrefixLimitExceeded
}

// GetPreventTeardown retrieves the value of the leaf PreventTeardown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PreventTeardown is set, it can
// safely use t.GetPreventTeardown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PreventTeardown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetPreventTeardown() bool {
	if t == nil || t.PreventTeardown == nil {
		return false
	}
	return *t.PreventTeardown
}

// GetWarningThresholdPct retrieves the value of the leaf WarningThresholdPct from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningThresholdPct is set, it can
// safely use t.GetWarningThresholdPct() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningThresholdPct == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) GetWarningThresholdPct() uint8 {
	if t == nil || t.WarningThresholdPct == nil {
		return 0
	}
	return *t.WarningThresholdPct
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PreventTeardown == nil {
		var v bool = false
		t.PreventTeardown = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_SrtePolicyIpv6_PrefixLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State struct {
	ΛMetadata          []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	AfiSafiName        E_OpenconfigBgpTypes_AFI_SAFI_TYPE   `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName       []ygot.Annotation                    `path:"@afi-safi-name" ygotAnnotation:"true"`
	Enabled            *bool                                `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                    `path:"@enabled" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                    `path:"@send-community-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) IsYANGGoStruct() {
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	Ebgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp   `path:"ebgp" module:"openconfig-network-instance"`
	ΛEbgp     []ygot.Annotation                                                                                                                                `path:"@ebgp" ygotAnnotation:"true"`
	Ibgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp   `path:"ibgp" module:"openconfig-network-instance"`
	ΛIbgp     []ygot.Annotation                                                                                                                                `path:"@ibgp" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config{}
	return t.Config
}

// GetOrCreateEbgp retrieves the value of the Ebgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp {
	if t.Ebgp != nil {
		return t.Ebgp
	}
	t.Ebgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp{}
	return t.Ebgp
}

// GetOrCreateIbgp retrieves the value of the Ibgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp {
	if t.Ibgp != nil {
		return t.Ibgp
	}
	t.Ibgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp{}
	return t.Ibgp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgp returns the value of the Ebgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Ebgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp {
	if t != nil && t.Ebgp != nil {
		return t.Ebgp
	}
	return nil
}

// GetIbgp returns the value of the Ibgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field Ibgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp {
	if t != nil && t.Ibgp != nil {
		return t.Ibgp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Ebgp.PopulateDefaults()
	t.Ibgp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ebgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                                                        `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ebgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ebgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ebgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ebgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ebgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ebgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ibgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                                                        `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                                                        `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ibgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ibgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ibgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ibgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/ibgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_Ibgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/use-multiple-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AfiSafis_AfiSafi_UseMultiplePaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultExportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-export-policy" module:"openconfig-network-instance"`
	ΛDefaultExportPolicy []ygot.Annotation                           `path:"@default-export-policy" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ExportPolicy         []string                                    `path:"export-policy" module:"openconfig-network-instance"`
	ΛExportPolicy        []ygot.Annotation                           `path:"@export-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) IsYANGGoStruct() {
}

// GetDefaultExportPolicy retrieves the value of the leaf DefaultExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultExportPolicy is set, it can
// safely use t.GetDefaultExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) GetDefaultExportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultExportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultExportPolicy
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetExportPolicy retrieves the value of the leaf ExportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExportPolicy is set, it can
// safely use t.GetExportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) GetExportPolicy() []string {
	if t == nil || t.ExportPolicy == nil {
		return nil
	}
	return t.ExportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultExportPolicy == 0 {
		t.DefaultExportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ApplyPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/as-path-options YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/as-path-options/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowOwnAs           *uint8            `path:"allow-own-as" module:"openconfig-network-instance"`
	ΛAllowOwnAs          []ygot.Annotation `path:"@allow-own-as" ygotAnnotation:"true"`
	DisablePeerAsFilter  *bool             `path:"disable-peer-as-filter" module:"openconfig-network-instance"`
	ΛDisablePeerAsFilter []ygot.Annotation `path:"@disable-peer-as-filter" ygotAnnotation:"true"`
	ReplacePeerAs        *bool             `path:"replace-peer-as" module:"openconfig-network-instance"`
	ΛReplacePeerAs       []ygot.Annotation `path:"@replace-peer-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) IsYANGGoStruct() {
}

// GetAllowOwnAs retrieves the value of the leaf AllowOwnAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowOwnAs is set, it can
// safely use t.GetAllowOwnAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowOwnAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) GetAllowOwnAs() uint8 {
	if t == nil || t.AllowOwnAs == nil {
		return 0
	}
	return *t.AllowOwnAs
}

// GetDisablePeerAsFilter retrieves the value of the leaf DisablePeerAsFilter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisablePeerAsFilter is set, it can
// safely use t.GetDisablePeerAsFilter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisablePeerAsFilter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) GetDisablePeerAsFilter() bool {
	if t == nil || t.DisablePeerAsFilter == nil {
		return false
	}
	return *t.DisablePeerAsFilter
}

// GetReplacePeerAs retrieves the value of the leaf ReplacePeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReplacePeerAs is set, it can
// safely use t.GetReplacePeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReplacePeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) GetReplacePeerAs() bool {
	if t == nil || t.ReplacePeerAs == nil {
		return false
	}
	return *t.ReplacePeerAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowOwnAs == nil {
		var v uint8 = 0
		t.AllowOwnAs = &v
	}
	if t.DisablePeerAsFilter == nil {
		var v bool = false
		t.DisablePeerAsFilter = &v
	}
	if t.ReplacePeerAs == nil {
		var v bool = false
		t.ReplacePeerAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/as-path-options/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowOwnAs           *uint8            `path:"allow-own-as" module:"openconfig-network-instance"`
	ΛAllowOwnAs          []ygot.Annotation `path:"@allow-own-as" ygotAnnotation:"true"`
	DisablePeerAsFilter  *bool             `path:"disable-peer-as-filter" module:"openconfig-network-instance"`
	ΛDisablePeerAsFilter []ygot.Annotation `path:"@disable-peer-as-filter" ygotAnnotation:"true"`
	ReplacePeerAs        *bool             `path:"replace-peer-as" module:"openconfig-network-instance"`
	ΛReplacePeerAs       []ygot.Annotation `path:"@replace-peer-as" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) IsYANGGoStruct() {
}

// GetAllowOwnAs retrieves the value of the leaf AllowOwnAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowOwnAs is set, it can
// safely use t.GetAllowOwnAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowOwnAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) GetAllowOwnAs() uint8 {
	if t == nil || t.AllowOwnAs == nil {
		return 0
	}
	return *t.AllowOwnAs
}

// GetDisablePeerAsFilter retrieves the value of the leaf DisablePeerAsFilter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisablePeerAsFilter is set, it can
// safely use t.GetDisablePeerAsFilter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisablePeerAsFilter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) GetDisablePeerAsFilter() bool {
	if t == nil || t.DisablePeerAsFilter == nil {
		return false
	}
	return *t.DisablePeerAsFilter
}

// GetReplacePeerAs retrieves the value of the leaf ReplacePeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReplacePeerAs is set, it can
// safely use t.GetReplacePeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReplacePeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) GetReplacePeerAs() bool {
	if t == nil || t.ReplacePeerAs == nil {
		return false
	}
	return *t.ReplacePeerAs
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowOwnAs == nil {
		var v uint8 = 0
		t.AllowOwnAs = &v
	}
	if t.DisablePeerAsFilter == nil {
		var v bool = false
		t.DisablePeerAsFilter = &v
	}
	if t.ReplacePeerAs == nil {
		var v bool = false
		t.ReplacePeerAs = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_AsPathOptions_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config struct {
	ΛMetadata          []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	AuthPassword       *string                                    `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword      []ygot.Annotation                          `path:"@auth-password" ygotAnnotation:"true"`
	Description        *string                                    `path:"description" module:"openconfig-network-instance"`
	ΛDescription       []ygot.Annotation                          `path:"@description" ygotAnnotation:"true"`
	LocalAs            *uint32                                    `path:"local-as" module:"openconfig-network-instance"`
	ΛLocalAs           []ygot.Annotation                          `path:"@local-as" ygotAnnotation:"true"`
	PeerAs             *uint32                                    `path:"peer-as" module:"openconfig-network-instance"`
	ΛPeerAs            []ygot.Annotation                          `path:"@peer-as" ygotAnnotation:"true"`
	PeerGroupName      *string                                    `path:"peer-group-name" module:"openconfig-network-instance"`
	ΛPeerGroupName     []ygot.Annotation                          `path:"@peer-group-name" ygotAnnotation:"true"`
	PeerType           E_OpenconfigBgpTypes_PeerType              `path:"peer-type" module:"openconfig-network-instance"`
	ΛPeerType          []ygot.Annotation                          `path:"@peer-type" ygotAnnotation:"true"`
	RemovePrivateAs    E_OpenconfigBgpTypes_RemovePrivateAsOption `path:"remove-private-as" module:"openconfig-network-instance"`
	ΛRemovePrivateAs   []ygot.Annotation                          `path:"@remove-private-as" ygotAnnotation:"true"`
	RouteFlapDamping   *bool                                      `path:"route-flap-damping" module:"openconfig-network-instance"`
	ΛRouteFlapDamping  []ygot.Annotation                          `path:"@route-flap-damping" ygotAnnotation:"true"`
	SendCommunity      E_OpenconfigBgpTypes_CommunityType         `path:"send-community" module:"openconfig-network-instance"`
	ΛSendCommunity     []ygot.Annotation                          `path:"@send-community" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType       `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                          `path:"@send-community-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) IsYANGGoStruct() {
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetLocalAs retrieves the value of the leaf LocalAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAs is set, it can
// safely use t.GetLocalAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetLocalAs() uint32 {
	if t == nil || t.LocalAs == nil {
		return 0
	}
	return *t.LocalAs
}

// GetPeerAs retrieves the value of the leaf PeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerAs is set, it can
// safely use t.GetPeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetPeerAs() uint32 {
	if t == nil || t.PeerAs == nil {
		return 0
	}
	return *t.PeerAs
}

// GetPeerGroupName retrieves the value of the leaf PeerGroupName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerGroupName is set, it can
// safely use t.GetPeerGroupName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerGroupName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetPeerGroupName() string {
	if t == nil || t.PeerGroupName == nil {
		return ""
	}
	return *t.PeerGroupName
}

// GetPeerType retrieves the value of the leaf PeerType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerType is set, it can
// safely use t.GetPeerType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetPeerType() E_OpenconfigBgpTypes_PeerType {
	if t == nil || t.PeerType == 0 {
		return 0
	}
	return t.PeerType
}

// GetRemovePrivateAs retrieves the value of the leaf RemovePrivateAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemovePrivateAs is set, it can
// safely use t.GetRemovePrivateAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemovePrivateAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetRemovePrivateAs() E_OpenconfigBgpTypes_RemovePrivateAsOption {
	if t == nil || t.RemovePrivateAs == 0 {
		return 0
	}
	return t.RemovePrivateAs
}

// GetRouteFlapDamping retrieves the value of the leaf RouteFlapDamping from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteFlapDamping is set, it can
// safely use t.GetRouteFlapDamping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteFlapDamping == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetRouteFlapDamping() bool {
	if t == nil || t.RouteFlapDamping == nil {
		return false
	}
	return *t.RouteFlapDamping
}

// GetSendCommunity retrieves the value of the leaf SendCommunity from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunity is set, it can
// safely use t.GetSendCommunity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunity == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetSendCommunity() E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunity == 0 {
		return OpenconfigBgpTypes_CommunityType_NONE
	}
	return t.SendCommunity
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RouteFlapDamping == nil {
		var v bool = false
		t.RouteFlapDamping = &v
	}
	if t.SendCommunity == 0 {
		t.SendCommunity = OpenconfigBgpTypes_CommunityType_NONE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/ebgp-multihop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop struct {
	ΛMetadata []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/ebgp-multihop/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	MultihopTtl  *uint8            `path:"multihop-ttl" module:"openconfig-network-instance"`
	ΛMultihopTtl []ygot.Annotation `path:"@multihop-ttl" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMultihopTtl retrieves the value of the leaf MultihopTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultihopTtl is set, it can
// safely use t.GetMultihopTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultihopTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) GetMultihopTtl() uint8 {
	if t == nil || t.MultihopTtl == nil {
		return 0
	}
	return *t.MultihopTtl
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/ebgp-multihop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	MultihopTtl  *uint8            `path:"multihop-ttl" module:"openconfig-network-instance"`
	ΛMultihopTtl []ygot.Annotation `path:"@multihop-ttl" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMultihopTtl retrieves the value of the leaf MultihopTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultihopTtl is set, it can
// safely use t.GetMultihopTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultihopTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) GetMultihopTtl() uint8 {
	if t == nil || t.MultihopTtl == nil {
		return 0
	}
	return *t.MultihopTtl
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EbgpMultihop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/enable-bfd YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/enable-bfd/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/enable-bfd/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_EnableBfd_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/error-handling YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/error-handling/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TreatAsWithdraw  *bool             `path:"treat-as-withdraw" module:"openconfig-network-instance"`
	ΛTreatAsWithdraw []ygot.Annotation `path:"@treat-as-withdraw" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config) IsYANGGoStruct() {
}

// GetTreatAsWithdraw retrieves the value of the leaf TreatAsWithdraw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TreatAsWithdraw is set, it can
// safely use t.GetTreatAsWithdraw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TreatAsWithdraw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config) GetTreatAsWithdraw() bool {
	if t == nil || t.TreatAsWithdraw == nil {
		return false
	}
	return *t.TreatAsWithdraw
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.TreatAsWithdraw == nil {
		var v bool = false
		t.TreatAsWithdraw = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/error-handling/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TreatAsWithdraw  *bool             `path:"treat-as-withdraw" module:"openconfig-network-instance"`
	ΛTreatAsWithdraw []ygot.Annotation `path:"@treat-as-withdraw" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State) IsYANGGoStruct() {
}

// GetTreatAsWithdraw retrieves the value of the leaf TreatAsWithdraw from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TreatAsWithdraw is set, it can
// safely use t.GetTreatAsWithdraw() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TreatAsWithdraw == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State) GetTreatAsWithdraw() bool {
	if t == nil || t.TreatAsWithdraw == nil {
		return false
	}
	return *t.TreatAsWithdraw
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.TreatAsWithdraw == nil {
		var v bool = false
		t.TreatAsWithdraw = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_ErrorHandling_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly       *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly      []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
	RestartTime      *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime     []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
	StaleRoutesTime  *uint16           `path:"stale-routes-time" module:"openconfig-network-instance"`
	ΛStaleRoutesTime []ygot.Annotation `path:"@stale-routes-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// GetStaleRoutesTime retrieves the value of the leaf StaleRoutesTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaleRoutesTime is set, it can
// safely use t.GetStaleRoutesTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaleRoutesTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) GetStaleRoutesTime() uint16 {
	if t == nil || t.StaleRoutesTime == nil {
		return 0
	}
	return *t.StaleRoutesTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled          *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled         []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly       *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly      []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
	RestartTime      *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime     []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
	StaleRoutesTime  *uint16           `path:"stale-routes-time" module:"openconfig-network-instance"`
	ΛStaleRoutesTime []ygot.Annotation `path:"@stale-routes-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// GetStaleRoutesTime retrieves the value of the leaf StaleRoutesTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaleRoutesTime is set, it can
// safely use t.GetStaleRoutesTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaleRoutesTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) GetStaleRoutesTime() uint16 {
	if t == nil || t.StaleRoutesTime == nil {
		return 0
	}
	return *t.StaleRoutesTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/logging-options YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions struct {
	ΛMetadata []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/logging-options/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LogNeighborStateChanges  *bool             `path:"log-neighbor-state-changes" module:"openconfig-network-instance"`
	ΛLogNeighborStateChanges []ygot.Annotation `path:"@log-neighbor-state-changes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config) IsYANGGoStruct() {
}

// GetLogNeighborStateChanges retrieves the value of the leaf LogNeighborStateChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogNeighborStateChanges is set, it can
// safely use t.GetLogNeighborStateChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogNeighborStateChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config) GetLogNeighborStateChanges() bool {
	if t == nil || t.LogNeighborStateChanges == nil {
		return true
	}
	return *t.LogNeighborStateChanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LogNeighborStateChanges == nil {
		var v bool = true
		t.LogNeighborStateChanges = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/logging-options/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LogNeighborStateChanges  *bool             `path:"log-neighbor-state-changes" module:"openconfig-network-instance"`
	ΛLogNeighborStateChanges []ygot.Annotation `path:"@log-neighbor-state-changes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State) IsYANGGoStruct() {
}

// GetLogNeighborStateChanges retrieves the value of the leaf LogNeighborStateChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogNeighborStateChanges is set, it can
// safely use t.GetLogNeighborStateChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogNeighborStateChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State) GetLogNeighborStateChanges() bool {
	if t == nil || t.LogNeighborStateChanges == nil {
		return true
	}
	return *t.LogNeighborStateChanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LogNeighborStateChanges == nil {
		var v bool = true
		t.LogNeighborStateChanges = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_LoggingOptions_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/route-reflector YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector struct {
	ΛMetadata []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/route-reflector/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config struct {
	ΛMetadata                []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	RouteReflectorClient     *bool                                                                                                                                                      `path:"route-reflector-client" module:"openconfig-network-instance"`
	ΛRouteReflectorClient    []ygot.Annotation                                                                                                                                          `path:"@route-reflector-client" ygotAnnotation:"true"`
	RouteReflectorClusterId  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union `path:"route-reflector-cluster-id" module:"openconfig-network-instance"`
	ΛRouteReflectorClusterId []ygot.Annotation                                                                                                                                          `path:"@route-reflector-cluster-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) IsYANGGoStruct() {
}

// GetRouteReflectorClient retrieves the value of the leaf RouteReflectorClient from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClient is set, it can
// safely use t.GetRouteReflectorClient() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClient == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) GetRouteReflectorClient() bool {
	if t == nil || t.RouteReflectorClient == nil {
		return false
	}
	return *t.RouteReflectorClient
}

// GetRouteReflectorClusterId retrieves the value of the leaf RouteReflectorClusterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClusterId is set, it can
// safely use t.GetRouteReflectorClusterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClusterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) GetRouteReflectorClusterId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union {
	if t == nil || t.RouteReflectorClusterId == nil {
		return nil
	}
	return t.RouteReflectorClusterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RouteReflectorClient == nil {
		var v bool = false
		t.RouteReflectorClient = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/route-reflector/config/route-reflector-cluster-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_Config_RouteReflectorClusterId_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/route-reflector/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	RouteReflectorClient     *bool                                                                                                                                                     `path:"route-reflector-client" module:"openconfig-network-instance"`
	ΛRouteReflectorClient    []ygot.Annotation                                                                                                                                         `path:"@route-reflector-client" ygotAnnotation:"true"`
	RouteReflectorClusterId  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union `path:"route-reflector-cluster-id" module:"openconfig-network-instance"`
	ΛRouteReflectorClusterId []ygot.Annotation                                                                                                                                         `path:"@route-reflector-cluster-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) IsYANGGoStruct() {
}

// GetRouteReflectorClient retrieves the value of the leaf RouteReflectorClient from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClient is set, it can
// safely use t.GetRouteReflectorClient() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClient == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) GetRouteReflectorClient() bool {
	if t == nil || t.RouteReflectorClient == nil {
		return false
	}
	return *t.RouteReflectorClient
}

// GetRouteReflectorClusterId retrieves the value of the leaf RouteReflectorClusterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteReflectorClusterId is set, it can
// safely use t.GetRouteReflectorClusterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteReflectorClusterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) GetRouteReflectorClusterId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union {
	if t == nil || t.RouteReflectorClusterId == nil {
		return nil
	}
	return t.RouteReflectorClusterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RouteReflectorClient == nil {
		var v bool = false
		t.RouteReflectorClient = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/route-reflector/state/route-reflector-cluster-id within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_RouteReflector_State_RouteReflectorClusterId_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State struct {
	ΛMetadata          []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	AuthPassword       *string                                    `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword      []ygot.Annotation                          `path:"@auth-password" ygotAnnotation:"true"`
	Description        *string                                    `path:"description" module:"openconfig-network-instance"`
	ΛDescription       []ygot.Annotation                          `path:"@description" ygotAnnotation:"true"`
	LocalAs            *uint32                                    `path:"local-as" module:"openconfig-network-instance"`
	ΛLocalAs           []ygot.Annotation                          `path:"@local-as" ygotAnnotation:"true"`
	PeerAs             *uint32                                    `path:"peer-as" module:"openconfig-network-instance"`
	ΛPeerAs            []ygot.Annotation                          `path:"@peer-as" ygotAnnotation:"true"`
	PeerGroupName      *string                                    `path:"peer-group-name" module:"openconfig-network-instance"`
	ΛPeerGroupName     []ygot.Annotation                          `path:"@peer-group-name" ygotAnnotation:"true"`
	PeerType           E_OpenconfigBgpTypes_PeerType              `path:"peer-type" module:"openconfig-network-instance"`
	ΛPeerType          []ygot.Annotation                          `path:"@peer-type" ygotAnnotation:"true"`
	RemovePrivateAs    E_OpenconfigBgpTypes_RemovePrivateAsOption `path:"remove-private-as" module:"openconfig-network-instance"`
	ΛRemovePrivateAs   []ygot.Annotation                          `path:"@remove-private-as" ygotAnnotation:"true"`
	RouteFlapDamping   *bool                                      `path:"route-flap-damping" module:"openconfig-network-instance"`
	ΛRouteFlapDamping  []ygot.Annotation                          `path:"@route-flap-damping" ygotAnnotation:"true"`
	SendCommunity      E_OpenconfigBgpTypes_CommunityType         `path:"send-community" module:"openconfig-network-instance"`
	ΛSendCommunity     []ygot.Annotation                          `path:"@send-community" ygotAnnotation:"true"`
	SendCommunityType  []E_OpenconfigBgpTypes_CommunityType       `path:"send-community-type" module:"openconfig-network-instance"`
	ΛSendCommunityType []ygot.Annotation                          `path:"@send-community-type" ygotAnnotation:"true"`
	TotalPaths         *uint32                                    `path:"total-paths" module:"openconfig-network-instance"`
	ΛTotalPaths        []ygot.Annotation                          `path:"@total-paths" ygotAnnotation:"true"`
	TotalPrefixes      *uint32                                    `path:"total-prefixes" module:"openconfig-network-instance"`
	ΛTotalPrefixes     []ygot.Annotation                          `path:"@total-prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) IsYANGGoStruct() {
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetLocalAs retrieves the value of the leaf LocalAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAs is set, it can
// safely use t.GetLocalAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetLocalAs() uint32 {
	if t == nil || t.LocalAs == nil {
		return 0
	}
	return *t.LocalAs
}

// GetPeerAs retrieves the value of the leaf PeerAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerAs is set, it can
// safely use t.GetPeerAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetPeerAs() uint32 {
	if t == nil || t.PeerAs == nil {
		return 0
	}
	return *t.PeerAs
}

// GetPeerGroupName retrieves the value of the leaf PeerGroupName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerGroupName is set, it can
// safely use t.GetPeerGroupName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerGroupName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetPeerGroupName() string {
	if t == nil || t.PeerGroupName == nil {
		return ""
	}
	return *t.PeerGroupName
}

// GetPeerType retrieves the value of the leaf PeerType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerType is set, it can
// safely use t.GetPeerType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetPeerType() E_OpenconfigBgpTypes_PeerType {
	if t == nil || t.PeerType == 0 {
		return 0
	}
	return t.PeerType
}

// GetRemovePrivateAs retrieves the value of the leaf RemovePrivateAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemovePrivateAs is set, it can
// safely use t.GetRemovePrivateAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemovePrivateAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetRemovePrivateAs() E_OpenconfigBgpTypes_RemovePrivateAsOption {
	if t == nil || t.RemovePrivateAs == 0 {
		return 0
	}
	return t.RemovePrivateAs
}

// GetRouteFlapDamping retrieves the value of the leaf RouteFlapDamping from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteFlapDamping is set, it can
// safely use t.GetRouteFlapDamping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteFlapDamping == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetRouteFlapDamping() bool {
	if t == nil || t.RouteFlapDamping == nil {
		return false
	}
	return *t.RouteFlapDamping
}

// GetSendCommunity retrieves the value of the leaf SendCommunity from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunity is set, it can
// safely use t.GetSendCommunity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunity == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetSendCommunity() E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunity == 0 {
		return OpenconfigBgpTypes_CommunityType_NONE
	}
	return t.SendCommunity
}

// GetSendCommunityType retrieves the value of the leaf SendCommunityType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SendCommunityType is set, it can
// safely use t.GetSendCommunityType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SendCommunityType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetSendCommunityType() []E_OpenconfigBgpTypes_CommunityType {
	if t == nil || t.SendCommunityType == nil {
		return nil
	}
	return t.SendCommunityType
}

// GetTotalPaths retrieves the value of the leaf TotalPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalPaths is set, it can
// safely use t.GetTotalPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetTotalPaths() uint32 {
	if t == nil || t.TotalPaths == nil {
		return 0
	}
	return *t.TotalPaths
}

// GetTotalPrefixes retrieves the value of the leaf TotalPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalPrefixes is set, it can
// safely use t.GetTotalPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) GetTotalPrefixes() uint32 {
	if t == nil || t.TotalPrefixes == nil {
		return 0
	}
	return *t.TotalPrefixes
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RouteFlapDamping == nil {
		var v bool = false
		t.RouteFlapDamping = &v
	}
	if t.SendCommunity == 0 {
		t.SendCommunity = OpenconfigBgpTypes_CommunityType_NONE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers struct {
	ΛMetadata []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ConnectRetry                  *uint16           `path:"connect-retry" module:"openconfig-network-instance"`
	ΛConnectRetry                 []ygot.Annotation `path:"@connect-retry" ygotAnnotation:"true"`
	HoldTime                      *uint16           `path:"hold-time" module:"openconfig-network-instance"`
	ΛHoldTime                     []ygot.Annotation `path:"@hold-time" ygotAnnotation:"true"`
	KeepaliveInterval             *uint16           `path:"keepalive-interval" module:"openconfig-network-instance"`
	ΛKeepaliveInterval            []ygot.Annotation `path:"@keepalive-interval" ygotAnnotation:"true"`
	MinimumAdvertisementInterval  *uint16           `path:"minimum-advertisement-interval" module:"openconfig-network-instance"`
	ΛMinimumAdvertisementInterval []ygot.Annotation `path:"@minimum-advertisement-interval" ygotAnnotation:"true"`
	RestartTime                   *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime                  []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) IsYANGGoStruct() {
}

// GetConnectRetry retrieves the value of the leaf ConnectRetry from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectRetry is set, it can
// safely use t.GetConnectRetry() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectRetry == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) GetConnectRetry() uint16 {
	if t == nil || t.ConnectRetry == nil {
		return 30
	}
	return *t.ConnectRetry
}

// GetHoldTime retrieves the value of the leaf HoldTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldTime is set, it can
// safely use t.GetHoldTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) GetHoldTime() uint16 {
	if t == nil || t.HoldTime == nil {
		return 90
	}
	return *t.HoldTime
}

// GetKeepaliveInterval retrieves the value of the leaf KeepaliveInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeepaliveInterval is set, it can
// safely use t.GetKeepaliveInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeepaliveInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) GetKeepaliveInterval() uint16 {
	if t == nil || t.KeepaliveInterval == nil {
		return 30
	}
	return *t.KeepaliveInterval
}

// GetMinimumAdvertisementInterval retrieves the value of the leaf MinimumAdvertisementInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinimumAdvertisementInterval is set, it can
// safely use t.GetMinimumAdvertisementInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinimumAdvertisementInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) GetMinimumAdvertisementInterval() uint16 {
	if t == nil || t.MinimumAdvertisementInterval == nil {
		return 30
	}
	return *t.MinimumAdvertisementInterval
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ConnectRetry == nil {
		var v uint16 = 30
		t.ConnectRetry = &v
	}
	if t.HoldTime == nil {
		var v uint16 = 90
		t.HoldTime = &v
	}
	if t.KeepaliveInterval == nil {
		var v uint16 = 30
		t.KeepaliveInterval = &v
	}
	if t.MinimumAdvertisementInterval == nil {
		var v uint16 = 30
		t.MinimumAdvertisementInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ConnectRetry                  *uint16           `path:"connect-retry" module:"openconfig-network-instance"`
	ΛConnectRetry                 []ygot.Annotation `path:"@connect-retry" ygotAnnotation:"true"`
	HoldTime                      *uint16           `path:"hold-time" module:"openconfig-network-instance"`
	ΛHoldTime                     []ygot.Annotation `path:"@hold-time" ygotAnnotation:"true"`
	KeepaliveInterval             *uint16           `path:"keepalive-interval" module:"openconfig-network-instance"`
	ΛKeepaliveInterval            []ygot.Annotation `path:"@keepalive-interval" ygotAnnotation:"true"`
	MinimumAdvertisementInterval  *uint16           `path:"minimum-advertisement-interval" module:"openconfig-network-instance"`
	ΛMinimumAdvertisementInterval []ygot.Annotation `path:"@minimum-advertisement-interval" ygotAnnotation:"true"`
	RestartTime                   *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime                  []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) IsYANGGoStruct() {
}

// GetConnectRetry retrieves the value of the leaf ConnectRetry from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectRetry is set, it can
// safely use t.GetConnectRetry() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectRetry == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) GetConnectRetry() uint16 {
	if t == nil || t.ConnectRetry == nil {
		return 30
	}
	return *t.ConnectRetry
}

// GetHoldTime retrieves the value of the leaf HoldTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HoldTime is set, it can
// safely use t.GetHoldTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HoldTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) GetHoldTime() uint16 {
	if t == nil || t.HoldTime == nil {
		return 90
	}
	return *t.HoldTime
}

// GetKeepaliveInterval retrieves the value of the leaf KeepaliveInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeepaliveInterval is set, it can
// safely use t.GetKeepaliveInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeepaliveInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) GetKeepaliveInterval() uint16 {
	if t == nil || t.KeepaliveInterval == nil {
		return 30
	}
	return *t.KeepaliveInterval
}

// GetMinimumAdvertisementInterval retrieves the value of the leaf MinimumAdvertisementInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinimumAdvertisementInterval is set, it can
// safely use t.GetMinimumAdvertisementInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinimumAdvertisementInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) GetMinimumAdvertisementInterval() uint16 {
	if t == nil || t.MinimumAdvertisementInterval == nil {
		return 30
	}
	return *t.MinimumAdvertisementInterval
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 0
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ConnectRetry == nil {
		var v uint16 = 30
		t.ConnectRetry = &v
	}
	if t.HoldTime == nil {
		var v uint16 = 90
		t.HoldTime = &v
	}
	if t.KeepaliveInterval == nil {
		var v uint16 = 30
		t.KeepaliveInterval = &v
	}
	if t.MinimumAdvertisementInterval == nil {
		var v uint16 = 30
		t.MinimumAdvertisementInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Timers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/transport YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/transport/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LocalAddress  *string           `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	MtuDiscovery  *bool             `path:"mtu-discovery" module:"openconfig-network-instance"`
	ΛMtuDiscovery []ygot.Annotation `path:"@mtu-discovery" ygotAnnotation:"true"`
	PassiveMode   *bool             `path:"passive-mode" module:"openconfig-network-instance"`
	ΛPassiveMode  []ygot.Annotation `path:"@passive-mode" ygotAnnotation:"true"`
	TcpMss        *uint16           `path:"tcp-mss" module:"openconfig-network-instance"`
	ΛTcpMss       []ygot.Annotation `path:"@tcp-mss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) IsYANGGoStruct() {
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetMtuDiscovery retrieves the value of the leaf MtuDiscovery from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtuDiscovery is set, it can
// safely use t.GetMtuDiscovery() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtuDiscovery == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) GetMtuDiscovery() bool {
	if t == nil || t.MtuDiscovery == nil {
		return false
	}
	return *t.MtuDiscovery
}

// GetPassiveMode retrieves the value of the leaf PassiveMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PassiveMode is set, it can
// safely use t.GetPassiveMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PassiveMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) GetPassiveMode() bool {
	if t == nil || t.PassiveMode == nil {
		return false
	}
	return *t.PassiveMode
}

// GetTcpMss retrieves the value of the leaf TcpMss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TcpMss is set, it can
// safely use t.GetTcpMss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TcpMss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) GetTcpMss() uint16 {
	if t == nil || t.TcpMss == nil {
		return 0
	}
	return *t.TcpMss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MtuDiscovery == nil {
		var v bool = false
		t.MtuDiscovery = &v
	}
	if t.PassiveMode == nil {
		var v bool = false
		t.PassiveMode = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/transport/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LocalAddress  *string           `path:"local-address" module:"openconfig-network-instance"`
	ΛLocalAddress []ygot.Annotation `path:"@local-address" ygotAnnotation:"true"`
	MtuDiscovery  *bool             `path:"mtu-discovery" module:"openconfig-network-instance"`
	ΛMtuDiscovery []ygot.Annotation `path:"@mtu-discovery" ygotAnnotation:"true"`
	PassiveMode   *bool             `path:"passive-mode" module:"openconfig-network-instance"`
	ΛPassiveMode  []ygot.Annotation `path:"@passive-mode" ygotAnnotation:"true"`
	TcpMss        *uint16           `path:"tcp-mss" module:"openconfig-network-instance"`
	ΛTcpMss       []ygot.Annotation `path:"@tcp-mss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) IsYANGGoStruct() {
}

// GetLocalAddress retrieves the value of the leaf LocalAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalAddress is set, it can
// safely use t.GetLocalAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) GetLocalAddress() string {
	if t == nil || t.LocalAddress == nil {
		return ""
	}
	return *t.LocalAddress
}

// GetMtuDiscovery retrieves the value of the leaf MtuDiscovery from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtuDiscovery is set, it can
// safely use t.GetMtuDiscovery() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtuDiscovery == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) GetMtuDiscovery() bool {
	if t == nil || t.MtuDiscovery == nil {
		return false
	}
	return *t.MtuDiscovery
}

// GetPassiveMode retrieves the value of the leaf PassiveMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PassiveMode is set, it can
// safely use t.GetPassiveMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PassiveMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) GetPassiveMode() bool {
	if t == nil || t.PassiveMode == nil {
		return false
	}
	return *t.PassiveMode
}

// GetTcpMss retrieves the value of the leaf TcpMss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TcpMss is set, it can
// safely use t.GetTcpMss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TcpMss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) GetTcpMss() uint16 {
	if t == nil || t.TcpMss == nil {
		return 0
	}
	return *t.TcpMss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MtuDiscovery == nil {
		var v bool = false
		t.MtuDiscovery = &v
	}
	if t.PassiveMode == nil {
		var v bool = false
		t.PassiveMode = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_Transport_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	Ebgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp   `path:"ebgp" module:"openconfig-network-instance"`
	ΛEbgp     []ygot.Annotation                                                                                                               `path:"@ebgp" ygotAnnotation:"true"`
	Ibgp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp   `path:"ibgp" module:"openconfig-network-instance"`
	ΛIbgp     []ygot.Annotation                                                                                                               `path:"@ibgp" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config{}
	return t.Config
}

// GetOrCreateEbgp retrieves the value of the Ebgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetOrCreateEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp {
	if t.Ebgp != nil {
		return t.Ebgp
	}
	t.Ebgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp{}
	return t.Ebgp
}

// GetOrCreateIbgp retrieves the value of the Ibgp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetOrCreateIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp {
	if t.Ibgp != nil {
		return t.Ibgp
	}
	t.Ibgp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp{}
	return t.Ibgp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEbgp returns the value of the Ebgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths. If the receiver or the field Ebgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetEbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp {
	if t != nil && t.Ebgp != nil {
		return t.Ebgp
	}
	return nil
}

// GetIbgp returns the value of the Ibgp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths. If the receiver or the field Ibgp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetIbgp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp {
	if t != nil && t.Ibgp != nil {
		return t.Ibgp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Ebgp.PopulateDefaults()
	t.Ibgp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ebgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                                       `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ebgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ebgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ebgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ebgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ebgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AllowMultipleAs  *bool             `path:"allow-multiple-as" module:"openconfig-network-instance"`
	ΛAllowMultipleAs []ygot.Annotation `path:"@allow-multiple-as" ygotAnnotation:"true"`
	MaximumPaths     *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths    []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) IsYANGGoStruct() {
}

// GetAllowMultipleAs retrieves the value of the leaf AllowMultipleAs from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllowMultipleAs is set, it can
// safely use t.GetAllowMultipleAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllowMultipleAs == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) GetAllowMultipleAs() bool {
	if t == nil || t.AllowMultipleAs == nil {
		return false
	}
	return *t.AllowMultipleAs
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AllowMultipleAs == nil {
		var v bool = false
		t.AllowMultipleAs = &v
	}
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ebgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ibgp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config                    `path:"config" module:"openconfig-network-instance"`
	ΛConfig                    []ygot.Annotation                                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	LinkBandwidthExtCommunity  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity `path:"link-bandwidth-ext-community" module:"openconfig-network-instance"`
	ΛLinkBandwidthExtCommunity []ygot.Annotation                                                                                                                                       `path:"@link-bandwidth-ext-community" ygotAnnotation:"true"`
	State                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State                     `path:"state" module:"openconfig-network-instance"`
	ΛState                     []ygot.Annotation                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config{}
	return t.Config
}

// GetOrCreateLinkBandwidthExtCommunity retrieves the value of the LinkBandwidthExtCommunity field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) GetOrCreateLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	t.LinkBandwidthExtCommunity = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity{}
	return t.LinkBandwidthExtCommunity
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLinkBandwidthExtCommunity returns the value of the LinkBandwidthExtCommunity struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp. If the receiver or the field LinkBandwidthExtCommunity is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) GetLinkBandwidthExtCommunity() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity {
	if t != nil && t.LinkBandwidthExtCommunity != nil {
		return t.LinkBandwidthExtCommunity
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LinkBandwidthExtCommunity.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ibgp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ibgp/link-bandwidth-ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ibgp/link-bandwidth-ext-community/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ibgp/link-bandwidth-ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_LinkBandwidthExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/ibgp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumPaths  *uint32           `path:"maximum-paths" module:"openconfig-network-instance"`
	ΛMaximumPaths []ygot.Annotation `path:"@maximum-paths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State) IsYANGGoStruct() {
}

// GetMaximumPaths retrieves the value of the leaf MaximumPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumPaths is set, it can
// safely use t.GetMaximumPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State) GetMaximumPaths() uint32 {
	if t == nil || t.MaximumPaths == nil {
		return 1
	}
	return *t.MaximumPaths
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaximumPaths == nil {
		var v uint32 = 1
		t.MaximumPaths = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_Ibgp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/use-multiple-paths/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_PeerGroups_PeerGroup_UseMultiplePaths_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib struct {
	ΛMetadata       []ygot.Annotation                                                                                     `path:"@" ygotAnnotation:"true"`
	AfiSafis        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis       `path:"afi-safis" module:"openconfig-network-instance"`
	ΛAfiSafis       []ygot.Annotation                                                                                     `path:"@afi-safis" ygotAnnotation:"true"`
	AttrSets        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets       `path:"attr-sets" module:"openconfig-network-instance"`
	ΛAttrSets       []ygot.Annotation                                                                                     `path:"@attr-sets" ygotAnnotation:"true"`
	Communities     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities    `path:"communities" module:"openconfig-network-instance"`
	ΛCommunities    []ygot.Annotation                                                                                     `path:"@communities" ygotAnnotation:"true"`
	ExtCommunities  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities `path:"ext-communities" module:"openconfig-network-instance"`
	ΛExtCommunities []ygot.Annotation                                                                                     `path:"@ext-communities" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) IsYANGGoStruct() {
}

// GetOrCreateAfiSafis retrieves the value of the AfiSafis field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetOrCreateAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis {
	if t.AfiSafis != nil {
		return t.AfiSafis
	}
	t.AfiSafis = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis{}
	return t.AfiSafis
}

// GetOrCreateAttrSets retrieves the value of the AttrSets field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetOrCreateAttrSets() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets {
	if t.AttrSets != nil {
		return t.AttrSets
	}
	t.AttrSets = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets{}
	return t.AttrSets
}

// GetOrCreateCommunities retrieves the value of the Communities field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetOrCreateCommunities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities {
	if t.Communities != nil {
		return t.Communities
	}
	t.Communities = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities{}
	return t.Communities
}

// GetOrCreateExtCommunities retrieves the value of the ExtCommunities field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetOrCreateExtCommunities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities {
	if t.ExtCommunities != nil {
		return t.ExtCommunities
	}
	t.ExtCommunities = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities{}
	return t.ExtCommunities
}

// GetAfiSafis returns the value of the AfiSafis struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib. If the receiver or the field AfiSafis is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetAfiSafis() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis {
	if t != nil && t.AfiSafis != nil {
		return t.AfiSafis
	}
	return nil
}

// GetAttrSets returns the value of the AttrSets struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib. If the receiver or the field AttrSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetAttrSets() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets {
	if t != nil && t.AttrSets != nil {
		return t.AttrSets
	}
	return nil
}

// GetCommunities returns the value of the Communities struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib. If the receiver or the field Communities is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetCommunities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities {
	if t != nil && t.Communities != nil {
		return t.Communities
	}
	return nil
}

// GetExtCommunities returns the value of the ExtCommunities struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib. If the receiver or the field ExtCommunities is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) GetExtCommunities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities {
	if t != nil && t.ExtCommunities != nil {
		return t.ExtCommunities
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AfiSafis.PopulateDefaults()
	t.AttrSets.PopulateDefaults()
	t.Communities.PopulateDefaults()
	t.ExtCommunities.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	AfiSafi   map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi `path:"afi-safi" module:"openconfig-network-instance"`
	ΛAfiSafi  []ygot.Annotation                                                                                                                              `path:"@afi-safi" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) IsYANGGoStruct() {
}

// NewAfiSafi creates a new entry in the AfiSafi list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) NewAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi)
	}

	key := AfiSafiName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AfiSafi[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AfiSafi", key)
	}

	t.AfiSafi[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi{
		AfiSafiName: AfiSafiName,
	}

	return t.AfiSafi[key], nil
}

// RenameAfiSafi renames an entry in the list AfiSafi within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) RenameAfiSafi(oldK, newK E_OpenconfigBgpTypes_AFI_SAFI_TYPE) error {
	if _, ok := t.AfiSafi[newK]; ok {
		return fmt.Errorf("key %v already exists in AfiSafi", newK)
	}

	e, ok := t.AfiSafi[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AfiSafi", oldK)
	}
	e.AfiSafiName = newK

	t.AfiSafi[newK] = e
	delete(t.AfiSafi, oldK)
	return nil
}

// GetOrCreateAfiSafiMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) GetOrCreateAfiSafiMap() map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi {
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi)
	}
	return t.AfiSafi
}

// GetOrCreateAfiSafi retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) GetOrCreateAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi {

	key := AfiSafiName

	if v, ok := t.AfiSafi[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAfiSafi(AfiSafiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAfiSafi got unexpected error: %v", err))
	}
	return v
}

// GetAfiSafi retrieves the value with the specified key from
// the AfiSafi map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) GetAfiSafi(AfiSafiName E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi {

	if t == nil {
		return nil
	}

	key := AfiSafiName

	if lm, ok := t.AfiSafi[key]; ok {
		return lm
	}
	return nil
}

// AppendAfiSafi appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi struct to the
// list AfiSafi of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) AppendAfiSafi(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) error {
	key := v.AfiSafiName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AfiSafi == nil {
		t.AfiSafi = make(map[E_OpenconfigBgpTypes_AFI_SAFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi)
	}

	if _, ok := t.AfiSafi[key]; ok {
		return fmt.Errorf("duplicate key for list AfiSafi %v", key)
	}

	t.AfiSafi[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AfiSafi {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi struct {
	ΛMetadata       []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	AfiSafiName     E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                     `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName    []ygot.Annotation                                                                                                      `path:"@afi-safi-name" ygotAnnotation:"true"`
	Ipv4SrtePolicy  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy `path:"ipv4-srte-policy" module:"openconfig-network-instance"`
	ΛIpv4SrtePolicy []ygot.Annotation                                                                                                      `path:"@ipv4-srte-policy" ygotAnnotation:"true"`
	Ipv4Unicast     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast    `path:"ipv4-unicast" module:"openconfig-network-instance"`
	ΛIpv4Unicast    []ygot.Annotation                                                                                                      `path:"@ipv4-unicast" ygotAnnotation:"true"`
	Ipv6SrtePolicy  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy `path:"ipv6-srte-policy" module:"openconfig-network-instance"`
	ΛIpv6SrtePolicy []ygot.Annotation                                                                                                      `path:"@ipv6-srte-policy" ygotAnnotation:"true"`
	Ipv6Unicast     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast    `path:"ipv6-unicast" module:"openconfig-network-instance"`
	ΛIpv6Unicast    []ygot.Annotation                                                                                                      `path:"@ipv6-unicast" ygotAnnotation:"true"`
	L2VpnEvpn       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn      `path:"l2vpn-evpn" module:"openconfig-network-instance"`
	ΛL2VpnEvpn      []ygot.Annotation                                                                                                      `path:"@l2vpn-evpn" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) IsYANGGoStruct() {
}

// GetOrCreateIpv4SrtePolicy retrieves the value of the Ipv4SrtePolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetOrCreateIpv4SrtePolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy {
	if t.Ipv4SrtePolicy != nil {
		return t.Ipv4SrtePolicy
	}
	t.Ipv4SrtePolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy{}
	return t.Ipv4SrtePolicy
}

// GetOrCreateIpv4Unicast retrieves the value of the Ipv4Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetOrCreateIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast {
	if t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	t.Ipv4Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast{}
	return t.Ipv4Unicast
}

// GetOrCreateIpv6SrtePolicy retrieves the value of the Ipv6SrtePolicy field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetOrCreateIpv6SrtePolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy {
	if t.Ipv6SrtePolicy != nil {
		return t.Ipv6SrtePolicy
	}
	t.Ipv6SrtePolicy = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy{}
	return t.Ipv6SrtePolicy
}

// GetOrCreateIpv6Unicast retrieves the value of the Ipv6Unicast field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetOrCreateIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast {
	if t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	t.Ipv6Unicast = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast{}
	return t.Ipv6Unicast
}

// GetOrCreateL2VpnEvpn retrieves the value of the L2VpnEvpn field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetOrCreateL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn {
	if t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	t.L2VpnEvpn = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn{}
	return t.L2VpnEvpn
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State{}
	return t.State
}

// GetIpv4SrtePolicy returns the value of the Ipv4SrtePolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi. If the receiver or the field Ipv4SrtePolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetIpv4SrtePolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy {
	if t != nil && t.Ipv4SrtePolicy != nil {
		return t.Ipv4SrtePolicy
	}
	return nil
}

// GetIpv4Unicast returns the value of the Ipv4Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi. If the receiver or the field Ipv4Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetIpv4Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast {
	if t != nil && t.Ipv4Unicast != nil {
		return t.Ipv4Unicast
	}
	return nil
}

// GetIpv6SrtePolicy returns the value of the Ipv6SrtePolicy struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi. If the receiver or the field Ipv6SrtePolicy is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetIpv6SrtePolicy() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy {
	if t != nil && t.Ipv6SrtePolicy != nil {
		return t.Ipv6SrtePolicy
	}
	return nil
}

// GetIpv6Unicast returns the value of the Ipv6Unicast struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi. If the receiver or the field Ipv6Unicast is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetIpv6Unicast() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast {
	if t != nil && t.Ipv6Unicast != nil {
		return t.Ipv6Unicast
	}
	return nil
}

// GetL2VpnEvpn returns the value of the L2VpnEvpn struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi. If the receiver or the field L2VpnEvpn is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetL2VpnEvpn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn {
	if t != nil && t.L2VpnEvpn != nil {
		return t.L2VpnEvpn
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ipv4SrtePolicy.PopulateDefaults()
	t.Ipv4Unicast.PopulateDefaults()
	t.Ipv6SrtePolicy.PopulateDefaults()
	t.Ipv6Unicast.PopulateDefaults()
	t.L2VpnEvpn.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-safi-name": t.AfiSafiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy struct {
	ΛMetadata  []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	LocRib     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib    `path:"loc-rib" module:"openconfig-network-instance"`
	ΛLocRib    []ygot.Annotation                                                                                                                `path:"@loc-rib" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                                `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) IsYANGGoStruct() {
}

// GetOrCreateLocRib retrieves the value of the LocRib field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) GetOrCreateLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib {
	if t.LocRib != nil {
		return t.LocRib
	}
	t.LocRib = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib{}
	return t.LocRib
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors{}
	return t.Neighbors
}

// GetLocRib returns the value of the LocRib struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy. If the receiver or the field LocRib is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) GetLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib {
	if t != nil && t.LocRib != nil {
		return t.LocRib
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.LocRib.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib struct {
	ΛMetadata []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                    `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                            `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                            `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                            `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                            `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                            `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                       `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                              `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                   `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                    `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) NewNeighbor(NeighborAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor)
	}

	key := NeighborAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor{
		NeighborAddress: &NeighborAddress,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.NeighborAddress = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) GetOrCreateNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor {

	key := NeighborAddress

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(NeighborAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) GetNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := NeighborAddress

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) error {
	if v.NeighborAddress == nil {
		return fmt.Errorf("invalid nil key received for NeighborAddress")
	}

	key := *v.NeighborAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	AdjRibInPost     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost  `path:"adj-rib-in-post" module:"openconfig-network-instance"`
	ΛAdjRibInPost    []ygot.Annotation                                                                                                                                       `path:"@adj-rib-in-post" ygotAnnotation:"true"`
	AdjRibInPre      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre   `path:"adj-rib-in-pre" module:"openconfig-network-instance"`
	ΛAdjRibInPre     []ygot.Annotation                                                                                                                                       `path:"@adj-rib-in-pre" ygotAnnotation:"true"`
	AdjRibOutPost    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost `path:"adj-rib-out-post" module:"openconfig-network-instance"`
	ΛAdjRibOutPost   []ygot.Annotation                                                                                                                                       `path:"@adj-rib-out-post" ygotAnnotation:"true"`
	AdjRibOutPre     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre  `path:"adj-rib-out-pre" module:"openconfig-network-instance"`
	ΛAdjRibOutPre    []ygot.Annotation                                                                                                                                       `path:"@adj-rib-out-pre" ygotAnnotation:"true"`
	NeighborAddress  *string                                                                                                                                                 `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation                                                                                                                                       `path:"@neighbor-address" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State         `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateAdjRibInPost retrieves the value of the AdjRibInPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost {
	if t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	t.AdjRibInPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost{}
	return t.AdjRibInPost
}

// GetOrCreateAdjRibInPre retrieves the value of the AdjRibInPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre {
	if t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	t.AdjRibInPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre{}
	return t.AdjRibInPre
}

// GetOrCreateAdjRibOutPost retrieves the value of the AdjRibOutPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost {
	if t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	t.AdjRibOutPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost{}
	return t.AdjRibOutPost
}

// GetOrCreateAdjRibOutPre retrieves the value of the AdjRibOutPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre {
	if t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	t.AdjRibOutPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre{}
	return t.AdjRibOutPre
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State{}
	return t.State
}

// GetAdjRibInPost returns the value of the AdjRibInPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibInPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost {
	if t != nil && t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	return nil
}

// GetAdjRibInPre returns the value of the AdjRibInPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibInPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre {
	if t != nil && t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	return nil
}

// GetAdjRibOutPost returns the value of the AdjRibOutPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibOutPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost {
	if t != nil && t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	return nil
}

// GetAdjRibOutPre returns the value of the AdjRibOutPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibOutPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre {
	if t != nil && t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjRibInPost.PopulateDefaults()
	t.AdjRibInPre.PopulateDefaults()
	t.AdjRibOutPost.PopulateDefaults()
	t.AdjRibOutPre.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NeighborAddress == nil {
		return nil, fmt.Errorf("nil value for key NeighborAddress")
	}

	return map[string]interface{}{
		"neighbor-address": *t.NeighborAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                             `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                               `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                     `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                               `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                     `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                               `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                     `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                     `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	BestPath           *bool                                        `path:"best-path" module:"openconfig-network-instance"`
	ΛBestPath          []ygot.Annotation                            `path:"@best-path" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBestPath retrieves the value of the leaf BestPath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BestPath is set, it can
// safely use t.GetBestPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BestPath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetBestPath() bool {
	if t == nil || t.BestPath == nil {
		return false
	}
	return *t.BestPath
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                       `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                            `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                            `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                              `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                    `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                              `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                    `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                              `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                    `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                    `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                               `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                      `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                           `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                              `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                                `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                                `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                      `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                                `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                      `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                                `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                      `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                      `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                 `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                        `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                             `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                             `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                               `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                     `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                               `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                     `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                               `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                     `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                     `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                       `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                            `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	NeighborAddress  *string           `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation `path:"@neighbor-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4SrtePolicy_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast struct {
	ΛMetadata  []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	LocRib     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib    `path:"loc-rib" module:"openconfig-network-instance"`
	ΛLocRib    []ygot.Annotation                                                                                                             `path:"@loc-rib" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                             `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) IsYANGGoStruct() {
}

// GetOrCreateLocRib retrieves the value of the LocRib field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib {
	if t.LocRib != nil {
		return t.LocRib
	}
	t.LocRib = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib{}
	return t.LocRib
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors{}
	return t.Neighbors
}

// GetLocRib returns the value of the LocRib struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field LocRib is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) GetLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib {
	if t != nil && t.LocRib != nil {
		return t.LocRib
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.LocRib.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                 `path:"@routes" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes{}
	return t.Routes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State{}
	return t.State
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                      `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key struct {
	Prefix string                                                                                                                                                    `path:"prefix"`
	Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union `path:"origin"`
	PathId uint32                                                                                                                                                    `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"origin":  t.Origin,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) NewRoute(Prefix string, Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key{
		Prefix: Prefix,
		Origin: Origin,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route{
		Prefix: &Prefix,
		Origin: Origin,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.Origin = newK.Origin
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) GetOrCreateRoute(Prefix string, Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key{
		Prefix: Prefix,
		Origin: Origin,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, Origin, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) GetRoute(Prefix string, Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key{
		Prefix: Prefix,
		Origin: Origin,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key{
		Prefix: *v.Prefix,
		Origin: v.Origin,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Origin             OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union `path:"origin" module:"openconfig-network-instance"`
	ΛOrigin            []ygot.Annotation                                                                                                                                         `path:"@origin" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                   `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                         `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                   `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                         `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                         `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetOrigin retrieves the value of the leaf Origin from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Origin is set, it can
// safely use t.GetOrigin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Origin == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) GetOrigin() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union {
	if t == nil || t.Origin == nil {
		return nil
	}
	return t.Origin
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"origin":  t.Origin,
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/origin within the YANG schema.
// Union type can be one of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union interface {
	// Union type can be one of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union ensures that E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union interface.
func (E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union, unknown union type, got: %T, want any of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                                                                                                                                   `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                                                                                                                                         `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                                                                                                                                   `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                                                                                                                                         `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                                                                                                                                   `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                                                                                                                                         `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON                                                                                                              `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                                                                                                                                         `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                                                                                                                                   `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                                                                                                                                         `path:"@last-modified" ygotAnnotation:"true"`
	Origin             OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union `path:"origin" module:"openconfig-network-instance"`
	ΛOrigin            []ygot.Annotation                                                                                                                                         `path:"@origin" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                   `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                         `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                   `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                         `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                                                                                                                                     `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                                                                                                                                         `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetOrigin retrieves the value of the leaf Origin from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Origin is set, it can
// safely use t.GetOrigin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Origin == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetOrigin() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union {
	if t == nil || t.Origin == nil {
		return nil
	}
	return t.Origin
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_State_Origin_Union, unknown union type, got: %T, want any of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                    `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                           `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_LocRib_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                 `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) NewNeighbor(NeighborAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor)
	}

	key := NeighborAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor{
		NeighborAddress: &NeighborAddress,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.NeighborAddress = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) GetOrCreateNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor {

	key := NeighborAddress

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(NeighborAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) GetNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := NeighborAddress

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) error {
	if v.NeighborAddress == nil {
		return fmt.Errorf("invalid nil key received for NeighborAddress")
	}

	key := *v.NeighborAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	AdjRibInPost     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost  `path:"adj-rib-in-post" module:"openconfig-network-instance"`
	ΛAdjRibInPost    []ygot.Annotation                                                                                                                                    `path:"@adj-rib-in-post" ygotAnnotation:"true"`
	AdjRibInPre      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre   `path:"adj-rib-in-pre" module:"openconfig-network-instance"`
	ΛAdjRibInPre     []ygot.Annotation                                                                                                                                    `path:"@adj-rib-in-pre" ygotAnnotation:"true"`
	AdjRibOutPost    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost `path:"adj-rib-out-post" module:"openconfig-network-instance"`
	ΛAdjRibOutPost   []ygot.Annotation                                                                                                                                    `path:"@adj-rib-out-post" ygotAnnotation:"true"`
	AdjRibOutPre     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre  `path:"adj-rib-out-pre" module:"openconfig-network-instance"`
	ΛAdjRibOutPre    []ygot.Annotation                                                                                                                                    `path:"@adj-rib-out-pre" ygotAnnotation:"true"`
	NeighborAddress  *string                                                                                                                                              `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation                                                                                                                                    `path:"@neighbor-address" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State         `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateAdjRibInPost retrieves the value of the AdjRibInPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetOrCreateAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost {
	if t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	t.AdjRibInPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost{}
	return t.AdjRibInPost
}

// GetOrCreateAdjRibInPre retrieves the value of the AdjRibInPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetOrCreateAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre {
	if t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	t.AdjRibInPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre{}
	return t.AdjRibInPre
}

// GetOrCreateAdjRibOutPost retrieves the value of the AdjRibOutPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetOrCreateAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost {
	if t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	t.AdjRibOutPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost{}
	return t.AdjRibOutPost
}

// GetOrCreateAdjRibOutPre retrieves the value of the AdjRibOutPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetOrCreateAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre {
	if t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	t.AdjRibOutPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre{}
	return t.AdjRibOutPre
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State{}
	return t.State
}

// GetAdjRibInPost returns the value of the AdjRibInPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibInPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost {
	if t != nil && t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	return nil
}

// GetAdjRibInPre returns the value of the AdjRibInPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibInPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre {
	if t != nil && t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	return nil
}

// GetAdjRibOutPost returns the value of the AdjRibOutPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibOutPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost {
	if t != nil && t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	return nil
}

// GetAdjRibOutPre returns the value of the AdjRibOutPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibOutPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre {
	if t != nil && t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjRibInPost.PopulateDefaults()
	t.AdjRibInPre.PopulateDefaults()
	t.AdjRibOutPost.PopulateDefaults()
	t.AdjRibOutPre.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NeighborAddress == nil {
		return nil, fmt.Errorf("nil value for key NeighborAddress")
	}

	return map[string]interface{}{
		"neighbor-address": *t.NeighborAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                          `path:"@routes" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes{}
	return t.Routes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State{}
	return t.State
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                            `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                  `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                            `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                  `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                  `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	BestPath           *bool                                        `path:"best-path" module:"openconfig-network-instance"`
	ΛBestPath          []ygot.Annotation                            `path:"@best-path" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBestPath retrieves the value of the leaf BestPath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BestPath is set, it can
// safely use t.GetBestPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BestPath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetBestPath() bool {
	if t == nil || t.BestPath == nil {
		return false
	}
	return *t.BestPath
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                             `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                    `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                         `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPost_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                         `path:"@routes" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes{}
	return t.Routes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State{}
	return t.State
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                      `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                           `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                 `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                 `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                 `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                            `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                   `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                        `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibInPre_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                           `path:"@routes" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes{}
	return t.Routes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State{}
	return t.State
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                          `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                             `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                   `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                             `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                   `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                   `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                              `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                     `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                          `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPost_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                          `path:"@routes" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes{}
	return t.Routes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State{}
	return t.State
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                            `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                  `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                            `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                  `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                  `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                             `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                    `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                         `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_AdjRibOutPre_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	NeighborAddress  *string           `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation `path:"@neighbor-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv4Unicast_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy struct {
	ΛMetadata  []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	LocRib     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib    `path:"loc-rib" module:"openconfig-network-instance"`
	ΛLocRib    []ygot.Annotation                                                                                                                `path:"@loc-rib" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                                `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) IsYANGGoStruct() {
}

// GetOrCreateLocRib retrieves the value of the LocRib field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) GetOrCreateLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib {
	if t.LocRib != nil {
		return t.LocRib
	}
	t.LocRib = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib{}
	return t.LocRib
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors{}
	return t.Neighbors
}

// GetLocRib returns the value of the LocRib struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy. If the receiver or the field LocRib is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) GetLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib {
	if t != nil && t.LocRib != nil {
		return t.LocRib
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.LocRib.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib struct {
	ΛMetadata []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                    `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                            `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                            `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                            `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                            `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                            `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                       `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                              `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                   `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                    `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) NewNeighbor(NeighborAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor)
	}

	key := NeighborAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor{
		NeighborAddress: &NeighborAddress,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.NeighborAddress = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) GetOrCreateNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor {

	key := NeighborAddress

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(NeighborAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) GetNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := NeighborAddress

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) error {
	if v.NeighborAddress == nil {
		return fmt.Errorf("invalid nil key received for NeighborAddress")
	}

	key := *v.NeighborAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	AdjRibInPost     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost  `path:"adj-rib-in-post" module:"openconfig-network-instance"`
	ΛAdjRibInPost    []ygot.Annotation                                                                                                                                       `path:"@adj-rib-in-post" ygotAnnotation:"true"`
	AdjRibInPre      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre   `path:"adj-rib-in-pre" module:"openconfig-network-instance"`
	ΛAdjRibInPre     []ygot.Annotation                                                                                                                                       `path:"@adj-rib-in-pre" ygotAnnotation:"true"`
	AdjRibOutPost    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost `path:"adj-rib-out-post" module:"openconfig-network-instance"`
	ΛAdjRibOutPost   []ygot.Annotation                                                                                                                                       `path:"@adj-rib-out-post" ygotAnnotation:"true"`
	AdjRibOutPre     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre  `path:"adj-rib-out-pre" module:"openconfig-network-instance"`
	ΛAdjRibOutPre    []ygot.Annotation                                                                                                                                       `path:"@adj-rib-out-pre" ygotAnnotation:"true"`
	NeighborAddress  *string                                                                                                                                                 `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation                                                                                                                                       `path:"@neighbor-address" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State         `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateAdjRibInPost retrieves the value of the AdjRibInPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost {
	if t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	t.AdjRibInPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost{}
	return t.AdjRibInPost
}

// GetOrCreateAdjRibInPre retrieves the value of the AdjRibInPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre {
	if t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	t.AdjRibInPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre{}
	return t.AdjRibInPre
}

// GetOrCreateAdjRibOutPost retrieves the value of the AdjRibOutPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost {
	if t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	t.AdjRibOutPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost{}
	return t.AdjRibOutPost
}

// GetOrCreateAdjRibOutPre retrieves the value of the AdjRibOutPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetOrCreateAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre {
	if t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	t.AdjRibOutPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre{}
	return t.AdjRibOutPre
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State{}
	return t.State
}

// GetAdjRibInPost returns the value of the AdjRibInPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibInPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost {
	if t != nil && t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	return nil
}

// GetAdjRibInPre returns the value of the AdjRibInPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibInPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre {
	if t != nil && t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	return nil
}

// GetAdjRibOutPost returns the value of the AdjRibOutPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibOutPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost {
	if t != nil && t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	return nil
}

// GetAdjRibOutPre returns the value of the AdjRibOutPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor. If the receiver or the field AdjRibOutPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre {
	if t != nil && t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjRibInPost.PopulateDefaults()
	t.AdjRibInPre.PopulateDefaults()
	t.AdjRibOutPost.PopulateDefaults()
	t.AdjRibOutPre.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NeighborAddress == nil {
		return nil, fmt.Errorf("nil value for key NeighborAddress")
	}

	return map[string]interface{}{
		"neighbor-address": *t.NeighborAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                             `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                               `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                     `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                               `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                     `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                               `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                     `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                     `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	BestPath           *bool                                        `path:"best-path" module:"openconfig-network-instance"`
	ΛBestPath          []ygot.Annotation                            `path:"@best-path" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBestPath retrieves the value of the leaf BestPath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BestPath is set, it can
// safely use t.GetBestPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BestPath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetBestPath() bool {
	if t == nil || t.BestPath == nil {
		return false
	}
	return *t.BestPath
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                       `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                            `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                            `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                              `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                    `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                              `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                    `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                              `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                    `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                    `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                               `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                      `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                           `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                              `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                                `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                                `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                      `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                                `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                      `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                                `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                      `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                      `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                 `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                        `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                             `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                             `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                              `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key struct {
	PathId   uint32 `path:"path-id"`
	Endpoint string `path:"endpoint"`
	Color    uint32 `path:"color"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path-id":  t.PathId,
		"endpoint": t.Endpoint,
		"color":    t.Color,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) NewRoute(PathId uint32, Endpoint string, Color uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route{
		PathId:   &PathId,
		Endpoint: &Endpoint,
		Color:    &Color,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.PathId = &newK.PathId
	e.Endpoint = &newK.Endpoint
	e.Color = &newK.Color

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(PathId, Endpoint, Color)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) GetRoute(PathId uint32, Endpoint string, Color uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   PathId,
		Endpoint: Endpoint,
		Color:    Color,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) error {
	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		PathId:   *v.PathId,
		Endpoint: *v.Endpoint,
		Color:    *v.Color,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Color              *uint32                                                                                                                                                                               `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                                                                                                     `path:"@color" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                                                                                               `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                                                                                                     `path:"@endpoint" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                               `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                     `path:"@path-id" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                     `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
		"path-id":  *t.PathId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Color              *uint32                                      `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                            `path:"@color" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Endpoint           *string                                      `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                            `path:"@endpoint" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                       `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                            `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	NeighborAddress  *string           `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation `path:"@neighbor-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6SrtePolicy_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast struct {
	ΛMetadata  []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	LocRib     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib    `path:"loc-rib" module:"openconfig-network-instance"`
	ΛLocRib    []ygot.Annotation                                                                                                             `path:"@loc-rib" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                             `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) IsYANGGoStruct() {
}

// GetOrCreateLocRib retrieves the value of the LocRib field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib {
	if t.LocRib != nil {
		return t.LocRib
	}
	t.LocRib = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib{}
	return t.LocRib
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors{}
	return t.Neighbors
}

// GetLocRib returns the value of the LocRib struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field LocRib is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) GetLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib {
	if t != nil && t.LocRib != nil {
		return t.LocRib
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.LocRib.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                 `path:"@routes" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes{}
	return t.Routes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State{}
	return t.State
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                      `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key struct {
	Prefix string                                                                                                                                                    `path:"prefix"`
	Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union `path:"origin"`
	PathId uint32                                                                                                                                                    `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"origin":  t.Origin,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) NewRoute(Prefix string, Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key{
		Prefix: Prefix,
		Origin: Origin,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route{
		Prefix: &Prefix,
		Origin: Origin,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.Origin = newK.Origin
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) GetOrCreateRoute(Prefix string, Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key{
		Prefix: Prefix,
		Origin: Origin,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, Origin, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) GetRoute(Prefix string, Origin OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key{
		Prefix: Prefix,
		Origin: Origin,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key{
		Prefix: *v.Prefix,
		Origin: v.Origin,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Origin             OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union `path:"origin" module:"openconfig-network-instance"`
	ΛOrigin            []ygot.Annotation                                                                                                                                         `path:"@origin" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                   `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                         `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                   `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                         `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                         `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetOrigin retrieves the value of the leaf Origin from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Origin is set, it can
// safely use t.GetOrigin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Origin == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) GetOrigin() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union {
	if t == nil || t.Origin == nil {
		return nil
	}
	return t.Origin
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {

	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"origin":  t.Origin,
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/origin within the YANG schema.
// Union type can be one of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union interface {
	// Union type can be one of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union ensures that E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union interface.
func (E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union, unknown union type, got: %T, want any of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                                                                                                                                   `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                                                                                                                                         `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                                                                                                                                   `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                                                                                                                                         `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                                                                                                                                   `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                                                                                                                                         `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON                                                                                                              `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                                                                                                                                         `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                                                                                                                                   `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                                                                                                                                         `path:"@last-modified" ygotAnnotation:"true"`
	Origin             OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union `path:"origin" module:"openconfig-network-instance"`
	ΛOrigin            []ygot.Annotation                                                                                                                                         `path:"@origin" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                   `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                         `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                   `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                         `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                                                                                                                                     `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                                                                                                                                         `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetOrigin retrieves the value of the leaf Origin from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Origin is set, it can
// safely use t.GetOrigin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Origin == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetOrigin() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union {
	if t == nil || t.Origin == nil {
		return nil
	}
	return t.Origin
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PathId == nil {
		var v uint32 = 0
		t.PathId = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_State_Origin_Union, unknown union type, got: %T, want any of [E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                    `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                           `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_LocRib_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                 `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) NewNeighbor(NeighborAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor)
	}

	key := NeighborAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor{
		NeighborAddress: &NeighborAddress,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.NeighborAddress = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) GetOrCreateNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor {

	key := NeighborAddress

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(NeighborAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) GetNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := NeighborAddress

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) error {
	if v.NeighborAddress == nil {
		return fmt.Errorf("invalid nil key received for NeighborAddress")
	}

	key := *v.NeighborAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	AdjRibInPost     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost  `path:"adj-rib-in-post" module:"openconfig-network-instance"`
	ΛAdjRibInPost    []ygot.Annotation                                                                                                                                    `path:"@adj-rib-in-post" ygotAnnotation:"true"`
	AdjRibInPre      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre   `path:"adj-rib-in-pre" module:"openconfig-network-instance"`
	ΛAdjRibInPre     []ygot.Annotation                                                                                                                                    `path:"@adj-rib-in-pre" ygotAnnotation:"true"`
	AdjRibOutPost    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost `path:"adj-rib-out-post" module:"openconfig-network-instance"`
	ΛAdjRibOutPost   []ygot.Annotation                                                                                                                                    `path:"@adj-rib-out-post" ygotAnnotation:"true"`
	AdjRibOutPre     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre  `path:"adj-rib-out-pre" module:"openconfig-network-instance"`
	ΛAdjRibOutPre    []ygot.Annotation                                                                                                                                    `path:"@adj-rib-out-pre" ygotAnnotation:"true"`
	NeighborAddress  *string                                                                                                                                              `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation                                                                                                                                    `path:"@neighbor-address" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State         `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateAdjRibInPost retrieves the value of the AdjRibInPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetOrCreateAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost {
	if t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	t.AdjRibInPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost{}
	return t.AdjRibInPost
}

// GetOrCreateAdjRibInPre retrieves the value of the AdjRibInPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetOrCreateAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre {
	if t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	t.AdjRibInPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre{}
	return t.AdjRibInPre
}

// GetOrCreateAdjRibOutPost retrieves the value of the AdjRibOutPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetOrCreateAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost {
	if t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	t.AdjRibOutPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost{}
	return t.AdjRibOutPost
}

// GetOrCreateAdjRibOutPre retrieves the value of the AdjRibOutPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetOrCreateAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre {
	if t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	t.AdjRibOutPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre{}
	return t.AdjRibOutPre
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State{}
	return t.State
}

// GetAdjRibInPost returns the value of the AdjRibInPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibInPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost {
	if t != nil && t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	return nil
}

// GetAdjRibInPre returns the value of the AdjRibInPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibInPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre {
	if t != nil && t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	return nil
}

// GetAdjRibOutPost returns the value of the AdjRibOutPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibOutPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost {
	if t != nil && t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	return nil
}

// GetAdjRibOutPre returns the value of the AdjRibOutPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor. If the receiver or the field AdjRibOutPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre {
	if t != nil && t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjRibInPost.PopulateDefaults()
	t.AdjRibInPre.PopulateDefaults()
	t.AdjRibOutPost.PopulateDefaults()
	t.AdjRibOutPre.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NeighborAddress == nil {
		return nil, fmt.Errorf("nil value for key NeighborAddress")
	}

	return map[string]interface{}{
		"neighbor-address": *t.NeighborAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                          `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                            `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                  `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                            `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                  `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                  `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	BestPath           *bool                                        `path:"best-path" module:"openconfig-network-instance"`
	ΛBestPath          []ygot.Annotation                            `path:"@best-path" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBestPath retrieves the value of the leaf BestPath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BestPath is set, it can
// safely use t.GetBestPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BestPath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetBestPath() bool {
	if t == nil || t.BestPath == nil {
		return false
	}
	return *t.BestPath
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                             `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                    `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                         `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                         `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                      `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                           `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                 `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                 `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                 `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                            `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                   `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                        `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibInPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost struct {
	ΛMetadata []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                           `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                          `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                             `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                   `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                             `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                   `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                   `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                              `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                     `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                          `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPost_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                                                          `path:"@routes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes{}
	return t.Routes
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Route     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route `path:"route" module:"openconfig-network-instance"`
	ΛRoute    []ygot.Annotation                                                                                                                                                                                                                                                                                                                        `path:"@route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key represents the key for list Route of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key struct {
	Prefix string `path:"prefix"`
	PathId uint32 `path:"path-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":  t.Prefix,
		"path-id": t.PathId,
	}, nil
}

// NewRoute creates a new entry in the Route list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) NewRoute(Prefix string, PathId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route{
		Prefix: &Prefix,
		PathId: &PathId,
	}

	return t.Route[key], nil
}

// RenameRoute renames an entry in the list Route within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) RenameRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key) error {
	if _, ok := t.Route[newK]; ok {
		return fmt.Errorf("key %v already exists in Route", newK)
	}

	e, ok := t.Route[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Route", oldK)
	}
	e.Prefix = &newK.Prefix
	e.PathId = &newK.PathId

	t.Route[newK] = e
	delete(t.Route, oldK)
	return nil
}

// GetOrCreateRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}
	return t.Route
}

// GetOrCreateRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) GetOrCreateRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if v, ok := t.Route[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRoute(Prefix, PathId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRoute got unexpected error: %v", err))
	}
	return v
}

// GetRoute retrieves the value with the specified key from
// the Route map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) GetRoute(Prefix string, PathId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: Prefix,
		PathId: PathId,
	}

	if lm, ok := t.Route[key]; ok {
		return lm
	}
	return nil
}

// AppendRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct to the
// list Route of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) AppendRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.PathId == nil {
		return fmt.Errorf("invalid nil key for PathId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key{
		Prefix: *v.Prefix,
		PathId: *v.PathId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route)
	}

	if _, ok := t.Route[key]; ok {
		return fmt.Errorf("duplicate key for list Route %v", key)
	}

	t.Route[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Route {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	PathId             *uint32                                                                                                                                                                            `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                                                                                                                                                                  `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                                                                                                                                                            `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                                                                                                                                                                  `path:"@prefix" ygotAnnotation:"true"`
	State              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State             `path:"state" module:"openconfig-network-instance"`
	ΛState             []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes []ygot.Annotation                                                                                                                                                                  `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathId == nil {
		return nil, fmt.Errorf("nil value for key PathId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"path-id": *t.PathId,
		"prefix":  *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State struct {
	ΛMetadata          []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AttrIndex          *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex         []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	CommunityIndex     *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex    []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex  *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason      E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason     []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	LastModified       *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified      []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	PathId             *uint32                                      `path:"path-id" module:"openconfig-network-instance"`
	ΛPathId            []ygot.Annotation                            `path:"@path-id" ygotAnnotation:"true"`
	Prefix             *string                                      `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix            []ygot.Annotation                            `path:"@prefix" ygotAnnotation:"true"`
	ValidRoute         *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute        []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) IsYANGGoStruct() {
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetPathId retrieves the value of the leaf PathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PathId is set, it can
// safely use t.GetPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetPathId() uint32 {
	if t == nil || t.PathId == nil {
		return 0
	}
	return *t.PathId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                             `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                    `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                         `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_AdjRibOutPre_Routes_Route_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	NeighborAddress  *string           `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation `path:"@neighbor-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_Ipv6Unicast_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn struct {
	ΛMetadata  []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	LocRib     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib    `path:"loc-rib" module:"openconfig-network-instance"`
	ΛLocRib    []ygot.Annotation                                                                                                           `path:"@loc-rib" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                           `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) IsYANGGoStruct() {
}

// GetOrCreateLocRib retrieves the value of the LocRib field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreateLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib {
	if t.LocRib != nil {
		return t.LocRib
	}
	t.LocRib = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib{}
	return t.LocRib
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors{}
	return t.Neighbors
}

// GetLocRib returns the value of the LocRib struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field LocRib is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) GetLocRib() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib {
	if t != nil && t.LocRib != nil {
		return t.LocRib
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.LocRib.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Routes    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes `path:"routes" module:"openconfig-network-instance"`
	ΛRoutes   []ygot.Annotation                                                                                                               `path:"@routes" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) IsYANGGoStruct() {
}

// GetOrCreateRoutes retrieves the value of the Routes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) GetOrCreateRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes {
	if t.Routes != nil {
		return t.Routes
	}
	t.Routes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes{}
	return t.Routes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State{}
	return t.State
}

// GetRoutes returns the value of the Routes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib. If the receiver or the field Routes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) GetRoutes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes {
	if t != nil && t.Routes != nil {
		return t.Routes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Routes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	RouteDistinguisher  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher `path:"route-distinguisher" module:"openconfig-network-instance"`
	ΛRouteDistinguisher []ygot.Annotation                                                                                                                                             `path:"@route-distinguisher" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) IsYANGGoStruct() {
}

// NewRouteDistinguisher creates a new entry in the RouteDistinguisher list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) NewRouteDistinguisher(RouteDistinguisher string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RouteDistinguisher == nil {
		t.RouteDistinguisher = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher)
	}

	key := RouteDistinguisher

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RouteDistinguisher[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RouteDistinguisher", key)
	}

	t.RouteDistinguisher[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher{
		RouteDistinguisher: &RouteDistinguisher,
	}

	return t.RouteDistinguisher[key], nil
}

// RenameRouteDistinguisher renames an entry in the list RouteDistinguisher within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) RenameRouteDistinguisher(oldK, newK string) error {
	if _, ok := t.RouteDistinguisher[newK]; ok {
		return fmt.Errorf("key %v already exists in RouteDistinguisher", newK)
	}

	e, ok := t.RouteDistinguisher[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in RouteDistinguisher", oldK)
	}
	e.RouteDistinguisher = &newK

	t.RouteDistinguisher[newK] = e
	delete(t.RouteDistinguisher, oldK)
	return nil
}

// GetOrCreateRouteDistinguisherMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) GetOrCreateRouteDistinguisherMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher {
	if t.RouteDistinguisher == nil {
		t.RouteDistinguisher = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher)
	}
	return t.RouteDistinguisher
}

// GetOrCreateRouteDistinguisher retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) GetOrCreateRouteDistinguisher(RouteDistinguisher string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher {

	key := RouteDistinguisher

	if v, ok := t.RouteDistinguisher[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRouteDistinguisher(RouteDistinguisher)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRouteDistinguisher got unexpected error: %v", err))
	}
	return v
}

// GetRouteDistinguisher retrieves the value with the specified key from
// the RouteDistinguisher map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) GetRouteDistinguisher(RouteDistinguisher string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher {

	if t == nil {
		return nil
	}

	key := RouteDistinguisher

	if lm, ok := t.RouteDistinguisher[key]; ok {
		return lm
	}
	return nil
}

// AppendRouteDistinguisher appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher struct to the
// list RouteDistinguisher of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) AppendRouteDistinguisher(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) error {
	if v.RouteDistinguisher == nil {
		return fmt.Errorf("invalid nil key received for RouteDistinguisher")
	}

	key := *v.RouteDistinguisher

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RouteDistinguisher == nil {
		t.RouteDistinguisher = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher)
	}

	if _, ok := t.RouteDistinguisher[key]; ok {
		return fmt.Errorf("duplicate key for list RouteDistinguisher %v", key)
	}

	t.RouteDistinguisher[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.RouteDistinguisher {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher struct {
	ΛMetadata                               []ygot.Annotation                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	RouteDistinguisher                      *string                                                                                                                                                                                   `path:"route-distinguisher" module:"openconfig-network-instance"`
	ΛRouteDistinguisher                     []ygot.Annotation                                                                                                                                                                         `path:"@route-distinguisher" ygotAnnotation:"true"`
	State                                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State                                  `path:"state" module:"openconfig-network-instance"`
	ΛState                                  []ygot.Annotation                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	TypeFiveIpPrefix                        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix                       `path:"type-five-ip-prefix" module:"openconfig-network-instance"`
	ΛTypeFiveIpPrefix                       []ygot.Annotation                                                                                                                                                                         `path:"@type-five-ip-prefix" ygotAnnotation:"true"`
	TypeFourEthernetSegment                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment                `path:"type-four-ethernet-segment" module:"openconfig-network-instance"`
	ΛTypeFourEthernetSegment                []ygot.Annotation                                                                                                                                                                         `path:"@type-four-ethernet-segment" ygotAnnotation:"true"`
	TypeOneEthernetAutoDiscovery            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery           `path:"type-one-ethernet-auto-discovery" module:"openconfig-network-instance"`
	ΛTypeOneEthernetAutoDiscovery           []ygot.Annotation                                                                                                                                                                         `path:"@type-one-ethernet-auto-discovery" ygotAnnotation:"true"`
	TypeThreeInclusiveMulticastEthernetTag  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag `path:"type-three-inclusive-multicast-ethernet-tag" module:"openconfig-network-instance"`
	ΛTypeThreeInclusiveMulticastEthernetTag []ygot.Annotation                                                                                                                                                                         `path:"@type-three-inclusive-multicast-ethernet-tag" ygotAnnotation:"true"`
	TypeTwoMacIpAdvertisement               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement              `path:"type-two-mac-ip-advertisement" module:"openconfig-network-instance"`
	ΛTypeTwoMacIpAdvertisement              []ygot.Annotation                                                                                                                                                                         `path:"@type-two-mac-ip-advertisement" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State{}
	return t.State
}

// GetOrCreateTypeFiveIpPrefix retrieves the value of the TypeFiveIpPrefix field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetOrCreateTypeFiveIpPrefix() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix {
	if t.TypeFiveIpPrefix != nil {
		return t.TypeFiveIpPrefix
	}
	t.TypeFiveIpPrefix = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix{}
	return t.TypeFiveIpPrefix
}

// GetOrCreateTypeFourEthernetSegment retrieves the value of the TypeFourEthernetSegment field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetOrCreateTypeFourEthernetSegment() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment {
	if t.TypeFourEthernetSegment != nil {
		return t.TypeFourEthernetSegment
	}
	t.TypeFourEthernetSegment = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment{}
	return t.TypeFourEthernetSegment
}

// GetOrCreateTypeOneEthernetAutoDiscovery retrieves the value of the TypeOneEthernetAutoDiscovery field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetOrCreateTypeOneEthernetAutoDiscovery() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery {
	if t.TypeOneEthernetAutoDiscovery != nil {
		return t.TypeOneEthernetAutoDiscovery
	}
	t.TypeOneEthernetAutoDiscovery = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery{}
	return t.TypeOneEthernetAutoDiscovery
}

// GetOrCreateTypeThreeInclusiveMulticastEthernetTag retrieves the value of the TypeThreeInclusiveMulticastEthernetTag field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetOrCreateTypeThreeInclusiveMulticastEthernetTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag {
	if t.TypeThreeInclusiveMulticastEthernetTag != nil {
		return t.TypeThreeInclusiveMulticastEthernetTag
	}
	t.TypeThreeInclusiveMulticastEthernetTag = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag{}
	return t.TypeThreeInclusiveMulticastEthernetTag
}

// GetOrCreateTypeTwoMacIpAdvertisement retrieves the value of the TypeTwoMacIpAdvertisement field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetOrCreateTypeTwoMacIpAdvertisement() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement {
	if t.TypeTwoMacIpAdvertisement != nil {
		return t.TypeTwoMacIpAdvertisement
	}
	t.TypeTwoMacIpAdvertisement = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement{}
	return t.TypeTwoMacIpAdvertisement
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTypeFiveIpPrefix returns the value of the TypeFiveIpPrefix struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher. If the receiver or the field TypeFiveIpPrefix is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetTypeFiveIpPrefix() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix {
	if t != nil && t.TypeFiveIpPrefix != nil {
		return t.TypeFiveIpPrefix
	}
	return nil
}

// GetTypeFourEthernetSegment returns the value of the TypeFourEthernetSegment struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher. If the receiver or the field TypeFourEthernetSegment is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetTypeFourEthernetSegment() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment {
	if t != nil && t.TypeFourEthernetSegment != nil {
		return t.TypeFourEthernetSegment
	}
	return nil
}

// GetTypeOneEthernetAutoDiscovery returns the value of the TypeOneEthernetAutoDiscovery struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher. If the receiver or the field TypeOneEthernetAutoDiscovery is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetTypeOneEthernetAutoDiscovery() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery {
	if t != nil && t.TypeOneEthernetAutoDiscovery != nil {
		return t.TypeOneEthernetAutoDiscovery
	}
	return nil
}

// GetTypeThreeInclusiveMulticastEthernetTag returns the value of the TypeThreeInclusiveMulticastEthernetTag struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher. If the receiver or the field TypeThreeInclusiveMulticastEthernetTag is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetTypeThreeInclusiveMulticastEthernetTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag {
	if t != nil && t.TypeThreeInclusiveMulticastEthernetTag != nil {
		return t.TypeThreeInclusiveMulticastEthernetTag
	}
	return nil
}

// GetTypeTwoMacIpAdvertisement returns the value of the TypeTwoMacIpAdvertisement struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher. If the receiver or the field TypeTwoMacIpAdvertisement is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetTypeTwoMacIpAdvertisement() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement {
	if t != nil && t.TypeTwoMacIpAdvertisement != nil {
		return t.TypeTwoMacIpAdvertisement
	}
	return nil
}

// GetRouteDistinguisher retrieves the value of the leaf RouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteDistinguisher is set, it can
// safely use t.GetRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) GetRouteDistinguisher() string {
	if t == nil || t.RouteDistinguisher == nil {
		return ""
	}
	return *t.RouteDistinguisher
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.TypeFiveIpPrefix.PopulateDefaults()
	t.TypeFourEthernetSegment.PopulateDefaults()
	t.TypeOneEthernetAutoDiscovery.PopulateDefaults()
	t.TypeThreeInclusiveMulticastEthernetTag.PopulateDefaults()
	t.TypeTwoMacIpAdvertisement.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RouteDistinguisher == nil {
		return nil, fmt.Errorf("nil value for key RouteDistinguisher")
	}

	return map[string]interface{}{
		"route-distinguisher": *t.RouteDistinguisher,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RouteDistinguisher  *string           `path:"route-distinguisher" module:"openconfig-network-instance"`
	ΛRouteDistinguisher []ygot.Annotation `path:"@route-distinguisher" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State) IsYANGGoStruct() {
}

// GetRouteDistinguisher retrieves the value of the leaf RouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteDistinguisher is set, it can
// safely use t.GetRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State) GetRouteDistinguisher() string {
	if t == nil || t.RouteDistinguisher == nil {
		return ""
	}
	return *t.RouteDistinguisher
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	TypeFiveRoute  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute `path:"type-five-route" module:"openconfig-network-instance"`
	ΛTypeFiveRoute []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                          `path:"@type-five-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key represents the key for list TypeFiveRoute of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key struct {
	EthernetTag    uint32 `path:"ethernet-tag"`
	IpPrefixLength string `path:"ip-prefix-length"`
	IpPrefix       string `path:"ip-prefix"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"ethernet-tag":     t.EthernetTag,
		"ip-prefix-length": t.IpPrefixLength,
		"ip-prefix":        t.IpPrefix,
	}, nil
}

// NewTypeFiveRoute creates a new entry in the TypeFiveRoute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) NewTypeFiveRoute(EthernetTag uint32, IpPrefixLength string, IpPrefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeFiveRoute == nil {
		t.TypeFiveRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key{
		EthernetTag:    EthernetTag,
		IpPrefixLength: IpPrefixLength,
		IpPrefix:       IpPrefix,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeFiveRoute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeFiveRoute", key)
	}

	t.TypeFiveRoute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute{
		EthernetTag:    &EthernetTag,
		IpPrefixLength: &IpPrefixLength,
		IpPrefix:       &IpPrefix,
	}

	return t.TypeFiveRoute[key], nil
}

// RenameTypeFiveRoute renames an entry in the list TypeFiveRoute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) RenameTypeFiveRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key) error {
	if _, ok := t.TypeFiveRoute[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeFiveRoute", newK)
	}

	e, ok := t.TypeFiveRoute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeFiveRoute", oldK)
	}
	e.EthernetTag = &newK.EthernetTag
	e.IpPrefixLength = &newK.IpPrefixLength
	e.IpPrefix = &newK.IpPrefix

	t.TypeFiveRoute[newK] = e
	delete(t.TypeFiveRoute, oldK)
	return nil
}

// GetOrCreateTypeFiveRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) GetOrCreateTypeFiveRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute {
	if t.TypeFiveRoute == nil {
		t.TypeFiveRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute)
	}
	return t.TypeFiveRoute
}

// GetOrCreateTypeFiveRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) GetOrCreateTypeFiveRoute(EthernetTag uint32, IpPrefixLength string, IpPrefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key{
		EthernetTag:    EthernetTag,
		IpPrefixLength: IpPrefixLength,
		IpPrefix:       IpPrefix,
	}

	if v, ok := t.TypeFiveRoute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeFiveRoute(EthernetTag, IpPrefixLength, IpPrefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeFiveRoute got unexpected error: %v", err))
	}
	return v
}

// GetTypeFiveRoute retrieves the value with the specified key from
// the TypeFiveRoute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) GetTypeFiveRoute(EthernetTag uint32, IpPrefixLength string, IpPrefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key{
		EthernetTag:    EthernetTag,
		IpPrefixLength: IpPrefixLength,
		IpPrefix:       IpPrefix,
	}

	if lm, ok := t.TypeFiveRoute[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeFiveRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute struct to the
// list TypeFiveRoute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) AppendTypeFiveRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) error {
	if v.EthernetTag == nil {
		return fmt.Errorf("invalid nil key for EthernetTag")
	}

	if v.IpPrefixLength == nil {
		return fmt.Errorf("invalid nil key for IpPrefixLength")
	}

	if v.IpPrefix == nil {
		return fmt.Errorf("invalid nil key for IpPrefix")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key{
		EthernetTag:    *v.EthernetTag,
		IpPrefixLength: *v.IpPrefixLength,
		IpPrefix:       *v.IpPrefix,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeFiveRoute == nil {
		t.TypeFiveRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute)
	}

	if _, ok := t.TypeFiveRoute[key]; ok {
		return fmt.Errorf("duplicate key for list TypeFiveRoute %v", key)
	}

	t.TypeFiveRoute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeFiveRoute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	EthernetTag     *uint32                                                                                                                                                                                 `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag    []ygot.Annotation                                                                                                                                                                       `path:"@ethernet-tag" ygotAnnotation:"true"`
	IpPrefix        *string                                                                                                                                                                                 `path:"ip-prefix" module:"openconfig-network-instance"`
	ΛIpPrefix       []ygot.Annotation                                                                                                                                                                       `path:"@ip-prefix" ygotAnnotation:"true"`
	IpPrefixLength  *string                                                                                                                                                                                 `path:"ip-prefix-length" module:"openconfig-network-instance"`
	ΛIpPrefixLength []ygot.Annotation                                                                                                                                                                       `path:"@ip-prefix-length" ygotAnnotation:"true"`
	Paths           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths `path:"paths" module:"openconfig-network-instance"`
	ΛPaths          []ygot.Annotation                                                                                                                                                                       `path:"@paths" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) IsYANGGoStruct() {
}

// GetOrCreatePaths retrieves the value of the Paths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) GetOrCreatePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths {
	if t.Paths != nil {
		return t.Paths
	}
	t.Paths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths{}
	return t.Paths
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State{}
	return t.State
}

// GetPaths returns the value of the Paths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute. If the receiver or the field Paths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) GetPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths {
	if t != nil && t.Paths != nil {
		return t.Paths
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetIpPrefixLength retrieves the value of the leaf IpPrefixLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefixLength is set, it can
// safely use t.GetIpPrefixLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefixLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) GetIpPrefixLength() string {
	if t == nil || t.IpPrefixLength == nil {
		return ""
	}
	return *t.IpPrefixLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Paths.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.EthernetTag == nil {
		return nil, fmt.Errorf("nil value for key EthernetTag")
	}

	if t.IpPrefix == nil {
		return nil, fmt.Errorf("nil value for key IpPrefix")
	}

	if t.IpPrefixLength == nil {
		return nil, fmt.Errorf("nil value for key IpPrefixLength")
	}

	return map[string]interface{}{
		"ethernet-tag":     *t.EthernetTag,
		"ip-prefix":        *t.IpPrefix,
		"ip-prefix-length": *t.IpPrefixLength,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Path      map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path `path:"path" module:"openconfig-network-instance"`
	ΛPath     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                `path:"@path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key represents the key for list Path of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key struct {
	PeerIp                   string                             `path:"peer-ip"`
	PeerPathId               uint32                             `path:"peer-path-id"`
	SourceRouteDistinguisher string                             `path:"source-route-distinguisher"`
	SourceAddressFamily      E_OpenconfigBgpTypes_AFI_SAFI_TYPE `path:"source-address-family"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"peer-ip":                    t.PeerIp,
		"peer-path-id":               t.PeerPathId,
		"source-route-distinguisher": t.SourceRouteDistinguisher,
		"source-address-family":      t.SourceAddressFamily,
	}, nil
}

// NewPath creates a new entry in the Path list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) NewPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path{
		PeerIp:                   &PeerIp,
		PeerPathId:               &PeerPathId,
		SourceRouteDistinguisher: &SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	return t.Path[key], nil
}

// RenamePath renames an entry in the list Path within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) RenamePath(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key) error {
	if _, ok := t.Path[newK]; ok {
		return fmt.Errorf("key %v already exists in Path", newK)
	}

	e, ok := t.Path[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Path", oldK)
	}
	e.PeerIp = &newK.PeerIp
	e.PeerPathId = &newK.PeerPathId
	e.SourceRouteDistinguisher = &newK.SourceRouteDistinguisher
	e.SourceAddressFamily = newK.SourceAddressFamily

	t.Path[newK] = e
	delete(t.Path, oldK)
	return nil
}

// GetOrCreatePathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) GetOrCreatePathMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path {
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path)
	}
	return t.Path
}

// GetOrCreatePath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) GetOrCreatePath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if v, ok := t.Path[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPath(PeerIp, PeerPathId, SourceRouteDistinguisher, SourceAddressFamily)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePath got unexpected error: %v", err))
	}
	return v
}

// GetPath retrieves the value with the specified key from
// the Path map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) GetPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if lm, ok := t.Path[key]; ok {
		return lm
	}
	return nil
}

// AppendPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path struct to the
// list Path of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) AppendPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) error {
	if v.PeerIp == nil {
		return fmt.Errorf("invalid nil key for PeerIp")
	}

	if v.PeerPathId == nil {
		return fmt.Errorf("invalid nil key for PeerPathId")
	}

	if v.SourceRouteDistinguisher == nil {
		return fmt.Errorf("invalid nil key for SourceRouteDistinguisher")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key{
		PeerIp:                   *v.PeerIp,
		PeerPathId:               *v.PeerPathId,
		SourceRouteDistinguisher: *v.SourceRouteDistinguisher,
		SourceAddressFamily:      v.SourceAddressFamily,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path)
	}

	if _, ok := t.Path[key]; ok {
		return fmt.Errorf("duplicate key for list Path %v", key)
	}

	t.Path[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Path {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path struct {
	ΛMetadata                 []ygot.Annotation                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	PeerIp                    *string                                                                                                                                                                                                        `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                                                                                                                                                                                              `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                                                                                                                                                                                        `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                                                                                                                                                                                              `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                                                                                             `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                                                                                                                                                                                              `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                                                                                                                                                                                        `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                                                                                                                                                                                              `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	State                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State             `path:"state" module:"openconfig-network-instance"`
	ΛState                    []ygot.Annotation                                                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes        []ygot.Annotation                                                                                                                                                                                              `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PeerIp == nil {
		return nil, fmt.Errorf("nil value for key PeerIp")
	}

	if t.PeerPathId == nil {
		return nil, fmt.Errorf("nil value for key PeerPathId")
	}

	if t.SourceRouteDistinguisher == nil {
		return nil, fmt.Errorf("nil value for key SourceRouteDistinguisher")
	}

	return map[string]interface{}{
		"peer-ip":                    *t.PeerIp,
		"peer-path-id":               *t.PeerPathId,
		"source-address-family":      t.SourceAddressFamily,
		"source-route-distinguisher": *t.SourceRouteDistinguisher,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State struct {
	ΛMetadata                 []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AdvertisedToPeer          []string                                     `path:"advertised-to-peer" module:"openconfig-network-instance"`
	ΛAdvertisedToPeer         []ygot.Annotation                            `path:"@advertised-to-peer" ygotAnnotation:"true"`
	AttrIndex                 *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex                []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Backup                    *bool                                        `path:"backup" module:"openconfig-network-instance"`
	ΛBackup                   []ygot.Annotation                            `path:"@backup" ygotAnnotation:"true"`
	Bestpath                  *bool                                        `path:"bestpath" module:"openconfig-network-instance"`
	ΛBestpath                 []ygot.Annotation                            `path:"@bestpath" ygotAnnotation:"true"`
	CommunityIndex            *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex           []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Esi                       *string                                      `path:"esi" module:"openconfig-network-instance"`
	ΛEsi                      []ygot.Annotation                            `path:"@esi" ygotAnnotation:"true"`
	ExtCommunityIndex         *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex        []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	GatewayIpAddress          *string                                      `path:"gateway-ip-address" module:"openconfig-network-instance"`
	ΛGatewayIpAddress         []ygot.Annotation                            `path:"@gateway-ip-address" ygotAnnotation:"true"`
	InvalidReason             E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason            []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	Label                     *string                                      `path:"label" module:"openconfig-network-instance"`
	ΛLabel                    []ygot.Annotation                            `path:"@label" ygotAnnotation:"true"`
	Label2                    *string                                      `path:"label2" module:"openconfig-network-instance"`
	ΛLabel2                   []ygot.Annotation                            `path:"@label2" ygotAnnotation:"true"`
	LastModified              *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified             []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	Multipath                 *bool                                        `path:"multipath" module:"openconfig-network-instance"`
	ΛMultipath                []ygot.Annotation                            `path:"@multipath" ygotAnnotation:"true"`
	PeerIp                    *string                                      `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                            `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                      `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                            `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE           `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                            `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                      `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                            `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	ValidRoute                *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute               []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) IsYANGGoStruct() {
}

// GetAdvertisedToPeer retrieves the value of the leaf AdvertisedToPeer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertisedToPeer is set, it can
// safely use t.GetAdvertisedToPeer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertisedToPeer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetAdvertisedToPeer() []string {
	if t == nil || t.AdvertisedToPeer == nil {
		return nil
	}
	return t.AdvertisedToPeer
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBackup retrieves the value of the leaf Backup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Backup is set, it can
// safely use t.GetBackup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Backup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetBackup() bool {
	if t == nil || t.Backup == nil {
		return false
	}
	return *t.Backup
}

// GetBestpath retrieves the value of the leaf Bestpath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bestpath is set, it can
// safely use t.GetBestpath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bestpath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetBestpath() bool {
	if t == nil || t.Bestpath == nil {
		return false
	}
	return *t.Bestpath
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetGatewayIpAddress retrieves the value of the leaf GatewayIpAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if GatewayIpAddress is set, it can
// safely use t.GetGatewayIpAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.GatewayIpAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetGatewayIpAddress() string {
	if t == nil || t.GatewayIpAddress == nil {
		return ""
	}
	return *t.GatewayIpAddress
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetLabel() string {
	if t == nil || t.Label == nil {
		return ""
	}
	return *t.Label
}

// GetLabel2 retrieves the value of the leaf Label2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label2 is set, it can
// safely use t.GetLabel2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetLabel2() string {
	if t == nil || t.Label2 == nil {
		return ""
	}
	return *t.Label2
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetMultipath retrieves the value of the leaf Multipath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Multipath is set, it can
// safely use t.GetMultipath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Multipath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetMultipath() bool {
	if t == nil || t.Multipath == nil {
		return false
	}
	return *t.Multipath
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                                         `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                                                `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                                                     `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EthernetTag     *uint32           `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag    []ygot.Annotation `path:"@ethernet-tag" ygotAnnotation:"true"`
	IpPrefix        *string           `path:"ip-prefix" module:"openconfig-network-instance"`
	ΛIpPrefix       []ygot.Annotation `path:"@ip-prefix" ygotAnnotation:"true"`
	IpPrefixLength  *string           `path:"ip-prefix-length" module:"openconfig-network-instance"`
	ΛIpPrefixLength []ygot.Annotation `path:"@ip-prefix-length" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) IsYANGGoStruct() {
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetIpPrefixLength retrieves the value of the leaf IpPrefixLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefixLength is set, it can
// safely use t.GetIpPrefixLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefixLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) GetIpPrefixLength() string {
	if t == nil || t.IpPrefixLength == nil {
		return ""
	}
	return *t.IpPrefixLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFiveIpPrefix_TypeFiveRoute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	TypeFourRoute  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute `path:"type-four-route" module:"openconfig-network-instance"`
	ΛTypeFourRoute []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                        `path:"@type-four-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key represents the key for list TypeFourRoute of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key struct {
	Esi                 string `path:"esi"`
	OriginatingRouterIp string `path:"originating-router-ip"`
	OriginatorIpLength  uint32 `path:"originator-ip-length"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"esi":                   t.Esi,
		"originating-router-ip": t.OriginatingRouterIp,
		"originator-ip-length":  t.OriginatorIpLength,
	}, nil
}

// NewTypeFourRoute creates a new entry in the TypeFourRoute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) NewTypeFourRoute(Esi string, OriginatingRouterIp string, OriginatorIpLength uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeFourRoute == nil {
		t.TypeFourRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key{
		Esi:                 Esi,
		OriginatingRouterIp: OriginatingRouterIp,
		OriginatorIpLength:  OriginatorIpLength,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeFourRoute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeFourRoute", key)
	}

	t.TypeFourRoute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute{
		Esi:                 &Esi,
		OriginatingRouterIp: &OriginatingRouterIp,
		OriginatorIpLength:  &OriginatorIpLength,
	}

	return t.TypeFourRoute[key], nil
}

// RenameTypeFourRoute renames an entry in the list TypeFourRoute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) RenameTypeFourRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key) error {
	if _, ok := t.TypeFourRoute[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeFourRoute", newK)
	}

	e, ok := t.TypeFourRoute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeFourRoute", oldK)
	}
	e.Esi = &newK.Esi
	e.OriginatingRouterIp = &newK.OriginatingRouterIp
	e.OriginatorIpLength = &newK.OriginatorIpLength

	t.TypeFourRoute[newK] = e
	delete(t.TypeFourRoute, oldK)
	return nil
}

// GetOrCreateTypeFourRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) GetOrCreateTypeFourRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute {
	if t.TypeFourRoute == nil {
		t.TypeFourRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute)
	}
	return t.TypeFourRoute
}

// GetOrCreateTypeFourRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) GetOrCreateTypeFourRoute(Esi string, OriginatingRouterIp string, OriginatorIpLength uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key{
		Esi:                 Esi,
		OriginatingRouterIp: OriginatingRouterIp,
		OriginatorIpLength:  OriginatorIpLength,
	}

	if v, ok := t.TypeFourRoute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeFourRoute(Esi, OriginatingRouterIp, OriginatorIpLength)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeFourRoute got unexpected error: %v", err))
	}
	return v
}

// GetTypeFourRoute retrieves the value with the specified key from
// the TypeFourRoute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) GetTypeFourRoute(Esi string, OriginatingRouterIp string, OriginatorIpLength uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key{
		Esi:                 Esi,
		OriginatingRouterIp: OriginatingRouterIp,
		OriginatorIpLength:  OriginatorIpLength,
	}

	if lm, ok := t.TypeFourRoute[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeFourRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute struct to the
// list TypeFourRoute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) AppendTypeFourRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) error {
	if v.Esi == nil {
		return fmt.Errorf("invalid nil key for Esi")
	}

	if v.OriginatingRouterIp == nil {
		return fmt.Errorf("invalid nil key for OriginatingRouterIp")
	}

	if v.OriginatorIpLength == nil {
		return fmt.Errorf("invalid nil key for OriginatorIpLength")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key{
		Esi:                 *v.Esi,
		OriginatingRouterIp: *v.OriginatingRouterIp,
		OriginatorIpLength:  *v.OriginatorIpLength,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeFourRoute == nil {
		t.TypeFourRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute)
	}

	if _, ok := t.TypeFourRoute[key]; ok {
		return fmt.Errorf("duplicate key for list TypeFourRoute %v", key)
	}

	t.TypeFourRoute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeFourRoute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Esi                  *string                                                                                                                                                                                        `path:"esi" module:"openconfig-network-instance"`
	ΛEsi                 []ygot.Annotation                                                                                                                                                                              `path:"@esi" ygotAnnotation:"true"`
	OriginatingRouterIp  *string                                                                                                                                                                                        `path:"originating-router-ip" module:"openconfig-network-instance"`
	ΛOriginatingRouterIp []ygot.Annotation                                                                                                                                                                              `path:"@originating-router-ip" ygotAnnotation:"true"`
	OriginatorIpLength   *uint32                                                                                                                                                                                        `path:"originator-ip-length" module:"openconfig-network-instance"`
	ΛOriginatorIpLength  []ygot.Annotation                                                                                                                                                                              `path:"@originator-ip-length" ygotAnnotation:"true"`
	Paths                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths `path:"paths" module:"openconfig-network-instance"`
	ΛPaths               []ygot.Annotation                                                                                                                                                                              `path:"@paths" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) IsYANGGoStruct() {
}

// GetOrCreatePaths retrieves the value of the Paths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) GetOrCreatePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths {
	if t.Paths != nil {
		return t.Paths
	}
	t.Paths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths{}
	return t.Paths
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State{}
	return t.State
}

// GetPaths returns the value of the Paths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute. If the receiver or the field Paths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) GetPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths {
	if t != nil && t.Paths != nil {
		return t.Paths
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetOriginatingRouterIp retrieves the value of the leaf OriginatingRouterIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatingRouterIp is set, it can
// safely use t.GetOriginatingRouterIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatingRouterIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) GetOriginatingRouterIp() string {
	if t == nil || t.OriginatingRouterIp == nil {
		return ""
	}
	return *t.OriginatingRouterIp
}

// GetOriginatorIpLength retrieves the value of the leaf OriginatorIpLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorIpLength is set, it can
// safely use t.GetOriginatorIpLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorIpLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) GetOriginatorIpLength() uint32 {
	if t == nil || t.OriginatorIpLength == nil {
		return 0
	}
	return *t.OriginatorIpLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Paths.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Esi == nil {
		return nil, fmt.Errorf("nil value for key Esi")
	}

	if t.OriginatingRouterIp == nil {
		return nil, fmt.Errorf("nil value for key OriginatingRouterIp")
	}

	if t.OriginatorIpLength == nil {
		return nil, fmt.Errorf("nil value for key OriginatorIpLength")
	}

	return map[string]interface{}{
		"esi":                   *t.Esi,
		"originating-router-ip": *t.OriginatingRouterIp,
		"originator-ip-length":  *t.OriginatorIpLength,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Path      map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path `path:"path" module:"openconfig-network-instance"`
	ΛPath     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                              `path:"@path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key represents the key for list Path of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key struct {
	PeerIp                   string                             `path:"peer-ip"`
	PeerPathId               uint32                             `path:"peer-path-id"`
	SourceRouteDistinguisher string                             `path:"source-route-distinguisher"`
	SourceAddressFamily      E_OpenconfigBgpTypes_AFI_SAFI_TYPE `path:"source-address-family"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"peer-ip":                    t.PeerIp,
		"peer-path-id":               t.PeerPathId,
		"source-route-distinguisher": t.SourceRouteDistinguisher,
		"source-address-family":      t.SourceAddressFamily,
	}, nil
}

// NewPath creates a new entry in the Path list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) NewPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path{
		PeerIp:                   &PeerIp,
		PeerPathId:               &PeerPathId,
		SourceRouteDistinguisher: &SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	return t.Path[key], nil
}

// RenamePath renames an entry in the list Path within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) RenamePath(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key) error {
	if _, ok := t.Path[newK]; ok {
		return fmt.Errorf("key %v already exists in Path", newK)
	}

	e, ok := t.Path[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Path", oldK)
	}
	e.PeerIp = &newK.PeerIp
	e.PeerPathId = &newK.PeerPathId
	e.SourceRouteDistinguisher = &newK.SourceRouteDistinguisher
	e.SourceAddressFamily = newK.SourceAddressFamily

	t.Path[newK] = e
	delete(t.Path, oldK)
	return nil
}

// GetOrCreatePathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) GetOrCreatePathMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path {
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path)
	}
	return t.Path
}

// GetOrCreatePath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) GetOrCreatePath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if v, ok := t.Path[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPath(PeerIp, PeerPathId, SourceRouteDistinguisher, SourceAddressFamily)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePath got unexpected error: %v", err))
	}
	return v
}

// GetPath retrieves the value with the specified key from
// the Path map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) GetPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if lm, ok := t.Path[key]; ok {
		return lm
	}
	return nil
}

// AppendPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path struct to the
// list Path of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) AppendPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) error {
	if v.PeerIp == nil {
		return fmt.Errorf("invalid nil key for PeerIp")
	}

	if v.PeerPathId == nil {
		return fmt.Errorf("invalid nil key for PeerPathId")
	}

	if v.SourceRouteDistinguisher == nil {
		return fmt.Errorf("invalid nil key for SourceRouteDistinguisher")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key{
		PeerIp:                   *v.PeerIp,
		PeerPathId:               *v.PeerPathId,
		SourceRouteDistinguisher: *v.SourceRouteDistinguisher,
		SourceAddressFamily:      v.SourceAddressFamily,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path)
	}

	if _, ok := t.Path[key]; ok {
		return fmt.Errorf("duplicate key for list Path %v", key)
	}

	t.Path[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Path {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path struct {
	ΛMetadata                 []ygot.Annotation                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	PeerIp                    *string                                                                                                                                                                                                               `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                                                                                                                                                                                                     `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                                                                                                                                                                                               `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                                                                                                                                                                                                     `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                                                                                                    `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                                                                                                                                                                                                     `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                                                                                                                                                                                               `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                                                                                                                                                                                                     `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	State                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State             `path:"state" module:"openconfig-network-instance"`
	ΛState                    []ygot.Annotation                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes        []ygot.Annotation                                                                                                                                                                                                     `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PeerIp == nil {
		return nil, fmt.Errorf("nil value for key PeerIp")
	}

	if t.PeerPathId == nil {
		return nil, fmt.Errorf("nil value for key PeerPathId")
	}

	if t.SourceRouteDistinguisher == nil {
		return nil, fmt.Errorf("nil value for key SourceRouteDistinguisher")
	}

	return map[string]interface{}{
		"peer-ip":                    *t.PeerIp,
		"peer-path-id":               *t.PeerPathId,
		"source-address-family":      t.SourceAddressFamily,
		"source-route-distinguisher": *t.SourceRouteDistinguisher,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State struct {
	ΛMetadata                 []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AdvertisedToPeer          []string                                     `path:"advertised-to-peer" module:"openconfig-network-instance"`
	ΛAdvertisedToPeer         []ygot.Annotation                            `path:"@advertised-to-peer" ygotAnnotation:"true"`
	AttrIndex                 *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex                []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Backup                    *bool                                        `path:"backup" module:"openconfig-network-instance"`
	ΛBackup                   []ygot.Annotation                            `path:"@backup" ygotAnnotation:"true"`
	Bestpath                  *bool                                        `path:"bestpath" module:"openconfig-network-instance"`
	ΛBestpath                 []ygot.Annotation                            `path:"@bestpath" ygotAnnotation:"true"`
	CommunityIndex            *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex           []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex         *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex        []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason             E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason            []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	Label                     *string                                      `path:"label" module:"openconfig-network-instance"`
	ΛLabel                    []ygot.Annotation                            `path:"@label" ygotAnnotation:"true"`
	Label2                    *string                                      `path:"label2" module:"openconfig-network-instance"`
	ΛLabel2                   []ygot.Annotation                            `path:"@label2" ygotAnnotation:"true"`
	LastModified              *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified             []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	Multipath                 *bool                                        `path:"multipath" module:"openconfig-network-instance"`
	ΛMultipath                []ygot.Annotation                            `path:"@multipath" ygotAnnotation:"true"`
	PeerIp                    *string                                      `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                            `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                      `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                            `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE           `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                            `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                      `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                            `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	ValidRoute                *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute               []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) IsYANGGoStruct() {
}

// GetAdvertisedToPeer retrieves the value of the leaf AdvertisedToPeer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertisedToPeer is set, it can
// safely use t.GetAdvertisedToPeer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertisedToPeer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetAdvertisedToPeer() []string {
	if t == nil || t.AdvertisedToPeer == nil {
		return nil
	}
	return t.AdvertisedToPeer
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBackup retrieves the value of the leaf Backup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Backup is set, it can
// safely use t.GetBackup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Backup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetBackup() bool {
	if t == nil || t.Backup == nil {
		return false
	}
	return *t.Backup
}

// GetBestpath retrieves the value of the leaf Bestpath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bestpath is set, it can
// safely use t.GetBestpath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bestpath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetBestpath() bool {
	if t == nil || t.Bestpath == nil {
		return false
	}
	return *t.Bestpath
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetLabel() string {
	if t == nil || t.Label == nil {
		return ""
	}
	return *t.Label
}

// GetLabel2 retrieves the value of the leaf Label2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label2 is set, it can
// safely use t.GetLabel2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetLabel2() string {
	if t == nil || t.Label2 == nil {
		return ""
	}
	return *t.Label2
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetMultipath retrieves the value of the leaf Multipath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Multipath is set, it can
// safely use t.GetMultipath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Multipath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetMultipath() bool {
	if t == nil || t.Multipath == nil {
		return false
	}
	return *t.Multipath
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                                                `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                                                       `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                                                            `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Esi                  *string           `path:"esi" module:"openconfig-network-instance"`
	ΛEsi                 []ygot.Annotation `path:"@esi" ygotAnnotation:"true"`
	OriginatingRouterIp  *string           `path:"originating-router-ip" module:"openconfig-network-instance"`
	ΛOriginatingRouterIp []ygot.Annotation `path:"@originating-router-ip" ygotAnnotation:"true"`
	OriginatorIpLength   *uint32           `path:"originator-ip-length" module:"openconfig-network-instance"`
	ΛOriginatorIpLength  []ygot.Annotation `path:"@originator-ip-length" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) IsYANGGoStruct() {
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetOriginatingRouterIp retrieves the value of the leaf OriginatingRouterIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatingRouterIp is set, it can
// safely use t.GetOriginatingRouterIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatingRouterIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) GetOriginatingRouterIp() string {
	if t == nil || t.OriginatingRouterIp == nil {
		return ""
	}
	return *t.OriginatingRouterIp
}

// GetOriginatorIpLength retrieves the value of the leaf OriginatorIpLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorIpLength is set, it can
// safely use t.GetOriginatorIpLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorIpLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) GetOriginatorIpLength() uint32 {
	if t == nil || t.OriginatorIpLength == nil {
		return 0
	}
	return *t.OriginatorIpLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeFourEthernetSegment_TypeFourRoute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	TypeOneRoute  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute `path:"type-one-route" module:"openconfig-network-instance"`
	ΛTypeOneRoute []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                `path:"@type-one-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key represents the key for list TypeOneRoute of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key struct {
	Esi         string `path:"esi"`
	EthernetTag uint32 `path:"ethernet-tag"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"esi":          t.Esi,
		"ethernet-tag": t.EthernetTag,
	}, nil
}

// NewTypeOneRoute creates a new entry in the TypeOneRoute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) NewTypeOneRoute(Esi string, EthernetTag uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOneRoute == nil {
		t.TypeOneRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key{
		Esi:         Esi,
		EthernetTag: EthernetTag,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeOneRoute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeOneRoute", key)
	}

	t.TypeOneRoute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute{
		Esi:         &Esi,
		EthernetTag: &EthernetTag,
	}

	return t.TypeOneRoute[key], nil
}

// RenameTypeOneRoute renames an entry in the list TypeOneRoute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) RenameTypeOneRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key) error {
	if _, ok := t.TypeOneRoute[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeOneRoute", newK)
	}

	e, ok := t.TypeOneRoute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeOneRoute", oldK)
	}
	e.Esi = &newK.Esi
	e.EthernetTag = &newK.EthernetTag

	t.TypeOneRoute[newK] = e
	delete(t.TypeOneRoute, oldK)
	return nil
}

// GetOrCreateTypeOneRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) GetOrCreateTypeOneRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute {
	if t.TypeOneRoute == nil {
		t.TypeOneRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute)
	}
	return t.TypeOneRoute
}

// GetOrCreateTypeOneRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) GetOrCreateTypeOneRoute(Esi string, EthernetTag uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key{
		Esi:         Esi,
		EthernetTag: EthernetTag,
	}

	if v, ok := t.TypeOneRoute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeOneRoute(Esi, EthernetTag)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeOneRoute got unexpected error: %v", err))
	}
	return v
}

// GetTypeOneRoute retrieves the value with the specified key from
// the TypeOneRoute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) GetTypeOneRoute(Esi string, EthernetTag uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key{
		Esi:         Esi,
		EthernetTag: EthernetTag,
	}

	if lm, ok := t.TypeOneRoute[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeOneRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute struct to the
// list TypeOneRoute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) AppendTypeOneRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) error {
	if v.Esi == nil {
		return fmt.Errorf("invalid nil key for Esi")
	}

	if v.EthernetTag == nil {
		return fmt.Errorf("invalid nil key for EthernetTag")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key{
		Esi:         *v.Esi,
		EthernetTag: *v.EthernetTag,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOneRoute == nil {
		t.TypeOneRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute)
	}

	if _, ok := t.TypeOneRoute[key]; ok {
		return fmt.Errorf("duplicate key for list TypeOneRoute %v", key)
	}

	t.TypeOneRoute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeOneRoute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Esi          *string                                                                                                                                                                                            `path:"esi" module:"openconfig-network-instance"`
	ΛEsi         []ygot.Annotation                                                                                                                                                                                  `path:"@esi" ygotAnnotation:"true"`
	EthernetTag  *uint32                                                                                                                                                                                            `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag []ygot.Annotation                                                                                                                                                                                  `path:"@ethernet-tag" ygotAnnotation:"true"`
	Paths        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths `path:"paths" module:"openconfig-network-instance"`
	ΛPaths       []ygot.Annotation                                                                                                                                                                                  `path:"@paths" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) IsYANGGoStruct() {
}

// GetOrCreatePaths retrieves the value of the Paths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) GetOrCreatePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths {
	if t.Paths != nil {
		return t.Paths
	}
	t.Paths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths{}
	return t.Paths
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State{}
	return t.State
}

// GetPaths returns the value of the Paths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute. If the receiver or the field Paths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) GetPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths {
	if t != nil && t.Paths != nil {
		return t.Paths
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Paths.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Esi == nil {
		return nil, fmt.Errorf("nil value for key Esi")
	}

	if t.EthernetTag == nil {
		return nil, fmt.Errorf("nil value for key EthernetTag")
	}

	return map[string]interface{}{
		"esi":          *t.Esi,
		"ethernet-tag": *t.EthernetTag,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Path      map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path `path:"path" module:"openconfig-network-instance"`
	ΛPath     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                      `path:"@path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key represents the key for list Path of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key struct {
	PeerIp                   string                             `path:"peer-ip"`
	PeerPathId               uint32                             `path:"peer-path-id"`
	SourceRouteDistinguisher string                             `path:"source-route-distinguisher"`
	SourceAddressFamily      E_OpenconfigBgpTypes_AFI_SAFI_TYPE `path:"source-address-family"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"peer-ip":                    t.PeerIp,
		"peer-path-id":               t.PeerPathId,
		"source-route-distinguisher": t.SourceRouteDistinguisher,
		"source-address-family":      t.SourceAddressFamily,
	}, nil
}

// NewPath creates a new entry in the Path list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) NewPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path{
		PeerIp:                   &PeerIp,
		PeerPathId:               &PeerPathId,
		SourceRouteDistinguisher: &SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	return t.Path[key], nil
}

// RenamePath renames an entry in the list Path within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) RenamePath(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key) error {
	if _, ok := t.Path[newK]; ok {
		return fmt.Errorf("key %v already exists in Path", newK)
	}

	e, ok := t.Path[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Path", oldK)
	}
	e.PeerIp = &newK.PeerIp
	e.PeerPathId = &newK.PeerPathId
	e.SourceRouteDistinguisher = &newK.SourceRouteDistinguisher
	e.SourceAddressFamily = newK.SourceAddressFamily

	t.Path[newK] = e
	delete(t.Path, oldK)
	return nil
}

// GetOrCreatePathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) GetOrCreatePathMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path {
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path)
	}
	return t.Path
}

// GetOrCreatePath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) GetOrCreatePath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if v, ok := t.Path[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPath(PeerIp, PeerPathId, SourceRouteDistinguisher, SourceAddressFamily)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePath got unexpected error: %v", err))
	}
	return v
}

// GetPath retrieves the value with the specified key from
// the Path map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) GetPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if lm, ok := t.Path[key]; ok {
		return lm
	}
	return nil
}

// AppendPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path struct to the
// list Path of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) AppendPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) error {
	if v.PeerIp == nil {
		return fmt.Errorf("invalid nil key for PeerIp")
	}

	if v.PeerPathId == nil {
		return fmt.Errorf("invalid nil key for PeerPathId")
	}

	if v.SourceRouteDistinguisher == nil {
		return fmt.Errorf("invalid nil key for SourceRouteDistinguisher")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key{
		PeerIp:                   *v.PeerIp,
		PeerPathId:               *v.PeerPathId,
		SourceRouteDistinguisher: *v.SourceRouteDistinguisher,
		SourceAddressFamily:      v.SourceAddressFamily,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path)
	}

	if _, ok := t.Path[key]; ok {
		return fmt.Errorf("duplicate key for list Path %v", key)
	}

	t.Path[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Path {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path struct {
	ΛMetadata                 []ygot.Annotation                                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	PeerIp                    *string                                                                                                                                                                                                                   `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                                                                                                                                                                                                         `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                                                                                                                                                                                                   `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                                                                                                                                                                                                         `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                                                                                                        `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                                                                                                                                                                                                         `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                                                                                                                                                                                                   `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                                                                                                                                                                                                         `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	State                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State             `path:"state" module:"openconfig-network-instance"`
	ΛState                    []ygot.Annotation                                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes        []ygot.Annotation                                                                                                                                                                                                         `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PeerIp == nil {
		return nil, fmt.Errorf("nil value for key PeerIp")
	}

	if t.PeerPathId == nil {
		return nil, fmt.Errorf("nil value for key PeerPathId")
	}

	if t.SourceRouteDistinguisher == nil {
		return nil, fmt.Errorf("nil value for key SourceRouteDistinguisher")
	}

	return map[string]interface{}{
		"peer-ip":                    *t.PeerIp,
		"peer-path-id":               *t.PeerPathId,
		"source-address-family":      t.SourceAddressFamily,
		"source-route-distinguisher": *t.SourceRouteDistinguisher,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State struct {
	ΛMetadata                 []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AdvertisedToPeer          []string                                     `path:"advertised-to-peer" module:"openconfig-network-instance"`
	ΛAdvertisedToPeer         []ygot.Annotation                            `path:"@advertised-to-peer" ygotAnnotation:"true"`
	AttrIndex                 *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex                []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Backup                    *bool                                        `path:"backup" module:"openconfig-network-instance"`
	ΛBackup                   []ygot.Annotation                            `path:"@backup" ygotAnnotation:"true"`
	Bestpath                  *bool                                        `path:"bestpath" module:"openconfig-network-instance"`
	ΛBestpath                 []ygot.Annotation                            `path:"@bestpath" ygotAnnotation:"true"`
	CommunityIndex            *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex           []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex         *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex        []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason             E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason            []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	Label                     *string                                      `path:"label" module:"openconfig-network-instance"`
	ΛLabel                    []ygot.Annotation                            `path:"@label" ygotAnnotation:"true"`
	Label2                    *string                                      `path:"label2" module:"openconfig-network-instance"`
	ΛLabel2                   []ygot.Annotation                            `path:"@label2" ygotAnnotation:"true"`
	LastModified              *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified             []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	Multipath                 *bool                                        `path:"multipath" module:"openconfig-network-instance"`
	ΛMultipath                []ygot.Annotation                            `path:"@multipath" ygotAnnotation:"true"`
	PeerIp                    *string                                      `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                            `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                      `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                            `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE           `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                            `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                      `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                            `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	ValidRoute                *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute               []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) IsYANGGoStruct() {
}

// GetAdvertisedToPeer retrieves the value of the leaf AdvertisedToPeer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertisedToPeer is set, it can
// safely use t.GetAdvertisedToPeer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertisedToPeer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetAdvertisedToPeer() []string {
	if t == nil || t.AdvertisedToPeer == nil {
		return nil
	}
	return t.AdvertisedToPeer
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBackup retrieves the value of the leaf Backup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Backup is set, it can
// safely use t.GetBackup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Backup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetBackup() bool {
	if t == nil || t.Backup == nil {
		return false
	}
	return *t.Backup
}

// GetBestpath retrieves the value of the leaf Bestpath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bestpath is set, it can
// safely use t.GetBestpath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bestpath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetBestpath() bool {
	if t == nil || t.Bestpath == nil {
		return false
	}
	return *t.Bestpath
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetLabel() string {
	if t == nil || t.Label == nil {
		return ""
	}
	return *t.Label
}

// GetLabel2 retrieves the value of the leaf Label2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label2 is set, it can
// safely use t.GetLabel2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetLabel2() string {
	if t == nil || t.Label2 == nil {
		return ""
	}
	return *t.Label2
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetMultipath retrieves the value of the leaf Multipath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Multipath is set, it can
// safely use t.GetMultipath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Multipath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetMultipath() bool {
	if t == nil || t.Multipath == nil {
		return false
	}
	return *t.Multipath
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                                                    `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                                                           `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                                                                `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Esi          *string           `path:"esi" module:"openconfig-network-instance"`
	ΛEsi         []ygot.Annotation `path:"@esi" ygotAnnotation:"true"`
	EthernetTag  *uint32           `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag []ygot.Annotation `path:"@ethernet-tag" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) IsYANGGoStruct() {
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeOneEthernetAutoDiscovery_TypeOneRoute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	TypeThreeRoute  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute `path:"type-three-route" module:"openconfig-network-instance"`
	ΛTypeThreeRoute []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                        `path:"@type-three-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key represents the key for list TypeThreeRoute of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key struct {
	EthernetTag         uint32 `path:"ethernet-tag"`
	OriginatingRouterIp string `path:"originating-router-ip"`
	OriginatorIpLength  uint32 `path:"originator-ip-length"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"ethernet-tag":          t.EthernetTag,
		"originating-router-ip": t.OriginatingRouterIp,
		"originator-ip-length":  t.OriginatorIpLength,
	}, nil
}

// NewTypeThreeRoute creates a new entry in the TypeThreeRoute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) NewTypeThreeRoute(EthernetTag uint32, OriginatingRouterIp string, OriginatorIpLength uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeThreeRoute == nil {
		t.TypeThreeRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key{
		EthernetTag:         EthernetTag,
		OriginatingRouterIp: OriginatingRouterIp,
		OriginatorIpLength:  OriginatorIpLength,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeThreeRoute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeThreeRoute", key)
	}

	t.TypeThreeRoute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute{
		EthernetTag:         &EthernetTag,
		OriginatingRouterIp: &OriginatingRouterIp,
		OriginatorIpLength:  &OriginatorIpLength,
	}

	return t.TypeThreeRoute[key], nil
}

// RenameTypeThreeRoute renames an entry in the list TypeThreeRoute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) RenameTypeThreeRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key) error {
	if _, ok := t.TypeThreeRoute[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeThreeRoute", newK)
	}

	e, ok := t.TypeThreeRoute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeThreeRoute", oldK)
	}
	e.EthernetTag = &newK.EthernetTag
	e.OriginatingRouterIp = &newK.OriginatingRouterIp
	e.OriginatorIpLength = &newK.OriginatorIpLength

	t.TypeThreeRoute[newK] = e
	delete(t.TypeThreeRoute, oldK)
	return nil
}

// GetOrCreateTypeThreeRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) GetOrCreateTypeThreeRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute {
	if t.TypeThreeRoute == nil {
		t.TypeThreeRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute)
	}
	return t.TypeThreeRoute
}

// GetOrCreateTypeThreeRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) GetOrCreateTypeThreeRoute(EthernetTag uint32, OriginatingRouterIp string, OriginatorIpLength uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key{
		EthernetTag:         EthernetTag,
		OriginatingRouterIp: OriginatingRouterIp,
		OriginatorIpLength:  OriginatorIpLength,
	}

	if v, ok := t.TypeThreeRoute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeThreeRoute(EthernetTag, OriginatingRouterIp, OriginatorIpLength)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeThreeRoute got unexpected error: %v", err))
	}
	return v
}

// GetTypeThreeRoute retrieves the value with the specified key from
// the TypeThreeRoute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) GetTypeThreeRoute(EthernetTag uint32, OriginatingRouterIp string, OriginatorIpLength uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key{
		EthernetTag:         EthernetTag,
		OriginatingRouterIp: OriginatingRouterIp,
		OriginatorIpLength:  OriginatorIpLength,
	}

	if lm, ok := t.TypeThreeRoute[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeThreeRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute struct to the
// list TypeThreeRoute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) AppendTypeThreeRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) error {
	if v.EthernetTag == nil {
		return fmt.Errorf("invalid nil key for EthernetTag")
	}

	if v.OriginatingRouterIp == nil {
		return fmt.Errorf("invalid nil key for OriginatingRouterIp")
	}

	if v.OriginatorIpLength == nil {
		return fmt.Errorf("invalid nil key for OriginatorIpLength")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key{
		EthernetTag:         *v.EthernetTag,
		OriginatingRouterIp: *v.OriginatingRouterIp,
		OriginatorIpLength:  *v.OriginatorIpLength,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeThreeRoute == nil {
		t.TypeThreeRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute)
	}

	if _, ok := t.TypeThreeRoute[key]; ok {
		return fmt.Errorf("duplicate key for list TypeThreeRoute %v", key)
	}

	t.TypeThreeRoute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeThreeRoute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	EthernetTag          *uint32                                                                                                                                                                                                        `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag         []ygot.Annotation                                                                                                                                                                                              `path:"@ethernet-tag" ygotAnnotation:"true"`
	OriginatingRouterIp  *string                                                                                                                                                                                                        `path:"originating-router-ip" module:"openconfig-network-instance"`
	ΛOriginatingRouterIp []ygot.Annotation                                                                                                                                                                                              `path:"@originating-router-ip" ygotAnnotation:"true"`
	OriginatorIpLength   *uint32                                                                                                                                                                                                        `path:"originator-ip-length" module:"openconfig-network-instance"`
	ΛOriginatorIpLength  []ygot.Annotation                                                                                                                                                                                              `path:"@originator-ip-length" ygotAnnotation:"true"`
	Paths                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths `path:"paths" module:"openconfig-network-instance"`
	ΛPaths               []ygot.Annotation                                                                                                                                                                                              `path:"@paths" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) IsYANGGoStruct() {
}

// GetOrCreatePaths retrieves the value of the Paths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) GetOrCreatePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths {
	if t.Paths != nil {
		return t.Paths
	}
	t.Paths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths{}
	return t.Paths
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State{}
	return t.State
}

// GetPaths returns the value of the Paths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute. If the receiver or the field Paths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) GetPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths {
	if t != nil && t.Paths != nil {
		return t.Paths
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// GetOriginatingRouterIp retrieves the value of the leaf OriginatingRouterIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatingRouterIp is set, it can
// safely use t.GetOriginatingRouterIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatingRouterIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) GetOriginatingRouterIp() string {
	if t == nil || t.OriginatingRouterIp == nil {
		return ""
	}
	return *t.OriginatingRouterIp
}

// GetOriginatorIpLength retrieves the value of the leaf OriginatorIpLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorIpLength is set, it can
// safely use t.GetOriginatorIpLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorIpLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) GetOriginatorIpLength() uint32 {
	if t == nil || t.OriginatorIpLength == nil {
		return 0
	}
	return *t.OriginatorIpLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Paths.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.EthernetTag == nil {
		return nil, fmt.Errorf("nil value for key EthernetTag")
	}

	if t.OriginatingRouterIp == nil {
		return nil, fmt.Errorf("nil value for key OriginatingRouterIp")
	}

	if t.OriginatorIpLength == nil {
		return nil, fmt.Errorf("nil value for key OriginatorIpLength")
	}

	return map[string]interface{}{
		"ethernet-tag":          *t.EthernetTag,
		"originating-router-ip": *t.OriginatingRouterIp,
		"originator-ip-length":  *t.OriginatorIpLength,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Path      map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path `path:"path" module:"openconfig-network-instance"`
	ΛPath     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                                              `path:"@path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key represents the key for list Path of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key struct {
	PeerIp                   string                             `path:"peer-ip"`
	PeerPathId               uint32                             `path:"peer-path-id"`
	SourceRouteDistinguisher string                             `path:"source-route-distinguisher"`
	SourceAddressFamily      E_OpenconfigBgpTypes_AFI_SAFI_TYPE `path:"source-address-family"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"peer-ip":                    t.PeerIp,
		"peer-path-id":               t.PeerPathId,
		"source-route-distinguisher": t.SourceRouteDistinguisher,
		"source-address-family":      t.SourceAddressFamily,
	}, nil
}

// NewPath creates a new entry in the Path list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) NewPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path{
		PeerIp:                   &PeerIp,
		PeerPathId:               &PeerPathId,
		SourceRouteDistinguisher: &SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	return t.Path[key], nil
}

// RenamePath renames an entry in the list Path within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) RenamePath(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key) error {
	if _, ok := t.Path[newK]; ok {
		return fmt.Errorf("key %v already exists in Path", newK)
	}

	e, ok := t.Path[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Path", oldK)
	}
	e.PeerIp = &newK.PeerIp
	e.PeerPathId = &newK.PeerPathId
	e.SourceRouteDistinguisher = &newK.SourceRouteDistinguisher
	e.SourceAddressFamily = newK.SourceAddressFamily

	t.Path[newK] = e
	delete(t.Path, oldK)
	return nil
}

// GetOrCreatePathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) GetOrCreatePathMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path {
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path)
	}
	return t.Path
}

// GetOrCreatePath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) GetOrCreatePath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if v, ok := t.Path[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPath(PeerIp, PeerPathId, SourceRouteDistinguisher, SourceAddressFamily)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePath got unexpected error: %v", err))
	}
	return v
}

// GetPath retrieves the value with the specified key from
// the Path map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) GetPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if lm, ok := t.Path[key]; ok {
		return lm
	}
	return nil
}

// AppendPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path struct to the
// list Path of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) AppendPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) error {
	if v.PeerIp == nil {
		return fmt.Errorf("invalid nil key for PeerIp")
	}

	if v.PeerPathId == nil {
		return fmt.Errorf("invalid nil key for PeerPathId")
	}

	if v.SourceRouteDistinguisher == nil {
		return fmt.Errorf("invalid nil key for SourceRouteDistinguisher")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key{
		PeerIp:                   *v.PeerIp,
		PeerPathId:               *v.PeerPathId,
		SourceRouteDistinguisher: *v.SourceRouteDistinguisher,
		SourceAddressFamily:      v.SourceAddressFamily,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path)
	}

	if _, ok := t.Path[key]; ok {
		return fmt.Errorf("duplicate key for list Path %v", key)
	}

	t.Path[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Path {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path struct {
	ΛMetadata                 []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	PeerIp                    *string                                                                                                                                                                                                                               `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                                                                                                                                                                                                                     `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                                                                                                                                                                                                               `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                                                                                                                                                                                                                     `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                                                                                                                    `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                                                                                                                                                                                                                     `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                                                                                                                                                                                                               `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                                                                                                                                                                                                                     `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	State                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State             `path:"state" module:"openconfig-network-instance"`
	ΛState                    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes        []ygot.Annotation                                                                                                                                                                                                                     `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PeerIp == nil {
		return nil, fmt.Errorf("nil value for key PeerIp")
	}

	if t.PeerPathId == nil {
		return nil, fmt.Errorf("nil value for key PeerPathId")
	}

	if t.SourceRouteDistinguisher == nil {
		return nil, fmt.Errorf("nil value for key SourceRouteDistinguisher")
	}

	return map[string]interface{}{
		"peer-ip":                    *t.PeerIp,
		"peer-path-id":               *t.PeerPathId,
		"source-address-family":      t.SourceAddressFamily,
		"source-route-distinguisher": *t.SourceRouteDistinguisher,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State struct {
	ΛMetadata                 []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AdvertisedToPeer          []string                                     `path:"advertised-to-peer" module:"openconfig-network-instance"`
	ΛAdvertisedToPeer         []ygot.Annotation                            `path:"@advertised-to-peer" ygotAnnotation:"true"`
	AttrIndex                 *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex                []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Backup                    *bool                                        `path:"backup" module:"openconfig-network-instance"`
	ΛBackup                   []ygot.Annotation                            `path:"@backup" ygotAnnotation:"true"`
	Bestpath                  *bool                                        `path:"bestpath" module:"openconfig-network-instance"`
	ΛBestpath                 []ygot.Annotation                            `path:"@bestpath" ygotAnnotation:"true"`
	CommunityIndex            *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex           []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	ExtCommunityIndex         *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex        []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason             E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason            []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	Label                     *string                                      `path:"label" module:"openconfig-network-instance"`
	ΛLabel                    []ygot.Annotation                            `path:"@label" ygotAnnotation:"true"`
	Label2                    *string                                      `path:"label2" module:"openconfig-network-instance"`
	ΛLabel2                   []ygot.Annotation                            `path:"@label2" ygotAnnotation:"true"`
	LastModified              *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified             []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	Multipath                 *bool                                        `path:"multipath" module:"openconfig-network-instance"`
	ΛMultipath                []ygot.Annotation                            `path:"@multipath" ygotAnnotation:"true"`
	PeerIp                    *string                                      `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                            `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                      `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                            `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE           `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                            `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                      `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                            `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	ValidRoute                *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute               []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) IsYANGGoStruct() {
}

// GetAdvertisedToPeer retrieves the value of the leaf AdvertisedToPeer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertisedToPeer is set, it can
// safely use t.GetAdvertisedToPeer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertisedToPeer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetAdvertisedToPeer() []string {
	if t == nil || t.AdvertisedToPeer == nil {
		return nil
	}
	return t.AdvertisedToPeer
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBackup retrieves the value of the leaf Backup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Backup is set, it can
// safely use t.GetBackup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Backup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetBackup() bool {
	if t == nil || t.Backup == nil {
		return false
	}
	return *t.Backup
}

// GetBestpath retrieves the value of the leaf Bestpath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bestpath is set, it can
// safely use t.GetBestpath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bestpath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetBestpath() bool {
	if t == nil || t.Bestpath == nil {
		return false
	}
	return *t.Bestpath
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetLabel() string {
	if t == nil || t.Label == nil {
		return ""
	}
	return *t.Label
}

// GetLabel2 retrieves the value of the leaf Label2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label2 is set, it can
// safely use t.GetLabel2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetLabel2() string {
	if t == nil || t.Label2 == nil {
		return ""
	}
	return *t.Label2
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetMultipath retrieves the value of the leaf Multipath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Multipath is set, it can
// safely use t.GetMultipath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Multipath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetMultipath() bool {
	if t == nil || t.Multipath == nil {
		return false
	}
	return *t.Multipath
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                                                                `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                                                                       `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                                                                            `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EthernetTag          *uint32           `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag         []ygot.Annotation `path:"@ethernet-tag" ygotAnnotation:"true"`
	OriginatingRouterIp  *string           `path:"originating-router-ip" module:"openconfig-network-instance"`
	ΛOriginatingRouterIp []ygot.Annotation `path:"@originating-router-ip" ygotAnnotation:"true"`
	OriginatorIpLength   *uint32           `path:"originator-ip-length" module:"openconfig-network-instance"`
	ΛOriginatorIpLength  []ygot.Annotation `path:"@originator-ip-length" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) IsYANGGoStruct() {
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// GetOriginatingRouterIp retrieves the value of the leaf OriginatingRouterIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatingRouterIp is set, it can
// safely use t.GetOriginatingRouterIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatingRouterIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) GetOriginatingRouterIp() string {
	if t == nil || t.OriginatingRouterIp == nil {
		return ""
	}
	return *t.OriginatingRouterIp
}

// GetOriginatorIpLength retrieves the value of the leaf OriginatorIpLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorIpLength is set, it can
// safely use t.GetOriginatorIpLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorIpLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) GetOriginatorIpLength() uint32 {
	if t == nil || t.OriginatorIpLength == nil {
		return 0
	}
	return *t.OriginatorIpLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeThreeInclusiveMulticastEthernetTag_TypeThreeRoute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	TypeTwoRoute  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute `path:"type-two-route" module:"openconfig-network-instance"`
	ΛTypeTwoRoute []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                          `path:"@type-two-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key represents the key for list TypeTwoRoute of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key struct {
	EthernetTag uint32 `path:"ethernet-tag"`
	MacAddress  string `path:"mac-address"`
	MacLength   uint32 `path:"mac-length"`
	IpPrefix    string `path:"ip-prefix"`
	IpLength    uint32 `path:"ip-length"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"ethernet-tag": t.EthernetTag,
		"mac-address":  t.MacAddress,
		"mac-length":   t.MacLength,
		"ip-prefix":    t.IpPrefix,
		"ip-length":    t.IpLength,
	}, nil
}

// NewTypeTwoRoute creates a new entry in the TypeTwoRoute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) NewTypeTwoRoute(EthernetTag uint32, MacAddress string, MacLength uint32, IpPrefix string, IpLength uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeTwoRoute == nil {
		t.TypeTwoRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key{
		EthernetTag: EthernetTag,
		MacAddress:  MacAddress,
		MacLength:   MacLength,
		IpPrefix:    IpPrefix,
		IpLength:    IpLength,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeTwoRoute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeTwoRoute", key)
	}

	t.TypeTwoRoute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute{
		EthernetTag: &EthernetTag,
		MacAddress:  &MacAddress,
		MacLength:   &MacLength,
		IpPrefix:    &IpPrefix,
		IpLength:    &IpLength,
	}

	return t.TypeTwoRoute[key], nil
}

// RenameTypeTwoRoute renames an entry in the list TypeTwoRoute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) RenameTypeTwoRoute(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key) error {
	if _, ok := t.TypeTwoRoute[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeTwoRoute", newK)
	}

	e, ok := t.TypeTwoRoute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeTwoRoute", oldK)
	}
	e.EthernetTag = &newK.EthernetTag
	e.MacAddress = &newK.MacAddress
	e.MacLength = &newK.MacLength
	e.IpPrefix = &newK.IpPrefix
	e.IpLength = &newK.IpLength

	t.TypeTwoRoute[newK] = e
	delete(t.TypeTwoRoute, oldK)
	return nil
}

// GetOrCreateTypeTwoRouteMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) GetOrCreateTypeTwoRouteMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute {
	if t.TypeTwoRoute == nil {
		t.TypeTwoRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute)
	}
	return t.TypeTwoRoute
}

// GetOrCreateTypeTwoRoute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) GetOrCreateTypeTwoRoute(EthernetTag uint32, MacAddress string, MacLength uint32, IpPrefix string, IpLength uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key{
		EthernetTag: EthernetTag,
		MacAddress:  MacAddress,
		MacLength:   MacLength,
		IpPrefix:    IpPrefix,
		IpLength:    IpLength,
	}

	if v, ok := t.TypeTwoRoute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeTwoRoute(EthernetTag, MacAddress, MacLength, IpPrefix, IpLength)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeTwoRoute got unexpected error: %v", err))
	}
	return v
}

// GetTypeTwoRoute retrieves the value with the specified key from
// the TypeTwoRoute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) GetTypeTwoRoute(EthernetTag uint32, MacAddress string, MacLength uint32, IpPrefix string, IpLength uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key{
		EthernetTag: EthernetTag,
		MacAddress:  MacAddress,
		MacLength:   MacLength,
		IpPrefix:    IpPrefix,
		IpLength:    IpLength,
	}

	if lm, ok := t.TypeTwoRoute[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeTwoRoute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute struct to the
// list TypeTwoRoute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) AppendTypeTwoRoute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) error {
	if v.EthernetTag == nil {
		return fmt.Errorf("invalid nil key for EthernetTag")
	}

	if v.MacAddress == nil {
		return fmt.Errorf("invalid nil key for MacAddress")
	}

	if v.MacLength == nil {
		return fmt.Errorf("invalid nil key for MacLength")
	}

	if v.IpPrefix == nil {
		return fmt.Errorf("invalid nil key for IpPrefix")
	}

	if v.IpLength == nil {
		return fmt.Errorf("invalid nil key for IpLength")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key{
		EthernetTag: *v.EthernetTag,
		MacAddress:  *v.MacAddress,
		MacLength:   *v.MacLength,
		IpPrefix:    *v.IpPrefix,
		IpLength:    *v.IpLength,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeTwoRoute == nil {
		t.TypeTwoRoute = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute)
	}

	if _, ok := t.TypeTwoRoute[key]; ok {
		return fmt.Errorf("duplicate key for list TypeTwoRoute %v", key)
	}

	t.TypeTwoRoute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeTwoRoute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	EthernetTag  *uint32                                                                                                                                                                                         `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag []ygot.Annotation                                                                                                                                                                               `path:"@ethernet-tag" ygotAnnotation:"true"`
	IpLength     *uint32                                                                                                                                                                                         `path:"ip-length" module:"openconfig-network-instance"`
	ΛIpLength    []ygot.Annotation                                                                                                                                                                               `path:"@ip-length" ygotAnnotation:"true"`
	IpPrefix     *string                                                                                                                                                                                         `path:"ip-prefix" module:"openconfig-network-instance"`
	ΛIpPrefix    []ygot.Annotation                                                                                                                                                                               `path:"@ip-prefix" ygotAnnotation:"true"`
	MacAddress   *string                                                                                                                                                                                         `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress  []ygot.Annotation                                                                                                                                                                               `path:"@mac-address" ygotAnnotation:"true"`
	MacLength    *uint32                                                                                                                                                                                         `path:"mac-length" module:"openconfig-network-instance"`
	ΛMacLength   []ygot.Annotation                                                                                                                                                                               `path:"@mac-length" ygotAnnotation:"true"`
	Paths        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths `path:"paths" module:"openconfig-network-instance"`
	ΛPaths       []ygot.Annotation                                                                                                                                                                               `path:"@paths" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) IsYANGGoStruct() {
}

// GetOrCreatePaths retrieves the value of the Paths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetOrCreatePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths {
	if t.Paths != nil {
		return t.Paths
	}
	t.Paths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths{}
	return t.Paths
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State{}
	return t.State
}

// GetPaths returns the value of the Paths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute. If the receiver or the field Paths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetPaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths {
	if t != nil && t.Paths != nil {
		return t.Paths
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// GetIpLength retrieves the value of the leaf IpLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpLength is set, it can
// safely use t.GetIpLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetIpLength() uint32 {
	if t == nil || t.IpLength == nil {
		return 0
	}
	return *t.IpLength
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetMacLength retrieves the value of the leaf MacLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacLength is set, it can
// safely use t.GetMacLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) GetMacLength() uint32 {
	if t == nil || t.MacLength == nil {
		return 0
	}
	return *t.MacLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Paths.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.EthernetTag == nil {
		return nil, fmt.Errorf("nil value for key EthernetTag")
	}

	if t.IpLength == nil {
		return nil, fmt.Errorf("nil value for key IpLength")
	}

	if t.IpPrefix == nil {
		return nil, fmt.Errorf("nil value for key IpPrefix")
	}

	if t.MacAddress == nil {
		return nil, fmt.Errorf("nil value for key MacAddress")
	}

	if t.MacLength == nil {
		return nil, fmt.Errorf("nil value for key MacLength")
	}

	return map[string]interface{}{
		"ethernet-tag": *t.EthernetTag,
		"ip-length":    *t.IpLength,
		"ip-prefix":    *t.IpPrefix,
		"mac-address":  *t.MacAddress,
		"mac-length":   *t.MacLength,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Path      map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path `path:"path" module:"openconfig-network-instance"`
	ΛPath     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                                                `path:"@path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key represents the key for list Path of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key struct {
	PeerIp                   string                             `path:"peer-ip"`
	PeerPathId               uint32                             `path:"peer-path-id"`
	SourceRouteDistinguisher string                             `path:"source-route-distinguisher"`
	SourceAddressFamily      E_OpenconfigBgpTypes_AFI_SAFI_TYPE `path:"source-address-family"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"peer-ip":                    t.PeerIp,
		"peer-path-id":               t.PeerPathId,
		"source-route-distinguisher": t.SourceRouteDistinguisher,
		"source-address-family":      t.SourceAddressFamily,
	}, nil
}

// NewPath creates a new entry in the Path list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) NewPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path{
		PeerIp:                   &PeerIp,
		PeerPathId:               &PeerPathId,
		SourceRouteDistinguisher: &SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	return t.Path[key], nil
}

// RenamePath renames an entry in the list Path within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) RenamePath(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key) error {
	if _, ok := t.Path[newK]; ok {
		return fmt.Errorf("key %v already exists in Path", newK)
	}

	e, ok := t.Path[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Path", oldK)
	}
	e.PeerIp = &newK.PeerIp
	e.PeerPathId = &newK.PeerPathId
	e.SourceRouteDistinguisher = &newK.SourceRouteDistinguisher
	e.SourceAddressFamily = newK.SourceAddressFamily

	t.Path[newK] = e
	delete(t.Path, oldK)
	return nil
}

// GetOrCreatePathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) GetOrCreatePathMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path {
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path)
	}
	return t.Path
}

// GetOrCreatePath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) GetOrCreatePath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if v, ok := t.Path[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPath(PeerIp, PeerPathId, SourceRouteDistinguisher, SourceAddressFamily)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePath got unexpected error: %v", err))
	}
	return v
}

// GetPath retrieves the value with the specified key from
// the Path map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) GetPath(PeerIp string, PeerPathId uint32, SourceRouteDistinguisher string, SourceAddressFamily E_OpenconfigBgpTypes_AFI_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key{
		PeerIp:                   PeerIp,
		PeerPathId:               PeerPathId,
		SourceRouteDistinguisher: SourceRouteDistinguisher,
		SourceAddressFamily:      SourceAddressFamily,
	}

	if lm, ok := t.Path[key]; ok {
		return lm
	}
	return nil
}

// AppendPath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path struct to the
// list Path of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) AppendPath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) error {
	if v.PeerIp == nil {
		return fmt.Errorf("invalid nil key for PeerIp")
	}

	if v.PeerPathId == nil {
		return fmt.Errorf("invalid nil key for PeerPathId")
	}

	if v.SourceRouteDistinguisher == nil {
		return fmt.Errorf("invalid nil key for SourceRouteDistinguisher")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key{
		PeerIp:                   *v.PeerIp,
		PeerPathId:               *v.PeerPathId,
		SourceRouteDistinguisher: *v.SourceRouteDistinguisher,
		SourceAddressFamily:      v.SourceAddressFamily,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path)
	}

	if _, ok := t.Path[key]; ok {
		return fmt.Errorf("duplicate key for list Path %v", key)
	}

	t.Path[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Path {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path struct {
	ΛMetadata                 []ygot.Annotation                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	PeerIp                    *string                                                                                                                                                                                                                `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                                                                                                                                                                                                      `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                                                                                                                                                                                                `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                                                                                                                                                                                                      `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE                                                                                                                                                                                     `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                                                                                                                                                                                                      `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                                                                                                                                                                                                `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                                                                                                                                                                                                      `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	State                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State             `path:"state" module:"openconfig-network-instance"`
	ΛState                    []ygot.Annotation                                                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
	UnknownAttributes         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes `path:"unknown-attributes" module:"openconfig-network-instance"`
	ΛUnknownAttributes        []ygot.Annotation                                                                                                                                                                                                      `path:"@unknown-attributes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State{}
	return t.State
}

// GetOrCreateUnknownAttributes retrieves the value of the UnknownAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetOrCreateUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes {
	if t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	t.UnknownAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes{}
	return t.UnknownAttributes
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownAttributes returns the value of the UnknownAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path. If the receiver or the field UnknownAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetUnknownAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes {
	if t != nil && t.UnknownAttributes != nil {
		return t.UnknownAttributes
	}
	return nil
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownAttributes.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PeerIp == nil {
		return nil, fmt.Errorf("nil value for key PeerIp")
	}

	if t.PeerPathId == nil {
		return nil, fmt.Errorf("nil value for key PeerPathId")
	}

	if t.SourceRouteDistinguisher == nil {
		return nil, fmt.Errorf("nil value for key SourceRouteDistinguisher")
	}

	return map[string]interface{}{
		"peer-ip":                    *t.PeerIp,
		"peer-path-id":               *t.PeerPathId,
		"source-address-family":      t.SourceAddressFamily,
		"source-route-distinguisher": *t.SourceRouteDistinguisher,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State struct {
	ΛMetadata                 []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	AdvertisedToPeer          []string                                     `path:"advertised-to-peer" module:"openconfig-network-instance"`
	ΛAdvertisedToPeer         []ygot.Annotation                            `path:"@advertised-to-peer" ygotAnnotation:"true"`
	AttrIndex                 *uint64                                      `path:"attr-index" module:"openconfig-network-instance"`
	ΛAttrIndex                []ygot.Annotation                            `path:"@attr-index" ygotAnnotation:"true"`
	Backup                    *bool                                        `path:"backup" module:"openconfig-network-instance"`
	ΛBackup                   []ygot.Annotation                            `path:"@backup" ygotAnnotation:"true"`
	Bestpath                  *bool                                        `path:"bestpath" module:"openconfig-network-instance"`
	ΛBestpath                 []ygot.Annotation                            `path:"@bestpath" ygotAnnotation:"true"`
	CommunityIndex            *uint64                                      `path:"community-index" module:"openconfig-network-instance"`
	ΛCommunityIndex           []ygot.Annotation                            `path:"@community-index" ygotAnnotation:"true"`
	Esi                       *string                                      `path:"esi" module:"openconfig-network-instance"`
	ΛEsi                      []ygot.Annotation                            `path:"@esi" ygotAnnotation:"true"`
	ExtCommunityIndex         *uint64                                      `path:"ext-community-index" module:"openconfig-network-instance"`
	ΛExtCommunityIndex        []ygot.Annotation                            `path:"@ext-community-index" ygotAnnotation:"true"`
	InvalidReason             E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason            []ygot.Annotation                            `path:"@invalid-reason" ygotAnnotation:"true"`
	Label                     *string                                      `path:"label" module:"openconfig-network-instance"`
	ΛLabel                    []ygot.Annotation                            `path:"@label" ygotAnnotation:"true"`
	Label2                    *string                                      `path:"label2" module:"openconfig-network-instance"`
	ΛLabel2                   []ygot.Annotation                            `path:"@label2" ygotAnnotation:"true"`
	LastModified              *uint64                                      `path:"last-modified" module:"openconfig-network-instance"`
	ΛLastModified             []ygot.Annotation                            `path:"@last-modified" ygotAnnotation:"true"`
	Multipath                 *bool                                        `path:"multipath" module:"openconfig-network-instance"`
	ΛMultipath                []ygot.Annotation                            `path:"@multipath" ygotAnnotation:"true"`
	PeerIp                    *string                                      `path:"peer-ip" module:"openconfig-network-instance"`
	ΛPeerIp                   []ygot.Annotation                            `path:"@peer-ip" ygotAnnotation:"true"`
	PeerPathId                *uint32                                      `path:"peer-path-id" module:"openconfig-network-instance"`
	ΛPeerPathId               []ygot.Annotation                            `path:"@peer-path-id" ygotAnnotation:"true"`
	SourceAddressFamily       E_OpenconfigBgpTypes_AFI_SAFI_TYPE           `path:"source-address-family" module:"openconfig-network-instance"`
	ΛSourceAddressFamily      []ygot.Annotation                            `path:"@source-address-family" ygotAnnotation:"true"`
	SourceRouteDistinguisher  *string                                      `path:"source-route-distinguisher" module:"openconfig-network-instance"`
	ΛSourceRouteDistinguisher []ygot.Annotation                            `path:"@source-route-distinguisher" ygotAnnotation:"true"`
	ValidRoute                *bool                                        `path:"valid-route" module:"openconfig-network-instance"`
	ΛValidRoute               []ygot.Annotation                            `path:"@valid-route" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) IsYANGGoStruct() {
}

// GetAdvertisedToPeer retrieves the value of the leaf AdvertisedToPeer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertisedToPeer is set, it can
// safely use t.GetAdvertisedToPeer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertisedToPeer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetAdvertisedToPeer() []string {
	if t == nil || t.AdvertisedToPeer == nil {
		return nil
	}
	return t.AdvertisedToPeer
}

// GetAttrIndex retrieves the value of the leaf AttrIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrIndex is set, it can
// safely use t.GetAttrIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetAttrIndex() uint64 {
	if t == nil || t.AttrIndex == nil {
		return 0
	}
	return *t.AttrIndex
}

// GetBackup retrieves the value of the leaf Backup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Backup is set, it can
// safely use t.GetBackup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Backup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetBackup() bool {
	if t == nil || t.Backup == nil {
		return false
	}
	return *t.Backup
}

// GetBestpath retrieves the value of the leaf Bestpath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bestpath is set, it can
// safely use t.GetBestpath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bestpath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetBestpath() bool {
	if t == nil || t.Bestpath == nil {
		return false
	}
	return *t.Bestpath
}

// GetCommunityIndex retrieves the value of the leaf CommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CommunityIndex is set, it can
// safely use t.GetCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetCommunityIndex() uint64 {
	if t == nil || t.CommunityIndex == nil {
		return 0
	}
	return *t.CommunityIndex
}

// GetEsi retrieves the value of the leaf Esi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Esi is set, it can
// safely use t.GetEsi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Esi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetEsi() string {
	if t == nil || t.Esi == nil {
		return ""
	}
	return *t.Esi
}

// GetExtCommunityIndex retrieves the value of the leaf ExtCommunityIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunityIndex is set, it can
// safely use t.GetExtCommunityIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunityIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetExtCommunityIndex() uint64 {
	if t == nil || t.ExtCommunityIndex == nil {
		return 0
	}
	return *t.ExtCommunityIndex
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetInvalidReason() E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetLabel() string {
	if t == nil || t.Label == nil {
		return ""
	}
	return *t.Label
}

// GetLabel2 retrieves the value of the leaf Label2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label2 is set, it can
// safely use t.GetLabel2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetLabel2() string {
	if t == nil || t.Label2 == nil {
		return ""
	}
	return *t.Label2
}

// GetLastModified retrieves the value of the leaf LastModified from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastModified is set, it can
// safely use t.GetLastModified() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastModified == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetLastModified() uint64 {
	if t == nil || t.LastModified == nil {
		return 0
	}
	return *t.LastModified
}

// GetMultipath retrieves the value of the leaf Multipath from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Multipath is set, it can
// safely use t.GetMultipath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Multipath == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetMultipath() bool {
	if t == nil || t.Multipath == nil {
		return false
	}
	return *t.Multipath
}

// GetPeerIp retrieves the value of the leaf PeerIp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerIp is set, it can
// safely use t.GetPeerIp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerIp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetPeerIp() string {
	if t == nil || t.PeerIp == nil {
		return ""
	}
	return *t.PeerIp
}

// GetPeerPathId retrieves the value of the leaf PeerPathId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PeerPathId is set, it can
// safely use t.GetPeerPathId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PeerPathId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetPeerPathId() uint32 {
	if t == nil || t.PeerPathId == nil {
		return 0
	}
	return *t.PeerPathId
}

// GetSourceAddressFamily retrieves the value of the leaf SourceAddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddressFamily is set, it can
// safely use t.GetSourceAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetSourceAddressFamily() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.SourceAddressFamily == 0 {
		return 0
	}
	return t.SourceAddressFamily
}

// GetSourceRouteDistinguisher retrieves the value of the leaf SourceRouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceRouteDistinguisher is set, it can
// safely use t.GetSourceRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceRouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetSourceRouteDistinguisher() string {
	if t == nil || t.SourceRouteDistinguisher == nil {
		return ""
	}
	return *t.SourceRouteDistinguisher
}

// GetValidRoute retrieves the value of the leaf ValidRoute from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ValidRoute is set, it can
// safely use t.GetValidRoute() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ValidRoute == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) GetValidRoute() bool {
	if t == nil || t.ValidRoute == nil {
		return false
	}
	return *t.ValidRoute
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path/unknown-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	UnknownAttribute  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute `path:"unknown-attribute" module:"openconfig-network-instance"`
	ΛUnknownAttribute []ygot.Annotation                                                                                                                                                                                                                                 `path:"@unknown-attribute" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) IsYANGGoStruct() {
}

// NewUnknownAttribute creates a new entry in the UnknownAttribute list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) NewUnknownAttribute(AttrType uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	key := AttrType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnknownAttribute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnknownAttribute", key)
	}

	t.UnknownAttribute[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute{
		AttrType: &AttrType,
	}

	return t.UnknownAttribute[key], nil
}

// RenameUnknownAttribute renames an entry in the list UnknownAttribute within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) RenameUnknownAttribute(oldK, newK uint8) error {
	if _, ok := t.UnknownAttribute[newK]; ok {
		return fmt.Errorf("key %v already exists in UnknownAttribute", newK)
	}

	e, ok := t.UnknownAttribute[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnknownAttribute", oldK)
	}
	e.AttrType = &newK

	t.UnknownAttribute[newK] = e
	delete(t.UnknownAttribute, oldK)
	return nil
}

// GetOrCreateUnknownAttributeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttributeMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute {
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}
	return t.UnknownAttribute
}

// GetOrCreateUnknownAttribute retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) GetOrCreateUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	key := AttrType

	if v, ok := t.UnknownAttribute[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnknownAttribute(AttrType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnknownAttribute got unexpected error: %v", err))
	}
	return v
}

// GetUnknownAttribute retrieves the value with the specified key from
// the UnknownAttribute map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) GetUnknownAttribute(AttrType uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute {

	if t == nil {
		return nil
	}

	key := AttrType

	if lm, ok := t.UnknownAttribute[key]; ok {
		return lm
	}
	return nil
}

// AppendUnknownAttribute appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct to the
// list UnknownAttribute of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) AppendUnknownAttribute(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) error {
	if v.AttrType == nil {
		return fmt.Errorf("invalid nil key received for AttrType")
	}

	key := *v.AttrType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnknownAttribute == nil {
		t.UnknownAttribute = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute)
	}

	if _, ok := t.UnknownAttribute[key]; ok {
		return fmt.Errorf("duplicate key for list UnknownAttribute %v", key)
	}

	t.UnknownAttribute[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnknownAttribute {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path/unknown-attributes/unknown-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	AttrType  *uint8                                                                                                                                                                                                                                        `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType []ygot.Annotation                                                                                                                                                                                                                             `path:"@attr-type" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.AttrType == nil {
		return nil, fmt.Errorf("nil value for key AttrType")
	}

	return map[string]interface{}{
		"attr-type": *t.AttrType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path/unknown-attributes/unknown-attribute/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttrLen     *uint16           `path:"attr-len" module:"openconfig-network-instance"`
	ΛAttrLen    []ygot.Annotation `path:"@attr-len" ygotAnnotation:"true"`
	AttrType    *uint8            `path:"attr-type" module:"openconfig-network-instance"`
	ΛAttrType   []ygot.Annotation `path:"@attr-type" ygotAnnotation:"true"`
	AttrValue   Binary            `path:"attr-value" module:"openconfig-network-instance"`
	ΛAttrValue  []ygot.Annotation `path:"@attr-value" ygotAnnotation:"true"`
	Extended    *bool             `path:"extended" module:"openconfig-network-instance"`
	ΛExtended   []ygot.Annotation `path:"@extended" ygotAnnotation:"true"`
	Optional    *bool             `path:"optional" module:"openconfig-network-instance"`
	ΛOptional   []ygot.Annotation `path:"@optional" ygotAnnotation:"true"`
	Partial     *bool             `path:"partial" module:"openconfig-network-instance"`
	ΛPartial    []ygot.Annotation `path:"@partial" ygotAnnotation:"true"`
	Transitive  *bool             `path:"transitive" module:"openconfig-network-instance"`
	ΛTransitive []ygot.Annotation `path:"@transitive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) IsYANGGoStruct() {
}

// GetAttrLen retrieves the value of the leaf AttrLen from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrLen is set, it can
// safely use t.GetAttrLen() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrLen == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrLen() uint16 {
	if t == nil || t.AttrLen == nil {
		return 0
	}
	return *t.AttrLen
}

// GetAttrType retrieves the value of the leaf AttrType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrType is set, it can
// safely use t.GetAttrType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrType() uint8 {
	if t == nil || t.AttrType == nil {
		return 0
	}
	return *t.AttrType
}

// GetAttrValue retrieves the value of the leaf AttrValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttrValue is set, it can
// safely use t.GetAttrValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttrValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetAttrValue() Binary {
	if t == nil || t.AttrValue == nil {
		return nil
	}
	return t.AttrValue
}

// GetExtended retrieves the value of the leaf Extended from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Extended is set, it can
// safely use t.GetExtended() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Extended == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetExtended() bool {
	if t == nil || t.Extended == nil {
		return false
	}
	return *t.Extended
}

// GetOptional retrieves the value of the leaf Optional from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Optional is set, it can
// safely use t.GetOptional() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Optional == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetOptional() bool {
	if t == nil || t.Optional == nil {
		return false
	}
	return *t.Optional
}

// GetPartial retrieves the value of the leaf Partial from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Partial is set, it can
// safely use t.GetPartial() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Partial == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetPartial() bool {
	if t == nil || t.Partial == nil {
		return false
	}
	return *t.Partial
}

// GetTransitive retrieves the value of the leaf Transitive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transitive is set, it can
// safely use t.GetTransitive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transitive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) GetTransitive() bool {
	if t == nil || t.Transitive == nil {
		return false
	}
	return *t.Transitive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_Paths_Path_UnknownAttributes_UnknownAttribute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EthernetTag  *uint32           `path:"ethernet-tag" module:"openconfig-network-instance"`
	ΛEthernetTag []ygot.Annotation `path:"@ethernet-tag" ygotAnnotation:"true"`
	IpLength     *uint32           `path:"ip-length" module:"openconfig-network-instance"`
	ΛIpLength    []ygot.Annotation `path:"@ip-length" ygotAnnotation:"true"`
	IpPrefix     *string           `path:"ip-prefix" module:"openconfig-network-instance"`
	ΛIpPrefix    []ygot.Annotation `path:"@ip-prefix" ygotAnnotation:"true"`
	MacAddress   *string           `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress  []ygot.Annotation `path:"@mac-address" ygotAnnotation:"true"`
	MacLength    *uint32           `path:"mac-length" module:"openconfig-network-instance"`
	ΛMacLength   []ygot.Annotation `path:"@mac-length" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) IsYANGGoStruct() {
}

// GetEthernetTag retrieves the value of the leaf EthernetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetTag is set, it can
// safely use t.GetEthernetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) GetEthernetTag() uint32 {
	if t == nil || t.EthernetTag == nil {
		return 0
	}
	return *t.EthernetTag
}

// GetIpLength retrieves the value of the leaf IpLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpLength is set, it can
// safely use t.GetIpLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) GetIpLength() uint32 {
	if t == nil || t.IpLength == nil {
		return 0
	}
	return *t.IpLength
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetMacLength retrieves the value of the leaf MacLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacLength is set, it can
// safely use t.GetMacLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) GetMacLength() uint32 {
	if t == nil || t.MacLength == nil {
		return 0
	}
	return *t.MacLength
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_Routes_RouteDistinguisher_TypeTwoMacIpAdvertisement_TypeTwoRoute_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_LocRib_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                               `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) NewNeighbor(NeighborAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor)
	}

	key := NeighborAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor{
		NeighborAddress: &NeighborAddress,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.NeighborAddress = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) GetOrCreateNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor {

	key := NeighborAddress

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(NeighborAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) GetNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := NeighborAddress

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) error {
	if v.NeighborAddress == nil {
		return fmt.Errorf("invalid nil key received for NeighborAddress")
	}

	key := *v.NeighborAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	AdjRibInPost     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost  `path:"adj-rib-in-post" module:"openconfig-network-instance"`
	ΛAdjRibInPost    []ygot.Annotation                                                                                                                                  `path:"@adj-rib-in-post" ygotAnnotation:"true"`
	AdjRibInPre      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre   `path:"adj-rib-in-pre" module:"openconfig-network-instance"`
	ΛAdjRibInPre     []ygot.Annotation                                                                                                                                  `path:"@adj-rib-in-pre" ygotAnnotation:"true"`
	AdjRibOutPost    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost `path:"adj-rib-out-post" module:"openconfig-network-instance"`
	ΛAdjRibOutPost   []ygot.Annotation                                                                                                                                  `path:"@adj-rib-out-post" ygotAnnotation:"true"`
	AdjRibOutPre     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre  `path:"adj-rib-out-pre" module:"openconfig-network-instance"`
	ΛAdjRibOutPre    []ygot.Annotation                                                                                                                                  `path:"@adj-rib-out-pre" ygotAnnotation:"true"`
	NeighborAddress  *string                                                                                                                                            `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation                                                                                                                                  `path:"@neighbor-address" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State         `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateAdjRibInPost retrieves the value of the AdjRibInPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetOrCreateAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost {
	if t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	t.AdjRibInPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost{}
	return t.AdjRibInPost
}

// GetOrCreateAdjRibInPre retrieves the value of the AdjRibInPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetOrCreateAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre {
	if t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	t.AdjRibInPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre{}
	return t.AdjRibInPre
}

// GetOrCreateAdjRibOutPost retrieves the value of the AdjRibOutPost field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetOrCreateAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost {
	if t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	t.AdjRibOutPost = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost{}
	return t.AdjRibOutPost
}

// GetOrCreateAdjRibOutPre retrieves the value of the AdjRibOutPre field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetOrCreateAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre {
	if t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	t.AdjRibOutPre = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre{}
	return t.AdjRibOutPre
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State{}
	return t.State
}

// GetAdjRibInPost returns the value of the AdjRibInPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor. If the receiver or the field AdjRibInPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetAdjRibInPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost {
	if t != nil && t.AdjRibInPost != nil {
		return t.AdjRibInPost
	}
	return nil
}

// GetAdjRibInPre returns the value of the AdjRibInPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor. If the receiver or the field AdjRibInPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetAdjRibInPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre {
	if t != nil && t.AdjRibInPre != nil {
		return t.AdjRibInPre
	}
	return nil
}

// GetAdjRibOutPost returns the value of the AdjRibOutPost struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor. If the receiver or the field AdjRibOutPost is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetAdjRibOutPost() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost {
	if t != nil && t.AdjRibOutPost != nil {
		return t.AdjRibOutPost
	}
	return nil
}

// GetAdjRibOutPre returns the value of the AdjRibOutPre struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor. If the receiver or the field AdjRibOutPre is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetAdjRibOutPre() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre {
	if t != nil && t.AdjRibOutPre != nil {
		return t.AdjRibOutPre
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjRibInPost.PopulateDefaults()
	t.AdjRibInPre.PopulateDefaults()
	t.AdjRibOutPost.PopulateDefaults()
	t.AdjRibOutPre.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NeighborAddress == nil {
		return nil, fmt.Errorf("nil value for key NeighborAddress")
	}

	return map[string]interface{}{
		"neighbor-address": *t.NeighborAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/neighbors/neighbor/adj-rib-in-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/neighbors/neighbor/adj-rib-in-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibInPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/neighbors/neighbor/adj-rib-out-post YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPost) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/neighbors/neighbor/adj-rib-out-pre YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_AdjRibOutPre) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	NeighborAddress  *string           `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation `path:"@neighbor-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_L2VpnEvpn_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State struct {
	ΛMetadata    []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	AfiSafiName  E_OpenconfigBgpTypes_AFI_SAFI_TYPE `path:"afi-safi-name" module:"openconfig-network-instance"`
	ΛAfiSafiName []ygot.Annotation                  `path:"@afi-safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State) IsYANGGoStruct() {
}

// GetAfiSafiName retrieves the value of the leaf AfiSafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiSafiName is set, it can
// safely use t.GetAfiSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiSafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State) GetAfiSafiName() E_OpenconfigBgpTypes_AFI_SAFI_TYPE {
	if t == nil || t.AfiSafiName == 0 {
		return 0
	}
	return t.AfiSafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AfiSafis_AfiSafi_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets struct {
	ΛMetadata []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	AttrSet   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet `path:"attr-set" module:"openconfig-network-instance"`
	ΛAttrSet  []ygot.Annotation                                                                                                  `path:"@attr-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) IsYANGGoStruct() {
}

// NewAttrSet creates a new entry in the AttrSet list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) NewAttrSet(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AttrSet == nil {
		t.AttrSet = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AttrSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AttrSet", key)
	}

	t.AttrSet[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet{
		Index: &Index,
	}

	return t.AttrSet[key], nil
}

// RenameAttrSet renames an entry in the list AttrSet within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) RenameAttrSet(oldK, newK uint64) error {
	if _, ok := t.AttrSet[newK]; ok {
		return fmt.Errorf("key %v already exists in AttrSet", newK)
	}

	e, ok := t.AttrSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AttrSet", oldK)
	}
	e.Index = &newK

	t.AttrSet[newK] = e
	delete(t.AttrSet, oldK)
	return nil
}

// GetOrCreateAttrSetMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) GetOrCreateAttrSetMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet {
	if t.AttrSet == nil {
		t.AttrSet = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet)
	}
	return t.AttrSet
}

// GetOrCreateAttrSet retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) GetOrCreateAttrSet(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet {

	key := Index

	if v, ok := t.AttrSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAttrSet(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAttrSet got unexpected error: %v", err))
	}
	return v
}

// GetAttrSet retrieves the value with the specified key from
// the AttrSet map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) GetAttrSet(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.AttrSet[key]; ok {
		return lm
	}
	return nil
}

// AppendAttrSet appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet struct to the
// list AttrSet of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) AppendAttrSet(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AttrSet == nil {
		t.AttrSet = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet)
	}

	if _, ok := t.AttrSet[key]; ok {
		return fmt.Errorf("duplicate key for list AttrSet %v", key)
	}

	t.AttrSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AttrSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet struct {
	ΛMetadata            []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Aggregator           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator          `path:"aggregator" module:"openconfig-network-instance"`
	ΛAggregator          []ygot.Annotation                                                                                                           `path:"@aggregator" ygotAnnotation:"true"`
	AsPath               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath              `path:"as-path" module:"openconfig-network-instance"`
	ΛAsPath              []ygot.Annotation                                                                                                           `path:"@as-path" ygotAnnotation:"true"`
	As4Path              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path             `path:"as4-path" module:"openconfig-network-instance"`
	ΛAs4Path             []ygot.Annotation                                                                                                           `path:"@as4-path" ygotAnnotation:"true"`
	Index                *uint64                                                                                                                     `path:"index" module:"openconfig-network-instance"`
	ΛIndex               []ygot.Annotation                                                                                                           `path:"@index" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
	TunnelEncapsulation  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation `path:"tunnel-encapsulation" module:"openconfig-network-instance"`
	ΛTunnelEncapsulation []ygot.Annotation                                                                                                           `path:"@tunnel-encapsulation" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) IsYANGGoStruct() {
}

// GetOrCreateAggregator retrieves the value of the Aggregator field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetOrCreateAggregator() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator {
	if t.Aggregator != nil {
		return t.Aggregator
	}
	t.Aggregator = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator{}
	return t.Aggregator
}

// GetOrCreateAsPath retrieves the value of the AsPath field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetOrCreateAsPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath {
	if t.AsPath != nil {
		return t.AsPath
	}
	t.AsPath = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath{}
	return t.AsPath
}

// GetOrCreateAs4Path retrieves the value of the As4Path field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetOrCreateAs4Path() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path {
	if t.As4Path != nil {
		return t.As4Path
	}
	t.As4Path = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path{}
	return t.As4Path
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State{}
	return t.State
}

// GetOrCreateTunnelEncapsulation retrieves the value of the TunnelEncapsulation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetOrCreateTunnelEncapsulation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation {
	if t.TunnelEncapsulation != nil {
		return t.TunnelEncapsulation
	}
	t.TunnelEncapsulation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation{}
	return t.TunnelEncapsulation
}

// GetAggregator returns the value of the Aggregator struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet. If the receiver or the field Aggregator is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetAggregator() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator {
	if t != nil && t.Aggregator != nil {
		return t.Aggregator
	}
	return nil
}

// GetAsPath returns the value of the AsPath struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet. If the receiver or the field AsPath is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetAsPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath {
	if t != nil && t.AsPath != nil {
		return t.AsPath
	}
	return nil
}

// GetAs4Path returns the value of the As4Path struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet. If the receiver or the field As4Path is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetAs4Path() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path {
	if t != nil && t.As4Path != nil {
		return t.As4Path
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTunnelEncapsulation returns the value of the TunnelEncapsulation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet. If the receiver or the field TunnelEncapsulation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetTunnelEncapsulation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation {
	if t != nil && t.TunnelEncapsulation != nil {
		return t.TunnelEncapsulation
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Aggregator.PopulateDefaults()
	t.AsPath.PopulateDefaults()
	t.As4Path.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TunnelEncapsulation.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/aggregator YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/aggregator/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   *string           `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	As        *uint32           `path:"as" module:"openconfig-network-instance"`
	ΛAs       []ygot.Annotation `path:"@as" ygotAnnotation:"true"`
	As4       *uint32           `path:"as4" module:"openconfig-network-instance"`
	ΛAs4      []ygot.Annotation `path:"@as4" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetAs retrieves the value of the leaf As from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if As is set, it can
// safely use t.GetAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.As == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) GetAs() uint32 {
	if t == nil || t.As == nil {
		return 0
	}
	return *t.As
}

// GetAs4 retrieves the value of the leaf As4 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if As4 is set, it can
// safely use t.GetAs4() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.As4 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) GetAs4() uint32 {
	if t == nil || t.As4 == nil {
		return 0
	}
	return *t.As4
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_Aggregator_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as4-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path struct {
	ΛMetadata   []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	As4Segment  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment `path:"as4-segment" module:"openconfig-network-instance"`
	ΛAs4Segment []ygot.Annotation                                                                                                                     `path:"@as4-segment" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) IsYANGGoStruct() {
}

// NewAs4Segment creates a new entry in the As4Segment list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) NewAs4Segment(Index uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.As4Segment == nil {
		t.As4Segment = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.As4Segment[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list As4Segment", key)
	}

	t.As4Segment[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment{
		Index: &Index,
	}

	return t.As4Segment[key], nil
}

// RenameAs4Segment renames an entry in the list As4Segment within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) RenameAs4Segment(oldK, newK uint32) error {
	if _, ok := t.As4Segment[newK]; ok {
		return fmt.Errorf("key %v already exists in As4Segment", newK)
	}

	e, ok := t.As4Segment[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in As4Segment", oldK)
	}
	e.Index = &newK

	t.As4Segment[newK] = e
	delete(t.As4Segment, oldK)
	return nil
}

// GetOrCreateAs4SegmentMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) GetOrCreateAs4SegmentMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment {
	if t.As4Segment == nil {
		t.As4Segment = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment)
	}
	return t.As4Segment
}

// GetOrCreateAs4Segment retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) GetOrCreateAs4Segment(Index uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment {

	key := Index

	if v, ok := t.As4Segment[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAs4Segment(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAs4Segment got unexpected error: %v", err))
	}
	return v
}

// GetAs4Segment retrieves the value with the specified key from
// the As4Segment map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) GetAs4Segment(Index uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.As4Segment[key]; ok {
		return lm
	}
	return nil
}

// AppendAs4Segment appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment struct to the
// list As4Segment of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) AppendAs4Segment(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.As4Segment == nil {
		t.As4Segment = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment)
	}

	if _, ok := t.As4Segment[key]; ok {
		return fmt.Errorf("duplicate key for list As4Segment %v", key)
	}

	t.As4Segment[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.As4Segment {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as4-path/as4-segment YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment struct {
	ΛMetadata []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	Index     *uint32                                                                                                                          `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as4-path/as4-segment/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State struct {
	ΛMetadata []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	Index     *uint32                                `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                      `path:"@index" ygotAnnotation:"true"`
	Member    []uint32                               `path:"member" module:"openconfig-network-instance"`
	ΛMember   []ygot.Annotation                      `path:"@member" ygotAnnotation:"true"`
	Type      E_OpenconfigBgpTypes_AsPathSegmentType `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetMember retrieves the value of the leaf Member from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Member is set, it can
// safely use t.GetMember() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Member == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) GetMember() []uint32 {
	if t == nil || t.Member == nil {
		return nil
	}
	return t.Member
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) GetType() E_OpenconfigBgpTypes_AsPathSegmentType {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_As4Path_As4Segment_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath struct {
	ΛMetadata  []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	AsSegment  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment `path:"as-segment" module:"openconfig-network-instance"`
	ΛAsSegment []ygot.Annotation                                                                                                                   `path:"@as-segment" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) IsYANGGoStruct() {
}

// NewAsSegment creates a new entry in the AsSegment list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) NewAsSegment(Index uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AsSegment == nil {
		t.AsSegment = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AsSegment[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AsSegment", key)
	}

	t.AsSegment[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment{
		Index: &Index,
	}

	return t.AsSegment[key], nil
}

// RenameAsSegment renames an entry in the list AsSegment within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) RenameAsSegment(oldK, newK uint32) error {
	if _, ok := t.AsSegment[newK]; ok {
		return fmt.Errorf("key %v already exists in AsSegment", newK)
	}

	e, ok := t.AsSegment[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AsSegment", oldK)
	}
	e.Index = &newK

	t.AsSegment[newK] = e
	delete(t.AsSegment, oldK)
	return nil
}

// GetOrCreateAsSegmentMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) GetOrCreateAsSegmentMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment {
	if t.AsSegment == nil {
		t.AsSegment = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment)
	}
	return t.AsSegment
}

// GetOrCreateAsSegment retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) GetOrCreateAsSegment(Index uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment {

	key := Index

	if v, ok := t.AsSegment[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAsSegment(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAsSegment got unexpected error: %v", err))
	}
	return v
}

// GetAsSegment retrieves the value with the specified key from
// the AsSegment map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) GetAsSegment(Index uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.AsSegment[key]; ok {
		return lm
	}
	return nil
}

// AppendAsSegment appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment struct to the
// list AsSegment of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) AppendAsSegment(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AsSegment == nil {
		t.AsSegment = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment)
	}

	if _, ok := t.AsSegment[key]; ok {
		return fmt.Errorf("duplicate key for list AsSegment %v", key)
	}

	t.AsSegment[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AsSegment {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as-path/as-segment YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment struct {
	ΛMetadata []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	Index     *uint32                                                                                                                        `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                              `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as-path/as-segment/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State struct {
	ΛMetadata []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	Index     *uint32                                `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                      `path:"@index" ygotAnnotation:"true"`
	Member    []uint32                               `path:"member" module:"openconfig-network-instance"`
	ΛMember   []ygot.Annotation                      `path:"@member" ygotAnnotation:"true"`
	Type      E_OpenconfigBgpTypes_AsPathSegmentType `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetMember retrieves the value of the leaf Member from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Member is set, it can
// safely use t.GetMember() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Member == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) GetMember() []uint32 {
	if t == nil || t.Member == nil {
		return nil
	}
	return t.Member
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) GetType() E_OpenconfigBgpTypes_AsPathSegmentType {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_AsPath_AsSegment_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State struct {
	ΛMetadata        []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	Aigp             *uint64                                `path:"aigp" module:"openconfig-network-instance"`
	ΛAigp            []ygot.Annotation                      `path:"@aigp" ygotAnnotation:"true"`
	AtomicAggregate  *bool                                  `path:"atomic-aggregate" module:"openconfig-network-instance"`
	ΛAtomicAggregate []ygot.Annotation                      `path:"@atomic-aggregate" ygotAnnotation:"true"`
	ClusterList      []string                               `path:"cluster-list" module:"openconfig-network-instance"`
	ΛClusterList     []ygot.Annotation                      `path:"@cluster-list" ygotAnnotation:"true"`
	Index            *uint64                                `path:"index" module:"openconfig-network-instance"`
	ΛIndex           []ygot.Annotation                      `path:"@index" ygotAnnotation:"true"`
	LocalPref        *uint32                                `path:"local-pref" module:"openconfig-network-instance"`
	ΛLocalPref       []ygot.Annotation                      `path:"@local-pref" ygotAnnotation:"true"`
	Med              *uint32                                `path:"med" module:"openconfig-network-instance"`
	ΛMed             []ygot.Annotation                      `path:"@med" ygotAnnotation:"true"`
	NextHop          *string                                `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop         []ygot.Annotation                      `path:"@next-hop" ygotAnnotation:"true"`
	Origin           E_OpenconfigBgpTypes_BgpOriginAttrType `path:"origin" module:"openconfig-network-instance"`
	ΛOrigin          []ygot.Annotation                      `path:"@origin" ygotAnnotation:"true"`
	OriginatorId     *string                                `path:"originator-id" module:"openconfig-network-instance"`
	ΛOriginatorId    []ygot.Annotation                      `path:"@originator-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) IsYANGGoStruct() {
}

// GetAigp retrieves the value of the leaf Aigp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Aigp is set, it can
// safely use t.GetAigp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Aigp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetAigp() uint64 {
	if t == nil || t.Aigp == nil {
		return 0
	}
	return *t.Aigp
}

// GetAtomicAggregate retrieves the value of the leaf AtomicAggregate from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AtomicAggregate is set, it can
// safely use t.GetAtomicAggregate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AtomicAggregate == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetAtomicAggregate() bool {
	if t == nil || t.AtomicAggregate == nil {
		return false
	}
	return *t.AtomicAggregate
}

// GetClusterList retrieves the value of the leaf ClusterList from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ClusterList is set, it can
// safely use t.GetClusterList() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ClusterList == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetClusterList() []string {
	if t == nil || t.ClusterList == nil {
		return nil
	}
	return t.ClusterList
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLocalPref retrieves the value of the leaf LocalPref from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalPref is set, it can
// safely use t.GetLocalPref() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalPref == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetLocalPref() uint32 {
	if t == nil || t.LocalPref == nil {
		return 0
	}
	return *t.LocalPref
}

// GetMed retrieves the value of the leaf Med from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Med is set, it can
// safely use t.GetMed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Med == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetMed() uint32 {
	if t == nil || t.Med == nil {
		return 0
	}
	return *t.Med
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetNextHop() string {
	if t == nil || t.NextHop == nil {
		return ""
	}
	return *t.NextHop
}

// GetOrigin retrieves the value of the leaf Origin from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Origin is set, it can
// safely use t.GetOrigin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Origin == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetOrigin() E_OpenconfigBgpTypes_BgpOriginAttrType {
	if t == nil || t.Origin == 0 {
		return 0
	}
	return t.Origin
}

// GetOriginatorId retrieves the value of the leaf OriginatorId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorId is set, it can
// safely use t.GetOriginatorId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) GetOriginatorId() string {
	if t == nil || t.OriginatorId == nil {
		return ""
	}
	return *t.OriginatorId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation struct {
	ΛMetadata []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Tunnels   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels `path:"tunnels" module:"openconfig-network-instance"`
	ΛTunnels  []ygot.Annotation                                                                                                                   `path:"@tunnels" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) IsYANGGoStruct() {
}

// GetOrCreateTunnels retrieves the value of the Tunnels field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) GetOrCreateTunnels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels {
	if t.Tunnels != nil {
		return t.Tunnels
	}
	t.Tunnels = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels{}
	return t.Tunnels
}

// GetTunnels returns the value of the Tunnels struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation. If the receiver or the field Tunnels is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) GetTunnels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels {
	if t != nil && t.Tunnels != nil {
		return t.Tunnels
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Tunnels.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Tunnel    map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel `path:"tunnel" module:"openconfig-network-instance"`
	ΛTunnel   []ygot.Annotation                                                                                                                                                                                `path:"@tunnel" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) IsYANGGoStruct() {
}

// NewTunnel creates a new entry in the Tunnel list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) NewTunnel(Type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tunnel == nil {
		t.Tunnel = make(map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Tunnel[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Tunnel", key)
	}

	t.Tunnel[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel{
		Type: Type,
	}

	return t.Tunnel[key], nil
}

// RenameTunnel renames an entry in the list Tunnel within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) RenameTunnel(oldK, newK E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE) error {
	if _, ok := t.Tunnel[newK]; ok {
		return fmt.Errorf("key %v already exists in Tunnel", newK)
	}

	e, ok := t.Tunnel[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Tunnel", oldK)
	}
	e.Type = newK

	t.Tunnel[newK] = e
	delete(t.Tunnel, oldK)
	return nil
}

// GetOrCreateTunnelMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) GetOrCreateTunnelMap() map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel {
	if t.Tunnel == nil {
		t.Tunnel = make(map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel)
	}
	return t.Tunnel
}

// GetOrCreateTunnel retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) GetOrCreateTunnel(Type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel {

	key := Type

	if v, ok := t.Tunnel[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTunnel(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTunnel got unexpected error: %v", err))
	}
	return v
}

// GetTunnel retrieves the value with the specified key from
// the Tunnel map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) GetTunnel(Type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Tunnel[key]; ok {
		return lm
	}
	return nil
}

// AppendTunnel appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel struct to the
// list Tunnel of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) AppendTunnel(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tunnel == nil {
		t.Tunnel = make(map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel)
	}

	if _, ok := t.Tunnel[key]; ok {
		return fmt.Errorf("duplicate key for list Tunnel %v", key)
	}

	t.Tunnel[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tunnel {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel struct {
	ΛMetadata []ygot.Annotation                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State   `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Subtlvs   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs  []ygot.Annotation                                                                                                                                  `path:"@subtlvs" ygotAnnotation:"true"`
	Type      E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE                                                                                                  `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs{}
	return t.Subtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) GetType() E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State struct {
	ΛMetadata []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                 `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State) GetType() E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                      `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) NewSubtlv(Type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) GetSubtlv(Type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	RemoteEndpoints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints `path:"remote-endpoints" module:"openconfig-network-instance"`
	ΛRemoteEndpoints []ygot.Annotation                                                                                                                                                         `path:"@remote-endpoints" ygotAnnotation:"true"`
	SegmentLists     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists    `path:"segment-lists" module:"openconfig-network-instance"`
	ΛSegmentLists    []ygot.Annotation                                                                                                                                                         `path:"@segment-lists" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	Type             E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE                                                                                                                  `path:"type" module:"openconfig-network-instance"`
	ΛType            []ygot.Annotation                                                                                                                                                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateRemoteEndpoints retrieves the value of the RemoteEndpoints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) GetOrCreateRemoteEndpoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints {
	if t.RemoteEndpoints != nil {
		return t.RemoteEndpoints
	}
	t.RemoteEndpoints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints{}
	return t.RemoteEndpoints
}

// GetOrCreateSegmentLists retrieves the value of the SegmentLists field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) GetOrCreateSegmentLists() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists {
	if t.SegmentLists != nil {
		return t.SegmentLists
	}
	t.SegmentLists = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists{}
	return t.SegmentLists
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State{}
	return t.State
}

// GetRemoteEndpoints returns the value of the RemoteEndpoints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv. If the receiver or the field RemoteEndpoints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) GetRemoteEndpoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints {
	if t != nil && t.RemoteEndpoints != nil {
		return t.RemoteEndpoints
	}
	return nil
}

// GetSegmentLists returns the value of the SegmentLists struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv. If the receiver or the field SegmentLists is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) GetSegmentLists() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists {
	if t != nil && t.SegmentLists != nil {
		return t.SegmentLists
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) GetType() E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.RemoteEndpoints.PopulateDefaults()
	t.SegmentLists.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/remote-endpoints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	RemoteEndpoint  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint `path:"remote-endpoint" module:"openconfig-network-instance"`
	ΛRemoteEndpoint []ygot.Annotation                                                                                                                                                                                   `path:"@remote-endpoint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) IsYANGGoStruct() {
}

// NewRemoteEndpoint creates a new entry in the RemoteEndpoint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) NewRemoteEndpoint(Endpoint string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RemoteEndpoint == nil {
		t.RemoteEndpoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint)
	}

	key := Endpoint

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RemoteEndpoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RemoteEndpoint", key)
	}

	t.RemoteEndpoint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint{
		Endpoint: &Endpoint,
	}

	return t.RemoteEndpoint[key], nil
}

// RenameRemoteEndpoint renames an entry in the list RemoteEndpoint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) RenameRemoteEndpoint(oldK, newK string) error {
	if _, ok := t.RemoteEndpoint[newK]; ok {
		return fmt.Errorf("key %v already exists in RemoteEndpoint", newK)
	}

	e, ok := t.RemoteEndpoint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in RemoteEndpoint", oldK)
	}
	e.Endpoint = &newK

	t.RemoteEndpoint[newK] = e
	delete(t.RemoteEndpoint, oldK)
	return nil
}

// GetOrCreateRemoteEndpointMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) GetOrCreateRemoteEndpointMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint {
	if t.RemoteEndpoint == nil {
		t.RemoteEndpoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint)
	}
	return t.RemoteEndpoint
}

// GetOrCreateRemoteEndpoint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) GetOrCreateRemoteEndpoint(Endpoint string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint {

	key := Endpoint

	if v, ok := t.RemoteEndpoint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRemoteEndpoint(Endpoint)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRemoteEndpoint got unexpected error: %v", err))
	}
	return v
}

// GetRemoteEndpoint retrieves the value with the specified key from
// the RemoteEndpoint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) GetRemoteEndpoint(Endpoint string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint {

	if t == nil {
		return nil
	}

	key := Endpoint

	if lm, ok := t.RemoteEndpoint[key]; ok {
		return lm
	}
	return nil
}

// AppendRemoteEndpoint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint struct to the
// list RemoteEndpoint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) AppendRemoteEndpoint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) error {
	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key received for Endpoint")
	}

	key := *v.Endpoint

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RemoteEndpoint == nil {
		t.RemoteEndpoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint)
	}

	if _, ok := t.RemoteEndpoint[key]; ok {
		return fmt.Errorf("duplicate key for list RemoteEndpoint %v", key)
	}

	t.RemoteEndpoint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.RemoteEndpoint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/remote-endpoints/remote-endpoint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Endpoint  *string                                                                                                                                                                                        `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint []ygot.Annotation                                                                                                                                                                              `path:"@endpoint" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	return map[string]interface{}{
		"endpoint": *t.Endpoint,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/remote-endpoints/remote-endpoint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	As        *uint32           `path:"as" module:"openconfig-network-instance"`
	ΛAs       []ygot.Annotation `path:"@as" ygotAnnotation:"true"`
	Endpoint  *string           `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint []ygot.Annotation `path:"@endpoint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) IsYANGGoStruct() {
}

// GetAs retrieves the value of the leaf As from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if As is set, it can
// safely use t.GetAs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.As == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) GetAs() uint32 {
	if t == nil || t.As == nil {
		return 0
	}
	return *t.As
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_RemoteEndpoints_RemoteEndpoint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	SegmentList  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList `path:"segment-list" module:"openconfig-network-instance"`
	ΛSegmentList []ygot.Annotation                                                                                                                                                                             `path:"@segment-list" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) IsYANGGoStruct() {
}

// NewSegmentList creates a new entry in the SegmentList list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) NewSegmentList(InstanceId uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SegmentList == nil {
		t.SegmentList = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList)
	}

	key := InstanceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SegmentList[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SegmentList", key)
	}

	t.SegmentList[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList{
		InstanceId: &InstanceId,
	}

	return t.SegmentList[key], nil
}

// RenameSegmentList renames an entry in the list SegmentList within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) RenameSegmentList(oldK, newK uint64) error {
	if _, ok := t.SegmentList[newK]; ok {
		return fmt.Errorf("key %v already exists in SegmentList", newK)
	}

	e, ok := t.SegmentList[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SegmentList", oldK)
	}
	e.InstanceId = &newK

	t.SegmentList[newK] = e
	delete(t.SegmentList, oldK)
	return nil
}

// GetOrCreateSegmentListMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) GetOrCreateSegmentListMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList {
	if t.SegmentList == nil {
		t.SegmentList = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList)
	}
	return t.SegmentList
}

// GetOrCreateSegmentList retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) GetOrCreateSegmentList(InstanceId uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList {

	key := InstanceId

	if v, ok := t.SegmentList[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSegmentList(InstanceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSegmentList got unexpected error: %v", err))
	}
	return v
}

// GetSegmentList retrieves the value with the specified key from
// the SegmentList map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) GetSegmentList(InstanceId uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList {

	if t == nil {
		return nil
	}

	key := InstanceId

	if lm, ok := t.SegmentList[key]; ok {
		return lm
	}
	return nil
}

// AppendSegmentList appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList struct to the
// list SegmentList of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) AppendSegmentList(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) error {
	if v.InstanceId == nil {
		return fmt.Errorf("invalid nil key received for InstanceId")
	}

	key := *v.InstanceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SegmentList == nil {
		t.SegmentList = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList)
	}

	if _, ok := t.SegmentList[key]; ok {
		return fmt.Errorf("duplicate key for list SegmentList %v", key)
	}

	t.SegmentList[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SegmentList {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	InstanceId  *uint64                                                                                                                                                                                     `path:"instance-id" module:"openconfig-network-instance"`
	ΛInstanceId []ygot.Annotation                                                                                                                                                                           `path:"@instance-id" ygotAnnotation:"true"`
	Segments    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments `path:"segments" module:"openconfig-network-instance"`
	ΛSegments   []ygot.Annotation                                                                                                                                                                           `path:"@segments" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State    `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) IsYANGGoStruct() {
}

// GetOrCreateSegments retrieves the value of the Segments field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) GetOrCreateSegments() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments {
	if t.Segments != nil {
		return t.Segments
	}
	t.Segments = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments{}
	return t.Segments
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State{}
	return t.State
}

// GetSegments returns the value of the Segments struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList. If the receiver or the field Segments is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) GetSegments() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments {
	if t != nil && t.Segments != nil {
		return t.Segments
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInstanceId retrieves the value of the leaf InstanceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceId is set, it can
// safely use t.GetInstanceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) GetInstanceId() uint64 {
	if t == nil || t.InstanceId == nil {
		return 0
	}
	return *t.InstanceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Segments.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InstanceId == nil {
		return nil, fmt.Errorf("nil value for key InstanceId")
	}

	return map[string]interface{}{
		"instance-id": *t.InstanceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list/segments YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Segment   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment `path:"segment" module:"openconfig-network-instance"`
	ΛSegment  []ygot.Annotation                                                                                                                                                                                              `path:"@segment" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) IsYANGGoStruct() {
}

// NewSegment creates a new entry in the Segment list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) NewSegment(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Segment == nil {
		t.Segment = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Segment[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Segment", key)
	}

	t.Segment[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment{
		Index: &Index,
	}

	return t.Segment[key], nil
}

// RenameSegment renames an entry in the list Segment within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) RenameSegment(oldK, newK uint64) error {
	if _, ok := t.Segment[newK]; ok {
		return fmt.Errorf("key %v already exists in Segment", newK)
	}

	e, ok := t.Segment[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Segment", oldK)
	}
	e.Index = &newK

	t.Segment[newK] = e
	delete(t.Segment, oldK)
	return nil
}

// GetOrCreateSegmentMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) GetOrCreateSegmentMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment {
	if t.Segment == nil {
		t.Segment = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment)
	}
	return t.Segment
}

// GetOrCreateSegment retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) GetOrCreateSegment(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment {

	key := Index

	if v, ok := t.Segment[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSegment(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSegment got unexpected error: %v", err))
	}
	return v
}

// GetSegment retrieves the value with the specified key from
// the Segment map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) GetSegment(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Segment[key]; ok {
		return lm
	}
	return nil
}

// AppendSegment appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment struct to the
// list Segment of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) AppendSegment(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Segment == nil {
		t.Segment = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment)
	}

	if _, ok := t.Segment[key]; ok {
		return fmt.Errorf("duplicate key for list Segment %v", key)
	}

	t.Segment[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Segment {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list/segments/segment YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                                                                                                                   `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                                                                                         `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list/segments/segment/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Index              *uint64                                                                                                                                                                                                            `path:"index" module:"openconfig-network-instance"`
	ΛIndex             []ygot.Annotation                                                                                                                                                                                                  `path:"@index" ygotAnnotation:"true"`
	LocalInterfaceId   *uint32                                                                                                                                                                                                            `path:"local-interface-id" module:"openconfig-network-instance"`
	ΛLocalInterfaceId  []ygot.Annotation                                                                                                                                                                                                  `path:"@local-interface-id" ygotAnnotation:"true"`
	LocalIpv4Address   *string                                                                                                                                                                                                            `path:"local-ipv4-address" module:"openconfig-network-instance"`
	ΛLocalIpv4Address  []ygot.Annotation                                                                                                                                                                                                  `path:"@local-ipv4-address" ygotAnnotation:"true"`
	LocalIpv6Address   *string                                                                                                                                                                                                            `path:"local-ipv6-address" module:"openconfig-network-instance"`
	ΛLocalIpv6Address  []ygot.Annotation                                                                                                                                                                                                  `path:"@local-ipv6-address" ygotAnnotation:"true"`
	MplsBos            *bool                                                                                                                                                                                                              `path:"mpls-bos" module:"openconfig-network-instance"`
	ΛMplsBos           []ygot.Annotation                                                                                                                                                                                                  `path:"@mpls-bos" ygotAnnotation:"true"`
	MplsTc             *uint8                                                                                                                                                                                                             `path:"mpls-tc" module:"openconfig-network-instance"`
	ΛMplsTc            []ygot.Annotation                                                                                                                                                                                                  `path:"@mpls-tc" ygotAnnotation:"true"`
	MplsTtl            *uint8                                                                                                                                                                                                             `path:"mpls-ttl" module:"openconfig-network-instance"`
	ΛMplsTtl           []ygot.Annotation                                                                                                                                                                                                  `path:"@mpls-ttl" ygotAnnotation:"true"`
	RemoteIpv4Address  *string                                                                                                                                                                                                            `path:"remote-ipv4-address" module:"openconfig-network-instance"`
	ΛRemoteIpv4Address []ygot.Annotation                                                                                                                                                                                                  `path:"@remote-ipv4-address" ygotAnnotation:"true"`
	RemoteIpv6Address  *string                                                                                                                                                                                                            `path:"remote-ipv6-address" module:"openconfig-network-instance"`
	ΛRemoteIpv6Address []ygot.Annotation                                                                                                                                                                                                  `path:"@remote-ipv6-address" ygotAnnotation:"true"`
	Sid                OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union `path:"sid" module:"openconfig-network-instance"`
	ΛSid               []ygot.Annotation                                                                                                                                                                                                  `path:"@sid" ygotAnnotation:"true"`
	Type               E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type    `path:"type" module:"openconfig-network-instance"`
	ΛType              []ygot.Annotation                                                                                                                                                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLocalInterfaceId retrieves the value of the leaf LocalInterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalInterfaceId is set, it can
// safely use t.GetLocalInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalInterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetLocalInterfaceId() uint32 {
	if t == nil || t.LocalInterfaceId == nil {
		return 0
	}
	return *t.LocalInterfaceId
}

// GetLocalIpv4Address retrieves the value of the leaf LocalIpv4Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalIpv4Address is set, it can
// safely use t.GetLocalIpv4Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalIpv4Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetLocalIpv4Address() string {
	if t == nil || t.LocalIpv4Address == nil {
		return ""
	}
	return *t.LocalIpv4Address
}

// GetLocalIpv6Address retrieves the value of the leaf LocalIpv6Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalIpv6Address is set, it can
// safely use t.GetLocalIpv6Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalIpv6Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetLocalIpv6Address() string {
	if t == nil || t.LocalIpv6Address == nil {
		return ""
	}
	return *t.LocalIpv6Address
}

// GetMplsBos retrieves the value of the leaf MplsBos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsBos is set, it can
// safely use t.GetMplsBos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsBos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetMplsBos() bool {
	if t == nil || t.MplsBos == nil {
		return false
	}
	return *t.MplsBos
}

// GetMplsTc retrieves the value of the leaf MplsTc from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsTc is set, it can
// safely use t.GetMplsTc() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsTc == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetMplsTc() uint8 {
	if t == nil || t.MplsTc == nil {
		return 0
	}
	return *t.MplsTc
}

// GetMplsTtl retrieves the value of the leaf MplsTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsTtl is set, it can
// safely use t.GetMplsTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetMplsTtl() uint8 {
	if t == nil || t.MplsTtl == nil {
		return 0
	}
	return *t.MplsTtl
}

// GetRemoteIpv4Address retrieves the value of the leaf RemoteIpv4Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteIpv4Address is set, it can
// safely use t.GetRemoteIpv4Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteIpv4Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetRemoteIpv4Address() string {
	if t == nil || t.RemoteIpv4Address == nil {
		return ""
	}
	return *t.RemoteIpv4Address
}

// GetRemoteIpv6Address retrieves the value of the leaf RemoteIpv6Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteIpv6Address is set, it can
// safely use t.GetRemoteIpv6Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteIpv6Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetRemoteIpv6Address() string {
	if t == nil || t.RemoteIpv6Address == nil {
		return ""
	}
	return *t.RemoteIpv6Address
}

// GetSid retrieves the value of the leaf Sid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sid is set, it can
// safely use t.GetSid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetSid() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union {
	if t == nil || t.Sid == nil {
		return nil
	}
	return t.Sid
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) GetType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list/segments/segment/state/sid within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Sid_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InstanceId  *uint64           `path:"instance-id" module:"openconfig-network-instance"`
	ΛInstanceId []ygot.Annotation `path:"@instance-id" ygotAnnotation:"true"`
	Weight      *uint32           `path:"weight" module:"openconfig-network-instance"`
	ΛWeight     []ygot.Annotation `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) IsYANGGoStruct() {
}

// GetInstanceId retrieves the value of the leaf InstanceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceId is set, it can
// safely use t.GetInstanceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) GetInstanceId() uint64 {
	if t == nil || t.InstanceId == nil {
		return 0
	}
	return *t.InstanceId
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) GetWeight() uint32 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	BindingSid  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union `path:"binding-sid" module:"openconfig-network-instance"`
	ΛBindingSid []ygot.Annotation                                                                                                                                                               `path:"@binding-sid" ygotAnnotation:"true"`
	Colors      []uint32                                                                                                                                                                        `path:"colors" module:"openconfig-network-instance"`
	ΛColors     []ygot.Annotation                                                                                                                                                               `path:"@colors" ygotAnnotation:"true"`
	Preference  *uint32                                                                                                                                                                         `path:"preference" module:"openconfig-network-instance"`
	ΛPreference []ygot.Annotation                                                                                                                                                               `path:"@preference" ygotAnnotation:"true"`
	Type        E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE                                                                                                                        `path:"type" module:"openconfig-network-instance"`
	ΛType       []ygot.Annotation                                                                                                                                                               `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetBindingSid retrieves the value of the leaf BindingSid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BindingSid is set, it can
// safely use t.GetBindingSid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BindingSid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) GetBindingSid() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union {
	if t == nil || t.BindingSid == nil {
		return nil
	}
	return t.BindingSid
}

// GetColors retrieves the value of the leaf Colors from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Colors is set, it can
// safely use t.GetColors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Colors == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) GetColors() []uint32 {
	if t == nil || t.Colors == nil {
		return nil
	}
	return t.Colors
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) GetPreference() uint32 {
	if t == nil || t.Preference == nil {
		return 100
	}
	return *t.Preference
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) GetType() E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Preference == nil {
		var v uint32 = 100
		t.Preference = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/state/binding-sid within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_State_BindingSid_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/communities YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities struct {
	ΛMetadata  []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Community  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community `path:"community" module:"openconfig-network-instance"`
	ΛCommunity []ygot.Annotation                                                                                                       `path:"@community" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) IsYANGGoStruct() {
}

// NewCommunity creates a new entry in the Community list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) NewCommunity(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Community == nil {
		t.Community = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Community[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Community", key)
	}

	t.Community[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community{
		Index: &Index,
	}

	return t.Community[key], nil
}

// RenameCommunity renames an entry in the list Community within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) RenameCommunity(oldK, newK uint64) error {
	if _, ok := t.Community[newK]; ok {
		return fmt.Errorf("key %v already exists in Community", newK)
	}

	e, ok := t.Community[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Community", oldK)
	}
	e.Index = &newK

	t.Community[newK] = e
	delete(t.Community, oldK)
	return nil
}

// GetOrCreateCommunityMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) GetOrCreateCommunityMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community {
	if t.Community == nil {
		t.Community = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community)
	}
	return t.Community
}

// GetOrCreateCommunity retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) GetOrCreateCommunity(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community {

	key := Index

	if v, ok := t.Community[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewCommunity(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateCommunity got unexpected error: %v", err))
	}
	return v
}

// GetCommunity retrieves the value with the specified key from
// the Community map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) GetCommunity(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Community[key]; ok {
		return lm
	}
	return nil
}

// AppendCommunity appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community struct to the
// list Community of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) AppendCommunity(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Community == nil {
		t.Community = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community)
	}

	if _, ok := t.Community[key]; ok {
		return fmt.Errorf("duplicate key for list Community %v", key)
	}

	t.Community[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Community {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/communities/community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community struct {
	ΛMetadata []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                            `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                  `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/communities/community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Community  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union `path:"community" module:"openconfig-network-instance"`
	ΛCommunity []ygot.Annotation                                                                                                                   `path:"@community" ygotAnnotation:"true"`
	Index      *uint64                                                                                                                             `path:"index" module:"openconfig-network-instance"`
	ΛIndex     []ygot.Annotation                                                                                                                   `path:"@index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) IsYANGGoStruct() {
}

// GetCommunity retrieves the value of the leaf Community from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Community is set, it can
// safely use t.GetCommunity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Community == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) GetCommunity() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union {
	if t == nil || t.Community == nil {
		return nil
	}
	return t.Community
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/communities/community/state/community within the YANG schema.
// Union type can be one of [E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union interface {
	// Union type can be one of [E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union ensures that E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union interface.
func (E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_Communities_Community_State_Community_Union, unknown union type, got: %T, want any of [E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/ext-communities YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities struct {
	ΛMetadata     []ygot.Annotation                                                                                                             `path:"@" ygotAnnotation:"true"`
	ExtCommunity  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity `path:"ext-community" module:"openconfig-network-instance"`
	ΛExtCommunity []ygot.Annotation                                                                                                             `path:"@ext-community" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) IsYANGGoStruct() {
}

// NewExtCommunity creates a new entry in the ExtCommunity list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) NewExtCommunity(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ExtCommunity == nil {
		t.ExtCommunity = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ExtCommunity[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ExtCommunity", key)
	}

	t.ExtCommunity[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity{
		Index: &Index,
	}

	return t.ExtCommunity[key], nil
}

// RenameExtCommunity renames an entry in the list ExtCommunity within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) RenameExtCommunity(oldK, newK uint64) error {
	if _, ok := t.ExtCommunity[newK]; ok {
		return fmt.Errorf("key %v already exists in ExtCommunity", newK)
	}

	e, ok := t.ExtCommunity[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ExtCommunity", oldK)
	}
	e.Index = &newK

	t.ExtCommunity[newK] = e
	delete(t.ExtCommunity, oldK)
	return nil
}

// GetOrCreateExtCommunityMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) GetOrCreateExtCommunityMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity {
	if t.ExtCommunity == nil {
		t.ExtCommunity = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity)
	}
	return t.ExtCommunity
}

// GetOrCreateExtCommunity retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) GetOrCreateExtCommunity(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity {

	key := Index

	if v, ok := t.ExtCommunity[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewExtCommunity(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateExtCommunity got unexpected error: %v", err))
	}
	return v
}

// GetExtCommunity retrieves the value with the specified key from
// the ExtCommunity map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) GetExtCommunity(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.ExtCommunity[key]; ok {
		return lm
	}
	return nil
}

// AppendExtCommunity appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity struct to the
// list ExtCommunity of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) AppendExtCommunity(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ExtCommunity == nil {
		t.ExtCommunity = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity)
	}

	if _, ok := t.ExtCommunity[key]; ok {
		return fmt.Errorf("duplicate key for list ExtCommunity %v", key)
	}

	t.ExtCommunity[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ExtCommunity {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/ext-communities/ext-community YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                                  `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                        `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/ext-communities/ext-community/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State struct {
	ΛMetadata     []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	ExtCommunity  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union `path:"ext-community" module:"openconfig-network-instance"`
	ΛExtCommunity []ygot.Annotation                                                                                                                            `path:"@ext-community" ygotAnnotation:"true"`
	Index         *uint64                                                                                                                                      `path:"index" module:"openconfig-network-instance"`
	ΛIndex        []ygot.Annotation                                                                                                                            `path:"@index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) IsYANGGoStruct() {
}

// GetExtCommunity retrieves the value of the leaf ExtCommunity from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtCommunity is set, it can
// safely use t.GetExtCommunity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtCommunity == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) GetExtCommunity() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union {
	if t == nil || t.ExtCommunity == nil {
		return nil
	}
	return t.ExtCommunity
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/bgp/rib/ext-communities/ext-community/state/ext-community within the YANG schema.
// Union type can be one of [Binary, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union interface {
	// Union type can be one of [Binary, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union ensures that Binary
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union interface.
func (Binary) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case []byte:
		return Binary(v), nil
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_ExtCommunities_ExtCommunity_State_ExtCommunity_Union, unknown union type, got: %T, want any of [Binary, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config struct {
	ΛMetadata      []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	DefaultMetric  *uint32                                       `path:"default-metric" module:"openconfig-network-instance"`
	ΛDefaultMetric []ygot.Annotation                             `path:"@default-metric" ygotAnnotation:"true"`
	Enabled        *bool                                         `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled       []ygot.Annotation                             `path:"@enabled" ygotAnnotation:"true"`
	Identifier     E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier    []ygot.Annotation                             `path:"@identifier" ygotAnnotation:"true"`
	Name           *string                                       `path:"name" module:"openconfig-network-instance"`
	ΛName          []ygot.Annotation                             `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) IsYANGGoStruct() {
}

// GetDefaultMetric retrieves the value of the leaf DefaultMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultMetric is set, it can
// safely use t.GetDefaultMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) GetDefaultMetric() uint32 {
	if t == nil || t.DefaultMetric == nil {
		return 0
	}
	return *t.DefaultMetric
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) GetIdentifier() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.Identifier == 0 {
		return 0
	}
	return t.Identifier
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) GetName() string {
	if t == nil || t.Name == nil {
		return "DEFAULT"
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Name == nil {
		var v string = "DEFAULT"
		t.Name = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp struct {
	ΛMetadata   []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	Global      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global     `path:"global" module:"openconfig-network-instance"`
	ΛGlobal     []ygot.Annotation                                                                              `path:"@global" ygotAnnotation:"true"`
	Interfaces  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces []ygot.Annotation                                                                              `path:"@interfaces" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) IsYANGGoStruct() {
}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global{}
	return t.Global
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces{}
	return t.Interfaces
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Global.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global struct {
	ΛMetadata []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	Ssm       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm `path:"ssm" module:"openconfig-network-instance"`
	ΛSsm      []ygot.Annotation                                                                              `path:"@ssm" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) IsYANGGoStruct() {
}

// GetOrCreateSsm retrieves the value of the Ssm field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) GetOrCreateSsm() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm {
	if t.Ssm != nil {
		return t.Ssm
	}
	t.Ssm = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm{}
	return t.Ssm
}

// GetSsm returns the value of the Ssm struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global. If the receiver or the field Ssm is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) GetSsm() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm {
	if t != nil && t.Ssm != nil {
		return t.Ssm
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ssm.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/global/ssm YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm struct {
	ΛMetadata []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	Mappings  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings `path:"mappings" module:"openconfig-network-instance"`
	ΛMappings []ygot.Annotation                                                                                       `path:"@mappings" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) IsYANGGoStruct() {
}

// GetOrCreateMappings retrieves the value of the Mappings field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) GetOrCreateMappings() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings {
	if t.Mappings != nil {
		return t.Mappings
	}
	t.Mappings = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings{}
	return t.Mappings
}

// GetMappings returns the value of the Mappings struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm. If the receiver or the field Mappings is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) GetMappings() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings {
	if t != nil && t.Mappings != nil {
		return t.Mappings
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Mappings.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/global/ssm/mappings YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Mapping   map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping `path:"mapping" module:"openconfig-network-instance"`
	ΛMapping  []ygot.Annotation                                                                                                          `path:"@mapping" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) IsYANGGoStruct() {
}

// NewMapping creates a new entry in the Mapping list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) NewMapping(Source string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Mapping == nil {
		t.Mapping = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping)
	}

	key := Source

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Mapping[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Mapping", key)
	}

	t.Mapping[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping{
		Source: &Source,
	}

	return t.Mapping[key], nil
}

// RenameMapping renames an entry in the list Mapping within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) RenameMapping(oldK, newK string) error {
	if _, ok := t.Mapping[newK]; ok {
		return fmt.Errorf("key %v already exists in Mapping", newK)
	}

	e, ok := t.Mapping[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Mapping", oldK)
	}
	e.Source = &newK

	t.Mapping[newK] = e
	delete(t.Mapping, oldK)
	return nil
}

// GetOrCreateMappingMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) GetOrCreateMappingMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping {
	if t.Mapping == nil {
		t.Mapping = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping)
	}
	return t.Mapping
}

// GetOrCreateMapping retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) GetOrCreateMapping(Source string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping {

	key := Source

	if v, ok := t.Mapping[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewMapping(Source)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateMapping got unexpected error: %v", err))
	}
	return v
}

// GetMapping retrieves the value with the specified key from
// the Mapping map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) GetMapping(Source string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping {

	if t == nil {
		return nil
	}

	key := Source

	if lm, ok := t.Mapping[key]; ok {
		return lm
	}
	return nil
}

// AppendMapping appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping struct to the
// list Mapping of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) AppendMapping(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) error {
	if v.Source == nil {
		return fmt.Errorf("invalid nil key received for Source")
	}

	key := *v.Source

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Mapping == nil {
		t.Mapping = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping)
	}

	if _, ok := t.Mapping[key]; ok {
		return fmt.Errorf("duplicate key for list Mapping %v", key)
	}

	t.Mapping[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Mapping {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/global/ssm/mappings/mapping YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	Source    *string                                                                                                                `path:"source" module:"openconfig-network-instance"`
	ΛSource   []ygot.Annotation                                                                                                      `path:"@source" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Source == nil {
		return nil, fmt.Errorf("nil value for key Source")
	}

	return map[string]interface{}{
		"source": *t.Source,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/global/ssm/mappings/mapping/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Source     *string           `path:"source" module:"openconfig-network-instance"`
	ΛSource    []ygot.Annotation `path:"@source" ygotAnnotation:"true"`
	SsmRanges  *string           `path:"ssm-ranges" module:"openconfig-network-instance"`
	ΛSsmRanges []ygot.Annotation `path:"@ssm-ranges" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) IsYANGGoStruct() {
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// GetSsmRanges retrieves the value of the leaf SsmRanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SsmRanges is set, it can
// safely use t.GetSsmRanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SsmRanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) GetSsmRanges() string {
	if t == nil || t.SsmRanges == nil {
		return ""
	}
	return *t.SsmRanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/global/ssm/mappings/mapping/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Source     *string           `path:"source" module:"openconfig-network-instance"`
	ΛSource    []ygot.Annotation `path:"@source" ygotAnnotation:"true"`
	SsmRanges  *string           `path:"ssm-ranges" module:"openconfig-network-instance"`
	ΛSsmRanges []ygot.Annotation `path:"@ssm-ranges" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) IsYANGGoStruct() {
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// GetSsmRanges retrieves the value of the leaf SsmRanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SsmRanges is set, it can
// safely use t.GetSsmRanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SsmRanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) GetSsmRanges() string {
	if t == nil || t.SsmRanges == nil {
		return ""
	}
	return *t.SsmRanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Global_Ssm_Mappings_Mapping_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                   `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface struct {
	ΛMetadata               []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config                 `path:"config" module:"openconfig-network-instance"`
	ΛConfig                 []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	Counters                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters               `path:"counters" module:"openconfig-network-instance"`
	ΛCounters               []ygot.Annotation                                                                                                               `path:"@counters" ygotAnnotation:"true"`
	InterfaceId             *string                                                                                                                         `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId            []ygot.Annotation                                                                                                               `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef           `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef           []ygot.Annotation                                                                                                               `path:"@interface-ref" ygotAnnotation:"true"`
	MembershipGroups        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups       `path:"membership-groups" module:"openconfig-network-instance"`
	ΛMembershipGroups       []ygot.Annotation                                                                                                               `path:"@membership-groups" ygotAnnotation:"true"`
	State                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State                  `path:"state" module:"openconfig-network-instance"`
	ΛState                  []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
	StaticMembershipGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups `path:"static-membership-groups" module:"openconfig-network-instance"`
	ΛStaticMembershipGroups []ygot.Annotation                                                                                                               `path:"@static-membership-groups" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters{}
	return t.Counters
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateMembershipGroups retrieves the value of the MembershipGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetOrCreateMembershipGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups {
	if t.MembershipGroups != nil {
		return t.MembershipGroups
	}
	t.MembershipGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups{}
	return t.MembershipGroups
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State{}
	return t.State
}

// GetOrCreateStaticMembershipGroups retrieves the value of the StaticMembershipGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetOrCreateStaticMembershipGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups {
	if t.StaticMembershipGroups != nil {
		return t.StaticMembershipGroups
	}
	t.StaticMembershipGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups{}
	return t.StaticMembershipGroups
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetMembershipGroups returns the value of the MembershipGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface. If the receiver or the field MembershipGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetMembershipGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups {
	if t != nil && t.MembershipGroups != nil {
		return t.MembershipGroups
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetStaticMembershipGroups returns the value of the StaticMembershipGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface. If the receiver or the field StaticMembershipGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetStaticMembershipGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups {
	if t != nil && t.StaticMembershipGroups != nil {
		return t.StaticMembershipGroups
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Counters.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.MembershipGroups.PopulateDefaults()
	t.State.PopulateDefaults()
	t.StaticMembershipGroups.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled         *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled        []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	FilterPrefixes  *string           `path:"filter-prefixes" module:"openconfig-network-instance"`
	ΛFilterPrefixes []ygot.Annotation `path:"@filter-prefixes" ygotAnnotation:"true"`
	InterfaceId     *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId    []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	QueryInterval   *uint16           `path:"query-interval" module:"openconfig-network-instance"`
	ΛQueryInterval  []ygot.Annotation `path:"@query-interval" ygotAnnotation:"true"`
	Version         *uint8            `path:"version" module:"openconfig-network-instance"`
	ΛVersion        []ygot.Annotation `path:"@version" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetFilterPrefixes retrieves the value of the leaf FilterPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FilterPrefixes is set, it can
// safely use t.GetFilterPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FilterPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) GetFilterPrefixes() string {
	if t == nil || t.FilterPrefixes == nil {
		return ""
	}
	return *t.FilterPrefixes
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetQueryInterval retrieves the value of the leaf QueryInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if QueryInterval is set, it can
// safely use t.GetQueryInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.QueryInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) GetQueryInterval() uint16 {
	if t == nil || t.QueryInterval == nil {
		return 0
	}
	return *t.QueryInterval
}

// GetVersion retrieves the value of the leaf Version from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Version is set, it can
// safely use t.GetVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Version == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) GetVersion() uint8 {
	if t == nil || t.Version == nil {
		return 0
	}
	return *t.Version
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters struct {
	ΛMetadata []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	Queries   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries `path:"queries" module:"openconfig-network-instance"`
	ΛQueries  []ygot.Annotation                                                                                                         `path:"@queries" ygotAnnotation:"true"`
	Reports   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports `path:"reports" module:"openconfig-network-instance"`
	ΛReports  []ygot.Annotation                                                                                                         `path:"@reports" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) IsYANGGoStruct() {
}

// GetOrCreateQueries retrieves the value of the Queries field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) GetOrCreateQueries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries {
	if t.Queries != nil {
		return t.Queries
	}
	t.Queries = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries{}
	return t.Queries
}

// GetOrCreateReports retrieves the value of the Reports field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) GetOrCreateReports() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports {
	if t.Reports != nil {
		return t.Reports
	}
	t.Reports = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports{}
	return t.Reports
}

// GetQueries returns the value of the Queries struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters. If the receiver or the field Queries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) GetQueries() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries {
	if t != nil && t.Queries != nil {
		return t.Queries
	}
	return nil
}

// GetReports returns the value of the Reports struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters. If the receiver or the field Reports is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) GetReports() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports {
	if t != nil && t.Reports != nil {
		return t.Reports
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Queries.PopulateDefaults()
	t.Reports.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters/queries YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries struct {
	ΛMetadata []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Received  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received `path:"received" module:"openconfig-network-instance"`
	ΛReceived []ygot.Annotation                                                                                                                  `path:"@received" ygotAnnotation:"true"`
	Sent      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent     `path:"sent" module:"openconfig-network-instance"`
	ΛSent     []ygot.Annotation                                                                                                                  `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) IsYANGGoStruct() {
}

// GetOrCreateReceived retrieves the value of the Received field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) GetOrCreateReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received {
	if t.Received != nil {
		return t.Received
	}
	t.Received = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received{}
	return t.Received
}

// GetOrCreateSent retrieves the value of the Sent field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) GetOrCreateSent() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent {
	if t.Sent != nil {
		return t.Sent
	}
	t.Sent = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent{}
	return t.Sent
}

// GetReceived returns the value of the Received struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries. If the receiver or the field Received is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) GetReceived() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received {
	if t != nil && t.Received != nil {
		return t.Received
	}
	return nil
}

// GetSent returns the value of the Sent struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries. If the receiver or the field Sent is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) GetSent() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent {
	if t != nil && t.Sent != nil {
		return t.Sent
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Received.PopulateDefaults()
	t.Sent.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters/queries/received YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received struct {
	ΛMetadata []ygot.Annotation                                                                                                                        `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters/queries/received/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	V1        *uint32           `path:"v1" module:"openconfig-network-instance"`
	ΛV1       []ygot.Annotation `path:"@v1" ygotAnnotation:"true"`
	V2        *uint32           `path:"v2" module:"openconfig-network-instance"`
	ΛV2       []ygot.Annotation `path:"@v2" ygotAnnotation:"true"`
	V3        *uint32           `path:"v3" module:"openconfig-network-instance"`
	ΛV3       []ygot.Annotation `path:"@v3" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) IsYANGGoStruct() {
}

// GetV1 retrieves the value of the leaf V1 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V1 is set, it can
// safely use t.GetV1() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V1 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) GetV1() uint32 {
	if t == nil || t.V1 == nil {
		return 0
	}
	return *t.V1
}

// GetV2 retrieves the value of the leaf V2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V2 is set, it can
// safely use t.GetV2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) GetV2() uint32 {
	if t == nil || t.V2 == nil {
		return 0
	}
	return *t.V2
}

// GetV3 retrieves the value of the leaf V3 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V3 is set, it can
// safely use t.GetV3() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V3 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) GetV3() uint32 {
	if t == nil || t.V3 == nil {
		return 0
	}
	return *t.V3
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Received_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters/queries/sent YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent struct {
	ΛMetadata []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters/queries/sent/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	V1        *uint32           `path:"v1" module:"openconfig-network-instance"`
	ΛV1       []ygot.Annotation `path:"@v1" ygotAnnotation:"true"`
	V2        *uint32           `path:"v2" module:"openconfig-network-instance"`
	ΛV2       []ygot.Annotation `path:"@v2" ygotAnnotation:"true"`
	V3        *uint32           `path:"v3" module:"openconfig-network-instance"`
	ΛV3       []ygot.Annotation `path:"@v3" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) IsYANGGoStruct() {
}

// GetV1 retrieves the value of the leaf V1 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V1 is set, it can
// safely use t.GetV1() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V1 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) GetV1() uint32 {
	if t == nil || t.V1 == nil {
		return 0
	}
	return *t.V1
}

// GetV2 retrieves the value of the leaf V2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V2 is set, it can
// safely use t.GetV2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) GetV2() uint32 {
	if t == nil || t.V2 == nil {
		return 0
	}
	return *t.V2
}

// GetV3 retrieves the value of the leaf V3 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V3 is set, it can
// safely use t.GetV3() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V3 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) GetV3() uint32 {
	if t == nil || t.V3 == nil {
		return 0
	}
	return *t.V3
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Queries_Sent_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters/reports YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/counters/reports/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	V1        *uint32           `path:"v1" module:"openconfig-network-instance"`
	ΛV1       []ygot.Annotation `path:"@v1" ygotAnnotation:"true"`
	V2        *uint32           `path:"v2" module:"openconfig-network-instance"`
	ΛV2       []ygot.Annotation `path:"@v2" ygotAnnotation:"true"`
	V3        *uint32           `path:"v3" module:"openconfig-network-instance"`
	ΛV3       []ygot.Annotation `path:"@v3" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) IsYANGGoStruct() {
}

// GetV1 retrieves the value of the leaf V1 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V1 is set, it can
// safely use t.GetV1() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V1 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) GetV1() uint32 {
	if t == nil || t.V1 == nil {
		return 0
	}
	return *t.V1
}

// GetV2 retrieves the value of the leaf V2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V2 is set, it can
// safely use t.GetV2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) GetV2() uint32 {
	if t == nil || t.V2 == nil {
		return 0
	}
	return *t.V2
}

// GetV3 retrieves the value of the leaf V3 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if V3 is set, it can
// safely use t.GetV3() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.V3 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) GetV3() uint32 {
	if t == nil || t.V3 == nil {
		return 0
	}
	return *t.V3
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_Counters_Reports_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/membership-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups struct {
	ΛMetadata []ygot.Annotation                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Group     map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group `path:"group" module:"openconfig-network-instance"`
	ΛGroup    []ygot.Annotation                                                                                                                          `path:"@group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) IsYANGGoStruct() {
}

// NewGroup creates a new entry in the Group list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) NewGroup(Group string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Group == nil {
		t.Group = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group)
	}

	key := Group

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Group[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Group", key)
	}

	t.Group[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group{
		Group: &Group,
	}

	return t.Group[key], nil
}

// RenameGroup renames an entry in the list Group within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) RenameGroup(oldK, newK string) error {
	if _, ok := t.Group[newK]; ok {
		return fmt.Errorf("key %v already exists in Group", newK)
	}

	e, ok := t.Group[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Group", oldK)
	}
	e.Group = &newK

	t.Group[newK] = e
	delete(t.Group, oldK)
	return nil
}

// GetOrCreateGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) GetOrCreateGroupMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group {
	if t.Group == nil {
		t.Group = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group)
	}
	return t.Group
}

// GetOrCreateGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) GetOrCreateGroup(Group string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group {

	key := Group

	if v, ok := t.Group[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewGroup(Group)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateGroup got unexpected error: %v", err))
	}
	return v
}

// GetGroup retrieves the value with the specified key from
// the Group map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) GetGroup(Group string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group {

	if t == nil {
		return nil
	}

	key := Group

	if lm, ok := t.Group[key]; ok {
		return lm
	}
	return nil
}

// AppendGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group struct to the
// list Group of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) AppendGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) error {
	if v.Group == nil {
		return fmt.Errorf("invalid nil key received for Group")
	}

	key := *v.Group

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Group == nil {
		t.Group = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group)
	}

	if _, ok := t.Group[key]; ok {
		return fmt.Errorf("duplicate key for list Group %v", key)
	}

	t.Group[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Group {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/membership-groups/group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group struct {
	ΛMetadata []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Group     *string                                                                                                                               `path:"group" module:"openconfig-network-instance"`
	ΛGroup    []ygot.Annotation                                                                                                                     `path:"@group" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetGroup retrieves the value of the leaf Group from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Group is set, it can
// safely use t.GetGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Group == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) GetGroup() string {
	if t == nil || t.Group == nil {
		return ""
	}
	return *t.Group
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Group == nil {
		return nil, fmt.Errorf("nil value for key Group")
	}

	return map[string]interface{}{
		"group": *t.Group,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/membership-groups/group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Group     *string           `path:"group" module:"openconfig-network-instance"`
	ΛGroup    []ygot.Annotation `path:"@group" ygotAnnotation:"true"`
	Reporter  *string           `path:"reporter" module:"openconfig-network-instance"`
	ΛReporter []ygot.Annotation `path:"@reporter" ygotAnnotation:"true"`
	Source    *string           `path:"source" module:"openconfig-network-instance"`
	ΛSource   []ygot.Annotation `path:"@source" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) IsYANGGoStruct() {
}

// GetGroup retrieves the value of the leaf Group from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Group is set, it can
// safely use t.GetGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Group == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) GetGroup() string {
	if t == nil || t.Group == nil {
		return ""
	}
	return *t.Group
}

// GetReporter retrieves the value of the leaf Reporter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Reporter is set, it can
// safely use t.GetReporter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Reporter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) GetReporter() string {
	if t == nil || t.Reporter == nil {
		return ""
	}
	return *t.Reporter
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_MembershipGroups_Group_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled         *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled        []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	FilterPrefixes  *string           `path:"filter-prefixes" module:"openconfig-network-instance"`
	ΛFilterPrefixes []ygot.Annotation `path:"@filter-prefixes" ygotAnnotation:"true"`
	InterfaceId     *string           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId    []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	QueryExpires    *uint64           `path:"query-expires" module:"openconfig-network-instance"`
	ΛQueryExpires   []ygot.Annotation `path:"@query-expires" ygotAnnotation:"true"`
	QueryInterval   *uint16           `path:"query-interval" module:"openconfig-network-instance"`
	ΛQueryInterval  []ygot.Annotation `path:"@query-interval" ygotAnnotation:"true"`
	Version         *uint8            `path:"version" module:"openconfig-network-instance"`
	ΛVersion        []ygot.Annotation `path:"@version" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetFilterPrefixes retrieves the value of the leaf FilterPrefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FilterPrefixes is set, it can
// safely use t.GetFilterPrefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FilterPrefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) GetFilterPrefixes() string {
	if t == nil || t.FilterPrefixes == nil {
		return ""
	}
	return *t.FilterPrefixes
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetQueryExpires retrieves the value of the leaf QueryExpires from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if QueryExpires is set, it can
// safely use t.GetQueryExpires() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.QueryExpires == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) GetQueryExpires() uint64 {
	if t == nil || t.QueryExpires == nil {
		return 0
	}
	return *t.QueryExpires
}

// GetQueryInterval retrieves the value of the leaf QueryInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if QueryInterval is set, it can
// safely use t.GetQueryInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.QueryInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) GetQueryInterval() uint16 {
	if t == nil || t.QueryInterval == nil {
		return 0
	}
	return *t.QueryInterval
}

// GetVersion retrieves the value of the leaf Version from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Version is set, it can
// safely use t.GetVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Version == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) GetVersion() uint8 {
	if t == nil || t.Version == nil {
		return 0
	}
	return *t.Version
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/static-membership-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	StaticGroups  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups `path:"static-groups" module:"openconfig-network-instance"`
	ΛStaticGroups []ygot.Annotation                                                                                                                                       `path:"@static-groups" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) IsYANGGoStruct() {
}

// NewStaticGroups creates a new entry in the StaticGroups list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) NewStaticGroups(StaticGroup string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.StaticGroups == nil {
		t.StaticGroups = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups)
	}

	key := StaticGroup

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.StaticGroups[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list StaticGroups", key)
	}

	t.StaticGroups[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups{
		StaticGroup: &StaticGroup,
	}

	return t.StaticGroups[key], nil
}

// RenameStaticGroups renames an entry in the list StaticGroups within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) RenameStaticGroups(oldK, newK string) error {
	if _, ok := t.StaticGroups[newK]; ok {
		return fmt.Errorf("key %v already exists in StaticGroups", newK)
	}

	e, ok := t.StaticGroups[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in StaticGroups", oldK)
	}
	e.StaticGroup = &newK

	t.StaticGroups[newK] = e
	delete(t.StaticGroups, oldK)
	return nil
}

// GetOrCreateStaticGroupsMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) GetOrCreateStaticGroupsMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups {
	if t.StaticGroups == nil {
		t.StaticGroups = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups)
	}
	return t.StaticGroups
}

// GetOrCreateStaticGroups retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) GetOrCreateStaticGroups(StaticGroup string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups {

	key := StaticGroup

	if v, ok := t.StaticGroups[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewStaticGroups(StaticGroup)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateStaticGroups got unexpected error: %v", err))
	}
	return v
}

// GetStaticGroups retrieves the value with the specified key from
// the StaticGroups map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) GetStaticGroups(StaticGroup string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups {

	if t == nil {
		return nil
	}

	key := StaticGroup

	if lm, ok := t.StaticGroups[key]; ok {
		return lm
	}
	return nil
}

// AppendStaticGroups appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups struct to the
// list StaticGroups of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) AppendStaticGroups(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) error {
	if v.StaticGroup == nil {
		return fmt.Errorf("invalid nil key received for StaticGroup")
	}

	key := *v.StaticGroup

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.StaticGroups == nil {
		t.StaticGroups = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups)
	}

	if _, ok := t.StaticGroups[key]; ok {
		return fmt.Errorf("duplicate key for list StaticGroups %v", key)
	}

	t.StaticGroups[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.StaticGroups {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/static-membership-groups/static-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig      []ygot.Annotation                                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State  `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	StaticGroup  *string                                                                                                                                             `path:"static-group" module:"openconfig-network-instance"`
	ΛStaticGroup []ygot.Annotation                                                                                                                                   `path:"@static-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetStaticGroup retrieves the value of the leaf StaticGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaticGroup is set, it can
// safely use t.GetStaticGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaticGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) GetStaticGroup() string {
	if t == nil || t.StaticGroup == nil {
		return ""
	}
	return *t.StaticGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) ΛListKeyMap() (map[string]interface{}, error) {
	if t.StaticGroup == nil {
		return nil, fmt.Errorf("nil value for key StaticGroup")
	}

	return map[string]interface{}{
		"static-group": *t.StaticGroup,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/static-membership-groups/static-groups/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Source       *string           `path:"source" module:"openconfig-network-instance"`
	ΛSource      []ygot.Annotation `path:"@source" ygotAnnotation:"true"`
	StaticGroup  *string           `path:"static-group" module:"openconfig-network-instance"`
	ΛStaticGroup []ygot.Annotation `path:"@static-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) IsYANGGoStruct() {
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// GetStaticGroup retrieves the value of the leaf StaticGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaticGroup is set, it can
// safely use t.GetStaticGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaticGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) GetStaticGroup() string {
	if t == nil || t.StaticGroup == nil {
		return ""
	}
	return *t.StaticGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/igmp/interfaces/interface/static-membership-groups/static-groups/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Source       *string           `path:"source" module:"openconfig-network-instance"`
	ΛSource      []ygot.Annotation `path:"@source" ygotAnnotation:"true"`
	StaticGroup  *string           `path:"static-group" module:"openconfig-network-instance"`
	ΛStaticGroup []ygot.Annotation `path:"@static-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) IsYANGGoStruct() {
}

// GetSource retrieves the value of the leaf Source from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Source is set, it can
// safely use t.GetSource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Source == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) GetSource() string {
	if t == nil || t.Source == nil {
		return ""
	}
	return *t.Source
}

// GetStaticGroup retrieves the value of the leaf StaticGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StaticGroup is set, it can
// safely use t.GetStaticGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StaticGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) GetStaticGroup() string {
	if t == nil || t.StaticGroup == nil {
		return ""
	}
	return *t.StaticGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Igmp_Interfaces_Interface_StaticMembershipGroups_StaticGroups_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis struct {
	ΛMetadata   []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	Global      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global     `path:"global" module:"openconfig-network-instance"`
	ΛGlobal     []ygot.Annotation                                                                              `path:"@global" ygotAnnotation:"true"`
	Interfaces  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces []ygot.Annotation                                                                              `path:"@interfaces" ygotAnnotation:"true"`
	Levels      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels     `path:"levels" module:"openconfig-network-instance"`
	ΛLevels     []ygot.Annotation                                                                              `path:"@levels" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) IsYANGGoStruct() {
}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global{}
	return t.Global
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces{}
	return t.Interfaces
}

// GetOrCreateLevels retrieves the value of the Levels field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) GetOrCreateLevels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels {
	if t.Levels != nil {
		return t.Levels
	}
	t.Levels = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels{}
	return t.Levels
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetLevels returns the value of the Levels struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis. If the receiver or the field Levels is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) GetLevels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels {
	if t != nil && t.Levels != nil {
		return t.Levels
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Global.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
	t.Levels.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global struct {
	ΛMetadata                      []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	AfiSafi                        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi                       `path:"afi-safi" module:"openconfig-network-instance"`
	ΛAfiSafi                       []ygot.Annotation                                                                                                        `path:"@afi-safi" ygotAnnotation:"true"`
	Config                         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config                        `path:"config" module:"openconfig-network-instance"`
	ΛConfig                        []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	GracefulRestart                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart               `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart               []ygot.Annotation                                                                                                        `path:"@graceful-restart" ygotAnnotation:"true"`
	IgpShortcuts                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts                  `path:"igp-shortcuts" module:"openconfig-network-instance"`
	ΛIgpShortcuts                  []ygot.Annotation                                                                                                        `path:"@igp-shortcuts" ygotAnnotation:"true"`
	InterLevelPropagationPolicies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies `path:"inter-level-propagation-policies" module:"openconfig-network-instance"`
	ΛInterLevelPropagationPolicies []ygot.Annotation                                                                                                        `path:"@inter-level-propagation-policies" ygotAnnotation:"true"`
	LspBit                         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit                        `path:"lsp-bit" module:"openconfig-network-instance"`
	ΛLspBit                        []ygot.Annotation                                                                                                        `path:"@lsp-bit" ygotAnnotation:"true"`
	Mpls                           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls                          `path:"mpls" module:"openconfig-network-instance"`
	ΛMpls                          []ygot.Annotation                                                                                                        `path:"@mpls" ygotAnnotation:"true"`
	Nsr                            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr                           `path:"nsr" module:"openconfig-network-instance"`
	ΛNsr                           []ygot.Annotation                                                                                                        `path:"@nsr" ygotAnnotation:"true"`
	ReferenceBandwidth             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth            `path:"reference-bandwidth" module:"openconfig-network-instance"`
	ΛReferenceBandwidth            []ygot.Annotation                                                                                                        `path:"@reference-bandwidth" ygotAnnotation:"true"`
	SegmentRouting                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting                `path:"segment-routing" module:"openconfig-network-instance"`
	ΛSegmentRouting                []ygot.Annotation                                                                                                        `path:"@segment-routing" ygotAnnotation:"true"`
	State                          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State                         `path:"state" module:"openconfig-network-instance"`
	ΛState                         []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
	Timers                         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers                        `path:"timers" module:"openconfig-network-instance"`
	ΛTimers                        []ygot.Annotation                                                                                                        `path:"@timers" ygotAnnotation:"true"`
	Transport                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport                     `path:"transport" module:"openconfig-network-instance"`
	ΛTransport                     []ygot.Annotation                                                                                                        `path:"@transport" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) IsYANGGoStruct() {
}

// GetOrCreateAfiSafi retrieves the value of the AfiSafi field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateAfiSafi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi {
	if t.AfiSafi != nil {
		return t.AfiSafi
	}
	t.AfiSafi = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi{}
	return t.AfiSafi
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config{}
	return t.Config
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateIgpShortcuts retrieves the value of the IgpShortcuts field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateIgpShortcuts() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts {
	if t.IgpShortcuts != nil {
		return t.IgpShortcuts
	}
	t.IgpShortcuts = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts{}
	return t.IgpShortcuts
}

// GetOrCreateInterLevelPropagationPolicies retrieves the value of the InterLevelPropagationPolicies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateInterLevelPropagationPolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies {
	if t.InterLevelPropagationPolicies != nil {
		return t.InterLevelPropagationPolicies
	}
	t.InterLevelPropagationPolicies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies{}
	return t.InterLevelPropagationPolicies
}

// GetOrCreateLspBit retrieves the value of the LspBit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateLspBit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit {
	if t.LspBit != nil {
		return t.LspBit
	}
	t.LspBit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit{}
	return t.LspBit
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls{}
	return t.Mpls
}

// GetOrCreateNsr retrieves the value of the Nsr field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateNsr() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr {
	if t.Nsr != nil {
		return t.Nsr
	}
	t.Nsr = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr{}
	return t.Nsr
}

// GetOrCreateReferenceBandwidth retrieves the value of the ReferenceBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateReferenceBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth {
	if t.ReferenceBandwidth != nil {
		return t.ReferenceBandwidth
	}
	t.ReferenceBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth{}
	return t.ReferenceBandwidth
}

// GetOrCreateSegmentRouting retrieves the value of the SegmentRouting field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting {
	if t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	t.SegmentRouting = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting{}
	return t.SegmentRouting
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers{}
	return t.Timers
}

// GetOrCreateTransport retrieves the value of the Transport field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetOrCreateTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport {
	if t.Transport != nil {
		return t.Transport
	}
	t.Transport = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport{}
	return t.Transport
}

// GetAfiSafi returns the value of the AfiSafi struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field AfiSafi is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetAfiSafi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi {
	if t != nil && t.AfiSafi != nil {
		return t.AfiSafi
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetIgpShortcuts returns the value of the IgpShortcuts struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field IgpShortcuts is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetIgpShortcuts() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts {
	if t != nil && t.IgpShortcuts != nil {
		return t.IgpShortcuts
	}
	return nil
}

// GetInterLevelPropagationPolicies returns the value of the InterLevelPropagationPolicies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field InterLevelPropagationPolicies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetInterLevelPropagationPolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies {
	if t != nil && t.InterLevelPropagationPolicies != nil {
		return t.InterLevelPropagationPolicies
	}
	return nil
}

// GetLspBit returns the value of the LspBit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field LspBit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetLspBit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit {
	if t != nil && t.LspBit != nil {
		return t.LspBit
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetNsr returns the value of the Nsr struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field Nsr is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetNsr() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr {
	if t != nil && t.Nsr != nil {
		return t.Nsr
	}
	return nil
}

// GetReferenceBandwidth returns the value of the ReferenceBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field ReferenceBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetReferenceBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth {
	if t != nil && t.ReferenceBandwidth != nil {
		return t.ReferenceBandwidth
	}
	return nil
}

// GetSegmentRouting returns the value of the SegmentRouting struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field SegmentRouting is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting {
	if t != nil && t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// GetTransport returns the value of the Transport struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global. If the receiver or the field Transport is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) GetTransport() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport {
	if t != nil && t.Transport != nil {
		return t.Transport
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AfiSafi.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.IgpShortcuts.PopulateDefaults()
	t.InterLevelPropagationPolicies.PopulateDefaults()
	t.LspBit.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.Nsr.PopulateDefaults()
	t.ReferenceBandwidth.PopulateDefaults()
	t.SegmentRouting.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
	t.Transport.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Af        map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af `path:"af" module:"openconfig-network-instance"`
	ΛAf       []ygot.Annotation                                                                                                                                                                                                  `path:"@af" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key represents the key for list Af of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key struct {
	AfiName  E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name"`
	SafiName E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"afi-name":  t.AfiName,
		"safi-name": t.SafiName,
	}, nil
}

// NewAf creates a new entry in the Af list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) NewAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Af[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Af", key)
	}

	t.Af[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	return t.Af[key], nil
}

// RenameAf renames an entry in the list Af within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) RenameAf(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key) error {
	if _, ok := t.Af[newK]; ok {
		return fmt.Errorf("key %v already exists in Af", newK)
	}

	e, ok := t.Af[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Af", oldK)
	}
	e.AfiName = newK.AfiName
	e.SafiName = newK.SafiName

	t.Af[newK] = e
	delete(t.Af, oldK)
	return nil
}

// GetOrCreateAfMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) GetOrCreateAfMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af {
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af)
	}
	return t.Af
}

// GetOrCreateAf retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) GetOrCreateAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	if v, ok := t.Af[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAf(AfiName, SafiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAf got unexpected error: %v", err))
	}
	return v
}

// GetAf retrieves the value with the specified key from
// the Af map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) GetAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	if lm, ok := t.Af[key]; ok {
		return lm
	}
	return nil
}

// AppendAf appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af struct to the
// list Af of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) AppendAf(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) error {
	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key{
		AfiName:  v.AfiName,
		SafiName: v.SafiName,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af)
	}

	if _, ok := t.Af[key]; ok {
		return fmt.Errorf("duplicate key for list Af %v", key)
	}

	t.Af[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Af {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af struct {
	ΛMetadata      []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	AfiName        E_OpenconfigIsisTypes_AFI_TYPE                                                                                      `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName       []ygot.Annotation                                                                                                   `path:"@afi-name" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config        `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	MultiTopology  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology `path:"multi-topology" module:"openconfig-network-instance"`
	ΛMultiTopology []ygot.Annotation                                                                                                   `path:"@multi-topology" ygotAnnotation:"true"`
	SafiName       E_OpenconfigIsisTypes_SAFI_TYPE                                                                                     `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName      []ygot.Annotation                                                                                                   `path:"@safi-name" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config{}
	return t.Config
}

// GetOrCreateMultiTopology retrieves the value of the MultiTopology field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetOrCreateMultiTopology() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology {
	if t.MultiTopology != nil {
		return t.MultiTopology
	}
	t.MultiTopology = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology{}
	return t.MultiTopology
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetMultiTopology returns the value of the MultiTopology struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af. If the receiver or the field MultiTopology is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetMultiTopology() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology {
	if t != nil && t.MultiTopology != nil {
		return t.MultiTopology
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.MultiTopology.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-name":  t.AfiName,
		"safi-name": t.SafiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config struct {
	ΛMetadata     []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName       E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName      []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	Enabled       *bool                           `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation               `path:"@enabled" ygotAnnotation:"true"`
	MaxEcmpPaths  *uint8                          `path:"max-ecmp-paths" module:"openconfig-network-instance"`
	ΛMaxEcmpPaths []ygot.Annotation               `path:"@max-ecmp-paths" ygotAnnotation:"true"`
	Metric        *uint32                         `path:"metric" module:"openconfig-network-instance"`
	ΛMetric       []ygot.Annotation               `path:"@metric" ygotAnnotation:"true"`
	SafiName      E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName     []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMaxEcmpPaths retrieves the value of the leaf MaxEcmpPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxEcmpPaths is set, it can
// safely use t.GetMaxEcmpPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxEcmpPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) GetMaxEcmpPaths() uint8 {
	if t == nil || t.MaxEcmpPaths == nil {
		return 0
	}
	return *t.MaxEcmpPaths
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 10
	}
	return *t.Metric
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Metric == nil {
		var v uint32 = 10
		t.Metric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/multi-topology YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/multi-topology/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config struct {
	ΛMetadata []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	SafiName  E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/multi-topology/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State struct {
	ΛMetadata []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	Enabled   *bool                           `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation               `path:"@enabled" ygotAnnotation:"true"`
	SafiName  E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_MultiTopology_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State struct {
	ΛMetadata     []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName       E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName      []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	Enabled       *bool                           `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation               `path:"@enabled" ygotAnnotation:"true"`
	MaxEcmpPaths  *uint8                          `path:"max-ecmp-paths" module:"openconfig-network-instance"`
	ΛMaxEcmpPaths []ygot.Annotation               `path:"@max-ecmp-paths" ygotAnnotation:"true"`
	Metric        *uint32                         `path:"metric" module:"openconfig-network-instance"`
	ΛMetric       []ygot.Annotation               `path:"@metric" ygotAnnotation:"true"`
	SafiName      E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName     []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMaxEcmpPaths retrieves the value of the leaf MaxEcmpPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxEcmpPaths is set, it can
// safely use t.GetMaxEcmpPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxEcmpPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) GetMaxEcmpPaths() uint8 {
	if t == nil || t.MaxEcmpPaths == nil {
		return 0
	}
	return *t.MaxEcmpPaths
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 10
	}
	return *t.Metric
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Metric == nil {
		var v uint32 = 10
		t.Metric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_AfiSafi_Af_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config struct {
	ΛMetadata             []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	AuthenticationCheck   *bool                                  `path:"authentication-check" module:"openconfig-network-instance"`
	ΛAuthenticationCheck  []ygot.Annotation                      `path:"@authentication-check" ygotAnnotation:"true"`
	CsnpEnableOnP2PLinks  *bool                                  `path:"csnp-enable-on-p2p-links" module:"openconfig-network-instance"`
	ΛCsnpEnableOnP2PLinks []ygot.Annotation                      `path:"@csnp-enable-on-p2p-links" ygotAnnotation:"true"`
	FastFlooding          *bool                                  `path:"fast-flooding" module:"openconfig-network-instance"`
	ΛFastFlooding         []ygot.Annotation                      `path:"@fast-flooding" ygotAnnotation:"true"`
	HelloPadding          E_OpenconfigIsisTypes_HelloPaddingType `path:"hello-padding" module:"openconfig-network-instance"`
	ΛHelloPadding         []ygot.Annotation                      `path:"@hello-padding" ygotAnnotation:"true"`
	IidTlv                *bool                                  `path:"iid-tlv" module:"openconfig-network-instance"`
	ΛIidTlv               []ygot.Annotation                      `path:"@iid-tlv" ygotAnnotation:"true"`
	Instance              *string                                `path:"instance" module:"openconfig-network-instance"`
	ΛInstance             []ygot.Annotation                      `path:"@instance" ygotAnnotation:"true"`
	InstanceId            *uint16                                `path:"instance-id" module:"openconfig-network-instance"`
	ΛInstanceId           []ygot.Annotation                      `path:"@instance-id" ygotAnnotation:"true"`
	LevelCapability       E_OpenconfigIsisTypes_LevelType        `path:"level-capability" module:"openconfig-network-instance"`
	ΛLevelCapability      []ygot.Annotation                      `path:"@level-capability" ygotAnnotation:"true"`
	MaxEcmpPaths          *uint8                                 `path:"max-ecmp-paths" module:"openconfig-network-instance"`
	ΛMaxEcmpPaths         []ygot.Annotation                      `path:"@max-ecmp-paths" ygotAnnotation:"true"`
	MaximumAreaAddresses  *uint8                                 `path:"maximum-area-addresses" module:"openconfig-network-instance"`
	ΛMaximumAreaAddresses []ygot.Annotation                      `path:"@maximum-area-addresses" ygotAnnotation:"true"`
	Net                   []string                               `path:"net" module:"openconfig-network-instance"`
	ΛNet                  []ygot.Annotation                      `path:"@net" ygotAnnotation:"true"`
	PoiTlv                *bool                                  `path:"poi-tlv" module:"openconfig-network-instance"`
	ΛPoiTlv               []ygot.Annotation                      `path:"@poi-tlv" ygotAnnotation:"true"`
	WeightedEcmp          *bool                                  `path:"weighted-ecmp" module:"openconfig-network-instance"`
	ΛWeightedEcmp         []ygot.Annotation                      `path:"@weighted-ecmp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) IsYANGGoStruct() {
}

// GetAuthenticationCheck retrieves the value of the leaf AuthenticationCheck from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationCheck is set, it can
// safely use t.GetAuthenticationCheck() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationCheck == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetAuthenticationCheck() bool {
	if t == nil || t.AuthenticationCheck == nil {
		return true
	}
	return *t.AuthenticationCheck
}

// GetCsnpEnableOnP2PLinks retrieves the value of the leaf CsnpEnableOnP2PLinks from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CsnpEnableOnP2PLinks is set, it can
// safely use t.GetCsnpEnableOnP2PLinks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CsnpEnableOnP2PLinks == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetCsnpEnableOnP2PLinks() bool {
	if t == nil || t.CsnpEnableOnP2PLinks == nil {
		return true
	}
	return *t.CsnpEnableOnP2PLinks
}

// GetFastFlooding retrieves the value of the leaf FastFlooding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FastFlooding is set, it can
// safely use t.GetFastFlooding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FastFlooding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetFastFlooding() bool {
	if t == nil || t.FastFlooding == nil {
		return true
	}
	return *t.FastFlooding
}

// GetHelloPadding retrieves the value of the leaf HelloPadding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloPadding is set, it can
// safely use t.GetHelloPadding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloPadding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetHelloPadding() E_OpenconfigIsisTypes_HelloPaddingType {
	if t == nil || t.HelloPadding == 0 {
		return OpenconfigIsisTypes_HelloPaddingType_STRICT
	}
	return t.HelloPadding
}

// GetIidTlv retrieves the value of the leaf IidTlv from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IidTlv is set, it can
// safely use t.GetIidTlv() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IidTlv == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetIidTlv() bool {
	if t == nil || t.IidTlv == nil {
		return false
	}
	return *t.IidTlv
}

// GetInstance retrieves the value of the leaf Instance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instance is set, it can
// safely use t.GetInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetInstance() string {
	if t == nil || t.Instance == nil {
		return "0"
	}
	return *t.Instance
}

// GetInstanceId retrieves the value of the leaf InstanceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceId is set, it can
// safely use t.GetInstanceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetInstanceId() uint16 {
	if t == nil || t.InstanceId == nil {
		return 0
	}
	return *t.InstanceId
}

// GetLevelCapability retrieves the value of the leaf LevelCapability from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelCapability is set, it can
// safely use t.GetLevelCapability() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelCapability == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetLevelCapability() E_OpenconfigIsisTypes_LevelType {
	if t == nil || t.LevelCapability == 0 {
		return OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	return t.LevelCapability
}

// GetMaxEcmpPaths retrieves the value of the leaf MaxEcmpPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxEcmpPaths is set, it can
// safely use t.GetMaxEcmpPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxEcmpPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetMaxEcmpPaths() uint8 {
	if t == nil || t.MaxEcmpPaths == nil {
		return 0
	}
	return *t.MaxEcmpPaths
}

// GetMaximumAreaAddresses retrieves the value of the leaf MaximumAreaAddresses from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumAreaAddresses is set, it can
// safely use t.GetMaximumAreaAddresses() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumAreaAddresses == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetMaximumAreaAddresses() uint8 {
	if t == nil || t.MaximumAreaAddresses == nil {
		return 3
	}
	return *t.MaximumAreaAddresses
}

// GetNet retrieves the value of the leaf Net from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Net is set, it can
// safely use t.GetNet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Net == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetNet() []string {
	if t == nil || t.Net == nil {
		return nil
	}
	return t.Net
}

// GetPoiTlv retrieves the value of the leaf PoiTlv from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PoiTlv is set, it can
// safely use t.GetPoiTlv() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PoiTlv == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetPoiTlv() bool {
	if t == nil || t.PoiTlv == nil {
		return false
	}
	return *t.PoiTlv
}

// GetWeightedEcmp retrieves the value of the leaf WeightedEcmp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WeightedEcmp is set, it can
// safely use t.GetWeightedEcmp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WeightedEcmp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) GetWeightedEcmp() bool {
	if t == nil || t.WeightedEcmp == nil {
		return false
	}
	return *t.WeightedEcmp
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AuthenticationCheck == nil {
		var v bool = true
		t.AuthenticationCheck = &v
	}
	if t.CsnpEnableOnP2PLinks == nil {
		var v bool = true
		t.CsnpEnableOnP2PLinks = &v
	}
	if t.FastFlooding == nil {
		var v bool = true
		t.FastFlooding = &v
	}
	if t.HelloPadding == 0 {
		t.HelloPadding = OpenconfigIsisTypes_HelloPaddingType_STRICT
	}
	if t.IidTlv == nil {
		var v bool = false
		t.IidTlv = &v
	}
	if t.Instance == nil {
		var v string = "0"
		t.Instance = &v
	}
	if t.LevelCapability == 0 {
		t.LevelCapability = OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	if t.MaximumAreaAddresses == nil {
		var v uint8 = 3
		t.MaximumAreaAddresses = &v
	}
	if t.PoiTlv == nil {
		var v bool = false
		t.PoiTlv = &v
	}
	if t.WeightedEcmp == nil {
		var v bool = false
		t.WeightedEcmp = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled                   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled                  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly                *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly               []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
	InterfaceTimeExpirations  *int64            `path:"interface-time-expirations" module:"openconfig-network-instance"`
	ΛInterfaceTimeExpirations []ygot.Annotation `path:"@interface-time-expirations" ygotAnnotation:"true"`
	InterfaceTimer            *uint16           `path:"interface-timer" module:"openconfig-network-instance"`
	ΛInterfaceTimer           []ygot.Annotation `path:"@interface-timer" ygotAnnotation:"true"`
	NonPlannedOnly            *bool             `path:"non-planned-only" module:"openconfig-network-instance"`
	ΛNonPlannedOnly           []ygot.Annotation `path:"@non-planned-only" ygotAnnotation:"true"`
	RestartTime               *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime              []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetInterfaceTimeExpirations retrieves the value of the leaf InterfaceTimeExpirations from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimeExpirations is set, it can
// safely use t.GetInterfaceTimeExpirations() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimeExpirations == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) GetInterfaceTimeExpirations() int64 {
	if t == nil || t.InterfaceTimeExpirations == nil {
		return 0
	}
	return *t.InterfaceTimeExpirations
}

// GetInterfaceTimer retrieves the value of the leaf InterfaceTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimer is set, it can
// safely use t.GetInterfaceTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) GetInterfaceTimer() uint16 {
	if t == nil || t.InterfaceTimer == nil {
		return 0
	}
	return *t.InterfaceTimer
}

// GetNonPlannedOnly retrieves the value of the leaf NonPlannedOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NonPlannedOnly is set, it can
// safely use t.GetNonPlannedOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NonPlannedOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) GetNonPlannedOnly() bool {
	if t == nil || t.NonPlannedOnly == nil {
		return false
	}
	return *t.NonPlannedOnly
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 30
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.RestartTime == nil {
		var v uint16 = 30
		t.RestartTime = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled                   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled                  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly                *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly               []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
	InterfaceTimeExpirations  *int64            `path:"interface-time-expirations" module:"openconfig-network-instance"`
	ΛInterfaceTimeExpirations []ygot.Annotation `path:"@interface-time-expirations" ygotAnnotation:"true"`
	InterfaceTimer            *uint16           `path:"interface-timer" module:"openconfig-network-instance"`
	ΛInterfaceTimer           []ygot.Annotation `path:"@interface-timer" ygotAnnotation:"true"`
	NonPlannedOnly            *bool             `path:"non-planned-only" module:"openconfig-network-instance"`
	ΛNonPlannedOnly           []ygot.Annotation `path:"@non-planned-only" ygotAnnotation:"true"`
	RestartTime               *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime              []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// GetInterfaceTimeExpirations retrieves the value of the leaf InterfaceTimeExpirations from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimeExpirations is set, it can
// safely use t.GetInterfaceTimeExpirations() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimeExpirations == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) GetInterfaceTimeExpirations() int64 {
	if t == nil || t.InterfaceTimeExpirations == nil {
		return 0
	}
	return *t.InterfaceTimeExpirations
}

// GetInterfaceTimer retrieves the value of the leaf InterfaceTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimer is set, it can
// safely use t.GetInterfaceTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) GetInterfaceTimer() uint16 {
	if t == nil || t.InterfaceTimer == nil {
		return 0
	}
	return *t.InterfaceTimer
}

// GetNonPlannedOnly retrieves the value of the leaf NonPlannedOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NonPlannedOnly is set, it can
// safely use t.GetNonPlannedOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NonPlannedOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) GetNonPlannedOnly() bool {
	if t == nil || t.NonPlannedOnly == nil {
		return false
	}
	return *t.NonPlannedOnly
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 30
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.RestartTime == nil {
		var v uint16 = 30
		t.RestartTime = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Afi       map[E_OpenconfigIsisTypes_AFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi `path:"afi" module:"openconfig-network-instance"`
	ΛAfi      []ygot.Annotation                                                                                                                              `path:"@afi" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) IsYANGGoStruct() {
}

// NewAfi creates a new entry in the Afi list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) NewAfi(AfiName E_OpenconfigIsisTypes_AFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Afi == nil {
		t.Afi = make(map[E_OpenconfigIsisTypes_AFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi)
	}

	key := AfiName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Afi[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Afi", key)
	}

	t.Afi[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi{
		AfiName: AfiName,
	}

	return t.Afi[key], nil
}

// RenameAfi renames an entry in the list Afi within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) RenameAfi(oldK, newK E_OpenconfigIsisTypes_AFI_TYPE) error {
	if _, ok := t.Afi[newK]; ok {
		return fmt.Errorf("key %v already exists in Afi", newK)
	}

	e, ok := t.Afi[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Afi", oldK)
	}
	e.AfiName = newK

	t.Afi[newK] = e
	delete(t.Afi, oldK)
	return nil
}

// GetOrCreateAfiMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) GetOrCreateAfiMap() map[E_OpenconfigIsisTypes_AFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi {
	if t.Afi == nil {
		t.Afi = make(map[E_OpenconfigIsisTypes_AFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi)
	}
	return t.Afi
}

// GetOrCreateAfi retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) GetOrCreateAfi(AfiName E_OpenconfigIsisTypes_AFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi {

	key := AfiName

	if v, ok := t.Afi[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAfi(AfiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAfi got unexpected error: %v", err))
	}
	return v
}

// GetAfi retrieves the value with the specified key from
// the Afi map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) GetAfi(AfiName E_OpenconfigIsisTypes_AFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi {

	if t == nil {
		return nil
	}

	key := AfiName

	if lm, ok := t.Afi[key]; ok {
		return lm
	}
	return nil
}

// AppendAfi appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi struct to the
// list Afi of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) AppendAfi(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) error {
	key := v.AfiName

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Afi == nil {
		t.Afi = make(map[E_OpenconfigIsisTypes_AFI_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi)
	}

	if _, ok := t.Afi[key]; ok {
		return fmt.Errorf("duplicate key for list Afi %v", key)
	}

	t.Afi[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Afi {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi struct {
	ΛMetadata []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE                                                                                     `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation                                                                                                  `path:"@afi-name" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-name": t.AfiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config struct {
	ΛMetadata []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE              `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation                           `path:"@afi-name" ygotAnnotation:"true"`
	NhType    []E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL `path:"nh-type" module:"openconfig-network-instance"`
	ΛNhType   []ygot.Annotation                           `path:"@nh-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetNhType retrieves the value of the leaf NhType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NhType is set, it can
// safely use t.GetNhType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NhType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) GetNhType() []E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL {
	if t == nil || t.NhType == nil {
		return nil
	}
	return t.NhType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State struct {
	ΛMetadata []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE              `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation                           `path:"@afi-name" ygotAnnotation:"true"`
	NhType    []E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL `path:"nh-type" module:"openconfig-network-instance"`
	ΛNhType   []ygot.Annotation                           `path:"@nh-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetNhType retrieves the value of the leaf NhType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NhType is set, it can
// safely use t.GetNhType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NhType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) GetNhType() []E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL {
	if t == nil || t.NhType == nil {
		return nil
	}
	return t.NhType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_IgpShortcuts_Afi_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies struct {
	ΛMetadata       []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Level1ToLevel2  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2 `path:"level1-to-level2" module:"openconfig-network-instance"`
	ΛLevel1ToLevel2 []ygot.Annotation                                                                                                                       `path:"@level1-to-level2" ygotAnnotation:"true"`
	Level2ToLevel1  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1 `path:"level2-to-level1" module:"openconfig-network-instance"`
	ΛLevel2ToLevel1 []ygot.Annotation                                                                                                                       `path:"@level2-to-level1" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) IsYANGGoStruct() {
}

// GetOrCreateLevel1ToLevel2 retrieves the value of the Level1ToLevel2 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) GetOrCreateLevel1ToLevel2() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2 {
	if t.Level1ToLevel2 != nil {
		return t.Level1ToLevel2
	}
	t.Level1ToLevel2 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2{}
	return t.Level1ToLevel2
}

// GetOrCreateLevel2ToLevel1 retrieves the value of the Level2ToLevel1 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) GetOrCreateLevel2ToLevel1() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1 {
	if t.Level2ToLevel1 != nil {
		return t.Level2ToLevel1
	}
	t.Level2ToLevel1 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1{}
	return t.Level2ToLevel1
}

// GetLevel1ToLevel2 returns the value of the Level1ToLevel2 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies. If the receiver or the field Level1ToLevel2 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) GetLevel1ToLevel2() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2 {
	if t != nil && t.Level1ToLevel2 != nil {
		return t.Level1ToLevel2
	}
	return nil
}

// GetLevel2ToLevel1 returns the value of the Level2ToLevel1 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies. If the receiver or the field Level2ToLevel1 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) GetLevel2ToLevel1() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1 {
	if t != nil && t.Level2ToLevel1 != nil {
		return t.Level2ToLevel1
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Level1ToLevel2.PopulateDefaults()
	t.Level2ToLevel1.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level1-to-level2 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2 struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level1-to-level2/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) IsYANGGoStruct() {
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level1-to-level2/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) IsYANGGoStruct() {
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level1ToLevel2_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level2-to-level1 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1 struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level2-to-level1/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) IsYANGGoStruct() {
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level2-to-level1/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State struct {
	ΛMetadata            []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                           `path:"@default-import-policy" ygotAnnotation:"true"`
	ImportPolicy         []string                                    `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                           `path:"@import-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) IsYANGGoStruct() {
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_InterLevelPropagationPolicies_Level2ToLevel1_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit struct {
	ΛMetadata    []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	AttachedBit  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit `path:"attached-bit" module:"openconfig-network-instance"`
	ΛAttachedBit []ygot.Annotation                                                                                             `path:"@attached-bit" ygotAnnotation:"true"`
	OverloadBit  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit `path:"overload-bit" module:"openconfig-network-instance"`
	ΛOverloadBit []ygot.Annotation                                                                                             `path:"@overload-bit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) IsYANGGoStruct() {
}

// GetOrCreateAttachedBit retrieves the value of the AttachedBit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) GetOrCreateAttachedBit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit {
	if t.AttachedBit != nil {
		return t.AttachedBit
	}
	t.AttachedBit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit{}
	return t.AttachedBit
}

// GetOrCreateOverloadBit retrieves the value of the OverloadBit field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) GetOrCreateOverloadBit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit {
	if t.OverloadBit != nil {
		return t.OverloadBit
	}
	t.OverloadBit = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit{}
	return t.OverloadBit
}

// GetAttachedBit returns the value of the AttachedBit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit. If the receiver or the field AttachedBit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) GetAttachedBit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit {
	if t != nil && t.AttachedBit != nil {
		return t.AttachedBit
	}
	return nil
}

// GetOverloadBit returns the value of the OverloadBit struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit. If the receiver or the field OverloadBit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) GetOverloadBit() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit {
	if t != nil && t.OverloadBit != nil {
		return t.OverloadBit
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AttachedBit.PopulateDefaults()
	t.OverloadBit.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/attached-bit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/attached-bit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	IgnoreBit    *bool             `path:"ignore-bit" module:"openconfig-network-instance"`
	ΛIgnoreBit   []ygot.Annotation `path:"@ignore-bit" ygotAnnotation:"true"`
	SuppressBit  *bool             `path:"suppress-bit" module:"openconfig-network-instance"`
	ΛSuppressBit []ygot.Annotation `path:"@suppress-bit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) IsYANGGoStruct() {
}

// GetIgnoreBit retrieves the value of the leaf IgnoreBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreBit is set, it can
// safely use t.GetIgnoreBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) GetIgnoreBit() bool {
	if t == nil || t.IgnoreBit == nil {
		return false
	}
	return *t.IgnoreBit
}

// GetSuppressBit retrieves the value of the leaf SuppressBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SuppressBit is set, it can
// safely use t.GetSuppressBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SuppressBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) GetSuppressBit() bool {
	if t == nil || t.SuppressBit == nil {
		return false
	}
	return *t.SuppressBit
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.IgnoreBit == nil {
		var v bool = false
		t.IgnoreBit = &v
	}
	if t.SuppressBit == nil {
		var v bool = false
		t.SuppressBit = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/attached-bit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	IgnoreBit    *bool             `path:"ignore-bit" module:"openconfig-network-instance"`
	ΛIgnoreBit   []ygot.Annotation `path:"@ignore-bit" ygotAnnotation:"true"`
	SuppressBit  *bool             `path:"suppress-bit" module:"openconfig-network-instance"`
	ΛSuppressBit []ygot.Annotation `path:"@suppress-bit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) IsYANGGoStruct() {
}

// GetIgnoreBit retrieves the value of the leaf IgnoreBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgnoreBit is set, it can
// safely use t.GetIgnoreBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgnoreBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) GetIgnoreBit() bool {
	if t == nil || t.IgnoreBit == nil {
		return false
	}
	return *t.IgnoreBit
}

// GetSuppressBit retrieves the value of the leaf SuppressBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SuppressBit is set, it can
// safely use t.GetSuppressBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SuppressBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) GetSuppressBit() bool {
	if t == nil || t.SuppressBit == nil {
		return false
	}
	return *t.SuppressBit
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.IgnoreBit == nil {
		var v bool = false
		t.IgnoreBit = &v
	}
	if t.SuppressBit == nil {
		var v bool = false
		t.SuppressBit = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_AttachedBit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit struct {
	ΛMetadata      []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config        `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                                           `path:"@config" ygotAnnotation:"true"`
	ResetTriggers  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers `path:"reset-triggers" module:"openconfig-network-instance"`
	ΛResetTriggers []ygot.Annotation                                                                                                           `path:"@reset-triggers" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config{}
	return t.Config
}

// GetOrCreateResetTriggers retrieves the value of the ResetTriggers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) GetOrCreateResetTriggers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers {
	if t.ResetTriggers != nil {
		return t.ResetTriggers
	}
	t.ResetTriggers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers{}
	return t.ResetTriggers
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetResetTriggers returns the value of the ResetTriggers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit. If the receiver or the field ResetTriggers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) GetResetTriggers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers {
	if t != nil && t.ResetTriggers != nil {
		return t.ResetTriggers
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.ResetTriggers.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvertiseHighMetric  *bool             `path:"advertise-high-metric" module:"openconfig-network-instance"`
	ΛAdvertiseHighMetric []ygot.Annotation `path:"@advertise-high-metric" ygotAnnotation:"true"`
	SetBit               *bool             `path:"set-bit" module:"openconfig-network-instance"`
	ΛSetBit              []ygot.Annotation `path:"@set-bit" ygotAnnotation:"true"`
	SetBitOnBoot         *bool             `path:"set-bit-on-boot" module:"openconfig-network-instance"`
	ΛSetBitOnBoot        []ygot.Annotation `path:"@set-bit-on-boot" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) IsYANGGoStruct() {
}

// GetAdvertiseHighMetric retrieves the value of the leaf AdvertiseHighMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertiseHighMetric is set, it can
// safely use t.GetAdvertiseHighMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertiseHighMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) GetAdvertiseHighMetric() bool {
	if t == nil || t.AdvertiseHighMetric == nil {
		return false
	}
	return *t.AdvertiseHighMetric
}

// GetSetBit retrieves the value of the leaf SetBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetBit is set, it can
// safely use t.GetSetBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) GetSetBit() bool {
	if t == nil || t.SetBit == nil {
		return false
	}
	return *t.SetBit
}

// GetSetBitOnBoot retrieves the value of the leaf SetBitOnBoot from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetBitOnBoot is set, it can
// safely use t.GetSetBitOnBoot() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetBitOnBoot == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) GetSetBitOnBoot() bool {
	if t == nil || t.SetBitOnBoot == nil {
		return false
	}
	return *t.SetBitOnBoot
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdvertiseHighMetric == nil {
		var v bool = false
		t.AdvertiseHighMetric = &v
	}
	if t.SetBit == nil {
		var v bool = false
		t.SetBit = &v
	}
	if t.SetBitOnBoot == nil {
		var v bool = false
		t.SetBitOnBoot = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/reset-triggers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	ResetTrigger  map[E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger `path:"reset-trigger" module:"openconfig-network-instance"`
	ΛResetTrigger []ygot.Annotation                                                                                                                                                                              `path:"@reset-trigger" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) IsYANGGoStruct() {
}

// NewResetTrigger creates a new entry in the ResetTrigger list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) NewResetTrigger(ResetTrigger E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ResetTrigger == nil {
		t.ResetTrigger = make(map[E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger)
	}

	key := ResetTrigger

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ResetTrigger[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ResetTrigger", key)
	}

	t.ResetTrigger[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger{
		ResetTrigger: ResetTrigger,
	}

	return t.ResetTrigger[key], nil
}

// RenameResetTrigger renames an entry in the list ResetTrigger within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) RenameResetTrigger(oldK, newK E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE) error {
	if _, ok := t.ResetTrigger[newK]; ok {
		return fmt.Errorf("key %v already exists in ResetTrigger", newK)
	}

	e, ok := t.ResetTrigger[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ResetTrigger", oldK)
	}
	e.ResetTrigger = newK

	t.ResetTrigger[newK] = e
	delete(t.ResetTrigger, oldK)
	return nil
}

// GetOrCreateResetTriggerMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) GetOrCreateResetTriggerMap() map[E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger {
	if t.ResetTrigger == nil {
		t.ResetTrigger = make(map[E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger)
	}
	return t.ResetTrigger
}

// GetOrCreateResetTrigger retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) GetOrCreateResetTrigger(ResetTrigger E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger {

	key := ResetTrigger

	if v, ok := t.ResetTrigger[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewResetTrigger(ResetTrigger)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateResetTrigger got unexpected error: %v", err))
	}
	return v
}

// GetResetTrigger retrieves the value with the specified key from
// the ResetTrigger map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) GetResetTrigger(ResetTrigger E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger {

	if t == nil {
		return nil
	}

	key := ResetTrigger

	if lm, ok := t.ResetTrigger[key]; ok {
		return lm
	}
	return nil
}

// AppendResetTrigger appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger struct to the
// list ResetTrigger of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) AppendResetTrigger(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) error {
	key := v.ResetTrigger

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ResetTrigger == nil {
		t.ResetTrigger = make(map[E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger)
	}

	if _, ok := t.ResetTrigger[key]; ok {
		return fmt.Errorf("duplicate key for list ResetTrigger %v", key)
	}

	t.ResetTrigger[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ResetTrigger {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/reset-triggers/reset-trigger YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger struct {
	ΛMetadata     []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	ResetTrigger  E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE                                                                                               `path:"reset-trigger" module:"openconfig-network-instance"`
	ΛResetTrigger []ygot.Annotation                                                                                                                               `path:"@reset-trigger" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State  `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetResetTrigger retrieves the value of the leaf ResetTrigger from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ResetTrigger is set, it can
// safely use t.GetResetTrigger() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ResetTrigger == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) GetResetTrigger() E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE {
	if t == nil || t.ResetTrigger == 0 {
		return 0
	}
	return t.ResetTrigger
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"reset-trigger": t.ResetTrigger,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/reset-triggers/reset-trigger/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config struct {
	ΛMetadata     []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	Delay         *uint16                                           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay        []ygot.Annotation                                 `path:"@delay" ygotAnnotation:"true"`
	ResetTrigger  E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE `path:"reset-trigger" module:"openconfig-network-instance"`
	ΛResetTrigger []ygot.Annotation                                 `path:"@reset-trigger" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) IsYANGGoStruct() {
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) GetDelay() uint16 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// GetResetTrigger retrieves the value of the leaf ResetTrigger from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ResetTrigger is set, it can
// safely use t.GetResetTrigger() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ResetTrigger == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) GetResetTrigger() E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE {
	if t == nil || t.ResetTrigger == 0 {
		return 0
	}
	return t.ResetTrigger
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/reset-triggers/reset-trigger/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State struct {
	ΛMetadata     []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	Delay         *uint16                                           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay        []ygot.Annotation                                 `path:"@delay" ygotAnnotation:"true"`
	ResetTrigger  E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE `path:"reset-trigger" module:"openconfig-network-instance"`
	ΛResetTrigger []ygot.Annotation                                 `path:"@reset-trigger" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) IsYANGGoStruct() {
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) GetDelay() uint16 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// GetResetTrigger retrieves the value of the leaf ResetTrigger from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ResetTrigger is set, it can
// safely use t.GetResetTrigger() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ResetTrigger == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) GetResetTrigger() E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE {
	if t == nil || t.ResetTrigger == 0 {
		return 0
	}
	return t.ResetTrigger
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_ResetTriggers_ResetTrigger_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvertiseHighMetric  *bool             `path:"advertise-high-metric" module:"openconfig-network-instance"`
	ΛAdvertiseHighMetric []ygot.Annotation `path:"@advertise-high-metric" ygotAnnotation:"true"`
	SetBit               *bool             `path:"set-bit" module:"openconfig-network-instance"`
	ΛSetBit              []ygot.Annotation `path:"@set-bit" ygotAnnotation:"true"`
	SetBitOnBoot         *bool             `path:"set-bit-on-boot" module:"openconfig-network-instance"`
	ΛSetBitOnBoot        []ygot.Annotation `path:"@set-bit-on-boot" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) IsYANGGoStruct() {
}

// GetAdvertiseHighMetric retrieves the value of the leaf AdvertiseHighMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertiseHighMetric is set, it can
// safely use t.GetAdvertiseHighMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertiseHighMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) GetAdvertiseHighMetric() bool {
	if t == nil || t.AdvertiseHighMetric == nil {
		return false
	}
	return *t.AdvertiseHighMetric
}

// GetSetBit retrieves the value of the leaf SetBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetBit is set, it can
// safely use t.GetSetBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) GetSetBit() bool {
	if t == nil || t.SetBit == nil {
		return false
	}
	return *t.SetBit
}

// GetSetBitOnBoot retrieves the value of the leaf SetBitOnBoot from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetBitOnBoot is set, it can
// safely use t.GetSetBitOnBoot() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetBitOnBoot == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) GetSetBitOnBoot() bool {
	if t == nil || t.SetBitOnBoot == nil {
		return false
	}
	return *t.SetBitOnBoot
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AdvertiseHighMetric == nil {
		var v bool = false
		t.AdvertiseHighMetric = &v
	}
	if t.SetBit == nil {
		var v bool = false
		t.SetBit = &v
	}
	if t.SetBitOnBoot == nil {
		var v bool = false
		t.SetBitOnBoot = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_LspBit_OverloadBit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/mpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls struct {
	ΛMetadata   []ygot.Annotation                                                                                          `path:"@" ygotAnnotation:"true"`
	IgpLdpSync  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync `path:"igp-ldp-sync" module:"openconfig-network-instance"`
	ΛIgpLdpSync []ygot.Annotation                                                                                          `path:"@igp-ldp-sync" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) IsYANGGoStruct() {
}

// GetOrCreateIgpLdpSync retrieves the value of the IgpLdpSync field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) GetOrCreateIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync {
	if t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	t.IgpLdpSync = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync{}
	return t.IgpLdpSync
}

// GetIgpLdpSync returns the value of the IgpLdpSync struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls. If the receiver or the field IgpLdpSync is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) GetIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync {
	if t != nil && t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.IgpLdpSync.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/mpls/igp-ldp-sync YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync struct {
	ΛMetadata []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/mpls/igp-ldp-sync/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint16           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) GetPostSessionUpDelay() uint16 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/mpls/igp-ldp-sync/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint16           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) GetPostSessionUpDelay() uint16 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Mpls_IgpLdpSync_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/nsr YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr struct {
	ΛMetadata []ygot.Annotation                                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/nsr/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/nsr/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Nsr_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/reference-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/reference-bandwidth/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ReferenceBandwidth  *uint32           `path:"reference-bandwidth" module:"openconfig-network-instance"`
	ΛReferenceBandwidth []ygot.Annotation `path:"@reference-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config) IsYANGGoStruct() {
}

// GetReferenceBandwidth retrieves the value of the leaf ReferenceBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReferenceBandwidth is set, it can
// safely use t.GetReferenceBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReferenceBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config) GetReferenceBandwidth() uint32 {
	if t == nil || t.ReferenceBandwidth == nil {
		return 0
	}
	return *t.ReferenceBandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/reference-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ReferenceBandwidth  *uint32           `path:"reference-bandwidth" module:"openconfig-network-instance"`
	ΛReferenceBandwidth []ygot.Annotation `path:"@reference-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State) IsYANGGoStruct() {
}

// GetReferenceBandwidth retrieves the value of the leaf ReferenceBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReferenceBandwidth is set, it can
// safely use t.GetReferenceBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReferenceBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State) GetReferenceBandwidth() uint32 {
	if t == nil || t.ReferenceBandwidth == nil {
		return 0
	}
	return *t.ReferenceBandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_ReferenceBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/segment-routing YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting struct {
	ΛMetadata              []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config                `path:"config" module:"openconfig-network-instance"`
	ΛConfig                []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	FlexAlgorithmBindings  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings `path:"flex-algorithm-bindings" module:"openconfig-network-instance"`
	ΛFlexAlgorithmBindings []ygot.Annotation                                                                                                               `path:"@flex-algorithm-bindings" ygotAnnotation:"true"`
	State                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State                 `path:"state" module:"openconfig-network-instance"`
	ΛState                 []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config{}
	return t.Config
}

// GetOrCreateFlexAlgorithmBindings retrieves the value of the FlexAlgorithmBindings field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) GetOrCreateFlexAlgorithmBindings() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings {
	if t.FlexAlgorithmBindings != nil {
		return t.FlexAlgorithmBindings
	}
	t.FlexAlgorithmBindings = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings{}
	return t.FlexAlgorithmBindings
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetFlexAlgorithmBindings returns the value of the FlexAlgorithmBindings struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting. If the receiver or the field FlexAlgorithmBindings is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) GetFlexAlgorithmBindings() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings {
	if t != nil && t.FlexAlgorithmBindings != nil {
		return t.FlexAlgorithmBindings
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.FlexAlgorithmBindings.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Srgb      *string           `path:"srgb" module:"openconfig-network-instance"`
	ΛSrgb     []ygot.Annotation `path:"@srgb" ygotAnnotation:"true"`
	Srlb      *string           `path:"srlb" module:"openconfig-network-instance"`
	ΛSrlb     []ygot.Annotation `path:"@srlb" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSrgb retrieves the value of the leaf Srgb from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Srgb is set, it can
// safely use t.GetSrgb() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Srgb == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) GetSrgb() string {
	if t == nil || t.Srgb == nil {
		return ""
	}
	return *t.Srgb
}

// GetSrlb retrieves the value of the leaf Srlb from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Srlb is set, it can
// safely use t.GetSrlb() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Srlb == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) GetSrlb() string {
	if t == nil || t.Srlb == nil {
		return ""
	}
	return *t.Srlb
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/flex-algorithm-bindings YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings struct {
	ΛMetadata             []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	FlexAlgorithmBinding  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding `path:"flex-algorithm-binding" module:"openconfig-network-instance"`
	ΛFlexAlgorithmBinding []ygot.Annotation                                                                                                                                              `path:"@flex-algorithm-binding" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) IsYANGGoStruct() {
}

// NewFlexAlgorithmBinding creates a new entry in the FlexAlgorithmBinding list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) NewFlexAlgorithmBinding(FlexAlgoId uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.FlexAlgorithmBinding == nil {
		t.FlexAlgorithmBinding = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding)
	}

	key := FlexAlgoId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.FlexAlgorithmBinding[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list FlexAlgorithmBinding", key)
	}

	t.FlexAlgorithmBinding[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding{
		FlexAlgoId: &FlexAlgoId,
	}

	return t.FlexAlgorithmBinding[key], nil
}

// RenameFlexAlgorithmBinding renames an entry in the list FlexAlgorithmBinding within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) RenameFlexAlgorithmBinding(oldK, newK uint8) error {
	if _, ok := t.FlexAlgorithmBinding[newK]; ok {
		return fmt.Errorf("key %v already exists in FlexAlgorithmBinding", newK)
	}

	e, ok := t.FlexAlgorithmBinding[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in FlexAlgorithmBinding", oldK)
	}
	e.FlexAlgoId = &newK

	t.FlexAlgorithmBinding[newK] = e
	delete(t.FlexAlgorithmBinding, oldK)
	return nil
}

// GetOrCreateFlexAlgorithmBindingMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) GetOrCreateFlexAlgorithmBindingMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding {
	if t.FlexAlgorithmBinding == nil {
		t.FlexAlgorithmBinding = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding)
	}
	return t.FlexAlgorithmBinding
}

// GetOrCreateFlexAlgorithmBinding retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) GetOrCreateFlexAlgorithmBinding(FlexAlgoId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding {

	key := FlexAlgoId

	if v, ok := t.FlexAlgorithmBinding[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewFlexAlgorithmBinding(FlexAlgoId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateFlexAlgorithmBinding got unexpected error: %v", err))
	}
	return v
}

// GetFlexAlgorithmBinding retrieves the value with the specified key from
// the FlexAlgorithmBinding map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) GetFlexAlgorithmBinding(FlexAlgoId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding {

	if t == nil {
		return nil
	}

	key := FlexAlgoId

	if lm, ok := t.FlexAlgorithmBinding[key]; ok {
		return lm
	}
	return nil
}

// AppendFlexAlgorithmBinding appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding struct to the
// list FlexAlgorithmBinding of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) AppendFlexAlgorithmBinding(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) error {
	if v.FlexAlgoId == nil {
		return fmt.Errorf("invalid nil key received for FlexAlgoId")
	}

	key := *v.FlexAlgoId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.FlexAlgorithmBinding == nil {
		t.FlexAlgorithmBinding = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding)
	}

	if _, ok := t.FlexAlgorithmBinding[key]; ok {
		return fmt.Errorf("duplicate key for list FlexAlgorithmBinding %v", key)
	}

	t.FlexAlgorithmBinding[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.FlexAlgorithmBinding {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/flex-algorithm-bindings/flex-algorithm-binding YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	FlexAlgoId  *uint8                                                                                                                                                      `path:"flex-algo-id" module:"openconfig-network-instance"`
	ΛFlexAlgoId []ygot.Annotation                                                                                                                                           `path:"@flex-algo-id" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State  `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFlexAlgoId retrieves the value of the leaf FlexAlgoId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlexAlgoId is set, it can
// safely use t.GetFlexAlgoId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlexAlgoId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) GetFlexAlgoId() uint8 {
	if t == nil || t.FlexAlgoId == nil {
		return 0
	}
	return *t.FlexAlgoId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) ΛListKeyMap() (map[string]interface{}, error) {
	if t.FlexAlgoId == nil {
		return nil, fmt.Errorf("nil value for key FlexAlgoId")
	}

	return map[string]interface{}{
		"flex-algo-id": *t.FlexAlgoId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/flex-algorithm-bindings/flex-algorithm-binding/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config struct {
	ΛMetadata    []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	Advertised   *bool                           `path:"advertised" module:"openconfig-network-instance"`
	ΛAdvertised  []ygot.Annotation               `path:"@advertised" ygotAnnotation:"true"`
	FlexAlgoId   *uint8                          `path:"flex-algo-id" module:"openconfig-network-instance"`
	ΛFlexAlgoId  []ygot.Annotation               `path:"@flex-algo-id" ygotAnnotation:"true"`
	IsisLevel    E_OpenconfigIsisTypes_LevelType `path:"isis-level" module:"openconfig-network-instance"`
	ΛIsisLevel   []ygot.Annotation               `path:"@isis-level" ygotAnnotation:"true"`
	Participate  *bool                           `path:"participate" module:"openconfig-network-instance"`
	ΛParticipate []ygot.Annotation               `path:"@participate" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) IsYANGGoStruct() {
}

// GetAdvertised retrieves the value of the leaf Advertised from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Advertised is set, it can
// safely use t.GetAdvertised() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Advertised == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) GetAdvertised() bool {
	if t == nil || t.Advertised == nil {
		return false
	}
	return *t.Advertised
}

// GetFlexAlgoId retrieves the value of the leaf FlexAlgoId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlexAlgoId is set, it can
// safely use t.GetFlexAlgoId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlexAlgoId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) GetFlexAlgoId() uint8 {
	if t == nil || t.FlexAlgoId == nil {
		return 0
	}
	return *t.FlexAlgoId
}

// GetIsisLevel retrieves the value of the leaf IsisLevel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IsisLevel is set, it can
// safely use t.GetIsisLevel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IsisLevel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) GetIsisLevel() E_OpenconfigIsisTypes_LevelType {
	if t == nil || t.IsisLevel == 0 {
		return OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	return t.IsisLevel
}

// GetParticipate retrieves the value of the leaf Participate from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Participate is set, it can
// safely use t.GetParticipate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Participate == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) GetParticipate() bool {
	if t == nil || t.Participate == nil {
		return false
	}
	return *t.Participate
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Advertised == nil {
		var v bool = false
		t.Advertised = &v
	}
	if t.IsisLevel == 0 {
		t.IsisLevel = OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	if t.Participate == nil {
		var v bool = false
		t.Participate = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/flex-algorithm-bindings/flex-algorithm-binding/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State struct {
	ΛMetadata    []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	Advertised   *bool                           `path:"advertised" module:"openconfig-network-instance"`
	ΛAdvertised  []ygot.Annotation               `path:"@advertised" ygotAnnotation:"true"`
	FlexAlgoId   *uint8                          `path:"flex-algo-id" module:"openconfig-network-instance"`
	ΛFlexAlgoId  []ygot.Annotation               `path:"@flex-algo-id" ygotAnnotation:"true"`
	IsisLevel    E_OpenconfigIsisTypes_LevelType `path:"isis-level" module:"openconfig-network-instance"`
	ΛIsisLevel   []ygot.Annotation               `path:"@isis-level" ygotAnnotation:"true"`
	Participate  *bool                           `path:"participate" module:"openconfig-network-instance"`
	ΛParticipate []ygot.Annotation               `path:"@participate" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) IsYANGGoStruct() {
}

// GetAdvertised retrieves the value of the leaf Advertised from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Advertised is set, it can
// safely use t.GetAdvertised() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Advertised == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) GetAdvertised() bool {
	if t == nil || t.Advertised == nil {
		return false
	}
	return *t.Advertised
}

// GetFlexAlgoId retrieves the value of the leaf FlexAlgoId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlexAlgoId is set, it can
// safely use t.GetFlexAlgoId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlexAlgoId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) GetFlexAlgoId() uint8 {
	if t == nil || t.FlexAlgoId == nil {
		return 0
	}
	return *t.FlexAlgoId
}

// GetIsisLevel retrieves the value of the leaf IsisLevel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IsisLevel is set, it can
// safely use t.GetIsisLevel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IsisLevel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) GetIsisLevel() E_OpenconfigIsisTypes_LevelType {
	if t == nil || t.IsisLevel == 0 {
		return OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	return t.IsisLevel
}

// GetParticipate retrieves the value of the leaf Participate from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Participate is set, it can
// safely use t.GetParticipate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Participate == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) GetParticipate() bool {
	if t == nil || t.Participate == nil {
		return false
	}
	return *t.Participate
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Advertised == nil {
		var v bool = false
		t.Advertised = &v
	}
	if t.IsisLevel == 0 {
		t.IsisLevel = OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	if t.Participate == nil {
		var v bool = false
		t.Participate = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_FlexAlgorithmBindings_FlexAlgorithmBinding_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Srgb      *string           `path:"srgb" module:"openconfig-network-instance"`
	ΛSrgb     []ygot.Annotation `path:"@srgb" ygotAnnotation:"true"`
	Srlb      *string           `path:"srlb" module:"openconfig-network-instance"`
	ΛSrlb     []ygot.Annotation `path:"@srlb" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSrgb retrieves the value of the leaf Srgb from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Srgb is set, it can
// safely use t.GetSrgb() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Srgb == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) GetSrgb() string {
	if t == nil || t.Srgb == nil {
		return ""
	}
	return *t.Srgb
}

// GetSrlb retrieves the value of the leaf Srlb from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Srlb is set, it can
// safely use t.GetSrlb() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Srlb == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) GetSrlb() string {
	if t == nil || t.Srlb == nil {
		return ""
	}
	return *t.Srlb
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_SegmentRouting_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State struct {
	ΛMetadata             []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	AuthenticationCheck   *bool                                  `path:"authentication-check" module:"openconfig-network-instance"`
	ΛAuthenticationCheck  []ygot.Annotation                      `path:"@authentication-check" ygotAnnotation:"true"`
	CsnpEnableOnP2PLinks  *bool                                  `path:"csnp-enable-on-p2p-links" module:"openconfig-network-instance"`
	ΛCsnpEnableOnP2PLinks []ygot.Annotation                      `path:"@csnp-enable-on-p2p-links" ygotAnnotation:"true"`
	FastFlooding          *bool                                  `path:"fast-flooding" module:"openconfig-network-instance"`
	ΛFastFlooding         []ygot.Annotation                      `path:"@fast-flooding" ygotAnnotation:"true"`
	HelloPadding          E_OpenconfigIsisTypes_HelloPaddingType `path:"hello-padding" module:"openconfig-network-instance"`
	ΛHelloPadding         []ygot.Annotation                      `path:"@hello-padding" ygotAnnotation:"true"`
	IidTlv                *bool                                  `path:"iid-tlv" module:"openconfig-network-instance"`
	ΛIidTlv               []ygot.Annotation                      `path:"@iid-tlv" ygotAnnotation:"true"`
	Instance              *string                                `path:"instance" module:"openconfig-network-instance"`
	ΛInstance             []ygot.Annotation                      `path:"@instance" ygotAnnotation:"true"`
	InstanceId            *uint16                                `path:"instance-id" module:"openconfig-network-instance"`
	ΛInstanceId           []ygot.Annotation                      `path:"@instance-id" ygotAnnotation:"true"`
	LevelCapability       E_OpenconfigIsisTypes_LevelType        `path:"level-capability" module:"openconfig-network-instance"`
	ΛLevelCapability      []ygot.Annotation                      `path:"@level-capability" ygotAnnotation:"true"`
	MaxEcmpPaths          *uint8                                 `path:"max-ecmp-paths" module:"openconfig-network-instance"`
	ΛMaxEcmpPaths         []ygot.Annotation                      `path:"@max-ecmp-paths" ygotAnnotation:"true"`
	MaximumAreaAddresses  *uint8                                 `path:"maximum-area-addresses" module:"openconfig-network-instance"`
	ΛMaximumAreaAddresses []ygot.Annotation                      `path:"@maximum-area-addresses" ygotAnnotation:"true"`
	Net                   []string                               `path:"net" module:"openconfig-network-instance"`
	ΛNet                  []ygot.Annotation                      `path:"@net" ygotAnnotation:"true"`
	PoiTlv                *bool                                  `path:"poi-tlv" module:"openconfig-network-instance"`
	ΛPoiTlv               []ygot.Annotation                      `path:"@poi-tlv" ygotAnnotation:"true"`
	WeightedEcmp          *bool                                  `path:"weighted-ecmp" module:"openconfig-network-instance"`
	ΛWeightedEcmp         []ygot.Annotation                      `path:"@weighted-ecmp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) IsYANGGoStruct() {
}

// GetAuthenticationCheck retrieves the value of the leaf AuthenticationCheck from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationCheck is set, it can
// safely use t.GetAuthenticationCheck() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationCheck == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetAuthenticationCheck() bool {
	if t == nil || t.AuthenticationCheck == nil {
		return true
	}
	return *t.AuthenticationCheck
}

// GetCsnpEnableOnP2PLinks retrieves the value of the leaf CsnpEnableOnP2PLinks from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CsnpEnableOnP2PLinks is set, it can
// safely use t.GetCsnpEnableOnP2PLinks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CsnpEnableOnP2PLinks == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetCsnpEnableOnP2PLinks() bool {
	if t == nil || t.CsnpEnableOnP2PLinks == nil {
		return true
	}
	return *t.CsnpEnableOnP2PLinks
}

// GetFastFlooding retrieves the value of the leaf FastFlooding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FastFlooding is set, it can
// safely use t.GetFastFlooding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FastFlooding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetFastFlooding() bool {
	if t == nil || t.FastFlooding == nil {
		return true
	}
	return *t.FastFlooding
}

// GetHelloPadding retrieves the value of the leaf HelloPadding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloPadding is set, it can
// safely use t.GetHelloPadding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloPadding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetHelloPadding() E_OpenconfigIsisTypes_HelloPaddingType {
	if t == nil || t.HelloPadding == 0 {
		return OpenconfigIsisTypes_HelloPaddingType_STRICT
	}
	return t.HelloPadding
}

// GetIidTlv retrieves the value of the leaf IidTlv from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IidTlv is set, it can
// safely use t.GetIidTlv() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IidTlv == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetIidTlv() bool {
	if t == nil || t.IidTlv == nil {
		return false
	}
	return *t.IidTlv
}

// GetInstance retrieves the value of the leaf Instance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instance is set, it can
// safely use t.GetInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetInstance() string {
	if t == nil || t.Instance == nil {
		return "0"
	}
	return *t.Instance
}

// GetInstanceId retrieves the value of the leaf InstanceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceId is set, it can
// safely use t.GetInstanceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetInstanceId() uint16 {
	if t == nil || t.InstanceId == nil {
		return 0
	}
	return *t.InstanceId
}

// GetLevelCapability retrieves the value of the leaf LevelCapability from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelCapability is set, it can
// safely use t.GetLevelCapability() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelCapability == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetLevelCapability() E_OpenconfigIsisTypes_LevelType {
	if t == nil || t.LevelCapability == 0 {
		return OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	return t.LevelCapability
}

// GetMaxEcmpPaths retrieves the value of the leaf MaxEcmpPaths from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxEcmpPaths is set, it can
// safely use t.GetMaxEcmpPaths() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxEcmpPaths == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetMaxEcmpPaths() uint8 {
	if t == nil || t.MaxEcmpPaths == nil {
		return 0
	}
	return *t.MaxEcmpPaths
}

// GetMaximumAreaAddresses retrieves the value of the leaf MaximumAreaAddresses from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumAreaAddresses is set, it can
// safely use t.GetMaximumAreaAddresses() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumAreaAddresses == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetMaximumAreaAddresses() uint8 {
	if t == nil || t.MaximumAreaAddresses == nil {
		return 3
	}
	return *t.MaximumAreaAddresses
}

// GetNet retrieves the value of the leaf Net from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Net is set, it can
// safely use t.GetNet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Net == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetNet() []string {
	if t == nil || t.Net == nil {
		return nil
	}
	return t.Net
}

// GetPoiTlv retrieves the value of the leaf PoiTlv from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PoiTlv is set, it can
// safely use t.GetPoiTlv() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PoiTlv == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetPoiTlv() bool {
	if t == nil || t.PoiTlv == nil {
		return false
	}
	return *t.PoiTlv
}

// GetWeightedEcmp retrieves the value of the leaf WeightedEcmp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WeightedEcmp is set, it can
// safely use t.GetWeightedEcmp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WeightedEcmp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) GetWeightedEcmp() bool {
	if t == nil || t.WeightedEcmp == nil {
		return false
	}
	return *t.WeightedEcmp
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AuthenticationCheck == nil {
		var v bool = true
		t.AuthenticationCheck = &v
	}
	if t.CsnpEnableOnP2PLinks == nil {
		var v bool = true
		t.CsnpEnableOnP2PLinks = &v
	}
	if t.FastFlooding == nil {
		var v bool = true
		t.FastFlooding = &v
	}
	if t.HelloPadding == 0 {
		t.HelloPadding = OpenconfigIsisTypes_HelloPaddingType_STRICT
	}
	if t.IidTlv == nil {
		var v bool = false
		t.IidTlv = &v
	}
	if t.Instance == nil {
		var v string = "0"
		t.Instance = &v
	}
	if t.LevelCapability == 0 {
		t.LevelCapability = OpenconfigIsisTypes_LevelType_LEVEL_1_2
	}
	if t.MaximumAreaAddresses == nil {
		var v uint8 = 3
		t.MaximumAreaAddresses = &v
	}
	if t.PoiTlv == nil {
		var v bool = false
		t.PoiTlv = &v
	}
	if t.WeightedEcmp == nil {
		var v bool = false
		t.WeightedEcmp = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers struct {
	ΛMetadata      []ygot.Annotation                                                                                               `path:"@" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config        `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                               `path:"@config" ygotAnnotation:"true"`
	LspGeneration  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration `path:"lsp-generation" module:"openconfig-network-instance"`
	ΛLspGeneration []ygot.Annotation                                                                                               `path:"@lsp-generation" ygotAnnotation:"true"`
	Spf            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf           `path:"spf" module:"openconfig-network-instance"`
	ΛSpf           []ygot.Annotation                                                                                               `path:"@spf" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config{}
	return t.Config
}

// GetOrCreateLspGeneration retrieves the value of the LspGeneration field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetOrCreateLspGeneration() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration {
	if t.LspGeneration != nil {
		return t.LspGeneration
	}
	t.LspGeneration = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration{}
	return t.LspGeneration
}

// GetOrCreateSpf retrieves the value of the Spf field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetOrCreateSpf() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf {
	if t.Spf != nil {
		return t.Spf
	}
	t.Spf = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf{}
	return t.Spf
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLspGeneration returns the value of the LspGeneration struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers. If the receiver or the field LspGeneration is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetLspGeneration() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration {
	if t != nil && t.LspGeneration != nil {
		return t.LspGeneration
	}
	return nil
}

// GetSpf returns the value of the Spf struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers. If the receiver or the field Spf is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetSpf() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf {
	if t != nil && t.Spf != nil {
		return t.Spf
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LspGeneration.PopulateDefaults()
	t.Spf.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LspLifetimeInterval  *uint16           `path:"lsp-lifetime-interval" module:"openconfig-network-instance"`
	ΛLspLifetimeInterval []ygot.Annotation `path:"@lsp-lifetime-interval" ygotAnnotation:"true"`
	LspRefreshInterval   *uint16           `path:"lsp-refresh-interval" module:"openconfig-network-instance"`
	ΛLspRefreshInterval  []ygot.Annotation `path:"@lsp-refresh-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) IsYANGGoStruct() {
}

// GetLspLifetimeInterval retrieves the value of the leaf LspLifetimeInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspLifetimeInterval is set, it can
// safely use t.GetLspLifetimeInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspLifetimeInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) GetLspLifetimeInterval() uint16 {
	if t == nil || t.LspLifetimeInterval == nil {
		return 1200
	}
	return *t.LspLifetimeInterval
}

// GetLspRefreshInterval retrieves the value of the leaf LspRefreshInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspRefreshInterval is set, it can
// safely use t.GetLspRefreshInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspRefreshInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) GetLspRefreshInterval() uint16 {
	if t == nil || t.LspRefreshInterval == nil {
		return 0
	}
	return *t.LspRefreshInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LspLifetimeInterval == nil {
		var v uint16 = 1200
		t.LspLifetimeInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/lsp-generation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/lsp-generation/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LspFirstWaitInterval   *uint64           `path:"lsp-first-wait-interval" module:"openconfig-network-instance"`
	ΛLspFirstWaitInterval  []ygot.Annotation `path:"@lsp-first-wait-interval" ygotAnnotation:"true"`
	LspMaxWaitInterval     *uint64           `path:"lsp-max-wait-interval" module:"openconfig-network-instance"`
	ΛLspMaxWaitInterval    []ygot.Annotation `path:"@lsp-max-wait-interval" ygotAnnotation:"true"`
	LspSecondWaitInterval  *uint64           `path:"lsp-second-wait-interval" module:"openconfig-network-instance"`
	ΛLspSecondWaitInterval []ygot.Annotation `path:"@lsp-second-wait-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) IsYANGGoStruct() {
}

// GetLspFirstWaitInterval retrieves the value of the leaf LspFirstWaitInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspFirstWaitInterval is set, it can
// safely use t.GetLspFirstWaitInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspFirstWaitInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) GetLspFirstWaitInterval() uint64 {
	if t == nil || t.LspFirstWaitInterval == nil {
		return 0
	}
	return *t.LspFirstWaitInterval
}

// GetLspMaxWaitInterval retrieves the value of the leaf LspMaxWaitInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspMaxWaitInterval is set, it can
// safely use t.GetLspMaxWaitInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspMaxWaitInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) GetLspMaxWaitInterval() uint64 {
	if t == nil || t.LspMaxWaitInterval == nil {
		return 0
	}
	return *t.LspMaxWaitInterval
}

// GetLspSecondWaitInterval retrieves the value of the leaf LspSecondWaitInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspSecondWaitInterval is set, it can
// safely use t.GetLspSecondWaitInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspSecondWaitInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) GetLspSecondWaitInterval() uint64 {
	if t == nil || t.LspSecondWaitInterval == nil {
		return 0
	}
	return *t.LspSecondWaitInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/lsp-generation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State struct {
	ΛMetadata              []ygot.Annotation                       `path:"@" ygotAnnotation:"true"`
	AdaptiveTimer          E_OpenconfigIsisTypes_AdaptiveTimerType `path:"adaptive-timer" module:"openconfig-network-instance"`
	ΛAdaptiveTimer         []ygot.Annotation                       `path:"@adaptive-timer" ygotAnnotation:"true"`
	LspFirstWaitInterval   *uint64                                 `path:"lsp-first-wait-interval" module:"openconfig-network-instance"`
	ΛLspFirstWaitInterval  []ygot.Annotation                       `path:"@lsp-first-wait-interval" ygotAnnotation:"true"`
	LspMaxWaitInterval     *uint64                                 `path:"lsp-max-wait-interval" module:"openconfig-network-instance"`
	ΛLspMaxWaitInterval    []ygot.Annotation                       `path:"@lsp-max-wait-interval" ygotAnnotation:"true"`
	LspSecondWaitInterval  *uint64                                 `path:"lsp-second-wait-interval" module:"openconfig-network-instance"`
	ΛLspSecondWaitInterval []ygot.Annotation                       `path:"@lsp-second-wait-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) IsYANGGoStruct() {
}

// GetAdaptiveTimer retrieves the value of the leaf AdaptiveTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdaptiveTimer is set, it can
// safely use t.GetAdaptiveTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdaptiveTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) GetAdaptiveTimer() E_OpenconfigIsisTypes_AdaptiveTimerType {
	if t == nil || t.AdaptiveTimer == 0 {
		return 0
	}
	return t.AdaptiveTimer
}

// GetLspFirstWaitInterval retrieves the value of the leaf LspFirstWaitInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspFirstWaitInterval is set, it can
// safely use t.GetLspFirstWaitInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspFirstWaitInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) GetLspFirstWaitInterval() uint64 {
	if t == nil || t.LspFirstWaitInterval == nil {
		return 0
	}
	return *t.LspFirstWaitInterval
}

// GetLspMaxWaitInterval retrieves the value of the leaf LspMaxWaitInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspMaxWaitInterval is set, it can
// safely use t.GetLspMaxWaitInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspMaxWaitInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) GetLspMaxWaitInterval() uint64 {
	if t == nil || t.LspMaxWaitInterval == nil {
		return 0
	}
	return *t.LspMaxWaitInterval
}

// GetLspSecondWaitInterval retrieves the value of the leaf LspSecondWaitInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspSecondWaitInterval is set, it can
// safely use t.GetLspSecondWaitInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspSecondWaitInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) GetLspSecondWaitInterval() uint64 {
	if t == nil || t.LspSecondWaitInterval == nil {
		return 0
	}
	return *t.LspSecondWaitInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_LspGeneration_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/spf YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf struct {
	ΛMetadata []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/spf/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SpfFirstInterval   *uint64           `path:"spf-first-interval" module:"openconfig-network-instance"`
	ΛSpfFirstInterval  []ygot.Annotation `path:"@spf-first-interval" ygotAnnotation:"true"`
	SpfHoldInterval    *uint64           `path:"spf-hold-interval" module:"openconfig-network-instance"`
	ΛSpfHoldInterval   []ygot.Annotation `path:"@spf-hold-interval" ygotAnnotation:"true"`
	SpfSecondInterval  *uint64           `path:"spf-second-interval" module:"openconfig-network-instance"`
	ΛSpfSecondInterval []ygot.Annotation `path:"@spf-second-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) IsYANGGoStruct() {
}

// GetSpfFirstInterval retrieves the value of the leaf SpfFirstInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfFirstInterval is set, it can
// safely use t.GetSpfFirstInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfFirstInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) GetSpfFirstInterval() uint64 {
	if t == nil || t.SpfFirstInterval == nil {
		return 0
	}
	return *t.SpfFirstInterval
}

// GetSpfHoldInterval retrieves the value of the leaf SpfHoldInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfHoldInterval is set, it can
// safely use t.GetSpfHoldInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfHoldInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) GetSpfHoldInterval() uint64 {
	if t == nil || t.SpfHoldInterval == nil {
		return 5000
	}
	return *t.SpfHoldInterval
}

// GetSpfSecondInterval retrieves the value of the leaf SpfSecondInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfSecondInterval is set, it can
// safely use t.GetSpfSecondInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfSecondInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) GetSpfSecondInterval() uint64 {
	if t == nil || t.SpfSecondInterval == nil {
		return 0
	}
	return *t.SpfSecondInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SpfHoldInterval == nil {
		var v uint64 = 5000
		t.SpfHoldInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/spf/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State struct {
	ΛMetadata          []ygot.Annotation                       `path:"@" ygotAnnotation:"true"`
	AdaptiveTimer      E_OpenconfigIsisTypes_AdaptiveTimerType `path:"adaptive-timer" module:"openconfig-network-instance"`
	ΛAdaptiveTimer     []ygot.Annotation                       `path:"@adaptive-timer" ygotAnnotation:"true"`
	SpfFirstInterval   *uint64                                 `path:"spf-first-interval" module:"openconfig-network-instance"`
	ΛSpfFirstInterval  []ygot.Annotation                       `path:"@spf-first-interval" ygotAnnotation:"true"`
	SpfHoldInterval    *uint64                                 `path:"spf-hold-interval" module:"openconfig-network-instance"`
	ΛSpfHoldInterval   []ygot.Annotation                       `path:"@spf-hold-interval" ygotAnnotation:"true"`
	SpfSecondInterval  *uint64                                 `path:"spf-second-interval" module:"openconfig-network-instance"`
	ΛSpfSecondInterval []ygot.Annotation                       `path:"@spf-second-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) IsYANGGoStruct() {
}

// GetAdaptiveTimer retrieves the value of the leaf AdaptiveTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdaptiveTimer is set, it can
// safely use t.GetAdaptiveTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdaptiveTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) GetAdaptiveTimer() E_OpenconfigIsisTypes_AdaptiveTimerType {
	if t == nil || t.AdaptiveTimer == 0 {
		return 0
	}
	return t.AdaptiveTimer
}

// GetSpfFirstInterval retrieves the value of the leaf SpfFirstInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfFirstInterval is set, it can
// safely use t.GetSpfFirstInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfFirstInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) GetSpfFirstInterval() uint64 {
	if t == nil || t.SpfFirstInterval == nil {
		return 0
	}
	return *t.SpfFirstInterval
}

// GetSpfHoldInterval retrieves the value of the leaf SpfHoldInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfHoldInterval is set, it can
// safely use t.GetSpfHoldInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfHoldInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) GetSpfHoldInterval() uint64 {
	if t == nil || t.SpfHoldInterval == nil {
		return 5000
	}
	return *t.SpfHoldInterval
}

// GetSpfSecondInterval retrieves the value of the leaf SpfSecondInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfSecondInterval is set, it can
// safely use t.GetSpfSecondInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfSecondInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) GetSpfSecondInterval() uint64 {
	if t == nil || t.SpfSecondInterval == nil {
		return 0
	}
	return *t.SpfSecondInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SpfHoldInterval == nil {
		var v uint64 = 5000
		t.SpfHoldInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_Spf_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LspLifetimeInterval  *uint16           `path:"lsp-lifetime-interval" module:"openconfig-network-instance"`
	ΛLspLifetimeInterval []ygot.Annotation `path:"@lsp-lifetime-interval" ygotAnnotation:"true"`
	LspRefreshInterval   *uint16           `path:"lsp-refresh-interval" module:"openconfig-network-instance"`
	ΛLspRefreshInterval  []ygot.Annotation `path:"@lsp-refresh-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) IsYANGGoStruct() {
}

// GetLspLifetimeInterval retrieves the value of the leaf LspLifetimeInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspLifetimeInterval is set, it can
// safely use t.GetLspLifetimeInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspLifetimeInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) GetLspLifetimeInterval() uint16 {
	if t == nil || t.LspLifetimeInterval == nil {
		return 1200
	}
	return *t.LspLifetimeInterval
}

// GetLspRefreshInterval retrieves the value of the leaf LspRefreshInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspRefreshInterval is set, it can
// safely use t.GetLspRefreshInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspRefreshInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) GetLspRefreshInterval() uint16 {
	if t == nil || t.LspRefreshInterval == nil {
		return 0
	}
	return *t.LspRefreshInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LspLifetimeInterval == nil {
		var v uint16 = 1200
		t.LspLifetimeInterval = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Timers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/transport YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport struct {
	ΛMetadata []ygot.Annotation                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/transport/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LspMtuSize  *uint16           `path:"lsp-mtu-size" module:"openconfig-network-instance"`
	ΛLspMtuSize []ygot.Annotation `path:"@lsp-mtu-size" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config) IsYANGGoStruct() {
}

// GetLspMtuSize retrieves the value of the leaf LspMtuSize from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspMtuSize is set, it can
// safely use t.GetLspMtuSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspMtuSize == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config) GetLspMtuSize() uint16 {
	if t == nil || t.LspMtuSize == nil {
		return 0
	}
	return *t.LspMtuSize
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/global/transport/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	LspMtuSize  *uint16           `path:"lsp-mtu-size" module:"openconfig-network-instance"`
	ΛLspMtuSize []ygot.Annotation `path:"@lsp-mtu-size" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State) IsYANGGoStruct() {
}

// GetLspMtuSize retrieves the value of the leaf LspMtuSize from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspMtuSize is set, it can
// safely use t.GetLspMtuSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspMtuSize == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State) GetLspMtuSize() uint16 {
	if t == nil || t.LspMtuSize == nil {
		return 0
	}
	return *t.LspMtuSize
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Global_Transport_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                   `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface struct {
	ΛMetadata        []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	AfiSafi          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi         `path:"afi-safi" module:"openconfig-network-instance"`
	ΛAfiSafi         []ygot.Annotation                                                                                                        `path:"@afi-safi" ygotAnnotation:"true"`
	Authentication   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication  `path:"authentication" module:"openconfig-network-instance"`
	ΛAuthentication  []ygot.Annotation                                                                                                        `path:"@authentication" ygotAnnotation:"true"`
	Bfd              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd             `path:"bfd" module:"openconfig-network-instance"`
	ΛBfd             []ygot.Annotation                                                                                                        `path:"@bfd" ygotAnnotation:"true"`
	CircuitCounters  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters `path:"circuit-counters" module:"openconfig-network-instance"`
	ΛCircuitCounters []ygot.Annotation                                                                                                        `path:"@circuit-counters" ygotAnnotation:"true"`
	Config           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config          `path:"config" module:"openconfig-network-instance"`
	ΛConfig          []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	EnableBfd        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd       `path:"enable-bfd" module:"openconfig-network-instance"`
	ΛEnableBfd       []ygot.Annotation                                                                                                        `path:"@enable-bfd" ygotAnnotation:"true"`
	GracefulRestart  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart []ygot.Annotation                                                                                                        `path:"@graceful-restart" ygotAnnotation:"true"`
	InterfaceId      *string                                                                                                                  `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId     []ygot.Annotation                                                                                                        `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef    `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef    []ygot.Annotation                                                                                                        `path:"@interface-ref" ygotAnnotation:"true"`
	Levels           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels          `path:"levels" module:"openconfig-network-instance"`
	ΛLevels          []ygot.Annotation                                                                                                        `path:"@levels" ygotAnnotation:"true"`
	Mpls             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls            `path:"mpls" module:"openconfig-network-instance"`
	ΛMpls            []ygot.Annotation                                                                                                        `path:"@mpls" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
	Timers           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers          `path:"timers" module:"openconfig-network-instance"`
	ΛTimers          []ygot.Annotation                                                                                                        `path:"@timers" ygotAnnotation:"true"`
	WeightedEcmp     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp    `path:"weighted-ecmp" module:"openconfig-network-instance"`
	ΛWeightedEcmp    []ygot.Annotation                                                                                                        `path:"@weighted-ecmp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateAfiSafi retrieves the value of the AfiSafi field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateAfiSafi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi {
	if t.AfiSafi != nil {
		return t.AfiSafi
	}
	t.AfiSafi = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi{}
	return t.AfiSafi
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication{}
	return t.Authentication
}

// GetOrCreateBfd retrieves the value of the Bfd field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd {
	if t.Bfd != nil {
		return t.Bfd
	}
	t.Bfd = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd{}
	return t.Bfd
}

// GetOrCreateCircuitCounters retrieves the value of the CircuitCounters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateCircuitCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters {
	if t.CircuitCounters != nil {
		return t.CircuitCounters
	}
	t.CircuitCounters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters{}
	return t.CircuitCounters
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateEnableBfd retrieves the value of the EnableBfd field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd {
	if t.EnableBfd != nil {
		return t.EnableBfd
	}
	t.EnableBfd = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd{}
	return t.EnableBfd
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateLevels retrieves the value of the Levels field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateLevels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels {
	if t.Levels != nil {
		return t.Levels
	}
	t.Levels = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels{}
	return t.Levels
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls{}
	return t.Mpls
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers{}
	return t.Timers
}

// GetOrCreateWeightedEcmp retrieves the value of the WeightedEcmp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetOrCreateWeightedEcmp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp {
	if t.WeightedEcmp != nil {
		return t.WeightedEcmp
	}
	t.WeightedEcmp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp{}
	return t.WeightedEcmp
}

// GetAfiSafi returns the value of the AfiSafi struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field AfiSafi is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetAfiSafi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi {
	if t != nil && t.AfiSafi != nil {
		return t.AfiSafi
	}
	return nil
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetBfd returns the value of the Bfd struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field Bfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd {
	if t != nil && t.Bfd != nil {
		return t.Bfd
	}
	return nil
}

// GetCircuitCounters returns the value of the CircuitCounters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field CircuitCounters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetCircuitCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters {
	if t != nil && t.CircuitCounters != nil {
		return t.CircuitCounters
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEnableBfd returns the value of the EnableBfd struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field EnableBfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd {
	if t != nil && t.EnableBfd != nil {
		return t.EnableBfd
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetLevels returns the value of the Levels struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field Levels is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetLevels() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels {
	if t != nil && t.Levels != nil {
		return t.Levels
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// GetWeightedEcmp returns the value of the WeightedEcmp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface. If the receiver or the field WeightedEcmp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetWeightedEcmp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp {
	if t != nil && t.WeightedEcmp != nil {
		return t.WeightedEcmp
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AfiSafi.PopulateDefaults()
	t.Authentication.PopulateDefaults()
	t.Bfd.PopulateDefaults()
	t.CircuitCounters.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.EnableBfd.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.Levels.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
	t.WeightedEcmp.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Af        map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af `path:"af" module:"openconfig-network-instance"`
	ΛAf       []ygot.Annotation                                                                                                                                                                                                                              `path:"@af" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key represents the key for list Af of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key struct {
	AfiName  E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name"`
	SafiName E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"afi-name":  t.AfiName,
		"safi-name": t.SafiName,
	}, nil
}

// NewAf creates a new entry in the Af list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) NewAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Af[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Af", key)
	}

	t.Af[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	return t.Af[key], nil
}

// RenameAf renames an entry in the list Af within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) RenameAf(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key) error {
	if _, ok := t.Af[newK]; ok {
		return fmt.Errorf("key %v already exists in Af", newK)
	}

	e, ok := t.Af[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Af", oldK)
	}
	e.AfiName = newK.AfiName
	e.SafiName = newK.SafiName

	t.Af[newK] = e
	delete(t.Af, oldK)
	return nil
}

// GetOrCreateAfMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) GetOrCreateAfMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af {
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af)
	}
	return t.Af
}

// GetOrCreateAf retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) GetOrCreateAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	if v, ok := t.Af[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAf(AfiName, SafiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAf got unexpected error: %v", err))
	}
	return v
}

// GetAf retrieves the value with the specified key from
// the Af map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) GetAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	if lm, ok := t.Af[key]; ok {
		return lm
	}
	return nil
}

// AppendAf appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af struct to the
// list Af of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) AppendAf(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) error {
	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key{
		AfiName:  v.AfiName,
		SafiName: v.SafiName,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af)
	}

	if _, ok := t.Af[key]; ok {
		return fmt.Errorf("duplicate key for list Af %v", key)
	}

	t.Af[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Af {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE                                                                                             `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation                                                                                                          `path:"@afi-name" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	SafiName  E_OpenconfigIsisTypes_SAFI_TYPE                                                                                            `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName []ygot.Annotation                                                                                                          `path:"@safi-name" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-name":  t.AfiName,
		"safi-name": t.SafiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config struct {
	ΛMetadata []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	Enabled   *bool                           `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation               `path:"@enabled" ygotAnnotation:"true"`
	SafiName  E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State struct {
	ΛMetadata []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	Enabled   *bool                           `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation               `path:"@enabled" ygotAnnotation:"true"`
	SafiName  E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_AfiSafi_Af_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication struct {
	ΛMetadata []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/authentication/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config struct {
	ΛMetadata     []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	AuthMode      E_OpenconfigIsisTypes_AUTH_MODE     `path:"auth-mode" module:"openconfig-network-instance"`
	ΛAuthMode     []ygot.Annotation                   `path:"@auth-mode" ygotAnnotation:"true"`
	AuthPassword  *string                             `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword []ygot.Annotation                   `path:"@auth-password" ygotAnnotation:"true"`
	AuthType      E_OpenconfigKeychainTypes_AUTH_TYPE `path:"auth-type" module:"openconfig-network-instance"`
	ΛAuthType     []ygot.Annotation                   `path:"@auth-type" ygotAnnotation:"true"`
	Enabled       *bool                               `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	Keychain      *string                             `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain     []ygot.Annotation                   `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) IsYANGGoStruct() {
}

// GetAuthMode retrieves the value of the leaf AuthMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthMode is set, it can
// safely use t.GetAuthMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) GetAuthMode() E_OpenconfigIsisTypes_AUTH_MODE {
	if t == nil || t.AuthMode == 0 {
		return 0
	}
	return t.AuthMode
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetAuthType retrieves the value of the leaf AuthType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthType is set, it can
// safely use t.GetAuthType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) GetAuthType() E_OpenconfigKeychainTypes_AUTH_TYPE {
	if t == nil || t.AuthType == 0 {
		return 0
	}
	return t.AuthType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State struct {
	ΛMetadata     []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	AuthMode      E_OpenconfigIsisTypes_AUTH_MODE     `path:"auth-mode" module:"openconfig-network-instance"`
	ΛAuthMode     []ygot.Annotation                   `path:"@auth-mode" ygotAnnotation:"true"`
	AuthPassword  *string                             `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword []ygot.Annotation                   `path:"@auth-password" ygotAnnotation:"true"`
	AuthType      E_OpenconfigKeychainTypes_AUTH_TYPE `path:"auth-type" module:"openconfig-network-instance"`
	ΛAuthType     []ygot.Annotation                   `path:"@auth-type" ygotAnnotation:"true"`
	Enabled       *bool                               `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	Keychain      *string                             `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain     []ygot.Annotation                   `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) IsYANGGoStruct() {
}

// GetAuthMode retrieves the value of the leaf AuthMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthMode is set, it can
// safely use t.GetAuthMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) GetAuthMode() E_OpenconfigIsisTypes_AUTH_MODE {
	if t == nil || t.AuthMode == 0 {
		return 0
	}
	return t.AuthMode
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetAuthType retrieves the value of the leaf AuthType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthType is set, it can
// safely use t.GetAuthType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) GetAuthType() E_OpenconfigKeychainTypes_AUTH_TYPE {
	if t == nil || t.AuthType == 0 {
		return 0
	}
	return t.AuthType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Authentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/bfd YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/bfd/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BfdTlv    *bool             `path:"bfd-tlv" module:"openconfig-network-instance"`
	ΛBfdTlv   []ygot.Annotation `path:"@bfd-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config) IsYANGGoStruct() {
}

// GetBfdTlv retrieves the value of the leaf BfdTlv from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BfdTlv is set, it can
// safely use t.GetBfdTlv() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BfdTlv == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config) GetBfdTlv() bool {
	if t == nil || t.BfdTlv == nil {
		return false
	}
	return *t.BfdTlv
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/bfd/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BfdTlv    *bool             `path:"bfd-tlv" module:"openconfig-network-instance"`
	ΛBfdTlv   []ygot.Annotation `path:"@bfd-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State) IsYANGGoStruct() {
}

// GetBfdTlv retrieves the value of the leaf BfdTlv from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BfdTlv is set, it can
// safely use t.GetBfdTlv() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BfdTlv == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State) GetBfdTlv() bool {
	if t == nil || t.BfdTlv == nil {
		return false
	}
	return *t.BfdTlv
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Bfd_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/circuit-counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters struct {
	ΛMetadata []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/circuit-counters/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdjChanges                *uint32           `path:"adj-changes" module:"openconfig-network-instance"`
	ΛAdjChanges               []ygot.Annotation `path:"@adj-changes" ygotAnnotation:"true"`
	AdjNumber                 *uint32           `path:"adj-number" module:"openconfig-network-instance"`
	ΛAdjNumber                []ygot.Annotation `path:"@adj-number" ygotAnnotation:"true"`
	AuthFails                 *uint32           `path:"auth-fails" module:"openconfig-network-instance"`
	ΛAuthFails                []ygot.Annotation `path:"@auth-fails" ygotAnnotation:"true"`
	AuthTypeFails             *uint32           `path:"auth-type-fails" module:"openconfig-network-instance"`
	ΛAuthTypeFails            []ygot.Annotation `path:"@auth-type-fails" ygotAnnotation:"true"`
	IdFieldLenMismatches      *uint32           `path:"id-field-len-mismatches" module:"openconfig-network-instance"`
	ΛIdFieldLenMismatches     []ygot.Annotation `path:"@id-field-len-mismatches" ygotAnnotation:"true"`
	InitFails                 *uint32           `path:"init-fails" module:"openconfig-network-instance"`
	ΛInitFails                []ygot.Annotation `path:"@init-fails" ygotAnnotation:"true"`
	LanDisChanges             *uint32           `path:"lan-dis-changes" module:"openconfig-network-instance"`
	ΛLanDisChanges            []ygot.Annotation `path:"@lan-dis-changes" ygotAnnotation:"true"`
	MaxAreaAddressMismatches  *uint32           `path:"max-area-address-mismatches" module:"openconfig-network-instance"`
	ΛMaxAreaAddressMismatches []ygot.Annotation `path:"@max-area-address-mismatches" ygotAnnotation:"true"`
	RejectedAdj               *uint32           `path:"rejected-adj" module:"openconfig-network-instance"`
	ΛRejectedAdj              []ygot.Annotation `path:"@rejected-adj" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) IsYANGGoStruct() {
}

// GetAdjChanges retrieves the value of the leaf AdjChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjChanges is set, it can
// safely use t.GetAdjChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetAdjChanges() uint32 {
	if t == nil || t.AdjChanges == nil {
		return 0
	}
	return *t.AdjChanges
}

// GetAdjNumber retrieves the value of the leaf AdjNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjNumber is set, it can
// safely use t.GetAdjNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetAdjNumber() uint32 {
	if t == nil || t.AdjNumber == nil {
		return 0
	}
	return *t.AdjNumber
}

// GetAuthFails retrieves the value of the leaf AuthFails from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthFails is set, it can
// safely use t.GetAuthFails() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthFails == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetAuthFails() uint32 {
	if t == nil || t.AuthFails == nil {
		return 0
	}
	return *t.AuthFails
}

// GetAuthTypeFails retrieves the value of the leaf AuthTypeFails from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthTypeFails is set, it can
// safely use t.GetAuthTypeFails() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthTypeFails == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetAuthTypeFails() uint32 {
	if t == nil || t.AuthTypeFails == nil {
		return 0
	}
	return *t.AuthTypeFails
}

// GetIdFieldLenMismatches retrieves the value of the leaf IdFieldLenMismatches from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IdFieldLenMismatches is set, it can
// safely use t.GetIdFieldLenMismatches() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IdFieldLenMismatches == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetIdFieldLenMismatches() uint32 {
	if t == nil || t.IdFieldLenMismatches == nil {
		return 0
	}
	return *t.IdFieldLenMismatches
}

// GetInitFails retrieves the value of the leaf InitFails from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InitFails is set, it can
// safely use t.GetInitFails() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InitFails == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetInitFails() uint32 {
	if t == nil || t.InitFails == nil {
		return 0
	}
	return *t.InitFails
}

// GetLanDisChanges retrieves the value of the leaf LanDisChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LanDisChanges is set, it can
// safely use t.GetLanDisChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LanDisChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetLanDisChanges() uint32 {
	if t == nil || t.LanDisChanges == nil {
		return 0
	}
	return *t.LanDisChanges
}

// GetMaxAreaAddressMismatches retrieves the value of the leaf MaxAreaAddressMismatches from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxAreaAddressMismatches is set, it can
// safely use t.GetMaxAreaAddressMismatches() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxAreaAddressMismatches == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetMaxAreaAddressMismatches() uint32 {
	if t == nil || t.MaxAreaAddressMismatches == nil {
		return 0
	}
	return *t.MaxAreaAddressMismatches
}

// GetRejectedAdj retrieves the value of the leaf RejectedAdj from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RejectedAdj is set, it can
// safely use t.GetRejectedAdj() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RejectedAdj == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) GetRejectedAdj() uint32 {
	if t == nil || t.RejectedAdj == nil {
		return 0
	}
	return *t.RejectedAdj
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_CircuitCounters_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config struct {
	ΛMetadata     []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	CircuitType   E_OpenconfigIsisTypes_CircuitType      `path:"circuit-type" module:"openconfig-network-instance"`
	ΛCircuitType  []ygot.Annotation                      `path:"@circuit-type" ygotAnnotation:"true"`
	Enabled       *bool                                  `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                      `path:"@enabled" ygotAnnotation:"true"`
	HelloPadding  E_OpenconfigIsisTypes_HelloPaddingType `path:"hello-padding" module:"openconfig-network-instance"`
	ΛHelloPadding []ygot.Annotation                      `path:"@hello-padding" ygotAnnotation:"true"`
	InterfaceId   *string                                `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId  []ygot.Annotation                      `path:"@interface-id" ygotAnnotation:"true"`
	Passive       *bool                                  `path:"passive" module:"openconfig-network-instance"`
	ΛPassive      []ygot.Annotation                      `path:"@passive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetCircuitType retrieves the value of the leaf CircuitType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CircuitType is set, it can
// safely use t.GetCircuitType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CircuitType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) GetCircuitType() E_OpenconfigIsisTypes_CircuitType {
	if t == nil || t.CircuitType == 0 {
		return 0
	}
	return t.CircuitType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelloPadding retrieves the value of the leaf HelloPadding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloPadding is set, it can
// safely use t.GetHelloPadding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloPadding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) GetHelloPadding() E_OpenconfigIsisTypes_HelloPaddingType {
	if t == nil || t.HelloPadding == 0 {
		return 0
	}
	return t.HelloPadding
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetPassive retrieves the value of the leaf Passive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Passive is set, it can
// safely use t.GetPassive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Passive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) GetPassive() bool {
	if t == nil || t.Passive == nil {
		return false
	}
	return *t.Passive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.Passive == nil {
		var v bool = false
		t.Passive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/enable-bfd YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd struct {
	ΛMetadata []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/enable-bfd/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/enable-bfd/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_EnableBfd_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InterfaceTimeExpirations  *int64            `path:"interface-time-expirations" module:"openconfig-network-instance"`
	ΛInterfaceTimeExpirations []ygot.Annotation `path:"@interface-time-expirations" ygotAnnotation:"true"`
	InterfaceTimer            *uint16           `path:"interface-timer" module:"openconfig-network-instance"`
	ΛInterfaceTimer           []ygot.Annotation `path:"@interface-timer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetInterfaceTimeExpirations retrieves the value of the leaf InterfaceTimeExpirations from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimeExpirations is set, it can
// safely use t.GetInterfaceTimeExpirations() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimeExpirations == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) GetInterfaceTimeExpirations() int64 {
	if t == nil || t.InterfaceTimeExpirations == nil {
		return 0
	}
	return *t.InterfaceTimeExpirations
}

// GetInterfaceTimer retrieves the value of the leaf InterfaceTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimer is set, it can
// safely use t.GetInterfaceTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) GetInterfaceTimer() uint16 {
	if t == nil || t.InterfaceTimer == nil {
		return 0
	}
	return *t.InterfaceTimer
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InterfaceTimeExpirations  *int64            `path:"interface-time-expirations" module:"openconfig-network-instance"`
	ΛInterfaceTimeExpirations []ygot.Annotation `path:"@interface-time-expirations" ygotAnnotation:"true"`
	InterfaceTimer            *uint16           `path:"interface-timer" module:"openconfig-network-instance"`
	ΛInterfaceTimer           []ygot.Annotation `path:"@interface-timer" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) IsYANGGoStruct() {
}

// GetInterfaceTimeExpirations retrieves the value of the leaf InterfaceTimeExpirations from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimeExpirations is set, it can
// safely use t.GetInterfaceTimeExpirations() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimeExpirations == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) GetInterfaceTimeExpirations() int64 {
	if t == nil || t.InterfaceTimeExpirations == nil {
		return 0
	}
	return *t.InterfaceTimeExpirations
}

// GetInterfaceTimer retrieves the value of the leaf InterfaceTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceTimer is set, it can
// safely use t.GetInterfaceTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) GetInterfaceTimer() uint16 {
	if t == nil || t.InterfaceTimer == nil {
		return 0
	}
	return *t.InterfaceTimer
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Level     map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level `path:"level" module:"openconfig-network-instance"`
	ΛLevel    []ygot.Annotation                                                                                                               `path:"@level" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) IsYANGGoStruct() {
}

// NewLevel creates a new entry in the Level list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) NewLevel(LevelNumber uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Level == nil {
		t.Level = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level)
	}

	key := LevelNumber

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Level[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Level", key)
	}

	t.Level[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level{
		LevelNumber: &LevelNumber,
	}

	return t.Level[key], nil
}

// RenameLevel renames an entry in the list Level within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) RenameLevel(oldK, newK uint8) error {
	if _, ok := t.Level[newK]; ok {
		return fmt.Errorf("key %v already exists in Level", newK)
	}

	e, ok := t.Level[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Level", oldK)
	}
	e.LevelNumber = &newK

	t.Level[newK] = e
	delete(t.Level, oldK)
	return nil
}

// GetOrCreateLevelMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) GetOrCreateLevelMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level {
	if t.Level == nil {
		t.Level = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level)
	}
	return t.Level
}

// GetOrCreateLevel retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) GetOrCreateLevel(LevelNumber uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level {

	key := LevelNumber

	if v, ok := t.Level[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLevel(LevelNumber)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLevel got unexpected error: %v", err))
	}
	return v
}

// GetLevel retrieves the value with the specified key from
// the Level map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) GetLevel(LevelNumber uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level {

	if t == nil {
		return nil
	}

	key := LevelNumber

	if lm, ok := t.Level[key]; ok {
		return lm
	}
	return nil
}

// AppendLevel appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level struct to the
// list Level of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) AppendLevel(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) error {
	if v.LevelNumber == nil {
		return fmt.Errorf("invalid nil key received for LevelNumber")
	}

	key := *v.LevelNumber

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Level == nil {
		t.Level = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level)
	}

	if _, ok := t.Level[key]; ok {
		return fmt.Errorf("duplicate key for list Level %v", key)
	}

	t.Level[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Level {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level struct {
	ΛMetadata            []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Adjacencies          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies         `path:"adjacencies" module:"openconfig-network-instance"`
	ΛAdjacencies         []ygot.Annotation                                                                                                                         `path:"@adjacencies" ygotAnnotation:"true"`
	AfiSafi              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi             `path:"afi-safi" module:"openconfig-network-instance"`
	ΛAfiSafi             []ygot.Annotation                                                                                                                         `path:"@afi-safi" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	HelloAuthentication  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication `path:"hello-authentication" module:"openconfig-network-instance"`
	ΛHelloAuthentication []ygot.Annotation                                                                                                                         `path:"@hello-authentication" ygotAnnotation:"true"`
	LevelNumber          *uint8                                                                                                                                    `path:"level-number" module:"openconfig-network-instance"`
	ΛLevelNumber         []ygot.Annotation                                                                                                                         `path:"@level-number" ygotAnnotation:"true"`
	PacketCounters       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters      `path:"packet-counters" module:"openconfig-network-instance"`
	ΛPacketCounters      []ygot.Annotation                                                                                                                         `path:"@packet-counters" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	Timers               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers              `path:"timers" module:"openconfig-network-instance"`
	ΛTimers              []ygot.Annotation                                                                                                                         `path:"@timers" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) IsYANGGoStruct() {
}

// GetOrCreateAdjacencies retrieves the value of the Adjacencies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetOrCreateAdjacencies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies {
	if t.Adjacencies != nil {
		return t.Adjacencies
	}
	t.Adjacencies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies{}
	return t.Adjacencies
}

// GetOrCreateAfiSafi retrieves the value of the AfiSafi field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetOrCreateAfiSafi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi {
	if t.AfiSafi != nil {
		return t.AfiSafi
	}
	t.AfiSafi = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi{}
	return t.AfiSafi
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config{}
	return t.Config
}

// GetOrCreateHelloAuthentication retrieves the value of the HelloAuthentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetOrCreateHelloAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication {
	if t.HelloAuthentication != nil {
		return t.HelloAuthentication
	}
	t.HelloAuthentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication{}
	return t.HelloAuthentication
}

// GetOrCreatePacketCounters retrieves the value of the PacketCounters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetOrCreatePacketCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters {
	if t.PacketCounters != nil {
		return t.PacketCounters
	}
	t.PacketCounters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters{}
	return t.PacketCounters
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers{}
	return t.Timers
}

// GetAdjacencies returns the value of the Adjacencies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level. If the receiver or the field Adjacencies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetAdjacencies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies {
	if t != nil && t.Adjacencies != nil {
		return t.Adjacencies
	}
	return nil
}

// GetAfiSafi returns the value of the AfiSafi struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level. If the receiver or the field AfiSafi is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetAfiSafi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi {
	if t != nil && t.AfiSafi != nil {
		return t.AfiSafi
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetHelloAuthentication returns the value of the HelloAuthentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level. If the receiver or the field HelloAuthentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetHelloAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication {
	if t != nil && t.HelloAuthentication != nil {
		return t.HelloAuthentication
	}
	return nil
}

// GetPacketCounters returns the value of the PacketCounters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level. If the receiver or the field PacketCounters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetPacketCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters {
	if t != nil && t.PacketCounters != nil {
		return t.PacketCounters
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// GetLevelNumber retrieves the value of the leaf LevelNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelNumber is set, it can
// safely use t.GetLevelNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) GetLevelNumber() uint8 {
	if t == nil || t.LevelNumber == nil {
		return 0
	}
	return *t.LevelNumber
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Adjacencies.PopulateDefaults()
	t.AfiSafi.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.HelloAuthentication.PopulateDefaults()
	t.PacketCounters.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LevelNumber == nil {
		return nil, fmt.Errorf("nil value for key LevelNumber")
	}

	return map[string]interface{}{
		"level-number": *t.LevelNumber,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Adjacency  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency `path:"adjacency" module:"openconfig-network-instance"`
	ΛAdjacency []ygot.Annotation                                                                                                                                      `path:"@adjacency" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) IsYANGGoStruct() {
}

// NewAdjacency creates a new entry in the Adjacency list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) NewAdjacency(SystemId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Adjacency == nil {
		t.Adjacency = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency)
	}

	key := SystemId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Adjacency[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Adjacency", key)
	}

	t.Adjacency[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency{
		SystemId: &SystemId,
	}

	return t.Adjacency[key], nil
}

// RenameAdjacency renames an entry in the list Adjacency within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) RenameAdjacency(oldK, newK string) error {
	if _, ok := t.Adjacency[newK]; ok {
		return fmt.Errorf("key %v already exists in Adjacency", newK)
	}

	e, ok := t.Adjacency[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Adjacency", oldK)
	}
	e.SystemId = &newK

	t.Adjacency[newK] = e
	delete(t.Adjacency, oldK)
	return nil
}

// GetOrCreateAdjacencyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) GetOrCreateAdjacencyMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency {
	if t.Adjacency == nil {
		t.Adjacency = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency)
	}
	return t.Adjacency
}

// GetOrCreateAdjacency retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) GetOrCreateAdjacency(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency {

	key := SystemId

	if v, ok := t.Adjacency[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdjacency(SystemId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdjacency got unexpected error: %v", err))
	}
	return v
}

// GetAdjacency retrieves the value with the specified key from
// the Adjacency map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) GetAdjacency(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency {

	if t == nil {
		return nil
	}

	key := SystemId

	if lm, ok := t.Adjacency[key]; ok {
		return lm
	}
	return nil
}

// AppendAdjacency appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency struct to the
// list Adjacency of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) AppendAdjacency(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) error {
	if v.SystemId == nil {
		return fmt.Errorf("invalid nil key received for SystemId")
	}

	key := *v.SystemId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Adjacency == nil {
		t.Adjacency = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency)
	}

	if _, ok := t.Adjacency[key]; ok {
		return fmt.Errorf("duplicate key for list Adjacency %v", key)
	}

	t.Adjacency[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Adjacency {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency struct {
	ΛMetadata []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
	SystemId  *string                                                                                                                                           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId []ygot.Annotation                                                                                                                                 `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SystemId == nil {
		return nil, fmt.Errorf("nil value for key SystemId")
	}

	return map[string]interface{}{
		"system-id": *t.SystemId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State struct {
	ΛMetadata                  []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	AdjacencyState             E_OpenconfigIsisTypes_IsisInterfaceAdjState                                                                                                                `path:"adjacency-state" module:"openconfig-network-instance"`
	ΛAdjacencyState            []ygot.Annotation                                                                                                                                          `path:"@adjacency-state" ygotAnnotation:"true"`
	AdjacencyType              E_OpenconfigIsisTypes_LevelType                                                                                                                            `path:"adjacency-type" module:"openconfig-network-instance"`
	ΛAdjacencyType             []ygot.Annotation                                                                                                                                          `path:"@adjacency-type" ygotAnnotation:"true"`
	AreaAddress                []string                                                                                                                                                   `path:"area-address" module:"openconfig-network-instance"`
	ΛAreaAddress               []ygot.Annotation                                                                                                                                          `path:"@area-address" ygotAnnotation:"true"`
	DisSystemId                *string                                                                                                                                                    `path:"dis-system-id" module:"openconfig-network-instance"`
	ΛDisSystemId               []ygot.Annotation                                                                                                                                          `path:"@dis-system-id" ygotAnnotation:"true"`
	LocalExtendedCircuitId     *uint32                                                                                                                                                    `path:"local-extended-circuit-id" module:"openconfig-network-instance"`
	ΛLocalExtendedCircuitId    []ygot.Annotation                                                                                                                                          `path:"@local-extended-circuit-id" ygotAnnotation:"true"`
	MultiTopology              *bool                                                                                                                                                      `path:"multi-topology" module:"openconfig-network-instance"`
	ΛMultiTopology             []ygot.Annotation                                                                                                                                          `path:"@multi-topology" ygotAnnotation:"true"`
	NeighborCircuitType        E_OpenconfigIsisTypes_LevelType                                                                                                                            `path:"neighbor-circuit-type" module:"openconfig-network-instance"`
	ΛNeighborCircuitType       []ygot.Annotation                                                                                                                                          `path:"@neighbor-circuit-type" ygotAnnotation:"true"`
	NeighborExtendedCircuitId  *uint32                                                                                                                                                    `path:"neighbor-extended-circuit-id" module:"openconfig-network-instance"`
	ΛNeighborExtendedCircuitId []ygot.Annotation                                                                                                                                          `path:"@neighbor-extended-circuit-id" ygotAnnotation:"true"`
	NeighborIpv4Address        *string                                                                                                                                                    `path:"neighbor-ipv4-address" module:"openconfig-network-instance"`
	ΛNeighborIpv4Address       []ygot.Annotation                                                                                                                                          `path:"@neighbor-ipv4-address" ygotAnnotation:"true"`
	NeighborIpv6Address        *string                                                                                                                                                    `path:"neighbor-ipv6-address" module:"openconfig-network-instance"`
	ΛNeighborIpv6Address       []ygot.Annotation                                                                                                                                          `path:"@neighbor-ipv6-address" ygotAnnotation:"true"`
	NeighborSnpa               *string                                                                                                                                                    `path:"neighbor-snpa" module:"openconfig-network-instance"`
	ΛNeighborSnpa              []ygot.Annotation                                                                                                                                          `path:"@neighbor-snpa" ygotAnnotation:"true"`
	Nlpid                      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid `path:"nlpid" module:"openconfig-network-instance"`
	ΛNlpid                     []ygot.Annotation                                                                                                                                          `path:"@nlpid" ygotAnnotation:"true"`
	Priority                   *uint8                                                                                                                                                     `path:"priority" module:"openconfig-network-instance"`
	ΛPriority                  []ygot.Annotation                                                                                                                                          `path:"@priority" ygotAnnotation:"true"`
	RestartStatus              *bool                                                                                                                                                      `path:"restart-status" module:"openconfig-network-instance"`
	ΛRestartStatus             []ygot.Annotation                                                                                                                                          `path:"@restart-status" ygotAnnotation:"true"`
	RestartSupport             *bool                                                                                                                                                      `path:"restart-support" module:"openconfig-network-instance"`
	ΛRestartSupport            []ygot.Annotation                                                                                                                                          `path:"@restart-support" ygotAnnotation:"true"`
	RestartSuppress            *bool                                                                                                                                                      `path:"restart-suppress" module:"openconfig-network-instance"`
	ΛRestartSuppress           []ygot.Annotation                                                                                                                                          `path:"@restart-suppress" ygotAnnotation:"true"`
	SystemId                   *string                                                                                                                                                    `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId                  []ygot.Annotation                                                                                                                                          `path:"@system-id" ygotAnnotation:"true"`
	Topology                   []E_OpenconfigIsisTypes_AFI_SAFI_TYPE                                                                                                                      `path:"topology" module:"openconfig-network-instance"`
	ΛTopology                  []ygot.Annotation                                                                                                                                          `path:"@topology" ygotAnnotation:"true"`
	UpTimestamp                *uint64                                                                                                                                                    `path:"up-timestamp" module:"openconfig-network-instance"`
	ΛUpTimestamp               []ygot.Annotation                                                                                                                                          `path:"@up-timestamp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) IsYANGGoStruct() {
}

// GetAdjacencyState retrieves the value of the leaf AdjacencyState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjacencyState is set, it can
// safely use t.GetAdjacencyState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjacencyState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetAdjacencyState() E_OpenconfigIsisTypes_IsisInterfaceAdjState {
	if t == nil || t.AdjacencyState == 0 {
		return 0
	}
	return t.AdjacencyState
}

// GetAdjacencyType retrieves the value of the leaf AdjacencyType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjacencyType is set, it can
// safely use t.GetAdjacencyType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjacencyType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetAdjacencyType() E_OpenconfigIsisTypes_LevelType {
	if t == nil || t.AdjacencyType == 0 {
		return 0
	}
	return t.AdjacencyType
}

// GetAreaAddress retrieves the value of the leaf AreaAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AreaAddress is set, it can
// safely use t.GetAreaAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AreaAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetAreaAddress() []string {
	if t == nil || t.AreaAddress == nil {
		return nil
	}
	return t.AreaAddress
}

// GetDisSystemId retrieves the value of the leaf DisSystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisSystemId is set, it can
// safely use t.GetDisSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisSystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetDisSystemId() string {
	if t == nil || t.DisSystemId == nil {
		return ""
	}
	return *t.DisSystemId
}

// GetLocalExtendedCircuitId retrieves the value of the leaf LocalExtendedCircuitId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalExtendedCircuitId is set, it can
// safely use t.GetLocalExtendedCircuitId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalExtendedCircuitId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetLocalExtendedCircuitId() uint32 {
	if t == nil || t.LocalExtendedCircuitId == nil {
		return 0
	}
	return *t.LocalExtendedCircuitId
}

// GetMultiTopology retrieves the value of the leaf MultiTopology from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultiTopology is set, it can
// safely use t.GetMultiTopology() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultiTopology == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetMultiTopology() bool {
	if t == nil || t.MultiTopology == nil {
		return false
	}
	return *t.MultiTopology
}

// GetNeighborCircuitType retrieves the value of the leaf NeighborCircuitType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborCircuitType is set, it can
// safely use t.GetNeighborCircuitType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborCircuitType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetNeighborCircuitType() E_OpenconfigIsisTypes_LevelType {
	if t == nil || t.NeighborCircuitType == 0 {
		return 0
	}
	return t.NeighborCircuitType
}

// GetNeighborExtendedCircuitId retrieves the value of the leaf NeighborExtendedCircuitId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborExtendedCircuitId is set, it can
// safely use t.GetNeighborExtendedCircuitId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborExtendedCircuitId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetNeighborExtendedCircuitId() uint32 {
	if t == nil || t.NeighborExtendedCircuitId == nil {
		return 0
	}
	return *t.NeighborExtendedCircuitId
}

// GetNeighborIpv4Address retrieves the value of the leaf NeighborIpv4Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborIpv4Address is set, it can
// safely use t.GetNeighborIpv4Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborIpv4Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetNeighborIpv4Address() string {
	if t == nil || t.NeighborIpv4Address == nil {
		return ""
	}
	return *t.NeighborIpv4Address
}

// GetNeighborIpv6Address retrieves the value of the leaf NeighborIpv6Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborIpv6Address is set, it can
// safely use t.GetNeighborIpv6Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborIpv6Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetNeighborIpv6Address() string {
	if t == nil || t.NeighborIpv6Address == nil {
		return ""
	}
	return *t.NeighborIpv6Address
}

// GetNeighborSnpa retrieves the value of the leaf NeighborSnpa from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborSnpa is set, it can
// safely use t.GetNeighborSnpa() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborSnpa == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetNeighborSnpa() string {
	if t == nil || t.NeighborSnpa == nil {
		return ""
	}
	return *t.NeighborSnpa
}

// GetNlpid retrieves the value of the leaf Nlpid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Nlpid is set, it can
// safely use t.GetNlpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Nlpid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetNlpid() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid {
	if t == nil || t.Nlpid == nil {
		return nil
	}
	return t.Nlpid
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetRestartStatus retrieves the value of the leaf RestartStatus from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartStatus is set, it can
// safely use t.GetRestartStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetRestartStatus() bool {
	if t == nil || t.RestartStatus == nil {
		return false
	}
	return *t.RestartStatus
}

// GetRestartSupport retrieves the value of the leaf RestartSupport from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartSupport is set, it can
// safely use t.GetRestartSupport() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartSupport == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetRestartSupport() bool {
	if t == nil || t.RestartSupport == nil {
		return false
	}
	return *t.RestartSupport
}

// GetRestartSuppress retrieves the value of the leaf RestartSuppress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartSuppress is set, it can
// safely use t.GetRestartSuppress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartSuppress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetRestartSuppress() bool {
	if t == nil || t.RestartSuppress == nil {
		return false
	}
	return *t.RestartSuppress
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// GetTopology retrieves the value of the leaf Topology from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Topology is set, it can
// safely use t.GetTopology() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Topology == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetTopology() []E_OpenconfigIsisTypes_AFI_SAFI_TYPE {
	if t == nil || t.Topology == nil {
		return nil
	}
	return t.Topology
}

// GetUpTimestamp retrieves the value of the leaf UpTimestamp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpTimestamp is set, it can
// safely use t.GetUpTimestamp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpTimestamp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) GetUpTimestamp() uint64 {
	if t == nil || t.UpTimestamp == nil {
		return 0
	}
	return *t.UpTimestamp
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Af        map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af `path:"af" module:"openconfig-network-instance"`
	ΛAf       []ygot.Annotation                                                                                                                                                                                                                                                        `path:"@af" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key represents the key for list Af of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key struct {
	AfiName  E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name"`
	SafiName E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"afi-name":  t.AfiName,
		"safi-name": t.SafiName,
	}, nil
}

// NewAf creates a new entry in the Af list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) NewAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Af[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Af", key)
	}

	t.Af[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	return t.Af[key], nil
}

// RenameAf renames an entry in the list Af within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) RenameAf(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key) error {
	if _, ok := t.Af[newK]; ok {
		return fmt.Errorf("key %v already exists in Af", newK)
	}

	e, ok := t.Af[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Af", oldK)
	}
	e.AfiName = newK.AfiName
	e.SafiName = newK.SafiName

	t.Af[newK] = e
	delete(t.Af, oldK)
	return nil
}

// GetOrCreateAfMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) GetOrCreateAfMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af {
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af)
	}
	return t.Af
}

// GetOrCreateAf retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) GetOrCreateAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	if v, ok := t.Af[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAf(AfiName, SafiName)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAf got unexpected error: %v", err))
	}
	return v
}

// GetAf retrieves the value with the specified key from
// the Af map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) GetAf(AfiName E_OpenconfigIsisTypes_AFI_TYPE, SafiName E_OpenconfigIsisTypes_SAFI_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key{
		AfiName:  AfiName,
		SafiName: SafiName,
	}

	if lm, ok := t.Af[key]; ok {
		return lm
	}
	return nil
}

// AppendAf appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af struct to the
// list Af of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) AppendAf(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) error {
	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key{
		AfiName:  v.AfiName,
		SafiName: v.SafiName,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Af == nil {
		t.Af = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af)
	}

	if _, ok := t.Af[key]; ok {
		return fmt.Errorf("duplicate key for list Af %v", key)
	}

	t.Af[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Af {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af struct {
	ΛMetadata       []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	AfiName         E_OpenconfigIsisTypes_AFI_TYPE                                                                                                                  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName        []ygot.Annotation                                                                                                                               `path:"@afi-name" ygotAnnotation:"true"`
	Config          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config         `path:"config" module:"openconfig-network-instance"`
	ΛConfig         []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	SafiName        E_OpenconfigIsisTypes_SAFI_TYPE                                                                                                                 `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName       []ygot.Annotation                                                                                                                               `path:"@safi-name" ygotAnnotation:"true"`
	SegmentRouting  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting `path:"segment-routing" module:"openconfig-network-instance"`
	ΛSegmentRouting []ygot.Annotation                                                                                                                               `path:"@segment-routing" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config{}
	return t.Config
}

// GetOrCreateSegmentRouting retrieves the value of the SegmentRouting field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetOrCreateSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting {
	if t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	t.SegmentRouting = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting{}
	return t.SegmentRouting
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetSegmentRouting returns the value of the SegmentRouting struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af. If the receiver or the field SegmentRouting is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetSegmentRouting() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting {
	if t != nil && t.SegmentRouting != nil {
		return t.SegmentRouting
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.SegmentRouting.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi-name":  t.AfiName,
		"safi-name": t.SafiName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config struct {
	ΛMetadata []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	Enabled   *bool                           `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation               `path:"@enabled" ygotAnnotation:"true"`
	Metric    *uint32                         `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation               `path:"@metric" ygotAnnotation:"true"`
	SafiName  E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 10
	}
	return *t.Metric
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Metric == nil {
		var v uint32 = 10
		t.Metric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	AdjacencySids       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids      `path:"adjacency-sids" module:"openconfig-network-instance"`
	ΛAdjacencySids      []ygot.Annotation                                                                                                                                                  `path:"@adjacency-sids" ygotAnnotation:"true"`
	FlexAlgoPrefixSids  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids `path:"flex-algo-prefix-sids" module:"openconfig-network-instance"`
	ΛFlexAlgoPrefixSids []ygot.Annotation                                                                                                                                                  `path:"@flex-algo-prefix-sids" ygotAnnotation:"true"`
	PrefixSids          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids         `path:"prefix-sids" module:"openconfig-network-instance"`
	ΛPrefixSids         []ygot.Annotation                                                                                                                                                  `path:"@prefix-sids" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) IsYANGGoStruct() {
}

// GetOrCreateAdjacencySids retrieves the value of the AdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) GetOrCreateAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids {
	if t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	t.AdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids{}
	return t.AdjacencySids
}

// GetOrCreateFlexAlgoPrefixSids retrieves the value of the FlexAlgoPrefixSids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) GetOrCreateFlexAlgoPrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids {
	if t.FlexAlgoPrefixSids != nil {
		return t.FlexAlgoPrefixSids
	}
	t.FlexAlgoPrefixSids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids{}
	return t.FlexAlgoPrefixSids
}

// GetOrCreatePrefixSids retrieves the value of the PrefixSids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) GetOrCreatePrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids {
	if t.PrefixSids != nil {
		return t.PrefixSids
	}
	t.PrefixSids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids{}
	return t.PrefixSids
}

// GetAdjacencySids returns the value of the AdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting. If the receiver or the field AdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) GetAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids {
	if t != nil && t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	return nil
}

// GetFlexAlgoPrefixSids returns the value of the FlexAlgoPrefixSids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting. If the receiver or the field FlexAlgoPrefixSids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) GetFlexAlgoPrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids {
	if t != nil && t.FlexAlgoPrefixSids != nil {
		return t.FlexAlgoPrefixSids
	}
	return nil
}

// GetPrefixSids returns the value of the PrefixSids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting. If the receiver or the field PrefixSids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) GetPrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids {
	if t != nil && t.PrefixSids != nil {
		return t.PrefixSids
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjacencySids.PopulateDefaults()
	t.FlexAlgoPrefixSids.PopulateDefaults()
	t.PrefixSids.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AdjacencySid  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid `path:"adjacency-sid" module:"openconfig-network-instance"`
	ΛAdjacencySid []ygot.Annotation                                                                                                                                                                                                                                                                                                                                            `path:"@adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key represents the key for list AdjacencySid of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key struct {
	Neighbor string                                                                                                                                                                                       `path:"neighbor"`
	SidId    OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union `path:"sid-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"neighbor": t.Neighbor,
		"sid-id":   t.SidId,
	}, nil
}

// NewAdjacencySid creates a new entry in the AdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) NewAdjacencySid(Neighbor string, SidId OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key{
		Neighbor: Neighbor,
		SidId:    SidId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AdjacencySid", key)
	}

	t.AdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid{
		Neighbor: &Neighbor,
		SidId:    SidId,
	}

	return t.AdjacencySid[key], nil
}

// RenameAdjacencySid renames an entry in the list AdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) RenameAdjacencySid(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key) error {
	if _, ok := t.AdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in AdjacencySid", newK)
	}

	e, ok := t.AdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AdjacencySid", oldK)
	}
	e.Neighbor = &newK.Neighbor
	e.SidId = newK.SidId

	t.AdjacencySid[newK] = e
	delete(t.AdjacencySid, oldK)
	return nil
}

// GetOrCreateAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) GetOrCreateAdjacencySidMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid {
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid)
	}
	return t.AdjacencySid
}

// GetOrCreateAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) GetOrCreateAdjacencySid(Neighbor string, SidId OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key{
		Neighbor: Neighbor,
		SidId:    SidId,
	}

	if v, ok := t.AdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdjacencySid(Neighbor, SidId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetAdjacencySid retrieves the value with the specified key from
// the AdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) GetAdjacencySid(Neighbor string, SidId OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key{
		Neighbor: Neighbor,
		SidId:    SidId,
	}

	if lm, ok := t.AdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid struct to the
// list AdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) AppendAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) error {
	if v.Neighbor == nil {
		return fmt.Errorf("invalid nil key for Neighbor")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key{
		Neighbor: *v.Neighbor,
		SidId:    v.SidId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid)
	}

	if _, ok := t.AdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list AdjacencySid %v", key)
	}

	t.AdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config            `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	Neighbor  *string                                                                                                                                                                                      `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                                                            `path:"@neighbor" ygotAnnotation:"true"`
	SidId     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union `path:"sid-id" module:"openconfig-network-instance"`
	ΛSidId    []ygot.Annotation                                                                                                                                                                            `path:"@sid-id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State             `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetNeighbor retrieves the value of the leaf Neighbor from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Neighbor is set, it can
// safely use t.GetNeighbor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Neighbor == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) GetNeighbor() string {
	if t == nil || t.Neighbor == nil {
		return ""
	}
	return *t.Neighbor
}

// GetSidId retrieves the value of the leaf SidId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidId is set, it can
// safely use t.GetSidId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) GetSidId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union {
	if t == nil || t.SidId == nil {
		return nil
	}
	return t.SidId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Neighbor == nil {
		return nil, fmt.Errorf("nil value for key Neighbor")
	}

	return map[string]interface{}{
		"neighbor": *t.Neighbor,
		"sid-id":   t.SidId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/sid-id within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Group               *bool                                                                                                                                                                                        `path:"group" module:"openconfig-network-instance"`
	ΛGroup              []ygot.Annotation                                                                                                                                                                            `path:"@group" ygotAnnotation:"true"`
	Neighbor            *string                                                                                                                                                                                      `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor           []ygot.Annotation                                                                                                                                                                            `path:"@neighbor" ygotAnnotation:"true"`
	ProtectionEligible  *bool                                                                                                                                                                                        `path:"protection-eligible" module:"openconfig-network-instance"`
	ΛProtectionEligible []ygot.Annotation                                                                                                                                                                            `path:"@protection-eligible" ygotAnnotation:"true"`
	SidId               OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union `path:"sid-id" module:"openconfig-network-instance"`
	ΛSidId              []ygot.Annotation                                                                                                                                                                            `path:"@sid-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) IsYANGGoStruct() {
}

// GetGroup retrieves the value of the leaf Group from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Group is set, it can
// safely use t.GetGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Group == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) GetGroup() bool {
	if t == nil || t.Group == nil {
		return false
	}
	return *t.Group
}

// GetNeighbor retrieves the value of the leaf Neighbor from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Neighbor is set, it can
// safely use t.GetNeighbor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Neighbor == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) GetNeighbor() string {
	if t == nil || t.Neighbor == nil {
		return ""
	}
	return *t.Neighbor
}

// GetProtectionEligible retrieves the value of the leaf ProtectionEligible from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtectionEligible is set, it can
// safely use t.GetProtectionEligible() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtectionEligible == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) GetProtectionEligible() bool {
	if t == nil || t.ProtectionEligible == nil {
		return true
	}
	return *t.ProtectionEligible
}

// GetSidId retrieves the value of the leaf SidId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidId is set, it can
// safely use t.GetSidId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) GetSidId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union {
	if t == nil || t.SidId == nil {
		return nil
	}
	return t.SidId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Group == nil {
		var v bool = false
		t.Group = &v
	}
	if t.ProtectionEligible == nil {
		var v bool = true
		t.ProtectionEligible = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State struct {
	ΛMetadata              []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	AllocatedDynamicLocal  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union `path:"allocated-dynamic-local" module:"openconfig-network-instance"`
	ΛAllocatedDynamicLocal []ygot.Annotation                                                                                                                                                                                           `path:"@allocated-dynamic-local" ygotAnnotation:"true"`
	Group                  *bool                                                                                                                                                                                                       `path:"group" module:"openconfig-network-instance"`
	ΛGroup                 []ygot.Annotation                                                                                                                                                                                           `path:"@group" ygotAnnotation:"true"`
	Neighbor               *string                                                                                                                                                                                                     `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor              []ygot.Annotation                                                                                                                                                                                           `path:"@neighbor" ygotAnnotation:"true"`
	ProtectionEligible     *bool                                                                                                                                                                                                       `path:"protection-eligible" module:"openconfig-network-instance"`
	ΛProtectionEligible    []ygot.Annotation                                                                                                                                                                                           `path:"@protection-eligible" ygotAnnotation:"true"`
	SidId                  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union                 `path:"sid-id" module:"openconfig-network-instance"`
	ΛSidId                 []ygot.Annotation                                                                                                                                                                                           `path:"@sid-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) IsYANGGoStruct() {
}

// GetAllocatedDynamicLocal retrieves the value of the leaf AllocatedDynamicLocal from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllocatedDynamicLocal is set, it can
// safely use t.GetAllocatedDynamicLocal() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllocatedDynamicLocal == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) GetAllocatedDynamicLocal() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union {
	if t == nil || t.AllocatedDynamicLocal == nil {
		return nil
	}
	return t.AllocatedDynamicLocal
}

// GetGroup retrieves the value of the leaf Group from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Group is set, it can
// safely use t.GetGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Group == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) GetGroup() bool {
	if t == nil || t.Group == nil {
		return false
	}
	return *t.Group
}

// GetNeighbor retrieves the value of the leaf Neighbor from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Neighbor is set, it can
// safely use t.GetNeighbor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Neighbor == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) GetNeighbor() string {
	if t == nil || t.Neighbor == nil {
		return ""
	}
	return *t.Neighbor
}

// GetProtectionEligible retrieves the value of the leaf ProtectionEligible from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtectionEligible is set, it can
// safely use t.GetProtectionEligible() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtectionEligible == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) GetProtectionEligible() bool {
	if t == nil || t.ProtectionEligible == nil {
		return true
	}
	return *t.ProtectionEligible
}

// GetSidId retrieves the value of the leaf SidId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidId is set, it can
// safely use t.GetSidId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) GetSidId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union {
	if t == nil || t.SidId == nil {
		return nil
	}
	return t.SidId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Group == nil {
		var v bool = false
		t.Group = &v
	}
	if t.ProtectionEligible == nil {
		var v bool = true
		t.ProtectionEligible = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/state/allocated-dynamic-local within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_AllocatedDynamicLocal_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/state/sid-id within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_State_SidId_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	FlexAlgoPrefixSid  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid `path:"flex-algo-prefix-sid" module:"openconfig-network-instance"`
	ΛFlexAlgoPrefixSid []ygot.Annotation                                                                                                                                                                                                                                                                                                                                                                `path:"@flex-algo-prefix-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key represents the key for list FlexAlgoPrefixSid of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key struct {
	Prefix     string `path:"prefix"`
	FlexAlgoId uint8  `path:"flex-algo-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix":       t.Prefix,
		"flex-algo-id": t.FlexAlgoId,
	}, nil
}

// NewFlexAlgoPrefixSid creates a new entry in the FlexAlgoPrefixSid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) NewFlexAlgoPrefixSid(Prefix string, FlexAlgoId uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.FlexAlgoPrefixSid == nil {
		t.FlexAlgoPrefixSid = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key{
		Prefix:     Prefix,
		FlexAlgoId: FlexAlgoId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.FlexAlgoPrefixSid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list FlexAlgoPrefixSid", key)
	}

	t.FlexAlgoPrefixSid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid{
		Prefix:     &Prefix,
		FlexAlgoId: &FlexAlgoId,
	}

	return t.FlexAlgoPrefixSid[key], nil
}

// RenameFlexAlgoPrefixSid renames an entry in the list FlexAlgoPrefixSid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) RenameFlexAlgoPrefixSid(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key) error {
	if _, ok := t.FlexAlgoPrefixSid[newK]; ok {
		return fmt.Errorf("key %v already exists in FlexAlgoPrefixSid", newK)
	}

	e, ok := t.FlexAlgoPrefixSid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in FlexAlgoPrefixSid", oldK)
	}
	e.Prefix = &newK.Prefix
	e.FlexAlgoId = &newK.FlexAlgoId

	t.FlexAlgoPrefixSid[newK] = e
	delete(t.FlexAlgoPrefixSid, oldK)
	return nil
}

// GetOrCreateFlexAlgoPrefixSidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) GetOrCreateFlexAlgoPrefixSidMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid {
	if t.FlexAlgoPrefixSid == nil {
		t.FlexAlgoPrefixSid = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid)
	}
	return t.FlexAlgoPrefixSid
}

// GetOrCreateFlexAlgoPrefixSid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) GetOrCreateFlexAlgoPrefixSid(Prefix string, FlexAlgoId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key{
		Prefix:     Prefix,
		FlexAlgoId: FlexAlgoId,
	}

	if v, ok := t.FlexAlgoPrefixSid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewFlexAlgoPrefixSid(Prefix, FlexAlgoId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateFlexAlgoPrefixSid got unexpected error: %v", err))
	}
	return v
}

// GetFlexAlgoPrefixSid retrieves the value with the specified key from
// the FlexAlgoPrefixSid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) GetFlexAlgoPrefixSid(Prefix string, FlexAlgoId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key{
		Prefix:     Prefix,
		FlexAlgoId: FlexAlgoId,
	}

	if lm, ok := t.FlexAlgoPrefixSid[key]; ok {
		return lm
	}
	return nil
}

// AppendFlexAlgoPrefixSid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid struct to the
// list FlexAlgoPrefixSid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) AppendFlexAlgoPrefixSid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.FlexAlgoId == nil {
		return fmt.Errorf("invalid nil key for FlexAlgoId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key{
		Prefix:     *v.Prefix,
		FlexAlgoId: *v.FlexAlgoId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.FlexAlgoPrefixSid == nil {
		t.FlexAlgoPrefixSid = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid)
	}

	if _, ok := t.FlexAlgoPrefixSid[key]; ok {
		return fmt.Errorf("duplicate key for list FlexAlgoPrefixSid %v", key)
	}

	t.FlexAlgoPrefixSid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.FlexAlgoPrefixSid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids/flex-algo-prefix-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	FlexAlgoId  *uint8                                                                                                                                                                                      `path:"flex-algo-id" module:"openconfig-network-instance"`
	ΛFlexAlgoId []ygot.Annotation                                                                                                                                                                           `path:"@flex-algo-id" ygotAnnotation:"true"`
	Prefix      *string                                                                                                                                                                                     `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix     []ygot.Annotation                                                                                                                                                                           `path:"@prefix" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State  `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFlexAlgoId retrieves the value of the leaf FlexAlgoId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlexAlgoId is set, it can
// safely use t.GetFlexAlgoId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlexAlgoId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) GetFlexAlgoId() uint8 {
	if t == nil || t.FlexAlgoId == nil {
		return 0
	}
	return *t.FlexAlgoId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.FlexAlgoId == nil {
		return nil, fmt.Errorf("nil value for key FlexAlgoId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"flex-algo-id": *t.FlexAlgoId,
		"prefix":       *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids/flex-algo-prefix-sid/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	FlexAlgoId  *uint8                                                                                                                                                                                                 `path:"flex-algo-id" module:"openconfig-network-instance"`
	ΛFlexAlgoId []ygot.Annotation                                                                                                                                                                                      `path:"@flex-algo-id" ygotAnnotation:"true"`
	Prefix      *string                                                                                                                                                                                                `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix     []ygot.Annotation                                                                                                                                                                                      `path:"@prefix" ygotAnnotation:"true"`
	SidId       OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union `path:"sid-id" module:"openconfig-network-instance"`
	ΛSidId      []ygot.Annotation                                                                                                                                                                                      `path:"@sid-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) IsYANGGoStruct() {
}

// GetFlexAlgoId retrieves the value of the leaf FlexAlgoId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlexAlgoId is set, it can
// safely use t.GetFlexAlgoId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlexAlgoId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) GetFlexAlgoId() uint8 {
	if t == nil || t.FlexAlgoId == nil {
		return 0
	}
	return *t.FlexAlgoId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSidId retrieves the value of the leaf SidId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidId is set, it can
// safely use t.GetSidId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) GetSidId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union {
	if t == nil || t.SidId == nil {
		return nil
	}
	return t.SidId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids/flex-algo-prefix-sid/config/sid-id within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_Config_SidId_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids/flex-algo-prefix-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	FlexAlgoId  *uint8                                                                                                                                                                                                `path:"flex-algo-id" module:"openconfig-network-instance"`
	ΛFlexAlgoId []ygot.Annotation                                                                                                                                                                                     `path:"@flex-algo-id" ygotAnnotation:"true"`
	Prefix      *string                                                                                                                                                                                               `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix     []ygot.Annotation                                                                                                                                                                                     `path:"@prefix" ygotAnnotation:"true"`
	SidId       OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union `path:"sid-id" module:"openconfig-network-instance"`
	ΛSidId      []ygot.Annotation                                                                                                                                                                                     `path:"@sid-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) IsYANGGoStruct() {
}

// GetFlexAlgoId retrieves the value of the leaf FlexAlgoId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlexAlgoId is set, it can
// safely use t.GetFlexAlgoId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlexAlgoId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) GetFlexAlgoId() uint8 {
	if t == nil || t.FlexAlgoId == nil {
		return 0
	}
	return *t.FlexAlgoId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSidId retrieves the value of the leaf SidId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidId is set, it can
// safely use t.GetSidId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) GetSidId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union {
	if t == nil || t.SidId == nil {
		return nil
	}
	return t.SidId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids/flex-algo-prefix-sid/state/sid-id within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_FlexAlgoPrefixSids_FlexAlgoPrefixSid_State_SidId_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixSid  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid `path:"prefix-sid" module:"openconfig-network-instance"`
	ΛPrefixSid []ygot.Annotation                                                                                                                                                               `path:"@prefix-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) IsYANGGoStruct() {
}

// NewPrefixSid creates a new entry in the PrefixSid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) NewPrefixSid(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PrefixSid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PrefixSid", key)
	}

	t.PrefixSid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid{
		Prefix: &Prefix,
	}

	return t.PrefixSid[key], nil
}

// RenamePrefixSid renames an entry in the list PrefixSid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) RenamePrefixSid(oldK, newK string) error {
	if _, ok := t.PrefixSid[newK]; ok {
		return fmt.Errorf("key %v already exists in PrefixSid", newK)
	}

	e, ok := t.PrefixSid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PrefixSid", oldK)
	}
	e.Prefix = &newK

	t.PrefixSid[newK] = e
	delete(t.PrefixSid, oldK)
	return nil
}

// GetOrCreatePrefixSidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) GetOrCreatePrefixSidMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid {
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid)
	}
	return t.PrefixSid
}

// GetOrCreatePrefixSid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) GetOrCreatePrefixSid(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid {

	key := Prefix

	if v, ok := t.PrefixSid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefixSid(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefixSid got unexpected error: %v", err))
	}
	return v
}

// GetPrefixSid retrieves the value with the specified key from
// the PrefixSid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) GetPrefixSid(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.PrefixSid[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefixSid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid struct to the
// list PrefixSid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) AppendPrefixSid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid)
	}

	if _, ok := t.PrefixSid[key]; ok {
		return fmt.Errorf("duplicate key for list PrefixSid %v", key)
	}

	t.PrefixSid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PrefixSid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	Prefix    *string                                                                                                                                                                     `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                           `path:"@prefix" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	LabelOptions  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions `path:"label-options" module:"openconfig-network-instance"`
	ΛLabelOptions []ygot.Annotation                                                                                                                                                                         `path:"@label-options" ygotAnnotation:"true"`
	Prefix        *string                                                                                                                                                                                   `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix       []ygot.Annotation                                                                                                                                                                         `path:"@prefix" ygotAnnotation:"true"`
	SidId         OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union    `path:"sid-id" module:"openconfig-network-instance"`
	ΛSidId        []ygot.Annotation                                                                                                                                                                         `path:"@sid-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) IsYANGGoStruct() {
}

// GetLabelOptions retrieves the value of the leaf LabelOptions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelOptions is set, it can
// safely use t.GetLabelOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) GetLabelOptions() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions {
	if t == nil || t.LabelOptions == 0 {
		return 0
	}
	return t.LabelOptions
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSidId retrieves the value of the leaf SidId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidId is set, it can
// safely use t.GetSidId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) GetSidId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union {
	if t == nil || t.SidId == nil {
		return nil
	}
	return t.SidId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/config/sid-id within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_SidId_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	LabelOptions  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions `path:"label-options" module:"openconfig-network-instance"`
	ΛLabelOptions []ygot.Annotation                                                                                                                                                                         `path:"@label-options" ygotAnnotation:"true"`
	Prefix        *string                                                                                                                                                                                   `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix       []ygot.Annotation                                                                                                                                                                         `path:"@prefix" ygotAnnotation:"true"`
	SidId         OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union     `path:"sid-id" module:"openconfig-network-instance"`
	ΛSidId        []ygot.Annotation                                                                                                                                                                         `path:"@sid-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) IsYANGGoStruct() {
}

// GetLabelOptions retrieves the value of the leaf LabelOptions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LabelOptions is set, it can
// safely use t.GetLabelOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LabelOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) GetLabelOptions() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions {
	if t == nil || t.LabelOptions == 0 {
		return 0
	}
	return t.LabelOptions
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSidId retrieves the value of the leaf SidId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidId is set, it can
// safely use t.GetSidId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) GetSidId() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union {
	if t == nil || t.SidId == nil {
		return nil
	}
	return t.SidId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/state/sid-id within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_State_SidId_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State struct {
	ΛMetadata []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	AfiName   E_OpenconfigIsisTypes_AFI_TYPE  `path:"afi-name" module:"openconfig-network-instance"`
	ΛAfiName  []ygot.Annotation               `path:"@afi-name" ygotAnnotation:"true"`
	Enabled   *bool                           `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation               `path:"@enabled" ygotAnnotation:"true"`
	Metric    *uint32                         `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation               `path:"@metric" ygotAnnotation:"true"`
	SafiName  E_OpenconfigIsisTypes_SAFI_TYPE `path:"safi-name" module:"openconfig-network-instance"`
	ΛSafiName []ygot.Annotation               `path:"@safi-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) IsYANGGoStruct() {
}

// GetAfiName retrieves the value of the leaf AfiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AfiName is set, it can
// safely use t.GetAfiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AfiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) GetAfiName() E_OpenconfigIsisTypes_AFI_TYPE {
	if t == nil || t.AfiName == 0 {
		return 0
	}
	return t.AfiName
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 10
	}
	return *t.Metric
}

// GetSafiName retrieves the value of the leaf SafiName from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SafiName is set, it can
// safely use t.GetSafiName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SafiName == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) GetSafiName() E_OpenconfigIsisTypes_SAFI_TYPE {
	if t == nil || t.SafiName == 0 {
		return 0
	}
	return t.SafiName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Metric == nil {
		var v uint32 = 10
		t.Metric = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	LevelNumber  *uint8            `path:"level-number" module:"openconfig-network-instance"`
	ΛLevelNumber []ygot.Annotation `path:"@level-number" ygotAnnotation:"true"`
	Passive      *bool             `path:"passive" module:"openconfig-network-instance"`
	ΛPassive     []ygot.Annotation `path:"@passive" ygotAnnotation:"true"`
	Priority     *uint8            `path:"priority" module:"openconfig-network-instance"`
	ΛPriority    []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetLevelNumber retrieves the value of the leaf LevelNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelNumber is set, it can
// safely use t.GetLevelNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) GetLevelNumber() uint8 {
	if t == nil || t.LevelNumber == nil {
		return 0
	}
	return *t.LevelNumber
}

// GetPassive retrieves the value of the leaf Passive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Passive is set, it can
// safely use t.GetPassive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Passive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) GetPassive() bool {
	if t == nil || t.Passive == nil {
		return false
	}
	return *t.Passive
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.Passive == nil {
		var v bool = false
		t.Passive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/hello-authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/hello-authentication/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config struct {
	ΛMetadata     []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	AuthMode      E_OpenconfigIsisTypes_AUTH_MODE     `path:"auth-mode" module:"openconfig-network-instance"`
	ΛAuthMode     []ygot.Annotation                   `path:"@auth-mode" ygotAnnotation:"true"`
	AuthPassword  *string                             `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword []ygot.Annotation                   `path:"@auth-password" ygotAnnotation:"true"`
	AuthType      E_OpenconfigKeychainTypes_AUTH_TYPE `path:"auth-type" module:"openconfig-network-instance"`
	ΛAuthType     []ygot.Annotation                   `path:"@auth-type" ygotAnnotation:"true"`
	Enabled       *bool                               `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	Keychain      *string                             `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain     []ygot.Annotation                   `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) IsYANGGoStruct() {
}

// GetAuthMode retrieves the value of the leaf AuthMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthMode is set, it can
// safely use t.GetAuthMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) GetAuthMode() E_OpenconfigIsisTypes_AUTH_MODE {
	if t == nil || t.AuthMode == 0 {
		return 0
	}
	return t.AuthMode
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetAuthType retrieves the value of the leaf AuthType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthType is set, it can
// safely use t.GetAuthType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) GetAuthType() E_OpenconfigKeychainTypes_AUTH_TYPE {
	if t == nil || t.AuthType == 0 {
		return 0
	}
	return t.AuthType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/hello-authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State struct {
	ΛMetadata     []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	AuthMode      E_OpenconfigIsisTypes_AUTH_MODE     `path:"auth-mode" module:"openconfig-network-instance"`
	ΛAuthMode     []ygot.Annotation                   `path:"@auth-mode" ygotAnnotation:"true"`
	AuthPassword  *string                             `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword []ygot.Annotation                   `path:"@auth-password" ygotAnnotation:"true"`
	AuthType      E_OpenconfigKeychainTypes_AUTH_TYPE `path:"auth-type" module:"openconfig-network-instance"`
	ΛAuthType     []ygot.Annotation                   `path:"@auth-type" ygotAnnotation:"true"`
	Enabled       *bool                               `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	Keychain      *string                             `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain     []ygot.Annotation                   `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) IsYANGGoStruct() {
}

// GetAuthMode retrieves the value of the leaf AuthMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthMode is set, it can
// safely use t.GetAuthMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) GetAuthMode() E_OpenconfigIsisTypes_AUTH_MODE {
	if t == nil || t.AuthMode == 0 {
		return 0
	}
	return t.AuthMode
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetAuthType retrieves the value of the leaf AuthType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthType is set, it can
// safely use t.GetAuthType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) GetAuthType() E_OpenconfigKeychainTypes_AUTH_TYPE {
	if t == nil || t.AuthType == 0 {
		return 0
	}
	return t.AuthType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_HelloAuthentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters struct {
	ΛMetadata []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Csnp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp    `path:"csnp" module:"openconfig-network-instance"`
	ΛCsnp     []ygot.Annotation                                                                                                                            `path:"@csnp" ygotAnnotation:"true"`
	Esh       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh     `path:"esh" module:"openconfig-network-instance"`
	ΛEsh      []ygot.Annotation                                                                                                                            `path:"@esh" ygotAnnotation:"true"`
	Iih       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih     `path:"iih" module:"openconfig-network-instance"`
	ΛIih      []ygot.Annotation                                                                                                                            `path:"@iih" ygotAnnotation:"true"`
	Ish       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish     `path:"ish" module:"openconfig-network-instance"`
	ΛIsh      []ygot.Annotation                                                                                                                            `path:"@ish" ygotAnnotation:"true"`
	Lsp       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp     `path:"lsp" module:"openconfig-network-instance"`
	ΛLsp      []ygot.Annotation                                                                                                                            `path:"@lsp" ygotAnnotation:"true"`
	Psnp      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp    `path:"psnp" module:"openconfig-network-instance"`
	ΛPsnp     []ygot.Annotation                                                                                                                            `path:"@psnp" ygotAnnotation:"true"`
	Unknown   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown `path:"unknown" module:"openconfig-network-instance"`
	ΛUnknown  []ygot.Annotation                                                                                                                            `path:"@unknown" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) IsYANGGoStruct() {
}

// GetOrCreateCsnp retrieves the value of the Csnp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetOrCreateCsnp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp {
	if t.Csnp != nil {
		return t.Csnp
	}
	t.Csnp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp{}
	return t.Csnp
}

// GetOrCreateEsh retrieves the value of the Esh field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetOrCreateEsh() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh {
	if t.Esh != nil {
		return t.Esh
	}
	t.Esh = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh{}
	return t.Esh
}

// GetOrCreateIih retrieves the value of the Iih field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetOrCreateIih() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih {
	if t.Iih != nil {
		return t.Iih
	}
	t.Iih = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih{}
	return t.Iih
}

// GetOrCreateIsh retrieves the value of the Ish field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetOrCreateIsh() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish {
	if t.Ish != nil {
		return t.Ish
	}
	t.Ish = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish{}
	return t.Ish
}

// GetOrCreateLsp retrieves the value of the Lsp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetOrCreateLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp {
	if t.Lsp != nil {
		return t.Lsp
	}
	t.Lsp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp{}
	return t.Lsp
}

// GetOrCreatePsnp retrieves the value of the Psnp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetOrCreatePsnp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp {
	if t.Psnp != nil {
		return t.Psnp
	}
	t.Psnp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp{}
	return t.Psnp
}

// GetOrCreateUnknown retrieves the value of the Unknown field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetOrCreateUnknown() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown {
	if t.Unknown != nil {
		return t.Unknown
	}
	t.Unknown = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown{}
	return t.Unknown
}

// GetCsnp returns the value of the Csnp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters. If the receiver or the field Csnp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetCsnp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp {
	if t != nil && t.Csnp != nil {
		return t.Csnp
	}
	return nil
}

// GetEsh returns the value of the Esh struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters. If the receiver or the field Esh is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetEsh() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh {
	if t != nil && t.Esh != nil {
		return t.Esh
	}
	return nil
}

// GetIih returns the value of the Iih struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters. If the receiver or the field Iih is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetIih() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih {
	if t != nil && t.Iih != nil {
		return t.Iih
	}
	return nil
}

// GetIsh returns the value of the Ish struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters. If the receiver or the field Ish is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetIsh() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish {
	if t != nil && t.Ish != nil {
		return t.Ish
	}
	return nil
}

// GetLsp returns the value of the Lsp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters. If the receiver or the field Lsp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp {
	if t != nil && t.Lsp != nil {
		return t.Lsp
	}
	return nil
}

// GetPsnp returns the value of the Psnp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters. If the receiver or the field Psnp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetPsnp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp {
	if t != nil && t.Psnp != nil {
		return t.Psnp
	}
	return nil
}

// GetUnknown returns the value of the Unknown struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters. If the receiver or the field Unknown is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) GetUnknown() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown {
	if t != nil && t.Unknown != nil {
		return t.Unknown
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Csnp.PopulateDefaults()
	t.Esh.PopulateDefaults()
	t.Iih.PopulateDefaults()
	t.Ish.PopulateDefaults()
	t.Lsp.PopulateDefaults()
	t.Psnp.PopulateDefaults()
	t.Unknown.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/csnp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/csnp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dropped     *uint32           `path:"dropped" module:"openconfig-network-instance"`
	ΛDropped    []ygot.Annotation `path:"@dropped" ygotAnnotation:"true"`
	Processed   *uint32           `path:"processed" module:"openconfig-network-instance"`
	ΛProcessed  []ygot.Annotation `path:"@processed" ygotAnnotation:"true"`
	Received    *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	Retransmit  *uint32           `path:"retransmit" module:"openconfig-network-instance"`
	ΛRetransmit []ygot.Annotation `path:"@retransmit" ygotAnnotation:"true"`
	Sent        *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent       []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) IsYANGGoStruct() {
}

// GetDropped retrieves the value of the leaf Dropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dropped is set, it can
// safely use t.GetDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) GetDropped() uint32 {
	if t == nil || t.Dropped == nil {
		return 0
	}
	return *t.Dropped
}

// GetProcessed retrieves the value of the leaf Processed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Processed is set, it can
// safely use t.GetProcessed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Processed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) GetProcessed() uint32 {
	if t == nil || t.Processed == nil {
		return 0
	}
	return *t.Processed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetRetransmit retrieves the value of the leaf Retransmit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Retransmit is set, it can
// safely use t.GetRetransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Retransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) GetRetransmit() uint32 {
	if t == nil || t.Retransmit == nil {
		return 0
	}
	return *t.Retransmit
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Csnp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/esh YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/esh/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dropped     *uint32           `path:"dropped" module:"openconfig-network-instance"`
	ΛDropped    []ygot.Annotation `path:"@dropped" ygotAnnotation:"true"`
	Processed   *uint32           `path:"processed" module:"openconfig-network-instance"`
	ΛProcessed  []ygot.Annotation `path:"@processed" ygotAnnotation:"true"`
	Received    *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	Retransmit  *uint32           `path:"retransmit" module:"openconfig-network-instance"`
	ΛRetransmit []ygot.Annotation `path:"@retransmit" ygotAnnotation:"true"`
	Sent        *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent       []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) IsYANGGoStruct() {
}

// GetDropped retrieves the value of the leaf Dropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dropped is set, it can
// safely use t.GetDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) GetDropped() uint32 {
	if t == nil || t.Dropped == nil {
		return 0
	}
	return *t.Dropped
}

// GetProcessed retrieves the value of the leaf Processed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Processed is set, it can
// safely use t.GetProcessed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Processed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) GetProcessed() uint32 {
	if t == nil || t.Processed == nil {
		return 0
	}
	return *t.Processed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetRetransmit retrieves the value of the leaf Retransmit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Retransmit is set, it can
// safely use t.GetRetransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Retransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) GetRetransmit() uint32 {
	if t == nil || t.Retransmit == nil {
		return 0
	}
	return *t.Retransmit
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Esh_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/iih YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/iih/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dropped     *uint32           `path:"dropped" module:"openconfig-network-instance"`
	ΛDropped    []ygot.Annotation `path:"@dropped" ygotAnnotation:"true"`
	Processed   *uint32           `path:"processed" module:"openconfig-network-instance"`
	ΛProcessed  []ygot.Annotation `path:"@processed" ygotAnnotation:"true"`
	Received    *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	Retransmit  *uint32           `path:"retransmit" module:"openconfig-network-instance"`
	ΛRetransmit []ygot.Annotation `path:"@retransmit" ygotAnnotation:"true"`
	Sent        *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent       []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) IsYANGGoStruct() {
}

// GetDropped retrieves the value of the leaf Dropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dropped is set, it can
// safely use t.GetDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) GetDropped() uint32 {
	if t == nil || t.Dropped == nil {
		return 0
	}
	return *t.Dropped
}

// GetProcessed retrieves the value of the leaf Processed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Processed is set, it can
// safely use t.GetProcessed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Processed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) GetProcessed() uint32 {
	if t == nil || t.Processed == nil {
		return 0
	}
	return *t.Processed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetRetransmit retrieves the value of the leaf Retransmit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Retransmit is set, it can
// safely use t.GetRetransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Retransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) GetRetransmit() uint32 {
	if t == nil || t.Retransmit == nil {
		return 0
	}
	return *t.Retransmit
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Iih_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/ish YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/ish/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dropped     *uint32           `path:"dropped" module:"openconfig-network-instance"`
	ΛDropped    []ygot.Annotation `path:"@dropped" ygotAnnotation:"true"`
	Processed   *uint32           `path:"processed" module:"openconfig-network-instance"`
	ΛProcessed  []ygot.Annotation `path:"@processed" ygotAnnotation:"true"`
	Received    *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	Retransmit  *uint32           `path:"retransmit" module:"openconfig-network-instance"`
	ΛRetransmit []ygot.Annotation `path:"@retransmit" ygotAnnotation:"true"`
	Sent        *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent       []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) IsYANGGoStruct() {
}

// GetDropped retrieves the value of the leaf Dropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dropped is set, it can
// safely use t.GetDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) GetDropped() uint32 {
	if t == nil || t.Dropped == nil {
		return 0
	}
	return *t.Dropped
}

// GetProcessed retrieves the value of the leaf Processed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Processed is set, it can
// safely use t.GetProcessed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Processed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) GetProcessed() uint32 {
	if t == nil || t.Processed == nil {
		return 0
	}
	return *t.Processed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetRetransmit retrieves the value of the leaf Retransmit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Retransmit is set, it can
// safely use t.GetRetransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Retransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) GetRetransmit() uint32 {
	if t == nil || t.Retransmit == nil {
		return 0
	}
	return *t.Retransmit
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Ish_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/lsp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/lsp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dropped     *uint32           `path:"dropped" module:"openconfig-network-instance"`
	ΛDropped    []ygot.Annotation `path:"@dropped" ygotAnnotation:"true"`
	Processed   *uint32           `path:"processed" module:"openconfig-network-instance"`
	ΛProcessed  []ygot.Annotation `path:"@processed" ygotAnnotation:"true"`
	Received    *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	Retransmit  *uint32           `path:"retransmit" module:"openconfig-network-instance"`
	ΛRetransmit []ygot.Annotation `path:"@retransmit" ygotAnnotation:"true"`
	Sent        *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent       []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) IsYANGGoStruct() {
}

// GetDropped retrieves the value of the leaf Dropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dropped is set, it can
// safely use t.GetDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) GetDropped() uint32 {
	if t == nil || t.Dropped == nil {
		return 0
	}
	return *t.Dropped
}

// GetProcessed retrieves the value of the leaf Processed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Processed is set, it can
// safely use t.GetProcessed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Processed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) GetProcessed() uint32 {
	if t == nil || t.Processed == nil {
		return 0
	}
	return *t.Processed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetRetransmit retrieves the value of the leaf Retransmit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Retransmit is set, it can
// safely use t.GetRetransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Retransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) GetRetransmit() uint32 {
	if t == nil || t.Retransmit == nil {
		return 0
	}
	return *t.Retransmit
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Lsp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/psnp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/psnp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dropped     *uint32           `path:"dropped" module:"openconfig-network-instance"`
	ΛDropped    []ygot.Annotation `path:"@dropped" ygotAnnotation:"true"`
	Processed   *uint32           `path:"processed" module:"openconfig-network-instance"`
	ΛProcessed  []ygot.Annotation `path:"@processed" ygotAnnotation:"true"`
	Received    *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	Retransmit  *uint32           `path:"retransmit" module:"openconfig-network-instance"`
	ΛRetransmit []ygot.Annotation `path:"@retransmit" ygotAnnotation:"true"`
	Sent        *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent       []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) IsYANGGoStruct() {
}

// GetDropped retrieves the value of the leaf Dropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dropped is set, it can
// safely use t.GetDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) GetDropped() uint32 {
	if t == nil || t.Dropped == nil {
		return 0
	}
	return *t.Dropped
}

// GetProcessed retrieves the value of the leaf Processed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Processed is set, it can
// safely use t.GetProcessed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Processed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) GetProcessed() uint32 {
	if t == nil || t.Processed == nil {
		return 0
	}
	return *t.Processed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetRetransmit retrieves the value of the leaf Retransmit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Retransmit is set, it can
// safely use t.GetRetransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Retransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) GetRetransmit() uint32 {
	if t == nil || t.Retransmit == nil {
		return 0
	}
	return *t.Retransmit
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Psnp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/unknown YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown struct {
	ΛMetadata []ygot.Annotation                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/packet-counters/unknown/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Dropped     *uint32           `path:"dropped" module:"openconfig-network-instance"`
	ΛDropped    []ygot.Annotation `path:"@dropped" ygotAnnotation:"true"`
	Processed   *uint32           `path:"processed" module:"openconfig-network-instance"`
	ΛProcessed  []ygot.Annotation `path:"@processed" ygotAnnotation:"true"`
	Received    *uint32           `path:"received" module:"openconfig-network-instance"`
	ΛReceived   []ygot.Annotation `path:"@received" ygotAnnotation:"true"`
	Retransmit  *uint32           `path:"retransmit" module:"openconfig-network-instance"`
	ΛRetransmit []ygot.Annotation `path:"@retransmit" ygotAnnotation:"true"`
	Sent        *uint32           `path:"sent" module:"openconfig-network-instance"`
	ΛSent       []ygot.Annotation `path:"@sent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) IsYANGGoStruct() {
}

// GetDropped retrieves the value of the leaf Dropped from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Dropped is set, it can
// safely use t.GetDropped() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Dropped == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) GetDropped() uint32 {
	if t == nil || t.Dropped == nil {
		return 0
	}
	return *t.Dropped
}

// GetProcessed retrieves the value of the leaf Processed from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Processed is set, it can
// safely use t.GetProcessed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Processed == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) GetProcessed() uint32 {
	if t == nil || t.Processed == nil {
		return 0
	}
	return *t.Processed
}

// GetReceived retrieves the value of the leaf Received from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Received is set, it can
// safely use t.GetReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Received == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) GetReceived() uint32 {
	if t == nil || t.Received == nil {
		return 0
	}
	return *t.Received
}

// GetRetransmit retrieves the value of the leaf Retransmit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Retransmit is set, it can
// safely use t.GetRetransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Retransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) GetRetransmit() uint32 {
	if t == nil || t.Retransmit == nil {
		return 0
	}
	return *t.Retransmit
}

// GetSent retrieves the value of the leaf Sent from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Sent is set, it can
// safely use t.GetSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Sent == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) GetSent() uint32 {
	if t == nil || t.Sent == nil {
		return 0
	}
	return *t.Sent
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_PacketCounters_Unknown_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	LevelNumber  *uint8            `path:"level-number" module:"openconfig-network-instance"`
	ΛLevelNumber []ygot.Annotation `path:"@level-number" ygotAnnotation:"true"`
	Passive      *bool             `path:"passive" module:"openconfig-network-instance"`
	ΛPassive     []ygot.Annotation `path:"@passive" ygotAnnotation:"true"`
	Priority     *uint8            `path:"priority" module:"openconfig-network-instance"`
	ΛPriority    []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetLevelNumber retrieves the value of the leaf LevelNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelNumber is set, it can
// safely use t.GetLevelNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) GetLevelNumber() uint8 {
	if t == nil || t.LevelNumber == nil {
		return 0
	}
	return *t.LevelNumber
}

// GetPassive retrieves the value of the leaf Passive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Passive is set, it can
// safely use t.GetPassive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Passive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) GetPassive() bool {
	if t == nil || t.Passive == nil {
		return false
	}
	return *t.Passive
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.Passive == nil {
		var v bool = false
		t.Passive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers struct {
	ΛMetadata []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloInterval    *uint32           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval   []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	HelloMultiplier  *uint8            `path:"hello-multiplier" module:"openconfig-network-instance"`
	ΛHelloMultiplier []ygot.Annotation `path:"@hello-multiplier" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) IsYANGGoStruct() {
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) GetHelloInterval() uint32 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetHelloMultiplier retrieves the value of the leaf HelloMultiplier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloMultiplier is set, it can
// safely use t.GetHelloMultiplier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloMultiplier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) GetHelloMultiplier() uint8 {
	if t == nil || t.HelloMultiplier == nil {
		return 0
	}
	return *t.HelloMultiplier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	HelloInterval    *uint32           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval   []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	HelloMultiplier  *uint8            `path:"hello-multiplier" module:"openconfig-network-instance"`
	ΛHelloMultiplier []ygot.Annotation `path:"@hello-multiplier" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) IsYANGGoStruct() {
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) GetHelloInterval() uint32 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetHelloMultiplier retrieves the value of the leaf HelloMultiplier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloMultiplier is set, it can
// safely use t.GetHelloMultiplier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloMultiplier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) GetHelloMultiplier() uint8 {
	if t == nil || t.HelloMultiplier == nil {
		return 0
	}
	return *t.HelloMultiplier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Timers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/mpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls struct {
	ΛMetadata   []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	IgpLdpSync  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync `path:"igp-ldp-sync" module:"openconfig-network-instance"`
	ΛIgpLdpSync []ygot.Annotation                                                                                                        `path:"@igp-ldp-sync" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) IsYANGGoStruct() {
}

// GetOrCreateIgpLdpSync retrieves the value of the IgpLdpSync field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) GetOrCreateIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync {
	if t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	t.IgpLdpSync = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync{}
	return t.IgpLdpSync
}

// GetIgpLdpSync returns the value of the IgpLdpSync struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls. If the receiver or the field IgpLdpSync is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) GetIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync {
	if t != nil && t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.IgpLdpSync.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/mpls/igp-ldp-sync YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/mpls/igp-ldp-sync/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint16           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) GetPostSessionUpDelay() uint16 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/mpls/igp-ldp-sync/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint16           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return true
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) GetPostSessionUpDelay() uint16 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = true
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Mpls_IgpLdpSync_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State struct {
	ΛMetadata     []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	CircuitType   E_OpenconfigIsisTypes_CircuitType      `path:"circuit-type" module:"openconfig-network-instance"`
	ΛCircuitType  []ygot.Annotation                      `path:"@circuit-type" ygotAnnotation:"true"`
	Enabled       *bool                                  `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                      `path:"@enabled" ygotAnnotation:"true"`
	HelloPadding  E_OpenconfigIsisTypes_HelloPaddingType `path:"hello-padding" module:"openconfig-network-instance"`
	ΛHelloPadding []ygot.Annotation                      `path:"@hello-padding" ygotAnnotation:"true"`
	InterfaceId   *string                                `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId  []ygot.Annotation                      `path:"@interface-id" ygotAnnotation:"true"`
	Passive       *bool                                  `path:"passive" module:"openconfig-network-instance"`
	ΛPassive      []ygot.Annotation                      `path:"@passive" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetCircuitType retrieves the value of the leaf CircuitType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CircuitType is set, it can
// safely use t.GetCircuitType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CircuitType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) GetCircuitType() E_OpenconfigIsisTypes_CircuitType {
	if t == nil || t.CircuitType == 0 {
		return 0
	}
	return t.CircuitType
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelloPadding retrieves the value of the leaf HelloPadding from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloPadding is set, it can
// safely use t.GetHelloPadding() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloPadding == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) GetHelloPadding() E_OpenconfigIsisTypes_HelloPaddingType {
	if t == nil || t.HelloPadding == 0 {
		return 0
	}
	return t.HelloPadding
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetPassive retrieves the value of the leaf Passive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Passive is set, it can
// safely use t.GetPassive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Passive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) GetPassive() bool {
	if t == nil || t.Passive == nil {
		return false
	}
	return *t.Passive
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.Passive == nil {
		var v bool = false
		t.Passive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CsnpInterval       *uint16           `path:"csnp-interval" module:"openconfig-network-instance"`
	ΛCsnpInterval      []ygot.Annotation `path:"@csnp-interval" ygotAnnotation:"true"`
	LspPacingInterval  *uint64           `path:"lsp-pacing-interval" module:"openconfig-network-instance"`
	ΛLspPacingInterval []ygot.Annotation `path:"@lsp-pacing-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) IsYANGGoStruct() {
}

// GetCsnpInterval retrieves the value of the leaf CsnpInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CsnpInterval is set, it can
// safely use t.GetCsnpInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CsnpInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) GetCsnpInterval() uint16 {
	if t == nil || t.CsnpInterval == nil {
		return 0
	}
	return *t.CsnpInterval
}

// GetLspPacingInterval retrieves the value of the leaf LspPacingInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspPacingInterval is set, it can
// safely use t.GetLspPacingInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspPacingInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) GetLspPacingInterval() uint64 {
	if t == nil || t.LspPacingInterval == nil {
		return 0
	}
	return *t.LspPacingInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CsnpInterval       *uint16           `path:"csnp-interval" module:"openconfig-network-instance"`
	ΛCsnpInterval      []ygot.Annotation `path:"@csnp-interval" ygotAnnotation:"true"`
	LspPacingInterval  *uint64           `path:"lsp-pacing-interval" module:"openconfig-network-instance"`
	ΛLspPacingInterval []ygot.Annotation `path:"@lsp-pacing-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) IsYANGGoStruct() {
}

// GetCsnpInterval retrieves the value of the leaf CsnpInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CsnpInterval is set, it can
// safely use t.GetCsnpInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CsnpInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) GetCsnpInterval() uint16 {
	if t == nil || t.CsnpInterval == nil {
		return 0
	}
	return *t.CsnpInterval
}

// GetLspPacingInterval retrieves the value of the leaf LspPacingInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspPacingInterval is set, it can
// safely use t.GetLspPacingInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspPacingInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) GetLspPacingInterval() uint64 {
	if t == nil || t.LspPacingInterval == nil {
		return 0
	}
	return *t.LspPacingInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Timers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/weighted-ecmp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/weighted-ecmp/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	LoadBalancingWeight  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union `path:"load-balancing-weight" module:"openconfig-network-instance"`
	ΛLoadBalancingWeight []ygot.Annotation                                                                                                                                     `path:"@load-balancing-weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) IsYANGGoStruct() {
}

// GetLoadBalancingWeight retrieves the value of the leaf LoadBalancingWeight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoadBalancingWeight is set, it can
// safely use t.GetLoadBalancingWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoadBalancingWeight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) GetLoadBalancingWeight() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union {
	if t == nil || t.LoadBalancingWeight == nil {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_auto
	}
	return t.LoadBalancingWeight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LoadBalancingWeight == nil {
		t.LoadBalancingWeight = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_auto
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/weighted-ecmp/config/load-balancing-weight within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/weighted-ecmp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	LoadBalancingWeight  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union `path:"load-balancing-weight" module:"openconfig-network-instance"`
	ΛLoadBalancingWeight []ygot.Annotation                                                                                                                                    `path:"@load-balancing-weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) IsYANGGoStruct() {
}

// GetLoadBalancingWeight retrieves the value of the leaf LoadBalancingWeight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoadBalancingWeight is set, it can
// safely use t.GetLoadBalancingWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoadBalancingWeight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) GetLoadBalancingWeight() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union {
	if t == nil || t.LoadBalancingWeight == nil {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_auto
	}
	return t.LoadBalancingWeight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LoadBalancingWeight == nil {
		t.LoadBalancingWeight = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_auto
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/weighted-ecmp/state/load-balancing-weight within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_State_LoadBalancingWeight_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels struct {
	ΛMetadata []ygot.Annotation                                                                                          `path:"@" ygotAnnotation:"true"`
	Level     map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level `path:"level" module:"openconfig-network-instance"`
	ΛLevel    []ygot.Annotation                                                                                          `path:"@level" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) IsYANGGoStruct() {
}

// NewLevel creates a new entry in the Level list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) NewLevel(LevelNumber uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Level == nil {
		t.Level = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level)
	}

	key := LevelNumber

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Level[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Level", key)
	}

	t.Level[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level{
		LevelNumber: &LevelNumber,
	}

	return t.Level[key], nil
}

// RenameLevel renames an entry in the list Level within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) RenameLevel(oldK, newK uint8) error {
	if _, ok := t.Level[newK]; ok {
		return fmt.Errorf("key %v already exists in Level", newK)
	}

	e, ok := t.Level[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Level", oldK)
	}
	e.LevelNumber = &newK

	t.Level[newK] = e
	delete(t.Level, oldK)
	return nil
}

// GetOrCreateLevelMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) GetOrCreateLevelMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level {
	if t.Level == nil {
		t.Level = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level)
	}
	return t.Level
}

// GetOrCreateLevel retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) GetOrCreateLevel(LevelNumber uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level {

	key := LevelNumber

	if v, ok := t.Level[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLevel(LevelNumber)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLevel got unexpected error: %v", err))
	}
	return v
}

// GetLevel retrieves the value with the specified key from
// the Level map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) GetLevel(LevelNumber uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level {

	if t == nil {
		return nil
	}

	key := LevelNumber

	if lm, ok := t.Level[key]; ok {
		return lm
	}
	return nil
}

// AppendLevel appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level struct to the
// list Level of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) AppendLevel(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) error {
	if v.LevelNumber == nil {
		return fmt.Errorf("invalid nil key received for LevelNumber")
	}

	key := *v.LevelNumber

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Level == nil {
		t.Level = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level)
	}

	if _, ok := t.Level[key]; ok {
		return fmt.Errorf("duplicate key for list Level %v", key)
	}

	t.Level[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Level {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level struct {
	ΛMetadata            []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Authentication       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication      `path:"authentication" module:"openconfig-network-instance"`
	ΛAuthentication      []ygot.Annotation                                                                                                    `path:"@authentication" ygotAnnotation:"true"`
	Config               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config              `path:"config" module:"openconfig-network-instance"`
	ΛConfig              []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	GracefulRestart      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart     `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart     []ygot.Annotation                                                                                                    `path:"@graceful-restart" ygotAnnotation:"true"`
	LevelNumber          *uint8                                                                                                               `path:"level-number" module:"openconfig-network-instance"`
	ΛLevelNumber         []ygot.Annotation                                                                                                    `path:"@level-number" ygotAnnotation:"true"`
	LinkStateDatabase    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase   `path:"link-state-database" module:"openconfig-network-instance"`
	ΛLinkStateDatabase   []ygot.Annotation                                                                                                    `path:"@link-state-database" ygotAnnotation:"true"`
	RoutePreference      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference     `path:"route-preference" module:"openconfig-network-instance"`
	ΛRoutePreference     []ygot.Annotation                                                                                                    `path:"@route-preference" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
	SystemLevelCounters  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters `path:"system-level-counters" module:"openconfig-network-instance"`
	ΛSystemLevelCounters []ygot.Annotation                                                                                                    `path:"@system-level-counters" ygotAnnotation:"true"`
	TrafficEngineering   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering  `path:"traffic-engineering" module:"openconfig-network-instance"`
	ΛTrafficEngineering  []ygot.Annotation                                                                                                    `path:"@traffic-engineering" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) IsYANGGoStruct() {
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication{}
	return t.Authentication
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config{}
	return t.Config
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateLinkStateDatabase retrieves the value of the LinkStateDatabase field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateLinkStateDatabase() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase {
	if t.LinkStateDatabase != nil {
		return t.LinkStateDatabase
	}
	t.LinkStateDatabase = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase{}
	return t.LinkStateDatabase
}

// GetOrCreateRoutePreference retrieves the value of the RoutePreference field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateRoutePreference() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference {
	if t.RoutePreference != nil {
		return t.RoutePreference
	}
	t.RoutePreference = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference{}
	return t.RoutePreference
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State{}
	return t.State
}

// GetOrCreateSystemLevelCounters retrieves the value of the SystemLevelCounters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateSystemLevelCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters {
	if t.SystemLevelCounters != nil {
		return t.SystemLevelCounters
	}
	t.SystemLevelCounters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters{}
	return t.SystemLevelCounters
}

// GetOrCreateTrafficEngineering retrieves the value of the TrafficEngineering field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetOrCreateTrafficEngineering() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering {
	if t.TrafficEngineering != nil {
		return t.TrafficEngineering
	}
	t.TrafficEngineering = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering{}
	return t.TrafficEngineering
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetLinkStateDatabase returns the value of the LinkStateDatabase struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field LinkStateDatabase is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetLinkStateDatabase() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase {
	if t != nil && t.LinkStateDatabase != nil {
		return t.LinkStateDatabase
	}
	return nil
}

// GetRoutePreference returns the value of the RoutePreference struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field RoutePreference is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetRoutePreference() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference {
	if t != nil && t.RoutePreference != nil {
		return t.RoutePreference
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSystemLevelCounters returns the value of the SystemLevelCounters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field SystemLevelCounters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetSystemLevelCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters {
	if t != nil && t.SystemLevelCounters != nil {
		return t.SystemLevelCounters
	}
	return nil
}

// GetTrafficEngineering returns the value of the TrafficEngineering struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level. If the receiver or the field TrafficEngineering is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetTrafficEngineering() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering {
	if t != nil && t.TrafficEngineering != nil {
		return t.TrafficEngineering
	}
	return nil
}

// GetLevelNumber retrieves the value of the leaf LevelNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelNumber is set, it can
// safely use t.GetLevelNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) GetLevelNumber() uint8 {
	if t == nil || t.LevelNumber == nil {
		return 0
	}
	return *t.LevelNumber
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Authentication.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.LinkStateDatabase.PopulateDefaults()
	t.RoutePreference.PopulateDefaults()
	t.State.PopulateDefaults()
	t.SystemLevelCounters.PopulateDefaults()
	t.TrafficEngineering.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LevelNumber == nil {
		return nil, fmt.Errorf("nil value for key LevelNumber")
	}

	return map[string]interface{}{
		"level-number": *t.LevelNumber,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/authentication/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config struct {
	ΛMetadata     []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	AuthMode      E_OpenconfigIsisTypes_AUTH_MODE     `path:"auth-mode" module:"openconfig-network-instance"`
	ΛAuthMode     []ygot.Annotation                   `path:"@auth-mode" ygotAnnotation:"true"`
	AuthPassword  *string                             `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword []ygot.Annotation                   `path:"@auth-password" ygotAnnotation:"true"`
	AuthType      E_OpenconfigKeychainTypes_AUTH_TYPE `path:"auth-type" module:"openconfig-network-instance"`
	ΛAuthType     []ygot.Annotation                   `path:"@auth-type" ygotAnnotation:"true"`
	DisableCsnp   *bool                               `path:"disable-csnp" module:"openconfig-network-instance"`
	ΛDisableCsnp  []ygot.Annotation                   `path:"@disable-csnp" ygotAnnotation:"true"`
	DisableLsp    *bool                               `path:"disable-lsp" module:"openconfig-network-instance"`
	ΛDisableLsp   []ygot.Annotation                   `path:"@disable-lsp" ygotAnnotation:"true"`
	DisablePsnp   *bool                               `path:"disable-psnp" module:"openconfig-network-instance"`
	ΛDisablePsnp  []ygot.Annotation                   `path:"@disable-psnp" ygotAnnotation:"true"`
	Enabled       *bool                               `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	Keychain      *string                             `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain     []ygot.Annotation                   `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) IsYANGGoStruct() {
}

// GetAuthMode retrieves the value of the leaf AuthMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthMode is set, it can
// safely use t.GetAuthMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetAuthMode() E_OpenconfigIsisTypes_AUTH_MODE {
	if t == nil || t.AuthMode == 0 {
		return 0
	}
	return t.AuthMode
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetAuthType retrieves the value of the leaf AuthType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthType is set, it can
// safely use t.GetAuthType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetAuthType() E_OpenconfigKeychainTypes_AUTH_TYPE {
	if t == nil || t.AuthType == 0 {
		return 0
	}
	return t.AuthType
}

// GetDisableCsnp retrieves the value of the leaf DisableCsnp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisableCsnp is set, it can
// safely use t.GetDisableCsnp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisableCsnp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetDisableCsnp() bool {
	if t == nil || t.DisableCsnp == nil {
		return false
	}
	return *t.DisableCsnp
}

// GetDisableLsp retrieves the value of the leaf DisableLsp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisableLsp is set, it can
// safely use t.GetDisableLsp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisableLsp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetDisableLsp() bool {
	if t == nil || t.DisableLsp == nil {
		return false
	}
	return *t.DisableLsp
}

// GetDisablePsnp retrieves the value of the leaf DisablePsnp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisablePsnp is set, it can
// safely use t.GetDisablePsnp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisablePsnp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetDisablePsnp() bool {
	if t == nil || t.DisablePsnp == nil {
		return false
	}
	return *t.DisablePsnp
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DisableCsnp == nil {
		var v bool = false
		t.DisableCsnp = &v
	}
	if t.DisableLsp == nil {
		var v bool = false
		t.DisableLsp = &v
	}
	if t.DisablePsnp == nil {
		var v bool = false
		t.DisablePsnp = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State struct {
	ΛMetadata     []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	AuthMode      E_OpenconfigIsisTypes_AUTH_MODE     `path:"auth-mode" module:"openconfig-network-instance"`
	ΛAuthMode     []ygot.Annotation                   `path:"@auth-mode" ygotAnnotation:"true"`
	AuthPassword  *string                             `path:"auth-password" module:"openconfig-network-instance"`
	ΛAuthPassword []ygot.Annotation                   `path:"@auth-password" ygotAnnotation:"true"`
	AuthType      E_OpenconfigKeychainTypes_AUTH_TYPE `path:"auth-type" module:"openconfig-network-instance"`
	ΛAuthType     []ygot.Annotation                   `path:"@auth-type" ygotAnnotation:"true"`
	DisableCsnp   *bool                               `path:"disable-csnp" module:"openconfig-network-instance"`
	ΛDisableCsnp  []ygot.Annotation                   `path:"@disable-csnp" ygotAnnotation:"true"`
	DisableLsp    *bool                               `path:"disable-lsp" module:"openconfig-network-instance"`
	ΛDisableLsp   []ygot.Annotation                   `path:"@disable-lsp" ygotAnnotation:"true"`
	DisablePsnp   *bool                               `path:"disable-psnp" module:"openconfig-network-instance"`
	ΛDisablePsnp  []ygot.Annotation                   `path:"@disable-psnp" ygotAnnotation:"true"`
	Enabled       *bool                               `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation                   `path:"@enabled" ygotAnnotation:"true"`
	Keychain      *string                             `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain     []ygot.Annotation                   `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) IsYANGGoStruct() {
}

// GetAuthMode retrieves the value of the leaf AuthMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthMode is set, it can
// safely use t.GetAuthMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetAuthMode() E_OpenconfigIsisTypes_AUTH_MODE {
	if t == nil || t.AuthMode == 0 {
		return 0
	}
	return t.AuthMode
}

// GetAuthPassword retrieves the value of the leaf AuthPassword from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPassword is set, it can
// safely use t.GetAuthPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetAuthPassword() string {
	if t == nil || t.AuthPassword == nil {
		return ""
	}
	return *t.AuthPassword
}

// GetAuthType retrieves the value of the leaf AuthType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthType is set, it can
// safely use t.GetAuthType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetAuthType() E_OpenconfigKeychainTypes_AUTH_TYPE {
	if t == nil || t.AuthType == 0 {
		return 0
	}
	return t.AuthType
}

// GetDisableCsnp retrieves the value of the leaf DisableCsnp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisableCsnp is set, it can
// safely use t.GetDisableCsnp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisableCsnp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetDisableCsnp() bool {
	if t == nil || t.DisableCsnp == nil {
		return false
	}
	return *t.DisableCsnp
}

// GetDisableLsp retrieves the value of the leaf DisableLsp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisableLsp is set, it can
// safely use t.GetDisableLsp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisableLsp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetDisableLsp() bool {
	if t == nil || t.DisableLsp == nil {
		return false
	}
	return *t.DisableLsp
}

// GetDisablePsnp retrieves the value of the leaf DisablePsnp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisablePsnp is set, it can
// safely use t.GetDisablePsnp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisablePsnp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetDisablePsnp() bool {
	if t == nil || t.DisablePsnp == nil {
		return false
	}
	return *t.DisablePsnp
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DisableCsnp == nil {
		var v bool = false
		t.DisableCsnp = &v
	}
	if t.DisableLsp == nil {
		var v bool = false
		t.DisableLsp = &v
	}
	if t.DisablePsnp == nil {
		var v bool = false
		t.DisablePsnp = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Authentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config struct {
	ΛMetadata            []ygot.Annotation                 `path:"@" ygotAnnotation:"true"`
	AuthenticationCheck  *bool                             `path:"authentication-check" module:"openconfig-network-instance"`
	ΛAuthenticationCheck []ygot.Annotation                 `path:"@authentication-check" ygotAnnotation:"true"`
	Enabled              *bool                             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled             []ygot.Annotation                 `path:"@enabled" ygotAnnotation:"true"`
	LevelNumber          *uint8                            `path:"level-number" module:"openconfig-network-instance"`
	ΛLevelNumber         []ygot.Annotation                 `path:"@level-number" ygotAnnotation:"true"`
	MetricStyle          E_OpenconfigIsisTypes_MetricStyle `path:"metric-style" module:"openconfig-network-instance"`
	ΛMetricStyle         []ygot.Annotation                 `path:"@metric-style" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) IsYANGGoStruct() {
}

// GetAuthenticationCheck retrieves the value of the leaf AuthenticationCheck from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationCheck is set, it can
// safely use t.GetAuthenticationCheck() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationCheck == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) GetAuthenticationCheck() bool {
	if t == nil || t.AuthenticationCheck == nil {
		return true
	}
	return *t.AuthenticationCheck
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetLevelNumber retrieves the value of the leaf LevelNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelNumber is set, it can
// safely use t.GetLevelNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) GetLevelNumber() uint8 {
	if t == nil || t.LevelNumber == nil {
		return 0
	}
	return *t.LevelNumber
}

// GetMetricStyle retrieves the value of the leaf MetricStyle from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricStyle is set, it can
// safely use t.GetMetricStyle() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricStyle == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) GetMetricStyle() E_OpenconfigIsisTypes_MetricStyle {
	if t == nil || t.MetricStyle == 0 {
		return 0
	}
	return t.MetricStyle
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AuthenticationCheck == nil {
		var v bool = true
		t.AuthenticationCheck = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	RestartTime  *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 30
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.RestartTime == nil {
		var v uint16 = 30
		t.RestartTime = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled      *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled     []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	RestartTime  *uint16           `path:"restart-time" module:"openconfig-network-instance"`
	ΛRestartTime []ygot.Annotation `path:"@restart-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetRestartTime retrieves the value of the leaf RestartTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RestartTime is set, it can
// safely use t.GetRestartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RestartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) GetRestartTime() uint16 {
	if t == nil || t.RestartTime == nil {
		return 30
	}
	return *t.RestartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.RestartTime == nil {
		var v uint16 = 30
		t.RestartTime = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Lsp       map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp `path:"lsp" module:"openconfig-network-instance"`
	ΛLsp      []ygot.Annotation                                                                                                                 `path:"@lsp" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) IsYANGGoStruct() {
}

// NewLsp creates a new entry in the Lsp list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) NewLsp(LspId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Lsp == nil {
		t.Lsp = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp)
	}

	key := LspId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Lsp[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Lsp", key)
	}

	t.Lsp[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp{
		LspId: &LspId,
	}

	return t.Lsp[key], nil
}

// RenameLsp renames an entry in the list Lsp within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) RenameLsp(oldK, newK string) error {
	if _, ok := t.Lsp[newK]; ok {
		return fmt.Errorf("key %v already exists in Lsp", newK)
	}

	e, ok := t.Lsp[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Lsp", oldK)
	}
	e.LspId = &newK

	t.Lsp[newK] = e
	delete(t.Lsp, oldK)
	return nil
}

// GetOrCreateLspMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) GetOrCreateLspMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp {
	if t.Lsp == nil {
		t.Lsp = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp)
	}
	return t.Lsp
}

// GetOrCreateLsp retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) GetOrCreateLsp(LspId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp {

	key := LspId

	if v, ok := t.Lsp[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLsp(LspId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLsp got unexpected error: %v", err))
	}
	return v
}

// GetLsp retrieves the value with the specified key from
// the Lsp map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) GetLsp(LspId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp {

	if t == nil {
		return nil
	}

	key := LspId

	if lm, ok := t.Lsp[key]; ok {
		return lm
	}
	return nil
}

// AppendLsp appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp struct to the
// list Lsp of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) AppendLsp(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) error {
	if v.LspId == nil {
		return fmt.Errorf("invalid nil key received for LspId")
	}

	key := *v.LspId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Lsp == nil {
		t.Lsp = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp)
	}

	if _, ok := t.Lsp[key]; ok {
		return fmt.Errorf("duplicate key for list Lsp %v", key)
	}

	t.Lsp[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Lsp {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp struct {
	ΛMetadata      []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	LspId          *string                                                                                                                              `path:"lsp-id" module:"openconfig-network-instance"`
	ΛLspId         []ygot.Annotation                                                                                                                    `path:"@lsp-id" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	Tlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs          `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs          []ygot.Annotation                                                                                                                    `path:"@tlvs" ygotAnnotation:"true"`
	UndefinedTlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs `path:"undefined-tlvs" module:"openconfig-network-instance"`
	ΛUndefinedTlvs []ygot.Annotation                                                                                                                    `path:"@undefined-tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State{}
	return t.State
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs{}
	return t.Tlvs
}

// GetOrCreateUndefinedTlvs retrieves the value of the UndefinedTlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) GetOrCreateUndefinedTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs {
	if t.UndefinedTlvs != nil {
		return t.UndefinedTlvs
	}
	t.UndefinedTlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs{}
	return t.UndefinedTlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// GetUndefinedTlvs returns the value of the UndefinedTlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp. If the receiver or the field UndefinedTlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) GetUndefinedTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs {
	if t != nil && t.UndefinedTlvs != nil {
		return t.UndefinedTlvs
	}
	return nil
}

// GetLspId retrieves the value of the leaf LspId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspId is set, it can
// safely use t.GetLspId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) GetLspId() string {
	if t == nil || t.LspId == nil {
		return ""
	}
	return *t.LspId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Tlvs.PopulateDefaults()
	t.UndefinedTlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LspId == nil {
		return nil, fmt.Errorf("nil value for key LspId")
	}

	return map[string]interface{}{
		"lsp-id": *t.LspId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State struct {
	ΛMetadata             []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Checksum              *uint16                                                                                                                               `path:"checksum" module:"openconfig-network-instance"`
	ΛChecksum             []ygot.Annotation                                                                                                                     `path:"@checksum" ygotAnnotation:"true"`
	Flags                 []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags                []ygot.Annotation                                                                                                                     `path:"@flags" ygotAnnotation:"true"`
	IdLength              *uint8                                                                                                                                `path:"id-length" module:"openconfig-network-instance"`
	ΛIdLength             []ygot.Annotation                                                                                                                     `path:"@id-length" ygotAnnotation:"true"`
	IsType                *uint8                                                                                                                                `path:"is-type" module:"openconfig-network-instance"`
	ΛIsType               []ygot.Annotation                                                                                                                     `path:"@is-type" ygotAnnotation:"true"`
	LspId                 *string                                                                                                                               `path:"lsp-id" module:"openconfig-network-instance"`
	ΛLspId                []ygot.Annotation                                                                                                                     `path:"@lsp-id" ygotAnnotation:"true"`
	MaximumAreaAddresses  *uint8                                                                                                                                `path:"maximum-area-addresses" module:"openconfig-network-instance"`
	ΛMaximumAreaAddresses []ygot.Annotation                                                                                                                     `path:"@maximum-area-addresses" ygotAnnotation:"true"`
	PduLength             *uint16                                                                                                                               `path:"pdu-length" module:"openconfig-network-instance"`
	ΛPduLength            []ygot.Annotation                                                                                                                     `path:"@pdu-length" ygotAnnotation:"true"`
	PduType               E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType `path:"pdu-type" module:"openconfig-network-instance"`
	ΛPduType              []ygot.Annotation                                                                                                                     `path:"@pdu-type" ygotAnnotation:"true"`
	RemainingLifetime     *uint16                                                                                                                               `path:"remaining-lifetime" module:"openconfig-network-instance"`
	ΛRemainingLifetime    []ygot.Annotation                                                                                                                     `path:"@remaining-lifetime" ygotAnnotation:"true"`
	SequenceNumber        *uint32                                                                                                                               `path:"sequence-number" module:"openconfig-network-instance"`
	ΛSequenceNumber       []ygot.Annotation                                                                                                                     `path:"@sequence-number" ygotAnnotation:"true"`
	Version               *uint8                                                                                                                                `path:"version" module:"openconfig-network-instance"`
	ΛVersion              []ygot.Annotation                                                                                                                     `path:"@version" ygotAnnotation:"true"`
	Version2              *uint8                                                                                                                                `path:"version2" module:"openconfig-network-instance"`
	ΛVersion2             []ygot.Annotation                                                                                                                     `path:"@version2" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) IsYANGGoStruct() {
}

// GetChecksum retrieves the value of the leaf Checksum from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Checksum is set, it can
// safely use t.GetChecksum() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Checksum == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetChecksum() uint16 {
	if t == nil || t.Checksum == nil {
		return 0
	}
	return *t.Checksum
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetIdLength retrieves the value of the leaf IdLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IdLength is set, it can
// safely use t.GetIdLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IdLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetIdLength() uint8 {
	if t == nil || t.IdLength == nil {
		return 0
	}
	return *t.IdLength
}

// GetIsType retrieves the value of the leaf IsType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IsType is set, it can
// safely use t.GetIsType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IsType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetIsType() uint8 {
	if t == nil || t.IsType == nil {
		return 0
	}
	return *t.IsType
}

// GetLspId retrieves the value of the leaf LspId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspId is set, it can
// safely use t.GetLspId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetLspId() string {
	if t == nil || t.LspId == nil {
		return ""
	}
	return *t.LspId
}

// GetMaximumAreaAddresses retrieves the value of the leaf MaximumAreaAddresses from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumAreaAddresses is set, it can
// safely use t.GetMaximumAreaAddresses() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumAreaAddresses == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetMaximumAreaAddresses() uint8 {
	if t == nil || t.MaximumAreaAddresses == nil {
		return 0
	}
	return *t.MaximumAreaAddresses
}

// GetPduLength retrieves the value of the leaf PduLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PduLength is set, it can
// safely use t.GetPduLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PduLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetPduLength() uint16 {
	if t == nil || t.PduLength == nil {
		return 0
	}
	return *t.PduLength
}

// GetPduType retrieves the value of the leaf PduType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PduType is set, it can
// safely use t.GetPduType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PduType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetPduType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType {
	if t == nil || t.PduType == 0 {
		return 0
	}
	return t.PduType
}

// GetRemainingLifetime retrieves the value of the leaf RemainingLifetime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemainingLifetime is set, it can
// safely use t.GetRemainingLifetime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemainingLifetime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetRemainingLifetime() uint16 {
	if t == nil || t.RemainingLifetime == nil {
		return 0
	}
	return *t.RemainingLifetime
}

// GetSequenceNumber retrieves the value of the leaf SequenceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceNumber is set, it can
// safely use t.GetSequenceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetSequenceNumber() uint32 {
	if t == nil || t.SequenceNumber == nil {
		return 0
	}
	return *t.SequenceNumber
}

// GetVersion retrieves the value of the leaf Version from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Version is set, it can
// safely use t.GetVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Version == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetVersion() uint8 {
	if t == nil || t.Version == nil {
		return 1
	}
	return *t.Version
}

// GetVersion2 retrieves the value of the leaf Version2 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Version2 is set, it can
// safely use t.GetVersion2() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Version2 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) GetVersion2() uint8 {
	if t == nil || t.Version2 == nil {
		return 1
	}
	return *t.Version2
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Version == nil {
		var v uint8 = 1
		t.Version = &v
	}
	if t.Version2 == nil {
		var v uint8 = 1
		t.Version2 = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Tlv       map[E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                                           `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) IsYANGGoStruct() {
}

// NewTlv creates a new entry in the Tlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) NewTlv(Type E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tlv == nil {
		t.Tlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Tlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Tlv", key)
	}

	t.Tlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv{
		Type: Type,
	}

	return t.Tlv[key], nil
}

// RenameTlv renames an entry in the list Tlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) RenameTlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE) error {
	if _, ok := t.Tlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Tlv", newK)
	}

	e, ok := t.Tlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Tlv", oldK)
	}
	e.Type = newK

	t.Tlv[newK] = e
	delete(t.Tlv, oldK)
	return nil
}

// GetOrCreateTlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) GetOrCreateTlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv {
	if t.Tlv == nil {
		t.Tlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv)
	}
	return t.Tlv
}

// GetOrCreateTlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) GetOrCreateTlv(Type E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv {

	key := Type

	if v, ok := t.Tlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTlv got unexpected error: %v", err))
	}
	return v
}

// GetTlv retrieves the value with the specified key from
// the Tlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) GetTlv(Type E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Tlv[key]; ok {
		return lm
	}
	return nil
}

// AppendTlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv struct to the
// list Tlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) AppendTlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tlv == nil {
		t.Tlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv)
	}

	if _, ok := t.Tlv[key]; ok {
		return fmt.Errorf("duplicate key for list Tlv %v", key)
	}

	t.Tlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv struct {
	ΛMetadata                 []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	AreaAddress               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress              `path:"area-address" module:"openconfig-network-instance"`
	ΛAreaAddress              []ygot.Annotation                                                                                                                                        `path:"@area-address" ygotAnnotation:"true"`
	Authentication            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication           `path:"authentication" module:"openconfig-network-instance"`
	ΛAuthentication           []ygot.Annotation                                                                                                                                        `path:"@authentication" ygotAnnotation:"true"`
	ExtendedIpv4Reachability  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability `path:"extended-ipv4-reachability" module:"openconfig-network-instance"`
	ΛExtendedIpv4Reachability []ygot.Annotation                                                                                                                                        `path:"@extended-ipv4-reachability" ygotAnnotation:"true"`
	ExtendedIsReachability    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability   `path:"extended-is-reachability" module:"openconfig-network-instance"`
	ΛExtendedIsReachability   []ygot.Annotation                                                                                                                                        `path:"@extended-is-reachability" ygotAnnotation:"true"`
	Hostname                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname                 `path:"hostname" module:"openconfig-network-instance"`
	ΛHostname                 []ygot.Annotation                                                                                                                                        `path:"@hostname" ygotAnnotation:"true"`
	InstanceIds               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds              `path:"instance-ids" module:"openconfig-network-instance"`
	ΛInstanceIds              []ygot.Annotation                                                                                                                                        `path:"@instance-ids" ygotAnnotation:"true"`
	Ipv4ExternalReachability  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability `path:"ipv4-external-reachability" module:"openconfig-network-instance"`
	ΛIpv4ExternalReachability []ygot.Annotation                                                                                                                                        `path:"@ipv4-external-reachability" ygotAnnotation:"true"`
	Ipv4InterfaceAddresses    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses   `path:"ipv4-interface-addresses" module:"openconfig-network-instance"`
	ΛIpv4InterfaceAddresses   []ygot.Annotation                                                                                                                                        `path:"@ipv4-interface-addresses" ygotAnnotation:"true"`
	Ipv4InternalReachability  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability `path:"ipv4-internal-reachability" module:"openconfig-network-instance"`
	ΛIpv4InternalReachability []ygot.Annotation                                                                                                                                        `path:"@ipv4-internal-reachability" ygotAnnotation:"true"`
	Ipv4Srlgs                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs                `path:"ipv4-srlgs" module:"openconfig-network-instance"`
	ΛIpv4Srlgs                []ygot.Annotation                                                                                                                                        `path:"@ipv4-srlgs" ygotAnnotation:"true"`
	Ipv4TeRouterId            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId           `path:"ipv4-te-router-id" module:"openconfig-network-instance"`
	ΛIpv4TeRouterId           []ygot.Annotation                                                                                                                                        `path:"@ipv4-te-router-id" ygotAnnotation:"true"`
	Ipv6InterfaceAddresses    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses   `path:"ipv6-interface-addresses" module:"openconfig-network-instance"`
	ΛIpv6InterfaceAddresses   []ygot.Annotation                                                                                                                                        `path:"@ipv6-interface-addresses" ygotAnnotation:"true"`
	Ipv6Reachability          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability         `path:"ipv6-reachability" module:"openconfig-network-instance"`
	ΛIpv6Reachability         []ygot.Annotation                                                                                                                                        `path:"@ipv6-reachability" ygotAnnotation:"true"`
	Ipv6Srlgs                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs                `path:"ipv6-srlgs" module:"openconfig-network-instance"`
	ΛIpv6Srlgs                []ygot.Annotation                                                                                                                                        `path:"@ipv6-srlgs" ygotAnnotation:"true"`
	Ipv6TeRouterId            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId           `path:"ipv6-te-router-id" module:"openconfig-network-instance"`
	ΛIpv6TeRouterId           []ygot.Annotation                                                                                                                                        `path:"@ipv6-te-router-id" ygotAnnotation:"true"`
	IsAliasId                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId                `path:"is-alias-id" module:"openconfig-network-instance"`
	ΛIsAliasId                []ygot.Annotation                                                                                                                                        `path:"@is-alias-id" ygotAnnotation:"true"`
	IsReachability            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability           `path:"is-reachability" module:"openconfig-network-instance"`
	ΛIsReachability           []ygot.Annotation                                                                                                                                        `path:"@is-reachability" ygotAnnotation:"true"`
	IsisNeighborAttribute     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute    `path:"isis-neighbor-attribute" module:"openconfig-network-instance"`
	ΛIsisNeighborAttribute    []ygot.Annotation                                                                                                                                        `path:"@isis-neighbor-attribute" ygotAnnotation:"true"`
	LspBufferSize             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize            `path:"lsp-buffer-size" module:"openconfig-network-instance"`
	ΛLspBufferSize            []ygot.Annotation                                                                                                                                        `path:"@lsp-buffer-size" ygotAnnotation:"true"`
	MtIpv4Reachability        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability       `path:"mt-ipv4-reachability" module:"openconfig-network-instance"`
	ΛMtIpv4Reachability       []ygot.Annotation                                                                                                                                        `path:"@mt-ipv4-reachability" ygotAnnotation:"true"`
	MtIpv6Reachability        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability       `path:"mt-ipv6-reachability" module:"openconfig-network-instance"`
	ΛMtIpv6Reachability       []ygot.Annotation                                                                                                                                        `path:"@mt-ipv6-reachability" ygotAnnotation:"true"`
	MtIsisNeighborAttribute   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute  `path:"mt-isis-neighbor-attribute" module:"openconfig-network-instance"`
	ΛMtIsisNeighborAttribute  []ygot.Annotation                                                                                                                                        `path:"@mt-isis-neighbor-attribute" ygotAnnotation:"true"`
	MtIsn                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn                    `path:"mt-isn" module:"openconfig-network-instance"`
	ΛMtIsn                    []ygot.Annotation                                                                                                                                        `path:"@mt-isn" ygotAnnotation:"true"`
	MultiTopology             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology            `path:"multi-topology" module:"openconfig-network-instance"`
	ΛMultiTopology            []ygot.Annotation                                                                                                                                        `path:"@multi-topology" ygotAnnotation:"true"`
	Nlpid                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid                    `path:"nlpid" module:"openconfig-network-instance"`
	ΛNlpid                    []ygot.Annotation                                                                                                                                        `path:"@nlpid" ygotAnnotation:"true"`
	PurgeOi                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi                  `path:"purge-oi" module:"openconfig-network-instance"`
	ΛPurgeOi                  []ygot.Annotation                                                                                                                                        `path:"@purge-oi" ygotAnnotation:"true"`
	RouterCapabilities        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities       `path:"router-capabilities" module:"openconfig-network-instance"`
	ΛRouterCapabilities       []ygot.Annotation                                                                                                                                        `path:"@router-capabilities" ygotAnnotation:"true"`
	State                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State                    `path:"state" module:"openconfig-network-instance"`
	ΛState                    []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
	Type                      E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE                                                                                                                  `path:"type" module:"openconfig-network-instance"`
	ΛType                     []ygot.Annotation                                                                                                                                        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateAreaAddress retrieves the value of the AreaAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateAreaAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress {
	if t.AreaAddress != nil {
		return t.AreaAddress
	}
	t.AreaAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress{}
	return t.AreaAddress
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication{}
	return t.Authentication
}

// GetOrCreateExtendedIpv4Reachability retrieves the value of the ExtendedIpv4Reachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateExtendedIpv4Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability {
	if t.ExtendedIpv4Reachability != nil {
		return t.ExtendedIpv4Reachability
	}
	t.ExtendedIpv4Reachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability{}
	return t.ExtendedIpv4Reachability
}

// GetOrCreateExtendedIsReachability retrieves the value of the ExtendedIsReachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateExtendedIsReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability {
	if t.ExtendedIsReachability != nil {
		return t.ExtendedIsReachability
	}
	t.ExtendedIsReachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability{}
	return t.ExtendedIsReachability
}

// GetOrCreateHostname retrieves the value of the Hostname field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateHostname() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname {
	if t.Hostname != nil {
		return t.Hostname
	}
	t.Hostname = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname{}
	return t.Hostname
}

// GetOrCreateInstanceIds retrieves the value of the InstanceIds field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateInstanceIds() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds {
	if t.InstanceIds != nil {
		return t.InstanceIds
	}
	t.InstanceIds = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds{}
	return t.InstanceIds
}

// GetOrCreateIpv4ExternalReachability retrieves the value of the Ipv4ExternalReachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv4ExternalReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability {
	if t.Ipv4ExternalReachability != nil {
		return t.Ipv4ExternalReachability
	}
	t.Ipv4ExternalReachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability{}
	return t.Ipv4ExternalReachability
}

// GetOrCreateIpv4InterfaceAddresses retrieves the value of the Ipv4InterfaceAddresses field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv4InterfaceAddresses() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses {
	if t.Ipv4InterfaceAddresses != nil {
		return t.Ipv4InterfaceAddresses
	}
	t.Ipv4InterfaceAddresses = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses{}
	return t.Ipv4InterfaceAddresses
}

// GetOrCreateIpv4InternalReachability retrieves the value of the Ipv4InternalReachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv4InternalReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability {
	if t.Ipv4InternalReachability != nil {
		return t.Ipv4InternalReachability
	}
	t.Ipv4InternalReachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability{}
	return t.Ipv4InternalReachability
}

// GetOrCreateIpv4Srlgs retrieves the value of the Ipv4Srlgs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv4Srlgs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs {
	if t.Ipv4Srlgs != nil {
		return t.Ipv4Srlgs
	}
	t.Ipv4Srlgs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs{}
	return t.Ipv4Srlgs
}

// GetOrCreateIpv4TeRouterId retrieves the value of the Ipv4TeRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv4TeRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId {
	if t.Ipv4TeRouterId != nil {
		return t.Ipv4TeRouterId
	}
	t.Ipv4TeRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId{}
	return t.Ipv4TeRouterId
}

// GetOrCreateIpv6InterfaceAddresses retrieves the value of the Ipv6InterfaceAddresses field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv6InterfaceAddresses() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses {
	if t.Ipv6InterfaceAddresses != nil {
		return t.Ipv6InterfaceAddresses
	}
	t.Ipv6InterfaceAddresses = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses{}
	return t.Ipv6InterfaceAddresses
}

// GetOrCreateIpv6Reachability retrieves the value of the Ipv6Reachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv6Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability {
	if t.Ipv6Reachability != nil {
		return t.Ipv6Reachability
	}
	t.Ipv6Reachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability{}
	return t.Ipv6Reachability
}

// GetOrCreateIpv6Srlgs retrieves the value of the Ipv6Srlgs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv6Srlgs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs {
	if t.Ipv6Srlgs != nil {
		return t.Ipv6Srlgs
	}
	t.Ipv6Srlgs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs{}
	return t.Ipv6Srlgs
}

// GetOrCreateIpv6TeRouterId retrieves the value of the Ipv6TeRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIpv6TeRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId {
	if t.Ipv6TeRouterId != nil {
		return t.Ipv6TeRouterId
	}
	t.Ipv6TeRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId{}
	return t.Ipv6TeRouterId
}

// GetOrCreateIsAliasId retrieves the value of the IsAliasId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIsAliasId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId {
	if t.IsAliasId != nil {
		return t.IsAliasId
	}
	t.IsAliasId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId{}
	return t.IsAliasId
}

// GetOrCreateIsReachability retrieves the value of the IsReachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIsReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability {
	if t.IsReachability != nil {
		return t.IsReachability
	}
	t.IsReachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability{}
	return t.IsReachability
}

// GetOrCreateIsisNeighborAttribute retrieves the value of the IsisNeighborAttribute field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateIsisNeighborAttribute() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute {
	if t.IsisNeighborAttribute != nil {
		return t.IsisNeighborAttribute
	}
	t.IsisNeighborAttribute = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute{}
	return t.IsisNeighborAttribute
}

// GetOrCreateLspBufferSize retrieves the value of the LspBufferSize field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateLspBufferSize() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize {
	if t.LspBufferSize != nil {
		return t.LspBufferSize
	}
	t.LspBufferSize = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize{}
	return t.LspBufferSize
}

// GetOrCreateMtIpv4Reachability retrieves the value of the MtIpv4Reachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateMtIpv4Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability {
	if t.MtIpv4Reachability != nil {
		return t.MtIpv4Reachability
	}
	t.MtIpv4Reachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability{}
	return t.MtIpv4Reachability
}

// GetOrCreateMtIpv6Reachability retrieves the value of the MtIpv6Reachability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateMtIpv6Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability {
	if t.MtIpv6Reachability != nil {
		return t.MtIpv6Reachability
	}
	t.MtIpv6Reachability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability{}
	return t.MtIpv6Reachability
}

// GetOrCreateMtIsisNeighborAttribute retrieves the value of the MtIsisNeighborAttribute field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateMtIsisNeighborAttribute() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute {
	if t.MtIsisNeighborAttribute != nil {
		return t.MtIsisNeighborAttribute
	}
	t.MtIsisNeighborAttribute = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute{}
	return t.MtIsisNeighborAttribute
}

// GetOrCreateMtIsn retrieves the value of the MtIsn field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateMtIsn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn {
	if t.MtIsn != nil {
		return t.MtIsn
	}
	t.MtIsn = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn{}
	return t.MtIsn
}

// GetOrCreateMultiTopology retrieves the value of the MultiTopology field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateMultiTopology() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology {
	if t.MultiTopology != nil {
		return t.MultiTopology
	}
	t.MultiTopology = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology{}
	return t.MultiTopology
}

// GetOrCreateNlpid retrieves the value of the Nlpid field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateNlpid() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid {
	if t.Nlpid != nil {
		return t.Nlpid
	}
	t.Nlpid = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid{}
	return t.Nlpid
}

// GetOrCreatePurgeOi retrieves the value of the PurgeOi field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreatePurgeOi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi {
	if t.PurgeOi != nil {
		return t.PurgeOi
	}
	t.PurgeOi = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi{}
	return t.PurgeOi
}

// GetOrCreateRouterCapabilities retrieves the value of the RouterCapabilities field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateRouterCapabilities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities {
	if t.RouterCapabilities != nil {
		return t.RouterCapabilities
	}
	t.RouterCapabilities = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities{}
	return t.RouterCapabilities
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State{}
	return t.State
}

// GetAreaAddress returns the value of the AreaAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field AreaAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetAreaAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress {
	if t != nil && t.AreaAddress != nil {
		return t.AreaAddress
	}
	return nil
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetExtendedIpv4Reachability returns the value of the ExtendedIpv4Reachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field ExtendedIpv4Reachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetExtendedIpv4Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability {
	if t != nil && t.ExtendedIpv4Reachability != nil {
		return t.ExtendedIpv4Reachability
	}
	return nil
}

// GetExtendedIsReachability returns the value of the ExtendedIsReachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field ExtendedIsReachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetExtendedIsReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability {
	if t != nil && t.ExtendedIsReachability != nil {
		return t.ExtendedIsReachability
	}
	return nil
}

// GetHostname returns the value of the Hostname struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Hostname is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetHostname() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname {
	if t != nil && t.Hostname != nil {
		return t.Hostname
	}
	return nil
}

// GetInstanceIds returns the value of the InstanceIds struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field InstanceIds is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetInstanceIds() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds {
	if t != nil && t.InstanceIds != nil {
		return t.InstanceIds
	}
	return nil
}

// GetIpv4ExternalReachability returns the value of the Ipv4ExternalReachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv4ExternalReachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv4ExternalReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability {
	if t != nil && t.Ipv4ExternalReachability != nil {
		return t.Ipv4ExternalReachability
	}
	return nil
}

// GetIpv4InterfaceAddresses returns the value of the Ipv4InterfaceAddresses struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv4InterfaceAddresses is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv4InterfaceAddresses() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses {
	if t != nil && t.Ipv4InterfaceAddresses != nil {
		return t.Ipv4InterfaceAddresses
	}
	return nil
}

// GetIpv4InternalReachability returns the value of the Ipv4InternalReachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv4InternalReachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv4InternalReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability {
	if t != nil && t.Ipv4InternalReachability != nil {
		return t.Ipv4InternalReachability
	}
	return nil
}

// GetIpv4Srlgs returns the value of the Ipv4Srlgs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv4Srlgs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv4Srlgs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs {
	if t != nil && t.Ipv4Srlgs != nil {
		return t.Ipv4Srlgs
	}
	return nil
}

// GetIpv4TeRouterId returns the value of the Ipv4TeRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv4TeRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv4TeRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId {
	if t != nil && t.Ipv4TeRouterId != nil {
		return t.Ipv4TeRouterId
	}
	return nil
}

// GetIpv6InterfaceAddresses returns the value of the Ipv6InterfaceAddresses struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv6InterfaceAddresses is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv6InterfaceAddresses() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses {
	if t != nil && t.Ipv6InterfaceAddresses != nil {
		return t.Ipv6InterfaceAddresses
	}
	return nil
}

// GetIpv6Reachability returns the value of the Ipv6Reachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv6Reachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv6Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability {
	if t != nil && t.Ipv6Reachability != nil {
		return t.Ipv6Reachability
	}
	return nil
}

// GetIpv6Srlgs returns the value of the Ipv6Srlgs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv6Srlgs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv6Srlgs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs {
	if t != nil && t.Ipv6Srlgs != nil {
		return t.Ipv6Srlgs
	}
	return nil
}

// GetIpv6TeRouterId returns the value of the Ipv6TeRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Ipv6TeRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIpv6TeRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId {
	if t != nil && t.Ipv6TeRouterId != nil {
		return t.Ipv6TeRouterId
	}
	return nil
}

// GetIsAliasId returns the value of the IsAliasId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field IsAliasId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIsAliasId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId {
	if t != nil && t.IsAliasId != nil {
		return t.IsAliasId
	}
	return nil
}

// GetIsReachability returns the value of the IsReachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field IsReachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIsReachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability {
	if t != nil && t.IsReachability != nil {
		return t.IsReachability
	}
	return nil
}

// GetIsisNeighborAttribute returns the value of the IsisNeighborAttribute struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field IsisNeighborAttribute is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetIsisNeighborAttribute() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute {
	if t != nil && t.IsisNeighborAttribute != nil {
		return t.IsisNeighborAttribute
	}
	return nil
}

// GetLspBufferSize returns the value of the LspBufferSize struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field LspBufferSize is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetLspBufferSize() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize {
	if t != nil && t.LspBufferSize != nil {
		return t.LspBufferSize
	}
	return nil
}

// GetMtIpv4Reachability returns the value of the MtIpv4Reachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field MtIpv4Reachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetMtIpv4Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability {
	if t != nil && t.MtIpv4Reachability != nil {
		return t.MtIpv4Reachability
	}
	return nil
}

// GetMtIpv6Reachability returns the value of the MtIpv6Reachability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field MtIpv6Reachability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetMtIpv6Reachability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability {
	if t != nil && t.MtIpv6Reachability != nil {
		return t.MtIpv6Reachability
	}
	return nil
}

// GetMtIsisNeighborAttribute returns the value of the MtIsisNeighborAttribute struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field MtIsisNeighborAttribute is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetMtIsisNeighborAttribute() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute {
	if t != nil && t.MtIsisNeighborAttribute != nil {
		return t.MtIsisNeighborAttribute
	}
	return nil
}

// GetMtIsn returns the value of the MtIsn struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field MtIsn is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetMtIsn() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn {
	if t != nil && t.MtIsn != nil {
		return t.MtIsn
	}
	return nil
}

// GetMultiTopology returns the value of the MultiTopology struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field MultiTopology is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetMultiTopology() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology {
	if t != nil && t.MultiTopology != nil {
		return t.MultiTopology
	}
	return nil
}

// GetNlpid returns the value of the Nlpid struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field Nlpid is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetNlpid() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid {
	if t != nil && t.Nlpid != nil {
		return t.Nlpid
	}
	return nil
}

// GetPurgeOi returns the value of the PurgeOi struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field PurgeOi is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetPurgeOi() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi {
	if t != nil && t.PurgeOi != nil {
		return t.PurgeOi
	}
	return nil
}

// GetRouterCapabilities returns the value of the RouterCapabilities struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field RouterCapabilities is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetRouterCapabilities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities {
	if t != nil && t.RouterCapabilities != nil {
		return t.RouterCapabilities
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AreaAddress.PopulateDefaults()
	t.Authentication.PopulateDefaults()
	t.ExtendedIpv4Reachability.PopulateDefaults()
	t.ExtendedIsReachability.PopulateDefaults()
	t.Hostname.PopulateDefaults()
	t.InstanceIds.PopulateDefaults()
	t.Ipv4ExternalReachability.PopulateDefaults()
	t.Ipv4InterfaceAddresses.PopulateDefaults()
	t.Ipv4InternalReachability.PopulateDefaults()
	t.Ipv4Srlgs.PopulateDefaults()
	t.Ipv4TeRouterId.PopulateDefaults()
	t.Ipv6InterfaceAddresses.PopulateDefaults()
	t.Ipv6Reachability.PopulateDefaults()
	t.Ipv6Srlgs.PopulateDefaults()
	t.Ipv6TeRouterId.PopulateDefaults()
	t.IsAliasId.PopulateDefaults()
	t.IsReachability.PopulateDefaults()
	t.IsisNeighborAttribute.PopulateDefaults()
	t.LspBufferSize.PopulateDefaults()
	t.MtIpv4Reachability.PopulateDefaults()
	t.MtIpv6Reachability.PopulateDefaults()
	t.MtIsisNeighborAttribute.PopulateDefaults()
	t.MtIsn.PopulateDefaults()
	t.MultiTopology.PopulateDefaults()
	t.Nlpid.PopulateDefaults()
	t.PurgeOi.PopulateDefaults()
	t.RouterCapabilities.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/area-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/area-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_AreaAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AuthenticationKey  *string                                                                                                                                                          `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey []ygot.Annotation                                                                                                                                                `path:"@authentication-key" ygotAnnotation:"true"`
	CryptoType         E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType `path:"crypto-type" module:"openconfig-network-instance"`
	ΛCryptoType        []ygot.Annotation                                                                                                                                                `path:"@crypto-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetCryptoType retrieves the value of the leaf CryptoType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CryptoType is set, it can
// safely use t.GetCryptoType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CryptoType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) GetCryptoType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType {
	if t == nil || t.CryptoType == 0 {
		return 0
	}
	return t.CryptoType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Prefixes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes `path:"prefixes" module:"openconfig-network-instance"`
	ΛPrefixes []ygot.Annotation                                                                                                                                                 `path:"@prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) IsYANGGoStruct() {
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) GetOrCreatePrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes{}
	return t.Prefixes
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) GetPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Prefixes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Prefix    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                                   `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) IsYANGGoStruct() {
}

// NewPrefix creates a new entry in the Prefix list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) NewPrefix(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Prefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Prefix", key)
	}

	t.Prefix[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix{
		Prefix: &Prefix,
	}

	return t.Prefix[key], nil
}

// RenamePrefix renames an entry in the list Prefix within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) RenamePrefix(oldK, newK string) error {
	if _, ok := t.Prefix[newK]; ok {
		return fmt.Errorf("key %v already exists in Prefix", newK)
	}

	e, ok := t.Prefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Prefix", oldK)
	}
	e.Prefix = &newK

	t.Prefix[newK] = e
	delete(t.Prefix, oldK)
	return nil
}

// GetOrCreatePrefixMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) GetOrCreatePrefixMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix {
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix)
	}
	return t.Prefix
}

// GetOrCreatePrefix retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) GetOrCreatePrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix {

	key := Prefix

	if v, ok := t.Prefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefix(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefix got unexpected error: %v", err))
	}
	return v
}

// GetPrefix retrieves the value with the specified key from
// the Prefix map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) GetPrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Prefix[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefix appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix struct to the
// list Prefix of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) AppendPrefix(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix)
	}

	if _, ok := t.Prefix[key]; ok {
		return fmt.Errorf("duplicate key for list Prefix %v", key)
	}

	t.Prefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Prefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Prefix            *string                                                                                                                                                                                   `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix           []ygot.Annotation                                                                                                                                                                         `path:"@prefix" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                         `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                         `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	Prefix    *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
	SBit      *bool             `path:"s-bit" module:"openconfig-network-instance"`
	ΛSBit     []ygot.Annotation `path:"@s-bit" ygotAnnotation:"true"`
	UpDown    *bool             `path:"up-down" module:"openconfig-network-instance"`
	ΛUpDown   []ygot.Annotation `path:"@up-down" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSBit retrieves the value of the leaf SBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SBit is set, it can
// safely use t.GetSBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) GetSBit() bool {
	if t == nil || t.SBit == nil {
		return false
	}
	return *t.SBit
}

// GetUpDown retrieves the value of the leaf UpDown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDown is set, it can
// safely use t.GetUpDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) GetUpDown() bool {
	if t == nil || t.UpDown == nil {
		return false
	}
	return *t.UpDown
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                                      `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Flags               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags              `path:"flags" module:"openconfig-network-instance"`
	ΛFlags              []ygot.Annotation                                                                                                                                                                                          `path:"@flags" ygotAnnotation:"true"`
	Ipv4SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId `path:"ipv4-source-router-id" module:"openconfig-network-instance"`
	ΛIpv4SourceRouterId []ygot.Annotation                                                                                                                                                                                          `path:"@ipv4-source-router-id" ygotAnnotation:"true"`
	Ipv6SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId `path:"ipv6-source-router-id" module:"openconfig-network-instance"`
	ΛIpv6SourceRouterId []ygot.Annotation                                                                                                                                                                                          `path:"@ipv6-source-router-id" ygotAnnotation:"true"`
	PrefixSids          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids         `path:"prefix-sids" module:"openconfig-network-instance"`
	ΛPrefixSids         []ygot.Annotation                                                                                                                                                                                          `path:"@prefix-sids" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
	Tag                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag                `path:"tag" module:"openconfig-network-instance"`
	ΛTag                []ygot.Annotation                                                                                                                                                                                          `path:"@tag" ygotAnnotation:"true"`
	Tag64               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64              `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64              []ygot.Annotation                                                                                                                                                                                          `path:"@tag64" ygotAnnotation:"true"`
	Type                E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                 `path:"type" module:"openconfig-network-instance"`
	ΛType               []ygot.Annotation                                                                                                                                                                                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateFlags retrieves the value of the Flags field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t.Flags != nil {
		return t.Flags
	}
	t.Flags = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags{}
	return t.Flags
}

// GetOrCreateIpv4SourceRouterId retrieves the value of the Ipv4SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	t.Ipv4SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId{}
	return t.Ipv4SourceRouterId
}

// GetOrCreateIpv6SourceRouterId retrieves the value of the Ipv6SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	t.Ipv6SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId{}
	return t.Ipv6SourceRouterId
}

// GetOrCreatePrefixSids retrieves the value of the PrefixSids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreatePrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t.PrefixSids != nil {
		return t.PrefixSids
	}
	t.PrefixSids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids{}
	return t.PrefixSids
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTag retrieves the value of the Tag field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t.Tag != nil {
		return t.Tag
	}
	t.Tag = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag{}
	return t.Tag
}

// GetOrCreateTag64 retrieves the value of the Tag64 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t.Tag64 != nil {
		return t.Tag64
	}
	t.Tag64 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64{}
	return t.Tag64
}

// GetFlags returns the value of the Flags struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Flags is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t != nil && t.Flags != nil {
		return t.Flags
	}
	return nil
}

// GetIpv4SourceRouterId returns the value of the Ipv4SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv4SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t != nil && t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	return nil
}

// GetIpv6SourceRouterId returns the value of the Ipv6SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv6SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t != nil && t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	return nil
}

// GetPrefixSids returns the value of the PrefixSids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field PrefixSids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetPrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t != nil && t.PrefixSids != nil {
		return t.PrefixSids
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTag returns the value of the Tag struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t != nil && t.Tag != nil {
		return t.Tag
	}
	return nil
}

// GetTag64 returns the value of the Tag64 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag64 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t != nil && t.Tag64 != nil {
		return t.Tag64
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Flags.PopulateDefaults()
	t.Ipv4SourceRouterId.PopulateDefaults()
	t.Ipv6SourceRouterId.PopulateDefaults()
	t.PrefixSids.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Tag.PopulateDefaults()
	t.Tag64.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                            `path:"@flags" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                   `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	PrefixSid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid `path:"prefix-sid" module:"openconfig-network-instance"`
	ΛPrefixSid []ygot.Annotation                                                                                                                                                                                                       `path:"@prefix-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) IsYANGGoStruct() {
}

// NewPrefixSid creates a new entry in the PrefixSid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) NewPrefixSid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PrefixSid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PrefixSid", key)
	}

	t.PrefixSid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid{
		Value: &Value,
	}

	return t.PrefixSid[key], nil
}

// RenamePrefixSid renames an entry in the list PrefixSid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) RenamePrefixSid(oldK, newK uint32) error {
	if _, ok := t.PrefixSid[newK]; ok {
		return fmt.Errorf("key %v already exists in PrefixSid", newK)
	}

	e, ok := t.PrefixSid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PrefixSid", oldK)
	}
	e.Value = &newK

	t.PrefixSid[newK] = e
	delete(t.PrefixSid, oldK)
	return nil
}

// GetOrCreatePrefixSidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}
	return t.PrefixSid
}

// GetOrCreatePrefixSid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	key := Value

	if v, ok := t.PrefixSid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefixSid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefixSid got unexpected error: %v", err))
	}
	return v
}

// GetPrefixSid retrieves the value with the specified key from
// the PrefixSid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetPrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.PrefixSid[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefixSid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct to the
// list PrefixSid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) AppendPrefixSid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	if _, ok := t.PrefixSid[key]; ok {
		return fmt.Errorf("duplicate key for list PrefixSid %v", key)
	}

	t.PrefixSid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PrefixSid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                  `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Algorithm  *uint8                                                                                                                                                                                                                      `path:"algorithm" module:"openconfig-network-instance"`
	ΛAlgorithm []ygot.Annotation                                                                                                                                                                                                           `path:"@algorithm" ygotAnnotation:"true"`
	Flags      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags     []ygot.Annotation                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	Value      *uint32                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue     []ygot.Annotation                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) IsYANGGoStruct() {
}

// GetAlgorithm retrieves the value of the leaf Algorithm from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Algorithm is set, it can
// safely use t.GetAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Algorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetAlgorithm() uint8 {
	if t == nil || t.Algorithm == nil {
		return 0
	}
	return *t.Algorithm
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag64 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag64/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag64     []uint64          `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64    []ygot.Annotation `path:"@tag64" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) IsYANGGoStruct() {
}

// GetTag64 retrieves the value of the leaf Tag64 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag64 is set, it can
// safely use t.GetTag64() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag64 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) GetTag64() []uint64 {
	if t == nil || t.Tag64 == nil {
		return nil
	}
	return t.Tag64
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag32     []uint32          `path:"tag32" module:"openconfig-network-instance"`
	ΛTag32    []ygot.Annotation `path:"@tag32" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) IsYANGGoStruct() {
}

// GetTag32 retrieves the value of the leaf Tag32 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag32 is set, it can
// safely use t.GetTag32() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag32 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) GetTag32() []uint32 {
	if t == nil || t.Tag32 == nil {
		return nil
	}
	return t.Tag32
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                                   `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                          `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                               `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                                                                `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) IsYANGGoStruct() {
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors{}
	return t.Neighbors
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                                                    `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) NewNeighbor(SystemId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor)
	}

	key := SystemId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor{
		SystemId: &SystemId,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.SystemId = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) GetOrCreateNeighbor(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor {

	key := SystemId

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(SystemId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) GetNeighbor(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := SystemId

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) error {
	if v.SystemId == nil {
		return fmt.Errorf("invalid nil key received for SystemId")
	}

	key := *v.SystemId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Instances  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances `path:"instances" module:"openconfig-network-instance"`
	ΛInstances []ygot.Annotation                                                                                                                                                                   `path:"@instances" ygotAnnotation:"true"`
	State      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State     `path:"state" module:"openconfig-network-instance"`
	ΛState     []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	SystemId   *string                                                                                                                                                                             `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId  []ygot.Annotation                                                                                                                                                                   `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateInstances retrieves the value of the Instances field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) GetOrCreateInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances {
	if t.Instances != nil {
		return t.Instances
	}
	t.Instances = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances{}
	return t.Instances
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State{}
	return t.State
}

// GetInstances returns the value of the Instances struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor. If the receiver or the field Instances is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) GetInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances {
	if t != nil && t.Instances != nil {
		return t.Instances
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Instances.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SystemId == nil {
		return nil, fmt.Errorf("nil value for key SystemId")
	}

	return map[string]interface{}{
		"system-id": *t.SystemId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Instance  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance `path:"instance" module:"openconfig-network-instance"`
	ΛInstance []ygot.Annotation                                                                                                                                                                                       `path:"@instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) IsYANGGoStruct() {
}

// NewInstance creates a new entry in the Instance list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) NewInstance(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Instance[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Instance", key)
	}

	t.Instance[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance{
		Id: &Id,
	}

	return t.Instance[key], nil
}

// RenameInstance renames an entry in the list Instance within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) RenameInstance(oldK, newK uint64) error {
	if _, ok := t.Instance[newK]; ok {
		return fmt.Errorf("key %v already exists in Instance", newK)
	}

	e, ok := t.Instance[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Instance", oldK)
	}
	e.Id = &newK

	t.Instance[newK] = e
	delete(t.Instance, oldK)
	return nil
}

// GetOrCreateInstanceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) GetOrCreateInstanceMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance {
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance)
	}
	return t.Instance
}

// GetOrCreateInstance retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) GetOrCreateInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance {

	key := Id

	if v, ok := t.Instance[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInstance(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInstance got unexpected error: %v", err))
	}
	return v
}

// GetInstance retrieves the value with the specified key from
// the Instance map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) GetInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Instance[key]; ok {
		return lm
	}
	return nil
}

// AppendInstance appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance struct to the
// list Instance of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) AppendInstance(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance)
	}

	if _, ok := t.Instance[key]; ok {
		return fmt.Errorf("duplicate key for list Instance %v", key)
	}

	t.Instance[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Instance {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Id                *uint64                                                                                                                                                                                                       `path:"id" module:"openconfig-network-instance"`
	ΛId               []ygot.Annotation                                                                                                                                                                                             `path:"@id" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                                             `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                                             `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Id        *uint64           `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) IsYANGGoStruct() {
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                                                          `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	AdjacencySids               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids              `path:"adjacency-sids" module:"openconfig-network-instance"`
	ΛAdjacencySids              []ygot.Annotation                                                                                                                                                                                                                      `path:"@adjacency-sids" ygotAnnotation:"true"`
	AdminGroup                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup                 `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup                 []ygot.Annotation                                                                                                                                                                                                                      `path:"@admin-group" ygotAnnotation:"true"`
	AvailableBandwidth          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth         `path:"available-bandwidth" module:"openconfig-network-instance"`
	ΛAvailableBandwidth         []ygot.Annotation                                                                                                                                                                                                                      `path:"@available-bandwidth" ygotAnnotation:"true"`
	BandwidthConstraints        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints       `path:"bandwidth-constraints" module:"openconfig-network-instance"`
	ΛBandwidthConstraints       []ygot.Annotation                                                                                                                                                                                                                      `path:"@bandwidth-constraints" ygotAnnotation:"true"`
	ExtendedAdminGroup          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup         `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup         []ygot.Annotation                                                                                                                                                                                                                      `path:"@extended-admin-group" ygotAnnotation:"true"`
	Ipv4InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress       `path:"ipv4-interface-address" module:"openconfig-network-instance"`
	ΛIpv4InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                                      `path:"@ipv4-interface-address" ygotAnnotation:"true"`
	Ipv4NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress        `path:"ipv4-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv4NeighborAddress        []ygot.Annotation                                                                                                                                                                                                                      `path:"@ipv4-neighbor-address" ygotAnnotation:"true"`
	Ipv6InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress       `path:"ipv6-interface-address" module:"openconfig-network-instance"`
	ΛIpv6InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                                      `path:"@ipv6-interface-address" ygotAnnotation:"true"`
	Ipv6NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress        `path:"ipv6-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv6NeighborAddress        []ygot.Annotation                                                                                                                                                                                                                      `path:"@ipv6-neighbor-address" ygotAnnotation:"true"`
	LanAdjacencySids            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids           `path:"lan-adjacency-sids" module:"openconfig-network-instance"`
	ΛLanAdjacencySids           []ygot.Annotation                                                                                                                                                                                                                      `path:"@lan-adjacency-sids" ygotAnnotation:"true"`
	LinkAttributes              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes             `path:"link-attributes" module:"openconfig-network-instance"`
	ΛLinkAttributes             []ygot.Annotation                                                                                                                                                                                                                      `path:"@link-attributes" ygotAnnotation:"true"`
	LinkDelay                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay                  `path:"link-delay" module:"openconfig-network-instance"`
	ΛLinkDelay                  []ygot.Annotation                                                                                                                                                                                                                      `path:"@link-delay" ygotAnnotation:"true"`
	LinkDelayVariation          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation         `path:"link-delay-variation" module:"openconfig-network-instance"`
	ΛLinkDelayVariation         []ygot.Annotation                                                                                                                                                                                                                      `path:"@link-delay-variation" ygotAnnotation:"true"`
	LinkId                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId                     `path:"link-id" module:"openconfig-network-instance"`
	ΛLinkId                     []ygot.Annotation                                                                                                                                                                                                                      `path:"@link-id" ygotAnnotation:"true"`
	LinkLoss                    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss                   `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss                   []ygot.Annotation                                                                                                                                                                                                                      `path:"@link-loss" ygotAnnotation:"true"`
	LinkProtectionType          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType         `path:"link-protection-type" module:"openconfig-network-instance"`
	ΛLinkProtectionType         []ygot.Annotation                                                                                                                                                                                                                      `path:"@link-protection-type" ygotAnnotation:"true"`
	MaxLinkBandwidth            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth           `path:"max-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxLinkBandwidth           []ygot.Annotation                                                                                                                                                                                                                      `path:"@max-link-bandwidth" ygotAnnotation:"true"`
	MaxReservableLinkBandwidth  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth `path:"max-reservable-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxReservableLinkBandwidth []ygot.Annotation                                                                                                                                                                                                                      `path:"@max-reservable-link-bandwidth" ygotAnnotation:"true"`
	MinMaxLinkDelay             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay            `path:"min-max-link-delay" module:"openconfig-network-instance"`
	ΛMinMaxLinkDelay            []ygot.Annotation                                                                                                                                                                                                                      `path:"@min-max-link-delay" ygotAnnotation:"true"`
	ResidualBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth          `path:"residual-bandwidth" module:"openconfig-network-instance"`
	ΛResidualBandwidth          []ygot.Annotation                                                                                                                                                                                                                      `path:"@residual-bandwidth" ygotAnnotation:"true"`
	State                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State                      `path:"state" module:"openconfig-network-instance"`
	ΛState                      []ygot.Annotation                                                                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
	TeDefaultMetric             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric            `path:"te-default-metric" module:"openconfig-network-instance"`
	ΛTeDefaultMetric            []ygot.Annotation                                                                                                                                                                                                                      `path:"@te-default-metric" ygotAnnotation:"true"`
	Type                        E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                                             `path:"type" module:"openconfig-network-instance"`
	ΛType                       []ygot.Annotation                                                                                                                                                                                                                      `path:"@type" ygotAnnotation:"true"`
	UnconstrainedLsp            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp           `path:"unconstrained-lsp" module:"openconfig-network-instance"`
	ΛUnconstrainedLsp           []ygot.Annotation                                                                                                                                                                                                                      `path:"@unconstrained-lsp" ygotAnnotation:"true"`
	UnreservedBandwidth         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth        `path:"unreserved-bandwidth" module:"openconfig-network-instance"`
	ΛUnreservedBandwidth        []ygot.Annotation                                                                                                                                                                                                                      `path:"@unreserved-bandwidth" ygotAnnotation:"true"`
	UtilizedBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth          `path:"utilized-bandwidth" module:"openconfig-network-instance"`
	ΛUtilizedBandwidth          []ygot.Annotation                                                                                                                                                                                                                      `path:"@utilized-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateAdjacencySids retrieves the value of the AdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	t.AdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids{}
	return t.AdjacencySids
}

// GetOrCreateAdminGroup retrieves the value of the AdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t.AdminGroup != nil {
		return t.AdminGroup
	}
	t.AdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup{}
	return t.AdminGroup
}

// GetOrCreateAvailableBandwidth retrieves the value of the AvailableBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	t.AvailableBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth{}
	return t.AvailableBandwidth
}

// GetOrCreateBandwidthConstraints retrieves the value of the BandwidthConstraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	t.BandwidthConstraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints{}
	return t.BandwidthConstraints
}

// GetOrCreateExtendedAdminGroup retrieves the value of the ExtendedAdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	t.ExtendedAdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup{}
	return t.ExtendedAdminGroup
}

// GetOrCreateIpv4InterfaceAddress retrieves the value of the Ipv4InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	t.Ipv4InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress{}
	return t.Ipv4InterfaceAddress
}

// GetOrCreateIpv4NeighborAddress retrieves the value of the Ipv4NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	t.Ipv4NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress{}
	return t.Ipv4NeighborAddress
}

// GetOrCreateIpv6InterfaceAddress retrieves the value of the Ipv6InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	t.Ipv6InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress{}
	return t.Ipv6InterfaceAddress
}

// GetOrCreateIpv6NeighborAddress retrieves the value of the Ipv6NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	t.Ipv6NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress{}
	return t.Ipv6NeighborAddress
}

// GetOrCreateLanAdjacencySids retrieves the value of the LanAdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	t.LanAdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids{}
	return t.LanAdjacencySids
}

// GetOrCreateLinkAttributes retrieves the value of the LinkAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	t.LinkAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes{}
	return t.LinkAttributes
}

// GetOrCreateLinkDelay retrieves the value of the LinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t.LinkDelay != nil {
		return t.LinkDelay
	}
	t.LinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay{}
	return t.LinkDelay
}

// GetOrCreateLinkDelayVariation retrieves the value of the LinkDelayVariation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	t.LinkDelayVariation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation{}
	return t.LinkDelayVariation
}

// GetOrCreateLinkId retrieves the value of the LinkId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t.LinkId != nil {
		return t.LinkId
	}
	t.LinkId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId{}
	return t.LinkId
}

// GetOrCreateLinkLoss retrieves the value of the LinkLoss field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t.LinkLoss != nil {
		return t.LinkLoss
	}
	t.LinkLoss = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss{}
	return t.LinkLoss
}

// GetOrCreateLinkProtectionType retrieves the value of the LinkProtectionType field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	t.LinkProtectionType = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType{}
	return t.LinkProtectionType
}

// GetOrCreateMaxLinkBandwidth retrieves the value of the MaxLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	t.MaxLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth{}
	return t.MaxLinkBandwidth
}

// GetOrCreateMaxReservableLinkBandwidth retrieves the value of the MaxReservableLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	t.MaxReservableLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth{}
	return t.MaxReservableLinkBandwidth
}

// GetOrCreateMinMaxLinkDelay retrieves the value of the MinMaxLinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	t.MinMaxLinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay{}
	return t.MinMaxLinkDelay
}

// GetOrCreateResidualBandwidth retrieves the value of the ResidualBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	t.ResidualBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth{}
	return t.ResidualBandwidth
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTeDefaultMetric retrieves the value of the TeDefaultMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	t.TeDefaultMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric{}
	return t.TeDefaultMetric
}

// GetOrCreateUnconstrainedLsp retrieves the value of the UnconstrainedLsp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	t.UnconstrainedLsp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp{}
	return t.UnconstrainedLsp
}

// GetOrCreateUnreservedBandwidth retrieves the value of the UnreservedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	t.UnreservedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth{}
	return t.UnreservedBandwidth
}

// GetOrCreateUtilizedBandwidth retrieves the value of the UtilizedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	t.UtilizedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth{}
	return t.UtilizedBandwidth
}

// GetAdjacencySids returns the value of the AdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t != nil && t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	return nil
}

// GetAdminGroup returns the value of the AdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t != nil && t.AdminGroup != nil {
		return t.AdminGroup
	}
	return nil
}

// GetAvailableBandwidth returns the value of the AvailableBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AvailableBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t != nil && t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	return nil
}

// GetBandwidthConstraints returns the value of the BandwidthConstraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field BandwidthConstraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t != nil && t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	return nil
}

// GetExtendedAdminGroup returns the value of the ExtendedAdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ExtendedAdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t != nil && t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	return nil
}

// GetIpv4InterfaceAddress returns the value of the Ipv4InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t != nil && t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	return nil
}

// GetIpv4NeighborAddress returns the value of the Ipv4NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t != nil && t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	return nil
}

// GetIpv6InterfaceAddress returns the value of the Ipv6InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t != nil && t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	return nil
}

// GetIpv6NeighborAddress returns the value of the Ipv6NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t != nil && t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	return nil
}

// GetLanAdjacencySids returns the value of the LanAdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LanAdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t != nil && t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	return nil
}

// GetLinkAttributes returns the value of the LinkAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t != nil && t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	return nil
}

// GetLinkDelay returns the value of the LinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t != nil && t.LinkDelay != nil {
		return t.LinkDelay
	}
	return nil
}

// GetLinkDelayVariation returns the value of the LinkDelayVariation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelayVariation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t != nil && t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	return nil
}

// GetLinkId returns the value of the LinkId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t != nil && t.LinkId != nil {
		return t.LinkId
	}
	return nil
}

// GetLinkLoss returns the value of the LinkLoss struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkLoss is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t != nil && t.LinkLoss != nil {
		return t.LinkLoss
	}
	return nil
}

// GetLinkProtectionType returns the value of the LinkProtectionType struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkProtectionType is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t != nil && t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	return nil
}

// GetMaxLinkBandwidth returns the value of the MaxLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t != nil && t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	return nil
}

// GetMaxReservableLinkBandwidth returns the value of the MaxReservableLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxReservableLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t != nil && t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	return nil
}

// GetMinMaxLinkDelay returns the value of the MinMaxLinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MinMaxLinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t != nil && t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	return nil
}

// GetResidualBandwidth returns the value of the ResidualBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ResidualBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t != nil && t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTeDefaultMetric returns the value of the TeDefaultMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field TeDefaultMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t != nil && t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	return nil
}

// GetUnconstrainedLsp returns the value of the UnconstrainedLsp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnconstrainedLsp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t != nil && t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	return nil
}

// GetUnreservedBandwidth returns the value of the UnreservedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnreservedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t != nil && t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	return nil
}

// GetUtilizedBandwidth returns the value of the UtilizedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UtilizedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t != nil && t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjacencySids.PopulateDefaults()
	t.AdminGroup.PopulateDefaults()
	t.AvailableBandwidth.PopulateDefaults()
	t.BandwidthConstraints.PopulateDefaults()
	t.ExtendedAdminGroup.PopulateDefaults()
	t.Ipv4InterfaceAddress.PopulateDefaults()
	t.Ipv4NeighborAddress.PopulateDefaults()
	t.Ipv6InterfaceAddress.PopulateDefaults()
	t.Ipv6NeighborAddress.PopulateDefaults()
	t.LanAdjacencySids.PopulateDefaults()
	t.LinkAttributes.PopulateDefaults()
	t.LinkDelay.PopulateDefaults()
	t.LinkDelayVariation.PopulateDefaults()
	t.LinkId.PopulateDefaults()
	t.LinkLoss.PopulateDefaults()
	t.LinkProtectionType.PopulateDefaults()
	t.MaxLinkBandwidth.PopulateDefaults()
	t.MaxReservableLinkBandwidth.PopulateDefaults()
	t.MinMaxLinkDelay.PopulateDefaults()
	t.ResidualBandwidth.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TeDefaultMetric.PopulateDefaults()
	t.UnconstrainedLsp.PopulateDefaults()
	t.UnreservedBandwidth.PopulateDefaults()
	t.UtilizedBandwidth.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	AdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid `path:"adjacency-sid" module:"openconfig-network-instance"`
	ΛAdjacencySid []ygot.Annotation                                                                                                                                                                                                                                 `path:"@adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) IsYANGGoStruct() {
}

// NewAdjacencySid creates a new entry in the AdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) NewAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AdjacencySid", key)
	}

	t.AdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid{
		Value: &Value,
	}

	return t.AdjacencySid[key], nil
}

// RenameAdjacencySid renames an entry in the list AdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) RenameAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.AdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in AdjacencySid", newK)
	}

	e, ok := t.AdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AdjacencySid", oldK)
	}
	e.Value = &newK

	t.AdjacencySid[newK] = e
	delete(t.AdjacencySid, oldK)
	return nil
}

// GetOrCreateAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}
	return t.AdjacencySid
}

// GetOrCreateAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	key := Value

	if v, ok := t.AdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetAdjacencySid retrieves the value with the specified key from
// the AdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.AdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct to the
// list AdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) AppendAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	if _, ok := t.AdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list AdjacencySid %v", key)
	}

	t.AdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                      `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                            `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@flags" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                               `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@value" ygotAnnotation:"true"`
	Weight    *uint8                                                                                                                                                                                                                                                `path:"weight" module:"openconfig-network-instance"`
	ΛWeight   []ygot.Annotation                                                                                                                                                                                                                                     `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroup  []uint32          `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup []ygot.Annotation `path:"@admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) IsYANGGoStruct() {
}

// GetAdminGroup retrieves the value of the leaf AdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroup is set, it can
// safely use t.GetAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) GetAdminGroup() []uint32 {
	if t == nil || t.AdminGroup == nil {
		return nil
	}
	return t.AdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	BandwidthConstraint  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint `path:"bandwidth-constraint" module:"openconfig-network-instance"`
	ΛBandwidthConstraint []ygot.Annotation                                                                                                                                                                                                                                              `path:"@bandwidth-constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) IsYANGGoStruct() {
}

// NewBandwidthConstraint creates a new entry in the BandwidthConstraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) NewBandwidthConstraint(ModelId uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	key := ModelId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BandwidthConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BandwidthConstraint", key)
	}

	t.BandwidthConstraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint{
		ModelId: &ModelId,
	}

	return t.BandwidthConstraint[key], nil
}

// RenameBandwidthConstraint renames an entry in the list BandwidthConstraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) RenameBandwidthConstraint(oldK, newK uint8) error {
	if _, ok := t.BandwidthConstraint[newK]; ok {
		return fmt.Errorf("key %v already exists in BandwidthConstraint", newK)
	}

	e, ok := t.BandwidthConstraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in BandwidthConstraint", oldK)
	}
	e.ModelId = &newK

	t.BandwidthConstraint[newK] = e
	delete(t.BandwidthConstraint, oldK)
	return nil
}

// GetOrCreateBandwidthConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraintMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}
	return t.BandwidthConstraint
}

// GetOrCreateBandwidthConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	key := ModelId

	if v, ok := t.BandwidthConstraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewBandwidthConstraint(ModelId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateBandwidthConstraint got unexpected error: %v", err))
	}
	return v
}

// GetBandwidthConstraint retrieves the value with the specified key from
// the BandwidthConstraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	if t == nil {
		return nil
	}

	key := ModelId

	if lm, ok := t.BandwidthConstraint[key]; ok {
		return lm
	}
	return nil
}

// AppendBandwidthConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct to the
// list BandwidthConstraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) AppendBandwidthConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) error {
	if v.ModelId == nil {
		return fmt.Errorf("invalid nil key received for ModelId")
	}

	key := *v.ModelId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	if _, ok := t.BandwidthConstraint[key]; ok {
		return fmt.Errorf("duplicate key for list BandwidthConstraint %v", key)
	}

	t.BandwidthConstraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.BandwidthConstraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Constraints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints `path:"constraints" module:"openconfig-network-instance"`
	ΛConstraints []ygot.Annotation                                                                                                                                                                                                                                                `path:"@constraints" ygotAnnotation:"true"`
	ModelId      *uint8                                                                                                                                                                                                                                                           `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId     []ygot.Annotation                                                                                                                                                                                                                                                `path:"@model-id" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State       `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) IsYANGGoStruct() {
}

// GetOrCreateConstraints retrieves the value of the Constraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t.Constraints != nil {
		return t.Constraints
	}
	t.Constraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints{}
	return t.Constraints
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State{}
	return t.State
}

// GetConstraints returns the value of the Constraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field Constraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t != nil && t.Constraints != nil {
		return t.Constraints
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Constraints.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ModelId == nil {
		return nil, fmt.Errorf("nil value for key ModelId")
	}

	return map[string]interface{}{
		"model-id": *t.ModelId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Constraint  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint `path:"constraint" module:"openconfig-network-instance"`
	ΛConstraint []ygot.Annotation                                                                                                                                                                                                                                                                      `path:"@constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) IsYANGGoStruct() {
}

// NewConstraint creates a new entry in the Constraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) NewConstraint(ConstraintId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	key := ConstraintId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Constraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Constraint", key)
	}

	t.Constraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint{
		ConstraintId: &ConstraintId,
	}

	return t.Constraint[key], nil
}

// RenameConstraint renames an entry in the list Constraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) RenameConstraint(oldK, newK uint32) error {
	if _, ok := t.Constraint[newK]; ok {
		return fmt.Errorf("key %v already exists in Constraint", newK)
	}

	e, ok := t.Constraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Constraint", oldK)
	}
	e.ConstraintId = &newK

	t.Constraint[newK] = e
	delete(t.Constraint, oldK)
	return nil
}

// GetOrCreateConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraintMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}
	return t.Constraint
}

// GetOrCreateConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	key := ConstraintId

	if v, ok := t.Constraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewConstraint(ConstraintId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateConstraint got unexpected error: %v", err))
	}
	return v
}

// GetConstraint retrieves the value with the specified key from
// the Constraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	if t == nil {
		return nil
	}

	key := ConstraintId

	if lm, ok := t.Constraint[key]; ok {
		return lm
	}
	return nil
}

// AppendConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct to the
// list Constraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) AppendConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) error {
	if v.ConstraintId == nil {
		return fmt.Errorf("invalid nil key received for ConstraintId")
	}

	key := *v.ConstraintId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	if _, ok := t.Constraint[key]; ok {
		return fmt.Errorf("duplicate key for list Constraint %v", key)
	}

	t.Constraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Constraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	ConstraintId  *uint32                                                                                                                                                                                                                                                                           `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation                                                                                                                                                                                                                                                                 `path:"@constraint-id" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConstraintId == nil {
		return nil, fmt.Errorf("nil value for key ConstraintId")
	}

	return map[string]interface{}{
		"constraint-id": *t.ConstraintId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth     Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth    []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	ConstraintId  *uint32           `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation `path:"@constraint-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ModelId   *uint8            `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId  []ygot.Annotation `path:"@model-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) IsYANGGoStruct() {
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedAdminGroup  []uint32          `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup []ygot.Annotation `path:"@extended-admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) IsYANGGoStruct() {
}

// GetExtendedAdminGroup retrieves the value of the leaf ExtendedAdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedAdminGroup is set, it can
// safely use t.GetExtendedAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedAdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) GetExtendedAdminGroup() []uint32 {
	if t == nil || t.ExtendedAdminGroup == nil {
		return nil
	}
	return t.ExtendedAdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	LanAdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid `path:"lan-adjacency-sid" module:"openconfig-network-instance"`
	ΛLanAdjacencySid []ygot.Annotation                                                                                                                                                                                                                                       `path:"@lan-adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) IsYANGGoStruct() {
}

// NewLanAdjacencySid creates a new entry in the LanAdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) NewLanAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LanAdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LanAdjacencySid", key)
	}

	t.LanAdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid{
		Value: &Value,
	}

	return t.LanAdjacencySid[key], nil
}

// RenameLanAdjacencySid renames an entry in the list LanAdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) RenameLanAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.LanAdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in LanAdjacencySid", newK)
	}

	e, ok := t.LanAdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in LanAdjacencySid", oldK)
	}
	e.Value = &newK

	t.LanAdjacencySid[newK] = e
	delete(t.LanAdjacencySid, oldK)
	return nil
}

// GetOrCreateLanAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}
	return t.LanAdjacencySid
}

// GetOrCreateLanAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	key := Value

	if v, ok := t.LanAdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLanAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLanAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetLanAdjacencySid retrieves the value with the specified key from
// the LanAdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.LanAdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendLanAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct to the
// list LanAdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) AppendLanAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	if _, ok := t.LanAdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list LanAdjacencySid %v", key)
	}

	t.LanAdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.LanAdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                                  `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Flags       []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	NeighborId  *string                                                                                                                                                                                                                                                     `path:"neighbor-id" module:"openconfig-network-instance"`
	ΛNeighborId []ygot.Annotation                                                                                                                                                                                                                                           `path:"@neighbor-id" ygotAnnotation:"true"`
	Value       *uint32                                                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
	Weight      *uint8                                                                                                                                                                                                                                                      `path:"weight" module:"openconfig-network-instance"`
	ΛWeight     []ygot.Annotation                                                                                                                                                                                                                                           `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetNeighborId retrieves the value of the leaf NeighborId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborId is set, it can
// safely use t.GetNeighborId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetNeighborId() string {
	if t == nil || t.NeighborId == nil {
		return ""
	}
	return *t.NeighborId
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	LocalProtection  []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection `path:"local-protection" module:"openconfig-network-instance"`
	ΛLocalProtection []ygot.Annotation                                                                                                                                                                                                                                   `path:"@local-protection" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) IsYANGGoStruct() {
}

// GetLocalProtection retrieves the value of the leaf LocalProtection from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalProtection is set, it can
// safely use t.GetLocalProtection() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalProtection == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) GetLocalProtection() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection {
	if t == nil || t.LocalProtection == nil {
		return nil
	}
	return t.LocalProtection
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) IsYANGGoStruct() {
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Local     *uint32           `path:"local" module:"openconfig-network-instance"`
	ΛLocal    []ygot.Annotation `path:"@local" ygotAnnotation:"true"`
	Remote    *uint32           `path:"remote" module:"openconfig-network-instance"`
	ΛRemote   []ygot.Annotation `path:"@remote" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) IsYANGGoStruct() {
}

// GetLocal retrieves the value of the leaf Local from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Local is set, it can
// safely use t.GetLocal() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Local == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetLocal() uint32 {
	if t == nil || t.Local == nil {
		return 0
	}
	return *t.Local
}

// GetRemote retrieves the value of the leaf Remote from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Remote is set, it can
// safely use t.GetRemote() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Remote == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetRemote() uint32 {
	if t == nil || t.Remote == nil {
		return 0
	}
	return *t.Remote
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	LinkLoss  *uint32           `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss []ygot.Annotation `path:"@link-loss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetLinkLoss retrieves the value of the leaf LinkLoss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkLoss is set, it can
// safely use t.GetLinkLoss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkLoss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetLinkLoss() uint32 {
	if t == nil || t.LinkLoss == nil {
		return 0
	}
	return *t.LinkLoss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Type      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) GetType() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	MaxDelay  *uint32           `path:"max-delay" module:"openconfig-network-instance"`
	ΛMaxDelay []ygot.Annotation `path:"@max-delay" ygotAnnotation:"true"`
	MinDelay  *uint32           `path:"min-delay" module:"openconfig-network-instance"`
	ΛMinDelay []ygot.Annotation `path:"@min-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetMaxDelay retrieves the value of the leaf MaxDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxDelay is set, it can
// safely use t.GetMaxDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMaxDelay() uint32 {
	if t == nil || t.MaxDelay == nil {
		return 0
	}
	return *t.MaxDelay
}

// GetMinDelay retrieves the value of the leaf MinDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinDelay is set, it can
// safely use t.GetMinDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMinDelay() uint32 {
	if t == nil || t.MinDelay == nil {
		return 0
	}
	return *t.MinDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Count     *uint16                                    `path:"count" module:"openconfig-network-instance"`
	ΛCount    []ygot.Annotation                          `path:"@count" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) IsYANGGoStruct() {
}

// GetCount retrieves the value of the leaf Count from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Count is set, it can
// safely use t.GetCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Count == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetCount() uint16 {
	if t == nil || t.Count == nil {
		return 0
	}
	return *t.Count
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	SetupPriority  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority []ygot.Annotation                                                                                                                                                                                                                                       `path:"@setup-priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) IsYANGGoStruct() {
}

// NewSetupPriority creates a new entry in the SetupPriority list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) NewSetupPriority(Priority uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	key := Priority

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SetupPriority[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SetupPriority", key)
	}

	t.SetupPriority[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority{
		Priority: &Priority,
	}

	return t.SetupPriority[key], nil
}

// RenameSetupPriority renames an entry in the list SetupPriority within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) RenameSetupPriority(oldK, newK uint8) error {
	if _, ok := t.SetupPriority[newK]; ok {
		return fmt.Errorf("key %v already exists in SetupPriority", newK)
	}

	e, ok := t.SetupPriority[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SetupPriority", oldK)
	}
	e.Priority = &newK

	t.SetupPriority[newK] = e
	delete(t.SetupPriority, oldK)
	return nil
}

// GetOrCreateSetupPriorityMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriorityMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}
	return t.SetupPriority
}

// GetOrCreateSetupPriority retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	key := Priority

	if v, ok := t.SetupPriority[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSetupPriority(Priority)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSetupPriority got unexpected error: %v", err))
	}
	return v
}

// GetSetupPriority retrieves the value with the specified key from
// the SetupPriority map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	if t == nil {
		return nil
	}

	key := Priority

	if lm, ok := t.SetupPriority[key]; ok {
		return lm
	}
	return nil
}

// AppendSetupPriority appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct to the
// list SetupPriority of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) AppendSetupPriority(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) error {
	if v.Priority == nil {
		return fmt.Errorf("invalid nil key received for Priority")
	}

	key := *v.Priority

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	if _, ok := t.SetupPriority[key]; ok {
		return fmt.Errorf("duplicate key for list SetupPriority %v", key)
	}

	t.SetupPriority[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SetupPriority {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Priority  *uint8                                                                                                                                                                                                                                              `path:"priority" module:"openconfig-network-instance"`
	ΛPriority []ygot.Annotation                                                                                                                                                                                                                                   `path:"@priority" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Priority == nil {
		return nil, fmt.Errorf("nil value for key Priority")
	}

	return map[string]interface{}{
		"priority": *t.Priority,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	Priority   *uint8            `path:"priority" module:"openconfig-network-instance"`
	ΛPriority  []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                                                       `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                                              `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                                   `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SystemId  *string           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId []ygot.Annotation `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/hostname YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/hostname/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Hostname  []string          `path:"hostname" module:"openconfig-network-instance"`
	ΛHostname []ygot.Annotation `path:"@hostname" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State) IsYANGGoStruct() {
}

// GetHostname retrieves the value of the leaf Hostname from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Hostname is set, it can
// safely use t.GetHostname() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Hostname == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State) GetHostname() []string {
	if t == nil || t.Hostname == nil {
		return nil
	}
	return t.Hostname
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Hostname_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/instance-ids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	InstanceId  map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId `path:"instance-id" module:"openconfig-network-instance"`
	ΛInstanceId []ygot.Annotation                                                                                                                                                 `path:"@instance-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) IsYANGGoStruct() {
}

// NewInstanceId creates a new entry in the InstanceId list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) NewInstanceId(InstanceId uint16) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InstanceId == nil {
		t.InstanceId = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId)
	}

	key := InstanceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.InstanceId[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list InstanceId", key)
	}

	t.InstanceId[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId{
		InstanceId: &InstanceId,
	}

	return t.InstanceId[key], nil
}

// RenameInstanceId renames an entry in the list InstanceId within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) RenameInstanceId(oldK, newK uint16) error {
	if _, ok := t.InstanceId[newK]; ok {
		return fmt.Errorf("key %v already exists in InstanceId", newK)
	}

	e, ok := t.InstanceId[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in InstanceId", oldK)
	}
	e.InstanceId = &newK

	t.InstanceId[newK] = e
	delete(t.InstanceId, oldK)
	return nil
}

// GetOrCreateInstanceIdMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) GetOrCreateInstanceIdMap() map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId {
	if t.InstanceId == nil {
		t.InstanceId = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId)
	}
	return t.InstanceId
}

// GetOrCreateInstanceId retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) GetOrCreateInstanceId(InstanceId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId {

	key := InstanceId

	if v, ok := t.InstanceId[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInstanceId(InstanceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInstanceId got unexpected error: %v", err))
	}
	return v
}

// GetInstanceId retrieves the value with the specified key from
// the InstanceId map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) GetInstanceId(InstanceId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId {

	if t == nil {
		return nil
	}

	key := InstanceId

	if lm, ok := t.InstanceId[key]; ok {
		return lm
	}
	return nil
}

// AppendInstanceId appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId struct to the
// list InstanceId of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) AppendInstanceId(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) error {
	if v.InstanceId == nil {
		return fmt.Errorf("invalid nil key received for InstanceId")
	}

	key := *v.InstanceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InstanceId == nil {
		t.InstanceId = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId)
	}

	if _, ok := t.InstanceId[key]; ok {
		return fmt.Errorf("duplicate key for list InstanceId %v", key)
	}

	t.InstanceId[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.InstanceId {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/instance-ids/instance-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	InstanceId  *uint16                                                                                                                                                      `path:"instance-id" module:"openconfig-network-instance"`
	ΛInstanceId []ygot.Annotation                                                                                                                                            `path:"@instance-id" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInstanceId retrieves the value of the leaf InstanceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceId is set, it can
// safely use t.GetInstanceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) GetInstanceId() uint16 {
	if t == nil || t.InstanceId == nil {
		return 0
	}
	return *t.InstanceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InstanceId == nil {
		return nil, fmt.Errorf("nil value for key InstanceId")
	}

	return map[string]interface{}{
		"instance-id": *t.InstanceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/instance-ids/instance-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InstanceId  *uint16           `path:"instance-id" module:"openconfig-network-instance"`
	ΛInstanceId []ygot.Annotation `path:"@instance-id" ygotAnnotation:"true"`
	TopologyId  []uint16          `path:"topology-id" module:"openconfig-network-instance"`
	ΛTopologyId []ygot.Annotation `path:"@topology-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) IsYANGGoStruct() {
}

// GetInstanceId retrieves the value of the leaf InstanceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceId is set, it can
// safely use t.GetInstanceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) GetInstanceId() uint16 {
	if t == nil || t.InstanceId == nil {
		return 0
	}
	return *t.InstanceId
}

// GetTopologyId retrieves the value of the leaf TopologyId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TopologyId is set, it can
// safely use t.GetTopologyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TopologyId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) GetTopologyId() []uint16 {
	if t == nil || t.TopologyId == nil {
		return nil
	}
	return t.TopologyId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_InstanceIds_InstanceId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Prefixes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes `path:"prefixes" module:"openconfig-network-instance"`
	ΛPrefixes []ygot.Annotation                                                                                                                                                 `path:"@prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) IsYANGGoStruct() {
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) GetOrCreatePrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes{}
	return t.Prefixes
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) GetPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Prefixes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Prefix    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                                   `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) IsYANGGoStruct() {
}

// NewPrefix creates a new entry in the Prefix list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) NewPrefix(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Prefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Prefix", key)
	}

	t.Prefix[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix{
		Prefix: &Prefix,
	}

	return t.Prefix[key], nil
}

// RenamePrefix renames an entry in the list Prefix within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) RenamePrefix(oldK, newK string) error {
	if _, ok := t.Prefix[newK]; ok {
		return fmt.Errorf("key %v already exists in Prefix", newK)
	}

	e, ok := t.Prefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Prefix", oldK)
	}
	e.Prefix = &newK

	t.Prefix[newK] = e
	delete(t.Prefix, oldK)
	return nil
}

// GetOrCreatePrefixMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) GetOrCreatePrefixMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix {
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix)
	}
	return t.Prefix
}

// GetOrCreatePrefix retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) GetOrCreatePrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix {

	key := Prefix

	if v, ok := t.Prefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefix(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefix got unexpected error: %v", err))
	}
	return v
}

// GetPrefix retrieves the value with the specified key from
// the Prefix map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) GetPrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Prefix[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefix appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix struct to the
// list Prefix of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) AppendPrefix(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix)
	}

	if _, ok := t.Prefix[key]; ok {
		return fmt.Errorf("duplicate key for list Prefix %v", key)
	}

	t.Prefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Prefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	DefaultMetric  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric `path:"default-metric" module:"openconfig-network-instance"`
	ΛDefaultMetric []ygot.Annotation                                                                                                                                                                      `path:"@default-metric" ygotAnnotation:"true"`
	DelayMetric    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric   `path:"delay-metric" module:"openconfig-network-instance"`
	ΛDelayMetric   []ygot.Annotation                                                                                                                                                                      `path:"@delay-metric" ygotAnnotation:"true"`
	ErrorMetric    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric   `path:"error-metric" module:"openconfig-network-instance"`
	ΛErrorMetric   []ygot.Annotation                                                                                                                                                                      `path:"@error-metric" ygotAnnotation:"true"`
	ExpenseMetric  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric `path:"expense-metric" module:"openconfig-network-instance"`
	ΛExpenseMetric []ygot.Annotation                                                                                                                                                                      `path:"@expense-metric" ygotAnnotation:"true"`
	Prefix         *string                                                                                                                                                                                `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix        []ygot.Annotation                                                                                                                                                                      `path:"@prefix" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) IsYANGGoStruct() {
}

// GetOrCreateDefaultMetric retrieves the value of the DefaultMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetOrCreateDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric {
	if t.DefaultMetric != nil {
		return t.DefaultMetric
	}
	t.DefaultMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric{}
	return t.DefaultMetric
}

// GetOrCreateDelayMetric retrieves the value of the DelayMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetOrCreateDelayMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric {
	if t.DelayMetric != nil {
		return t.DelayMetric
	}
	t.DelayMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric{}
	return t.DelayMetric
}

// GetOrCreateErrorMetric retrieves the value of the ErrorMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetOrCreateErrorMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric {
	if t.ErrorMetric != nil {
		return t.ErrorMetric
	}
	t.ErrorMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric{}
	return t.ErrorMetric
}

// GetOrCreateExpenseMetric retrieves the value of the ExpenseMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetOrCreateExpenseMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric {
	if t.ExpenseMetric != nil {
		return t.ExpenseMetric
	}
	t.ExpenseMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric{}
	return t.ExpenseMetric
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State{}
	return t.State
}

// GetDefaultMetric returns the value of the DefaultMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix. If the receiver or the field DefaultMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric {
	if t != nil && t.DefaultMetric != nil {
		return t.DefaultMetric
	}
	return nil
}

// GetDelayMetric returns the value of the DelayMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix. If the receiver or the field DelayMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetDelayMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric {
	if t != nil && t.DelayMetric != nil {
		return t.DelayMetric
	}
	return nil
}

// GetErrorMetric returns the value of the ErrorMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix. If the receiver or the field ErrorMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetErrorMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric {
	if t != nil && t.ErrorMetric != nil {
		return t.ErrorMetric
	}
	return nil
}

// GetExpenseMetric returns the value of the ExpenseMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix. If the receiver or the field ExpenseMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetExpenseMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric {
	if t != nil && t.ExpenseMetric != nil {
		return t.ExpenseMetric
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.DefaultMetric.PopulateDefaults()
	t.DelayMetric.PopulateDefaults()
	t.ErrorMetric.PopulateDefaults()
	t.ExpenseMetric.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/default-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/default-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Flags     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                   `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                                                                                                                                                                                              `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                                                                                                                                                                                   `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) GetFlags() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags {
	if t == nil || t.Flags == 0 {
		return 0
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/delay-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/delay-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DelayMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/error-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/error-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ErrorMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/expense-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/expense-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_ExpenseMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Prefix    *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
	UpDown    *bool             `path:"up-down" module:"openconfig-network-instance"`
	ΛUpDown   []ygot.Annotation `path:"@up-down" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) IsYANGGoStruct() {
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetUpDown retrieves the value of the leaf UpDown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDown is set, it can
// safely use t.GetUpDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) GetUpDown() bool {
	if t == nil || t.UpDown == nil {
		return false
	}
	return *t.UpDown
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-interface-addresses YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-interface-addresses/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InterfaceAddresses_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Prefixes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes `path:"prefixes" module:"openconfig-network-instance"`
	ΛPrefixes []ygot.Annotation                                                                                                                                                 `path:"@prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) IsYANGGoStruct() {
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) GetOrCreatePrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes{}
	return t.Prefixes
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) GetPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Prefixes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Prefix    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                                   `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) IsYANGGoStruct() {
}

// NewPrefix creates a new entry in the Prefix list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) NewPrefix(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Prefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Prefix", key)
	}

	t.Prefix[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix{
		Prefix: &Prefix,
	}

	return t.Prefix[key], nil
}

// RenamePrefix renames an entry in the list Prefix within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) RenamePrefix(oldK, newK string) error {
	if _, ok := t.Prefix[newK]; ok {
		return fmt.Errorf("key %v already exists in Prefix", newK)
	}

	e, ok := t.Prefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Prefix", oldK)
	}
	e.Prefix = &newK

	t.Prefix[newK] = e
	delete(t.Prefix, oldK)
	return nil
}

// GetOrCreatePrefixMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) GetOrCreatePrefixMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix {
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix)
	}
	return t.Prefix
}

// GetOrCreatePrefix retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) GetOrCreatePrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix {

	key := Prefix

	if v, ok := t.Prefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefix(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefix got unexpected error: %v", err))
	}
	return v
}

// GetPrefix retrieves the value with the specified key from
// the Prefix map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) GetPrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Prefix[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefix appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix struct to the
// list Prefix of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) AppendPrefix(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix)
	}

	if _, ok := t.Prefix[key]; ok {
		return fmt.Errorf("duplicate key for list Prefix %v", key)
	}

	t.Prefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Prefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	DefaultMetric  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric `path:"default-metric" module:"openconfig-network-instance"`
	ΛDefaultMetric []ygot.Annotation                                                                                                                                                                      `path:"@default-metric" ygotAnnotation:"true"`
	DelayMetric    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric   `path:"delay-metric" module:"openconfig-network-instance"`
	ΛDelayMetric   []ygot.Annotation                                                                                                                                                                      `path:"@delay-metric" ygotAnnotation:"true"`
	ErrorMetric    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric   `path:"error-metric" module:"openconfig-network-instance"`
	ΛErrorMetric   []ygot.Annotation                                                                                                                                                                      `path:"@error-metric" ygotAnnotation:"true"`
	ExpenseMetric  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric `path:"expense-metric" module:"openconfig-network-instance"`
	ΛExpenseMetric []ygot.Annotation                                                                                                                                                                      `path:"@expense-metric" ygotAnnotation:"true"`
	Prefix         *string                                                                                                                                                                                `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix        []ygot.Annotation                                                                                                                                                                      `path:"@prefix" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) IsYANGGoStruct() {
}

// GetOrCreateDefaultMetric retrieves the value of the DefaultMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetOrCreateDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric {
	if t.DefaultMetric != nil {
		return t.DefaultMetric
	}
	t.DefaultMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric{}
	return t.DefaultMetric
}

// GetOrCreateDelayMetric retrieves the value of the DelayMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetOrCreateDelayMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric {
	if t.DelayMetric != nil {
		return t.DelayMetric
	}
	t.DelayMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric{}
	return t.DelayMetric
}

// GetOrCreateErrorMetric retrieves the value of the ErrorMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetOrCreateErrorMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric {
	if t.ErrorMetric != nil {
		return t.ErrorMetric
	}
	t.ErrorMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric{}
	return t.ErrorMetric
}

// GetOrCreateExpenseMetric retrieves the value of the ExpenseMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetOrCreateExpenseMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric {
	if t.ExpenseMetric != nil {
		return t.ExpenseMetric
	}
	t.ExpenseMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric{}
	return t.ExpenseMetric
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State{}
	return t.State
}

// GetDefaultMetric returns the value of the DefaultMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix. If the receiver or the field DefaultMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric {
	if t != nil && t.DefaultMetric != nil {
		return t.DefaultMetric
	}
	return nil
}

// GetDelayMetric returns the value of the DelayMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix. If the receiver or the field DelayMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetDelayMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric {
	if t != nil && t.DelayMetric != nil {
		return t.DelayMetric
	}
	return nil
}

// GetErrorMetric returns the value of the ErrorMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix. If the receiver or the field ErrorMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetErrorMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric {
	if t != nil && t.ErrorMetric != nil {
		return t.ErrorMetric
	}
	return nil
}

// GetExpenseMetric returns the value of the ExpenseMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix. If the receiver or the field ExpenseMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetExpenseMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric {
	if t != nil && t.ExpenseMetric != nil {
		return t.ExpenseMetric
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.DefaultMetric.PopulateDefaults()
	t.DelayMetric.PopulateDefaults()
	t.ErrorMetric.PopulateDefaults()
	t.ExpenseMetric.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/default-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/default-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Flags     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                   `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                                                                                                                                                                                              `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                                                                                                                                                                                   `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) GetFlags() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags {
	if t == nil || t.Flags == 0 {
		return 0
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DefaultMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/delay-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/delay-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_DelayMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/error-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/error-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ErrorMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/expense-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/expense-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_ExpenseMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Prefix    *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
	UpDown    *bool             `path:"up-down" module:"openconfig-network-instance"`
	ΛUpDown   []ygot.Annotation `path:"@up-down" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) IsYANGGoStruct() {
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetUpDown retrieves the value of the leaf UpDown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDown is set, it can
// safely use t.GetUpDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) GetUpDown() bool {
	if t == nil || t.UpDown == nil {
		return false
	}
	return *t.UpDown
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4InternalReachability_Prefixes_Prefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-srlgs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Ipv4Srlg  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg `path:"ipv4-srlg" module:"openconfig-network-instance"`
	ΛIpv4Srlg []ygot.Annotation                                                                                                                                             `path:"@ipv4-srlg" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) IsYANGGoStruct() {
}

// NewIpv4Srlg creates a new entry in the Ipv4Srlg list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) NewIpv4Srlg(InstanceNumber uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv4Srlg == nil {
		t.Ipv4Srlg = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg)
	}

	key := InstanceNumber

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Ipv4Srlg[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Ipv4Srlg", key)
	}

	t.Ipv4Srlg[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg{
		InstanceNumber: &InstanceNumber,
	}

	return t.Ipv4Srlg[key], nil
}

// RenameIpv4Srlg renames an entry in the list Ipv4Srlg within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) RenameIpv4Srlg(oldK, newK uint32) error {
	if _, ok := t.Ipv4Srlg[newK]; ok {
		return fmt.Errorf("key %v already exists in Ipv4Srlg", newK)
	}

	e, ok := t.Ipv4Srlg[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Ipv4Srlg", oldK)
	}
	e.InstanceNumber = &newK

	t.Ipv4Srlg[newK] = e
	delete(t.Ipv4Srlg, oldK)
	return nil
}

// GetOrCreateIpv4SrlgMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) GetOrCreateIpv4SrlgMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg {
	if t.Ipv4Srlg == nil {
		t.Ipv4Srlg = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg)
	}
	return t.Ipv4Srlg
}

// GetOrCreateIpv4Srlg retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) GetOrCreateIpv4Srlg(InstanceNumber uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg {

	key := InstanceNumber

	if v, ok := t.Ipv4Srlg[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIpv4Srlg(InstanceNumber)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIpv4Srlg got unexpected error: %v", err))
	}
	return v
}

// GetIpv4Srlg retrieves the value with the specified key from
// the Ipv4Srlg map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) GetIpv4Srlg(InstanceNumber uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg {

	if t == nil {
		return nil
	}

	key := InstanceNumber

	if lm, ok := t.Ipv4Srlg[key]; ok {
		return lm
	}
	return nil
}

// AppendIpv4Srlg appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg struct to the
// list Ipv4Srlg of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) AppendIpv4Srlg(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) error {
	if v.InstanceNumber == nil {
		return fmt.Errorf("invalid nil key received for InstanceNumber")
	}

	key := *v.InstanceNumber

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv4Srlg == nil {
		t.Ipv4Srlg = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg)
	}

	if _, ok := t.Ipv4Srlg[key]; ok {
		return fmt.Errorf("duplicate key for list Ipv4Srlg %v", key)
	}

	t.Ipv4Srlg[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Ipv4Srlg {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-srlgs/ipv4-srlg YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	InstanceNumber  *uint32                                                                                                                                                  `path:"instance-number" module:"openconfig-network-instance"`
	ΛInstanceNumber []ygot.Annotation                                                                                                                                        `path:"@instance-number" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInstanceNumber retrieves the value of the leaf InstanceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceNumber is set, it can
// safely use t.GetInstanceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) GetInstanceNumber() uint32 {
	if t == nil || t.InstanceNumber == nil {
		return 0
	}
	return *t.InstanceNumber
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InstanceNumber == nil {
		return nil, fmt.Errorf("nil value for key InstanceNumber")
	}

	return map[string]interface{}{
		"instance-number": *t.InstanceNumber,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-srlgs/ipv4-srlg/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State struct {
	ΛMetadata             []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Flags                 []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags                []ygot.Annotation                                                                                                                                                 `path:"@flags" ygotAnnotation:"true"`
	InstanceNumber        *uint32                                                                                                                                                           `path:"instance-number" module:"openconfig-network-instance"`
	ΛInstanceNumber       []ygot.Annotation                                                                                                                                                 `path:"@instance-number" ygotAnnotation:"true"`
	Ipv4InterfaceAddress  *string                                                                                                                                                           `path:"ipv4-interface-address" module:"openconfig-network-instance"`
	ΛIpv4InterfaceAddress []ygot.Annotation                                                                                                                                                 `path:"@ipv4-interface-address" ygotAnnotation:"true"`
	Ipv4NeighborAddress   *string                                                                                                                                                           `path:"ipv4-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv4NeighborAddress  []ygot.Annotation                                                                                                                                                 `path:"@ipv4-neighbor-address" ygotAnnotation:"true"`
	PsnNumber             *uint8                                                                                                                                                            `path:"psn-number" module:"openconfig-network-instance"`
	ΛPsnNumber            []ygot.Annotation                                                                                                                                                 `path:"@psn-number" ygotAnnotation:"true"`
	SrlgValue             []uint32                                                                                                                                                          `path:"srlg-value" module:"openconfig-network-instance"`
	ΛSrlgValue            []ygot.Annotation                                                                                                                                                 `path:"@srlg-value" ygotAnnotation:"true"`
	SystemId              *string                                                                                                                                                           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId             []ygot.Annotation                                                                                                                                                 `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetInstanceNumber retrieves the value of the leaf InstanceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceNumber is set, it can
// safely use t.GetInstanceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) GetInstanceNumber() uint32 {
	if t == nil || t.InstanceNumber == nil {
		return 0
	}
	return *t.InstanceNumber
}

// GetIpv4InterfaceAddress retrieves the value of the leaf Ipv4InterfaceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv4InterfaceAddress is set, it can
// safely use t.GetIpv4InterfaceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv4InterfaceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) GetIpv4InterfaceAddress() string {
	if t == nil || t.Ipv4InterfaceAddress == nil {
		return ""
	}
	return *t.Ipv4InterfaceAddress
}

// GetIpv4NeighborAddress retrieves the value of the leaf Ipv4NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv4NeighborAddress is set, it can
// safely use t.GetIpv4NeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv4NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) GetIpv4NeighborAddress() string {
	if t == nil || t.Ipv4NeighborAddress == nil {
		return ""
	}
	return *t.Ipv4NeighborAddress
}

// GetPsnNumber retrieves the value of the leaf PsnNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PsnNumber is set, it can
// safely use t.GetPsnNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PsnNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) GetPsnNumber() uint8 {
	if t == nil || t.PsnNumber == nil {
		return 0
	}
	return *t.PsnNumber
}

// GetSrlgValue retrieves the value of the leaf SrlgValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrlgValue is set, it can
// safely use t.GetSrlgValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrlgValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) GetSrlgValue() []uint32 {
	if t == nil || t.SrlgValue == nil {
		return nil
	}
	return t.SrlgValue
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-te-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-te-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RouterId  []string          `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation `path:"@router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State) GetRouterId() []string {
	if t == nil || t.RouterId == nil {
		return nil
	}
	return t.RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4TeRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-interface-addresses YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-interface-addresses/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6InterfaceAddresses_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability struct {
	ΛMetadata []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Prefixes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes `path:"prefixes" module:"openconfig-network-instance"`
	ΛPrefixes []ygot.Annotation                                                                                                                                         `path:"@prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) IsYANGGoStruct() {
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) GetOrCreatePrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes{}
	return t.Prefixes
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) GetPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Prefixes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Prefix    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                           `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) IsYANGGoStruct() {
}

// NewPrefix creates a new entry in the Prefix list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) NewPrefix(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Prefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Prefix", key)
	}

	t.Prefix[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix{
		Prefix: &Prefix,
	}

	return t.Prefix[key], nil
}

// RenamePrefix renames an entry in the list Prefix within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) RenamePrefix(oldK, newK string) error {
	if _, ok := t.Prefix[newK]; ok {
		return fmt.Errorf("key %v already exists in Prefix", newK)
	}

	e, ok := t.Prefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Prefix", oldK)
	}
	e.Prefix = &newK

	t.Prefix[newK] = e
	delete(t.Prefix, oldK)
	return nil
}

// GetOrCreatePrefixMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) GetOrCreatePrefixMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix {
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix)
	}
	return t.Prefix
}

// GetOrCreatePrefix retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) GetOrCreatePrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix {

	key := Prefix

	if v, ok := t.Prefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefix(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefix got unexpected error: %v", err))
	}
	return v
}

// GetPrefix retrieves the value with the specified key from
// the Prefix map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) GetPrefix(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Prefix[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefix appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix struct to the
// list Prefix of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) AppendPrefix(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix)
	}

	if _, ok := t.Prefix[key]; ok {
		return fmt.Errorf("duplicate key for list Prefix %v", key)
	}

	t.Prefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Prefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Prefix            *string                                                                                                                                                                           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix           []ygot.Annotation                                                                                                                                                                 `path:"@prefix" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                 `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                 `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	Prefix    *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
	SBit      *bool             `path:"s-bit" module:"openconfig-network-instance"`
	ΛSBit     []ygot.Annotation `path:"@s-bit" ygotAnnotation:"true"`
	UpDown    *bool             `path:"up-down" module:"openconfig-network-instance"`
	ΛUpDown   []ygot.Annotation `path:"@up-down" ygotAnnotation:"true"`
	XBit      *bool             `path:"x-bit" module:"openconfig-network-instance"`
	ΛXBit     []ygot.Annotation `path:"@x-bit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSBit retrieves the value of the leaf SBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SBit is set, it can
// safely use t.GetSBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) GetSBit() bool {
	if t == nil || t.SBit == nil {
		return false
	}
	return *t.SBit
}

// GetUpDown retrieves the value of the leaf UpDown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDown is set, it can
// safely use t.GetUpDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) GetUpDown() bool {
	if t == nil || t.UpDown == nil {
		return false
	}
	return *t.UpDown
}

// GetXBit retrieves the value of the leaf XBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if XBit is set, it can
// safely use t.GetXBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.XBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) GetXBit() bool {
	if t == nil || t.XBit == nil {
		return false
	}
	return *t.XBit
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                              `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Flags               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags              `path:"flags" module:"openconfig-network-instance"`
	ΛFlags              []ygot.Annotation                                                                                                                                                                                  `path:"@flags" ygotAnnotation:"true"`
	Ipv4SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId `path:"ipv4-source-router-id" module:"openconfig-network-instance"`
	ΛIpv4SourceRouterId []ygot.Annotation                                                                                                                                                                                  `path:"@ipv4-source-router-id" ygotAnnotation:"true"`
	Ipv6SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId `path:"ipv6-source-router-id" module:"openconfig-network-instance"`
	ΛIpv6SourceRouterId []ygot.Annotation                                                                                                                                                                                  `path:"@ipv6-source-router-id" ygotAnnotation:"true"`
	PrefixSids          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids         `path:"prefix-sids" module:"openconfig-network-instance"`
	ΛPrefixSids         []ygot.Annotation                                                                                                                                                                                  `path:"@prefix-sids" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Tag                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag                `path:"tag" module:"openconfig-network-instance"`
	ΛTag                []ygot.Annotation                                                                                                                                                                                  `path:"@tag" ygotAnnotation:"true"`
	Tag64               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64              `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64              []ygot.Annotation                                                                                                                                                                                  `path:"@tag64" ygotAnnotation:"true"`
	Type                E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                         `path:"type" module:"openconfig-network-instance"`
	ΛType               []ygot.Annotation                                                                                                                                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateFlags retrieves the value of the Flags field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t.Flags != nil {
		return t.Flags
	}
	t.Flags = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags{}
	return t.Flags
}

// GetOrCreateIpv4SourceRouterId retrieves the value of the Ipv4SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	t.Ipv4SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId{}
	return t.Ipv4SourceRouterId
}

// GetOrCreateIpv6SourceRouterId retrieves the value of the Ipv6SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	t.Ipv6SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId{}
	return t.Ipv6SourceRouterId
}

// GetOrCreatePrefixSids retrieves the value of the PrefixSids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreatePrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t.PrefixSids != nil {
		return t.PrefixSids
	}
	t.PrefixSids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids{}
	return t.PrefixSids
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTag retrieves the value of the Tag field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t.Tag != nil {
		return t.Tag
	}
	t.Tag = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag{}
	return t.Tag
}

// GetOrCreateTag64 retrieves the value of the Tag64 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t.Tag64 != nil {
		return t.Tag64
	}
	t.Tag64 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64{}
	return t.Tag64
}

// GetFlags returns the value of the Flags struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Flags is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t != nil && t.Flags != nil {
		return t.Flags
	}
	return nil
}

// GetIpv4SourceRouterId returns the value of the Ipv4SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv4SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t != nil && t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	return nil
}

// GetIpv6SourceRouterId returns the value of the Ipv6SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv6SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t != nil && t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	return nil
}

// GetPrefixSids returns the value of the PrefixSids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field PrefixSids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetPrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t != nil && t.PrefixSids != nil {
		return t.PrefixSids
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTag returns the value of the Tag struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t != nil && t.Tag != nil {
		return t.Tag
	}
	return nil
}

// GetTag64 returns the value of the Tag64 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag64 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t != nil && t.Tag64 != nil {
		return t.Tag64
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Flags.PopulateDefaults()
	t.Ipv4SourceRouterId.PopulateDefaults()
	t.Ipv6SourceRouterId.PopulateDefaults()
	t.PrefixSids.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Tag.PopulateDefaults()
	t.Tag64.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                            `path:"@flags" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                   `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	PrefixSid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid `path:"prefix-sid" module:"openconfig-network-instance"`
	ΛPrefixSid []ygot.Annotation                                                                                                                                                                                               `path:"@prefix-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) IsYANGGoStruct() {
}

// NewPrefixSid creates a new entry in the PrefixSid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) NewPrefixSid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PrefixSid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PrefixSid", key)
	}

	t.PrefixSid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid{
		Value: &Value,
	}

	return t.PrefixSid[key], nil
}

// RenamePrefixSid renames an entry in the list PrefixSid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) RenamePrefixSid(oldK, newK uint32) error {
	if _, ok := t.PrefixSid[newK]; ok {
		return fmt.Errorf("key %v already exists in PrefixSid", newK)
	}

	e, ok := t.PrefixSid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PrefixSid", oldK)
	}
	e.Value = &newK

	t.PrefixSid[newK] = e
	delete(t.PrefixSid, oldK)
	return nil
}

// GetOrCreatePrefixSidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}
	return t.PrefixSid
}

// GetOrCreatePrefixSid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	key := Value

	if v, ok := t.PrefixSid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefixSid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefixSid got unexpected error: %v", err))
	}
	return v
}

// GetPrefixSid retrieves the value with the specified key from
// the PrefixSid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetPrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.PrefixSid[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefixSid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct to the
// list PrefixSid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) AppendPrefixSid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	if _, ok := t.PrefixSid[key]; ok {
		return fmt.Errorf("duplicate key for list PrefixSid %v", key)
	}

	t.PrefixSid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PrefixSid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                    `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                          `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Algorithm  *uint8                                                                                                                                                                                                                      `path:"algorithm" module:"openconfig-network-instance"`
	ΛAlgorithm []ygot.Annotation                                                                                                                                                                                                           `path:"@algorithm" ygotAnnotation:"true"`
	Flags      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags     []ygot.Annotation                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	Value      *uint32                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue     []ygot.Annotation                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) IsYANGGoStruct() {
}

// GetAlgorithm retrieves the value of the leaf Algorithm from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Algorithm is set, it can
// safely use t.GetAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Algorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetAlgorithm() uint8 {
	if t == nil || t.Algorithm == nil {
		return 0
	}
	return *t.Algorithm
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag64 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag64/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag64     []uint64          `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64    []ygot.Annotation `path:"@tag64" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) IsYANGGoStruct() {
}

// GetTag64 retrieves the value of the leaf Tag64 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag64 is set, it can
// safely use t.GetTag64() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag64 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) GetTag64() []uint64 {
	if t == nil || t.Tag64 == nil {
		return nil
	}
	return t.Tag64
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag32     []uint32          `path:"tag32" module:"openconfig-network-instance"`
	ΛTag32    []ygot.Annotation `path:"@tag32" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) IsYANGGoStruct() {
}

// GetTag32 retrieves the value of the leaf Tag32 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag32 is set, it can
// safely use t.GetTag32() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag32 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) GetTag32() []uint32 {
	if t == nil || t.Tag32 == nil {
		return nil
	}
	return t.Tag32
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                           `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                  `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                       `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-srlgs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Ipv6Srlg  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg `path:"ipv6-srlg" module:"openconfig-network-instance"`
	ΛIpv6Srlg []ygot.Annotation                                                                                                                                             `path:"@ipv6-srlg" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) IsYANGGoStruct() {
}

// NewIpv6Srlg creates a new entry in the Ipv6Srlg list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) NewIpv6Srlg(InstanceNumber uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv6Srlg == nil {
		t.Ipv6Srlg = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg)
	}

	key := InstanceNumber

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Ipv6Srlg[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Ipv6Srlg", key)
	}

	t.Ipv6Srlg[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg{
		InstanceNumber: &InstanceNumber,
	}

	return t.Ipv6Srlg[key], nil
}

// RenameIpv6Srlg renames an entry in the list Ipv6Srlg within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) RenameIpv6Srlg(oldK, newK uint32) error {
	if _, ok := t.Ipv6Srlg[newK]; ok {
		return fmt.Errorf("key %v already exists in Ipv6Srlg", newK)
	}

	e, ok := t.Ipv6Srlg[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Ipv6Srlg", oldK)
	}
	e.InstanceNumber = &newK

	t.Ipv6Srlg[newK] = e
	delete(t.Ipv6Srlg, oldK)
	return nil
}

// GetOrCreateIpv6SrlgMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) GetOrCreateIpv6SrlgMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg {
	if t.Ipv6Srlg == nil {
		t.Ipv6Srlg = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg)
	}
	return t.Ipv6Srlg
}

// GetOrCreateIpv6Srlg retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) GetOrCreateIpv6Srlg(InstanceNumber uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg {

	key := InstanceNumber

	if v, ok := t.Ipv6Srlg[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewIpv6Srlg(InstanceNumber)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateIpv6Srlg got unexpected error: %v", err))
	}
	return v
}

// GetIpv6Srlg retrieves the value with the specified key from
// the Ipv6Srlg map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) GetIpv6Srlg(InstanceNumber uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg {

	if t == nil {
		return nil
	}

	key := InstanceNumber

	if lm, ok := t.Ipv6Srlg[key]; ok {
		return lm
	}
	return nil
}

// AppendIpv6Srlg appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg struct to the
// list Ipv6Srlg of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) AppendIpv6Srlg(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) error {
	if v.InstanceNumber == nil {
		return fmt.Errorf("invalid nil key received for InstanceNumber")
	}

	key := *v.InstanceNumber

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Ipv6Srlg == nil {
		t.Ipv6Srlg = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg)
	}

	if _, ok := t.Ipv6Srlg[key]; ok {
		return fmt.Errorf("duplicate key for list Ipv6Srlg %v", key)
	}

	t.Ipv6Srlg[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Ipv6Srlg {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-srlgs/ipv6-srlg YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	InstanceNumber  *uint32                                                                                                                                                  `path:"instance-number" module:"openconfig-network-instance"`
	ΛInstanceNumber []ygot.Annotation                                                                                                                                        `path:"@instance-number" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInstanceNumber retrieves the value of the leaf InstanceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceNumber is set, it can
// safely use t.GetInstanceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) GetInstanceNumber() uint32 {
	if t == nil || t.InstanceNumber == nil {
		return 0
	}
	return *t.InstanceNumber
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InstanceNumber == nil {
		return nil, fmt.Errorf("nil value for key InstanceNumber")
	}

	return map[string]interface{}{
		"instance-number": *t.InstanceNumber,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-srlgs/ipv6-srlg/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State struct {
	ΛMetadata             []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Flags                 []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags                []ygot.Annotation                                                                                                                                                 `path:"@flags" ygotAnnotation:"true"`
	InstanceNumber        *uint32                                                                                                                                                           `path:"instance-number" module:"openconfig-network-instance"`
	ΛInstanceNumber       []ygot.Annotation                                                                                                                                                 `path:"@instance-number" ygotAnnotation:"true"`
	Ipv6InterfaceAddress  *string                                                                                                                                                           `path:"ipv6-interface-address" module:"openconfig-network-instance"`
	ΛIpv6InterfaceAddress []ygot.Annotation                                                                                                                                                 `path:"@ipv6-interface-address" ygotAnnotation:"true"`
	Ipv6NeighborAddress   *string                                                                                                                                                           `path:"ipv6-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv6NeighborAddress  []ygot.Annotation                                                                                                                                                 `path:"@ipv6-neighbor-address" ygotAnnotation:"true"`
	PsnNumber             *uint8                                                                                                                                                            `path:"psn-number" module:"openconfig-network-instance"`
	ΛPsnNumber            []ygot.Annotation                                                                                                                                                 `path:"@psn-number" ygotAnnotation:"true"`
	SrlgValue             []uint32                                                                                                                                                          `path:"srlg-value" module:"openconfig-network-instance"`
	ΛSrlgValue            []ygot.Annotation                                                                                                                                                 `path:"@srlg-value" ygotAnnotation:"true"`
	SystemId              *string                                                                                                                                                           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId             []ygot.Annotation                                                                                                                                                 `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetInstanceNumber retrieves the value of the leaf InstanceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceNumber is set, it can
// safely use t.GetInstanceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) GetInstanceNumber() uint32 {
	if t == nil || t.InstanceNumber == nil {
		return 0
	}
	return *t.InstanceNumber
}

// GetIpv6InterfaceAddress retrieves the value of the leaf Ipv6InterfaceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6InterfaceAddress is set, it can
// safely use t.GetIpv6InterfaceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6InterfaceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) GetIpv6InterfaceAddress() string {
	if t == nil || t.Ipv6InterfaceAddress == nil {
		return ""
	}
	return *t.Ipv6InterfaceAddress
}

// GetIpv6NeighborAddress retrieves the value of the leaf Ipv6NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6NeighborAddress is set, it can
// safely use t.GetIpv6NeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) GetIpv6NeighborAddress() string {
	if t == nil || t.Ipv6NeighborAddress == nil {
		return ""
	}
	return *t.Ipv6NeighborAddress
}

// GetPsnNumber retrieves the value of the leaf PsnNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PsnNumber is set, it can
// safely use t.GetPsnNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PsnNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) GetPsnNumber() uint8 {
	if t == nil || t.PsnNumber == nil {
		return 0
	}
	return *t.PsnNumber
}

// GetSrlgValue retrieves the value of the leaf SrlgValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrlgValue is set, it can
// safely use t.GetSrlgValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrlgValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) GetSrlgValue() []uint32 {
	if t == nil || t.SrlgValue == nil {
		return nil
	}
	return t.SrlgValue
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-te-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-te-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RouterId  []string          `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation `path:"@router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State) GetRouterId() []string {
	if t == nil || t.RouterId == nil {
		return nil
	}
	return t.RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6TeRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-alias-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-alias-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AliasId   *string           `path:"alias-id" module:"openconfig-network-instance"`
	ΛAliasId  []ygot.Annotation `path:"@alias-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State) IsYANGGoStruct() {
}

// GetAliasId retrieves the value of the leaf AliasId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AliasId is set, it can
// safely use t.GetAliasId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AliasId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State) GetAliasId() string {
	if t == nil || t.AliasId == nil {
		return ""
	}
	return *t.AliasId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsAliasId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                                                        `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) IsYANGGoStruct() {
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors{}
	return t.Neighbors
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                                            `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) NewNeighbor(SystemId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor)
	}

	key := SystemId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor{
		SystemId: &SystemId,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.SystemId = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) GetOrCreateNeighbor(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor {

	key := SystemId

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(SystemId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) GetNeighbor(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := SystemId

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) error {
	if v.SystemId == nil {
		return fmt.Errorf("invalid nil key received for SystemId")
	}

	key := *v.SystemId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	DefaultMetric  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric `path:"default-metric" module:"openconfig-network-instance"`
	ΛDefaultMetric []ygot.Annotation                                                                                                                                                               `path:"@default-metric" ygotAnnotation:"true"`
	DelayMetric    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric   `path:"delay-metric" module:"openconfig-network-instance"`
	ΛDelayMetric   []ygot.Annotation                                                                                                                                                               `path:"@delay-metric" ygotAnnotation:"true"`
	ErrorMetric    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric   `path:"error-metric" module:"openconfig-network-instance"`
	ΛErrorMetric   []ygot.Annotation                                                                                                                                                               `path:"@error-metric" ygotAnnotation:"true"`
	ExpenseMetric  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric `path:"expense-metric" module:"openconfig-network-instance"`
	ΛExpenseMetric []ygot.Annotation                                                                                                                                                               `path:"@expense-metric" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
	SystemId       *string                                                                                                                                                                         `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId      []ygot.Annotation                                                                                                                                                               `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateDefaultMetric retrieves the value of the DefaultMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetOrCreateDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric {
	if t.DefaultMetric != nil {
		return t.DefaultMetric
	}
	t.DefaultMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric{}
	return t.DefaultMetric
}

// GetOrCreateDelayMetric retrieves the value of the DelayMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetOrCreateDelayMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric {
	if t.DelayMetric != nil {
		return t.DelayMetric
	}
	t.DelayMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric{}
	return t.DelayMetric
}

// GetOrCreateErrorMetric retrieves the value of the ErrorMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetOrCreateErrorMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric {
	if t.ErrorMetric != nil {
		return t.ErrorMetric
	}
	t.ErrorMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric{}
	return t.ErrorMetric
}

// GetOrCreateExpenseMetric retrieves the value of the ExpenseMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetOrCreateExpenseMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric {
	if t.ExpenseMetric != nil {
		return t.ExpenseMetric
	}
	t.ExpenseMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric{}
	return t.ExpenseMetric
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State{}
	return t.State
}

// GetDefaultMetric returns the value of the DefaultMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor. If the receiver or the field DefaultMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric {
	if t != nil && t.DefaultMetric != nil {
		return t.DefaultMetric
	}
	return nil
}

// GetDelayMetric returns the value of the DelayMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor. If the receiver or the field DelayMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetDelayMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric {
	if t != nil && t.DelayMetric != nil {
		return t.DelayMetric
	}
	return nil
}

// GetErrorMetric returns the value of the ErrorMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor. If the receiver or the field ErrorMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetErrorMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric {
	if t != nil && t.ErrorMetric != nil {
		return t.ErrorMetric
	}
	return nil
}

// GetExpenseMetric returns the value of the ExpenseMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor. If the receiver or the field ExpenseMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetExpenseMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric {
	if t != nil && t.ExpenseMetric != nil {
		return t.ExpenseMetric
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.DefaultMetric.PopulateDefaults()
	t.DelayMetric.PopulateDefaults()
	t.ErrorMetric.PopulateDefaults()
	t.ExpenseMetric.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SystemId == nil {
		return nil, fmt.Errorf("nil value for key SystemId")
	}

	return map[string]interface{}{
		"system-id": *t.SystemId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/default-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/default-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Flags     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                   `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                                                                                                                                                                                              `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                                                                                                                                                                                   `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) GetFlags() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags {
	if t == nil || t.Flags == 0 {
		return 0
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DefaultMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/delay-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/delay-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_DelayMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/error-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/error-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ErrorMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/expense-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/expense-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigIsis_IsisMetricFlags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                  `path:"@flags" ygotAnnotation:"true"`
	Metric    *uint8                             `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation                  `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) GetFlags() []E_OpenconfigIsis_IsisMetricFlags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) GetMetric() uint8 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_ExpenseMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SystemId  *string           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId []ygot.Annotation `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsReachability_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                                                               `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) IsYANGGoStruct() {
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors{}
	return t.Neighbors
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                                                   `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) NewNeighbor(SystemId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor)
	}

	key := SystemId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor{
		SystemId: &SystemId,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.SystemId = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) GetOrCreateNeighbor(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor {

	key := SystemId

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(SystemId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) GetNeighbor(SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := SystemId

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) error {
	if v.SystemId == nil {
		return fmt.Errorf("invalid nil key received for SystemId")
	}

	key := *v.SystemId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Instances  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances `path:"instances" module:"openconfig-network-instance"`
	ΛInstances []ygot.Annotation                                                                                                                                                                  `path:"@instances" ygotAnnotation:"true"`
	State      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State     `path:"state" module:"openconfig-network-instance"`
	ΛState     []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	SystemId   *string                                                                                                                                                                            `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId  []ygot.Annotation                                                                                                                                                                  `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateInstances retrieves the value of the Instances field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) GetOrCreateInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances {
	if t.Instances != nil {
		return t.Instances
	}
	t.Instances = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances{}
	return t.Instances
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State{}
	return t.State
}

// GetInstances returns the value of the Instances struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor. If the receiver or the field Instances is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) GetInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances {
	if t != nil && t.Instances != nil {
		return t.Instances
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Instances.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.SystemId == nil {
		return nil, fmt.Errorf("nil value for key SystemId")
	}

	return map[string]interface{}{
		"system-id": *t.SystemId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Instance  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance `path:"instance" module:"openconfig-network-instance"`
	ΛInstance []ygot.Annotation                                                                                                                                                                                      `path:"@instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) IsYANGGoStruct() {
}

// NewInstance creates a new entry in the Instance list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) NewInstance(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Instance[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Instance", key)
	}

	t.Instance[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance{
		Id: &Id,
	}

	return t.Instance[key], nil
}

// RenameInstance renames an entry in the list Instance within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) RenameInstance(oldK, newK uint64) error {
	if _, ok := t.Instance[newK]; ok {
		return fmt.Errorf("key %v already exists in Instance", newK)
	}

	e, ok := t.Instance[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Instance", oldK)
	}
	e.Id = &newK

	t.Instance[newK] = e
	delete(t.Instance, oldK)
	return nil
}

// GetOrCreateInstanceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) GetOrCreateInstanceMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance {
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance)
	}
	return t.Instance
}

// GetOrCreateInstance retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) GetOrCreateInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance {

	key := Id

	if v, ok := t.Instance[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInstance(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInstance got unexpected error: %v", err))
	}
	return v
}

// GetInstance retrieves the value with the specified key from
// the Instance map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) GetInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Instance[key]; ok {
		return lm
	}
	return nil
}

// AppendInstance appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance struct to the
// list Instance of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) AppendInstance(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance)
	}

	if _, ok := t.Instance[key]; ok {
		return fmt.Errorf("duplicate key for list Instance %v", key)
	}

	t.Instance[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Instance {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Id                *uint64                                                                                                                                                                                                      `path:"id" module:"openconfig-network-instance"`
	ΛId               []ygot.Annotation                                                                                                                                                                                            `path:"@id" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                                            `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                                            `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Id        *uint64           `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) IsYANGGoStruct() {
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                                                         `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	AdjacencySids               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids              `path:"adjacency-sids" module:"openconfig-network-instance"`
	ΛAdjacencySids              []ygot.Annotation                                                                                                                                                                                                                     `path:"@adjacency-sids" ygotAnnotation:"true"`
	AdminGroup                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup                 `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup                 []ygot.Annotation                                                                                                                                                                                                                     `path:"@admin-group" ygotAnnotation:"true"`
	AvailableBandwidth          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth         `path:"available-bandwidth" module:"openconfig-network-instance"`
	ΛAvailableBandwidth         []ygot.Annotation                                                                                                                                                                                                                     `path:"@available-bandwidth" ygotAnnotation:"true"`
	BandwidthConstraints        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints       `path:"bandwidth-constraints" module:"openconfig-network-instance"`
	ΛBandwidthConstraints       []ygot.Annotation                                                                                                                                                                                                                     `path:"@bandwidth-constraints" ygotAnnotation:"true"`
	ExtendedAdminGroup          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup         `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup         []ygot.Annotation                                                                                                                                                                                                                     `path:"@extended-admin-group" ygotAnnotation:"true"`
	Ipv4InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress       `path:"ipv4-interface-address" module:"openconfig-network-instance"`
	ΛIpv4InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                                     `path:"@ipv4-interface-address" ygotAnnotation:"true"`
	Ipv4NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress        `path:"ipv4-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv4NeighborAddress        []ygot.Annotation                                                                                                                                                                                                                     `path:"@ipv4-neighbor-address" ygotAnnotation:"true"`
	Ipv6InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress       `path:"ipv6-interface-address" module:"openconfig-network-instance"`
	ΛIpv6InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                                     `path:"@ipv6-interface-address" ygotAnnotation:"true"`
	Ipv6NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress        `path:"ipv6-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv6NeighborAddress        []ygot.Annotation                                                                                                                                                                                                                     `path:"@ipv6-neighbor-address" ygotAnnotation:"true"`
	LanAdjacencySids            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids           `path:"lan-adjacency-sids" module:"openconfig-network-instance"`
	ΛLanAdjacencySids           []ygot.Annotation                                                                                                                                                                                                                     `path:"@lan-adjacency-sids" ygotAnnotation:"true"`
	LinkAttributes              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes             `path:"link-attributes" module:"openconfig-network-instance"`
	ΛLinkAttributes             []ygot.Annotation                                                                                                                                                                                                                     `path:"@link-attributes" ygotAnnotation:"true"`
	LinkDelay                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay                  `path:"link-delay" module:"openconfig-network-instance"`
	ΛLinkDelay                  []ygot.Annotation                                                                                                                                                                                                                     `path:"@link-delay" ygotAnnotation:"true"`
	LinkDelayVariation          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation         `path:"link-delay-variation" module:"openconfig-network-instance"`
	ΛLinkDelayVariation         []ygot.Annotation                                                                                                                                                                                                                     `path:"@link-delay-variation" ygotAnnotation:"true"`
	LinkId                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId                     `path:"link-id" module:"openconfig-network-instance"`
	ΛLinkId                     []ygot.Annotation                                                                                                                                                                                                                     `path:"@link-id" ygotAnnotation:"true"`
	LinkLoss                    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss                   `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss                   []ygot.Annotation                                                                                                                                                                                                                     `path:"@link-loss" ygotAnnotation:"true"`
	LinkProtectionType          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType         `path:"link-protection-type" module:"openconfig-network-instance"`
	ΛLinkProtectionType         []ygot.Annotation                                                                                                                                                                                                                     `path:"@link-protection-type" ygotAnnotation:"true"`
	MaxLinkBandwidth            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth           `path:"max-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxLinkBandwidth           []ygot.Annotation                                                                                                                                                                                                                     `path:"@max-link-bandwidth" ygotAnnotation:"true"`
	MaxReservableLinkBandwidth  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth `path:"max-reservable-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxReservableLinkBandwidth []ygot.Annotation                                                                                                                                                                                                                     `path:"@max-reservable-link-bandwidth" ygotAnnotation:"true"`
	MinMaxLinkDelay             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay            `path:"min-max-link-delay" module:"openconfig-network-instance"`
	ΛMinMaxLinkDelay            []ygot.Annotation                                                                                                                                                                                                                     `path:"@min-max-link-delay" ygotAnnotation:"true"`
	ResidualBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth          `path:"residual-bandwidth" module:"openconfig-network-instance"`
	ΛResidualBandwidth          []ygot.Annotation                                                                                                                                                                                                                     `path:"@residual-bandwidth" ygotAnnotation:"true"`
	State                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State                      `path:"state" module:"openconfig-network-instance"`
	ΛState                      []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	TeDefaultMetric             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric            `path:"te-default-metric" module:"openconfig-network-instance"`
	ΛTeDefaultMetric            []ygot.Annotation                                                                                                                                                                                                                     `path:"@te-default-metric" ygotAnnotation:"true"`
	Type                        E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                                            `path:"type" module:"openconfig-network-instance"`
	ΛType                       []ygot.Annotation                                                                                                                                                                                                                     `path:"@type" ygotAnnotation:"true"`
	UnconstrainedLsp            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp           `path:"unconstrained-lsp" module:"openconfig-network-instance"`
	ΛUnconstrainedLsp           []ygot.Annotation                                                                                                                                                                                                                     `path:"@unconstrained-lsp" ygotAnnotation:"true"`
	UnreservedBandwidth         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth        `path:"unreserved-bandwidth" module:"openconfig-network-instance"`
	ΛUnreservedBandwidth        []ygot.Annotation                                                                                                                                                                                                                     `path:"@unreserved-bandwidth" ygotAnnotation:"true"`
	UtilizedBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth          `path:"utilized-bandwidth" module:"openconfig-network-instance"`
	ΛUtilizedBandwidth          []ygot.Annotation                                                                                                                                                                                                                     `path:"@utilized-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateAdjacencySids retrieves the value of the AdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	t.AdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids{}
	return t.AdjacencySids
}

// GetOrCreateAdminGroup retrieves the value of the AdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t.AdminGroup != nil {
		return t.AdminGroup
	}
	t.AdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup{}
	return t.AdminGroup
}

// GetOrCreateAvailableBandwidth retrieves the value of the AvailableBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	t.AvailableBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth{}
	return t.AvailableBandwidth
}

// GetOrCreateBandwidthConstraints retrieves the value of the BandwidthConstraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	t.BandwidthConstraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints{}
	return t.BandwidthConstraints
}

// GetOrCreateExtendedAdminGroup retrieves the value of the ExtendedAdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	t.ExtendedAdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup{}
	return t.ExtendedAdminGroup
}

// GetOrCreateIpv4InterfaceAddress retrieves the value of the Ipv4InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	t.Ipv4InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress{}
	return t.Ipv4InterfaceAddress
}

// GetOrCreateIpv4NeighborAddress retrieves the value of the Ipv4NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	t.Ipv4NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress{}
	return t.Ipv4NeighborAddress
}

// GetOrCreateIpv6InterfaceAddress retrieves the value of the Ipv6InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	t.Ipv6InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress{}
	return t.Ipv6InterfaceAddress
}

// GetOrCreateIpv6NeighborAddress retrieves the value of the Ipv6NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	t.Ipv6NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress{}
	return t.Ipv6NeighborAddress
}

// GetOrCreateLanAdjacencySids retrieves the value of the LanAdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	t.LanAdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids{}
	return t.LanAdjacencySids
}

// GetOrCreateLinkAttributes retrieves the value of the LinkAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	t.LinkAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes{}
	return t.LinkAttributes
}

// GetOrCreateLinkDelay retrieves the value of the LinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t.LinkDelay != nil {
		return t.LinkDelay
	}
	t.LinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay{}
	return t.LinkDelay
}

// GetOrCreateLinkDelayVariation retrieves the value of the LinkDelayVariation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	t.LinkDelayVariation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation{}
	return t.LinkDelayVariation
}

// GetOrCreateLinkId retrieves the value of the LinkId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t.LinkId != nil {
		return t.LinkId
	}
	t.LinkId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId{}
	return t.LinkId
}

// GetOrCreateLinkLoss retrieves the value of the LinkLoss field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t.LinkLoss != nil {
		return t.LinkLoss
	}
	t.LinkLoss = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss{}
	return t.LinkLoss
}

// GetOrCreateLinkProtectionType retrieves the value of the LinkProtectionType field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	t.LinkProtectionType = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType{}
	return t.LinkProtectionType
}

// GetOrCreateMaxLinkBandwidth retrieves the value of the MaxLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	t.MaxLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth{}
	return t.MaxLinkBandwidth
}

// GetOrCreateMaxReservableLinkBandwidth retrieves the value of the MaxReservableLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	t.MaxReservableLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth{}
	return t.MaxReservableLinkBandwidth
}

// GetOrCreateMinMaxLinkDelay retrieves the value of the MinMaxLinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	t.MinMaxLinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay{}
	return t.MinMaxLinkDelay
}

// GetOrCreateResidualBandwidth retrieves the value of the ResidualBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	t.ResidualBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth{}
	return t.ResidualBandwidth
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTeDefaultMetric retrieves the value of the TeDefaultMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	t.TeDefaultMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric{}
	return t.TeDefaultMetric
}

// GetOrCreateUnconstrainedLsp retrieves the value of the UnconstrainedLsp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	t.UnconstrainedLsp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp{}
	return t.UnconstrainedLsp
}

// GetOrCreateUnreservedBandwidth retrieves the value of the UnreservedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	t.UnreservedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth{}
	return t.UnreservedBandwidth
}

// GetOrCreateUtilizedBandwidth retrieves the value of the UtilizedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	t.UtilizedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth{}
	return t.UtilizedBandwidth
}

// GetAdjacencySids returns the value of the AdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t != nil && t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	return nil
}

// GetAdminGroup returns the value of the AdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t != nil && t.AdminGroup != nil {
		return t.AdminGroup
	}
	return nil
}

// GetAvailableBandwidth returns the value of the AvailableBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AvailableBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t != nil && t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	return nil
}

// GetBandwidthConstraints returns the value of the BandwidthConstraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field BandwidthConstraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t != nil && t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	return nil
}

// GetExtendedAdminGroup returns the value of the ExtendedAdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ExtendedAdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t != nil && t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	return nil
}

// GetIpv4InterfaceAddress returns the value of the Ipv4InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t != nil && t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	return nil
}

// GetIpv4NeighborAddress returns the value of the Ipv4NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t != nil && t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	return nil
}

// GetIpv6InterfaceAddress returns the value of the Ipv6InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t != nil && t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	return nil
}

// GetIpv6NeighborAddress returns the value of the Ipv6NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t != nil && t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	return nil
}

// GetLanAdjacencySids returns the value of the LanAdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LanAdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t != nil && t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	return nil
}

// GetLinkAttributes returns the value of the LinkAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t != nil && t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	return nil
}

// GetLinkDelay returns the value of the LinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t != nil && t.LinkDelay != nil {
		return t.LinkDelay
	}
	return nil
}

// GetLinkDelayVariation returns the value of the LinkDelayVariation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelayVariation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t != nil && t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	return nil
}

// GetLinkId returns the value of the LinkId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t != nil && t.LinkId != nil {
		return t.LinkId
	}
	return nil
}

// GetLinkLoss returns the value of the LinkLoss struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkLoss is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t != nil && t.LinkLoss != nil {
		return t.LinkLoss
	}
	return nil
}

// GetLinkProtectionType returns the value of the LinkProtectionType struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkProtectionType is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t != nil && t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	return nil
}

// GetMaxLinkBandwidth returns the value of the MaxLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t != nil && t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	return nil
}

// GetMaxReservableLinkBandwidth returns the value of the MaxReservableLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxReservableLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t != nil && t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	return nil
}

// GetMinMaxLinkDelay returns the value of the MinMaxLinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MinMaxLinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t != nil && t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	return nil
}

// GetResidualBandwidth returns the value of the ResidualBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ResidualBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t != nil && t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTeDefaultMetric returns the value of the TeDefaultMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field TeDefaultMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t != nil && t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	return nil
}

// GetUnconstrainedLsp returns the value of the UnconstrainedLsp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnconstrainedLsp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t != nil && t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	return nil
}

// GetUnreservedBandwidth returns the value of the UnreservedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnreservedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t != nil && t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	return nil
}

// GetUtilizedBandwidth returns the value of the UtilizedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UtilizedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t != nil && t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjacencySids.PopulateDefaults()
	t.AdminGroup.PopulateDefaults()
	t.AvailableBandwidth.PopulateDefaults()
	t.BandwidthConstraints.PopulateDefaults()
	t.ExtendedAdminGroup.PopulateDefaults()
	t.Ipv4InterfaceAddress.PopulateDefaults()
	t.Ipv4NeighborAddress.PopulateDefaults()
	t.Ipv6InterfaceAddress.PopulateDefaults()
	t.Ipv6NeighborAddress.PopulateDefaults()
	t.LanAdjacencySids.PopulateDefaults()
	t.LinkAttributes.PopulateDefaults()
	t.LinkDelay.PopulateDefaults()
	t.LinkDelayVariation.PopulateDefaults()
	t.LinkId.PopulateDefaults()
	t.LinkLoss.PopulateDefaults()
	t.LinkProtectionType.PopulateDefaults()
	t.MaxLinkBandwidth.PopulateDefaults()
	t.MaxReservableLinkBandwidth.PopulateDefaults()
	t.MinMaxLinkDelay.PopulateDefaults()
	t.ResidualBandwidth.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TeDefaultMetric.PopulateDefaults()
	t.UnconstrainedLsp.PopulateDefaults()
	t.UnreservedBandwidth.PopulateDefaults()
	t.UtilizedBandwidth.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid `path:"adjacency-sid" module:"openconfig-network-instance"`
	ΛAdjacencySid []ygot.Annotation                                                                                                                                                                                                                                `path:"@adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) IsYANGGoStruct() {
}

// NewAdjacencySid creates a new entry in the AdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) NewAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AdjacencySid", key)
	}

	t.AdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid{
		Value: &Value,
	}

	return t.AdjacencySid[key], nil
}

// RenameAdjacencySid renames an entry in the list AdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) RenameAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.AdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in AdjacencySid", newK)
	}

	e, ok := t.AdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AdjacencySid", oldK)
	}
	e.Value = &newK

	t.AdjacencySid[newK] = e
	delete(t.AdjacencySid, oldK)
	return nil
}

// GetOrCreateAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}
	return t.AdjacencySid
}

// GetOrCreateAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	key := Value

	if v, ok := t.AdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetAdjacencySid retrieves the value with the specified key from
// the AdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.AdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct to the
// list AdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) AppendAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	if _, ok := t.AdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list AdjacencySid %v", key)
	}

	t.AdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@flags" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                               `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@value" ygotAnnotation:"true"`
	Weight    *uint8                                                                                                                                                                                                                                                `path:"weight" module:"openconfig-network-instance"`
	ΛWeight   []ygot.Annotation                                                                                                                                                                                                                                     `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroup  []uint32          `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup []ygot.Annotation `path:"@admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) IsYANGGoStruct() {
}

// GetAdminGroup retrieves the value of the leaf AdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroup is set, it can
// safely use t.GetAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) GetAdminGroup() []uint32 {
	if t == nil || t.AdminGroup == nil {
		return nil
	}
	return t.AdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	BandwidthConstraint  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint `path:"bandwidth-constraint" module:"openconfig-network-instance"`
	ΛBandwidthConstraint []ygot.Annotation                                                                                                                                                                                                                                             `path:"@bandwidth-constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) IsYANGGoStruct() {
}

// NewBandwidthConstraint creates a new entry in the BandwidthConstraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) NewBandwidthConstraint(ModelId uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	key := ModelId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BandwidthConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BandwidthConstraint", key)
	}

	t.BandwidthConstraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint{
		ModelId: &ModelId,
	}

	return t.BandwidthConstraint[key], nil
}

// RenameBandwidthConstraint renames an entry in the list BandwidthConstraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) RenameBandwidthConstraint(oldK, newK uint8) error {
	if _, ok := t.BandwidthConstraint[newK]; ok {
		return fmt.Errorf("key %v already exists in BandwidthConstraint", newK)
	}

	e, ok := t.BandwidthConstraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in BandwidthConstraint", oldK)
	}
	e.ModelId = &newK

	t.BandwidthConstraint[newK] = e
	delete(t.BandwidthConstraint, oldK)
	return nil
}

// GetOrCreateBandwidthConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraintMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}
	return t.BandwidthConstraint
}

// GetOrCreateBandwidthConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	key := ModelId

	if v, ok := t.BandwidthConstraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewBandwidthConstraint(ModelId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateBandwidthConstraint got unexpected error: %v", err))
	}
	return v
}

// GetBandwidthConstraint retrieves the value with the specified key from
// the BandwidthConstraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	if t == nil {
		return nil
	}

	key := ModelId

	if lm, ok := t.BandwidthConstraint[key]; ok {
		return lm
	}
	return nil
}

// AppendBandwidthConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct to the
// list BandwidthConstraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) AppendBandwidthConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) error {
	if v.ModelId == nil {
		return fmt.Errorf("invalid nil key received for ModelId")
	}

	key := *v.ModelId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	if _, ok := t.BandwidthConstraint[key]; ok {
		return fmt.Errorf("duplicate key for list BandwidthConstraint %v", key)
	}

	t.BandwidthConstraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.BandwidthConstraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Constraints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints `path:"constraints" module:"openconfig-network-instance"`
	ΛConstraints []ygot.Annotation                                                                                                                                                                                                                                               `path:"@constraints" ygotAnnotation:"true"`
	ModelId      *uint8                                                                                                                                                                                                                                                          `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId     []ygot.Annotation                                                                                                                                                                                                                                               `path:"@model-id" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State       `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) IsYANGGoStruct() {
}

// GetOrCreateConstraints retrieves the value of the Constraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t.Constraints != nil {
		return t.Constraints
	}
	t.Constraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints{}
	return t.Constraints
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State{}
	return t.State
}

// GetConstraints returns the value of the Constraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field Constraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t != nil && t.Constraints != nil {
		return t.Constraints
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Constraints.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ModelId == nil {
		return nil, fmt.Errorf("nil value for key ModelId")
	}

	return map[string]interface{}{
		"model-id": *t.ModelId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Constraint  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint `path:"constraint" module:"openconfig-network-instance"`
	ΛConstraint []ygot.Annotation                                                                                                                                                                                                                                                                     `path:"@constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) IsYANGGoStruct() {
}

// NewConstraint creates a new entry in the Constraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) NewConstraint(ConstraintId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	key := ConstraintId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Constraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Constraint", key)
	}

	t.Constraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint{
		ConstraintId: &ConstraintId,
	}

	return t.Constraint[key], nil
}

// RenameConstraint renames an entry in the list Constraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) RenameConstraint(oldK, newK uint32) error {
	if _, ok := t.Constraint[newK]; ok {
		return fmt.Errorf("key %v already exists in Constraint", newK)
	}

	e, ok := t.Constraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Constraint", oldK)
	}
	e.ConstraintId = &newK

	t.Constraint[newK] = e
	delete(t.Constraint, oldK)
	return nil
}

// GetOrCreateConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraintMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}
	return t.Constraint
}

// GetOrCreateConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	key := ConstraintId

	if v, ok := t.Constraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewConstraint(ConstraintId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateConstraint got unexpected error: %v", err))
	}
	return v
}

// GetConstraint retrieves the value with the specified key from
// the Constraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	if t == nil {
		return nil
	}

	key := ConstraintId

	if lm, ok := t.Constraint[key]; ok {
		return lm
	}
	return nil
}

// AppendConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct to the
// list Constraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) AppendConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) error {
	if v.ConstraintId == nil {
		return fmt.Errorf("invalid nil key received for ConstraintId")
	}

	key := *v.ConstraintId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	if _, ok := t.Constraint[key]; ok {
		return fmt.Errorf("duplicate key for list Constraint %v", key)
	}

	t.Constraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Constraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	ConstraintId  *uint32                                                                                                                                                                                                                                                                          `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation                                                                                                                                                                                                                                                                `path:"@constraint-id" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConstraintId == nil {
		return nil, fmt.Errorf("nil value for key ConstraintId")
	}

	return map[string]interface{}{
		"constraint-id": *t.ConstraintId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth     Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth    []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	ConstraintId  *uint32           `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation `path:"@constraint-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ModelId   *uint8            `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId  []ygot.Annotation `path:"@model-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) IsYANGGoStruct() {
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedAdminGroup  []uint32          `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup []ygot.Annotation `path:"@extended-admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) IsYANGGoStruct() {
}

// GetExtendedAdminGroup retrieves the value of the leaf ExtendedAdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedAdminGroup is set, it can
// safely use t.GetExtendedAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedAdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) GetExtendedAdminGroup() []uint32 {
	if t == nil || t.ExtendedAdminGroup == nil {
		return nil
	}
	return t.ExtendedAdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	LanAdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid `path:"lan-adjacency-sid" module:"openconfig-network-instance"`
	ΛLanAdjacencySid []ygot.Annotation                                                                                                                                                                                                                                      `path:"@lan-adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) IsYANGGoStruct() {
}

// NewLanAdjacencySid creates a new entry in the LanAdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) NewLanAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LanAdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LanAdjacencySid", key)
	}

	t.LanAdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid{
		Value: &Value,
	}

	return t.LanAdjacencySid[key], nil
}

// RenameLanAdjacencySid renames an entry in the list LanAdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) RenameLanAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.LanAdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in LanAdjacencySid", newK)
	}

	e, ok := t.LanAdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in LanAdjacencySid", oldK)
	}
	e.Value = &newK

	t.LanAdjacencySid[newK] = e
	delete(t.LanAdjacencySid, oldK)
	return nil
}

// GetOrCreateLanAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}
	return t.LanAdjacencySid
}

// GetOrCreateLanAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	key := Value

	if v, ok := t.LanAdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLanAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLanAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetLanAdjacencySid retrieves the value with the specified key from
// the LanAdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.LanAdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendLanAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct to the
// list LanAdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) AppendLanAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	if _, ok := t.LanAdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list LanAdjacencySid %v", key)
	}

	t.LanAdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.LanAdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                           `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                                 `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Flags       []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	NeighborId  *string                                                                                                                                                                                                                                                     `path:"neighbor-id" module:"openconfig-network-instance"`
	ΛNeighborId []ygot.Annotation                                                                                                                                                                                                                                           `path:"@neighbor-id" ygotAnnotation:"true"`
	Value       *uint32                                                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
	Weight      *uint8                                                                                                                                                                                                                                                      `path:"weight" module:"openconfig-network-instance"`
	ΛWeight     []ygot.Annotation                                                                                                                                                                                                                                           `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetNeighborId retrieves the value of the leaf NeighborId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborId is set, it can
// safely use t.GetNeighborId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetNeighborId() string {
	if t == nil || t.NeighborId == nil {
		return ""
	}
	return *t.NeighborId
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	LocalProtection  []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection `path:"local-protection" module:"openconfig-network-instance"`
	ΛLocalProtection []ygot.Annotation                                                                                                                                                                                                                                   `path:"@local-protection" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) IsYANGGoStruct() {
}

// GetLocalProtection retrieves the value of the leaf LocalProtection from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalProtection is set, it can
// safely use t.GetLocalProtection() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalProtection == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) GetLocalProtection() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection {
	if t == nil || t.LocalProtection == nil {
		return nil
	}
	return t.LocalProtection
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) IsYANGGoStruct() {
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Local     *uint32           `path:"local" module:"openconfig-network-instance"`
	ΛLocal    []ygot.Annotation `path:"@local" ygotAnnotation:"true"`
	Remote    *uint32           `path:"remote" module:"openconfig-network-instance"`
	ΛRemote   []ygot.Annotation `path:"@remote" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) IsYANGGoStruct() {
}

// GetLocal retrieves the value of the leaf Local from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Local is set, it can
// safely use t.GetLocal() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Local == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetLocal() uint32 {
	if t == nil || t.Local == nil {
		return 0
	}
	return *t.Local
}

// GetRemote retrieves the value of the leaf Remote from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Remote is set, it can
// safely use t.GetRemote() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Remote == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetRemote() uint32 {
	if t == nil || t.Remote == nil {
		return 0
	}
	return *t.Remote
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	LinkLoss  *uint32           `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss []ygot.Annotation `path:"@link-loss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetLinkLoss retrieves the value of the leaf LinkLoss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkLoss is set, it can
// safely use t.GetLinkLoss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkLoss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetLinkLoss() uint32 {
	if t == nil || t.LinkLoss == nil {
		return 0
	}
	return *t.LinkLoss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Type      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) GetType() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	MaxDelay  *uint32           `path:"max-delay" module:"openconfig-network-instance"`
	ΛMaxDelay []ygot.Annotation `path:"@max-delay" ygotAnnotation:"true"`
	MinDelay  *uint32           `path:"min-delay" module:"openconfig-network-instance"`
	ΛMinDelay []ygot.Annotation `path:"@min-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetMaxDelay retrieves the value of the leaf MaxDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxDelay is set, it can
// safely use t.GetMaxDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMaxDelay() uint32 {
	if t == nil || t.MaxDelay == nil {
		return 0
	}
	return *t.MaxDelay
}

// GetMinDelay retrieves the value of the leaf MinDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinDelay is set, it can
// safely use t.GetMinDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMinDelay() uint32 {
	if t == nil || t.MinDelay == nil {
		return 0
	}
	return *t.MinDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Count     *uint16                                    `path:"count" module:"openconfig-network-instance"`
	ΛCount    []ygot.Annotation                          `path:"@count" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) IsYANGGoStruct() {
}

// GetCount retrieves the value of the leaf Count from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Count is set, it can
// safely use t.GetCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Count == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetCount() uint16 {
	if t == nil || t.Count == nil {
		return 0
	}
	return *t.Count
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	SetupPriority  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority []ygot.Annotation                                                                                                                                                                                                                                      `path:"@setup-priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) IsYANGGoStruct() {
}

// NewSetupPriority creates a new entry in the SetupPriority list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) NewSetupPriority(Priority uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	key := Priority

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SetupPriority[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SetupPriority", key)
	}

	t.SetupPriority[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority{
		Priority: &Priority,
	}

	return t.SetupPriority[key], nil
}

// RenameSetupPriority renames an entry in the list SetupPriority within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) RenameSetupPriority(oldK, newK uint8) error {
	if _, ok := t.SetupPriority[newK]; ok {
		return fmt.Errorf("key %v already exists in SetupPriority", newK)
	}

	e, ok := t.SetupPriority[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SetupPriority", oldK)
	}
	e.Priority = &newK

	t.SetupPriority[newK] = e
	delete(t.SetupPriority, oldK)
	return nil
}

// GetOrCreateSetupPriorityMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriorityMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}
	return t.SetupPriority
}

// GetOrCreateSetupPriority retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	key := Priority

	if v, ok := t.SetupPriority[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSetupPriority(Priority)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSetupPriority got unexpected error: %v", err))
	}
	return v
}

// GetSetupPriority retrieves the value with the specified key from
// the SetupPriority map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	if t == nil {
		return nil
	}

	key := Priority

	if lm, ok := t.SetupPriority[key]; ok {
		return lm
	}
	return nil
}

// AppendSetupPriority appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct to the
// list SetupPriority of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) AppendSetupPriority(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) error {
	if v.Priority == nil {
		return fmt.Errorf("invalid nil key received for Priority")
	}

	key := *v.Priority

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	if _, ok := t.SetupPriority[key]; ok {
		return fmt.Errorf("duplicate key for list SetupPriority %v", key)
	}

	t.SetupPriority[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SetupPriority {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Priority  *uint8                                                                                                                                                                                                                                             `path:"priority" module:"openconfig-network-instance"`
	ΛPriority []ygot.Annotation                                                                                                                                                                                                                                  `path:"@priority" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Priority == nil {
		return nil, fmt.Errorf("nil value for key Priority")
	}

	return map[string]interface{}{
		"priority": *t.Priority,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	Priority   *uint8            `path:"priority" module:"openconfig-network-instance"`
	ΛPriority  []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                                                      `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                                             `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SystemId  *string           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId []ygot.Annotation `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_IsisNeighborAttribute_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/lsp-buffer-size YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize struct {
	ΛMetadata []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/lsp-buffer-size/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Size      *uint16           `path:"size" module:"openconfig-network-instance"`
	ΛSize     []ygot.Annotation `path:"@size" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State) IsYANGGoStruct() {
}

// GetSize retrieves the value of the leaf Size from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Size is set, it can
// safely use t.GetSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Size == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State) GetSize() uint16 {
	if t == nil || t.Size == nil {
		return 0
	}
	return *t.Size
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_LspBufferSize_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability struct {
	ΛMetadata []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Prefixes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes `path:"prefixes" module:"openconfig-network-instance"`
	ΛPrefixes []ygot.Annotation                                                                                                                                           `path:"@prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) IsYANGGoStruct() {
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) GetOrCreatePrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes{}
	return t.Prefixes
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) GetPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Prefixes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Prefix    map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key represents the key for list Prefix of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key struct {
	MtId   uint16 `path:"mt-id"`
	Prefix string `path:"prefix"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"mt-id":  t.MtId,
		"prefix": t.Prefix,
	}, nil
}

// NewPrefix creates a new entry in the Prefix list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) NewPrefix(MtId uint16, Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key{
		MtId:   MtId,
		Prefix: Prefix,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Prefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Prefix", key)
	}

	t.Prefix[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix{
		MtId:   &MtId,
		Prefix: &Prefix,
	}

	return t.Prefix[key], nil
}

// RenamePrefix renames an entry in the list Prefix within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) RenamePrefix(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key) error {
	if _, ok := t.Prefix[newK]; ok {
		return fmt.Errorf("key %v already exists in Prefix", newK)
	}

	e, ok := t.Prefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Prefix", oldK)
	}
	e.MtId = &newK.MtId
	e.Prefix = &newK.Prefix

	t.Prefix[newK] = e
	delete(t.Prefix, oldK)
	return nil
}

// GetOrCreatePrefixMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) GetOrCreatePrefixMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix {
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix)
	}
	return t.Prefix
}

// GetOrCreatePrefix retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) GetOrCreatePrefix(MtId uint16, Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key{
		MtId:   MtId,
		Prefix: Prefix,
	}

	if v, ok := t.Prefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefix(MtId, Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefix got unexpected error: %v", err))
	}
	return v
}

// GetPrefix retrieves the value with the specified key from
// the Prefix map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) GetPrefix(MtId uint16, Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key{
		MtId:   MtId,
		Prefix: Prefix,
	}

	if lm, ok := t.Prefix[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefix appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix struct to the
// list Prefix of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) AppendPrefix(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) error {
	if v.MtId == nil {
		return fmt.Errorf("invalid nil key for MtId")
	}

	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key{
		MtId:   *v.MtId,
		Prefix: *v.Prefix,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix)
	}

	if _, ok := t.Prefix[key]; ok {
		return fmt.Errorf("duplicate key for list Prefix %v", key)
	}

	t.Prefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Prefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	MtId              *uint16                                                                                                                                                                             `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId             []ygot.Annotation                                                                                                                                                                   `path:"@mt-id" ygotAnnotation:"true"`
	Prefix            *string                                                                                                                                                                             `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix           []ygot.Annotation                                                                                                                                                                   `path:"@prefix" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                   `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                   `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MtId == nil {
		return nil, fmt.Errorf("nil value for key MtId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"mt-id":  *t.MtId,
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	MtId      *uint16           `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId     []ygot.Annotation `path:"@mt-id" ygotAnnotation:"true"`
	Prefix    *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
	SBit      *bool             `path:"s-bit" module:"openconfig-network-instance"`
	ΛSBit     []ygot.Annotation `path:"@s-bit" ygotAnnotation:"true"`
	UpDown    *bool             `path:"up-down" module:"openconfig-network-instance"`
	ΛUpDown   []ygot.Annotation `path:"@up-down" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSBit retrieves the value of the leaf SBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SBit is set, it can
// safely use t.GetSBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) GetSBit() bool {
	if t == nil || t.SBit == nil {
		return false
	}
	return *t.SBit
}

// GetUpDown retrieves the value of the leaf UpDown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDown is set, it can
// safely use t.GetUpDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) GetUpDown() bool {
	if t == nil || t.UpDown == nil {
		return false
	}
	return *t.UpDown
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                                `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Flags               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags              `path:"flags" module:"openconfig-network-instance"`
	ΛFlags              []ygot.Annotation                                                                                                                                                                                    `path:"@flags" ygotAnnotation:"true"`
	Ipv4SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId `path:"ipv4-source-router-id" module:"openconfig-network-instance"`
	ΛIpv4SourceRouterId []ygot.Annotation                                                                                                                                                                                    `path:"@ipv4-source-router-id" ygotAnnotation:"true"`
	Ipv6SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId `path:"ipv6-source-router-id" module:"openconfig-network-instance"`
	ΛIpv6SourceRouterId []ygot.Annotation                                                                                                                                                                                    `path:"@ipv6-source-router-id" ygotAnnotation:"true"`
	PrefixSids          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids         `path:"prefix-sids" module:"openconfig-network-instance"`
	ΛPrefixSids         []ygot.Annotation                                                                                                                                                                                    `path:"@prefix-sids" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	Tag                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag                `path:"tag" module:"openconfig-network-instance"`
	ΛTag                []ygot.Annotation                                                                                                                                                                                    `path:"@tag" ygotAnnotation:"true"`
	Tag64               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64              `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64              []ygot.Annotation                                                                                                                                                                                    `path:"@tag64" ygotAnnotation:"true"`
	Type                E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                           `path:"type" module:"openconfig-network-instance"`
	ΛType               []ygot.Annotation                                                                                                                                                                                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateFlags retrieves the value of the Flags field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t.Flags != nil {
		return t.Flags
	}
	t.Flags = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags{}
	return t.Flags
}

// GetOrCreateIpv4SourceRouterId retrieves the value of the Ipv4SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	t.Ipv4SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId{}
	return t.Ipv4SourceRouterId
}

// GetOrCreateIpv6SourceRouterId retrieves the value of the Ipv6SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	t.Ipv6SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId{}
	return t.Ipv6SourceRouterId
}

// GetOrCreatePrefixSids retrieves the value of the PrefixSids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreatePrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t.PrefixSids != nil {
		return t.PrefixSids
	}
	t.PrefixSids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids{}
	return t.PrefixSids
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTag retrieves the value of the Tag field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t.Tag != nil {
		return t.Tag
	}
	t.Tag = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag{}
	return t.Tag
}

// GetOrCreateTag64 retrieves the value of the Tag64 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t.Tag64 != nil {
		return t.Tag64
	}
	t.Tag64 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64{}
	return t.Tag64
}

// GetFlags returns the value of the Flags struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Flags is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t != nil && t.Flags != nil {
		return t.Flags
	}
	return nil
}

// GetIpv4SourceRouterId returns the value of the Ipv4SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv4SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t != nil && t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	return nil
}

// GetIpv6SourceRouterId returns the value of the Ipv6SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv6SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t != nil && t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	return nil
}

// GetPrefixSids returns the value of the PrefixSids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field PrefixSids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetPrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t != nil && t.PrefixSids != nil {
		return t.PrefixSids
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTag returns the value of the Tag struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t != nil && t.Tag != nil {
		return t.Tag
	}
	return nil
}

// GetTag64 returns the value of the Tag64 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag64 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t != nil && t.Tag64 != nil {
		return t.Tag64
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Flags.PopulateDefaults()
	t.Ipv4SourceRouterId.PopulateDefaults()
	t.Ipv6SourceRouterId.PopulateDefaults()
	t.PrefixSids.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Tag.PopulateDefaults()
	t.Tag64.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                            `path:"@flags" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                   `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PrefixSid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid `path:"prefix-sid" module:"openconfig-network-instance"`
	ΛPrefixSid []ygot.Annotation                                                                                                                                                                                                 `path:"@prefix-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) IsYANGGoStruct() {
}

// NewPrefixSid creates a new entry in the PrefixSid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) NewPrefixSid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PrefixSid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PrefixSid", key)
	}

	t.PrefixSid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid{
		Value: &Value,
	}

	return t.PrefixSid[key], nil
}

// RenamePrefixSid renames an entry in the list PrefixSid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) RenamePrefixSid(oldK, newK uint32) error {
	if _, ok := t.PrefixSid[newK]; ok {
		return fmt.Errorf("key %v already exists in PrefixSid", newK)
	}

	e, ok := t.PrefixSid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PrefixSid", oldK)
	}
	e.Value = &newK

	t.PrefixSid[newK] = e
	delete(t.PrefixSid, oldK)
	return nil
}

// GetOrCreatePrefixSidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}
	return t.PrefixSid
}

// GetOrCreatePrefixSid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	key := Value

	if v, ok := t.PrefixSid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefixSid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefixSid got unexpected error: %v", err))
	}
	return v
}

// GetPrefixSid retrieves the value with the specified key from
// the PrefixSid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetPrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.PrefixSid[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefixSid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct to the
// list PrefixSid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) AppendPrefixSid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	if _, ok := t.PrefixSid[key]; ok {
		return fmt.Errorf("duplicate key for list PrefixSid %v", key)
	}

	t.PrefixSid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PrefixSid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                      `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                            `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Algorithm  *uint8                                                                                                                                                                                                                      `path:"algorithm" module:"openconfig-network-instance"`
	ΛAlgorithm []ygot.Annotation                                                                                                                                                                                                           `path:"@algorithm" ygotAnnotation:"true"`
	Flags      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags     []ygot.Annotation                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	Value      *uint32                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue     []ygot.Annotation                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) IsYANGGoStruct() {
}

// GetAlgorithm retrieves the value of the leaf Algorithm from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Algorithm is set, it can
// safely use t.GetAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Algorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetAlgorithm() uint8 {
	if t == nil || t.Algorithm == nil {
		return 0
	}
	return *t.Algorithm
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag64 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag64/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag64     []uint64          `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64    []ygot.Annotation `path:"@tag64" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) IsYANGGoStruct() {
}

// GetTag64 retrieves the value of the leaf Tag64 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag64 is set, it can
// safely use t.GetTag64() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag64 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) GetTag64() []uint64 {
	if t == nil || t.Tag64 == nil {
		return nil
	}
	return t.Tag64
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/tag/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag32     []uint32          `path:"tag32" module:"openconfig-network-instance"`
	ΛTag32    []ygot.Annotation `path:"@tag32" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) IsYANGGoStruct() {
}

// GetTag32 retrieves the value of the leaf Tag32 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag32 is set, it can
// safely use t.GetTag32() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag32 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) GetTag32() []uint32 {
	if t == nil || t.Tag32 == nil {
		return nil
	}
	return t.Tag32
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                             `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                    `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv4Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability struct {
	ΛMetadata []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Prefixes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes `path:"prefixes" module:"openconfig-network-instance"`
	ΛPrefixes []ygot.Annotation                                                                                                                                           `path:"@prefixes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) IsYANGGoStruct() {
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) GetOrCreatePrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes{}
	return t.Prefixes
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) GetPrefixes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Prefixes.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Prefix    map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                                                                                                                                                                                            `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key represents the key for list Prefix of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key struct {
	Prefix string `path:"prefix"`
	MtId   uint16 `path:"mt-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"prefix": t.Prefix,
		"mt-id":  t.MtId,
	}, nil
}

// NewPrefix creates a new entry in the Prefix list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) NewPrefix(Prefix string, MtId uint16) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key{
		Prefix: Prefix,
		MtId:   MtId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Prefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Prefix", key)
	}

	t.Prefix[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix{
		Prefix: &Prefix,
		MtId:   &MtId,
	}

	return t.Prefix[key], nil
}

// RenamePrefix renames an entry in the list Prefix within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) RenamePrefix(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key) error {
	if _, ok := t.Prefix[newK]; ok {
		return fmt.Errorf("key %v already exists in Prefix", newK)
	}

	e, ok := t.Prefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Prefix", oldK)
	}
	e.Prefix = &newK.Prefix
	e.MtId = &newK.MtId

	t.Prefix[newK] = e
	delete(t.Prefix, oldK)
	return nil
}

// GetOrCreatePrefixMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) GetOrCreatePrefixMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix {
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix)
	}
	return t.Prefix
}

// GetOrCreatePrefix retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) GetOrCreatePrefix(Prefix string, MtId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key{
		Prefix: Prefix,
		MtId:   MtId,
	}

	if v, ok := t.Prefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefix(Prefix, MtId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefix got unexpected error: %v", err))
	}
	return v
}

// GetPrefix retrieves the value with the specified key from
// the Prefix map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) GetPrefix(Prefix string, MtId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key{
		Prefix: Prefix,
		MtId:   MtId,
	}

	if lm, ok := t.Prefix[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefix appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix struct to the
// list Prefix of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) AppendPrefix(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key for Prefix")
	}

	if v.MtId == nil {
		return fmt.Errorf("invalid nil key for MtId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key{
		Prefix: *v.Prefix,
		MtId:   *v.MtId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix)
	}

	if _, ok := t.Prefix[key]; ok {
		return fmt.Errorf("duplicate key for list Prefix %v", key)
	}

	t.Prefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Prefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	MtId              *uint16                                                                                                                                                                             `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId             []ygot.Annotation                                                                                                                                                                   `path:"@mt-id" ygotAnnotation:"true"`
	Prefix            *string                                                                                                                                                                             `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix           []ygot.Annotation                                                                                                                                                                   `path:"@prefix" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                   `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                   `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MtId == nil {
		return nil, fmt.Errorf("nil value for key MtId")
	}

	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"mt-id":  *t.MtId,
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	MtId      *uint16           `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId     []ygot.Annotation `path:"@mt-id" ygotAnnotation:"true"`
	Prefix    *string           `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation `path:"@prefix" ygotAnnotation:"true"`
	SBit      *bool             `path:"s-bit" module:"openconfig-network-instance"`
	ΛSBit     []ygot.Annotation `path:"@s-bit" ygotAnnotation:"true"`
	UpDown    *bool             `path:"up-down" module:"openconfig-network-instance"`
	ΛUpDown   []ygot.Annotation `path:"@up-down" ygotAnnotation:"true"`
	XBit      *bool             `path:"x-bit" module:"openconfig-network-instance"`
	ΛXBit     []ygot.Annotation `path:"@x-bit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSBit retrieves the value of the leaf SBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SBit is set, it can
// safely use t.GetSBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) GetSBit() bool {
	if t == nil || t.SBit == nil {
		return false
	}
	return *t.SBit
}

// GetUpDown retrieves the value of the leaf UpDown from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpDown is set, it can
// safely use t.GetUpDown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpDown == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) GetUpDown() bool {
	if t == nil || t.UpDown == nil {
		return false
	}
	return *t.UpDown
}

// GetXBit retrieves the value of the leaf XBit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if XBit is set, it can
// safely use t.GetXBit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.XBit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) GetXBit() bool {
	if t == nil || t.XBit == nil {
		return false
	}
	return *t.XBit
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                                `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Flags               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags              `path:"flags" module:"openconfig-network-instance"`
	ΛFlags              []ygot.Annotation                                                                                                                                                                                    `path:"@flags" ygotAnnotation:"true"`
	Ipv4SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId `path:"ipv4-source-router-id" module:"openconfig-network-instance"`
	ΛIpv4SourceRouterId []ygot.Annotation                                                                                                                                                                                    `path:"@ipv4-source-router-id" ygotAnnotation:"true"`
	Ipv6SourceRouterId  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId `path:"ipv6-source-router-id" module:"openconfig-network-instance"`
	ΛIpv6SourceRouterId []ygot.Annotation                                                                                                                                                                                    `path:"@ipv6-source-router-id" ygotAnnotation:"true"`
	PrefixSids          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids         `path:"prefix-sids" module:"openconfig-network-instance"`
	ΛPrefixSids         []ygot.Annotation                                                                                                                                                                                    `path:"@prefix-sids" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	Tag                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag                `path:"tag" module:"openconfig-network-instance"`
	ΛTag                []ygot.Annotation                                                                                                                                                                                    `path:"@tag" ygotAnnotation:"true"`
	Tag64               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64              `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64              []ygot.Annotation                                                                                                                                                                                    `path:"@tag64" ygotAnnotation:"true"`
	Type                E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                           `path:"type" module:"openconfig-network-instance"`
	ΛType               []ygot.Annotation                                                                                                                                                                                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateFlags retrieves the value of the Flags field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t.Flags != nil {
		return t.Flags
	}
	t.Flags = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags{}
	return t.Flags
}

// GetOrCreateIpv4SourceRouterId retrieves the value of the Ipv4SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	t.Ipv4SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId{}
	return t.Ipv4SourceRouterId
}

// GetOrCreateIpv6SourceRouterId retrieves the value of the Ipv6SourceRouterId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	t.Ipv6SourceRouterId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId{}
	return t.Ipv6SourceRouterId
}

// GetOrCreatePrefixSids retrieves the value of the PrefixSids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreatePrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t.PrefixSids != nil {
		return t.PrefixSids
	}
	t.PrefixSids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids{}
	return t.PrefixSids
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTag retrieves the value of the Tag field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t.Tag != nil {
		return t.Tag
	}
	t.Tag = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag{}
	return t.Tag
}

// GetOrCreateTag64 retrieves the value of the Tag64 field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetOrCreateTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t.Tag64 != nil {
		return t.Tag64
	}
	t.Tag64 = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64{}
	return t.Tag64
}

// GetFlags returns the value of the Flags struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Flags is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetFlags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags {
	if t != nil && t.Flags != nil {
		return t.Flags
	}
	return nil
}

// GetIpv4SourceRouterId returns the value of the Ipv4SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv4SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv4SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId {
	if t != nil && t.Ipv4SourceRouterId != nil {
		return t.Ipv4SourceRouterId
	}
	return nil
}

// GetIpv6SourceRouterId returns the value of the Ipv6SourceRouterId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Ipv6SourceRouterId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetIpv6SourceRouterId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId {
	if t != nil && t.Ipv6SourceRouterId != nil {
		return t.Ipv6SourceRouterId
	}
	return nil
}

// GetPrefixSids returns the value of the PrefixSids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field PrefixSids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetPrefixSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids {
	if t != nil && t.PrefixSids != nil {
		return t.PrefixSids
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTag returns the value of the Tag struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag {
	if t != nil && t.Tag != nil {
		return t.Tag
	}
	return nil
}

// GetTag64 returns the value of the Tag64 struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv. If the receiver or the field Tag64 is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetTag64() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 {
	if t != nil && t.Tag64 != nil {
		return t.Tag64
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Flags.PopulateDefaults()
	t.Ipv4SourceRouterId.PopulateDefaults()
	t.Ipv6SourceRouterId.PopulateDefaults()
	t.PrefixSids.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Tag.PopulateDefaults()
	t.Tag64.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                            `path:"@flags" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                   `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv4SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	RouterId  *string                                    `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                          `path:"@router-id" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) IsYANGGoStruct() {
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Ipv6SourceRouterId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	PrefixSid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid `path:"prefix-sid" module:"openconfig-network-instance"`
	ΛPrefixSid []ygot.Annotation                                                                                                                                                                                                 `path:"@prefix-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) IsYANGGoStruct() {
}

// NewPrefixSid creates a new entry in the PrefixSid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) NewPrefixSid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PrefixSid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PrefixSid", key)
	}

	t.PrefixSid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid{
		Value: &Value,
	}

	return t.PrefixSid[key], nil
}

// RenamePrefixSid renames an entry in the list PrefixSid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) RenamePrefixSid(oldK, newK uint32) error {
	if _, ok := t.PrefixSid[newK]; ok {
		return fmt.Errorf("key %v already exists in PrefixSid", newK)
	}

	e, ok := t.PrefixSid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PrefixSid", oldK)
	}
	e.Value = &newK

	t.PrefixSid[newK] = e
	delete(t.PrefixSid, oldK)
	return nil
}

// GetOrCreatePrefixSidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}
	return t.PrefixSid
}

// GetOrCreatePrefixSid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetOrCreatePrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	key := Value

	if v, ok := t.PrefixSid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefixSid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefixSid got unexpected error: %v", err))
	}
	return v
}

// GetPrefixSid retrieves the value with the specified key from
// the PrefixSid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) GetPrefixSid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.PrefixSid[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefixSid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct to the
// list PrefixSid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) AppendPrefixSid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSid == nil {
		t.PrefixSid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid)
	}

	if _, ok := t.PrefixSid[key]; ok {
		return fmt.Errorf("duplicate key for list PrefixSid %v", key)
	}

	t.PrefixSid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PrefixSid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                      `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                            `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Algorithm  *uint8                                                                                                                                                                                                                      `path:"algorithm" module:"openconfig-network-instance"`
	ΛAlgorithm []ygot.Annotation                                                                                                                                                                                                           `path:"@algorithm" ygotAnnotation:"true"`
	Flags      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags     []ygot.Annotation                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	Value      *uint32                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue     []ygot.Annotation                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) IsYANGGoStruct() {
}

// GetAlgorithm retrieves the value of the leaf Algorithm from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Algorithm is set, it can
// safely use t.GetAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Algorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetAlgorithm() uint8 {
	if t == nil || t.Algorithm == nil {
		return 0
	}
	return *t.Algorithm
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag64 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag64/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag64     []uint64          `path:"tag64" module:"openconfig-network-instance"`
	ΛTag64    []ygot.Annotation `path:"@tag64" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) IsYANGGoStruct() {
}

// GetTag64 retrieves the value of the leaf Tag64 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag64 is set, it can
// safely use t.GetTag64() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag64 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) GetTag64() []uint64 {
	if t == nil || t.Tag64 == nil {
		return nil
	}
	return t.Tag64
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag64_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/tag/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Tag32     []uint32          `path:"tag32" module:"openconfig-network-instance"`
	ΛTag32    []ygot.Annotation `path:"@tag32" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) IsYANGGoStruct() {
}

// GetTag32 retrieves the value of the leaf Tag32 from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag32 is set, it can
// safely use t.GetTag32() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag32 == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) GetTag32() []uint32 {
	if t == nil || t.Tag32 == nil {
		return nil
	}
	return t.Tag32
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Tag_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                             `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                    `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIpv6Reachability_Prefixes_Prefix_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                                                                 `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) IsYANGGoStruct() {
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors{}
	return t.Neighbors
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Neighbor  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                                                                                                                                                                                                                            `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key represents the key for list Neighbor of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key struct {
	MtId     uint16 `path:"mt-id"`
	SystemId string `path:"system-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"mt-id":     t.MtId,
		"system-id": t.SystemId,
	}, nil
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) NewNeighbor(MtId uint16, SystemId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key{
		MtId:     MtId,
		SystemId: SystemId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor{
		MtId:     &MtId,
		SystemId: &SystemId,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) RenameNeighbor(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.MtId = &newK.MtId
	e.SystemId = &newK.SystemId

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) GetOrCreateNeighborMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) GetOrCreateNeighbor(MtId uint16, SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key{
		MtId:     MtId,
		SystemId: SystemId,
	}

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(MtId, SystemId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) GetNeighbor(MtId uint16, SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key{
		MtId:     MtId,
		SystemId: SystemId,
	}

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) error {
	if v.MtId == nil {
		return fmt.Errorf("invalid nil key for MtId")
	}

	if v.SystemId == nil {
		return fmt.Errorf("invalid nil key for SystemId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key{
		MtId:     *v.MtId,
		SystemId: *v.SystemId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Instances  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances `path:"instances" module:"openconfig-network-instance"`
	ΛInstances []ygot.Annotation                                                                                                                                                                    `path:"@instances" ygotAnnotation:"true"`
	MtId       *uint16                                                                                                                                                                              `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId      []ygot.Annotation                                                                                                                                                                    `path:"@mt-id" ygotAnnotation:"true"`
	State      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State     `path:"state" module:"openconfig-network-instance"`
	ΛState     []ygot.Annotation                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	SystemId   *string                                                                                                                                                                              `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId  []ygot.Annotation                                                                                                                                                                    `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateInstances retrieves the value of the Instances field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) GetOrCreateInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances {
	if t.Instances != nil {
		return t.Instances
	}
	t.Instances = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances{}
	return t.Instances
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State{}
	return t.State
}

// GetInstances returns the value of the Instances struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor. If the receiver or the field Instances is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) GetInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances {
	if t != nil && t.Instances != nil {
		return t.Instances
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Instances.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MtId == nil {
		return nil, fmt.Errorf("nil value for key MtId")
	}

	if t.SystemId == nil {
		return nil, fmt.Errorf("nil value for key SystemId")
	}

	return map[string]interface{}{
		"mt-id":     *t.MtId,
		"system-id": *t.SystemId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Instance  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance `path:"instance" module:"openconfig-network-instance"`
	ΛInstance []ygot.Annotation                                                                                                                                                                                        `path:"@instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) IsYANGGoStruct() {
}

// NewInstance creates a new entry in the Instance list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) NewInstance(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Instance[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Instance", key)
	}

	t.Instance[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance{
		Id: &Id,
	}

	return t.Instance[key], nil
}

// RenameInstance renames an entry in the list Instance within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) RenameInstance(oldK, newK uint64) error {
	if _, ok := t.Instance[newK]; ok {
		return fmt.Errorf("key %v already exists in Instance", newK)
	}

	e, ok := t.Instance[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Instance", oldK)
	}
	e.Id = &newK

	t.Instance[newK] = e
	delete(t.Instance, oldK)
	return nil
}

// GetOrCreateInstanceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) GetOrCreateInstanceMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance {
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance)
	}
	return t.Instance
}

// GetOrCreateInstance retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) GetOrCreateInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance {

	key := Id

	if v, ok := t.Instance[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInstance(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInstance got unexpected error: %v", err))
	}
	return v
}

// GetInstance retrieves the value with the specified key from
// the Instance map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) GetInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Instance[key]; ok {
		return lm
	}
	return nil
}

// AppendInstance appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance struct to the
// list Instance of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) AppendInstance(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance)
	}

	if _, ok := t.Instance[key]; ok {
		return fmt.Errorf("duplicate key for list Instance %v", key)
	}

	t.Instance[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Instance {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Id                *uint64                                                                                                                                                                                                        `path:"id" module:"openconfig-network-instance"`
	ΛId               []ygot.Annotation                                                                                                                                                                                              `path:"@id" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                                              `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                                              `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Id        *uint64           `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) IsYANGGoStruct() {
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                                                           `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	AdjacencySids               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids              `path:"adjacency-sids" module:"openconfig-network-instance"`
	ΛAdjacencySids              []ygot.Annotation                                                                                                                                                                                                                       `path:"@adjacency-sids" ygotAnnotation:"true"`
	AdminGroup                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup                 `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup                 []ygot.Annotation                                                                                                                                                                                                                       `path:"@admin-group" ygotAnnotation:"true"`
	AvailableBandwidth          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth         `path:"available-bandwidth" module:"openconfig-network-instance"`
	ΛAvailableBandwidth         []ygot.Annotation                                                                                                                                                                                                                       `path:"@available-bandwidth" ygotAnnotation:"true"`
	BandwidthConstraints        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints       `path:"bandwidth-constraints" module:"openconfig-network-instance"`
	ΛBandwidthConstraints       []ygot.Annotation                                                                                                                                                                                                                       `path:"@bandwidth-constraints" ygotAnnotation:"true"`
	ExtendedAdminGroup          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup         `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup         []ygot.Annotation                                                                                                                                                                                                                       `path:"@extended-admin-group" ygotAnnotation:"true"`
	Ipv4InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress       `path:"ipv4-interface-address" module:"openconfig-network-instance"`
	ΛIpv4InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                                       `path:"@ipv4-interface-address" ygotAnnotation:"true"`
	Ipv4NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress        `path:"ipv4-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv4NeighborAddress        []ygot.Annotation                                                                                                                                                                                                                       `path:"@ipv4-neighbor-address" ygotAnnotation:"true"`
	Ipv6InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress       `path:"ipv6-interface-address" module:"openconfig-network-instance"`
	ΛIpv6InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                                       `path:"@ipv6-interface-address" ygotAnnotation:"true"`
	Ipv6NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress        `path:"ipv6-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv6NeighborAddress        []ygot.Annotation                                                                                                                                                                                                                       `path:"@ipv6-neighbor-address" ygotAnnotation:"true"`
	LanAdjacencySids            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids           `path:"lan-adjacency-sids" module:"openconfig-network-instance"`
	ΛLanAdjacencySids           []ygot.Annotation                                                                                                                                                                                                                       `path:"@lan-adjacency-sids" ygotAnnotation:"true"`
	LinkAttributes              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes             `path:"link-attributes" module:"openconfig-network-instance"`
	ΛLinkAttributes             []ygot.Annotation                                                                                                                                                                                                                       `path:"@link-attributes" ygotAnnotation:"true"`
	LinkDelay                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay                  `path:"link-delay" module:"openconfig-network-instance"`
	ΛLinkDelay                  []ygot.Annotation                                                                                                                                                                                                                       `path:"@link-delay" ygotAnnotation:"true"`
	LinkDelayVariation          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation         `path:"link-delay-variation" module:"openconfig-network-instance"`
	ΛLinkDelayVariation         []ygot.Annotation                                                                                                                                                                                                                       `path:"@link-delay-variation" ygotAnnotation:"true"`
	LinkId                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId                     `path:"link-id" module:"openconfig-network-instance"`
	ΛLinkId                     []ygot.Annotation                                                                                                                                                                                                                       `path:"@link-id" ygotAnnotation:"true"`
	LinkLoss                    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss                   `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss                   []ygot.Annotation                                                                                                                                                                                                                       `path:"@link-loss" ygotAnnotation:"true"`
	LinkProtectionType          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType         `path:"link-protection-type" module:"openconfig-network-instance"`
	ΛLinkProtectionType         []ygot.Annotation                                                                                                                                                                                                                       `path:"@link-protection-type" ygotAnnotation:"true"`
	MaxLinkBandwidth            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth           `path:"max-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxLinkBandwidth           []ygot.Annotation                                                                                                                                                                                                                       `path:"@max-link-bandwidth" ygotAnnotation:"true"`
	MaxReservableLinkBandwidth  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth `path:"max-reservable-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxReservableLinkBandwidth []ygot.Annotation                                                                                                                                                                                                                       `path:"@max-reservable-link-bandwidth" ygotAnnotation:"true"`
	MinMaxLinkDelay             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay            `path:"min-max-link-delay" module:"openconfig-network-instance"`
	ΛMinMaxLinkDelay            []ygot.Annotation                                                                                                                                                                                                                       `path:"@min-max-link-delay" ygotAnnotation:"true"`
	ResidualBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth          `path:"residual-bandwidth" module:"openconfig-network-instance"`
	ΛResidualBandwidth          []ygot.Annotation                                                                                                                                                                                                                       `path:"@residual-bandwidth" ygotAnnotation:"true"`
	State                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State                      `path:"state" module:"openconfig-network-instance"`
	ΛState                      []ygot.Annotation                                                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
	TeDefaultMetric             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric            `path:"te-default-metric" module:"openconfig-network-instance"`
	ΛTeDefaultMetric            []ygot.Annotation                                                                                                                                                                                                                       `path:"@te-default-metric" ygotAnnotation:"true"`
	Type                        E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                                              `path:"type" module:"openconfig-network-instance"`
	ΛType                       []ygot.Annotation                                                                                                                                                                                                                       `path:"@type" ygotAnnotation:"true"`
	UnconstrainedLsp            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp           `path:"unconstrained-lsp" module:"openconfig-network-instance"`
	ΛUnconstrainedLsp           []ygot.Annotation                                                                                                                                                                                                                       `path:"@unconstrained-lsp" ygotAnnotation:"true"`
	UnreservedBandwidth         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth        `path:"unreserved-bandwidth" module:"openconfig-network-instance"`
	ΛUnreservedBandwidth        []ygot.Annotation                                                                                                                                                                                                                       `path:"@unreserved-bandwidth" ygotAnnotation:"true"`
	UtilizedBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth          `path:"utilized-bandwidth" module:"openconfig-network-instance"`
	ΛUtilizedBandwidth          []ygot.Annotation                                                                                                                                                                                                                       `path:"@utilized-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateAdjacencySids retrieves the value of the AdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	t.AdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids{}
	return t.AdjacencySids
}

// GetOrCreateAdminGroup retrieves the value of the AdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t.AdminGroup != nil {
		return t.AdminGroup
	}
	t.AdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup{}
	return t.AdminGroup
}

// GetOrCreateAvailableBandwidth retrieves the value of the AvailableBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	t.AvailableBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth{}
	return t.AvailableBandwidth
}

// GetOrCreateBandwidthConstraints retrieves the value of the BandwidthConstraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	t.BandwidthConstraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints{}
	return t.BandwidthConstraints
}

// GetOrCreateExtendedAdminGroup retrieves the value of the ExtendedAdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	t.ExtendedAdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup{}
	return t.ExtendedAdminGroup
}

// GetOrCreateIpv4InterfaceAddress retrieves the value of the Ipv4InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	t.Ipv4InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress{}
	return t.Ipv4InterfaceAddress
}

// GetOrCreateIpv4NeighborAddress retrieves the value of the Ipv4NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	t.Ipv4NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress{}
	return t.Ipv4NeighborAddress
}

// GetOrCreateIpv6InterfaceAddress retrieves the value of the Ipv6InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	t.Ipv6InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress{}
	return t.Ipv6InterfaceAddress
}

// GetOrCreateIpv6NeighborAddress retrieves the value of the Ipv6NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	t.Ipv6NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress{}
	return t.Ipv6NeighborAddress
}

// GetOrCreateLanAdjacencySids retrieves the value of the LanAdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	t.LanAdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids{}
	return t.LanAdjacencySids
}

// GetOrCreateLinkAttributes retrieves the value of the LinkAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	t.LinkAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes{}
	return t.LinkAttributes
}

// GetOrCreateLinkDelay retrieves the value of the LinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t.LinkDelay != nil {
		return t.LinkDelay
	}
	t.LinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay{}
	return t.LinkDelay
}

// GetOrCreateLinkDelayVariation retrieves the value of the LinkDelayVariation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	t.LinkDelayVariation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation{}
	return t.LinkDelayVariation
}

// GetOrCreateLinkId retrieves the value of the LinkId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t.LinkId != nil {
		return t.LinkId
	}
	t.LinkId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId{}
	return t.LinkId
}

// GetOrCreateLinkLoss retrieves the value of the LinkLoss field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t.LinkLoss != nil {
		return t.LinkLoss
	}
	t.LinkLoss = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss{}
	return t.LinkLoss
}

// GetOrCreateLinkProtectionType retrieves the value of the LinkProtectionType field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	t.LinkProtectionType = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType{}
	return t.LinkProtectionType
}

// GetOrCreateMaxLinkBandwidth retrieves the value of the MaxLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	t.MaxLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth{}
	return t.MaxLinkBandwidth
}

// GetOrCreateMaxReservableLinkBandwidth retrieves the value of the MaxReservableLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	t.MaxReservableLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth{}
	return t.MaxReservableLinkBandwidth
}

// GetOrCreateMinMaxLinkDelay retrieves the value of the MinMaxLinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	t.MinMaxLinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay{}
	return t.MinMaxLinkDelay
}

// GetOrCreateResidualBandwidth retrieves the value of the ResidualBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	t.ResidualBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth{}
	return t.ResidualBandwidth
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTeDefaultMetric retrieves the value of the TeDefaultMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	t.TeDefaultMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric{}
	return t.TeDefaultMetric
}

// GetOrCreateUnconstrainedLsp retrieves the value of the UnconstrainedLsp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	t.UnconstrainedLsp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp{}
	return t.UnconstrainedLsp
}

// GetOrCreateUnreservedBandwidth retrieves the value of the UnreservedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	t.UnreservedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth{}
	return t.UnreservedBandwidth
}

// GetOrCreateUtilizedBandwidth retrieves the value of the UtilizedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	t.UtilizedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth{}
	return t.UtilizedBandwidth
}

// GetAdjacencySids returns the value of the AdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t != nil && t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	return nil
}

// GetAdminGroup returns the value of the AdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t != nil && t.AdminGroup != nil {
		return t.AdminGroup
	}
	return nil
}

// GetAvailableBandwidth returns the value of the AvailableBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AvailableBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t != nil && t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	return nil
}

// GetBandwidthConstraints returns the value of the BandwidthConstraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field BandwidthConstraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t != nil && t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	return nil
}

// GetExtendedAdminGroup returns the value of the ExtendedAdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ExtendedAdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t != nil && t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	return nil
}

// GetIpv4InterfaceAddress returns the value of the Ipv4InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t != nil && t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	return nil
}

// GetIpv4NeighborAddress returns the value of the Ipv4NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t != nil && t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	return nil
}

// GetIpv6InterfaceAddress returns the value of the Ipv6InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t != nil && t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	return nil
}

// GetIpv6NeighborAddress returns the value of the Ipv6NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t != nil && t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	return nil
}

// GetLanAdjacencySids returns the value of the LanAdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LanAdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t != nil && t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	return nil
}

// GetLinkAttributes returns the value of the LinkAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t != nil && t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	return nil
}

// GetLinkDelay returns the value of the LinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t != nil && t.LinkDelay != nil {
		return t.LinkDelay
	}
	return nil
}

// GetLinkDelayVariation returns the value of the LinkDelayVariation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelayVariation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t != nil && t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	return nil
}

// GetLinkId returns the value of the LinkId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t != nil && t.LinkId != nil {
		return t.LinkId
	}
	return nil
}

// GetLinkLoss returns the value of the LinkLoss struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkLoss is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t != nil && t.LinkLoss != nil {
		return t.LinkLoss
	}
	return nil
}

// GetLinkProtectionType returns the value of the LinkProtectionType struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkProtectionType is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t != nil && t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	return nil
}

// GetMaxLinkBandwidth returns the value of the MaxLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t != nil && t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	return nil
}

// GetMaxReservableLinkBandwidth returns the value of the MaxReservableLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxReservableLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t != nil && t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	return nil
}

// GetMinMaxLinkDelay returns the value of the MinMaxLinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MinMaxLinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t != nil && t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	return nil
}

// GetResidualBandwidth returns the value of the ResidualBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ResidualBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t != nil && t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTeDefaultMetric returns the value of the TeDefaultMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field TeDefaultMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t != nil && t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	return nil
}

// GetUnconstrainedLsp returns the value of the UnconstrainedLsp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnconstrainedLsp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t != nil && t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	return nil
}

// GetUnreservedBandwidth returns the value of the UnreservedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnreservedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t != nil && t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	return nil
}

// GetUtilizedBandwidth returns the value of the UtilizedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UtilizedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t != nil && t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjacencySids.PopulateDefaults()
	t.AdminGroup.PopulateDefaults()
	t.AvailableBandwidth.PopulateDefaults()
	t.BandwidthConstraints.PopulateDefaults()
	t.ExtendedAdminGroup.PopulateDefaults()
	t.Ipv4InterfaceAddress.PopulateDefaults()
	t.Ipv4NeighborAddress.PopulateDefaults()
	t.Ipv6InterfaceAddress.PopulateDefaults()
	t.Ipv6NeighborAddress.PopulateDefaults()
	t.LanAdjacencySids.PopulateDefaults()
	t.LinkAttributes.PopulateDefaults()
	t.LinkDelay.PopulateDefaults()
	t.LinkDelayVariation.PopulateDefaults()
	t.LinkId.PopulateDefaults()
	t.LinkLoss.PopulateDefaults()
	t.LinkProtectionType.PopulateDefaults()
	t.MaxLinkBandwidth.PopulateDefaults()
	t.MaxReservableLinkBandwidth.PopulateDefaults()
	t.MinMaxLinkDelay.PopulateDefaults()
	t.ResidualBandwidth.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TeDefaultMetric.PopulateDefaults()
	t.UnconstrainedLsp.PopulateDefaults()
	t.UnreservedBandwidth.PopulateDefaults()
	t.UtilizedBandwidth.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	AdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid `path:"adjacency-sid" module:"openconfig-network-instance"`
	ΛAdjacencySid []ygot.Annotation                                                                                                                                                                                                                                  `path:"@adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) IsYANGGoStruct() {
}

// NewAdjacencySid creates a new entry in the AdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) NewAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AdjacencySid", key)
	}

	t.AdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid{
		Value: &Value,
	}

	return t.AdjacencySid[key], nil
}

// RenameAdjacencySid renames an entry in the list AdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) RenameAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.AdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in AdjacencySid", newK)
	}

	e, ok := t.AdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AdjacencySid", oldK)
	}
	e.Value = &newK

	t.AdjacencySid[newK] = e
	delete(t.AdjacencySid, oldK)
	return nil
}

// GetOrCreateAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}
	return t.AdjacencySid
}

// GetOrCreateAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	key := Value

	if v, ok := t.AdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetAdjacencySid retrieves the value with the specified key from
// the AdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.AdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct to the
// list AdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) AppendAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	if _, ok := t.AdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list AdjacencySid %v", key)
	}

	t.AdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                       `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                             `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@flags" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                               `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@value" ygotAnnotation:"true"`
	Weight    *uint8                                                                                                                                                                                                                                                `path:"weight" module:"openconfig-network-instance"`
	ΛWeight   []ygot.Annotation                                                                                                                                                                                                                                     `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroup  []uint32          `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup []ygot.Annotation `path:"@admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) IsYANGGoStruct() {
}

// GetAdminGroup retrieves the value of the leaf AdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroup is set, it can
// safely use t.GetAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) GetAdminGroup() []uint32 {
	if t == nil || t.AdminGroup == nil {
		return nil
	}
	return t.AdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	BandwidthConstraint  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint `path:"bandwidth-constraint" module:"openconfig-network-instance"`
	ΛBandwidthConstraint []ygot.Annotation                                                                                                                                                                                                                                               `path:"@bandwidth-constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) IsYANGGoStruct() {
}

// NewBandwidthConstraint creates a new entry in the BandwidthConstraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) NewBandwidthConstraint(ModelId uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	key := ModelId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BandwidthConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BandwidthConstraint", key)
	}

	t.BandwidthConstraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint{
		ModelId: &ModelId,
	}

	return t.BandwidthConstraint[key], nil
}

// RenameBandwidthConstraint renames an entry in the list BandwidthConstraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) RenameBandwidthConstraint(oldK, newK uint8) error {
	if _, ok := t.BandwidthConstraint[newK]; ok {
		return fmt.Errorf("key %v already exists in BandwidthConstraint", newK)
	}

	e, ok := t.BandwidthConstraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in BandwidthConstraint", oldK)
	}
	e.ModelId = &newK

	t.BandwidthConstraint[newK] = e
	delete(t.BandwidthConstraint, oldK)
	return nil
}

// GetOrCreateBandwidthConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraintMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}
	return t.BandwidthConstraint
}

// GetOrCreateBandwidthConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	key := ModelId

	if v, ok := t.BandwidthConstraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewBandwidthConstraint(ModelId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateBandwidthConstraint got unexpected error: %v", err))
	}
	return v
}

// GetBandwidthConstraint retrieves the value with the specified key from
// the BandwidthConstraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	if t == nil {
		return nil
	}

	key := ModelId

	if lm, ok := t.BandwidthConstraint[key]; ok {
		return lm
	}
	return nil
}

// AppendBandwidthConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct to the
// list BandwidthConstraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) AppendBandwidthConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) error {
	if v.ModelId == nil {
		return fmt.Errorf("invalid nil key received for ModelId")
	}

	key := *v.ModelId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	if _, ok := t.BandwidthConstraint[key]; ok {
		return fmt.Errorf("duplicate key for list BandwidthConstraint %v", key)
	}

	t.BandwidthConstraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.BandwidthConstraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Constraints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints `path:"constraints" module:"openconfig-network-instance"`
	ΛConstraints []ygot.Annotation                                                                                                                                                                                                                                                 `path:"@constraints" ygotAnnotation:"true"`
	ModelId      *uint8                                                                                                                                                                                                                                                            `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId     []ygot.Annotation                                                                                                                                                                                                                                                 `path:"@model-id" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State       `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) IsYANGGoStruct() {
}

// GetOrCreateConstraints retrieves the value of the Constraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t.Constraints != nil {
		return t.Constraints
	}
	t.Constraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints{}
	return t.Constraints
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State{}
	return t.State
}

// GetConstraints returns the value of the Constraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field Constraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t != nil && t.Constraints != nil {
		return t.Constraints
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Constraints.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ModelId == nil {
		return nil, fmt.Errorf("nil value for key ModelId")
	}

	return map[string]interface{}{
		"model-id": *t.ModelId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Constraint  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint `path:"constraint" module:"openconfig-network-instance"`
	ΛConstraint []ygot.Annotation                                                                                                                                                                                                                                                                       `path:"@constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) IsYANGGoStruct() {
}

// NewConstraint creates a new entry in the Constraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) NewConstraint(ConstraintId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	key := ConstraintId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Constraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Constraint", key)
	}

	t.Constraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint{
		ConstraintId: &ConstraintId,
	}

	return t.Constraint[key], nil
}

// RenameConstraint renames an entry in the list Constraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) RenameConstraint(oldK, newK uint32) error {
	if _, ok := t.Constraint[newK]; ok {
		return fmt.Errorf("key %v already exists in Constraint", newK)
	}

	e, ok := t.Constraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Constraint", oldK)
	}
	e.ConstraintId = &newK

	t.Constraint[newK] = e
	delete(t.Constraint, oldK)
	return nil
}

// GetOrCreateConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraintMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}
	return t.Constraint
}

// GetOrCreateConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	key := ConstraintId

	if v, ok := t.Constraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewConstraint(ConstraintId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateConstraint got unexpected error: %v", err))
	}
	return v
}

// GetConstraint retrieves the value with the specified key from
// the Constraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	if t == nil {
		return nil
	}

	key := ConstraintId

	if lm, ok := t.Constraint[key]; ok {
		return lm
	}
	return nil
}

// AppendConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct to the
// list Constraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) AppendConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) error {
	if v.ConstraintId == nil {
		return fmt.Errorf("invalid nil key received for ConstraintId")
	}

	key := *v.ConstraintId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	if _, ok := t.Constraint[key]; ok {
		return fmt.Errorf("duplicate key for list Constraint %v", key)
	}

	t.Constraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Constraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	ConstraintId  *uint32                                                                                                                                                                                                                                                                            `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation                                                                                                                                                                                                                                                                  `path:"@constraint-id" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConstraintId == nil {
		return nil, fmt.Errorf("nil value for key ConstraintId")
	}

	return map[string]interface{}{
		"constraint-id": *t.ConstraintId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth     Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth    []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	ConstraintId  *uint32           `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation `path:"@constraint-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ModelId   *uint8            `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId  []ygot.Annotation `path:"@model-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) IsYANGGoStruct() {
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedAdminGroup  []uint32          `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup []ygot.Annotation `path:"@extended-admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) IsYANGGoStruct() {
}

// GetExtendedAdminGroup retrieves the value of the leaf ExtendedAdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedAdminGroup is set, it can
// safely use t.GetExtendedAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedAdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) GetExtendedAdminGroup() []uint32 {
	if t == nil || t.ExtendedAdminGroup == nil {
		return nil
	}
	return t.ExtendedAdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	LanAdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid `path:"lan-adjacency-sid" module:"openconfig-network-instance"`
	ΛLanAdjacencySid []ygot.Annotation                                                                                                                                                                                                                                        `path:"@lan-adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) IsYANGGoStruct() {
}

// NewLanAdjacencySid creates a new entry in the LanAdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) NewLanAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LanAdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LanAdjacencySid", key)
	}

	t.LanAdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid{
		Value: &Value,
	}

	return t.LanAdjacencySid[key], nil
}

// RenameLanAdjacencySid renames an entry in the list LanAdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) RenameLanAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.LanAdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in LanAdjacencySid", newK)
	}

	e, ok := t.LanAdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in LanAdjacencySid", oldK)
	}
	e.Value = &newK

	t.LanAdjacencySid[newK] = e
	delete(t.LanAdjacencySid, oldK)
	return nil
}

// GetOrCreateLanAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}
	return t.LanAdjacencySid
}

// GetOrCreateLanAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	key := Value

	if v, ok := t.LanAdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLanAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLanAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetLanAdjacencySid retrieves the value with the specified key from
// the LanAdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.LanAdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendLanAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct to the
// list LanAdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) AppendLanAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	if _, ok := t.LanAdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list LanAdjacencySid %v", key)
	}

	t.LanAdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.LanAdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                             `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                                   `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Flags       []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	NeighborId  *string                                                                                                                                                                                                                                                     `path:"neighbor-id" module:"openconfig-network-instance"`
	ΛNeighborId []ygot.Annotation                                                                                                                                                                                                                                           `path:"@neighbor-id" ygotAnnotation:"true"`
	Value       *uint32                                                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
	Weight      *uint8                                                                                                                                                                                                                                                      `path:"weight" module:"openconfig-network-instance"`
	ΛWeight     []ygot.Annotation                                                                                                                                                                                                                                           `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetNeighborId retrieves the value of the leaf NeighborId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborId is set, it can
// safely use t.GetNeighborId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetNeighborId() string {
	if t == nil || t.NeighborId == nil {
		return ""
	}
	return *t.NeighborId
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	LocalProtection  []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection `path:"local-protection" module:"openconfig-network-instance"`
	ΛLocalProtection []ygot.Annotation                                                                                                                                                                                                                                   `path:"@local-protection" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) IsYANGGoStruct() {
}

// GetLocalProtection retrieves the value of the leaf LocalProtection from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalProtection is set, it can
// safely use t.GetLocalProtection() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalProtection == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) GetLocalProtection() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection {
	if t == nil || t.LocalProtection == nil {
		return nil
	}
	return t.LocalProtection
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) IsYANGGoStruct() {
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Local     *uint32           `path:"local" module:"openconfig-network-instance"`
	ΛLocal    []ygot.Annotation `path:"@local" ygotAnnotation:"true"`
	Remote    *uint32           `path:"remote" module:"openconfig-network-instance"`
	ΛRemote   []ygot.Annotation `path:"@remote" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) IsYANGGoStruct() {
}

// GetLocal retrieves the value of the leaf Local from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Local is set, it can
// safely use t.GetLocal() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Local == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetLocal() uint32 {
	if t == nil || t.Local == nil {
		return 0
	}
	return *t.Local
}

// GetRemote retrieves the value of the leaf Remote from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Remote is set, it can
// safely use t.GetRemote() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Remote == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetRemote() uint32 {
	if t == nil || t.Remote == nil {
		return 0
	}
	return *t.Remote
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	LinkLoss  *uint32           `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss []ygot.Annotation `path:"@link-loss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetLinkLoss retrieves the value of the leaf LinkLoss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkLoss is set, it can
// safely use t.GetLinkLoss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkLoss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetLinkLoss() uint32 {
	if t == nil || t.LinkLoss == nil {
		return 0
	}
	return *t.LinkLoss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Type      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) GetType() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	MaxDelay  *uint32           `path:"max-delay" module:"openconfig-network-instance"`
	ΛMaxDelay []ygot.Annotation `path:"@max-delay" ygotAnnotation:"true"`
	MinDelay  *uint32           `path:"min-delay" module:"openconfig-network-instance"`
	ΛMinDelay []ygot.Annotation `path:"@min-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetMaxDelay retrieves the value of the leaf MaxDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxDelay is set, it can
// safely use t.GetMaxDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMaxDelay() uint32 {
	if t == nil || t.MaxDelay == nil {
		return 0
	}
	return *t.MaxDelay
}

// GetMinDelay retrieves the value of the leaf MinDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinDelay is set, it can
// safely use t.GetMinDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMinDelay() uint32 {
	if t == nil || t.MinDelay == nil {
		return 0
	}
	return *t.MinDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Count     *uint16                                    `path:"count" module:"openconfig-network-instance"`
	ΛCount    []ygot.Annotation                          `path:"@count" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) IsYANGGoStruct() {
}

// GetCount retrieves the value of the leaf Count from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Count is set, it can
// safely use t.GetCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Count == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetCount() uint16 {
	if t == nil || t.Count == nil {
		return 0
	}
	return *t.Count
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	SetupPriority  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority []ygot.Annotation                                                                                                                                                                                                                                        `path:"@setup-priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) IsYANGGoStruct() {
}

// NewSetupPriority creates a new entry in the SetupPriority list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) NewSetupPriority(Priority uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	key := Priority

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SetupPriority[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SetupPriority", key)
	}

	t.SetupPriority[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority{
		Priority: &Priority,
	}

	return t.SetupPriority[key], nil
}

// RenameSetupPriority renames an entry in the list SetupPriority within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) RenameSetupPriority(oldK, newK uint8) error {
	if _, ok := t.SetupPriority[newK]; ok {
		return fmt.Errorf("key %v already exists in SetupPriority", newK)
	}

	e, ok := t.SetupPriority[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SetupPriority", oldK)
	}
	e.Priority = &newK

	t.SetupPriority[newK] = e
	delete(t.SetupPriority, oldK)
	return nil
}

// GetOrCreateSetupPriorityMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriorityMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}
	return t.SetupPriority
}

// GetOrCreateSetupPriority retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	key := Priority

	if v, ok := t.SetupPriority[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSetupPriority(Priority)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSetupPriority got unexpected error: %v", err))
	}
	return v
}

// GetSetupPriority retrieves the value with the specified key from
// the SetupPriority map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	if t == nil {
		return nil
	}

	key := Priority

	if lm, ok := t.SetupPriority[key]; ok {
		return lm
	}
	return nil
}

// AppendSetupPriority appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct to the
// list SetupPriority of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) AppendSetupPriority(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) error {
	if v.Priority == nil {
		return fmt.Errorf("invalid nil key received for Priority")
	}

	key := *v.Priority

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	if _, ok := t.SetupPriority[key]; ok {
		return fmt.Errorf("duplicate key for list SetupPriority %v", key)
	}

	t.SetupPriority[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SetupPriority {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Priority  *uint8                                                                                                                                                                                                                                               `path:"priority" module:"openconfig-network-instance"`
	ΛPriority []ygot.Annotation                                                                                                                                                                                                                                    `path:"@priority" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Priority == nil {
		return nil, fmt.Errorf("nil value for key Priority")
	}

	return map[string]interface{}{
		"priority": *t.Priority,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	Priority   *uint8            `path:"priority" module:"openconfig-network-instance"`
	ΛPriority  []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                                                        `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                                               `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MtId      *uint16           `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId     []ygot.Annotation `path:"@mt-id" ygotAnnotation:"true"`
	SystemId  *string           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId []ygot.Annotation `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsisNeighborAttribute_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn struct {
	ΛMetadata  []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Neighbors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors []ygot.Annotation                                                                                                                               `path:"@neighbors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) IsYANGGoStruct() {
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors{}
	return t.Neighbors
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Neighbors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Neighbor  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                                                                                                                                                                                        `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key represents the key for list Neighbor of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key struct {
	MtId     uint16 `path:"mt-id"`
	SystemId string `path:"system-id"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"mt-id":     t.MtId,
		"system-id": t.SystemId,
	}, nil
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) NewNeighbor(MtId uint16, SystemId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key{
		MtId:     MtId,
		SystemId: SystemId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor{
		MtId:     &MtId,
		SystemId: &SystemId,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) RenameNeighbor(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.MtId = &newK.MtId
	e.SystemId = &newK.SystemId

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) GetOrCreateNeighborMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) GetOrCreateNeighbor(MtId uint16, SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key{
		MtId:     MtId,
		SystemId: SystemId,
	}

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(MtId, SystemId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) GetNeighbor(MtId uint16, SystemId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key{
		MtId:     MtId,
		SystemId: SystemId,
	}

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) error {
	if v.MtId == nil {
		return fmt.Errorf("invalid nil key for MtId")
	}

	if v.SystemId == nil {
		return fmt.Errorf("invalid nil key for SystemId")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key{
		MtId:     *v.MtId,
		SystemId: *v.SystemId,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Instances  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances `path:"instances" module:"openconfig-network-instance"`
	ΛInstances []ygot.Annotation                                                                                                                                                  `path:"@instances" ygotAnnotation:"true"`
	MtId       *uint16                                                                                                                                                            `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId      []ygot.Annotation                                                                                                                                                  `path:"@mt-id" ygotAnnotation:"true"`
	State      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State     `path:"state" module:"openconfig-network-instance"`
	ΛState     []ygot.Annotation                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	SystemId   *string                                                                                                                                                            `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId  []ygot.Annotation                                                                                                                                                  `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateInstances retrieves the value of the Instances field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) GetOrCreateInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances {
	if t.Instances != nil {
		return t.Instances
	}
	t.Instances = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances{}
	return t.Instances
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State{}
	return t.State
}

// GetInstances returns the value of the Instances struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor. If the receiver or the field Instances is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) GetInstances() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances {
	if t != nil && t.Instances != nil {
		return t.Instances
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Instances.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MtId == nil {
		return nil, fmt.Errorf("nil value for key MtId")
	}

	if t.SystemId == nil {
		return nil, fmt.Errorf("nil value for key SystemId")
	}

	return map[string]interface{}{
		"mt-id":     *t.MtId,
		"system-id": *t.SystemId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Instance  map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance `path:"instance" module:"openconfig-network-instance"`
	ΛInstance []ygot.Annotation                                                                                                                                                                      `path:"@instance" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) IsYANGGoStruct() {
}

// NewInstance creates a new entry in the Instance list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) NewInstance(Id uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Instance[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Instance", key)
	}

	t.Instance[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance{
		Id: &Id,
	}

	return t.Instance[key], nil
}

// RenameInstance renames an entry in the list Instance within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) RenameInstance(oldK, newK uint64) error {
	if _, ok := t.Instance[newK]; ok {
		return fmt.Errorf("key %v already exists in Instance", newK)
	}

	e, ok := t.Instance[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Instance", oldK)
	}
	e.Id = &newK

	t.Instance[newK] = e
	delete(t.Instance, oldK)
	return nil
}

// GetOrCreateInstanceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) GetOrCreateInstanceMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance {
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance)
	}
	return t.Instance
}

// GetOrCreateInstance retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) GetOrCreateInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance {

	key := Id

	if v, ok := t.Instance[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInstance(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInstance got unexpected error: %v", err))
	}
	return v
}

// GetInstance retrieves the value with the specified key from
// the Instance map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) GetInstance(Id uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Instance[key]; ok {
		return lm
	}
	return nil
}

// AppendInstance appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance struct to the
// list Instance of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) AppendInstance(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Instance == nil {
		t.Instance = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance)
	}

	if _, ok := t.Instance[key]; ok {
		return fmt.Errorf("duplicate key for list Instance %v", key)
	}

	t.Instance[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Instance {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Id                *uint64                                                                                                                                                                                      `path:"id" module:"openconfig-network-instance"`
	ΛId               []ygot.Annotation                                                                                                                                                                            `path:"@id" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                                            `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                                            `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Id        *uint64           `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation `path:"@id" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) IsYANGGoStruct() {
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) GetId() uint64 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                                         `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	AdjacencySids               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids              `path:"adjacency-sids" module:"openconfig-network-instance"`
	ΛAdjacencySids              []ygot.Annotation                                                                                                                                                                                                     `path:"@adjacency-sids" ygotAnnotation:"true"`
	AdminGroup                  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup                 `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup                 []ygot.Annotation                                                                                                                                                                                                     `path:"@admin-group" ygotAnnotation:"true"`
	AvailableBandwidth          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth         `path:"available-bandwidth" module:"openconfig-network-instance"`
	ΛAvailableBandwidth         []ygot.Annotation                                                                                                                                                                                                     `path:"@available-bandwidth" ygotAnnotation:"true"`
	BandwidthConstraints        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints       `path:"bandwidth-constraints" module:"openconfig-network-instance"`
	ΛBandwidthConstraints       []ygot.Annotation                                                                                                                                                                                                     `path:"@bandwidth-constraints" ygotAnnotation:"true"`
	ExtendedAdminGroup          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup         `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup         []ygot.Annotation                                                                                                                                                                                                     `path:"@extended-admin-group" ygotAnnotation:"true"`
	Ipv4InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress       `path:"ipv4-interface-address" module:"openconfig-network-instance"`
	ΛIpv4InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                     `path:"@ipv4-interface-address" ygotAnnotation:"true"`
	Ipv4NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress        `path:"ipv4-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv4NeighborAddress        []ygot.Annotation                                                                                                                                                                                                     `path:"@ipv4-neighbor-address" ygotAnnotation:"true"`
	Ipv6InterfaceAddress        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress       `path:"ipv6-interface-address" module:"openconfig-network-instance"`
	ΛIpv6InterfaceAddress       []ygot.Annotation                                                                                                                                                                                                     `path:"@ipv6-interface-address" ygotAnnotation:"true"`
	Ipv6NeighborAddress         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress        `path:"ipv6-neighbor-address" module:"openconfig-network-instance"`
	ΛIpv6NeighborAddress        []ygot.Annotation                                                                                                                                                                                                     `path:"@ipv6-neighbor-address" ygotAnnotation:"true"`
	LanAdjacencySids            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids           `path:"lan-adjacency-sids" module:"openconfig-network-instance"`
	ΛLanAdjacencySids           []ygot.Annotation                                                                                                                                                                                                     `path:"@lan-adjacency-sids" ygotAnnotation:"true"`
	LinkAttributes              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes             `path:"link-attributes" module:"openconfig-network-instance"`
	ΛLinkAttributes             []ygot.Annotation                                                                                                                                                                                                     `path:"@link-attributes" ygotAnnotation:"true"`
	LinkDelay                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay                  `path:"link-delay" module:"openconfig-network-instance"`
	ΛLinkDelay                  []ygot.Annotation                                                                                                                                                                                                     `path:"@link-delay" ygotAnnotation:"true"`
	LinkDelayVariation          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation         `path:"link-delay-variation" module:"openconfig-network-instance"`
	ΛLinkDelayVariation         []ygot.Annotation                                                                                                                                                                                                     `path:"@link-delay-variation" ygotAnnotation:"true"`
	LinkId                      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId                     `path:"link-id" module:"openconfig-network-instance"`
	ΛLinkId                     []ygot.Annotation                                                                                                                                                                                                     `path:"@link-id" ygotAnnotation:"true"`
	LinkLoss                    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss                   `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss                   []ygot.Annotation                                                                                                                                                                                                     `path:"@link-loss" ygotAnnotation:"true"`
	LinkProtectionType          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType         `path:"link-protection-type" module:"openconfig-network-instance"`
	ΛLinkProtectionType         []ygot.Annotation                                                                                                                                                                                                     `path:"@link-protection-type" ygotAnnotation:"true"`
	MaxLinkBandwidth            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth           `path:"max-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxLinkBandwidth           []ygot.Annotation                                                                                                                                                                                                     `path:"@max-link-bandwidth" ygotAnnotation:"true"`
	MaxReservableLinkBandwidth  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth `path:"max-reservable-link-bandwidth" module:"openconfig-network-instance"`
	ΛMaxReservableLinkBandwidth []ygot.Annotation                                                                                                                                                                                                     `path:"@max-reservable-link-bandwidth" ygotAnnotation:"true"`
	MinMaxLinkDelay             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay            `path:"min-max-link-delay" module:"openconfig-network-instance"`
	ΛMinMaxLinkDelay            []ygot.Annotation                                                                                                                                                                                                     `path:"@min-max-link-delay" ygotAnnotation:"true"`
	ResidualBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth          `path:"residual-bandwidth" module:"openconfig-network-instance"`
	ΛResidualBandwidth          []ygot.Annotation                                                                                                                                                                                                     `path:"@residual-bandwidth" ygotAnnotation:"true"`
	State                       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State                      `path:"state" module:"openconfig-network-instance"`
	ΛState                      []ygot.Annotation                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	TeDefaultMetric             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric            `path:"te-default-metric" module:"openconfig-network-instance"`
	ΛTeDefaultMetric            []ygot.Annotation                                                                                                                                                                                                     `path:"@te-default-metric" ygotAnnotation:"true"`
	Type                        E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                                            `path:"type" module:"openconfig-network-instance"`
	ΛType                       []ygot.Annotation                                                                                                                                                                                                     `path:"@type" ygotAnnotation:"true"`
	UnconstrainedLsp            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp           `path:"unconstrained-lsp" module:"openconfig-network-instance"`
	ΛUnconstrainedLsp           []ygot.Annotation                                                                                                                                                                                                     `path:"@unconstrained-lsp" ygotAnnotation:"true"`
	UnreservedBandwidth         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth        `path:"unreserved-bandwidth" module:"openconfig-network-instance"`
	ΛUnreservedBandwidth        []ygot.Annotation                                                                                                                                                                                                     `path:"@unreserved-bandwidth" ygotAnnotation:"true"`
	UtilizedBandwidth           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth          `path:"utilized-bandwidth" module:"openconfig-network-instance"`
	ΛUtilizedBandwidth          []ygot.Annotation                                                                                                                                                                                                     `path:"@utilized-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateAdjacencySids retrieves the value of the AdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	t.AdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids{}
	return t.AdjacencySids
}

// GetOrCreateAdminGroup retrieves the value of the AdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t.AdminGroup != nil {
		return t.AdminGroup
	}
	t.AdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup{}
	return t.AdminGroup
}

// GetOrCreateAvailableBandwidth retrieves the value of the AvailableBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	t.AvailableBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth{}
	return t.AvailableBandwidth
}

// GetOrCreateBandwidthConstraints retrieves the value of the BandwidthConstraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	t.BandwidthConstraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints{}
	return t.BandwidthConstraints
}

// GetOrCreateExtendedAdminGroup retrieves the value of the ExtendedAdminGroup field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	t.ExtendedAdminGroup = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup{}
	return t.ExtendedAdminGroup
}

// GetOrCreateIpv4InterfaceAddress retrieves the value of the Ipv4InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	t.Ipv4InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress{}
	return t.Ipv4InterfaceAddress
}

// GetOrCreateIpv4NeighborAddress retrieves the value of the Ipv4NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	t.Ipv4NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress{}
	return t.Ipv4NeighborAddress
}

// GetOrCreateIpv6InterfaceAddress retrieves the value of the Ipv6InterfaceAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	t.Ipv6InterfaceAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress{}
	return t.Ipv6InterfaceAddress
}

// GetOrCreateIpv6NeighborAddress retrieves the value of the Ipv6NeighborAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	t.Ipv6NeighborAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress{}
	return t.Ipv6NeighborAddress
}

// GetOrCreateLanAdjacencySids retrieves the value of the LanAdjacencySids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	t.LanAdjacencySids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids{}
	return t.LanAdjacencySids
}

// GetOrCreateLinkAttributes retrieves the value of the LinkAttributes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	t.LinkAttributes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes{}
	return t.LinkAttributes
}

// GetOrCreateLinkDelay retrieves the value of the LinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t.LinkDelay != nil {
		return t.LinkDelay
	}
	t.LinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay{}
	return t.LinkDelay
}

// GetOrCreateLinkDelayVariation retrieves the value of the LinkDelayVariation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	t.LinkDelayVariation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation{}
	return t.LinkDelayVariation
}

// GetOrCreateLinkId retrieves the value of the LinkId field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t.LinkId != nil {
		return t.LinkId
	}
	t.LinkId = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId{}
	return t.LinkId
}

// GetOrCreateLinkLoss retrieves the value of the LinkLoss field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t.LinkLoss != nil {
		return t.LinkLoss
	}
	t.LinkLoss = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss{}
	return t.LinkLoss
}

// GetOrCreateLinkProtectionType retrieves the value of the LinkProtectionType field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	t.LinkProtectionType = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType{}
	return t.LinkProtectionType
}

// GetOrCreateMaxLinkBandwidth retrieves the value of the MaxLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	t.MaxLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth{}
	return t.MaxLinkBandwidth
}

// GetOrCreateMaxReservableLinkBandwidth retrieves the value of the MaxReservableLinkBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	t.MaxReservableLinkBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth{}
	return t.MaxReservableLinkBandwidth
}

// GetOrCreateMinMaxLinkDelay retrieves the value of the MinMaxLinkDelay field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	t.MinMaxLinkDelay = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay{}
	return t.MinMaxLinkDelay
}

// GetOrCreateResidualBandwidth retrieves the value of the ResidualBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	t.ResidualBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth{}
	return t.ResidualBandwidth
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State{}
	return t.State
}

// GetOrCreateTeDefaultMetric retrieves the value of the TeDefaultMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	t.TeDefaultMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric{}
	return t.TeDefaultMetric
}

// GetOrCreateUnconstrainedLsp retrieves the value of the UnconstrainedLsp field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	t.UnconstrainedLsp = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp{}
	return t.UnconstrainedLsp
}

// GetOrCreateUnreservedBandwidth retrieves the value of the UnreservedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	t.UnreservedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth{}
	return t.UnreservedBandwidth
}

// GetOrCreateUtilizedBandwidth retrieves the value of the UtilizedBandwidth field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetOrCreateUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	t.UtilizedBandwidth = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth{}
	return t.UtilizedBandwidth
}

// GetAdjacencySids returns the value of the AdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids {
	if t != nil && t.AdjacencySids != nil {
		return t.AdjacencySids
	}
	return nil
}

// GetAdminGroup returns the value of the AdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup {
	if t != nil && t.AdminGroup != nil {
		return t.AdminGroup
	}
	return nil
}

// GetAvailableBandwidth returns the value of the AvailableBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field AvailableBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetAvailableBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth {
	if t != nil && t.AvailableBandwidth != nil {
		return t.AvailableBandwidth
	}
	return nil
}

// GetBandwidthConstraints returns the value of the BandwidthConstraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field BandwidthConstraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetBandwidthConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints {
	if t != nil && t.BandwidthConstraints != nil {
		return t.BandwidthConstraints
	}
	return nil
}

// GetExtendedAdminGroup returns the value of the ExtendedAdminGroup struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ExtendedAdminGroup is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetExtendedAdminGroup() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup {
	if t != nil && t.ExtendedAdminGroup != nil {
		return t.ExtendedAdminGroup
	}
	return nil
}

// GetIpv4InterfaceAddress returns the value of the Ipv4InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress {
	if t != nil && t.Ipv4InterfaceAddress != nil {
		return t.Ipv4InterfaceAddress
	}
	return nil
}

// GetIpv4NeighborAddress returns the value of the Ipv4NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv4NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv4NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress {
	if t != nil && t.Ipv4NeighborAddress != nil {
		return t.Ipv4NeighborAddress
	}
	return nil
}

// GetIpv6InterfaceAddress returns the value of the Ipv6InterfaceAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6InterfaceAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6InterfaceAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress {
	if t != nil && t.Ipv6InterfaceAddress != nil {
		return t.Ipv6InterfaceAddress
	}
	return nil
}

// GetIpv6NeighborAddress returns the value of the Ipv6NeighborAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field Ipv6NeighborAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetIpv6NeighborAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress {
	if t != nil && t.Ipv6NeighborAddress != nil {
		return t.Ipv6NeighborAddress
	}
	return nil
}

// GetLanAdjacencySids returns the value of the LanAdjacencySids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LanAdjacencySids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLanAdjacencySids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids {
	if t != nil && t.LanAdjacencySids != nil {
		return t.LanAdjacencySids
	}
	return nil
}

// GetLinkAttributes returns the value of the LinkAttributes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkAttributes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkAttributes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes {
	if t != nil && t.LinkAttributes != nil {
		return t.LinkAttributes
	}
	return nil
}

// GetLinkDelay returns the value of the LinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay {
	if t != nil && t.LinkDelay != nil {
		return t.LinkDelay
	}
	return nil
}

// GetLinkDelayVariation returns the value of the LinkDelayVariation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkDelayVariation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkDelayVariation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation {
	if t != nil && t.LinkDelayVariation != nil {
		return t.LinkDelayVariation
	}
	return nil
}

// GetLinkId returns the value of the LinkId struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkId is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkId() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId {
	if t != nil && t.LinkId != nil {
		return t.LinkId
	}
	return nil
}

// GetLinkLoss returns the value of the LinkLoss struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkLoss is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkLoss() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss {
	if t != nil && t.LinkLoss != nil {
		return t.LinkLoss
	}
	return nil
}

// GetLinkProtectionType returns the value of the LinkProtectionType struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field LinkProtectionType is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetLinkProtectionType() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType {
	if t != nil && t.LinkProtectionType != nil {
		return t.LinkProtectionType
	}
	return nil
}

// GetMaxLinkBandwidth returns the value of the MaxLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth {
	if t != nil && t.MaxLinkBandwidth != nil {
		return t.MaxLinkBandwidth
	}
	return nil
}

// GetMaxReservableLinkBandwidth returns the value of the MaxReservableLinkBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MaxReservableLinkBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMaxReservableLinkBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth {
	if t != nil && t.MaxReservableLinkBandwidth != nil {
		return t.MaxReservableLinkBandwidth
	}
	return nil
}

// GetMinMaxLinkDelay returns the value of the MinMaxLinkDelay struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field MinMaxLinkDelay is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetMinMaxLinkDelay() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay {
	if t != nil && t.MinMaxLinkDelay != nil {
		return t.MinMaxLinkDelay
	}
	return nil
}

// GetResidualBandwidth returns the value of the ResidualBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field ResidualBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetResidualBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth {
	if t != nil && t.ResidualBandwidth != nil {
		return t.ResidualBandwidth
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTeDefaultMetric returns the value of the TeDefaultMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field TeDefaultMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetTeDefaultMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric {
	if t != nil && t.TeDefaultMetric != nil {
		return t.TeDefaultMetric
	}
	return nil
}

// GetUnconstrainedLsp returns the value of the UnconstrainedLsp struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnconstrainedLsp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnconstrainedLsp() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp {
	if t != nil && t.UnconstrainedLsp != nil {
		return t.UnconstrainedLsp
	}
	return nil
}

// GetUnreservedBandwidth returns the value of the UnreservedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UnreservedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUnreservedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth {
	if t != nil && t.UnreservedBandwidth != nil {
		return t.UnreservedBandwidth
	}
	return nil
}

// GetUtilizedBandwidth returns the value of the UtilizedBandwidth struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv. If the receiver or the field UtilizedBandwidth is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetUtilizedBandwidth() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth {
	if t != nil && t.UtilizedBandwidth != nil {
		return t.UtilizedBandwidth
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjacencySids.PopulateDefaults()
	t.AdminGroup.PopulateDefaults()
	t.AvailableBandwidth.PopulateDefaults()
	t.BandwidthConstraints.PopulateDefaults()
	t.ExtendedAdminGroup.PopulateDefaults()
	t.Ipv4InterfaceAddress.PopulateDefaults()
	t.Ipv4NeighborAddress.PopulateDefaults()
	t.Ipv6InterfaceAddress.PopulateDefaults()
	t.Ipv6NeighborAddress.PopulateDefaults()
	t.LanAdjacencySids.PopulateDefaults()
	t.LinkAttributes.PopulateDefaults()
	t.LinkDelay.PopulateDefaults()
	t.LinkDelayVariation.PopulateDefaults()
	t.LinkId.PopulateDefaults()
	t.LinkLoss.PopulateDefaults()
	t.LinkProtectionType.PopulateDefaults()
	t.MaxLinkBandwidth.PopulateDefaults()
	t.MaxReservableLinkBandwidth.PopulateDefaults()
	t.MinMaxLinkDelay.PopulateDefaults()
	t.ResidualBandwidth.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TeDefaultMetric.PopulateDefaults()
	t.UnconstrainedLsp.PopulateDefaults()
	t.UnreservedBandwidth.PopulateDefaults()
	t.UtilizedBandwidth.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	AdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid `path:"adjacency-sid" module:"openconfig-network-instance"`
	ΛAdjacencySid []ygot.Annotation                                                                                                                                                                                                                `path:"@adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) IsYANGGoStruct() {
}

// NewAdjacencySid creates a new entry in the AdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) NewAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AdjacencySid", key)
	}

	t.AdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid{
		Value: &Value,
	}

	return t.AdjacencySid[key], nil
}

// RenameAdjacencySid renames an entry in the list AdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) RenameAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.AdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in AdjacencySid", newK)
	}

	e, ok := t.AdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AdjacencySid", oldK)
	}
	e.Value = &newK

	t.AdjacencySid[newK] = e
	delete(t.AdjacencySid, oldK)
	return nil
}

// GetOrCreateAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}
	return t.AdjacencySid
}

// GetOrCreateAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetOrCreateAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	key := Value

	if v, ok := t.AdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetAdjacencySid retrieves the value with the specified key from
// the AdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) GetAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.AdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct to the
// list AdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) AppendAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdjacencySid == nil {
		t.AdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid)
	}

	if _, ok := t.AdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list AdjacencySid %v", key)
	}

	t.AdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@flags" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                                               `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@value" ygotAnnotation:"true"`
	Weight    *uint8                                                                                                                                                                                                                                                `path:"weight" module:"openconfig-network-instance"`
	ΛWeight   []ygot.Annotation                                                                                                                                                                                                                                     `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminGroup  []uint32          `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup []ygot.Annotation `path:"@admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) IsYANGGoStruct() {
}

// GetAdminGroup retrieves the value of the leaf AdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminGroup is set, it can
// safely use t.GetAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) GetAdminGroup() []uint32 {
	if t == nil || t.AdminGroup == nil {
		return nil
	}
	return t.AdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AvailableBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	BandwidthConstraint  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint `path:"bandwidth-constraint" module:"openconfig-network-instance"`
	ΛBandwidthConstraint []ygot.Annotation                                                                                                                                                                                                                             `path:"@bandwidth-constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) IsYANGGoStruct() {
}

// NewBandwidthConstraint creates a new entry in the BandwidthConstraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) NewBandwidthConstraint(ModelId uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	key := ModelId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BandwidthConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BandwidthConstraint", key)
	}

	t.BandwidthConstraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint{
		ModelId: &ModelId,
	}

	return t.BandwidthConstraint[key], nil
}

// RenameBandwidthConstraint renames an entry in the list BandwidthConstraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) RenameBandwidthConstraint(oldK, newK uint8) error {
	if _, ok := t.BandwidthConstraint[newK]; ok {
		return fmt.Errorf("key %v already exists in BandwidthConstraint", newK)
	}

	e, ok := t.BandwidthConstraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in BandwidthConstraint", oldK)
	}
	e.ModelId = &newK

	t.BandwidthConstraint[newK] = e
	delete(t.BandwidthConstraint, oldK)
	return nil
}

// GetOrCreateBandwidthConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraintMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}
	return t.BandwidthConstraint
}

// GetOrCreateBandwidthConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetOrCreateBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	key := ModelId

	if v, ok := t.BandwidthConstraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewBandwidthConstraint(ModelId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateBandwidthConstraint got unexpected error: %v", err))
	}
	return v
}

// GetBandwidthConstraint retrieves the value with the specified key from
// the BandwidthConstraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) GetBandwidthConstraint(ModelId uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint {

	if t == nil {
		return nil
	}

	key := ModelId

	if lm, ok := t.BandwidthConstraint[key]; ok {
		return lm
	}
	return nil
}

// AppendBandwidthConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct to the
// list BandwidthConstraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) AppendBandwidthConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) error {
	if v.ModelId == nil {
		return fmt.Errorf("invalid nil key received for ModelId")
	}

	key := *v.ModelId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BandwidthConstraint == nil {
		t.BandwidthConstraint = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint)
	}

	if _, ok := t.BandwidthConstraint[key]; ok {
		return fmt.Errorf("duplicate key for list BandwidthConstraint %v", key)
	}

	t.BandwidthConstraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.BandwidthConstraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Constraints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints `path:"constraints" module:"openconfig-network-instance"`
	ΛConstraints []ygot.Annotation                                                                                                                                                                                                                               `path:"@constraints" ygotAnnotation:"true"`
	ModelId      *uint8                                                                                                                                                                                                                                          `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId     []ygot.Annotation                                                                                                                                                                                                                               `path:"@model-id" ygotAnnotation:"true"`
	State        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State       `path:"state" module:"openconfig-network-instance"`
	ΛState       []ygot.Annotation                                                                                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) IsYANGGoStruct() {
}

// GetOrCreateConstraints retrieves the value of the Constraints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t.Constraints != nil {
		return t.Constraints
	}
	t.Constraints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints{}
	return t.Constraints
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State{}
	return t.State
}

// GetConstraints returns the value of the Constraints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field Constraints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetConstraints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints {
	if t != nil && t.Constraints != nil {
		return t.Constraints
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Constraints.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ModelId == nil {
		return nil, fmt.Errorf("nil value for key ModelId")
	}

	return map[string]interface{}{
		"model-id": *t.ModelId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Constraint  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint `path:"constraint" module:"openconfig-network-instance"`
	ΛConstraint []ygot.Annotation                                                                                                                                                                                                                                                     `path:"@constraint" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) IsYANGGoStruct() {
}

// NewConstraint creates a new entry in the Constraint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) NewConstraint(ConstraintId uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	key := ConstraintId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Constraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Constraint", key)
	}

	t.Constraint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint{
		ConstraintId: &ConstraintId,
	}

	return t.Constraint[key], nil
}

// RenameConstraint renames an entry in the list Constraint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) RenameConstraint(oldK, newK uint32) error {
	if _, ok := t.Constraint[newK]; ok {
		return fmt.Errorf("key %v already exists in Constraint", newK)
	}

	e, ok := t.Constraint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Constraint", oldK)
	}
	e.ConstraintId = &newK

	t.Constraint[newK] = e
	delete(t.Constraint, oldK)
	return nil
}

// GetOrCreateConstraintMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraintMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}
	return t.Constraint
}

// GetOrCreateConstraint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetOrCreateConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	key := ConstraintId

	if v, ok := t.Constraint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewConstraint(ConstraintId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateConstraint got unexpected error: %v", err))
	}
	return v
}

// GetConstraint retrieves the value with the specified key from
// the Constraint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) GetConstraint(ConstraintId uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint {

	if t == nil {
		return nil
	}

	key := ConstraintId

	if lm, ok := t.Constraint[key]; ok {
		return lm
	}
	return nil
}

// AppendConstraint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct to the
// list Constraint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) AppendConstraint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) error {
	if v.ConstraintId == nil {
		return fmt.Errorf("invalid nil key received for ConstraintId")
	}

	key := *v.ConstraintId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Constraint == nil {
		t.Constraint = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint)
	}

	if _, ok := t.Constraint[key]; ok {
		return fmt.Errorf("duplicate key for list Constraint %v", key)
	}

	t.Constraint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Constraint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	ConstraintId  *uint32                                                                                                                                                                                                                                                          `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation                                                                                                                                                                                                                                                `path:"@constraint-id" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConstraintId == nil {
		return nil, fmt.Errorf("nil value for key ConstraintId")
	}

	return map[string]interface{}{
		"constraint-id": *t.ConstraintId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/constraints/constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth     Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth    []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	ConstraintId  *uint32           `path:"constraint-id" module:"openconfig-network-instance"`
	ΛConstraintId []ygot.Annotation `path:"@constraint-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetConstraintId retrieves the value of the leaf ConstraintId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConstraintId is set, it can
// safely use t.GetConstraintId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConstraintId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) GetConstraintId() uint32 {
	if t == nil || t.ConstraintId == nil {
		return 0
	}
	return *t.ConstraintId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_Constraints_Constraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/bandwidth-constraints/bandwidth-constraint/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ModelId   *uint8            `path:"model-id" module:"openconfig-network-instance"`
	ΛModelId  []ygot.Annotation `path:"@model-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) IsYANGGoStruct() {
}

// GetModelId retrieves the value of the leaf ModelId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelId is set, it can
// safely use t.GetModelId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) GetModelId() uint8 {
	if t == nil || t.ModelId == nil {
		return 0
	}
	return *t.ModelId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_BandwidthConstraints_BandwidthConstraint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/extended-admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExtendedAdminGroup  []uint32          `path:"extended-admin-group" module:"openconfig-network-instance"`
	ΛExtendedAdminGroup []ygot.Annotation `path:"@extended-admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) IsYANGGoStruct() {
}

// GetExtendedAdminGroup retrieves the value of the leaf ExtendedAdminGroup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExtendedAdminGroup is set, it can
// safely use t.GetExtendedAdminGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExtendedAdminGroup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) GetExtendedAdminGroup() []uint32 {
	if t == nil || t.ExtendedAdminGroup == nil {
		return nil
	}
	return t.ExtendedAdminGroup
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ExtendedAdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv4-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv4NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-interface-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6InterfaceAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/ipv6-neighbor-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_Ipv6NeighborAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	LanAdjacencySid  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid `path:"lan-adjacency-sid" module:"openconfig-network-instance"`
	ΛLanAdjacencySid []ygot.Annotation                                                                                                                                                                                                                      `path:"@lan-adjacency-sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) IsYANGGoStruct() {
}

// NewLanAdjacencySid creates a new entry in the LanAdjacencySid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) NewLanAdjacencySid(Value uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	key := Value

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LanAdjacencySid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LanAdjacencySid", key)
	}

	t.LanAdjacencySid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid{
		Value: &Value,
	}

	return t.LanAdjacencySid[key], nil
}

// RenameLanAdjacencySid renames an entry in the list LanAdjacencySid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) RenameLanAdjacencySid(oldK, newK uint32) error {
	if _, ok := t.LanAdjacencySid[newK]; ok {
		return fmt.Errorf("key %v already exists in LanAdjacencySid", newK)
	}

	e, ok := t.LanAdjacencySid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in LanAdjacencySid", oldK)
	}
	e.Value = &newK

	t.LanAdjacencySid[newK] = e
	delete(t.LanAdjacencySid, oldK)
	return nil
}

// GetOrCreateLanAdjacencySidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySidMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}
	return t.LanAdjacencySid
}

// GetOrCreateLanAdjacencySid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetOrCreateLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	key := Value

	if v, ok := t.LanAdjacencySid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLanAdjacencySid(Value)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLanAdjacencySid got unexpected error: %v", err))
	}
	return v
}

// GetLanAdjacencySid retrieves the value with the specified key from
// the LanAdjacencySid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) GetLanAdjacencySid(Value uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid {

	if t == nil {
		return nil
	}

	key := Value

	if lm, ok := t.LanAdjacencySid[key]; ok {
		return lm
	}
	return nil
}

// AppendLanAdjacencySid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct to the
// list LanAdjacencySid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) AppendLanAdjacencySid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) error {
	if v.Value == nil {
		return fmt.Errorf("invalid nil key received for Value")
	}

	key := *v.Value

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LanAdjacencySid == nil {
		t.LanAdjacencySid = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid)
	}

	if _, ok := t.LanAdjacencySid[key]; ok {
		return fmt.Errorf("duplicate key for list LanAdjacencySid %v", key)
	}

	t.LanAdjacencySid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.LanAdjacencySid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
	Value     *uint32                                                                                                                                                                                                                           `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                                                                                 `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Value == nil {
		return nil, fmt.Errorf("nil value for key Value")
	}

	return map[string]interface{}{
		"value": *t.Value,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Flags       []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@flags" ygotAnnotation:"true"`
	NeighborId  *string                                                                                                                                                                                                                                                     `path:"neighbor-id" module:"openconfig-network-instance"`
	ΛNeighborId []ygot.Annotation                                                                                                                                                                                                                                           `path:"@neighbor-id" ygotAnnotation:"true"`
	Value       *uint32                                                                                                                                                                                                                                                     `path:"value" module:"openconfig-network-instance"`
	ΛValue      []ygot.Annotation                                                                                                                                                                                                                                           `path:"@value" ygotAnnotation:"true"`
	Weight      *uint8                                                                                                                                                                                                                                                      `path:"weight" module:"openconfig-network-instance"`
	ΛWeight     []ygot.Annotation                                                                                                                                                                                                                                           `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetNeighborId retrieves the value of the leaf NeighborId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborId is set, it can
// safely use t.GetNeighborId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetNeighborId() string {
	if t == nil || t.NeighborId == nil {
		return ""
	}
	return *t.NeighborId
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetValue() uint32 {
	if t == nil || t.Value == nil {
		return 0
	}
	return *t.Value
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	LocalProtection  []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection `path:"local-protection" module:"openconfig-network-instance"`
	ΛLocalProtection []ygot.Annotation                                                                                                                                                                                                                                   `path:"@local-protection" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) IsYANGGoStruct() {
}

// GetLocalProtection retrieves the value of the leaf LocalProtection from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalProtection is set, it can
// safely use t.GetLocalProtection() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalProtection == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) GetLocalProtection() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection {
	if t == nil || t.LocalProtection == nil {
		return nil
	}
	return t.LocalProtection
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay-variation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) IsYANGGoStruct() {
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelayVariation_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	Delay     *uint32           `path:"delay" module:"openconfig-network-instance"`
	ΛDelay    []ygot.Annotation `path:"@delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetDelay retrieves the value of the leaf Delay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Delay is set, it can
// safely use t.GetDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Delay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) GetDelay() uint32 {
	if t == nil || t.Delay == nil {
		return 0
	}
	return *t.Delay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-id/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Local     *uint32           `path:"local" module:"openconfig-network-instance"`
	ΛLocal    []ygot.Annotation `path:"@local" ygotAnnotation:"true"`
	Remote    *uint32           `path:"remote" module:"openconfig-network-instance"`
	ΛRemote   []ygot.Annotation `path:"@remote" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) IsYANGGoStruct() {
}

// GetLocal retrieves the value of the leaf Local from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Local is set, it can
// safely use t.GetLocal() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Local == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetLocal() uint32 {
	if t == nil || t.Local == nil {
		return 0
	}
	return *t.Local
}

// GetRemote retrieves the value of the leaf Remote from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Remote is set, it can
// safely use t.GetRemote() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Remote == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) GetRemote() uint32 {
	if t == nil || t.Remote == nil {
		return 0
	}
	return *t.Remote
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkId_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-loss/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	LinkLoss  *uint32           `path:"link-loss" module:"openconfig-network-instance"`
	ΛLinkLoss []ygot.Annotation `path:"@link-loss" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetLinkLoss retrieves the value of the leaf LinkLoss from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkLoss is set, it can
// safely use t.GetLinkLoss() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkLoss == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) GetLinkLoss() uint32 {
	if t == nil || t.LinkLoss == nil {
		return 0
	}
	return *t.LinkLoss
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkLoss_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Type      []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) GetType() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/max-reservable-link-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MaxReservableLinkBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/min-max-link-delay/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ABit      *bool             `path:"a-bit" module:"openconfig-network-instance"`
	ΛABit     []ygot.Annotation `path:"@a-bit" ygotAnnotation:"true"`
	MaxDelay  *uint32           `path:"max-delay" module:"openconfig-network-instance"`
	ΛMaxDelay []ygot.Annotation `path:"@max-delay" ygotAnnotation:"true"`
	MinDelay  *uint32           `path:"min-delay" module:"openconfig-network-instance"`
	ΛMinDelay []ygot.Annotation `path:"@min-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) IsYANGGoStruct() {
}

// GetABit retrieves the value of the leaf ABit from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ABit is set, it can
// safely use t.GetABit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ABit == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetABit() bool {
	if t == nil || t.ABit == nil {
		return false
	}
	return *t.ABit
}

// GetMaxDelay retrieves the value of the leaf MaxDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxDelay is set, it can
// safely use t.GetMaxDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMaxDelay() uint32 {
	if t == nil || t.MaxDelay == nil {
		return 0
	}
	return *t.MaxDelay
}

// GetMinDelay retrieves the value of the leaf MinDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinDelay is set, it can
// safely use t.GetMinDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) GetMinDelay() uint32 {
	if t == nil || t.MinDelay == nil {
		return 0
	}
	return *t.MinDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_MinMaxLinkDelay_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/residual-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_ResidualBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/te-default-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_TeDefaultMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Count     *uint16                                    `path:"count" module:"openconfig-network-instance"`
	ΛCount    []ygot.Annotation                          `path:"@count" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) IsYANGGoStruct() {
}

// GetCount retrieves the value of the leaf Count from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Count is set, it can
// safely use t.GetCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Count == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetCount() uint16 {
	if t == nil || t.Count == nil {
		return 0
	}
	return *t.Count
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnconstrainedLsp_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	SetupPriority  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority `path:"setup-priority" module:"openconfig-network-instance"`
	ΛSetupPriority []ygot.Annotation                                                                                                                                                                                                                      `path:"@setup-priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) IsYANGGoStruct() {
}

// NewSetupPriority creates a new entry in the SetupPriority list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) NewSetupPriority(Priority uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	key := Priority

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SetupPriority[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SetupPriority", key)
	}

	t.SetupPriority[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority{
		Priority: &Priority,
	}

	return t.SetupPriority[key], nil
}

// RenameSetupPriority renames an entry in the list SetupPriority within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) RenameSetupPriority(oldK, newK uint8) error {
	if _, ok := t.SetupPriority[newK]; ok {
		return fmt.Errorf("key %v already exists in SetupPriority", newK)
	}

	e, ok := t.SetupPriority[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SetupPriority", oldK)
	}
	e.Priority = &newK

	t.SetupPriority[newK] = e
	delete(t.SetupPriority, oldK)
	return nil
}

// GetOrCreateSetupPriorityMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriorityMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}
	return t.SetupPriority
}

// GetOrCreateSetupPriority retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetOrCreateSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	key := Priority

	if v, ok := t.SetupPriority[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSetupPriority(Priority)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSetupPriority got unexpected error: %v", err))
	}
	return v
}

// GetSetupPriority retrieves the value with the specified key from
// the SetupPriority map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) GetSetupPriority(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority {

	if t == nil {
		return nil
	}

	key := Priority

	if lm, ok := t.SetupPriority[key]; ok {
		return lm
	}
	return nil
}

// AppendSetupPriority appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct to the
// list SetupPriority of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) AppendSetupPriority(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) error {
	if v.Priority == nil {
		return fmt.Errorf("invalid nil key received for Priority")
	}

	key := *v.Priority

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SetupPriority == nil {
		t.SetupPriority = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority)
	}

	if _, ok := t.SetupPriority[key]; ok {
		return fmt.Errorf("duplicate key for list SetupPriority %v", key)
	}

	t.SetupPriority[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SetupPriority {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Priority  *uint8                                                                                                                                                                                                                             `path:"priority" module:"openconfig-network-instance"`
	ΛPriority []ygot.Annotation                                                                                                                                                                                                                  `path:"@priority" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Priority == nil {
		return nil, fmt.Errorf("nil value for key Priority")
	}

	return map[string]interface{}{
		"priority": *t.Priority,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/unreserved-bandwidth/setup-priority/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary            `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation `path:"@bandwidth" ygotAnnotation:"true"`
	Priority   *uint8            `path:"priority" module:"openconfig-network-instance"`
	ΛPriority  []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UnreservedBandwidth_SetupPriority_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State struct {
	ΛMetadata  []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Bandwidth  Binary                                     `path:"bandwidth" module:"openconfig-network-instance"`
	ΛBandwidth []ygot.Annotation                          `path:"@bandwidth" ygotAnnotation:"true"`
	Type       E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) IsYANGGoStruct() {
}

// GetBandwidth retrieves the value of the leaf Bandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bandwidth is set, it can
// safely use t.GetBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetBandwidth() Binary {
	if t == nil || t.Bandwidth == nil {
		return nil
	}
	return t.Bandwidth
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_UtilizedBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                                      `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                                             `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_Instances_Instance_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MtId      *uint16           `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId     []ygot.Annotation `path:"@mt-id" ygotAnnotation:"true"`
	SystemId  *string           `path:"system-id" module:"openconfig-network-instance"`
	ΛSystemId []ygot.Annotation `path:"@system-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// GetSystemId retrieves the value of the leaf SystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemId is set, it can
// safely use t.GetSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) GetSystemId() string {
	if t == nil || t.SystemId == nil {
		return ""
	}
	return *t.SystemId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MtIsn_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/multi-topology YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Topologies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies `path:"topologies" module:"openconfig-network-instance"`
	ΛTopologies []ygot.Annotation                                                                                                                                        `path:"@topologies" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) IsYANGGoStruct() {
}

// GetOrCreateTopologies retrieves the value of the Topologies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) GetOrCreateTopologies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies {
	if t.Topologies != nil {
		return t.Topologies
	}
	t.Topologies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies{}
	return t.Topologies
}

// GetTopologies returns the value of the Topologies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology. If the receiver or the field Topologies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) GetTopologies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies {
	if t != nil && t.Topologies != nil {
		return t.Topologies
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Topologies.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/multi-topology/topologies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Topology  map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology `path:"topology" module:"openconfig-network-instance"`
	ΛTopology []ygot.Annotation                                                                                                                                                            `path:"@topology" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) IsYANGGoStruct() {
}

// NewTopology creates a new entry in the Topology list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) NewTopology(MtId uint16) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Topology == nil {
		t.Topology = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology)
	}

	key := MtId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Topology[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Topology", key)
	}

	t.Topology[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology{
		MtId: &MtId,
	}

	return t.Topology[key], nil
}

// RenameTopology renames an entry in the list Topology within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) RenameTopology(oldK, newK uint16) error {
	if _, ok := t.Topology[newK]; ok {
		return fmt.Errorf("key %v already exists in Topology", newK)
	}

	e, ok := t.Topology[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Topology", oldK)
	}
	e.MtId = &newK

	t.Topology[newK] = e
	delete(t.Topology, oldK)
	return nil
}

// GetOrCreateTopologyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) GetOrCreateTopologyMap() map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology {
	if t.Topology == nil {
		t.Topology = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology)
	}
	return t.Topology
}

// GetOrCreateTopology retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) GetOrCreateTopology(MtId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology {

	key := MtId

	if v, ok := t.Topology[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTopology(MtId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTopology got unexpected error: %v", err))
	}
	return v
}

// GetTopology retrieves the value with the specified key from
// the Topology map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) GetTopology(MtId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology {

	if t == nil {
		return nil
	}

	key := MtId

	if lm, ok := t.Topology[key]; ok {
		return lm
	}
	return nil
}

// AppendTopology appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology struct to the
// list Topology of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) AppendTopology(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) error {
	if v.MtId == nil {
		return fmt.Errorf("invalid nil key received for MtId")
	}

	key := *v.MtId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Topology == nil {
		t.Topology = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology)
	}

	if _, ok := t.Topology[key]; ok {
		return fmt.Errorf("duplicate key for list Topology %v", key)
	}

	t.Topology[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Topology {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/multi-topology/topologies/topology YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	MtId      *uint16                                                                                                                                                                 `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId     []ygot.Annotation                                                                                                                                                       `path:"@mt-id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) ΛListKeyMap() (map[string]interface{}, error) {
	if t.MtId == nil {
		return nil, fmt.Errorf("nil value for key MtId")
	}

	return map[string]interface{}{
		"mt-id": *t.MtId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/multi-topology/topologies/topology/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Attributes  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes `path:"attributes" module:"openconfig-network-instance"`
	ΛAttributes []ygot.Annotation                                                                                                                                                                   `path:"@attributes" ygotAnnotation:"true"`
	MtId        *uint16                                                                                                                                                                             `path:"mt-id" module:"openconfig-network-instance"`
	ΛMtId       []ygot.Annotation                                                                                                                                                                   `path:"@mt-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) IsYANGGoStruct() {
}

// GetAttributes retrieves the value of the leaf Attributes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Attributes is set, it can
// safely use t.GetAttributes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Attributes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) GetAttributes() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes {
	if t == nil || t.Attributes == 0 {
		return 0
	}
	return t.Attributes
}

// GetMtId retrieves the value of the leaf MtId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MtId is set, it can
// safely use t.GetMtId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MtId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) GetMtId() uint16 {
	if t == nil || t.MtId == nil {
		return 0
	}
	return *t.MtId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/nlpid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid struct {
	ΛMetadata []ygot.Annotation                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/nlpid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Nlpid     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid `path:"nlpid" module:"openconfig-network-instance"`
	ΛNlpid    []ygot.Annotation                                                                                                                                    `path:"@nlpid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State) IsYANGGoStruct() {
}

// GetNlpid retrieves the value of the leaf Nlpid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Nlpid is set, it can
// safely use t.GetNlpid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Nlpid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State) GetNlpid() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid {
	if t == nil || t.Nlpid == nil {
		return nil
	}
	return t.Nlpid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/purge-oi YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi struct {
	ΛMetadata []ygot.Annotation                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/purge-oi/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ReceivedSystemId  *string           `path:"received-system-id" module:"openconfig-network-instance"`
	ΛReceivedSystemId []ygot.Annotation `path:"@received-system-id" ygotAnnotation:"true"`
	SourceSystemId    *string           `path:"source-system-id" module:"openconfig-network-instance"`
	ΛSourceSystemId   []ygot.Annotation `path:"@source-system-id" ygotAnnotation:"true"`
	SystemIdCount     *uint8            `path:"system-id-count" module:"openconfig-network-instance"`
	ΛSystemIdCount    []ygot.Annotation `path:"@system-id-count" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) IsYANGGoStruct() {
}

// GetReceivedSystemId retrieves the value of the leaf ReceivedSystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceivedSystemId is set, it can
// safely use t.GetReceivedSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceivedSystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) GetReceivedSystemId() string {
	if t == nil || t.ReceivedSystemId == nil {
		return ""
	}
	return *t.ReceivedSystemId
}

// GetSourceSystemId retrieves the value of the leaf SourceSystemId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceSystemId is set, it can
// safely use t.GetSourceSystemId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceSystemId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) GetSourceSystemId() string {
	if t == nil || t.SourceSystemId == nil {
		return ""
	}
	return *t.SourceSystemId
}

// GetSystemIdCount retrieves the value of the leaf SystemIdCount from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemIdCount is set, it can
// safely use t.GetSystemIdCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemIdCount == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) GetSystemIdCount() uint8 {
	if t == nil || t.SystemIdCount == nil {
		return 0
	}
	return *t.SystemIdCount
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_PurgeOi_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Capability  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability `path:"capability" module:"openconfig-network-instance"`
	ΛCapability []ygot.Annotation                                                                                                                                                        `path:"@capability" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) IsYANGGoStruct() {
}

// NewCapability creates a new entry in the Capability list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) NewCapability(InstanceNumber uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Capability == nil {
		t.Capability = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability)
	}

	key := InstanceNumber

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Capability[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Capability", key)
	}

	t.Capability[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability{
		InstanceNumber: &InstanceNumber,
	}

	return t.Capability[key], nil
}

// RenameCapability renames an entry in the list Capability within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) RenameCapability(oldK, newK uint32) error {
	if _, ok := t.Capability[newK]; ok {
		return fmt.Errorf("key %v already exists in Capability", newK)
	}

	e, ok := t.Capability[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Capability", oldK)
	}
	e.InstanceNumber = &newK

	t.Capability[newK] = e
	delete(t.Capability, oldK)
	return nil
}

// GetOrCreateCapabilityMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) GetOrCreateCapabilityMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability {
	if t.Capability == nil {
		t.Capability = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability)
	}
	return t.Capability
}

// GetOrCreateCapability retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) GetOrCreateCapability(InstanceNumber uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability {

	key := InstanceNumber

	if v, ok := t.Capability[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewCapability(InstanceNumber)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateCapability got unexpected error: %v", err))
	}
	return v
}

// GetCapability retrieves the value with the specified key from
// the Capability map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) GetCapability(InstanceNumber uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability {

	if t == nil {
		return nil
	}

	key := InstanceNumber

	if lm, ok := t.Capability[key]; ok {
		return lm
	}
	return nil
}

// AppendCapability appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability struct to the
// list Capability of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) AppendCapability(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) error {
	if v.InstanceNumber == nil {
		return fmt.Errorf("invalid nil key received for InstanceNumber")
	}

	key := *v.InstanceNumber

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Capability == nil {
		t.Capability = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability)
	}

	if _, ok := t.Capability[key]; ok {
		return fmt.Errorf("duplicate key for list Capability %v", key)
	}

	t.Capability[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Capability {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	InstanceNumber    *uint32                                                                                                                                                                        `path:"instance-number" module:"openconfig-network-instance"`
	ΛInstanceNumber   []ygot.Annotation                                                                                                                                                              `path:"@instance-number" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	Subtlvs           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs          `path:"subtlvs" module:"openconfig-network-instance"`
	ΛSubtlvs          []ygot.Annotation                                                                                                                                                              `path:"@subtlvs" ygotAnnotation:"true"`
	UndefinedSubtlvs  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs `path:"undefined-subtlvs" module:"openconfig-network-instance"`
	ΛUndefinedSubtlvs []ygot.Annotation                                                                                                                                                              `path:"@undefined-subtlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State{}
	return t.State
}

// GetOrCreateSubtlvs retrieves the value of the Subtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) GetOrCreateSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs {
	if t.Subtlvs != nil {
		return t.Subtlvs
	}
	t.Subtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs{}
	return t.Subtlvs
}

// GetOrCreateUndefinedSubtlvs retrieves the value of the UndefinedSubtlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) GetOrCreateUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs {
	if t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	t.UndefinedSubtlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs{}
	return t.UndefinedSubtlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSubtlvs returns the value of the Subtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability. If the receiver or the field Subtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) GetSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs {
	if t != nil && t.Subtlvs != nil {
		return t.Subtlvs
	}
	return nil
}

// GetUndefinedSubtlvs returns the value of the UndefinedSubtlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability. If the receiver or the field UndefinedSubtlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) GetUndefinedSubtlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs {
	if t != nil && t.UndefinedSubtlvs != nil {
		return t.UndefinedSubtlvs
	}
	return nil
}

// GetInstanceNumber retrieves the value of the leaf InstanceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceNumber is set, it can
// safely use t.GetInstanceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) GetInstanceNumber() uint32 {
	if t == nil || t.InstanceNumber == nil {
		return 0
	}
	return *t.InstanceNumber
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Subtlvs.PopulateDefaults()
	t.UndefinedSubtlvs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InstanceNumber == nil {
		return nil, fmt.Errorf("nil value for key InstanceNumber")
	}

	return map[string]interface{}{
		"instance-number": *t.InstanceNumber,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Flags           []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags          []ygot.Annotation                                                                                                                                                            `path:"@flags" ygotAnnotation:"true"`
	InstanceNumber  *uint32                                                                                                                                                                      `path:"instance-number" module:"openconfig-network-instance"`
	ΛInstanceNumber []ygot.Annotation                                                                                                                                                            `path:"@instance-number" ygotAnnotation:"true"`
	RouterId        *string                                                                                                                                                                      `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId       []ygot.Annotation                                                                                                                                                            `path:"@router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// GetInstanceNumber retrieves the value of the leaf InstanceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstanceNumber is set, it can
// safely use t.GetInstanceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstanceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) GetInstanceNumber() uint32 {
	if t == nil || t.InstanceNumber == nil {
		return 0
	}
	return *t.InstanceNumber
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Subtlv    map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv `path:"subtlv" module:"openconfig-network-instance"`
	ΛSubtlv   []ygot.Annotation                                                                                                                                                                                                           `path:"@subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) IsYANGGoStruct() {
}

// NewSubtlv creates a new entry in the Subtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) NewSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subtlv", key)
	}

	t.Subtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv{
		Type: Type,
	}

	return t.Subtlv[key], nil
}

// RenameSubtlv renames an entry in the list Subtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) RenameSubtlv(oldK, newK E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) error {
	if _, ok := t.Subtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Subtlv", newK)
	}

	e, ok := t.Subtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subtlv", oldK)
	}
	e.Type = newK

	t.Subtlv[newK] = e
	delete(t.Subtlv, oldK)
	return nil
}

// GetOrCreateSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) GetOrCreateSubtlvMap() map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv {
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv)
	}
	return t.Subtlv
}

// GetOrCreateSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) GetOrCreateSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv {

	key := Type

	if v, ok := t.Subtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetSubtlv retrieves the value with the specified key from
// the Subtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) GetSubtlv(Type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.Subtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv struct to the
// list Subtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) AppendSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subtlv == nil {
		t.Subtlv = make(map[E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv)
	}

	if _, ok := t.Subtlv[key]; ok {
		return fmt.Errorf("duplicate key for list Subtlv %v", key)
	}

	t.Subtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv struct {
	ΛMetadata                 []ygot.Annotation                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	SegmentRoutingAlgorithms  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms `path:"segment-routing-algorithms" module:"openconfig-network-instance"`
	ΛSegmentRoutingAlgorithms []ygot.Annotation                                                                                                                                                                                     `path:"@segment-routing-algorithms" ygotAnnotation:"true"`
	SegmentRoutingCapability  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability `path:"segment-routing-capability" module:"openconfig-network-instance"`
	ΛSegmentRoutingCapability []ygot.Annotation                                                                                                                                                                                     `path:"@segment-routing-capability" ygotAnnotation:"true"`
	State                     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State                    `path:"state" module:"openconfig-network-instance"`
	ΛState                    []ygot.Annotation                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	Type                      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE                                                                                                                                                            `path:"type" module:"openconfig-network-instance"`
	ΛType                     []ygot.Annotation                                                                                                                                                                                     `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) IsYANGGoStruct() {
}

// GetOrCreateSegmentRoutingAlgorithms retrieves the value of the SegmentRoutingAlgorithms field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) GetOrCreateSegmentRoutingAlgorithms() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms {
	if t.SegmentRoutingAlgorithms != nil {
		return t.SegmentRoutingAlgorithms
	}
	t.SegmentRoutingAlgorithms = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms{}
	return t.SegmentRoutingAlgorithms
}

// GetOrCreateSegmentRoutingCapability retrieves the value of the SegmentRoutingCapability field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) GetOrCreateSegmentRoutingCapability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability {
	if t.SegmentRoutingCapability != nil {
		return t.SegmentRoutingCapability
	}
	t.SegmentRoutingCapability = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability{}
	return t.SegmentRoutingCapability
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State{}
	return t.State
}

// GetSegmentRoutingAlgorithms returns the value of the SegmentRoutingAlgorithms struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv. If the receiver or the field SegmentRoutingAlgorithms is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) GetSegmentRoutingAlgorithms() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms {
	if t != nil && t.SegmentRoutingAlgorithms != nil {
		return t.SegmentRoutingAlgorithms
	}
	return nil
}

// GetSegmentRoutingCapability returns the value of the SegmentRoutingCapability struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv. If the receiver or the field SegmentRoutingCapability is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) GetSegmentRoutingCapability() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability {
	if t != nil && t.SegmentRoutingCapability != nil {
		return t.SegmentRoutingCapability
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.SegmentRoutingAlgorithms.PopulateDefaults()
	t.SegmentRoutingCapability.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-algorithms YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-algorithms/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Algorithm  []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm `path:"algorithm" module:"openconfig-network-instance"`
	ΛAlgorithm []ygot.Annotation                                                                                                                                                                                                        `path:"@algorithm" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State) IsYANGGoStruct() {
}

// GetAlgorithm retrieves the value of the leaf Algorithm from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Algorithm is set, it can
// safely use t.GetAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Algorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State) GetAlgorithm() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm {
	if t == nil || t.Algorithm == nil {
		return nil
	}
	return t.Algorithm
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	SrgbDescriptors  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors `path:"srgb-descriptors" module:"openconfig-network-instance"`
	ΛSrgbDescriptors []ygot.Annotation                                                                                                                                                                                                     `path:"@srgb-descriptors" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) IsYANGGoStruct() {
}

// GetOrCreateSrgbDescriptors retrieves the value of the SrgbDescriptors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) GetOrCreateSrgbDescriptors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors {
	if t.SrgbDescriptors != nil {
		return t.SrgbDescriptors
	}
	t.SrgbDescriptors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors{}
	return t.SrgbDescriptors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State{}
	return t.State
}

// GetSrgbDescriptors returns the value of the SrgbDescriptors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability. If the receiver or the field SrgbDescriptors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) GetSrgbDescriptors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors {
	if t != nil && t.SrgbDescriptors != nil {
		return t.SrgbDescriptors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.SrgbDescriptors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability/srgb-descriptors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	SrgbDescriptor  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor `path:"srgb-descriptor" module:"openconfig-network-instance"`
	ΛSrgbDescriptor []ygot.Annotation                                                                                                                                                                                                                               `path:"@srgb-descriptor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) IsYANGGoStruct() {
}

// NewSrgbDescriptor creates a new entry in the SrgbDescriptor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) NewSrgbDescriptor(Range uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SrgbDescriptor == nil {
		t.SrgbDescriptor = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor)
	}

	key := Range

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SrgbDescriptor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SrgbDescriptor", key)
	}

	t.SrgbDescriptor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor{
		Range: &Range,
	}

	return t.SrgbDescriptor[key], nil
}

// RenameSrgbDescriptor renames an entry in the list SrgbDescriptor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) RenameSrgbDescriptor(oldK, newK uint32) error {
	if _, ok := t.SrgbDescriptor[newK]; ok {
		return fmt.Errorf("key %v already exists in SrgbDescriptor", newK)
	}

	e, ok := t.SrgbDescriptor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SrgbDescriptor", oldK)
	}
	e.Range = &newK

	t.SrgbDescriptor[newK] = e
	delete(t.SrgbDescriptor, oldK)
	return nil
}

// GetOrCreateSrgbDescriptorMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) GetOrCreateSrgbDescriptorMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor {
	if t.SrgbDescriptor == nil {
		t.SrgbDescriptor = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor)
	}
	return t.SrgbDescriptor
}

// GetOrCreateSrgbDescriptor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) GetOrCreateSrgbDescriptor(Range uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor {

	key := Range

	if v, ok := t.SrgbDescriptor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSrgbDescriptor(Range)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSrgbDescriptor got unexpected error: %v", err))
	}
	return v
}

// GetSrgbDescriptor retrieves the value with the specified key from
// the SrgbDescriptor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) GetSrgbDescriptor(Range uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor {

	if t == nil {
		return nil
	}

	key := Range

	if lm, ok := t.SrgbDescriptor[key]; ok {
		return lm
	}
	return nil
}

// AppendSrgbDescriptor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor struct to the
// list SrgbDescriptor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) AppendSrgbDescriptor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) error {
	if v.Range == nil {
		return fmt.Errorf("invalid nil key received for Range")
	}

	key := *v.Range

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SrgbDescriptor == nil {
		t.SrgbDescriptor = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor)
	}

	if _, ok := t.SrgbDescriptor[key]; ok {
		return fmt.Errorf("duplicate key for list SrgbDescriptor %v", key)
	}

	t.SrgbDescriptor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SrgbDescriptor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability/srgb-descriptors/srgb-descriptor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Range     *uint32                                                                                                                                                                                                                                    `path:"range" module:"openconfig-network-instance"`
	ΛRange    []ygot.Annotation                                                                                                                                                                                                                          `path:"@range" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetRange retrieves the value of the leaf Range from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Range is set, it can
// safely use t.GetRange() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Range == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) GetRange() uint32 {
	if t == nil || t.Range == nil {
		return 0
	}
	return *t.Range
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Range == nil {
		return nil, fmt.Errorf("nil value for key Range")
	}

	return map[string]interface{}{
		"range": *t.Range,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability/srgb-descriptors/srgb-descriptor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Label     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union `path:"label" module:"openconfig-network-instance"`
	ΛLabel    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@label" ygotAnnotation:"true"`
	Range     *uint32                                                                                                                                                                                                                                               `path:"range" module:"openconfig-network-instance"`
	ΛRange    []ygot.Annotation                                                                                                                                                                                                                                     `path:"@range" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) IsYANGGoStruct() {
}

// GetLabel retrieves the value of the leaf Label from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Label is set, it can
// safely use t.GetLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Label == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) GetLabel() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union {
	if t == nil || t.Label == nil {
		return nil
	}
	return t.Label
}

// GetRange retrieves the value of the leaf Range from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Range is set, it can
// safely use t.GetRange() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Range == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) GetRange() uint32 {
	if t == nil || t.Range == nil {
		return 0
	}
	return *t.Range
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability/srgb-descriptors/srgb-descriptor/state/label within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_SrgbDescriptors_SrgbDescriptor_State_Label_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Flags     []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags `path:"flags" module:"openconfig-network-instance"`
	ΛFlags    []ygot.Annotation                                                                                                                                                                                                    `path:"@flags" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State) IsYANGGoStruct() {
}

// GetFlags retrieves the value of the leaf Flags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Flags is set, it can
// safely use t.GetFlags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Flags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State) GetFlags() []E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags {
	if t == nil || t.Flags == nil {
		return nil
	}
	return t.Flags
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/undefined-subtlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	UndefinedSubtlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv `path:"undefined-subtlv" module:"openconfig-network-instance"`
	ΛUndefinedSubtlv []ygot.Annotation                                                                                                                                                                                        `path:"@undefined-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) IsYANGGoStruct() {
}

// NewUndefinedSubtlv creates a new entry in the UndefinedSubtlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) NewUndefinedSubtlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedSubtlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedSubtlv", key)
	}

	t.UndefinedSubtlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv{
		Type: &Type,
	}

	return t.UndefinedSubtlv[key], nil
}

// RenameUndefinedSubtlv renames an entry in the list UndefinedSubtlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) RenameUndefinedSubtlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedSubtlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedSubtlv", newK)
	}

	e, ok := t.UndefinedSubtlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedSubtlv", oldK)
	}
	e.Type = &newK

	t.UndefinedSubtlv[newK] = e
	delete(t.UndefinedSubtlv, oldK)
	return nil
}

// GetOrCreateUndefinedSubtlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) GetOrCreateUndefinedSubtlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv {
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv)
	}
	return t.UndefinedSubtlv
}

// GetOrCreateUndefinedSubtlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) GetOrCreateUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv {

	key := Type

	if v, ok := t.UndefinedSubtlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedSubtlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedSubtlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedSubtlv retrieves the value with the specified key from
// the UndefinedSubtlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) GetUndefinedSubtlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedSubtlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedSubtlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv struct to the
// list UndefinedSubtlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) AppendUndefinedSubtlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedSubtlv == nil {
		t.UndefinedSubtlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv)
	}

	if _, ok := t.UndefinedSubtlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedSubtlv %v", key)
	}

	t.UndefinedSubtlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedSubtlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/undefined-subtlvs/undefined-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                                                               `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/undefined-subtlvs/undefined-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_UndefinedSubtlvs_UndefinedSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State struct {
	ΛMetadata []ygot.Annotation                       `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                       `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State) GetType() E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/undefined-tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	UndefinedTlv  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv `path:"undefined-tlv" module:"openconfig-network-instance"`
	ΛUndefinedTlv []ygot.Annotation                                                                                                                                           `path:"@undefined-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) IsYANGGoStruct() {
}

// NewUndefinedTlv creates a new entry in the UndefinedTlv list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) NewUndefinedTlv(Type uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedTlv == nil {
		t.UndefinedTlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UndefinedTlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UndefinedTlv", key)
	}

	t.UndefinedTlv[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv{
		Type: &Type,
	}

	return t.UndefinedTlv[key], nil
}

// RenameUndefinedTlv renames an entry in the list UndefinedTlv within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) RenameUndefinedTlv(oldK, newK uint8) error {
	if _, ok := t.UndefinedTlv[newK]; ok {
		return fmt.Errorf("key %v already exists in UndefinedTlv", newK)
	}

	e, ok := t.UndefinedTlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UndefinedTlv", oldK)
	}
	e.Type = &newK

	t.UndefinedTlv[newK] = e
	delete(t.UndefinedTlv, oldK)
	return nil
}

// GetOrCreateUndefinedTlvMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) GetOrCreateUndefinedTlvMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv {
	if t.UndefinedTlv == nil {
		t.UndefinedTlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv)
	}
	return t.UndefinedTlv
}

// GetOrCreateUndefinedTlv retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) GetOrCreateUndefinedTlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv {

	key := Type

	if v, ok := t.UndefinedTlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUndefinedTlv(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUndefinedTlv got unexpected error: %v", err))
	}
	return v
}

// GetUndefinedTlv retrieves the value with the specified key from
// the UndefinedTlv map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) GetUndefinedTlv(Type uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.UndefinedTlv[key]; ok {
		return lm
	}
	return nil
}

// AppendUndefinedTlv appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv struct to the
// list UndefinedTlv of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) AppendUndefinedTlv(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key received for Type")
	}

	key := *v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UndefinedTlv == nil {
		t.UndefinedTlv = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv)
	}

	if _, ok := t.UndefinedTlv[key]; ok {
		return fmt.Errorf("duplicate key for list UndefinedTlv %v", key)
	}

	t.UndefinedTlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UndefinedTlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/undefined-tlvs/undefined-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
	Type      *uint8                                                                                                                                                  `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                       `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"type": *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/undefined-tlvs/undefined-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint8            `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint8            `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) GetLength() uint8 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) GetType() uint8 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_UndefinedTlvs_UndefinedTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/route-preference YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference struct {
	ΛMetadata []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/route-preference/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExternalRoutePreference  *uint32           `path:"external-route-preference" module:"openconfig-network-instance"`
	ΛExternalRoutePreference []ygot.Annotation `path:"@external-route-preference" ygotAnnotation:"true"`
	InternalRoutePreference  *uint32           `path:"internal-route-preference" module:"openconfig-network-instance"`
	ΛInternalRoutePreference []ygot.Annotation `path:"@internal-route-preference" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) IsYANGGoStruct() {
}

// GetExternalRoutePreference retrieves the value of the leaf ExternalRoutePreference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRoutePreference is set, it can
// safely use t.GetExternalRoutePreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRoutePreference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) GetExternalRoutePreference() uint32 {
	if t == nil || t.ExternalRoutePreference == nil {
		return 0
	}
	return *t.ExternalRoutePreference
}

// GetInternalRoutePreference retrieves the value of the leaf InternalRoutePreference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InternalRoutePreference is set, it can
// safely use t.GetInternalRoutePreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InternalRoutePreference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) GetInternalRoutePreference() uint32 {
	if t == nil || t.InternalRoutePreference == nil {
		return 0
	}
	return *t.InternalRoutePreference
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/route-preference/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExternalRoutePreference  *uint32           `path:"external-route-preference" module:"openconfig-network-instance"`
	ΛExternalRoutePreference []ygot.Annotation `path:"@external-route-preference" ygotAnnotation:"true"`
	InternalRoutePreference  *uint32           `path:"internal-route-preference" module:"openconfig-network-instance"`
	ΛInternalRoutePreference []ygot.Annotation `path:"@internal-route-preference" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) IsYANGGoStruct() {
}

// GetExternalRoutePreference retrieves the value of the leaf ExternalRoutePreference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRoutePreference is set, it can
// safely use t.GetExternalRoutePreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRoutePreference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) GetExternalRoutePreference() uint32 {
	if t == nil || t.ExternalRoutePreference == nil {
		return 0
	}
	return *t.ExternalRoutePreference
}

// GetInternalRoutePreference retrieves the value of the leaf InternalRoutePreference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InternalRoutePreference is set, it can
// safely use t.GetInternalRoutePreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InternalRoutePreference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) GetInternalRoutePreference() uint32 {
	if t == nil || t.InternalRoutePreference == nil {
		return 0
	}
	return *t.InternalRoutePreference
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_RoutePreference_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State struct {
	ΛMetadata            []ygot.Annotation                 `path:"@" ygotAnnotation:"true"`
	AuthenticationCheck  *bool                             `path:"authentication-check" module:"openconfig-network-instance"`
	ΛAuthenticationCheck []ygot.Annotation                 `path:"@authentication-check" ygotAnnotation:"true"`
	Enabled              *bool                             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled             []ygot.Annotation                 `path:"@enabled" ygotAnnotation:"true"`
	LevelNumber          *uint8                            `path:"level-number" module:"openconfig-network-instance"`
	ΛLevelNumber         []ygot.Annotation                 `path:"@level-number" ygotAnnotation:"true"`
	MetricStyle          E_OpenconfigIsisTypes_MetricStyle `path:"metric-style" module:"openconfig-network-instance"`
	ΛMetricStyle         []ygot.Annotation                 `path:"@metric-style" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) IsYANGGoStruct() {
}

// GetAuthenticationCheck retrieves the value of the leaf AuthenticationCheck from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationCheck is set, it can
// safely use t.GetAuthenticationCheck() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationCheck == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) GetAuthenticationCheck() bool {
	if t == nil || t.AuthenticationCheck == nil {
		return true
	}
	return *t.AuthenticationCheck
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetLevelNumber retrieves the value of the leaf LevelNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LevelNumber is set, it can
// safely use t.GetLevelNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LevelNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) GetLevelNumber() uint8 {
	if t == nil || t.LevelNumber == nil {
		return 0
	}
	return *t.LevelNumber
}

// GetMetricStyle retrieves the value of the leaf MetricStyle from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricStyle is set, it can
// safely use t.GetMetricStyle() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricStyle == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) GetMetricStyle() E_OpenconfigIsisTypes_MetricStyle {
	if t == nil || t.MetricStyle == 0 {
		return 0
	}
	return t.MetricStyle
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AuthenticationCheck == nil {
		var v bool = true
		t.AuthenticationCheck = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/system-level-counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/system-level-counters/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State struct {
	ΛMetadata                   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthFails                   *uint32           `path:"auth-fails" module:"openconfig-network-instance"`
	ΛAuthFails                  []ygot.Annotation `path:"@auth-fails" ygotAnnotation:"true"`
	AuthTypeFails               *uint32           `path:"auth-type-fails" module:"openconfig-network-instance"`
	ΛAuthTypeFails              []ygot.Annotation `path:"@auth-type-fails" ygotAnnotation:"true"`
	CorruptedLsps               *uint32           `path:"corrupted-lsps" module:"openconfig-network-instance"`
	ΛCorruptedLsps              []ygot.Annotation `path:"@corrupted-lsps" ygotAnnotation:"true"`
	DatabaseOverloads           *uint32           `path:"database-overloads" module:"openconfig-network-instance"`
	ΛDatabaseOverloads          []ygot.Annotation `path:"@database-overloads" ygotAnnotation:"true"`
	ExceedMaxSeqNums            *uint32           `path:"exceed-max-seq-nums" module:"openconfig-network-instance"`
	ΛExceedMaxSeqNums           []ygot.Annotation `path:"@exceed-max-seq-nums" ygotAnnotation:"true"`
	IdLenMismatch               *uint32           `path:"id-len-mismatch" module:"openconfig-network-instance"`
	ΛIdLenMismatch              []ygot.Annotation `path:"@id-len-mismatch" ygotAnnotation:"true"`
	LspErrors                   *uint32           `path:"lsp-errors" module:"openconfig-network-instance"`
	ΛLspErrors                  []ygot.Annotation `path:"@lsp-errors" ygotAnnotation:"true"`
	ManualAddressDropFromAreas  *uint32           `path:"manual-address-drop-from-areas" module:"openconfig-network-instance"`
	ΛManualAddressDropFromAreas []ygot.Annotation `path:"@manual-address-drop-from-areas" ygotAnnotation:"true"`
	MaxAreaAddressMismatches    *uint32           `path:"max-area-address-mismatches" module:"openconfig-network-instance"`
	ΛMaxAreaAddressMismatches   []ygot.Annotation `path:"@max-area-address-mismatches" ygotAnnotation:"true"`
	OwnLspPurges                *uint32           `path:"own-lsp-purges" module:"openconfig-network-instance"`
	ΛOwnLspPurges               []ygot.Annotation `path:"@own-lsp-purges" ygotAnnotation:"true"`
	PartChanges                 *uint32           `path:"part-changes" module:"openconfig-network-instance"`
	ΛPartChanges                []ygot.Annotation `path:"@part-changes" ygotAnnotation:"true"`
	SeqNumSkips                 *uint32           `path:"seq-num-skips" module:"openconfig-network-instance"`
	ΛSeqNumSkips                []ygot.Annotation `path:"@seq-num-skips" ygotAnnotation:"true"`
	SpfRuns                     *uint32           `path:"spf-runs" module:"openconfig-network-instance"`
	ΛSpfRuns                    []ygot.Annotation `path:"@spf-runs" ygotAnnotation:"true"`
	TotalLsps                   *uint32           `path:"total-lsps" module:"openconfig-network-instance"`
	ΛTotalLsps                  []ygot.Annotation `path:"@total-lsps" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) IsYANGGoStruct() {
}

// GetAuthFails retrieves the value of the leaf AuthFails from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthFails is set, it can
// safely use t.GetAuthFails() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthFails == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetAuthFails() uint32 {
	if t == nil || t.AuthFails == nil {
		return 0
	}
	return *t.AuthFails
}

// GetAuthTypeFails retrieves the value of the leaf AuthTypeFails from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthTypeFails is set, it can
// safely use t.GetAuthTypeFails() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthTypeFails == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetAuthTypeFails() uint32 {
	if t == nil || t.AuthTypeFails == nil {
		return 0
	}
	return *t.AuthTypeFails
}

// GetCorruptedLsps retrieves the value of the leaf CorruptedLsps from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CorruptedLsps is set, it can
// safely use t.GetCorruptedLsps() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CorruptedLsps == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetCorruptedLsps() uint32 {
	if t == nil || t.CorruptedLsps == nil {
		return 0
	}
	return *t.CorruptedLsps
}

// GetDatabaseOverloads retrieves the value of the leaf DatabaseOverloads from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DatabaseOverloads is set, it can
// safely use t.GetDatabaseOverloads() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DatabaseOverloads == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetDatabaseOverloads() uint32 {
	if t == nil || t.DatabaseOverloads == nil {
		return 0
	}
	return *t.DatabaseOverloads
}

// GetExceedMaxSeqNums retrieves the value of the leaf ExceedMaxSeqNums from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExceedMaxSeqNums is set, it can
// safely use t.GetExceedMaxSeqNums() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExceedMaxSeqNums == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetExceedMaxSeqNums() uint32 {
	if t == nil || t.ExceedMaxSeqNums == nil {
		return 0
	}
	return *t.ExceedMaxSeqNums
}

// GetIdLenMismatch retrieves the value of the leaf IdLenMismatch from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IdLenMismatch is set, it can
// safely use t.GetIdLenMismatch() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IdLenMismatch == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetIdLenMismatch() uint32 {
	if t == nil || t.IdLenMismatch == nil {
		return 0
	}
	return *t.IdLenMismatch
}

// GetLspErrors retrieves the value of the leaf LspErrors from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LspErrors is set, it can
// safely use t.GetLspErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LspErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetLspErrors() uint32 {
	if t == nil || t.LspErrors == nil {
		return 0
	}
	return *t.LspErrors
}

// GetManualAddressDropFromAreas retrieves the value of the leaf ManualAddressDropFromAreas from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ManualAddressDropFromAreas is set, it can
// safely use t.GetManualAddressDropFromAreas() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ManualAddressDropFromAreas == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetManualAddressDropFromAreas() uint32 {
	if t == nil || t.ManualAddressDropFromAreas == nil {
		return 0
	}
	return *t.ManualAddressDropFromAreas
}

// GetMaxAreaAddressMismatches retrieves the value of the leaf MaxAreaAddressMismatches from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxAreaAddressMismatches is set, it can
// safely use t.GetMaxAreaAddressMismatches() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxAreaAddressMismatches == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetMaxAreaAddressMismatches() uint32 {
	if t == nil || t.MaxAreaAddressMismatches == nil {
		return 0
	}
	return *t.MaxAreaAddressMismatches
}

// GetOwnLspPurges retrieves the value of the leaf OwnLspPurges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OwnLspPurges is set, it can
// safely use t.GetOwnLspPurges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OwnLspPurges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetOwnLspPurges() uint32 {
	if t == nil || t.OwnLspPurges == nil {
		return 0
	}
	return *t.OwnLspPurges
}

// GetPartChanges retrieves the value of the leaf PartChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PartChanges is set, it can
// safely use t.GetPartChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PartChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetPartChanges() uint32 {
	if t == nil || t.PartChanges == nil {
		return 0
	}
	return *t.PartChanges
}

// GetSeqNumSkips retrieves the value of the leaf SeqNumSkips from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SeqNumSkips is set, it can
// safely use t.GetSeqNumSkips() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SeqNumSkips == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetSeqNumSkips() uint32 {
	if t == nil || t.SeqNumSkips == nil {
		return 0
	}
	return *t.SeqNumSkips
}

// GetSpfRuns retrieves the value of the leaf SpfRuns from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SpfRuns is set, it can
// safely use t.GetSpfRuns() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SpfRuns == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetSpfRuns() uint32 {
	if t == nil || t.SpfRuns == nil {
		return 0
	}
	return *t.SpfRuns
}

// GetTotalLsps retrieves the value of the leaf TotalLsps from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalLsps is set, it can
// safely use t.GetTotalLsps() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalLsps == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) GetTotalLsps() uint32 {
	if t == nil || t.TotalLsps == nil {
		return 0
	}
	return *t.TotalLsps
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_SystemLevelCounters_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/traffic-engineering YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/traffic-engineering/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled       *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Ipv4RouterId  *string           `path:"ipv4-router-id" module:"openconfig-network-instance"`
	ΛIpv4RouterId []ygot.Annotation `path:"@ipv4-router-id" ygotAnnotation:"true"`
	Ipv6RouterId  *string           `path:"ipv6-router-id" module:"openconfig-network-instance"`
	ΛIpv6RouterId []ygot.Annotation `path:"@ipv6-router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetIpv4RouterId retrieves the value of the leaf Ipv4RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv4RouterId is set, it can
// safely use t.GetIpv4RouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv4RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) GetIpv4RouterId() string {
	if t == nil || t.Ipv4RouterId == nil {
		return ""
	}
	return *t.Ipv4RouterId
}

// GetIpv6RouterId retrieves the value of the leaf Ipv6RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6RouterId is set, it can
// safely use t.GetIpv6RouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) GetIpv6RouterId() string {
	if t == nil || t.Ipv6RouterId == nil {
		return ""
	}
	return *t.Ipv6RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/isis/levels/level/traffic-engineering/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled       *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled      []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Ipv4RouterId  *string           `path:"ipv4-router-id" module:"openconfig-network-instance"`
	ΛIpv4RouterId []ygot.Annotation `path:"@ipv4-router-id" ygotAnnotation:"true"`
	Ipv6RouterId  *string           `path:"ipv6-router-id" module:"openconfig-network-instance"`
	ΛIpv6RouterId []ygot.Annotation `path:"@ipv6-router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetIpv4RouterId retrieves the value of the leaf Ipv4RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv4RouterId is set, it can
// safely use t.GetIpv4RouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv4RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) GetIpv4RouterId() string {
	if t == nil || t.Ipv4RouterId == nil {
		return ""
	}
	return *t.Ipv4RouterId
}

// GetIpv6RouterId retrieves the value of the leaf Ipv6RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6RouterId is set, it can
// safely use t.GetIpv6RouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) GetIpv6RouterId() string {
	if t == nil || t.Ipv6RouterId == nil {
		return ""
	}
	return *t.Ipv6RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_TrafficEngineering_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/local-aggregates YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates struct {
	ΛMetadata  []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Aggregate  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate `path:"aggregate" module:"openconfig-network-instance"`
	ΛAggregate []ygot.Annotation                                                                                                   `path:"@aggregate" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) IsYANGGoStruct() {
}

// NewAggregate creates a new entry in the Aggregate list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) NewAggregate(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Aggregate == nil {
		t.Aggregate = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Aggregate[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Aggregate", key)
	}

	t.Aggregate[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate{
		Prefix: &Prefix,
	}

	return t.Aggregate[key], nil
}

// RenameAggregate renames an entry in the list Aggregate within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) RenameAggregate(oldK, newK string) error {
	if _, ok := t.Aggregate[newK]; ok {
		return fmt.Errorf("key %v already exists in Aggregate", newK)
	}

	e, ok := t.Aggregate[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Aggregate", oldK)
	}
	e.Prefix = &newK

	t.Aggregate[newK] = e
	delete(t.Aggregate, oldK)
	return nil
}

// GetOrCreateAggregateMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) GetOrCreateAggregateMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate {
	if t.Aggregate == nil {
		t.Aggregate = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate)
	}
	return t.Aggregate
}

// GetOrCreateAggregate retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) GetOrCreateAggregate(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate {

	key := Prefix

	if v, ok := t.Aggregate[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAggregate(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAggregate got unexpected error: %v", err))
	}
	return v
}

// GetAggregate retrieves the value with the specified key from
// the Aggregate map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) GetAggregate(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Aggregate[key]; ok {
		return lm
	}
	return nil
}

// AppendAggregate appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate struct to the
// list Aggregate of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) AppendAggregate(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Aggregate == nil {
		t.Aggregate = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate)
	}

	if _, ok := t.Aggregate[key]; ok {
		return fmt.Errorf("duplicate key for list Aggregate %v", key)
	}

	t.Aggregate[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Aggregate {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/local-aggregates/aggregate YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate struct {
	ΛMetadata []ygot.Annotation                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                               `path:"@config" ygotAnnotation:"true"`
	Prefix    *string                                                                                                         `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                               `path:"@prefix" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/local-aggregates/aggregate/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config struct {
	ΛMetadata    []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Description  *string                                                                                                                     `path:"description" module:"openconfig-network-instance"`
	ΛDescription []ygot.Annotation                                                                                                           `path:"@description" ygotAnnotation:"true"`
	Discard      *bool                                                                                                                       `path:"discard" module:"openconfig-network-instance"`
	ΛDiscard     []ygot.Annotation                                                                                                           `path:"@discard" ygotAnnotation:"true"`
	Metric       *uint32                                                                                                                     `path:"metric" module:"openconfig-network-instance"`
	ΛMetric      []ygot.Annotation                                                                                                           `path:"@metric" ygotAnnotation:"true"`
	Preference   *uint32                                                                                                                     `path:"preference" module:"openconfig-network-instance"`
	ΛPreference  []ygot.Annotation                                                                                                           `path:"@preference" ygotAnnotation:"true"`
	Prefix       *string                                                                                                                     `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix      []ygot.Annotation                                                                                                           `path:"@prefix" ygotAnnotation:"true"`
	SetTag       OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union `path:"set-tag" module:"openconfig-network-instance"`
	ΛSetTag      []ygot.Annotation                                                                                                           `path:"@set-tag" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) IsYANGGoStruct() {
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetDiscard retrieves the value of the leaf Discard from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Discard is set, it can
// safely use t.GetDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Discard == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) GetDiscard() bool {
	if t == nil || t.Discard == nil {
		return false
	}
	return *t.Discard
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) GetPreference() uint32 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSetTag retrieves the value of the leaf SetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetTag is set, it can
// safely use t.GetSetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) GetSetTag() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union {
	if t == nil || t.SetTag == nil {
		return nil
	}
	return t.SetTag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Discard == nil {
		var v bool = false
		t.Discard = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/local-aggregates/aggregate/config/set-tag within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_Config_SetTag_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/local-aggregates/aggregate/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State struct {
	ΛMetadata    []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Description  *string                                                                                                                    `path:"description" module:"openconfig-network-instance"`
	ΛDescription []ygot.Annotation                                                                                                          `path:"@description" ygotAnnotation:"true"`
	Discard      *bool                                                                                                                      `path:"discard" module:"openconfig-network-instance"`
	ΛDiscard     []ygot.Annotation                                                                                                          `path:"@discard" ygotAnnotation:"true"`
	Metric       *uint32                                                                                                                    `path:"metric" module:"openconfig-network-instance"`
	ΛMetric      []ygot.Annotation                                                                                                          `path:"@metric" ygotAnnotation:"true"`
	Preference   *uint32                                                                                                                    `path:"preference" module:"openconfig-network-instance"`
	ΛPreference  []ygot.Annotation                                                                                                          `path:"@preference" ygotAnnotation:"true"`
	Prefix       *string                                                                                                                    `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix      []ygot.Annotation                                                                                                          `path:"@prefix" ygotAnnotation:"true"`
	SetTag       OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union `path:"set-tag" module:"openconfig-network-instance"`
	ΛSetTag      []ygot.Annotation                                                                                                          `path:"@set-tag" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) IsYANGGoStruct() {
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetDiscard retrieves the value of the leaf Discard from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Discard is set, it can
// safely use t.GetDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Discard == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) GetDiscard() bool {
	if t == nil || t.Discard == nil {
		return false
	}
	return *t.Discard
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) GetPreference() uint32 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSetTag retrieves the value of the leaf SetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetTag is set, it can
// safely use t.GetSetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) GetSetTag() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union {
	if t == nil || t.SetTag == nil {
		return nil
	}
	return t.SetTag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Discard == nil {
		var v bool = false
		t.Discard = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/local-aggregates/aggregate/state/set-tag within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_LocalAggregates_Aggregate_State_SetTag_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2 represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2 YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2 struct {
	ΛMetadata []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	Areas     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas  `path:"areas" module:"openconfig-network-instance"`
	ΛAreas    []ygot.Annotation                                                                            `path:"@areas" ygotAnnotation:"true"`
	Global    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global `path:"global" module:"openconfig-network-instance"`
	ΛGlobal   []ygot.Annotation                                                                            `path:"@global" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2 implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) IsYANGGoStruct() {
}

// GetOrCreateAreas retrieves the value of the Areas field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) GetOrCreateAreas() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas {
	if t.Areas != nil {
		return t.Areas
	}
	t.Areas = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas{}
	return t.Areas
}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global{}
	return t.Global
}

// GetAreas returns the value of the Areas struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2. If the receiver or the field Areas is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) GetAreas() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas {
	if t != nil && t.Areas != nil {
		return t.Areas
	}
	return nil
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Areas.PopulateDefaults()
	t.Global.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Area      map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area `path:"area" module:"openconfig-network-instance"`
	ΛArea     []ygot.Annotation                                                                                                                                                                                                            `path:"@area" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) IsYANGGoStruct() {
}

// NewArea creates a new entry in the Area list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) NewArea(Identifier OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Area == nil {
		t.Area = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area)
	}

	key := Identifier

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Area[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Area", key)
	}

	t.Area[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area{
		Identifier: Identifier,
	}

	return t.Area[key], nil
}

// RenameArea renames an entry in the list Area within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) RenameArea(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union) error {
	if _, ok := t.Area[newK]; ok {
		return fmt.Errorf("key %v already exists in Area", newK)
	}

	e, ok := t.Area[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Area", oldK)
	}
	e.Identifier = newK

	t.Area[newK] = e
	delete(t.Area, oldK)
	return nil
}

// GetOrCreateAreaMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) GetOrCreateAreaMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area {
	if t.Area == nil {
		t.Area = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area)
	}
	return t.Area
}

// GetOrCreateArea retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) GetOrCreateArea(Identifier OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area {

	key := Identifier

	if v, ok := t.Area[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewArea(Identifier)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateArea got unexpected error: %v", err))
	}
	return v
}

// GetArea retrieves the value with the specified key from
// the Area map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) GetArea(Identifier OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area {

	if t == nil {
		return nil
	}

	key := Identifier

	if lm, ok := t.Area[key]; ok {
		return lm
	}
	return nil
}

// AppendArea appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area struct to the
// list Area of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) AppendArea(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) error {
	key := v.Identifier

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Area == nil {
		t.Area = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area)
	}

	if _, ok := t.Area[key]; ok {
		return fmt.Errorf("duplicate key for list Area %v", key)
	}

	t.Area[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Area {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area struct {
	ΛMetadata     []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config                 `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                                       `path:"@config" ygotAnnotation:"true"`
	Identifier    OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier   []ygot.Annotation                                                                                                       `path:"@identifier" ygotAnnotation:"true"`
	Interfaces    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces             `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces   []ygot.Annotation                                                                                                       `path:"@interfaces" ygotAnnotation:"true"`
	Lsdb          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb                   `path:"lsdb" module:"openconfig-network-instance"`
	ΛLsdb         []ygot.Annotation                                                                                                       `path:"@lsdb" ygotAnnotation:"true"`
	Mpls          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls                   `path:"mpls" module:"openconfig-network-instance"`
	ΛMpls         []ygot.Annotation                                                                                                       `path:"@mpls" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State                  `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                       `path:"@state" ygotAnnotation:"true"`
	VirtualLinks  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks           `path:"virtual-links" module:"openconfig-network-instance"`
	ΛVirtualLinks []ygot.Annotation                                                                                                       `path:"@virtual-links" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config{}
	return t.Config
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces{}
	return t.Interfaces
}

// GetOrCreateLsdb retrieves the value of the Lsdb field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetOrCreateLsdb() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb {
	if t.Lsdb != nil {
		return t.Lsdb
	}
	t.Lsdb = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb{}
	return t.Lsdb
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetOrCreateMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls{}
	return t.Mpls
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State{}
	return t.State
}

// GetOrCreateVirtualLinks retrieves the value of the VirtualLinks field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetOrCreateVirtualLinks() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks {
	if t.VirtualLinks != nil {
		return t.VirtualLinks
	}
	t.VirtualLinks = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks{}
	return t.VirtualLinks
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// GetLsdb returns the value of the Lsdb struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area. If the receiver or the field Lsdb is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetLsdb() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb {
	if t != nil && t.Lsdb != nil {
		return t.Lsdb
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetVirtualLinks returns the value of the VirtualLinks struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area. If the receiver or the field VirtualLinks is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetVirtualLinks() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks {
	if t != nil && t.VirtualLinks != nil {
		return t.VirtualLinks
	}
	return nil
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) GetIdentifier() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.Identifier == nil {
		return nil
	}
	return t.Identifier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
	t.Lsdb.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.State.PopulateDefaults()
	t.VirtualLinks.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"identifier": t.Identifier,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/identifier within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config struct {
	ΛMetadata   []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Identifier  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier []ygot.Annotation                                                                                                       `path:"@identifier" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) IsYANGGoStruct() {
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) GetIdentifier() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.Identifier == nil {
		return nil
	}
	return t.Identifier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                                `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) NewInterface(Id string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface{
		Id: &Id,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.Id = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) GetOrCreateInterface(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface {

	key := Id

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) GetInterface(Id string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface struct {
	ΛMetadata     []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config       `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                                                  `path:"@config" ygotAnnotation:"true"`
	EnableBfd     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd    `path:"enable-bfd" module:"openconfig-network-instance"`
	ΛEnableBfd    []ygot.Annotation                                                                                                                  `path:"@enable-bfd" ygotAnnotation:"true"`
	Id            *string                                                                                                                            `path:"id" module:"openconfig-network-instance"`
	ΛId           []ygot.Annotation                                                                                                                  `path:"@id" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                                                  `path:"@interface-ref" ygotAnnotation:"true"`
	LsaFilter     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter    `path:"lsa-filter" module:"openconfig-network-instance"`
	ΛLsaFilter    []ygot.Annotation                                                                                                                  `path:"@lsa-filter" ygotAnnotation:"true"`
	Mpls          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls         `path:"mpls" module:"openconfig-network-instance"`
	ΛMpls         []ygot.Annotation                                                                                                                  `path:"@mpls" ygotAnnotation:"true"`
	Neighbors     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors    `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors    []ygot.Annotation                                                                                                                  `path:"@neighbors" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Timers        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers       `path:"timers" module:"openconfig-network-instance"`
	ΛTimers       []ygot.Annotation                                                                                                                  `path:"@timers" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateEnableBfd retrieves the value of the EnableBfd field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd {
	if t.EnableBfd != nil {
		return t.EnableBfd
	}
	t.EnableBfd = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd{}
	return t.EnableBfd
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateLsaFilter retrieves the value of the LsaFilter field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateLsaFilter() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter {
	if t.LsaFilter != nil {
		return t.LsaFilter
	}
	t.LsaFilter = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter{}
	return t.LsaFilter
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls{}
	return t.Mpls
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors{}
	return t.Neighbors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers{}
	return t.Timers
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEnableBfd returns the value of the EnableBfd struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field EnableBfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd {
	if t != nil && t.EnableBfd != nil {
		return t.EnableBfd
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetLsaFilter returns the value of the LsaFilter struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field LsaFilter is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetLsaFilter() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter {
	if t != nil && t.LsaFilter != nil {
		return t.LsaFilter
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.EnableBfd.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.LsaFilter.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config struct {
	ΛMetadata                  []ygot.Annotation                       `path:"@" ygotAnnotation:"true"`
	AuthenticationType         *string                                 `path:"authentication-type" module:"openconfig-network-instance"`
	ΛAuthenticationType        []ygot.Annotation                       `path:"@authentication-type" ygotAnnotation:"true"`
	HideNetwork                *bool                                   `path:"hide-network" module:"openconfig-network-instance"`
	ΛHideNetwork               []ygot.Annotation                       `path:"@hide-network" ygotAnnotation:"true"`
	Id                         *string                                 `path:"id" module:"openconfig-network-instance"`
	ΛId                        []ygot.Annotation                       `path:"@id" ygotAnnotation:"true"`
	Metric                     *uint16                                 `path:"metric" module:"openconfig-network-instance"`
	ΛMetric                    []ygot.Annotation                       `path:"@metric" ygotAnnotation:"true"`
	MultiAreaAdjacencyPrimary  *bool                                   `path:"multi-area-adjacency-primary" module:"openconfig-network-instance"`
	ΛMultiAreaAdjacencyPrimary []ygot.Annotation                       `path:"@multi-area-adjacency-primary" ygotAnnotation:"true"`
	NetworkType                E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE `path:"network-type" module:"openconfig-network-instance"`
	ΛNetworkType               []ygot.Annotation                       `path:"@network-type" ygotAnnotation:"true"`
	Passive                    *bool                                   `path:"passive" module:"openconfig-network-instance"`
	ΛPassive                   []ygot.Annotation                       `path:"@passive" ygotAnnotation:"true"`
	Priority                   *uint8                                  `path:"priority" module:"openconfig-network-instance"`
	ΛPriority                  []ygot.Annotation                       `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetAuthenticationType retrieves the value of the leaf AuthenticationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationType is set, it can
// safely use t.GetAuthenticationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetAuthenticationType() string {
	if t == nil || t.AuthenticationType == nil {
		return ""
	}
	return *t.AuthenticationType
}

// GetHideNetwork retrieves the value of the leaf HideNetwork from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HideNetwork is set, it can
// safely use t.GetHideNetwork() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HideNetwork == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetHideNetwork() bool {
	if t == nil || t.HideNetwork == nil {
		return false
	}
	return *t.HideNetwork
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMultiAreaAdjacencyPrimary retrieves the value of the leaf MultiAreaAdjacencyPrimary from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultiAreaAdjacencyPrimary is set, it can
// safely use t.GetMultiAreaAdjacencyPrimary() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultiAreaAdjacencyPrimary == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetMultiAreaAdjacencyPrimary() bool {
	if t == nil || t.MultiAreaAdjacencyPrimary == nil {
		return true
	}
	return *t.MultiAreaAdjacencyPrimary
}

// GetNetworkType retrieves the value of the leaf NetworkType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkType is set, it can
// safely use t.GetNetworkType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetNetworkType() E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE {
	if t == nil || t.NetworkType == 0 {
		return 0
	}
	return t.NetworkType
}

// GetPassive retrieves the value of the leaf Passive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Passive is set, it can
// safely use t.GetPassive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Passive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetPassive() bool {
	if t == nil || t.Passive == nil {
		return false
	}
	return *t.Passive
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MultiAreaAdjacencyPrimary == nil {
		var v bool = true
		t.MultiAreaAdjacencyPrimary = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/enable-bfd YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd struct {
	ΛMetadata []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/enable-bfd/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/enable-bfd/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_EnableBfd_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/lsa-filter YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter struct {
	ΛMetadata []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/lsa-filter/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	All       *bool             `path:"all" module:"openconfig-network-instance"`
	ΛAll      []ygot.Annotation `path:"@all" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config) IsYANGGoStruct() {
}

// GetAll retrieves the value of the leaf All from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if All is set, it can
// safely use t.GetAll() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.All == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config) GetAll() bool {
	if t == nil || t.All == nil {
		return false
	}
	return *t.All
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/lsa-filter/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	All       *bool             `path:"all" module:"openconfig-network-instance"`
	ΛAll      []ygot.Annotation `path:"@all" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State) IsYANGGoStruct() {
}

// GetAll retrieves the value of the leaf All from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if All is set, it can
// safely use t.GetAll() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.All == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State) GetAll() bool {
	if t == nil || t.All == nil {
		return false
	}
	return *t.All
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_LsaFilter_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/mpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls struct {
	ΛMetadata   []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config     `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                                                     `path:"@config" ygotAnnotation:"true"`
	IgpLdpSync  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync `path:"igp-ldp-sync" module:"openconfig-network-instance"`
	ΛIgpLdpSync []ygot.Annotation                                                                                                                     `path:"@igp-ldp-sync" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State      `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config{}
	return t.Config
}

// GetOrCreateIgpLdpSync retrieves the value of the IgpLdpSync field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) GetOrCreateIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync {
	if t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	t.IgpLdpSync = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync{}
	return t.IgpLdpSync
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIgpLdpSync returns the value of the IgpLdpSync struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls. If the receiver or the field IgpLdpSync is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) GetIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync {
	if t != nil && t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.IgpLdpSync.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/mpls/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TrafficEngineeringMetric  *uint32           `path:"traffic-engineering-metric" module:"openconfig-network-instance"`
	ΛTrafficEngineeringMetric []ygot.Annotation `path:"@traffic-engineering-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config) IsYANGGoStruct() {
}

// GetTrafficEngineeringMetric retrieves the value of the leaf TrafficEngineeringMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficEngineeringMetric is set, it can
// safely use t.GetTrafficEngineeringMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficEngineeringMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config) GetTrafficEngineeringMetric() uint32 {
	if t == nil || t.TrafficEngineeringMetric == nil {
		return 0
	}
	return *t.TrafficEngineeringMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/mpls/igp-ldp-sync YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync struct {
	ΛMetadata []ygot.Annotation                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/mpls/igp-ldp-sync/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint32           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) GetPostSessionUpDelay() uint32 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/mpls/igp-ldp-sync/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint32           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
	Synchronized        *bool             `path:"synchronized" module:"openconfig-network-instance"`
	ΛSynchronized       []ygot.Annotation `path:"@synchronized" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) GetPostSessionUpDelay() uint32 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// GetSynchronized retrieves the value of the leaf Synchronized from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Synchronized is set, it can
// safely use t.GetSynchronized() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Synchronized == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) GetSynchronized() bool {
	if t == nil || t.Synchronized == nil {
		return false
	}
	return *t.Synchronized
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_IgpLdpSync_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/mpls/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TrafficEngineeringMetric  *uint32           `path:"traffic-engineering-metric" module:"openconfig-network-instance"`
	ΛTrafficEngineeringMetric []ygot.Annotation `path:"@traffic-engineering-metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State) IsYANGGoStruct() {
}

// GetTrafficEngineeringMetric retrieves the value of the leaf TrafficEngineeringMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficEngineeringMetric is set, it can
// safely use t.GetTrafficEngineeringMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficEngineeringMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State) GetTrafficEngineeringMetric() uint32 {
	if t == nil || t.TrafficEngineeringMetric == nil {
		return 0
	}
	return *t.TrafficEngineeringMetric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Mpls_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                                   `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) NewNeighbor(RouterId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor)
	}

	key := RouterId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor{
		RouterId: &RouterId,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.RouterId = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) GetOrCreateNeighbor(RouterId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor {

	key := RouterId

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(RouterId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) GetNeighbor(RouterId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := RouterId

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) error {
	if v.RouterId == nil {
		return fmt.Errorf("invalid nil key received for RouterId")
	}

	key := *v.RouterId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor struct {
	ΛMetadata []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	RouterId  *string                                                                                                                                         `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation                                                                                                                               `path:"@router-id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RouterId == nil {
		return nil, fmt.Errorf("nil value for key RouterId")
	}

	return map[string]interface{}{
		"router-id": *t.RouterId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/neighbors/neighbor/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint16           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	RouterId  *string           `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId []ygot.Annotation `path:"@router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State struct {
	ΛMetadata                  []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	AdjacencyState             E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE `path:"adjacency-state" module:"openconfig-network-instance"`
	ΛAdjacencyState            []ygot.Annotation                         `path:"@adjacency-state" ygotAnnotation:"true"`
	BackupDesignatedRouter     *string                                   `path:"backup-designated-router" module:"openconfig-network-instance"`
	ΛBackupDesignatedRouter    []ygot.Annotation                         `path:"@backup-designated-router" ygotAnnotation:"true"`
	DeadTime                   *uint64                                   `path:"dead-time" module:"openconfig-network-instance"`
	ΛDeadTime                  []ygot.Annotation                         `path:"@dead-time" ygotAnnotation:"true"`
	DesignatedRouter           *string                                   `path:"designated-router" module:"openconfig-network-instance"`
	ΛDesignatedRouter          []ygot.Annotation                         `path:"@designated-router" ygotAnnotation:"true"`
	LastEstablishedTime        *uint64                                   `path:"last-established-time" module:"openconfig-network-instance"`
	ΛLastEstablishedTime       []ygot.Annotation                         `path:"@last-established-time" ygotAnnotation:"true"`
	Metric                     *uint16                                   `path:"metric" module:"openconfig-network-instance"`
	ΛMetric                    []ygot.Annotation                         `path:"@metric" ygotAnnotation:"true"`
	OptionalCapabilities       *string                                   `path:"optional-capabilities" module:"openconfig-network-instance"`
	ΛOptionalCapabilities      []ygot.Annotation                         `path:"@optional-capabilities" ygotAnnotation:"true"`
	Priority                   *uint8                                    `path:"priority" module:"openconfig-network-instance"`
	ΛPriority                  []ygot.Annotation                         `path:"@priority" ygotAnnotation:"true"`
	RetransmissionQueueLength  *uint32                                   `path:"retransmission-queue-length" module:"openconfig-network-instance"`
	ΛRetransmissionQueueLength []ygot.Annotation                         `path:"@retransmission-queue-length" ygotAnnotation:"true"`
	RouterId                   *string                                   `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId                  []ygot.Annotation                         `path:"@router-id" ygotAnnotation:"true"`
	StateChanges               *uint32                                   `path:"state-changes" module:"openconfig-network-instance"`
	ΛStateChanges              []ygot.Annotation                         `path:"@state-changes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetAdjacencyState retrieves the value of the leaf AdjacencyState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjacencyState is set, it can
// safely use t.GetAdjacencyState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjacencyState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetAdjacencyState() E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE {
	if t == nil || t.AdjacencyState == 0 {
		return 0
	}
	return t.AdjacencyState
}

// GetBackupDesignatedRouter retrieves the value of the leaf BackupDesignatedRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BackupDesignatedRouter is set, it can
// safely use t.GetBackupDesignatedRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BackupDesignatedRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetBackupDesignatedRouter() string {
	if t == nil || t.BackupDesignatedRouter == nil {
		return ""
	}
	return *t.BackupDesignatedRouter
}

// GetDeadTime retrieves the value of the leaf DeadTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadTime is set, it can
// safely use t.GetDeadTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetDeadTime() uint64 {
	if t == nil || t.DeadTime == nil {
		return 0
	}
	return *t.DeadTime
}

// GetDesignatedRouter retrieves the value of the leaf DesignatedRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DesignatedRouter is set, it can
// safely use t.GetDesignatedRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DesignatedRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetDesignatedRouter() string {
	if t == nil || t.DesignatedRouter == nil {
		return ""
	}
	return *t.DesignatedRouter
}

// GetLastEstablishedTime retrieves the value of the leaf LastEstablishedTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastEstablishedTime is set, it can
// safely use t.GetLastEstablishedTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastEstablishedTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetLastEstablishedTime() uint64 {
	if t == nil || t.LastEstablishedTime == nil {
		return 0
	}
	return *t.LastEstablishedTime
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetOptionalCapabilities retrieves the value of the leaf OptionalCapabilities from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OptionalCapabilities is set, it can
// safely use t.GetOptionalCapabilities() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OptionalCapabilities == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetOptionalCapabilities() string {
	if t == nil || t.OptionalCapabilities == nil {
		return ""
	}
	return *t.OptionalCapabilities
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetRetransmissionQueueLength retrieves the value of the leaf RetransmissionQueueLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetransmissionQueueLength is set, it can
// safely use t.GetRetransmissionQueueLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetransmissionQueueLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetRetransmissionQueueLength() uint32 {
	if t == nil || t.RetransmissionQueueLength == nil {
		return 0
	}
	return *t.RetransmissionQueueLength
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetStateChanges retrieves the value of the leaf StateChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StateChanges is set, it can
// safely use t.GetStateChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StateChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) GetStateChanges() uint32 {
	if t == nil || t.StateChanges == nil {
		return 0
	}
	return *t.StateChanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State struct {
	ΛMetadata                  []ygot.Annotation                       `path:"@" ygotAnnotation:"true"`
	AuthenticationType         *string                                 `path:"authentication-type" module:"openconfig-network-instance"`
	ΛAuthenticationType        []ygot.Annotation                       `path:"@authentication-type" ygotAnnotation:"true"`
	HideNetwork                *bool                                   `path:"hide-network" module:"openconfig-network-instance"`
	ΛHideNetwork               []ygot.Annotation                       `path:"@hide-network" ygotAnnotation:"true"`
	Id                         *string                                 `path:"id" module:"openconfig-network-instance"`
	ΛId                        []ygot.Annotation                       `path:"@id" ygotAnnotation:"true"`
	Metric                     *uint16                                 `path:"metric" module:"openconfig-network-instance"`
	ΛMetric                    []ygot.Annotation                       `path:"@metric" ygotAnnotation:"true"`
	MultiAreaAdjacencyPrimary  *bool                                   `path:"multi-area-adjacency-primary" module:"openconfig-network-instance"`
	ΛMultiAreaAdjacencyPrimary []ygot.Annotation                       `path:"@multi-area-adjacency-primary" ygotAnnotation:"true"`
	NetworkType                E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE `path:"network-type" module:"openconfig-network-instance"`
	ΛNetworkType               []ygot.Annotation                       `path:"@network-type" ygotAnnotation:"true"`
	Passive                    *bool                                   `path:"passive" module:"openconfig-network-instance"`
	ΛPassive                   []ygot.Annotation                       `path:"@passive" ygotAnnotation:"true"`
	Priority                   *uint8                                  `path:"priority" module:"openconfig-network-instance"`
	ΛPriority                  []ygot.Annotation                       `path:"@priority" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetAuthenticationType retrieves the value of the leaf AuthenticationType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationType is set, it can
// safely use t.GetAuthenticationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetAuthenticationType() string {
	if t == nil || t.AuthenticationType == nil {
		return ""
	}
	return *t.AuthenticationType
}

// GetHideNetwork retrieves the value of the leaf HideNetwork from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HideNetwork is set, it can
// safely use t.GetHideNetwork() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HideNetwork == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetHideNetwork() bool {
	if t == nil || t.HideNetwork == nil {
		return false
	}
	return *t.HideNetwork
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMultiAreaAdjacencyPrimary retrieves the value of the leaf MultiAreaAdjacencyPrimary from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultiAreaAdjacencyPrimary is set, it can
// safely use t.GetMultiAreaAdjacencyPrimary() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultiAreaAdjacencyPrimary == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetMultiAreaAdjacencyPrimary() bool {
	if t == nil || t.MultiAreaAdjacencyPrimary == nil {
		return true
	}
	return *t.MultiAreaAdjacencyPrimary
}

// GetNetworkType retrieves the value of the leaf NetworkType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkType is set, it can
// safely use t.GetNetworkType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetNetworkType() E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE {
	if t == nil || t.NetworkType == 0 {
		return 0
	}
	return t.NetworkType
}

// GetPassive retrieves the value of the leaf Passive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Passive is set, it can
// safely use t.GetPassive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Passive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetPassive() bool {
	if t == nil || t.Passive == nil {
		return false
	}
	return *t.Passive
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MultiAreaAdjacencyPrimary == nil {
		var v bool = true
		t.MultiAreaAdjacencyPrimary = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers struct {
	ΛMetadata []ygot.Annotation                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config struct {
	ΛMetadata               []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DeadInterval            *uint32           `path:"dead-interval" module:"openconfig-network-instance"`
	ΛDeadInterval           []ygot.Annotation `path:"@dead-interval" ygotAnnotation:"true"`
	HelloInterval           *uint32           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval          []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	RetransmissionInterval  *uint32           `path:"retransmission-interval" module:"openconfig-network-instance"`
	ΛRetransmissionInterval []ygot.Annotation `path:"@retransmission-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) IsYANGGoStruct() {
}

// GetDeadInterval retrieves the value of the leaf DeadInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadInterval is set, it can
// safely use t.GetDeadInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) GetDeadInterval() uint32 {
	if t == nil || t.DeadInterval == nil {
		return 0
	}
	return *t.DeadInterval
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) GetHelloInterval() uint32 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetRetransmissionInterval retrieves the value of the leaf RetransmissionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetransmissionInterval is set, it can
// safely use t.GetRetransmissionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetransmissionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) GetRetransmissionInterval() uint32 {
	if t == nil || t.RetransmissionInterval == nil {
		return 0
	}
	return *t.RetransmissionInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State struct {
	ΛMetadata               []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DeadInterval            *uint32           `path:"dead-interval" module:"openconfig-network-instance"`
	ΛDeadInterval           []ygot.Annotation `path:"@dead-interval" ygotAnnotation:"true"`
	HelloInterval           *uint32           `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval          []ygot.Annotation `path:"@hello-interval" ygotAnnotation:"true"`
	RetransmissionInterval  *uint32           `path:"retransmission-interval" module:"openconfig-network-instance"`
	ΛRetransmissionInterval []ygot.Annotation `path:"@retransmission-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) IsYANGGoStruct() {
}

// GetDeadInterval retrieves the value of the leaf DeadInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadInterval is set, it can
// safely use t.GetDeadInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) GetDeadInterval() uint32 {
	if t == nil || t.DeadInterval == nil {
		return 0
	}
	return *t.DeadInterval
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) GetHelloInterval() uint32 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetRetransmissionInterval retrieves the value of the leaf RetransmissionInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetransmissionInterval is set, it can
// safely use t.GetRetransmissionInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetransmissionInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) GetRetransmissionInterval() uint32 {
	if t == nil || t.RetransmissionInterval == nil {
		return 0
	}
	return *t.RetransmissionInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Interfaces_Interface_Timers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb struct {
	ΛMetadata []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	LsaTypes  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes `path:"lsa-types" module:"openconfig-network-instance"`
	ΛLsaTypes []ygot.Annotation                                                                                              `path:"@lsa-types" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State    `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) IsYANGGoStruct() {
}

// GetOrCreateLsaTypes retrieves the value of the LsaTypes field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) GetOrCreateLsaTypes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes {
	if t.LsaTypes != nil {
		return t.LsaTypes
	}
	t.LsaTypes = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes{}
	return t.LsaTypes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State{}
	return t.State
}

// GetLsaTypes returns the value of the LsaTypes struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb. If the receiver or the field LsaTypes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) GetLsaTypes() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes {
	if t != nil && t.LsaTypes != nil {
		return t.LsaTypes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.LsaTypes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	LsaType   map[E_OpenconfigOspfTypes_OSPF_LSA_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType `path:"lsa-type" module:"openconfig-network-instance"`
	ΛLsaType  []ygot.Annotation                                                                                                                                              `path:"@lsa-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) IsYANGGoStruct() {
}

// NewLsaType creates a new entry in the LsaType list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) NewLsaType(Type E_OpenconfigOspfTypes_OSPF_LSA_TYPE) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LsaType == nil {
		t.LsaType = make(map[E_OpenconfigOspfTypes_OSPF_LSA_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType)
	}

	key := Type

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LsaType[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LsaType", key)
	}

	t.LsaType[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType{
		Type: Type,
	}

	return t.LsaType[key], nil
}

// RenameLsaType renames an entry in the list LsaType within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) RenameLsaType(oldK, newK E_OpenconfigOspfTypes_OSPF_LSA_TYPE) error {
	if _, ok := t.LsaType[newK]; ok {
		return fmt.Errorf("key %v already exists in LsaType", newK)
	}

	e, ok := t.LsaType[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in LsaType", oldK)
	}
	e.Type = newK

	t.LsaType[newK] = e
	delete(t.LsaType, oldK)
	return nil
}

// GetOrCreateLsaTypeMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) GetOrCreateLsaTypeMap() map[E_OpenconfigOspfTypes_OSPF_LSA_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType {
	if t.LsaType == nil {
		t.LsaType = make(map[E_OpenconfigOspfTypes_OSPF_LSA_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType)
	}
	return t.LsaType
}

// GetOrCreateLsaType retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) GetOrCreateLsaType(Type E_OpenconfigOspfTypes_OSPF_LSA_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType {

	key := Type

	if v, ok := t.LsaType[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLsaType(Type)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLsaType got unexpected error: %v", err))
	}
	return v
}

// GetLsaType retrieves the value with the specified key from
// the LsaType map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) GetLsaType(Type E_OpenconfigOspfTypes_OSPF_LSA_TYPE) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType {

	if t == nil {
		return nil
	}

	key := Type

	if lm, ok := t.LsaType[key]; ok {
		return lm
	}
	return nil
}

// AppendLsaType appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType struct to the
// list LsaType of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) AppendLsaType(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) error {
	key := v.Type

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LsaType == nil {
		t.LsaType = make(map[E_OpenconfigOspfTypes_OSPF_LSA_TYPE]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType)
	}

	if _, ok := t.LsaType[key]; ok {
		return fmt.Errorf("duplicate key for list LsaType %v", key)
	}

	t.LsaType[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.LsaType {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Lsas      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas  `path:"lsas" module:"openconfig-network-instance"`
	ΛLsas     []ygot.Annotation                                                                                                            `path:"@lsas" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPF_LSA_TYPE                                                                                          `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                            `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) IsYANGGoStruct() {
}

// GetOrCreateLsas retrieves the value of the Lsas field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) GetOrCreateLsas() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas {
	if t.Lsas != nil {
		return t.Lsas
	}
	t.Lsas = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas{}
	return t.Lsas
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State{}
	return t.State
}

// GetLsas returns the value of the Lsas struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType. If the receiver or the field Lsas is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) GetLsas() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas {
	if t != nil && t.Lsas != nil {
		return t.Lsas
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) GetType() E_OpenconfigOspfTypes_OSPF_LSA_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Lsas.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"type": t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas struct {
	ΛMetadata []ygot.Annotation                                                                                                                          `path:"@" ygotAnnotation:"true"`
	Lsa       map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa `path:"lsa" module:"openconfig-network-instance"`
	ΛLsa      []ygot.Annotation                                                                                                                          `path:"@lsa" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) IsYANGGoStruct() {
}

// NewLsa creates a new entry in the Lsa list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) NewLsa(LinkStateId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Lsa == nil {
		t.Lsa = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa)
	}

	key := LinkStateId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Lsa[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Lsa", key)
	}

	t.Lsa[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa{
		LinkStateId: &LinkStateId,
	}

	return t.Lsa[key], nil
}

// RenameLsa renames an entry in the list Lsa within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) RenameLsa(oldK, newK string) error {
	if _, ok := t.Lsa[newK]; ok {
		return fmt.Errorf("key %v already exists in Lsa", newK)
	}

	e, ok := t.Lsa[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Lsa", oldK)
	}
	e.LinkStateId = &newK

	t.Lsa[newK] = e
	delete(t.Lsa, oldK)
	return nil
}

// GetOrCreateLsaMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) GetOrCreateLsaMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa {
	if t.Lsa == nil {
		t.Lsa = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa)
	}
	return t.Lsa
}

// GetOrCreateLsa retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) GetOrCreateLsa(LinkStateId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa {

	key := LinkStateId

	if v, ok := t.Lsa[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLsa(LinkStateId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLsa got unexpected error: %v", err))
	}
	return v
}

// GetLsa retrieves the value with the specified key from
// the Lsa map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) GetLsa(LinkStateId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa {

	if t == nil {
		return nil
	}

	key := LinkStateId

	if lm, ok := t.Lsa[key]; ok {
		return lm
	}
	return nil
}

// AppendLsa appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa struct to the
// list Lsa of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) AppendLsa(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) error {
	if v.LinkStateId == nil {
		return fmt.Errorf("invalid nil key received for LinkStateId")
	}

	key := *v.LinkStateId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Lsa == nil {
		t.Lsa = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa)
	}

	if _, ok := t.Lsa[key]; ok {
		return fmt.Errorf("duplicate key for list Lsa %v", key)
	}

	t.Lsa[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Lsa {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa struct {
	ΛMetadata        []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	AsExternalLsa    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa   `path:"as-external-lsa" module:"openconfig-network-instance"`
	ΛAsExternalLsa   []ygot.Annotation                                                                                                                               `path:"@as-external-lsa" ygotAnnotation:"true"`
	LinkStateId      *string                                                                                                                                         `path:"link-state-id" module:"openconfig-network-instance"`
	ΛLinkStateId     []ygot.Annotation                                                                                                                               `path:"@link-state-id" ygotAnnotation:"true"`
	NetworkLsa       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa      `path:"network-lsa" module:"openconfig-network-instance"`
	ΛNetworkLsa      []ygot.Annotation                                                                                                                               `path:"@network-lsa" ygotAnnotation:"true"`
	NssaExternalLsa  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa `path:"nssa-external-lsa" module:"openconfig-network-instance"`
	ΛNssaExternalLsa []ygot.Annotation                                                                                                                               `path:"@nssa-external-lsa" ygotAnnotation:"true"`
	OpaqueLsa        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa       `path:"opaque-lsa" module:"openconfig-network-instance"`
	ΛOpaqueLsa       []ygot.Annotation                                                                                                                               `path:"@opaque-lsa" ygotAnnotation:"true"`
	RouterLsa        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa       `path:"router-lsa" module:"openconfig-network-instance"`
	ΛRouterLsa       []ygot.Annotation                                                                                                                               `path:"@router-lsa" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
	SummaryLsa       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa      `path:"summary-lsa" module:"openconfig-network-instance"`
	ΛSummaryLsa      []ygot.Annotation                                                                                                                               `path:"@summary-lsa" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) IsYANGGoStruct() {
}

// GetOrCreateAsExternalLsa retrieves the value of the AsExternalLsa field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOrCreateAsExternalLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa {
	if t.AsExternalLsa != nil {
		return t.AsExternalLsa
	}
	t.AsExternalLsa = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa{}
	return t.AsExternalLsa
}

// GetOrCreateNetworkLsa retrieves the value of the NetworkLsa field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOrCreateNetworkLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa {
	if t.NetworkLsa != nil {
		return t.NetworkLsa
	}
	t.NetworkLsa = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa{}
	return t.NetworkLsa
}

// GetOrCreateNssaExternalLsa retrieves the value of the NssaExternalLsa field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOrCreateNssaExternalLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa {
	if t.NssaExternalLsa != nil {
		return t.NssaExternalLsa
	}
	t.NssaExternalLsa = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa{}
	return t.NssaExternalLsa
}

// GetOrCreateOpaqueLsa retrieves the value of the OpaqueLsa field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOrCreateOpaqueLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa {
	if t.OpaqueLsa != nil {
		return t.OpaqueLsa
	}
	t.OpaqueLsa = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa{}
	return t.OpaqueLsa
}

// GetOrCreateRouterLsa retrieves the value of the RouterLsa field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOrCreateRouterLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa {
	if t.RouterLsa != nil {
		return t.RouterLsa
	}
	t.RouterLsa = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa{}
	return t.RouterLsa
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State{}
	return t.State
}

// GetOrCreateSummaryLsa retrieves the value of the SummaryLsa field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOrCreateSummaryLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa {
	if t.SummaryLsa != nil {
		return t.SummaryLsa
	}
	t.SummaryLsa = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa{}
	return t.SummaryLsa
}

// GetAsExternalLsa returns the value of the AsExternalLsa struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa. If the receiver or the field AsExternalLsa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetAsExternalLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa {
	if t != nil && t.AsExternalLsa != nil {
		return t.AsExternalLsa
	}
	return nil
}

// GetNetworkLsa returns the value of the NetworkLsa struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa. If the receiver or the field NetworkLsa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetNetworkLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa {
	if t != nil && t.NetworkLsa != nil {
		return t.NetworkLsa
	}
	return nil
}

// GetNssaExternalLsa returns the value of the NssaExternalLsa struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa. If the receiver or the field NssaExternalLsa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetNssaExternalLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa {
	if t != nil && t.NssaExternalLsa != nil {
		return t.NssaExternalLsa
	}
	return nil
}

// GetOpaqueLsa returns the value of the OpaqueLsa struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa. If the receiver or the field OpaqueLsa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetOpaqueLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa {
	if t != nil && t.OpaqueLsa != nil {
		return t.OpaqueLsa
	}
	return nil
}

// GetRouterLsa returns the value of the RouterLsa struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa. If the receiver or the field RouterLsa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetRouterLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa {
	if t != nil && t.RouterLsa != nil {
		return t.RouterLsa
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSummaryLsa returns the value of the SummaryLsa struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa. If the receiver or the field SummaryLsa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetSummaryLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa {
	if t != nil && t.SummaryLsa != nil {
		return t.SummaryLsa
	}
	return nil
}

// GetLinkStateId retrieves the value of the leaf LinkStateId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkStateId is set, it can
// safely use t.GetLinkStateId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkStateId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) GetLinkStateId() string {
	if t == nil || t.LinkStateId == nil {
		return ""
	}
	return *t.LinkStateId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AsExternalLsa.PopulateDefaults()
	t.NetworkLsa.PopulateDefaults()
	t.NssaExternalLsa.PopulateDefaults()
	t.OpaqueLsa.PopulateDefaults()
	t.RouterLsa.PopulateDefaults()
	t.State.PopulateDefaults()
	t.SummaryLsa.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LinkStateId == nil {
		return nil, fmt.Errorf("nil value for key LinkStateId")
	}

	return map[string]interface{}{
		"link-state-id": *t.LinkStateId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/as-external-lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	TypesOfService  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService `path:"types-of-service" module:"openconfig-network-instance"`
	ΛTypesOfService []ygot.Annotation                                                                                                                                            `path:"@types-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State{}
	return t.State
}

// GetOrCreateTypesOfService retrieves the value of the TypesOfService field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) GetOrCreateTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService {
	if t.TypesOfService != nil {
		return t.TypesOfService
	}
	t.TypesOfService = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService{}
	return t.TypesOfService
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTypesOfService returns the value of the TypesOfService struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa. If the receiver or the field TypesOfService is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) GetTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService {
	if t != nil && t.TypesOfService != nil {
		return t.TypesOfService
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.TypesOfService.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/as-external-lsa/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	ExternalRouteTag   *uint32                                                                                                                                                         `path:"external-route-tag" module:"openconfig-network-instance"`
	ΛExternalRouteTag  []ygot.Annotation                                                                                                                                               `path:"@external-route-tag" ygotAnnotation:"true"`
	ForwardingAddress  *string                                                                                                                                                         `path:"forwarding-address" module:"openconfig-network-instance"`
	ΛForwardingAddress []ygot.Annotation                                                                                                                                               `path:"@forwarding-address" ygotAnnotation:"true"`
	Mask               *uint8                                                                                                                                                          `path:"mask" module:"openconfig-network-instance"`
	ΛMask              []ygot.Annotation                                                                                                                                               `path:"@mask" ygotAnnotation:"true"`
	Metric             *uint16                                                                                                                                                         `path:"metric" module:"openconfig-network-instance"`
	ΛMetric            []ygot.Annotation                                                                                                                                               `path:"@metric" ygotAnnotation:"true"`
	MetricType         E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType `path:"metric-type" module:"openconfig-network-instance"`
	ΛMetricType        []ygot.Annotation                                                                                                                                               `path:"@metric-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) IsYANGGoStruct() {
}

// GetExternalRouteTag retrieves the value of the leaf ExternalRouteTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRouteTag is set, it can
// safely use t.GetExternalRouteTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRouteTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) GetExternalRouteTag() uint32 {
	if t == nil || t.ExternalRouteTag == nil {
		return 0
	}
	return *t.ExternalRouteTag
}

// GetForwardingAddress retrieves the value of the leaf ForwardingAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingAddress is set, it can
// safely use t.GetForwardingAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) GetForwardingAddress() string {
	if t == nil || t.ForwardingAddress == nil {
		return ""
	}
	return *t.ForwardingAddress
}

// GetMask retrieves the value of the leaf Mask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mask is set, it can
// safely use t.GetMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) GetMask() uint8 {
	if t == nil || t.Mask == nil {
		return 0
	}
	return *t.Mask
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMetricType retrieves the value of the leaf MetricType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricType is set, it can
// safely use t.GetMetricType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) GetMetricType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType {
	if t == nil || t.MetricType == 0 {
		return 0
	}
	return t.MetricType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/as-external-lsa/types-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	TypeOfService  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService `path:"type-of-service" module:"openconfig-network-instance"`
	ΛTypeOfService []ygot.Annotation                                                                                                                                                                    `path:"@type-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) IsYANGGoStruct() {
}

// NewTypeOfService creates a new entry in the TypeOfService list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) NewTypeOfService(Tos uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService)
	}

	key := Tos

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeOfService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeOfService", key)
	}

	t.TypeOfService[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService{
		Tos: &Tos,
	}

	return t.TypeOfService[key], nil
}

// RenameTypeOfService renames an entry in the list TypeOfService within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) RenameTypeOfService(oldK, newK uint8) error {
	if _, ok := t.TypeOfService[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeOfService", newK)
	}

	e, ok := t.TypeOfService[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeOfService", oldK)
	}
	e.Tos = &newK

	t.TypeOfService[newK] = e
	delete(t.TypeOfService, oldK)
	return nil
}

// GetOrCreateTypeOfServiceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) GetOrCreateTypeOfServiceMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService {
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService)
	}
	return t.TypeOfService
}

// GetOrCreateTypeOfService retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) GetOrCreateTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService {

	key := Tos

	if v, ok := t.TypeOfService[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeOfService(Tos)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeOfService got unexpected error: %v", err))
	}
	return v
}

// GetTypeOfService retrieves the value with the specified key from
// the TypeOfService map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) GetTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService {

	if t == nil {
		return nil
	}

	key := Tos

	if lm, ok := t.TypeOfService[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeOfService appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService struct to the
// list TypeOfService of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) AppendTypeOfService(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) error {
	if v.Tos == nil {
		return fmt.Errorf("invalid nil key received for Tos")
	}

	key := *v.Tos

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService)
	}

	if _, ok := t.TypeOfService[key]; ok {
		return fmt.Errorf("duplicate key for list TypeOfService %v", key)
	}

	t.TypeOfService[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeOfService {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/as-external-lsa/types-of-service/type-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
	Tos       *uint8                                                                                                                                                                           `path:"tos" module:"openconfig-network-instance"`
	ΛTos      []ygot.Annotation                                                                                                                                                                `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Tos == nil {
		return nil, fmt.Errorf("nil value for key Tos")
	}

	return map[string]interface{}{
		"tos": *t.Tos,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/as-external-lsa/types-of-service/type-of-service/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExternalRouteTag   *uint32           `path:"external-route-tag" module:"openconfig-network-instance"`
	ΛExternalRouteTag  []ygot.Annotation `path:"@external-route-tag" ygotAnnotation:"true"`
	ForwardingAddress  *string           `path:"forwarding-address" module:"openconfig-network-instance"`
	ΛForwardingAddress []ygot.Annotation `path:"@forwarding-address" ygotAnnotation:"true"`
	Metric             *uint16           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric            []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	Tos                *uint8            `path:"tos" module:"openconfig-network-instance"`
	ΛTos               []ygot.Annotation `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) IsYANGGoStruct() {
}

// GetExternalRouteTag retrieves the value of the leaf ExternalRouteTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRouteTag is set, it can
// safely use t.GetExternalRouteTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRouteTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) GetExternalRouteTag() uint32 {
	if t == nil || t.ExternalRouteTag == nil {
		return 0
	}
	return *t.ExternalRouteTag
}

// GetForwardingAddress retrieves the value of the leaf ForwardingAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingAddress is set, it can
// safely use t.GetForwardingAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) GetForwardingAddress() string {
	if t == nil || t.ForwardingAddress == nil {
		return ""
	}
	return *t.ForwardingAddress
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_TypesOfService_TypeOfService_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/network-lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa struct {
	ΛMetadata []ygot.Annotation                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/network-lsa/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AttachedRouter  []string          `path:"attached-router" module:"openconfig-network-instance"`
	ΛAttachedRouter []ygot.Annotation `path:"@attached-router" ygotAnnotation:"true"`
	NetworkMask     *uint8            `path:"network-mask" module:"openconfig-network-instance"`
	ΛNetworkMask    []ygot.Annotation `path:"@network-mask" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) IsYANGGoStruct() {
}

// GetAttachedRouter retrieves the value of the leaf AttachedRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AttachedRouter is set, it can
// safely use t.GetAttachedRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AttachedRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) GetAttachedRouter() []string {
	if t == nil || t.AttachedRouter == nil {
		return nil
	}
	return t.AttachedRouter
}

// GetNetworkMask retrieves the value of the leaf NetworkMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkMask is set, it can
// safely use t.GetNetworkMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) GetNetworkMask() uint8 {
	if t == nil || t.NetworkMask == nil {
		return 0
	}
	return *t.NetworkMask
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NetworkLsa_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/nssa-external-lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	TypesOfService  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService `path:"types-of-service" module:"openconfig-network-instance"`
	ΛTypesOfService []ygot.Annotation                                                                                                                                              `path:"@types-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State{}
	return t.State
}

// GetOrCreateTypesOfService retrieves the value of the TypesOfService field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) GetOrCreateTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService {
	if t.TypesOfService != nil {
		return t.TypesOfService
	}
	t.TypesOfService = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService{}
	return t.TypesOfService
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTypesOfService returns the value of the TypesOfService struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa. If the receiver or the field TypesOfService is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) GetTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService {
	if t != nil && t.TypesOfService != nil {
		return t.TypesOfService
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.TypesOfService.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/nssa-external-lsa/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	ExternalRouteTag   *uint32                                                                                                                                                         `path:"external-route-tag" module:"openconfig-network-instance"`
	ΛExternalRouteTag  []ygot.Annotation                                                                                                                                               `path:"@external-route-tag" ygotAnnotation:"true"`
	ForwardingAddress  *string                                                                                                                                                         `path:"forwarding-address" module:"openconfig-network-instance"`
	ΛForwardingAddress []ygot.Annotation                                                                                                                                               `path:"@forwarding-address" ygotAnnotation:"true"`
	Mask               *uint8                                                                                                                                                          `path:"mask" module:"openconfig-network-instance"`
	ΛMask              []ygot.Annotation                                                                                                                                               `path:"@mask" ygotAnnotation:"true"`
	Metric             *uint16                                                                                                                                                         `path:"metric" module:"openconfig-network-instance"`
	ΛMetric            []ygot.Annotation                                                                                                                                               `path:"@metric" ygotAnnotation:"true"`
	MetricType         E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType `path:"metric-type" module:"openconfig-network-instance"`
	ΛMetricType        []ygot.Annotation                                                                                                                                               `path:"@metric-type" ygotAnnotation:"true"`
	Propagate          *bool                                                                                                                                                           `path:"propagate" module:"openconfig-network-instance"`
	ΛPropagate         []ygot.Annotation                                                                                                                                               `path:"@propagate" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) IsYANGGoStruct() {
}

// GetExternalRouteTag retrieves the value of the leaf ExternalRouteTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRouteTag is set, it can
// safely use t.GetExternalRouteTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRouteTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) GetExternalRouteTag() uint32 {
	if t == nil || t.ExternalRouteTag == nil {
		return 0
	}
	return *t.ExternalRouteTag
}

// GetForwardingAddress retrieves the value of the leaf ForwardingAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingAddress is set, it can
// safely use t.GetForwardingAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) GetForwardingAddress() string {
	if t == nil || t.ForwardingAddress == nil {
		return ""
	}
	return *t.ForwardingAddress
}

// GetMask retrieves the value of the leaf Mask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mask is set, it can
// safely use t.GetMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) GetMask() uint8 {
	if t == nil || t.Mask == nil {
		return 0
	}
	return *t.Mask
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetMetricType retrieves the value of the leaf MetricType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MetricType is set, it can
// safely use t.GetMetricType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MetricType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) GetMetricType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType {
	if t == nil || t.MetricType == 0 {
		return 0
	}
	return t.MetricType
}

// GetPropagate retrieves the value of the leaf Propagate from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Propagate is set, it can
// safely use t.GetPropagate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Propagate == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) GetPropagate() bool {
	if t == nil || t.Propagate == nil {
		return false
	}
	return *t.Propagate
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/nssa-external-lsa/types-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	TypeOfService  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService `path:"type-of-service" module:"openconfig-network-instance"`
	ΛTypeOfService []ygot.Annotation                                                                                                                                                                      `path:"@type-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) IsYANGGoStruct() {
}

// NewTypeOfService creates a new entry in the TypeOfService list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) NewTypeOfService(Tos uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService)
	}

	key := Tos

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeOfService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeOfService", key)
	}

	t.TypeOfService[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService{
		Tos: &Tos,
	}

	return t.TypeOfService[key], nil
}

// RenameTypeOfService renames an entry in the list TypeOfService within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) RenameTypeOfService(oldK, newK uint8) error {
	if _, ok := t.TypeOfService[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeOfService", newK)
	}

	e, ok := t.TypeOfService[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeOfService", oldK)
	}
	e.Tos = &newK

	t.TypeOfService[newK] = e
	delete(t.TypeOfService, oldK)
	return nil
}

// GetOrCreateTypeOfServiceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) GetOrCreateTypeOfServiceMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService {
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService)
	}
	return t.TypeOfService
}

// GetOrCreateTypeOfService retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) GetOrCreateTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService {

	key := Tos

	if v, ok := t.TypeOfService[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeOfService(Tos)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeOfService got unexpected error: %v", err))
	}
	return v
}

// GetTypeOfService retrieves the value with the specified key from
// the TypeOfService map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) GetTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService {

	if t == nil {
		return nil
	}

	key := Tos

	if lm, ok := t.TypeOfService[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeOfService appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService struct to the
// list TypeOfService of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) AppendTypeOfService(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) error {
	if v.Tos == nil {
		return fmt.Errorf("invalid nil key received for Tos")
	}

	key := *v.Tos

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService)
	}

	if _, ok := t.TypeOfService[key]; ok {
		return fmt.Errorf("duplicate key for list TypeOfService %v", key)
	}

	t.TypeOfService[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeOfService {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/nssa-external-lsa/types-of-service/type-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
	Tos       *uint8                                                                                                                                                                             `path:"tos" module:"openconfig-network-instance"`
	ΛTos      []ygot.Annotation                                                                                                                                                                  `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Tos == nil {
		return nil, fmt.Errorf("nil value for key Tos")
	}

	return map[string]interface{}{
		"tos": *t.Tos,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/nssa-external-lsa/types-of-service/type-of-service/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExternalRouteTag   *uint32           `path:"external-route-tag" module:"openconfig-network-instance"`
	ΛExternalRouteTag  []ygot.Annotation `path:"@external-route-tag" ygotAnnotation:"true"`
	ForwardingAddress  *string           `path:"forwarding-address" module:"openconfig-network-instance"`
	ΛForwardingAddress []ygot.Annotation `path:"@forwarding-address" ygotAnnotation:"true"`
	Metric             *uint16           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric            []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	Tos                *uint8            `path:"tos" module:"openconfig-network-instance"`
	ΛTos               []ygot.Annotation `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) IsYANGGoStruct() {
}

// GetExternalRouteTag retrieves the value of the leaf ExternalRouteTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExternalRouteTag is set, it can
// safely use t.GetExternalRouteTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExternalRouteTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) GetExternalRouteTag() uint32 {
	if t == nil || t.ExternalRouteTag == nil {
		return 0
	}
	return *t.ExternalRouteTag
}

// GetForwardingAddress retrieves the value of the leaf ForwardingAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ForwardingAddress is set, it can
// safely use t.GetForwardingAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ForwardingAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) GetForwardingAddress() string {
	if t == nil || t.ForwardingAddress == nil {
		return ""
	}
	return *t.ForwardingAddress
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_NssaExternalLsa_TypesOfService_TypeOfService_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	ExtendedLink        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink       `path:"extended-link" module:"openconfig-network-instance"`
	ΛExtendedLink       []ygot.Annotation                                                                                                                                            `path:"@extended-link" ygotAnnotation:"true"`
	ExtendedPrefix      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix     `path:"extended-prefix" module:"openconfig-network-instance"`
	ΛExtendedPrefix     []ygot.Annotation                                                                                                                                            `path:"@extended-prefix" ygotAnnotation:"true"`
	GraceLsa            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa           `path:"grace-lsa" module:"openconfig-network-instance"`
	ΛGraceLsa           []ygot.Annotation                                                                                                                                            `path:"@grace-lsa" ygotAnnotation:"true"`
	RouterInformation   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation  `path:"router-information" module:"openconfig-network-instance"`
	ΛRouterInformation  []ygot.Annotation                                                                                                                                            `path:"@router-information" ygotAnnotation:"true"`
	State               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State              `path:"state" module:"openconfig-network-instance"`
	ΛState              []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	TrafficEngineering  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering `path:"traffic-engineering" module:"openconfig-network-instance"`
	ΛTrafficEngineering []ygot.Annotation                                                                                                                                            `path:"@traffic-engineering" ygotAnnotation:"true"`
	UnknownTlv          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv         `path:"unknown-tlv" module:"openconfig-network-instance"`
	ΛUnknownTlv         []ygot.Annotation                                                                                                                                            `path:"@unknown-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) IsYANGGoStruct() {
}

// GetOrCreateExtendedLink retrieves the value of the ExtendedLink field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetOrCreateExtendedLink() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink {
	if t.ExtendedLink != nil {
		return t.ExtendedLink
	}
	t.ExtendedLink = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink{}
	return t.ExtendedLink
}

// GetOrCreateExtendedPrefix retrieves the value of the ExtendedPrefix field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetOrCreateExtendedPrefix() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix {
	if t.ExtendedPrefix != nil {
		return t.ExtendedPrefix
	}
	t.ExtendedPrefix = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix{}
	return t.ExtendedPrefix
}

// GetOrCreateGraceLsa retrieves the value of the GraceLsa field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetOrCreateGraceLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa {
	if t.GraceLsa != nil {
		return t.GraceLsa
	}
	t.GraceLsa = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa{}
	return t.GraceLsa
}

// GetOrCreateRouterInformation retrieves the value of the RouterInformation field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetOrCreateRouterInformation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation {
	if t.RouterInformation != nil {
		return t.RouterInformation
	}
	t.RouterInformation = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation{}
	return t.RouterInformation
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State{}
	return t.State
}

// GetOrCreateTrafficEngineering retrieves the value of the TrafficEngineering field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetOrCreateTrafficEngineering() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering {
	if t.TrafficEngineering != nil {
		return t.TrafficEngineering
	}
	t.TrafficEngineering = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering{}
	return t.TrafficEngineering
}

// GetOrCreateUnknownTlv retrieves the value of the UnknownTlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetOrCreateUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv {
	if t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	t.UnknownTlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv{}
	return t.UnknownTlv
}

// GetExtendedLink returns the value of the ExtendedLink struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa. If the receiver or the field ExtendedLink is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetExtendedLink() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink {
	if t != nil && t.ExtendedLink != nil {
		return t.ExtendedLink
	}
	return nil
}

// GetExtendedPrefix returns the value of the ExtendedPrefix struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa. If the receiver or the field ExtendedPrefix is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetExtendedPrefix() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix {
	if t != nil && t.ExtendedPrefix != nil {
		return t.ExtendedPrefix
	}
	return nil
}

// GetGraceLsa returns the value of the GraceLsa struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa. If the receiver or the field GraceLsa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetGraceLsa() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa {
	if t != nil && t.GraceLsa != nil {
		return t.GraceLsa
	}
	return nil
}

// GetRouterInformation returns the value of the RouterInformation struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa. If the receiver or the field RouterInformation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetRouterInformation() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation {
	if t != nil && t.RouterInformation != nil {
		return t.RouterInformation
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTrafficEngineering returns the value of the TrafficEngineering struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa. If the receiver or the field TrafficEngineering is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetTrafficEngineering() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering {
	if t != nil && t.TrafficEngineering != nil {
		return t.TrafficEngineering
	}
	return nil
}

// GetUnknownTlv returns the value of the UnknownTlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa. If the receiver or the field UnknownTlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) GetUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv {
	if t != nil && t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.ExtendedLink.PopulateDefaults()
	t.ExtendedPrefix.PopulateDefaults()
	t.GraceLsa.PopulateDefaults()
	t.RouterInformation.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TrafficEngineering.PopulateDefaults()
	t.UnknownTlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink struct {
	ΛMetadata []ygot.Annotation                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Tlvs      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs  `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs     []ygot.Annotation                                                                                                                                            `path:"@tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State{}
	return t.State
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs{}
	return t.Tlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Tlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	LinkData  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union `path:"link-data" module:"openconfig-network-instance"`
	ΛLinkData []ygot.Annotation                                                                                                                                                          `path:"@link-data" ygotAnnotation:"true"`
	LinkId    *string                                                                                                                                                                    `path:"link-id" module:"openconfig-network-instance"`
	ΛLinkId   []ygot.Annotation                                                                                                                                                          `path:"@link-id" ygotAnnotation:"true"`
	LinkType  E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE                                                                                                                              `path:"link-type" module:"openconfig-network-instance"`
	ΛLinkType []ygot.Annotation                                                                                                                                                          `path:"@link-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) IsYANGGoStruct() {
}

// GetLinkData retrieves the value of the leaf LinkData from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkData is set, it can
// safely use t.GetLinkData() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkData == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) GetLinkData() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union {
	if t == nil || t.LinkData == nil {
		return nil
	}
	return t.LinkData
}

// GetLinkId retrieves the value of the leaf LinkId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkId is set, it can
// safely use t.GetLinkId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) GetLinkId() string {
	if t == nil || t.LinkId == nil {
		return ""
	}
	return *t.LinkId
}

// GetLinkType retrieves the value of the leaf LinkType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkType is set, it can
// safely use t.GetLinkType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) GetLinkType() E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE {
	if t == nil || t.LinkType == 0 {
		return 0
	}
	return t.LinkType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/state/link-data within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_State_LinkData_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Tlv       []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                                 `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	AdjacencySid  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid `path:"adjacency-sid" module:"openconfig-network-instance"`
	ΛAdjacencySid []ygot.Annotation                                                                                                                                                            `path:"@adjacency-sid" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	UnknownTlv    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv   `path:"unknown-tlv" module:"openconfig-network-instance"`
	ΛUnknownTlv   []ygot.Annotation                                                                                                                                                            `path:"@unknown-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateAdjacencySid retrieves the value of the AdjacencySid field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) GetOrCreateAdjacencySid() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid {
	if t.AdjacencySid != nil {
		return t.AdjacencySid
	}
	t.AdjacencySid = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid{}
	return t.AdjacencySid
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State{}
	return t.State
}

// GetOrCreateUnknownTlv retrieves the value of the UnknownTlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) GetOrCreateUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv {
	if t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	t.UnknownTlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv{}
	return t.UnknownTlv
}

// GetAdjacencySid returns the value of the AdjacencySid struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv. If the receiver or the field AdjacencySid is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) GetAdjacencySid() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid {
	if t != nil && t.AdjacencySid != nil {
		return t.AdjacencySid
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownTlv returns the value of the UnknownTlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv. If the receiver or the field UnknownTlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) GetUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv {
	if t != nil && t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdjacencySid.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UnknownTlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv/adjacency-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv/adjacency-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State struct {
	ΛMetadata                []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	Backup                   *bool                           `path:"backup" module:"openconfig-network-instance"`
	ΛBackup                  []ygot.Annotation               `path:"@backup" ygotAnnotation:"true"`
	Group                    *bool                           `path:"group" module:"openconfig-network-instance"`
	ΛGroup                   []ygot.Annotation               `path:"@group" ygotAnnotation:"true"`
	MultiTopologyIdentifier  *uint8                          `path:"multi-topology-identifier" module:"openconfig-network-instance"`
	ΛMultiTopologyIdentifier []ygot.Annotation               `path:"@multi-topology-identifier" ygotAnnotation:"true"`
	SidType                  E_OpenconfigOspfTypes_SrSidType `path:"sid-type" module:"openconfig-network-instance"`
	ΛSidType                 []ygot.Annotation               `path:"@sid-type" ygotAnnotation:"true"`
	SidValue                 *uint32                         `path:"sid-value" module:"openconfig-network-instance"`
	ΛSidValue                []ygot.Annotation               `path:"@sid-value" ygotAnnotation:"true"`
	Weight                   *uint8                          `path:"weight" module:"openconfig-network-instance"`
	ΛWeight                  []ygot.Annotation               `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) IsYANGGoStruct() {
}

// GetBackup retrieves the value of the leaf Backup from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Backup is set, it can
// safely use t.GetBackup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Backup == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) GetBackup() bool {
	if t == nil || t.Backup == nil {
		return false
	}
	return *t.Backup
}

// GetGroup retrieves the value of the leaf Group from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Group is set, it can
// safely use t.GetGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Group == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) GetGroup() bool {
	if t == nil || t.Group == nil {
		return false
	}
	return *t.Group
}

// GetMultiTopologyIdentifier retrieves the value of the leaf MultiTopologyIdentifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultiTopologyIdentifier is set, it can
// safely use t.GetMultiTopologyIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultiTopologyIdentifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) GetMultiTopologyIdentifier() uint8 {
	if t == nil || t.MultiTopologyIdentifier == nil {
		return 0
	}
	return *t.MultiTopologyIdentifier
}

// GetSidType retrieves the value of the leaf SidType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidType is set, it can
// safely use t.GetSidType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) GetSidType() E_OpenconfigOspfTypes_SrSidType {
	if t == nil || t.SidType == 0 {
		return 0
	}
	return t.SidType
}

// GetSidValue retrieves the value of the leaf SidValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidValue is set, it can
// safely use t.GetSidValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) GetSidValue() uint32 {
	if t == nil || t.SidValue == nil {
		return 0
	}
	return *t.SidValue
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Backup == nil {
		var v bool = false
		t.Backup = &v
	}
	if t.Group == nil {
		var v bool = false
		t.Group = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_AdjacencySid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State struct {
	ΛMetadata []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State) GetType() E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv/unknown-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv/unknown-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedLink_Tlvs_Tlv_UnknownTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix struct {
	ΛMetadata []ygot.Annotation                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	Tlvs      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs  `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs     []ygot.Annotation                                                                                                                                              `path:"@tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State{}
	return t.State
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs{}
	return t.Tlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Tlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	AddressFamily  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                                                                                                                                                             `path:"@address-family" ygotAnnotation:"true"`
	Attached       *bool                                                                                                                                                                         `path:"attached" module:"openconfig-network-instance"`
	ΛAttached      []ygot.Annotation                                                                                                                                                             `path:"@attached" ygotAnnotation:"true"`
	Node           *bool                                                                                                                                                                         `path:"node" module:"openconfig-network-instance"`
	ΛNode          []ygot.Annotation                                                                                                                                                             `path:"@node" ygotAnnotation:"true"`
	Prefix         *string                                                                                                                                                                       `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix        []ygot.Annotation                                                                                                                                                             `path:"@prefix" ygotAnnotation:"true"`
	PrefixLength   *uint8                                                                                                                                                                        `path:"prefix-length" module:"openconfig-network-instance"`
	ΛPrefixLength  []ygot.Annotation                                                                                                                                                             `path:"@prefix-length" ygotAnnotation:"true"`
	RouteType      E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType     `path:"route-type" module:"openconfig-network-instance"`
	ΛRouteType     []ygot.Annotation                                                                                                                                                             `path:"@route-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) IsYANGGoStruct() {
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) GetAddressFamily() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetAttached retrieves the value of the leaf Attached from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Attached is set, it can
// safely use t.GetAttached() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Attached == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) GetAttached() bool {
	if t == nil || t.Attached == nil {
		return false
	}
	return *t.Attached
}

// GetNode retrieves the value of the leaf Node from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Node is set, it can
// safely use t.GetNode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Node == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) GetNode() bool {
	if t == nil || t.Node == nil {
		return false
	}
	return *t.Node
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetPrefixLength retrieves the value of the leaf PrefixLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLength is set, it can
// safely use t.GetPrefixLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) GetPrefixLength() uint8 {
	if t == nil || t.PrefixLength == nil {
		return 0
	}
	return *t.PrefixLength
}

// GetRouteType retrieves the value of the leaf RouteType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteType is set, it can
// safely use t.GetRouteType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) GetRouteType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType {
	if t == nil || t.RouteType == 0 {
		return 0
	}
	return t.RouteType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Attached == nil {
		var v bool = false
		t.Attached = &v
	}
	if t.Node == nil {
		var v bool = false
		t.Node = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Tlv       []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                                   `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	ExtendedPrefixRange  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange `path:"extended-prefix-range" module:"openconfig-network-instance"`
	ΛExtendedPrefixRange []ygot.Annotation                                                                                                                                                                     `path:"@extended-prefix-range" ygotAnnotation:"true"`
	PrefixSid            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid           `path:"prefix-sid" module:"openconfig-network-instance"`
	ΛPrefixSid           []ygot.Annotation                                                                                                                                                                     `path:"@prefix-sid" ygotAnnotation:"true"`
	SidLabelBinding      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding     `path:"sid-label-binding" module:"openconfig-network-instance"`
	ΛSidLabelBinding     []ygot.Annotation                                                                                                                                                                     `path:"@sid-label-binding" ygotAnnotation:"true"`
	State                *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State               `path:"state" module:"openconfig-network-instance"`
	ΛState               []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
	UnknownTlv           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv          `path:"unknown-tlv" module:"openconfig-network-instance"`
	ΛUnknownTlv          []ygot.Annotation                                                                                                                                                                     `path:"@unknown-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateExtendedPrefixRange retrieves the value of the ExtendedPrefixRange field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetOrCreateExtendedPrefixRange() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange {
	if t.ExtendedPrefixRange != nil {
		return t.ExtendedPrefixRange
	}
	t.ExtendedPrefixRange = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange{}
	return t.ExtendedPrefixRange
}

// GetOrCreatePrefixSid retrieves the value of the PrefixSid field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetOrCreatePrefixSid() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid {
	if t.PrefixSid != nil {
		return t.PrefixSid
	}
	t.PrefixSid = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid{}
	return t.PrefixSid
}

// GetOrCreateSidLabelBinding retrieves the value of the SidLabelBinding field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetOrCreateSidLabelBinding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding {
	if t.SidLabelBinding != nil {
		return t.SidLabelBinding
	}
	t.SidLabelBinding = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding{}
	return t.SidLabelBinding
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State{}
	return t.State
}

// GetOrCreateUnknownTlv retrieves the value of the UnknownTlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetOrCreateUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv {
	if t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	t.UnknownTlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv{}
	return t.UnknownTlv
}

// GetExtendedPrefixRange returns the value of the ExtendedPrefixRange struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv. If the receiver or the field ExtendedPrefixRange is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetExtendedPrefixRange() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange {
	if t != nil && t.ExtendedPrefixRange != nil {
		return t.ExtendedPrefixRange
	}
	return nil
}

// GetPrefixSid returns the value of the PrefixSid struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv. If the receiver or the field PrefixSid is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetPrefixSid() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid {
	if t != nil && t.PrefixSid != nil {
		return t.PrefixSid
	}
	return nil
}

// GetSidLabelBinding returns the value of the SidLabelBinding struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv. If the receiver or the field SidLabelBinding is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetSidLabelBinding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding {
	if t != nil && t.SidLabelBinding != nil {
		return t.SidLabelBinding
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownTlv returns the value of the UnknownTlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv. If the receiver or the field UnknownTlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) GetUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv {
	if t != nil && t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.ExtendedPrefixRange.PopulateDefaults()
	t.PrefixSid.PopulateDefaults()
	t.SidLabelBinding.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UnknownTlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/extended-prefix-range YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/extended-prefix-range/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	AddressFamily  E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                                                                                                                                                             `path:"@address-family" ygotAnnotation:"true"`
	InterArea      *bool                                                                                                                                                                         `path:"inter-area" module:"openconfig-network-instance"`
	ΛInterArea     []ygot.Annotation                                                                                                                                                             `path:"@inter-area" ygotAnnotation:"true"`
	Prefix         *string                                                                                                                                                                       `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix        []ygot.Annotation                                                                                                                                                             `path:"@prefix" ygotAnnotation:"true"`
	PrefixLength   *uint8                                                                                                                                                                        `path:"prefix-length" module:"openconfig-network-instance"`
	ΛPrefixLength  []ygot.Annotation                                                                                                                                                             `path:"@prefix-length" ygotAnnotation:"true"`
	RangeSize      *uint16                                                                                                                                                                       `path:"range-size" module:"openconfig-network-instance"`
	ΛRangeSize     []ygot.Annotation                                                                                                                                                             `path:"@range-size" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) IsYANGGoStruct() {
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) GetAddressFamily() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetInterArea retrieves the value of the leaf InterArea from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterArea is set, it can
// safely use t.GetInterArea() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterArea == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) GetInterArea() bool {
	if t == nil || t.InterArea == nil {
		return false
	}
	return *t.InterArea
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetPrefixLength retrieves the value of the leaf PrefixLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixLength is set, it can
// safely use t.GetPrefixLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) GetPrefixLength() uint8 {
	if t == nil || t.PrefixLength == nil {
		return 0
	}
	return *t.PrefixLength
}

// GetRangeSize retrieves the value of the leaf RangeSize from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RangeSize is set, it can
// safely use t.GetRangeSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RangeSize == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) GetRangeSize() uint16 {
	if t == nil || t.RangeSize == nil {
		return 0
	}
	return *t.RangeSize
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.InterArea == nil {
		var v bool = false
		t.InterArea = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_ExtendedPrefixRange_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/prefix-sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/prefix-sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Algorithm                *uint8                                                                                                                                                                                          `path:"algorithm" module:"openconfig-network-instance"`
	ΛAlgorithm               []ygot.Annotation                                                                                                                                                                               `path:"@algorithm" ygotAnnotation:"true"`
	ExplicitNull             *bool                                                                                                                                                                                           `path:"explicit-null" module:"openconfig-network-instance"`
	ΛExplicitNull            []ygot.Annotation                                                                                                                                                                               `path:"@explicit-null" ygotAnnotation:"true"`
	MappingServer            *bool                                                                                                                                                                                           `path:"mapping-server" module:"openconfig-network-instance"`
	ΛMappingServer           []ygot.Annotation                                                                                                                                                                               `path:"@mapping-server" ygotAnnotation:"true"`
	MultiTopologyIdentifier  *uint8                                                                                                                                                                                          `path:"multi-topology-identifier" module:"openconfig-network-instance"`
	ΛMultiTopologyIdentifier []ygot.Annotation                                                                                                                                                                               `path:"@multi-topology-identifier" ygotAnnotation:"true"`
	NoPhp                    *bool                                                                                                                                                                                           `path:"no-php" module:"openconfig-network-instance"`
	ΛNoPhp                   []ygot.Annotation                                                                                                                                                                               `path:"@no-php" ygotAnnotation:"true"`
	SidScope                 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope     `path:"sid-scope" module:"openconfig-network-instance"`
	ΛSidScope                []ygot.Annotation                                                                                                                                                                               `path:"@sid-scope" ygotAnnotation:"true"`
	SidValue                 *uint32                                                                                                                                                                                         `path:"sid-value" module:"openconfig-network-instance"`
	ΛSidValue                []ygot.Annotation                                                                                                                                                                               `path:"@sid-value" ygotAnnotation:"true"`
	SidValueType             E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType `path:"sid-value-type" module:"openconfig-network-instance"`
	ΛSidValueType            []ygot.Annotation                                                                                                                                                                               `path:"@sid-value-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) IsYANGGoStruct() {
}

// GetAlgorithm retrieves the value of the leaf Algorithm from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Algorithm is set, it can
// safely use t.GetAlgorithm() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Algorithm == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetAlgorithm() uint8 {
	if t == nil || t.Algorithm == nil {
		return 0
	}
	return *t.Algorithm
}

// GetExplicitNull retrieves the value of the leaf ExplicitNull from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExplicitNull is set, it can
// safely use t.GetExplicitNull() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExplicitNull == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetExplicitNull() bool {
	if t == nil || t.ExplicitNull == nil {
		return false
	}
	return *t.ExplicitNull
}

// GetMappingServer retrieves the value of the leaf MappingServer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MappingServer is set, it can
// safely use t.GetMappingServer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MappingServer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetMappingServer() bool {
	if t == nil || t.MappingServer == nil {
		return false
	}
	return *t.MappingServer
}

// GetMultiTopologyIdentifier retrieves the value of the leaf MultiTopologyIdentifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultiTopologyIdentifier is set, it can
// safely use t.GetMultiTopologyIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultiTopologyIdentifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetMultiTopologyIdentifier() uint8 {
	if t == nil || t.MultiTopologyIdentifier == nil {
		return 0
	}
	return *t.MultiTopologyIdentifier
}

// GetNoPhp retrieves the value of the leaf NoPhp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NoPhp is set, it can
// safely use t.GetNoPhp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NoPhp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetNoPhp() bool {
	if t == nil || t.NoPhp == nil {
		return false
	}
	return *t.NoPhp
}

// GetSidScope retrieves the value of the leaf SidScope from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidScope is set, it can
// safely use t.GetSidScope() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidScope == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetSidScope() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope {
	if t == nil || t.SidScope == 0 {
		return 0
	}
	return t.SidScope
}

// GetSidValue retrieves the value of the leaf SidValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidValue is set, it can
// safely use t.GetSidValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetSidValue() uint32 {
	if t == nil || t.SidValue == nil {
		return 0
	}
	return *t.SidValue
}

// GetSidValueType retrieves the value of the leaf SidValueType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidValueType is set, it can
// safely use t.GetSidValueType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidValueType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) GetSidValueType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType {
	if t == nil || t.SidValueType == 0 {
		return 0
	}
	return t.SidValueType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExplicitNull == nil {
		var v bool = false
		t.ExplicitNull = &v
	}
	if t.MappingServer == nil {
		var v bool = false
		t.MappingServer = &v
	}
	if t.NoPhp == nil {
		var v bool = false
		t.NoPhp = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
	Tlvs      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs  `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs     []ygot.Annotation                                                                                                                                                                       `path:"@tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State{}
	return t.State
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs{}
	return t.Tlvs
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.Tlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Mirroring                *bool             `path:"mirroring" module:"openconfig-network-instance"`
	ΛMirroring               []ygot.Annotation `path:"@mirroring" ygotAnnotation:"true"`
	MultiTopologyIdentifier  *uint8            `path:"multi-topology-identifier" module:"openconfig-network-instance"`
	ΛMultiTopologyIdentifier []ygot.Annotation `path:"@multi-topology-identifier" ygotAnnotation:"true"`
	Weight                   *uint8            `path:"weight" module:"openconfig-network-instance"`
	ΛWeight                  []ygot.Annotation `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) IsYANGGoStruct() {
}

// GetMirroring retrieves the value of the leaf Mirroring from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mirroring is set, it can
// safely use t.GetMirroring() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mirroring == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) GetMirroring() bool {
	if t == nil || t.Mirroring == nil {
		return false
	}
	return *t.Mirroring
}

// GetMultiTopologyIdentifier retrieves the value of the leaf MultiTopologyIdentifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MultiTopologyIdentifier is set, it can
// safely use t.GetMultiTopologyIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MultiTopologyIdentifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) GetMultiTopologyIdentifier() uint8 {
	if t == nil || t.MultiTopologyIdentifier == nil {
		return 0
	}
	return *t.MultiTopologyIdentifier
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) GetWeight() uint8 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Mirroring == nil {
		var v bool = false
		t.Mirroring = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	Tlv       []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                                                            `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	EroMetric        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric       `path:"ero-metric" module:"openconfig-network-instance"`
	ΛEroMetric       []ygot.Annotation                                                                                                                                                                                          `path:"@ero-metric" ygotAnnotation:"true"`
	EroPath          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath         `path:"ero-path" module:"openconfig-network-instance"`
	ΛEroPath         []ygot.Annotation                                                                                                                                                                                          `path:"@ero-path" ygotAnnotation:"true"`
	SidLabelBinding  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding `path:"sid-label-binding" module:"openconfig-network-instance"`
	ΛSidLabelBinding []ygot.Annotation                                                                                                                                                                                          `path:"@sid-label-binding" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State           `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateEroMetric retrieves the value of the EroMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetOrCreateEroMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric {
	if t.EroMetric != nil {
		return t.EroMetric
	}
	t.EroMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric{}
	return t.EroMetric
}

// GetOrCreateEroPath retrieves the value of the EroPath field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetOrCreateEroPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath {
	if t.EroPath != nil {
		return t.EroPath
	}
	t.EroPath = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath{}
	return t.EroPath
}

// GetOrCreateSidLabelBinding retrieves the value of the SidLabelBinding field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetOrCreateSidLabelBinding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding {
	if t.SidLabelBinding != nil {
		return t.SidLabelBinding
	}
	t.SidLabelBinding = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding{}
	return t.SidLabelBinding
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State{}
	return t.State
}

// GetEroMetric returns the value of the EroMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv. If the receiver or the field EroMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetEroMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric {
	if t != nil && t.EroMetric != nil {
		return t.EroMetric
	}
	return nil
}

// GetEroPath returns the value of the EroPath struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv. If the receiver or the field EroPath is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetEroPath() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath {
	if t != nil && t.EroPath != nil {
		return t.EroPath
	}
	return nil
}

// GetSidLabelBinding returns the value of the SidLabelBinding struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv. If the receiver or the field SidLabelBinding is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetSidLabelBinding() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding {
	if t != nil && t.SidLabelBinding != nil {
		return t.SidLabelBinding
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.EroMetric.PopulateDefaults()
	t.EroPath.PopulateDefaults()
	t.SidLabelBinding.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint32           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Segments  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments `path:"segments" module:"openconfig-network-instance"`
	ΛSegments []ygot.Annotation                                                                                                                                                                                           `path:"@segments" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) IsYANGGoStruct() {
}

// GetOrCreateSegments retrieves the value of the Segments field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) GetOrCreateSegments() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments {
	if t.Segments != nil {
		return t.Segments
	}
	t.Segments = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments{}
	return t.Segments
}

// GetSegments returns the value of the Segments struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath. If the receiver or the field Segments is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) GetSegments() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments {
	if t != nil && t.Segments != nil {
		return t.Segments
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Segments.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Segment   []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment `path:"segment" module:"openconfig-network-instance"`
	ΛSegment  []ygot.Annotation                                                                                                                                                                                                     `path:"@segment" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Segment {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments/segment YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Ipv4Segment    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment   `path:"ipv4-segment" module:"openconfig-network-instance"`
	ΛIpv4Segment   []ygot.Annotation                                                                                                                                                                                                                 `path:"@ipv4-segment" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
	UnnumberedHop  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop `path:"unnumbered-hop" module:"openconfig-network-instance"`
	ΛUnnumberedHop []ygot.Annotation                                                                                                                                                                                                                 `path:"@unnumbered-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) IsYANGGoStruct() {
}

// GetOrCreateIpv4Segment retrieves the value of the Ipv4Segment field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) GetOrCreateIpv4Segment() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment {
	if t.Ipv4Segment != nil {
		return t.Ipv4Segment
	}
	t.Ipv4Segment = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment{}
	return t.Ipv4Segment
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State{}
	return t.State
}

// GetOrCreateUnnumberedHop retrieves the value of the UnnumberedHop field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) GetOrCreateUnnumberedHop() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop {
	if t.UnnumberedHop != nil {
		return t.UnnumberedHop
	}
	t.UnnumberedHop = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop{}
	return t.UnnumberedHop
}

// GetIpv4Segment returns the value of the Ipv4Segment struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment. If the receiver or the field Ipv4Segment is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) GetIpv4Segment() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment {
	if t != nil && t.Ipv4Segment != nil {
		return t.Ipv4Segment
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnnumberedHop returns the value of the UnnumberedHop struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment. If the receiver or the field UnnumberedHop is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) GetUnnumberedHop() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop {
	if t != nil && t.UnnumberedHop != nil {
		return t.UnnumberedHop
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Ipv4Segment.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UnnumberedHop.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments/segment/ipv4-segment YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments/segment/ipv4-segment/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   *string           `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_Ipv4Segment_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments/segment/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State struct {
	ΛMetadata []ygot.Annotation                                                    `path:"@" ygotAnnotation:"true"`
	Loose     *bool                                                                `path:"loose" module:"openconfig-network-instance"`
	ΛLoose    []ygot.Annotation                                                    `path:"@loose" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) IsYANGGoStruct() {
}

// GetLoose retrieves the value of the leaf Loose from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Loose is set, it can
// safely use t.GetLoose() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Loose == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) GetLoose() bool {
	if t == nil || t.Loose == nil {
		return false
	}
	return *t.Loose
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) GetType() E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Loose == nil {
		var v bool = false
		t.Loose = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments/segment/unnumbered-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments/segment/unnumbered-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InterfaceId  *uint32           `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId []ygot.Annotation `path:"@interface-id" ygotAnnotation:"true"`
	RouterId     *string           `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId    []ygot.Annotation `path:"@router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) IsYANGGoStruct() {
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) GetInterfaceId() uint32 {
	if t == nil || t.InterfaceId == nil {
		return 0
	}
	return *t.InterfaceId
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_EroPath_Segments_Segment_UnnumberedHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/sid-label-binding YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/sid-label-binding/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State struct {
	ΛMetadata []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	SidType   E_OpenconfigOspfTypes_SrSidType `path:"sid-type" module:"openconfig-network-instance"`
	ΛSidType  []ygot.Annotation               `path:"@sid-type" ygotAnnotation:"true"`
	SidValue  *uint32                         `path:"sid-value" module:"openconfig-network-instance"`
	ΛSidValue []ygot.Annotation               `path:"@sid-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) IsYANGGoStruct() {
}

// GetSidType retrieves the value of the leaf SidType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidType is set, it can
// safely use t.GetSidType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) GetSidType() E_OpenconfigOspfTypes_SrSidType {
	if t == nil || t.SidType == 0 {
		return 0
	}
	return t.SidType
}

// GetSidValue retrieves the value of the leaf SidValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SidValue is set, it can
// safely use t.GetSidValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SidValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) GetSidValue() uint32 {
	if t == nil || t.SidValue == nil {
		return 0
	}
	return *t.SidValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_SidLabelBinding_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State struct {
	ΛMetadata []ygot.Annotation                                                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State) GetType() E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_SidLabelBinding_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State struct {
	ΛMetadata []ygot.Annotation                                        `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                        `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State) GetType() E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/unknown-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/unknown-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_UnknownTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa struct {
	ΛMetadata []ygot.Annotation                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Tlvs      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs     []ygot.Annotation                                                                                                                                       `path:"@tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) IsYANGGoStruct() {
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs{}
	return t.Tlvs
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Tlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Tlv       []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                             `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State      `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
	UnknownTlv  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv `path:"unknown-tlv" module:"openconfig-network-instance"`
	ΛUnknownTlv []ygot.Annotation                                                                                                                                                      `path:"@unknown-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State{}
	return t.State
}

// GetOrCreateUnknownTlv retrieves the value of the UnknownTlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) GetOrCreateUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv {
	if t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	t.UnknownTlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv{}
	return t.UnknownTlv
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownTlv returns the value of the UnknownTlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv. If the receiver or the field UnknownTlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) GetUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv {
	if t != nil && t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownTlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	IpInterfaceAddress  *string                                                                                                                                                                   `path:"ip-interface-address" module:"openconfig-network-instance"`
	ΛIpInterfaceAddress []ygot.Annotation                                                                                                                                                         `path:"@ip-interface-address" ygotAnnotation:"true"`
	Period              *uint32                                                                                                                                                                   `path:"period" module:"openconfig-network-instance"`
	ΛPeriod             []ygot.Annotation                                                                                                                                                         `path:"@period" ygotAnnotation:"true"`
	Reason              E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason `path:"reason" module:"openconfig-network-instance"`
	ΛReason             []ygot.Annotation                                                                                                                                                         `path:"@reason" ygotAnnotation:"true"`
	Type                E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES                                                                                                                                 `path:"type" module:"openconfig-network-instance"`
	ΛType               []ygot.Annotation                                                                                                                                                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetIpInterfaceAddress retrieves the value of the leaf IpInterfaceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpInterfaceAddress is set, it can
// safely use t.GetIpInterfaceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpInterfaceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) GetIpInterfaceAddress() string {
	if t == nil || t.IpInterfaceAddress == nil {
		return ""
	}
	return *t.IpInterfaceAddress
}

// GetPeriod retrieves the value of the leaf Period from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Period is set, it can
// safely use t.GetPeriod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Period == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) GetPeriod() uint32 {
	if t == nil || t.Period == nil {
		return 0
	}
	return *t.Period
}

// GetReason retrieves the value of the leaf Reason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Reason is set, it can
// safely use t.GetReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Reason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) GetReason() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason {
	if t == nil || t.Reason == 0 {
		return 0
	}
	return t.Reason
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) GetType() E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa/tlvs/tlv/unknown-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa/tlvs/tlv/unknown-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_UnknownTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	Tlvs      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs     []ygot.Annotation                                                                                                                                                `path:"@tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) IsYANGGoStruct() {
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs{}
	return t.Tlvs
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Tlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Tlv       []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                                      `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv struct {
	ΛMetadata                    []ygot.Annotation                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	InformationalCapabilities    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities   `path:"informational-capabilities" module:"openconfig-network-instance"`
	ΛInformationalCapabilities   []ygot.Annotation                                                                                                                                                                                `path:"@informational-capabilities" ygotAnnotation:"true"`
	NodeAdministrativeTags       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags      `path:"node-administrative-tags" module:"openconfig-network-instance"`
	ΛNodeAdministrativeTags      []ygot.Annotation                                                                                                                                                                                `path:"@node-administrative-tags" ygotAnnotation:"true"`
	SegmentRoutingAlgorithm      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm     `path:"segment-routing-algorithm" module:"openconfig-network-instance"`
	ΛSegmentRoutingAlgorithm     []ygot.Annotation                                                                                                                                                                                `path:"@segment-routing-algorithm" ygotAnnotation:"true"`
	SegmentRoutingSidLabelRange  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange `path:"segment-routing-sid-label-range" module:"openconfig-network-instance"`
	ΛSegmentRoutingSidLabelRange []ygot.Annotation                                                                                                                                                                                `path:"@segment-routing-sid-label-range" ygotAnnotation:"true"`
	State                        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State                       `path:"state" module:"openconfig-network-instance"`
	ΛState                       []ygot.Annotation                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
	UnknownTlv                   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv                  `path:"unknown-tlv" module:"openconfig-network-instance"`
	ΛUnknownTlv                  []ygot.Annotation                                                                                                                                                                                `path:"@unknown-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateInformationalCapabilities retrieves the value of the InformationalCapabilities field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetOrCreateInformationalCapabilities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities {
	if t.InformationalCapabilities != nil {
		return t.InformationalCapabilities
	}
	t.InformationalCapabilities = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities{}
	return t.InformationalCapabilities
}

// GetOrCreateNodeAdministrativeTags retrieves the value of the NodeAdministrativeTags field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetOrCreateNodeAdministrativeTags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags {
	if t.NodeAdministrativeTags != nil {
		return t.NodeAdministrativeTags
	}
	t.NodeAdministrativeTags = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags{}
	return t.NodeAdministrativeTags
}

// GetOrCreateSegmentRoutingAlgorithm retrieves the value of the SegmentRoutingAlgorithm field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetOrCreateSegmentRoutingAlgorithm() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm {
	if t.SegmentRoutingAlgorithm != nil {
		return t.SegmentRoutingAlgorithm
	}
	t.SegmentRoutingAlgorithm = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm{}
	return t.SegmentRoutingAlgorithm
}

// GetOrCreateSegmentRoutingSidLabelRange retrieves the value of the SegmentRoutingSidLabelRange field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetOrCreateSegmentRoutingSidLabelRange() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange {
	if t.SegmentRoutingSidLabelRange != nil {
		return t.SegmentRoutingSidLabelRange
	}
	t.SegmentRoutingSidLabelRange = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange{}
	return t.SegmentRoutingSidLabelRange
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State{}
	return t.State
}

// GetOrCreateUnknownTlv retrieves the value of the UnknownTlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetOrCreateUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv {
	if t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	t.UnknownTlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv{}
	return t.UnknownTlv
}

// GetInformationalCapabilities returns the value of the InformationalCapabilities struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv. If the receiver or the field InformationalCapabilities is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetInformationalCapabilities() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities {
	if t != nil && t.InformationalCapabilities != nil {
		return t.InformationalCapabilities
	}
	return nil
}

// GetNodeAdministrativeTags returns the value of the NodeAdministrativeTags struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv. If the receiver or the field NodeAdministrativeTags is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetNodeAdministrativeTags() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags {
	if t != nil && t.NodeAdministrativeTags != nil {
		return t.NodeAdministrativeTags
	}
	return nil
}

// GetSegmentRoutingAlgorithm returns the value of the SegmentRoutingAlgorithm struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv. If the receiver or the field SegmentRoutingAlgorithm is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetSegmentRoutingAlgorithm() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm {
	if t != nil && t.SegmentRoutingAlgorithm != nil {
		return t.SegmentRoutingAlgorithm
	}
	return nil
}

// GetSegmentRoutingSidLabelRange returns the value of the SegmentRoutingSidLabelRange struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv. If the receiver or the field SegmentRoutingSidLabelRange is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetSegmentRoutingSidLabelRange() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange {
	if t != nil && t.SegmentRoutingSidLabelRange != nil {
		return t.SegmentRoutingSidLabelRange
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownTlv returns the value of the UnknownTlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv. If the receiver or the field UnknownTlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) GetUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv {
	if t != nil && t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.InformationalCapabilities.PopulateDefaults()
	t.NodeAdministrativeTags.PopulateDefaults()
	t.SegmentRoutingAlgorithm.PopulateDefaults()
	t.SegmentRoutingSidLabelRange.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UnknownTlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/informational-capabilities YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/informational-capabilities/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State struct {
	ΛMetadata               []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	ExperimentalTe          *bool             `path:"experimental-te" module:"openconfig-network-instance"`
	ΛExperimentalTe         []ygot.Annotation `path:"@experimental-te" ygotAnnotation:"true"`
	GracefulRestartCapable  *bool             `path:"graceful-restart-capable" module:"openconfig-network-instance"`
	ΛGracefulRestartCapable []ygot.Annotation `path:"@graceful-restart-capable" ygotAnnotation:"true"`
	GracefulRestartHelper   *bool             `path:"graceful-restart-helper" module:"openconfig-network-instance"`
	ΛGracefulRestartHelper  []ygot.Annotation `path:"@graceful-restart-helper" ygotAnnotation:"true"`
	PointToPointOverLan     *bool             `path:"point-to-point-over-lan" module:"openconfig-network-instance"`
	ΛPointToPointOverLan    []ygot.Annotation `path:"@point-to-point-over-lan" ygotAnnotation:"true"`
	StubRouter              *bool             `path:"stub-router" module:"openconfig-network-instance"`
	ΛStubRouter             []ygot.Annotation `path:"@stub-router" ygotAnnotation:"true"`
	TrafficEngineering      *bool             `path:"traffic-engineering" module:"openconfig-network-instance"`
	ΛTrafficEngineering     []ygot.Annotation `path:"@traffic-engineering" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) IsYANGGoStruct() {
}

// GetExperimentalTe retrieves the value of the leaf ExperimentalTe from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExperimentalTe is set, it can
// safely use t.GetExperimentalTe() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExperimentalTe == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) GetExperimentalTe() bool {
	if t == nil || t.ExperimentalTe == nil {
		return false
	}
	return *t.ExperimentalTe
}

// GetGracefulRestartCapable retrieves the value of the leaf GracefulRestartCapable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if GracefulRestartCapable is set, it can
// safely use t.GetGracefulRestartCapable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.GracefulRestartCapable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) GetGracefulRestartCapable() bool {
	if t == nil || t.GracefulRestartCapable == nil {
		return false
	}
	return *t.GracefulRestartCapable
}

// GetGracefulRestartHelper retrieves the value of the leaf GracefulRestartHelper from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if GracefulRestartHelper is set, it can
// safely use t.GetGracefulRestartHelper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.GracefulRestartHelper == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) GetGracefulRestartHelper() bool {
	if t == nil || t.GracefulRestartHelper == nil {
		return false
	}
	return *t.GracefulRestartHelper
}

// GetPointToPointOverLan retrieves the value of the leaf PointToPointOverLan from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PointToPointOverLan is set, it can
// safely use t.GetPointToPointOverLan() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PointToPointOverLan == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) GetPointToPointOverLan() bool {
	if t == nil || t.PointToPointOverLan == nil {
		return false
	}
	return *t.PointToPointOverLan
}

// GetStubRouter retrieves the value of the leaf StubRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StubRouter is set, it can
// safely use t.GetStubRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StubRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) GetStubRouter() bool {
	if t == nil || t.StubRouter == nil {
		return false
	}
	return *t.StubRouter
}

// GetTrafficEngineering retrieves the value of the leaf TrafficEngineering from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficEngineering is set, it can
// safely use t.GetTrafficEngineering() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficEngineering == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) GetTrafficEngineering() bool {
	if t == nil || t.TrafficEngineering == nil {
		return false
	}
	return *t.TrafficEngineering
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.ExperimentalTe == nil {
		var v bool = false
		t.ExperimentalTe = &v
	}
	if t.GracefulRestartCapable == nil {
		var v bool = false
		t.GracefulRestartCapable = &v
	}
	if t.GracefulRestartHelper == nil {
		var v bool = false
		t.GracefulRestartHelper = &v
	}
	if t.PointToPointOverLan == nil {
		var v bool = false
		t.PointToPointOverLan = &v
	}
	if t.StubRouter == nil {
		var v bool = false
		t.StubRouter = &v
	}
	if t.TrafficEngineering == nil {
		var v bool = false
		t.TrafficEngineering = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_InformationalCapabilities_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/node-administrative-tags YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/node-administrative-tags/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdministrativeTags  []uint32          `path:"administrative-tags" module:"openconfig-network-instance"`
	ΛAdministrativeTags []ygot.Annotation `path:"@administrative-tags" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State) IsYANGGoStruct() {
}

// GetAdministrativeTags retrieves the value of the leaf AdministrativeTags from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdministrativeTags is set, it can
// safely use t.GetAdministrativeTags() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdministrativeTags == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State) GetAdministrativeTags() []uint32 {
	if t == nil || t.AdministrativeTags == nil {
		return nil
	}
	return t.AdministrativeTags
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_NodeAdministrativeTags_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-algorithm YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-algorithm/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State struct {
	ΛMetadata            []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	SupportedAlgorithms  []E_OpenconfigOspfTypes_SR_ALGORITHM `path:"supported-algorithms" module:"openconfig-network-instance"`
	ΛSupportedAlgorithms []ygot.Annotation                    `path:"@supported-algorithms" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State) IsYANGGoStruct() {
}

// GetSupportedAlgorithms retrieves the value of the leaf SupportedAlgorithms from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SupportedAlgorithms is set, it can
// safely use t.GetSupportedAlgorithms() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SupportedAlgorithms == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State) GetSupportedAlgorithms() []E_OpenconfigOspfTypes_SR_ALGORITHM {
	if t == nil || t.SupportedAlgorithms == nil {
		return nil
	}
	return t.SupportedAlgorithms
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingAlgorithm_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Tlvs      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs     []ygot.Annotation                                                                                                                                                                                     `path:"@tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) IsYANGGoStruct() {
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs{}
	return t.Tlvs
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Tlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Tlv       []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                                                                           `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	SidLabel    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel   `path:"sid-label" module:"openconfig-network-instance"`
	ΛSidLabel   []ygot.Annotation                                                                                                                                                                                                    `path:"@sid-label" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State      `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                                                                                                                                    `path:"@state" ygotAnnotation:"true"`
	UnknownTlv  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv `path:"unknown-tlv" module:"openconfig-network-instance"`
	ΛUnknownTlv []ygot.Annotation                                                                                                                                                                                                    `path:"@unknown-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateSidLabel retrieves the value of the SidLabel field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) GetOrCreateSidLabel() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel {
	if t.SidLabel != nil {
		return t.SidLabel
	}
	t.SidLabel = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel{}
	return t.SidLabel
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State{}
	return t.State
}

// GetOrCreateUnknownTlv retrieves the value of the UnknownTlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) GetOrCreateUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv {
	if t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	t.UnknownTlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv{}
	return t.UnknownTlv
}

// GetSidLabel returns the value of the SidLabel struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv. If the receiver or the field SidLabel is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) GetSidLabel() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel {
	if t != nil && t.SidLabel != nil {
		return t.SidLabel
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownTlv returns the value of the UnknownTlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv. If the receiver or the field UnknownTlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) GetUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv {
	if t != nil && t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.SidLabel.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UnknownTlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/sid-label YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/sid-label/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State struct {
	ΛMetadata   []ygot.Annotation               `path:"@" ygotAnnotation:"true"`
	EntryType   E_OpenconfigOspfTypes_SrSidType `path:"entry-type" module:"openconfig-network-instance"`
	ΛEntryType  []ygot.Annotation               `path:"@entry-type" ygotAnnotation:"true"`
	FirstValue  *uint32                         `path:"first-value" module:"openconfig-network-instance"`
	ΛFirstValue []ygot.Annotation               `path:"@first-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) IsYANGGoStruct() {
}

// GetEntryType retrieves the value of the leaf EntryType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EntryType is set, it can
// safely use t.GetEntryType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EntryType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) GetEntryType() E_OpenconfigOspfTypes_SrSidType {
	if t == nil || t.EntryType == 0 {
		return 0
	}
	return t.EntryType
}

// GetFirstValue retrieves the value of the leaf FirstValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FirstValue is set, it can
// safely use t.GetFirstValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FirstValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) GetFirstValue() uint32 {
	if t == nil || t.FirstValue == nil {
		return 0
	}
	return *t.FirstValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_SidLabel_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State struct {
	ΛMetadata  []ygot.Annotation                                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	RangeSize  *uint32                                                                                                                                                                                                                   `path:"range-size" module:"openconfig-network-instance"`
	ΛRangeSize []ygot.Annotation                                                                                                                                                                                                         `path:"@range-size" ygotAnnotation:"true"`
	Type       OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union `path:"type" module:"openconfig-network-instance"`
	ΛType      []ygot.Annotation                                                                                                                                                                                                         `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetRangeSize retrieves the value of the leaf RangeSize from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RangeSize is set, it can
// safely use t.GetRangeSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RangeSize == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) GetRangeSize() uint32 {
	if t == nil || t.RangeSize == nil {
		return 0
	}
	return *t.RangeSize
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) GetType() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/state/type within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum, E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum, E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union ensures that E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union interface.
func (E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union); ok {
		return v, nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum, E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/unknown-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/unknown-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_UnknownTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Type      OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                                                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) GetType() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/state/type within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum, E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum, E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union ensures that E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union interface.
func (E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union); ok {
		return v, nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum, E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/unknown-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                     `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/unknown-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_UnknownTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Scope     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope `path:"scope" module:"openconfig-network-instance"`
	ΛScope    []ygot.Annotation                                                                                                                                      `path:"@scope" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE                                                                                                             `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                                                                                                                                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) IsYANGGoStruct() {
}

// GetScope retrieves the value of the leaf Scope from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Scope is set, it can
// safely use t.GetScope() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Scope == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) GetScope() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope {
	if t == nil || t.Scope == 0 {
		return 0
	}
	return t.Scope
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) GetType() E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Tlvs      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs `path:"tlvs" module:"openconfig-network-instance"`
	ΛTlvs     []ygot.Annotation                                                                                                                                                 `path:"@tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) IsYANGGoStruct() {
}

// GetOrCreateTlvs retrieves the value of the Tlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) GetOrCreateTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs {
	if t.Tlvs != nil {
		return t.Tlvs
	}
	t.Tlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs{}
	return t.Tlvs
}

// GetTlvs returns the value of the Tlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering. If the receiver or the field Tlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) GetTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs {
	if t != nil && t.Tlvs != nil {
		return t.Tlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Tlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Tlv       []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv `path:"tlv" module:"openconfig-network-instance"`
	ΛTlv      []ygot.Annotation                                                                                                                                                       `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Link           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link          `path:"link" module:"openconfig-network-instance"`
	ΛLink          []ygot.Annotation                                                                                                                                                                   `path:"@link" ygotAnnotation:"true"`
	NodeAttribute  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute `path:"node-attribute" module:"openconfig-network-instance"`
	ΛNodeAttribute []ygot.Annotation                                                                                                                                                                   `path:"@node-attribute" ygotAnnotation:"true"`
	RouterAddress  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress `path:"router-address" module:"openconfig-network-instance"`
	ΛRouterAddress []ygot.Annotation                                                                                                                                                                   `path:"@router-address" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
	UnknownTlv     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv    `path:"unknown-tlv" module:"openconfig-network-instance"`
	ΛUnknownTlv    []ygot.Annotation                                                                                                                                                                   `path:"@unknown-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateLink retrieves the value of the Link field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetOrCreateLink() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link {
	if t.Link != nil {
		return t.Link
	}
	t.Link = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link{}
	return t.Link
}

// GetOrCreateNodeAttribute retrieves the value of the NodeAttribute field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetOrCreateNodeAttribute() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute {
	if t.NodeAttribute != nil {
		return t.NodeAttribute
	}
	t.NodeAttribute = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute{}
	return t.NodeAttribute
}

// GetOrCreateRouterAddress retrieves the value of the RouterAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetOrCreateRouterAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress {
	if t.RouterAddress != nil {
		return t.RouterAddress
	}
	t.RouterAddress = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress{}
	return t.RouterAddress
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State{}
	return t.State
}

// GetOrCreateUnknownTlv retrieves the value of the UnknownTlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetOrCreateUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv {
	if t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	t.UnknownTlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv{}
	return t.UnknownTlv
}

// GetLink returns the value of the Link struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv. If the receiver or the field Link is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetLink() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link {
	if t != nil && t.Link != nil {
		return t.Link
	}
	return nil
}

// GetNodeAttribute returns the value of the NodeAttribute struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv. If the receiver or the field NodeAttribute is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetNodeAttribute() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute {
	if t != nil && t.NodeAttribute != nil {
		return t.NodeAttribute
	}
	return nil
}

// GetRouterAddress returns the value of the RouterAddress struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv. If the receiver or the field RouterAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetRouterAddress() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress {
	if t != nil && t.RouterAddress != nil {
		return t.RouterAddress
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownTlv returns the value of the UnknownTlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv. If the receiver or the field UnknownTlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) GetUnknownTlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv {
	if t != nil && t.UnknownTlv != nil {
		return t.UnknownTlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Link.PopulateDefaults()
	t.NodeAttribute.PopulateDefaults()
	t.RouterAddress.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UnknownTlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	SubTlvs   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs `path:"sub-tlvs" module:"openconfig-network-instance"`
	ΛSubTlvs  []ygot.Annotation                                                                                                                                                                  `path:"@sub-tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) IsYANGGoStruct() {
}

// GetOrCreateSubTlvs retrieves the value of the SubTlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) GetOrCreateSubTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs {
	if t.SubTlvs != nil {
		return t.SubTlvs
	}
	t.SubTlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs{}
	return t.SubTlvs
}

// GetSubTlvs returns the value of the SubTlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link. If the receiver or the field SubTlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) GetSubTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs {
	if t != nil && t.SubTlvs != nil {
		return t.SubTlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.SubTlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	SubTlv    []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv `path:"sub-tlv" module:"openconfig-network-instance"`
	ΛSubTlv   []ygot.Annotation                                                                                                                                                                           `path:"@sub-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SubTlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv struct {
	ΛMetadata             []ygot.Annotation                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	AdministrativeGroups  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups `path:"administrative-groups" module:"openconfig-network-instance"`
	ΛAdministrativeGroups []ygot.Annotation                                                                                                                                                                                              `path:"@administrative-groups" ygotAnnotation:"true"`
	State                 *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State                `path:"state" module:"openconfig-network-instance"`
	ΛState                []ygot.Annotation                                                                                                                                                                                              `path:"@state" ygotAnnotation:"true"`
	UnknownSubtlv         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv        `path:"unknown-subtlv" module:"openconfig-network-instance"`
	ΛUnknownSubtlv        []ygot.Annotation                                                                                                                                                                                              `path:"@unknown-subtlv" ygotAnnotation:"true"`
	UnreservedBandwidths  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths `path:"unreserved-bandwidths" module:"openconfig-network-instance"`
	ΛUnreservedBandwidths []ygot.Annotation                                                                                                                                                                                              `path:"@unreserved-bandwidths" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) IsYANGGoStruct() {
}

// GetOrCreateAdministrativeGroups retrieves the value of the AdministrativeGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetOrCreateAdministrativeGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups {
	if t.AdministrativeGroups != nil {
		return t.AdministrativeGroups
	}
	t.AdministrativeGroups = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups{}
	return t.AdministrativeGroups
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State{}
	return t.State
}

// GetOrCreateUnknownSubtlv retrieves the value of the UnknownSubtlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetOrCreateUnknownSubtlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv {
	if t.UnknownSubtlv != nil {
		return t.UnknownSubtlv
	}
	t.UnknownSubtlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv{}
	return t.UnknownSubtlv
}

// GetOrCreateUnreservedBandwidths retrieves the value of the UnreservedBandwidths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetOrCreateUnreservedBandwidths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths {
	if t.UnreservedBandwidths != nil {
		return t.UnreservedBandwidths
	}
	t.UnreservedBandwidths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths{}
	return t.UnreservedBandwidths
}

// GetAdministrativeGroups returns the value of the AdministrativeGroups struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv. If the receiver or the field AdministrativeGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetAdministrativeGroups() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups {
	if t != nil && t.AdministrativeGroups != nil {
		return t.AdministrativeGroups
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownSubtlv returns the value of the UnknownSubtlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv. If the receiver or the field UnknownSubtlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetUnknownSubtlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv {
	if t != nil && t.UnknownSubtlv != nil {
		return t.UnknownSubtlv
	}
	return nil
}

// GetUnreservedBandwidths returns the value of the UnreservedBandwidths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv. If the receiver or the field UnreservedBandwidths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) GetUnreservedBandwidths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths {
	if t != nil && t.UnreservedBandwidths != nil {
		return t.UnreservedBandwidths
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdministrativeGroups.PopulateDefaults()
	t.State.PopulateDefaults()
	t.UnknownSubtlv.PopulateDefaults()
	t.UnreservedBandwidths.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/administrative-groups YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups struct {
	ΛMetadata   []ygot.Annotation                                                                                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	AdminGroup  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup `path:"admin-group" module:"openconfig-network-instance"`
	ΛAdminGroup []ygot.Annotation                                                                                                                                                                                                                   `path:"@admin-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) IsYANGGoStruct() {
}

// NewAdminGroup creates a new entry in the AdminGroup list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) NewAdminGroup(BitIndex uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdminGroup == nil {
		t.AdminGroup = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup)
	}

	key := BitIndex

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AdminGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AdminGroup", key)
	}

	t.AdminGroup[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup{
		BitIndex: &BitIndex,
	}

	return t.AdminGroup[key], nil
}

// RenameAdminGroup renames an entry in the list AdminGroup within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) RenameAdminGroup(oldK, newK uint8) error {
	if _, ok := t.AdminGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in AdminGroup", newK)
	}

	e, ok := t.AdminGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in AdminGroup", oldK)
	}
	e.BitIndex = &newK

	t.AdminGroup[newK] = e
	delete(t.AdminGroup, oldK)
	return nil
}

// GetOrCreateAdminGroupMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) GetOrCreateAdminGroupMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup {
	if t.AdminGroup == nil {
		t.AdminGroup = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup)
	}
	return t.AdminGroup
}

// GetOrCreateAdminGroup retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) GetOrCreateAdminGroup(BitIndex uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup {

	key := BitIndex

	if v, ok := t.AdminGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAdminGroup(BitIndex)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAdminGroup got unexpected error: %v", err))
	}
	return v
}

// GetAdminGroup retrieves the value with the specified key from
// the AdminGroup map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) GetAdminGroup(BitIndex uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup {

	if t == nil {
		return nil
	}

	key := BitIndex

	if lm, ok := t.AdminGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendAdminGroup appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup struct to the
// list AdminGroup of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) AppendAdminGroup(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) error {
	if v.BitIndex == nil {
		return fmt.Errorf("invalid nil key received for BitIndex")
	}

	key := *v.BitIndex

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AdminGroup == nil {
		t.AdminGroup = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup)
	}

	if _, ok := t.AdminGroup[key]; ok {
		return fmt.Errorf("duplicate key for list AdminGroup %v", key)
	}

	t.AdminGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.AdminGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/administrative-groups/admin-group YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	BitIndex  *uint8                                                                                                                                                                                                                          `path:"bit-index" module:"openconfig-network-instance"`
	ΛBitIndex []ygot.Annotation                                                                                                                                                                                                               `path:"@bit-index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetBitIndex retrieves the value of the leaf BitIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BitIndex is set, it can
// safely use t.GetBitIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BitIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) GetBitIndex() uint8 {
	if t == nil || t.BitIndex == nil {
		return 0
	}
	return *t.BitIndex
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.BitIndex == nil {
		return nil, fmt.Errorf("nil value for key BitIndex")
	}

	return map[string]interface{}{
		"bit-index": *t.BitIndex,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/administrative-groups/admin-group/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BitIndex  *uint8            `path:"bit-index" module:"openconfig-network-instance"`
	ΛBitIndex []ygot.Annotation `path:"@bit-index" ygotAnnotation:"true"`
	Set       *bool             `path:"set" module:"openconfig-network-instance"`
	ΛSet      []ygot.Annotation `path:"@set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) IsYANGGoStruct() {
}

// GetBitIndex retrieves the value of the leaf BitIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BitIndex is set, it can
// safely use t.GetBitIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BitIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) GetBitIndex() uint8 {
	if t == nil || t.BitIndex == nil {
		return 0
	}
	return *t.BitIndex
}

// GetSet retrieves the value of the leaf Set from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Set is set, it can
// safely use t.GetSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Set == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) GetSet() bool {
	if t == nil || t.Set == nil {
		return false
	}
	return *t.Set
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Set == nil {
		var v bool = false
		t.Set = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_AdministrativeGroups_AdminGroup_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	LinkId                      *string                                                                                                                                                                                                   `path:"link-id" module:"openconfig-network-instance"`
	ΛLinkId                     []ygot.Annotation                                                                                                                                                                                         `path:"@link-id" ygotAnnotation:"true"`
	LinkType                    E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType `path:"link-type" module:"openconfig-network-instance"`
	ΛLinkType                   []ygot.Annotation                                                                                                                                                                                         `path:"@link-type" ygotAnnotation:"true"`
	LocalIpAddress              []string                                                                                                                                                                                                  `path:"local-ip-address" module:"openconfig-network-instance"`
	ΛLocalIpAddress             []ygot.Annotation                                                                                                                                                                                         `path:"@local-ip-address" ygotAnnotation:"true"`
	MaximumBandwidth            Binary                                                                                                                                                                                                    `path:"maximum-bandwidth" module:"openconfig-network-instance"`
	ΛMaximumBandwidth           []ygot.Annotation                                                                                                                                                                                         `path:"@maximum-bandwidth" ygotAnnotation:"true"`
	MaximumReservableBandwidth  Binary                                                                                                                                                                                                    `path:"maximum-reservable-bandwidth" module:"openconfig-network-instance"`
	ΛMaximumReservableBandwidth []ygot.Annotation                                                                                                                                                                                         `path:"@maximum-reservable-bandwidth" ygotAnnotation:"true"`
	Metric                      *uint32                                                                                                                                                                                                   `path:"metric" module:"openconfig-network-instance"`
	ΛMetric                     []ygot.Annotation                                                                                                                                                                                         `path:"@metric" ygotAnnotation:"true"`
	RemoteIpAddress             []string                                                                                                                                                                                                  `path:"remote-ip-address" module:"openconfig-network-instance"`
	ΛRemoteIpAddress            []ygot.Annotation                                                                                                                                                                                         `path:"@remote-ip-address" ygotAnnotation:"true"`
	Type                        OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union `path:"type" module:"openconfig-network-instance"`
	ΛType                       []ygot.Annotation                                                                                                                                                                                         `path:"@type" ygotAnnotation:"true"`
	UnknownType                 *uint16                                                                                                                                                                                                   `path:"unknown-type" module:"openconfig-network-instance"`
	ΛUnknownType                []ygot.Annotation                                                                                                                                                                                         `path:"@unknown-type" ygotAnnotation:"true"`
	UnknownValue                Binary                                                                                                                                                                                                    `path:"unknown-value" module:"openconfig-network-instance"`
	ΛUnknownValue               []ygot.Annotation                                                                                                                                                                                         `path:"@unknown-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) IsYANGGoStruct() {
}

// GetLinkId retrieves the value of the leaf LinkId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkId is set, it can
// safely use t.GetLinkId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetLinkId() string {
	if t == nil || t.LinkId == nil {
		return ""
	}
	return *t.LinkId
}

// GetLinkType retrieves the value of the leaf LinkType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkType is set, it can
// safely use t.GetLinkType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetLinkType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType {
	if t == nil || t.LinkType == 0 {
		return 0
	}
	return t.LinkType
}

// GetLocalIpAddress retrieves the value of the leaf LocalIpAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalIpAddress is set, it can
// safely use t.GetLocalIpAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalIpAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetLocalIpAddress() []string {
	if t == nil || t.LocalIpAddress == nil {
		return nil
	}
	return t.LocalIpAddress
}

// GetMaximumBandwidth retrieves the value of the leaf MaximumBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumBandwidth is set, it can
// safely use t.GetMaximumBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetMaximumBandwidth() Binary {
	if t == nil || t.MaximumBandwidth == nil {
		return nil
	}
	return t.MaximumBandwidth
}

// GetMaximumReservableBandwidth retrieves the value of the leaf MaximumReservableBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumReservableBandwidth is set, it can
// safely use t.GetMaximumReservableBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumReservableBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetMaximumReservableBandwidth() Binary {
	if t == nil || t.MaximumReservableBandwidth == nil {
		return nil
	}
	return t.MaximumReservableBandwidth
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetRemoteIpAddress retrieves the value of the leaf RemoteIpAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteIpAddress is set, it can
// safely use t.GetRemoteIpAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteIpAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetRemoteIpAddress() []string {
	if t == nil || t.RemoteIpAddress == nil {
		return nil
	}
	return t.RemoteIpAddress
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetType() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// GetUnknownType retrieves the value of the leaf UnknownType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnknownType is set, it can
// safely use t.GetUnknownType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnknownType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetUnknownType() uint16 {
	if t == nil || t.UnknownType == nil {
		return 0
	}
	return *t.UnknownType
}

// GetUnknownValue retrieves the value of the leaf UnknownValue from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnknownValue is set, it can
// safely use t.GetUnknownValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnknownValue == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) GetUnknownValue() Binary {
	if t == nil || t.UnknownValue == nil {
		return nil
	}
	return t.UnknownValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/state/type within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum, E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum, E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union ensures that E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union interface.
func (E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union); ok {
		return v, nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum, E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnknownSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unreserved-bandwidths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths struct {
	ΛMetadata            []ygot.Annotation                                                                                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	UnreservedBandwidth  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth `path:"unreserved-bandwidth" module:"openconfig-network-instance"`
	ΛUnreservedBandwidth []ygot.Annotation                                                                                                                                                                                                                            `path:"@unreserved-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) IsYANGGoStruct() {
}

// NewUnreservedBandwidth creates a new entry in the UnreservedBandwidth list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) NewUnreservedBandwidth(Priority uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnreservedBandwidth == nil {
		t.UnreservedBandwidth = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth)
	}

	key := Priority

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.UnreservedBandwidth[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list UnreservedBandwidth", key)
	}

	t.UnreservedBandwidth[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth{
		Priority: &Priority,
	}

	return t.UnreservedBandwidth[key], nil
}

// RenameUnreservedBandwidth renames an entry in the list UnreservedBandwidth within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) RenameUnreservedBandwidth(oldK, newK uint8) error {
	if _, ok := t.UnreservedBandwidth[newK]; ok {
		return fmt.Errorf("key %v already exists in UnreservedBandwidth", newK)
	}

	e, ok := t.UnreservedBandwidth[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in UnreservedBandwidth", oldK)
	}
	e.Priority = &newK

	t.UnreservedBandwidth[newK] = e
	delete(t.UnreservedBandwidth, oldK)
	return nil
}

// GetOrCreateUnreservedBandwidthMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) GetOrCreateUnreservedBandwidthMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth {
	if t.UnreservedBandwidth == nil {
		t.UnreservedBandwidth = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth)
	}
	return t.UnreservedBandwidth
}

// GetOrCreateUnreservedBandwidth retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) GetOrCreateUnreservedBandwidth(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth {

	key := Priority

	if v, ok := t.UnreservedBandwidth[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUnreservedBandwidth(Priority)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUnreservedBandwidth got unexpected error: %v", err))
	}
	return v
}

// GetUnreservedBandwidth retrieves the value with the specified key from
// the UnreservedBandwidth map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) GetUnreservedBandwidth(Priority uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth {

	if t == nil {
		return nil
	}

	key := Priority

	if lm, ok := t.UnreservedBandwidth[key]; ok {
		return lm
	}
	return nil
}

// AppendUnreservedBandwidth appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth struct to the
// list UnreservedBandwidth of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) AppendUnreservedBandwidth(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) error {
	if v.Priority == nil {
		return fmt.Errorf("invalid nil key received for Priority")
	}

	key := *v.Priority

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.UnreservedBandwidth == nil {
		t.UnreservedBandwidth = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth)
	}

	if _, ok := t.UnreservedBandwidth[key]; ok {
		return fmt.Errorf("duplicate key for list UnreservedBandwidth %v", key)
	}

	t.UnreservedBandwidth[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.UnreservedBandwidth {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unreserved-bandwidths/unreserved-bandwidth YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Priority  *uint8                                                                                                                                                                                                                                   `path:"priority" module:"openconfig-network-instance"`
	ΛPriority []ygot.Annotation                                                                                                                                                                                                                        `path:"@priority" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Priority == nil {
		return nil, fmt.Errorf("nil value for key Priority")
	}

	return map[string]interface{}{
		"priority": *t.Priority,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unreserved-bandwidths/unreserved-bandwidth/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Priority             *uint8            `path:"priority" module:"openconfig-network-instance"`
	ΛPriority            []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
	UnreservedBandwidth  Binary            `path:"unreserved-bandwidth" module:"openconfig-network-instance"`
	ΛUnreservedBandwidth []ygot.Annotation `path:"@unreserved-bandwidth" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) IsYANGGoStruct() {
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetUnreservedBandwidth retrieves the value of the leaf UnreservedBandwidth from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnreservedBandwidth is set, it can
// safely use t.GetUnreservedBandwidth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnreservedBandwidth == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) GetUnreservedBandwidth() Binary {
	if t == nil || t.UnreservedBandwidth == nil {
		return nil
	}
	return t.UnreservedBandwidth
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_UnreservedBandwidths_UnreservedBandwidth_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	SubTlvs   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs `path:"sub-tlvs" module:"openconfig-network-instance"`
	ΛSubTlvs  []ygot.Annotation                                                                                                                                                                           `path:"@sub-tlvs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) IsYANGGoStruct() {
}

// GetOrCreateSubTlvs retrieves the value of the SubTlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) GetOrCreateSubTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs {
	if t.SubTlvs != nil {
		return t.SubTlvs
	}
	t.SubTlvs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs{}
	return t.SubTlvs
}

// GetSubTlvs returns the value of the SubTlvs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute. If the receiver or the field SubTlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) GetSubTlvs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs {
	if t != nil && t.SubTlvs != nil {
		return t.SubTlvs
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.SubTlvs.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute/sub-tlvs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	SubTlv    []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv `path:"sub-tlv" module:"openconfig-network-instance"`
	ΛSubTlv   []ygot.Annotation                                                                                                                                                                                    `path:"@sub-tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SubTlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute/sub-tlvs/sub-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State         `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                                                                                                                                `path:"@state" ygotAnnotation:"true"`
	UnknownSubtlv  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv `path:"unknown-subtlv" module:"openconfig-network-instance"`
	ΛUnknownSubtlv []ygot.Annotation                                                                                                                                                                                                `path:"@unknown-subtlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State{}
	return t.State
}

// GetOrCreateUnknownSubtlv retrieves the value of the UnknownSubtlv field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) GetOrCreateUnknownSubtlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv {
	if t.UnknownSubtlv != nil {
		return t.UnknownSubtlv
	}
	t.UnknownSubtlv = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv{}
	return t.UnknownSubtlv
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUnknownSubtlv returns the value of the UnknownSubtlv struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv. If the receiver or the field UnknownSubtlv is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) GetUnknownSubtlv() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv {
	if t != nil && t.UnknownSubtlv != nil {
		return t.UnknownSubtlv
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.UnknownSubtlv.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute/sub-tlvs/sub-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State struct {
	ΛMetadata           []ygot.Annotation                                                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	LocalIpv4Addresses  []string                                                                                                                                                                                                           `path:"local-ipv4-addresses" module:"openconfig-network-instance"`
	ΛLocalIpv4Addresses []ygot.Annotation                                                                                                                                                                                                  `path:"@local-ipv4-addresses" ygotAnnotation:"true"`
	LocalIpv6Addresses  []string                                                                                                                                                                                                           `path:"local-ipv6-addresses" module:"openconfig-network-instance"`
	ΛLocalIpv6Addresses []ygot.Annotation                                                                                                                                                                                                  `path:"@local-ipv6-addresses" ygotAnnotation:"true"`
	Type                OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union `path:"type" module:"openconfig-network-instance"`
	ΛType               []ygot.Annotation                                                                                                                                                                                                  `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) IsYANGGoStruct() {
}

// GetLocalIpv4Addresses retrieves the value of the leaf LocalIpv4Addresses from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalIpv4Addresses is set, it can
// safely use t.GetLocalIpv4Addresses() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalIpv4Addresses == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) GetLocalIpv4Addresses() []string {
	if t == nil || t.LocalIpv4Addresses == nil {
		return nil
	}
	return t.LocalIpv4Addresses
}

// GetLocalIpv6Addresses retrieves the value of the leaf LocalIpv6Addresses from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalIpv6Addresses is set, it can
// safely use t.GetLocalIpv6Addresses() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalIpv6Addresses == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) GetLocalIpv6Addresses() []string {
	if t == nil || t.LocalIpv6Addresses == nil {
		return nil
	}
	return t.LocalIpv6Addresses
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) GetType() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute/sub-tlvs/sub-tlv/state/type within the YANG schema.
// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum, E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union interface {
	// Union type can be one of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum, E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union ensures that E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union interface.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union ensures that E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union interface.
func (E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union); ok {
		return v, nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Union, unknown union type, got: %T, want any of [E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum, E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute/sub-tlvs/sub-tlv/unknown-subtlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute/sub-tlvs/sub-tlv/unknown-subtlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_UnknownSubtlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/router-address YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/router-address/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   *string           `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_RouterAddress_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                          `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State) GetType() E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/unknown-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/unknown-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_UnknownTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/unknown-tlv YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv struct {
	ΛMetadata []ygot.Annotation                                                                                                                                          `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/unknown-tlv/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Length    *uint16           `path:"length" module:"openconfig-network-instance"`
	ΛLength   []ygot.Annotation `path:"@length" ygotAnnotation:"true"`
	Type      *uint16           `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value     Binary            `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) IsYANGGoStruct() {
}

// GetLength retrieves the value of the leaf Length from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Length is set, it can
// safely use t.GetLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Length == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) GetLength() uint16 {
	if t == nil || t.Length == nil {
		return 0
	}
	return *t.Length
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) GetType() uint16 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_UnknownTlv_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/router-lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
	TypesOfService  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService `path:"types-of-service" module:"openconfig-network-instance"`
	ΛTypesOfService []ygot.Annotation                                                                                                                                        `path:"@types-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State{}
	return t.State
}

// GetOrCreateTypesOfService retrieves the value of the TypesOfService field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) GetOrCreateTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService {
	if t.TypesOfService != nil {
		return t.TypesOfService
	}
	t.TypesOfService = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService{}
	return t.TypesOfService
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTypesOfService returns the value of the TypesOfService struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa. If the receiver or the field TypesOfService is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) GetTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService {
	if t != nil && t.TypesOfService != nil {
		return t.TypesOfService
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.TypesOfService.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/router-lsa/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State struct {
	ΛMetadata         []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	LinkData          OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union `path:"link-data" module:"openconfig-network-instance"`
	ΛLinkData         []ygot.Annotation                                                                                                                                             `path:"@link-data" ygotAnnotation:"true"`
	LinkId            *string                                                                                                                                                       `path:"link-id" module:"openconfig-network-instance"`
	ΛLinkId           []ygot.Annotation                                                                                                                                             `path:"@link-id" ygotAnnotation:"true"`
	Metric            *uint16                                                                                                                                                       `path:"metric" module:"openconfig-network-instance"`
	ΛMetric           []ygot.Annotation                                                                                                                                             `path:"@metric" ygotAnnotation:"true"`
	NumberLinks       *uint16                                                                                                                                                       `path:"number-links" module:"openconfig-network-instance"`
	ΛNumberLinks      []ygot.Annotation                                                                                                                                             `path:"@number-links" ygotAnnotation:"true"`
	NumberTosMetrics  *uint16                                                                                                                                                       `path:"number-tos-metrics" module:"openconfig-network-instance"`
	ΛNumberTosMetrics []ygot.Annotation                                                                                                                                             `path:"@number-tos-metrics" ygotAnnotation:"true"`
	Type              E_OpenconfigOspfTypes_ROUTER_LSA_TYPES                                                                                                                        `path:"type" module:"openconfig-network-instance"`
	ΛType             []ygot.Annotation                                                                                                                                             `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) IsYANGGoStruct() {
}

// GetLinkData retrieves the value of the leaf LinkData from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkData is set, it can
// safely use t.GetLinkData() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkData == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) GetLinkData() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union {
	if t == nil || t.LinkData == nil {
		return nil
	}
	return t.LinkData
}

// GetLinkId retrieves the value of the leaf LinkId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkId is set, it can
// safely use t.GetLinkId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) GetLinkId() string {
	if t == nil || t.LinkId == nil {
		return ""
	}
	return *t.LinkId
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNumberLinks retrieves the value of the leaf NumberLinks from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NumberLinks is set, it can
// safely use t.GetNumberLinks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NumberLinks == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) GetNumberLinks() uint16 {
	if t == nil || t.NumberLinks == nil {
		return 0
	}
	return *t.NumberLinks
}

// GetNumberTosMetrics retrieves the value of the leaf NumberTosMetrics from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NumberTosMetrics is set, it can
// safely use t.GetNumberTosMetrics() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NumberTosMetrics == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) GetNumberTosMetrics() uint16 {
	if t == nil || t.NumberTosMetrics == nil {
		return 0
	}
	return *t.NumberTosMetrics
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) GetType() E_OpenconfigOspfTypes_ROUTER_LSA_TYPES {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/router-lsa/state/link-data within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_State_LinkData_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/router-lsa/types-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	TypeOfService  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService `path:"type-of-service" module:"openconfig-network-instance"`
	ΛTypeOfService []ygot.Annotation                                                                                                                                                                `path:"@type-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) IsYANGGoStruct() {
}

// NewTypeOfService creates a new entry in the TypeOfService list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) NewTypeOfService(Tos uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService)
	}

	key := Tos

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeOfService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeOfService", key)
	}

	t.TypeOfService[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService{
		Tos: &Tos,
	}

	return t.TypeOfService[key], nil
}

// RenameTypeOfService renames an entry in the list TypeOfService within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) RenameTypeOfService(oldK, newK uint8) error {
	if _, ok := t.TypeOfService[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeOfService", newK)
	}

	e, ok := t.TypeOfService[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeOfService", oldK)
	}
	e.Tos = &newK

	t.TypeOfService[newK] = e
	delete(t.TypeOfService, oldK)
	return nil
}

// GetOrCreateTypeOfServiceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) GetOrCreateTypeOfServiceMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService {
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService)
	}
	return t.TypeOfService
}

// GetOrCreateTypeOfService retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) GetOrCreateTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService {

	key := Tos

	if v, ok := t.TypeOfService[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeOfService(Tos)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeOfService got unexpected error: %v", err))
	}
	return v
}

// GetTypeOfService retrieves the value with the specified key from
// the TypeOfService map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) GetTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService {

	if t == nil {
		return nil
	}

	key := Tos

	if lm, ok := t.TypeOfService[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeOfService appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService struct to the
// list TypeOfService of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) AppendTypeOfService(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) error {
	if v.Tos == nil {
		return fmt.Errorf("invalid nil key received for Tos")
	}

	key := *v.Tos

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService)
	}

	if _, ok := t.TypeOfService[key]; ok {
		return fmt.Errorf("duplicate key for list TypeOfService %v", key)
	}

	t.TypeOfService[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeOfService {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/router-lsa/types-of-service/type-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                            `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                            `path:"@state" ygotAnnotation:"true"`
	Tos       *uint8                                                                                                                                                                       `path:"tos" module:"openconfig-network-instance"`
	ΛTos      []ygot.Annotation                                                                                                                                                            `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Tos == nil {
		return nil, fmt.Errorf("nil value for key Tos")
	}

	return map[string]interface{}{
		"tos": *t.Tos,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/router-lsa/types-of-service/type-of-service/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint16           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	Tos       *uint8            `path:"tos" module:"openconfig-network-instance"`
	ΛTos      []ygot.Annotation `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_RouterLsa_TypesOfService_TypeOfService_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvertisingRouter  *string           `path:"advertising-router" module:"openconfig-network-instance"`
	ΛAdvertisingRouter []ygot.Annotation `path:"@advertising-router" ygotAnnotation:"true"`
	Age                *uint16           `path:"age" module:"openconfig-network-instance"`
	ΛAge               []ygot.Annotation `path:"@age" ygotAnnotation:"true"`
	Checksum           *uint16           `path:"checksum" module:"openconfig-network-instance"`
	ΛChecksum          []ygot.Annotation `path:"@checksum" ygotAnnotation:"true"`
	LinkStateId        *string           `path:"link-state-id" module:"openconfig-network-instance"`
	ΛLinkStateId       []ygot.Annotation `path:"@link-state-id" ygotAnnotation:"true"`
	SequenceNumber     *int32            `path:"sequence-number" module:"openconfig-network-instance"`
	ΛSequenceNumber    []ygot.Annotation `path:"@sequence-number" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) IsYANGGoStruct() {
}

// GetAdvertisingRouter retrieves the value of the leaf AdvertisingRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvertisingRouter is set, it can
// safely use t.GetAdvertisingRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvertisingRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) GetAdvertisingRouter() string {
	if t == nil || t.AdvertisingRouter == nil {
		return ""
	}
	return *t.AdvertisingRouter
}

// GetAge retrieves the value of the leaf Age from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Age is set, it can
// safely use t.GetAge() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Age == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) GetAge() uint16 {
	if t == nil || t.Age == nil {
		return 0
	}
	return *t.Age
}

// GetChecksum retrieves the value of the leaf Checksum from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Checksum is set, it can
// safely use t.GetChecksum() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Checksum == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) GetChecksum() uint16 {
	if t == nil || t.Checksum == nil {
		return 0
	}
	return *t.Checksum
}

// GetLinkStateId retrieves the value of the leaf LinkStateId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkStateId is set, it can
// safely use t.GetLinkStateId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkStateId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) GetLinkStateId() string {
	if t == nil || t.LinkStateId == nil {
		return ""
	}
	return *t.LinkStateId
}

// GetSequenceNumber retrieves the value of the leaf SequenceNumber from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SequenceNumber is set, it can
// safely use t.GetSequenceNumber() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SequenceNumber == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) GetSequenceNumber() int32 {
	if t == nil || t.SequenceNumber == nil {
		return 0
	}
	return *t.SequenceNumber
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/summary-lsa YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa struct {
	ΛMetadata       []ygot.Annotation                                                                                                                                         `path:"@" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                                         `path:"@state" ygotAnnotation:"true"`
	TypesOfService  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService `path:"types-of-service" module:"openconfig-network-instance"`
	ΛTypesOfService []ygot.Annotation                                                                                                                                         `path:"@types-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State{}
	return t.State
}

// GetOrCreateTypesOfService retrieves the value of the TypesOfService field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) GetOrCreateTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService {
	if t.TypesOfService != nil {
		return t.TypesOfService
	}
	t.TypesOfService = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService{}
	return t.TypesOfService
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTypesOfService returns the value of the TypesOfService struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa. If the receiver or the field TypesOfService is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) GetTypesOfService() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService {
	if t != nil && t.TypesOfService != nil {
		return t.TypesOfService
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
	t.TypesOfService.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/summary-lsa/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric       *uint16           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric      []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	NetworkMask  *uint8            `path:"network-mask" module:"openconfig-network-instance"`
	ΛNetworkMask []ygot.Annotation `path:"@network-mask" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNetworkMask retrieves the value of the leaf NetworkMask from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkMask is set, it can
// safely use t.GetNetworkMask() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkMask == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) GetNetworkMask() uint8 {
	if t == nil || t.NetworkMask == nil {
		return 0
	}
	return *t.NetworkMask
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/summary-lsa/types-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                 `path:"@" ygotAnnotation:"true"`
	TypeOfService  map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService `path:"type-of-service" module:"openconfig-network-instance"`
	ΛTypeOfService []ygot.Annotation                                                                                                                                                                 `path:"@type-of-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) IsYANGGoStruct() {
}

// NewTypeOfService creates a new entry in the TypeOfService list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) NewTypeOfService(Tos uint8) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService)
	}

	key := Tos

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TypeOfService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TypeOfService", key)
	}

	t.TypeOfService[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService{
		Tos: &Tos,
	}

	return t.TypeOfService[key], nil
}

// RenameTypeOfService renames an entry in the list TypeOfService within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) RenameTypeOfService(oldK, newK uint8) error {
	if _, ok := t.TypeOfService[newK]; ok {
		return fmt.Errorf("key %v already exists in TypeOfService", newK)
	}

	e, ok := t.TypeOfService[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TypeOfService", oldK)
	}
	e.Tos = &newK

	t.TypeOfService[newK] = e
	delete(t.TypeOfService, oldK)
	return nil
}

// GetOrCreateTypeOfServiceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) GetOrCreateTypeOfServiceMap() map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService {
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService)
	}
	return t.TypeOfService
}

// GetOrCreateTypeOfService retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) GetOrCreateTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService {

	key := Tos

	if v, ok := t.TypeOfService[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTypeOfService(Tos)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTypeOfService got unexpected error: %v", err))
	}
	return v
}

// GetTypeOfService retrieves the value with the specified key from
// the TypeOfService map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) GetTypeOfService(Tos uint8) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService {

	if t == nil {
		return nil
	}

	key := Tos

	if lm, ok := t.TypeOfService[key]; ok {
		return lm
	}
	return nil
}

// AppendTypeOfService appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService struct to the
// list TypeOfService of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) AppendTypeOfService(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) error {
	if v.Tos == nil {
		return fmt.Errorf("invalid nil key received for Tos")
	}

	key := *v.Tos

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TypeOfService == nil {
		t.TypeOfService = make(map[uint8]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService)
	}

	if _, ok := t.TypeOfService[key]; ok {
		return fmt.Errorf("duplicate key for list TypeOfService %v", key)
	}

	t.TypeOfService[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TypeOfService {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/summary-lsa/types-of-service/type-of-service YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
	Tos       *uint8                                                                                                                                                                        `path:"tos" module:"openconfig-network-instance"`
	ΛTos      []ygot.Annotation                                                                                                                                                             `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Tos == nil {
		return nil, fmt.Errorf("nil value for key Tos")
	}

	return map[string]interface{}{
		"tos": *t.Tos,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/summary-lsa/types-of-service/type-of-service/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Metric    *uint16           `path:"metric" module:"openconfig-network-instance"`
	ΛMetric   []ygot.Annotation `path:"@metric" ygotAnnotation:"true"`
	Tos       *uint8            `path:"tos" module:"openconfig-network-instance"`
	ΛTos      []ygot.Annotation `path:"@tos" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) IsYANGGoStruct() {
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) GetMetric() uint16 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetTos retrieves the value of the leaf Tos from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tos is set, it can
// safely use t.GetTos() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tos == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) GetTos() uint8 {
	if t == nil || t.Tos == nil {
		return 0
	}
	return *t.Tos
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_SummaryLsa_TypesOfService_TypeOfService_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State struct {
	ΛMetadata []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	Type      E_OpenconfigOspfTypes_OSPF_LSA_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType     []ygot.Annotation                   `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State) IsYANGGoStruct() {
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State) GetType() E_OpenconfigOspfTypes_OSPF_LSA_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Identifier  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier []ygot.Annotation                                                                                                           `path:"@identifier" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) IsYANGGoStruct() {
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) GetIdentifier() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union {
	if t == nil || t.Identifier == nil {
		return nil
	}
	return t.Identifier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/state/identifier within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_State_Identifier_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/mpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls struct {
	ΛMetadata []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/mpls/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config struct {
	ΛMetadata                  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TrafficEngineeringEnabled  *bool             `path:"traffic-engineering-enabled" module:"openconfig-network-instance"`
	ΛTrafficEngineeringEnabled []ygot.Annotation `path:"@traffic-engineering-enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config) IsYANGGoStruct() {
}

// GetTrafficEngineeringEnabled retrieves the value of the leaf TrafficEngineeringEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficEngineeringEnabled is set, it can
// safely use t.GetTrafficEngineeringEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficEngineeringEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config) GetTrafficEngineeringEnabled() bool {
	if t == nil || t.TrafficEngineeringEnabled == nil {
		return false
	}
	return *t.TrafficEngineeringEnabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/mpls/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State struct {
	ΛMetadata                  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TrafficEngineeringEnabled  *bool             `path:"traffic-engineering-enabled" module:"openconfig-network-instance"`
	ΛTrafficEngineeringEnabled []ygot.Annotation `path:"@traffic-engineering-enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State) IsYANGGoStruct() {
}

// GetTrafficEngineeringEnabled retrieves the value of the leaf TrafficEngineeringEnabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficEngineeringEnabled is set, it can
// safely use t.GetTrafficEngineeringEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficEngineeringEnabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State) GetTrafficEngineeringEnabled() bool {
	if t == nil || t.TrafficEngineeringEnabled == nil {
		return false
	}
	return *t.TrafficEngineeringEnabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Mpls_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Identifier  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier []ygot.Annotation                                                                                                      `path:"@identifier" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) IsYANGGoStruct() {
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) GetIdentifier() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union {
	if t == nil || t.Identifier == nil {
		return nil
	}
	return t.Identifier
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/state/identifier within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_State_Identifier_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/virtual-links YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks struct {
	ΛMetadata    []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	VirtualLink  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink `path:"virtual-link" module:"openconfig-network-instance"`
	ΛVirtualLink []ygot.Annotation                                                                                                                    `path:"@virtual-link" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) IsYANGGoStruct() {
}

// NewVirtualLink creates a new entry in the VirtualLink list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) NewVirtualLink(RemoteRouterId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.VirtualLink == nil {
		t.VirtualLink = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink)
	}

	key := RemoteRouterId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.VirtualLink[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list VirtualLink", key)
	}

	t.VirtualLink[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink{
		RemoteRouterId: &RemoteRouterId,
	}

	return t.VirtualLink[key], nil
}

// RenameVirtualLink renames an entry in the list VirtualLink within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) RenameVirtualLink(oldK, newK string) error {
	if _, ok := t.VirtualLink[newK]; ok {
		return fmt.Errorf("key %v already exists in VirtualLink", newK)
	}

	e, ok := t.VirtualLink[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in VirtualLink", oldK)
	}
	e.RemoteRouterId = &newK

	t.VirtualLink[newK] = e
	delete(t.VirtualLink, oldK)
	return nil
}

// GetOrCreateVirtualLinkMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) GetOrCreateVirtualLinkMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink {
	if t.VirtualLink == nil {
		t.VirtualLink = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink)
	}
	return t.VirtualLink
}

// GetOrCreateVirtualLink retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) GetOrCreateVirtualLink(RemoteRouterId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink {

	key := RemoteRouterId

	if v, ok := t.VirtualLink[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewVirtualLink(RemoteRouterId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateVirtualLink got unexpected error: %v", err))
	}
	return v
}

// GetVirtualLink retrieves the value with the specified key from
// the VirtualLink map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) GetVirtualLink(RemoteRouterId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink {

	if t == nil {
		return nil
	}

	key := RemoteRouterId

	if lm, ok := t.VirtualLink[key]; ok {
		return lm
	}
	return nil
}

// AppendVirtualLink appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink struct to the
// list VirtualLink of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) AppendVirtualLink(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) error {
	if v.RemoteRouterId == nil {
		return fmt.Errorf("invalid nil key received for RemoteRouterId")
	}

	key := *v.RemoteRouterId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.VirtualLink == nil {
		t.VirtualLink = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink)
	}

	if _, ok := t.VirtualLink[key]; ok {
		return fmt.Errorf("duplicate key for list VirtualLink %v", key)
	}

	t.VirtualLink[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.VirtualLink {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/virtual-links/virtual-link YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink struct {
	ΛMetadata       []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig         []ygot.Annotation                                                                                                                `path:"@config" ygotAnnotation:"true"`
	RemoteRouterId  *string                                                                                                                          `path:"remote-router-id" module:"openconfig-network-instance"`
	ΛRemoteRouterId []ygot.Annotation                                                                                                                `path:"@remote-router-id" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State  `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetRemoteRouterId retrieves the value of the leaf RemoteRouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteRouterId is set, it can
// safely use t.GetRemoteRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteRouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) GetRemoteRouterId() string {
	if t == nil || t.RemoteRouterId == nil {
		return ""
	}
	return *t.RemoteRouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RemoteRouterId == nil {
		return nil, fmt.Errorf("nil value for key RemoteRouterId")
	}

	return map[string]interface{}{
		"remote-router-id": *t.RemoteRouterId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/virtual-links/virtual-link/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RemoteRouterId  *string           `path:"remote-router-id" module:"openconfig-network-instance"`
	ΛRemoteRouterId []ygot.Annotation `path:"@remote-router-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config) IsYANGGoStruct() {
}

// GetRemoteRouterId retrieves the value of the leaf RemoteRouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteRouterId is set, it can
// safely use t.GetRemoteRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteRouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config) GetRemoteRouterId() string {
	if t == nil || t.RemoteRouterId == nil {
		return ""
	}
	return *t.RemoteRouterId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/virtual-links/virtual-link/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State struct {
	ΛMetadata                  []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	AdjacencyState             E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE `path:"adjacency-state" module:"openconfig-network-instance"`
	ΛAdjacencyState            []ygot.Annotation                         `path:"@adjacency-state" ygotAnnotation:"true"`
	BackupDesignatedRouter     *string                                   `path:"backup-designated-router" module:"openconfig-network-instance"`
	ΛBackupDesignatedRouter    []ygot.Annotation                         `path:"@backup-designated-router" ygotAnnotation:"true"`
	DeadTime                   *uint64                                   `path:"dead-time" module:"openconfig-network-instance"`
	ΛDeadTime                  []ygot.Annotation                         `path:"@dead-time" ygotAnnotation:"true"`
	DesignatedRouter           *string                                   `path:"designated-router" module:"openconfig-network-instance"`
	ΛDesignatedRouter          []ygot.Annotation                         `path:"@designated-router" ygotAnnotation:"true"`
	LastEstablishedTime        *uint64                                   `path:"last-established-time" module:"openconfig-network-instance"`
	ΛLastEstablishedTime       []ygot.Annotation                         `path:"@last-established-time" ygotAnnotation:"true"`
	OptionalCapabilities       *string                                   `path:"optional-capabilities" module:"openconfig-network-instance"`
	ΛOptionalCapabilities      []ygot.Annotation                         `path:"@optional-capabilities" ygotAnnotation:"true"`
	Priority                   *uint8                                    `path:"priority" module:"openconfig-network-instance"`
	ΛPriority                  []ygot.Annotation                         `path:"@priority" ygotAnnotation:"true"`
	RemoteRouterId             *string                                   `path:"remote-router-id" module:"openconfig-network-instance"`
	ΛRemoteRouterId            []ygot.Annotation                         `path:"@remote-router-id" ygotAnnotation:"true"`
	RetransmissionQueueLength  *uint32                                   `path:"retransmission-queue-length" module:"openconfig-network-instance"`
	ΛRetransmissionQueueLength []ygot.Annotation                         `path:"@retransmission-queue-length" ygotAnnotation:"true"`
	StateChanges               *uint32                                   `path:"state-changes" module:"openconfig-network-instance"`
	ΛStateChanges              []ygot.Annotation                         `path:"@state-changes" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) IsYANGGoStruct() {
}

// GetAdjacencyState retrieves the value of the leaf AdjacencyState from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdjacencyState is set, it can
// safely use t.GetAdjacencyState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdjacencyState == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetAdjacencyState() E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE {
	if t == nil || t.AdjacencyState == 0 {
		return 0
	}
	return t.AdjacencyState
}

// GetBackupDesignatedRouter retrieves the value of the leaf BackupDesignatedRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BackupDesignatedRouter is set, it can
// safely use t.GetBackupDesignatedRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BackupDesignatedRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetBackupDesignatedRouter() string {
	if t == nil || t.BackupDesignatedRouter == nil {
		return ""
	}
	return *t.BackupDesignatedRouter
}

// GetDeadTime retrieves the value of the leaf DeadTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadTime is set, it can
// safely use t.GetDeadTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetDeadTime() uint64 {
	if t == nil || t.DeadTime == nil {
		return 0
	}
	return *t.DeadTime
}

// GetDesignatedRouter retrieves the value of the leaf DesignatedRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DesignatedRouter is set, it can
// safely use t.GetDesignatedRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DesignatedRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetDesignatedRouter() string {
	if t == nil || t.DesignatedRouter == nil {
		return ""
	}
	return *t.DesignatedRouter
}

// GetLastEstablishedTime retrieves the value of the leaf LastEstablishedTime from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastEstablishedTime is set, it can
// safely use t.GetLastEstablishedTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastEstablishedTime == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetLastEstablishedTime() uint64 {
	if t == nil || t.LastEstablishedTime == nil {
		return 0
	}
	return *t.LastEstablishedTime
}

// GetOptionalCapabilities retrieves the value of the leaf OptionalCapabilities from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OptionalCapabilities is set, it can
// safely use t.GetOptionalCapabilities() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OptionalCapabilities == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetOptionalCapabilities() string {
	if t == nil || t.OptionalCapabilities == nil {
		return ""
	}
	return *t.OptionalCapabilities
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetRemoteRouterId retrieves the value of the leaf RemoteRouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemoteRouterId is set, it can
// safely use t.GetRemoteRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemoteRouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetRemoteRouterId() string {
	if t == nil || t.RemoteRouterId == nil {
		return ""
	}
	return *t.RemoteRouterId
}

// GetRetransmissionQueueLength retrieves the value of the leaf RetransmissionQueueLength from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetransmissionQueueLength is set, it can
// safely use t.GetRetransmissionQueueLength() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetransmissionQueueLength == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetRetransmissionQueueLength() uint32 {
	if t == nil || t.RetransmissionQueueLength == nil {
		return 0
	}
	return *t.RetransmissionQueueLength
}

// GetStateChanges retrieves the value of the leaf StateChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StateChanges is set, it can
// safely use t.GetStateChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StateChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) GetStateChanges() uint32 {
	if t == nil || t.StateChanges == nil {
		return 0
	}
	return *t.StateChanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_VirtualLinks_VirtualLink_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global struct {
	ΛMetadata                     []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	Config                        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config                       `path:"config" module:"openconfig-network-instance"`
	ΛConfig                       []ygot.Annotation                                                                                                         `path:"@config" ygotAnnotation:"true"`
	GracefulRestart               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart              `path:"graceful-restart" module:"openconfig-network-instance"`
	ΛGracefulRestart              []ygot.Annotation                                                                                                         `path:"@graceful-restart" ygotAnnotation:"true"`
	InterAreaPropagationPolicies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies `path:"inter-area-propagation-policies" module:"openconfig-network-instance"`
	ΛInterAreaPropagationPolicies []ygot.Annotation                                                                                                         `path:"@inter-area-propagation-policies" ygotAnnotation:"true"`
	Mpls                          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls                         `path:"mpls" module:"openconfig-network-instance"`
	ΛMpls                         []ygot.Annotation                                                                                                         `path:"@mpls" ygotAnnotation:"true"`
	State                         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State                        `path:"state" module:"openconfig-network-instance"`
	ΛState                        []ygot.Annotation                                                                                                         `path:"@state" ygotAnnotation:"true"`
	Timers                        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers                       `path:"timers" module:"openconfig-network-instance"`
	ΛTimers                       []ygot.Annotation                                                                                                         `path:"@timers" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config{}
	return t.Config
}

// GetOrCreateGracefulRestart retrieves the value of the GracefulRestart field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetOrCreateGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart {
	if t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	t.GracefulRestart = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart{}
	return t.GracefulRestart
}

// GetOrCreateInterAreaPropagationPolicies retrieves the value of the InterAreaPropagationPolicies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetOrCreateInterAreaPropagationPolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies {
	if t.InterAreaPropagationPolicies != nil {
		return t.InterAreaPropagationPolicies
	}
	t.InterAreaPropagationPolicies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies{}
	return t.InterAreaPropagationPolicies
}

// GetOrCreateMpls retrieves the value of the Mpls field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetOrCreateMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls {
	if t.Mpls != nil {
		return t.Mpls
	}
	t.Mpls = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls{}
	return t.Mpls
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers{}
	return t.Timers
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetGracefulRestart returns the value of the GracefulRestart struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global. If the receiver or the field GracefulRestart is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetGracefulRestart() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart {
	if t != nil && t.GracefulRestart != nil {
		return t.GracefulRestart
	}
	return nil
}

// GetInterAreaPropagationPolicies returns the value of the InterAreaPropagationPolicies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global. If the receiver or the field InterAreaPropagationPolicies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetInterAreaPropagationPolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies {
	if t != nil && t.InterAreaPropagationPolicies != nil {
		return t.InterAreaPropagationPolicies
	}
	return nil
}

// GetMpls returns the value of the Mpls struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global. If the receiver or the field Mpls is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetMpls() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls {
	if t != nil && t.Mpls != nil {
		return t.Mpls
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.GracefulRestart.PopulateDefaults()
	t.InterAreaPropagationPolicies.PopulateDefaults()
	t.Mpls.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config struct {
	ΛMetadata                []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	HideTransitOnlyNetworks  *bool                                                                                                                     `path:"hide-transit-only-networks" module:"openconfig-network-instance"`
	ΛHideTransitOnlyNetworks []ygot.Annotation                                                                                                         `path:"@hide-transit-only-networks" ygotAnnotation:"true"`
	IgpShortcuts             *bool                                                                                                                     `path:"igp-shortcuts" module:"openconfig-network-instance"`
	ΛIgpShortcuts            []ygot.Annotation                                                                                                         `path:"@igp-shortcuts" ygotAnnotation:"true"`
	LogAdjacencyChanges      *bool                                                                                                                     `path:"log-adjacency-changes" module:"openconfig-network-instance"`
	ΛLogAdjacencyChanges     []ygot.Annotation                                                                                                         `path:"@log-adjacency-changes" ygotAnnotation:"true"`
	RouterId                 *string                                                                                                                   `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId                []ygot.Annotation                                                                                                         `path:"@router-id" ygotAnnotation:"true"`
	SummaryRouteCostMode     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode `path:"summary-route-cost-mode" module:"openconfig-network-instance"`
	ΛSummaryRouteCostMode    []ygot.Annotation                                                                                                         `path:"@summary-route-cost-mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) IsYANGGoStruct() {
}

// GetHideTransitOnlyNetworks retrieves the value of the leaf HideTransitOnlyNetworks from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HideTransitOnlyNetworks is set, it can
// safely use t.GetHideTransitOnlyNetworks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HideTransitOnlyNetworks == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) GetHideTransitOnlyNetworks() bool {
	if t == nil || t.HideTransitOnlyNetworks == nil {
		return false
	}
	return *t.HideTransitOnlyNetworks
}

// GetIgpShortcuts retrieves the value of the leaf IgpShortcuts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgpShortcuts is set, it can
// safely use t.GetIgpShortcuts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgpShortcuts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) GetIgpShortcuts() bool {
	if t == nil || t.IgpShortcuts == nil {
		return false
	}
	return *t.IgpShortcuts
}

// GetLogAdjacencyChanges retrieves the value of the leaf LogAdjacencyChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogAdjacencyChanges is set, it can
// safely use t.GetLogAdjacencyChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogAdjacencyChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) GetLogAdjacencyChanges() bool {
	if t == nil || t.LogAdjacencyChanges == nil {
		return false
	}
	return *t.LogAdjacencyChanges
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetSummaryRouteCostMode retrieves the value of the leaf SummaryRouteCostMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SummaryRouteCostMode is set, it can
// safely use t.GetSummaryRouteCostMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SummaryRouteCostMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) GetSummaryRouteCostMode() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode {
	if t == nil || t.SummaryRouteCostMode == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC2328_COMPATIBLE
	}
	return t.SummaryRouteCostMode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SummaryRouteCostMode == 0 {
		t.SummaryRouteCostMode = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC2328_COMPATIBLE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/graceful-restart YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/graceful-restart/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled     *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled    []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly  *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/graceful-restart/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled     *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled    []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	HelperOnly  *bool             `path:"helper-only" module:"openconfig-network-instance"`
	ΛHelperOnly []ygot.Annotation `path:"@helper-only" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelperOnly retrieves the value of the leaf HelperOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelperOnly is set, it can
// safely use t.GetHelperOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelperOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) GetHelperOnly() bool {
	if t == nil || t.HelperOnly == nil {
		return false
	}
	return *t.HelperOnly
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_GracefulRestart_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/inter-area-propagation-policies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies struct {
	ΛMetadata                   []ygot.Annotation                                                                                                                                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	InterAreaPropagationPolicy  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy `path:"inter-area-propagation-policy" module:"openconfig-network-instance"`
	ΛInterAreaPropagationPolicy []ygot.Annotation                                                                                                                                                                                                                                                                                                `path:"@inter-area-propagation-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key represents the key for list InterAreaPropagationPolicy of element /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/inter-area-propagation-policies.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key struct {
	SrcArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"src-area"`
	DstArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"dst-area"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"src-area": t.SrcArea,
		"dst-area": t.DstArea,
	}, nil
}

// NewInterAreaPropagationPolicy creates a new entry in the InterAreaPropagationPolicy list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) NewInterAreaPropagationPolicy(SrcArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, DstArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InterAreaPropagationPolicy == nil {
		t.InterAreaPropagationPolicy = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key{
		SrcArea: SrcArea,
		DstArea: DstArea,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.InterAreaPropagationPolicy[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list InterAreaPropagationPolicy", key)
	}

	t.InterAreaPropagationPolicy[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy{
		SrcArea: SrcArea,
		DstArea: DstArea,
	}

	return t.InterAreaPropagationPolicy[key], nil
}

// RenameInterAreaPropagationPolicy renames an entry in the list InterAreaPropagationPolicy within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) RenameInterAreaPropagationPolicy(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key) error {
	if _, ok := t.InterAreaPropagationPolicy[newK]; ok {
		return fmt.Errorf("key %v already exists in InterAreaPropagationPolicy", newK)
	}

	e, ok := t.InterAreaPropagationPolicy[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in InterAreaPropagationPolicy", oldK)
	}
	e.SrcArea = newK.SrcArea
	e.DstArea = newK.DstArea

	t.InterAreaPropagationPolicy[newK] = e
	delete(t.InterAreaPropagationPolicy, oldK)
	return nil
}

// GetOrCreateInterAreaPropagationPolicyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) GetOrCreateInterAreaPropagationPolicyMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy {
	if t.InterAreaPropagationPolicy == nil {
		t.InterAreaPropagationPolicy = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy)
	}
	return t.InterAreaPropagationPolicy
}

// GetOrCreateInterAreaPropagationPolicy retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) GetOrCreateInterAreaPropagationPolicy(SrcArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, DstArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key{
		SrcArea: SrcArea,
		DstArea: DstArea,
	}

	if v, ok := t.InterAreaPropagationPolicy[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterAreaPropagationPolicy(SrcArea, DstArea)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterAreaPropagationPolicy got unexpected error: %v", err))
	}
	return v
}

// GetInterAreaPropagationPolicy retrieves the value with the specified key from
// the InterAreaPropagationPolicy map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) GetInterAreaPropagationPolicy(SrcArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, DstArea OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key{
		SrcArea: SrcArea,
		DstArea: DstArea,
	}

	if lm, ok := t.InterAreaPropagationPolicy[key]; ok {
		return lm
	}
	return nil
}

// AppendInterAreaPropagationPolicy appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy struct to the
// list InterAreaPropagationPolicy of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) AppendInterAreaPropagationPolicy(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) error {
	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key{
		SrcArea: v.SrcArea,
		DstArea: v.DstArea,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InterAreaPropagationPolicy == nil {
		t.InterAreaPropagationPolicy = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy)
	}

	if _, ok := t.InterAreaPropagationPolicy[key]; ok {
		return fmt.Errorf("duplicate key for list InterAreaPropagationPolicy %v", key)
	}

	t.InterAreaPropagationPolicy[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.InterAreaPropagationPolicy {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/inter-area-propagation-policies/inter-area-propagation-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy struct {
	ΛMetadata []ygot.Annotation                                                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                           `path:"@config" ygotAnnotation:"true"`
	DstArea   OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union                                     `path:"dst-area" module:"openconfig-network-instance"`
	ΛDstArea  []ygot.Annotation                                                                                                                                           `path:"@dst-area" ygotAnnotation:"true"`
	SrcArea   OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union                                     `path:"src-area" module:"openconfig-network-instance"`
	ΛSrcArea  []ygot.Annotation                                                                                                                                           `path:"@src-area" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetDstArea retrieves the value of the leaf DstArea from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DstArea is set, it can
// safely use t.GetDstArea() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DstArea == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) GetDstArea() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.DstArea == nil {
		return nil
	}
	return t.DstArea
}

// GetSrcArea retrieves the value of the leaf SrcArea from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrcArea is set, it can
// safely use t.GetSrcArea() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrcArea == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) GetSrcArea() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.SrcArea == nil {
		return nil
	}
	return t.SrcArea
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"dst-area": t.DstArea,
		"src-area": t.SrcArea,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/inter-area-propagation-policies/inter-area-propagation-policy/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config struct {
	ΛMetadata            []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType                                                                             `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                                                                                                       `path:"@default-import-policy" ygotAnnotation:"true"`
	DstArea              OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"dst-area" module:"openconfig-network-instance"`
	ΛDstArea             []ygot.Annotation                                                                                                       `path:"@dst-area" ygotAnnotation:"true"`
	ImportPolicy         []string                                                                                                                `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                                                                                                       `path:"@import-policy" ygotAnnotation:"true"`
	SrcArea              OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"src-area" module:"openconfig-network-instance"`
	ΛSrcArea             []ygot.Annotation                                                                                                       `path:"@src-area" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) IsYANGGoStruct() {
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetDstArea retrieves the value of the leaf DstArea from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DstArea is set, it can
// safely use t.GetDstArea() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DstArea == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) GetDstArea() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.DstArea == nil {
		return nil
	}
	return t.DstArea
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// GetSrcArea retrieves the value of the leaf SrcArea from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrcArea is set, it can
// safely use t.GetSrcArea() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrcArea == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) GetSrcArea() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.SrcArea == nil {
		return nil
	}
	return t.SrcArea
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/inter-area-propagation-policies/inter-area-propagation-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State struct {
	ΛMetadata            []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	DefaultImportPolicy  E_OpenconfigRoutingPolicy_DefaultPolicyType                                                                             `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy []ygot.Annotation                                                                                                       `path:"@default-import-policy" ygotAnnotation:"true"`
	DstArea              OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"dst-area" module:"openconfig-network-instance"`
	ΛDstArea             []ygot.Annotation                                                                                                       `path:"@dst-area" ygotAnnotation:"true"`
	ImportPolicy         []string                                                                                                                `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy        []ygot.Annotation                                                                                                       `path:"@import-policy" ygotAnnotation:"true"`
	SrcArea              OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union `path:"src-area" module:"openconfig-network-instance"`
	ΛSrcArea             []ygot.Annotation                                                                                                       `path:"@src-area" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) IsYANGGoStruct() {
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetDstArea retrieves the value of the leaf DstArea from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DstArea is set, it can
// safely use t.GetDstArea() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DstArea == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) GetDstArea() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.DstArea == nil {
		return nil
	}
	return t.DstArea
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// GetSrcArea retrieves the value of the leaf SrcArea from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrcArea is set, it can
// safely use t.GetSrcArea() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrcArea == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) GetSrcArea() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union {
	if t == nil || t.SrcArea == nil {
		return nil
	}
	return t.SrcArea
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_InterAreaPropagationPolicies_InterAreaPropagationPolicy_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Config_Identifier_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/mpls YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls struct {
	ΛMetadata   []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config     `path:"config" module:"openconfig-network-instance"`
	ΛConfig     []ygot.Annotation                                                                                            `path:"@config" ygotAnnotation:"true"`
	IgpLdpSync  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync `path:"igp-ldp-sync" module:"openconfig-network-instance"`
	ΛIgpLdpSync []ygot.Annotation                                                                                            `path:"@igp-ldp-sync" ygotAnnotation:"true"`
	State       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State      `path:"state" module:"openconfig-network-instance"`
	ΛState      []ygot.Annotation                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config{}
	return t.Config
}

// GetOrCreateIgpLdpSync retrieves the value of the IgpLdpSync field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) GetOrCreateIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync {
	if t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	t.IgpLdpSync = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync{}
	return t.IgpLdpSync
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetIgpLdpSync returns the value of the IgpLdpSync struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls. If the receiver or the field IgpLdpSync is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) GetIgpLdpSync() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync {
	if t != nil && t.IgpLdpSync != nil {
		return t.IgpLdpSync
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.IgpLdpSync.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/mpls/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TrafficEngineeringExtensions  *bool             `path:"traffic-engineering-extensions" module:"openconfig-network-instance"`
	ΛTrafficEngineeringExtensions []ygot.Annotation `path:"@traffic-engineering-extensions" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config) IsYANGGoStruct() {
}

// GetTrafficEngineeringExtensions retrieves the value of the leaf TrafficEngineeringExtensions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficEngineeringExtensions is set, it can
// safely use t.GetTrafficEngineeringExtensions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficEngineeringExtensions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config) GetTrafficEngineeringExtensions() bool {
	if t == nil || t.TrafficEngineeringExtensions == nil {
		return false
	}
	return *t.TrafficEngineeringExtensions
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/mpls/igp-ldp-sync YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync struct {
	ΛMetadata []ygot.Annotation                                                                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/mpls/igp-ldp-sync/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint32           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) GetPostSessionUpDelay() uint32 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/mpls/igp-ldp-sync/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled             *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled            []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	PostSessionUpDelay  *uint32           `path:"post-session-up-delay" module:"openconfig-network-instance"`
	ΛPostSessionUpDelay []ygot.Annotation `path:"@post-session-up-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetPostSessionUpDelay retrieves the value of the leaf PostSessionUpDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PostSessionUpDelay is set, it can
// safely use t.GetPostSessionUpDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PostSessionUpDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) GetPostSessionUpDelay() uint32 {
	if t == nil || t.PostSessionUpDelay == nil {
		return 0
	}
	return *t.PostSessionUpDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_IgpLdpSync_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/mpls/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State struct {
	ΛMetadata                     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TrafficEngineeringExtensions  *bool             `path:"traffic-engineering-extensions" module:"openconfig-network-instance"`
	ΛTrafficEngineeringExtensions []ygot.Annotation `path:"@traffic-engineering-extensions" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State) IsYANGGoStruct() {
}

// GetTrafficEngineeringExtensions retrieves the value of the leaf TrafficEngineeringExtensions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TrafficEngineeringExtensions is set, it can
// safely use t.GetTrafficEngineeringExtensions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TrafficEngineeringExtensions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State) GetTrafficEngineeringExtensions() bool {
	if t == nil || t.TrafficEngineeringExtensions == nil {
		return false
	}
	return *t.TrafficEngineeringExtensions
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Mpls_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State struct {
	ΛMetadata                []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	HideTransitOnlyNetworks  *bool                                                                                                                     `path:"hide-transit-only-networks" module:"openconfig-network-instance"`
	ΛHideTransitOnlyNetworks []ygot.Annotation                                                                                                         `path:"@hide-transit-only-networks" ygotAnnotation:"true"`
	IgpShortcuts             *bool                                                                                                                     `path:"igp-shortcuts" module:"openconfig-network-instance"`
	ΛIgpShortcuts            []ygot.Annotation                                                                                                         `path:"@igp-shortcuts" ygotAnnotation:"true"`
	LogAdjacencyChanges      *bool                                                                                                                     `path:"log-adjacency-changes" module:"openconfig-network-instance"`
	ΛLogAdjacencyChanges     []ygot.Annotation                                                                                                         `path:"@log-adjacency-changes" ygotAnnotation:"true"`
	RouterId                 *string                                                                                                                   `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId                []ygot.Annotation                                                                                                         `path:"@router-id" ygotAnnotation:"true"`
	SummaryRouteCostMode     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode `path:"summary-route-cost-mode" module:"openconfig-network-instance"`
	ΛSummaryRouteCostMode    []ygot.Annotation                                                                                                         `path:"@summary-route-cost-mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) IsYANGGoStruct() {
}

// GetHideTransitOnlyNetworks retrieves the value of the leaf HideTransitOnlyNetworks from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HideTransitOnlyNetworks is set, it can
// safely use t.GetHideTransitOnlyNetworks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HideTransitOnlyNetworks == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) GetHideTransitOnlyNetworks() bool {
	if t == nil || t.HideTransitOnlyNetworks == nil {
		return false
	}
	return *t.HideTransitOnlyNetworks
}

// GetIgpShortcuts retrieves the value of the leaf IgpShortcuts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IgpShortcuts is set, it can
// safely use t.GetIgpShortcuts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IgpShortcuts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) GetIgpShortcuts() bool {
	if t == nil || t.IgpShortcuts == nil {
		return false
	}
	return *t.IgpShortcuts
}

// GetLogAdjacencyChanges retrieves the value of the leaf LogAdjacencyChanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogAdjacencyChanges is set, it can
// safely use t.GetLogAdjacencyChanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogAdjacencyChanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) GetLogAdjacencyChanges() bool {
	if t == nil || t.LogAdjacencyChanges == nil {
		return false
	}
	return *t.LogAdjacencyChanges
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetSummaryRouteCostMode retrieves the value of the leaf SummaryRouteCostMode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SummaryRouteCostMode is set, it can
// safely use t.GetSummaryRouteCostMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SummaryRouteCostMode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) GetSummaryRouteCostMode() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode {
	if t == nil || t.SummaryRouteCostMode == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC2328_COMPATIBLE
	}
	return t.SummaryRouteCostMode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.SummaryRouteCostMode == 0 {
		t.SummaryRouteCostMode = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC2328_COMPATIBLE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers struct {
	ΛMetadata      []ygot.Annotation                                                                                                 `path:"@" ygotAnnotation:"true"`
	LsaGeneration  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration `path:"lsa-generation" module:"openconfig-network-instance"`
	ΛLsaGeneration []ygot.Annotation                                                                                                 `path:"@lsa-generation" ygotAnnotation:"true"`
	MaxMetric      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric     `path:"max-metric" module:"openconfig-network-instance"`
	ΛMaxMetric     []ygot.Annotation                                                                                                 `path:"@max-metric" ygotAnnotation:"true"`
	Spf            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf           `path:"spf" module:"openconfig-network-instance"`
	ΛSpf           []ygot.Annotation                                                                                                 `path:"@spf" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) IsYANGGoStruct() {
}

// GetOrCreateLsaGeneration retrieves the value of the LsaGeneration field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) GetOrCreateLsaGeneration() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration {
	if t.LsaGeneration != nil {
		return t.LsaGeneration
	}
	t.LsaGeneration = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration{}
	return t.LsaGeneration
}

// GetOrCreateMaxMetric retrieves the value of the MaxMetric field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) GetOrCreateMaxMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric {
	if t.MaxMetric != nil {
		return t.MaxMetric
	}
	t.MaxMetric = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric{}
	return t.MaxMetric
}

// GetOrCreateSpf retrieves the value of the Spf field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) GetOrCreateSpf() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf {
	if t.Spf != nil {
		return t.Spf
	}
	t.Spf = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf{}
	return t.Spf
}

// GetLsaGeneration returns the value of the LsaGeneration struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers. If the receiver or the field LsaGeneration is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) GetLsaGeneration() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration {
	if t != nil && t.LsaGeneration != nil {
		return t.LsaGeneration
	}
	return nil
}

// GetMaxMetric returns the value of the MaxMetric struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers. If the receiver or the field MaxMetric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) GetMaxMetric() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric {
	if t != nil && t.MaxMetric != nil {
		return t.MaxMetric
	}
	return nil
}

// GetSpf returns the value of the Spf struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers. If the receiver or the field Spf is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) GetSpf() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf {
	if t != nil && t.Spf != nil {
		return t.Spf
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.LsaGeneration.PopulateDefaults()
	t.MaxMetric.PopulateDefaults()
	t.Spf.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/lsa-generation YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/lsa-generation/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InitialDelay  *uint32           `path:"initial-delay" module:"openconfig-network-instance"`
	ΛInitialDelay []ygot.Annotation `path:"@initial-delay" ygotAnnotation:"true"`
	MaximumDelay  *uint32           `path:"maximum-delay" module:"openconfig-network-instance"`
	ΛMaximumDelay []ygot.Annotation `path:"@maximum-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) IsYANGGoStruct() {
}

// GetInitialDelay retrieves the value of the leaf InitialDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InitialDelay is set, it can
// safely use t.GetInitialDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InitialDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) GetInitialDelay() uint32 {
	if t == nil || t.InitialDelay == nil {
		return 0
	}
	return *t.InitialDelay
}

// GetMaximumDelay retrieves the value of the leaf MaximumDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumDelay is set, it can
// safely use t.GetMaximumDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) GetMaximumDelay() uint32 {
	if t == nil || t.MaximumDelay == nil {
		return 0
	}
	return *t.MaximumDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/lsa-generation/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State struct {
	ΛMetadata     []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	InitialDelay  *uint32                                                                                                                            `path:"initial-delay" module:"openconfig-network-instance"`
	ΛInitialDelay []ygot.Annotation                                                                                                                  `path:"@initial-delay" ygotAnnotation:"true"`
	MaximumDelay  *uint32                                                                                                                            `path:"maximum-delay" module:"openconfig-network-instance"`
	ΛMaximumDelay []ygot.Annotation                                                                                                                  `path:"@maximum-delay" ygotAnnotation:"true"`
	TimerType     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType `path:"timer-type" module:"openconfig-network-instance"`
	ΛTimerType    []ygot.Annotation                                                                                                                  `path:"@timer-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) IsYANGGoStruct() {
}

// GetInitialDelay retrieves the value of the leaf InitialDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InitialDelay is set, it can
// safely use t.GetInitialDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InitialDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) GetInitialDelay() uint32 {
	if t == nil || t.InitialDelay == nil {
		return 0
	}
	return *t.InitialDelay
}

// GetMaximumDelay retrieves the value of the leaf MaximumDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumDelay is set, it can
// safely use t.GetMaximumDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) GetMaximumDelay() uint32 {
	if t == nil || t.MaximumDelay == nil {
		return 0
	}
	return *t.MaximumDelay
}

// GetTimerType retrieves the value of the leaf TimerType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TimerType is set, it can
// safely use t.GetTimerType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TimerType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) GetTimerType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType {
	if t == nil || t.TimerType == 0 {
		return 0
	}
	return t.TimerType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/max-metric YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/max-metric/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Include   []E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE `path:"include" module:"openconfig-network-instance"`
	ΛInclude  []ygot.Annotation                          `path:"@include" ygotAnnotation:"true"`
	Set       *bool                                      `path:"set" module:"openconfig-network-instance"`
	ΛSet      []ygot.Annotation                          `path:"@set" ygotAnnotation:"true"`
	Timeout   *uint64                                    `path:"timeout" module:"openconfig-network-instance"`
	ΛTimeout  []ygot.Annotation                          `path:"@timeout" ygotAnnotation:"true"`
	Trigger   []E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER `path:"trigger" module:"openconfig-network-instance"`
	ΛTrigger  []ygot.Annotation                          `path:"@trigger" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) IsYANGGoStruct() {
}

// GetInclude retrieves the value of the leaf Include from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Include is set, it can
// safely use t.GetInclude() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Include == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) GetInclude() []E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE {
	if t == nil || t.Include == nil {
		return nil
	}
	return t.Include
}

// GetSet retrieves the value of the leaf Set from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Set is set, it can
// safely use t.GetSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Set == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) GetSet() bool {
	if t == nil || t.Set == nil {
		return false
	}
	return *t.Set
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) GetTimeout() uint64 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// GetTrigger retrieves the value of the leaf Trigger from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Trigger is set, it can
// safely use t.GetTrigger() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Trigger == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) GetTrigger() []E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER {
	if t == nil || t.Trigger == nil {
		return nil
	}
	return t.Trigger
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/max-metric/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Include   []E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE `path:"include" module:"openconfig-network-instance"`
	ΛInclude  []ygot.Annotation                          `path:"@include" ygotAnnotation:"true"`
	Set       *bool                                      `path:"set" module:"openconfig-network-instance"`
	ΛSet      []ygot.Annotation                          `path:"@set" ygotAnnotation:"true"`
	Timeout   *uint64                                    `path:"timeout" module:"openconfig-network-instance"`
	ΛTimeout  []ygot.Annotation                          `path:"@timeout" ygotAnnotation:"true"`
	Trigger   []E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER `path:"trigger" module:"openconfig-network-instance"`
	ΛTrigger  []ygot.Annotation                          `path:"@trigger" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) IsYANGGoStruct() {
}

// GetInclude retrieves the value of the leaf Include from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Include is set, it can
// safely use t.GetInclude() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Include == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) GetInclude() []E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE {
	if t == nil || t.Include == nil {
		return nil
	}
	return t.Include
}

// GetSet retrieves the value of the leaf Set from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Set is set, it can
// safely use t.GetSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Set == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) GetSet() bool {
	if t == nil || t.Set == nil {
		return false
	}
	return *t.Set
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) GetTimeout() uint64 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// GetTrigger retrieves the value of the leaf Trigger from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Trigger is set, it can
// safely use t.GetTrigger() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Trigger == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) GetTrigger() []E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER {
	if t == nil || t.Trigger == nil {
		return nil
	}
	return t.Trigger
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_MaxMetric_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/spf YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf struct {
	ΛMetadata []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/spf/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InitialDelay  *uint32           `path:"initial-delay" module:"openconfig-network-instance"`
	ΛInitialDelay []ygot.Annotation `path:"@initial-delay" ygotAnnotation:"true"`
	MaximumDelay  *uint32           `path:"maximum-delay" module:"openconfig-network-instance"`
	ΛMaximumDelay []ygot.Annotation `path:"@maximum-delay" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) IsYANGGoStruct() {
}

// GetInitialDelay retrieves the value of the leaf InitialDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InitialDelay is set, it can
// safely use t.GetInitialDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InitialDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) GetInitialDelay() uint32 {
	if t == nil || t.InitialDelay == nil {
		return 0
	}
	return *t.InitialDelay
}

// GetMaximumDelay retrieves the value of the leaf MaximumDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumDelay is set, it can
// safely use t.GetMaximumDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) GetMaximumDelay() uint32 {
	if t == nil || t.MaximumDelay == nil {
		return 0
	}
	return *t.MaximumDelay
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/spf/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State struct {
	ΛMetadata     []ygot.Annotation                                                                                                                  `path:"@" ygotAnnotation:"true"`
	InitialDelay  *uint32                                                                                                                            `path:"initial-delay" module:"openconfig-network-instance"`
	ΛInitialDelay []ygot.Annotation                                                                                                                  `path:"@initial-delay" ygotAnnotation:"true"`
	MaximumDelay  *uint32                                                                                                                            `path:"maximum-delay" module:"openconfig-network-instance"`
	ΛMaximumDelay []ygot.Annotation                                                                                                                  `path:"@maximum-delay" ygotAnnotation:"true"`
	TimerType     E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType `path:"timer-type" module:"openconfig-network-instance"`
	ΛTimerType    []ygot.Annotation                                                                                                                  `path:"@timer-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) IsYANGGoStruct() {
}

// GetInitialDelay retrieves the value of the leaf InitialDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InitialDelay is set, it can
// safely use t.GetInitialDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InitialDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) GetInitialDelay() uint32 {
	if t == nil || t.InitialDelay == nil {
		return 0
	}
	return *t.InitialDelay
}

// GetMaximumDelay retrieves the value of the leaf MaximumDelay from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumDelay is set, it can
// safely use t.GetMaximumDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) GetMaximumDelay() uint32 {
	if t == nil || t.MaximumDelay == nil {
		return 0
	}
	return *t.MaximumDelay
}

// GetTimerType retrieves the value of the leaf TimerType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TimerType is set, it can
// safely use t.GetTimerType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TimerType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) GetTimerType() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType {
	if t == nil || t.TimerType == 0 {
		return 0
	}
	return t.TimerType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_Spf_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep struct {
	ΛMetadata               []ygot.Annotation                                                                                          `path:"@" ygotAnnotation:"true"`
	PathComputationServers  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers `path:"path-computation-servers" module:"openconfig-network-instance"`
	ΛPathComputationServers []ygot.Annotation                                                                                          `path:"@path-computation-servers" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) IsYANGGoStruct() {
}

// GetOrCreatePathComputationServers retrieves the value of the PathComputationServers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) GetOrCreatePathComputationServers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers {
	if t.PathComputationServers != nil {
		return t.PathComputationServers
	}
	t.PathComputationServers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers{}
	return t.PathComputationServers
}

// GetPathComputationServers returns the value of the PathComputationServers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep. If the receiver or the field PathComputationServers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) GetPathComputationServers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers {
	if t != nil && t.PathComputationServers != nil {
		return t.PathComputationServers
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.PathComputationServers.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers struct {
	ΛMetadata              []ygot.Annotation                                                                                                                           `path:"@" ygotAnnotation:"true"`
	PathComputationServer  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer `path:"path-computation-server" module:"openconfig-network-instance"`
	ΛPathComputationServer []ygot.Annotation                                                                                                                           `path:"@path-computation-server" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) IsYANGGoStruct() {
}

// NewPathComputationServer creates a new entry in the PathComputationServer list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) NewPathComputationServer(PceServerAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathComputationServer == nil {
		t.PathComputationServer = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer)
	}

	key := PceServerAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PathComputationServer[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PathComputationServer", key)
	}

	t.PathComputationServer[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer{
		PceServerAddress: &PceServerAddress,
	}

	return t.PathComputationServer[key], nil
}

// RenamePathComputationServer renames an entry in the list PathComputationServer within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) RenamePathComputationServer(oldK, newK string) error {
	if _, ok := t.PathComputationServer[newK]; ok {
		return fmt.Errorf("key %v already exists in PathComputationServer", newK)
	}

	e, ok := t.PathComputationServer[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PathComputationServer", oldK)
	}
	e.PceServerAddress = &newK

	t.PathComputationServer[newK] = e
	delete(t.PathComputationServer, oldK)
	return nil
}

// GetOrCreatePathComputationServerMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) GetOrCreatePathComputationServerMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer {
	if t.PathComputationServer == nil {
		t.PathComputationServer = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer)
	}
	return t.PathComputationServer
}

// GetOrCreatePathComputationServer retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) GetOrCreatePathComputationServer(PceServerAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer {

	key := PceServerAddress

	if v, ok := t.PathComputationServer[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPathComputationServer(PceServerAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePathComputationServer got unexpected error: %v", err))
	}
	return v
}

// GetPathComputationServer retrieves the value with the specified key from
// the PathComputationServer map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) GetPathComputationServer(PceServerAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer {

	if t == nil {
		return nil
	}

	key := PceServerAddress

	if lm, ok := t.PathComputationServer[key]; ok {
		return lm
	}
	return nil
}

// AppendPathComputationServer appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer struct to the
// list PathComputationServer of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) AppendPathComputationServer(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) error {
	if v.PceServerAddress == nil {
		return fmt.Errorf("invalid nil key received for PceServerAddress")
	}

	key := *v.PceServerAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathComputationServer == nil {
		t.PathComputationServer = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer)
	}

	if _, ok := t.PathComputationServer[key]; ok {
		return fmt.Errorf("duplicate key for list PathComputationServer %v", key)
	}

	t.PathComputationServer[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PathComputationServer {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer struct {
	ΛMetadata         []ygot.Annotation                                                                                                                               `path:"@" ygotAnnotation:"true"`
	Authentication    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication `path:"authentication" module:"openconfig-network-instance"`
	ΛAuthentication   []ygot.Annotation                                                                                                                               `path:"@authentication" ygotAnnotation:"true"`
	Config            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config         `path:"config" module:"openconfig-network-instance"`
	ΛConfig           []ygot.Annotation                                                                                                                               `path:"@config" ygotAnnotation:"true"`
	PceServerAddress  *string                                                                                                                                         `path:"pce-server-address" module:"openconfig-network-instance"`
	ΛPceServerAddress []ygot.Annotation                                                                                                                               `path:"@pce-server-address" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State          `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                                                               `path:"@state" ygotAnnotation:"true"`
	Timers            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers         `path:"timers" module:"openconfig-network-instance"`
	ΛTimers           []ygot.Annotation                                                                                                                               `path:"@timers" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) IsYANGGoStruct() {
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetOrCreateAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication{}
	return t.Authentication
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State{}
	return t.State
}

// GetOrCreateTimers retrieves the value of the Timers field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetOrCreateTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers {
	if t.Timers != nil {
		return t.Timers
	}
	t.Timers = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers{}
	return t.Timers
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetAuthentication() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTimers returns the value of the Timers struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer. If the receiver or the field Timers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetTimers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers {
	if t != nil && t.Timers != nil {
		return t.Timers
	}
	return nil
}

// GetPceServerAddress retrieves the value of the leaf PceServerAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PceServerAddress is set, it can
// safely use t.GetPceServerAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PceServerAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) GetPceServerAddress() string {
	if t == nil || t.PceServerAddress == nil {
		return ""
	}
	return *t.PceServerAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Authentication.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Timers.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PceServerAddress == nil {
		return nil, fmt.Errorf("nil value for key PceServerAddress")
	}

	return map[string]interface{}{
		"pce-server-address": *t.PceServerAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/authentication YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication struct {
	ΛMetadata []ygot.Annotation                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/authentication/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationKey  *string           `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey []ygot.Annotation `path:"@authentication-key" ygotAnnotation:"true"`
	Enable             *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable            []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	Keychain           *string           `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain          []ygot.Annotation `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/authentication/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthenticationKey  *string           `path:"authentication-key" module:"openconfig-network-instance"`
	ΛAuthenticationKey []ygot.Annotation `path:"@authentication-key" ygotAnnotation:"true"`
	Enable             *bool             `path:"enable" module:"openconfig-network-instance"`
	ΛEnable            []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	Keychain           *string           `path:"keychain" module:"openconfig-network-instance"`
	ΛKeychain          []ygot.Annotation `path:"@keychain" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) IsYANGGoStruct() {
}

// GetAuthenticationKey retrieves the value of the leaf AuthenticationKey from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationKey is set, it can
// safely use t.GetAuthenticationKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationKey == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) GetAuthenticationKey() string {
	if t == nil || t.AuthenticationKey == nil {
		return ""
	}
	return *t.AuthenticationKey
}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetKeychain retrieves the value of the leaf Keychain from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keychain is set, it can
// safely use t.GetKeychain() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keychain == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) GetKeychain() string {
	if t == nil || t.Keychain == nil {
		return ""
	}
	return *t.Keychain
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Authentication_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config struct {
	ΛMetadata               []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Id                      *string                      `path:"id" module:"openconfig-network-instance"`
	ΛId                     []ygot.Annotation            `path:"@id" ygotAnnotation:"true"`
	PceInitiatedCapability  *bool                        `path:"pce-initiated-capability" module:"openconfig-network-instance"`
	ΛPceInitiatedCapability []ygot.Annotation            `path:"@pce-initiated-capability" ygotAnnotation:"true"`
	PceServerAddress        *string                      `path:"pce-server-address" module:"openconfig-network-instance"`
	ΛPceServerAddress       []ygot.Annotation            `path:"@pce-server-address" ygotAnnotation:"true"`
	PceType                 E_OpenconfigPcep_PceModeType `path:"pce-type" module:"openconfig-network-instance"`
	ΛPceType                []ygot.Annotation            `path:"@pce-type" ygotAnnotation:"true"`
	Port                    *uint16                      `path:"port" module:"openconfig-network-instance"`
	ΛPort                   []ygot.Annotation            `path:"@port" ygotAnnotation:"true"`
	Preference              *uint8                       `path:"preference" module:"openconfig-network-instance"`
	ΛPreference             []ygot.Annotation            `path:"@preference" ygotAnnotation:"true"`
	ReportLocalLsp          *bool                        `path:"report-local-lsp" module:"openconfig-network-instance"`
	ΛReportLocalLsp         []ygot.Annotation            `path:"@report-local-lsp" ygotAnnotation:"true"`
	SourceAddress           *string                      `path:"source-address" module:"openconfig-network-instance"`
	ΛSourceAddress          []ygot.Annotation            `path:"@source-address" ygotAnnotation:"true"`
	SrSupport               *bool                        `path:"sr-support" module:"openconfig-network-instance"`
	ΛSrSupport              []ygot.Annotation            `path:"@sr-support" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) IsYANGGoStruct() {
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetPceInitiatedCapability retrieves the value of the leaf PceInitiatedCapability from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PceInitiatedCapability is set, it can
// safely use t.GetPceInitiatedCapability() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PceInitiatedCapability == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetPceInitiatedCapability() bool {
	if t == nil || t.PceInitiatedCapability == nil {
		return false
	}
	return *t.PceInitiatedCapability
}

// GetPceServerAddress retrieves the value of the leaf PceServerAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PceServerAddress is set, it can
// safely use t.GetPceServerAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PceServerAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetPceServerAddress() string {
	if t == nil || t.PceServerAddress == nil {
		return ""
	}
	return *t.PceServerAddress
}

// GetPceType retrieves the value of the leaf PceType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PceType is set, it can
// safely use t.GetPceType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PceType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetPceType() E_OpenconfigPcep_PceModeType {
	if t == nil || t.PceType == 0 {
		return 0
	}
	return t.PceType
}

// GetPort retrieves the value of the leaf Port from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 4189
	}
	return *t.Port
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetReportLocalLsp retrieves the value of the leaf ReportLocalLsp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReportLocalLsp is set, it can
// safely use t.GetReportLocalLsp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReportLocalLsp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetReportLocalLsp() bool {
	if t == nil || t.ReportLocalLsp == nil {
		return false
	}
	return *t.ReportLocalLsp
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSrSupport retrieves the value of the leaf SrSupport from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrSupport is set, it can
// safely use t.GetSrSupport() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrSupport == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) GetSrSupport() bool {
	if t == nil || t.SrSupport == nil {
		return false
	}
	return *t.SrSupport
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PceInitiatedCapability == nil {
		var v bool = false
		t.PceInitiatedCapability = &v
	}
	if t.Port == nil {
		var v uint16 = 4189
		t.Port = &v
	}
	if t.ReportLocalLsp == nil {
		var v bool = false
		t.ReportLocalLsp = &v
	}
	if t.SrSupport == nil {
		var v bool = false
		t.SrSupport = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State struct {
	ΛMetadata               []ygot.Annotation            `path:"@" ygotAnnotation:"true"`
	Id                      *string                      `path:"id" module:"openconfig-network-instance"`
	ΛId                     []ygot.Annotation            `path:"@id" ygotAnnotation:"true"`
	PceInitiatedCapability  *bool                        `path:"pce-initiated-capability" module:"openconfig-network-instance"`
	ΛPceInitiatedCapability []ygot.Annotation            `path:"@pce-initiated-capability" ygotAnnotation:"true"`
	PceServerAddress        *string                      `path:"pce-server-address" module:"openconfig-network-instance"`
	ΛPceServerAddress       []ygot.Annotation            `path:"@pce-server-address" ygotAnnotation:"true"`
	PceType                 E_OpenconfigPcep_PceModeType `path:"pce-type" module:"openconfig-network-instance"`
	ΛPceType                []ygot.Annotation            `path:"@pce-type" ygotAnnotation:"true"`
	Port                    *uint16                      `path:"port" module:"openconfig-network-instance"`
	ΛPort                   []ygot.Annotation            `path:"@port" ygotAnnotation:"true"`
	Preference              *uint8                       `path:"preference" module:"openconfig-network-instance"`
	ΛPreference             []ygot.Annotation            `path:"@preference" ygotAnnotation:"true"`
	ReportLocalLsp          *bool                        `path:"report-local-lsp" module:"openconfig-network-instance"`
	ΛReportLocalLsp         []ygot.Annotation            `path:"@report-local-lsp" ygotAnnotation:"true"`
	SourceAddress           *string                      `path:"source-address" module:"openconfig-network-instance"`
	ΛSourceAddress          []ygot.Annotation            `path:"@source-address" ygotAnnotation:"true"`
	SrSupport               *bool                        `path:"sr-support" module:"openconfig-network-instance"`
	ΛSrSupport              []ygot.Annotation            `path:"@sr-support" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) IsYANGGoStruct() {
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetPceInitiatedCapability retrieves the value of the leaf PceInitiatedCapability from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PceInitiatedCapability is set, it can
// safely use t.GetPceInitiatedCapability() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PceInitiatedCapability == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetPceInitiatedCapability() bool {
	if t == nil || t.PceInitiatedCapability == nil {
		return false
	}
	return *t.PceInitiatedCapability
}

// GetPceServerAddress retrieves the value of the leaf PceServerAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PceServerAddress is set, it can
// safely use t.GetPceServerAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PceServerAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetPceServerAddress() string {
	if t == nil || t.PceServerAddress == nil {
		return ""
	}
	return *t.PceServerAddress
}

// GetPceType retrieves the value of the leaf PceType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PceType is set, it can
// safely use t.GetPceType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PceType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetPceType() E_OpenconfigPcep_PceModeType {
	if t == nil || t.PceType == 0 {
		return 0
	}
	return t.PceType
}

// GetPort retrieves the value of the leaf Port from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 4189
	}
	return *t.Port
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetPreference() uint8 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetReportLocalLsp retrieves the value of the leaf ReportLocalLsp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReportLocalLsp is set, it can
// safely use t.GetReportLocalLsp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReportLocalLsp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetReportLocalLsp() bool {
	if t == nil || t.ReportLocalLsp == nil {
		return false
	}
	return *t.ReportLocalLsp
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetSrSupport retrieves the value of the leaf SrSupport from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrSupport is set, it can
// safely use t.GetSrSupport() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrSupport == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) GetSrSupport() bool {
	if t == nil || t.SrSupport == nil {
		return false
	}
	return *t.SrSupport
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PceInitiatedCapability == nil {
		var v bool = false
		t.PceInitiatedCapability = &v
	}
	if t.Port == nil {
		var v uint16 = 4189
		t.Port = &v
	}
	if t.ReportLocalLsp == nil {
		var v bool = false
		t.ReportLocalLsp = &v
	}
	if t.SrSupport == nil {
		var v bool = false
		t.SrSupport = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/timers YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers struct {
	ΛMetadata []ygot.Annotation                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/timers/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config struct {
	ΛMetadata                    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DeadTimer                    *uint8            `path:"dead-timer" module:"openconfig-network-instance"`
	ΛDeadTimer                   []ygot.Annotation `path:"@dead-timer" ygotAnnotation:"true"`
	Keepalive                    *uint8            `path:"keepalive" module:"openconfig-network-instance"`
	ΛKeepalive                   []ygot.Annotation `path:"@keepalive" ygotAnnotation:"true"`
	RedelegationTimeoutInterval  *uint16           `path:"redelegation-timeout-interval" module:"openconfig-network-instance"`
	ΛRedelegationTimeoutInterval []ygot.Annotation `path:"@redelegation-timeout-interval" ygotAnnotation:"true"`
	StateTimeoutInterval         *uint16           `path:"state-timeout-interval" module:"openconfig-network-instance"`
	ΛStateTimeoutInterval        []ygot.Annotation `path:"@state-timeout-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) IsYANGGoStruct() {
}

// GetDeadTimer retrieves the value of the leaf DeadTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadTimer is set, it can
// safely use t.GetDeadTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) GetDeadTimer() uint8 {
	if t == nil || t.DeadTimer == nil {
		return 120
	}
	return *t.DeadTimer
}

// GetKeepalive retrieves the value of the leaf Keepalive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keepalive is set, it can
// safely use t.GetKeepalive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keepalive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) GetKeepalive() uint8 {
	if t == nil || t.Keepalive == nil {
		return 30
	}
	return *t.Keepalive
}

// GetRedelegationTimeoutInterval retrieves the value of the leaf RedelegationTimeoutInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RedelegationTimeoutInterval is set, it can
// safely use t.GetRedelegationTimeoutInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RedelegationTimeoutInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) GetRedelegationTimeoutInterval() uint16 {
	if t == nil || t.RedelegationTimeoutInterval == nil {
		return 0
	}
	return *t.RedelegationTimeoutInterval
}

// GetStateTimeoutInterval retrieves the value of the leaf StateTimeoutInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StateTimeoutInterval is set, it can
// safely use t.GetStateTimeoutInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StateTimeoutInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) GetStateTimeoutInterval() uint16 {
	if t == nil || t.StateTimeoutInterval == nil {
		return 0
	}
	return *t.StateTimeoutInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DeadTimer == nil {
		var v uint8 = 120
		t.DeadTimer = &v
	}
	if t.Keepalive == nil {
		var v uint8 = 30
		t.Keepalive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/timers/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State struct {
	ΛMetadata                    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DeadTimer                    *uint8            `path:"dead-timer" module:"openconfig-network-instance"`
	ΛDeadTimer                   []ygot.Annotation `path:"@dead-timer" ygotAnnotation:"true"`
	Keepalive                    *uint8            `path:"keepalive" module:"openconfig-network-instance"`
	ΛKeepalive                   []ygot.Annotation `path:"@keepalive" ygotAnnotation:"true"`
	RedelegationTimeoutInterval  *uint16           `path:"redelegation-timeout-interval" module:"openconfig-network-instance"`
	ΛRedelegationTimeoutInterval []ygot.Annotation `path:"@redelegation-timeout-interval" ygotAnnotation:"true"`
	StateTimeoutInterval         *uint16           `path:"state-timeout-interval" module:"openconfig-network-instance"`
	ΛStateTimeoutInterval        []ygot.Annotation `path:"@state-timeout-interval" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) IsYANGGoStruct() {
}

// GetDeadTimer retrieves the value of the leaf DeadTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadTimer is set, it can
// safely use t.GetDeadTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) GetDeadTimer() uint8 {
	if t == nil || t.DeadTimer == nil {
		return 120
	}
	return *t.DeadTimer
}

// GetKeepalive retrieves the value of the leaf Keepalive from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Keepalive is set, it can
// safely use t.GetKeepalive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Keepalive == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) GetKeepalive() uint8 {
	if t == nil || t.Keepalive == nil {
		return 30
	}
	return *t.Keepalive
}

// GetRedelegationTimeoutInterval retrieves the value of the leaf RedelegationTimeoutInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RedelegationTimeoutInterval is set, it can
// safely use t.GetRedelegationTimeoutInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RedelegationTimeoutInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) GetRedelegationTimeoutInterval() uint16 {
	if t == nil || t.RedelegationTimeoutInterval == nil {
		return 0
	}
	return *t.RedelegationTimeoutInterval
}

// GetStateTimeoutInterval retrieves the value of the leaf StateTimeoutInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StateTimeoutInterval is set, it can
// safely use t.GetStateTimeoutInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StateTimeoutInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) GetStateTimeoutInterval() uint16 {
	if t == nil || t.StateTimeoutInterval == nil {
		return 0
	}
	return *t.StateTimeoutInterval
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DeadTimer == nil {
		var v uint8 = 120
		t.DeadTimer = &v
	}
	if t.Keepalive == nil {
		var v uint8 = 30
		t.Keepalive = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pcep_PathComputationServers_PathComputationServer_Timers_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim struct {
	ΛMetadata   []ygot.Annotation                                                                             `path:"@" ygotAnnotation:"true"`
	Global      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global     `path:"global" module:"openconfig-network-instance"`
	ΛGlobal     []ygot.Annotation                                                                             `path:"@global" ygotAnnotation:"true"`
	Interfaces  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces `path:"interfaces" module:"openconfig-network-instance"`
	ΛInterfaces []ygot.Annotation                                                                             `path:"@interfaces" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) IsYANGGoStruct() {
}

// GetOrCreateGlobal retrieves the value of the Global field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) GetOrCreateGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global {
	if t.Global != nil {
		return t.Global
	}
	t.Global = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global{}
	return t.Global
}

// GetOrCreateInterfaces retrieves the value of the Interfaces field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) GetOrCreateInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces {
	if t.Interfaces != nil {
		return t.Interfaces
	}
	t.Interfaces = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces{}
	return t.Interfaces
}

// GetGlobal returns the value of the Global struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim. If the receiver or the field Global is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) GetGlobal() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global {
	if t != nil && t.Global != nil {
		return t.Global
	}
	return nil
}

// GetInterfaces returns the value of the Interfaces struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim. If the receiver or the field Interfaces is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) GetInterfaces() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces {
	if t != nil && t.Interfaces != nil {
		return t.Interfaces
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Global.PopulateDefaults()
	t.Interfaces.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global struct {
	ΛMetadata         []ygot.Annotation                                                                                          `path:"@" ygotAnnotation:"true"`
	Config            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config           `path:"config" module:"openconfig-network-instance"`
	ΛConfig           []ygot.Annotation                                                                                          `path:"@config" ygotAnnotation:"true"`
	RendezvousPoints  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints `path:"rendezvous-points" module:"openconfig-network-instance"`
	ΛRendezvousPoints []ygot.Annotation                                                                                          `path:"@rendezvous-points" ygotAnnotation:"true"`
	SourcesJoined     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined    `path:"sources-joined" module:"openconfig-network-instance"`
	ΛSourcesJoined    []ygot.Annotation                                                                                          `path:"@sources-joined" ygotAnnotation:"true"`
	Ssm               *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm              `path:"ssm" module:"openconfig-network-instance"`
	ΛSsm              []ygot.Annotation                                                                                          `path:"@ssm" ygotAnnotation:"true"`
	State             *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State            `path:"state" module:"openconfig-network-instance"`
	ΛState            []ygot.Annotation                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config{}
	return t.Config
}

// GetOrCreateRendezvousPoints retrieves the value of the RendezvousPoints field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetOrCreateRendezvousPoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints {
	if t.RendezvousPoints != nil {
		return t.RendezvousPoints
	}
	t.RendezvousPoints = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints{}
	return t.RendezvousPoints
}

// GetOrCreateSourcesJoined retrieves the value of the SourcesJoined field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetOrCreateSourcesJoined() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined {
	if t.SourcesJoined != nil {
		return t.SourcesJoined
	}
	t.SourcesJoined = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined{}
	return t.SourcesJoined
}

// GetOrCreateSsm retrieves the value of the Ssm field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetOrCreateSsm() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm {
	if t.Ssm != nil {
		return t.Ssm
	}
	t.Ssm = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm{}
	return t.Ssm
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetRendezvousPoints returns the value of the RendezvousPoints struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global. If the receiver or the field RendezvousPoints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetRendezvousPoints() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints {
	if t != nil && t.RendezvousPoints != nil {
		return t.RendezvousPoints
	}
	return nil
}

// GetSourcesJoined returns the value of the SourcesJoined struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global. If the receiver or the field SourcesJoined is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetSourcesJoined() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined {
	if t != nil && t.SourcesJoined != nil {
		return t.SourcesJoined
	}
	return nil
}

// GetSsm returns the value of the Ssm struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global. If the receiver or the field Ssm is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetSsm() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm {
	if t != nil && t.Ssm != nil {
		return t.Ssm
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.RendezvousPoints.PopulateDefaults()
	t.SourcesJoined.PopulateDefaults()
	t.Ssm.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	MaximumGroups  *uint32           `path:"maximum-groups" module:"openconfig-network-instance"`
	ΛMaximumGroups []ygot.Annotation `path:"@maximum-groups" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config) IsYANGGoStruct() {
}

// GetMaximumGroups retrieves the value of the leaf MaximumGroups from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumGroups is set, it can
// safely use t.GetMaximumGroups() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumGroups == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config) GetMaximumGroups() uint32 {
	if t == nil || t.MaximumGroups == nil {
		return 0
	}
	return *t.MaximumGroups
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/rendezvous-points YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints struct {
	ΛMetadata        []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	RendezvousPoint  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint `path:"rendezvous-point" module:"openconfig-network-instance"`
	ΛRendezvousPoint []ygot.Annotation                                                                                                                     `path:"@rendezvous-point" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) IsYANGGoStruct() {
}

// NewRendezvousPoint creates a new entry in the RendezvousPoint list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) NewRendezvousPoint(Address string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RendezvousPoint == nil {
		t.RendezvousPoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint)
	}

	key := Address

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RendezvousPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RendezvousPoint", key)
	}

	t.RendezvousPoint[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint{
		Address: &Address,
	}

	return t.RendezvousPoint[key], nil
}

// RenameRendezvousPoint renames an entry in the list RendezvousPoint within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) RenameRendezvousPoint(oldK, newK string) error {
	if _, ok := t.RendezvousPoint[newK]; ok {
		return fmt.Errorf("key %v already exists in RendezvousPoint", newK)
	}

	e, ok := t.RendezvousPoint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in RendezvousPoint", oldK)
	}
	e.Address = &newK

	t.RendezvousPoint[newK] = e
	delete(t.RendezvousPoint, oldK)
	return nil
}

// GetOrCreateRendezvousPointMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) GetOrCreateRendezvousPointMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint {
	if t.RendezvousPoint == nil {
		t.RendezvousPoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint)
	}
	return t.RendezvousPoint
}

// GetOrCreateRendezvousPoint retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) GetOrCreateRendezvousPoint(Address string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint {

	key := Address

	if v, ok := t.RendezvousPoint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRendezvousPoint(Address)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRendezvousPoint got unexpected error: %v", err))
	}
	return v
}

// GetRendezvousPoint retrieves the value with the specified key from
// the RendezvousPoint map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) GetRendezvousPoint(Address string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint {

	if t == nil {
		return nil
	}

	key := Address

	if lm, ok := t.RendezvousPoint[key]; ok {
		return lm
	}
	return nil
}

// AppendRendezvousPoint appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint struct to the
// list RendezvousPoint of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) AppendRendezvousPoint(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) error {
	if v.Address == nil {
		return fmt.Errorf("invalid nil key received for Address")
	}

	key := *v.Address

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RendezvousPoint == nil {
		t.RendezvousPoint = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint)
	}

	if _, ok := t.RendezvousPoint[key]; ok {
		return fmt.Errorf("duplicate key for list RendezvousPoint %v", key)
	}

	t.RendezvousPoint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.RendezvousPoint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/rendezvous-points/rendezvous-point YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Address   *string                                                                                                                           `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation                                                                                                                 `path:"@address" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Address == nil {
		return nil, fmt.Errorf("nil value for key Address")
	}

	return map[string]interface{}{
		"address": *t.Address,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/rendezvous-points/rendezvous-point/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address          *string           `path:"address" module:"openconfig-network-instance"`
	ΛAddress         []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	MulticastGroups  *string           `path:"multicast-groups" module:"openconfig-network-instance"`
	ΛMulticastGroups []ygot.Annotation `path:"@multicast-groups" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetMulticastGroups retrieves the value of the leaf MulticastGroups from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastGroups is set, it can
// safely use t.GetMulticastGroups() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastGroups == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) GetMulticastGroups() string {
	if t == nil || t.MulticastGroups == nil {
		return ""
	}
	return *t.MulticastGroups
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/rendezvous-points/rendezvous-point/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address          *string           `path:"address" module:"openconfig-network-instance"`
	ΛAddress         []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	MulticastGroups  *string           `path:"multicast-groups" module:"openconfig-network-instance"`
	ΛMulticastGroups []ygot.Annotation `path:"@multicast-groups" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetMulticastGroups retrieves the value of the leaf MulticastGroups from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MulticastGroups is set, it can
// safely use t.GetMulticastGroups() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MulticastGroups == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) GetMulticastGroups() string {
	if t == nil || t.MulticastGroups == nil {
		return ""
	}
	return *t.MulticastGroups
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_RendezvousPoints_RendezvousPoint_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/sources-joined YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined struct {
	ΛMetadata []ygot.Annotation                                                                                                         `path:"@" ygotAnnotation:"true"`
	Source    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source `path:"source" module:"openconfig-network-instance"`
	ΛSource   []ygot.Annotation                                                                                                         `path:"@source" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) IsYANGGoStruct() {
}

// NewSource creates a new entry in the Source list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) NewSource(Address string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Source == nil {
		t.Source = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source)
	}

	key := Address

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Source[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Source", key)
	}

	t.Source[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source{
		Address: &Address,
	}

	return t.Source[key], nil
}

// RenameSource renames an entry in the list Source within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) RenameSource(oldK, newK string) error {
	if _, ok := t.Source[newK]; ok {
		return fmt.Errorf("key %v already exists in Source", newK)
	}

	e, ok := t.Source[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Source", oldK)
	}
	e.Address = &newK

	t.Source[newK] = e
	delete(t.Source, oldK)
	return nil
}

// GetOrCreateSourceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) GetOrCreateSourceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source {
	if t.Source == nil {
		t.Source = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source)
	}
	return t.Source
}

// GetOrCreateSource retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) GetOrCreateSource(Address string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source {

	key := Address

	if v, ok := t.Source[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSource(Address)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSource got unexpected error: %v", err))
	}
	return v
}

// GetSource retrieves the value with the specified key from
// the Source map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) GetSource(Address string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source {

	if t == nil {
		return nil
	}

	key := Address

	if lm, ok := t.Source[key]; ok {
		return lm
	}
	return nil
}

// AppendSource appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source struct to the
// list Source of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) AppendSource(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) error {
	if v.Address == nil {
		return fmt.Errorf("invalid nil key received for Address")
	}

	key := *v.Address

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Source == nil {
		t.Source = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source)
	}

	if _, ok := t.Source[key]; ok {
		return fmt.Errorf("duplicate key for list Source %v", key)
	}

	t.Source[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Source {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/sources-joined/source YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source struct {
	ΛMetadata []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Address   *string                                                                                                              `path:"address" module:"openconfig-network-instance"`
	ΛAddress  []ygot.Annotation                                                                                                    `path:"@address" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Address == nil {
		return nil, fmt.Errorf("nil value for key Address")
	}

	return map[string]interface{}{
		"address": *t.Address,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/sources-joined/source/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address              *string           `path:"address" module:"openconfig-network-instance"`
	ΛAddress             []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	Group                *string           `path:"group" module:"openconfig-network-instance"`
	ΛGroup               []ygot.Annotation `path:"@group" ygotAnnotation:"true"`
	UpstreamInterfaceId  *string           `path:"upstream-interface-id" module:"openconfig-network-instance"`
	ΛUpstreamInterfaceId []ygot.Annotation `path:"@upstream-interface-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetGroup retrieves the value of the leaf Group from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Group is set, it can
// safely use t.GetGroup() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Group == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) GetGroup() string {
	if t == nil || t.Group == nil {
		return ""
	}
	return *t.Group
}

// GetUpstreamInterfaceId retrieves the value of the leaf UpstreamInterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpstreamInterfaceId is set, it can
// safely use t.GetUpstreamInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpstreamInterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) GetUpstreamInterfaceId() string {
	if t == nil || t.UpstreamInterfaceId == nil {
		return ""
	}
	return *t.UpstreamInterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_SourcesJoined_Source_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/ssm YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm struct {
	ΛMetadata []ygot.Annotation                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/ssm/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SsmRanges  *string           `path:"ssm-ranges" module:"openconfig-network-instance"`
	ΛSsmRanges []ygot.Annotation `path:"@ssm-ranges" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config) IsYANGGoStruct() {
}

// GetSsmRanges retrieves the value of the leaf SsmRanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SsmRanges is set, it can
// safely use t.GetSsmRanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SsmRanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config) GetSsmRanges() string {
	if t == nil || t.SsmRanges == nil {
		return ""
	}
	return *t.SsmRanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/ssm/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	SsmRanges  *string           `path:"ssm-ranges" module:"openconfig-network-instance"`
	ΛSsmRanges []ygot.Annotation `path:"@ssm-ranges" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State) IsYANGGoStruct() {
}

// GetSsmRanges retrieves the value of the leaf SsmRanges from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SsmRanges is set, it can
// safely use t.GetSsmRanges() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SsmRanges == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State) GetSsmRanges() string {
	if t == nil || t.SsmRanges == nil {
		return ""
	}
	return *t.SsmRanges
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_Ssm_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State struct {
	ΛMetadata      []ygot.Annotation                                                                                        `path:"@" ygotAnnotation:"true"`
	Counters       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters      []ygot.Annotation                                                                                        `path:"@counters" ygotAnnotation:"true"`
	MaximumGroups  *uint32                                                                                                  `path:"maximum-groups" module:"openconfig-network-instance"`
	ΛMaximumGroups []ygot.Annotation                                                                                        `path:"@maximum-groups" ygotAnnotation:"true"`
	NeighborCount  *uint8                                                                                                   `path:"neighbor-count" module:"openconfig-network-instance"`
	ΛNeighborCount []ygot.Annotation                                                                                        `path:"@neighbor-count" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetMaximumGroups retrieves the value of the leaf MaximumGroups from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumGroups is set, it can
// safely use t.GetMaximumGroups() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumGroups == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) GetMaximumGroups() uint32 {
	if t == nil || t.MaximumGroups == nil {
		return 0
	}
	return *t.MaximumGroups
}

// GetNeighborCount retrieves the value of the leaf NeighborCount from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborCount is set, it can
// safely use t.GetNeighborCount() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborCount == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) GetNeighborCount() uint8 {
	if t == nil || t.NeighborCount == nil {
		return 0
	}
	return *t.NeighborCount
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/global/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BootstrapMessages  *uint32           `path:"bootstrap-messages" module:"openconfig-network-instance"`
	ΛBootstrapMessages []ygot.Annotation `path:"@bootstrap-messages" ygotAnnotation:"true"`
	HelloMessages      *uint32           `path:"hello-messages" module:"openconfig-network-instance"`
	ΛHelloMessages     []ygot.Annotation `path:"@hello-messages" ygotAnnotation:"true"`
	JoinPruneMessages  *uint32           `path:"join-prune-messages" module:"openconfig-network-instance"`
	ΛJoinPruneMessages []ygot.Annotation `path:"@join-prune-messages" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) IsYANGGoStruct() {
}

// GetBootstrapMessages retrieves the value of the leaf BootstrapMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BootstrapMessages is set, it can
// safely use t.GetBootstrapMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BootstrapMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) GetBootstrapMessages() uint32 {
	if t == nil || t.BootstrapMessages == nil {
		return 0
	}
	return *t.BootstrapMessages
}

// GetHelloMessages retrieves the value of the leaf HelloMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloMessages is set, it can
// safely use t.GetHelloMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) GetHelloMessages() uint32 {
	if t == nil || t.HelloMessages == nil {
		return 0
	}
	return *t.HelloMessages
}

// GetJoinPruneMessages retrieves the value of the leaf JoinPruneMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if JoinPruneMessages is set, it can
// safely use t.GetJoinPruneMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.JoinPruneMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) GetJoinPruneMessages() uint32 {
	if t == nil || t.JoinPruneMessages == nil {
		return 0
	}
	return *t.JoinPruneMessages
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Global_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces struct {
	ΛMetadata  []ygot.Annotation                                                                                                  `path:"@" ygotAnnotation:"true"`
	Interface  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation                                                                                                  `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) IsYANGGoStruct() {
}

// NewInterface creates a new entry in the Interface list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) NewInterface(InterfaceId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface)
	}

	key := InterfaceId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Interface[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Interface", key)
	}

	t.Interface[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface{
		InterfaceId: &InterfaceId,
	}

	return t.Interface[key], nil
}

// RenameInterface renames an entry in the list Interface within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) RenameInterface(oldK, newK string) error {
	if _, ok := t.Interface[newK]; ok {
		return fmt.Errorf("key %v already exists in Interface", newK)
	}

	e, ok := t.Interface[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Interface", oldK)
	}
	e.InterfaceId = &newK

	t.Interface[newK] = e
	delete(t.Interface, oldK)
	return nil
}

// GetOrCreateInterfaceMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) GetOrCreateInterfaceMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface {
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface)
	}
	return t.Interface
}

// GetOrCreateInterface retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) GetOrCreateInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface {

	key := InterfaceId

	if v, ok := t.Interface[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewInterface(InterfaceId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateInterface got unexpected error: %v", err))
	}
	return v
}

// GetInterface retrieves the value with the specified key from
// the Interface map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) GetInterface(InterfaceId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface {

	if t == nil {
		return nil
	}

	key := InterfaceId

	if lm, ok := t.Interface[key]; ok {
		return lm
	}
	return nil
}

// AppendInterface appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface struct to the
// list Interface of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) AppendInterface(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) error {
	if v.InterfaceId == nil {
		return fmt.Errorf("invalid nil key received for InterfaceId")
	}

	key := *v.InterfaceId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Interface == nil {
		t.Interface = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface)
	}

	if _, ok := t.Interface[key]; ok {
		return fmt.Errorf("duplicate key for list Interface %v", key)
	}

	t.Interface[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Interface {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface struct {
	ΛMetadata     []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config       `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                                    `path:"@config" ygotAnnotation:"true"`
	EnableBfd     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd    `path:"enable-bfd" module:"openconfig-network-instance"`
	ΛEnableBfd    []ygot.Annotation                                                                                                    `path:"@enable-bfd" ygotAnnotation:"true"`
	InterfaceId   *string                                                                                                              `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId  []ygot.Annotation                                                                                                    `path:"@interface-id" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                                    `path:"@interface-ref" ygotAnnotation:"true"`
	Neighbors     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors    `path:"neighbors" module:"openconfig-network-instance"`
	ΛNeighbors    []ygot.Annotation                                                                                                    `path:"@neighbors" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config{}
	return t.Config
}

// GetOrCreateEnableBfd retrieves the value of the EnableBfd field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetOrCreateEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd {
	if t.EnableBfd != nil {
		return t.EnableBfd
	}
	t.EnableBfd = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd{}
	return t.EnableBfd
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetOrCreateNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors{}
	return t.Neighbors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEnableBfd returns the value of the EnableBfd struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface. If the receiver or the field EnableBfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd {
	if t != nil && t.EnableBfd != nil {
		return t.EnableBfd
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetNeighbors() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.EnableBfd.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) {
	if t.InterfaceId == nil {
		return nil, fmt.Errorf("nil value for key InterfaceId")
	}

	return map[string]interface{}{
		"interface-id": *t.InterfaceId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config struct {
	ΛMetadata          []ygot.Annotation             `path:"@" ygotAnnotation:"true"`
	BorderRouter       *bool                         `path:"border-router" module:"openconfig-network-instance"`
	ΛBorderRouter      []ygot.Annotation             `path:"@border-router" ygotAnnotation:"true"`
	BsrBorder          *bool                         `path:"bsr-border" module:"openconfig-network-instance"`
	ΛBsrBorder         []ygot.Annotation             `path:"@bsr-border" ygotAnnotation:"true"`
	DeadTimer          *uint16                       `path:"dead-timer" module:"openconfig-network-instance"`
	ΛDeadTimer         []ygot.Annotation             `path:"@dead-timer" ygotAnnotation:"true"`
	DrPriority         *uint32                       `path:"dr-priority" module:"openconfig-network-instance"`
	ΛDrPriority        []ygot.Annotation             `path:"@dr-priority" ygotAnnotation:"true"`
	Enabled            *bool                         `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation             `path:"@enabled" ygotAnnotation:"true"`
	HelloInterval      *uint8                        `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval     []ygot.Annotation             `path:"@hello-interval" ygotAnnotation:"true"`
	InterfaceId        *string                       `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId       []ygot.Annotation             `path:"@interface-id" ygotAnnotation:"true"`
	JoinPruneInterval  *uint8                        `path:"join-prune-interval" module:"openconfig-network-instance"`
	ΛJoinPruneInterval []ygot.Annotation             `path:"@join-prune-interval" ygotAnnotation:"true"`
	MaximumGroups      *uint32                       `path:"maximum-groups" module:"openconfig-network-instance"`
	ΛMaximumGroups     []ygot.Annotation             `path:"@maximum-groups" ygotAnnotation:"true"`
	Mode               E_OpenconfigPimTypes_PIM_MODE `path:"mode" module:"openconfig-network-instance"`
	ΛMode              []ygot.Annotation             `path:"@mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) IsYANGGoStruct() {
}

// GetBorderRouter retrieves the value of the leaf BorderRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BorderRouter is set, it can
// safely use t.GetBorderRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BorderRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetBorderRouter() bool {
	if t == nil || t.BorderRouter == nil {
		return false
	}
	return *t.BorderRouter
}

// GetBsrBorder retrieves the value of the leaf BsrBorder from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BsrBorder is set, it can
// safely use t.GetBsrBorder() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BsrBorder == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetBsrBorder() bool {
	if t == nil || t.BsrBorder == nil {
		return false
	}
	return *t.BsrBorder
}

// GetDeadTimer retrieves the value of the leaf DeadTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadTimer is set, it can
// safely use t.GetDeadTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetDeadTimer() uint16 {
	if t == nil || t.DeadTimer == nil {
		return 0
	}
	return *t.DeadTimer
}

// GetDrPriority retrieves the value of the leaf DrPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DrPriority is set, it can
// safely use t.GetDrPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DrPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetDrPriority() uint32 {
	if t == nil || t.DrPriority == nil {
		return 0
	}
	return *t.DrPriority
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetHelloInterval() uint8 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetJoinPruneInterval retrieves the value of the leaf JoinPruneInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if JoinPruneInterval is set, it can
// safely use t.GetJoinPruneInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.JoinPruneInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetJoinPruneInterval() uint8 {
	if t == nil || t.JoinPruneInterval == nil {
		return 0
	}
	return *t.JoinPruneInterval
}

// GetMaximumGroups retrieves the value of the leaf MaximumGroups from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumGroups is set, it can
// safely use t.GetMaximumGroups() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumGroups == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetMaximumGroups() uint32 {
	if t == nil || t.MaximumGroups == nil {
		return 0
	}
	return *t.MaximumGroups
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) GetMode() E_OpenconfigPimTypes_PIM_MODE {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.BorderRouter == nil {
		var v bool = false
		t.BorderRouter = &v
	}
	if t.BsrBorder == nil {
		var v bool = false
		t.BsrBorder = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/enable-bfd YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd struct {
	ΛMetadata []ygot.Annotation                                                                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                        `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/enable-bfd/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/enable-bfd/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_EnableBfd_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/neighbors YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor `path:"neighbor" module:"openconfig-network-instance"`
	ΛNeighbor []ygot.Annotation                                                                                                                     `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) NewNeighbor(NeighborAddress string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor)
	}

	key := NeighborAddress

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor{
		NeighborAddress: &NeighborAddress,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.NeighborAddress = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) GetOrCreateNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor {

	key := NeighborAddress

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(NeighborAddress)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) GetNeighbor(NeighborAddress string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := NeighborAddress

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) AppendNeighbor(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) error {
	if v.NeighborAddress == nil {
		return fmt.Errorf("invalid nil key received for NeighborAddress")
	}

	key := *v.NeighborAddress

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/neighbors/neighbor YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor struct {
	ΛMetadata        []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	NeighborAddress  *string                                                                                                                          `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress []ygot.Annotation                                                                                                                `path:"@neighbor-address" ygotAnnotation:"true"`
	State            *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State `path:"state" module:"openconfig-network-instance"`
	ΛState           []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NeighborAddress == nil {
		return nil, fmt.Errorf("nil value for key NeighborAddress")
	}

	return map[string]interface{}{
		"neighbor-address": *t.NeighborAddress,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/neighbors/neighbor/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State struct {
	ΛMetadata            []ygot.Annotation             `path:"@" ygotAnnotation:"true"`
	DrAddress            *string                       `path:"dr-address" module:"openconfig-network-instance"`
	ΛDrAddress           []ygot.Annotation             `path:"@dr-address" ygotAnnotation:"true"`
	Mode                 E_OpenconfigPimTypes_PIM_MODE `path:"mode" module:"openconfig-network-instance"`
	ΛMode                []ygot.Annotation             `path:"@mode" ygotAnnotation:"true"`
	NeighborAddress      *string                       `path:"neighbor-address" module:"openconfig-network-instance"`
	ΛNeighborAddress     []ygot.Annotation             `path:"@neighbor-address" ygotAnnotation:"true"`
	NeighborEstablished  *uint64                       `path:"neighbor-established" module:"openconfig-network-instance"`
	ΛNeighborEstablished []ygot.Annotation             `path:"@neighbor-established" ygotAnnotation:"true"`
	NeighborExpires      *uint64                       `path:"neighbor-expires" module:"openconfig-network-instance"`
	ΛNeighborExpires     []ygot.Annotation             `path:"@neighbor-expires" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetDrAddress retrieves the value of the leaf DrAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DrAddress is set, it can
// safely use t.GetDrAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DrAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) GetDrAddress() string {
	if t == nil || t.DrAddress == nil {
		return ""
	}
	return *t.DrAddress
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) GetMode() E_OpenconfigPimTypes_PIM_MODE {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// GetNeighborAddress retrieves the value of the leaf NeighborAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborAddress is set, it can
// safely use t.GetNeighborAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) GetNeighborAddress() string {
	if t == nil || t.NeighborAddress == nil {
		return ""
	}
	return *t.NeighborAddress
}

// GetNeighborEstablished retrieves the value of the leaf NeighborEstablished from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborEstablished is set, it can
// safely use t.GetNeighborEstablished() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborEstablished == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) GetNeighborEstablished() uint64 {
	if t == nil || t.NeighborEstablished == nil {
		return 0
	}
	return *t.NeighborEstablished
}

// GetNeighborExpires retrieves the value of the leaf NeighborExpires from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborExpires is set, it can
// safely use t.GetNeighborExpires() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborExpires == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) GetNeighborExpires() uint64 {
	if t == nil || t.NeighborExpires == nil {
		return 0
	}
	return *t.NeighborExpires
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State struct {
	ΛMetadata          []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	BorderRouter       *bool                                                                                                                  `path:"border-router" module:"openconfig-network-instance"`
	ΛBorderRouter      []ygot.Annotation                                                                                                      `path:"@border-router" ygotAnnotation:"true"`
	BsrBorder          *bool                                                                                                                  `path:"bsr-border" module:"openconfig-network-instance"`
	ΛBsrBorder         []ygot.Annotation                                                                                                      `path:"@bsr-border" ygotAnnotation:"true"`
	Counters           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters          []ygot.Annotation                                                                                                      `path:"@counters" ygotAnnotation:"true"`
	DeadTimer          *uint16                                                                                                                `path:"dead-timer" module:"openconfig-network-instance"`
	ΛDeadTimer         []ygot.Annotation                                                                                                      `path:"@dead-timer" ygotAnnotation:"true"`
	DrPriority         *uint32                                                                                                                `path:"dr-priority" module:"openconfig-network-instance"`
	ΛDrPriority        []ygot.Annotation                                                                                                      `path:"@dr-priority" ygotAnnotation:"true"`
	Enabled            *bool                                                                                                                  `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled           []ygot.Annotation                                                                                                      `path:"@enabled" ygotAnnotation:"true"`
	HelloInterval      *uint8                                                                                                                 `path:"hello-interval" module:"openconfig-network-instance"`
	ΛHelloInterval     []ygot.Annotation                                                                                                      `path:"@hello-interval" ygotAnnotation:"true"`
	InterfaceId        *string                                                                                                                `path:"interface-id" module:"openconfig-network-instance"`
	ΛInterfaceId       []ygot.Annotation                                                                                                      `path:"@interface-id" ygotAnnotation:"true"`
	JoinPruneInterval  *uint8                                                                                                                 `path:"join-prune-interval" module:"openconfig-network-instance"`
	ΛJoinPruneInterval []ygot.Annotation                                                                                                      `path:"@join-prune-interval" ygotAnnotation:"true"`
	MaximumGroups      *uint32                                                                                                                `path:"maximum-groups" module:"openconfig-network-instance"`
	ΛMaximumGroups     []ygot.Annotation                                                                                                      `path:"@maximum-groups" ygotAnnotation:"true"`
	Mode               E_OpenconfigPimTypes_PIM_MODE                                                                                          `path:"mode" module:"openconfig-network-instance"`
	ΛMode              []ygot.Annotation                                                                                                      `path:"@mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetBorderRouter retrieves the value of the leaf BorderRouter from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BorderRouter is set, it can
// safely use t.GetBorderRouter() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BorderRouter == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetBorderRouter() bool {
	if t == nil || t.BorderRouter == nil {
		return false
	}
	return *t.BorderRouter
}

// GetBsrBorder retrieves the value of the leaf BsrBorder from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BsrBorder is set, it can
// safely use t.GetBsrBorder() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BsrBorder == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetBsrBorder() bool {
	if t == nil || t.BsrBorder == nil {
		return false
	}
	return *t.BsrBorder
}

// GetDeadTimer retrieves the value of the leaf DeadTimer from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DeadTimer is set, it can
// safely use t.GetDeadTimer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DeadTimer == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetDeadTimer() uint16 {
	if t == nil || t.DeadTimer == nil {
		return 0
	}
	return *t.DeadTimer
}

// GetDrPriority retrieves the value of the leaf DrPriority from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DrPriority is set, it can
// safely use t.GetDrPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DrPriority == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetDrPriority() uint32 {
	if t == nil || t.DrPriority == nil {
		return 0
	}
	return *t.DrPriority
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetHelloInterval retrieves the value of the leaf HelloInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloInterval is set, it can
// safely use t.GetHelloInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetHelloInterval() uint8 {
	if t == nil || t.HelloInterval == nil {
		return 0
	}
	return *t.HelloInterval
}

// GetInterfaceId retrieves the value of the leaf InterfaceId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InterfaceId is set, it can
// safely use t.GetInterfaceId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InterfaceId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetInterfaceId() string {
	if t == nil || t.InterfaceId == nil {
		return ""
	}
	return *t.InterfaceId
}

// GetJoinPruneInterval retrieves the value of the leaf JoinPruneInterval from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if JoinPruneInterval is set, it can
// safely use t.GetJoinPruneInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.JoinPruneInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetJoinPruneInterval() uint8 {
	if t == nil || t.JoinPruneInterval == nil {
		return 0
	}
	return *t.JoinPruneInterval
}

// GetMaximumGroups retrieves the value of the leaf MaximumGroups from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaximumGroups is set, it can
// safely use t.GetMaximumGroups() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaximumGroups == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetMaximumGroups() uint32 {
	if t == nil || t.MaximumGroups == nil {
		return 0
	}
	return *t.MaximumGroups
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) GetMode() E_OpenconfigPimTypes_PIM_MODE {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.BorderRouter == nil {
		var v bool = false
		t.BorderRouter = &v
	}
	if t.BsrBorder == nil {
		var v bool = false
		t.BsrBorder = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BootstrapMessages  *uint32           `path:"bootstrap-messages" module:"openconfig-network-instance"`
	ΛBootstrapMessages []ygot.Annotation `path:"@bootstrap-messages" ygotAnnotation:"true"`
	HelloMessages      *uint32           `path:"hello-messages" module:"openconfig-network-instance"`
	ΛHelloMessages     []ygot.Annotation `path:"@hello-messages" ygotAnnotation:"true"`
	JoinPruneMessages  *uint32           `path:"join-prune-messages" module:"openconfig-network-instance"`
	ΛJoinPruneMessages []ygot.Annotation `path:"@join-prune-messages" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) IsYANGGoStruct() {
}

// GetBootstrapMessages retrieves the value of the leaf BootstrapMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BootstrapMessages is set, it can
// safely use t.GetBootstrapMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BootstrapMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) GetBootstrapMessages() uint32 {
	if t == nil || t.BootstrapMessages == nil {
		return 0
	}
	return *t.BootstrapMessages
}

// GetHelloMessages retrieves the value of the leaf HelloMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HelloMessages is set, it can
// safely use t.GetHelloMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HelloMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) GetHelloMessages() uint32 {
	if t == nil || t.HelloMessages == nil {
		return 0
	}
	return *t.HelloMessages
}

// GetJoinPruneMessages retrieves the value of the leaf JoinPruneMessages from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if JoinPruneMessages is set, it can
// safely use t.GetJoinPruneMessages() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.JoinPruneMessages == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) GetJoinPruneMessages() uint32 {
	if t == nil || t.JoinPruneMessages == nil {
		return 0
	}
	return *t.JoinPruneMessages
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Pim_Interfaces_Interface_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State struct {
	ΛMetadata      []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	DefaultMetric  *uint32                                       `path:"default-metric" module:"openconfig-network-instance"`
	ΛDefaultMetric []ygot.Annotation                             `path:"@default-metric" ygotAnnotation:"true"`
	Enabled        *bool                                         `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled       []ygot.Annotation                             `path:"@enabled" ygotAnnotation:"true"`
	Identifier     E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"identifier" module:"openconfig-network-instance"`
	ΛIdentifier    []ygot.Annotation                             `path:"@identifier" ygotAnnotation:"true"`
	Name           *string                                       `path:"name" module:"openconfig-network-instance"`
	ΛName          []ygot.Annotation                             `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) IsYANGGoStruct() {
}

// GetDefaultMetric retrieves the value of the leaf DefaultMetric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultMetric is set, it can
// safely use t.GetDefaultMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultMetric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) GetDefaultMetric() uint32 {
	if t == nil || t.DefaultMetric == nil {
		return 0
	}
	return *t.DefaultMetric
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetIdentifier retrieves the value of the leaf Identifier from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Identifier is set, it can
// safely use t.GetIdentifier() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Identifier == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) GetIdentifier() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.Identifier == 0 {
		return 0
	}
	return t.Identifier
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) GetName() string {
	if t == nil || t.Name == nil {
		return "DEFAULT"
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Name == nil {
		var v string = "DEFAULT"
		t.Name = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes struct {
	ΛMetadata []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	Static    map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static `path:"static" module:"openconfig-network-instance"`
	ΛStatic   []ygot.Annotation                                                                                             `path:"@static" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) IsYANGGoStruct() {
}

// NewStatic creates a new entry in the Static list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) NewStatic(Prefix string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Static == nil {
		t.Static = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static)
	}

	key := Prefix

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Static[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Static", key)
	}

	t.Static[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static{
		Prefix: &Prefix,
	}

	return t.Static[key], nil
}

// RenameStatic renames an entry in the list Static within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) RenameStatic(oldK, newK string) error {
	if _, ok := t.Static[newK]; ok {
		return fmt.Errorf("key %v already exists in Static", newK)
	}

	e, ok := t.Static[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Static", oldK)
	}
	e.Prefix = &newK

	t.Static[newK] = e
	delete(t.Static, oldK)
	return nil
}

// GetOrCreateStaticMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) GetOrCreateStaticMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static {
	if t.Static == nil {
		t.Static = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static)
	}
	return t.Static
}

// GetOrCreateStatic retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) GetOrCreateStatic(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static {

	key := Prefix

	if v, ok := t.Static[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewStatic(Prefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateStatic got unexpected error: %v", err))
	}
	return v
}

// GetStatic retrieves the value with the specified key from
// the Static map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) GetStatic(Prefix string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static {

	if t == nil {
		return nil
	}

	key := Prefix

	if lm, ok := t.Static[key]; ok {
		return lm
	}
	return nil
}

// AppendStatic appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static struct to the
// list Static of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) AppendStatic(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) error {
	if v.Prefix == nil {
		return fmt.Errorf("invalid nil key received for Prefix")
	}

	key := *v.Prefix

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Static == nil {
		t.Static = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static)
	}

	if _, ok := t.Static[key]; ok {
		return fmt.Errorf("duplicate key for list Static %v", key)
	}

	t.Static[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Static {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static struct {
	ΛMetadata []ygot.Annotation                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config   `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                           `path:"@config" ygotAnnotation:"true"`
	NextHops  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops []ygot.Annotation                                                                                           `path:"@next-hops" ygotAnnotation:"true"`
	Prefix    *string                                                                                                     `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix   []ygot.Annotation                                                                                           `path:"@prefix" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State    `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config{}
	return t.Config
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops{}
	return t.NextHops
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.NextHops.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Prefix == nil {
		return nil, fmt.Errorf("nil value for key Prefix")
	}

	return map[string]interface{}{
		"prefix": *t.Prefix,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config struct {
	ΛMetadata    []ygot.Annotation                                                                                                     `path:"@" ygotAnnotation:"true"`
	Description  *string                                                                                                               `path:"description" module:"openconfig-network-instance"`
	ΛDescription []ygot.Annotation                                                                                                     `path:"@description" ygotAnnotation:"true"`
	Prefix       *string                                                                                                               `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix      []ygot.Annotation                                                                                                     `path:"@prefix" ygotAnnotation:"true"`
	SetTag       OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union `path:"set-tag" module:"openconfig-network-instance"`
	ΛSetTag      []ygot.Annotation                                                                                                     `path:"@set-tag" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) IsYANGGoStruct() {
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSetTag retrieves the value of the leaf SetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetTag is set, it can
// safely use t.GetSetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) GetSetTag() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union {
	if t == nil || t.SetTag == nil {
		return nil
	}
	return t.SetTag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/config/set-tag within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_Config_SetTag_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	NextHop   map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                                                              `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) IsYANGGoStruct() {
}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) NewNextHop(Index string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) RenameNextHop(oldK, newK string) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) GetOrCreateNextHopMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) GetOrCreateNextHop(Index string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) GetNextHop(Index string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop struct {
	ΛMetadata     []ygot.Annotation                                                                                                                `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config       `path:"config" module:"openconfig-network-instance"`
	ΛConfig       []ygot.Annotation                                                                                                                `path:"@config" ygotAnnotation:"true"`
	EnableBfd     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd    `path:"enable-bfd" module:"openconfig-network-instance"`
	ΛEnableBfd    []ygot.Annotation                                                                                                                `path:"@enable-bfd" ygotAnnotation:"true"`
	Index         *string                                                                                                                          `path:"index" module:"openconfig-network-instance"`
	ΛIndex        []ygot.Annotation                                                                                                                `path:"@index" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                                                `path:"@interface-ref" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config{}
	return t.Config
}

// GetOrCreateEnableBfd retrieves the value of the EnableBfd field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetOrCreateEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd {
	if t.EnableBfd != nil {
		return t.EnableBfd
	}
	t.EnableBfd = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd{}
	return t.EnableBfd
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEnableBfd returns the value of the EnableBfd struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop. If the receiver or the field EnableBfd is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetEnableBfd() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd {
	if t != nil && t.EnableBfd != nil {
		return t.EnableBfd
	}
	return nil
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) GetIndex() string {
	if t == nil || t.Index == nil {
		return ""
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.EnableBfd.PopulateDefaults()
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config struct {
	ΛMetadata   []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Index       *string                                                                                                                                 `path:"index" module:"openconfig-network-instance"`
	ΛIndex      []ygot.Annotation                                                                                                                       `path:"@index" ygotAnnotation:"true"`
	Metric      *uint32                                                                                                                                 `path:"metric" module:"openconfig-network-instance"`
	ΛMetric     []ygot.Annotation                                                                                                                       `path:"@metric" ygotAnnotation:"true"`
	NextHop     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop    []ygot.Annotation                                                                                                                       `path:"@next-hop" ygotAnnotation:"true"`
	Preference  *uint32                                                                                                                                 `path:"preference" module:"openconfig-network-instance"`
	ΛPreference []ygot.Annotation                                                                                                                       `path:"@preference" ygotAnnotation:"true"`
	Recurse     *bool                                                                                                                                   `path:"recurse" module:"openconfig-network-instance"`
	ΛRecurse    []ygot.Annotation                                                                                                                       `path:"@recurse" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) GetIndex() string {
	if t == nil || t.Index == nil {
		return ""
	}
	return *t.Index
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) GetNextHop() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union {
	if t == nil || t.NextHop == nil {
		return nil
	}
	return t.NextHop
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) GetPreference() uint32 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetRecurse retrieves the value of the leaf Recurse from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Recurse is set, it can
// safely use t.GetRecurse() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Recurse == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) GetRecurse() bool {
	if t == nil || t.Recurse == nil {
		return false
	}
	return *t.Recurse
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Recurse == nil {
		var v bool = false
		t.Recurse = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/config/next-hop within the YANG schema.
// Union type can be one of [E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union interface {
	// Union type can be one of [E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union ensures that E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union interface.
func (E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_Config_NextHop_Union, unknown union type, got: %T, want any of [E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/enable-bfd YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd struct {
	ΛMetadata []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                    `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/enable-bfd/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/enable-bfd/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-network-instance"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_EnableBfd_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                                                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/interface-ref/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State struct {
	ΛMetadata   []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Index       *string                                                                                                                                `path:"index" module:"openconfig-network-instance"`
	ΛIndex      []ygot.Annotation                                                                                                                      `path:"@index" ygotAnnotation:"true"`
	Metric      *uint32                                                                                                                                `path:"metric" module:"openconfig-network-instance"`
	ΛMetric     []ygot.Annotation                                                                                                                      `path:"@metric" ygotAnnotation:"true"`
	NextHop     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop    []ygot.Annotation                                                                                                                      `path:"@next-hop" ygotAnnotation:"true"`
	Preference  *uint32                                                                                                                                `path:"preference" module:"openconfig-network-instance"`
	ΛPreference []ygot.Annotation                                                                                                                      `path:"@preference" ygotAnnotation:"true"`
	Recurse     *bool                                                                                                                                  `path:"recurse" module:"openconfig-network-instance"`
	ΛRecurse    []ygot.Annotation                                                                                                                      `path:"@recurse" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) GetIndex() string {
	if t == nil || t.Index == nil {
		return ""
	}
	return *t.Index
}

// GetMetric retrieves the value of the leaf Metric from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Metric is set, it can
// safely use t.GetMetric() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Metric == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) GetMetric() uint32 {
	if t == nil || t.Metric == nil {
		return 0
	}
	return *t.Metric
}

// GetNextHop retrieves the value of the leaf NextHop from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NextHop is set, it can
// safely use t.GetNextHop() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NextHop == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) GetNextHop() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union {
	if t == nil || t.NextHop == nil {
		return nil
	}
	return t.NextHop
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) GetPreference() uint32 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetRecurse retrieves the value of the leaf Recurse from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Recurse is set, it can
// safely use t.GetRecurse() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Recurse == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) GetRecurse() bool {
	if t == nil || t.Recurse == nil {
		return false
	}
	return *t.Recurse
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Recurse == nil {
		var v bool = false
		t.Recurse = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/state/next-hop within the YANG schema.
// Union type can be one of [E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP, UnionString].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union interface {
	// Union type can be one of [E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP, UnionString]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union ensures that E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union interface.
func (E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_NextHops_NextHop_State_NextHop_Union, unknown union type, got: %T, want any of [E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP, string]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State represents the /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State struct {
	ΛMetadata    []ygot.Annotation                                                                                                    `path:"@" ygotAnnotation:"true"`
	Description  *string                                                                                                              `path:"description" module:"openconfig-network-instance"`
	ΛDescription []ygot.Annotation                                                                                                    `path:"@description" ygotAnnotation:"true"`
	Prefix       *string                                                                                                              `path:"prefix" module:"openconfig-network-instance"`
	ΛPrefix      []ygot.Annotation                                                                                                    `path:"@prefix" ygotAnnotation:"true"`
	SetTag       OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union `path:"set-tag" module:"openconfig-network-instance"`
	ΛSetTag      []ygot.Annotation                                                                                                    `path:"@set-tag" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) IsYANGGoStruct() {
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetPrefix retrieves the value of the leaf Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefix is set, it can
// safely use t.GetPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) GetPrefix() string {
	if t == nil || t.Prefix == nil {
		return ""
	}
	return *t.Prefix
}

// GetSetTag retrieves the value of the leaf SetTag from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SetTag is set, it can
// safely use t.GetSetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SetTag == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) GetSetTag() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union {
	if t == nil || t.SetTag == nil {
		return nil
	}
	return t.SetTag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/protocols/protocol/static-routes/static/state/set-tag within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_StaticRoutes_Static_State_SetTag_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits represents the /openconfig-network-instance/network-instances/network-instance/route-limits YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits struct {
	ΛMetadata   []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	RouteLimit  map[E_OpenconfigTypes_ADDRESS_FAMILY]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit `path:"route-limit" module:"openconfig-network-instance"`
	ΛRouteLimit []ygot.Annotation                                                                                                       `path:"@route-limit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) IsYANGGoStruct() {}

// NewRouteLimit creates a new entry in the RouteLimit list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) NewRouteLimit(Afi E_OpenconfigTypes_ADDRESS_FAMILY) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RouteLimit == nil {
		t.RouteLimit = make(map[E_OpenconfigTypes_ADDRESS_FAMILY]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit)
	}

	key := Afi

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RouteLimit[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RouteLimit", key)
	}

	t.RouteLimit[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit{
		Afi: Afi,
	}

	return t.RouteLimit[key], nil
}

// RenameRouteLimit renames an entry in the list RouteLimit within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) RenameRouteLimit(oldK, newK E_OpenconfigTypes_ADDRESS_FAMILY) error {
	if _, ok := t.RouteLimit[newK]; ok {
		return fmt.Errorf("key %v already exists in RouteLimit", newK)
	}

	e, ok := t.RouteLimit[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in RouteLimit", oldK)
	}
	e.Afi = newK

	t.RouteLimit[newK] = e
	delete(t.RouteLimit, oldK)
	return nil
}

// GetOrCreateRouteLimitMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) GetOrCreateRouteLimitMap() map[E_OpenconfigTypes_ADDRESS_FAMILY]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit {
	if t.RouteLimit == nil {
		t.RouteLimit = make(map[E_OpenconfigTypes_ADDRESS_FAMILY]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit)
	}
	return t.RouteLimit
}

// GetOrCreateRouteLimit retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) GetOrCreateRouteLimit(Afi E_OpenconfigTypes_ADDRESS_FAMILY) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit {

	key := Afi

	if v, ok := t.RouteLimit[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRouteLimit(Afi)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRouteLimit got unexpected error: %v", err))
	}
	return v
}

// GetRouteLimit retrieves the value with the specified key from
// the RouteLimit map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) GetRouteLimit(Afi E_OpenconfigTypes_ADDRESS_FAMILY) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit {

	if t == nil {
		return nil
	}

	key := Afi

	if lm, ok := t.RouteLimit[key]; ok {
		return lm
	}
	return nil
}

// AppendRouteLimit appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit struct to the
// list RouteLimit of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) AppendRouteLimit(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) error {
	key := v.Afi

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RouteLimit == nil {
		t.RouteLimit = make(map[E_OpenconfigTypes_ADDRESS_FAMILY]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit)
	}

	if _, ok := t.RouteLimit[key]; ok {
		return fmt.Errorf("duplicate key for list RouteLimit %v", key)
	}

	t.RouteLimit[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.RouteLimit {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit represents the /openconfig-network-instance/network-instances/network-instance/route-limits/route-limit YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit struct {
	ΛMetadata []ygot.Annotation                                                                         `path:"@" ygotAnnotation:"true"`
	Afi       E_OpenconfigTypes_ADDRESS_FAMILY                                                          `path:"afi" module:"openconfig-network-instance"`
	ΛAfi      []ygot.Annotation                                                                         `path:"@afi" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAfi retrieves the value of the leaf Afi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Afi is set, it can
// safely use t.GetAfi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Afi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) GetAfi() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.Afi == 0 {
		return 0
	}
	return t.Afi
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"afi": t.Afi,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config represents the /openconfig-network-instance/network-instances/network-instance/route-limits/route-limit/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config struct {
	ΛMetadata       []ygot.Annotation                `path:"@" ygotAnnotation:"true"`
	Afi             E_OpenconfigTypes_ADDRESS_FAMILY `path:"afi" module:"openconfig-network-instance"`
	ΛAfi            []ygot.Annotation                `path:"@afi" ygotAnnotation:"true"`
	AlarmThreshold  *uint32                          `path:"alarm-threshold" module:"openconfig-network-instance"`
	ΛAlarmThreshold []ygot.Annotation                `path:"@alarm-threshold" ygotAnnotation:"true"`
	Maximum         *uint32                          `path:"maximum" module:"openconfig-network-instance"`
	ΛMaximum        []ygot.Annotation                `path:"@maximum" ygotAnnotation:"true"`
	WarningOnly     *bool                            `path:"warning-only" module:"openconfig-network-instance"`
	ΛWarningOnly    []ygot.Annotation                `path:"@warning-only" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) IsYANGGoStruct() {
}

// GetAfi retrieves the value of the leaf Afi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Afi is set, it can
// safely use t.GetAfi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Afi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) GetAfi() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.Afi == 0 {
		return 0
	}
	return t.Afi
}

// GetAlarmThreshold retrieves the value of the leaf AlarmThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlarmThreshold is set, it can
// safely use t.GetAlarmThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlarmThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) GetAlarmThreshold() uint32 {
	if t == nil || t.AlarmThreshold == nil {
		return 0
	}
	return *t.AlarmThreshold
}

// GetMaximum retrieves the value of the leaf Maximum from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Maximum is set, it can
// safely use t.GetMaximum() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Maximum == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) GetMaximum() uint32 {
	if t == nil || t.Maximum == nil {
		return 0
	}
	return *t.Maximum
}

// GetWarningOnly retrieves the value of the leaf WarningOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningOnly is set, it can
// safely use t.GetWarningOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) GetWarningOnly() bool {
	if t == nil || t.WarningOnly == nil {
		return false
	}
	return *t.WarningOnly
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.WarningOnly == nil {
		var v bool = false
		t.WarningOnly = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State represents the /openconfig-network-instance/network-instances/network-instance/route-limits/route-limit/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State struct {
	ΛMetadata          []ygot.Annotation                `path:"@" ygotAnnotation:"true"`
	Afi                E_OpenconfigTypes_ADDRESS_FAMILY `path:"afi" module:"openconfig-network-instance"`
	ΛAfi               []ygot.Annotation                `path:"@afi" ygotAnnotation:"true"`
	AlarmThreshold     *uint32                          `path:"alarm-threshold" module:"openconfig-network-instance"`
	ΛAlarmThreshold    []ygot.Annotation                `path:"@alarm-threshold" ygotAnnotation:"true"`
	InstalledRoutes    *uint32                          `path:"installed-routes" module:"openconfig-network-instance"`
	ΛInstalledRoutes   []ygot.Annotation                `path:"@installed-routes" ygotAnnotation:"true"`
	Maximum            *uint32                          `path:"maximum" module:"openconfig-network-instance"`
	ΛMaximum           []ygot.Annotation                `path:"@maximum" ygotAnnotation:"true"`
	ThresholdExceeded  *bool                            `path:"threshold-exceeded" module:"openconfig-network-instance"`
	ΛThresholdExceeded []ygot.Annotation                `path:"@threshold-exceeded" ygotAnnotation:"true"`
	WarningOnly        *bool                            `path:"warning-only" module:"openconfig-network-instance"`
	ΛWarningOnly       []ygot.Annotation                `path:"@warning-only" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) IsYANGGoStruct() {
}

// GetAfi retrieves the value of the leaf Afi from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Afi is set, it can
// safely use t.GetAfi() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Afi == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) GetAfi() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.Afi == 0 {
		return 0
	}
	return t.Afi
}

// GetAlarmThreshold retrieves the value of the leaf AlarmThreshold from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlarmThreshold is set, it can
// safely use t.GetAlarmThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlarmThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) GetAlarmThreshold() uint32 {
	if t == nil || t.AlarmThreshold == nil {
		return 0
	}
	return *t.AlarmThreshold
}

// GetInstalledRoutes retrieves the value of the leaf InstalledRoutes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstalledRoutes is set, it can
// safely use t.GetInstalledRoutes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstalledRoutes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) GetInstalledRoutes() uint32 {
	if t == nil || t.InstalledRoutes == nil {
		return 0
	}
	return *t.InstalledRoutes
}

// GetMaximum retrieves the value of the leaf Maximum from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Maximum is set, it can
// safely use t.GetMaximum() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Maximum == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) GetMaximum() uint32 {
	if t == nil || t.Maximum == nil {
		return 0
	}
	return *t.Maximum
}

// GetThresholdExceeded retrieves the value of the leaf ThresholdExceeded from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ThresholdExceeded is set, it can
// safely use t.GetThresholdExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ThresholdExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) GetThresholdExceeded() bool {
	if t == nil || t.ThresholdExceeded == nil {
		return false
	}
	return *t.ThresholdExceeded
}

// GetWarningOnly retrieves the value of the leaf WarningOnly from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if WarningOnly is set, it can
// safely use t.GetWarningOnly() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.WarningOnly == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) GetWarningOnly() bool {
	if t == nil || t.WarningOnly == nil {
		return false
	}
	return *t.WarningOnly
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.WarningOnly == nil {
		var v bool = false
		t.WarningOnly = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_RouteLimits_RouteLimit_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting represents the /openconfig-network-instance/network-instances/network-instance/segment-routing YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting struct {
	ΛMetadata   []ygot.Annotation                                                                     `path:"@" ygotAnnotation:"true"`
	Srgbs       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs      `path:"srgbs" module:"openconfig-network-instance"`
	ΛSrgbs      []ygot.Annotation                                                                     `path:"@srgbs" ygotAnnotation:"true"`
	Srlbs       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs      `path:"srlbs" module:"openconfig-network-instance"`
	ΛSrlbs      []ygot.Annotation                                                                     `path:"@srlbs" ygotAnnotation:"true"`
	TePolicies  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies `path:"te-policies" module:"openconfig-network-instance"`
	ΛTePolicies []ygot.Annotation                                                                     `path:"@te-policies" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) IsYANGGoStruct() {}

// GetOrCreateSrgbs retrieves the value of the Srgbs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) GetOrCreateSrgbs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs {
	if t.Srgbs != nil {
		return t.Srgbs
	}
	t.Srgbs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs{}
	return t.Srgbs
}

// GetOrCreateSrlbs retrieves the value of the Srlbs field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) GetOrCreateSrlbs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs {
	if t.Srlbs != nil {
		return t.Srlbs
	}
	t.Srlbs = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs{}
	return t.Srlbs
}

// GetOrCreateTePolicies retrieves the value of the TePolicies field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) GetOrCreateTePolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies {
	if t.TePolicies != nil {
		return t.TePolicies
	}
	t.TePolicies = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies{}
	return t.TePolicies
}

// GetSrgbs returns the value of the Srgbs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting. If the receiver or the field Srgbs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) GetSrgbs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs {
	if t != nil && t.Srgbs != nil {
		return t.Srgbs
	}
	return nil
}

// GetSrlbs returns the value of the Srlbs struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting. If the receiver or the field Srlbs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) GetSrlbs() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs {
	if t != nil && t.Srlbs != nil {
		return t.Srlbs
	}
	return nil
}

// GetTePolicies returns the value of the TePolicies struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting. If the receiver or the field TePolicies is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) GetTePolicies() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies {
	if t != nil && t.TePolicies != nil {
		return t.TePolicies
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Srgbs.PopulateDefaults()
	t.Srlbs.PopulateDefaults()
	t.TePolicies.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srgbs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs struct {
	ΛMetadata []ygot.Annotation                                                                                `path:"@" ygotAnnotation:"true"`
	Srgb      map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb `path:"srgb" module:"openconfig-network-instance"`
	ΛSrgb     []ygot.Annotation                                                                                `path:"@srgb" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) IsYANGGoStruct() {
}

// NewSrgb creates a new entry in the Srgb list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) NewSrgb(LocalId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Srgb == nil {
		t.Srgb = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Srgb[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Srgb", key)
	}

	t.Srgb[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb{
		LocalId: &LocalId,
	}

	return t.Srgb[key], nil
}

// RenameSrgb renames an entry in the list Srgb within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) RenameSrgb(oldK, newK string) error {
	if _, ok := t.Srgb[newK]; ok {
		return fmt.Errorf("key %v already exists in Srgb", newK)
	}

	e, ok := t.Srgb[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Srgb", oldK)
	}
	e.LocalId = &newK

	t.Srgb[newK] = e
	delete(t.Srgb, oldK)
	return nil
}

// GetOrCreateSrgbMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) GetOrCreateSrgbMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb {
	if t.Srgb == nil {
		t.Srgb = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb)
	}
	return t.Srgb
}

// GetOrCreateSrgb retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) GetOrCreateSrgb(LocalId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb {

	key := LocalId

	if v, ok := t.Srgb[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSrgb(LocalId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSrgb got unexpected error: %v", err))
	}
	return v
}

// GetSrgb retrieves the value with the specified key from
// the Srgb map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) GetSrgb(LocalId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb {

	if t == nil {
		return nil
	}

	key := LocalId

	if lm, ok := t.Srgb[key]; ok {
		return lm
	}
	return nil
}

// AppendSrgb appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb struct to the
// list Srgb of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) AppendSrgb(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) error {
	if v.LocalId == nil {
		return fmt.Errorf("invalid nil key received for LocalId")
	}

	key := *v.LocalId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Srgb == nil {
		t.Srgb = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb)
	}

	if _, ok := t.Srgb[key]; ok {
		return fmt.Errorf("duplicate key for list Srgb %v", key)
	}

	t.Srgb[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Srgb {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srgbs/srgb YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb struct {
	ΛMetadata []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                            `path:"@config" ygotAnnotation:"true"`
	LocalId   *string                                                                                      `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId  []ygot.Annotation                                                                            `path:"@local-id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srgbs/srgb/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config struct {
	ΛMetadata        []ygot.Annotation                               `path:"@" ygotAnnotation:"true"`
	DataplaneType    E_OpenconfigSegmentRoutingTypes_SrDataplaneType `path:"dataplane-type" module:"openconfig-network-instance"`
	ΛDataplaneType   []ygot.Annotation                               `path:"@dataplane-type" ygotAnnotation:"true"`
	Ipv6Prefixes     []string                                        `path:"ipv6-prefixes" module:"openconfig-network-instance"`
	ΛIpv6Prefixes    []ygot.Annotation                               `path:"@ipv6-prefixes" ygotAnnotation:"true"`
	LocalId          *string                                         `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId         []ygot.Annotation                               `path:"@local-id" ygotAnnotation:"true"`
	MplsLabelBlocks  []string                                        `path:"mpls-label-blocks" module:"openconfig-network-instance"`
	ΛMplsLabelBlocks []ygot.Annotation                               `path:"@mpls-label-blocks" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) IsYANGGoStruct() {
}

// GetDataplaneType retrieves the value of the leaf DataplaneType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DataplaneType is set, it can
// safely use t.GetDataplaneType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DataplaneType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) GetDataplaneType() E_OpenconfigSegmentRoutingTypes_SrDataplaneType {
	if t == nil || t.DataplaneType == 0 {
		return 0
	}
	return t.DataplaneType
}

// GetIpv6Prefixes retrieves the value of the leaf Ipv6Prefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6Prefixes is set, it can
// safely use t.GetIpv6Prefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6Prefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) GetIpv6Prefixes() []string {
	if t == nil || t.Ipv6Prefixes == nil {
		return nil
	}
	return t.Ipv6Prefixes
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// GetMplsLabelBlocks retrieves the value of the leaf MplsLabelBlocks from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabelBlocks is set, it can
// safely use t.GetMplsLabelBlocks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabelBlocks == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) GetMplsLabelBlocks() []string {
	if t == nil || t.MplsLabelBlocks == nil {
		return nil
	}
	return t.MplsLabelBlocks
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srgbs/srgb/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State struct {
	ΛMetadata        []ygot.Annotation                               `path:"@" ygotAnnotation:"true"`
	DataplaneType    E_OpenconfigSegmentRoutingTypes_SrDataplaneType `path:"dataplane-type" module:"openconfig-network-instance"`
	ΛDataplaneType   []ygot.Annotation                               `path:"@dataplane-type" ygotAnnotation:"true"`
	Ipv6Prefixes     []string                                        `path:"ipv6-prefixes" module:"openconfig-network-instance"`
	ΛIpv6Prefixes    []ygot.Annotation                               `path:"@ipv6-prefixes" ygotAnnotation:"true"`
	LocalId          *string                                         `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId         []ygot.Annotation                               `path:"@local-id" ygotAnnotation:"true"`
	MplsLabelBlocks  []string                                        `path:"mpls-label-blocks" module:"openconfig-network-instance"`
	ΛMplsLabelBlocks []ygot.Annotation                               `path:"@mpls-label-blocks" ygotAnnotation:"true"`
	Size             *uint32                                         `path:"size" module:"openconfig-network-instance"`
	ΛSize            []ygot.Annotation                               `path:"@size" ygotAnnotation:"true"`
	Used             *uint32                                         `path:"used" module:"openconfig-network-instance"`
	ΛUsed            []ygot.Annotation                               `path:"@used" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) IsYANGGoStruct() {
}

// GetDataplaneType retrieves the value of the leaf DataplaneType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DataplaneType is set, it can
// safely use t.GetDataplaneType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DataplaneType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) GetDataplaneType() E_OpenconfigSegmentRoutingTypes_SrDataplaneType {
	if t == nil || t.DataplaneType == 0 {
		return 0
	}
	return t.DataplaneType
}

// GetIpv6Prefixes retrieves the value of the leaf Ipv6Prefixes from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6Prefixes is set, it can
// safely use t.GetIpv6Prefixes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6Prefixes == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) GetIpv6Prefixes() []string {
	if t == nil || t.Ipv6Prefixes == nil {
		return nil
	}
	return t.Ipv6Prefixes
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// GetMplsLabelBlocks retrieves the value of the leaf MplsLabelBlocks from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabelBlocks is set, it can
// safely use t.GetMplsLabelBlocks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabelBlocks == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) GetMplsLabelBlocks() []string {
	if t == nil || t.MplsLabelBlocks == nil {
		return nil
	}
	return t.MplsLabelBlocks
}

// GetSize retrieves the value of the leaf Size from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Size is set, it can
// safely use t.GetSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Size == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) GetSize() uint32 {
	if t == nil || t.Size == nil {
		return 0
	}
	return *t.Size
}

// GetUsed retrieves the value of the leaf Used from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Used is set, it can
// safely use t.GetUsed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Used == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) GetUsed() uint32 {
	if t == nil || t.Used == nil {
		return 0
	}
	return *t.Used
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srgbs_Srgb_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srlbs YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs struct {
	ΛMetadata []ygot.Annotation                                                                                `path:"@" ygotAnnotation:"true"`
	Srlb      map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb `path:"srlb" module:"openconfig-network-instance"`
	ΛSrlb     []ygot.Annotation                                                                                `path:"@srlb" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) IsYANGGoStruct() {
}

// NewSrlb creates a new entry in the Srlb list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) NewSrlb(LocalId string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Srlb == nil {
		t.Srlb = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Srlb[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Srlb", key)
	}

	t.Srlb[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb{
		LocalId: &LocalId,
	}

	return t.Srlb[key], nil
}

// RenameSrlb renames an entry in the list Srlb within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) RenameSrlb(oldK, newK string) error {
	if _, ok := t.Srlb[newK]; ok {
		return fmt.Errorf("key %v already exists in Srlb", newK)
	}

	e, ok := t.Srlb[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Srlb", oldK)
	}
	e.LocalId = &newK

	t.Srlb[newK] = e
	delete(t.Srlb, oldK)
	return nil
}

// GetOrCreateSrlbMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) GetOrCreateSrlbMap() map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb {
	if t.Srlb == nil {
		t.Srlb = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb)
	}
	return t.Srlb
}

// GetOrCreateSrlb retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) GetOrCreateSrlb(LocalId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb {

	key := LocalId

	if v, ok := t.Srlb[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSrlb(LocalId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSrlb got unexpected error: %v", err))
	}
	return v
}

// GetSrlb retrieves the value with the specified key from
// the Srlb map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) GetSrlb(LocalId string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb {

	if t == nil {
		return nil
	}

	key := LocalId

	if lm, ok := t.Srlb[key]; ok {
		return lm
	}
	return nil
}

// AppendSrlb appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb struct to the
// list Srlb of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) AppendSrlb(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) error {
	if v.LocalId == nil {
		return fmt.Errorf("invalid nil key received for LocalId")
	}

	key := *v.LocalId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Srlb == nil {
		t.Srlb = make(map[string]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb)
	}

	if _, ok := t.Srlb[key]; ok {
		return fmt.Errorf("duplicate key for list Srlb %v", key)
	}

	t.Srlb[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Srlb {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srlbs/srlb YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb struct {
	ΛMetadata []ygot.Annotation                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                                            `path:"@config" ygotAnnotation:"true"`
	LocalId   *string                                                                                      `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId  []ygot.Annotation                                                                            `path:"@local-id" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State  `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srlbs/srlb/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config struct {
	ΛMetadata       []ygot.Annotation                               `path:"@" ygotAnnotation:"true"`
	DataplaneType   E_OpenconfigSegmentRoutingTypes_SrDataplaneType `path:"dataplane-type" module:"openconfig-network-instance"`
	ΛDataplaneType  []ygot.Annotation                               `path:"@dataplane-type" ygotAnnotation:"true"`
	Ipv6Prefix      *string                                         `path:"ipv6-prefix" module:"openconfig-network-instance"`
	ΛIpv6Prefix     []ygot.Annotation                               `path:"@ipv6-prefix" ygotAnnotation:"true"`
	LocalId         *string                                         `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId        []ygot.Annotation                               `path:"@local-id" ygotAnnotation:"true"`
	MplsLabelBlock  *string                                         `path:"mpls-label-block" module:"openconfig-network-instance"`
	ΛMplsLabelBlock []ygot.Annotation                               `path:"@mpls-label-block" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) IsYANGGoStruct() {
}

// GetDataplaneType retrieves the value of the leaf DataplaneType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DataplaneType is set, it can
// safely use t.GetDataplaneType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DataplaneType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) GetDataplaneType() E_OpenconfigSegmentRoutingTypes_SrDataplaneType {
	if t == nil || t.DataplaneType == 0 {
		return 0
	}
	return t.DataplaneType
}

// GetIpv6Prefix retrieves the value of the leaf Ipv6Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6Prefix is set, it can
// safely use t.GetIpv6Prefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) GetIpv6Prefix() string {
	if t == nil || t.Ipv6Prefix == nil {
		return ""
	}
	return *t.Ipv6Prefix
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// GetMplsLabelBlock retrieves the value of the leaf MplsLabelBlock from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabelBlock is set, it can
// safely use t.GetMplsLabelBlock() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabelBlock == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) GetMplsLabelBlock() string {
	if t == nil || t.MplsLabelBlock == nil {
		return ""
	}
	return *t.MplsLabelBlock
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/srlbs/srlb/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State struct {
	ΛMetadata       []ygot.Annotation                               `path:"@" ygotAnnotation:"true"`
	DataplaneType   E_OpenconfigSegmentRoutingTypes_SrDataplaneType `path:"dataplane-type" module:"openconfig-network-instance"`
	ΛDataplaneType  []ygot.Annotation                               `path:"@dataplane-type" ygotAnnotation:"true"`
	Ipv6Prefix      *string                                         `path:"ipv6-prefix" module:"openconfig-network-instance"`
	ΛIpv6Prefix     []ygot.Annotation                               `path:"@ipv6-prefix" ygotAnnotation:"true"`
	LocalId         *string                                         `path:"local-id" module:"openconfig-network-instance"`
	ΛLocalId        []ygot.Annotation                               `path:"@local-id" ygotAnnotation:"true"`
	MplsLabelBlock  *string                                         `path:"mpls-label-block" module:"openconfig-network-instance"`
	ΛMplsLabelBlock []ygot.Annotation                               `path:"@mpls-label-block" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) IsYANGGoStruct() {
}

// GetDataplaneType retrieves the value of the leaf DataplaneType from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DataplaneType is set, it can
// safely use t.GetDataplaneType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DataplaneType == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) GetDataplaneType() E_OpenconfigSegmentRoutingTypes_SrDataplaneType {
	if t == nil || t.DataplaneType == 0 {
		return 0
	}
	return t.DataplaneType
}

// GetIpv6Prefix retrieves the value of the leaf Ipv6Prefix from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6Prefix is set, it can
// safely use t.GetIpv6Prefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6Prefix == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) GetIpv6Prefix() string {
	if t == nil || t.Ipv6Prefix == nil {
		return ""
	}
	return *t.Ipv6Prefix
}

// GetLocalId retrieves the value of the leaf LocalId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LocalId is set, it can
// safely use t.GetLocalId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LocalId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) GetLocalId() string {
	if t == nil || t.LocalId == nil {
		return ""
	}
	return *t.LocalId
}

// GetMplsLabelBlock retrieves the value of the leaf MplsLabelBlock from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsLabelBlock is set, it can
// safely use t.GetMplsLabelBlock() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsLabelBlock == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) GetMplsLabelBlock() string {
	if t == nil || t.MplsLabelBlock == nil {
		return ""
	}
	return *t.MplsLabelBlock
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_Srlbs_Srlb_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	TePolicy  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy `path:"te-policy" module:"openconfig-network-instance"`
	ΛTePolicy []ygot.Annotation                                                                                                                                                                                    `path:"@te-policy" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key represents the key for list TePolicy of element /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key struct {
	Color    uint32 `path:"color"`
	Endpoint string `path:"endpoint"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"color":    t.Color,
		"endpoint": t.Endpoint,
	}, nil
}

// NewTePolicy creates a new entry in the TePolicy list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) NewTePolicy(Color uint32, Endpoint string) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TePolicy == nil {
		t.TePolicy = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key{
		Color:    Color,
		Endpoint: Endpoint,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TePolicy[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TePolicy", key)
	}

	t.TePolicy[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy{
		Color:    &Color,
		Endpoint: &Endpoint,
	}

	return t.TePolicy[key], nil
}

// RenameTePolicy renames an entry in the list TePolicy within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) RenameTePolicy(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key) error {
	if _, ok := t.TePolicy[newK]; ok {
		return fmt.Errorf("key %v already exists in TePolicy", newK)
	}

	e, ok := t.TePolicy[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TePolicy", oldK)
	}
	e.Color = &newK.Color
	e.Endpoint = &newK.Endpoint

	t.TePolicy[newK] = e
	delete(t.TePolicy, oldK)
	return nil
}

// GetOrCreateTePolicyMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) GetOrCreateTePolicyMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy {
	if t.TePolicy == nil {
		t.TePolicy = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy)
	}
	return t.TePolicy
}

// GetOrCreateTePolicy retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) GetOrCreateTePolicy(Color uint32, Endpoint string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key{
		Color:    Color,
		Endpoint: Endpoint,
	}

	if v, ok := t.TePolicy[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTePolicy(Color, Endpoint)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTePolicy got unexpected error: %v", err))
	}
	return v
}

// GetTePolicy retrieves the value with the specified key from
// the TePolicy map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) GetTePolicy(Color uint32, Endpoint string) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key{
		Color:    Color,
		Endpoint: Endpoint,
	}

	if lm, ok := t.TePolicy[key]; ok {
		return lm
	}
	return nil
}

// AppendTePolicy appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy struct to the
// list TePolicy of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) AppendTePolicy(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) error {
	if v.Color == nil {
		return fmt.Errorf("invalid nil key for Color")
	}

	if v.Endpoint == nil {
		return fmt.Errorf("invalid nil key for Endpoint")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key{
		Color:    *v.Color,
		Endpoint: *v.Endpoint,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TePolicy == nil {
		t.TePolicy = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy)
	}

	if _, ok := t.TePolicy[key]; ok {
		return fmt.Errorf("duplicate key for list TePolicy %v", key)
	}

	t.TePolicy[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TePolicy {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy struct {
	ΛMetadata       []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	CandidatePaths  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths `path:"candidate-paths" module:"openconfig-network-instance"`
	ΛCandidatePaths []ygot.Annotation                                                                                             `path:"@candidate-paths" ygotAnnotation:"true"`
	Color           *uint32                                                                                                       `path:"color" module:"openconfig-network-instance"`
	ΛColor          []ygot.Annotation                                                                                             `path:"@color" ygotAnnotation:"true"`
	Endpoint        *string                                                                                                       `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint       []ygot.Annotation                                                                                             `path:"@endpoint" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State          `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) IsYANGGoStruct() {
}

// GetOrCreateCandidatePaths retrieves the value of the CandidatePaths field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) GetOrCreateCandidatePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths {
	if t.CandidatePaths != nil {
		return t.CandidatePaths
	}
	t.CandidatePaths = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths{}
	return t.CandidatePaths
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State{}
	return t.State
}

// GetCandidatePaths returns the value of the CandidatePaths struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy. If the receiver or the field CandidatePaths is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) GetCandidatePaths() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths {
	if t != nil && t.CandidatePaths != nil {
		return t.CandidatePaths
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.CandidatePaths.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Color == nil {
		return nil, fmt.Errorf("nil value for key Color")
	}

	if t.Endpoint == nil {
		return nil, fmt.Errorf("nil value for key Endpoint")
	}

	return map[string]interface{}{
		"color":    *t.Color,
		"endpoint": *t.Endpoint,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	CandidatePath  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath `path:"candidate-path" module:"openconfig-network-instance"`
	ΛCandidatePath []ygot.Annotation                                                                                                                                                                                                                                              `path:"@candidate-path" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key represents the key for list CandidatePath of element /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key struct {
	ProtocolOrigin E_OpenconfigSegmentRoutingTypes_SrteProtocolType `path:"protocol-origin"`
	OriginatorAsn  uint32                                           `path:"originator-asn"`
	OriginatorAddr string                                           `path:"originator-addr"`
	Discriminator  uint32                                           `path:"discriminator"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"protocol-origin": t.ProtocolOrigin,
		"originator-asn":  t.OriginatorAsn,
		"originator-addr": t.OriginatorAddr,
		"discriminator":   t.Discriminator,
	}, nil
}

// NewCandidatePath creates a new entry in the CandidatePath list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) NewCandidatePath(ProtocolOrigin E_OpenconfigSegmentRoutingTypes_SrteProtocolType, OriginatorAsn uint32, OriginatorAddr string, Discriminator uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CandidatePath == nil {
		t.CandidatePath = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key{
		ProtocolOrigin: ProtocolOrigin,
		OriginatorAsn:  OriginatorAsn,
		OriginatorAddr: OriginatorAddr,
		Discriminator:  Discriminator,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CandidatePath[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CandidatePath", key)
	}

	t.CandidatePath[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath{
		ProtocolOrigin: ProtocolOrigin,
		OriginatorAsn:  &OriginatorAsn,
		OriginatorAddr: &OriginatorAddr,
		Discriminator:  &Discriminator,
	}

	return t.CandidatePath[key], nil
}

// RenameCandidatePath renames an entry in the list CandidatePath within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) RenameCandidatePath(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key) error {
	if _, ok := t.CandidatePath[newK]; ok {
		return fmt.Errorf("key %v already exists in CandidatePath", newK)
	}

	e, ok := t.CandidatePath[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in CandidatePath", oldK)
	}
	e.ProtocolOrigin = newK.ProtocolOrigin
	e.OriginatorAsn = &newK.OriginatorAsn
	e.OriginatorAddr = &newK.OriginatorAddr
	e.Discriminator = &newK.Discriminator

	t.CandidatePath[newK] = e
	delete(t.CandidatePath, oldK)
	return nil
}

// GetOrCreateCandidatePathMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) GetOrCreateCandidatePathMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath {
	if t.CandidatePath == nil {
		t.CandidatePath = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath)
	}
	return t.CandidatePath
}

// GetOrCreateCandidatePath retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) GetOrCreateCandidatePath(ProtocolOrigin E_OpenconfigSegmentRoutingTypes_SrteProtocolType, OriginatorAsn uint32, OriginatorAddr string, Discriminator uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key{
		ProtocolOrigin: ProtocolOrigin,
		OriginatorAsn:  OriginatorAsn,
		OriginatorAddr: OriginatorAddr,
		Discriminator:  Discriminator,
	}

	if v, ok := t.CandidatePath[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewCandidatePath(ProtocolOrigin, OriginatorAsn, OriginatorAddr, Discriminator)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateCandidatePath got unexpected error: %v", err))
	}
	return v
}

// GetCandidatePath retrieves the value with the specified key from
// the CandidatePath map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) GetCandidatePath(ProtocolOrigin E_OpenconfigSegmentRoutingTypes_SrteProtocolType, OriginatorAsn uint32, OriginatorAddr string, Discriminator uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key{
		ProtocolOrigin: ProtocolOrigin,
		OriginatorAsn:  OriginatorAsn,
		OriginatorAddr: OriginatorAddr,
		Discriminator:  Discriminator,
	}

	if lm, ok := t.CandidatePath[key]; ok {
		return lm
	}
	return nil
}

// AppendCandidatePath appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath struct to the
// list CandidatePath of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) AppendCandidatePath(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) error {
	if v.OriginatorAsn == nil {
		return fmt.Errorf("invalid nil key for OriginatorAsn")
	}

	if v.OriginatorAddr == nil {
		return fmt.Errorf("invalid nil key for OriginatorAddr")
	}

	if v.Discriminator == nil {
		return fmt.Errorf("invalid nil key for Discriminator")
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key{
		ProtocolOrigin: v.ProtocolOrigin,
		OriginatorAsn:  *v.OriginatorAsn,
		OriginatorAddr: *v.OriginatorAddr,
		Discriminator:  *v.Discriminator,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CandidatePath == nil {
		t.CandidatePath = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath)
	}

	if _, ok := t.CandidatePath[key]; ok {
		return fmt.Errorf("duplicate key for list CandidatePath %v", key)
	}

	t.CandidatePath[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.CandidatePath {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath struct {
	ΛMetadata       []ygot.Annotation                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Discriminator   *uint32                                                                                                                                  `path:"discriminator" module:"openconfig-network-instance"`
	ΛDiscriminator  []ygot.Annotation                                                                                                                        `path:"@discriminator" ygotAnnotation:"true"`
	OriginatorAddr  *string                                                                                                                                  `path:"originator-addr" module:"openconfig-network-instance"`
	ΛOriginatorAddr []ygot.Annotation                                                                                                                        `path:"@originator-addr" ygotAnnotation:"true"`
	OriginatorAsn   *uint32                                                                                                                                  `path:"originator-asn" module:"openconfig-network-instance"`
	ΛOriginatorAsn  []ygot.Annotation                                                                                                                        `path:"@originator-asn" ygotAnnotation:"true"`
	ProtocolOrigin  E_OpenconfigSegmentRoutingTypes_SrteProtocolType                                                                                         `path:"protocol-origin" module:"openconfig-network-instance"`
	ΛProtocolOrigin []ygot.Annotation                                                                                                                        `path:"@protocol-origin" ygotAnnotation:"true"`
	SegmentLists    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists `path:"segment-lists" module:"openconfig-network-instance"`
	ΛSegmentLists   []ygot.Annotation                                                                                                                        `path:"@segment-lists" ygotAnnotation:"true"`
	State           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State        `path:"state" module:"openconfig-network-instance"`
	ΛState          []ygot.Annotation                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) IsYANGGoStruct() {
}

// GetOrCreateSegmentLists retrieves the value of the SegmentLists field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetOrCreateSegmentLists() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists {
	if t.SegmentLists != nil {
		return t.SegmentLists
	}
	t.SegmentLists = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists{}
	return t.SegmentLists
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State{}
	return t.State
}

// GetSegmentLists returns the value of the SegmentLists struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath. If the receiver or the field SegmentLists is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetSegmentLists() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists {
	if t != nil && t.SegmentLists != nil {
		return t.SegmentLists
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetDiscriminator retrieves the value of the leaf Discriminator from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Discriminator is set, it can
// safely use t.GetDiscriminator() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Discriminator == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetDiscriminator() uint32 {
	if t == nil || t.Discriminator == nil {
		return 0
	}
	return *t.Discriminator
}

// GetOriginatorAddr retrieves the value of the leaf OriginatorAddr from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorAddr is set, it can
// safely use t.GetOriginatorAddr() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorAddr == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetOriginatorAddr() string {
	if t == nil || t.OriginatorAddr == nil {
		return ""
	}
	return *t.OriginatorAddr
}

// GetOriginatorAsn retrieves the value of the leaf OriginatorAsn from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorAsn is set, it can
// safely use t.GetOriginatorAsn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorAsn == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetOriginatorAsn() uint32 {
	if t == nil || t.OriginatorAsn == nil {
		return 0
	}
	return *t.OriginatorAsn
}

// GetProtocolOrigin retrieves the value of the leaf ProtocolOrigin from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtocolOrigin is set, it can
// safely use t.GetProtocolOrigin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtocolOrigin == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) GetProtocolOrigin() E_OpenconfigSegmentRoutingTypes_SrteProtocolType {
	if t == nil || t.ProtocolOrigin == 0 {
		return 0
	}
	return t.ProtocolOrigin
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.SegmentLists.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Discriminator == nil {
		return nil, fmt.Errorf("nil value for key Discriminator")
	}

	if t.OriginatorAddr == nil {
		return nil, fmt.Errorf("nil value for key OriginatorAddr")
	}

	if t.OriginatorAsn == nil {
		return nil, fmt.Errorf("nil value for key OriginatorAsn")
	}

	return map[string]interface{}{
		"discriminator":   *t.Discriminator,
		"originator-addr": *t.OriginatorAddr,
		"originator-asn":  *t.OriginatorAsn,
		"protocol-origin": t.ProtocolOrigin,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists struct {
	ΛMetadata    []ygot.Annotation                                                                                                                                               `path:"@" ygotAnnotation:"true"`
	SegmentList  map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList `path:"segment-list" module:"openconfig-network-instance"`
	ΛSegmentList []ygot.Annotation                                                                                                                                               `path:"@segment-list" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) IsYANGGoStruct() {
}

// NewSegmentList creates a new entry in the SegmentList list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) NewSegmentList(Id uint32) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SegmentList == nil {
		t.SegmentList = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SegmentList[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SegmentList", key)
	}

	t.SegmentList[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList{
		Id: &Id,
	}

	return t.SegmentList[key], nil
}

// RenameSegmentList renames an entry in the list SegmentList within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) RenameSegmentList(oldK, newK uint32) error {
	if _, ok := t.SegmentList[newK]; ok {
		return fmt.Errorf("key %v already exists in SegmentList", newK)
	}

	e, ok := t.SegmentList[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in SegmentList", oldK)
	}
	e.Id = &newK

	t.SegmentList[newK] = e
	delete(t.SegmentList, oldK)
	return nil
}

// GetOrCreateSegmentListMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) GetOrCreateSegmentListMap() map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList {
	if t.SegmentList == nil {
		t.SegmentList = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList)
	}
	return t.SegmentList
}

// GetOrCreateSegmentList retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) GetOrCreateSegmentList(Id uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList {

	key := Id

	if v, ok := t.SegmentList[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSegmentList(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSegmentList got unexpected error: %v", err))
	}
	return v
}

// GetSegmentList retrieves the value with the specified key from
// the SegmentList map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) GetSegmentList(Id uint32) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.SegmentList[key]; ok {
		return lm
	}
	return nil
}

// AppendSegmentList appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList struct to the
// list SegmentList of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) AppendSegmentList(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SegmentList == nil {
		t.SegmentList = make(map[uint32]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList)
	}

	if _, ok := t.SegmentList[key]; ok {
		return fmt.Errorf("duplicate key for list SegmentList %v", key)
	}

	t.SegmentList[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.SegmentList {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList struct {
	ΛMetadata []ygot.Annotation                                                                                                                                             `path:"@" ygotAnnotation:"true"`
	Id        *uint32                                                                                                                                                       `path:"id" module:"openconfig-network-instance"`
	ΛId       []ygot.Annotation                                                                                                                                             `path:"@id" ygotAnnotation:"true"`
	NextHops  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops `path:"next-hops" module:"openconfig-network-instance"`
	ΛNextHops []ygot.Annotation                                                                                                                                             `path:"@next-hops" ygotAnnotation:"true"`
	Sids      *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids     `path:"sids" module:"openconfig-network-instance"`
	ΛSids     []ygot.Annotation                                                                                                                                             `path:"@sids" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State    `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) IsYANGGoStruct() {
}

// GetOrCreateNextHops retrieves the value of the NextHops field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) GetOrCreateNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops {
	if t.NextHops != nil {
		return t.NextHops
	}
	t.NextHops = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops{}
	return t.NextHops
}

// GetOrCreateSids retrieves the value of the Sids field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) GetOrCreateSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids {
	if t.Sids != nil {
		return t.Sids
	}
	t.Sids = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids{}
	return t.Sids
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State{}
	return t.State
}

// GetNextHops returns the value of the NextHops struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList. If the receiver or the field NextHops is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) GetNextHops() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops {
	if t != nil && t.NextHops != nil {
		return t.NextHops
	}
	return nil
}

// GetSids returns the value of the Sids struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList. If the receiver or the field Sids is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) GetSids() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids {
	if t != nil && t.Sids != nil {
		return t.Sids
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) GetId() uint32 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.NextHops.PopulateDefaults()
	t.Sids.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	NextHop   map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop `path:"next-hop" module:"openconfig-network-instance"`
	ΛNextHop  []ygot.Annotation                                                                                                                                                                `path:"@next-hop" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) IsYANGGoStruct() {
}

// NewNextHop creates a new entry in the NextHop list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) NewNextHop(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NextHop[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NextHop", key)
	}

	t.NextHop[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop{
		Index: &Index,
	}

	return t.NextHop[key], nil
}

// RenameNextHop renames an entry in the list NextHop within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) RenameNextHop(oldK, newK uint64) error {
	if _, ok := t.NextHop[newK]; ok {
		return fmt.Errorf("key %v already exists in NextHop", newK)
	}

	e, ok := t.NextHop[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NextHop", oldK)
	}
	e.Index = &newK

	t.NextHop[newK] = e
	delete(t.NextHop, oldK)
	return nil
}

// GetOrCreateNextHopMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) GetOrCreateNextHopMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop {
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop)
	}
	return t.NextHop
}

// GetOrCreateNextHop retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) GetOrCreateNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop {

	key := Index

	if v, ok := t.NextHop[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNextHop(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNextHop got unexpected error: %v", err))
	}
	return v
}

// GetNextHop retrieves the value with the specified key from
// the NextHop map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) GetNextHop(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.NextHop[key]; ok {
		return lm
	}
	return nil
}

// AppendNextHop appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop struct to the
// list NextHop of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) AppendNextHop(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NextHop == nil {
		t.NextHop = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop)
	}

	if _, ok := t.NextHop[key]; ok {
		return fmt.Errorf("duplicate key for list NextHop %v", key)
	}

	t.NextHop[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NextHop {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop struct {
	ΛMetadata     []ygot.Annotation                                                                                                                                                                  `path:"@" ygotAnnotation:"true"`
	Index         *uint64                                                                                                                                                                            `path:"index" module:"openconfig-network-instance"`
	ΛIndex        []ygot.Annotation                                                                                                                                                                  `path:"@index" ygotAnnotation:"true"`
	InterfaceRef  *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef `path:"interface-ref" module:"openconfig-network-instance"`
	ΛInterfaceRef []ygot.Annotation                                                                                                                                                                  `path:"@interface-ref" ygotAnnotation:"true"`
	State         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State        `path:"state" module:"openconfig-network-instance"`
	ΛState        []ygot.Annotation                                                                                                                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) IsYANGGoStruct() {
}

// GetOrCreateInterfaceRef retrieves the value of the InterfaceRef field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) GetOrCreateInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef {
	if t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	t.InterfaceRef = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef{}
	return t.InterfaceRef
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State{}
	return t.State
}

// GetInterfaceRef returns the value of the InterfaceRef struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop. If the receiver or the field InterfaceRef is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) GetInterfaceRef() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef {
	if t != nil && t.InterfaceRef != nil {
		return t.InterfaceRef
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.InterfaceRef.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/interface-ref YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/interface-ref/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-network-instance"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_InterfaceRef_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State struct {
	ΛMetadata             []ygot.Annotation                                                                                                                                                                                       `path:"@" ygotAnnotation:"true"`
	Counters              *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters                    `path:"counters" module:"openconfig-network-instance"`
	ΛCounters             []ygot.Annotation                                                                                                                                                                                       `path:"@counters" ygotAnnotation:"true"`
	DecapsulateHeader     E_OpenconfigAftTypes_EncapsulationHeaderType                                                                                                                                                            `path:"decapsulate-header" module:"openconfig-network-instance"`
	ΛDecapsulateHeader    []ygot.Annotation                                                                                                                                                                                       `path:"@decapsulate-header" ygotAnnotation:"true"`
	EncapsulateHeader     E_OpenconfigAftTypes_EncapsulationHeaderType                                                                                                                                                            `path:"encapsulate-header" module:"openconfig-network-instance"`
	ΛEncapsulateHeader    []ygot.Annotation                                                                                                                                                                                       `path:"@encapsulate-header" ygotAnnotation:"true"`
	Index                 *uint64                                                                                                                                                                                                 `path:"index" module:"openconfig-network-instance"`
	ΛIndex                []ygot.Annotation                                                                                                                                                                                       `path:"@index" ygotAnnotation:"true"`
	IpAddress             *string                                                                                                                                                                                                 `path:"ip-address" module:"openconfig-network-instance"`
	ΛIpAddress            []ygot.Annotation                                                                                                                                                                                       `path:"@ip-address" ygotAnnotation:"true"`
	MacAddress            *string                                                                                                                                                                                                 `path:"mac-address" module:"openconfig-network-instance"`
	ΛMacAddress           []ygot.Annotation                                                                                                                                                                                       `path:"@mac-address" ygotAnnotation:"true"`
	OriginProtocol        E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                                                                                                                                           `path:"origin-protocol" module:"openconfig-network-instance"`
	ΛOriginProtocol       []ygot.Annotation                                                                                                                                                                                       `path:"@origin-protocol" ygotAnnotation:"true"`
	PopTopLabel           *bool                                                                                                                                                                                                   `path:"pop-top-label" module:"openconfig-network-instance"`
	ΛPopTopLabel          []ygot.Annotation                                                                                                                                                                                       `path:"@pop-top-label" ygotAnnotation:"true"`
	ProgrammedIndex       *uint64                                                                                                                                                                                                 `path:"programmed-index" module:"openconfig-network-instance"`
	ΛProgrammedIndex      []ygot.Annotation                                                                                                                                                                                       `path:"@programmed-index" ygotAnnotation:"true"`
	PushedMplsLabelStack  []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union `path:"pushed-mpls-label-stack" module:"openconfig-network-instance"`
	ΛPushedMplsLabelStack []ygot.Annotation                                                                                                                                                                                       `path:"@pushed-mpls-label-stack" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetDecapsulateHeader retrieves the value of the leaf DecapsulateHeader from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DecapsulateHeader is set, it can
// safely use t.GetDecapsulateHeader() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DecapsulateHeader == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetDecapsulateHeader() E_OpenconfigAftTypes_EncapsulationHeaderType {
	if t == nil || t.DecapsulateHeader == 0 {
		return 0
	}
	return t.DecapsulateHeader
}

// GetEncapsulateHeader retrieves the value of the leaf EncapsulateHeader from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EncapsulateHeader is set, it can
// safely use t.GetEncapsulateHeader() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EncapsulateHeader == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetEncapsulateHeader() E_OpenconfigAftTypes_EncapsulationHeaderType {
	if t == nil || t.EncapsulateHeader == 0 {
		return 0
	}
	return t.EncapsulateHeader
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetIpAddress retrieves the value of the leaf IpAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpAddress is set, it can
// safely use t.GetIpAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetIpAddress() string {
	if t == nil || t.IpAddress == nil {
		return ""
	}
	return *t.IpAddress
}

// GetMacAddress retrieves the value of the leaf MacAddress from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MacAddress is set, it can
// safely use t.GetMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetMacAddress() string {
	if t == nil || t.MacAddress == nil {
		return ""
	}
	return *t.MacAddress
}

// GetOriginProtocol retrieves the value of the leaf OriginProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginProtocol is set, it can
// safely use t.GetOriginProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetOriginProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.OriginProtocol == 0 {
		return 0
	}
	return t.OriginProtocol
}

// GetPopTopLabel retrieves the value of the leaf PopTopLabel from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PopTopLabel is set, it can
// safely use t.GetPopTopLabel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PopTopLabel == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetPopTopLabel() bool {
	if t == nil || t.PopTopLabel == nil {
		return false
	}
	return *t.PopTopLabel
}

// GetProgrammedIndex retrieves the value of the leaf ProgrammedIndex from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProgrammedIndex is set, it can
// safely use t.GetProgrammedIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProgrammedIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetProgrammedIndex() uint64 {
	if t == nil || t.ProgrammedIndex == nil {
		return 0
	}
	return *t.ProgrammedIndex
}

// GetPushedMplsLabelStack retrieves the value of the leaf PushedMplsLabelStack from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PushedMplsLabelStack is set, it can
// safely use t.GetPushedMplsLabelStack() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PushedMplsLabelStack == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) GetPushedMplsLabelStack() []OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union {
	if t == nil || t.PushedMplsLabelStack == nil {
		return nil
	}
	return t.PushedMplsLabelStack
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PopTopLabel == nil {
		var v bool = false
		t.PopTopLabel = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/state/pushed-mpls-label-stack within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_PushedMplsLabelStack_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OutLabeledOctets  *uint64           `path:"out-labeled-octets" module:"openconfig-network-instance"`
	ΛOutLabeledOctets []ygot.Annotation `path:"@out-labeled-octets" ygotAnnotation:"true"`
	OutLabeledPkts    *uint64           `path:"out-labeled-pkts" module:"openconfig-network-instance"`
	ΛOutLabeledPkts   []ygot.Annotation `path:"@out-labeled-pkts" ygotAnnotation:"true"`
	OutOctets         *uint64           `path:"out-octets" module:"openconfig-network-instance"`
	ΛOutOctets        []ygot.Annotation `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts           *uint64           `path:"out-pkts" module:"openconfig-network-instance"`
	ΛOutPkts          []ygot.Annotation `path:"@out-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) IsYANGGoStruct() {
}

// GetOutLabeledOctets retrieves the value of the leaf OutLabeledOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutLabeledOctets is set, it can
// safely use t.GetOutLabeledOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutLabeledOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) GetOutLabeledOctets() uint64 {
	if t == nil || t.OutLabeledOctets == nil {
		return 0
	}
	return *t.OutLabeledOctets
}

// GetOutLabeledPkts retrieves the value of the leaf OutLabeledPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutLabeledPkts is set, it can
// safely use t.GetOutLabeledPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutLabeledPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) GetOutLabeledPkts() uint64 {
	if t == nil || t.OutLabeledPkts == nil {
		return 0
	}
	return *t.OutLabeledPkts
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_NextHops_NextHop_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/sids YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Sid       map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid `path:"sid" module:"openconfig-network-instance"`
	ΛSid      []ygot.Annotation                                                                                                                                                        `path:"@sid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) IsYANGGoStruct() {
}

// NewSid creates a new entry in the Sid list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) NewSid(Index uint64) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Sid == nil {
		t.Sid = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Sid[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Sid", key)
	}

	t.Sid[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid{
		Index: &Index,
	}

	return t.Sid[key], nil
}

// RenameSid renames an entry in the list Sid within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) RenameSid(oldK, newK uint64) error {
	if _, ok := t.Sid[newK]; ok {
		return fmt.Errorf("key %v already exists in Sid", newK)
	}

	e, ok := t.Sid[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Sid", oldK)
	}
	e.Index = &newK

	t.Sid[newK] = e
	delete(t.Sid, oldK)
	return nil
}

// GetOrCreateSidMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) GetOrCreateSidMap() map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid {
	if t.Sid == nil {
		t.Sid = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid)
	}
	return t.Sid
}

// GetOrCreateSid retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) GetOrCreateSid(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid {

	key := Index

	if v, ok := t.Sid[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSid(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSid got unexpected error: %v", err))
	}
	return v
}

// GetSid retrieves the value with the specified key from
// the Sid map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) GetSid(Index uint64) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Sid[key]; ok {
		return lm
	}
	return nil
}

// AppendSid appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid struct to the
// list Sid of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) AppendSid(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Sid == nil {
		t.Sid = make(map[uint64]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid)
	}

	if _, ok := t.Sid[key]; ok {
		return fmt.Errorf("duplicate key for list Sid %v", key)
	}

	t.Sid[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Sid {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/sids/sid YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                                                                             `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                                                   `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/sids/sid/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                              `path:"@" ygotAnnotation:"true"`
	Index     *uint64                                                                                                                                                                        `path:"index" module:"openconfig-network-instance"`
	ΛIndex    []ygot.Annotation                                                                                                                                                              `path:"@index" ygotAnnotation:"true"`
	MplsTc    *uint8                                                                                                                                                                         `path:"mpls-tc" module:"openconfig-network-instance"`
	ΛMplsTc   []ygot.Annotation                                                                                                                                                              `path:"@mpls-tc" ygotAnnotation:"true"`
	MplsTtl   *uint8                                                                                                                                                                         `path:"mpls-ttl" module:"openconfig-network-instance"`
	ΛMplsTtl  []ygot.Annotation                                                                                                                                                              `path:"@mpls-ttl" ygotAnnotation:"true"`
	Value     OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union `path:"value" module:"openconfig-network-instance"`
	ΛValue    []ygot.Annotation                                                                                                                                                              `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) IsYANGGoStruct() {
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) GetIndex() uint64 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetMplsTc retrieves the value of the leaf MplsTc from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsTc is set, it can
// safely use t.GetMplsTc() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsTc == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) GetMplsTc() uint8 {
	if t == nil || t.MplsTc == nil {
		return 0
	}
	return *t.MplsTc
}

// GetMplsTtl retrieves the value of the leaf MplsTtl from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MplsTtl is set, it can
// safely use t.GetMplsTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MplsTtl == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) GetMplsTtl() uint8 {
	if t == nil || t.MplsTtl == nil {
		return 0
	}
	return *t.MplsTtl
}

// GetValue retrieves the value of the leaf Value from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) GetValue() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MplsTc == nil {
		var v uint8 = 0
		t.MplsTc = &v
	}
	if t.MplsTtl == nil {
		var v uint8 = 0
		t.MplsTtl = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/sids/sid/state/value within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_Sids_Sid_State_Value_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State struct {
	ΛMetadata      []ygot.Annotation                                                                                                                                                   `path:"@" ygotAnnotation:"true"`
	Counters       *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters `path:"counters" module:"openconfig-network-instance"`
	ΛCounters      []ygot.Annotation                                                                                                                                                   `path:"@counters" ygotAnnotation:"true"`
	Id             *uint32                                                                                                                                                             `path:"id" module:"openconfig-network-instance"`
	ΛId            []ygot.Annotation                                                                                                                                                   `path:"@id" ygotAnnotation:"true"`
	InvalidReason  E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason                                                                                                                 `path:"invalid-reason" module:"openconfig-network-instance"`
	ΛInvalidReason []ygot.Annotation                                                                                                                                                   `path:"@invalid-reason" ygotAnnotation:"true"`
	Valid          *bool                                                                                                                                                               `path:"valid" module:"openconfig-network-instance"`
	ΛValid         []ygot.Annotation                                                                                                                                                   `path:"@valid" ygotAnnotation:"true"`
	Weight         *uint32                                                                                                                                                             `path:"weight" module:"openconfig-network-instance"`
	ΛWeight        []ygot.Annotation                                                                                                                                                   `path:"@weight" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) GetId() uint32 {
	if t == nil || t.Id == nil {
		return 0
	}
	return *t.Id
}

// GetInvalidReason retrieves the value of the leaf InvalidReason from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InvalidReason is set, it can
// safely use t.GetInvalidReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InvalidReason == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) GetInvalidReason() E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason {
	if t == nil || t.InvalidReason == 0 {
		return 0
	}
	return t.InvalidReason
}

// GetValid retrieves the value of the leaf Valid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Valid is set, it can
// safely use t.GetValid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Valid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) GetValid() bool {
	if t == nil || t.Valid == nil {
		return false
	}
	return *t.Valid
}

// GetWeight retrieves the value of the leaf Weight from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Weight is set, it can
// safely use t.GetWeight() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Weight == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) GetWeight() uint32 {
	if t == nil || t.Weight == nil {
		return 0
	}
	return *t.Weight
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	OutLabeledOctets  *uint64           `path:"out-labeled-octets" module:"openconfig-network-instance"`
	ΛOutLabeledOctets []ygot.Annotation `path:"@out-labeled-octets" ygotAnnotation:"true"`
	OutLabeledPkts    *uint64           `path:"out-labeled-pkts" module:"openconfig-network-instance"`
	ΛOutLabeledPkts   []ygot.Annotation `path:"@out-labeled-pkts" ygotAnnotation:"true"`
	OutOctets         *uint64           `path:"out-octets" module:"openconfig-network-instance"`
	ΛOutOctets        []ygot.Annotation `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts           *uint64           `path:"out-pkts" module:"openconfig-network-instance"`
	ΛOutPkts          []ygot.Annotation `path:"@out-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) IsYANGGoStruct() {
}

// GetOutLabeledOctets retrieves the value of the leaf OutLabeledOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutLabeledOctets is set, it can
// safely use t.GetOutLabeledOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutLabeledOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) GetOutLabeledOctets() uint64 {
	if t == nil || t.OutLabeledOctets == nil {
		return 0
	}
	return *t.OutLabeledOctets
}

// GetOutLabeledPkts retrieves the value of the leaf OutLabeledPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutLabeledPkts is set, it can
// safely use t.GetOutLabeledPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutLabeledPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) GetOutLabeledPkts() uint64 {
	if t == nil || t.OutLabeledPkts == nil {
		return 0
	}
	return *t.OutLabeledPkts
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_SegmentLists_SegmentList_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State struct {
	ΛMetadata          []ygot.Annotation                                `path:"@" ygotAnnotation:"true"`
	Active             *bool                                            `path:"active" module:"openconfig-network-instance"`
	ΛActive            []ygot.Annotation                                `path:"@active" ygotAnnotation:"true"`
	ActiveSince        *uint64                                          `path:"active-since" module:"openconfig-network-instance"`
	ΛActiveSince       []ygot.Annotation                                `path:"@active-since" ygotAnnotation:"true"`
	ActiveTransitions  *uint64                                          `path:"active-transitions" module:"openconfig-network-instance"`
	ΛActiveTransitions []ygot.Annotation                                `path:"@active-transitions" ygotAnnotation:"true"`
	Discriminator      *uint32                                          `path:"discriminator" module:"openconfig-network-instance"`
	ΛDiscriminator     []ygot.Annotation                                `path:"@discriminator" ygotAnnotation:"true"`
	Enlp               E_OpenconfigSegmentRoutingTypes_EnlpType         `path:"enlp" module:"openconfig-network-instance"`
	ΛEnlp              []ygot.Annotation                                `path:"@enlp" ygotAnnotation:"true"`
	Name               *string                                          `path:"name" module:"openconfig-network-instance"`
	ΛName              []ygot.Annotation                                `path:"@name" ygotAnnotation:"true"`
	OriginatorAddr     *string                                          `path:"originator-addr" module:"openconfig-network-instance"`
	ΛOriginatorAddr    []ygot.Annotation                                `path:"@originator-addr" ygotAnnotation:"true"`
	OriginatorAsn      *uint32                                          `path:"originator-asn" module:"openconfig-network-instance"`
	ΛOriginatorAsn     []ygot.Annotation                                `path:"@originator-asn" ygotAnnotation:"true"`
	Preference         *uint32                                          `path:"preference" module:"openconfig-network-instance"`
	ΛPreference        []ygot.Annotation                                `path:"@preference" ygotAnnotation:"true"`
	ProtocolOrigin     E_OpenconfigSegmentRoutingTypes_SrteProtocolType `path:"protocol-origin" module:"openconfig-network-instance"`
	ΛProtocolOrigin    []ygot.Annotation                                `path:"@protocol-origin" ygotAnnotation:"true"`
	Valid              *bool                                            `path:"valid" module:"openconfig-network-instance"`
	ΛValid             []ygot.Annotation                                `path:"@valid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) IsYANGGoStruct() {
}

// GetActive retrieves the value of the leaf Active from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetActiveSince retrieves the value of the leaf ActiveSince from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ActiveSince is set, it can
// safely use t.GetActiveSince() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ActiveSince == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetActiveSince() uint64 {
	if t == nil || t.ActiveSince == nil {
		return 0
	}
	return *t.ActiveSince
}

// GetActiveTransitions retrieves the value of the leaf ActiveTransitions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ActiveTransitions is set, it can
// safely use t.GetActiveTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ActiveTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetActiveTransitions() uint64 {
	if t == nil || t.ActiveTransitions == nil {
		return 0
	}
	return *t.ActiveTransitions
}

// GetDiscriminator retrieves the value of the leaf Discriminator from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Discriminator is set, it can
// safely use t.GetDiscriminator() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Discriminator == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetDiscriminator() uint32 {
	if t == nil || t.Discriminator == nil {
		return 0
	}
	return *t.Discriminator
}

// GetEnlp retrieves the value of the leaf Enlp from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enlp is set, it can
// safely use t.GetEnlp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enlp == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetEnlp() E_OpenconfigSegmentRoutingTypes_EnlpType {
	if t == nil || t.Enlp == 0 {
		return 0
	}
	return t.Enlp
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetOriginatorAddr retrieves the value of the leaf OriginatorAddr from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorAddr is set, it can
// safely use t.GetOriginatorAddr() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorAddr == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetOriginatorAddr() string {
	if t == nil || t.OriginatorAddr == nil {
		return ""
	}
	return *t.OriginatorAddr
}

// GetOriginatorAsn retrieves the value of the leaf OriginatorAsn from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OriginatorAsn is set, it can
// safely use t.GetOriginatorAsn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OriginatorAsn == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetOriginatorAsn() uint32 {
	if t == nil || t.OriginatorAsn == nil {
		return 0
	}
	return *t.OriginatorAsn
}

// GetPreference retrieves the value of the leaf Preference from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Preference is set, it can
// safely use t.GetPreference() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Preference == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetPreference() uint32 {
	if t == nil || t.Preference == nil {
		return 0
	}
	return *t.Preference
}

// GetProtocolOrigin retrieves the value of the leaf ProtocolOrigin from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtocolOrigin is set, it can
// safely use t.GetProtocolOrigin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtocolOrigin == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetProtocolOrigin() E_OpenconfigSegmentRoutingTypes_SrteProtocolType {
	if t == nil || t.ProtocolOrigin == 0 {
		return 0
	}
	return t.ProtocolOrigin
}

// GetValid retrieves the value of the leaf Valid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Valid is set, it can
// safely use t.GetValid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Valid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) GetValid() bool {
	if t == nil || t.Valid == nil {
		return false
	}
	return *t.Valid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_CandidatePaths_CandidatePath_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State struct {
	ΛMetadata          []ygot.Annotation                                                                                              `path:"@" ygotAnnotation:"true"`
	Active             *bool                                                                                                          `path:"active" module:"openconfig-network-instance"`
	ΛActive            []ygot.Annotation                                                                                              `path:"@active" ygotAnnotation:"true"`
	ActiveSince        *uint64                                                                                                        `path:"active-since" module:"openconfig-network-instance"`
	ΛActiveSince       []ygot.Annotation                                                                                              `path:"@active-since" ygotAnnotation:"true"`
	ActiveTransitions  *uint64                                                                                                        `path:"active-transitions" module:"openconfig-network-instance"`
	ΛActiveTransitions []ygot.Annotation                                                                                              `path:"@active-transitions" ygotAnnotation:"true"`
	Bsid               OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union `path:"bsid" module:"openconfig-network-instance"`
	ΛBsid              []ygot.Annotation                                                                                              `path:"@bsid" ygotAnnotation:"true"`
	Color              *uint32                                                                                                        `path:"color" module:"openconfig-network-instance"`
	ΛColor             []ygot.Annotation                                                                                              `path:"@color" ygotAnnotation:"true"`
	Counters           *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters  `path:"counters" module:"openconfig-network-instance"`
	ΛCounters          []ygot.Annotation                                                                                              `path:"@counters" ygotAnnotation:"true"`
	Endpoint           *string                                                                                                        `path:"endpoint" module:"openconfig-network-instance"`
	ΛEndpoint          []ygot.Annotation                                                                                              `path:"@endpoint" ygotAnnotation:"true"`
	Name               *string                                                                                                        `path:"name" module:"openconfig-network-instance"`
	ΛName              []ygot.Annotation                                                                                              `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetOrCreateCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetCounters() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetActive retrieves the value of the leaf Active from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetActiveSince retrieves the value of the leaf ActiveSince from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ActiveSince is set, it can
// safely use t.GetActiveSince() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ActiveSince == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetActiveSince() uint64 {
	if t == nil || t.ActiveSince == nil {
		return 0
	}
	return *t.ActiveSince
}

// GetActiveTransitions retrieves the value of the leaf ActiveTransitions from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ActiveTransitions is set, it can
// safely use t.GetActiveTransitions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ActiveTransitions == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetActiveTransitions() uint64 {
	if t == nil || t.ActiveTransitions == nil {
		return 0
	}
	return *t.ActiveTransitions
}

// GetBsid retrieves the value of the leaf Bsid from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Bsid is set, it can
// safely use t.GetBsid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Bsid == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetBsid() OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union {
	if t == nil || t.Bsid == nil {
		return nil
	}
	return t.Bsid
}

// GetColor retrieves the value of the leaf Color from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Color is set, it can
// safely use t.GetColor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Color == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetColor() uint32 {
	if t == nil || t.Color == nil {
		return 0
	}
	return *t.Color
}

// GetEndpoint retrieves the value of the leaf Endpoint from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Endpoint is set, it can
// safely use t.GetEndpoint() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Endpoint == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetEndpoint() string {
	if t == nil || t.Endpoint == nil {
		return ""
	}
	return *t.Endpoint
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/state/bsid within the YANG schema.
// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32].
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union interface {
	// Union type can be one of [E_OpenconfigMplsTypes_MplsLabel_Enum, UnionString, UnionUint32]
	Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union()
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union ensures that E_OpenconfigMplsTypes_MplsLabel_Enum
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union interface.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union ensures that UnionString
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union interface.
func (UnionString) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union() {
}

// Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union ensures that UnionUint32
// implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union interface.
func (UnionUint32) Documentation_for_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union() {
}

// To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State) To_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union(i interface{}) (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union, error) {
	if v, ok := i.(OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Bsid_Union, unknown union type, got: %T, want any of [E_OpenconfigMplsTypes_MplsLabel_Enum, string, uint32]", i, i)
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters represents the /openconfig-network-instance/network-instances/network-instance/segment-routing/te-policies/te-policy/state/counters YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	InLabeledOctets   *uint64           `path:"in-labeled-octets" module:"openconfig-network-instance"`
	ΛInLabeledOctets  []ygot.Annotation `path:"@in-labeled-octets" ygotAnnotation:"true"`
	InLabeledPkts     *uint64           `path:"in-labeled-pkts" module:"openconfig-network-instance"`
	ΛInLabeledPkts    []ygot.Annotation `path:"@in-labeled-pkts" ygotAnnotation:"true"`
	InOctets          *uint64           `path:"in-octets" module:"openconfig-network-instance"`
	ΛInOctets         []ygot.Annotation `path:"@in-octets" ygotAnnotation:"true"`
	InPkts            *uint64           `path:"in-pkts" module:"openconfig-network-instance"`
	ΛInPkts           []ygot.Annotation `path:"@in-pkts" ygotAnnotation:"true"`
	OutLabeledOctets  *uint64           `path:"out-labeled-octets" module:"openconfig-network-instance"`
	ΛOutLabeledOctets []ygot.Annotation `path:"@out-labeled-octets" ygotAnnotation:"true"`
	OutLabeledPkts    *uint64           `path:"out-labeled-pkts" module:"openconfig-network-instance"`
	ΛOutLabeledPkts   []ygot.Annotation `path:"@out-labeled-pkts" ygotAnnotation:"true"`
	OutOctets         *uint64           `path:"out-octets" module:"openconfig-network-instance"`
	ΛOutOctets        []ygot.Annotation `path:"@out-octets" ygotAnnotation:"true"`
	OutPkts           *uint64           `path:"out-pkts" module:"openconfig-network-instance"`
	ΛOutPkts          []ygot.Annotation `path:"@out-pkts" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) IsYANGGoStruct() {
}

// GetInLabeledOctets retrieves the value of the leaf InLabeledOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InLabeledOctets is set, it can
// safely use t.GetInLabeledOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InLabeledOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetInLabeledOctets() uint64 {
	if t == nil || t.InLabeledOctets == nil {
		return 0
	}
	return *t.InLabeledOctets
}

// GetInLabeledPkts retrieves the value of the leaf InLabeledPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InLabeledPkts is set, it can
// safely use t.GetInLabeledPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InLabeledPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetInLabeledPkts() uint64 {
	if t == nil || t.InLabeledPkts == nil {
		return 0
	}
	return *t.InLabeledPkts
}

// GetInOctets retrieves the value of the leaf InOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOctets is set, it can
// safely use t.GetInOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetInOctets() uint64 {
	if t == nil || t.InOctets == nil {
		return 0
	}
	return *t.InOctets
}

// GetInPkts retrieves the value of the leaf InPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPkts is set, it can
// safely use t.GetInPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetInPkts() uint64 {
	if t == nil || t.InPkts == nil {
		return 0
	}
	return *t.InPkts
}

// GetOutLabeledOctets retrieves the value of the leaf OutLabeledOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutLabeledOctets is set, it can
// safely use t.GetOutLabeledOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutLabeledOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetOutLabeledOctets() uint64 {
	if t == nil || t.OutLabeledOctets == nil {
		return 0
	}
	return *t.OutLabeledOctets
}

// GetOutLabeledPkts retrieves the value of the leaf OutLabeledPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutLabeledPkts is set, it can
// safely use t.GetOutLabeledPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutLabeledPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetOutLabeledPkts() uint64 {
	if t == nil || t.OutLabeledPkts == nil {
		return 0
	}
	return *t.OutLabeledPkts
}

// GetOutOctets retrieves the value of the leaf OutOctets from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutOctets is set, it can
// safely use t.GetOutOctets() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutOctets == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetOutOctets() uint64 {
	if t == nil || t.OutOctets == nil {
		return 0
	}
	return *t.OutOctets
}

// GetOutPkts retrieves the value of the leaf OutPkts from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPkts is set, it can
// safely use t.GetOutPkts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPkts == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) GetOutPkts() uint64 {
	if t == nil || t.OutPkts == nil {
		return 0
	}
	return *t.OutPkts
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_SegmentRouting_TePolicies_TePolicy_State_Counters) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State represents the /openconfig-network-instance/network-instances/network-instance/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State struct {
	ΛMetadata                []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	Description              *string                                                `path:"description" module:"openconfig-network-instance"`
	ΛDescription             []ygot.Annotation                                      `path:"@description" ygotAnnotation:"true"`
	FallbackNetworkInstance  *string                                                `path:"fallback-network-instance" module:"openconfig-network-instance"`
	ΛFallbackNetworkInstance []ygot.Annotation                                      `path:"@fallback-network-instance" ygotAnnotation:"true"`
	Name                     *string                                                `path:"name" module:"openconfig-network-instance"`
	ΛName                    []ygot.Annotation                                      `path:"@name" ygotAnnotation:"true"`
	RouteDistinguisher       *string                                                `path:"route-distinguisher" module:"openconfig-network-instance"`
	ΛRouteDistinguisher      []ygot.Annotation                                      `path:"@route-distinguisher" ygotAnnotation:"true"`
	RouterId                 *string                                                `path:"router-id" module:"openconfig-network-instance"`
	ΛRouterId                []ygot.Annotation                                      `path:"@router-id" ygotAnnotation:"true"`
	Type                     E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE `path:"type" module:"openconfig-network-instance"`
	ΛType                    []ygot.Annotation                                      `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetFallbackNetworkInstance retrieves the value of the leaf FallbackNetworkInstance from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FallbackNetworkInstance is set, it can
// safely use t.GetFallbackNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FallbackNetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) GetFallbackNetworkInstance() string {
	if t == nil || t.FallbackNetworkInstance == nil {
		return ""
	}
	return *t.FallbackNetworkInstance
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetRouteDistinguisher retrieves the value of the leaf RouteDistinguisher from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouteDistinguisher is set, it can
// safely use t.GetRouteDistinguisher() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouteDistinguisher == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) GetRouteDistinguisher() string {
	if t == nil || t.RouteDistinguisher == nil {
		return ""
	}
	return *t.RouteDistinguisher
}

// GetRouterId retrieves the value of the leaf RouterId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RouterId is set, it can
// safely use t.GetRouterId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RouterId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) GetRouterId() string {
	if t == nil || t.RouterId == nil {
		return ""
	}
	return *t.RouterId
}

// GetType retrieves the value of the leaf Type from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) GetType() E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections represents the /openconfig-network-instance/network-instances/network-instance/table-connections YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections struct {
	ΛMetadata        []ygot.Annotation                                                                                                                                                                                `path:"@" ygotAnnotation:"true"`
	TableConnection  map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection `path:"table-connection" module:"openconfig-network-instance"`
	ΛTableConnection []ygot.Annotation                                                                                                                                                                                `path:"@table-connection" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) IsYANGGoStruct() {
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key represents the key for list TableConnection of element /openconfig-network-instance/network-instances/network-instance/table-connections.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key struct {
	SrcProtocol   E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"src-protocol"`
	DstProtocol   E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"dst-protocol"`
	AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY              `path:"address-family"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"src-protocol":   t.SrcProtocol,
		"dst-protocol":   t.DstProtocol,
		"address-family": t.AddressFamily,
	}, nil
}

// NewTableConnection creates a new entry in the TableConnection list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) NewTableConnection(SrcProtocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, DstProtocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TableConnection == nil {
		t.TableConnection = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key{
		SrcProtocol:   SrcProtocol,
		DstProtocol:   DstProtocol,
		AddressFamily: AddressFamily,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TableConnection[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TableConnection", key)
	}

	t.TableConnection[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection{
		SrcProtocol:   SrcProtocol,
		DstProtocol:   DstProtocol,
		AddressFamily: AddressFamily,
	}

	return t.TableConnection[key], nil
}

// RenameTableConnection renames an entry in the list TableConnection within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) RenameTableConnection(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key) error {
	if _, ok := t.TableConnection[newK]; ok {
		return fmt.Errorf("key %v already exists in TableConnection", newK)
	}

	e, ok := t.TableConnection[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TableConnection", oldK)
	}
	e.SrcProtocol = newK.SrcProtocol
	e.DstProtocol = newK.DstProtocol
	e.AddressFamily = newK.AddressFamily

	t.TableConnection[newK] = e
	delete(t.TableConnection, oldK)
	return nil
}

// GetOrCreateTableConnectionMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) GetOrCreateTableConnectionMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection {
	if t.TableConnection == nil {
		t.TableConnection = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection)
	}
	return t.TableConnection
}

// GetOrCreateTableConnection retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) GetOrCreateTableConnection(SrcProtocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, DstProtocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key{
		SrcProtocol:   SrcProtocol,
		DstProtocol:   DstProtocol,
		AddressFamily: AddressFamily,
	}

	if v, ok := t.TableConnection[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTableConnection(SrcProtocol, DstProtocol, AddressFamily)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTableConnection got unexpected error: %v", err))
	}
	return v
}

// GetTableConnection retrieves the value with the specified key from
// the TableConnection map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) GetTableConnection(SrcProtocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, DstProtocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key{
		SrcProtocol:   SrcProtocol,
		DstProtocol:   DstProtocol,
		AddressFamily: AddressFamily,
	}

	if lm, ok := t.TableConnection[key]; ok {
		return lm
	}
	return nil
}

// AppendTableConnection appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection struct to the
// list TableConnection of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) AppendTableConnection(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) error {
	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key{
		SrcProtocol:   v.SrcProtocol,
		DstProtocol:   v.DstProtocol,
		AddressFamily: v.AddressFamily,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TableConnection == nil {
		t.TableConnection = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection)
	}

	if _, ok := t.TableConnection[key]; ok {
		return fmt.Errorf("duplicate key for list TableConnection %v", key)
	}

	t.TableConnection[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TableConnection {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection represents the /openconfig-network-instance/network-instances/network-instance/table-connections/table-connection YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection struct {
	ΛMetadata      []ygot.Annotation                                                                                   `path:"@" ygotAnnotation:"true"`
	AddressFamily  E_OpenconfigTypes_ADDRESS_FAMILY                                                                    `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                                                                                   `path:"@address-family" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                                                   `path:"@config" ygotAnnotation:"true"`
	DstProtocol    E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                                       `path:"dst-protocol" module:"openconfig-network-instance"`
	ΛDstProtocol   []ygot.Annotation                                                                                   `path:"@dst-protocol" ygotAnnotation:"true"`
	SrcProtocol    E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                                       `path:"src-protocol" module:"openconfig-network-instance"`
	ΛSrcProtocol   []ygot.Annotation                                                                                   `path:"@src-protocol" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State  `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) GetAddressFamily() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetDstProtocol retrieves the value of the leaf DstProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DstProtocol is set, it can
// safely use t.GetDstProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DstProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) GetDstProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.DstProtocol == 0 {
		return 0
	}
	return t.DstProtocol
}

// GetSrcProtocol retrieves the value of the leaf SrcProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrcProtocol is set, it can
// safely use t.GetSrcProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrcProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) GetSrcProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.SrcProtocol == 0 {
		return 0
	}
	return t.SrcProtocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"address-family": t.AddressFamily,
		"dst-protocol":   t.DstProtocol,
		"src-protocol":   t.SrcProtocol,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config represents the /openconfig-network-instance/network-instances/network-instance/table-connections/table-connection/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config struct {
	ΛMetadata                 []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	AddressFamily             E_OpenconfigTypes_ADDRESS_FAMILY              `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily            []ygot.Annotation                             `path:"@address-family" ygotAnnotation:"true"`
	DefaultImportPolicy       E_OpenconfigRoutingPolicy_DefaultPolicyType   `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy      []ygot.Annotation                             `path:"@default-import-policy" ygotAnnotation:"true"`
	DisableMetricPropagation  *bool                                         `path:"disable-metric-propagation" module:"openconfig-network-instance"`
	ΛDisableMetricPropagation []ygot.Annotation                             `path:"@disable-metric-propagation" ygotAnnotation:"true"`
	DstProtocol               E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"dst-protocol" module:"openconfig-network-instance"`
	ΛDstProtocol              []ygot.Annotation                             `path:"@dst-protocol" ygotAnnotation:"true"`
	ImportPolicy              []string                                      `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy             []ygot.Annotation                             `path:"@import-policy" ygotAnnotation:"true"`
	SrcProtocol               E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"src-protocol" module:"openconfig-network-instance"`
	ΛSrcProtocol              []ygot.Annotation                             `path:"@src-protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) IsYANGGoStruct() {
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) GetAddressFamily() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetDisableMetricPropagation retrieves the value of the leaf DisableMetricPropagation from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisableMetricPropagation is set, it can
// safely use t.GetDisableMetricPropagation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisableMetricPropagation == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) GetDisableMetricPropagation() bool {
	if t == nil || t.DisableMetricPropagation == nil {
		return false
	}
	return *t.DisableMetricPropagation
}

// GetDstProtocol retrieves the value of the leaf DstProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DstProtocol is set, it can
// safely use t.GetDstProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DstProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) GetDstProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.DstProtocol == 0 {
		return 0
	}
	return t.DstProtocol
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// GetSrcProtocol retrieves the value of the leaf SrcProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrcProtocol is set, it can
// safely use t.GetSrcProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrcProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) GetSrcProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.SrcProtocol == 0 {
		return 0
	}
	return t.SrcProtocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DisableMetricPropagation == nil {
		var v bool = false
		t.DisableMetricPropagation = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State represents the /openconfig-network-instance/network-instances/network-instance/table-connections/table-connection/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State struct {
	ΛMetadata                 []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	AddressFamily             E_OpenconfigTypes_ADDRESS_FAMILY              `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily            []ygot.Annotation                             `path:"@address-family" ygotAnnotation:"true"`
	DefaultImportPolicy       E_OpenconfigRoutingPolicy_DefaultPolicyType   `path:"default-import-policy" module:"openconfig-network-instance"`
	ΛDefaultImportPolicy      []ygot.Annotation                             `path:"@default-import-policy" ygotAnnotation:"true"`
	DisableMetricPropagation  *bool                                         `path:"disable-metric-propagation" module:"openconfig-network-instance"`
	ΛDisableMetricPropagation []ygot.Annotation                             `path:"@disable-metric-propagation" ygotAnnotation:"true"`
	DstProtocol               E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"dst-protocol" module:"openconfig-network-instance"`
	ΛDstProtocol              []ygot.Annotation                             `path:"@dst-protocol" ygotAnnotation:"true"`
	ImportPolicy              []string                                      `path:"import-policy" module:"openconfig-network-instance"`
	ΛImportPolicy             []ygot.Annotation                             `path:"@import-policy" ygotAnnotation:"true"`
	SrcProtocol               E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"src-protocol" module:"openconfig-network-instance"`
	ΛSrcProtocol              []ygot.Annotation                             `path:"@src-protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) IsYANGGoStruct() {
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) GetAddressFamily() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetDefaultImportPolicy retrieves the value of the leaf DefaultImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DefaultImportPolicy is set, it can
// safely use t.GetDefaultImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DefaultImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) GetDefaultImportPolicy() E_OpenconfigRoutingPolicy_DefaultPolicyType {
	if t == nil || t.DefaultImportPolicy == 0 {
		return OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	return t.DefaultImportPolicy
}

// GetDisableMetricPropagation retrieves the value of the leaf DisableMetricPropagation from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DisableMetricPropagation is set, it can
// safely use t.GetDisableMetricPropagation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DisableMetricPropagation == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) GetDisableMetricPropagation() bool {
	if t == nil || t.DisableMetricPropagation == nil {
		return false
	}
	return *t.DisableMetricPropagation
}

// GetDstProtocol retrieves the value of the leaf DstProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DstProtocol is set, it can
// safely use t.GetDstProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DstProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) GetDstProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.DstProtocol == 0 {
		return 0
	}
	return t.DstProtocol
}

// GetImportPolicy retrieves the value of the leaf ImportPolicy from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ImportPolicy is set, it can
// safely use t.GetImportPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ImportPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) GetImportPolicy() []string {
	if t == nil || t.ImportPolicy == nil {
		return nil
	}
	return t.ImportPolicy
}

// GetSrcProtocol retrieves the value of the leaf SrcProtocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SrcProtocol is set, it can
// safely use t.GetSrcProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SrcProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) GetSrcProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.SrcProtocol == 0 {
		return 0
	}
	return t.SrcProtocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.DefaultImportPolicy == 0 {
		t.DefaultImportPolicy = OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE
	}
	if t.DisableMetricPropagation == nil {
		var v bool = false
		t.DisableMetricPropagation = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_TableConnections_TableConnection_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables represents the /openconfig-network-instance/network-instances/network-instance/tables YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables struct {
	ΛMetadata []ygot.Annotation                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Table     map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table `path:"table" module:"openconfig-network-instance"`
	ΛTable    []ygot.Annotation                                                                                                                                        `path:"@table" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) IsYANGGoStruct() {}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key represents the key for list Table of element /openconfig-network-instance/network-instances/network-instance/tables.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key struct {
	Protocol      E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"protocol"`
	AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY              `path:"address-family"`
}

// IsYANGGoKeyStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key key struct.
func (t OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"protocol":       t.Protocol,
		"address-family": t.AddressFamily,
	}, nil
}

// NewTable creates a new entry in the Table list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) NewTable(Protocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Table == nil {
		t.Table = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table)
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key{
		Protocol:      Protocol,
		AddressFamily: AddressFamily,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Table[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Table", key)
	}

	t.Table[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table{
		Protocol:      Protocol,
		AddressFamily: AddressFamily,
	}

	return t.Table[key], nil
}

// RenameTable renames an entry in the list Table within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) RenameTable(oldK, newK OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key) error {
	if _, ok := t.Table[newK]; ok {
		return fmt.Errorf("key %v already exists in Table", newK)
	}

	e, ok := t.Table[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Table", oldK)
	}
	e.Protocol = newK.Protocol
	e.AddressFamily = newK.AddressFamily

	t.Table[newK] = e
	delete(t.Table, oldK)
	return nil
}

// GetOrCreateTableMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) GetOrCreateTableMap() map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table {
	if t.Table == nil {
		t.Table = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table)
	}
	return t.Table
}

// GetOrCreateTable retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) GetOrCreateTable(Protocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table {

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key{
		Protocol:      Protocol,
		AddressFamily: AddressFamily,
	}

	if v, ok := t.Table[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTable(Protocol, AddressFamily)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTable got unexpected error: %v", err))
	}
	return v
}

// GetTable retrieves the value with the specified key from
// the Table map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) GetTable(Protocol E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE, AddressFamily E_OpenconfigTypes_ADDRESS_FAMILY) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table {

	if t == nil {
		return nil
	}

	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key{
		Protocol:      Protocol,
		AddressFamily: AddressFamily,
	}

	if lm, ok := t.Table[key]; ok {
		return lm
	}
	return nil
}

// AppendTable appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table struct to the
// list Table of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) AppendTable(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) error {
	key := OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key{
		Protocol:      v.Protocol,
		AddressFamily: v.AddressFamily,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Table == nil {
		t.Table = make(map[OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Key]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table)
	}

	if _, ok := t.Table[key]; ok {
		return fmt.Errorf("duplicate key for list Table %v", key)
	}

	t.Table[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Table {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table represents the /openconfig-network-instance/network-instances/network-instance/tables/table YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table struct {
	ΛMetadata      []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	AddressFamily  E_OpenconfigTypes_ADDRESS_FAMILY                                                `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                                                               `path:"@address-family" ygotAnnotation:"true"`
	Config         *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config `path:"config" module:"openconfig-network-instance"`
	ΛConfig        []ygot.Annotation                                                               `path:"@config" ygotAnnotation:"true"`
	Protocol       E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE                                   `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol      []ygot.Annotation                                                               `path:"@protocol" ygotAnnotation:"true"`
	State          *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State  `path:"state" module:"openconfig-network-instance"`
	ΛState         []ygot.Annotation                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) GetAddressFamily() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) GetProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.Protocol == 0 {
		return 0
	}
	return t.Protocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"address-family": t.AddressFamily,
		"protocol":       t.Protocol,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config represents the /openconfig-network-instance/network-instances/network-instance/tables/table/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config struct {
	ΛMetadata      []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	AddressFamily  E_OpenconfigTypes_ADDRESS_FAMILY              `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                             `path:"@address-family" ygotAnnotation:"true"`
	Protocol       E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol      []ygot.Annotation                             `path:"@protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) IsYANGGoStruct() {
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) GetAddressFamily() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) GetProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.Protocol == 0 {
		return 0
	}
	return t.Protocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State represents the /openconfig-network-instance/network-instances/network-instance/tables/table/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State struct {
	ΛMetadata      []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	AddressFamily  E_OpenconfigTypes_ADDRESS_FAMILY              `path:"address-family" module:"openconfig-network-instance"`
	ΛAddressFamily []ygot.Annotation                             `path:"@address-family" ygotAnnotation:"true"`
	Protocol       E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"protocol" module:"openconfig-network-instance"`
	ΛProtocol      []ygot.Annotation                             `path:"@protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) IsYANGGoStruct() {
}

// GetAddressFamily retrieves the value of the leaf AddressFamily from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AddressFamily is set, it can
// safely use t.GetAddressFamily() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AddressFamily == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) GetAddressFamily() E_OpenconfigTypes_ADDRESS_FAMILY {
	if t == nil || t.AddressFamily == 0 {
		return 0
	}
	return t.AddressFamily
}

// GetProtocol retrieves the value of the leaf Protocol from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Protocol is set, it can
// safely use t.GetProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Protocol == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) GetProtocol() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.Protocol == 0 {
		return 0
	}
	return t.Protocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Tables_Table_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans represents the /openconfig-network-instance/network-instances/network-instance/vlans YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans struct {
	ΛMetadata []ygot.Annotation                                                                 `path:"@" ygotAnnotation:"true"`
	Vlan      map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan `path:"vlan" module:"openconfig-network-instance"`
	ΛVlan     []ygot.Annotation                                                                 `path:"@vlan" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) IsYANGGoStruct() {}

// NewVlan creates a new entry in the Vlan list of the
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) NewVlan(VlanId uint16) (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Vlan == nil {
		t.Vlan = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan)
	}

	key := VlanId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Vlan[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Vlan", key)
	}

	t.Vlan[key] = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan{
		VlanId: &VlanId,
	}

	return t.Vlan[key], nil
}

// RenameVlan renames an entry in the list Vlan within
// the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) RenameVlan(oldK, newK uint16) error {
	if _, ok := t.Vlan[newK]; ok {
		return fmt.Errorf("key %v already exists in Vlan", newK)
	}

	e, ok := t.Vlan[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Vlan", oldK)
	}
	e.VlanId = &newK

	t.Vlan[newK] = e
	delete(t.Vlan, oldK)
	return nil
}

// GetOrCreateVlanMap returns the list (map) from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans.
//
// It initializes the field if not already initialized.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) GetOrCreateVlanMap() map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan {
	if t.Vlan == nil {
		t.Vlan = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan)
	}
	return t.Vlan
}

// GetOrCreateVlan retrieves the value with the specified keys from
// the receiver OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) GetOrCreateVlan(VlanId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan {

	key := VlanId

	if v, ok := t.Vlan[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewVlan(VlanId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateVlan got unexpected error: %v", err))
	}
	return v
}

// GetVlan retrieves the value with the specified key from
// the Vlan map field of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) GetVlan(VlanId uint16) *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan {

	if t == nil {
		return nil
	}

	key := VlanId

	if lm, ok := t.Vlan[key]; ok {
		return lm
	}
	return nil
}

// AppendVlan appends the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan struct to the
// list Vlan of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans. If the key value(s) specified in
// the supplied OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan already exist in the list, an error is
// returned.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) AppendVlan(v *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) error {
	if v.VlanId == nil {
		return fmt.Errorf("invalid nil key received for VlanId")
	}

	key := *v.VlanId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Vlan == nil {
		t.Vlan = make(map[uint16]*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan)
	}

	if _, ok := t.Vlan[key]; ok {
		return fmt.Errorf("duplicate key for list Vlan %v", key)
	}

	t.Vlan[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Vlan {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan represents the /openconfig-network-instance/network-instances/network-instance/vlans/vlan YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan struct {
	ΛMetadata []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config  `path:"config" module:"openconfig-network-instance"`
	ΛConfig   []ygot.Annotation                                                              `path:"@config" ygotAnnotation:"true"`
	Members   *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members `path:"members" module:"openconfig-network-instance"`
	ΛMembers  []ygot.Annotation                                                              `path:"@members" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State   `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                              `path:"@state" ygotAnnotation:"true"`
	VlanId    *uint16                                                                        `path:"vlan-id" module:"openconfig-network-instance"`
	ΛVlanId   []ygot.Annotation                                                              `path:"@vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) GetOrCreateConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config{}
	return t.Config
}

// GetOrCreateMembers retrieves the value of the Members field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) GetOrCreateMembers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members {
	if t.Members != nil {
		return t.Members
	}
	t.Members = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members{}
	return t.Members
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) GetConfig() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetMembers returns the value of the Members struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan. If the receiver or the field Members is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) GetMembers() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members {
	if t != nil && t.Members != nil {
		return t.Members
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Members.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan struct, which is a YANG list entry.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) ΛListKeyMap() (map[string]interface{}, error) {
	if t.VlanId == nil {
		return nil, fmt.Errorf("nil value for key VlanId")
	}

	return map[string]interface{}{
		"vlan-id": *t.VlanId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config represents the /openconfig-network-instance/network-instances/network-instance/vlans/vlan/config YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config struct {
	ΛMetadata []ygot.Annotation                                                                     `path:"@" ygotAnnotation:"true"`
	Name      *string                                                                               `path:"name" module:"openconfig-network-instance"`
	ΛName     []ygot.Annotation                                                                     `path:"@name" ygotAnnotation:"true"`
	Status    E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status `path:"status" module:"openconfig-network-instance"`
	ΛStatus   []ygot.Annotation                                                                     `path:"@status" ygotAnnotation:"true"`
	VlanId    *uint16                                                                               `path:"vlan-id" module:"openconfig-network-instance"`
	ΛVlanId   []ygot.Annotation                                                                     `path:"@vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetStatus retrieves the value of the leaf Status from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Status is set, it can
// safely use t.GetStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Status == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) GetStatus() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status {
	if t == nil || t.Status == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_ACTIVE
	}
	return t.Status
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Status == 0 {
		t.Status = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_ACTIVE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members represents the /openconfig-network-instance/network-instances/network-instance/vlans/vlan/members YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members struct {
	ΛMetadata []ygot.Annotation                                                                       `path:"@" ygotAnnotation:"true"`
	Member    []*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member `path:"member" module:"openconfig-network-instance"`
	ΛMember   []ygot.Annotation                                                                       `path:"@member" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Member {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member represents the /openconfig-network-instance/network-instances/network-instance/vlans/vlan/members/member YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member struct {
	ΛMetadata []ygot.Annotation                                                                           `path:"@" ygotAnnotation:"true"`
	State     *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State `path:"state" module:"openconfig-network-instance"`
	ΛState    []ygot.Annotation                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) IsYANGGoStruct() {
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) GetOrCreateState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) GetState() *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State represents the /openconfig-network-instance/network-instances/network-instance/vlans/vlan/members/member/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface  *string           `path:"interface" module:"openconfig-network-instance"`
	ΛInterface []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Members_Member_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State represents the /openconfig-network-instance/network-instances/network-instance/vlans/vlan/state YANG schema element.
type OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State struct {
	ΛMetadata []ygot.Annotation                                                                     `path:"@" ygotAnnotation:"true"`
	Name      *string                                                                               `path:"name" module:"openconfig-network-instance"`
	ΛName     []ygot.Annotation                                                                     `path:"@name" ygotAnnotation:"true"`
	Status    E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status `path:"status" module:"openconfig-network-instance"`
	ΛStatus   []ygot.Annotation                                                                     `path:"@status" ygotAnnotation:"true"`
	VlanId    *uint16                                                                               `path:"vlan-id" module:"openconfig-network-instance"`
	ΛVlanId   []ygot.Annotation                                                                     `path:"@vlan-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetStatus retrieves the value of the leaf Status from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Status is set, it can
// safely use t.GetStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Status == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) GetStatus() E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status {
	if t == nil || t.Status == 0 {
		return OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_ACTIVE
	}
	return t.Status
}

// GetVlanId retrieves the value of the leaf VlanId from the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VlanId is set, it can
// safely use t.GetVlanId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VlanId == nil' before retrieving the leaf's value.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) GetVlanId() uint16 {
	if t == nil || t.VlanId == nil {
		return 0
	}
	return *t.VlanId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Status == 0 {
		t.Status = OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_ACTIVE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State.
func (*OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_State) ΛBelongingModule() string {
	return "openconfig-network-instance"
}

// OpenconfigPlatform_Components represents the /openconfig-platform/components YANG schema element.
type OpenconfigPlatform_Components struct {
	ΛMetadata  []ygot.Annotation                                   `path:"@" ygotAnnotation:"true"`
	Component  map[string]*OpenconfigPlatform_Components_Component `path:"component" module:"openconfig-platform"`
	ΛComponent []ygot.Annotation                                   `path:"@component" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components) IsYANGGoStruct() {}

// NewComponent creates a new entry in the Component list of the
// OpenconfigPlatform_Components struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components) NewComponent(Name string) (*OpenconfigPlatform_Components_Component, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Component == nil {
		t.Component = make(map[string]*OpenconfigPlatform_Components_Component)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Component[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Component", key)
	}

	t.Component[key] = &OpenconfigPlatform_Components_Component{
		Name: &Name,
	}

	return t.Component[key], nil
}

// RenameComponent renames an entry in the list Component within
// the OpenconfigPlatform_Components struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components) RenameComponent(oldK, newK string) error {
	if _, ok := t.Component[newK]; ok {
		return fmt.Errorf("key %v already exists in Component", newK)
	}

	e, ok := t.Component[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Component", oldK)
	}
	e.Name = &newK

	t.Component[newK] = e
	delete(t.Component, oldK)
	return nil
}

// GetOrCreateComponentMap returns the list (map) from OpenconfigPlatform_Components.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components) GetOrCreateComponentMap() map[string]*OpenconfigPlatform_Components_Component {
	if t.Component == nil {
		t.Component = make(map[string]*OpenconfigPlatform_Components_Component)
	}
	return t.Component
}

// GetOrCreateComponent retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components) GetOrCreateComponent(Name string) *OpenconfigPlatform_Components_Component {

	key := Name

	if v, ok := t.Component[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewComponent(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateComponent got unexpected error: %v", err))
	}
	return v
}

// GetComponent retrieves the value with the specified key from
// the Component map field of OpenconfigPlatform_Components. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components) GetComponent(Name string) *OpenconfigPlatform_Components_Component {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Component[key]; ok {
		return lm
	}
	return nil
}

// AppendComponent appends the supplied OpenconfigPlatform_Components_Component struct to the
// list Component of OpenconfigPlatform_Components. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components) AppendComponent(v *OpenconfigPlatform_Components_Component) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Component == nil {
		t.Component = make(map[string]*OpenconfigPlatform_Components_Component)
	}

	if _, ok := t.Component[key]; ok {
		return fmt.Errorf("duplicate key for list Component %v", key)
	}

	t.Component[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Component {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components.
func (*OpenconfigPlatform_Components) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component represents the /openconfig-platform/components/component YANG schema element.
type OpenconfigPlatform_Components_Component struct {
	ΛMetadata          []ygot.Annotation                                          `path:"@" ygotAnnotation:"true"`
	Backplane          *OpenconfigPlatform_Components_Component_Backplane         `path:"backplane" module:"openconfig-platform"`
	ΛBackplane         []ygot.Annotation                                          `path:"@backplane" ygotAnnotation:"true"`
	Chassis            *OpenconfigPlatform_Components_Component_Chassis           `path:"chassis" module:"openconfig-platform"`
	ΛChassis           []ygot.Annotation                                          `path:"@chassis" ygotAnnotation:"true"`
	Config             *OpenconfigPlatform_Components_Component_Config            `path:"config" module:"openconfig-platform"`
	ΛConfig            []ygot.Annotation                                          `path:"@config" ygotAnnotation:"true"`
	ControllerCard     *OpenconfigPlatform_Components_Component_ControllerCard    `path:"controller-card" module:"openconfig-platform"`
	ΛControllerCard    []ygot.Annotation                                          `path:"@controller-card" ygotAnnotation:"true"`
	Cpu                *OpenconfigPlatform_Components_Component_Cpu               `path:"cpu" module:"openconfig-platform"`
	ΛCpu               []ygot.Annotation                                          `path:"@cpu" ygotAnnotation:"true"`
	Fabric             *OpenconfigPlatform_Components_Component_Fabric            `path:"fabric" module:"openconfig-platform"`
	ΛFabric            []ygot.Annotation                                          `path:"@fabric" ygotAnnotation:"true"`
	Fan                *OpenconfigPlatform_Components_Component_Fan               `path:"fan" module:"openconfig-platform"`
	ΛFan               []ygot.Annotation                                          `path:"@fan" ygotAnnotation:"true"`
	IntegratedCircuit  *OpenconfigPlatform_Components_Component_IntegratedCircuit `path:"integrated-circuit" module:"openconfig-platform"`
	ΛIntegratedCircuit []ygot.Annotation                                          `path:"@integrated-circuit" ygotAnnotation:"true"`
	Name               *string                                                    `path:"name" module:"openconfig-platform"`
	ΛName              []ygot.Annotation                                          `path:"@name" ygotAnnotation:"true"`
	OpticalChannel     *OpenconfigPlatform_Components_Component_OpticalChannel    `path:"optical-channel" module:"openconfig-terminal-device"`
	ΛOpticalChannel    []ygot.Annotation                                          `path:"@optical-channel" ygotAnnotation:"true"`
	Port               *OpenconfigPlatform_Components_Component_Port              `path:"port" module:"openconfig-platform"`
	ΛPort              []ygot.Annotation                                          `path:"@port" ygotAnnotation:"true"`
	PowerSupply        *OpenconfigPlatform_Components_Component_PowerSupply       `path:"power-supply" module:"openconfig-platform"`
	ΛPowerSupply       []ygot.Annotation                                          `path:"@power-supply" ygotAnnotation:"true"`
	Properties         *OpenconfigPlatform_Components_Component_Properties        `path:"properties" module:"openconfig-platform"`
	ΛProperties        []ygot.Annotation                                          `path:"@properties" ygotAnnotation:"true"`
	SoftwareModule     *OpenconfigPlatform_Components_Component_SoftwareModule    `path:"software-module" module:"openconfig-platform"`
	ΛSoftwareModule    []ygot.Annotation                                          `path:"@software-module" ygotAnnotation:"true"`
	State              *OpenconfigPlatform_Components_Component_State             `path:"state" module:"openconfig-platform"`
	ΛState             []ygot.Annotation                                          `path:"@state" ygotAnnotation:"true"`
	Storage            *OpenconfigPlatform_Components_Component_Storage           `path:"storage" module:"openconfig-platform"`
	ΛStorage           []ygot.Annotation                                          `path:"@storage" ygotAnnotation:"true"`
	Subcomponents      *OpenconfigPlatform_Components_Component_Subcomponents     `path:"subcomponents" module:"openconfig-platform"`
	ΛSubcomponents     []ygot.Annotation                                          `path:"@subcomponents" ygotAnnotation:"true"`
	Transceiver        *OpenconfigPlatform_Components_Component_Transceiver       `path:"transceiver" module:"openconfig-platform-transceiver"`
	ΛTransceiver       []ygot.Annotation                                          `path:"@transceiver" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component) IsYANGGoStruct() {}

// GetOrCreateBackplane retrieves the value of the Backplane field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateBackplane() *OpenconfigPlatform_Components_Component_Backplane {
	if t.Backplane != nil {
		return t.Backplane
	}
	t.Backplane = &OpenconfigPlatform_Components_Component_Backplane{}
	return t.Backplane
}

// GetOrCreateChassis retrieves the value of the Chassis field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateChassis() *OpenconfigPlatform_Components_Component_Chassis {
	if t.Chassis != nil {
		return t.Chassis
	}
	t.Chassis = &OpenconfigPlatform_Components_Component_Chassis{}
	return t.Chassis
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Config{}
	return t.Config
}

// GetOrCreateControllerCard retrieves the value of the ControllerCard field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateControllerCard() *OpenconfigPlatform_Components_Component_ControllerCard {
	if t.ControllerCard != nil {
		return t.ControllerCard
	}
	t.ControllerCard = &OpenconfigPlatform_Components_Component_ControllerCard{}
	return t.ControllerCard
}

// GetOrCreateCpu retrieves the value of the Cpu field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateCpu() *OpenconfigPlatform_Components_Component_Cpu {
	if t.Cpu != nil {
		return t.Cpu
	}
	t.Cpu = &OpenconfigPlatform_Components_Component_Cpu{}
	return t.Cpu
}

// GetOrCreateFabric retrieves the value of the Fabric field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateFabric() *OpenconfigPlatform_Components_Component_Fabric {
	if t.Fabric != nil {
		return t.Fabric
	}
	t.Fabric = &OpenconfigPlatform_Components_Component_Fabric{}
	return t.Fabric
}

// GetOrCreateFan retrieves the value of the Fan field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateFan() *OpenconfigPlatform_Components_Component_Fan {
	if t.Fan != nil {
		return t.Fan
	}
	t.Fan = &OpenconfigPlatform_Components_Component_Fan{}
	return t.Fan
}

// GetOrCreateIntegratedCircuit retrieves the value of the IntegratedCircuit field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateIntegratedCircuit() *OpenconfigPlatform_Components_Component_IntegratedCircuit {
	if t.IntegratedCircuit != nil {
		return t.IntegratedCircuit
	}
	t.IntegratedCircuit = &OpenconfigPlatform_Components_Component_IntegratedCircuit{}
	return t.IntegratedCircuit
}

// GetOrCreateOpticalChannel retrieves the value of the OpticalChannel field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateOpticalChannel() *OpenconfigPlatform_Components_Component_OpticalChannel {
	if t.OpticalChannel != nil {
		return t.OpticalChannel
	}
	t.OpticalChannel = &OpenconfigPlatform_Components_Component_OpticalChannel{}
	return t.OpticalChannel
}

// GetOrCreatePort retrieves the value of the Port field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreatePort() *OpenconfigPlatform_Components_Component_Port {
	if t.Port != nil {
		return t.Port
	}
	t.Port = &OpenconfigPlatform_Components_Component_Port{}
	return t.Port
}

// GetOrCreatePowerSupply retrieves the value of the PowerSupply field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreatePowerSupply() *OpenconfigPlatform_Components_Component_PowerSupply {
	if t.PowerSupply != nil {
		return t.PowerSupply
	}
	t.PowerSupply = &OpenconfigPlatform_Components_Component_PowerSupply{}
	return t.PowerSupply
}

// GetOrCreateProperties retrieves the value of the Properties field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateProperties() *OpenconfigPlatform_Components_Component_Properties {
	if t.Properties != nil {
		return t.Properties
	}
	t.Properties = &OpenconfigPlatform_Components_Component_Properties{}
	return t.Properties
}

// GetOrCreateSoftwareModule retrieves the value of the SoftwareModule field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateSoftwareModule() *OpenconfigPlatform_Components_Component_SoftwareModule {
	if t.SoftwareModule != nil {
		return t.SoftwareModule
	}
	t.SoftwareModule = &OpenconfigPlatform_Components_Component_SoftwareModule{}
	return t.SoftwareModule
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateState() *OpenconfigPlatform_Components_Component_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_State{}
	return t.State
}

// GetOrCreateStorage retrieves the value of the Storage field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateStorage() *OpenconfigPlatform_Components_Component_Storage {
	if t.Storage != nil {
		return t.Storage
	}
	t.Storage = &OpenconfigPlatform_Components_Component_Storage{}
	return t.Storage
}

// GetOrCreateSubcomponents retrieves the value of the Subcomponents field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateSubcomponents() *OpenconfigPlatform_Components_Component_Subcomponents {
	if t.Subcomponents != nil {
		return t.Subcomponents
	}
	t.Subcomponents = &OpenconfigPlatform_Components_Component_Subcomponents{}
	return t.Subcomponents
}

// GetOrCreateTransceiver retrieves the value of the Transceiver field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component) GetOrCreateTransceiver() *OpenconfigPlatform_Components_Component_Transceiver {
	if t.Transceiver != nil {
		return t.Transceiver
	}
	t.Transceiver = &OpenconfigPlatform_Components_Component_Transceiver{}
	return t.Transceiver
}

// GetBackplane returns the value of the Backplane struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Backplane is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetBackplane() *OpenconfigPlatform_Components_Component_Backplane {
	if t != nil && t.Backplane != nil {
		return t.Backplane
	}
	return nil
}

// GetChassis returns the value of the Chassis struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Chassis is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetChassis() *OpenconfigPlatform_Components_Component_Chassis {
	if t != nil && t.Chassis != nil {
		return t.Chassis
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetConfig() *OpenconfigPlatform_Components_Component_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetControllerCard returns the value of the ControllerCard struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field ControllerCard is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetControllerCard() *OpenconfigPlatform_Components_Component_ControllerCard {
	if t != nil && t.ControllerCard != nil {
		return t.ControllerCard
	}
	return nil
}

// GetCpu returns the value of the Cpu struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Cpu is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetCpu() *OpenconfigPlatform_Components_Component_Cpu {
	if t != nil && t.Cpu != nil {
		return t.Cpu
	}
	return nil
}

// GetFabric returns the value of the Fabric struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Fabric is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetFabric() *OpenconfigPlatform_Components_Component_Fabric {
	if t != nil && t.Fabric != nil {
		return t.Fabric
	}
	return nil
}

// GetFan returns the value of the Fan struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Fan is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetFan() *OpenconfigPlatform_Components_Component_Fan {
	if t != nil && t.Fan != nil {
		return t.Fan
	}
	return nil
}

// GetIntegratedCircuit returns the value of the IntegratedCircuit struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field IntegratedCircuit is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetIntegratedCircuit() *OpenconfigPlatform_Components_Component_IntegratedCircuit {
	if t != nil && t.IntegratedCircuit != nil {
		return t.IntegratedCircuit
	}
	return nil
}

// GetOpticalChannel returns the value of the OpticalChannel struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field OpticalChannel is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetOpticalChannel() *OpenconfigPlatform_Components_Component_OpticalChannel {
	if t != nil && t.OpticalChannel != nil {
		return t.OpticalChannel
	}
	return nil
}

// GetPort returns the value of the Port struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Port is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetPort() *OpenconfigPlatform_Components_Component_Port {
	if t != nil && t.Port != nil {
		return t.Port
	}
	return nil
}

// GetPowerSupply returns the value of the PowerSupply struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field PowerSupply is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetPowerSupply() *OpenconfigPlatform_Components_Component_PowerSupply {
	if t != nil && t.PowerSupply != nil {
		return t.PowerSupply
	}
	return nil
}

// GetProperties returns the value of the Properties struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Properties is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetProperties() *OpenconfigPlatform_Components_Component_Properties {
	if t != nil && t.Properties != nil {
		return t.Properties
	}
	return nil
}

// GetSoftwareModule returns the value of the SoftwareModule struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field SoftwareModule is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetSoftwareModule() *OpenconfigPlatform_Components_Component_SoftwareModule {
	if t != nil && t.SoftwareModule != nil {
		return t.SoftwareModule
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetState() *OpenconfigPlatform_Components_Component_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetStorage returns the value of the Storage struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Storage is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetStorage() *OpenconfigPlatform_Components_Component_Storage {
	if t != nil && t.Storage != nil {
		return t.Storage
	}
	return nil
}

// GetSubcomponents returns the value of the Subcomponents struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Subcomponents is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetSubcomponents() *OpenconfigPlatform_Components_Component_Subcomponents {
	if t != nil && t.Subcomponents != nil {
		return t.Subcomponents
	}
	return nil
}

// GetTransceiver returns the value of the Transceiver struct pointer
// from OpenconfigPlatform_Components_Component. If the receiver or the field Transceiver is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component) GetTransceiver() *OpenconfigPlatform_Components_Component_Transceiver {
	if t != nil && t.Transceiver != nil {
		return t.Transceiver
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Backplane.PopulateDefaults()
	t.Chassis.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.ControllerCard.PopulateDefaults()
	t.Cpu.PopulateDefaults()
	t.Fabric.PopulateDefaults()
	t.Fan.PopulateDefaults()
	t.IntegratedCircuit.PopulateDefaults()
	t.OpticalChannel.PopulateDefaults()
	t.Port.PopulateDefaults()
	t.PowerSupply.PopulateDefaults()
	t.Properties.PopulateDefaults()
	t.SoftwareModule.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Storage.PopulateDefaults()
	t.Subcomponents.PopulateDefaults()
	t.Transceiver.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component.
func (*OpenconfigPlatform_Components_Component) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Backplane represents the /openconfig-platform/components/component/backplane YANG schema element.
type OpenconfigPlatform_Components_Component_Backplane struct {
	ΛMetadata []ygot.Annotation                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Backplane_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Backplane_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Backplane implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Backplane) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Backplane) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Backplane_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Backplane_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Backplane) GetOrCreateState() *OpenconfigPlatform_Components_Component_Backplane_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Backplane_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Backplane. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Backplane) GetConfig() *OpenconfigPlatform_Components_Component_Backplane_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Backplane. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Backplane) GetState() *OpenconfigPlatform_Components_Component_Backplane_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Backplane
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Backplane) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Backplane) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Backplane"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Backplane) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Backplane) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Backplane.
func (*OpenconfigPlatform_Components_Component_Backplane) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Backplane_Config represents the /openconfig-platform/components/component/backplane/config YANG schema element.
type OpenconfigPlatform_Components_Component_Backplane_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Backplane_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Backplane_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Backplane_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Backplane_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Backplane_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Backplane_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Backplane_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Backplane_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Backplane_Config.
func (*OpenconfigPlatform_Components_Component_Backplane_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Backplane_State represents the /openconfig-platform/components/component/backplane/state YANG schema element.
type OpenconfigPlatform_Components_Component_Backplane_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Backplane_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Backplane_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Backplane_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Backplane_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Backplane_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Backplane_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Backplane_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Backplane_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Backplane_State.
func (*OpenconfigPlatform_Components_Component_Backplane_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis represents the /openconfig-platform/components/component/chassis YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis struct {
	ΛMetadata    []ygot.Annotation                                            `path:"@" ygotAnnotation:"true"`
	Config       *OpenconfigPlatform_Components_Component_Chassis_Config      `path:"config" module:"openconfig-platform"`
	ΛConfig      []ygot.Annotation                                            `path:"@config" ygotAnnotation:"true"`
	State        *OpenconfigPlatform_Components_Component_Chassis_State       `path:"state" module:"openconfig-platform"`
	ΛState       []ygot.Annotation                                            `path:"@state" ygotAnnotation:"true"`
	Utilization  *OpenconfigPlatform_Components_Component_Chassis_Utilization `path:"utilization" module:"openconfig-platform"`
	ΛUtilization []ygot.Annotation                                            `path:"@utilization" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Chassis) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Chassis_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Chassis_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Chassis) GetOrCreateState() *OpenconfigPlatform_Components_Component_Chassis_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Chassis_State{}
	return t.State
}

// GetOrCreateUtilization retrieves the value of the Utilization field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Chassis) GetOrCreateUtilization() *OpenconfigPlatform_Components_Component_Chassis_Utilization {
	if t.Utilization != nil {
		return t.Utilization
	}
	t.Utilization = &OpenconfigPlatform_Components_Component_Chassis_Utilization{}
	return t.Utilization
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Chassis. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Chassis) GetConfig() *OpenconfigPlatform_Components_Component_Chassis_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Chassis. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Chassis) GetState() *OpenconfigPlatform_Components_Component_Chassis_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUtilization returns the value of the Utilization struct pointer
// from OpenconfigPlatform_Components_Component_Chassis. If the receiver or the field Utilization is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Chassis) GetUtilization() *OpenconfigPlatform_Components_Component_Chassis_Utilization {
	if t != nil && t.Utilization != nil {
		return t.Utilization
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Utilization.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis.
func (*OpenconfigPlatform_Components_Component_Chassis) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis_Config represents the /openconfig-platform/components/component/chassis/config YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis_Config.
func (*OpenconfigPlatform_Components_Component_Chassis_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis_State represents the /openconfig-platform/components/component/chassis/state YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis_State.
func (*OpenconfigPlatform_Components_Component_Chassis_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis_Utilization represents the /openconfig-platform/components/component/chassis/utilization YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis_Utilization struct {
	ΛMetadata  []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Resources  *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources `path:"resources" module:"openconfig-platform"`
	ΛResources []ygot.Annotation                                                      `path:"@resources" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_Utilization implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization) IsYANGGoStruct() {}

// GetOrCreateResources retrieves the value of the Resources field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization) GetOrCreateResources() *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources {
	if t.Resources != nil {
		return t.Resources
	}
	t.Resources = &OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources{}
	return t.Resources
}

// GetResources returns the value of the Resources struct pointer
// from OpenconfigPlatform_Components_Component_Chassis_Utilization. If the receiver or the field Resources is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization) GetResources() *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources {
	if t != nil && t.Resources != nil {
		return t.Resources
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis_Utilization
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Resources.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_Utilization"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis_Utilization.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources represents the /openconfig-platform/components/component/chassis/utilization/resources YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources struct {
	ΛMetadata []ygot.Annotation                                                                          `path:"@" ygotAnnotation:"true"`
	Resource  map[string]*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource `path:"resource" module:"openconfig-platform"`
	ΛResource []ygot.Annotation                                                                          `path:"@resource" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) IsYANGGoStruct() {}

// NewResource creates a new entry in the Resource list of the
// OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) NewResource(Name string) (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Resource == nil {
		t.Resource = make(map[string]*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Resource[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Resource", key)
	}

	t.Resource[key] = &OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource{
		Name: &Name,
	}

	return t.Resource[key], nil
}

// RenameResource renames an entry in the list Resource within
// the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) RenameResource(oldK, newK string) error {
	if _, ok := t.Resource[newK]; ok {
		return fmt.Errorf("key %v already exists in Resource", newK)
	}

	e, ok := t.Resource[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Resource", oldK)
	}
	e.Name = &newK

	t.Resource[newK] = e
	delete(t.Resource, oldK)
	return nil
}

// GetOrCreateResourceMap returns the list (map) from OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) GetOrCreateResourceMap() map[string]*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource {
	if t.Resource == nil {
		t.Resource = make(map[string]*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource)
	}
	return t.Resource
}

// GetOrCreateResource retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) GetOrCreateResource(Name string) *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource {

	key := Name

	if v, ok := t.Resource[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewResource(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateResource got unexpected error: %v", err))
	}
	return v
}

// GetResource retrieves the value with the specified key from
// the Resource map field of OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) GetResource(Name string) *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Resource[key]; ok {
		return lm
	}
	return nil
}

// AppendResource appends the supplied OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource struct to the
// list Resource of OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) AppendResource(v *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Resource == nil {
		t.Resource = make(map[string]*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource)
	}

	if _, ok := t.Resource[key]; ok {
		return fmt.Errorf("duplicate key for list Resource %v", key)
	}

	t.Resource[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Resource {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource represents the /openconfig-platform/components/component/chassis/utilization/resources/resource YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource struct {
	ΛMetadata []ygot.Annotation                                                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                                                      `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                                `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation                                                                      `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) GetOrCreateState() *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) GetConfig() *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) GetState() *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config represents the /openconfig-platform/components/component/chassis/utilization/resources/resource/config YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name                     *string           `path:"name" module:"openconfig-platform"`
	ΛName                    []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	UsedThresholdUpper       *uint8            `path:"used-threshold-upper" module:"openconfig-platform"`
	ΛUsedThresholdUpper      []ygot.Annotation `path:"@used-threshold-upper" ygotAnnotation:"true"`
	UsedThresholdUpperClear  *uint8            `path:"used-threshold-upper-clear" module:"openconfig-platform"`
	ΛUsedThresholdUpperClear []ygot.Annotation `path:"@used-threshold-upper-clear" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetUsedThresholdUpper retrieves the value of the leaf UsedThresholdUpper from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpper is set, it can
// safely use t.GetUsedThresholdUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) GetUsedThresholdUpper() uint8 {
	if t == nil || t.UsedThresholdUpper == nil {
		return 0
	}
	return *t.UsedThresholdUpper
}

// GetUsedThresholdUpperClear retrieves the value of the leaf UsedThresholdUpperClear from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpperClear is set, it can
// safely use t.GetUsedThresholdUpperClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpperClear == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) GetUsedThresholdUpperClear() uint8 {
	if t == nil || t.UsedThresholdUpperClear == nil {
		return 0
	}
	return *t.UsedThresholdUpperClear
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State represents the /openconfig-platform/components/component/chassis/utilization/resources/resource/state YANG schema element.
type OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State struct {
	ΛMetadata                   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Committed                   *uint64           `path:"committed" module:"openconfig-platform"`
	ΛCommitted                  []ygot.Annotation `path:"@committed" ygotAnnotation:"true"`
	Free                        *uint64           `path:"free" module:"openconfig-platform"`
	ΛFree                       []ygot.Annotation `path:"@free" ygotAnnotation:"true"`
	HighWatermark               *uint64           `path:"high-watermark" module:"openconfig-platform"`
	ΛHighWatermark              []ygot.Annotation `path:"@high-watermark" ygotAnnotation:"true"`
	LastHighWatermark           *uint64           `path:"last-high-watermark" module:"openconfig-platform"`
	ΛLastHighWatermark          []ygot.Annotation `path:"@last-high-watermark" ygotAnnotation:"true"`
	MaxLimit                    *uint64           `path:"max-limit" module:"openconfig-platform"`
	ΛMaxLimit                   []ygot.Annotation `path:"@max-limit" ygotAnnotation:"true"`
	Name                        *string           `path:"name" module:"openconfig-platform"`
	ΛName                       []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Used                        *uint64           `path:"used" module:"openconfig-platform"`
	ΛUsed                       []ygot.Annotation `path:"@used" ygotAnnotation:"true"`
	UsedThresholdUpper          *uint8            `path:"used-threshold-upper" module:"openconfig-platform"`
	ΛUsedThresholdUpper         []ygot.Annotation `path:"@used-threshold-upper" ygotAnnotation:"true"`
	UsedThresholdUpperClear     *uint8            `path:"used-threshold-upper-clear" module:"openconfig-platform"`
	ΛUsedThresholdUpperClear    []ygot.Annotation `path:"@used-threshold-upper-clear" ygotAnnotation:"true"`
	UsedThresholdUpperExceeded  *bool             `path:"used-threshold-upper-exceeded" module:"openconfig-platform"`
	ΛUsedThresholdUpperExceeded []ygot.Annotation `path:"@used-threshold-upper-exceeded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) IsYANGGoStruct() {
}

// GetCommitted retrieves the value of the leaf Committed from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Committed is set, it can
// safely use t.GetCommitted() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Committed == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetCommitted() uint64 {
	if t == nil || t.Committed == nil {
		return 0
	}
	return *t.Committed
}

// GetFree retrieves the value of the leaf Free from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Free is set, it can
// safely use t.GetFree() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Free == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetFree() uint64 {
	if t == nil || t.Free == nil {
		return 0
	}
	return *t.Free
}

// GetHighWatermark retrieves the value of the leaf HighWatermark from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HighWatermark is set, it can
// safely use t.GetHighWatermark() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HighWatermark == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetHighWatermark() uint64 {
	if t == nil || t.HighWatermark == nil {
		return 0
	}
	return *t.HighWatermark
}

// GetLastHighWatermark retrieves the value of the leaf LastHighWatermark from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastHighWatermark is set, it can
// safely use t.GetLastHighWatermark() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastHighWatermark == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetLastHighWatermark() uint64 {
	if t == nil || t.LastHighWatermark == nil {
		return 0
	}
	return *t.LastHighWatermark
}

// GetMaxLimit retrieves the value of the leaf MaxLimit from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxLimit is set, it can
// safely use t.GetMaxLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetMaxLimit() uint64 {
	if t == nil || t.MaxLimit == nil {
		return 0
	}
	return *t.MaxLimit
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetUsed retrieves the value of the leaf Used from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Used is set, it can
// safely use t.GetUsed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Used == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetUsed() uint64 {
	if t == nil || t.Used == nil {
		return 0
	}
	return *t.Used
}

// GetUsedThresholdUpper retrieves the value of the leaf UsedThresholdUpper from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpper is set, it can
// safely use t.GetUsedThresholdUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetUsedThresholdUpper() uint8 {
	if t == nil || t.UsedThresholdUpper == nil {
		return 0
	}
	return *t.UsedThresholdUpper
}

// GetUsedThresholdUpperClear retrieves the value of the leaf UsedThresholdUpperClear from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpperClear is set, it can
// safely use t.GetUsedThresholdUpperClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpperClear == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetUsedThresholdUpperClear() uint8 {
	if t == nil || t.UsedThresholdUpperClear == nil {
		return 0
	}
	return *t.UsedThresholdUpperClear
}

// GetUsedThresholdUpperExceeded retrieves the value of the leaf UsedThresholdUpperExceeded from the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpperExceeded is set, it can
// safely use t.GetUsedThresholdUpperExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpperExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) GetUsedThresholdUpperExceeded() bool {
	if t == nil || t.UsedThresholdUpperExceeded == nil {
		return false
	}
	return *t.UsedThresholdUpperExceeded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State.
func (*OpenconfigPlatform_Components_Component_Chassis_Utilization_Resources_Resource_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Config represents the /openconfig-platform/components/component/config YANG schema element.
type OpenconfigPlatform_Components_Component_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Config) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Config.
func (*OpenconfigPlatform_Components_Component_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_ControllerCard represents the /openconfig-platform/components/component/controller-card YANG schema element.
type OpenconfigPlatform_Components_Component_ControllerCard struct {
	ΛMetadata []ygot.Annotation                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_ControllerCard_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_ControllerCard_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_ControllerCard implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_ControllerCard) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_ControllerCard_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_ControllerCard_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) GetOrCreateState() *OpenconfigPlatform_Components_Component_ControllerCard_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_ControllerCard_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_ControllerCard. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) GetConfig() *OpenconfigPlatform_Components_Component_ControllerCard_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_ControllerCard. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) GetState() *OpenconfigPlatform_Components_Component_ControllerCard_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_ControllerCard
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_ControllerCard"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_ControllerCard) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_ControllerCard.
func (*OpenconfigPlatform_Components_Component_ControllerCard) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_ControllerCard_Config represents the /openconfig-platform/components/component/controller-card/config YANG schema element.
type OpenconfigPlatform_Components_Component_ControllerCard_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_ControllerCard_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_ControllerCard_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_ControllerCard_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_ControllerCard_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_ControllerCard_Config.
func (*OpenconfigPlatform_Components_Component_ControllerCard_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_ControllerCard_State represents the /openconfig-platform/components/component/controller-card/state YANG schema element.
type OpenconfigPlatform_Components_Component_ControllerCard_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_ControllerCard_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_ControllerCard_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_ControllerCard_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_ControllerCard_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_ControllerCard_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_ControllerCard_State.
func (*OpenconfigPlatform_Components_Component_ControllerCard_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Cpu represents the /openconfig-platform/components/component/cpu YANG schema element.
type OpenconfigPlatform_Components_Component_Cpu struct {
	ΛMetadata []ygot.Annotation                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Cpu_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Cpu_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Cpu implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Cpu) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Cpu) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Cpu_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Cpu_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Cpu) GetOrCreateState() *OpenconfigPlatform_Components_Component_Cpu_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Cpu_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Cpu. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Cpu) GetConfig() *OpenconfigPlatform_Components_Component_Cpu_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Cpu. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Cpu) GetState() *OpenconfigPlatform_Components_Component_Cpu_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Cpu
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Cpu) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Cpu) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Cpu"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Cpu) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Cpu) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Cpu.
func (*OpenconfigPlatform_Components_Component_Cpu) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Cpu_Config represents the /openconfig-platform/components/component/cpu/config YANG schema element.
type OpenconfigPlatform_Components_Component_Cpu_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Cpu_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Cpu_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Cpu_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Cpu_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Cpu_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Cpu_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Cpu_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Cpu_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Cpu_Config.
func (*OpenconfigPlatform_Components_Component_Cpu_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Cpu_State represents the /openconfig-platform/components/component/cpu/state YANG schema element.
type OpenconfigPlatform_Components_Component_Cpu_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Cpu_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Cpu_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Cpu_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Cpu_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Cpu_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Cpu_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Cpu_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Cpu_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Cpu_State.
func (*OpenconfigPlatform_Components_Component_Cpu_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Fabric represents the /openconfig-platform/components/component/fabric YANG schema element.
type OpenconfigPlatform_Components_Component_Fabric struct {
	ΛMetadata []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Fabric_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Fabric_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fabric implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Fabric) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Fabric) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Fabric_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Fabric_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Fabric) GetOrCreateState() *OpenconfigPlatform_Components_Component_Fabric_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Fabric_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Fabric. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Fabric) GetConfig() *OpenconfigPlatform_Components_Component_Fabric_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Fabric. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Fabric) GetState() *OpenconfigPlatform_Components_Component_Fabric_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Fabric
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Fabric) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fabric) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fabric"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fabric) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Fabric) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Fabric.
func (*OpenconfigPlatform_Components_Component_Fabric) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Fabric_Config represents the /openconfig-platform/components/component/fabric/config YANG schema element.
type OpenconfigPlatform_Components_Component_Fabric_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fabric_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Fabric_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Fabric_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Fabric_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fabric_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fabric_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fabric_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Fabric_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Fabric_Config.
func (*OpenconfigPlatform_Components_Component_Fabric_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Fabric_State represents the /openconfig-platform/components/component/fabric/state YANG schema element.
type OpenconfigPlatform_Components_Component_Fabric_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fabric_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Fabric_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Fabric_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Fabric_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fabric_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fabric_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fabric_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Fabric_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Fabric_State.
func (*OpenconfigPlatform_Components_Component_Fabric_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Fan represents the /openconfig-platform/components/component/fan YANG schema element.
type OpenconfigPlatform_Components_Component_Fan struct {
	ΛMetadata []ygot.Annotation                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Fan_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                   `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Fan_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fan implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Fan) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Fan) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Fan_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Fan_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Fan) GetOrCreateState() *OpenconfigPlatform_Components_Component_Fan_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Fan_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Fan. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Fan) GetConfig() *OpenconfigPlatform_Components_Component_Fan_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Fan. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Fan) GetState() *OpenconfigPlatform_Components_Component_Fan_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Fan
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Fan) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fan) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fan"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fan) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Fan) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Fan.
func (*OpenconfigPlatform_Components_Component_Fan) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Fan_Config represents the /openconfig-platform/components/component/fan/config YANG schema element.
type OpenconfigPlatform_Components_Component_Fan_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fan_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Fan_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Fan_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Fan_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fan_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fan_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fan_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Fan_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Fan_Config.
func (*OpenconfigPlatform_Components_Component_Fan_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Fan_State represents the /openconfig-platform/components/component/fan/state YANG schema element.
type OpenconfigPlatform_Components_Component_Fan_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fan_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Fan_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Fan_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Fan_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fan_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fan_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Fan_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Fan_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Fan_State.
func (*OpenconfigPlatform_Components_Component_Fan_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit represents the /openconfig-platform/components/component/integrated-circuit YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit struct {
	ΛMetadata    []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Config       *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config      `path:"config" module:"openconfig-platform"`
	ΛConfig      []ygot.Annotation                                                      `path:"@config" ygotAnnotation:"true"`
	State        *OpenconfigPlatform_Components_Component_IntegratedCircuit_State       `path:"state" module:"openconfig-platform"`
	ΛState       []ygot.Annotation                                                      `path:"@state" ygotAnnotation:"true"`
	Utilization  *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization `path:"utilization" module:"openconfig-platform"`
	ΛUtilization []ygot.Annotation                                                      `path:"@utilization" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_IntegratedCircuit_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) GetOrCreateState() *OpenconfigPlatform_Components_Component_IntegratedCircuit_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_IntegratedCircuit_State{}
	return t.State
}

// GetOrCreateUtilization retrieves the value of the Utilization field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) GetOrCreateUtilization() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization {
	if t.Utilization != nil {
		return t.Utilization
	}
	t.Utilization = &OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization{}
	return t.Utilization
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_IntegratedCircuit. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) GetConfig() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_IntegratedCircuit. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) GetState() *OpenconfigPlatform_Components_Component_IntegratedCircuit_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUtilization returns the value of the Utilization struct pointer
// from OpenconfigPlatform_Components_Component_IntegratedCircuit. If the receiver or the field Utilization is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) GetUtilization() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization {
	if t != nil && t.Utilization != nil {
		return t.Utilization
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Utilization.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit_Config represents the /openconfig-platform/components/component/integrated-circuit/config YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit_Config.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit_State represents the /openconfig-platform/components/component/integrated-circuit/state YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit_State.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization represents the /openconfig-platform/components/component/integrated-circuit/utilization YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization struct {
	ΛMetadata  []ygot.Annotation                                                                `path:"@" ygotAnnotation:"true"`
	Resources  *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources `path:"resources" module:"openconfig-platform"`
	ΛResources []ygot.Annotation                                                                `path:"@resources" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) IsYANGGoStruct() {}

// GetOrCreateResources retrieves the value of the Resources field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) GetOrCreateResources() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources {
	if t.Resources != nil {
		return t.Resources
	}
	t.Resources = &OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources{}
	return t.Resources
}

// GetResources returns the value of the Resources struct pointer
// from OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization. If the receiver or the field Resources is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) GetResources() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources {
	if t != nil && t.Resources != nil {
		return t.Resources
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Resources.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources represents the /openconfig-platform/components/component/integrated-circuit/utilization/resources YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources struct {
	ΛMetadata []ygot.Annotation                                                                                    `path:"@" ygotAnnotation:"true"`
	Resource  map[string]*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource `path:"resource" module:"openconfig-platform"`
	ΛResource []ygot.Annotation                                                                                    `path:"@resource" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) IsYANGGoStruct() {
}

// NewResource creates a new entry in the Resource list of the
// OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) NewResource(Name string) (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Resource == nil {
		t.Resource = make(map[string]*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Resource[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Resource", key)
	}

	t.Resource[key] = &OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource{
		Name: &Name,
	}

	return t.Resource[key], nil
}

// RenameResource renames an entry in the list Resource within
// the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) RenameResource(oldK, newK string) error {
	if _, ok := t.Resource[newK]; ok {
		return fmt.Errorf("key %v already exists in Resource", newK)
	}

	e, ok := t.Resource[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Resource", oldK)
	}
	e.Name = &newK

	t.Resource[newK] = e
	delete(t.Resource, oldK)
	return nil
}

// GetOrCreateResourceMap returns the list (map) from OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) GetOrCreateResourceMap() map[string]*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource {
	if t.Resource == nil {
		t.Resource = make(map[string]*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource)
	}
	return t.Resource
}

// GetOrCreateResource retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) GetOrCreateResource(Name string) *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource {

	key := Name

	if v, ok := t.Resource[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewResource(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateResource got unexpected error: %v", err))
	}
	return v
}

// GetResource retrieves the value with the specified key from
// the Resource map field of OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) GetResource(Name string) *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Resource[key]; ok {
		return lm
	}
	return nil
}

// AppendResource appends the supplied OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource struct to the
// list Resource of OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) AppendResource(v *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Resource == nil {
		t.Resource = make(map[string]*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource)
	}

	if _, ok := t.Resource[key]; ok {
		return fmt.Errorf("duplicate key for list Resource %v", key)
	}

	t.Resource[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Resource {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource represents the /openconfig-platform/components/component/integrated-circuit/utilization/resources/resource YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource struct {
	ΛMetadata []ygot.Annotation                                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                                                                `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                                          `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation                                                                                `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) GetOrCreateState() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) GetConfig() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) GetState() *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config represents the /openconfig-platform/components/component/integrated-circuit/utilization/resources/resource/config YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config struct {
	ΛMetadata                []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name                     *string           `path:"name" module:"openconfig-platform"`
	ΛName                    []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	UsedThresholdUpper       *uint8            `path:"used-threshold-upper" module:"openconfig-platform"`
	ΛUsedThresholdUpper      []ygot.Annotation `path:"@used-threshold-upper" ygotAnnotation:"true"`
	UsedThresholdUpperClear  *uint8            `path:"used-threshold-upper-clear" module:"openconfig-platform"`
	ΛUsedThresholdUpperClear []ygot.Annotation `path:"@used-threshold-upper-clear" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetUsedThresholdUpper retrieves the value of the leaf UsedThresholdUpper from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpper is set, it can
// safely use t.GetUsedThresholdUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) GetUsedThresholdUpper() uint8 {
	if t == nil || t.UsedThresholdUpper == nil {
		return 0
	}
	return *t.UsedThresholdUpper
}

// GetUsedThresholdUpperClear retrieves the value of the leaf UsedThresholdUpperClear from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpperClear is set, it can
// safely use t.GetUsedThresholdUpperClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpperClear == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) GetUsedThresholdUpperClear() uint8 {
	if t == nil || t.UsedThresholdUpperClear == nil {
		return 0
	}
	return *t.UsedThresholdUpperClear
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State represents the /openconfig-platform/components/component/integrated-circuit/utilization/resources/resource/state YANG schema element.
type OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State struct {
	ΛMetadata                   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Committed                   *uint64           `path:"committed" module:"openconfig-platform"`
	ΛCommitted                  []ygot.Annotation `path:"@committed" ygotAnnotation:"true"`
	Free                        *uint64           `path:"free" module:"openconfig-platform"`
	ΛFree                       []ygot.Annotation `path:"@free" ygotAnnotation:"true"`
	HighWatermark               *uint64           `path:"high-watermark" module:"openconfig-platform"`
	ΛHighWatermark              []ygot.Annotation `path:"@high-watermark" ygotAnnotation:"true"`
	LastHighWatermark           *uint64           `path:"last-high-watermark" module:"openconfig-platform"`
	ΛLastHighWatermark          []ygot.Annotation `path:"@last-high-watermark" ygotAnnotation:"true"`
	MaxLimit                    *uint64           `path:"max-limit" module:"openconfig-platform"`
	ΛMaxLimit                   []ygot.Annotation `path:"@max-limit" ygotAnnotation:"true"`
	Name                        *string           `path:"name" module:"openconfig-platform"`
	ΛName                       []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Used                        *uint64           `path:"used" module:"openconfig-platform"`
	ΛUsed                       []ygot.Annotation `path:"@used" ygotAnnotation:"true"`
	UsedThresholdUpper          *uint8            `path:"used-threshold-upper" module:"openconfig-platform"`
	ΛUsedThresholdUpper         []ygot.Annotation `path:"@used-threshold-upper" ygotAnnotation:"true"`
	UsedThresholdUpperClear     *uint8            `path:"used-threshold-upper-clear" module:"openconfig-platform"`
	ΛUsedThresholdUpperClear    []ygot.Annotation `path:"@used-threshold-upper-clear" ygotAnnotation:"true"`
	UsedThresholdUpperExceeded  *bool             `path:"used-threshold-upper-exceeded" module:"openconfig-platform"`
	ΛUsedThresholdUpperExceeded []ygot.Annotation `path:"@used-threshold-upper-exceeded" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) IsYANGGoStruct() {
}

// GetCommitted retrieves the value of the leaf Committed from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Committed is set, it can
// safely use t.GetCommitted() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Committed == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetCommitted() uint64 {
	if t == nil || t.Committed == nil {
		return 0
	}
	return *t.Committed
}

// GetFree retrieves the value of the leaf Free from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Free is set, it can
// safely use t.GetFree() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Free == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetFree() uint64 {
	if t == nil || t.Free == nil {
		return 0
	}
	return *t.Free
}

// GetHighWatermark retrieves the value of the leaf HighWatermark from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HighWatermark is set, it can
// safely use t.GetHighWatermark() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HighWatermark == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetHighWatermark() uint64 {
	if t == nil || t.HighWatermark == nil {
		return 0
	}
	return *t.HighWatermark
}

// GetLastHighWatermark retrieves the value of the leaf LastHighWatermark from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastHighWatermark is set, it can
// safely use t.GetLastHighWatermark() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastHighWatermark == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetLastHighWatermark() uint64 {
	if t == nil || t.LastHighWatermark == nil {
		return 0
	}
	return *t.LastHighWatermark
}

// GetMaxLimit retrieves the value of the leaf MaxLimit from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxLimit is set, it can
// safely use t.GetMaxLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetMaxLimit() uint64 {
	if t == nil || t.MaxLimit == nil {
		return 0
	}
	return *t.MaxLimit
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetUsed retrieves the value of the leaf Used from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Used is set, it can
// safely use t.GetUsed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Used == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetUsed() uint64 {
	if t == nil || t.Used == nil {
		return 0
	}
	return *t.Used
}

// GetUsedThresholdUpper retrieves the value of the leaf UsedThresholdUpper from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpper is set, it can
// safely use t.GetUsedThresholdUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetUsedThresholdUpper() uint8 {
	if t == nil || t.UsedThresholdUpper == nil {
		return 0
	}
	return *t.UsedThresholdUpper
}

// GetUsedThresholdUpperClear retrieves the value of the leaf UsedThresholdUpperClear from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpperClear is set, it can
// safely use t.GetUsedThresholdUpperClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpperClear == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetUsedThresholdUpperClear() uint8 {
	if t == nil || t.UsedThresholdUpperClear == nil {
		return 0
	}
	return *t.UsedThresholdUpperClear
}

// GetUsedThresholdUpperExceeded retrieves the value of the leaf UsedThresholdUpperExceeded from the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedThresholdUpperExceeded is set, it can
// safely use t.GetUsedThresholdUpperExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedThresholdUpperExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) GetUsedThresholdUpperExceeded() bool {
	if t == nil || t.UsedThresholdUpperExceeded == nil {
		return false
	}
	return *t.UsedThresholdUpperExceeded
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State.
func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Utilization_Resources_Resource_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_OpticalChannel represents the /openconfig-platform/components/component/optical-channel YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel struct {
	ΛMetadata []ygot.Annotation                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_OpticalChannel_Config `path:"config" module:"openconfig-terminal-device"`
	ΛConfig   []ygot.Annotation                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_OpticalChannel_State  `path:"state" module:"openconfig-terminal-device"`
	ΛState    []ygot.Annotation                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_OpticalChannel_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_OpticalChannel_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) GetOrCreateState() *OpenconfigPlatform_Components_Component_OpticalChannel_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_OpticalChannel_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) GetConfig() *OpenconfigPlatform_Components_Component_OpticalChannel_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) GetState() *OpenconfigPlatform_Components_Component_OpticalChannel_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel.
func (*OpenconfigPlatform_Components_Component_OpticalChannel) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_Config represents the /openconfig-platform/components/component/optical-channel/config YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_Config struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Frequency          *uint64           `path:"frequency" module:"openconfig-terminal-device"`
	ΛFrequency         []ygot.Annotation `path:"@frequency" ygotAnnotation:"true"`
	LinePort           *string           `path:"line-port" module:"openconfig-terminal-device"`
	ΛLinePort          []ygot.Annotation `path:"@line-port" ygotAnnotation:"true"`
	OperationalMode    *uint16           `path:"operational-mode" module:"openconfig-terminal-device"`
	ΛOperationalMode   []ygot.Annotation `path:"@operational-mode" ygotAnnotation:"true"`
	TargetOutputPower  *float64          `path:"target-output-power" module:"openconfig-terminal-device"`
	ΛTargetOutputPower []ygot.Annotation `path:"@target-output-power" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_Config) IsYANGGoStruct() {}

// GetFrequency retrieves the value of the leaf Frequency from the OpenconfigPlatform_Components_Component_OpticalChannel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Frequency is set, it can
// safely use t.GetFrequency() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Frequency == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) GetFrequency() uint64 {
	if t == nil || t.Frequency == nil {
		return 0
	}
	return *t.Frequency
}

// GetLinePort retrieves the value of the leaf LinePort from the OpenconfigPlatform_Components_Component_OpticalChannel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinePort is set, it can
// safely use t.GetLinePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinePort == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) GetLinePort() string {
	if t == nil || t.LinePort == nil {
		return ""
	}
	return *t.LinePort
}

// GetOperationalMode retrieves the value of the leaf OperationalMode from the OpenconfigPlatform_Components_Component_OpticalChannel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OperationalMode is set, it can
// safely use t.GetOperationalMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OperationalMode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) GetOperationalMode() uint16 {
	if t == nil || t.OperationalMode == nil {
		return 0
	}
	return *t.OperationalMode
}

// GetTargetOutputPower retrieves the value of the leaf TargetOutputPower from the OpenconfigPlatform_Components_Component_OpticalChannel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TargetOutputPower is set, it can
// safely use t.GetTargetOutputPower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TargetOutputPower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) GetTargetOutputPower() float64 {
	if t == nil || t.TargetOutputPower == nil {
		return 0.0
	}
	return *t.TargetOutputPower
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_Config.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State represents the /openconfig-platform/components/component/optical-channel/state YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State struct {
	ΛMetadata                              []ygot.Annotation                                                                                   `path:"@" ygotAnnotation:"true"`
	CarrierFrequencyOffset                 *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset                `path:"carrier-frequency-offset" module:"openconfig-terminal-device"`
	ΛCarrierFrequencyOffset                []ygot.Annotation                                                                                   `path:"@carrier-frequency-offset" ygotAnnotation:"true"`
	ChromaticDispersion                    *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion                   `path:"chromatic-dispersion" module:"openconfig-terminal-device"`
	ΛChromaticDispersion                   []ygot.Annotation                                                                                   `path:"@chromatic-dispersion" ygotAnnotation:"true"`
	Esnr                                   *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr                                  `path:"esnr" module:"openconfig-terminal-device"`
	ΛEsnr                                  []ygot.Annotation                                                                                   `path:"@esnr" ygotAnnotation:"true"`
	FecUncorrectableBlocks                 *uint64                                                                                             `path:"fec-uncorrectable-blocks" module:"openconfig-terminal-device"`
	ΛFecUncorrectableBlocks                []ygot.Annotation                                                                                   `path:"@fec-uncorrectable-blocks" ygotAnnotation:"true"`
	Frequency                              *uint64                                                                                             `path:"frequency" module:"openconfig-terminal-device"`
	ΛFrequency                             []ygot.Annotation                                                                                   `path:"@frequency" ygotAnnotation:"true"`
	GroupId                                *uint32                                                                                             `path:"group-id" module:"openconfig-terminal-device"`
	ΛGroupId                               []ygot.Annotation                                                                                   `path:"@group-id" ygotAnnotation:"true"`
	InputPower                             *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower                            `path:"input-power" module:"openconfig-terminal-device"`
	ΛInputPower                            []ygot.Annotation                                                                                   `path:"@input-power" ygotAnnotation:"true"`
	LaserBiasCurrent                       *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent                      `path:"laser-bias-current" module:"openconfig-terminal-device"`
	ΛLaserBiasCurrent                      []ygot.Annotation                                                                                   `path:"@laser-bias-current" ygotAnnotation:"true"`
	LinePort                               *string                                                                                             `path:"line-port" module:"openconfig-terminal-device"`
	ΛLinePort                              []ygot.Annotation                                                                                   `path:"@line-port" ygotAnnotation:"true"`
	ModulationErrorRatio                   *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio                  `path:"modulation-error-ratio" module:"openconfig-terminal-device"`
	ΛModulationErrorRatio                  []ygot.Annotation                                                                                   `path:"@modulation-error-ratio" ygotAnnotation:"true"`
	ModulatorBiasXPhase                    *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase                   `path:"modulator-bias-x-phase" module:"openconfig-terminal-device"`
	ΛModulatorBiasXPhase                   []ygot.Annotation                                                                                   `path:"@modulator-bias-x-phase" ygotAnnotation:"true"`
	ModulatorBiasXi                        *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi                       `path:"modulator-bias-xi" module:"openconfig-terminal-device"`
	ΛModulatorBiasXi                       []ygot.Annotation                                                                                   `path:"@modulator-bias-xi" ygotAnnotation:"true"`
	ModulatorBiasXq                        *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq                       `path:"modulator-bias-xq" module:"openconfig-terminal-device"`
	ΛModulatorBiasXq                       []ygot.Annotation                                                                                   `path:"@modulator-bias-xq" ygotAnnotation:"true"`
	ModulatorBiasYPhase                    *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase                   `path:"modulator-bias-y-phase" module:"openconfig-terminal-device"`
	ΛModulatorBiasYPhase                   []ygot.Annotation                                                                                   `path:"@modulator-bias-y-phase" ygotAnnotation:"true"`
	ModulatorBiasYi                        *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi                       `path:"modulator-bias-yi" module:"openconfig-terminal-device"`
	ΛModulatorBiasYi                       []ygot.Annotation                                                                                   `path:"@modulator-bias-yi" ygotAnnotation:"true"`
	ModulatorBiasYq                        *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq                       `path:"modulator-bias-yq" module:"openconfig-terminal-device"`
	ΛModulatorBiasYq                       []ygot.Annotation                                                                                   `path:"@modulator-bias-yq" ygotAnnotation:"true"`
	OperationalMode                        *uint16                                                                                             `path:"operational-mode" module:"openconfig-terminal-device"`
	ΛOperationalMode                       []ygot.Annotation                                                                                   `path:"@operational-mode" ygotAnnotation:"true"`
	Osnr                                   *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr                                  `path:"osnr" module:"openconfig-terminal-device"`
	ΛOsnr                                  []ygot.Annotation                                                                                   `path:"@osnr" ygotAnnotation:"true"`
	OutputPower                            *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower                           `path:"output-power" module:"openconfig-terminal-device"`
	ΛOutputPower                           []ygot.Annotation                                                                                   `path:"@output-power" ygotAnnotation:"true"`
	PolarizationDependentLoss              *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss             `path:"polarization-dependent-loss" module:"openconfig-terminal-device"`
	ΛPolarizationDependentLoss             []ygot.Annotation                                                                                   `path:"@polarization-dependent-loss" ygotAnnotation:"true"`
	PolarizationModeDispersion             *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion            `path:"polarization-mode-dispersion" module:"openconfig-terminal-device"`
	ΛPolarizationModeDispersion            []ygot.Annotation                                                                                   `path:"@polarization-mode-dispersion" ygotAnnotation:"true"`
	PostFecBer                             *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer                            `path:"post-fec-ber" module:"openconfig-terminal-device"`
	ΛPostFecBer                            []ygot.Annotation                                                                                   `path:"@post-fec-ber" ygotAnnotation:"true"`
	PreFecBer                              *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer                             `path:"pre-fec-ber" module:"openconfig-terminal-device"`
	ΛPreFecBer                             []ygot.Annotation                                                                                   `path:"@pre-fec-ber" ygotAnnotation:"true"`
	QValue                                 *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue                                `path:"q-value" module:"openconfig-terminal-device"`
	ΛQValue                                []ygot.Annotation                                                                                   `path:"@q-value" ygotAnnotation:"true"`
	SecondOrderPolarizationModeDispersion  *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion `path:"second-order-polarization-mode-dispersion" module:"openconfig-terminal-device"`
	ΛSecondOrderPolarizationModeDispersion []ygot.Annotation                                                                                   `path:"@second-order-polarization-mode-dispersion" ygotAnnotation:"true"`
	SopRoc                                 *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc                                `path:"sop-roc" module:"openconfig-terminal-device"`
	ΛSopRoc                                []ygot.Annotation                                                                                   `path:"@sop-roc" ygotAnnotation:"true"`
	TargetOutputPower                      *float64                                                                                            `path:"target-output-power" module:"openconfig-terminal-device"`
	ΛTargetOutputPower                     []ygot.Annotation                                                                                   `path:"@target-output-power" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State) IsYANGGoStruct() {}

// GetOrCreateCarrierFrequencyOffset retrieves the value of the CarrierFrequencyOffset field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateCarrierFrequencyOffset() *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset {
	if t.CarrierFrequencyOffset != nil {
		return t.CarrierFrequencyOffset
	}
	t.CarrierFrequencyOffset = &OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset{}
	return t.CarrierFrequencyOffset
}

// GetOrCreateChromaticDispersion retrieves the value of the ChromaticDispersion field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateChromaticDispersion() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion {
	if t.ChromaticDispersion != nil {
		return t.ChromaticDispersion
	}
	t.ChromaticDispersion = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion{}
	return t.ChromaticDispersion
}

// GetOrCreateEsnr retrieves the value of the Esnr field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateEsnr() *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr {
	if t.Esnr != nil {
		return t.Esnr
	}
	t.Esnr = &OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr{}
	return t.Esnr
}

// GetOrCreateInputPower retrieves the value of the InputPower field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateInputPower() *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower {
	if t.InputPower != nil {
		return t.InputPower
	}
	t.InputPower = &OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower{}
	return t.InputPower
}

// GetOrCreateLaserBiasCurrent retrieves the value of the LaserBiasCurrent field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateLaserBiasCurrent() *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent {
	if t.LaserBiasCurrent != nil {
		return t.LaserBiasCurrent
	}
	t.LaserBiasCurrent = &OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent{}
	return t.LaserBiasCurrent
}

// GetOrCreateModulationErrorRatio retrieves the value of the ModulationErrorRatio field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateModulationErrorRatio() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio {
	if t.ModulationErrorRatio != nil {
		return t.ModulationErrorRatio
	}
	t.ModulationErrorRatio = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio{}
	return t.ModulationErrorRatio
}

// GetOrCreateModulatorBiasXPhase retrieves the value of the ModulatorBiasXPhase field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateModulatorBiasXPhase() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase {
	if t.ModulatorBiasXPhase != nil {
		return t.ModulatorBiasXPhase
	}
	t.ModulatorBiasXPhase = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase{}
	return t.ModulatorBiasXPhase
}

// GetOrCreateModulatorBiasXi retrieves the value of the ModulatorBiasXi field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateModulatorBiasXi() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi {
	if t.ModulatorBiasXi != nil {
		return t.ModulatorBiasXi
	}
	t.ModulatorBiasXi = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi{}
	return t.ModulatorBiasXi
}

// GetOrCreateModulatorBiasXq retrieves the value of the ModulatorBiasXq field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateModulatorBiasXq() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq {
	if t.ModulatorBiasXq != nil {
		return t.ModulatorBiasXq
	}
	t.ModulatorBiasXq = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq{}
	return t.ModulatorBiasXq
}

// GetOrCreateModulatorBiasYPhase retrieves the value of the ModulatorBiasYPhase field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateModulatorBiasYPhase() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase {
	if t.ModulatorBiasYPhase != nil {
		return t.ModulatorBiasYPhase
	}
	t.ModulatorBiasYPhase = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase{}
	return t.ModulatorBiasYPhase
}

// GetOrCreateModulatorBiasYi retrieves the value of the ModulatorBiasYi field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateModulatorBiasYi() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi {
	if t.ModulatorBiasYi != nil {
		return t.ModulatorBiasYi
	}
	t.ModulatorBiasYi = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi{}
	return t.ModulatorBiasYi
}

// GetOrCreateModulatorBiasYq retrieves the value of the ModulatorBiasYq field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateModulatorBiasYq() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq {
	if t.ModulatorBiasYq != nil {
		return t.ModulatorBiasYq
	}
	t.ModulatorBiasYq = &OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq{}
	return t.ModulatorBiasYq
}

// GetOrCreateOsnr retrieves the value of the Osnr field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateOsnr() *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr {
	if t.Osnr != nil {
		return t.Osnr
	}
	t.Osnr = &OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr{}
	return t.Osnr
}

// GetOrCreateOutputPower retrieves the value of the OutputPower field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateOutputPower() *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower {
	if t.OutputPower != nil {
		return t.OutputPower
	}
	t.OutputPower = &OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower{}
	return t.OutputPower
}

// GetOrCreatePolarizationDependentLoss retrieves the value of the PolarizationDependentLoss field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreatePolarizationDependentLoss() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss {
	if t.PolarizationDependentLoss != nil {
		return t.PolarizationDependentLoss
	}
	t.PolarizationDependentLoss = &OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss{}
	return t.PolarizationDependentLoss
}

// GetOrCreatePolarizationModeDispersion retrieves the value of the PolarizationModeDispersion field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreatePolarizationModeDispersion() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion {
	if t.PolarizationModeDispersion != nil {
		return t.PolarizationModeDispersion
	}
	t.PolarizationModeDispersion = &OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion{}
	return t.PolarizationModeDispersion
}

// GetOrCreatePostFecBer retrieves the value of the PostFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreatePostFecBer() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer {
	if t.PostFecBer != nil {
		return t.PostFecBer
	}
	t.PostFecBer = &OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer{}
	return t.PostFecBer
}

// GetOrCreatePreFecBer retrieves the value of the PreFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreatePreFecBer() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer {
	if t.PreFecBer != nil {
		return t.PreFecBer
	}
	t.PreFecBer = &OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer{}
	return t.PreFecBer
}

// GetOrCreateQValue retrieves the value of the QValue field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateQValue() *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue {
	if t.QValue != nil {
		return t.QValue
	}
	t.QValue = &OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue{}
	return t.QValue
}

// GetOrCreateSecondOrderPolarizationModeDispersion retrieves the value of the SecondOrderPolarizationModeDispersion field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateSecondOrderPolarizationModeDispersion() *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion {
	if t.SecondOrderPolarizationModeDispersion != nil {
		return t.SecondOrderPolarizationModeDispersion
	}
	t.SecondOrderPolarizationModeDispersion = &OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion{}
	return t.SecondOrderPolarizationModeDispersion
}

// GetOrCreateSopRoc retrieves the value of the SopRoc field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOrCreateSopRoc() *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc {
	if t.SopRoc != nil {
		return t.SopRoc
	}
	t.SopRoc = &OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc{}
	return t.SopRoc
}

// GetCarrierFrequencyOffset returns the value of the CarrierFrequencyOffset struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field CarrierFrequencyOffset is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetCarrierFrequencyOffset() *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset {
	if t != nil && t.CarrierFrequencyOffset != nil {
		return t.CarrierFrequencyOffset
	}
	return nil
}

// GetChromaticDispersion returns the value of the ChromaticDispersion struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ChromaticDispersion is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetChromaticDispersion() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion {
	if t != nil && t.ChromaticDispersion != nil {
		return t.ChromaticDispersion
	}
	return nil
}

// GetEsnr returns the value of the Esnr struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field Esnr is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetEsnr() *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr {
	if t != nil && t.Esnr != nil {
		return t.Esnr
	}
	return nil
}

// GetInputPower returns the value of the InputPower struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field InputPower is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetInputPower() *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower {
	if t != nil && t.InputPower != nil {
		return t.InputPower
	}
	return nil
}

// GetLaserBiasCurrent returns the value of the LaserBiasCurrent struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field LaserBiasCurrent is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetLaserBiasCurrent() *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent {
	if t != nil && t.LaserBiasCurrent != nil {
		return t.LaserBiasCurrent
	}
	return nil
}

// GetModulationErrorRatio returns the value of the ModulationErrorRatio struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ModulationErrorRatio is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetModulationErrorRatio() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio {
	if t != nil && t.ModulationErrorRatio != nil {
		return t.ModulationErrorRatio
	}
	return nil
}

// GetModulatorBiasXPhase returns the value of the ModulatorBiasXPhase struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ModulatorBiasXPhase is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetModulatorBiasXPhase() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase {
	if t != nil && t.ModulatorBiasXPhase != nil {
		return t.ModulatorBiasXPhase
	}
	return nil
}

// GetModulatorBiasXi returns the value of the ModulatorBiasXi struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ModulatorBiasXi is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetModulatorBiasXi() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi {
	if t != nil && t.ModulatorBiasXi != nil {
		return t.ModulatorBiasXi
	}
	return nil
}

// GetModulatorBiasXq returns the value of the ModulatorBiasXq struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ModulatorBiasXq is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetModulatorBiasXq() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq {
	if t != nil && t.ModulatorBiasXq != nil {
		return t.ModulatorBiasXq
	}
	return nil
}

// GetModulatorBiasYPhase returns the value of the ModulatorBiasYPhase struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ModulatorBiasYPhase is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetModulatorBiasYPhase() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase {
	if t != nil && t.ModulatorBiasYPhase != nil {
		return t.ModulatorBiasYPhase
	}
	return nil
}

// GetModulatorBiasYi returns the value of the ModulatorBiasYi struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ModulatorBiasYi is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetModulatorBiasYi() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi {
	if t != nil && t.ModulatorBiasYi != nil {
		return t.ModulatorBiasYi
	}
	return nil
}

// GetModulatorBiasYq returns the value of the ModulatorBiasYq struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field ModulatorBiasYq is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetModulatorBiasYq() *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq {
	if t != nil && t.ModulatorBiasYq != nil {
		return t.ModulatorBiasYq
	}
	return nil
}

// GetOsnr returns the value of the Osnr struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field Osnr is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOsnr() *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr {
	if t != nil && t.Osnr != nil {
		return t.Osnr
	}
	return nil
}

// GetOutputPower returns the value of the OutputPower struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field OutputPower is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOutputPower() *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower {
	if t != nil && t.OutputPower != nil {
		return t.OutputPower
	}
	return nil
}

// GetPolarizationDependentLoss returns the value of the PolarizationDependentLoss struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field PolarizationDependentLoss is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetPolarizationDependentLoss() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss {
	if t != nil && t.PolarizationDependentLoss != nil {
		return t.PolarizationDependentLoss
	}
	return nil
}

// GetPolarizationModeDispersion returns the value of the PolarizationModeDispersion struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field PolarizationModeDispersion is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetPolarizationModeDispersion() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion {
	if t != nil && t.PolarizationModeDispersion != nil {
		return t.PolarizationModeDispersion
	}
	return nil
}

// GetPostFecBer returns the value of the PostFecBer struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field PostFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetPostFecBer() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer {
	if t != nil && t.PostFecBer != nil {
		return t.PostFecBer
	}
	return nil
}

// GetPreFecBer returns the value of the PreFecBer struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field PreFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetPreFecBer() *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer {
	if t != nil && t.PreFecBer != nil {
		return t.PreFecBer
	}
	return nil
}

// GetQValue returns the value of the QValue struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field QValue is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetQValue() *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue {
	if t != nil && t.QValue != nil {
		return t.QValue
	}
	return nil
}

// GetSecondOrderPolarizationModeDispersion returns the value of the SecondOrderPolarizationModeDispersion struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field SecondOrderPolarizationModeDispersion is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetSecondOrderPolarizationModeDispersion() *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion {
	if t != nil && t.SecondOrderPolarizationModeDispersion != nil {
		return t.SecondOrderPolarizationModeDispersion
	}
	return nil
}

// GetSopRoc returns the value of the SopRoc struct pointer
// from OpenconfigPlatform_Components_Component_OpticalChannel_State. If the receiver or the field SopRoc is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetSopRoc() *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc {
	if t != nil && t.SopRoc != nil {
		return t.SopRoc
	}
	return nil
}

// GetFecUncorrectableBlocks retrieves the value of the leaf FecUncorrectableBlocks from the OpenconfigPlatform_Components_Component_OpticalChannel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecUncorrectableBlocks is set, it can
// safely use t.GetFecUncorrectableBlocks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecUncorrectableBlocks == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetFecUncorrectableBlocks() uint64 {
	if t == nil || t.FecUncorrectableBlocks == nil {
		return 0
	}
	return *t.FecUncorrectableBlocks
}

// GetFrequency retrieves the value of the leaf Frequency from the OpenconfigPlatform_Components_Component_OpticalChannel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Frequency is set, it can
// safely use t.GetFrequency() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Frequency == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetFrequency() uint64 {
	if t == nil || t.Frequency == nil {
		return 0
	}
	return *t.Frequency
}

// GetGroupId retrieves the value of the leaf GroupId from the OpenconfigPlatform_Components_Component_OpticalChannel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if GroupId is set, it can
// safely use t.GetGroupId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.GroupId == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetGroupId() uint32 {
	if t == nil || t.GroupId == nil {
		return 0
	}
	return *t.GroupId
}

// GetLinePort retrieves the value of the leaf LinePort from the OpenconfigPlatform_Components_Component_OpticalChannel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinePort is set, it can
// safely use t.GetLinePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinePort == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetLinePort() string {
	if t == nil || t.LinePort == nil {
		return ""
	}
	return *t.LinePort
}

// GetOperationalMode retrieves the value of the leaf OperationalMode from the OpenconfigPlatform_Components_Component_OpticalChannel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OperationalMode is set, it can
// safely use t.GetOperationalMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OperationalMode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetOperationalMode() uint16 {
	if t == nil || t.OperationalMode == nil {
		return 0
	}
	return *t.OperationalMode
}

// GetTargetOutputPower retrieves the value of the leaf TargetOutputPower from the OpenconfigPlatform_Components_Component_OpticalChannel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TargetOutputPower is set, it can
// safely use t.GetTargetOutputPower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TargetOutputPower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) GetTargetOutputPower() float64 {
	if t == nil || t.TargetOutputPower == nil {
		return 0.0
	}
	return *t.TargetOutputPower
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.CarrierFrequencyOffset.PopulateDefaults()
	t.ChromaticDispersion.PopulateDefaults()
	t.Esnr.PopulateDefaults()
	t.InputPower.PopulateDefaults()
	t.LaserBiasCurrent.PopulateDefaults()
	t.ModulationErrorRatio.PopulateDefaults()
	t.ModulatorBiasXPhase.PopulateDefaults()
	t.ModulatorBiasXi.PopulateDefaults()
	t.ModulatorBiasXq.PopulateDefaults()
	t.ModulatorBiasYPhase.PopulateDefaults()
	t.ModulatorBiasYi.PopulateDefaults()
	t.ModulatorBiasYq.PopulateDefaults()
	t.Osnr.PopulateDefaults()
	t.OutputPower.PopulateDefaults()
	t.PolarizationDependentLoss.PopulateDefaults()
	t.PolarizationModeDispersion.PopulateDefaults()
	t.PostFecBer.PopulateDefaults()
	t.PreFecBer.PopulateDefaults()
	t.QValue.PopulateDefaults()
	t.SecondOrderPolarizationModeDispersion.PopulateDefaults()
	t.SopRoc.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset represents the /openconfig-platform/components/component/optical-channel/state/carrier-frequency-offset YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_CarrierFrequencyOffset) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion represents the /openconfig-platform/components/component/optical-channel/state/chromatic-dispersion YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr represents the /openconfig-platform/components/component/optical-channel/state/esnr YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_Esnr) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower represents the /openconfig-platform/components/component/optical-channel/state/input-power YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent represents the /openconfig-platform/components/component/optical-channel/state/laser-bias-current YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio represents the /openconfig-platform/components/component/optical-channel/state/modulation-error-ratio YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulationErrorRatio) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase represents the /openconfig-platform/components/component/optical-channel/state/modulator-bias-x-phase YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXPhase) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi represents the /openconfig-platform/components/component/optical-channel/state/modulator-bias-xi YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXi) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq represents the /openconfig-platform/components/component/optical-channel/state/modulator-bias-xq YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasXq) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase represents the /openconfig-platform/components/component/optical-channel/state/modulator-bias-y-phase YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYPhase) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi represents the /openconfig-platform/components/component/optical-channel/state/modulator-bias-yi YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYi) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq represents the /openconfig-platform/components/component/optical-channel/state/modulator-bias-yq YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ModulatorBiasYq) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr represents the /openconfig-platform/components/component/optical-channel/state/osnr YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_Osnr) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower represents the /openconfig-platform/components/component/optical-channel/state/output-power YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss represents the /openconfig-platform/components/component/optical-channel/state/polarization-dependent-loss YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion represents the /openconfig-platform/components/component/optical-channel/state/polarization-mode-dispersion YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer represents the /openconfig-platform/components/component/optical-channel/state/post-fec-ber YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PostFecBer) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer represents the /openconfig-platform/components/component/optical-channel/state/pre-fec-ber YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PreFecBer) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue represents the /openconfig-platform/components/component/optical-channel/state/q-value YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_QValue) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion represents the /openconfig-platform/components/component/optical-channel/state/second-order-polarization-mode-dispersion YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc represents the /openconfig-platform/components/component/optical-channel/state/sop-roc YANG schema element.
type OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc.
func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_SopRoc) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigPlatform_Components_Component_Port represents the /openconfig-platform/components/component/port YANG schema element.
type OpenconfigPlatform_Components_Component_Port struct {
	ΛMetadata     []ygot.Annotation                                          `path:"@" ygotAnnotation:"true"`
	BreakoutMode  *OpenconfigPlatform_Components_Component_Port_BreakoutMode `path:"breakout-mode" module:"openconfig-platform-port"`
	ΛBreakoutMode []ygot.Annotation                                          `path:"@breakout-mode" ygotAnnotation:"true"`
	Config        *OpenconfigPlatform_Components_Component_Port_Config       `path:"config" module:"openconfig-platform"`
	ΛConfig       []ygot.Annotation                                          `path:"@config" ygotAnnotation:"true"`
	State         *OpenconfigPlatform_Components_Component_Port_State        `path:"state" module:"openconfig-platform"`
	ΛState        []ygot.Annotation                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port) IsYANGGoStruct() {}

// GetOrCreateBreakoutMode retrieves the value of the BreakoutMode field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Port) GetOrCreateBreakoutMode() *OpenconfigPlatform_Components_Component_Port_BreakoutMode {
	if t.BreakoutMode != nil {
		return t.BreakoutMode
	}
	t.BreakoutMode = &OpenconfigPlatform_Components_Component_Port_BreakoutMode{}
	return t.BreakoutMode
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Port) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Port_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Port_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Port) GetOrCreateState() *OpenconfigPlatform_Components_Component_Port_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Port_State{}
	return t.State
}

// GetBreakoutMode returns the value of the BreakoutMode struct pointer
// from OpenconfigPlatform_Components_Component_Port. If the receiver or the field BreakoutMode is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Port) GetBreakoutMode() *OpenconfigPlatform_Components_Component_Port_BreakoutMode {
	if t != nil && t.BreakoutMode != nil {
		return t.BreakoutMode
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Port. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Port) GetConfig() *OpenconfigPlatform_Components_Component_Port_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Port. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Port) GetState() *OpenconfigPlatform_Components_Component_Port_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.BreakoutMode.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port.
func (*OpenconfigPlatform_Components_Component_Port) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Port_BreakoutMode represents the /openconfig-platform/components/component/port/breakout-mode YANG schema element.
type OpenconfigPlatform_Components_Component_Port_BreakoutMode struct {
	ΛMetadata []ygot.Annotation                                                 `path:"@" ygotAnnotation:"true"`
	Groups    *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups `path:"groups" module:"openconfig-platform-port"`
	ΛGroups   []ygot.Annotation                                                 `path:"@groups" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode) IsYANGGoStruct() {}

// GetOrCreateGroups retrieves the value of the Groups field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) GetOrCreateGroups() *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups {
	if t.Groups != nil {
		return t.Groups
	}
	t.Groups = &OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups{}
	return t.Groups
}

// GetGroups returns the value of the Groups struct pointer
// from OpenconfigPlatform_Components_Component_Port_BreakoutMode. If the receiver or the field Groups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) GetGroups() *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups {
	if t != nil && t.Groups != nil {
		return t.Groups
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port_BreakoutMode
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Groups.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port_BreakoutMode.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode) ΛBelongingModule() string {
	return "openconfig-platform-port"
}

// OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups represents the /openconfig-platform/components/component/port/breakout-mode/groups YANG schema element.
type OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups struct {
	ΛMetadata []ygot.Annotation                                                                 `path:"@" ygotAnnotation:"true"`
	Group     map[uint8]*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group `path:"group" module:"openconfig-platform-port"`
	ΛGroup    []ygot.Annotation                                                                 `path:"@group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) IsYANGGoStruct() {}

// NewGroup creates a new entry in the Group list of the
// OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) NewGroup(Index uint8) (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Group == nil {
		t.Group = make(map[uint8]*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Group[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Group", key)
	}

	t.Group[key] = &OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group{
		Index: &Index,
	}

	return t.Group[key], nil
}

// RenameGroup renames an entry in the list Group within
// the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) RenameGroup(oldK, newK uint8) error {
	if _, ok := t.Group[newK]; ok {
		return fmt.Errorf("key %v already exists in Group", newK)
	}

	e, ok := t.Group[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Group", oldK)
	}
	e.Index = &newK

	t.Group[newK] = e
	delete(t.Group, oldK)
	return nil
}

// GetOrCreateGroupMap returns the list (map) from OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) GetOrCreateGroupMap() map[uint8]*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group {
	if t.Group == nil {
		t.Group = make(map[uint8]*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group)
	}
	return t.Group
}

// GetOrCreateGroup retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) GetOrCreateGroup(Index uint8) *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group {

	key := Index

	if v, ok := t.Group[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewGroup(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateGroup got unexpected error: %v", err))
	}
	return v
}

// GetGroup retrieves the value with the specified key from
// the Group map field of OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) GetGroup(Index uint8) *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Group[key]; ok {
		return lm
	}
	return nil
}

// AppendGroup appends the supplied OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group struct to the
// list Group of OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) AppendGroup(v *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Group == nil {
		t.Group = make(map[uint8]*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group)
	}

	if _, ok := t.Group[key]; ok {
		return fmt.Errorf("duplicate key for list Group %v", key)
	}

	t.Group[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Group {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups) ΛBelongingModule() string {
	return "openconfig-platform-port"
}

// OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group represents the /openconfig-platform/components/component/port/breakout-mode/groups/group YANG schema element.
type OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group struct {
	ΛMetadata []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config `path:"config" module:"openconfig-platform-port"`
	ΛConfig   []ygot.Annotation                                                              `path:"@config" ygotAnnotation:"true"`
	Index     *uint8                                                                         `path:"index" module:"openconfig-platform-port"`
	ΛIndex    []ygot.Annotation                                                              `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State  `path:"state" module:"openconfig-platform-port"`
	ΛState    []ygot.Annotation                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) GetOrCreateState() *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) GetConfig() *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) GetState() *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group) ΛBelongingModule() string {
	return "openconfig-platform-port"
}

// OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config represents the /openconfig-platform/components/component/port/breakout-mode/groups/group/config YANG schema element.
type OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config struct {
	ΛMetadata            []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	BreakoutSpeed        E_OpenconfigIfEthernet_ETHERNET_SPEED `path:"breakout-speed" module:"openconfig-platform-port"`
	ΛBreakoutSpeed       []ygot.Annotation                     `path:"@breakout-speed" ygotAnnotation:"true"`
	Index                *uint8                                `path:"index" module:"openconfig-platform-port"`
	ΛIndex               []ygot.Annotation                     `path:"@index" ygotAnnotation:"true"`
	NumBreakouts         *uint8                                `path:"num-breakouts" module:"openconfig-platform-port"`
	ΛNumBreakouts        []ygot.Annotation                     `path:"@num-breakouts" ygotAnnotation:"true"`
	NumPhysicalChannels  *uint8                                `path:"num-physical-channels" module:"openconfig-platform-port"`
	ΛNumPhysicalChannels []ygot.Annotation                     `path:"@num-physical-channels" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) IsYANGGoStruct() {
}

// GetBreakoutSpeed retrieves the value of the leaf BreakoutSpeed from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BreakoutSpeed is set, it can
// safely use t.GetBreakoutSpeed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BreakoutSpeed == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) GetBreakoutSpeed() E_OpenconfigIfEthernet_ETHERNET_SPEED {
	if t == nil || t.BreakoutSpeed == 0 {
		return 0
	}
	return t.BreakoutSpeed
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetNumBreakouts retrieves the value of the leaf NumBreakouts from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NumBreakouts is set, it can
// safely use t.GetNumBreakouts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NumBreakouts == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) GetNumBreakouts() uint8 {
	if t == nil || t.NumBreakouts == nil {
		return 0
	}
	return *t.NumBreakouts
}

// GetNumPhysicalChannels retrieves the value of the leaf NumPhysicalChannels from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NumPhysicalChannels is set, it can
// safely use t.GetNumPhysicalChannels() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NumPhysicalChannels == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) GetNumPhysicalChannels() uint8 {
	if t == nil || t.NumPhysicalChannels == nil {
		return 0
	}
	return *t.NumPhysicalChannels
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_Config) ΛBelongingModule() string {
	return "openconfig-platform-port"
}

// OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State represents the /openconfig-platform/components/component/port/breakout-mode/groups/group/state YANG schema element.
type OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State struct {
	ΛMetadata            []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	BreakoutSpeed        E_OpenconfigIfEthernet_ETHERNET_SPEED `path:"breakout-speed" module:"openconfig-platform-port"`
	ΛBreakoutSpeed       []ygot.Annotation                     `path:"@breakout-speed" ygotAnnotation:"true"`
	Index                *uint8                                `path:"index" module:"openconfig-platform-port"`
	ΛIndex               []ygot.Annotation                     `path:"@index" ygotAnnotation:"true"`
	NumBreakouts         *uint8                                `path:"num-breakouts" module:"openconfig-platform-port"`
	ΛNumBreakouts        []ygot.Annotation                     `path:"@num-breakouts" ygotAnnotation:"true"`
	NumPhysicalChannels  *uint8                                `path:"num-physical-channels" module:"openconfig-platform-port"`
	ΛNumPhysicalChannels []ygot.Annotation                     `path:"@num-physical-channels" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) IsYANGGoStruct() {
}

// GetBreakoutSpeed retrieves the value of the leaf BreakoutSpeed from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BreakoutSpeed is set, it can
// safely use t.GetBreakoutSpeed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BreakoutSpeed == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) GetBreakoutSpeed() E_OpenconfigIfEthernet_ETHERNET_SPEED {
	if t == nil || t.BreakoutSpeed == 0 {
		return 0
	}
	return t.BreakoutSpeed
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) GetIndex() uint8 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetNumBreakouts retrieves the value of the leaf NumBreakouts from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NumBreakouts is set, it can
// safely use t.GetNumBreakouts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NumBreakouts == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) GetNumBreakouts() uint8 {
	if t == nil || t.NumBreakouts == nil {
		return 0
	}
	return *t.NumBreakouts
}

// GetNumPhysicalChannels retrieves the value of the leaf NumPhysicalChannels from the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NumPhysicalChannels is set, it can
// safely use t.GetNumPhysicalChannels() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NumPhysicalChannels == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) GetNumPhysicalChannels() uint8 {
	if t == nil || t.NumPhysicalChannels == nil {
		return 0
	}
	return *t.NumPhysicalChannels
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State.
func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Groups_Group_State) ΛBelongingModule() string {
	return "openconfig-platform-port"
}

// OpenconfigPlatform_Components_Component_Port_Config represents the /openconfig-platform/components/component/port/config YANG schema element.
type OpenconfigPlatform_Components_Component_Port_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port_Config.
func (*OpenconfigPlatform_Components_Component_Port_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Port_State represents the /openconfig-platform/components/component/port/state YANG schema element.
type OpenconfigPlatform_Components_Component_Port_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Port_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Port_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Port_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Port_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Port_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Port_State.
func (*OpenconfigPlatform_Components_Component_Port_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_PowerSupply represents the /openconfig-platform/components/component/power-supply YANG schema element.
type OpenconfigPlatform_Components_Component_PowerSupply struct {
	ΛMetadata []ygot.Annotation                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_PowerSupply_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_PowerSupply_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_PowerSupply implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_PowerSupply) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_PowerSupply_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_PowerSupply_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) GetOrCreateState() *OpenconfigPlatform_Components_Component_PowerSupply_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_PowerSupply_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_PowerSupply. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) GetConfig() *OpenconfigPlatform_Components_Component_PowerSupply_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_PowerSupply. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) GetState() *OpenconfigPlatform_Components_Component_PowerSupply_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_PowerSupply
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_PowerSupply"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_PowerSupply) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_PowerSupply.
func (*OpenconfigPlatform_Components_Component_PowerSupply) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_PowerSupply_Config represents the /openconfig-platform/components/component/power-supply/config YANG schema element.
type OpenconfigPlatform_Components_Component_PowerSupply_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_PowerSupply_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_PowerSupply_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_PowerSupply_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_PowerSupply_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_PowerSupply_Config.
func (*OpenconfigPlatform_Components_Component_PowerSupply_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_PowerSupply_State represents the /openconfig-platform/components/component/power-supply/state YANG schema element.
type OpenconfigPlatform_Components_Component_PowerSupply_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_PowerSupply_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_PowerSupply_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_PowerSupply_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_PowerSupply_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_PowerSupply_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_PowerSupply_State.
func (*OpenconfigPlatform_Components_Component_PowerSupply_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Properties represents the /openconfig-platform/components/component/properties YANG schema element.
type OpenconfigPlatform_Components_Component_Properties struct {
	ΛMetadata []ygot.Annotation                                                       `path:"@" ygotAnnotation:"true"`
	Property  map[string]*OpenconfigPlatform_Components_Component_Properties_Property `path:"property" module:"openconfig-platform"`
	ΛProperty []ygot.Annotation                                                       `path:"@property" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Properties) IsYANGGoStruct() {}

// NewProperty creates a new entry in the Property list of the
// OpenconfigPlatform_Components_Component_Properties struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components_Component_Properties) NewProperty(Name string) (*OpenconfigPlatform_Components_Component_Properties_Property, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Property == nil {
		t.Property = make(map[string]*OpenconfigPlatform_Components_Component_Properties_Property)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Property[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Property", key)
	}

	t.Property[key] = &OpenconfigPlatform_Components_Component_Properties_Property{
		Name: &Name,
	}

	return t.Property[key], nil
}

// RenameProperty renames an entry in the list Property within
// the OpenconfigPlatform_Components_Component_Properties struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components_Component_Properties) RenameProperty(oldK, newK string) error {
	if _, ok := t.Property[newK]; ok {
		return fmt.Errorf("key %v already exists in Property", newK)
	}

	e, ok := t.Property[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Property", oldK)
	}
	e.Name = &newK

	t.Property[newK] = e
	delete(t.Property, oldK)
	return nil
}

// GetOrCreatePropertyMap returns the list (map) from OpenconfigPlatform_Components_Component_Properties.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components_Component_Properties) GetOrCreatePropertyMap() map[string]*OpenconfigPlatform_Components_Component_Properties_Property {
	if t.Property == nil {
		t.Property = make(map[string]*OpenconfigPlatform_Components_Component_Properties_Property)
	}
	return t.Property
}

// GetOrCreateProperty retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components_Component_Properties. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components_Component_Properties) GetOrCreateProperty(Name string) *OpenconfigPlatform_Components_Component_Properties_Property {

	key := Name

	if v, ok := t.Property[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewProperty(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateProperty got unexpected error: %v", err))
	}
	return v
}

// GetProperty retrieves the value with the specified key from
// the Property map field of OpenconfigPlatform_Components_Component_Properties. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components_Component_Properties) GetProperty(Name string) *OpenconfigPlatform_Components_Component_Properties_Property {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Property[key]; ok {
		return lm
	}
	return nil
}

// AppendProperty appends the supplied OpenconfigPlatform_Components_Component_Properties_Property struct to the
// list Property of OpenconfigPlatform_Components_Component_Properties. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component_Properties_Property already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components_Component_Properties) AppendProperty(v *OpenconfigPlatform_Components_Component_Properties_Property) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Property == nil {
		t.Property = make(map[string]*OpenconfigPlatform_Components_Component_Properties_Property)
	}

	if _, ok := t.Property[key]; ok {
		return fmt.Errorf("duplicate key for list Property %v", key)
	}

	t.Property[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Properties
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Properties) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Property {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Properties) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Properties.
func (*OpenconfigPlatform_Components_Component_Properties) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Properties_Property represents the /openconfig-platform/components/component/properties/property YANG schema element.
type OpenconfigPlatform_Components_Component_Properties_Property struct {
	ΛMetadata []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Properties_Property_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                                   `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                             `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation                                                   `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Properties_Property_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                                   `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties_Property implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Properties_Property) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Properties_Property_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Properties_Property_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) GetOrCreateState() *OpenconfigPlatform_Components_Component_Properties_Property_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Properties_Property_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Properties_Property. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) GetConfig() *OpenconfigPlatform_Components_Component_Properties_Property_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Properties_Property. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) GetState() *OpenconfigPlatform_Components_Component_Properties_Property_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Properties_Property
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Properties_Property
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Properties_Property struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties_Property"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Properties_Property) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Properties_Property.
func (*OpenconfigPlatform_Components_Component_Properties_Property) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Properties_Property_Config represents the /openconfig-platform/components/component/properties/property/config YANG schema element.
type OpenconfigPlatform_Components_Component_Properties_Property_Config struct {
	ΛMetadata []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	Name      *string                                                                        `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation                                                              `path:"@name" ygotAnnotation:"true"`
	Value     OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union `path:"value" module:"openconfig-platform"`
	ΛValue    []ygot.Annotation                                                              `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties_Property_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Properties_Property_Config) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Properties_Property_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetValue retrieves the value of the leaf Value from the OpenconfigPlatform_Components_Component_Properties_Property_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) GetValue() OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Properties_Property_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties_Property_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Properties_Property_Config.
func (*OpenconfigPlatform_Components_Component_Properties_Property_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-platform/components/component/properties/property/config/value within the YANG schema.
// Union type can be one of [UnionBool, UnionFloat64, UnionInt64, UnionString, UnionUint64].
type OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface {
	// Union type can be one of [UnionBool, UnionFloat64, UnionInt64, UnionString, UnionUint64]
	Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union()
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that UnionBool
// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface.
func (UnionBool) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that UnionFloat64
// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface.
func (UnionFloat64) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that UnionInt64
// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface.
func (UnionInt64) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that UnionString
// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface.
func (UnionString) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that UnionUint64
// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface.
func (UnionUint64) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {
}

// To_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) To_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union(i interface{}) (OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union, error) {
	if v, ok := i.(OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case bool:
		return UnionBool(v), nil
	case float64:
		return UnionFloat64(v), nil
	case int64:
		return UnionInt64(v), nil
	case string:
		return UnionString(v), nil
	case uint64:
		return UnionUint64(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union, unknown union type, got: %T, want any of [bool, float64, int64, string, uint64]", i, i)
}

// OpenconfigPlatform_Components_Component_Properties_Property_State represents the /openconfig-platform/components/component/properties/property/state YANG schema element.
type OpenconfigPlatform_Components_Component_Properties_Property_State struct {
	ΛMetadata     []ygot.Annotation                                                             `path:"@" ygotAnnotation:"true"`
	Configurable  *bool                                                                         `path:"configurable" module:"openconfig-platform"`
	ΛConfigurable []ygot.Annotation                                                             `path:"@configurable" ygotAnnotation:"true"`
	Name          *string                                                                       `path:"name" module:"openconfig-platform"`
	ΛName         []ygot.Annotation                                                             `path:"@name" ygotAnnotation:"true"`
	Value         OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union `path:"value" module:"openconfig-platform"`
	ΛValue        []ygot.Annotation                                                             `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties_Property_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Properties_Property_State) IsYANGGoStruct() {}

// GetConfigurable retrieves the value of the leaf Configurable from the OpenconfigPlatform_Components_Component_Properties_Property_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Configurable is set, it can
// safely use t.GetConfigurable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Configurable == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) GetConfigurable() bool {
	if t == nil || t.Configurable == nil {
		return false
	}
	return *t.Configurable
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Properties_Property_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetValue retrieves the value of the leaf Value from the OpenconfigPlatform_Components_Component_Properties_Property_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) GetValue() OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Properties_Property_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties_Property_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Properties_Property_State.
func (*OpenconfigPlatform_Components_Component_Properties_Property_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-platform/components/component/properties/property/state/value within the YANG schema.
// Union type can be one of [UnionBool, UnionFloat64, UnionInt64, UnionString, UnionUint64].
type OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface {
	// Union type can be one of [UnionBool, UnionFloat64, UnionInt64, UnionString, UnionUint64]
	Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union()
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that UnionBool
// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface.
func (UnionBool) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that UnionFloat64
// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface.
func (UnionFloat64) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that UnionInt64
// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface.
func (UnionInt64) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that UnionString
// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface.
func (UnionString) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that UnionUint64
// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface.
func (UnionUint64) Documentation_for_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {
}

// To_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) To_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union(i interface{}) (OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union, error) {
	if v, ok := i.(OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case bool:
		return UnionBool(v), nil
	case float64:
		return UnionFloat64(v), nil
	case int64:
		return UnionInt64(v), nil
	case string:
		return UnionString(v), nil
	case uint64:
		return UnionUint64(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union, unknown union type, got: %T, want any of [bool, float64, int64, string, uint64]", i, i)
}

// OpenconfigPlatform_Components_Component_SoftwareModule represents the /openconfig-platform/components/component/software-module YANG schema element.
type OpenconfigPlatform_Components_Component_SoftwareModule struct {
	ΛMetadata []ygot.Annotation                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_SoftwareModule_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_SoftwareModule_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_SoftwareModule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_SoftwareModule) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_SoftwareModule_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_SoftwareModule_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) GetOrCreateState() *OpenconfigPlatform_Components_Component_SoftwareModule_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_SoftwareModule_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_SoftwareModule. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) GetConfig() *OpenconfigPlatform_Components_Component_SoftwareModule_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_SoftwareModule. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) GetState() *OpenconfigPlatform_Components_Component_SoftwareModule_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_SoftwareModule
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_SoftwareModule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_SoftwareModule.
func (*OpenconfigPlatform_Components_Component_SoftwareModule) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_SoftwareModule_Config represents the /openconfig-platform/components/component/software-module/config YANG schema element.
type OpenconfigPlatform_Components_Component_SoftwareModule_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_SoftwareModule_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_SoftwareModule_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_SoftwareModule_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_SoftwareModule_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_SoftwareModule_Config.
func (*OpenconfigPlatform_Components_Component_SoftwareModule_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_SoftwareModule_State represents the /openconfig-platform/components/component/software-module/state YANG schema element.
type OpenconfigPlatform_Components_Component_SoftwareModule_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_SoftwareModule_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_SoftwareModule_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_SoftwareModule_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_SoftwareModule_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_SoftwareModule_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_SoftwareModule_State.
func (*OpenconfigPlatform_Components_Component_SoftwareModule_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State represents the /openconfig-platform/components/component/state YANG schema element.
type OpenconfigPlatform_Components_Component_State struct {
	ΛMetadata             []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	AllocatedPower        *uint32                                                             `path:"allocated-power" module:"openconfig-platform"`
	ΛAllocatedPower       []ygot.Annotation                                                   `path:"@allocated-power" ygotAnnotation:"true"`
	BaseMacAddress        *string                                                             `path:"base-mac-address" module:"openconfig-platform"`
	ΛBaseMacAddress       []ygot.Annotation                                                   `path:"@base-mac-address" ygotAnnotation:"true"`
	CleiCode              *string                                                             `path:"clei-code" module:"openconfig-platform"`
	ΛCleiCode             []ygot.Annotation                                                   `path:"@clei-code" ygotAnnotation:"true"`
	Description           *string                                                             `path:"description" module:"openconfig-platform"`
	ΛDescription          []ygot.Annotation                                                   `path:"@description" ygotAnnotation:"true"`
	Empty                 *bool                                                               `path:"empty" module:"openconfig-platform"`
	ΛEmpty                []ygot.Annotation                                                   `path:"@empty" ygotAnnotation:"true"`
	EquipmentFailure      *bool                                                               `path:"equipment-failure" module:"openconfig-alarms"`
	ΛEquipmentFailure     []ygot.Annotation                                                   `path:"@equipment-failure" ygotAnnotation:"true"`
	EquipmentMismatch     *bool                                                               `path:"equipment-mismatch" module:"openconfig-alarms"`
	ΛEquipmentMismatch    []ygot.Annotation                                                   `path:"@equipment-mismatch" ygotAnnotation:"true"`
	FirmwareVersion       *string                                                             `path:"firmware-version" module:"openconfig-platform"`
	ΛFirmwareVersion      []ygot.Annotation                                                   `path:"@firmware-version" ygotAnnotation:"true"`
	HardwareVersion       *string                                                             `path:"hardware-version" module:"openconfig-platform"`
	ΛHardwareVersion      []ygot.Annotation                                                   `path:"@hardware-version" ygotAnnotation:"true"`
	Id                    *string                                                             `path:"id" module:"openconfig-platform"`
	ΛId                   []ygot.Annotation                                                   `path:"@id" ygotAnnotation:"true"`
	LastRebootReason      E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON                   `path:"last-reboot-reason" module:"openconfig-platform"`
	ΛLastRebootReason     []ygot.Annotation                                                   `path:"@last-reboot-reason" ygotAnnotation:"true"`
	LastRebootTime        *uint64                                                             `path:"last-reboot-time" module:"openconfig-platform"`
	ΛLastRebootTime       []ygot.Annotation                                                   `path:"@last-reboot-time" ygotAnnotation:"true"`
	LastSwitchoverReason  *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason `path:"last-switchover-reason" module:"openconfig-platform"`
	ΛLastSwitchoverReason []ygot.Annotation                                                   `path:"@last-switchover-reason" ygotAnnotation:"true"`
	LastSwitchoverTime    *uint64                                                             `path:"last-switchover-time" module:"openconfig-platform"`
	ΛLastSwitchoverTime   []ygot.Annotation                                                   `path:"@last-switchover-time" ygotAnnotation:"true"`
	Location              *string                                                             `path:"location" module:"openconfig-platform"`
	ΛLocation             []ygot.Annotation                                                   `path:"@location" ygotAnnotation:"true"`
	Memory                *OpenconfigPlatform_Components_Component_State_Memory               `path:"memory" module:"openconfig-platform"`
	ΛMemory               []ygot.Annotation                                                   `path:"@memory" ygotAnnotation:"true"`
	MfgDate               *string                                                             `path:"mfg-date" module:"openconfig-platform"`
	ΛMfgDate              []ygot.Annotation                                                   `path:"@mfg-date" ygotAnnotation:"true"`
	MfgName               *string                                                             `path:"mfg-name" module:"openconfig-platform"`
	ΛMfgName              []ygot.Annotation                                                   `path:"@mfg-name" ygotAnnotation:"true"`
	ModelName             *string                                                             `path:"model-name" module:"openconfig-platform"`
	ΛModelName            []ygot.Annotation                                                   `path:"@model-name" ygotAnnotation:"true"`
	Name                  *string                                                             `path:"name" module:"openconfig-platform"`
	ΛName                 []ygot.Annotation                                                   `path:"@name" ygotAnnotation:"true"`
	OperStatus            E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS                     `path:"oper-status" module:"openconfig-platform"`
	ΛOperStatus           []ygot.Annotation                                                   `path:"@oper-status" ygotAnnotation:"true"`
	Parent                *string                                                             `path:"parent" module:"openconfig-platform"`
	ΛParent               []ygot.Annotation                                                   `path:"@parent" ygotAnnotation:"true"`
	PartNo                *string                                                             `path:"part-no" module:"openconfig-platform"`
	ΛPartNo               []ygot.Annotation                                                   `path:"@part-no" ygotAnnotation:"true"`
	Pcie                  *OpenconfigPlatform_Components_Component_State_Pcie                 `path:"pcie" module:"openconfig-platform"`
	ΛPcie                 []ygot.Annotation                                                   `path:"@pcie" ygotAnnotation:"true"`
	RedundantRole         E_OpenconfigPlatformTypes_ComponentRedundantRole                    `path:"redundant-role" module:"openconfig-platform"`
	ΛRedundantRole        []ygot.Annotation                                                   `path:"@redundant-role" ygotAnnotation:"true"`
	Removable             *bool                                                               `path:"removable" module:"openconfig-platform"`
	ΛRemovable            []ygot.Annotation                                                   `path:"@removable" ygotAnnotation:"true"`
	SerialNo              *string                                                             `path:"serial-no" module:"openconfig-platform"`
	ΛSerialNo             []ygot.Annotation                                                   `path:"@serial-no" ygotAnnotation:"true"`
	SoftwareVersion       *string                                                             `path:"software-version" module:"openconfig-platform"`
	ΛSoftwareVersion      []ygot.Annotation                                                   `path:"@software-version" ygotAnnotation:"true"`
	SwitchoverReady       *bool                                                               `path:"switchover-ready" module:"openconfig-platform"`
	ΛSwitchoverReady      []ygot.Annotation                                                   `path:"@switchover-ready" ygotAnnotation:"true"`
	Temperature           *OpenconfigPlatform_Components_Component_State_Temperature          `path:"temperature" module:"openconfig-platform"`
	ΛTemperature          []ygot.Annotation                                                   `path:"@temperature" ygotAnnotation:"true"`
	Type                  OpenconfigPlatform_Components_Component_State_Type_Union            `path:"type" module:"openconfig-platform"`
	ΛType                 []ygot.Annotation                                                   `path:"@type" ygotAnnotation:"true"`
	UsedPower             *uint32                                                             `path:"used-power" module:"openconfig-platform"`
	ΛUsedPower            []ygot.Annotation                                                   `path:"@used-power" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State) IsYANGGoStruct() {}

// GetOrCreateLastSwitchoverReason retrieves the value of the LastSwitchoverReason field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_State) GetOrCreateLastSwitchoverReason() *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason {
	if t.LastSwitchoverReason != nil {
		return t.LastSwitchoverReason
	}
	t.LastSwitchoverReason = &OpenconfigPlatform_Components_Component_State_LastSwitchoverReason{}
	return t.LastSwitchoverReason
}

// GetOrCreateMemory retrieves the value of the Memory field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_State) GetOrCreateMemory() *OpenconfigPlatform_Components_Component_State_Memory {
	if t.Memory != nil {
		return t.Memory
	}
	t.Memory = &OpenconfigPlatform_Components_Component_State_Memory{}
	return t.Memory
}

// GetOrCreatePcie retrieves the value of the Pcie field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_State) GetOrCreatePcie() *OpenconfigPlatform_Components_Component_State_Pcie {
	if t.Pcie != nil {
		return t.Pcie
	}
	t.Pcie = &OpenconfigPlatform_Components_Component_State_Pcie{}
	return t.Pcie
}

// GetOrCreateTemperature retrieves the value of the Temperature field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_State) GetOrCreateTemperature() *OpenconfigPlatform_Components_Component_State_Temperature {
	if t.Temperature != nil {
		return t.Temperature
	}
	t.Temperature = &OpenconfigPlatform_Components_Component_State_Temperature{}
	return t.Temperature
}

// GetLastSwitchoverReason returns the value of the LastSwitchoverReason struct pointer
// from OpenconfigPlatform_Components_Component_State. If the receiver or the field LastSwitchoverReason is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_State) GetLastSwitchoverReason() *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason {
	if t != nil && t.LastSwitchoverReason != nil {
		return t.LastSwitchoverReason
	}
	return nil
}

// GetMemory returns the value of the Memory struct pointer
// from OpenconfigPlatform_Components_Component_State. If the receiver or the field Memory is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_State) GetMemory() *OpenconfigPlatform_Components_Component_State_Memory {
	if t != nil && t.Memory != nil {
		return t.Memory
	}
	return nil
}

// GetPcie returns the value of the Pcie struct pointer
// from OpenconfigPlatform_Components_Component_State. If the receiver or the field Pcie is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_State) GetPcie() *OpenconfigPlatform_Components_Component_State_Pcie {
	if t != nil && t.Pcie != nil {
		return t.Pcie
	}
	return nil
}

// GetTemperature returns the value of the Temperature struct pointer
// from OpenconfigPlatform_Components_Component_State. If the receiver or the field Temperature is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_State) GetTemperature() *OpenconfigPlatform_Components_Component_State_Temperature {
	if t != nil && t.Temperature != nil {
		return t.Temperature
	}
	return nil
}

// GetAllocatedPower retrieves the value of the leaf AllocatedPower from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AllocatedPower is set, it can
// safely use t.GetAllocatedPower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AllocatedPower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetAllocatedPower() uint32 {
	if t == nil || t.AllocatedPower == nil {
		return 0
	}
	return *t.AllocatedPower
}

// GetBaseMacAddress retrieves the value of the leaf BaseMacAddress from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BaseMacAddress is set, it can
// safely use t.GetBaseMacAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BaseMacAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetBaseMacAddress() string {
	if t == nil || t.BaseMacAddress == nil {
		return ""
	}
	return *t.BaseMacAddress
}

// GetCleiCode retrieves the value of the leaf CleiCode from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CleiCode is set, it can
// safely use t.GetCleiCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CleiCode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetCleiCode() string {
	if t == nil || t.CleiCode == nil {
		return ""
	}
	return *t.CleiCode
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetEmpty retrieves the value of the leaf Empty from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Empty is set, it can
// safely use t.GetEmpty() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Empty == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetEmpty() bool {
	if t == nil || t.Empty == nil {
		return false
	}
	return *t.Empty
}

// GetEquipmentFailure retrieves the value of the leaf EquipmentFailure from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EquipmentFailure is set, it can
// safely use t.GetEquipmentFailure() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EquipmentFailure == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetEquipmentFailure() bool {
	if t == nil || t.EquipmentFailure == nil {
		return false
	}
	return *t.EquipmentFailure
}

// GetEquipmentMismatch retrieves the value of the leaf EquipmentMismatch from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EquipmentMismatch is set, it can
// safely use t.GetEquipmentMismatch() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EquipmentMismatch == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetEquipmentMismatch() bool {
	if t == nil || t.EquipmentMismatch == nil {
		return false
	}
	return *t.EquipmentMismatch
}

// GetFirmwareVersion retrieves the value of the leaf FirmwareVersion from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FirmwareVersion is set, it can
// safely use t.GetFirmwareVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FirmwareVersion == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetFirmwareVersion() string {
	if t == nil || t.FirmwareVersion == nil {
		return ""
	}
	return *t.FirmwareVersion
}

// GetHardwareVersion retrieves the value of the leaf HardwareVersion from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HardwareVersion is set, it can
// safely use t.GetHardwareVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HardwareVersion == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetHardwareVersion() string {
	if t == nil || t.HardwareVersion == nil {
		return ""
	}
	return *t.HardwareVersion
}

// GetId retrieves the value of the leaf Id from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetLastRebootReason retrieves the value of the leaf LastRebootReason from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastRebootReason is set, it can
// safely use t.GetLastRebootReason() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastRebootReason == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetLastRebootReason() E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON {
	if t == nil || t.LastRebootReason == 0 {
		return 0
	}
	return t.LastRebootReason
}

// GetLastRebootTime retrieves the value of the leaf LastRebootTime from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastRebootTime is set, it can
// safely use t.GetLastRebootTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastRebootTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetLastRebootTime() uint64 {
	if t == nil || t.LastRebootTime == nil {
		return 0
	}
	return *t.LastRebootTime
}

// GetLastSwitchoverTime retrieves the value of the leaf LastSwitchoverTime from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastSwitchoverTime is set, it can
// safely use t.GetLastSwitchoverTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastSwitchoverTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetLastSwitchoverTime() uint64 {
	if t == nil || t.LastSwitchoverTime == nil {
		return 0
	}
	return *t.LastSwitchoverTime
}

// GetLocation retrieves the value of the leaf Location from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Location is set, it can
// safely use t.GetLocation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Location == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetLocation() string {
	if t == nil || t.Location == nil {
		return ""
	}
	return *t.Location
}

// GetMfgDate retrieves the value of the leaf MfgDate from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MfgDate is set, it can
// safely use t.GetMfgDate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MfgDate == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetMfgDate() string {
	if t == nil || t.MfgDate == nil {
		return ""
	}
	return *t.MfgDate
}

// GetMfgName retrieves the value of the leaf MfgName from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MfgName is set, it can
// safely use t.GetMfgName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MfgName == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetMfgName() string {
	if t == nil || t.MfgName == nil {
		return ""
	}
	return *t.MfgName
}

// GetModelName retrieves the value of the leaf ModelName from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModelName is set, it can
// safely use t.GetModelName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModelName == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetModelName() string {
	if t == nil || t.ModelName == nil {
		return ""
	}
	return *t.ModelName
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetOperStatus retrieves the value of the leaf OperStatus from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OperStatus is set, it can
// safely use t.GetOperStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OperStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetOperStatus() E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS {
	if t == nil || t.OperStatus == 0 {
		return 0
	}
	return t.OperStatus
}

// GetParent retrieves the value of the leaf Parent from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Parent is set, it can
// safely use t.GetParent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Parent == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetParent() string {
	if t == nil || t.Parent == nil {
		return ""
	}
	return *t.Parent
}

// GetPartNo retrieves the value of the leaf PartNo from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PartNo is set, it can
// safely use t.GetPartNo() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PartNo == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetPartNo() string {
	if t == nil || t.PartNo == nil {
		return ""
	}
	return *t.PartNo
}

// GetRedundantRole retrieves the value of the leaf RedundantRole from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RedundantRole is set, it can
// safely use t.GetRedundantRole() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RedundantRole == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetRedundantRole() E_OpenconfigPlatformTypes_ComponentRedundantRole {
	if t == nil || t.RedundantRole == 0 {
		return 0
	}
	return t.RedundantRole
}

// GetRemovable retrieves the value of the leaf Removable from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Removable is set, it can
// safely use t.GetRemovable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Removable == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetRemovable() bool {
	if t == nil || t.Removable == nil {
		return false
	}
	return *t.Removable
}

// GetSerialNo retrieves the value of the leaf SerialNo from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SerialNo is set, it can
// safely use t.GetSerialNo() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SerialNo == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetSerialNo() string {
	if t == nil || t.SerialNo == nil {
		return ""
	}
	return *t.SerialNo
}

// GetSoftwareVersion retrieves the value of the leaf SoftwareVersion from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SoftwareVersion is set, it can
// safely use t.GetSoftwareVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SoftwareVersion == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetSoftwareVersion() string {
	if t == nil || t.SoftwareVersion == nil {
		return ""
	}
	return *t.SoftwareVersion
}

// GetSwitchoverReady retrieves the value of the leaf SwitchoverReady from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SwitchoverReady is set, it can
// safely use t.GetSwitchoverReady() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SwitchoverReady == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetSwitchoverReady() bool {
	if t == nil || t.SwitchoverReady == nil {
		return false
	}
	return *t.SwitchoverReady
}

// GetType retrieves the value of the leaf Type from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetType() OpenconfigPlatform_Components_Component_State_Type_Union {
	if t == nil || t.Type == nil {
		return nil
	}
	return t.Type
}

// GetUsedPower retrieves the value of the leaf UsedPower from the OpenconfigPlatform_Components_Component_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UsedPower is set, it can
// safely use t.GetUsedPower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UsedPower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State) GetUsedPower() uint32 {
	if t == nil || t.UsedPower == nil {
		return 0
	}
	return *t.UsedPower
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Empty == nil {
		var v bool = false
		t.Empty = &v
	}
	if t.EquipmentFailure == nil {
		var v bool = false
		t.EquipmentFailure = &v
	}
	if t.EquipmentMismatch == nil {
		var v bool = false
		t.EquipmentMismatch = &v
	}
	t.LastSwitchoverReason.PopulateDefaults()
	t.Memory.PopulateDefaults()
	t.Pcie.PopulateDefaults()
	t.Temperature.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State.
func (*OpenconfigPlatform_Components_Component_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State_Type_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-platform/components/component/state/type within the YANG schema.
// Union type can be one of [E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT, E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT].
type OpenconfigPlatform_Components_Component_State_Type_Union interface {
	// Union type can be one of [E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT, E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT]
	Documentation_for_OpenconfigPlatform_Components_Component_State_Type_Union()
}

// Documentation_for_OpenconfigPlatform_Components_Component_State_Type_Union ensures that E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
// implements the OpenconfigPlatform_Components_Component_State_Type_Union interface.
func (E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT) Documentation_for_OpenconfigPlatform_Components_Component_State_Type_Union() {
}

// Documentation_for_OpenconfigPlatform_Components_Component_State_Type_Union ensures that E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT
// implements the OpenconfigPlatform_Components_Component_State_Type_Union interface.
func (E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT) Documentation_for_OpenconfigPlatform_Components_Component_State_Type_Union() {
}

// To_OpenconfigPlatform_Components_Component_State_Type_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigPlatform_Components_Component_State_Type_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigPlatform_Components_Component_State) To_OpenconfigPlatform_Components_Component_State_Type_Union(i interface{}) (OpenconfigPlatform_Components_Component_State_Type_Union, error) {
	if v, ok := i.(OpenconfigPlatform_Components_Component_State_Type_Union); ok {
		return v, nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigPlatform_Components_Component_State_Type_Union, unknown union type, got: %T, want any of [E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT, E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT]", i, i)
}

// OpenconfigPlatform_Components_Component_State_LastSwitchoverReason represents the /openconfig-platform/components/component/state/last-switchover-reason YANG schema element.
type OpenconfigPlatform_Components_Component_State_LastSwitchoverReason struct {
	ΛMetadata []ygot.Annotation                                                       `path:"@" ygotAnnotation:"true"`
	Details   *string                                                                 `path:"details" module:"openconfig-platform"`
	ΛDetails  []ygot.Annotation                                                       `path:"@details" ygotAnnotation:"true"`
	Trigger   E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger `path:"trigger" module:"openconfig-platform"`
	ΛTrigger  []ygot.Annotation                                                       `path:"@trigger" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_LastSwitchoverReason implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) IsYANGGoStruct() {}

// GetDetails retrieves the value of the leaf Details from the OpenconfigPlatform_Components_Component_State_LastSwitchoverReason
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Details is set, it can
// safely use t.GetDetails() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Details == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) GetDetails() string {
	if t == nil || t.Details == nil {
		return ""
	}
	return *t.Details
}

// GetTrigger retrieves the value of the leaf Trigger from the OpenconfigPlatform_Components_Component_State_LastSwitchoverReason
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Trigger is set, it can
// safely use t.GetTrigger() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Trigger == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) GetTrigger() E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger {
	if t == nil || t.Trigger == 0 {
		return 0
	}
	return t.Trigger
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State_LastSwitchoverReason
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_LastSwitchoverReason"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State_LastSwitchoverReason.
func (*OpenconfigPlatform_Components_Component_State_LastSwitchoverReason) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State_Memory represents the /openconfig-platform/components/component/state/memory YANG schema element.
type OpenconfigPlatform_Components_Component_State_Memory struct {
	ΛMetadata  []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Available  *uint64           `path:"available" module:"openconfig-platform"`
	ΛAvailable []ygot.Annotation `path:"@available" ygotAnnotation:"true"`
	Utilized   *uint64           `path:"utilized" module:"openconfig-platform"`
	ΛUtilized  []ygot.Annotation `path:"@utilized" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Memory implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State_Memory) IsYANGGoStruct() {}

// GetAvailable retrieves the value of the leaf Available from the OpenconfigPlatform_Components_Component_State_Memory
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Available is set, it can
// safely use t.GetAvailable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Available == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Memory) GetAvailable() uint64 {
	if t == nil || t.Available == nil {
		return 0
	}
	return *t.Available
}

// GetUtilized retrieves the value of the leaf Utilized from the OpenconfigPlatform_Components_Component_State_Memory
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Utilized is set, it can
// safely use t.GetUtilized() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Utilized == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Memory) GetUtilized() uint64 {
	if t == nil || t.Utilized == nil {
		return 0
	}
	return *t.Utilized
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State_Memory
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State_Memory) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Memory) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Memory"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Memory) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State_Memory) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State_Memory.
func (*OpenconfigPlatform_Components_Component_State_Memory) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State_Pcie represents the /openconfig-platform/components/component/state/pcie YANG schema element.
type OpenconfigPlatform_Components_Component_State_Pcie struct {
	ΛMetadata          []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	CorrectableErrors  *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors `path:"correctable-errors" module:"openconfig-platform"`
	ΛCorrectableErrors []ygot.Annotation                                                     `path:"@correctable-errors" ygotAnnotation:"true"`
	FatalErrors        *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors       `path:"fatal-errors" module:"openconfig-platform"`
	ΛFatalErrors       []ygot.Annotation                                                     `path:"@fatal-errors" ygotAnnotation:"true"`
	NonFatalErrors     *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors    `path:"non-fatal-errors" module:"openconfig-platform"`
	ΛNonFatalErrors    []ygot.Annotation                                                     `path:"@non-fatal-errors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Pcie implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State_Pcie) IsYANGGoStruct() {}

// GetOrCreateCorrectableErrors retrieves the value of the CorrectableErrors field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) GetOrCreateCorrectableErrors() *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors {
	if t.CorrectableErrors != nil {
		return t.CorrectableErrors
	}
	t.CorrectableErrors = &OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors{}
	return t.CorrectableErrors
}

// GetOrCreateFatalErrors retrieves the value of the FatalErrors field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) GetOrCreateFatalErrors() *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors {
	if t.FatalErrors != nil {
		return t.FatalErrors
	}
	t.FatalErrors = &OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors{}
	return t.FatalErrors
}

// GetOrCreateNonFatalErrors retrieves the value of the NonFatalErrors field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) GetOrCreateNonFatalErrors() *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors {
	if t.NonFatalErrors != nil {
		return t.NonFatalErrors
	}
	t.NonFatalErrors = &OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors{}
	return t.NonFatalErrors
}

// GetCorrectableErrors returns the value of the CorrectableErrors struct pointer
// from OpenconfigPlatform_Components_Component_State_Pcie. If the receiver or the field CorrectableErrors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) GetCorrectableErrors() *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors {
	if t != nil && t.CorrectableErrors != nil {
		return t.CorrectableErrors
	}
	return nil
}

// GetFatalErrors returns the value of the FatalErrors struct pointer
// from OpenconfigPlatform_Components_Component_State_Pcie. If the receiver or the field FatalErrors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) GetFatalErrors() *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors {
	if t != nil && t.FatalErrors != nil {
		return t.FatalErrors
	}
	return nil
}

// GetNonFatalErrors returns the value of the NonFatalErrors struct pointer
// from OpenconfigPlatform_Components_Component_State_Pcie. If the receiver or the field NonFatalErrors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) GetNonFatalErrors() *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors {
	if t != nil && t.NonFatalErrors != nil {
		return t.NonFatalErrors
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State_Pcie
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.CorrectableErrors.PopulateDefaults()
	t.FatalErrors.PopulateDefaults()
	t.NonFatalErrors.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Pcie"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State_Pcie) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State_Pcie.
func (*OpenconfigPlatform_Components_Component_State_Pcie) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors represents the /openconfig-platform/components/component/state/pcie/correctable-errors YANG schema element.
type OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors struct {
	ΛMetadata               []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdvisoryNonFatalErrors  *uint64           `path:"advisory-non-fatal-errors" module:"openconfig-platform"`
	ΛAdvisoryNonFatalErrors []ygot.Annotation `path:"@advisory-non-fatal-errors" ygotAnnotation:"true"`
	BadDllpErrors           *uint64           `path:"bad-dllp-errors" module:"openconfig-platform"`
	ΛBadDllpErrors          []ygot.Annotation `path:"@bad-dllp-errors" ygotAnnotation:"true"`
	BadTlpErrors            *uint64           `path:"bad-tlp-errors" module:"openconfig-platform"`
	ΛBadTlpErrors           []ygot.Annotation `path:"@bad-tlp-errors" ygotAnnotation:"true"`
	HdrLogOverflowErrors    *uint64           `path:"hdr-log-overflow-errors" module:"openconfig-platform"`
	ΛHdrLogOverflowErrors   []ygot.Annotation `path:"@hdr-log-overflow-errors" ygotAnnotation:"true"`
	InternalErrors          *uint64           `path:"internal-errors" module:"openconfig-platform"`
	ΛInternalErrors         []ygot.Annotation `path:"@internal-errors" ygotAnnotation:"true"`
	ReceiverErrors          *uint64           `path:"receiver-errors" module:"openconfig-platform"`
	ΛReceiverErrors         []ygot.Annotation `path:"@receiver-errors" ygotAnnotation:"true"`
	RelayRolloverErrors     *uint64           `path:"relay-rollover-errors" module:"openconfig-platform"`
	ΛRelayRolloverErrors    []ygot.Annotation `path:"@relay-rollover-errors" ygotAnnotation:"true"`
	ReplayTimeoutErrors     *uint64           `path:"replay-timeout-errors" module:"openconfig-platform"`
	ΛReplayTimeoutErrors    []ygot.Annotation `path:"@replay-timeout-errors" ygotAnnotation:"true"`
	TotalErrors             *uint64           `path:"total-errors" module:"openconfig-platform"`
	ΛTotalErrors            []ygot.Annotation `path:"@total-errors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) IsYANGGoStruct() {}

// GetAdvisoryNonFatalErrors retrieves the value of the leaf AdvisoryNonFatalErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdvisoryNonFatalErrors is set, it can
// safely use t.GetAdvisoryNonFatalErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdvisoryNonFatalErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetAdvisoryNonFatalErrors() uint64 {
	if t == nil || t.AdvisoryNonFatalErrors == nil {
		return 0
	}
	return *t.AdvisoryNonFatalErrors
}

// GetBadDllpErrors retrieves the value of the leaf BadDllpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadDllpErrors is set, it can
// safely use t.GetBadDllpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadDllpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetBadDllpErrors() uint64 {
	if t == nil || t.BadDllpErrors == nil {
		return 0
	}
	return *t.BadDllpErrors
}

// GetBadTlpErrors retrieves the value of the leaf BadTlpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BadTlpErrors is set, it can
// safely use t.GetBadTlpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BadTlpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetBadTlpErrors() uint64 {
	if t == nil || t.BadTlpErrors == nil {
		return 0
	}
	return *t.BadTlpErrors
}

// GetHdrLogOverflowErrors retrieves the value of the leaf HdrLogOverflowErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if HdrLogOverflowErrors is set, it can
// safely use t.GetHdrLogOverflowErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.HdrLogOverflowErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetHdrLogOverflowErrors() uint64 {
	if t == nil || t.HdrLogOverflowErrors == nil {
		return 0
	}
	return *t.HdrLogOverflowErrors
}

// GetInternalErrors retrieves the value of the leaf InternalErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InternalErrors is set, it can
// safely use t.GetInternalErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InternalErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetInternalErrors() uint64 {
	if t == nil || t.InternalErrors == nil {
		return 0
	}
	return *t.InternalErrors
}

// GetReceiverErrors retrieves the value of the leaf ReceiverErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceiverErrors is set, it can
// safely use t.GetReceiverErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceiverErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetReceiverErrors() uint64 {
	if t == nil || t.ReceiverErrors == nil {
		return 0
	}
	return *t.ReceiverErrors
}

// GetRelayRolloverErrors retrieves the value of the leaf RelayRolloverErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RelayRolloverErrors is set, it can
// safely use t.GetRelayRolloverErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RelayRolloverErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetRelayRolloverErrors() uint64 {
	if t == nil || t.RelayRolloverErrors == nil {
		return 0
	}
	return *t.RelayRolloverErrors
}

// GetReplayTimeoutErrors retrieves the value of the leaf ReplayTimeoutErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReplayTimeoutErrors is set, it can
// safely use t.GetReplayTimeoutErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReplayTimeoutErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetReplayTimeoutErrors() uint64 {
	if t == nil || t.ReplayTimeoutErrors == nil {
		return 0
	}
	return *t.ReplayTimeoutErrors
}

// GetTotalErrors retrieves the value of the leaf TotalErrors from the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalErrors is set, it can
// safely use t.GetTotalErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) GetTotalErrors() uint64 {
	if t == nil || t.TotalErrors == nil {
		return 0
	}
	return *t.TotalErrors
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors.
func (*OpenconfigPlatform_Components_Component_State_Pcie_CorrectableErrors) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors represents the /openconfig-platform/components/component/state/pcie/fatal-errors YANG schema element.
type OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors struct {
	ΛMetadata                   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AcsViolationErrors          *uint64           `path:"acs-violation-errors" module:"openconfig-platform"`
	ΛAcsViolationErrors         []ygot.Annotation `path:"@acs-violation-errors" ygotAnnotation:"true"`
	AtomicOpBlockedErrors       *uint64           `path:"atomic-op-blocked-errors" module:"openconfig-platform"`
	ΛAtomicOpBlockedErrors      []ygot.Annotation `path:"@atomic-op-blocked-errors" ygotAnnotation:"true"`
	BlockedTlpErrors            *uint64           `path:"blocked-tlp-errors" module:"openconfig-platform"`
	ΛBlockedTlpErrors           []ygot.Annotation `path:"@blocked-tlp-errors" ygotAnnotation:"true"`
	CompletionAbortErrors       *uint64           `path:"completion-abort-errors" module:"openconfig-platform"`
	ΛCompletionAbortErrors      []ygot.Annotation `path:"@completion-abort-errors" ygotAnnotation:"true"`
	CompletionTimeoutErrors     *uint64           `path:"completion-timeout-errors" module:"openconfig-platform"`
	ΛCompletionTimeoutErrors    []ygot.Annotation `path:"@completion-timeout-errors" ygotAnnotation:"true"`
	DataLinkErrors              *uint64           `path:"data-link-errors" module:"openconfig-platform"`
	ΛDataLinkErrors             []ygot.Annotation `path:"@data-link-errors" ygotAnnotation:"true"`
	EcrcErrors                  *uint64           `path:"ecrc-errors" module:"openconfig-platform"`
	ΛEcrcErrors                 []ygot.Annotation `path:"@ecrc-errors" ygotAnnotation:"true"`
	FlowControlProtocolErrors   *uint64           `path:"flow-control-protocol-errors" module:"openconfig-platform"`
	ΛFlowControlProtocolErrors  []ygot.Annotation `path:"@flow-control-protocol-errors" ygotAnnotation:"true"`
	InternalErrors              *uint64           `path:"internal-errors" module:"openconfig-platform"`
	ΛInternalErrors             []ygot.Annotation `path:"@internal-errors" ygotAnnotation:"true"`
	MalformedTlpErrors          *uint64           `path:"malformed-tlp-errors" module:"openconfig-platform"`
	ΛMalformedTlpErrors         []ygot.Annotation `path:"@malformed-tlp-errors" ygotAnnotation:"true"`
	PoisonedTlpErrors           *uint64           `path:"poisoned-tlp-errors" module:"openconfig-platform"`
	ΛPoisonedTlpErrors          []ygot.Annotation `path:"@poisoned-tlp-errors" ygotAnnotation:"true"`
	ReceiverOverflowErrors      *uint64           `path:"receiver-overflow-errors" module:"openconfig-platform"`
	ΛReceiverOverflowErrors     []ygot.Annotation `path:"@receiver-overflow-errors" ygotAnnotation:"true"`
	SurpriseDownErrors          *uint64           `path:"surprise-down-errors" module:"openconfig-platform"`
	ΛSurpriseDownErrors         []ygot.Annotation `path:"@surprise-down-errors" ygotAnnotation:"true"`
	TlpPrefixBlockedErrors      *uint64           `path:"tlp-prefix-blocked-errors" module:"openconfig-platform"`
	ΛTlpPrefixBlockedErrors     []ygot.Annotation `path:"@tlp-prefix-blocked-errors" ygotAnnotation:"true"`
	TotalErrors                 *uint64           `path:"total-errors" module:"openconfig-platform"`
	ΛTotalErrors                []ygot.Annotation `path:"@total-errors" ygotAnnotation:"true"`
	UndefinedErrors             *uint64           `path:"undefined-errors" module:"openconfig-platform"`
	ΛUndefinedErrors            []ygot.Annotation `path:"@undefined-errors" ygotAnnotation:"true"`
	UnexpectedCompletionErrors  *uint64           `path:"unexpected-completion-errors" module:"openconfig-platform"`
	ΛUnexpectedCompletionErrors []ygot.Annotation `path:"@unexpected-completion-errors" ygotAnnotation:"true"`
	UnsupportedRequestErrors    *uint64           `path:"unsupported-request-errors" module:"openconfig-platform"`
	ΛUnsupportedRequestErrors   []ygot.Annotation `path:"@unsupported-request-errors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) IsYANGGoStruct() {}

// GetAcsViolationErrors retrieves the value of the leaf AcsViolationErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AcsViolationErrors is set, it can
// safely use t.GetAcsViolationErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AcsViolationErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetAcsViolationErrors() uint64 {
	if t == nil || t.AcsViolationErrors == nil {
		return 0
	}
	return *t.AcsViolationErrors
}

// GetAtomicOpBlockedErrors retrieves the value of the leaf AtomicOpBlockedErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AtomicOpBlockedErrors is set, it can
// safely use t.GetAtomicOpBlockedErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AtomicOpBlockedErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetAtomicOpBlockedErrors() uint64 {
	if t == nil || t.AtomicOpBlockedErrors == nil {
		return 0
	}
	return *t.AtomicOpBlockedErrors
}

// GetBlockedTlpErrors retrieves the value of the leaf BlockedTlpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BlockedTlpErrors is set, it can
// safely use t.GetBlockedTlpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BlockedTlpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetBlockedTlpErrors() uint64 {
	if t == nil || t.BlockedTlpErrors == nil {
		return 0
	}
	return *t.BlockedTlpErrors
}

// GetCompletionAbortErrors retrieves the value of the leaf CompletionAbortErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CompletionAbortErrors is set, it can
// safely use t.GetCompletionAbortErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CompletionAbortErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetCompletionAbortErrors() uint64 {
	if t == nil || t.CompletionAbortErrors == nil {
		return 0
	}
	return *t.CompletionAbortErrors
}

// GetCompletionTimeoutErrors retrieves the value of the leaf CompletionTimeoutErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CompletionTimeoutErrors is set, it can
// safely use t.GetCompletionTimeoutErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CompletionTimeoutErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetCompletionTimeoutErrors() uint64 {
	if t == nil || t.CompletionTimeoutErrors == nil {
		return 0
	}
	return *t.CompletionTimeoutErrors
}

// GetDataLinkErrors retrieves the value of the leaf DataLinkErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DataLinkErrors is set, it can
// safely use t.GetDataLinkErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DataLinkErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetDataLinkErrors() uint64 {
	if t == nil || t.DataLinkErrors == nil {
		return 0
	}
	return *t.DataLinkErrors
}

// GetEcrcErrors retrieves the value of the leaf EcrcErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EcrcErrors is set, it can
// safely use t.GetEcrcErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EcrcErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetEcrcErrors() uint64 {
	if t == nil || t.EcrcErrors == nil {
		return 0
	}
	return *t.EcrcErrors
}

// GetFlowControlProtocolErrors retrieves the value of the leaf FlowControlProtocolErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlowControlProtocolErrors is set, it can
// safely use t.GetFlowControlProtocolErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlowControlProtocolErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetFlowControlProtocolErrors() uint64 {
	if t == nil || t.FlowControlProtocolErrors == nil {
		return 0
	}
	return *t.FlowControlProtocolErrors
}

// GetInternalErrors retrieves the value of the leaf InternalErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InternalErrors is set, it can
// safely use t.GetInternalErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InternalErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetInternalErrors() uint64 {
	if t == nil || t.InternalErrors == nil {
		return 0
	}
	return *t.InternalErrors
}

// GetMalformedTlpErrors retrieves the value of the leaf MalformedTlpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MalformedTlpErrors is set, it can
// safely use t.GetMalformedTlpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MalformedTlpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetMalformedTlpErrors() uint64 {
	if t == nil || t.MalformedTlpErrors == nil {
		return 0
	}
	return *t.MalformedTlpErrors
}

// GetPoisonedTlpErrors retrieves the value of the leaf PoisonedTlpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PoisonedTlpErrors is set, it can
// safely use t.GetPoisonedTlpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PoisonedTlpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetPoisonedTlpErrors() uint64 {
	if t == nil || t.PoisonedTlpErrors == nil {
		return 0
	}
	return *t.PoisonedTlpErrors
}

// GetReceiverOverflowErrors retrieves the value of the leaf ReceiverOverflowErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceiverOverflowErrors is set, it can
// safely use t.GetReceiverOverflowErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceiverOverflowErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetReceiverOverflowErrors() uint64 {
	if t == nil || t.ReceiverOverflowErrors == nil {
		return 0
	}
	return *t.ReceiverOverflowErrors
}

// GetSurpriseDownErrors retrieves the value of the leaf SurpriseDownErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SurpriseDownErrors is set, it can
// safely use t.GetSurpriseDownErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SurpriseDownErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetSurpriseDownErrors() uint64 {
	if t == nil || t.SurpriseDownErrors == nil {
		return 0
	}
	return *t.SurpriseDownErrors
}

// GetTlpPrefixBlockedErrors retrieves the value of the leaf TlpPrefixBlockedErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlpPrefixBlockedErrors is set, it can
// safely use t.GetTlpPrefixBlockedErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlpPrefixBlockedErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetTlpPrefixBlockedErrors() uint64 {
	if t == nil || t.TlpPrefixBlockedErrors == nil {
		return 0
	}
	return *t.TlpPrefixBlockedErrors
}

// GetTotalErrors retrieves the value of the leaf TotalErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalErrors is set, it can
// safely use t.GetTotalErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetTotalErrors() uint64 {
	if t == nil || t.TotalErrors == nil {
		return 0
	}
	return *t.TotalErrors
}

// GetUndefinedErrors retrieves the value of the leaf UndefinedErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UndefinedErrors is set, it can
// safely use t.GetUndefinedErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UndefinedErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetUndefinedErrors() uint64 {
	if t == nil || t.UndefinedErrors == nil {
		return 0
	}
	return *t.UndefinedErrors
}

// GetUnexpectedCompletionErrors retrieves the value of the leaf UnexpectedCompletionErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnexpectedCompletionErrors is set, it can
// safely use t.GetUnexpectedCompletionErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnexpectedCompletionErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetUnexpectedCompletionErrors() uint64 {
	if t == nil || t.UnexpectedCompletionErrors == nil {
		return 0
	}
	return *t.UnexpectedCompletionErrors
}

// GetUnsupportedRequestErrors retrieves the value of the leaf UnsupportedRequestErrors from the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnsupportedRequestErrors is set, it can
// safely use t.GetUnsupportedRequestErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnsupportedRequestErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) GetUnsupportedRequestErrors() uint64 {
	if t == nil || t.UnsupportedRequestErrors == nil {
		return 0
	}
	return *t.UnsupportedRequestErrors
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors.
func (*OpenconfigPlatform_Components_Component_State_Pcie_FatalErrors) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors represents the /openconfig-platform/components/component/state/pcie/non-fatal-errors YANG schema element.
type OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors struct {
	ΛMetadata                   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AcsViolationErrors          *uint64           `path:"acs-violation-errors" module:"openconfig-platform"`
	ΛAcsViolationErrors         []ygot.Annotation `path:"@acs-violation-errors" ygotAnnotation:"true"`
	AtomicOpBlockedErrors       *uint64           `path:"atomic-op-blocked-errors" module:"openconfig-platform"`
	ΛAtomicOpBlockedErrors      []ygot.Annotation `path:"@atomic-op-blocked-errors" ygotAnnotation:"true"`
	BlockedTlpErrors            *uint64           `path:"blocked-tlp-errors" module:"openconfig-platform"`
	ΛBlockedTlpErrors           []ygot.Annotation `path:"@blocked-tlp-errors" ygotAnnotation:"true"`
	CompletionAbortErrors       *uint64           `path:"completion-abort-errors" module:"openconfig-platform"`
	ΛCompletionAbortErrors      []ygot.Annotation `path:"@completion-abort-errors" ygotAnnotation:"true"`
	CompletionTimeoutErrors     *uint64           `path:"completion-timeout-errors" module:"openconfig-platform"`
	ΛCompletionTimeoutErrors    []ygot.Annotation `path:"@completion-timeout-errors" ygotAnnotation:"true"`
	DataLinkErrors              *uint64           `path:"data-link-errors" module:"openconfig-platform"`
	ΛDataLinkErrors             []ygot.Annotation `path:"@data-link-errors" ygotAnnotation:"true"`
	EcrcErrors                  *uint64           `path:"ecrc-errors" module:"openconfig-platform"`
	ΛEcrcErrors                 []ygot.Annotation `path:"@ecrc-errors" ygotAnnotation:"true"`
	FlowControlProtocolErrors   *uint64           `path:"flow-control-protocol-errors" module:"openconfig-platform"`
	ΛFlowControlProtocolErrors  []ygot.Annotation `path:"@flow-control-protocol-errors" ygotAnnotation:"true"`
	InternalErrors              *uint64           `path:"internal-errors" module:"openconfig-platform"`
	ΛInternalErrors             []ygot.Annotation `path:"@internal-errors" ygotAnnotation:"true"`
	MalformedTlpErrors          *uint64           `path:"malformed-tlp-errors" module:"openconfig-platform"`
	ΛMalformedTlpErrors         []ygot.Annotation `path:"@malformed-tlp-errors" ygotAnnotation:"true"`
	PoisonedTlpErrors           *uint64           `path:"poisoned-tlp-errors" module:"openconfig-platform"`
	ΛPoisonedTlpErrors          []ygot.Annotation `path:"@poisoned-tlp-errors" ygotAnnotation:"true"`
	ReceiverOverflowErrors      *uint64           `path:"receiver-overflow-errors" module:"openconfig-platform"`
	ΛReceiverOverflowErrors     []ygot.Annotation `path:"@receiver-overflow-errors" ygotAnnotation:"true"`
	SurpriseDownErrors          *uint64           `path:"surprise-down-errors" module:"openconfig-platform"`
	ΛSurpriseDownErrors         []ygot.Annotation `path:"@surprise-down-errors" ygotAnnotation:"true"`
	TlpPrefixBlockedErrors      *uint64           `path:"tlp-prefix-blocked-errors" module:"openconfig-platform"`
	ΛTlpPrefixBlockedErrors     []ygot.Annotation `path:"@tlp-prefix-blocked-errors" ygotAnnotation:"true"`
	TotalErrors                 *uint64           `path:"total-errors" module:"openconfig-platform"`
	ΛTotalErrors                []ygot.Annotation `path:"@total-errors" ygotAnnotation:"true"`
	UndefinedErrors             *uint64           `path:"undefined-errors" module:"openconfig-platform"`
	ΛUndefinedErrors            []ygot.Annotation `path:"@undefined-errors" ygotAnnotation:"true"`
	UnexpectedCompletionErrors  *uint64           `path:"unexpected-completion-errors" module:"openconfig-platform"`
	ΛUnexpectedCompletionErrors []ygot.Annotation `path:"@unexpected-completion-errors" ygotAnnotation:"true"`
	UnsupportedRequestErrors    *uint64           `path:"unsupported-request-errors" module:"openconfig-platform"`
	ΛUnsupportedRequestErrors   []ygot.Annotation `path:"@unsupported-request-errors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) IsYANGGoStruct() {}

// GetAcsViolationErrors retrieves the value of the leaf AcsViolationErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AcsViolationErrors is set, it can
// safely use t.GetAcsViolationErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AcsViolationErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetAcsViolationErrors() uint64 {
	if t == nil || t.AcsViolationErrors == nil {
		return 0
	}
	return *t.AcsViolationErrors
}

// GetAtomicOpBlockedErrors retrieves the value of the leaf AtomicOpBlockedErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AtomicOpBlockedErrors is set, it can
// safely use t.GetAtomicOpBlockedErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AtomicOpBlockedErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetAtomicOpBlockedErrors() uint64 {
	if t == nil || t.AtomicOpBlockedErrors == nil {
		return 0
	}
	return *t.AtomicOpBlockedErrors
}

// GetBlockedTlpErrors retrieves the value of the leaf BlockedTlpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BlockedTlpErrors is set, it can
// safely use t.GetBlockedTlpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BlockedTlpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetBlockedTlpErrors() uint64 {
	if t == nil || t.BlockedTlpErrors == nil {
		return 0
	}
	return *t.BlockedTlpErrors
}

// GetCompletionAbortErrors retrieves the value of the leaf CompletionAbortErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CompletionAbortErrors is set, it can
// safely use t.GetCompletionAbortErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CompletionAbortErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetCompletionAbortErrors() uint64 {
	if t == nil || t.CompletionAbortErrors == nil {
		return 0
	}
	return *t.CompletionAbortErrors
}

// GetCompletionTimeoutErrors retrieves the value of the leaf CompletionTimeoutErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CompletionTimeoutErrors is set, it can
// safely use t.GetCompletionTimeoutErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CompletionTimeoutErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetCompletionTimeoutErrors() uint64 {
	if t == nil || t.CompletionTimeoutErrors == nil {
		return 0
	}
	return *t.CompletionTimeoutErrors
}

// GetDataLinkErrors retrieves the value of the leaf DataLinkErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DataLinkErrors is set, it can
// safely use t.GetDataLinkErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DataLinkErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetDataLinkErrors() uint64 {
	if t == nil || t.DataLinkErrors == nil {
		return 0
	}
	return *t.DataLinkErrors
}

// GetEcrcErrors retrieves the value of the leaf EcrcErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EcrcErrors is set, it can
// safely use t.GetEcrcErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EcrcErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetEcrcErrors() uint64 {
	if t == nil || t.EcrcErrors == nil {
		return 0
	}
	return *t.EcrcErrors
}

// GetFlowControlProtocolErrors retrieves the value of the leaf FlowControlProtocolErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FlowControlProtocolErrors is set, it can
// safely use t.GetFlowControlProtocolErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FlowControlProtocolErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetFlowControlProtocolErrors() uint64 {
	if t == nil || t.FlowControlProtocolErrors == nil {
		return 0
	}
	return *t.FlowControlProtocolErrors
}

// GetInternalErrors retrieves the value of the leaf InternalErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InternalErrors is set, it can
// safely use t.GetInternalErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InternalErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetInternalErrors() uint64 {
	if t == nil || t.InternalErrors == nil {
		return 0
	}
	return *t.InternalErrors
}

// GetMalformedTlpErrors retrieves the value of the leaf MalformedTlpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MalformedTlpErrors is set, it can
// safely use t.GetMalformedTlpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MalformedTlpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetMalformedTlpErrors() uint64 {
	if t == nil || t.MalformedTlpErrors == nil {
		return 0
	}
	return *t.MalformedTlpErrors
}

// GetPoisonedTlpErrors retrieves the value of the leaf PoisonedTlpErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PoisonedTlpErrors is set, it can
// safely use t.GetPoisonedTlpErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PoisonedTlpErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetPoisonedTlpErrors() uint64 {
	if t == nil || t.PoisonedTlpErrors == nil {
		return 0
	}
	return *t.PoisonedTlpErrors
}

// GetReceiverOverflowErrors retrieves the value of the leaf ReceiverOverflowErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ReceiverOverflowErrors is set, it can
// safely use t.GetReceiverOverflowErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ReceiverOverflowErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetReceiverOverflowErrors() uint64 {
	if t == nil || t.ReceiverOverflowErrors == nil {
		return 0
	}
	return *t.ReceiverOverflowErrors
}

// GetSurpriseDownErrors retrieves the value of the leaf SurpriseDownErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SurpriseDownErrors is set, it can
// safely use t.GetSurpriseDownErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SurpriseDownErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetSurpriseDownErrors() uint64 {
	if t == nil || t.SurpriseDownErrors == nil {
		return 0
	}
	return *t.SurpriseDownErrors
}

// GetTlpPrefixBlockedErrors retrieves the value of the leaf TlpPrefixBlockedErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlpPrefixBlockedErrors is set, it can
// safely use t.GetTlpPrefixBlockedErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlpPrefixBlockedErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetTlpPrefixBlockedErrors() uint64 {
	if t == nil || t.TlpPrefixBlockedErrors == nil {
		return 0
	}
	return *t.TlpPrefixBlockedErrors
}

// GetTotalErrors retrieves the value of the leaf TotalErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalErrors is set, it can
// safely use t.GetTotalErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetTotalErrors() uint64 {
	if t == nil || t.TotalErrors == nil {
		return 0
	}
	return *t.TotalErrors
}

// GetUndefinedErrors retrieves the value of the leaf UndefinedErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UndefinedErrors is set, it can
// safely use t.GetUndefinedErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UndefinedErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetUndefinedErrors() uint64 {
	if t == nil || t.UndefinedErrors == nil {
		return 0
	}
	return *t.UndefinedErrors
}

// GetUnexpectedCompletionErrors retrieves the value of the leaf UnexpectedCompletionErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnexpectedCompletionErrors is set, it can
// safely use t.GetUnexpectedCompletionErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnexpectedCompletionErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetUnexpectedCompletionErrors() uint64 {
	if t == nil || t.UnexpectedCompletionErrors == nil {
		return 0
	}
	return *t.UnexpectedCompletionErrors
}

// GetUnsupportedRequestErrors retrieves the value of the leaf UnsupportedRequestErrors from the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnsupportedRequestErrors is set, it can
// safely use t.GetUnsupportedRequestErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnsupportedRequestErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) GetUnsupportedRequestErrors() uint64 {
	if t == nil || t.UnsupportedRequestErrors == nil {
		return 0
	}
	return *t.UnsupportedRequestErrors
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors.
func (*OpenconfigPlatform_Components_Component_State_Pcie_NonFatalErrors) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_State_Temperature represents the /openconfig-platform/components/component/state/temperature YANG schema element.
type OpenconfigPlatform_Components_Component_State_Temperature struct {
	ΛMetadata       []ygot.Annotation                                `path:"@" ygotAnnotation:"true"`
	AlarmSeverity   E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY `path:"alarm-severity" module:"openconfig-platform"`
	ΛAlarmSeverity  []ygot.Annotation                                `path:"@alarm-severity" ygotAnnotation:"true"`
	AlarmStatus     *bool                                            `path:"alarm-status" module:"openconfig-platform"`
	ΛAlarmStatus    []ygot.Annotation                                `path:"@alarm-status" ygotAnnotation:"true"`
	AlarmThreshold  *uint32                                          `path:"alarm-threshold" module:"openconfig-platform"`
	ΛAlarmThreshold []ygot.Annotation                                `path:"@alarm-threshold" ygotAnnotation:"true"`
	Avg             *float64                                         `path:"avg" module:"openconfig-platform"`
	ΛAvg            []ygot.Annotation                                `path:"@avg" ygotAnnotation:"true"`
	Instant         *float64                                         `path:"instant" module:"openconfig-platform"`
	ΛInstant        []ygot.Annotation                                `path:"@instant" ygotAnnotation:"true"`
	Interval        *uint64                                          `path:"interval" module:"openconfig-platform"`
	ΛInterval       []ygot.Annotation                                `path:"@interval" ygotAnnotation:"true"`
	Max             *float64                                         `path:"max" module:"openconfig-platform"`
	ΛMax            []ygot.Annotation                                `path:"@max" ygotAnnotation:"true"`
	MaxTime         *uint64                                          `path:"max-time" module:"openconfig-platform"`
	ΛMaxTime        []ygot.Annotation                                `path:"@max-time" ygotAnnotation:"true"`
	Min             *float64                                         `path:"min" module:"openconfig-platform"`
	ΛMin            []ygot.Annotation                                `path:"@min" ygotAnnotation:"true"`
	MinTime         *uint64                                          `path:"min-time" module:"openconfig-platform"`
	ΛMinTime        []ygot.Annotation                                `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Temperature implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_State_Temperature) IsYANGGoStruct() {}

// GetAlarmSeverity retrieves the value of the leaf AlarmSeverity from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlarmSeverity is set, it can
// safely use t.GetAlarmSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlarmSeverity == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetAlarmSeverity() E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY {
	if t == nil || t.AlarmSeverity == 0 {
		return 0
	}
	return t.AlarmSeverity
}

// GetAlarmStatus retrieves the value of the leaf AlarmStatus from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlarmStatus is set, it can
// safely use t.GetAlarmStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlarmStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetAlarmStatus() bool {
	if t == nil || t.AlarmStatus == nil {
		return false
	}
	return *t.AlarmStatus
}

// GetAlarmThreshold retrieves the value of the leaf AlarmThreshold from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlarmThreshold is set, it can
// safely use t.GetAlarmThreshold() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlarmThreshold == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetAlarmThreshold() uint32 {
	if t == nil || t.AlarmThreshold == nil {
		return 0
	}
	return *t.AlarmThreshold
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_State_Temperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_State_Temperature
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Temperature"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_State_Temperature) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_State_Temperature.
func (*OpenconfigPlatform_Components_Component_State_Temperature) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Storage represents the /openconfig-platform/components/component/storage YANG schema element.
type OpenconfigPlatform_Components_Component_Storage struct {
	ΛMetadata []ygot.Annotation                                       `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Storage_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                       `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Storage_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Storage implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Storage) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Storage) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Storage_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Storage_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Storage) GetOrCreateState() *OpenconfigPlatform_Components_Component_Storage_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Storage_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Storage. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Storage) GetConfig() *OpenconfigPlatform_Components_Component_Storage_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Storage. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Storage) GetState() *OpenconfigPlatform_Components_Component_Storage_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Storage
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Storage) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Storage) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Storage"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Storage) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Storage) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Storage.
func (*OpenconfigPlatform_Components_Component_Storage) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Storage_Config represents the /openconfig-platform/components/component/storage/config YANG schema element.
type OpenconfigPlatform_Components_Component_Storage_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Storage_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Storage_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Storage_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Storage_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Storage_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Storage_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Storage_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Storage_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Storage_Config.
func (*OpenconfigPlatform_Components_Component_Storage_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Storage_State represents the /openconfig-platform/components/component/storage/state YANG schema element.
type OpenconfigPlatform_Components_Component_Storage_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Storage_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Storage_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Storage_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Storage_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Storage_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Storage_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Storage_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Storage_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Storage_State.
func (*OpenconfigPlatform_Components_Component_Storage_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Subcomponents represents the /openconfig-platform/components/component/subcomponents YANG schema element.
type OpenconfigPlatform_Components_Component_Subcomponents struct {
	ΛMetadata     []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	Subcomponent  map[string]*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent `path:"subcomponent" module:"openconfig-platform"`
	ΛSubcomponent []ygot.Annotation                                                              `path:"@subcomponent" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Subcomponents) IsYANGGoStruct() {}

// NewSubcomponent creates a new entry in the Subcomponent list of the
// OpenconfigPlatform_Components_Component_Subcomponents struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) NewSubcomponent(Name string) (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subcomponent == nil {
		t.Subcomponent = make(map[string]*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Subcomponent[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Subcomponent", key)
	}

	t.Subcomponent[key] = &OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent{
		Name: &Name,
	}

	return t.Subcomponent[key], nil
}

// RenameSubcomponent renames an entry in the list Subcomponent within
// the OpenconfigPlatform_Components_Component_Subcomponents struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) RenameSubcomponent(oldK, newK string) error {
	if _, ok := t.Subcomponent[newK]; ok {
		return fmt.Errorf("key %v already exists in Subcomponent", newK)
	}

	e, ok := t.Subcomponent[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Subcomponent", oldK)
	}
	e.Name = &newK

	t.Subcomponent[newK] = e
	delete(t.Subcomponent, oldK)
	return nil
}

// GetOrCreateSubcomponentMap returns the list (map) from OpenconfigPlatform_Components_Component_Subcomponents.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) GetOrCreateSubcomponentMap() map[string]*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent {
	if t.Subcomponent == nil {
		t.Subcomponent = make(map[string]*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent)
	}
	return t.Subcomponent
}

// GetOrCreateSubcomponent retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components_Component_Subcomponents. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) GetOrCreateSubcomponent(Name string) *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent {

	key := Name

	if v, ok := t.Subcomponent[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSubcomponent(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSubcomponent got unexpected error: %v", err))
	}
	return v
}

// GetSubcomponent retrieves the value with the specified key from
// the Subcomponent map field of OpenconfigPlatform_Components_Component_Subcomponents. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) GetSubcomponent(Name string) *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.Subcomponent[key]; ok {
		return lm
	}
	return nil
}

// AppendSubcomponent appends the supplied OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent struct to the
// list Subcomponent of OpenconfigPlatform_Components_Component_Subcomponents. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) AppendSubcomponent(v *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Subcomponent == nil {
		t.Subcomponent = make(map[string]*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent)
	}

	if _, ok := t.Subcomponent[key]; ok {
		return fmt.Errorf("duplicate key for list Subcomponent %v", key)
	}

	t.Subcomponent[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Subcomponents
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Subcomponent {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Subcomponents) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Subcomponents.
func (*OpenconfigPlatform_Components_Component_Subcomponents) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent represents the /openconfig-platform/components/component/subcomponents/subcomponent YANG schema element.
type OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent struct {
	ΛMetadata []ygot.Annotation                                                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config `path:"config" module:"openconfig-platform"`
	ΛConfig   []ygot.Annotation                                                          `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                    `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation                                                          `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State  `path:"state" module:"openconfig-platform"`
	ΛState    []ygot.Annotation                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) GetOrCreateState() *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) GetConfig() *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) GetState() *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent.
func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config represents the /openconfig-platform/components/component/subcomponents/subcomponent/config YANG schema element.
type OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config.
func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State represents the /openconfig-platform/components/component/subcomponents/subcomponent/state YANG schema element.
type OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-platform"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State.
func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) ΛBelongingModule() string {
	return "openconfig-platform"
}

// OpenconfigPlatform_Components_Component_Transceiver represents the /openconfig-platform/components/component/transceiver YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver struct {
	ΛMetadata         []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	Config            *OpenconfigPlatform_Components_Component_Transceiver_Config           `path:"config" module:"openconfig-platform-transceiver"`
	ΛConfig           []ygot.Annotation                                                     `path:"@config" ygotAnnotation:"true"`
	PhysicalChannels  *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels `path:"physical-channels" module:"openconfig-platform-transceiver"`
	ΛPhysicalChannels []ygot.Annotation                                                     `path:"@physical-channels" ygotAnnotation:"true"`
	State             *OpenconfigPlatform_Components_Component_Transceiver_State            `path:"state" module:"openconfig-platform-transceiver"`
	ΛState            []ygot.Annotation                                                     `path:"@state" ygotAnnotation:"true"`
	Thresholds        *OpenconfigPlatform_Components_Component_Transceiver_Thresholds       `path:"thresholds" module:"openconfig-platform-transceiver"`
	ΛThresholds       []ygot.Annotation                                                     `path:"@thresholds" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Transceiver_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Transceiver_Config{}
	return t.Config
}

// GetOrCreatePhysicalChannels retrieves the value of the PhysicalChannels field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetOrCreatePhysicalChannels() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels {
	if t.PhysicalChannels != nil {
		return t.PhysicalChannels
	}
	t.PhysicalChannels = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels{}
	return t.PhysicalChannels
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetOrCreateState() *OpenconfigPlatform_Components_Component_Transceiver_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Transceiver_State{}
	return t.State
}

// GetOrCreateThresholds retrieves the value of the Thresholds field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetOrCreateThresholds() *OpenconfigPlatform_Components_Component_Transceiver_Thresholds {
	if t.Thresholds != nil {
		return t.Thresholds
	}
	t.Thresholds = &OpenconfigPlatform_Components_Component_Transceiver_Thresholds{}
	return t.Thresholds
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetConfig() *OpenconfigPlatform_Components_Component_Transceiver_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPhysicalChannels returns the value of the PhysicalChannels struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver. If the receiver or the field PhysicalChannels is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetPhysicalChannels() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels {
	if t != nil && t.PhysicalChannels != nil {
		return t.PhysicalChannels
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetState() *OpenconfigPlatform_Components_Component_Transceiver_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetThresholds returns the value of the Thresholds struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver. If the receiver or the field Thresholds is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver) GetThresholds() *OpenconfigPlatform_Components_Component_Transceiver_Thresholds {
	if t != nil && t.Thresholds != nil {
		return t.Thresholds
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.PhysicalChannels.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Thresholds.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver.
func (*OpenconfigPlatform_Components_Component_Transceiver) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_Config represents the /openconfig-platform/components/component/transceiver/config YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_Config struct {
	ΛMetadata             []ygot.Annotation                                             `path:"@" ygotAnnotation:"true"`
	Enabled               *bool                                                         `path:"enabled" module:"openconfig-platform-transceiver"`
	ΛEnabled              []ygot.Annotation                                             `path:"@enabled" ygotAnnotation:"true"`
	EthernetPmdPreconf    E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE                  `path:"ethernet-pmd-preconf" module:"openconfig-platform-transceiver"`
	ΛEthernetPmdPreconf   []ygot.Annotation                                             `path:"@ethernet-pmd-preconf" ygotAnnotation:"true"`
	FecMode               E_OpenconfigPlatformTypes_FEC_MODE_TYPE                       `path:"fec-mode" module:"openconfig-platform-transceiver"`
	ΛFecMode              []ygot.Annotation                                             `path:"@fec-mode" ygotAnnotation:"true"`
	FormFactorPreconf     E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE       `path:"form-factor-preconf" module:"openconfig-platform-transceiver"`
	ΛFormFactorPreconf    []ygot.Annotation                                             `path:"@form-factor-preconf" ygotAnnotation:"true"`
	ModuleFunctionalType  E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE `path:"module-functional-type" module:"openconfig-platform-transceiver"`
	ΛModuleFunctionalType []ygot.Annotation                                             `path:"@module-functional-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_Config) IsYANGGoStruct() {}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigPlatform_Components_Component_Transceiver_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetEthernetPmdPreconf retrieves the value of the leaf EthernetPmdPreconf from the OpenconfigPlatform_Components_Component_Transceiver_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetPmdPreconf is set, it can
// safely use t.GetEthernetPmdPreconf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetPmdPreconf == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) GetEthernetPmdPreconf() E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE {
	if t == nil || t.EthernetPmdPreconf == 0 {
		return 0
	}
	return t.EthernetPmdPreconf
}

// GetFecMode retrieves the value of the leaf FecMode from the OpenconfigPlatform_Components_Component_Transceiver_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecMode is set, it can
// safely use t.GetFecMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecMode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) GetFecMode() E_OpenconfigPlatformTypes_FEC_MODE_TYPE {
	if t == nil || t.FecMode == 0 {
		return 0
	}
	return t.FecMode
}

// GetFormFactorPreconf retrieves the value of the leaf FormFactorPreconf from the OpenconfigPlatform_Components_Component_Transceiver_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FormFactorPreconf is set, it can
// safely use t.GetFormFactorPreconf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FormFactorPreconf == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) GetFormFactorPreconf() E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE {
	if t == nil || t.FormFactorPreconf == 0 {
		return 0
	}
	return t.FormFactorPreconf
}

// GetModuleFunctionalType retrieves the value of the leaf ModuleFunctionalType from the OpenconfigPlatform_Components_Component_Transceiver_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModuleFunctionalType is set, it can
// safely use t.GetModuleFunctionalType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModuleFunctionalType == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) GetModuleFunctionalType() E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE {
	if t == nil || t.ModuleFunctionalType == 0 {
		return 0
	}
	return t.ModuleFunctionalType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_Config.
func (*OpenconfigPlatform_Components_Component_Transceiver_Config) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels represents the /openconfig-platform/components/component/transceiver/physical-channels YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels struct {
	ΛMetadata []ygot.Annotation                                                                        `path:"@" ygotAnnotation:"true"`
	Channel   map[uint16]*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel `path:"channel" module:"openconfig-platform-transceiver"`
	ΛChannel  []ygot.Annotation                                                                        `path:"@channel" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) IsYANGGoStruct() {}

// NewChannel creates a new entry in the Channel list of the
// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) NewChannel(Index uint16) (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Channel == nil {
		t.Channel = make(map[uint16]*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Channel[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Channel", key)
	}

	t.Channel[key] = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel{
		Index: &Index,
	}

	return t.Channel[key], nil
}

// RenameChannel renames an entry in the list Channel within
// the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) RenameChannel(oldK, newK uint16) error {
	if _, ok := t.Channel[newK]; ok {
		return fmt.Errorf("key %v already exists in Channel", newK)
	}

	e, ok := t.Channel[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Channel", oldK)
	}
	e.Index = &newK

	t.Channel[newK] = e
	delete(t.Channel, oldK)
	return nil
}

// GetOrCreateChannelMap returns the list (map) from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) GetOrCreateChannelMap() map[uint16]*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel {
	if t.Channel == nil {
		t.Channel = make(map[uint16]*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel)
	}
	return t.Channel
}

// GetOrCreateChannel retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) GetOrCreateChannel(Index uint16) *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel {

	key := Index

	if v, ok := t.Channel[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewChannel(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateChannel got unexpected error: %v", err))
	}
	return v
}

// GetChannel retrieves the value with the specified key from
// the Channel map field of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) GetChannel(Index uint16) *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Channel[key]; ok {
		return lm
	}
	return nil
}

// AppendChannel appends the supplied OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel struct to the
// list Channel of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) AppendChannel(v *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Channel == nil {
		t.Channel = make(map[uint16]*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel)
	}

	if _, ok := t.Channel[key]; ok {
		return fmt.Errorf("duplicate key for list Channel %v", key)
	}

	t.Channel[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Channel {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel represents the /openconfig-platform/components/component/transceiver/physical-channels/channel YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel struct {
	ΛMetadata []ygot.Annotation                                                                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config `path:"config" module:"openconfig-platform-transceiver"`
	ΛConfig   []ygot.Annotation                                                                    `path:"@config" ygotAnnotation:"true"`
	Index     *uint16                                                                              `path:"index" module:"openconfig-platform-transceiver"`
	ΛIndex    []ygot.Annotation                                                                    `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State  `path:"state" module:"openconfig-platform-transceiver"`
	ΛState    []ygot.Annotation                                                                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) GetOrCreateConfig() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) GetOrCreateState() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) GetConfig() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) GetState() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) GetIndex() uint16 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/config YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config struct {
	ΛMetadata                 []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AssociatedOpticalChannel  *string           `path:"associated-optical-channel" module:"openconfig-platform-transceiver"`
	ΛAssociatedOpticalChannel []ygot.Annotation `path:"@associated-optical-channel" ygotAnnotation:"true"`
	Description               *string           `path:"description" module:"openconfig-platform-transceiver"`
	ΛDescription              []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	Index                     *uint16           `path:"index" module:"openconfig-platform-transceiver"`
	ΛIndex                    []ygot.Annotation `path:"@index" ygotAnnotation:"true"`
	TargetOutputPower         *float64          `path:"target-output-power" module:"openconfig-platform-transceiver"`
	ΛTargetOutputPower        []ygot.Annotation `path:"@target-output-power" ygotAnnotation:"true"`
	TxLaser                   *bool             `path:"tx-laser" module:"openconfig-platform-transceiver"`
	ΛTxLaser                  []ygot.Annotation `path:"@tx-laser" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) IsYANGGoStruct() {
}

// GetAssociatedOpticalChannel retrieves the value of the leaf AssociatedOpticalChannel from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociatedOpticalChannel is set, it can
// safely use t.GetAssociatedOpticalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociatedOpticalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) GetAssociatedOpticalChannel() string {
	if t == nil || t.AssociatedOpticalChannel == nil {
		return ""
	}
	return *t.AssociatedOpticalChannel
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) GetIndex() uint16 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetTargetOutputPower retrieves the value of the leaf TargetOutputPower from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TargetOutputPower is set, it can
// safely use t.GetTargetOutputPower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TargetOutputPower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) GetTargetOutputPower() float64 {
	if t == nil || t.TargetOutputPower == nil {
		return 0.0
	}
	return *t.TargetOutputPower
}

// GetTxLaser retrieves the value of the leaf TxLaser from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TxLaser is set, it can
// safely use t.GetTxLaser() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TxLaser == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) GetTxLaser() bool {
	if t == nil || t.TxLaser == nil {
		return false
	}
	return *t.TxLaser
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State struct {
	ΛMetadata                 []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	AssociatedOpticalChannel  *string                                                                                                      `path:"associated-optical-channel" module:"openconfig-platform-transceiver"`
	ΛAssociatedOpticalChannel []ygot.Annotation                                                                                            `path:"@associated-optical-channel" ygotAnnotation:"true"`
	Description               *string                                                                                                      `path:"description" module:"openconfig-platform-transceiver"`
	ΛDescription              []ygot.Annotation                                                                                            `path:"@description" ygotAnnotation:"true"`
	Index                     *uint16                                                                                                      `path:"index" module:"openconfig-platform-transceiver"`
	ΛIndex                    []ygot.Annotation                                                                                            `path:"@index" ygotAnnotation:"true"`
	InputPower                *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower               `path:"input-power" module:"openconfig-platform-transceiver"`
	ΛInputPower               []ygot.Annotation                                                                                            `path:"@input-power" ygotAnnotation:"true"`
	LaserAge                  *uint8                                                                                                       `path:"laser-age" module:"openconfig-platform-transceiver"`
	ΛLaserAge                 []ygot.Annotation                                                                                            `path:"@laser-age" ygotAnnotation:"true"`
	LaserBiasCurrent          *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent         `path:"laser-bias-current" module:"openconfig-platform-transceiver"`
	ΛLaserBiasCurrent         []ygot.Annotation                                                                                            `path:"@laser-bias-current" ygotAnnotation:"true"`
	LaserTemperature          *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature         `path:"laser-temperature" module:"openconfig-platform-transceiver"`
	ΛLaserTemperature         []ygot.Annotation                                                                                            `path:"@laser-temperature" ygotAnnotation:"true"`
	OutputFrequency           *uint64                                                                                                      `path:"output-frequency" module:"openconfig-platform-transceiver"`
	ΛOutputFrequency          []ygot.Annotation                                                                                            `path:"@output-frequency" ygotAnnotation:"true"`
	OutputPower               *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower              `path:"output-power" module:"openconfig-platform-transceiver"`
	ΛOutputPower              []ygot.Annotation                                                                                            `path:"@output-power" ygotAnnotation:"true"`
	TargetFrequencyDeviation  *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation `path:"target-frequency-deviation" module:"openconfig-platform-transceiver"`
	ΛTargetFrequencyDeviation []ygot.Annotation                                                                                            `path:"@target-frequency-deviation" ygotAnnotation:"true"`
	TargetOutputPower         *float64                                                                                                     `path:"target-output-power" module:"openconfig-platform-transceiver"`
	ΛTargetOutputPower        []ygot.Annotation                                                                                            `path:"@target-output-power" ygotAnnotation:"true"`
	TecCurrent                *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent               `path:"tec-current" module:"openconfig-platform-transceiver"`
	ΛTecCurrent               []ygot.Annotation                                                                                            `path:"@tec-current" ygotAnnotation:"true"`
	TxLaser                   *bool                                                                                                        `path:"tx-laser" module:"openconfig-platform-transceiver"`
	ΛTxLaser                  []ygot.Annotation                                                                                            `path:"@tx-laser" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) IsYANGGoStruct() {
}

// GetOrCreateInputPower retrieves the value of the InputPower field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOrCreateInputPower() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower {
	if t.InputPower != nil {
		return t.InputPower
	}
	t.InputPower = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower{}
	return t.InputPower
}

// GetOrCreateLaserBiasCurrent retrieves the value of the LaserBiasCurrent field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOrCreateLaserBiasCurrent() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent {
	if t.LaserBiasCurrent != nil {
		return t.LaserBiasCurrent
	}
	t.LaserBiasCurrent = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent{}
	return t.LaserBiasCurrent
}

// GetOrCreateLaserTemperature retrieves the value of the LaserTemperature field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOrCreateLaserTemperature() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature {
	if t.LaserTemperature != nil {
		return t.LaserTemperature
	}
	t.LaserTemperature = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature{}
	return t.LaserTemperature
}

// GetOrCreateOutputPower retrieves the value of the OutputPower field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOrCreateOutputPower() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower {
	if t.OutputPower != nil {
		return t.OutputPower
	}
	t.OutputPower = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower{}
	return t.OutputPower
}

// GetOrCreateTargetFrequencyDeviation retrieves the value of the TargetFrequencyDeviation field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOrCreateTargetFrequencyDeviation() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation {
	if t.TargetFrequencyDeviation != nil {
		return t.TargetFrequencyDeviation
	}
	t.TargetFrequencyDeviation = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation{}
	return t.TargetFrequencyDeviation
}

// GetOrCreateTecCurrent retrieves the value of the TecCurrent field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOrCreateTecCurrent() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent {
	if t.TecCurrent != nil {
		return t.TecCurrent
	}
	t.TecCurrent = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent{}
	return t.TecCurrent
}

// GetInputPower returns the value of the InputPower struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State. If the receiver or the field InputPower is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetInputPower() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower {
	if t != nil && t.InputPower != nil {
		return t.InputPower
	}
	return nil
}

// GetLaserBiasCurrent returns the value of the LaserBiasCurrent struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State. If the receiver or the field LaserBiasCurrent is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetLaserBiasCurrent() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent {
	if t != nil && t.LaserBiasCurrent != nil {
		return t.LaserBiasCurrent
	}
	return nil
}

// GetLaserTemperature returns the value of the LaserTemperature struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State. If the receiver or the field LaserTemperature is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetLaserTemperature() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature {
	if t != nil && t.LaserTemperature != nil {
		return t.LaserTemperature
	}
	return nil
}

// GetOutputPower returns the value of the OutputPower struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State. If the receiver or the field OutputPower is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOutputPower() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower {
	if t != nil && t.OutputPower != nil {
		return t.OutputPower
	}
	return nil
}

// GetTargetFrequencyDeviation returns the value of the TargetFrequencyDeviation struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State. If the receiver or the field TargetFrequencyDeviation is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetTargetFrequencyDeviation() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation {
	if t != nil && t.TargetFrequencyDeviation != nil {
		return t.TargetFrequencyDeviation
	}
	return nil
}

// GetTecCurrent returns the value of the TecCurrent struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State. If the receiver or the field TecCurrent is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetTecCurrent() *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent {
	if t != nil && t.TecCurrent != nil {
		return t.TecCurrent
	}
	return nil
}

// GetAssociatedOpticalChannel retrieves the value of the leaf AssociatedOpticalChannel from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociatedOpticalChannel is set, it can
// safely use t.GetAssociatedOpticalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociatedOpticalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetAssociatedOpticalChannel() string {
	if t == nil || t.AssociatedOpticalChannel == nil {
		return ""
	}
	return *t.AssociatedOpticalChannel
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetIndex() uint16 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLaserAge retrieves the value of the leaf LaserAge from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LaserAge is set, it can
// safely use t.GetLaserAge() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LaserAge == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetLaserAge() uint8 {
	if t == nil || t.LaserAge == nil {
		return 0
	}
	return *t.LaserAge
}

// GetOutputFrequency retrieves the value of the leaf OutputFrequency from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutputFrequency is set, it can
// safely use t.GetOutputFrequency() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutputFrequency == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetOutputFrequency() uint64 {
	if t == nil || t.OutputFrequency == nil {
		return 0
	}
	return *t.OutputFrequency
}

// GetTargetOutputPower retrieves the value of the leaf TargetOutputPower from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TargetOutputPower is set, it can
// safely use t.GetTargetOutputPower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TargetOutputPower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetTargetOutputPower() float64 {
	if t == nil || t.TargetOutputPower == nil {
		return 0.0
	}
	return *t.TargetOutputPower
}

// GetTxLaser retrieves the value of the leaf TxLaser from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TxLaser is set, it can
// safely use t.GetTxLaser() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TxLaser == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) GetTxLaser() bool {
	if t == nil || t.TxLaser == nil {
		return false
	}
	return *t.TxLaser
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.InputPower.PopulateDefaults()
	t.LaserBiasCurrent.PopulateDefaults()
	t.LaserTemperature.PopulateDefaults()
	t.OutputPower.PopulateDefaults()
	t.TargetFrequencyDeviation.PopulateDefaults()
	t.TecCurrent.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/input-power YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/laser-bias-current YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/laser-temperature YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserTemperature) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/output-power YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/target-frequency-deviation YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TargetFrequencyDeviation) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/tec-current YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent.
func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_TecCurrent) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_State represents the /openconfig-platform/components/component/transceiver/state YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_State struct {
	ΛMetadata               []ygot.Annotation                                                           `path:"@" ygotAnnotation:"true"`
	ConnectorType           E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE                             `path:"connector-type" module:"openconfig-platform-transceiver"`
	ΛConnectorType          []ygot.Annotation                                                           `path:"@connector-type" ygotAnnotation:"true"`
	DateCode                *string                                                                     `path:"date-code" module:"openconfig-platform-transceiver"`
	ΛDateCode               []ygot.Annotation                                                           `path:"@date-code" ygotAnnotation:"true"`
	Enabled                 *bool                                                                       `path:"enabled" module:"openconfig-platform-transceiver"`
	ΛEnabled                []ygot.Annotation                                                           `path:"@enabled" ygotAnnotation:"true"`
	EthernetPmd             E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE                                `path:"ethernet-pmd" module:"openconfig-platform-transceiver"`
	ΛEthernetPmd            []ygot.Annotation                                                           `path:"@ethernet-pmd" ygotAnnotation:"true"`
	EthernetPmdPreconf      E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE                                `path:"ethernet-pmd-preconf" module:"openconfig-platform-transceiver"`
	ΛEthernetPmdPreconf     []ygot.Annotation                                                           `path:"@ethernet-pmd-preconf" ygotAnnotation:"true"`
	FaultCondition          *bool                                                                       `path:"fault-condition" module:"openconfig-platform-transceiver"`
	ΛFaultCondition         []ygot.Annotation                                                           `path:"@fault-condition" ygotAnnotation:"true"`
	FecCorrectedBits        *uint64                                                                     `path:"fec-corrected-bits" module:"openconfig-platform-transceiver"`
	ΛFecCorrectedBits       []ygot.Annotation                                                           `path:"@fec-corrected-bits" ygotAnnotation:"true"`
	FecCorrectedBytes       *uint64                                                                     `path:"fec-corrected-bytes" module:"openconfig-platform-transceiver"`
	ΛFecCorrectedBytes      []ygot.Annotation                                                           `path:"@fec-corrected-bytes" ygotAnnotation:"true"`
	FecMode                 E_OpenconfigPlatformTypes_FEC_MODE_TYPE                                     `path:"fec-mode" module:"openconfig-platform-transceiver"`
	ΛFecMode                []ygot.Annotation                                                           `path:"@fec-mode" ygotAnnotation:"true"`
	FecStatus               E_OpenconfigPlatformTypes_FEC_STATUS_TYPE                                   `path:"fec-status" module:"openconfig-platform-transceiver"`
	ΛFecStatus              []ygot.Annotation                                                           `path:"@fec-status" ygotAnnotation:"true"`
	FecUncorrectableBlocks  *uint64                                                                     `path:"fec-uncorrectable-blocks" module:"openconfig-platform-transceiver"`
	ΛFecUncorrectableBlocks []ygot.Annotation                                                           `path:"@fec-uncorrectable-blocks" ygotAnnotation:"true"`
	FecUncorrectableWords   *uint64                                                                     `path:"fec-uncorrectable-words" module:"openconfig-platform-transceiver"`
	ΛFecUncorrectableWords  []ygot.Annotation                                                           `path:"@fec-uncorrectable-words" ygotAnnotation:"true"`
	FormFactor              E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE                     `path:"form-factor" module:"openconfig-platform-transceiver"`
	ΛFormFactor             []ygot.Annotation                                                           `path:"@form-factor" ygotAnnotation:"true"`
	FormFactorPreconf       E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE                     `path:"form-factor-preconf" module:"openconfig-platform-transceiver"`
	ΛFormFactorPreconf      []ygot.Annotation                                                           `path:"@form-factor-preconf" ygotAnnotation:"true"`
	InputPower              *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower       `path:"input-power" module:"openconfig-platform-transceiver"`
	ΛInputPower             []ygot.Annotation                                                           `path:"@input-power" ygotAnnotation:"true"`
	LaserBiasCurrent        *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent `path:"laser-bias-current" module:"openconfig-platform-transceiver"`
	ΛLaserBiasCurrent       []ygot.Annotation                                                           `path:"@laser-bias-current" ygotAnnotation:"true"`
	ModuleFunctionalType    E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE               `path:"module-functional-type" module:"openconfig-platform-transceiver"`
	ΛModuleFunctionalType   []ygot.Annotation                                                           `path:"@module-functional-type" ygotAnnotation:"true"`
	OtnComplianceCode       E_OpenconfigTransportTypes_OTN_APPLICATION_CODE                             `path:"otn-compliance-code" module:"openconfig-platform-transceiver"`
	ΛOtnComplianceCode      []ygot.Annotation                                                           `path:"@otn-compliance-code" ygotAnnotation:"true"`
	OutputPower             *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower      `path:"output-power" module:"openconfig-platform-transceiver"`
	ΛOutputPower            []ygot.Annotation                                                           `path:"@output-power" ygotAnnotation:"true"`
	PostFecBer              *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer       `path:"post-fec-ber" module:"openconfig-platform-transceiver"`
	ΛPostFecBer             []ygot.Annotation                                                           `path:"@post-fec-ber" ygotAnnotation:"true"`
	PreFecBer               *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer        `path:"pre-fec-ber" module:"openconfig-platform-transceiver"`
	ΛPreFecBer              []ygot.Annotation                                                           `path:"@pre-fec-ber" ygotAnnotation:"true"`
	Present                 E_OpenconfigPlatform_Components_Component_Transceiver_State_Present         `path:"present" module:"openconfig-platform-transceiver"`
	ΛPresent                []ygot.Annotation                                                           `path:"@present" ygotAnnotation:"true"`
	SerialNo                *string                                                                     `path:"serial-no" module:"openconfig-platform-transceiver"`
	ΛSerialNo               []ygot.Annotation                                                           `path:"@serial-no" ygotAnnotation:"true"`
	SonetSdhComplianceCode  E_OpenconfigTransportTypes_SONET_APPLICATION_CODE                           `path:"sonet-sdh-compliance-code" module:"openconfig-platform-transceiver"`
	ΛSonetSdhComplianceCode []ygot.Annotation                                                           `path:"@sonet-sdh-compliance-code" ygotAnnotation:"true"`
	SupplyVoltage           *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage    `path:"supply-voltage" module:"openconfig-platform-transceiver"`
	ΛSupplyVoltage          []ygot.Annotation                                                           `path:"@supply-voltage" ygotAnnotation:"true"`
	Vendor                  *string                                                                     `path:"vendor" module:"openconfig-platform-transceiver"`
	ΛVendor                 []ygot.Annotation                                                           `path:"@vendor" ygotAnnotation:"true"`
	VendorPart              *string                                                                     `path:"vendor-part" module:"openconfig-platform-transceiver"`
	ΛVendorPart             []ygot.Annotation                                                           `path:"@vendor-part" ygotAnnotation:"true"`
	VendorRev               *string                                                                     `path:"vendor-rev" module:"openconfig-platform-transceiver"`
	ΛVendorRev              []ygot.Annotation                                                           `path:"@vendor-rev" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_State) IsYANGGoStruct() {}

// GetOrCreateInputPower retrieves the value of the InputPower field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOrCreateInputPower() *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower {
	if t.InputPower != nil {
		return t.InputPower
	}
	t.InputPower = &OpenconfigPlatform_Components_Component_Transceiver_State_InputPower{}
	return t.InputPower
}

// GetOrCreateLaserBiasCurrent retrieves the value of the LaserBiasCurrent field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOrCreateLaserBiasCurrent() *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent {
	if t.LaserBiasCurrent != nil {
		return t.LaserBiasCurrent
	}
	t.LaserBiasCurrent = &OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent{}
	return t.LaserBiasCurrent
}

// GetOrCreateOutputPower retrieves the value of the OutputPower field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOrCreateOutputPower() *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower {
	if t.OutputPower != nil {
		return t.OutputPower
	}
	t.OutputPower = &OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower{}
	return t.OutputPower
}

// GetOrCreatePostFecBer retrieves the value of the PostFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOrCreatePostFecBer() *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer {
	if t.PostFecBer != nil {
		return t.PostFecBer
	}
	t.PostFecBer = &OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer{}
	return t.PostFecBer
}

// GetOrCreatePreFecBer retrieves the value of the PreFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOrCreatePreFecBer() *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer {
	if t.PreFecBer != nil {
		return t.PreFecBer
	}
	t.PreFecBer = &OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer{}
	return t.PreFecBer
}

// GetOrCreateSupplyVoltage retrieves the value of the SupplyVoltage field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOrCreateSupplyVoltage() *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage {
	if t.SupplyVoltage != nil {
		return t.SupplyVoltage
	}
	t.SupplyVoltage = &OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage{}
	return t.SupplyVoltage
}

// GetInputPower returns the value of the InputPower struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_State. If the receiver or the field InputPower is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetInputPower() *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower {
	if t != nil && t.InputPower != nil {
		return t.InputPower
	}
	return nil
}

// GetLaserBiasCurrent returns the value of the LaserBiasCurrent struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_State. If the receiver or the field LaserBiasCurrent is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetLaserBiasCurrent() *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent {
	if t != nil && t.LaserBiasCurrent != nil {
		return t.LaserBiasCurrent
	}
	return nil
}

// GetOutputPower returns the value of the OutputPower struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_State. If the receiver or the field OutputPower is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOutputPower() *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower {
	if t != nil && t.OutputPower != nil {
		return t.OutputPower
	}
	return nil
}

// GetPostFecBer returns the value of the PostFecBer struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_State. If the receiver or the field PostFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetPostFecBer() *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer {
	if t != nil && t.PostFecBer != nil {
		return t.PostFecBer
	}
	return nil
}

// GetPreFecBer returns the value of the PreFecBer struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_State. If the receiver or the field PreFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetPreFecBer() *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer {
	if t != nil && t.PreFecBer != nil {
		return t.PreFecBer
	}
	return nil
}

// GetSupplyVoltage returns the value of the SupplyVoltage struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_State. If the receiver or the field SupplyVoltage is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetSupplyVoltage() *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage {
	if t != nil && t.SupplyVoltage != nil {
		return t.SupplyVoltage
	}
	return nil
}

// GetConnectorType retrieves the value of the leaf ConnectorType from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectorType is set, it can
// safely use t.GetConnectorType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectorType == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetConnectorType() E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE {
	if t == nil || t.ConnectorType == 0 {
		return 0
	}
	return t.ConnectorType
}

// GetDateCode retrieves the value of the leaf DateCode from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DateCode is set, it can
// safely use t.GetDateCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DateCode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetDateCode() string {
	if t == nil || t.DateCode == nil {
		return ""
	}
	return *t.DateCode
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetEthernetPmd retrieves the value of the leaf EthernetPmd from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetPmd is set, it can
// safely use t.GetEthernetPmd() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetPmd == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetEthernetPmd() E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE {
	if t == nil || t.EthernetPmd == 0 {
		return 0
	}
	return t.EthernetPmd
}

// GetEthernetPmdPreconf retrieves the value of the leaf EthernetPmdPreconf from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EthernetPmdPreconf is set, it can
// safely use t.GetEthernetPmdPreconf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EthernetPmdPreconf == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetEthernetPmdPreconf() E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE {
	if t == nil || t.EthernetPmdPreconf == 0 {
		return 0
	}
	return t.EthernetPmdPreconf
}

// GetFaultCondition retrieves the value of the leaf FaultCondition from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FaultCondition is set, it can
// safely use t.GetFaultCondition() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FaultCondition == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFaultCondition() bool {
	if t == nil || t.FaultCondition == nil {
		return false
	}
	return *t.FaultCondition
}

// GetFecCorrectedBits retrieves the value of the leaf FecCorrectedBits from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecCorrectedBits is set, it can
// safely use t.GetFecCorrectedBits() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecCorrectedBits == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFecCorrectedBits() uint64 {
	if t == nil || t.FecCorrectedBits == nil {
		return 0
	}
	return *t.FecCorrectedBits
}

// GetFecCorrectedBytes retrieves the value of the leaf FecCorrectedBytes from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecCorrectedBytes is set, it can
// safely use t.GetFecCorrectedBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecCorrectedBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFecCorrectedBytes() uint64 {
	if t == nil || t.FecCorrectedBytes == nil {
		return 0
	}
	return *t.FecCorrectedBytes
}

// GetFecMode retrieves the value of the leaf FecMode from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecMode is set, it can
// safely use t.GetFecMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecMode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFecMode() E_OpenconfigPlatformTypes_FEC_MODE_TYPE {
	if t == nil || t.FecMode == 0 {
		return 0
	}
	return t.FecMode
}

// GetFecStatus retrieves the value of the leaf FecStatus from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecStatus is set, it can
// safely use t.GetFecStatus() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecStatus == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFecStatus() E_OpenconfigPlatformTypes_FEC_STATUS_TYPE {
	if t == nil || t.FecStatus == 0 {
		return 0
	}
	return t.FecStatus
}

// GetFecUncorrectableBlocks retrieves the value of the leaf FecUncorrectableBlocks from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecUncorrectableBlocks is set, it can
// safely use t.GetFecUncorrectableBlocks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecUncorrectableBlocks == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFecUncorrectableBlocks() uint64 {
	if t == nil || t.FecUncorrectableBlocks == nil {
		return 0
	}
	return *t.FecUncorrectableBlocks
}

// GetFecUncorrectableWords retrieves the value of the leaf FecUncorrectableWords from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecUncorrectableWords is set, it can
// safely use t.GetFecUncorrectableWords() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecUncorrectableWords == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFecUncorrectableWords() uint64 {
	if t == nil || t.FecUncorrectableWords == nil {
		return 0
	}
	return *t.FecUncorrectableWords
}

// GetFormFactor retrieves the value of the leaf FormFactor from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FormFactor is set, it can
// safely use t.GetFormFactor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FormFactor == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFormFactor() E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE {
	if t == nil || t.FormFactor == 0 {
		return 0
	}
	return t.FormFactor
}

// GetFormFactorPreconf retrieves the value of the leaf FormFactorPreconf from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FormFactorPreconf is set, it can
// safely use t.GetFormFactorPreconf() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FormFactorPreconf == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetFormFactorPreconf() E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE {
	if t == nil || t.FormFactorPreconf == 0 {
		return 0
	}
	return t.FormFactorPreconf
}

// GetModuleFunctionalType retrieves the value of the leaf ModuleFunctionalType from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModuleFunctionalType is set, it can
// safely use t.GetModuleFunctionalType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModuleFunctionalType == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetModuleFunctionalType() E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE {
	if t == nil || t.ModuleFunctionalType == 0 {
		return 0
	}
	return t.ModuleFunctionalType
}

// GetOtnComplianceCode retrieves the value of the leaf OtnComplianceCode from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OtnComplianceCode is set, it can
// safely use t.GetOtnComplianceCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OtnComplianceCode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetOtnComplianceCode() E_OpenconfigTransportTypes_OTN_APPLICATION_CODE {
	if t == nil || t.OtnComplianceCode == 0 {
		return 0
	}
	return t.OtnComplianceCode
}

// GetPresent retrieves the value of the leaf Present from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Present is set, it can
// safely use t.GetPresent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Present == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetPresent() E_OpenconfigPlatform_Components_Component_Transceiver_State_Present {
	if t == nil || t.Present == 0 {
		return 0
	}
	return t.Present
}

// GetSerialNo retrieves the value of the leaf SerialNo from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SerialNo is set, it can
// safely use t.GetSerialNo() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SerialNo == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetSerialNo() string {
	if t == nil || t.SerialNo == nil {
		return ""
	}
	return *t.SerialNo
}

// GetSonetSdhComplianceCode retrieves the value of the leaf SonetSdhComplianceCode from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SonetSdhComplianceCode is set, it can
// safely use t.GetSonetSdhComplianceCode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SonetSdhComplianceCode == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetSonetSdhComplianceCode() E_OpenconfigTransportTypes_SONET_APPLICATION_CODE {
	if t == nil || t.SonetSdhComplianceCode == 0 {
		return 0
	}
	return t.SonetSdhComplianceCode
}

// GetVendor retrieves the value of the leaf Vendor from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Vendor is set, it can
// safely use t.GetVendor() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Vendor == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetVendor() string {
	if t == nil || t.Vendor == nil {
		return ""
	}
	return *t.Vendor
}

// GetVendorPart retrieves the value of the leaf VendorPart from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VendorPart is set, it can
// safely use t.GetVendorPart() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VendorPart == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetVendorPart() string {
	if t == nil || t.VendorPart == nil {
		return ""
	}
	return *t.VendorPart
}

// GetVendorRev retrieves the value of the leaf VendorRev from the OpenconfigPlatform_Components_Component_Transceiver_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VendorRev is set, it can
// safely use t.GetVendorRev() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VendorRev == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) GetVendorRev() string {
	if t == nil || t.VendorRev == nil {
		return ""
	}
	return *t.VendorRev
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.InputPower.PopulateDefaults()
	t.LaserBiasCurrent.PopulateDefaults()
	t.OutputPower.PopulateDefaults()
	t.PostFecBer.PopulateDefaults()
	t.PreFecBer.PopulateDefaults()
	t.SupplyVoltage.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_State.
func (*OpenconfigPlatform_Components_Component_Transceiver_State) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_State_InputPower represents the /openconfig-platform/components/component/transceiver/state/input-power YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_State_InputPower struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_InputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_State_InputPower
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_InputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_State_InputPower.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent represents the /openconfig-platform/components/component/transceiver/state/laser-bias-current YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower represents the /openconfig-platform/components/component/transceiver/state/output-power YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer represents the /openconfig-platform/components/component/transceiver/state/post-fec-ber YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer represents the /openconfig-platform/components/component/transceiver/state/pre-fec-ber YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage represents the /openconfig-platform/components/component/transceiver/state/supply-voltage YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-platform-transceiver"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-platform-transceiver"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-platform-transceiver"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-platform-transceiver"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-platform-transceiver"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-platform-transceiver"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-platform-transceiver"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage.
func (*OpenconfigPlatform_Components_Component_Transceiver_State_SupplyVoltage) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_Thresholds represents the /openconfig-platform/components/component/transceiver/thresholds YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_Thresholds struct {
	ΛMetadata  []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	Threshold  map[E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY]*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold `path:"threshold" module:"openconfig-platform-transceiver"`
	ΛThreshold []ygot.Annotation                                                                                                              `path:"@threshold" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_Thresholds implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_Thresholds) IsYANGGoStruct() {}

// NewThreshold creates a new entry in the Threshold list of the
// OpenconfigPlatform_Components_Component_Transceiver_Thresholds struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) NewThreshold(Severity E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) (*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Threshold == nil {
		t.Threshold = make(map[E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY]*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold)
	}

	key := Severity

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Threshold[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Threshold", key)
	}

	t.Threshold[key] = &OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold{
		Severity: Severity,
	}

	return t.Threshold[key], nil
}

// RenameThreshold renames an entry in the list Threshold within
// the OpenconfigPlatform_Components_Component_Transceiver_Thresholds struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) RenameThreshold(oldK, newK E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) error {
	if _, ok := t.Threshold[newK]; ok {
		return fmt.Errorf("key %v already exists in Threshold", newK)
	}

	e, ok := t.Threshold[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Threshold", oldK)
	}
	e.Severity = newK

	t.Threshold[newK] = e
	delete(t.Threshold, oldK)
	return nil
}

// GetOrCreateThresholdMap returns the list (map) from OpenconfigPlatform_Components_Component_Transceiver_Thresholds.
//
// It initializes the field if not already initialized.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) GetOrCreateThresholdMap() map[E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY]*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold {
	if t.Threshold == nil {
		t.Threshold = make(map[E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY]*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold)
	}
	return t.Threshold
}

// GetOrCreateThreshold retrieves the value with the specified keys from
// the receiver OpenconfigPlatform_Components_Component_Transceiver_Thresholds. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) GetOrCreateThreshold(Severity E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold {

	key := Severity

	if v, ok := t.Threshold[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewThreshold(Severity)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateThreshold got unexpected error: %v", err))
	}
	return v
}

// GetThreshold retrieves the value with the specified key from
// the Threshold map field of OpenconfigPlatform_Components_Component_Transceiver_Thresholds. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) GetThreshold(Severity E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold {

	if t == nil {
		return nil
	}

	key := Severity

	if lm, ok := t.Threshold[key]; ok {
		return lm
	}
	return nil
}

// AppendThreshold appends the supplied OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold struct to the
// list Threshold of OpenconfigPlatform_Components_Component_Transceiver_Thresholds. If the key value(s) specified in
// the supplied OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold already exist in the list, an error is
// returned.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) AppendThreshold(v *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) error {
	key := v.Severity

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Threshold == nil {
		t.Threshold = make(map[E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY]*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold)
	}

	if _, ok := t.Threshold[key]; ok {
		return fmt.Errorf("duplicate key for list Threshold %v", key)
	}

	t.Threshold[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_Thresholds
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Threshold {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_Thresholds"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_Thresholds.
func (*OpenconfigPlatform_Components_Component_Transceiver_Thresholds) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold represents the /openconfig-platform/components/component/transceiver/thresholds/threshold YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold struct {
	ΛMetadata []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	Severity  E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY                                `path:"severity" module:"openconfig-platform-transceiver"`
	ΛSeverity []ygot.Annotation                                                               `path:"@severity" ygotAnnotation:"true"`
	State     *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State `path:"state" module:"openconfig-platform-transceiver"`
	ΛState    []ygot.Annotation                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) IsYANGGoStruct() {}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) GetOrCreateState() *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) GetState() *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) GetSeverity() E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold struct, which is a YANG list entry.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"severity": t.Severity,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold.
func (*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State represents the /openconfig-platform/components/component/transceiver/thresholds/threshold/state YANG schema element.
type OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State struct {
	ΛMetadata               []ygot.Annotation                                `path:"@" ygotAnnotation:"true"`
	InputPowerLower         *float64                                         `path:"input-power-lower" module:"openconfig-platform-transceiver"`
	ΛInputPowerLower        []ygot.Annotation                                `path:"@input-power-lower" ygotAnnotation:"true"`
	InputPowerUpper         *float64                                         `path:"input-power-upper" module:"openconfig-platform-transceiver"`
	ΛInputPowerUpper        []ygot.Annotation                                `path:"@input-power-upper" ygotAnnotation:"true"`
	LaserBiasCurrentLower   *float64                                         `path:"laser-bias-current-lower" module:"openconfig-platform-transceiver"`
	ΛLaserBiasCurrentLower  []ygot.Annotation                                `path:"@laser-bias-current-lower" ygotAnnotation:"true"`
	LaserBiasCurrentUpper   *float64                                         `path:"laser-bias-current-upper" module:"openconfig-platform-transceiver"`
	ΛLaserBiasCurrentUpper  []ygot.Annotation                                `path:"@laser-bias-current-upper" ygotAnnotation:"true"`
	LaserTemperatureLower   *float64                                         `path:"laser-temperature-lower" module:"openconfig-platform-transceiver"`
	ΛLaserTemperatureLower  []ygot.Annotation                                `path:"@laser-temperature-lower" ygotAnnotation:"true"`
	LaserTemperatureUpper   *float64                                         `path:"laser-temperature-upper" module:"openconfig-platform-transceiver"`
	ΛLaserTemperatureUpper  []ygot.Annotation                                `path:"@laser-temperature-upper" ygotAnnotation:"true"`
	ModuleTemperatureLower  *float64                                         `path:"module-temperature-lower" module:"openconfig-platform-transceiver"`
	ΛModuleTemperatureLower []ygot.Annotation                                `path:"@module-temperature-lower" ygotAnnotation:"true"`
	ModuleTemperatureUpper  *float64                                         `path:"module-temperature-upper" module:"openconfig-platform-transceiver"`
	ΛModuleTemperatureUpper []ygot.Annotation                                `path:"@module-temperature-upper" ygotAnnotation:"true"`
	OutputPowerLower        *float64                                         `path:"output-power-lower" module:"openconfig-platform-transceiver"`
	ΛOutputPowerLower       []ygot.Annotation                                `path:"@output-power-lower" ygotAnnotation:"true"`
	OutputPowerUpper        *float64                                         `path:"output-power-upper" module:"openconfig-platform-transceiver"`
	ΛOutputPowerUpper       []ygot.Annotation                                `path:"@output-power-upper" ygotAnnotation:"true"`
	Severity                E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY `path:"severity" module:"openconfig-platform-transceiver"`
	ΛSeverity               []ygot.Annotation                                `path:"@severity" ygotAnnotation:"true"`
	SupplyVoltageLower      *float64                                         `path:"supply-voltage-lower" module:"openconfig-platform-transceiver"`
	ΛSupplyVoltageLower     []ygot.Annotation                                `path:"@supply-voltage-lower" ygotAnnotation:"true"`
	SupplyVoltageUpper      *float64                                         `path:"supply-voltage-upper" module:"openconfig-platform-transceiver"`
	ΛSupplyVoltageUpper     []ygot.Annotation                                `path:"@supply-voltage-upper" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) IsYANGGoStruct() {
}

// GetInputPowerLower retrieves the value of the leaf InputPowerLower from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InputPowerLower is set, it can
// safely use t.GetInputPowerLower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InputPowerLower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetInputPowerLower() float64 {
	if t == nil || t.InputPowerLower == nil {
		return 0.0
	}
	return *t.InputPowerLower
}

// GetInputPowerUpper retrieves the value of the leaf InputPowerUpper from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InputPowerUpper is set, it can
// safely use t.GetInputPowerUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InputPowerUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetInputPowerUpper() float64 {
	if t == nil || t.InputPowerUpper == nil {
		return 0.0
	}
	return *t.InputPowerUpper
}

// GetLaserBiasCurrentLower retrieves the value of the leaf LaserBiasCurrentLower from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LaserBiasCurrentLower is set, it can
// safely use t.GetLaserBiasCurrentLower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LaserBiasCurrentLower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetLaserBiasCurrentLower() float64 {
	if t == nil || t.LaserBiasCurrentLower == nil {
		return 0.0
	}
	return *t.LaserBiasCurrentLower
}

// GetLaserBiasCurrentUpper retrieves the value of the leaf LaserBiasCurrentUpper from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LaserBiasCurrentUpper is set, it can
// safely use t.GetLaserBiasCurrentUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LaserBiasCurrentUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetLaserBiasCurrentUpper() float64 {
	if t == nil || t.LaserBiasCurrentUpper == nil {
		return 0.0
	}
	return *t.LaserBiasCurrentUpper
}

// GetLaserTemperatureLower retrieves the value of the leaf LaserTemperatureLower from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LaserTemperatureLower is set, it can
// safely use t.GetLaserTemperatureLower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LaserTemperatureLower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetLaserTemperatureLower() float64 {
	if t == nil || t.LaserTemperatureLower == nil {
		return 0.0
	}
	return *t.LaserTemperatureLower
}

// GetLaserTemperatureUpper retrieves the value of the leaf LaserTemperatureUpper from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LaserTemperatureUpper is set, it can
// safely use t.GetLaserTemperatureUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LaserTemperatureUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetLaserTemperatureUpper() float64 {
	if t == nil || t.LaserTemperatureUpper == nil {
		return 0.0
	}
	return *t.LaserTemperatureUpper
}

// GetModuleTemperatureLower retrieves the value of the leaf ModuleTemperatureLower from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModuleTemperatureLower is set, it can
// safely use t.GetModuleTemperatureLower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModuleTemperatureLower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetModuleTemperatureLower() float64 {
	if t == nil || t.ModuleTemperatureLower == nil {
		return 0.0
	}
	return *t.ModuleTemperatureLower
}

// GetModuleTemperatureUpper retrieves the value of the leaf ModuleTemperatureUpper from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModuleTemperatureUpper is set, it can
// safely use t.GetModuleTemperatureUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModuleTemperatureUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetModuleTemperatureUpper() float64 {
	if t == nil || t.ModuleTemperatureUpper == nil {
		return 0.0
	}
	return *t.ModuleTemperatureUpper
}

// GetOutputPowerLower retrieves the value of the leaf OutputPowerLower from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutputPowerLower is set, it can
// safely use t.GetOutputPowerLower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutputPowerLower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetOutputPowerLower() float64 {
	if t == nil || t.OutputPowerLower == nil {
		return 0.0
	}
	return *t.OutputPowerLower
}

// GetOutputPowerUpper retrieves the value of the leaf OutputPowerUpper from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutputPowerUpper is set, it can
// safely use t.GetOutputPowerUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutputPowerUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetOutputPowerUpper() float64 {
	if t == nil || t.OutputPowerUpper == nil {
		return 0.0
	}
	return *t.OutputPowerUpper
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetSeverity() E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// GetSupplyVoltageLower retrieves the value of the leaf SupplyVoltageLower from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SupplyVoltageLower is set, it can
// safely use t.GetSupplyVoltageLower() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SupplyVoltageLower == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetSupplyVoltageLower() float64 {
	if t == nil || t.SupplyVoltageLower == nil {
		return 0.0
	}
	return *t.SupplyVoltageLower
}

// GetSupplyVoltageUpper retrieves the value of the leaf SupplyVoltageUpper from the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SupplyVoltageUpper is set, it can
// safely use t.GetSupplyVoltageUpper() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SupplyVoltageUpper == nil' before retrieving the leaf's value.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) GetSupplyVoltageUpper() float64 {
	if t == nil || t.SupplyVoltageUpper == nil {
		return 0.0
	}
	return *t.SupplyVoltageUpper
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State.
func (*OpenconfigPlatform_Components_Component_Transceiver_Thresholds_Threshold_State) ΛBelongingModule() string {
	return "openconfig-platform-transceiver"
}

// OpenconfigRoutingPolicy_RoutingPolicy represents the /openconfig-routing-policy/routing-policy YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy struct {
	ΛMetadata          []ygot.Annotation                                        `path:"@" ygotAnnotation:"true"`
	DefinedSets        *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets       `path:"defined-sets" module:"openconfig-routing-policy"`
	ΛDefinedSets       []ygot.Annotation                                        `path:"@defined-sets" ygotAnnotation:"true"`
	PolicyDefinitions  *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions `path:"policy-definitions" module:"openconfig-routing-policy"`
	ΛPolicyDefinitions []ygot.Annotation                                        `path:"@policy-definitions" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy) IsYANGGoStruct() {}

// GetOrCreateDefinedSets retrieves the value of the DefinedSets field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) GetOrCreateDefinedSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets {
	if t.DefinedSets != nil {
		return t.DefinedSets
	}
	t.DefinedSets = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets{}
	return t.DefinedSets
}

// GetOrCreatePolicyDefinitions retrieves the value of the PolicyDefinitions field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) GetOrCreatePolicyDefinitions() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions {
	if t.PolicyDefinitions != nil {
		return t.PolicyDefinitions
	}
	t.PolicyDefinitions = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions{}
	return t.PolicyDefinitions
}

// GetDefinedSets returns the value of the DefinedSets struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy. If the receiver or the field DefinedSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) GetDefinedSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets {
	if t != nil && t.DefinedSets != nil {
		return t.DefinedSets
	}
	return nil
}

// GetPolicyDefinitions returns the value of the PolicyDefinitions struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy. If the receiver or the field PolicyDefinitions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) GetPolicyDefinitions() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions {
	if t != nil && t.PolicyDefinitions != nil {
		return t.PolicyDefinitions
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.DefinedSets.PopulateDefaults()
	t.PolicyDefinitions.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy.
func (*OpenconfigRoutingPolicy_RoutingPolicy) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets represents the /openconfig-routing-policy/routing-policy/defined-sets YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets struct {
	ΛMetadata     []ygot.Annotation                                               `path:"@" ygotAnnotation:"true"`
	NeighborSets  *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets `path:"neighbor-sets" module:"openconfig-routing-policy"`
	ΛNeighborSets []ygot.Annotation                                               `path:"@neighbor-sets" ygotAnnotation:"true"`
	PrefixSets    *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets   `path:"prefix-sets" module:"openconfig-routing-policy"`
	ΛPrefixSets   []ygot.Annotation                                               `path:"@prefix-sets" ygotAnnotation:"true"`
	TagSets       *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets      `path:"tag-sets" module:"openconfig-routing-policy"`
	ΛTagSets      []ygot.Annotation                                               `path:"@tag-sets" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) IsYANGGoStruct() {}

// GetOrCreateNeighborSets retrieves the value of the NeighborSets field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) GetOrCreateNeighborSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets {
	if t.NeighborSets != nil {
		return t.NeighborSets
	}
	t.NeighborSets = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets{}
	return t.NeighborSets
}

// GetOrCreatePrefixSets retrieves the value of the PrefixSets field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) GetOrCreatePrefixSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets {
	if t.PrefixSets != nil {
		return t.PrefixSets
	}
	t.PrefixSets = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets{}
	return t.PrefixSets
}

// GetOrCreateTagSets retrieves the value of the TagSets field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) GetOrCreateTagSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets {
	if t.TagSets != nil {
		return t.TagSets
	}
	t.TagSets = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets{}
	return t.TagSets
}

// GetNeighborSets returns the value of the NeighborSets struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets. If the receiver or the field NeighborSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) GetNeighborSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets {
	if t != nil && t.NeighborSets != nil {
		return t.NeighborSets
	}
	return nil
}

// GetPrefixSets returns the value of the PrefixSets struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets. If the receiver or the field PrefixSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) GetPrefixSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets {
	if t != nil && t.PrefixSets != nil {
		return t.PrefixSets
	}
	return nil
}

// GetTagSets returns the value of the TagSets struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets. If the receiver or the field TagSets is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) GetTagSets() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets {
	if t != nil && t.TagSets != nil {
		return t.TagSets
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.NeighborSets.PopulateDefaults()
	t.PrefixSets.PopulateDefaults()
	t.TagSets.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets represents the /openconfig-routing-policy/routing-policy/defined-sets/neighbor-sets YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets struct {
	ΛMetadata    []ygot.Annotation                                                                      `path:"@" ygotAnnotation:"true"`
	NeighborSet  map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet `path:"neighbor-set" module:"openconfig-routing-policy"`
	ΛNeighborSet []ygot.Annotation                                                                      `path:"@neighbor-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) IsYANGGoStruct() {}

// NewNeighborSet creates a new entry in the NeighborSet list of the
// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) NewNeighborSet(Name string) (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NeighborSet == nil {
		t.NeighborSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NeighborSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NeighborSet", key)
	}

	t.NeighborSet[key] = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet{
		Name: &Name,
	}

	return t.NeighborSet[key], nil
}

// RenameNeighborSet renames an entry in the list NeighborSet within
// the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) RenameNeighborSet(oldK, newK string) error {
	if _, ok := t.NeighborSet[newK]; ok {
		return fmt.Errorf("key %v already exists in NeighborSet", newK)
	}

	e, ok := t.NeighborSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NeighborSet", oldK)
	}
	e.Name = &newK

	t.NeighborSet[newK] = e
	delete(t.NeighborSet, oldK)
	return nil
}

// GetOrCreateNeighborSetMap returns the list (map) from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) GetOrCreateNeighborSetMap() map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet {
	if t.NeighborSet == nil {
		t.NeighborSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet)
	}
	return t.NeighborSet
}

// GetOrCreateNeighborSet retrieves the value with the specified keys from
// the receiver OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) GetOrCreateNeighborSet(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet {

	key := Name

	if v, ok := t.NeighborSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighborSet(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighborSet got unexpected error: %v", err))
	}
	return v
}

// GetNeighborSet retrieves the value with the specified key from
// the NeighborSet map field of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) GetNeighborSet(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.NeighborSet[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighborSet appends the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet struct to the
// list NeighborSet of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets. If the key value(s) specified in
// the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet already exist in the list, an error is
// returned.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) AppendNeighborSet(v *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NeighborSet == nil {
		t.NeighborSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet)
	}

	if _, ok := t.NeighborSet[key]; ok {
		return fmt.Errorf("duplicate key for list NeighborSet %v", key)
	}

	t.NeighborSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NeighborSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet represents the /openconfig-routing-policy/routing-policy/defined-sets/neighbor-sets/neighbor-set YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet struct {
	ΛMetadata []ygot.Annotation                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                  `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                            `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation                                                                  `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet struct, which is a YANG list entry.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config represents the /openconfig-routing-policy/routing-policy/defined-sets/neighbor-sets/neighbor-set/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-routing-policy"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State represents the /openconfig-routing-policy/routing-policy/defined-sets/neighbor-sets/neighbor-set/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   []string          `path:"address" module:"openconfig-routing-policy"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) IsYANGGoStruct() {
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) GetAddress() []string {
	if t == nil || t.Address == nil {
		return nil
	}
	return t.Address
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_NeighborSets_NeighborSet_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets struct {
	ΛMetadata  []ygot.Annotation                                                                  `path:"@" ygotAnnotation:"true"`
	PrefixSet  map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet `path:"prefix-set" module:"openconfig-routing-policy"`
	ΛPrefixSet []ygot.Annotation                                                                  `path:"@prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) IsYANGGoStruct() {}

// NewPrefixSet creates a new entry in the PrefixSet list of the
// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) NewPrefixSet(Name string) (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSet == nil {
		t.PrefixSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PrefixSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PrefixSet", key)
	}

	t.PrefixSet[key] = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet{
		Name: &Name,
	}

	return t.PrefixSet[key], nil
}

// RenamePrefixSet renames an entry in the list PrefixSet within
// the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) RenamePrefixSet(oldK, newK string) error {
	if _, ok := t.PrefixSet[newK]; ok {
		return fmt.Errorf("key %v already exists in PrefixSet", newK)
	}

	e, ok := t.PrefixSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PrefixSet", oldK)
	}
	e.Name = &newK

	t.PrefixSet[newK] = e
	delete(t.PrefixSet, oldK)
	return nil
}

// GetOrCreatePrefixSetMap returns the list (map) from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) GetOrCreatePrefixSetMap() map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet {
	if t.PrefixSet == nil {
		t.PrefixSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet)
	}
	return t.PrefixSet
}

// GetOrCreatePrefixSet retrieves the value with the specified keys from
// the receiver OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) GetOrCreatePrefixSet(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet {

	key := Name

	if v, ok := t.PrefixSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefixSet(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefixSet got unexpected error: %v", err))
	}
	return v
}

// GetPrefixSet retrieves the value with the specified key from
// the PrefixSet map field of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) GetPrefixSet(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.PrefixSet[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefixSet appends the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet struct to the
// list PrefixSet of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets. If the key value(s) specified in
// the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet already exist in the list, an error is
// returned.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) AppendPrefixSet(v *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PrefixSet == nil {
		t.PrefixSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet)
	}

	if _, ok := t.PrefixSet[key]; ok {
		return fmt.Errorf("duplicate key for list PrefixSet %v", key)
	}

	t.PrefixSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PrefixSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet struct {
	ΛMetadata []ygot.Annotation                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config   `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                          `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation                                                                `path:"@name" ygotAnnotation:"true"`
	Prefixes  *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes `path:"prefixes" module:"openconfig-routing-policy"`
	ΛPrefixes []ygot.Annotation                                                                `path:"@prefixes" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State    `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config{}
	return t.Config
}

// GetOrCreatePrefixes retrieves the value of the Prefixes field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) GetOrCreatePrefixes() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes {
	if t.Prefixes != nil {
		return t.Prefixes
	}
	t.Prefixes = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes{}
	return t.Prefixes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetPrefixes returns the value of the Prefixes struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet. If the receiver or the field Prefixes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) GetPrefixes() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes {
	if t != nil && t.Prefixes != nil {
		return t.Prefixes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Prefixes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet struct, which is a YANG list entry.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config struct {
	ΛMetadata []ygot.Annotation                                                                    `path:"@" ygotAnnotation:"true"`
	Mode      E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode `path:"mode" module:"openconfig-routing-policy"`
	ΛMode     []ygot.Annotation                                                                    `path:"@mode" ygotAnnotation:"true"`
	Name      *string                                                                              `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation                                                                    `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) IsYANGGoStruct() {
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) GetMode() E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set/prefixes YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Prefix    map[OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix `path:"prefix" module:"openconfig-routing-policy"`
	ΛPrefix   []ygot.Annotation                                                                                                                                                                      `path:"@prefix" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) IsYANGGoStruct() {
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key represents the key for list Prefix of element /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set/prefixes.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key struct {
	IpPrefix        string `path:"ip-prefix"`
	MasklengthRange string `path:"masklength-range"`
}

// IsYANGGoKeyStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key key struct.
func (t OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"ip-prefix":        t.IpPrefix,
		"masklength-range": t.MasklengthRange,
	}, nil
}

// NewPrefix creates a new entry in the Prefix list of the
// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) NewPrefix(IpPrefix string, MasklengthRange string) (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix)
	}

	key := OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key{
		IpPrefix:        IpPrefix,
		MasklengthRange: MasklengthRange,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Prefix[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Prefix", key)
	}

	t.Prefix[key] = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix{
		IpPrefix:        &IpPrefix,
		MasklengthRange: &MasklengthRange,
	}

	return t.Prefix[key], nil
}

// RenamePrefix renames an entry in the list Prefix within
// the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) RenamePrefix(oldK, newK OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key) error {
	if _, ok := t.Prefix[newK]; ok {
		return fmt.Errorf("key %v already exists in Prefix", newK)
	}

	e, ok := t.Prefix[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Prefix", oldK)
	}
	e.IpPrefix = &newK.IpPrefix
	e.MasklengthRange = &newK.MasklengthRange

	t.Prefix[newK] = e
	delete(t.Prefix, oldK)
	return nil
}

// GetOrCreatePrefixMap returns the list (map) from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) GetOrCreatePrefixMap() map[OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix {
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix)
	}
	return t.Prefix
}

// GetOrCreatePrefix retrieves the value with the specified keys from
// the receiver OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) GetOrCreatePrefix(IpPrefix string, MasklengthRange string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix {

	key := OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key{
		IpPrefix:        IpPrefix,
		MasklengthRange: MasklengthRange,
	}

	if v, ok := t.Prefix[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPrefix(IpPrefix, MasklengthRange)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePrefix got unexpected error: %v", err))
	}
	return v
}

// GetPrefix retrieves the value with the specified key from
// the Prefix map field of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) GetPrefix(IpPrefix string, MasklengthRange string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix {

	if t == nil {
		return nil
	}

	key := OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key{
		IpPrefix:        IpPrefix,
		MasklengthRange: MasklengthRange,
	}

	if lm, ok := t.Prefix[key]; ok {
		return lm
	}
	return nil
}

// AppendPrefix appends the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix struct to the
// list Prefix of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes. If the key value(s) specified in
// the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix already exist in the list, an error is
// returned.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) AppendPrefix(v *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) error {
	if v.IpPrefix == nil {
		return fmt.Errorf("invalid nil key for IpPrefix")
	}

	if v.MasklengthRange == nil {
		return fmt.Errorf("invalid nil key for MasklengthRange")
	}

	key := OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key{
		IpPrefix:        *v.IpPrefix,
		MasklengthRange: *v.MasklengthRange,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Prefix == nil {
		t.Prefix = make(map[OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Key]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix)
	}

	if _, ok := t.Prefix[key]; ok {
		return fmt.Errorf("duplicate key for list Prefix %v", key)
	}

	t.Prefix[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Prefix {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set/prefixes/prefix YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix struct {
	ΛMetadata        []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	Config           *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig          []ygot.Annotation                                                                              `path:"@config" ygotAnnotation:"true"`
	IpPrefix         *string                                                                                        `path:"ip-prefix" module:"openconfig-routing-policy"`
	ΛIpPrefix        []ygot.Annotation                                                                              `path:"@ip-prefix" ygotAnnotation:"true"`
	MasklengthRange  *string                                                                                        `path:"masklength-range" module:"openconfig-routing-policy"`
	ΛMasklengthRange []ygot.Annotation                                                                              `path:"@masklength-range" ygotAnnotation:"true"`
	State            *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState           []ygot.Annotation                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetMasklengthRange retrieves the value of the leaf MasklengthRange from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MasklengthRange is set, it can
// safely use t.GetMasklengthRange() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MasklengthRange == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) GetMasklengthRange() string {
	if t == nil || t.MasklengthRange == nil {
		return ""
	}
	return *t.MasklengthRange
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix struct, which is a YANG list entry.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) ΛListKeyMap() (map[string]interface{}, error) {
	if t.IpPrefix == nil {
		return nil, fmt.Errorf("nil value for key IpPrefix")
	}

	if t.MasklengthRange == nil {
		return nil, fmt.Errorf("nil value for key MasklengthRange")
	}

	return map[string]interface{}{
		"ip-prefix":        *t.IpPrefix,
		"masklength-range": *t.MasklengthRange,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set/prefixes/prefix/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	IpPrefix         *string           `path:"ip-prefix" module:"openconfig-routing-policy"`
	ΛIpPrefix        []ygot.Annotation `path:"@ip-prefix" ygotAnnotation:"true"`
	MasklengthRange  *string           `path:"masklength-range" module:"openconfig-routing-policy"`
	ΛMasklengthRange []ygot.Annotation `path:"@masklength-range" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) IsYANGGoStruct() {
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetMasklengthRange retrieves the value of the leaf MasklengthRange from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MasklengthRange is set, it can
// safely use t.GetMasklengthRange() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MasklengthRange == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) GetMasklengthRange() string {
	if t == nil || t.MasklengthRange == nil {
		return ""
	}
	return *t.MasklengthRange
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set/prefixes/prefix/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	IpPrefix         *string           `path:"ip-prefix" module:"openconfig-routing-policy"`
	ΛIpPrefix        []ygot.Annotation `path:"@ip-prefix" ygotAnnotation:"true"`
	MasklengthRange  *string           `path:"masklength-range" module:"openconfig-routing-policy"`
	ΛMasklengthRange []ygot.Annotation `path:"@masklength-range" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) IsYANGGoStruct() {
}

// GetIpPrefix retrieves the value of the leaf IpPrefix from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IpPrefix is set, it can
// safely use t.GetIpPrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IpPrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) GetIpPrefix() string {
	if t == nil || t.IpPrefix == nil {
		return ""
	}
	return *t.IpPrefix
}

// GetMasklengthRange retrieves the value of the leaf MasklengthRange from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MasklengthRange is set, it can
// safely use t.GetMasklengthRange() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MasklengthRange == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) GetMasklengthRange() string {
	if t == nil || t.MasklengthRange == nil {
		return ""
	}
	return *t.MasklengthRange
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Prefixes_Prefix_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State represents the /openconfig-routing-policy/routing-policy/defined-sets/prefix-sets/prefix-set/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State struct {
	ΛMetadata []ygot.Annotation                                                                    `path:"@" ygotAnnotation:"true"`
	Mode      E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode `path:"mode" module:"openconfig-routing-policy"`
	ΛMode     []ygot.Annotation                                                                    `path:"@mode" ygotAnnotation:"true"`
	Name      *string                                                                              `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation                                                                    `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) IsYANGGoStruct() {
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) GetMode() E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets represents the /openconfig-routing-policy/routing-policy/defined-sets/tag-sets YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets struct {
	ΛMetadata []ygot.Annotation                                                            `path:"@" ygotAnnotation:"true"`
	TagSet    map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet `path:"tag-set" module:"openconfig-routing-policy"`
	ΛTagSet   []ygot.Annotation                                                            `path:"@tag-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) IsYANGGoStruct() {}

// NewTagSet creates a new entry in the TagSet list of the
// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) NewTagSet(Name string) (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TagSet == nil {
		t.TagSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TagSet[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TagSet", key)
	}

	t.TagSet[key] = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet{
		Name: &Name,
	}

	return t.TagSet[key], nil
}

// RenameTagSet renames an entry in the list TagSet within
// the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) RenameTagSet(oldK, newK string) error {
	if _, ok := t.TagSet[newK]; ok {
		return fmt.Errorf("key %v already exists in TagSet", newK)
	}

	e, ok := t.TagSet[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in TagSet", oldK)
	}
	e.Name = &newK

	t.TagSet[newK] = e
	delete(t.TagSet, oldK)
	return nil
}

// GetOrCreateTagSetMap returns the list (map) from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets.
//
// It initializes the field if not already initialized.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) GetOrCreateTagSetMap() map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet {
	if t.TagSet == nil {
		t.TagSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet)
	}
	return t.TagSet
}

// GetOrCreateTagSet retrieves the value with the specified keys from
// the receiver OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) GetOrCreateTagSet(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet {

	key := Name

	if v, ok := t.TagSet[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTagSet(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTagSet got unexpected error: %v", err))
	}
	return v
}

// GetTagSet retrieves the value with the specified key from
// the TagSet map field of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) GetTagSet(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.TagSet[key]; ok {
		return lm
	}
	return nil
}

// AppendTagSet appends the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet struct to the
// list TagSet of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets. If the key value(s) specified in
// the supplied OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet already exist in the list, an error is
// returned.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) AppendTagSet(v *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TagSet == nil {
		t.TagSet = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet)
	}

	if _, ok := t.TagSet[key]; ok {
		return fmt.Errorf("duplicate key for list TagSet %v", key)
	}

	t.TagSet[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.TagSet {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet represents the /openconfig-routing-policy/routing-policy/defined-sets/tag-sets/tag-set YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet struct {
	ΛMetadata []ygot.Annotation                                                        `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                        `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                                  `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation                                                        `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet struct, which is a YANG list entry.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config represents the /openconfig-routing-policy/routing-policy/defined-sets/tag-sets/tag-set/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config struct {
	ΛMetadata []ygot.Annotation                                                                        `path:"@" ygotAnnotation:"true"`
	Name      *string                                                                                  `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation                                                                        `path:"@name" ygotAnnotation:"true"`
	TagValue  []OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union `path:"tag-value" module:"openconfig-routing-policy"`
	ΛTagValue []ygot.Annotation                                                                        `path:"@tag-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetTagValue retrieves the value of the leaf TagValue from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TagValue is set, it can
// safely use t.GetTagValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TagValue == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) GetTagValue() []OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union {
	if t == nil || t.TagValue == nil {
		return nil
	}
	return t.TagValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-routing-policy/routing-policy/defined-sets/tag-sets/tag-set/config/tag-value within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union()
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union ensures that UnionString
// implements the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union interface.
func (UnionString) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union() {
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union ensures that UnionUint32
// implements the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union interface.
func (UnionUint32) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union() {
}

// To_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config) To_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union(i interface{}) (OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union, error) {
	if v, ok := i.(OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_Config_TagValue_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State represents the /openconfig-routing-policy/routing-policy/defined-sets/tag-sets/tag-set/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State struct {
	ΛMetadata []ygot.Annotation                                                                       `path:"@" ygotAnnotation:"true"`
	Name      *string                                                                                 `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation                                                                       `path:"@name" ygotAnnotation:"true"`
	TagValue  []OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union `path:"tag-value" module:"openconfig-routing-policy"`
	ΛTagValue []ygot.Annotation                                                                       `path:"@tag-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetTagValue retrieves the value of the leaf TagValue from the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TagValue is set, it can
// safely use t.GetTagValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TagValue == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) GetTagValue() []OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union {
	if t == nil || t.TagValue == nil {
		return nil
	}
	return t.TagValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-routing-policy/routing-policy/defined-sets/tag-sets/tag-set/state/tag-value within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union()
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union ensures that UnionString
// implements the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union interface.
func (UnionString) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union() {
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union ensures that UnionUint32
// implements the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union interface.
func (UnionUint32) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union() {
}

// To_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State) To_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union(i interface{}) (OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union, error) {
	if v, ok := i.(OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_TagSets_TagSet_State_TagValue_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions represents the /openconfig-routing-policy/routing-policy/policy-definitions YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions struct {
	ΛMetadata         []ygot.Annotation                                                                    `path:"@" ygotAnnotation:"true"`
	PolicyDefinition  map[string]*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition `path:"policy-definition" module:"openconfig-routing-policy"`
	ΛPolicyDefinition []ygot.Annotation                                                                    `path:"@policy-definition" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) IsYANGGoStruct() {}

// NewPolicyDefinition creates a new entry in the PolicyDefinition list of the
// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) NewPolicyDefinition(Name string) (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PolicyDefinition == nil {
		t.PolicyDefinition = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PolicyDefinition[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PolicyDefinition", key)
	}

	t.PolicyDefinition[key] = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition{
		Name: &Name,
	}

	return t.PolicyDefinition[key], nil
}

// RenamePolicyDefinition renames an entry in the list PolicyDefinition within
// the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) RenamePolicyDefinition(oldK, newK string) error {
	if _, ok := t.PolicyDefinition[newK]; ok {
		return fmt.Errorf("key %v already exists in PolicyDefinition", newK)
	}

	e, ok := t.PolicyDefinition[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in PolicyDefinition", oldK)
	}
	e.Name = &newK

	t.PolicyDefinition[newK] = e
	delete(t.PolicyDefinition, oldK)
	return nil
}

// GetOrCreatePolicyDefinitionMap returns the list (map) from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions.
//
// It initializes the field if not already initialized.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) GetOrCreatePolicyDefinitionMap() map[string]*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition {
	if t.PolicyDefinition == nil {
		t.PolicyDefinition = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition)
	}
	return t.PolicyDefinition
}

// GetOrCreatePolicyDefinition retrieves the value with the specified keys from
// the receiver OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) GetOrCreatePolicyDefinition(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition {

	key := Name

	if v, ok := t.PolicyDefinition[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewPolicyDefinition(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreatePolicyDefinition got unexpected error: %v", err))
	}
	return v
}

// GetPolicyDefinition retrieves the value with the specified key from
// the PolicyDefinition map field of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) GetPolicyDefinition(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.PolicyDefinition[key]; ok {
		return lm
	}
	return nil
}

// AppendPolicyDefinition appends the supplied OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition struct to the
// list PolicyDefinition of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions. If the key value(s) specified in
// the supplied OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition already exist in the list, an error is
// returned.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) AppendPolicyDefinition(v *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PolicyDefinition == nil {
		t.PolicyDefinition = make(map[string]*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition)
	}

	if _, ok := t.PolicyDefinition[key]; ok {
		return fmt.Errorf("duplicate key for list PolicyDefinition %v", key)
	}

	t.PolicyDefinition[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.PolicyDefinition {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition struct {
	ΛMetadata   []ygot.Annotation                                                                    `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config     `path:"config" module:"openconfig-routing-policy"`
	ΛConfig     []ygot.Annotation                                                                    `path:"@config" ygotAnnotation:"true"`
	Name        *string                                                                              `path:"name" module:"openconfig-routing-policy"`
	ΛName       []ygot.Annotation                                                                    `path:"@name" ygotAnnotation:"true"`
	State       *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State      `path:"state" module:"openconfig-routing-policy"`
	ΛState      []ygot.Annotation                                                                    `path:"@state" ygotAnnotation:"true"`
	Statements  *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements `path:"statements" module:"openconfig-routing-policy"`
	ΛStatements []ygot.Annotation                                                                    `path:"@statements" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State{}
	return t.State
}

// GetOrCreateStatements retrieves the value of the Statements field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) GetOrCreateStatements() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements {
	if t.Statements != nil {
		return t.Statements
	}
	t.Statements = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements{}
	return t.Statements
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetStatements returns the value of the Statements struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition. If the receiver or the field Statements is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) GetStatements() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements {
	if t != nil && t.Statements != nil {
		return t.Statements
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Statements.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition struct, which is a YANG list entry.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements struct {
	ΛMetadata  []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	Statement  *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap `path:"statement" module:"openconfig-routing-policy"`
	ΛStatement []ygot.Annotation                                                                                         `path:"@statement" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) IsYANGGoStruct() {
}

// GetOrCreateStatementMap returns the ordered map field
// Statement from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements.
//
// It initializes the field if not already initialized.
func (s *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) GetOrCreateStatementMap() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap {
	if s.Statement == nil {
		s.Statement = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap{}
	}
	return s.Statement
}

// AppendNewStatement creates a new entry in the Statement
// ordered map of the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements struct. The keys of the list are
// populated from the input arguments.
func (s *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) AppendNewStatement(Name string) (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement, error) {
	if s.Statement == nil {
		s.Statement = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap{}
	}
	return s.Statement.AppendNew(Name)
}

// AppendStatement appends the supplied OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement struct
// to the list Statement of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements. If the key value(s)
// specified in the supplied OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement already exist in the list, an
// error is returned.
func (s *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) AppendStatement(v *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) error {
	if s.Statement == nil {
		s.Statement = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap{}
	}
	return s.Statement.Append(v)
}

// GetStatement retrieves the value with the specified key from the
// Statement map field of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements. If the receiver
// is nil, or the specified key is not present in the list, nil is returned
// such that Get* methods may be safely chained.
func (s *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) GetStatement(Name string) *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement {
	if s == nil {
		return nil
	}
	key := Name
	return s.Statement.Get(key)
}

// DeleteStatement deletes the value with the specified keys from
// the receiver OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements. If there is no such element, the
// function is a no-op.
func (s *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) DeleteStatement(Name string) bool {
	key := Name
	return s.Statement.Delete(key)
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap is an ordered map that represents the "ordered-by user"
// list elements at /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap struct {
	keys     []string
	valueMap map[string]*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement
}

// IsYANGOrderedList ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap implements the
// ygot.GoOrderedMap interface.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) IsYANGOrderedList() {
}

// init initializes any uninitialized values.
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) init() {
	if o == nil {
		return
	}
	if o.valueMap == nil {
		o.valueMap = map[string]*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement{}
	}
}

// Keys returns a copy of the list's keys.
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) Keys() []string {
	if o == nil {
		return nil
	}
	return append([]string{}, o.keys...)
}

// Values returns the current set of the list's values in order.
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) Values() []*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement {
	if o == nil {
		return nil
	}
	var values []*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement
	for _, key := range o.keys {
		values = append(values, o.valueMap[key])
	}
	return values
}

// Len returns a size of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) Len() int {
	if o == nil {
		return 0
	}
	return len(o.keys)
}

// Get returns the value corresponding to the key. If the key is not found, nil
// is returned.
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) Get(key string) *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement {
	if o == nil {
		return nil
	}
	val, _ := o.valueMap[key]
	return val
}

// Delete deletes an element.
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) Delete(key string) bool {
	if o == nil {
		return false
	}
	if _, ok := o.valueMap[key]; !ok {
		return false
	}
	for i, k := range o.keys {
		if k == key {
			o.keys = append(o.keys[:i], o.keys[i+1:]...)
			delete(o.valueMap, key)
			return true
		}
	}
	return false
}

// Append appends a OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement, returning an error if the key
// already exists in the ordered list or if the key is unspecified.
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) Append(v *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) error {
	if o == nil {
		return fmt.Errorf("nil ordered map, cannot append OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement")
	}
	if v == nil {
		return fmt.Errorf("nil OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement")
	}
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	if _, ok := o.valueMap[key]; ok {
		return fmt.Errorf("duplicate key for list Statement %v", key)
	}
	o.keys = append(o.keys, key)
	o.init()
	o.valueMap[key] = v
	return nil
}

// AppendNew creates and appends a new OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement, returning the
// newly-initialized v. It returns an error if the v already exists.
func (o *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_OrderedMap) AppendNew(Name string) (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement, error) {
	if o == nil {
		return nil, fmt.Errorf("nil ordered map, cannot append OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement")
	}
	key := Name

	if _, ok := o.valueMap[key]; ok {
		return nil, fmt.Errorf("duplicate key for list Statement %v", key)
	}
	o.keys = append(o.keys, key)
	newElement := &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement{
		Name: &Name,
	}
	o.init()
	o.valueMap[key] = newElement
	return newElement, nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Statement.Values() {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement struct {
	ΛMetadata   []ygot.Annotation                                                                                         `path:"@" ygotAnnotation:"true"`
	Actions     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions    `path:"actions" module:"openconfig-routing-policy"`
	ΛActions    []ygot.Annotation                                                                                         `path:"@actions" ygotAnnotation:"true"`
	Conditions  *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions `path:"conditions" module:"openconfig-routing-policy"`
	ΛConditions []ygot.Annotation                                                                                         `path:"@conditions" ygotAnnotation:"true"`
	Config      *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config     `path:"config" module:"openconfig-routing-policy"`
	ΛConfig     []ygot.Annotation                                                                                         `path:"@config" ygotAnnotation:"true"`
	Name        *string                                                                                                   `path:"name" module:"openconfig-routing-policy"`
	ΛName       []ygot.Annotation                                                                                         `path:"@name" ygotAnnotation:"true"`
	State       *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State      `path:"state" module:"openconfig-routing-policy"`
	ΛState      []ygot.Annotation                                                                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) IsYANGGoStruct() {
}

// GetOrCreateActions retrieves the value of the Actions field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetOrCreateActions() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions {
	if t.Actions != nil {
		return t.Actions
	}
	t.Actions = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions{}
	return t.Actions
}

// GetOrCreateConditions retrieves the value of the Conditions field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetOrCreateConditions() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions {
	if t.Conditions != nil {
		return t.Conditions
	}
	t.Conditions = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions{}
	return t.Conditions
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State{}
	return t.State
}

// GetActions returns the value of the Actions struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement. If the receiver or the field Actions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetActions() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions {
	if t != nil && t.Actions != nil {
		return t.Actions
	}
	return nil
}

// GetConditions returns the value of the Conditions struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement. If the receiver or the field Conditions is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetConditions() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions {
	if t != nil && t.Conditions != nil {
		return t.Conditions
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Actions.PopulateDefaults()
	t.Conditions.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement struct, which is a YANG list entry.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions struct {
	ΛMetadata []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                                             `path:"@config" ygotAnnotation:"true"`
	SetTag    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag `path:"set-tag" module:"openconfig-routing-policy"`
	ΛSetTag   []ygot.Annotation                                                                                             `path:"@set-tag" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config{}
	return t.Config
}

// GetOrCreateSetTag retrieves the value of the SetTag field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) GetOrCreateSetTag() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag {
	if t.SetTag != nil {
		return t.SetTag
	}
	t.SetTag = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag{}
	return t.SetTag
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetSetTag returns the value of the SetTag struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions. If the receiver or the field SetTag is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) GetSetTag() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag {
	if t != nil && t.SetTag != nil {
		return t.SetTag
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.SetTag.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config struct {
	ΛMetadata     []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	PolicyResult  E_OpenconfigRoutingPolicy_PolicyResultType `path:"policy-result" module:"openconfig-routing-policy"`
	ΛPolicyResult []ygot.Annotation                          `path:"@policy-result" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config) IsYANGGoStruct() {
}

// GetPolicyResult retrieves the value of the leaf PolicyResult from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PolicyResult is set, it can
// safely use t.GetPolicyResult() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PolicyResult == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config) GetPolicyResult() E_OpenconfigRoutingPolicy_PolicyResultType {
	if t == nil || t.PolicyResult == 0 {
		return OpenconfigRoutingPolicy_PolicyResultType_NEXT_STATEMENT
	}
	return t.PolicyResult
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PolicyResult == 0 {
		t.PolicyResult = OpenconfigRoutingPolicy_PolicyResultType_NEXT_STATEMENT
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag struct {
	ΛMetadata  []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config    `path:"config" module:"openconfig-routing-policy"`
	ΛConfig    []ygot.Annotation                                                                                                       `path:"@config" ygotAnnotation:"true"`
	Inline     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline    `path:"inline" module:"openconfig-routing-policy"`
	ΛInline    []ygot.Annotation                                                                                                       `path:"@inline" ygotAnnotation:"true"`
	Reference  *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference `path:"reference" module:"openconfig-routing-policy"`
	ΛReference []ygot.Annotation                                                                                                       `path:"@reference" ygotAnnotation:"true"`
	State      *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State     `path:"state" module:"openconfig-routing-policy"`
	ΛState     []ygot.Annotation                                                                                                       `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config{}
	return t.Config
}

// GetOrCreateInline retrieves the value of the Inline field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetOrCreateInline() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline {
	if t.Inline != nil {
		return t.Inline
	}
	t.Inline = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline{}
	return t.Inline
}

// GetOrCreateReference retrieves the value of the Reference field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetOrCreateReference() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference {
	if t.Reference != nil {
		return t.Reference
	}
	t.Reference = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference{}
	return t.Reference
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetInline returns the value of the Inline struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag. If the receiver or the field Inline is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetInline() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline {
	if t != nil && t.Inline != nil {
		return t.Inline
	}
	return nil
}

// GetReference returns the value of the Reference struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag. If the receiver or the field Reference is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetReference() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference {
	if t != nil && t.Reference != nil {
		return t.Reference
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Inline.PopulateDefaults()
	t.Reference.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Mode      E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode `path:"mode" module:"openconfig-routing-policy"`
	ΛMode     []ygot.Annotation                                                                                                          `path:"@mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config) IsYANGGoStruct() {
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config) GetMode() E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/inline YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline struct {
	ΛMetadata []ygot.Annotation                                                                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/inline/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config struct {
	ΛMetadata []ygot.Annotation                                                                                                                      `path:"@" ygotAnnotation:"true"`
	Tag       []OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union `path:"tag" module:"openconfig-routing-policy"`
	ΛTag      []ygot.Annotation                                                                                                                      `path:"@tag" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) IsYANGGoStruct() {
}

// GetTag retrieves the value of the leaf Tag from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag is set, it can
// safely use t.GetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) GetTag() []OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union {
	if t == nil || t.Tag == nil {
		return nil
	}
	return t.Tag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/inline/config/tag within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union()
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union ensures that UnionString
// implements the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union interface.
func (UnionString) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union() {
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union ensures that UnionUint32
// implements the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union interface.
func (UnionUint32) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union() {
}

// To_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config) To_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union(i interface{}) (OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union, error) {
	if v, ok := i.(OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_Config_Tag_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/inline/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State struct {
	ΛMetadata []ygot.Annotation                                                                                                                     `path:"@" ygotAnnotation:"true"`
	Tag       []OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union `path:"tag" module:"openconfig-routing-policy"`
	ΛTag      []ygot.Annotation                                                                                                                     `path:"@tag" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) IsYANGGoStruct() {
}

// GetTag retrieves the value of the leaf Tag from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Tag is set, it can
// safely use t.GetTag() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Tag == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) GetTag() []OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union {
	if t == nil || t.Tag == nil {
		return nil
	}
	return t.Tag
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/inline/state/tag within the YANG schema.
// Union type can be one of [UnionString, UnionUint32].
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union interface {
	// Union type can be one of [UnionString, UnionUint32]
	Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union()
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union ensures that UnionString
// implements the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union interface.
func (UnionString) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union() {
}

// Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union ensures that UnionUint32
// implements the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union interface.
func (UnionUint32) Documentation_for_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union() {
}

// To_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State) To_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union(i interface{}) (OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union, error) {
	if v, ok := i.(OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Inline_State_Tag_Union, unknown union type, got: %T, want any of [string, uint32]", i, i)
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/reference YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference struct {
	ΛMetadata []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                                                              `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/reference/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TagSet    *string           `path:"tag-set" module:"openconfig-routing-policy"`
	ΛTagSet   []ygot.Annotation `path:"@tag-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config) IsYANGGoStruct() {
}

// GetTagSet retrieves the value of the leaf TagSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TagSet is set, it can
// safely use t.GetTagSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TagSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config) GetTagSet() string {
	if t == nil || t.TagSet == nil {
		return ""
	}
	return *t.TagSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/reference/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TagSet    *string           `path:"tag-set" module:"openconfig-routing-policy"`
	ΛTagSet   []ygot.Annotation `path:"@tag-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State) IsYANGGoStruct() {
}

// GetTagSet retrieves the value of the leaf TagSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TagSet is set, it can
// safely use t.GetTagSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TagSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State) GetTagSet() string {
	if t == nil || t.TagSet == nil {
		return ""
	}
	return *t.TagSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Reference_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State struct {
	ΛMetadata []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Mode      E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode `path:"mode" module:"openconfig-routing-policy"`
	ΛMode     []ygot.Annotation                                                                                                          `path:"@mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State) IsYANGGoStruct() {
}

// GetMode retrieves the value of the leaf Mode from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mode is set, it can
// safely use t.GetMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mode == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State) GetMode() E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode {
	if t == nil || t.Mode == 0 {
		return 0
	}
	return t.Mode
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/actions/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State struct {
	ΛMetadata     []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	PolicyResult  E_OpenconfigRoutingPolicy_PolicyResultType `path:"policy-result" module:"openconfig-routing-policy"`
	ΛPolicyResult []ygot.Annotation                          `path:"@policy-result" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State) IsYANGGoStruct() {
}

// GetPolicyResult retrieves the value of the leaf PolicyResult from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PolicyResult is set, it can
// safely use t.GetPolicyResult() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PolicyResult == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State) GetPolicyResult() E_OpenconfigRoutingPolicy_PolicyResultType {
	if t == nil || t.PolicyResult == 0 {
		return OpenconfigRoutingPolicy_PolicyResultType_NEXT_STATEMENT
	}
	return t.PolicyResult
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.PolicyResult == 0 {
		t.PolicyResult = OpenconfigRoutingPolicy_PolicyResultType_NEXT_STATEMENT
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions struct {
	ΛMetadata         []ygot.Annotation                                                                                                          `path:"@" ygotAnnotation:"true"`
	Config            *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config           `path:"config" module:"openconfig-routing-policy"`
	ΛConfig           []ygot.Annotation                                                                                                          `path:"@config" ygotAnnotation:"true"`
	MatchInterface    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface   `path:"match-interface" module:"openconfig-routing-policy"`
	ΛMatchInterface   []ygot.Annotation                                                                                                          `path:"@match-interface" ygotAnnotation:"true"`
	MatchNeighborSet  *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet `path:"match-neighbor-set" module:"openconfig-routing-policy"`
	ΛMatchNeighborSet []ygot.Annotation                                                                                                          `path:"@match-neighbor-set" ygotAnnotation:"true"`
	MatchPrefixSet    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet   `path:"match-prefix-set" module:"openconfig-routing-policy"`
	ΛMatchPrefixSet   []ygot.Annotation                                                                                                          `path:"@match-prefix-set" ygotAnnotation:"true"`
	MatchTagSet       *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet      `path:"match-tag-set" module:"openconfig-routing-policy"`
	ΛMatchTagSet      []ygot.Annotation                                                                                                          `path:"@match-tag-set" ygotAnnotation:"true"`
	State             *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State            `path:"state" module:"openconfig-routing-policy"`
	ΛState            []ygot.Annotation                                                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config{}
	return t.Config
}

// GetOrCreateMatchInterface retrieves the value of the MatchInterface field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetOrCreateMatchInterface() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface {
	if t.MatchInterface != nil {
		return t.MatchInterface
	}
	t.MatchInterface = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface{}
	return t.MatchInterface
}

// GetOrCreateMatchNeighborSet retrieves the value of the MatchNeighborSet field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetOrCreateMatchNeighborSet() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet {
	if t.MatchNeighborSet != nil {
		return t.MatchNeighborSet
	}
	t.MatchNeighborSet = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet{}
	return t.MatchNeighborSet
}

// GetOrCreateMatchPrefixSet retrieves the value of the MatchPrefixSet field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetOrCreateMatchPrefixSet() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet {
	if t.MatchPrefixSet != nil {
		return t.MatchPrefixSet
	}
	t.MatchPrefixSet = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet{}
	return t.MatchPrefixSet
}

// GetOrCreateMatchTagSet retrieves the value of the MatchTagSet field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetOrCreateMatchTagSet() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet {
	if t.MatchTagSet != nil {
		return t.MatchTagSet
	}
	t.MatchTagSet = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet{}
	return t.MatchTagSet
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetMatchInterface returns the value of the MatchInterface struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions. If the receiver or the field MatchInterface is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetMatchInterface() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface {
	if t != nil && t.MatchInterface != nil {
		return t.MatchInterface
	}
	return nil
}

// GetMatchNeighborSet returns the value of the MatchNeighborSet struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions. If the receiver or the field MatchNeighborSet is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetMatchNeighborSet() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet {
	if t != nil && t.MatchNeighborSet != nil {
		return t.MatchNeighborSet
	}
	return nil
}

// GetMatchPrefixSet returns the value of the MatchPrefixSet struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions. If the receiver or the field MatchPrefixSet is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetMatchPrefixSet() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet {
	if t != nil && t.MatchPrefixSet != nil {
		return t.MatchPrefixSet
	}
	return nil
}

// GetMatchTagSet returns the value of the MatchTagSet struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions. If the receiver or the field MatchTagSet is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetMatchTagSet() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet {
	if t != nil && t.MatchTagSet != nil {
		return t.MatchTagSet
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.MatchInterface.PopulateDefaults()
	t.MatchNeighborSet.PopulateDefaults()
	t.MatchPrefixSet.PopulateDefaults()
	t.MatchTagSet.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config struct {
	ΛMetadata          []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	CallPolicy         *string                                       `path:"call-policy" module:"openconfig-routing-policy"`
	ΛCallPolicy        []ygot.Annotation                             `path:"@call-policy" ygotAnnotation:"true"`
	InstallProtocolEq  E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"install-protocol-eq" module:"openconfig-routing-policy"`
	ΛInstallProtocolEq []ygot.Annotation                             `path:"@install-protocol-eq" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) IsYANGGoStruct() {
}

// GetCallPolicy retrieves the value of the leaf CallPolicy from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CallPolicy is set, it can
// safely use t.GetCallPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CallPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) GetCallPolicy() string {
	if t == nil || t.CallPolicy == nil {
		return ""
	}
	return *t.CallPolicy
}

// GetInstallProtocolEq retrieves the value of the leaf InstallProtocolEq from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstallProtocolEq is set, it can
// safely use t.GetInstallProtocolEq() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstallProtocolEq == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) GetInstallProtocolEq() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.InstallProtocolEq == 0 {
		return 0
	}
	return t.InstallProtocolEq
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-interface YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-interface/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-routing-policy"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-routing-policy"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-interface/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface     *string           `path:"interface" module:"openconfig-routing-policy"`
	ΛInterface    []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	Subinterface  *uint32           `path:"subinterface" module:"openconfig-routing-policy"`
	ΛSubinterface []ygot.Annotation `path:"@subinterface" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetSubinterface retrieves the value of the leaf Subinterface from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Subinterface is set, it can
// safely use t.GetSubinterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Subinterface == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) GetSubinterface() uint32 {
	if t == nil || t.Subinterface == nil {
		return 0
	}
	return *t.Subinterface
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchInterface_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-neighbor-set YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet struct {
	ΛMetadata []ygot.Annotation                                                                                                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                                                                 `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                                                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-neighbor-set/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config struct {
	ΛMetadata        []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	MatchSetOptions  E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType `path:"match-set-options" module:"openconfig-routing-policy"`
	ΛMatchSetOptions []ygot.Annotation                                     `path:"@match-set-options" ygotAnnotation:"true"`
	NeighborSet      *string                                               `path:"neighbor-set" module:"openconfig-routing-policy"`
	ΛNeighborSet     []ygot.Annotation                                     `path:"@neighbor-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) IsYANGGoStruct() {
}

// GetMatchSetOptions retrieves the value of the leaf MatchSetOptions from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchSetOptions is set, it can
// safely use t.GetMatchSetOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchSetOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) GetMatchSetOptions() E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType {
	if t == nil || t.MatchSetOptions == 0 {
		return OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
	return t.MatchSetOptions
}

// GetNeighborSet retrieves the value of the leaf NeighborSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborSet is set, it can
// safely use t.GetNeighborSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) GetNeighborSet() string {
	if t == nil || t.NeighborSet == nil {
		return ""
	}
	return *t.NeighborSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MatchSetOptions == 0 {
		t.MatchSetOptions = OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-neighbor-set/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State struct {
	ΛMetadata        []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	MatchSetOptions  E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType `path:"match-set-options" module:"openconfig-routing-policy"`
	ΛMatchSetOptions []ygot.Annotation                                     `path:"@match-set-options" ygotAnnotation:"true"`
	NeighborSet      *string                                               `path:"neighbor-set" module:"openconfig-routing-policy"`
	ΛNeighborSet     []ygot.Annotation                                     `path:"@neighbor-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) IsYANGGoStruct() {
}

// GetMatchSetOptions retrieves the value of the leaf MatchSetOptions from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchSetOptions is set, it can
// safely use t.GetMatchSetOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchSetOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) GetMatchSetOptions() E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType {
	if t == nil || t.MatchSetOptions == 0 {
		return OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
	return t.MatchSetOptions
}

// GetNeighborSet retrieves the value of the leaf NeighborSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NeighborSet is set, it can
// safely use t.GetNeighborSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NeighborSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) GetNeighborSet() string {
	if t == nil || t.NeighborSet == nil {
		return ""
	}
	return *t.NeighborSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MatchSetOptions == 0 {
		t.MatchSetOptions = OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchNeighborSet_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet struct {
	ΛMetadata []ygot.Annotation                                                                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config struct {
	ΛMetadata        []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	MatchSetOptions  E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType `path:"match-set-options" module:"openconfig-routing-policy"`
	ΛMatchSetOptions []ygot.Annotation                                     `path:"@match-set-options" ygotAnnotation:"true"`
	PrefixSet        *string                                               `path:"prefix-set" module:"openconfig-routing-policy"`
	ΛPrefixSet       []ygot.Annotation                                     `path:"@prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) IsYANGGoStruct() {
}

// GetMatchSetOptions retrieves the value of the leaf MatchSetOptions from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchSetOptions is set, it can
// safely use t.GetMatchSetOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchSetOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) GetMatchSetOptions() E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType {
	if t == nil || t.MatchSetOptions == 0 {
		return OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
	return t.MatchSetOptions
}

// GetPrefixSet retrieves the value of the leaf PrefixSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixSet is set, it can
// safely use t.GetPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) GetPrefixSet() string {
	if t == nil || t.PrefixSet == nil {
		return ""
	}
	return *t.PrefixSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MatchSetOptions == 0 {
		t.MatchSetOptions = OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State struct {
	ΛMetadata        []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	MatchSetOptions  E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType `path:"match-set-options" module:"openconfig-routing-policy"`
	ΛMatchSetOptions []ygot.Annotation                                     `path:"@match-set-options" ygotAnnotation:"true"`
	PrefixSet        *string                                               `path:"prefix-set" module:"openconfig-routing-policy"`
	ΛPrefixSet       []ygot.Annotation                                     `path:"@prefix-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) IsYANGGoStruct() {
}

// GetMatchSetOptions retrieves the value of the leaf MatchSetOptions from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchSetOptions is set, it can
// safely use t.GetMatchSetOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchSetOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) GetMatchSetOptions() E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType {
	if t == nil || t.MatchSetOptions == 0 {
		return OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
	return t.MatchSetOptions
}

// GetPrefixSet retrieves the value of the leaf PrefixSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PrefixSet is set, it can
// safely use t.GetPrefixSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PrefixSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) GetPrefixSet() string {
	if t == nil || t.PrefixSet == nil {
		return ""
	}
	return *t.PrefixSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MatchSetOptions == 0 {
		t.MatchSetOptions = OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchPrefixSet_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-tag-set YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet struct {
	ΛMetadata []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config `path:"config" module:"openconfig-routing-policy"`
	ΛConfig   []ygot.Annotation                                                                                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State  `path:"state" module:"openconfig-routing-policy"`
	ΛState    []ygot.Annotation                                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) GetOrCreateConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) GetOrCreateState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) GetConfig() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) GetState() *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-tag-set/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config struct {
	ΛMetadata        []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	MatchSetOptions  E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType `path:"match-set-options" module:"openconfig-routing-policy"`
	ΛMatchSetOptions []ygot.Annotation                                     `path:"@match-set-options" ygotAnnotation:"true"`
	TagSet           *string                                               `path:"tag-set" module:"openconfig-routing-policy"`
	ΛTagSet          []ygot.Annotation                                     `path:"@tag-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) IsYANGGoStruct() {
}

// GetMatchSetOptions retrieves the value of the leaf MatchSetOptions from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchSetOptions is set, it can
// safely use t.GetMatchSetOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchSetOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) GetMatchSetOptions() E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType {
	if t == nil || t.MatchSetOptions == 0 {
		return OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
	return t.MatchSetOptions
}

// GetTagSet retrieves the value of the leaf TagSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TagSet is set, it can
// safely use t.GetTagSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TagSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) GetTagSet() string {
	if t == nil || t.TagSet == nil {
		return ""
	}
	return *t.TagSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MatchSetOptions == 0 {
		t.MatchSetOptions = OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-tag-set/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State struct {
	ΛMetadata        []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	MatchSetOptions  E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType `path:"match-set-options" module:"openconfig-routing-policy"`
	ΛMatchSetOptions []ygot.Annotation                                     `path:"@match-set-options" ygotAnnotation:"true"`
	TagSet           *string                                               `path:"tag-set" module:"openconfig-routing-policy"`
	ΛTagSet          []ygot.Annotation                                     `path:"@tag-set" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) IsYANGGoStruct() {
}

// GetMatchSetOptions retrieves the value of the leaf MatchSetOptions from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MatchSetOptions is set, it can
// safely use t.GetMatchSetOptions() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MatchSetOptions == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) GetMatchSetOptions() E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType {
	if t == nil || t.MatchSetOptions == 0 {
		return OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
	return t.MatchSetOptions
}

// GetTagSet retrieves the value of the leaf TagSet from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TagSet is set, it can
// safely use t.GetTagSet() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TagSet == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) GetTagSet() string {
	if t == nil || t.TagSet == nil {
		return ""
	}
	return *t.TagSet
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MatchSetOptions == 0 {
		t.MatchSetOptions = OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_MatchTagSet_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State struct {
	ΛMetadata          []ygot.Annotation                             `path:"@" ygotAnnotation:"true"`
	CallPolicy         *string                                       `path:"call-policy" module:"openconfig-routing-policy"`
	ΛCallPolicy        []ygot.Annotation                             `path:"@call-policy" ygotAnnotation:"true"`
	InstallProtocolEq  E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE `path:"install-protocol-eq" module:"openconfig-routing-policy"`
	ΛInstallProtocolEq []ygot.Annotation                             `path:"@install-protocol-eq" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) IsYANGGoStruct() {
}

// GetCallPolicy retrieves the value of the leaf CallPolicy from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CallPolicy is set, it can
// safely use t.GetCallPolicy() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CallPolicy == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) GetCallPolicy() string {
	if t == nil || t.CallPolicy == nil {
		return ""
	}
	return *t.CallPolicy
}

// GetInstallProtocolEq retrieves the value of the leaf InstallProtocolEq from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InstallProtocolEq is set, it can
// safely use t.GetInstallProtocolEq() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InstallProtocolEq == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) GetInstallProtocolEq() E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE {
	if t == nil || t.InstallProtocolEq == 0 {
		return 0
	}
	return t.InstallProtocolEq
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Conditions_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/config YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Config) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State represents the /openconfig-routing-policy/routing-policy/policy-definitions/policy-definition/statements/statement/state YANG schema element.
type OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-routing-policy"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State) IsYANGGoStruct() {
}

// GetName retrieves the value of the leaf Name from the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State.
func (*OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_State) ΛBelongingModule() string {
	return "openconfig-routing-policy"
}

// OpenconfigSystem_System represents the /openconfig-system/system YANG schema element.
type OpenconfigSystem_System struct {
	ΛMetadata     []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Aaa           *OpenconfigSystem_System_Aaa          `path:"aaa" module:"openconfig-system"`
	ΛAaa          []ygot.Annotation                     `path:"@aaa" ygotAnnotation:"true"`
	Alarms        *OpenconfigSystem_System_Alarms       `path:"alarms" module:"openconfig-system"`
	ΛAlarms       []ygot.Annotation                     `path:"@alarms" ygotAnnotation:"true"`
	Clock         *OpenconfigSystem_System_Clock        `path:"clock" module:"openconfig-system"`
	ΛClock        []ygot.Annotation                     `path:"@clock" ygotAnnotation:"true"`
	Config        *OpenconfigSystem_System_Config       `path:"config" module:"openconfig-system"`
	ΛConfig       []ygot.Annotation                     `path:"@config" ygotAnnotation:"true"`
	Cpus          *OpenconfigSystem_System_Cpus         `path:"cpus" module:"openconfig-system"`
	ΛCpus         []ygot.Annotation                     `path:"@cpus" ygotAnnotation:"true"`
	Dns           *OpenconfigSystem_System_Dns          `path:"dns" module:"openconfig-system"`
	ΛDns          []ygot.Annotation                     `path:"@dns" ygotAnnotation:"true"`
	License       *OpenconfigSystem_System_License      `path:"license" module:"openconfig-system"`
	ΛLicense      []ygot.Annotation                     `path:"@license" ygotAnnotation:"true"`
	Logging       *OpenconfigSystem_System_Logging      `path:"logging" module:"openconfig-system"`
	ΛLogging      []ygot.Annotation                     `path:"@logging" ygotAnnotation:"true"`
	MacAddress    *OpenconfigSystem_System_MacAddress   `path:"mac-address" module:"openconfig-system"`
	ΛMacAddress   []ygot.Annotation                     `path:"@mac-address" ygotAnnotation:"true"`
	Memory        *OpenconfigSystem_System_Memory       `path:"memory" module:"openconfig-system"`
	ΛMemory       []ygot.Annotation                     `path:"@memory" ygotAnnotation:"true"`
	Messages      *OpenconfigSystem_System_Messages     `path:"messages" module:"openconfig-system"`
	ΛMessages     []ygot.Annotation                     `path:"@messages" ygotAnnotation:"true"`
	MountPoints   *OpenconfigSystem_System_MountPoints  `path:"mount-points" module:"openconfig-system"`
	ΛMountPoints  []ygot.Annotation                     `path:"@mount-points" ygotAnnotation:"true"`
	Ntp           *OpenconfigSystem_System_Ntp          `path:"ntp" module:"openconfig-system"`
	ΛNtp          []ygot.Annotation                     `path:"@ntp" ygotAnnotation:"true"`
	Processes     *OpenconfigSystem_System_Processes    `path:"processes" module:"openconfig-system"`
	ΛProcesses    []ygot.Annotation                     `path:"@processes" ygotAnnotation:"true"`
	SshServer     *OpenconfigSystem_System_SshServer    `path:"ssh-server" module:"openconfig-system"`
	ΛSshServer    []ygot.Annotation                     `path:"@ssh-server" ygotAnnotation:"true"`
	State         *OpenconfigSystem_System_State        `path:"state" module:"openconfig-system"`
	ΛState        []ygot.Annotation                     `path:"@state" ygotAnnotation:"true"`
	TelnetServer  *OpenconfigSystem_System_TelnetServer `path:"telnet-server" module:"openconfig-system"`
	ΛTelnetServer []ygot.Annotation                     `path:"@telnet-server" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System) IsYANGGoStruct() {}

// GetOrCreateAaa retrieves the value of the Aaa field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateAaa() *OpenconfigSystem_System_Aaa {
	if t.Aaa != nil {
		return t.Aaa
	}
	t.Aaa = &OpenconfigSystem_System_Aaa{}
	return t.Aaa
}

// GetOrCreateAlarms retrieves the value of the Alarms field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateAlarms() *OpenconfigSystem_System_Alarms {
	if t.Alarms != nil {
		return t.Alarms
	}
	t.Alarms = &OpenconfigSystem_System_Alarms{}
	return t.Alarms
}

// GetOrCreateClock retrieves the value of the Clock field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateClock() *OpenconfigSystem_System_Clock {
	if t.Clock != nil {
		return t.Clock
	}
	t.Clock = &OpenconfigSystem_System_Clock{}
	return t.Clock
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateConfig() *OpenconfigSystem_System_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Config{}
	return t.Config
}

// GetOrCreateCpus retrieves the value of the Cpus field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateCpus() *OpenconfigSystem_System_Cpus {
	if t.Cpus != nil {
		return t.Cpus
	}
	t.Cpus = &OpenconfigSystem_System_Cpus{}
	return t.Cpus
}

// GetOrCreateDns retrieves the value of the Dns field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateDns() *OpenconfigSystem_System_Dns {
	if t.Dns != nil {
		return t.Dns
	}
	t.Dns = &OpenconfigSystem_System_Dns{}
	return t.Dns
}

// GetOrCreateLicense retrieves the value of the License field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateLicense() *OpenconfigSystem_System_License {
	if t.License != nil {
		return t.License
	}
	t.License = &OpenconfigSystem_System_License{}
	return t.License
}

// GetOrCreateLogging retrieves the value of the Logging field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateLogging() *OpenconfigSystem_System_Logging {
	if t.Logging != nil {
		return t.Logging
	}
	t.Logging = &OpenconfigSystem_System_Logging{}
	return t.Logging
}

// GetOrCreateMacAddress retrieves the value of the MacAddress field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateMacAddress() *OpenconfigSystem_System_MacAddress {
	if t.MacAddress != nil {
		return t.MacAddress
	}
	t.MacAddress = &OpenconfigSystem_System_MacAddress{}
	return t.MacAddress
}

// GetOrCreateMemory retrieves the value of the Memory field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateMemory() *OpenconfigSystem_System_Memory {
	if t.Memory != nil {
		return t.Memory
	}
	t.Memory = &OpenconfigSystem_System_Memory{}
	return t.Memory
}

// GetOrCreateMessages retrieves the value of the Messages field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateMessages() *OpenconfigSystem_System_Messages {
	if t.Messages != nil {
		return t.Messages
	}
	t.Messages = &OpenconfigSystem_System_Messages{}
	return t.Messages
}

// GetOrCreateMountPoints retrieves the value of the MountPoints field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateMountPoints() *OpenconfigSystem_System_MountPoints {
	if t.MountPoints != nil {
		return t.MountPoints
	}
	t.MountPoints = &OpenconfigSystem_System_MountPoints{}
	return t.MountPoints
}

// GetOrCreateNtp retrieves the value of the Ntp field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateNtp() *OpenconfigSystem_System_Ntp {
	if t.Ntp != nil {
		return t.Ntp
	}
	t.Ntp = &OpenconfigSystem_System_Ntp{}
	return t.Ntp
}

// GetOrCreateProcesses retrieves the value of the Processes field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateProcesses() *OpenconfigSystem_System_Processes {
	if t.Processes != nil {
		return t.Processes
	}
	t.Processes = &OpenconfigSystem_System_Processes{}
	return t.Processes
}

// GetOrCreateSshServer retrieves the value of the SshServer field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateSshServer() *OpenconfigSystem_System_SshServer {
	if t.SshServer != nil {
		return t.SshServer
	}
	t.SshServer = &OpenconfigSystem_System_SshServer{}
	return t.SshServer
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateState() *OpenconfigSystem_System_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_State{}
	return t.State
}

// GetOrCreateTelnetServer retrieves the value of the TelnetServer field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System) GetOrCreateTelnetServer() *OpenconfigSystem_System_TelnetServer {
	if t.TelnetServer != nil {
		return t.TelnetServer
	}
	t.TelnetServer = &OpenconfigSystem_System_TelnetServer{}
	return t.TelnetServer
}

// GetAaa returns the value of the Aaa struct pointer
// from OpenconfigSystem_System. If the receiver or the field Aaa is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetAaa() *OpenconfigSystem_System_Aaa {
	if t != nil && t.Aaa != nil {
		return t.Aaa
	}
	return nil
}

// GetAlarms returns the value of the Alarms struct pointer
// from OpenconfigSystem_System. If the receiver or the field Alarms is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetAlarms() *OpenconfigSystem_System_Alarms {
	if t != nil && t.Alarms != nil {
		return t.Alarms
	}
	return nil
}

// GetClock returns the value of the Clock struct pointer
// from OpenconfigSystem_System. If the receiver or the field Clock is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetClock() *OpenconfigSystem_System_Clock {
	if t != nil && t.Clock != nil {
		return t.Clock
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetConfig() *OpenconfigSystem_System_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetCpus returns the value of the Cpus struct pointer
// from OpenconfigSystem_System. If the receiver or the field Cpus is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetCpus() *OpenconfigSystem_System_Cpus {
	if t != nil && t.Cpus != nil {
		return t.Cpus
	}
	return nil
}

// GetDns returns the value of the Dns struct pointer
// from OpenconfigSystem_System. If the receiver or the field Dns is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetDns() *OpenconfigSystem_System_Dns {
	if t != nil && t.Dns != nil {
		return t.Dns
	}
	return nil
}

// GetLicense returns the value of the License struct pointer
// from OpenconfigSystem_System. If the receiver or the field License is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetLicense() *OpenconfigSystem_System_License {
	if t != nil && t.License != nil {
		return t.License
	}
	return nil
}

// GetLogging returns the value of the Logging struct pointer
// from OpenconfigSystem_System. If the receiver or the field Logging is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetLogging() *OpenconfigSystem_System_Logging {
	if t != nil && t.Logging != nil {
		return t.Logging
	}
	return nil
}

// GetMacAddress returns the value of the MacAddress struct pointer
// from OpenconfigSystem_System. If the receiver or the field MacAddress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetMacAddress() *OpenconfigSystem_System_MacAddress {
	if t != nil && t.MacAddress != nil {
		return t.MacAddress
	}
	return nil
}

// GetMemory returns the value of the Memory struct pointer
// from OpenconfigSystem_System. If the receiver or the field Memory is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetMemory() *OpenconfigSystem_System_Memory {
	if t != nil && t.Memory != nil {
		return t.Memory
	}
	return nil
}

// GetMessages returns the value of the Messages struct pointer
// from OpenconfigSystem_System. If the receiver or the field Messages is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetMessages() *OpenconfigSystem_System_Messages {
	if t != nil && t.Messages != nil {
		return t.Messages
	}
	return nil
}

// GetMountPoints returns the value of the MountPoints struct pointer
// from OpenconfigSystem_System. If the receiver or the field MountPoints is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetMountPoints() *OpenconfigSystem_System_MountPoints {
	if t != nil && t.MountPoints != nil {
		return t.MountPoints
	}
	return nil
}

// GetNtp returns the value of the Ntp struct pointer
// from OpenconfigSystem_System. If the receiver or the field Ntp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetNtp() *OpenconfigSystem_System_Ntp {
	if t != nil && t.Ntp != nil {
		return t.Ntp
	}
	return nil
}

// GetProcesses returns the value of the Processes struct pointer
// from OpenconfigSystem_System. If the receiver or the field Processes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetProcesses() *OpenconfigSystem_System_Processes {
	if t != nil && t.Processes != nil {
		return t.Processes
	}
	return nil
}

// GetSshServer returns the value of the SshServer struct pointer
// from OpenconfigSystem_System. If the receiver or the field SshServer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetSshServer() *OpenconfigSystem_System_SshServer {
	if t != nil && t.SshServer != nil {
		return t.SshServer
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetState() *OpenconfigSystem_System_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTelnetServer returns the value of the TelnetServer struct pointer
// from OpenconfigSystem_System. If the receiver or the field TelnetServer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System) GetTelnetServer() *OpenconfigSystem_System_TelnetServer {
	if t != nil && t.TelnetServer != nil {
		return t.TelnetServer
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Aaa.PopulateDefaults()
	t.Alarms.PopulateDefaults()
	t.Clock.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.Cpus.PopulateDefaults()
	t.Dns.PopulateDefaults()
	t.License.PopulateDefaults()
	t.Logging.PopulateDefaults()
	t.MacAddress.PopulateDefaults()
	t.Memory.PopulateDefaults()
	t.Messages.PopulateDefaults()
	t.MountPoints.PopulateDefaults()
	t.Ntp.PopulateDefaults()
	t.Processes.PopulateDefaults()
	t.SshServer.PopulateDefaults()
	t.State.PopulateDefaults()
	t.TelnetServer.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System.
func (*OpenconfigSystem_System) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa represents the /openconfig-system/system/aaa YANG schema element.
type OpenconfigSystem_System_Aaa struct {
	ΛMetadata       []ygot.Annotation                           `path:"@" ygotAnnotation:"true"`
	Accounting      *OpenconfigSystem_System_Aaa_Accounting     `path:"accounting" module:"openconfig-system"`
	ΛAccounting     []ygot.Annotation                           `path:"@accounting" ygotAnnotation:"true"`
	Authentication  *OpenconfigSystem_System_Aaa_Authentication `path:"authentication" module:"openconfig-system"`
	ΛAuthentication []ygot.Annotation                           `path:"@authentication" ygotAnnotation:"true"`
	Authorization   *OpenconfigSystem_System_Aaa_Authorization  `path:"authorization" module:"openconfig-system"`
	ΛAuthorization  []ygot.Annotation                           `path:"@authorization" ygotAnnotation:"true"`
	Config          *OpenconfigSystem_System_Aaa_Config         `path:"config" module:"openconfig-system"`
	ΛConfig         []ygot.Annotation                           `path:"@config" ygotAnnotation:"true"`
	ServerGroups    *OpenconfigSystem_System_Aaa_ServerGroups   `path:"server-groups" module:"openconfig-system"`
	ΛServerGroups   []ygot.Annotation                           `path:"@server-groups" ygotAnnotation:"true"`
	State           *OpenconfigSystem_System_Aaa_State          `path:"state" module:"openconfig-system"`
	ΛState          []ygot.Annotation                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa) IsYANGGoStruct() {}

// GetOrCreateAccounting retrieves the value of the Accounting field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa) GetOrCreateAccounting() *OpenconfigSystem_System_Aaa_Accounting {
	if t.Accounting != nil {
		return t.Accounting
	}
	t.Accounting = &OpenconfigSystem_System_Aaa_Accounting{}
	return t.Accounting
}

// GetOrCreateAuthentication retrieves the value of the Authentication field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa) GetOrCreateAuthentication() *OpenconfigSystem_System_Aaa_Authentication {
	if t.Authentication != nil {
		return t.Authentication
	}
	t.Authentication = &OpenconfigSystem_System_Aaa_Authentication{}
	return t.Authentication
}

// GetOrCreateAuthorization retrieves the value of the Authorization field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa) GetOrCreateAuthorization() *OpenconfigSystem_System_Aaa_Authorization {
	if t.Authorization != nil {
		return t.Authorization
	}
	t.Authorization = &OpenconfigSystem_System_Aaa_Authorization{}
	return t.Authorization
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Config{}
	return t.Config
}

// GetOrCreateServerGroups retrieves the value of the ServerGroups field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa) GetOrCreateServerGroups() *OpenconfigSystem_System_Aaa_ServerGroups {
	if t.ServerGroups != nil {
		return t.ServerGroups
	}
	t.ServerGroups = &OpenconfigSystem_System_Aaa_ServerGroups{}
	return t.ServerGroups
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa) GetOrCreateState() *OpenconfigSystem_System_Aaa_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_State{}
	return t.State
}

// GetAccounting returns the value of the Accounting struct pointer
// from OpenconfigSystem_System_Aaa. If the receiver or the field Accounting is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa) GetAccounting() *OpenconfigSystem_System_Aaa_Accounting {
	if t != nil && t.Accounting != nil {
		return t.Accounting
	}
	return nil
}

// GetAuthentication returns the value of the Authentication struct pointer
// from OpenconfigSystem_System_Aaa. If the receiver or the field Authentication is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa) GetAuthentication() *OpenconfigSystem_System_Aaa_Authentication {
	if t != nil && t.Authentication != nil {
		return t.Authentication
	}
	return nil
}

// GetAuthorization returns the value of the Authorization struct pointer
// from OpenconfigSystem_System_Aaa. If the receiver or the field Authorization is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa) GetAuthorization() *OpenconfigSystem_System_Aaa_Authorization {
	if t != nil && t.Authorization != nil {
		return t.Authorization
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa) GetConfig() *OpenconfigSystem_System_Aaa_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetServerGroups returns the value of the ServerGroups struct pointer
// from OpenconfigSystem_System_Aaa. If the receiver or the field ServerGroups is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa) GetServerGroups() *OpenconfigSystem_System_Aaa_ServerGroups {
	if t != nil && t.ServerGroups != nil {
		return t.ServerGroups
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa) GetState() *OpenconfigSystem_System_Aaa_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Accounting.PopulateDefaults()
	t.Authentication.PopulateDefaults()
	t.Authorization.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.ServerGroups.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa.
func (*OpenconfigSystem_System_Aaa) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting represents the /openconfig-system/system/aaa/accounting YANG schema element.
type OpenconfigSystem_System_Aaa_Accounting struct {
	ΛMetadata []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_Accounting_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                              `path:"@config" ygotAnnotation:"true"`
	Events    *OpenconfigSystem_System_Aaa_Accounting_Events `path:"events" module:"openconfig-system"`
	ΛEvents   []ygot.Annotation                              `path:"@events" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_Accounting_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Accounting implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Accounting) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Accounting) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Accounting_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Accounting_Config{}
	return t.Config
}

// GetOrCreateEvents retrieves the value of the Events field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Accounting) GetOrCreateEvents() *OpenconfigSystem_System_Aaa_Accounting_Events {
	if t.Events != nil {
		return t.Events
	}
	t.Events = &OpenconfigSystem_System_Aaa_Accounting_Events{}
	return t.Events
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Accounting) GetOrCreateState() *OpenconfigSystem_System_Aaa_Accounting_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_Accounting_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_Accounting. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Accounting) GetConfig() *OpenconfigSystem_System_Aaa_Accounting_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEvents returns the value of the Events struct pointer
// from OpenconfigSystem_System_Aaa_Accounting. If the receiver or the field Events is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Accounting) GetEvents() *OpenconfigSystem_System_Aaa_Accounting_Events {
	if t != nil && t.Events != nil {
		return t.Events
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_Accounting. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Accounting) GetState() *OpenconfigSystem_System_Aaa_Accounting_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Accounting
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Accounting) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Events.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Accounting"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Accounting) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Accounting.
func (*OpenconfigSystem_System_Aaa_Accounting) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting_Config represents the /openconfig-system/system/aaa/accounting/config YANG schema element.
type OpenconfigSystem_System_Aaa_Accounting_Config struct {
	ΛMetadata         []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	AccountingMethod  []OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union `path:"accounting-method" module:"openconfig-system"`
	ΛAccountingMethod []ygot.Annotation                                                      `path:"@accounting-method" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Accounting_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Accounting_Config) IsYANGGoStruct() {}

// GetAccountingMethod retrieves the value of the leaf AccountingMethod from the OpenconfigSystem_System_Aaa_Accounting_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccountingMethod is set, it can
// safely use t.GetAccountingMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccountingMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Accounting_Config) GetAccountingMethod() []OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union {
	if t == nil || t.AccountingMethod == nil {
		return nil
	}
	return t.AccountingMethod
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Accounting_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Accounting_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Accounting_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Accounting_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Accounting_Config.
func (*OpenconfigSystem_System_Aaa_Accounting_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/accounting/config/accounting-method within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString].
type OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union ensures that E_OpenconfigAaaTypes_AAA_METHOD_TYPE
// implements the OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union interface.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) Documentation_for_OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union() {
}

// To_OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Accounting_Config) To_OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union(i interface{}) (OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Accounting_Config_AccountingMethod_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Accounting_Events represents the /openconfig-system/system/aaa/accounting/events YANG schema element.
type OpenconfigSystem_System_Aaa_Accounting_Events struct {
	ΛMetadata []ygot.Annotation                                                                                       `path:"@" ygotAnnotation:"true"`
	Event     map[E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Accounting_Events_Event `path:"event" module:"openconfig-system"`
	ΛEvent    []ygot.Annotation                                                                                       `path:"@event" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Accounting_Events implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Accounting_Events) IsYANGGoStruct() {}

// NewEvent creates a new entry in the Event list of the
// OpenconfigSystem_System_Aaa_Accounting_Events struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) NewEvent(EventType E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE) (*OpenconfigSystem_System_Aaa_Accounting_Events_Event, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Event == nil {
		t.Event = make(map[E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Accounting_Events_Event)
	}

	key := EventType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Event[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Event", key)
	}

	t.Event[key] = &OpenconfigSystem_System_Aaa_Accounting_Events_Event{
		EventType: EventType,
	}

	return t.Event[key], nil
}

// RenameEvent renames an entry in the list Event within
// the OpenconfigSystem_System_Aaa_Accounting_Events struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) RenameEvent(oldK, newK E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE) error {
	if _, ok := t.Event[newK]; ok {
		return fmt.Errorf("key %v already exists in Event", newK)
	}

	e, ok := t.Event[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Event", oldK)
	}
	e.EventType = newK

	t.Event[newK] = e
	delete(t.Event, oldK)
	return nil
}

// GetOrCreateEventMap returns the list (map) from OpenconfigSystem_System_Aaa_Accounting_Events.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) GetOrCreateEventMap() map[E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Accounting_Events_Event {
	if t.Event == nil {
		t.Event = make(map[E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Accounting_Events_Event)
	}
	return t.Event
}

// GetOrCreateEvent retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Aaa_Accounting_Events. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) GetOrCreateEvent(EventType E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE) *OpenconfigSystem_System_Aaa_Accounting_Events_Event {

	key := EventType

	if v, ok := t.Event[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEvent(EventType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEvent got unexpected error: %v", err))
	}
	return v
}

// GetEvent retrieves the value with the specified key from
// the Event map field of OpenconfigSystem_System_Aaa_Accounting_Events. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) GetEvent(EventType E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE) *OpenconfigSystem_System_Aaa_Accounting_Events_Event {

	if t == nil {
		return nil
	}

	key := EventType

	if lm, ok := t.Event[key]; ok {
		return lm
	}
	return nil
}

// AppendEvent appends the supplied OpenconfigSystem_System_Aaa_Accounting_Events_Event struct to the
// list Event of OpenconfigSystem_System_Aaa_Accounting_Events. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Aaa_Accounting_Events_Event already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) AppendEvent(v *OpenconfigSystem_System_Aaa_Accounting_Events_Event) error {
	key := v.EventType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Event == nil {
		t.Event = make(map[E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Accounting_Events_Event)
	}

	if _, ok := t.Event[key]; ok {
		return fmt.Errorf("duplicate key for list Event %v", key)
	}

	t.Event[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Accounting_Events
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Event {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Accounting_Events"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Accounting_Events.
func (*OpenconfigSystem_System_Aaa_Accounting_Events) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting_Events_Event represents the /openconfig-system/system/aaa/accounting/events/event YANG schema element.
type OpenconfigSystem_System_Aaa_Accounting_Events_Event struct {
	ΛMetadata  []ygot.Annotation                                           `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config `path:"config" module:"openconfig-system"`
	ΛConfig    []ygot.Annotation                                           `path:"@config" ygotAnnotation:"true"`
	EventType  E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE              `path:"event-type" module:"openconfig-system"`
	ΛEventType []ygot.Annotation                                           `path:"@event-type" ygotAnnotation:"true"`
	State      *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State  `path:"state" module:"openconfig-system"`
	ΛState     []ygot.Annotation                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Accounting_Events_Event implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Accounting_Events_Event) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) GetOrCreateState() *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_Accounting_Events_Event_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_Accounting_Events_Event. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) GetConfig() *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_Accounting_Events_Event. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) GetState() *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEventType retrieves the value of the leaf EventType from the OpenconfigSystem_System_Aaa_Accounting_Events_Event
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EventType is set, it can
// safely use t.GetEventType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EventType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) GetEventType() E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE {
	if t == nil || t.EventType == 0 {
		return 0
	}
	return t.EventType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Accounting_Events_Event
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Aaa_Accounting_Events_Event struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"event-type": t.EventType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Accounting_Events_Event"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Accounting_Events_Event.
func (*OpenconfigSystem_System_Aaa_Accounting_Events_Event) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config represents the /openconfig-system/system/aaa/accounting/events/event/config YANG schema element.
type OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config struct {
	ΛMetadata  []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	EventType  E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE                      `path:"event-type" module:"openconfig-system"`
	ΛEventType []ygot.Annotation                                                   `path:"@event-type" ygotAnnotation:"true"`
	Record     E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record `path:"record" module:"openconfig-system"`
	ΛRecord    []ygot.Annotation                                                   `path:"@record" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) IsYANGGoStruct() {}

// GetEventType retrieves the value of the leaf EventType from the OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EventType is set, it can
// safely use t.GetEventType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EventType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) GetEventType() E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE {
	if t == nil || t.EventType == 0 {
		return 0
	}
	return t.EventType
}

// GetRecord retrieves the value of the leaf Record from the OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Record is set, it can
// safely use t.GetRecord() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Record == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) GetRecord() E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record {
	if t == nil || t.Record == 0 {
		return 0
	}
	return t.Record
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config.
func (*OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting_Events_Event_State represents the /openconfig-system/system/aaa/accounting/events/event/state YANG schema element.
type OpenconfigSystem_System_Aaa_Accounting_Events_Event_State struct {
	ΛMetadata  []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	EventType  E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE                      `path:"event-type" module:"openconfig-system"`
	ΛEventType []ygot.Annotation                                                   `path:"@event-type" ygotAnnotation:"true"`
	Record     E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record `path:"record" module:"openconfig-system"`
	ΛRecord    []ygot.Annotation                                                   `path:"@record" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Accounting_Events_Event_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) IsYANGGoStruct() {}

// GetEventType retrieves the value of the leaf EventType from the OpenconfigSystem_System_Aaa_Accounting_Events_Event_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EventType is set, it can
// safely use t.GetEventType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EventType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) GetEventType() E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE {
	if t == nil || t.EventType == 0 {
		return 0
	}
	return t.EventType
}

// GetRecord retrieves the value of the leaf Record from the OpenconfigSystem_System_Aaa_Accounting_Events_Event_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Record is set, it can
// safely use t.GetRecord() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Record == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) GetRecord() E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record {
	if t == nil || t.Record == 0 {
		return 0
	}
	return t.Record
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Accounting_Events_Event_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Accounting_Events_Event_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Accounting_Events_Event_State.
func (*OpenconfigSystem_System_Aaa_Accounting_Events_Event_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting_State represents the /openconfig-system/system/aaa/accounting/state YANG schema element.
type OpenconfigSystem_System_Aaa_Accounting_State struct {
	ΛMetadata         []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	AccountingMethod  []OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union `path:"accounting-method" module:"openconfig-system"`
	ΛAccountingMethod []ygot.Annotation                                                     `path:"@accounting-method" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Accounting_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Accounting_State) IsYANGGoStruct() {}

// GetAccountingMethod retrieves the value of the leaf AccountingMethod from the OpenconfigSystem_System_Aaa_Accounting_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccountingMethod is set, it can
// safely use t.GetAccountingMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccountingMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Accounting_State) GetAccountingMethod() []OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union {
	if t == nil || t.AccountingMethod == nil {
		return nil
	}
	return t.AccountingMethod
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Accounting_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Accounting_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Accounting_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Accounting_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Accounting_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Accounting_State.
func (*OpenconfigSystem_System_Aaa_Accounting_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/accounting/state/accounting-method within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString].
type OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union ensures that E_OpenconfigAaaTypes_AAA_METHOD_TYPE
// implements the OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union interface.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) Documentation_for_OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union() {
}

// To_OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Accounting_State) To_OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union(i interface{}) (OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Accounting_State_AccountingMethod_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Authentication represents the /openconfig-system/system/aaa/authentication YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication struct {
	ΛMetadata  []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	AdminUser  *OpenconfigSystem_System_Aaa_Authentication_AdminUser `path:"admin-user" module:"openconfig-system"`
	ΛAdminUser []ygot.Annotation                                     `path:"@admin-user" ygotAnnotation:"true"`
	Config     *OpenconfigSystem_System_Aaa_Authentication_Config    `path:"config" module:"openconfig-system"`
	ΛConfig    []ygot.Annotation                                     `path:"@config" ygotAnnotation:"true"`
	State      *OpenconfigSystem_System_Aaa_Authentication_State     `path:"state" module:"openconfig-system"`
	ΛState     []ygot.Annotation                                     `path:"@state" ygotAnnotation:"true"`
	Users      *OpenconfigSystem_System_Aaa_Authentication_Users     `path:"users" module:"openconfig-system"`
	ΛUsers     []ygot.Annotation                                     `path:"@users" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication) IsYANGGoStruct() {}

// GetOrCreateAdminUser retrieves the value of the AdminUser field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetOrCreateAdminUser() *OpenconfigSystem_System_Aaa_Authentication_AdminUser {
	if t.AdminUser != nil {
		return t.AdminUser
	}
	t.AdminUser = &OpenconfigSystem_System_Aaa_Authentication_AdminUser{}
	return t.AdminUser
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Authentication_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Authentication_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetOrCreateState() *OpenconfigSystem_System_Aaa_Authentication_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_Authentication_State{}
	return t.State
}

// GetOrCreateUsers retrieves the value of the Users field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetOrCreateUsers() *OpenconfigSystem_System_Aaa_Authentication_Users {
	if t.Users != nil {
		return t.Users
	}
	t.Users = &OpenconfigSystem_System_Aaa_Authentication_Users{}
	return t.Users
}

// GetAdminUser returns the value of the AdminUser struct pointer
// from OpenconfigSystem_System_Aaa_Authentication. If the receiver or the field AdminUser is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetAdminUser() *OpenconfigSystem_System_Aaa_Authentication_AdminUser {
	if t != nil && t.AdminUser != nil {
		return t.AdminUser
	}
	return nil
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_Authentication. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetConfig() *OpenconfigSystem_System_Aaa_Authentication_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_Authentication. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetState() *OpenconfigSystem_System_Aaa_Authentication_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUsers returns the value of the Users struct pointer
// from OpenconfigSystem_System_Aaa_Authentication. If the receiver or the field Users is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication) GetUsers() *OpenconfigSystem_System_Aaa_Authentication_Users {
	if t != nil && t.Users != nil {
		return t.Users
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.AdminUser.PopulateDefaults()
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Users.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication.
func (*OpenconfigSystem_System_Aaa_Authentication) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_AdminUser represents the /openconfig-system/system/aaa/authentication/admin-user YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_AdminUser struct {
	ΛMetadata []ygot.Annotation                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_AdminUser implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_AdminUser) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) GetOrCreateState() *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_Authentication_AdminUser_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_Authentication_AdminUser. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) GetConfig() *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_Authentication_AdminUser. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) GetState() *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_AdminUser
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_AdminUser"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_AdminUser.
func (*OpenconfigSystem_System_Aaa_Authentication_AdminUser) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config represents the /openconfig-system/system/aaa/authentication/admin-user/config YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminPassword        *string           `path:"admin-password" module:"openconfig-system"`
	ΛAdminPassword       []ygot.Annotation `path:"@admin-password" ygotAnnotation:"true"`
	AdminPasswordHashed  *string           `path:"admin-password-hashed" module:"openconfig-system"`
	ΛAdminPasswordHashed []ygot.Annotation `path:"@admin-password-hashed" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) IsYANGGoStruct() {}

// GetAdminPassword retrieves the value of the leaf AdminPassword from the OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminPassword is set, it can
// safely use t.GetAdminPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) GetAdminPassword() string {
	if t == nil || t.AdminPassword == nil {
		return ""
	}
	return *t.AdminPassword
}

// GetAdminPasswordHashed retrieves the value of the leaf AdminPasswordHashed from the OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminPasswordHashed is set, it can
// safely use t.GetAdminPasswordHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminPasswordHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) GetAdminPasswordHashed() string {
	if t == nil || t.AdminPasswordHashed == nil {
		return ""
	}
	return *t.AdminPasswordHashed
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config.
func (*OpenconfigSystem_System_Aaa_Authentication_AdminUser_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_AdminUser_State represents the /openconfig-system/system/aaa/authentication/admin-user/state YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_AdminUser_State struct {
	ΛMetadata            []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AdminPassword        *string           `path:"admin-password" module:"openconfig-system"`
	ΛAdminPassword       []ygot.Annotation `path:"@admin-password" ygotAnnotation:"true"`
	AdminPasswordHashed  *string           `path:"admin-password-hashed" module:"openconfig-system"`
	ΛAdminPasswordHashed []ygot.Annotation `path:"@admin-password-hashed" ygotAnnotation:"true"`
	AdminUsername        *string           `path:"admin-username" module:"openconfig-system"`
	ΛAdminUsername       []ygot.Annotation `path:"@admin-username" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_AdminUser_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) IsYANGGoStruct() {}

// GetAdminPassword retrieves the value of the leaf AdminPassword from the OpenconfigSystem_System_Aaa_Authentication_AdminUser_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminPassword is set, it can
// safely use t.GetAdminPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminPassword == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) GetAdminPassword() string {
	if t == nil || t.AdminPassword == nil {
		return ""
	}
	return *t.AdminPassword
}

// GetAdminPasswordHashed retrieves the value of the leaf AdminPasswordHashed from the OpenconfigSystem_System_Aaa_Authentication_AdminUser_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminPasswordHashed is set, it can
// safely use t.GetAdminPasswordHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminPasswordHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) GetAdminPasswordHashed() string {
	if t == nil || t.AdminPasswordHashed == nil {
		return ""
	}
	return *t.AdminPasswordHashed
}

// GetAdminUsername retrieves the value of the leaf AdminUsername from the OpenconfigSystem_System_Aaa_Authentication_AdminUser_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminUsername is set, it can
// safely use t.GetAdminUsername() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminUsername == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) GetAdminUsername() string {
	if t == nil || t.AdminUsername == nil {
		return ""
	}
	return *t.AdminUsername
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_AdminUser_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_AdminUser_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_AdminUser_State.
func (*OpenconfigSystem_System_Aaa_Authentication_AdminUser_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_Config represents the /openconfig-system/system/aaa/authentication/config YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_Config struct {
	ΛMetadata             []ygot.Annotation                                                              `path:"@" ygotAnnotation:"true"`
	AuthenticationMethod  []OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union `path:"authentication-method" module:"openconfig-system"`
	ΛAuthenticationMethod []ygot.Annotation                                                              `path:"@authentication-method" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_Config) IsYANGGoStruct() {}

// GetAuthenticationMethod retrieves the value of the leaf AuthenticationMethod from the OpenconfigSystem_System_Aaa_Authentication_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationMethod is set, it can
// safely use t.GetAuthenticationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Config) GetAuthenticationMethod() []OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union {
	if t == nil || t.AuthenticationMethod == nil {
		return nil
	}
	return t.AuthenticationMethod
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_Config.
func (*OpenconfigSystem_System_Aaa_Authentication_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/authentication/config/authentication-method within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString].
type OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union ensures that E_OpenconfigAaaTypes_AAA_METHOD_TYPE
// implements the OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union interface.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union() {
}

// To_OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Authentication_Config) To_OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union(i interface{}) (OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Authentication_Config_AuthenticationMethod_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Authentication_State represents the /openconfig-system/system/aaa/authentication/state YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_State struct {
	ΛMetadata             []ygot.Annotation                                                             `path:"@" ygotAnnotation:"true"`
	AuthenticationMethod  []OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union `path:"authentication-method" module:"openconfig-system"`
	ΛAuthenticationMethod []ygot.Annotation                                                             `path:"@authentication-method" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_State) IsYANGGoStruct() {}

// GetAuthenticationMethod retrieves the value of the leaf AuthenticationMethod from the OpenconfigSystem_System_Aaa_Authentication_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthenticationMethod is set, it can
// safely use t.GetAuthenticationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthenticationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_State) GetAuthenticationMethod() []OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union {
	if t == nil || t.AuthenticationMethod == nil {
		return nil
	}
	return t.AuthenticationMethod
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_State.
func (*OpenconfigSystem_System_Aaa_Authentication_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/authentication/state/authentication-method within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString].
type OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union ensures that E_OpenconfigAaaTypes_AAA_METHOD_TYPE
// implements the OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union interface.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union() {
}

// To_OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Authentication_State) To_OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union(i interface{}) (OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Authentication_State_AuthenticationMethod_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Authentication_Users represents the /openconfig-system/system/aaa/authentication/users YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_Users struct {
	ΛMetadata []ygot.Annotation                                                 `path:"@" ygotAnnotation:"true"`
	User      map[string]*OpenconfigSystem_System_Aaa_Authentication_Users_User `path:"user" module:"openconfig-system"`
	ΛUser     []ygot.Annotation                                                 `path:"@user" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_Users implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_Users) IsYANGGoStruct() {}

// NewUser creates a new entry in the User list of the
// OpenconfigSystem_System_Aaa_Authentication_Users struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) NewUser(Username string) (*OpenconfigSystem_System_Aaa_Authentication_Users_User, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.User == nil {
		t.User = make(map[string]*OpenconfigSystem_System_Aaa_Authentication_Users_User)
	}

	key := Username

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.User[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list User", key)
	}

	t.User[key] = &OpenconfigSystem_System_Aaa_Authentication_Users_User{
		Username: &Username,
	}

	return t.User[key], nil
}

// RenameUser renames an entry in the list User within
// the OpenconfigSystem_System_Aaa_Authentication_Users struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) RenameUser(oldK, newK string) error {
	if _, ok := t.User[newK]; ok {
		return fmt.Errorf("key %v already exists in User", newK)
	}

	e, ok := t.User[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in User", oldK)
	}
	e.Username = &newK

	t.User[newK] = e
	delete(t.User, oldK)
	return nil
}

// GetOrCreateUserMap returns the list (map) from OpenconfigSystem_System_Aaa_Authentication_Users.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) GetOrCreateUserMap() map[string]*OpenconfigSystem_System_Aaa_Authentication_Users_User {
	if t.User == nil {
		t.User = make(map[string]*OpenconfigSystem_System_Aaa_Authentication_Users_User)
	}
	return t.User
}

// GetOrCreateUser retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Aaa_Authentication_Users. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) GetOrCreateUser(Username string) *OpenconfigSystem_System_Aaa_Authentication_Users_User {

	key := Username

	if v, ok := t.User[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewUser(Username)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateUser got unexpected error: %v", err))
	}
	return v
}

// GetUser retrieves the value with the specified key from
// the User map field of OpenconfigSystem_System_Aaa_Authentication_Users. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) GetUser(Username string) *OpenconfigSystem_System_Aaa_Authentication_Users_User {

	if t == nil {
		return nil
	}

	key := Username

	if lm, ok := t.User[key]; ok {
		return lm
	}
	return nil
}

// AppendUser appends the supplied OpenconfigSystem_System_Aaa_Authentication_Users_User struct to the
// list User of OpenconfigSystem_System_Aaa_Authentication_Users. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Aaa_Authentication_Users_User already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) AppendUser(v *OpenconfigSystem_System_Aaa_Authentication_Users_User) error {
	if v.Username == nil {
		return fmt.Errorf("invalid nil key received for Username")
	}

	key := *v.Username

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.User == nil {
		t.User = make(map[string]*OpenconfigSystem_System_Aaa_Authentication_Users_User)
	}

	if _, ok := t.User[key]; ok {
		return fmt.Errorf("duplicate key for list User %v", key)
	}

	t.User[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_Users
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.User {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_Users"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_Users.
func (*OpenconfigSystem_System_Aaa_Authentication_Users) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_Users_User represents the /openconfig-system/system/aaa/authentication/users/user YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_Users_User struct {
	ΛMetadata []ygot.Annotation                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                             `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_Authentication_Users_User_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                             `path:"@state" ygotAnnotation:"true"`
	Username  *string                                                       `path:"username" module:"openconfig-system"`
	ΛUsername []ygot.Annotation                                             `path:"@username" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_Users_User implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_Users_User) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Authentication_Users_User_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) GetOrCreateState() *OpenconfigSystem_System_Aaa_Authentication_Users_User_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_Authentication_Users_User_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_Authentication_Users_User. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) GetConfig() *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_Authentication_Users_User. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) GetState() *OpenconfigSystem_System_Aaa_Authentication_Users_User_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetUsername retrieves the value of the leaf Username from the OpenconfigSystem_System_Aaa_Authentication_Users_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Username is set, it can
// safely use t.GetUsername() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Username == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) GetUsername() string {
	if t == nil || t.Username == nil {
		return ""
	}
	return *t.Username
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_Users_User
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Aaa_Authentication_Users_User struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Username == nil {
		return nil, fmt.Errorf("nil value for key Username")
	}

	return map[string]interface{}{
		"username": *t.Username,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_Users_User"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_Users_User.
func (*OpenconfigSystem_System_Aaa_Authentication_Users_User) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_Users_User_Config represents the /openconfig-system/system/aaa/authentication/users/user/config YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_Users_User_Config struct {
	ΛMetadata       []ygot.Annotation                                                       `path:"@" ygotAnnotation:"true"`
	Password        *string                                                                 `path:"password" module:"openconfig-system"`
	ΛPassword       []ygot.Annotation                                                       `path:"@password" ygotAnnotation:"true"`
	PasswordHashed  *string                                                                 `path:"password-hashed" module:"openconfig-system"`
	ΛPasswordHashed []ygot.Annotation                                                       `path:"@password-hashed" ygotAnnotation:"true"`
	Role            OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union `path:"role" module:"openconfig-system"`
	ΛRole           []ygot.Annotation                                                       `path:"@role" ygotAnnotation:"true"`
	SshKey          *string                                                                 `path:"ssh-key" module:"openconfig-system"`
	ΛSshKey         []ygot.Annotation                                                       `path:"@ssh-key" ygotAnnotation:"true"`
	Username        *string                                                                 `path:"username" module:"openconfig-system"`
	ΛUsername       []ygot.Annotation                                                       `path:"@username" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_Users_User_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) IsYANGGoStruct() {}

// GetPassword retrieves the value of the leaf Password from the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Password is set, it can
// safely use t.GetPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Password == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) GetPassword() string {
	if t == nil || t.Password == nil {
		return ""
	}
	return *t.Password
}

// GetPasswordHashed retrieves the value of the leaf PasswordHashed from the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PasswordHashed is set, it can
// safely use t.GetPasswordHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PasswordHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) GetPasswordHashed() string {
	if t == nil || t.PasswordHashed == nil {
		return ""
	}
	return *t.PasswordHashed
}

// GetRole retrieves the value of the leaf Role from the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Role is set, it can
// safely use t.GetRole() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Role == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) GetRole() OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union {
	if t == nil || t.Role == nil {
		return nil
	}
	return t.Role
}

// GetSshKey retrieves the value of the leaf SshKey from the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SshKey is set, it can
// safely use t.GetSshKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SshKey == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) GetSshKey() string {
	if t == nil || t.SshKey == nil {
		return ""
	}
	return *t.SshKey
}

// GetUsername retrieves the value of the leaf Username from the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Username is set, it can
// safely use t.GetUsername() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Username == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) GetUsername() string {
	if t == nil || t.Username == nil {
		return ""
	}
	return *t.Username
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_Users_User_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_Users_User_Config.
func (*OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/authentication/users/user/config/role within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES, UnionString].
type OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union ensures that E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES
// implements the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union interface.
func (E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union() {
}

// To_OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_Config) To_OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union(i interface{}) (OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Authentication_Users_User_Config_Role_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Authentication_Users_User_State represents the /openconfig-system/system/aaa/authentication/users/user/state YANG schema element.
type OpenconfigSystem_System_Aaa_Authentication_Users_User_State struct {
	ΛMetadata       []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	Password        *string                                                                `path:"password" module:"openconfig-system"`
	ΛPassword       []ygot.Annotation                                                      `path:"@password" ygotAnnotation:"true"`
	PasswordHashed  *string                                                                `path:"password-hashed" module:"openconfig-system"`
	ΛPasswordHashed []ygot.Annotation                                                      `path:"@password-hashed" ygotAnnotation:"true"`
	Role            OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union `path:"role" module:"openconfig-system"`
	ΛRole           []ygot.Annotation                                                      `path:"@role" ygotAnnotation:"true"`
	SshKey          *string                                                                `path:"ssh-key" module:"openconfig-system"`
	ΛSshKey         []ygot.Annotation                                                      `path:"@ssh-key" ygotAnnotation:"true"`
	Username        *string                                                                `path:"username" module:"openconfig-system"`
	ΛUsername       []ygot.Annotation                                                      `path:"@username" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authentication_Users_User_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authentication_Users_User_State) IsYANGGoStruct() {}

// GetPassword retrieves the value of the leaf Password from the OpenconfigSystem_System_Aaa_Authentication_Users_User_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Password is set, it can
// safely use t.GetPassword() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Password == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) GetPassword() string {
	if t == nil || t.Password == nil {
		return ""
	}
	return *t.Password
}

// GetPasswordHashed retrieves the value of the leaf PasswordHashed from the OpenconfigSystem_System_Aaa_Authentication_Users_User_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PasswordHashed is set, it can
// safely use t.GetPasswordHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PasswordHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) GetPasswordHashed() string {
	if t == nil || t.PasswordHashed == nil {
		return ""
	}
	return *t.PasswordHashed
}

// GetRole retrieves the value of the leaf Role from the OpenconfigSystem_System_Aaa_Authentication_Users_User_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Role is set, it can
// safely use t.GetRole() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Role == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) GetRole() OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union {
	if t == nil || t.Role == nil {
		return nil
	}
	return t.Role
}

// GetSshKey retrieves the value of the leaf SshKey from the OpenconfigSystem_System_Aaa_Authentication_Users_User_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SshKey is set, it can
// safely use t.GetSshKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SshKey == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) GetSshKey() string {
	if t == nil || t.SshKey == nil {
		return ""
	}
	return *t.SshKey
}

// GetUsername retrieves the value of the leaf Username from the OpenconfigSystem_System_Aaa_Authentication_Users_User_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Username is set, it can
// safely use t.GetUsername() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Username == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) GetUsername() string {
	if t == nil || t.Username == nil {
		return ""
	}
	return *t.Username
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authentication_Users_User_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authentication_Users_User_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authentication_Users_User_State.
func (*OpenconfigSystem_System_Aaa_Authentication_Users_User_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/authentication/users/user/state/role within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES, UnionString].
type OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union ensures that E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES
// implements the OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union interface.
func (E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union() {
}

// To_OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Authentication_Users_User_State) To_OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union(i interface{}) (OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Authentication_Users_User_State_Role_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Authorization represents the /openconfig-system/system/aaa/authorization YANG schema element.
type OpenconfigSystem_System_Aaa_Authorization struct {
	ΛMetadata []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_Authorization_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                 `path:"@config" ygotAnnotation:"true"`
	Events    *OpenconfigSystem_System_Aaa_Authorization_Events `path:"events" module:"openconfig-system"`
	ΛEvents   []ygot.Annotation                                 `path:"@events" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_Authorization_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                 `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authorization implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authorization) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authorization) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Authorization_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Authorization_Config{}
	return t.Config
}

// GetOrCreateEvents retrieves the value of the Events field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authorization) GetOrCreateEvents() *OpenconfigSystem_System_Aaa_Authorization_Events {
	if t.Events != nil {
		return t.Events
	}
	t.Events = &OpenconfigSystem_System_Aaa_Authorization_Events{}
	return t.Events
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authorization) GetOrCreateState() *OpenconfigSystem_System_Aaa_Authorization_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_Authorization_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_Authorization. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authorization) GetConfig() *OpenconfigSystem_System_Aaa_Authorization_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEvents returns the value of the Events struct pointer
// from OpenconfigSystem_System_Aaa_Authorization. If the receiver or the field Events is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authorization) GetEvents() *OpenconfigSystem_System_Aaa_Authorization_Events {
	if t != nil && t.Events != nil {
		return t.Events
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_Authorization. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authorization) GetState() *OpenconfigSystem_System_Aaa_Authorization_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authorization
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authorization) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Events.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authorization"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authorization) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authorization.
func (*OpenconfigSystem_System_Aaa_Authorization) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authorization_Config represents the /openconfig-system/system/aaa/authorization/config YANG schema element.
type OpenconfigSystem_System_Aaa_Authorization_Config struct {
	ΛMetadata            []ygot.Annotation                                                            `path:"@" ygotAnnotation:"true"`
	AuthorizationMethod  []OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union `path:"authorization-method" module:"openconfig-system"`
	ΛAuthorizationMethod []ygot.Annotation                                                            `path:"@authorization-method" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authorization_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authorization_Config) IsYANGGoStruct() {}

// GetAuthorizationMethod retrieves the value of the leaf AuthorizationMethod from the OpenconfigSystem_System_Aaa_Authorization_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthorizationMethod is set, it can
// safely use t.GetAuthorizationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthorizationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authorization_Config) GetAuthorizationMethod() []OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union {
	if t == nil || t.AuthorizationMethod == nil {
		return nil
	}
	return t.AuthorizationMethod
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authorization_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authorization_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authorization_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authorization_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authorization_Config.
func (*OpenconfigSystem_System_Aaa_Authorization_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/authorization/config/authorization-method within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString].
type OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union ensures that E_OpenconfigAaaTypes_AAA_METHOD_TYPE
// implements the OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union interface.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) Documentation_for_OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union() {
}

// To_OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Authorization_Config) To_OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union(i interface{}) (OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Authorization_Config_AuthorizationMethod_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Authorization_Events represents the /openconfig-system/system/aaa/authorization/events YANG schema element.
type OpenconfigSystem_System_Aaa_Authorization_Events struct {
	ΛMetadata []ygot.Annotation                                                                                             `path:"@" ygotAnnotation:"true"`
	Event     map[E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Authorization_Events_Event `path:"event" module:"openconfig-system"`
	ΛEvent    []ygot.Annotation                                                                                             `path:"@event" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authorization_Events implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authorization_Events) IsYANGGoStruct() {}

// NewEvent creates a new entry in the Event list of the
// OpenconfigSystem_System_Aaa_Authorization_Events struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) NewEvent(EventType E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE) (*OpenconfigSystem_System_Aaa_Authorization_Events_Event, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Event == nil {
		t.Event = make(map[E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Authorization_Events_Event)
	}

	key := EventType

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Event[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Event", key)
	}

	t.Event[key] = &OpenconfigSystem_System_Aaa_Authorization_Events_Event{
		EventType: EventType,
	}

	return t.Event[key], nil
}

// RenameEvent renames an entry in the list Event within
// the OpenconfigSystem_System_Aaa_Authorization_Events struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) RenameEvent(oldK, newK E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE) error {
	if _, ok := t.Event[newK]; ok {
		return fmt.Errorf("key %v already exists in Event", newK)
	}

	e, ok := t.Event[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Event", oldK)
	}
	e.EventType = newK

	t.Event[newK] = e
	delete(t.Event, oldK)
	return nil
}

// GetOrCreateEventMap returns the list (map) from OpenconfigSystem_System_Aaa_Authorization_Events.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) GetOrCreateEventMap() map[E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Authorization_Events_Event {
	if t.Event == nil {
		t.Event = make(map[E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Authorization_Events_Event)
	}
	return t.Event
}

// GetOrCreateEvent retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Aaa_Authorization_Events. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) GetOrCreateEvent(EventType E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE) *OpenconfigSystem_System_Aaa_Authorization_Events_Event {

	key := EventType

	if v, ok := t.Event[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewEvent(EventType)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateEvent got unexpected error: %v", err))
	}
	return v
}

// GetEvent retrieves the value with the specified key from
// the Event map field of OpenconfigSystem_System_Aaa_Authorization_Events. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) GetEvent(EventType E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE) *OpenconfigSystem_System_Aaa_Authorization_Events_Event {

	if t == nil {
		return nil
	}

	key := EventType

	if lm, ok := t.Event[key]; ok {
		return lm
	}
	return nil
}

// AppendEvent appends the supplied OpenconfigSystem_System_Aaa_Authorization_Events_Event struct to the
// list Event of OpenconfigSystem_System_Aaa_Authorization_Events. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Aaa_Authorization_Events_Event already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) AppendEvent(v *OpenconfigSystem_System_Aaa_Authorization_Events_Event) error {
	key := v.EventType

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Event == nil {
		t.Event = make(map[E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE]*OpenconfigSystem_System_Aaa_Authorization_Events_Event)
	}

	if _, ok := t.Event[key]; ok {
		return fmt.Errorf("duplicate key for list Event %v", key)
	}

	t.Event[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authorization_Events
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Event {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authorization_Events"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authorization_Events.
func (*OpenconfigSystem_System_Aaa_Authorization_Events) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authorization_Events_Event represents the /openconfig-system/system/aaa/authorization/events/event YANG schema element.
type OpenconfigSystem_System_Aaa_Authorization_Events_Event struct {
	ΛMetadata  []ygot.Annotation                                              `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config `path:"config" module:"openconfig-system"`
	ΛConfig    []ygot.Annotation                                              `path:"@config" ygotAnnotation:"true"`
	EventType  E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE              `path:"event-type" module:"openconfig-system"`
	ΛEventType []ygot.Annotation                                              `path:"@event-type" ygotAnnotation:"true"`
	State      *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State  `path:"state" module:"openconfig-system"`
	ΛState     []ygot.Annotation                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authorization_Events_Event implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authorization_Events_Event) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) GetOrCreateState() *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_Authorization_Events_Event_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_Authorization_Events_Event. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) GetConfig() *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_Authorization_Events_Event. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) GetState() *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetEventType retrieves the value of the leaf EventType from the OpenconfigSystem_System_Aaa_Authorization_Events_Event
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EventType is set, it can
// safely use t.GetEventType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EventType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) GetEventType() E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE {
	if t == nil || t.EventType == 0 {
		return 0
	}
	return t.EventType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authorization_Events_Event
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Aaa_Authorization_Events_Event struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"event-type": t.EventType,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authorization_Events_Event"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authorization_Events_Event.
func (*OpenconfigSystem_System_Aaa_Authorization_Events_Event) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config represents the /openconfig-system/system/aaa/authorization/events/event/config YANG schema element.
type OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config struct {
	ΛMetadata  []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	EventType  E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE `path:"event-type" module:"openconfig-system"`
	ΛEventType []ygot.Annotation                                 `path:"@event-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config) IsYANGGoStruct() {}

// GetEventType retrieves the value of the leaf EventType from the OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EventType is set, it can
// safely use t.GetEventType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EventType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config) GetEventType() E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE {
	if t == nil || t.EventType == 0 {
		return 0
	}
	return t.EventType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config.
func (*OpenconfigSystem_System_Aaa_Authorization_Events_Event_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authorization_Events_Event_State represents the /openconfig-system/system/aaa/authorization/events/event/state YANG schema element.
type OpenconfigSystem_System_Aaa_Authorization_Events_Event_State struct {
	ΛMetadata  []ygot.Annotation                                 `path:"@" ygotAnnotation:"true"`
	EventType  E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE `path:"event-type" module:"openconfig-system"`
	ΛEventType []ygot.Annotation                                 `path:"@event-type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authorization_Events_Event_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authorization_Events_Event_State) IsYANGGoStruct() {}

// GetEventType retrieves the value of the leaf EventType from the OpenconfigSystem_System_Aaa_Authorization_Events_Event_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EventType is set, it can
// safely use t.GetEventType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EventType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State) GetEventType() E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE {
	if t == nil || t.EventType == 0 {
		return 0
	}
	return t.EventType
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authorization_Events_Event_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authorization_Events_Event_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authorization_Events_Event_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authorization_Events_Event_State.
func (*OpenconfigSystem_System_Aaa_Authorization_Events_Event_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authorization_State represents the /openconfig-system/system/aaa/authorization/state YANG schema element.
type OpenconfigSystem_System_Aaa_Authorization_State struct {
	ΛMetadata            []ygot.Annotation                                                           `path:"@" ygotAnnotation:"true"`
	AuthorizationMethod  []OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union `path:"authorization-method" module:"openconfig-system"`
	ΛAuthorizationMethod []ygot.Annotation                                                           `path:"@authorization-method" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Authorization_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Authorization_State) IsYANGGoStruct() {}

// GetAuthorizationMethod retrieves the value of the leaf AuthorizationMethod from the OpenconfigSystem_System_Aaa_Authorization_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthorizationMethod is set, it can
// safely use t.GetAuthorizationMethod() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthorizationMethod == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_Authorization_State) GetAuthorizationMethod() []OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union {
	if t == nil || t.AuthorizationMethod == nil {
		return nil
	}
	return t.AuthorizationMethod
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Authorization_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Authorization_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Authorization_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Authorization_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Authorization_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Authorization_State.
func (*OpenconfigSystem_System_Aaa_Authorization_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/aaa/authorization/state/authorization-method within the YANG schema.
// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString].
type OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union interface {
	// Union type can be one of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, UnionString]
	Documentation_for_OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union()
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union ensures that E_OpenconfigAaaTypes_AAA_METHOD_TYPE
// implements the OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union interface.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) Documentation_for_OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union() {
}

// Documentation_for_OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union ensures that UnionString
// implements the OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union() {
}

// To_OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Aaa_Authorization_State) To_OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union(i interface{}) (OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Aaa_Authorization_State_AuthorizationMethod_Union, unknown union type, got: %T, want any of [E_OpenconfigAaaTypes_AAA_METHOD_TYPE, string]", i, i)
}

// OpenconfigSystem_System_Aaa_Config represents the /openconfig-system/system/aaa/config YANG schema element.
type OpenconfigSystem_System_Aaa_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_Config.
func (*OpenconfigSystem_System_Aaa_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups represents the /openconfig-system/system/aaa/server-groups YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups struct {
	ΛMetadata    []ygot.Annotation                                                `path:"@" ygotAnnotation:"true"`
	ServerGroup  map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup `path:"server-group" module:"openconfig-system"`
	ΛServerGroup []ygot.Annotation                                                `path:"@server-group" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups) IsYANGGoStruct() {}

// NewServerGroup creates a new entry in the ServerGroup list of the
// OpenconfigSystem_System_Aaa_ServerGroups struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) NewServerGroup(Name string) (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ServerGroup == nil {
		t.ServerGroup = make(map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ServerGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ServerGroup", key)
	}

	t.ServerGroup[key] = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup{
		Name: &Name,
	}

	return t.ServerGroup[key], nil
}

// RenameServerGroup renames an entry in the list ServerGroup within
// the OpenconfigSystem_System_Aaa_ServerGroups struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) RenameServerGroup(oldK, newK string) error {
	if _, ok := t.ServerGroup[newK]; ok {
		return fmt.Errorf("key %v already exists in ServerGroup", newK)
	}

	e, ok := t.ServerGroup[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in ServerGroup", oldK)
	}
	e.Name = &newK

	t.ServerGroup[newK] = e
	delete(t.ServerGroup, oldK)
	return nil
}

// GetOrCreateServerGroupMap returns the list (map) from OpenconfigSystem_System_Aaa_ServerGroups.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) GetOrCreateServerGroupMap() map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup {
	if t.ServerGroup == nil {
		t.ServerGroup = make(map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup)
	}
	return t.ServerGroup
}

// GetOrCreateServerGroup retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Aaa_ServerGroups. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) GetOrCreateServerGroup(Name string) *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup {

	key := Name

	if v, ok := t.ServerGroup[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewServerGroup(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateServerGroup got unexpected error: %v", err))
	}
	return v
}

// GetServerGroup retrieves the value with the specified key from
// the ServerGroup map field of OpenconfigSystem_System_Aaa_ServerGroups. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) GetServerGroup(Name string) *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.ServerGroup[key]; ok {
		return lm
	}
	return nil
}

// AppendServerGroup appends the supplied OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup struct to the
// list ServerGroup of OpenconfigSystem_System_Aaa_ServerGroups. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) AppendServerGroup(v *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ServerGroup == nil {
		t.ServerGroup = make(map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup)
	}

	if _, ok := t.ServerGroup[key]; ok {
		return fmt.Errorf("duplicate key for list ServerGroup %v", key)
	}

	t.ServerGroup[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.ServerGroup {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups.
func (*OpenconfigSystem_System_Aaa_ServerGroups) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup represents the /openconfig-system/system/aaa/server-groups/server-group YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup struct {
	ΛMetadata []ygot.Annotation                                             `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config  `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                             `path:"@config" ygotAnnotation:"true"`
	Name      *string                                                       `path:"name" module:"openconfig-system"`
	ΛName     []ygot.Annotation                                             `path:"@name" ygotAnnotation:"true"`
	Servers   *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers `path:"servers" module:"openconfig-system"`
	ΛServers  []ygot.Annotation                                             `path:"@servers" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State   `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                             `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config{}
	return t.Config
}

// GetOrCreateServers retrieves the value of the Servers field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) GetOrCreateServers() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers {
	if t.Servers != nil {
		return t.Servers
	}
	t.Servers = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers{}
	return t.Servers
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) GetOrCreateState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) GetConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetServers returns the value of the Servers struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup. If the receiver or the field Servers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) GetServers() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers {
	if t != nil && t.Servers != nil {
		return t.Servers
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) GetState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Servers.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config represents the /openconfig-system/system/aaa/server-groups/server-group/config YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config struct {
	ΛMetadata []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	Name      *string                              `path:"name" module:"openconfig-system"`
	ΛName     []ygot.Annotation                    `path:"@name" ygotAnnotation:"true"`
	Type      E_OpenconfigAaaTypes_AAA_SERVER_TYPE `path:"type" module:"openconfig-system"`
	ΛType     []ygot.Annotation                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetType retrieves the value of the leaf Type from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) GetType() E_OpenconfigAaaTypes_AAA_SERVER_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers represents the /openconfig-system/system/aaa/server-groups/server-group/servers YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers struct {
	ΛMetadata []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	Server    map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server `path:"server" module:"openconfig-system"`
	ΛServer   []ygot.Annotation                                                               `path:"@server" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) IsYANGGoStruct() {}

// NewServer creates a new entry in the Server list of the
// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) NewServer(Address string) (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Server == nil {
		t.Server = make(map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server)
	}

	key := Address

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Server[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Server", key)
	}

	t.Server[key] = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server{
		Address: &Address,
	}

	return t.Server[key], nil
}

// RenameServer renames an entry in the list Server within
// the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) RenameServer(oldK, newK string) error {
	if _, ok := t.Server[newK]; ok {
		return fmt.Errorf("key %v already exists in Server", newK)
	}

	e, ok := t.Server[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Server", oldK)
	}
	e.Address = &newK

	t.Server[newK] = e
	delete(t.Server, oldK)
	return nil
}

// GetOrCreateServerMap returns the list (map) from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) GetOrCreateServerMap() map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server {
	if t.Server == nil {
		t.Server = make(map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server)
	}
	return t.Server
}

// GetOrCreateServer retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) GetOrCreateServer(Address string) *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server {

	key := Address

	if v, ok := t.Server[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewServer(Address)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateServer got unexpected error: %v", err))
	}
	return v
}

// GetServer retrieves the value with the specified key from
// the Server map field of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) GetServer(Address string) *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server {

	if t == nil {
		return nil
	}

	key := Address

	if lm, ok := t.Server[key]; ok {
		return lm
	}
	return nil
}

// AppendServer appends the supplied OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server struct to the
// list Server of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) AppendServer(v *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) error {
	if v.Address == nil {
		return fmt.Errorf("invalid nil key received for Address")
	}

	key := *v.Address

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Server == nil {
		t.Server = make(map[string]*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server)
	}

	if _, ok := t.Server[key]; ok {
		return fmt.Errorf("duplicate key for list Server %v", key)
	}

	t.Server[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Server {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server struct {
	ΛMetadata []ygot.Annotation                                                           `path:"@" ygotAnnotation:"true"`
	Address   *string                                                                     `path:"address" module:"openconfig-system"`
	ΛAddress  []ygot.Annotation                                                           `path:"@address" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                                           `path:"@config" ygotAnnotation:"true"`
	Radius    *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius `path:"radius" module:"openconfig-system"`
	ΛRadius   []ygot.Annotation                                                           `path:"@radius" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                                           `path:"@state" ygotAnnotation:"true"`
	Tacacs    *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs `path:"tacacs" module:"openconfig-system"`
	ΛTacacs   []ygot.Annotation                                                           `path:"@tacacs" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config{}
	return t.Config
}

// GetOrCreateRadius retrieves the value of the Radius field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetOrCreateRadius() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius {
	if t.Radius != nil {
		return t.Radius
	}
	t.Radius = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius{}
	return t.Radius
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetOrCreateState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State{}
	return t.State
}

// GetOrCreateTacacs retrieves the value of the Tacacs field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetOrCreateTacacs() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs {
	if t.Tacacs != nil {
		return t.Tacacs
	}
	t.Tacacs = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs{}
	return t.Tacacs
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetRadius returns the value of the Radius struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server. If the receiver or the field Radius is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetRadius() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius {
	if t != nil && t.Radius != nil {
		return t.Radius
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetTacacs returns the value of the Tacacs struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server. If the receiver or the field Tacacs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetTacacs() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs {
	if t != nil && t.Tacacs != nil {
		return t.Tacacs
	}
	return nil
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Radius.PopulateDefaults()
	t.State.PopulateDefaults()
	t.Tacacs.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Address == nil {
		return nil, fmt.Errorf("nil value for key Address")
	}

	return map[string]interface{}{
		"address": *t.Address,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/config YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   *string           `path:"address" module:"openconfig-system"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	Name      *string           `path:"name" module:"openconfig-system"`
	ΛName     []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Timeout   *uint16           `path:"timeout" module:"openconfig-system"`
	ΛTimeout  []ygot.Annotation `path:"@timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) IsYANGGoStruct() {}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) GetTimeout() uint16 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/radius YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius struct {
	ΛMetadata []ygot.Annotation                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) GetOrCreateState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) GetConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) GetState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/radius/config YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AcctPort            *uint16           `path:"acct-port" module:"openconfig-system"`
	ΛAcctPort           []ygot.Annotation `path:"@acct-port" ygotAnnotation:"true"`
	AuthPort            *uint16           `path:"auth-port" module:"openconfig-system"`
	ΛAuthPort           []ygot.Annotation `path:"@auth-port" ygotAnnotation:"true"`
	RetransmitAttempts  *uint8            `path:"retransmit-attempts" module:"openconfig-system"`
	ΛRetransmitAttempts []ygot.Annotation `path:"@retransmit-attempts" ygotAnnotation:"true"`
	SecretKey           *string           `path:"secret-key" module:"openconfig-system"`
	ΛSecretKey          []ygot.Annotation `path:"@secret-key" ygotAnnotation:"true"`
	SecretKeyHashed     *string           `path:"secret-key-hashed" module:"openconfig-system"`
	ΛSecretKeyHashed    []ygot.Annotation `path:"@secret-key-hashed" ygotAnnotation:"true"`
	SourceAddress       *string           `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress      []ygot.Annotation `path:"@source-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) IsYANGGoStruct() {
}

// GetAcctPort retrieves the value of the leaf AcctPort from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AcctPort is set, it can
// safely use t.GetAcctPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AcctPort == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) GetAcctPort() uint16 {
	if t == nil || t.AcctPort == nil {
		return 1813
	}
	return *t.AcctPort
}

// GetAuthPort retrieves the value of the leaf AuthPort from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPort is set, it can
// safely use t.GetAuthPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPort == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) GetAuthPort() uint16 {
	if t == nil || t.AuthPort == nil {
		return 1812
	}
	return *t.AuthPort
}

// GetRetransmitAttempts retrieves the value of the leaf RetransmitAttempts from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetransmitAttempts is set, it can
// safely use t.GetRetransmitAttempts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetransmitAttempts == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) GetRetransmitAttempts() uint8 {
	if t == nil || t.RetransmitAttempts == nil {
		return 0
	}
	return *t.RetransmitAttempts
}

// GetSecretKey retrieves the value of the leaf SecretKey from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKey is set, it can
// safely use t.GetSecretKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKey == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) GetSecretKey() string {
	if t == nil || t.SecretKey == nil {
		return ""
	}
	return *t.SecretKey
}

// GetSecretKeyHashed retrieves the value of the leaf SecretKeyHashed from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKeyHashed is set, it can
// safely use t.GetSecretKeyHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKeyHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) GetSecretKeyHashed() string {
	if t == nil || t.SecretKeyHashed == nil {
		return ""
	}
	return *t.SecretKeyHashed
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AcctPort == nil {
		var v uint16 = 1813
		t.AcctPort = &v
	}
	if t.AuthPort == nil {
		var v uint16 = 1812
		t.AuthPort = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/radius/state YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State struct {
	ΛMetadata           []ygot.Annotation                                                                          `path:"@" ygotAnnotation:"true"`
	AcctPort            *uint16                                                                                    `path:"acct-port" module:"openconfig-system"`
	ΛAcctPort           []ygot.Annotation                                                                          `path:"@acct-port" ygotAnnotation:"true"`
	AuthPort            *uint16                                                                                    `path:"auth-port" module:"openconfig-system"`
	ΛAuthPort           []ygot.Annotation                                                                          `path:"@auth-port" ygotAnnotation:"true"`
	Counters            *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters `path:"counters" module:"openconfig-system"`
	ΛCounters           []ygot.Annotation                                                                          `path:"@counters" ygotAnnotation:"true"`
	RetransmitAttempts  *uint8                                                                                     `path:"retransmit-attempts" module:"openconfig-system"`
	ΛRetransmitAttempts []ygot.Annotation                                                                          `path:"@retransmit-attempts" ygotAnnotation:"true"`
	SecretKey           *string                                                                                    `path:"secret-key" module:"openconfig-system"`
	ΛSecretKey          []ygot.Annotation                                                                          `path:"@secret-key" ygotAnnotation:"true"`
	SecretKeyHashed     *string                                                                                    `path:"secret-key-hashed" module:"openconfig-system"`
	ΛSecretKeyHashed    []ygot.Annotation                                                                          `path:"@secret-key-hashed" ygotAnnotation:"true"`
	SourceAddress       *string                                                                                    `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress      []ygot.Annotation                                                                          `path:"@source-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetOrCreateCounters() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetCounters() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetAcctPort retrieves the value of the leaf AcctPort from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AcctPort is set, it can
// safely use t.GetAcctPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AcctPort == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetAcctPort() uint16 {
	if t == nil || t.AcctPort == nil {
		return 1813
	}
	return *t.AcctPort
}

// GetAuthPort retrieves the value of the leaf AuthPort from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthPort is set, it can
// safely use t.GetAuthPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthPort == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetAuthPort() uint16 {
	if t == nil || t.AuthPort == nil {
		return 1812
	}
	return *t.AuthPort
}

// GetRetransmitAttempts retrieves the value of the leaf RetransmitAttempts from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetransmitAttempts is set, it can
// safely use t.GetRetransmitAttempts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetransmitAttempts == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetRetransmitAttempts() uint8 {
	if t == nil || t.RetransmitAttempts == nil {
		return 0
	}
	return *t.RetransmitAttempts
}

// GetSecretKey retrieves the value of the leaf SecretKey from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKey is set, it can
// safely use t.GetSecretKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKey == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetSecretKey() string {
	if t == nil || t.SecretKey == nil {
		return ""
	}
	return *t.SecretKey
}

// GetSecretKeyHashed retrieves the value of the leaf SecretKeyHashed from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKeyHashed is set, it can
// safely use t.GetSecretKeyHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKeyHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetSecretKeyHashed() string {
	if t == nil || t.SecretKeyHashed == nil {
		return ""
	}
	return *t.SecretKeyHashed
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AcctPort == nil {
		var v uint16 = 1813
		t.AcctPort = &v
	}
	if t.AuthPort == nil {
		var v uint16 = 1812
		t.AuthPort = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/radius/state/counters YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters struct {
	ΛMetadata              []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AccessAccepts          *uint64           `path:"access-accepts" module:"openconfig-system"`
	ΛAccessAccepts         []ygot.Annotation `path:"@access-accepts" ygotAnnotation:"true"`
	AccessRejects          *uint64           `path:"access-rejects" module:"openconfig-system"`
	ΛAccessRejects         []ygot.Annotation `path:"@access-rejects" ygotAnnotation:"true"`
	RetriedAccessRequests  *uint64           `path:"retried-access-requests" module:"openconfig-system"`
	ΛRetriedAccessRequests []ygot.Annotation `path:"@retried-access-requests" ygotAnnotation:"true"`
	TimeoutAccessRequests  *uint64           `path:"timeout-access-requests" module:"openconfig-system"`
	ΛTimeoutAccessRequests []ygot.Annotation `path:"@timeout-access-requests" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) IsYANGGoStruct() {
}

// GetAccessAccepts retrieves the value of the leaf AccessAccepts from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccessAccepts is set, it can
// safely use t.GetAccessAccepts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccessAccepts == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) GetAccessAccepts() uint64 {
	if t == nil || t.AccessAccepts == nil {
		return 0
	}
	return *t.AccessAccepts
}

// GetAccessRejects retrieves the value of the leaf AccessRejects from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AccessRejects is set, it can
// safely use t.GetAccessRejects() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AccessRejects == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) GetAccessRejects() uint64 {
	if t == nil || t.AccessRejects == nil {
		return 0
	}
	return *t.AccessRejects
}

// GetRetriedAccessRequests retrieves the value of the leaf RetriedAccessRequests from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RetriedAccessRequests is set, it can
// safely use t.GetRetriedAccessRequests() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RetriedAccessRequests == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) GetRetriedAccessRequests() uint64 {
	if t == nil || t.RetriedAccessRequests == nil {
		return 0
	}
	return *t.RetriedAccessRequests
}

// GetTimeoutAccessRequests retrieves the value of the leaf TimeoutAccessRequests from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TimeoutAccessRequests is set, it can
// safely use t.GetTimeoutAccessRequests() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TimeoutAccessRequests == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) GetTimeoutAccessRequests() uint64 {
	if t == nil || t.TimeoutAccessRequests == nil {
		return 0
	}
	return *t.TimeoutAccessRequests
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Radius_State_Counters) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/state YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State struct {
	ΛMetadata           []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address             *string           `path:"address" module:"openconfig-system"`
	ΛAddress            []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	ConnectionAborts    *uint64           `path:"connection-aborts" module:"openconfig-system"`
	ΛConnectionAborts   []ygot.Annotation `path:"@connection-aborts" ygotAnnotation:"true"`
	ConnectionCloses    *uint64           `path:"connection-closes" module:"openconfig-system"`
	ΛConnectionCloses   []ygot.Annotation `path:"@connection-closes" ygotAnnotation:"true"`
	ConnectionFailures  *uint64           `path:"connection-failures" module:"openconfig-system"`
	ΛConnectionFailures []ygot.Annotation `path:"@connection-failures" ygotAnnotation:"true"`
	ConnectionOpens     *uint64           `path:"connection-opens" module:"openconfig-system"`
	ΛConnectionOpens    []ygot.Annotation `path:"@connection-opens" ygotAnnotation:"true"`
	ConnectionTimeouts  *uint64           `path:"connection-timeouts" module:"openconfig-system"`
	ΛConnectionTimeouts []ygot.Annotation `path:"@connection-timeouts" ygotAnnotation:"true"`
	ErrorsReceived      *uint64           `path:"errors-received" module:"openconfig-system"`
	ΛErrorsReceived     []ygot.Annotation `path:"@errors-received" ygotAnnotation:"true"`
	MessagesReceived    *uint64           `path:"messages-received" module:"openconfig-system"`
	ΛMessagesReceived   []ygot.Annotation `path:"@messages-received" ygotAnnotation:"true"`
	MessagesSent        *uint64           `path:"messages-sent" module:"openconfig-system"`
	ΛMessagesSent       []ygot.Annotation `path:"@messages-sent" ygotAnnotation:"true"`
	Name                *string           `path:"name" module:"openconfig-system"`
	ΛName               []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Timeout             *uint16           `path:"timeout" module:"openconfig-system"`
	ΛTimeout            []ygot.Annotation `path:"@timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) IsYANGGoStruct() {}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetConnectionAborts retrieves the value of the leaf ConnectionAborts from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionAborts is set, it can
// safely use t.GetConnectionAborts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionAborts == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetConnectionAborts() uint64 {
	if t == nil || t.ConnectionAborts == nil {
		return 0
	}
	return *t.ConnectionAborts
}

// GetConnectionCloses retrieves the value of the leaf ConnectionCloses from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionCloses is set, it can
// safely use t.GetConnectionCloses() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionCloses == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetConnectionCloses() uint64 {
	if t == nil || t.ConnectionCloses == nil {
		return 0
	}
	return *t.ConnectionCloses
}

// GetConnectionFailures retrieves the value of the leaf ConnectionFailures from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionFailures is set, it can
// safely use t.GetConnectionFailures() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionFailures == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetConnectionFailures() uint64 {
	if t == nil || t.ConnectionFailures == nil {
		return 0
	}
	return *t.ConnectionFailures
}

// GetConnectionOpens retrieves the value of the leaf ConnectionOpens from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionOpens is set, it can
// safely use t.GetConnectionOpens() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionOpens == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetConnectionOpens() uint64 {
	if t == nil || t.ConnectionOpens == nil {
		return 0
	}
	return *t.ConnectionOpens
}

// GetConnectionTimeouts retrieves the value of the leaf ConnectionTimeouts from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ConnectionTimeouts is set, it can
// safely use t.GetConnectionTimeouts() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ConnectionTimeouts == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetConnectionTimeouts() uint64 {
	if t == nil || t.ConnectionTimeouts == nil {
		return 0
	}
	return *t.ConnectionTimeouts
}

// GetErrorsReceived retrieves the value of the leaf ErrorsReceived from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ErrorsReceived is set, it can
// safely use t.GetErrorsReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ErrorsReceived == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetErrorsReceived() uint64 {
	if t == nil || t.ErrorsReceived == nil {
		return 0
	}
	return *t.ErrorsReceived
}

// GetMessagesReceived retrieves the value of the leaf MessagesReceived from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MessagesReceived is set, it can
// safely use t.GetMessagesReceived() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MessagesReceived == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetMessagesReceived() uint64 {
	if t == nil || t.MessagesReceived == nil {
		return 0
	}
	return *t.MessagesReceived
}

// GetMessagesSent retrieves the value of the leaf MessagesSent from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MessagesSent is set, it can
// safely use t.GetMessagesSent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MessagesSent == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetMessagesSent() uint64 {
	if t == nil || t.MessagesSent == nil {
		return 0
	}
	return *t.MessagesSent
}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) GetTimeout() uint16 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/tacacs YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs struct {
	ΛMetadata []ygot.Annotation                                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) GetOrCreateConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) GetOrCreateState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) GetConfig() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) GetState() *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/tacacs/config YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Port             *uint16           `path:"port" module:"openconfig-system"`
	ΛPort            []ygot.Annotation `path:"@port" ygotAnnotation:"true"`
	SecretKey        *string           `path:"secret-key" module:"openconfig-system"`
	ΛSecretKey       []ygot.Annotation `path:"@secret-key" ygotAnnotation:"true"`
	SecretKeyHashed  *string           `path:"secret-key-hashed" module:"openconfig-system"`
	ΛSecretKeyHashed []ygot.Annotation `path:"@secret-key-hashed" ygotAnnotation:"true"`
	SourceAddress    *string           `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress   []ygot.Annotation `path:"@source-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) IsYANGGoStruct() {
}

// GetPort retrieves the value of the leaf Port from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 49
	}
	return *t.Port
}

// GetSecretKey retrieves the value of the leaf SecretKey from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKey is set, it can
// safely use t.GetSecretKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKey == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) GetSecretKey() string {
	if t == nil || t.SecretKey == nil {
		return ""
	}
	return *t.SecretKey
}

// GetSecretKeyHashed retrieves the value of the leaf SecretKeyHashed from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKeyHashed is set, it can
// safely use t.GetSecretKeyHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKeyHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) GetSecretKeyHashed() string {
	if t == nil || t.SecretKeyHashed == nil {
		return ""
	}
	return *t.SecretKeyHashed
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Port == nil {
		var v uint16 = 49
		t.Port = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State represents the /openconfig-system/system/aaa/server-groups/server-group/servers/server/tacacs/state YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Port             *uint16           `path:"port" module:"openconfig-system"`
	ΛPort            []ygot.Annotation `path:"@port" ygotAnnotation:"true"`
	SecretKey        *string           `path:"secret-key" module:"openconfig-system"`
	ΛSecretKey       []ygot.Annotation `path:"@secret-key" ygotAnnotation:"true"`
	SecretKeyHashed  *string           `path:"secret-key-hashed" module:"openconfig-system"`
	ΛSecretKeyHashed []ygot.Annotation `path:"@secret-key-hashed" ygotAnnotation:"true"`
	SourceAddress    *string           `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress   []ygot.Annotation `path:"@source-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) IsYANGGoStruct() {
}

// GetPort retrieves the value of the leaf Port from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 49
	}
	return *t.Port
}

// GetSecretKey retrieves the value of the leaf SecretKey from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKey is set, it can
// safely use t.GetSecretKey() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKey == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) GetSecretKey() string {
	if t == nil || t.SecretKey == nil {
		return ""
	}
	return *t.SecretKey
}

// GetSecretKeyHashed retrieves the value of the leaf SecretKeyHashed from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SecretKeyHashed is set, it can
// safely use t.GetSecretKeyHashed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SecretKeyHashed == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) GetSecretKeyHashed() string {
	if t == nil || t.SecretKeyHashed == nil {
		return ""
	}
	return *t.SecretKeyHashed
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Port == nil {
		var v uint16 = 49
		t.Port = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_Servers_Server_Tacacs_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State represents the /openconfig-system/system/aaa/server-groups/server-group/state YANG schema element.
type OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State struct {
	ΛMetadata []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	Name      *string                              `path:"name" module:"openconfig-system"`
	ΛName     []ygot.Annotation                    `path:"@name" ygotAnnotation:"true"`
	Type      E_OpenconfigAaaTypes_AAA_SERVER_TYPE `path:"type" module:"openconfig-system"`
	ΛType     []ygot.Annotation                    `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) IsYANGGoStruct() {}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetType retrieves the value of the leaf Type from the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) GetType() E_OpenconfigAaaTypes_AAA_SERVER_TYPE {
	if t == nil || t.Type == 0 {
		return 0
	}
	return t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State.
func (*OpenconfigSystem_System_Aaa_ServerGroups_ServerGroup_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Aaa_State represents the /openconfig-system/system/aaa/state YANG schema element.
type OpenconfigSystem_System_Aaa_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Aaa_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Aaa_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Aaa_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Aaa_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Aaa_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Aaa_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Aaa_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Aaa_State.
func (*OpenconfigSystem_System_Aaa_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Alarms represents the /openconfig-system/system/alarms YANG schema element.
type OpenconfigSystem_System_Alarms struct {
	ΛMetadata []ygot.Annotation                                `path:"@" ygotAnnotation:"true"`
	Alarm     map[string]*OpenconfigSystem_System_Alarms_Alarm `path:"alarm" module:"openconfig-system"`
	ΛAlarm    []ygot.Annotation                                `path:"@alarm" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Alarms implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Alarms) IsYANGGoStruct() {}

// NewAlarm creates a new entry in the Alarm list of the
// OpenconfigSystem_System_Alarms struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Alarms) NewAlarm(Id string) (*OpenconfigSystem_System_Alarms_Alarm, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Alarm == nil {
		t.Alarm = make(map[string]*OpenconfigSystem_System_Alarms_Alarm)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Alarm[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Alarm", key)
	}

	t.Alarm[key] = &OpenconfigSystem_System_Alarms_Alarm{
		Id: &Id,
	}

	return t.Alarm[key], nil
}

// RenameAlarm renames an entry in the list Alarm within
// the OpenconfigSystem_System_Alarms struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Alarms) RenameAlarm(oldK, newK string) error {
	if _, ok := t.Alarm[newK]; ok {
		return fmt.Errorf("key %v already exists in Alarm", newK)
	}

	e, ok := t.Alarm[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Alarm", oldK)
	}
	e.Id = &newK

	t.Alarm[newK] = e
	delete(t.Alarm, oldK)
	return nil
}

// GetOrCreateAlarmMap returns the list (map) from OpenconfigSystem_System_Alarms.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Alarms) GetOrCreateAlarmMap() map[string]*OpenconfigSystem_System_Alarms_Alarm {
	if t.Alarm == nil {
		t.Alarm = make(map[string]*OpenconfigSystem_System_Alarms_Alarm)
	}
	return t.Alarm
}

// GetOrCreateAlarm retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Alarms. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Alarms) GetOrCreateAlarm(Id string) *OpenconfigSystem_System_Alarms_Alarm {

	key := Id

	if v, ok := t.Alarm[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAlarm(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAlarm got unexpected error: %v", err))
	}
	return v
}

// GetAlarm retrieves the value with the specified key from
// the Alarm map field of OpenconfigSystem_System_Alarms. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Alarms) GetAlarm(Id string) *OpenconfigSystem_System_Alarms_Alarm {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Alarm[key]; ok {
		return lm
	}
	return nil
}

// AppendAlarm appends the supplied OpenconfigSystem_System_Alarms_Alarm struct to the
// list Alarm of OpenconfigSystem_System_Alarms. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Alarms_Alarm already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Alarms) AppendAlarm(v *OpenconfigSystem_System_Alarms_Alarm) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Alarm == nil {
		t.Alarm = make(map[string]*OpenconfigSystem_System_Alarms_Alarm)
	}

	if _, ok := t.Alarm[key]; ok {
		return fmt.Errorf("duplicate key for list Alarm %v", key)
	}

	t.Alarm[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Alarms
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Alarms) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Alarm {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Alarms"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Alarms) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Alarms.
func (*OpenconfigSystem_System_Alarms) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Alarms_Alarm represents the /openconfig-system/system/alarms/alarm YANG schema element.
type OpenconfigSystem_System_Alarms_Alarm struct {
	ΛMetadata []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Alarms_Alarm_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                            `path:"@config" ygotAnnotation:"true"`
	Id        *string                                      `path:"id" module:"openconfig-system"`
	ΛId       []ygot.Annotation                            `path:"@id" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Alarms_Alarm_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Alarms_Alarm implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Alarms_Alarm) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Alarms_Alarm) GetOrCreateConfig() *OpenconfigSystem_System_Alarms_Alarm_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Alarms_Alarm_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Alarms_Alarm) GetOrCreateState() *OpenconfigSystem_System_Alarms_Alarm_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Alarms_Alarm_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Alarms_Alarm. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Alarms_Alarm) GetConfig() *OpenconfigSystem_System_Alarms_Alarm_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Alarms_Alarm. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Alarms_Alarm) GetState() *OpenconfigSystem_System_Alarms_Alarm_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigSystem_System_Alarms_Alarm
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Alarms_Alarm) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Alarms_Alarm
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Alarms_Alarm) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Alarms_Alarm struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Alarms_Alarm) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms_Alarm) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Alarms_Alarm"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms_Alarm) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Alarms_Alarm) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Alarms_Alarm.
func (*OpenconfigSystem_System_Alarms_Alarm) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Alarms_Alarm_Config represents the /openconfig-system/system/alarms/alarm/config YANG schema element.
type OpenconfigSystem_System_Alarms_Alarm_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Alarms_Alarm_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Alarms_Alarm_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Alarms_Alarm_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Alarms_Alarm_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms_Alarm_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Alarms_Alarm_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms_Alarm_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Alarms_Alarm_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Alarms_Alarm_Config.
func (*OpenconfigSystem_System_Alarms_Alarm_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Alarms_Alarm_State represents the /openconfig-system/system/alarms/alarm/state YANG schema element.
type OpenconfigSystem_System_Alarms_Alarm_State struct {
	ΛMetadata    []ygot.Annotation                                       `path:"@" ygotAnnotation:"true"`
	Id           *string                                                 `path:"id" module:"openconfig-system"`
	ΛId          []ygot.Annotation                                       `path:"@id" ygotAnnotation:"true"`
	Resource     *string                                                 `path:"resource" module:"openconfig-system"`
	ΛResource    []ygot.Annotation                                       `path:"@resource" ygotAnnotation:"true"`
	Severity     E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY        `path:"severity" module:"openconfig-system"`
	ΛSeverity    []ygot.Annotation                                       `path:"@severity" ygotAnnotation:"true"`
	Text         *string                                                 `path:"text" module:"openconfig-system"`
	ΛText        []ygot.Annotation                                       `path:"@text" ygotAnnotation:"true"`
	TimeCreated  *uint64                                                 `path:"time-created" module:"openconfig-system"`
	ΛTimeCreated []ygot.Annotation                                       `path:"@time-created" ygotAnnotation:"true"`
	TypeId       OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union `path:"type-id" module:"openconfig-system"`
	ΛTypeId      []ygot.Annotation                                       `path:"@type-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Alarms_Alarm_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Alarms_Alarm_State) IsYANGGoStruct() {}

// GetId retrieves the value of the leaf Id from the OpenconfigSystem_System_Alarms_Alarm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetResource retrieves the value of the leaf Resource from the OpenconfigSystem_System_Alarms_Alarm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Resource is set, it can
// safely use t.GetResource() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Resource == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) GetResource() string {
	if t == nil || t.Resource == nil {
		return ""
	}
	return *t.Resource
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Alarms_Alarm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) GetSeverity() E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// GetText retrieves the value of the leaf Text from the OpenconfigSystem_System_Alarms_Alarm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Text is set, it can
// safely use t.GetText() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Text == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) GetText() string {
	if t == nil || t.Text == nil {
		return ""
	}
	return *t.Text
}

// GetTimeCreated retrieves the value of the leaf TimeCreated from the OpenconfigSystem_System_Alarms_Alarm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TimeCreated is set, it can
// safely use t.GetTimeCreated() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TimeCreated == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) GetTimeCreated() uint64 {
	if t == nil || t.TimeCreated == nil {
		return 0
	}
	return *t.TimeCreated
}

// GetTypeId retrieves the value of the leaf TypeId from the OpenconfigSystem_System_Alarms_Alarm_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TypeId is set, it can
// safely use t.GetTypeId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TypeId == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) GetTypeId() OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union {
	if t == nil || t.TypeId == nil {
		return nil
	}
	return t.TypeId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Alarms_Alarm_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Alarms_Alarm_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Alarms_Alarm_State.
func (*OpenconfigSystem_System_Alarms_Alarm_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/alarms/alarm/state/type-id within the YANG schema.
// Union type can be one of [E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID, UnionString].
type OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union interface {
	// Union type can be one of [E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID, UnionString]
	Documentation_for_OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union()
}

// Documentation_for_OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union ensures that E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID
// implements the OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union interface.
func (E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID) Documentation_for_OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union() {
}

// Documentation_for_OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union ensures that UnionString
// implements the OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union() {}

// To_OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Alarms_Alarm_State) To_OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union(i interface{}) (OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Alarms_Alarm_State_TypeId_Union, unknown union type, got: %T, want any of [E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID, string]", i, i)
}

// OpenconfigSystem_System_Clock represents the /openconfig-system/system/clock YANG schema element.
type OpenconfigSystem_System_Clock struct {
	ΛMetadata []ygot.Annotation                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Clock_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                     `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Clock_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Clock implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Clock) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Clock) GetOrCreateConfig() *OpenconfigSystem_System_Clock_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Clock_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Clock) GetOrCreateState() *OpenconfigSystem_System_Clock_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Clock_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Clock. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Clock) GetConfig() *OpenconfigSystem_System_Clock_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Clock. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Clock) GetState() *OpenconfigSystem_System_Clock_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Clock
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Clock) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Clock) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Clock"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Clock) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Clock) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Clock.
func (*OpenconfigSystem_System_Clock) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Clock_Config represents the /openconfig-system/system/clock/config YANG schema element.
type OpenconfigSystem_System_Clock_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TimezoneName  *string           `path:"timezone-name" module:"openconfig-system"`
	ΛTimezoneName []ygot.Annotation `path:"@timezone-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Clock_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Clock_Config) IsYANGGoStruct() {}

// GetTimezoneName retrieves the value of the leaf TimezoneName from the OpenconfigSystem_System_Clock_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TimezoneName is set, it can
// safely use t.GetTimezoneName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TimezoneName == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Clock_Config) GetTimezoneName() string {
	if t == nil || t.TimezoneName == nil {
		return ""
	}
	return *t.TimezoneName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Clock_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Clock_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Clock_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Clock_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Clock_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Clock_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Clock_Config.
func (*OpenconfigSystem_System_Clock_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Clock_State represents the /openconfig-system/system/clock/state YANG schema element.
type OpenconfigSystem_System_Clock_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	TimezoneName  *string           `path:"timezone-name" module:"openconfig-system"`
	ΛTimezoneName []ygot.Annotation `path:"@timezone-name" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Clock_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Clock_State) IsYANGGoStruct() {}

// GetTimezoneName retrieves the value of the leaf TimezoneName from the OpenconfigSystem_System_Clock_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TimezoneName is set, it can
// safely use t.GetTimezoneName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TimezoneName == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Clock_State) GetTimezoneName() string {
	if t == nil || t.TimezoneName == nil {
		return ""
	}
	return *t.TimezoneName
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Clock_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Clock_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Clock_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Clock_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Clock_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Clock_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Clock_State.
func (*OpenconfigSystem_System_Clock_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Config represents the /openconfig-system/system/config YANG schema element.
type OpenconfigSystem_System_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	DomainName   *string           `path:"domain-name" module:"openconfig-system"`
	ΛDomainName  []ygot.Annotation `path:"@domain-name" ygotAnnotation:"true"`
	Hostname     *string           `path:"hostname" module:"openconfig-system"`
	ΛHostname    []ygot.Annotation `path:"@hostname" ygotAnnotation:"true"`
	LoginBanner  *string           `path:"login-banner" module:"openconfig-system"`
	ΛLoginBanner []ygot.Annotation `path:"@login-banner" ygotAnnotation:"true"`
	MotdBanner   *string           `path:"motd-banner" module:"openconfig-system"`
	ΛMotdBanner  []ygot.Annotation `path:"@motd-banner" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Config) IsYANGGoStruct() {}

// GetDomainName retrieves the value of the leaf DomainName from the OpenconfigSystem_System_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DomainName is set, it can
// safely use t.GetDomainName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DomainName == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Config) GetDomainName() string {
	if t == nil || t.DomainName == nil {
		return ""
	}
	return *t.DomainName
}

// GetHostname retrieves the value of the leaf Hostname from the OpenconfigSystem_System_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Hostname is set, it can
// safely use t.GetHostname() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Hostname == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Config) GetHostname() string {
	if t == nil || t.Hostname == nil {
		return ""
	}
	return *t.Hostname
}

// GetLoginBanner retrieves the value of the leaf LoginBanner from the OpenconfigSystem_System_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoginBanner is set, it can
// safely use t.GetLoginBanner() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoginBanner == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Config) GetLoginBanner() string {
	if t == nil || t.LoginBanner == nil {
		return ""
	}
	return *t.LoginBanner
}

// GetMotdBanner retrieves the value of the leaf MotdBanner from the OpenconfigSystem_System_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MotdBanner is set, it can
// safely use t.GetMotdBanner() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MotdBanner == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Config) GetMotdBanner() string {
	if t == nil || t.MotdBanner == nil {
		return ""
	}
	return *t.MotdBanner
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Config.
func (*OpenconfigSystem_System_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus represents the /openconfig-system/system/cpus YANG schema element.
type OpenconfigSystem_System_Cpus struct {
	ΛMetadata []ygot.Annotation                                                                        `path:"@" ygotAnnotation:"true"`
	Cpu       map[OpenconfigSystem_System_Cpus_Cpu_State_Index_Union]*OpenconfigSystem_System_Cpus_Cpu `path:"cpu" module:"openconfig-system"`
	ΛCpu      []ygot.Annotation                                                                        `path:"@cpu" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus) IsYANGGoStruct() {}

// NewCpu creates a new entry in the Cpu list of the
// OpenconfigSystem_System_Cpus struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Cpus) NewCpu(Index OpenconfigSystem_System_Cpus_Cpu_State_Index_Union) (*OpenconfigSystem_System_Cpus_Cpu, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Cpu == nil {
		t.Cpu = make(map[OpenconfigSystem_System_Cpus_Cpu_State_Index_Union]*OpenconfigSystem_System_Cpus_Cpu)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Cpu[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Cpu", key)
	}

	t.Cpu[key] = &OpenconfigSystem_System_Cpus_Cpu{
		Index: Index,
	}

	return t.Cpu[key], nil
}

// RenameCpu renames an entry in the list Cpu within
// the OpenconfigSystem_System_Cpus struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Cpus) RenameCpu(oldK, newK OpenconfigSystem_System_Cpus_Cpu_State_Index_Union) error {
	if _, ok := t.Cpu[newK]; ok {
		return fmt.Errorf("key %v already exists in Cpu", newK)
	}

	e, ok := t.Cpu[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Cpu", oldK)
	}
	e.Index = newK

	t.Cpu[newK] = e
	delete(t.Cpu, oldK)
	return nil
}

// GetOrCreateCpuMap returns the list (map) from OpenconfigSystem_System_Cpus.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Cpus) GetOrCreateCpuMap() map[OpenconfigSystem_System_Cpus_Cpu_State_Index_Union]*OpenconfigSystem_System_Cpus_Cpu {
	if t.Cpu == nil {
		t.Cpu = make(map[OpenconfigSystem_System_Cpus_Cpu_State_Index_Union]*OpenconfigSystem_System_Cpus_Cpu)
	}
	return t.Cpu
}

// GetOrCreateCpu retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Cpus. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Cpus) GetOrCreateCpu(Index OpenconfigSystem_System_Cpus_Cpu_State_Index_Union) *OpenconfigSystem_System_Cpus_Cpu {

	key := Index

	if v, ok := t.Cpu[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewCpu(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateCpu got unexpected error: %v", err))
	}
	return v
}

// GetCpu retrieves the value with the specified key from
// the Cpu map field of OpenconfigSystem_System_Cpus. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Cpus) GetCpu(Index OpenconfigSystem_System_Cpus_Cpu_State_Index_Union) *OpenconfigSystem_System_Cpus_Cpu {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Cpu[key]; ok {
		return lm
	}
	return nil
}

// AppendCpu appends the supplied OpenconfigSystem_System_Cpus_Cpu struct to the
// list Cpu of OpenconfigSystem_System_Cpus. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Cpus_Cpu already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Cpus) AppendCpu(v *OpenconfigSystem_System_Cpus_Cpu) error {
	key := v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Cpu == nil {
		t.Cpu = make(map[OpenconfigSystem_System_Cpus_Cpu_State_Index_Union]*OpenconfigSystem_System_Cpus_Cpu)
	}

	if _, ok := t.Cpu[key]; ok {
		return fmt.Errorf("duplicate key for list Cpu %v", key)
	}

	t.Cpu[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Cpu {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus.
func (*OpenconfigSystem_System_Cpus) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu represents the /openconfig-system/system/cpus/cpu YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu struct {
	ΛMetadata []ygot.Annotation                                  `path:"@" ygotAnnotation:"true"`
	Index     OpenconfigSystem_System_Cpus_Cpu_State_Index_Union `path:"index" module:"openconfig-system"`
	ΛIndex    []ygot.Annotation                                  `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Cpus_Cpu_State            `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu) IsYANGGoStruct() {}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu) GetOrCreateState() *OpenconfigSystem_System_Cpus_Cpu_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Cpus_Cpu_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Cpus_Cpu. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu) GetState() *OpenconfigSystem_System_Cpus_Cpu_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigSystem_System_Cpus_Cpu
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu) GetIndex() OpenconfigSystem_System_Cpus_Cpu_State_Index_Union {
	if t == nil || t.Index == nil {
		return nil
	}
	return t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Cpus_Cpu struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Cpus_Cpu) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"index": t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu.
func (*OpenconfigSystem_System_Cpus_Cpu) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_Index_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/cpus/cpu/index within the YANG schema.
// Union type can be one of [E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum, UnionUint32].
type OpenconfigSystem_System_Cpus_Cpu_State_Index_Union interface {
	// Union type can be one of [E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum, UnionUint32]
	Documentation_for_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union()
}

// Documentation_for_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union ensures that E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum
// implements the OpenconfigSystem_System_Cpus_Cpu_State_Index_Union interface.
func (E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum) Documentation_for_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union() {
}

// Documentation_for_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union ensures that UnionUint32
// implements the OpenconfigSystem_System_Cpus_Cpu_State_Index_Union interface.
func (UnionUint32) Documentation_for_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union() {}

// To_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Cpus_Cpu_State_Index_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Cpus_Cpu) To_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union(i interface{}) (OpenconfigSystem_System_Cpus_Cpu_State_Index_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Cpus_Cpu_State_Index_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Cpus_Cpu_State_Index_Union, unknown union type, got: %T, want any of [E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum, uint32]", i, i)
}

// OpenconfigSystem_System_Cpus_Cpu_State represents the /openconfig-system/system/cpus/cpu/state YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State struct {
	ΛMetadata          []ygot.Annotation                                         `path:"@" ygotAnnotation:"true"`
	HardwareInterrupt  *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt `path:"hardware-interrupt" module:"openconfig-system"`
	ΛHardwareInterrupt []ygot.Annotation                                         `path:"@hardware-interrupt" ygotAnnotation:"true"`
	Idle               *OpenconfigSystem_System_Cpus_Cpu_State_Idle              `path:"idle" module:"openconfig-system"`
	ΛIdle              []ygot.Annotation                                         `path:"@idle" ygotAnnotation:"true"`
	Index              OpenconfigSystem_System_Cpus_Cpu_State_Index_Union        `path:"index" module:"openconfig-system"`
	ΛIndex             []ygot.Annotation                                         `path:"@index" ygotAnnotation:"true"`
	Kernel             *OpenconfigSystem_System_Cpus_Cpu_State_Kernel            `path:"kernel" module:"openconfig-system"`
	ΛKernel            []ygot.Annotation                                         `path:"@kernel" ygotAnnotation:"true"`
	Nice               *OpenconfigSystem_System_Cpus_Cpu_State_Nice              `path:"nice" module:"openconfig-system"`
	ΛNice              []ygot.Annotation                                         `path:"@nice" ygotAnnotation:"true"`
	SoftwareInterrupt  *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt `path:"software-interrupt" module:"openconfig-system"`
	ΛSoftwareInterrupt []ygot.Annotation                                         `path:"@software-interrupt" ygotAnnotation:"true"`
	Total              *OpenconfigSystem_System_Cpus_Cpu_State_Total             `path:"total" module:"openconfig-system"`
	ΛTotal             []ygot.Annotation                                         `path:"@total" ygotAnnotation:"true"`
	User               *OpenconfigSystem_System_Cpus_Cpu_State_User              `path:"user" module:"openconfig-system"`
	ΛUser              []ygot.Annotation                                         `path:"@user" ygotAnnotation:"true"`
	Wait               *OpenconfigSystem_System_Cpus_Cpu_State_Wait              `path:"wait" module:"openconfig-system"`
	ΛWait              []ygot.Annotation                                         `path:"@wait" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State) IsYANGGoStruct() {}

// GetOrCreateHardwareInterrupt retrieves the value of the HardwareInterrupt field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateHardwareInterrupt() *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt {
	if t.HardwareInterrupt != nil {
		return t.HardwareInterrupt
	}
	t.HardwareInterrupt = &OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt{}
	return t.HardwareInterrupt
}

// GetOrCreateIdle retrieves the value of the Idle field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateIdle() *OpenconfigSystem_System_Cpus_Cpu_State_Idle {
	if t.Idle != nil {
		return t.Idle
	}
	t.Idle = &OpenconfigSystem_System_Cpus_Cpu_State_Idle{}
	return t.Idle
}

// GetOrCreateKernel retrieves the value of the Kernel field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateKernel() *OpenconfigSystem_System_Cpus_Cpu_State_Kernel {
	if t.Kernel != nil {
		return t.Kernel
	}
	t.Kernel = &OpenconfigSystem_System_Cpus_Cpu_State_Kernel{}
	return t.Kernel
}

// GetOrCreateNice retrieves the value of the Nice field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateNice() *OpenconfigSystem_System_Cpus_Cpu_State_Nice {
	if t.Nice != nil {
		return t.Nice
	}
	t.Nice = &OpenconfigSystem_System_Cpus_Cpu_State_Nice{}
	return t.Nice
}

// GetOrCreateSoftwareInterrupt retrieves the value of the SoftwareInterrupt field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateSoftwareInterrupt() *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt {
	if t.SoftwareInterrupt != nil {
		return t.SoftwareInterrupt
	}
	t.SoftwareInterrupt = &OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt{}
	return t.SoftwareInterrupt
}

// GetOrCreateTotal retrieves the value of the Total field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateTotal() *OpenconfigSystem_System_Cpus_Cpu_State_Total {
	if t.Total != nil {
		return t.Total
	}
	t.Total = &OpenconfigSystem_System_Cpus_Cpu_State_Total{}
	return t.Total
}

// GetOrCreateUser retrieves the value of the User field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateUser() *OpenconfigSystem_System_Cpus_Cpu_State_User {
	if t.User != nil {
		return t.User
	}
	t.User = &OpenconfigSystem_System_Cpus_Cpu_State_User{}
	return t.User
}

// GetOrCreateWait retrieves the value of the Wait field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetOrCreateWait() *OpenconfigSystem_System_Cpus_Cpu_State_Wait {
	if t.Wait != nil {
		return t.Wait
	}
	t.Wait = &OpenconfigSystem_System_Cpus_Cpu_State_Wait{}
	return t.Wait
}

// GetHardwareInterrupt returns the value of the HardwareInterrupt struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field HardwareInterrupt is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetHardwareInterrupt() *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt {
	if t != nil && t.HardwareInterrupt != nil {
		return t.HardwareInterrupt
	}
	return nil
}

// GetIdle returns the value of the Idle struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field Idle is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetIdle() *OpenconfigSystem_System_Cpus_Cpu_State_Idle {
	if t != nil && t.Idle != nil {
		return t.Idle
	}
	return nil
}

// GetKernel returns the value of the Kernel struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field Kernel is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetKernel() *OpenconfigSystem_System_Cpus_Cpu_State_Kernel {
	if t != nil && t.Kernel != nil {
		return t.Kernel
	}
	return nil
}

// GetNice returns the value of the Nice struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field Nice is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetNice() *OpenconfigSystem_System_Cpus_Cpu_State_Nice {
	if t != nil && t.Nice != nil {
		return t.Nice
	}
	return nil
}

// GetSoftwareInterrupt returns the value of the SoftwareInterrupt struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field SoftwareInterrupt is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetSoftwareInterrupt() *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt {
	if t != nil && t.SoftwareInterrupt != nil {
		return t.SoftwareInterrupt
	}
	return nil
}

// GetTotal returns the value of the Total struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field Total is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetTotal() *OpenconfigSystem_System_Cpus_Cpu_State_Total {
	if t != nil && t.Total != nil {
		return t.Total
	}
	return nil
}

// GetUser returns the value of the User struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field User is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetUser() *OpenconfigSystem_System_Cpus_Cpu_State_User {
	if t != nil && t.User != nil {
		return t.User
	}
	return nil
}

// GetWait returns the value of the Wait struct pointer
// from OpenconfigSystem_System_Cpus_Cpu_State. If the receiver or the field Wait is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetWait() *OpenconfigSystem_System_Cpus_Cpu_State_Wait {
	if t != nil && t.Wait != nil {
		return t.Wait
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigSystem_System_Cpus_Cpu_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) GetIndex() OpenconfigSystem_System_Cpus_Cpu_State_Index_Union {
	if t == nil || t.Index == nil {
		return nil
	}
	return t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.HardwareInterrupt.PopulateDefaults()
	t.Idle.PopulateDefaults()
	t.Kernel.PopulateDefaults()
	t.Nice.PopulateDefaults()
	t.SoftwareInterrupt.PopulateDefaults()
	t.Total.PopulateDefaults()
	t.User.PopulateDefaults()
	t.Wait.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State.
func (*OpenconfigSystem_System_Cpus_Cpu_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// To_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_Cpus_Cpu_State_Index_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_Cpus_Cpu_State) To_OpenconfigSystem_System_Cpus_Cpu_State_Index_Union(i interface{}) (OpenconfigSystem_System_Cpus_Cpu_State_Index_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_Cpus_Cpu_State_Index_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case uint32:
		return UnionUint32(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_Cpus_Cpu_State_Index_Union, unknown union type, got: %T, want any of [E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum, uint32]", i, i)
}

// OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt represents the /openconfig-system/system/cpus/cpu/state/hardware-interrupt YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt.
func (*OpenconfigSystem_System_Cpus_Cpu_State_HardwareInterrupt) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_Idle represents the /openconfig-system/system/cpus/cpu/state/idle YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_Idle struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_Idle implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Idle) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_Idle
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_Idle"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Idle) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_Idle.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Idle) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_Kernel represents the /openconfig-system/system/cpus/cpu/state/kernel YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_Kernel struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_Kernel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Kernel) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_Kernel
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_Kernel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Kernel) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_Kernel.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Kernel) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_Nice represents the /openconfig-system/system/cpus/cpu/state/nice YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_Nice struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_Nice implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Nice) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_Nice
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_Nice"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Nice) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_Nice.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Nice) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt represents the /openconfig-system/system/cpus/cpu/state/software-interrupt YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt.
func (*OpenconfigSystem_System_Cpus_Cpu_State_SoftwareInterrupt) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_Total represents the /openconfig-system/system/cpus/cpu/state/total YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_Total struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_Total implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Total) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_Total
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_Total
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_Total
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_Total
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_Total
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_Total
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_Total
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_Total
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_Total"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Total) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_Total.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Total) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_User represents the /openconfig-system/system/cpus/cpu/state/user YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_User struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_User implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_User) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_User
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_User
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_User"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_User) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_User.
func (*OpenconfigSystem_System_Cpus_Cpu_State_User) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Cpus_Cpu_State_Wait represents the /openconfig-system/system/cpus/cpu/state/wait YANG schema element.
type OpenconfigSystem_System_Cpus_Cpu_State_Wait struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *uint8            `path:"avg" module:"openconfig-system"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *uint8            `path:"instant" module:"openconfig-system"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-system"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *uint8            `path:"max" module:"openconfig-system"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-system"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *uint8            `path:"min" module:"openconfig-system"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-system"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Cpus_Cpu_State_Wait implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Wait) IsYANGGoStruct() {}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) GetAvg() uint8 {
	if t == nil || t.Avg == nil {
		return 0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) GetInstant() uint8 {
	if t == nil || t.Instant == nil {
		return 0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) GetMax() uint8 {
	if t == nil || t.Max == nil {
		return 0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) GetMin() uint8 {
	if t == nil || t.Min == nil {
		return 0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Cpus_Cpu_State_Wait
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Cpus_Cpu_State_Wait"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Cpus_Cpu_State_Wait) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Cpus_Cpu_State_Wait.
func (*OpenconfigSystem_System_Cpus_Cpu_State_Wait) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns represents the /openconfig-system/system/dns YANG schema element.
type OpenconfigSystem_System_Dns struct {
	ΛMetadata    []ygot.Annotation                        `path:"@" ygotAnnotation:"true"`
	Config       *OpenconfigSystem_System_Dns_Config      `path:"config" module:"openconfig-system"`
	ΛConfig      []ygot.Annotation                        `path:"@config" ygotAnnotation:"true"`
	HostEntries  *OpenconfigSystem_System_Dns_HostEntries `path:"host-entries" module:"openconfig-system"`
	ΛHostEntries []ygot.Annotation                        `path:"@host-entries" ygotAnnotation:"true"`
	Servers      *OpenconfigSystem_System_Dns_Servers     `path:"servers" module:"openconfig-system"`
	ΛServers     []ygot.Annotation                        `path:"@servers" ygotAnnotation:"true"`
	State        *OpenconfigSystem_System_Dns_State       `path:"state" module:"openconfig-system"`
	ΛState       []ygot.Annotation                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns) GetOrCreateConfig() *OpenconfigSystem_System_Dns_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Dns_Config{}
	return t.Config
}

// GetOrCreateHostEntries retrieves the value of the HostEntries field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns) GetOrCreateHostEntries() *OpenconfigSystem_System_Dns_HostEntries {
	if t.HostEntries != nil {
		return t.HostEntries
	}
	t.HostEntries = &OpenconfigSystem_System_Dns_HostEntries{}
	return t.HostEntries
}

// GetOrCreateServers retrieves the value of the Servers field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns) GetOrCreateServers() *OpenconfigSystem_System_Dns_Servers {
	if t.Servers != nil {
		return t.Servers
	}
	t.Servers = &OpenconfigSystem_System_Dns_Servers{}
	return t.Servers
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns) GetOrCreateState() *OpenconfigSystem_System_Dns_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Dns_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Dns. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns) GetConfig() *OpenconfigSystem_System_Dns_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetHostEntries returns the value of the HostEntries struct pointer
// from OpenconfigSystem_System_Dns. If the receiver or the field HostEntries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns) GetHostEntries() *OpenconfigSystem_System_Dns_HostEntries {
	if t != nil && t.HostEntries != nil {
		return t.HostEntries
	}
	return nil
}

// GetServers returns the value of the Servers struct pointer
// from OpenconfigSystem_System_Dns. If the receiver or the field Servers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns) GetServers() *OpenconfigSystem_System_Dns_Servers {
	if t != nil && t.Servers != nil {
		return t.Servers
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Dns. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns) GetState() *OpenconfigSystem_System_Dns_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.HostEntries.PopulateDefaults()
	t.Servers.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns.
func (*OpenconfigSystem_System_Dns) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_Config represents the /openconfig-system/system/dns/config YANG schema element.
type OpenconfigSystem_System_Dns_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Search    []string          `path:"search" module:"openconfig-system"`
	ΛSearch   []ygot.Annotation `path:"@search" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_Config) IsYANGGoStruct() {}

// GetSearch retrieves the value of the leaf Search from the OpenconfigSystem_System_Dns_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Search is set, it can
// safely use t.GetSearch() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Search == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_Config) GetSearch() []string {
	if t == nil || t.Search == nil {
		return nil
	}
	return t.Search
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_Config.
func (*OpenconfigSystem_System_Dns_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_HostEntries represents the /openconfig-system/system/dns/host-entries YANG schema element.
type OpenconfigSystem_System_Dns_HostEntries struct {
	ΛMetadata  []ygot.Annotation                                             `path:"@" ygotAnnotation:"true"`
	HostEntry  map[string]*OpenconfigSystem_System_Dns_HostEntries_HostEntry `path:"host-entry" module:"openconfig-system"`
	ΛHostEntry []ygot.Annotation                                             `path:"@host-entry" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_HostEntries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_HostEntries) IsYANGGoStruct() {}

// NewHostEntry creates a new entry in the HostEntry list of the
// OpenconfigSystem_System_Dns_HostEntries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Dns_HostEntries) NewHostEntry(Hostname string) (*OpenconfigSystem_System_Dns_HostEntries_HostEntry, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.HostEntry == nil {
		t.HostEntry = make(map[string]*OpenconfigSystem_System_Dns_HostEntries_HostEntry)
	}

	key := Hostname

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.HostEntry[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list HostEntry", key)
	}

	t.HostEntry[key] = &OpenconfigSystem_System_Dns_HostEntries_HostEntry{
		Hostname: &Hostname,
	}

	return t.HostEntry[key], nil
}

// RenameHostEntry renames an entry in the list HostEntry within
// the OpenconfigSystem_System_Dns_HostEntries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Dns_HostEntries) RenameHostEntry(oldK, newK string) error {
	if _, ok := t.HostEntry[newK]; ok {
		return fmt.Errorf("key %v already exists in HostEntry", newK)
	}

	e, ok := t.HostEntry[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in HostEntry", oldK)
	}
	e.Hostname = &newK

	t.HostEntry[newK] = e
	delete(t.HostEntry, oldK)
	return nil
}

// GetOrCreateHostEntryMap returns the list (map) from OpenconfigSystem_System_Dns_HostEntries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Dns_HostEntries) GetOrCreateHostEntryMap() map[string]*OpenconfigSystem_System_Dns_HostEntries_HostEntry {
	if t.HostEntry == nil {
		t.HostEntry = make(map[string]*OpenconfigSystem_System_Dns_HostEntries_HostEntry)
	}
	return t.HostEntry
}

// GetOrCreateHostEntry retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Dns_HostEntries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Dns_HostEntries) GetOrCreateHostEntry(Hostname string) *OpenconfigSystem_System_Dns_HostEntries_HostEntry {

	key := Hostname

	if v, ok := t.HostEntry[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewHostEntry(Hostname)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateHostEntry got unexpected error: %v", err))
	}
	return v
}

// GetHostEntry retrieves the value with the specified key from
// the HostEntry map field of OpenconfigSystem_System_Dns_HostEntries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Dns_HostEntries) GetHostEntry(Hostname string) *OpenconfigSystem_System_Dns_HostEntries_HostEntry {

	if t == nil {
		return nil
	}

	key := Hostname

	if lm, ok := t.HostEntry[key]; ok {
		return lm
	}
	return nil
}

// AppendHostEntry appends the supplied OpenconfigSystem_System_Dns_HostEntries_HostEntry struct to the
// list HostEntry of OpenconfigSystem_System_Dns_HostEntries. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Dns_HostEntries_HostEntry already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Dns_HostEntries) AppendHostEntry(v *OpenconfigSystem_System_Dns_HostEntries_HostEntry) error {
	if v.Hostname == nil {
		return fmt.Errorf("invalid nil key received for Hostname")
	}

	key := *v.Hostname

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.HostEntry == nil {
		t.HostEntry = make(map[string]*OpenconfigSystem_System_Dns_HostEntries_HostEntry)
	}

	if _, ok := t.HostEntry[key]; ok {
		return fmt.Errorf("duplicate key for list HostEntry %v", key)
	}

	t.HostEntry[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_HostEntries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_HostEntries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.HostEntry {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_HostEntries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_HostEntries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_HostEntries.
func (*OpenconfigSystem_System_Dns_HostEntries) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_HostEntries_HostEntry represents the /openconfig-system/system/dns/host-entries/host-entry YANG schema element.
type OpenconfigSystem_System_Dns_HostEntries_HostEntry struct {
	ΛMetadata []ygot.Annotation                                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                         `path:"@config" ygotAnnotation:"true"`
	Hostname  *string                                                   `path:"hostname" module:"openconfig-system"`
	ΛHostname []ygot.Annotation                                         `path:"@hostname" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_HostEntries_HostEntry implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_HostEntries_HostEntry) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) GetOrCreateConfig() *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) GetOrCreateState() *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Dns_HostEntries_HostEntry_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Dns_HostEntries_HostEntry. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) GetConfig() *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Dns_HostEntries_HostEntry. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) GetState() *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetHostname retrieves the value of the leaf Hostname from the OpenconfigSystem_System_Dns_HostEntries_HostEntry
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Hostname is set, it can
// safely use t.GetHostname() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Hostname == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) GetHostname() string {
	if t == nil || t.Hostname == nil {
		return ""
	}
	return *t.Hostname
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_HostEntries_HostEntry
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Dns_HostEntries_HostEntry struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Hostname == nil {
		return nil, fmt.Errorf("nil value for key Hostname")
	}

	return map[string]interface{}{
		"hostname": *t.Hostname,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_HostEntries_HostEntry"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_HostEntries_HostEntry.
func (*OpenconfigSystem_System_Dns_HostEntries_HostEntry) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config represents the /openconfig-system/system/dns/host-entries/host-entry/config YANG schema element.
type OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Alias        []string          `path:"alias" module:"openconfig-system"`
	ΛAlias       []ygot.Annotation `path:"@alias" ygotAnnotation:"true"`
	Hostname     *string           `path:"hostname" module:"openconfig-system"`
	ΛHostname    []ygot.Annotation `path:"@hostname" ygotAnnotation:"true"`
	Ipv4Address  []string          `path:"ipv4-address" module:"openconfig-system"`
	ΛIpv4Address []ygot.Annotation `path:"@ipv4-address" ygotAnnotation:"true"`
	Ipv6Address  []string          `path:"ipv6-address" module:"openconfig-system"`
	ΛIpv6Address []ygot.Annotation `path:"@ipv6-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) IsYANGGoStruct() {}

// GetAlias retrieves the value of the leaf Alias from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Alias is set, it can
// safely use t.GetAlias() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Alias == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) GetAlias() []string {
	if t == nil || t.Alias == nil {
		return nil
	}
	return t.Alias
}

// GetHostname retrieves the value of the leaf Hostname from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Hostname is set, it can
// safely use t.GetHostname() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Hostname == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) GetHostname() string {
	if t == nil || t.Hostname == nil {
		return ""
	}
	return *t.Hostname
}

// GetIpv4Address retrieves the value of the leaf Ipv4Address from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv4Address is set, it can
// safely use t.GetIpv4Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv4Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) GetIpv4Address() []string {
	if t == nil || t.Ipv4Address == nil {
		return nil
	}
	return t.Ipv4Address
}

// GetIpv6Address retrieves the value of the leaf Ipv6Address from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6Address is set, it can
// safely use t.GetIpv6Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) GetIpv6Address() []string {
	if t == nil || t.Ipv6Address == nil {
		return nil
	}
	return t.Ipv6Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config.
func (*OpenconfigSystem_System_Dns_HostEntries_HostEntry_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_HostEntries_HostEntry_State represents the /openconfig-system/system/dns/host-entries/host-entry/state YANG schema element.
type OpenconfigSystem_System_Dns_HostEntries_HostEntry_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Alias        []string          `path:"alias" module:"openconfig-system"`
	ΛAlias       []ygot.Annotation `path:"@alias" ygotAnnotation:"true"`
	Hostname     *string           `path:"hostname" module:"openconfig-system"`
	ΛHostname    []ygot.Annotation `path:"@hostname" ygotAnnotation:"true"`
	Ipv4Address  []string          `path:"ipv4-address" module:"openconfig-system"`
	ΛIpv4Address []ygot.Annotation `path:"@ipv4-address" ygotAnnotation:"true"`
	Ipv6Address  []string          `path:"ipv6-address" module:"openconfig-system"`
	ΛIpv6Address []ygot.Annotation `path:"@ipv6-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_HostEntries_HostEntry_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) IsYANGGoStruct() {}

// GetAlias retrieves the value of the leaf Alias from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Alias is set, it can
// safely use t.GetAlias() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Alias == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) GetAlias() []string {
	if t == nil || t.Alias == nil {
		return nil
	}
	return t.Alias
}

// GetHostname retrieves the value of the leaf Hostname from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Hostname is set, it can
// safely use t.GetHostname() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Hostname == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) GetHostname() string {
	if t == nil || t.Hostname == nil {
		return ""
	}
	return *t.Hostname
}

// GetIpv4Address retrieves the value of the leaf Ipv4Address from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv4Address is set, it can
// safely use t.GetIpv4Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv4Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) GetIpv4Address() []string {
	if t == nil || t.Ipv4Address == nil {
		return nil
	}
	return t.Ipv4Address
}

// GetIpv6Address retrieves the value of the leaf Ipv6Address from the OpenconfigSystem_System_Dns_HostEntries_HostEntry_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ipv6Address is set, it can
// safely use t.GetIpv6Address() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ipv6Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) GetIpv6Address() []string {
	if t == nil || t.Ipv6Address == nil {
		return nil
	}
	return t.Ipv6Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_HostEntries_HostEntry_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_HostEntries_HostEntry_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_HostEntries_HostEntry_State.
func (*OpenconfigSystem_System_Dns_HostEntries_HostEntry_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_Servers represents the /openconfig-system/system/dns/servers YANG schema element.
type OpenconfigSystem_System_Dns_Servers struct {
	ΛMetadata []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	Server    *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap `path:"server" module:"openconfig-system"`
	ΛServer   []ygot.Annotation                                      `path:"@server" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_Servers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_Servers) IsYANGGoStruct() {}

// GetOrCreateServerMap returns the ordered map field
// Server from OpenconfigSystem_System_Dns_Servers.
//
// It initializes the field if not already initialized.
func (s *OpenconfigSystem_System_Dns_Servers) GetOrCreateServerMap() *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap {
	if s.Server == nil {
		s.Server = &OpenconfigSystem_System_Dns_Servers_Server_OrderedMap{}
	}
	return s.Server
}

// AppendNewServer creates a new entry in the Server
// ordered map of the OpenconfigSystem_System_Dns_Servers struct. The keys of the list are
// populated from the input arguments.
func (s *OpenconfigSystem_System_Dns_Servers) AppendNewServer(Address string) (*OpenconfigSystem_System_Dns_Servers_Server, error) {
	if s.Server == nil {
		s.Server = &OpenconfigSystem_System_Dns_Servers_Server_OrderedMap{}
	}
	return s.Server.AppendNew(Address)
}

// AppendServer appends the supplied OpenconfigSystem_System_Dns_Servers_Server struct
// to the list Server of OpenconfigSystem_System_Dns_Servers. If the key value(s)
// specified in the supplied OpenconfigSystem_System_Dns_Servers_Server already exist in the list, an
// error is returned.
func (s *OpenconfigSystem_System_Dns_Servers) AppendServer(v *OpenconfigSystem_System_Dns_Servers_Server) error {
	if s.Server == nil {
		s.Server = &OpenconfigSystem_System_Dns_Servers_Server_OrderedMap{}
	}
	return s.Server.Append(v)
}

// GetServer retrieves the value with the specified key from the
// Server map field of OpenconfigSystem_System_Dns_Servers. If the receiver
// is nil, or the specified key is not present in the list, nil is returned
// such that Get* methods may be safely chained.
func (s *OpenconfigSystem_System_Dns_Servers) GetServer(Address string) *OpenconfigSystem_System_Dns_Servers_Server {
	if s == nil {
		return nil
	}
	key := Address
	return s.Server.Get(key)
}

// DeleteServer deletes the value with the specified keys from
// the receiver OpenconfigSystem_System_Dns_Servers. If there is no such element, the
// function is a no-op.
func (s *OpenconfigSystem_System_Dns_Servers) DeleteServer(Address string) bool {
	key := Address
	return s.Server.Delete(key)
}

// OpenconfigSystem_System_Dns_Servers_Server_OrderedMap is an ordered map that represents the "ordered-by user"
// list elements at /openconfig-system/system/dns/servers/server.
type OpenconfigSystem_System_Dns_Servers_Server_OrderedMap struct {
	keys     []string
	valueMap map[string]*OpenconfigSystem_System_Dns_Servers_Server
}

// IsYANGOrderedList ensures that OpenconfigSystem_System_Dns_Servers_Server_OrderedMap implements the
// ygot.GoOrderedMap interface.
func (*OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) IsYANGOrderedList() {}

// init initializes any uninitialized values.
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) init() {
	if o == nil {
		return
	}
	if o.valueMap == nil {
		o.valueMap = map[string]*OpenconfigSystem_System_Dns_Servers_Server{}
	}
}

// Keys returns a copy of the list's keys.
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) Keys() []string {
	if o == nil {
		return nil
	}
	return append([]string{}, o.keys...)
}

// Values returns the current set of the list's values in order.
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) Values() []*OpenconfigSystem_System_Dns_Servers_Server {
	if o == nil {
		return nil
	}
	var values []*OpenconfigSystem_System_Dns_Servers_Server
	for _, key := range o.keys {
		values = append(values, o.valueMap[key])
	}
	return values
}

// Len returns a size of OpenconfigSystem_System_Dns_Servers_Server_OrderedMap
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) Len() int {
	if o == nil {
		return 0
	}
	return len(o.keys)
}

// Get returns the value corresponding to the key. If the key is not found, nil
// is returned.
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) Get(key string) *OpenconfigSystem_System_Dns_Servers_Server {
	if o == nil {
		return nil
	}
	val, _ := o.valueMap[key]
	return val
}

// Delete deletes an element.
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) Delete(key string) bool {
	if o == nil {
		return false
	}
	if _, ok := o.valueMap[key]; !ok {
		return false
	}
	for i, k := range o.keys {
		if k == key {
			o.keys = append(o.keys[:i], o.keys[i+1:]...)
			delete(o.valueMap, key)
			return true
		}
	}
	return false
}

// Append appends a OpenconfigSystem_System_Dns_Servers_Server, returning an error if the key
// already exists in the ordered list or if the key is unspecified.
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) Append(v *OpenconfigSystem_System_Dns_Servers_Server) error {
	if o == nil {
		return fmt.Errorf("nil ordered map, cannot append OpenconfigSystem_System_Dns_Servers_Server")
	}
	if v == nil {
		return fmt.Errorf("nil OpenconfigSystem_System_Dns_Servers_Server")
	}
	if v.Address == nil {
		return fmt.Errorf("invalid nil key received for Address")
	}

	key := *v.Address

	if _, ok := o.valueMap[key]; ok {
		return fmt.Errorf("duplicate key for list Statement %v", key)
	}
	o.keys = append(o.keys, key)
	o.init()
	o.valueMap[key] = v
	return nil
}

// AppendNew creates and appends a new OpenconfigSystem_System_Dns_Servers_Server, returning the
// newly-initialized v. It returns an error if the v already exists.
func (o *OpenconfigSystem_System_Dns_Servers_Server_OrderedMap) AppendNew(Address string) (*OpenconfigSystem_System_Dns_Servers_Server, error) {
	if o == nil {
		return nil, fmt.Errorf("nil ordered map, cannot append OpenconfigSystem_System_Dns_Servers_Server")
	}
	key := Address

	if _, ok := o.valueMap[key]; ok {
		return nil, fmt.Errorf("duplicate key for list Statement %v", key)
	}
	o.keys = append(o.keys, key)
	newElement := &OpenconfigSystem_System_Dns_Servers_Server{
		Address: &Address,
	}
	o.init()
	o.valueMap[key] = newElement
	return newElement, nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_Servers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_Servers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Server.Values() {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_Servers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_Servers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_Servers.
func (*OpenconfigSystem_System_Dns_Servers) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_Servers_Server represents the /openconfig-system/system/dns/servers/server YANG schema element.
type OpenconfigSystem_System_Dns_Servers_Server struct {
	ΛMetadata []ygot.Annotation                                  `path:"@" ygotAnnotation:"true"`
	Address   *string                                            `path:"address" module:"openconfig-system"`
	ΛAddress  []ygot.Annotation                                  `path:"@address" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Dns_Servers_Server_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Dns_Servers_Server_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_Servers_Server implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_Servers_Server) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns_Servers_Server) GetOrCreateConfig() *OpenconfigSystem_System_Dns_Servers_Server_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Dns_Servers_Server_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Dns_Servers_Server) GetOrCreateState() *OpenconfigSystem_System_Dns_Servers_Server_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Dns_Servers_Server_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Dns_Servers_Server. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns_Servers_Server) GetConfig() *OpenconfigSystem_System_Dns_Servers_Server_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Dns_Servers_Server. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Dns_Servers_Server) GetState() *OpenconfigSystem_System_Dns_Servers_Server_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Dns_Servers_Server
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_Servers_Server) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_Servers_Server
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_Servers_Server) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Dns_Servers_Server struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Dns_Servers_Server) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Address == nil {
		return nil, fmt.Errorf("nil value for key Address")
	}

	return map[string]interface{}{
		"address": *t.Address,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers_Server) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_Servers_Server"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers_Server) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_Servers_Server) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_Servers_Server.
func (*OpenconfigSystem_System_Dns_Servers_Server) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_Servers_Server_Config represents the /openconfig-system/system/dns/servers/server/config YANG schema element.
type OpenconfigSystem_System_Dns_Servers_Server_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   *string           `path:"address" module:"openconfig-system"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	Port      *uint16           `path:"port" module:"openconfig-system"`
	ΛPort     []ygot.Annotation `path:"@port" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_Servers_Server_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_Servers_Server_Config) IsYANGGoStruct() {}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Dns_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_Servers_Server_Config) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetPort retrieves the value of the leaf Port from the OpenconfigSystem_System_Dns_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_Servers_Server_Config) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 53
	}
	return *t.Port
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_Servers_Server_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_Servers_Server_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Port == nil {
		var v uint16 = 53
		t.Port = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers_Server_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_Servers_Server_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers_Server_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_Servers_Server_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_Servers_Server_Config.
func (*OpenconfigSystem_System_Dns_Servers_Server_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_Servers_Server_State represents the /openconfig-system/system/dns/servers/server/state YANG schema element.
type OpenconfigSystem_System_Dns_Servers_Server_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Address   *string           `path:"address" module:"openconfig-system"`
	ΛAddress  []ygot.Annotation `path:"@address" ygotAnnotation:"true"`
	Port      *uint16           `path:"port" module:"openconfig-system"`
	ΛPort     []ygot.Annotation `path:"@port" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_Servers_Server_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_Servers_Server_State) IsYANGGoStruct() {}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Dns_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_Servers_Server_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetPort retrieves the value of the leaf Port from the OpenconfigSystem_System_Dns_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_Servers_Server_State) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 53
	}
	return *t.Port
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_Servers_Server_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_Servers_Server_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Port == nil {
		var v uint16 = 53
		t.Port = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers_Server_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_Servers_Server_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_Servers_Server_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_Servers_Server_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_Servers_Server_State.
func (*OpenconfigSystem_System_Dns_Servers_Server_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Dns_State represents the /openconfig-system/system/dns/state YANG schema element.
type OpenconfigSystem_System_Dns_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Search    []string          `path:"search" module:"openconfig-system"`
	ΛSearch   []ygot.Annotation `path:"@search" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Dns_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Dns_State) IsYANGGoStruct() {}

// GetSearch retrieves the value of the leaf Search from the OpenconfigSystem_System_Dns_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Search is set, it can
// safely use t.GetSearch() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Search == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Dns_State) GetSearch() []string {
	if t == nil || t.Search == nil {
		return nil
	}
	return t.Search
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Dns_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Dns_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Dns_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Dns_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Dns_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Dns_State.
func (*OpenconfigSystem_System_Dns_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_License represents the /openconfig-system/system/license YANG schema element.
type OpenconfigSystem_System_License struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Licenses  *OpenconfigSystem_System_License_Licenses `path:"licenses" module:"openconfig-system"`
	ΛLicenses []ygot.Annotation                         `path:"@licenses" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_License implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_License) IsYANGGoStruct() {}

// GetOrCreateLicenses retrieves the value of the Licenses field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_License) GetOrCreateLicenses() *OpenconfigSystem_System_License_Licenses {
	if t.Licenses != nil {
		return t.Licenses
	}
	t.Licenses = &OpenconfigSystem_System_License_Licenses{}
	return t.Licenses
}

// GetLicenses returns the value of the Licenses struct pointer
// from OpenconfigSystem_System_License. If the receiver or the field Licenses is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_License) GetLicenses() *OpenconfigSystem_System_License_Licenses {
	if t != nil && t.Licenses != nil {
		return t.Licenses
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_License
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_License) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Licenses.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_License"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_License) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_License.
func (*OpenconfigSystem_System_License) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_License_Licenses represents the /openconfig-system/system/license/licenses YANG schema element.
type OpenconfigSystem_System_License_Licenses struct {
	ΛMetadata []ygot.Annotation                                            `path:"@" ygotAnnotation:"true"`
	License   map[string]*OpenconfigSystem_System_License_Licenses_License `path:"license" module:"openconfig-system"`
	ΛLicense  []ygot.Annotation                                            `path:"@license" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_License_Licenses implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_License_Licenses) IsYANGGoStruct() {}

// NewLicense creates a new entry in the License list of the
// OpenconfigSystem_System_License_Licenses struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_License_Licenses) NewLicense(LicenseId string) (*OpenconfigSystem_System_License_Licenses_License, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.License == nil {
		t.License = make(map[string]*OpenconfigSystem_System_License_Licenses_License)
	}

	key := LicenseId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.License[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list License", key)
	}

	t.License[key] = &OpenconfigSystem_System_License_Licenses_License{
		LicenseId: &LicenseId,
	}

	return t.License[key], nil
}

// RenameLicense renames an entry in the list License within
// the OpenconfigSystem_System_License_Licenses struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_License_Licenses) RenameLicense(oldK, newK string) error {
	if _, ok := t.License[newK]; ok {
		return fmt.Errorf("key %v already exists in License", newK)
	}

	e, ok := t.License[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in License", oldK)
	}
	e.LicenseId = &newK

	t.License[newK] = e
	delete(t.License, oldK)
	return nil
}

// GetOrCreateLicenseMap returns the list (map) from OpenconfigSystem_System_License_Licenses.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_License_Licenses) GetOrCreateLicenseMap() map[string]*OpenconfigSystem_System_License_Licenses_License {
	if t.License == nil {
		t.License = make(map[string]*OpenconfigSystem_System_License_Licenses_License)
	}
	return t.License
}

// GetOrCreateLicense retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_License_Licenses. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_License_Licenses) GetOrCreateLicense(LicenseId string) *OpenconfigSystem_System_License_Licenses_License {

	key := LicenseId

	if v, ok := t.License[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewLicense(LicenseId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateLicense got unexpected error: %v", err))
	}
	return v
}

// GetLicense retrieves the value with the specified key from
// the License map field of OpenconfigSystem_System_License_Licenses. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_License_Licenses) GetLicense(LicenseId string) *OpenconfigSystem_System_License_Licenses_License {

	if t == nil {
		return nil
	}

	key := LicenseId

	if lm, ok := t.License[key]; ok {
		return lm
	}
	return nil
}

// AppendLicense appends the supplied OpenconfigSystem_System_License_Licenses_License struct to the
// list License of OpenconfigSystem_System_License_Licenses. If the key value(s) specified in
// the supplied OpenconfigSystem_System_License_Licenses_License already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_License_Licenses) AppendLicense(v *OpenconfigSystem_System_License_Licenses_License) error {
	if v.LicenseId == nil {
		return fmt.Errorf("invalid nil key received for LicenseId")
	}

	key := *v.LicenseId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.License == nil {
		t.License = make(map[string]*OpenconfigSystem_System_License_Licenses_License)
	}

	if _, ok := t.License[key]; ok {
		return fmt.Errorf("duplicate key for list License %v", key)
	}

	t.License[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_License_Licenses
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_License_Licenses) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.License {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_License_Licenses"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_License_Licenses) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_License_Licenses.
func (*OpenconfigSystem_System_License_Licenses) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_License_Licenses_License represents the /openconfig-system/system/license/licenses/license YANG schema element.
type OpenconfigSystem_System_License_Licenses_License struct {
	ΛMetadata  []ygot.Annotation                                        `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigSystem_System_License_Licenses_License_Config `path:"config" module:"openconfig-system"`
	ΛConfig    []ygot.Annotation                                        `path:"@config" ygotAnnotation:"true"`
	LicenseId  *string                                                  `path:"license-id" module:"openconfig-system"`
	ΛLicenseId []ygot.Annotation                                        `path:"@license-id" ygotAnnotation:"true"`
	State      *OpenconfigSystem_System_License_Licenses_License_State  `path:"state" module:"openconfig-system"`
	ΛState     []ygot.Annotation                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_License_Licenses_License implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_License_Licenses_License) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_License_Licenses_License) GetOrCreateConfig() *OpenconfigSystem_System_License_Licenses_License_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_License_Licenses_License_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_License_Licenses_License) GetOrCreateState() *OpenconfigSystem_System_License_Licenses_License_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_License_Licenses_License_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_License_Licenses_License. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_License_Licenses_License) GetConfig() *OpenconfigSystem_System_License_Licenses_License_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_License_Licenses_License. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_License_Licenses_License) GetState() *OpenconfigSystem_System_License_Licenses_License_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetLicenseId retrieves the value of the leaf LicenseId from the OpenconfigSystem_System_License_Licenses_License
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LicenseId is set, it can
// safely use t.GetLicenseId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LicenseId == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License) GetLicenseId() string {
	if t == nil || t.LicenseId == nil {
		return ""
	}
	return *t.LicenseId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_License_Licenses_License
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_License_Licenses_License) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_License_Licenses_License struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_License_Licenses_License) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LicenseId == nil {
		return nil, fmt.Errorf("nil value for key LicenseId")
	}

	return map[string]interface{}{
		"license-id": *t.LicenseId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses_License) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_License_Licenses_License"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses_License) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_License_Licenses_License) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_License_Licenses_License.
func (*OpenconfigSystem_System_License_Licenses_License) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_License_Licenses_License_Config represents the /openconfig-system/system/license/licenses/license/config YANG schema element.
type OpenconfigSystem_System_License_Licenses_License_Config struct {
	ΛMetadata    []ygot.Annotation                                                         `path:"@" ygotAnnotation:"true"`
	Active       *bool                                                                     `path:"active" module:"openconfig-system"`
	ΛActive      []ygot.Annotation                                                         `path:"@active" ygotAnnotation:"true"`
	LicenseData  OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union `path:"license-data" module:"openconfig-system"`
	ΛLicenseData []ygot.Annotation                                                         `path:"@license-data" ygotAnnotation:"true"`
	LicenseId    *string                                                                   `path:"license-id" module:"openconfig-system"`
	ΛLicenseId   []ygot.Annotation                                                         `path:"@license-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_License_Licenses_License_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_License_Licenses_License_Config) IsYANGGoStruct() {}

// GetActive retrieves the value of the leaf Active from the OpenconfigSystem_System_License_Licenses_License_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetLicenseData retrieves the value of the leaf LicenseData from the OpenconfigSystem_System_License_Licenses_License_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LicenseData is set, it can
// safely use t.GetLicenseData() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LicenseData == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) GetLicenseData() OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union {
	if t == nil || t.LicenseData == nil {
		return nil
	}
	return t.LicenseData
}

// GetLicenseId retrieves the value of the leaf LicenseId from the OpenconfigSystem_System_License_Licenses_License_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LicenseId is set, it can
// safely use t.GetLicenseId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LicenseId == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) GetLicenseId() string {
	if t == nil || t.LicenseId == nil {
		return ""
	}
	return *t.LicenseId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_License_Licenses_License_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Active == nil {
		var v bool = false
		t.Active = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_License_Licenses_License_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_License_Licenses_License_Config.
func (*OpenconfigSystem_System_License_Licenses_License_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/license/licenses/license/config/license-data within the YANG schema.
// Union type can be one of [Binary, UnionString].
type OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union interface {
	// Union type can be one of [Binary, UnionString]
	Documentation_for_OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union()
}

// Documentation_for_OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union ensures that Binary
// implements the OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union interface.
func (Binary) Documentation_for_OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union() {
}

// Documentation_for_OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union ensures that UnionString
// implements the OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union() {
}

// To_OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_License_Licenses_License_Config) To_OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union(i interface{}) (OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case []byte:
		return Binary(v), nil
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_License_Licenses_License_Config_LicenseData_Union, unknown union type, got: %T, want any of [Binary, string]", i, i)
}

// OpenconfigSystem_System_License_Licenses_License_State represents the /openconfig-system/system/license/licenses/license/state YANG schema element.
type OpenconfigSystem_System_License_Licenses_License_State struct {
	ΛMetadata       []ygot.Annotation                                                        `path:"@" ygotAnnotation:"true"`
	Active          *bool                                                                    `path:"active" module:"openconfig-system"`
	ΛActive         []ygot.Annotation                                                        `path:"@active" ygotAnnotation:"true"`
	Description     *string                                                                  `path:"description" module:"openconfig-system"`
	ΛDescription    []ygot.Annotation                                                        `path:"@description" ygotAnnotation:"true"`
	ExpirationDate  *uint64                                                                  `path:"expiration-date" module:"openconfig-system"`
	ΛExpirationDate []ygot.Annotation                                                        `path:"@expiration-date" ygotAnnotation:"true"`
	Expired         *bool                                                                    `path:"expired" module:"openconfig-system"`
	ΛExpired        []ygot.Annotation                                                        `path:"@expired" ygotAnnotation:"true"`
	InUse           *bool                                                                    `path:"in-use" module:"openconfig-system"`
	ΛInUse          []ygot.Annotation                                                        `path:"@in-use" ygotAnnotation:"true"`
	IssueDate       *uint64                                                                  `path:"issue-date" module:"openconfig-system"`
	ΛIssueDate      []ygot.Annotation                                                        `path:"@issue-date" ygotAnnotation:"true"`
	LicenseData     OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union `path:"license-data" module:"openconfig-system"`
	ΛLicenseData    []ygot.Annotation                                                        `path:"@license-data" ygotAnnotation:"true"`
	LicenseId       *string                                                                  `path:"license-id" module:"openconfig-system"`
	ΛLicenseId      []ygot.Annotation                                                        `path:"@license-id" ygotAnnotation:"true"`
	Valid           *bool                                                                    `path:"valid" module:"openconfig-system"`
	ΛValid          []ygot.Annotation                                                        `path:"@valid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_License_Licenses_License_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_License_Licenses_License_State) IsYANGGoStruct() {}

// GetActive retrieves the value of the leaf Active from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Active is set, it can
// safely use t.GetActive() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Active == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetActive() bool {
	if t == nil || t.Active == nil {
		return false
	}
	return *t.Active
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetExpirationDate retrieves the value of the leaf ExpirationDate from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ExpirationDate is set, it can
// safely use t.GetExpirationDate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ExpirationDate == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetExpirationDate() uint64 {
	if t == nil || t.ExpirationDate == nil {
		return 0
	}
	return *t.ExpirationDate
}

// GetExpired retrieves the value of the leaf Expired from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Expired is set, it can
// safely use t.GetExpired() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Expired == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetExpired() bool {
	if t == nil || t.Expired == nil {
		return false
	}
	return *t.Expired
}

// GetInUse retrieves the value of the leaf InUse from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InUse is set, it can
// safely use t.GetInUse() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InUse == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetInUse() bool {
	if t == nil || t.InUse == nil {
		return false
	}
	return *t.InUse
}

// GetIssueDate retrieves the value of the leaf IssueDate from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if IssueDate is set, it can
// safely use t.GetIssueDate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.IssueDate == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetIssueDate() uint64 {
	if t == nil || t.IssueDate == nil {
		return 0
	}
	return *t.IssueDate
}

// GetLicenseData retrieves the value of the leaf LicenseData from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LicenseData is set, it can
// safely use t.GetLicenseData() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LicenseData == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetLicenseData() OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union {
	if t == nil || t.LicenseData == nil {
		return nil
	}
	return t.LicenseData
}

// GetLicenseId retrieves the value of the leaf LicenseId from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LicenseId is set, it can
// safely use t.GetLicenseId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LicenseId == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetLicenseId() string {
	if t == nil || t.LicenseId == nil {
		return ""
	}
	return *t.LicenseId
}

// GetValid retrieves the value of the leaf Valid from the OpenconfigSystem_System_License_Licenses_License_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Valid is set, it can
// safely use t.GetValid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Valid == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_License_Licenses_License_State) GetValid() bool {
	if t == nil || t.Valid == nil {
		return false
	}
	return *t.Valid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_License_Licenses_License_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_License_Licenses_License_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Active == nil {
		var v bool = false
		t.Active = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses_License_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_License_Licenses_License_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_License_Licenses_License_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_License_Licenses_License_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_License_Licenses_License_State.
func (*OpenconfigSystem_System_License_Licenses_License_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union is an interface that is implemented by valid types for the union
// for the leaf /openconfig-system/system/license/licenses/license/state/license-data within the YANG schema.
// Union type can be one of [Binary, UnionString].
type OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union interface {
	// Union type can be one of [Binary, UnionString]
	Documentation_for_OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union()
}

// Documentation_for_OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union ensures that Binary
// implements the OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union interface.
func (Binary) Documentation_for_OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union() {
}

// Documentation_for_OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union ensures that UnionString
// implements the OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union interface.
func (UnionString) Documentation_for_OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union() {
}

// To_OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union takes an input interface{} and attempts to convert it to a struct
// which implements the OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union union. It returns an error if the interface{} supplied
// cannot be converted to a type within the union.
func (t *OpenconfigSystem_System_License_Licenses_License_State) To_OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union(i interface{}) (OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union, error) {
	if v, ok := i.(OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union); ok {
		return v, nil
	}
	switch v := i.(type) {
	case []byte:
		return Binary(v), nil
	case string:
		return UnionString(v), nil
	}
	return nil, fmt.Errorf("cannot convert %v to OpenconfigSystem_System_License_Licenses_License_State_LicenseData_Union, unknown union type, got: %T, want any of [Binary, string]", i, i)
}

// OpenconfigSystem_System_Logging represents the /openconfig-system/system/logging YANG schema element.
type OpenconfigSystem_System_Logging struct {
	ΛMetadata      []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	Console        *OpenconfigSystem_System_Logging_Console       `path:"console" module:"openconfig-system"`
	ΛConsole       []ygot.Annotation                              `path:"@console" ygotAnnotation:"true"`
	Files          *OpenconfigSystem_System_Logging_Files         `path:"files" module:"openconfig-system"`
	ΛFiles         []ygot.Annotation                              `path:"@files" ygotAnnotation:"true"`
	RemoteServers  *OpenconfigSystem_System_Logging_RemoteServers `path:"remote-servers" module:"openconfig-system"`
	ΛRemoteServers []ygot.Annotation                              `path:"@remote-servers" ygotAnnotation:"true"`
	Vty            *OpenconfigSystem_System_Logging_Vty           `path:"vty" module:"openconfig-system"`
	ΛVty           []ygot.Annotation                              `path:"@vty" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging) IsYANGGoStruct() {}

// GetOrCreateConsole retrieves the value of the Console field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging) GetOrCreateConsole() *OpenconfigSystem_System_Logging_Console {
	if t.Console != nil {
		return t.Console
	}
	t.Console = &OpenconfigSystem_System_Logging_Console{}
	return t.Console
}

// GetOrCreateFiles retrieves the value of the Files field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging) GetOrCreateFiles() *OpenconfigSystem_System_Logging_Files {
	if t.Files != nil {
		return t.Files
	}
	t.Files = &OpenconfigSystem_System_Logging_Files{}
	return t.Files
}

// GetOrCreateRemoteServers retrieves the value of the RemoteServers field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging) GetOrCreateRemoteServers() *OpenconfigSystem_System_Logging_RemoteServers {
	if t.RemoteServers != nil {
		return t.RemoteServers
	}
	t.RemoteServers = &OpenconfigSystem_System_Logging_RemoteServers{}
	return t.RemoteServers
}

// GetOrCreateVty retrieves the value of the Vty field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging) GetOrCreateVty() *OpenconfigSystem_System_Logging_Vty {
	if t.Vty != nil {
		return t.Vty
	}
	t.Vty = &OpenconfigSystem_System_Logging_Vty{}
	return t.Vty
}

// GetConsole returns the value of the Console struct pointer
// from OpenconfigSystem_System_Logging. If the receiver or the field Console is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging) GetConsole() *OpenconfigSystem_System_Logging_Console {
	if t != nil && t.Console != nil {
		return t.Console
	}
	return nil
}

// GetFiles returns the value of the Files struct pointer
// from OpenconfigSystem_System_Logging. If the receiver or the field Files is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging) GetFiles() *OpenconfigSystem_System_Logging_Files {
	if t != nil && t.Files != nil {
		return t.Files
	}
	return nil
}

// GetRemoteServers returns the value of the RemoteServers struct pointer
// from OpenconfigSystem_System_Logging. If the receiver or the field RemoteServers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging) GetRemoteServers() *OpenconfigSystem_System_Logging_RemoteServers {
	if t != nil && t.RemoteServers != nil {
		return t.RemoteServers
	}
	return nil
}

// GetVty returns the value of the Vty struct pointer
// from OpenconfigSystem_System_Logging. If the receiver or the field Vty is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging) GetVty() *OpenconfigSystem_System_Logging_Vty {
	if t != nil && t.Vty != nil {
		return t.Vty
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Console.PopulateDefaults()
	t.Files.PopulateDefaults()
	t.RemoteServers.PopulateDefaults()
	t.Vty.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging.
func (*OpenconfigSystem_System_Logging) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Console represents the /openconfig-system/system/logging/console YANG schema element.
type OpenconfigSystem_System_Logging_Console struct {
	ΛMetadata  []ygot.Annotation                                  `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigSystem_System_Logging_Console_Config    `path:"config" module:"openconfig-system"`
	ΛConfig    []ygot.Annotation                                  `path:"@config" ygotAnnotation:"true"`
	Selectors  *OpenconfigSystem_System_Logging_Console_Selectors `path:"selectors" module:"openconfig-system"`
	ΛSelectors []ygot.Annotation                                  `path:"@selectors" ygotAnnotation:"true"`
	State      *OpenconfigSystem_System_Logging_Console_State     `path:"state" module:"openconfig-system"`
	ΛState     []ygot.Annotation                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Console implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Console) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Console) GetOrCreateConfig() *OpenconfigSystem_System_Logging_Console_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_Console_Config{}
	return t.Config
}

// GetOrCreateSelectors retrieves the value of the Selectors field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Console) GetOrCreateSelectors() *OpenconfigSystem_System_Logging_Console_Selectors {
	if t.Selectors != nil {
		return t.Selectors
	}
	t.Selectors = &OpenconfigSystem_System_Logging_Console_Selectors{}
	return t.Selectors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Console) GetOrCreateState() *OpenconfigSystem_System_Logging_Console_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_Console_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_Console. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Console) GetConfig() *OpenconfigSystem_System_Logging_Console_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetSelectors returns the value of the Selectors struct pointer
// from OpenconfigSystem_System_Logging_Console. If the receiver or the field Selectors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Console) GetSelectors() *OpenconfigSystem_System_Logging_Console_Selectors {
	if t != nil && t.Selectors != nil {
		return t.Selectors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_Console. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Console) GetState() *OpenconfigSystem_System_Logging_Console_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Console
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Console) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Selectors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Console"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Console) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Console.
func (*OpenconfigSystem_System_Logging_Console) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Console_Config represents the /openconfig-system/system/logging/console/config YANG schema element.
type OpenconfigSystem_System_Logging_Console_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Console_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Console_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Console_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Console_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Console_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Console_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Console_Config.
func (*OpenconfigSystem_System_Logging_Console_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Console_Selectors represents the /openconfig-system/system/logging/console/selectors YANG schema element.
type OpenconfigSystem_System_Logging_Console_Selectors struct {
	ΛMetadata []ygot.Annotation                                                                                                              `path:"@" ygotAnnotation:"true"`
	Selector  map[OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Console_Selectors_Selector `path:"selector" module:"openconfig-system"`
	ΛSelector []ygot.Annotation                                                                                                              `path:"@selector" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Console_Selectors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Console_Selectors) IsYANGGoStruct() {}

// OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key represents the key for list Selector of element /openconfig-system/system/logging/console/selectors.
type OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key struct {
	Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility"`
	Severity E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity"`
}

// IsYANGGoKeyStruct ensures that OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key) IsYANGGoKeyStruct() {}

// ΛListKeyMap returns the values of the OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key key struct.
func (t OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// NewSelector creates a new entry in the Selector list of the
// OpenconfigSystem_System_Logging_Console_Selectors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) NewSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) (*OpenconfigSystem_System_Logging_Console_Selectors_Selector, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Console_Selectors_Selector)
	}

	key := OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Selector[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Selector", key)
	}

	t.Selector[key] = &OpenconfigSystem_System_Logging_Console_Selectors_Selector{
		Facility: Facility,
		Severity: Severity,
	}

	return t.Selector[key], nil
}

// RenameSelector renames an entry in the list Selector within
// the OpenconfigSystem_System_Logging_Console_Selectors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) RenameSelector(oldK, newK OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key) error {
	if _, ok := t.Selector[newK]; ok {
		return fmt.Errorf("key %v already exists in Selector", newK)
	}

	e, ok := t.Selector[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Selector", oldK)
	}
	e.Facility = newK.Facility
	e.Severity = newK.Severity

	t.Selector[newK] = e
	delete(t.Selector, oldK)
	return nil
}

// GetOrCreateSelectorMap returns the list (map) from OpenconfigSystem_System_Logging_Console_Selectors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) GetOrCreateSelectorMap() map[OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Console_Selectors_Selector {
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Console_Selectors_Selector)
	}
	return t.Selector
}

// GetOrCreateSelector retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Logging_Console_Selectors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) GetOrCreateSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_Console_Selectors_Selector {

	key := OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if v, ok := t.Selector[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSelector(Facility, Severity)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSelector got unexpected error: %v", err))
	}
	return v
}

// GetSelector retrieves the value with the specified key from
// the Selector map field of OpenconfigSystem_System_Logging_Console_Selectors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) GetSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_Console_Selectors_Selector {

	if t == nil {
		return nil
	}

	key := OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if lm, ok := t.Selector[key]; ok {
		return lm
	}
	return nil
}

// AppendSelector appends the supplied OpenconfigSystem_System_Logging_Console_Selectors_Selector struct to the
// list Selector of OpenconfigSystem_System_Logging_Console_Selectors. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Logging_Console_Selectors_Selector already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) AppendSelector(v *OpenconfigSystem_System_Logging_Console_Selectors_Selector) error {
	key := OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key{
		Facility: v.Facility,
		Severity: v.Severity,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Console_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Console_Selectors_Selector)
	}

	if _, ok := t.Selector[key]; ok {
		return fmt.Errorf("duplicate key for list Selector %v", key)
	}

	t.Selector[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Console_Selectors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Selector {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Console_Selectors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Console_Selectors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Console_Selectors.
func (*OpenconfigSystem_System_Logging_Console_Selectors) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Console_Selectors_Selector represents the /openconfig-system/system/logging/console/selectors/selector YANG schema element.
type OpenconfigSystem_System_Logging_Console_Selectors_Selector struct {
	ΛMetadata []ygot.Annotation                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                                  `path:"@config" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY                          `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                                                  `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity                           `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                                                  `path:"@severity" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Console_Selectors_Selector implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Console_Selectors_Selector) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) GetOrCreateConfig() *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) GetOrCreateState() *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_Console_Selectors_Selector_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_Console_Selectors_Selector. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) GetConfig() *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_Console_Selectors_Selector. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) GetState() *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Console_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Console_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Console_Selectors_Selector
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Logging_Console_Selectors_Selector struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Console_Selectors_Selector"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Console_Selectors_Selector.
func (*OpenconfigSystem_System_Logging_Console_Selectors_Selector) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config represents the /openconfig-system/system/logging/console/selectors/selector/config YANG schema element.
type OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) IsYANGGoStruct() {}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config.
func (*OpenconfigSystem_System_Logging_Console_Selectors_Selector_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Console_Selectors_Selector_State represents the /openconfig-system/system/logging/console/selectors/selector/state YANG schema element.
type OpenconfigSystem_System_Logging_Console_Selectors_Selector_State struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Console_Selectors_Selector_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) IsYANGGoStruct() {}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Console_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Console_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Console_Selectors_Selector_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Console_Selectors_Selector_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Console_Selectors_Selector_State.
func (*OpenconfigSystem_System_Logging_Console_Selectors_Selector_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Console_State represents the /openconfig-system/system/logging/console/state YANG schema element.
type OpenconfigSystem_System_Logging_Console_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Console_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Console_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Console_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Console_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Console_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Console_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Console_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Console_State.
func (*OpenconfigSystem_System_Logging_Console_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files represents the /openconfig-system/system/logging/files YANG schema element.
type OpenconfigSystem_System_Logging_Files struct {
	ΛMetadata []ygot.Annotation                                                                              `path:"@" ygotAnnotation:"true"`
	File      map[OpenconfigSystem_System_Logging_Files_File_Key]*OpenconfigSystem_System_Logging_Files_File `path:"file" module:"openconfig-system"`
	ΛFile     []ygot.Annotation                                                                              `path:"@file" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files) IsYANGGoStruct() {}

// OpenconfigSystem_System_Logging_Files_File_Key represents the key for list File of element /openconfig-system/system/logging/files.
type OpenconfigSystem_System_Logging_Files_File_Key struct {
	Path           string `path:"path"`
	FilenamePrefix string `path:"filename-prefix"`
}

// IsYANGGoKeyStruct ensures that OpenconfigSystem_System_Logging_Files_File_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigSystem_System_Logging_Files_File_Key) IsYANGGoKeyStruct() {}

// ΛListKeyMap returns the values of the OpenconfigSystem_System_Logging_Files_File_Key key struct.
func (t OpenconfigSystem_System_Logging_Files_File_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"path":            t.Path,
		"filename-prefix": t.FilenamePrefix,
	}, nil
}

// NewFile creates a new entry in the File list of the
// OpenconfigSystem_System_Logging_Files struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Logging_Files) NewFile(Path string, FilenamePrefix string) (*OpenconfigSystem_System_Logging_Files_File, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.File == nil {
		t.File = make(map[OpenconfigSystem_System_Logging_Files_File_Key]*OpenconfigSystem_System_Logging_Files_File)
	}

	key := OpenconfigSystem_System_Logging_Files_File_Key{
		Path:           Path,
		FilenamePrefix: FilenamePrefix,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.File[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list File", key)
	}

	t.File[key] = &OpenconfigSystem_System_Logging_Files_File{
		Path:           &Path,
		FilenamePrefix: &FilenamePrefix,
	}

	return t.File[key], nil
}

// RenameFile renames an entry in the list File within
// the OpenconfigSystem_System_Logging_Files struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Logging_Files) RenameFile(oldK, newK OpenconfigSystem_System_Logging_Files_File_Key) error {
	if _, ok := t.File[newK]; ok {
		return fmt.Errorf("key %v already exists in File", newK)
	}

	e, ok := t.File[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in File", oldK)
	}
	e.Path = &newK.Path
	e.FilenamePrefix = &newK.FilenamePrefix

	t.File[newK] = e
	delete(t.File, oldK)
	return nil
}

// GetOrCreateFileMap returns the list (map) from OpenconfigSystem_System_Logging_Files.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Logging_Files) GetOrCreateFileMap() map[OpenconfigSystem_System_Logging_Files_File_Key]*OpenconfigSystem_System_Logging_Files_File {
	if t.File == nil {
		t.File = make(map[OpenconfigSystem_System_Logging_Files_File_Key]*OpenconfigSystem_System_Logging_Files_File)
	}
	return t.File
}

// GetOrCreateFile retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Logging_Files. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Logging_Files) GetOrCreateFile(Path string, FilenamePrefix string) *OpenconfigSystem_System_Logging_Files_File {

	key := OpenconfigSystem_System_Logging_Files_File_Key{
		Path:           Path,
		FilenamePrefix: FilenamePrefix,
	}

	if v, ok := t.File[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewFile(Path, FilenamePrefix)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateFile got unexpected error: %v", err))
	}
	return v
}

// GetFile retrieves the value with the specified key from
// the File map field of OpenconfigSystem_System_Logging_Files. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Logging_Files) GetFile(Path string, FilenamePrefix string) *OpenconfigSystem_System_Logging_Files_File {

	if t == nil {
		return nil
	}

	key := OpenconfigSystem_System_Logging_Files_File_Key{
		Path:           Path,
		FilenamePrefix: FilenamePrefix,
	}

	if lm, ok := t.File[key]; ok {
		return lm
	}
	return nil
}

// AppendFile appends the supplied OpenconfigSystem_System_Logging_Files_File struct to the
// list File of OpenconfigSystem_System_Logging_Files. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Logging_Files_File already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Logging_Files) AppendFile(v *OpenconfigSystem_System_Logging_Files_File) error {
	if v.Path == nil {
		return fmt.Errorf("invalid nil key for Path")
	}

	if v.FilenamePrefix == nil {
		return fmt.Errorf("invalid nil key for FilenamePrefix")
	}

	key := OpenconfigSystem_System_Logging_Files_File_Key{
		Path:           *v.Path,
		FilenamePrefix: *v.FilenamePrefix,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.File == nil {
		t.File = make(map[OpenconfigSystem_System_Logging_Files_File_Key]*OpenconfigSystem_System_Logging_Files_File)
	}

	if _, ok := t.File[key]; ok {
		return fmt.Errorf("duplicate key for list File %v", key)
	}

	t.File[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.File {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files.
func (*OpenconfigSystem_System_Logging_Files) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files_File represents the /openconfig-system/system/logging/files/file YANG schema element.
type OpenconfigSystem_System_Logging_Files_File struct {
	ΛMetadata       []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	Config          *OpenconfigSystem_System_Logging_Files_File_Config    `path:"config" module:"openconfig-system"`
	ΛConfig         []ygot.Annotation                                     `path:"@config" ygotAnnotation:"true"`
	FilenamePrefix  *string                                               `path:"filename-prefix" module:"openconfig-system"`
	ΛFilenamePrefix []ygot.Annotation                                     `path:"@filename-prefix" ygotAnnotation:"true"`
	Path            *string                                               `path:"path" module:"openconfig-system"`
	ΛPath           []ygot.Annotation                                     `path:"@path" ygotAnnotation:"true"`
	Selectors       *OpenconfigSystem_System_Logging_Files_File_Selectors `path:"selectors" module:"openconfig-system"`
	ΛSelectors      []ygot.Annotation                                     `path:"@selectors" ygotAnnotation:"true"`
	State           *OpenconfigSystem_System_Logging_Files_File_State     `path:"state" module:"openconfig-system"`
	ΛState          []ygot.Annotation                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files_File implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files_File) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Files_File) GetOrCreateConfig() *OpenconfigSystem_System_Logging_Files_File_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_Files_File_Config{}
	return t.Config
}

// GetOrCreateSelectors retrieves the value of the Selectors field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Files_File) GetOrCreateSelectors() *OpenconfigSystem_System_Logging_Files_File_Selectors {
	if t.Selectors != nil {
		return t.Selectors
	}
	t.Selectors = &OpenconfigSystem_System_Logging_Files_File_Selectors{}
	return t.Selectors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Files_File) GetOrCreateState() *OpenconfigSystem_System_Logging_Files_File_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_Files_File_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_Files_File. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Files_File) GetConfig() *OpenconfigSystem_System_Logging_Files_File_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetSelectors returns the value of the Selectors struct pointer
// from OpenconfigSystem_System_Logging_Files_File. If the receiver or the field Selectors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Files_File) GetSelectors() *OpenconfigSystem_System_Logging_Files_File_Selectors {
	if t != nil && t.Selectors != nil {
		return t.Selectors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_Files_File. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Files_File) GetState() *OpenconfigSystem_System_Logging_Files_File_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFilenamePrefix retrieves the value of the leaf FilenamePrefix from the OpenconfigSystem_System_Logging_Files_File
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FilenamePrefix is set, it can
// safely use t.GetFilenamePrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FilenamePrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File) GetFilenamePrefix() string {
	if t == nil || t.FilenamePrefix == nil {
		return ""
	}
	return *t.FilenamePrefix
}

// GetPath retrieves the value of the leaf Path from the OpenconfigSystem_System_Logging_Files_File
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Path is set, it can
// safely use t.GetPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Path == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File) GetPath() string {
	if t == nil || t.Path == nil {
		return ""
	}
	return *t.Path
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files_File
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files_File) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Selectors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Logging_Files_File struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Logging_Files_File) ΛListKeyMap() (map[string]interface{}, error) {
	if t.FilenamePrefix == nil {
		return nil, fmt.Errorf("nil value for key FilenamePrefix")
	}

	if t.Path == nil {
		return nil, fmt.Errorf("nil value for key Path")
	}

	return map[string]interface{}{
		"filename-prefix": *t.FilenamePrefix,
		"path":            *t.Path,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files_File"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files_File) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files_File.
func (*OpenconfigSystem_System_Logging_Files_File) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files_File_Config represents the /openconfig-system/system/logging/files/file/config YANG schema element.
type OpenconfigSystem_System_Logging_Files_File_Config struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	FilenamePrefix  *string           `path:"filename-prefix" module:"openconfig-system"`
	ΛFilenamePrefix []ygot.Annotation `path:"@filename-prefix" ygotAnnotation:"true"`
	MaxOpenTime     *uint32           `path:"max-open-time" module:"openconfig-system"`
	ΛMaxOpenTime    []ygot.Annotation `path:"@max-open-time" ygotAnnotation:"true"`
	MaxSize         *uint32           `path:"max-size" module:"openconfig-system"`
	ΛMaxSize        []ygot.Annotation `path:"@max-size" ygotAnnotation:"true"`
	Path            *string           `path:"path" module:"openconfig-system"`
	ΛPath           []ygot.Annotation `path:"@path" ygotAnnotation:"true"`
	Rotate          *uint32           `path:"rotate" module:"openconfig-system"`
	ΛRotate         []ygot.Annotation `path:"@rotate" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files_File_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files_File_Config) IsYANGGoStruct() {}

// GetFilenamePrefix retrieves the value of the leaf FilenamePrefix from the OpenconfigSystem_System_Logging_Files_File_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FilenamePrefix is set, it can
// safely use t.GetFilenamePrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FilenamePrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) GetFilenamePrefix() string {
	if t == nil || t.FilenamePrefix == nil {
		return ""
	}
	return *t.FilenamePrefix
}

// GetMaxOpenTime retrieves the value of the leaf MaxOpenTime from the OpenconfigSystem_System_Logging_Files_File_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxOpenTime is set, it can
// safely use t.GetMaxOpenTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxOpenTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) GetMaxOpenTime() uint32 {
	if t == nil || t.MaxOpenTime == nil {
		return 1440
	}
	return *t.MaxOpenTime
}

// GetMaxSize retrieves the value of the leaf MaxSize from the OpenconfigSystem_System_Logging_Files_File_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxSize is set, it can
// safely use t.GetMaxSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxSize == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) GetMaxSize() uint32 {
	if t == nil || t.MaxSize == nil {
		return 1000
	}
	return *t.MaxSize
}

// GetPath retrieves the value of the leaf Path from the OpenconfigSystem_System_Logging_Files_File_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Path is set, it can
// safely use t.GetPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Path == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) GetPath() string {
	if t == nil || t.Path == nil {
		return ""
	}
	return *t.Path
}

// GetRotate retrieves the value of the leaf Rotate from the OpenconfigSystem_System_Logging_Files_File_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Rotate is set, it can
// safely use t.GetRotate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Rotate == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) GetRotate() uint32 {
	if t == nil || t.Rotate == nil {
		return 0
	}
	return *t.Rotate
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files_File_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaxOpenTime == nil {
		var v uint32 = 1440
		t.MaxOpenTime = &v
	}
	if t.MaxSize == nil {
		var v uint32 = 1000
		t.MaxSize = &v
	}
	if t.Rotate == nil {
		var v uint32 = 0
		t.Rotate = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files_File_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files_File_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files_File_Config.
func (*OpenconfigSystem_System_Logging_Files_File_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files_File_Selectors represents the /openconfig-system/system/logging/files/file/selectors YANG schema element.
type OpenconfigSystem_System_Logging_Files_File_Selectors struct {
	ΛMetadata []ygot.Annotation                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Selector  map[OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector `path:"selector" module:"openconfig-system"`
	ΛSelector []ygot.Annotation                                                                                                                    `path:"@selector" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files_File_Selectors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors) IsYANGGoStruct() {}

// OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key represents the key for list Selector of element /openconfig-system/system/logging/files/file/selectors.
type OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key struct {
	Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility"`
	Severity E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity"`
}

// IsYANGGoKeyStruct ensures that OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key) IsYANGGoKeyStruct() {}

// ΛListKeyMap returns the values of the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key key struct.
func (t OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// NewSelector creates a new entry in the Selector list of the
// OpenconfigSystem_System_Logging_Files_File_Selectors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) NewSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) (*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector)
	}

	key := OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Selector[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Selector", key)
	}

	t.Selector[key] = &OpenconfigSystem_System_Logging_Files_File_Selectors_Selector{
		Facility: Facility,
		Severity: Severity,
	}

	return t.Selector[key], nil
}

// RenameSelector renames an entry in the list Selector within
// the OpenconfigSystem_System_Logging_Files_File_Selectors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) RenameSelector(oldK, newK OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key) error {
	if _, ok := t.Selector[newK]; ok {
		return fmt.Errorf("key %v already exists in Selector", newK)
	}

	e, ok := t.Selector[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Selector", oldK)
	}
	e.Facility = newK.Facility
	e.Severity = newK.Severity

	t.Selector[newK] = e
	delete(t.Selector, oldK)
	return nil
}

// GetOrCreateSelectorMap returns the list (map) from OpenconfigSystem_System_Logging_Files_File_Selectors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) GetOrCreateSelectorMap() map[OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector {
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector)
	}
	return t.Selector
}

// GetOrCreateSelector retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Logging_Files_File_Selectors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) GetOrCreateSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector {

	key := OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if v, ok := t.Selector[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSelector(Facility, Severity)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSelector got unexpected error: %v", err))
	}
	return v
}

// GetSelector retrieves the value with the specified key from
// the Selector map field of OpenconfigSystem_System_Logging_Files_File_Selectors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) GetSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector {

	if t == nil {
		return nil
	}

	key := OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if lm, ok := t.Selector[key]; ok {
		return lm
	}
	return nil
}

// AppendSelector appends the supplied OpenconfigSystem_System_Logging_Files_File_Selectors_Selector struct to the
// list Selector of OpenconfigSystem_System_Logging_Files_File_Selectors. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Logging_Files_File_Selectors_Selector already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) AppendSelector(v *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) error {
	key := OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key{
		Facility: v.Facility,
		Severity: v.Severity,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector)
	}

	if _, ok := t.Selector[key]; ok {
		return fmt.Errorf("duplicate key for list Selector %v", key)
	}

	t.Selector[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files_File_Selectors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Selector {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files_File_Selectors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files_File_Selectors.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files_File_Selectors_Selector represents the /openconfig-system/system/logging/files/file/selectors/selector YANG schema element.
type OpenconfigSystem_System_Logging_Files_File_Selectors_Selector struct {
	ΛMetadata []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                                     `path:"@config" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY                             `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                                                     `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity                              `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                                                     `path:"@severity" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files_File_Selectors_Selector implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) GetOrCreateConfig() *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) GetOrCreateState() *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_Files_File_Selectors_Selector. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) GetConfig() *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_Files_File_Selectors_Selector. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) GetState() *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files_File_Selectors_Selector"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files_File_Selectors_Selector.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config represents the /openconfig-system/system/logging/files/file/selectors/selector/config YANG schema element.
type OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) IsYANGGoStruct() {}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State represents the /openconfig-system/system/logging/files/file/selectors/selector/state YANG schema element.
type OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) IsYANGGoStruct() {}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State.
func (*OpenconfigSystem_System_Logging_Files_File_Selectors_Selector_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Files_File_State represents the /openconfig-system/system/logging/files/file/state YANG schema element.
type OpenconfigSystem_System_Logging_Files_File_State struct {
	ΛMetadata       []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	FilenamePrefix  *string           `path:"filename-prefix" module:"openconfig-system"`
	ΛFilenamePrefix []ygot.Annotation `path:"@filename-prefix" ygotAnnotation:"true"`
	MaxOpenTime     *uint32           `path:"max-open-time" module:"openconfig-system"`
	ΛMaxOpenTime    []ygot.Annotation `path:"@max-open-time" ygotAnnotation:"true"`
	MaxSize         *uint32           `path:"max-size" module:"openconfig-system"`
	ΛMaxSize        []ygot.Annotation `path:"@max-size" ygotAnnotation:"true"`
	OpenLogfile     *string           `path:"open-logfile" module:"openconfig-system"`
	ΛOpenLogfile    []ygot.Annotation `path:"@open-logfile" ygotAnnotation:"true"`
	Path            *string           `path:"path" module:"openconfig-system"`
	ΛPath           []ygot.Annotation `path:"@path" ygotAnnotation:"true"`
	Rotate          *uint32           `path:"rotate" module:"openconfig-system"`
	ΛRotate         []ygot.Annotation `path:"@rotate" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Files_File_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Files_File_State) IsYANGGoStruct() {}

// GetFilenamePrefix retrieves the value of the leaf FilenamePrefix from the OpenconfigSystem_System_Logging_Files_File_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FilenamePrefix is set, it can
// safely use t.GetFilenamePrefix() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FilenamePrefix == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_State) GetFilenamePrefix() string {
	if t == nil || t.FilenamePrefix == nil {
		return ""
	}
	return *t.FilenamePrefix
}

// GetMaxOpenTime retrieves the value of the leaf MaxOpenTime from the OpenconfigSystem_System_Logging_Files_File_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxOpenTime is set, it can
// safely use t.GetMaxOpenTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxOpenTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_State) GetMaxOpenTime() uint32 {
	if t == nil || t.MaxOpenTime == nil {
		return 1440
	}
	return *t.MaxOpenTime
}

// GetMaxSize retrieves the value of the leaf MaxSize from the OpenconfigSystem_System_Logging_Files_File_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxSize is set, it can
// safely use t.GetMaxSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxSize == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_State) GetMaxSize() uint32 {
	if t == nil || t.MaxSize == nil {
		return 1000
	}
	return *t.MaxSize
}

// GetOpenLogfile retrieves the value of the leaf OpenLogfile from the OpenconfigSystem_System_Logging_Files_File_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OpenLogfile is set, it can
// safely use t.GetOpenLogfile() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OpenLogfile == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_State) GetOpenLogfile() string {
	if t == nil || t.OpenLogfile == nil {
		return ""
	}
	return *t.OpenLogfile
}

// GetPath retrieves the value of the leaf Path from the OpenconfigSystem_System_Logging_Files_File_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Path is set, it can
// safely use t.GetPath() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Path == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_State) GetPath() string {
	if t == nil || t.Path == nil {
		return ""
	}
	return *t.Path
}

// GetRotate retrieves the value of the leaf Rotate from the OpenconfigSystem_System_Logging_Files_File_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Rotate is set, it can
// safely use t.GetRotate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Rotate == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Files_File_State) GetRotate() uint32 {
	if t == nil || t.Rotate == nil {
		return 0
	}
	return *t.Rotate
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Files_File_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Files_File_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.MaxOpenTime == nil {
		var v uint32 = 1440
		t.MaxOpenTime = &v
	}
	if t.MaxSize == nil {
		var v uint32 = 1000
		t.MaxSize = &v
	}
	if t.Rotate == nil {
		var v uint32 = 0
		t.Rotate = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Files_File_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Files_File_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Files_File_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Files_File_State.
func (*OpenconfigSystem_System_Logging_Files_File_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers represents the /openconfig-system/system/logging/remote-servers YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers struct {
	ΛMetadata     []ygot.Annotation                                                      `path:"@" ygotAnnotation:"true"`
	RemoteServer  map[string]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer `path:"remote-server" module:"openconfig-system"`
	ΛRemoteServer []ygot.Annotation                                                      `path:"@remote-server" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers) IsYANGGoStruct() {}

// NewRemoteServer creates a new entry in the RemoteServer list of the
// OpenconfigSystem_System_Logging_RemoteServers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Logging_RemoteServers) NewRemoteServer(Host string) (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RemoteServer == nil {
		t.RemoteServer = make(map[string]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer)
	}

	key := Host

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RemoteServer[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RemoteServer", key)
	}

	t.RemoteServer[key] = &OpenconfigSystem_System_Logging_RemoteServers_RemoteServer{
		Host: &Host,
	}

	return t.RemoteServer[key], nil
}

// RenameRemoteServer renames an entry in the list RemoteServer within
// the OpenconfigSystem_System_Logging_RemoteServers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Logging_RemoteServers) RenameRemoteServer(oldK, newK string) error {
	if _, ok := t.RemoteServer[newK]; ok {
		return fmt.Errorf("key %v already exists in RemoteServer", newK)
	}

	e, ok := t.RemoteServer[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in RemoteServer", oldK)
	}
	e.Host = &newK

	t.RemoteServer[newK] = e
	delete(t.RemoteServer, oldK)
	return nil
}

// GetOrCreateRemoteServerMap returns the list (map) from OpenconfigSystem_System_Logging_RemoteServers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Logging_RemoteServers) GetOrCreateRemoteServerMap() map[string]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer {
	if t.RemoteServer == nil {
		t.RemoteServer = make(map[string]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer)
	}
	return t.RemoteServer
}

// GetOrCreateRemoteServer retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Logging_RemoteServers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Logging_RemoteServers) GetOrCreateRemoteServer(Host string) *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer {

	key := Host

	if v, ok := t.RemoteServer[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewRemoteServer(Host)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateRemoteServer got unexpected error: %v", err))
	}
	return v
}

// GetRemoteServer retrieves the value with the specified key from
// the RemoteServer map field of OpenconfigSystem_System_Logging_RemoteServers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Logging_RemoteServers) GetRemoteServer(Host string) *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer {

	if t == nil {
		return nil
	}

	key := Host

	if lm, ok := t.RemoteServer[key]; ok {
		return lm
	}
	return nil
}

// AppendRemoteServer appends the supplied OpenconfigSystem_System_Logging_RemoteServers_RemoteServer struct to the
// list RemoteServer of OpenconfigSystem_System_Logging_RemoteServers. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Logging_RemoteServers_RemoteServer already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Logging_RemoteServers) AppendRemoteServer(v *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) error {
	if v.Host == nil {
		return fmt.Errorf("invalid nil key received for Host")
	}

	key := *v.Host

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RemoteServer == nil {
		t.RemoteServer = make(map[string]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer)
	}

	if _, ok := t.RemoteServer[key]; ok {
		return fmt.Errorf("duplicate key for list RemoteServer %v", key)
	}

	t.RemoteServer[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.RemoteServer {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers.
func (*OpenconfigSystem_System_Logging_RemoteServers) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer represents the /openconfig-system/system/logging/remote-servers/remote-server YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer struct {
	ΛMetadata  []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config    `path:"config" module:"openconfig-system"`
	ΛConfig    []ygot.Annotation                                                     `path:"@config" ygotAnnotation:"true"`
	Host       *string                                                               `path:"host" module:"openconfig-system"`
	ΛHost      []ygot.Annotation                                                     `path:"@host" ygotAnnotation:"true"`
	Selectors  *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors `path:"selectors" module:"openconfig-system"`
	ΛSelectors []ygot.Annotation                                                     `path:"@selectors" ygotAnnotation:"true"`
	State      *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State     `path:"state" module:"openconfig-system"`
	ΛState     []ygot.Annotation                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) GetOrCreateConfig() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config{}
	return t.Config
}

// GetOrCreateSelectors retrieves the value of the Selectors field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) GetOrCreateSelectors() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors {
	if t.Selectors != nil {
		return t.Selectors
	}
	t.Selectors = &OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors{}
	return t.Selectors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) GetOrCreateState() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_RemoteServers_RemoteServer. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) GetConfig() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetSelectors returns the value of the Selectors struct pointer
// from OpenconfigSystem_System_Logging_RemoteServers_RemoteServer. If the receiver or the field Selectors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) GetSelectors() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors {
	if t != nil && t.Selectors != nil {
		return t.Selectors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_RemoteServers_RemoteServer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) GetState() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetHost retrieves the value of the leaf Host from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Host is set, it can
// safely use t.GetHost() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Host == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) GetHost() string {
	if t == nil || t.Host == nil {
		return ""
	}
	return *t.Host
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Selectors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Host == nil {
		return nil, fmt.Errorf("nil value for key Host")
	}

	return map[string]interface{}{
		"host": *t.Host,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers_RemoteServer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config represents the /openconfig-system/system/logging/remote-servers/remote-server/config YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Host             *string           `path:"host" module:"openconfig-system"`
	ΛHost            []ygot.Annotation `path:"@host" ygotAnnotation:"true"`
	NetworkInstance  *string           `path:"network-instance" module:"openconfig-system"`
	ΛNetworkInstance []ygot.Annotation `path:"@network-instance" ygotAnnotation:"true"`
	RemotePort       *uint16           `path:"remote-port" module:"openconfig-system"`
	ΛRemotePort      []ygot.Annotation `path:"@remote-port" ygotAnnotation:"true"`
	SourceAddress    *string           `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress   []ygot.Annotation `path:"@source-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) IsYANGGoStruct() {}

// GetHost retrieves the value of the leaf Host from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Host is set, it can
// safely use t.GetHost() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Host == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) GetHost() string {
	if t == nil || t.Host == nil {
		return ""
	}
	return *t.Host
}

// GetNetworkInstance retrieves the value of the leaf NetworkInstance from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkInstance is set, it can
// safely use t.GetNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) GetNetworkInstance() string {
	if t == nil || t.NetworkInstance == nil {
		return ""
	}
	return *t.NetworkInstance
}

// GetRemotePort retrieves the value of the leaf RemotePort from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemotePort is set, it can
// safely use t.GetRemotePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemotePort == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) GetRemotePort() uint16 {
	if t == nil || t.RemotePort == nil {
		return 514
	}
	return *t.RemotePort
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RemotePort == nil {
		var v uint16 = 514
		t.RemotePort = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors represents the /openconfig-system/system/logging/remote-servers/remote-server/selectors YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                    `path:"@" ygotAnnotation:"true"`
	Selector  map[OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector `path:"selector" module:"openconfig-system"`
	ΛSelector []ygot.Annotation                                                                                                                                                    `path:"@selector" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) IsYANGGoStruct() {}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key represents the key for list Selector of element /openconfig-system/system/logging/remote-servers/remote-server/selectors.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key struct {
	Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility"`
	Severity E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity"`
}

// IsYANGGoKeyStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key key struct.
func (t OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// NewSelector creates a new entry in the Selector list of the
// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) NewSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector)
	}

	key := OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Selector[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Selector", key)
	}

	t.Selector[key] = &OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector{
		Facility: Facility,
		Severity: Severity,
	}

	return t.Selector[key], nil
}

// RenameSelector renames an entry in the list Selector within
// the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) RenameSelector(oldK, newK OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key) error {
	if _, ok := t.Selector[newK]; ok {
		return fmt.Errorf("key %v already exists in Selector", newK)
	}

	e, ok := t.Selector[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Selector", oldK)
	}
	e.Facility = newK.Facility
	e.Severity = newK.Severity

	t.Selector[newK] = e
	delete(t.Selector, oldK)
	return nil
}

// GetOrCreateSelectorMap returns the list (map) from OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) GetOrCreateSelectorMap() map[OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector {
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector)
	}
	return t.Selector
}

// GetOrCreateSelector retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) GetOrCreateSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector {

	key := OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if v, ok := t.Selector[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSelector(Facility, Severity)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSelector got unexpected error: %v", err))
	}
	return v
}

// GetSelector retrieves the value with the specified key from
// the Selector map field of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) GetSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector {

	if t == nil {
		return nil
	}

	key := OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if lm, ok := t.Selector[key]; ok {
		return lm
	}
	return nil
}

// AppendSelector appends the supplied OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector struct to the
// list Selector of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) AppendSelector(v *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) error {
	key := OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key{
		Facility: v.Facility,
		Severity: v.Severity,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector)
	}

	if _, ok := t.Selector[key]; ok {
		return fmt.Errorf("duplicate key for list Selector %v", key)
	}

	t.Selector[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Selector {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector represents the /openconfig-system/system/logging/remote-servers/remote-server/selectors/selector YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector struct {
	ΛMetadata []ygot.Annotation                                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                                                     `path:"@config" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY                                             `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                                                                     `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity                                              `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                                                                     `path:"@severity" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) GetOrCreateConfig() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) GetOrCreateState() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) GetConfig() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) GetState() *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config represents the /openconfig-system/system/logging/remote-servers/remote-server/selectors/selector/config YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) IsYANGGoStruct() {
}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State represents the /openconfig-system/system/logging/remote-servers/remote-server/selectors/selector/state YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) IsYANGGoStruct() {
}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_Selectors_Selector_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State represents the /openconfig-system/system/logging/remote-servers/remote-server/state YANG schema element.
type OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Host             *string           `path:"host" module:"openconfig-system"`
	ΛHost            []ygot.Annotation `path:"@host" ygotAnnotation:"true"`
	NetworkInstance  *string           `path:"network-instance" module:"openconfig-system"`
	ΛNetworkInstance []ygot.Annotation `path:"@network-instance" ygotAnnotation:"true"`
	RemotePort       *uint16           `path:"remote-port" module:"openconfig-system"`
	ΛRemotePort      []ygot.Annotation `path:"@remote-port" ygotAnnotation:"true"`
	SourceAddress    *string           `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress   []ygot.Annotation `path:"@source-address" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) IsYANGGoStruct() {}

// GetHost retrieves the value of the leaf Host from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Host is set, it can
// safely use t.GetHost() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Host == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) GetHost() string {
	if t == nil || t.Host == nil {
		return ""
	}
	return *t.Host
}

// GetNetworkInstance retrieves the value of the leaf NetworkInstance from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkInstance is set, it can
// safely use t.GetNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) GetNetworkInstance() string {
	if t == nil || t.NetworkInstance == nil {
		return ""
	}
	return *t.NetworkInstance
}

// GetRemotePort retrieves the value of the leaf RemotePort from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RemotePort is set, it can
// safely use t.GetRemotePort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RemotePort == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) GetRemotePort() uint16 {
	if t == nil || t.RemotePort == nil {
		return 514
	}
	return *t.RemotePort
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.RemotePort == nil {
		var v uint16 = 514
		t.RemotePort = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State.
func (*OpenconfigSystem_System_Logging_RemoteServers_RemoteServer_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Vty represents the /openconfig-system/system/logging/vty YANG schema element.
type OpenconfigSystem_System_Logging_Vty struct {
	ΛMetadata  []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigSystem_System_Logging_Vty_Config    `path:"config" module:"openconfig-system"`
	ΛConfig    []ygot.Annotation                              `path:"@config" ygotAnnotation:"true"`
	Selectors  *OpenconfigSystem_System_Logging_Vty_Selectors `path:"selectors" module:"openconfig-system"`
	ΛSelectors []ygot.Annotation                              `path:"@selectors" ygotAnnotation:"true"`
	State      *OpenconfigSystem_System_Logging_Vty_State     `path:"state" module:"openconfig-system"`
	ΛState     []ygot.Annotation                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Vty implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Vty) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Vty) GetOrCreateConfig() *OpenconfigSystem_System_Logging_Vty_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_Vty_Config{}
	return t.Config
}

// GetOrCreateSelectors retrieves the value of the Selectors field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Vty) GetOrCreateSelectors() *OpenconfigSystem_System_Logging_Vty_Selectors {
	if t.Selectors != nil {
		return t.Selectors
	}
	t.Selectors = &OpenconfigSystem_System_Logging_Vty_Selectors{}
	return t.Selectors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Vty) GetOrCreateState() *OpenconfigSystem_System_Logging_Vty_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_Vty_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_Vty. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Vty) GetConfig() *OpenconfigSystem_System_Logging_Vty_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetSelectors returns the value of the Selectors struct pointer
// from OpenconfigSystem_System_Logging_Vty. If the receiver or the field Selectors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Vty) GetSelectors() *OpenconfigSystem_System_Logging_Vty_Selectors {
	if t != nil && t.Selectors != nil {
		return t.Selectors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_Vty. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Vty) GetState() *OpenconfigSystem_System_Logging_Vty_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Vty
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Vty) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Selectors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Vty"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Vty) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Vty.
func (*OpenconfigSystem_System_Logging_Vty) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Vty_Config represents the /openconfig-system/system/logging/vty/config YANG schema element.
type OpenconfigSystem_System_Logging_Vty_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Vty_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Vty_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Vty_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Vty_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Vty_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Vty_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Vty_Config.
func (*OpenconfigSystem_System_Logging_Vty_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Vty_Selectors represents the /openconfig-system/system/logging/vty/selectors YANG schema element.
type OpenconfigSystem_System_Logging_Vty_Selectors struct {
	ΛMetadata []ygot.Annotation                                                                                                      `path:"@" ygotAnnotation:"true"`
	Selector  map[OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Vty_Selectors_Selector `path:"selector" module:"openconfig-system"`
	ΛSelector []ygot.Annotation                                                                                                      `path:"@selector" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Vty_Selectors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Vty_Selectors) IsYANGGoStruct() {}

// OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key represents the key for list Selector of element /openconfig-system/system/logging/vty/selectors.
type OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key struct {
	Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility"`
	Severity E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity"`
}

// IsYANGGoKeyStruct ensures that OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key) IsYANGGoKeyStruct() {}

// ΛListKeyMap returns the values of the OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key key struct.
func (t OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// NewSelector creates a new entry in the Selector list of the
// OpenconfigSystem_System_Logging_Vty_Selectors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) NewSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) (*OpenconfigSystem_System_Logging_Vty_Selectors_Selector, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Vty_Selectors_Selector)
	}

	key := OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Selector[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Selector", key)
	}

	t.Selector[key] = &OpenconfigSystem_System_Logging_Vty_Selectors_Selector{
		Facility: Facility,
		Severity: Severity,
	}

	return t.Selector[key], nil
}

// RenameSelector renames an entry in the list Selector within
// the OpenconfigSystem_System_Logging_Vty_Selectors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) RenameSelector(oldK, newK OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key) error {
	if _, ok := t.Selector[newK]; ok {
		return fmt.Errorf("key %v already exists in Selector", newK)
	}

	e, ok := t.Selector[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Selector", oldK)
	}
	e.Facility = newK.Facility
	e.Severity = newK.Severity

	t.Selector[newK] = e
	delete(t.Selector, oldK)
	return nil
}

// GetOrCreateSelectorMap returns the list (map) from OpenconfigSystem_System_Logging_Vty_Selectors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) GetOrCreateSelectorMap() map[OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Vty_Selectors_Selector {
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Vty_Selectors_Selector)
	}
	return t.Selector
}

// GetOrCreateSelector retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Logging_Vty_Selectors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) GetOrCreateSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_Vty_Selectors_Selector {

	key := OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if v, ok := t.Selector[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewSelector(Facility, Severity)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateSelector got unexpected error: %v", err))
	}
	return v
}

// GetSelector retrieves the value with the specified key from
// the Selector map field of OpenconfigSystem_System_Logging_Vty_Selectors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) GetSelector(Facility E_OpenconfigSystemLogging_SYSLOG_FACILITY, Severity E_OpenconfigSystemLogging_SyslogSeverity) *OpenconfigSystem_System_Logging_Vty_Selectors_Selector {

	if t == nil {
		return nil
	}

	key := OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key{
		Facility: Facility,
		Severity: Severity,
	}

	if lm, ok := t.Selector[key]; ok {
		return lm
	}
	return nil
}

// AppendSelector appends the supplied OpenconfigSystem_System_Logging_Vty_Selectors_Selector struct to the
// list Selector of OpenconfigSystem_System_Logging_Vty_Selectors. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Logging_Vty_Selectors_Selector already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) AppendSelector(v *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) error {
	key := OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key{
		Facility: v.Facility,
		Severity: v.Severity,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Selector == nil {
		t.Selector = make(map[OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Key]*OpenconfigSystem_System_Logging_Vty_Selectors_Selector)
	}

	if _, ok := t.Selector[key]; ok {
		return fmt.Errorf("duplicate key for list Selector %v", key)
	}

	t.Selector[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Vty_Selectors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Selector {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Vty_Selectors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Vty_Selectors.
func (*OpenconfigSystem_System_Logging_Vty_Selectors) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Vty_Selectors_Selector represents the /openconfig-system/system/logging/vty/selectors/selector YANG schema element.
type OpenconfigSystem_System_Logging_Vty_Selectors_Selector struct {
	ΛMetadata []ygot.Annotation                                              `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                              `path:"@config" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY                      `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                                              `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity                       `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                                              `path:"@severity" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Vty_Selectors_Selector implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Vty_Selectors_Selector) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) GetOrCreateConfig() *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) GetOrCreateState() *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Logging_Vty_Selectors_Selector. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) GetConfig() *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Logging_Vty_Selectors_Selector. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) GetState() *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Vty_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Vty_Selectors_Selector
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Vty_Selectors_Selector
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Logging_Vty_Selectors_Selector struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"facility": t.Facility,
		"severity": t.Severity,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Vty_Selectors_Selector"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Vty_Selectors_Selector.
func (*OpenconfigSystem_System_Logging_Vty_Selectors_Selector) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config represents the /openconfig-system/system/logging/vty/selectors/selector/config YANG schema element.
type OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) IsYANGGoStruct() {}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config.
func (*OpenconfigSystem_System_Logging_Vty_Selectors_Selector_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State represents the /openconfig-system/system/logging/vty/selectors/selector/state YANG schema element.
type OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Facility  E_OpenconfigSystemLogging_SYSLOG_FACILITY `path:"facility" module:"openconfig-system"`
	ΛFacility []ygot.Annotation                         `path:"@facility" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity  `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                         `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) IsYANGGoStruct() {}

// GetFacility retrieves the value of the leaf Facility from the OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Facility is set, it can
// safely use t.GetFacility() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Facility == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) GetFacility() E_OpenconfigSystemLogging_SYSLOG_FACILITY {
	if t == nil || t.Facility == 0 {
		return 0
	}
	return t.Facility
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State.
func (*OpenconfigSystem_System_Logging_Vty_Selectors_Selector_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Logging_Vty_State represents the /openconfig-system/system/logging/vty/state YANG schema element.
type OpenconfigSystem_System_Logging_Vty_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Logging_Vty_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Logging_Vty_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Logging_Vty_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Logging_Vty_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Logging_Vty_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Logging_Vty_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Logging_Vty_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Logging_Vty_State.
func (*OpenconfigSystem_System_Logging_Vty_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_MacAddress represents the /openconfig-system/system/mac-address YANG schema element.
type OpenconfigSystem_System_MacAddress struct {
	ΛMetadata []ygot.Annotation                          `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_MacAddress_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                          `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_MacAddress_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_MacAddress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_MacAddress) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_MacAddress) GetOrCreateConfig() *OpenconfigSystem_System_MacAddress_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_MacAddress_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_MacAddress) GetOrCreateState() *OpenconfigSystem_System_MacAddress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_MacAddress_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_MacAddress. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_MacAddress) GetConfig() *OpenconfigSystem_System_MacAddress_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_MacAddress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_MacAddress) GetState() *OpenconfigSystem_System_MacAddress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_MacAddress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_MacAddress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MacAddress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_MacAddress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MacAddress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_MacAddress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_MacAddress.
func (*OpenconfigSystem_System_MacAddress) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_MacAddress_Config represents the /openconfig-system/system/mac-address/config YANG schema element.
type OpenconfigSystem_System_MacAddress_Config struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RoutingMac  *string           `path:"routing-mac" module:"openconfig-system"`
	ΛRoutingMac []ygot.Annotation `path:"@routing-mac" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_MacAddress_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_MacAddress_Config) IsYANGGoStruct() {}

// GetRoutingMac retrieves the value of the leaf RoutingMac from the OpenconfigSystem_System_MacAddress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RoutingMac is set, it can
// safely use t.GetRoutingMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RoutingMac == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MacAddress_Config) GetRoutingMac() string {
	if t == nil || t.RoutingMac == nil {
		return ""
	}
	return *t.RoutingMac
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_MacAddress_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_MacAddress_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MacAddress_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_MacAddress_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MacAddress_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_MacAddress_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_MacAddress_Config.
func (*OpenconfigSystem_System_MacAddress_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_MacAddress_State represents the /openconfig-system/system/mac-address/state YANG schema element.
type OpenconfigSystem_System_MacAddress_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	RoutingMac  *string           `path:"routing-mac" module:"openconfig-system"`
	ΛRoutingMac []ygot.Annotation `path:"@routing-mac" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_MacAddress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_MacAddress_State) IsYANGGoStruct() {}

// GetRoutingMac retrieves the value of the leaf RoutingMac from the OpenconfigSystem_System_MacAddress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RoutingMac is set, it can
// safely use t.GetRoutingMac() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RoutingMac == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MacAddress_State) GetRoutingMac() string {
	if t == nil || t.RoutingMac == nil {
		return ""
	}
	return *t.RoutingMac
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_MacAddress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_MacAddress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MacAddress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_MacAddress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MacAddress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_MacAddress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_MacAddress_State.
func (*OpenconfigSystem_System_MacAddress_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Memory represents the /openconfig-system/system/memory YANG schema element.
type OpenconfigSystem_System_Memory struct {
	ΛMetadata []ygot.Annotation                      `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Memory_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                      `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Memory_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                      `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Memory implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Memory) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Memory) GetOrCreateConfig() *OpenconfigSystem_System_Memory_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Memory_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Memory) GetOrCreateState() *OpenconfigSystem_System_Memory_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Memory_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Memory. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Memory) GetConfig() *OpenconfigSystem_System_Memory_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Memory. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Memory) GetState() *OpenconfigSystem_System_Memory_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Memory
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Memory) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Memory"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Memory) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Memory.
func (*OpenconfigSystem_System_Memory) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Memory_Config represents the /openconfig-system/system/memory/config YANG schema element.
type OpenconfigSystem_System_Memory_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Memory_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Memory_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Memory_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Memory_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Memory_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Memory_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Memory_Config.
func (*OpenconfigSystem_System_Memory_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Memory_State represents the /openconfig-system/system/memory/state YANG schema element.
type OpenconfigSystem_System_Memory_State struct {
	ΛMetadata []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	Counters  *OpenconfigSystem_System_Memory_State_Counters `path:"counters" module:"openconfig-system"`
	ΛCounters []ygot.Annotation                              `path:"@counters" ygotAnnotation:"true"`
	Free      *uint64                                        `path:"free" module:"openconfig-system"`
	ΛFree     []ygot.Annotation                              `path:"@free" ygotAnnotation:"true"`
	Physical  *uint64                                        `path:"physical" module:"openconfig-system"`
	ΛPhysical []ygot.Annotation                              `path:"@physical" ygotAnnotation:"true"`
	Reserved  *uint64                                        `path:"reserved" module:"openconfig-system"`
	ΛReserved []ygot.Annotation                              `path:"@reserved" ygotAnnotation:"true"`
	Used      *uint64                                        `path:"used" module:"openconfig-system"`
	ΛUsed     []ygot.Annotation                              `path:"@used" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Memory_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Memory_State) IsYANGGoStruct() {}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Memory_State) GetOrCreateCounters() *OpenconfigSystem_System_Memory_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigSystem_System_Memory_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigSystem_System_Memory_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Memory_State) GetCounters() *OpenconfigSystem_System_Memory_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetFree retrieves the value of the leaf Free from the OpenconfigSystem_System_Memory_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Free is set, it can
// safely use t.GetFree() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Free == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Memory_State) GetFree() uint64 {
	if t == nil || t.Free == nil {
		return 0
	}
	return *t.Free
}

// GetPhysical retrieves the value of the leaf Physical from the OpenconfigSystem_System_Memory_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Physical is set, it can
// safely use t.GetPhysical() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Physical == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Memory_State) GetPhysical() uint64 {
	if t == nil || t.Physical == nil {
		return 0
	}
	return *t.Physical
}

// GetReserved retrieves the value of the leaf Reserved from the OpenconfigSystem_System_Memory_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Reserved is set, it can
// safely use t.GetReserved() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Reserved == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Memory_State) GetReserved() uint64 {
	if t == nil || t.Reserved == nil {
		return 0
	}
	return *t.Reserved
}

// GetUsed retrieves the value of the leaf Used from the OpenconfigSystem_System_Memory_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Used is set, it can
// safely use t.GetUsed() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Used == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Memory_State) GetUsed() uint64 {
	if t == nil || t.Used == nil {
		return 0
	}
	return *t.Used
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Memory_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Memory_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Memory_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Memory_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Memory_State.
func (*OpenconfigSystem_System_Memory_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Memory_State_Counters represents the /openconfig-system/system/memory/state/counters YANG schema element.
type OpenconfigSystem_System_Memory_State_Counters struct {
	ΛMetadata               []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	CorrectableEccErrors    *uint64           `path:"correctable-ecc-errors" module:"openconfig-system"`
	ΛCorrectableEccErrors   []ygot.Annotation `path:"@correctable-ecc-errors" ygotAnnotation:"true"`
	TotalEccErrors          *uint64           `path:"total-ecc-errors" module:"openconfig-system"`
	ΛTotalEccErrors         []ygot.Annotation `path:"@total-ecc-errors" ygotAnnotation:"true"`
	UncorrectableEccErrors  *uint64           `path:"uncorrectable-ecc-errors" module:"openconfig-system"`
	ΛUncorrectableEccErrors []ygot.Annotation `path:"@uncorrectable-ecc-errors" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Memory_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Memory_State_Counters) IsYANGGoStruct() {}

// GetCorrectableEccErrors retrieves the value of the leaf CorrectableEccErrors from the OpenconfigSystem_System_Memory_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CorrectableEccErrors is set, it can
// safely use t.GetCorrectableEccErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CorrectableEccErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Memory_State_Counters) GetCorrectableEccErrors() uint64 {
	if t == nil || t.CorrectableEccErrors == nil {
		return 0
	}
	return *t.CorrectableEccErrors
}

// GetTotalEccErrors retrieves the value of the leaf TotalEccErrors from the OpenconfigSystem_System_Memory_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TotalEccErrors is set, it can
// safely use t.GetTotalEccErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TotalEccErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Memory_State_Counters) GetTotalEccErrors() uint64 {
	if t == nil || t.TotalEccErrors == nil {
		return 0
	}
	return *t.TotalEccErrors
}

// GetUncorrectableEccErrors retrieves the value of the leaf UncorrectableEccErrors from the OpenconfigSystem_System_Memory_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UncorrectableEccErrors is set, it can
// safely use t.GetUncorrectableEccErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UncorrectableEccErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Memory_State_Counters) GetUncorrectableEccErrors() uint64 {
	if t == nil || t.UncorrectableEccErrors == nil {
		return 0
	}
	return *t.UncorrectableEccErrors
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Memory_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Memory_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Memory_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Memory_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Memory_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Memory_State_Counters.
func (*OpenconfigSystem_System_Memory_State_Counters) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages represents the /openconfig-system/system/messages YANG schema element.
type OpenconfigSystem_System_Messages struct {
	ΛMetadata     []ygot.Annotation                              `path:"@" ygotAnnotation:"true"`
	Config        *OpenconfigSystem_System_Messages_Config       `path:"config" module:"openconfig-system"`
	ΛConfig       []ygot.Annotation                              `path:"@config" ygotAnnotation:"true"`
	DebugEntries  *OpenconfigSystem_System_Messages_DebugEntries `path:"debug-entries" module:"openconfig-system"`
	ΛDebugEntries []ygot.Annotation                              `path:"@debug-entries" ygotAnnotation:"true"`
	State         *OpenconfigSystem_System_Messages_State        `path:"state" module:"openconfig-system"`
	ΛState        []ygot.Annotation                              `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Messages) GetOrCreateConfig() *OpenconfigSystem_System_Messages_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Messages_Config{}
	return t.Config
}

// GetOrCreateDebugEntries retrieves the value of the DebugEntries field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Messages) GetOrCreateDebugEntries() *OpenconfigSystem_System_Messages_DebugEntries {
	if t.DebugEntries != nil {
		return t.DebugEntries
	}
	t.DebugEntries = &OpenconfigSystem_System_Messages_DebugEntries{}
	return t.DebugEntries
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Messages) GetOrCreateState() *OpenconfigSystem_System_Messages_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Messages_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Messages. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Messages) GetConfig() *OpenconfigSystem_System_Messages_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetDebugEntries returns the value of the DebugEntries struct pointer
// from OpenconfigSystem_System_Messages. If the receiver or the field DebugEntries is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Messages) GetDebugEntries() *OpenconfigSystem_System_Messages_DebugEntries {
	if t != nil && t.DebugEntries != nil {
		return t.DebugEntries
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Messages. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Messages) GetState() *OpenconfigSystem_System_Messages_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.DebugEntries.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages.
func (*OpenconfigSystem_System_Messages) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages_Config represents the /openconfig-system/system/messages/config YANG schema element.
type OpenconfigSystem_System_Messages_Config struct {
	ΛMetadata []ygot.Annotation                        `path:"@" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                        `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages_Config) IsYANGGoStruct() {}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Messages_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_Config) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages_Config.
func (*OpenconfigSystem_System_Messages_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages_DebugEntries represents the /openconfig-system/system/messages/debug-entries YANG schema element.
type OpenconfigSystem_System_Messages_DebugEntries struct {
	ΛMetadata     []ygot.Annotation                                                                                  `path:"@" ygotAnnotation:"true"`
	DebugService  map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigSystem_System_Messages_DebugEntries_DebugService `path:"debug-service" module:"openconfig-system"`
	ΛDebugService []ygot.Annotation                                                                                  `path:"@debug-service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages_DebugEntries implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages_DebugEntries) IsYANGGoStruct() {}

// NewDebugService creates a new entry in the DebugService list of the
// OpenconfigSystem_System_Messages_DebugEntries struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Messages_DebugEntries) NewDebugService(Service E_OpenconfigMessages_DEBUG_SERVICE) (*OpenconfigSystem_System_Messages_DebugEntries_DebugService, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DebugService == nil {
		t.DebugService = make(map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigSystem_System_Messages_DebugEntries_DebugService)
	}

	key := Service

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.DebugService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list DebugService", key)
	}

	t.DebugService[key] = &OpenconfigSystem_System_Messages_DebugEntries_DebugService{
		Service: Service,
	}

	return t.DebugService[key], nil
}

// RenameDebugService renames an entry in the list DebugService within
// the OpenconfigSystem_System_Messages_DebugEntries struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Messages_DebugEntries) RenameDebugService(oldK, newK E_OpenconfigMessages_DEBUG_SERVICE) error {
	if _, ok := t.DebugService[newK]; ok {
		return fmt.Errorf("key %v already exists in DebugService", newK)
	}

	e, ok := t.DebugService[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in DebugService", oldK)
	}
	e.Service = newK

	t.DebugService[newK] = e
	delete(t.DebugService, oldK)
	return nil
}

// GetOrCreateDebugServiceMap returns the list (map) from OpenconfigSystem_System_Messages_DebugEntries.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Messages_DebugEntries) GetOrCreateDebugServiceMap() map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigSystem_System_Messages_DebugEntries_DebugService {
	if t.DebugService == nil {
		t.DebugService = make(map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigSystem_System_Messages_DebugEntries_DebugService)
	}
	return t.DebugService
}

// GetOrCreateDebugService retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Messages_DebugEntries. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Messages_DebugEntries) GetOrCreateDebugService(Service E_OpenconfigMessages_DEBUG_SERVICE) *OpenconfigSystem_System_Messages_DebugEntries_DebugService {

	key := Service

	if v, ok := t.DebugService[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewDebugService(Service)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateDebugService got unexpected error: %v", err))
	}
	return v
}

// GetDebugService retrieves the value with the specified key from
// the DebugService map field of OpenconfigSystem_System_Messages_DebugEntries. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Messages_DebugEntries) GetDebugService(Service E_OpenconfigMessages_DEBUG_SERVICE) *OpenconfigSystem_System_Messages_DebugEntries_DebugService {

	if t == nil {
		return nil
	}

	key := Service

	if lm, ok := t.DebugService[key]; ok {
		return lm
	}
	return nil
}

// AppendDebugService appends the supplied OpenconfigSystem_System_Messages_DebugEntries_DebugService struct to the
// list DebugService of OpenconfigSystem_System_Messages_DebugEntries. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Messages_DebugEntries_DebugService already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Messages_DebugEntries) AppendDebugService(v *OpenconfigSystem_System_Messages_DebugEntries_DebugService) error {
	key := v.Service

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DebugService == nil {
		t.DebugService = make(map[E_OpenconfigMessages_DEBUG_SERVICE]*OpenconfigSystem_System_Messages_DebugEntries_DebugService)
	}

	if _, ok := t.DebugService[key]; ok {
		return fmt.Errorf("duplicate key for list DebugService %v", key)
	}

	t.DebugService[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages_DebugEntries
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages_DebugEntries) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.DebugService {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages_DebugEntries"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages_DebugEntries) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages_DebugEntries.
func (*OpenconfigSystem_System_Messages_DebugEntries) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages_DebugEntries_DebugService represents the /openconfig-system/system/messages/debug-entries/debug-service YANG schema element.
type OpenconfigSystem_System_Messages_DebugEntries_DebugService struct {
	ΛMetadata []ygot.Annotation                                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                                  `path:"@config" ygotAnnotation:"true"`
	Service   E_OpenconfigMessages_DEBUG_SERVICE                                 `path:"service" module:"openconfig-system"`
	ΛService  []ygot.Annotation                                                  `path:"@service" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages_DebugEntries_DebugService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages_DebugEntries_DebugService) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) GetOrCreateConfig() *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) GetOrCreateState() *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Messages_DebugEntries_DebugService_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Messages_DebugEntries_DebugService. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) GetConfig() *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Messages_DebugEntries_DebugService. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) GetState() *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetService retrieves the value of the leaf Service from the OpenconfigSystem_System_Messages_DebugEntries_DebugService
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Service is set, it can
// safely use t.GetService() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Service == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) GetService() E_OpenconfigMessages_DEBUG_SERVICE {
	if t == nil || t.Service == 0 {
		return 0
	}
	return t.Service
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages_DebugEntries_DebugService
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Messages_DebugEntries_DebugService struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"service": t.Service,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages_DebugEntries_DebugService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages_DebugEntries_DebugService.
func (*OpenconfigSystem_System_Messages_DebugEntries_DebugService) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config represents the /openconfig-system/system/messages/debug-entries/debug-service/config YANG schema element.
type OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Enabled   *bool                              `path:"enabled" module:"openconfig-system"`
	ΛEnabled  []ygot.Annotation                  `path:"@enabled" ygotAnnotation:"true"`
	Service   E_OpenconfigMessages_DEBUG_SERVICE `path:"service" module:"openconfig-system"`
	ΛService  []ygot.Annotation                  `path:"@service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) IsYANGGoStruct() {}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetService retrieves the value of the leaf Service from the OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Service is set, it can
// safely use t.GetService() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Service == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) GetService() E_OpenconfigMessages_DEBUG_SERVICE {
	if t == nil || t.Service == 0 {
		return 0
	}
	return t.Service
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config.
func (*OpenconfigSystem_System_Messages_DebugEntries_DebugService_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages_DebugEntries_DebugService_State represents the /openconfig-system/system/messages/debug-entries/debug-service/state YANG schema element.
type OpenconfigSystem_System_Messages_DebugEntries_DebugService_State struct {
	ΛMetadata []ygot.Annotation                  `path:"@" ygotAnnotation:"true"`
	Enabled   *bool                              `path:"enabled" module:"openconfig-system"`
	ΛEnabled  []ygot.Annotation                  `path:"@enabled" ygotAnnotation:"true"`
	Service   E_OpenconfigMessages_DEBUG_SERVICE `path:"service" module:"openconfig-system"`
	ΛService  []ygot.Annotation                  `path:"@service" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages_DebugEntries_DebugService_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) IsYANGGoStruct() {}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigSystem_System_Messages_DebugEntries_DebugService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetService retrieves the value of the leaf Service from the OpenconfigSystem_System_Messages_DebugEntries_DebugService_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Service is set, it can
// safely use t.GetService() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Service == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) GetService() E_OpenconfigMessages_DEBUG_SERVICE {
	if t == nil || t.Service == 0 {
		return 0
	}
	return t.Service
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages_DebugEntries_DebugService_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages_DebugEntries_DebugService_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages_DebugEntries_DebugService_State.
func (*OpenconfigSystem_System_Messages_DebugEntries_DebugService_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages_State represents the /openconfig-system/system/messages/state YANG schema element.
type OpenconfigSystem_System_Messages_State struct {
	ΛMetadata []ygot.Annotation                               `path:"@" ygotAnnotation:"true"`
	Message   *OpenconfigSystem_System_Messages_State_Message `path:"message" module:"openconfig-system"`
	ΛMessage  []ygot.Annotation                               `path:"@message" ygotAnnotation:"true"`
	Severity  E_OpenconfigSystemLogging_SyslogSeverity        `path:"severity" module:"openconfig-system"`
	ΛSeverity []ygot.Annotation                               `path:"@severity" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages_State) IsYANGGoStruct() {}

// GetOrCreateMessage retrieves the value of the Message field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Messages_State) GetOrCreateMessage() *OpenconfigSystem_System_Messages_State_Message {
	if t.Message != nil {
		return t.Message
	}
	t.Message = &OpenconfigSystem_System_Messages_State_Message{}
	return t.Message
}

// GetMessage returns the value of the Message struct pointer
// from OpenconfigSystem_System_Messages_State. If the receiver or the field Message is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Messages_State) GetMessage() *OpenconfigSystem_System_Messages_State_Message {
	if t != nil && t.Message != nil {
		return t.Message
	}
	return nil
}

// GetSeverity retrieves the value of the leaf Severity from the OpenconfigSystem_System_Messages_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Severity is set, it can
// safely use t.GetSeverity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Severity == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_State) GetSeverity() E_OpenconfigSystemLogging_SyslogSeverity {
	if t == nil || t.Severity == 0 {
		return 0
	}
	return t.Severity
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Message.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages_State.
func (*OpenconfigSystem_System_Messages_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Messages_State_Message represents the /openconfig-system/system/messages/state/message YANG schema element.
type OpenconfigSystem_System_Messages_State_Message struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AppName   *string           `path:"app-name" module:"openconfig-system"`
	ΛAppName  []ygot.Annotation `path:"@app-name" ygotAnnotation:"true"`
	Msg       *string           `path:"msg" module:"openconfig-system"`
	ΛMsg      []ygot.Annotation `path:"@msg" ygotAnnotation:"true"`
	Msgid     *string           `path:"msgid" module:"openconfig-system"`
	ΛMsgid    []ygot.Annotation `path:"@msgid" ygotAnnotation:"true"`
	Priority  *uint8            `path:"priority" module:"openconfig-system"`
	ΛPriority []ygot.Annotation `path:"@priority" ygotAnnotation:"true"`
	Procid    *string           `path:"procid" module:"openconfig-system"`
	ΛProcid   []ygot.Annotation `path:"@procid" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Messages_State_Message implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Messages_State_Message) IsYANGGoStruct() {}

// GetAppName retrieves the value of the leaf AppName from the OpenconfigSystem_System_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AppName is set, it can
// safely use t.GetAppName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AppName == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_State_Message) GetAppName() string {
	if t == nil || t.AppName == nil {
		return ""
	}
	return *t.AppName
}

// GetMsg retrieves the value of the leaf Msg from the OpenconfigSystem_System_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Msg is set, it can
// safely use t.GetMsg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Msg == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_State_Message) GetMsg() string {
	if t == nil || t.Msg == nil {
		return ""
	}
	return *t.Msg
}

// GetMsgid retrieves the value of the leaf Msgid from the OpenconfigSystem_System_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Msgid is set, it can
// safely use t.GetMsgid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Msgid == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_State_Message) GetMsgid() string {
	if t == nil || t.Msgid == nil {
		return ""
	}
	return *t.Msgid
}

// GetPriority retrieves the value of the leaf Priority from the OpenconfigSystem_System_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Priority is set, it can
// safely use t.GetPriority() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Priority == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_State_Message) GetPriority() uint8 {
	if t == nil || t.Priority == nil {
		return 0
	}
	return *t.Priority
}

// GetProcid retrieves the value of the leaf Procid from the OpenconfigSystem_System_Messages_State_Message
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Procid is set, it can
// safely use t.GetProcid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Procid == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Messages_State_Message) GetProcid() string {
	if t == nil || t.Procid == nil {
		return ""
	}
	return *t.Procid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Messages_State_Message
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Messages_State_Message) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_State_Message) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Messages_State_Message"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Messages_State_Message) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Messages_State_Message) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Messages_State_Message.
func (*OpenconfigSystem_System_Messages_State_Message) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_MountPoints represents the /openconfig-system/system/mount-points YANG schema element.
type OpenconfigSystem_System_MountPoints struct {
	ΛMetadata   []ygot.Annotation                                          `path:"@" ygotAnnotation:"true"`
	MountPoint  map[string]*OpenconfigSystem_System_MountPoints_MountPoint `path:"mount-point" module:"openconfig-system"`
	ΛMountPoint []ygot.Annotation                                          `path:"@mount-point" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_MountPoints implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_MountPoints) IsYANGGoStruct() {}

// NewMountPoint creates a new entry in the MountPoint list of the
// OpenconfigSystem_System_MountPoints struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_MountPoints) NewMountPoint(Name string) (*OpenconfigSystem_System_MountPoints_MountPoint, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MountPoint == nil {
		t.MountPoint = make(map[string]*OpenconfigSystem_System_MountPoints_MountPoint)
	}

	key := Name

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.MountPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list MountPoint", key)
	}

	t.MountPoint[key] = &OpenconfigSystem_System_MountPoints_MountPoint{
		Name: &Name,
	}

	return t.MountPoint[key], nil
}

// RenameMountPoint renames an entry in the list MountPoint within
// the OpenconfigSystem_System_MountPoints struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_MountPoints) RenameMountPoint(oldK, newK string) error {
	if _, ok := t.MountPoint[newK]; ok {
		return fmt.Errorf("key %v already exists in MountPoint", newK)
	}

	e, ok := t.MountPoint[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in MountPoint", oldK)
	}
	e.Name = &newK

	t.MountPoint[newK] = e
	delete(t.MountPoint, oldK)
	return nil
}

// GetOrCreateMountPointMap returns the list (map) from OpenconfigSystem_System_MountPoints.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_MountPoints) GetOrCreateMountPointMap() map[string]*OpenconfigSystem_System_MountPoints_MountPoint {
	if t.MountPoint == nil {
		t.MountPoint = make(map[string]*OpenconfigSystem_System_MountPoints_MountPoint)
	}
	return t.MountPoint
}

// GetOrCreateMountPoint retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_MountPoints. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_MountPoints) GetOrCreateMountPoint(Name string) *OpenconfigSystem_System_MountPoints_MountPoint {

	key := Name

	if v, ok := t.MountPoint[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewMountPoint(Name)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateMountPoint got unexpected error: %v", err))
	}
	return v
}

// GetMountPoint retrieves the value with the specified key from
// the MountPoint map field of OpenconfigSystem_System_MountPoints. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_MountPoints) GetMountPoint(Name string) *OpenconfigSystem_System_MountPoints_MountPoint {

	if t == nil {
		return nil
	}

	key := Name

	if lm, ok := t.MountPoint[key]; ok {
		return lm
	}
	return nil
}

// AppendMountPoint appends the supplied OpenconfigSystem_System_MountPoints_MountPoint struct to the
// list MountPoint of OpenconfigSystem_System_MountPoints. If the key value(s) specified in
// the supplied OpenconfigSystem_System_MountPoints_MountPoint already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_MountPoints) AppendMountPoint(v *OpenconfigSystem_System_MountPoints_MountPoint) error {
	if v.Name == nil {
		return fmt.Errorf("invalid nil key received for Name")
	}

	key := *v.Name

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MountPoint == nil {
		t.MountPoint = make(map[string]*OpenconfigSystem_System_MountPoints_MountPoint)
	}

	if _, ok := t.MountPoint[key]; ok {
		return fmt.Errorf("duplicate key for list MountPoint %v", key)
	}

	t.MountPoint[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_MountPoints
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_MountPoints) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.MountPoint {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MountPoints) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_MountPoints"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MountPoints) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_MountPoints) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_MountPoints.
func (*OpenconfigSystem_System_MountPoints) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_MountPoints_MountPoint represents the /openconfig-system/system/mount-points/mount-point YANG schema element.
type OpenconfigSystem_System_MountPoints_MountPoint struct {
	ΛMetadata []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	Name      *string                                               `path:"name" module:"openconfig-system"`
	ΛName     []ygot.Annotation                                     `path:"@name" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_MountPoints_MountPoint_State `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_MountPoints_MountPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_MountPoints_MountPoint) IsYANGGoStruct() {}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) GetOrCreateState() *OpenconfigSystem_System_MountPoints_MountPoint_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_MountPoints_MountPoint_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_MountPoints_MountPoint. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) GetState() *OpenconfigSystem_System_MountPoints_MountPoint_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_MountPoints_MountPoint
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_MountPoints_MountPoint
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_MountPoints_MountPoint struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Name == nil {
		return nil, fmt.Errorf("nil value for key Name")
	}

	return map[string]interface{}{
		"name": *t.Name,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_MountPoints_MountPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_MountPoints_MountPoint) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_MountPoints_MountPoint.
func (*OpenconfigSystem_System_MountPoints_MountPoint) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_MountPoints_MountPoint_State represents the /openconfig-system/system/mount-points/mount-point/state YANG schema element.
type OpenconfigSystem_System_MountPoints_MountPoint_State struct {
	ΛMetadata         []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Available         *uint64           `path:"available" module:"openconfig-system"`
	ΛAvailable        []ygot.Annotation `path:"@available" ygotAnnotation:"true"`
	Name              *string           `path:"name" module:"openconfig-system"`
	ΛName             []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Size              *uint64           `path:"size" module:"openconfig-system"`
	ΛSize             []ygot.Annotation `path:"@size" ygotAnnotation:"true"`
	StorageComponent  *string           `path:"storage-component" module:"openconfig-system"`
	ΛStorageComponent []ygot.Annotation `path:"@storage-component" ygotAnnotation:"true"`
	Utilized          *uint64           `path:"utilized" module:"openconfig-system"`
	ΛUtilized         []ygot.Annotation `path:"@utilized" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_MountPoints_MountPoint_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_MountPoints_MountPoint_State) IsYANGGoStruct() {}

// GetAvailable retrieves the value of the leaf Available from the OpenconfigSystem_System_MountPoints_MountPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Available is set, it can
// safely use t.GetAvailable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Available == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) GetAvailable() uint64 {
	if t == nil || t.Available == nil {
		return 0
	}
	return *t.Available
}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_MountPoints_MountPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetSize retrieves the value of the leaf Size from the OpenconfigSystem_System_MountPoints_MountPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Size is set, it can
// safely use t.GetSize() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Size == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) GetSize() uint64 {
	if t == nil || t.Size == nil {
		return 0
	}
	return *t.Size
}

// GetStorageComponent retrieves the value of the leaf StorageComponent from the OpenconfigSystem_System_MountPoints_MountPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StorageComponent is set, it can
// safely use t.GetStorageComponent() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StorageComponent == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) GetStorageComponent() string {
	if t == nil || t.StorageComponent == nil {
		return ""
	}
	return *t.StorageComponent
}

// GetUtilized retrieves the value of the leaf Utilized from the OpenconfigSystem_System_MountPoints_MountPoint_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Utilized is set, it can
// safely use t.GetUtilized() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Utilized == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) GetUtilized() uint64 {
	if t == nil || t.Utilized == nil {
		return 0
	}
	return *t.Utilized
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_MountPoints_MountPoint_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_MountPoints_MountPoint_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_MountPoints_MountPoint_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_MountPoints_MountPoint_State.
func (*OpenconfigSystem_System_MountPoints_MountPoint_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp represents the /openconfig-system/system/ntp YANG schema element.
type OpenconfigSystem_System_Ntp struct {
	ΛMetadata []ygot.Annotation                    `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Ntp_Config  `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                    `path:"@config" ygotAnnotation:"true"`
	NtpKeys   *OpenconfigSystem_System_Ntp_NtpKeys `path:"ntp-keys" module:"openconfig-system"`
	ΛNtpKeys  []ygot.Annotation                    `path:"@ntp-keys" ygotAnnotation:"true"`
	Servers   *OpenconfigSystem_System_Ntp_Servers `path:"servers" module:"openconfig-system"`
	ΛServers  []ygot.Annotation                    `path:"@servers" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Ntp_State   `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                    `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp) GetOrCreateConfig() *OpenconfigSystem_System_Ntp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Ntp_Config{}
	return t.Config
}

// GetOrCreateNtpKeys retrieves the value of the NtpKeys field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp) GetOrCreateNtpKeys() *OpenconfigSystem_System_Ntp_NtpKeys {
	if t.NtpKeys != nil {
		return t.NtpKeys
	}
	t.NtpKeys = &OpenconfigSystem_System_Ntp_NtpKeys{}
	return t.NtpKeys
}

// GetOrCreateServers retrieves the value of the Servers field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp) GetOrCreateServers() *OpenconfigSystem_System_Ntp_Servers {
	if t.Servers != nil {
		return t.Servers
	}
	t.Servers = &OpenconfigSystem_System_Ntp_Servers{}
	return t.Servers
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp) GetOrCreateState() *OpenconfigSystem_System_Ntp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Ntp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Ntp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp) GetConfig() *OpenconfigSystem_System_Ntp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetNtpKeys returns the value of the NtpKeys struct pointer
// from OpenconfigSystem_System_Ntp. If the receiver or the field NtpKeys is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp) GetNtpKeys() *OpenconfigSystem_System_Ntp_NtpKeys {
	if t != nil && t.NtpKeys != nil {
		return t.NtpKeys
	}
	return nil
}

// GetServers returns the value of the Servers struct pointer
// from OpenconfigSystem_System_Ntp. If the receiver or the field Servers is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp) GetServers() *OpenconfigSystem_System_Ntp_Servers {
	if t != nil && t.Servers != nil {
		return t.Servers
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Ntp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp) GetState() *OpenconfigSystem_System_Ntp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.NtpKeys.PopulateDefaults()
	t.Servers.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp.
func (*OpenconfigSystem_System_Ntp) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_Config represents the /openconfig-system/system/ntp/config YANG schema element.
type OpenconfigSystem_System_Ntp_Config struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	EnableNtpAuth  *bool             `path:"enable-ntp-auth" module:"openconfig-system"`
	ΛEnableNtpAuth []ygot.Annotation `path:"@enable-ntp-auth" ygotAnnotation:"true"`
	Enabled        *bool             `path:"enabled" module:"openconfig-system"`
	ΛEnabled       []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_Config) IsYANGGoStruct() {}

// GetEnableNtpAuth retrieves the value of the leaf EnableNtpAuth from the OpenconfigSystem_System_Ntp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableNtpAuth is set, it can
// safely use t.GetEnableNtpAuth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableNtpAuth == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Config) GetEnableNtpAuth() bool {
	if t == nil || t.EnableNtpAuth == nil {
		return false
	}
	return *t.EnableNtpAuth
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigSystem_System_Ntp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.EnableNtpAuth == nil {
		var v bool = false
		t.EnableNtpAuth = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_Config.
func (*OpenconfigSystem_System_Ntp_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_NtpKeys represents the /openconfig-system/system/ntp/ntp-keys YANG schema element.
type OpenconfigSystem_System_Ntp_NtpKeys struct {
	ΛMetadata []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	NtpKey    map[uint16]*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey `path:"ntp-key" module:"openconfig-system"`
	ΛNtpKey   []ygot.Annotation                                      `path:"@ntp-key" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_NtpKeys implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_NtpKeys) IsYANGGoStruct() {}

// NewNtpKey creates a new entry in the NtpKey list of the
// OpenconfigSystem_System_Ntp_NtpKeys struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) NewNtpKey(KeyId uint16) (*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NtpKey == nil {
		t.NtpKey = make(map[uint16]*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey)
	}

	key := KeyId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NtpKey[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NtpKey", key)
	}

	t.NtpKey[key] = &OpenconfigSystem_System_Ntp_NtpKeys_NtpKey{
		KeyId: &KeyId,
	}

	return t.NtpKey[key], nil
}

// RenameNtpKey renames an entry in the list NtpKey within
// the OpenconfigSystem_System_Ntp_NtpKeys struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) RenameNtpKey(oldK, newK uint16) error {
	if _, ok := t.NtpKey[newK]; ok {
		return fmt.Errorf("key %v already exists in NtpKey", newK)
	}

	e, ok := t.NtpKey[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in NtpKey", oldK)
	}
	e.KeyId = &newK

	t.NtpKey[newK] = e
	delete(t.NtpKey, oldK)
	return nil
}

// GetOrCreateNtpKeyMap returns the list (map) from OpenconfigSystem_System_Ntp_NtpKeys.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) GetOrCreateNtpKeyMap() map[uint16]*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey {
	if t.NtpKey == nil {
		t.NtpKey = make(map[uint16]*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey)
	}
	return t.NtpKey
}

// GetOrCreateNtpKey retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Ntp_NtpKeys. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) GetOrCreateNtpKey(KeyId uint16) *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey {

	key := KeyId

	if v, ok := t.NtpKey[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNtpKey(KeyId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNtpKey got unexpected error: %v", err))
	}
	return v
}

// GetNtpKey retrieves the value with the specified key from
// the NtpKey map field of OpenconfigSystem_System_Ntp_NtpKeys. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) GetNtpKey(KeyId uint16) *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey {

	if t == nil {
		return nil
	}

	key := KeyId

	if lm, ok := t.NtpKey[key]; ok {
		return lm
	}
	return nil
}

// AppendNtpKey appends the supplied OpenconfigSystem_System_Ntp_NtpKeys_NtpKey struct to the
// list NtpKey of OpenconfigSystem_System_Ntp_NtpKeys. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Ntp_NtpKeys_NtpKey already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) AppendNtpKey(v *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) error {
	if v.KeyId == nil {
		return fmt.Errorf("invalid nil key received for KeyId")
	}

	key := *v.KeyId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NtpKey == nil {
		t.NtpKey = make(map[uint16]*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey)
	}

	if _, ok := t.NtpKey[key]; ok {
		return fmt.Errorf("duplicate key for list NtpKey %v", key)
	}

	t.NtpKey[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_NtpKeys
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.NtpKey {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_NtpKeys"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_NtpKeys) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_NtpKeys.
func (*OpenconfigSystem_System_Ntp_NtpKeys) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_NtpKeys_NtpKey represents the /openconfig-system/system/ntp/ntp-keys/ntp-key YANG schema element.
type OpenconfigSystem_System_Ntp_NtpKeys_NtpKey struct {
	ΛMetadata []ygot.Annotation                                  `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                  `path:"@config" ygotAnnotation:"true"`
	KeyId     *uint16                                            `path:"key-id" module:"openconfig-system"`
	ΛKeyId    []ygot.Annotation                                  `path:"@key-id" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_NtpKeys_NtpKey implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) GetOrCreateConfig() *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) GetOrCreateState() *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Ntp_NtpKeys_NtpKey. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) GetConfig() *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Ntp_NtpKeys_NtpKey. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) GetState() *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetKeyId retrieves the value of the leaf KeyId from the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyId is set, it can
// safely use t.GetKeyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyId == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) GetKeyId() uint16 {
	if t == nil || t.KeyId == nil {
		return 0
	}
	return *t.KeyId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) ΛListKeyMap() (map[string]interface{}, error) {
	if t.KeyId == nil {
		return nil, fmt.Errorf("nil value for key KeyId")
	}

	return map[string]interface{}{
		"key-id": *t.KeyId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_NtpKeys_NtpKey"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_NtpKeys_NtpKey.
func (*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config represents the /openconfig-system/system/ntp/ntp-keys/ntp-key/config YANG schema element.
type OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config struct {
	ΛMetadata []ygot.Annotation                `path:"@" ygotAnnotation:"true"`
	KeyId     *uint16                          `path:"key-id" module:"openconfig-system"`
	ΛKeyId    []ygot.Annotation                `path:"@key-id" ygotAnnotation:"true"`
	KeyType   E_OpenconfigSystem_NTP_AUTH_TYPE `path:"key-type" module:"openconfig-system"`
	ΛKeyType  []ygot.Annotation                `path:"@key-type" ygotAnnotation:"true"`
	KeyValue  *string                          `path:"key-value" module:"openconfig-system"`
	ΛKeyValue []ygot.Annotation                `path:"@key-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) IsYANGGoStruct() {}

// GetKeyId retrieves the value of the leaf KeyId from the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyId is set, it can
// safely use t.GetKeyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyId == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) GetKeyId() uint16 {
	if t == nil || t.KeyId == nil {
		return 0
	}
	return *t.KeyId
}

// GetKeyType retrieves the value of the leaf KeyType from the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyType is set, it can
// safely use t.GetKeyType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) GetKeyType() E_OpenconfigSystem_NTP_AUTH_TYPE {
	if t == nil || t.KeyType == 0 {
		return 0
	}
	return t.KeyType
}

// GetKeyValue retrieves the value of the leaf KeyValue from the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyValue is set, it can
// safely use t.GetKeyValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyValue == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) GetKeyValue() string {
	if t == nil || t.KeyValue == nil {
		return ""
	}
	return *t.KeyValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config.
func (*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State represents the /openconfig-system/system/ntp/ntp-keys/ntp-key/state YANG schema element.
type OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State struct {
	ΛMetadata []ygot.Annotation                `path:"@" ygotAnnotation:"true"`
	KeyId     *uint16                          `path:"key-id" module:"openconfig-system"`
	ΛKeyId    []ygot.Annotation                `path:"@key-id" ygotAnnotation:"true"`
	KeyType   E_OpenconfigSystem_NTP_AUTH_TYPE `path:"key-type" module:"openconfig-system"`
	ΛKeyType  []ygot.Annotation                `path:"@key-type" ygotAnnotation:"true"`
	KeyValue  *string                          `path:"key-value" module:"openconfig-system"`
	ΛKeyValue []ygot.Annotation                `path:"@key-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) IsYANGGoStruct() {}

// GetKeyId retrieves the value of the leaf KeyId from the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyId is set, it can
// safely use t.GetKeyId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyId == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) GetKeyId() uint16 {
	if t == nil || t.KeyId == nil {
		return 0
	}
	return *t.KeyId
}

// GetKeyType retrieves the value of the leaf KeyType from the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyType is set, it can
// safely use t.GetKeyType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) GetKeyType() E_OpenconfigSystem_NTP_AUTH_TYPE {
	if t == nil || t.KeyType == 0 {
		return 0
	}
	return t.KeyType
}

// GetKeyValue retrieves the value of the leaf KeyValue from the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if KeyValue is set, it can
// safely use t.GetKeyValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.KeyValue == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) GetKeyValue() string {
	if t == nil || t.KeyValue == nil {
		return ""
	}
	return *t.KeyValue
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State.
func (*OpenconfigSystem_System_Ntp_NtpKeys_NtpKey_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_Servers represents the /openconfig-system/system/ntp/servers YANG schema element.
type OpenconfigSystem_System_Ntp_Servers struct {
	ΛMetadata []ygot.Annotation                                      `path:"@" ygotAnnotation:"true"`
	Server    map[string]*OpenconfigSystem_System_Ntp_Servers_Server `path:"server" module:"openconfig-system"`
	ΛServer   []ygot.Annotation                                      `path:"@server" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_Servers implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_Servers) IsYANGGoStruct() {}

// NewServer creates a new entry in the Server list of the
// OpenconfigSystem_System_Ntp_Servers struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Ntp_Servers) NewServer(Address string) (*OpenconfigSystem_System_Ntp_Servers_Server, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Server == nil {
		t.Server = make(map[string]*OpenconfigSystem_System_Ntp_Servers_Server)
	}

	key := Address

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Server[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Server", key)
	}

	t.Server[key] = &OpenconfigSystem_System_Ntp_Servers_Server{
		Address: &Address,
	}

	return t.Server[key], nil
}

// RenameServer renames an entry in the list Server within
// the OpenconfigSystem_System_Ntp_Servers struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Ntp_Servers) RenameServer(oldK, newK string) error {
	if _, ok := t.Server[newK]; ok {
		return fmt.Errorf("key %v already exists in Server", newK)
	}

	e, ok := t.Server[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Server", oldK)
	}
	e.Address = &newK

	t.Server[newK] = e
	delete(t.Server, oldK)
	return nil
}

// GetOrCreateServerMap returns the list (map) from OpenconfigSystem_System_Ntp_Servers.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Ntp_Servers) GetOrCreateServerMap() map[string]*OpenconfigSystem_System_Ntp_Servers_Server {
	if t.Server == nil {
		t.Server = make(map[string]*OpenconfigSystem_System_Ntp_Servers_Server)
	}
	return t.Server
}

// GetOrCreateServer retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Ntp_Servers. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Ntp_Servers) GetOrCreateServer(Address string) *OpenconfigSystem_System_Ntp_Servers_Server {

	key := Address

	if v, ok := t.Server[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewServer(Address)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateServer got unexpected error: %v", err))
	}
	return v
}

// GetServer retrieves the value with the specified key from
// the Server map field of OpenconfigSystem_System_Ntp_Servers. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Ntp_Servers) GetServer(Address string) *OpenconfigSystem_System_Ntp_Servers_Server {

	if t == nil {
		return nil
	}

	key := Address

	if lm, ok := t.Server[key]; ok {
		return lm
	}
	return nil
}

// AppendServer appends the supplied OpenconfigSystem_System_Ntp_Servers_Server struct to the
// list Server of OpenconfigSystem_System_Ntp_Servers. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Ntp_Servers_Server already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Ntp_Servers) AppendServer(v *OpenconfigSystem_System_Ntp_Servers_Server) error {
	if v.Address == nil {
		return fmt.Errorf("invalid nil key received for Address")
	}

	key := *v.Address

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Server == nil {
		t.Server = make(map[string]*OpenconfigSystem_System_Ntp_Servers_Server)
	}

	if _, ok := t.Server[key]; ok {
		return fmt.Errorf("duplicate key for list Server %v", key)
	}

	t.Server[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_Servers
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_Servers) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Server {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_Servers"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_Servers) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_Servers.
func (*OpenconfigSystem_System_Ntp_Servers) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_Servers_Server represents the /openconfig-system/system/ntp/servers/server YANG schema element.
type OpenconfigSystem_System_Ntp_Servers_Server struct {
	ΛMetadata []ygot.Annotation                                  `path:"@" ygotAnnotation:"true"`
	Address   *string                                            `path:"address" module:"openconfig-system"`
	ΛAddress  []ygot.Annotation                                  `path:"@address" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_Ntp_Servers_Server_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                                  `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Ntp_Servers_Server_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                  `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_Servers_Server implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_Servers_Server) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) GetOrCreateConfig() *OpenconfigSystem_System_Ntp_Servers_Server_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_Ntp_Servers_Server_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) GetOrCreateState() *OpenconfigSystem_System_Ntp_Servers_Server_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Ntp_Servers_Server_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_Ntp_Servers_Server. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) GetConfig() *OpenconfigSystem_System_Ntp_Servers_Server_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Ntp_Servers_Server. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) GetState() *OpenconfigSystem_System_Ntp_Servers_Server_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Ntp_Servers_Server
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_Servers_Server
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Ntp_Servers_Server struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Address == nil {
		return nil, fmt.Errorf("nil value for key Address")
	}

	return map[string]interface{}{
		"address": *t.Address,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_Servers_Server"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_Servers_Server) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_Servers_Server.
func (*OpenconfigSystem_System_Ntp_Servers_Server) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_Servers_Server_Config represents the /openconfig-system/system/ntp/servers/server/config YANG schema element.
type OpenconfigSystem_System_Ntp_Servers_Server_Config struct {
	ΛMetadata        []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	Address          *string                                                             `path:"address" module:"openconfig-system"`
	ΛAddress         []ygot.Annotation                                                   `path:"@address" ygotAnnotation:"true"`
	AssociationType  E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType `path:"association-type" module:"openconfig-system"`
	ΛAssociationType []ygot.Annotation                                                   `path:"@association-type" ygotAnnotation:"true"`
	Iburst           *bool                                                               `path:"iburst" module:"openconfig-system"`
	ΛIburst          []ygot.Annotation                                                   `path:"@iburst" ygotAnnotation:"true"`
	NetworkInstance  *string                                                             `path:"network-instance" module:"openconfig-system"`
	ΛNetworkInstance []ygot.Annotation                                                   `path:"@network-instance" ygotAnnotation:"true"`
	Port             *uint16                                                             `path:"port" module:"openconfig-system"`
	ΛPort            []ygot.Annotation                                                   `path:"@port" ygotAnnotation:"true"`
	Prefer           *bool                                                               `path:"prefer" module:"openconfig-system"`
	ΛPrefer          []ygot.Annotation                                                   `path:"@prefer" ygotAnnotation:"true"`
	SourceAddress    *string                                                             `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress   []ygot.Annotation                                                   `path:"@source-address" ygotAnnotation:"true"`
	Version          *uint8                                                              `path:"version" module:"openconfig-system"`
	ΛVersion         []ygot.Annotation                                                   `path:"@version" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_Servers_Server_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_Servers_Server_Config) IsYANGGoStruct() {}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetAssociationType retrieves the value of the leaf AssociationType from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociationType is set, it can
// safely use t.GetAssociationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociationType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetAssociationType() E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType {
	if t == nil || t.AssociationType == 0 {
		return OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_SERVER
	}
	return t.AssociationType
}

// GetIburst retrieves the value of the leaf Iburst from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Iburst is set, it can
// safely use t.GetIburst() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Iburst == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetIburst() bool {
	if t == nil || t.Iburst == nil {
		return false
	}
	return *t.Iburst
}

// GetNetworkInstance retrieves the value of the leaf NetworkInstance from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkInstance is set, it can
// safely use t.GetNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetNetworkInstance() string {
	if t == nil || t.NetworkInstance == nil {
		return ""
	}
	return *t.NetworkInstance
}

// GetPort retrieves the value of the leaf Port from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 123
	}
	return *t.Port
}

// GetPrefer retrieves the value of the leaf Prefer from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefer is set, it can
// safely use t.GetPrefer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefer == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetPrefer() bool {
	if t == nil || t.Prefer == nil {
		return false
	}
	return *t.Prefer
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetVersion retrieves the value of the leaf Version from the OpenconfigSystem_System_Ntp_Servers_Server_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Version is set, it can
// safely use t.GetVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Version == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) GetVersion() uint8 {
	if t == nil || t.Version == nil {
		return 4
	}
	return *t.Version
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_Servers_Server_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AssociationType == 0 {
		t.AssociationType = OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_SERVER
	}
	if t.Iburst == nil {
		var v bool = false
		t.Iburst = &v
	}
	if t.Port == nil {
		var v uint16 = 123
		t.Port = &v
	}
	if t.Prefer == nil {
		var v bool = false
		t.Prefer = &v
	}
	if t.Version == nil {
		var v uint8 = 4
		t.Version = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_Servers_Server_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_Servers_Server_Config.
func (*OpenconfigSystem_System_Ntp_Servers_Server_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_Servers_Server_State represents the /openconfig-system/system/ntp/servers/server/state YANG schema element.
type OpenconfigSystem_System_Ntp_Servers_Server_State struct {
	ΛMetadata        []ygot.Annotation                                                   `path:"@" ygotAnnotation:"true"`
	Address          *string                                                             `path:"address" module:"openconfig-system"`
	ΛAddress         []ygot.Annotation                                                   `path:"@address" ygotAnnotation:"true"`
	AssociationType  E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType `path:"association-type" module:"openconfig-system"`
	ΛAssociationType []ygot.Annotation                                                   `path:"@association-type" ygotAnnotation:"true"`
	Iburst           *bool                                                               `path:"iburst" module:"openconfig-system"`
	ΛIburst          []ygot.Annotation                                                   `path:"@iburst" ygotAnnotation:"true"`
	NetworkInstance  *string                                                             `path:"network-instance" module:"openconfig-system"`
	ΛNetworkInstance []ygot.Annotation                                                   `path:"@network-instance" ygotAnnotation:"true"`
	Offset           *int64                                                              `path:"offset" module:"openconfig-system"`
	ΛOffset          []ygot.Annotation                                                   `path:"@offset" ygotAnnotation:"true"`
	PollInterval     *uint32                                                             `path:"poll-interval" module:"openconfig-system"`
	ΛPollInterval    []ygot.Annotation                                                   `path:"@poll-interval" ygotAnnotation:"true"`
	Port             *uint16                                                             `path:"port" module:"openconfig-system"`
	ΛPort            []ygot.Annotation                                                   `path:"@port" ygotAnnotation:"true"`
	Prefer           *bool                                                               `path:"prefer" module:"openconfig-system"`
	ΛPrefer          []ygot.Annotation                                                   `path:"@prefer" ygotAnnotation:"true"`
	RootDelay        *int64                                                              `path:"root-delay" module:"openconfig-system"`
	ΛRootDelay       []ygot.Annotation                                                   `path:"@root-delay" ygotAnnotation:"true"`
	RootDispersion   *int64                                                              `path:"root-dispersion" module:"openconfig-system"`
	ΛRootDispersion  []ygot.Annotation                                                   `path:"@root-dispersion" ygotAnnotation:"true"`
	SourceAddress    *string                                                             `path:"source-address" module:"openconfig-system"`
	ΛSourceAddress   []ygot.Annotation                                                   `path:"@source-address" ygotAnnotation:"true"`
	Stratum          *uint8                                                              `path:"stratum" module:"openconfig-system"`
	ΛStratum         []ygot.Annotation                                                   `path:"@stratum" ygotAnnotation:"true"`
	Version          *uint8                                                              `path:"version" module:"openconfig-system"`
	ΛVersion         []ygot.Annotation                                                   `path:"@version" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_Servers_Server_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_Servers_Server_State) IsYANGGoStruct() {}

// GetAddress retrieves the value of the leaf Address from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Address is set, it can
// safely use t.GetAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Address == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetAddress() string {
	if t == nil || t.Address == nil {
		return ""
	}
	return *t.Address
}

// GetAssociationType retrieves the value of the leaf AssociationType from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssociationType is set, it can
// safely use t.GetAssociationType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssociationType == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetAssociationType() E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType {
	if t == nil || t.AssociationType == 0 {
		return OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_SERVER
	}
	return t.AssociationType
}

// GetIburst retrieves the value of the leaf Iburst from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Iburst is set, it can
// safely use t.GetIburst() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Iburst == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetIburst() bool {
	if t == nil || t.Iburst == nil {
		return false
	}
	return *t.Iburst
}

// GetNetworkInstance retrieves the value of the leaf NetworkInstance from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if NetworkInstance is set, it can
// safely use t.GetNetworkInstance() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.NetworkInstance == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetNetworkInstance() string {
	if t == nil || t.NetworkInstance == nil {
		return ""
	}
	return *t.NetworkInstance
}

// GetOffset retrieves the value of the leaf Offset from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Offset is set, it can
// safely use t.GetOffset() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Offset == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetOffset() int64 {
	if t == nil || t.Offset == nil {
		return 0
	}
	return *t.Offset
}

// GetPollInterval retrieves the value of the leaf PollInterval from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PollInterval is set, it can
// safely use t.GetPollInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PollInterval == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetPollInterval() uint32 {
	if t == nil || t.PollInterval == nil {
		return 0
	}
	return *t.PollInterval
}

// GetPort retrieves the value of the leaf Port from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Port is set, it can
// safely use t.GetPort() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Port == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetPort() uint16 {
	if t == nil || t.Port == nil {
		return 123
	}
	return *t.Port
}

// GetPrefer retrieves the value of the leaf Prefer from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Prefer is set, it can
// safely use t.GetPrefer() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Prefer == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetPrefer() bool {
	if t == nil || t.Prefer == nil {
		return false
	}
	return *t.Prefer
}

// GetRootDelay retrieves the value of the leaf RootDelay from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RootDelay is set, it can
// safely use t.GetRootDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RootDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetRootDelay() int64 {
	if t == nil || t.RootDelay == nil {
		return 0
	}
	return *t.RootDelay
}

// GetRootDispersion retrieves the value of the leaf RootDispersion from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RootDispersion is set, it can
// safely use t.GetRootDispersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RootDispersion == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetRootDispersion() int64 {
	if t == nil || t.RootDispersion == nil {
		return 0
	}
	return *t.RootDispersion
}

// GetSourceAddress retrieves the value of the leaf SourceAddress from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SourceAddress is set, it can
// safely use t.GetSourceAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SourceAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetSourceAddress() string {
	if t == nil || t.SourceAddress == nil {
		return ""
	}
	return *t.SourceAddress
}

// GetStratum retrieves the value of the leaf Stratum from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Stratum is set, it can
// safely use t.GetStratum() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Stratum == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetStratum() uint8 {
	if t == nil || t.Stratum == nil {
		return 0
	}
	return *t.Stratum
}

// GetVersion retrieves the value of the leaf Version from the OpenconfigSystem_System_Ntp_Servers_Server_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Version is set, it can
// safely use t.GetVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Version == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) GetVersion() uint8 {
	if t == nil || t.Version == nil {
		return 4
	}
	return *t.Version
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_Servers_Server_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AssociationType == 0 {
		t.AssociationType = OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_SERVER
	}
	if t.Iburst == nil {
		var v bool = false
		t.Iburst = &v
	}
	if t.Port == nil {
		var v uint16 = 123
		t.Port = &v
	}
	if t.Prefer == nil {
		var v bool = false
		t.Prefer = &v
	}
	if t.Version == nil {
		var v uint8 = 4
		t.Version = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_Servers_Server_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_Servers_Server_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_Servers_Server_State.
func (*OpenconfigSystem_System_Ntp_Servers_Server_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Ntp_State represents the /openconfig-system/system/ntp/state YANG schema element.
type OpenconfigSystem_System_Ntp_State struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	AuthMismatch   *uint64           `path:"auth-mismatch" module:"openconfig-system"`
	ΛAuthMismatch  []ygot.Annotation `path:"@auth-mismatch" ygotAnnotation:"true"`
	EnableNtpAuth  *bool             `path:"enable-ntp-auth" module:"openconfig-system"`
	ΛEnableNtpAuth []ygot.Annotation `path:"@enable-ntp-auth" ygotAnnotation:"true"`
	Enabled        *bool             `path:"enabled" module:"openconfig-system"`
	ΛEnabled       []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Ntp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Ntp_State) IsYANGGoStruct() {}

// GetAuthMismatch retrieves the value of the leaf AuthMismatch from the OpenconfigSystem_System_Ntp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AuthMismatch is set, it can
// safely use t.GetAuthMismatch() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AuthMismatch == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_State) GetAuthMismatch() uint64 {
	if t == nil || t.AuthMismatch == nil {
		return 0
	}
	return *t.AuthMismatch
}

// GetEnableNtpAuth retrieves the value of the leaf EnableNtpAuth from the OpenconfigSystem_System_Ntp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if EnableNtpAuth is set, it can
// safely use t.GetEnableNtpAuth() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.EnableNtpAuth == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_State) GetEnableNtpAuth() bool {
	if t == nil || t.EnableNtpAuth == nil {
		return false
	}
	return *t.EnableNtpAuth
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigSystem_System_Ntp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Ntp_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Ntp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Ntp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.EnableNtpAuth == nil {
		var v bool = false
		t.EnableNtpAuth = &v
	}
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Ntp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Ntp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Ntp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Ntp_State.
func (*OpenconfigSystem_System_Ntp_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Processes represents the /openconfig-system/system/processes YANG schema element.
type OpenconfigSystem_System_Processes struct {
	ΛMetadata []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	Process   map[uint64]*OpenconfigSystem_System_Processes_Process `path:"process" module:"openconfig-system"`
	ΛProcess  []ygot.Annotation                                     `path:"@process" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Processes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Processes) IsYANGGoStruct() {}

// NewProcess creates a new entry in the Process list of the
// OpenconfigSystem_System_Processes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigSystem_System_Processes) NewProcess(Pid uint64) (*OpenconfigSystem_System_Processes_Process, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Process == nil {
		t.Process = make(map[uint64]*OpenconfigSystem_System_Processes_Process)
	}

	key := Pid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Process[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Process", key)
	}

	t.Process[key] = &OpenconfigSystem_System_Processes_Process{
		Pid: &Pid,
	}

	return t.Process[key], nil
}

// RenameProcess renames an entry in the list Process within
// the OpenconfigSystem_System_Processes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigSystem_System_Processes) RenameProcess(oldK, newK uint64) error {
	if _, ok := t.Process[newK]; ok {
		return fmt.Errorf("key %v already exists in Process", newK)
	}

	e, ok := t.Process[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Process", oldK)
	}
	e.Pid = &newK

	t.Process[newK] = e
	delete(t.Process, oldK)
	return nil
}

// GetOrCreateProcessMap returns the list (map) from OpenconfigSystem_System_Processes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigSystem_System_Processes) GetOrCreateProcessMap() map[uint64]*OpenconfigSystem_System_Processes_Process {
	if t.Process == nil {
		t.Process = make(map[uint64]*OpenconfigSystem_System_Processes_Process)
	}
	return t.Process
}

// GetOrCreateProcess retrieves the value with the specified keys from
// the receiver OpenconfigSystem_System_Processes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigSystem_System_Processes) GetOrCreateProcess(Pid uint64) *OpenconfigSystem_System_Processes_Process {

	key := Pid

	if v, ok := t.Process[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewProcess(Pid)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateProcess got unexpected error: %v", err))
	}
	return v
}

// GetProcess retrieves the value with the specified key from
// the Process map field of OpenconfigSystem_System_Processes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigSystem_System_Processes) GetProcess(Pid uint64) *OpenconfigSystem_System_Processes_Process {

	if t == nil {
		return nil
	}

	key := Pid

	if lm, ok := t.Process[key]; ok {
		return lm
	}
	return nil
}

// AppendProcess appends the supplied OpenconfigSystem_System_Processes_Process struct to the
// list Process of OpenconfigSystem_System_Processes. If the key value(s) specified in
// the supplied OpenconfigSystem_System_Processes_Process already exist in the list, an error is
// returned.
func (t *OpenconfigSystem_System_Processes) AppendProcess(v *OpenconfigSystem_System_Processes_Process) error {
	if v.Pid == nil {
		return fmt.Errorf("invalid nil key received for Pid")
	}

	key := *v.Pid

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Process == nil {
		t.Process = make(map[uint64]*OpenconfigSystem_System_Processes_Process)
	}

	if _, ok := t.Process[key]; ok {
		return fmt.Errorf("duplicate key for list Process %v", key)
	}

	t.Process[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Processes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Processes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Process {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Processes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Processes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Processes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Processes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Processes.
func (*OpenconfigSystem_System_Processes) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Processes_Process represents the /openconfig-system/system/processes/process YANG schema element.
type OpenconfigSystem_System_Processes_Process struct {
	ΛMetadata []ygot.Annotation                                `path:"@" ygotAnnotation:"true"`
	Pid       *uint64                                          `path:"pid" module:"openconfig-system"`
	ΛPid      []ygot.Annotation                                `path:"@pid" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_Processes_Process_State `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Processes_Process implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Processes_Process) IsYANGGoStruct() {}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_Processes_Process) GetOrCreateState() *OpenconfigSystem_System_Processes_Process_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_Processes_Process_State{}
	return t.State
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_Processes_Process. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_Processes_Process) GetState() *OpenconfigSystem_System_Processes_Process_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetPid retrieves the value of the leaf Pid from the OpenconfigSystem_System_Processes_Process
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Pid is set, it can
// safely use t.GetPid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Pid == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process) GetPid() uint64 {
	if t == nil || t.Pid == nil {
		return 0
	}
	return *t.Pid
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Processes_Process
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Processes_Process) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigSystem_System_Processes_Process struct, which is a YANG list entry.
func (t *OpenconfigSystem_System_Processes_Process) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Pid == nil {
		return nil, fmt.Errorf("nil value for key Pid")
	}

	return map[string]interface{}{
		"pid": *t.Pid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Processes_Process) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Processes_Process"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Processes_Process) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Processes_Process) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Processes_Process.
func (*OpenconfigSystem_System_Processes_Process) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_Processes_Process_State represents the /openconfig-system/system/processes/process/state YANG schema element.
type OpenconfigSystem_System_Processes_Process_State struct {
	ΛMetadata          []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Args               []string          `path:"args" module:"openconfig-system"`
	ΛArgs              []ygot.Annotation `path:"@args" ygotAnnotation:"true"`
	CpuUsageSystem     *uint64           `path:"cpu-usage-system" module:"openconfig-system"`
	ΛCpuUsageSystem    []ygot.Annotation `path:"@cpu-usage-system" ygotAnnotation:"true"`
	CpuUsageUser       *uint64           `path:"cpu-usage-user" module:"openconfig-system"`
	ΛCpuUsageUser      []ygot.Annotation `path:"@cpu-usage-user" ygotAnnotation:"true"`
	CpuUtilization     *uint8            `path:"cpu-utilization" module:"openconfig-system"`
	ΛCpuUtilization    []ygot.Annotation `path:"@cpu-utilization" ygotAnnotation:"true"`
	MemoryUsage        *uint64           `path:"memory-usage" module:"openconfig-system"`
	ΛMemoryUsage       []ygot.Annotation `path:"@memory-usage" ygotAnnotation:"true"`
	MemoryUtilization  *uint8            `path:"memory-utilization" module:"openconfig-system"`
	ΛMemoryUtilization []ygot.Annotation `path:"@memory-utilization" ygotAnnotation:"true"`
	Name               *string           `path:"name" module:"openconfig-system"`
	ΛName              []ygot.Annotation `path:"@name" ygotAnnotation:"true"`
	Pid                *uint64           `path:"pid" module:"openconfig-system"`
	ΛPid               []ygot.Annotation `path:"@pid" ygotAnnotation:"true"`
	StartTime          *uint64           `path:"start-time" module:"openconfig-system"`
	ΛStartTime         []ygot.Annotation `path:"@start-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_Processes_Process_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_Processes_Process_State) IsYANGGoStruct() {}

// GetArgs retrieves the value of the leaf Args from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Args is set, it can
// safely use t.GetArgs() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Args == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetArgs() []string {
	if t == nil || t.Args == nil {
		return nil
	}
	return t.Args
}

// GetCpuUsageSystem retrieves the value of the leaf CpuUsageSystem from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CpuUsageSystem is set, it can
// safely use t.GetCpuUsageSystem() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CpuUsageSystem == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetCpuUsageSystem() uint64 {
	if t == nil || t.CpuUsageSystem == nil {
		return 0
	}
	return *t.CpuUsageSystem
}

// GetCpuUsageUser retrieves the value of the leaf CpuUsageUser from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CpuUsageUser is set, it can
// safely use t.GetCpuUsageUser() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CpuUsageUser == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetCpuUsageUser() uint64 {
	if t == nil || t.CpuUsageUser == nil {
		return 0
	}
	return *t.CpuUsageUser
}

// GetCpuUtilization retrieves the value of the leaf CpuUtilization from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CpuUtilization is set, it can
// safely use t.GetCpuUtilization() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CpuUtilization == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetCpuUtilization() uint8 {
	if t == nil || t.CpuUtilization == nil {
		return 0
	}
	return *t.CpuUtilization
}

// GetMemoryUsage retrieves the value of the leaf MemoryUsage from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MemoryUsage is set, it can
// safely use t.GetMemoryUsage() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MemoryUsage == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetMemoryUsage() uint64 {
	if t == nil || t.MemoryUsage == nil {
		return 0
	}
	return *t.MemoryUsage
}

// GetMemoryUtilization retrieves the value of the leaf MemoryUtilization from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MemoryUtilization is set, it can
// safely use t.GetMemoryUtilization() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MemoryUtilization == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetMemoryUtilization() uint8 {
	if t == nil || t.MemoryUtilization == nil {
		return 0
	}
	return *t.MemoryUtilization
}

// GetName retrieves the value of the leaf Name from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Name is set, it can
// safely use t.GetName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Name == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetName() string {
	if t == nil || t.Name == nil {
		return ""
	}
	return *t.Name
}

// GetPid retrieves the value of the leaf Pid from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Pid is set, it can
// safely use t.GetPid() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Pid == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetPid() uint64 {
	if t == nil || t.Pid == nil {
		return 0
	}
	return *t.Pid
}

// GetStartTime retrieves the value of the leaf StartTime from the OpenconfigSystem_System_Processes_Process_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if StartTime is set, it can
// safely use t.GetStartTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.StartTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_Processes_Process_State) GetStartTime() uint64 {
	if t == nil || t.StartTime == nil {
		return 0
	}
	return *t.StartTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_Processes_Process_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_Processes_Process_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Processes_Process_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_Processes_Process_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_Processes_Process_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_Processes_Process_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_Processes_Process_State.
func (*OpenconfigSystem_System_Processes_Process_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_SshServer represents the /openconfig-system/system/ssh-server YANG schema element.
type OpenconfigSystem_System_SshServer struct {
	ΛMetadata []ygot.Annotation                         `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_SshServer_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                         `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_SshServer_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_SshServer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_SshServer) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_SshServer) GetOrCreateConfig() *OpenconfigSystem_System_SshServer_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_SshServer_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_SshServer) GetOrCreateState() *OpenconfigSystem_System_SshServer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_SshServer_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_SshServer. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_SshServer) GetConfig() *OpenconfigSystem_System_SshServer_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_SshServer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_SshServer) GetState() *OpenconfigSystem_System_SshServer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_SshServer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_SshServer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_SshServer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_SshServer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_SshServer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_SshServer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_SshServer.
func (*OpenconfigSystem_System_SshServer) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_SshServer_Config represents the /openconfig-system/system/ssh-server/config YANG schema element.
type OpenconfigSystem_System_SshServer_Config struct {
	ΛMetadata        []ygot.Annotation                                          `path:"@" ygotAnnotation:"true"`
	Enable           *bool                                                      `path:"enable" module:"openconfig-system"`
	ΛEnable          []ygot.Annotation                                          `path:"@enable" ygotAnnotation:"true"`
	ProtocolVersion  E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion `path:"protocol-version" module:"openconfig-system"`
	ΛProtocolVersion []ygot.Annotation                                          `path:"@protocol-version" ygotAnnotation:"true"`
	RateLimit        *uint16                                                    `path:"rate-limit" module:"openconfig-system"`
	ΛRateLimit       []ygot.Annotation                                          `path:"@rate-limit" ygotAnnotation:"true"`
	SessionLimit     *uint16                                                    `path:"session-limit" module:"openconfig-system"`
	ΛSessionLimit    []ygot.Annotation                                          `path:"@session-limit" ygotAnnotation:"true"`
	Timeout          *uint16                                                    `path:"timeout" module:"openconfig-system"`
	ΛTimeout         []ygot.Annotation                                          `path:"@timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_SshServer_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_SshServer_Config) IsYANGGoStruct() {}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigSystem_System_SshServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return true
	}
	return *t.Enable
}

// GetProtocolVersion retrieves the value of the leaf ProtocolVersion from the OpenconfigSystem_System_SshServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtocolVersion is set, it can
// safely use t.GetProtocolVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtocolVersion == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_Config) GetProtocolVersion() E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion {
	if t == nil || t.ProtocolVersion == 0 {
		return OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V2
	}
	return t.ProtocolVersion
}

// GetRateLimit retrieves the value of the leaf RateLimit from the OpenconfigSystem_System_SshServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateLimit is set, it can
// safely use t.GetRateLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_Config) GetRateLimit() uint16 {
	if t == nil || t.RateLimit == nil {
		return 0
	}
	return *t.RateLimit
}

// GetSessionLimit retrieves the value of the leaf SessionLimit from the OpenconfigSystem_System_SshServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionLimit is set, it can
// safely use t.GetSessionLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_Config) GetSessionLimit() uint16 {
	if t == nil || t.SessionLimit == nil {
		return 0
	}
	return *t.SessionLimit
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigSystem_System_SshServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_Config) GetTimeout() uint16 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_SshServer_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_SshServer_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = true
		t.Enable = &v
	}
	if t.ProtocolVersion == 0 {
		t.ProtocolVersion = OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V2
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_SshServer_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_SshServer_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_SshServer_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_SshServer_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_SshServer_Config.
func (*OpenconfigSystem_System_SshServer_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_SshServer_State represents the /openconfig-system/system/ssh-server/state YANG schema element.
type OpenconfigSystem_System_SshServer_State struct {
	ΛMetadata        []ygot.Annotation                                          `path:"@" ygotAnnotation:"true"`
	Enable           *bool                                                      `path:"enable" module:"openconfig-system"`
	ΛEnable          []ygot.Annotation                                          `path:"@enable" ygotAnnotation:"true"`
	ProtocolVersion  E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion `path:"protocol-version" module:"openconfig-system"`
	ΛProtocolVersion []ygot.Annotation                                          `path:"@protocol-version" ygotAnnotation:"true"`
	RateLimit        *uint16                                                    `path:"rate-limit" module:"openconfig-system"`
	ΛRateLimit       []ygot.Annotation                                          `path:"@rate-limit" ygotAnnotation:"true"`
	SessionLimit     *uint16                                                    `path:"session-limit" module:"openconfig-system"`
	ΛSessionLimit    []ygot.Annotation                                          `path:"@session-limit" ygotAnnotation:"true"`
	Timeout          *uint16                                                    `path:"timeout" module:"openconfig-system"`
	ΛTimeout         []ygot.Annotation                                          `path:"@timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_SshServer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_SshServer_State) IsYANGGoStruct() {}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigSystem_System_SshServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return true
	}
	return *t.Enable
}

// GetProtocolVersion retrieves the value of the leaf ProtocolVersion from the OpenconfigSystem_System_SshServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ProtocolVersion is set, it can
// safely use t.GetProtocolVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ProtocolVersion == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_State) GetProtocolVersion() E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion {
	if t == nil || t.ProtocolVersion == 0 {
		return OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V2
	}
	return t.ProtocolVersion
}

// GetRateLimit retrieves the value of the leaf RateLimit from the OpenconfigSystem_System_SshServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateLimit is set, it can
// safely use t.GetRateLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_State) GetRateLimit() uint16 {
	if t == nil || t.RateLimit == nil {
		return 0
	}
	return *t.RateLimit
}

// GetSessionLimit retrieves the value of the leaf SessionLimit from the OpenconfigSystem_System_SshServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionLimit is set, it can
// safely use t.GetSessionLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_State) GetSessionLimit() uint16 {
	if t == nil || t.SessionLimit == nil {
		return 0
	}
	return *t.SessionLimit
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigSystem_System_SshServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_SshServer_State) GetTimeout() uint16 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_SshServer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_SshServer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = true
		t.Enable = &v
	}
	if t.ProtocolVersion == 0 {
		t.ProtocolVersion = OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V2
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_SshServer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_SshServer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_SshServer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_SshServer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_SshServer_State.
func (*OpenconfigSystem_System_SshServer_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_State represents the /openconfig-system/system/state YANG schema element.
type OpenconfigSystem_System_State struct {
	ΛMetadata                   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	BootTime                    *uint64           `path:"boot-time" module:"openconfig-system"`
	ΛBootTime                   []ygot.Annotation `path:"@boot-time" ygotAnnotation:"true"`
	CurrentDatetime             *string           `path:"current-datetime" module:"openconfig-system"`
	ΛCurrentDatetime            []ygot.Annotation `path:"@current-datetime" ygotAnnotation:"true"`
	DomainName                  *string           `path:"domain-name" module:"openconfig-system"`
	ΛDomainName                 []ygot.Annotation `path:"@domain-name" ygotAnnotation:"true"`
	Hostname                    *string           `path:"hostname" module:"openconfig-system"`
	ΛHostname                   []ygot.Annotation `path:"@hostname" ygotAnnotation:"true"`
	LastConfigurationTimestamp  *uint64           `path:"last-configuration-timestamp" module:"openconfig-system"`
	ΛLastConfigurationTimestamp []ygot.Annotation `path:"@last-configuration-timestamp" ygotAnnotation:"true"`
	LoginBanner                 *string           `path:"login-banner" module:"openconfig-system"`
	ΛLoginBanner                []ygot.Annotation `path:"@login-banner" ygotAnnotation:"true"`
	MotdBanner                  *string           `path:"motd-banner" module:"openconfig-system"`
	ΛMotdBanner                 []ygot.Annotation `path:"@motd-banner" ygotAnnotation:"true"`
	SoftwareVersion             *string           `path:"software-version" module:"openconfig-system"`
	ΛSoftwareVersion            []ygot.Annotation `path:"@software-version" ygotAnnotation:"true"`
	UpTime                      *uint64           `path:"up-time" module:"openconfig-system"`
	ΛUpTime                     []ygot.Annotation `path:"@up-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_State) IsYANGGoStruct() {}

// GetBootTime retrieves the value of the leaf BootTime from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BootTime is set, it can
// safely use t.GetBootTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BootTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetBootTime() uint64 {
	if t == nil || t.BootTime == nil {
		return 0
	}
	return *t.BootTime
}

// GetCurrentDatetime retrieves the value of the leaf CurrentDatetime from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CurrentDatetime is set, it can
// safely use t.GetCurrentDatetime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CurrentDatetime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetCurrentDatetime() string {
	if t == nil || t.CurrentDatetime == nil {
		return ""
	}
	return *t.CurrentDatetime
}

// GetDomainName retrieves the value of the leaf DomainName from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if DomainName is set, it can
// safely use t.GetDomainName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.DomainName == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetDomainName() string {
	if t == nil || t.DomainName == nil {
		return ""
	}
	return *t.DomainName
}

// GetHostname retrieves the value of the leaf Hostname from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Hostname is set, it can
// safely use t.GetHostname() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Hostname == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetHostname() string {
	if t == nil || t.Hostname == nil {
		return ""
	}
	return *t.Hostname
}

// GetLastConfigurationTimestamp retrieves the value of the leaf LastConfigurationTimestamp from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastConfigurationTimestamp is set, it can
// safely use t.GetLastConfigurationTimestamp() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastConfigurationTimestamp == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetLastConfigurationTimestamp() uint64 {
	if t == nil || t.LastConfigurationTimestamp == nil {
		return 0
	}
	return *t.LastConfigurationTimestamp
}

// GetLoginBanner retrieves the value of the leaf LoginBanner from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoginBanner is set, it can
// safely use t.GetLoginBanner() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoginBanner == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetLoginBanner() string {
	if t == nil || t.LoginBanner == nil {
		return ""
	}
	return *t.LoginBanner
}

// GetMotdBanner retrieves the value of the leaf MotdBanner from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MotdBanner is set, it can
// safely use t.GetMotdBanner() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MotdBanner == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetMotdBanner() string {
	if t == nil || t.MotdBanner == nil {
		return ""
	}
	return *t.MotdBanner
}

// GetSoftwareVersion retrieves the value of the leaf SoftwareVersion from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SoftwareVersion is set, it can
// safely use t.GetSoftwareVersion() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SoftwareVersion == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetSoftwareVersion() string {
	if t == nil || t.SoftwareVersion == nil {
		return ""
	}
	return *t.SoftwareVersion
}

// GetUpTime retrieves the value of the leaf UpTime from the OpenconfigSystem_System_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UpTime is set, it can
// safely use t.GetUpTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UpTime == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_State) GetUpTime() uint64 {
	if t == nil || t.UpTime == nil {
		return 0
	}
	return *t.UpTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_State.
func (*OpenconfigSystem_System_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_TelnetServer represents the /openconfig-system/system/telnet-server YANG schema element.
type OpenconfigSystem_System_TelnetServer struct {
	ΛMetadata []ygot.Annotation                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigSystem_System_TelnetServer_Config `path:"config" module:"openconfig-system"`
	ΛConfig   []ygot.Annotation                            `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigSystem_System_TelnetServer_State  `path:"state" module:"openconfig-system"`
	ΛState    []ygot.Annotation                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_TelnetServer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_TelnetServer) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_TelnetServer) GetOrCreateConfig() *OpenconfigSystem_System_TelnetServer_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigSystem_System_TelnetServer_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigSystem_System_TelnetServer) GetOrCreateState() *OpenconfigSystem_System_TelnetServer_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigSystem_System_TelnetServer_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigSystem_System_TelnetServer. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_TelnetServer) GetConfig() *OpenconfigSystem_System_TelnetServer_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigSystem_System_TelnetServer. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigSystem_System_TelnetServer) GetState() *OpenconfigSystem_System_TelnetServer_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_TelnetServer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_TelnetServer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_TelnetServer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_TelnetServer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_TelnetServer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_TelnetServer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_TelnetServer.
func (*OpenconfigSystem_System_TelnetServer) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_TelnetServer_Config represents the /openconfig-system/system/telnet-server/config YANG schema element.
type OpenconfigSystem_System_TelnetServer_Config struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enable        *bool             `path:"enable" module:"openconfig-system"`
	ΛEnable       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	RateLimit     *uint16           `path:"rate-limit" module:"openconfig-system"`
	ΛRateLimit    []ygot.Annotation `path:"@rate-limit" ygotAnnotation:"true"`
	SessionLimit  *uint16           `path:"session-limit" module:"openconfig-system"`
	ΛSessionLimit []ygot.Annotation `path:"@session-limit" ygotAnnotation:"true"`
	Timeout       *uint16           `path:"timeout" module:"openconfig-system"`
	ΛTimeout      []ygot.Annotation `path:"@timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_TelnetServer_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_TelnetServer_Config) IsYANGGoStruct() {}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigSystem_System_TelnetServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_Config) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetRateLimit retrieves the value of the leaf RateLimit from the OpenconfigSystem_System_TelnetServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateLimit is set, it can
// safely use t.GetRateLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_Config) GetRateLimit() uint16 {
	if t == nil || t.RateLimit == nil {
		return 0
	}
	return *t.RateLimit
}

// GetSessionLimit retrieves the value of the leaf SessionLimit from the OpenconfigSystem_System_TelnetServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionLimit is set, it can
// safely use t.GetSessionLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_Config) GetSessionLimit() uint16 {
	if t == nil || t.SessionLimit == nil {
		return 0
	}
	return *t.SessionLimit
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigSystem_System_TelnetServer_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_Config) GetTimeout() uint16 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_TelnetServer_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_TelnetServer_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_TelnetServer_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_TelnetServer_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_TelnetServer_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_TelnetServer_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_TelnetServer_Config.
func (*OpenconfigSystem_System_TelnetServer_Config) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigSystem_System_TelnetServer_State represents the /openconfig-system/system/telnet-server/state YANG schema element.
type OpenconfigSystem_System_TelnetServer_State struct {
	ΛMetadata     []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enable        *bool             `path:"enable" module:"openconfig-system"`
	ΛEnable       []ygot.Annotation `path:"@enable" ygotAnnotation:"true"`
	RateLimit     *uint16           `path:"rate-limit" module:"openconfig-system"`
	ΛRateLimit    []ygot.Annotation `path:"@rate-limit" ygotAnnotation:"true"`
	SessionLimit  *uint16           `path:"session-limit" module:"openconfig-system"`
	ΛSessionLimit []ygot.Annotation `path:"@session-limit" ygotAnnotation:"true"`
	Timeout       *uint16           `path:"timeout" module:"openconfig-system"`
	ΛTimeout      []ygot.Annotation `path:"@timeout" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigSystem_System_TelnetServer_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigSystem_System_TelnetServer_State) IsYANGGoStruct() {}

// GetEnable retrieves the value of the leaf Enable from the OpenconfigSystem_System_TelnetServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enable is set, it can
// safely use t.GetEnable() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enable == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_State) GetEnable() bool {
	if t == nil || t.Enable == nil {
		return false
	}
	return *t.Enable
}

// GetRateLimit retrieves the value of the leaf RateLimit from the OpenconfigSystem_System_TelnetServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateLimit is set, it can
// safely use t.GetRateLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_State) GetRateLimit() uint16 {
	if t == nil || t.RateLimit == nil {
		return 0
	}
	return *t.RateLimit
}

// GetSessionLimit retrieves the value of the leaf SessionLimit from the OpenconfigSystem_System_TelnetServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SessionLimit is set, it can
// safely use t.GetSessionLimit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SessionLimit == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_State) GetSessionLimit() uint16 {
	if t == nil || t.SessionLimit == nil {
		return 0
	}
	return *t.SessionLimit
}

// GetTimeout retrieves the value of the leaf Timeout from the OpenconfigSystem_System_TelnetServer_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Timeout is set, it can
// safely use t.GetTimeout() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Timeout == nil' before retrieving the leaf's value.
func (t *OpenconfigSystem_System_TelnetServer_State) GetTimeout() uint16 {
	if t == nil || t.Timeout == nil {
		return 0
	}
	return *t.Timeout
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigSystem_System_TelnetServer_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigSystem_System_TelnetServer_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enable == nil {
		var v bool = false
		t.Enable = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_TelnetServer_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigSystem_System_TelnetServer_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigSystem_System_TelnetServer_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigSystem_System_TelnetServer_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigSystem_System_TelnetServer_State.
func (*OpenconfigSystem_System_TelnetServer_State) ΛBelongingModule() string {
	return "openconfig-system"
}

// OpenconfigTerminalDevice_TerminalDevice represents the /openconfig-terminal-device/terminal-device YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice struct {
	ΛMetadata         []ygot.Annotation                                         `path:"@" ygotAnnotation:"true"`
	Config            *OpenconfigTerminalDevice_TerminalDevice_Config           `path:"config" module:"openconfig-terminal-device"`
	ΛConfig           []ygot.Annotation                                         `path:"@config" ygotAnnotation:"true"`
	LogicalChannels   *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels  `path:"logical-channels" module:"openconfig-terminal-device"`
	ΛLogicalChannels  []ygot.Annotation                                         `path:"@logical-channels" ygotAnnotation:"true"`
	OperationalModes  *OpenconfigTerminalDevice_TerminalDevice_OperationalModes `path:"operational-modes" module:"openconfig-terminal-device"`
	ΛOperationalModes []ygot.Annotation                                         `path:"@operational-modes" ygotAnnotation:"true"`
	State             *OpenconfigTerminalDevice_TerminalDevice_State            `path:"state" module:"openconfig-terminal-device"`
	ΛState            []ygot.Annotation                                         `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_Config{}
	return t.Config
}

// GetOrCreateLogicalChannels retrieves the value of the LogicalChannels field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetOrCreateLogicalChannels() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels {
	if t.LogicalChannels != nil {
		return t.LogicalChannels
	}
	t.LogicalChannels = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels{}
	return t.LogicalChannels
}

// GetOrCreateOperationalModes retrieves the value of the OperationalModes field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetOrCreateOperationalModes() *OpenconfigTerminalDevice_TerminalDevice_OperationalModes {
	if t.OperationalModes != nil {
		return t.OperationalModes
	}
	t.OperationalModes = &OpenconfigTerminalDevice_TerminalDevice_OperationalModes{}
	return t.OperationalModes
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLogicalChannels returns the value of the LogicalChannels struct pointer
// from OpenconfigTerminalDevice_TerminalDevice. If the receiver or the field LogicalChannels is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetLogicalChannels() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels {
	if t != nil && t.LogicalChannels != nil {
		return t.LogicalChannels
	}
	return nil
}

// GetOperationalModes returns the value of the OperationalModes struct pointer
// from OpenconfigTerminalDevice_TerminalDevice. If the receiver or the field OperationalModes is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetOperationalModes() *OpenconfigTerminalDevice_TerminalDevice_OperationalModes {
	if t != nil && t.OperationalModes != nil {
		return t.OperationalModes
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice) GetState() *OpenconfigTerminalDevice_TerminalDevice_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.LogicalChannels.PopulateDefaults()
	t.OperationalModes.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice.
func (*OpenconfigTerminalDevice_TerminalDevice) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_Config represents the /openconfig-terminal-device/terminal-device/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels represents the /openconfig-terminal-device/terminal-device/logical-channels YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels struct {
	ΛMetadata []ygot.Annotation                                                           `path:"@" ygotAnnotation:"true"`
	Channel   map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel `path:"channel" module:"openconfig-terminal-device"`
	ΛChannel  []ygot.Annotation                                                           `path:"@channel" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) IsYANGGoStruct() {}

// NewChannel creates a new entry in the Channel list of the
// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) NewChannel(Index uint32) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Channel == nil {
		t.Channel = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Channel[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Channel", key)
	}

	t.Channel[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel{
		Index: &Index,
	}

	return t.Channel[key], nil
}

// RenameChannel renames an entry in the list Channel within
// the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) RenameChannel(oldK, newK uint32) error {
	if _, ok := t.Channel[newK]; ok {
		return fmt.Errorf("key %v already exists in Channel", newK)
	}

	e, ok := t.Channel[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Channel", oldK)
	}
	e.Index = &newK

	t.Channel[newK] = e
	delete(t.Channel, oldK)
	return nil
}

// GetOrCreateChannelMap returns the list (map) from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels.
//
// It initializes the field if not already initialized.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) GetOrCreateChannelMap() map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel {
	if t.Channel == nil {
		t.Channel = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel)
	}
	return t.Channel
}

// GetOrCreateChannel retrieves the value with the specified keys from
// the receiver OpenconfigTerminalDevice_TerminalDevice_LogicalChannels. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) GetOrCreateChannel(Index uint32) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel {

	key := Index

	if v, ok := t.Channel[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewChannel(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateChannel got unexpected error: %v", err))
	}
	return v
}

// GetChannel retrieves the value with the specified key from
// the Channel map field of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) GetChannel(Index uint32) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Channel[key]; ok {
		return lm
	}
	return nil
}

// AppendChannel appends the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel struct to the
// list Channel of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels. If the key value(s) specified in
// the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel already exist in the list, an error is
// returned.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) AppendChannel(v *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Channel == nil {
		t.Channel = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel)
	}

	if _, ok := t.Channel[key]; ok {
		return fmt.Errorf("duplicate key for list Channel %v", key)
	}

	t.Channel[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Channel {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel represents the /openconfig-terminal-device/terminal-device/logical-channels/channel YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel struct {
	ΛMetadata                  []ygot.Annotation                                                                          `path:"@" ygotAnnotation:"true"`
	Config                     *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config                    `path:"config" module:"openconfig-terminal-device"`
	ΛConfig                    []ygot.Annotation                                                                          `path:"@config" ygotAnnotation:"true"`
	Ethernet                   *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet                  `path:"ethernet" module:"openconfig-terminal-device"`
	ΛEthernet                  []ygot.Annotation                                                                          `path:"@ethernet" ygotAnnotation:"true"`
	Index                      *uint32                                                                                    `path:"index" module:"openconfig-terminal-device"`
	ΛIndex                     []ygot.Annotation                                                                          `path:"@index" ygotAnnotation:"true"`
	Ingress                    *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress                   `path:"ingress" module:"openconfig-terminal-device"`
	ΛIngress                   []ygot.Annotation                                                                          `path:"@ingress" ygotAnnotation:"true"`
	LogicalChannelAssignments  *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments `path:"logical-channel-assignments" module:"openconfig-terminal-device"`
	ΛLogicalChannelAssignments []ygot.Annotation                                                                          `path:"@logical-channel-assignments" ygotAnnotation:"true"`
	Otn                        *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn                       `path:"otn" module:"openconfig-terminal-device"`
	ΛOtn                       []ygot.Annotation                                                                          `path:"@otn" ygotAnnotation:"true"`
	State                      *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State                     `path:"state" module:"openconfig-terminal-device"`
	ΛState                     []ygot.Annotation                                                                          `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config{}
	return t.Config
}

// GetOrCreateEthernet retrieves the value of the Ethernet field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetOrCreateEthernet() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet {
	if t.Ethernet != nil {
		return t.Ethernet
	}
	t.Ethernet = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet{}
	return t.Ethernet
}

// GetOrCreateIngress retrieves the value of the Ingress field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetOrCreateIngress() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress {
	if t.Ingress != nil {
		return t.Ingress
	}
	t.Ingress = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress{}
	return t.Ingress
}

// GetOrCreateLogicalChannelAssignments retrieves the value of the LogicalChannelAssignments field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetOrCreateLogicalChannelAssignments() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments {
	if t.LogicalChannelAssignments != nil {
		return t.LogicalChannelAssignments
	}
	t.LogicalChannelAssignments = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments{}
	return t.LogicalChannelAssignments
}

// GetOrCreateOtn retrieves the value of the Otn field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetOrCreateOtn() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn {
	if t.Otn != nil {
		return t.Otn
	}
	t.Otn = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn{}
	return t.Otn
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetEthernet returns the value of the Ethernet struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel. If the receiver or the field Ethernet is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetEthernet() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet {
	if t != nil && t.Ethernet != nil {
		return t.Ethernet
	}
	return nil
}

// GetIngress returns the value of the Ingress struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel. If the receiver or the field Ingress is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetIngress() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress {
	if t != nil && t.Ingress != nil {
		return t.Ingress
	}
	return nil
}

// GetLogicalChannelAssignments returns the value of the LogicalChannelAssignments struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel. If the receiver or the field LogicalChannelAssignments is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetLogicalChannelAssignments() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments {
	if t != nil && t.LogicalChannelAssignments != nil {
		return t.LogicalChannelAssignments
	}
	return nil
}

// GetOtn returns the value of the Otn struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel. If the receiver or the field Otn is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetOtn() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn {
	if t != nil && t.Otn != nil {
		return t.Otn
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Ethernet.PopulateDefaults()
	t.Ingress.PopulateDefaults()
	t.LogicalChannelAssignments.PopulateDefaults()
	t.Otn.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel struct, which is a YANG list entry.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config struct {
	ΛMetadata           []ygot.Annotation                                        `path:"@" ygotAnnotation:"true"`
	AdminState          E_OpenconfigTransportTypes_AdminStateType                `path:"admin-state" module:"openconfig-terminal-device"`
	ΛAdminState         []ygot.Annotation                                        `path:"@admin-state" ygotAnnotation:"true"`
	ClientMappingMode   E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE           `path:"client-mapping-mode" module:"openconfig-terminal-device"`
	ΛClientMappingMode  []ygot.Annotation                                        `path:"@client-mapping-mode" ygotAnnotation:"true"`
	Description         *string                                                  `path:"description" module:"openconfig-terminal-device"`
	ΛDescription        []ygot.Annotation                                        `path:"@description" ygotAnnotation:"true"`
	Index               *uint32                                                  `path:"index" module:"openconfig-terminal-device"`
	ΛIndex              []ygot.Annotation                                        `path:"@index" ygotAnnotation:"true"`
	LogicalChannelType  E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE `path:"logical-channel-type" module:"openconfig-terminal-device"`
	ΛLogicalChannelType []ygot.Annotation                                        `path:"@logical-channel-type" ygotAnnotation:"true"`
	LoopbackMode        E_OpenconfigTransportTypes_LoopbackModeType              `path:"loopback-mode" module:"openconfig-terminal-device"`
	ΛLoopbackMode       []ygot.Annotation                                        `path:"@loopback-mode" ygotAnnotation:"true"`
	RateClass           E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE     `path:"rate-class" module:"openconfig-terminal-device"`
	ΛRateClass          []ygot.Annotation                                        `path:"@rate-class" ygotAnnotation:"true"`
	TestSignal          *bool                                                    `path:"test-signal" module:"openconfig-terminal-device"`
	ΛTestSignal         []ygot.Annotation                                        `path:"@test-signal" ygotAnnotation:"true"`
	TribProtocol        E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE       `path:"trib-protocol" module:"openconfig-terminal-device"`
	ΛTribProtocol       []ygot.Annotation                                        `path:"@trib-protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) IsYANGGoStruct() {}

// GetAdminState retrieves the value of the leaf AdminState from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminState is set, it can
// safely use t.GetAdminState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminState == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetAdminState() E_OpenconfigTransportTypes_AdminStateType {
	if t == nil || t.AdminState == 0 {
		return 0
	}
	return t.AdminState
}

// GetClientMappingMode retrieves the value of the leaf ClientMappingMode from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ClientMappingMode is set, it can
// safely use t.GetClientMappingMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ClientMappingMode == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetClientMappingMode() E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE {
	if t == nil || t.ClientMappingMode == 0 {
		return 0
	}
	return t.ClientMappingMode
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLogicalChannelType retrieves the value of the leaf LogicalChannelType from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogicalChannelType is set, it can
// safely use t.GetLogicalChannelType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogicalChannelType == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetLogicalChannelType() E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE {
	if t == nil || t.LogicalChannelType == 0 {
		return 0
	}
	return t.LogicalChannelType
}

// GetLoopbackMode retrieves the value of the leaf LoopbackMode from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoopbackMode is set, it can
// safely use t.GetLoopbackMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoopbackMode == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetLoopbackMode() E_OpenconfigTransportTypes_LoopbackModeType {
	if t == nil || t.LoopbackMode == 0 {
		return OpenconfigTransportTypes_LoopbackModeType_NONE
	}
	return t.LoopbackMode
}

// GetRateClass retrieves the value of the leaf RateClass from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateClass is set, it can
// safely use t.GetRateClass() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateClass == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetRateClass() E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE {
	if t == nil || t.RateClass == 0 {
		return 0
	}
	return t.RateClass
}

// GetTestSignal retrieves the value of the leaf TestSignal from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TestSignal is set, it can
// safely use t.GetTestSignal() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TestSignal == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetTestSignal() bool {
	if t == nil || t.TestSignal == nil {
		return false
	}
	return *t.TestSignal
}

// GetTribProtocol retrieves the value of the leaf TribProtocol from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TribProtocol is set, it can
// safely use t.GetTribProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TribProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) GetTribProtocol() E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE {
	if t == nil || t.TribProtocol == 0 {
		return 0
	}
	return t.TribProtocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LoopbackMode == 0 {
		t.LoopbackMode = OpenconfigTransportTypes_LoopbackModeType_NONE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet struct {
	ΛMetadata []ygot.Annotation                                                                `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config `path:"config" module:"openconfig-terminal-device"`
	ΛConfig   []ygot.Annotation                                                                `path:"@config" ygotAnnotation:"true"`
	Lldp      *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp   `path:"lldp" module:"openconfig-terminal-device"`
	ΛLldp     []ygot.Annotation                                                                `path:"@lldp" ygotAnnotation:"true"`
	State     *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State  `path:"state" module:"openconfig-terminal-device"`
	ΛState    []ygot.Annotation                                                                `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config{}
	return t.Config
}

// GetOrCreateLldp retrieves the value of the Lldp field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) GetOrCreateLldp() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp {
	if t.Lldp != nil {
		return t.Lldp
	}
	t.Lldp = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp{}
	return t.Lldp
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetLldp returns the value of the Lldp struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet. If the receiver or the field Lldp is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) GetLldp() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp {
	if t != nil && t.Lldp != nil {
		return t.Lldp
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Lldp.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config struct {
	ΛMetadata  []ygot.Annotation                                                                           `path:"@" ygotAnnotation:"true"`
	AlsDelay   *uint32                                                                                     `path:"als-delay" module:"openconfig-terminal-device"`
	ΛAlsDelay  []ygot.Annotation                                                                           `path:"@als-delay" ygotAnnotation:"true"`
	ClientAls  E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls `path:"client-als" module:"openconfig-terminal-device"`
	ΛClientAls []ygot.Annotation                                                                           `path:"@client-als" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) IsYANGGoStruct() {
}

// GetAlsDelay retrieves the value of the leaf AlsDelay from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlsDelay is set, it can
// safely use t.GetAlsDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlsDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) GetAlsDelay() uint32 {
	if t == nil || t.AlsDelay == nil {
		return 0
	}
	return *t.AlsDelay
}

// GetClientAls retrieves the value of the leaf ClientAls from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ClientAls is set, it can
// safely use t.GetClientAls() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ClientAls == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) GetClientAls() E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls {
	if t == nil || t.ClientAls == 0 {
		return OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET
	}
	return t.ClientAls
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AlsDelay == nil {
		var v uint32 = 0
		t.AlsDelay = &v
	}
	if t.ClientAls == 0 {
		t.ClientAls = OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp struct {
	ΛMetadata  []ygot.Annotation                                                                        `path:"@" ygotAnnotation:"true"`
	Config     *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config    `path:"config" module:"openconfig-terminal-device"`
	ΛConfig    []ygot.Annotation                                                                        `path:"@config" ygotAnnotation:"true"`
	Neighbors  *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors `path:"neighbors" module:"openconfig-terminal-device"`
	ΛNeighbors []ygot.Annotation                                                                        `path:"@neighbors" ygotAnnotation:"true"`
	State      *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State     `path:"state" module:"openconfig-terminal-device"`
	ΛState     []ygot.Annotation                                                                        `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config{}
	return t.Config
}

// GetOrCreateNeighbors retrieves the value of the Neighbors field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) GetOrCreateNeighbors() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors {
	if t.Neighbors != nil {
		return t.Neighbors
	}
	t.Neighbors = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors{}
	return t.Neighbors
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetNeighbors returns the value of the Neighbors struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp. If the receiver or the field Neighbors is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) GetNeighbors() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors {
	if t != nil && t.Neighbors != nil {
		return t.Neighbors
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.Neighbors.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Enabled   *bool             `path:"enabled" module:"openconfig-terminal-device"`
	ΛEnabled  []ygot.Annotation `path:"@enabled" ygotAnnotation:"true"`
	Snooping  *bool             `path:"snooping" module:"openconfig-terminal-device"`
	ΛSnooping []ygot.Annotation `path:"@snooping" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) IsYANGGoStruct() {
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSnooping retrieves the value of the leaf Snooping from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Snooping is set, it can
// safely use t.GetSnooping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Snooping == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) GetSnooping() bool {
	if t == nil || t.Snooping == nil {
		return false
	}
	return *t.Snooping
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.Snooping == nil {
		var v bool = false
		t.Snooping = &v
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors struct {
	ΛMetadata []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Neighbor  map[string]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor `path:"neighbor" module:"openconfig-terminal-device"`
	ΛNeighbor []ygot.Annotation                                                                                            `path:"@neighbor" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) IsYANGGoStruct() {
}

// NewNeighbor creates a new entry in the Neighbor list of the
// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) NewNeighbor(Id string) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor)
	}

	key := Id

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Neighbor[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Neighbor", key)
	}

	t.Neighbor[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor{
		Id: &Id,
	}

	return t.Neighbor[key], nil
}

// RenameNeighbor renames an entry in the list Neighbor within
// the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) RenameNeighbor(oldK, newK string) error {
	if _, ok := t.Neighbor[newK]; ok {
		return fmt.Errorf("key %v already exists in Neighbor", newK)
	}

	e, ok := t.Neighbor[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Neighbor", oldK)
	}
	e.Id = &newK

	t.Neighbor[newK] = e
	delete(t.Neighbor, oldK)
	return nil
}

// GetOrCreateNeighborMap returns the list (map) from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors.
//
// It initializes the field if not already initialized.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) GetOrCreateNeighborMap() map[string]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor {
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor)
	}
	return t.Neighbor
}

// GetOrCreateNeighbor retrieves the value with the specified keys from
// the receiver OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) GetOrCreateNeighbor(Id string) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor {

	key := Id

	if v, ok := t.Neighbor[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewNeighbor(Id)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateNeighbor got unexpected error: %v", err))
	}
	return v
}

// GetNeighbor retrieves the value with the specified key from
// the Neighbor map field of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) GetNeighbor(Id string) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor {

	if t == nil {
		return nil
	}

	key := Id

	if lm, ok := t.Neighbor[key]; ok {
		return lm
	}
	return nil
}

// AppendNeighbor appends the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor struct to the
// list Neighbor of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors. If the key value(s) specified in
// the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor already exist in the list, an error is
// returned.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) AppendNeighbor(v *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) error {
	if v.Id == nil {
		return fmt.Errorf("invalid nil key received for Id")
	}

	key := *v.Id

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Neighbor == nil {
		t.Neighbor = make(map[string]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor)
	}

	if _, ok := t.Neighbor[key]; ok {
		return fmt.Errorf("duplicate key for list Neighbor %v", key)
	}

	t.Neighbor[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Neighbor {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor struct {
	ΛMetadata   []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config     `path:"config" module:"openconfig-terminal-device"`
	ΛConfig     []ygot.Annotation                                                                                            `path:"@config" ygotAnnotation:"true"`
	CustomTlvs  *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs `path:"custom-tlvs" module:"openconfig-terminal-device"`
	ΛCustomTlvs []ygot.Annotation                                                                                            `path:"@custom-tlvs" ygotAnnotation:"true"`
	Id          *string                                                                                                      `path:"id" module:"openconfig-terminal-device"`
	ΛId         []ygot.Annotation                                                                                            `path:"@id" ygotAnnotation:"true"`
	State       *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State      `path:"state" module:"openconfig-terminal-device"`
	ΛState      []ygot.Annotation                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config{}
	return t.Config
}

// GetOrCreateCustomTlvs retrieves the value of the CustomTlvs field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) GetOrCreateCustomTlvs() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs {
	if t.CustomTlvs != nil {
		return t.CustomTlvs
	}
	t.CustomTlvs = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs{}
	return t.CustomTlvs
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetCustomTlvs returns the value of the CustomTlvs struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor. If the receiver or the field CustomTlvs is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) GetCustomTlvs() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs {
	if t != nil && t.CustomTlvs != nil {
		return t.CustomTlvs
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetId retrieves the value of the leaf Id from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.CustomTlvs.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor struct, which is a YANG list entry.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Id == nil {
		return nil, fmt.Errorf("nil value for key Id")
	}

	return map[string]interface{}{
		"id": *t.Id,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs struct {
	ΛMetadata []ygot.Annotation                                                                                                                                                                                                                        `path:"@" ygotAnnotation:"true"`
	Tlv       map[OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv `path:"tlv" module:"openconfig-terminal-device"`
	ΛTlv      []ygot.Annotation                                                                                                                                                                                                                        `path:"@tlv" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) IsYANGGoStruct() {
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key represents the key for list Tlv of element /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key struct {
	Type       int32  `path:"type"`
	Oui        string `path:"oui"`
	OuiSubtype string `path:"oui-subtype"`
}

// IsYANGGoKeyStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key partially implements the
// yang.GoKeyStruct interface. This allows functions that need to
// handle this key struct to identify it as being generated by gogen.
func (OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key) IsYANGGoKeyStruct() {
}

// ΛListKeyMap returns the values of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key key struct.
func (t OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key) ΛListKeyMap() (map[string]interface{}, error) {
	return map[string]interface{}{
		"type":        t.Type,
		"oui":         t.Oui,
		"oui-subtype": t.OuiSubtype,
	}, nil
}

// NewTlv creates a new entry in the Tlv list of the
// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) NewTlv(Type int32, Oui string, OuiSubtype string) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tlv == nil {
		t.Tlv = make(map[OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv)
	}

	key := OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       Type,
		Oui:        Oui,
		OuiSubtype: OuiSubtype,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Tlv[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Tlv", key)
	}

	t.Tlv[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv{
		Type:       &Type,
		Oui:        &Oui,
		OuiSubtype: &OuiSubtype,
	}

	return t.Tlv[key], nil
}

// RenameTlv renames an entry in the list Tlv within
// the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) RenameTlv(oldK, newK OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key) error {
	if _, ok := t.Tlv[newK]; ok {
		return fmt.Errorf("key %v already exists in Tlv", newK)
	}

	e, ok := t.Tlv[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Tlv", oldK)
	}
	e.Type = &newK.Type
	e.Oui = &newK.Oui
	e.OuiSubtype = &newK.OuiSubtype

	t.Tlv[newK] = e
	delete(t.Tlv, oldK)
	return nil
}

// GetOrCreateTlvMap returns the list (map) from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs.
//
// It initializes the field if not already initialized.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) GetOrCreateTlvMap() map[OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv {
	if t.Tlv == nil {
		t.Tlv = make(map[OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv)
	}
	return t.Tlv
}

// GetOrCreateTlv retrieves the value with the specified keys from
// the receiver OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) GetOrCreateTlv(Type int32, Oui string, OuiSubtype string) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv {

	key := OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       Type,
		Oui:        Oui,
		OuiSubtype: OuiSubtype,
	}

	if v, ok := t.Tlv[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewTlv(Type, Oui, OuiSubtype)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateTlv got unexpected error: %v", err))
	}
	return v
}

// GetTlv retrieves the value with the specified key from
// the Tlv map field of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) GetTlv(Type int32, Oui string, OuiSubtype string) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv {

	if t == nil {
		return nil
	}

	key := OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       Type,
		Oui:        Oui,
		OuiSubtype: OuiSubtype,
	}

	if lm, ok := t.Tlv[key]; ok {
		return lm
	}
	return nil
}

// AppendTlv appends the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv struct to the
// list Tlv of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs. If the key value(s) specified in
// the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv already exist in the list, an error is
// returned.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) AppendTlv(v *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) error {
	if v.Type == nil {
		return fmt.Errorf("invalid nil key for Type")
	}

	if v.Oui == nil {
		return fmt.Errorf("invalid nil key for Oui")
	}

	if v.OuiSubtype == nil {
		return fmt.Errorf("invalid nil key for OuiSubtype")
	}

	key := OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key{
		Type:       *v.Type,
		Oui:        *v.Oui,
		OuiSubtype: *v.OuiSubtype,
	}

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Tlv == nil {
		t.Tlv = make(map[OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv)
	}

	if _, ok := t.Tlv[key]; ok {
		return fmt.Errorf("duplicate key for list Tlv %v", key)
	}

	t.Tlv[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Tlv {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs/tlv YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv struct {
	ΛMetadata   []ygot.Annotation                                                                                                       `path:"@" ygotAnnotation:"true"`
	Config      *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config `path:"config" module:"openconfig-terminal-device"`
	ΛConfig     []ygot.Annotation                                                                                                       `path:"@config" ygotAnnotation:"true"`
	Oui         *string                                                                                                                 `path:"oui" module:"openconfig-terminal-device"`
	ΛOui        []ygot.Annotation                                                                                                       `path:"@oui" ygotAnnotation:"true"`
	OuiSubtype  *string                                                                                                                 `path:"oui-subtype" module:"openconfig-terminal-device"`
	ΛOuiSubtype []ygot.Annotation                                                                                                       `path:"@oui-subtype" ygotAnnotation:"true"`
	State       *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State  `path:"state" module:"openconfig-terminal-device"`
	ΛState      []ygot.Annotation                                                                                                       `path:"@state" ygotAnnotation:"true"`
	Type        *int32                                                                                                                  `path:"type" module:"openconfig-terminal-device"`
	ΛType       []ygot.Annotation                                                                                                       `path:"@type" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetOui retrieves the value of the leaf Oui from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Oui is set, it can
// safely use t.GetOui() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Oui == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) GetOui() string {
	if t == nil || t.Oui == nil {
		return ""
	}
	return *t.Oui
}

// GetOuiSubtype retrieves the value of the leaf OuiSubtype from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuiSubtype is set, it can
// safely use t.GetOuiSubtype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuiSubtype == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) GetOuiSubtype() string {
	if t == nil || t.OuiSubtype == nil {
		return ""
	}
	return *t.OuiSubtype
}

// GetType retrieves the value of the leaf Type from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) GetType() int32 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv struct, which is a YANG list entry.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Oui == nil {
		return nil, fmt.Errorf("nil value for key Oui")
	}

	if t.OuiSubtype == nil {
		return nil, fmt.Errorf("nil value for key OuiSubtype")
	}

	if t.Type == nil {
		return nil, fmt.Errorf("nil value for key Type")
	}

	return map[string]interface{}{
		"oui":         *t.Oui,
		"oui-subtype": *t.OuiSubtype,
		"type":        *t.Type,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs/tlv/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) IsYANGGoStruct() {
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs/tlv/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State struct {
	ΛMetadata   []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Oui         *string           `path:"oui" module:"openconfig-terminal-device"`
	ΛOui        []ygot.Annotation `path:"@oui" ygotAnnotation:"true"`
	OuiSubtype  *string           `path:"oui-subtype" module:"openconfig-terminal-device"`
	ΛOuiSubtype []ygot.Annotation `path:"@oui-subtype" ygotAnnotation:"true"`
	Type        *int32            `path:"type" module:"openconfig-terminal-device"`
	ΛType       []ygot.Annotation `path:"@type" ygotAnnotation:"true"`
	Value       Binary            `path:"value" module:"openconfig-terminal-device"`
	ΛValue      []ygot.Annotation `path:"@value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) IsYANGGoStruct() {
}

// GetOui retrieves the value of the leaf Oui from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Oui is set, it can
// safely use t.GetOui() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Oui == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetOui() string {
	if t == nil || t.Oui == nil {
		return ""
	}
	return *t.Oui
}

// GetOuiSubtype retrieves the value of the leaf OuiSubtype from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OuiSubtype is set, it can
// safely use t.GetOuiSubtype() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OuiSubtype == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetOuiSubtype() string {
	if t == nil || t.OuiSubtype == nil {
		return ""
	}
	return *t.OuiSubtype
}

// GetType retrieves the value of the leaf Type from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Type is set, it can
// safely use t.GetType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Type == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetType() int32 {
	if t == nil || t.Type == nil {
		return 0
	}
	return *t.Type
}

// GetValue retrieves the value of the leaf Value from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Value is set, it can
// safely use t.GetValue() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Value == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) GetValue() Binary {
	if t == nil || t.Value == nil {
		return nil
	}
	return t.Value
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State struct {
	ΛMetadata              []ygot.Annotation                   `path:"@" ygotAnnotation:"true"`
	Age                    *uint64                             `path:"age" module:"openconfig-terminal-device"`
	ΛAge                   []ygot.Annotation                   `path:"@age" ygotAnnotation:"true"`
	ChassisId              *string                             `path:"chassis-id" module:"openconfig-terminal-device"`
	ΛChassisId             []ygot.Annotation                   `path:"@chassis-id" ygotAnnotation:"true"`
	ChassisIdType          E_OpenconfigLldpTypes_ChassisIdType `path:"chassis-id-type" module:"openconfig-terminal-device"`
	ΛChassisIdType         []ygot.Annotation                   `path:"@chassis-id-type" ygotAnnotation:"true"`
	Id                     *string                             `path:"id" module:"openconfig-terminal-device"`
	ΛId                    []ygot.Annotation                   `path:"@id" ygotAnnotation:"true"`
	LastUpdate             *int64                              `path:"last-update" module:"openconfig-terminal-device"`
	ΛLastUpdate            []ygot.Annotation                   `path:"@last-update" ygotAnnotation:"true"`
	ManagementAddress      *string                             `path:"management-address" module:"openconfig-terminal-device"`
	ΛManagementAddress     []ygot.Annotation                   `path:"@management-address" ygotAnnotation:"true"`
	ManagementAddressType  *string                             `path:"management-address-type" module:"openconfig-terminal-device"`
	ΛManagementAddressType []ygot.Annotation                   `path:"@management-address-type" ygotAnnotation:"true"`
	PortDescription        *string                             `path:"port-description" module:"openconfig-terminal-device"`
	ΛPortDescription       []ygot.Annotation                   `path:"@port-description" ygotAnnotation:"true"`
	PortId                 *string                             `path:"port-id" module:"openconfig-terminal-device"`
	ΛPortId                []ygot.Annotation                   `path:"@port-id" ygotAnnotation:"true"`
	PortIdType             E_OpenconfigLldpTypes_PortIdType    `path:"port-id-type" module:"openconfig-terminal-device"`
	ΛPortIdType            []ygot.Annotation                   `path:"@port-id-type" ygotAnnotation:"true"`
	SystemDescription      *string                             `path:"system-description" module:"openconfig-terminal-device"`
	ΛSystemDescription     []ygot.Annotation                   `path:"@system-description" ygotAnnotation:"true"`
	SystemName             *string                             `path:"system-name" module:"openconfig-terminal-device"`
	ΛSystemName            []ygot.Annotation                   `path:"@system-name" ygotAnnotation:"true"`
	Ttl                    *uint16                             `path:"ttl" module:"openconfig-terminal-device"`
	ΛTtl                   []ygot.Annotation                   `path:"@ttl" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) IsYANGGoStruct() {
}

// GetAge retrieves the value of the leaf Age from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Age is set, it can
// safely use t.GetAge() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Age == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetAge() uint64 {
	if t == nil || t.Age == nil {
		return 0
	}
	return *t.Age
}

// GetChassisId retrieves the value of the leaf ChassisId from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisId is set, it can
// safely use t.GetChassisId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisId == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetChassisId() string {
	if t == nil || t.ChassisId == nil {
		return ""
	}
	return *t.ChassisId
}

// GetChassisIdType retrieves the value of the leaf ChassisIdType from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ChassisIdType is set, it can
// safely use t.GetChassisIdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ChassisIdType == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetChassisIdType() E_OpenconfigLldpTypes_ChassisIdType {
	if t == nil || t.ChassisIdType == 0 {
		return 0
	}
	return t.ChassisIdType
}

// GetId retrieves the value of the leaf Id from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Id is set, it can
// safely use t.GetId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Id == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetId() string {
	if t == nil || t.Id == nil {
		return ""
	}
	return *t.Id
}

// GetLastUpdate retrieves the value of the leaf LastUpdate from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastUpdate is set, it can
// safely use t.GetLastUpdate() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastUpdate == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetLastUpdate() int64 {
	if t == nil || t.LastUpdate == nil {
		return 0
	}
	return *t.LastUpdate
}

// GetManagementAddress retrieves the value of the leaf ManagementAddress from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ManagementAddress is set, it can
// safely use t.GetManagementAddress() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ManagementAddress == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetManagementAddress() string {
	if t == nil || t.ManagementAddress == nil {
		return ""
	}
	return *t.ManagementAddress
}

// GetManagementAddressType retrieves the value of the leaf ManagementAddressType from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ManagementAddressType is set, it can
// safely use t.GetManagementAddressType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ManagementAddressType == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetManagementAddressType() string {
	if t == nil || t.ManagementAddressType == nil {
		return ""
	}
	return *t.ManagementAddressType
}

// GetPortDescription retrieves the value of the leaf PortDescription from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortDescription is set, it can
// safely use t.GetPortDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortDescription == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetPortDescription() string {
	if t == nil || t.PortDescription == nil {
		return ""
	}
	return *t.PortDescription
}

// GetPortId retrieves the value of the leaf PortId from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortId is set, it can
// safely use t.GetPortId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortId == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetPortId() string {
	if t == nil || t.PortId == nil {
		return ""
	}
	return *t.PortId
}

// GetPortIdType retrieves the value of the leaf PortIdType from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PortIdType is set, it can
// safely use t.GetPortIdType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PortIdType == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetPortIdType() E_OpenconfigLldpTypes_PortIdType {
	if t == nil || t.PortIdType == 0 {
		return 0
	}
	return t.PortIdType
}

// GetSystemDescription retrieves the value of the leaf SystemDescription from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemDescription is set, it can
// safely use t.GetSystemDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemDescription == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetSystemDescription() string {
	if t == nil || t.SystemDescription == nil {
		return ""
	}
	return *t.SystemDescription
}

// GetSystemName retrieves the value of the leaf SystemName from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SystemName is set, it can
// safely use t.GetSystemName() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SystemName == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetSystemName() string {
	if t == nil || t.SystemName == nil {
		return ""
	}
	return *t.SystemName
}

// GetTtl retrieves the value of the leaf Ttl from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Ttl is set, it can
// safely use t.GetTtl() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Ttl == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) GetTtl() uint16 {
	if t == nil || t.Ttl == nil {
		return 0
	}
	return *t.Ttl
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State struct {
	ΛMetadata []ygot.Annotation                                                                             `path:"@" ygotAnnotation:"true"`
	Counters  *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters `path:"counters" module:"openconfig-terminal-device"`
	ΛCounters []ygot.Annotation                                                                             `path:"@counters" ygotAnnotation:"true"`
	Enabled   *bool                                                                                         `path:"enabled" module:"openconfig-terminal-device"`
	ΛEnabled  []ygot.Annotation                                                                             `path:"@enabled" ygotAnnotation:"true"`
	Snooping  *bool                                                                                         `path:"snooping" module:"openconfig-terminal-device"`
	ΛSnooping []ygot.Annotation                                                                             `path:"@snooping" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) IsYANGGoStruct() {
}

// GetOrCreateCounters retrieves the value of the Counters field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) GetOrCreateCounters() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters {
	if t.Counters != nil {
		return t.Counters
	}
	t.Counters = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters{}
	return t.Counters
}

// GetCounters returns the value of the Counters struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State. If the receiver or the field Counters is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) GetCounters() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters {
	if t != nil && t.Counters != nil {
		return t.Counters
	}
	return nil
}

// GetEnabled retrieves the value of the leaf Enabled from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Enabled is set, it can
// safely use t.GetEnabled() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Enabled == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) GetEnabled() bool {
	if t == nil || t.Enabled == nil {
		return false
	}
	return *t.Enabled
}

// GetSnooping retrieves the value of the leaf Snooping from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Snooping is set, it can
// safely use t.GetSnooping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Snooping == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) GetSnooping() bool {
	if t == nil || t.Snooping == nil {
		return false
	}
	return *t.Snooping
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.Enabled == nil {
		var v bool = false
		t.Enabled = &v
	}
	if t.Snooping == nil {
		var v bool = false
		t.Snooping = &v
	}
	t.Counters.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/state/counters YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters struct {
	ΛMetadata      []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	FrameDiscard   *uint64           `path:"frame-discard" module:"openconfig-terminal-device"`
	ΛFrameDiscard  []ygot.Annotation `path:"@frame-discard" ygotAnnotation:"true"`
	FrameErrorIn   *uint64           `path:"frame-error-in" module:"openconfig-terminal-device"`
	ΛFrameErrorIn  []ygot.Annotation `path:"@frame-error-in" ygotAnnotation:"true"`
	FrameErrorOut  *uint64           `path:"frame-error-out" module:"openconfig-terminal-device"`
	ΛFrameErrorOut []ygot.Annotation `path:"@frame-error-out" ygotAnnotation:"true"`
	FrameIn        *uint64           `path:"frame-in" module:"openconfig-terminal-device"`
	ΛFrameIn       []ygot.Annotation `path:"@frame-in" ygotAnnotation:"true"`
	FrameOut       *uint64           `path:"frame-out" module:"openconfig-terminal-device"`
	ΛFrameOut      []ygot.Annotation `path:"@frame-out" ygotAnnotation:"true"`
	LastClear      *string           `path:"last-clear" module:"openconfig-terminal-device"`
	ΛLastClear     []ygot.Annotation `path:"@last-clear" ygotAnnotation:"true"`
	TlvDiscard     *uint64           `path:"tlv-discard" module:"openconfig-terminal-device"`
	ΛTlvDiscard    []ygot.Annotation `path:"@tlv-discard" ygotAnnotation:"true"`
	TlvUnknown     *uint64           `path:"tlv-unknown" module:"openconfig-terminal-device"`
	ΛTlvUnknown    []ygot.Annotation `path:"@tlv-unknown" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) IsYANGGoStruct() {
}

// GetFrameDiscard retrieves the value of the leaf FrameDiscard from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameDiscard is set, it can
// safely use t.GetFrameDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameDiscard == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetFrameDiscard() uint64 {
	if t == nil || t.FrameDiscard == nil {
		return 0
	}
	return *t.FrameDiscard
}

// GetFrameErrorIn retrieves the value of the leaf FrameErrorIn from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameErrorIn is set, it can
// safely use t.GetFrameErrorIn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameErrorIn == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetFrameErrorIn() uint64 {
	if t == nil || t.FrameErrorIn == nil {
		return 0
	}
	return *t.FrameErrorIn
}

// GetFrameErrorOut retrieves the value of the leaf FrameErrorOut from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameErrorOut is set, it can
// safely use t.GetFrameErrorOut() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameErrorOut == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetFrameErrorOut() uint64 {
	if t == nil || t.FrameErrorOut == nil {
		return 0
	}
	return *t.FrameErrorOut
}

// GetFrameIn retrieves the value of the leaf FrameIn from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameIn is set, it can
// safely use t.GetFrameIn() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameIn == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetFrameIn() uint64 {
	if t == nil || t.FrameIn == nil {
		return 0
	}
	return *t.FrameIn
}

// GetFrameOut retrieves the value of the leaf FrameOut from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FrameOut is set, it can
// safely use t.GetFrameOut() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FrameOut == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetFrameOut() uint64 {
	if t == nil || t.FrameOut == nil {
		return 0
	}
	return *t.FrameOut
}

// GetLastClear retrieves the value of the leaf LastClear from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LastClear is set, it can
// safely use t.GetLastClear() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LastClear == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetLastClear() string {
	if t == nil || t.LastClear == nil {
		return ""
	}
	return *t.LastClear
}

// GetTlvDiscard retrieves the value of the leaf TlvDiscard from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlvDiscard is set, it can
// safely use t.GetTlvDiscard() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlvDiscard == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetTlvDiscard() uint64 {
	if t == nil || t.TlvDiscard == nil {
		return 0
	}
	return *t.TlvDiscard
}

// GetTlvUnknown retrieves the value of the leaf TlvUnknown from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TlvUnknown is set, it can
// safely use t.GetTlvUnknown() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TlvUnknown == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) GetTlvUnknown() uint64 {
	if t == nil || t.TlvUnknown == nil {
		return 0
	}
	return *t.TlvUnknown
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State struct {
	ΛMetadata                    []ygot.Annotation                                                                           `path:"@" ygotAnnotation:"true"`
	AlsDelay                     *uint32                                                                                     `path:"als-delay" module:"openconfig-terminal-device"`
	ΛAlsDelay                    []ygot.Annotation                                                                           `path:"@als-delay" ygotAnnotation:"true"`
	ClientAls                    E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls `path:"client-als" module:"openconfig-terminal-device"`
	ΛClientAls                   []ygot.Annotation                                                                           `path:"@client-als" ygotAnnotation:"true"`
	Esnr                         *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr        `path:"esnr" module:"openconfig-terminal-device"`
	ΛEsnr                        []ygot.Annotation                                                                           `path:"@esnr" ygotAnnotation:"true"`
	FecUncorrectableBlocks       *uint64                                                                                     `path:"fec-uncorrectable-blocks" module:"openconfig-terminal-device"`
	ΛFecUncorrectableBlocks      []ygot.Annotation                                                                           `path:"@fec-uncorrectable-blocks" ygotAnnotation:"true"`
	In_8021QFrames               *uint64                                                                                     `path:"in-8021q-frames" module:"openconfig-terminal-device"`
	ΛIn_8021QFrames              []ygot.Annotation                                                                           `path:"@in-8021q-frames" ygotAnnotation:"true"`
	InBlockErrors                *uint64                                                                                     `path:"in-block-errors" module:"openconfig-terminal-device"`
	ΛInBlockErrors               []ygot.Annotation                                                                           `path:"@in-block-errors" ygotAnnotation:"true"`
	InCarrierErrors              *uint64                                                                                     `path:"in-carrier-errors" module:"openconfig-terminal-device"`
	ΛInCarrierErrors             []ygot.Annotation                                                                           `path:"@in-carrier-errors" ygotAnnotation:"true"`
	InCrcErrors                  *uint64                                                                                     `path:"in-crc-errors" module:"openconfig-terminal-device"`
	ΛInCrcErrors                 []ygot.Annotation                                                                           `path:"@in-crc-errors" ygotAnnotation:"true"`
	InFragmentFrames             *uint64                                                                                     `path:"in-fragment-frames" module:"openconfig-terminal-device"`
	ΛInFragmentFrames            []ygot.Annotation                                                                           `path:"@in-fragment-frames" ygotAnnotation:"true"`
	InInterruptedTx              *uint64                                                                                     `path:"in-interrupted-tx" module:"openconfig-terminal-device"`
	ΛInInterruptedTx             []ygot.Annotation                                                                           `path:"@in-interrupted-tx" ygotAnnotation:"true"`
	InJabberFrames               *uint64                                                                                     `path:"in-jabber-frames" module:"openconfig-terminal-device"`
	ΛInJabberFrames              []ygot.Annotation                                                                           `path:"@in-jabber-frames" ygotAnnotation:"true"`
	InLateCollision              *uint64                                                                                     `path:"in-late-collision" module:"openconfig-terminal-device"`
	ΛInLateCollision             []ygot.Annotation                                                                           `path:"@in-late-collision" ygotAnnotation:"true"`
	InMacControlFrames           *uint64                                                                                     `path:"in-mac-control-frames" module:"openconfig-terminal-device"`
	ΛInMacControlFrames          []ygot.Annotation                                                                           `path:"@in-mac-control-frames" ygotAnnotation:"true"`
	InMacErrorsRx                *uint64                                                                                     `path:"in-mac-errors-rx" module:"openconfig-terminal-device"`
	ΛInMacErrorsRx               []ygot.Annotation                                                                           `path:"@in-mac-errors-rx" ygotAnnotation:"true"`
	InMacPauseFrames             *uint64                                                                                     `path:"in-mac-pause-frames" module:"openconfig-terminal-device"`
	ΛInMacPauseFrames            []ygot.Annotation                                                                           `path:"@in-mac-pause-frames" ygotAnnotation:"true"`
	InMaxsizeExceeded            *uint64                                                                                     `path:"in-maxsize-exceeded" module:"openconfig-terminal-device"`
	ΛInMaxsizeExceeded           []ygot.Annotation                                                                           `path:"@in-maxsize-exceeded" ygotAnnotation:"true"`
	InOversizeFrames             *uint64                                                                                     `path:"in-oversize-frames" module:"openconfig-terminal-device"`
	ΛInOversizeFrames            []ygot.Annotation                                                                           `path:"@in-oversize-frames" ygotAnnotation:"true"`
	InPcsBipErrors               *uint64                                                                                     `path:"in-pcs-bip-errors" module:"openconfig-terminal-device"`
	ΛInPcsBipErrors              []ygot.Annotation                                                                           `path:"@in-pcs-bip-errors" ygotAnnotation:"true"`
	InPcsErroredSeconds          *uint64                                                                                     `path:"in-pcs-errored-seconds" module:"openconfig-terminal-device"`
	ΛInPcsErroredSeconds         []ygot.Annotation                                                                           `path:"@in-pcs-errored-seconds" ygotAnnotation:"true"`
	InPcsSeverelyErroredSeconds  *uint64                                                                                     `path:"in-pcs-severely-errored-seconds" module:"openconfig-terminal-device"`
	ΛInPcsSeverelyErroredSeconds []ygot.Annotation                                                                           `path:"@in-pcs-severely-errored-seconds" ygotAnnotation:"true"`
	InPcsUnavailableSeconds      *uint64                                                                                     `path:"in-pcs-unavailable-seconds" module:"openconfig-terminal-device"`
	ΛInPcsUnavailableSeconds     []ygot.Annotation                                                                           `path:"@in-pcs-unavailable-seconds" ygotAnnotation:"true"`
	InSingleCollision            *uint64                                                                                     `path:"in-single-collision" module:"openconfig-terminal-device"`
	ΛInSingleCollision           []ygot.Annotation                                                                           `path:"@in-single-collision" ygotAnnotation:"true"`
	InSymbolError                *uint64                                                                                     `path:"in-symbol-error" module:"openconfig-terminal-device"`
	ΛInSymbolError               []ygot.Annotation                                                                           `path:"@in-symbol-error" ygotAnnotation:"true"`
	InUndersizeFrames            *uint64                                                                                     `path:"in-undersize-frames" module:"openconfig-terminal-device"`
	ΛInUndersizeFrames           []ygot.Annotation                                                                           `path:"@in-undersize-frames" ygotAnnotation:"true"`
	Out_8021QFrames              *uint64                                                                                     `path:"out-8021q-frames" module:"openconfig-terminal-device"`
	ΛOut_8021QFrames             []ygot.Annotation                                                                           `path:"@out-8021q-frames" ygotAnnotation:"true"`
	OutBlockErrors               *uint64                                                                                     `path:"out-block-errors" module:"openconfig-terminal-device"`
	ΛOutBlockErrors              []ygot.Annotation                                                                           `path:"@out-block-errors" ygotAnnotation:"true"`
	OutCrcErrors                 *uint64                                                                                     `path:"out-crc-errors" module:"openconfig-terminal-device"`
	ΛOutCrcErrors                []ygot.Annotation                                                                           `path:"@out-crc-errors" ygotAnnotation:"true"`
	OutMacControlFrames          *uint64                                                                                     `path:"out-mac-control-frames" module:"openconfig-terminal-device"`
	ΛOutMacControlFrames         []ygot.Annotation                                                                           `path:"@out-mac-control-frames" ygotAnnotation:"true"`
	OutMacErrorsTx               *uint64                                                                                     `path:"out-mac-errors-tx" module:"openconfig-terminal-device"`
	ΛOutMacErrorsTx              []ygot.Annotation                                                                           `path:"@out-mac-errors-tx" ygotAnnotation:"true"`
	OutMacPauseFrames            *uint64                                                                                     `path:"out-mac-pause-frames" module:"openconfig-terminal-device"`
	ΛOutMacPauseFrames           []ygot.Annotation                                                                           `path:"@out-mac-pause-frames" ygotAnnotation:"true"`
	OutPcsBipErrors              *uint64                                                                                     `path:"out-pcs-bip-errors" module:"openconfig-terminal-device"`
	ΛOutPcsBipErrors             []ygot.Annotation                                                                           `path:"@out-pcs-bip-errors" ygotAnnotation:"true"`
	PostFecBer                   *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer  `path:"post-fec-ber" module:"openconfig-terminal-device"`
	ΛPostFecBer                  []ygot.Annotation                                                                           `path:"@post-fec-ber" ygotAnnotation:"true"`
	PreFecBer                    *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer   `path:"pre-fec-ber" module:"openconfig-terminal-device"`
	ΛPreFecBer                   []ygot.Annotation                                                                           `path:"@pre-fec-ber" ygotAnnotation:"true"`
	QValue                       *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue      `path:"q-value" module:"openconfig-terminal-device"`
	ΛQValue                      []ygot.Annotation                                                                           `path:"@q-value" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) IsYANGGoStruct() {
}

// GetOrCreateEsnr retrieves the value of the Esnr field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOrCreateEsnr() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr {
	if t.Esnr != nil {
		return t.Esnr
	}
	t.Esnr = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr{}
	return t.Esnr
}

// GetOrCreatePostFecBer retrieves the value of the PostFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOrCreatePostFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer {
	if t.PostFecBer != nil {
		return t.PostFecBer
	}
	t.PostFecBer = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer{}
	return t.PostFecBer
}

// GetOrCreatePreFecBer retrieves the value of the PreFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOrCreatePreFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer {
	if t.PreFecBer != nil {
		return t.PreFecBer
	}
	t.PreFecBer = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer{}
	return t.PreFecBer
}

// GetOrCreateQValue retrieves the value of the QValue field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOrCreateQValue() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue {
	if t.QValue != nil {
		return t.QValue
	}
	t.QValue = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue{}
	return t.QValue
}

// GetEsnr returns the value of the Esnr struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State. If the receiver or the field Esnr is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetEsnr() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr {
	if t != nil && t.Esnr != nil {
		return t.Esnr
	}
	return nil
}

// GetPostFecBer returns the value of the PostFecBer struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State. If the receiver or the field PostFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetPostFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer {
	if t != nil && t.PostFecBer != nil {
		return t.PostFecBer
	}
	return nil
}

// GetPreFecBer returns the value of the PreFecBer struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State. If the receiver or the field PreFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetPreFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer {
	if t != nil && t.PreFecBer != nil {
		return t.PreFecBer
	}
	return nil
}

// GetQValue returns the value of the QValue struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State. If the receiver or the field QValue is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetQValue() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue {
	if t != nil && t.QValue != nil {
		return t.QValue
	}
	return nil
}

// GetAlsDelay retrieves the value of the leaf AlsDelay from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AlsDelay is set, it can
// safely use t.GetAlsDelay() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AlsDelay == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetAlsDelay() uint32 {
	if t == nil || t.AlsDelay == nil {
		return 0
	}
	return *t.AlsDelay
}

// GetClientAls retrieves the value of the leaf ClientAls from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ClientAls is set, it can
// safely use t.GetClientAls() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ClientAls == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetClientAls() E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls {
	if t == nil || t.ClientAls == 0 {
		return OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET
	}
	return t.ClientAls
}

// GetFecUncorrectableBlocks retrieves the value of the leaf FecUncorrectableBlocks from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecUncorrectableBlocks is set, it can
// safely use t.GetFecUncorrectableBlocks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecUncorrectableBlocks == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetFecUncorrectableBlocks() uint64 {
	if t == nil || t.FecUncorrectableBlocks == nil {
		return 0
	}
	return *t.FecUncorrectableBlocks
}

// GetIn_8021QFrames retrieves the value of the leaf In_8021QFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if In_8021QFrames is set, it can
// safely use t.GetIn_8021QFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.In_8021QFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetIn_8021QFrames() uint64 {
	if t == nil || t.In_8021QFrames == nil {
		return 0
	}
	return *t.In_8021QFrames
}

// GetInBlockErrors retrieves the value of the leaf InBlockErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InBlockErrors is set, it can
// safely use t.GetInBlockErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InBlockErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInBlockErrors() uint64 {
	if t == nil || t.InBlockErrors == nil {
		return 0
	}
	return *t.InBlockErrors
}

// GetInCarrierErrors retrieves the value of the leaf InCarrierErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InCarrierErrors is set, it can
// safely use t.GetInCarrierErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InCarrierErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInCarrierErrors() uint64 {
	if t == nil || t.InCarrierErrors == nil {
		return 0
	}
	return *t.InCarrierErrors
}

// GetInCrcErrors retrieves the value of the leaf InCrcErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InCrcErrors is set, it can
// safely use t.GetInCrcErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InCrcErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInCrcErrors() uint64 {
	if t == nil || t.InCrcErrors == nil {
		return 0
	}
	return *t.InCrcErrors
}

// GetInFragmentFrames retrieves the value of the leaf InFragmentFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InFragmentFrames is set, it can
// safely use t.GetInFragmentFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InFragmentFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInFragmentFrames() uint64 {
	if t == nil || t.InFragmentFrames == nil {
		return 0
	}
	return *t.InFragmentFrames
}

// GetInInterruptedTx retrieves the value of the leaf InInterruptedTx from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InInterruptedTx is set, it can
// safely use t.GetInInterruptedTx() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InInterruptedTx == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInInterruptedTx() uint64 {
	if t == nil || t.InInterruptedTx == nil {
		return 0
	}
	return *t.InInterruptedTx
}

// GetInJabberFrames retrieves the value of the leaf InJabberFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InJabberFrames is set, it can
// safely use t.GetInJabberFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InJabberFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInJabberFrames() uint64 {
	if t == nil || t.InJabberFrames == nil {
		return 0
	}
	return *t.InJabberFrames
}

// GetInLateCollision retrieves the value of the leaf InLateCollision from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InLateCollision is set, it can
// safely use t.GetInLateCollision() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InLateCollision == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInLateCollision() uint64 {
	if t == nil || t.InLateCollision == nil {
		return 0
	}
	return *t.InLateCollision
}

// GetInMacControlFrames retrieves the value of the leaf InMacControlFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMacControlFrames is set, it can
// safely use t.GetInMacControlFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMacControlFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInMacControlFrames() uint64 {
	if t == nil || t.InMacControlFrames == nil {
		return 0
	}
	return *t.InMacControlFrames
}

// GetInMacErrorsRx retrieves the value of the leaf InMacErrorsRx from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMacErrorsRx is set, it can
// safely use t.GetInMacErrorsRx() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMacErrorsRx == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInMacErrorsRx() uint64 {
	if t == nil || t.InMacErrorsRx == nil {
		return 0
	}
	return *t.InMacErrorsRx
}

// GetInMacPauseFrames retrieves the value of the leaf InMacPauseFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMacPauseFrames is set, it can
// safely use t.GetInMacPauseFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMacPauseFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInMacPauseFrames() uint64 {
	if t == nil || t.InMacPauseFrames == nil {
		return 0
	}
	return *t.InMacPauseFrames
}

// GetInMaxsizeExceeded retrieves the value of the leaf InMaxsizeExceeded from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InMaxsizeExceeded is set, it can
// safely use t.GetInMaxsizeExceeded() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InMaxsizeExceeded == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInMaxsizeExceeded() uint64 {
	if t == nil || t.InMaxsizeExceeded == nil {
		return 0
	}
	return *t.InMaxsizeExceeded
}

// GetInOversizeFrames retrieves the value of the leaf InOversizeFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InOversizeFrames is set, it can
// safely use t.GetInOversizeFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InOversizeFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInOversizeFrames() uint64 {
	if t == nil || t.InOversizeFrames == nil {
		return 0
	}
	return *t.InOversizeFrames
}

// GetInPcsBipErrors retrieves the value of the leaf InPcsBipErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPcsBipErrors is set, it can
// safely use t.GetInPcsBipErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPcsBipErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInPcsBipErrors() uint64 {
	if t == nil || t.InPcsBipErrors == nil {
		return 0
	}
	return *t.InPcsBipErrors
}

// GetInPcsErroredSeconds retrieves the value of the leaf InPcsErroredSeconds from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPcsErroredSeconds is set, it can
// safely use t.GetInPcsErroredSeconds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPcsErroredSeconds == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInPcsErroredSeconds() uint64 {
	if t == nil || t.InPcsErroredSeconds == nil {
		return 0
	}
	return *t.InPcsErroredSeconds
}

// GetInPcsSeverelyErroredSeconds retrieves the value of the leaf InPcsSeverelyErroredSeconds from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPcsSeverelyErroredSeconds is set, it can
// safely use t.GetInPcsSeverelyErroredSeconds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPcsSeverelyErroredSeconds == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInPcsSeverelyErroredSeconds() uint64 {
	if t == nil || t.InPcsSeverelyErroredSeconds == nil {
		return 0
	}
	return *t.InPcsSeverelyErroredSeconds
}

// GetInPcsUnavailableSeconds retrieves the value of the leaf InPcsUnavailableSeconds from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InPcsUnavailableSeconds is set, it can
// safely use t.GetInPcsUnavailableSeconds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InPcsUnavailableSeconds == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInPcsUnavailableSeconds() uint64 {
	if t == nil || t.InPcsUnavailableSeconds == nil {
		return 0
	}
	return *t.InPcsUnavailableSeconds
}

// GetInSingleCollision retrieves the value of the leaf InSingleCollision from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InSingleCollision is set, it can
// safely use t.GetInSingleCollision() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InSingleCollision == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInSingleCollision() uint64 {
	if t == nil || t.InSingleCollision == nil {
		return 0
	}
	return *t.InSingleCollision
}

// GetInSymbolError retrieves the value of the leaf InSymbolError from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InSymbolError is set, it can
// safely use t.GetInSymbolError() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InSymbolError == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInSymbolError() uint64 {
	if t == nil || t.InSymbolError == nil {
		return 0
	}
	return *t.InSymbolError
}

// GetInUndersizeFrames retrieves the value of the leaf InUndersizeFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if InUndersizeFrames is set, it can
// safely use t.GetInUndersizeFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.InUndersizeFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetInUndersizeFrames() uint64 {
	if t == nil || t.InUndersizeFrames == nil {
		return 0
	}
	return *t.InUndersizeFrames
}

// GetOut_8021QFrames retrieves the value of the leaf Out_8021QFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Out_8021QFrames is set, it can
// safely use t.GetOut_8021QFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Out_8021QFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOut_8021QFrames() uint64 {
	if t == nil || t.Out_8021QFrames == nil {
		return 0
	}
	return *t.Out_8021QFrames
}

// GetOutBlockErrors retrieves the value of the leaf OutBlockErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutBlockErrors is set, it can
// safely use t.GetOutBlockErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutBlockErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOutBlockErrors() uint64 {
	if t == nil || t.OutBlockErrors == nil {
		return 0
	}
	return *t.OutBlockErrors
}

// GetOutCrcErrors retrieves the value of the leaf OutCrcErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutCrcErrors is set, it can
// safely use t.GetOutCrcErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutCrcErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOutCrcErrors() uint64 {
	if t == nil || t.OutCrcErrors == nil {
		return 0
	}
	return *t.OutCrcErrors
}

// GetOutMacControlFrames retrieves the value of the leaf OutMacControlFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMacControlFrames is set, it can
// safely use t.GetOutMacControlFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMacControlFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOutMacControlFrames() uint64 {
	if t == nil || t.OutMacControlFrames == nil {
		return 0
	}
	return *t.OutMacControlFrames
}

// GetOutMacErrorsTx retrieves the value of the leaf OutMacErrorsTx from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMacErrorsTx is set, it can
// safely use t.GetOutMacErrorsTx() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMacErrorsTx == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOutMacErrorsTx() uint64 {
	if t == nil || t.OutMacErrorsTx == nil {
		return 0
	}
	return *t.OutMacErrorsTx
}

// GetOutMacPauseFrames retrieves the value of the leaf OutMacPauseFrames from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutMacPauseFrames is set, it can
// safely use t.GetOutMacPauseFrames() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutMacPauseFrames == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOutMacPauseFrames() uint64 {
	if t == nil || t.OutMacPauseFrames == nil {
		return 0
	}
	return *t.OutMacPauseFrames
}

// GetOutPcsBipErrors retrieves the value of the leaf OutPcsBipErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OutPcsBipErrors is set, it can
// safely use t.GetOutPcsBipErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OutPcsBipErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) GetOutPcsBipErrors() uint64 {
	if t == nil || t.OutPcsBipErrors == nil {
		return 0
	}
	return *t.OutPcsBipErrors
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.AlsDelay == nil {
		var v uint32 = 0
		t.AlsDelay = &v
	}
	if t.ClientAls == 0 {
		t.ClientAls = OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET
	}
	t.Esnr.PopulateDefaults()
	t.PostFecBer.PopulateDefaults()
	t.PreFecBer.PopulateDefaults()
	t.QValue.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/state/esnr YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_Esnr) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/state/post-fec-ber YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PostFecBer) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/state/pre-fec-ber YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_PreFecBer) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/state/q-value YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State_QValue) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ingress YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress struct {
	ΛMetadata []ygot.Annotation                                                               `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config `path:"config" module:"openconfig-terminal-device"`
	ΛConfig   []ygot.Annotation                                                               `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State  `path:"state" module:"openconfig-terminal-device"`
	ΛState    []ygot.Annotation                                                               `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ingress/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface        *string           `path:"interface" module:"openconfig-terminal-device"`
	ΛInterface       []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	PhysicalChannel  []uint16          `path:"physical-channel" module:"openconfig-terminal-device"`
	ΛPhysicalChannel []ygot.Annotation `path:"@physical-channel" ygotAnnotation:"true"`
	Transceiver      *string           `path:"transceiver" module:"openconfig-terminal-device"`
	ΛTransceiver     []ygot.Annotation `path:"@transceiver" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetPhysicalChannel retrieves the value of the leaf PhysicalChannel from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PhysicalChannel is set, it can
// safely use t.GetPhysicalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PhysicalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) GetPhysicalChannel() []uint16 {
	if t == nil || t.PhysicalChannel == nil {
		return nil
	}
	return t.PhysicalChannel
}

// GetTransceiver retrieves the value of the leaf Transceiver from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transceiver is set, it can
// safely use t.GetTransceiver() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transceiver == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) GetTransceiver() string {
	if t == nil || t.Transceiver == nil {
		return ""
	}
	return *t.Transceiver
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ingress/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State struct {
	ΛMetadata        []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Interface        *string           `path:"interface" module:"openconfig-terminal-device"`
	ΛInterface       []ygot.Annotation `path:"@interface" ygotAnnotation:"true"`
	PhysicalChannel  []uint16          `path:"physical-channel" module:"openconfig-terminal-device"`
	ΛPhysicalChannel []ygot.Annotation `path:"@physical-channel" ygotAnnotation:"true"`
	Transceiver      *string           `path:"transceiver" module:"openconfig-terminal-device"`
	ΛTransceiver     []ygot.Annotation `path:"@transceiver" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) IsYANGGoStruct() {
}

// GetInterface retrieves the value of the leaf Interface from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interface is set, it can
// safely use t.GetInterface() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interface == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) GetInterface() string {
	if t == nil || t.Interface == nil {
		return ""
	}
	return *t.Interface
}

// GetPhysicalChannel retrieves the value of the leaf PhysicalChannel from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if PhysicalChannel is set, it can
// safely use t.GetPhysicalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.PhysicalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) GetPhysicalChannel() []uint16 {
	if t == nil || t.PhysicalChannel == nil {
		return nil
	}
	return t.PhysicalChannel
}

// GetTransceiver retrieves the value of the leaf Transceiver from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Transceiver is set, it can
// safely use t.GetTransceiver() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Transceiver == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) GetTransceiver() string {
	if t == nil || t.Transceiver == nil {
		return ""
	}
	return *t.Transceiver
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments struct {
	ΛMetadata   []ygot.Annotation                                                                                                `path:"@" ygotAnnotation:"true"`
	Assignment  map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment `path:"assignment" module:"openconfig-terminal-device"`
	ΛAssignment []ygot.Annotation                                                                                                `path:"@assignment" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) IsYANGGoStruct() {
}

// NewAssignment creates a new entry in the Assignment list of the
// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) NewAssignment(Index uint32) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Assignment == nil {
		t.Assignment = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment)
	}

	key := Index

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Assignment[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Assignment", key)
	}

	t.Assignment[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment{
		Index: &Index,
	}

	return t.Assignment[key], nil
}

// RenameAssignment renames an entry in the list Assignment within
// the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) RenameAssignment(oldK, newK uint32) error {
	if _, ok := t.Assignment[newK]; ok {
		return fmt.Errorf("key %v already exists in Assignment", newK)
	}

	e, ok := t.Assignment[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Assignment", oldK)
	}
	e.Index = &newK

	t.Assignment[newK] = e
	delete(t.Assignment, oldK)
	return nil
}

// GetOrCreateAssignmentMap returns the list (map) from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments.
//
// It initializes the field if not already initialized.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) GetOrCreateAssignmentMap() map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment {
	if t.Assignment == nil {
		t.Assignment = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment)
	}
	return t.Assignment
}

// GetOrCreateAssignment retrieves the value with the specified keys from
// the receiver OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) GetOrCreateAssignment(Index uint32) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment {

	key := Index

	if v, ok := t.Assignment[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewAssignment(Index)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateAssignment got unexpected error: %v", err))
	}
	return v
}

// GetAssignment retrieves the value with the specified key from
// the Assignment map field of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) GetAssignment(Index uint32) *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment {

	if t == nil {
		return nil
	}

	key := Index

	if lm, ok := t.Assignment[key]; ok {
		return lm
	}
	return nil
}

// AppendAssignment appends the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment struct to the
// list Assignment of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments. If the key value(s) specified in
// the supplied OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment already exist in the list, an error is
// returned.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) AppendAssignment(v *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) error {
	if v.Index == nil {
		return fmt.Errorf("invalid nil key received for Index")
	}

	key := *v.Index

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Assignment == nil {
		t.Assignment = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment)
	}

	if _, ok := t.Assignment[key]; ok {
		return fmt.Errorf("duplicate key for list Assignment %v", key)
	}

	t.Assignment[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Assignment {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments/assignment YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment struct {
	ΛMetadata []ygot.Annotation                                                                                            `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config `path:"config" module:"openconfig-terminal-device"`
	ΛConfig   []ygot.Annotation                                                                                            `path:"@config" ygotAnnotation:"true"`
	Index     *uint32                                                                                                      `path:"index" module:"openconfig-terminal-device"`
	ΛIndex    []ygot.Annotation                                                                                            `path:"@index" ygotAnnotation:"true"`
	State     *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State  `path:"state" module:"openconfig-terminal-device"`
	ΛState    []ygot.Annotation                                                                                            `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) IsYANGGoStruct() {
}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment struct, which is a YANG list entry.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Index == nil {
		return nil, fmt.Errorf("nil value for key Index")
	}

	return map[string]interface{}{
		"index": *t.Index,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config struct {
	ΛMetadata           []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Allocation          *float64                                                                                                                     `path:"allocation" module:"openconfig-terminal-device"`
	ΛAllocation         []ygot.Annotation                                                                                                            `path:"@allocation" ygotAnnotation:"true"`
	AssignmentType      E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType `path:"assignment-type" module:"openconfig-terminal-device"`
	ΛAssignmentType     []ygot.Annotation                                                                                                            `path:"@assignment-type" ygotAnnotation:"true"`
	Description         *string                                                                                                                      `path:"description" module:"openconfig-terminal-device"`
	ΛDescription        []ygot.Annotation                                                                                                            `path:"@description" ygotAnnotation:"true"`
	Index               *uint32                                                                                                                      `path:"index" module:"openconfig-terminal-device"`
	ΛIndex              []ygot.Annotation                                                                                                            `path:"@index" ygotAnnotation:"true"`
	LogicalChannel      *uint32                                                                                                                      `path:"logical-channel" module:"openconfig-terminal-device"`
	ΛLogicalChannel     []ygot.Annotation                                                                                                            `path:"@logical-channel" ygotAnnotation:"true"`
	Mapping             E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL                                                                            `path:"mapping" module:"openconfig-terminal-device"`
	ΛMapping            []ygot.Annotation                                                                                                            `path:"@mapping" ygotAnnotation:"true"`
	OpticalChannel      *string                                                                                                                      `path:"optical-channel" module:"openconfig-terminal-device"`
	ΛOpticalChannel     []ygot.Annotation                                                                                                            `path:"@optical-channel" ygotAnnotation:"true"`
	TributarySlotIndex  *int32                                                                                                                       `path:"tributary-slot-index" module:"openconfig-terminal-device"`
	ΛTributarySlotIndex []ygot.Annotation                                                                                                            `path:"@tributary-slot-index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) IsYANGGoStruct() {
}

// GetAllocation retrieves the value of the leaf Allocation from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Allocation is set, it can
// safely use t.GetAllocation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Allocation == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetAllocation() float64 {
	if t == nil || t.Allocation == nil {
		return 0.0
	}
	return *t.Allocation
}

// GetAssignmentType retrieves the value of the leaf AssignmentType from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssignmentType is set, it can
// safely use t.GetAssignmentType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssignmentType == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetAssignmentType() E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType {
	if t == nil || t.AssignmentType == 0 {
		return 0
	}
	return t.AssignmentType
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLogicalChannel retrieves the value of the leaf LogicalChannel from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogicalChannel is set, it can
// safely use t.GetLogicalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogicalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetLogicalChannel() uint32 {
	if t == nil || t.LogicalChannel == nil {
		return 0
	}
	return *t.LogicalChannel
}

// GetMapping retrieves the value of the leaf Mapping from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mapping is set, it can
// safely use t.GetMapping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mapping == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetMapping() E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL {
	if t == nil || t.Mapping == 0 {
		return 0
	}
	return t.Mapping
}

// GetOpticalChannel retrieves the value of the leaf OpticalChannel from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OpticalChannel is set, it can
// safely use t.GetOpticalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OpticalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetOpticalChannel() string {
	if t == nil || t.OpticalChannel == nil {
		return ""
	}
	return *t.OpticalChannel
}

// GetTributarySlotIndex retrieves the value of the leaf TributarySlotIndex from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TributarySlotIndex is set, it can
// safely use t.GetTributarySlotIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TributarySlotIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) GetTributarySlotIndex() int32 {
	if t == nil || t.TributarySlotIndex == nil {
		return 0
	}
	return *t.TributarySlotIndex
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State struct {
	ΛMetadata           []ygot.Annotation                                                                                                            `path:"@" ygotAnnotation:"true"`
	Allocation          *float64                                                                                                                     `path:"allocation" module:"openconfig-terminal-device"`
	ΛAllocation         []ygot.Annotation                                                                                                            `path:"@allocation" ygotAnnotation:"true"`
	AssignmentType      E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType `path:"assignment-type" module:"openconfig-terminal-device"`
	ΛAssignmentType     []ygot.Annotation                                                                                                            `path:"@assignment-type" ygotAnnotation:"true"`
	Description         *string                                                                                                                      `path:"description" module:"openconfig-terminal-device"`
	ΛDescription        []ygot.Annotation                                                                                                            `path:"@description" ygotAnnotation:"true"`
	Index               *uint32                                                                                                                      `path:"index" module:"openconfig-terminal-device"`
	ΛIndex              []ygot.Annotation                                                                                                            `path:"@index" ygotAnnotation:"true"`
	LogicalChannel      *uint32                                                                                                                      `path:"logical-channel" module:"openconfig-terminal-device"`
	ΛLogicalChannel     []ygot.Annotation                                                                                                            `path:"@logical-channel" ygotAnnotation:"true"`
	Mapping             E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL                                                                            `path:"mapping" module:"openconfig-terminal-device"`
	ΛMapping            []ygot.Annotation                                                                                                            `path:"@mapping" ygotAnnotation:"true"`
	OpticalChannel      *string                                                                                                                      `path:"optical-channel" module:"openconfig-terminal-device"`
	ΛOpticalChannel     []ygot.Annotation                                                                                                            `path:"@optical-channel" ygotAnnotation:"true"`
	TributarySlotIndex  *int32                                                                                                                       `path:"tributary-slot-index" module:"openconfig-terminal-device"`
	ΛTributarySlotIndex []ygot.Annotation                                                                                                            `path:"@tributary-slot-index" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) IsYANGGoStruct() {
}

// GetAllocation retrieves the value of the leaf Allocation from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Allocation is set, it can
// safely use t.GetAllocation() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Allocation == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetAllocation() float64 {
	if t == nil || t.Allocation == nil {
		return 0.0
	}
	return *t.Allocation
}

// GetAssignmentType retrieves the value of the leaf AssignmentType from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AssignmentType is set, it can
// safely use t.GetAssignmentType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AssignmentType == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetAssignmentType() E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType {
	if t == nil || t.AssignmentType == 0 {
		return 0
	}
	return t.AssignmentType
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLogicalChannel retrieves the value of the leaf LogicalChannel from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogicalChannel is set, it can
// safely use t.GetLogicalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogicalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetLogicalChannel() uint32 {
	if t == nil || t.LogicalChannel == nil {
		return 0
	}
	return *t.LogicalChannel
}

// GetMapping retrieves the value of the leaf Mapping from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Mapping is set, it can
// safely use t.GetMapping() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Mapping == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetMapping() E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL {
	if t == nil || t.Mapping == 0 {
		return 0
	}
	return t.Mapping
}

// GetOpticalChannel retrieves the value of the leaf OpticalChannel from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if OpticalChannel is set, it can
// safely use t.GetOpticalChannel() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.OpticalChannel == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetOpticalChannel() string {
	if t == nil || t.OpticalChannel == nil {
		return ""
	}
	return *t.OpticalChannel
}

// GetTributarySlotIndex retrieves the value of the leaf TributarySlotIndex from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TributarySlotIndex is set, it can
// safely use t.GetTributarySlotIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TributarySlotIndex == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) GetTributarySlotIndex() int32 {
	if t == nil || t.TributarySlotIndex == nil {
		return 0
	}
	return *t.TributarySlotIndex
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn struct {
	ΛMetadata []ygot.Annotation                                                           `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config `path:"config" module:"openconfig-terminal-device"`
	ΛConfig   []ygot.Annotation                                                           `path:"@config" ygotAnnotation:"true"`
	State     *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State  `path:"state" module:"openconfig-terminal-device"`
	ΛState    []ygot.Annotation                                                           `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) GetState() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config struct {
	ΛMetadata                 []ygot.Annotation                                     `path:"@" ygotAnnotation:"true"`
	TributarySlotGranularity  E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY `path:"tributary-slot-granularity" module:"openconfig-terminal-device"`
	ΛTributarySlotGranularity []ygot.Annotation                                     `path:"@tributary-slot-granularity" ygotAnnotation:"true"`
	TtiMsgAuto                *bool                                                 `path:"tti-msg-auto" module:"openconfig-terminal-device"`
	ΛTtiMsgAuto               []ygot.Annotation                                     `path:"@tti-msg-auto" ygotAnnotation:"true"`
	TtiMsgExpected            *string                                               `path:"tti-msg-expected" module:"openconfig-terminal-device"`
	ΛTtiMsgExpected           []ygot.Annotation                                     `path:"@tti-msg-expected" ygotAnnotation:"true"`
	TtiMsgTransmit            *string                                               `path:"tti-msg-transmit" module:"openconfig-terminal-device"`
	ΛTtiMsgTransmit           []ygot.Annotation                                     `path:"@tti-msg-transmit" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) IsYANGGoStruct() {}

// GetTributarySlotGranularity retrieves the value of the leaf TributarySlotGranularity from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TributarySlotGranularity is set, it can
// safely use t.GetTributarySlotGranularity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TributarySlotGranularity == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) GetTributarySlotGranularity() E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY {
	if t == nil || t.TributarySlotGranularity == 0 {
		return 0
	}
	return t.TributarySlotGranularity
}

// GetTtiMsgAuto retrieves the value of the leaf TtiMsgAuto from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtiMsgAuto is set, it can
// safely use t.GetTtiMsgAuto() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtiMsgAuto == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) GetTtiMsgAuto() bool {
	if t == nil || t.TtiMsgAuto == nil {
		return false
	}
	return *t.TtiMsgAuto
}

// GetTtiMsgExpected retrieves the value of the leaf TtiMsgExpected from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtiMsgExpected is set, it can
// safely use t.GetTtiMsgExpected() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtiMsgExpected == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) GetTtiMsgExpected() string {
	if t == nil || t.TtiMsgExpected == nil {
		return ""
	}
	return *t.TtiMsgExpected
}

// GetTtiMsgTransmit retrieves the value of the leaf TtiMsgTransmit from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtiMsgTransmit is set, it can
// safely use t.GetTtiMsgTransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtiMsgTransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) GetTtiMsgTransmit() string {
	if t == nil || t.TtiMsgTransmit == nil {
		return ""
	}
	return *t.TtiMsgTransmit
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State struct {
	ΛMetadata                 []ygot.Annotation                                                                     `path:"@" ygotAnnotation:"true"`
	BackgroundBlockErrors     *uint64                                                                               `path:"background-block-errors" module:"openconfig-terminal-device"`
	ΛBackgroundBlockErrors    []ygot.Annotation                                                                     `path:"@background-block-errors" ygotAnnotation:"true"`
	CodeViolations            *uint64                                                                               `path:"code-violations" module:"openconfig-terminal-device"`
	ΛCodeViolations           []ygot.Annotation                                                                     `path:"@code-violations" ygotAnnotation:"true"`
	ErroredBlocks             *uint64                                                                               `path:"errored-blocks" module:"openconfig-terminal-device"`
	ΛErroredBlocks            []ygot.Annotation                                                                     `path:"@errored-blocks" ygotAnnotation:"true"`
	ErroredSeconds            *uint64                                                                               `path:"errored-seconds" module:"openconfig-terminal-device"`
	ΛErroredSeconds           []ygot.Annotation                                                                     `path:"@errored-seconds" ygotAnnotation:"true"`
	Esnr                      *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr       `path:"esnr" module:"openconfig-terminal-device"`
	ΛEsnr                     []ygot.Annotation                                                                     `path:"@esnr" ygotAnnotation:"true"`
	FecCorrectedBits          *uint64                                                                               `path:"fec-corrected-bits" module:"openconfig-terminal-device"`
	ΛFecCorrectedBits         []ygot.Annotation                                                                     `path:"@fec-corrected-bits" ygotAnnotation:"true"`
	FecCorrectedBytes         *uint64                                                                               `path:"fec-corrected-bytes" module:"openconfig-terminal-device"`
	ΛFecCorrectedBytes        []ygot.Annotation                                                                     `path:"@fec-corrected-bytes" ygotAnnotation:"true"`
	FecUncorrectableBlocks    *uint64                                                                               `path:"fec-uncorrectable-blocks" module:"openconfig-terminal-device"`
	ΛFecUncorrectableBlocks   []ygot.Annotation                                                                     `path:"@fec-uncorrectable-blocks" ygotAnnotation:"true"`
	FecUncorrectableWords     *uint64                                                                               `path:"fec-uncorrectable-words" module:"openconfig-terminal-device"`
	ΛFecUncorrectableWords    []ygot.Annotation                                                                     `path:"@fec-uncorrectable-words" ygotAnnotation:"true"`
	PostFecBer                *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer `path:"post-fec-ber" module:"openconfig-terminal-device"`
	ΛPostFecBer               []ygot.Annotation                                                                     `path:"@post-fec-ber" ygotAnnotation:"true"`
	PreFecBer                 *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer  `path:"pre-fec-ber" module:"openconfig-terminal-device"`
	ΛPreFecBer                []ygot.Annotation                                                                     `path:"@pre-fec-ber" ygotAnnotation:"true"`
	QValue                    *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue     `path:"q-value" module:"openconfig-terminal-device"`
	ΛQValue                   []ygot.Annotation                                                                     `path:"@q-value" ygotAnnotation:"true"`
	RdiMsg                    *string                                                                               `path:"rdi-msg" module:"openconfig-terminal-device"`
	ΛRdiMsg                   []ygot.Annotation                                                                     `path:"@rdi-msg" ygotAnnotation:"true"`
	SeverelyErroredSeconds    *uint64                                                                               `path:"severely-errored-seconds" module:"openconfig-terminal-device"`
	ΛSeverelyErroredSeconds   []ygot.Annotation                                                                     `path:"@severely-errored-seconds" ygotAnnotation:"true"`
	TributarySlotGranularity  E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY                                 `path:"tributary-slot-granularity" module:"openconfig-terminal-device"`
	ΛTributarySlotGranularity []ygot.Annotation                                                                     `path:"@tributary-slot-granularity" ygotAnnotation:"true"`
	TtiMsgAuto                *bool                                                                                 `path:"tti-msg-auto" module:"openconfig-terminal-device"`
	ΛTtiMsgAuto               []ygot.Annotation                                                                     `path:"@tti-msg-auto" ygotAnnotation:"true"`
	TtiMsgExpected            *string                                                                               `path:"tti-msg-expected" module:"openconfig-terminal-device"`
	ΛTtiMsgExpected           []ygot.Annotation                                                                     `path:"@tti-msg-expected" ygotAnnotation:"true"`
	TtiMsgRecv                *string                                                                               `path:"tti-msg-recv" module:"openconfig-terminal-device"`
	ΛTtiMsgRecv               []ygot.Annotation                                                                     `path:"@tti-msg-recv" ygotAnnotation:"true"`
	TtiMsgTransmit            *string                                                                               `path:"tti-msg-transmit" module:"openconfig-terminal-device"`
	ΛTtiMsgTransmit           []ygot.Annotation                                                                     `path:"@tti-msg-transmit" ygotAnnotation:"true"`
	UnavailableSeconds        *uint64                                                                               `path:"unavailable-seconds" module:"openconfig-terminal-device"`
	ΛUnavailableSeconds       []ygot.Annotation                                                                     `path:"@unavailable-seconds" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) IsYANGGoStruct() {}

// GetOrCreateEsnr retrieves the value of the Esnr field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetOrCreateEsnr() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr {
	if t.Esnr != nil {
		return t.Esnr
	}
	t.Esnr = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr{}
	return t.Esnr
}

// GetOrCreatePostFecBer retrieves the value of the PostFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetOrCreatePostFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer {
	if t.PostFecBer != nil {
		return t.PostFecBer
	}
	t.PostFecBer = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer{}
	return t.PostFecBer
}

// GetOrCreatePreFecBer retrieves the value of the PreFecBer field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetOrCreatePreFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer {
	if t.PreFecBer != nil {
		return t.PreFecBer
	}
	t.PreFecBer = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer{}
	return t.PreFecBer
}

// GetOrCreateQValue retrieves the value of the QValue field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetOrCreateQValue() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue {
	if t.QValue != nil {
		return t.QValue
	}
	t.QValue = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue{}
	return t.QValue
}

// GetEsnr returns the value of the Esnr struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State. If the receiver or the field Esnr is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetEsnr() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr {
	if t != nil && t.Esnr != nil {
		return t.Esnr
	}
	return nil
}

// GetPostFecBer returns the value of the PostFecBer struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State. If the receiver or the field PostFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetPostFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer {
	if t != nil && t.PostFecBer != nil {
		return t.PostFecBer
	}
	return nil
}

// GetPreFecBer returns the value of the PreFecBer struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State. If the receiver or the field PreFecBer is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetPreFecBer() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer {
	if t != nil && t.PreFecBer != nil {
		return t.PreFecBer
	}
	return nil
}

// GetQValue returns the value of the QValue struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State. If the receiver or the field QValue is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetQValue() *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue {
	if t != nil && t.QValue != nil {
		return t.QValue
	}
	return nil
}

// GetBackgroundBlockErrors retrieves the value of the leaf BackgroundBlockErrors from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if BackgroundBlockErrors is set, it can
// safely use t.GetBackgroundBlockErrors() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.BackgroundBlockErrors == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetBackgroundBlockErrors() uint64 {
	if t == nil || t.BackgroundBlockErrors == nil {
		return 0
	}
	return *t.BackgroundBlockErrors
}

// GetCodeViolations retrieves the value of the leaf CodeViolations from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if CodeViolations is set, it can
// safely use t.GetCodeViolations() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.CodeViolations == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetCodeViolations() uint64 {
	if t == nil || t.CodeViolations == nil {
		return 0
	}
	return *t.CodeViolations
}

// GetErroredBlocks retrieves the value of the leaf ErroredBlocks from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ErroredBlocks is set, it can
// safely use t.GetErroredBlocks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ErroredBlocks == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetErroredBlocks() uint64 {
	if t == nil || t.ErroredBlocks == nil {
		return 0
	}
	return *t.ErroredBlocks
}

// GetErroredSeconds retrieves the value of the leaf ErroredSeconds from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ErroredSeconds is set, it can
// safely use t.GetErroredSeconds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ErroredSeconds == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetErroredSeconds() uint64 {
	if t == nil || t.ErroredSeconds == nil {
		return 0
	}
	return *t.ErroredSeconds
}

// GetFecCorrectedBits retrieves the value of the leaf FecCorrectedBits from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecCorrectedBits is set, it can
// safely use t.GetFecCorrectedBits() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecCorrectedBits == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetFecCorrectedBits() uint64 {
	if t == nil || t.FecCorrectedBits == nil {
		return 0
	}
	return *t.FecCorrectedBits
}

// GetFecCorrectedBytes retrieves the value of the leaf FecCorrectedBytes from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecCorrectedBytes is set, it can
// safely use t.GetFecCorrectedBytes() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecCorrectedBytes == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetFecCorrectedBytes() uint64 {
	if t == nil || t.FecCorrectedBytes == nil {
		return 0
	}
	return *t.FecCorrectedBytes
}

// GetFecUncorrectableBlocks retrieves the value of the leaf FecUncorrectableBlocks from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecUncorrectableBlocks is set, it can
// safely use t.GetFecUncorrectableBlocks() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecUncorrectableBlocks == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetFecUncorrectableBlocks() uint64 {
	if t == nil || t.FecUncorrectableBlocks == nil {
		return 0
	}
	return *t.FecUncorrectableBlocks
}

// GetFecUncorrectableWords retrieves the value of the leaf FecUncorrectableWords from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if FecUncorrectableWords is set, it can
// safely use t.GetFecUncorrectableWords() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.FecUncorrectableWords == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetFecUncorrectableWords() uint64 {
	if t == nil || t.FecUncorrectableWords == nil {
		return 0
	}
	return *t.FecUncorrectableWords
}

// GetRdiMsg retrieves the value of the leaf RdiMsg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RdiMsg is set, it can
// safely use t.GetRdiMsg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RdiMsg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetRdiMsg() string {
	if t == nil || t.RdiMsg == nil {
		return ""
	}
	return *t.RdiMsg
}

// GetSeverelyErroredSeconds retrieves the value of the leaf SeverelyErroredSeconds from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if SeverelyErroredSeconds is set, it can
// safely use t.GetSeverelyErroredSeconds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.SeverelyErroredSeconds == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetSeverelyErroredSeconds() uint64 {
	if t == nil || t.SeverelyErroredSeconds == nil {
		return 0
	}
	return *t.SeverelyErroredSeconds
}

// GetTributarySlotGranularity retrieves the value of the leaf TributarySlotGranularity from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TributarySlotGranularity is set, it can
// safely use t.GetTributarySlotGranularity() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TributarySlotGranularity == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetTributarySlotGranularity() E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY {
	if t == nil || t.TributarySlotGranularity == 0 {
		return 0
	}
	return t.TributarySlotGranularity
}

// GetTtiMsgAuto retrieves the value of the leaf TtiMsgAuto from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtiMsgAuto is set, it can
// safely use t.GetTtiMsgAuto() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtiMsgAuto == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetTtiMsgAuto() bool {
	if t == nil || t.TtiMsgAuto == nil {
		return false
	}
	return *t.TtiMsgAuto
}

// GetTtiMsgExpected retrieves the value of the leaf TtiMsgExpected from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtiMsgExpected is set, it can
// safely use t.GetTtiMsgExpected() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtiMsgExpected == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetTtiMsgExpected() string {
	if t == nil || t.TtiMsgExpected == nil {
		return ""
	}
	return *t.TtiMsgExpected
}

// GetTtiMsgRecv retrieves the value of the leaf TtiMsgRecv from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtiMsgRecv is set, it can
// safely use t.GetTtiMsgRecv() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtiMsgRecv == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetTtiMsgRecv() string {
	if t == nil || t.TtiMsgRecv == nil {
		return ""
	}
	return *t.TtiMsgRecv
}

// GetTtiMsgTransmit retrieves the value of the leaf TtiMsgTransmit from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TtiMsgTransmit is set, it can
// safely use t.GetTtiMsgTransmit() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TtiMsgTransmit == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetTtiMsgTransmit() string {
	if t == nil || t.TtiMsgTransmit == nil {
		return ""
	}
	return *t.TtiMsgTransmit
}

// GetUnavailableSeconds retrieves the value of the leaf UnavailableSeconds from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if UnavailableSeconds is set, it can
// safely use t.GetUnavailableSeconds() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.UnavailableSeconds == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) GetUnavailableSeconds() uint64 {
	if t == nil || t.UnavailableSeconds == nil {
		return 0
	}
	return *t.UnavailableSeconds
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Esnr.PopulateDefaults()
	t.PostFecBer.PopulateDefaults()
	t.PreFecBer.PopulateDefaults()
	t.QValue.PopulateDefaults()
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/esnr YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/post-fec-ber YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/pre-fec-ber YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/q-value YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Avg       *float64          `path:"avg" module:"openconfig-terminal-device"`
	ΛAvg      []ygot.Annotation `path:"@avg" ygotAnnotation:"true"`
	Instant   *float64          `path:"instant" module:"openconfig-terminal-device"`
	ΛInstant  []ygot.Annotation `path:"@instant" ygotAnnotation:"true"`
	Interval  *uint64           `path:"interval" module:"openconfig-terminal-device"`
	ΛInterval []ygot.Annotation `path:"@interval" ygotAnnotation:"true"`
	Max       *float64          `path:"max" module:"openconfig-terminal-device"`
	ΛMax      []ygot.Annotation `path:"@max" ygotAnnotation:"true"`
	MaxTime   *uint64           `path:"max-time" module:"openconfig-terminal-device"`
	ΛMaxTime  []ygot.Annotation `path:"@max-time" ygotAnnotation:"true"`
	Min       *float64          `path:"min" module:"openconfig-terminal-device"`
	ΛMin      []ygot.Annotation `path:"@min" ygotAnnotation:"true"`
	MinTime   *uint64           `path:"min-time" module:"openconfig-terminal-device"`
	ΛMinTime  []ygot.Annotation `path:"@min-time" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) IsYANGGoStruct() {
}

// GetAvg retrieves the value of the leaf Avg from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Avg is set, it can
// safely use t.GetAvg() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Avg == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) GetAvg() float64 {
	if t == nil || t.Avg == nil {
		return 0.0
	}
	return *t.Avg
}

// GetInstant retrieves the value of the leaf Instant from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Instant is set, it can
// safely use t.GetInstant() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Instant == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) GetInstant() float64 {
	if t == nil || t.Instant == nil {
		return 0.0
	}
	return *t.Instant
}

// GetInterval retrieves the value of the leaf Interval from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Interval is set, it can
// safely use t.GetInterval() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Interval == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) GetInterval() uint64 {
	if t == nil || t.Interval == nil {
		return 0
	}
	return *t.Interval
}

// GetMax retrieves the value of the leaf Max from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Max is set, it can
// safely use t.GetMax() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Max == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) GetMax() float64 {
	if t == nil || t.Max == nil {
		return 0.0
	}
	return *t.Max
}

// GetMaxTime retrieves the value of the leaf MaxTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MaxTime is set, it can
// safely use t.GetMaxTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MaxTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) GetMaxTime() uint64 {
	if t == nil || t.MaxTime == nil {
		return 0
	}
	return *t.MaxTime
}

// GetMin retrieves the value of the leaf Min from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Min is set, it can
// safely use t.GetMin() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Min == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) GetMin() float64 {
	if t == nil || t.Min == nil {
		return 0.0
	}
	return *t.Min
}

// GetMinTime retrieves the value of the leaf MinTime from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if MinTime is set, it can
// safely use t.GetMinTime() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.MinTime == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) GetMinTime() uint64 {
	if t == nil || t.MinTime == nil {
		return 0
	}
	return *t.MinTime
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State struct {
	ΛMetadata           []ygot.Annotation                                                                 `path:"@" ygotAnnotation:"true"`
	AdminState          E_OpenconfigTransportTypes_AdminStateType                                         `path:"admin-state" module:"openconfig-terminal-device"`
	ΛAdminState         []ygot.Annotation                                                                 `path:"@admin-state" ygotAnnotation:"true"`
	ClientMappingMode   E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE                                    `path:"client-mapping-mode" module:"openconfig-terminal-device"`
	ΛClientMappingMode  []ygot.Annotation                                                                 `path:"@client-mapping-mode" ygotAnnotation:"true"`
	Description         *string                                                                           `path:"description" module:"openconfig-terminal-device"`
	ΛDescription        []ygot.Annotation                                                                 `path:"@description" ygotAnnotation:"true"`
	Index               *uint32                                                                           `path:"index" module:"openconfig-terminal-device"`
	ΛIndex              []ygot.Annotation                                                                 `path:"@index" ygotAnnotation:"true"`
	LinkState           E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState `path:"link-state" module:"openconfig-terminal-device"`
	ΛLinkState          []ygot.Annotation                                                                 `path:"@link-state" ygotAnnotation:"true"`
	LogicalChannelType  E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE                          `path:"logical-channel-type" module:"openconfig-terminal-device"`
	ΛLogicalChannelType []ygot.Annotation                                                                 `path:"@logical-channel-type" ygotAnnotation:"true"`
	LoopbackMode        E_OpenconfigTransportTypes_LoopbackModeType                                       `path:"loopback-mode" module:"openconfig-terminal-device"`
	ΛLoopbackMode       []ygot.Annotation                                                                 `path:"@loopback-mode" ygotAnnotation:"true"`
	RateClass           E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE                              `path:"rate-class" module:"openconfig-terminal-device"`
	ΛRateClass          []ygot.Annotation                                                                 `path:"@rate-class" ygotAnnotation:"true"`
	TestSignal          *bool                                                                             `path:"test-signal" module:"openconfig-terminal-device"`
	ΛTestSignal         []ygot.Annotation                                                                 `path:"@test-signal" ygotAnnotation:"true"`
	TribProtocol        E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE                                `path:"trib-protocol" module:"openconfig-terminal-device"`
	ΛTribProtocol       []ygot.Annotation                                                                 `path:"@trib-protocol" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) IsYANGGoStruct() {}

// GetAdminState retrieves the value of the leaf AdminState from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if AdminState is set, it can
// safely use t.GetAdminState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.AdminState == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetAdminState() E_OpenconfigTransportTypes_AdminStateType {
	if t == nil || t.AdminState == 0 {
		return 0
	}
	return t.AdminState
}

// GetClientMappingMode retrieves the value of the leaf ClientMappingMode from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ClientMappingMode is set, it can
// safely use t.GetClientMappingMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ClientMappingMode == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetClientMappingMode() E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE {
	if t == nil || t.ClientMappingMode == 0 {
		return 0
	}
	return t.ClientMappingMode
}

// GetDescription retrieves the value of the leaf Description from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetIndex retrieves the value of the leaf Index from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Index is set, it can
// safely use t.GetIndex() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Index == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetIndex() uint32 {
	if t == nil || t.Index == nil {
		return 0
	}
	return *t.Index
}

// GetLinkState retrieves the value of the leaf LinkState from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LinkState is set, it can
// safely use t.GetLinkState() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LinkState == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetLinkState() E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState {
	if t == nil || t.LinkState == 0 {
		return 0
	}
	return t.LinkState
}

// GetLogicalChannelType retrieves the value of the leaf LogicalChannelType from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LogicalChannelType is set, it can
// safely use t.GetLogicalChannelType() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LogicalChannelType == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetLogicalChannelType() E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE {
	if t == nil || t.LogicalChannelType == 0 {
		return 0
	}
	return t.LogicalChannelType
}

// GetLoopbackMode retrieves the value of the leaf LoopbackMode from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if LoopbackMode is set, it can
// safely use t.GetLoopbackMode() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.LoopbackMode == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetLoopbackMode() E_OpenconfigTransportTypes_LoopbackModeType {
	if t == nil || t.LoopbackMode == 0 {
		return OpenconfigTransportTypes_LoopbackModeType_NONE
	}
	return t.LoopbackMode
}

// GetRateClass retrieves the value of the leaf RateClass from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if RateClass is set, it can
// safely use t.GetRateClass() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.RateClass == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetRateClass() E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE {
	if t == nil || t.RateClass == 0 {
		return 0
	}
	return t.RateClass
}

// GetTestSignal retrieves the value of the leaf TestSignal from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TestSignal is set, it can
// safely use t.GetTestSignal() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TestSignal == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetTestSignal() bool {
	if t == nil || t.TestSignal == nil {
		return false
	}
	return *t.TestSignal
}

// GetTribProtocol retrieves the value of the leaf TribProtocol from the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if TribProtocol is set, it can
// safely use t.GetTribProtocol() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.TribProtocol == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) GetTribProtocol() E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE {
	if t == nil || t.TribProtocol == 0 {
		return 0
	}
	return t.TribProtocol
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	if t.LoopbackMode == 0 {
		t.LoopbackMode = OpenconfigTransportTypes_LoopbackModeType_NONE
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State.
func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_OperationalModes represents the /openconfig-terminal-device/terminal-device/operational-modes YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_OperationalModes struct {
	ΛMetadata []ygot.Annotation                                                         `path:"@" ygotAnnotation:"true"`
	Mode      map[uint16]*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode `path:"mode" module:"openconfig-terminal-device"`
	ΛMode     []ygot.Annotation                                                         `path:"@mode" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes) IsYANGGoStruct() {}

// NewMode creates a new entry in the Mode list of the
// OpenconfigTerminalDevice_TerminalDevice_OperationalModes struct. The keys of the list are populated from the input
// arguments.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) NewMode(ModeId uint16) (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode, error) {

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Mode == nil {
		t.Mode = make(map[uint16]*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode)
	}

	key := ModeId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Mode[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Mode", key)
	}

	t.Mode[key] = &OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode{
		ModeId: &ModeId,
	}

	return t.Mode[key], nil
}

// RenameMode renames an entry in the list Mode within
// the OpenconfigTerminalDevice_TerminalDevice_OperationalModes struct. The entry with key oldK is renamed to newK updating
// the key within the value.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) RenameMode(oldK, newK uint16) error {
	if _, ok := t.Mode[newK]; ok {
		return fmt.Errorf("key %v already exists in Mode", newK)
	}

	e, ok := t.Mode[oldK]
	if !ok {
		return fmt.Errorf("key %v not found in Mode", oldK)
	}
	e.ModeId = &newK

	t.Mode[newK] = e
	delete(t.Mode, oldK)
	return nil
}

// GetOrCreateModeMap returns the list (map) from OpenconfigTerminalDevice_TerminalDevice_OperationalModes.
//
// It initializes the field if not already initialized.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) GetOrCreateModeMap() map[uint16]*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode {
	if t.Mode == nil {
		t.Mode = make(map[uint16]*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode)
	}
	return t.Mode
}

// GetOrCreateMode retrieves the value with the specified keys from
// the receiver OpenconfigTerminalDevice_TerminalDevice_OperationalModes. If the entry does not exist, then it is created.
// It returns the existing or new list member.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) GetOrCreateMode(ModeId uint16) *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode {

	key := ModeId

	if v, ok := t.Mode[key]; ok {
		return v
	}
	// Panic if we receive an error, since we should have retrieved an existing
	// list member. This allows chaining of GetOrCreate methods.
	v, err := t.NewMode(ModeId)
	if err != nil {
		panic(fmt.Sprintf("GetOrCreateMode got unexpected error: %v", err))
	}
	return v
}

// GetMode retrieves the value with the specified key from
// the Mode map field of OpenconfigTerminalDevice_TerminalDevice_OperationalModes. If the receiver is nil, or
// the specified key is not present in the list, nil is returned such that Get*
// methods may be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) GetMode(ModeId uint16) *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode {

	if t == nil {
		return nil
	}

	key := ModeId

	if lm, ok := t.Mode[key]; ok {
		return lm
	}
	return nil
}

// AppendMode appends the supplied OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode struct to the
// list Mode of OpenconfigTerminalDevice_TerminalDevice_OperationalModes. If the key value(s) specified in
// the supplied OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode already exist in the list, an error is
// returned.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) AppendMode(v *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) error {
	if v.ModeId == nil {
		return fmt.Errorf("invalid nil key received for ModeId")
	}

	key := *v.ModeId

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Mode == nil {
		t.Mode = make(map[uint16]*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode)
	}

	if _, ok := t.Mode[key]; ok {
		return fmt.Errorf("duplicate key for list Mode %v", key)
	}

	t.Mode[key] = v
	return nil
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_OperationalModes
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	for _, e := range t.Mode {
		e.PopulateDefaults()
	}
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_OperationalModes.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode represents the /openconfig-terminal-device/terminal-device/operational-modes/mode YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode struct {
	ΛMetadata []ygot.Annotation                                                     `path:"@" ygotAnnotation:"true"`
	Config    *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config `path:"config" module:"openconfig-terminal-device"`
	ΛConfig   []ygot.Annotation                                                     `path:"@config" ygotAnnotation:"true"`
	ModeId    *uint16                                                               `path:"mode-id" module:"openconfig-terminal-device"`
	ΛModeId   []ygot.Annotation                                                     `path:"@mode-id" ygotAnnotation:"true"`
	State     *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State  `path:"state" module:"openconfig-terminal-device"`
	ΛState    []ygot.Annotation                                                     `path:"@state" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) IsYANGGoStruct() {}

// GetOrCreateConfig retrieves the value of the Config field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) GetOrCreateConfig() *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config {
	if t.Config != nil {
		return t.Config
	}
	t.Config = &OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config{}
	return t.Config
}

// GetOrCreateState retrieves the value of the State field
// or returns the existing field if it already exists.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) GetOrCreateState() *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State {
	if t.State != nil {
		return t.State
	}
	t.State = &OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State{}
	return t.State
}

// GetConfig returns the value of the Config struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode. If the receiver or the field Config is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) GetConfig() *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config {
	if t != nil && t.Config != nil {
		return t.Config
	}
	return nil
}

// GetState returns the value of the State struct pointer
// from OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode. If the receiver or the field State is nil, nil
// is returned such that the Get* methods can be safely chained.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) GetState() *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State {
	if t != nil && t.State != nil {
		return t.State
	}
	return nil
}

// GetModeId retrieves the value of the leaf ModeId from the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModeId is set, it can
// safely use t.GetModeId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModeId == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) GetModeId() uint16 {
	if t == nil || t.ModeId == nil {
		return 0
	}
	return *t.ModeId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
	t.Config.PopulateDefaults()
	t.State.PopulateDefaults()
}

// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode struct, which is a YANG list entry.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ModeId == nil {
		return nil, fmt.Errorf("nil value for key ModeId")
	}

	return map[string]interface{}{
		"mode-id": *t.ModeId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config represents the /openconfig-terminal-device/terminal-device/operational-modes/mode/config YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State represents the /openconfig-terminal-device/terminal-device/operational-modes/mode/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State struct {
	ΛMetadata    []ygot.Annotation `path:"@" ygotAnnotation:"true"`
	Description  *string           `path:"description" module:"openconfig-terminal-device"`
	ΛDescription []ygot.Annotation `path:"@description" ygotAnnotation:"true"`
	ModeId       *uint16           `path:"mode-id" module:"openconfig-terminal-device"`
	ΛModeId      []ygot.Annotation `path:"@mode-id" ygotAnnotation:"true"`
	VendorId     *string           `path:"vendor-id" module:"openconfig-terminal-device"`
	ΛVendorId    []ygot.Annotation `path:"@vendor-id" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) IsYANGGoStruct() {}

// GetDescription retrieves the value of the leaf Description from the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if Description is set, it can
// safely use t.GetDescription() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.Description == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) GetDescription() string {
	if t == nil || t.Description == nil {
		return ""
	}
	return *t.Description
}

// GetModeId retrieves the value of the leaf ModeId from the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if ModeId is set, it can
// safely use t.GetModeId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.ModeId == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) GetModeId() uint16 {
	if t == nil || t.ModeId == nil {
		return 0
	}
	return *t.ModeId
}

// GetVendorId retrieves the value of the leaf VendorId from the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State
// struct. If the field is unset but has a default value in the YANG schema,
// then the default value will be returned.
// Caution should be exercised whilst using this method since when without a
// default value, it will return the Go zero value if the field is explicitly
// unset. If the caller explicitly does not care if VendorId is set, it can
// safely use t.GetVendorId() to retrieve the value. In the case that the
// caller has different actions based on whether the leaf is set or unset, it
// should use 'if t.VendorId == nil' before retrieving the leaf's value.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) GetVendorId() string {
	if t == nil || t.VendorId == nil {
		return ""
	}
	return *t.VendorId
}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State.
func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// OpenconfigTerminalDevice_TerminalDevice_State represents the /openconfig-terminal-device/terminal-device/state YANG schema element.
type OpenconfigTerminalDevice_TerminalDevice_State struct {
	ΛMetadata []ygot.Annotation `path:"@" ygotAnnotation:"true"`
}

// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_State implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*OpenconfigTerminalDevice_TerminalDevice_State) IsYANGGoStruct() {}

// PopulateDefaults recursively populates unset leaf fields in the OpenconfigTerminalDevice_TerminalDevice_State
// with default values as specified in the YANG schema, instantiating any nil
// container fields.
func (t *OpenconfigTerminalDevice_TerminalDevice_State) PopulateDefaults() {
	if t == nil {
		return
	}
	ygot.BuildEmptyTree(t)
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_State) ΛValidate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_State"], t, opts...); err != nil {
		return err
	}
	return nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *OpenconfigTerminalDevice_TerminalDevice_State) Validate(opts ...ygot.ValidationOption) error {
	return t.ΛValidate(opts...)
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *OpenconfigTerminalDevice_TerminalDevice_State) ΛEnumTypeMap() map[string][]reflect.Type {
	return ΛEnumTypes
}

// ΛBelongingModule returns the name of the module that defines the namespace
// of OpenconfigTerminalDevice_TerminalDevice_State.
func (*OpenconfigTerminalDevice_TerminalDevice_State) ΛBelongingModule() string {
	return "openconfig-terminal-device"
}

// E_IETFInterfaces_InterfaceType is a derived int64 type which is used to represent
// the enumerated node IETFInterfaces_InterfaceType. An additional value named
// IETFInterfaces_InterfaceType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_IETFInterfaces_InterfaceType int64

// IsYANGGoEnum ensures that IETFInterfaces_InterfaceType implements the yang.GoEnum
// interface. This ensures that IETFInterfaces_InterfaceType can be identified as a
// mapped type for a YANG enumeration.
func (E_IETFInterfaces_InterfaceType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  IETFInterfaces_InterfaceType.
func (E_IETFInterfaces_InterfaceType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_IETFInterfaces_InterfaceType.
func (e E_IETFInterfaces_InterfaceType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_IETFInterfaces_InterfaceType")
}

const (
	// IETFInterfaces_InterfaceType_UNSET corresponds to the value UNSET of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_UNSET E_IETFInterfaces_InterfaceType = 0
	// IETFInterfaces_InterfaceType_a12MppSwitch corresponds to the value a12MppSwitch of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_a12MppSwitch E_IETFInterfaces_InterfaceType = 1
	// IETFInterfaces_InterfaceType_aal2 corresponds to the value aal2 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aal2 E_IETFInterfaces_InterfaceType = 2
	// IETFInterfaces_InterfaceType_aal5 corresponds to the value aal5 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aal5 E_IETFInterfaces_InterfaceType = 3
	// IETFInterfaces_InterfaceType_actelisMetaLOOP corresponds to the value actelisMetaLOOP of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_actelisMetaLOOP E_IETFInterfaces_InterfaceType = 4
	// IETFInterfaces_InterfaceType_adsl corresponds to the value adsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_adsl E_IETFInterfaces_InterfaceType = 5
	// IETFInterfaces_InterfaceType_adsl2 corresponds to the value adsl2 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_adsl2 E_IETFInterfaces_InterfaceType = 6
	// IETFInterfaces_InterfaceType_adsl2plus corresponds to the value adsl2plus of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_adsl2plus E_IETFInterfaces_InterfaceType = 7
	// IETFInterfaces_InterfaceType_aflane8023 corresponds to the value aflane8023 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aflane8023 E_IETFInterfaces_InterfaceType = 8
	// IETFInterfaces_InterfaceType_aflane8025 corresponds to the value aflane8025 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aflane8025 E_IETFInterfaces_InterfaceType = 9
	// IETFInterfaces_InterfaceType_aluELP corresponds to the value aluELP of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aluELP E_IETFInterfaces_InterfaceType = 10
	// IETFInterfaces_InterfaceType_aluEpon corresponds to the value aluEpon of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aluEpon E_IETFInterfaces_InterfaceType = 11
	// IETFInterfaces_InterfaceType_aluEponLogicalLink corresponds to the value aluEponLogicalLink of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aluEponLogicalLink E_IETFInterfaces_InterfaceType = 12
	// IETFInterfaces_InterfaceType_aluEponOnu corresponds to the value aluEponOnu of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aluEponOnu E_IETFInterfaces_InterfaceType = 13
	// IETFInterfaces_InterfaceType_aluEponPhysicalUni corresponds to the value aluEponPhysicalUni of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aluEponPhysicalUni E_IETFInterfaces_InterfaceType = 14
	// IETFInterfaces_InterfaceType_aluGponOnu corresponds to the value aluGponOnu of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aluGponOnu E_IETFInterfaces_InterfaceType = 15
	// IETFInterfaces_InterfaceType_aluGponPhysicalUni corresponds to the value aluGponPhysicalUni of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aluGponPhysicalUni E_IETFInterfaces_InterfaceType = 16
	// IETFInterfaces_InterfaceType_arap corresponds to the value arap of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_arap E_IETFInterfaces_InterfaceType = 17
	// IETFInterfaces_InterfaceType_arcnet corresponds to the value arcnet of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_arcnet E_IETFInterfaces_InterfaceType = 18
	// IETFInterfaces_InterfaceType_arcnetPlus corresponds to the value arcnetPlus of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_arcnetPlus E_IETFInterfaces_InterfaceType = 19
	// IETFInterfaces_InterfaceType_async corresponds to the value async of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_async E_IETFInterfaces_InterfaceType = 20
	// IETFInterfaces_InterfaceType_atm corresponds to the value atm of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atm E_IETFInterfaces_InterfaceType = 21
	// IETFInterfaces_InterfaceType_atmDxi corresponds to the value atmDxi of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmDxi E_IETFInterfaces_InterfaceType = 22
	// IETFInterfaces_InterfaceType_atmFuni corresponds to the value atmFuni of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmFuni E_IETFInterfaces_InterfaceType = 23
	// IETFInterfaces_InterfaceType_atmIma corresponds to the value atmIma of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmIma E_IETFInterfaces_InterfaceType = 24
	// IETFInterfaces_InterfaceType_atmLogical corresponds to the value atmLogical of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmLogical E_IETFInterfaces_InterfaceType = 25
	// IETFInterfaces_InterfaceType_atmRadio corresponds to the value atmRadio of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmRadio E_IETFInterfaces_InterfaceType = 26
	// IETFInterfaces_InterfaceType_atmSubInterface corresponds to the value atmSubInterface of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmSubInterface E_IETFInterfaces_InterfaceType = 27
	// IETFInterfaces_InterfaceType_atmVciEndPt corresponds to the value atmVciEndPt of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmVciEndPt E_IETFInterfaces_InterfaceType = 28
	// IETFInterfaces_InterfaceType_atmVirtual corresponds to the value atmVirtual of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmVirtual E_IETFInterfaces_InterfaceType = 29
	// IETFInterfaces_InterfaceType_atmbond corresponds to the value atmbond of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_atmbond E_IETFInterfaces_InterfaceType = 30
	// IETFInterfaces_InterfaceType_aviciOpticalEther corresponds to the value aviciOpticalEther of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_aviciOpticalEther E_IETFInterfaces_InterfaceType = 31
	// IETFInterfaces_InterfaceType_basicISDN corresponds to the value basicISDN of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_basicISDN E_IETFInterfaces_InterfaceType = 32
	// IETFInterfaces_InterfaceType_bgppolicyaccounting corresponds to the value bgppolicyaccounting of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_bgppolicyaccounting E_IETFInterfaces_InterfaceType = 33
	// IETFInterfaces_InterfaceType_bits corresponds to the value bits of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_bits E_IETFInterfaces_InterfaceType = 34
	// IETFInterfaces_InterfaceType_bridge corresponds to the value bridge of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_bridge E_IETFInterfaces_InterfaceType = 35
	// IETFInterfaces_InterfaceType_bsc corresponds to the value bsc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_bsc E_IETFInterfaces_InterfaceType = 36
	// IETFInterfaces_InterfaceType_cableDownstreamRfPort corresponds to the value cableDownstreamRfPort of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_cableDownstreamRfPort E_IETFInterfaces_InterfaceType = 37
	// IETFInterfaces_InterfaceType_capwapDot11Bss corresponds to the value capwapDot11Bss of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_capwapDot11Bss E_IETFInterfaces_InterfaceType = 38
	// IETFInterfaces_InterfaceType_capwapDot11Profile corresponds to the value capwapDot11Profile of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_capwapDot11Profile E_IETFInterfaces_InterfaceType = 39
	// IETFInterfaces_InterfaceType_capwapWtpVirtualRadio corresponds to the value capwapWtpVirtualRadio of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_capwapWtpVirtualRadio E_IETFInterfaces_InterfaceType = 40
	// IETFInterfaces_InterfaceType_cblVectaStar corresponds to the value cblVectaStar of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_cblVectaStar E_IETFInterfaces_InterfaceType = 41
	// IETFInterfaces_InterfaceType_cctEmul corresponds to the value cctEmul of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_cctEmul E_IETFInterfaces_InterfaceType = 42
	// IETFInterfaces_InterfaceType_ces corresponds to the value ces of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ces E_IETFInterfaces_InterfaceType = 43
	// IETFInterfaces_InterfaceType_channel corresponds to the value channel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_channel E_IETFInterfaces_InterfaceType = 44
	// IETFInterfaces_InterfaceType_ciscoISLvlan corresponds to the value ciscoISLvlan of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ciscoISLvlan E_IETFInterfaces_InterfaceType = 45
	// IETFInterfaces_InterfaceType_cnr corresponds to the value cnr of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_cnr E_IETFInterfaces_InterfaceType = 46
	// IETFInterfaces_InterfaceType_coffee corresponds to the value coffee of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_coffee E_IETFInterfaces_InterfaceType = 47
	// IETFInterfaces_InterfaceType_compositeLink corresponds to the value compositeLink of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_compositeLink E_IETFInterfaces_InterfaceType = 48
	// IETFInterfaces_InterfaceType_dcn corresponds to the value dcn of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dcn E_IETFInterfaces_InterfaceType = 49
	// IETFInterfaces_InterfaceType_ddnX25 corresponds to the value ddnX25 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ddnX25 E_IETFInterfaces_InterfaceType = 50
	// IETFInterfaces_InterfaceType_digitalPowerline corresponds to the value digitalPowerline of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_digitalPowerline E_IETFInterfaces_InterfaceType = 51
	// IETFInterfaces_InterfaceType_digitalWrapperOverheadChannel corresponds to the value digitalWrapperOverheadChannel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_digitalWrapperOverheadChannel E_IETFInterfaces_InterfaceType = 52
	// IETFInterfaces_InterfaceType_dlsw corresponds to the value dlsw of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dlsw E_IETFInterfaces_InterfaceType = 53
	// IETFInterfaces_InterfaceType_docsCableDownstream corresponds to the value docsCableDownstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableDownstream E_IETFInterfaces_InterfaceType = 54
	// IETFInterfaces_InterfaceType_docsCableMCmtsDownstream corresponds to the value docsCableMCmtsDownstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableMCmtsDownstream E_IETFInterfaces_InterfaceType = 55
	// IETFInterfaces_InterfaceType_docsCableMaclayer corresponds to the value docsCableMaclayer of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableMaclayer E_IETFInterfaces_InterfaceType = 56
	// IETFInterfaces_InterfaceType_docsCableNdf corresponds to the value docsCableNdf of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableNdf E_IETFInterfaces_InterfaceType = 57
	// IETFInterfaces_InterfaceType_docsCableNdr corresponds to the value docsCableNdr of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableNdr E_IETFInterfaces_InterfaceType = 58
	// IETFInterfaces_InterfaceType_docsCableScte55d1FwdOob corresponds to the value docsCableScte55d1FwdOob of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableScte55d1FwdOob E_IETFInterfaces_InterfaceType = 59
	// IETFInterfaces_InterfaceType_docsCableScte55d1RetOob corresponds to the value docsCableScte55d1RetOob of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableScte55d1RetOob E_IETFInterfaces_InterfaceType = 60
	// IETFInterfaces_InterfaceType_docsCableScte55d2DsOob corresponds to the value docsCableScte55d2DsOob of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableScte55d2DsOob E_IETFInterfaces_InterfaceType = 61
	// IETFInterfaces_InterfaceType_docsCableScte55d2UsOob corresponds to the value docsCableScte55d2UsOob of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableScte55d2UsOob E_IETFInterfaces_InterfaceType = 62
	// IETFInterfaces_InterfaceType_docsCableUpstream corresponds to the value docsCableUpstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableUpstream E_IETFInterfaces_InterfaceType = 63
	// IETFInterfaces_InterfaceType_docsCableUpstreamChannel corresponds to the value docsCableUpstreamChannel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableUpstreamChannel E_IETFInterfaces_InterfaceType = 64
	// IETFInterfaces_InterfaceType_docsCableUpstreamRfPort corresponds to the value docsCableUpstreamRfPort of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsCableUpstreamRfPort E_IETFInterfaces_InterfaceType = 65
	// IETFInterfaces_InterfaceType_docsOfdmDownstream corresponds to the value docsOfdmDownstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsOfdmDownstream E_IETFInterfaces_InterfaceType = 66
	// IETFInterfaces_InterfaceType_docsOfdmaUpstream corresponds to the value docsOfdmaUpstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_docsOfdmaUpstream E_IETFInterfaces_InterfaceType = 67
	// IETFInterfaces_InterfaceType_ds0 corresponds to the value ds0 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ds0 E_IETFInterfaces_InterfaceType = 68
	// IETFInterfaces_InterfaceType_ds0Bundle corresponds to the value ds0Bundle of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ds0Bundle E_IETFInterfaces_InterfaceType = 69
	// IETFInterfaces_InterfaceType_ds1 corresponds to the value ds1 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ds1 E_IETFInterfaces_InterfaceType = 70
	// IETFInterfaces_InterfaceType_ds1FDL corresponds to the value ds1FDL of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ds1FDL E_IETFInterfaces_InterfaceType = 71
	// IETFInterfaces_InterfaceType_ds3 corresponds to the value ds3 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ds3 E_IETFInterfaces_InterfaceType = 72
	// IETFInterfaces_InterfaceType_dtm corresponds to the value dtm of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dtm E_IETFInterfaces_InterfaceType = 73
	// IETFInterfaces_InterfaceType_dvbAsiIn corresponds to the value dvbAsiIn of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbAsiIn E_IETFInterfaces_InterfaceType = 74
	// IETFInterfaces_InterfaceType_dvbAsiOut corresponds to the value dvbAsiOut of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbAsiOut E_IETFInterfaces_InterfaceType = 75
	// IETFInterfaces_InterfaceType_dvbRccDownstream corresponds to the value dvbRccDownstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbRccDownstream E_IETFInterfaces_InterfaceType = 76
	// IETFInterfaces_InterfaceType_dvbRccMacLayer corresponds to the value dvbRccMacLayer of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbRccMacLayer E_IETFInterfaces_InterfaceType = 77
	// IETFInterfaces_InterfaceType_dvbRccUpstream corresponds to the value dvbRccUpstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbRccUpstream E_IETFInterfaces_InterfaceType = 78
	// IETFInterfaces_InterfaceType_dvbRcsMacLayer corresponds to the value dvbRcsMacLayer of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbRcsMacLayer E_IETFInterfaces_InterfaceType = 79
	// IETFInterfaces_InterfaceType_dvbRcsTdma corresponds to the value dvbRcsTdma of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbRcsTdma E_IETFInterfaces_InterfaceType = 80
	// IETFInterfaces_InterfaceType_dvbTdm corresponds to the value dvbTdm of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_dvbTdm E_IETFInterfaces_InterfaceType = 81
	// IETFInterfaces_InterfaceType_e1 corresponds to the value e1 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_e1 E_IETFInterfaces_InterfaceType = 82
	// IETFInterfaces_InterfaceType_econet corresponds to the value econet of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_econet E_IETFInterfaces_InterfaceType = 83
	// IETFInterfaces_InterfaceType_eon corresponds to the value eon of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_eon E_IETFInterfaces_InterfaceType = 84
	// IETFInterfaces_InterfaceType_eplrs corresponds to the value eplrs of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_eplrs E_IETFInterfaces_InterfaceType = 85
	// IETFInterfaces_InterfaceType_escon corresponds to the value escon of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_escon E_IETFInterfaces_InterfaceType = 86
	// IETFInterfaces_InterfaceType_ethernet3Mbit corresponds to the value ethernet3Mbit of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ethernet3Mbit E_IETFInterfaces_InterfaceType = 87
	// IETFInterfaces_InterfaceType_ethernetCsmacd corresponds to the value ethernetCsmacd of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ethernetCsmacd E_IETFInterfaces_InterfaceType = 88
	// IETFInterfaces_InterfaceType_fast corresponds to the value fast of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_fast E_IETFInterfaces_InterfaceType = 89
	// IETFInterfaces_InterfaceType_fastEther corresponds to the value fastEther of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_fastEther E_IETFInterfaces_InterfaceType = 90
	// IETFInterfaces_InterfaceType_fastEtherFX corresponds to the value fastEtherFX of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_fastEtherFX E_IETFInterfaces_InterfaceType = 91
	// IETFInterfaces_InterfaceType_fastdsl corresponds to the value fastdsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_fastdsl E_IETFInterfaces_InterfaceType = 92
	// IETFInterfaces_InterfaceType_fcipLink corresponds to the value fcipLink of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_fcipLink E_IETFInterfaces_InterfaceType = 93
	// IETFInterfaces_InterfaceType_fddi corresponds to the value fddi of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_fddi E_IETFInterfaces_InterfaceType = 94
	// IETFInterfaces_InterfaceType_fibreChannel corresponds to the value fibreChannel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_fibreChannel E_IETFInterfaces_InterfaceType = 95
	// IETFInterfaces_InterfaceType_frDlciEndPt corresponds to the value frDlciEndPt of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_frDlciEndPt E_IETFInterfaces_InterfaceType = 96
	// IETFInterfaces_InterfaceType_frForward corresponds to the value frForward of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_frForward E_IETFInterfaces_InterfaceType = 97
	// IETFInterfaces_InterfaceType_frameRelay corresponds to the value frameRelay of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_frameRelay E_IETFInterfaces_InterfaceType = 98
	// IETFInterfaces_InterfaceType_frameRelayInterconnect corresponds to the value frameRelayInterconnect of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_frameRelayInterconnect E_IETFInterfaces_InterfaceType = 99
	// IETFInterfaces_InterfaceType_frameRelayMPI corresponds to the value frameRelayMPI of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_frameRelayMPI E_IETFInterfaces_InterfaceType = 100
	// IETFInterfaces_InterfaceType_frameRelayService corresponds to the value frameRelayService of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_frameRelayService E_IETFInterfaces_InterfaceType = 101
	// IETFInterfaces_InterfaceType_frf16MfrBundle corresponds to the value frf16MfrBundle of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_frf16MfrBundle E_IETFInterfaces_InterfaceType = 102
	// IETFInterfaces_InterfaceType_g703at2mb corresponds to the value g703at2mb of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_g703at2mb E_IETFInterfaces_InterfaceType = 103
	// IETFInterfaces_InterfaceType_g703at64k corresponds to the value g703at64k of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_g703at64k E_IETFInterfaces_InterfaceType = 104
	// IETFInterfaces_InterfaceType_g9981 corresponds to the value g9981 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_g9981 E_IETFInterfaces_InterfaceType = 105
	// IETFInterfaces_InterfaceType_g9982 corresponds to the value g9982 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_g9982 E_IETFInterfaces_InterfaceType = 106
	// IETFInterfaces_InterfaceType_g9983 corresponds to the value g9983 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_g9983 E_IETFInterfaces_InterfaceType = 107
	// IETFInterfaces_InterfaceType_gfast corresponds to the value gfast of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_gfast E_IETFInterfaces_InterfaceType = 108
	// IETFInterfaces_InterfaceType_gfp corresponds to the value gfp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_gfp E_IETFInterfaces_InterfaceType = 109
	// IETFInterfaces_InterfaceType_gigabitEthernet corresponds to the value gigabitEthernet of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_gigabitEthernet E_IETFInterfaces_InterfaceType = 110
	// IETFInterfaces_InterfaceType_gpon corresponds to the value gpon of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_gpon E_IETFInterfaces_InterfaceType = 111
	// IETFInterfaces_InterfaceType_gr303IDT corresponds to the value gr303IDT of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_gr303IDT E_IETFInterfaces_InterfaceType = 112
	// IETFInterfaces_InterfaceType_gr303RDT corresponds to the value gr303RDT of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_gr303RDT E_IETFInterfaces_InterfaceType = 113
	// IETFInterfaces_InterfaceType_gtp corresponds to the value gtp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_gtp E_IETFInterfaces_InterfaceType = 114
	// IETFInterfaces_InterfaceType_h323Gatekeeper corresponds to the value h323Gatekeeper of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_h323Gatekeeper E_IETFInterfaces_InterfaceType = 115
	// IETFInterfaces_InterfaceType_h323Proxy corresponds to the value h323Proxy of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_h323Proxy E_IETFInterfaces_InterfaceType = 116
	// IETFInterfaces_InterfaceType_hdh1822 corresponds to the value hdh1822 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hdh1822 E_IETFInterfaces_InterfaceType = 117
	// IETFInterfaces_InterfaceType_hdlc corresponds to the value hdlc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hdlc E_IETFInterfaces_InterfaceType = 118
	// IETFInterfaces_InterfaceType_hdsl2 corresponds to the value hdsl2 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hdsl2 E_IETFInterfaces_InterfaceType = 119
	// IETFInterfaces_InterfaceType_hiperlan2 corresponds to the value hiperlan2 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hiperlan2 E_IETFInterfaces_InterfaceType = 120
	// IETFInterfaces_InterfaceType_hippi corresponds to the value hippi of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hippi E_IETFInterfaces_InterfaceType = 121
	// IETFInterfaces_InterfaceType_hippiInterface corresponds to the value hippiInterface of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hippiInterface E_IETFInterfaces_InterfaceType = 122
	// IETFInterfaces_InterfaceType_homepna corresponds to the value homepna of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_homepna E_IETFInterfaces_InterfaceType = 123
	// IETFInterfaces_InterfaceType_hostPad corresponds to the value hostPad of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hostPad E_IETFInterfaces_InterfaceType = 124
	// IETFInterfaces_InterfaceType_hssi corresponds to the value hssi of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hssi E_IETFInterfaces_InterfaceType = 125
	// IETFInterfaces_InterfaceType_hyperchannel corresponds to the value hyperchannel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_hyperchannel E_IETFInterfaces_InterfaceType = 126
	// IETFInterfaces_InterfaceType_iana_interface_type corresponds to the value iana_interface_type of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iana_interface_type E_IETFInterfaces_InterfaceType = 127
	// IETFInterfaces_InterfaceType_ibm370parChan corresponds to the value ibm370parChan of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ibm370parChan E_IETFInterfaces_InterfaceType = 128
	// IETFInterfaces_InterfaceType_idsl corresponds to the value idsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_idsl E_IETFInterfaces_InterfaceType = 129
	// IETFInterfaces_InterfaceType_ieee1394 corresponds to the value ieee1394 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ieee1394 E_IETFInterfaces_InterfaceType = 130
	// IETFInterfaces_InterfaceType_ieee80211 corresponds to the value ieee80211 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ieee80211 E_IETFInterfaces_InterfaceType = 131
	// IETFInterfaces_InterfaceType_ieee80212 corresponds to the value ieee80212 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ieee80212 E_IETFInterfaces_InterfaceType = 132
	// IETFInterfaces_InterfaceType_ieee802154 corresponds to the value ieee802154 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ieee802154 E_IETFInterfaces_InterfaceType = 133
	// IETFInterfaces_InterfaceType_ieee80216WMAN corresponds to the value ieee80216WMAN of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ieee80216WMAN E_IETFInterfaces_InterfaceType = 134
	// IETFInterfaces_InterfaceType_ieee8023adLag corresponds to the value ieee8023adLag of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ieee8023adLag E_IETFInterfaces_InterfaceType = 135
	// IETFInterfaces_InterfaceType_if_gsn corresponds to the value if_gsn of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_if_gsn E_IETFInterfaces_InterfaceType = 136
	// IETFInterfaces_InterfaceType_ifPwType corresponds to the value ifPwType of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ifPwType E_IETFInterfaces_InterfaceType = 137
	// IETFInterfaces_InterfaceType_ifVfiType corresponds to the value ifVfiType of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ifVfiType E_IETFInterfaces_InterfaceType = 138
	// IETFInterfaces_InterfaceType_ilan corresponds to the value ilan of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ilan E_IETFInterfaces_InterfaceType = 139
	// IETFInterfaces_InterfaceType_imt corresponds to the value imt of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_imt E_IETFInterfaces_InterfaceType = 140
	// IETFInterfaces_InterfaceType_infiniband corresponds to the value infiniband of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_infiniband E_IETFInterfaces_InterfaceType = 141
	// IETFInterfaces_InterfaceType_interleave corresponds to the value interleave of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_interleave E_IETFInterfaces_InterfaceType = 142
	// IETFInterfaces_InterfaceType_ip corresponds to the value ip of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ip E_IETFInterfaces_InterfaceType = 143
	// IETFInterfaces_InterfaceType_ipForward corresponds to the value ipForward of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ipForward E_IETFInterfaces_InterfaceType = 144
	// IETFInterfaces_InterfaceType_ipOverAtm corresponds to the value ipOverAtm of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ipOverAtm E_IETFInterfaces_InterfaceType = 145
	// IETFInterfaces_InterfaceType_ipOverCdlc corresponds to the value ipOverCdlc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ipOverCdlc E_IETFInterfaces_InterfaceType = 146
	// IETFInterfaces_InterfaceType_ipOverClaw corresponds to the value ipOverClaw of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ipOverClaw E_IETFInterfaces_InterfaceType = 147
	// IETFInterfaces_InterfaceType_ipSwitch corresponds to the value ipSwitch of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ipSwitch E_IETFInterfaces_InterfaceType = 148
	// IETFInterfaces_InterfaceType_isdn corresponds to the value isdn of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_isdn E_IETFInterfaces_InterfaceType = 149
	// IETFInterfaces_InterfaceType_isdns corresponds to the value isdns of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_isdns E_IETFInterfaces_InterfaceType = 150
	// IETFInterfaces_InterfaceType_isdnu corresponds to the value isdnu of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_isdnu E_IETFInterfaces_InterfaceType = 151
	// IETFInterfaces_InterfaceType_iso88022llc corresponds to the value iso88022llc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88022llc E_IETFInterfaces_InterfaceType = 152
	// IETFInterfaces_InterfaceType_iso88023Csmacd corresponds to the value iso88023Csmacd of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88023Csmacd E_IETFInterfaces_InterfaceType = 153
	// IETFInterfaces_InterfaceType_iso88024TokenBus corresponds to the value iso88024TokenBus of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88024TokenBus E_IETFInterfaces_InterfaceType = 154
	// IETFInterfaces_InterfaceType_iso88025CRFPInt corresponds to the value iso88025CRFPInt of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88025CRFPInt E_IETFInterfaces_InterfaceType = 155
	// IETFInterfaces_InterfaceType_iso88025Dtr corresponds to the value iso88025Dtr of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88025Dtr E_IETFInterfaces_InterfaceType = 156
	// IETFInterfaces_InterfaceType_iso88025Fiber corresponds to the value iso88025Fiber of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88025Fiber E_IETFInterfaces_InterfaceType = 157
	// IETFInterfaces_InterfaceType_iso88025TokenRing corresponds to the value iso88025TokenRing of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88025TokenRing E_IETFInterfaces_InterfaceType = 158
	// IETFInterfaces_InterfaceType_iso88026Man corresponds to the value iso88026Man of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_iso88026Man E_IETFInterfaces_InterfaceType = 159
	// IETFInterfaces_InterfaceType_isup corresponds to the value isup of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_isup E_IETFInterfaces_InterfaceType = 160
	// IETFInterfaces_InterfaceType_l2vlan corresponds to the value l2vlan of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_l2vlan E_IETFInterfaces_InterfaceType = 161
	// IETFInterfaces_InterfaceType_l3ipvlan corresponds to the value l3ipvlan of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_l3ipvlan E_IETFInterfaces_InterfaceType = 162
	// IETFInterfaces_InterfaceType_l3ipxvlan corresponds to the value l3ipxvlan of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_l3ipxvlan E_IETFInterfaces_InterfaceType = 163
	// IETFInterfaces_InterfaceType_lapb corresponds to the value lapb of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_lapb E_IETFInterfaces_InterfaceType = 164
	// IETFInterfaces_InterfaceType_lapd corresponds to the value lapd of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_lapd E_IETFInterfaces_InterfaceType = 165
	// IETFInterfaces_InterfaceType_lapf corresponds to the value lapf of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_lapf E_IETFInterfaces_InterfaceType = 166
	// IETFInterfaces_InterfaceType_linegroup corresponds to the value linegroup of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_linegroup E_IETFInterfaces_InterfaceType = 167
	// IETFInterfaces_InterfaceType_lmp corresponds to the value lmp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_lmp E_IETFInterfaces_InterfaceType = 168
	// IETFInterfaces_InterfaceType_localTalk corresponds to the value localTalk of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_localTalk E_IETFInterfaces_InterfaceType = 169
	// IETFInterfaces_InterfaceType_macSecControlledIF corresponds to the value macSecControlledIF of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_macSecControlledIF E_IETFInterfaces_InterfaceType = 170
	// IETFInterfaces_InterfaceType_macSecUncontrolledIF corresponds to the value macSecUncontrolledIF of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_macSecUncontrolledIF E_IETFInterfaces_InterfaceType = 171
	// IETFInterfaces_InterfaceType_mediaMailOverIp corresponds to the value mediaMailOverIp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mediaMailOverIp E_IETFInterfaces_InterfaceType = 172
	// IETFInterfaces_InterfaceType_mfSigLink corresponds to the value mfSigLink of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mfSigLink E_IETFInterfaces_InterfaceType = 173
	// IETFInterfaces_InterfaceType_miox25 corresponds to the value miox25 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_miox25 E_IETFInterfaces_InterfaceType = 174
	// IETFInterfaces_InterfaceType_mocaVersion1 corresponds to the value mocaVersion1 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mocaVersion1 E_IETFInterfaces_InterfaceType = 175
	// IETFInterfaces_InterfaceType_modem corresponds to the value modem of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_modem E_IETFInterfaces_InterfaceType = 176
	// IETFInterfaces_InterfaceType_mpc corresponds to the value mpc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mpc E_IETFInterfaces_InterfaceType = 177
	// IETFInterfaces_InterfaceType_mpegTransport corresponds to the value mpegTransport of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mpegTransport E_IETFInterfaces_InterfaceType = 178
	// IETFInterfaces_InterfaceType_mpls corresponds to the value mpls of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mpls E_IETFInterfaces_InterfaceType = 179
	// IETFInterfaces_InterfaceType_mplsTunnel corresponds to the value mplsTunnel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mplsTunnel E_IETFInterfaces_InterfaceType = 180
	// IETFInterfaces_InterfaceType_msdsl corresponds to the value msdsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_msdsl E_IETFInterfaces_InterfaceType = 181
	// IETFInterfaces_InterfaceType_mvl corresponds to the value mvl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_mvl E_IETFInterfaces_InterfaceType = 182
	// IETFInterfaces_InterfaceType_myrinet corresponds to the value myrinet of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_myrinet E_IETFInterfaces_InterfaceType = 183
	// IETFInterfaces_InterfaceType_nfas corresponds to the value nfas of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_nfas E_IETFInterfaces_InterfaceType = 184
	// IETFInterfaces_InterfaceType_nsip corresponds to the value nsip of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_nsip E_IETFInterfaces_InterfaceType = 185
	// IETFInterfaces_InterfaceType_opticalChannel corresponds to the value opticalChannel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_opticalChannel E_IETFInterfaces_InterfaceType = 186
	// IETFInterfaces_InterfaceType_opticalChannelGroup corresponds to the value opticalChannelGroup of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_opticalChannelGroup E_IETFInterfaces_InterfaceType = 187
	// IETFInterfaces_InterfaceType_opticalTransport corresponds to the value opticalTransport of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_opticalTransport E_IETFInterfaces_InterfaceType = 188
	// IETFInterfaces_InterfaceType_other corresponds to the value other of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_other E_IETFInterfaces_InterfaceType = 189
	// IETFInterfaces_InterfaceType_otnOdu corresponds to the value otnOdu of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_otnOdu E_IETFInterfaces_InterfaceType = 190
	// IETFInterfaces_InterfaceType_otnOtu corresponds to the value otnOtu of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_otnOtu E_IETFInterfaces_InterfaceType = 191
	// IETFInterfaces_InterfaceType_para corresponds to the value para of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_para E_IETFInterfaces_InterfaceType = 192
	// IETFInterfaces_InterfaceType_pdnEtherLoop1 corresponds to the value pdnEtherLoop1 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_pdnEtherLoop1 E_IETFInterfaces_InterfaceType = 193
	// IETFInterfaces_InterfaceType_pdnEtherLoop2 corresponds to the value pdnEtherLoop2 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_pdnEtherLoop2 E_IETFInterfaces_InterfaceType = 194
	// IETFInterfaces_InterfaceType_pip corresponds to the value pip of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_pip E_IETFInterfaces_InterfaceType = 195
	// IETFInterfaces_InterfaceType_plc corresponds to the value plc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_plc E_IETFInterfaces_InterfaceType = 196
	// IETFInterfaces_InterfaceType_pon155 corresponds to the value pon155 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_pon155 E_IETFInterfaces_InterfaceType = 197
	// IETFInterfaces_InterfaceType_pon622 corresponds to the value pon622 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_pon622 E_IETFInterfaces_InterfaceType = 198
	// IETFInterfaces_InterfaceType_pos corresponds to the value pos of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_pos E_IETFInterfaces_InterfaceType = 199
	// IETFInterfaces_InterfaceType_ppp corresponds to the value ppp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ppp E_IETFInterfaces_InterfaceType = 200
	// IETFInterfaces_InterfaceType_pppMultilinkBundle corresponds to the value pppMultilinkBundle of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_pppMultilinkBundle E_IETFInterfaces_InterfaceType = 201
	// IETFInterfaces_InterfaceType_primaryISDN corresponds to the value primaryISDN of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_primaryISDN E_IETFInterfaces_InterfaceType = 202
	// IETFInterfaces_InterfaceType_propAtm corresponds to the value propAtm of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propAtm E_IETFInterfaces_InterfaceType = 203
	// IETFInterfaces_InterfaceType_propBWAp2Mp corresponds to the value propBWAp2Mp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propBWAp2Mp E_IETFInterfaces_InterfaceType = 204
	// IETFInterfaces_InterfaceType_propCnls corresponds to the value propCnls of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propCnls E_IETFInterfaces_InterfaceType = 205
	// IETFInterfaces_InterfaceType_propDocsWirelessDownstream corresponds to the value propDocsWirelessDownstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propDocsWirelessDownstream E_IETFInterfaces_InterfaceType = 206
	// IETFInterfaces_InterfaceType_propDocsWirelessMaclayer corresponds to the value propDocsWirelessMaclayer of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propDocsWirelessMaclayer E_IETFInterfaces_InterfaceType = 207
	// IETFInterfaces_InterfaceType_propDocsWirelessUpstream corresponds to the value propDocsWirelessUpstream of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propDocsWirelessUpstream E_IETFInterfaces_InterfaceType = 208
	// IETFInterfaces_InterfaceType_propMultiplexor corresponds to the value propMultiplexor of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propMultiplexor E_IETFInterfaces_InterfaceType = 209
	// IETFInterfaces_InterfaceType_propPointToPointSerial corresponds to the value propPointToPointSerial of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propPointToPointSerial E_IETFInterfaces_InterfaceType = 210
	// IETFInterfaces_InterfaceType_propVirtual corresponds to the value propVirtual of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propVirtual E_IETFInterfaces_InterfaceType = 211
	// IETFInterfaces_InterfaceType_propWirelessP2P corresponds to the value propWirelessP2P of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_propWirelessP2P E_IETFInterfaces_InterfaceType = 212
	// IETFInterfaces_InterfaceType_proteon10Mbit corresponds to the value proteon10Mbit of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_proteon10Mbit E_IETFInterfaces_InterfaceType = 213
	// IETFInterfaces_InterfaceType_proteon80Mbit corresponds to the value proteon80Mbit of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_proteon80Mbit E_IETFInterfaces_InterfaceType = 214
	// IETFInterfaces_InterfaceType_ptm corresponds to the value ptm of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ptm E_IETFInterfaces_InterfaceType = 215
	// IETFInterfaces_InterfaceType_q2931 corresponds to the value q2931 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_q2931 E_IETFInterfaces_InterfaceType = 216
	// IETFInterfaces_InterfaceType_qam corresponds to the value qam of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_qam E_IETFInterfaces_InterfaceType = 217
	// IETFInterfaces_InterfaceType_qllc corresponds to the value qllc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_qllc E_IETFInterfaces_InterfaceType = 218
	// IETFInterfaces_InterfaceType_radioMAC corresponds to the value radioMAC of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_radioMAC E_IETFInterfaces_InterfaceType = 219
	// IETFInterfaces_InterfaceType_radsl corresponds to the value radsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_radsl E_IETFInterfaces_InterfaceType = 220
	// IETFInterfaces_InterfaceType_reachDSL corresponds to the value reachDSL of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_reachDSL E_IETFInterfaces_InterfaceType = 221
	// IETFInterfaces_InterfaceType_regular1822 corresponds to the value regular1822 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_regular1822 E_IETFInterfaces_InterfaceType = 222
	// IETFInterfaces_InterfaceType_rfc1483 corresponds to the value rfc1483 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_rfc1483 E_IETFInterfaces_InterfaceType = 223
	// IETFInterfaces_InterfaceType_rfc877x25 corresponds to the value rfc877x25 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_rfc877x25 E_IETFInterfaces_InterfaceType = 224
	// IETFInterfaces_InterfaceType_rpr corresponds to the value rpr of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_rpr E_IETFInterfaces_InterfaceType = 225
	// IETFInterfaces_InterfaceType_rs232 corresponds to the value rs232 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_rs232 E_IETFInterfaces_InterfaceType = 226
	// IETFInterfaces_InterfaceType_rsrb corresponds to the value rsrb of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_rsrb E_IETFInterfaces_InterfaceType = 227
	// IETFInterfaces_InterfaceType_sdci corresponds to the value sdci of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sdci E_IETFInterfaces_InterfaceType = 228
	// IETFInterfaces_InterfaceType_sdlc corresponds to the value sdlc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sdlc E_IETFInterfaces_InterfaceType = 229
	// IETFInterfaces_InterfaceType_sdsl corresponds to the value sdsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sdsl E_IETFInterfaces_InterfaceType = 230
	// IETFInterfaces_InterfaceType_shdsl corresponds to the value shdsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_shdsl E_IETFInterfaces_InterfaceType = 231
	// IETFInterfaces_InterfaceType_sip corresponds to the value sip of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sip E_IETFInterfaces_InterfaceType = 232
	// IETFInterfaces_InterfaceType_sipSig corresponds to the value sipSig of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sipSig E_IETFInterfaces_InterfaceType = 233
	// IETFInterfaces_InterfaceType_sipTg corresponds to the value sipTg of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sipTg E_IETFInterfaces_InterfaceType = 234
	// IETFInterfaces_InterfaceType_sixToFour corresponds to the value sixToFour of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sixToFour E_IETFInterfaces_InterfaceType = 235
	// IETFInterfaces_InterfaceType_slip corresponds to the value slip of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_slip E_IETFInterfaces_InterfaceType = 236
	// IETFInterfaces_InterfaceType_smdsDxi corresponds to the value smdsDxi of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_smdsDxi E_IETFInterfaces_InterfaceType = 237
	// IETFInterfaces_InterfaceType_smdsIcip corresponds to the value smdsIcip of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_smdsIcip E_IETFInterfaces_InterfaceType = 238
	// IETFInterfaces_InterfaceType_softwareLoopback corresponds to the value softwareLoopback of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_softwareLoopback E_IETFInterfaces_InterfaceType = 239
	// IETFInterfaces_InterfaceType_sonet corresponds to the value sonet of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sonet E_IETFInterfaces_InterfaceType = 240
	// IETFInterfaces_InterfaceType_sonetOverheadChannel corresponds to the value sonetOverheadChannel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sonetOverheadChannel E_IETFInterfaces_InterfaceType = 241
	// IETFInterfaces_InterfaceType_sonetPath corresponds to the value sonetPath of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sonetPath E_IETFInterfaces_InterfaceType = 242
	// IETFInterfaces_InterfaceType_sonetVT corresponds to the value sonetVT of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_sonetVT E_IETFInterfaces_InterfaceType = 243
	// IETFInterfaces_InterfaceType_srp corresponds to the value srp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_srp E_IETFInterfaces_InterfaceType = 244
	// IETFInterfaces_InterfaceType_ss7SigLink corresponds to the value ss7SigLink of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ss7SigLink E_IETFInterfaces_InterfaceType = 245
	// IETFInterfaces_InterfaceType_stackToStack corresponds to the value stackToStack of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_stackToStack E_IETFInterfaces_InterfaceType = 246
	// IETFInterfaces_InterfaceType_starLan corresponds to the value starLan of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_starLan E_IETFInterfaces_InterfaceType = 247
	// IETFInterfaces_InterfaceType_tdlc corresponds to the value tdlc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_tdlc E_IETFInterfaces_InterfaceType = 248
	// IETFInterfaces_InterfaceType_teLink corresponds to the value teLink of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_teLink E_IETFInterfaces_InterfaceType = 249
	// IETFInterfaces_InterfaceType_termPad corresponds to the value termPad of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_termPad E_IETFInterfaces_InterfaceType = 250
	// IETFInterfaces_InterfaceType_tr008 corresponds to the value tr008 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_tr008 E_IETFInterfaces_InterfaceType = 251
	// IETFInterfaces_InterfaceType_transpHdlc corresponds to the value transpHdlc of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_transpHdlc E_IETFInterfaces_InterfaceType = 252
	// IETFInterfaces_InterfaceType_tunnel corresponds to the value tunnel of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_tunnel E_IETFInterfaces_InterfaceType = 253
	// IETFInterfaces_InterfaceType_ultra corresponds to the value ultra of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_ultra E_IETFInterfaces_InterfaceType = 254
	// IETFInterfaces_InterfaceType_usb corresponds to the value usb of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_usb E_IETFInterfaces_InterfaceType = 255
	// IETFInterfaces_InterfaceType_v11 corresponds to the value v11 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_v11 E_IETFInterfaces_InterfaceType = 256
	// IETFInterfaces_InterfaceType_v35 corresponds to the value v35 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_v35 E_IETFInterfaces_InterfaceType = 257
	// IETFInterfaces_InterfaceType_v36 corresponds to the value v36 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_v36 E_IETFInterfaces_InterfaceType = 258
	// IETFInterfaces_InterfaceType_v37 corresponds to the value v37 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_v37 E_IETFInterfaces_InterfaceType = 259
	// IETFInterfaces_InterfaceType_vdsl corresponds to the value vdsl of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_vdsl E_IETFInterfaces_InterfaceType = 260
	// IETFInterfaces_InterfaceType_vdsl2 corresponds to the value vdsl2 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_vdsl2 E_IETFInterfaces_InterfaceType = 261
	// IETFInterfaces_InterfaceType_virtualIpAddress corresponds to the value virtualIpAddress of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_virtualIpAddress E_IETFInterfaces_InterfaceType = 262
	// IETFInterfaces_InterfaceType_virtualTg corresponds to the value virtualTg of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_virtualTg E_IETFInterfaces_InterfaceType = 263
	// IETFInterfaces_InterfaceType_vmwareNicTeam corresponds to the value vmwareNicTeam of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_vmwareNicTeam E_IETFInterfaces_InterfaceType = 264
	// IETFInterfaces_InterfaceType_vmwareVirtualNic corresponds to the value vmwareVirtualNic of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_vmwareVirtualNic E_IETFInterfaces_InterfaceType = 265
	// IETFInterfaces_InterfaceType_voiceDID corresponds to the value voiceDID of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceDID E_IETFInterfaces_InterfaceType = 266
	// IETFInterfaces_InterfaceType_voiceEBS corresponds to the value voiceEBS of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceEBS E_IETFInterfaces_InterfaceType = 267
	// IETFInterfaces_InterfaceType_voiceEM corresponds to the value voiceEM of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceEM E_IETFInterfaces_InterfaceType = 268
	// IETFInterfaces_InterfaceType_voiceEMFGD corresponds to the value voiceEMFGD of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceEMFGD E_IETFInterfaces_InterfaceType = 269
	// IETFInterfaces_InterfaceType_voiceEncap corresponds to the value voiceEncap of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceEncap E_IETFInterfaces_InterfaceType = 270
	// IETFInterfaces_InterfaceType_voiceFGDEANA corresponds to the value voiceFGDEANA of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceFGDEANA E_IETFInterfaces_InterfaceType = 271
	// IETFInterfaces_InterfaceType_voiceFGDOS corresponds to the value voiceFGDOS of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceFGDOS E_IETFInterfaces_InterfaceType = 272
	// IETFInterfaces_InterfaceType_voiceFXO corresponds to the value voiceFXO of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceFXO E_IETFInterfaces_InterfaceType = 273
	// IETFInterfaces_InterfaceType_voiceFXS corresponds to the value voiceFXS of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceFXS E_IETFInterfaces_InterfaceType = 274
	// IETFInterfaces_InterfaceType_voiceOverAtm corresponds to the value voiceOverAtm of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceOverAtm E_IETFInterfaces_InterfaceType = 275
	// IETFInterfaces_InterfaceType_voiceOverCable corresponds to the value voiceOverCable of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceOverCable E_IETFInterfaces_InterfaceType = 276
	// IETFInterfaces_InterfaceType_voiceOverFrameRelay corresponds to the value voiceOverFrameRelay of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceOverFrameRelay E_IETFInterfaces_InterfaceType = 277
	// IETFInterfaces_InterfaceType_voiceOverIp corresponds to the value voiceOverIp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_voiceOverIp E_IETFInterfaces_InterfaceType = 278
	// IETFInterfaces_InterfaceType_wwanPP corresponds to the value wwanPP of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_wwanPP E_IETFInterfaces_InterfaceType = 279
	// IETFInterfaces_InterfaceType_wwanPP2 corresponds to the value wwanPP2 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_wwanPP2 E_IETFInterfaces_InterfaceType = 280
	// IETFInterfaces_InterfaceType_x213 corresponds to the value x213 of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_x213 E_IETFInterfaces_InterfaceType = 281
	// IETFInterfaces_InterfaceType_x25huntGroup corresponds to the value x25huntGroup of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_x25huntGroup E_IETFInterfaces_InterfaceType = 282
	// IETFInterfaces_InterfaceType_x25mlp corresponds to the value x25mlp of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_x25mlp E_IETFInterfaces_InterfaceType = 283
	// IETFInterfaces_InterfaceType_x25ple corresponds to the value x25ple of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_x25ple E_IETFInterfaces_InterfaceType = 284
	// IETFInterfaces_InterfaceType_x86Laps corresponds to the value x86Laps of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_x86Laps E_IETFInterfaces_InterfaceType = 285
	// IETFInterfaces_InterfaceType_xboxWireless corresponds to the value xboxWireless of IETFInterfaces_InterfaceType
	IETFInterfaces_InterfaceType_xboxWireless E_IETFInterfaces_InterfaceType = 286
)

// E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE. An additional value named
// OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE int64

// IsYANGGoEnum ensures that OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE.
func (E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE.
func (e E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE")
}

const (
	// OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE_UNSET corresponds to the value UNSET of OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE
	OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE_UNSET E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE = 0
	// OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE_AAA_ACCOUNTING_EVENT_COMMAND corresponds to the value AAA_ACCOUNTING_EVENT_COMMAND of OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE
	OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE_AAA_ACCOUNTING_EVENT_COMMAND E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE = 1
	// OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE_AAA_ACCOUNTING_EVENT_LOGIN corresponds to the value AAA_ACCOUNTING_EVENT_LOGIN of OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE
	OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE_AAA_ACCOUNTING_EVENT_LOGIN E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE = 2
)

// E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE. An additional value named
// OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE int64

// IsYANGGoEnum ensures that OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE.
func (E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE.
func (e E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE")
}

const (
	// OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE_UNSET corresponds to the value UNSET of OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE
	OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE_UNSET E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE = 0
	// OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE_AAA_AUTHORIZATION_EVENT_COMMAND corresponds to the value AAA_AUTHORIZATION_EVENT_COMMAND of OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE
	OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE_AAA_AUTHORIZATION_EVENT_COMMAND E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE = 1
	// OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE_AAA_AUTHORIZATION_EVENT_CONFIG corresponds to the value AAA_AUTHORIZATION_EVENT_CONFIG of OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE
	OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE_AAA_AUTHORIZATION_EVENT_CONFIG E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE = 2
)

// E_OpenconfigAaaTypes_AAA_METHOD_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigAaaTypes_AAA_METHOD_TYPE. An additional value named
// OpenconfigAaaTypes_AAA_METHOD_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAaaTypes_AAA_METHOD_TYPE int64

// IsYANGGoEnum ensures that OpenconfigAaaTypes_AAA_METHOD_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigAaaTypes_AAA_METHOD_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAaaTypes_AAA_METHOD_TYPE.
func (E_OpenconfigAaaTypes_AAA_METHOD_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAaaTypes_AAA_METHOD_TYPE.
func (e E_OpenconfigAaaTypes_AAA_METHOD_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAaaTypes_AAA_METHOD_TYPE")
}

const (
	// OpenconfigAaaTypes_AAA_METHOD_TYPE_UNSET corresponds to the value UNSET of OpenconfigAaaTypes_AAA_METHOD_TYPE
	OpenconfigAaaTypes_AAA_METHOD_TYPE_UNSET E_OpenconfigAaaTypes_AAA_METHOD_TYPE = 0
	// OpenconfigAaaTypes_AAA_METHOD_TYPE_LOCAL corresponds to the value LOCAL of OpenconfigAaaTypes_AAA_METHOD_TYPE
	OpenconfigAaaTypes_AAA_METHOD_TYPE_LOCAL E_OpenconfigAaaTypes_AAA_METHOD_TYPE = 1
	// OpenconfigAaaTypes_AAA_METHOD_TYPE_RADIUS_ALL corresponds to the value RADIUS_ALL of OpenconfigAaaTypes_AAA_METHOD_TYPE
	OpenconfigAaaTypes_AAA_METHOD_TYPE_RADIUS_ALL E_OpenconfigAaaTypes_AAA_METHOD_TYPE = 2
	// OpenconfigAaaTypes_AAA_METHOD_TYPE_TACACS_ALL corresponds to the value TACACS_ALL of OpenconfigAaaTypes_AAA_METHOD_TYPE
	OpenconfigAaaTypes_AAA_METHOD_TYPE_TACACS_ALL E_OpenconfigAaaTypes_AAA_METHOD_TYPE = 3
)

// E_OpenconfigAaaTypes_AAA_SERVER_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigAaaTypes_AAA_SERVER_TYPE. An additional value named
// OpenconfigAaaTypes_AAA_SERVER_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAaaTypes_AAA_SERVER_TYPE int64

// IsYANGGoEnum ensures that OpenconfigAaaTypes_AAA_SERVER_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigAaaTypes_AAA_SERVER_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAaaTypes_AAA_SERVER_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAaaTypes_AAA_SERVER_TYPE.
func (E_OpenconfigAaaTypes_AAA_SERVER_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAaaTypes_AAA_SERVER_TYPE.
func (e E_OpenconfigAaaTypes_AAA_SERVER_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAaaTypes_AAA_SERVER_TYPE")
}

const (
	// OpenconfigAaaTypes_AAA_SERVER_TYPE_UNSET corresponds to the value UNSET of OpenconfigAaaTypes_AAA_SERVER_TYPE
	OpenconfigAaaTypes_AAA_SERVER_TYPE_UNSET E_OpenconfigAaaTypes_AAA_SERVER_TYPE = 0
	// OpenconfigAaaTypes_AAA_SERVER_TYPE_RADIUS corresponds to the value RADIUS of OpenconfigAaaTypes_AAA_SERVER_TYPE
	OpenconfigAaaTypes_AAA_SERVER_TYPE_RADIUS E_OpenconfigAaaTypes_AAA_SERVER_TYPE = 1
	// OpenconfigAaaTypes_AAA_SERVER_TYPE_TACACS corresponds to the value TACACS of OpenconfigAaaTypes_AAA_SERVER_TYPE
	OpenconfigAaaTypes_AAA_SERVER_TYPE_TACACS E_OpenconfigAaaTypes_AAA_SERVER_TYPE = 2
)

// E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES is a derived int64 type which is used to represent
// the enumerated node OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES. An additional value named
// OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES int64

// IsYANGGoEnum ensures that OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES implements the yang.GoEnum
// interface. This ensures that OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES.
func (E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES.
func (e E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES")
}

const (
	// OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES_UNSET corresponds to the value UNSET of OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES
	OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES_UNSET E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES = 0
	// OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES_SYSTEM_ROLE_ADMIN corresponds to the value SYSTEM_ROLE_ADMIN of OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES
	OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES_SYSTEM_ROLE_ADMIN E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES = 1
)

// E_OpenconfigAcl_ACL_COUNTER_CAPABILITY is a derived int64 type which is used to represent
// the enumerated node OpenconfigAcl_ACL_COUNTER_CAPABILITY. An additional value named
// OpenconfigAcl_ACL_COUNTER_CAPABILITY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAcl_ACL_COUNTER_CAPABILITY int64

// IsYANGGoEnum ensures that OpenconfigAcl_ACL_COUNTER_CAPABILITY implements the yang.GoEnum
// interface. This ensures that OpenconfigAcl_ACL_COUNTER_CAPABILITY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAcl_ACL_COUNTER_CAPABILITY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAcl_ACL_COUNTER_CAPABILITY.
func (E_OpenconfigAcl_ACL_COUNTER_CAPABILITY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAcl_ACL_COUNTER_CAPABILITY.
func (e E_OpenconfigAcl_ACL_COUNTER_CAPABILITY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAcl_ACL_COUNTER_CAPABILITY")
}

const (
	// OpenconfigAcl_ACL_COUNTER_CAPABILITY_UNSET corresponds to the value UNSET of OpenconfigAcl_ACL_COUNTER_CAPABILITY
	OpenconfigAcl_ACL_COUNTER_CAPABILITY_UNSET E_OpenconfigAcl_ACL_COUNTER_CAPABILITY = 0
	// OpenconfigAcl_ACL_COUNTER_CAPABILITY_AGGREGATE_ONLY corresponds to the value AGGREGATE_ONLY of OpenconfigAcl_ACL_COUNTER_CAPABILITY
	OpenconfigAcl_ACL_COUNTER_CAPABILITY_AGGREGATE_ONLY E_OpenconfigAcl_ACL_COUNTER_CAPABILITY = 1
	// OpenconfigAcl_ACL_COUNTER_CAPABILITY_INTERFACE_AGGREGATE corresponds to the value INTERFACE_AGGREGATE of OpenconfigAcl_ACL_COUNTER_CAPABILITY
	OpenconfigAcl_ACL_COUNTER_CAPABILITY_INTERFACE_AGGREGATE E_OpenconfigAcl_ACL_COUNTER_CAPABILITY = 2
	// OpenconfigAcl_ACL_COUNTER_CAPABILITY_INTERFACE_ONLY corresponds to the value INTERFACE_ONLY of OpenconfigAcl_ACL_COUNTER_CAPABILITY
	OpenconfigAcl_ACL_COUNTER_CAPABILITY_INTERFACE_ONLY E_OpenconfigAcl_ACL_COUNTER_CAPABILITY = 3
)

// E_OpenconfigAcl_ACL_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigAcl_ACL_TYPE. An additional value named
// OpenconfigAcl_ACL_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAcl_ACL_TYPE int64

// IsYANGGoEnum ensures that OpenconfigAcl_ACL_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigAcl_ACL_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAcl_ACL_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAcl_ACL_TYPE.
func (E_OpenconfigAcl_ACL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigAcl_ACL_TYPE.
func (e E_OpenconfigAcl_ACL_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAcl_ACL_TYPE")
}

const (
	// OpenconfigAcl_ACL_TYPE_UNSET corresponds to the value UNSET of OpenconfigAcl_ACL_TYPE
	OpenconfigAcl_ACL_TYPE_UNSET E_OpenconfigAcl_ACL_TYPE = 0
	// OpenconfigAcl_ACL_TYPE_ACL_IPV4 corresponds to the value ACL_IPV4 of OpenconfigAcl_ACL_TYPE
	OpenconfigAcl_ACL_TYPE_ACL_IPV4 E_OpenconfigAcl_ACL_TYPE = 1
	// OpenconfigAcl_ACL_TYPE_ACL_IPV6 corresponds to the value ACL_IPV6 of OpenconfigAcl_ACL_TYPE
	OpenconfigAcl_ACL_TYPE_ACL_IPV6 E_OpenconfigAcl_ACL_TYPE = 2
	// OpenconfigAcl_ACL_TYPE_ACL_L2 corresponds to the value ACL_L2 of OpenconfigAcl_ACL_TYPE
	OpenconfigAcl_ACL_TYPE_ACL_L2 E_OpenconfigAcl_ACL_TYPE = 3
	// OpenconfigAcl_ACL_TYPE_ACL_MIXED corresponds to the value ACL_MIXED of OpenconfigAcl_ACL_TYPE
	OpenconfigAcl_ACL_TYPE_ACL_MIXED E_OpenconfigAcl_ACL_TYPE = 4
	// OpenconfigAcl_ACL_TYPE_ACL_MPLS corresponds to the value ACL_MPLS of OpenconfigAcl_ACL_TYPE
	OpenconfigAcl_ACL_TYPE_ACL_MPLS E_OpenconfigAcl_ACL_TYPE = 5
)

// E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail is a derived int64 type which is used to represent
// the enumerated node OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail. An additional value named
// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail int64

// IsYANGGoEnum ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail implements the yang.GoEnum
// interface. This ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail.
func (E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail.
func (e E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail")
}

const (
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_UNSET corresponds to the value UNSET of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_UNSET E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail = 0
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_TCP_INITIAL corresponds to the value TCP_INITIAL of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_TCP_INITIAL E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail = 1
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_TCP_ESTABLISHED corresponds to the value TCP_ESTABLISHED of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_TCP_ESTABLISHED E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail = 2
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_FRAGMENT corresponds to the value FRAGMENT of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail_FRAGMENT E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail = 3
)

// E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode. An additional value named
// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode int64

// IsYANGGoEnum ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode implements the yang.GoEnum
// interface. This ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode.
func (E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode.
func (e E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode")
}

const (
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode_UNSET corresponds to the value UNSET of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode_UNSET E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode = 0
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode_EXPLICIT corresponds to the value EXPLICIT of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode_EXPLICIT E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode = 1
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode_BUILTIN corresponds to the value BUILTIN of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode_BUILTIN E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode = 2
)

// E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode. An additional value named
// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode int64

// IsYANGGoEnum ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode implements the yang.GoEnum
// interface. This ensures that OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode.
func (E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode.
func (e E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode")
}

const (
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode_UNSET corresponds to the value UNSET of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode_UNSET E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode = 0
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode_ANY corresponds to the value ANY of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode_ANY E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode = 1
	// OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode_ALL corresponds to the value ALL of OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode
	OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode_ALL E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode = 2
)

// E_OpenconfigAcl_FORWARDING_ACTION is a derived int64 type which is used to represent
// the enumerated node OpenconfigAcl_FORWARDING_ACTION. An additional value named
// OpenconfigAcl_FORWARDING_ACTION_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAcl_FORWARDING_ACTION int64

// IsYANGGoEnum ensures that OpenconfigAcl_FORWARDING_ACTION implements the yang.GoEnum
// interface. This ensures that OpenconfigAcl_FORWARDING_ACTION can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAcl_FORWARDING_ACTION) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAcl_FORWARDING_ACTION.
func (E_OpenconfigAcl_FORWARDING_ACTION) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAcl_FORWARDING_ACTION.
func (e E_OpenconfigAcl_FORWARDING_ACTION) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAcl_FORWARDING_ACTION")
}

const (
	// OpenconfigAcl_FORWARDING_ACTION_UNSET corresponds to the value UNSET of OpenconfigAcl_FORWARDING_ACTION
	OpenconfigAcl_FORWARDING_ACTION_UNSET E_OpenconfigAcl_FORWARDING_ACTION = 0
	// OpenconfigAcl_FORWARDING_ACTION_ACCEPT corresponds to the value ACCEPT of OpenconfigAcl_FORWARDING_ACTION
	OpenconfigAcl_FORWARDING_ACTION_ACCEPT E_OpenconfigAcl_FORWARDING_ACTION = 1
	// OpenconfigAcl_FORWARDING_ACTION_DROP corresponds to the value DROP of OpenconfigAcl_FORWARDING_ACTION
	OpenconfigAcl_FORWARDING_ACTION_DROP E_OpenconfigAcl_FORWARDING_ACTION = 2
	// OpenconfigAcl_FORWARDING_ACTION_REJECT corresponds to the value REJECT of OpenconfigAcl_FORWARDING_ACTION
	OpenconfigAcl_FORWARDING_ACTION_REJECT E_OpenconfigAcl_FORWARDING_ACTION = 3
)

// E_OpenconfigAcl_LOG_ACTION is a derived int64 type which is used to represent
// the enumerated node OpenconfigAcl_LOG_ACTION. An additional value named
// OpenconfigAcl_LOG_ACTION_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAcl_LOG_ACTION int64

// IsYANGGoEnum ensures that OpenconfigAcl_LOG_ACTION implements the yang.GoEnum
// interface. This ensures that OpenconfigAcl_LOG_ACTION can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAcl_LOG_ACTION) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAcl_LOG_ACTION.
func (E_OpenconfigAcl_LOG_ACTION) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigAcl_LOG_ACTION.
func (e E_OpenconfigAcl_LOG_ACTION) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAcl_LOG_ACTION")
}

const (
	// OpenconfigAcl_LOG_ACTION_UNSET corresponds to the value UNSET of OpenconfigAcl_LOG_ACTION
	OpenconfigAcl_LOG_ACTION_UNSET E_OpenconfigAcl_LOG_ACTION = 0
	// OpenconfigAcl_LOG_ACTION_LOG_NONE corresponds to the value LOG_NONE of OpenconfigAcl_LOG_ACTION
	OpenconfigAcl_LOG_ACTION_LOG_NONE E_OpenconfigAcl_LOG_ACTION = 1
	// OpenconfigAcl_LOG_ACTION_LOG_SYSLOG corresponds to the value LOG_SYSLOG of OpenconfigAcl_LOG_ACTION
	OpenconfigAcl_LOG_ACTION_LOG_SYSLOG E_OpenconfigAcl_LOG_ACTION = 2
)

// E_OpenconfigAftTypes_EncapsulationHeaderType is a derived int64 type which is used to represent
// the enumerated node OpenconfigAftTypes_EncapsulationHeaderType. An additional value named
// OpenconfigAftTypes_EncapsulationHeaderType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAftTypes_EncapsulationHeaderType int64

// IsYANGGoEnum ensures that OpenconfigAftTypes_EncapsulationHeaderType implements the yang.GoEnum
// interface. This ensures that OpenconfigAftTypes_EncapsulationHeaderType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAftTypes_EncapsulationHeaderType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAftTypes_EncapsulationHeaderType.
func (E_OpenconfigAftTypes_EncapsulationHeaderType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAftTypes_EncapsulationHeaderType.
func (e E_OpenconfigAftTypes_EncapsulationHeaderType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAftTypes_EncapsulationHeaderType")
}

const (
	// OpenconfigAftTypes_EncapsulationHeaderType_UNSET corresponds to the value UNSET of OpenconfigAftTypes_EncapsulationHeaderType
	OpenconfigAftTypes_EncapsulationHeaderType_UNSET E_OpenconfigAftTypes_EncapsulationHeaderType = 0
	// OpenconfigAftTypes_EncapsulationHeaderType_GRE corresponds to the value GRE of OpenconfigAftTypes_EncapsulationHeaderType
	OpenconfigAftTypes_EncapsulationHeaderType_GRE E_OpenconfigAftTypes_EncapsulationHeaderType = 1
	// OpenconfigAftTypes_EncapsulationHeaderType_IPV4 corresponds to the value IPV4 of OpenconfigAftTypes_EncapsulationHeaderType
	OpenconfigAftTypes_EncapsulationHeaderType_IPV4 E_OpenconfigAftTypes_EncapsulationHeaderType = 2
	// OpenconfigAftTypes_EncapsulationHeaderType_IPV6 corresponds to the value IPV6 of OpenconfigAftTypes_EncapsulationHeaderType
	OpenconfigAftTypes_EncapsulationHeaderType_IPV6 E_OpenconfigAftTypes_EncapsulationHeaderType = 3
	// OpenconfigAftTypes_EncapsulationHeaderType_MPLS corresponds to the value MPLS of OpenconfigAftTypes_EncapsulationHeaderType
	OpenconfigAftTypes_EncapsulationHeaderType_MPLS E_OpenconfigAftTypes_EncapsulationHeaderType = 4
	// OpenconfigAftTypes_EncapsulationHeaderType_VXLAN corresponds to the value VXLAN of OpenconfigAftTypes_EncapsulationHeaderType
	OpenconfigAftTypes_EncapsulationHeaderType_VXLAN E_OpenconfigAftTypes_EncapsulationHeaderType = 5
)

// E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY is a derived int64 type which is used to represent
// the enumerated node OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY. An additional value named
// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY int64

// IsYANGGoEnum ensures that OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY implements the yang.GoEnum
// interface. This ensures that OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY.
func (E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY.
func (e E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY")
}

const (
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNSET corresponds to the value UNSET of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNSET E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 0
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_CRITICAL corresponds to the value CRITICAL of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_CRITICAL E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 1
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MAJOR corresponds to the value MAJOR of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MAJOR E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 2
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MINOR corresponds to the value MINOR of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MINOR E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 3
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNKNOWN corresponds to the value UNKNOWN of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNKNOWN E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 4
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_WARNING corresponds to the value WARNING of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_WARNING E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 5
)

// E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID is a derived int64 type which is used to represent
// the enumerated node OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID. An additional value named
// OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID int64

// IsYANGGoEnum ensures that OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID implements the yang.GoEnum
// interface. This ensures that OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID.
func (E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID.
func (e E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID")
}

const (
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_UNSET corresponds to the value UNSET of OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_UNSET E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID = 0
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_AIS corresponds to the value AIS of OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_AIS E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID = 1
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_EQPT corresponds to the value EQPT of OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_EQPT E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID = 2
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_LOS corresponds to the value LOS of OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_LOS E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID = 3
	// OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_OTS corresponds to the value OTS of OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID
	OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID_OTS E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID = 4
)

// E_OpenconfigBfd_BfdDiagnosticCode is a derived int64 type which is used to represent
// the enumerated node OpenconfigBfd_BfdDiagnosticCode. An additional value named
// OpenconfigBfd_BfdDiagnosticCode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBfd_BfdDiagnosticCode int64

// IsYANGGoEnum ensures that OpenconfigBfd_BfdDiagnosticCode implements the yang.GoEnum
// interface. This ensures that OpenconfigBfd_BfdDiagnosticCode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBfd_BfdDiagnosticCode) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBfd_BfdDiagnosticCode.
func (E_OpenconfigBfd_BfdDiagnosticCode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBfd_BfdDiagnosticCode.
func (e E_OpenconfigBfd_BfdDiagnosticCode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBfd_BfdDiagnosticCode")
}

const (
	// OpenconfigBfd_BfdDiagnosticCode_UNSET corresponds to the value UNSET of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_UNSET E_OpenconfigBfd_BfdDiagnosticCode = 0
	// OpenconfigBfd_BfdDiagnosticCode_NO_DIAGNOSTIC corresponds to the value NO_DIAGNOSTIC of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_NO_DIAGNOSTIC E_OpenconfigBfd_BfdDiagnosticCode = 1
	// OpenconfigBfd_BfdDiagnosticCode_DETECTION_TIMEOUT corresponds to the value DETECTION_TIMEOUT of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_DETECTION_TIMEOUT E_OpenconfigBfd_BfdDiagnosticCode = 2
	// OpenconfigBfd_BfdDiagnosticCode_ECHO_FAILED corresponds to the value ECHO_FAILED of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_ECHO_FAILED E_OpenconfigBfd_BfdDiagnosticCode = 3
	// OpenconfigBfd_BfdDiagnosticCode_FORWARDING_RESET corresponds to the value FORWARDING_RESET of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_FORWARDING_RESET E_OpenconfigBfd_BfdDiagnosticCode = 4
	// OpenconfigBfd_BfdDiagnosticCode_PATH_DOWN corresponds to the value PATH_DOWN of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_PATH_DOWN E_OpenconfigBfd_BfdDiagnosticCode = 5
	// OpenconfigBfd_BfdDiagnosticCode_CONCATENATED_PATH_DOWN corresponds to the value CONCATENATED_PATH_DOWN of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_CONCATENATED_PATH_DOWN E_OpenconfigBfd_BfdDiagnosticCode = 6
	// OpenconfigBfd_BfdDiagnosticCode_ADMIN_DOWN corresponds to the value ADMIN_DOWN of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_ADMIN_DOWN E_OpenconfigBfd_BfdDiagnosticCode = 7
	// OpenconfigBfd_BfdDiagnosticCode_REVERSE_CONCATENATED_PATH_DOWN corresponds to the value REVERSE_CONCATENATED_PATH_DOWN of OpenconfigBfd_BfdDiagnosticCode
	OpenconfigBfd_BfdDiagnosticCode_REVERSE_CONCATENATED_PATH_DOWN E_OpenconfigBfd_BfdDiagnosticCode = 8
)

// E_OpenconfigBfd_BfdSessionState is a derived int64 type which is used to represent
// the enumerated node OpenconfigBfd_BfdSessionState. An additional value named
// OpenconfigBfd_BfdSessionState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBfd_BfdSessionState int64

// IsYANGGoEnum ensures that OpenconfigBfd_BfdSessionState implements the yang.GoEnum
// interface. This ensures that OpenconfigBfd_BfdSessionState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBfd_BfdSessionState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBfd_BfdSessionState.
func (E_OpenconfigBfd_BfdSessionState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBfd_BfdSessionState.
func (e E_OpenconfigBfd_BfdSessionState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBfd_BfdSessionState")
}

const (
	// OpenconfigBfd_BfdSessionState_UNSET corresponds to the value UNSET of OpenconfigBfd_BfdSessionState
	OpenconfigBfd_BfdSessionState_UNSET E_OpenconfigBfd_BfdSessionState = 0
	// OpenconfigBfd_BfdSessionState_UP corresponds to the value UP of OpenconfigBfd_BfdSessionState
	OpenconfigBfd_BfdSessionState_UP E_OpenconfigBfd_BfdSessionState = 1
	// OpenconfigBfd_BfdSessionState_DOWN corresponds to the value DOWN of OpenconfigBfd_BfdSessionState
	OpenconfigBfd_BfdSessionState_DOWN E_OpenconfigBfd_BfdSessionState = 2
	// OpenconfigBfd_BfdSessionState_ADMIN_DOWN corresponds to the value ADMIN_DOWN of OpenconfigBfd_BfdSessionState
	OpenconfigBfd_BfdSessionState_ADMIN_DOWN E_OpenconfigBfd_BfdSessionState = 3
	// OpenconfigBfd_BfdSessionState_INIT corresponds to the value INIT of OpenconfigBfd_BfdSessionState
	OpenconfigBfd_BfdSessionState_INIT E_OpenconfigBfd_BfdSessionState = 4
)

// E_OpenconfigBgpTypes_AFI_SAFI_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_AFI_SAFI_TYPE. An additional value named
// OpenconfigBgpTypes_AFI_SAFI_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_AFI_SAFI_TYPE int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_AFI_SAFI_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_AFI_SAFI_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_AFI_SAFI_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_AFI_SAFI_TYPE.
func (E_OpenconfigBgpTypes_AFI_SAFI_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_AFI_SAFI_TYPE.
func (e E_OpenconfigBgpTypes_AFI_SAFI_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_AFI_SAFI_TYPE")
}

const (
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_UNSET E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 0
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV4_FLOWSPEC corresponds to the value IPV4_FLOWSPEC of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV4_FLOWSPEC E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 1
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV4_LABELED_UNICAST corresponds to the value IPV4_LABELED_UNICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV4_LABELED_UNICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 2
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST corresponds to the value IPV4_UNICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 3
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV6_LABELED_UNICAST corresponds to the value IPV6_LABELED_UNICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV6_LABELED_UNICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 4
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST corresponds to the value IPV6_UNICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 5
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_L2VPN_EVPN corresponds to the value L2VPN_EVPN of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_L2VPN_EVPN E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 6
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_L2VPN_VPLS corresponds to the value L2VPN_VPLS of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_L2VPN_VPLS E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 7
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV4_MULTICAST corresponds to the value L3VPN_IPV4_MULTICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV4_MULTICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 8
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV4_UNICAST corresponds to the value L3VPN_IPV4_UNICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV4_UNICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 9
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV6_MULTICAST corresponds to the value L3VPN_IPV6_MULTICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV6_MULTICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 10
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV6_UNICAST corresponds to the value L3VPN_IPV6_UNICAST of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_L3VPN_IPV6_UNICAST E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 11
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_LINKSTATE corresponds to the value LINKSTATE of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_LINKSTATE E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 12
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_LINKSTATE_SPF corresponds to the value LINKSTATE_SPF of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_LINKSTATE_SPF E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 13
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_LINKSTATE_VPN corresponds to the value LINKSTATE_VPN of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_LINKSTATE_VPN E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 14
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_SRTE_POLICY_IPV4 corresponds to the value SRTE_POLICY_IPV4 of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_SRTE_POLICY_IPV4 E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 15
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_SRTE_POLICY_IPV6 corresponds to the value SRTE_POLICY_IPV6 of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_SRTE_POLICY_IPV6 E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 16
	// OpenconfigBgpTypes_AFI_SAFI_TYPE_VPNV4_FLOWSPEC corresponds to the value VPNV4_FLOWSPEC of OpenconfigBgpTypes_AFI_SAFI_TYPE
	OpenconfigBgpTypes_AFI_SAFI_TYPE_VPNV4_FLOWSPEC E_OpenconfigBgpTypes_AFI_SAFI_TYPE = 17
)

// E_OpenconfigBgpTypes_AsPathSegmentType is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_AsPathSegmentType. An additional value named
// OpenconfigBgpTypes_AsPathSegmentType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_AsPathSegmentType int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_AsPathSegmentType implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_AsPathSegmentType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_AsPathSegmentType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_AsPathSegmentType.
func (E_OpenconfigBgpTypes_AsPathSegmentType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_AsPathSegmentType.
func (e E_OpenconfigBgpTypes_AsPathSegmentType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_AsPathSegmentType")
}

const (
	// OpenconfigBgpTypes_AsPathSegmentType_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_AsPathSegmentType
	OpenconfigBgpTypes_AsPathSegmentType_UNSET E_OpenconfigBgpTypes_AsPathSegmentType = 0
	// OpenconfigBgpTypes_AsPathSegmentType_AS_SEQ corresponds to the value AS_SEQ of OpenconfigBgpTypes_AsPathSegmentType
	OpenconfigBgpTypes_AsPathSegmentType_AS_SEQ E_OpenconfigBgpTypes_AsPathSegmentType = 1
	// OpenconfigBgpTypes_AsPathSegmentType_AS_SET corresponds to the value AS_SET of OpenconfigBgpTypes_AsPathSegmentType
	OpenconfigBgpTypes_AsPathSegmentType_AS_SET E_OpenconfigBgpTypes_AsPathSegmentType = 2
	// OpenconfigBgpTypes_AsPathSegmentType_AS_CONFED_SEQUENCE corresponds to the value AS_CONFED_SEQUENCE of OpenconfigBgpTypes_AsPathSegmentType
	OpenconfigBgpTypes_AsPathSegmentType_AS_CONFED_SEQUENCE E_OpenconfigBgpTypes_AsPathSegmentType = 3
	// OpenconfigBgpTypes_AsPathSegmentType_AS_CONFED_SET corresponds to the value AS_CONFED_SET of OpenconfigBgpTypes_AsPathSegmentType
	OpenconfigBgpTypes_AsPathSegmentType_AS_CONFED_SET E_OpenconfigBgpTypes_AsPathSegmentType = 4
)

// E_OpenconfigBgpTypes_BGP_CAPABILITY is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_BGP_CAPABILITY. An additional value named
// OpenconfigBgpTypes_BGP_CAPABILITY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_BGP_CAPABILITY int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_BGP_CAPABILITY implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_BGP_CAPABILITY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_BGP_CAPABILITY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_BGP_CAPABILITY.
func (E_OpenconfigBgpTypes_BGP_CAPABILITY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_BGP_CAPABILITY.
func (e E_OpenconfigBgpTypes_BGP_CAPABILITY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_BGP_CAPABILITY")
}

const (
	// OpenconfigBgpTypes_BGP_CAPABILITY_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_BGP_CAPABILITY
	OpenconfigBgpTypes_BGP_CAPABILITY_UNSET E_OpenconfigBgpTypes_BGP_CAPABILITY = 0
	// OpenconfigBgpTypes_BGP_CAPABILITY_ADD_PATHS corresponds to the value ADD_PATHS of OpenconfigBgpTypes_BGP_CAPABILITY
	OpenconfigBgpTypes_BGP_CAPABILITY_ADD_PATHS E_OpenconfigBgpTypes_BGP_CAPABILITY = 1
	// OpenconfigBgpTypes_BGP_CAPABILITY_ASN32 corresponds to the value ASN32 of OpenconfigBgpTypes_BGP_CAPABILITY
	OpenconfigBgpTypes_BGP_CAPABILITY_ASN32 E_OpenconfigBgpTypes_BGP_CAPABILITY = 2
	// OpenconfigBgpTypes_BGP_CAPABILITY_EXTENDED_NEXTHOP_ENCODING corresponds to the value EXTENDED_NEXTHOP_ENCODING of OpenconfigBgpTypes_BGP_CAPABILITY
	OpenconfigBgpTypes_BGP_CAPABILITY_EXTENDED_NEXTHOP_ENCODING E_OpenconfigBgpTypes_BGP_CAPABILITY = 3
	// OpenconfigBgpTypes_BGP_CAPABILITY_GRACEFUL_RESTART corresponds to the value GRACEFUL_RESTART of OpenconfigBgpTypes_BGP_CAPABILITY
	OpenconfigBgpTypes_BGP_CAPABILITY_GRACEFUL_RESTART E_OpenconfigBgpTypes_BGP_CAPABILITY = 4
	// OpenconfigBgpTypes_BGP_CAPABILITY_MPBGP corresponds to the value MPBGP of OpenconfigBgpTypes_BGP_CAPABILITY
	OpenconfigBgpTypes_BGP_CAPABILITY_MPBGP E_OpenconfigBgpTypes_BGP_CAPABILITY = 5
	// OpenconfigBgpTypes_BGP_CAPABILITY_ROUTE_REFRESH corresponds to the value ROUTE_REFRESH of OpenconfigBgpTypes_BGP_CAPABILITY
	OpenconfigBgpTypes_BGP_CAPABILITY_ROUTE_REFRESH E_OpenconfigBgpTypes_BGP_CAPABILITY = 6
)

// E_OpenconfigBgpTypes_BGP_ERROR_CODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_BGP_ERROR_CODE. An additional value named
// OpenconfigBgpTypes_BGP_ERROR_CODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_BGP_ERROR_CODE int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_BGP_ERROR_CODE implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_BGP_ERROR_CODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_BGP_ERROR_CODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_BGP_ERROR_CODE.
func (E_OpenconfigBgpTypes_BGP_ERROR_CODE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_BGP_ERROR_CODE.
func (e E_OpenconfigBgpTypes_BGP_ERROR_CODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_BGP_ERROR_CODE")
}

const (
	// OpenconfigBgpTypes_BGP_ERROR_CODE_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_UNSET E_OpenconfigBgpTypes_BGP_ERROR_CODE = 0
	// OpenconfigBgpTypes_BGP_ERROR_CODE_CEASE corresponds to the value CEASE of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_CEASE E_OpenconfigBgpTypes_BGP_ERROR_CODE = 1
	// OpenconfigBgpTypes_BGP_ERROR_CODE_FINITE_STATE_MACHINE_ERROR corresponds to the value FINITE_STATE_MACHINE_ERROR of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_FINITE_STATE_MACHINE_ERROR E_OpenconfigBgpTypes_BGP_ERROR_CODE = 2
	// OpenconfigBgpTypes_BGP_ERROR_CODE_HOLD_TIMER_EXPIRED corresponds to the value HOLD_TIMER_EXPIRED of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_HOLD_TIMER_EXPIRED E_OpenconfigBgpTypes_BGP_ERROR_CODE = 3
	// OpenconfigBgpTypes_BGP_ERROR_CODE_MESSAGE_HEADER_ERROR corresponds to the value MESSAGE_HEADER_ERROR of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_MESSAGE_HEADER_ERROR E_OpenconfigBgpTypes_BGP_ERROR_CODE = 4
	// OpenconfigBgpTypes_BGP_ERROR_CODE_OPEN_MESSAGE_ERROR corresponds to the value OPEN_MESSAGE_ERROR of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_OPEN_MESSAGE_ERROR E_OpenconfigBgpTypes_BGP_ERROR_CODE = 5
	// OpenconfigBgpTypes_BGP_ERROR_CODE_ROUTE_REFRESH_MESSAGE_ERROR corresponds to the value ROUTE_REFRESH_MESSAGE_ERROR of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_ROUTE_REFRESH_MESSAGE_ERROR E_OpenconfigBgpTypes_BGP_ERROR_CODE = 6
	// OpenconfigBgpTypes_BGP_ERROR_CODE_UPDATE_MESSAGE_ERROR corresponds to the value UPDATE_MESSAGE_ERROR of OpenconfigBgpTypes_BGP_ERROR_CODE
	OpenconfigBgpTypes_BGP_ERROR_CODE_UPDATE_MESSAGE_ERROR E_OpenconfigBgpTypes_BGP_ERROR_CODE = 7
)

// E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_BGP_ERROR_SUBCODE. An additional value named
// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_BGP_ERROR_SUBCODE implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_BGP_ERROR_SUBCODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_BGP_ERROR_SUBCODE.
func (E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE.
func (e E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE")
}

const (
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSET E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 0
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ADMINISTRATIVE_RESET corresponds to the value ADMINISTRATIVE_RESET of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ADMINISTRATIVE_RESET E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 1
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ADMINISTRATIVE_SHUTDOWN corresponds to the value ADMINISTRATIVE_SHUTDOWN of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ADMINISTRATIVE_SHUTDOWN E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 2
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ATTRIBUTE_FLAGS_ERROR corresponds to the value ATTRIBUTE_FLAGS_ERROR of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ATTRIBUTE_FLAGS_ERROR E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 3
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ATTRIBUTE_LENGTH_ERROR corresponds to the value ATTRIBUTE_LENGTH_ERROR of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ATTRIBUTE_LENGTH_ERROR E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 4
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_BGP_IDENTIFIER corresponds to the value BAD_BGP_IDENTIFIER of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_BGP_IDENTIFIER E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 5
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_MESSAGE_LENGTH corresponds to the value BAD_MESSAGE_LENGTH of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_MESSAGE_LENGTH E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 6
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_MESSAGE_TYPE corresponds to the value BAD_MESSAGE_TYPE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_MESSAGE_TYPE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 7
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_PEER_AS corresponds to the value BAD_PEER_AS of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_BAD_PEER_AS E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 8
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CEASE_SUBCODE corresponds to the value CEASE_SUBCODE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CEASE_SUBCODE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 9
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CONNECTION_NOT_SYNCHRONIZED corresponds to the value CONNECTION_NOT_SYNCHRONIZED of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CONNECTION_NOT_SYNCHRONIZED E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 10
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CONNECTION_REJECTED corresponds to the value CONNECTION_REJECTED of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CONNECTION_REJECTED E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 11
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CONN_COLLISION_RESOLUTION corresponds to the value CONN_COLLISION_RESOLUTION of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_CONN_COLLISION_RESOLUTION E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 12
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_FINITE_STATE_MACHINE_SUBCODE corresponds to the value FINITE_STATE_MACHINE_SUBCODE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_FINITE_STATE_MACHINE_SUBCODE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 13
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_MESSAGE_LENGTH corresponds to the value INVALID_MESSAGE_LENGTH of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_MESSAGE_LENGTH E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 14
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_NETWORK_FIELD corresponds to the value INVALID_NETWORK_FIELD of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_NETWORK_FIELD E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 15
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_NEXT_HOP_ATTRIBUTE corresponds to the value INVALID_NEXT_HOP_ATTRIBUTE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_NEXT_HOP_ATTRIBUTE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 16
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_ORIGIN_ATTRIBUTE corresponds to the value INVALID_ORIGIN_ATTRIBUTE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_INVALID_ORIGIN_ATTRIBUTE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 17
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MALFORMED_AS_PATH corresponds to the value MALFORMED_AS_PATH of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MALFORMED_AS_PATH E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 18
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MALFORMED_ATTRIBUTE_LIST corresponds to the value MALFORMED_ATTRIBUTE_LIST of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MALFORMED_ATTRIBUTE_LIST E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 19
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MAX_NUM_PREFIXES_REACHED corresponds to the value MAX_NUM_PREFIXES_REACHED of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MAX_NUM_PREFIXES_REACHED E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 20
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MESSAGE_HEADER_SUBCODE corresponds to the value MESSAGE_HEADER_SUBCODE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MESSAGE_HEADER_SUBCODE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 21
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MISSING_WELL_KNOWN_ATTRIBUTE corresponds to the value MISSING_WELL_KNOWN_ATTRIBUTE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_MISSING_WELL_KNOWN_ATTRIBUTE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 22
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OPEN_MESSAGE_SUBCODE corresponds to the value OPEN_MESSAGE_SUBCODE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OPEN_MESSAGE_SUBCODE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 23
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OPTIONAL_ATTRIBUTE_ERROR corresponds to the value OPTIONAL_ATTRIBUTE_ERROR of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OPTIONAL_ATTRIBUTE_ERROR E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 24
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OTHER_CONFIG_CHANGE corresponds to the value OTHER_CONFIG_CHANGE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OTHER_CONFIG_CHANGE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 25
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OUT_OF_RESOURCES corresponds to the value OUT_OF_RESOURCES of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_OUT_OF_RESOURCES E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 26
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_PEER_DE_CONFIGURED corresponds to the value PEER_DE_CONFIGURED of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_PEER_DE_CONFIGURED E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 27
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_RECEIVE_UNEXPECTED_MESSAGE_ESTABLISHED corresponds to the value RECEIVE_UNEXPECTED_MESSAGE_ESTABLISHED of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_RECEIVE_UNEXPECTED_MESSAGE_ESTABLISHED E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 28
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_RECEIVE_UNEXPECTED_MESSAGE_OPENCONFIRM corresponds to the value RECEIVE_UNEXPECTED_MESSAGE_OPENCONFIRM of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_RECEIVE_UNEXPECTED_MESSAGE_OPENCONFIRM E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 29
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_RECEIVE_UNEXPECTED_MESSAGE_OPENSENT corresponds to the value RECEIVE_UNEXPECTED_MESSAGE_OPENSENT of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_RECEIVE_UNEXPECTED_MESSAGE_OPENSENT E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 30
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ROUTE_REFRESH_SUBCODE corresponds to the value ROUTE_REFRESH_SUBCODE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_ROUTE_REFRESH_SUBCODE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 31
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNACCEPTABLE_HOLD_TIME corresponds to the value UNACCEPTABLE_HOLD_TIME of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNACCEPTABLE_HOLD_TIME E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 32
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE corresponds to the value UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 33
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSPECIFIC corresponds to the value UNSPECIFIC of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSPECIFIC E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 34
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSUPPORTED_CAPABILITY corresponds to the value UNSUPPORTED_CAPABILITY of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSUPPORTED_CAPABILITY E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 35
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSUPPORTED_OPTIONAL_PARAMETER corresponds to the value UNSUPPORTED_OPTIONAL_PARAMETER of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSUPPORTED_OPTIONAL_PARAMETER E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 36
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSUPPORTED_VERSION_NUMBER corresponds to the value UNSUPPORTED_VERSION_NUMBER of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UNSUPPORTED_VERSION_NUMBER E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 37
	// OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UPDATE_MESSAGE_SUBCODE corresponds to the value UPDATE_MESSAGE_SUBCODE of OpenconfigBgpTypes_BGP_ERROR_SUBCODE
	OpenconfigBgpTypes_BGP_ERROR_SUBCODE_UPDATE_MESSAGE_SUBCODE E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE = 38
)

// E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY. An additional value named
// OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY.
func (E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY.
func (e E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY")
}

const (
	// OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY
	OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_UNSET E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY = 0
	// OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_GRACEFUL_SHUTDOWN corresponds to the value GRACEFUL_SHUTDOWN of OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY
	OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_GRACEFUL_SHUTDOWN E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY = 1
	// OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NOPEER corresponds to the value NOPEER of OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY
	OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NOPEER E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY = 2
	// OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NO_ADVERTISE corresponds to the value NO_ADVERTISE of OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY
	OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NO_ADVERTISE E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY = 3
	// OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT corresponds to the value NO_EXPORT of OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY
	OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY = 4
	// OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT_SUBCONFED corresponds to the value NO_EXPORT_SUBCONFED of OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY
	OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT_SUBCONFED E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY = 5
)

// E_OpenconfigBgpTypes_BgpOriginAttrType is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_BgpOriginAttrType. An additional value named
// OpenconfigBgpTypes_BgpOriginAttrType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_BgpOriginAttrType int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_BgpOriginAttrType implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_BgpOriginAttrType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_BgpOriginAttrType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_BgpOriginAttrType.
func (E_OpenconfigBgpTypes_BgpOriginAttrType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_BgpOriginAttrType.
func (e E_OpenconfigBgpTypes_BgpOriginAttrType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_BgpOriginAttrType")
}

const (
	// OpenconfigBgpTypes_BgpOriginAttrType_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_BgpOriginAttrType
	OpenconfigBgpTypes_BgpOriginAttrType_UNSET E_OpenconfigBgpTypes_BgpOriginAttrType = 0
	// OpenconfigBgpTypes_BgpOriginAttrType_IGP corresponds to the value IGP of OpenconfigBgpTypes_BgpOriginAttrType
	OpenconfigBgpTypes_BgpOriginAttrType_IGP E_OpenconfigBgpTypes_BgpOriginAttrType = 1
	// OpenconfigBgpTypes_BgpOriginAttrType_EGP corresponds to the value EGP of OpenconfigBgpTypes_BgpOriginAttrType
	OpenconfigBgpTypes_BgpOriginAttrType_EGP E_OpenconfigBgpTypes_BgpOriginAttrType = 2
	// OpenconfigBgpTypes_BgpOriginAttrType_INCOMPLETE corresponds to the value INCOMPLETE of OpenconfigBgpTypes_BgpOriginAttrType
	OpenconfigBgpTypes_BgpOriginAttrType_INCOMPLETE E_OpenconfigBgpTypes_BgpOriginAttrType = 3
)

// E_OpenconfigBgpTypes_CommunityType is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_CommunityType. An additional value named
// OpenconfigBgpTypes_CommunityType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_CommunityType int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_CommunityType implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_CommunityType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_CommunityType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_CommunityType.
func (E_OpenconfigBgpTypes_CommunityType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_CommunityType.
func (e E_OpenconfigBgpTypes_CommunityType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_CommunityType")
}

const (
	// OpenconfigBgpTypes_CommunityType_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_CommunityType
	OpenconfigBgpTypes_CommunityType_UNSET E_OpenconfigBgpTypes_CommunityType = 0
	// OpenconfigBgpTypes_CommunityType_STANDARD corresponds to the value STANDARD of OpenconfigBgpTypes_CommunityType
	OpenconfigBgpTypes_CommunityType_STANDARD E_OpenconfigBgpTypes_CommunityType = 1
	// OpenconfigBgpTypes_CommunityType_EXTENDED corresponds to the value EXTENDED of OpenconfigBgpTypes_CommunityType
	OpenconfigBgpTypes_CommunityType_EXTENDED E_OpenconfigBgpTypes_CommunityType = 2
	// OpenconfigBgpTypes_CommunityType_LARGE corresponds to the value LARGE of OpenconfigBgpTypes_CommunityType
	OpenconfigBgpTypes_CommunityType_LARGE E_OpenconfigBgpTypes_CommunityType = 3
	// OpenconfigBgpTypes_CommunityType_BOTH corresponds to the value BOTH of OpenconfigBgpTypes_CommunityType
	OpenconfigBgpTypes_CommunityType_BOTH E_OpenconfigBgpTypes_CommunityType = 4
	// OpenconfigBgpTypes_CommunityType_NONE corresponds to the value NONE of OpenconfigBgpTypes_CommunityType
	OpenconfigBgpTypes_CommunityType_NONE E_OpenconfigBgpTypes_CommunityType = 5
)

// E_OpenconfigBgpTypes_PeerType is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_PeerType. An additional value named
// OpenconfigBgpTypes_PeerType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_PeerType int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_PeerType implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_PeerType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_PeerType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_PeerType.
func (E_OpenconfigBgpTypes_PeerType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigBgpTypes_PeerType.
func (e E_OpenconfigBgpTypes_PeerType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_PeerType")
}

const (
	// OpenconfigBgpTypes_PeerType_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_PeerType
	OpenconfigBgpTypes_PeerType_UNSET E_OpenconfigBgpTypes_PeerType = 0
	// OpenconfigBgpTypes_PeerType_INTERNAL corresponds to the value INTERNAL of OpenconfigBgpTypes_PeerType
	OpenconfigBgpTypes_PeerType_INTERNAL E_OpenconfigBgpTypes_PeerType = 1
	// OpenconfigBgpTypes_PeerType_EXTERNAL corresponds to the value EXTERNAL of OpenconfigBgpTypes_PeerType
	OpenconfigBgpTypes_PeerType_EXTERNAL E_OpenconfigBgpTypes_PeerType = 2
)

// E_OpenconfigBgpTypes_RemovePrivateAsOption is a derived int64 type which is used to represent
// the enumerated node OpenconfigBgpTypes_RemovePrivateAsOption. An additional value named
// OpenconfigBgpTypes_RemovePrivateAsOption_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigBgpTypes_RemovePrivateAsOption int64

// IsYANGGoEnum ensures that OpenconfigBgpTypes_RemovePrivateAsOption implements the yang.GoEnum
// interface. This ensures that OpenconfigBgpTypes_RemovePrivateAsOption can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigBgpTypes_RemovePrivateAsOption) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigBgpTypes_RemovePrivateAsOption.
func (E_OpenconfigBgpTypes_RemovePrivateAsOption) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigBgpTypes_RemovePrivateAsOption.
func (e E_OpenconfigBgpTypes_RemovePrivateAsOption) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigBgpTypes_RemovePrivateAsOption")
}

const (
	// OpenconfigBgpTypes_RemovePrivateAsOption_UNSET corresponds to the value UNSET of OpenconfigBgpTypes_RemovePrivateAsOption
	OpenconfigBgpTypes_RemovePrivateAsOption_UNSET E_OpenconfigBgpTypes_RemovePrivateAsOption = 0
	// OpenconfigBgpTypes_RemovePrivateAsOption_PRIVATE_AS_REMOVE_ALL corresponds to the value PRIVATE_AS_REMOVE_ALL of OpenconfigBgpTypes_RemovePrivateAsOption
	OpenconfigBgpTypes_RemovePrivateAsOption_PRIVATE_AS_REMOVE_ALL E_OpenconfigBgpTypes_RemovePrivateAsOption = 1
	// OpenconfigBgpTypes_RemovePrivateAsOption_PRIVATE_AS_REPLACE_ALL corresponds to the value PRIVATE_AS_REPLACE_ALL of OpenconfigBgpTypes_RemovePrivateAsOption
	OpenconfigBgpTypes_RemovePrivateAsOption_PRIVATE_AS_REPLACE_ALL E_OpenconfigBgpTypes_RemovePrivateAsOption = 2
)

// E_OpenconfigEvpnTypes_EVPN_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigEvpnTypes_EVPN_TYPE. An additional value named
// OpenconfigEvpnTypes_EVPN_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigEvpnTypes_EVPN_TYPE int64

// IsYANGGoEnum ensures that OpenconfigEvpnTypes_EVPN_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigEvpnTypes_EVPN_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigEvpnTypes_EVPN_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigEvpnTypes_EVPN_TYPE.
func (E_OpenconfigEvpnTypes_EVPN_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigEvpnTypes_EVPN_TYPE.
func (e E_OpenconfigEvpnTypes_EVPN_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigEvpnTypes_EVPN_TYPE")
}

const (
	// OpenconfigEvpnTypes_EVPN_TYPE_UNSET corresponds to the value UNSET of OpenconfigEvpnTypes_EVPN_TYPE
	OpenconfigEvpnTypes_EVPN_TYPE_UNSET E_OpenconfigEvpnTypes_EVPN_TYPE = 0
	// OpenconfigEvpnTypes_EVPN_TYPE_VLAN_AWARE corresponds to the value VLAN_AWARE of OpenconfigEvpnTypes_EVPN_TYPE
	OpenconfigEvpnTypes_EVPN_TYPE_VLAN_AWARE E_OpenconfigEvpnTypes_EVPN_TYPE = 1
	// OpenconfigEvpnTypes_EVPN_TYPE_VLAN_BASED corresponds to the value VLAN_BASED of OpenconfigEvpnTypes_EVPN_TYPE
	OpenconfigEvpnTypes_EVPN_TYPE_VLAN_BASED E_OpenconfigEvpnTypes_EVPN_TYPE = 2
	// OpenconfigEvpnTypes_EVPN_TYPE_VLAN_BUNDLE corresponds to the value VLAN_BUNDLE of OpenconfigEvpnTypes_EVPN_TYPE
	OpenconfigEvpnTypes_EVPN_TYPE_VLAN_BUNDLE E_OpenconfigEvpnTypes_EVPN_TYPE = 3
)

// E_OpenconfigEvpnTypes_LearningMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigEvpnTypes_LearningMode. An additional value named
// OpenconfigEvpnTypes_LearningMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigEvpnTypes_LearningMode int64

// IsYANGGoEnum ensures that OpenconfigEvpnTypes_LearningMode implements the yang.GoEnum
// interface. This ensures that OpenconfigEvpnTypes_LearningMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigEvpnTypes_LearningMode) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigEvpnTypes_LearningMode.
func (E_OpenconfigEvpnTypes_LearningMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigEvpnTypes_LearningMode.
func (e E_OpenconfigEvpnTypes_LearningMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigEvpnTypes_LearningMode")
}

const (
	// OpenconfigEvpnTypes_LearningMode_UNSET corresponds to the value UNSET of OpenconfigEvpnTypes_LearningMode
	OpenconfigEvpnTypes_LearningMode_UNSET E_OpenconfigEvpnTypes_LearningMode = 0
	// OpenconfigEvpnTypes_LearningMode_CONTROL_PLANE corresponds to the value CONTROL_PLANE of OpenconfigEvpnTypes_LearningMode
	OpenconfigEvpnTypes_LearningMode_CONTROL_PLANE E_OpenconfigEvpnTypes_LearningMode = 1
	// OpenconfigEvpnTypes_LearningMode_DATA_PLANE corresponds to the value DATA_PLANE of OpenconfigEvpnTypes_LearningMode
	OpenconfigEvpnTypes_LearningMode_DATA_PLANE E_OpenconfigEvpnTypes_LearningMode = 2
)

// E_OpenconfigIcmpv4Types_CODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIcmpv4Types_CODE. An additional value named
// OpenconfigIcmpv4Types_CODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIcmpv4Types_CODE int64

// IsYANGGoEnum ensures that OpenconfigIcmpv4Types_CODE implements the yang.GoEnum
// interface. This ensures that OpenconfigIcmpv4Types_CODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIcmpv4Types_CODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIcmpv4Types_CODE.
func (E_OpenconfigIcmpv4Types_CODE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigIcmpv4Types_CODE.
func (e E_OpenconfigIcmpv4Types_CODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIcmpv4Types_CODE")
}

const (
	// OpenconfigIcmpv4Types_CODE_UNSET corresponds to the value UNSET of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_UNSET E_OpenconfigIcmpv4Types_CODE = 0
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_ADMIN_PROHIBITED corresponds to the value DST_UNREACHABLE_ADMIN_PROHIBITED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_ADMIN_PROHIBITED E_OpenconfigIcmpv4Types_CODE = 1
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_CANNOT_FRAGMENT corresponds to the value DST_UNREACHABLE_CANNOT_FRAGMENT of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_CANNOT_FRAGMENT E_OpenconfigIcmpv4Types_CODE = 2
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_CODE corresponds to the value DST_UNREACHABLE_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_CODE E_OpenconfigIcmpv4Types_CODE = 3
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_HOST_ADMIN_PROHIBITED corresponds to the value DST_UNREACHABLE_DST_HOST_ADMIN_PROHIBITED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_HOST_ADMIN_PROHIBITED E_OpenconfigIcmpv4Types_CODE = 4
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_HOST_UNKNOWN corresponds to the value DST_UNREACHABLE_DST_HOST_UNKNOWN of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_HOST_UNKNOWN E_OpenconfigIcmpv4Types_CODE = 5
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_NET_ADMIN_PROHIBITED corresponds to the value DST_UNREACHABLE_DST_NET_ADMIN_PROHIBITED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_NET_ADMIN_PROHIBITED E_OpenconfigIcmpv4Types_CODE = 6
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_NET_UNKNOWN corresponds to the value DST_UNREACHABLE_DST_NET_UNKNOWN of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_DST_NET_UNKNOWN E_OpenconfigIcmpv4Types_CODE = 7
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_HOST corresponds to the value DST_UNREACHABLE_HOST of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_HOST E_OpenconfigIcmpv4Types_CODE = 8
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_HOST_PRECEDENCE_VIOLATION corresponds to the value DST_UNREACHABLE_HOST_PRECEDENCE_VIOLATION of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_HOST_PRECEDENCE_VIOLATION E_OpenconfigIcmpv4Types_CODE = 9
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_HOST_UNREACHABLE_FOR_TOS corresponds to the value DST_UNREACHABLE_HOST_UNREACHABLE_FOR_TOS of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_HOST_UNREACHABLE_FOR_TOS E_OpenconfigIcmpv4Types_CODE = 10
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_NET corresponds to the value DST_UNREACHABLE_NET of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_NET E_OpenconfigIcmpv4Types_CODE = 11
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_NET_UNREACHABLE_FOR_TOS corresponds to the value DST_UNREACHABLE_NET_UNREACHABLE_FOR_TOS of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_NET_UNREACHABLE_FOR_TOS E_OpenconfigIcmpv4Types_CODE = 12
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_PORT corresponds to the value DST_UNREACHABLE_PORT of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_PORT E_OpenconfigIcmpv4Types_CODE = 13
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_PRECEDENCE_CUTOFF corresponds to the value DST_UNREACHABLE_PRECEDENCE_CUTOFF of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_PRECEDENCE_CUTOFF E_OpenconfigIcmpv4Types_CODE = 14
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_PROTOCOL corresponds to the value DST_UNREACHABLE_PROTOCOL of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_PROTOCOL E_OpenconfigIcmpv4Types_CODE = 15
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_SRC_HOST_ISOLATED corresponds to the value DST_UNREACHABLE_SRC_HOST_ISOLATED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_SRC_HOST_ISOLATED E_OpenconfigIcmpv4Types_CODE = 16
	// OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_SRC_ROUTE_FAILED corresponds to the value DST_UNREACHABLE_SRC_ROUTE_FAILED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_DST_UNREACHABLE_SRC_ROUTE_FAILED E_OpenconfigIcmpv4Types_CODE = 17
	// OpenconfigIcmpv4Types_CODE_ECHO_CODE corresponds to the value ECHO_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ECHO_CODE E_OpenconfigIcmpv4Types_CODE = 18
	// OpenconfigIcmpv4Types_CODE_ECHO_NO_CODE corresponds to the value ECHO_NO_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ECHO_NO_CODE E_OpenconfigIcmpv4Types_CODE = 19
	// OpenconfigIcmpv4Types_CODE_ECHO_REPLY_CODE corresponds to the value ECHO_REPLY_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ECHO_REPLY_CODE E_OpenconfigIcmpv4Types_CODE = 20
	// OpenconfigIcmpv4Types_CODE_ECHO_REPLY_NONE corresponds to the value ECHO_REPLY_NONE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ECHO_REPLY_NONE E_OpenconfigIcmpv4Types_CODE = 21
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_CODE corresponds to the value EXT_ECHO_REPLY_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_CODE E_OpenconfigIcmpv4Types_CODE = 22
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_MALFORMED_QUERY corresponds to the value EXT_ECHO_REPLY_MALFORMED_QUERY of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_MALFORMED_QUERY E_OpenconfigIcmpv4Types_CODE = 23
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY corresponds to the value EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY E_OpenconfigIcmpv4Types_CODE = 24
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_NO_ERROR corresponds to the value EXT_ECHO_REPLY_NO_ERROR of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_NO_ERROR E_OpenconfigIcmpv4Types_CODE = 25
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_NO_SUB_TABLE_ENTRY corresponds to the value EXT_ECHO_REPLY_NO_SUB_TABLE_ENTRY of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_NO_SUB_TABLE_ENTRY E_OpenconfigIcmpv4Types_CODE = 26
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_NO_SUCH_INTF corresponds to the value EXT_ECHO_REPLY_NO_SUCH_INTF of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REPLY_NO_SUCH_INTF E_OpenconfigIcmpv4Types_CODE = 27
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REQUEST_CODE corresponds to the value EXT_ECHO_REQUEST_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REQUEST_CODE E_OpenconfigIcmpv4Types_CODE = 28
	// OpenconfigIcmpv4Types_CODE_EXT_ECHO_REQUEST_NO_ERROR corresponds to the value EXT_ECHO_REQUEST_NO_ERROR of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_EXT_ECHO_REQUEST_NO_ERROR E_OpenconfigIcmpv4Types_CODE = 29
	// OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_BAD_LENGTH corresponds to the value PARAM_PROBLEM_BAD_LENGTH of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_BAD_LENGTH E_OpenconfigIcmpv4Types_CODE = 30
	// OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_CODE corresponds to the value PARAM_PROBLEM_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_CODE E_OpenconfigIcmpv4Types_CODE = 31
	// OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_MISSING_REQ_OPTION corresponds to the value PARAM_PROBLEM_MISSING_REQ_OPTION of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_MISSING_REQ_OPTION E_OpenconfigIcmpv4Types_CODE = 32
	// OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_POINTER_INDICATES_ERR corresponds to the value PARAM_PROBLEM_POINTER_INDICATES_ERR of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PARAM_PROBLEM_POINTER_INDICATES_ERR E_OpenconfigIcmpv4Types_CODE = 33
	// OpenconfigIcmpv4Types_CODE_PHOTURIS_AUTH_FAILED corresponds to the value PHOTURIS_AUTH_FAILED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PHOTURIS_AUTH_FAILED E_OpenconfigIcmpv4Types_CODE = 34
	// OpenconfigIcmpv4Types_CODE_PHOTURIS_BAD_SPI corresponds to the value PHOTURIS_BAD_SPI of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PHOTURIS_BAD_SPI E_OpenconfigIcmpv4Types_CODE = 35
	// OpenconfigIcmpv4Types_CODE_PHOTURIS_CODE corresponds to the value PHOTURIS_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PHOTURIS_CODE E_OpenconfigIcmpv4Types_CODE = 36
	// OpenconfigIcmpv4Types_CODE_PHOTURIS_DECOMPRESS_FAILED corresponds to the value PHOTURIS_DECOMPRESS_FAILED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PHOTURIS_DECOMPRESS_FAILED E_OpenconfigIcmpv4Types_CODE = 37
	// OpenconfigIcmpv4Types_CODE_PHOTURIS_DECRYPTION_FAILED corresponds to the value PHOTURIS_DECRYPTION_FAILED of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PHOTURIS_DECRYPTION_FAILED E_OpenconfigIcmpv4Types_CODE = 38
	// OpenconfigIcmpv4Types_CODE_PHOTURIS_NEED_AUTHENTICATION corresponds to the value PHOTURIS_NEED_AUTHENTICATION of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PHOTURIS_NEED_AUTHENTICATION E_OpenconfigIcmpv4Types_CODE = 39
	// OpenconfigIcmpv4Types_CODE_PHOTURIS_NEED_AUTHORIZATION corresponds to the value PHOTURIS_NEED_AUTHORIZATION of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_PHOTURIS_NEED_AUTHORIZATION E_OpenconfigIcmpv4Types_CODE = 40
	// OpenconfigIcmpv4Types_CODE_REDIRECT_CODE corresponds to the value REDIRECT_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_REDIRECT_CODE E_OpenconfigIcmpv4Types_CODE = 41
	// OpenconfigIcmpv4Types_CODE_REDIRECT_HOST corresponds to the value REDIRECT_HOST of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_REDIRECT_HOST E_OpenconfigIcmpv4Types_CODE = 42
	// OpenconfigIcmpv4Types_CODE_REDIRECT_NETWORK corresponds to the value REDIRECT_NETWORK of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_REDIRECT_NETWORK E_OpenconfigIcmpv4Types_CODE = 43
	// OpenconfigIcmpv4Types_CODE_REDIRECT_TOS_HOST corresponds to the value REDIRECT_TOS_HOST of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_REDIRECT_TOS_HOST E_OpenconfigIcmpv4Types_CODE = 44
	// OpenconfigIcmpv4Types_CODE_REDIRECT_TOS_NETWORK corresponds to the value REDIRECT_TOS_NETWORK of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_REDIRECT_TOS_NETWORK E_OpenconfigIcmpv4Types_CODE = 45
	// OpenconfigIcmpv4Types_CODE_ROUTER_ADVERTISEMENT_CODE corresponds to the value ROUTER_ADVERTISEMENT_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ROUTER_ADVERTISEMENT_CODE E_OpenconfigIcmpv4Types_CODE = 46
	// OpenconfigIcmpv4Types_CODE_ROUTER_ADVERTISEMENT_DOES_NOT_ROUTE_COMMON corresponds to the value ROUTER_ADVERTISEMENT_DOES_NOT_ROUTE_COMMON of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ROUTER_ADVERTISEMENT_DOES_NOT_ROUTE_COMMON E_OpenconfigIcmpv4Types_CODE = 47
	// OpenconfigIcmpv4Types_CODE_ROUTER_ADVERTISEMENT_NORMAL corresponds to the value ROUTER_ADVERTISEMENT_NORMAL of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ROUTER_ADVERTISEMENT_NORMAL E_OpenconfigIcmpv4Types_CODE = 48
	// OpenconfigIcmpv4Types_CODE_ROUTER_SELECTION_CODE corresponds to the value ROUTER_SELECTION_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ROUTER_SELECTION_CODE E_OpenconfigIcmpv4Types_CODE = 49
	// OpenconfigIcmpv4Types_CODE_ROUTER_SELECTION_NO_CODE corresponds to the value ROUTER_SELECTION_NO_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_ROUTER_SELECTION_NO_CODE E_OpenconfigIcmpv4Types_CODE = 50
	// OpenconfigIcmpv4Types_CODE_TIMESTAMP_CODE corresponds to the value TIMESTAMP_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_TIMESTAMP_CODE E_OpenconfigIcmpv4Types_CODE = 51
	// OpenconfigIcmpv4Types_CODE_TIMESTAMP_NO_CODE corresponds to the value TIMESTAMP_NO_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_TIMESTAMP_NO_CODE E_OpenconfigIcmpv4Types_CODE = 52
	// OpenconfigIcmpv4Types_CODE_TIMESTAMP_REPLY_CODE corresponds to the value TIMESTAMP_REPLY_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_TIMESTAMP_REPLY_CODE E_OpenconfigIcmpv4Types_CODE = 53
	// OpenconfigIcmpv4Types_CODE_TIMESTAMP_REPLY_NO_CODE corresponds to the value TIMESTAMP_REPLY_NO_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_TIMESTAMP_REPLY_NO_CODE E_OpenconfigIcmpv4Types_CODE = 54
	// OpenconfigIcmpv4Types_CODE_TIME_EXCEEDED_CODE corresponds to the value TIME_EXCEEDED_CODE of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_TIME_EXCEEDED_CODE E_OpenconfigIcmpv4Types_CODE = 55
	// OpenconfigIcmpv4Types_CODE_TIME_EXCEEDED_FRAGMENT_REASSEMBLY_IN_TRANSIT corresponds to the value TIME_EXCEEDED_FRAGMENT_REASSEMBLY_IN_TRANSIT of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_TIME_EXCEEDED_FRAGMENT_REASSEMBLY_IN_TRANSIT E_OpenconfigIcmpv4Types_CODE = 56
	// OpenconfigIcmpv4Types_CODE_TIME_EXCEEDED_IN_TRANSIT corresponds to the value TIME_EXCEEDED_IN_TRANSIT of OpenconfigIcmpv4Types_CODE
	OpenconfigIcmpv4Types_CODE_TIME_EXCEEDED_IN_TRANSIT E_OpenconfigIcmpv4Types_CODE = 57
)

// E_OpenconfigIcmpv4Types_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIcmpv4Types_TYPE. An additional value named
// OpenconfigIcmpv4Types_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIcmpv4Types_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIcmpv4Types_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIcmpv4Types_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIcmpv4Types_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIcmpv4Types_TYPE.
func (E_OpenconfigIcmpv4Types_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigIcmpv4Types_TYPE.
func (e E_OpenconfigIcmpv4Types_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIcmpv4Types_TYPE")
}

const (
	// OpenconfigIcmpv4Types_TYPE_UNSET corresponds to the value UNSET of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_UNSET E_OpenconfigIcmpv4Types_TYPE = 0
	// OpenconfigIcmpv4Types_TYPE_DST_UNREACHABLE corresponds to the value DST_UNREACHABLE of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_DST_UNREACHABLE E_OpenconfigIcmpv4Types_TYPE = 1
	// OpenconfigIcmpv4Types_TYPE_ECHO corresponds to the value ECHO of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_ECHO E_OpenconfigIcmpv4Types_TYPE = 2
	// OpenconfigIcmpv4Types_TYPE_ECHO_REPLY corresponds to the value ECHO_REPLY of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_ECHO_REPLY E_OpenconfigIcmpv4Types_TYPE = 3
	// OpenconfigIcmpv4Types_TYPE_EXT_ECHO_REPLY corresponds to the value EXT_ECHO_REPLY of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_EXT_ECHO_REPLY E_OpenconfigIcmpv4Types_TYPE = 4
	// OpenconfigIcmpv4Types_TYPE_EXT_ECHO_REQUEST corresponds to the value EXT_ECHO_REQUEST of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_EXT_ECHO_REQUEST E_OpenconfigIcmpv4Types_TYPE = 5
	// OpenconfigIcmpv4Types_TYPE_PARAM_PROBLEM corresponds to the value PARAM_PROBLEM of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_PARAM_PROBLEM E_OpenconfigIcmpv4Types_TYPE = 6
	// OpenconfigIcmpv4Types_TYPE_PHOTURIS corresponds to the value PHOTURIS of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_PHOTURIS E_OpenconfigIcmpv4Types_TYPE = 7
	// OpenconfigIcmpv4Types_TYPE_REDIRECT corresponds to the value REDIRECT of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_REDIRECT E_OpenconfigIcmpv4Types_TYPE = 8
	// OpenconfigIcmpv4Types_TYPE_ROUTER_ADVERTISEMENT corresponds to the value ROUTER_ADVERTISEMENT of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_ROUTER_ADVERTISEMENT E_OpenconfigIcmpv4Types_TYPE = 9
	// OpenconfigIcmpv4Types_TYPE_ROUTER_SOLICITATION corresponds to the value ROUTER_SOLICITATION of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_ROUTER_SOLICITATION E_OpenconfigIcmpv4Types_TYPE = 10
	// OpenconfigIcmpv4Types_TYPE_TIMESTAMP corresponds to the value TIMESTAMP of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_TIMESTAMP E_OpenconfigIcmpv4Types_TYPE = 11
	// OpenconfigIcmpv4Types_TYPE_TIMESTAMP_REPLY corresponds to the value TIMESTAMP_REPLY of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_TIMESTAMP_REPLY E_OpenconfigIcmpv4Types_TYPE = 12
	// OpenconfigIcmpv4Types_TYPE_TIME_EXCEEDED corresponds to the value TIME_EXCEEDED of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_TIME_EXCEEDED E_OpenconfigIcmpv4Types_TYPE = 13
	// OpenconfigIcmpv4Types_TYPE_TRACEROUTE corresponds to the value TRACEROUTE of OpenconfigIcmpv4Types_TYPE
	OpenconfigIcmpv4Types_TYPE_TRACEROUTE E_OpenconfigIcmpv4Types_TYPE = 14
)

// E_OpenconfigIcmpv6Types_CODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIcmpv6Types_CODE. An additional value named
// OpenconfigIcmpv6Types_CODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIcmpv6Types_CODE int64

// IsYANGGoEnum ensures that OpenconfigIcmpv6Types_CODE implements the yang.GoEnum
// interface. This ensures that OpenconfigIcmpv6Types_CODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIcmpv6Types_CODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIcmpv6Types_CODE.
func (E_OpenconfigIcmpv6Types_CODE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigIcmpv6Types_CODE.
func (e E_OpenconfigIcmpv6Types_CODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIcmpv6Types_CODE")
}

const (
	// OpenconfigIcmpv6Types_CODE_UNSET corresponds to the value UNSET of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_UNSET E_OpenconfigIcmpv6Types_CODE = 0
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_ADDR corresponds to the value DST_UNREACHABLE_ADDR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_ADDR E_OpenconfigIcmpv6Types_CODE = 1
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_BEYOND_SCOPE_OF_SRC corresponds to the value DST_UNREACHABLE_BEYOND_SCOPE_OF_SRC of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_BEYOND_SCOPE_OF_SRC E_OpenconfigIcmpv6Types_CODE = 2
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_CODE corresponds to the value DST_UNREACHABLE_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_CODE E_OpenconfigIcmpv6Types_CODE = 3
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_DST_ADMIN_PROHIBITED corresponds to the value DST_UNREACHABLE_DST_ADMIN_PROHIBITED of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_DST_ADMIN_PROHIBITED E_OpenconfigIcmpv6Types_CODE = 4
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_ERR_IN_SRC_ROUTING_HDR corresponds to the value DST_UNREACHABLE_ERR_IN_SRC_ROUTING_HDR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_ERR_IN_SRC_ROUTING_HDR E_OpenconfigIcmpv6Types_CODE = 5
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_HDRS_TOO_LONG corresponds to the value DST_UNREACHABLE_HDRS_TOO_LONG of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_HDRS_TOO_LONG E_OpenconfigIcmpv6Types_CODE = 6
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_NO_ROUTE_TO_DST corresponds to the value DST_UNREACHABLE_NO_ROUTE_TO_DST of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_NO_ROUTE_TO_DST E_OpenconfigIcmpv6Types_CODE = 7
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_PORT corresponds to the value DST_UNREACHABLE_PORT of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_PORT E_OpenconfigIcmpv6Types_CODE = 8
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_REJECT_ROUTE_TO_DST corresponds to the value DST_UNREACHABLE_REJECT_ROUTE_TO_DST of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_REJECT_ROUTE_TO_DST E_OpenconfigIcmpv6Types_CODE = 9
	// OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_SRC_ADDR_FAILED_POLICY corresponds to the value DST_UNREACHABLE_SRC_ADDR_FAILED_POLICY of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DST_UNREACHABLE_SRC_ADDR_FAILED_POLICY E_OpenconfigIcmpv6Types_CODE = 10
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_CODE corresponds to the value DUPLICATE_ADDRESS_REPLY_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_CODE E_OpenconfigIcmpv6Types_CODE = 11
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_DAC corresponds to the value DUPLICATE_ADDRESS_REPLY_DAC of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_DAC E_OpenconfigIcmpv6Types_CODE = 12
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR128 corresponds to the value DUPLICATE_ADDRESS_REPLY_EDAC_ROVR128 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR128 E_OpenconfigIcmpv6Types_CODE = 13
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR192 corresponds to the value DUPLICATE_ADDRESS_REPLY_EDAC_ROVR192 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR192 E_OpenconfigIcmpv6Types_CODE = 14
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR256 corresponds to the value DUPLICATE_ADDRESS_REPLY_EDAC_ROVR256 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR256 E_OpenconfigIcmpv6Types_CODE = 15
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR64 corresponds to the value DUPLICATE_ADDRESS_REPLY_EDAC_ROVR64 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REPLY_EDAC_ROVR64 E_OpenconfigIcmpv6Types_CODE = 16
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_CODE corresponds to the value DUPLICATE_ADDRESS_REQUEST_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_CODE E_OpenconfigIcmpv6Types_CODE = 17
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_DAR corresponds to the value DUPLICATE_ADDRESS_REQUEST_DAR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_DAR E_OpenconfigIcmpv6Types_CODE = 18
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR128 corresponds to the value DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR128 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR128 E_OpenconfigIcmpv6Types_CODE = 19
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR192 corresponds to the value DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR192 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR192 E_OpenconfigIcmpv6Types_CODE = 20
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR256 corresponds to the value DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR256 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR256 E_OpenconfigIcmpv6Types_CODE = 21
	// OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR64 corresponds to the value DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR64 of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR64 E_OpenconfigIcmpv6Types_CODE = 22
	// OpenconfigIcmpv6Types_CODE_ECHO_REPLY_CODE corresponds to the value ECHO_REPLY_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ECHO_REPLY_CODE E_OpenconfigIcmpv6Types_CODE = 23
	// OpenconfigIcmpv6Types_CODE_ECHO_REPLY_NO_CODE corresponds to the value ECHO_REPLY_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ECHO_REPLY_NO_CODE E_OpenconfigIcmpv6Types_CODE = 24
	// OpenconfigIcmpv6Types_CODE_ECHO_REQUEST_CODE corresponds to the value ECHO_REQUEST_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ECHO_REQUEST_CODE E_OpenconfigIcmpv6Types_CODE = 25
	// OpenconfigIcmpv6Types_CODE_ECHO_REQUEST_NO_CODE corresponds to the value ECHO_REQUEST_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ECHO_REQUEST_NO_CODE E_OpenconfigIcmpv6Types_CODE = 26
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_CODE corresponds to the value EXT_ECHO_REPLY_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_CODE E_OpenconfigIcmpv6Types_CODE = 27
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_MALFORMED_QUERY corresponds to the value EXT_ECHO_REPLY_MALFORMED_QUERY of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_MALFORMED_QUERY E_OpenconfigIcmpv6Types_CODE = 28
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY corresponds to the value EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY E_OpenconfigIcmpv6Types_CODE = 29
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_NO_ERROR corresponds to the value EXT_ECHO_REPLY_NO_ERROR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_NO_ERROR E_OpenconfigIcmpv6Types_CODE = 30
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_NO_SUCH_INTERFACE corresponds to the value EXT_ECHO_REPLY_NO_SUCH_INTERFACE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_NO_SUCH_INTERFACE E_OpenconfigIcmpv6Types_CODE = 31
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_NO_SUCH_TABLE_ENTRY corresponds to the value EXT_ECHO_REPLY_NO_SUCH_TABLE_ENTRY of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REPLY_NO_SUCH_TABLE_ENTRY E_OpenconfigIcmpv6Types_CODE = 32
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REQUEST_CODE corresponds to the value EXT_ECHO_REQUEST_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REQUEST_CODE E_OpenconfigIcmpv6Types_CODE = 33
	// OpenconfigIcmpv6Types_CODE_EXT_ECHO_REQUEST_NO_ERROR corresponds to the value EXT_ECHO_REQUEST_NO_ERROR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_EXT_ECHO_REQUEST_NO_ERROR E_OpenconfigIcmpv6Types_CODE = 34
	// OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REPLY_CODE corresponds to the value HOME_AGENT_ADDRESS_DISCOVERY_REPLY_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REPLY_CODE E_OpenconfigIcmpv6Types_CODE = 35
	// OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REPLY_NO_CODE corresponds to the value HOME_AGENT_ADDRESS_DISCOVERY_REPLY_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REPLY_NO_CODE E_OpenconfigIcmpv6Types_CODE = 36
	// OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_CODE corresponds to the value HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_CODE E_OpenconfigIcmpv6Types_CODE = 37
	// OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_NO_CODE corresponds to the value HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_NO_CODE E_OpenconfigIcmpv6Types_CODE = 38
	// OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_ADVERTISEMENT_CODE corresponds to the value INVERSE_NEIGHBOR_ADVERTISEMENT_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_ADVERTISEMENT_CODE E_OpenconfigIcmpv6Types_CODE = 39
	// OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_ADVERTISEMENT_NO_CODE corresponds to the value INVERSE_NEIGHBOR_ADVERTISEMENT_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_ADVERTISEMENT_NO_CODE E_OpenconfigIcmpv6Types_CODE = 40
	// OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_SOLICITATION_CODE corresponds to the value INVERSE_NEIGHBOR_SOLICITATION_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_SOLICITATION_CODE E_OpenconfigIcmpv6Types_CODE = 41
	// OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_SOLICITATION_NO_CODE corresponds to the value INVERSE_NEIGHBOR_SOLICITATION_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_INVERSE_NEIGHBOR_SOLICITATION_NO_CODE E_OpenconfigIcmpv6Types_CODE = 42
	// OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_ADVERTISEMENT_CODE corresponds to the value MOBILE_PREFIX_ADVERTISEMENT_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_ADVERTISEMENT_CODE E_OpenconfigIcmpv6Types_CODE = 43
	// OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_ADVERTISEMENT_NO_CODE corresponds to the value MOBILE_PREFIX_ADVERTISEMENT_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_ADVERTISEMENT_NO_CODE E_OpenconfigIcmpv6Types_CODE = 44
	// OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_SOLICITATION_CODE corresponds to the value MOBILE_PREFIX_SOLICITATION_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_SOLICITATION_CODE E_OpenconfigIcmpv6Types_CODE = 45
	// OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_SOLICITATION_NO_CODE corresponds to the value MOBILE_PREFIX_SOLICITATION_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MOBILE_PREFIX_SOLICITATION_NO_CODE E_OpenconfigIcmpv6Types_CODE = 46
	// OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_DONE_CODE corresponds to the value MULTICAST_LISTENER_DONE_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_DONE_CODE E_OpenconfigIcmpv6Types_CODE = 47
	// OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_DONE_NO_CODE corresponds to the value MULTICAST_LISTENER_DONE_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_DONE_NO_CODE E_OpenconfigIcmpv6Types_CODE = 48
	// OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_QUERY_CODE corresponds to the value MULTICAST_LISTENER_QUERY_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_QUERY_CODE E_OpenconfigIcmpv6Types_CODE = 49
	// OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_QUERY_NO_CODE corresponds to the value MULTICAST_LISTENER_QUERY_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_QUERY_NO_CODE E_OpenconfigIcmpv6Types_CODE = 50
	// OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_REPORT_CODE corresponds to the value MULTICAST_LISTENER_REPORT_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_REPORT_CODE E_OpenconfigIcmpv6Types_CODE = 51
	// OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_REPORT_NO_CODE corresponds to the value MULTICAST_LISTENER_REPORT_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_MULTICAST_LISTENER_REPORT_NO_CODE E_OpenconfigIcmpv6Types_CODE = 52
	// OpenconfigIcmpv6Types_CODE_NDDE_INFORMATION_RESPONSE_CODE corresponds to the value NDDE_INFORMATION_RESPONSE_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NDDE_INFORMATION_RESPONSE_CODE E_OpenconfigIcmpv6Types_CODE = 53
	// OpenconfigIcmpv6Types_CODE_NEIGHBOR_ADVERTISEMENT_CODE corresponds to the value NEIGHBOR_ADVERTISEMENT_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NEIGHBOR_ADVERTISEMENT_CODE E_OpenconfigIcmpv6Types_CODE = 54
	// OpenconfigIcmpv6Types_CODE_NEIGHBOR_ADVERTISEMENT_NO_CODE corresponds to the value NEIGHBOR_ADVERTISEMENT_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NEIGHBOR_ADVERTISEMENT_NO_CODE E_OpenconfigIcmpv6Types_CODE = 55
	// OpenconfigIcmpv6Types_CODE_NEIGHBOR_SOLICITATION_CODE corresponds to the value NEIGHBOR_SOLICITATION_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NEIGHBOR_SOLICITATION_CODE E_OpenconfigIcmpv6Types_CODE = 56
	// OpenconfigIcmpv6Types_CODE_NEIGHBOR_SOLICITATION_NO_CODE corresponds to the value NEIGHBOR_SOLICITATION_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NEIGHBOR_SOLICITATION_NO_CODE E_OpenconfigIcmpv6Types_CODE = 57
	// OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_CODE corresponds to the value NODE_INFORMATION_QUERY_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_CODE E_OpenconfigIcmpv6Types_CODE = 58
	// OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_IPV4_ADDR corresponds to the value NODE_INFORMATION_QUERY_IPV4_ADDR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_IPV4_ADDR E_OpenconfigIcmpv6Types_CODE = 59
	// OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_IPV6_ADDR corresponds to the value NODE_INFORMATION_QUERY_IPV6_ADDR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_IPV6_ADDR E_OpenconfigIcmpv6Types_CODE = 60
	// OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_NAME corresponds to the value NODE_INFORMATION_QUERY_NAME of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_QUERY_NAME E_OpenconfigIcmpv6Types_CODE = 61
	// OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_RESPONSE_REFUSED corresponds to the value NODE_INFORMATION_RESPONSE_REFUSED of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_RESPONSE_REFUSED E_OpenconfigIcmpv6Types_CODE = 62
	// OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_RESPONSE_SUCCESS corresponds to the value NODE_INFORMATION_RESPONSE_SUCCESS of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_RESPONSE_SUCCESS E_OpenconfigIcmpv6Types_CODE = 63
	// OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_RESPONSE_UNKNOWN corresponds to the value NODE_INFORMATION_RESPONSE_UNKNOWN of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_NODE_INFORMATION_RESPONSE_UNKNOWN E_OpenconfigIcmpv6Types_CODE = 64
	// OpenconfigIcmpv6Types_CODE_PACKET_TOO_BIG_CODE corresponds to the value PACKET_TOO_BIG_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PACKET_TOO_BIG_CODE E_OpenconfigIcmpv6Types_CODE = 65
	// OpenconfigIcmpv6Types_CODE_PACKET_TOO_BIG_NO_CODE corresponds to the value PACKET_TOO_BIG_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PACKET_TOO_BIG_NO_CODE E_OpenconfigIcmpv6Types_CODE = 66
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_CODE corresponds to the value PARAM_PROBLEM_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_CODE E_OpenconfigIcmpv6Types_CODE = 67
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_ERR_HDR_FIELD corresponds to the value PARAM_PROBLEM_ERR_HDR_FIELD of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_ERR_HDR_FIELD E_OpenconfigIcmpv6Types_CODE = 68
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_EXT_HDR_CHAIN_TOO_LONG corresponds to the value PARAM_PROBLEM_EXT_HDR_CHAIN_TOO_LONG of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_EXT_HDR_CHAIN_TOO_LONG E_OpenconfigIcmpv6Types_CODE = 69
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_EXT_HDR_TOO_BIG corresponds to the value PARAM_PROBLEM_EXT_HDR_TOO_BIG of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_EXT_HDR_TOO_BIG E_OpenconfigIcmpv6Types_CODE = 70
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_INCOMPLETE_HDR_CHAIN corresponds to the value PARAM_PROBLEM_INCOMPLETE_HDR_CHAIN of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_INCOMPLETE_HDR_CHAIN E_OpenconfigIcmpv6Types_CODE = 71
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_OPT_TOO_BIG corresponds to the value PARAM_PROBLEM_OPT_TOO_BIG of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_OPT_TOO_BIG E_OpenconfigIcmpv6Types_CODE = 72
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_SR_UPPER_HDR_ERR corresponds to the value PARAM_PROBLEM_SR_UPPER_HDR_ERR of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_SR_UPPER_HDR_ERR E_OpenconfigIcmpv6Types_CODE = 73
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_TOO_MANY_EXT_HDRS corresponds to the value PARAM_PROBLEM_TOO_MANY_EXT_HDRS of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_TOO_MANY_EXT_HDRS E_OpenconfigIcmpv6Types_CODE = 74
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_TOO_MANY_OPTS corresponds to the value PARAM_PROBLEM_TOO_MANY_OPTS of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_TOO_MANY_OPTS E_OpenconfigIcmpv6Types_CODE = 75
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_UNRECOGNIZED_IPV6_OPT corresponds to the value PARAM_PROBLEM_UNRECOGNIZED_IPV6_OPT of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_UNRECOGNIZED_IPV6_OPT E_OpenconfigIcmpv6Types_CODE = 76
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_UNRECOGNIZED_NET_HDR_TYPE corresponds to the value PARAM_PROBLEM_UNRECOGNIZED_NET_HDR_TYPE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_UNRECOGNIZED_NET_HDR_TYPE E_OpenconfigIcmpv6Types_CODE = 77
	// OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_UNRECOGNIZED_NEXT_HDR_TYPE corresponds to the value PARAM_PROBLEM_UNRECOGNIZED_NEXT_HDR_TYPE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_PARAM_PROBLEM_UNRECOGNIZED_NEXT_HDR_TYPE E_OpenconfigIcmpv6Types_CODE = 78
	// OpenconfigIcmpv6Types_CODE_REDIRECT_CODE corresponds to the value REDIRECT_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_REDIRECT_CODE E_OpenconfigIcmpv6Types_CODE = 79
	// OpenconfigIcmpv6Types_CODE_REDIRECT_NO_CODE corresponds to the value REDIRECT_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_REDIRECT_NO_CODE E_OpenconfigIcmpv6Types_CODE = 80
	// OpenconfigIcmpv6Types_CODE_RENUMBERING_CODE corresponds to the value RENUMBERING_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_RENUMBERING_CODE E_OpenconfigIcmpv6Types_CODE = 81
	// OpenconfigIcmpv6Types_CODE_RENUMBERING_COMMAND corresponds to the value RENUMBERING_COMMAND of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_RENUMBERING_COMMAND E_OpenconfigIcmpv6Types_CODE = 82
	// OpenconfigIcmpv6Types_CODE_RENUNBERING_RESULT corresponds to the value RENUNBERING_RESULT of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_RENUNBERING_RESULT E_OpenconfigIcmpv6Types_CODE = 83
	// OpenconfigIcmpv6Types_CODE_RENUNBERING_SEQ_NUM_RESET corresponds to the value RENUNBERING_SEQ_NUM_RESET of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_RENUNBERING_SEQ_NUM_RESET E_OpenconfigIcmpv6Types_CODE = 84
	// OpenconfigIcmpv6Types_CODE_ROUTER_ADVERTISEMENT_CODE corresponds to the value ROUTER_ADVERTISEMENT_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ROUTER_ADVERTISEMENT_CODE E_OpenconfigIcmpv6Types_CODE = 85
	// OpenconfigIcmpv6Types_CODE_ROUTER_ADVERTISEMENT_NO_CODE corresponds to the value ROUTER_ADVERTISEMENT_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ROUTER_ADVERTISEMENT_NO_CODE E_OpenconfigIcmpv6Types_CODE = 86
	// OpenconfigIcmpv6Types_CODE_ROUTER_SOLICITATION_CODE corresponds to the value ROUTER_SOLICITATION_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ROUTER_SOLICITATION_CODE E_OpenconfigIcmpv6Types_CODE = 87
	// OpenconfigIcmpv6Types_CODE_ROUTER_SOLICITATION_NO_CODE corresponds to the value ROUTER_SOLICITATION_NO_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_ROUTER_SOLICITATION_NO_CODE E_OpenconfigIcmpv6Types_CODE = 88
	// OpenconfigIcmpv6Types_CODE_TIME_EXCEEDED_CODE corresponds to the value TIME_EXCEEDED_CODE of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_TIME_EXCEEDED_CODE E_OpenconfigIcmpv6Types_CODE = 89
	// OpenconfigIcmpv6Types_CODE_TIME_EXCEEDED_FRAGMENT_REASSEMBLY corresponds to the value TIME_EXCEEDED_FRAGMENT_REASSEMBLY of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_TIME_EXCEEDED_FRAGMENT_REASSEMBLY E_OpenconfigIcmpv6Types_CODE = 90
	// OpenconfigIcmpv6Types_CODE_TIME_EXCEEDED_HOP_LIMIT corresponds to the value TIME_EXCEEDED_HOP_LIMIT of OpenconfigIcmpv6Types_CODE
	OpenconfigIcmpv6Types_CODE_TIME_EXCEEDED_HOP_LIMIT E_OpenconfigIcmpv6Types_CODE = 91
)

// E_OpenconfigIcmpv6Types_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIcmpv6Types_TYPE. An additional value named
// OpenconfigIcmpv6Types_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIcmpv6Types_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIcmpv6Types_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIcmpv6Types_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIcmpv6Types_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIcmpv6Types_TYPE.
func (E_OpenconfigIcmpv6Types_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigIcmpv6Types_TYPE.
func (e E_OpenconfigIcmpv6Types_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIcmpv6Types_TYPE")
}

const (
	// OpenconfigIcmpv6Types_TYPE_UNSET corresponds to the value UNSET of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_UNSET E_OpenconfigIcmpv6Types_TYPE = 0
	// OpenconfigIcmpv6Types_TYPE_CERTIFICATION_PATH_ADVERTISEMENT corresponds to the value CERTIFICATION_PATH_ADVERTISEMENT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_CERTIFICATION_PATH_ADVERTISEMENT E_OpenconfigIcmpv6Types_TYPE = 1
	// OpenconfigIcmpv6Types_TYPE_CERTIFICATION_PATH_SOLICITATION corresponds to the value CERTIFICATION_PATH_SOLICITATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_CERTIFICATION_PATH_SOLICITATION E_OpenconfigIcmpv6Types_TYPE = 2
	// OpenconfigIcmpv6Types_TYPE_DESTINATION_UNREACHABLE corresponds to the value DESTINATION_UNREACHABLE of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_DESTINATION_UNREACHABLE E_OpenconfigIcmpv6Types_TYPE = 3
	// OpenconfigIcmpv6Types_TYPE_DUPLICATE_ADDRESS_CONFIRMATION corresponds to the value DUPLICATE_ADDRESS_CONFIRMATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_DUPLICATE_ADDRESS_CONFIRMATION E_OpenconfigIcmpv6Types_TYPE = 4
	// OpenconfigIcmpv6Types_TYPE_DUPLICATE_ADDRESS_REQUEST corresponds to the value DUPLICATE_ADDRESS_REQUEST of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_DUPLICATE_ADDRESS_REQUEST E_OpenconfigIcmpv6Types_TYPE = 5
	// OpenconfigIcmpv6Types_TYPE_ECHO_REPLY corresponds to the value ECHO_REPLY of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_ECHO_REPLY E_OpenconfigIcmpv6Types_TYPE = 6
	// OpenconfigIcmpv6Types_TYPE_ECHO_REQUEST corresponds to the value ECHO_REQUEST of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_ECHO_REQUEST E_OpenconfigIcmpv6Types_TYPE = 7
	// OpenconfigIcmpv6Types_TYPE_EXT_ECHO_REPLY corresponds to the value EXT_ECHO_REPLY of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_EXT_ECHO_REPLY E_OpenconfigIcmpv6Types_TYPE = 8
	// OpenconfigIcmpv6Types_TYPE_EXT_ECHO_REQUEST corresponds to the value EXT_ECHO_REQUEST of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_EXT_ECHO_REQUEST E_OpenconfigIcmpv6Types_TYPE = 9
	// OpenconfigIcmpv6Types_TYPE_FMIPV6 corresponds to the value FMIPV6 of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_FMIPV6 E_OpenconfigIcmpv6Types_TYPE = 10
	// OpenconfigIcmpv6Types_TYPE_HOME_AGENT_ADDRESS_DISCOVERY_REPLY corresponds to the value HOME_AGENT_ADDRESS_DISCOVERY_REPLY of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_HOME_AGENT_ADDRESS_DISCOVERY_REPLY E_OpenconfigIcmpv6Types_TYPE = 11
	// OpenconfigIcmpv6Types_TYPE_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST corresponds to the value HOME_AGENT_ADDRESS_DISCOVERY_REQUEST of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_HOME_AGENT_ADDRESS_DISCOVERY_REQUEST E_OpenconfigIcmpv6Types_TYPE = 12
	// OpenconfigIcmpv6Types_TYPE_ILNPV6_LOCATOR_UPDATE corresponds to the value ILNPV6_LOCATOR_UPDATE of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_ILNPV6_LOCATOR_UPDATE E_OpenconfigIcmpv6Types_TYPE = 13
	// OpenconfigIcmpv6Types_TYPE_INVERSE_NEIGHBOR_ADVERTISEMENT corresponds to the value INVERSE_NEIGHBOR_ADVERTISEMENT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_INVERSE_NEIGHBOR_ADVERTISEMENT E_OpenconfigIcmpv6Types_TYPE = 14
	// OpenconfigIcmpv6Types_TYPE_INVERSE_NEIGHBOR_SOLICITATION corresponds to the value INVERSE_NEIGHBOR_SOLICITATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_INVERSE_NEIGHBOR_SOLICITATION E_OpenconfigIcmpv6Types_TYPE = 15
	// OpenconfigIcmpv6Types_TYPE_MOBILE_PREFIX_ADVERTISEMENT corresponds to the value MOBILE_PREFIX_ADVERTISEMENT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MOBILE_PREFIX_ADVERTISEMENT E_OpenconfigIcmpv6Types_TYPE = 16
	// OpenconfigIcmpv6Types_TYPE_MOBILE_PREFIX_SOLICITATION corresponds to the value MOBILE_PREFIX_SOLICITATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MOBILE_PREFIX_SOLICITATION E_OpenconfigIcmpv6Types_TYPE = 17
	// OpenconfigIcmpv6Types_TYPE_MPL_CONTROL corresponds to the value MPL_CONTROL of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MPL_CONTROL E_OpenconfigIcmpv6Types_TYPE = 18
	// OpenconfigIcmpv6Types_TYPE_MULTICAST_LISTENER_DONE corresponds to the value MULTICAST_LISTENER_DONE of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MULTICAST_LISTENER_DONE E_OpenconfigIcmpv6Types_TYPE = 19
	// OpenconfigIcmpv6Types_TYPE_MULTICAST_LISTENER_QUERY corresponds to the value MULTICAST_LISTENER_QUERY of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MULTICAST_LISTENER_QUERY E_OpenconfigIcmpv6Types_TYPE = 20
	// OpenconfigIcmpv6Types_TYPE_MULTICAST_LISTENER_REPORT corresponds to the value MULTICAST_LISTENER_REPORT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MULTICAST_LISTENER_REPORT E_OpenconfigIcmpv6Types_TYPE = 21
	// OpenconfigIcmpv6Types_TYPE_MULTICAST_ROUTER_ADVERTISEMENT corresponds to the value MULTICAST_ROUTER_ADVERTISEMENT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MULTICAST_ROUTER_ADVERTISEMENT E_OpenconfigIcmpv6Types_TYPE = 22
	// OpenconfigIcmpv6Types_TYPE_MULTICAST_ROUTER_SOLICITATION corresponds to the value MULTICAST_ROUTER_SOLICITATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MULTICAST_ROUTER_SOLICITATION E_OpenconfigIcmpv6Types_TYPE = 23
	// OpenconfigIcmpv6Types_TYPE_MULTICAST_ROUTER_TERMINATION corresponds to the value MULTICAST_ROUTER_TERMINATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_MULTICAST_ROUTER_TERMINATION E_OpenconfigIcmpv6Types_TYPE = 24
	// OpenconfigIcmpv6Types_TYPE_NEIGHBOR_ADVERTISEMENT corresponds to the value NEIGHBOR_ADVERTISEMENT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_NEIGHBOR_ADVERTISEMENT E_OpenconfigIcmpv6Types_TYPE = 25
	// OpenconfigIcmpv6Types_TYPE_NEIGHBOR_SOLICITATION corresponds to the value NEIGHBOR_SOLICITATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_NEIGHBOR_SOLICITATION E_OpenconfigIcmpv6Types_TYPE = 26
	// OpenconfigIcmpv6Types_TYPE_NODE_INFORMATION_QUERY corresponds to the value NODE_INFORMATION_QUERY of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_NODE_INFORMATION_QUERY E_OpenconfigIcmpv6Types_TYPE = 27
	// OpenconfigIcmpv6Types_TYPE_NODE_INFORMATION_RESPONSE corresponds to the value NODE_INFORMATION_RESPONSE of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_NODE_INFORMATION_RESPONSE E_OpenconfigIcmpv6Types_TYPE = 28
	// OpenconfigIcmpv6Types_TYPE_PACKET_TOO_BIG corresponds to the value PACKET_TOO_BIG of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_PACKET_TOO_BIG E_OpenconfigIcmpv6Types_TYPE = 29
	// OpenconfigIcmpv6Types_TYPE_PARAMETER_PROBLEM corresponds to the value PARAMETER_PROBLEM of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_PARAMETER_PROBLEM E_OpenconfigIcmpv6Types_TYPE = 30
	// OpenconfigIcmpv6Types_TYPE_REDIRECT corresponds to the value REDIRECT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_REDIRECT E_OpenconfigIcmpv6Types_TYPE = 31
	// OpenconfigIcmpv6Types_TYPE_RENUNBERING corresponds to the value RENUNBERING of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_RENUNBERING E_OpenconfigIcmpv6Types_TYPE = 32
	// OpenconfigIcmpv6Types_TYPE_ROUTER_ADVERTISEMENT corresponds to the value ROUTER_ADVERTISEMENT of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_ROUTER_ADVERTISEMENT E_OpenconfigIcmpv6Types_TYPE = 33
	// OpenconfigIcmpv6Types_TYPE_ROUTER_SOLICITATION corresponds to the value ROUTER_SOLICITATION of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_ROUTER_SOLICITATION E_OpenconfigIcmpv6Types_TYPE = 34
	// OpenconfigIcmpv6Types_TYPE_RPL_CONTROL corresponds to the value RPL_CONTROL of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_RPL_CONTROL E_OpenconfigIcmpv6Types_TYPE = 35
	// OpenconfigIcmpv6Types_TYPE_TIME_EXCEEDED corresponds to the value TIME_EXCEEDED of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_TIME_EXCEEDED E_OpenconfigIcmpv6Types_TYPE = 36
	// OpenconfigIcmpv6Types_TYPE_VERSION2_MULTICAST_LISTENER corresponds to the value VERSION2_MULTICAST_LISTENER of OpenconfigIcmpv6Types_TYPE
	OpenconfigIcmpv6Types_TYPE_VERSION2_MULTICAST_LISTENER E_OpenconfigIcmpv6Types_TYPE = 37
)

// E_OpenconfigIfAggregate_AggregationType is a derived int64 type which is used to represent
// the enumerated node OpenconfigIfAggregate_AggregationType. An additional value named
// OpenconfigIfAggregate_AggregationType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIfAggregate_AggregationType int64

// IsYANGGoEnum ensures that OpenconfigIfAggregate_AggregationType implements the yang.GoEnum
// interface. This ensures that OpenconfigIfAggregate_AggregationType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIfAggregate_AggregationType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIfAggregate_AggregationType.
func (E_OpenconfigIfAggregate_AggregationType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIfAggregate_AggregationType.
func (e E_OpenconfigIfAggregate_AggregationType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIfAggregate_AggregationType")
}

const (
	// OpenconfigIfAggregate_AggregationType_UNSET corresponds to the value UNSET of OpenconfigIfAggregate_AggregationType
	OpenconfigIfAggregate_AggregationType_UNSET E_OpenconfigIfAggregate_AggregationType = 0
	// OpenconfigIfAggregate_AggregationType_LACP corresponds to the value LACP of OpenconfigIfAggregate_AggregationType
	OpenconfigIfAggregate_AggregationType_LACP E_OpenconfigIfAggregate_AggregationType = 1
	// OpenconfigIfAggregate_AggregationType_STATIC corresponds to the value STATIC of OpenconfigIfAggregate_AggregationType
	OpenconfigIfAggregate_AggregationType_STATIC E_OpenconfigIfAggregate_AggregationType = 2
)

// E_OpenconfigIfEthernet_ETHERNET_SPEED is a derived int64 type which is used to represent
// the enumerated node OpenconfigIfEthernet_ETHERNET_SPEED. An additional value named
// OpenconfigIfEthernet_ETHERNET_SPEED_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIfEthernet_ETHERNET_SPEED int64

// IsYANGGoEnum ensures that OpenconfigIfEthernet_ETHERNET_SPEED implements the yang.GoEnum
// interface. This ensures that OpenconfigIfEthernet_ETHERNET_SPEED can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIfEthernet_ETHERNET_SPEED) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIfEthernet_ETHERNET_SPEED.
func (E_OpenconfigIfEthernet_ETHERNET_SPEED) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIfEthernet_ETHERNET_SPEED.
func (e E_OpenconfigIfEthernet_ETHERNET_SPEED) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIfEthernet_ETHERNET_SPEED")
}

const (
	// OpenconfigIfEthernet_ETHERNET_SPEED_UNSET corresponds to the value UNSET of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_UNSET E_OpenconfigIfEthernet_ETHERNET_SPEED = 0
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100GB corresponds to the value SPEED_100GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 1
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100MB corresponds to the value SPEED_100MB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100MB E_OpenconfigIfEthernet_ETHERNET_SPEED = 2
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10GB corresponds to the value SPEED_10GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 3
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10MB corresponds to the value SPEED_10MB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10MB E_OpenconfigIfEthernet_ETHERNET_SPEED = 4
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_1GB corresponds to the value SPEED_1GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_1GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 5
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_200GB corresponds to the value SPEED_200GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_200GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 6
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_2500MB corresponds to the value SPEED_2500MB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_2500MB E_OpenconfigIfEthernet_ETHERNET_SPEED = 7
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_25GB corresponds to the value SPEED_25GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_25GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 8
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_400GB corresponds to the value SPEED_400GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_400GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 9
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_40GB corresponds to the value SPEED_40GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_40GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 10
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_50GB corresponds to the value SPEED_50GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_50GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 11
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_5GB corresponds to the value SPEED_5GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_5GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 12
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_600GB corresponds to the value SPEED_600GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_600GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 13
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_800GB corresponds to the value SPEED_800GB of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_800GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 14
	// OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_UNKNOWN corresponds to the value SPEED_UNKNOWN of OpenconfigIfEthernet_ETHERNET_SPEED
	OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_UNKNOWN E_OpenconfigIfEthernet_ETHERNET_SPEED = 15
)

// E_OpenconfigIfEthernet_INTERFACE_FEC is a derived int64 type which is used to represent
// the enumerated node OpenconfigIfEthernet_INTERFACE_FEC. An additional value named
// OpenconfigIfEthernet_INTERFACE_FEC_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIfEthernet_INTERFACE_FEC int64

// IsYANGGoEnum ensures that OpenconfigIfEthernet_INTERFACE_FEC implements the yang.GoEnum
// interface. This ensures that OpenconfigIfEthernet_INTERFACE_FEC can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIfEthernet_INTERFACE_FEC) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIfEthernet_INTERFACE_FEC.
func (E_OpenconfigIfEthernet_INTERFACE_FEC) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIfEthernet_INTERFACE_FEC.
func (e E_OpenconfigIfEthernet_INTERFACE_FEC) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIfEthernet_INTERFACE_FEC")
}

const (
	// OpenconfigIfEthernet_INTERFACE_FEC_UNSET corresponds to the value UNSET of OpenconfigIfEthernet_INTERFACE_FEC
	OpenconfigIfEthernet_INTERFACE_FEC_UNSET E_OpenconfigIfEthernet_INTERFACE_FEC = 0
	// OpenconfigIfEthernet_INTERFACE_FEC_FEC_DISABLED corresponds to the value FEC_DISABLED of OpenconfigIfEthernet_INTERFACE_FEC
	OpenconfigIfEthernet_INTERFACE_FEC_FEC_DISABLED E_OpenconfigIfEthernet_INTERFACE_FEC = 1
	// OpenconfigIfEthernet_INTERFACE_FEC_FEC_FC corresponds to the value FEC_FC of OpenconfigIfEthernet_INTERFACE_FEC
	OpenconfigIfEthernet_INTERFACE_FEC_FEC_FC E_OpenconfigIfEthernet_INTERFACE_FEC = 2
	// OpenconfigIfEthernet_INTERFACE_FEC_FEC_RS528 corresponds to the value FEC_RS528 of OpenconfigIfEthernet_INTERFACE_FEC
	OpenconfigIfEthernet_INTERFACE_FEC_FEC_RS528 E_OpenconfigIfEthernet_INTERFACE_FEC = 3
	// OpenconfigIfEthernet_INTERFACE_FEC_FEC_RS544 corresponds to the value FEC_RS544 of OpenconfigIfEthernet_INTERFACE_FEC
	OpenconfigIfEthernet_INTERFACE_FEC_FEC_RS544 E_OpenconfigIfEthernet_INTERFACE_FEC = 4
	// OpenconfigIfEthernet_INTERFACE_FEC_FEC_RS544_2X_INTERLEAVE corresponds to the value FEC_RS544_2X_INTERLEAVE of OpenconfigIfEthernet_INTERFACE_FEC
	OpenconfigIfEthernet_INTERFACE_FEC_FEC_RS544_2X_INTERLEAVE E_OpenconfigIfEthernet_INTERFACE_FEC = 5
)

// E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode. An additional value named
// OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode int64

// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode implements the yang.GoEnum
// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode.
func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode.
func (e E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode")
}

const (
	// OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode
	OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_UNSET E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode = 0
	// OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_FULL corresponds to the value FULL of OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode
	OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_FULL E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode = 1
	// OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_HALF corresponds to the value HALF of OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode
	OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_HALF E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode = 2
)

// E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode. An additional value named
// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode int64

// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode implements the yang.GoEnum
// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode.
func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode.
func (e E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode")
}

const (
	// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode
	OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_UNSET E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode = 0
	// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_FULL corresponds to the value FULL of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode
	OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_FULL E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode = 1
	// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_HALF corresponds to the value HALF of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode
	OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_HALF E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode = 2
)

// E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus is a derived int64 type which is used to represent
// the enumerated node OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus. An additional value named
// OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus int64

// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus implements the yang.GoEnum
// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus.
func (E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus.
func (e E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus")
}

const (
	// OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus
	OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UNSET E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 0
	// OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UP corresponds to the value UP of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus
	OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UP E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 1
	// OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_DOWN corresponds to the value DOWN of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus
	OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_DOWN E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 2
	// OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_TESTING corresponds to the value TESTING of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus
	OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_TESTING E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 3
)

// E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus is a derived int64 type which is used to represent
// the enumerated node OpenconfigInterfaces_Interfaces_Interface_State_OperStatus. An additional value named
// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus int64

// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_State_OperStatus implements the yang.GoEnum
// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_State_OperStatus can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigInterfaces_Interfaces_Interface_State_OperStatus.
func (E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus.
func (e E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus")
}

const (
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNSET E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 0
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UP corresponds to the value UP of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UP E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 2
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DOWN corresponds to the value DOWN of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DOWN E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 3
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_TESTING corresponds to the value TESTING of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_TESTING E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 4
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNKNOWN corresponds to the value UNKNOWN of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNKNOWN E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 5
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DORMANT corresponds to the value DORMANT of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DORMANT E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 6
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_NOT_PRESENT corresponds to the value NOT_PRESENT of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_NOT_PRESENT E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 7
	// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_LOWER_LAYER_DOWN corresponds to the value LOWER_LAYER_DOWN of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus
	OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_LOWER_LAYER_DOWN E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 8
)

// E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE. An additional value named
// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE.
func (E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE.
func (e E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE")
}

const (
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_UNSET E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 0
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_IPV4_ROUTER_ID corresponds to the value IP_REACHABILITY_IPV4_ROUTER_ID of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_IPV4_ROUTER_ID E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 1
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_IPV6_ROUTER_ID corresponds to the value IP_REACHABILITY_IPV6_ROUTER_ID of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_IPV6_ROUTER_ID E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 2
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_PREFIX_FLAGS corresponds to the value IP_REACHABILITY_PREFIX_FLAGS of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_PREFIX_FLAGS E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 3
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_PREFIX_SID corresponds to the value IP_REACHABILITY_PREFIX_SID of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_PREFIX_SID E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 4
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_SUBTLVS_TYPE corresponds to the value IP_REACHABILITY_SUBTLVS_TYPE of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_SUBTLVS_TYPE E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 5
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_TAG corresponds to the value IP_REACHABILITY_TAG of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_TAG E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 6
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_TAG64 corresponds to the value IP_REACHABILITY_TAG64 of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IP_REACHABILITY_TAG64 E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 7
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_ADJ_LAN_SID corresponds to the value IS_REACHABILITY_ADJ_LAN_SID of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_ADJ_LAN_SID E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 8
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_ADJ_SID corresponds to the value IS_REACHABILITY_ADJ_SID of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_ADJ_SID E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 9
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_ADMIN_GROUP corresponds to the value IS_REACHABILITY_ADMIN_GROUP of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_ADMIN_GROUP E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 10
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_AVAILABLE_BANDWIDTH corresponds to the value IS_REACHABILITY_AVAILABLE_BANDWIDTH of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_AVAILABLE_BANDWIDTH E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 11
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_BANDWIDTH_CONSTRAINTS corresponds to the value IS_REACHABILITY_BANDWIDTH_CONSTRAINTS of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_BANDWIDTH_CONSTRAINTS E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 12
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_EXTENDED_ADMIN_GROUP corresponds to the value IS_REACHABILITY_EXTENDED_ADMIN_GROUP of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_EXTENDED_ADMIN_GROUP E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 13
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV4_INTERFACE_ADDRESS corresponds to the value IS_REACHABILITY_IPV4_INTERFACE_ADDRESS of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV4_INTERFACE_ADDRESS E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 14
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS corresponds to the value IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 15
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV6_INTERFACE_ADDRESS corresponds to the value IS_REACHABILITY_IPV6_INTERFACE_ADDRESS of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV6_INTERFACE_ADDRESS E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 16
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS corresponds to the value IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 17
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_ATTRIBUTES corresponds to the value IS_REACHABILITY_LINK_ATTRIBUTES of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_ATTRIBUTES E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 18
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_DELAY corresponds to the value IS_REACHABILITY_LINK_DELAY of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_DELAY E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 19
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_DELAY_VARIATION corresponds to the value IS_REACHABILITY_LINK_DELAY_VARIATION of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_DELAY_VARIATION E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 20
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_ID corresponds to the value IS_REACHABILITY_LINK_ID of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_ID E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 21
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_LOSS corresponds to the value IS_REACHABILITY_LINK_LOSS of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_LOSS E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 22
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_PROTECTION_TYPE corresponds to the value IS_REACHABILITY_LINK_PROTECTION_TYPE of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_LINK_PROTECTION_TYPE E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 23
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_MAX_LINK_BANDWIDTH corresponds to the value IS_REACHABILITY_MAX_LINK_BANDWIDTH of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_MAX_LINK_BANDWIDTH E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 24
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH corresponds to the value IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 25
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_MIN_MAX_LINK_DELAY corresponds to the value IS_REACHABILITY_MIN_MAX_LINK_DELAY of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_MIN_MAX_LINK_DELAY E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 26
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_RESIDUAL_BANDWIDTH corresponds to the value IS_REACHABILITY_RESIDUAL_BANDWIDTH of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_RESIDUAL_BANDWIDTH E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 27
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_SUBTLVS_TYPE corresponds to the value IS_REACHABILITY_SUBTLVS_TYPE of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_SUBTLVS_TYPE E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 28
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_TE_DEFAULT_METRIC corresponds to the value IS_REACHABILITY_TE_DEFAULT_METRIC of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_TE_DEFAULT_METRIC E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 29
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_UNCONSTRAINED_LSP corresponds to the value IS_REACHABILITY_UNCONSTRAINED_LSP of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_UNCONSTRAINED_LSP E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 30
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_UNRESERVED_BANDWIDTH corresponds to the value IS_REACHABILITY_UNRESERVED_BANDWIDTH of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_UNRESERVED_BANDWIDTH E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 31
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_UTILIZED_BANDWIDTH corresponds to the value IS_REACHABILITY_UTILIZED_BANDWIDTH of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_IS_REACHABILITY_UTILIZED_BANDWIDTH E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 32
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_ROUTER_CAPABILITY_SR_ALGORITHM corresponds to the value ROUTER_CAPABILITY_SR_ALGORITHM of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_ROUTER_CAPABILITY_SR_ALGORITHM E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 33
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_ROUTER_CAPABILITY_SR_CAPABILITY corresponds to the value ROUTER_CAPABILITY_SR_CAPABILITY of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_ROUTER_CAPABILITY_SR_CAPABILITY E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 34
	// OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_ROUTER_CAPABILITY_SUBTLVS_TYPE corresponds to the value ROUTER_CAPABILITY_SUBTLVS_TYPE of OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE_ROUTER_CAPABILITY_SUBTLVS_TYPE E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE = 35
)

// E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE. An additional value named
// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE.
func (E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE.
func (e E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE")
}

const (
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_UNSET E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 0
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_AREA_ADDRESSES corresponds to the value AREA_ADDRESSES of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_AREA_ADDRESSES E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 1
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_AUTHENTICATION corresponds to the value AUTHENTICATION of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_AUTHENTICATION E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 2
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_DYNAMIC_NAME corresponds to the value DYNAMIC_NAME of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_DYNAMIC_NAME E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 3
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_EXTENDED_IPV4_REACHABILITY corresponds to the value EXTENDED_IPV4_REACHABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_EXTENDED_IPV4_REACHABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 4
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_EXTENDED_IS_REACHABILITY corresponds to the value EXTENDED_IS_REACHABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_EXTENDED_IS_REACHABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 5
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IIS_NEIGHBORS corresponds to the value IIS_NEIGHBORS of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IIS_NEIGHBORS E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 6
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_INSTANCE_ID corresponds to the value INSTANCE_ID of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_INSTANCE_ID E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 7
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_EXTERNAL_REACHABILITY corresponds to the value IPV4_EXTERNAL_REACHABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_EXTERNAL_REACHABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 8
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_INTERFACE_ADDRESSES corresponds to the value IPV4_INTERFACE_ADDRESSES of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_INTERFACE_ADDRESSES E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 9
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_INTERNAL_REACHABILITY corresponds to the value IPV4_INTERNAL_REACHABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_INTERNAL_REACHABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 10
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_SRLG corresponds to the value IPV4_SRLG of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_SRLG E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 11
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_TE_ROUTER_ID corresponds to the value IPV4_TE_ROUTER_ID of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV4_TE_ROUTER_ID E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 12
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_INTERFACE_ADDRESSES corresponds to the value IPV6_INTERFACE_ADDRESSES of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_INTERFACE_ADDRESSES E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 13
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_REACHABILITY corresponds to the value IPV6_REACHABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_REACHABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 14
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_SRLG corresponds to the value IPV6_SRLG of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_SRLG E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 15
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_TE_ROUTER_ID corresponds to the value IPV6_TE_ROUTER_ID of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IPV6_TE_ROUTER_ID E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 16
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_ISIS_ALIAS_ID corresponds to the value ISIS_ALIAS_ID of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_ISIS_ALIAS_ID E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 17
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IS_NEIGHBOR_ATTRIBUTE corresponds to the value IS_NEIGHBOR_ATTRIBUTE of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_IS_NEIGHBOR_ATTRIBUTE E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 18
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_LSP_BUFFER_SIZE corresponds to the value LSP_BUFFER_SIZE of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_LSP_BUFFER_SIZE E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 19
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_IPV4_REACHABILITY corresponds to the value MT_IPV4_REACHABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_IPV4_REACHABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 20
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_IPV6_REACHABILITY corresponds to the value MT_IPV6_REACHABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_IPV6_REACHABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 21
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_ISN corresponds to the value MT_ISN of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_ISN E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 22
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_IS_NEIGHBOR_ATTRIBUTE corresponds to the value MT_IS_NEIGHBOR_ATTRIBUTE of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MT_IS_NEIGHBOR_ATTRIBUTE E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 23
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MULTI_TOPOLOGY corresponds to the value MULTI_TOPOLOGY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_MULTI_TOPOLOGY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 24
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_NLPID corresponds to the value NLPID of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_NLPID E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 25
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_PURGE_OI corresponds to the value PURGE_OI of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_PURGE_OI E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 26
	// OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_ROUTER_CAPABILITY corresponds to the value ROUTER_CAPABILITY of OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE
	OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE_ROUTER_CAPABILITY E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE = 27
)

// E_OpenconfigIsisTypes_AFI_SAFI_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_AFI_SAFI_TYPE. An additional value named
// OpenconfigIsisTypes_AFI_SAFI_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_AFI_SAFI_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_AFI_SAFI_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_AFI_SAFI_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_AFI_SAFI_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_AFI_SAFI_TYPE.
func (E_OpenconfigIsisTypes_AFI_SAFI_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_AFI_SAFI_TYPE.
func (e E_OpenconfigIsisTypes_AFI_SAFI_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_AFI_SAFI_TYPE")
}

const (
	// OpenconfigIsisTypes_AFI_SAFI_TYPE_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_AFI_SAFI_TYPE
	OpenconfigIsisTypes_AFI_SAFI_TYPE_UNSET E_OpenconfigIsisTypes_AFI_SAFI_TYPE = 0
	// OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV4_MULTICAST corresponds to the value IPV4_MULTICAST of OpenconfigIsisTypes_AFI_SAFI_TYPE
	OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV4_MULTICAST E_OpenconfigIsisTypes_AFI_SAFI_TYPE = 1
	// OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV4_UNICAST corresponds to the value IPV4_UNICAST of OpenconfigIsisTypes_AFI_SAFI_TYPE
	OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV4_UNICAST E_OpenconfigIsisTypes_AFI_SAFI_TYPE = 2
	// OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV6_MULTICAST corresponds to the value IPV6_MULTICAST of OpenconfigIsisTypes_AFI_SAFI_TYPE
	OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV6_MULTICAST E_OpenconfigIsisTypes_AFI_SAFI_TYPE = 3
	// OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV6_UNICAST corresponds to the value IPV6_UNICAST of OpenconfigIsisTypes_AFI_SAFI_TYPE
	OpenconfigIsisTypes_AFI_SAFI_TYPE_IPV6_UNICAST E_OpenconfigIsisTypes_AFI_SAFI_TYPE = 4
)

// E_OpenconfigIsisTypes_AFI_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_AFI_TYPE. An additional value named
// OpenconfigIsisTypes_AFI_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_AFI_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_AFI_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_AFI_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_AFI_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_AFI_TYPE.
func (E_OpenconfigIsisTypes_AFI_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigIsisTypes_AFI_TYPE.
func (e E_OpenconfigIsisTypes_AFI_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_AFI_TYPE")
}

const (
	// OpenconfigIsisTypes_AFI_TYPE_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_AFI_TYPE
	OpenconfigIsisTypes_AFI_TYPE_UNSET E_OpenconfigIsisTypes_AFI_TYPE = 0
	// OpenconfigIsisTypes_AFI_TYPE_IPV4 corresponds to the value IPV4 of OpenconfigIsisTypes_AFI_TYPE
	OpenconfigIsisTypes_AFI_TYPE_IPV4 E_OpenconfigIsisTypes_AFI_TYPE = 1
	// OpenconfigIsisTypes_AFI_TYPE_IPV6 corresponds to the value IPV6 of OpenconfigIsisTypes_AFI_TYPE
	OpenconfigIsisTypes_AFI_TYPE_IPV6 E_OpenconfigIsisTypes_AFI_TYPE = 2
)

// E_OpenconfigIsisTypes_AUTH_MODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_AUTH_MODE. An additional value named
// OpenconfigIsisTypes_AUTH_MODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_AUTH_MODE int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_AUTH_MODE implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_AUTH_MODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_AUTH_MODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_AUTH_MODE.
func (E_OpenconfigIsisTypes_AUTH_MODE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_AUTH_MODE.
func (e E_OpenconfigIsisTypes_AUTH_MODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_AUTH_MODE")
}

const (
	// OpenconfigIsisTypes_AUTH_MODE_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_AUTH_MODE
	OpenconfigIsisTypes_AUTH_MODE_UNSET E_OpenconfigIsisTypes_AUTH_MODE = 0
	// OpenconfigIsisTypes_AUTH_MODE_MD5 corresponds to the value MD5 of OpenconfigIsisTypes_AUTH_MODE
	OpenconfigIsisTypes_AUTH_MODE_MD5 E_OpenconfigIsisTypes_AUTH_MODE = 1
	// OpenconfigIsisTypes_AUTH_MODE_TEXT corresponds to the value TEXT of OpenconfigIsisTypes_AUTH_MODE
	OpenconfigIsisTypes_AUTH_MODE_TEXT E_OpenconfigIsisTypes_AUTH_MODE = 2
)

// E_OpenconfigIsisTypes_AdaptiveTimerType is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_AdaptiveTimerType. An additional value named
// OpenconfigIsisTypes_AdaptiveTimerType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_AdaptiveTimerType int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_AdaptiveTimerType implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_AdaptiveTimerType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_AdaptiveTimerType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_AdaptiveTimerType.
func (E_OpenconfigIsisTypes_AdaptiveTimerType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_AdaptiveTimerType.
func (e E_OpenconfigIsisTypes_AdaptiveTimerType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_AdaptiveTimerType")
}

const (
	// OpenconfigIsisTypes_AdaptiveTimerType_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_AdaptiveTimerType
	OpenconfigIsisTypes_AdaptiveTimerType_UNSET E_OpenconfigIsisTypes_AdaptiveTimerType = 0
	// OpenconfigIsisTypes_AdaptiveTimerType_LINEAR corresponds to the value LINEAR of OpenconfigIsisTypes_AdaptiveTimerType
	OpenconfigIsisTypes_AdaptiveTimerType_LINEAR E_OpenconfigIsisTypes_AdaptiveTimerType = 1
	// OpenconfigIsisTypes_AdaptiveTimerType_EXPONENTIAL corresponds to the value EXPONENTIAL of OpenconfigIsisTypes_AdaptiveTimerType
	OpenconfigIsisTypes_AdaptiveTimerType_EXPONENTIAL E_OpenconfigIsisTypes_AdaptiveTimerType = 2
)

// E_OpenconfigIsisTypes_CircuitType is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_CircuitType. An additional value named
// OpenconfigIsisTypes_CircuitType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_CircuitType int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_CircuitType implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_CircuitType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_CircuitType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_CircuitType.
func (E_OpenconfigIsisTypes_CircuitType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_CircuitType.
func (e E_OpenconfigIsisTypes_CircuitType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_CircuitType")
}

const (
	// OpenconfigIsisTypes_CircuitType_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_CircuitType
	OpenconfigIsisTypes_CircuitType_UNSET E_OpenconfigIsisTypes_CircuitType = 0
	// OpenconfigIsisTypes_CircuitType_POINT_TO_POINT corresponds to the value POINT_TO_POINT of OpenconfigIsisTypes_CircuitType
	OpenconfigIsisTypes_CircuitType_POINT_TO_POINT E_OpenconfigIsisTypes_CircuitType = 1
	// OpenconfigIsisTypes_CircuitType_BROADCAST corresponds to the value BROADCAST of OpenconfigIsisTypes_CircuitType
	OpenconfigIsisTypes_CircuitType_BROADCAST E_OpenconfigIsisTypes_CircuitType = 2
)

// E_OpenconfigIsisTypes_HelloPaddingType is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_HelloPaddingType. An additional value named
// OpenconfigIsisTypes_HelloPaddingType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_HelloPaddingType int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_HelloPaddingType implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_HelloPaddingType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_HelloPaddingType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_HelloPaddingType.
func (E_OpenconfigIsisTypes_HelloPaddingType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_HelloPaddingType.
func (e E_OpenconfigIsisTypes_HelloPaddingType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_HelloPaddingType")
}

const (
	// OpenconfigIsisTypes_HelloPaddingType_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_HelloPaddingType
	OpenconfigIsisTypes_HelloPaddingType_UNSET E_OpenconfigIsisTypes_HelloPaddingType = 0
	// OpenconfigIsisTypes_HelloPaddingType_STRICT corresponds to the value STRICT of OpenconfigIsisTypes_HelloPaddingType
	OpenconfigIsisTypes_HelloPaddingType_STRICT E_OpenconfigIsisTypes_HelloPaddingType = 1
	// OpenconfigIsisTypes_HelloPaddingType_LOOSE corresponds to the value LOOSE of OpenconfigIsisTypes_HelloPaddingType
	OpenconfigIsisTypes_HelloPaddingType_LOOSE E_OpenconfigIsisTypes_HelloPaddingType = 2
	// OpenconfigIsisTypes_HelloPaddingType_ADAPTIVE corresponds to the value ADAPTIVE of OpenconfigIsisTypes_HelloPaddingType
	OpenconfigIsisTypes_HelloPaddingType_ADAPTIVE E_OpenconfigIsisTypes_HelloPaddingType = 3
	// OpenconfigIsisTypes_HelloPaddingType_DISABLE corresponds to the value DISABLE of OpenconfigIsisTypes_HelloPaddingType
	OpenconfigIsisTypes_HelloPaddingType_DISABLE E_OpenconfigIsisTypes_HelloPaddingType = 4
)

// E_OpenconfigIsisTypes_IsisInterfaceAdjState is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_IsisInterfaceAdjState. An additional value named
// OpenconfigIsisTypes_IsisInterfaceAdjState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_IsisInterfaceAdjState int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_IsisInterfaceAdjState implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_IsisInterfaceAdjState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_IsisInterfaceAdjState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_IsisInterfaceAdjState.
func (E_OpenconfigIsisTypes_IsisInterfaceAdjState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_IsisInterfaceAdjState.
func (e E_OpenconfigIsisTypes_IsisInterfaceAdjState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_IsisInterfaceAdjState")
}

const (
	// OpenconfigIsisTypes_IsisInterfaceAdjState_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_IsisInterfaceAdjState
	OpenconfigIsisTypes_IsisInterfaceAdjState_UNSET E_OpenconfigIsisTypes_IsisInterfaceAdjState = 0
	// OpenconfigIsisTypes_IsisInterfaceAdjState_UP corresponds to the value UP of OpenconfigIsisTypes_IsisInterfaceAdjState
	OpenconfigIsisTypes_IsisInterfaceAdjState_UP E_OpenconfigIsisTypes_IsisInterfaceAdjState = 1
	// OpenconfigIsisTypes_IsisInterfaceAdjState_DOWN corresponds to the value DOWN of OpenconfigIsisTypes_IsisInterfaceAdjState
	OpenconfigIsisTypes_IsisInterfaceAdjState_DOWN E_OpenconfigIsisTypes_IsisInterfaceAdjState = 2
	// OpenconfigIsisTypes_IsisInterfaceAdjState_INIT corresponds to the value INIT of OpenconfigIsisTypes_IsisInterfaceAdjState
	OpenconfigIsisTypes_IsisInterfaceAdjState_INIT E_OpenconfigIsisTypes_IsisInterfaceAdjState = 3
	// OpenconfigIsisTypes_IsisInterfaceAdjState_FAILED corresponds to the value FAILED of OpenconfigIsisTypes_IsisInterfaceAdjState
	OpenconfigIsisTypes_IsisInterfaceAdjState_FAILED E_OpenconfigIsisTypes_IsisInterfaceAdjState = 4
)

// E_OpenconfigIsisTypes_LevelType is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_LevelType. An additional value named
// OpenconfigIsisTypes_LevelType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_LevelType int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_LevelType implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_LevelType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_LevelType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_LevelType.
func (E_OpenconfigIsisTypes_LevelType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_LevelType.
func (e E_OpenconfigIsisTypes_LevelType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_LevelType")
}

const (
	// OpenconfigIsisTypes_LevelType_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_LevelType
	OpenconfigIsisTypes_LevelType_UNSET E_OpenconfigIsisTypes_LevelType = 0
	// OpenconfigIsisTypes_LevelType_LEVEL_1 corresponds to the value LEVEL_1 of OpenconfigIsisTypes_LevelType
	OpenconfigIsisTypes_LevelType_LEVEL_1 E_OpenconfigIsisTypes_LevelType = 1
	// OpenconfigIsisTypes_LevelType_LEVEL_2 corresponds to the value LEVEL_2 of OpenconfigIsisTypes_LevelType
	OpenconfigIsisTypes_LevelType_LEVEL_2 E_OpenconfigIsisTypes_LevelType = 2
	// OpenconfigIsisTypes_LevelType_LEVEL_1_2 corresponds to the value LEVEL_1_2 of OpenconfigIsisTypes_LevelType
	OpenconfigIsisTypes_LevelType_LEVEL_1_2 E_OpenconfigIsisTypes_LevelType = 3
)

// E_OpenconfigIsisTypes_MetricStyle is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_MetricStyle. An additional value named
// OpenconfigIsisTypes_MetricStyle_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_MetricStyle int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_MetricStyle implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_MetricStyle can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_MetricStyle) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_MetricStyle.
func (E_OpenconfigIsisTypes_MetricStyle) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_MetricStyle.
func (e E_OpenconfigIsisTypes_MetricStyle) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_MetricStyle")
}

const (
	// OpenconfigIsisTypes_MetricStyle_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_MetricStyle
	OpenconfigIsisTypes_MetricStyle_UNSET E_OpenconfigIsisTypes_MetricStyle = 0
	// OpenconfigIsisTypes_MetricStyle_NARROW_METRIC corresponds to the value NARROW_METRIC of OpenconfigIsisTypes_MetricStyle
	OpenconfigIsisTypes_MetricStyle_NARROW_METRIC E_OpenconfigIsisTypes_MetricStyle = 1
	// OpenconfigIsisTypes_MetricStyle_WIDE_METRIC corresponds to the value WIDE_METRIC of OpenconfigIsisTypes_MetricStyle
	OpenconfigIsisTypes_MetricStyle_WIDE_METRIC E_OpenconfigIsisTypes_MetricStyle = 2
)

// E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE. An additional value named
// OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE.
func (E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE.
func (e E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE")
}

const (
	// OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE
	OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE_UNSET E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE = 0
	// OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE_WAIT_FOR_BGP corresponds to the value WAIT_FOR_BGP of OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE
	OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE_WAIT_FOR_BGP E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE = 1
	// OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE_WAIT_FOR_SYSTEM corresponds to the value WAIT_FOR_SYSTEM of OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE
	OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE_WAIT_FOR_SYSTEM E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE = 2
)

// E_OpenconfigIsisTypes_SAFI_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsisTypes_SAFI_TYPE. An additional value named
// OpenconfigIsisTypes_SAFI_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsisTypes_SAFI_TYPE int64

// IsYANGGoEnum ensures that OpenconfigIsisTypes_SAFI_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigIsisTypes_SAFI_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsisTypes_SAFI_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsisTypes_SAFI_TYPE.
func (E_OpenconfigIsisTypes_SAFI_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsisTypes_SAFI_TYPE.
func (e E_OpenconfigIsisTypes_SAFI_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsisTypes_SAFI_TYPE")
}

const (
	// OpenconfigIsisTypes_SAFI_TYPE_UNSET corresponds to the value UNSET of OpenconfigIsisTypes_SAFI_TYPE
	OpenconfigIsisTypes_SAFI_TYPE_UNSET E_OpenconfigIsisTypes_SAFI_TYPE = 0
	// OpenconfigIsisTypes_SAFI_TYPE_MULTICAST corresponds to the value MULTICAST of OpenconfigIsisTypes_SAFI_TYPE
	OpenconfigIsisTypes_SAFI_TYPE_MULTICAST E_OpenconfigIsisTypes_SAFI_TYPE = 1
	// OpenconfigIsisTypes_SAFI_TYPE_UNICAST corresponds to the value UNICAST of OpenconfigIsisTypes_SAFI_TYPE
	OpenconfigIsisTypes_SAFI_TYPE_UNICAST E_OpenconfigIsisTypes_SAFI_TYPE = 2
)

// E_OpenconfigIsis_IsisMetricFlags is a derived int64 type which is used to represent
// the enumerated node OpenconfigIsis_IsisMetricFlags. An additional value named
// OpenconfigIsis_IsisMetricFlags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigIsis_IsisMetricFlags int64

// IsYANGGoEnum ensures that OpenconfigIsis_IsisMetricFlags implements the yang.GoEnum
// interface. This ensures that OpenconfigIsis_IsisMetricFlags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigIsis_IsisMetricFlags) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigIsis_IsisMetricFlags.
func (E_OpenconfigIsis_IsisMetricFlags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigIsis_IsisMetricFlags.
func (e E_OpenconfigIsis_IsisMetricFlags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigIsis_IsisMetricFlags")
}

const (
	// OpenconfigIsis_IsisMetricFlags_UNSET corresponds to the value UNSET of OpenconfigIsis_IsisMetricFlags
	OpenconfigIsis_IsisMetricFlags_UNSET E_OpenconfigIsis_IsisMetricFlags = 0
	// OpenconfigIsis_IsisMetricFlags_INTERNAL corresponds to the value INTERNAL of OpenconfigIsis_IsisMetricFlags
	OpenconfigIsis_IsisMetricFlags_INTERNAL E_OpenconfigIsis_IsisMetricFlags = 1
	// OpenconfigIsis_IsisMetricFlags_UNSUPPORTED corresponds to the value UNSUPPORTED of OpenconfigIsis_IsisMetricFlags
	OpenconfigIsis_IsisMetricFlags_UNSUPPORTED E_OpenconfigIsis_IsisMetricFlags = 2
)

// E_OpenconfigKeychainTypes_AUTH_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigKeychainTypes_AUTH_TYPE. An additional value named
// OpenconfigKeychainTypes_AUTH_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigKeychainTypes_AUTH_TYPE int64

// IsYANGGoEnum ensures that OpenconfigKeychainTypes_AUTH_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigKeychainTypes_AUTH_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigKeychainTypes_AUTH_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigKeychainTypes_AUTH_TYPE.
func (E_OpenconfigKeychainTypes_AUTH_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigKeychainTypes_AUTH_TYPE.
func (e E_OpenconfigKeychainTypes_AUTH_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigKeychainTypes_AUTH_TYPE")
}

const (
	// OpenconfigKeychainTypes_AUTH_TYPE_UNSET corresponds to the value UNSET of OpenconfigKeychainTypes_AUTH_TYPE
	OpenconfigKeychainTypes_AUTH_TYPE_UNSET E_OpenconfigKeychainTypes_AUTH_TYPE = 0
	// OpenconfigKeychainTypes_AUTH_TYPE_KEYCHAIN corresponds to the value KEYCHAIN of OpenconfigKeychainTypes_AUTH_TYPE
	OpenconfigKeychainTypes_AUTH_TYPE_KEYCHAIN E_OpenconfigKeychainTypes_AUTH_TYPE = 1
	// OpenconfigKeychainTypes_AUTH_TYPE_SIMPLE_KEY corresponds to the value SIMPLE_KEY of OpenconfigKeychainTypes_AUTH_TYPE
	OpenconfigKeychainTypes_AUTH_TYPE_SIMPLE_KEY E_OpenconfigKeychainTypes_AUTH_TYPE = 2
)

// E_OpenconfigKeychainTypes_CRYPTO_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigKeychainTypes_CRYPTO_TYPE. An additional value named
// OpenconfigKeychainTypes_CRYPTO_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigKeychainTypes_CRYPTO_TYPE int64

// IsYANGGoEnum ensures that OpenconfigKeychainTypes_CRYPTO_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigKeychainTypes_CRYPTO_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigKeychainTypes_CRYPTO_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigKeychainTypes_CRYPTO_TYPE.
func (E_OpenconfigKeychainTypes_CRYPTO_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigKeychainTypes_CRYPTO_TYPE.
func (e E_OpenconfigKeychainTypes_CRYPTO_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigKeychainTypes_CRYPTO_TYPE")
}

const (
	// OpenconfigKeychainTypes_CRYPTO_TYPE_UNSET corresponds to the value UNSET of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_UNSET E_OpenconfigKeychainTypes_CRYPTO_TYPE = 0
	// OpenconfigKeychainTypes_CRYPTO_TYPE_AES_28_CMAC_96 corresponds to the value AES_28_CMAC_96 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_AES_28_CMAC_96 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 1
	// OpenconfigKeychainTypes_CRYPTO_TYPE_CRYPTO_NONE corresponds to the value CRYPTO_NONE of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_CRYPTO_NONE E_OpenconfigKeychainTypes_CRYPTO_TYPE = 2
	// OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_MD5 corresponds to the value HMAC_MD5 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_MD5 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 3
	// OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1 corresponds to the value HMAC_SHA_1 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 4
	// OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1_12 corresponds to the value HMAC_SHA_1_12 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1_12 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 5
	// OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1_20 corresponds to the value HMAC_SHA_1_20 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1_20 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 6
	// OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1_96 corresponds to the value HMAC_SHA_1_96 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_1_96 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 7
	// OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_256 corresponds to the value HMAC_SHA_256 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_HMAC_SHA_256 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 8
	// OpenconfigKeychainTypes_CRYPTO_TYPE_MD5 corresponds to the value MD5 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_MD5 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 9
	// OpenconfigKeychainTypes_CRYPTO_TYPE_SHA_1 corresponds to the value SHA_1 of OpenconfigKeychainTypes_CRYPTO_TYPE
	OpenconfigKeychainTypes_CRYPTO_TYPE_SHA_1 E_OpenconfigKeychainTypes_CRYPTO_TYPE = 10
)

// E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum. An additional value named
// OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum int64

// IsYANGGoEnum ensures that OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum.
func (E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum.
func (e E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum")
}

const (
	// OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum_UNSET corresponds to the value UNSET of OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum
	OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum_UNSET E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum = 0
	// OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum_FOREVER corresponds to the value FOREVER of OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum
	OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum_FOREVER E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum = 1
)

// E_OpenconfigLldpTypes_ChassisIdType is a derived int64 type which is used to represent
// the enumerated node OpenconfigLldpTypes_ChassisIdType. An additional value named
// OpenconfigLldpTypes_ChassisIdType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigLldpTypes_ChassisIdType int64

// IsYANGGoEnum ensures that OpenconfigLldpTypes_ChassisIdType implements the yang.GoEnum
// interface. This ensures that OpenconfigLldpTypes_ChassisIdType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigLldpTypes_ChassisIdType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigLldpTypes_ChassisIdType.
func (E_OpenconfigLldpTypes_ChassisIdType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigLldpTypes_ChassisIdType.
func (e E_OpenconfigLldpTypes_ChassisIdType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigLldpTypes_ChassisIdType")
}

const (
	// OpenconfigLldpTypes_ChassisIdType_UNSET corresponds to the value UNSET of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_UNSET E_OpenconfigLldpTypes_ChassisIdType = 0
	// OpenconfigLldpTypes_ChassisIdType_CHASSIS_COMPONENT corresponds to the value CHASSIS_COMPONENT of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_CHASSIS_COMPONENT E_OpenconfigLldpTypes_ChassisIdType = 1
	// OpenconfigLldpTypes_ChassisIdType_INTERFACE_ALIAS corresponds to the value INTERFACE_ALIAS of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_INTERFACE_ALIAS E_OpenconfigLldpTypes_ChassisIdType = 2
	// OpenconfigLldpTypes_ChassisIdType_PORT_COMPONENT corresponds to the value PORT_COMPONENT of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_PORT_COMPONENT E_OpenconfigLldpTypes_ChassisIdType = 3
	// OpenconfigLldpTypes_ChassisIdType_MAC_ADDRESS corresponds to the value MAC_ADDRESS of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_MAC_ADDRESS E_OpenconfigLldpTypes_ChassisIdType = 4
	// OpenconfigLldpTypes_ChassisIdType_NETWORK_ADDRESS corresponds to the value NETWORK_ADDRESS of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_NETWORK_ADDRESS E_OpenconfigLldpTypes_ChassisIdType = 5
	// OpenconfigLldpTypes_ChassisIdType_INTERFACE_NAME corresponds to the value INTERFACE_NAME of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_INTERFACE_NAME E_OpenconfigLldpTypes_ChassisIdType = 6
	// OpenconfigLldpTypes_ChassisIdType_LOCAL corresponds to the value LOCAL of OpenconfigLldpTypes_ChassisIdType
	OpenconfigLldpTypes_ChassisIdType_LOCAL E_OpenconfigLldpTypes_ChassisIdType = 7
)

// E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY is a derived int64 type which is used to represent
// the enumerated node OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY. An additional value named
// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY int64

// IsYANGGoEnum ensures that OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY implements the yang.GoEnum
// interface. This ensures that OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY.
func (E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY.
func (e E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY")
}

const (
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_UNSET corresponds to the value UNSET of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_UNSET E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 0
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_C_VLAN corresponds to the value C_VLAN of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_C_VLAN E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 1
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_DOCSIS_CABLE_DEVICE corresponds to the value DOCSIS_CABLE_DEVICE of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_DOCSIS_CABLE_DEVICE E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 2
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_MAC_BRIDGE corresponds to the value MAC_BRIDGE of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_MAC_BRIDGE E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 3
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_OTHER corresponds to the value OTHER of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_OTHER E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 4
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_REPEATER corresponds to the value REPEATER of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_REPEATER E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 5
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_ROUTER corresponds to the value ROUTER of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_ROUTER E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 6
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_STATION_ONLY corresponds to the value STATION_ONLY of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_STATION_ONLY E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 7
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_S_VLAN corresponds to the value S_VLAN of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_S_VLAN E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 8
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TELEPHONE corresponds to the value TELEPHONE of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TELEPHONE E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 9
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TWO_PORT_MAC_RELAY corresponds to the value TWO_PORT_MAC_RELAY of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TWO_PORT_MAC_RELAY E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 10
	// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_WLAN_ACCESS_POINT corresponds to the value WLAN_ACCESS_POINT of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY
	OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_WLAN_ACCESS_POINT E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 11
)

// E_OpenconfigLldpTypes_LLDP_TLV is a derived int64 type which is used to represent
// the enumerated node OpenconfigLldpTypes_LLDP_TLV. An additional value named
// OpenconfigLldpTypes_LLDP_TLV_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigLldpTypes_LLDP_TLV int64

// IsYANGGoEnum ensures that OpenconfigLldpTypes_LLDP_TLV implements the yang.GoEnum
// interface. This ensures that OpenconfigLldpTypes_LLDP_TLV can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigLldpTypes_LLDP_TLV) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigLldpTypes_LLDP_TLV.
func (E_OpenconfigLldpTypes_LLDP_TLV) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigLldpTypes_LLDP_TLV.
func (e E_OpenconfigLldpTypes_LLDP_TLV) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigLldpTypes_LLDP_TLV")
}

const (
	// OpenconfigLldpTypes_LLDP_TLV_UNSET corresponds to the value UNSET of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_UNSET E_OpenconfigLldpTypes_LLDP_TLV = 0
	// OpenconfigLldpTypes_LLDP_TLV_CHASSIS_ID corresponds to the value CHASSIS_ID of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_CHASSIS_ID E_OpenconfigLldpTypes_LLDP_TLV = 1
	// OpenconfigLldpTypes_LLDP_TLV_MANAGEMENT_ADDRESS corresponds to the value MANAGEMENT_ADDRESS of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_MANAGEMENT_ADDRESS E_OpenconfigLldpTypes_LLDP_TLV = 2
	// OpenconfigLldpTypes_LLDP_TLV_PORT_DESCRIPTION corresponds to the value PORT_DESCRIPTION of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_PORT_DESCRIPTION E_OpenconfigLldpTypes_LLDP_TLV = 3
	// OpenconfigLldpTypes_LLDP_TLV_PORT_ID corresponds to the value PORT_ID of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_PORT_ID E_OpenconfigLldpTypes_LLDP_TLV = 4
	// OpenconfigLldpTypes_LLDP_TLV_SYSTEM_CAPABILITIES corresponds to the value SYSTEM_CAPABILITIES of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_SYSTEM_CAPABILITIES E_OpenconfigLldpTypes_LLDP_TLV = 5
	// OpenconfigLldpTypes_LLDP_TLV_SYSTEM_DESCRIPTION corresponds to the value SYSTEM_DESCRIPTION of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_SYSTEM_DESCRIPTION E_OpenconfigLldpTypes_LLDP_TLV = 6
	// OpenconfigLldpTypes_LLDP_TLV_SYSTEM_NAME corresponds to the value SYSTEM_NAME of OpenconfigLldpTypes_LLDP_TLV
	OpenconfigLldpTypes_LLDP_TLV_SYSTEM_NAME E_OpenconfigLldpTypes_LLDP_TLV = 7
)

// E_OpenconfigLldpTypes_PortIdType is a derived int64 type which is used to represent
// the enumerated node OpenconfigLldpTypes_PortIdType. An additional value named
// OpenconfigLldpTypes_PortIdType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigLldpTypes_PortIdType int64

// IsYANGGoEnum ensures that OpenconfigLldpTypes_PortIdType implements the yang.GoEnum
// interface. This ensures that OpenconfigLldpTypes_PortIdType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigLldpTypes_PortIdType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigLldpTypes_PortIdType.
func (E_OpenconfigLldpTypes_PortIdType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigLldpTypes_PortIdType.
func (e E_OpenconfigLldpTypes_PortIdType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigLldpTypes_PortIdType")
}

const (
	// OpenconfigLldpTypes_PortIdType_UNSET corresponds to the value UNSET of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_UNSET E_OpenconfigLldpTypes_PortIdType = 0
	// OpenconfigLldpTypes_PortIdType_INTERFACE_ALIAS corresponds to the value INTERFACE_ALIAS of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_INTERFACE_ALIAS E_OpenconfigLldpTypes_PortIdType = 1
	// OpenconfigLldpTypes_PortIdType_PORT_COMPONENT corresponds to the value PORT_COMPONENT of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_PORT_COMPONENT E_OpenconfigLldpTypes_PortIdType = 2
	// OpenconfigLldpTypes_PortIdType_MAC_ADDRESS corresponds to the value MAC_ADDRESS of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_MAC_ADDRESS E_OpenconfigLldpTypes_PortIdType = 3
	// OpenconfigLldpTypes_PortIdType_NETWORK_ADDRESS corresponds to the value NETWORK_ADDRESS of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_NETWORK_ADDRESS E_OpenconfigLldpTypes_PortIdType = 4
	// OpenconfigLldpTypes_PortIdType_INTERFACE_NAME corresponds to the value INTERFACE_NAME of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_INTERFACE_NAME E_OpenconfigLldpTypes_PortIdType = 5
	// OpenconfigLldpTypes_PortIdType_AGENT_CIRCUIT_ID corresponds to the value AGENT_CIRCUIT_ID of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_AGENT_CIRCUIT_ID E_OpenconfigLldpTypes_PortIdType = 6
	// OpenconfigLldpTypes_PortIdType_LOCAL corresponds to the value LOCAL of OpenconfigLldpTypes_PortIdType
	OpenconfigLldpTypes_PortIdType_LOCAL E_OpenconfigLldpTypes_PortIdType = 7
)

// E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP is a derived int64 type which is used to represent
// the enumerated node OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP. An additional value named
// OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP int64

// IsYANGGoEnum ensures that OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP implements the yang.GoEnum
// interface. This ensures that OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP.
func (E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP.
func (e E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP")
}

const (
	// OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP_UNSET corresponds to the value UNSET of OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP
	OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP_UNSET E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP = 0
	// OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP_DROP corresponds to the value DROP of OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP
	OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP_DROP E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP = 1
	// OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP_LOCAL_LINK corresponds to the value LOCAL_LINK of OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP
	OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP_LOCAL_LINK E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP = 2
)

// E_OpenconfigMessages_DEBUG_SERVICE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMessages_DEBUG_SERVICE. An additional value named
// OpenconfigMessages_DEBUG_SERVICE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMessages_DEBUG_SERVICE int64

// IsYANGGoEnum ensures that OpenconfigMessages_DEBUG_SERVICE implements the yang.GoEnum
// interface. This ensures that OpenconfigMessages_DEBUG_SERVICE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMessages_DEBUG_SERVICE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMessages_DEBUG_SERVICE.
func (E_OpenconfigMessages_DEBUG_SERVICE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMessages_DEBUG_SERVICE.
func (e E_OpenconfigMessages_DEBUG_SERVICE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMessages_DEBUG_SERVICE")
}

const (
	// OpenconfigMessages_DEBUG_SERVICE_UNSET corresponds to the value UNSET of OpenconfigMessages_DEBUG_SERVICE
	OpenconfigMessages_DEBUG_SERVICE_UNSET E_OpenconfigMessages_DEBUG_SERVICE = 0
)

// E_OpenconfigMplsLdp_LabelAdvertisementMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsLdp_LabelAdvertisementMode. An additional value named
// OpenconfigMplsLdp_LabelAdvertisementMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsLdp_LabelAdvertisementMode int64

// IsYANGGoEnum ensures that OpenconfigMplsLdp_LabelAdvertisementMode implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsLdp_LabelAdvertisementMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsLdp_LabelAdvertisementMode) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsLdp_LabelAdvertisementMode.
func (E_OpenconfigMplsLdp_LabelAdvertisementMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsLdp_LabelAdvertisementMode.
func (e E_OpenconfigMplsLdp_LabelAdvertisementMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsLdp_LabelAdvertisementMode")
}

const (
	// OpenconfigMplsLdp_LabelAdvertisementMode_UNSET corresponds to the value UNSET of OpenconfigMplsLdp_LabelAdvertisementMode
	OpenconfigMplsLdp_LabelAdvertisementMode_UNSET E_OpenconfigMplsLdp_LabelAdvertisementMode = 0
	// OpenconfigMplsLdp_LabelAdvertisementMode_DOWNSTREAM_UNSOLICITED corresponds to the value DOWNSTREAM_UNSOLICITED of OpenconfigMplsLdp_LabelAdvertisementMode
	OpenconfigMplsLdp_LabelAdvertisementMode_DOWNSTREAM_UNSOLICITED E_OpenconfigMplsLdp_LabelAdvertisementMode = 1
	// OpenconfigMplsLdp_LabelAdvertisementMode_DOWNSTREAM_ON_DEMAND corresponds to the value DOWNSTREAM_ON_DEMAND of OpenconfigMplsLdp_LabelAdvertisementMode
	OpenconfigMplsLdp_LabelAdvertisementMode_DOWNSTREAM_ON_DEMAND E_OpenconfigMplsLdp_LabelAdvertisementMode = 2
)

// E_OpenconfigMplsLdp_MplsLdpAdjacencyType is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsLdp_MplsLdpAdjacencyType. An additional value named
// OpenconfigMplsLdp_MplsLdpAdjacencyType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsLdp_MplsLdpAdjacencyType int64

// IsYANGGoEnum ensures that OpenconfigMplsLdp_MplsLdpAdjacencyType implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsLdp_MplsLdpAdjacencyType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsLdp_MplsLdpAdjacencyType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsLdp_MplsLdpAdjacencyType.
func (E_OpenconfigMplsLdp_MplsLdpAdjacencyType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsLdp_MplsLdpAdjacencyType.
func (e E_OpenconfigMplsLdp_MplsLdpAdjacencyType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsLdp_MplsLdpAdjacencyType")
}

const (
	// OpenconfigMplsLdp_MplsLdpAdjacencyType_UNSET corresponds to the value UNSET of OpenconfigMplsLdp_MplsLdpAdjacencyType
	OpenconfigMplsLdp_MplsLdpAdjacencyType_UNSET E_OpenconfigMplsLdp_MplsLdpAdjacencyType = 0
	// OpenconfigMplsLdp_MplsLdpAdjacencyType_LINK corresponds to the value LINK of OpenconfigMplsLdp_MplsLdpAdjacencyType
	OpenconfigMplsLdp_MplsLdpAdjacencyType_LINK E_OpenconfigMplsLdp_MplsLdpAdjacencyType = 1
	// OpenconfigMplsLdp_MplsLdpAdjacencyType_TARGETED corresponds to the value TARGETED of OpenconfigMplsLdp_MplsLdpAdjacencyType
	OpenconfigMplsLdp_MplsLdpAdjacencyType_TARGETED E_OpenconfigMplsLdp_MplsLdpAdjacencyType = 2
)

// E_OpenconfigMplsLdp_MplsLdpAfi is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsLdp_MplsLdpAfi. An additional value named
// OpenconfigMplsLdp_MplsLdpAfi_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsLdp_MplsLdpAfi int64

// IsYANGGoEnum ensures that OpenconfigMplsLdp_MplsLdpAfi implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsLdp_MplsLdpAfi can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsLdp_MplsLdpAfi) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsLdp_MplsLdpAfi.
func (E_OpenconfigMplsLdp_MplsLdpAfi) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigMplsLdp_MplsLdpAfi.
func (e E_OpenconfigMplsLdp_MplsLdpAfi) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsLdp_MplsLdpAfi")
}

const (
	// OpenconfigMplsLdp_MplsLdpAfi_UNSET corresponds to the value UNSET of OpenconfigMplsLdp_MplsLdpAfi
	OpenconfigMplsLdp_MplsLdpAfi_UNSET E_OpenconfigMplsLdp_MplsLdpAfi = 0
	// OpenconfigMplsLdp_MplsLdpAfi_IPV4 corresponds to the value IPV4 of OpenconfigMplsLdp_MplsLdpAfi
	OpenconfigMplsLdp_MplsLdpAfi_IPV4 E_OpenconfigMplsLdp_MplsLdpAfi = 1
	// OpenconfigMplsLdp_MplsLdpAfi_IPV6 corresponds to the value IPV6 of OpenconfigMplsLdp_MplsLdpAfi
	OpenconfigMplsLdp_MplsLdpAfi_IPV6 E_OpenconfigMplsLdp_MplsLdpAfi = 2
)

// E_OpenconfigMplsTypes_LSP_METRIC_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_LSP_METRIC_TYPE. An additional value named
// OpenconfigMplsTypes_LSP_METRIC_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_LSP_METRIC_TYPE int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_LSP_METRIC_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_LSP_METRIC_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_LSP_METRIC_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_LSP_METRIC_TYPE.
func (E_OpenconfigMplsTypes_LSP_METRIC_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_LSP_METRIC_TYPE.
func (e E_OpenconfigMplsTypes_LSP_METRIC_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_LSP_METRIC_TYPE")
}

const (
	// OpenconfigMplsTypes_LSP_METRIC_TYPE_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_LSP_METRIC_TYPE
	OpenconfigMplsTypes_LSP_METRIC_TYPE_UNSET E_OpenconfigMplsTypes_LSP_METRIC_TYPE = 0
	// OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_ABSOLUTE corresponds to the value LSP_METRIC_ABSOLUTE of OpenconfigMplsTypes_LSP_METRIC_TYPE
	OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_ABSOLUTE E_OpenconfigMplsTypes_LSP_METRIC_TYPE = 1
	// OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_INHERITED corresponds to the value LSP_METRIC_INHERITED of OpenconfigMplsTypes_LSP_METRIC_TYPE
	OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_INHERITED E_OpenconfigMplsTypes_LSP_METRIC_TYPE = 2
	// OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_RELATIVE corresponds to the value LSP_METRIC_RELATIVE of OpenconfigMplsTypes_LSP_METRIC_TYPE
	OpenconfigMplsTypes_LSP_METRIC_TYPE_LSP_METRIC_RELATIVE E_OpenconfigMplsTypes_LSP_METRIC_TYPE = 3
)

// E_OpenconfigMplsTypes_LSP_OPER_STATUS is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_LSP_OPER_STATUS. An additional value named
// OpenconfigMplsTypes_LSP_OPER_STATUS_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_LSP_OPER_STATUS int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_LSP_OPER_STATUS implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_LSP_OPER_STATUS can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_LSP_OPER_STATUS) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_LSP_OPER_STATUS.
func (E_OpenconfigMplsTypes_LSP_OPER_STATUS) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_LSP_OPER_STATUS.
func (e E_OpenconfigMplsTypes_LSP_OPER_STATUS) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_LSP_OPER_STATUS")
}

const (
	// OpenconfigMplsTypes_LSP_OPER_STATUS_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_LSP_OPER_STATUS
	OpenconfigMplsTypes_LSP_OPER_STATUS_UNSET E_OpenconfigMplsTypes_LSP_OPER_STATUS = 0
	// OpenconfigMplsTypes_LSP_OPER_STATUS_DOWN corresponds to the value DOWN of OpenconfigMplsTypes_LSP_OPER_STATUS
	OpenconfigMplsTypes_LSP_OPER_STATUS_DOWN E_OpenconfigMplsTypes_LSP_OPER_STATUS = 1
	// OpenconfigMplsTypes_LSP_OPER_STATUS_UP corresponds to the value UP of OpenconfigMplsTypes_LSP_OPER_STATUS
	OpenconfigMplsTypes_LSP_OPER_STATUS_UP E_OpenconfigMplsTypes_LSP_OPER_STATUS = 2
)

// E_OpenconfigMplsTypes_LSP_ROLE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_LSP_ROLE. An additional value named
// OpenconfigMplsTypes_LSP_ROLE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_LSP_ROLE int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_LSP_ROLE implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_LSP_ROLE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_LSP_ROLE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_LSP_ROLE.
func (E_OpenconfigMplsTypes_LSP_ROLE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigMplsTypes_LSP_ROLE.
func (e E_OpenconfigMplsTypes_LSP_ROLE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_LSP_ROLE")
}

const (
	// OpenconfigMplsTypes_LSP_ROLE_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_LSP_ROLE
	OpenconfigMplsTypes_LSP_ROLE_UNSET E_OpenconfigMplsTypes_LSP_ROLE = 0
	// OpenconfigMplsTypes_LSP_ROLE_EGRESS corresponds to the value EGRESS of OpenconfigMplsTypes_LSP_ROLE
	OpenconfigMplsTypes_LSP_ROLE_EGRESS E_OpenconfigMplsTypes_LSP_ROLE = 1
	// OpenconfigMplsTypes_LSP_ROLE_INGRESS corresponds to the value INGRESS of OpenconfigMplsTypes_LSP_ROLE
	OpenconfigMplsTypes_LSP_ROLE_INGRESS E_OpenconfigMplsTypes_LSP_ROLE = 2
	// OpenconfigMplsTypes_LSP_ROLE_TRANSIT corresponds to the value TRANSIT of OpenconfigMplsTypes_LSP_ROLE
	OpenconfigMplsTypes_LSP_ROLE_TRANSIT E_OpenconfigMplsTypes_LSP_ROLE = 3
)

// E_OpenconfigMplsTypes_MplsLabel_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_MplsLabel_Enum. An additional value named
// OpenconfigMplsTypes_MplsLabel_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_MplsLabel_Enum int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_MplsLabel_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_MplsLabel_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_MplsLabel_Enum.
func (E_OpenconfigMplsTypes_MplsLabel_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_MplsLabel_Enum.
func (e E_OpenconfigMplsTypes_MplsLabel_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_MplsLabel_Enum")
}

const (
	// OpenconfigMplsTypes_MplsLabel_Enum_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_MplsLabel_Enum
	OpenconfigMplsTypes_MplsLabel_Enum_UNSET E_OpenconfigMplsTypes_MplsLabel_Enum = 0
	// OpenconfigMplsTypes_MplsLabel_Enum_IPV4_EXPLICIT_NULL corresponds to the value IPV4_EXPLICIT_NULL of OpenconfigMplsTypes_MplsLabel_Enum
	OpenconfigMplsTypes_MplsLabel_Enum_IPV4_EXPLICIT_NULL E_OpenconfigMplsTypes_MplsLabel_Enum = 1
	// OpenconfigMplsTypes_MplsLabel_Enum_ROUTER_ALERT corresponds to the value ROUTER_ALERT of OpenconfigMplsTypes_MplsLabel_Enum
	OpenconfigMplsTypes_MplsLabel_Enum_ROUTER_ALERT E_OpenconfigMplsTypes_MplsLabel_Enum = 2
	// OpenconfigMplsTypes_MplsLabel_Enum_IPV6_EXPLICIT_NULL corresponds to the value IPV6_EXPLICIT_NULL of OpenconfigMplsTypes_MplsLabel_Enum
	OpenconfigMplsTypes_MplsLabel_Enum_IPV6_EXPLICIT_NULL E_OpenconfigMplsTypes_MplsLabel_Enum = 3
	// OpenconfigMplsTypes_MplsLabel_Enum_IMPLICIT_NULL corresponds to the value IMPLICIT_NULL of OpenconfigMplsTypes_MplsLabel_Enum
	OpenconfigMplsTypes_MplsLabel_Enum_IMPLICIT_NULL E_OpenconfigMplsTypes_MplsLabel_Enum = 4
	// OpenconfigMplsTypes_MplsLabel_Enum_ENTROPY_LABEL_INDICATOR corresponds to the value ENTROPY_LABEL_INDICATOR of OpenconfigMplsTypes_MplsLabel_Enum
	OpenconfigMplsTypes_MplsLabel_Enum_ENTROPY_LABEL_INDICATOR E_OpenconfigMplsTypes_MplsLabel_Enum = 8
	// OpenconfigMplsTypes_MplsLabel_Enum_NO_LABEL corresponds to the value NO_LABEL of OpenconfigMplsTypes_MplsLabel_Enum
	OpenconfigMplsTypes_MplsLabel_Enum_NO_LABEL E_OpenconfigMplsTypes_MplsLabel_Enum = 9
)

// E_OpenconfigMplsTypes_NULL_LABEL_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_NULL_LABEL_TYPE. An additional value named
// OpenconfigMplsTypes_NULL_LABEL_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_NULL_LABEL_TYPE int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_NULL_LABEL_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_NULL_LABEL_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_NULL_LABEL_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_NULL_LABEL_TYPE.
func (E_OpenconfigMplsTypes_NULL_LABEL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_NULL_LABEL_TYPE.
func (e E_OpenconfigMplsTypes_NULL_LABEL_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_NULL_LABEL_TYPE")
}

const (
	// OpenconfigMplsTypes_NULL_LABEL_TYPE_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_NULL_LABEL_TYPE
	OpenconfigMplsTypes_NULL_LABEL_TYPE_UNSET E_OpenconfigMplsTypes_NULL_LABEL_TYPE = 0
	// OpenconfigMplsTypes_NULL_LABEL_TYPE_EXPLICIT corresponds to the value EXPLICIT of OpenconfigMplsTypes_NULL_LABEL_TYPE
	OpenconfigMplsTypes_NULL_LABEL_TYPE_EXPLICIT E_OpenconfigMplsTypes_NULL_LABEL_TYPE = 1
	// OpenconfigMplsTypes_NULL_LABEL_TYPE_IMPLICIT corresponds to the value IMPLICIT of OpenconfigMplsTypes_NULL_LABEL_TYPE
	OpenconfigMplsTypes_NULL_LABEL_TYPE_IMPLICIT E_OpenconfigMplsTypes_NULL_LABEL_TYPE = 2
)

// E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_PATH_COMPUTATION_METHOD. An additional value named
// OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_PATH_COMPUTATION_METHOD implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_PATH_COMPUTATION_METHOD can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_PATH_COMPUTATION_METHOD.
func (E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD.
func (e E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD")
}

const (
	// OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_PATH_COMPUTATION_METHOD
	OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_UNSET E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD = 0
	// OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_EXPLICITLY_DEFINED corresponds to the value EXPLICITLY_DEFINED of OpenconfigMplsTypes_PATH_COMPUTATION_METHOD
	OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_EXPLICITLY_DEFINED E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD = 1
	// OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_EXTERNALLY_QUERIED corresponds to the value EXTERNALLY_QUERIED of OpenconfigMplsTypes_PATH_COMPUTATION_METHOD
	OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_EXTERNALLY_QUERIED E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD = 2
	// OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED corresponds to the value LOCALLY_COMPUTED of OpenconfigMplsTypes_PATH_COMPUTATION_METHOD
	OpenconfigMplsTypes_PATH_COMPUTATION_METHOD_LOCALLY_COMPUTED E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD = 3
)

// E_OpenconfigMplsTypes_PATH_METRIC_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_PATH_METRIC_TYPE. An additional value named
// OpenconfigMplsTypes_PATH_METRIC_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_PATH_METRIC_TYPE int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_PATH_METRIC_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_PATH_METRIC_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_PATH_METRIC_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_PATH_METRIC_TYPE.
func (E_OpenconfigMplsTypes_PATH_METRIC_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_PATH_METRIC_TYPE.
func (e E_OpenconfigMplsTypes_PATH_METRIC_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_PATH_METRIC_TYPE")
}

const (
	// OpenconfigMplsTypes_PATH_METRIC_TYPE_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_PATH_METRIC_TYPE
	OpenconfigMplsTypes_PATH_METRIC_TYPE_UNSET E_OpenconfigMplsTypes_PATH_METRIC_TYPE = 0
	// OpenconfigMplsTypes_PATH_METRIC_TYPE_HOP_COUNT corresponds to the value HOP_COUNT of OpenconfigMplsTypes_PATH_METRIC_TYPE
	OpenconfigMplsTypes_PATH_METRIC_TYPE_HOP_COUNT E_OpenconfigMplsTypes_PATH_METRIC_TYPE = 1
	// OpenconfigMplsTypes_PATH_METRIC_TYPE_IGP_METRIC corresponds to the value IGP_METRIC of OpenconfigMplsTypes_PATH_METRIC_TYPE
	OpenconfigMplsTypes_PATH_METRIC_TYPE_IGP_METRIC E_OpenconfigMplsTypes_PATH_METRIC_TYPE = 2
	// OpenconfigMplsTypes_PATH_METRIC_TYPE_PATH_DELAY corresponds to the value PATH_DELAY of OpenconfigMplsTypes_PATH_METRIC_TYPE
	OpenconfigMplsTypes_PATH_METRIC_TYPE_PATH_DELAY E_OpenconfigMplsTypes_PATH_METRIC_TYPE = 3
	// OpenconfigMplsTypes_PATH_METRIC_TYPE_TE_METRIC corresponds to the value TE_METRIC of OpenconfigMplsTypes_PATH_METRIC_TYPE
	OpenconfigMplsTypes_PATH_METRIC_TYPE_TE_METRIC E_OpenconfigMplsTypes_PATH_METRIC_TYPE = 4
)

// E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_PATH_SETUP_PROTOCOL. An additional value named
// OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_PATH_SETUP_PROTOCOL implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_PATH_SETUP_PROTOCOL can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_PATH_SETUP_PROTOCOL.
func (E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL.
func (e E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL")
}

const (
	// OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_PATH_SETUP_PROTOCOL
	OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_UNSET E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL = 0
	// OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_PATH_SETUP_LDP corresponds to the value PATH_SETUP_LDP of OpenconfigMplsTypes_PATH_SETUP_PROTOCOL
	OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_PATH_SETUP_LDP E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL = 1
	// OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_PATH_SETUP_RSVP corresponds to the value PATH_SETUP_RSVP of OpenconfigMplsTypes_PATH_SETUP_PROTOCOL
	OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_PATH_SETUP_RSVP E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL = 2
	// OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_PATH_SETUP_SR corresponds to the value PATH_SETUP_SR of OpenconfigMplsTypes_PATH_SETUP_PROTOCOL
	OpenconfigMplsTypes_PATH_SETUP_PROTOCOL_PATH_SETUP_SR E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL = 3
)

// E_OpenconfigMplsTypes_PROTECTION_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_PROTECTION_TYPE. An additional value named
// OpenconfigMplsTypes_PROTECTION_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_PROTECTION_TYPE int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_PROTECTION_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_PROTECTION_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_PROTECTION_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_PROTECTION_TYPE.
func (E_OpenconfigMplsTypes_PROTECTION_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_PROTECTION_TYPE.
func (e E_OpenconfigMplsTypes_PROTECTION_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_PROTECTION_TYPE")
}

const (
	// OpenconfigMplsTypes_PROTECTION_TYPE_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_PROTECTION_TYPE
	OpenconfigMplsTypes_PROTECTION_TYPE_UNSET E_OpenconfigMplsTypes_PROTECTION_TYPE = 0
	// OpenconfigMplsTypes_PROTECTION_TYPE_LINK_NODE_PROTECTION_REQUESTED corresponds to the value LINK_NODE_PROTECTION_REQUESTED of OpenconfigMplsTypes_PROTECTION_TYPE
	OpenconfigMplsTypes_PROTECTION_TYPE_LINK_NODE_PROTECTION_REQUESTED E_OpenconfigMplsTypes_PROTECTION_TYPE = 1
	// OpenconfigMplsTypes_PROTECTION_TYPE_LINK_PROTECTION_REQUIRED corresponds to the value LINK_PROTECTION_REQUIRED of OpenconfigMplsTypes_PROTECTION_TYPE
	OpenconfigMplsTypes_PROTECTION_TYPE_LINK_PROTECTION_REQUIRED E_OpenconfigMplsTypes_PROTECTION_TYPE = 2
	// OpenconfigMplsTypes_PROTECTION_TYPE_UNPROTECTED corresponds to the value UNPROTECTED of OpenconfigMplsTypes_PROTECTION_TYPE
	OpenconfigMplsTypes_PROTECTION_TYPE_UNPROTECTED E_OpenconfigMplsTypes_PROTECTION_TYPE = 3
)

// E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION. An additional value named
// OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION.
func (E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION.
func (e E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION")
}

const (
	// OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION
	OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION_UNSET E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION = 0
	// OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION_PWE_ETHERNET_RAW_MODE corresponds to the value PWE_ETHERNET_RAW_MODE of OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION
	OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION_PWE_ETHERNET_RAW_MODE E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION = 1
	// OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION_PWE_ETHERNET_TAGGED_MODE corresponds to the value PWE_ETHERNET_TAGGED_MODE of OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION
	OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION_PWE_ETHERNET_TAGGED_MODE E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION = 2
)

// E_OpenconfigMplsTypes_RSVP_AUTH_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_RSVP_AUTH_TYPE. An additional value named
// OpenconfigMplsTypes_RSVP_AUTH_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_RSVP_AUTH_TYPE int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_RSVP_AUTH_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_RSVP_AUTH_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_RSVP_AUTH_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_RSVP_AUTH_TYPE.
func (E_OpenconfigMplsTypes_RSVP_AUTH_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_RSVP_AUTH_TYPE.
func (e E_OpenconfigMplsTypes_RSVP_AUTH_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_RSVP_AUTH_TYPE")
}

const (
	// OpenconfigMplsTypes_RSVP_AUTH_TYPE_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_RSVP_AUTH_TYPE
	OpenconfigMplsTypes_RSVP_AUTH_TYPE_UNSET E_OpenconfigMplsTypes_RSVP_AUTH_TYPE = 0
	// OpenconfigMplsTypes_RSVP_AUTH_TYPE_RSVP_AUTH_MD5 corresponds to the value RSVP_AUTH_MD5 of OpenconfigMplsTypes_RSVP_AUTH_TYPE
	OpenconfigMplsTypes_RSVP_AUTH_TYPE_RSVP_AUTH_MD5 E_OpenconfigMplsTypes_RSVP_AUTH_TYPE = 1
)

// E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS. An additional value named
// OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS.
func (E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS.
func (e E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS")
}

const (
	// OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS
	OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_UNSET E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS = 0
	// OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_DOWN corresponds to the value ADMIN_DOWN of OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS
	OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_DOWN E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS = 1
	// OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_UP corresponds to the value ADMIN_UP of OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS
	OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS_ADMIN_UP E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS = 2
)

// E_OpenconfigMplsTypes_TUNNEL_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigMplsTypes_TUNNEL_TYPE. An additional value named
// OpenconfigMplsTypes_TUNNEL_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMplsTypes_TUNNEL_TYPE int64

// IsYANGGoEnum ensures that OpenconfigMplsTypes_TUNNEL_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigMplsTypes_TUNNEL_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMplsTypes_TUNNEL_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMplsTypes_TUNNEL_TYPE.
func (E_OpenconfigMplsTypes_TUNNEL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMplsTypes_TUNNEL_TYPE.
func (e E_OpenconfigMplsTypes_TUNNEL_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMplsTypes_TUNNEL_TYPE")
}

const (
	// OpenconfigMplsTypes_TUNNEL_TYPE_UNSET corresponds to the value UNSET of OpenconfigMplsTypes_TUNNEL_TYPE
	OpenconfigMplsTypes_TUNNEL_TYPE_UNSET E_OpenconfigMplsTypes_TUNNEL_TYPE = 0
	// OpenconfigMplsTypes_TUNNEL_TYPE_P2MP corresponds to the value P2MP of OpenconfigMplsTypes_TUNNEL_TYPE
	OpenconfigMplsTypes_TUNNEL_TYPE_P2MP E_OpenconfigMplsTypes_TUNNEL_TYPE = 1
	// OpenconfigMplsTypes_TUNNEL_TYPE_P2P corresponds to the value P2P of OpenconfigMplsTypes_TUNNEL_TYPE
	OpenconfigMplsTypes_TUNNEL_TYPE_P2P E_OpenconfigMplsTypes_TUNNEL_TYPE = 2
)

// E_OpenconfigMpls_CspfTieBreaking is a derived int64 type which is used to represent
// the enumerated node OpenconfigMpls_CspfTieBreaking. An additional value named
// OpenconfigMpls_CspfTieBreaking_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMpls_CspfTieBreaking int64

// IsYANGGoEnum ensures that OpenconfigMpls_CspfTieBreaking implements the yang.GoEnum
// interface. This ensures that OpenconfigMpls_CspfTieBreaking can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMpls_CspfTieBreaking) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMpls_CspfTieBreaking.
func (E_OpenconfigMpls_CspfTieBreaking) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMpls_CspfTieBreaking.
func (e E_OpenconfigMpls_CspfTieBreaking) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMpls_CspfTieBreaking")
}

const (
	// OpenconfigMpls_CspfTieBreaking_UNSET corresponds to the value UNSET of OpenconfigMpls_CspfTieBreaking
	OpenconfigMpls_CspfTieBreaking_UNSET E_OpenconfigMpls_CspfTieBreaking = 0
	// OpenconfigMpls_CspfTieBreaking_RANDOM corresponds to the value RANDOM of OpenconfigMpls_CspfTieBreaking
	OpenconfigMpls_CspfTieBreaking_RANDOM E_OpenconfigMpls_CspfTieBreaking = 1
	// OpenconfigMpls_CspfTieBreaking_LEAST_FILL corresponds to the value LEAST_FILL of OpenconfigMpls_CspfTieBreaking
	OpenconfigMpls_CspfTieBreaking_LEAST_FILL E_OpenconfigMpls_CspfTieBreaking = 2
	// OpenconfigMpls_CspfTieBreaking_MOST_FILL corresponds to the value MOST_FILL of OpenconfigMpls_CspfTieBreaking
	OpenconfigMpls_CspfTieBreaking_MOST_FILL E_OpenconfigMpls_CspfTieBreaking = 3
)

// E_OpenconfigMpls_MplsHopType is a derived int64 type which is used to represent
// the enumerated node OpenconfigMpls_MplsHopType. An additional value named
// OpenconfigMpls_MplsHopType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMpls_MplsHopType int64

// IsYANGGoEnum ensures that OpenconfigMpls_MplsHopType implements the yang.GoEnum
// interface. This ensures that OpenconfigMpls_MplsHopType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMpls_MplsHopType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMpls_MplsHopType.
func (E_OpenconfigMpls_MplsHopType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigMpls_MplsHopType.
func (e E_OpenconfigMpls_MplsHopType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMpls_MplsHopType")
}

const (
	// OpenconfigMpls_MplsHopType_UNSET corresponds to the value UNSET of OpenconfigMpls_MplsHopType
	OpenconfigMpls_MplsHopType_UNSET E_OpenconfigMpls_MplsHopType = 0
	// OpenconfigMpls_MplsHopType_LOOSE corresponds to the value LOOSE of OpenconfigMpls_MplsHopType
	OpenconfigMpls_MplsHopType_LOOSE E_OpenconfigMpls_MplsHopType = 1
	// OpenconfigMpls_MplsHopType_STRICT corresponds to the value STRICT of OpenconfigMpls_MplsHopType
	OpenconfigMpls_MplsHopType_STRICT E_OpenconfigMpls_MplsHopType = 2
)

// E_OpenconfigMpls_MplsSrlgFloodingType is a derived int64 type which is used to represent
// the enumerated node OpenconfigMpls_MplsSrlgFloodingType. An additional value named
// OpenconfigMpls_MplsSrlgFloodingType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMpls_MplsSrlgFloodingType int64

// IsYANGGoEnum ensures that OpenconfigMpls_MplsSrlgFloodingType implements the yang.GoEnum
// interface. This ensures that OpenconfigMpls_MplsSrlgFloodingType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMpls_MplsSrlgFloodingType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMpls_MplsSrlgFloodingType.
func (E_OpenconfigMpls_MplsSrlgFloodingType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMpls_MplsSrlgFloodingType.
func (e E_OpenconfigMpls_MplsSrlgFloodingType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMpls_MplsSrlgFloodingType")
}

const (
	// OpenconfigMpls_MplsSrlgFloodingType_UNSET corresponds to the value UNSET of OpenconfigMpls_MplsSrlgFloodingType
	OpenconfigMpls_MplsSrlgFloodingType_UNSET E_OpenconfigMpls_MplsSrlgFloodingType = 0
	// OpenconfigMpls_MplsSrlgFloodingType_FLOODED_SRLG corresponds to the value FLOODED_SRLG of OpenconfigMpls_MplsSrlgFloodingType
	OpenconfigMpls_MplsSrlgFloodingType_FLOODED_SRLG E_OpenconfigMpls_MplsSrlgFloodingType = 1
	// OpenconfigMpls_MplsSrlgFloodingType_STATIC_SRLG corresponds to the value STATIC_SRLG of OpenconfigMpls_MplsSrlgFloodingType
	OpenconfigMpls_MplsSrlgFloodingType_STATIC_SRLG E_OpenconfigMpls_MplsSrlgFloodingType = 2
)

// E_OpenconfigMpls_TeBandwidthType is a derived int64 type which is used to represent
// the enumerated node OpenconfigMpls_TeBandwidthType. An additional value named
// OpenconfigMpls_TeBandwidthType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigMpls_TeBandwidthType int64

// IsYANGGoEnum ensures that OpenconfigMpls_TeBandwidthType implements the yang.GoEnum
// interface. This ensures that OpenconfigMpls_TeBandwidthType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigMpls_TeBandwidthType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigMpls_TeBandwidthType.
func (E_OpenconfigMpls_TeBandwidthType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigMpls_TeBandwidthType.
func (e E_OpenconfigMpls_TeBandwidthType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigMpls_TeBandwidthType")
}

const (
	// OpenconfigMpls_TeBandwidthType_UNSET corresponds to the value UNSET of OpenconfigMpls_TeBandwidthType
	OpenconfigMpls_TeBandwidthType_UNSET E_OpenconfigMpls_TeBandwidthType = 0
	// OpenconfigMpls_TeBandwidthType_SPECIFIED corresponds to the value SPECIFIED of OpenconfigMpls_TeBandwidthType
	OpenconfigMpls_TeBandwidthType_SPECIFIED E_OpenconfigMpls_TeBandwidthType = 1
	// OpenconfigMpls_TeBandwidthType_AUTO corresponds to the value AUTO of OpenconfigMpls_TeBandwidthType
	OpenconfigMpls_TeBandwidthType_AUTO E_OpenconfigMpls_TeBandwidthType = 2
)

// E_OpenconfigNetworkInstanceTypes_ENCAPSULATION is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstanceTypes_ENCAPSULATION. An additional value named
// OpenconfigNetworkInstanceTypes_ENCAPSULATION_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstanceTypes_ENCAPSULATION int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstanceTypes_ENCAPSULATION implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstanceTypes_ENCAPSULATION can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstanceTypes_ENCAPSULATION) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstanceTypes_ENCAPSULATION.
func (E_OpenconfigNetworkInstanceTypes_ENCAPSULATION) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstanceTypes_ENCAPSULATION.
func (e E_OpenconfigNetworkInstanceTypes_ENCAPSULATION) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstanceTypes_ENCAPSULATION")
}

const (
	// OpenconfigNetworkInstanceTypes_ENCAPSULATION_UNSET corresponds to the value UNSET of OpenconfigNetworkInstanceTypes_ENCAPSULATION
	OpenconfigNetworkInstanceTypes_ENCAPSULATION_UNSET E_OpenconfigNetworkInstanceTypes_ENCAPSULATION = 0
	// OpenconfigNetworkInstanceTypes_ENCAPSULATION_MPLS corresponds to the value MPLS of OpenconfigNetworkInstanceTypes_ENCAPSULATION
	OpenconfigNetworkInstanceTypes_ENCAPSULATION_MPLS E_OpenconfigNetworkInstanceTypes_ENCAPSULATION = 1
	// OpenconfigNetworkInstanceTypes_ENCAPSULATION_VXLAN corresponds to the value VXLAN of OpenconfigNetworkInstanceTypes_ENCAPSULATION
	OpenconfigNetworkInstanceTypes_ENCAPSULATION_VXLAN E_OpenconfigNetworkInstanceTypes_ENCAPSULATION = 2
)

// E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE. An additional value named
// OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE.
func (E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE.
func (e E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE")
}

const (
	// OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE_UNSET corresponds to the value UNSET of OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE
	OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE_UNSET E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE = 0
	// OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE_LOCAL corresponds to the value LOCAL of OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE
	OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE_LOCAL E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE = 1
	// OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE_REMOTE corresponds to the value REMOTE of OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE
	OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE_REMOTE E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE = 2
)

// E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE. An additional value named
// OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE.
func (E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE.
func (e E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE")
}

const (
	// OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_UNSET corresponds to the value UNSET of OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE
	OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_UNSET E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE = 0
	// OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_INSTANCE_LABEL corresponds to the value INSTANCE_LABEL of OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE
	OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_INSTANCE_LABEL E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE = 1
	// OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_PER_NEXTHOP corresponds to the value PER_NEXTHOP of OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE
	OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_PER_NEXTHOP E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE = 2
	// OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_PER_PREFIX corresponds to the value PER_PREFIX of OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE
	OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE_PER_PREFIX E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE = 3
)

// E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE. An additional value named
// OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE.
func (E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE.
func (e E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE")
}

const (
	// OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_UNSET corresponds to the value UNSET of OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE
	OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_UNSET E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE = 0
	// OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_DEFAULT_INSTANCE corresponds to the value DEFAULT_INSTANCE of OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE
	OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_DEFAULT_INSTANCE E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE = 1
	// OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L2L3 corresponds to the value L2L3 of OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE
	OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L2L3 E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE = 2
	// OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L2P2P corresponds to the value L2P2P of OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE
	OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L2P2P E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE = 3
	// OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L2VSI corresponds to the value L2VSI of OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE
	OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L2VSI E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE = 4
	// OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L3VRF corresponds to the value L3VRF of OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE
	OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE_L3VRF E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE = 5
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState_UP corresponds to the value UP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState_UP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState_DOWN corresponds to the value DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum_STATIC_INGRESS_REPLICATION corresponds to the value STATIC_INGRESS_REPLICATION of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum_STATIC_INGRESS_REPLICATION E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum_BGP_INGRESS_REPLICATION corresponds to the value BGP_INGRESS_REPLICATION of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum_BGP_INGRESS_REPLICATION E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState_UP corresponds to the value UP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState_UP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState_DOWN corresponds to the value DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState_UP corresponds to the value UP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState_UP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState_DOWN corresponds to the value DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType_L2 corresponds to the value L2 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType_L2 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType_L3 corresponds to the value L3 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType_L3 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_STATIC_INGRESS_REPLICATION corresponds to the value STATIC_INGRESS_REPLICATION of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_STATIC_INGRESS_REPLICATION E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_BGP corresponds to the value BGP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_BGP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_MULTICAST corresponds to the value MULTICAST of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode_MULTICAST E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum_AUTO corresponds to the value AUTO of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum_AUTO E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum_AUTO corresponds to the value AUTO of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum_AUTO E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum_AUTO corresponds to the value AUTO of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum_AUTO E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState_FROZEN corresponds to the value FROZEN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState_FROZEN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState_DUPLICATE corresponds to the value DUPLICATE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState_DUPLICATE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_LOCAL corresponds to the value LOCAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_LOCAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_STATIC corresponds to the value STATIC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_STATIC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_BGP corresponds to the value BGP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer_BGP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_ESI corresponds to the value ESI of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_ESI E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_ESI_EVI corresponds to the value ESI_EVI of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_ESI_EVI E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_BASE_ECMP corresponds to the value BASE_ECMP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type_BASE_ECMP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType_STATIC corresponds to the value STATIC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType_STATIC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType_DYNAMIC corresponds to the value DYNAMIC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType_DYNAMIC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_DISTRIBUTED_SYMETRIC corresponds to the value DISTRIBUTED_SYMETRIC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_DISTRIBUTED_SYMETRIC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_DISTRIBUTED_ASYMETRIC corresponds to the value DISTRIBUTED_ASYMETRIC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_DISTRIBUTED_ASYMETRIC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_HYBRID corresponds to the value HYBRID of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_HYBRID E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_CENTRALIZED corresponds to the value CENTRALIZED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway_CENTRALIZED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway = 4
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_ADJ_SID_ONLY corresponds to the value ADJ_SID_ONLY of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_ADJ_SID_ONLY E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_MIXED_MODE corresponds to the value MIXED_MODE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode_MIXED_MODE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_NON_EXISTENT corresponds to the value NON_EXISTENT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_NON_EXISTENT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_INITIALIZED corresponds to the value INITIALIZED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_INITIALIZED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_OPENREC corresponds to the value OPENREC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_OPENREC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_OPENSENT corresponds to the value OPENSENT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_OPENSENT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_OPERATIONAL corresponds to the value OPERATIONAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState_OPERATIONAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState = 5
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum_ALL corresponds to the value ALL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum_ALL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus_UP corresponds to the value UP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus_UP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus_DOWN corresponds to the value DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_IPV4 corresponds to the value IPV4 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_IPV4 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_IPV6 corresponds to the value IPV6 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_IPV6 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_ASN corresponds to the value ASN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_ASN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_ASN4 corresponds to the value ASN4 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_ASN4 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_LABEL corresponds to the value LABEL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_LABEL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type = 5
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_UNNUMBERED_INTERFACE corresponds to the value UNNUMBERED_INTERFACE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type_UNNUMBERED_INTERFACE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type = 6
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status_UP corresponds to the value UP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status_UP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status_DOWN corresponds to the value DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification_MIRRORED_UP_DOWN corresponds to the value MIRRORED_UP_DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification_MIRRORED_UP_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification_SEPARATE_UP_DOWN corresponds to the value SEPARATE_UP_DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification_SEPARATE_UP_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType_DELTA corresponds to the value DELTA of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType_DELTA E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType_THRESHOLD_CROSSED corresponds to the value THRESHOLD_CROSSED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType_THRESHOLD_CROSSED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_PBR_POLICY corresponds to the value PBR_POLICY of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_PBR_POLICY E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_VRF_SELECTION_POLICY corresponds to the value VRF_SELECTION_POLICY of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type_VRF_SELECTION_POLICY E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_HELPER_ONLY corresponds to the value HELPER_ONLY of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_HELPER_ONLY E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_BILATERAL corresponds to the value BILATERAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_BILATERAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_REMOTE_HELPER corresponds to the value REMOTE_HELPER of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode_REMOTE_HELPER E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_IDLE corresponds to the value IDLE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_IDLE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_CONNECT corresponds to the value CONNECT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_CONNECT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_ACTIVE corresponds to the value ACTIVE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_ACTIVE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_OPENSENT corresponds to the value OPENSENT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_OPENSENT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_OPENCONFIRM corresponds to the value OPENCONFIRM of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_OPENCONFIRM E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState = 5
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_ESTABLISHED corresponds to the value ESTABLISHED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState_ESTABLISHED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState = 6
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_MPLS_SID corresponds to the value MPLS_SID of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_MPLS_SID E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_SID corresponds to the value IPV6_SID of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_SID E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV4_NODE_ADDRESS corresponds to the value IPV4_NODE_ADDRESS of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV4_NODE_ADDRESS E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_NODE_ADDRESS corresponds to the value IPV6_NODE_ADDRESS of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_NODE_ADDRESS E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 5
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV4_LOCAL_INTF_ID corresponds to the value IPV4_LOCAL_INTF_ID of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV4_LOCAL_INTF_ID E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 6
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV4_LOCAL_REMOTE_ADDR corresponds to the value IPV4_LOCAL_REMOTE_ADDR of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV4_LOCAL_REMOTE_ADDR E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 7
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_LOCAL_INTF_ID corresponds to the value IPV6_LOCAL_INTF_ID of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_LOCAL_INTF_ID E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 8
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_LOCAL_REMOTE_ADDR corresponds to the value IPV6_LOCAL_REMOTE_ADDR of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type_IPV6_LOCAL_REMOTE_ADDR E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type = 9
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid_IPV4 corresponds to the value IPV4 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid_IPV4 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid_IPV6 corresponds to the value IPV6 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid_IPV6 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum_DYNAMIC corresponds to the value DYNAMIC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum_DYNAMIC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions_NO_PHP corresponds to the value NO_PHP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions_NO_PHP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions_EXPLICIT_NULL corresponds to the value EXPLICIT_NULL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions_EXPLICIT_NULL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_auto corresponds to the value auto of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_auto E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_none corresponds to the value none of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum_none E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_PARTITION_REPAIR corresponds to the value PARTITION_REPAIR of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_PARTITION_REPAIR E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_ERROR corresponds to the value ATTACHED_ERROR of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_ERROR E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_EXPENSE corresponds to the value ATTACHED_EXPENSE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_EXPENSE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_DELAY corresponds to the value ATTACHED_DELAY of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_DELAY E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_DEFAULT corresponds to the value ATTACHED_DEFAULT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_ATTACHED_DEFAULT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags = 5
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_OVERLOAD corresponds to the value OVERLOAD of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags_OVERLOAD E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags = 6
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType_LEVEL_1 corresponds to the value LEVEL_1 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType_LEVEL_1 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType_LEVEL_2 corresponds to the value LEVEL_2 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType_LEVEL_2 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType_HMAC_MD5 corresponds to the value HMAC_MD5 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType_HMAC_MD5 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType_CLEARTEXT corresponds to the value CLEARTEXT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType_CLEARTEXT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_EXTERNAL_FLAG corresponds to the value EXTERNAL_FLAG of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_EXTERNAL_FLAG E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_READVERTISEMENT_FLAG corresponds to the value READVERTISEMENT_FLAG of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_READVERTISEMENT_FLAG E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_NODE_FLAG corresponds to the value NODE_FLAG of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags_NODE_FLAG E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_READVERTISEMENT corresponds to the value READVERTISEMENT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_READVERTISEMENT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_NODE corresponds to the value NODE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_NODE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_NO_PHP corresponds to the value NO_PHP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_NO_PHP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_EXPLICIT_NULL corresponds to the value EXPLICIT_NULL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_EXPLICIT_NULL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_VALUE corresponds to the value VALUE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_VALUE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags = 5
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_LOCAL corresponds to the value LOCAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags_LOCAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags = 6
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_ADDRESS_FAMILY corresponds to the value ADDRESS_FAMILY of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_ADDRESS_FAMILY E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_BACKUP corresponds to the value BACKUP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_BACKUP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_VALUE corresponds to the value VALUE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_VALUE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_LOCAL corresponds to the value LOCAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_LOCAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_SET corresponds to the value SET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags_SET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags = 5
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_ADDRESS_FAMILY corresponds to the value ADDRESS_FAMILY of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_ADDRESS_FAMILY E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_BACKUP corresponds to the value BACKUP of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_BACKUP E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_VALUE corresponds to the value VALUE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_VALUE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_LOCAL corresponds to the value LOCAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_LOCAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_SET corresponds to the value SET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags_SET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags = 5
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection_LOCAL_PROTECTION corresponds to the value LOCAL_PROTECTION of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection_LOCAL_PROTECTION E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection_LINK_EXCLUDED corresponds to the value LINK_EXCLUDED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection_LINK_EXCLUDED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_EXTRA_TRAFFIC corresponds to the value EXTRA_TRAFFIC of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_EXTRA_TRAFFIC E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_UNPROTECTED corresponds to the value UNPROTECTED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_UNPROTECTED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_SHARED corresponds to the value SHARED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_SHARED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_ONE_ONE corresponds to the value ONE_ONE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_ONE_ONE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_PLUS_ONE corresponds to the value PLUS_ONE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_PLUS_ONE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type = 5
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_ENHANCED corresponds to the value ENHANCED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type_ENHANCED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type = 6
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags_INTERNAL corresponds to the value INTERNAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags_INTERNAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags_NUMBERED corresponds to the value NUMBERED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags_NUMBERED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags_NA corresponds to the value NA of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags_NA E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes_OVERLOAD corresponds to the value OVERLOAD of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes_OVERLOAD E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes_ATTACHED corresponds to the value ATTACHED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes_ATTACHED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid_IPV4 corresponds to the value IPV4 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid_IPV4 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid_IPV6 corresponds to the value IPV6 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid_IPV6 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags_FLOOD corresponds to the value FLOOD of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags_FLOOD E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags_DOWN corresponds to the value DOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags_DOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm_SPF corresponds to the value SPF of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm_SPF E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm_STRICT_SPF corresponds to the value STRICT_SPF of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm_STRICT_SPF E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_IPV4_MPLS corresponds to the value IPV4_MPLS of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_IPV4_MPLS E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_IPV6_MPLS corresponds to the value IPV6_MPLS of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_IPV6_MPLS E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_IPV6_SR corresponds to the value IPV6_SR of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags_IPV6_SR E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType_TYPE_1 corresponds to the value TYPE_1 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType_TYPE_1 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType_TYPE_2 corresponds to the value TYPE_2 of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType_TYPE_2 E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily_IPV4_UNICAST corresponds to the value IPV4_UNICAST of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily_IPV4_UNICAST E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_UNSPECIFIED corresponds to the value UNSPECIFIED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_UNSPECIFIED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_INTRA_AREA corresponds to the value INTRA_AREA of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_INTRA_AREA E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_INTER_AREA corresponds to the value INTER_AREA of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_INTER_AREA E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType = 4
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_AS_EXTERNAL corresponds to the value AS_EXTERNAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_AS_EXTERNAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType = 6
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_NSSA_EXTERNAL corresponds to the value NSSA_EXTERNAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType_NSSA_EXTERNAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType = 8
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope_LOCAL corresponds to the value LOCAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope_LOCAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope_GLOBAL corresponds to the value GLOBAL of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope_GLOBAL E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType_ABSOLUTE corresponds to the value ABSOLUTE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType_ABSOLUTE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType_INDEX corresponds to the value INDEX of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType_INDEX E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_UNKNOWN corresponds to the value UNKNOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_UNKNOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_SOFTWARE_RESTART corresponds to the value SOFTWARE_RESTART of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_SOFTWARE_RESTART E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_SOFTWARE_RELOAD_UPGRADE corresponds to the value SOFTWARE_RELOAD_UPGRADE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_SOFTWARE_RELOAD_UPGRADE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason = 3
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_CONTROL_PROCESSOR_SWITCH corresponds to the value CONTROL_PROCESSOR_SWITCH of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason_CONTROL_PROCESSOR_SWITCH E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason = 4
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum_UNKNOWN corresponds to the value UNKNOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum_UNKNOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum_UNKNOWN corresponds to the value UNKNOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum_UNKNOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_LINK corresponds to the value LINK of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_LINK E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_AREA corresponds to the value AREA of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_AREA E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_AS corresponds to the value AS of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope_AS E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_POINT_TO_POINT corresponds to the value POINT_TO_POINT of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_POINT_TO_POINT E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_MULTI_ACCESS corresponds to the value MULTI_ACCESS of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_MULTI_ACCESS E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType = 2
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_UNKNOWN corresponds to the value UNKNOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType_UNKNOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType = 3
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum_UNKNOWN corresponds to the value UNKNOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum_UNKNOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum_UNKNOWN corresponds to the value UNKNOWN of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum_UNKNOWN E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum = 1
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC1583_COMPATIBLE corresponds to the value RFC1583_COMPATIBLE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC1583_COMPATIBLE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC2328_COMPATIBLE corresponds to the value RFC2328_COMPATIBLE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode_RFC2328_COMPATIBLE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType_LINEAR_BACKOFF corresponds to the value LINEAR_BACKOFF of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType_LINEAR_BACKOFF E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType_EXPONENTIAL_BACKOFF corresponds to the value EXPONENTIAL_BACKOFF of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType_EXPONENTIAL_BACKOFF E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType = 2
)

// E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status is a derived int64 type which is used to represent
// the enumerated node OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status. An additional value named
// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status int64

// IsYANGGoEnum ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status implements the yang.GoEnum
// interface. This ensures that OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status.
func (E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status.
func (e E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status")
}

const (
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_UNSET corresponds to the value UNSET of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_UNSET E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status = 0
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_ACTIVE corresponds to the value ACTIVE of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_ACTIVE E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status = 1
	// OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_SUSPENDED corresponds to the value SUSPENDED of OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status
	OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status_SUSPENDED E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status = 2
)

// E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES. An additional value named
// OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES.
func (E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES.
func (e E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES")
}

const (
	// OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES
	OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_UNSET E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES = 0
	// OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_GRACE_IP_INTERFACE_ADDRESS corresponds to the value GRACE_IP_INTERFACE_ADDRESS of OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES
	OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_GRACE_IP_INTERFACE_ADDRESS E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES = 1
	// OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_GRACE_PERIOD corresponds to the value GRACE_PERIOD of OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES
	OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_GRACE_PERIOD E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES = 2
	// OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_GRACE_RESTART_REASON corresponds to the value GRACE_RESTART_REASON of OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES
	OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES_GRACE_RESTART_REASON E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES = 3
)

// E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_MAX_METRIC_INCLUDE. An additional value named
// OpenconfigOspfTypes_MAX_METRIC_INCLUDE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_MAX_METRIC_INCLUDE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_MAX_METRIC_INCLUDE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_MAX_METRIC_INCLUDE.
func (E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE.
func (e E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE")
}

const (
	// OpenconfigOspfTypes_MAX_METRIC_INCLUDE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_MAX_METRIC_INCLUDE
	OpenconfigOspfTypes_MAX_METRIC_INCLUDE_UNSET E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE = 0
	// OpenconfigOspfTypes_MAX_METRIC_INCLUDE_MAX_METRIC_INCLUDE_STUB corresponds to the value MAX_METRIC_INCLUDE_STUB of OpenconfigOspfTypes_MAX_METRIC_INCLUDE
	OpenconfigOspfTypes_MAX_METRIC_INCLUDE_MAX_METRIC_INCLUDE_STUB E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE = 1
	// OpenconfigOspfTypes_MAX_METRIC_INCLUDE_MAX_METRIC_INCLUDE_TYPE2_EXTERNAL corresponds to the value MAX_METRIC_INCLUDE_TYPE2_EXTERNAL of OpenconfigOspfTypes_MAX_METRIC_INCLUDE
	OpenconfigOspfTypes_MAX_METRIC_INCLUDE_MAX_METRIC_INCLUDE_TYPE2_EXTERNAL E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE = 2
)

// E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_MAX_METRIC_TRIGGER. An additional value named
// OpenconfigOspfTypes_MAX_METRIC_TRIGGER_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_MAX_METRIC_TRIGGER implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_MAX_METRIC_TRIGGER can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_MAX_METRIC_TRIGGER.
func (E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER.
func (e E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER")
}

const (
	// OpenconfigOspfTypes_MAX_METRIC_TRIGGER_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_MAX_METRIC_TRIGGER
	OpenconfigOspfTypes_MAX_METRIC_TRIGGER_UNSET E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER = 0
	// OpenconfigOspfTypes_MAX_METRIC_TRIGGER_MAX_METRIC_ON_SYSTEM_BOOT corresponds to the value MAX_METRIC_ON_SYSTEM_BOOT of OpenconfigOspfTypes_MAX_METRIC_TRIGGER
	OpenconfigOspfTypes_MAX_METRIC_TRIGGER_MAX_METRIC_ON_SYSTEM_BOOT E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER = 1
)

// E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE. An additional value named
// OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE.
func (E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE.
func (e E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE_UNSET E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE = 0
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE_ADJACENCY_SID corresponds to the value ADJACENCY_SID of OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE_ADJACENCY_SID E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE = 1
)

// E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE. An additional value named
// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE.
func (E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE.
func (e E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_UNSET E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE = 0
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_ERO_METRIC corresponds to the value ERO_METRIC of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_ERO_METRIC E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE = 1
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_ERO_PATH corresponds to the value ERO_PATH of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_ERO_PATH E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE = 2
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_SID_MPLS_LABEL_BINDING corresponds to the value SID_MPLS_LABEL_BINDING of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE_SID_MPLS_LABEL_BINDING E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE = 3
)

// E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE. An additional value named
// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE.
func (E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE.
func (e E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_UNSET E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE = 0
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_EXTENDED_PREFIX_RANGE corresponds to the value EXTENDED_PREFIX_RANGE of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_EXTENDED_PREFIX_RANGE E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE = 1
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_PREFIX_SID corresponds to the value PREFIX_SID of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_PREFIX_SID E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE = 2
	// OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_SID_LABEL_BINDING corresponds to the value SID_LABEL_BINDING of OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE_SID_LABEL_BINDING E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE = 3
)

// E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE. An additional value named
// OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE.
func (E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE.
func (e E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE_UNSET E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE = 0
	// OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE_IPV4_SEGMENT corresponds to the value IPV4_SEGMENT of OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE_IPV4_SEGMENT E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE = 1
	// OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE_UNNUMBERED_INTERFACE_SEGMENT corresponds to the value UNNUMBERED_INTERFACE_SEGMENT of OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE
	OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE_UNNUMBERED_INTERFACE_SEGMENT E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE = 2
)

// E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE. An additional value named
// OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE.
func (E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE.
func (e E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE
	OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_UNSET E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE = 0
	// OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_POINT_TO_POINT_LINK corresponds to the value POINT_TO_POINT_LINK of OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE
	OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_POINT_TO_POINT_LINK E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE = 1
	// OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_STUB_NETWORK_LINK corresponds to the value STUB_NETWORK_LINK of OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE
	OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_STUB_NETWORK_LINK E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE = 2
	// OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_TRANSIT_NETWORK_LINK corresponds to the value TRANSIT_NETWORK_LINK of OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE
	OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_TRANSIT_NETWORK_LINK E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE = 3
	// OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_VIRTUAL_LINK corresponds to the value VIRTUAL_LINK of OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE
	OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE_VIRTUAL_LINK E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE = 4
)

// E_OpenconfigOspfTypes_OSPF_LSA_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPF_LSA_TYPE. An additional value named
// OpenconfigOspfTypes_OSPF_LSA_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPF_LSA_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPF_LSA_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPF_LSA_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPF_LSA_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPF_LSA_TYPE.
func (E_OpenconfigOspfTypes_OSPF_LSA_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPF_LSA_TYPE.
func (e E_OpenconfigOspfTypes_OSPF_LSA_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPF_LSA_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_UNSET E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 0
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_AS_EXTERNAL_LSA corresponds to the value AS_EXTERNAL_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_AS_EXTERNAL_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 1
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_NETWORK_LSA corresponds to the value NETWORK_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_NETWORK_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 2
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_NSSA_AS_EXTERNAL_LSA corresponds to the value NSSA_AS_EXTERNAL_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_NSSA_AS_EXTERNAL_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 3
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_OSPFV2_AREA_SCOPE_OPAQUE_LSA corresponds to the value OSPFV2_AREA_SCOPE_OPAQUE_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_OSPFV2_AREA_SCOPE_OPAQUE_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 4
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_OSPFV2_AS_SCOPE_OPAQUE_LSA corresponds to the value OSPFV2_AS_SCOPE_OPAQUE_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_OSPFV2_AS_SCOPE_OPAQUE_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 5
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_OSPFV2_LINK_SCOPE_OPAQUE_LSA corresponds to the value OSPFV2_LINK_SCOPE_OPAQUE_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_OSPFV2_LINK_SCOPE_OPAQUE_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 6
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_ROUTER_LSA corresponds to the value ROUTER_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_ROUTER_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 7
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_SUMMARY_ASBR_LSA corresponds to the value SUMMARY_ASBR_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_SUMMARY_ASBR_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 8
	// OpenconfigOspfTypes_OSPF_LSA_TYPE_SUMMARY_IP_NETWORK_LSA corresponds to the value SUMMARY_IP_NETWORK_LSA of OpenconfigOspfTypes_OSPF_LSA_TYPE
	OpenconfigOspfTypes_OSPF_LSA_TYPE_SUMMARY_IP_NETWORK_LSA E_OpenconfigOspfTypes_OSPF_LSA_TYPE = 9
)

// E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE. An additional value named
// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE.
func (E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE.
func (e E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE")
}

const (
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_UNSET E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 0
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_ATTEMPT corresponds to the value ATTEMPT of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_ATTEMPT E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 1
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_DOWN corresponds to the value DOWN of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_DOWN E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 2
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_EXCHANGE corresponds to the value EXCHANGE of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_EXCHANGE E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 3
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_EXSTART corresponds to the value EXSTART of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_EXSTART E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 4
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_FULL corresponds to the value FULL of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_FULL E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 5
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_INIT corresponds to the value INIT of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_INIT E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 6
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_LOADING corresponds to the value LOADING of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_LOADING E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 7
	// OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_TWO_WAY corresponds to the value TWO_WAY of OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE
	OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE_TWO_WAY E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE = 8
)

// E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPF_NETWORK_TYPE. An additional value named
// OpenconfigOspfTypes_OSPF_NETWORK_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPF_NETWORK_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPF_NETWORK_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPF_NETWORK_TYPE.
func (E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE.
func (e E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPF_NETWORK_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPF_NETWORK_TYPE
	OpenconfigOspfTypes_OSPF_NETWORK_TYPE_UNSET E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE = 0
	// OpenconfigOspfTypes_OSPF_NETWORK_TYPE_BROADCAST_NETWORK corresponds to the value BROADCAST_NETWORK of OpenconfigOspfTypes_OSPF_NETWORK_TYPE
	OpenconfigOspfTypes_OSPF_NETWORK_TYPE_BROADCAST_NETWORK E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE = 1
	// OpenconfigOspfTypes_OSPF_NETWORK_TYPE_NON_BROADCAST_NETWORK corresponds to the value NON_BROADCAST_NETWORK of OpenconfigOspfTypes_OSPF_NETWORK_TYPE
	OpenconfigOspfTypes_OSPF_NETWORK_TYPE_NON_BROADCAST_NETWORK E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE = 2
	// OpenconfigOspfTypes_OSPF_NETWORK_TYPE_POINT_TO_POINT_NETWORK corresponds to the value POINT_TO_POINT_NETWORK of OpenconfigOspfTypes_OSPF_NETWORK_TYPE
	OpenconfigOspfTypes_OSPF_NETWORK_TYPE_POINT_TO_POINT_NETWORK E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE = 3
)

// E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE. An additional value named
// OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE.
func (E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE.
func (e E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE
	OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_UNSET E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE = 0
	// OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_GRACE_LSA corresponds to the value GRACE_LSA of OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE
	OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_GRACE_LSA E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE = 1
	// OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_OSPFV2_EXTENDED_LINK corresponds to the value OSPFV2_EXTENDED_LINK of OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE
	OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_OSPFV2_EXTENDED_LINK E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE = 2
	// OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_OSPFV2_EXTENDED_PREFIX corresponds to the value OSPFV2_EXTENDED_PREFIX of OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE
	OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_OSPFV2_EXTENDED_PREFIX E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE = 3
	// OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_ROUTER_INFORMATION corresponds to the value ROUTER_INFORMATION of OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE
	OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_ROUTER_INFORMATION E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE = 4
	// OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_TRAFFIC_ENGINEERING corresponds to the value TRAFFIC_ENGINEERING of OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE
	OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE_TRAFFIC_ENGINEERING E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE = 5
)

// E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES. An additional value named
// OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES.
func (E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES.
func (e E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES")
}

const (
	// OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES
	OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES_UNSET E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES = 0
	// OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES_SR_SID_LABEL_TLV corresponds to the value SR_SID_LABEL_TLV of OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES
	OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES_SR_SID_LABEL_TLV E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES = 1
)

// E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE. An additional value named
// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE.
func (E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE.
func (e E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_UNSET E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 0
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_ADMIN_GROUP corresponds to the value TE_LINK_ADMIN_GROUP of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_ADMIN_GROUP E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 1
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_ID corresponds to the value TE_LINK_ID of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_ID E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 2
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_LOCAL_IP corresponds to the value TE_LINK_LOCAL_IP of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_LOCAL_IP E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 3
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_MAXIMUM_BANDWIDTH corresponds to the value TE_LINK_MAXIMUM_BANDWIDTH of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_MAXIMUM_BANDWIDTH E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 4
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_MAXIMUM_RESERVABLE_BANDWIDTH corresponds to the value TE_LINK_MAXIMUM_RESERVABLE_BANDWIDTH of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_MAXIMUM_RESERVABLE_BANDWIDTH E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 5
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_METRIC corresponds to the value TE_LINK_METRIC of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_METRIC E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 6
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_REMOTE_IP corresponds to the value TE_LINK_REMOTE_IP of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_REMOTE_IP E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 7
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_TYPE corresponds to the value TE_LINK_TYPE of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_TYPE E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 8
	// OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_UNRESERVED_BANDWIDTH corresponds to the value TE_LINK_UNRESERVED_BANDWIDTH of OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE_TE_LINK_UNRESERVED_BANDWIDTH E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE = 9
)

// E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE. An additional value named
// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE.
func (E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE.
func (e E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE")
}

const (
	// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_UNSET E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE = 0
	// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_LINK corresponds to the value TE_LINK of OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_LINK E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE = 1
	// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_LINK_LOCAL corresponds to the value TE_LINK_LOCAL of OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_LINK_LOCAL E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE = 2
	// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_NODE_ATTRIBUTE corresponds to the value TE_NODE_ATTRIBUTE of OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_NODE_ATTRIBUTE E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE = 3
	// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_OPTICAL_NODE_PROPERTY corresponds to the value TE_OPTICAL_NODE_PROPERTY of OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_OPTICAL_NODE_PROPERTY E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE = 4
	// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_ROUTER_ADDRESS corresponds to the value TE_ROUTER_ADDRESS of OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_ROUTER_ADDRESS E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE = 5
	// OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_ROUTER_IPV6_ADDRESS corresponds to the value TE_ROUTER_IPV6_ADDRESS of OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE
	OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE_TE_ROUTER_IPV6_ADDRESS E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE = 6
)

// E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_RI_LSA_TLV_TYPES. An additional value named
// OpenconfigOspfTypes_RI_LSA_TLV_TYPES_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_RI_LSA_TLV_TYPES implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_RI_LSA_TLV_TYPES can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_RI_LSA_TLV_TYPES.
func (E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES.
func (e E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES")
}

const (
	// OpenconfigOspfTypes_RI_LSA_TLV_TYPES_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_RI_LSA_TLV_TYPES
	OpenconfigOspfTypes_RI_LSA_TLV_TYPES_UNSET E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES = 0
	// OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_FUNCTIONAL_CAPABILITIES corresponds to the value RI_FUNCTIONAL_CAPABILITIES of OpenconfigOspfTypes_RI_LSA_TLV_TYPES
	OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_FUNCTIONAL_CAPABILITIES E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES = 1
	// OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_INFORMATIONAL_CAPABILITIES corresponds to the value RI_INFORMATIONAL_CAPABILITIES of OpenconfigOspfTypes_RI_LSA_TLV_TYPES
	OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_INFORMATIONAL_CAPABILITIES E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES = 2
	// OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_NODE_ADMIN_TAG corresponds to the value RI_NODE_ADMIN_TAG of OpenconfigOspfTypes_RI_LSA_TLV_TYPES
	OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_NODE_ADMIN_TAG E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES = 3
	// OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_SR_ALGORITHM corresponds to the value RI_SR_ALGORITHM of OpenconfigOspfTypes_RI_LSA_TLV_TYPES
	OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_SR_ALGORITHM E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES = 4
	// OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_SR_SID_LABEL_RANGE corresponds to the value RI_SR_SID_LABEL_RANGE of OpenconfigOspfTypes_RI_LSA_TLV_TYPES
	OpenconfigOspfTypes_RI_LSA_TLV_TYPES_RI_SR_SID_LABEL_RANGE E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES = 5
)

// E_OpenconfigOspfTypes_ROUTER_LSA_TYPES is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_ROUTER_LSA_TYPES. An additional value named
// OpenconfigOspfTypes_ROUTER_LSA_TYPES_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_ROUTER_LSA_TYPES int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_ROUTER_LSA_TYPES implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_ROUTER_LSA_TYPES can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_ROUTER_LSA_TYPES) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_ROUTER_LSA_TYPES.
func (E_OpenconfigOspfTypes_ROUTER_LSA_TYPES) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_ROUTER_LSA_TYPES.
func (e E_OpenconfigOspfTypes_ROUTER_LSA_TYPES) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_ROUTER_LSA_TYPES")
}

const (
	// OpenconfigOspfTypes_ROUTER_LSA_TYPES_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_ROUTER_LSA_TYPES
	OpenconfigOspfTypes_ROUTER_LSA_TYPES_UNSET E_OpenconfigOspfTypes_ROUTER_LSA_TYPES = 0
	// OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_P2P corresponds to the value ROUTER_LSA_P2P of OpenconfigOspfTypes_ROUTER_LSA_TYPES
	OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_P2P E_OpenconfigOspfTypes_ROUTER_LSA_TYPES = 1
	// OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_STUB_NETWORK corresponds to the value ROUTER_LSA_STUB_NETWORK of OpenconfigOspfTypes_ROUTER_LSA_TYPES
	OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_STUB_NETWORK E_OpenconfigOspfTypes_ROUTER_LSA_TYPES = 2
	// OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_TRANSIT_NETWORK corresponds to the value ROUTER_LSA_TRANSIT_NETWORK of OpenconfigOspfTypes_ROUTER_LSA_TYPES
	OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_TRANSIT_NETWORK E_OpenconfigOspfTypes_ROUTER_LSA_TYPES = 3
	// OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_VIRTUAL_LINK corresponds to the value ROUTER_LSA_VIRTUAL_LINK of OpenconfigOspfTypes_ROUTER_LSA_TYPES
	OpenconfigOspfTypes_ROUTER_LSA_TYPES_ROUTER_LSA_VIRTUAL_LINK E_OpenconfigOspfTypes_ROUTER_LSA_TYPES = 4
)

// E_OpenconfigOspfTypes_SR_ALGORITHM is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_SR_ALGORITHM. An additional value named
// OpenconfigOspfTypes_SR_ALGORITHM_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_SR_ALGORITHM int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_SR_ALGORITHM implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_SR_ALGORITHM can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_SR_ALGORITHM) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_SR_ALGORITHM.
func (E_OpenconfigOspfTypes_SR_ALGORITHM) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_SR_ALGORITHM.
func (e E_OpenconfigOspfTypes_SR_ALGORITHM) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_SR_ALGORITHM")
}

const (
	// OpenconfigOspfTypes_SR_ALGORITHM_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_SR_ALGORITHM
	OpenconfigOspfTypes_SR_ALGORITHM_UNSET E_OpenconfigOspfTypes_SR_ALGORITHM = 0
	// OpenconfigOspfTypes_SR_ALGORITHM_SPF corresponds to the value SPF of OpenconfigOspfTypes_SR_ALGORITHM
	OpenconfigOspfTypes_SR_ALGORITHM_SPF E_OpenconfigOspfTypes_SR_ALGORITHM = 1
	// OpenconfigOspfTypes_SR_ALGORITHM_STRICT_SPF corresponds to the value STRICT_SPF of OpenconfigOspfTypes_SR_ALGORITHM
	OpenconfigOspfTypes_SR_ALGORITHM_STRICT_SPF E_OpenconfigOspfTypes_SR_ALGORITHM = 2
)

// E_OpenconfigOspfTypes_SrSidType is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_SrSidType. An additional value named
// OpenconfigOspfTypes_SrSidType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_SrSidType int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_SrSidType implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_SrSidType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_SrSidType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_SrSidType.
func (E_OpenconfigOspfTypes_SrSidType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_SrSidType.
func (e E_OpenconfigOspfTypes_SrSidType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_SrSidType")
}

const (
	// OpenconfigOspfTypes_SrSidType_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_SrSidType
	OpenconfigOspfTypes_SrSidType_UNSET E_OpenconfigOspfTypes_SrSidType = 0
	// OpenconfigOspfTypes_SrSidType_LABEL corresponds to the value LABEL of OpenconfigOspfTypes_SrSidType
	OpenconfigOspfTypes_SrSidType_LABEL E_OpenconfigOspfTypes_SrSidType = 1
	// OpenconfigOspfTypes_SrSidType_SID corresponds to the value SID of OpenconfigOspfTypes_SrSidType
	OpenconfigOspfTypes_SrSidType_SID E_OpenconfigOspfTypes_SrSidType = 2
)

// E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE. An additional value named
// OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE.
func (E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE.
func (e E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE")
}

const (
	// OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE
	OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE_UNSET E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE = 0
	// OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE_NODE_IPV4_LOCAL_ADDRESS corresponds to the value NODE_IPV4_LOCAL_ADDRESS of OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE
	OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE_NODE_IPV4_LOCAL_ADDRESS E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE = 1
	// OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE_NODE_IPV6_LOCAL_ADDRESS corresponds to the value NODE_IPV6_LOCAL_ADDRESS of OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE
	OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE_NODE_IPV6_LOCAL_ADDRESS E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE = 2
)

// E_OpenconfigPacketMatchTypes_ETHERTYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigPacketMatchTypes_ETHERTYPE. An additional value named
// OpenconfigPacketMatchTypes_ETHERTYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPacketMatchTypes_ETHERTYPE int64

// IsYANGGoEnum ensures that OpenconfigPacketMatchTypes_ETHERTYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigPacketMatchTypes_ETHERTYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPacketMatchTypes_ETHERTYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPacketMatchTypes_ETHERTYPE.
func (E_OpenconfigPacketMatchTypes_ETHERTYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPacketMatchTypes_ETHERTYPE.
func (e E_OpenconfigPacketMatchTypes_ETHERTYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPacketMatchTypes_ETHERTYPE")
}

const (
	// OpenconfigPacketMatchTypes_ETHERTYPE_UNSET corresponds to the value UNSET of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_UNSET E_OpenconfigPacketMatchTypes_ETHERTYPE = 0
	// OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_ARP corresponds to the value ETHERTYPE_ARP of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_ARP E_OpenconfigPacketMatchTypes_ETHERTYPE = 1
	// OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_IPV4 corresponds to the value ETHERTYPE_IPV4 of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_IPV4 E_OpenconfigPacketMatchTypes_ETHERTYPE = 2
	// OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_IPV6 corresponds to the value ETHERTYPE_IPV6 of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_IPV6 E_OpenconfigPacketMatchTypes_ETHERTYPE = 3
	// OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_LLDP corresponds to the value ETHERTYPE_LLDP of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_LLDP E_OpenconfigPacketMatchTypes_ETHERTYPE = 4
	// OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_MPLS corresponds to the value ETHERTYPE_MPLS of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_MPLS E_OpenconfigPacketMatchTypes_ETHERTYPE = 5
	// OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_ROCE corresponds to the value ETHERTYPE_ROCE of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_ROCE E_OpenconfigPacketMatchTypes_ETHERTYPE = 6
	// OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_VLAN corresponds to the value ETHERTYPE_VLAN of OpenconfigPacketMatchTypes_ETHERTYPE
	OpenconfigPacketMatchTypes_ETHERTYPE_ETHERTYPE_VLAN E_OpenconfigPacketMatchTypes_ETHERTYPE = 7
)

// E_OpenconfigPacketMatchTypes_IP_PROTOCOL is a derived int64 type which is used to represent
// the enumerated node OpenconfigPacketMatchTypes_IP_PROTOCOL. An additional value named
// OpenconfigPacketMatchTypes_IP_PROTOCOL_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPacketMatchTypes_IP_PROTOCOL int64

// IsYANGGoEnum ensures that OpenconfigPacketMatchTypes_IP_PROTOCOL implements the yang.GoEnum
// interface. This ensures that OpenconfigPacketMatchTypes_IP_PROTOCOL can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPacketMatchTypes_IP_PROTOCOL.
func (E_OpenconfigPacketMatchTypes_IP_PROTOCOL) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPacketMatchTypes_IP_PROTOCOL.
func (e E_OpenconfigPacketMatchTypes_IP_PROTOCOL) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPacketMatchTypes_IP_PROTOCOL")
}

const (
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_UNSET corresponds to the value UNSET of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_UNSET E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 0
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_AUTH corresponds to the value IP_AUTH of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_AUTH E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 1
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_GRE corresponds to the value IP_GRE of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_GRE E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 2
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_ICMP corresponds to the value IP_ICMP of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_ICMP E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 3
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_IGMP corresponds to the value IP_IGMP of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_IGMP E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 4
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_IN_IP corresponds to the value IP_IN_IP of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_IN_IP E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 5
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_L2TP corresponds to the value IP_L2TP of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_L2TP E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 6
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_PIM corresponds to the value IP_PIM of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_PIM E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 7
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_RSVP corresponds to the value IP_RSVP of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_RSVP E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 8
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_TCP corresponds to the value IP_TCP of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_TCP E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 9
	// OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_UDP corresponds to the value IP_UDP of OpenconfigPacketMatchTypes_IP_PROTOCOL
	OpenconfigPacketMatchTypes_IP_PROTOCOL_IP_UDP E_OpenconfigPacketMatchTypes_IP_PROTOCOL = 10
)

// E_OpenconfigPacketMatchTypes_PortNumRange_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigPacketMatchTypes_PortNumRange_Enum. An additional value named
// OpenconfigPacketMatchTypes_PortNumRange_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPacketMatchTypes_PortNumRange_Enum int64

// IsYANGGoEnum ensures that OpenconfigPacketMatchTypes_PortNumRange_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigPacketMatchTypes_PortNumRange_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPacketMatchTypes_PortNumRange_Enum.
func (E_OpenconfigPacketMatchTypes_PortNumRange_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPacketMatchTypes_PortNumRange_Enum.
func (e E_OpenconfigPacketMatchTypes_PortNumRange_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPacketMatchTypes_PortNumRange_Enum")
}

const (
	// OpenconfigPacketMatchTypes_PortNumRange_Enum_UNSET corresponds to the value UNSET of OpenconfigPacketMatchTypes_PortNumRange_Enum
	OpenconfigPacketMatchTypes_PortNumRange_Enum_UNSET E_OpenconfigPacketMatchTypes_PortNumRange_Enum = 0
	// OpenconfigPacketMatchTypes_PortNumRange_Enum_ANY corresponds to the value ANY of OpenconfigPacketMatchTypes_PortNumRange_Enum
	OpenconfigPacketMatchTypes_PortNumRange_Enum_ANY E_OpenconfigPacketMatchTypes_PortNumRange_Enum = 1
)

// E_OpenconfigPacketMatchTypes_TCP_FLAGS is a derived int64 type which is used to represent
// the enumerated node OpenconfigPacketMatchTypes_TCP_FLAGS. An additional value named
// OpenconfigPacketMatchTypes_TCP_FLAGS_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPacketMatchTypes_TCP_FLAGS int64

// IsYANGGoEnum ensures that OpenconfigPacketMatchTypes_TCP_FLAGS implements the yang.GoEnum
// interface. This ensures that OpenconfigPacketMatchTypes_TCP_FLAGS can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPacketMatchTypes_TCP_FLAGS) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPacketMatchTypes_TCP_FLAGS.
func (E_OpenconfigPacketMatchTypes_TCP_FLAGS) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPacketMatchTypes_TCP_FLAGS.
func (e E_OpenconfigPacketMatchTypes_TCP_FLAGS) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPacketMatchTypes_TCP_FLAGS")
}

const (
	// OpenconfigPacketMatchTypes_TCP_FLAGS_UNSET corresponds to the value UNSET of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_UNSET E_OpenconfigPacketMatchTypes_TCP_FLAGS = 0
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_ACK corresponds to the value TCP_ACK of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_ACK E_OpenconfigPacketMatchTypes_TCP_FLAGS = 1
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_CWR corresponds to the value TCP_CWR of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_CWR E_OpenconfigPacketMatchTypes_TCP_FLAGS = 2
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_ECE corresponds to the value TCP_ECE of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_ECE E_OpenconfigPacketMatchTypes_TCP_FLAGS = 3
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_FIN corresponds to the value TCP_FIN of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_FIN E_OpenconfigPacketMatchTypes_TCP_FLAGS = 4
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_PSH corresponds to the value TCP_PSH of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_PSH E_OpenconfigPacketMatchTypes_TCP_FLAGS = 5
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_RST corresponds to the value TCP_RST of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_RST E_OpenconfigPacketMatchTypes_TCP_FLAGS = 6
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_SYN corresponds to the value TCP_SYN of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_SYN E_OpenconfigPacketMatchTypes_TCP_FLAGS = 7
	// OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_URG corresponds to the value TCP_URG of OpenconfigPacketMatchTypes_TCP_FLAGS
	OpenconfigPacketMatchTypes_TCP_FLAGS_TCP_URG E_OpenconfigPacketMatchTypes_TCP_FLAGS = 8
)

// E_OpenconfigPcep_LspControlType is a derived int64 type which is used to represent
// the enumerated node OpenconfigPcep_LspControlType. An additional value named
// OpenconfigPcep_LspControlType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPcep_LspControlType int64

// IsYANGGoEnum ensures that OpenconfigPcep_LspControlType implements the yang.GoEnum
// interface. This ensures that OpenconfigPcep_LspControlType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPcep_LspControlType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPcep_LspControlType.
func (E_OpenconfigPcep_LspControlType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPcep_LspControlType.
func (e E_OpenconfigPcep_LspControlType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPcep_LspControlType")
}

const (
	// OpenconfigPcep_LspControlType_UNSET corresponds to the value UNSET of OpenconfigPcep_LspControlType
	OpenconfigPcep_LspControlType_UNSET E_OpenconfigPcep_LspControlType = 0
	// OpenconfigPcep_LspControlType_PCE_DELEGATED corresponds to the value PCE_DELEGATED of OpenconfigPcep_LspControlType
	OpenconfigPcep_LspControlType_PCE_DELEGATED E_OpenconfigPcep_LspControlType = 1
	// OpenconfigPcep_LspControlType_PCC_CONTROLLED corresponds to the value PCC_CONTROLLED of OpenconfigPcep_LspControlType
	OpenconfigPcep_LspControlType_PCC_CONTROLLED E_OpenconfigPcep_LspControlType = 2
	// OpenconfigPcep_LspControlType_PCC_REPORT_ONLY corresponds to the value PCC_REPORT_ONLY of OpenconfigPcep_LspControlType
	OpenconfigPcep_LspControlType_PCC_REPORT_ONLY E_OpenconfigPcep_LspControlType = 3
)

// E_OpenconfigPcep_PceModeType is a derived int64 type which is used to represent
// the enumerated node OpenconfigPcep_PceModeType. An additional value named
// OpenconfigPcep_PceModeType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPcep_PceModeType int64

// IsYANGGoEnum ensures that OpenconfigPcep_PceModeType implements the yang.GoEnum
// interface. This ensures that OpenconfigPcep_PceModeType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPcep_PceModeType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPcep_PceModeType.
func (E_OpenconfigPcep_PceModeType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigPcep_PceModeType.
func (e E_OpenconfigPcep_PceModeType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPcep_PceModeType")
}

const (
	// OpenconfigPcep_PceModeType_UNSET corresponds to the value UNSET of OpenconfigPcep_PceModeType
	OpenconfigPcep_PceModeType_UNSET E_OpenconfigPcep_PceModeType = 0
	// OpenconfigPcep_PceModeType_STATELESS corresponds to the value STATELESS of OpenconfigPcep_PceModeType
	OpenconfigPcep_PceModeType_STATELESS E_OpenconfigPcep_PceModeType = 1
	// OpenconfigPcep_PceModeType_STATEFUL_PASSIVE corresponds to the value STATEFUL_PASSIVE of OpenconfigPcep_PceModeType
	OpenconfigPcep_PceModeType_STATEFUL_PASSIVE E_OpenconfigPcep_PceModeType = 2
	// OpenconfigPcep_PceModeType_STATEFUL_ACTIVE corresponds to the value STATEFUL_ACTIVE of OpenconfigPcep_PceModeType
	OpenconfigPcep_PceModeType_STATEFUL_ACTIVE E_OpenconfigPcep_PceModeType = 3
)

// E_OpenconfigPimTypes_PIM_MODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigPimTypes_PIM_MODE. An additional value named
// OpenconfigPimTypes_PIM_MODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPimTypes_PIM_MODE int64

// IsYANGGoEnum ensures that OpenconfigPimTypes_PIM_MODE implements the yang.GoEnum
// interface. This ensures that OpenconfigPimTypes_PIM_MODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPimTypes_PIM_MODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPimTypes_PIM_MODE.
func (E_OpenconfigPimTypes_PIM_MODE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum }

// String returns a logging-friendly string for E_OpenconfigPimTypes_PIM_MODE.
func (e E_OpenconfigPimTypes_PIM_MODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPimTypes_PIM_MODE")
}

const (
	// OpenconfigPimTypes_PIM_MODE_UNSET corresponds to the value UNSET of OpenconfigPimTypes_PIM_MODE
	OpenconfigPimTypes_PIM_MODE_UNSET E_OpenconfigPimTypes_PIM_MODE = 0
	// OpenconfigPimTypes_PIM_MODE_PIM_MODE_DENSE corresponds to the value PIM_MODE_DENSE of OpenconfigPimTypes_PIM_MODE
	OpenconfigPimTypes_PIM_MODE_PIM_MODE_DENSE E_OpenconfigPimTypes_PIM_MODE = 1
	// OpenconfigPimTypes_PIM_MODE_PIM_MODE_SPARSE corresponds to the value PIM_MODE_SPARSE of OpenconfigPimTypes_PIM_MODE
	OpenconfigPimTypes_PIM_MODE_PIM_MODE_SPARSE E_OpenconfigPimTypes_PIM_MODE = 2
)

// E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_COMPONENT_OPER_STATUS. An additional value named
// OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_COMPONENT_OPER_STATUS implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_COMPONENT_OPER_STATUS can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_COMPONENT_OPER_STATUS.
func (E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS.
func (e E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS")
}

const (
	// OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS
	OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_UNSET E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 0
	// OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_ACTIVE corresponds to the value ACTIVE of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS
	OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_ACTIVE E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 1
	// OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_DISABLED corresponds to the value DISABLED of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS
	OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_DISABLED E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 2
	// OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_INACTIVE corresponds to the value INACTIVE of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS
	OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_INACTIVE E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 3
)

// E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON. An additional value named
// OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON.
func (E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON.
func (e E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON")
}

const (
	// OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON
	OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_UNSET E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON = 0
	// OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_REBOOT_CRITICAL_ERROR corresponds to the value REBOOT_CRITICAL_ERROR of OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON
	OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_REBOOT_CRITICAL_ERROR E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON = 1
	// OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_REBOOT_POWER_FAILURE corresponds to the value REBOOT_POWER_FAILURE of OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON
	OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_REBOOT_POWER_FAILURE E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON = 2
	// OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_REBOOT_USER_INITIATED corresponds to the value REBOOT_USER_INITIATED of OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON
	OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON_REBOOT_USER_INITIATED E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON = 3
)

// E_OpenconfigPlatformTypes_ComponentRedundantRole is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_ComponentRedundantRole. An additional value named
// OpenconfigPlatformTypes_ComponentRedundantRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_ComponentRedundantRole int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_ComponentRedundantRole implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_ComponentRedundantRole can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_ComponentRedundantRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_ComponentRedundantRole.
func (E_OpenconfigPlatformTypes_ComponentRedundantRole) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_ComponentRedundantRole.
func (e E_OpenconfigPlatformTypes_ComponentRedundantRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_ComponentRedundantRole")
}

const (
	// OpenconfigPlatformTypes_ComponentRedundantRole_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_ComponentRedundantRole
	OpenconfigPlatformTypes_ComponentRedundantRole_UNSET E_OpenconfigPlatformTypes_ComponentRedundantRole = 0
	// OpenconfigPlatformTypes_ComponentRedundantRole_PRIMARY corresponds to the value PRIMARY of OpenconfigPlatformTypes_ComponentRedundantRole
	OpenconfigPlatformTypes_ComponentRedundantRole_PRIMARY E_OpenconfigPlatformTypes_ComponentRedundantRole = 1
	// OpenconfigPlatformTypes_ComponentRedundantRole_SECONDARY corresponds to the value SECONDARY of OpenconfigPlatformTypes_ComponentRedundantRole
	OpenconfigPlatformTypes_ComponentRedundantRole_SECONDARY E_OpenconfigPlatformTypes_ComponentRedundantRole = 2
)

// E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger. An additional value named
// OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger.
func (E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger.
func (e E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger")
}

const (
	// OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger
	OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger_UNSET E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger = 0
	// OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger_USER_INITIATED corresponds to the value USER_INITIATED of OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger
	OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger_USER_INITIATED E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger = 1
	// OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger_SYSTEM_INITIATED corresponds to the value SYSTEM_INITIATED of OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger
	OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger_SYSTEM_INITIATED E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger = 2
)

// E_OpenconfigPlatformTypes_FEC_MODE_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_FEC_MODE_TYPE. An additional value named
// OpenconfigPlatformTypes_FEC_MODE_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_FEC_MODE_TYPE int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_FEC_MODE_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_FEC_MODE_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_FEC_MODE_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_FEC_MODE_TYPE.
func (E_OpenconfigPlatformTypes_FEC_MODE_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_FEC_MODE_TYPE.
func (e E_OpenconfigPlatformTypes_FEC_MODE_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_FEC_MODE_TYPE")
}

const (
	// OpenconfigPlatformTypes_FEC_MODE_TYPE_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_FEC_MODE_TYPE
	OpenconfigPlatformTypes_FEC_MODE_TYPE_UNSET E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 0
	// OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_AUTO corresponds to the value FEC_AUTO of OpenconfigPlatformTypes_FEC_MODE_TYPE
	OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_AUTO E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 1
	// OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_DISABLED corresponds to the value FEC_DISABLED of OpenconfigPlatformTypes_FEC_MODE_TYPE
	OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_DISABLED E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 2
	// OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_ENABLED corresponds to the value FEC_ENABLED of OpenconfigPlatformTypes_FEC_MODE_TYPE
	OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_ENABLED E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 3
)

// E_OpenconfigPlatformTypes_FEC_STATUS_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_FEC_STATUS_TYPE. An additional value named
// OpenconfigPlatformTypes_FEC_STATUS_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_FEC_STATUS_TYPE int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_FEC_STATUS_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_FEC_STATUS_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_FEC_STATUS_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_FEC_STATUS_TYPE.
func (E_OpenconfigPlatformTypes_FEC_STATUS_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_FEC_STATUS_TYPE.
func (e E_OpenconfigPlatformTypes_FEC_STATUS_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_FEC_STATUS_TYPE")
}

const (
	// OpenconfigPlatformTypes_FEC_STATUS_TYPE_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_FEC_STATUS_TYPE
	OpenconfigPlatformTypes_FEC_STATUS_TYPE_UNSET E_OpenconfigPlatformTypes_FEC_STATUS_TYPE = 0
	// OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_LOCKED corresponds to the value FEC_STATUS_LOCKED of OpenconfigPlatformTypes_FEC_STATUS_TYPE
	OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_LOCKED E_OpenconfigPlatformTypes_FEC_STATUS_TYPE = 1
	// OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_UNLOCKED corresponds to the value FEC_STATUS_UNLOCKED of OpenconfigPlatformTypes_FEC_STATUS_TYPE
	OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_UNLOCKED E_OpenconfigPlatformTypes_FEC_STATUS_TYPE = 2
)

// E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT. An additional value named
// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT.
func (E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT.
func (e E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT")
}

const (
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_UNSET E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 0
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_BACKPLANE corresponds to the value BACKPLANE of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_BACKPLANE E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 1
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CHASSIS corresponds to the value CHASSIS of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CHASSIS E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 2
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CONTROLLER_CARD corresponds to the value CONTROLLER_CARD of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CONTROLLER_CARD E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 3
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CPU corresponds to the value CPU of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CPU E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 4
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FABRIC corresponds to the value FABRIC of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FABRIC E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 5
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FAN corresponds to the value FAN of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FAN E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 6
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FRU corresponds to the value FRU of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FRU E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 7
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_INTEGRATED_CIRCUIT corresponds to the value INTEGRATED_CIRCUIT of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_INTEGRATED_CIRCUIT E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 8
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_LINECARD corresponds to the value LINECARD of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_LINECARD E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 9
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_OPTICAL_CHANNEL corresponds to the value OPTICAL_CHANNEL of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_OPTICAL_CHANNEL E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 10
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_PORT corresponds to the value PORT of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_PORT E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 11
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_POWER_SUPPLY corresponds to the value POWER_SUPPLY of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_POWER_SUPPLY E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 12
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_SENSOR corresponds to the value SENSOR of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_SENSOR E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 13
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_STORAGE corresponds to the value STORAGE of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_STORAGE E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 14
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_TRANSCEIVER corresponds to the value TRANSCEIVER of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_TRANSCEIVER E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 15
	// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_WIFI_ACCESS_POINT corresponds to the value WIFI_ACCESS_POINT of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_WIFI_ACCESS_POINT E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 16
)

// E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT. An additional value named
// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT int64

// IsYANGGoEnum ensures that OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT.
func (E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT.
func (e E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT")
}

const (
	// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_UNSET E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 0
	// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_BIOS corresponds to the value BIOS of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_BIOS E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 1
	// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_BOOT_LOADER corresponds to the value BOOT_LOADER of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_BOOT_LOADER E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 2
	// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM corresponds to the value OPERATING_SYSTEM of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 3
	// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM_UPDATE corresponds to the value OPERATING_SYSTEM_UPDATE of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM_UPDATE E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 4
	// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_SOFTWARE_MODULE corresponds to the value SOFTWARE_MODULE of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT
	OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_SOFTWARE_MODULE E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 5
)

// E_OpenconfigPlatform_Components_Component_Transceiver_State_Present is a derived int64 type which is used to represent
// the enumerated node OpenconfigPlatform_Components_Component_Transceiver_State_Present. An additional value named
// OpenconfigPlatform_Components_Component_Transceiver_State_Present_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPlatform_Components_Component_Transceiver_State_Present int64

// IsYANGGoEnum ensures that OpenconfigPlatform_Components_Component_Transceiver_State_Present implements the yang.GoEnum
// interface. This ensures that OpenconfigPlatform_Components_Component_Transceiver_State_Present can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPlatform_Components_Component_Transceiver_State_Present) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPlatform_Components_Component_Transceiver_State_Present.
func (E_OpenconfigPlatform_Components_Component_Transceiver_State_Present) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPlatform_Components_Component_Transceiver_State_Present.
func (e E_OpenconfigPlatform_Components_Component_Transceiver_State_Present) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPlatform_Components_Component_Transceiver_State_Present")
}

const (
	// OpenconfigPlatform_Components_Component_Transceiver_State_Present_UNSET corresponds to the value UNSET of OpenconfigPlatform_Components_Component_Transceiver_State_Present
	OpenconfigPlatform_Components_Component_Transceiver_State_Present_UNSET E_OpenconfigPlatform_Components_Component_Transceiver_State_Present = 0
	// OpenconfigPlatform_Components_Component_Transceiver_State_Present_PRESENT corresponds to the value PRESENT of OpenconfigPlatform_Components_Component_Transceiver_State_Present
	OpenconfigPlatform_Components_Component_Transceiver_State_Present_PRESENT E_OpenconfigPlatform_Components_Component_Transceiver_State_Present = 1
	// OpenconfigPlatform_Components_Component_Transceiver_State_Present_NOT_PRESENT corresponds to the value NOT_PRESENT of OpenconfigPlatform_Components_Component_Transceiver_State_Present
	OpenconfigPlatform_Components_Component_Transceiver_State_Present_NOT_PRESENT E_OpenconfigPlatform_Components_Component_Transceiver_State_Present = 2
)

// E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE. An additional value named
// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE int64

// IsYANGGoEnum ensures that OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE.
func (E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE.
func (e E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE")
}

const (
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_UNSET corresponds to the value UNSET of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_UNSET E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 0
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_BGP corresponds to the value BGP of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_BGP E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 1
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_DIRECTLY_CONNECTED corresponds to the value DIRECTLY_CONNECTED of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_DIRECTLY_CONNECTED E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 2
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_GRIBI corresponds to the value GRIBI of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_GRIBI E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 3
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_IGMP corresponds to the value IGMP of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_IGMP E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 4
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_ISIS corresponds to the value ISIS of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_ISIS E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 5
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_LOCAL corresponds to the value LOCAL of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_LOCAL E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 6
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_LOCAL_AGGREGATE corresponds to the value LOCAL_AGGREGATE of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_LOCAL_AGGREGATE E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 7
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_OSPF corresponds to the value OSPF of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_OSPF E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 8
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_OSPF3 corresponds to the value OSPF3 of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_OSPF3 E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 9
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_PCEP corresponds to the value PCEP of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_PCEP E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 10
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_PIM corresponds to the value PIM of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_PIM E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 11
	// OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_STATIC corresponds to the value STATIC of OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE
	OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE_STATIC E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE = 12
)

// E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType is a derived int64 type which is used to represent
// the enumerated node OpenconfigPolicyTypes_MatchSetOptionsRestrictedType. An additional value named
// OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType int64

// IsYANGGoEnum ensures that OpenconfigPolicyTypes_MatchSetOptionsRestrictedType implements the yang.GoEnum
// interface. This ensures that OpenconfigPolicyTypes_MatchSetOptionsRestrictedType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigPolicyTypes_MatchSetOptionsRestrictedType.
func (E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType.
func (e E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType")
}

const (
	// OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_UNSET corresponds to the value UNSET of OpenconfigPolicyTypes_MatchSetOptionsRestrictedType
	OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_UNSET E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType = 0
	// OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY corresponds to the value ANY of OpenconfigPolicyTypes_MatchSetOptionsRestrictedType
	OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_ANY E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType = 1
	// OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_INVERT corresponds to the value INVERT of OpenconfigPolicyTypes_MatchSetOptionsRestrictedType
	OpenconfigPolicyTypes_MatchSetOptionsRestrictedType_INVERT E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType = 2
)

// E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON is a derived int64 type which is used to represent
// the enumerated node OpenconfigRibBgpTypes_INVALID_ROUTE_REASON. An additional value named
// OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON int64

// IsYANGGoEnum ensures that OpenconfigRibBgpTypes_INVALID_ROUTE_REASON implements the yang.GoEnum
// interface. This ensures that OpenconfigRibBgpTypes_INVALID_ROUTE_REASON can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigRibBgpTypes_INVALID_ROUTE_REASON.
func (E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON.
func (e E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON")
}

const (
	// OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_UNSET corresponds to the value UNSET of OpenconfigRibBgpTypes_INVALID_ROUTE_REASON
	OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_UNSET E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON = 0
	// OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_AS_LOOP corresponds to the value INVALID_AS_LOOP of OpenconfigRibBgpTypes_INVALID_ROUTE_REASON
	OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_AS_LOOP E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON = 1
	// OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_CLUSTER_LOOP corresponds to the value INVALID_CLUSTER_LOOP of OpenconfigRibBgpTypes_INVALID_ROUTE_REASON
	OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_CLUSTER_LOOP E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON = 2
	// OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_CONFED corresponds to the value INVALID_CONFED of OpenconfigRibBgpTypes_INVALID_ROUTE_REASON
	OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_CONFED E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON = 3
	// OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_ORIGINATOR corresponds to the value INVALID_ORIGINATOR of OpenconfigRibBgpTypes_INVALID_ROUTE_REASON
	OpenconfigRibBgpTypes_INVALID_ROUTE_REASON_INVALID_ORIGINATOR E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON = 4
)

// E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE. An additional value named
// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE int64

// IsYANGGoEnum ensures that OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE.
func (E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE.
func (e E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE")
}

const (
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_UNSET corresponds to the value UNSET of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_UNSET E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE = 0
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_SRTE_BINDING_SID corresponds to the value SRTE_BINDING_SID of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_SRTE_BINDING_SID E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE = 1
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_SRTE_PREFERENCE corresponds to the value SRTE_PREFERENCE of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_SRTE_PREFERENCE E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE = 2
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_SRTE_SEGMENT_LIST corresponds to the value SRTE_SEGMENT_LIST of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_SRTE_SEGMENT_LIST E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE = 3
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_TUNNEL_COLOR corresponds to the value TUNNEL_COLOR of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_TUNNEL_COLOR E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE = 4
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_TUNNEL_REMOTE_ENDPOINT corresponds to the value TUNNEL_REMOTE_ENDPOINT of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE_TUNNEL_REMOTE_ENDPOINT E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE = 5
)

// E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE. An additional value named
// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE int64

// IsYANGGoEnum ensures that OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE.
func (E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE.
func (e E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE")
}

const (
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE_UNSET corresponds to the value UNSET of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE_UNSET E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE = 0
	// OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE_SRTE_POLICY_TUNNEL corresponds to the value SRTE_POLICY_TUNNEL of OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE
	OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE_SRTE_POLICY_TUNNEL E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE = 1
)

// E_OpenconfigRoutingPolicy_DefaultPolicyType is a derived int64 type which is used to represent
// the enumerated node OpenconfigRoutingPolicy_DefaultPolicyType. An additional value named
// OpenconfigRoutingPolicy_DefaultPolicyType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigRoutingPolicy_DefaultPolicyType int64

// IsYANGGoEnum ensures that OpenconfigRoutingPolicy_DefaultPolicyType implements the yang.GoEnum
// interface. This ensures that OpenconfigRoutingPolicy_DefaultPolicyType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigRoutingPolicy_DefaultPolicyType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigRoutingPolicy_DefaultPolicyType.
func (E_OpenconfigRoutingPolicy_DefaultPolicyType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigRoutingPolicy_DefaultPolicyType.
func (e E_OpenconfigRoutingPolicy_DefaultPolicyType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigRoutingPolicy_DefaultPolicyType")
}

const (
	// OpenconfigRoutingPolicy_DefaultPolicyType_UNSET corresponds to the value UNSET of OpenconfigRoutingPolicy_DefaultPolicyType
	OpenconfigRoutingPolicy_DefaultPolicyType_UNSET E_OpenconfigRoutingPolicy_DefaultPolicyType = 0
	// OpenconfigRoutingPolicy_DefaultPolicyType_ACCEPT_ROUTE corresponds to the value ACCEPT_ROUTE of OpenconfigRoutingPolicy_DefaultPolicyType
	OpenconfigRoutingPolicy_DefaultPolicyType_ACCEPT_ROUTE E_OpenconfigRoutingPolicy_DefaultPolicyType = 1
	// OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE corresponds to the value REJECT_ROUTE of OpenconfigRoutingPolicy_DefaultPolicyType
	OpenconfigRoutingPolicy_DefaultPolicyType_REJECT_ROUTE E_OpenconfigRoutingPolicy_DefaultPolicyType = 2
)

// E_OpenconfigRoutingPolicy_PolicyResultType is a derived int64 type which is used to represent
// the enumerated node OpenconfigRoutingPolicy_PolicyResultType. An additional value named
// OpenconfigRoutingPolicy_PolicyResultType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigRoutingPolicy_PolicyResultType int64

// IsYANGGoEnum ensures that OpenconfigRoutingPolicy_PolicyResultType implements the yang.GoEnum
// interface. This ensures that OpenconfigRoutingPolicy_PolicyResultType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigRoutingPolicy_PolicyResultType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigRoutingPolicy_PolicyResultType.
func (E_OpenconfigRoutingPolicy_PolicyResultType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigRoutingPolicy_PolicyResultType.
func (e E_OpenconfigRoutingPolicy_PolicyResultType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigRoutingPolicy_PolicyResultType")
}

const (
	// OpenconfigRoutingPolicy_PolicyResultType_UNSET corresponds to the value UNSET of OpenconfigRoutingPolicy_PolicyResultType
	OpenconfigRoutingPolicy_PolicyResultType_UNSET E_OpenconfigRoutingPolicy_PolicyResultType = 0
	// OpenconfigRoutingPolicy_PolicyResultType_ACCEPT_ROUTE corresponds to the value ACCEPT_ROUTE of OpenconfigRoutingPolicy_PolicyResultType
	OpenconfigRoutingPolicy_PolicyResultType_ACCEPT_ROUTE E_OpenconfigRoutingPolicy_PolicyResultType = 1
	// OpenconfigRoutingPolicy_PolicyResultType_REJECT_ROUTE corresponds to the value REJECT_ROUTE of OpenconfigRoutingPolicy_PolicyResultType
	OpenconfigRoutingPolicy_PolicyResultType_REJECT_ROUTE E_OpenconfigRoutingPolicy_PolicyResultType = 2
	// OpenconfigRoutingPolicy_PolicyResultType_NEXT_STATEMENT corresponds to the value NEXT_STATEMENT of OpenconfigRoutingPolicy_PolicyResultType
	OpenconfigRoutingPolicy_PolicyResultType_NEXT_STATEMENT E_OpenconfigRoutingPolicy_PolicyResultType = 3
)

// E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode is a derived int64 type which is used to represent
// the enumerated node OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode. An additional value named
// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode int64

// IsYANGGoEnum ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode implements the yang.GoEnum
// interface. This ensures that OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode.
func (E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode.
func (e E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode")
}

const (
	// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_UNSET corresponds to the value UNSET of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode
	OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_UNSET E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode = 0
	// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_IPV4 corresponds to the value IPV4 of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode
	OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_IPV4 E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode = 1
	// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_IPV6 corresponds to the value IPV6 of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode
	OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_IPV6 E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode = 2
	// OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_MIXED corresponds to the value MIXED of OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode
	OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode_MIXED E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode = 3
)

// E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode is a derived int64 type which is used to represent
// the enumerated node OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode. An additional value named
// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode int64

// IsYANGGoEnum ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode implements the yang.GoEnum
// interface. This ensures that OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode.
func (E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode.
func (e E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode")
}

const (
	// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode_UNSET corresponds to the value UNSET of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode
	OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode_UNSET E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode = 0
	// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode_INLINE corresponds to the value INLINE of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode
	OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode_INLINE E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode = 1
	// OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode_REFERENCE corresponds to the value REFERENCE of OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode
	OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode_REFERENCE E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode = 2
)

// E_OpenconfigSegmentRoutingTypes_EnlpType is a derived int64 type which is used to represent
// the enumerated node OpenconfigSegmentRoutingTypes_EnlpType. An additional value named
// OpenconfigSegmentRoutingTypes_EnlpType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSegmentRoutingTypes_EnlpType int64

// IsYANGGoEnum ensures that OpenconfigSegmentRoutingTypes_EnlpType implements the yang.GoEnum
// interface. This ensures that OpenconfigSegmentRoutingTypes_EnlpType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSegmentRoutingTypes_EnlpType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSegmentRoutingTypes_EnlpType.
func (E_OpenconfigSegmentRoutingTypes_EnlpType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSegmentRoutingTypes_EnlpType.
func (e E_OpenconfigSegmentRoutingTypes_EnlpType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSegmentRoutingTypes_EnlpType")
}

const (
	// OpenconfigSegmentRoutingTypes_EnlpType_UNSET corresponds to the value UNSET of OpenconfigSegmentRoutingTypes_EnlpType
	OpenconfigSegmentRoutingTypes_EnlpType_UNSET E_OpenconfigSegmentRoutingTypes_EnlpType = 0
	// OpenconfigSegmentRoutingTypes_EnlpType_PUSH_IPV4_EXPLICIT_NULL corresponds to the value PUSH_IPV4_EXPLICIT_NULL of OpenconfigSegmentRoutingTypes_EnlpType
	OpenconfigSegmentRoutingTypes_EnlpType_PUSH_IPV4_EXPLICIT_NULL E_OpenconfigSegmentRoutingTypes_EnlpType = 1
	// OpenconfigSegmentRoutingTypes_EnlpType_PUSH_IPV6_EXPLICIT_NULL corresponds to the value PUSH_IPV6_EXPLICIT_NULL of OpenconfigSegmentRoutingTypes_EnlpType
	OpenconfigSegmentRoutingTypes_EnlpType_PUSH_IPV6_EXPLICIT_NULL E_OpenconfigSegmentRoutingTypes_EnlpType = 2
	// OpenconfigSegmentRoutingTypes_EnlpType_PUSH_IPV46_EXPLICIT_NULL corresponds to the value PUSH_IPV46_EXPLICIT_NULL of OpenconfigSegmentRoutingTypes_EnlpType
	OpenconfigSegmentRoutingTypes_EnlpType_PUSH_IPV46_EXPLICIT_NULL E_OpenconfigSegmentRoutingTypes_EnlpType = 3
	// OpenconfigSegmentRoutingTypes_EnlpType_NO_EXPLICIT_NULL corresponds to the value NO_EXPLICIT_NULL of OpenconfigSegmentRoutingTypes_EnlpType
	OpenconfigSegmentRoutingTypes_EnlpType_NO_EXPLICIT_NULL E_OpenconfigSegmentRoutingTypes_EnlpType = 4
)

// E_OpenconfigSegmentRoutingTypes_SrDataplaneType is a derived int64 type which is used to represent
// the enumerated node OpenconfigSegmentRoutingTypes_SrDataplaneType. An additional value named
// OpenconfigSegmentRoutingTypes_SrDataplaneType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSegmentRoutingTypes_SrDataplaneType int64

// IsYANGGoEnum ensures that OpenconfigSegmentRoutingTypes_SrDataplaneType implements the yang.GoEnum
// interface. This ensures that OpenconfigSegmentRoutingTypes_SrDataplaneType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSegmentRoutingTypes_SrDataplaneType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSegmentRoutingTypes_SrDataplaneType.
func (E_OpenconfigSegmentRoutingTypes_SrDataplaneType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSegmentRoutingTypes_SrDataplaneType.
func (e E_OpenconfigSegmentRoutingTypes_SrDataplaneType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSegmentRoutingTypes_SrDataplaneType")
}

const (
	// OpenconfigSegmentRoutingTypes_SrDataplaneType_UNSET corresponds to the value UNSET of OpenconfigSegmentRoutingTypes_SrDataplaneType
	OpenconfigSegmentRoutingTypes_SrDataplaneType_UNSET E_OpenconfigSegmentRoutingTypes_SrDataplaneType = 0
	// OpenconfigSegmentRoutingTypes_SrDataplaneType_MPLS corresponds to the value MPLS of OpenconfigSegmentRoutingTypes_SrDataplaneType
	OpenconfigSegmentRoutingTypes_SrDataplaneType_MPLS E_OpenconfigSegmentRoutingTypes_SrDataplaneType = 1
	// OpenconfigSegmentRoutingTypes_SrDataplaneType_IPV6 corresponds to the value IPV6 of OpenconfigSegmentRoutingTypes_SrDataplaneType
	OpenconfigSegmentRoutingTypes_SrDataplaneType_IPV6 E_OpenconfigSegmentRoutingTypes_SrDataplaneType = 2
)

// E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason is a derived int64 type which is used to represent
// the enumerated node OpenconfigSegmentRoutingTypes_SrteInvalidSlReason. An additional value named
// OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason int64

// IsYANGGoEnum ensures that OpenconfigSegmentRoutingTypes_SrteInvalidSlReason implements the yang.GoEnum
// interface. This ensures that OpenconfigSegmentRoutingTypes_SrteInvalidSlReason can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSegmentRoutingTypes_SrteInvalidSlReason.
func (E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason.
func (e E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason")
}

const (
	// OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_UNSET corresponds to the value UNSET of OpenconfigSegmentRoutingTypes_SrteInvalidSlReason
	OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_UNSET E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason = 0
	// OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_EMPTY_SL corresponds to the value EMPTY_SL of OpenconfigSegmentRoutingTypes_SrteInvalidSlReason
	OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_EMPTY_SL E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason = 1
	// OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_ZERO_WEIGHT corresponds to the value ZERO_WEIGHT of OpenconfigSegmentRoutingTypes_SrteInvalidSlReason
	OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_ZERO_WEIGHT E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason = 2
	// OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_FIRST_SID_UNRESOLVABLE corresponds to the value FIRST_SID_UNRESOLVABLE of OpenconfigSegmentRoutingTypes_SrteInvalidSlReason
	OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_FIRST_SID_UNRESOLVABLE E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason = 3
	// OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_OTHER_SID_UNRESOLVABLE corresponds to the value OTHER_SID_UNRESOLVABLE of OpenconfigSegmentRoutingTypes_SrteInvalidSlReason
	OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_OTHER_SID_UNRESOLVABLE E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason = 4
	// OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_VERIFICATION_FAIL corresponds to the value VERIFICATION_FAIL of OpenconfigSegmentRoutingTypes_SrteInvalidSlReason
	OpenconfigSegmentRoutingTypes_SrteInvalidSlReason_VERIFICATION_FAIL E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason = 5
)

// E_OpenconfigSegmentRoutingTypes_SrteProtocolType is a derived int64 type which is used to represent
// the enumerated node OpenconfigSegmentRoutingTypes_SrteProtocolType. An additional value named
// OpenconfigSegmentRoutingTypes_SrteProtocolType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSegmentRoutingTypes_SrteProtocolType int64

// IsYANGGoEnum ensures that OpenconfigSegmentRoutingTypes_SrteProtocolType implements the yang.GoEnum
// interface. This ensures that OpenconfigSegmentRoutingTypes_SrteProtocolType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSegmentRoutingTypes_SrteProtocolType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSegmentRoutingTypes_SrteProtocolType.
func (E_OpenconfigSegmentRoutingTypes_SrteProtocolType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSegmentRoutingTypes_SrteProtocolType.
func (e E_OpenconfigSegmentRoutingTypes_SrteProtocolType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSegmentRoutingTypes_SrteProtocolType")
}

const (
	// OpenconfigSegmentRoutingTypes_SrteProtocolType_UNSET corresponds to the value UNSET of OpenconfigSegmentRoutingTypes_SrteProtocolType
	OpenconfigSegmentRoutingTypes_SrteProtocolType_UNSET E_OpenconfigSegmentRoutingTypes_SrteProtocolType = 0
	// OpenconfigSegmentRoutingTypes_SrteProtocolType_PCEP corresponds to the value PCEP of OpenconfigSegmentRoutingTypes_SrteProtocolType
	OpenconfigSegmentRoutingTypes_SrteProtocolType_PCEP E_OpenconfigSegmentRoutingTypes_SrteProtocolType = 11
	// OpenconfigSegmentRoutingTypes_SrteProtocolType_BGP corresponds to the value BGP of OpenconfigSegmentRoutingTypes_SrteProtocolType
	OpenconfigSegmentRoutingTypes_SrteProtocolType_BGP E_OpenconfigSegmentRoutingTypes_SrteProtocolType = 21
	// OpenconfigSegmentRoutingTypes_SrteProtocolType_CONFIG corresponds to the value CONFIG of OpenconfigSegmentRoutingTypes_SrteProtocolType
	OpenconfigSegmentRoutingTypes_SrteProtocolType_CONFIG E_OpenconfigSegmentRoutingTypes_SrteProtocolType = 31
)

// E_OpenconfigSystemLogging_SYSLOG_FACILITY is a derived int64 type which is used to represent
// the enumerated node OpenconfigSystemLogging_SYSLOG_FACILITY. An additional value named
// OpenconfigSystemLogging_SYSLOG_FACILITY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSystemLogging_SYSLOG_FACILITY int64

// IsYANGGoEnum ensures that OpenconfigSystemLogging_SYSLOG_FACILITY implements the yang.GoEnum
// interface. This ensures that OpenconfigSystemLogging_SYSLOG_FACILITY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSystemLogging_SYSLOG_FACILITY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSystemLogging_SYSLOG_FACILITY.
func (E_OpenconfigSystemLogging_SYSLOG_FACILITY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSystemLogging_SYSLOG_FACILITY.
func (e E_OpenconfigSystemLogging_SYSLOG_FACILITY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSystemLogging_SYSLOG_FACILITY")
}

const (
	// OpenconfigSystemLogging_SYSLOG_FACILITY_UNSET corresponds to the value UNSET of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_UNSET E_OpenconfigSystemLogging_SYSLOG_FACILITY = 0
	// OpenconfigSystemLogging_SYSLOG_FACILITY_ALL corresponds to the value ALL of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_ALL E_OpenconfigSystemLogging_SYSLOG_FACILITY = 1
	// OpenconfigSystemLogging_SYSLOG_FACILITY_AUDIT corresponds to the value AUDIT of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_AUDIT E_OpenconfigSystemLogging_SYSLOG_FACILITY = 2
	// OpenconfigSystemLogging_SYSLOG_FACILITY_AUTH corresponds to the value AUTH of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_AUTH E_OpenconfigSystemLogging_SYSLOG_FACILITY = 3
	// OpenconfigSystemLogging_SYSLOG_FACILITY_AUTHPRIV corresponds to the value AUTHPRIV of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_AUTHPRIV E_OpenconfigSystemLogging_SYSLOG_FACILITY = 4
	// OpenconfigSystemLogging_SYSLOG_FACILITY_CONSOLE corresponds to the value CONSOLE of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_CONSOLE E_OpenconfigSystemLogging_SYSLOG_FACILITY = 5
	// OpenconfigSystemLogging_SYSLOG_FACILITY_KERNEL corresponds to the value KERNEL of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_KERNEL E_OpenconfigSystemLogging_SYSLOG_FACILITY = 6
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL0 corresponds to the value LOCAL0 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL0 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 7
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL1 corresponds to the value LOCAL1 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL1 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 8
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL2 corresponds to the value LOCAL2 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL2 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 9
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL3 corresponds to the value LOCAL3 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL3 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 10
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL4 corresponds to the value LOCAL4 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL4 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 11
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL5 corresponds to the value LOCAL5 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL5 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 12
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL6 corresponds to the value LOCAL6 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL6 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 13
	// OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL7 corresponds to the value LOCAL7 of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_LOCAL7 E_OpenconfigSystemLogging_SYSLOG_FACILITY = 14
	// OpenconfigSystemLogging_SYSLOG_FACILITY_MAIL corresponds to the value MAIL of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_MAIL E_OpenconfigSystemLogging_SYSLOG_FACILITY = 15
	// OpenconfigSystemLogging_SYSLOG_FACILITY_NTP corresponds to the value NTP of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_NTP E_OpenconfigSystemLogging_SYSLOG_FACILITY = 16
	// OpenconfigSystemLogging_SYSLOG_FACILITY_SYSLOG corresponds to the value SYSLOG of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_SYSLOG E_OpenconfigSystemLogging_SYSLOG_FACILITY = 17
	// OpenconfigSystemLogging_SYSLOG_FACILITY_SYSTEM_DAEMON corresponds to the value SYSTEM_DAEMON of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_SYSTEM_DAEMON E_OpenconfigSystemLogging_SYSLOG_FACILITY = 18
	// OpenconfigSystemLogging_SYSLOG_FACILITY_USER corresponds to the value USER of OpenconfigSystemLogging_SYSLOG_FACILITY
	OpenconfigSystemLogging_SYSLOG_FACILITY_USER E_OpenconfigSystemLogging_SYSLOG_FACILITY = 19
)

// E_OpenconfigSystemLogging_SyslogSeverity is a derived int64 type which is used to represent
// the enumerated node OpenconfigSystemLogging_SyslogSeverity. An additional value named
// OpenconfigSystemLogging_SyslogSeverity_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSystemLogging_SyslogSeverity int64

// IsYANGGoEnum ensures that OpenconfigSystemLogging_SyslogSeverity implements the yang.GoEnum
// interface. This ensures that OpenconfigSystemLogging_SyslogSeverity can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSystemLogging_SyslogSeverity) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSystemLogging_SyslogSeverity.
func (E_OpenconfigSystemLogging_SyslogSeverity) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSystemLogging_SyslogSeverity.
func (e E_OpenconfigSystemLogging_SyslogSeverity) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSystemLogging_SyslogSeverity")
}

const (
	// OpenconfigSystemLogging_SyslogSeverity_UNSET corresponds to the value UNSET of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_UNSET E_OpenconfigSystemLogging_SyslogSeverity = 0
	// OpenconfigSystemLogging_SyslogSeverity_EMERGENCY corresponds to the value EMERGENCY of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_EMERGENCY E_OpenconfigSystemLogging_SyslogSeverity = 1
	// OpenconfigSystemLogging_SyslogSeverity_ALERT corresponds to the value ALERT of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_ALERT E_OpenconfigSystemLogging_SyslogSeverity = 2
	// OpenconfigSystemLogging_SyslogSeverity_CRITICAL corresponds to the value CRITICAL of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_CRITICAL E_OpenconfigSystemLogging_SyslogSeverity = 3
	// OpenconfigSystemLogging_SyslogSeverity_ERROR corresponds to the value ERROR of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_ERROR E_OpenconfigSystemLogging_SyslogSeverity = 4
	// OpenconfigSystemLogging_SyslogSeverity_WARNING corresponds to the value WARNING of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_WARNING E_OpenconfigSystemLogging_SyslogSeverity = 5
	// OpenconfigSystemLogging_SyslogSeverity_NOTICE corresponds to the value NOTICE of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_NOTICE E_OpenconfigSystemLogging_SyslogSeverity = 6
	// OpenconfigSystemLogging_SyslogSeverity_INFORMATIONAL corresponds to the value INFORMATIONAL of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_INFORMATIONAL E_OpenconfigSystemLogging_SyslogSeverity = 7
	// OpenconfigSystemLogging_SyslogSeverity_DEBUG corresponds to the value DEBUG of OpenconfigSystemLogging_SyslogSeverity
	OpenconfigSystemLogging_SyslogSeverity_DEBUG E_OpenconfigSystemLogging_SyslogSeverity = 8
)

// E_OpenconfigSystem_NTP_AUTH_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigSystem_NTP_AUTH_TYPE. An additional value named
// OpenconfigSystem_NTP_AUTH_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSystem_NTP_AUTH_TYPE int64

// IsYANGGoEnum ensures that OpenconfigSystem_NTP_AUTH_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigSystem_NTP_AUTH_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSystem_NTP_AUTH_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSystem_NTP_AUTH_TYPE.
func (E_OpenconfigSystem_NTP_AUTH_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSystem_NTP_AUTH_TYPE.
func (e E_OpenconfigSystem_NTP_AUTH_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSystem_NTP_AUTH_TYPE")
}

const (
	// OpenconfigSystem_NTP_AUTH_TYPE_UNSET corresponds to the value UNSET of OpenconfigSystem_NTP_AUTH_TYPE
	OpenconfigSystem_NTP_AUTH_TYPE_UNSET E_OpenconfigSystem_NTP_AUTH_TYPE = 0
	// OpenconfigSystem_NTP_AUTH_TYPE_NTP_AUTH_MD5 corresponds to the value NTP_AUTH_MD5 of OpenconfigSystem_NTP_AUTH_TYPE
	OpenconfigSystem_NTP_AUTH_TYPE_NTP_AUTH_MD5 E_OpenconfigSystem_NTP_AUTH_TYPE = 1
)

// E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record is a derived int64 type which is used to represent
// the enumerated node OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record. An additional value named
// OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record int64

// IsYANGGoEnum ensures that OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record implements the yang.GoEnum
// interface. This ensures that OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record.
func (E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record.
func (e E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record")
}

const (
	// OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record_UNSET corresponds to the value UNSET of OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record
	OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record_UNSET E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record = 0
	// OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record_START_STOP corresponds to the value START_STOP of OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record
	OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record_START_STOP E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record = 1
	// OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record_STOP corresponds to the value STOP of OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record
	OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record_STOP E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record = 2
)

// E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum is a derived int64 type which is used to represent
// the enumerated node OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum. An additional value named
// OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum int64

// IsYANGGoEnum ensures that OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum implements the yang.GoEnum
// interface. This ensures that OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum.
func (E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum.
func (e E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum")
}

const (
	// OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum_UNSET corresponds to the value UNSET of OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum
	OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum_UNSET E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum = 0
	// OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum_ALL corresponds to the value ALL of OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum
	OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum_ALL E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum = 1
)

// E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType is a derived int64 type which is used to represent
// the enumerated node OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType. An additional value named
// OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType int64

// IsYANGGoEnum ensures that OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType implements the yang.GoEnum
// interface. This ensures that OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType.
func (E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType.
func (e E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType")
}

const (
	// OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_UNSET corresponds to the value UNSET of OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType
	OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_UNSET E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType = 0
	// OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_SERVER corresponds to the value SERVER of OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType
	OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_SERVER E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType = 1
	// OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_PEER corresponds to the value PEER of OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType
	OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_PEER E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType = 2
	// OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_POOL corresponds to the value POOL of OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType
	OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType_POOL E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType = 3
)

// E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion is a derived int64 type which is used to represent
// the enumerated node OpenconfigSystem_System_SshServer_Config_ProtocolVersion. An additional value named
// OpenconfigSystem_System_SshServer_Config_ProtocolVersion_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion int64

// IsYANGGoEnum ensures that OpenconfigSystem_System_SshServer_Config_ProtocolVersion implements the yang.GoEnum
// interface. This ensures that OpenconfigSystem_System_SshServer_Config_ProtocolVersion can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigSystem_System_SshServer_Config_ProtocolVersion.
func (E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion.
func (e E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion")
}

const (
	// OpenconfigSystem_System_SshServer_Config_ProtocolVersion_UNSET corresponds to the value UNSET of OpenconfigSystem_System_SshServer_Config_ProtocolVersion
	OpenconfigSystem_System_SshServer_Config_ProtocolVersion_UNSET E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion = 0
	// OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V2 corresponds to the value V2 of OpenconfigSystem_System_SshServer_Config_ProtocolVersion
	OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V2 E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion = 1
	// OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V1 corresponds to the value V1 of OpenconfigSystem_System_SshServer_Config_ProtocolVersion
	OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V1 E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion = 2
	// OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V1_V2 corresponds to the value V1_V2 of OpenconfigSystem_System_SshServer_Config_ProtocolVersion
	OpenconfigSystem_System_SshServer_Config_ProtocolVersion_V1_V2 E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion = 3
)

// E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls is a derived int64 type which is used to represent
// the enumerated node OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls. An additional value named
// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls int64

// IsYANGGoEnum ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls implements the yang.GoEnum
// interface. This ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls.
func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls.
func (e E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls")
}

const (
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_UNSET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 0
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_NONE corresponds to the value NONE of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_NONE E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 1
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_LASER_SHUTDOWN corresponds to the value LASER_SHUTDOWN of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_LASER_SHUTDOWN E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 2
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET corresponds to the value ETHERNET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 3
)

// E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType is a derived int64 type which is used to represent
// the enumerated node OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType. An additional value named
// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType int64

// IsYANGGoEnum ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType implements the yang.GoEnum
// interface. This ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType.
func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType.
func (e E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType")
}

const (
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_UNSET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType = 0
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_LOGICAL_CHANNEL corresponds to the value LOGICAL_CHANNEL of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_LOGICAL_CHANNEL E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType = 1
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_OPTICAL_CHANNEL corresponds to the value OPTICAL_CHANNEL of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_OPTICAL_CHANNEL E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType = 2
)

// E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState is a derived int64 type which is used to represent
// the enumerated node OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState. An additional value named
// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState int64

// IsYANGGoEnum ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState implements the yang.GoEnum
// interface. This ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState) IsYANGGoEnum() {
}

// ΛMap returns the value lookup map associated with  OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState.
func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState.
func (e E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState")
}

const (
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UNSET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 0
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UP corresponds to the value UP of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UP E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 1
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_DOWN corresponds to the value DOWN of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_DOWN E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 2
	// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_TESTING corresponds to the value TESTING of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState
	OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_TESTING E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 3
)

// E_OpenconfigTransportTypes_AdminStateType is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_AdminStateType. An additional value named
// OpenconfigTransportTypes_AdminStateType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_AdminStateType int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_AdminStateType implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_AdminStateType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_AdminStateType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_AdminStateType.
func (E_OpenconfigTransportTypes_AdminStateType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_AdminStateType.
func (e E_OpenconfigTransportTypes_AdminStateType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_AdminStateType")
}

const (
	// OpenconfigTransportTypes_AdminStateType_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_AdminStateType
	OpenconfigTransportTypes_AdminStateType_UNSET E_OpenconfigTransportTypes_AdminStateType = 0
	// OpenconfigTransportTypes_AdminStateType_ENABLED corresponds to the value ENABLED of OpenconfigTransportTypes_AdminStateType
	OpenconfigTransportTypes_AdminStateType_ENABLED E_OpenconfigTransportTypes_AdminStateType = 1
	// OpenconfigTransportTypes_AdminStateType_DISABLED corresponds to the value DISABLED of OpenconfigTransportTypes_AdminStateType
	OpenconfigTransportTypes_AdminStateType_DISABLED E_OpenconfigTransportTypes_AdminStateType = 2
	// OpenconfigTransportTypes_AdminStateType_MAINT corresponds to the value MAINT of OpenconfigTransportTypes_AdminStateType
	OpenconfigTransportTypes_AdminStateType_MAINT E_OpenconfigTransportTypes_AdminStateType = 3
)

// E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_CLIENT_MAPPING_MODE. An additional value named
// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_CLIENT_MAPPING_MODE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_CLIENT_MAPPING_MODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_CLIENT_MAPPING_MODE.
func (E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE.
func (e E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE")
}

const (
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_UNSET E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 0
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_1X100G corresponds to the value MODE_1X100G of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_1X100G E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 1
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_1X200G corresponds to the value MODE_1X200G of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_1X200G E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 2
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_1X400G corresponds to the value MODE_1X400G of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_1X400G E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 3
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_2X100G corresponds to the value MODE_2X100G of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_2X100G E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 4
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_2X200G corresponds to the value MODE_2X200G of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_2X200G E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 5
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_3X100G corresponds to the value MODE_3X100G of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_3X100G E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 6
	// OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_4X100G corresponds to the value MODE_4X100G of OpenconfigTransportTypes_CLIENT_MAPPING_MODE
	OpenconfigTransportTypes_CLIENT_MAPPING_MODE_MODE_4X100G E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE = 7
)

// E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_ETHERNET_PMD_TYPE. An additional value named
// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_ETHERNET_PMD_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_ETHERNET_PMD_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_ETHERNET_PMD_TYPE.
func (E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE.
func (e E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE")
}

const (
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_UNSET E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 0
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_1000BASE_LX10 corresponds to the value ETH_1000BASE_LX10 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_1000BASE_LX10 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 1
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CLR4 corresponds to the value ETH_100GBASE_CLR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CLR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 2
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CR4 corresponds to the value ETH_100GBASE_CR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 3
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CWDM4 corresponds to the value ETH_100GBASE_CWDM4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CWDM4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 4
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_DR corresponds to the value ETH_100GBASE_DR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_DR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 5
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_ER4 corresponds to the value ETH_100GBASE_ER4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_ER4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 6
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_ER4L corresponds to the value ETH_100GBASE_ER4L of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_ER4L E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 7
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_FR corresponds to the value ETH_100GBASE_FR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_FR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 8
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_LR4 corresponds to the value ETH_100GBASE_LR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_LR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 9
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_PSM4 corresponds to the value ETH_100GBASE_PSM4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_PSM4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 10
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR10 corresponds to the value ETH_100GBASE_SR10 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR10 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 11
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR4 corresponds to the value ETH_100GBASE_SR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 12
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_ACC corresponds to the value ETH_100G_ACC of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_ACC E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 13
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_AOC corresponds to the value ETH_100G_AOC of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_AOC E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 14
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ER corresponds to the value ETH_10GBASE_ER of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ER E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 15
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LR corresponds to the value ETH_10GBASE_LR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 16
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LRM corresponds to the value ETH_10GBASE_LRM of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LRM E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 17
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_SR corresponds to the value ETH_10GBASE_SR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_SR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 18
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ZR corresponds to the value ETH_10GBASE_ZR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ZR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 19
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_DR4 corresponds to the value ETH_400GBASE_DR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_DR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 20
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_FR4 corresponds to the value ETH_400GBASE_FR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_FR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 21
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_LR4 corresponds to the value ETH_400GBASE_LR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_LR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 22
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_LR8 corresponds to the value ETH_400GBASE_LR8 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_LR8 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 23
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_ZR corresponds to the value ETH_400GBASE_ZR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GBASE_ZR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 24
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GMSA_PSM4 corresponds to the value ETH_400GMSA_PSM4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_400GMSA_PSM4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 25
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_CR4 corresponds to the value ETH_40GBASE_CR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_CR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 26
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_ER4 corresponds to the value ETH_40GBASE_ER4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_ER4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 27
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_LR4 corresponds to the value ETH_40GBASE_LR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_LR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 28
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_PSM4 corresponds to the value ETH_40GBASE_PSM4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_PSM4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 29
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_SR4 corresponds to the value ETH_40GBASE_SR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_SR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 30
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_LR corresponds to the value ETH_4X10GBASE_LR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_LR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 31
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_SR corresponds to the value ETH_4X10GBASE_SR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_SR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 32
	// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_UNDEFINED corresponds to the value ETH_UNDEFINED of OpenconfigTransportTypes_ETHERNET_PMD_TYPE
	OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_UNDEFINED E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 33
)

// E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE. An additional value named
// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE.
func (E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE.
func (e E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE")
}

const (
	// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE
	OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_UNSET E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 0
	// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_AOC_CONNECTOR corresponds to the value AOC_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE
	OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_AOC_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 1
	// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_DAC_CONNECTOR corresponds to the value DAC_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE
	OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_DAC_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 2
	// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_LC_CONNECTOR corresponds to the value LC_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE
	OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_LC_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 3
	// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_MPO_CONNECTOR corresponds to the value MPO_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE
	OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_MPO_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 4
	// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_SC_CONNECTOR corresponds to the value SC_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE
	OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_SC_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 5
)

// E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL. An additional value named
// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL.
func (E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL.
func (e E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL")
}

const (
	// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL
	OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_UNSET E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 0
	// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_AMP corresponds to the value AMP of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL
	OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_AMP E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 1
	// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_BMP corresponds to the value BMP of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL
	OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_BMP E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 2
	// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_CBR corresponds to the value CBR of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL
	OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_CBR E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 3
	// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_F corresponds to the value GFP_F of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL
	OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_F E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 4
	// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_T corresponds to the value GFP_T of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL
	OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_T E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 5
	// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GMP corresponds to the value GMP of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL
	OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GMP E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 6
)

// E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE. An additional value named
// OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE.
func (E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE.
func (e E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE")
}

const (
	// OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE
	OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_UNSET E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE = 0
	// OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_ETHERNET corresponds to the value PROT_ETHERNET of OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE
	OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_ETHERNET E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE = 1
	// OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_OTN corresponds to the value PROT_OTN of OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE
	OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_OTN E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE = 2
)

// E_OpenconfigTransportTypes_LoopbackModeType is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_LoopbackModeType. An additional value named
// OpenconfigTransportTypes_LoopbackModeType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_LoopbackModeType int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_LoopbackModeType implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_LoopbackModeType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_LoopbackModeType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_LoopbackModeType.
func (E_OpenconfigTransportTypes_LoopbackModeType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_LoopbackModeType.
func (e E_OpenconfigTransportTypes_LoopbackModeType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_LoopbackModeType")
}

const (
	// OpenconfigTransportTypes_LoopbackModeType_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_UNSET E_OpenconfigTransportTypes_LoopbackModeType = 0
	// OpenconfigTransportTypes_LoopbackModeType_NONE corresponds to the value NONE of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_NONE E_OpenconfigTransportTypes_LoopbackModeType = 1
	// OpenconfigTransportTypes_LoopbackModeType_FACILITY corresponds to the value FACILITY of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_FACILITY E_OpenconfigTransportTypes_LoopbackModeType = 2
	// OpenconfigTransportTypes_LoopbackModeType_TERMINAL corresponds to the value TERMINAL of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_TERMINAL E_OpenconfigTransportTypes_LoopbackModeType = 3
	// OpenconfigTransportTypes_LoopbackModeType_ASIC_PHY_LOCAL corresponds to the value ASIC_PHY_LOCAL of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_ASIC_PHY_LOCAL E_OpenconfigTransportTypes_LoopbackModeType = 4
	// OpenconfigTransportTypes_LoopbackModeType_ASIC_PHY_REMOTE corresponds to the value ASIC_PHY_REMOTE of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_ASIC_PHY_REMOTE E_OpenconfigTransportTypes_LoopbackModeType = 5
	// OpenconfigTransportTypes_LoopbackModeType_ASIC_MAC_LOCAL corresponds to the value ASIC_MAC_LOCAL of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_ASIC_MAC_LOCAL E_OpenconfigTransportTypes_LoopbackModeType = 6
	// OpenconfigTransportTypes_LoopbackModeType_ASIC_MAC_REMOTE corresponds to the value ASIC_MAC_REMOTE of OpenconfigTransportTypes_LoopbackModeType
	OpenconfigTransportTypes_LoopbackModeType_ASIC_MAC_REMOTE E_OpenconfigTransportTypes_LoopbackModeType = 7
)

// E_OpenconfigTransportTypes_OTN_APPLICATION_CODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_OTN_APPLICATION_CODE. An additional value named
// OpenconfigTransportTypes_OTN_APPLICATION_CODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_OTN_APPLICATION_CODE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_OTN_APPLICATION_CODE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_OTN_APPLICATION_CODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_OTN_APPLICATION_CODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_OTN_APPLICATION_CODE.
func (E_OpenconfigTransportTypes_OTN_APPLICATION_CODE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_OTN_APPLICATION_CODE.
func (e E_OpenconfigTransportTypes_OTN_APPLICATION_CODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_OTN_APPLICATION_CODE")
}

const (
	// OpenconfigTransportTypes_OTN_APPLICATION_CODE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_OTN_APPLICATION_CODE
	OpenconfigTransportTypes_OTN_APPLICATION_CODE_UNSET E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 0
	// OpenconfigTransportTypes_OTN_APPLICATION_CODE_OTN_UNDEFINED corresponds to the value OTN_UNDEFINED of OpenconfigTransportTypes_OTN_APPLICATION_CODE
	OpenconfigTransportTypes_OTN_APPLICATION_CODE_OTN_UNDEFINED E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 1
	// OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D1 corresponds to the value P1L1_2D1 of OpenconfigTransportTypes_OTN_APPLICATION_CODE
	OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D1 E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 2
	// OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D2 corresponds to the value P1L1_2D2 of OpenconfigTransportTypes_OTN_APPLICATION_CODE
	OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D2 E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 3
	// OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1S1_2D2 corresponds to the value P1S1_2D2 of OpenconfigTransportTypes_OTN_APPLICATION_CODE
	OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1S1_2D2 E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 4
)

// E_OpenconfigTransportTypes_SONET_APPLICATION_CODE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_SONET_APPLICATION_CODE. An additional value named
// OpenconfigTransportTypes_SONET_APPLICATION_CODE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_SONET_APPLICATION_CODE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_SONET_APPLICATION_CODE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_SONET_APPLICATION_CODE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_SONET_APPLICATION_CODE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_SONET_APPLICATION_CODE.
func (E_OpenconfigTransportTypes_SONET_APPLICATION_CODE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_SONET_APPLICATION_CODE.
func (e E_OpenconfigTransportTypes_SONET_APPLICATION_CODE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_SONET_APPLICATION_CODE")
}

const (
	// OpenconfigTransportTypes_SONET_APPLICATION_CODE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_SONET_APPLICATION_CODE
	OpenconfigTransportTypes_SONET_APPLICATION_CODE_UNSET E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 0
	// OpenconfigTransportTypes_SONET_APPLICATION_CODE_SONET_UNDEFINED corresponds to the value SONET_UNDEFINED of OpenconfigTransportTypes_SONET_APPLICATION_CODE
	OpenconfigTransportTypes_SONET_APPLICATION_CODE_SONET_UNDEFINED E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 1
	// OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R2 corresponds to the value VSR2000_3R2 of OpenconfigTransportTypes_SONET_APPLICATION_CODE
	OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R2 E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 2
	// OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R3 corresponds to the value VSR2000_3R3 of OpenconfigTransportTypes_SONET_APPLICATION_CODE
	OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R3 E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 3
	// OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R5 corresponds to the value VSR2000_3R5 of OpenconfigTransportTypes_SONET_APPLICATION_CODE
	OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R5 E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 4
)

// E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE. An additional value named
// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE.
func (E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE.
func (e E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE")
}

const (
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_UNSET E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 0
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP corresponds to the value CFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 1
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2 corresponds to the value CFP2 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 2
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2_ACO corresponds to the value CFP2_ACO of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2_ACO E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 3
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP4 corresponds to the value CFP4 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP4 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 4
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CPAK corresponds to the value CPAK of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CPAK E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 5
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CSFP corresponds to the value CSFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CSFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 6
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_DSFP corresponds to the value DSFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_DSFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 7
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_NON_PLUGGABLE corresponds to the value NON_PLUGGABLE of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_NON_PLUGGABLE E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 8
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_OSFP corresponds to the value OSFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_OSFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 9
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_OTHER corresponds to the value OTHER of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_OTHER E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 10
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP corresponds to the value QSFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 11
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP28 corresponds to the value QSFP28 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP28 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 12
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP28_DD corresponds to the value QSFP28_DD of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP28_DD E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 13
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56 corresponds to the value QSFP56 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 14
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56_DD corresponds to the value QSFP56_DD of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56_DD E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 15
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56_DD_TYPE1 corresponds to the value QSFP56_DD_TYPE1 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56_DD_TYPE1 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 16
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56_DD_TYPE2 corresponds to the value QSFP56_DD_TYPE2 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP56_DD_TYPE2 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 17
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP_PLUS corresponds to the value QSFP_PLUS of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP_PLUS E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 18
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP corresponds to the value SFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 19
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP28 corresponds to the value SFP28 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP28 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 20
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP56 corresponds to the value SFP56 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP56 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 21
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP_DD corresponds to the value SFP_DD of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP_DD E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 22
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP_PLUS corresponds to the value SFP_PLUS of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP_PLUS E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 23
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_X2 corresponds to the value X2 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_X2 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 24
	// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_XFP corresponds to the value XFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_XFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 25
)

// E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE. An additional value named
// OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE.
func (E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE.
func (e E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE")
}

const (
	// OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE_UNSET E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE = 0
	// OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE_TYPE_DIGITAL_COHERENT_OPTIC corresponds to the value TYPE_DIGITAL_COHERENT_OPTIC of OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE_TYPE_DIGITAL_COHERENT_OPTIC E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE = 1
	// OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE_TYPE_STANDARD_OPTIC corresponds to the value TYPE_STANDARD_OPTIC of OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE
	OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE_TYPE_STANDARD_OPTIC E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE = 2
)

// E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE. An additional value named
// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE.
func (E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE.
func (e E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE")
}

const (
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_UNSET E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 0
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100GE corresponds to the value PROT_100GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 1
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100G_MLG corresponds to the value PROT_100G_MLG of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100G_MLG E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 2
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_LAN corresponds to the value PROT_10GE_LAN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_LAN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 3
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_WAN corresponds to the value PROT_10GE_WAN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_WAN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 4
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_1GE corresponds to the value PROT_1GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_1GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 5
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_400GE corresponds to the value PROT_400GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_400GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 6
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_40GE corresponds to the value PROT_40GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_40GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 7
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_800GE corresponds to the value PROT_800GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_800GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 8
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_FLEXO corresponds to the value PROT_FLEXO of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_FLEXO E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 9
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC192 corresponds to the value PROT_OC192 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC192 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 10
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC48 corresponds to the value PROT_OC48 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC48 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 11
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC768 corresponds to the value PROT_OC768 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC768 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 12
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2 corresponds to the value PROT_ODU2 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 13
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2E corresponds to the value PROT_ODU2E of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2E E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 14
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU3 corresponds to the value PROT_ODU3 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU3 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 15
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU4 corresponds to the value PROT_ODU4 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU4 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 16
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUCN corresponds to the value PROT_ODUCN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUCN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 17
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUFLEX_CBR corresponds to the value PROT_ODUFLEX_CBR of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUFLEX_CBR E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 18
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUFLEX_GFP corresponds to the value PROT_ODUFLEX_GFP of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUFLEX_GFP E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 19
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTSIG corresponds to the value PROT_OTSIG of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTSIG E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 20
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU1E corresponds to the value PROT_OTU1E of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU1E E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 21
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2 corresponds to the value PROT_OTU2 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 22
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2E corresponds to the value PROT_OTU2E of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2E E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 23
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU3 corresponds to the value PROT_OTU3 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU3 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 24
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU4 corresponds to the value PROT_OTU4 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU4 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 25
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTUCN corresponds to the value PROT_OTUCN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTUCN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 26
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM16 corresponds to the value PROT_STM16 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM16 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 27
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM256 corresponds to the value PROT_STM256 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM256 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 28
	// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM64 corresponds to the value PROT_STM64 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE
	OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM64 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 29
)

// E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE. An additional value named
// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE.
func (E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE.
func (e E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE")
}

const (
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_UNSET E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 0
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1000G corresponds to the value TRIB_RATE_1000G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1000G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 1
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_100G corresponds to the value TRIB_RATE_100G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_100G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 2
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1050G corresponds to the value TRIB_RATE_1050G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1050G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 3
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_10G corresponds to the value TRIB_RATE_10G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_10G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 4
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1100G corresponds to the value TRIB_RATE_1100G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1100G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 5
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1150G corresponds to the value TRIB_RATE_1150G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1150G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 6
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1200G corresponds to the value TRIB_RATE_1200G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1200G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 7
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1250G corresponds to the value TRIB_RATE_1250G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1250G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 8
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1300G corresponds to the value TRIB_RATE_1300G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1300G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 9
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1350G corresponds to the value TRIB_RATE_1350G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1350G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 10
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1400G corresponds to the value TRIB_RATE_1400G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1400G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 11
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1450G corresponds to the value TRIB_RATE_1450G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1450G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 12
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1500G corresponds to the value TRIB_RATE_1500G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1500G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 13
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_150G corresponds to the value TRIB_RATE_150G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_150G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 14
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1550G corresponds to the value TRIB_RATE_1550G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1550G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 15
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1600G corresponds to the value TRIB_RATE_1600G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1600G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 16
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1650G corresponds to the value TRIB_RATE_1650G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1650G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 17
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1700G corresponds to the value TRIB_RATE_1700G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1700G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 18
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1750G corresponds to the value TRIB_RATE_1750G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1750G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 19
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1800G corresponds to the value TRIB_RATE_1800G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1800G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 20
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1850G corresponds to the value TRIB_RATE_1850G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1850G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 21
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1900G corresponds to the value TRIB_RATE_1900G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1900G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 22
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1950G corresponds to the value TRIB_RATE_1950G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1950G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 23
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1G corresponds to the value TRIB_RATE_1G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 24
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2_5G corresponds to the value TRIB_RATE_2_5G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2_5G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 25
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2000G corresponds to the value TRIB_RATE_2000G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2000G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 26
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_200G corresponds to the value TRIB_RATE_200G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_200G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 27
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2050G corresponds to the value TRIB_RATE_2050G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2050G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 28
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2100G corresponds to the value TRIB_RATE_2100G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2100G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 29
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2150G corresponds to the value TRIB_RATE_2150G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2150G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 30
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2200G corresponds to the value TRIB_RATE_2200G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2200G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 31
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2250G corresponds to the value TRIB_RATE_2250G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2250G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 32
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2300G corresponds to the value TRIB_RATE_2300G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2300G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 33
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2350G corresponds to the value TRIB_RATE_2350G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2350G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 34
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2400G corresponds to the value TRIB_RATE_2400G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2400G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 35
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2450G corresponds to the value TRIB_RATE_2450G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2450G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 36
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2500G corresponds to the value TRIB_RATE_2500G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2500G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 37
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_250G corresponds to the value TRIB_RATE_250G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_250G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 38
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2550G corresponds to the value TRIB_RATE_2550G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2550G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 39
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2600G corresponds to the value TRIB_RATE_2600G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2600G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 40
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2650G corresponds to the value TRIB_RATE_2650G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2650G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 41
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2700G corresponds to the value TRIB_RATE_2700G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2700G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 42
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2750G corresponds to the value TRIB_RATE_2750G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2750G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 43
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2800G corresponds to the value TRIB_RATE_2800G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2800G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 44
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2850G corresponds to the value TRIB_RATE_2850G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2850G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 45
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2900G corresponds to the value TRIB_RATE_2900G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2900G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 46
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2950G corresponds to the value TRIB_RATE_2950G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2950G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 47
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3000G corresponds to the value TRIB_RATE_3000G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3000G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 48
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_300G corresponds to the value TRIB_RATE_300G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_300G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 49
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3050G corresponds to the value TRIB_RATE_3050G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3050G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 50
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3100G corresponds to the value TRIB_RATE_3100G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3100G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 51
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3150G corresponds to the value TRIB_RATE_3150G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3150G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 52
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3200G corresponds to the value TRIB_RATE_3200G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_3200G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 53
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_350G corresponds to the value TRIB_RATE_350G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_350G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 54
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_400G corresponds to the value TRIB_RATE_400G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_400G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 55
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_40G corresponds to the value TRIB_RATE_40G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_40G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 56
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_450G corresponds to the value TRIB_RATE_450G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_450G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 57
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_500G corresponds to the value TRIB_RATE_500G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_500G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 58
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_550G corresponds to the value TRIB_RATE_550G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_550G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 59
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_600G corresponds to the value TRIB_RATE_600G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_600G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 60
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_650G corresponds to the value TRIB_RATE_650G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_650G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 61
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_700G corresponds to the value TRIB_RATE_700G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_700G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 62
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_750G corresponds to the value TRIB_RATE_750G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_750G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 63
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_800G corresponds to the value TRIB_RATE_800G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_800G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 64
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_850G corresponds to the value TRIB_RATE_850G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_850G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 65
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_900G corresponds to the value TRIB_RATE_900G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_900G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 66
	// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_950G corresponds to the value TRIB_RATE_950G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE
	OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_950G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 67
)

// E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY is a derived int64 type which is used to represent
// the enumerated node OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY. An additional value named
// OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY int64

// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY implements the yang.GoEnum
// interface. This ensures that OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY.
func (E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY.
func (e E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY")
}

const (
	// OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY
	OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_UNSET E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 0
	// OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_1_25G corresponds to the value TRIB_SLOT_1_25G of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY
	OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_1_25G E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 1
	// OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_2_5G corresponds to the value TRIB_SLOT_2_5G of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY
	OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_2_5G E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 2
	// OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_5G corresponds to the value TRIB_SLOT_5G of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY
	OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_5G E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 3
)

// E_OpenconfigTypes_ADDRESS_FAMILY is a derived int64 type which is used to represent
// the enumerated node OpenconfigTypes_ADDRESS_FAMILY. An additional value named
// OpenconfigTypes_ADDRESS_FAMILY_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigTypes_ADDRESS_FAMILY int64

// IsYANGGoEnum ensures that OpenconfigTypes_ADDRESS_FAMILY implements the yang.GoEnum
// interface. This ensures that OpenconfigTypes_ADDRESS_FAMILY can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigTypes_ADDRESS_FAMILY) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigTypes_ADDRESS_FAMILY.
func (E_OpenconfigTypes_ADDRESS_FAMILY) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigTypes_ADDRESS_FAMILY.
func (e E_OpenconfigTypes_ADDRESS_FAMILY) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigTypes_ADDRESS_FAMILY")
}

const (
	// OpenconfigTypes_ADDRESS_FAMILY_UNSET corresponds to the value UNSET of OpenconfigTypes_ADDRESS_FAMILY
	OpenconfigTypes_ADDRESS_FAMILY_UNSET E_OpenconfigTypes_ADDRESS_FAMILY = 0
	// OpenconfigTypes_ADDRESS_FAMILY_IPV4 corresponds to the value IPV4 of OpenconfigTypes_ADDRESS_FAMILY
	OpenconfigTypes_ADDRESS_FAMILY_IPV4 E_OpenconfigTypes_ADDRESS_FAMILY = 1
	// OpenconfigTypes_ADDRESS_FAMILY_IPV6 corresponds to the value IPV6 of OpenconfigTypes_ADDRESS_FAMILY
	OpenconfigTypes_ADDRESS_FAMILY_IPV6 E_OpenconfigTypes_ADDRESS_FAMILY = 2
	// OpenconfigTypes_ADDRESS_FAMILY_L2_ETHERNET corresponds to the value L2_ETHERNET of OpenconfigTypes_ADDRESS_FAMILY
	OpenconfigTypes_ADDRESS_FAMILY_L2_ETHERNET E_OpenconfigTypes_ADDRESS_FAMILY = 3
	// OpenconfigTypes_ADDRESS_FAMILY_MPLS corresponds to the value MPLS of OpenconfigTypes_ADDRESS_FAMILY
	OpenconfigTypes_ADDRESS_FAMILY_MPLS E_OpenconfigTypes_ADDRESS_FAMILY = 4
)

// E_OpenconfigVlanTypes_TPID_TYPES is a derived int64 type which is used to represent
// the enumerated node OpenconfigVlanTypes_TPID_TYPES. An additional value named
// OpenconfigVlanTypes_TPID_TYPES_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigVlanTypes_TPID_TYPES int64

// IsYANGGoEnum ensures that OpenconfigVlanTypes_TPID_TYPES implements the yang.GoEnum
// interface. This ensures that OpenconfigVlanTypes_TPID_TYPES can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigVlanTypes_TPID_TYPES) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigVlanTypes_TPID_TYPES.
func (E_OpenconfigVlanTypes_TPID_TYPES) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigVlanTypes_TPID_TYPES.
func (e E_OpenconfigVlanTypes_TPID_TYPES) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigVlanTypes_TPID_TYPES")
}

const (
	// OpenconfigVlanTypes_TPID_TYPES_UNSET corresponds to the value UNSET of OpenconfigVlanTypes_TPID_TYPES
	OpenconfigVlanTypes_TPID_TYPES_UNSET E_OpenconfigVlanTypes_TPID_TYPES = 0
	// OpenconfigVlanTypes_TPID_TYPES_TPID_0X8100 corresponds to the value TPID_0X8100 of OpenconfigVlanTypes_TPID_TYPES
	OpenconfigVlanTypes_TPID_TYPES_TPID_0X8100 E_OpenconfigVlanTypes_TPID_TYPES = 1
	// OpenconfigVlanTypes_TPID_TYPES_TPID_0X88A8 corresponds to the value TPID_0X88A8 of OpenconfigVlanTypes_TPID_TYPES
	OpenconfigVlanTypes_TPID_TYPES_TPID_0X88A8 E_OpenconfigVlanTypes_TPID_TYPES = 2
	// OpenconfigVlanTypes_TPID_TYPES_TPID_0X9100 corresponds to the value TPID_0X9100 of OpenconfigVlanTypes_TPID_TYPES
	OpenconfigVlanTypes_TPID_TYPES_TPID_0X9100 E_OpenconfigVlanTypes_TPID_TYPES = 3
	// OpenconfigVlanTypes_TPID_TYPES_TPID_0X9200 corresponds to the value TPID_0X9200 of OpenconfigVlanTypes_TPID_TYPES
	OpenconfigVlanTypes_TPID_TYPES_TPID_0X9200 E_OpenconfigVlanTypes_TPID_TYPES = 4
	// OpenconfigVlanTypes_TPID_TYPES_TPID_ANY corresponds to the value TPID_ANY of OpenconfigVlanTypes_TPID_TYPES
	OpenconfigVlanTypes_TPID_TYPES_TPID_ANY E_OpenconfigVlanTypes_TPID_TYPES = 5
)

// E_OpenconfigVlanTypes_VlanModeType is a derived int64 type which is used to represent
// the enumerated node OpenconfigVlanTypes_VlanModeType. An additional value named
// OpenconfigVlanTypes_VlanModeType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigVlanTypes_VlanModeType int64

// IsYANGGoEnum ensures that OpenconfigVlanTypes_VlanModeType implements the yang.GoEnum
// interface. This ensures that OpenconfigVlanTypes_VlanModeType can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigVlanTypes_VlanModeType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigVlanTypes_VlanModeType.
func (E_OpenconfigVlanTypes_VlanModeType) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigVlanTypes_VlanModeType.
func (e E_OpenconfigVlanTypes_VlanModeType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigVlanTypes_VlanModeType")
}

const (
	// OpenconfigVlanTypes_VlanModeType_UNSET corresponds to the value UNSET of OpenconfigVlanTypes_VlanModeType
	OpenconfigVlanTypes_VlanModeType_UNSET E_OpenconfigVlanTypes_VlanModeType = 0
	// OpenconfigVlanTypes_VlanModeType_ACCESS corresponds to the value ACCESS of OpenconfigVlanTypes_VlanModeType
	OpenconfigVlanTypes_VlanModeType_ACCESS E_OpenconfigVlanTypes_VlanModeType = 1
	// OpenconfigVlanTypes_VlanModeType_TRUNK corresponds to the value TRUNK of OpenconfigVlanTypes_VlanModeType
	OpenconfigVlanTypes_VlanModeType_TRUNK E_OpenconfigVlanTypes_VlanModeType = 2
)

// E_OpenconfigVlanTypes_VlanStackAction is a derived int64 type which is used to represent
// the enumerated node OpenconfigVlanTypes_VlanStackAction. An additional value named
// OpenconfigVlanTypes_VlanStackAction_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_OpenconfigVlanTypes_VlanStackAction int64

// IsYANGGoEnum ensures that OpenconfigVlanTypes_VlanStackAction implements the yang.GoEnum
// interface. This ensures that OpenconfigVlanTypes_VlanStackAction can be identified as a
// mapped type for a YANG enumeration.
func (E_OpenconfigVlanTypes_VlanStackAction) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  OpenconfigVlanTypes_VlanStackAction.
func (E_OpenconfigVlanTypes_VlanStackAction) ΛMap() map[string]map[int64]ygot.EnumDefinition {
	return ΛEnum
}

// String returns a logging-friendly string for E_OpenconfigVlanTypes_VlanStackAction.
func (e E_OpenconfigVlanTypes_VlanStackAction) String() string {
	return ygot.EnumLogString(e, int64(e), "E_OpenconfigVlanTypes_VlanStackAction")
}

const (
	// OpenconfigVlanTypes_VlanStackAction_UNSET corresponds to the value UNSET of OpenconfigVlanTypes_VlanStackAction
	OpenconfigVlanTypes_VlanStackAction_UNSET E_OpenconfigVlanTypes_VlanStackAction = 0
	// OpenconfigVlanTypes_VlanStackAction_PUSH corresponds to the value PUSH of OpenconfigVlanTypes_VlanStackAction
	OpenconfigVlanTypes_VlanStackAction_PUSH E_OpenconfigVlanTypes_VlanStackAction = 1
	// OpenconfigVlanTypes_VlanStackAction_POP corresponds to the value POP of OpenconfigVlanTypes_VlanStackAction
	OpenconfigVlanTypes_VlanStackAction_POP E_OpenconfigVlanTypes_VlanStackAction = 2
	// OpenconfigVlanTypes_VlanStackAction_SWAP corresponds to the value SWAP of OpenconfigVlanTypes_VlanStackAction
	OpenconfigVlanTypes_VlanStackAction_SWAP E_OpenconfigVlanTypes_VlanStackAction = 3
)

// ΛEnum is a map, keyed by the name of the type defined for each enum in the
// generated Go code, which provides a mapping between the constant int64 value
// of each value of the enumeration, and the string that is used to represent it
// in the YANG schema. The map is named ΛEnum in order to avoid clash with any
// valid YANG identifier.
var ΛEnum = map[string]map[int64]ygot.EnumDefinition{
	"E_IETFInterfaces_InterfaceType": {
		1:   {Name: "a12MppSwitch", DefiningModule: "iana-if-type"},
		2:   {Name: "aal2", DefiningModule: "iana-if-type"},
		3:   {Name: "aal5", DefiningModule: "iana-if-type"},
		4:   {Name: "actelisMetaLOOP", DefiningModule: "iana-if-type"},
		5:   {Name: "adsl", DefiningModule: "iana-if-type"},
		6:   {Name: "adsl2", DefiningModule: "iana-if-type"},
		7:   {Name: "adsl2plus", DefiningModule: "iana-if-type"},
		8:   {Name: "aflane8023", DefiningModule: "iana-if-type"},
		9:   {Name: "aflane8025", DefiningModule: "iana-if-type"},
		10:  {Name: "aluELP", DefiningModule: "iana-if-type"},
		11:  {Name: "aluEpon", DefiningModule: "iana-if-type"},
		12:  {Name: "aluEponLogicalLink", DefiningModule: "iana-if-type"},
		13:  {Name: "aluEponOnu", DefiningModule: "iana-if-type"},
		14:  {Name: "aluEponPhysicalUni", DefiningModule: "iana-if-type"},
		15:  {Name: "aluGponOnu", DefiningModule: "iana-if-type"},
		16:  {Name: "aluGponPhysicalUni", DefiningModule: "iana-if-type"},
		17:  {Name: "arap", DefiningModule: "iana-if-type"},
		18:  {Name: "arcnet", DefiningModule: "iana-if-type"},
		19:  {Name: "arcnetPlus", DefiningModule: "iana-if-type"},
		20:  {Name: "async", DefiningModule: "iana-if-type"},
		21:  {Name: "atm", DefiningModule: "iana-if-type"},
		22:  {Name: "atmDxi", DefiningModule: "iana-if-type"},
		23:  {Name: "atmFuni", DefiningModule: "iana-if-type"},
		24:  {Name: "atmIma", DefiningModule: "iana-if-type"},
		25:  {Name: "atmLogical", DefiningModule: "iana-if-type"},
		26:  {Name: "atmRadio", DefiningModule: "iana-if-type"},
		27:  {Name: "atmSubInterface", DefiningModule: "iana-if-type"},
		28:  {Name: "atmVciEndPt", DefiningModule: "iana-if-type"},
		29:  {Name: "atmVirtual", DefiningModule: "iana-if-type"},
		30:  {Name: "atmbond", DefiningModule: "iana-if-type"},
		31:  {Name: "aviciOpticalEther", DefiningModule: "iana-if-type"},
		32:  {Name: "basicISDN", DefiningModule: "iana-if-type"},
		33:  {Name: "bgppolicyaccounting", DefiningModule: "iana-if-type"},
		34:  {Name: "bits", DefiningModule: "iana-if-type"},
		35:  {Name: "bridge", DefiningModule: "iana-if-type"},
		36:  {Name: "bsc", DefiningModule: "iana-if-type"},
		37:  {Name: "cableDownstreamRfPort", DefiningModule: "iana-if-type"},
		38:  {Name: "capwapDot11Bss", DefiningModule: "iana-if-type"},
		39:  {Name: "capwapDot11Profile", DefiningModule: "iana-if-type"},
		40:  {Name: "capwapWtpVirtualRadio", DefiningModule: "iana-if-type"},
		41:  {Name: "cblVectaStar", DefiningModule: "iana-if-type"},
		42:  {Name: "cctEmul", DefiningModule: "iana-if-type"},
		43:  {Name: "ces", DefiningModule: "iana-if-type"},
		44:  {Name: "channel", DefiningModule: "iana-if-type"},
		45:  {Name: "ciscoISLvlan", DefiningModule: "iana-if-type"},
		46:  {Name: "cnr", DefiningModule: "iana-if-type"},
		47:  {Name: "coffee", DefiningModule: "iana-if-type"},
		48:  {Name: "compositeLink", DefiningModule: "iana-if-type"},
		49:  {Name: "dcn", DefiningModule: "iana-if-type"},
		50:  {Name: "ddnX25", DefiningModule: "iana-if-type"},
		51:  {Name: "digitalPowerline", DefiningModule: "iana-if-type"},
		52:  {Name: "digitalWrapperOverheadChannel", DefiningModule: "iana-if-type"},
		53:  {Name: "dlsw", DefiningModule: "iana-if-type"},
		54:  {Name: "docsCableDownstream", DefiningModule: "iana-if-type"},
		55:  {Name: "docsCableMCmtsDownstream", DefiningModule: "iana-if-type"},
		56:  {Name: "docsCableMaclayer", DefiningModule: "iana-if-type"},
		57:  {Name: "docsCableNdf", DefiningModule: "iana-if-type"},
		58:  {Name: "docsCableNdr", DefiningModule: "iana-if-type"},
		59:  {Name: "docsCableScte55d1FwdOob", DefiningModule: "iana-if-type"},
		60:  {Name: "docsCableScte55d1RetOob", DefiningModule: "iana-if-type"},
		61:  {Name: "docsCableScte55d2DsOob", DefiningModule: "iana-if-type"},
		62:  {Name: "docsCableScte55d2UsOob", DefiningModule: "iana-if-type"},
		63:  {Name: "docsCableUpstream", DefiningModule: "iana-if-type"},
		64:  {Name: "docsCableUpstreamChannel", DefiningModule: "iana-if-type"},
		65:  {Name: "docsCableUpstreamRfPort", DefiningModule: "iana-if-type"},
		66:  {Name: "docsOfdmDownstream", DefiningModule: "iana-if-type"},
		67:  {Name: "docsOfdmaUpstream", DefiningModule: "iana-if-type"},
		68:  {Name: "ds0", DefiningModule: "iana-if-type"},
		69:  {Name: "ds0Bundle", DefiningModule: "iana-if-type"},
		70:  {Name: "ds1", DefiningModule: "iana-if-type"},
		71:  {Name: "ds1FDL", DefiningModule: "iana-if-type"},
		72:  {Name: "ds3", DefiningModule: "iana-if-type"},
		73:  {Name: "dtm", DefiningModule: "iana-if-type"},
		74:  {Name: "dvbAsiIn", DefiningModule: "iana-if-type"},
		75:  {Name: "dvbAsiOut", DefiningModule: "iana-if-type"},
		76:  {Name: "dvbRccDownstream", DefiningModule: "iana-if-type"},
		77:  {Name: "dvbRccMacLayer", DefiningModule: "iana-if-type"},
		78:  {Name: "dvbRccUpstream", DefiningModule: "iana-if-type"},
		79:  {Name: "dvbRcsMacLayer", DefiningModule: "iana-if-type"},
		80:  {Name: "dvbRcsTdma", DefiningModule: "iana-if-type"},
		81:  {Name: "dvbTdm", DefiningModule: "iana-if-type"},
		82:  {Name: "e1", DefiningModule: "iana-if-type"},
		83:  {Name: "econet", DefiningModule: "iana-if-type"},
		84:  {Name: "eon", DefiningModule: "iana-if-type"},
		85:  {Name: "eplrs", DefiningModule: "iana-if-type"},
		86:  {Name: "escon", DefiningModule: "iana-if-type"},
		87:  {Name: "ethernet3Mbit", DefiningModule: "iana-if-type"},
		88:  {Name: "ethernetCsmacd", DefiningModule: "iana-if-type"},
		89:  {Name: "fast", DefiningModule: "iana-if-type"},
		90:  {Name: "fastEther", DefiningModule: "iana-if-type"},
		91:  {Name: "fastEtherFX", DefiningModule: "iana-if-type"},
		92:  {Name: "fastdsl", DefiningModule: "iana-if-type"},
		93:  {Name: "fcipLink", DefiningModule: "iana-if-type"},
		94:  {Name: "fddi", DefiningModule: "iana-if-type"},
		95:  {Name: "fibreChannel", DefiningModule: "iana-if-type"},
		96:  {Name: "frDlciEndPt", DefiningModule: "iana-if-type"},
		97:  {Name: "frForward", DefiningModule: "iana-if-type"},
		98:  {Name: "frameRelay", DefiningModule: "iana-if-type"},
		99:  {Name: "frameRelayInterconnect", DefiningModule: "iana-if-type"},
		100: {Name: "frameRelayMPI", DefiningModule: "iana-if-type"},
		101: {Name: "frameRelayService", DefiningModule: "iana-if-type"},
		102: {Name: "frf16MfrBundle", DefiningModule: "iana-if-type"},
		103: {Name: "g703at2mb", DefiningModule: "iana-if-type"},
		104: {Name: "g703at64k", DefiningModule: "iana-if-type"},
		105: {Name: "g9981", DefiningModule: "iana-if-type"},
		106: {Name: "g9982", DefiningModule: "iana-if-type"},
		107: {Name: "g9983", DefiningModule: "iana-if-type"},
		108: {Name: "gfast", DefiningModule: "iana-if-type"},
		109: {Name: "gfp", DefiningModule: "iana-if-type"},
		110: {Name: "gigabitEthernet", DefiningModule: "iana-if-type"},
		111: {Name: "gpon", DefiningModule: "iana-if-type"},
		112: {Name: "gr303IDT", DefiningModule: "iana-if-type"},
		113: {Name: "gr303RDT", DefiningModule: "iana-if-type"},
		114: {Name: "gtp", DefiningModule: "iana-if-type"},
		115: {Name: "h323Gatekeeper", DefiningModule: "iana-if-type"},
		116: {Name: "h323Proxy", DefiningModule: "iana-if-type"},
		117: {Name: "hdh1822", DefiningModule: "iana-if-type"},
		118: {Name: "hdlc", DefiningModule: "iana-if-type"},
		119: {Name: "hdsl2", DefiningModule: "iana-if-type"},
		120: {Name: "hiperlan2", DefiningModule: "iana-if-type"},
		121: {Name: "hippi", DefiningModule: "iana-if-type"},
		122: {Name: "hippiInterface", DefiningModule: "iana-if-type"},
		123: {Name: "homepna", DefiningModule: "iana-if-type"},
		124: {Name: "hostPad", DefiningModule: "iana-if-type"},
		125: {Name: "hssi", DefiningModule: "iana-if-type"},
		126: {Name: "hyperchannel", DefiningModule: "iana-if-type"},
		127: {Name: "iana-interface-type", DefiningModule: "iana-if-type"},
		128: {Name: "ibm370parChan", DefiningModule: "iana-if-type"},
		129: {Name: "idsl", DefiningModule: "iana-if-type"},
		130: {Name: "ieee1394", DefiningModule: "iana-if-type"},
		131: {Name: "ieee80211", DefiningModule: "iana-if-type"},
		132: {Name: "ieee80212", DefiningModule: "iana-if-type"},
		133: {Name: "ieee802154", DefiningModule: "iana-if-type"},
		134: {Name: "ieee80216WMAN", DefiningModule: "iana-if-type"},
		135: {Name: "ieee8023adLag", DefiningModule: "iana-if-type"},
		136: {Name: "if-gsn", DefiningModule: "iana-if-type"},
		137: {Name: "ifPwType", DefiningModule: "iana-if-type"},
		138: {Name: "ifVfiType", DefiningModule: "iana-if-type"},
		139: {Name: "ilan", DefiningModule: "iana-if-type"},
		140: {Name: "imt", DefiningModule: "iana-if-type"},
		141: {Name: "infiniband", DefiningModule: "iana-if-type"},
		142: {Name: "interleave", DefiningModule: "iana-if-type"},
		143: {Name: "ip", DefiningModule: "iana-if-type"},
		144: {Name: "ipForward", DefiningModule: "iana-if-type"},
		145: {Name: "ipOverAtm", DefiningModule: "iana-if-type"},
		146: {Name: "ipOverCdlc", DefiningModule: "iana-if-type"},
		147: {Name: "ipOverClaw", DefiningModule: "iana-if-type"},
		148: {Name: "ipSwitch", DefiningModule: "iana-if-type"},
		149: {Name: "isdn", DefiningModule: "iana-if-type"},
		150: {Name: "isdns", DefiningModule: "iana-if-type"},
		151: {Name: "isdnu", DefiningModule: "iana-if-type"},
		152: {Name: "iso88022llc", DefiningModule: "iana-if-type"},
		153: {Name: "iso88023Csmacd", DefiningModule: "iana-if-type"},
		154: {Name: "iso88024TokenBus", DefiningModule: "iana-if-type"},
		155: {Name: "iso88025CRFPInt", DefiningModule: "iana-if-type"},
		156: {Name: "iso88025Dtr", DefiningModule: "iana-if-type"},
		157: {Name: "iso88025Fiber", DefiningModule: "iana-if-type"},
		158: {Name: "iso88025TokenRing", DefiningModule: "iana-if-type"},
		159: {Name: "iso88026Man", DefiningModule: "iana-if-type"},
		160: {Name: "isup", DefiningModule: "iana-if-type"},
		161: {Name: "l2vlan", DefiningModule: "iana-if-type"},
		162: {Name: "l3ipvlan", DefiningModule: "iana-if-type"},
		163: {Name: "l3ipxvlan", DefiningModule: "iana-if-type"},
		164: {Name: "lapb", DefiningModule: "iana-if-type"},
		165: {Name: "lapd", DefiningModule: "iana-if-type"},
		166: {Name: "lapf", DefiningModule: "iana-if-type"},
		167: {Name: "linegroup", DefiningModule: "iana-if-type"},
		168: {Name: "lmp", DefiningModule: "iana-if-type"},
		169: {Name: "localTalk", DefiningModule: "iana-if-type"},
		170: {Name: "macSecControlledIF", DefiningModule: "iana-if-type"},
		171: {Name: "macSecUncontrolledIF", DefiningModule: "iana-if-type"},
		172: {Name: "mediaMailOverIp", DefiningModule: "iana-if-type"},
		173: {Name: "mfSigLink", DefiningModule: "iana-if-type"},
		174: {Name: "miox25", DefiningModule: "iana-if-type"},
		175: {Name: "mocaVersion1", DefiningModule: "iana-if-type"},
		176: {Name: "modem", DefiningModule: "iana-if-type"},
		177: {Name: "mpc", DefiningModule: "iana-if-type"},
		178: {Name: "mpegTransport", DefiningModule: "iana-if-type"},
		179: {Name: "mpls", DefiningModule: "iana-if-type"},
		180: {Name: "mplsTunnel", DefiningModule: "iana-if-type"},
		181: {Name: "msdsl", DefiningModule: "iana-if-type"},
		182: {Name: "mvl", DefiningModule: "iana-if-type"},
		183: {Name: "myrinet", DefiningModule: "iana-if-type"},
		184: {Name: "nfas", DefiningModule: "iana-if-type"},
		185: {Name: "nsip", DefiningModule: "iana-if-type"},
		186: {Name: "opticalChannel", DefiningModule: "iana-if-type"},
		187: {Name: "opticalChannelGroup", DefiningModule: "iana-if-type"},
		188: {Name: "opticalTransport", DefiningModule: "iana-if-type"},
		189: {Name: "other", DefiningModule: "iana-if-type"},
		190: {Name: "otnOdu", DefiningModule: "iana-if-type"},
		191: {Name: "otnOtu", DefiningModule: "iana-if-type"},
		192: {Name: "para", DefiningModule: "iana-if-type"},
		193: {Name: "pdnEtherLoop1", DefiningModule: "iana-if-type"},
		194: {Name: "pdnEtherLoop2", DefiningModule: "iana-if-type"},
		195: {Name: "pip", DefiningModule: "iana-if-type"},
		196: {Name: "plc", DefiningModule: "iana-if-type"},
		197: {Name: "pon155", DefiningModule: "iana-if-type"},
		198: {Name: "pon622", DefiningModule: "iana-if-type"},
		199: {Name: "pos", DefiningModule: "iana-if-type"},
		200: {Name: "ppp", DefiningModule: "iana-if-type"},
		201: {Name: "pppMultilinkBundle", DefiningModule: "iana-if-type"},
		202: {Name: "primaryISDN", DefiningModule: "iana-if-type"},
		203: {Name: "propAtm", DefiningModule: "iana-if-type"},
		204: {Name: "propBWAp2Mp", DefiningModule: "iana-if-type"},
		205: {Name: "propCnls", DefiningModule: "iana-if-type"},
		206: {Name: "propDocsWirelessDownstream", DefiningModule: "iana-if-type"},
		207: {Name: "propDocsWirelessMaclayer", DefiningModule: "iana-if-type"},
		208: {Name: "propDocsWirelessUpstream", DefiningModule: "iana-if-type"},
		209: {Name: "propMultiplexor", DefiningModule: "iana-if-type"},
		210: {Name: "propPointToPointSerial", DefiningModule: "iana-if-type"},
		211: {Name: "propVirtual", DefiningModule: "iana-if-type"},
		212: {Name: "propWirelessP2P", DefiningModule: "iana-if-type"},
		213: {Name: "proteon10Mbit", DefiningModule: "iana-if-type"},
		214: {Name: "proteon80Mbit", DefiningModule: "iana-if-type"},
		215: {Name: "ptm", DefiningModule: "iana-if-type"},
		216: {Name: "q2931", DefiningModule: "iana-if-type"},
		217: {Name: "qam", DefiningModule: "iana-if-type"},
		218: {Name: "qllc", DefiningModule: "iana-if-type"},
		219: {Name: "radioMAC", DefiningModule: "iana-if-type"},
		220: {Name: "radsl", DefiningModule: "iana-if-type"},
		221: {Name: "reachDSL", DefiningModule: "iana-if-type"},
		222: {Name: "regular1822", DefiningModule: "iana-if-type"},
		223: {Name: "rfc1483", DefiningModule: "iana-if-type"},
		224: {Name: "rfc877x25", DefiningModule: "iana-if-type"},
		225: {Name: "rpr", DefiningModule: "iana-if-type"},
		226: {Name: "rs232", DefiningModule: "iana-if-type"},
		227: {Name: "rsrb", DefiningModule: "iana-if-type"},
		228: {Name: "sdci", DefiningModule: "iana-if-type"},
		229: {Name: "sdlc", DefiningModule: "iana-if-type"},
		230: {Name: "sdsl", DefiningModule: "iana-if-type"},
		231: {Name: "shdsl", DefiningModule: "iana-if-type"},
		232: {Name: "sip", DefiningModule: "iana-if-type"},
		233: {Name: "sipSig", DefiningModule: "iana-if-type"},
		234: {Name: "sipTg", DefiningModule: "iana-if-type"},
		235: {Name: "sixToFour", DefiningModule: "iana-if-type"},
		236: {Name: "slip", DefiningModule: "iana-if-type"},
		237: {Name: "smdsDxi", DefiningModule: "iana-if-type"},
		238: {Name: "smdsIcip", DefiningModule: "iana-if-type"},
		239: {Name: "softwareLoopback", DefiningModule: "iana-if-type"},
		240: {Name: "sonet", DefiningModule: "iana-if-type"},
		241: {Name: "sonetOverheadChannel", DefiningModule: "iana-if-type"},
		242: {Name: "sonetPath", DefiningModule: "iana-if-type"},
		243: {Name: "sonetVT", DefiningModule: "iana-if-type"},
		244: {Name: "srp", DefiningModule: "iana-if-type"},
		245: {Name: "ss7SigLink", DefiningModule: "iana-if-type"},
		246: {Name: "stackToStack", DefiningModule: "iana-if-type"},
		247: {Name: "starLan", DefiningModule: "iana-if-type"},
		248: {Name: "tdlc", DefiningModule: "iana-if-type"},
		249: {Name: "teLink", DefiningModule: "iana-if-type"},
		250: {Name: "termPad", DefiningModule: "iana-if-type"},
		251: {Name: "tr008", DefiningModule: "iana-if-type"},
		252: {Name: "transpHdlc", DefiningModule: "iana-if-type"},
		253: {Name: "tunnel", DefiningModule: "iana-if-type"},
		254: {Name: "ultra", DefiningModule: "iana-if-type"},
		255: {Name: "usb", DefiningModule: "iana-if-type"},
		256: {Name: "v11", DefiningModule: "iana-if-type"},
		257: {Name: "v35", DefiningModule: "iana-if-type"},
		258: {Name: "v36", DefiningModule: "iana-if-type"},
		259: {Name: "v37", DefiningModule: "iana-if-type"},
		260: {Name: "vdsl", DefiningModule: "iana-if-type"},
		261: {Name: "vdsl2", DefiningModule: "iana-if-type"},
		262: {Name: "virtualIpAddress", DefiningModule: "iana-if-type"},
		263: {Name: "virtualTg", DefiningModule: "iana-if-type"},
		264: {Name: "vmwareNicTeam", DefiningModule: "iana-if-type"},
		265: {Name: "vmwareVirtualNic", DefiningModule: "iana-if-type"},
		266: {Name: "voiceDID", DefiningModule: "iana-if-type"},
		267: {Name: "voiceEBS", DefiningModule: "iana-if-type"},
		268: {Name: "voiceEM", DefiningModule: "iana-if-type"},
		269: {Name: "voiceEMFGD", DefiningModule: "iana-if-type"},
		270: {Name: "voiceEncap", DefiningModule: "iana-if-type"},
		271: {Name: "voiceFGDEANA", DefiningModule: "iana-if-type"},
		272: {Name: "voiceFGDOS", DefiningModule: "iana-if-type"},
		273: {Name: "voiceFXO", DefiningModule: "iana-if-type"},
		274: {Name: "voiceFXS", DefiningModule: "iana-if-type"},
		275: {Name: "voiceOverAtm", DefiningModule: "iana-if-type"},
		276: {Name: "voiceOverCable", DefiningModule: "iana-if-type"},
		277: {Name: "voiceOverFrameRelay", DefiningModule: "iana-if-type"},
		278: {Name: "voiceOverIp", DefiningModule: "iana-if-type"},
		279: {Name: "wwanPP", DefiningModule: "iana-if-type"},
		280: {Name: "wwanPP2", DefiningModule: "iana-if-type"},
		281: {Name: "x213", DefiningModule: "iana-if-type"},
		282: {Name: "x25huntGroup", DefiningModule: "iana-if-type"},
		283: {Name: "x25mlp", DefiningModule: "iana-if-type"},
		284: {Name: "x25ple", DefiningModule: "iana-if-type"},
		285: {Name: "x86Laps", DefiningModule: "iana-if-type"},
		286: {Name: "xboxWireless", DefiningModule: "iana-if-type"},
	},
	"E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE": {
		1: {Name: "AAA_ACCOUNTING_EVENT_COMMAND", DefiningModule: "openconfig-aaa-types"},
		2: {Name: "AAA_ACCOUNTING_EVENT_LOGIN", DefiningModule: "openconfig-aaa-types"},
	},
	"E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE": {
		1: {Name: "AAA_AUTHORIZATION_EVENT_COMMAND", DefiningModule: "openconfig-aaa-types"},
		2: {Name: "AAA_AUTHORIZATION_EVENT_CONFIG", DefiningModule: "openconfig-aaa-types"},
	},
	"E_OpenconfigAaaTypes_AAA_METHOD_TYPE": {
		1: {Name: "LOCAL", DefiningModule: "openconfig-aaa-types"},
		2: {Name: "RADIUS_ALL", DefiningModule: "openconfig-aaa-types"},
		3: {Name: "TACACS_ALL", DefiningModule: "openconfig-aaa-types"},
	},
	"E_OpenconfigAaaTypes_AAA_SERVER_TYPE": {
		1: {Name: "RADIUS", DefiningModule: "openconfig-aaa"},
		2: {Name: "TACACS", DefiningModule: "openconfig-aaa"},
	},
	"E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES": {
		1: {Name: "SYSTEM_ROLE_ADMIN", DefiningModule: "openconfig-aaa-types"},
	},
	"E_OpenconfigAcl_ACL_COUNTER_CAPABILITY": {
		1: {Name: "AGGREGATE_ONLY", DefiningModule: "openconfig-acl"},
		2: {Name: "INTERFACE_AGGREGATE", DefiningModule: "openconfig-acl"},
		3: {Name: "INTERFACE_ONLY", DefiningModule: "openconfig-acl"},
	},
	"E_OpenconfigAcl_ACL_TYPE": {
		1: {Name: "ACL_IPV4", DefiningModule: "openconfig-acl"},
		2: {Name: "ACL_IPV6", DefiningModule: "openconfig-acl"},
		3: {Name: "ACL_L2", DefiningModule: "openconfig-acl"},
		4: {Name: "ACL_MIXED", DefiningModule: "openconfig-acl"},
		5: {Name: "ACL_MPLS", DefiningModule: "openconfig-acl"},
	},
	"E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail": {
		1: {Name: "TCP_INITIAL"},
		2: {Name: "TCP_ESTABLISHED"},
		3: {Name: "FRAGMENT"},
	},
	"E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode": {
		1: {Name: "EXPLICIT"},
		2: {Name: "BUILTIN"},
	},
	"E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode": {
		1: {Name: "ANY"},
		2: {Name: "ALL"},
	},
	"E_OpenconfigAcl_FORWARDING_ACTION": {
		1: {Name: "ACCEPT", DefiningModule: "openconfig-acl"},
		2: {Name: "DROP", DefiningModule: "openconfig-acl"},
		3: {Name: "REJECT", DefiningModule: "openconfig-acl"},
	},
	"E_OpenconfigAcl_LOG_ACTION": {
		1: {Name: "LOG_NONE", DefiningModule: "openconfig-acl"},
		2: {Name: "LOG_SYSLOG", DefiningModule: "openconfig-acl"},
	},
	"E_OpenconfigAftTypes_EncapsulationHeaderType": {
		1: {Name: "GRE"},
		2: {Name: "IPV4"},
		3: {Name: "IPV6"},
		4: {Name: "MPLS"},
		5: {Name: "VXLAN"},
	},
	"E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY": {
		1: {Name: "CRITICAL", DefiningModule: "openconfig-alarm-types"},
		2: {Name: "MAJOR", DefiningModule: "openconfig-alarm-types"},
		3: {Name: "MINOR", DefiningModule: "openconfig-alarm-types"},
		4: {Name: "UNKNOWN", DefiningModule: "openconfig-alarm-types"},
		5: {Name: "WARNING", DefiningModule: "openconfig-alarm-types"},
	},
	"E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID": {
		1: {Name: "AIS", DefiningModule: "openconfig-alarm-types"},
		2: {Name: "EQPT", DefiningModule: "openconfig-alarm-types"},
		3: {Name: "LOS", DefiningModule: "openconfig-alarm-types"},
		4: {Name: "OTS", DefiningModule: "openconfig-alarm-types"},
	},
	"E_OpenconfigBfd_BfdDiagnosticCode": {
		1: {Name: "NO_DIAGNOSTIC"},
		2: {Name: "DETECTION_TIMEOUT"},
		3: {Name: "ECHO_FAILED"},
		4: {Name: "FORWARDING_RESET"},
		5: {Name: "PATH_DOWN"},
		6: {Name: "CONCATENATED_PATH_DOWN"},
		7: {Name: "ADMIN_DOWN"},
		8: {Name: "REVERSE_CONCATENATED_PATH_DOWN"},
	},
	"E_OpenconfigBfd_BfdSessionState": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
		3: {Name: "ADMIN_DOWN"},
		4: {Name: "INIT"},
	},
	"E_OpenconfigBgpTypes_AFI_SAFI_TYPE": {
		1:  {Name: "IPV4_FLOWSPEC", DefiningModule: "openconfig-bgp-types"},
		2:  {Name: "IPV4_LABELED_UNICAST", DefiningModule: "openconfig-bgp-types"},
		3:  {Name: "IPV4_UNICAST", DefiningModule: "openconfig-bgp-types"},
		4:  {Name: "IPV6_LABELED_UNICAST", DefiningModule: "openconfig-bgp-types"},
		5:  {Name: "IPV6_UNICAST", DefiningModule: "openconfig-bgp-types"},
		6:  {Name: "L2VPN_EVPN", DefiningModule: "openconfig-bgp-types"},
		7:  {Name: "L2VPN_VPLS", DefiningModule: "openconfig-bgp-types"},
		8:  {Name: "L3VPN_IPV4_MULTICAST", DefiningModule: "openconfig-bgp-types"},
		9:  {Name: "L3VPN_IPV4_UNICAST", DefiningModule: "openconfig-bgp-types"},
		10: {Name: "L3VPN_IPV6_MULTICAST", DefiningModule: "openconfig-bgp-types"},
		11: {Name: "L3VPN_IPV6_UNICAST", DefiningModule: "openconfig-bgp-types"},
		12: {Name: "LINKSTATE", DefiningModule: "openconfig-bgp-types"},
		13: {Name: "LINKSTATE_SPF", DefiningModule: "openconfig-bgp-types"},
		14: {Name: "LINKSTATE_VPN", DefiningModule: "openconfig-bgp-types"},
		15: {Name: "SRTE_POLICY_IPV4", DefiningModule: "openconfig-bgp-types"},
		16: {Name: "SRTE_POLICY_IPV6", DefiningModule: "openconfig-bgp-types"},
		17: {Name: "VPNV4_FLOWSPEC", DefiningModule: "openconfig-bgp-types"},
	},
	"E_OpenconfigBgpTypes_AsPathSegmentType": {
		1: {Name: "AS_SEQ"},
		2: {Name: "AS_SET"},
		3: {Name: "AS_CONFED_SEQUENCE"},
		4: {Name: "AS_CONFED_SET"},
	},
	"E_OpenconfigBgpTypes_BGP_CAPABILITY": {
		1: {Name: "ADD_PATHS", DefiningModule: "openconfig-bgp-types"},
		2: {Name: "ASN32", DefiningModule: "openconfig-bgp-types"},
		3: {Name: "EXTENDED_NEXTHOP_ENCODING", DefiningModule: "openconfig-bgp-types"},
		4: {Name: "GRACEFUL_RESTART", DefiningModule: "openconfig-bgp-types"},
		5: {Name: "MPBGP", DefiningModule: "openconfig-bgp-types"},
		6: {Name: "ROUTE_REFRESH", DefiningModule: "openconfig-bgp-types"},
	},
	"E_OpenconfigBgpTypes_BGP_ERROR_CODE": {
		1: {Name: "CEASE", DefiningModule: "openconfig-bgp-types"},
		2: {Name: "FINITE_STATE_MACHINE_ERROR", DefiningModule: "openconfig-bgp-types"},
		3: {Name: "HOLD_TIMER_EXPIRED", DefiningModule: "openconfig-bgp-types"},
		4: {Name: "MESSAGE_HEADER_ERROR", DefiningModule: "openconfig-bgp-types"},
		5: {Name: "OPEN_MESSAGE_ERROR", DefiningModule: "openconfig-bgp-types"},
		6: {Name: "ROUTE_REFRESH_MESSAGE_ERROR", DefiningModule: "openconfig-bgp-types"},
		7: {Name: "UPDATE_MESSAGE_ERROR", DefiningModule: "openconfig-bgp-types"},
	},
	"E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE": {
		1:  {Name: "ADMINISTRATIVE_RESET", DefiningModule: "openconfig-bgp-types"},
		2:  {Name: "ADMINISTRATIVE_SHUTDOWN", DefiningModule: "openconfig-bgp-types"},
		3:  {Name: "ATTRIBUTE_FLAGS_ERROR", DefiningModule: "openconfig-bgp-types"},
		4:  {Name: "ATTRIBUTE_LENGTH_ERROR", DefiningModule: "openconfig-bgp-types"},
		5:  {Name: "BAD_BGP_IDENTIFIER", DefiningModule: "openconfig-bgp-types"},
		6:  {Name: "BAD_MESSAGE_LENGTH", DefiningModule: "openconfig-bgp-types"},
		7:  {Name: "BAD_MESSAGE_TYPE", DefiningModule: "openconfig-bgp-types"},
		8:  {Name: "BAD_PEER_AS", DefiningModule: "openconfig-bgp-types"},
		9:  {Name: "CEASE_SUBCODE", DefiningModule: "openconfig-bgp-types"},
		10: {Name: "CONNECTION_NOT_SYNCHRONIZED", DefiningModule: "openconfig-bgp-types"},
		11: {Name: "CONNECTION_REJECTED", DefiningModule: "openconfig-bgp-types"},
		12: {Name: "CONN_COLLISION_RESOLUTION", DefiningModule: "openconfig-bgp-types"},
		13: {Name: "FINITE_STATE_MACHINE_SUBCODE", DefiningModule: "openconfig-bgp-types"},
		14: {Name: "INVALID_MESSAGE_LENGTH", DefiningModule: "openconfig-bgp-types"},
		15: {Name: "INVALID_NETWORK_FIELD", DefiningModule: "openconfig-bgp-types"},
		16: {Name: "INVALID_NEXT_HOP_ATTRIBUTE", DefiningModule: "openconfig-bgp-types"},
		17: {Name: "INVALID_ORIGIN_ATTRIBUTE", DefiningModule: "openconfig-bgp-types"},
		18: {Name: "MALFORMED_AS_PATH", DefiningModule: "openconfig-bgp-types"},
		19: {Name: "MALFORMED_ATTRIBUTE_LIST", DefiningModule: "openconfig-bgp-types"},
		20: {Name: "MAX_NUM_PREFIXES_REACHED", DefiningModule: "openconfig-bgp-types"},
		21: {Name: "MESSAGE_HEADER_SUBCODE", DefiningModule: "openconfig-bgp-types"},
		22: {Name: "MISSING_WELL_KNOWN_ATTRIBUTE", DefiningModule: "openconfig-bgp-types"},
		23: {Name: "OPEN_MESSAGE_SUBCODE", DefiningModule: "openconfig-bgp-types"},
		24: {Name: "OPTIONAL_ATTRIBUTE_ERROR", DefiningModule: "openconfig-bgp-types"},
		25: {Name: "OTHER_CONFIG_CHANGE", DefiningModule: "openconfig-bgp-types"},
		26: {Name: "OUT_OF_RESOURCES", DefiningModule: "openconfig-bgp-types"},
		27: {Name: "PEER_DE_CONFIGURED", DefiningModule: "openconfig-bgp-types"},
		28: {Name: "RECEIVE_UNEXPECTED_MESSAGE_ESTABLISHED", DefiningModule: "openconfig-bgp-types"},
		29: {Name: "RECEIVE_UNEXPECTED_MESSAGE_OPENCONFIRM", DefiningModule: "openconfig-bgp-types"},
		30: {Name: "RECEIVE_UNEXPECTED_MESSAGE_OPENSENT", DefiningModule: "openconfig-bgp-types"},
		31: {Name: "ROUTE_REFRESH_SUBCODE", DefiningModule: "openconfig-bgp-types"},
		32: {Name: "UNACCEPTABLE_HOLD_TIME", DefiningModule: "openconfig-bgp-types"},
		33: {Name: "UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE", DefiningModule: "openconfig-bgp-types"},
		34: {Name: "UNSPECIFIC", DefiningModule: "openconfig-bgp-types"},
		35: {Name: "UNSUPPORTED_CAPABILITY", DefiningModule: "openconfig-bgp-types"},
		36: {Name: "UNSUPPORTED_OPTIONAL_PARAMETER", DefiningModule: "openconfig-bgp-types"},
		37: {Name: "UNSUPPORTED_VERSION_NUMBER", DefiningModule: "openconfig-bgp-types"},
		38: {Name: "UPDATE_MESSAGE_SUBCODE", DefiningModule: "openconfig-bgp-types"},
	},
	"E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY": {
		1: {Name: "GRACEFUL_SHUTDOWN", DefiningModule: "openconfig-bgp-types"},
		2: {Name: "NOPEER", DefiningModule: "openconfig-bgp-types"},
		3: {Name: "NO_ADVERTISE", DefiningModule: "openconfig-bgp-types"},
		4: {Name: "NO_EXPORT", DefiningModule: "openconfig-bgp-types"},
		5: {Name: "NO_EXPORT_SUBCONFED", DefiningModule: "openconfig-bgp-types"},
	},
	"E_OpenconfigBgpTypes_BgpOriginAttrType": {
		1: {Name: "IGP"},
		2: {Name: "EGP"},
		3: {Name: "INCOMPLETE"},
	},
	"E_OpenconfigBgpTypes_CommunityType": {
		1: {Name: "STANDARD"},
		2: {Name: "EXTENDED"},
		3: {Name: "LARGE"},
		4: {Name: "BOTH"},
		5: {Name: "NONE"},
	},
	"E_OpenconfigBgpTypes_PeerType": {
		1: {Name: "INTERNAL"},
		2: {Name: "EXTERNAL"},
	},
	"E_OpenconfigBgpTypes_RemovePrivateAsOption": {
		1: {Name: "PRIVATE_AS_REMOVE_ALL", DefiningModule: "openconfig-bgp-types"},
		2: {Name: "PRIVATE_AS_REPLACE_ALL", DefiningModule: "openconfig-bgp-types"},
	},
	"E_OpenconfigEvpnTypes_EVPN_TYPE": {
		1: {Name: "VLAN_AWARE", DefiningModule: "openconfig-evpn-types"},
		2: {Name: "VLAN_BASED", DefiningModule: "openconfig-evpn-types"},
		3: {Name: "VLAN_BUNDLE", DefiningModule: "openconfig-evpn-types"},
	},
	"E_OpenconfigEvpnTypes_LearningMode": {
		1: {Name: "CONTROL_PLANE"},
		2: {Name: "DATA_PLANE"},
	},
	"E_OpenconfigIcmpv4Types_CODE": {
		1:  {Name: "DST_UNREACHABLE_ADMIN_PROHIBITED", DefiningModule: "openconfig-icmpv4-types"},
		2:  {Name: "DST_UNREACHABLE_CANNOT_FRAGMENT", DefiningModule: "openconfig-icmpv4-types"},
		3:  {Name: "DST_UNREACHABLE_CODE", DefiningModule: "openconfig-icmpv4-types"},
		4:  {Name: "DST_UNREACHABLE_DST_HOST_ADMIN_PROHIBITED", DefiningModule: "openconfig-icmpv4-types"},
		5:  {Name: "DST_UNREACHABLE_DST_HOST_UNKNOWN", DefiningModule: "openconfig-icmpv4-types"},
		6:  {Name: "DST_UNREACHABLE_DST_NET_ADMIN_PROHIBITED", DefiningModule: "openconfig-icmpv4-types"},
		7:  {Name: "DST_UNREACHABLE_DST_NET_UNKNOWN", DefiningModule: "openconfig-icmpv4-types"},
		8:  {Name: "DST_UNREACHABLE_HOST", DefiningModule: "openconfig-icmpv4-types"},
		9:  {Name: "DST_UNREACHABLE_HOST_PRECEDENCE_VIOLATION", DefiningModule: "openconfig-icmpv4-types"},
		10: {Name: "DST_UNREACHABLE_HOST_UNREACHABLE_FOR_TOS", DefiningModule: "openconfig-icmpv4-types"},
		11: {Name: "DST_UNREACHABLE_NET", DefiningModule: "openconfig-icmpv4-types"},
		12: {Name: "DST_UNREACHABLE_NET_UNREACHABLE_FOR_TOS", DefiningModule: "openconfig-icmpv4-types"},
		13: {Name: "DST_UNREACHABLE_PORT", DefiningModule: "openconfig-icmpv4-types"},
		14: {Name: "DST_UNREACHABLE_PRECEDENCE_CUTOFF", DefiningModule: "openconfig-icmpv4-types"},
		15: {Name: "DST_UNREACHABLE_PROTOCOL", DefiningModule: "openconfig-icmpv4-types"},
		16: {Name: "DST_UNREACHABLE_SRC_HOST_ISOLATED", DefiningModule: "openconfig-icmpv4-types"},
		17: {Name: "DST_UNREACHABLE_SRC_ROUTE_FAILED", DefiningModule: "openconfig-icmpv4-types"},
		18: {Name: "ECHO_CODE", DefiningModule: "openconfig-icmpv4-types"},
		19: {Name: "ECHO_NO_CODE", DefiningModule: "openconfig-icmpv4-types"},
		20: {Name: "ECHO_REPLY_CODE", DefiningModule: "openconfig-icmpv4-types"},
		21: {Name: "ECHO_REPLY_NONE", DefiningModule: "openconfig-icmpv4-types"},
		22: {Name: "EXT_ECHO_REPLY_CODE", DefiningModule: "openconfig-icmpv4-types"},
		23: {Name: "EXT_ECHO_REPLY_MALFORMED_QUERY", DefiningModule: "openconfig-icmpv4-types"},
		24: {Name: "EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY", DefiningModule: "openconfig-icmpv4-types"},
		25: {Name: "EXT_ECHO_REPLY_NO_ERROR", DefiningModule: "openconfig-icmpv4-types"},
		26: {Name: "EXT_ECHO_REPLY_NO_SUB_TABLE_ENTRY", DefiningModule: "openconfig-icmpv4-types"},
		27: {Name: "EXT_ECHO_REPLY_NO_SUCH_INTF", DefiningModule: "openconfig-icmpv4-types"},
		28: {Name: "EXT_ECHO_REQUEST_CODE", DefiningModule: "openconfig-icmpv4-types"},
		29: {Name: "EXT_ECHO_REQUEST_NO_ERROR", DefiningModule: "openconfig-icmpv4-types"},
		30: {Name: "PARAM_PROBLEM_BAD_LENGTH", DefiningModule: "openconfig-icmpv4-types"},
		31: {Name: "PARAM_PROBLEM_CODE", DefiningModule: "openconfig-icmpv4-types"},
		32: {Name: "PARAM_PROBLEM_MISSING_REQ_OPTION", DefiningModule: "openconfig-icmpv4-types"},
		33: {Name: "PARAM_PROBLEM_POINTER_INDICATES_ERR", DefiningModule: "openconfig-icmpv4-types"},
		34: {Name: "PHOTURIS_AUTH_FAILED", DefiningModule: "openconfig-icmpv4-types"},
		35: {Name: "PHOTURIS_BAD_SPI", DefiningModule: "openconfig-icmpv4-types"},
		36: {Name: "PHOTURIS_CODE", DefiningModule: "openconfig-icmpv4-types"},
		37: {Name: "PHOTURIS_DECOMPRESS_FAILED", DefiningModule: "openconfig-icmpv4-types"},
		38: {Name: "PHOTURIS_DECRYPTION_FAILED", DefiningModule: "openconfig-icmpv4-types"},
		39: {Name: "PHOTURIS_NEED_AUTHENTICATION", DefiningModule: "openconfig-icmpv4-types"},
		40: {Name: "PHOTURIS_NEED_AUTHORIZATION", DefiningModule: "openconfig-icmpv4-types"},
		41: {Name: "REDIRECT_CODE", DefiningModule: "openconfig-icmpv4-types"},
		42: {Name: "REDIRECT_HOST", DefiningModule: "openconfig-icmpv4-types"},
		43: {Name: "REDIRECT_NETWORK", DefiningModule: "openconfig-icmpv4-types"},
		44: {Name: "REDIRECT_TOS_HOST", DefiningModule: "openconfig-icmpv4-types"},
		45: {Name: "REDIRECT_TOS_NETWORK", DefiningModule: "openconfig-icmpv4-types"},
		46: {Name: "ROUTER_ADVERTISEMENT_CODE", DefiningModule: "openconfig-icmpv4-types"},
		47: {Name: "ROUTER_ADVERTISEMENT_DOES_NOT_ROUTE_COMMON", DefiningModule: "openconfig-icmpv4-types"},
		48: {Name: "ROUTER_ADVERTISEMENT_NORMAL", DefiningModule: "openconfig-icmpv4-types"},
		49: {Name: "ROUTER_SELECTION_CODE", DefiningModule: "openconfig-icmpv4-types"},
		50: {Name: "ROUTER_SELECTION_NO_CODE", DefiningModule: "openconfig-icmpv4-types"},
		51: {Name: "TIMESTAMP_CODE", DefiningModule: "openconfig-icmpv4-types"},
		52: {Name: "TIMESTAMP_NO_CODE", DefiningModule: "openconfig-icmpv4-types"},
		53: {Name: "TIMESTAMP_REPLY_CODE", DefiningModule: "openconfig-icmpv4-types"},
		54: {Name: "TIMESTAMP_REPLY_NO_CODE", DefiningModule: "openconfig-icmpv4-types"},
		55: {Name: "TIME_EXCEEDED_CODE", DefiningModule: "openconfig-icmpv4-types"},
		56: {Name: "TIME_EXCEEDED_FRAGMENT_REASSEMBLY_IN_TRANSIT", DefiningModule: "openconfig-icmpv4-types"},
		57: {Name: "TIME_EXCEEDED_IN_TRANSIT", DefiningModule: "openconfig-icmpv4-types"},
	},
	"E_OpenconfigIcmpv4Types_TYPE": {
		1:  {Name: "DST_UNREACHABLE", DefiningModule: "openconfig-icmpv4-types"},
		2:  {Name: "ECHO", DefiningModule: "openconfig-icmpv4-types"},
		3:  {Name: "ECHO_REPLY", DefiningModule: "openconfig-icmpv4-types"},
		4:  {Name: "EXT_ECHO_REPLY", DefiningModule: "openconfig-icmpv4-types"},
		5:  {Name: "EXT_ECHO_REQUEST", DefiningModule: "openconfig-icmpv4-types"},
		6:  {Name: "PARAM_PROBLEM", DefiningModule: "openconfig-icmpv4-types"},
		7:  {Name: "PHOTURIS", DefiningModule: "openconfig-icmpv4-types"},
		8:  {Name: "REDIRECT", DefiningModule: "openconfig-icmpv4-types"},
		9:  {Name: "ROUTER_ADVERTISEMENT", DefiningModule: "openconfig-icmpv4-types"},
		10: {Name: "ROUTER_SOLICITATION", DefiningModule: "openconfig-icmpv4-types"},
		11: {Name: "TIMESTAMP", DefiningModule: "openconfig-icmpv4-types"},
		12: {Name: "TIMESTAMP_REPLY", DefiningModule: "openconfig-icmpv4-types"},
		13: {Name: "TIME_EXCEEDED", DefiningModule: "openconfig-icmpv4-types"},
		14: {Name: "TRACEROUTE", DefiningModule: "openconfig-icmpv4-types"},
	},
	"E_OpenconfigIcmpv6Types_CODE": {
		1:  {Name: "DST_UNREACHABLE_ADDR", DefiningModule: "openconfig-icmpv6-types"},
		2:  {Name: "DST_UNREACHABLE_BEYOND_SCOPE_OF_SRC", DefiningModule: "openconfig-icmpv6-types"},
		3:  {Name: "DST_UNREACHABLE_CODE", DefiningModule: "openconfig-icmpv6-types"},
		4:  {Name: "DST_UNREACHABLE_DST_ADMIN_PROHIBITED", DefiningModule: "openconfig-icmpv6-types"},
		5:  {Name: "DST_UNREACHABLE_ERR_IN_SRC_ROUTING_HDR", DefiningModule: "openconfig-icmpv6-types"},
		6:  {Name: "DST_UNREACHABLE_HDRS_TOO_LONG", DefiningModule: "openconfig-icmpv6-types"},
		7:  {Name: "DST_UNREACHABLE_NO_ROUTE_TO_DST", DefiningModule: "openconfig-icmpv6-types"},
		8:  {Name: "DST_UNREACHABLE_PORT", DefiningModule: "openconfig-icmpv6-types"},
		9:  {Name: "DST_UNREACHABLE_REJECT_ROUTE_TO_DST", DefiningModule: "openconfig-icmpv6-types"},
		10: {Name: "DST_UNREACHABLE_SRC_ADDR_FAILED_POLICY", DefiningModule: "openconfig-icmpv6-types"},
		11: {Name: "DUPLICATE_ADDRESS_REPLY_CODE", DefiningModule: "openconfig-icmpv6-types"},
		12: {Name: "DUPLICATE_ADDRESS_REPLY_DAC", DefiningModule: "openconfig-icmpv6-types"},
		13: {Name: "DUPLICATE_ADDRESS_REPLY_EDAC_ROVR128", DefiningModule: "openconfig-icmpv6-types"},
		14: {Name: "DUPLICATE_ADDRESS_REPLY_EDAC_ROVR192", DefiningModule: "openconfig-icmpv6-types"},
		15: {Name: "DUPLICATE_ADDRESS_REPLY_EDAC_ROVR256", DefiningModule: "openconfig-icmpv6-types"},
		16: {Name: "DUPLICATE_ADDRESS_REPLY_EDAC_ROVR64", DefiningModule: "openconfig-icmpv6-types"},
		17: {Name: "DUPLICATE_ADDRESS_REQUEST_CODE", DefiningModule: "openconfig-icmpv6-types"},
		18: {Name: "DUPLICATE_ADDRESS_REQUEST_DAR", DefiningModule: "openconfig-icmpv6-types"},
		19: {Name: "DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR128", DefiningModule: "openconfig-icmpv6-types"},
		20: {Name: "DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR192", DefiningModule: "openconfig-icmpv6-types"},
		21: {Name: "DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR256", DefiningModule: "openconfig-icmpv6-types"},
		22: {Name: "DUPLICATE_ADDRESS_REQUEST_EDAR_ROVR64", DefiningModule: "openconfig-icmpv6-types"},
		23: {Name: "ECHO_REPLY_CODE", DefiningModule: "openconfig-icmpv6-types"},
		24: {Name: "ECHO_REPLY_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		25: {Name: "ECHO_REQUEST_CODE", DefiningModule: "openconfig-icmpv6-types"},
		26: {Name: "ECHO_REQUEST_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		27: {Name: "EXT_ECHO_REPLY_CODE", DefiningModule: "openconfig-icmpv6-types"},
		28: {Name: "EXT_ECHO_REPLY_MALFORMED_QUERY", DefiningModule: "openconfig-icmpv6-types"},
		29: {Name: "EXT_ECHO_REPLY_MULTIPLE_INTF_SATISFY_QUERY", DefiningModule: "openconfig-icmpv6-types"},
		30: {Name: "EXT_ECHO_REPLY_NO_ERROR", DefiningModule: "openconfig-icmpv6-types"},
		31: {Name: "EXT_ECHO_REPLY_NO_SUCH_INTERFACE", DefiningModule: "openconfig-icmpv6-types"},
		32: {Name: "EXT_ECHO_REPLY_NO_SUCH_TABLE_ENTRY", DefiningModule: "openconfig-icmpv6-types"},
		33: {Name: "EXT_ECHO_REQUEST_CODE", DefiningModule: "openconfig-icmpv6-types"},
		34: {Name: "EXT_ECHO_REQUEST_NO_ERROR", DefiningModule: "openconfig-icmpv6-types"},
		35: {Name: "HOME_AGENT_ADDRESS_DISCOVERY_REPLY_CODE", DefiningModule: "openconfig-icmpv6-types"},
		36: {Name: "HOME_AGENT_ADDRESS_DISCOVERY_REPLY_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		37: {Name: "HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_CODE", DefiningModule: "openconfig-icmpv6-types"},
		38: {Name: "HOME_AGENT_ADDRESS_DISCOVERY_REQUEST_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		39: {Name: "INVERSE_NEIGHBOR_ADVERTISEMENT_CODE", DefiningModule: "openconfig-icmpv6-types"},
		40: {Name: "INVERSE_NEIGHBOR_ADVERTISEMENT_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		41: {Name: "INVERSE_NEIGHBOR_SOLICITATION_CODE", DefiningModule: "openconfig-icmpv6-types"},
		42: {Name: "INVERSE_NEIGHBOR_SOLICITATION_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		43: {Name: "MOBILE_PREFIX_ADVERTISEMENT_CODE", DefiningModule: "openconfig-icmpv6-types"},
		44: {Name: "MOBILE_PREFIX_ADVERTISEMENT_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		45: {Name: "MOBILE_PREFIX_SOLICITATION_CODE", DefiningModule: "openconfig-icmpv6-types"},
		46: {Name: "MOBILE_PREFIX_SOLICITATION_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		47: {Name: "MULTICAST_LISTENER_DONE_CODE", DefiningModule: "openconfig-icmpv6-types"},
		48: {Name: "MULTICAST_LISTENER_DONE_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		49: {Name: "MULTICAST_LISTENER_QUERY_CODE", DefiningModule: "openconfig-icmpv6-types"},
		50: {Name: "MULTICAST_LISTENER_QUERY_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		51: {Name: "MULTICAST_LISTENER_REPORT_CODE", DefiningModule: "openconfig-icmpv6-types"},
		52: {Name: "MULTICAST_LISTENER_REPORT_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		53: {Name: "NDDE_INFORMATION_RESPONSE_CODE", DefiningModule: "openconfig-icmpv6-types"},
		54: {Name: "NEIGHBOR_ADVERTISEMENT_CODE", DefiningModule: "openconfig-icmpv6-types"},
		55: {Name: "NEIGHBOR_ADVERTISEMENT_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		56: {Name: "NEIGHBOR_SOLICITATION_CODE", DefiningModule: "openconfig-icmpv6-types"},
		57: {Name: "NEIGHBOR_SOLICITATION_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		58: {Name: "NODE_INFORMATION_QUERY_CODE", DefiningModule: "openconfig-icmpv6-types"},
		59: {Name: "NODE_INFORMATION_QUERY_IPV4_ADDR", DefiningModule: "openconfig-icmpv6-types"},
		60: {Name: "NODE_INFORMATION_QUERY_IPV6_ADDR", DefiningModule: "openconfig-icmpv6-types"},
		61: {Name: "NODE_INFORMATION_QUERY_NAME", DefiningModule: "openconfig-icmpv6-types"},
		62: {Name: "NODE_INFORMATION_RESPONSE_REFUSED", DefiningModule: "openconfig-icmpv6-types"},
		63: {Name: "NODE_INFORMATION_RESPONSE_SUCCESS", DefiningModule: "openconfig-icmpv6-types"},
		64: {Name: "NODE_INFORMATION_RESPONSE_UNKNOWN", DefiningModule: "openconfig-icmpv6-types"},
		65: {Name: "PACKET_TOO_BIG_CODE", DefiningModule: "openconfig-icmpv6-types"},
		66: {Name: "PACKET_TOO_BIG_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		67: {Name: "PARAM_PROBLEM_CODE", DefiningModule: "openconfig-icmpv6-types"},
		68: {Name: "PARAM_PROBLEM_ERR_HDR_FIELD", DefiningModule: "openconfig-icmpv6-types"},
		69: {Name: "PARAM_PROBLEM_EXT_HDR_CHAIN_TOO_LONG", DefiningModule: "openconfig-icmpv6-types"},
		70: {Name: "PARAM_PROBLEM_EXT_HDR_TOO_BIG", DefiningModule: "openconfig-icmpv6-types"},
		71: {Name: "PARAM_PROBLEM_INCOMPLETE_HDR_CHAIN", DefiningModule: "openconfig-icmpv6-types"},
		72: {Name: "PARAM_PROBLEM_OPT_TOO_BIG", DefiningModule: "openconfig-icmpv6-types"},
		73: {Name: "PARAM_PROBLEM_SR_UPPER_HDR_ERR", DefiningModule: "openconfig-icmpv6-types"},
		74: {Name: "PARAM_PROBLEM_TOO_MANY_EXT_HDRS", DefiningModule: "openconfig-icmpv6-types"},
		75: {Name: "PARAM_PROBLEM_TOO_MANY_OPTS", DefiningModule: "openconfig-icmpv6-types"},
		76: {Name: "PARAM_PROBLEM_UNRECOGNIZED_IPV6_OPT", DefiningModule: "openconfig-icmpv6-types"},
		77: {Name: "PARAM_PROBLEM_UNRECOGNIZED_NET_HDR_TYPE", DefiningModule: "openconfig-icmpv6-types"},
		78: {Name: "PARAM_PROBLEM_UNRECOGNIZED_NEXT_HDR_TYPE", DefiningModule: "openconfig-icmpv6-types"},
		79: {Name: "REDIRECT_CODE", DefiningModule: "openconfig-icmpv6-types"},
		80: {Name: "REDIRECT_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		81: {Name: "RENUMBERING_CODE", DefiningModule: "openconfig-icmpv6-types"},
		82: {Name: "RENUMBERING_COMMAND", DefiningModule: "openconfig-icmpv6-types"},
		83: {Name: "RENUNBERING_RESULT", DefiningModule: "openconfig-icmpv6-types"},
		84: {Name: "RENUNBERING_SEQ_NUM_RESET", DefiningModule: "openconfig-icmpv6-types"},
		85: {Name: "ROUTER_ADVERTISEMENT_CODE", DefiningModule: "openconfig-icmpv6-types"},
		86: {Name: "ROUTER_ADVERTISEMENT_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		87: {Name: "ROUTER_SOLICITATION_CODE", DefiningModule: "openconfig-icmpv6-types"},
		88: {Name: "ROUTER_SOLICITATION_NO_CODE", DefiningModule: "openconfig-icmpv6-types"},
		89: {Name: "TIME_EXCEEDED_CODE", DefiningModule: "openconfig-icmpv6-types"},
		90: {Name: "TIME_EXCEEDED_FRAGMENT_REASSEMBLY", DefiningModule: "openconfig-icmpv6-types"},
		91: {Name: "TIME_EXCEEDED_HOP_LIMIT", DefiningModule: "openconfig-icmpv6-types"},
	},
	"E_OpenconfigIcmpv6Types_TYPE": {
		1:  {Name: "CERTIFICATION_PATH_ADVERTISEMENT", DefiningModule: "openconfig-icmpv6-types"},
		2:  {Name: "CERTIFICATION_PATH_SOLICITATION", DefiningModule: "openconfig-icmpv6-types"},
		3:  {Name: "DESTINATION_UNREACHABLE", DefiningModule: "openconfig-icmpv6-types"},
		4:  {Name: "DUPLICATE_ADDRESS_CONFIRMATION", DefiningModule: "openconfig-icmpv6-types"},
		5:  {Name: "DUPLICATE_ADDRESS_REQUEST", DefiningModule: "openconfig-icmpv6-types"},
		6:  {Name: "ECHO_REPLY", DefiningModule: "openconfig-icmpv6-types"},
		7:  {Name: "ECHO_REQUEST", DefiningModule: "openconfig-icmpv6-types"},
		8:  {Name: "EXT_ECHO_REPLY", DefiningModule: "openconfig-icmpv6-types"},
		9:  {Name: "EXT_ECHO_REQUEST", DefiningModule: "openconfig-icmpv6-types"},
		10: {Name: "FMIPV6", DefiningModule: "openconfig-icmpv6-types"},
		11: {Name: "HOME_AGENT_ADDRESS_DISCOVERY_REPLY", DefiningModule: "openconfig-icmpv6-types"},
		12: {Name: "HOME_AGENT_ADDRESS_DISCOVERY_REQUEST", DefiningModule: "openconfig-icmpv6-types"},
		13: {Name: "ILNPV6_LOCATOR_UPDATE", DefiningModule: "openconfig-icmpv6-types"},
		14: {Name: "INVERSE_NEIGHBOR_ADVERTISEMENT", DefiningModule: "openconfig-icmpv6-types"},
		15: {Name: "INVERSE_NEIGHBOR_SOLICITATION", DefiningModule: "openconfig-icmpv6-types"},
		16: {Name: "MOBILE_PREFIX_ADVERTISEMENT", DefiningModule: "openconfig-icmpv6-types"},
		17: {Name: "MOBILE_PREFIX_SOLICITATION", DefiningModule: "openconfig-icmpv6-types"},
		18: {Name: "MPL_CONTROL", DefiningModule: "openconfig-icmpv6-types"},
		19: {Name: "MULTICAST_LISTENER_DONE", DefiningModule: "openconfig-icmpv6-types"},
		20: {Name: "MULTICAST_LISTENER_QUERY", DefiningModule: "openconfig-icmpv6-types"},
		21: {Name: "MULTICAST_LISTENER_REPORT", DefiningModule: "openconfig-icmpv6-types"},
		22: {Name: "MULTICAST_ROUTER_ADVERTISEMENT", DefiningModule: "openconfig-icmpv6-types"},
		23: {Name: "MULTICAST_ROUTER_SOLICITATION", DefiningModule: "openconfig-icmpv6-types"},
		24: {Name: "MULTICAST_ROUTER_TERMINATION", DefiningModule: "openconfig-icmpv6-types"},
		25: {Name: "NEIGHBOR_ADVERTISEMENT", DefiningModule: "openconfig-icmpv6-types"},
		26: {Name: "NEIGHBOR_SOLICITATION", DefiningModule: "openconfig-icmpv6-types"},
		27: {Name: "NODE_INFORMATION_QUERY", DefiningModule: "openconfig-icmpv6-types"},
		28: {Name: "NODE_INFORMATION_RESPONSE", DefiningModule: "openconfig-icmpv6-types"},
		29: {Name: "PACKET_TOO_BIG", DefiningModule: "openconfig-icmpv6-types"},
		30: {Name: "PARAMETER_PROBLEM", DefiningModule: "openconfig-icmpv6-types"},
		31: {Name: "REDIRECT", DefiningModule: "openconfig-icmpv6-types"},
		32: {Name: "RENUNBERING", DefiningModule: "openconfig-icmpv6-types"},
		33: {Name: "ROUTER_ADVERTISEMENT", DefiningModule: "openconfig-icmpv6-types"},
		34: {Name: "ROUTER_SOLICITATION", DefiningModule: "openconfig-icmpv6-types"},
		35: {Name: "RPL_CONTROL", DefiningModule: "openconfig-icmpv6-types"},
		36: {Name: "TIME_EXCEEDED", DefiningModule: "openconfig-icmpv6-types"},
		37: {Name: "VERSION2_MULTICAST_LISTENER", DefiningModule: "openconfig-icmpv6-types"},
	},
	"E_OpenconfigIfAggregate_AggregationType": {
		1: {Name: "LACP"},
		2: {Name: "STATIC"},
	},
	"E_OpenconfigIfEthernet_ETHERNET_SPEED": {
		1:  {Name: "SPEED_100GB", DefiningModule: "openconfig-if-ethernet"},
		2:  {Name: "SPEED_100MB", DefiningModule: "openconfig-if-ethernet"},
		3:  {Name: "SPEED_10GB", DefiningModule: "openconfig-if-ethernet"},
		4:  {Name: "SPEED_10MB", DefiningModule: "openconfig-if-ethernet"},
		5:  {Name: "SPEED_1GB", DefiningModule: "openconfig-if-ethernet"},
		6:  {Name: "SPEED_200GB", DefiningModule: "openconfig-if-ethernet"},
		7:  {Name: "SPEED_2500MB", DefiningModule: "openconfig-if-ethernet"},
		8:  {Name: "SPEED_25GB", DefiningModule: "openconfig-if-ethernet"},
		9:  {Name: "SPEED_400GB", DefiningModule: "openconfig-if-ethernet"},
		10: {Name: "SPEED_40GB", DefiningModule: "openconfig-if-ethernet"},
		11: {Name: "SPEED_50GB", DefiningModule: "openconfig-if-ethernet"},
		12: {Name: "SPEED_5GB", DefiningModule: "openconfig-if-ethernet"},
		13: {Name: "SPEED_600GB", DefiningModule: "openconfig-if-ethernet"},
		14: {Name: "SPEED_800GB", DefiningModule: "openconfig-if-ethernet"},
		15: {Name: "SPEED_UNKNOWN", DefiningModule: "openconfig-if-ethernet"},
	},
	"E_OpenconfigIfEthernet_INTERFACE_FEC": {
		1: {Name: "FEC_DISABLED", DefiningModule: "openconfig-if-ethernet"},
		2: {Name: "FEC_FC", DefiningModule: "openconfig-if-ethernet"},
		3: {Name: "FEC_RS528", DefiningModule: "openconfig-if-ethernet"},
		4: {Name: "FEC_RS544", DefiningModule: "openconfig-if-ethernet"},
		5: {Name: "FEC_RS544_2X_INTERLEAVE", DefiningModule: "openconfig-if-ethernet"},
	},
	"E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode": {
		1: {Name: "FULL"},
		2: {Name: "HALF"},
	},
	"E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode": {
		1: {Name: "FULL"},
		2: {Name: "HALF"},
	},
	"E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
		3: {Name: "TESTING"},
	},
	"E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus": {
		2: {Name: "UP"},
		3: {Name: "DOWN"},
		4: {Name: "TESTING"},
		5: {Name: "UNKNOWN"},
		6: {Name: "DORMANT"},
		7: {Name: "NOT_PRESENT"},
		8: {Name: "LOWER_LAYER_DOWN"},
	},
	"E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE": {
		1:  {Name: "IP_REACHABILITY_IPV4_ROUTER_ID", DefiningModule: "openconfig-isis-lsdb-types"},
		2:  {Name: "IP_REACHABILITY_IPV6_ROUTER_ID", DefiningModule: "openconfig-isis-lsdb-types"},
		3:  {Name: "IP_REACHABILITY_PREFIX_FLAGS", DefiningModule: "openconfig-isis-lsdb-types"},
		4:  {Name: "IP_REACHABILITY_PREFIX_SID", DefiningModule: "openconfig-isis-lsdb-types"},
		5:  {Name: "IP_REACHABILITY_SUBTLVS_TYPE", DefiningModule: "openconfig-isis-lsdb-types"},
		6:  {Name: "IP_REACHABILITY_TAG", DefiningModule: "openconfig-isis-lsdb-types"},
		7:  {Name: "IP_REACHABILITY_TAG64", DefiningModule: "openconfig-isis-lsdb-types"},
		8:  {Name: "IS_REACHABILITY_ADJ_LAN_SID", DefiningModule: "openconfig-isis-lsdb-types"},
		9:  {Name: "IS_REACHABILITY_ADJ_SID", DefiningModule: "openconfig-isis-lsdb-types"},
		10: {Name: "IS_REACHABILITY_ADMIN_GROUP", DefiningModule: "openconfig-isis-lsdb-types"},
		11: {Name: "IS_REACHABILITY_AVAILABLE_BANDWIDTH", DefiningModule: "openconfig-isis-lsdb-types"},
		12: {Name: "IS_REACHABILITY_BANDWIDTH_CONSTRAINTS", DefiningModule: "openconfig-isis-lsdb-types"},
		13: {Name: "IS_REACHABILITY_EXTENDED_ADMIN_GROUP", DefiningModule: "openconfig-isis-lsdb-types"},
		14: {Name: "IS_REACHABILITY_IPV4_INTERFACE_ADDRESS", DefiningModule: "openconfig-isis-lsdb-types"},
		15: {Name: "IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS", DefiningModule: "openconfig-isis-lsdb-types"},
		16: {Name: "IS_REACHABILITY_IPV6_INTERFACE_ADDRESS", DefiningModule: "openconfig-isis-lsdb-types"},
		17: {Name: "IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS", DefiningModule: "openconfig-isis-lsdb-types"},
		18: {Name: "IS_REACHABILITY_LINK_ATTRIBUTES", DefiningModule: "openconfig-isis-lsdb-types"},
		19: {Name: "IS_REACHABILITY_LINK_DELAY", DefiningModule: "openconfig-isis-lsdb-types"},
		20: {Name: "IS_REACHABILITY_LINK_DELAY_VARIATION", DefiningModule: "openconfig-isis-lsdb-types"},
		21: {Name: "IS_REACHABILITY_LINK_ID", DefiningModule: "openconfig-isis-lsdb-types"},
		22: {Name: "IS_REACHABILITY_LINK_LOSS", DefiningModule: "openconfig-isis-lsdb-types"},
		23: {Name: "IS_REACHABILITY_LINK_PROTECTION_TYPE", DefiningModule: "openconfig-isis-lsdb-types"},
		24: {Name: "IS_REACHABILITY_MAX_LINK_BANDWIDTH", DefiningModule: "openconfig-isis-lsdb-types"},
		25: {Name: "IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH", DefiningModule: "openconfig-isis-lsdb-types"},
		26: {Name: "IS_REACHABILITY_MIN_MAX_LINK_DELAY", DefiningModule: "openconfig-isis-lsdb-types"},
		27: {Name: "IS_REACHABILITY_RESIDUAL_BANDWIDTH", DefiningModule: "openconfig-isis-lsdb-types"},
		28: {Name: "IS_REACHABILITY_SUBTLVS_TYPE", DefiningModule: "openconfig-isis-lsdb-types"},
		29: {Name: "IS_REACHABILITY_TE_DEFAULT_METRIC", DefiningModule: "openconfig-isis-lsdb-types"},
		30: {Name: "IS_REACHABILITY_UNCONSTRAINED_LSP", DefiningModule: "openconfig-isis-lsdb-types"},
		31: {Name: "IS_REACHABILITY_UNRESERVED_BANDWIDTH", DefiningModule: "openconfig-isis-lsdb-types"},
		32: {Name: "IS_REACHABILITY_UTILIZED_BANDWIDTH", DefiningModule: "openconfig-isis-lsdb-types"},
		33: {Name: "ROUTER_CAPABILITY_SR_ALGORITHM", DefiningModule: "openconfig-isis-lsdb-types"},
		34: {Name: "ROUTER_CAPABILITY_SR_CAPABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		35: {Name: "ROUTER_CAPABILITY_SUBTLVS_TYPE", DefiningModule: "openconfig-isis-lsdb-types"},
	},
	"E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE": {
		1:  {Name: "AREA_ADDRESSES", DefiningModule: "openconfig-isis-lsdb-types"},
		2:  {Name: "AUTHENTICATION", DefiningModule: "openconfig-isis-lsdb-types"},
		3:  {Name: "DYNAMIC_NAME", DefiningModule: "openconfig-isis-lsdb-types"},
		4:  {Name: "EXTENDED_IPV4_REACHABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		5:  {Name: "EXTENDED_IS_REACHABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		6:  {Name: "IIS_NEIGHBORS", DefiningModule: "openconfig-isis-lsdb-types"},
		7:  {Name: "INSTANCE_ID", DefiningModule: "openconfig-isis-lsdb-types"},
		8:  {Name: "IPV4_EXTERNAL_REACHABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		9:  {Name: "IPV4_INTERFACE_ADDRESSES", DefiningModule: "openconfig-isis-lsdb-types"},
		10: {Name: "IPV4_INTERNAL_REACHABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		11: {Name: "IPV4_SRLG", DefiningModule: "openconfig-isis-lsdb-types"},
		12: {Name: "IPV4_TE_ROUTER_ID", DefiningModule: "openconfig-isis-lsdb-types"},
		13: {Name: "IPV6_INTERFACE_ADDRESSES", DefiningModule: "openconfig-isis-lsdb-types"},
		14: {Name: "IPV6_REACHABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		15: {Name: "IPV6_SRLG", DefiningModule: "openconfig-isis-lsdb-types"},
		16: {Name: "IPV6_TE_ROUTER_ID", DefiningModule: "openconfig-isis-lsdb-types"},
		17: {Name: "ISIS_ALIAS_ID", DefiningModule: "openconfig-isis-lsdb-types"},
		18: {Name: "IS_NEIGHBOR_ATTRIBUTE", DefiningModule: "openconfig-isis-lsdb-types"},
		19: {Name: "LSP_BUFFER_SIZE", DefiningModule: "openconfig-isis-lsdb-types"},
		20: {Name: "MT_IPV4_REACHABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		21: {Name: "MT_IPV6_REACHABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
		22: {Name: "MT_ISN", DefiningModule: "openconfig-isis-lsdb-types"},
		23: {Name: "MT_IS_NEIGHBOR_ATTRIBUTE", DefiningModule: "openconfig-isis-lsdb-types"},
		24: {Name: "MULTI_TOPOLOGY", DefiningModule: "openconfig-isis-lsdb-types"},
		25: {Name: "NLPID", DefiningModule: "openconfig-isis-lsdb-types"},
		26: {Name: "PURGE_OI", DefiningModule: "openconfig-isis-lsdb-types"},
		27: {Name: "ROUTER_CAPABILITY", DefiningModule: "openconfig-isis-lsdb-types"},
	},
	"E_OpenconfigIsisTypes_AFI_SAFI_TYPE": {
		1: {Name: "IPV4_MULTICAST", DefiningModule: "openconfig-isis-types"},
		2: {Name: "IPV4_UNICAST", DefiningModule: "openconfig-isis-types"},
		3: {Name: "IPV6_MULTICAST", DefiningModule: "openconfig-isis-types"},
		4: {Name: "IPV6_UNICAST", DefiningModule: "openconfig-isis-types"},
	},
	"E_OpenconfigIsisTypes_AFI_TYPE": {
		1: {Name: "IPV4", DefiningModule: "openconfig-isis-types"},
		2: {Name: "IPV6", DefiningModule: "openconfig-isis-types"},
	},
	"E_OpenconfigIsisTypes_AUTH_MODE": {
		1: {Name: "MD5", DefiningModule: "openconfig-isis-types"},
		2: {Name: "TEXT", DefiningModule: "openconfig-isis-types"},
	},
	"E_OpenconfigIsisTypes_AdaptiveTimerType": {
		1: {Name: "LINEAR"},
		2: {Name: "EXPONENTIAL"},
	},
	"E_OpenconfigIsisTypes_CircuitType": {
		1: {Name: "POINT_TO_POINT"},
		2: {Name: "BROADCAST"},
	},
	"E_OpenconfigIsisTypes_HelloPaddingType": {
		1: {Name: "STRICT"},
		2: {Name: "LOOSE"},
		3: {Name: "ADAPTIVE"},
		4: {Name: "DISABLE"},
	},
	"E_OpenconfigIsisTypes_IsisInterfaceAdjState": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
		3: {Name: "INIT"},
		4: {Name: "FAILED"},
	},
	"E_OpenconfigIsisTypes_LevelType": {
		1: {Name: "LEVEL_1"},
		2: {Name: "LEVEL_2"},
		3: {Name: "LEVEL_1_2"},
	},
	"E_OpenconfigIsisTypes_MetricStyle": {
		1: {Name: "NARROW_METRIC"},
		2: {Name: "WIDE_METRIC"},
	},
	"E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE": {
		1: {Name: "WAIT_FOR_BGP", DefiningModule: "openconfig-isis-types"},
		2: {Name: "WAIT_FOR_SYSTEM", DefiningModule: "openconfig-isis-types"},
	},
	"E_OpenconfigIsisTypes_SAFI_TYPE": {
		1: {Name: "MULTICAST", DefiningModule: "openconfig-isis-types"},
		2: {Name: "UNICAST", DefiningModule: "openconfig-isis-types"},
	},
	"E_OpenconfigIsis_IsisMetricFlags": {
		1: {Name: "INTERNAL"},
		2: {Name: "UNSUPPORTED"},
	},
	"E_OpenconfigKeychainTypes_AUTH_TYPE": {
		1: {Name: "KEYCHAIN", DefiningModule: "openconfig-keychain-types"},
		2: {Name: "SIMPLE_KEY", DefiningModule: "openconfig-keychain-types"},
	},
	"E_OpenconfigKeychainTypes_CRYPTO_TYPE": {
		1:  {Name: "AES_28_CMAC_96", DefiningModule: "openconfig-keychain-types"},
		2:  {Name: "CRYPTO_NONE", DefiningModule: "openconfig-keychain-types"},
		3:  {Name: "HMAC_MD5", DefiningModule: "openconfig-keychain-types"},
		4:  {Name: "HMAC_SHA_1", DefiningModule: "openconfig-keychain-types"},
		5:  {Name: "HMAC_SHA_1_12", DefiningModule: "openconfig-keychain-types"},
		6:  {Name: "HMAC_SHA_1_20", DefiningModule: "openconfig-keychain-types"},
		7:  {Name: "HMAC_SHA_1_96", DefiningModule: "openconfig-keychain-types"},
		8:  {Name: "HMAC_SHA_256", DefiningModule: "openconfig-keychain-types"},
		9:  {Name: "MD5", DefiningModule: "openconfig-keychain-types"},
		10: {Name: "SHA_1", DefiningModule: "openconfig-keychain-types"},
	},
	"E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum": {
		1: {Name: "FOREVER"},
	},
	"E_OpenconfigLldpTypes_ChassisIdType": {
		1: {Name: "CHASSIS_COMPONENT"},
		2: {Name: "INTERFACE_ALIAS"},
		3: {Name: "PORT_COMPONENT"},
		4: {Name: "MAC_ADDRESS"},
		5: {Name: "NETWORK_ADDRESS"},
		6: {Name: "INTERFACE_NAME"},
		7: {Name: "LOCAL"},
	},
	"E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY": {
		1:  {Name: "C_VLAN", DefiningModule: "openconfig-lldp-types"},
		2:  {Name: "DOCSIS_CABLE_DEVICE", DefiningModule: "openconfig-lldp-types"},
		3:  {Name: "MAC_BRIDGE", DefiningModule: "openconfig-lldp-types"},
		4:  {Name: "OTHER", DefiningModule: "openconfig-lldp-types"},
		5:  {Name: "REPEATER", DefiningModule: "openconfig-lldp-types"},
		6:  {Name: "ROUTER", DefiningModule: "openconfig-lldp-types"},
		7:  {Name: "STATION_ONLY", DefiningModule: "openconfig-lldp-types"},
		8:  {Name: "S_VLAN", DefiningModule: "openconfig-lldp-types"},
		9:  {Name: "TELEPHONE", DefiningModule: "openconfig-lldp-types"},
		10: {Name: "TWO_PORT_MAC_RELAY", DefiningModule: "openconfig-lldp-types"},
		11: {Name: "WLAN_ACCESS_POINT", DefiningModule: "openconfig-lldp-types"},
	},
	"E_OpenconfigLldpTypes_LLDP_TLV": {
		1: {Name: "CHASSIS_ID", DefiningModule: "openconfig-lldp-types"},
		2: {Name: "MANAGEMENT_ADDRESS", DefiningModule: "openconfig-lldp-types"},
		3: {Name: "PORT_DESCRIPTION", DefiningModule: "openconfig-lldp-types"},
		4: {Name: "PORT_ID", DefiningModule: "openconfig-lldp-types"},
		5: {Name: "SYSTEM_CAPABILITIES", DefiningModule: "openconfig-lldp-types"},
		6: {Name: "SYSTEM_DESCRIPTION", DefiningModule: "openconfig-lldp-types"},
		7: {Name: "SYSTEM_NAME", DefiningModule: "openconfig-lldp-types"},
	},
	"E_OpenconfigLldpTypes_PortIdType": {
		1: {Name: "INTERFACE_ALIAS"},
		2: {Name: "PORT_COMPONENT"},
		3: {Name: "MAC_ADDRESS"},
		4: {Name: "NETWORK_ADDRESS"},
		5: {Name: "INTERFACE_NAME"},
		6: {Name: "AGENT_CIRCUIT_ID"},
		7: {Name: "LOCAL"},
	},
	"E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP": {
		1: {Name: "DROP", DefiningModule: "openconfig-local-routing"},
		2: {Name: "LOCAL_LINK", DefiningModule: "openconfig-local-routing"},
	},
	"E_OpenconfigMessages_DEBUG_SERVICE": {},
	"E_OpenconfigMplsLdp_LabelAdvertisementMode": {
		1: {Name: "DOWNSTREAM_UNSOLICITED"},
		2: {Name: "DOWNSTREAM_ON_DEMAND"},
	},
	"E_OpenconfigMplsLdp_MplsLdpAdjacencyType": {
		1: {Name: "LINK"},
		2: {Name: "TARGETED"},
	},
	"E_OpenconfigMplsLdp_MplsLdpAfi": {
		1: {Name: "IPV4"},
		2: {Name: "IPV6"},
	},
	"E_OpenconfigMplsTypes_LSP_METRIC_TYPE": {
		1: {Name: "LSP_METRIC_ABSOLUTE", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "LSP_METRIC_INHERITED", DefiningModule: "openconfig-mpls-types"},
		3: {Name: "LSP_METRIC_RELATIVE", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_LSP_OPER_STATUS": {
		1: {Name: "DOWN", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "UP", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_LSP_ROLE": {
		1: {Name: "EGRESS", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "INGRESS", DefiningModule: "openconfig-mpls-types"},
		3: {Name: "TRANSIT", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_MplsLabel_Enum": {
		1: {Name: "IPV4_EXPLICIT_NULL"},
		2: {Name: "ROUTER_ALERT"},
		3: {Name: "IPV6_EXPLICIT_NULL"},
		4: {Name: "IMPLICIT_NULL"},
		8: {Name: "ENTROPY_LABEL_INDICATOR"},
		9: {Name: "NO_LABEL"},
	},
	"E_OpenconfigMplsTypes_NULL_LABEL_TYPE": {
		1: {Name: "EXPLICIT", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "IMPLICIT", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD": {
		1: {Name: "EXPLICITLY_DEFINED", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "EXTERNALLY_QUERIED", DefiningModule: "openconfig-mpls-types"},
		3: {Name: "LOCALLY_COMPUTED", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_PATH_METRIC_TYPE": {
		1: {Name: "HOP_COUNT", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "IGP_METRIC", DefiningModule: "openconfig-mpls-types"},
		3: {Name: "PATH_DELAY", DefiningModule: "openconfig-mpls-types"},
		4: {Name: "TE_METRIC", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL": {
		1: {Name: "PATH_SETUP_LDP", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "PATH_SETUP_RSVP", DefiningModule: "openconfig-mpls-types"},
		3: {Name: "PATH_SETUP_SR", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_PROTECTION_TYPE": {
		1: {Name: "LINK_NODE_PROTECTION_REQUESTED", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "LINK_PROTECTION_REQUIRED", DefiningModule: "openconfig-mpls-types"},
		3: {Name: "UNPROTECTED", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION": {
		1: {Name: "PWE_ETHERNET_RAW_MODE", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "PWE_ETHERNET_TAGGED_MODE", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_RSVP_AUTH_TYPE": {
		1: {Name: "RSVP_AUTH_MD5", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS": {
		1: {Name: "ADMIN_DOWN", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "ADMIN_UP", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMplsTypes_TUNNEL_TYPE": {
		1: {Name: "P2MP", DefiningModule: "openconfig-mpls-types"},
		2: {Name: "P2P", DefiningModule: "openconfig-mpls-types"},
	},
	"E_OpenconfigMpls_CspfTieBreaking": {
		1: {Name: "RANDOM"},
		2: {Name: "LEAST_FILL"},
		3: {Name: "MOST_FILL"},
	},
	"E_OpenconfigMpls_MplsHopType": {
		1: {Name: "LOOSE"},
		2: {Name: "STRICT"},
	},
	"E_OpenconfigMpls_MplsSrlgFloodingType": {
		1: {Name: "FLOODED_SRLG"},
		2: {Name: "STATIC_SRLG"},
	},
	"E_OpenconfigMpls_TeBandwidthType": {
		1: {Name: "SPECIFIED"},
		2: {Name: "AUTO"},
	},
	"E_OpenconfigNetworkInstanceTypes_ENCAPSULATION": {
		1: {Name: "MPLS", DefiningModule: "openconfig-network-instance-types"},
		2: {Name: "VXLAN", DefiningModule: "openconfig-network-instance-types"},
	},
	"E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE": {
		1: {Name: "LOCAL", DefiningModule: "openconfig-network-instance-types"},
		2: {Name: "REMOTE", DefiningModule: "openconfig-network-instance-types"},
	},
	"E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE": {
		1: {Name: "INSTANCE_LABEL", DefiningModule: "openconfig-network-instance-types"},
		2: {Name: "PER_NEXTHOP", DefiningModule: "openconfig-network-instance-types"},
		3: {Name: "PER_PREFIX", DefiningModule: "openconfig-network-instance-types"},
	},
	"E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE": {
		1: {Name: "DEFAULT_INSTANCE", DefiningModule: "openconfig-network-instance-types"},
		2: {Name: "L2L3", DefiningModule: "openconfig-network-instance-types"},
		3: {Name: "L2P2P", DefiningModule: "openconfig-network-instance-types"},
		4: {Name: "L2VSI", DefiningModule: "openconfig-network-instance-types"},
		5: {Name: "L3VRF", DefiningModule: "openconfig-network-instance-types"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum": {
		1: {Name: "STATIC_INGRESS_REPLICATION"},
		2: {Name: "BGP_INGRESS_REPLICATION"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType": {
		1: {Name: "L2"},
		2: {Name: "L3"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode": {
		1: {Name: "STATIC_INGRESS_REPLICATION"},
		2: {Name: "BGP"},
		3: {Name: "MULTICAST"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum": {
		1: {Name: "AUTO"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum": {
		1: {Name: "AUTO"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum": {
		1: {Name: "AUTO"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState": {
		1: {Name: "FROZEN"},
		2: {Name: "DUPLICATE"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer": {
		1: {Name: "LOCAL"},
		2: {Name: "STATIC"},
		3: {Name: "BGP"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type": {
		1: {Name: "ESI"},
		2: {Name: "ESI_EVI"},
		3: {Name: "BASE_ECMP"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType": {
		1: {Name: "STATIC"},
		2: {Name: "DYNAMIC"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway": {
		1: {Name: "DISTRIBUTED_SYMETRIC"},
		2: {Name: "DISTRIBUTED_ASYMETRIC"},
		3: {Name: "HYBRID"},
		4: {Name: "CENTRALIZED"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode": {
		1: {Name: "ADJ_SID_ONLY"},
		2: {Name: "MIXED_MODE"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState": {
		1: {Name: "NON_EXISTENT"},
		2: {Name: "INITIALIZED"},
		3: {Name: "OPENREC"},
		4: {Name: "OPENSENT"},
		5: {Name: "OPERATIONAL"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum": {
		1: {Name: "ALL"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type": {
		1: {Name: "IPV4"},
		2: {Name: "IPV6"},
		3: {Name: "ASN"},
		4: {Name: "ASN4"},
		5: {Name: "LABEL"},
		6: {Name: "UNNUMBERED_INTERFACE"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification": {
		1: {Name: "MIRRORED_UP_DOWN"},
		2: {Name: "SEPARATE_UP_DOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType": {
		1: {Name: "DELTA"},
		2: {Name: "THRESHOLD_CROSSED"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type": {
		1: {Name: "PBR_POLICY"},
		2: {Name: "VRF_SELECTION_POLICY"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode": {
		1: {Name: "HELPER_ONLY"},
		2: {Name: "BILATERAL"},
		3: {Name: "REMOTE_HELPER"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState": {
		1: {Name: "IDLE"},
		2: {Name: "CONNECT"},
		3: {Name: "ACTIVE"},
		4: {Name: "OPENSENT"},
		5: {Name: "OPENCONFIRM"},
		6: {Name: "ESTABLISHED"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type": {
		2: {Name: "MPLS_SID"},
		3: {Name: "IPV6_SID"},
		4: {Name: "IPV4_NODE_ADDRESS"},
		5: {Name: "IPV6_NODE_ADDRESS"},
		6: {Name: "IPV4_LOCAL_INTF_ID"},
		7: {Name: "IPV4_LOCAL_REMOTE_ADDR"},
		8: {Name: "IPV6_LOCAL_INTF_ID"},
		9: {Name: "IPV6_LOCAL_REMOTE_ADDR"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid": {
		1: {Name: "IPV4"},
		2: {Name: "IPV6"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum": {
		1: {Name: "DYNAMIC"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions": {
		1: {Name: "NO_PHP"},
		2: {Name: "EXPLICIT_NULL"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum": {
		1: {Name: "auto"},
		2: {Name: "none"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags": {
		1: {Name: "PARTITION_REPAIR"},
		2: {Name: "ATTACHED_ERROR"},
		3: {Name: "ATTACHED_EXPENSE"},
		4: {Name: "ATTACHED_DELAY"},
		5: {Name: "ATTACHED_DEFAULT"},
		6: {Name: "OVERLOAD"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType": {
		1: {Name: "LEVEL_1"},
		2: {Name: "LEVEL_2"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType": {
		1: {Name: "HMAC_MD5"},
		2: {Name: "CLEARTEXT"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags": {
		1: {Name: "EXTERNAL_FLAG"},
		2: {Name: "READVERTISEMENT_FLAG"},
		3: {Name: "NODE_FLAG"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags": {
		1: {Name: "READVERTISEMENT"},
		2: {Name: "NODE"},
		3: {Name: "NO_PHP"},
		4: {Name: "EXPLICIT_NULL"},
		5: {Name: "VALUE"},
		6: {Name: "LOCAL"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags": {
		1: {Name: "ADDRESS_FAMILY"},
		2: {Name: "BACKUP"},
		3: {Name: "VALUE"},
		4: {Name: "LOCAL"},
		5: {Name: "SET"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags": {
		1: {Name: "ADDRESS_FAMILY"},
		2: {Name: "BACKUP"},
		3: {Name: "VALUE"},
		4: {Name: "LOCAL"},
		5: {Name: "SET"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection": {
		1: {Name: "LOCAL_PROTECTION"},
		2: {Name: "LINK_EXCLUDED"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type": {
		1: {Name: "EXTRA_TRAFFIC"},
		2: {Name: "UNPROTECTED"},
		3: {Name: "SHARED"},
		4: {Name: "ONE_ONE"},
		5: {Name: "PLUS_ONE"},
		6: {Name: "ENHANCED"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags": {
		1: {Name: "INTERNAL"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags": {
		1: {Name: "NUMBERED"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags": {
		1: {Name: "NA"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes": {
		1: {Name: "OVERLOAD"},
		2: {Name: "ATTACHED"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid": {
		1: {Name: "IPV4"},
		2: {Name: "IPV6"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags": {
		1: {Name: "FLOOD"},
		2: {Name: "DOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm": {
		1: {Name: "SPF"},
		2: {Name: "STRICT_SPF"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags": {
		1: {Name: "IPV4_MPLS"},
		2: {Name: "IPV6_MPLS"},
		3: {Name: "IPV6_SR"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType": {
		1: {Name: "TYPE_1"},
		2: {Name: "TYPE_2"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily": {
		1: {Name: "IPV4_UNICAST"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType": {
		1: {Name: "UNSPECIFIED"},
		2: {Name: "INTRA_AREA"},
		4: {Name: "INTER_AREA"},
		6: {Name: "AS_EXTERNAL"},
		8: {Name: "NSSA_EXTERNAL"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope": {
		1: {Name: "LOCAL"},
		2: {Name: "GLOBAL"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType": {
		1: {Name: "ABSOLUTE"},
		2: {Name: "INDEX"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason": {
		1: {Name: "UNKNOWN"},
		2: {Name: "SOFTWARE_RESTART"},
		3: {Name: "SOFTWARE_RELOAD_UPGRADE"},
		4: {Name: "CONTROL_PROCESSOR_SWITCH"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum": {
		1: {Name: "UNKNOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum": {
		1: {Name: "UNKNOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope": {
		1: {Name: "LINK"},
		2: {Name: "AREA"},
		3: {Name: "AS"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType": {
		1: {Name: "POINT_TO_POINT"},
		2: {Name: "MULTI_ACCESS"},
		3: {Name: "UNKNOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum": {
		1: {Name: "UNKNOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum": {
		1: {Name: "UNKNOWN"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode": {
		1: {Name: "RFC1583_COMPATIBLE"},
		2: {Name: "RFC2328_COMPATIBLE"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType": {
		1: {Name: "LINEAR_BACKOFF"},
		2: {Name: "EXPONENTIAL_BACKOFF"},
	},
	"E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status": {
		1: {Name: "ACTIVE"},
		2: {Name: "SUSPENDED"},
	},
	"E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES": {
		1: {Name: "GRACE_IP_INTERFACE_ADDRESS", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "GRACE_PERIOD", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "GRACE_RESTART_REASON", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE": {
		1: {Name: "MAX_METRIC_INCLUDE_STUB", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "MAX_METRIC_INCLUDE_TYPE2_EXTERNAL", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER": {
		1: {Name: "MAX_METRIC_ON_SYSTEM_BOOT", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE": {
		1: {Name: "ADJACENCY_SID", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE": {
		1: {Name: "ERO_METRIC", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "ERO_PATH", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "SID_MPLS_LABEL_BINDING", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE": {
		1: {Name: "EXTENDED_PREFIX_RANGE", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "PREFIX_SID", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "SID_LABEL_BINDING", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE": {
		1: {Name: "IPV4_SEGMENT", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "UNNUMBERED_INTERFACE_SEGMENT", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE": {
		1: {Name: "POINT_TO_POINT_LINK", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "STUB_NETWORK_LINK", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "TRANSIT_NETWORK_LINK", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "VIRTUAL_LINK", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPF_LSA_TYPE": {
		1: {Name: "AS_EXTERNAL_LSA", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "NETWORK_LSA", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "NSSA_AS_EXTERNAL_LSA", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "OSPFV2_AREA_SCOPE_OPAQUE_LSA", DefiningModule: "openconfig-ospf-types"},
		5: {Name: "OSPFV2_AS_SCOPE_OPAQUE_LSA", DefiningModule: "openconfig-ospf-types"},
		6: {Name: "OSPFV2_LINK_SCOPE_OPAQUE_LSA", DefiningModule: "openconfig-ospf-types"},
		7: {Name: "ROUTER_LSA", DefiningModule: "openconfig-ospf-types"},
		8: {Name: "SUMMARY_ASBR_LSA", DefiningModule: "openconfig-ospf-types"},
		9: {Name: "SUMMARY_IP_NETWORK_LSA", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE": {
		1: {Name: "ATTEMPT", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "DOWN", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "EXCHANGE", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "EXSTART", DefiningModule: "openconfig-ospf-types"},
		5: {Name: "FULL", DefiningModule: "openconfig-ospf-types"},
		6: {Name: "INIT", DefiningModule: "openconfig-ospf-types"},
		7: {Name: "LOADING", DefiningModule: "openconfig-ospf-types"},
		8: {Name: "TWO_WAY", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE": {
		1: {Name: "BROADCAST_NETWORK", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "NON_BROADCAST_NETWORK", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "POINT_TO_POINT_NETWORK", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE": {
		1: {Name: "GRACE_LSA", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "OSPFV2_EXTENDED_LINK", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "OSPFV2_EXTENDED_PREFIX", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "ROUTER_INFORMATION", DefiningModule: "openconfig-ospf-types"},
		5: {Name: "TRAFFIC_ENGINEERING", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES": {
		1: {Name: "SR_SID_LABEL_TLV", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE": {
		1: {Name: "TE_LINK_ADMIN_GROUP", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "TE_LINK_ID", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "TE_LINK_LOCAL_IP", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "TE_LINK_MAXIMUM_BANDWIDTH", DefiningModule: "openconfig-ospf-types"},
		5: {Name: "TE_LINK_MAXIMUM_RESERVABLE_BANDWIDTH", DefiningModule: "openconfig-ospf-types"},
		6: {Name: "TE_LINK_METRIC", DefiningModule: "openconfig-ospf-types"},
		7: {Name: "TE_LINK_REMOTE_IP", DefiningModule: "openconfig-ospf-types"},
		8: {Name: "TE_LINK_TYPE", DefiningModule: "openconfig-ospf-types"},
		9: {Name: "TE_LINK_UNRESERVED_BANDWIDTH", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE": {
		1: {Name: "TE_LINK", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "TE_LINK_LOCAL", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "TE_NODE_ATTRIBUTE", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "TE_OPTICAL_NODE_PROPERTY", DefiningModule: "openconfig-ospf-types"},
		5: {Name: "TE_ROUTER_ADDRESS", DefiningModule: "openconfig-ospf-types"},
		6: {Name: "TE_ROUTER_IPV6_ADDRESS", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES": {
		1: {Name: "RI_FUNCTIONAL_CAPABILITIES", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "RI_INFORMATIONAL_CAPABILITIES", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "RI_NODE_ADMIN_TAG", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "RI_SR_ALGORITHM", DefiningModule: "openconfig-ospf-types"},
		5: {Name: "RI_SR_SID_LABEL_RANGE", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_ROUTER_LSA_TYPES": {
		1: {Name: "ROUTER_LSA_P2P", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "ROUTER_LSA_STUB_NETWORK", DefiningModule: "openconfig-ospf-types"},
		3: {Name: "ROUTER_LSA_TRANSIT_NETWORK", DefiningModule: "openconfig-ospf-types"},
		4: {Name: "ROUTER_LSA_VIRTUAL_LINK", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_SR_ALGORITHM": {
		1: {Name: "SPF", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "STRICT_SPF", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigOspfTypes_SrSidType": {
		1: {Name: "LABEL"},
		2: {Name: "SID"},
	},
	"E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE": {
		1: {Name: "NODE_IPV4_LOCAL_ADDRESS", DefiningModule: "openconfig-ospf-types"},
		2: {Name: "NODE_IPV6_LOCAL_ADDRESS", DefiningModule: "openconfig-ospf-types"},
	},
	"E_OpenconfigPacketMatchTypes_ETHERTYPE": {
		1: {Name: "ETHERTYPE_ARP", DefiningModule: "openconfig-packet-match-types"},
		2: {Name: "ETHERTYPE_IPV4", DefiningModule: "openconfig-packet-match-types"},
		3: {Name: "ETHERTYPE_IPV6", DefiningModule: "openconfig-packet-match-types"},
		4: {Name: "ETHERTYPE_LLDP", DefiningModule: "openconfig-packet-match-types"},
		5: {Name: "ETHERTYPE_MPLS", DefiningModule: "openconfig-packet-match-types"},
		6: {Name: "ETHERTYPE_ROCE", DefiningModule: "openconfig-packet-match-types"},
		7: {Name: "ETHERTYPE_VLAN", DefiningModule: "openconfig-packet-match-types"},
	},
	"E_OpenconfigPacketMatchTypes_IP_PROTOCOL": {
		1:  {Name: "IP_AUTH", DefiningModule: "openconfig-packet-match-types"},
		2:  {Name: "IP_GRE", DefiningModule: "openconfig-packet-match-types"},
		3:  {Name: "IP_ICMP", DefiningModule: "openconfig-packet-match-types"},
		4:  {Name: "IP_IGMP", DefiningModule: "openconfig-packet-match-types"},
		5:  {Name: "IP_IN_IP", DefiningModule: "openconfig-packet-match-types"},
		6:  {Name: "IP_L2TP", DefiningModule: "openconfig-packet-match-types"},
		7:  {Name: "IP_PIM", DefiningModule: "openconfig-packet-match-types"},
		8:  {Name: "IP_RSVP", DefiningModule: "openconfig-packet-match-types"},
		9:  {Name: "IP_TCP", DefiningModule: "openconfig-packet-match-types"},
		10: {Name: "IP_UDP", DefiningModule: "openconfig-packet-match-types"},
	},
	"E_OpenconfigPacketMatchTypes_PortNumRange_Enum": {
		1: {Name: "ANY"},
	},
	"E_OpenconfigPacketMatchTypes_TCP_FLAGS": {
		1: {Name: "TCP_ACK", DefiningModule: "openconfig-packet-match-types"},
		2: {Name: "TCP_CWR", DefiningModule: "openconfig-packet-match-types"},
		3: {Name: "TCP_ECE", DefiningModule: "openconfig-packet-match-types"},
		4: {Name: "TCP_FIN", DefiningModule: "openconfig-packet-match-types"},
		5: {Name: "TCP_PSH", DefiningModule: "openconfig-packet-match-types"},
		6: {Name: "TCP_RST", DefiningModule: "openconfig-packet-match-types"},
		7: {Name: "TCP_SYN", DefiningModule: "openconfig-packet-match-types"},
		8: {Name: "TCP_URG", DefiningModule: "openconfig-packet-match-types"},
	},
	"E_OpenconfigPcep_LspControlType": {
		1: {Name: "PCE_DELEGATED"},
		2: {Name: "PCC_CONTROLLED"},
		3: {Name: "PCC_REPORT_ONLY"},
	},
	"E_OpenconfigPcep_PceModeType": {
		1: {Name: "STATELESS"},
		2: {Name: "STATEFUL_PASSIVE"},
		3: {Name: "STATEFUL_ACTIVE"},
	},
	"E_OpenconfigPimTypes_PIM_MODE": {
		1: {Name: "PIM_MODE_DENSE", DefiningModule: "openconfig-pim-types"},
		2: {Name: "PIM_MODE_SPARSE", DefiningModule: "openconfig-pim-types"},
	},
	"E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS": {
		1: {Name: "ACTIVE", DefiningModule: "openconfig-platform-types"},
		2: {Name: "DISABLED", DefiningModule: "openconfig-platform-types"},
		3: {Name: "INACTIVE", DefiningModule: "openconfig-platform-types"},
	},
	"E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON": {
		1: {Name: "REBOOT_CRITICAL_ERROR", DefiningModule: "openconfig-platform-types"},
		2: {Name: "REBOOT_POWER_FAILURE", DefiningModule: "openconfig-platform-types"},
		3: {Name: "REBOOT_USER_INITIATED", DefiningModule: "openconfig-platform-types"},
	},
	"E_OpenconfigPlatformTypes_ComponentRedundantRole": {
		1: {Name: "PRIMARY"},
		2: {Name: "SECONDARY"},
	},
	"E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger": {
		1: {Name: "USER_INITIATED"},
		2: {Name: "SYSTEM_INITIATED"},
	},
	"E_OpenconfigPlatformTypes_FEC_MODE_TYPE": {
		1: {Name: "FEC_AUTO", DefiningModule: "openconfig-platform-types"},
		2: {Name: "FEC_DISABLED", DefiningModule: "openconfig-platform-types"},
		3: {Name: "FEC_ENABLED", DefiningModule: "openconfig-platform-types"},
	},
	"E_OpenconfigPlatformTypes_FEC_STATUS_TYPE": {
		1: {Name: "FEC_STATUS_LOCKED", DefiningModule: "openconfig-platform-types"},
		2: {Name: "FEC_STATUS_UNLOCKED", DefiningModule: "openconfig-platform-types"},
	},
	"E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT": {
		1:  {Name: "BACKPLANE", DefiningModule: "openconfig-platform-types"},
		2:  {Name: "CHASSIS", DefiningModule: "openconfig-platform-types"},
		3:  {Name: "CONTROLLER_CARD", DefiningModule: "openconfig-platform-types"},
		4:  {Name: "CPU", DefiningModule: "openconfig-platform-types"},
		5:  {Name: "FABRIC", DefiningModule: "openconfig-platform-types"},
		6:  {Name: "FAN", DefiningModule: "openconfig-platform-types"},
		7:  {Name: "FRU", DefiningModule: "openconfig-platform-types"},
		8:  {Name: "INTEGRATED_CIRCUIT", DefiningModule: "openconfig-platform-types"},
		9:  {Name: "LINECARD", DefiningModule: "openconfig-platform-types"},
		10: {Name: "OPTICAL_CHANNEL", DefiningModule: "openconfig-transport-types"},
		11: {Name: "PORT", DefiningModule: "openconfig-platform-types"},
		12: {Name: "POWER_SUPPLY", DefiningModule: "openconfig-platform-types"},
		13: {Name: "SENSOR", DefiningModule: "openconfig-platform-types"},
		14: {Name: "STORAGE", DefiningModule: "openconfig-platform-types"},
		15: {Name: "TRANSCEIVER", DefiningModule: "openconfig-platform-types"},
		16: {Name: "WIFI_ACCESS_POINT", DefiningModule: "openconfig-platform-types"},
	},
	"E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT": {
		1: {Name: "BIOS", DefiningModule: "openconfig-platform-types"},
		2: {Name: "BOOT_LOADER", DefiningModule: "openconfig-platform-types"},
		3: {Name: "OPERATING_SYSTEM", DefiningModule: "openconfig-platform-types"},
		4: {Name: "OPERATING_SYSTEM_UPDATE", DefiningModule: "openconfig-platform-types"},
		5: {Name: "SOFTWARE_MODULE", DefiningModule: "openconfig-platform-types"},
	},
	"E_OpenconfigPlatform_Components_Component_Transceiver_State_Present": {
		1: {Name: "PRESENT"},
		2: {Name: "NOT_PRESENT"},
	},
	"E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE": {
		1:  {Name: "BGP", DefiningModule: "openconfig-policy-types"},
		2:  {Name: "DIRECTLY_CONNECTED", DefiningModule: "openconfig-policy-types"},
		3:  {Name: "GRIBI", DefiningModule: "openconfig-policy-types"},
		4:  {Name: "IGMP", DefiningModule: "openconfig-policy-types"},
		5:  {Name: "ISIS", DefiningModule: "openconfig-policy-types"},
		6:  {Name: "LOCAL", DefiningModule: "openconfig-policy-types"},
		7:  {Name: "LOCAL_AGGREGATE", DefiningModule: "openconfig-policy-types"},
		8:  {Name: "OSPF", DefiningModule: "openconfig-policy-types"},
		9:  {Name: "OSPF3", DefiningModule: "openconfig-policy-types"},
		10: {Name: "PCEP", DefiningModule: "openconfig-policy-types"},
		11: {Name: "PIM", DefiningModule: "openconfig-policy-types"},
		12: {Name: "STATIC", DefiningModule: "openconfig-policy-types"},
	},
	"E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType": {
		1: {Name: "ANY"},
		2: {Name: "INVERT"},
	},
	"E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON": {
		1: {Name: "INVALID_AS_LOOP", DefiningModule: "openconfig-rib-bgp-types"},
		2: {Name: "INVALID_CLUSTER_LOOP", DefiningModule: "openconfig-rib-bgp-types"},
		3: {Name: "INVALID_CONFED", DefiningModule: "openconfig-rib-bgp-types"},
		4: {Name: "INVALID_ORIGINATOR", DefiningModule: "openconfig-rib-bgp-types"},
	},
	"E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE": {
		1: {Name: "SRTE_BINDING_SID", DefiningModule: "openconfig-rib-bgp-types"},
		2: {Name: "SRTE_PREFERENCE", DefiningModule: "openconfig-rib-bgp-types"},
		3: {Name: "SRTE_SEGMENT_LIST", DefiningModule: "openconfig-rib-bgp-types"},
		4: {Name: "TUNNEL_COLOR", DefiningModule: "openconfig-rib-bgp-types"},
		5: {Name: "TUNNEL_REMOTE_ENDPOINT", DefiningModule: "openconfig-rib-bgp-types"},
	},
	"E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE": {
		1: {Name: "SRTE_POLICY_TUNNEL", DefiningModule: "openconfig-rib-bgp-types"},
	},
	"E_OpenconfigRoutingPolicy_DefaultPolicyType": {
		1: {Name: "ACCEPT_ROUTE"},
		2: {Name: "REJECT_ROUTE"},
	},
	"E_OpenconfigRoutingPolicy_PolicyResultType": {
		1: {Name: "ACCEPT_ROUTE"},
		2: {Name: "REJECT_ROUTE"},
		3: {Name: "NEXT_STATEMENT"},
	},
	"E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode": {
		1: {Name: "IPV4"},
		2: {Name: "IPV6"},
		3: {Name: "MIXED"},
	},
	"E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode": {
		1: {Name: "INLINE"},
		2: {Name: "REFERENCE"},
	},
	"E_OpenconfigSegmentRoutingTypes_EnlpType": {
		1: {Name: "PUSH_IPV4_EXPLICIT_NULL"},
		2: {Name: "PUSH_IPV6_EXPLICIT_NULL"},
		3: {Name: "PUSH_IPV46_EXPLICIT_NULL"},
		4: {Name: "NO_EXPLICIT_NULL"},
	},
	"E_OpenconfigSegmentRoutingTypes_SrDataplaneType": {
		1: {Name: "MPLS"},
		2: {Name: "IPV6"},
	},
	"E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason": {
		1: {Name: "EMPTY_SL"},
		2: {Name: "ZERO_WEIGHT"},
		3: {Name: "FIRST_SID_UNRESOLVABLE"},
		4: {Name: "OTHER_SID_UNRESOLVABLE"},
		5: {Name: "VERIFICATION_FAIL"},
	},
	"E_OpenconfigSegmentRoutingTypes_SrteProtocolType": {
		11: {Name: "PCEP"},
		21: {Name: "BGP"},
		31: {Name: "CONFIG"},
	},
	"E_OpenconfigSystemLogging_SYSLOG_FACILITY": {
		1:  {Name: "ALL", DefiningModule: "openconfig-system-logging"},
		2:  {Name: "AUDIT", DefiningModule: "openconfig-system-logging"},
		3:  {Name: "AUTH", DefiningModule: "openconfig-system-logging"},
		4:  {Name: "AUTHPRIV", DefiningModule: "openconfig-system-logging"},
		5:  {Name: "CONSOLE", DefiningModule: "openconfig-system-logging"},
		6:  {Name: "KERNEL", DefiningModule: "openconfig-system-logging"},
		7:  {Name: "LOCAL0", DefiningModule: "openconfig-system-logging"},
		8:  {Name: "LOCAL1", DefiningModule: "openconfig-system-logging"},
		9:  {Name: "LOCAL2", DefiningModule: "openconfig-system-logging"},
		10: {Name: "LOCAL3", DefiningModule: "openconfig-system-logging"},
		11: {Name: "LOCAL4", DefiningModule: "openconfig-system-logging"},
		12: {Name: "LOCAL5", DefiningModule: "openconfig-system-logging"},
		13: {Name: "LOCAL6", DefiningModule: "openconfig-system-logging"},
		14: {Name: "LOCAL7", DefiningModule: "openconfig-system-logging"},
		15: {Name: "MAIL", DefiningModule: "openconfig-system-logging"},
		16: {Name: "NTP", DefiningModule: "openconfig-system-logging"},
		17: {Name: "SYSLOG", DefiningModule: "openconfig-system-logging"},
		18: {Name: "SYSTEM_DAEMON", DefiningModule: "openconfig-system-logging"},
		19: {Name: "USER", DefiningModule: "openconfig-system-logging"},
	},
	"E_OpenconfigSystemLogging_SyslogSeverity": {
		1: {Name: "EMERGENCY"},
		2: {Name: "ALERT"},
		3: {Name: "CRITICAL"},
		4: {Name: "ERROR"},
		5: {Name: "WARNING"},
		6: {Name: "NOTICE"},
		7: {Name: "INFORMATIONAL"},
		8: {Name: "DEBUG"},
	},
	"E_OpenconfigSystem_NTP_AUTH_TYPE": {
		1: {Name: "NTP_AUTH_MD5", DefiningModule: "openconfig-system"},
	},
	"E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record": {
		1: {Name: "START_STOP"},
		2: {Name: "STOP"},
	},
	"E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum": {
		1: {Name: "ALL"},
	},
	"E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType": {
		1: {Name: "SERVER"},
		2: {Name: "PEER"},
		3: {Name: "POOL"},
	},
	"E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion": {
		1: {Name: "V2"},
		2: {Name: "V1"},
		3: {Name: "V1_V2"},
	},
	"E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls": {
		1: {Name: "NONE"},
		2: {Name: "LASER_SHUTDOWN"},
		3: {Name: "ETHERNET"},
	},
	"E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType": {
		1: {Name: "LOGICAL_CHANNEL"},
		2: {Name: "OPTICAL_CHANNEL"},
	},
	"E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState": {
		1: {Name: "UP"},
		2: {Name: "DOWN"},
		3: {Name: "TESTING"},
	},
	"E_OpenconfigTransportTypes_AdminStateType": {
		1: {Name: "ENABLED"},
		2: {Name: "DISABLED"},
		3: {Name: "MAINT"},
	},
	"E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE": {
		1: {Name: "MODE_1X100G", DefiningModule: "openconfig-transport-types"},
		2: {Name: "MODE_1X200G", DefiningModule: "openconfig-transport-types"},
		3: {Name: "MODE_1X400G", DefiningModule: "openconfig-transport-types"},
		4: {Name: "MODE_2X100G", DefiningModule: "openconfig-transport-types"},
		5: {Name: "MODE_2X200G", DefiningModule: "openconfig-transport-types"},
		6: {Name: "MODE_3X100G", DefiningModule: "openconfig-transport-types"},
		7: {Name: "MODE_4X100G", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE": {
		1:  {Name: "ETH_1000BASE_LX10", DefiningModule: "openconfig-transport-types"},
		2:  {Name: "ETH_100GBASE_CLR4", DefiningModule: "openconfig-transport-types"},
		3:  {Name: "ETH_100GBASE_CR4", DefiningModule: "openconfig-transport-types"},
		4:  {Name: "ETH_100GBASE_CWDM4", DefiningModule: "openconfig-transport-types"},
		5:  {Name: "ETH_100GBASE_DR", DefiningModule: "openconfig-transport-types"},
		6:  {Name: "ETH_100GBASE_ER4", DefiningModule: "openconfig-transport-types"},
		7:  {Name: "ETH_100GBASE_ER4L", DefiningModule: "openconfig-transport-types"},
		8:  {Name: "ETH_100GBASE_FR", DefiningModule: "openconfig-transport-types"},
		9:  {Name: "ETH_100GBASE_LR4", DefiningModule: "openconfig-transport-types"},
		10: {Name: "ETH_100GBASE_PSM4", DefiningModule: "openconfig-transport-types"},
		11: {Name: "ETH_100GBASE_SR10", DefiningModule: "openconfig-transport-types"},
		12: {Name: "ETH_100GBASE_SR4", DefiningModule: "openconfig-transport-types"},
		13: {Name: "ETH_100G_ACC", DefiningModule: "openconfig-transport-types"},
		14: {Name: "ETH_100G_AOC", DefiningModule: "openconfig-transport-types"},
		15: {Name: "ETH_10GBASE_ER", DefiningModule: "openconfig-transport-types"},
		16: {Name: "ETH_10GBASE_LR", DefiningModule: "openconfig-transport-types"},
		17: {Name: "ETH_10GBASE_LRM", DefiningModule: "openconfig-transport-types"},
		18: {Name: "ETH_10GBASE_SR", DefiningModule: "openconfig-transport-types"},
		19: {Name: "ETH_10GBASE_ZR", DefiningModule: "openconfig-transport-types"},
		20: {Name: "ETH_400GBASE_DR4", DefiningModule: "openconfig-transport-types"},
		21: {Name: "ETH_400GBASE_FR4", DefiningModule: "openconfig-transport-types"},
		22: {Name: "ETH_400GBASE_LR4", DefiningModule: "openconfig-transport-types"},
		23: {Name: "ETH_400GBASE_LR8", DefiningModule: "openconfig-transport-types"},
		24: {Name: "ETH_400GBASE_ZR", DefiningModule: "openconfig-transport-types"},
		25: {Name: "ETH_400GMSA_PSM4", DefiningModule: "openconfig-transport-types"},
		26: {Name: "ETH_40GBASE_CR4", DefiningModule: "openconfig-transport-types"},
		27: {Name: "ETH_40GBASE_ER4", DefiningModule: "openconfig-transport-types"},
		28: {Name: "ETH_40GBASE_LR4", DefiningModule: "openconfig-transport-types"},
		29: {Name: "ETH_40GBASE_PSM4", DefiningModule: "openconfig-transport-types"},
		30: {Name: "ETH_40GBASE_SR4", DefiningModule: "openconfig-transport-types"},
		31: {Name: "ETH_4X10GBASE_LR", DefiningModule: "openconfig-transport-types"},
		32: {Name: "ETH_4X10GBASE_SR", DefiningModule: "openconfig-transport-types"},
		33: {Name: "ETH_UNDEFINED", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE": {
		1: {Name: "AOC_CONNECTOR", DefiningModule: "openconfig-transport-types"},
		2: {Name: "DAC_CONNECTOR", DefiningModule: "openconfig-transport-types"},
		3: {Name: "LC_CONNECTOR", DefiningModule: "openconfig-transport-types"},
		4: {Name: "MPO_CONNECTOR", DefiningModule: "openconfig-transport-types"},
		5: {Name: "SC_CONNECTOR", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL": {
		1: {Name: "AMP", DefiningModule: "openconfig-transport-types"},
		2: {Name: "BMP", DefiningModule: "openconfig-transport-types"},
		3: {Name: "CBR", DefiningModule: "openconfig-transport-types"},
		4: {Name: "GFP_F", DefiningModule: "openconfig-transport-types"},
		5: {Name: "GFP_T", DefiningModule: "openconfig-transport-types"},
		6: {Name: "GMP", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE": {
		1: {Name: "PROT_ETHERNET", DefiningModule: "openconfig-transport-types"},
		2: {Name: "PROT_OTN", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_LoopbackModeType": {
		1: {Name: "NONE"},
		2: {Name: "FACILITY"},
		3: {Name: "TERMINAL"},
		4: {Name: "ASIC_PHY_LOCAL"},
		5: {Name: "ASIC_PHY_REMOTE"},
		6: {Name: "ASIC_MAC_LOCAL"},
		7: {Name: "ASIC_MAC_REMOTE"},
	},
	"E_OpenconfigTransportTypes_OTN_APPLICATION_CODE": {
		1: {Name: "OTN_UNDEFINED", DefiningModule: "openconfig-transport-types"},
		2: {Name: "P1L1_2D1", DefiningModule: "openconfig-transport-types"},
		3: {Name: "P1L1_2D2", DefiningModule: "openconfig-transport-types"},
		4: {Name: "P1S1_2D2", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_SONET_APPLICATION_CODE": {
		1: {Name: "SONET_UNDEFINED", DefiningModule: "openconfig-transport-types"},
		2: {Name: "VSR2000_3R2", DefiningModule: "openconfig-transport-types"},
		3: {Name: "VSR2000_3R3", DefiningModule: "openconfig-transport-types"},
		4: {Name: "VSR2000_3R5", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE": {
		1:  {Name: "CFP", DefiningModule: "openconfig-transport-types"},
		2:  {Name: "CFP2", DefiningModule: "openconfig-transport-types"},
		3:  {Name: "CFP2_ACO", DefiningModule: "openconfig-transport-types"},
		4:  {Name: "CFP4", DefiningModule: "openconfig-transport-types"},
		5:  {Name: "CPAK", DefiningModule: "openconfig-transport-types"},
		6:  {Name: "CSFP", DefiningModule: "openconfig-transport-types"},
		7:  {Name: "DSFP", DefiningModule: "openconfig-transport-types"},
		8:  {Name: "NON_PLUGGABLE", DefiningModule: "openconfig-transport-types"},
		9:  {Name: "OSFP", DefiningModule: "openconfig-transport-types"},
		10: {Name: "OTHER", DefiningModule: "openconfig-transport-types"},
		11: {Name: "QSFP", DefiningModule: "openconfig-transport-types"},
		12: {Name: "QSFP28", DefiningModule: "openconfig-transport-types"},
		13: {Name: "QSFP28_DD", DefiningModule: "openconfig-transport-types"},
		14: {Name: "QSFP56", DefiningModule: "openconfig-transport-types"},
		15: {Name: "QSFP56_DD", DefiningModule: "openconfig-transport-types"},
		16: {Name: "QSFP56_DD_TYPE1", DefiningModule: "openconfig-transport-types"},
		17: {Name: "QSFP56_DD_TYPE2", DefiningModule: "openconfig-transport-types"},
		18: {Name: "QSFP_PLUS", DefiningModule: "openconfig-transport-types"},
		19: {Name: "SFP", DefiningModule: "openconfig-transport-types"},
		20: {Name: "SFP28", DefiningModule: "openconfig-transport-types"},
		21: {Name: "SFP56", DefiningModule: "openconfig-transport-types"},
		22: {Name: "SFP_DD", DefiningModule: "openconfig-transport-types"},
		23: {Name: "SFP_PLUS", DefiningModule: "openconfig-transport-types"},
		24: {Name: "X2", DefiningModule: "openconfig-transport-types"},
		25: {Name: "XFP", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE": {
		1: {Name: "TYPE_DIGITAL_COHERENT_OPTIC", DefiningModule: "openconfig-transport-types"},
		2: {Name: "TYPE_STANDARD_OPTIC", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE": {
		1:  {Name: "PROT_100GE", DefiningModule: "openconfig-transport-types"},
		2:  {Name: "PROT_100G_MLG", DefiningModule: "openconfig-transport-types"},
		3:  {Name: "PROT_10GE_LAN", DefiningModule: "openconfig-transport-types"},
		4:  {Name: "PROT_10GE_WAN", DefiningModule: "openconfig-transport-types"},
		5:  {Name: "PROT_1GE", DefiningModule: "openconfig-transport-types"},
		6:  {Name: "PROT_400GE", DefiningModule: "openconfig-transport-types"},
		7:  {Name: "PROT_40GE", DefiningModule: "openconfig-transport-types"},
		8:  {Name: "PROT_800GE", DefiningModule: "openconfig-transport-types"},
		9:  {Name: "PROT_FLEXO", DefiningModule: "openconfig-transport-types"},
		10: {Name: "PROT_OC192", DefiningModule: "openconfig-transport-types"},
		11: {Name: "PROT_OC48", DefiningModule: "openconfig-transport-types"},
		12: {Name: "PROT_OC768", DefiningModule: "openconfig-transport-types"},
		13: {Name: "PROT_ODU2", DefiningModule: "openconfig-transport-types"},
		14: {Name: "PROT_ODU2E", DefiningModule: "openconfig-transport-types"},
		15: {Name: "PROT_ODU3", DefiningModule: "openconfig-transport-types"},
		16: {Name: "PROT_ODU4", DefiningModule: "openconfig-transport-types"},
		17: {Name: "PROT_ODUCN", DefiningModule: "openconfig-transport-types"},
		18: {Name: "PROT_ODUFLEX_CBR", DefiningModule: "openconfig-transport-types"},
		19: {Name: "PROT_ODUFLEX_GFP", DefiningModule: "openconfig-transport-types"},
		20: {Name: "PROT_OTSIG", DefiningModule: "openconfig-transport-types"},
		21: {Name: "PROT_OTU1E", DefiningModule: "openconfig-transport-types"},
		22: {Name: "PROT_OTU2", DefiningModule: "openconfig-transport-types"},
		23: {Name: "PROT_OTU2E", DefiningModule: "openconfig-transport-types"},
		24: {Name: "PROT_OTU3", DefiningModule: "openconfig-transport-types"},
		25: {Name: "PROT_OTU4", DefiningModule: "openconfig-transport-types"},
		26: {Name: "PROT_OTUCN", DefiningModule: "openconfig-transport-types"},
		27: {Name: "PROT_STM16", DefiningModule: "openconfig-transport-types"},
		28: {Name: "PROT_STM256", DefiningModule: "openconfig-transport-types"},
		29: {Name: "PROT_STM64", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE": {
		1:  {Name: "TRIB_RATE_1000G", DefiningModule: "openconfig-transport-types"},
		2:  {Name: "TRIB_RATE_100G", DefiningModule: "openconfig-transport-types"},
		3:  {Name: "TRIB_RATE_1050G", DefiningModule: "openconfig-transport-types"},
		4:  {Name: "TRIB_RATE_10G", DefiningModule: "openconfig-transport-types"},
		5:  {Name: "TRIB_RATE_1100G", DefiningModule: "openconfig-transport-types"},
		6:  {Name: "TRIB_RATE_1150G", DefiningModule: "openconfig-transport-types"},
		7:  {Name: "TRIB_RATE_1200G", DefiningModule: "openconfig-transport-types"},
		8:  {Name: "TRIB_RATE_1250G", DefiningModule: "openconfig-transport-types"},
		9:  {Name: "TRIB_RATE_1300G", DefiningModule: "openconfig-transport-types"},
		10: {Name: "TRIB_RATE_1350G", DefiningModule: "openconfig-transport-types"},
		11: {Name: "TRIB_RATE_1400G", DefiningModule: "openconfig-transport-types"},
		12: {Name: "TRIB_RATE_1450G", DefiningModule: "openconfig-transport-types"},
		13: {Name: "TRIB_RATE_1500G", DefiningModule: "openconfig-transport-types"},
		14: {Name: "TRIB_RATE_150G", DefiningModule: "openconfig-transport-types"},
		15: {Name: "TRIB_RATE_1550G", DefiningModule: "openconfig-transport-types"},
		16: {Name: "TRIB_RATE_1600G", DefiningModule: "openconfig-transport-types"},
		17: {Name: "TRIB_RATE_1650G", DefiningModule: "openconfig-transport-types"},
		18: {Name: "TRIB_RATE_1700G", DefiningModule: "openconfig-transport-types"},
		19: {Name: "TRIB_RATE_1750G", DefiningModule: "openconfig-transport-types"},
		20: {Name: "TRIB_RATE_1800G", DefiningModule: "openconfig-transport-types"},
		21: {Name: "TRIB_RATE_1850G", DefiningModule: "openconfig-transport-types"},
		22: {Name: "TRIB_RATE_1900G", DefiningModule: "openconfig-transport-types"},
		23: {Name: "TRIB_RATE_1950G", DefiningModule: "openconfig-transport-types"},
		24: {Name: "TRIB_RATE_1G", DefiningModule: "openconfig-transport-types"},
		25: {Name: "TRIB_RATE_2.5G", DefiningModule: "openconfig-transport-types"},
		26: {Name: "TRIB_RATE_2000G", DefiningModule: "openconfig-transport-types"},
		27: {Name: "TRIB_RATE_200G", DefiningModule: "openconfig-transport-types"},
		28: {Name: "TRIB_RATE_2050G", DefiningModule: "openconfig-transport-types"},
		29: {Name: "TRIB_RATE_2100G", DefiningModule: "openconfig-transport-types"},
		30: {Name: "TRIB_RATE_2150G", DefiningModule: "openconfig-transport-types"},
		31: {Name: "TRIB_RATE_2200G", DefiningModule: "openconfig-transport-types"},
		32: {Name: "TRIB_RATE_2250G", DefiningModule: "openconfig-transport-types"},
		33: {Name: "TRIB_RATE_2300G", DefiningModule: "openconfig-transport-types"},
		34: {Name: "TRIB_RATE_2350G", DefiningModule: "openconfig-transport-types"},
		35: {Name: "TRIB_RATE_2400G", DefiningModule: "openconfig-transport-types"},
		36: {Name: "TRIB_RATE_2450G", DefiningModule: "openconfig-transport-types"},
		37: {Name: "TRIB_RATE_2500G", DefiningModule: "openconfig-transport-types"},
		38: {Name: "TRIB_RATE_250G", DefiningModule: "openconfig-transport-types"},
		39: {Name: "TRIB_RATE_2550G", DefiningModule: "openconfig-transport-types"},
		40: {Name: "TRIB_RATE_2600G", DefiningModule: "openconfig-transport-types"},
		41: {Name: "TRIB_RATE_2650G", DefiningModule: "openconfig-transport-types"},
		42: {Name: "TRIB_RATE_2700G", DefiningModule: "openconfig-transport-types"},
		43: {Name: "TRIB_RATE_2750G", DefiningModule: "openconfig-transport-types"},
		44: {Name: "TRIB_RATE_2800G", DefiningModule: "openconfig-transport-types"},
		45: {Name: "TRIB_RATE_2850G", DefiningModule: "openconfig-transport-types"},
		46: {Name: "TRIB_RATE_2900G", DefiningModule: "openconfig-transport-types"},
		47: {Name: "TRIB_RATE_2950G", DefiningModule: "openconfig-transport-types"},
		48: {Name: "TRIB_RATE_3000G", DefiningModule: "openconfig-transport-types"},
		49: {Name: "TRIB_RATE_300G", DefiningModule: "openconfig-transport-types"},
		50: {Name: "TRIB_RATE_3050G", DefiningModule: "openconfig-transport-types"},
		51: {Name: "TRIB_RATE_3100G", DefiningModule: "openconfig-transport-types"},
		52: {Name: "TRIB_RATE_3150G", DefiningModule: "openconfig-transport-types"},
		53: {Name: "TRIB_RATE_3200G", DefiningModule: "openconfig-transport-types"},
		54: {Name: "TRIB_RATE_350G", DefiningModule: "openconfig-transport-types"},
		55: {Name: "TRIB_RATE_400G", DefiningModule: "openconfig-transport-types"},
		56: {Name: "TRIB_RATE_40G", DefiningModule: "openconfig-transport-types"},
		57: {Name: "TRIB_RATE_450G", DefiningModule: "openconfig-transport-types"},
		58: {Name: "TRIB_RATE_500G", DefiningModule: "openconfig-transport-types"},
		59: {Name: "TRIB_RATE_550G", DefiningModule: "openconfig-transport-types"},
		60: {Name: "TRIB_RATE_600G", DefiningModule: "openconfig-transport-types"},
		61: {Name: "TRIB_RATE_650G", DefiningModule: "openconfig-transport-types"},
		62: {Name: "TRIB_RATE_700G", DefiningModule: "openconfig-transport-types"},
		63: {Name: "TRIB_RATE_750G", DefiningModule: "openconfig-transport-types"},
		64: {Name: "TRIB_RATE_800G", DefiningModule: "openconfig-transport-types"},
		65: {Name: "TRIB_RATE_850G", DefiningModule: "openconfig-transport-types"},
		66: {Name: "TRIB_RATE_900G", DefiningModule: "openconfig-transport-types"},
		67: {Name: "TRIB_RATE_950G", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY": {
		1: {Name: "TRIB_SLOT_1.25G", DefiningModule: "openconfig-transport-types"},
		2: {Name: "TRIB_SLOT_2.5G", DefiningModule: "openconfig-transport-types"},
		3: {Name: "TRIB_SLOT_5G", DefiningModule: "openconfig-transport-types"},
	},
	"E_OpenconfigTypes_ADDRESS_FAMILY": {
		1: {Name: "IPV4", DefiningModule: "openconfig-types"},
		2: {Name: "IPV6", DefiningModule: "openconfig-types"},
		3: {Name: "L2_ETHERNET", DefiningModule: "openconfig-types"},
		4: {Name: "MPLS", DefiningModule: "openconfig-types"},
	},
	"E_OpenconfigVlanTypes_TPID_TYPES": {
		1: {Name: "TPID_0X8100", DefiningModule: "openconfig-vlan-types"},
		2: {Name: "TPID_0X88A8", DefiningModule: "openconfig-vlan-types"},
		3: {Name: "TPID_0X9100", DefiningModule: "openconfig-vlan-types"},
		4: {Name: "TPID_0X9200", DefiningModule: "openconfig-vlan-types"},
		5: {Name: "TPID_ANY", DefiningModule: "openconfig-vlan-types"},
	},
	"E_OpenconfigVlanTypes_VlanModeType": {
		1: {Name: "ACCESS"},
		2: {Name: "TRUNK"},
	},
	"E_OpenconfigVlanTypes_VlanStackAction": {
		1: {Name: "PUSH"},
		2: {Name: "POP"},
		3: {Name: "SWAP"},
	},
}

var (
	// ySchema is a byte slice contain a gzip compressed representation of the
	// YANG schema from which the Go code was generated. When uncompressed the
	// contents of the byte slice is a JSON document containing an object, keyed
	// on the name of the generated struct, and containing the JSON marshalled
	// contents of a goyang yang.Entry struct, which defines the schema for the
	// fields within the struct.
	ySchema = []byte{
		0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7b, 0x6f, 0x9b, 0x58,
		0xd7, 0x3e, 0x8e, 0xff, 0xdf, 0x57, 0x81, 0xac, 0x47, 0x9a, 0x56, 0xaa, 0x9b, 0xc4, 0x71, 0x9c,
		0x26, 0xd2, 0xad, 0x9f, 0x88, 0x4d, 0x12, 0x3e, 0x63, 0x83, 0x6f, 0x4c, 0x7a, 0xb7, 0x4f, 0x9b,
		0x07, 0x51, 0xbc, 0xdd, 0xa0, 0x71, 0xb0, 0x6f, 0xc0, 0x9d, 0xe6, 0x37, 0xcd, 0x7b, 0xff, 0x0a,
		0x7c, 0x3e, 0x1b, 0x58, 0x1b, 0x63, 0x7c, 0x55, 0x93, 0x89, 0xe3, 0xc3, 0x06, 0x5f, 0x7b, 0x1d,
		0xae, 0xb5, 0xf6, 0x5e, 0x6b, 0xff, 0xf3, 0x46, 0x10, 0x04, 0xa1, 0xa0, 0x98, 0xcf, 0xac, 0x70,
		0x2d, 0x14, 0xda, 0xec, 0xa7, 0x6d, 0xb1, 0xc2, 0xfb, 0xe1, 0xb3, 0x7f, 0xda, 0x4e, 0xbb, 0x70,
		0x2d, 0x9c, 0x8d, 0xfe, 0xac, 0xf6, 0x9c, 0x8e, 0xfd, 0xa3, 0x70, 0x2d, 0x9c, 0x8e, 0x9e, 0xa8,
		0xd9, 0x6e, 0xe1, 0x5a, 0x18, 0x0e, 0x11, 0x3e, 0x61, 0x5a, 0xdd, 0xb9, 0x27, 0xe6, 0xc6, 0x0e,
		0x5e, 0x7c, 0x3f, 0xff, 0xd2, 0xfc, 0x05, 0x26, 0x4f, 0x2f, 0x5e, 0x68, 0xf2, 0x42, 0xd3, 0x65,
		0x1d, 0xfb, 0xd7, 0xd2, 0x25, 0xe6, 0x2e, 0xd3, 0xb3, 0x8a, 0xcb, 0x57, 0x0a, 0xdf, 0xd1, 0xea,
		0x0d, 0x5c, 0x8b, 0xad, 0xfc, 0xf4, 0xf0, 0x6e, 0xd8, 0xcb, 0xdf, 0x3d, 0x37, 0xb8, 0xa1, 0x42,
		0x7f, 0x78, 0xa1, 0xf7, 0xab, 0xdf, 0x78, 0x6f, 0x7a, 0xa2, 0xfb, 0x63, 0xf0, 0xcc, 0x1c, 0xbf,
		0x70, 0x2d, 0xf8, 0xee, 0x80, 0xad, 0x79, 0xe3, 0xcc, 0xbb, 0xc6, 0xf7, 0xb5, 0xf4, 0xc6, 0xd7,
		0xb9, 0x67, 0x5e, 0x17, 0xbe, 0xf1, 0x22, 0xc4, 0xb3, 0x50, 0x17, 0x3d, 0xe6, 0x7b, 0xeb, 0xbf,
		0xce, 0x0c, 0xee, 0xc3, 0x77, 0xae, 0xb9, 0xc9, 0xd5, 0x93, 0xb0, 0x75, 0x32, 0x76, 0x99, 0x94,
		0xdd, 0x27, 0x67, 0xd7, 0x49, 0x8a, 0x3c, 0x59, 0x91, 0x27, 0x2d, 0xd2, 0xe4, 0xad, 0x9e, 0xc4,
		0x35, 0x93, 0xb9, 0x75, 0x52, 0x17, 0x27, 0x77, 0x3b, 0x0a, 0x0b, 0x73, 0xbc, 0x0d, 0x83, 0xcd,
		0x53, 0xbd, 0xf3, 0x94, 0x47, 0x99, 0xfa, 0xe8, 0x22, 0x10, 0x55, 0x14, 0x62, 0x8b, 0x44, 0x6c,
		0xd1, 0x88, 0x25, 0x22, 0x9b, 0x45, 0x65, 0x8b, 0xc8, 0xec, 0x2c, 0x3a, 0x73, 0x22, 0xc4, 0x1c,
		0xdf, 0xb5, 0x99, 0xb7, 0x3b, 0x82, 0xb3, 0xe2, 0x34, 0xfe, 0xf0, 0x8e, 0x50, 0xec, 0x26, 0x5a,
		0x91, 0x45, 0x2c, 0x8e, 0xa8, 0xc5, 0x17, 0xb9, 0xb8, 0xa2, 0x97, 0x58, 0x04, 0x13, 0x8b, 0x62,
		0x22, 0x91, 0xdc, 0x4d, 0x34, 0x77, 0x14, 0xd1, 0xc8, 0xa2, 0xba, 0x24, 0xb2, 0x2f, 0xd1, 0x71,
		0x5f, 0x14, 0xdc, 0x97, 0xa8, 0xb8, 0x47, 0x13, 0xdf, 0xd8, 0x62, 0x9c, 0x44, 0x9c, 0x93, 0x8b,
		0x75, 0x52, 0xf1, 0x26, 0x13, 0x73, 0x32, 0x71, 0x27, 0x11, 0xfb, 0x68, 0xe2, 0x1f, 0x51, 0x0d,
		0x62, 0xab, 0xc3, 0x8c, 0x5a, 0xf8, 0x76, 0xcf, 0xf1, 0xe2, 0xcf, 0xd6, 0x54, 0x39, 0x86, 0x03,
		0xc5, 0x84, 0x38, 0x9e, 0x8a, 0x24, 0x56, 0x15, 0x0a, 0x95, 0xa1, 0x53, 0x1d, 0x2a, 0x15, 0x22,
		0x57, 0x25, 0x72, 0x95, 0x22, 0x55, 0xad, 0x78, 0x2a, 0x16, 0x53, 0xd5, 0x12, 0xab, 0xdc, 0x64,
		0x00, 0x6b, 0x2c, 0xb3, 0x09, 0x27, 0x79, 0x2c, 0x76, 0xa3, 0xf1, 0x12, 0x4e, 0x48, 0x32, 0x45,
		0x24, 0x53, 0x48, 0x4a, 0xc5, 0xa4, 0x57, 0x50, 0x6a, 0x45, 0xe5, 0xa6, 0xb0, 0xdc, 0x14, 0x97,
		0x8b, 0x02, 0x27, 0x53, 0xe4, 0x84, 0x0a, 0x4d, 0xa6, 0xd8, 0x93, 0x81, 0x3a, 0x3d, 0xf7, 0x6f,
		0xd3, 0x6d, 0xdb, 0xce, 0x8f, 0xe2, 0xd0, 0x3b, 0xd2, 0xc9, 0xc9, 0x58, 0x92, 0x97, 0x2f, 0x41,
		0x34, 0xad, 0x23, 0x33, 0x70, 0x4a, 0x34, 0x1c, 0x95, 0x39, 0xe0, 0x61, 0x16, 0xf8, 0x99, 0x07,
		0x5e, 0x66, 0x82, 0xbb, 0xb9, 0xe0, 0x6e, 0x36, 0xb8, 0x9a, 0x0f, 0x1a, 0x33, 0x42, 0x64, 0x4e,
		0x26, 0xdf, 0xb4, 0x61, 0x3a, 0x6d, 0xd3, 0xef, 0x85, 0x01, 0xe8, 0x19, 0xd1, 0x98, 0xfa, 0x4b,
		0x9f, 0xf1, 0xd1, 0x01, 0xbb, 0xcd, 0x1c, 0xdf, 0xf6, 0x5f, 0x5c, 0xd6, 0xa1, 0x54, 0x84, 0x31,
		0xbb, 0xb8, 0x20, 0x1c, 0x53, 0x1e, 0xdd, 0xea, 0x8d, 0xe9, 0x71, 0x50, 0xb1, 0x31, 0x20, 0xb7,
		0xaa, 0xf6, 0x1f, 0x51, 0xab, 0xc9, 0xca, 0x9d, 0x21, 0x56, 0x75, 0x59, 0x55, 0xa8, 0x55, 0xed,
		0x93, 0xd9, 0x1d, 0x84, 0xe9, 0xb4, 0xaf, 0xa4, 0xe3, 0x06, 0xff, 0xfe, 0x21, 0x1f, 0x71, 0x0e,
		0x1a, 0xb1, 0x5a, 0x95, 0x9a, 0x7a, 0x81, 0xfc, 0x22, 0xaf, 0xef, 0x0f, 0x0d, 0x89, 0x9a, 0xa6,
		0x36, 0x81, 0x83, 0x50, 0xd0, 0xa4, 0xff, 0x27, 0x55, 0x79, 0x48, 0x04, 0xe9, 0x88, 0x8f, 0x59,
		0xf3, 0x34, 0x6f, 0x32, 0x20, 0x29, 0x85, 0x6e, 0x8f, 0x1f, 0x5d, 0x9d, 0x19, 0x9b, 0xc8, 0x03,
		0xd6, 0x58, 0xc7, 0x1c, 0x74, 0x7d, 0x52, 0xb3, 0x59, 0xa8, 0xab, 0x77, 0x86, 0xa2, 0x2a, 0x12,
		0x8d, 0x00, 0x3f, 0x82, 0x92, 0x83, 0x92, 0x83, 0x92, 0x67, 0x90, 0x92, 0x83, 0x3e, 0xa7, 0x46,
		0x9f, 0x03, 0x93, 0x0a, 0xde, 0xbc, 0x8c, 0x09, 0x9d, 0x9b, 0x39, 0x6c, 0xc6, 0x18, 0x60, 0xd1,
		0xfa, 0xd2, 0xaa, 0xab, 0x77, 0x60, 0x8d, 0xa9, 0xb3, 0xc6, 0xbd, 0xa6, 0x5b, 0x45, 0xc7, 0xe9,
		0xf9, 0x26, 0x19, 0xdf, 0x2c, 0x78, 0xd6, 0x13, 0x7b, 0x36, 0xfb, 0xa6, 0xff, 0x14, 0xc8, 0xd5,
		0x49, 0xaf, 0xcf, 0x9c, 0xe1, 0xca, 0x48, 0xe0, 0xc9, 0x4e, 0x46, 0x3f, 0xe1, 0x9e, 0xb5, 0xf1,
		0x83, 0x93, 0x99, 0x1d, 0x29, 0x93, 0xc7, 0x2f, 0x27, 0xa3, 0x15, 0xcd, 0x13, 0x92, 0x75, 0x95,
		0xe1, 0xad, 0xf9, 0xee, 0xc0, 0xf2, 0x9d, 0x91, 0xc8, 0xab, 0x93, 0x3b, 0x13, 0xad, 0xae, 0x31,
		0xfa, 0x69, 0x31, 0xdf, 0x1b, 0xfd, 0x0e, 0x7e, 0x49, 0xc3, 0xbb, 0x1a, 0x3f, 0x7c, 0x31, 0xc4,
		0xe1, 0x4d, 0x19, 0x23, 0xf6, 0xf6, 0x66, 0x3f, 0xf3, 0x9e, 0x60, 0xce, 0x0b, 0x9e, 0x6f, 0xfa,
		0x8c, 0x6e, 0xd5, 0x6b, 0x38, 0x5c, 0xc6, 0x16, 0xbd, 0x4a, 0x58, 0xf4, 0xca, 0x00, 0x65, 0xc6,
		0xa2, 0x57, 0x84, 0x38, 0x1a, 0x8b, 0x5e, 0x88, 0xb0, 0x11, 0x61, 0x23, 0xc2, 0xa6, 0x8d, 0xb0,
		0xb1, 0xe8, 0x85, 0x45, 0xaf, 0x7c, 0x06, 0xef, 0x58, 0xf4, 0xc2, 0xa2, 0xd7, 0x3c, 0x0e, 0x58,
		0xf4, 0xda, 0x53, 0xfa, 0x02, 0x8b, 0x5e, 0x14, 0x83, 0x62, 0xd1, 0x0b, 0x94, 0x1c, 0x94, 0x1c,
		0x8b, 0x5e, 0xa0, 0xcf, 0x64, 0x80, 0x60, 0xd1, 0x6b, 0x35, 0x26, 0x58, 0xf4, 0xc2, 0xa2, 0xd7,
		0xde, 0x59, 0x23, 0x16, 0xbd, 0x36, 0x2d, 0x7a, 0x51, 0x2c, 0xab, 0x08, 0xc4, 0x6b, 0x5e, 0xad,
		0xf0, 0x9e, 0xf6, 0xb5, 0xe4, 0x95, 0x6a, 0x71, 0x19, 0x91, 0x7c, 0x90, 0xcb, 0x45, 0x21, 0xd1,
		0xc2, 0x1f, 0x95, 0x24, 0xc4, 0x93, 0x81, 0xe8, 0x33, 0x18, 0x63, 0xf6, 0x92, 0x56, 0xf5, 0xd1,
		0x54, 0xf3, 0xa1, 0x9c, 0x96, 0x47, 0xd8, 0x83, 0x72, 0x5a, 0x8e, 0x16, 0x2f, 0x71, 0x39, 0x6d,
		0x9b, 0x79, 0x96, 0x6b, 0xf7, 0x49, 0x7c, 0xea, 0x4c, 0xcb, 0xaa, 0xe9, 0xa0, 0x34, 0x7b, 0x0c,
		0x4e, 0x51, 0x58, 0xbb, 0x87, 0x4c, 0x05, 0xf6, 0x18, 0x64, 0x80, 0xf4, 0x92, 0x65, 0x1e, 0x66,
		0x36, 0xff, 0xb8, 0xb6, 0x43, 0xb2, 0x35, 0x6b, 0xec, 0x30, 0x3f, 0x1e, 0xe2, 0x8e, 0x2a, 0xf6,
		0xdf, 0x01, 0x73, 0x2c, 0x56, 0xb4, 0xdb, 0x84, 0xfb, 0xaa, 0x66, 0x06, 0x85, 0xe5, 0x83, 0xe5,
		0x83, 0xe5, 0xcb, 0x94, 0xe5, 0x1b, 0xd8, 0x8e, 0x7f, 0x5e, 0x22, 0xb4, 0x7c, 0x97, 0x04, 0x43,
		0x69, 0xa6, 0xf3, 0x83, 0x91, 0x25, 0x25, 0x09, 0x33, 0xd4, 0x0d, 0xdb, 0xa1, 0xcf, 0xf2, 0x86,
		0x39, 0x58, 0xba, 0xa5, 0xa4, 0xc9, 0xb8, 0xb7, 0xee, 0x30, 0xd8, 0xae, 0xd9, 0x3f, 0xec, 0xb0,
		0x05, 0x27, 0xf5, 0x05, 0x14, 0xf6, 0xc3, 0xf4, 0xed, 0x9f, 0xc1, 0xbd, 0x77, 0xcc, 0xae, 0xc7,
		0xe8, 0x72, 0x7b, 0x84, 0x19, 0xfa, 0x86, 0xf9, 0x8b, 0xdf, 0x94, 0x95, 0x4b, 0x57, 0xe5, 0xab,
		0xca, 0x65, 0xe9, 0xea, 0x02, 0x73, 0x47, 0x62, 0x20, 0xe9, 0x46, 0x79, 0x44, 0x7e, 0x6f, 0x1f,
		0xf9, 0xbd, 0xc4, 0x45, 0x0e, 0x14, 0xe9, 0xbd, 0x24, 0x45, 0x0d, 0xe9, 0x64, 0xf7, 0x6c, 0xa7,
		0x3f, 0xf0, 0x8b, 0xb6, 0xe3, 0x33, 0xb7, 0x63, 0x26, 0x69, 0x72, 0x38, 0x59, 0x33, 0x5d, 0x18,
		0x10, 0xf9, 0x3e, 0xe4, 0xfb, 0x90, 0xef, 0xdb, 0x65, 0x00, 0xb4, 0xcf, 0x43, 0xac, 0x8b, 0x58,
		0x37, 0x7b, 0xb1, 0x6e, 0x66, 0x97, 0xb6, 0x17, 0x5c, 0x6d, 0xb6, 0xea, 0x3a, 0xe5, 0xe0, 0xe6,
		0xe4, 0xf1, 0xbd, 0x1d, 0x70, 0x79, 0xe7, 0x04, 0xdf, 0xa2, 0xcb, 0x3a, 0x74, 0xd6, 0x79, 0x7e,
		0x58, 0x18, 0xe9, 0x5d, 0x8c, 0xb4, 0xdd, 0x81, 0x8d, 0xe6, 0x60, 0xa3, 0xed, 0x0e, 0x8a, 0x3d,
		0x69, 0x39, 0x18, 0x1f, 0x2e, 0x46, 0xac, 0xee, 0xe4, 0x6a, 0xcf, 0x43, 0xfd, 0xb9, 0x99, 0x01,
		0x5e, 0xe6, 0x80, 0xbb, 0x59, 0xe0, 0x6e, 0x1e, 0x78, 0x9a, 0x09, 0xe2, 0xe4, 0x1c, 0x55, 0xf9,
		0x09, 0x91, 0xf9, 0x58, 0xe6, 0x0c, 0xfc, 0xb6, 0x62, 0x27, 0xcd, 0xb0, 0x6c, 0x33, 0x2e, 0xd4,
		0x79, 0x5e, 0x6a, 0x23, 0xc3, 0xd3, 0xd8, 0x70, 0x37, 0x3a, 0xbc, 0x8d, 0x4f, 0x6a, 0x46, 0x28,
		0x35, 0x63, 0x94, 0x86, 0x51, 0xa2, 0x35, 0x4e, 0xc4, 0x46, 0x6a, 0x02, 0x00, 0x79, 0xb9, 0xcb,
		0x92, 0xb4, 0x77, 0x99, 0xd9, 0xa1, 0x2d, 0x79, 0x59, 0x62, 0x2e, 0x97, 0x1c, 0xc6, 0x6e, 0x4e,
		0x22, 0xea, 0x40, 0x2c, 0xae, 0x27, 0x06, 0xd2, 0x5b, 0x7c, 0x62, 0xf4, 0x77, 0x18, 0xde, 0xbe,
		0xc9, 0xa6, 0xe0, 0x50, 0x2e, 0x3c, 0x7a, 0x83, 0xef, 0x29, 0xf8, 0xa3, 0xb9, 0xab, 0xc0, 0x25,
		0xc1, 0x25, 0xc1, 0x25, 0xc1, 0x25, 0xc1, 0x25, 0xed, 0xe8, 0x92, 0xbe, 0x4e, 0x5d, 0xd2, 0xbf,
		0xac, 0x81, 0xeb, 0x32, 0xc7, 0x7f, 0xfb, 0xee, 0xe4, 0xc3, 0x87, 0x93, 0xc9, 0x3b, 0x1e, 0x47,
		0x1f, 0x99, 0xb5, 0xb3, 0xde, 0x8a, 0xe7, 0x26, 0x23, 0xb7, 0xd9, 0xaf, 0xcc, 0x7a, 0xb7, 0x4c,
		0x45, 0x7f, 0xd2, 0x2f, 0x9f, 0xb6, 0xf0, 0x94, 0x5f, 0x22, 0xa1, 0x67, 0x15, 0xd9, 0x2f, 0xff,
		0xda, 0x67, 0x5d, 0xf6, 0xcc, 0x7c, 0xf7, 0xa5, 0xd8, 0x73, 0x8a, 0xd6, 0x53, 0xb8, 0x49, 0x8d,
		0x6b, 0x72, 0x21, 0xdc, 0x99, 0xc3, 0x31, 0xbb, 0x90, 0xb5, 0xc4, 0x02, 0x55, 0xb3, 0x07, 0xe2,
		0xa5, 0xa3, 0x29, 0xa5, 0xe3, 0xb5, 0x84, 0x34, 0xb7, 0x2a, 0x71, 0x42, 0x9a, 0xb5, 0x14, 0xf8,
		0x2c, 0x2c, 0x4d, 0x1e, 0x69, 0xac, 0x43, 0xb2, 0xca, 0x44, 0x27, 0x49, 0xaf, 0x24, 0x2b, 0x71,
		0x14, 0xcd, 0x45, 0x97, 0xd9, 0x3a, 0x51, 0x35, 0xac, 0xc0, 0x33, 0x1d, 0x5d, 0x42, 0x3a, 0xfa,
		0x70, 0x68, 0x37, 0xd2, 0xd1, 0x48, 0x47, 0x23, 0xf6, 0x47, 0xec, 0x8f, 0xd8, 0x1f, 0xb1, 0x3f,
		0x62, 0x7f, 0xa4, 0xa3, 0xd7, 0x33, 0x5a, 0xa4, 0xa3, 0xe1, 0x92, 0xe0, 0x92, 0xe0, 0x92, 0xe0,
		0x92, 0x32, 0xeb, 0x92, 0x90, 0x8e, 0xde, 0x5f, 0xf4, 0x77, 0xe0, 0x39, 0x43, 0xca, 0xcc, 0x52,
		0x1a, 0x29, 0x43, 0x82, 0x1e, 0x6c, 0x84, 0x19, 0x43, 0x14, 0x3a, 0x44, 0x96, 0xb8, 0x6c, 0xd6,
		0x3b, 0xcc, 0xca, 0x18, 0x0e, 0xb5, 0xc2, 0xa1, 0x56, 0x11, 0x78, 0x34, 0x4a, 0xd1, 0x50, 0x8a,
		0x76, 0xe8, 0x16, 0x3a, 0x4b, 0xdd, 0x56, 0x17, 0x2c, 0x33, 0x9a, 0xae, 0x66, 0x46, 0x4c, 0xf6,
		0xdc, 0x9d, 0x61, 0x5e, 0x30, 0x32, 0xdd, 0xa5, 0xa1, 0xff, 0xb3, 0x4c, 0xd0, 0x9a, 0x21, 0x18,
		0x05, 0xfd, 0x18, 0x02, 0x5f, 0xd0, 0xff, 0xcb, 0x2f, 0x3e, 0x9b, 0xbe, 0xf5, 0x84, 0xae, 0x0c,
		0x31, 0x3c, 0xe9, 0x14, 0x3d, 0xf4, 0x66, 0x88, 0x27, 0x82, 0xe8, 0xcd, 0x90, 0xb2, 0xb2, 0x82,
		0x16, 0x73, 0x54, 0xe6, 0x6c, 0x90, 0x63, 0xb2, 0x22, 0xe0, 0x36, 0xf3, 0x7c, 0xdb, 0x09, 0x79,
		0x53, 0xd1, 0x6c, 0xb7, 0x5d, 0xe6, 0x79, 0xf4, 0x3b, 0xb0, 0x56, 0x5d, 0x04, 0x47, 0x4c, 0x65,
		0xcd, 0x5c, 0xf0, 0x32, 0x1b, 0xdc, 0xcd, 0x07, 0x77, 0x33, 0x92, 0x82, 0x39, 0xa1, 0xcb, 0xab,
		0x0a, 0x87, 0x71, 0xdc, 0x54, 0xff, 0x67, 0xb9, 0x48, 0x2e, 0x05, 0xd3, 0x4e, 0xd0, 0x84, 0x63,
		0x36, 0x4d, 0xdf, 0x67, 0xae, 0x43, 0x7e, 0x5e, 0x53, 0xe1, 0xed, 0xd7, 0xd3, 0xe2, 0xd5, 0xe3,
		0xef, 0xaf, 0x67, 0xc5, 0xab, 0xc7, 0xe1, 0xc3, 0xb3, 0xf0, 0xd7, 0x3f, 0xa5, 0xd7, 0xdf, 0xa5,
		0xaf, 0xa7, 0xc5, 0xf2, 0xe8, 0xd9, 0xd2, 0xc5, 0xd7, 0xd3, 0xe2, 0xc5, 0xe3, 0xbb, 0xb7, 0xdf,
		0xbe, 0x7d, 0x88, 0xfa, 0x99, 0x77, 0xff, 0x9c, 0xbf, 0x9e, 0x4c, 0x3e, 0x54, 0x1a, 0xbd, 0x7a,
		0xfe, 0xf5, 0xb4, 0x58, 0x7a, 0x7c, 0x47, 0x27, 0xb6, 0x8f, 0x94, 0x78, 0xab, 0x2d, 0xf9, 0x33,
		0x37, 0xd0, 0xff, 0xef, 0xed, 0xde, 0x61, 0x7f, 0xf7, 0x3f, 0x84, 0xc0, 0xe7, 0x68, 0xff, 0xf7,
		0x0a, 0x9a, 0x30, 0x32, 0x11, 0x45, 0x8f, 0xf9, 0xa9, 0xd0, 0x92, 0xd9, 0xeb, 0x81, 0xa1, 0x80,
		0xa1, 0x80, 0xa1, 0x1c, 0x2d, 0x43, 0xa1, 0xdf, 0xf7, 0xc2, 0x63, 0xbf, 0xcb, 0xdc, 0x3e, 0x17,
		0x8f, 0xf9, 0xde, 0x75, 0x9b, 0x75, 0x6c, 0x87, 0xb5, 0x87, 0x29, 0xea, 0xf1, 0x93, 0x33, 0x74,
		0x6b, 0xe3, 0x0b, 0x93, 0xe7, 0xe9, 0x76, 0x68, 0x66, 0xc4, 0xb7, 0x78, 0x56, 0x9f, 0x83, 0x07,
		0x09, 0x46, 0x85, 0x9f, 0x80, 0x9f, 0x80, 0x9f, 0x38, 0x5a, 0x3f, 0x41, 0x68, 0x03, 0x66, 0xed,
		0x00, 0xe5, 0x81, 0xc9, 0xb4, 0x47, 0x7b, 0x8c, 0xff, 0x71, 0xd8, 0x73, 0xca, 0xe3, 0xa8, 0x8f,
		0xc9, 0xe0, 0x9c, 0x8e, 0xfc, 0x98, 0x8c, 0xcf, 0xfb, 0xf8, 0x88, 0xa9, 0xe4, 0xf1, 0x3a, 0x46,
		0x82, 0x58, 0xe9, 0xe6, 0xa7, 0xd6, 0xfc, 0xc5, 0x7f, 0x6a, 0x2b, 0xe7, 0x98, 0xdb, 0x54, 0xcc,
		0x32, 0xfd, 0x68, 0x8f, 0x39, 0x23, 0x9b, 0x9c, 0x52, 0x16, 0xe3, 0x91, 0x41, 0x3a, 0x41, 0x3a,
		0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0xf7, 0x48,
		0x3a, 0x89, 0xdc, 0x45, 0xdd, 0xf6, 0x7c, 0xd1, 0xf7, 0x89, 0x1b, 0xa2, 0x34, 0x6c, 0x47, 0xea,
		0xb2, 0xc0, 0xed, 0x12, 0x8b, 0x50, 0xa0, 0x5d, 0x33, 0x23, 0x9f, 0x7d, 0x2c, 0x97, 0x2b, 0x97,
		0xe5, 0xf2, 0xe9, 0xe5, 0xf9, 0xe5, 0xe9, 0xd5, 0xc5, 0xc5, 0x59, 0xe5, 0x8c, 0xd2, 0x9d, 0xa8,
		0x6e, 0x9b, 0xb9, 0xac, 0x7d, 0xf3, 0x52, 0xb8, 0x16, 0x9c, 0x41, 0xb7, 0xcb, 0x63, 0xe8, 0x07,
		0x8f, 0xb9, 0xa4, 0x3a, 0x90, 0x8d, 0x70, 0xe4, 0xa9, 0xd7, 0x2f, 0x76, 0xed, 0x67, 0x9b, 0x43,
		0x3c, 0x32, 0x1d, 0x1a, 0x01, 0x09, 0x02, 0x12, 0x04, 0x24, 0x47, 0x1b, 0x90, 0x0c, 0x6c, 0xc7,
		0xff, 0x88, 0x88, 0x04, 0x11, 0x09, 0x22, 0x92, 0xfd, 0x47, 0x24, 0xa5, 0x8b, 0x0b, 0x4c, 0xee,
		0x71, 0x87, 0x24, 0x99, 0x20, 0x9e, 0x5d, 0xe6, 0xfc, 0x08, 0x77, 0xa7, 0x10, 0xb3, 0xce, 0xd1,
		0xb8, 0xa0, 0x9c, 0xa0, 0x9c, 0xa0, 0x9c, 0x47, 0x4d, 0x39, 0xcf, 0x2a, 0x1c, 0x38, 0x67, 0x05,
		0x9c, 0x13, 0x9c, 0x13, 0x9c, 0x33, 0xda, 0xd4, 0x56, 0x2e, 0x2e, 0xce, 0xc1, 0x3a, 0x8f, 0x9c,
		0x75, 0x12, 0xf9, 0x0c, 0xf6, 0xcb, 0x77, 0xcd, 0xe2, 0xc0, 0xf1, 0x7c, 0xf3, 0x7b, 0x97, 0xd8,
		0x7b, 0xb8, 0xac, 0xc3, 0x5c, 0xe6, 0x58, 0x07, 0x61, 0x94, 0xc7, 0xae, 0x4e, 0xbb, 0xad, 0x0a,
		0x97, 0x57, 0x67, 0xd7, 0x42, 0xd8, 0xc1, 0xc3, 0x61, 0xbe, 0xd0, 0x74, 0x7b, 0x7e, 0xcf, 0xea,
		0x75, 0xbf, 0x39, 0xc1, 0x6b, 0x1f, 0x4b, 0xa7, 0xa7, 0x2b, 0x5e, 0x7c, 0x2f, 0x7c, 0x62, 0xae,
		0x67, 0xf7, 0x1c, 0xa1, 0x22, 0xbc, 0x95, 0x9b, 0x3f, 0x2b, 0xef, 0x84, 0x56, 0x9f, 0x59, 0x76,
		0xc7, 0xb6, 0xc2, 0xaa, 0x97, 0x0f, 0x07, 0xde, 0xc4, 0x74, 0x3a, 0x97, 0x79, 0xea, 0x63, 0xca,
		0x6d, 0xb2, 0x61, 0xcd, 0x0e, 0x30, 0x86, 0xee, 0x8f, 0xa6, 0x97, 0x3e, 0x8a, 0x9e, 0x8c, 0x8c,
		0x38, 0x1a, 0x71, 0x34, 0xe2, 0xe8, 0xa3, 0x8d, 0xa3, 0xed, 0x7e, 0x71, 0x6c, 0x0a, 0x8a, 0x7e,
		0x70, 0x15, 0x0e, 0x15, 0x6f, 0x57, 0x84, 0x63, 0x8e, 0x90, 0x38, 0x18, 0xf2, 0x46, 0xbd, 0x34,
		0xb6, 0x08, 0x2e, 0x87, 0xa8, 0x8b, 0x53, 0xda, 0x82, 0x1f, 0xd8, 0xa9, 0xa4, 0x31, 0xd2, 0x4a,
		0x67, 0xa4, 0x1e, 0xf7, 0xa6, 0x17, 0xff, 0x72, 0x4c, 0x73, 0xa4, 0x92, 0xee, 0x58, 0x12, 0x81,
		0xd2, 0x45, 0x19, 0x42, 0x90, 0x89, 0xf0, 0x81, 0xdf, 0xa8, 0x8f, 0x59, 0x3e, 0x01, 0x82, 0xa3,
		0xe3, 0xb2, 0xdb, 0xcc, 0xf1, 0x6d, 0xff, 0x85, 0xf3, 0xe9, 0x0f, 0x3c, 0xfc, 0x97, 0x3c, 0xba,
		0xf5, 0x1b, 0xd3, 0xe3, 0x98, 0x8a, 0x18, 0x03, 0x25, 0x37, 0x8d, 0xa6, 0xa6, 0xea, 0x6a, 0x55,
		0xad, 0xf3, 0xca, 0x44, 0x84, 0xf6, 0xc6, 0xe3, 0xe6, 0x91, 0xf9, 0x7a, 0xe5, 0x45, 0xb0, 0xc4,
		0x07, 0xfd, 0xbe, 0x70, 0x88, 0xbe, 0x25, 0x3d, 0x88, 0xee, 0x34, 0x09, 0x08, 0x6d, 0x44, 0x48,
		0xae, 0x36, 0x9a, 0x80, 0x68, 0x33, 0x44, 0x77, 0x80, 0x68, 0x1b, 0x44, 0x8a, 0x21, 0x03, 0xa3,
		0xcd, 0x18, 0xd5, 0x4b, 0x3a, 0x20, 0xda, 0xe2, 0xfe, 0xe5, 0x06, 0x10, 0xda, 0x88, 0x90, 0xd6,
		0xfa, 0x04, 0x21, 0xda, 0x0c, 0x91, 0x5e, 0x05, 0x42, 0x9b, 0x11, 0x7a, 0xa8, 0xf1, 0x44, 0x88,
		0xcb, 0xc8, 0x8f, 0x58, 0x75, 0x4b, 0xf9, 0x7e, 0x28, 0x56, 0xdd, 0xbc, 0x70, 0xdd, 0x85, 0x5f,
		0x47, 0xec, 0x85, 0xf1, 0xb1, 0x02, 0x97, 0x18, 0x51, 0xac, 0xc0, 0x2d, 0x5c, 0x00, 0x2b, 0x70,
		0xb4, 0x9e, 0x0f, 0xcd, 0xb0, 0xd1, 0x0c, 0x7b, 0x47, 0x47, 0x88, 0x66, 0xd8, 0x68, 0x86, 0x4d,
		0xcb, 0x40, 0xb8, 0xf6, 0xc1, 0x5e, 0x7f, 0x29, 0xf0, 0x12, 0xf0, 0x12, 0xf0, 0x92, 0xa3, 0xe5,
		0x25, 0x68, 0x81, 0x8d, 0xc3, 0xb2, 0xb3, 0x7d, 0x14, 0x6b, 0xff, 0x67, 0xf9, 0x84, 0xe4, 0x7c,
		0x39, 0x81, 0xea, 0x9c, 0xcd, 0xfe, 0xcf, 0xb2, 0x31, 0x72, 0x50, 0x07, 0x78, 0x14, 0xb6, 0x6d,
		0x3d, 0x27, 0x39, 0x7e, 0x73, 0x39, 0xb2, 0x19, 0x8e, 0x87, 0xb3, 0xff, 0xd2, 0xe6, 0x09, 0x38,
		0xfb, 0x0f, 0x67, 0xff, 0x6d, 0x1b, 0x88, 0xe8, 0xa0, 0xcf, 0x25, 0x51, 0x26, 0x33, 0xc8, 0x84,
		0xca, 0x8f, 0xe0, 0x01, 0xc1, 0x03, 0x82, 0x07, 0x7e, 0xc6, 0x64, 0xc6, 0xa8, 0xb4, 0x39, 0x08,
		0xd6, 0xd4, 0xb4, 0xb4, 0xa9, 0x8b, 0xfd, 0x88, 0xb3, 0x13, 0xdc, 0x0c, 0x0d, 0x4f, 0x83, 0x93,
		0x96, 0xe1, 0xe1, 0x6d, 0x80, 0x52, 0x33, 0x44, 0xa9, 0x19, 0xa4, 0x14, 0x0d, 0x13, 0xad, 0x81,
		0x22, 0x36, 0x54, 0xfc, 0xb2, 0x1d, 0xcb, 0x31, 0x0b, 0xb6, 0x3d, 0xef, 0x06, 0x54, 0x55, 0xad,
		0x49, 0xd8, 0xef, 0xbc, 0x0d, 0xa5, 0x5a, 0x4b, 0x37, 0x1e, 0x14, 0x4d, 0x12, 0xab, 0xf7, 0xe2,
		0x4d, 0x5d, 0x32, 0xc4, 0x5a, 0x43, 0x56, 0x8c, 0xa6, 0xa6, 0xde, 0xcb, 0x37, 0xb2, 0x2e, 0xd5,
		0xb0, 0xe5, 0x67, 0x77, 0xec, 0xaa, 0xa2, 0xa2, 0xa8, 0xba, 0x71, 0xab, 0x89, 0x77, 0x0d, 0x49,
		0xd1, 0x01, 0x5d, 0x04, 0xe8, 0xf8, 0x29, 0x6b, 0x9a, 0x4a, 0x9b, 0x0e, 0x8a, 0x19, 0x52, 0xe2,
		0x14, 0x24, 0x32, 0x23, 0x98, 0xa6, 0xa6, 0xdc, 0xc7, 0x03, 0x69, 0xf0, 0xf7, 0xbd, 0xda, 0xd2,
		0x21, 0xaf, 0x3c, 0xc1, 0x7d, 0x50, 0xfe, 0x54, 0xd4, 0xff, 0x28, 0xc0, 0x94, 0x06, 0x53, 0x45,
		0x82, 0xbc, 0xf2, 0xc4, 0x16, 0xe2, 0x4a, 0x06, 0x69, 0xa0, 0xfe, 0xc0, 0x91, 0x06, 0x47, 0xa3,
		0xa9, 0x49, 0x55, 0xa9, 0x26, 0x29, 0x55, 0xc9, 0xf8, 0x24, 0xab, 0x75, 0x51, 0x97, 0x55, 0x08,
		0x29, 0x15, 0xb8, 0xb3, 0x4f, 0xdc, 0xaa, 0x9a, 0xa1, 0xab, 0x2d, 0x60, 0x9b, 0x1c, 0x5b, 0x45,
		0x82, 0xfe, 0xd3, 0xc0, 0x08, 0x09, 0xe5, 0x03, 0x6d, 0x53, 0xd5, 0x20, 0xa2, 0x14, 0x38, 0x4e,
		0xbd, 0x53, 0xf5, 0x41, 0x57, 0x6f, 0x6f, 0x01, 0x2a, 0x05, 0xa8, 0xa3, 0xae, 0x19, 0xc0, 0x32,
		0x31, 0x96, 0x2d, 0xad, 0x3a, 0x74, 0xf5, 0x72, 0x2b, 0x20, 0x4f, 0x88, 0x99, 0xa8, 0x40, 0xd5,
		0xd4, 0x07, 0x5d, 0x32, 0x6e, 0x45, 0xb9, 0x9e, 0x0a, 0xa6, 0x5c, 0xaf, 0xf0, 0x88, 0x8c, 0x79,
		0xf4, 0xfc, 0x0e, 0x56, 0x6c, 0x0e, 0x21, 0x49, 0x96, 0x4f, 0xec, 0xd2, 0x4d, 0x86, 0xe5, 0x17,
		0x43, 0x88, 0x5f, 0xc6, 0x92, 0x5b, 0xf9, 0xc4, 0x2b, 0xe5, 0x24, 0x56, 0x4e, 0x41, 0x4c, 0x35,
		0x15, 0x90, 0x3f, 0x0c, 0xb9, 0x26, 0xa5, 0x72, 0x09, 0x17, 0x24, 0x2e, 0xcb, 0x49, 0xa6, 0x1c,
		0xe2, 0x95, 0x5e, 0x32, 0x29, 0x8f, 0xe0, 0xf1, 0x4e, 0x1a, 0xe5, 0x0f, 0xb3, 0x14, 0x93, 0x43,
		0xf9, 0x04, 0x2f, 0x9d, 0x24, 0xd0, 0xe1, 0x63, 0x27, 0x55, 0xef, 0x55, 0xec, 0x35, 0x4c, 0x0e,
		0xa1, 0x32, 0x42, 0x11, 0xf9, 0xc6, 0x7c, 0xab, 0x0a, 0xf7, 0x79, 0xce, 0x09, 0x4e, 0x9a, 0xd4,
		0xac, 0x7f, 0x81, 0x61, 0xa1, 0x02, 0x52, 0x51, 0x15, 0xd8, 0x96, 0xe3, 0xd0, 0x19, 0xbe, 0x53,
		0x9d, 0x03, 0xa8, 0x3e, 0xeb, 0x06, 0x4c, 0x0c, 0x1f, 0x30, 0x1b, 0x62, 0xfd, 0x56, 0xd5, 0x1a,
		0x52, 0xcd, 0xf8, 0xf7, 0x83, 0xa4, 0x7d, 0xc1, 0x8a, 0x74, 0x72, 0x44, 0x1f, 0xea, 0xba, 0xdc,
		0xac, 0x4b, 0x86, 0xac, 0xe8, 0xb7, 0x46, 0x4b, 0xd4, 0xe5, 0xd6, 0xed, 0x17, 0xa0, 0x4b, 0x84,
		0xae, 0xa2, 0x1a, 0x92, 0xa6, 0xa9, 0x1a, 0xa0, 0xa4, 0x80, 0xb2, 0xf5, 0x70, 0x63, 0xe8, 0x61,
		0x04, 0x2d, 0x29, 0x3a, 0xe4, 0x93, 0x0a, 0xd4, 0xea, 0x7d, 0xa8, 0xfc, 0xa0, 0x6f, 0x47, 0xc3,
		0x49, 0x52, 0x73, 0xa3, 0xf9, 0x43, 0x6e, 0x1f, 0xee, 0x32, 0x77, 0x28, 0xf2, 0x77, 0x8b, 0x79,
		0x84, 0x2c, 0x35, 0xf7, 0x97, 0x4f, 0xf0, 0xb8, 0xbb, 0xb9, 0x5c, 0xc1, 0xf6, 0xef, 0x07, 0xa9,
		0xa5, 0x23, 0x78, 0xa5, 0x85, 0x33, 0xc5, 0x70, 0x00, 0x54, 0x2b, 0x2b, 0x3a, 0x04, 0x67, 0xb7,
		0x1d, 0xb4, 0xa6, 0xa8, 0x89, 0x0d, 0xa3, 0xa9, 0xa9, 0x37, 0x75, 0xa9, 0x61, 0xdc, 0x88, 0x35,
		0xa3, 0x2e, 0x29, 0x77, 0x38, 0xd4, 0x73, 0x77, 0xcc, 0x60, 0xa9, 0x0f, 0x4b, 0xfe, 0xf2, 0x9b,
		0x62, 0x98, 0xc7, 0xb2, 0x21, 0xb7, 0x5a, 0xb2, 0x72, 0x17, 0x58, 0x43, 0x43, 0x6d, 0xa2, 0x04,
		0x9b, 0x02, 0xd3, 0xa6, 0x2a, 0x2b, 0xba, 0xa4, 0x19, 0xb2, 0x52, 0x93, 0xab, 0xa2, 0x2e, 0xb5,
		0x02, 0x07, 0x03, 0x4e, 0x71, 0x2c, 0xa6, 0x3e, 0x4d, 0x95, 0xca, 0x1b, 0x76, 0x29, 0xab, 0x4e,
		0x0e, 0xe0, 0xbb, 0x57, 0xf5, 0x07, 0x4d, 0x6e, 0x85, 0x67, 0xac, 0x63, 0xbf, 0xda, 0xee, 0x78,
		0x05, 0x24, 0xa2, 0xd5, 0x94, 0x81, 0xd5, 0x0e, 0x58, 0x81, 0xbc, 0x1e, 0x8e, 0x8a, 0xe6, 0x98,
		0x64, 0xa5, 0xa6, 0xba, 0x47, 0x80, 0x61, 0x4d, 0xaa, 0xaa, 0x8d, 0xa6, 0x26, 0xb5, 0x5a, 0x90,
		0x48, 0x12, 0x34, 0xb5, 0x2f, 0x21, 0xd5, 0x03, 0x9a, 0xc9, 0xd1, 0x54, 0x24, 0xa9, 0x16, 0x1a,
		0x4b, 0x49, 0xd1, 0x03, 0x16, 0x88, 0xa0, 0x94, 0x08, 0x4f, 0x55, 0x93, 0xff, 0x37, 0x2d, 0x38,
		0x11, 0x8c, 0xee, 0x9b, 0xb5, 0xa5, 0x68, 0xe2, 0xf3, 0x85, 0x5a, 0x5a, 0xa6, 0x3c, 0x47, 0xa8,
		0xa5, 0x6a, 0xb2, 0xf3, 0x88, 0x5b, 0x0a, 0xa6, 0xf9, 0xf0, 0x61, 0xd3, 0xa4, 0x9a, 0xac, 0x49,
		0x55, 0xac, 0x7b, 0x13, 0xc1, 0x88, 0x76, 0xb6, 0x09, 0x01, 0x54, 0x24, 0xfd, 0x3f, 0xaa, 0xf6,
		0x27, 0x30, 0x4c, 0x80, 0xa1, 0xae, 0xb6, 0x20, 0x88, 0x14, 0x20, 0xa6, 0x27, 0x8c, 0xe0, 0xf6,
		0xfb, 0x76, 0x80, 0xe8, 0xd5, 0x94, 0x15, 0x0b, 0x9d, 0x23, 0xac, 0xf8, 0x5b, 0xe2, 0x9c, 0x81,
		0x05, 0xe1, 0xda, 0x8e, 0x97, 0xfa, 0xa0, 0x4b, 0x9a, 0x21, 0xd6, 0x3e, 0x49, 0x9a, 0x2e, 0xb7,
		0xa4, 0x86, 0xa4, 0x80, 0xbe, 0x73, 0x80, 0xb4, 0xa6, 0x4a, 0x2d, 0x43, 0x51, 0xf5, 0x51, 0xe3,
		0x92, 0xaa, 0xda, 0x68, 0x20, 0x6b, 0x4a, 0x86, 0xae, 0xa2, 0x6a, 0x0d, 0xb1, 0x0e, 0x66, 0x75,
		0x64, 0x76, 0x2a, 0x65, 0xa5, 0xca, 0x29, 0x8a, 0xbc, 0x95, 0x27, 0x37, 0xb0, 0xb5, 0xa4, 0xba,
		0x54, 0x0d, 0x33, 0xcf, 0x70, 0x90, 0xa4, 0x70, 0xa2, 0xb9, 0xd2, 0xf1, 0xa9, 0x10, 0x1a, 0x2d,
		0x6d, 0xc5, 0x4c, 0x97, 0x1b, 0x52, 0x4b, 0x17, 0x1b, 0x4d, 0xd8, 0x1b, 0x22, 0x1c, 0x61, 0x68,
		0x8e, 0x48, 0x69, 0x60, 0x61, 0x22, 0x80, 0x85, 0x66, 0x4b, 0xf4, 0x68, 0xc2, 0xda, 0x1c, 0x9d,
		0x02, 0xc1, 0xe6, 0xec, 0x04, 0x99, 0x21, 0x7d, 0xae, 0x4a, 0x52, 0x4d, 0xaa, 0xc1, 0xe2, 0x10,
		0x62, 0x39, 0x3e, 0xa9, 0xdd, 0xd0, 0x24, 0xb1, 0xd5, 0x92, 0x1a, 0x37, 0xf5, 0x2f, 0x86, 0xac,
		0x18, 0xba, 0x26, 0x2a, 0x2d, 0x19, 0xeb, 0xb7, 0x89, 0xf1, 0x4d, 0x15, 0x4b, 0x98, 0xf4, 0x4c,
		0xd8, 0xa7, 0x7d, 0xe9, 0x54, 0xde, 0x70, 0x4c, 0x05, 0xb3, 0x37, 0x87, 0xa1, 0x2b, 0xb4, 0xf7,
		0x49, 0x2c, 0x29, 0x05, 0xf6, 0xcb, 0x77, 0xcd, 0xe2, 0xc0, 0xf1, 0x7c, 0xf3, 0x7b, 0x37, 0x98,
		0x49, 0x7a, 0x79, 0x29, 0xb8, 0xac, 0xc3, 0x5c, 0xe6, 0x58, 0x8c, 0x9b, 0x53, 0xe6, 0x27, 0xe4,
		0xd3, 0x94, 0xd6, 0x6d, 0x55, 0xb8, 0xbc, 0x2a, 0x5d, 0x0b, 0xb2, 0xe3, 0x33, 0xd7, 0x61, 0xbe,
		0x50, 0xed, 0x39, 0xbe, 0xdb, 0xeb, 0x0a, 0x0d, 0xe6, 0x79, 0xe6, 0x0f, 0x26, 0x34, 0xdd, 0x9e,
		0xdf, 0xb3, 0x7a, 0x5d, 0x8e, 0x04, 0xa7, 0xd0, 0xea, 0x0d, 0x5c, 0x8b, 0xcf, 0x34, 0xcd, 0x5d,
		0xe7, 0x4f, 0xf6, 0xf2, 0x77, 0xcf, 0x6d, 0x07, 0x5f, 0x7c, 0x3a, 0x7b, 0x9c, 0x89, 0xdb, 0xbd,
		0xe9, 0x89, 0xee, 0x8f, 0xc1, 0x33, 0x73, 0xfc, 0xc2, 0xb5, 0xe0, 0xbb, 0x03, 0xc6, 0xf9, 0x82,
		0x33, 0x57, 0x8b, 0x32, 0xbd, 0x07, 0x66, 0xd1, 0xe8, 0x47, 0xa5, 0xb5, 0x91, 0x74, 0xf7, 0x47,
		0x68, 0x1b, 0x0b, 0xfe, 0x4b, 0x9f, 0x5e, 0xcd, 0x26, 0xc6, 0x24, 0x1c, 0x9d, 0xd8, 0x92, 0xff,
		0x69, 0x3b, 0x81, 0xbe, 0x9e, 0x12, 0x0f, 0x5b, 0xed, 0x39, 0x1d, 0xfb, 0x07, 0x87, 0x81, 0x9b,
		0x2e, 0xeb, 0xd8, 0xbf, 0xf8, 0x78, 0x9c, 0x31, 0xce, 0x3d, 0xab, 0xd8, 0xff, 0xcb, 0x2f, 0x3e,
		0x9b, 0xbe, 0xf5, 0xc4, 0xc1, 0x7c, 0xf1, 0x36, 0xc7, 0xb3, 0x66, 0xb8, 0x3f, 0x84, 0x8b, 0x8f,
		0x49, 0x4c, 0xcd, 0xf6, 0xce, 0xd9, 0xdc, 0xb9, 0xd9, 0x39, 0x32, 0xde, 0xa5, 0xf3, 0xb0, 0x2f,
		0x73, 0xb2, 0x6f, 0xb7, 0x99, 0xe3, 0xdb, 0xfe, 0x8b, 0xcb, 0x3a, 0x3c, 0x44, 0x7f, 0x64, 0x6e,
		0xce, 0x2e, 0x38, 0x8c, 0x2d, 0x8f, 0x6e, 0xfd, 0xc6, 0xf4, 0x38, 0x2a, 0xd7, 0x24, 0x74, 0xf9,
		0xd2, 0xe4, 0x95, 0x94, 0x4a, 0x23, 0x19, 0xb5, 0x9f, 0x63, 0xb9, 0x10, 0x0b, 0xaf, 0x87, 0x4a,
		0xaa, 0xde, 0xab, 0xc0, 0x67, 0x33, 0x3e, 0xc3, 0x0c, 0x3a, 0x50, 0xda, 0x80, 0xd2, 0x5c, 0x57,
		0x5e, 0x20, 0xb5, 0x13, 0x52, 0x61, 0x13, 0x51, 0x60, 0xb5, 0x1e, 0xab, 0xb9, 0x06, 0x5f, 0x00,
		0x6a, 0x03, 0x50, 0xa3, 0xa2, 0x60, 0x60, 0xb4, 0x1e, 0xa3, 0x71, 0xf9, 0x05, 0x30, 0xda, 0x80,
		0xd1, 0x8a, 0x4d, 0xb8, 0xc0, 0x6b, 0x2b, 0x5e, 0x2d, 0xb5, 0x2e, 0x57, 0x65, 0x1d, 0x45, 0xf8,
		0xdb, 0x82, 0x97, 0xf1, 0x96, 0x04, 0x80, 0xb4, 0x03, 0x48, 0xe0, 0x52, 0xbb, 0x40, 0x35, 0x59,
		0xc7, 0x03, 0x50, 0x1b, 0x80, 0xd2, 0xc4, 0xaa, 0x14, 0x1a, 0x2b, 0x2c, 0x71, 0x62, 0x89, 0x13,
		0x4b, 0x9c, 0x64, 0x77, 0x83, 0x25, 0x4e, 0xc2, 0x0b, 0x62, 0x89, 0x33, 0x0b, 0x36, 0x92, 0x70,
		0x89, 0xf3, 0x4d, 0x86, 0x2c, 0x6c, 0x41, 0x74, 0x9c, 0x9e, 0x6f, 0xfa, 0x76, 0xcf, 0x21, 0x55,
		0xd7, 0x82, 0x67, 0x3d, 0xb1, 0x67, 0xb3, 0x6f, 0xfa, 0x4f, 0x81, 0xdc, 0x9e, 0xf4, 0xfa, 0xcc,
		0xb1, 0xc2, 0x65, 0xc8, 0xa2, 0x69, 0x75, 0x4f, 0x46, 0x3f, 0x45, 0x8f, 0xf9, 0xde, 0xf8, 0x41,
		0xf8, 0x9b, 0x39, 0xbe, 0x6b, 0x33, 0x6f, 0xf2, 0xf8, 0xe5, 0xc4, 0xee, 0xff, 0x2c, 0x9f, 0xd8,
		0xd6, 0x73, 0xf0, 0x6b, 0x38, 0x02, 0xa1, 0x86, 0x17, 0x3c, 0xdf, 0x1d, 0x58, 0xbe, 0x33, 0xb2,
		0x9e, 0xea, 0xe4, 0x2e, 0x45, 0xab, 0x6b, 0x8c, 0x7e, 0x5a, 0xcc, 0xf7, 0x46, 0xbf, 0x83, 0x5f,
		0xd2, 0xf0, 0x0e, 0xc7, 0x0f, 0x5f, 0x0c, 0xb9, 0xff, 0xb3, 0x6c, 0xc8, 0xe1, 0x0d, 0x1a, 0xa3,
		0x95, 0xd6, 0x37, 0xd9, 0x90, 0x13, 0x02, 0x19, 0x29, 0x78, 0xbe, 0xe9, 0xd3, 0x59, 0xf2, 0x89,
		0x9f, 0x1a, 0x0e, 0x4b, 0x24, 0xc3, 0xe3, 0x75, 0x2c, 0xa2, 0xe1, 0x26, 0xcb, 0xe5, 0x25, 0xa2,
		0x01, 0x39, 0x2c, 0x93, 0xf3, 0x5e, 0x1e, 0xe7, 0xe5, 0xc2, 0xb9, 0x2f, 0x87, 0x73, 0xf7, 0xcf,
		0x29, 0x2c, 0x7f, 0x67, 0xcb, 0x43, 0xd4, 0x6c, 0x97, 0x56, 0x74, 0xad, 0x5e, 0x9b, 0xe3, 0xbe,
		0x9c, 0x70, 0x74, 0xec, 0xcb, 0xc1, 0xbe, 0x9c, 0x3d, 0x1b, 0xa2, 0xd4, 0x03, 0x06, 0xec, 0xcb,
		0x19, 0xe1, 0x80, 0x7d, 0x39, 0x1b, 0xc6, 0x4e, 0x77, 0x5f, 0x0e, 0xc7, 0x62, 0xb1, 0xfc, 0xee,
		0xcb, 0x31, 0xc4, 0x5a, 0x43, 0x56, 0x8c, 0xa6, 0xa6, 0xde, 0xcb, 0x37, 0xb2, 0x8e, 0x1c, 0x6e,
		0x14, 0xec, 0xaa, 0xa2, 0xa2, 0xa8, 0xfa, 0xa4, 0x0a, 0x08, 0xd0, 0x45, 0x80, 0x0e, 0x95, 0x9d,
		0x07, 0xa9, 0xc4, 0x29, 0x48, 0x64, 0x46, 0x30, 0x4d, 0x4d, 0xb9, 0x8f, 0x07, 0xd2, 0xe0, 0xef,
		0x7b, 0xb5, 0xa5, 0x43, 0x5e, 0x79, 0x82, 0xfb, 0xa0, 0xfc, 0xa9, 0xa8, 0xff, 0x41, 0xfb, 0x48,
		0x22, 0x4c, 0x15, 0x09, 0xf2, 0xca, 0x13, 0x5b, 0x88, 0x2b, 0x19, 0xa4, 0x68, 0xc4, 0x4f, 0x87,
		0xa3, 0xd1, 0xd4, 0xa4, 0xaa, 0x54, 0x93, 0x94, 0xaa, 0x64, 0x7c, 0x92, 0xd5, 0x3a, 0x0e, 0x32,
		0xa3, 0x04, 0x77, 0xf6, 0x89, 0x5b, 0x55, 0x33, 0x74, 0xb5, 0x05, 0x6c, 0x93, 0x63, 0xab, 0x48,
		0xd0, 0x7f, 0x1a, 0x18, 0x21, 0xa1, 0x7c, 0xa0, 0x6d, 0xaa, 0x1a, 0x44, 0x94, 0x02, 0xc7, 0xa9,
		0x77, 0xaa, 0x3e, 0xe8, 0xea, 0xed, 0x2d, 0x40, 0xa5, 0x00, 0x55, 0xd5, 0xd5, 0xaa, 0x5a, 0x07,
		0x96, 0xc9, 0xb1, 0x6c, 0x69, 0xd5, 0xa1, 0xab, 0x97, 0x5b, 0x01, 0x79, 0x42, 0xcc, 0x44, 0x05,
		0xea, 0xb0, 0x9b, 0x7d, 0x6a, 0x07, 0x15, 0xa3, 0xd3, 0x58, 0xba, 0x32, 0x90, 0xa5, 0xe4, 0x59,
		0x8e, 0x41, 0xe4, 0x9e, 0x75, 0xc8, 0x27, 0x76, 0xe9, 0x26, 0xc3, 0xf2, 0x8b, 0x21, 0xc4, 0x2f,
		0x63, 0xc9, 0xad, 0x7c, 0xe2, 0x95, 0x72, 0x12, 0x2b, 0xa7, 0x20, 0xa6, 0x9a, 0x0a, 0xc8, 0x1f,
		0x86, 0x5c, 0x93, 0x52, 0xb9, 0x84, 0x0b, 0x12, 0x97, 0xe5, 0x24, 0x53, 0x0e, 0xf1, 0x4a, 0x2f,
		0x99, 0x94, 0x47, 0xf0, 0x78, 0x27, 0x8d, 0xf2, 0x87, 0x59, 0x8a, 0xc9, 0xa1, 0x7c, 0x82, 0x97,
		0x4e, 0x12, 0x28, 0x27, 0xad, 0xc3, 0xb0, 0xd7, 0x30, 0x31, 0x84, 0x38, 0xac, 0xe6, 0x38, 0x54,
		0x05, 0x27, 0xd4, 0xec, 0x86, 0x13, 0x0e, 0xc4, 0x22, 0x05, 0x52, 0x51, 0x15, 0xd8, 0x96, 0xe3,
		0xd0, 0x19, 0xbe, 0x53, 0x9d, 0xb7, 0x36, 0x9e, 0x30, 0x31, 0x94, 0x60, 0x36, 0xc4, 0xfa, 0xad,
		0xaa, 0x35, 0xa4, 0x9a, 0xf1, 0xef, 0x07, 0x49, 0xfb, 0x82, 0x15, 0xe9, 0xe4, 0x88, 0x3e, 0xd4,
		0x75, 0xb9, 0x59, 0x97, 0x0c, 0x59, 0xd1, 0x6f, 0x8d, 0x96, 0xa8, 0xcb, 0xad, 0xdb, 0x2f, 0x40,
		0x97, 0x08, 0x5d, 0x45, 0x35, 0x24, 0x4d, 0x53, 0x35, 0x40, 0x49, 0x01, 0x65, 0xeb, 0xe1, 0xc6,
		0xd0, 0xc3, 0x08, 0x5a, 0x52, 0x74, 0xc8, 0x27, 0x15, 0xa8, 0xd5, 0xfb, 0x50, 0xf9, 0x41, 0xdf,
		0x8e, 0x86, 0x93, 0xa4, 0xe6, 0x46, 0xf3, 0x87, 0xdc, 0x3e, 0xdc, 0x65, 0xee, 0x50, 0xe4, 0xef,
		0x16, 0xf3, 0x08, 0x59, 0x6a, 0xee, 0x2f, 0x9f, 0xe0, 0x71, 0x77, 0x73, 0xf9, 0x3b, 0x57, 0x01,
		0xc1, 0x2b, 0x2d, 0x9c, 0x29, 0x86, 0x03, 0xa0, 0x5a, 0x59, 0xd1, 0x21, 0x38, 0xbb, 0xed, 0xa0,
		0xcd, 0x1d, 0x52, 0x62, 0xdc, 0x88, 0x35, 0xa3, 0x2e, 0x29, 0x77, 0xfa, 0x3d, 0x30, 0xdb, 0x15,
		0x33, 0x58, 0xea, 0xc3, 0x92, 0xbf, 0xfc, 0xa6, 0x18, 0xe6, 0xb1, 0x6c, 0xc8, 0xad, 0x96, 0xac,
		0xdc, 0x05, 0xd6, 0xd0, 0x50, 0x9b, 0x28, 0xc1, 0xa6, 0xc0, 0xb4, 0xa9, 0xca, 0x8a, 0x2e, 0x69,
		0x86, 0xac, 0xd4, 0xe4, 0xaa, 0xa8, 0x4b, 0xad, 0xc0, 0xc1, 0x80, 0x53, 0x1c, 0x8b, 0xa9, 0x4f,
		0x53, 0xa5, 0xf2, 0x86, 0x5d, 0xca, 0xaa, 0x93, 0x9f, 0x53, 0xd1, 0x0c, 0xf1, 0x41, 0xbf, 0xc7,
		0x7e, 0xb5, 0xdd, 0xf1, 0x0a, 0x48, 0x44, 0xab, 0x29, 0x03, 0xab, 0x1d, 0xb0, 0x02, 0x79, 0x3d,
		0x1c, 0x15, 0xcd, 0x31, 0xc9, 0x4a, 0x4d, 0x75, 0x8f, 0x00, 0xc3, 0x9a, 0x54, 0x55, 0x1b, 0x4d,
		0x4d, 0x6a, 0xb5, 0x20, 0x91, 0x24, 0x68, 0x6a, 0x5f, 0x42, 0xaa, 0x07, 0x34, 0x93, 0xa3, 0xa9,
		0x48, 0x52, 0x2d, 0x34, 0x96, 0x92, 0xa2, 0x07, 0x2c, 0x10, 0x41, 0x29, 0x11, 0x9e, 0xaa, 0x26,
		0xff, 0x6f, 0x5a, 0x70, 0x22, 0x18, 0xdd, 0x37, 0x6b, 0x4b, 0xd1, 0xc4, 0xe7, 0x0b, 0xb5, 0xb4,
		0x4c, 0x79, 0x8e, 0x50, 0x4b, 0xd5, 0x64, 0xe7, 0x11, 0xb7, 0x14, 0x4c, 0x73, 0x7e, 0x8e, 0x37,
		0x47, 0x40, 0x4a, 0x03, 0x23, 0xda, 0xd9, 0x26, 0x04, 0x50, 0x91, 0xf4, 0xff, 0xa8, 0xda, 0x9f,
		0xc0, 0x30, 0x01, 0x86, 0xba, 0xda, 0x82, 0x20, 0x52, 0x80, 0x98, 0x9e, 0x30, 0x82, 0xdb, 0xef,
		0xdb, 0x01, 0xa2, 0x57, 0x53, 0x56, 0x2c, 0x74, 0x8e, 0xb0, 0xe2, 0x6f, 0x89, 0x73, 0x06, 0x16,
		0x84, 0x6b, 0x3b, 0x5e, 0xea, 0x83, 0x2e, 0x69, 0x86, 0x58, 0xfb, 0x24, 0x69, 0xba, 0xdc, 0x92,
		0x1a, 0x92, 0x02, 0xfa, 0xce, 0x01, 0xd2, 0x9a, 0x2a, 0xb5, 0x0c, 0x45, 0xd5, 0x47, 0x8d, 0x4b,
		0xaa, 0x6a, 0xa3, 0x81, 0xac, 0x29, 0x19, 0xba, 0x8a, 0xaa, 0x35, 0xc4, 0x3a, 0x98, 0xd5, 0x91,
		0xd9, 0xa9, 0x94, 0x95, 0x2a, 0xa7, 0x28, 0xf2, 0x56, 0x9e, 0xdc, 0xc0, 0xd6, 0x92, 0xea, 0x52,
		0x35, 0xcc, 0x3c, 0xc3, 0x41, 0x92, 0xc2, 0x89, 0xe6, 0x4a, 0xc7, 0xa7, 0x42, 0x68, 0xb4, 0xb4,
		0x15, 0x33, 0x5d, 0x6e, 0x48, 0x2d, 0x5d, 0x6c, 0x34, 0x61, 0x6f, 0x88, 0x70, 0x84, 0xa1, 0x39,
		0x22, 0xa5, 0x81, 0x85, 0x89, 0x00, 0x16, 0x9a, 0x2d, 0xd1, 0xa3, 0x09, 0x6b, 0x73, 0x74, 0x0a,
		0x04, 0x9b, 0xb3, 0x13, 0x64, 0x86, 0xf4, 0xb9, 0x2a, 0x49, 0x35, 0xa9, 0x06, 0x8b, 0x43, 0x88,
		0xe5, 0xf8, 0xa4, 0x76, 0x43, 0x93, 0xc4, 0x56, 0x4b, 0x6a, 0xdc, 0xd4, 0xbf, 0x18, 0xb2, 0x62,
		0xe8, 0x9a, 0xa8, 0xb4, 0x64, 0xac, 0xdf, 0x26, 0xc6, 0x37, 0x55, 0x2c, 0x61, 0xd2, 0x33, 0x61,
		0x9f, 0xf6, 0xa5, 0x53, 0x79, 0xc3, 0x31, 0x15, 0xcc, 0xde, 0x1c, 0x86, 0xae, 0xd0, 0xde, 0x27,
		0xb1, 0xa4, 0x14, 0xd8, 0x2f, 0xdf, 0x35, 0x8b, 0x03, 0xc7, 0xf3, 0xcd, 0xef, 0xdd, 0x60, 0x26,
		0xe9, 0xe5, 0xa5, 0xe0, 0xb2, 0x0e, 0x73, 0x99, 0x63, 0x31, 0x6e, 0x4e, 0x99, 0x9f, 0x90, 0x4f,
		0x53, 0x5a, 0xb7, 0x55, 0xe1, 0xf2, 0xaa, 0x74, 0x2d, 0xc8, 0x8e, 0xcf, 0x5c, 0x87, 0xf9, 0x42,
		0xb5, 0xe7, 0xf8, 0x6e, 0xaf, 0x2b, 0x34, 0x98, 0xe7, 0x99, 0x3f, 0x98, 0xd0, 0x74, 0x7b, 0x7e,
		0xcf, 0xea, 0x75, 0x39, 0x12, 0x9c, 0x42, 0xab, 0x37, 0x70, 0x2d, 0x3e, 0xd3, 0x34, 0x77, 0x9d,
		0x3f, 0xd9, 0xcb, 0xdf, 0x3d, 0xb7, 0x1d, 0x7c, 0xf1, 0xe9, 0xec, 0x71, 0x26, 0x6e, 0xf7, 0xa6,
		0x27, 0xba, 0x3f, 0x06, 0xcf, 0xcc, 0xf1, 0x0b, 0xd7, 0x82, 0xef, 0x0e, 0x18, 0xe7, 0x0b, 0xce,
		0x5c, 0x2d, 0xca, 0xf4, 0x1e, 0x98, 0x45, 0xa3, 0x1f, 0x95, 0xd6, 0x46, 0xd2, 0xdd, 0x1f, 0xa1,
		0x6d, 0x2c, 0xf8, 0x2f, 0x7d, 0x7a, 0x35, 0x9b, 0x18, 0x93, 0x70, 0x74, 0x62, 0x4b, 0xfe, 0xa7,
		0xed, 0x04, 0xfa, 0x7a, 0x4a, 0x3c, 0x6c, 0xb5, 0xe7, 0x74, 0xec, 0x1f, 0x1c, 0x06, 0x6e, 0xba,
		0xac, 0x63, 0xff, 0xe2, 0xe3, 0x71, 0xc6, 0x38, 0xf7, 0xac, 0x62, 0xff, 0x2f, 0xbf, 0xf8, 0x6c,
		0xfa, 0xd6, 0x13, 0x07, 0xf3, 0xc5, 0xdb, 0x1c, 0xcf, 0x9a, 0xe1, 0xfe, 0x10, 0x2e, 0x3e, 0x26,
		0x31, 0x35, 0xdb, 0x3b, 0x67, 0x73, 0xe7, 0x66, 0xe7, 0xc8, 0x78, 0x97, 0xce, 0xc3, 0xbe, 0xcc,
		0xc9, 0xbe, 0xdd, 0x66, 0x8e, 0x6f, 0xfb, 0x2f, 0x2e, 0xeb, 0xf0, 0x10, 0xfd, 0x91, 0xb9, 0x39,
		0xbb, 0xe0, 0x30, 0xb6, 0x3c, 0xba, 0xf5, 0x1b, 0xd3, 0xe3, 0xa8, 0x5c, 0x93, 0xd0, 0xe5, 0x4b,
		0x93, 0x57, 0x52, 0x2a, 0x8d, 0x64, 0xd4, 0x7e, 0x8e, 0xe5, 0x42, 0x2c, 0xbc, 0x1e, 0x2a, 0xa9,
		0x7a, 0xaf, 0x02, 0x9f, 0xcd, 0xf8, 0x0c, 0x33, 0xe8, 0x40, 0x69, 0x03, 0x4a, 0x73, 0x5d, 0x79,
		0x81, 0xd4, 0x4e, 0x48, 0x85, 0x4d, 0x44, 0x81, 0xd5, 0x7a, 0xac, 0xe6, 0x1a, 0x7c, 0x01, 0xa8,
		0x0d, 0x40, 0x8d, 0x8a, 0x82, 0x81, 0xd1, 0x7a, 0x8c, 0xc6, 0xe5, 0x17, 0xc0, 0x68, 0x03, 0x46,
		0x2b, 0x36, 0xe1, 0x02, 0xaf, 0xad, 0x78, 0xb5, 0xd4, 0xba, 0x5c, 0x95, 0x75, 0x14, 0xe1, 0x6f,
		0x0b, 0x5e, 0xc6, 0x5b, 0x12, 0x00, 0xd2, 0x0e, 0x20, 0x81, 0x4b, 0xed, 0x02, 0xd5, 0x64, 0x1d,
		0x0f, 0x40, 0x6d, 0x00, 0x4a, 0x13, 0xab, 0x52, 0x68, 0xac, 0xb0, 0xc4, 0x89, 0x25, 0x4e, 0x2c,
		0x71, 0x92, 0xdd, 0x0d, 0x96, 0x38, 0x09, 0x2f, 0x88, 0x25, 0xce, 0x2c, 0xd8, 0x48, 0xc2, 0x25,
		0xce, 0x37, 0x19, 0xb2, 0xb0, 0x05, 0xd1, 0x71, 0x7a, 0xbe, 0xe9, 0xdb, 0x3d, 0x87, 0x54, 0x5d,
		0x0b, 0x9e, 0xf5, 0xc4, 0x9e, 0xcd, 0xbe, 0xe9, 0x3f, 0x05, 0x72, 0x7b, 0xd2, 0xeb, 0x33, 0xc7,
		0x0a, 0x97, 0x21, 0x8b, 0xa6, 0xd5, 0x3d, 0x19, 0xfd, 0x14, 0x3d, 0xe6, 0x7b, 0xe3, 0x07, 0xe1,
		0x6f, 0xe6, 0xf8, 0xae, 0xcd, 0xbc, 0xc9, 0xe3, 0x97, 0x13, 0xbb, 0xff, 0xb3, 0x7c, 0x62, 0x5b,
		0xcf, 0xc1, 0x2f, 0xcf, 0x37, 0x7d, 0x4a, 0x05, 0x2f, 0x78, 0xbe, 0x3b, 0xb0, 0x7c, 0x67, 0x64,
		0x3c, 0xd5, 0xc9, 0x4d, 0x8a, 0x56, 0xd7, 0x18, 0xfd, 0xb4, 0x98, 0xef, 0x8d, 0x7e, 0x07, 0xbf,
		0xa4, 0xe1, 0x0d, 0x8e, 0x1f, 0xbe, 0x18, 0x72, 0xff, 0x67, 0xd9, 0x90, 0xc3, 0xfb, 0x33, 0x5a,
		0xe1, 0xfd, 0xbd, 0xc9, 0x86, 0x94, 0x24, 0x1b, 0x21, 0xa1, 0x7c, 0x51, 0xcb, 0x15, 0x17, 0x79,
		0x22, 0x90, 0x24, 0x62, 0x09, 0x4a, 0x26, 0x3b, 0xf1, 0x67, 0x3c, 0xc1, 0x6c, 0x17, 0x86, 0x4a,
		0x99, 0x74, 0x92, 0x27, 0x0c, 0x86, 0x42, 0xc7, 0x27, 0x2b, 0x9b, 0x09, 0x87, 0x99, 0x6c, 0x9c,
		0x28, 0x25, 0x1c, 0x88, 0x70, 0xa3, 0x04, 0xaf, 0x8d, 0x11, 0xd4, 0xa4, 0x8d, 0xdb, 0xc6, 0x07,
		0x6e, 0x0c, 0x8c, 0xe3, 0xc6, 0x86, 0xfd, 0xda, 0xe2, 0x9a, 0xed, 0xd2, 0x88, 0x5e, 0x9b, 0x79,
		0xbe, 0xed, 0x84, 0x56, 0xbd, 0x68, 0xb6, 0xdb, 0x2e, 0xf3, 0x3c, 0x3a, 0x79, 0x19, 0xcb, 0xf5,
		0xaa, 0x8b, 0x10, 0x4d, 0x30, 0xed, 0xfe, 0x2a, 0xf2, 0x7d, 0x55, 0x3c, 0xf6, 0x53, 0xf1, 0xde,
		0x47, 0xc5, 0x2b, 0xd6, 0xe3, 0xbe, 0x6f, 0x8a, 0x7b, 0x20, 0x97, 0xc2, 0x3e, 0xa9, 0x6c, 0x85,
		0x12, 0xe4, 0xfb, 0xa1, 0xa6, 0xfb, 0xa0, 0xfa, 0x3f, 0xcb, 0x45, 0x72, 0x29, 0x98, 0xb0, 0x84,
		0x8f, 0x84, 0x63, 0x36, 0x4d, 0x3f, 0x88, 0xcc, 0xc9, 0x73, 0x48, 0x85, 0xb7, 0x5f, 0x4f, 0x8b,
		0x57, 0x8f, 0xbf, 0xbf, 0x9e, 0x15, 0xaf, 0x1e, 0x87, 0x0f, 0xcf, 0xc2, 0x5f, 0xff, 0x94, 0x5e,
		0x7f, 0x97, 0xbe, 0x9e, 0x16, 0xcb, 0xa3, 0x67, 0x4b, 0x17, 0x5f, 0x4f, 0x8b, 0x17, 0x8f, 0xef,
		0xde, 0x7e, 0xfb, 0xf6, 0x21, 0xea, 0x67, 0xde, 0xfd, 0x73, 0xfe, 0x7a, 0x32, 0xf9, 0x50, 0x69,
		0xf4, 0xea, 0xf9, 0xd7, 0xd3, 0x62, 0xe9, 0xf1, 0x1d, 0x9d, 0xd8, 0x3e, 0x52, 0xe2, 0xad, 0xb6,
		0xe4, 0xcf, 0xdc, 0x40, 0xff, 0xbf, 0xb7, 0x7b, 0x87, 0xfd, 0xdd, 0xff, 0x10, 0x02, 0x9f, 0x95,
		0xd0, 0xf4, 0x3d, 0x17, 0x2e, 0x32, 0x32, 0x11, 0x41, 0xf0, 0x97, 0x0a, 0x2d, 0x99, 0xbd, 0x1e,
		0x18, 0x0a, 0x18, 0x0a, 0x18, 0xca, 0xd1, 0x32, 0x94, 0x2e, 0x33, 0x3b, 0xb4, 0xbb, 0xb4, 0x27,
		0xec, 0xe4, 0x92, 0x96, 0x9d, 0x8c, 0xf2, 0x67, 0x56, 0x98, 0x2b, 0xbb, 0x6e, 0xb3, 0x8e, 0xed,
		0xb0, 0xf6, 0x30, 0x71, 0x36, 0x7e, 0x72, 0x86, 0x6e, 0x6d, 0x7c, 0x61, 0xf2, 0x7c, 0x98, 0xfe,
		0xca, 0x93, 0x6f, 0xf1, 0xac, 0x3e, 0x07, 0x0f, 0x12, 0x8c, 0x0a, 0x3f, 0x01, 0x3f, 0x01, 0x3f,
		0x71, 0xb4, 0x7e, 0x82, 0xd0, 0x06, 0xcc, 0xda, 0x01, 0xc2, 0x0a, 0x9e, 0x82, 0x66, 0x3a, 0x3f,
		0xe8, 0xf7, 0x40, 0x70, 0xd8, 0xb0, 0xd1, 0xb0, 0x1d, 0x7e, 0x95, 0x45, 0x61, 0xd5, 0x0f, 0x7d,
		0xc9, 0xe4, 0x64, 0xfc, 0x5b, 0xd7, 0xb4, 0x82, 0x58, 0xa2, 0x66, 0xff, 0xb0, 0x7d, 0x8f, 0xe3,
		0x85, 0x14, 0xf6, 0xc3, 0xf4, 0xed, 0x9f, 0xc1, 0x77, 0xe9, 0x98, 0x5d, 0x8f, 0xd1, 0xef, 0x1c,
		0xe2, 0x50, 0x3d, 0xd6, 0x30, 0x7f, 0xf1, 0x9f, 0xda, 0xca, 0x39, 0xe6, 0x36, 0x15, 0xb3, 0x4c,
		0x3f, 0xda, 0x63, 0xce, 0xc8, 0x26, 0xa7, 0x94, 0xc5, 0x78, 0x64, 0x90, 0x4e, 0x90, 0x4e, 0x90,
		0x4e, 0x90, 0x4e, 0x90, 0x4e, 0x90, 0x4e, 0x90, 0x4e, 0x90, 0x4e, 0x90, 0xce, 0x3d, 0x92, 0x4e,
		0x22, 0x77, 0x51, 0xb7, 0x3d, 0x5f, 0xf4, 0x7d, 0x97, 0xd6, 0x65, 0x34, 0x6c, 0x47, 0xea, 0xb2,
		0xc0, 0xed, 0x12, 0x8b, 0x50, 0xa0, 0x5d, 0x33, 0x23, 0x9f, 0x7d, 0x2c, 0x97, 0x2b, 0x97, 0xe5,
		0xf2, 0xe9, 0xe5, 0xf9, 0xe5, 0xe9, 0xd5, 0xc5, 0xc5, 0x59, 0x85, 0xb2, 0x0b, 0x49, 0x41, 0x75,
		0xdb, 0xcc, 0x65, 0xed, 0x9b, 0x97, 0xc2, 0xb5, 0xe0, 0x0c, 0xba, 0x5d, 0x1e, 0x43, 0x3f, 0x78,
		0xcc, 0x25, 0xd5, 0x81, 0x6c, 0x84, 0x23, 0x4f, 0xbd, 0x7e, 0xb1, 0x6b, 0x3f, 0xdb, 0x1c, 0xe2,
		0x91, 0xe9, 0xd0, 0x08, 0x48, 0x10, 0x90, 0x20, 0x20, 0x39, 0xda, 0x80, 0x64, 0x60, 0x3b, 0xfe,
		0x47, 0x44, 0x24, 0x88, 0x48, 0x10, 0x91, 0xec, 0x3f, 0x22, 0x29, 0x5d, 0x5c, 0x60, 0x72, 0x8f,
		0x3b, 0x24, 0xc9, 0x04, 0xf1, 0xec, 0x32, 0xe7, 0x47, 0xb8, 0x3b, 0x85, 0x98, 0x75, 0x8e, 0xc6,
		0x05, 0xe5, 0x04, 0xe5, 0x04, 0xe5, 0x3c, 0x6a, 0xca, 0x79, 0x56, 0xe1, 0xc0, 0x39, 0x2b, 0xe0,
		0x9c, 0xe0, 0x9c, 0xe0, 0x9c, 0xd1, 0xa6, 0xb6, 0x72, 0x71, 0x71, 0x0e, 0xd6, 0x79, 0xe4, 0xac,
		0x93, 0xc8, 0x67, 0x70, 0xec, 0x0d, 0xc4, 0xb1, 0x27, 0x10, 0xc7, 0xae, 0xe1, 0xc3, 0x26, 0x31,
		0x67, 0x33, 0x4d, 0x62, 0xc6, 0x4d, 0x61, 0xbe, 0x39, 0xc1, 0x6b, 0x1f, 0x4b, 0xa7, 0xa7, 0x2b,
		0x5e, 0x7c, 0x2f, 0x7c, 0x62, 0xae, 0x67, 0xf7, 0x1c, 0xa1, 0x22, 0xbc, 0x95, 0x9b, 0x3f, 0x2b,
		0xef, 0x84, 0x56, 0x9f, 0x59, 0x76, 0xc7, 0xb6, 0xc2, 0xaa, 0x97, 0x0f, 0x07, 0xde, 0x7d, 0x9f,
		0x77, 0x87, 0xa0, 0xfd, 0x34, 0xe0, 0xe7, 0x36, 0xd9, 0xb0, 0x66, 0x07, 0x18, 0x43, 0xf7, 0xc7,
		0xdd, 0x9f, 0xc8, 0xa3, 0xe8, 0x3e, 0x6d, 0xdb, 0x30, 0xc4, 0xd1, 0x88, 0xa3, 0x11, 0x47, 0x1f,
		0x60, 0x1c, 0x6d, 0xf7, 0x8b, 0x63, 0x53, 0x50, 0x24, 0x3e, 0x02, 0x69, 0x52, 0xf1, 0x76, 0x45,
		0x38, 0xe6, 0x08, 0x89, 0x83, 0x21, 0x6f, 0xd4, 0x4b, 0x63, 0x8b, 0xe0, 0xf2, 0x38, 0xeb, 0x85,
		0x4f, 0xda, 0x82, 0x1f, 0xd8, 0xa9, 0xa4, 0x31, 0xd2, 0x4a, 0x67, 0xa4, 0x1e, 0xf7, 0xa6, 0x17,
		0xff, 0x72, 0x4c, 0x73, 0xa4, 0x92, 0xee, 0x58, 0x12, 0x81, 0xd2, 0x45, 0x19, 0x42, 0x90, 0x89,
		0xf0, 0x81, 0xdf, 0xa8, 0x8f, 0x59, 0x6e, 0xa4, 0x8c, 0xb3, 0xca, 0x56, 0x8d, 0x9d, 0xee, 0x59,
		0x65, 0x72, 0xd3, 0x68, 0x6a, 0xaa, 0xae, 0x56, 0xd5, 0x3a, 0x8e, 0x2c, 0xdb, 0x01, 0x2c, 0xf1,
		0x41, 0xbf, 0x47, 0x17, 0xfb, 0x8d, 0x10, 0xdd, 0x69, 0x38, 0xcc, 0x6d, 0x33, 0x42, 0x72, 0x15,
		0xc7, 0x6b, 0x6c, 0x83, 0xe8, 0x0e, 0x10, 0x6d, 0x83, 0x48, 0x31, 0x64, 0x60, 0xb4, 0x19, 0xa3,
		0x7a, 0x49, 0x07, 0x44, 0x5b, 0xdc, 0xbf, 0x8c, 0x63, 0xdb, 0x36, 0x23, 0xa4, 0xb5, 0x3e, 0x41,
		0x88, 0x36, 0x43, 0xa4, 0x57, 0x81, 0xd0, 0x66, 0x84, 0x1e, 0x6a, 0x4d, 0x9c, 0xeb, 0x83, 0x55,
		0x37, 0xee, 0x92, 0x5e, 0xf0, 0xc2, 0x75, 0x17, 0x7e, 0x1d, 0xb1, 0x17, 0xc6, 0xc7, 0x0a, 0x5c,
		0x62, 0x44, 0xb1, 0x02, 0xb7, 0x70, 0x01, 0xac, 0xc0, 0xd1, 0x7a, 0x3e, 0x34, 0xc3, 0x46, 0x33,
		0xec, 0x1d, 0x1d, 0x21, 0x9a, 0x61, 0xa3, 0x19, 0x36, 0x2d, 0x03, 0xe1, 0xda, 0x07, 0x7b, 0xfd,
		0xa5, 0xc0, 0x4b, 0xc0, 0x4b, 0xc0, 0x4b, 0x8e, 0x96, 0x97, 0xa0, 0x05, 0x36, 0x4e, 0xfe, 0xcb,
		0xfe, 0xc9, 0x7f, 0x54, 0x47, 0x48, 0x92, 0x1d, 0xfc, 0x47, 0x70, 0x66, 0x64, 0x82, 0x73, 0xff,
		0xde, 0xa4, 0x28, 0x21, 0x94, 0x95, 0x1a, 0x85, 0xbf, 0x9f, 0x58, 0x72, 0x8a, 0x4b, 0x78, 0x1a,
		0xdf, 0x87, 0x0f, 0x27, 0x1f, 0x3e, 0x9c, 0x0c, 0x45, 0xe0, 0xc4, 0x7f, 0xe9, 0xb3, 0x7f, 0xfd,
		0x21, 0x56, 0xeb, 0x86, 0xdc, 0xfc, 0x54, 0xfe, 0x43, 0xe8, 0xb9, 0xc2, 0x9a, 0xd7, 0x1b, 0xf2,
		0x67, 0xa9, 0xf6, 0x47, 0xc6, 0x8f, 0xef, 0x0b, 0xb1, 0x3e, 0xa4, 0xc3, 0xfb, 0x92, 0x4d, 0x46,
		0x26, 0x18, 0x7d, 0x8d, 0x79, 0x96, 0x6b, 0xf7, 0x49, 0x0f, 0xe6, 0x9d, 0x49, 0x8e, 0xff, 0x2c,
		0x17, 0xbb, 0xe6, 0x0b, 0x73, 0x85, 0x8e, 0xcd, 0xba, 0x6d, 0x4f, 0x30, 0x5d, 0x26, 0xfc, 0x34,
		0xbb, 0x76, 0x5b, 0x08, 0x26, 0x5b, 0xf0, 0x9f, 0x98, 0x20, 0x56, 0xeb, 0x42, 0x80, 0x8d, 0x60,
		0x7b, 0xdf, 0x9c, 0xe0, 0x13, 0x01, 0x72, 0x21, 0x44, 0x54, 0xb2, 0xc0, 0x81, 0x95, 0xce, 0x8a,
		0x6d, 0x7b, 0x06, 0x42, 0x42, 0x02, 0xc1, 0x93, 0x92, 0xce, 0x49, 0x71, 0xd2, 0x59, 0xca, 0x07,
		0x1b, 0x79, 0x93, 0x6e, 0x7c, 0x1f, 0xd7, 0xb7, 0x11, 0xb1, 0x1e, 0x5a, 0xb6, 0x53, 0x48, 0x74,
		0xac, 0x2f, 0x09, 0xbf, 0x89, 0x27, 0x85, 0xd1, 0x67, 0x3d, 0xc6, 0xbc, 0x15, 0xec, 0xfe, 0xcf,
		0x4a, 0xec, 0xd9, 0x9a, 0xcd, 0xc7, 0xc6, 0xed, 0x2b, 0x90, 0xf0, 0x9c, 0xe2, 0xc4, 0xb9, 0x0d,
		0x8a, 0x5c, 0x06, 0x75, 0xee, 0x82, 0xca, 0x2b, 0x90, 0xe7, 0x26, 0xc8, 0x0d, 0x3f, 0x87, 0xdc,
		0x43, 0xba, 0x7c, 0x3e, 0xe9, 0xb9, 0xc2, 0x05, 0x6b, 0x2c, 0xbf, 0x44, 0x67, 0x87, 0x8f, 0xc6,
		0xcb, 0xd8, 0xe1, 0xe1, 0xa7, 0x38, 0x3c, 0x3c, 0x33, 0x89, 0x45, 0x1c, 0x1e, 0x9e, 0xb6, 0x92,
		0x4f, 0x06, 0xc2, 0xe1, 0xe1, 0x5c, 0xcc, 0x03, 0x0f, 0x33, 0xc1, 0xdb, 0x5c, 0xf0, 0x8c, 0x00,
		0x05, 0xac, 0x4b, 0xa4, 0x15, 0xd9, 0x09, 0x87, 0xb2, 0x5f, 0xa2, 0x72, 0xf4, 0xfb, 0x25, 0xc2,
		0x05, 0x75, 0xb3, 0xd8, 0x11, 0x8b, 0xb7, 0x8f, 0xff, 0x9c, 0xbd, 0x2f, 0xbf, 0x5e, 0xbf, 0xfb,
		0xe7, 0xf2, 0x75, 0xf1, 0xc9, 0xdf, 0xab, 0xde, 0x76, 0xf6, 0xfe, 0xf2, 0xf5, 0x7a, 0xcd, 0x2b,
		0x95, 0xd7, 0xeb, 0x1d, 0xc7, 0xb8, 0x78, 0x7d, 0xbb, 0xf4, 0xd6, 0xe0, 0xf9, 0xd2, 0xba, 0x0f,
		0x94, 0xd7, 0x7c, 0xe0, 0x7c, 0xdd, 0x07, 0xce, 0xd7, 0x7c, 0x60, 0xed, 0x2d, 0x95, 0xd6, 0x7c,
		0xe0, 0xe2, 0xf5, 0xf7, 0xd2, 0xfb, 0xdf, 0xae, 0x7e, 0x6b, 0xe5, 0xf5, 0xdd, 0xef, 0x75, 0xaf,
		0x5d, 0xbe, 0xfe, 0xbe, 0x7e, 0xf7, 0xee, 0xe4, 0xed, 0x59, 0xe9, 0xeb, 0x69, 0xf1, 0xe3, 0x70,
		0xdb, 0xc3, 0xd9, 0xe3, 0xd2, 0x6e, 0x88, 0xf0, 0xff, 0xc7, 0xbc, 0x9f, 0x04, 0x52, 0x99, 0x59,
		0xa9, 0xc4, 0x6e, 0x9b, 0x5d, 0x99, 0x2c, 0x8e, 0x9e, 0x07, 0xbf, 0x05, 0xbf, 0x05, 0xbf, 0xdd,
		0x03, 0xbf, 0xcd, 0xdb, 0xbe, 0x9b, 0xca, 0xba, 0x7d, 0x37, 0x95, 0xa3, 0x38, 0x7a, 0x7e, 0xc6,
		0xd6, 0x77, 0xba, 0xbd, 0xbf, 0x8b, 0x5d, 0xf3, 0x3b, 0xeb, 0xf2, 0xf5, 0x29, 0x33, 0xd7, 0x81,
		0x2f, 0x81, 0x2f, 0x81, 0x2f, 0x39, 0xee, 0x5c, 0x09, 0xb9, 0x39, 0x98, 0x35, 0x09, 0x97, 0x68,
		0x97, 0x4e, 0x3c, 0x38, 0xda, 0xa5, 0xa7, 0xac, 0x7f, 0xf3, 0x53, 0x9b, 0x46, 0xbb, 0xf4, 0xb3,
		0xd3, 0xf2, 0xc7, 0x8b, 0x4b, 0x34, 0x4c, 0x4f, 0xc7, 0x4c, 0xd3, 0x8f, 0x96, 0xb7, 0xe3, 0xea,
		0xf9, 0x1c, 0x55, 0x0f, 0xf2, 0x09, 0xf2, 0x09, 0xf2, 0x79, 0xbc, 0xe4, 0x13, 0xc7, 0xd4, 0x83,
		0x71, 0x82, 0x71, 0x66, 0x83, 0x71, 0xe2, 0x98, 0x7a, 0x90, 0xcd, 0x8c, 0x90, 0x4d, 0x4e, 0x6b,
		0x6a, 0xe3, 0x91, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41, 0x3a, 0x41,
		0x3a, 0x41, 0x3a, 0x41, 0x3a, 0xf7, 0x48, 0x3a, 0x89, 0xdc, 0x45, 0xdd, 0xf6, 0x7c, 0xd1, 0xf7,
		0x5d, 0x5a, 0x97, 0xd1, 0xb0, 0x1d, 0xa9, 0xcb, 0x02, 0xb7, 0x4b, 0x2c, 0x42, 0x81, 0x76, 0xcd,
		0x8c, 0x7c, 0xf6, 0xb1, 0x5c, 0xae, 0x5c, 0x96, 0xcb, 0xa7, 0x97, 0xe7, 0x97, 0xa7, 0x57, 0x17,
		0x17, 0x67, 0x15, 0xca, 0x53, 0x0f, 0x0a, 0xaa, 0xdb, 0x66, 0x2e, 0x6b, 0xdf, 0xbc, 0x14, 0xae,
		0x05, 0x67, 0xd0, 0xed, 0xf2, 0x18, 0xfa, 0xc1, 0x63, 0x2e, 0xa9, 0x0e, 0x64, 0x23, 0x1c, 0x79,
		0xea, 0xf5, 0x8b, 0x5d, 0xfb, 0xd9, 0xe6, 0x10, 0x8f, 0x4c, 0x87, 0x46, 0x40, 0x82, 0x80, 0x04,
		0x01, 0xc9, 0xd1, 0x06, 0x24, 0xd4, 0x07, 0xc0, 0x21, 0x22, 0x41, 0x44, 0x82, 0x88, 0x24, 0xe6,
		0xd4, 0x96, 0x2e, 0xb0, 0xe9, 0xe2, 0xc8, 0x43, 0x92, 0x4c, 0x10, 0xcf, 0x2e, 0x73, 0x7e, 0x84,
		0xdb, 0xa7, 0x89, 0x59, 0xe7, 0x68, 0x5c, 0x50, 0x4e, 0x50, 0x4e, 0x50, 0xce, 0xa3, 0xa6, 0x9c,
		0x67, 0x15, 0x0e, 0x9c, 0xb3, 0x02, 0xce, 0x09, 0xce, 0x09, 0xce, 0x19, 0x6d, 0x6a, 0x2b, 0x17,
		0x17, 0xe7, 0x60, 0x9d, 0x47, 0xce, 0x3a, 0x89, 0x7c, 0x06, 0x61, 0xc7, 0xdd, 0xa5, 0xb1, 0x5d,
		0xd6, 0x61, 0x2e, 0x73, 0xac, 0x83, 0x3a, 0x5e, 0x5f, 0xbb, 0xad, 0x0a, 0x97, 0x57, 0x67, 0xd7,
		0x82, 0xec, 0xf8, 0xcc, 0x75, 0x98, 0x2f, 0x34, 0xdd, 0x9e, 0xdf, 0xb3, 0x7a, 0xdd, 0x6f, 0x4e,
		0xf0, 0xda, 0xc7, 0xd2, 0xe9, 0xe9, 0x8a, 0x17, 0xdf, 0x0b, 0x9f, 0x98, 0xeb, 0xd9, 0x3d, 0x47,
		0xa8, 0x08, 0x6f, 0xe5, 0xe6, 0xcf, 0xca, 0x3b, 0xa1, 0xd5, 0x67, 0x96, 0xdd, 0xb1, 0xad, 0xb0,
		0x84, 0xee, 0x03, 0x8f, 0x23, 0x8f, 0x39, 0x51, 0xbf, 0x55, 0x14, 0x70, 0x3a, 0x97, 0x9c, 0xec,
		0x01, 0x6f, 0x36, 0xb8, 0x92, 0x15, 0x72, 0x9b, 0x6c, 0x58, 0xb3, 0x03, 0x8c, 0xa1, 0xfb, 0xa3,
		0xe9, 0xa5, 0x8f, 0xa2, 0x27, 0x23, 0x23, 0x8e, 0x46, 0x1c, 0x8d, 0x38, 0xfa, 0x68, 0xe3, 0x68,
		0xbb, 0x5f, 0x1c, 0x9b, 0x82, 0xa2, 0x1f, 0x5c, 0x85, 0x43, 0x4b, 0x86, 0x2b, 0xc2, 0x31, 0x47,
		0x48, 0x1c, 0x0c, 0x79, 0xa3, 0x5e, 0x1a, 0x5b, 0x04, 0x97, 0x43, 0xd4, 0xc5, 0x29, 0x6d, 0xc1,
		0x0f, 0xec, 0x54, 0xd2, 0x18, 0x69, 0xa5, 0x33, 0x52, 0x8f, 0x7b, 0xd3, 0x8b, 0x7f, 0x39, 0xa6,
		0x39, 0x52, 0x49, 0x77, 0x2c, 0x89, 0x40, 0xe9, 0xa2, 0x0c, 0x21, 0xc8, 0x44, 0xf8, 0xc0, 0x6f,
		0x54, 0xda, 0xe3, 0xad, 0x89, 0x45, 0x9f, 0xa3, 0xe3, 0xb2, 0xdb, 0xcc, 0xf1, 0x6d, 0xff, 0x85,
		0xb6, 0x4d, 0xd3, 0x12, 0x37, 0xe0, 0xe1, 0xbf, 0xe4, 0xd1, 0xad, 0xdf, 0x98, 0x1e, 0xc7, 0x54,
		0xc4, 0xcc, 0xa9, 0xed, 0x4d, 0x4d, 0xd5, 0xd5, 0xaa, 0x5a, 0xe7, 0x95, 0x89, 0x08, 0xed, 0x8d,
		0xc7, 0xcd, 0x23, 0x0b, 0xa9, 0x1e, 0x71, 0x2f, 0x3e, 0xe8, 0xf7, 0x85, 0x43, 0xf4, 0x2d, 0xe9,
		0x41, 0x74, 0xa7, 0x49, 0x40, 0x68, 0x23, 0x42, 0x72, 0xb5, 0xd1, 0x04, 0x44, 0x9b, 0x21, 0xba,
		0x03, 0x44, 0xdb, 0x20, 0x52, 0x0c, 0x19, 0x18, 0x6d, 0xc6, 0xa8, 0x5e, 0xd2, 0x01, 0xd1, 0x16,
		0xf7, 0x2f, 0x37, 0x80, 0xd0, 0x46, 0x84, 0xb4, 0xd6, 0x27, 0x08, 0xd1, 0x66, 0x88, 0xf4, 0x2a,
		0x10, 0xda, 0x8c, 0xd0, 0x43, 0x8d, 0x27, 0x42, 0x5c, 0x46, 0x7e, 0xc4, 0xaa, 0x5b, 0xca, 0xf7,
		0x43, 0xb1, 0xea, 0xe6, 0x85, 0xeb, 0x2e, 0xfc, 0x0e, 0xfc, 0x59, 0x18, 0x1f, 0x2b, 0x70, 0x89,
		0x11, 0xc5, 0x0a, 0xdc, 0xc2, 0x05, 0xb0, 0x02, 0x47, 0xeb, 0xf9, 0x70, 0xd6, 0x0f, 0xce, 0xfa,
		0xc1, 0x59, 0x3f, 0x24, 0x44, 0x01, 0x67, 0xfd, 0x40, 0x2a, 0x71, 0xd6, 0x4f, 0x7a, 0xfc, 0x95,
		0xeb, 0x31, 0x3f, 0xeb, 0x2f, 0x05, 0x56, 0x0b, 0x56, 0x0b, 0x56, 0x7b, 0xb4, 0xac, 0x16, 0x27,
		0xfc, 0x14, 0xf2, 0xe7, 0x51, 0x78, 0x1e, 0xee, 0xb3, 0x7c, 0x09, 0x78, 0x10, 0x78, 0x10, 0x78,
		0x90, 0xe3, 0xce, 0x8b, 0xe0, 0x5c, 0x1f, 0xe2, 0x7f, 0x28, 0xf5, 0xdd, 0x4d, 0x08, 0x51, 0xea,
		0xbb, 0x66, 0x6a, 0x71, 0xae, 0x4f, 0x9a, 0x66, 0x9a, 0x7e, 0xb4, 0xcc, 0x24, 0x3a, 0xde, 0xec,
		0x51, 0x7d, 0x0a, 0xa2, 0xe3, 0xf4, 0xfc, 0xb0, 0x32, 0x92, 0x44, 0x63, 0x0a, 0x9e, 0xf5, 0xc4,
		0x9e, 0xcd, 0xfe, 0x24, 0x9a, 0xe8, 0x33, 0xc7, 0x0a, 0x89, 0x62, 0xd1, 0xb4, 0xba, 0x27, 0xa3,
		0x9f, 0x61, 0xec, 0x30, 0x7a, 0x10, 0xfe, 0x66, 0x8e, 0xef, 0xda, 0xcc, 0x9b, 0x3c, 0x7e, 0x39,
		0x09, 0xbc, 0xde, 0xc9, 0xf0, 0xa3, 0x05, 0x0a, 0xe2, 0xee, 0xbb, 0x03, 0xcb, 0x77, 0x46, 0x2e,
		0x55, 0x9d, 0xdc, 0x96, 0x68, 0x75, 0x8d, 0xd1, 0x4f, 0x8b, 0xf9, 0xde, 0xe8, 0x77, 0xf0, 0x4b,
		0x1a, 0xde, 0xd2, 0xf8, 0xe1, 0x8b, 0x21, 0xf7, 0x7f, 0x56, 0x8c, 0x11, 0xeb, 0x7d, 0xb3, 0x9f,
		0x19, 0x4f, 0x30, 0xdb, 0x05, 0xdb, 0x7a, 0xee, 0xff, 0xac, 0x24, 0x9e, 0xe5, 0x29, 0x2d, 0x19,
		0x8e, 0x97, 0x50, 0xfe, 0xc6, 0xb1, 0x6c, 0xc2, 0x61, 0xa8, 0x82, 0x11, 0xca, 0x20, 0x84, 0x57,
		0xf0, 0x41, 0x1d, 0x74, 0x70, 0x0b, 0x36, 0xb8, 0x05, 0x19, 0x1c, 0x83, 0x8b, 0xfd, 0x5a, 0xe3,
		0x9a, 0x4d, 0xd3, 0xf6, 0xb8, 0x60, 0x8d, 0xf5, 0x81, 0x38, 0x39, 0x41, 0x66, 0x90, 0x09, 0x95,
		0x1f, 0x19, 0x09, 0x64, 0x24, 0x90, 0x91, 0xe0, 0x67, 0x4c, 0x66, 0x8c, 0x4a, 0x9b, 0x83, 0x60,
		0x4d, 0x4d, 0x4b, 0x9b, 0xba, 0x83, 0x09, 0x71, 0xca, 0x93, 0x9b, 0xa1, 0xe1, 0x69, 0x70, 0xd2,
		0x32, 0x3c, 0xbc, 0x0d, 0x50, 0x6a, 0x86, 0x28, 0x35, 0x83, 0x94, 0xa2, 0x61, 0xe2, 0x14, 0x8b,
		0x13, 0x4b, 0x3f, 0x79, 0x0a, 0x75, 0x39, 0x66, 0x41, 0x2d, 0xe7, 0x6e, 0x40, 0x55, 0xd5, 0x9a,
		0x84, 0x22, 0xce, 0x6d, 0x28, 0xd5, 0x5a, 0xba, 0xf1, 0xa0, 0x68, 0x92, 0x58, 0xbd, 0x17, 0x6f,
		0xea, 0x92, 0x21, 0xd6, 0x6a, 0x1a, 0x6a, 0x17, 0x76, 0xc7, 0xeb, 0x46, 0xfa, 0xa2, 0x2a, 0x35,
		0xa3, 0x55, 0x55, 0x9b, 0x92, 0xa1, 0xde, 0x1a, 0x2d, 0xad, 0x0a, 0xf8, 0x76, 0x87, 0x8f, 0xa3,
		0x92, 0xa6, 0xa9, 0xac, 0xe9, 0xa0, 0xb8, 0x67, 0xe5, 0x4d, 0x41, 0x0a, 0x33, 0x82, 0x63, 0xaa,
		0x4a, 0x7d, 0x3c, 0xb0, 0x06, 0x7f, 0x8b, 0xb5, 0x86, 0xac, 0x18, 0x4d, 0x4d, 0xbd, 0x97, 0x6f,
		0x64, 0x5d, 0xaa, 0x01, 0xd7, 0xe4, 0xb8, 0x4a, 0x9a, 0x66, 0xc8, 0x4a, 0x20, 0xa5, 0x86, 0xa6,
		0x3e, 0xe8, 0xb2, 0x72, 0x67, 0xdc, 0xc3, 0x10, 0x50, 0x20, 0x7b, 0x5f, 0xd3, 0x5a, 0x86, 0xae,
		0xaa, 0x46, 0x5d, 0x55, 0xee, 0x00, 0x68, 0x72, 0x40, 0x15, 0x35, 0x14, 0x51, 0xc9, 0xd0, 0xd5,
		0xc0, 0x1c, 0x00, 0xd2, 0xe4, 0x90, 0x36, 0x55, 0x0d, 0x38, 0x12, 0xe0, 0xa8, 0x49, 0xff, 0x4f,
		0xaa, 0xea, 0x10, 0x4f, 0x62, 0x58, 0x03, 0xaf, 0x14, 0xf0, 0x52, 0xe3, 0x56, 0x94, 0xeb, 0x52,
		0xcd, 0x68, 0xaa, 0x75, 0xb9, 0xfa, 0x25, 0x05, 0x64, 0xb9, 0x5e, 0xe1, 0x11, 0x31, 0x5e, 0x46,
		0x69, 0x5f, 0xfe, 0xf0, 0x4b, 0x9b, 0xde, 0xe5, 0x0f, 0xc1, 0x94, 0x68, 0x5c, 0xfe, 0x80, 0x4b,
		0x8d, 0xae, 0xe5, 0x0f, 0x3a, 0xbe, 0xb4, 0x2c, 0x7f, 0x78, 0xa5, 0x4a, 0xbf, 0xf2, 0x07, 0x5f,
		0xda, 0x34, 0x2b, 0x07, 0x08, 0x3e, 0x34, 0xeb, 0x72, 0x55, 0xd4, 0x87, 0x69, 0x53, 0xa9, 0xd5,
		0x32, 0x34, 0xa9, 0x59, 0xff, 0x82, 0x94, 0x34, 0x17, 0x54, 0x6b, 0x22, 0x52, 0xa8, 0x84, 0x70,
		0x4a, 0x35, 0x31, 0x60, 0x83, 0x9f, 0xb4, 0xb3, 0xd2, 0x47, 0xe0, 0xca, 0x03, 0xd7, 0xab, 0x12,
		0x70, 0xe5, 0x80, 0x6b, 0xe9, 0xa2, 0x02, 0x5c, 0x39, 0xe0, 0x5a, 0x29, 0x23, 0xa5, 0x72, 0x7c,
		0x5c, 0x85, 0xab, 0x57, 0xcd, 0x2f, 0x6c, 0xe9, 0x78, 0xcf, 0x63, 0xc0, 0x8f, 0xa7, 0x97, 0x3c,
		0x02, 0xfc, 0xb8, 0x7a, 0xc3, 0x23, 0xc0, 0x8f, 0xa7, 0xd7, 0xcb, 0x27, 0x7c, 0xff, 0x7e, 0x90,
		0x5a, 0x3a, 0x62, 0x5c, 0x4e, 0xb8, 0xd6, 0x44, 0x6c, 0xbb, 0x20, 0x05, 0x54, 0xaa, 0x89, 0x1a,
		0xe2, 0x5c, 0xbe, 0xc8, 0x22, 0xd2, 0xe5, 0x84, 0x2c, 0x62, 0x5d, 0x5e, 0xc8, 0x22, 0xda, 0x3d,
		0x4e, 0xde, 0xc2, 0xd5, 0xbf, 0xe6, 0x19, 0xb8, 0x74, 0xfc, 0xe8, 0x71, 0x20, 0x88, 0x98, 0x37,
		0xcb, 0x7e, 0xf1, 0x28, 0x10, 0x44, 0xdc, 0xbb, 0x09, 0x40, 0xa9, 0x7a, 0xaf, 0x62, 0x31, 0x97,
		0x16, 0x48, 0x45, 0x1d, 0x62, 0x09, 0xda, 0x75, 0x0c, 0x6a, 0xc3, 0x7d, 0xb6, 0x73, 0x83, 0x16,
		0xf2, 0x69, 0xc4, 0x50, 0xc2, 0xd0, 0x1c, 0x97, 0xea, 0xc0, 0xd4, 0x6c, 0xc7, 0xeb, 0xb3, 0x6e,
		0x80, 0xd3, 0xf0, 0x01, 0xb3, 0x21, 0xd6, 0x6f, 0x55, 0xad, 0x21, 0xd5, 0x8c, 0x7f, 0x3f, 0x48,
		0xda, 0x17, 0xe4, 0xeb, 0x92, 0x23, 0xfa, 0x50, 0xd7, 0xe5, 0x66, 0x5d, 0x32, 0x64, 0x45, 0xbf,
		0x35, 0x5a, 0xa2, 0x2e, 0xb7, 0x6e, 0xbf, 0x00, 0x5d, 0x22, 0x74, 0x15, 0xd5, 0x90, 0x34, 0x4d,
		0xc5, 0x32, 0x13, 0x09, 0x94, 0xad, 0x87, 0xea, 0x7d, 0x20, 0xa7, 0x92, 0x76, 0x2b, 0x56, 0x25,
		0x60, 0x4a, 0x86, 0xa9, 0x3e, 0xac, 0x5c, 0x52, 0x74, 0x0d, 0xa5, 0x7e, 0xc7, 0xc3, 0x4c, 0x52,
		0x73, 0xa6, 0xf9, 0x43, 0x6e, 0x1f, 0x4e, 0x33, 0x77, 0x28, 0xf2, 0x77, 0x8e, 0x79, 0x84, 0x2c,
		0x2d, 0x27, 0x98, 0x5b, 0xec, 0x52, 0x71, 0x76, 0xb9, 0x42, 0x0f, 0x59, 0x33, 0x0e, 0x70, 0xa6,
		0x18, 0x1a, 0x80, 0x70, 0x65, 0x45, 0x87, 0xe0, 0xf2, 0xb6, 0x83, 0x76, 0xaf, 0x36, 0x24, 0x43,
		0xbc, 0x93, 0x14, 0x7d, 0xb2, 0xa2, 0x5a, 0x93, 0x5b, 0x55, 0xf5, 0x93, 0xa4, 0x7d, 0x41, 0x4e,
		0x2d, 0x1d, 0x80, 0x91, 0xd6, 0x87, 0x9a, 0x61, 0x5d, 0x31, 0x39, 0x8a, 0x60, 0x4e, 0x29, 0x41,
		0x0c, 0x83, 0x05, 0x55, 0xc3, 0xfa, 0xe4, 0x4e, 0x38, 0xca, 0xca, 0x27, 0x49, 0x6b, 0x49, 0x86,
		0x22, 0xc9, 0x77, 0xf7, 0x37, 0xaa, 0x66, 0x88, 0xb5, 0x4f, 0x92, 0xa6, 0xcb, 0x2d, 0xa9, 0x11,
		0x60, 0x0b, 0x63, 0xc5, 0x11, 0x5c, 0x98, 0xa9, 0x63, 0x57, 0x2f, 0x18, 0xa8, 0xe8, 0x08, 0xb6,
		0xd4, 0xba, 0x5c, 0x95, 0x75, 0x51, 0x97, 0x55, 0x05, 0xf6, 0x89, 0x23, 0xb6, 0x30, 0x4f, 0x47,
		0xae, 0x5c, 0xb0, 0x4e, 0x5b, 0x01, 0x6c, 0xa8, 0x37, 0x72, 0x5d, 0x32, 0x9a, 0x9a, 0x74, 0x2b,
		0x7f, 0x06, 0x77, 0x4a, 0x09, 0x59, 0x58, 0xa6, 0xa3, 0x56, 0x2c, 0xd8, 0xa5, 0x88, 0xf0, 0x81,
		0x32, 0xa5, 0x01, 0x2c, 0xac, 0xd2, 0x31, 0xab, 0x15, 0x8c, 0xd2, 0x76, 0xf4, 0x1e, 0xea, 0xba,
		0x5c, 0x15, 0x5b, 0xba, 0x51, 0x97, 0x5b, 0xba, 0xa4, 0x48, 0x9a, 0x51, 0x53, 0x15, 0x1c, 0x24,
		0xc6, 0x07, 0x55, 0x98, 0xa3, 0xa3, 0x55, 0x28, 0xd8, 0xa2, 0x38, 0xd0, 0x85, 0x3b, 0x36, 0x61,
		0x8c, 0xf8, 0xc0, 0x0a, 0x6b, 0x74, 0xbc, 0x2a, 0x05, 0x73, 0x14, 0x07, 0x3b, 0x4d, 0x6a, 0xaa,
		0x1a, 0xb2, 0x48, 0xbc, 0x70, 0x85, 0x41, 0x3a, 0x62, 0xa5, 0x82, 0x45, 0xda, 0x0a, 0x9e, 0x52,
		0xab, 0x49, 0x86, 0xac, 0xdc, 0xaa, 0x5a, 0x63, 0x18, 0xe0, 0x6a, 0x52, 0xab, 0xa9, 0x2a, 0x2d,
		0x84, 0x6b, 0x09, 0x71, 0x55, 0xd7, 0xe1, 0xaa, 0x49, 0xb7, 0x0f, 0x2d, 0x9c, 0xaa, 0x4b, 0x0b,
		0x6a, 0xeb, 0xa1, 0x5a, 0x95, 0x5a, 0x2d, 0x80, 0x4a, 0x09, 0xea, 0x83, 0xf2, 0xa7, 0xa2, 0xfe,
		0x47, 0x81, 0xef, 0xcc, 0xb1, 0xf9, 0xc7, 0x7e, 0xb0, 0xd4, 0x40, 0x05, 0x15, 0x3d, 0x56, 0x75,
		0x02, 0x0f, 0xdd, 0x1d, 0x39, 0x2c, 0x62, 0x72, 0xc6, 0x14, 0x66, 0xe8, 0x48, 0x95, 0x09, 0x56,
		0x28, 0x3a, 0x17, 0xc6, 0x62, 0x01, 0x37, 0x50, 0xe5, 0xe6, 0xa7, 0x72, 0x58, 0xd4, 0x81, 0xa0,
		0x8d, 0x12, 0xd3, 0x0a, 0x30, 0xa5, 0xc5, 0x54, 0x11, 0x1b, 0x70, 0x96, 0xc7, 0x67, 0xf3, 0x53,
		0x30, 0x4f, 0x79, 0xc6, 0xae, 0x02, 0xec, 0xb2, 0x68, 0x6e, 0x72, 0x08, 0x5b, 0x7a, 0x89, 0xf5,
		0x3c, 0x83, 0xc7, 0x3d, 0x81, 0x9e, 0x67, 0xf0, 0xb8, 0x27, 0xca, 0x0f, 0x1f, 0xbc, 0xa6, 0x58,
		0xfd, 0x53, 0xd2, 0x0d, 0x5d, 0x55, 0x8d, 0x1b, 0xf9, 0x0e, 0x11, 0x15, 0x25, 0x98, 0xc8, 0xe8,
		0x1c, 0x9b, 0xfa, 0x20, 0x95, 0xb3, 0x03, 0x62, 0x9a, 0xd8, 0x30, 0x9a, 0x9a, 0x7a, 0x53, 0x97,
		0x1a, 0xb0, 0x37, 0x84, 0x58, 0x4a, 0x9a, 0x66, 0xdc, 0xd7, 0x34, 0xe3, 0x56, 0x96, 0xea, 0xd8,
		0xc6, 0x90, 0x1c, 0xce, 0xcf, 0x7a, 0x08, 0x67, 0xf5, 0x5e, 0x94, 0x95, 0x50, 0xc3, 0xeb, 0xaa,
		0x72, 0x07, 0x5c, 0xa9, 0x70, 0x1d, 0xd9, 0x4c, 0x00, 0x9a, 0x14, 0x50, 0x59, 0xa9, 0xaa, 0x8d,
		0x66, 0x5d, 0xd2, 0xa5, 0xa9, 0xbc, 0x02, 0xd5, 0xa4, 0xa8, 0xaa, 0x4d, 0x1d, 0x22, 0x4a, 0x05,
		0x66, 0x4b, 0x33, 0x1e, 0x9a, 0x4d, 0x69, 0xe8, 0x9f, 0x24, 0x0d, 0x69, 0xf0, 0xc4, 0x88, 0x06,
		0xa2, 0xd9, 0x10, 0x95, 0x2f, 0x63, 0x73, 0x8a, 0x2d, 0x76, 0x74, 0x90, 0xaa, 0x4d, 0x1d, 0x70,
		0x26, 0x86, 0xf3, 0x41, 0xd1, 0xa4, 0xaa, 0x7a, 0xa7, 0xc8, 0xff, 0x2b, 0xd5, 0x86, 0x99, 0x67,
		0xb5, 0xa9, 0x03, 0x56, 0x52, 0x58, 0x15, 0x69, 0xc4, 0xa5, 0xbe, 0x34, 0x71, 0x04, 0x0b, 0x35,
		0xb4, 0x9f, 0x53, 0xc5, 0x16, 0x29, 0x9c, 0x4c, 0x24, 0x24, 0x52, 0x0a, 0xa2, 0x73, 0x07, 0x5b,
		0xca, 0xc1, 0x72, 0x5e, 0xf1, 0xe3, 0x1e, 0x71, 0xe4, 0x0d, 0xb8, 0x74, 0x83, 0xdf, 0xbc, 0xa1,
		0x97, 0x4a, 0x90, 0x9b, 0x37, 0xd0, 0xd2, 0x0b, 0x66, 0xf3, 0x86, 0x5c, 0x8a, 0x41, 0x6b, 0x6e,
		0xa1, 0xe3, 0x1b, 0x9c, 0xe6, 0x0d, 0xb6, 0x94, 0x83, 0xd0, 0x5c, 0xc3, 0x97, 0x4e, 0xb0, 0x99,
		0x73, 0x08, 0x3f, 0x03, 0xc3, 0x5d, 0x30, 0xd4, 0xa4, 0x9a, 0xac, 0x49, 0x55, 0x54, 0x3c, 0x12,
		0xc1, 0x88, 0xad, 0x28, 0xc7, 0xa3, 0x32, 0xd8, 0x84, 0xb2, 0x03, 0x56, 0xca, 0x43, 0xe3, 0x46,
		0xd2, 0x64, 0x05, 0x5b, 0xde, 0x28, 0x91, 0x6c, 0x34, 0x44, 0x05, 0x5b, 0x4f, 0x62, 0xc2, 0xa8,
		0x8c, 0x60, 0xd4, 0xa4, 0xd6, 0x43, 0x1d, 0x2b, 0x25, 0x09, 0x51, 0x6c, 0x49, 0xff, 0x36, 0x94,
		0x87, 0x46, 0x80, 0xa6, 0xa4, 0xc3, 0xef, 0x1d, 0x8b, 0x2d, 0xe7, 0x6c, 0x81, 0xf2, 0x01, 0x57,
		0x5a, 0x96, 0x26, 0x5f, 0x68, 0xa5, 0x64, 0x51, 0x72, 0x00, 0x9a, 0xfa, 0xa0, 0x4b, 0x68, 0x5d,
		0xc3, 0x1d, 0x52, 0x04, 0x75, 0xc7, 0xa9, 0x4a, 0x08, 0xf0, 0x76, 0xc5, 0x0d, 0x4d, 0x6b, 0xb8,
		0x22, 0x0a, 0x03, 0x74, 0x94, 0x8a, 0x04, 0xfb, 0xb3, 0x15, 0x36, 0x5d, 0x6e, 0x48, 0x86, 0xf4,
		0xb9, 0x2a, 0x49, 0x35, 0xa9, 0x06, 0xcb, 0x43, 0x88, 0xe5, 0xad, 0x26, 0xde, 0x85, 0x5e, 0x50,
		0x93, 0xc4, 0x56, 0x4b, 0x6a, 0xdc, 0xd4, 0xbf, 0x20, 0x55, 0x92, 0x14, 0xd4, 0x7b, 0xb5, 0x69,
		0xd4, 0xe5, 0x86, 0x8c, 0x44, 0xc9, 0xd1, 0xd8, 0xa4, 0x54, 0xf5, 0x28, 0x6f, 0xe0, 0xa5, 0xa0,
		0x2f, 0x7c, 0xf4, 0x84, 0x5e, 0x3f, 0x68, 0xef, 0x93, 0x58, 0x50, 0x0a, 0xec, 0x97, 0xef, 0x9a,
		0xc5, 0x81, 0xe3, 0xf9, 0xe6, 0xf7, 0x6e, 0x30, 0x91, 0xf4, 0xe2, 0x52, 0x70, 0x59, 0x87, 0xb9,
		0xcc, 0xb1, 0x18, 0x37, 0xe7, 0xcb, 0x4f, 0xc6, 0xa7, 0x3c, 0xef, 0xb6, 0x2a, 0x94, 0xcb, 0xe5,
		0xf3, 0x6b, 0x41, 0x76, 0x7c, 0xe6, 0x3a, 0xcc, 0x17, 0xaa, 0x3d, 0xc7, 0x77, 0x7b, 0x5d, 0xa1,
		0xc1, 0x3c, 0xcf, 0xfc, 0xc1, 0x84, 0xa6, 0xdb, 0xf3, 0x7b, 0x56, 0xaf, 0x2b, 0xbc, 0x95, 0xab,
		0x8d, 0xe6, 0xcf, 0xca, 0xbb, 0x6f, 0xce, 0x74, 0xa0, 0x4e, 0xcf, 0x9d, 0x7e, 0x72, 0xf2, 0xce,
		0x4f, 0xcc, 0xf5, 0xec, 0x9e, 0x23, 0x54, 0x84, 0xb7, 0xf2, 0xe2, 0x27, 0x5a, 0x7d, 0x66, 0xd9,
		0x1d, 0xdb, 0x32, 0x7d, 0xbb, 0xe7, 0x7c, 0xe0, 0x48, 0x8f, 0x0a, 0xad, 0xde, 0xc0, 0xb5, 0xf8,
		0x4c, 0xfe, 0xdc, 0x75, 0xfe, 0x64, 0x2f, 0x7f, 0xf7, 0xdc, 0x76, 0x00, 0xe7, 0x54, 0x26, 0x38,
		0xd3, 0xbe, 0x7b, 0xd3, 0x13, 0xdd, 0x1f, 0x83, 0x67, 0xe6, 0xf8, 0x85, 0x6b, 0xc1, 0x77, 0x07,
		0x8c, 0xf3, 0x05, 0x67, 0xae, 0xb6, 0x7f, 0xa1, 0x39, 0x30, 0xeb, 0x4b, 0x3f, 0x2a, 0xad, 0x3d,
		0xa7, 0xbb, 0x3f, 0x42, 0x3b, 0x5e, 0xf0, 0x5f, 0xfa, 0xf4, 0xca, 0x3b, 0x31, 0x7c, 0xe1, 0xe8,
		0xc4, 0x5e, 0xe7, 0x4f, 0xdb, 0x09, 0xac, 0xc0, 0x29, 0xf1, 0xb0, 0xd5, 0x9e, 0xd3, 0xb1, 0x7f,
		0x70, 0x18, 0xb8, 0xe9, 0xb2, 0x8e, 0xfd, 0x8b, 0x8f, 0x77, 0x1c, 0xe3, 0xdc, 0xb3, 0x8a, 0xfd,
		0xbf, 0xfc, 0xe2, 0xb3, 0xe9, 0x5b, 0x4f, 0x1c, 0x8c, 0x22, 0x6f, 0x23, 0x3f, 0x6b, 0xdc, 0xfb,
		0x43, 0xb8, 0xf8, 0x18, 0xda, 0xd4, 0x2c, 0xfa, 0x9c, 0x25, 0x9f, 0x9b, 0x9d, 0x23, 0xe3, 0x88,
		0x3a, 0x0f, 0xfb, 0x32, 0x27, 0xfb, 0x76, 0x9b, 0x39, 0xbe, 0xed, 0xbf, 0xb8, 0xac, 0xc3, 0x43,
		0xf4, 0x47, 0xe6, 0xe6, 0xec, 0x82, 0xc3, 0xd8, 0xf2, 0xe8, 0xd6, 0x6f, 0x4c, 0x8f, 0xa3, 0x72,
		0x4d, 0xa2, 0xac, 0x2f, 0x4d, 0x5e, 0x89, 0xb2, 0x34, 0x12, 0x64, 0x29, 0xc5, 0xa2, 0x55, 0x49,
		0xd3, 0xe5, 0x5b, 0xb9, 0x3a, 0xcc, 0xc6, 0x36, 0x45, 0xfd, 0x7e, 0x7e, 0x81, 0x08, 0x71, 0x7c,
		0x24, 0xec, 0x66, 0x73, 0xdb, 0x80, 0x6e, 0x3d, 0x74, 0x35, 0xa9, 0xa5, 0xcb, 0xca, 0x10, 0xb8,
		0x07, 0x45, 0x93, 0xc4, 0xea, 0xbd, 0x78, 0x53, 0xc7, 0x32, 0xc0, 0x26, 0xc8, 0x1e, 0x9a, 0xf5,
		0x40, 0xd6, 0xa4, 0xb0, 0xeb, 0xae, 0xd4, 0x6a, 0x19, 0x55, 0x55, 0xb9, 0x95, 0x47, 0x8d, 0x2a,
		0x81, 0x5c, 0x14, 0xe4, 0x34, 0xe9, 0xdf, 0x0f, 0x52, 0x0b, 0xc6, 0x6d, 0x03, 0x68, 0x52, 0xf5,
		0x5e, 0x35, 0x34, 0xa9, 0x89, 0x54, 0xee, 0x0e, 0x28, 0x41, 0x9a, 0xb6, 0xe1, 0xf4, 0x59, 0x37,
		0x20, 0x51, 0x11, 0x91, 0x82, 0x54, 0x6d, 0xc1, 0xea, 0xb6, 0x21, 0x37, 0x3f, 0x55, 0x80, 0xd0,
		0x7a, 0x84, 0xee, 0xd5, 0x86, 0x64, 0x88, 0x77, 0x92, 0xa2, 0x4f, 0x7c, 0x5f, 0x4d, 0x6e, 0x55,
		0xd5, 0x4f, 0x92, 0xf6, 0x05, 0xba, 0x98, 0x10, 0x3d, 0xe8, 0xe7, 0x16, 0xfc, 0xe4, 0xba, 0xd2,
		0xfc, 0x54, 0x31, 0xea, 0x6a, 0x55, 0xd4, 0x55, 0xcd, 0x78, 0x68, 0xd6, 0x44, 0x1d, 0x1c, 0x7f,
		0x13, 0x60, 0xca, 0x27, 0x49, 0x6b, 0x49, 0xc6, 0xea, 0x33, 0x06, 0x81, 0x5c, 0x04, 0xe4, 0x10,
		0x89, 0xef, 0x06, 0x5c, 0x43, 0xbd, 0x91, 0xeb, 0x92, 0xd1, 0xd4, 0xa4, 0x5b, 0xf9, 0x33, 0xe4,
		0x2d, 0x1e, 0x6c, 0x10, 0xb6, 0x1d, 0x51, 0x6b, 0xd6, 0x8d, 0xaa, 0xaa, 0xe8, 0x9a, 0x5a, 0x07,
		0x4c, 0x1b, 0x60, 0x7a, 0xa8, 0xeb, 0x72, 0x55, 0x6c, 0xe9, 0x46, 0x5d, 0x6e, 0xe9, 0x92, 0x22,
		0x69, 0x46, 0x4d, 0x55, 0xe0, 0x39, 0xa3, 0x41, 0x16, 0x9e, 0xb5, 0x04, 0xcc, 0x22, 0x61, 0xa6,
		0x49, 0x4d, 0x55, 0x83, 0xe1, 0xdf, 0x09, 0xb4, 0x55, 0xf5, 0x34, 0x40, 0x2e, 0x02, 0x72, 0xf0,
		0x9a, 0x31, 0x81, 0xd3, 0x25, 0xad, 0x31, 0x5a, 0x3d, 0x01, 0x6e, 0xeb, 0x71, 0x43, 0x14, 0x15,
		0x1b, 0x31, 0xa8, 0xe6, 0x8e, 0x80, 0xad, 0x3c, 0xe0, 0x11, 0x88, 0x45, 0x40, 0x6c, 0x7c, 0xc2,
		0x1e, 0x40, 0x5b, 0x0f, 0xda, 0xfc, 0xd1, 0x60, 0x40, 0x6a, 0x13, 0x52, 0x9a, 0xd8, 0x90, 0x02,
		0x27, 0x39, 0x6a, 0x9a, 0x07, 0xb0, 0xd6, 0x83, 0x35, 0x6e, 0xf3, 0x05, 0x8c, 0x36, 0x61, 0x34,
		0xe9, 0xda, 0x01, 0x98, 0x36, 0xc0, 0x84, 0x60, 0x28, 0x0e, 0x5e, 0xe0, 0x59, 0x3b, 0xc2, 0x85,
		0xc4, 0xe1, 0x2e, 0x30, 0xcd, 0x55, 0x16, 0x02, 0xa8, 0xf5, 0x40, 0x7d, 0x92, 0xb4, 0x96, 0xac,
		0x2a, 0x25, 0x63, 0x39, 0x07, 0x86, 0x32, 0x4c, 0x94, 0x61, 0xa2, 0x0c, 0x13, 0x65, 0x98, 0x02,
		0xca, 0x30, 0x51, 0x86, 0xb9, 0x87, 0x51, 0x33, 0x5b, 0x86, 0xf9, 0x26, 0x43, 0xde, 0xa0, 0x20,
		0x3a, 0x4e, 0xcf, 0x0f, 0x45, 0x86, 0xd4, 0x08, 0x14, 0x3c, 0xeb, 0x89, 0x3d, 0x9b, 0x7d, 0xd3,
		0x7f, 0x0a, 0xb4, 0xe1, 0xa4, 0xd7, 0x67, 0x8e, 0x15, 0x96, 0x4a, 0x16, 0x4d, 0xab, 0x7b, 0x32,
		0xfa, 0x29, 0x7a, 0xcc, 0xf7, 0xc6, 0x0f, 0xc2, 0xdf, 0xcc, 0xf1, 0x5d, 0x9b, 0x79, 0x93, 0xc7,
		0x2f, 0x27, 0x76, 0xff, 0x67, 0xe5, 0xc4, 0xb6, 0x9e, 0x83, 0x5f, 0xc3, 0x11, 0x08, 0xed, 0x46,
		0xc1, 0xf3, 0xdd, 0x81, 0xe5, 0x3b, 0x23, 0x4b, 0xaf, 0x4e, 0xee, 0x52, 0xb4, 0xba, 0xc6, 0xe8,
		0xa7, 0xc5, 0x7c, 0x6f, 0xf4, 0x3b, 0xf8, 0x25, 0x0d, 0xef, 0x70, 0xfc, 0xf0, 0xc5, 0x90, 0xfb,
		0x3f, 0x2b, 0x86, 0x1c, 0xde, 0xa0, 0x31, 0xaa, 0x06, 0x7d, 0x93, 0x0d, 0x39, 0x21, 0x90, 0x91,
		0x82, 0xe7, 0x9b, 0x3e, 0x9d, 0x7f, 0x98, 0xf8, 0xd4, 0xe1, 0xb0, 0x44, 0x32, 0x3c, 0xae, 0xb5,
		0x23, 0x1a, 0x6e, 0x52, 0xd2, 0x5b, 0x22, 0x1a, 0x90, 0x43, 0x29, 0x2f, 0xef, 0x12, 0x5e, 0x5e,
		0xc4, 0x80, 0x7b, 0xc9, 0x2e, 0x77, 0xaf, 0x9f, 0x42, 0x89, 0x6e, 0xb6, 0x3c, 0x44, 0xcd, 0x76,
		0x69, 0x45, 0xd7, 0xea, 0xb5, 0x39, 0xf6, 0x0e, 0x08, 0x47, 0x47, 0xef, 0x00, 0xf4, 0x0e, 0xd8,
		0xb3, 0x21, 0x4a, 0x3d, 0x0c, 0x41, 0xef, 0x80, 0x11, 0x0e, 0xe8, 0x1d, 0xb0, 0x61, 0xec, 0x74,
		0x7b, 0x07, 0x70, 0x6c, 0xb2, 0x99, 0xa3, 0xde, 0x01, 0xb5, 0x96, 0x3e, 0x5b, 0xbc, 0x1d, 0xd6,
		0xc8, 0x20, 0xe9, 0xbc, 0x3b, 0x5e, 0x37, 0xd2, 0x17, 0x55, 0xa9, 0x19, 0xad, 0xaa, 0xda, 0x94,
		0x0c, 0xf5, 0xd6, 0x68, 0x69, 0x55, 0xc0, 0xb7, 0x3b, 0x7c, 0xe8, 0x84, 0x7b, 0x38, 0xca, 0x9b,
		0x82, 0x14, 0x66, 0x04, 0xc7, 0x54, 0x95, 0xfa, 0x78, 0x60, 0x0d, 0xfe, 0x16, 0x6b, 0x0d, 0x59,
		0x31, 0x9a, 0x9a, 0x7a, 0x2f, 0xdf, 0xc8, 0xba, 0x84, 0xc3, 0xc1, 0x08, 0x70, 0x95, 0x34, 0xcd,
		0x90, 0x95, 0x40, 0x4a, 0xc3, 0xcd, 0xc5, 0xb2, 0x72, 0x67, 0xdc, 0xc3, 0x10, 0x50, 0x20, 0x7b,
		0x5f, 0xd3, 0x5a, 0xe1, 0x8e, 0xbd, 0xba, 0xca, 0x73, 0xeb, 0xd0, 0xf1, 0x00, 0xaa, 0xa8, 0xc3,
		0xfd, 0xef, 0x86, 0xae, 0x06, 0xe6, 0x00, 0x90, 0x26, 0x87, 0x94, 0x6f, 0xb1, 0xcf, 0xf1, 0xe0,
		0xa8, 0x49, 0xff, 0x4f, 0xaa, 0xea, 0x10, 0x4f, 0x62, 0x58, 0x03, 0xaf, 0x14, 0xf0, 0x52, 0xe3,
		0x56, 0x94, 0xeb, 0x52, 0xcd, 0x68, 0xaa, 0x75, 0xb9, 0xfa, 0x05, 0xe7, 0x0a, 0x1c, 0x4f, 0x8c,
		0x97, 0x2e, 0xed, 0xcb, 0x1f, 0x7e, 0x69, 0xd3, 0xbb, 0xfc, 0x21, 0x98, 0x12, 0x8d, 0xcb, 0x1f,
		0x70, 0xa9, 0xd1, 0xb5, 0xfc, 0x41, 0x87, 0x1a, 0xec, 0x0c, 0xd3, 0xaf, 0xfc, 0xc1, 0x97, 0x36,
		0xcd, 0xca, 0x67, 0x47, 0xd1, 0x66, 0xfd, 0x0b, 0x52, 0xd2, 0x5c, 0x50, 0xad, 0x89, 0x48, 0xa1,
		0x12, 0xc2, 0x29, 0xd5, 0xc4, 0x80, 0x0d, 0x7e, 0xd2, 0xce, 0x4a, 0x1f, 0x81, 0x2b, 0x0f, 0x5c,
		0xaf, 0x4a, 0xc0, 0x95, 0x03, 0xae, 0xa5, 0x8b, 0x0a, 0x70, 0xe5, 0x80, 0x6b, 0xa5, 0x8c, 0x94,
		0xca, 0xf1, 0x71, 0x15, 0xae, 0x5e, 0x35, 0xbf, 0xb0, 0xa5, 0xe3, 0x3d, 0x8f, 0x01, 0x3f, 0x9e,
		0x5e, 0xf2, 0x08, 0xf0, 0xe3, 0xea, 0x0d, 0x8f, 0x00, 0x3f, 0x9e, 0x5e, 0x2f, 0xc7, 0x67, 0x66,
		0x20, 0xc6, 0xe5, 0x84, 0x6b, 0x4d, 0xc4, 0xb6, 0x0b, 0x52, 0x40, 0xa5, 0x9a, 0xa8, 0x21, 0xce,
		0xe5, 0x8b, 0x2c, 0x22, 0x5d, 0x4e, 0xc8, 0x22, 0xd6, 0xe5, 0x85, 0x2c, 0xa2, 0xdd, 0xe3, 0xe4,
		0x2d, 0x5c, 0xfd, 0x6b, 0x9e, 0x81, 0x4b, 0xc7, 0x8f, 0x1e, 0x07, 0x82, 0x88, 0x79, 0xb3, 0xec,
		0x17, 0x8f, 0x02, 0x41, 0xc4, 0xbd, 0x9b, 0x00, 0x9c, 0x1e, 0x52, 0x87, 0x40, 0x97, 0x0a, 0x48,
		0x45, 0x1d, 0x62, 0x09, 0xda, 0x75, 0x0c, 0x6a, 0xc3, 0x7d, 0xb6, 0xf3, 0x75, 0x6a, 0x28, 0xcc,
		0x0c, 0x1d, 0x94, 0x30, 0x34, 0xc7, 0xa5, 0x3a, 0x30, 0x35, 0xdb, 0xf1, 0x9a, 0x3b, 0x78, 0x17,
		0xc6, 0x86, 0x12, 0xcc, 0x86, 0x58, 0xbf, 0x55, 0xb5, 0x86, 0x54, 0xe3, 0x7d, 0xea, 0x43, 0x0a,
		0xe2, 0x98, 0x11, 0x44, 0x1f, 0xea, 0xba, 0xdc, 0xac, 0x4b, 0x86, 0xac, 0xe8, 0xb7, 0x46, 0x4b,
		0xd4, 0xe5, 0xd6, 0xed, 0x17, 0xa0, 0x4b, 0x84, 0xae, 0xa2, 0x1a, 0x92, 0xa6, 0xa9, 0x58, 0x66,
		0x22, 0x81, 0xb2, 0xf5, 0x50, 0xbd, 0x0f, 0xe4, 0x54, 0xd2, 0x6e, 0xc5, 0xaa, 0x04, 0x4c, 0xc9,
		0x30, 0xd5, 0x87, 0x95, 0x4b, 0x8a, 0xae, 0xa1, 0xd4, 0xef, 0x78, 0x98, 0x49, 0x6a, 0xce, 0x34,
		0x7f, 0xc8, 0xed, 0xc3, 0x69, 0xe6, 0x0e, 0x45, 0xfe, 0xce, 0x31, 0x8f, 0x90, 0xa5, 0xe5, 0x04,
		0x73, 0x8b, 0x5d, 0x2a, 0xce, 0x2e, 0x57, 0xe8, 0x21, 0x6b, 0xc6, 0x01, 0xce, 0x14, 0x43, 0x03,
		0x10, 0xae, 0xac, 0xe8, 0x10, 0x5c, 0xde, 0x76, 0xd0, 0xee, 0xd5, 0x86, 0x64, 0x88, 0x77, 0x92,
		0xa2, 0x4f, 0x56, 0x54, 0x6b, 0x72, 0xab, 0xaa, 0x7e, 0x92, 0xb4, 0x2f, 0xc8, 0xa9, 0xa5, 0x03,
		0x30, 0xd2, 0xfa, 0x50, 0x33, 0xac, 0x2b, 0x26, 0x47, 0x11, 0xcc, 0x29, 0x25, 0x88, 0x61, 0xb0,
		0xa0, 0x6a, 0x58, 0x9f, 0xdc, 0x09, 0x47, 0x59, 0xf9, 0x24, 0x69, 0x2d, 0xc9, 0x58, 0x7d, 0x56,
		0x3f, 0x8c, 0x15, 0x4f, 0x70, 0x61, 0xa6, 0x8e, 0x5d, 0xbd, 0x60, 0xa0, 0xa2, 0x23, 0x38, 0x7b,
		0x64, 0x33, 0xec, 0x13, 0x47, 0x6c, 0x61, 0x9e, 0x8e, 0x5c, 0xb9, 0x60, 0x9d, 0xb6, 0x02, 0xd8,
		0x50, 0x6f, 0xe4, 0xba, 0x64, 0x34, 0x35, 0xe9, 0x56, 0xfe, 0x0c, 0xee, 0x94, 0x12, 0xb2, 0xb0,
		0x4c, 0x47, 0xad, 0x58, 0xb0, 0x4b, 0x11, 0xe1, 0x03, 0x65, 0x4a, 0x03, 0x58, 0x58, 0xa5, 0x63,
		0x56, 0x2b, 0x18, 0xa5, 0xed, 0xe8, 0x3d, 0xd4, 0x75, 0xb9, 0x2a, 0xb6, 0x74, 0xa3, 0x2e, 0xb7,
		0x74, 0x49, 0x91, 0x34, 0xa3, 0xa6, 0x2a, 0x38, 0x48, 0x8c, 0x0f, 0xaa, 0x30, 0x47, 0x47, 0xab,
		0x50, 0xb0, 0x45, 0x71, 0xa0, 0x0b, 0x77, 0x6c, 0xc2, 0x18, 0xf1, 0x81, 0x15, 0xd6, 0xe8, 0x78,
		0x55, 0x0a, 0xe6, 0x28, 0x0e, 0x76, 0x9a, 0xd4, 0x54, 0x35, 0x64, 0x91, 0x78, 0xe1, 0x0a, 0x83,
		0x74, 0xc4, 0x4a, 0x05, 0x8b, 0xb4, 0x15, 0x3c, 0xa5, 0x56, 0x93, 0x0c, 0x59, 0xb9, 0x55, 0xb5,
		0xc6, 0x30, 0xc0, 0xd5, 0xa4, 0x56, 0x53, 0x55, 0x5a, 0x08, 0xd7, 0x12, 0xe2, 0xaa, 0xae, 0xc3,
		0x55, 0x93, 0x6e, 0x1f, 0x5a, 0x38, 0x55, 0x97, 0x16, 0xd4, 0xd6, 0x43, 0xb5, 0x2a, 0xb5, 0x5a,
		0x00, 0x95, 0x12, 0xd4, 0x07, 0xe5, 0x4f, 0x45, 0xfd, 0x8f, 0x02, 0xdf, 0x99, 0x63, 0xf3, 0x8f,
		0xfd, 0x60, 0xa9, 0x81, 0x0a, 0x2a, 0x7a, 0xac, 0xea, 0x04, 0x1e, 0xba, 0x3b, 0x72, 0x58, 0xc4,
		0xe4, 0x8c, 0x29, 0xcc, 0xd0, 0x91, 0x2a, 0x13, 0xac, 0x50, 0x74, 0x2e, 0x8c, 0xc5, 0x02, 0x6e,
		0xa0, 0xca, 0xcd, 0x4f, 0xe5, 0xb0, 0xa8, 0x03, 0x41, 0x1b, 0x25, 0xa6, 0x15, 0x60, 0x4a, 0x8b,
		0xa9, 0x22, 0x36, 0xe0, 0x2c, 0x8f, 0xcf, 0xe6, 0xa7, 0x60, 0x9e, 0xf2, 0x8c, 0x5d, 0x05, 0xd8,
		0x65, 0xd1, 0xdc, 0xe4, 0x10, 0xb6, 0xf4, 0x12, 0xeb, 0x79, 0x06, 0x8f, 0x7b, 0x02, 0x3d, 0xcf,
		0xe0, 0x71, 0x4f, 0x94, 0x1f, 0x3e, 0x78, 0x4d, 0xb1, 0xfa, 0xa7, 0xa4, 0x1b, 0xba, 0xaa, 0x1a,
		0x37, 0xf2, 0x1d, 0x22, 0x2a, 0x4a, 0x30, 0x91, 0xd1, 0x39, 0x36, 0xf5, 0x41, 0x2a, 0x67, 0x07,
		0xc4, 0x34, 0xb1, 0x61, 0x34, 0x35, 0xf5, 0xa6, 0x2e, 0x35, 0x60, 0x6f, 0x08, 0xb1, 0x94, 0x34,
		0xcd, 0xb8, 0xaf, 0x69, 0xc6, 0xad, 0x2c, 0xd5, 0xb1, 0x8d, 0x21, 0x39, 0x9c, 0x9f, 0xf5, 0x10,
		0xce, 0xea, 0xbd, 0x28, 0x2b, 0xa1, 0x86, 0xd7, 0x55, 0xe5, 0x0e, 0xb8, 0x52, 0xe1, 0x3a, 0xb2,
		0x99, 0x00, 0x34, 0x29, 0xa0, 0xb2, 0x52, 0x55, 0x1b, 0xcd, 0xba, 0xa4, 0x4b, 0x53, 0x79, 0x05,
		0xaa, 0x49, 0x51, 0x55, 0x9b, 0x3a, 0x44, 0x94, 0x0a, 0xcc, 0x96, 0x66, 0x3c, 0x34, 0x9b, 0xd2,
		0xd0, 0x3f, 0x49, 0x1a, 0xd2, 0xe0, 0x89, 0x11, 0x0d, 0x44, 0xb3, 0x21, 0x2a, 0x5f, 0xc6, 0xe6,
		0x14, 0x5b, 0xec, 0xe8, 0x20, 0x55, 0x9b, 0x3a, 0xe0, 0x4c, 0x0c, 0xe7, 0x83, 0xa2, 0x49, 0x55,
		0xf5, 0x4e, 0x91, 0xff, 0x57, 0xaa, 0x0d, 0x33, 0xcf, 0x6a, 0x53, 0x07, 0xac, 0xa4, 0xb0, 0x2a,
		0xd2, 0x88, 0x4b, 0x7d, 0x69, 0xe2, 0x08, 0x16, 0x6a, 0x68, 0x3f, 0xa7, 0x8a, 0x2d, 0x52, 0x38,
		0x99, 0x48, 0x48, 0xa4, 0x14, 0x44, 0xe7, 0x0e, 0xb6, 0x94, 0x83, 0xe5, 0xbc, 0xe2, 0xc7, 0x3d,
		0xe2, 0xc8, 0x1b, 0x70, 0xe9, 0x06, 0xbf, 0x79, 0x43, 0x2f, 0x95, 0x20, 0x37, 0x6f, 0xa0, 0xa5,
		0x17, 0xcc, 0xe6, 0x0d, 0xb9, 0x14, 0x83, 0xd6, 0xdc, 0x42, 0xc7, 0x37, 0x38, 0xcd, 0x1b, 0x6c,
		0x29, 0x07, 0xa1, 0xb9, 0x86, 0x2f, 0x9d, 0x60, 0x33, 0xe7, 0x10, 0x7e, 0x06, 0x86, 0xbb, 0x60,
		0xa8, 0x49, 0x35, 0x59, 0x93, 0xaa, 0xa8, 0x78, 0x24, 0x82, 0x11, 0x5b, 0x51, 0x8e, 0x47, 0x65,
		0xb0, 0x09, 0x65, 0x07, 0xac, 0x94, 0x87, 0xc6, 0x8d, 0xa4, 0xc9, 0x0a, 0xb6, 0xbc, 0x51, 0x22,
		0xd9, 0x68, 0x88, 0x0a, 0xb6, 0x9e, 0xc4, 0x84, 0x51, 0x19, 0xc1, 0xa8, 0x49, 0xad, 0x87, 0x3a,
		0x56, 0x4a, 0x12, 0xa2, 0xd8, 0x92, 0xfe, 0x6d, 0x28, 0x0f, 0x8d, 0x00, 0x4d, 0x49, 0x87, 0xdf,
		0x3b, 0x16, 0x5b, 0xce, 0xd9, 0x02, 0xe5, 0x03, 0xae, 0xb4, 0x2c, 0x4d, 0xbe, 0xd0, 0x4a, 0xc9,
		0xa2, 0xe4, 0x00, 0x34, 0xf5, 0x41, 0x97, 0xd0, 0xba, 0x86, 0x3b, 0xa4, 0x08, 0xea, 0x8e, 0x53,
		0x95, 0x10, 0xe0, 0xed, 0x8a, 0x1b, 0x9a, 0xd6, 0x70, 0x45, 0x14, 0x06, 0xe8, 0x28, 0x15, 0x09,
		0xf6, 0x67, 0x2b, 0x6c, 0xba, 0xdc, 0x90, 0x0c, 0xe9, 0x73, 0x55, 0x92, 0x6a, 0x52, 0x0d, 0x96,
		0x87, 0x10, 0xcb, 0x5b, 0x4d, 0xbc, 0x0b, 0xbd, 0xa0, 0x26, 0x89, 0xad, 0x96, 0xd4, 0xb8, 0xa9,
		0x7f, 0x41, 0xaa, 0x24, 0x29, 0xa8, 0xf7, 0x6a, 0xd3, 0xa8, 0xcb, 0x0d, 0x19, 0x89, 0x92, 0xa3,
		0xb1, 0x49, 0xa9, 0xea, 0x51, 0xde, 0xc0, 0x4b, 0x41, 0x5f, 0xf8, 0xe8, 0x09, 0xbd, 0x7e, 0xd0,
		0xde, 0x27, 0xb1, 0xa0, 0x14, 0xd8, 0x2f, 0xdf, 0x35, 0x8b, 0x03, 0xc7, 0xf3, 0xcd, 0xef, 0xdd,
		0x60, 0x22, 0xe9, 0xc5, 0xa5, 0xe0, 0xb2, 0x0e, 0x73, 0x99, 0x63, 0x31, 0x6e, 0xce, 0x97, 0x9f,
		0x8c, 0x4f, 0x79, 0xde, 0x6d, 0x55, 0x28, 0x97, 0xcb, 0xe7, 0xd7, 0x82, 0xec, 0xf8, 0xcc, 0x75,
		0x98, 0x2f, 0x54, 0x7b, 0x8e, 0xef, 0xf6, 0xba, 0x42, 0x83, 0x79, 0x9e, 0xf9, 0x83, 0x09, 0x4d,
		0xb7, 0xe7, 0xf7, 0xac, 0x5e, 0x57, 0x78, 0x2b, 0x57, 0x1b, 0xcd, 0x9f, 0x95, 0x77, 0xdf, 0x9c,
		0xe9, 0x40, 0x9d, 0x9e, 0x3b, 0xfd, 0xe4, 0xe4, 0x9d, 0x9f, 0x98, 0xeb, 0xd9, 0x3d, 0x47, 0xa8,
		0x08, 0x6f, 0xe5, 0xc5, 0x4f, 0xb4, 0xfa, 0xcc, 0xb2, 0x3b, 0xb6, 0x65, 0xfa, 0x76, 0xcf, 0xf9,
		0xc0, 0x91, 0x1e, 0x15, 0x5a, 0xbd, 0x81, 0x6b, 0xf1, 0x99, 0xfc, 0xb9, 0xeb, 0xfc, 0xc9, 0x5e,
		0xfe, 0xee, 0xb9, 0xed, 0x00, 0xce, 0xa9, 0x4c, 0x70, 0xa6, 0x7d, 0xf7, 0xa6, 0x27, 0xba, 0x3f,
		0x06, 0xcf, 0xcc, 0xf1, 0x0b, 0xd7, 0x82, 0xef, 0x0e, 0x18, 0xe7, 0x0b, 0xce, 0x5c, 0x6d, 0xff,
		0x42, 0x73, 0x60, 0xd6, 0x97, 0x7e, 0x54, 0x5a, 0x7b, 0x4e, 0x77, 0x7f, 0x84, 0x76, 0xbc, 0xe0,
		0xbf, 0xf4, 0xe9, 0x95, 0x77, 0x62, 0xf8, 0xc2, 0xd1, 0x89, 0xbd, 0xce, 0x9f, 0xb6, 0x13, 0x58,
		0x81, 0x53, 0xe2, 0x61, 0xab, 0x3d, 0xa7, 0x63, 0xff, 0xe0, 0x30, 0x70, 0xd3, 0x65, 0x1d, 0xfb,
		0x17, 0x1f, 0xef, 0x38, 0xc6, 0xb9, 0x67, 0x15, 0xfb, 0x7f, 0xf9, 0xc5, 0x67, 0xd3, 0xb7, 0x9e,
		0x38, 0x18, 0x45, 0xde, 0x46, 0x7e, 0xd6, 0xb8, 0xf7, 0x87, 0x70, 0xf1, 0x31, 0xb4, 0xa9, 0x59,
		0xf4, 0x39, 0x4b, 0x3e, 0x37, 0x3b, 0x47, 0xc6, 0x11, 0x75, 0x1e, 0xf6, 0x65, 0x4e, 0xf6, 0xed,
		0x36, 0x73, 0x7c, 0xdb, 0x7f, 0x71, 0x59, 0x87, 0x87, 0xe8, 0x8f, 0xcc, 0xcd, 0xd9, 0x05, 0x87,
		0xb1, 0xe5, 0xd1, 0xad, 0xdf, 0x98, 0x1e, 0x47, 0xe5, 0x9a, 0x44, 0x59, 0x5f, 0x9a, 0xbc, 0x12,
		0x65, 0x69, 0x24, 0xc8, 0x52, 0x8a, 0x45, 0xab, 0x92, 0xa6, 0xcb, 0xb7, 0x72, 0x75, 0x98, 0x8d,
		0x6d, 0x8a, 0xfa, 0xfd, 0xfc, 0x02, 0x11, 0xe2, 0xf8, 0x48, 0xd8, 0xcd, 0xe6, 0xb6, 0x01, 0xdd,
		0x7a, 0xe8, 0x6a, 0x52, 0x4b, 0x97, 0x95, 0x21, 0x70, 0x0f, 0x8a, 0x26, 0x89, 0xd5, 0x7b, 0xf1,
		0xa6, 0x8e, 0x65, 0x80, 0x4d, 0x90, 0x3d, 0x34, 0xeb, 0x81, 0xac, 0x49, 0x61, 0xd7, 0x5d, 0xa9,
		0xd5, 0x32, 0xaa, 0xaa, 0x72, 0x2b, 0x8f, 0x1a, 0x55, 0x02, 0xb9, 0x28, 0xc8, 0x69, 0xd2, 0xbf,
		0x1f, 0xa4, 0x16, 0x8c, 0xdb, 0x06, 0xd0, 0xa4, 0xea, 0xbd, 0x6a, 0x68, 0x52, 0x13, 0xa9, 0xdc,
		0x1d, 0x50, 0x82, 0x34, 0x6d, 0xc3, 0xe9, 0xb3, 0x6e, 0x40, 0xa2, 0x22, 0x22, 0x05, 0xa9, 0xda,
		0x82, 0xd5, 0x6d, 0x43, 0x6e, 0x7e, 0xaa, 0x00, 0xa1, 0xf5, 0x08, 0xdd, 0xab, 0x0d, 0xc9, 0x10,
		0xef, 0x24, 0x45, 0x9f, 0xf8, 0xbe, 0x9a, 0xdc, 0xaa, 0xaa, 0x9f, 0x24, 0xed, 0x0b, 0x74, 0x31,
		0x21, 0x7a, 0xd0, 0xcf, 0x2d, 0xf8, 0xc9, 0x75, 0xa5, 0xf9, 0xa9, 0x62, 0xd4, 0xd5, 0xaa, 0xa8,
		0xab, 0x9a, 0xf1, 0xd0, 0xac, 0x89, 0x3a, 0x38, 0xfe, 0x26, 0xc0, 0x94, 0x4f, 0x92, 0xd6, 0x92,
		0x8c, 0xd5, 0x67, 0x0c, 0x02, 0xb9, 0x08, 0xc8, 0x21, 0x12, 0xdf, 0x0d, 0xb8, 0x86, 0x7a, 0x23,
		0xd7, 0x25, 0xa3, 0xa9, 0x49, 0xb7, 0xf2, 0x67, 0xc8, 0x5b, 0x3c, 0xd8, 0x20, 0x6c, 0x3b, 0xa2,
		0xd6, 0xac, 0x1b, 0x55, 0x55, 0xd1, 0x35, 0xb5, 0x0e, 0x98, 0x36, 0xc0, 0xf4, 0x50, 0xd7, 0xe5,
		0xaa, 0xd8, 0xd2, 0x8d, 0xba, 0xdc, 0xd2, 0x25, 0x45, 0xd2, 0x8c, 0x9a, 0xaa, 0xc0, 0x73, 0x46,
		0x83, 0x2c, 0x3c, 0x6b, 0x09, 0x98, 0x45, 0xc2, 0x4c, 0x93, 0x9a, 0xaa, 0x06, 0xc3, 0xbf, 0x13,
		0x68, 0xab, 0xea, 0x69, 0x80, 0x5c, 0x04, 0xe4, 0xe0, 0x35, 0x63, 0x02, 0xa7, 0x4b, 0x5a, 0x63,
		0xb4, 0x7a, 0x02, 0xdc, 0xd6, 0xe3, 0x86, 0x28, 0x2a, 0x36, 0x62, 0x50, 0xcd, 0x1d, 0x01, 0x5b,
		0x79, 0xc0, 0x23, 0x10, 0x8b, 0x80, 0xd8, 0xf8, 0x84, 0x3d, 0x80, 0xb6, 0x1e, 0xb4, 0xf9, 0xa3,
		0xc1, 0x80, 0xd4, 0x26, 0xa4, 0x34, 0xb1, 0x21, 0x05, 0x4e, 0x72, 0xd4, 0x34, 0x0f, 0x60, 0xad,
		0x07, 0x6b, 0xdc, 0xe6, 0x0b, 0x18, 0x6d, 0xc2, 0x68, 0xd2, 0xb5, 0x03, 0x30, 0x6d, 0x80, 0x09,
		0xc1, 0x50, 0x1c, 0xbc, 0xc0, 0xb3, 0x76, 0x84, 0x0b, 0x89, 0xc3, 0x5d, 0x60, 0x9a, 0xab, 0x2c,
		0x04, 0x50, 0xeb, 0x81, 0xfa, 0x24, 0x69, 0x2d, 0x59, 0x55, 0x4a, 0xc6, 0x72, 0x0e, 0x0c, 0x65,
		0x98, 0x28, 0xc3, 0x44, 0x19, 0x26, 0xca, 0x30, 0x05, 0x94, 0x61, 0xa2, 0x0c, 0x73, 0x0f, 0xa3,
		0x66, 0xb6, 0x0c, 0xf3, 0x4d, 0x86, 0xbc, 0x41, 0x41, 0x74, 0x9c, 0x9e, 0x1f, 0x8a, 0x0c, 0xa9,
		0x11, 0x28, 0x78, 0xd6, 0x13, 0x7b, 0x36, 0xfb, 0xa6, 0xff, 0x14, 0x68, 0xc3, 0x49, 0xaf, 0xcf,
		0x1c, 0x2b, 0x2c, 0x95, 0x2c, 0x9a, 0x56, 0xf7, 0x64, 0xf4, 0x53, 0xf4, 0x98, 0xef, 0x8d, 0x1f,
		0x84, 0xbf, 0x99, 0xe3, 0xbb, 0x36, 0xf3, 0x26, 0x8f, 0x5f, 0x4e, 0xec, 0xfe, 0xcf, 0xca, 0x89,
		0x6d, 0x3d, 0x07, 0xbf, 0x3c, 0xdf, 0xf4, 0x29, 0xcd, 0x46, 0xc1, 0xf3, 0xdd, 0x81, 0xe5, 0x3b,
		0x23, 0x43, 0xaf, 0x4e, 0x6e, 0x52, 0xb4, 0xba, 0xc6, 0xe8, 0xa7, 0xc5, 0x7c, 0x6f, 0xf4, 0x3b,
		0xf8, 0x25, 0x0d, 0x6f, 0x70, 0xfc, 0xf0, 0xc5, 0x90, 0xfb, 0x3f, 0x2b, 0x86, 0x1c, 0xde, 0x9f,
		0xd1, 0x0a, 0xef, 0xef, 0x4d, 0x36, 0xa4, 0x24, 0xd9, 0x08, 0x09, 0xe5, 0x8b, 0x5a, 0xae, 0xb8,
		0xc8, 0x13, 0x81, 0x24, 0x11, 0x4b, 0x50, 0x32, 0xd9, 0x89, 0x3f, 0xe3, 0x09, 0x66, 0xbb, 0x30,
		0x54, 0xca, 0xa4, 0x93, 0x3c, 0x61, 0x5b, 0x14, 0x3a, 0x3e, 0xa9, 0xbe, 0x4c, 0x38, 0xcc, 0xa4,
		0xb8, 0xbb, 0x94, 0x70, 0x20, 0xc2, 0x62, 0x6e, 0x5e, 0xc5, 0xdb, 0xd4, 0x54, 0x90, 0x5b, 0x71,
		0x36, 0x37, 0x5e, 0xc7, 0xb1, 0xf8, 0x7a, 0xbf, 0xb6, 0xb8, 0x66, 0xbb, 0x34, 0xa2, 0xd7, 0x66,
		0x9e, 0x6f, 0x3b, 0xa1, 0x55, 0x2f, 0x9a, 0xed, 0xb6, 0xcb, 0x3c, 0x8f, 0x4e, 0x5e, 0xc6, 0x72,
		0xbd, 0xea, 0x22, 0x44, 0x13, 0x4c, 0xdb, 0x03, 0x82, 0xbc, 0xf7, 0x03, 0x8f, 0x9e, 0x0f, 0xbc,
		0x7b, 0x3d, 0xf0, 0x8a, 0x20, 0xb9, 0xf7, 0x76, 0xe0, 0x1e, 0x1e, 0xa6, 0xd0, 0xcb, 0x21, 0x5b,
		0xa1, 0x04, 0x79, 0xcf, 0x86, 0x69, 0xaf, 0x86, 0xfe, 0xcf, 0x4a, 0x91, 0x5c, 0x0a, 0x26, 0x2c,
		0xe1, 0x23, 0xe1, 0x98, 0x4d, 0xd3, 0x0f, 0x82, 0x76, 0xf2, 0x7c, 0x57, 0xe1, 0xed, 0xdb, 0xaf,
		0xa7, 0xc5, 0x2b, 0xb3, 0xd8, 0x11, 0x8b, 0xb7, 0x8f, 0xff, 0x9c, 0xbd, 0x2f, 0xbf, 0x5e, 0xbf,
		0xfb, 0xe7, 0xf2, 0x75, 0xf1, 0xc9, 0xdf, 0xab, 0xde, 0x76, 0xf6, 0xfe, 0xf2, 0xf5, 0x7a, 0xcd,
		0x2b, 0x95, 0xd7, 0xeb, 0x1d, 0xc7, 0xb8, 0x78, 0x7d, 0xbb, 0xf4, 0xd6, 0xe0, 0xf9, 0xd2, 0xba,
		0x0f, 0x94, 0xd7, 0x7c, 0xe0, 0x7c, 0xdd, 0x07, 0xce, 0xd7, 0x7c, 0x60, 0xed, 0x2d, 0x95, 0xd6,
		0x7c, 0xe0, 0xe2, 0xf5, 0xf7, 0xd2, 0xfb, 0xdf, 0xae, 0x7e, 0x6b, 0xe5, 0xf5, 0xdd, 0xef, 0x75,
		0xaf, 0x5d, 0xbe, 0xfe, 0xbe, 0x7e, 0xf7, 0xee, 0xe4, 0xed, 0x59, 0xe9, 0xeb, 0x69, 0xf1, 0xe3,
		0xe3, 0xef, 0xb3, 0xaf, 0xa7, 0xc5, 0xb3, 0xc7, 0xe0, 0x9d, 0x8f, 0xbf, 0xbf, 0x9e, 0x15, 0xaf,
		0xc6, 0x0f, 0x83, 0xff, 0xbf, 0xa3, 0x53, 0xeb, 0x47, 0x4a, 0x79, 0x54, 0x5b, 0xf2, 0x67, 0x6e,
		0x42, 0xf9, 0x7f, 0x90, 0xca, 0x8c, 0x4b, 0xe5, 0xff, 0x10, 0x8a, 0x65, 0x56, 0x12, 0x1b, 0xef,
		0xb9, 0x30, 0xd9, 0x91, 0x83, 0x29, 0x7a, 0xcc, 0x4f, 0x85, 0xd4, 0xce, 0x5e, 0x0f, 0xfc, 0x16,
		0xfc, 0x16, 0xfc, 0xf6, 0x68, 0xf9, 0x6d, 0x97, 0x99, 0x1d, 0xda, 0x3e, 0x64, 0x13, 0x6e, 0x7b,
		0x49, 0xcb, 0x6d, 0x47, 0xd9, 0x57, 0x2b, 0xcc, 0xb4, 0x5e, 0xb7, 0x59, 0xc7, 0x76, 0x58, 0x7b,
		0x98, 0x76, 0x1d, 0x3f, 0x39, 0x43, 0xd6, 0x37, 0xbe, 0x30, 0x79, 0x3e, 0x4c, 0x9e, 0xe6, 0xd4,
		0xb7, 0x74, 0xba, 0xbd, 0xbf, 0x8b, 0x5d, 0xf3, 0x3b, 0xeb, 0xf2, 0xf5, 0x29, 0x33, 0xd7, 0x81,
		0x2f, 0x81, 0x2f, 0x81, 0x2f, 0x39, 0xee, 0x5c, 0x09, 0xb9, 0x39, 0x98, 0x35, 0x09, 0x94, 0x2e,
		0x45, 0x33, 0x9d, 0x1f, 0xf4, 0x9b, 0x83, 0x38, 0xec, 0x64, 0x6a, 0xd8, 0x0e, 0xbf, 0x56, 0x9b,
		0x61, 0x1b, 0x4c, 0xfa, 0x1e, 0xc2, 0x93, 0xf1, 0x6f, 0x5d, 0xd3, 0x0a, 0xdc, 0x44, 0xcd, 0xfe,
		0x61, 0xfb, 0x1e, 0xc7, 0x0b, 0x29, 0xec, 0x87, 0xe9, 0xdb, 0x3f, 0x83, 0xef, 0xd2, 0x31, 0xbb,
		0x1e, 0xa3, 0xdf, 0x52, 0xc7, 0xa1, 0x9d, 0x6a, 0xc3, 0xfc, 0xc5, 0x7f, 0x6a, 0xcf, 0x4e, 0xcb,
		0x1f, 0x2f, 0x2e, 0x2f, 0x30, 0xc1, 0xa9, 0x98, 0x69, 0xfa, 0xd1, 0x72, 0x95, 0xfc, 0xf0, 0xac,
		0x3e, 0x07, 0x3a, 0x1a, 0x8c, 0x0a, 0xf2, 0x09, 0xf2, 0x09, 0xf2, 0x79, 0xb4, 0xe4, 0x93, 0xd0,
		0x06, 0xcc, 0xda, 0x81, 0x0b, 0x30, 0x4e, 0x30, 0x4e, 0x30, 0xce, 0x68, 0x53, 0x5b, 0x39, 0xc7,
		0xdc, 0x82, 0x6c, 0x66, 0x82, 0x6c, 0x72, 0x5a, 0x53, 0x1b, 0x8f, 0x0c, 0xd2, 0x09, 0xd2, 0x09,
		0xd2, 0x09, 0xd2, 0x09, 0xd2, 0x09, 0xd2, 0x09, 0xd2, 0x09, 0xd2, 0x09, 0xd2, 0xb9, 0x47, 0xd2,
		0x49, 0xe4, 0x2e, 0xea, 0xb6, 0xe7, 0x8b, 0xbe, 0xef, 0xd2, 0xba, 0x8c, 0x86, 0xed, 0x48, 0x5d,
		0x16, 0xb8, 0x5d, 0x62, 0x11, 0x0a, 0xb4, 0x6b, 0x66, 0xe4, 0xb3, 0x8f, 0xe5, 0x72, 0xe5, 0xb2,
		0x5c, 0x3e, 0xbd, 0x3c, 0xbf, 0x3c, 0xbd, 0xba, 0xb8, 0x38, 0xab, 0x50, 0x1e, 0x04, 0x57, 0x50,
		0xdd, 0x36, 0x73, 0x59, 0xfb, 0xe6, 0xa5, 0x70, 0x2d, 0x38, 0x83, 0x6e, 0x97, 0xc7, 0xd0, 0x0f,
		0x1e, 0x73, 0x49, 0x75, 0x20, 0x1b, 0xe1, 0xc8, 0x53, 0xaf, 0x5f, 0xec, 0xda, 0xcf, 0x36, 0x87,
		0x78, 0x64, 0x3a, 0x34, 0x02, 0x12, 0x04, 0x24, 0x08, 0x48, 0x8e, 0x36, 0x20, 0x19, 0xd8, 0x8e,
		0xff, 0x11, 0x11, 0x09, 0x22, 0x12, 0x44, 0x24, 0xfb, 0x8f, 0x48, 0x4a, 0x17, 0xd8, 0x74, 0x71,
		0xe4, 0x21, 0x49, 0x26, 0x88, 0x67, 0x97, 0x39, 0x3f, 0xc2, 0xed, 0xd3, 0xc4, 0xac, 0x73, 0x34,
		0x2e, 0x28, 0x27, 0x28, 0x27, 0x28, 0xe7, 0x51, 0x53, 0xce, 0xb3, 0x0a, 0x07, 0xce, 0x59, 0x01,
		0xe7, 0x04, 0xe7, 0x04, 0xe7, 0x8c, 0x36, 0xb5, 0x95, 0x8b, 0x8b, 0x73, 0xb0, 0xce, 0x23, 0x67,
		0x9d, 0x44, 0x3e, 0x83, 0x63, 0x9b, 0x56, 0x8e, 0xed, 0x59, 0x39, 0x18, 0xe5, 0xd9, 0x76, 0xac,
		0x97, 0x57, 0x67, 0xd7, 0xcb, 0xed, 0x31, 0xbf, 0x39, 0xc1, 0x6b, 0x1f, 0x4b, 0xa7, 0xa7, 0x2b,
		0x5e, 0x7c, 0xbf, 0xd4, 0x3c, 0x93, 0x7f, 0x9b, 0x55, 0xde, 0xed, 0x55, 0xd3, 0x6c, 0xab, 0x9a,
		0x5a, 0x3b, 0xd5, 0xa5, 0x36, 0xaa, 0x5c, 0x26, 0x1b, 0xd6, 0xec, 0x00, 0x63, 0xe8, 0xfe, 0x68,
		0x7a, 0xe9, 0xa3, 0xe8, 0xc9, 0xc8, 0x88, 0xa3, 0x11, 0x47, 0x23, 0x8e, 0x3e, 0xda, 0x38, 0xda,
		0xee, 0x17, 0xc7, 0xa6, 0xa0, 0xe8, 0x07, 0x57, 0xe1, 0xd0, 0x92, 0xe1, 0x8a, 0x70, 0xcc, 0x11,
		0x12, 0x07, 0x43, 0xde, 0xa8, 0x97, 0xc6, 0x16, 0xc1, 0xe5, 0x10, 0x75, 0x71, 0x4a, 0x5b, 0xf0,
		0x03, 0x3b, 0x95, 0x34, 0x46, 0x5a, 0xe9, 0x8c, 0xd4, 0xe3, 0xde, 0xf4, 0xe2, 0x5f, 0x8e, 0x69,
		0x8e, 0x54, 0xd2, 0x1d, 0x4b, 0x22, 0x50, 0xba, 0x28, 0x43, 0x08, 0x32, 0x11, 0x3e, 0xf0, 0x1b,
		0xf5, 0x31, 0xcb, 0x67, 0xda, 0x70, 0x74, 0x5c, 0x76, 0x9b, 0x39, 0xbe, 0xed, 0xbf, 0xd0, 0xb6,
		0x69, 0x5a, 0xe2, 0x06, 0x3c, 0xfc, 0x97, 0x3c, 0xba, 0xf5, 0x1b, 0xd3, 0xe3, 0x98, 0x8a, 0x18,
		0x03, 0x25, 0x37, 0x8d, 0xa6, 0xa6, 0xea, 0x6a, 0x55, 0xad, 0xf3, 0xca, 0x44, 0x84, 0xf6, 0xc6,
		0xe3, 0xe6, 0x91, 0x85, 0xf4, 0x8e, 0xcf, 0x92, 0x9b, 0x86, 0xf8, 0xa0, 0xdf, 0xe3, 0x84, 0xb1,
		0x8d, 0x10, 0xdd, 0x69, 0x38, 0xd4, 0x76, 0x33, 0x42, 0x72, 0xb5, 0xd1, 0x04, 0x44, 0x9b, 0x21,
		0xba, 0x03, 0x44, 0xdb, 0x20, 0x52, 0x0c, 0x19, 0x18, 0x6d, 0xc6, 0xa8, 0x5e, 0xd2, 0x01, 0xd1,
		0x16, 0xf7, 0x2f, 0xe3, 0xb0, 0xe8, 0xcd, 0x08, 0x69, 0xad, 0x4f, 0x10, 0xa2, 0xcd, 0x10, 0xe9,
		0x55, 0x20, 0xb4, 0x19, 0xa1, 0x87, 0x5a, 0x13, 0x47, 0xac, 0x62, 0xd5, 0x8d, 0xbb, 0xa4, 0x17,
		0xbc, 0x70, 0xdd, 0x85, 0xdf, 0x81, 0x3f, 0x0b, 0xe3, 0x63, 0x05, 0x2e, 0x31, 0xa2, 0x58, 0x81,
		0x5b, 0xb8, 0x00, 0x56, 0xe0, 0x68, 0x3d, 0x1f, 0xce, 0xfa, 0xc1, 0x59, 0x3f, 0x38, 0xeb, 0x87,
		0x84, 0x28, 0xe0, 0xac, 0x1f, 0x48, 0x25, 0xce, 0xfa, 0x49, 0x8f, 0xbf, 0x72, 0x3d, 0xe6, 0x67,
		0xfd, 0xa5, 0xc0, 0x6a, 0xc1, 0x6a, 0xc1, 0x6a, 0x8f, 0x96, 0xd5, 0xe2, 0x84, 0x9f, 0x42, 0xfe,
		0x3c, 0x0a, 0xcf, 0xc3, 0x7d, 0x96, 0x2f, 0x01, 0x0f, 0x02, 0x0f, 0x02, 0x0f, 0x72, 0xdc, 0x79,
		0x11, 0x9c, 0xeb, 0x43, 0xfc, 0x0f, 0xa5, 0xbe, 0xbb, 0x09, 0x21, 0x4a, 0x7d, 0xd7, 0x4c, 0x2d,
		0xce, 0xf5, 0x49, 0xd3, 0x4c, 0xd3, 0x8f, 0x96, 0x99, 0x44, 0xc7, 0x9b, 0x3d, 0xaa, 0x4f, 0x41,
		0x74, 0x9c, 0x9e, 0x1f, 0x56, 0x46, 0x92, 0x68, 0x4c, 0xc1, 0xb3, 0x9e, 0xd8, 0xb3, 0xd9, 0x9f,
		0x44, 0x13, 0x7d, 0xe6, 0x58, 0x21, 0x51, 0x2c, 0x9a, 0x56, 0xf7, 0x64, 0xf4, 0x33, 0x8c, 0x1d,
		0x46, 0x0f, 0xc2, 0xdf, 0xcc, 0xf1, 0x5d, 0x9b, 0x79, 0x93, 0xc7, 0x2f, 0x27, 0x81, 0xd7, 0x3b,
		0xf1, 0x7c, 0xd3, 0xa7, 0xa8, 0xc4, 0x29, 0x78, 0xbe, 0x3b, 0xb0, 0x7c, 0x67, 0xe4, 0x51, 0xd5,
		0xc9, 0x5d, 0x89, 0x56, 0xd7, 0x18, 0xfd, 0xb4, 0x98, 0xef, 0x8d, 0x7e, 0x07, 0xbf, 0xa4, 0xe1,
		0x1d, 0x8d, 0x1f, 0xbe, 0x18, 0x72, 0xff, 0x67, 0xc5, 0x68, 0x85, 0x37, 0xf4, 0x66, 0x3f, 0xf3,
		0x1d, 0xef, 0x93, 0x31, 0x25, 0x84, 0xb2, 0xfc, 0xbc, 0xf0, 0xf7, 0x13, 0x4b, 0x9e, 0x97, 0x26,
		0x90, 0xce, 0x31, 0xa5, 0xfa, 0xf0, 0xe1, 0xe4, 0xc3, 0x87, 0x93, 0xa1, 0x08, 0x9c, 0xf8, 0x2f,
		0x7d, 0xf6, 0xaf, 0x3f, 0xc4, 0x6a, 0xdd, 0x90, 0x9b, 0x9f, 0x2a, 0x7f, 0x08, 0x3d, 0x57, 0x58,
		0xf3, 0x7a, 0x43, 0xfe, 0x2c, 0xd5, 0xfe, 0xa0, 0x90, 0x47, 0xe2, 0xb8, 0x61, 0x36, 0x5e, 0x08,
		0xb1, 0x26, 0x22, 0xb5, 0xbc, 0xa2, 0x84, 0xb9, 0xe8, 0x20, 0xd9, 0x64, 0x64, 0x22, 0x2d, 0x50,
		0x63, 0x9e, 0xe5, 0xda, 0x7d, 0x32, 0x33, 0x2a, 0xcc, 0xef, 0xf8, 0xf9, 0x59, 0x29, 0x76, 0xcd,
		0x17, 0xe6, 0x0a, 0x1d, 0x9b, 0x75, 0xdb, 0x9e, 0x60, 0xba, 0x4c, 0xf8, 0x69, 0x76, 0xed, 0xb6,
		0x10, 0x4c, 0xb6, 0xe0, 0x3f, 0x31, 0x41, 0xac, 0xd6, 0x85, 0x00, 0x1b, 0xc1, 0xf6, 0xbe, 0x39,
		0xc1, 0x27, 0x02, 0xe4, 0x42, 0x88, 0xa8, 0x64, 0x81, 0x43, 0xa8, 0x3b, 0x2b, 0xb6, 0xed, 0x19,
		0x08, 0x09, 0xc3, 0x11, 0x9e, 0x71, 0xee, 0x9c, 0x14, 0x27, 0x9d, 0xa5, 0x7c, 0xb0, 0x91, 0x37,
		0xe9, 0xb2, 0xb1, 0xb8, 0xbe, 0x8d, 0x88, 0xf5, 0xd0, 0xb2, 0x9d, 0x04, 0x62, 0x4f, 0xc5, 0x6f,
		0xe2, 0x49, 0x61, 0xf4, 0x59, 0x8f, 0x31, 0x6f, 0x85, 0x6e, 0x29, 0xf6, 0x5c, 0x4d, 0x93, 0xf1,
		0xa5, 0x98, 0x20, 0x4f, 0x72, 0xee, 0x31, 0x3f, 0x9e, 0x34, 0x59, 0x4a, 0x91, 0x1c, 0xa5, 0x4e,
		0x86, 0x52, 0x79, 0x04, 0xf2, 0x64, 0x27, 0xb9, 0xd1, 0xe7, 0x90, 0xcc, 0x4c, 0x97, 0xcb, 0xd7,
		0xec, 0x64, 0xc7, 0x29, 0x14, 0xac, 0xb1, 0xfc, 0x26, 0x9c, 0xea, 0xb1, 0x08, 0x8e, 0xc6, 0x4b,
		0x38, 0x2d, 0xc9, 0x94, 0x92, 0x4c, 0x39, 0x29, 0x95, 0x94, 0x97, 0xb2, 0xa6, 0x11, 0x79, 0x90,
		0xae, 0x54, 0xa4, 0x13, 0x7b, 0xd0, 0xae, 0x4c, 0xec, 0x37, 0x95, 0x93, 0x54, 0xc9, 0x27, 0x03,
		0xb5, 0x99, 0xe7, 0xdb, 0x4e, 0x48, 0x8f, 0x8a, 0xcf, 0xa6, 0xc5, 0xe1, 0xfc, 0xbe, 0x85, 0x0b,
		0x60, 0x81, 0x33, 0x6b, 0x66, 0x82, 0x67, 0xd4, 0x27, 0x60, 0x81, 0x33, 0xad, 0x68, 0x4e, 0x38,
		0x88, 0x05, 0xce, 0x67, 0xd3, 0x22, 0xae, 0x01, 0x11, 0x0e, 0x6e, 0xe3, 0xf7, 0xec, 0x16, 0xd0,
		0xc5, 0x9d, 0xa5, 0xa5, 0xd7, 0x77, 0xff, 0x5c, 0xbc, 0x1e, 0xe5, 0xce, 0xe3, 0xed, 0xb0, 0x60,
		0xeb, 0xeb, 0x2e, 0x3e, 0xbc, 0xf8, 0x6c, 0x7a, 0x7f, 0x71, 0x77, 0xe4, 0xc3, 0xab, 0xc0, 0x9b,
		0xc3, 0x9b, 0xc3, 0x9b, 0xc3, 0x9b, 0xc3, 0x9b, 0xc3, 0x9b, 0xc3, 0x9b, 0x93, 0x78, 0x73, 0xe6,
		0x3f, 0x31, 0xd7, 0xa7, 0x54, 0xd9, 0x89, 0xba, 0x4e, 0x87, 0x86, 0xdf, 0x86, 0xdf, 0x86, 0xdf,
		0x3e, 0x5a, 0xbf, 0x3d, 0x31, 0x04, 0x68, 0x7f, 0x4c, 0x28, 0x9f, 0xdc, 0x8e, 0x69, 0x5a, 0x44,
		0xb7, 0x82, 0xfe, 0xc7, 0xd3, 0x1b, 0x4f, 0xb5, 0xff, 0xf1, 0xd9, 0xc5, 0x79, 0x05, 0xdd, 0x6f,
		0xf7, 0x6b, 0x17, 0x57, 0x4b, 0x41, 0x9a, 0x2d, 0x90, 0x39, 0x9e, 0xfc, 0x74, 0x0c, 0x62, 0x80,
		0x26, 0xc8, 0x99, 0x76, 0x5f, 0x68, 0x82, 0xbc, 0x23, 0x50, 0x92, 0x7e, 0x2f, 0x69, 0xfa, 0x97,
		0xa6, 0x84, 0x16, 0xc8, 0x3b, 0x43, 0x65, 0x88, 0x1a, 0x5a, 0xfe, 0xed, 0x04, 0x94, 0xdc, 0xfc,
		0x54, 0x06, 0x52, 0x3b, 0x22, 0x55, 0x01, 0x52, 0xbb, 0x20, 0x55, 0xaf, 0xd7, 0xa0, 0x7d, 0x3b,
		0x21, 0xd5, 0x68, 0xd6, 0x5b, 0x40, 0x6a, 0x17, 0xa4, 0x34, 0xb5, 0x8a, 0xc6, 0xed, 0x3b, 0x21,
		0xf5, 0xa9, 0x2e, 0x2a, 0x68, 0xe6, 0x8a, 0x1a, 0x51, 0xee, 0x12, 0x3f, 0xee, 0x2b, 0xc2, 0x65,
		0x43, 0xdf, 0xcc, 0xd8, 0x58, 0x45, 0x48, 0x8c, 0x26, 0x56, 0x11, 0x16, 0x2e, 0x80, 0x55, 0x04,
		0x5a, 0xcf, 0x87, 0xd5, 0x7f, 0xac, 0xfe, 0xaf, 0x02, 0x04, 0xab, 0xff, 0x19, 0xf7, 0xdc, 0x9c,
		0xb6, 0xf1, 0x2d, 0x5e, 0x00, 0x3e, 0x1c, 0x3e, 0x1c, 0x3e, 0x1c, 0x3e, 0x1c, 0x3e, 0x1c, 0x3e,
		0x1c, 0x3e, 0x1c, 0x1d, 0x9a, 0x56, 0xf7, 0x2c, 0xe8, 0x96, 0x4e, 0x48, 0xca, 0x78, 0x05, 0xa2,
		0x06, 0x06, 0xf5, 0x92, 0x31, 0xa2, 0x08, 0xfb, 0xea, 0xcf, 0x94, 0xa8, 0x81, 0x83, 0xe9, 0x33,
		0xba, 0xfa, 0x6a, 0x8a, 0xc6, 0x59, 0xe4, 0xe5, 0xd5, 0x25, 0x94, 0x57, 0x67, 0x86, 0x97, 0xa1,
		0xbc, 0x3a, 0xea, 0xf7, 0x42, 0x79, 0x35, 0xc2, 0x39, 0x84, 0x73, 0x08, 0xe7, 0x10, 0xce, 0x21,
		0x9c, 0x43, 0x38, 0x77, 0xc8, 0xe1, 0x1c, 0xca, 0xab, 0xe1, 0xcd, 0xe1, 0xcd, 0xe1, 0xcd, 0xe1,
		0xcd, 0xe1, 0xcd, 0xe1, 0xcd, 0xe1, 0xcd, 0x51, 0x5e, 0x0d, 0xbf, 0x0d, 0xbf, 0x0d, 0xbf, 0x8d,
		0xf2, 0xea, 0x45, 0x1c, 0x50, 0x5e, 0x8d, 0xf2, 0xea, 0x15, 0x37, 0x8e, 0xf2, 0xea, 0xa4, 0x62,
		0x8b, 0xf2, 0xea, 0x88, 0x52, 0x80, 0xf2, 0xea, 0xfd, 0x3b, 0x59, 0xfe, 0xa3, 0xa2, 0xbc, 0x1a,
		0xe5, 0xd5, 0x1b, 0x81, 0x42, 0x79, 0x75, 0x74, 0xa8, 0x50, 0x5e, 0xbd, 0x2b, 0x50, 0x28, 0xaf,
		0x8e, 0x80, 0x14, 0xca, 0xab, 0x77, 0x42, 0x0a, 0xe5, 0xd5, 0xbb, 0x22, 0x85, 0xf2, 0xea, 0x5d,
		0x91, 0x42, 0x79, 0xf5, 0xae, 0x48, 0xa1, 0xbc, 0x5a, 0x40, 0x79, 0x75, 0x1a, 0x12, 0x8f, 0xf2,
		0x6a, 0xac, 0x22, 0x60, 0x15, 0x61, 0xcd, 0x05, 0xb0, 0x8a, 0x40, 0x25, 0xbb, 0x58, 0xfd, 0xc7,
		0xea, 0xff, 0xea, 0xd1, 0xb1, 0xfa, 0x9f, 0xdc, 0x73, 0xa3, 0xbc, 0x1a, 0x3e, 0x1c, 0x3e, 0x1c,
		0x3e, 0x1c, 0x3e, 0x1c, 0x3e, 0x1c, 0x3e, 0x3c, 0x35, 0x1f, 0x8e, 0xf2, 0xea, 0x35, 0xe5, 0xd5,
		0x14, 0x55, 0xbc, 0x02, 0x5d, 0x75, 0x75, 0x2b, 0xbc, 0x9d, 0x7d, 0x15, 0x57, 0xa7, 0x7a, 0x60,
		0x36, 0xfb, 0xe5, 0xbb, 0x66, 0x71, 0xe0, 0x78, 0xbe, 0xf9, 0xbd, 0x9b, 0xcc, 0x0f, 0x14, 0xfe,
		0x7e, 0x62, 0xc9, 0x6d, 0x05, 0x61, 0xc9, 0xf3, 0x87, 0x0f, 0x27, 0x1f, 0x3e, 0x8c, 0x4a, 0xf7,
		0x4f, 0xfc, 0x97, 0x3e, 0xfb, 0xd7, 0x1f, 0x62, 0xb5, 0x6e, 0xd4, 0x4b, 0x7f, 0x08, 0x3d, 0x57,
		0x58, 0xf3, 0x6a, 0x43, 0xfe, 0x2c, 0xd5, 0xfe, 0xc8, 0x78, 0x85, 0x74, 0x88, 0xf4, 0x21, 0xd5,
		0x47, 0x27, 0x99, 0x8a, 0x4c, 0xc4, 0x4e, 0x35, 0xe6, 0x59, 0xae, 0xdd, 0x27, 0x33, 0x9f, 0x73,
		0x82, 0xda, 0x10, 0xab, 0xc5, 0xae, 0xf9, 0xc2, 0x5c, 0xa1, 0x63, 0xb3, 0x6e, 0xdb, 0x13, 0x4c,
		0x97, 0x09, 0x3f, 0xcd, 0xae, 0xdd, 0x16, 0x82, 0x99, 0x16, 0xfc, 0x27, 0x26, 0x88, 0xd5, 0xba,
		0x10, 0x40, 0x23, 0xd8, 0x9e, 0x50, 0x2f, 0x09, 0x3d, 0xf7, 0x9b, 0x13, 0xe2, 0x43, 0x25, 0x06,
		0x1c, 0x02, 0x82, 0x59, 0x89, 0x6d, 0xcf, 0xe0, 0x47, 0x48, 0x53, 0x78, 0x46, 0x03, 0x73, 0x02,
		0x9c, 0x68, 0x8a, 0xf2, 0xc1, 0x3f, 0xde, 0xa4, 0xcb, 0xbf, 0xe2, 0x7a, 0x34, 0x22, 0x9e, 0x43,
		0xc9, 0x6f, 0x0a, 0x89, 0xfa, 0xa5, 0x10, 0x30, 0x9a, 0x78, 0x12, 0x18, 0x7d, 0xc6, 0x63, 0xcc,
		0x59, 0xe1, 0xb9, 0xdf, 0xf5, 0x62, 0xcf, 0xd4, 0x34, 0xd6, 0x0c, 0x46, 0x89, 0x29, 0x31, 0xc9,
		0xda, 0xbf, 0x24, 0xce, 0x27, 0x51, 0xe4, 0x8f, 0xa8, 0xf3, 0x45, 0x54, 0xee, 0x80, 0x3c, 0x1f,
		0x44, 0x6e, 0xf1, 0x39, 0xe4, 0x7b, 0xd2, 0x65, 0xf0, 0x49, 0xdb, 0xb5, 0x14, 0xac, 0xb1, 0xfc,
		0x12, 0xb5, 0x64, 0x22, 0xe9, 0x95, 0x45, 0xde, 0x93, 0xe9, 0x14, 0x3d, 0x99, 0x32, 0x93, 0xcc,
		0x45, 0x4f, 0xa6, 0xb4, 0x95, 0x7c, 0x1a, 0xef, 0x3b, 0xed, 0x62, 0xd7, 0xfc, 0xce, 0xba, 0xc5,
		0x9f, 0xa3, 0x82, 0x03, 0xea, 0x3a, 0xd0, 0x85, 0x0b, 0x60, 0x0d, 0x28, 0x6b, 0x66, 0x82, 0x67,
		0xc8, 0x27, 0x60, 0x0d, 0x28, 0xad, 0x68, 0x4e, 0x38, 0x8c, 0x35, 0xa0, 0x7e, 0xd7, 0x1b, 0xda,
		0x03, 0x54, 0x82, 0xd2, 0x22, 0x3b, 0xb0, 0x1d, 0xff, 0xbc, 0xc4, 0xb1, 0x8a, 0xe6, 0x12, 0x95,
		0xa0, 0xd3, 0x1b, 0x4f, 0xb7, 0x12, 0x14, 0x75, 0xa0, 0x7b, 0xb6, 0x88, 0xab, 0x65, 0x20, 0xcd,
		0x3a, 0xd0, 0xb3, 0xd3, 0xf2, 0xc7, 0x8b, 0x4b, 0x54, 0x82, 0xee, 0xd7, 0xc1, 0xf2, 0x1f, 0xf5,
		0x58, 0x2b, 0x41, 0x99, 0x33, 0x78, 0x66, 0xae, 0x49, 0xbc, 0x20, 0xb0, 0xc4, 0x10, 0xca, 0x1c,
		0xc6, 0x96, 0x9c, 0xc1, 0x33, 0xbf, 0x0a, 0x50, 0xbd, 0xd7, 0xf2, 0x5d, 0xdb, 0xf9, 0xc1, 0xd5,
		0xd4, 0x14, 0x4e, 0x83, 0x39, 0x90, 0x9b, 0x9f, 0xca, 0x86, 0xf4, 0xb9, 0x59, 0x97, 0xab, 0xb2,
		0x6e, 0x28, 0x0f, 0xf5, 0x7a, 0x81, 0xa3, 0xf9, 0x3c, 0x0b, 0x2e, 0xa9, 0xa9, 0x0f, 0xba, 0xa4,
		0x19, 0x62, 0x5d, 0xd2, 0x74, 0x9e, 0x17, 0x2b, 0x8d, 0xbe, 0x5f, 0x25, 0xbd, 0xef, 0x77, 0x1e,
		0x5e, 0xb2, 0x91, 0xd2, 0xd5, 0x2e, 0xc3, 0xfa, 0x1f, 0x45, 0xd7, 0xd4, 0xe6, 0x17, 0xa3, 0x2e,
		0xde, 0x48, 0x75, 0x43, 0x56, 0x6a, 0x72, 0x55, 0xd4, 0x55, 0x8d, 0xe7, 0x75, 0x3f, 0x06, 0xd7,
		0x55, 0xd4, 0xe1, 0x25, 0xf9, 0x54, 0x1c, 0x71, 0xf2, 0xe1, 0x05, 0xbd, 0x27, 0x87, 0x21, 0x1d,
		0x47, 0xb5, 0x5a, 0x37, 0x21, 0x5c, 0xd8, 0xf4, 0xe4, 0xaa, 0xf3, 0x42, 0x77, 0x2d, 0x9c, 0xf3,
		0xbc, 0xd6, 0xb2, 0xcd, 0xe0, 0xca, 0x1a, 0x56, 0x29, 0x71, 0xe2, 0x0e, 0xfb, 0x9b, 0x3d, 0xd4,
		0x58, 0xb8, 0xaf, 0x85, 0x8f, 0x1c, 0x2f, 0x33, 0x67, 0x09, 0xaf, 0x85, 0xb3, 0x03, 0xe1, 0x2b,
		0x28, 0xb1, 0xe3, 0x6e, 0xbc, 0x0a, 0x9e, 0x6f, 0xba, 0x3e, 0xdf, 0x34, 0xed, 0xf2, 0x25, 0x90,
		0xa8, 0x4d, 0x0c, 0x2a, 0x12, 0xb5, 0x0b, 0x17, 0x40, 0xa2, 0x96, 0x96, 0xd2, 0x20, 0x51, 0x8b,
		0x44, 0xed, 0x32, 0xba, 0x48, 0xd4, 0xce, 0xdc, 0x38, 0x12, 0xb5, 0xc9, 0x84, 0x16, 0x89, 0xda,
		0xa8, 0x32, 0x80, 0x44, 0x6d, 0xc6, 0x42, 0x14, 0x01, 0x89, 0x5a, 0x42, 0xf7, 0x85, 0x44, 0xed,
		0xda, 0x74, 0x12, 0x12, 0xb5, 0xc9, 0x2f, 0x86, 0x44, 0x2d, 0xa7, 0xeb, 0x22, 0x51, 0xbb, 0xd1,
		0x34, 0x20, 0x51, 0xcb, 0xe1, 0x82, 0x48, 0xd4, 0x66, 0x87, 0xaf, 0x20, 0x51, 0xcb, 0xdd, 0x78,
		0x15, 0x7c, 0xd7, 0xec, 0x74, 0x6c, 0xab, 0x68, 0x75, 0x4d, 0xcf, 0xa3, 0x4f, 0xd2, 0xce, 0x0f,
		0x8f, 0x04, 0x6d, 0x62, 0x40, 0x91, 0xa0, 0x5d, 0xb8, 0x00, 0x12, 0xb4, 0xb4, 0x54, 0x86, 0x77,
		0x82, 0xd6, 0xb7, 0x38, 0x64, 0x67, 0x09, 0x73, 0x17, 0x9c, 0xf2, 0x86, 0x1c, 0xc2, 0x5b, 0x9e,
		0x79, 0xc2, 0x49, 0x6e, 0x88, 0x13, 0xdd, 0x4a, 0x2d, 0x1b, 0xc4, 0x3f, 0x0b, 0xc4, 0x21, 0x84,
		0xe0, 0x9a, 0xfe, 0x9b, 0x4c, 0xed, 0x25, 0xa6, 0x16, 0x04, 0x74, 0xff, 0x04, 0xd4, 0xe7, 0xb6,
		0x43, 0x60, 0x3a, 0x34, 0x88, 0x27, 0x88, 0x27, 0x88, 0xe7, 0xd1, 0x12, 0xcf, 0x81, 0xed, 0xf8,
		0x1f, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0xf7, 0x4f, 0x3b, 0x4b, 0x17, 0x17, 0x98, 0xdc, 0xe3,
		0x26, 0x9e, 0x44, 0x0e, 0x83, 0xb0, 0xf3, 0xdf, 0xd2, 0xd8, 0x2e, 0xeb, 0x30, 0x97, 0x39, 0xd6,
		0x41, 0xed, 0xd3, 0xd2, 0x6e, 0xab, 0xc2, 0xf9, 0xe9, 0x79, 0xe9, 0x5a, 0x68, 0x34, 0xeb, 0x2d,
		0xa1, 0x6e, 0x7e, 0x67, 0x5d, 0xa1, 0xe5, 0x9b, 0xd6, 0x5f, 0x82, 0xe4, 0x58, 0xbd, 0xb6, 0xed,
		0xfc, 0xf8, 0xc0, 0x63, 0x05, 0x9c, 0x13, 0x87, 0x5b, 0xc5, 0xe5, 0xa6, 0xf3, 0xc2, 0x49, 0xb7,
		0x79, 0xd3, 0xba, 0x95, 0xf4, 0x6e, 0xa7, 0x89, 0x83, 0x95, 0x49, 0x3b, 0xbc, 0x45, 0xb7, 0xdb,
		0x55, 0xdd, 0xe0, 0x9e, 0xfb, 0x5d, 0xef, 0x84, 0xa4, 0x45, 0x92, 0x40, 0xd4, 0x1e, 0xae, 0xd1,
		0xef, 0x7a, 0xc6, 0x28, 0x9a, 0xde, 0x57, 0xcf, 0xdb, 0x44, 0x0d, 0xf2, 0x4c, 0x9f, 0xd1, 0x75,
		0xaf, 0xa2, 0x68, 0x45, 0x4c, 0xde, 0xbc, 0xaa, 0x84, 0xe6, 0x55, 0x99, 0x49, 0x61, 0xa0, 0x79,
		0x55, 0xd4, 0xef, 0x85, 0xe6, 0x55, 0xc8, 0x7c, 0x22, 0xf3, 0x99, 0x16, 0x45, 0x46, 0xe6, 0x93,
		0x4c, 0x76, 0x51, 0x13, 0xc5, 0x2b, 0xd6, 0x46, 0x4d, 0x54, 0x0a, 0x68, 0x4f, 0x6e, 0x1c, 0x35,
		0x51, 0xc9, 0x84, 0x16, 0x35, 0x51, 0x51, 0x65, 0x00, 0x35, 0x51, 0x19, 0xca, 0x2d, 0xf1, 0x1b,
		0x15, 0x35, 0x51, 0xa8, 0x89, 0x9a, 0xe7, 0x21, 0xa8, 0x89, 0x22, 0xb8, 0x18, 0x6a, 0xa2, 0x38,
		0x5d, 0x17, 0x35, 0x51, 0x1b, 0x4d, 0x03, 0x6a, 0xa2, 0x38, 0x5c, 0x10, 0x35, 0x51, 0xd9, 0xe1,
		0x2b, 0x58, 0xb3, 0xe3, 0x6e, 0xbc, 0xd0, 0xbc, 0x6a, 0x3a, 0x1c, 0x12, 0xb5, 0x48, 0xd4, 0x6e,
		0xb8, 0x00, 0x12, 0xb5, 0x54, 0xb2, 0x8b, 0x44, 0x2d, 0xaf, 0x48, 0x17, 0x89, 0xda, 0x14, 0xd0,
		0x9e, 0xdc, 0x38, 0x12, 0xb5, 0xc9, 0x84, 0x16, 0x89, 0xda, 0xa8, 0x32, 0x80, 0x44, 0x6d, 0xc6,
		0x42, 0x14, 0x01, 0x89, 0x5a, 0x42, 0xf7, 0x85, 0x44, 0xed, 0xda, 0x74, 0x12, 0x12, 0xb5, 0xc9,
		0x2f, 0x86, 0x44, 0x2d, 0xa7, 0xeb, 0x22, 0x51, 0xbb, 0xd1, 0x34, 0x20, 0x51, 0xcb, 0xe1, 0x82,
		0x48, 0xd4, 0x66, 0x87, 0xaf, 0x20, 0x51, 0xcb, 0xdd, 0x78, 0xa1, 0x79, 0x15, 0x12, 0xb4, 0x02,
		0x12, 0xb4, 0x9b, 0x2e, 0x80, 0x04, 0x2d, 0x95, 0xec, 0xa2, 0x79, 0x15, 0x6d, 0x8e, 0x08, 0x5d,
		0x04, 0xb2, 0x90, 0x05, 0x42, 0xf3, 0xaa, 0xfc, 0x4e, 0x2d, 0x08, 0x28, 0x7f, 0x02, 0x8a, 0xe6,
		0x55, 0x20, 0x9e, 0x20, 0x9e, 0x20, 0x9e, 0x68, 0x5e, 0x05, 0xda, 0x09, 0xda, 0x99, 0x7f, 0xda,
		0x89, 0xe6, 0x55, 0x47, 0x4f, 0x3c, 0xd1, 0xbc, 0x8a, 0x58, 0x1e, 0xd1, 0xbc, 0xea, 0x60, 0x68,
		0xdd, 0x4a, 0x7a, 0x87, 0xe6, 0x55, 0x99, 0x0c, 0x6f, 0xd1, 0xbc, 0x6a, 0x6d, 0xf3, 0x2a, 0x8a,
		0x0e, 0x49, 0x02, 0x65, 0xef, 0xaa, 0x56, 0x78, 0x43, 0xfb, 0x6a, 0x5d, 0xf5, 0x26, 0x45, 0x09,
		0xa1, 0xf4, 0x7b, 0x85, 0xbf, 0x9f, 0x98, 0x93, 0xd8, 0xc5, 0x11, 0x36, 0x94, 0xfa, 0xf0, 0xe1,
		0xe4, 0xc3, 0x87, 0x51, 0x6b, 0xb4, 0x13, 0xff, 0xa5, 0xcf, 0xfe, 0xf5, 0x87, 0x58, 0xad, 0x1b,
		0x81, 0x59, 0xfc, 0x43, 0xe8, 0xb9, 0xc2, 0xba, 0xd7, 0xe5, 0xcf, 0x52, 0xed, 0x8f, 0x8c, 0x77,
		0xa0, 0x0a, 0xb1, 0x3e, 0xa4, 0xfe, 0x53, 0xc9, 0x26, 0x23, 0x13, 0xe9, 0xc5, 0x1a, 0xf3, 0x2c,
		0xd7, 0xee, 0x93, 0x99, 0xd1, 0x39, 0x61, 0x0d, 0x80, 0x28, 0x76, 0xcd, 0x17, 0xe6, 0x0a, 0x1d,
		0x9b, 0x75, 0xdb, 0x9e, 0x60, 0xba, 0x4c, 0xf8, 0x69, 0x76, 0xed, 0xb6, 0x10, 0x4c, 0xb6, 0xe0,
		0x3f, 0x31, 0x41, 0xac, 0xd6, 0x85, 0x00, 0x1b, 0xc1, 0xf6, 0xbe, 0x39, 0xa1, 0x7b, 0xef, 0xb9,
		0x42, 0x08, 0x11, 0x95, 0x2c, 0x70, 0xa0, 0x5f, 0xb3, 0x62, 0xdb, 0x9e, 0x81, 0x90, 0x30, 0xe1,
		0xc1, 0x93, 0x68, 0xcd, 0x49, 0x71, 0xd2, 0x59, 0xca, 0x07, 0x1b, 0x79, 0x93, 0x2e, 0x1b, 0x8b,
		0xeb, 0xdb, 0x88, 0x58, 0x0f, 0x2d, 0xdb, 0x29, 0x24, 0xea, 0x4c, 0x49, 0xc2, 0x6f, 0xe2, 0x49,
		0x61, 0xf4, 0x59, 0x8f, 0x31, 0x6f, 0x05, 0x8f, 0xfd, 0x77, 0x10, 0x84, 0x64, 0x45, 0xbb, 0x1d,
		0x7b, 0xd2, 0xa6, 0x65, 0x9d, 0x33, 0x83, 0xc5, 0x94, 0xa1, 0x64, 0xcb, 0x34, 0x89, 0x97, 0x65,
		0x28, 0x96, 0x61, 0x66, 0x97, 0x5d, 0x4c, 0x2b, 0x49, 0x41, 0x1b, 0x95, 0x77, 0x20, 0x5f, 0x50,
		0x21, 0x77, 0x00, 0x8b, 0x0b, 0x26, 0x01, 0x6e, 0x07, 0xc2, 0xe8, 0x13, 0x2f, 0x7d, 0x4c, 0xe4,
		0xa5, 0xcb, 0xcc, 0x8e, 0xcb, 0x3a, 0x49, 0x04, 0x66, 0x5c, 0xcf, 0x90, 0x60, 0x7f, 0x40, 0xa1,
		0x39, 0x32, 0xbc, 0x53, 0x7a, 0x38, 0xab, 0xd7, 0x59, 0xb6, 0x65, 0x89, 0x1a, 0x09, 0x93, 0x34,
		0x10, 0x4e, 0xd8, 0x38, 0x38, 0x71, 0xc3, 0x60, 0xd8, 0x2f, 0xd8, 0xaf, 0xa8, 0x51, 0x56, 0xc2,
		0xe6, 0xbe, 0x73, 0x31, 0x06, 0x59, 0x17, 0x6f, 0xba, 0xc0, 0x85, 0x68, 0xe7, 0x07, 0xd9, 0x8e,
		0x0f, 0x5e, 0xbd, 0xbc, 0x93, 0xa9, 0x6a, 0x1a, 0x39, 0x94, 0xc3, 0xec, 0xe2, 0x9d, 0x48, 0x95,
		0x89, 0x02, 0xc0, 0x84, 0x12, 0x47, 0xb6, 0x3b, 0x63, 0xc6, 0x47, 0x86, 0xb5, 0x87, 0x04, 0xf2,
		0x36, 0x76, 0x98, 0x1f, 0x0f, 0xf0, 0xe4, 0x82, 0x70, 0x4b, 0x0f, 0x6b, 0x17, 0x7b, 0x96, 0xcf,
		0x7c, 0x8f, 0xce, 0xf8, 0x2d, 0x8c, 0x0b, 0xfb, 0x07, 0xfb, 0x07, 0xfb, 0x97, 0x29, 0xfb, 0x67,
		0xf5, 0x06, 0x8e, 0xcf, 0xdc, 0x4a, 0x99, 0xd0, 0x04, 0x12, 0x54, 0x11, 0x12, 0xef, 0x44, 0x23,
		0xcc, 0x49, 0xf3, 0xd8, 0x79, 0xc6, 0x6b, 0xc7, 0x19, 0xf7, 0xcd, 0x48, 0xfc, 0x36, 0x21, 0x11,
		0xee, 0x2c, 0xe3, 0xb2, 0xa3, 0x6c, 0xda, 0xb7, 0xe4, 0x63, 0xb9, 0x5c, 0xb9, 0x2c, 0x97, 0x4f,
		0x2f, 0xcf, 0x2f, 0x4f, 0xaf, 0x2e, 0x2e, 0xce, 0x2a, 0x67, 0x17, 0x98, 0x45, 0x12, 0x6b, 0x49,
		0x37, 0xca, 0xe3, 0x01, 0x73, 0xb2, 0xbe, 0x69, 0xfd, 0xc5, 0x85, 0x94, 0x8d, 0x07, 0x06, 0x2b,
		0x03, 0x2b, 0x03, 0x2b, 0x03, 0x2b, 0x03, 0x2b, 0x03, 0x2b, 0x03, 0x2b, 0x03, 0x2b, 0x03, 0x2b,
		0xdb, 0x30, 0x29, 0x14, 0xdb, 0x0c, 0x96, 0xcc, 0x7d, 0xf2, 0xed, 0x06, 0x60, 0x63, 0x60, 0x63,
		0x60, 0x63, 0x9c, 0xd8, 0x18, 0x59, 0xe7, 0x61, 0xc2, 0x4e, 0xc3, 0xa0, 0x62, 0xa0, 0x62, 0x87,
		0x41, 0xc5, 0xca, 0xa5, 0xab, 0xf2, 0x55, 0xe5, 0xb2, 0x74, 0x05, 0x02, 0x06, 0x02, 0x96, 0xe4,
		0x93, 0xb9, 0xd9, 0xcd, 0x9b, 0xb4, 0x6c, 0x89, 0x62, 0x3b, 0x6f, 0x82, 0x4a, 0xa5, 0x74, 0xf6,
		0xc0, 0xf9, 0xae, 0xe9, 0x78, 0xfd, 0x9e, 0xeb, 0x27, 0xdf, 0x07, 0x37, 0x1d, 0x6a, 0xcf, 0x7b,
		0xe1, 0x32, 0xb2, 0x97, 0x97, 0xa2, 0x85, 0xca, 0xf1, 0xee, 0x88, 0x23, 0x68, 0x81, 0x72, 0x60,
		0xfb, 0xe2, 0xac, 0xb1, 0xfc, 0x12, 0x85, 0xbb, 0xa3, 0xf1, 0x68, 0x22, 0xdd, 0xb3, 0x9c, 0x47,
		0xba, 0x94, 0xfd, 0x8e, 0x10, 0xef, 0x72, 0xec, 0x67, 0xb4, 0xdf, 0xa8, 0x37, 0xa9, 0x92, 0x4f,
		0x06, 0xfa, 0x3e, 0xb0, 0xbb, 0xbe, 0xed, 0x14, 0xdb, 0xcc, 0x37, 0xed, 0x2e, 0x7d, 0xb9, 0xe2,
		0xc2, 0xf8, 0x68, 0x8a, 0x96, 0x35, 0x23, 0xc1, 0xcb, 0x58, 0x70, 0x37, 0x1a, 0xdc, 0x8d, 0x47,
		0x0a, 0x46, 0x84, 0x38, 0x42, 0xcc, 0x7c, 0x53, 0x34, 0x3e, 0xa7, 0xa2, 0xf0, 0x38, 0x0d, 0x85,
		0xcf, 0x29, 0x28, 0x7c, 0x4f, 0x3f, 0x19, 0x9e, 0x7a, 0xa2, 0x57, 0x9b, 0x86, 0xac, 0xc8, 0xba,
		0x2c, 0xf2, 0x38, 0xa0, 0x63, 0x78, 0xcc, 0x49, 0x70, 0x0d, 0xa9, 0xa5, 0x8b, 0x37, 0x75, 0xb9,
		0x75, 0x4f, 0x56, 0x54, 0x3e, 0x77, 0x9d, 0xf0, 0x84, 0x93, 0x5b, 0x4d, 0xbc, 0x6b, 0x48, 0x8a,
		0x5e, 0xc8, 0xf2, 0x29, 0x42, 0x1c, 0x0f, 0xde, 0x98, 0x02, 0xc0, 0xe5, 0x4c, 0x88, 0xa5, 0x79,
		0x4c, 0xcc, 0xaf, 0xd7, 0x5e, 0x65, 0x2c, 0x91, 0xd7, 0xc2, 0x69, 0x46, 0x3b, 0x00, 0xbd, 0x1e,
		0x4d, 0x9f, 0x31, 0x92, 0xfe, 0x2b, 0x8b, 0xff, 0x38, 0xb6, 0x18, 0xfb, 0xf0, 0xe1, 0x64, 0x48,
		0x1f, 0x8b, 0xcf, 0xbd, 0x36, 0x13, 0xfe, 0x25, 0xfc, 0x71, 0xf3, 0x20, 0xd7, 0x75, 0x59, 0xf9,
		0xe3, 0xc0, 0x1b, 0x8b, 0x11, 0x36, 0x67, 0x49, 0x9d, 0x15, 0xad, 0x64, 0x47, 0x1b, 0x66, 0xea,
		0x20, 0x9a, 0x51, 0xf2, 0xe8, 0xdc, 0xb2, 0x56, 0xac, 0xf5, 0x27, 0xdb, 0x13, 0xba, 0xcc, 0xec,
		0x08, 0xb6, 0x27, 0xf4, 0x9c, 0xee, 0xcb, 0x62, 0x7f, 0x90, 0x10, 0xc3, 0x4e, 0xcf, 0x15, 0x86,
		0x5b, 0x38, 0xbd, 0xe0, 0x7d, 0x5e, 0x9f, 0x59, 0x76, 0xc7, 0x66, 0x6d, 0xc1, 0xef, 0x7d, 0x73,
		0xbe, 0x33, 0x61, 0x14, 0x60, 0x7d, 0xe0, 0x25, 0x47, 0x9c, 0xd5, 0x41, 0x48, 0xa5, 0xf1, 0xcb,
		0xde, 0xb4, 0x63, 0x49, 0x43, 0x88, 0x27, 0x1d, 0xa7, 0x2a, 0x25, 0xfa, 0x97, 0xa7, 0xa6, 0xf6,
		0x6d, 0xe6, 0xf9, 0xb6, 0x13, 0xc6, 0x56, 0xc5, 0x44, 0x0b, 0x29, 0x6b, 0x0d, 0xd6, 0xd2, 0x15,
		0x90, 0xcd, 0x41, 0x36, 0x07, 0xd9, 0x9c, 0xa3, 0xcd, 0xe6, 0x04, 0x36, 0xa0, 0xe8, 0x0c, 0x9e,
		0x8b, 0x6e, 0xb8, 0x39, 0x09, 0x07, 0xe0, 0x93, 0xa2, 0x4b, 0x56, 0xaa, 0xbe, 0x16, 0x5d, 0x0e,
		0xc7, 0x3f, 0x16, 0x9a, 0xa6, 0xef, 0x33, 0xd7, 0xe1, 0x76, 0x06, 0x7e, 0xe1, 0xed, 0xe9, 0x3f,
		0xa7, 0xef, 0xcb, 0xaf, 0x5f, 0x4f, 0x8b, 0x57, 0x8f, 0xbf, 0x83, 0xc7, 0xe7, 0xaf, 0x5f, 0xcf,
		0x8a, 0x57, 0x8f, 0xd3, 0x27, 0x4a, 0x33, 0x4f, 0xfc, 0x53, 0x7a, 0xfd, 0x7d, 0xfa, 0xff, 0x9b,
		0xf9, 0xfb, 0xfc, 0xf5, 0xf7, 0xd7, 0xb3, 0xe2, 0xc5, 0xe8, 0xaf, 0xf2, 0xeb, 0xef, 0xca, 0xd7,
		0xd3, 0x62, 0x79, 0xfa, 0x62, 0xe5, 0x62, 0xe6, 0xef, 0x52, 0xf0, 0x77, 0xf0, 0x44, 0x69, 0x34,
		0x7c, 0xe5, 0xe2, 0xe2, 0xfc, 0xeb, 0x69, 0xf1, 0xe2, 0xf1, 0xdd, 0xb7, 0x6f, 0x1f, 0xbe, 0x7d,
		0xfb, 0x90, 0x91, 0x9b, 0xa1, 0xa7, 0x81, 0x8f, 0x3c, 0x44, 0x43, 0x6d, 0xc9, 0x9f, 0xb9, 0xcb,
		0xc7, 0xff, 0xbd, 0x85, 0x84, 0x2c, 0xdf, 0xcc, 0xbb, 0xff, 0x29, 0xe0, 0x68, 0x77, 0x62, 0xb7,
		0xf7, 0x9d, 0xb9, 0x1c, 0xad, 0x73, 0x85, 0xc3, 0xd0, 0x7c, 0xce, 0x7b, 0xe1, 0x07, 0xf9, 0xe4,
		0xc6, 0x79, 0x9e, 0xff, 0x32, 0xb9, 0x08, 0xe7, 0x73, 0x60, 0x26, 0xd7, 0x49, 0xeb, 0xc8, 0x90,
		0xa9, 0xe0, 0xf2, 0x3e, 0x3a, 0x84, 0x63, 0x4a, 0x6e, 0x2a, 0x02, 0x1c, 0xcf, 0x89, 0x59, 0x12,
		0x81, 0xc0, 0x70, 0x5e, 0x40, 0x0c, 0x32, 0x93, 0x3f, 0xe2, 0x33, 0xea, 0xb1, 0x3a, 0x30, 0x3e,
		0xab, 0xf0, 0x4b, 0xe1, 0x45, 0x99, 0xc3, 0xd8, 0x5c, 0x56, 0xe5, 0xa7, 0x21, 0x22, 0xcf, 0xd5,
		0xf9, 0xc9, 0x55, 0xc2, 0x55, 0x7a, 0x51, 0xf9, 0xc2, 0x29, 0x79, 0xfb, 0x9e, 0x17, 0x36, 0xbc,
		0x16, 0xb9, 0xa7, 0x99, 0x19, 0xe5, 0x0b, 0xf9, 0xfa, 0x30, 0x3f, 0xeb, 0x81, 0x9c, 0x36, 0x77,
		0x41, 0x5c, 0xca, 0x38, 0x17, 0x3d, 0x96, 0x42, 0x5e, 0x3b, 0xbc, 0x0a, 0x72, 0xdb, 0x89, 0x71,
		0x45, 0x6e, 0x7b, 0xe1, 0x02, 0xc8, 0x6d, 0xd3, 0x3a, 0x29, 0x8e, 0xb9, 0xed, 0xe4, 0x3d, 0xcd,
		0xd7, 0xf2, 0x22, 0xc2, 0x33, 0xd0, 0x27, 0x3d, 0xcf, 0x4f, 0x7a, 0x56, 0x58, 0x8a, 0x76, 0xdd,
		0x66, 0x1d, 0xdb, 0x61, 0xed, 0x61, 0x5d, 0xda, 0xf8, 0xc9, 0xb1, 0x51, 0x5b, 0x7e, 0x66, 0xf2,
		0x44, 0x58, 0x5d, 0x96, 0x2b, 0xcf, 0x31, 0xd9, 0x86, 0xc2, 0xc3, 0x61, 0x4c, 0x07, 0x87, 0x9f,
		0x80, 0x9f, 0x80, 0x9f, 0x38, 0x5a, 0x3f, 0x81, 0x1d, 0xed, 0xfc, 0x77, 0xb4, 0x4b, 0x9f, 0x9b,
		0x75, 0xb9, 0x2a, 0xeb, 0xdc, 0xb6, 0xb3, 0x8f, 0x36, 0x29, 0x1e, 0xed, 0x2e, 0xf3, 0xf1, 0xf7,
		0xe7, 0xb3, 0xfd, 0x7b, 0x32, 0x7d, 0xb9, 0xdf, 0xfb, 0x9d, 0x09, 0xe6, 0xc3, 0x7e, 0xf5, 0xbb,
		0xb6, 0x65, 0xfb, 0xc5, 0x31, 0x4b, 0x09, 0x0c, 0x3b, 0x27, 0x22, 0xb4, 0xe1, 0x5a, 0xe0, 0x45,
		0xe0, 0x45, 0xe0, 0x45, 0xe0, 0x45, 0xe0, 0x45, 0xdc, 0x78, 0x91, 0xa8, 0x7c, 0xe1, 0x46, 0x89,
		0xc4, 0x7a, 0xfd, 0x68, 0xe9, 0x50, 0xf0, 0xdd, 0xf9, 0x50, 0x21, 0x1e, 0x2b, 0x1c, 0xa8, 0x80,
		0x8b, 0x3e, 0xf6, 0xe1, 0x57, 0xc0, 0x8d, 0x49, 0x35, 0x4a, 0xe0, 0xf6, 0x47, 0x17, 0x56, 0xd2,
		0x86, 0x4d, 0x53, 0x85, 0x1a, 0xb8, 0x45, 0xc1, 0xa6, 0x29, 0x87, 0x1a, 0x87, 0x21, 0x28, 0x82,
		0xcb, 0xa4, 0x7e, 0x08, 0x7c, 0x8a, 0xe0, 0xa6, 0xb3, 0x8e, 0x1d, 0x03, 0x89, 0xfe, 0x3d, 0xe6,
		0x31, 0xfb, 0xe1, 0x5b, 0xfd, 0x62, 0xa7, 0x6b, 0xfe, 0xf0, 0x38, 0x66, 0x3d, 0xa6, 0xd7, 0x40,
		0xb6, 0x03, 0xd9, 0x0e, 0x64, 0x3b, 0x8e, 0x36, 0xdb, 0x61, 0xb7, 0x99, 0xe3, 0xdb, 0xfe, 0x0b,
		0xa7, 0x1d, 0x03, 0x84, 0x5b, 0x91, 0x0b, 0xf2, 0xe8, 0x56, 0x6f, 0x4c, 0x8f, 0x83, 0x52, 0x4c,
		0x78, 0x5d, 0xb5, 0x69, 0xdc, 0xd6, 0xc5, 0xbb, 0x16, 0xb5, 0x52, 0x84, 0x3b, 0xb4, 0x3d, 0x2e,
		0x35, 0x0c, 0xbc, 0xa9, 0x6e, 0xb5, 0x69, 0x88, 0xd5, 0x3f, 0x0f, 0x22, 0x08, 0x48, 0x01, 0x8a,
		0xea, 0x7f, 0x34, 0x40, 0x31, 0xea, 0xc0, 0x54, 0x95, 0x00, 0xc5, 0xc8, 0x66, 0x50, 0xaf, 0xc2,
		0x1e, 0x2e, 0x14, 0xcd, 0xd6, 0x3d, 0xa0, 0x18, 0x42, 0xa1, 0xb5, 0x74, 0x40, 0x31, 0x84, 0xa2,
		0xf5, 0x05, 0x0a, 0x32, 0x82, 0xe2, 0x41, 0xbb, 0x2b, 0x64, 0x3c, 0x46, 0x7f, 0xcc, 0x29, 0x93,
		0xae, 0xdb, 0x9e, 0x2f, 0xfa, 0xbe, 0x4b, 0xcb, 0xa6, 0x1b, 0xb6, 0x23, 0x75, 0x59, 0x10, 0x91,
		0x10, 0x97, 0xc3, 0x15, 0x1a, 0xe6, 0xaf, 0x99, 0x91, 0xf9, 0x9e, 0x16, 0x57, 0x50, 0xdd, 0x36,
		0x73, 0x59, 0xfb, 0xe6, 0xa5, 0x70, 0x2d, 0x38, 0x83, 0x6e, 0x97, 0xc7, 0xd0, 0x0f, 0x1e, 0x73,
		0x49, 0xeb, 0xf8, 0xb0, 0x6a, 0x43, 0x6f, 0xa4, 0xb0, 0x6a, 0x93, 0xc5, 0xb4, 0xc7, 0xca, 0xf4,
		0x07, 0x56, 0x6d, 0x22, 0x79, 0x5f, 0xac, 0xda, 0xac, 0x50, 0x0a, 0xac, 0xda, 0x60, 0xd5, 0x26,
		0xc5, 0xd1, 0xf2, 0xb4, 0x6a, 0xe3, 0x85, 0x9a, 0xca, 0xa9, 0x6d, 0xe1, 0xec, 0xe0, 0x58, 0xa7,
		0x49, 0x0c, 0x27, 0xd6, 0x69, 0x52, 0x36, 0xc8, 0x58, 0xa7, 0x21, 0x93, 0x5d, 0x74, 0x2c, 0x44,
		0xc7, 0xc2, 0x25, 0x5b, 0x89, 0x8e, 0x85, 0xe8, 0x58, 0xb8, 0x46, 0x34, 0xd0, 0xb1, 0x10, 0x1d,
		0x0b, 0xd3, 0x0a, 0xe3, 0xd1, 0xb1, 0x70, 0xc5, 0xd0, 0xe8, 0x58, 0xb8, 0xe9, 0x22, 0xe8, 0x58,
		0x98, 0xc1, 0x54, 0xdc, 0x54, 0x04, 0xd0, 0xb1, 0xf0, 0x60, 0xc4, 0x00, 0x1d, 0x0b, 0x33, 0xed,
		0xc0, 0xd0, 0xb1, 0x70, 0x5d, 0x88, 0x88, 0x8e, 0x85, 0x1b, 0xb0, 0x41, 0xc7, 0x42, 0x8e, 0x23,
		0x22, 0x93, 0xbd, 0x4a, 0x22, 0x66, 0x92, 0xcd, 0x7c, 0x9a, 0x15, 0x2e, 0x5e, 0x00, 0x19, 0xed,
		0xc4, 0x90, 0x22, 0xa3, 0xbd, 0x70, 0x01, 0x64, 0xb4, 0x69, 0x5d, 0x13, 0xfa, 0x14, 0xe6, 0xb3,
		0x4f, 0xe1, 0x9b, 0x3d, 0xca, 0x56, 0x41, 0x74, 0x9c, 0x9e, 0x6f, 0x92, 0x6d, 0xf8, 0x28, 0x78,
		0xd6, 0x13, 0x7b, 0x36, 0xfb, 0x93, 0x89, 0xea, 0x33, 0xc7, 0x0a, 0xad, 0x78, 0xd1, 0xb4, 0xba,
		0x27, 0xa3, 0x9f, 0xe1, 0xec, 0x8c, 0x1e, 0x84, 0xbf, 0x99, 0xe3, 0xbb, 0x36, 0xf3, 0x26, 0x8f,
		0x5f, 0x4e, 0x7c, 0xd7, 0x74, 0xbc, 0x60, 0xe2, 0x4e, 0x86, 0x9f, 0x2f, 0x50, 0xb8, 0x55, 0xdf,
		0x1d, 0x58, 0xbe, 0x33, 0x12, 0x7a, 0x75, 0x72, 0x6f, 0xa2, 0xd5, 0x35, 0x46, 0x3f, 0x2d, 0xe6,
		0x7b, 0xa3, 0xdf, 0xc1, 0x2f, 0x69, 0x78, 0x5f, 0xe3, 0x87, 0x2f, 0x86, 0x3e, 0xbe, 0x2d, 0x63,
		0xe4, 0x9c, 0xde, 0xec, 0x67, 0xee, 0x13, 0xcc, 0x7b, 0xc1, 0xf3, 0x4d, 0x3f, 0xb9, 0x21, 0x99,
		0x59, 0xb0, 0x09, 0x86, 0x4b, 0x28, 0x87, 0x63, 0x73, 0x91, 0x70, 0x98, 0x09, 0x63, 0x48, 0x78,
		0xce, 0x35, 0x25, 0x53, 0xe0, 0xc5, 0x10, 0xa8, 0x99, 0x01, 0x37, 0x46, 0xc0, 0x8d, 0x09, 0x70,
		0x64, 0x00, 0xfb, 0xb5, 0xca, 0x35, 0x9b, 0x66, 0x53, 0x74, 0x61, 0x74, 0xc4, 0xeb, 0xa8, 0xb3,
		0x1a, 0x7d, 0x1c, 0xb1, 0x30, 0x3e, 0xc2, 0x08, 0x84, 0x11, 0x08, 0x23, 0x8e, 0x36, 0x8c, 0x40,
		0xbb, 0x36, 0xfe, 0xed, 0xda, 0xf4, 0x6a, 0xd3, 0x90, 0x15, 0x59, 0x97, 0xc5, 0x3a, 0xb7, 0xb6,
		0x6d, 0x61, 0x39, 0x69, 0x4b, 0x17, 0x6f, 0xea, 0x72, 0xeb, 0x5e, 0xaa, 0xf1, 0xb8, 0x4e, 0x29,
		0xb8, 0xce, 0xad, 0x26, 0xde, 0x35, 0x24, 0x45, 0x3f, 0xda, 0x1e, 0x71, 0x13, 0x00, 0x12, 0x13,
		0xd6, 0xd5, 0x77, 0xbe, 0x30, 0x8f, 0x7c, 0xda, 0xd1, 0xcd, 0x4a, 0x24, 0xda, 0xd2, 0xed, 0x86,
		0x19, 0x0a, 0x9c, 0x36, 0x15, 0x38, 0x8d, 0x3a, 0x49, 0xa3, 0xbe, 0x69, 0x7f, 0xac, 0x68, 0x25,
		0x3b, 0xda, 0x30, 0x53, 0x28, 0x6f, 0x5a, 0x14, 0x6b, 0x9a, 0x42, 0x97, 0x51, 0x80, 0x85, 0xea,
		0xa6, 0x4c, 0x6a, 0x87, 0xc0, 0xa7, 0xba, 0x69, 0x32, 0xe9, 0x58, 0x12, 0x4e, 0xf4, 0x2f, 0xcf,
		0x87, 0xd8, 0xf1, 0x3f, 0xc0, 0x0e, 0xd9, 0x1c, 0x64, 0x73, 0x90, 0xcd, 0x39, 0xde, 0x6c, 0x0e,
		0xca, 0x9c, 0x50, 0xe6, 0xb4, 0x64, 0x2b, 0x51, 0xe6, 0x84, 0x32, 0xa7, 0x35, 0xa2, 0x81, 0x32,
		0x27, 0x94, 0x39, 0xa5, 0x15, 0xce, 0xa3, 0xcc, 0x69, 0xc5, 0xd0, 0x28, 0x73, 0xda, 0x74, 0x11,
		0x94, 0x39, 0x65, 0x30, 0x25, 0x37, 0x15, 0x01, 0x94, 0x39, 0x1d, 0x8c, 0x18, 0xa0, 0xcc, 0x29,
		0xd3, 0x0e, 0x0c, 0x65, 0x4e, 0xeb, 0x42, 0x44, 0x94, 0x39, 0x6d, 0xc0, 0x06, 0x65, 0x4e, 0x1c,
		0x47, 0x44, 0x4e, 0x7b, 0x95, 0x44, 0x2c, 0x66, 0x9c, 0xf9, 0xd4, 0x3a, 0xad, 0xbc, 0x0a, 0x72,
		0xdb, 0x89, 0x71, 0x45, 0x6e, 0x7b, 0xe1, 0x02, 0xc8, 0x6d, 0xd3, 0x3a, 0x29, 0x14, 0x3c, 0xe5,
		0xb3, 0xe0, 0x89, 0xc4, 0x73, 0x4c, 0xb6, 0xa1, 0xf0, 0x70, 0x18, 0xd3, 0xc1, 0xe1, 0x27, 0xe0,
		0x27, 0xe0, 0x27, 0x8e, 0xd6, 0x4f, 0x60, 0x47, 0x3b, 0xff, 0x1d, 0xed, 0xe3, 0x1e, 0xe9, 0xdc,
		0xb6, 0xb3, 0x8f, 0x36, 0x29, 0x1e, 0xed, 0x2e, 0xf3, 0xf1, 0xf7, 0xe7, 0xb3, 0xfd, 0x7b, 0x32,
		0x7d, 0xb9, 0xdf, 0xfb, 0x9d, 0xad, 0xa3, 0x49, 0xc7, 0x2c, 0x25, 0x30, 0xec, 0x9c, 0x88, 0xd0,
		0x86, 0x6b, 0x81, 0x17, 0x81, 0x17, 0x81, 0x17, 0x81, 0x17, 0x81, 0x17, 0x71, 0xe3, 0x45, 0xa2,
		0xf2, 0x85, 0x1b, 0x25, 0x12, 0xeb, 0xf5, 0xa3, 0xa5, 0x43, 0xc1, 0x77, 0xe7, 0x43, 0x85, 0x78,
		0xac, 0x70, 0xa0, 0x02, 0x2e, 0xfa, 0xd8, 0x38, 0xe2, 0x6b, 0x1f, 0x04, 0x61, 0x15, 0x51, 0xc0,
		0x11, 0x5f, 0x19, 0x32, 0xaa, 0x02, 0x8e, 0xf8, 0xda, 0x8b, 0x42, 0x08, 0x28, 0x82, 0xc3, 0x11,
		0x5f, 0xfb, 0x1b, 0xed, 0x31, 0x8f, 0xd9, 0x0f, 0xdf, 0xea, 0x17, 0x3b, 0x5d, 0xf3, 0x87, 0xc7,
		0x31, 0xeb, 0x31, 0xbd, 0x06, 0xb2, 0x1d, 0xc8, 0x76, 0x20, 0xdb, 0x71, 0xb4, 0xd9, 0x0e, 0xbb,
		0xcd, 0x1c, 0xdf, 0xf6, 0x5f, 0x38, 0xed, 0x18, 0xa0, 0x3c, 0x36, 0x5a, 0x1e, 0xdd, 0xea, 0x8d,
		0xe9, 0x71, 0x50, 0x8a, 0xd9, 0x83, 0xd3, 0x6f, 0xeb, 0xe2, 0x5d, 0x8b, 0x5a, 0x29, 0xc2, 0x1d,
		0xda, 0x1e, 0x97, 0x1a, 0x86, 0x14, 0xce, 0x92, 0x17, 0xab, 0x7f, 0xe2, 0x58, 0xfd, 0x21, 0x14,
		0xd5, 0xff, 0x68, 0x80, 0x62, 0xd4, 0x81, 0xa9, 0x2a, 0x01, 0x8a, 0x91, 0xcd, 0xa0, 0x5e, 0x85,
		0x3d, 0x5c, 0x28, 0x9a, 0xad, 0x7b, 0x40, 0x31, 0x84, 0x42, 0x6b, 0xe9, 0x80, 0x62, 0x08, 0x45,
		0xeb, 0x0b, 0x14, 0x64, 0x04, 0xc5, 0x83, 0x76, 0x57, 0xc8, 0x78, 0x8c, 0xfe, 0x98, 0x53, 0x26,
		0x5d, 0xb7, 0x3d, 0x5f, 0xf4, 0x7d, 0x97, 0x96, 0x4d, 0x37, 0x6c, 0x47, 0xea, 0xb2, 0x20, 0x22,
		0x21, 0x2e, 0x87, 0x2b, 0x34, 0xcc, 0x5f, 0x33, 0x23, 0x9f, 0x7d, 0x2c, 0x97, 0x2b, 0x97, 0xe5,
		0xf2, 0xe9, 0xe5, 0xf9, 0xe5, 0xe9, 0xd5, 0xc5, 0xc5, 0x59, 0x85, 0x94, 0x61, 0xab, 0x6e, 0x9b,
		0xb9, 0xac, 0x7d, 0xf3, 0x52, 0xb8, 0x16, 0x9c, 0x41, 0xb7, 0xcb, 0x63, 0xe8, 0x07, 0x8f, 0xb9,
		0xa4, 0x75, 0x7c, 0x58, 0xb5, 0xa1, 0x37, 0x52, 0x58, 0xb5, 0xc9, 0x62, 0xda, 0x63, 0x65, 0xfa,
		0x03, 0xab, 0x36, 0x91, 0xbc, 0x2f, 0x56, 0x6d, 0x56, 0x28, 0x05, 0x56, 0x6d, 0xb0, 0x6a, 0x93,
		0xe2, 0x68, 0x39, 0x3d, 0xce, 0x8e, 0xeb, 0x51, 0x76, 0x58, 0xa7, 0x49, 0x0e, 0x27, 0xd6, 0x69,
		0x52, 0x36, 0xc8, 0x58, 0xa7, 0x21, 0x93, 0x5d, 0x74, 0x2c, 0x44, 0xc7, 0xc2, 0x25, 0x5b, 0x89,
		0x8e, 0x85, 0xe8, 0x58, 0xb8, 0x46, 0x34, 0xd0, 0xb1, 0x10, 0x1d, 0x0b, 0xd3, 0x0a, 0xe3, 0xd1,
		0xb1, 0x70, 0xc5, 0xd0, 0xe8, 0x58, 0xb8, 0xe9, 0x22, 0xe8, 0x58, 0x98, 0xc1, 0x54, 0xdc, 0x54,
		0x04, 0xd0, 0xb1, 0xf0, 0x60, 0xc4, 0x00, 0x1d, 0x0b, 0x33, 0xed, 0xc0, 0xd0, 0xb1, 0x70, 0x5d,
		0x88, 0x88, 0x8e, 0x85, 0x1b, 0xb0, 0x41, 0xc7, 0x42, 0x8e, 0x23, 0x22, 0x93, 0xbd, 0x4a, 0x22,
		0x66, 0x92, 0xcd, 0x7c, 0x9a, 0x15, 0x2e, 0x5e, 0x00, 0x19, 0xed, 0xc4, 0x90, 0x22, 0xa3, 0xbd,
		0x70, 0x01, 0x64, 0xb4, 0x69, 0x5d, 0x13, 0xfa, 0x14, 0xe6, 0xb3, 0x4f, 0xe1, 0x9b, 0x3d, 0xca,
		0x56, 0x41, 0x74, 0x9c, 0x9e, 0x6f, 0x92, 0x6d, 0xf8, 0x28, 0x78, 0xd6, 0x13, 0x7b, 0x36, 0xfb,
		0x93, 0x89, 0xea, 0x33, 0xc7, 0x0a, 0xad, 0x78, 0xd1, 0xb4, 0xba, 0x27, 0xa3, 0x9f, 0xe1, 0xec,
		0x8c, 0x1e, 0x84, 0xbf, 0x99, 0xe3, 0xbb, 0x36, 0xf3, 0x26, 0x8f, 0x5f, 0x4e, 0x7c, 0xd7, 0x74,
		0xbc, 0x60, 0xe2, 0x4e, 0x3c, 0xdf, 0xf4, 0x29, 0x56, 0x59, 0x0a, 0x9e, 0xef, 0x0e, 0x2c, 0xdf,
		0x19, 0xc9, 0xbc, 0x3a, 0xb9, 0x35, 0xd1, 0xea, 0x1a, 0xa3, 0x9f, 0x16, 0xf3, 0xbd, 0xd1, 0xef,
		0xe0, 0x97, 0x34, 0xbc, 0xad, 0xf1, 0xc3, 0x17, 0x43, 0x1f, 0xdf, 0x95, 0xd1, 0x0a, 0xef, 0xea,
		0xcd, 0x7e, 0x66, 0x3e, 0xde, 0x27, 0x63, 0xca, 0x0a, 0xe5, 0x6e, 0x3c, 0x9a, 0xdd, 0x77, 0x04,
		0x72, 0x3a, 0xb3, 0xbb, 0xee, 0xc3, 0x87, 0x93, 0xa1, 0x1c, 0x9c, 0xf8, 0x2f, 0x7d, 0xf6, 0xaf,
		0x3f, 0xc4, 0x6a, 0xdd, 0x90, 0x9b, 0x9f, 0x2a, 0x7f, 0x08, 0x3d, 0x57, 0x58, 0xff, 0x7a, 0x79,
		0xd3, 0xeb, 0x0d, 0xf9, 0xb3, 0x54, 0xa3, 0xd8, 0x9f, 0x47, 0xed, 0xfe, 0x39, 0xed, 0xbf, 0xe3,
		0xe6, 0xec, 0x17, 0xf7, 0xd7, 0x71, 0x9c, 0xac, 0x4c, 0x30, 0x7f, 0x1e, 0x3b, 0xf0, 0xa6, 0x3b,
		0xee, 0xc6, 0xd6, 0xab, 0xd8, 0x35, 0x5f, 0x98, 0x2b, 0x74, 0x6c, 0xd6, 0x6d, 0x7b, 0x82, 0xe9,
		0xb2, 0xd9, 0x4d, 0x58, 0xc3, 0xcd, 0x56, 0x2f, 0xb6, 0xf3, 0xe3, 0x9b, 0x53, 0x3f, 0x0f, 0x70,
		0x0b, 0x01, 0x12, 0xc4, 0x6a, 0x5d, 0x08, 0x40, 0x23, 0xab, 0x53, 0xe6, 0xc0, 0x6c, 0xf9, 0xef,
		0xa4, 0xe3, 0x4a, 0x6b, 0xe7, 0x77, 0xca, 0x11, 0xcd, 0x56, 0x3e, 0x78, 0xce, 0x9b, 0x74, 0xf3,
		0x02, 0x71, 0x7d, 0x25, 0x11, 0x9f, 0xe2, 0xc0, 0xa3, 0x12, 0xe8, 0x00, 0x29, 0x73, 0x8a, 0x27,
		0x8f, 0xd1, 0xe7, 0x3f, 0xda, 0x27, 0x22, 0xce, 0x77, 0x60, 0x67, 0xc2, 0x3c, 0x0a, 0xfb, 0xef,
		0x80, 0x39, 0x16, 0x2b, 0xda, 0xed, 0x88, 0xf8, 0x26, 0xab, 0x7e, 0x49, 0x5e, 0xe5, 0xc2, 0xa5,
		0x9a, 0x85, 0xa0, 0x6a, 0x85, 0xa0, 0x3a, 0x25, 0xea, 0x5c, 0x26, 0xd4, 0x59, 0x32, 0x5d, 0x8d,
		0xa1, 0xa1, 0x04, 0x9a, 0x19, 0x4d, 0x1f, 0x77, 0xd7, 0xaa, 0xdd, 0xde, 0xb9, 0xe3, 0x5c, 0xc5,
		0x9d, 0xa3, 0x84, 0x73, 0x13, 0x61, 0x46, 0xe2, 0xcf, 0xc4, 0x6e, 0x13, 0xb0, 0x1d, 0xce, 0x1d,
		0xa0, 0x2c, 0x58, 0xe3, 0x8c, 0xea, 0x6e, 0x10, 0x4e, 0x98, 0xe3, 0xe8, 0x73, 0x3b, 0x4e, 0xd6,
		0x38, 0xf7, 0xb3, 0xe3, 0xdb, 0xa3, 0xa6, 0x79, 0xe3, 0xa4, 0x71, 0x67, 0xd3, 0xb4, 0xa6, 0xd5,
		0x8d, 0x32, 0xb1, 0x31, 0x69, 0x6a, 0xe2, 0x04, 0x6b, 0x62, 0xa6, 0xb9, 0x98, 0x20, 0x0d, 0xbe,
		0xf7, 0x9e, 0xd4, 0xb7, 0x66, 0x47, 0xf3, 0x73, 0x73, 0xe4, 0x3d, 0x32, 0xf2, 0x33, 0x47, 0x32,
		0xc5, 0x8c, 0x00, 0x62, 0xae, 0x64, 0xc4, 0x5e, 0xb1, 0x48, 0xb2, 0x32, 0x11, 0x5f, 0xb4, 0xa9,
		0x22, 0x31, 0xb2, 0xb5, 0x04, 0xb2, 0xe0, 0x2a, 0x91, 0xe8, 0xa7, 0xc3, 0x20, 0x63, 0x67, 0xf3,
		0x93, 0xef, 0x94, 0x9e, 0xee, 0x84, 0xe6, 0xe5, 0xfb, 0x23, 0x98, 0xd7, 0x91, 0xc7, 0x8c, 0xa9,
		0xe2, 0xe1, 0xa7, 0xa1, 0xdb, 0xd0, 0x6d, 0xe8, 0x76, 0x06, 0x75, 0xdb, 0x8f, 0x83, 0xc3, 0x04,
		0x83, 0xf0, 0xd3, 0xd0, 0x6d, 0xe8, 0x76, 0xce, 0x74, 0x3b, 0x59, 0x9f, 0xbf, 0x24, 0xfd, 0xfc,
		0x68, 0xfa, 0xf6, 0x4d, 0xbe, 0x88, 0x58, 0xad, 0x1b, 0xfa, 0x97, 0xa6, 0x14, 0x57, 0x6a, 0x08,
		0xda, 0xf0, 0x25, 0x5b, 0x3a, 0x98, 0xfb, 0x26, 0x72, 0xf3, 0x53, 0x39, 0x7e, 0xb2, 0x3c, 0xc1,
		0xe2, 0x0f, 0xed, 0x77, 0xa8, 0x1c, 0xfa, 0x77, 0xa8, 0x97, 0x0e, 0xfd, 0x1b, 0x84, 0x2b, 0x30,
		0x07, 0xff, 0x25, 0x9a, 0xf5, 0x56, 0x21, 0xe5, 0x1d, 0x0a, 0x8f, 0xbc, 0x6d, 0x7d, 0xfe, 0xb3,
		0x97, 0x91, 0x32, 0x75, 0x71, 0x12, 0x97, 0x23, 0xaa, 0x94, 0x62, 0xd2, 0x32, 0x52, 0x84, 0x18,
		0x27, 0x32, 0x8c, 0xc8, 0x1a, 0x91, 0xb0, 0xcc, 0x7f, 0xc2, 0x32, 0x32, 0xcb, 0x4b, 0xb0, 0x97,
		0x32, 0xce, 0x5e, 0xc9, 0xc9, 0x5e, 0xc8, 0xe9, 0x86, 0x96, 0xdd, 0x37, 0x35, 0xd2, 0xa8, 0xe5,
		0x70, 0x5f, 0x5e, 0x64, 0xbd, 0x8c, 0xb2, 0x9d, 0x2f, 0xf6, 0x4a, 0x42, 0x09, 0x8a, 0x99, 0x53,
		0xc5, 0xc4, 0x4a, 0x02, 0x32, 0x12, 0xc8, 0x48, 0x20, 0xdb, 0x98, 0x94, 0x27, 0x26, 0xe1, 0x8b,
		0xd0, 0x6d, 0xe8, 0x36, 0x74, 0x3b, 0x55, 0xdd, 0xc6, 0x4a, 0x02, 0x74, 0x1b, 0xba, 0xbd, 0x38,
		0xdf, 0x58, 0x49, 0x18, 0x8d, 0x83, 0x95, 0x04, 0x0e, 0xdf, 0x01, 0x2b, 0x09, 0x7b, 0xff, 0x06,
		0x58, 0x49, 0xc0, 0x4a, 0xc2, 0xbc, 0x57, 0x4b, 0x6f, 0x25, 0x21, 0x6a, 0xdd, 0x6d, 0xd4, 0x85,
		0x84, 0x08, 0x15, 0xb4, 0x34, 0x09, 0xcb, 0x48, 0x1c, 0x32, 0x0e, 0x77, 0xc4, 0x3a, 0x02, 0xd2,
		0x95, 0x49, 0x39, 0xde, 0xfe, 0xd7, 0x11, 0x42, 0x81, 0xa7, 0x52, 0xcb, 0x37, 0x09, 0x40, 0x1c,
		0x17, 0x59, 0x05, 0x16, 0x45, 0xd8, 0x41, 0x0d, 0xa3, 0x95, 0x54, 0x45, 0x2f, 0xa1, 0x22, 0x29,
		0x99, 0x8a, 0x51, 0x22, 0x15, 0xa3, 0x24, 0x6a, 0x1b, 0xb2, 0x11, 0xdd, 0x48, 0x0c, 0xf7, 0x51,
		0xd8, 0x69, 0x05, 0x29, 0x8a, 0xc3, 0xd8, 0x2c, 0x93, 0xeb, 0x25, 0x6d, 0xf5, 0x2b, 0x6b, 0x10,
		0xda, 0x15, 0x99, 0x08, 0x88, 0x6c, 0x40, 0x62, 0x57, 0x04, 0x56, 0x7f, 0xf5, 0xe5, 0x2f, 0xb6,
		0xe2, 0x4b, 0x6d, 0x2b, 0xf9, 0xd9, 0xad, 0xc4, 0x67, 0xcb, 0x42, 0xdc, 0x56, 0x4f, 0xb6, 0x8b,
		0xe7, 0xda, 0xdd, 0x53, 0xed, 0xea, 0x99, 0x22, 0x7b, 0xa2, 0xc8, 0x9e, 0x27, 0x92, 0xa7, 0xd9,
		0x97, 0x20, 0x6e, 0xdd, 0x12, 0xb2, 0x55, 0x0c, 0x37, 0xed, 0xf9, 0xd8, 0x4d, 0x0a, 0x6d, 0xc7,
		0x67, 0x6e, 0xc7, 0xb4, 0x98, 0xb7, 0x5d, 0x12, 0x67, 0xde, 0x0b, 0x69, 0xcc, 0x88, 0x34, 0x6e,
		0x5b, 0x76, 0x9d, 0x4e, 0xda, 0x76, 0x1c, 0x96, 0xe6, 0x79, 0x1b, 0x0e, 0xbb, 0xed, 0x02, 0xd8,
		0x99, 0x4e, 0x47, 0xa1, 0xd1, 0xd1, 0xe9, 0x73, 0x54, 0xda, 0x1c, 0x9b, 0x2e, 0xc7, 0xa6, 0xc9,
		0xb1, 0xe8, 0x71, 0x32, 0x26, 0xb7, 0xeb, 0xaa, 0x3d, 0x0a, 0x54, 0x11, 0xa7, 0xed, 0x25, 0x4e,
		0x8b, 0xbc, 0xad, 0xc4, 0x6e, 0xc7, 0x5f, 0x8e, 0x8a, 0xde, 0x2c, 0x02, 0x8b, 0x51, 0x69, 0x0a,
		0x36, 0x99, 0x80, 0x93, 0x08, 0x7a, 0xcc, 0x04, 0x65, 0xfa, 0x8b, 0x51, 0x63, 0x77, 0x1e, 0xbd,
		0x19, 0x8a, 0x90, 0xca, 0x72, 0xf3, 0x81, 0x24, 0x62, 0xa7, 0xf4, 0x77, 0xfa, 0x90, 0xc3, 0xb6,
		0x6e, 0x79, 0x72, 0x99, 0xe9, 0xc3, 0x3d, 0x6c, 0xee, 0x66, 0x3f, 0x5c, 0xe6, 0x79, 0xc5, 0x49,
		0xb0, 0x1c, 0xd9, 0xf3, 0x2f, 0x0e, 0x00, 0x0a, 0x00, 0x0a, 0x90, 0x0e, 0x05, 0x98, 0x97, 0xbc,
		0xf8, 0x74, 0x60, 0x61, 0x9c, 0x78, 0xd4, 0xe0, 0x0c, 0xd4, 0x00, 0xd4, 0x80, 0x0f, 0x35, 0x88,
		0xaa, 0x18, 0x93, 0x0f, 0xce, 0x76, 0x52, 0x4a, 0xbc, 0x45, 0x24, 0x5e, 0x5b, 0x26, 0x02, 0x55,
		0x59, 0x56, 0x99, 0x52, 0xcc, 0x01, 0x08, 0xda, 0xcf, 0x27, 0x57, 0x21, 0x2a, 0x55, 0x22, 0x57,
		0x29, 0x72, 0xd5, 0x22, 0x55, 0xb1, 0x78, 0xaa, 0x16, 0x53, 0xe5, 0x12, 0xab, 0xde, 0x92, 0x0a,
		0xbe, 0x24, 0x9f, 0xe7, 0x45, 0x45, 0x7c, 0x49, 0x3a, 0xcf, 0xc9, 0xd4, 0x31, 0xb1, 0x27, 0xe3,
		0xa1, 0x9e, 0xf4, 0x6a, 0x4a, 0xad, 0xae, 0xdc, 0xd4, 0x96, 0x9b, 0xfa, 0x72, 0x51, 0xe3, 0x64,
		0xea, 0x9c, 0x50, 0xad, 0xc9, 0xd4, 0x7b, 0x1a, 0xec, 0xcd, 0xf4, 0x21, 0xa5, 0x3f, 0x2c, 0x26,
		0x76, 0x93, 0x53, 0xe2, 0x7c, 0x16, 0x77, 0x13, 0xc0, 0xc3, 0x14, 0xf0, 0x33, 0x09, 0xbc, 0x4c,
		0x03, 0x77, 0x13, 0xc1, 0xdd, 0x54, 0x70, 0x35, 0x19, 0x34, 0xa6, 0x83, 0xc8, 0x84, 0x24, 0xcf,
		0xdf, 0x6d, 0x95, 0xd7, 0x03, 0x3b, 0x1c, 0xe6, 0xc3, 0x87, 0xe1, 0xce, 0xc5, 0x93, 0x59, 0xb3,
		0x95, 0xa7, 0xb3, 0xc1, 0x22, 0x95, 0x5d, 0xef, 0x6e, 0xe4, 0x89, 0x4e, 0x59, 0x21, 0x64, 0x76,
		0x64, 0x81, 0x17, 0xcc, 0x3b, 0xcc, 0xfb, 0x81, 0x9b, 0x77, 0x2a, 0xa6, 0x38, 0x19, 0x30, 0x3c,
		0x29, 0x8d, 0xb5, 0x8b, 0x3d, 0xcb, 0x8f, 0x92, 0x76, 0x8f, 0xac, 0x0e, 0x0b, 0xd7, 0x21, 0x16,
		0x00, 0x5a, 0x1e, 0xc9, 0x8d, 0x4f, 0xf2, 0x34, 0x3c, 0xfc, 0x0d, 0x10, 0x6f, 0x43, 0x94, 0x9a,
		0x41, 0x4a, 0xcd, 0x30, 0xa5, 0x62, 0xa0, 0x68, 0x0d, 0x15, 0xb1, 0xc1, 0xe2, 0xc7, 0x4b, 0x97,
		0xe4, 0xdd, 0xea, 0x0d, 0x1c, 0x9f, 0xb9, 0x95, 0x32, 0xc7, 0x43, 0x9d, 0x3f, 0x72, 0x18, 0x5a,
		0x33, 0x9d, 0x1f, 0x2c, 0xf1, 0x59, 0x68, 0xeb, 0xfe, 0x71, 0x3c, 0xaf, 0xb8, 0x61, 0x3b, 0xe9,
		0x1d, 0x49, 0x7f, 0x8a, 0xe3, 0xe8, 0xb3, 0xa1, 0xc9, 0xf3, 0x22, 0x60, 0xfe, 0x4a, 0x4f, 0x04,
		0x68, 0xce, 0xa6, 0x81, 0x54, 0x70, 0xf0, 0x16, 0xfc, 0x46, 0x7d, 0xcc, 0xe8, 0x31, 0xe3, 0x84,
		0x5a, 0x35, 0xe1, 0xc6, 0x7d, 0xd3, 0xfa, 0x2b, 0x15, 0x12, 0x3e, 0xbe, 0x10, 0x58, 0x38, 0x58,
		0x38, 0x58, 0x38, 0x58, 0x38, 0x58, 0x38, 0x58, 0x38, 0x58, 0x38, 0x58, 0x38, 0x58, 0x38, 0x58,
		0xf8, 0xd1, 0xb2, 0x70, 0x1e, 0x7b, 0x27, 0x96, 0xdc, 0x23, 0xfd, 0x1e, 0x0a, 0xb0, 0x6f, 0xb0,
		0x6f, 0xb0, 0x6f, 0xb0, 0x6f, 0x4e, 0x7b, 0x34, 0x16, 0xcd, 0x0b, 0xe5, 0x5e, 0x8d, 0xa9, 0x29,
		0x98, 0x94, 0x41, 0x85, 0x72, 0x71, 0x6d, 0x5a, 0xdd, 0x99, 0x87, 0xc3, 0x7e, 0x22, 0xf3, 0x7f,
		0x7f, 0x1d, 0xfd, 0xe9, 0x98, 0xcf, 0xec, 0x5f, 0xd6, 0xc0, 0x75, 0x99, 0xe3, 0xbf, 0x7d, 0x77,
		0xf2, 0xe1, 0xc3, 0xf4, 0x3f, 0x8f, 0xf9, 0xc5, 0xe0, 0xe5, 0xc7, 0xf1, 0x7b, 0xfd, 0x97, 0xfe,
		0xba, 0xf7, 0x06, 0x2f, 0x3d, 0xce, 0x5e, 0x62, 0x7c, 0x28, 0xf3, 0xc2, 0x53, 0x2f, 0xe3, 0x27,
		0xc8, 0x37, 0x95, 0x70, 0xf0, 0x8d, 0x99, 0x5a, 0xb8, 0x26, 0x3a, 0x10, 0x7f, 0xd9, 0x6b, 0xc7,
		0xab, 0xa3, 0x5b, 0xa8, 0x16, 0x5b, 0xf8, 0x7b, 0xcd, 0x19, 0xfa, 0x94, 0x7b, 0x63, 0x84, 0xd8,
		0xb5, 0x79, 0x52, 0x78, 0xab, 0xe3, 0x9e, 0x38, 0xb3, 0x7f, 0xad, 0x3c, 0x70, 0x3f, 0x42, 0x7b,
		0x35, 0xfe, 0x12, 0xb5, 0xdf, 0x6d, 0xb6, 0x89, 0x0f, 0xeb, 0x5f, 0x1a, 0x31, 0xd1, 0xe1, 0xfd,
		0xab, 0x42, 0xf9, 0x64, 0x87, 0xf9, 0xaf, 0x8a, 0x0c, 0xc9, 0x0f, 0xf7, 0x5f, 0xba, 0x48, 0xf2,
		0xc3, 0xfe, 0xd7, 0x0f, 0x19, 0xfb, 0xf0, 0x7f, 0x6a, 0xd9, 0x21, 0xb6, 0x5f, 0x69, 0xda, 0xad,
		0x02, 0xc9, 0x6e, 0x43, 0xee, 0x96, 0x2a, 0x99, 0x8d, 0x7a, 0x3d, 0x90, 0x4a, 0x1e, 0x22, 0x39,
		0xe2, 0x2f, 0x3f, 0x49, 0x4a, 0xca, 0xf8, 0x49, 0x4b, 0x3c, 0x21, 0x89, 0x3e, 0xc5, 0x31, 0xa6,
		0x37, 0x6a, 0xcf, 0x9a, 0xb5, 0x24, 0x3e, 0x72, 0x8d, 0xff, 0x4a, 0x9e, 0x9e, 0xb4, 0xb8, 0xf1,
		0x14, 0xc5, 0x8d, 0x1c, 0xc3, 0x71, 0x14, 0x37, 0x4e, 0xef, 0x3c, 0x71, 0x71, 0xe3, 0x38, 0xd2,
		0xa3, 0xab, 0x6d, 0x9c, 0x8c, 0x48, 0x53, 0xda, 0x78, 0x8a, 0xd2, 0xc6, 0x3d, 0xe4, 0xd4, 0x50,
		0xda, 0x98, 0x81, 0x98, 0x8b, 0x2c, 0xe7, 0xc5, 0x21, 0xc7, 0x45, 0x99, 0xd3, 0x9a, 0xad, 0x3b,
		0x5a, 0xf8, 0x6f, 0xcd, 0xd9, 0xac, 0x11, 0x0e, 0x6a, 0xe4, 0x40, 0x7a, 0x13, 0xf8, 0x54, 0x9f,
		0x62, 0x4a, 0x93, 0x9c, 0xc9, 0x03, 0x33, 0x0b, 0x33, 0x0b, 0x33, 0x0b, 0x33, 0xbb, 0xd9, 0xcc,
		0x7e, 0x5d, 0x5e, 0x1b, 0x98, 0x2c, 0x09, 0x44, 0xef, 0x71, 0x8f, 0xbc, 0x03, 0xcf, 0xbc, 0x43,
		0xa2, 0x90, 0x97, 0x4b, 0xca, 0x21, 0x4a, 0x07, 0xbc, 0xfd, 0xa4, 0x1b, 0x12, 0x47, 0x3d, 0x54,
		0xd1, 0x4e, 0x42, 0xf7, 0x8b, 0x94, 0x03, 0x52, 0x0e, 0x69, 0x5b, 0xc3, 0xc4, 0xee, 0x92, 0xd0,
		0x4d, 0x52, 0xb8, 0xc7, 0x15, 0xc7, 0xb7, 0x4c, 0x94, 0x3a, 0xcb, 0x26, 0x2c, 0x51, 0x0f, 0x03,
		0x92, 0x9e, 0x05, 0x68, 0x06, 0x07, 0xe3, 0x85, 0x7c, 0x29, 0xf2, 0xa5, 0x08, 0xe4, 0x11, 0xc8,
		0x23, 0x90, 0x47, 0xbe, 0x14, 0xf9, 0x52, 0x98, 0x59, 0x98, 0x59, 0x98, 0x59, 0xe4, 0x4b, 0x91,
		0x2f, 0xcd, 0x6e, 0xbe, 0x34, 0xe9, 0x4e, 0x64, 0xf2, 0x74, 0x69, 0x82, 0x5d, 0xc6, 0xe9, 0xa4,
		0x1a, 0x12, 0x39, 0x61, 0x0a, 0xe7, 0x8b, 0x2c, 0x29, 0x12, 0x0d, 0xc8, 0x92, 0x66, 0x2d, 0x4b,
		0x1a, 0xdf, 0xa1, 0xbd, 0x66, 0xec, 0x74, 0x8e, 0x49, 0x71, 0xc3, 0xd0, 0x65, 0x0b, 0x31, 0x4c,
		0x55, 0xb2, 0x72, 0x86, 0xe4, 0xe5, 0x0b, 0x5c, 0xca, 0x15, 0x08, 0xca, 0x13, 0x08, 0xca, 0x11,
		0xa2, 0xce, 0x66, 0x42, 0xfa, 0xc1, 0x87, 0x76, 0x14, 0x62, 0xa5, 0xf8, 0x49, 0x89, 0x46, 0x01,
		0x87, 0xc2, 0x6d, 0x9d, 0x35, 0xee, 0xa7, 0xc3, 0xcd, 0x4d, 0x4f, 0x9a, 0x87, 0xc4, 0x45, 0xa8,
		0xcc, 0x8f, 0x7e, 0xc8, 0x66, 0x44, 0x82, 0x86, 0xa3, 0xe0, 0x38, 0x11, 0xa8, 0x0c, 0x1d, 0x05,
		0x17, 0x99, 0x00, 0x25, 0x20, 0x3c, 0x71, 0x08, 0xce, 0x0a, 0x42, 0xb3, 0x6b, 0x3d, 0x32, 0x91,
		0x42, 0x3a, 0x49, 0x8f, 0x6d, 0x5c, 0x1a, 0x01, 0xe7, 0x36, 0x42, 0x59, 0x63, 0x29, 0x6b, 0xf4,
		0xa3, 0x9b, 0x1d, 0xa2, 0x83, 0x1b, 0x17, 0x07, 0xc2, 0xc9, 0x8d, 0xfc, 0x02, 0x7f, 0x9c, 0xdc,
		0x88, 0x93, 0x1b, 0xb1, 0x59, 0x07, 0x39, 0x34, 0x9c, 0xdc, 0x98, 0x5c, 0x11, 0x71, 0x72, 0x63,
		0x1a, 0x6a, 0x4a, 0xad, 0xae, 0xdc, 0xd4, 0x96, 0x9b, 0xfa, 0x72, 0x51, 0xe3, 0x64, 0xea, 0x9c,
		0x50, 0xad, 0xc9, 0xd4, 0x7b, 0x9a, 0x88, 0xc1, 0xc9, 0x8d, 0x38, 0xb9, 0x11, 0x47, 0x7b, 0xa5,
		0x62, 0x32, 0x68, 0x4c, 0x07, 0x91, 0x09, 0x89, 0x9f, 0x6c, 0xe2, 0x98, 0x8c, 0xe2, 0x91, 0xac,
		0x8a, 0x92, 0xcc, 0xc2, 0xc9, 0x8d, 0x31, 0x8c, 0x3c, 0x4e, 0x6e, 0x84, 0x79, 0x87, 0x79, 0xcf,
		0xaa, 0x79, 0xc7, 0xc9, 0x8d, 0x29, 0xf0, 0x48, 0x6e, 0x7c, 0x92, 0xa7, 0xe1, 0xe1, 0x6f, 0x80,
		0x78, 0x1b, 0xa2, 0xd4, 0x0c, 0x52, 0x6a, 0x86, 0x29, 0x15, 0x03, 0x45, 0x6b, 0xa8, 0x88, 0x0d,
		0x16, 0x3f, 0x5e, 0xba, 0x24, 0xef, 0x38, 0x33, 0x66, 0xd5, 0x3f, 0x9c, 0x19, 0xb3, 0xdb, 0x75,
		0x70, 0x66, 0x4c, 0x2c, 0x11, 0xc0, 0x99, 0x31, 0x87, 0x2a, 0x15, 0x38, 0x33, 0x26, 0x2b, 0x5a,
		0x85, 0x93, 0x1b, 0xc1, 0xc2, 0xc1, 0xc2, 0xc1, 0xc2, 0xc1, 0xc2, 0xc1, 0xc2, 0xc1, 0xc2, 0xc1,
		0xc2, 0xc1, 0xc2, 0xc1, 0xc2, 0xc1, 0xc2, 0x53, 0x67, 0xe1, 0x38, 0xb9, 0x11, 0xec, 0x1b, 0xec,
		0x1b, 0xec, 0xfb, 0x90, 0xd9, 0x37, 0x4e, 0x6e, 0xc4, 0xc9, 0x8d, 0xb4, 0x23, 0xe5, 0xf4, 0xe4,
		0xc6, 0xc5, 0x82, 0xb1, 0xc5, 0x27, 0x32, 0x7d, 0x76, 0xa3, 0xec, 0xcc, 0x55, 0x36, 0xcf, 0xfd,
		0x89, 0xd3, 0x1b, 0xb7, 0xfa, 0x55, 0x9c, 0xde, 0x88, 0xd3, 0x1b, 0xb3, 0x60, 0xc3, 0xd2, 0xb5,
		0x5d, 0x7b, 0x3b, 0xbf, 0x31, 0xaa, 0xb5, 0x42, 0x67, 0xb0, 0x8c, 0xc9, 0x50, 0xea, 0x1d, 0xc2,
		0x76, 0x94, 0x18, 0x9c, 0xe2, 0xb8, 0x2b, 0x67, 0x47, 0xb3, 0x30, 0x14, 0x3a, 0x1e, 0x86, 0x59,
		0x44, 0x57, 0xf2, 0xb4, 0xf2, 0x71, 0x28, 0x73, 0x44, 0x99, 0x63, 0xca, 0xfc, 0x19, 0xed, 0x72,
		0xd1, 0x95, 0x7c, 0xe3, 0x74, 0xa2, 0x2b, 0x39, 0xcc, 0x2c, 0xcc, 0x2c, 0xcc, 0x2c, 0xb9, 0x99,
		0x45, 0x57, 0xf2, 0x43, 0xca, 0x3d, 0xec, 0xe9, 0x1c, 0xc7, 0x8d, 0x69, 0x07, 0x9c, 0xe4, 0x98,
		0x96, 0x0b, 0x46, 0xda, 0x01, 0x69, 0x07, 0xf4, 0x28, 0xc7, 0x49, 0x8e, 0x09, 0xec, 0x17, 0x4e,
		0x72, 0x84, 0xf1, 0x42, 0xce, 0x14, 0x39, 0x53, 0x04, 0xf3, 0x08, 0xe6, 0x11, 0xcc, 0x23, 0x67,
		0x8a, 0x9c, 0x29, 0xcc, 0x2c, 0xcc, 0x2c, 0xcc, 0x2c, 0xcc, 0x2c, 0x72, 0xa6, 0x39, 0xcd, 0x99,
		0xee, 0xe7, 0x2c, 0xc7, 0x8d, 0x29, 0x53, 0x9c, 0xe6, 0x88, 0x4c, 0x29, 0x92, 0x0d, 0xc8, 0x94,
		0x1e, 0x5a, 0xa6, 0x14, 0xa7, 0x39, 0xce, 0x8e, 0x81, 0xd3, 0x1c, 0xb7, 0x0c, 0x91, 0xf7, 0xd3,
		0x1c, 0xb7, 0x51, 0x8f, 0xd4, 0xce, 0x73, 0xdc, 0x44, 0x36, 0x70, 0xa2, 0xe3, 0x0e, 0x33, 0xc7,
		0xfd, 0x48, 0xc7, 0xf9, 0x19, 0x4a, 0xf7, 0x08, 0xb9, 0xd1, 0x3d, 0x14, 0x03, 0x97, 0x12, 0xe3,
		0xfc, 0xb8, 0xd9, 0x8f, 0xe7, 0xe3, 0xf0, 0x38, 0xbb, 0x73, 0x94, 0x67, 0xc7, 0xd9, 0x9d, 0x83,
		0x39, 0x3a, 0x2e, 0x66, 0x91, 0x48, 0xb2, 0xe2, 0x90, 0x43, 0x3d, 0x28, 0xce, 0xee, 0xe0, 0x9c,
		0xb8, 0x84, 0xe2, 0x9e, 0x0e, 0xe9, 0x8c, 0x7d, 0x4c, 0xdc, 0xc4, 0x08, 0x27, 0x8f, 0xc9, 0xa7,
		0x43, 0x21, 0x30, 0x8f, 0xad, 0x3c, 0x88, 0xcb, 0xe3, 0x28, 0x17, 0xc2, 0x72, 0xd2, 0xb0, 0xfc,
		0x24, 0x9c, 0x86, 0xeb, 0x19, 0x7e, 0xbb, 0xf0, 0xc4, 0xe8, 0xef, 0xcc, 0x6f, 0x6d, 0x1a, 0x7c,
		0x27, 0xb4, 0x6f, 0x73, 0xa3, 0xc1, 0xc4, 0xc1, 0xc4, 0xc1, 0xc4, 0xe5, 0xd8, 0xc4, 0x7d, 0x9d,
		0x9a, 0xb8, 0xf9, 0xf5, 0xb8, 0xc9, 0x3b, 0x1e, 0x47, 0x1f, 0x99, 0xb5, 0x0b, 0xde, 0x8a, 0xe7,
		0x26, 0x23, 0xb7, 0xd9, 0xaf, 0x7c, 0xa4, 0x38, 0xa5, 0x5f, 0x61, 0x5e, 0x30, 0x7a, 0xdb, 0xd6,
		0xe4, 0x01, 0x41, 0xcf, 0x2a, 0xb2, 0x5f, 0xfe, 0xb5, 0xcf, 0xba, 0xec, 0x99, 0xf9, 0xee, 0x4b,
		0xb1, 0xe7, 0x14, 0xad, 0xa7, 0xb0, 0x8f, 0x2c, 0x49, 0x90, 0x10, 0x66, 0x14, 0x09, 0xa2, 0x04,
		0xde, 0x01, 0xc2, 0xe3, 0xa1, 0xe4, 0x31, 0x67, 0x72, 0x3c, 0xf1, 0x6b, 0x4c, 0xe2, 0x66, 0xc6,
		0x46, 0x8f, 0x34, 0xd6, 0x89, 0x55, 0x4b, 0x12, 0x21, 0x65, 0x19, 0x29, 0xcb, 0x17, 0x67, 0xc3,
		0x75, 0xa2, 0x8d, 0xd6, 0x89, 0xf3, 0x0f, 0x25, 0xe4, 0x1f, 0x90, 0x7f, 0x40, 0xfe, 0x01, 0xe4,
		0x1c, 0xe4, 0x1c, 0xe4, 0x1c, 0xf9, 0x07, 0xe4, 0x1f, 0x60, 0xe2, 0x60, 0xe2, 0x60, 0xe2, 0x90,
		0x7f, 0xd8, 0x0b, 0xdb, 0xcc, 0x44, 0x30, 0x1b, 0x77, 0xf3, 0x2f, 0x41, 0x2c, 0x1b, 0x63, 0x93,
		0xef, 0xd1, 0xec, 0xbe, 0x89, 0xbe, 0xa7, 0x84, 0x66, 0x52, 0xd2, 0xdc, 0x78, 0x13, 0x2d, 0x83,
		0x10, 0x2b, 0x73, 0x10, 0x7b, 0xa3, 0x4d, 0x29, 0x9d, 0x8d, 0x36, 0xd1, 0x76, 0x3d, 0xe7, 0x67,
		0xa7, 0x4d, 0xa4, 0x5d, 0xcb, 0x7b, 0xde, 0x6a, 0x13, 0xe3, 0x4c, 0x97, 0x69, 0x30, 0xdf, 0x8e,
		0x99, 0xe2, 0x3a, 0x3d, 0xb0, 0x2d, 0x36, 0xf1, 0xb6, 0xef, 0xe7, 0x3f, 0xc7, 0x15, 0x6b, 0x7b,
		0x3e, 0x5f, 0xda, 0x11, 0x9b, 0x8c, 0xae, 0xd8, 0xf2, 0x18, 0xab, 0x05, 0xfe, 0xc4, 0x28, 0x7f,
		0x84, 0xef, 0x5f, 0xf6, 0xfd, 0x51, 0x09, 0x59, 0x3c, 0x9f, 0x1f, 0x81, 0x7b, 0xed, 0xe0, 0xec,
		0xdf, 0x24, 0xc0, 0x79, 0x5c, 0x69, 0xb0, 0x55, 0x94, 0xa2, 0x95, 0x13, 0x44, 0x2f, 0x1f, 0x20,
		0x29, 0x17, 0x88, 0x51, 0x1e, 0x10, 0xa3, 0x1c, 0x60, 0x1b, 0xa4, 0x11, 0x45, 0x36, 0xa6, 0xa8,
		0x16, 0x76, 0xe2, 0x78, 0xd1, 0x85, 0x73, 0xb3, 0x58, 0xae, 0x17, 0xb6, 0xd5, 0xaf, 0xac, 0xc1,
		0x6a, 0x57, 0x8c, 0x22, 0x61, 0xb3, 0x01, 0x91, 0x08, 0x48, 0xac, 0xfe, 0xfe, 0xcb, 0xdf, 0x6e,
		0xc5, 0x37, 0xdb, 0xc2, 0xa9, 0x77, 0xe2, 0xd0, 0x5b, 0x38, 0xf3, 0x56, 0x8e, 0xbc, 0x0b, 0xa5,
		0xd8, 0x9d, 0x3a, 0xec, 0x4a, 0x11, 0x22, 0x53, 0x81, 0xc8, 0x2e, 0x3f, 0x92, 0x6b, 0x8f, 0x26,
		0x8b, 0xdb, 0x38, 0xe9, 0xf8, 0x68, 0xdc, 0xa2, 0x65, 0xf6, 0xcd, 0xef, 0x76, 0xd7, 0xf6, 0x5f,
		0xb6, 0x03, 0xb2, 0x70, 0xac, 0xee, 0xec, 0x67, 0xb7, 0x59, 0xe4, 0x9d, 0x38, 0xe8, 0xce, 0x9c,
		0x33, 0x0a, 0xc7, 0x8c, 0xce, 0x29, 0xa3, 0x72, 0xc8, 0xd8, 0x9c, 0x31, 0x36, 0x47, 0x8c, 0xc5,
		0x09, 0x93, 0xf9, 0xd4, 0x9d, 0x39, 0xde, 0x4c, 0xa4, 0xc2, 0x1c, 0xdf, 0xf6, 0x5f, 0x76, 0x4b,
		0x38, 0x4c, 0x6c, 0xc4, 0x2e, 0x2e, 0x51, 0x1e, 0x0d, 0x7d, 0x63, 0x7a, 0x31, 0xc2, 0x7d, 0xb1,
		0x5a, 0x37, 0xaa, 0xea, 0x83, 0xa2, 0x4b, 0x9a, 0x51, 0x15, 0x9b, 0xe2, 0x8d, 0x5c, 0x97, 0xf5,
		0x2f, 0xbb, 0xce, 0x59, 0x78, 0xf4, 0x6c, 0xb4, 0x5d, 0x3e, 0x31, 0x43, 0x3d, 0xf1, 0xee, 0x4e,
		0x93, 0xee, 0x44, 0x5d, 0x32, 0x54, 0xa5, 0xfe, 0xa5, 0xc0, 0x63, 0xcf, 0x45, 0xcc, 0x3b, 0x93,
		0x03, 0xec, 0x6e, 0xc5, 0xaa, 0x64, 0x4c, 0xee, 0x31, 0x9b, 0xb7, 0x17, 0x11, 0xb8, 0x9d, 0xde,
		0xf9, 0x98, 0x54, 0xd3, 0x32, 0x47, 0x37, 0xb6, 0x05, 0x08, 0x5b, 0x99, 0xc6, 0x06, 0xee, 0xbf,
		0x82, 0x64, 0xbc, 0xd9, 0xf0, 0xed, 0xb6, 0x7d, 0xab, 0xed, 0xdf, 0xa6, 0xb0, 0x92, 0xc3, 0x6c,
		0xbc, 0xff, 0xf9, 0x3b, 0x9f, 0xde, 0xdf, 0xcc, 0xbd, 0x15, 0xbe, 0x77, 0x96, 0x93, 0x36, 0x13,
		0x81, 0x0b, 0x5e, 0x5c, 0xf8, 0x1e, 0xab, 0x29, 0xcf, 0x5a, 0x0f, 0xb7, 0xc9, 0xa3, 0xcd, 0x7a,
		0xb0, 0xe5, 0x2b, 0xed, 0xe2, 0xb1, 0x76, 0xf6, 0x50, 0x3b, 0x7b, 0xa4, 0x45, 0x0f, 0x14, 0xdc,
		0x57, 0xc4, 0x99, 0x5e, 0x47, 0x51, 0x0a, 0x33, 0xec, 0x77, 0x2b, 0xed, 0xdc, 0xca, 0x94, 0x77,
		0xe6, 0x9e, 0xa7, 0x34, 0xdc, 0x73, 0xf5, 0x04, 0x65, 0x9f, 0x7b, 0xae, 0x9c, 0x40, 0x4e, 0xdc,
		0x73, 0xf7, 0xb5, 0xff, 0xc8, 0x7b, 0x98, 0x76, 0x4c, 0xcf, 0x73, 0x67, 0x9a, 0x9b, 0xc5, 0xe0,
		0x70, 0x99, 0xe6, 0x46, 0x31, 0xa1, 0x61, 0x9a, 0xbb, 0xa6, 0xd3, 0xa3, 0x56, 0xac, 0xc6, 0xab,
		0x54, 0xcd, 0x7a, 0x61, 0xf5, 0x6e, 0x82, 0x96, 0xbf, 0xf5, 0x9e, 0x9d, 0x04, 0x31, 0x23, 0xeb,
		0x3d, 0x6d, 0xe6, 0xd9, 0x2e, 0x6b, 0x17, 0x9f, 0x6d, 0xc7, 0x7e, 0x1e, 0x3c, 0x17, 0xfd, 0x5f,
		0xc5, 0xd0, 0x9e, 0xfd, 0x34, 0xbb, 0xf1, 0x17, 0x82, 0x36, 0x0d, 0x7a, 0x1c, 0x2b, 0x44, 0xd1,
		0x44, 0xff, 0x78, 0x56, 0x88, 0x22, 0xa9, 0xc6, 0xa1, 0xac, 0x10, 0x0d, 0x6c, 0xc7, 0x3f, 0x2f,
		0x25, 0x58, 0x1b, 0x8a, 0xb1, 0x39, 0xa9, 0xa0, 0x85, 0xf5, 0x33, 0x71, 0x0a, 0x7a, 0x84, 0xd8,
		0x45, 0x3d, 0xe3, 0xa5, 0x86, 0xe4, 0xdb, 0xef, 0xc2, 0x4c, 0x05, 0x41, 0x03, 0xd4, 0x5b, 0xd7,
		0xb4, 0x82, 0x80, 0xac, 0x66, 0xff, 0xb0, 0x29, 0x0e, 0x82, 0x2e, 0x28, 0xec, 0x87, 0xe9, 0xdb,
		0x3f, 0x59, 0xe2, 0x73, 0x94, 0x93, 0x34, 0xbe, 0x6d, 0x98, 0xbf, 0xe8, 0x20, 0x2e, 0x97, 0xae,
		0xca, 0x57, 0x95, 0xcb, 0xd2, 0xd5, 0x45, 0x7e, 0xb1, 0x4e, 0x69, 0x87, 0xdc, 0x63, 0x06, 0x2a,
		0x91, 0xda, 0xcc, 0x67, 0xe1, 0x34, 0x14, 0x9f, 0x07, 0x5d, 0xdf, 0xee, 0x77, 0x6d, 0xe6, 0x26,
		0xf1, 0xd4, 0x2b, 0x46, 0x83, 0x8b, 0x86, 0x8b, 0xce, 0xa1, 0x8b, 0xfe, 0x98, 0xc0, 0x43, 0x5f,
		0x1c, 0xad, 0x87, 0x3e, 0x83, 0x87, 0xe6, 0xed, 0xa1, 0x4b, 0x17, 0x70, 0xcd, 0x79, 0x70, 0xcd,
		0xcc, 0x31, 0xbf, 0x77, 0x59, 0xb1, 0xcf, 0xdc, 0xe2, 0x33, 0x7b, 0xfe, 0xce, 0xdc, 0x62, 0xd7,
		0x76, 0xfe, 0x8a, 0xef, 0x9c, 0xd7, 0x8c, 0x17, 0xb5, 0xcc, 0x93, 0x75, 0xcc, 0x41, 0xd7, 0x8f,
		0x65, 0x88, 0x0a, 0xe1, 0xe4, 0x17, 0xb8, 0x56, 0xb9, 0x83, 0x3e, 0x80, 0x3e, 0x64, 0x9d, 0x3e,
		0x7c, 0xef, 0xf5, 0xba, 0xcc, 0x74, 0x92, 0x6c, 0xff, 0x3c, 0xcb, 0x8c, 0x81, 0x6a, 0x27, 0xb5,
		0x48, 0x6d, 0x44, 0x08, 0x50, 0x71, 0xa8, 0x78, 0x26, 0x55, 0x1c, 0xf5, 0x1b, 0x50, 0x6c, 0x28,
		0xf6, 0x41, 0xd5, 0x6f, 0x44, 0xd0, 0xee, 0x6e, 0xcf, 0x32, 0xbb, 0x45, 0xb3, 0xdd, 0x76, 0x99,
		0xe7, 0xc5, 0x57, 0xf4, 0xf9, 0x61, 0xa0, 0xf3, 0xd0, 0xf9, 0xbc, 0xe9, 0x7c, 0x3f, 0xa6, 0x74,
		0xcf, 0x69, 0xfc, 0x55, 0x8c, 0xcf, 0x8e, 0xee, 0x3d, 0xf5, 0x9c, 0xdf, 0xf4, 0x9b, 0xff, 0x2c,
		0x27, 0xf8, 0xee, 0xcb, 0x56, 0x2f, 0x59, 0xdf, 0x04, 0x9f, 0xb9, 0x4e, 0x6c, 0x38, 0x26, 0x03,
		0xbd, 0xfd, 0x7a, 0x5a, 0xbc, 0x7a, 0xfc, 0xfd, 0xf5, 0xac, 0x78, 0xf5, 0x38, 0x7c, 0x78, 0x16,
		0xfe, 0xfa, 0xa7, 0xf4, 0xfa, 0xbb, 0xf4, 0xf5, 0xb4, 0x58, 0x1e, 0x3d, 0x5b, 0xba, 0xf8, 0x7a,
		0x5a, 0xbc, 0x78, 0x7c, 0xf7, 0xf6, 0xdb, 0xb7, 0x0f, 0x51, 0x3f, 0xf3, 0xee, 0x9f, 0xf3, 0xd7,
		0xf8, 0x1d, 0x36, 0x1e, 0x93, 0xc0, 0xa4, 0xb6, 0xe4, 0xcf, 0x64, 0x58, 0xfd, 0xdf, 0xdb, 0xb4,
		0xd0, 0x7a, 0xf7, 0x3f, 0x09, 0xf0, 0x4a, 0xb3, 0x23, 0x09, 0x8d, 0x5a, 0x55, 0xf2, 0xa7, 0x56,
		0xe1, 0xac, 0x9b, 0xc5, 0x8e, 0x58, 0xbc, 0x7d, 0xfc, 0xe7, 0xec, 0x7d, 0xf9, 0xf5, 0xfa, 0xdd,
		0x3f, 0x97, 0xaf, 0x8b, 0x4f, 0xfe, 0x5e, 0xf5, 0xb6, 0xb3, 0xf7, 0x97, 0xaf, 0xd7, 0x6b, 0x5e,
		0xa9, 0xbc, 0x5e, 0xef, 0x38, 0xc6, 0xc5, 0xeb, 0xdb, 0xa5, 0xb7, 0x06, 0xcf, 0x97, 0xd6, 0x7d,
		0xa0, 0xbc, 0xe6, 0x03, 0xe7, 0xeb, 0x3e, 0x70, 0xbe, 0xe6, 0x03, 0x6b, 0x6f, 0xa9, 0xb4, 0xe6,
		0x03, 0x17, 0xaf, 0xbf, 0x97, 0xde, 0xff, 0x76, 0xf5, 0x5b, 0x2b, 0xaf, 0xef, 0x7e, 0xaf, 0x7b,
		0xed, 0xf2, 0xf5, 0xf7, 0xf5, 0xbb, 0x77, 0x39, 0x32, 0x34, 0x10, 0x9f, 0xf4, 0xc5, 0x27, 0x7d,
		0xc3, 0x7b, 0x90, 0xeb, 0x31, 0x2e, 0xfb, 0xef, 0x60, 0x6e, 0x1f, 0xa2, 0xcb, 0x2c, 0x36, 0x5c,
		0xd4, 0x8a, 0x19, 0x38, 0xad, 0x1d, 0x11, 0x31, 0x14, 0x62, 0xa8, 0x9c, 0xc5, 0x50, 0xd8, 0xd5,
		0x18, 0x79, 0x10, 0xec, 0x6a, 0xdc, 0x08, 0x31, 0x76, 0x35, 0x72, 0x76, 0xba, 0x19, 0x73, 0xd5,
		0x19, 0x6f, 0x4c, 0xf3, 0xbd, 0xd3, 0x3e, 0x09, 0x7e, 0x56, 0x36, 0xa6, 0x89, 0xdc, 0xf6, 0x7e,
		0x6d, 0x21, 0xe7, 0x4d, 0xa7, 0x6d, 0x04, 0x3f, 0x2b, 0x3b, 0xd3, 0x44, 0xe9, 0x70, 0x4f, 0x74,
		0x00, 0x64, 0x3b, 0xc6, 0xa9, 0x8f, 0xed, 0x88, 0x15, 0x49, 0xa7, 0xa8, 0x48, 0x42, 0x45, 0x52,
		0x4c, 0x22, 0x92, 0xa0, 0xfb, 0x6b, 0x9c, 0x6e, 0xaf, 0x2b, 0xce, 0xb5, 0xb6, 0xdb, 0x38, 0x91,
		0x75, 0xaf, 0x6a, 0x8a, 0x13, 0x59, 0x53, 0x56, 0x52, 0x9c, 0xc8, 0xca, 0x33, 0x6c, 0xc6, 0x89,
		0x28, 0x89, 0xc5, 0x3d, 0x9d, 0xa0, 0x19, 0x27, 0xa2, 0xe0, 0xb8, 0x00, 0xbe, 0xca, 0x44, 0xae,
		0x54, 0x94, 0xca, 0x95, 0x30, 0xf0, 0xc4, 0x71, 0x01, 0xf3, 0x84, 0x12, 0x27, 0xa2, 0xac, 0x9a,
		0x24, 0x9c, 0x88, 0x02, 0x13, 0x07, 0x13, 0x77, 0x2c, 0x26, 0x0e, 0x27, 0xa2, 0xac, 0x07, 0x11,
		0x27, 0xb2, 0x6e, 0xd5, 0xf2, 0xe3, 0x39, 0x91, 0x75, 0x63, 0x32, 0x9a, 0xf7, 0x89, 0xac, 0x1b,
		0x53, 0xd4, 0x38, 0x91, 0x95, 0x2c, 0xff, 0x80, 0x13, 0x59, 0x91, 0x7f, 0x40, 0xfe, 0x01, 0xe4,
		0x1c, 0xe4, 0x1c, 0xe4, 0x1c, 0xf9, 0x07, 0xe4, 0x1f, 0x60, 0xe2, 0x60, 0xe2, 0x60, 0xe2, 0x90,
		0x7f, 0xd8, 0x0f, 0xdb, 0xcc, 0x44, 0x30, 0x4b, 0x7e, 0x22, 0xeb, 0xee, 0xb1, 0xec, 0x51, 0x9f,
		0xc8, 0xba, 0xfb, 0x14, 0x71, 0xdf, 0x03, 0xb7, 0xaf, 0x13, 0x59, 0x9f, 0x6d, 0xcb, 0xed, 0x05,
		0x40, 0x14, 0x3d, 0xe6, 0x79, 0x76, 0xcf, 0xf1, 0xa2, 0xef, 0xbe, 0x59, 0x31, 0x06, 0x7a, 0x77,
		0xa7, 0xe8, 0xf4, 0x8f, 0xba, 0x77, 0xf7, 0x92, 0xf0, 0xc5, 0x4f, 0x87, 0x2d, 0x0f, 0x75, 0x1c,
		0x5b, 0x73, 0x50, 0xd1, 0x42, 0xa0, 0x06, 0x19, 0x4f, 0x8e, 0xc5, 0xdc, 0xab, 0xb6, 0x24, 0x2e,
		0xb1, 0xf3, 0xee, 0x09, 0x14, 0x24, 0xb3, 0x31, 0x63, 0x3c, 0xc5, 0x41, 0xd0, 0x18, 0x4b, 0xb1,
		0xf6, 0x13, 0x35, 0xc6, 0x55, 0xb8, 0xc9, 0x00, 0xc9, 0xba, 0xd5, 0xac, 0x8f, 0x41, 0x13, 0x74,
		0xaf, 0x21, 0x4e, 0xe5, 0x90, 0xa9, 0x27, 0xa5, 0x9a, 0xd2, 0xab, 0x2b, 0xb5, 0xda, 0x72, 0x53,
		0x5f, 0x6e, 0x6a, 0xcc, 0x45, 0x9d, 0x93, 0xa9, 0x75, 0x42, 0xf5, 0xa6, 0x4b, 0x0e, 0x2d, 0xc9,
		0x5b, 0xa2, 0xee, 0x3b, 0x6b, 0x1d, 0xe7, 0x15, 0xc1, 0x58, 0x89, 0xba, 0xf3, 0x2c, 0xfe, 0xa3,
		0xd1, 0x01, 0x81, 0x43, 0xf7, 0x9e, 0xb5, 0x18, 0x7e, 0x24, 0x1c, 0x93, 0xaa, 0x91, 0xc4, 0xd2,
		0xc0, 0xd9, 0xef, 0xf6, 0xb3, 0xf8, 0xef, 0x91, 0x12, 0x56, 0xca, 0x26, 0x1d, 0x4b, 0xa3, 0x1f,
		0x46, 0x77, 0xa0, 0x25, 0x7c, 0x49, 0x46, 0x7a, 0x7d, 0x9f, 0x61, 0xb5, 0xaf, 0x40, 0xed, 0xd1,
		0x4e, 0xe6, 0xe0, 0xba, 0x11, 0x1d, 0xbc, 0x21, 0x84, 0xb8, 0x1d, 0x54, 0xf7, 0x22, 0x4e, 0x8e,
		0xe1, 0xcd, 0x7e, 0xef, 0xe3, 0x75, 0x2f, 0xed, 0x38, 0x46, 0x47, 0x4a, 0x24, 0xdf, 0x5a, 0xb1,
		0x9c, 0x4c, 0x5e, 0x1c, 0x19, 0x31, 0x3a, 0x62, 0x74, 0xc4, 0xe8, 0x99, 0x8a, 0xd1, 0x93, 0x6f,
		0xe4, 0x58, 0x62, 0x99, 0x97, 0x04, 0x63, 0x45, 0xdd, 0xbb, 0x36, 0xea, 0xd8, 0x90, 0x74, 0x23,
		0xdb, 0x7e, 0x2d, 0xb1, 0xcb, 0x9e, 0x7b, 0x3e, 0xa3, 0x4f, 0x94, 0x2e, 0x8c, 0x0b, 0x2b, 0x0c,
		0x2b, 0x0c, 0x2b, 0x8c, 0x4c, 0x29, 0x32, 0xa5, 0xc8, 0x94, 0x22, 0x53, 0x8a, 0x4c, 0x29, 0x32,
		0xa5, 0xc8, 0x94, 0x22, 0x75, 0x85, 0x4c, 0x29, 0x32, 0xa5, 0xc8, 0x94, 0xe6, 0x3f, 0x53, 0x9a,
		0xea, 0xd6, 0xa9, 0x84, 0xa5, 0x15, 0x93, 0x71, 0x62, 0xee, 0xdf, 0x5f, 0xde, 0x95, 0xbe, 0xfc,
		0xd4, 0x49, 0xa2, 0xed, 0x8c, 0x42, 0xec, 0xdd, 0xfe, 0x8d, 0xe0, 0x46, 0x6e, 0x3a, 0xed, 0xd6,
		0xe8, 0xce, 0x16, 0x9f, 0x88, 0xd5, 0x62, 0x20, 0xfe, 0x2c, 0xc7, 0x29, 0x48, 0x24, 0xcb, 0x9c,
		0x53, 0x67, 0xcc, 0xf3, 0x56, 0x98, 0x88, 0x4d, 0xa6, 0x7b, 0xc8, 0xb5, 0xa0, 0x34, 0x91, 0xa4,
		0x34, 0x71, 0xda, 0x4e, 0x78, 0x49, 0xb9, 0xb3, 0x5c, 0x6b, 0x1d, 0xab, 0xab, 0xca, 0xd2, 0x5c,
		0xc4, 0xad, 0xea, 0x13, 0x28, 0x77, 0xca, 0x97, 0x60, 0xc4, 0x60, 0xc4, 0x52, 0x31, 0x62, 0x89,
		0x77, 0xca, 0x9b, 0xde, 0x8b, 0x63, 0xd1, 0x2d, 0xfc, 0x0c, 0x87, 0xa3, 0x59, 0xef, 0x39, 0xc3,
		0x7a, 0x4f, 0x8a, 0x6a, 0xca, 0x4d, 0x5d, 0xb9, 0xa9, 0x2d, 0x17, 0xf5, 0xa5, 0x89, 0x37, 0x93,
		0xae, 0xf7, 0x24, 0x55, 0xeb, 0xc9, 0x40, 0x5d, 0xd3, 0xf3, 0x8b, 0x7d, 0xd3, 0xfa, 0x8b, 0xf9,
		0xe3, 0x13, 0xc3, 0xda, 0x74, 0xa2, 0x32, 0x21, 0x40, 0xab, 0xae, 0x42, 0x34, 0xb9, 0x34, 0x8b,
		0xbf, 0xe4, 0x46, 0x81, 0x87, 0x71, 0xe0, 0x67, 0x24, 0x78, 0x19, 0x0b, 0xee, 0x46, 0x83, 0xbb,
		0xf1, 0xe0, 0x6a, 0x44, 0xe8, 0x92, 0x57, 0x02, 0xdd, 0xda, 0x08, 0xdd, 0x62, 0xf2, 0x92, 0xbc,
		0x0e, 0x6c, 0xc7, 0xaf, 0x94, 0x39, 0xac, 0x8e, 0x50, 0x2e, 0x8e, 0x24, 0x3b, 0xe8, 0x6d, 0xdd,
		0x3f, 0x5a, 0x7d, 0x12, 0xa8, 0x0e, 0x86, 0x5b, 0x3b, 0x38, 0xd1, 0x81, 0x71, 0x6b, 0xc7, 0xa7,
		0x3e, 0xdc, 0x6c, 0xbd, 0xec, 0x51, 0x1d, 0x7a, 0xc6, 0x59, 0xed, 0xe6, 0xa7, 0xd6, 0xfc, 0xc5,
		0x7f, 0x6a, 0xcf, 0x3e, 0x96, 0xcb, 0x95, 0xcb, 0x72, 0xf9, 0xf4, 0xf2, 0xfc, 0xf2, 0xf4, 0xea,
		0xe2, 0xe2, 0xac, 0x72, 0x76, 0x81, 0xd9, 0x4e, 0xc5, 0x54, 0xd3, 0x8f, 0x96, 0x95, 0x55, 0x14,
		0x02, 0x6d, 0x98, 0xa3, 0x8b, 0xbe, 0x6b, 0x3a, 0xde, 0xb3, 0xed, 0xfb, 0xbc, 0x79, 0xe9, 0xec,
		0x85, 0x40, 0x4d, 0x41, 0x4d, 0x41, 0x4d, 0x41, 0x4d, 0x41, 0x4d, 0x41, 0x4d, 0x41, 0x4d, 0x41,
		0x4d, 0x41, 0x4d, 0x41, 0x4d, 0x87, 0x93, 0x38, 0xce, 0x5e, 0x8e, 0x58, 0xa3, 0x47, 0xcf, 0x49,
		0x97, 0xae, 0x00, 0x32, 0x0a, 0x32, 0x0a, 0x32, 0x0a, 0x32, 0x0a, 0x32, 0x0a, 0x32, 0x0a, 0x32,
		0x0a, 0x32, 0x0a, 0x32, 0x0a, 0x32, 0x3a, 0x9c, 0xc4, 0x99, 0x94, 0x25, 0x3f, 0x3e, 0xba, 0xea,
		0x22, 0xa0, 0xa4, 0xa0, 0xa4, 0xa0, 0xa4, 0xa0, 0xa4, 0xa0, 0xa4, 0xa0, 0xa4, 0xa0, 0xa4, 0xa0,
		0xa4, 0xa0, 0xa4, 0xa0, 0xa4, 0xc3, 0x49, 0x1c, 0xf4, 0x87, 0x0b, 0xe9, 0xb6, 0x1f, 0xe9, 0xd4,
		0x9a, 0xdd, 0xdd, 0xd0, 0xfc, 0xf8, 0x20, 0xa2, 0x20, 0xa2, 0x20, 0xa2, 0x20, 0xa2, 0x20, 0xa2,
		0x20, 0xa2, 0x20, 0xa2, 0x20, 0xa2, 0x20, 0xa2, 0xb9, 0x20, 0xa2, 0x7b, 0xad, 0xad, 0x22, 0xea,
		0x90, 0x31, 0x19, 0x8f, 0x67, 0xa7, 0x8c, 0xb0, 0x9a, 0xf9, 0x84, 0xa2, 0xa8, 0x52, 0xe0, 0xd7,
		0x36, 0x23, 0x3c, 0xcd, 0xd4, 0x10, 0xc3, 0x9b, 0x3c, 0xc0, 0x1e, 0xa8, 0x6d, 0xf6, 0x6c, 0x3a,
		0xed, 0xe2, 0x73, 0xaf, 0xcd, 0x8a, 0x2e, 0xfb, 0xef, 0x80, 0x79, 0x14, 0x7b, 0x91, 0x27, 0x7c,
		0x66, 0xf5, 0xf0, 0xe8, 0x88, 0x9a, 0x5e, 0xe0, 0x82, 0x0a, 0x59, 0x74, 0x44, 0xdd, 0x41, 0xde,
		0xbe, 0xf7, 0x7a, 0x5d, 0x66, 0x3a, 0x94, 0xed, 0x50, 0xcf, 0x0e, 0xd0, 0x1c, 0x76, 0x4c, 0xbb,
		0x3b, 0x70, 0x19, 0x69, 0x9a, 0x67, 0x82, 0xf1, 0xaa, 0xc1, 0x61, 0x0a, 0x61, 0x0a, 0x61, 0x0a,
		0x33, 0x65, 0x0a, 0xc9, 0x72, 0x30, 0x84, 0xb9, 0x17, 0xe2, 0x9c, 0x0b, 0x61, 0xe6, 0x8a, 0x47,
		0x8e, 0x85, 0x57, 0x6e, 0x85, 0x7b, 0x94, 0xcd, 0x2f, 0xba, 0x26, 0xcc, 0xa1, 0x70, 0xc9, 0x9d,
		0xa4, 0x98, 0x33, 0x39, 0xe4, 0x59, 0xc4, 0xb9, 0x49, 0xb1, 0x27, 0x25, 0x2c, 0x67, 0x9d, 0x50,
		0x28, 0xfb, 0x99, 0xf0, 0xe0, 0xa4, 0xe5, 0xa1, 0x41, 0xcb, 0x40, 0xcb, 0x40, 0xcb, 0x32, 0x45,
		0xcb, 0x02, 0xbd, 0xf4, 0x6d, 0xeb, 0x2f, 0x2f, 0x73, 0xdc, 0xec, 0xc1, 0x19, 0xba, 0xa1, 0x82,
		0x63, 0x3a, 0x3d, 0x8f, 0x59, 0x3d, 0xa7, 0x4d, 0x72, 0xae, 0x08, 0x38, 0x1f, 0x38, 0x1f, 0x38,
		0x1f, 0x38, 0xdf, 0x11, 0x73, 0xbe, 0x9e, 0x65, 0x76, 0xe9, 0x0f, 0x68, 0x9b, 0x1f, 0x16, 0x5c,
		0x0f, 0x5c, 0x0f, 0x5c, 0x2f, 0x53, 0x5c, 0x0f, 0xe7, 0xb3, 0xc5, 0x47, 0x0e, 0xe7, 0xb3, 0xe1,
		0x7c, 0x36, 0x9c, 0xcf, 0x46, 0x4a, 0x7e, 0x88, 0x09, 0x39, 0xce, 0x67, 0xc3, 0xf9, 0x6c, 0x38,
		0x9f, 0x2d, 0x27, 0x86, 0x10, 0xe2, 0x86, 0xf3, 0xd9, 0x8e, 0x3a, 0x3a, 0x6f, 0xdb, 0xe6, 0x0f,
		0xa7, 0xe7, 0xf9, 0xb6, 0x55, 0xb4, 0x7a, 0x6d, 0x46, 0x1d, 0xa5, 0x2f, 0x0e, 0x8f, 0x68, 0x1d,
		0xd1, 0x3a, 0xa2, 0xf5, 0x4c, 0x45, 0xeb, 0xdf, 0x3b, 0x6d, 0x62, 0x35, 0x9d, 0xe3, 0x9e, 0x65,
		0x82, 0xb1, 0x24, 0x67, 0xf0, 0x4c, 0x27, 0xc6, 0x7a, 0xaf, 0xe5, 0xbb, 0xb6, 0xf3, 0x83, 0xb6,
		0x06, 0xec, 0x34, 0xc0, 0x52, 0x51, 0x8d, 0x9a, 0x2c, 0xde, 0x29, 0x6a, 0x4b, 0x97, 0xab, 0x94,
		0x4c, 0xfe, 0x2c, 0x18, 0xbd, 0x26, 0xe9, 0x52, 0x55, 0x97, 0x55, 0xc5, 0xd0, 0xe5, 0x86, 0xa4,
		0x3e, 0xe8, 0x94, 0x57, 0x28, 0x05, 0x57, 0x90, 0xaa, 0xf7, 0xaa, 0x71, 0x2b, 0xca, 0x75, 0xa9,
		0x46, 0x39, 0xf6, 0x79, 0x30, 0xf6, 0xad, 0xaa, 0xfd, 0x47, 0xd4, 0x6a, 0xb2, 0x72, 0x67, 0x68,
		0x52, 0x4b, 0x22, 0xbd, 0xf9, 0x72, 0x70, 0x81, 0xa6, 0xa8, 0xdf, 0x1b, 0x35, 0xf5, 0x3f, 0x0a,
		0xe5, 0xc8, 0x17, 0xc1, 0xc8, 0x55, 0x55, 0xa9, 0x8a, 0xba, 0xa4, 0x88, 0xba, 0x54, 0x33, 0xb8,
		0x5c, 0xa6, 0x12, 0x5c, 0x46, 0xac, 0x35, 0x64, 0x85, 0x7c, 0xe8, 0xcb, 0x60, 0x68, 0x4d, 0xfa,
		0x24, 0x69, 0x2d, 0xc9, 0x58, 0xf3, 0x4d, 0xb2, 0x55, 0x9f, 0xd9, 0x93, 0x43, 0x8b, 0x4d, 0xa8,
		0x9c, 0x33, 0xc8, 0x5e, 0x0b, 0x15, 0x42, 0x70, 0xd7, 0xe0, 0x79, 0x2d, 0x10, 0xae, 0xa0, 0xad,
		0xd0, 0xfb, 0xc4, 0x07, 0x8c, 0xcd, 0x9b, 0xd7, 0x19, 0xad, 0x8f, 0x7d, 0x00, 0xe0, 0xca, 0x91,
		0x97, 0x74, 0xfe, 0x5a, 0x38, 0x27, 0x1c, 0x7e, 0xde, 0xdc, 0x92, 0xae, 0x2a, 0x16, 0x66, 0x27,
		0xb3, 0x4c, 0x59, 0x7e, 0xbb, 0x59, 0x13, 0xaf, 0x85, 0xcb, 0x7c, 0x54, 0xba, 0xed, 0x35, 0xa6,
		0xf1, 0x2c, 0xd7, 0x7e, 0xb6, 0x1d, 0xd3, 0xef, 0xb9, 0xf4, 0x11, 0xcd, 0xec, 0xe0, 0x88, 0x67,
		0x10, 0xcf, 0x20, 0x9e, 0xc9, 0x54, 0x3c, 0xe3, 0x0d, 0xc9, 0x3d, 0x61, 0x08, 0xf3, 0xf1, 0x00,
		0x2d, 0x21, 0xd9, 0x69, 0xeb, 0x4b, 0xf8, 0x12, 0x9d, 0xba, 0x0e, 0x1b, 0x08, 0x1b, 0x08, 0x1b,
		0xc8, 0xc9, 0x06, 0x26, 0x3f, 0xd5, 0x7d, 0xc9, 0x08, 0x5e, 0x12, 0x8c, 0xd5, 0x9c, 0x34, 0x1a,
		0xb0, 0x8a, 0x76, 0xe7, 0x7a, 0xa6, 0xb7, 0xc0, 0xc2, 0x13, 0xa3, 0xbf, 0x47, 0x47, 0xc1, 0x0f,
		0xff, 0x08, 0x4b, 0xff, 0x0f, 0xd0, 0x12, 0xbb, 0xec, 0xb9, 0xe7, 0x33, 0xfa, 0x6d, 0x70, 0x0b,
		0xe3, 0xc2, 0x0a, 0xc3, 0x0a, 0xc3, 0x0a, 0x67, 0xca, 0x0a, 0x63, 0x1f, 0x5c, 0x7c, 0xe4, 0xb0,
		0x0f, 0x0e, 0xfb, 0xe0, 0xb0, 0x0f, 0x6e, 0x11, 0x5f, 0xec, 0x83, 0x3b, 0x02, 0xb5, 0xc7, 0xc6,
		0x24, 0xec, 0x83, 0x4b, 0xdb, 0x10, 0x42, 0xdc, 0xb0, 0x0f, 0xee, 0x48, 0xf7, 0xc1, 0x8d, 0xe3,
		0xe8, 0x81, 0xff, 0xc4, 0x1c, 0xdf, 0xb6, 0xc2, 0xf6, 0x8a, 0x45, 0xe6, 0x98, 0xdf, 0xbb, 0x94,
		0xbd, 0xf4, 0x36, 0x5f, 0x06, 0xd1, 0x3b, 0xa2, 0x77, 0x44, 0xef, 0x99, 0x8a, 0xde, 0xd1, 0x53,
		0x6f, 0xd6, 0x3c, 0x5a, 0x3d, 0xc7, 0x77, 0x7b, 0xdd, 0x62, 0xbf, 0x6b, 0x3a, 0xac, 0x68, 0x3b,
		0x6d, 0xd6, 0x67, 0x4e, 0x9b, 0x11, 0x6c, 0xd4, 0x59, 0xb4, 0x90, 0xeb, 0xaf, 0x04, 0x23, 0x09,
		0x23, 0x09, 0x23, 0x09, 0x23, 0x99, 0x59, 0x23, 0xc9, 0xad, 0x98, 0x62, 0xcd, 0xf8, 0x30, 0x88,
		0x30, 0x88, 0x30, 0x88, 0xd9, 0x32, 0x88, 0xa8, 0xa6, 0xa0, 0x18, 0x15, 0xd5, 0x14, 0xeb, 0xc7,
		0x46, 0x35, 0xc5, 0xb6, 0xcb, 0xa0, 0x9a, 0x62, 0x56, 0x3f, 0x51, 0x4d, 0x31, 0x77, 0x11, 0x54,
		0x53, 0xac, 0x73, 0x61, 0xa8, 0xa6, 0xe0, 0xc3, 0x52, 0x84, 0x03, 0xad, 0xa6, 0x98, 0x44, 0x1d,
		0x5c, 0xca, 0x29, 0x56, 0x8e, 0x8e, 0x88, 0x06, 0x11, 0x0d, 0x22, 0x9a, 0x4c, 0x45, 0x34, 0xa8,
		0xa7, 0x98, 0xb1, 0x85, 0xcf, 0xb6, 0x63, 0x3f, 0x0f, 0x9e, 0x8b, 0x2e, 0xb3, 0x98, 0xfd, 0x93,
		0x0d, 0xab, 0x20, 0x7e, 0x9a, 0x5d, 0x72, 0xb3, 0xb8, 0xf6, 0x42, 0xb0, 0x90, 0xb0, 0x90, 0xb0,
		0x90, 0x99, 0xb2, 0x90, 0x03, 0xdb, 0xf1, 0xcf, 0x4b, 0x84, 0x16, 0xf2, 0x12, 0xed, 0xc7, 0x23,
		0x0e, 0x8a, 0xf6, 0xe3, 0x9c, 0xf2, 0x07, 0x02, 0xf7, 0xf6, 0xe3, 0xe5, 0xd2, 0x55, 0xf9, 0xaa,
		0x72, 0x59, 0xba, 0x42, 0xd3, 0x71, 0xba, 0x70, 0x53, 0x38, 0xf6, 0xed, 0x5c, 0xa3, 0x53, 0x68,
		0x8b, 0xe1, 0x29, 0xb4, 0xe4, 0xec, 0x6c, 0x7e, 0x74, 0x50, 0x32, 0x50, 0x32, 0x50, 0xb2, 0x4c,
		0x51, 0xb2, 0x99, 0x83, 0xa8, 0x49, 0x94, 0x54, 0x38, 0xda, 0x45, 0xb8, 0x87, 0x26, 0xfd, 0xca,
		0x1b, 0xf1, 0x9a, 0x4c, 0x89, 0xdf, 0x72, 0x4f, 0xb8, 0xd6, 0x26, 0x2b, 0xb2, 0x7e, 0x5c, 0x8b,
		0x3a, 0x94, 0xab, 0x16, 0xa3, 0x21, 0x29, 0x97, 0x58, 0xc2, 0x09, 0xa1, 0x5d, 0xfc, 0x78, 0x68,
		0x06, 0x9e, 0x13, 0x8b, 0x05, 0xb1, 0x01, 0xe4, 0x44, 0xb8, 0xc0, 0xb4, 0xc0, 0xb4, 0xc0, 0xb4,
		0xc0, 0xb4, 0xc0, 0xb4, 0xc0, 0xb4, 0xc0, 0xb4, 0xc0, 0xb4, 0xf2, 0xc2, 0xb4, 0xde, 0xa4, 0x28,
		0xd4, 0x05, 0xd1, 0x71, 0x7a, 0x7e, 0x58, 0x70, 0x98, 0x48, 0x92, 0x0b, 0x9e, 0xf5, 0xc4, 0x9e,
		0xcd, 0xfe, 0xa4, 0x8b, 0x53, 0x9f, 0x39, 0xc3, 0x16, 0x4d, 0x81, 0x6b, 0x3c, 0x09, 0x7e, 0x66,
		0x5a, 0x3a, 0x4d, 0x9b, 0x39, 0x3d, 0xdb, 0x96, 0xdb, 0x2b, 0xce, 0x38, 0x0a, 0x6f, 0xf9, 0xa9,
		0x93, 0xa4, 0xbe, 0xa3, 0xe0, 0xf9, 0xee, 0xc0, 0xf2, 0x9d, 0x91, 0x5b, 0x52, 0x27, 0xf7, 0x76,
		0xd3, 0x69, 0x1b, 0xc1, 0x8f, 0x3c, 0xb9, 0xb5, 0xe9, 0x43, 0xa3, 0x11, 0xdc, 0xc7, 0x4d, 0xa7,
		0xdd, 0x1a, 0xdd, 0xd8, 0xe2, 0x13, 0x46, 0x2b, 0xbc, 0xad, 0x37, 0xe9, 0xcc, 0x71, 0xb4, 0x4f,
		0x44, 0x94, 0x86, 0x80, 0x7f, 0x11, 0xf4, 0xef, 0x2b, 0xd4, 0x6d, 0xcf, 0x17, 0x7d, 0x3f, 0xde,
		0x4e, 0xa0, 0x42, 0xc3, 0x76, 0xa4, 0x2e, 0x0b, 0x48, 0x55, 0xcc, 0x8c, 0x7c, 0xa1, 0x61, 0xfe,
		0x9a, 0x19, 0x81, 0xe6, 0xf0, 0xd2, 0x82, 0xea, 0xb6, 0x99, 0xcb, 0xda, 0x37, 0x01, 0x42, 0xce,
		0xa0, 0xdb, 0x4d, 0x32, 0xc4, 0x83, 0xc7, 0xdc, 0x58, 0x4b, 0x02, 0x51, 0x27, 0x94, 0xfd, 0xf2,
		0x5d, 0xb3, 0x38, 0x70, 0x3c, 0xdf, 0xfc, 0xde, 0x8d, 0x47, 0xeb, 0x0a, 0x2e, 0xeb, 0x30, 0x97,
		0x39, 0x56, 0xfc, 0xa5, 0xc2, 0x04, 0xf6, 0x64, 0xcc, 0x21, 0xb5, 0xdb, 0xea, 0xe5, 0xd9, 0xf9,
		0xa9, 0x50, 0x14, 0x6e, 0xec, 0xb6, 0xed, 0xb2, 0x70, 0xd9, 0xc6, 0xec, 0x0a, 0xb7, 0x3d, 0xf7,
		0x6f, 0xd3, 0x6d, 0xdb, 0xce, 0x0f, 0xa1, 0xc6, 0xfc, 0xe1, 0xd3, 0xc2, 0xdb, 0x9b, 0xdb, 0xda,
		0xbb, 0x6f, 0x4e, 0xcf, 0x11, 0xea, 0xb6, 0xf3, 0x97, 0x20, 0xfe, 0xf8, 0xe1, 0x86, 0xeb, 0x30,
		0x3d, 0x47, 0xb8, 0x73, 0x7b, 0x83, 0xbe, 0xf0, 0xb6, 0x2e, 0xde, 0xbd, 0x13, 0xa6, 0xea, 0xfe,
		0x21, 0x89, 0x55, 0x21, 0x0a, 0x82, 0x66, 0x83, 0x9f, 0x29, 0xe4, 0x09, 0xc9, 0x3c, 0x75, 0xdc,
		0x33, 0x17, 0xef, 0xf0, 0x9e, 0x93, 0xb4, 0x5d, 0x67, 0xe4, 0x4f, 0x3d, 0x72, 0xd5, 0xdd, 0x84,
		0x2e, 0x99, 0xa7, 0x2b, 0x8e, 0x21, 0x96, 0x7c, 0x9c, 0x6f, 0x34, 0x19, 0xd9, 0x7d, 0x86, 0x77,
		0x7b, 0xe7, 0x8e, 0x33, 0x9a, 0xc4, 0x0a, 0x17, 0xfe, 0x7e, 0x62, 0xd1, 0x7b, 0xba, 0xc4, 0x90,
		0x96, 0xb1, 0xa1, 0xdd, 0xda, 0x78, 0xf3, 0xeb, 0xb4, 0xd7, 0xe6, 0xbf, 0xac, 0x81, 0xeb, 0x32,
		0xc7, 0x7f, 0xfb, 0xee, 0xe4, 0xc3, 0x87, 0xa9, 0x08, 0x15, 0x5d, 0xd6, 0x39, 0x19, 0x35, 0xe6,
		0x9c, 0x3c, 0xf9, 0xb8, 0xaa, 0x61, 0xa7, 0xff, 0xd2, 0x67, 0xc2, 0xbf, 0x84, 0x3f, 0x6c, 0xe6,
		0x77, 0xc2, 0x8b, 0x30, 0xc6, 0x3e, 0x9e, 0x96, 0xce, 0xcd, 0x76, 0xdd, 0xfc, 0xf1, 0x47, 0x1c,
		0x29, 0x4b, 0x68, 0x8c, 0x67, 0x8d, 0x70, 0x88, 0x7c, 0x4c, 0x3a, 0x4d, 0x65, 0x77, 0xe7, 0xec,
		0x6d, 0x96, 0xa6, 0xe6, 0x4d, 0x0a, 0x81, 0x49, 0xa1, 0xc6, 0x3c, 0xcb, 0xb5, 0xfb, 0x89, 0xa2,
		0x92, 0x89, 0x60, 0xcb, 0x8e, 0xd5, 0x1d, 0xb4, 0x99, 0xd0, 0x67, 0x6e, 0x71, 0x48, 0x70, 0x85,
		0x6e, 0xe0, 0x89, 0x6e, 0x6e, 0x6b, 0x42, 0xcf, 0xe9, 0xbe, 0x08, 0xc1, 0x7c, 0x0b, 0xfe, 0x13,
		0x13, 0xc2, 0xaf, 0xde, 0xeb, 0x7c, 0x73, 0x26, 0x08, 0x09, 0xb6, 0x27, 0x98, 0xc3, 0xb7, 0x9b,
		0x23, 0xc7, 0xc5, 0xe2, 0x72, 0x06, 0x0a, 0xbe, 0x30, 0x2b, 0xa6, 0xed, 0x19, 0x90, 0x12, 0xb0,
		0x18, 0x4a, 0xa6, 0x30, 0x27, 0xb5, 0xf4, 0xb8, 0x67, 0x33, 0xd4, 0x7a, 0x43, 0xcb, 0x1a, 0x76,
		0xf5, 0x2d, 0x31, 0x59, 0x02, 0x1d, 0x3b, 0x88, 0x20, 0x74, 0x34, 0x1c, 0x60, 0xb7, 0xf9, 0xdf,
		0x3e, 0x1f, 0x3b, 0x20, 0x5c, 0xe8, 0x33, 0xe6, 0xee, 0xde, 0x90, 0x79, 0x62, 0x6b, 0x86, 0x1f,
		0xdb, 0x71, 0x06, 0xc7, 0x99, 0xec, 0x1d, 0xdf, 0x1e, 0x75, 0x69, 0x29, 0xce, 0x12, 0x52, 0xfc,
		0xa5, 0xa2, 0xb8, 0xd6, 0x2d, 0xf1, 0xd2, 0x4f, 0x62, 0x03, 0x96, 0x68, 0x29, 0x87, 0x96, 0x2f,
		0xd6, 0xec, 0x68, 0xa9, 0x93, 0x50, 0xde, 0xa2, 0x43, 0x3e, 0x2b, 0xad, 0x51, 0xd1, 0x8e, 0x26,
		0xb4, 0xcb, 0xc2, 0x1b, 0x31, 0xa9, 0x9d, 0x64, 0x1d, 0x34, 0xf9, 0xba, 0x27, 0x25, 0xab, 0x4c,
		0xb4, 0xae, 0xc9, 0x87, 0x57, 0xc6, 0x5d, 0xb7, 0xe4, 0x9b, 0x8b, 0x8c, 0xaa, 0x04, 0x93, 0x0f,
		0x52, 0x9e, 0xf0, 0xc4, 0xe1, 0x64, 0xa7, 0x84, 0x5b, 0x0c, 0x12, 0x6f, 0x2d, 0xa0, 0xd8, 0x52,
		0x40, 0xb7, 0x95, 0x80, 0x47, 0xf6, 0x8c, 0x64, 0xeb, 0x00, 0xdf, 0xd4, 0x59, 0xd2, 0xad, 0x02,
		0xe9, 0x2e, 0x0e, 0x25, 0xde, 0x12, 0x40, 0x78, 0xea, 0x08, 0xc5, 0x69, 0x23, 0x93, 0x53, 0x46,
		0x3e, 0x7c, 0x18, 0x2e, 0x2a, 0x9d, 0xac, 0x52, 0xef, 0xb4, 0xc2, 0x8c, 0x58, 0xb9, 0xb4, 0x24,
		0x3b, 0xa8, 0x66, 0xea, 0x36, 0xe3, 0x2f, 0xa8, 0xc5, 0x64, 0x00, 0x89, 0x99, 0x00, 0xcc, 0x18,
		0xcc, 0x58, 0x4c, 0x89, 0x89, 0xcb, 0x28, 0x26, 0x03, 0x98, 0xde, 0x8b, 0x63, 0xd1, 0x6d, 0x5c,
		0x1c, 0x0e, 0x47, 0xb3, 0x61, 0xf1, 0x0c, 0x1b, 0x16, 0x53, 0x54, 0x53, 0x6e, 0xea, 0xca, 0x4d,
		0x6d, 0xb9, 0xa8, 0x6f, 0x32, 0x35, 0x4e, 0xa8, 0xce, 0x64, 0x6a, 0x3d, 0x0d, 0x1c, 0x4c, 0xcf,
		0x2f, 0xf6, 0x4d, 0xeb, 0x2f, 0xe6, 0x8f, 0x8b, 0xea, 0xdb, 0x74, 0xa2, 0x32, 0xa1, 0x40, 0xab,
		0xae, 0x42, 0x34, 0xb9, 0x34, 0xbb, 0x97, 0xc9, 0x8d, 0x02, 0x0f, 0xe3, 0xc0, 0xcf, 0x48, 0xf0,
		0x32, 0x16, 0xdc, 0x8d, 0x06, 0x77, 0xe3, 0xc1, 0xd5, 0x88, 0xd0, 0x18, 0x13, 0x22, 0xa3, 0x42,
		0x17, 0xfa, 0xac, 0x95, 0xd7, 0x81, 0xed, 0xf8, 0x95, 0x32, 0x87, 0x33, 0x6c, 0x28, 0x8f, 0xb0,
		0xa1, 0x6d, 0x11, 0x30, 0xfe, 0x47, 0xab, 0x4f, 0x02, 0xaf, 0x96, 0x01, 0x93, 0xc1, 0x39, 0xb5,
		0x0e, 0x98, 0x8c, 0xcf, 0xbb, 0x0c, 0x7d, 0x2a, 0x7b, 0xbc, 0xca, 0xd1, 0x89, 0xd5, 0x6e, 0x7e,
		0x6a, 0x39, 0xb4, 0x16, 0x58, 0x9a, 0x5a, 0x9a, 0x4d, 0x82, 0xc7, 0x36, 0xdb, 0x6f, 0xb2, 0x39,
		0x5a, 0x56, 0xce, 0xba, 0x21, 0xd0, 0x86, 0x39, 0xba, 0xe8, 0xbb, 0xa6, 0xe3, 0x3d, 0xdb, 0xbe,
		0xcf, 0x9b, 0x97, 0xce, 0x5e, 0x08, 0xd4, 0x14, 0xd4, 0x14, 0xd4, 0x14, 0xd4, 0x14, 0xd4, 0x14,
		0xd4, 0x14, 0xd4, 0x14, 0xd4, 0x14, 0xd4, 0x14, 0xd4, 0x74, 0x38, 0x89, 0xe3, 0xec, 0xe5, 0x88,
		0x35, 0x7a, 0xf4, 0x9c, 0x74, 0xe9, 0x0a, 0x20, 0xa3, 0x20, 0xa3, 0x20, 0xa3, 0x20, 0xa3, 0x20,
		0xa3, 0x20, 0xa3, 0x20, 0xa3, 0x20, 0xa3, 0x20, 0xa3, 0x20, 0xa3, 0xc3, 0x49, 0x9c, 0x49, 0x59,
		0xf2, 0xe3, 0xa3, 0xab, 0x2e, 0x02, 0x4a, 0x0a, 0x4a, 0x0a, 0x4a, 0x0a, 0x4a, 0x0a, 0x4a, 0x0a,
		0x4a, 0x0a, 0x4a, 0x0a, 0x4a, 0x0a, 0x4a, 0x0a, 0x4a, 0x3a, 0x9c, 0xc4, 0x41, 0x7f, 0xb8, 0x90,
		0x6e, 0xfb, 0x61, 0xd9, 0x32, 0x39, 0x1b, 0x5d, 0x18, 0x1f, 0x44, 0x14, 0x44, 0x14, 0x44, 0x14,
		0x44, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x14, 0x44, 0x34, 0x17, 0x44, 0x74, 0xaf,
		0xb5, 0x55, 0x44, 0x6d, 0x81, 0x27, 0xe3, 0xc5, 0xec, 0x3a, 0x14, 0xf6, 0xd3, 0x09, 0xff, 0x3f,
		0xaa, 0xd7, 0xa6, 0x28, 0x9d, 0x14, 0x62, 0x77, 0x24, 0x6a, 0x06, 0xb7, 0x13, 0xfe, 0x7f, 0xd8,
		0xfc, 0xd7, 0x10, 0xc3, 0xdb, 0x39, 0xc0, 0x23, 0x39, 0xda, 0xec, 0xd9, 0x74, 0xda, 0xc5, 0xe7,
		0x5e, 0x9b, 0x15, 0x5d, 0xf6, 0xdf, 0x01, 0xf3, 0x28, 0xf6, 0x16, 0x4f, 0xf8, 0xc9, 0xea, 0xe1,
		0x71, 0x44, 0x47, 0x7a, 0x81, 0x08, 0x2a, 0x5e, 0x71, 0x44, 0xc7, 0x0e, 0xf2, 0xf6, 0xbd, 0xd7,
		0xeb, 0x32, 0xd3, 0xa1, 0x3c, 0x98, 0xe3, 0xec, 0x00, 0xcd, 0x21, 0xb3, 0x9e, 0x7a, 0x74, 0xd6,
		0x2f, 0x1c, 0x0d, 0xe5, 0xfd, 0x30, 0x76, 0x30, 0x76, 0x09, 0xbe, 0x11, 0x59, 0x79, 0x7f, 0x10,
		0x31, 0xfd, 0x64, 0xf4, 0x69, 0xd8, 0xd1, 0xb8, 0x48, 0xbf, 0x66, 0xc7, 0x10, 0xf0, 0x32, 0x08,
		0xdc, 0x0d, 0x03, 0x77, 0x03, 0xc1, 0xd5, 0x50, 0xd0, 0x46, 0xe1, 0xd9, 0x4f, 0xbf, 0xd2, 0xb1,
		0x26, 0x62, 0xf6, 0x44, 0x98, 0x7e, 0x78, 0x8f, 0xbe, 0x2a, 0x30, 0xca, 0x30, 0xca, 0x30, 0xca,
		0x87, 0x62, 0x94, 0xb1, 0x26, 0x46, 0x29, 0x91, 0x58, 0x13, 0xdb, 0x49, 0xf6, 0xb0, 0x26, 0xb6,
		0x66, 0x6a, 0xb1, 0x26, 0xb6, 0x37, 0x53, 0x4d, 0x3f, 0x1a, 0xfa, 0xaa, 0x24, 0xe4, 0xa5, 0xe8,
		0xab, 0x02, 0x6a, 0x0a, 0x6a, 0x0a, 0x6a, 0x0a, 0x6a, 0x0a, 0x6a, 0x0a, 0x6a, 0x0a, 0x6a, 0x0a,
		0x6a, 0x0a, 0x6a, 0xba, 0x3c, 0x89, 0xe8, 0xab, 0x02, 0x32, 0x0a, 0x32, 0x0a, 0x32, 0x0a, 0x32,
		0x0a, 0x32, 0x0a, 0x32, 0x0a, 0x32, 0x8a, 0xd9, 0x06, 0x19, 0xdd, 0x1b, 0x19, 0x45, 0x5f, 0x15,
		0x50, 0x52, 0x50, 0x52, 0x50, 0x52, 0x50, 0x52, 0x50, 0x52, 0x50, 0x52, 0x50, 0x52, 0xcc, 0x36,
		0x28, 0xe9, 0x9e, 0x29, 0x29, 0xfa, 0xaa, 0x80, 0x88, 0x82, 0x88, 0x82, 0x88, 0x82, 0x88, 0x82,
		0x88, 0x82, 0x88, 0x82, 0x88, 0x62, 0xb6, 0x41, 0x44, 0x53, 0x1e, 0x21, 0xaf, 0x7d, 0x55, 0x08,
		0x4a, 0xd6, 0x05, 0xba, 0xb6, 0x2a, 0x52, 0x70, 0x37, 0x07, 0xd8, 0x46, 0xa0, 0x63, 0xda, 0xdd,
		0x81, 0xcb, 0x48, 0xa3, 0x94, 0x09, 0x37, 0x59, 0x35, 0x38, 0x3a, 0xaa, 0xa4, 0x17, 0x82, 0xa0,
		0xc9, 0x00, 0x3a, 0xaa, 0xa4, 0x19, 0x42, 0x10, 0x86, 0x0e, 0xc4, 0x21, 0x03, 0x61, 0xe0, 0xc5,
		0x23, 0x44, 0xe0, 0x15, 0x1a, 0x70, 0x27, 0x89, 0xfc, 0xc8, 0x21, 0x61, 0x08, 0xc0, 0x85, 0xfa,
		0xa7, 0x48, 0xf9, 0x0f, 0x79, 0x16, 0x33, 0x42, 0xa1, 0x1f, 0x0f, 0x90, 0x9a, 0x85, 0xd5, 0x58,
		0x13, 0x0a, 0x65, 0x3f, 0x33, 0x3a, 0x62, 0xb6, 0x3c, 0x34, 0x68, 0x19, 0x68, 0x19, 0x68, 0x59,
		0xa6, 0x68, 0x59, 0xa0, 0x97, 0xbe, 0x6d, 0xfd, 0xe5, 0x65, 0x8e, 0x9b, 0x3d, 0x38, 0x43, 0x37,
		0x54, 0x70, 0x4c, 0xa7, 0xe7, 0x31, 0xab, 0xe7, 0xb4, 0x29, 0xd6, 0x9e, 0xc0, 0xf9, 0xc0, 0xf9,
		0xc0, 0xf9, 0xc0, 0xf9, 0x8e, 0x99, 0xf3, 0xf5, 0x2c, 0xb3, 0x5b, 0x34, 0xdb, 0x6d, 0x97, 0x79,
		0x84, 0x89, 0xb8, 0xf9, 0x61, 0xc1, 0xf5, 0xc0, 0xf5, 0xc0, 0xf5, 0x32, 0xc5, 0xf5, 0xec, 0x3e,
		0x91, 0x76, 0xce, 0x6a, 0xe8, 0xd9, 0x15, 0xc1, 0x58, 0xa3, 0xef, 0x9a, 0x39, 0x4a, 0x36, 0x45,
		0xee, 0x67, 0x99, 0x10, 0xbb, 0x25, 0x0c, 0x29, 0xb7, 0x41, 0x34, 0x4d, 0xdf, 0x67, 0xae, 0x43,
		0xbe, 0x11, 0xa2, 0xf0, 0xf6, 0xeb, 0x69, 0xf1, 0xea, 0xf1, 0xf7, 0xd7, 0xb3, 0xe2, 0xd5, 0xe3,
		0xf0, 0xe1, 0x59, 0xf8, 0xeb, 0x9f, 0xd2, 0xeb, 0xef, 0xd2, 0xd7, 0xd3, 0x62, 0x79, 0xf4, 0x6c,
		0xe9, 0xe2, 0xeb, 0x69, 0xf1, 0xe2, 0xf1, 0xdd, 0xdb, 0x6f, 0xdf, 0x3e, 0x44, 0xfd, 0xcc, 0xbb,
		0x7f, 0xce, 0x5f, 0xe9, 0xb6, 0xe7, 0x3c, 0x52, 0xc2, 0xaa, 0xb6, 0xe4, 0xcf, 0xdc, 0xb0, 0xfd,
		0xbf, 0xb7, 0x69, 0xa1, 0xfb, 0xee, 0x7f, 0x0a, 0x59, 0x5b, 0xbb, 0x7e, 0x9f, 0x61, 0xb5, 0xaf,
		0x40, 0xed, 0x43, 0x29, 0x33, 0x8b, 0x1d, 0xb1, 0x78, 0xfb, 0xf8, 0xcf, 0xd9, 0xfb, 0xf2, 0xeb,
		0xf5, 0xbb, 0x7f, 0x2e, 0x5f, 0x17, 0x9f, 0xfc, 0xbd, 0xea, 0x6d, 0x67, 0xef, 0x2f, 0x5f, 0xaf,
		0xd7, 0xbc, 0x52, 0x79, 0xbd, 0xde, 0x71, 0x8c, 0x8b, 0xd7, 0xb7, 0x4b, 0x6f, 0x0d, 0x9e, 0x2f,
		0xad, 0xfb, 0x40, 0x79, 0xcd, 0x07, 0xce, 0xd7, 0x7d, 0xe0, 0x7c, 0xcd, 0x07, 0xd6, 0xde, 0x52,
		0x69, 0xcd, 0x07, 0x2e, 0x5e, 0x7f, 0x2f, 0xbd, 0xff, 0xed, 0xea, 0xb7, 0x56, 0x5e, 0xdf, 0xfd,
		0x5e, 0xf7, 0xda, 0xe5, 0xeb, 0xef, 0xeb, 0x77, 0xef, 0x8e, 0xd8, 0x10, 0x42, 0xdc, 0xd2, 0x17,
		0xb7, 0xec, 0x39, 0x86, 0x23, 0x8e, 0xce, 0xdb, 0xb6, 0xf9, 0xc3, 0xe9, 0x79, 0xbe, 0x6d, 0x15,
		0xad, 0x5e, 0x9b, 0x51, 0x47, 0xe9, 0x8b, 0xc3, 0x23, 0x5a, 0x47, 0xb4, 0x8e, 0x68, 0x3d, 0x53,
		0xd1, 0xfa, 0xf7, 0x4e, 0x9b, 0x58, 0x4d, 0xe7, 0xb8, 0x67, 0x99, 0x60, 0x2c, 0xc9, 0x19, 0x3c,
		0xd3, 0x89, 0xb1, 0xde, 0x6b, 0xf9, 0xae, 0xed, 0xfc, 0xa0, 0x2d, 0x61, 0x38, 0x0d, 0xb0, 0x54,
		0x54, 0xa3, 0x26, 0x8b, 0x77, 0x8a, 0xda, 0xd2, 0xe5, 0x2a, 0x25, 0x93, 0x3f, 0x0b, 0x46, 0xaf,
		0x49, 0xba, 0x54, 0xd5, 0x65, 0x55, 0x31, 0x74, 0xb9, 0x21, 0xa9, 0x0f, 0x3a, 0xe5, 0x15, 0x4a,
		0xc1, 0x15, 0xa4, 0xea, 0xbd, 0x6a, 0xdc, 0x8a, 0x72, 0x5d, 0xaa, 0x51, 0x8e, 0x7d, 0x1e, 0x8c,
		0x7d, 0xab, 0x6a, 0xff, 0x11, 0xb5, 0x9a, 0xac, 0xdc, 0x19, 0x9a, 0xd4, 0x92, 0x48, 0x6f, 0xbe,
		0x1c, 0x5c, 0xa0, 0x29, 0xea, 0xf7, 0x46, 0x4d, 0xfd, 0x8f, 0x42, 0x39, 0xf2, 0x45, 0x30, 0x72,
		0x55, 0x55, 0xaa, 0xa2, 0x2e, 0x29, 0xa2, 0x2e, 0xd5, 0x0c, 0x2e, 0x97, 0xa9, 0x04, 0x97, 0x11,
		0x6b, 0x0d, 0x59, 0x21, 0x1f, 0xfa, 0x32, 0x18, 0x5a, 0x93, 0x3e, 0x49, 0x5a, 0x4b, 0x32, 0xd6,
		0x7c, 0x93, 0x6c, 0x95, 0x17, 0xf5, 0xe4, 0xd0, 0x62, 0x13, 0x2a, 0xe7, 0x0c, 0xb2, 0xd7, 0x42,
		0x85, 0x10, 0xdc, 0x35, 0x78, 0x5e, 0x0b, 0x84, 0x2b, 0x68, 0x2b, 0xf4, 0x3e, 0xf1, 0xc1, 0x64,
		0xf3, 0xe6, 0x75, 0x46, 0xeb, 0xaf, 0x85, 0x12, 0xe1, 0xc8, 0x4b, 0x3a, 0x7f, 0x2d, 0x9c, 0x13,
		0x0e, 0x3f, 0x6f, 0x6e, 0x49, 0x57, 0x15, 0x0b, 0xb3, 0x93, 0x59, 0xa6, 0xac, 0x1e, 0xdb, 0xac,
		0x89, 0xd7, 0xc2, 0x65, 0x3e, 0x0a, 0x35, 0xf6, 0x1a, 0xd3, 0x78, 0x96, 0x6b, 0x3f, 0xdb, 0x8e,
		0xe9, 0xf7, 0x5c, 0xfa, 0x88, 0x66, 0x76, 0x70, 0xc4, 0x33, 0x88, 0x67, 0x10, 0xcf, 0x64, 0x2a,
		0x9e, 0xf1, 0x86, 0xe4, 0x9e, 0x30, 0x84, 0xf9, 0x78, 0x80, 0x96, 0xd0, 0x65, 0xcf, 0x3d, 0x9f,
		0xd1, 0x6f, 0xbe, 0x58, 0x18, 0x17, 0xf6, 0x0f, 0xf6, 0x0f, 0xf6, 0x2f, 0x53, 0xf6, 0x0f, 0xbb,
		0x2f, 0xe2, 0x23, 0x87, 0xdd, 0x17, 0xd8, 0x7d, 0x81, 0xdd, 0x17, 0x8b, 0xf8, 0x62, 0xf7, 0xc5,
		0x11, 0xa8, 0x3d, 0x96, 0xc3, 0xb1, 0xfb, 0x22, 0x6d, 0x43, 0x08, 0x71, 0xc3, 0xee, 0x8b, 0x23,
		0xdd, 0x7d, 0x31, 0x8e, 0xa3, 0x07, 0xfe, 0x13, 0x73, 0x7c, 0xdb, 0x0a, 0x7b, 0xd2, 0x14, 0x99,
		0x63, 0x7e, 0xef, 0x12, 0x1c, 0x86, 0xb8, 0x14, 0xae, 0xaf, 0xbe, 0x0c, 0xa2, 0x77, 0x44, 0xef,
		0x88, 0xde, 0x33, 0x15, 0xbd, 0x7f, 0xef, 0xf5, 0xba, 0xcc, 0x74, 0x28, 0x43, 0xf7, 0xb3, 0xc3,
		0x35, 0x8f, 0x56, 0xcf, 0xf1, 0xdd, 0x5e, 0xb7, 0xd8, 0xef, 0x9a, 0x0e, 0x2b, 0xda, 0x4e, 0x9b,
		0xf5, 0x99, 0xd3, 0x66, 0x04, 0xcb, 0xc3, 0x8b, 0x16, 0x72, 0xfd, 0x95, 0x60, 0x24, 0x61, 0x24,
		0x61, 0x24, 0x61, 0x24, 0x33, 0x6b, 0x24, 0xb9, 0x6d, 0xe1, 0x5d, 0x33, 0x3e, 0x0c, 0x22, 0x0c,
		0x22, 0x0c, 0x62, 0xb6, 0x0c, 0x22, 0xf6, 0xf0, 0x52, 0x8c, 0x8a, 0x3d, 0xbc, 0xeb, 0xc7, 0xc6,
		0x1e, 0xde, 0x6d, 0x97, 0xc1, 0x1e, 0xde, 0x59, 0xfd, 0xc4, 0x1e, 0xde, 0xb9, 0x8b, 0x60, 0x0f,
		0xef, 0x3a, 0x17, 0x86, 0x3d, 0xbc, 0x7c, 0x58, 0x8a, 0x70, 0xa0, 0x7b, 0x78, 0x27, 0x51, 0x07,
		0x97, 0x4d, 0xbc, 0x2b, 0x47, 0x47, 0x44, 0x83, 0x88, 0x06, 0x11, 0x4d, 0xa6, 0x22, 0x1a, 0xec,
		0xe2, 0x9d, 0xb1, 0x85, 0xcf, 0xb6, 0x63, 0x3f, 0x0f, 0x9e, 0x8b, 0x2e, 0xb3, 0x98, 0xfd, 0x93,
		0x15, 0xc3, 0x83, 0x24, 0x7e, 0x9a, 0x5d, 0x72, 0xb3, 0xb8, 0xf6, 0x42, 0xb0, 0x90, 0xb0, 0x90,
		0xb0, 0x90, 0x99, 0xb2, 0x90, 0x03, 0xdb, 0xf1, 0xcf, 0x4b, 0x84, 0x16, 0xf2, 0x12, 0x4d, 0x6f,
		0x23, 0x0e, 0x8a, 0xa6, 0xb7, 0x9c, 0xf2, 0x07, 0x02, 0xf7, 0xa6, 0xb7, 0xe5, 0xd2, 0x55, 0xf9,
		0xaa, 0x72, 0x59, 0xba, 0x42, 0xab, 0x5b, 0xba, 0x70, 0x53, 0x38, 0xf6, 0xed, 0x5c, 0x1e, 0xf3,
		0x3c, 0xbb, 0xe7, 0x14, 0xc3, 0x43, 0xbd, 0xc8, 0xd9, 0xd9, 0xfc, 0xe8, 0xa0, 0x64, 0xa0, 0x64,
		0xa0, 0x64, 0x99, 0xa2, 0x64, 0xdf, 0x3b, 0x6d, 0x52, 0x25, 0x15, 0x8e, 0x76, 0x11, 0xee, 0xa1,
		0x49, 0xbf, 0xf2, 0x46, 0xbc, 0x26, 0x53, 0xe2, 0xb7, 0xdc, 0x13, 0xae, 0xb5, 0xc9, 0x8a, 0xac,
		0x1f, 0xd7, 0xa2, 0x0e, 0xe5, 0xaa, 0xc5, 0x68, 0x48, 0xca, 0x25, 0x96, 0x70, 0x42, 0x68, 0x17,
		0x3f, 0x1e, 0x9a, 0x81, 0xe7, 0xc4, 0x62, 0x41, 0x6c, 0x00, 0x39, 0x11, 0x2e, 0x30, 0x2d, 0x30,
		0x2d, 0x30, 0x2d, 0x30, 0x2d, 0x30, 0x2d, 0x30, 0x2d, 0x30, 0x2d, 0x30, 0x2d, 0x30, 0xad, 0x82,
		0x37, 0xf8, 0xee, 0x59, 0xae, 0xfd, 0x9d, 0xb5, 0x8b, 0x7d, 0xb7, 0xe7, 0xf7, 0xac, 0x5e, 0x97,
		0xb0, 0xad, 0xd0, 0xca, 0xd1, 0xc1, 0xbb, 0xc0, 0xbb, 0xc0, 0xbb, 0x32, 0xc5, 0xbb, 0xec, 0x36,
		0x73, 0x7c, 0xdb, 0x7f, 0x71, 0x59, 0x87, 0x92, 0x71, 0x11, 0x2c, 0xc2, 0x14, 0xe4, 0xd1, 0xad,
		0xdd, 0x98, 0x1e, 0xa1, 0x18, 0x8f, 0xbf, 0xb8, 0xac, 0xb4, 0x74, 0xb1, 0x5e, 0x37, 0x9a, 0x9a,
		0xaa, 0xab, 0x55, 0xb5, 0x6e, 0xe8, 0x5f, 0x9a, 0x12, 0x95, 0x48, 0x87, 0x8b, 0x52, 0x1e, 0x69,
		0x9b, 0x05, 0xe2, 0x65, 0xb3, 0x31, 0x0c, 0x37, 0x77, 0xcd, 0x42, 0x16, 0x17, 0x0b, 0x39, 0x7d,
		0xdd, 0x9a, 0xac, 0x49, 0x55, 0xbd, 0xfe, 0xc5, 0xa8, 0xaa, 0x8a, 0x22, 0x55, 0x75, 0xa9, 0x76,
		0x4c, 0xdf, 0xfe, 0x4e, 0x93, 0x6f, 0xe4, 0x63, 0xfa, 0xc2, 0xf2, 0x5d, 0xe3, 0xa8, 0xc4, 0x5b,
		0x6e, 0xc9, 0xad, 0x63, 0xfa, 0xbe, 0x75, 0xb5, 0x2a, 0xd6, 0x8f, 0xee, 0x0b, 0x1b, 0xe2, 0xdd,
		0x9d, 0x26, 0xdd, 0x89, 0xba, 0x74, 0x4c, 0x5f, 0x5d, 0x6d, 0x35, 0x6f, 0x8f, 0xed, 0xfb, 0x9e,
		0x1f, 0xd3, 0x17, 0x6e, 0x56, 0xa5, 0xa3, 0x32, 0xd6, 0x4d, 0xb9, 0x71, 0x4c, 0x5f, 0xb7, 0xa5,
		0x8b, 0xba, 0x5c, 0x2d, 0x64, 0x6c, 0x77, 0xd3, 0xe3, 0x81, 0x47, 0x84, 0x75, 0xdb, 0xf3, 0x45,
		0xdf, 0x77, 0x69, 0xa2, 0xc2, 0x86, 0xed, 0x48, 0x5d, 0x16, 0xc4, 0xcc, 0x44, 0x1b, 0xdd, 0x0a,
		0x0d, 0xf3, 0xd7, 0xcc, 0x88, 0x7c, 0x4e, 0xa6, 0x2f, 0xa8, 0x6e, 0x9b, 0xb9, 0xac, 0x7d, 0xf3,
		0x52, 0xb8, 0x16, 0x9c, 0x41, 0xb7, 0x4b, 0x39, 0xe4, 0x83, 0xc7, 0x5c, 0x92, 0x9d, 0x79, 0x09,
		0xb2, 0x7c, 0x6f, 0x52, 0x94, 0xac, 0x82, 0xe8, 0x38, 0x3d, 0x3f, 0x6c, 0x2b, 0x96, 0x48, 0xa6,
		0x0a, 0x9e, 0xf5, 0xc4, 0x9e, 0xcd, 0xbe, 0xe9, 0x3f, 0x05, 0xda, 0x7f, 0xd2, 0xeb, 0x33, 0xc7,
		0x0a, 0x33, 0x6f, 0xc5, 0xef, 0x9d, 0xf6, 0x49, 0xf0, 0x13, 0x16, 0x23, 0x74, 0x4c, 0x8b, 0x79,
		0xd3, 0x87, 0x27, 0x7d, 0xc6, 0x5c, 0x2f, 0xfc, 0xff, 0x49, 0xd2, 0x75, 0xa0, 0x82, 0xe7, 0xbb,
		0x03, 0xcb, 0x77, 0xc6, 0x0e, 0x75, 0x72, 0x07, 0x37, 0x9d, 0xb6, 0x11, 0xfc, 0xc8, 0x93, 0x1b,
		0x98, 0x3e, 0x34, 0x9a, 0xc1, 0x0d, 0x84, 0xff, 0x37, 0x5a, 0xe1, 0x0d, 0xbc, 0x49, 0x67, 0xce,
		0xa2, 0x7d, 0x22, 0xe2, 0xec, 0x16, 0xfe, 0x64, 0x2f, 0x34, 0x47, 0x5e, 0x24, 0xb3, 0x38, 0xc9,
		0x2d, 0x0c, 0x17, 0x8b, 0x42, 0x60, 0x41, 0x08, 0x2c, 0x46, 0xd4, 0x39, 0x4d, 0xa8, 0xa9, 0xc9,
		0x35, 0x34, 0x86, 0x6e, 0x26, 0xd5, 0xc9, 0x68, 0xda, 0xb8, 0xbb, 0x4e, 0xed, 0xf6, 0xce, 0x1d,
		0x67, 0x28, 0xee, 0xcc, 0x24, 0x9a, 0x91, 0x08, 0x93, 0x91, 0x60, 0x12, 0x76, 0xc3, 0x7f, 0x3b,
		0x9a, 0x3b, 0x20, 0x59, 0x88, 0xb6, 0x07, 0x68, 0xa6, 0xd2, 0x70, 0x77, 0xb7, 0x31, 0x49, 0x58,
		0xef, 0xf8, 0xf6, 0xc9, 0xda, 0xd1, 0x8e, 0x0b, 0xae, 0x71, 0xd6, 0x88, 0xe2, 0xaf, 0x05, 0xc5,
		0x5d, 0xf3, 0x49, 0xbc, 0xb6, 0x93, 0x78, 0x0d, 0x27, 0xd1, 0x5a, 0x0d, 0xad, 0xee, 0xd6, 0xec,
		0x68, 0xae, 0xad, 0xd0, 0x66, 0x9e, 0xed, 0xb2, 0xf6, 0xa4, 0xd6, 0xd2, 0xff, 0x15, 0xbf, 0x9e,
		0x73, 0x32, 0xf7, 0x9b, 0x06, 0x8d, 0xea, 0xfa, 0x63, 0x2d, 0x9b, 0xc6, 0x5e, 0x26, 0x4d, 0xb2,
		0x2c, 0x9a, 0x7c, 0x19, 0x34, 0xe9, 0xb2, 0x27, 0xd9, 0x32, 0x27, 0xd9, 0xb2, 0x26, 0xc9, 0x32,
		0x26, 0x5f, 0x72, 0x19, 0x7b, 0x59, 0x32, 0x79, 0xed, 0x63, 0x82, 0x5a, 0xc7, 0x84, 0xb5, 0x8d,
		0x09, 0x42, 0x23, 0x8a, 0xda, 0x45, 0xaa, 0x5a, 0x45, 0xf2, 0xfa, 0x36, 0xba, 0x7a, 0xb6, 0x24,
		0xbb, 0x5b, 0x28, 0x6a, 0x0d, 0xc9, 0x6b, 0x0b, 0xb3, 0x8c, 0x75, 0x4a, 0x51, 0xee, 0x23, 0x2f,
		0xfe, 0xfe, 0x3e, 0x8a, 0xc3, 0xf6, 0x59, 0x38, 0x0d, 0xc5, 0xe7, 0x41, 0xd7, 0xb7, 0xfb, 0x5d,
		0x9b, 0xb9, 0x49, 0x3c, 0xf5, 0x8a, 0xd1, 0xe0, 0xa2, 0xe1, 0xa2, 0x73, 0xe8, 0xa2, 0x3f, 0x26,
		0xf0, 0xd0, 0x17, 0x47, 0xeb, 0xa1, 0xcf, 0xe0, 0xa1, 0x79, 0x7b, 0xe8, 0xd2, 0x05, 0x5c, 0x73,
		0x1e, 0x5c, 0xf3, 0xf0, 0x20, 0x93, 0x62, 0x9f, 0xb9, 0xc5, 0x67, 0xf6, 0xfc, 0x9d, 0xb9, 0xc5,
		0xae, 0xed, 0xfc, 0x15, 0xdf, 0x39, 0xaf, 0x19, 0x2f, 0xa2, 0xf1, 0xac, 0xb1, 0x8e, 0x39, 0xe8,
		0xfa, 0xb1, 0x0c, 0x51, 0x21, 0x9c, 0xfc, 0x68, 0xee, 0xe0, 0x11, 0xf4, 0x01, 0xf4, 0x21, 0x67,
		0xf4, 0x21, 0x7e, 0x8b, 0xff, 0x98, 0x2d, 0xfd, 0x79, 0x1a, 0xa8, 0x76, 0x52, 0x8b, 0xd4, 0x46,
		0x84, 0x00, 0x15, 0x87, 0x8a, 0x67, 0x52, 0xc5, 0xed, 0x04, 0xda, 0x6d, 0x43, 0xb1, 0xa1, 0xd8,
		0xb9, 0x53, 0xec, 0xc9, 0x4a, 0x73, 0xd1, 0x6e, 0x27, 0xd1, 0xee, 0x8f, 0x19, 0xd0, 0xee, 0xe1,
		0x0e, 0x98, 0xf1, 0xe9, 0xc0, 0xb1, 0x15, 0x7d, 0x7e, 0x18, 0xe8, 0x3c, 0x74, 0x3e, 0x6f, 0x3a,
		0xdf, 0x4f, 0x70, 0x84, 0xf6, 0x44, 0xe3, 0xaf, 0x62, 0x7c, 0x76, 0x74, 0xef, 0xa9, 0xe7, 0xfc,
		0x66, 0x8e, 0x0f, 0x2f, 0x13, 0x1c, 0x1f, 0x4e, 0x71, 0x5c, 0x38, 0xd9, 0xf1, 0xe0, 0x85, 0xb4,
		0xce, 0xa9, 0x8f, 0xbf, 0xbf, 0xfb, 0x31, 0x09, 0x4c, 0x94, 0x87, 0x5b, 0x1f, 0xc8, 0xa9, 0xfe,
		0x8f, 0x69, 0xee, 0x0a, 0xa6, 0x51, 0xab, 0x4a, 0xfe, 0xd4, 0x0a, 0xc7, 0x9e, 0x1f, 0xdc, 0x29,
		0xfb, 0x99, 0x33, 0x34, 0x10, 0x9f, 0x83, 0x3a, 0x35, 0xff, 0xf1, 0x88, 0xd6, 0x63, 0x5c, 0xf6,
		0xdf, 0xc1, 0xdc, 0x3e, 0xc4, 0xd1, 0x41, 0x12, 0xf1, 0x03, 0xa7, 0xb5, 0x23, 0x22, 0x86, 0x42,
		0x0c, 0x95, 0xb3, 0x18, 0x0a, 0xbb, 0x1a, 0x23, 0x0f, 0x82, 0x5d, 0x8d, 0x1b, 0x21, 0xc6, 0xae,
		0x46, 0xce, 0x4e, 0x37, 0x63, 0xae, 0xfa, 0x90, 0xab, 0x92, 0xa2, 0x96, 0x6f, 0xc6, 0xab, 0x4a,
		0x8a, 0x50, 0xa3, 0xb9, 0x43, 0x55, 0xd2, 0x9b, 0x04, 0x38, 0x8f, 0x6b, 0x2c, 0xb7, 0xe6, 0xc8,
		0xa3, 0x95, 0x50, 0x46, 0x2f, 0x99, 0x24, 0x29, 0x91, 0x8c, 0x51, 0x12, 0x19, 0xa3, 0x04, 0x72,
		0x1b, 0xa4, 0x11, 0x45, 0x36, 0xa6, 0xa8, 0x16, 0x76, 0x2a, 0x46, 0x8b, 0x2e, 0x9c, 0x9b, 0xc5,
		0x72, 0xbd, 0xb0, 0xad, 0x7e, 0x65, 0x0d, 0x56, 0xbb, 0x62, 0x14, 0x09, 0x9b, 0x0d, 0x88, 0x44,
		0x40, 0x62, 0xf5, 0xf7, 0x5f, 0xfe, 0x76, 0xf3, 0xcf, 0x2c, 0x7c, 0xcf, 0x02, 0xfb, 0xe5, 0xbb,
		0x66, 0x71, 0xe0, 0x78, 0xbe, 0xf9, 0xbd, 0xbb, 0x9a, 0x91, 0x15, 0x5c, 0xd6, 0x61, 0x2e, 0x73,
		0xac, 0xf5, 0xc4, 0x67, 0x03, 0x30, 0x63, 0xba, 0xa6, 0xdd, 0x56, 0x2f, 0x3e, 0x7e, 0x3c, 0x7d,
		0x2f, 0x0c, 0x1f, 0x9c, 0x6d, 0x02, 0x61, 0x47, 0x42, 0x3e, 0x4b, 0xbc, 0xa7, 0xf7, 0xb8, 0x45,
		0xe8, 0xa3, 0x72, 0xec, 0x39, 0x2e, 0xbd, 0xf4, 0x25, 0xa2, 0x4a, 0xd9, 0x9b, 0xcd, 0xce, 0x6d,
		0x71, 0x76, 0xb6, 0x48, 0xdf, 0x76, 0xa9, 0x5b, 0x81, 0xc6, 0x36, 0x11, 0x9b, 0xff, 0x4e, 0xd3,
		0x3b, 0x9e, 0xb9, 0xb7, 0x82, 0xd5, 0x7b, 0xee, 0xf7, 0x9c, 0x91, 0x09, 0x9c, 0xbf, 0xaf, 0xc9,
		0x84, 0xcf, 0xbc, 0x67, 0xe1, 0x5b, 0xad, 0x2e, 0x0b, 0x5d, 0x1b, 0x3d, 0x6e, 0x8a, 0x0e, 0x67,
		0xa3, 0xbf, 0x7e, 0xd7, 0xf4, 0x3b, 0x3d, 0xf7, 0x79, 0xd5, 0x77, 0xde, 0x22, 0x51, 0x3b, 0x87,
		0x70, 0x3b, 0x8b, 0xcf, 0x62, 0x08, 0x36, 0xb9, 0xb9, 0x88, 0xfa, 0xb9, 0xae, 0x60, 0x72, 0x0a,
		0xef, 0xfa, 0x2f, 0xb5, 0x34, 0x13, 0xeb, 0xbe, 0xd4, 0xe6, 0x3a, 0xdd, 0xad, 0x61, 0xfd, 0x2e,
		0xe1, 0xfb, 0x8e, 0x13, 0x95, 0xc4, 0x04, 0xec, 0x14, 0x7b, 0x27, 0xd3, 0xff, 0x8d, 0x13, 0x19,
		0xcf, 0xc1, 0x6c, 0xab, 0x88, 0x2d, 0x7c, 0x37, 0xad, 0xbf, 0xfa, 0x5d, 0xd3, 0xd9, 0x01, 0x8c,
		0xc9, 0x5e, 0xa1, 0xc9, 0x47, 0xb6, 0x91, 0xaa, 0x9d, 0x0a, 0xb4, 0x77, 0xce, 0xeb, 0x44, 0xc9,
		0xe3, 0x44, 0x14, 0x88, 0xb8, 0xc9, 0x9a, 0xd8, 0xc9, 0x99, 0xd8, 0xc9, 0x98, 0xe8, 0x02, 0x43,
		0x43, 0x90, 0x77, 0x2d, 0xad, 0x2e, 0x58, 0xe3, 0xd9, 0x8c, 0x58, 0xfa, 0x3f, 0xfa, 0x1c, 0xe7,
		0xda, 0xff, 0xd3, 0x74, 0x6a, 0xff, 0x23, 0x88, 0x5c, 0xd2, 0x3c, 0x61, 0xf6, 0x1a, 0x00, 0xec,
		0x2e, 0x92, 0x87, 0x12, 0x2b, 0x8f, 0xbf, 0xd1, 0xc9, 0x94, 0x75, 0x4c, 0x1f, 0x9e, 0x4c, 0xec,
		0xe1, 0x49, 0x24, 0x19, 0xde, 0xc8, 0x96, 0x9a, 0xa3, 0x2b, 0x1a, 0xd5, 0xc9, 0x15, 0xa7, 0x0f,
		0x8d, 0x9b, 0xf1, 0x15, 0x8d, 0x91, 0x60, 0xa3, 0xb3, 0x47, 0x9a, 0x9d, 0x3d, 0xa0, 0xdd, 0x47,
		0xa9, 0xdd, 0x64, 0x49, 0xb1, 0x5d, 0x95, 0x3b, 0x43, 0xf9, 0x31, 0xba, 0x64, 0xce, 0x8e, 0x68,
		0x27, 0xc9, 0xeb, 0xec, 0x88, 0x6f, 0xec, 0x14, 0xcf, 0x86, 0xc0, 0xc2, 0x7a, 0x32, 0x3d, 0xcf,
		0xf6, 0x76, 0x27, 0xd3, 0xe3, 0x0f, 0x80, 0x4a, 0x83, 0x4a, 0x83, 0x4a, 0xc3, 0xd9, 0x1e, 0xb7,
		0xb3, 0x1d, 0x59, 0xc3, 0xd4, 0x88, 0x74, 0x75, 0x78, 0x3d, 0xd0, 0x68, 0xd0, 0x68, 0x68, 0x76,
		0x2a, 0x9a, 0x9d, 0x12, 0x89, 0x1e, 0x2b, 0x36, 0x2d, 0x85, 0xde, 0x41, 0xaf, 0x07, 0xbe, 0xdd,
		0xb5, 0xff, 0xff, 0xd1, 0x80, 0x9d, 0x6e, 0x3a, 0x9a, 0xf9, 0x30, 0xbc, 0x37, 0x74, 0x3c, 0xa1,
		0x8e, 0x47, 0x6e, 0x87, 0xe9, 0x32, 0x2f, 0xc4, 0xde, 0x4b, 0xb2, 0x47, 0x74, 0x3c, 0x44, 0xbc,
		0x4d, 0xa1, 0x67, 0x07, 0xb6, 0x29, 0x34, 0x86, 0x80, 0x27, 0x15, 0x74, 0x32, 0x81, 0x27, 0x13,
		0x7c, 0x3a, 0x05, 0x88, 0xa6, 0x08, 0x11, 0x15, 0x22, 0xb6, 0x62, 0x2c, 0x29, 0x48, 0xfc, 0x39,
		0x5b, 0xd4, 0x93, 0xb8, 0x53, 0x16, 0x4f, 0x5d, 0x12, 0xab, 0x0d, 0x85, 0xfa, 0x10, 0xab, 0x11,
		0x95, 0x3a, 0x91, 0xab, 0x15, 0xb9, 0x7a, 0xd1, 0xab, 0x59, 0x3c, 0x75, 0x8b, 0xa9, 0x76, 0x89,
		0xd5, 0x2f, 0x6e, 0x62, 0x84, 0x36, 0x61, 0xc2, 0x49, 0x25, 0xc9, 0x54, 0x93, 0x52, 0x45, 0x39,
		0xa9, 0x2a, 0xb5, 0xca, 0x72, 0x53, 0x5d, 0x6e, 0x2a, 0xcc, 0x4f, 0x95, 0x93, 0xa9, 0x74, 0x42,
		0xd5, 0x26, 0x53, 0xf1, 0xc9, 0x40, 0xa3, 0xc0, 0x8f, 0xf8, 0x04, 0xd9, 0x70, 0x54, 0xa2, 0x19,
		0xa4, 0x39, 0xda, 0x9a, 0x5c, 0xfd, 0x79, 0x98, 0x01, 0xce, 0xe6, 0x80, 0x97, 0x59, 0xe0, 0x6e,
		0x1e, 0xb8, 0x9b, 0x09, 0xfe, 0xe6, 0x82, 0xc6, 0x6c, 0x10, 0x99, 0x8f, 0xc9, 0xd7, 0x25, 0x3b,
		0x34, 0x7b, 0x45, 0x22, 0xd5, 0xb5, 0x9d, 0x1f, 0x94, 0x42, 0x1b, 0xaf, 0x53, 0x0e, 0xbf, 0x79,
		0x20, 0x98, 0x83, 0xc2, 0xc0, 0x63, 0xed, 0xa2, 0xff, 0xe4, 0x32, 0xef, 0xa9, 0xd7, 0x6d, 0x17,
		0x07, 0xfd, 0x3e, 0x73, 0xe9, 0xad, 0xf1, 0xca, 0xab, 0xc0, 0x3a, 0xc3, 0x3a, 0xc3, 0x3a, 0x1f,
		0xa9, 0x75, 0xee, 0x33, 0xd7, 0x62, 0x8e, 0x6f, 0xfe, 0x60, 0x1c, 0x2c, 0xf4, 0x05, 0xe1, 0x90,
		0xc9, 0x2a, 0x76, 0xd7, 0xfd, 0xa3, 0x55, 0x2c, 0x81, 0xaa, 0xc2, 0x77, 0xed, 0xe0, 0x44, 0x95,
		0xbf, 0x6b, 0xc7, 0xa7, 0xae, 0x52, 0x5d, 0x2f, 0x7f, 0x54, 0xd5, 0xab, 0x9c, 0x55, 0x6f, 0x7e,
		0x6a, 0xcd, 0x5f, 0xfc, 0xa7, 0xf6, 0xec, 0x14, 0x93, 0x9b, 0x8e, 0x75, 0xa6, 0x1f, 0xed, 0x31,
		0xe7, 0x8c, 0xb4, 0x68, 0x75, 0x99, 0x99, 0x12, 0x2f, 0x1d, 0x5d, 0x0b, 0xec, 0x14, 0xec, 0x14,
		0xec, 0x14, 0xec, 0x14, 0xec, 0x14, 0xec, 0x14, 0xec, 0x14, 0xec, 0x14, 0xec, 0xf4, 0xf0, 0xd9,
		0xe9, 0x5e, 0x17, 0xcc, 0x12, 0x1e, 0x08, 0xbf, 0x34, 0x5e, 0xd2, 0x7d, 0x9a, 0x33, 0x5b, 0x11,
		0x4f, 0x26, 0x7b, 0xba, 0x26, 0x8f, 0x4e, 0x48, 0x56, 0xcc, 0x85, 0xe4, 0xfb, 0x3b, 0x1f, 0xa6,
		0xb7, 0x69, 0x68, 0xe3, 0xdb, 0x9c, 0x3c, 0x8a, 0xb4, 0xaf, 0x9b, 0x5e, 0x2e, 0x92, 0xb4, 0x0b,
		0x23, 0x59, 0xf7, 0xa4, 0x5c, 0xef, 0x24, 0x8a, 0x55, 0xb0, 0xbd, 0x21, 0x83, 0x31, 0x08, 0xb6,
		0x37, 0xec, 0x2b, 0xb6, 0x98, 0x1e, 0x4a, 0xc1, 0xcc, 0x8e, 0xcb, 0x3a, 0x14, 0x52, 0x37, 0x5e,
		0x88, 0xbc, 0x24, 0x18, 0xab, 0x39, 0x72, 0x20, 0x1f, 0x3e, 0x8c, 0x4c, 0xfe, 0x49, 0x68, 0x4a,
		0x0e, 0xd0, 0xa0, 0x46, 0x2b, 0xb8, 0xd9, 0x3a, 0x5f, 0x51, 0xeb, 0x18, 0x36, 0xce, 0x14, 0x95,
		0x49, 0x2d, 0xc1, 0xa4, 0xc2, 0xa4, 0x1e, 0xa8, 0x49, 0x25, 0xdb, 0x31, 0x66, 0xf5, 0x9e, 0x9f,
		0x6d, 0xdf, 0x8f, 0x71, 0xd0, 0xdf, 0x56, 0x59, 0x9e, 0x0e, 0x8d, 0xfc, 0x6f, 0xc6, 0x0c, 0x03,
		0x2f, 0x03, 0xc1, 0xdd, 0x50, 0x70, 0x37, 0x18, 0xfc, 0x0d, 0x07, 0x6d, 0x4e, 0x20, 0xfb, 0xf9,
		0xdf, 0x81, 0xed, 0xf8, 0x95, 0x32, 0x87, 0xdc, 0xef, 0x47, 0xe4, 0x7e, 0x39, 0x25, 0x08, 0x91,
		0x1e, 0x4c, 0x49, 0xed, 0xe6, 0xa7, 0x36, 0x95, 0xdc, 0x6f, 0xac, 0x1e, 0xc9, 0xc7, 0x3e, 0xdb,
		0x48, 0x06, 0xf3, 0xd6, 0x86, 0x42, 0xc7, 0x65, 0x1c, 0x4a, 0x17, 0xc2, 0x51, 0x41, 0x3f, 0x41,
		0x3f, 0x41, 0x3f, 0x41, 0x3f, 0x41, 0x3f, 0x41, 0x3f, 0x41, 0x3f, 0x41, 0x3f, 0x41, 0x3f, 0x41,
		0x3f, 0x17, 0x27, 0xf1, 0xc9, 0xfe, 0xf1, 0x54, 0xfc, 0xdb, 0xf4, 0x99, 0xfb, 0x6c, 0xba, 0x7f,
		0xd1, 0x13, 0xd1, 0x85, 0xf1, 0x41, 0x49, 0x41, 0x49, 0x41, 0x49, 0x41, 0x49, 0x41, 0x49, 0x41,
		0x49, 0x41, 0x49, 0x41, 0x49, 0x41, 0x49, 0x41, 0x49, 0x17, 0x27, 0xb1, 0x6b, 0x7a, 0x7e, 0x91,
		0x37, 0x2f, 0x5d, 0x75, 0x11, 0x90, 0x53, 0x90, 0x53, 0x90, 0xd3, 0x23, 0x25, 0xa7, 0xbe, 0xfd,
		0xcc, 0x7c, 0xdb, 0xfa, 0xcb, 0xcb, 0x3c, 0x43, 0x7d, 0x70, 0x86, 0x4e, 0xb4, 0xe0, 0x98, 0x4e,
		0xcf, 0x63, 0x56, 0xcf, 0x69, 0x7b, 0x05, 0x30, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30,
		0xe0, 0x1c, 0x30, 0xe0, 0x67, 0xf3, 0x57, 0xb1, 0x6b, 0x3f, 0xdb, 0x3e, 0x3d, 0xef, 0x9d, 0x0e,
		0x0d, 0xb6, 0x0b, 0xb6, 0x0b, 0xb6, 0x7b, 0xa4, 0x6c, 0x17, 0xa9, 0x58, 0x10, 0x51, 0x10, 0x51,
		0x10, 0x51, 0x10, 0x51, 0x10, 0xd1, 0x0d, 0x93, 0x88, 0xbe, 0xda, 0xa0, 0x9f, 0xa0, 0x9f, 0xa0,
		0x9f, 0xd4, 0x92, 0x8b, 0xbe, 0xda, 0xbb, 0x7c, 0xa7, 0x81, 0xc7, 0xa3, 0x3c, 0x35, 0x1c, 0x15,
		0xd6, 0x17, 0xd6, 0x17, 0xd6, 0x17, 0xc1, 0x3f, 0x82, 0x7f, 0x04, 0xff, 0x08, 0xfe, 0x11, 0xfc,
		0x23, 0xf8, 0x47, 0xf0, 0xbf, 0x8a, 0x7e, 0xe2, 0x58, 0x17, 0xd0, 0x53, 0xd0, 0x53, 0xd0, 0xd3,
		0x34, 0xe9, 0x29, 0x1a, 0x67, 0x83, 0xa2, 0x82, 0xa2, 0x66, 0x8a, 0xa2, 0xa2, 0x71, 0x36, 0x18,
		0x69, 0x46, 0x19, 0x29, 0x8e, 0x75, 0x01, 0x3b, 0x05, 0x3b, 0x05, 0x3b, 0x05, 0x3b, 0x05, 0x3b,
		0x05, 0x3b, 0x05, 0x3b, 0xc5, 0xe4, 0x82, 0x9d, 0x66, 0x88, 0x9d, 0xb2, 0x5f, 0x16, 0x63, 0x6d,
		0x5e, 0xeb, 0xf8, 0xeb, 0x2f, 0xf7, 0xff, 0xb1, 0xf7, 0xee, 0xbd, 0x8d, 0xdb, 0xfa, 0xda, 0xf6,
		0xff, 0xfd, 0x14, 0x82, 0xb1, 0x81, 0xd5, 0xe2, 0xad, 0x26, 0xb1, 0x73, 0x9c, 0x01, 0x1e, 0x3c,
		0xf0, 0x24, 0x4e, 0xeb, 0x67, 0x25, 0x71, 0x76, 0xe2, 0xe9, 0x61, 0xcf, 0x64, 0x1b, 0x8a, 0x4c,
		0x27, 0x42, 0x6d, 0xc9, 0x95, 0xe4, 0x4c, 0xb3, 0xda, 0xf9, 0xee, 0x2f, 0x7c, 0x88, 0xed, 0xc4,
		0x4e, 0x22, 0x91, 0x94, 0x2d, 0xca, 0xd7, 0xc2, 0xc6, 0xee, 0x4c, 0x26, 0xa6, 0x79, 0xfa, 0x91,
		0x17, 0x6f, 0x92, 0x37, 0x61, 0x54, 0x18, 0x15, 0x46, 0xdd, 0x50, 0x46, 0xbd, 0x09, 0x82, 0xae,
		0x70, 0xfc, 0x2c, 0xce, 0x57, 0x95, 0x79, 0x87, 0xcb, 0xbc, 0x77, 0xb8, 0x74, 0x3c, 0x43, 0x62,
		0x65, 0xfe, 0x0c, 0xd7, 0xd5, 0x28, 0x97, 0xeb, 0x7a, 0x34, 0xe6, 0xbb, 0x15, 0xf6, 0xa3, 0xe1,
		0x58, 0xad, 0x78, 0x10, 0xba, 0x74, 0xea, 0x45, 0x71, 0x35, 0x8e, 0xd5, 0x94, 0xaf, 0xe1, 0xda,
		0xab, 0xd6, 0x15, 0xc3, 0x41, 0x57, 0x11, 0x6f, 0x87, 0xa8, 0x3f, 0x97, 0x92, 0xde, 0x43, 0x0d,
		0xa5, 0x46, 0xd8, 0x16, 0xa1, 0x68, 0x7f, 0x1c, 0xd6, 0x9a, 0x3f, 0xe8, 0x76, 0x75, 0x24, 0xf5,
		0x29, 0x1a, 0x6d, 0x67, 0xcb, 0xf3, 0xb6, 0x6c, 0xe3, 0x6b, 0x1a, 0x3c, 0x32, 0x1e, 0x34, 0x4a,
		0x4a, 0xaf, 0x28, 0x65, 0x37, 0x4c, 0xc8, 0x0d, 0x10, 0xe9, 0xc3, 0x3b, 0xdd, 0x27, 0x52, 0xf6,
		0x05, 0xd5, 0x3e, 0x90, 0x4d, 0xdb, 0x4b, 0x34, 0x79, 0x16, 0x4d, 0x9d, 0xae, 0x85, 0x93, 0xb7,
		0x53, 0xb2, 0xdf, 0x4c, 0xd8, 0x92, 0xb2, 0x2d, 0xa8, 0xb3, 0xe5, 0x52, 0xb4, 0x97, 0xbe, 0x76,
		0x4a, 0xd6, 0x3a, 0x6f, 0xd7, 0xf5, 0xeb, 0xbf, 0xf1, 0x46, 0x2b, 0xa4, 0xad, 0x7d, 0xd5, 0x5a,
		0x4f, 0x50, 0xd3, 0x6a, 0x35, 0xfc, 0x7a, 0xad, 0xbe, 0x5c, 0x57, 0xaf, 0xd4, 0x53, 0xc9, 0x7d,
		0x5c, 0x6c, 0xbf, 0x5e, 0x3f, 0x73, 0xef, 0x56, 0x25, 0x78, 0xad, 0x35, 0xe1, 0x6b, 0x74, 0x89,
		0x57, 0xfa, 0x69, 0x56, 0xf0, 0x92, 0x2b, 0xf3, 0xb4, 0x2b, 0x6e, 0xe9, 0x95, 0xb4, 0xf4, 0x0a,
		0x59, 0x7e, 0xe5, 0xab, 0x16, 0x45, 0x49, 0x5f, 0x53, 0x4b, 0x77, 0x0f, 0x50, 0xe6, 0x9e, 0x5f,
		0x4a, 0xa1, 0x29, 0xb5, 0x90, 0x24, 0x23, 0x14, 0x29, 0x0a, 0x41, 0xb2, 0x42, 0x8f, 0xb2, 0x90,
		0xa3, 0x2c, 0xd4, 0xa8, 0x0b, 0x31, 0x7a, 0xa7, 0xda, 0xd4, 0x42, 0x89, 0xfc, 0x3d, 0xb3, 0x94,
		0xf7, 0xc8, 0x0a, 0x33, 0xcd, 0x25, 0x7d, 0xa8, 0x5b, 0x76, 0x96, 0x4b, 0xf0, 0xc2, 0xb6, 0xf4,
		0x24, 0x17, 0x87, 0x41, 0xb7, 0x2b, 0x42, 0xdb, 0x75, 0xc2, 0x76, 0xaa, 0xd9, 0xee, 0xc9, 0x07,
		0x99, 0xf6, 0x98, 0xf6, 0x24, 0x09, 0x4a, 0x8e, 0xa4, 0x52, 0x76, 0x2d, 0xa6, 0xbe, 0x4d, 0x9c,
		0xfa, 0x56, 0xbe, 0xca, 0x7c, 0x3a, 0x2a, 0x6e, 0xa5, 0xea, 0xc9, 0x6a, 0x13, 0xc4, 0xe4, 0x7b,
		0x8f, 0x9c, 0xb0, 0x9d, 0x68, 0xbe, 0x48, 0x31, 0x07, 0x27, 0x9a, 0xd7, 0xd2, 0x3c, 0xfc, 0x2d,
		0xf5, 0xc0, 0xb7, 0x74, 0xa0, 0x57, 0x08, 0x74, 0x02, 0x3d, 0xe3, 0x40, 0x4f, 0xbb, 0x45, 0xa4,
		0x27, 0xce, 0x53, 0x6c, 0xf9, 0x14, 0x08, 0xb5, 0x53, 0x70, 0xa7, 0xb6, 0xaa, 0xce, 0x84, 0xbd,
		0xfb, 0x83, 0x14, 0xbc, 0xdd, 0x1f, 0xc0, 0xd8, 0x30, 0x36, 0x8c, 0xcd, 0xd4, 0xbb, 0xe9, 0x53,
		0x6f, 0x7f, 0xb0, 0x3a, 0xae, 0xee, 0x0f, 0x80, 0x69, 0x60, 0x9a, 0x88, 0xce, 0x3c, 0xa2, 0x57,
		0x05, 0xd0, 0xfd, 0xc1, 0x46, 0x52, 0xf3, 0x9b, 0xf4, 0xa8, 0x56, 0xa7, 0x59, 0xe0, 0x71, 0xc7,
		0xb9, 0x09, 0x3d, 0x37, 0x39, 0x21, 0x4f, 0x7e, 0x1f, 0x48, 0x06, 0x92, 0x81, 0x64, 0xa6, 0xd4,
		0xcd, 0x9e, 0x52, 0xc7, 0x83, 0xe1, 0xca, 0x38, 0xf9, 0x64, 0xf4, 0x75, 0xa0, 0x32, 0xa8, 0x4c,
		0x5c, 0xaf, 0x22, 0xae, 0x57, 0x44, 0xcb, 0x93, 0xb0, 0xde, 0x40, 0x60, 0x4e, 0x04, 0x93, 0xca,
		0x35, 0x9b, 0x0d, 0x36, 0xfb, 0x69, 0x98, 0xd9, 0x07, 0x98, 0x01, 0x66, 0x80, 0x99, 0x89, 0x75,
		0xe3, 0x27, 0x56, 0x7f, 0x85, 0xb4, 0xec, 0x83, 0xca, 0xa0, 0x32, 0x11, 0x9d, 0x79, 0x44, 0xaf,
		0x8c, 0x93, 0xfd, 0xcd, 0x84, 0x64, 0x3f, 0x4b, 0x42, 0xf6, 0xb3, 0xc0, 0x63, 0xcf, 0x8f, 0xc5,
		0x6d, 0xe8, 0xc4, 0xa2, 0x6d, 0xbb, 0x5e, 0xe8, 0x0e, 0x12, 0x3c, 0x12, 0x3a, 0x1d, 0x41, 0x96,
		0x7c, 0x16, 0x78, 0x06, 0x9e, 0x81, 0x67, 0xa6, 0xda, 0xcd, 0x9e, 0x6a, 0x17, 0x07, 0xc6, 0x95,
		0xb1, 0x74, 0x7d, 0xfa, 0xd5, 0x47, 0xe3, 0x6f, 0x86, 0xac, 0x21, 0x6b, 0xc2, 0x7d, 0xd5, 0xe1,
		0xbe, 0x22, 0xd0, 0x5e, 0x8c, 0x76, 0xbd, 0xd8, 0x9d, 0x20, 0xd8, 0xe7, 0x0d, 0x04, 0x52, 0x87,
		0x7c, 0x7a, 0xf7, 0x01, 0xe6, 0x79, 0x02, 0x5f, 0x19, 0x49, 0xa7, 0x1f, 0x98, 0x79, 0x95, 0xa4,
		0xae, 0xfc, 0xc7, 0x36, 0x97, 0xb5, 0x3b, 0x49, 0xd9, 0x91, 0xa5, 0x3b, 0xb4, 0x4a, 0xc7, 0xd6,
		0xd4, 0xc1, 0x55, 0x3b, 0xba, 0xb6, 0x0e, 0xaf, 0xad, 0xe3, 0xeb, 0x0b, 0x80, 0x74, 0x81, 0x90,
		0x32, 0x20, 0xa4, 0x03, 0x63, 0x21, 0x40, 0xe4, 0xdb, 0xec, 0x79, 0x9c, 0xc8, 0x36, 0x99, 0x5c,
		0xb8, 0x28, 0x87, 0x8d, 0x8e, 0xf0, 0xd1, 0x1c, 0x46, 0xba, 0xc2, 0x49, 0x7b, 0x58, 0x69, 0x0f,
		0x2f, 0xfd, 0x61, 0x26, 0x17, 0x6e, 0x92, 0x61, 0xa7, 0x1c, 0x7e, 0xb2, 0x12, 0x8a, 0x5e, 0x69,
		0x25, 0xa3, 0x90, 0xd4, 0x16, 0x9a, 0x3a, 0x43, 0x34, 0xa3, 0x50, 0xd5, 0x1d, 0xb2, 0x99, 0x85,
		0x6e, 0x66, 0x21, 0x9c, 0x5d, 0x28, 0xab, 0x85, 0xb4, 0x62, 0x68, 0x6b, 0x0b, 0xf1, 0x69, 0x42,
		0xa9, 0xbc, 0x91, 0x12, 0x77, 0x63, 0x05, 0x6b, 0xd0, 0x97, 0xc2, 0x1e, 0x13, 0x6f, 0x4c, 0xbc,
		0x31, 0xf1, 0xd6, 0x33, 0x7c, 0x4c, 0x8b, 0x9b, 0x9d, 0x89, 0x77, 0x6a, 0xef, 0xaa, 0xc4, 0xd3,
		0xff, 0x21, 0x8f, 0xd4, 0xa6, 0x6c, 0x0b, 0x1e, 0xa9, 0x65, 0x74, 0x66, 0x74, 0x66, 0x74, 0xe6,
		0x19, 0xb0, 0xc9, 0xff, 0x78, 0x06, 0xec, 0x69, 0xfa, 0x3c, 0x03, 0xf6, 0x6a, 0xd3, 0xf2, 0x0c,
		0x58, 0x4e, 0x1a, 0x97, 0x67, 0xc0, 0xd6, 0x42, 0xa4, 0x3c, 0x52, 0x0b, 0x9d, 0x42, 0xa7, 0xd0,
		0x29, 0x74, 0x0a, 0x9d, 0x42, 0xa7, 0xd0, 0x29, 0x8d, 0x0b, 0x9d, 0xae, 0x3a, 0x85, 0xa2, 0xbc,
		0x79, 0xb8, 0xe4, 0xf0, 0xe6, 0x1b, 0xcf, 0x1f, 0x6a, 0xd9, 0x3c, 0xb7, 0x74, 0x1e, 0xfa, 0x7c,
		0xe3, 0x25, 0xc4, 0x34, 0x27, 0xc0, 0xf5, 0x77, 0x16, 0x85, 0x8e, 0xa2, 0x67, 0x33, 0x54, 0xe7,
		0x26, 0xa8, 0xa6, 0x05, 0x0c, 0x67, 0x1e, 0x72, 0xb8, 0x30, 0xe1, 0xcc, 0xc3, 0xba, 0x16, 0x1c,
		0xd3, 0x9e, 0xd7, 0x15, 0x4e, 0x27, 0x14, 0x1d, 0x1d, 0xbd, 0xee, 0x71, 0x77, 0xf2, 0x40, 0x43,
		0x5a, 0x17, 0x93, 0x59, 0xe5, 0xdd, 0xbb, 0xc9, 0xe0, 0xbf, 0x35, 0x1a, 0x4a, 0x0c, 0x1c, 0x50,
		0xd3, 0x5d, 0xcd, 0x79, 0xb3, 0xbd, 0x74, 0xbc, 0x04, 0xac, 0xfd, 0x18, 0x59, 0x85, 0x21, 0x95,
		0x21, 0xd5, 0xd0, 0x21, 0x55, 0xdb, 0x31, 0x32, 0x37, 0xe8, 0xf5, 0xbc, 0x38, 0x16, 0x6d, 0xfd,
		0x2a, 0xf1, 0x2c, 0x69, 0x44, 0xe1, 0x9c, 0x0d, 0x0c, 0x59, 0x0d, 0x10, 0x99, 0x0f, 0x14, 0x99,
		0x0f, 0x18, 0xd9, 0x0f, 0x1c, 0x7a, 0x85, 0x82, 0xfc, 0x8b, 0xc2, 0x03, 0xcf, 0x8f, 0xf7, 0x77,
		0x33, 0x10, 0x84, 0x0f, 0x11, 0x84, 0x33, 0x52, 0x0d, 0xd1, 0x0c, 0x57, 0x14, 0x76, 0x4f, 0x9b,
		0x76, 0x25, 0x82, 0xf0, 0xe1, 0xee, 0xee, 0xfe, 0xc1, 0xee, 0xee, 0xf6, 0xc1, 0xce, 0xc1, 0xf6,
		0xfb, 0xbd, 0xbd, 0xf2, 0x7e, 0x79, 0x8f, 0xd6, 0x5e, 0xc9, 0x50, 0xad, 0x3f, 0xb5, 0x22, 0x9d,
		0x5f, 0xe8, 0x84, 0x22, 0x83, 0xfb, 0x0c, 0xa3, 0x54, 0xc1, 0x4f, 0xf0, 0x13, 0xfc, 0x04, 0x3f,
		0xc1, 0x4f, 0xf0, 0x13, 0xfc, 0x04, 0x3f, 0xc1, 0x4f, 0xf0, 0xf3, 0x79, 0x23, 0xde, 0x79, 0xb7,
		0x77, 0xf6, 0x57, 0x27, 0x16, 0x61, 0xcf, 0x09, 0xff, 0xd0, 0x0f, 0xa2, 0xcf, 0xd2, 0x07, 0x49,
		0x41, 0x52, 0x90, 0x14, 0x24, 0x05, 0x49, 0x41, 0x52, 0x90, 0x14, 0x24, 0x05, 0x49, 0x41, 0xd2,
		0xe7, 0x8d, 0xd8, 0x75, 0xa2, 0xd8, 0xce, 0x9a, 0x4b, 0x97, 0x7d, 0x09, 0x70, 0x0a, 0x9c, 0x02,
		0xa7, 0x1b, 0x0a, 0xa7, 0xb1, 0xd7, 0x13, 0xb1, 0xe7, 0xfe, 0x11, 0xe5, 0x9e, 0x50, 0x3f, 0xf9,
		0xe3, 0x49, 0xb4, 0xe4, 0x3b, 0x7e, 0x10, 0x09, 0x37, 0xf0, 0xdb, 0x51, 0x09, 0x02, 0x86, 0x80,
		0x21, 0x60, 0x08, 0x18, 0x02, 0x2e, 0x00, 0x01, 0xf7, 0x9c, 0xbf, 0xec, 0xae, 0xd7, 0x4b, 0xf0,
		0xd6, 0x50, 0xea, 0x69, 0x6e, 0x96, 0x34, 0xb4, 0x0b, 0xed, 0x42, 0xbb, 0x1b, 0x4a, 0xbb, 0x48,
		0xb1, 0x80, 0x28, 0x20, 0x0a, 0x88, 0x02, 0xa2, 0x80, 0xe8, 0x2b, 0x8d, 0x88, 0xd9, 0x36, 0xf8,
		0x09, 0x7e, 0x82, 0x9f, 0xba, 0x7b, 0x2e, 0x66, 0xdb, 0x49, 0xca, 0x34, 0x88, 0xb2, 0xb8, 0x9e,
		0x3a, 0x4a, 0x95, 0xd1, 0x97, 0xd1, 0x97, 0xd1, 0x97, 0xc5, 0x3f, 0x8b, 0x7f, 0x16, 0xff, 0x2c,
		0xfe, 0x59, 0xfc, 0xb3, 0xf8, 0x67, 0xf1, 0xbf, 0x0c, 0x3f, 0x79, 0xeb, 0x05, 0x3c, 0x05, 0x4f,
		0xc1, 0xd3, 0x55, 0xe2, 0x29, 0x6e, 0xda, 0x20, 0x2a, 0x88, 0x9a, 0x2b, 0x44, 0xc5, 0x4d, 0x1b,
		0x22, 0xcd, 0x29, 0x91, 0xf2, 0xd6, 0x0b, 0x74, 0x0a, 0x9d, 0x42, 0xa7, 0xd0, 0x29, 0x74, 0x0a,
		0x9d, 0x42, 0xa7, 0x34, 0x2e, 0x74, 0x9a, 0x23, 0x3a, 0x15, 0x7f, 0xb9, 0x42, 0xb4, 0xb3, 0xda,
		0xc7, 0x7f, 0xf9, 0xeb, 0x60, 0x54, 0x18, 0x15, 0x46, 0xdd, 0x50, 0x46, 0xbd, 0x09, 0x82, 0xae,
		0x70, 0xfc, 0x2c, 0xce, 0x57, 0x95, 0x79, 0x9c, 0xcb, 0xe8, 0xc7, 0xb9, 0x74, 0xbc, 0x48, 0x62,
		0xad, 0xf0, 0x6d, 0xae, 0xab, 0x51, 0x7e, 0xd7, 0xf5, 0x92, 0xcc, 0x77, 0x2b, 0xec, 0x5c, 0xc3,
		0x01, 0x5c, 0xf1, 0x74, 0x74, 0xe9, 0xd4, 0x8b, 0xe2, 0x6a, 0x1c, 0xab, 0xc9, 0x61, 0xc3, 0x05,
		0x59, 0xad, 0x2b, 0x86, 0x23, 0xb1, 0x22, 0xf3, 0x0e, 0xf9, 0x7f, 0x2e, 0x25, 0xbd, 0x27, 0x1d,
		0x4a, 0x8d, 0xb0, 0x2d, 0x42, 0xd1, 0xfe, 0x38, 0xac, 0x35, 0x7f, 0xd0, 0xed, 0xea, 0x48, 0xea,
		0x53, 0x34, 0xda, 0xe3, 0x96, 0x87, 0x70, 0xd9, 0xc6, 0xd7, 0x34, 0xa2, 0xac, 0x6e, 0x24, 0x29,
		0x29, 0xbd, 0xb2, 0xb4, 0x8a, 0xb1, 0x43, 0x6e, 0xd4, 0x48, 0x1f, 0xf3, 0xe9, 0x3e, 0x91, 0xb2,
		0x83, 0xa8, 0x76, 0x8c, 0xcc, 0x3b, 0x84, 0x44, 0x3f, 0xc8, 0xb6, 0xfd, 0xd3, 0x35, 0x7b, 0xf2,
		0xc6, 0x4b, 0xf6, 0x9b, 0x09, 0x9b, 0x57, 0xb6, 0x59, 0x33, 0x6a, 0xce, 0x14, 0x8d, 0x98, 0x45,
		0xe3, 0x25, 0x6b, 0xb2, 0xb7, 0x1b, 0xe0, 0xf5, 0xdf, 0x78, 0xa3, 0x69, 0xd2, 0x36, 0x89, 0xc6,
		0xa6, 0x48, 0x50, 0xfd, 0xba, 0xaa, 0xfd, 0xf5, 0xaa, 0x7e, 0xb9, 0x02, 0x5f, 0xa9, 0xbc, 0x64,
		0xb7, 0xc4, 0xd2, 0xdc, 0xfe, 0x4a, 0x28, 0x3b, 0x24, 0x96, 0x13, 0xd2, 0xc8, 0x04, 0x92, 0xcb,
		0xff, 0xb4, 0xcb, 0x7a, 0xe9, 0xe5, 0xba, 0xf4, 0x32, 0x5c, 0x7e, 0x79, 0xad, 0x16, 0x56, 0x89,
		0x97, 0xb9, 0x12, 0xaf, 0x5c, 0xa6, 0x79, 0xc5, 0x52, 0xea, 0x95, 0x4a, 0xb9, 0x80, 0x08, 0xfa,
		0xb1, 0xe7, 0x3a, 0x5d, 0xdb, 0xbd, 0x73, 0x7c, 0x5f, 0x74, 0x93, 0xc7, 0xc6, 0xf3, 0x0f, 0x26,
		0x0b, 0x93, 0xf2, 0x9a, 0xc3, 0x24, 0xe8, 0xc7, 0x76, 0x2c, 0x0a, 0x1a, 0x26, 0xd3, 0xc2, 0x65,
		0x1c, 0x26, 0x49, 0x5f, 0x36, 0x2c, 0xb9, 0x8f, 0xad, 0x99, 0xb0, 0x06, 0x67, 0xcf, 0x12, 0xa6,
		0x78, 0x96, 0x3b, 0xe5, 0xa3, 0xa3, 0xa9, 0x85, 0x5d, 0x19, 0xe1, 0x56, 0xb2, 0xcb, 0xa9, 0x0a,
		0xaf, 0xca, 0xc2, 0xaa, 0xb2, 0x70, 0x2a, 0xdf, 0x25, 0xb3, 0x61, 0xd7, 0xb4, 0x8f, 0x70, 0x96,
		0x3a, 0xa1, 0xf8, 0x73, 0x20, 0x7c, 0xf7, 0x21, 0x7d, 0xe5, 0xcf, 0x3d, 0x68, 0x34, 0x49, 0x22,
		0x65, 0xdd, 0xc9, 0xed, 0x60, 0x48, 0xef, 0x54, 0xa8, 0xec, 0x48, 0x28, 0x76, 0x70, 0x5d, 0x3b,
		0x0c, 0xda, 0x76, 0x12, 0xb4, 0xed, 0x18, 0xa8, 0x07, 0xc0, 0x6a, 0xd6, 0xea, 0xd2, 0x8a, 0xfe,
		0x62, 0x37, 0xb7, 0xe3, 0x61, 0x5a, 0x12, 0x8d, 0x2f, 0x7f, 0x15, 0x6f, 0x66, 0x2c, 0x79, 0xf6,
		0xf3, 0x7f, 0x64, 0xbe, 0x5a, 0xed, 0xc4, 0x89, 0x9a, 0x60, 0xa9, 0xfe, 0x66, 0xb7, 0xa6, 0x93,
		0x22, 0xda, 0x0f, 0x0d, 0xe8, 0x3b, 0x1c, 0xf0, 0x4d, 0x4d, 0xc9, 0xd5, 0x57, 0xc5, 0xfa, 0xaf,
		0xbc, 0xe5, 0xb9, 0xd6, 0x57, 0x24, 0x43, 0x5e, 0x67, 0xa5, 0x7b, 0xa5, 0x40, 0xac, 0xae, 0xe7,
		0x0b, 0xbb, 0x1f, 0x84, 0xb1, 0xfc, 0x44, 0x3f, 0x4b, 0x82, 0x89, 0x9e, 0x89, 0xbe, 0xb0, 0x13,
		0x7d, 0x72, 0x8d, 0x43, 0x45, 0xf3, 0x78, 0x51, 0x03, 0xd9, 0x9a, 0x13, 0x80, 0x3e, 0xcc, 0xa9,
		0x94, 0x4b, 0x7f, 0xfc, 0xe4, 0xa7, 0x6f, 0x6b, 0x26, 0xab, 0x19, 0x6a, 0x82, 0xbe, 0x08, 0x47,
		0x62, 0xad, 0xd3, 0xb5, 0x7b, 0x41, 0x5b, 0xc8, 0x8f, 0x38, 0x0b, 0x29, 0x31, 0xf0, 0x30, 0xf0,
		0x14, 0x76, 0xe0, 0x19, 0x78, 0x7e, 0x5c, 0xde, 0x57, 0x18, 0x77, 0xf6, 0x59, 0x19, 0xb0, 0x32,
		0xc8, 0x6a, 0x65, 0xb0, 0xbf, 0xb7, 0xb7, 0xc3, 0x52, 0x60, 0xc5, 0x4b, 0x81, 0x94, 0x63, 0x90,
		0xf8, 0x2b, 0x0e, 0x1d, 0x7b, 0xe0, 0x47, 0xb1, 0x73, 0xd3, 0x95, 0x1c, 0x8d, 0x42, 0xd1, 0x11,
		0xa1, 0xf0, 0xdd, 0xb5, 0x0c, 0x0a, 0xd3, 0xb7, 0x29, 0xe3, 0xb8, 0x1f, 0x7d, 0xd8, 0xda, 0xba,
		0xf5, 0xe2, 0xbb, 0xc1, 0xcd, 0x3b, 0x37, 0xe8, 0xcd, 0x6d, 0xe2, 0x6e, 0xf5, 0x07, 0x37, 0x5d,
		0xcf, 0xdd, 0xba, 0xe9, 0x06, 0x37, 0x5b, 0x3d, 0x27, 0x8a, 0x45, 0xb8, 0xd5, 0x0e, 0xdc, 0xad,
		0xe1, 0xac, 0xe0, 0x0d, 0x51, 0xa1, 0x2d, 0xee, 0x3d, 0x57, 0xd8, 0xfd, 0x70, 0xc8, 0x0f, 0xb1,
		0x27, 0x22, 0xfb, 0x76, 0xe0, 0xb5, 0xc5, 0xbb, 0x9e, 0xca, 0xe1, 0x6b, 0x5d, 0xa7, 0x83, 0xe7,
		0x67, 0xd8, 0x59, 0x5d, 0x2b, 0xc6, 0x81, 0xee, 0x03, 0xc0, 0x4f, 0x26, 0xdd, 0xcc, 0x1a, 0x83,
		0x85, 0x7b, 0x82, 0x96, 0x88, 0x9d, 0xf0, 0x56, 0xc4, 0x76, 0x30, 0x88, 0xfb, 0x83, 0xd8, 0xee,
		0x07, 0x5f, 0x25, 0xac, 0x5e, 0x66, 0x4f, 0xe9, 0x2c, 0x49, 0x0c, 0xa6, 0x86, 0xa9, 0x0b, 0xcb,
		0xd4, 0x6d, 0xe1, 0x7a, 0x3d, 0xa7, 0x2b, 0xe5, 0xa9, 0x37, 0x5d, 0xce, 0x57, 0x24, 0x3e, 0xbb,
		0x80, 0x3a, 0x95, 0x8d, 0x85, 0xf3, 0xf7, 0x95, 0xca, 0xce, 0xce, 0x41, 0x65, 0x7b, 0x67, 0xff,
		0x70, 0x6f, 0xf7, 0xe0, 0x60, 0xef, 0x70, 0xfb, 0x50, 0x37, 0x47, 0x56, 0xf4, 0x71, 0xe4, 0x30,
		0xaa, 0xcc, 0xa7, 0xf5, 0xc5, 0x3a, 0x3f, 0xc8, 0x71, 0x9d, 0x6f, 0xb8, 0x8c, 0x6f, 0xf4, 0xf1,
		0xd5, 0x67, 0x07, 0xa3, 0xb6, 0x52, 0x1d, 0x66, 0xb1, 0xe4, 0xcf, 0x4f, 0x36, 0xc6, 0xdf, 0x7b,
		0x34, 0xfe, 0xda, 0xd6, 0x84, 0x2f, 0x74, 0x1d, 0x57, 0x4d, 0x74, 0xec, 0xd3, 0x89, 0x45, 0xfa,
		0xc3, 0x3e, 0x69, 0xae, 0xf9, 0x48, 0x9f, 0xf5, 0xa9, 0x70, 0xd6, 0x47, 0x3b, 0x3c, 0x19, 0x7f,
		0xd6, 0xc7, 0x75, 0xc2, 0xd0, 0x13, 0xa1, 0x3d, 0x3b, 0xc9, 0x10, 0x74, 0x3a, 0x91, 0x50, 0xd8,
		0x11, 0x7c, 0x31, 0x45, 0xb9, 0x35, 0x45, 0x99, 0x35, 0x05, 0x6b, 0x8a, 0xac, 0xd7, 0x14, 0x69,
		0xc3, 0x66, 0xfa, 0x41, 0xe7, 0xfe, 0x56, 0xbe, 0xb9, 0x1e, 0x7b, 0xcd, 0x30, 0x11, 0xd9, 0x4b,
		0x88, 0x4a, 0x17, 0xfe, 0x95, 0x2f, 0xf8, 0xeb, 0xb8, 0xd0, 0xbf, 0x10, 0x3c, 0x0f, 0x7d, 0x11,
		0xe5, 0x4c, 0x93, 0xd3, 0x72, 0x43, 0x3f, 0x5b, 0x41, 0xee, 0x49, 0xed, 0x19, 0x72, 0x85, 0x56,
		0xf9, 0x4a, 0xbd, 0x96, 0x25, 0xbd, 0x8e, 0xa5, 0xfd, 0xcb, 0x2b, 0xa2, 0xb2, 0x42, 0x62, 0x7a,
		0x3c, 0xa1, 0x34, 0x5c, 0x78, 0xd7, 0xe9, 0xf9, 0x94, 0x9d, 0x04, 0x90, 0x49, 0x23, 0x64, 0x22,
		0x09, 0x68, 0x90, 0x06, 0xb4, 0x4a, 0x04, 0xd9, 0x4b, 0x05, 0x2b, 0x6d, 0x1b, 0x3d, 0xa6, 0x4c,
		0xdf, 0xd6, 0x64, 0x63, 0x70, 0xbd, 0xaa, 0x8b, 0xd0, 0x12, 0x84, 0xea, 0xf9, 0x51, 0xec, 0xf8,
		0xb1, 0x3a, 0xf3, 0x3c, 0x26, 0x04, 0xf7, 0xc0, 0x3d, 0x70, 0x0f, 0xdc, 0x03, 0xf7, 0xc0, 0x3d,
		0x70, 0x0f, 0xdc, 0x93, 0x5b, 0xee, 0x89, 0x45, 0x78, 0xef, 0x74, 0x75, 0x80, 0xcf, 0x24, 0x25,
		0xc8, 0x67, 0x38, 0x77, 0x43, 0x3d, 0xb2, 0xd4, 0xb3, 0xa1, 0xc4, 0x13, 0xc5, 0x4e, 0x6c, 0x2b,
		0x06, 0x91, 0xa5, 0xe7, 0x11, 0xc4, 0xd9, 0x0d, 0x4c, 0xdf, 0xf1, 0x83, 0x48, 0xb8, 0x81, 0xdf,
		0x56, 0xea, 0xcb, 0xc5, 0xe6, 0x9e, 0xed, 0xac, 0x66, 0xd2, 0xed, 0xdc, 0xce, 0xa4, 0x79, 0xc5,
		0x9c, 0xec, 0x1e, 0x31, 0x34, 0xa9, 0x75, 0xe0, 0x9c, 0x85, 0x4a, 0xee, 0x29, 0xf4, 0xb6, 0xe9,
		0x10, 0x3d, 0x4c, 0x04, 0xba, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41,
		0xd7, 0x81, 0x77, 0xf2, 0xcb, 0x3b, 0x76, 0xec, 0xf5, 0x84, 0x16, 0xe8, 0x19, 0xa7, 0x04, 0xf9,
		0xa0, 0xeb, 0xa0, 0xeb, 0xa4, 0xee, 0x33, 0xc3, 0xd8, 0x89, 0x3d, 0xf7, 0x8f, 0x48, 0x0b, 0xf3,
		0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0x40, 0x39, 0x23, 0xca, 0x51, 0x08, 0xfc, 0x19,
		0xe0, 0x78, 0x3e, 0x6c, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa,
		0x03, 0xef, 0xe4, 0x98, 0x77, 0x74, 0xa9, 0x3a, 0x8f, 0x29, 0x41, 0x3e, 0xa8, 0x3a, 0xa8, 0x3a,
		0xa8, 0x3a, 0xa8, 0x3a, 0xa8, 0x3a, 0xa8, 0x3a, 0x50, 0x8e, 0x6e, 0xca, 0xc1, 0x02, 0x32, 0xc9,
		0x74, 0x52, 0xaf, 0x5a, 0x8d, 0xfa, 0x89, 0x7d, 0x64, 0x1f, 0x9d, 0xd5, 0xaf, 0xec, 0xed, 0xf2,
		0xbb, 0xb2, 0xd5, 0x1c, 0x16, 0xc9, 0x3a, 0xc0, 0xc4, 0x51, 0x82, 0x4b, 0x5e, 0xa9, 0xce, 0x0d,
		0x37, 0x4d, 0x5d, 0xd7, 0x33, 0xae, 0xcf, 0x8d, 0x93, 0x46, 0xc6, 0x40, 0x5b, 0x9a, 0x2c, 0x55,
		0x2c, 0x6d, 0xc6, 0x4a, 0xa3, 0x67, 0xbe, 0x5b, 0x47, 0xe3, 0x6c, 0x9d, 0x3c, 0xe6, 0xaa, 0x31,
		0xce, 0x54, 0x0e, 0xfc, 0x31, 0xdd, 0xbb, 0x30, 0xe8, 0x39, 0xb1, 0xe7, 0xda, 0x6d, 0x2f, 0xea,
		0x8b, 0x30, 0x92, 0x69, 0xc8, 0x99, 0xa3, 0xcd, 0xb2, 0xd4, 0x70, 0xb3, 0xc9, 0x78, 0x58, 0xc5,
		0xcd, 0x46, 0x76, 0xf0, 0xc2, 0xcd, 0x86, 0x7d, 0x22, 0xf3, 0x15, 0x13, 0xf6, 0x89, 0x72, 0xb8,
		0x4f, 0x54, 0x41, 0x31, 0x79, 0x61, 0x99, 0xbe, 0xc2, 0x7d, 0xa2, 0x0a, 0xfb, 0x44, 0xaa, 0x6d,
		0x73, 0x60, 0x50, 0xdb, 0xa0, 0xa0, 0x64, 0xd4, 0xf9, 0x70, 0xb3, 0x81, 0x7b, 0xe0, 0x1e, 0xb8,
		0x07, 0xee, 0x81, 0x7b, 0xe0, 0x1e, 0xb8, 0x67, 0x83, 0xb8, 0x07, 0x37, 0x9b, 0x4c, 0xc8, 0x07,
		0xea, 0x91, 0xa5, 0x1e, 0xdc, 0x6c, 0x70, 0xb3, 0x31, 0x8a, 0x7b, 0x38, 0x21, 0x93, 0x1b, 0xcc,
		0xe1, 0x84, 0x0c, 0x9c, 0xb3, 0xb4, 0x92, 0x71, 0xb3, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41,
		0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0xd9, 0x00, 0xde, 0xc1, 0xcd, 0x06, 0x5d, 0x07, 0x5d,
		0x87, 0x7b, 0x4f, 0xa8, 0x3a, 0xa8, 0x3a, 0xa8, 0x3a, 0xa8, 0x3a, 0x45, 0xa4, 0x1c, 0xdc, 0x6c,
		0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x8a, 0xcf,
		0x3b, 0xb8, 0xd9, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0,
		0xea, 0xe4, 0x9d, 0x72, 0x36, 0xc9, 0x9b, 0x43, 0xdd, 0x1c, 0xc2, 0xd2, 0xed, 0xcb, 0xf1, 0x98,
		0xa5, 0xe3, 0x59, 0x8e, 0x72, 0x60, 0xca, 0x21, 0x22, 0x3f, 0x94, 0x37, 0xe1, 0x18, 0x7d, 0x1a,
		0xd3, 0x8d, 0x8c, 0x91, 0x14, 0xd3, 0x0d, 0xd9, 0x51, 0x09, 0xd3, 0x0d, 0x16, 0x75, 0x2c, 0xea,
		0x0c, 0x5c, 0xd4, 0x21, 0x63, 0x9b, 0xb7, 0xa0, 0x43, 0xc6, 0x46, 0xc6, 0x46, 0xc6, 0x5e, 0xe3,
		0x02, 0x0f, 0xb3, 0x0d, 0x78, 0x07, 0xde, 0x81, 0x77, 0xe0, 0x1d, 0x78, 0x07, 0xde, 0x81, 0x77,
		0xe0, 0x9d, 0x25, 0xbc, 0x83, 0xc9, 0x06, 0xc4, 0x03, 0xf1, 0x60, 0xb2, 0x31, 0x9f, 0x04, 0x1b,
		0xf7, 0x69, 0xe6, 0x56, 0x36, 0xee, 0x73, 0x83, 0x39, 0x6c, 0xdc, 0xc3, 0x39, 0x4b, 0x2b, 0x19,
		0x93, 0x0d, 0xe8, 0x06, 0xba, 0x41, 0xcf, 0x41, 0xcf, 0x41, 0xcf, 0x41, 0xcf, 0x41, 0xcf, 0xc1,
		0x5c, 0x23, 0x01, 0xec, 0x70, 0x0d, 0x03, 0xe2, 0x81, 0x78, 0x24, 0xfb, 0x0c, 0xd7, 0x30, 0x50,
		0x73, 0x50, 0x73, 0x50, 0x73, 0xa0, 0x9c, 0x0c, 0x28, 0x07, 0x73, 0x0d, 0xd8, 0x06, 0xb6, 0x41,
		0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0xc1, 0x54, 0xe3, 0x6d, 0xd8, 0x41, 0xcd,
		0x81, 0x78, 0x20, 0x1e, 0xd4, 0x1c, 0xd4, 0x1c, 0xd4, 0x1c, 0xd4, 0x1c, 0x28, 0x27, 0x1b, 0xca,
		0xd9, 0x20, 0x53, 0x0d, 0x09, 0xb3, 0x07, 0x4b, 0xb3, 0x89, 0x46, 0x6d, 0x98, 0x85, 0x1c, 0xb8,
		0x66, 0x74, 0x84, 0x6b, 0x0f, 0x7c, 0x37, 0x08, 0x43, 0xe1, 0xc6, 0xce, 0x4d, 0x57, 0xd8, 0x37,
		0xdd, 0xc0, 0xfd, 0x23, 0x92, 0x77, 0xd2, 0x78, 0x31, 0x45, 0x39, 0x77, 0x8d, 0x6d, 0xdc, 0x35,
		0x56, 0xce, 0xa4, 0x1b, 0xe7, 0xae, 0x21, 0x8d, 0x9b, 0xd3, 0x96, 0x77, 0x83, 0x81, 0x1f, 0x8b,
		0x50, 0x0a, 0x32, 0x15, 0xe0, 0x52, 0x11, 0x02, 0x15, 0xf8, 0x5a, 0x07, 0xf4, 0xe9, 0x82, 0x3d,
		0xed, 0x18, 0xa1, 0x0f, 0x1f, 0x14, 0xa0, 0x4e, 0x0b, 0xcc, 0x65, 0x08, 0x71, 0x79, 0xae, 0xf5,
		0x15, 0x41, 0xd3, 0x75, 0x1e, 0x66, 0xf0, 0x50, 0xfc, 0x39, 0x10, 0xbe, 0xfb, 0xa0, 0x30, 0x65,
		0x4f, 0x93, 0x60, 0x8e, 0x66, 0x8e, 0x2e, 0xec, 0x1c, 0x3d, 0xed, 0xe6, 0x23, 0x2d, 0x6c, 0xc5,
		0x13, 0xf5, 0x54, 0xfd, 0x39, 0xfb, 0xf9, 0x3f, 0x25, 0x26, 0x7a, 0x26, 0x7a, 0x26, 0x7a, 0x26,
		0xfa, 0x54, 0x13, 0xfd, 0x6d, 0x18, 0x0c, 0xfa, 0xb6, 0xd7, 0x96, 0x9f, 0xe7, 0xa7, 0x29, 0x30,
		0xcd, 0x33, 0xcd, 0x17, 0x76, 0x9a, 0x1f, 0x78, 0x7e, 0xbc, 0x53, 0x51, 0x98, 0xde, 0x0f, 0x98,
		0x9e, 0x99, 0x9e, 0xb3, 0x9a, 0x9e, 0x77, 0x2b, 0xef, 0x77, 0xdf, 0xef, 0x1f, 0x54, 0xde, 0x33,
		0x29, 0x17, 0x61, 0x52, 0xf6, 0xfc, 0xfe, 0x20, 0xb6, 0xfb, 0xc1, 0x57, 0xa1, 0x60, 0x3e, 0x3d,
		0x9f, 0xc8, 0x66, 0x78, 0x50, 0xc7, 0xa1, 0xe3, 0x47, 0xae, 0xf0, 0xee, 0x45, 0xc8, 0xec, 0xbc,
		0xec, 0xb0, 0xc6, 0x5c, 0xfd, 0xe0, 0x44, 0x8d, 0x13, 0xf5, 0xb2, 0x10, 0xe2, 0x24, 0x94, 0x6c,
		0x70, 0x71, 0xf6, 0x5b, 0xbe, 0xb1, 0x39, 0xfb, 0x9d, 0x21, 0x88, 0x2f, 0xd0, 0x22, 0x67, 0xbf,
		0x39, 0xfb, 0xcd, 0xd9, 0x6f, 0x55, 0xf4, 0x97, 0xff, 0x3e, 0x9c, 0xa8, 0xe1, 0x1d, 0x78, 0x07,
		0xde, 0x81, 0x77, 0xe0, 0x1d, 0x78, 0x07, 0xde, 0x81, 0x77, 0x96, 0xf1, 0x0e, 0x4e, 0xd4, 0x10,
		0x0f, 0xc4, 0x83, 0x13, 0xf5, 0x7c, 0x12, 0xdc, 0x76, 0x4b, 0x33, 0xb7, 0x72, 0xdb, 0x2d, 0x37,
		0x98, 0xc3, 0x6d, 0x37, 0x38, 0x67, 0x69, 0x25, 0xe3, 0x44, 0x0d, 0xdd, 0x40, 0x37, 0xe8, 0x39,
		0xe8, 0x39, 0xe8, 0x39, 0xe8, 0x39, 0xe8, 0x39, 0x38, 0x51, 0x27, 0x80, 0x1d, 0xbc, 0x8b, 0x20,
		0x1e, 0x88, 0x47, 0xb2, 0xcf, 0xe0, 0x5d, 0x84, 0x9a, 0x83, 0x9a, 0x83, 0x9a, 0x03, 0xe5, 0x64,
		0x40, 0x39, 0x38, 0x51, 0xc3, 0x36, 0xb0, 0x0d, 0x6a, 0x0e, 0x6a, 0x0e, 0x6a, 0x0e, 0x6a, 0x0e,
		0x6a, 0x0e, 0x4e, 0xd4, 0x6f, 0xc3, 0x0e, 0x6a, 0x0e, 0xc4, 0x03, 0xf1, 0xa0, 0xe6, 0xa0, 0xe6,
		0xa0, 0xe6, 0xa0, 0xe6, 0x40, 0x39, 0xd9, 0x50, 0xce, 0x06, 0x39, 0x51, 0xcb, 0x3b, 0x3f, 0x58,
		0x9a, 0x0d, 0xa9, 0xeb, 0xc3, 0x9c, 0x5c, 0x8c, 0x32, 0x92, 0x03, 0x5b, 0x8d, 0xae, 0x13, 0x89,
		0xd0, 0xbe, 0xf1, 0x9c, 0xc8, 0x76, 0x07, 0x61, 0x28, 0x24, 0xae, 0xd3, 0x4d, 0xe7, 0xdd, 0x25,
		0x69, 0x61, 0xb2, 0x91, 0x3d, 0x9f, 0x62, 0xb2, 0xa1, 0x30, 0x4a, 0x61, 0xb2, 0xc1, 0x22, 0x8f,
		0x45, 0x9e, 0x81, 0x8b, 0x3c, 0x64, 0x6d, 0xf3, 0x16, 0x78, 0xc8, 0xda, 0xc8, 0xda, 0xc8, 0xda,
		0x6b, 0x5c, 0xf0, 0x61, 0xb2, 0x01, 0xef, 0xc0, 0x3b, 0xf0, 0x0e, 0xbc, 0x03, 0xef, 0xc0, 0x3b,
		0xf0, 0x0e, 0xbc, 0xb3, 0x84, 0x77, 0x30, 0xd9, 0x80, 0x78, 0x20, 0x1e, 0x4c, 0x36, 0xe6, 0x93,
		0x60, 0x23, 0x3f, 0xcd, 0xdc, 0xca, 0x46, 0x7e, 0x6e, 0x30, 0x87, 0x8d, 0x7c, 0x38, 0x67, 0x69,
		0x25, 0x63, 0xb2, 0x01, 0xdd, 0x40, 0x37, 0xe8, 0x39, 0xe8, 0x39, 0xe8, 0x39, 0xe8, 0x39, 0xe8,
		0x39, 0x98, 0x6c, 0x24, 0x80, 0x1d, 0xae, 0x65, 0x40, 0x3c, 0x10, 0x8f, 0x64, 0x9f, 0xe1, 0x5a,
		0x06, 0x6a, 0x0e, 0x6a, 0x0e, 0x6a, 0x0e, 0x94, 0x93, 0x01, 0xe5, 0x60, 0xb2, 0x01, 0xdb, 0xc0,
		0x36, 0xa8, 0x39, 0xa8, 0x39, 0xa8, 0x39, 0xa8, 0x39, 0xa8, 0x39, 0x98, 0x6c, 0xbc, 0x0d, 0x3b,
		0xa8, 0x39, 0x10, 0x0f, 0xc4, 0x83, 0x9a, 0x83, 0x9a, 0x83, 0x9a, 0x83, 0x9a, 0x03, 0xe5, 0x64,
		0x43, 0x39, 0x1b, 0x64, 0xb2, 0xa1, 0x6c, 0x00, 0x61, 0x69, 0xf6, 0xda, 0x38, 0x1d, 0x66, 0xe8,
		0xa3, 0xe7, 0x44, 0x47, 0x93, 0xec, 0xe4, 0xc1, 0x71, 0xc3, 0xf3, 0x85, 0xdd, 0x0f, 0x42, 0x15,
		0xa3, 0x8d, 0x69, 0x12, 0x72, 0xfe, 0x1a, 0xdb, 0x86, 0xf9, 0x6b, 0x04, 0xfd, 0xd8, 0x8e, 0x45,
		0xd8, 0xc3, 0x5c, 0x63, 0x09, 0x7f, 0x4e, 0x2b, 0x27, 0x67, 0x43, 0x93, 0x34, 0x6a, 0xce, 0xba,
		0xb9, 0x70, 0x3a, 0xa1, 0xe8, 0xc8, 0xb4, 0xfa, 0xa3, 0x94, 0x26, 0xa1, 0x1a, 0x94, 0x2e, 0xa6,
		0xa3, 0xa1, 0x3b, 0x1d, 0x05, 0x3f, 0xcc, 0x8d, 0x82, 0x4b, 0x7f, 0xfc, 0xe4, 0xa7, 0xa3, 0xb1,
		0x2b, 0x07, 0x43, 0x4d, 0x2f, 0x68, 0x0f, 0xba, 0xa3, 0xd9, 0xc1, 0x16, 0x61, 0x18, 0x84, 0x76,
		0x38, 0xfc, 0x8b, 0xfc, 0xb8, 0xf3, 0x42, 0x7a, 0x9b, 0x61, 0xf2, 0xc3, 0x20, 0x64, 0xe0, 0x20,
		0x84, 0xbd, 0x0f, 0xf2, 0x12, 0xf2, 0x92, 0x81, 0xf2, 0x12, 0x1b, 0x6a, 0xe6, 0x49, 0x4b, 0x6c,
		0xa8, 0xb1, 0xa1, 0xc6, 0x86, 0xda, 0x1a, 0xa5, 0x26, 0xec, 0x7d, 0xe0, 0x1d, 0x78, 0x07, 0xde,
		0x81, 0x77, 0xe0, 0x1d, 0x78, 0x07, 0xde, 0x81, 0x77, 0x96, 0xf0, 0x0e, 0xf6, 0x3e, 0x10, 0x0f,
		0xc4, 0x83, 0xbd, 0xcf, 0x7c, 0x12, 0x1c, 0x21, 0x4a, 0x33, 0xb7, 0x72, 0x84, 0x28, 0x37, 0x98,
		0xc3, 0x11, 0x22, 0x38, 0x67, 0x69, 0x25, 0x63, 0xef, 0x03, 0xdd, 0x40, 0x37, 0xe8, 0x39, 0xe8,
		0x39, 0xe8, 0x39, 0xe8, 0x39, 0xe8, 0x39, 0xd8, 0xfb, 0x24, 0x80, 0x1d, 0x2e, 0x84, 0x41, 0x3c,
		0x10, 0x8f, 0x64, 0x9f, 0xe1, 0x42, 0x18, 0x6a, 0x0e, 0x6a, 0x0e, 0x6a, 0x0e, 0x94, 0x93, 0x01,
		0xe5, 0x60, 0xef, 0x03, 0xdb, 0xc0, 0x36, 0xa8, 0x39, 0xa8, 0x39, 0xa8, 0x39, 0xa8, 0x39, 0xa8,
		0x39, 0xd8, 0xfb, 0xbc, 0x0d, 0x3b, 0xa8, 0x39, 0x10, 0x0f, 0xc4, 0x83, 0x9a, 0x83, 0x9a, 0x83,
		0x9a, 0x83, 0x9a, 0x03, 0xe5, 0x64, 0x43, 0x39, 0x99, 0x5e, 0x5f, 0x17, 0x7f, 0xc5, 0xa1, 0x63,
		0x0f, 0xfc, 0x28, 0x76, 0x6e, 0xba, 0x92, 0x6e, 0x1a, 0xa1, 0xe8, 0x88, 0x50, 0xf8, 0xae, 0xfc,
		0x98, 0xa7, 0x61, 0x3a, 0xa9, 0x57, 0xad, 0x46, 0xfd, 0xc4, 0x3e, 0xb2, 0x8f, 0xce, 0xea, 0x57,
		0xf6, 0x76, 0xf9, 0x5d, 0xd9, 0x6a, 0x0e, 0x8b, 0x64, 0x1d, 0xe4, 0x0c, 0x4a, 0x66, 0xb5, 0x95,
		0x67, 0x2e, 0x79, 0xa5, 0x3a, 0x57, 0x4d, 0x2a, 0xdf, 0x65, 0x1b, 0x99, 0x66, 0x1b, 0x62, 0x69,
		0x31, 0x4c, 0xb1, 0x34, 0x9b, 0x62, 0x9d, 0x4d, 0x33, 0x55, 0x1b, 0xe6, 0xe9, 0x72, 0x94, 0xa5,
		0xfc, 0xb8, 0xd5, 0x04, 0x13, 0x07, 0xb1, 0xbf, 0xec, 0xfe, 0x9d, 0x13, 0x09, 0x65, 0xb7, 0x9a,
		0xe7, 0xe9, 0xe1, 0x56, 0x93, 0xf1, 0xb0, 0x8a, 0x5b, 0x8d, 0xec, 0xe0, 0x85, 0x5b, 0x4d, 0x3e,
		0xd4, 0x92, 0x51, 0xff, 0x40, 0x31, 0x51, 0x89, 0x2e, 0xf6, 0x89, 0x54, 0x35, 0x13, 0xf6, 0x89,
		0x56, 0xa3, 0x98, 0xb0, 0x4f, 0xc4, 0x3e, 0x11, 0xfb, 0x44, 0x6b, 0x54, 0x50, 0x70, 0xad, 0x81,
		0x7b, 0xe0, 0x1e, 0xb8, 0x07, 0xee, 0x81, 0x7b, 0xe0, 0x1e, 0xb8, 0x07, 0xee, 0x79, 0x85, 0x7b,
		0x70, 0xaf, 0xc9, 0x84, 0x7c, 0xa0, 0x1e, 0x59, 0xea, 0xc1, 0xbd, 0x06, 0xf7, 0x1a, 0xa3, 0xb8,
		0x87, 0x13, 0x32, 0xb9, 0xc1, 0x1c, 0x4e, 0xc8, 0xc0, 0x39, 0x4b, 0x2b, 0x19, 0xf7, 0x1a, 0x74,
		0x1d, 0x74, 0x1d, 0x74, 0x1d, 0x74, 0x1d, 0x74, 0x1d, 0x74, 0x1d, 0x74, 0x9d, 0x0d, 0xe0, 0x1d,
		0x5c, 0x6c, 0xd0, 0x75, 0xd0, 0x75, 0xb8, 0xf7, 0x84, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa,
		0x53, 0x44, 0xca, 0xc1, 0xc5, 0x06, 0x55, 0x07, 0x55, 0x07, 0x55, 0x07, 0x55, 0x07, 0x55, 0x07,
		0x55, 0x07, 0x55, 0xa7, 0xf8, 0xbc, 0x83, 0x9b, 0x0d, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa,
		0x0e, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa, 0x4e, 0xde, 0x29, 0x07, 0x37, 0x9b, 0x24, 0xd3, 0x09, 0x6e,
		0x36, 0xb8, 0xd9, 0x48, 0x45, 0x66, 0x21, 0xdc, 0x6c, 0xd4, 0x0c, 0x55, 0xac, 0x6c, 0xdc, 0x6c,
		0x82, 0xf0, 0xa3, 0xe7, 0x44, 0xbf, 0x5d, 0x8c, 0x72, 0x94, 0x43, 0x33, 0x1b, 0x4f, 0x9f, 0x8f,
		0x8d, 0x87, 0x85, 0x4d, 0xd6, 0x63, 0x29, 0x16, 0x36, 0xb2, 0x23, 0x16, 0x16, 0x36, 0x6c, 0x0e,
		0x99, 0x2f, 0x93, 0xb0, 0x39, 0xc4, 0xe6, 0x90, 0x41, 0x32, 0x09, 0x9b, 0x43, 0x6c, 0x0e, 0xb1,
		0x39, 0xb4, 0x46, 0xd9, 0x04, 0x0b, 0x1b, 0xb8, 0x07, 0xee, 0x81, 0x7b, 0xe0, 0x1e, 0xb8, 0x07,
		0xee, 0x81, 0x7b, 0xe0, 0x9e, 0x57, 0xb8, 0x07, 0x0b, 0x9b, 0x4c, 0xc8, 0x07, 0xea, 0x91, 0xa5,
		0x1e, 0x2c, 0x6c, 0xb0, 0xb0, 0x31, 0x8a, 0x7b, 0x38, 0x16, 0x93, 0x1b, 0xcc, 0xe1, 0x58, 0x0c,
		0x9c, 0xb3, 0xb4, 0x92, 0xb1, 0xb0, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7,
		0x41, 0xd7, 0x41, 0xd7, 0xd9, 0x00, 0xde, 0xc1, 0xc2, 0x06, 0x5d, 0x07, 0x5d, 0x87, 0xcb, 0x4e,
		0xa8, 0x3a, 0xa8, 0x3a, 0xa8, 0x3a, 0xa8, 0x3a, 0x45, 0xa4, 0x1c, 0x2c, 0x6c, 0x50, 0x75, 0x50,
		0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x8a, 0xcf, 0x3b, 0x58, 0xd8,
		0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xe4, 0x9d,
		0x72, 0xb0, 0xb0, 0x49, 0x32, 0x9d, 0x60, 0x61, 0x83, 0x85, 0x8d, 0x54, 0x64, 0x16, 0xcb, 0xc2,
		0xc6, 0xcb, 0x95, 0x7b, 0x8d, 0x97, 0x47, 0xe7, 0x9a, 0x3f, 0xf5, 0x39, 0xd7, 0xfc, 0x89, 0x73,
		0x4d, 0xd6, 0x43, 0x28, 0xce, 0x35, 0xb2, 0x03, 0x15, 0xce, 0x35, 0xec, 0x09, 0x99, 0xaf, 0x8e,
		0xb0, 0x27, 0xc4, 0x9e, 0x90, 0x41, 0xea, 0x08, 0x7b, 0x42, 0xec, 0x09, 0xb1, 0x27, 0xb4, 0x46,
		0xb5, 0x04, 0xe7, 0x1a, 0xb8, 0x07, 0xee, 0x81, 0x7b, 0xe0, 0x1e, 0xb8, 0x07, 0xee, 0x81, 0x7b,
		0xe0, 0x9e, 0x57, 0xb8, 0x07, 0xe7, 0x9a, 0x4c, 0xc8, 0x07, 0xea, 0x91, 0xa5, 0x1e, 0x9c, 0x6b,
		0x70, 0xae, 0x31, 0x8a, 0x7b, 0x38, 0x0d, 0x93, 0x1b, 0xcc, 0xe1, 0x34, 0x0c, 0x9c, 0xb3, 0xb4,
		0x92, 0x71, 0xae, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41,
		0xd7, 0xd9, 0x00, 0xde, 0xc1, 0xb9, 0x06, 0x5d, 0x07, 0x5d, 0x87, 0x3b, 0x4e, 0xa8, 0x3a, 0xa8,
		0x3a, 0xa8, 0x3a, 0xa8, 0x3a, 0x45, 0xa4, 0x1c, 0x9c, 0x6b, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75,
		0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x8a, 0xcf, 0x3b, 0x38, 0xd7, 0xa0, 0xea, 0xa0,
		0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xe4, 0x9d, 0x72, 0x70, 0xae,
		0x49, 0x32, 0x9d, 0xe0, 0x5c, 0x83, 0x73, 0x8d, 0x54, 0x64, 0x16, 0xcb, 0xb9, 0xe6, 0xcf, 0x5c,
		0x39, 0xd7, 0xfc, 0x99, 0x43, 0xe7, 0x9a, 0x07, 0xbb, 0x7f, 0xe7, 0x44, 0x42, 0x9b, 0x7d, 0xcd,
		0x63, 0x7a, 0x78, 0xd8, 0x64, 0x3c, 0x98, 0xe2, 0x61, 0x23, 0x3b, 0x64, 0xe1, 0x61, 0xc3, 0xee,
		0x90, 0xf9, 0x3a, 0x09, 0xbb, 0x43, 0xec, 0x0e, 0x19, 0xa4, 0x93, 0xb0, 0x3b, 0xc4, 0xee, 0x10,
		0xbb, 0x43, 0x6b, 0xd4, 0x4d, 0xf0, 0xb0, 0x81, 0x7b, 0xe0, 0x1e, 0xb8, 0x07, 0xee, 0x81, 0x7b,
		0xe0, 0x1e, 0xb8, 0x07, 0xee, 0x79, 0x85, 0x7b, 0xf0, 0xb0, 0xc9, 0x84, 0x7c, 0xa0, 0x1e, 0x59,
		0xea, 0xc1, 0xc3, 0x06, 0x0f, 0x1b, 0xa3, 0xb8, 0x87, 0x73, 0x31, 0xb9, 0xc1, 0x1c, 0xce, 0xc5,
		0xc0, 0x39, 0x4b, 0x2b, 0x19, 0x0f, 0x1b, 0x74, 0x1d, 0x74, 0x1d, 0x74, 0x1d, 0x74, 0x1d, 0x74,
		0x1d, 0x74, 0x1d, 0x74, 0x9d, 0x0d, 0xe0, 0x1d, 0x3c, 0x6c, 0xd0, 0x75, 0xd0, 0x75, 0xb8, 0xed,
		0x84, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x53, 0x44, 0xca, 0xc1, 0xc3, 0x06, 0x55, 0x07,
		0x55, 0x07, 0x55, 0x07, 0x55, 0x07, 0x55, 0x07, 0x55, 0x07, 0x55, 0xa7, 0xf8, 0xbc, 0x83, 0x87,
		0x0d, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa, 0x0e, 0xaa, 0x4e, 0xde,
		0x29, 0x07, 0x0f, 0x9b, 0x24, 0xd3, 0x09, 0x1e, 0x36, 0x78, 0xd8, 0x48, 0x45, 0x66, 0xa1, 0x3c,
		0x6c, 0xe4, 0x0c, 0x55, 0xac, 0x2c, 0x8d, 0x6c, 0x7e, 0xbf, 0x18, 0xe5, 0x28, 0x87, 0x66, 0x36,
		0x9e, 0x3e, 0x1f, 0x1b, 0x0f, 0x0b, 0x9b, 0xac, 0xc7, 0x52, 0x2c, 0x6c, 0x64, 0x47, 0x2c, 0x2c,
		0x6c, 0xd8, 0x1c, 0x32, 0x5f, 0x26, 0x61, 0x73, 0x88, 0xcd, 0x21, 0x83, 0x64, 0x12, 0x36, 0x87,
		0xd8, 0x1c, 0x62, 0x73, 0x68, 0x8d, 0xb2, 0x09, 0x16, 0x36, 0x70, 0x0f, 0xdc, 0x03, 0xf7, 0xc0,
		0x3d, 0x70, 0x0f, 0xdc, 0x03, 0xf7, 0xc0, 0x3d, 0xaf, 0x70, 0x0f, 0x16, 0x36, 0x99, 0x90, 0x0f,
		0xd4, 0x23, 0x4b, 0x3d, 0x58, 0xd8, 0x60, 0x61, 0x63, 0x14, 0xf7, 0x70, 0x2c, 0x26, 0x37, 0x98,
		0xc3, 0xb1, 0x18, 0x38, 0x67, 0x69, 0x25, 0x63, 0x61, 0x83, 0xae, 0x83, 0xae, 0x83, 0xae, 0x83,
		0xae, 0x83, 0xae, 0x83, 0xae, 0x83, 0xae, 0xb3, 0x01, 0xbc, 0x83, 0x85, 0x0d, 0xba, 0x0e, 0xba,
		0x0e, 0x97, 0x9d, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x8a, 0x48, 0x39, 0x58, 0xd8,
		0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0x14, 0x9f,
		0x77, 0xb0, 0xb0, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41,
		0xd5, 0xc9, 0x3b, 0xe5, 0x60, 0x61, 0x93, 0x64, 0x3a, 0xc1, 0xc2, 0x06, 0x0b, 0x1b, 0xa9, 0xc8,
		0x2c, 0x96, 0x85, 0x8d, 0x97, 0x2b, 0xf7, 0x1a, 0x2f, 0x8f, 0xce, 0x35, 0x7f, 0xea, 0x73, 0xae,
		0xf9, 0x13, 0xe7, 0x9a, 0xac, 0x87, 0x50, 0x9c, 0x6b, 0x64, 0x07, 0x2a, 0x9c, 0x6b, 0xd8, 0x13,
		0x32, 0x5f, 0x1d, 0x61, 0x4f, 0x88, 0x3d, 0x21, 0x83, 0xd4, 0x11, 0xf6, 0x84, 0xd8, 0x13, 0x62,
		0x4f, 0x68, 0x8d, 0x6a, 0x09, 0xce, 0x35, 0x70, 0x0f, 0xdc, 0x03, 0xf7, 0xc0, 0x3d, 0x70, 0x0f,
		0xdc, 0x03, 0xf7, 0xc0, 0x3d, 0xaf, 0x70, 0x0f, 0xce, 0x35, 0x99, 0x90, 0x0f, 0xd4, 0x23, 0x4b,
		0x3d, 0x38, 0xd7, 0xe0, 0x5c, 0x63, 0x14, 0xf7, 0x70, 0x1a, 0x26, 0x37, 0x98, 0xc3, 0x69, 0x18,
		0x38, 0x67, 0x69, 0x25, 0xe3, 0x5c, 0x83, 0xae, 0x83, 0xae, 0x83, 0xae, 0x83, 0xae, 0x83, 0xae,
		0x83, 0xae, 0x83, 0xae, 0xb3, 0x01, 0xbc, 0x83, 0x73, 0x0d, 0xba, 0x0e, 0xba, 0x0e, 0x77, 0x9c,
		0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x8a, 0x48, 0x39, 0x38, 0xd7, 0xa0, 0xea, 0xa0,
		0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0x14, 0x9f, 0x77, 0x70, 0xae,
		0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0xc9, 0x3b,
		0xe5, 0xe0, 0x5c, 0x93, 0x64, 0x3a, 0xc1, 0xb9, 0x06, 0xe7, 0x1a, 0xa9, 0xc8, 0x2c, 0x96, 0x73,
		0xcd, 0x9f, 0xb9, 0x72, 0xae, 0xf9, 0x33, 0x0f, 0xce, 0x35, 0x41, 0x5f, 0x84, 0xa3, 0xf6, 0x72,
		0xba, 0x76, 0x2f, 0x68, 0x0b, 0x79, 0xe3, 0x9a, 0x85, 0x94, 0xe4, 0x7c, 0x6b, 0xb6, 0xf1, 0xad,
		0x59, 0xf9, 0x6a, 0x6e, 0xe3, 0x7c, 0x6b, 0xa4, 0x17, 0x6a, 0xd3, 0x96, 0x1f, 0x78, 0x7e, 0x5c,
		0xde, 0x97, 0x69, 0xf4, 0x49, 0x3f, 0xdf, 0x97, 0xf8, 0xa8, 0xda, 0xda, 0x49, 0x81, 0x23, 0x74,
		0xac, 0x95, 0x74, 0xad, 0x91, 0xb4, 0xd3, 0xb7, 0x3e, 0xea, 0x56, 0x58, 0x0b, 0x69, 0x59, 0x03,
		0x4d, 0xab, 0x78, 0x7f, 0x6f, 0x6f, 0x67, 0xaf, 0xb8, 0xd5, 0x5c, 0x08, 0x54, 0x2a, 0xcc, 0xe2,
		0xe2, 0x2e, 0x8e, 0xfb, 0xd1, 0x87, 0xad, 0xad, 0x5b, 0x2f, 0xbe, 0x1b, 0xdc, 0xbc, 0x73, 0x83,
		0xde, 0x1c, 0xb7, 0x6d, 0xf5, 0x07, 0x37, 0x5d, 0xcf, 0xdd, 0xba, 0xe9, 0x06, 0x37, 0x5b, 0x3d,
		0x27, 0x8a, 0x45, 0xb8, 0xd5, 0x0e, 0xdc, 0xad, 0xe1, 0xac, 0xe0, 0x0d, 0x51, 0xa1, 0x2d, 0xee,
		0x3d, 0x57, 0xd8, 0xfd, 0x70, 0xc8, 0x0f, 0xb1, 0x27, 0x22, 0xfb, 0x76, 0xe0, 0xb5, 0xc5, 0xbb,
		0x5e, 0x9b, 0xa5, 0x89, 0xc4, 0xa4, 0x9b, 0x59, 0x63, 0x14, 0x2d, 0x5a, 0xb3, 0xa1, 0xe9, 0xc8,
		0x0f, 0x15, 0x08, 0x7a, 0xf8, 0x69, 0xdc, 0x1e, 0xa1, 0x66, 0xdc, 0x1e, 0x97, 0xf4, 0x1a, 0xdc,
		0x1e, 0xd9, 0x4d, 0x54, 0x8d, 0x2c, 0xce, 0x4f, 0x71, 0x7e, 0x4a, 0x1b, 0x00, 0x6b, 0x5d, 0x1d,
		0x2f, 0x2c, 0xe1, 0x38, 0x3f, 0xc5, 0xf9, 0x29, 0xce, 0x4f, 0xa9, 0x62, 0xbe, 0xfc, 0xf7, 0xe1,
		0xf2, 0x08, 0xef, 0xc0, 0x3b, 0xf0, 0x0e, 0xbc, 0x03, 0xef, 0xc0, 0x3b, 0xf0, 0x0e, 0xbc, 0xb3,
		0x8c, 0x77, 0x70, 0x77, 0x84, 0x78, 0x20, 0x1e, 0xdc, 0x1d, 0xe7, 0x93, 0xe0, 0xc4, 0x78, 0x9a,
		0xb9, 0x95, 0x13, 0xe3, 0xb9, 0xc1, 0x1c, 0x4e, 0x8c, 0xc3, 0x39, 0x4b, 0x2b, 0x19, 0x77, 0x47,
		0xe8, 0x06, 0xba, 0x41, 0xcf, 0x41, 0xcf, 0x41, 0xcf, 0x41, 0xcf, 0x41, 0xcf, 0xc1, 0xd5, 0x31,
		0x01, 0xec, 0x70, 0xff, 0x1f, 0xe2, 0x81, 0x78, 0x24, 0xfb, 0x0c, 0xf7, 0xff, 0x51, 0x73, 0x50,
		0x73, 0x50, 0x73, 0xa0, 0x9c, 0x0c, 0x28, 0x07, 0x57, 0x47, 0xd8, 0x06, 0xb6, 0x41, 0xcd, 0x41,
		0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0xc1, 0xcd, 0xf1, 0x6d, 0xd8, 0x41, 0xcd, 0x81, 0x78,
		0x20, 0x1e, 0xd4, 0x1c, 0xd4, 0x1c, 0xd4, 0x1c, 0xd4, 0x1c, 0x28, 0x27, 0x1b, 0xca, 0xc1, 0x70,
		0x25, 0xc9, 0x74, 0x82, 0x9b, 0x23, 0x6e, 0x8e, 0x52, 0x91, 0x69, 0xb6, 0x9b, 0xa3, 0x84, 0x3d,
		0x8a, 0xa5, 0xd9, 0xc0, 0xb1, 0x31, 0xcc, 0x42, 0x1e, 0x7c, 0x66, 0x06, 0x71, 0x7f, 0x10, 0xdb,
		0xfd, 0xe0, 0xab, 0x50, 0xf1, 0x9b, 0x99, 0x4f, 0x65, 0x33, 0x7c, 0x67, 0xe2, 0xd0, 0xf1, 0x23,
		0x57, 0x78, 0xf7, 0x22, 0xc4, 0x7a, 0x66, 0xd9, 0x02, 0x6d, 0xae, 0x7e, 0x70, 0x9f, 0xc1, 0x7d,
		0x06, 0xf5, 0x03, 0xf5, 0x43, 0xb5, 0xcf, 0xb0, 0xdf, 0x63, 0x9e, 0xf2, 0xc1, 0x7e, 0x0f, 0xfb,
		0x3d, 0xec, 0xf7, 0xac, 0x51, 0x09, 0xc1, 0x7d, 0x06, 0xde, 0x81, 0x77, 0xe0, 0x1d, 0x78, 0x07,
		0xde, 0x81, 0x77, 0xe0, 0x1d, 0x78, 0x67, 0x09, 0xef, 0xe0, 0x3e, 0x03, 0xf1, 0x40, 0x3c, 0xb8,
		0xcf, 0xcc, 0x27, 0xc1, 0x09, 0x97, 0x34, 0x73, 0x2b, 0x27, 0x5c, 0x72, 0x83, 0x39, 0x9c, 0x70,
		0x81, 0x73, 0x96, 0x56, 0x32, 0xee, 0x33, 0xd0, 0x0d, 0x74, 0x83, 0x9e, 0x83, 0x9e, 0x83, 0x9e,
		0x83, 0x9e, 0x83, 0x9e, 0x83, 0xfb, 0x4c, 0x02, 0xd8, 0xe1, 0xbe, 0x12, 0xc4, 0x03, 0xf1, 0x48,
		0xf6, 0x19, 0xee, 0x2b, 0xa1, 0xe6, 0xa0, 0xe6, 0xa0, 0xe6, 0x40, 0x39, 0x19, 0x50, 0x0e, 0xee,
		0x33, 0xb0, 0x0d, 0x6c, 0x83, 0x9a, 0x83, 0x9a, 0x83, 0x9a, 0x83, 0x9a, 0x83, 0x9a, 0x83, 0xfb,
		0xcc, 0xdb, 0xb0, 0x83, 0x9a, 0x03, 0xf1, 0x40, 0x3c, 0xa8, 0x39, 0xa8, 0x39, 0xa8, 0x39, 0xa8,
		0x39, 0x50, 0x4e, 0x36, 0x94, 0xb3, 0x49, 0x5e, 0x1a, 0xf2, 0xd6, 0x0f, 0x96, 0x6e, 0x4f, 0x8d,
		0x51, 0x56, 0x2e, 0x46, 0x39, 0xc9, 0x81, 0xb5, 0x46, 0x3f, 0xe8, 0x3a, 0xa1, 0xf7, 0x9f, 0x51,
		0x4b, 0xd9, 0x6d, 0xd1, 0x17, 0x7e, 0x5b, 0xf8, 0xb1, 0xdd, 0x0d, 0xa2, 0x48, 0xde, 0x69, 0xe3,
		0xb5, 0x44, 0x37, 0xc3, 0x78, 0x23, 0xe8, 0xc7, 0x76, 0x2c, 0xc2, 0x1e, 0xae, 0x1b, 0x4b, 0xc0,
		0x74, 0x5a, 0x39, 0x58, 0x6e, 0x60, 0xb9, 0xc1, 0x92, 0x8f, 0x25, 0x9f, 0x6a, 0x9f, 0x41, 0xe4,
		0x36, 0x6f, 0xb9, 0x87, 0xc8, 0x8d, 0xc8, 0x8d, 0xc8, 0xbd, 0xc6, 0xe5, 0x1f, 0x96, 0x1b, 0xf0,
		0x0e, 0xbc, 0x03, 0xef, 0xc0, 0x3b, 0xf0, 0x0e, 0xbc, 0x03, 0xef, 0xc0, 0x3b, 0x4b, 0x78, 0x07,
		0xcb, 0x0d, 0x88, 0x07, 0xe2, 0xc1, 0x72, 0x63, 0x3e, 0x09, 0xb6, 0xf5, 0xd3, 0xcc, 0xad, 0x6c,
		0xeb, 0xe7, 0x06, 0x73, 0xd8, 0xd6, 0x87, 0x73, 0x96, 0x56, 0x32, 0x96, 0x1b, 0xd0, 0x0d, 0x74,
		0x83, 0x9e, 0x83, 0x9e, 0x83, 0x9e, 0x83, 0x9e, 0x83, 0x9e, 0x83, 0xe5, 0x46, 0x02, 0xd8, 0xe1,
		0x92, 0x06, 0xc4, 0x03, 0xf1, 0x48, 0xf6, 0x19, 0x2e, 0x69, 0xa0, 0xe6, 0xa0, 0xe6, 0xa0, 0xe6,
		0x40, 0x39, 0x19, 0x50, 0x0e, 0x96, 0x1b, 0xb0, 0x0d, 0x6c, 0x83, 0x9a, 0x83, 0x9a, 0x83, 0x9a,
		0x83, 0x9a, 0x83, 0x9a, 0x83, 0xe5, 0xc6, 0xdb, 0xb0, 0x83, 0x9a, 0x03, 0xf1, 0x40, 0x3c, 0xa8,
		0x39, 0xa8, 0x39, 0xa8, 0x39, 0xa8, 0x39, 0x50, 0x4e, 0x36, 0x94, 0xb3, 0x41, 0x96, 0x1b, 0xfa,
		0x3c, 0x20, 0x2c, 0xcd, 0x0e, 0x1c, 0x17, 0x73, 0x39, 0x3b, 0x7e, 0xcc, 0xd8, 0xe9, 0x30, 0x5f,
		0x79, 0xf3, 0xe3, 0xe8, 0x05, 0x6d, 0x61, 0xb7, 0xbd, 0xa8, 0x2f, 0xc2, 0x48, 0xa6, 0x59, 0x97,
		0x1b, 0x72, 0x3c, 0x4f, 0x15, 0x47, 0x8e, 0x8c, 0x79, 0x16, 0x47, 0x0e, 0xd9, 0x21, 0x0d, 0x47,
		0x8e, 0x7c, 0xac, 0x08, 0x47, 0xfd, 0x83, 0x55, 0xa1, 0x4a, 0x74, 0xa1, 0x85, 0xab, 0xae, 0x0b,
		0xd1, 0xc2, 0x57, 0xb3, 0x2a, 0x44, 0x0b, 0x47, 0x0b, 0x47, 0x0b, 0x5f, 0xe3, 0x2a, 0x11, 0x67,
		0x0e, 0xb8, 0x07, 0xee, 0x81, 0x7b, 0xe0, 0x1e, 0xb8, 0x07, 0xee, 0x81, 0x7b, 0xe0, 0x9e, 0x57,
		0xb8, 0x07, 0x87, 0x8e, 0x4c, 0xc8, 0x07, 0xea, 0x91, 0xa5, 0x1e, 0x1c, 0x3a, 0x70, 0xe8, 0x30,
		0x8a, 0x7b, 0x38, 0x05, 0x90, 0x1b, 0xcc, 0xe1, 0x14, 0x00, 0x9c, 0xb3, 0xb4, 0x92, 0x71, 0xe8,
		0x40, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0x41, 0xd7, 0xd9, 0x00,
		0xde, 0xc1, 0xa9, 0x03, 0x5d, 0x07, 0x5d, 0x87, 0xbb, 0x1d, 0xa8, 0x3a, 0xa8, 0x3a, 0xa8, 0x3a,
		0xa8, 0x3a, 0x45, 0xa4, 0x1c, 0x9c, 0x3a, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50,
		0x75, 0x50, 0x75, 0x50, 0x75, 0x8a, 0xcf, 0x3b, 0x38, 0x76, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea,
		0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xe4, 0x9d, 0x72, 0x36, 0xd5, 0xb1, 0x43, 0xcd,
		0x24, 0xc2, 0xca, 0xd0, 0xb2, 0xe3, 0x2c, 0x68, 0x8b, 0xe3, 0x59, 0xc6, 0x72, 0xe1, 0xd9, 0x11,
		0xc5, 0x76, 0x47, 0xb8, 0xf6, 0x8d, 0x08, 0x55, 0x3c, 0x3a, 0xe6, 0x52, 0xc1, 0x93, 0x23, 0x63,
		0x62, 0xc5, 0x93, 0x43, 0x76, 0xd0, 0xc2, 0x93, 0x03, 0xb5, 0xdb, 0xfc, 0x75, 0x1f, 0x6a, 0x77,
		0x0e, 0xd5, 0xee, 0xf2, 0x21, 0x0b, 0xbf, 0xc4, 0x92, 0x6a, 0x66, 0x72, 0x77, 0xf9, 0x10, 0xbd,
		0x5b, 0xb5, 0x71, 0x0e, 0x4c, 0x6a, 0x1c, 0x96, 0x82, 0x19, 0xf5, 0x3e, 0x6c, 0x39, 0x40, 0x1f,
		0xd0, 0x07, 0xf4, 0x01, 0x7d, 0x40, 0x1f, 0xd0, 0x07, 0xf4, 0xd9, 0x2c, 0xf4, 0xc1, 0x99, 0x23,
		0x13, 0xf8, 0x01, 0x7c, 0x64, 0xc1, 0x07, 0x67, 0x0e, 0x9c, 0x39, 0x8c, 0x22, 0x1f, 0x76, 0xfb,
		0x73, 0xc3, 0x39, 0xec, 0xf6, 0xc3, 0x39, 0x4b, 0x2b, 0x19, 0x67, 0x0e, 0xa4, 0x1d, 0xa4, 0x1d,
		0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x9d, 0xcd, 0x40, 0x1e, 0xcc, 0x39, 0x90,
		0x76, 0x90, 0x76, 0xb8, 0xc6, 0x81, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x53, 0x44, 0xca,
		0xc1, 0x9c, 0x03, 0x61, 0x07, 0x61, 0x07, 0x61, 0x07, 0x61, 0x07, 0x61, 0x07, 0x61, 0x07, 0x61,
		0x67, 0x23, 0x90, 0x07, 0x7f, 0x0e, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x1d,
		0x84, 0x1d, 0x84, 0x9d, 0xbc, 0x53, 0xce, 0x46, 0xf9, 0x73, 0x48, 0x1b, 0x44, 0x58, 0xda, 0xfd,
		0x38, 0xa2, 0xf8, 0x44, 0xb8, 0x1f, 0x45, 0x98, 0x0b, 0xff, 0x8d, 0x50, 0x68, 0xb0, 0xdf, 0x98,
		0x4b, 0x04, 0xf7, 0x8d, 0x8c, 0x79, 0x14, 0xf7, 0x0d, 0xd9, 0x21, 0x09, 0xf7, 0x0d, 0xe4, 0x6c,
		0xf3, 0x57, 0x75, 0xc8, 0xd9, 0xc8, 0xd9, 0x26, 0x2d, 0xeb, 0x90, 0xb3, 0x91, 0xb3, 0x91, 0xb3,
		0xd7, 0xba, 0xd0, 0xc3, 0x7d, 0x03, 0xf4, 0x01, 0x7d, 0x40, 0x1f, 0xd0, 0x07, 0xf4, 0x01, 0x7d,
		0x40, 0x1f, 0xd0, 0xe7, 0x75, 0xf4, 0xc1, 0x7d, 0x23, 0x13, 0xf8, 0x01, 0x7c, 0x64, 0xc1, 0x07,
		0xf7, 0x0d, 0xdc, 0x37, 0x8c, 0x22, 0x1f, 0xf6, 0xf2, 0x73, 0xc3, 0x39, 0xec, 0xe5, 0xc3, 0x39,
		0x4b, 0x2b, 0x19, 0xf7, 0x0d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4,
		0x1d, 0xa4, 0x9d, 0xcd, 0x40, 0x1e, 0xdc, 0x37, 0x90, 0x76, 0x90, 0x76, 0xb8, 0xa4, 0x81, 0xb0,
		0x83, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x53, 0x44, 0xca, 0xc1, 0x7d, 0x03, 0x61, 0x07, 0x61, 0x07,
		0x61, 0x07, 0x61, 0x07, 0x61, 0x07, 0x61, 0x07, 0x61, 0x67, 0x23, 0x90, 0x07, 0xf7, 0x0d, 0x84,
		0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x9d, 0xbc, 0x53, 0xce,
		0x26, 0xb9, 0x6f, 0x48, 0xfb, 0x43, 0x58, 0xba, 0xcd, 0x37, 0x42, 0x91, 0x1f, 0xef, 0x8d, 0x3f,
		0xed, 0xfb, 0x49, 0xc4, 0x4b, 0xfa, 0x6e, 0x3c, 0x26, 0x80, 0xe7, 0x46, 0xc6, 0x14, 0x8a, 0xe7,
		0x86, 0xec, 0x40, 0x84, 0xe7, 0x06, 0xeb, 0x38, 0xd6, 0x71, 0x06, 0xae, 0xe3, 0xf2, 0x2b, 0x5e,
		0x57, 0x58, 0xc3, 0x25, 0x96, 0x47, 0x33, 0xd3, 0xae, 0x2b, 0x48, 0xd7, 0xaa, 0x6d, 0x73, 0x60,
		0x50, 0xdb, 0xb0, 0xa6, 0xcb, 0xa8, 0xf3, 0x61, 0xb4, 0x01, 0xef, 0xc0, 0x3b, 0xf0, 0x0e, 0xbc,
		0x03, 0xef, 0xc0, 0x3b, 0xf0, 0xce, 0x06, 0xf0, 0x0e, 0xee, 0x1a, 0x10, 0x0f, 0xc4, 0x83, 0xbb,
		0xc6, 0x7c, 0x12, 0xec, 0xd5, 0xa7, 0x99, 0x5b, 0xd9, 0xab, 0xcf, 0x0d, 0xe6, 0xb0, 0x57, 0x0f,
		0xe7, 0x2c, 0xad, 0x64, 0xdc, 0x35, 0xa0, 0x1b, 0xe8, 0x06, 0x3d, 0x07, 0x3d, 0x07, 0x3d, 0x07,
		0x3d, 0x07, 0x3d, 0x07, 0x4b, 0x8d, 0x04, 0xb0, 0xc3, 0xcd, 0x0b, 0x88, 0x07, 0xe2, 0x91, 0xec,
		0x33, 0xdc, 0xbc, 0x40, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x81, 0x72, 0x32, 0xa0, 0x1c, 0x2c, 0x35,
		0x60, 0x1b, 0xd8, 0x06, 0x35, 0x07, 0x35, 0x07, 0x35, 0x07, 0x35, 0x07, 0x35, 0x07, 0x1f, 0x8d,
		0xb7, 0x61, 0x07, 0x35, 0x07, 0xe2, 0x81, 0x78, 0x50, 0x73, 0x50, 0x73, 0x50, 0x73, 0x50, 0x73,
		0xa0, 0x9c, 0x6c, 0x28, 0x67, 0x83, 0x7c, 0x34, 0xe4, 0xfc, 0x1e, 0x2c, 0xcd, 0x1e, 0x1a, 0xff,
		0x3d, 0x8e, 0xaf, 0x1c, 0x18, 0x68, 0x8c, 0x27, 0x23, 0x3b, 0x08, 0xdb, 0x22, 0xb4, 0xfb, 0x41,
		0xd7, 0x09, 0xbd, 0xff, 0x8c, 0x1a, 0xcb, 0xee, 0x05, 0x6d, 0x61, 0xb7, 0xbd, 0xa8, 0x2f, 0xc2,
		0x48, 0xa6, 0xf1, 0x66, 0x87, 0x64, 0x13, 0x7f, 0x05, 0x26, 0x1c, 0x19, 0x23, 0x2c, 0x26, 0x1c,
		0xb2, 0xa3, 0x18, 0x26, 0x1c, 0x38, 0x49, 0x9b, 0xbf, 0x10, 0xc4, 0x49, 0x1a, 0xf9, 0xdb, 0xa0,
		0x85, 0x20, 0xf2, 0x37, 0xf2, 0x37, 0xf2, 0xf7, 0x1a, 0x17, 0x86, 0x98, 0x71, 0xc0, 0x3d, 0x70,
		0x0f, 0xdc, 0x03, 0xf7, 0xc0, 0x3d, 0x70, 0x0f, 0xdc, 0x03, 0xf7, 0xbc, 0xc2, 0x3d, 0x98, 0x72,
		0x64, 0x42, 0x3e, 0x50, 0x8f, 0x2c, 0xf5, 0x60, 0xca, 0x81, 0x29, 0x87, 0x51, 0xdc, 0xc3, 0xc6,
		0x7f, 0x6e, 0x30, 0x87, 0x8d, 0x7f, 0x38, 0x67, 0x69, 0x25, 0x63, 0xca, 0x81, 0xae, 0x83, 0xae,
		0x83, 0xae, 0x83, 0xae, 0x83, 0xae, 0x83, 0xae, 0x83, 0xae, 0xb3, 0x01, 0xbc, 0x83, 0x39, 0x07,
		0xba, 0x0e, 0xba, 0x0e, 0xd7, 0x39, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x50, 0x75, 0x8a, 0x48,
		0x39, 0x98, 0x73, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0, 0xea, 0xa0,
		0xea, 0x14, 0x9f, 0x77, 0x30, 0xe9, 0x40, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5,
		0x41, 0xd5, 0x41, 0xd5, 0xc9, 0x3b, 0xe5, 0x6c, 0x90, 0x49, 0x47, 0x56, 0x8e, 0x11, 0x96, 0x66,
		0x1b, 0x8f, 0xab, 0x51, 0x3e, 0x1b, 0xc3, 0x6c, 0x5e, 0xcc, 0xe5, 0xf2, 0x2c, 0x68, 0x8b, 0xe3,
		0x59, 0x1e, 0xf3, 0xe0, 0xf2, 0x11, 0xf4, 0xed, 0x30, 0x70, 0x15, 0x3c, 0x3c, 0x26, 0x09, 0xe0,
		0xd0, 0x91, 0x31, 0xbf, 0xe2, 0xd0, 0x21, 0x3b, 0x84, 0xe1, 0xd0, 0x81, 0xf6, 0x6d, 0xfe, 0x2a,
		0x10, 0xed, 0x3b, 0x87, 0xda, 0x77, 0x99, 0x55, 0x60, 0x62, 0x7d, 0x35, 0x33, 0xed, 0xbb, 0x8c,
		0xf6, 0xad, 0xda, 0x36, 0x07, 0x06, 0xb5, 0x0d, 0xab, 0xc2, 0x8c, 0x3a, 0x1f, 0x0e, 0x1d, 0x70,
		0x0f, 0xdc, 0x03, 0xf7, 0xc0, 0x3d, 0x70, 0x0f, 0xdc, 0x03, 0xf7, 0x6c, 0x10, 0xf7, 0xe0, 0xd0,
		0x91, 0x09, 0xf9, 0x40, 0x3d, 0xb2, 0xd4, 0x83, 0x43, 0x07, 0x0e, 0x1d, 0x46, 0x71, 0x0f, 0xbb,
		0xfe, 0xb9, 0xc1, 0x1c, 0x76, 0xfd, 0xe1, 0x9c, 0xa5, 0x95, 0x8c, 0x43, 0x07, 0xba, 0x0e, 0xba,
		0x0e, 0xba, 0x0e, 0xba, 0x0e, 0xba, 0x0e, 0xba, 0x0e, 0xba, 0xce, 0x06, 0xf0, 0x0e, 0x0e, 0x1d,
		0xe8, 0x3a, 0xe8, 0x3a, 0xdc, 0xe5, 0x40, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x41, 0xd5, 0x29, 0x22,
		0xe5, 0xe0, 0xd0, 0x81, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83, 0xaa, 0x83,
		0xaa, 0x53, 0x7c, 0xde, 0xc1, 0xa1, 0x03, 0x55, 0x07, 0x55, 0x07, 0x55, 0x07, 0x55, 0x07, 0x55,
		0x07, 0x55, 0x07, 0x55, 0x27, 0xef, 0x94, 0x93, 0xe9, 0xf5, 0x76, 0xf1, 0x57, 0x1c, 0x3a, 0xf6,
		0xc0, 0x8f, 0x62, 0xe7, 0xa6, 0x2b, 0x37, 0xb2, 0x97, 0x42, 0xd1, 0x11, 0xa1, 0xf0, 0x5d, 0xf9,
		0x31, 0x4f, 0xc3, 0x74, 0x52, 0xaf, 0x5a, 0x8d, 0xfa, 0x89, 0x7d, 0x64, 0x1f, 0x9d, 0xd5, 0xaf,
		0xec, 0xed, 0xf2, 0xbb, 0xb2, 0xd5, 0x1c, 0x16, 0xc9, 0x3a, 0xc8, 0x19, 0x94, 0xcc, 0x6a, 0x2b,
		0xcf, 0x5c, 0xf2, 0x4a, 0x75, 0xae, 0x9a, 0x54, 0xbe, 0xcb, 0x36, 0x32, 0x0d, 0xf7, 0xb4, 0x91,
		0x72, 0x50, 0xb1, 0x74, 0x3b, 0xd6, 0x04, 0xfd, 0xcb, 0xc0, 0xcd, 0x83, 0x25, 0x4d, 0xec, 0x84,
		0xb7, 0x22, 0xb6, 0x83, 0x41, 0xdc, 0x1f, 0xc4, 0x76, 0x3f, 0xf8, 0x2a, 0x42, 0x79, 0x7b, 0x9a,
		0x65, 0x89, 0xc9, 0x59, 0xd5, 0x6c, 0x63, 0x55, 0xb3, 0xf2, 0x05, 0xdc, 0xc6, 0x59, 0xd5, 0x48,
		0xaf, 0xcd, 0xb4, 0xa8, 0xd0, 0x2a, 0xea, 0xb3, 0x16, 0xdb, 0x5b, 0xc5, 0x75, 0x97, 0x02, 0x83,
		0xe8, 0x58, 0x67, 0x65, 0xa7, 0x2a, 0x6b, 0xf7, 0x14, 0xd6, 0xa6, 0x22, 0x2b, 0x2c, 0xac, 0xb4,
		0x2c, 0xa8, 0xb2, 0x53, 0x8b, 0x33, 0xad, 0x73, 0xb5, 0x75, 0x53, 0x4e, 0x29, 0xec, 0x3b, 0xbd,
		0xbf, 0x99, 0xb0, 0x6b, 0xc9, 0xd2, 0x9c, 0x5e, 0x8a, 0x2b, 0xa5, 0xf1, 0xdc, 0xd3, 0x46, 0x6d,
		0xc9, 0xa6, 0xaf, 0xb7, 0xab, 0xfb, 0xf5, 0xdf, 0x78, 0xa3, 0x21, 0xd2, 0x36, 0x80, 0xae, 0x8a,
		0x4f, 0x50, 0xe5, 0x5a, 0xaa, 0xfa, 0xf5, 0x4a, 0x7e, 0xb9, 0xea, 0x5e, 0xa9, 0xb6, 0x52, 0x3f,
		0x08, 0xdf, 0xb6, 0x59, 0x99, 0xce, 0xe9, 0xa3, 0xdf, 0x7e, 0xa3, 0x11, 0x92, 0x19, 0x2a, 0x26,
		0xa6, 0xd2, 0x34, 0x14, 0x3a, 0x4f, 0x9d, 0x8f, 0x2d, 0x98, 0xa4, 0x71, 0x52, 0x52, 0xa6, 0x34,
		0x55, 0x4a, 0x53, 0xe4, 0x73, 0x6a, 0x9c, 0x16, 0x2e, 0xe3, 0x80, 0x4a, 0x6a, 0x58, 0x58, 0xba,
		0x09, 0x85, 0xf3, 0x47, 0x30, 0x88, 0x47, 0xee, 0xa7, 0xc9, 0x2b, 0xf2, 0xb1, 0xbd, 0x9e, 0x7e,
		0x3c, 0x61, 0x9d, 0xa4, 0x73, 0xee, 0x4c, 0xbd, 0x0c, 0x92, 0x59, 0xfe, 0x3c, 0xe9, 0x80, 0x6f,
		0xc7, 0x8a, 0x8e, 0xa5, 0x8e, 0xf2, 0x12, 0x47, 0x79, 0x69, 0xb3, 0xd0, 0x39, 0x87, 0x05, 0x5f,
		0xd3, 0x14, 0x9c, 0xd6, 0x61, 0xb3, 0x74, 0x1b, 0x06, 0x83, 0x7e, 0x24, 0xbf, 0xac, 0x9f, 0x7c,
		0x7e, 0x33, 0x4c, 0x67, 0x53, 0x76, 0xe9, 0xcd, 0x59, 0xc5, 0xa7, 0xeb, 0xf2, 0xab, 0x59, 0xc1,
		0x4b, 0x9b, 0xcd, 0x8e, 0xba, 0xb4, 0xfa, 0x99, 0x86, 0x71, 0x32, 0x6a, 0x07, 0x1a, 0xca, 0x05,
		0x39, 0xd0, 0x20, 0x19, 0x38, 0xba, 0x02, 0x48, 0x7b, 0x20, 0x69, 0x0f, 0x28, 0xbd, 0x81, 0xa5,
		0xb8, 0x3c, 0x95, 0xec, 0x33, 0xb2, 0x01, 0x37, 0x4d, 0xc0, 0x7d, 0xec, 0xb5, 0x8a, 0xad, 0xfc,
		0xd8, 0xf1, 0x26, 0xe9, 0x29, 0xb6, 0x88, 0x5a, 0x28, 0x6a, 0x0b, 0x49, 0x9d, 0xa1, 0x99, 0x41,
		0x88, 0xea, 0x0e, 0xd5, 0xcc, 0x42, 0x36, 0xb3, 0xd0, 0xcd, 0x26, 0x84, 0xd5, 0x42, 0x59, 0x83,
		0x38, 0xa8, 0x25, 0xb4, 0x17, 0xd7, 0x49, 0x51, 0x5f, 0x88, 0xb6, 0xbe, 0x5e, 0xb2, 0xb0, 0x90,
		0x1a, 0xa7, 0xaf, 0xa9, 0x45, 0xd5, 0x8e, 0x17, 0x66, 0x36, 0x14, 0x64, 0x31, 0x24, 0x64, 0x38,
		0x34, 0x64, 0x35, 0x44, 0x64, 0x3e, 0x54, 0x64, 0x3e, 0x64, 0x64, 0x3b, 0x74, 0xe8, 0x19, 0x42,
		0x34, 0x0d, 0x25, 0xd3, 0xa2, 0x2a, 0x1f, 0x7e, 0x7c, 0xb1, 0xc7, 0x7a, 0x6d, 0xe1, 0xc7, 0x5e,
		0xfc, 0x10, 0x8a, 0x8e, 0xce, 0x5e, 0xfb, 0xc8, 0x01, 0x7b, 0x1a, 0xd3, 0xac, 0x4f, 0xb2, 0xfa,
		0xd1, 0x89, 0x32, 0x88, 0x87, 0xc7, 0x0a, 0xa9, 0x35, 0x7f, 0xae, 0x5d, 0x9e, 0xd7, 0x9a, 0xad,
		0xab, 0x8b, 0x5a, 0xed, 0x58, 0x77, 0x50, 0x8c, 0xf6, 0x7d, 0x22, 0xe5, 0x23, 0x9a, 0xcb, 0xfe,
		0xf7, 0xb7, 0xf6, 0x14, 0x9f, 0xd4, 0xcb, 0xa8, 0x3a, 0x5a, 0xe5, 0xed, 0xed, 0x9f, 0x3e, 0x96,
		0xb4, 0x7f, 0xd3, 0xb7, 0x1f, 0x8d, 0xad, 0x8e, 0x33, 0xaa, 0x63, 0xae, 0x3a, 0xe8, 0x1c, 0xf3,
		0xb5, 0x41, 0xdf, 0x98, 0xab, 0x0d, 0xba, 0xc6, 0xac, 0x32, 0x2a, 0x0c, 0xa3, 0x4f, 0xaa, 0x63,
		0x8f, 0x71, 0xf4, 0x69, 0x7d, 0xd0, 0x3b, 0x66, 0xb5, 0xb1, 0x4b, 0xb0, 0x3c, 0xad, 0x0e, 0x6a,
		0x63, 0x56, 0x1b, 0x7b, 0xd4, 0xc6, 0x7c, 0x6d, 0x50, 0x19, 0xb3, 0xca, 0xd8, 0x67, 0xdc, 0x98,
		0xaf, 0x8e, 0x43, 0xaa, 0x63, 0xbe, 0x3a, 0x3e, 0x9d, 0xff, 0xfb, 0xbc, 0xf1, 0xeb, 0x79, 0x06,
		0x15, 0xa2, 0x35, 0xc5, 0xeb, 0xbc, 0x29, 0x5a, 0xb9, 0xb8, 0xd4, 0xe8, 0xf9, 0x6d, 0xf1, 0x97,
		0x7e, 0x41, 0x7c, 0x9c, 0x2c, 0x3a, 0xb8, 0x72, 0x45, 0xa2, 0x83, 0xcf, 0xbe, 0x00, 0x1d, 0xdc,
		0x04, 0x1d, 0x7c, 0xe0, 0xf9, 0xf1, 0x61, 0x06, 0x0a, 0xb8, 0x4e, 0x01, 0x5c, 0xcf, 0xf5, 0xfe,
		0xec, 0x67, 0x5b, 0xad, 0xd7, 0xff, 0x17, 0x12, 0xd7, 0x6c, 0x07, 0xb0, 0x90, 0x7e, 0x56, 0x17,
		0xd0, 0x17, 0xbb, 0x9e, 0xee, 0x0b, 0xe9, 0x2b, 0x40, 0x33, 0xad, 0x76, 0x02, 0x2f, 0x36, 0x6d,
		0x65, 0x6f, 0x8f, 0xc6, 0x5d, 0x29, 0x66, 0xea, 0x4b, 0xed, 0xba, 0x40, 0x98, 0xe9, 0x0f, 0x7a,
		0xf6, 0xe3, 0x21, 0x89, 0x48, 0x3f, 0x6e, 0x3e, 0x4d, 0x1e, 0xec, 0x04, 0x3b, 0xc1, 0x4e, 0xb0,
		0x13, 0xec, 0x04, 0x3b, 0xc1, 0x4e, 0xb0, 0x13, 0xec, 0xdc, 0x64, 0xec, 0xec, 0xdf, 0x3d, 0x44,
		0xf3, 0xd7, 0x86, 0x33, 0xc2, 0xcf, 0xc5, 0xaf, 0x01, 0x43, 0xc1, 0x50, 0x30, 0x14, 0x0c, 0x05,
		0x43, 0xc1, 0x50, 0x30, 0x14, 0x0c, 0x05, 0x43, 0x8d, 0xc4, 0xd0, 0xb5, 0xde, 0x80, 0x53, 0x74,
		0xaa, 0x5c, 0x48, 0x4f, 0xd6, 0x7a, 0x67, 0x08, 0x03, 0x5b, 0x4f, 0xec, 0x42, 0xb6, 0xc6, 0x16,
		0x0c, 0xe3, 0xff, 0x6c, 0x69, 0xb9, 0xf3, 0x6a, 0xc9, 0x3b, 0xf6, 0x5c, 0x04, 0x61, 0xdc, 0xfa,
		0x38, 0xc9, 0xdf, 0x59, 0xd0, 0x16, 0xad, 0x9f, 0x46, 0xd9, 0x1b, 0xff, 0xa7, 0x35, 0x81, 0xde,
		0x35, 0xd9, 0x0c, 0xab, 0x78, 0xa4, 0xe9, 0x39, 0x9f, 0xa1, 0xf5, 0x5c, 0x86, 0xa6, 0x15, 0x09,
		0x57, 0x93, 0x73, 0xb6, 0xd2, 0xe0, 0x6a, 0xf2, 0x3a, 0x56, 0x10, 0xd3, 0x1e, 0xd7, 0x15, 0x4e,
		0x47, 0xcf, 0xdd, 0xc1, 0xe9, 0x9d, 0x41, 0x0d, 0xef, 0xe5, 0x94, 0x2e, 0x26, 0x73, 0xc5, 0xbb,
		0x77, 0x93, 0x41, 0x7e, 0x6b, 0x3c, 0x86, 0x18, 0x38, 0x96, 0x8e, 0x8d, 0xfa, 0xb4, 0x8d, 0xa5,
		0x69, 0x7d, 0xff, 0x5e, 0x6d, 0x2a, 0x5d, 0x63, 0x69, 0x85, 0xb1, 0x94, 0xb1, 0xd4, 0xb0, 0xb1,
		0x14, 0x9b, 0x07, 0x04, 0x5e, 0x04, 0x5e, 0x04, 0x5e, 0x6c, 0x1e, 0xb0, 0x79, 0x58, 0x2a, 0xe5,
		0x61, 0xf3, 0x90, 0x51, 0x9c, 0xac, 0xa3, 0x3a, 0xb8, 0x9e, 0x8c, 0xcd, 0xc3, 0x4b, 0xb5, 0x41,
		0xdf, 0xc0, 0xe6, 0x61, 0x69, 0x65, 0x60, 0xf3, 0x80, 0xcd, 0xc3, 0xab, 0xf5, 0x41, 0xef, 0xc0,
		0xe6, 0xe1, 0xc5, 0xea, 0xa0, 0x36, 0xb0, 0x79, 0x78, 0xa1, 0x36, 0xa8, 0x0c, 0x6c, 0x1e, 0x5e,
		0xa8, 0x0e, 0x6c, 0x1e, 0xb0, 0x79, 0xc8, 0x43, 0x2a, 0xd8, 0x3c, 0x48, 0x25, 0x87, 0x0e, 0x8e,
		0x0e, 0xbe, 0xfc, 0x0b, 0xd0, 0xc1, 0x35, 0xf4, 0x58, 0x0e, 0x3a, 0x6b, 0xec, 0x91, 0x1c, 0x74,
		0x4e, 0xd4, 0xf5, 0x38, 0xe8, 0xfc, 0x42, 0xd3, 0x72, 0xd0, 0x79, 0xd5, 0x98, 0xc9, 0x7d, 0xbb,
		0x65, 0x8d, 0x88, 0xcd, 0x03, 0xd8, 0x09, 0x76, 0x82, 0x9d, 0x60, 0x27, 0xd8, 0x09, 0x76, 0x82,
		0x9d, 0x34, 0x2e, 0xd8, 0xb9, 0x22, 0xec, 0xc4, 0xe6, 0x01, 0x0c, 0x05, 0x43, 0xc1, 0x50, 0x30,
		0x14, 0x0c, 0x05, 0x43, 0xc1, 0x50, 0x1a, 0x17, 0x0c, 0x5d, 0x59, 0x0a, 0x9b, 0x62, 0xf3, 0xa0,
		0xe3, 0xca, 0xab, 0x95, 0x99, 0xcb, 0xc3, 0xd5, 0x28, 0x77, 0xeb, 0xba, 0x98, 0xbc, 0xd2, 0x47,
		0xef, 0xff, 0x2d, 0x1e, 0x54, 0xcf, 0x5f, 0x94, 0x4e, 0xbd, 0x28, 0xae, 0xc6, 0xb1, 0xe2, 0xeb,
		0xf9, 0x67, 0x9e, 0x5f, 0xeb, 0x8a, 0x21, 0x50, 0x2a, 0x8e, 0x8f, 0xc3, 0xb9, 0x62, 0x2e, 0xa5,
		0xf2, 0xe1, 0xee, 0xee, 0xfe, 0xc1, 0xee, 0xee, 0xf6, 0xc1, 0xce, 0xc1, 0xf6, 0xfb, 0xbd, 0xbd,
		0xf2, 0xbe, 0xca, 0xdd, 0xa8, 0x52, 0x23, 0x6c, 0x8b, 0x50, 0xb4, 0x3f, 0x0e, 0xab, 0xcd, 0x1f,
		0x74, 0xbb, 0x3a, 0x92, 0xfa, 0x14, 0x89, 0x50, 0x69, 0xc0, 0x96, 0x6d, 0x7d, 0x4d, 0xc3, 0x45,
		0x56, 0xc3, 0x44, 0x49, 0xe9, 0x8e, 0xbe, 0xfe, 0x81, 0x41, 0x6e, 0x48, 0x48, 0x1f, 0xd0, 0xe9,
		0x3e, 0x91, 0xb2, 0xf1, 0x55, 0x1b, 0x5d, 0x7f, 0x63, 0x4b, 0x34, 0xb3, 0xe6, 0xe6, 0x4d, 0xd7,
		0xb0, 0xc9, 0x9b, 0x27, 0xd9, 0x6f, 0x26, 0x6c, 0x40, 0xd9, 0x86, 0xd3, 0xd8, 0x60, 0x29, 0x5a,
		0x4a, 0x57, 0x0b, 0x25, 0x6b, 0x9a, 0xb7, 0x2b, 0x3a, 0x41, 0x25, 0x97, 0xdc, 0x47, 0xad, 0x2b,
		0x59, 0xe5, 0x4e, 0x17, 0xf1, 0xa9, 0x4c, 0xab, 0x52, 0x3a, 0x75, 0xa4, 0x16, 0xe0, 0x64, 0x04,
		0xb6, 0x27, 0x02, 0xda, 0xa4, 0x7d, 0xd2, 0xb4, 0xb5, 0xa4, 0x48, 0xa6, 0x2c, 0x82, 0x29, 0x8b,
		0x5c, 0x0b, 0x22, 0xd6, 0x63, 0xe1, 0x37, 0x29, 0xc4, 0x53, 0x7b, 0xae, 0xa9, 0xc4, 0x76, 0x1a,
		0x07, 0x35, 0x3d, 0x51, 0x9d, 0xce, 0xad, 0x47, 0xca, 0x95, 0x47, 0x3a, 0xa6, 0x2b, 0xc4, 0x34,
		0x31, 0x9d, 0x45, 0x4c, 0xa7, 0x5d, 0x60, 0xab, 0x84, 0x74, 0x8a, 0xe5, 0x72, 0x82, 0x88, 0xfe,
		0x4e, 0xa1, 0xce, 0x4b, 0xd5, 0xc1, 0xed, 0xb0, 0xe5, 0x47, 0x9e, 0x3d, 0x6f, 0xcb, 0xd5, 0x29,
		0x47, 0x84, 0xad, 0xb9, 0xce, 0xf4, 0x61, 0xae, 0xea, 0x97, 0xfe, 0xf8, 0xc9, 0x4f, 0x53, 0x6c,
		0x4a, 0x95, 0x8e, 0x45, 0xe4, 0x86, 0x5e, 0x7f, 0xd2, 0x5f, 0x4a, 0xd5, 0x76, 0xdb, 0xf3, 0x6f,
		0xad, 0x61, 0x0a, 0xd6, 0x23, 0x8b, 0x59, 0x6d, 0x27, 0x76, 0xac, 0x38, 0xb0, 0x1e, 0x37, 0x11,
		0xad, 0xc7, 0x6f, 0x1a, 0xfd, 0xcb, 0x3b, 0xab, 0x79, 0xe7, 0x45, 0x56, 0x34, 0xb8, 0x89, 0x43,
		0x21, 0xbe, 0xf8, 0x5e, 0x64, 0x05, 0x7e, 0xf7, 0xc1, 0xba, 0x77, 0xba, 0x5e, 0xdb, 0xfa, 0x7a,
		0x27, 0x7c, 0x2b, 0xbe, 0x13, 0x56, 0xfc, 0xd0, 0x17, 0x56, 0xd0, 0x19, 0xfd, 0x79, 0x9a, 0x6d,
		0xcb, 0x8b, 0xac, 0x8b, 0xc6, 0x65, 0xf3, 0x5d, 0x51, 0x68, 0x26, 0xdd, 0x76, 0x60, 0x81, 0x46,
		0xbd, 0x54, 0xdb, 0x71, 0x7a, 0x47, 0xbc, 0xb4, 0x3e, 0x5c, 0xa5, 0xa7, 0x8b, 0x8c, 0xd4, 0x95,
		0xbf, 0x60, 0xab, 0x95, 0x72, 0xad, 0xb2, 0x2c, 0xee, 0x9a, 0x41, 0xdf, 0xee, 0x8a, 0x7b, 0xd1,
		0xb5, 0xdc, 0xc0, 0x8f, 0x1d, 0xcf, 0x17, 0xa1, 0xd5, 0x09, 0xc2, 0xa7, 0x81, 0x38, 0xfa, 0xa2,
		0x71, 0xcc, 0xa5, 0xfd, 0x3a, 0x39, 0xbf, 0x3e, 0xe9, 0xed, 0x78, 0x95, 0x6d, 0x77, 0x0d, 0xdb,
		0xeb, 0xaa, 0xdb, 0xe8, 0xda, 0xb6, 0xcb, 0xb5, 0x6d, 0x8b, 0xeb, 0xd9, 0xfe, 0xfe, 0xb6, 0x5e,
		0xe1, 0x41, 0x71, 0x36, 0xbe, 0x7e, 0x6b, 0x36, 0x4e, 0x47, 0x3e, 0x4a, 0xc4, 0x53, 0x4a, 0xb4,
		0x12, 0x90, 0x65, 0x9c, 0xd7, 0x5b, 0xf6, 0xe5, 0x5a, 0x7a, 0x65, 0xc4, 0x2c, 0xf5, 0x83, 0xaf,
		0x22, 0xb4, 0xa3, 0x41, 0xbf, 0xdf, 0x7d, 0x78, 0xb3, 0x7e, 0xa6, 0x31, 0xf8, 0xe4, 0x53, 0x6f,
		0xd4, 0x7f, 0xb2, 0x31, 0x26, 0xf1, 0x98, 0x92, 0x66, 0x0c, 0x91, 0x5c, 0x7d, 0xa4, 0x1d, 0x27,
		0xa4, 0xc7, 0x05, 0xe9, 0x71, 0x40, 0x7e, 0x75, 0xa1, 0x46, 0xb6, 0x49, 0xe7, 0x54, 0x44, 0x2c,
		0x16, 0xbc, 0x1b, 0xb7, 0xe0, 0x9d, 0x0d, 0x89, 0x2b, 0x14, 0xb3, 0xbe, 0x8a, 0xf0, 0x6a, 0xf4,
		0x9d, 0x68, 0x5a, 0x68, 0x5a, 0x84, 0xf8, 0xea, 0x42, 0x7c, 0x65, 0xda, 0xd6, 0x2c, 0xc2, 0xf3,
		0x24, 0x71, 0xad, 0x0c, 0xaa, 0x13, 0x83, 0xa6, 0x9e, 0x4a, 0xce, 0x84, 0xb1, 0xc3, 0xa0, 0x2f,
		0xc2, 0xd8, 0x13, 0x51, 0x0a, 0xc2, 0x9e, 0x7d, 0x06, 0xbe, 0x86, 0xaf, 0x5f, 0xe8, 0x52, 0x0f,
		0xe9, 0x67, 0xdf, 0xe9, 0x27, 0x61, 0x6c, 0x26, 0xe0, 0x55, 0x4b, 0xac, 0x29, 0x97, 0x85, 0x6a,
		0xcb, 0x43, 0xe3, 0x55, 0xce, 0xf4, 0x5d, 0x7b, 0x83, 0x94, 0xce, 0xd4, 0x5d, 0x5f, 0x52, 0xed,
		0x4c, 0x2b, 0xe0, 0x4b, 0xbe, 0xfe, 0x51, 0x9a, 0x30, 0x8b, 0x64, 0x7b, 0x4d, 0x2f, 0xf5, 0x0d,
		0xff, 0x2b, 0x7b, 0x0a, 0x57, 0xe9, 0xce, 0x9e, 0xf2, 0x1d, 0x3d, 0x1d, 0x77, 0xf2, 0x34, 0x85,
		0x8f, 0xae, 0x30, 0xd2, 0x1e, 0x4e, 0xda, 0xc3, 0x4a, 0x7f, 0x78, 0xc9, 0x85, 0x99, 0x64, 0xb8,
		0x4d, 0xb3, 0xaf, 0x7c, 0x37, 0x6e, 0x4e, 0x9d, 0x08, 0x3d, 0x5f, 0xe5, 0xed, 0xc7, 0xe9, 0x74,
		0x73, 0xb8, 0xaa, 0x83, 0xba, 0x12, 0xf3, 0xc3, 0xfd, 0xe4, 0xb2, 0x91, 0xe2, 0x70, 0x33, 0x4e,
		0x86, 0xf1, 0x86, 0xf1, 0x86, 0xf1, 0x46, 0xb2, 0xe7, 0x0c, 0x7c, 0x2f, 0xf0, 0x75, 0x0c, 0x37,
		0xef, 0x15, 0xd2, 0x98, 0x14, 0x47, 0xed, 0x6e, 0xad, 0xc6, 0x37, 0xf6, 0x94, 0x07, 0x61, 0x4d,
		0x83, 0xb1, 0x62, 0x37, 0xc9, 0xa0, 0x66, 0x6e, 0x82, 0xa0, 0x2b, 0x1c, 0x5f, 0x67, 0xd5, 0x94,
		0x0b, 0x52, 0x35, 0x9e, 0x1f, 0xef, 0xef, 0x6a, 0xac, 0x98, 0x5d, 0x0d, 0x49, 0xe9, 0xbd, 0xb5,
		0xae, 0xf1, 0xea, 0x7f, 0x16, 0xb7, 0xd4, 0xa7, 0x57, 0x98, 0xdf, 0x57, 0x2a, 0x3b, 0x3b, 0x07,
		0x95, 0xed, 0x9d, 0xfd, 0xc3, 0xbd, 0xdd, 0x83, 0x83, 0xbd, 0xc3, 0xed, 0x43, 0xcd, 0xb6, 0x0f,
		0x59, 0x5f, 0x65, 0x9e, 0xbf, 0xc2, 0x3c, 0x9c, 0xed, 0xf4, 0x59, 0x4a, 0x68, 0xb4, 0x44, 0xc8,
		0xe2, 0x3a, 0xfa, 0x2b, 0x6d, 0x78, 0x60, 0x70, 0x1b, 0xea, 0xbd, 0x86, 0x9e, 0x17, 0x2f, 0xf5,
		0xeb, 0x82, 0x8c, 0xdc, 0x03, 0xdd, 0x43, 0xf7, 0x21, 0x43, 0xb7, 0x64, 0xd8, 0x6f, 0x13, 0xe4,
		0xa6, 0x8d, 0xd4, 0x7a, 0xef, 0x96, 0x33, 0x54, 0x33, 0x54, 0xbf, 0x32, 0x54, 0xb7, 0x85, 0xeb,
		0xf5, 0x9c, 0xae, 0xd6, 0xd1, 0xba, 0x5c, 0xd1, 0x90, 0xd6, 0x42, 0x17, 0xad, 0x30, 0x07, 0x98,
		0x83, 0xef, 0x15, 0xf0, 0xdd, 0x78, 0x7c, 0xaf, 0x30, 0x27, 0xac, 0x74, 0x4e, 0xf8, 0x6e, 0xb5,
		0xdf, 0x8b, 0x83, 0xc8, 0xe4, 0x48, 0xda, 0xf4, 0x64, 0xd6, 0xe3, 0x1f, 0x25, 0xce, 0xfb, 0xce,
		0x72, 0x21, 0x77, 0x60, 0x6d, 0x9a, 0x87, 0xc7, 0x3f, 0xa6, 0x3b, 0xff, 0x9b, 0xbe, 0x85, 0x52,
		0xb4, 0x8e, 0xdc, 0x56, 0xb6, 0xca, 0x16, 0xb6, 0xe4, 0x56, 0x12, 0x27, 0x3c, 0x38, 0xe1, 0x91,
		0x7e, 0xdc, 0x91, 0xde, 0xfa, 0x99, 0xb6, 0x7c, 0x57, 0x38, 0x9d, 0x50, 0x74, 0x64, 0x5a, 0xfd,
		0x91, 0x98, 0x25, 0x26, 0xf3, 0xd2, 0xc5, 0x64, 0xa8, 0x7b, 0xf7, 0x6e, 0x32, 0x5e, 0x6d, 0x8d,
		0x42, 0x2d, 0x07, 0x03, 0x46, 0xba, 0x8b, 0x04, 0x0b, 0xf5, 0x29, 0xe3, 0xe3, 0xa7, 0x7c, 0x28,
		0xac, 0xc2, 0x90, 0xc1, 0x90, 0x91, 0x30, 0x9b, 0xd2, 0x87, 0xc2, 0xc6, 0x71, 0x3a, 0x08, 0x9d,
		0x9b, 0xae, 0x86, 0xd3, 0x1a, 0x4f, 0x52, 0xe3, 0xd0, 0x06, 0x87, 0x36, 0xd6, 0x16, 0x6e, 0x6a,
		0x6b, 0x98, 0xf5, 0x1f, 0xda, 0x50, 0xdf, 0x85, 0x57, 0xdc, 0x7d, 0x5f, 0xcd, 0x29, 0x31, 0xce,
		0xa4, 0x32, 0xdc, 0x30, 0xdc, 0x70, 0x26, 0x95, 0x33, 0xa9, 0x8c, 0x37, 0x8c, 0x37, 0x9b, 0x33,
		0xde, 0x70, 0x26, 0x35, 0x8b, 0x41, 0x58, 0xd3, 0x60, 0xac, 0xd8, 0x4d, 0x32, 0xa8, 0x19, 0xce,
		0xa4, 0xbe, 0x58, 0x35, 0x9c, 0x49, 0x4d, 0x91, 0x31, 0xce, 0xa4, 0xbe, 0xd1, 0xa9, 0xd8, 0xd4,
		0xe6, 0x4c, 0xaa, 0x5e, 0xd6, 0xd0, 0x9f, 0x0a, 0x67, 0x52, 0x5f, 0x18, 0xba, 0x39, 0x93, 0x2a,
		0x1b, 0xf6, 0x9c, 0x49, 0x35, 0x6e, 0xa4, 0xe6, 0x4c, 0x2a, 0x43, 0xf5, 0xca, 0x86, 0x6a, 0xce,
		0xa4, 0x82, 0xef, 0x56, 0x2e, 0x1b, 0x0b, 0x7c, 0xe7, 0x4c, 0xea, 0x46, 0xcd, 0x09, 0x9c, 0x49,
		0xcd, 0xcd, 0x99, 0x54, 0xd9, 0xd7, 0x4d, 0x35, 0x1e, 0x49, 0x95, 0x78, 0xc2, 0x74, 0x5d, 0xcf,
		0xda, 0x4d, 0x9e, 0x20, 0x4d, 0xb1, 0x57, 0x2d, 0xf7, 0xe2, 0xa8, 0xfc, 0x0b, 0xa3, 0x5a, 0x5f,
		0x14, 0x55, 0x78, 0x41, 0x54, 0xe1, 0xc5, 0xd0, 0xdc, 0x1a, 0xbb, 0x2e, 0x86, 0xcf, 0x0a, 0x9c,
		0x5d, 0x17, 0x03, 0x66, 0xc3, 0xbc, 0x5d, 0x93, 0x5a, 0x9c, 0x6a, 0xa9, 0xe4, 0x2c, 0x8c, 0x5d,
		0xa3, 0xa0, 0x13, 0x7f, 0x75, 0x42, 0x61, 0xf7, 0x82, 0xf6, 0x20, 0xc1, 0x09, 0xbd, 0xd9, 0x5e,
		0xd2, 0xb3, 0x0f, 0x62, 0xf1, 0x8a, 0xc5, 0xeb, 0xf3, 0x5f, 0xe4, 0x09, 0x05, 0xec, 0x5d, 0x37,
		0xcb, 0x5f, 0xfd, 0xd9, 0xa8, 0xb8, 0xb2, 0x57, 0x14, 0xae, 0x26, 0xdf, 0x7b, 0x36, 0xfa, 0x5a,
		0x1e, 0x52, 0xe0, 0x21, 0x05, 0x02, 0x7d, 0xa5, 0x81, 0xbe, 0xa2, 0xb7, 0x14, 0x9e, 0xc5, 0xf9,
		0x06, 0x3e, 0xa7, 0x90, 0x8e, 0x3b, 0xb5, 0x55, 0x75, 0x26, 0xec, 0x9d, 0x68, 0xcc, 0x4c, 0x35,
		0x56, 0xa6, 0xe6, 0xec, 0x0a, 0x9c, 0x6d, 0x3e, 0x67, 0x3b, 0xdd, 0x6e, 0xe0, 0x3a, 0xb1, 0x68,
		0xdb, 0xa3, 0xc7, 0x46, 0xd2, 0x4f, 0xc3, 0xcf, 0x13, 0x48, 0x37, 0x21, 0x6f, 0x43, 0xde, 0x4c,
		0xc8, 0xcf, 0xb3, 0x93, 0xfa, 0x28, 0xef, 0x93, 0x63, 0x2b, 0x3b, 0x95, 0x34, 0x8d, 0x36, 0xe9,
		0x87, 0x29, 0xb6, 0x62, 0x24, 0xb7, 0x20, 0x25, 0xf4, 0x70, 0x95, 0x2d, 0x45, 0xd5, 0xe3, 0x23,
		0xda, 0x0e, 0x18, 0xa8, 0x6f, 0x1a, 0xc9, 0xdc, 0xa6, 0x50, 0xd9, 0xc9, 0x9b, 0x56, 0xdd, 0x6e,
		0xe5, 0xfd, 0xee, 0xfb, 0xfd, 0x83, 0xca, 0xfb, 0x3d, 0xf3, 0xeb, 0x30, 0xa3, 0x6d, 0x88, 0xeb,
		0x15, 0xae, 0x13, 0x6f, 0x9c, 0x48, 0xd8, 0x3d, 0xc7, 0xb5, 0x9d, 0x76, 0x3b, 0x14, 0x51, 0x94,
		0x7e, 0xae, 0x5a, 0x48, 0x81, 0xc9, 0x8a, 0xc9, 0x6a, 0x6d, 0x93, 0x55, 0xfa, 0x8e, 0xf8, 0x04,
		0xd3, 0x53, 0x9c, 0x00, 0x29, 0x5d, 0x38, 0x71, 0x2c, 0x42, 0x3f, 0xf5, 0xa4, 0x55, 0xfa, 0xbc,
		0x6d, 0xbf, 0x77, 0xec, 0x4e, 0xd5, 0x3e, 0xb9, 0xfe, 0xbb, 0xf2, 0xed, 0xfb, 0x0f, 0x4f, 0xff,
		0xfe, 0xc3, 0xdf, 0x7b, 0xdf, 0x92, 0xd7, 0xfb, 0x75, 0x9a, 0x0c, 0x37, 0xae, 0xea, 0xbf, 0x49,
		0xe7, 0xfa, 0x7f, 0xdf, 0xce, 0xf6, 0x7f, 0x95, 0x72, 0x39, 0xc6, 0xb9, 0x5d, 0xe1, 0xd9, 0x6e,
		0x9a, 0x17, 0xf8, 0x67, 0xca, 0xf7, 0xf4, 0xa3, 0x8c, 0x6a, 0x8c, 0x6a, 0x6b, 0x1b, 0xd5, 0x52,
		0x5f, 0x14, 0x4b, 0x79, 0x21, 0x4c, 0x4f, 0x9c, 0xb5, 0x45, 0xe4, 0x86, 0x5e, 0x3f, 0x95, 0xe8,
		0x37, 0x77, 0xe2, 0x72, 0xf6, 0x61, 0x62, 0x8d, 0x58, 0x23, 0xd6, 0x5e, 0xfd, 0x4e, 0xd1, 0xeb,
		0xcb, 0x3c, 0xd5, 0x39, 0xfe, 0x58, 0xd2, 0xb7, 0x18, 0x45, 0xc7, 0x19, 0x74, 0xe3, 0x54, 0xa8,
		0x50, 0x1a, 0x2d, 0xa5, 0x92, 0xb5, 0xfa, 0x35, 0x71, 0x4e, 0x9c, 0xaf, 0x2d, 0xce, 0xd3, 0x5f,
		0x31, 0x4e, 0x79, 0x95, 0x58, 0x53, 0xa0, 0xff, 0x39, 0xf0, 0xfa, 0xc3, 0x0a, 0xb7, 0x3b, 0x8e,
		0xd7, 0x1d, 0x84, 0x12, 0x10, 0xbb, 0x98, 0x04, 0x03, 0x80, 0xce, 0x01, 0xc0, 0xe9, 0x3a, 0x61,
		0x2f, 0xda, 0xc8, 0xf0, 0x9f, 0x14, 0x9d, 0xe0, 0xcf, 0x3a, 0xf8, 0x7b, 0x5e, 0xd4, 0x73, 0x62,
		0xf7, 0x4e, 0x25, 0xfa, 0xa7, 0x69, 0x10, 0xfe, 0x84, 0x3f, 0xe1, 0x9f, 0xff, 0xf0, 0xef, 0x78,
		0x61, 0x6f, 0x74, 0xb6, 0xe2, 0x5e, 0x84, 0x91, 0xd4, 0xaa, 0x7a, 0x21, 0x05, 0x90, 0x1b, 0xe4,
		0x66, 0x69, 0xfd, 0xea, 0x77, 0xde, 0x39, 0x61, 0x5b, 0x2d, 0xea, 0x16, 0x52, 0x20, 0xea, 0x88,
		0x3a, 0xa2, 0xee, 0xd5, 0xef, 0xf4, 0xda, 0xe9, 0xe3, 0xcc, 0x6b, 0x13, 0x59, 0x44, 0x16, 0x91,
		0xf5, 0xfa, 0x77, 0x76, 0x9d, 0x28, 0xb6, 0x43, 0x71, 0x13, 0x04, 0xc3, 0xff, 0x38, 0x91, 0xcc,
		0x8c, 0xb6, 0x24, 0x0d, 0x22, 0x8f, 0xc8, 0x5b, 0x5b, 0xe4, 0x79, 0x6d, 0xe1, 0xc7, 0x5e, 0xfc,
		0x90, 0xee, 0xcd, 0x93, 0x69, 0xf8, 0xa5, 0xb9, 0xd6, 0x5c, 0x9f, 0x7c, 0xd5, 0x47, 0x27, 0x52,
		0x78, 0x50, 0xe4, 0xa8, 0x71, 0x76, 0xd1, 0x38, 0xaf, 0x9d, 0x37, 0x5b, 0x97, 0xb5, 0x8f, 0x8d,
		0xc6, 0xf0, 0x3f, 0xd5, 0xab, 0xc6, 0x79, 0xda, 0x1e, 0x30, 0x3a, 0x45, 0x17, 0x49, 0x59, 0xb5,
		0x28, 0x7a, 0x20, 0x4f, 0xb2, 0x7d, 0x74, 0x59, 0x6f, 0xd6, 0x8f, 0xaa, 0xa7, 0xad, 0xda, 0xe5,
		0x65, 0xe3, 0xb2, 0xb4, 0x8a, 0x73, 0x87, 0x7a, 0x32, 0x7e, 0xd1, 0xf8, 0xb5, 0x76, 0xd9, 0x3a,
		0xa9, 0xd6, 0x4f, 0x3f, 0x5d, 0xd6, 0x0c, 0xca, 0xf7, 0xa7, 0xab, 0xda, 0x65, 0xab, 0x7e, 0x5e,
		0x6f, 0xd6, 0xab, 0xcd, 0xda, 0x71, 0xd6, 0xcf, 0x90, 0x5c, 0xeb, 0x1e, 0x09, 0xb4, 0xcf, 0x60,
		0xb1, 0xd7, 0x13, 0x6a, 0xf3, 0xd7, 0x28, 0x05, 0x66, 0x2f, 0x66, 0xaf, 0xb5, 0xcd, 0x5e, 0xc3,
		0x1e, 0x18, 0x7b, 0xee, 0x1f, 0x51, 0x2a, 0x7f, 0x31, 0x09, 0xd7, 0xc7, 0xd2, 0x27, 0x7f, 0x7c,
		0x46, 0xba, 0xe4, 0x3b, 0x7e, 0x10, 0x09, 0x37, 0xf0, 0xdb, 0xa9, 0x94, 0x6a, 0x8e, 0xe5, 0xa7,
		0x1b, 0xbb, 0x8d, 0x3d, 0x96, 0xaf, 0xcf, 0x5d, 0x91, 0x03, 0xfa, 0xfa, 0xe7, 0xbe, 0xe8, 0xab,
		0x17, 0xbb, 0x77, 0xc1, 0xbd, 0x08, 0xd5, 0x56, 0x70, 0x8b, 0xe9, 0xe0, 0xe9, 0xc0, 0x3c, 0xa8,
		0x38, 0x0f, 0xa6, 0x7d, 0x8a, 0xae, 0xd4, 0x16, 0xb1, 0xe3, 0x75, 0x23, 0xf9, 0xc5, 0xd4, 0x63,
		0x02, 0x9b, 0xf5, 0xa4, 0xab, 0x1d, 0x3f, 0xf4, 0x45, 0xc4, 0x2b, 0x8d, 0xaf, 0x84, 0xc0, 0xa4,
		0x8a, 0x0a, 0xf7, 0xbc, 0xab, 0xf4, 0x43, 0x21, 0x92, 0x0f, 0x83, 0x64, 0xf3, 0x26, 0x6b, 0x1c,
		0x7a, 0xb7, 0xb7, 0x22, 0x94, 0x8f, 0xfb, 0xc7, 0x04, 0x88, 0x7b, 0xe2, 0x7e, 0x23, 0xe2, 0x7e,
		0x6a, 0xb3, 0x61, 0x87, 0xa2, 0x3d, 0xf0, 0xdb, 0xce, 0xf0, 0x4f, 0x41, 0x57, 0x2c, 0x82, 0x9c,
		0x2d, 0x17, 0x1b, 0x4f, 0xc6, 0x08, 0x89, 0x97, 0x60, 0x4a, 0x35, 0x7f, 0xd0, 0x93, 0xef, 0x60,
		0xcd, 0xe0, 0x6a, 0x3c, 0xb2, 0x29, 0xbd, 0x31, 0xb5, 0x3d, 0xac, 0xaa, 0x67, 0x3a, 0x99, 0xc2,
		0x2b, 0x51, 0xe5, 0x61, 0x72, 0x57, 0xbf, 0x5f, 0x35, 0x6b, 0x67, 0x2a, 0xc2, 0x9b, 0xa5, 0xf2,
		0xee, 0x56, 0x50, 0x1f, 0xf5, 0x71, 0x85, 0x4a, 0x59, 0x28, 0x40, 0xea, 0x87, 0xa9, 0x9f, 0x0a,
		0x09, 0x4f, 0xab, 0xf7, 0x83, 0xb5, 0x9d, 0x4f, 0x77, 0xdd, 0x4d, 0xb1, 0x3b, 0x8a, 0x9d, 0x58,
		0x6c, 0x29, 0xad, 0xe9, 0x2c, 0x05, 0x2b, 0x9e, 0xe1, 0xb7, 0xb7, 0x4e, 0x9d, 0x28, 0xbe, 0x9a,
		0x7e, 0xf9, 0xe5, 0xf8, 0xbb, 0xd7, 0xb8, 0x32, 0x56, 0x50, 0x86, 0x9f, 0xa7, 0x82, 0x3a, 0xcc,
		0xaa, 0x18, 0x75, 0x18, 0x75, 0x18, 0x75, 0x18, 0x75, 0x38, 0xdf, 0xea, 0x70, 0xe0, 0x3a, 0x72,
		0xf7, 0xad, 0xa7, 0x9f, 0x64, 0xae, 0x63, 0xae, 0x5b, 0xdb, 0x5c, 0x67, 0xc6, 0x09, 0xba, 0x9e,
		0xe8, 0x05, 0xa1, 0xc4, 0x6d, 0xeb, 0xc9, 0xe7, 0xd8, 0x63, 0x21, 0xc2, 0x14, 0x23, 0x2c, 0xf5,
		0x1e, 0x8b, 0x73, 0xef, 0x78, 0x5d, 0xe7, 0xa6, 0xab, 0x70, 0x64, 0x6d, 0x96, 0xc4, 0x66, 0xe9,
		0xad, 0x28, 0xad, 0x5a, 0x5f, 0xae, 0xcf, 0xbb, 0xc6, 0x2a, 0xfd, 0x2a, 0xab, 0xc2, 0x2b, 0xac,
		0x8a, 0x2f, 0xee, 0x29, 0xc8, 0x82, 0x3a, 0x5e, 0xd4, 0xd3, 0xf5, 0x8a, 0xaa, 0xf6, 0xf7, 0x36,
		0xf5, 0xbd, 0xa5, 0xa6, 0xf0, 0x00, 0x9e, 0x96, 0x07, 0xef, 0x32, 0x7c, 0xf5, 0x34, 0xcf, 0xb5,
		0xbe, 0x22, 0x4d, 0xf9, 0x3a, 0x07, 0x9b, 0xa1, 0x83, 0xd8, 0xeb, 0x7a, 0xff, 0x11, 0x6d, 0xf9,
		0xf9, 0x79, 0x9a, 0x02, 0xd3, 0x33, 0xd3, 0x33, 0xd3, 0x33, 0xd3, 0x33, 0xd3, 0x33, 0xd3, 0x33,
		0xd3, 0xf3, 0xaa, 0x96, 0xe4, 0xeb, 0xd9, 0xf2, 0x4d, 0x25, 0x29, 0x59, 0xaa, 0x5b, 0xbc, 0x67,
		0xe3, 0x6f, 0x5b, 0xa5, 0xd4, 0xd6, 0xb9, 0xb5, 0xdb, 0x52, 0x4f, 0x57, 0x4d, 0x3f, 0x89, 0xa0,
		0x8d, 0xdc, 0xa6, 0x18, 0xdb, 0xf2, 0x82, 0x76, 0x3b, 0xe5, 0xb3, 0x53, 0x2b, 0x37, 0x1e, 0xbf,
		0xfe, 0x7b, 0xf7, 0xdb, 0x97, 0x2f, 0xf6, 0xf7, 0xdb, 0x9f, 0xcb, 0xf6, 0xfb, 0xeb, 0x7f, 0xca,
		0x9f, 0xb7, 0xed, 0xca, 0xf5, 0x0f, 0x73, 0x3f, 0xf9, 0x5c, 0xae, 0x5c, 0x8f, 0x7e, 0xf1, 0x9f,
		0x9d, 0xcf, 0xdb, 0xe5, 0xeb, 0x1f, 0x72, 0xe9, 0x45, 0xfe, 0xbd, 0x54, 0x51, 0x7e, 0xc8, 0xa9,
		0x41, 0xf9, 0x70, 0xe8, 0x9a, 0x0c, 0xd0, 0x12, 0x83, 0x5e, 0x9a, 0x07, 0xa6, 0x19, 0xf4, 0x18,
		0xf4, 0xf4, 0x0f, 0x7a, 0x86, 0xec, 0xe2, 0x05, 0x6d, 0xd1, 0x95, 0x8d, 0xb3, 0xd9, 0x67, 0x89,
		0x34, 0x22, 0x8d, 0x48, 0x7b, 0xf5, 0x3b, 0xe5, 0x62, 0x8c, 0xe8, 0x22, 0xba, 0x88, 0xae, 0xb7,
		0xa3, 0x2b, 0xe8, 0x8b, 0xd0, 0x8e, 0x62, 0x27, 0x1e, 0x48, 0xbc, 0xd6, 0x35, 0xff, 0x61, 0x62,
		0x8d, 0x58, 0x5b, 0x5b, 0xac, 0x19, 0xec, 0xe0, 0xd4, 0xb8, 0xa8, 0x5d, 0xb6, 0xae, 0x9a, 0xd5,
		0xe6, 0xa7, 0x2b, 0x73, 0xfc, 0x9b, 0xaa, 0x47, 0xcd, 0xfa, 0x2f, 0x46, 0x18, 0x1f, 0x1d, 0xd7,
		0xaf, 0xaa, 0x1f, 0x4f, 0xa5, 0xbc, 0x8e, 0x56, 0x9e, 0xd7, 0xfa, 0xb9, 0x74, 0xbd, 0x16, 0xc0,
		0x97, 0xa9, 0xef, 0x84, 0x22, 0xc5, 0x3d, 0xb5, 0x69, 0xad, 0x4d, 0x3e, 0xc7, 0xfc, 0xc3, 0xfc,
		0xb3, 0xb6, 0xf9, 0xa7, 0x2b, 0x9c, 0x8e, 0xe4, 0xdc, 0x73, 0x90, 0x4e, 0xab, 0x1d, 0xed, 0xf3,
		0xbc, 0x7b, 0xb7, 0x35, 0xfe, 0xbf, 0xd9, 0x86, 0xce, 0x78, 0x1b, 0x66, 0x6b, 0xb4, 0xec, 0x59,
		0x6d, 0xd0, 0xc6, 0xb6, 0x1f, 0x48, 0x45, 0xed, 0xe8, 0x83, 0x84, 0x2d, 0x61, 0xcb, 0x12, 0xed,
		0xf5, 0x18, 0x73, 0x3d, 0x09, 0x01, 0x64, 0xf4, 0x29, 0x2e, 0x0b, 0x10, 0x5d, 0x8a, 0xd1, 0x95,
		0xfa, 0xb2, 0x80, 0x1b, 0x84, 0xa1, 0x70, 0x63, 0xe7, 0xa6, 0x2b, 0x6c, 0x11, 0x86, 0x41, 0xa8,
		0xe0, 0xcd, 0xb4, 0x24, 0x2d, 0xb9, 0xf3, 0x89, 0x65, 0xce, 0x27, 0xae, 0x2c, 0x04, 0xb4, 0x85,
		0x82, 0xbe, 0x90, 0x90, 0x5b, 0x27, 0xa5, 0x3d, 0x9f, 0x98, 0x36, 0x54, 0xa6, 0x1f, 0x74, 0xda,
		0xf7, 0x5e, 0x14, 0x84, 0x0f, 0xb6, 0x1f, 0xf8, 0x76, 0xc7, 0x89, 0x9d, 0xae, 0x6c, 0xe4, 0x2c,
		0xf4, 0xa5, 0x97, 0x93, 0x96, 0x6c, 0x0b, 0xb9, 0x03, 0xbf, 0xca, 0x81, 0xa5, 0x23, 0xc0, 0x34,
		0x07, 0x9a, 0xae, 0x80, 0xd3, 0x1e, 0x78, 0xda, 0x03, 0x50, 0x7f, 0x20, 0xca, 0x05, 0xa4, 0x82,
		0x34, 0x63, 0x29, 0x1d, 0x20, 0x5e, 0x32, 0x31, 0x0d, 0xfc, 0x58, 0x84, 0x52, 0x67, 0x89, 0x9f,
		0x87, 0xd2, 0xa1, 0x42, 0x12, 0x6a, 0x67, 0x8b, 0xd5, 0x74, 0xab, 0x27, 0x19, 0xd1, 0x71, 0xd6,
		0xf8, 0xa9, 0xb0, 0xa9, 0x7e, 0x58, 0x75, 0x9a, 0x9e, 0xee, 0x53, 0xb0, 0xb3, 0xee, 0xa0, 0xeb,
		0x34, 0xac, 0x62, 0xcf, 0x7e, 0xda, 0x14, 0x1a, 0xce, 0x24, 0x2f, 0x34, 0x85, 0xfe, 0xb3, 0xc9,
		0x26, 0xb6, 0xce, 0x77, 0xeb, 0xf9, 0xf4, 0xf5, 0xaa, 0xec, 0xb1, 0x24, 0x68, 0xf3, 0xc6, 0x69,
		0xdb, 0xed, 0x6e, 0xb7, 0xaf, 0x8d, 0x58, 0x9e, 0x27, 0x08, 0xa7, 0xc0, 0x29, 0x70, 0x0a, 0x9c,
		0x02, 0xa7, 0xc0, 0x29, 0x70, 0x0a, 0x9c, 0xa2, 0xc0, 0x29, 0xb1, 0x66, 0x4c, 0x89, 0xa1, 0x14,
		0x28, 0x05, 0x4a, 0x81, 0x52, 0xa0, 0x14, 0x28, 0x05, 0x4a, 0x81, 0x52, 0x94, 0x29, 0xe5, 0xae,
		0x1d, 0xda, 0xdd, 0xe0, 0xd6, 0x0e, 0xee, 0x45, 0xd8, 0xe9, 0x06, 0x5f, 0xb5, 0xe1, 0xca, 0x4b,
		0x09, 0xc3, 0x2d, 0x70, 0x0b, 0xdc, 0x02, 0xb7, 0xc0, 0x2d, 0x70, 0x0b, 0xdc, 0x02, 0xb7, 0x48,
		0x72, 0x8b, 0x37, 0x1c, 0x07, 0x7d, 0x8d, 0xe7, 0x56, 0x9e, 0x27, 0x08, 0xa7, 0xc0, 0x29, 0x70,
		0x0a, 0x9c, 0x02, 0xa7, 0xc0, 0x29, 0x70, 0x0a, 0x9c, 0x22, 0xc9, 0x29, 0xa1, 0x70, 0x85, 0x77,
		0x2f, 0x42, 0x6d, 0x9c, 0xf2, 0x3c, 0x41, 0x38, 0x05, 0x4e, 0x81, 0x53, 0xe0, 0x14, 0x38, 0x05,
		0x4e, 0x81, 0x53, 0xe0, 0x14, 0x69, 0x4e, 0xe9, 0x3a, 0x0f, 0x76, 0x18, 0x74, 0xbb, 0x81, 0x5e,
		0x5a, 0x59, 0x96, 0x2c, 0xcc, 0x02, 0xb3, 0xc0, 0x2c, 0x30, 0x0b, 0xcc, 0x02, 0xb3, 0xc0, 0x2c,
		0x30, 0x8b, 0x34, 0xb3, 0xf4, 0x87, 0x74, 0x11, 0x7b, 0x3d, 0x11, 0x0c, 0x62, 0x8d, 0xcc, 0xb2,
		0x2c, 0x59, 0x98, 0x05, 0x66, 0x81, 0x59, 0x60, 0x16, 0x98, 0x05, 0x66, 0x81, 0x59, 0x60, 0x16,
		0x49, 0x66, 0x89, 0x03, 0x9d, 0x66, 0x2b, 0x4f, 0x52, 0x83, 0x50, 0x20, 0x14, 0x08, 0x05, 0x42,
		0x81, 0x50, 0x20, 0x14, 0x08, 0x05, 0x42, 0xc9, 0xdc, 0x7e, 0x4e, 0xf2, 0x0d, 0xc9, 0xe9, 0xe7,
		0xd5, 0xde, 0x92, 0xec, 0xbb, 0x9e, 0xd8, 0x52, 0xf6, 0x6b, 0xb4, 0x54, 0x1f, 0x99, 0xbc, 0x70,
		0x3d, 0xd1, 0x3a, 0x9a, 0x65, 0xa3, 0x36, 0xce, 0x45, 0x0e, 0xde, 0xe8, 0x56, 0xf2, 0xf5, 0x9b,
		0x4e, 0x8c, 0x0a, 0x16, 0x7e, 0x78, 0x61, 0xae, 0x0f, 0x19, 0xf1, 0xc2, 0x4c, 0xfa, 0x41, 0xc7,
		0x8d, 0xec, 0x7b, 0x2f, 0xe8, 0x8e, 0x06, 0x32, 0x7d, 0x36, 0x98, 0xcb, 0x52, 0x65, 0x85, 0xc6,
		0x0a, 0x8d, 0x15, 0x1a, 0x2b, 0x34, 0x56, 0x68, 0xac, 0xd0, 0x58, 0xa1, 0xb1, 0x42, 0x93, 0xd4,
		0x90, 0x9d, 0x38, 0xe8, 0x79, 0xae, 0x1d, 0xf4, 0xed, 0x9b, 0x6e, 0xe0, 0xfe, 0x21, 0xda, 0xfa,
		0xa8, 0xe5, 0xa5, 0x94, 0x21, 0x17, 0xc8, 0x05, 0x72, 0x81, 0x5c, 0x20, 0x17, 0xc8, 0x05, 0x72,
		0x81, 0x5c, 0x64, 0x3d, 0x31, 0x27, 0x54, 0xa1, 0xd5, 0x17, 0x73, 0x31, 0x4d, 0x68, 0x05, 0x5a,
		0x81, 0x56, 0xa0, 0x15, 0x68, 0x05, 0x5a, 0x81, 0x56, 0xa0, 0x15, 0x49, 0x5a, 0x71, 0x83, 0x5e,
		0xbf, 0x2b, 0x46, 0x1b, 0x38, 0xce, 0x4d, 0x10, 0xea, 0xbb, 0x61, 0xf0, 0x52, 0xc2, 0x70, 0x0b,
		0xdc, 0x02, 0xb7, 0xc0, 0x2d, 0x70, 0x0b, 0xdc, 0x02, 0xb7, 0xc0, 0x2d, 0xea, 0xdc, 0xa2, 0xfb,
		0x6e, 0xe4, 0xcb, 0x49, 0xc3, 0x2e, 0xb0, 0x0b, 0xec, 0x02, 0xbb, 0xc0, 0x2e, 0xb0, 0x0b, 0xec,
		0x02, 0xbb, 0x48, 0xb2, 0x4b, 0xdb, 0x89, 0x1d, 0xbb, 0xeb, 0xf9, 0x7f, 0x68, 0x43, 0x96, 0x85,
		0x14, 0x21, 0x15, 0x48, 0x05, 0x52, 0x81, 0x54, 0x20, 0x15, 0x48, 0x05, 0x52, 0x81, 0x54, 0x24,
		0x49, 0x45, 0xb8, 0xa1, 0xab, 0x0d, 0x52, 0xe6, 0x13, 0x83, 0x4f, 0xe0, 0x13, 0xf8, 0x04, 0x3e,
		0x81, 0x4f, 0xe0, 0x13, 0xf8, 0x04, 0x3e, 0x91, 0xe4, 0x93, 0xd1, 0xa3, 0xab, 0x6e, 0xe0, 0xc7,
		0x61, 0xd0, 0xb5, 0xfb, 0x61, 0x10, 0x07, 0x6e, 0xa0, 0xcf, 0x79, 0xea, 0xd5, 0xd4, 0x21, 0x18,
		0x08, 0x06, 0x82, 0x81, 0x60, 0x20, 0x18, 0x08, 0x06, 0x82, 0x81, 0x60, 0x78, 0xe3, 0x15, 0x4e,
		0x81, 0x53, 0xe0, 0x14, 0x38, 0x05, 0x4e, 0x81, 0x53, 0xe0, 0x94, 0x82, 0x71, 0x4a, 0xcf, 0xe9,
		0x0e, 0xa7, 0x00, 0xcd, 0xf7, 0x9a, 0x97, 0xa6, 0x0a, 0xb1, 0x40, 0x2c, 0x10, 0x0b, 0xc4, 0x02,
		0xb1, 0x40, 0x2c, 0x10, 0x0b, 0xc4, 0x22, 0x49, 0x2c, 0xfd, 0xc0, 0x8b, 0x02, 0x5f, 0x33, 0xb0,
		0x2c, 0x4b, 0x14, 0x5e, 0x81, 0x57, 0xe0, 0x15, 0x78, 0x05, 0x5e, 0x81, 0x57, 0xe0, 0x15, 0x78,
		0x45, 0xfa, 0xa5, 0x57, 0x57, 0x78, 0xf7, 0x22, 0xb4, 0x83, 0x7b, 0x11, 0x8e, 0x8e, 0x9e, 0xe8,
		0x7b, 0xec, 0xf5, 0x85, 0x94, 0x21, 0x17, 0xc8, 0x05, 0x72, 0x81, 0x5c, 0x20, 0x17, 0xc8, 0x05,
		0x72, 0x81, 0x5c, 0x24, 0xc9, 0x25, 0x1a, 0x84, 0xfd, 0xd0, 0x8b, 0x84, 0xdd, 0x0e, 0xbe, 0xea,
		0x7b, 0x5d, 0x68, 0x69, 0xaa, 0x10, 0x0b, 0xc4, 0x02, 0xb1, 0x40, 0x2c, 0x10, 0x0b, 0xc4, 0x02,
		0xb1, 0x40, 0x2c, 0xb2, 0x2f, 0xd4, 0x77, 0xfb, 0xf6, 0x78, 0xb6, 0xd2, 0xfe, 0xbc, 0xd0, 0xcb,
		0x49, 0xc3, 0x2e, 0xb0, 0x0b, 0xec, 0x02, 0xbb, 0xc0, 0x2e, 0xb0, 0x0b, 0xec, 0x02, 0xbb, 0xc8,
		0xb2, 0x4b, 0x10, 0x6b, 0xbc, 0x2e, 0xf4, 0x24, 0x35, 0x08, 0x05, 0x42, 0x81, 0x50, 0x20, 0x14,
		0x08, 0x05, 0x42, 0x81, 0x50, 0x20, 0x14, 0x49, 0x42, 0x19, 0xf8, 0x6d, 0xd1, 0xf1, 0x7c, 0x8d,
		0xa2, 0xca, 0x42, 0x8a, 0x90, 0x0a, 0xa4, 0x02, 0xa9, 0x40, 0x2a, 0x90, 0x0a, 0xa4, 0x02, 0xa9,
		0x40, 0x2a, 0xd2, 0xa4, 0x22, 0xfe, 0xea, 0x0b, 0x37, 0x16, 0x6d, 0x7b, 0xee, 0xd5, 0x1f, 0x7d,
		0xd4, 0xf2, 0x4a, 0xea, 0x10, 0x0c, 0x04, 0x03, 0xc1, 0x40, 0x30, 0x10, 0x0c, 0x04, 0x03, 0xc1,
		0x40, 0x30, 0xd2, 0x04, 0x13, 0x0d, 0xfa, 0xfd, 0x20, 0x1c, 0x42, 0x46, 0x28, 0xfe, 0x1c, 0x88,
		0x28, 0xd6, 0xc8, 0x2f, 0x2f, 0xa6, 0x0d, 0xbd, 0x40, 0x2f, 0xd0, 0x0b, 0xf4, 0x02, 0xbd, 0x40,
		0x2f, 0xd0, 0x0b, 0xf4, 0x92, 0xfa, 0x13, 0x29, 0xfb, 0x6a, 0xa9, 0xea, 0xfb, 0x41, 0xec, 0x0c,
		0x5b, 0x5a, 0xaa, 0x7b, 0x96, 0x22, 0xf7, 0x4e, 0xf4, 0x9c, 0xbe, 0x13, 0xdf, 0x0d, 0x47, 0xe0,
		0xad, 0xa0, 0x2f, 0x7c, 0x77, 0x44, 0x13, 0xd3, 0x79, 0x68, 0xcb, 0x0d, 0x7a, 0xfd, 0xc0, 0x17,
		0x7e, 0x1c, 0xcd, 0xfe, 0xb8, 0x15, 0xc5, 0x4e, 0x2c, 0xb6, 0xfa, 0xae, 0x27, 0xb6, 0x3a, 0x8e,
		0xd2, 0x51, 0x99, 0x52, 0x14, 0x87, 0x03, 0x37, 0xf6, 0x27, 0x93, 0x40, 0x63, 0x9a, 0x83, 0x8b,
		0x49, 0x06, 0x5a, 0x47, 0xd3, 0x0c, 0xcc, 0xfe, 0xd8, 0xba, 0x1a, 0x66, 0xa0, 0x75, 0xe1, 0x7a,
		0xa2, 0x75, 0x32, 0xcc, 0x40, 0x6d, 0xfc, 0xfd, 0xdf, 0x65, 0xd3, 0x34, 0x29, 0x9a, 0xa5, 0xe4,
		0x07, 0xbe, 0xfd, 0xa4, 0x4e, 0xd2, 0x36, 0xcc, 0x74, 0x42, 0x5c, 0x48, 0x29, 0x65, 0xe7, 0x98,
		0xcc, 0x85, 0xe5, 0x94, 0x1f, 0x93, 0xc5, 0x49, 0x15, 0x8c, 0xd4, 0x84, 0x8f, 0xaa, 0xd8, 0xa8,
		0x0d, 0x17, 0xb5, 0x61, 0xa2, 0x3e, 0x3c, 0xcc, 0x76, 0x20, 0x3a, 0xf6, 0x42, 0xb9, 0x86, 0x77,
		0xdc, 0xc8, 0xbe, 0xf7, 0x82, 0xae, 0xa3, 0x55, 0x63, 0x5e, 0x9a, 0x2a, 0xab, 0x33, 0x56, 0x67,
		0xac, 0xce, 0x58, 0x9d, 0xb1, 0x3a, 0x63, 0x75, 0xc6, 0xea, 0x8c, 0xd5, 0x99, 0xa4, 0xb6, 0xec,
		0xc4, 0x41, 0xcf, 0x73, 0xed, 0xa0, 0xaf, 0xfd, 0x92, 0xe4, 0x8b, 0x29, 0x43, 0x2e, 0x90, 0x0b,
		0xe4, 0x02, 0xb9, 0x40, 0x2e, 0x90, 0x0b, 0xe4, 0x02, 0xb9, 0x48, 0x92, 0xcb, 0x23, 0x55, 0xe8,
		0xb4, 0xfe, 0x5e, 0x92, 0x26, 0xb4, 0x02, 0xad, 0x40, 0x2b, 0xd0, 0x0a, 0xb4, 0x02, 0xad, 0x40,
		0x2b, 0xd0, 0x8a, 0x24, 0xad, 0xcc, 0x5d, 0x0e, 0x70, 0x6e, 0x82, 0x50, 0xdf, 0x01, 0xbe, 0x97,
		0x12, 0x86, 0x5b, 0xe0, 0x16, 0xb8, 0x05, 0x6e, 0x81, 0x5b, 0xe0, 0x16, 0xb8, 0x05, 0x6e, 0x51,
		0xe7, 0x96, 0xd8, 0xeb, 0x89, 0x60, 0x90, 0x09, 0xb9, 0x3c, 0x4b, 0x1a, 0x76, 0x81, 0x5d, 0x60,
		0x17, 0xd8, 0x05, 0x76, 0x81, 0x5d, 0x60, 0x17, 0xd8, 0x45, 0x92, 0x5d, 0xda, 0x4e, 0xec, 0xd8,
		0x5d, 0xcf, 0xff, 0x43, 0x1b, 0xb2, 0x2c, 0xa4, 0x08, 0xa9, 0x40, 0x2a, 0x90, 0x0a, 0xa4, 0x02,
		0xa9, 0x40, 0x2a, 0x90, 0x0a, 0xa4, 0x22, 0x49, 0x2a, 0xc2, 0x0d, 0x5d, 0x6d, 0x90, 0x32, 0x9f,
		0x18, 0x7c, 0x02, 0x9f, 0xc0, 0x27, 0xf0, 0x09, 0x7c, 0x02, 0x9f, 0xc0, 0x27, 0xf0, 0x89, 0x24,
		0x9f, 0x8c, 0x1e, 0x94, 0x77, 0x03, 0x3f, 0x0e, 0x83, 0xae, 0xdd, 0x0f, 0x83, 0x38, 0x70, 0x03,
		0x7d, 0xef, 0x93, 0xbc, 0x9a, 0x3a, 0x04, 0x03, 0xc1, 0x40, 0x30, 0x10, 0x0c, 0x04, 0x03, 0xc1,
		0x40, 0x30, 0x10, 0x8c, 0x24, 0xc1, 0x78, 0xc3, 0x71, 0xd0, 0xd7, 0xf8, 0xa8, 0xda, 0xf3, 0x04,
		0xe1, 0x14, 0x38, 0x05, 0x4e, 0x81, 0x53, 0xe0, 0x14, 0x38, 0x05, 0x4e, 0x81, 0x53, 0x24, 0x39,
		0xa5, 0xe7, 0x74, 0x87, 0x53, 0x80, 0xe6, 0x7b, 0xcd, 0x4b, 0x53, 0x85, 0x58, 0x20, 0x16, 0x88,
		0x05, 0x62, 0x81, 0x58, 0x20, 0x16, 0x88, 0x05, 0x62, 0x91, 0x24, 0x96, 0x7e, 0xe0, 0x45, 0x81,
		0xaf, 0x19, 0x58, 0x96, 0x25, 0x0a, 0xaf, 0xc0, 0x2b, 0xf0, 0x0a, 0xbc, 0x02, 0xaf, 0xc0, 0x2b,
		0xf0, 0x0a, 0xbc, 0x22, 0xc9, 0x2b, 0xa1, 0x70, 0x85, 0x77, 0x2f, 0x42, 0x3b, 0xb8, 0x17, 0xe1,
		0xe8, 0xe8, 0x89, 0x2e, 0x68, 0x79, 0x31, 0x65, 0xc8, 0x05, 0x72, 0x81, 0x5c, 0x20, 0x17, 0xc8,
		0x05, 0x72, 0x81, 0x5c, 0x20, 0x17, 0x49, 0x72, 0x89, 0x06, 0x61, 0x3f, 0xf4, 0x22, 0x61, 0xb7,
		0x83, 0xaf, 0xfa, 0x5e, 0x17, 0x5a, 0x9a, 0x2a, 0xc4, 0x02, 0xb1, 0x40, 0x2c, 0x10, 0x0b, 0xc4,
		0x02, 0xb1, 0x40, 0x2c, 0x10, 0x8b, 0x24, 0xb1, 0xc4, 0xdd, 0xbe, 0x3d, 0x9e, 0xad, 0xb4, 0x3f,
		0x2f, 0xf4, 0x72, 0xd2, 0xb0, 0x0b, 0xec, 0x02, 0xbb, 0xc0, 0x2e, 0xb0, 0x0b, 0xec, 0x02, 0xbb,
		0xc0, 0x2e, 0xb2, 0xec, 0x12, 0xc4, 0x1a, 0xaf, 0x0b, 0x3d, 0x49, 0x0d, 0x42, 0x81, 0x50, 0x20,
		0x14, 0x08, 0x05, 0x42, 0x81, 0x50, 0x20, 0x14, 0x08, 0x45, 0x92, 0x50, 0x06, 0x7e, 0x5b, 0x74,
		0x3c, 0x5f, 0xa3, 0xa8, 0xb2, 0x90, 0x22, 0xa4, 0x02, 0xa9, 0x40, 0x2a, 0x90, 0x0a, 0xa4, 0x02,
		0xa9, 0x40, 0x2a, 0x90, 0x8a, 0x34, 0xa9, 0x88, 0xbf, 0xfa, 0xc2, 0x8d, 0x45, 0xdb, 0x9e, 0x7b,
		0xf5, 0x47, 0x1f, 0xb5, 0xbc, 0x92, 0x3a, 0x04, 0x03, 0xc1, 0x40, 0x30, 0x10, 0x0c, 0x04, 0x03,
		0xc1, 0x40, 0x30, 0x10, 0x8c, 0x34, 0xc1, 0x44, 0x83, 0x7e, 0x3f, 0x08, 0x87, 0x90, 0x11, 0x8a,
		0x3f, 0x07, 0x22, 0x8a, 0x35, 0xf2, 0xcb, 0x8b, 0x69, 0x43, 0x2f, 0xd0, 0x0b, 0xf4, 0x02, 0xbd,
		0x40, 0x2f, 0xd0, 0x0b, 0xf4, 0x02, 0xbd, 0xa4, 0xfe, 0x44, 0xca, 0xbe, 0x5a, 0xaa, 0xfa, 0x7e,
		0x10, 0x3b, 0xc3, 0x96, 0x96, 0xea, 0x9e, 0xa5, 0xc8, 0xbd, 0x13, 0x3d, 0xa7, 0xef, 0xc4, 0x77,
		0xc3, 0x11, 0x78, 0x2b, 0xe8, 0x0b, 0xdf, 0x1d, 0xd1, 0xc4, 0x74, 0x1e, 0xda, 0x72, 0x83, 0x5e,
		0x3f, 0xf0, 0x85, 0x1f, 0x47, 0xb3, 0x3f, 0x6e, 0x45, 0xb1, 0x13, 0x8b, 0xad, 0xbe, 0xeb, 0x89,
		0x2d, 0x3f, 0xf0, 0xed, 0x8e, 0xa3, 0x74, 0x5c, 0xa6, 0x14, 0xc5, 0xe1, 0xc0, 0x8d, 0xfd, 0xc9,
		0x44, 0xd0, 0x98, 0xe6, 0xe2, 0x62, 0x92, 0x89, 0xd6, 0xd1, 0x34, 0x13, 0xb3, 0x3f, 0xb6, 0xae,
		0x86, 0x99, 0x68, 0x5d, 0xb8, 0x9e, 0x68, 0x9d, 0x07, 0xfe, 0xc9, 0x30, 0x0f, 0xb5, 0x71, 0x16,
		0xbe, 0xcb, 0xa6, 0x85, 0x92, 0xfd, 0x66, 0xc2, 0x36, 0x2c, 0x89, 0xbf, 0xe2, 0xd0, 0xb1, 0x07,
		0x7e, 0x14, 0x3b, 0x37, 0xdd, 0x74, 0x73, 0x68, 0xe9, 0xeb, 0x9d, 0xf0, 0x53, 0x4f, 0x51, 0x12,
		0xfd, 0xe3, 0x71, 0x6e, 0x7e, 0xb7, 0x15, 0x3f, 0xf4, 0x85, 0xf5, 0x7f, 0xac, 0x7f, 0xcd, 0x21,
		0x8a, 0x3d, 0xfc, 0x59, 0xf4, 0xe1, 0xaa, 0xd9, 0xb8, 0xac, 0xfe, 0x54, 0xfb, 0x97, 0x15, 0x84,
		0xcb, 0xfe, 0xb9, 0x7e, 0xde, 0xac, 0xfd, 0x74, 0x59, 0x6d, 0xd6, 0x8e, 0x5b, 0x47, 0xf5, 0xcb,
		0xa3, 0x4f, 0xf5, 0xe6, 0x4b, 0xbf, 0x79, 0x72, 0xf9, 0xe9, 0x5f, 0x32, 0xbd, 0x47, 0x91, 0x15,
		0xe7, 0x19, 0x71, 0x54, 0xaf, 0x92, 0x24, 0xa4, 0x8b, 0x0c, 0x9f, 0x10, 0xe1, 0xea, 0x2a, 0x3e,
		0xeb, 0x91, 0xed, 0x3b, 0xbd, 0x23, 0x73, 0xd2, 0x28, 0x93, 0x1c, 0x21, 0x35, 0x8c, 0x8c, 0x29,
		0xfa, 0x91, 0xf2, 0x00, 0x98, 0xac, 0xf5, 0xde, 0x6e, 0x83, 0x04, 0xb5, 0x5a, 0x0a, 0x45, 0x7b,
		0xe0, 0xb7, 0x1d, 0x3f, 0xb6, 0xc3, 0x20, 0xc5, 0xb8, 0x35, 0xe7, 0xbb, 0xf1, 0xe4, 0xf3, 0x09,
		0xdb, 0x31, 0xdd, 0x1a, 0x39, 0xf5, 0x9a, 0x58, 0x66, 0x0d, 0xac, 0xb8, 0xe6, 0x95, 0x1d, 0xb7,
		0x94, 0xd7, 0xb4, 0xca, 0x23, 0x95, 0xfa, 0x9a, 0x55, 0xef, 0x4c, 0x9a, 0x7a, 0x0d, 0x3a, 0xb7,
		0xe6, 0x9c, 0xc4, 0x92, 0x2d, 0xd5, 0x2b, 0xe7, 0x7b, 0x66, 0x79, 0x37, 0xc5, 0x67, 0x6a, 0xfe,
		0xa0, 0x97, 0xbe, 0xe1, 0x9b, 0xc1, 0x55, 0x1c, 0x7a, 0xfe, 0xad, 0x1c, 0xeb, 0x6d, 0x0f, 0x0b,
		0x7c, 0x71, 0x59, 0x3f, 0xab, 0x5e, 0xfe, 0x2e, 0x33, 0xcd, 0x96, 0x87, 0x9f, 0xbf, 0xaa, 0x1d,
		0x35, 0xce, 0x8f, 0x87, 0x29, 0x64, 0xca, 0xb5, 0xcd, 0xa0, 0x3e, 0xea, 0x5d, 0x12, 0xc5, 0x7c,
		0x2c, 0xa1, 0xd4, 0x9a, 0x67, 0xae, 0x7c, 0x1f, 0xac, 0xf2, 0x7a, 0x31, 0x52, 0xd3, 0x60, 0xdd,
		0x0b, 0xee, 0x53, 0xf1, 0xe5, 0xdc, 0x38, 0xfd, 0xf8, 0x51, 0x86, 0x68, 0x86, 0xe8, 0xb5, 0x0d,
		0xd1, 0x37, 0x41, 0xd0, 0x15, 0x8e, 0x2f, 0x33, 0x22, 0x97, 0x57, 0x18, 0x68, 0x91, 0x08, 0x3d,
		0xa7, 0x6b, 0xfb, 0x41, 0xfa, 0x40, 0x9b, 0x7d, 0x94, 0x40, 0x23, 0xd0, 0xd6, 0x16, 0x68, 0xd1,
		0x98, 0x2d, 0x24, 0xe2, 0xec, 0x70, 0x95, 0x71, 0x16, 0x74, 0xe2, 0xaf, 0x4e, 0x28, 0xec, 0x7b,
		0x11, 0x46, 0x69, 0x56, 0x75, 0xb3, 0x72, 0x3e, 0x4f, 0x81, 0xa8, 0x23, 0xea, 0x88, 0xba, 0xd7,
		0xa3, 0xee, 0xab, 0x17, 0xbb, 0x77, 0xc1, 0xbd, 0x08, 0xed, 0x50, 0x38, 0xed, 0x07, 0x89, 0xa8,
		0x7b, 0x9e, 0x02, 0x51, 0x47, 0xd4, 0x01, 0x95, 0xaf, 0x7f, 0x67, 0x2c, 0x7a, 0x7d, 0x11, 0x3a,
		0xf1, 0x20, 0x94, 0x58, 0xbf, 0xcd, 0x7f, 0x38, 0x5d, 0xb0, 0x95, 0x09, 0x36, 0x82, 0xed, 0x79,
		0x76, 0x8e, 0xbd, 0x30, 0x5d, 0xc3, 0x39, 0x5d, 0x27, 0xec, 0xd9, 0x91, 0xb8, 0x17, 0xa1, 0x17,
		0x3f, 0xa4, 0x6f, 0x81, 0xc7, 0x86, 0x7f, 0x96, 0x4e, 0xca, 0x5a, 0x94, 0x3b, 0x5b, 0x25, 0x7d,
		0xa6, 0x4a, 0xe5, 0x2c, 0x95, 0xa6, 0x33, 0x54, 0x3a, 0xf7, 0xc3, 0x94, 0xce, 0x4c, 0x65, 0xb3,
		0x23, 0xa6, 0x74, 0x46, 0x2a, 0xdb, 0xdd, 0x78, 0xe9, 0xb3, 0x50, 0xb3, 0x67, 0x6a, 0xdb, 0xc2,
		0x8f, 0xbd, 0xf8, 0x21, 0x14, 0x1d, 0x99, 0x96, 0x7f, 0x1c, 0xbf, 0x25, 0x8e, 0x91, 0x94, 0xea,
		0x93, 0xaf, 0xfe, 0xe8, 0x44, 0x42, 0xfd, 0x90, 0x64, 0xe3, 0xa2, 0x76, 0x7e, 0xd4, 0x38, 0x3f,
		0xa9, 0xff, 0xd4, 0xaa, 0x9e, 0x56, 0x2f, 0xcf, 0x5a, 0x57, 0xb5, 0x5f, 0x6a, 0x97, 0xf5, 0xe6,
		0xef, 0xb2, 0x7d, 0x69, 0x74, 0x68, 0x26, 0x52, 0x3a, 0x96, 0xa5, 0x78, 0x94, 0xf0, 0xb1, 0x68,
		0x47, 0x97, 0xf5, 0x66, 0xfd, 0xa8, 0x7a, 0xaa, 0x70, 0x42, 0xef, 0xc7, 0x75, 0x97, 0xe1, 0xac,
		0xfa, 0xff, 0x1a, 0x97, 0x46, 0x17, 0xa0, 0x7e, 0x6e, 0x76, 0x01, 0x3e, 0x9d, 0xff, 0xfb, 0xbc,
		0xf1, 0xeb, 0xb9, 0xc9, 0x45, 0xf8, 0xb5, 0x7a, 0x79, 0x5e, 0x3f, 0xff, 0x69, 0xd5, 0x27, 0x55,
		0xaf, 0x73, 0x73, 0x52, 0x21, 0x45, 0x13, 0x3c, 0x52, 0x4c, 0xec, 0xc4, 0x83, 0x48, 0x99, 0x85,
		0xc6, 0xa9, 0x40, 0x42, 0x90, 0x50, 0x61, 0x49, 0x28, 0xfd, 0x0a, 0x5d, 0x72, 0xa5, 0xbe, 0x8a,
		0xb0, 0x8f, 0xef, 0x42, 0x11, 0xdd, 0x05, 0xdd, 0xb6, 0x6a, 0xe4, 0xcf, 0x12, 0x22, 0xf8, 0x09,
		0xfe, 0xc2, 0x06, 0xff, 0xc0, 0xf3, 0xe3, 0x9d, 0x8a, 0x42, 0xec, 0x1f, 0x48, 0x7c, 0x54, 0xed,
		0xde, 0x87, 0xc2, 0x05, 0x18, 0x1d, 0xf7, 0x3c, 0x74, 0xdd, 0xef, 0xd0, 0x7e, 0x73, 0x40, 0xdf,
		0x8d, 0x01, 0x05, 0xe0, 0xd5, 0x72, 0x7f, 0x63, 0x5a, 0xc5, 0xbb, 0x95, 0xf7, 0xbb, 0xef, 0xf7,
		0x0f, 0x2a, 0xef, 0xf7, 0x8a, 0x5b, 0xd7, 0x2b, 0xba, 0x1d, 0x71, 0x9d, 0x87, 0x29, 0xfa, 0xfe,
		0x56, 0x61, 0x5a, 0xbe, 0xbf, 0xdd, 0xb0, 0xa9, 0x78, 0x7c, 0x66, 0x9c, 0x09, 0xf9, 0x95, 0x09,
		0x79, 0x52, 0x45, 0x85, 0x9b, 0x96, 0xdb, 0xc2, 0xf5, 0x7a, 0x4e, 0x57, 0xea, 0x86, 0xe6, 0x94,
		0xca, 0x2b, 0x12, 0x9f, 0x5d, 0x18, 0x28, 0xcb, 0x1b, 0x3b, 0xbf, 0xbf, 0xaf, 0x54, 0x76, 0x76,
		0x0e, 0x2a, 0xdb, 0x3b, 0xfb, 0x87, 0x7b, 0xbb, 0x07, 0x07, 0x7b, 0x87, 0xdb, 0x87, 0xba, 0x67,
		0xa1, 0xb2, 0xbe, 0x59, 0x68, 0x18, 0x5b, 0xe6, 0x4f, 0xf8, 0x8b, 0x75, 0x7e, 0x90, 0xe3, 0x3a,
		0x67, 0xe6, 0x4f, 0x5a, 0x69, 0x9e, 0x1f, 0xc5, 0x8e, 0xc4, 0x39, 0xf3, 0xd9, 0x76, 0xcd, 0x24,
		0x01, 0x08, 0x00, 0x02, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x02, 0x80, 0x00, 0x8c, 0x22, 0x80,
		0x58, 0x84, 0xf7, 0x4e, 0x57, 0x05, 0x01, 0x26, 0x29, 0x6c, 0x06, 0x03, 0x30, 0xf5, 0xbf, 0x34,
		0xf5, 0x17, 0x74, 0xc6, 0x8f, 0x62, 0x27, 0xb6, 0x25, 0x3b, 0xb9, 0xa5, 0xe6, 0xc8, 0x54, 0xfa,
		0xe4, 0x8f, 0x87, 0xc6, 0x92, 0xef, 0xf8, 0x41, 0x24, 0xdc, 0xc0, 0x6f, 0x4b, 0xf5, 0x3d, 0x94,
		0x7d, 0x94, 0xfd, 0x44, 0x55, 0xac, 0xdf, 0x91, 0x09, 0x8d, 0x3f, 0x17, 0xf3, 0x7c, 0x4f, 0xa2,
		0x97, 0x4c, 0x87, 0xc0, 0xe1, 0x87, 0x59, 0xe1, 0x33, 0xcd, 0xb3, 0xc2, 0x67, 0x85, 0xcf, 0x0a,
		0x9f, 0x15, 0x3e, 0x2b, 0x7c, 0xb3, 0x66, 0x7e, 0x3b, 0xf6, 0x7a, 0x42, 0x69, 0xfa, 0x1f, 0xa7,
		0xc0, 0x0a, 0x9f, 0x15, 0x7e, 0x01, 0x67, 0xfc, 0x61, 0xdf, 0x8e, 0x3d, 0xf7, 0x8f, 0x48, 0x69,
		0xce, 0x67, 0x7d, 0xcf, 0xfa, 0x9e, 0xf5, 0x3d, 0xeb, 0xfb, 0x35, 0xcd, 0xf2, 0x12, 0x81, 0x38,
		0x9b, 0xe0, 0x3d, 0x9f, 0xf5, 0x3d, 0x93, 0x3c, 0xeb, 0x7b, 0xd6, 0xf7, 0xac, 0xef, 0x59, 0xdf,
		0xb3, 0xbe, 0x37, 0x6c, 0xe6, 0x57, 0x5d, 0xdf, 0x3f, 0xa6, 0xc0, 0xfa, 0x9e, 0xf5, 0x3d, 0xeb,
		0x7b, 0xd6, 0xf7, 0xac, 0xef, 0x59, 0xdf, 0xb3, 0xbe, 0xcf, 0x7e, 0x96, 0x2f, 0xc0, 0x3b, 0x1f,
		0xe9, 0x3d, 0xf6, 0x2c, 0xd5, 0xe7, 0x3e, 0x9a, 0x73, 0x5f, 0xb9, 0x4a, 0x2b, 0xc2, 0x34, 0xf3,
		0xd0, 0x6c, 0xee, 0x19, 0x7e, 0x0a, 0xa7, 0x4f, 0xcc, 0x07, 0x15, 0xa3, 0x5b, 0xde, 0xe9, 0x73,
		0xe0, 0x27, 0xb7, 0x78, 0x7e, 0xa2, 0x71, 0xbc, 0x4f, 0xf1, 0x99, 0x49, 0xf6, 0x56, 0xf6, 0x1c,
		0x57, 0x11, 0x6d, 0xe2, 0x7e, 0xae, 0x5e, 0x1e, 0xff, 0x5a, 0xbd, 0xac, 0xb5, 0x8e, 0x1a, 0x67,
		0x17, 0x8d, 0xf3, 0xda, 0x79, 0xd3, 0x7c, 0xab, 0xb8, 0x8f, 0xd5, 0xa3, 0x7f, 0x5f, 0x9c, 0x56,
		0xcf, 0x6b, 0x26, 0xdb, 0x7c, 0x1d, 0xfd, 0x5c, 0xbd, 0xba, 0xaa, 0x5f, 0x19, 0x5d, 0x84, 0xc6,
		0x79, 0xf3, 0xb2, 0x71, 0x7a, 0x5a, 0xbb, 0x6c, 0x1d, 0x55, 0x2f, 0x8f, 0x8d, 0x2e, 0xca, 0xc5,
		0x27, 0x93, 0xb3, 0x7f, 0x52, 0xfd, 0x78, 0x59, 0x3f, 0x32, 0xbb, 0x04, 0x46, 0x9b, 0xf6, 0x9d,
		0x5c, 0x1a, 0xdd, 0x7f, 0x16, 0x1f, 0x35, 0x34, 0xb9, 0x34, 0xa7, 0xf5, 0xf3, 0x9a, 0xe9, 0x03,
		0x52, 0xe3, 0x62, 0xe4, 0x86, 0xda, 0x3a, 0xfa, 0xb9, 0x7a, 0x7e, 0x5e, 0x33, 0xda, 0x15, 0xf5,
		0xa2, 0x71, 0xd9, 0x34, 0x3b, 0xff, 0xbf, 0xd6, 0x2e, 0x5b, 0x57, 0x9f, 0x2e, 0x2e, 0x4e, 0x7f,
		0x37, 0xb9, 0x1c, 0x57, 0xb5, 0xf3, 0x2b, 0xb3, 0xdd, 0x5d, 0x27, 0x4f, 0xb3, 0x9a, 0x5c, 0x84,
		0xe6, 0x65, 0xf5, 0xfc, 0xea, 0xa8, 0x56, 0xff, 0xa5, 0x66, 0x74, 0x4b, 0xfc, 0x5a, 0x3f, 0xa9,
		0xb7, 0xaa, 0x47, 0x47, 0xb5, 0xab, 0xab, 0xd6, 0x45, 0xa3, 0x7e, 0xde, 0x2c, 0x9c, 0x5d, 0xed,
		0x8f, 0xac, 0x3a, 0xe5, 0x57, 0x9d, 0x57, 0x8d, 0x93, 0x66, 0xe1, 0x56, 0x9d, 0xf5, 0x86, 0xd1,
		0xab, 0xb5, 0x8f, 0x8d, 0x46, 0xb3, 0x75, 0xda, 0xa8, 0x1e, 0x9b, 0x3d, 0xf2, 0x34, 0x2e, 0x6a,
		0x97, 0xd5, 0x66, 0xfd, 0xfc, 0xa7, 0xd6, 0xd5, 0xef, 0x57, 0xcd, 0xda, 0x59, 0x91, 0xca, 0xd2,
		0xfa, 0x74, 0x71, 0x5c, 0x6d, 0x1a, 0x3d, 0xbf, 0x4d, 0x23, 0xff, 0xac, 0x71, 0xfc, 0xe9, 0xb4,
		0xb6, 0xb9, 0x2e, 0xe6, 0xd7, 0x2b, 0xdc, 0x45, 0x18, 0x44, 0xa2, 0x6d, 0xf7, 0x83, 0xaf, 0x22,
		0x4c, 0xbf, 0x97, 0x30, 0xf7, 0x59, 0x76, 0x14, 0xd8, 0x51, 0x50, 0x1b, 0x58, 0x54, 0x76, 0x14,
		0xd2, 0x9a, 0x13, 0x4b, 0x98, 0x12, 0x4b, 0x1e, 0x79, 0x90, 0x80, 0x3b, 0x95, 0x23, 0x0e, 0xaa,
		0x47, 0x1b, 0xb4, 0x6d, 0xae, 0xab, 0x6f, 0xaa, 0x4b, 0xcc, 0x47, 0x4a, 0x47, 0x17, 0xb4, 0x99,
		0x09, 0xe7, 0xa9, 0x0e, 0xf3, 0x3e, 0x41, 0x7d, 0xa7, 0xd0, 0x03, 0x4a, 0xd5, 0xc1, 0xed, 0x70,
		0xf8, 0x12, 0xed, 0x44, 0x51, 0x99, 0x72, 0x6e, 0xdb, 0x9a, 0x1b, 0x11, 0x3f, 0xcc, 0x9d, 0x37,
		0x58, 0xfa, 0xe3, 0x27, 0x3f, 0x1d, 0x9d, 0x43, 0x48, 0x3a, 0x21, 0x1e, 0x8b, 0xc8, 0x0d, 0xbd,
		0xfe, 0xe4, 0x94, 0x44, 0xa9, 0xda, 0x6e, 0x47, 0x56, 0xd4, 0x17, 0xae, 0xd7, 0xf1, 0x5c, 0x6b,
		0xf4, 0xc2, 0x40, 0x64, 0x85, 0xa2, 0xeb, 0xc4, 0xa2, 0x6d, 0xc5, 0x81, 0xe5, 0x58, 0xd3, 0xef,
		0x7c, 0x57, 0x90, 0x27, 0x04, 0xc7, 0x85, 0xdc, 0xc8, 0x19, 0x77, 0x52, 0x74, 0x53, 0x9e, 0x0f,
		0x14, 0x7f, 0x0e, 0xbc, 0xfe, 0x30, 0xfb, 0x76, 0xc7, 0xf1, 0xba, 0x69, 0x5e, 0xc0, 0x5c, 0x68,
		0xf7, 0xc5, 0xa4, 0x52, 0xd6, 0xe4, 0xb3, 0xb8, 0xa9, 0x77, 0xc6, 0xcd, 0x61, 0xc5, 0x77, 0xc2,
		0xba, 0x73, 0xc2, 0xf6, 0x57, 0x27, 0x14, 0x96, 0xe7, 0xb7, 0x3d, 0xd7, 0x89, 0x45, 0x64, 0xc5,
		0x77, 0x4e, 0x3c, 0xfa, 0xb7, 0x69, 0xf8, 0xfc, 0x2b, 0xb2, 0xfa, 0x77, 0x0f, 0x91, 0xe7, 0x3a,
		0x5d, 0x6b, 0x9a, 0x9b, 0x2f, 0xfe, 0x9d, 0x13, 0x59, 0xc3, 0x2c, 0x89, 0x76, 0xfa, 0x1c, 0x75,
		0x9c, 0x41, 0x37, 0x96, 0x92, 0x1b, 0x4a, 0xa3, 0xe1, 0x3d, 0xdd, 0x82, 0xe7, 0x7a, 0x33, 0x0e,
		0x47, 0xa7, 0x1e, 0x1e, 0x54, 0x87, 0x09, 0x6d, 0xc3, 0x85, 0xb6, 0x61, 0x43, 0xd7, 0xf0, 0xb1,
		0x12, 0x35, 0x93, 0x87, 0x86, 0x16, 0x87, 0xcb, 0x9e, 0x17, 0xf5, 0x9c, 0xd8, 0xbd, 0xd3, 0x31,
		0x5e, 0x4e, 0xd3, 0x5a, 0xf5, 0x80, 0x69, 0x79, 0x7e, 0x24, 0xc2, 0x21, 0x87, 0x78, 0x7e, 0x1c,
		0x0c, 0xff, 0xed, 0x8b, 0xef, 0x74, 0x3a, 0xc2, 0x1d, 0xfe, 0x68, 0xe9, 0xb0, 0xda, 0x0d, 0xdc,
		0xd1, 0xf1, 0x4f, 0xcb, 0x8b, 0xac, 0xa0, 0x63, 0x39, 0x56, 0xdb, 0xeb, 0x74, 0x44, 0x38, 0x4c,
		0x2b, 0x7e, 0xe8, 0x8b, 0xe1, 0x77, 0xf8, 0xd6, 0xd7, 0x3b, 0x27, 0xfe, 0xe2, 0x7b, 0x91, 0x35,
		0x3e, 0x6f, 0x39, 0x08, 0x19, 0x79, 0x19, 0x79, 0x19, 0x79, 0x19, 0x79, 0xe5, 0xd8, 0x57, 0x71,
		0xc9, 0x79, 0xfd, 0xd6, 0x92, 0x33, 0xdd, 0x99, 0x76, 0xb5, 0xb3, 0xec, 0x09, 0x9a, 0x41, 0xe5,
		0xdc, 0xfa, 0xeb, 0xdd, 0xf7, 0xe5, 0x7a, 0x7a, 0xa5, 0x5b, 0x96, 0xa2, 0x38, 0x08, 0x9d, 0xdb,
		0xb7, 0x7b, 0xe1, 0x9c, 0x99, 0xe9, 0xf8, 0x03, 0x6f, 0xd4, 0x7b, 0xb2, 0x35, 0x6c, 0xe2, 0x21,
		0x33, 0xcd, 0x10, 0x29, 0xa9, 0x0f, 0xa7, 0x1d, 0x04, 0xa5, 0x07, 0x3d, 0xe9, 0x41, 0x4e, 0x5e,
		0xff, 0x55, 0x93, 0x6d, 0x92, 0xae, 0x3b, 0x4b, 0xee, 0x63, 0x6b, 0xa6, 0x94, 0x6e, 0x26, 0x9f,
		0x2b, 0x86, 0x3c, 0xc2, 0x96, 0xc4, 0x1a, 0xb7, 0x24, 0x56, 0x7f, 0x85, 0x69, 0x34, 0x1a, 0x6e,
		0xa5, 0xea, 0xc1, 0x4a, 0xf3, 0xc0, 0xe8, 0xfb, 0x5a, 0x93, 0x4e, 0xbd, 0xc2, 0x6d, 0xc7, 0xf1,
		0x04, 0x97, 0x3a, 0xb4, 0x53, 0x69, 0xab, 0xb2, 0x91, 0x5d, 0x21, 0xb2, 0x89, 0xec, 0x8c, 0x22,
		0x3b, 0x4d, 0x07, 0xd6, 0x10, 0xd8, 0x09, 0x40, 0x4f, 0x17, 0x3a, 0x7f, 0xcb, 0x0d, 0x3a, 0x27,
		0x21, 0x4a, 0xf5, 0xba, 0xcd, 0x04, 0x9f, 0x07, 0x37, 0xb3, 0x32, 0xa5, 0x80, 0xe8, 0x27, 0x1f,
		0x03, 0xa5, 0x41, 0xe9, 0xd7, 0x3a, 0x96, 0xc4, 0xac, 0x3b, 0xff, 0x69, 0xb0, 0x9a, 0xc9, 0x57,
		0x71, 0xf2, 0x4d, 0xbd, 0xf3, 0x98, 0x72, 0x25, 0xa8, 0xb6, 0x22, 0x94, 0xec, 0xc2, 0xb9, 0xd1,
		0x6d, 0x79, 0xa1, 0x5f, 0x6b, 0xd7, 0x5f, 0x8d, 0x76, 0x9b, 0x36, 0x24, 0xa6, 0x1f, 0x9c, 0xd0,
		0x8b, 0xe2, 0xf9, 0xfb, 0x51, 0x2a, 0x92, 0x35, 0x2c, 0xb7, 0xbd, 0xa1, 0x1c, 0x2e, 0x3a, 0xc2,
		0x46, 0x73, 0xf8, 0xe8, 0x0a, 0x23, 0xed, 0xe1, 0xa4, 0x3d, 0xac, 0xf4, 0x87, 0x97, 0x5c, 0x98,
		0x49, 0x86, 0xdb, 0x34, 0xfb, 0xd2, 0x5b, 0x26, 0x0b, 0x3d, 0xa7, 0x2b, 0x9c, 0x8e, 0xdc, 0x35,
		0x9c, 0x85, 0xf9, 0x46, 0xc1, 0x06, 0xb1, 0x74, 0x31, 0x59, 0x2f, 0xbd, 0x7b, 0xb7, 0x35, 0xff,
		0x7f, 0xb3, 0xe5, 0xd1, 0x78, 0x2a, 0xdc, 0x1a, 0x05, 0xfc, 0x8a, 0xec, 0x8a, 0xb2, 0x1d, 0x39,
		0x25, 0x57, 0xf2, 0xea, 0xeb, 0xcc, 0xf9, 0x45, 0xd7, 0x93, 0xbf, 0x6d, 0x49, 0xe1, 0x86, 0xca,
		0x8a, 0x74, 0x3e, 0x2b, 0x4f, 0xfe, 0x96, 0x4a, 0xd9, 0x4b, 0xdf, 0x5e, 0x69, 0x8e, 0x43, 0x48,
		0x4d, 0x54, 0x2a, 0x13, 0x94, 0xe9, 0x96, 0xd0, 0xf0, 0x9b, 0x41, 0xfc, 0xa6, 0xbe, 0xf7, 0x2e,
		0x3f, 0x81, 0xa8, 0x4c, 0x1c, 0xf3, 0x13, 0x86, 0xf4, 0xd4, 0x90, 0xcd, 0x80, 0x91, 0x6e, 0x8b,
		0x60, 0x51, 0xb4, 0x48, 0xa9, 0xb4, 0x6a, 0x59, 0xf2, 0x55, 0x18, 0x32, 0x18, 0x32, 0x58, 0xf2,
		0xb1, 0xe4, 0x63, 0xc9, 0xc7, 0x92, 0x8f, 0x25, 0xdf, 0xe6, 0x2c, 0xf9, 0x64, 0x68, 0x23, 0x9b,
		0x15, 0x5f, 0x8a, 0x2d, 0x5f, 0x09, 0x7e, 0xd3, 0xba, 0x0f, 0xf0, 0x6f, 0xf1, 0x90, 0x72, 0x26,
		0x2a, 0x9d, 0x7a, 0x51, 0x5c, 0x8d, 0xe3, 0x94, 0xfb, 0x07, 0x67, 0x9e, 0x5f, 0xeb, 0x8a, 0xde,
		0x64, 0x57, 0x35, 0xc5, 0xac, 0x53, 0x3a, 0x73, 0xfe, 0x9a, 0xfb, 0xa4, 0x9a, 0x9b, 0x75, 0xa9,
		0x11, 0xb6, 0x45, 0x28, 0xda, 0x1f, 0x87, 0xa5, 0xf6, 0x07, 0xdd, 0xae, 0xcc, 0x47, 0x3f, 0x45,
		0xa3, 0x9b, 0xfa, 0xc9, 0xef, 0x83, 0xe6, 0xf6, 0x44, 0xc4, 0x8b, 0xc1, 0xb4, 0x82, 0xe3, 0x11,
		0x2f, 0x86, 0xcf, 0x86, 0x9d, 0x95, 0x48, 0x71, 0x70, 0x40, 0x57, 0x75, 0x67, 0x71, 0x6e, 0x22,
		0x0e, 0x1d, 0x3f, 0x72, 0x85, 0x77, 0x9f, 0xc0, 0xc5, 0x62, 0xe6, 0x84, 0x3d, 0xf7, 0x21, 0x33,
		0xce, 0x4c, 0x24, 0xcf, 0xb1, 0x65, 0xe4, 0xb1, 0x89, 0xf9, 0xf2, 0x71, 0x08, 0x59, 0xe3, 0x02,
		0x4a, 0xf5, 0xb4, 0x44, 0xba, 0x8e, 0xa7, 0xba, 0x26, 0xca, 0xdf, 0x81, 0x89, 0x54, 0x1d, 0x33,
		0x1b, 0x56, 0x4a, 0x7f, 0x5b, 0xdb, 0x77, 0x6e, 0xba, 0x23, 0x6f, 0x04, 0xd9, 0x3b, 0x87, 0x93,
		0x04, 0x36, 0xe4, 0x11, 0x26, 0xa9, 0x2e, 0xbe, 0x39, 0x2a, 0x9a, 0x54, 0x08, 0x98, 0xa2, 0xbd,
		0x17, 0xe5, 0xc6, 0x71, 0x7c, 0x27, 0x42, 0x5f, 0xc4, 0x76, 0xbf, 0xd7, 0xb6, 0xfb, 0xa1, 0x18,
		0xce, 0x41, 0x0a, 0xf1, 0xbf, 0x2c, 0x35, 0x06, 0x03, 0x06, 0x83, 0x82, 0x0f, 0x06, 0x85, 0x31,
		0x55, 0xad, 0x35, 0x7f, 0xae, 0x5d, 0x9e, 0xd7, 0x9a, 0xad, 0x8b, 0xb3, 0xe3, 0x56, 0xf3, 0xf7,
		0x8b, 0x9a, 0xf9, 0x46, 0xaa, 0xb5, 0xe6, 0xcf, 0xad, 0xf2, 0xf6, 0xf6, 0xf6, 0xc7, 0xea, 0x55,
		0xad, 0x75, 0xfa, 0x5b, 0x79, 0xdb, 0x64, 0xbf, 0xcb, 0x49, 0x61, 0x7e, 0x1a, 0x15, 0xe6, 0xe8,
		0xf4, 0x72, 0xb7, 0x38, 0x85, 0x29, 0x52, 0x59, 0x7e, 0x3d, 0x3e, 0x2b, 0x4e, 0x69, 0x8e, 0x2f,
		0x0b, 0x53, 0x94, 0x5a, 0x81, 0x3a, 0x59, 0xed, 0x72, 0xf7, 0xb4, 0x30, 0x85, 0x39, 0x29, 0x4e,
		0x1f, 0x2b, 0xd2, 0xa0, 0x7c, 0x71, 0x55, 0xa0, 0x71, 0xec, 0xea, 0xb2, 0x40, 0x73, 0xff, 0x55,
		0x31, 0x7a, 0x59, 0xab, 0x7a, 0x74, 0x54, 0x8c, 0x72, 0x34, 0x0a, 0x50, 0x8e, 0xc7, 0x89, 0xa5,
		0x28, 0x25, 0x39, 0x2d, 0x50, 0x49, 0xce, 0x8a, 0x52, 0x94, 0xab, 0xc2, 0x34, 0xca, 0xff, 0x18,
		0x5f, 0x92, 0xdd, 0x19, 0xe3, 0xef, 0x16, 0xa6, 0x2c, 0x27, 0x05, 0x2a, 0xcb, 0x69, 0xa1, 0xca,
		0x72, 0x58, 0x98, 0xb2, 0x14, 0x23, 0xf4, 0xcf, 0xae, 0xaa, 0x85, 0x40, 0xfc, 0xdd, 0xe2, 0x68,
		0x48, 0xbb, 0xc5, 0x51, 0x2a, 0x76, 0x8b, 0x34, 0x86, 0x15, 0x67, 0x3d, 0xbc, 0x5b, 0x9c, 0x15,
		0xe4, 0xee, 0x6f, 0xc5, 0x21, 0xfd, 0x59, 0x59, 0xcc, 0x07, 0xe4, 0x4f, 0xe7, 0xc7, 0xb5, 0x93,
		0xfa, 0x79, 0xed, 0x78, 0x73, 0xdf, 0xe3, 0x4a, 0xb3, 0x07, 0xdf, 0x11, 0xae, 0xdd, 0x0b, 0xda,
		0x0a, 0x17, 0xd7, 0xa6, 0x29, 0xb0, 0xd7, 0x9e, 0x20, 0x25, 0xf6, 0xda, 0x35, 0x46, 0x04, 0x7b,
		0xed, 0xb2, 0x05, 0x39, 0xa9, 0x1d, 0xb5, 0xce, 0x1a, 0xc7, 0xb5, 0x82, 0xec, 0xb3, 0x0f, 0x8b,
		0x53, 0xfd, 0xd4, 0x6c, 0x18, 0xfd, 0xae, 0x7e, 0xed, 0xa8, 0x75, 0x5c, 0xbf, 0xaa, 0x7e, 0x3c,
		0xad, 0x1d, 0x9b, 0x5e, 0x8e, 0xda, 0xb9, 0x6a, 0x31, 0x36, 0x69, 0x0a, 0x0e, 0xc2, 0x9e, 0xdd,
		0x71, 0xdc, 0x38, 0x08, 0xd5, 0x4f, 0xc1, 0x2d, 0x4b, 0x8c, 0x89, 0x99, 0x89, 0x99, 0x89, 0xd9,
		0x8c, 0x89, 0x79, 0xee, 0xd1, 0xfc, 0xd6, 0x49, 0xe3, 0xf2, 0xac, 0x75, 0x52, 0x3d, 0x6a, 0x36,
		0x2e, 0x0b, 0x32, 0x4f, 0x1f, 0x9d, 0x5c, 0x98, 0x3c, 0xb5, 0x1d, 0x9d, 0x5c, 0x54, 0x4c, 0xcf,
		0x7f, 0xab, 0x7a, 0xd4, 0x30, 0xbc, 0x0c, 0x46, 0x6b, 0x47, 0x47, 0x17, 0xd5, 0x7f, 0x1b, 0x9d,
		0xff, 0x2b, 0xb3, 0x63, 0xf8, 0xd8, 0xf0, 0xfc, 0x9f, 0x37, 0xce, 0x5b, 0x17, 0xa7, 0x9f, 0x7e,
		0xfa, 0x69, 0x48, 0xd8, 0x26, 0x17, 0xa4, 0x61, 0x78, 0x43, 0x34, 0x9a, 0x3f, 0x9b, 0x7d, 0x5a,
		0xe5, 0xbf, 0x0d, 0x6f, 0x80, 0x61, 0xfe, 0x2b, 0x87, 0xe6, 0x97, 0xa0, 0x75, 0x7c, 0x6c, 0x7a,
		0x21, 0xf6, 0xf6, 0xcd, 0x2f, 0x41, 0x21, 0x9a, 0xa1, 0x75, 0x3c, 0xbe, 0x3a, 0x53, 0x2e, 0x4e,
		0x51, 0x2a, 0xa6, 0x17, 0x65, 0x38, 0x5d, 0x5f, 0x99, 0x5c, 0x08, 0xc3, 0xe7, 0x09, 0xe3, 0xa7,
		0x09, 0xe3, 0x07, 0xd8, 0x61, 0x10, 0x98, 0x3d, 0xba, 0x16, 0x21, 0x8c, 0x7f, 0x33, 0x7a, 0x24,
		0xfd, 0x4d, 0x69, 0x10, 0xda, 0xa0, 0xed, 0x84, 0x5e, 0xd0, 0x1e, 0x74, 0x85, 0xdd, 0x19, 0xf8,
		0x6e, 0xec, 0x05, 0xbe, 0xd3, 0xb5, 0x63, 0x19, 0x79, 0x75, 0x5a, 0xf1, 0x2f, 0xa4, 0xc7, 0xa6,
		0x42, 0x82, 0x94, 0xd8, 0x54, 0xd0, 0x18, 0x2d, 0x6c, 0x2a, 0xc8, 0x16, 0x64, 0x7e, 0x53, 0xe1,
		0xac, 0x71, 0xfc, 0xe9, 0xb4, 0xd6, 0x3a, 0xf9, 0x74, 0x7e, 0xd4, 0xac, 0x37, 0xce, 0xab, 0xa7,
		0x05, 0xd9, 0x5a, 0x18, 0x96, 0xa2, 0x75, 0x5c, 0xff, 0xa9, 0xde, 0xac, 0x9e, 0xb6, 0x8e, 0x1a,
		0x3f, 0xd7, 0x2e, 0x6b, 0xe7, 0xcd, 0x56, 0xe3, 0xa2, 0x59, 0x37, 0xfa, 0x72, 0xd4, 0xa8, 0x58,
		0x57, 0xcd, 0xea, 0xf9, 0x71, 0xf5, 0xf2, 0x58, 0xb9, 0x38, 0xa6, 0x4f, 0x83, 0x46, 0x3b, 0x48,
		0xce, 0x8d, 0x95, 0x2b, 0x7b, 0x31, 0xb7, 0x39, 0xfb, 0xce, 0x35, 0xbc, 0x9a, 0xdb, 0xbf, 0x7b,
		0x88, 0x3c, 0xd7, 0xe9, 0xda, 0xee, 0x9d, 0xe3, 0xfb, 0xa2, 0x1b, 0xa5, 0xf7, 0xa5, 0x5b, 0x4c,
		0x02, 0x8b, 0x3a, 0x2c, 0xea, 0xb4, 0xc4, 0x7f, 0xfa, 0x67, 0xfd, 0xc6, 0x5d, 0x50, 0xe1, 0x5d,
		0xbf, 0x49, 0x02, 0x9b, 0xf1, 0xb0, 0x1f, 0xec, 0x6c, 0x2c, 0x3b, 0x4b, 0xbf, 0xf5, 0x20, 0xf9,
		0xf2, 0xe5, 0x62, 0xa4, 0xc8, 0x3e, 0x49, 0xa5, 0x10, 0x30, 0xca, 0x81, 0xa3, 0x23, 0x80, 0xf4,
		0x07, 0x92, 0xae, 0x80, 0xd2, 0x1e, 0x58, 0xda, 0x03, 0x2c, 0x93, 0x40, 0x53, 0x63, 0x67, 0xd9,
		0x57, 0x1f, 0x64, 0x03, 0x70, 0x9a, 0x80, 0x13, 0x45, 0x81, 0xeb, 0x39, 0xb1, 0x68, 0xdb, 0x41,
		0x3f, 0x9e, 0x27, 0x28, 0xf5, 0x0e, 0xf0, 0xd8, 0x35, 0x5f, 0xf9, 0x0e, 0xc5, 0x06, 0x54, 0x7b,
		0xb0, 0x45, 0x5b, 0x20, 0xeb, 0x0c, 0xe8, 0xec, 0x02, 0x5b, 0x77, 0x80, 0x67, 0x16, 0xe8, 0x99,
		0x05, 0x7c, 0xa6, 0x81, 0xaf, 0x36, 0x00, 0x68, 0x50, 0x12, 0x2c, 0x2d, 0xcf, 0xc0, 0x2c, 0xf4,
		0x3f, 0xf5, 0xe7, 0x60, 0x16, 0xe6, 0xdb, 0x03, 0x0d, 0x69, 0x5d, 0x4c, 0xd7, 0xd5, 0xb3, 0xb7,
		0x7a, 0x3e, 0xcc, 0xad, 0xa7, 0x97, 0xfe, 0xf8, 0xc9, 0x4f, 0xe5, 0x1f, 0x8e, 0x51, 0x6f, 0x6a,
		0x85, 0x66, 0x2e, 0xb5, 0x45, 0xe4, 0x86, 0x5e, 0x5f, 0xfa, 0x9d, 0x98, 0xa5, 0xad, 0x3c, 0x9f,
		0x28, 0x83, 0x32, 0x83, 0x32, 0x83, 0x72, 0xae, 0x07, 0xe5, 0x28, 0x0e, 0x3d, 0xff, 0x56, 0xe7,
		0x98, 0x7c, 0x68, 0xe0, 0x48, 0xe8, 0xf9, 0x6d, 0xf1, 0x97, 0xbe, 0x31, 0x70, 0x9c, 0x1c, 0xa3,
		0x1f, 0xa3, 0x1f, 0xa3, 0x5f, 0xae, 0x47, 0xbf, 0x81, 0xe7, 0xc7, 0xe5, 0x7d, 0x8d, 0xa3, 0xdf,
		0xbe, 0x86, 0xa4, 0x2e, 0x1d, 0xff, 0x56, 0x28, 0xed, 0x70, 0xce, 0xff, 0x4f, 0x4f, 0x1c, 0x58,
		0x93, 0x57, 0xe2, 0xb4, 0x05, 0xd6, 0x34, 0xd1, 0xd1, 0x86, 0xae, 0xfa, 0xf0, 0xb4, 0x90, 0xee,
		0x49, 0xe8, 0x8c, 0x8e, 0x8f, 0x1c, 0x7b, 0xb7, 0x5e, 0xda, 0x57, 0xed, 0x92, 0xf5, 0x21, 0x71,
		0xeb, 0xc4, 0xde, 0xbd, 0x48, 0xf5, 0xd8, 0xdc, 0x0a, 0xc2, 0xe4, 0x69, 0x93, 0x39, 0x7f, 0x65,
		0xd7, 0x64, 0xfb, 0x7b, 0x7b, 0x3b, 0x7b, 0x34, 0x9b, 0x96, 0xb1, 0x51, 0x5f, 0x2a, 0xd7, 0x06,
		0xf2, 0x57, 0xec, 0x84, 0xb7, 0x22, 0xb6, 0x83, 0x41, 0xdc, 0x1f, 0xc4, 0x76, 0x3f, 0xf8, 0x2a,
		0x42, 0x7d, 0x34, 0xb6, 0x2c, 0x71, 0xd8, 0x0c, 0x36, 0x83, 0xcd, 0x72, 0xcd, 0x66, 0x6d, 0xe1,
		0x7a, 0x3d, 0xa7, 0xbb, 0xbf, 0xab, 0x73, 0x71, 0x5a, 0xd1, 0x90, 0xd6, 0xc2, 0x14, 0x55, 0x01,
		0xfa, 0x24, 0x09, 0xe2, 0x7d, 0xa5, 0xb2, 0xb3, 0x73, 0x50, 0xd9, 0xde, 0xd9, 0x3f, 0xdc, 0xdb,
		0x3d, 0x38, 0xd8, 0x3b, 0xdc, 0x3e, 0xcc, 0x9a, 0x27, 0x2a, 0xd9, 0xf1, 0xc4, 0x70, 0xa0, 0xd8,
		0x3c, 0x0a, 0x5c, 0x6c, 0xc3, 0x03, 0x83, 0xdb, 0x10, 0x26, 0xd4, 0x3f, 0x37, 0x88, 0xbf, 0xe2,
		0xd0, 0xb1, 0x07, 0x7e, 0x14, 0x3b, 0x37, 0x5d, 0x4d, 0xb3, 0xc4, 0xd7, 0x3b, 0xe1, 0xe7, 0x71,
		0xb8, 0x7c, 0x9c, 0xbd, 0xde, 0xbd, 0xdb, 0x1a, 0xff, 0xdf, 0xf8, 0x60, 0xc9, 0xd6, 0xf2, 0x4b,
		0x0d, 0xd6, 0xff, 0xb1, 0xfe, 0x15, 0xb8, 0x76, 0xd0, 0x8f, 0x47, 0x7f, 0x8d, 0x3e, 0x2c, 0x39,
		0x7d, 0xfb, 0xaf, 0x92, 0xc6, 0x91, 0x40, 0x33, 0x82, 0x2d, 0x43, 0xb1, 0x51, 0xcb, 0x68, 0x0e,
		0xd0, 0xac, 0x80, 0x6c, 0x29, 0x98, 0xe9, 0x6c, 0xba, 0x5c, 0x4e, 0x07, 0xc7, 0x1a, 0xf7, 0xfd,
		0x5e, 0x0c, 0x80, 0x5f, 0xef, 0x84, 0x6f, 0xc5, 0x77, 0xc2, 0x7a, 0x3c, 0x50, 0x6b, 0x4d, 0x8e,
		0x6a, 0x58, 0x5e, 0x64, 0x05, 0x1d, 0x6b, 0x49, 0x75, 0xfd, 0x38, 0xfc, 0xfd, 0x2f, 0xbe, 0xf8,
		0x2b, 0x16, 0x7e, 0x5b, 0xb4, 0xad, 0x71, 0xfd, 0x5b, 0x5f, 0xbd, 0x6e, 0xd7, 0xba, 0x11, 0xd6,
		0x20, 0x4a, 0xfd, 0xd8, 0xee, 0xba, 0xe2, 0xe1, 0x79, 0x4c, 0xe8, 0xdb, 0x14, 0x5d, 0x4b, 0x78,
		0x2c, 0x84, 0x48, 0x46, 0x8d, 0xab, 0x35, 0xd3, 0xdf, 0x98, 0xc5, 0xf3, 0xa0, 0xec, 0xfc, 0x65,
		0x77, 0x9d, 0x48, 0xab, 0x9c, 0xf3, 0x98, 0x22, 0x1a, 0x0e, 0x1a, 0x0e, 0x1a, 0x4e, 0xae, 0x35,
		0x1c, 0xf9, 0x77, 0xc3, 0x5f, 0x54, 0x70, 0xca, 0xeb, 0x1a, 0x04, 0x57, 0x7a, 0x1c, 0x57, 0xf2,
		0xaa, 0xd8, 0x42, 0x3a, 0x3a, 0xae, 0x8e, 0x2d, 0xdc, 0x88, 0xda, 0x9a, 0xfc, 0x61, 0x4b, 0xe9,
		0xd0, 0xbc, 0xa5, 0xe7, 0x92, 0xd9, 0xc5, 0x24, 0x77, 0x47, 0x93, 0xcc, 0xb5, 0x26, 0x7f, 0x48,
		0x75, 0xfb, 0x4c, 0xbd, 0xb1, 0x25, 0x1a, 0x5a, 0xf1, 0xd4, 0x89, 0x96, 0xd3, 0x26, 0x8a, 0xb3,
		0x20, 0x37, 0x17, 0x56, 0x3b, 0xbb, 0x71, 0x73, 0x21, 0x83, 0x59, 0x4b, 0xe3, 0x01, 0x65, 0x1d,
		0x07, 0x93, 0xa7, 0x07, 0x92, 0x67, 0x0a, 0xc4, 0x38, 0xc2, 0x73, 0x3c, 0x92, 0x45, 0xb1, 0x13,
		0x6b, 0xb0, 0x0d, 0x18, 0x27, 0xb3, 0xe6, 0x3b, 0x58, 0x15, 0x46, 0x32, 0x46, 0xb2, 0xb5, 0x8c,
		0x64, 0xdc, 0xc1, 0x62, 0x41, 0xce, 0x82, 0x9c, 0x05, 0x79, 0x86, 0x0b, 0x72, 0xee, 0x60, 0xe5,
		0x4c, 0x1f, 0xe5, 0x0e, 0x16, 0x83, 0x32, 0x83, 0xf2, 0x66, 0x0f, 0xca, 0xdc, 0xc1, 0xe2, 0x0e,
		0x16, 0xa3, 0x1f, 0xa3, 0xdf, 0x66, 0x8e, 0x7e, 0xdc, 0xc1, 0x4a, 0x93, 0x31, 0xee, 0x60, 0x3d,
		0xe9, 0x43, 0xdc, 0xc1, 0xe2, 0x0e, 0x96, 0xb6, 0xb1, 0x51, 0x5f, 0x2a, 0xd7, 0x46, 0xf2, 0x57,
		0x06, 0x77, 0xaf, 0xe6, 0x13, 0xd5, 0xc3, 0x62, 0x65, 0x58, 0x0c, 0x16, 0x83, 0xc5, 0x74, 0xec,
		0x17, 0x4c, 0x13, 0x72, 0xee, 0x6f, 0xf5, 0xf5, 0x90, 0xe9, 0x46, 0xc1, 0xfd, 0xad, 0xae, 0xbe,
		0xa1, 0x67, 0x19, 0xa6, 0x7d, 0x08, 0xc8, 0x62, 0x28, 0x58, 0x3a, 0x24, 0x3c, 0xf4, 0x45, 0x64,
		0xd8, 0x2d, 0x00, 0xad, 0x83, 0x43, 0xe6, 0x83, 0xc4, 0x8b, 0x83, 0xc5, 0xa8, 0xe6, 0xf3, 0x86,
		0x27, 0x9a, 0x7a, 0xad, 0xb6, 0xa5, 0xdc, 0x42, 0x9f, 0xd5, 0x79, 0x75, 0x73, 0x61, 0xfe, 0xd7,
		0x78, 0xf9, 0x2b, 0xd3, 0x9b, 0x65, 0x9a, 0xd7, 0x90, 0xfa, 0xd7, 0x92, 0x99, 0xae, 0x29, 0x17,
		0x16, 0x2a, 0x99, 0x5f, 0xf5, 0x5c, 0x49, 0xa3, 0xbe, 0xb4, 0x8c, 0xd1, 0x7a, 0xf5, 0x33, 0x83,
		0x45, 0x68, 0xa6, 0x8b, 0xd1, 0x04, 0x6d, 0x7d, 0x50, 0xa0, 0xb6, 0xd6, 0xbb, 0x64, 0xd5, 0x3b,
		0x37, 0xe8, 0x4f, 0xed, 0x3a, 0x27, 0x4b, 0x6a, 0x0d, 0xc1, 0x50, 0xf2, 0xfc, 0x28, 0x76, 0x46,
		0x93, 0xbb, 0x66, 0xd6, 0x7d, 0x4c, 0x18, 0xde, 0x85, 0x77, 0xe1, 0x5d, 0x78, 0x17, 0xde, 0x85,
		0x77, 0xe1, 0x5d, 0x78, 0x17, 0xde, 0x85, 0x77, 0xd7, 0xca, 0xbb, 0xb1, 0x08, 0xef, 0x9d, 0x6e,
		0x16, 0xc0, 0x3b, 0x49, 0x19, 0xe2, 0x85, 0x78, 0x21, 0xde, 0x8d, 0x23, 0xde, 0x28, 0x76, 0x62,
		0x5b, 0xf3, 0x20, 0x30, 0x3f, 0x10, 0x68, 0x64, 0xa5, 0xd2, 0x27, 0x7f, 0x3c, 0x55, 0x96, 0x7c,
		0xc7, 0x0f, 0x22, 0xe1, 0x06, 0x7e, 0x5b, 0x6b, 0xac, 0xc1, 0xbd, 0x19, 0x9e, 0x21, 0x7a, 0x99,
		0x7c, 0xb6, 0x8d, 0x25, 0x1f, 0x53, 0x31, 0xb7, 0x7c, 0xb8, 0xbb, 0xbb, 0x7f, 0xb0, 0xbb, 0xbb,
		0x7d, 0xb0, 0x73, 0xb0, 0xfd, 0x7e, 0x6f, 0xaf, 0xbc, 0x5f, 0xde, 0xa3, 0xb5, 0xe1, 0xdc, 0xb5,
		0x73, 0x6e, 0x4f, 0x63, 0xef, 0x9f, 0x4e, 0x71, 0xc3, 0x44, 0xa1, 0x5b, 0xe8, 0x16, 0xba, 0xdd,
		0x38, 0xba, 0x45, 0xcf, 0x85, 0x6b, 0x9f, 0xc3, 0x0f, 0x7a, 0xee, 0xe6, 0x80, 0x2e, 0x7a, 0x2e,
		0x9c, 0x9b, 0x53, 0xce, 0xb5, 0x63, 0xaf, 0x27, 0x32, 0x81, 0xdd, 0x71, 0xca, 0x10, 0x2f, 0xc4,
		0x0b, 0xf1, 0x6e, 0x1c, 0xf1, 0x0e, 0x63, 0x3f, 0xf6, 0xdc, 0x3f, 0xa2, 0x4c, 0x98, 0x17, 0x35,
		0x17, 0x35, 0xf7, 0x0d, 0xee, 0x41, 0xcd, 0x5d, 0x35, 0xe4, 0xa2, 0xe6, 0x42, 0xb9, 0xf9, 0xa4,
		0x5c, 0x8d, 0x03, 0xdb, 0x0c, 0x70, 0x3d, 0x1f, 0xb6, 0x85, 0x6d, 0x61, 0xdb, 0xcd, 0x63, 0x5b,
		0xd4, 0x5c, 0xb8, 0xf6, 0x39, 0xfc, 0xa0, 0xe6, 0x6e, 0x0e, 0xe8, 0xa2, 0xe6, 0xc2, 0xb9, 0x39,
		0xe5, 0xdc, 0xac, 0xd4, 0xdc, 0xc7, 0x94, 0x21, 0x5e, 0x88, 0x17, 0xe2, 0xdd, 0x38, 0xe2, 0x45,
		0xcd, 0x85, 0x7a, 0x97, 0x91, 0x10, 0x6a, 0x6e, 0x61, 0x21, 0x17, 0x35, 0x17, 0xca, 0xd5, 0x4f,
		0xb9, 0x3c, 0x1b, 0xbe, 0x9a, 0x69, 0x60, 0xf1, 0xd9, 0xf0, 0xd1, 0x53, 0x48, 0xbc, 0x1a, 0x6e,
		0x0e, 0xad, 0x6a, 0x6c, 0x39, 0x1e, 0x0d, 0x57, 0x78, 0x57, 0x7a, 0x54, 0xfd, 0xbc, 0x19, 0xbe,
		0xf6, 0xe0, 0xb0, 0x32, 0x78, 0x33, 0x7c, 0x49, 0xdb, 0xf2, 0x64, 0x78, 0x86, 0x24, 0xa1, 0x3a,
		0x83, 0x6b, 0x7a, 0xc5, 0x76, 0x9a, 0x5e, 0xb6, 0xaf, 0xd9, 0x8e, 0x07, 0x6e, 0x7d, 0x8e, 0xc5,
		0x56, 0xc6, 0x0f, 0xdc, 0x5e, 0x0d, 0xf3, 0xdb, 0xaa, 0x0f, 0xf3, 0x7b, 0x31, 0xca, 0xae, 0x81,
		0xa6, 0xd3, 0xa3, 0x97, 0xdc, 0x6d, 0xe7, 0x56, 0xe8, 0xb3, 0x9c, 0x9e, 0x25, 0xc9, 0xe3, 0x1f,
		0x89, 0xd4, 0x4d, 0x0c, 0xa7, 0x31, 0x9c, 0x5e, 0xb1, 0x62, 0x39, 0xed, 0x7f, 0x7d, 0x11, 0xba,
		0xc2, 0x8f, 0xd5, 0xa3, 0x75, 0x3e, 0x62, 0xf7, 0x78, 0x00, 0x24, 0x1f, 0x02, 0x21, 0x0f, 0x80,
		0x58, 0x99, 0x3f, 0x00, 0x52, 0xde, 0xa6, 0xd1, 0xa0, 0xee, 0xac, 0x75, 0xb3, 0x50, 0x74, 0x44,
		0x28, 0x7c, 0x57, 0xe4, 0x59, 0x3c, 0xfb, 0xef, 0xab, 0x93, 0x0b, 0xfb, 0xf8, 0xd8, 0x3a, 0x3a,
		0xab, 0x5f, 0x59, 0x7b, 0xef, 0xb6, 0xad, 0xe6, 0xb0, 0x02, 0xac, 0x43, 0xbb, 0x5c, 0xa9, 0x18,
		0x26, 0x87, 0xcd, 0xea, 0xdb, 0x64, 0x4d, 0xec, 0xd5, 0x06, 0x21, 0xea, 0x73, 0xb3, 0xfe, 0xba,
		0xf1, 0x9c, 0xc8, 0x76, 0x07, 0x61, 0x28, 0x34, 0x98, 0x23, 0x3f, 0x5b, 0x88, 0x3d, 0x49, 0x9b,
		0x27, 0x80, 0x58, 0x91, 0xb1, 0x22, 0xd3, 0x38, 0xd7, 0xf3, 0x04, 0xd0, 0x7a, 0x87, 0x80, 0x2c,
		0x86, 0x82, 0xa5, 0x43, 0x02, 0x47, 0xd0, 0xd6, 0x01, 0x30, 0x1c, 0x41, 0x93, 0xed, 0xb3, 0x5c,
		0xba, 0xe0, 0xf8, 0xd9, 0x73, 0xa9, 0x82, 0x4b, 0x17, 0xeb, 0x94, 0xa1, 0x32, 0x95, 0xa3, 0x12,
		0xb4, 0x35, 0x97, 0x2e, 0x56, 0x33, 0x37, 0xe8, 0x4f, 0x8d, 0x27, 0x80, 0x12, 0x4c, 0x78, 0x3c,
		0x01, 0x04, 0xef, 0xc2, 0xbb, 0xf0, 0x2e, 0xbc, 0x0b, 0xef, 0xc2, 0xbb, 0xf0, 0x2e, 0xbc, 0x0b,
		0xef, 0xe6, 0x82, 0x77, 0x79, 0x02, 0x08, 0xe2, 0x85, 0x78, 0x21, 0x5e, 0xdd, 0x7d, 0x96, 0x27,
		0x80, 0xe0, 0xde, 0xe5, 0x2c, 0xc4, 0x35, 0xe3, 0xc2, 0x62, 0x2e, 0xd7, 0x8c, 0xe1, 0xdc, 0x5c,
		0x72, 0x2e, 0x4f, 0x00, 0x41, 0xb7, 0xd0, 0x2d, 0x74, 0xab, 0xab, 0xcf, 0xa2, 0xe7, 0xc2, 0xb5,
		0xcf, 0xe1, 0x07, 0x3d, 0x77, 0x73, 0x40, 0x17, 0x3d, 0x17, 0xce, 0xcd, 0x29, 0xe7, 0xf2, 0x04,
		0x10, 0xc4, 0x0b, 0xf1, 0x42, 0xbc, 0x9a, 0xfb, 0x2c, 0xa6, 0x91, 0x50, 0xef, 0x32, 0x12, 0x42,
		0xcd, 0x2d, 0x2c, 0xe4, 0xa2, 0xe6, 0x42, 0xb9, 0xf9, 0xa4, 0x5c, 0x9e, 0x00, 0x82, 0x6d, 0x61,
		0x5b, 0xd8, 0x56, 0x53, 0x9f, 0x45, 0xcd, 0x85, 0x6b, 0x9f, 0xc3, 0x0f, 0x6a, 0xee, 0xe6, 0x80,
		0x2e, 0x6a, 0x2e, 0x9c, 0x9b, 0x53, 0xce, 0xe5, 0x09, 0x20, 0x88, 0x17, 0xe2, 0x85, 0x78, 0x35,
		0xf7, 0x59, 0xd4, 0x5c, 0xa8, 0x77, 0x19, 0x09, 0xa1, 0xe6, 0x16, 0x16, 0x72, 0x51, 0x73, 0xa1,
		0x5c, 0xfd, 0x94, 0xcb, 0x13, 0x40, 0xab, 0x99, 0x06, 0x78, 0x02, 0x88, 0x27, 0x80, 0x78, 0x02,
		0x88, 0x27, 0x80, 0x78, 0x02, 0x88, 0x27, 0x80, 0xb4, 0xa6, 0xc2, 0x13, 0x40, 0x69, 0x9f, 0x00,
		0xd2, 0x6e, 0x5c, 0x6c, 0xad, 0xe4, 0x25, 0xa0, 0xd3, 0x61, 0xb6, 0x3f, 0x7a, 0x4e, 0x74, 0x34,
		0xc9, 0xb4, 0xb1, 0x7e, 0xd4, 0xb1, 0xe8, 0xf5, 0x45, 0xe8, 0xc4, 0x83, 0x50, 0xfb, 0xbb, 0x40,
		0xf3, 0x49, 0xe3, 0x46, 0x9d, 0x48, 0xfa, 0xc4, 0x8d, 0x1a, 0x37, 0xea, 0x84, 0x80, 0x88, 0x1b,
		0xf5, 0x5a, 0x87, 0x80, 0x2c, 0x86, 0x82, 0x65, 0x43, 0xc2, 0xe3, 0x54, 0xcb, 0xb6, 0xc8, 0x7a,
		0x16, 0x9a, 0x8b, 0x4d, 0xc0, 0xfe, 0x48, 0xca, 0x5e, 0x6c, 0xee, 0x89, 0xa0, 0x32, 0x7b, 0x23,
		0x9a, 0x13, 0xcf, 0xc1, 0x89, 0xa0, 0x32, 0x27, 0x82, 0x66, 0x6d, 0x5d, 0xf0, 0x13, 0x41, 0x65,
		0xf6, 0x4a, 0x2c, 0x4e, 0x04, 0xbd, 0xd0, 0x88, 0xf8, 0x53, 0x43, 0xc0, 0x10, 0x30, 0x04, 0x0c,
		0x01, 0x43, 0xc0, 0x10, 0x30, 0x04, 0x0c, 0x01, 0x43, 0xc0, 0x9b, 0x46, 0xc0, 0x38, 0x56, 0x73,
		0x26, 0x1e, 0xf4, 0x7d, 0x05, 0x7d, 0x21, 0x5e, 0xa9, 0x3e, 0x8b, 0x63, 0x35, 0xdc, 0xbb, 0x9c,
		0x85, 0x38, 0x15, 0x5f, 0x58, 0xcc, 0xe5, 0x54, 0x3c, 0x9c, 0x9b, 0x4b, 0xce, 0xc5, 0xb1, 0x3a,
		0xd7, 0x74, 0x8b, 0xc2, 0xbb, 0x76, 0xcc, 0x45, 0xe1, 0x55, 0xeb, 0xc5, 0x28, 0xbc, 0x90, 0xee,
		0x73, 0x1c, 0x42, 0xe1, 0xdd, 0x1c, 0xf4, 0x45, 0xe1, 0x85, 0x7c, 0x73, 0x4a, 0xbe, 0x78, 0x58,
		0x9b, 0xc0, 0xc0, 0xa0, 0xef, 0xba, 0xd0, 0x17, 0xe2, 0x95, 0xea, 0xb3, 0xb8, 0x9e, 0x40, 0xbd,
		0xcb, 0x48, 0x08, 0x7d, 0xb7, 0xb0, 0x90, 0x8b, 0xbe, 0x0b, 0xe5, 0xe6, 0x93, 0x72, 0xf1, 0xb0,
		0xce, 0x33, 0xdb, 0xa2, 0xef, 0xae, 0x1d, 0x72, 0xd1, 0x77, 0xd5, 0x7a, 0x31, 0xfa, 0x2e, 0xa4,
		0xfb, 0x1c, 0x87, 0xd0, 0x77, 0x37, 0x07, 0x7d, 0xd1, 0x77, 0x21, 0xdf, 0x9c, 0x92, 0x2f, 0xae,
		0xd6, 0x26, 0x30, 0x30, 0xe8, 0xbb, 0x2e, 0xf4, 0x85, 0x78, 0xa5, 0xfa, 0x2c, 0xfa, 0x2e, 0xd4,
		0xbb, 0x8c, 0x84, 0xd0, 0x77, 0x0b, 0x0b, 0xb9, 0xe8, 0xbb, 0x50, 0xae, 0x7e, 0xca, 0x2d, 0x9c,
		0xab, 0x75, 0x28, 0x3a, 0x22, 0x14, 0xbe, 0x2b, 0xf2, 0x6c, 0x6d, 0xfd, 0xdf, 0x57, 0x27, 0x17,
		0xf6, 0xf1, 0xb1, 0x75, 0x74, 0x56, 0xbf, 0xb2, 0xf6, 0xde, 0x6d, 0x5b, 0xcd, 0x61, 0x05, 0x58,
		0x87, 0x76, 0xb9, 0x52, 0x31, 0x0c, 0x43, 0x67, 0xf5, 0x6d, 0x32, 0x89, 0xbe, 0xda, 0x20, 0x38,
		0xe1, 0x6a, 0x8d, 0x7a, 0x73, 0x9d, 0x70, 0xf5, 0x79, 0xa6, 0x5a, 0xab, 0x33, 0xc2, 0x6d, 0xce,
		0x65, 0xda, 0x40, 0x23, 0xdc, 0x60, 0x10, 0xf7, 0x07, 0xb1, 0xdd, 0x09, 0xc5, 0x9f, 0x03, 0xe1,
		0xbb, 0x0f, 0xfa, 0x7c, 0x70, 0x17, 0x52, 0xd6, 0x63, 0x83, 0xbb, 0x8d, 0x0d, 0xee, 0x1a, 0xa7,
		0x28, 0x6c, 0x70, 0x73, 0xc4, 0x77, 0xda, 0xf4, 0x8f, 0x69, 0xff, 0x9b, 0x06, 0xeb, 0x48, 0x38,
		0xd2, 0xd1, 0xff, 0xf4, 0x49, 0x1e, 0x33, 0xa9, 0xe3, 0xec, 0xe7, 0xff, 0xe8, 0xc8, 0x9a, 0x5e,
		0x69, 0x43, 0x23, 0xc6, 0x66, 0x21, 0x65, 0x64, 0x25, 0x61, 0x64, 0xbe, 0x98, 0xcd, 0x6e, 0x11,
		0xab, 0xf3, 0xc9, 0x92, 0x2c, 0x24, 0x8a, 0x15, 0x4a, 0x13, 0x26, 0xb7, 0x22, 0xd0, 0xcf, 0x03,
		0x56, 0x3c, 0x60, 0x65, 0x94, 0x1c, 0xc0, 0x03, 0x56, 0x1a, 0xba, 0x3f, 0x0f, 0x58, 0xf1, 0x80,
		0x15, 0x0f, 0x58, 0xe5, 0x67, 0x06, 0x5f, 0xa7, 0x7c, 0xd3, 0x0f, 0xbe, 0x8a, 0x50, 0xbb, 0x74,
		0x33, 0x4e, 0x95, 0xd7, 0x8b, 0x90, 0x6d, 0x90, 0x6d, 0x34, 0xb2, 0x3a, 0xaf, 0x17, 0xad, 0x77,
		0x08, 0xc8, 0x62, 0x28, 0x58, 0x3a, 0x24, 0x70, 0xea, 0x6d, 0x1d, 0x8b, 0x0b, 0x4e, 0xbd, 0xc9,
		0xf6, 0x59, 0x73, 0xef, 0x79, 0x54, 0x38, 0xf1, 0xa6, 0x39, 0xf1, 0x1c, 0xdc, 0xf3, 0xa8, 0x70,
		0xcf, 0x63, 0xd6, 0xd6, 0x05, 0xbf, 0xe7, 0x51, 0xe1, 0x04, 0x9c, 0xc5, 0x3d, 0x8f, 0x17, 0x1a,
		0x91, 0xb7, 0x8a, 0xe0, 0x5d, 0x78, 0x17, 0xde, 0x85, 0x77, 0xe1, 0x5d, 0x78, 0x17, 0xde, 0x85,
		0x77, 0xe1, 0xdd, 0x62, 0xf3, 0x2e, 0x2f, 0x13, 0x41, 0xbc, 0x10, 0x2f, 0xc4, 0xab, 0xbb, 0xcf,
		0xf2, 0x32, 0x11, 0xdc, 0xbb, 0x9c, 0x85, 0xb8, 0xd9, 0x5c, 0x58, 0xcc, 0xe5, 0x66, 0x33, 0x9c,
		0x9b, 0x4b, 0xce, 0xe5, 0x65, 0x22, 0xe8, 0x16, 0xba, 0x85, 0x6e, 0x75, 0xf5, 0x59, 0xf4, 0x5c,
		0xb8, 0xf6, 0x39, 0xfc, 0xa0, 0xe7, 0x6e, 0x0e, 0xe8, 0xa2, 0xe7, 0xc2, 0xb9, 0x39, 0xe5, 0x5c,
		0xde, 0x21, 0x82, 0x78, 0x21, 0x5e, 0x88, 0x57, 0x73, 0x9f, 0xc5, 0xa7, 0x12, 0xea, 0x5d, 0x46,
		0x42, 0xa8, 0xb9, 0x85, 0x85, 0x5c, 0xd4, 0x5c, 0x28, 0x37, 0x9f, 0x94, 0xcb, 0x3b, 0x44, 0xb0,
		0x2d, 0x6c, 0x0b, 0xdb, 0x6a, 0xea, 0xb3, 0xa8, 0xb9, 0x70, 0xed, 0x73, 0xf8, 0x41, 0xcd, 0xdd,
		0x1c, 0xd0, 0x45, 0xcd, 0x85, 0x73, 0x73, 0xca, 0xb9, 0xbc, 0x3a, 0x04, 0xf1, 0x42, 0xbc, 0x10,
		0xaf, 0xe6, 0x3e, 0x8b, 0x9a, 0x0b, 0xf5, 0x2e, 0x23, 0x21, 0xd4, 0xdc, 0xc2, 0x42, 0x2e, 0x6a,
		0x2e, 0x94, 0xab, 0x9f, 0x72, 0xb1, 0x22, 0x5e, 0xcd, 0x34, 0x80, 0x15, 0x31, 0x56, 0xc4, 0x58,
		0x11, 0x63, 0x45, 0x8c, 0x15, 0x31, 0x56, 0xc4, 0x5a, 0x53, 0xe1, 0x05, 0xb1, 0xb4, 0x2f, 0x88,
		0x69, 0xb4, 0x2c, 0xb6, 0x56, 0xf2, 0x78, 0x58, 0x63, 0x94, 0xe1, 0x8b, 0x51, 0x7e, 0x0d, 0x34,
		0x9e, 0x8e, 0x9d, 0xf0, 0x56, 0xcc, 0xbd, 0xee, 0x65, 0xb7, 0xc5, 0xbd, 0xa7, 0xa7, 0xcf, 0xcc,
		0xf4, 0x90, 0x97, 0xbf, 0x03, 0x53, 0xea, 0x44, 0x0a, 0x28, 0xa6, 0xd4, 0x98, 0x52, 0x27, 0xe4,
		0x44, 0x4c, 0xa9, 0xd7, 0x3a, 0x04, 0x64, 0x31, 0x14, 0x2c, 0x1b, 0x12, 0xa6, 0x6b, 0x18, 0x36,
		0x46, 0xd6, 0xb0, 0x31, 0x32, 0xab, 0x7d, 0x36, 0x47, 0x52, 0xf6, 0x5d, 0x73, 0x8f, 0x03, 0x95,
		0xd9, 0x18, 0xd1, 0x9c, 0x78, 0x0e, 0x8e, 0x03, 0x95, 0x39, 0x0e, 0x34, 0x6b, 0xeb, 0x82, 0x1f,
		0x07, 0x2a, 0xb3, 0x51, 0x62, 0x71, 0x1c, 0xe8, 0x85, 0x46, 0xc4, 0x9c, 0x1a, 0xee, 0x85, 0x7b,
		0xe1, 0x5e, 0xb8, 0x17, 0xee, 0x85, 0x7b, 0xe1, 0x5e, 0xb8, 0x17, 0xee, 0xdd, 0x0c, 0xee, 0xc5,
		0xa4, 0x9a, 0x63, 0xf0, 0x50, 0xef, 0x2b, 0xd4, 0x0b, 0xf1, 0x4a, 0xf5, 0x59, 0x4c, 0xaa, 0xe1,
		0xde, 0xe5, 0x2c, 0xc4, 0x41, 0xf8, 0xc2, 0x62, 0x2e, 0x07, 0xe1, 0xe1, 0xdc, 0x5c, 0x72, 0x2e,
		0x26, 0xd5, 0xb9, 0xa6, 0x5b, 0x74, 0xdd, 0x75, 0x12, 0x2e, 0xba, 0xae, 0x74, 0xdf, 0x45, 0xd7,
		0x85, 0x6f, 0x9f, 0x43, 0x10, 0xba, 0xee, 0xe6, 0x00, 0x2f, 0xba, 0x2e, 0xbc, 0x9b, 0x53, 0xde,
		0xc5, 0xac, 0xda, 0x04, 0xf2, 0x85, 0x7a, 0xd7, 0x45, 0xbd, 0x10, 0xaf, 0x54, 0x9f, 0xc5, 0xde,
		0x04, 0xea, 0x5d, 0x46, 0x42, 0xa8, 0xba, 0x85, 0x85, 0x5c, 0x54, 0x5d, 0x28, 0x37, 0x9f, 0x94,
		0x8b, 0x59, 0x75, 0x9e, 0xd9, 0x16, 0x55, 0x77, 0x9d, 0x7c, 0x8b, 0xaa, 0x2b, 0xdd, 0x77, 0x51,
		0x75, 0xe1, 0xdb, 0xe7, 0x10, 0x84, 0xaa, 0xbb, 0x39, 0xc0, 0x8b, 0xaa, 0x0b, 0xef, 0xe6, 0x94,
		0x77, 0x31, 0xad, 0x36, 0x81, 0x7c, 0xa1, 0xde, 0x75, 0x51, 0x2f, 0xc4, 0x2b, 0xd5, 0x67, 0x51,
		0x75, 0xa1, 0xde, 0x65, 0x24, 0x84, 0xaa, 0x5b, 0x58, 0xc8, 0x45, 0xd5, 0x85, 0x72, 0xf5, 0x53,
		0x6e, 0xe1, 0x4c, 0xab, 0x43, 0xd1, 0x11, 0xa1, 0xf0, 0x5d, 0x91, 0x67, 0xe7, 0xea, 0xff, 0xbe,
		0x3a, 0xb9, 0xb0, 0x8f, 0x8f, 0xad, 0xa3, 0xb3, 0xfa, 0x95, 0xb5, 0xf7, 0x6e, 0xdb, 0xba, 0x12,
		0xa3, 0x80, 0xb3, 0x9a, 0xc3, 0x8a, 0xb0, 0x0e, 0xed, 0x72, 0xa5, 0x62, 0x18, 0x8e, 0xce, 0xea,
		0xdd, 0x64, 0x22, 0x4d, 0xd4, 0x30, 0x18, 0xdf, 0x6a, 0x1d, 0x05, 0x4c, 0x34, 0xbe, 0xcd, 0xcc,
		0x24, 0xd5, 0x5a, 0x89, 0x0d, 0x6e, 0x73, 0x94, 0xfd, 0x93, 0xc7, 0xdc, 0x1f, 0x4f, 0x33, 0x6f,
		0xae, 0x27, 0xee, 0x13, 0x2b, 0x62, 0xdd, 0x66, 0xb8, 0x1a, 0x7d, 0x8e, 0x35, 0x49, 0x2d, 0xb8,
		0xe0, 0xe6, 0x53, 0x48, 0xc1, 0x05, 0x77, 0x8d, 0x32, 0x49, 0x26, 0x1b, 0x82, 0x3a, 0x37, 0x02,
		0x33, 0x79, 0xf4, 0x52, 0xb3, 0x04, 0xa2, 0x11, 0x77, 0xb3, 0x90, 0x3c, 0x56, 0xb7, 0xc1, 0x97,
		0xf9, 0x0b, 0xa5, 0x99, 0x6d, 0xe8, 0xe9, 0x7c, 0xca, 0x24, 0x0b, 0x6d, 0x63, 0x75, 0x1b, 0x77,
		0x2b, 0x6d, 0x43, 0xbd, 0x12, 0x06, 0x8b, 0x83, 0x8d, 0x7f, 0xd7, 0x6a, 0x4c, 0xfd, 0x3c, 0x6c,
		0x65, 0x8e, 0x7e, 0xa0, 0xb3, 0xe9, 0x78, 0xd9, 0x4a, 0xe1, 0xf5, 0xa3, 0x71, 0xfd, 0xf3, 0xb4,
		0xd5, 0xda, 0xc3, 0xc3, 0xca, 0xe0, 0x69, 0xab, 0x65, 0x8d, 0xcb, 0xdb, 0x56, 0x59, 0xce, 0xe2,
		0xeb, 0x51, 0x76, 0x84, 0x6b, 0xbb, 0x83, 0x30, 0x14, 0x1a, 0x8c, 0x9e, 0x67, 0x8a, 0xce, 0x5c,
		0xa2, 0xbc, 0x67, 0x84, 0x92, 0x83, 0x92, 0xa3, 0x91, 0xd6, 0x79, 0xcf, 0x68, 0xbd, 0x43, 0x40,
		0x16, 0x43, 0xc1, 0xb2, 0x21, 0x81, 0x9b, 0x22, 0x6b, 0x5b, 0x61, 0x70, 0x53, 0x44, 0xa5, 0xef,
		0x9a, 0x7b, 0x53, 0xa4, 0xc2, 0x99, 0x39, 0xcd, 0x89, 0xe7, 0xe0, 0xa6, 0x48, 0x85, 0x9b, 0x22,
		0xb3, 0xb6, 0x2e, 0xf8, 0x4d, 0x91, 0x0a, 0x67, 0xe8, 0x2c, 0x6e, 0x8a, 0xbc, 0xd0, 0x88, 0xbc,
		0x67, 0x04, 0xf7, 0xc2, 0xbd, 0x70, 0x2f, 0xdc, 0x0b, 0xf7, 0xc2, 0xbd, 0x70, 0x2f, 0xdc, 0x0b,
		0xf7, 0x6e, 0x06, 0xf7, 0xf2, 0x9e, 0x11, 0x37, 0xa4, 0xa1, 0xde, 0x57, 0xa8, 0x17, 0xe2, 0x95,
		0xea, 0xb3, 0xbc, 0x67, 0x04, 0xf7, 0x2e, 0x67, 0x21, 0xee, 0x48, 0x17, 0x16, 0x73, 0xb9, 0x23,
		0x0d, 0xe7, 0xe6, 0x92, 0x73, 0x79, 0xcf, 0x28, 0xd7, 0x74, 0x8b, 0xae, 0xbb, 0x4e, 0xc2, 0x45,
		0xd7, 0x95, 0xee, 0xbb, 0xe8, 0xba, 0xf0, 0xed, 0x73, 0x08, 0x42, 0xd7, 0xdd, 0x1c, 0xe0, 0x45,
		0xd7, 0x85, 0x77, 0x73, 0xca, 0xbb, 0xbc, 0x67, 0x64, 0x02, 0xf9, 0x42, 0xbd, 0xeb, 0xa2, 0x5e,
		0x88, 0x57, 0xaa, 0xcf, 0xe2, 0x7c, 0x09, 0xf5, 0x2e, 0x23, 0x21, 0x54, 0xdd, 0xc2, 0x42, 0x2e,
		0xaa, 0x2e, 0x94, 0x9b, 0x4f, 0xca, 0xe5, 0x3d, 0xa3, 0x3c, 0xb3, 0x2d, 0xaa, 0xee, 0x3a, 0xf9,
		0x16, 0x55, 0x57, 0xba, 0xef, 0xa2, 0xea, 0xc2, 0xb7, 0xcf, 0x21, 0x08, 0x55, 0x77, 0x73, 0x80,
		0x17, 0x55, 0x17, 0xde, 0xcd, 0x29, 0xef, 0xf2, 0x9e, 0x91, 0x09, 0xe4, 0x0b, 0xf5, 0xae, 0x8b,
		0x7a, 0x21, 0x5e, 0xa9, 0x3e, 0x8b, 0xaa, 0x0b, 0xf5, 0x2e, 0x23, 0x21, 0x54, 0xdd, 0xc2, 0x42,
		0x2e, 0xaa, 0x2e, 0x94, 0xab, 0x9f, 0x72, 0x79, 0xcf, 0x68, 0x85, 0x73, 0xc1, 0xcb, 0xef, 0x19,
		0xf1, 0x8e, 0xd1, 0x7a, 0x49, 0xf4, 0xd5, 0x06, 0xc1, 0xdc, 0x54, 0x6b, 0xd4, 0x1b, 0xf9, 0x7e,
		0x91, 0x36, 0x17, 0x54, 0x6b, 0x35, 0x0f, 0x16, 0x09, 0xf7, 0x68, 0x92, 0x5d, 0x13, 0x8d, 0x6c,
		0xff, 0xb2, 0xbb, 0x4e, 0xa4, 0xf5, 0x5d, 0xa2, 0xc7, 0x14, 0x79, 0x8c, 0x28, 0x91, 0x1e, 0x82,
		0x85, 0x2d, 0x16, 0xb6, 0x2b, 0xd6, 0x38, 0xa6, 0xfd, 0xef, 0x26, 0x08, 0xba, 0xc2, 0xf1, 0x75,
		0x3e, 0x45, 0x54, 0x5e, 0xd7, 0x20, 0xf8, 0xdd, 0x0a, 0x9b, 0x44, 0xd7, 0xc4, 0xba, 0x8a, 0x09,
		0x55, 0xa1, 0x71, 0x33, 0x9f, 0x3c, 0xe5, 0x22, 0x32, 0x7d, 0x53, 0xa7, 0xfb, 0x44, 0xca, 0x4e,
		0x31, 0x1c, 0x23, 0xc7, 0xb6, 0x1e, 0x6d, 0x91, 0x76, 0x78, 0x2c, 0x9d, 0x7a, 0x51, 0x5c, 0x8d,
		0x63, 0xb9, 0xf9, 0xb7, 0x74, 0xe6, 0xf9, 0xb5, 0xae, 0x18, 0x8e, 0x76, 0x92, 0xd2, 0x41, 0xe9,
		0xcc, 0xf9, 0x6b, 0x2e, 0x05, 0x3d, 0xc2, 0x47, 0xa9, 0x11, 0xb6, 0x45, 0x28, 0xda, 0x1f, 0x87,
		0xd5, 0xe2, 0x0f, 0xba, 0x5d, 0x95, 0x24, 0x3e, 0x8d, 0xe1, 0x24, 0xbd, 0x66, 0x91, 0xb6, 0x15,
		0x15, 0x43, 0x3a, 0xdb, 0x50, 0x96, 0x08, 0xe2, 0x0c, 0x83, 0x37, 0x5d, 0xd8, 0x26, 0x0f, 0xbe,
		0x64, 0xbf, 0x99, 0xb0, 0x61, 0x65, 0x1b, 0x34, 0x9b, 0x86, 0x4c, 0xd1, 0x80, 0x19, 0x34, 0x5c,
		0xb2, 0x06, 0x7b, 0xbb, 0xfa, 0x13, 0x54, 0x7d, 0x69, 0x3c, 0xe9, 0x24, 0xad, 0xf1, 0x27, 0xa6,
		0x28, 0x49, 0xe7, 0xaa, 0x94, 0xcf, 0x5b, 0xcc, 0xd6, 0x00, 0x09, 0x8f, 0x10, 0xc8, 0xb0, 0xbe,
		0x3a, 0xd3, 0xcb, 0xb2, 0xbb, 0x32, 0xa3, 0x2b, 0xb3, 0xb8, 0x16, 0xe6, 0xd6, 0x1b, 0xfc, 0x69,
		0x9f, 0x7b, 0x28, 0xb9, 0x81, 0xef, 0x0b, 0x37, 0x0e, 0xc2, 0xd1, 0x3e, 0x69, 0xfa, 0x46, 0x78,
		0x6c, 0xfe, 0x67, 0xe9, 0xa4, 0x45, 0x09, 0xa9, 0x45, 0xaf, 0xf4, 0x22, 0x57, 0x65, 0x51, 0xab,
		0x6f, 0x11, 0xab, 0xba, 0x68, 0xd5, 0xb6, 0x48, 0xd5, 0xb6, 0x28, 0xd5, 0xba, 0x08, 0xcd, 0x16,
		0x5e, 0xa5, 0x17, 0x95, 0x33, 0x3b, 0xbb, 0xb6, 0xf0, 0x63, 0x2f, 0x7e, 0x08, 0x45, 0x47, 0xa6,
		0xf1, 0x1f, 0xc7, 0x72, 0x19, 0xd0, 0xac, 0x4f, 0xbe, 0xfa, 0xa3, 0x13, 0x29, 0x74, 0x9f, 0xc7,
		0x82, 0x9c, 0xd4, 0x3f, 0xd6, 0x2e, 0x5b, 0x47, 0x8d, 0xf3, 0xf3, 0xda, 0x51, 0xb3, 0x71, 0xd9,
		0x6a, 0xfe, 0x7e, 0x51, 0x93, 0xed, 0x49, 0xa3, 0xad, 0xc4, 0x48, 0x69, 0x63, 0x44, 0x93, 0x1e,
		0x57, 0x6d, 0x1c, 0xcd, 0xca, 0x54, 0x5a, 0x87, 0xc8, 0xa8, 0xa9, 0x20, 0xc7, 0xd5, 0x82, 0x14,
		0xe4, 0xb4, 0x20, 0xe5, 0x38, 0xbb, 0x68, 0x14, 0xa3, 0x20, 0x57, 0x7a, 0x1a, 0x44, 0xea, 0x93,
		0xd7, 0x59, 0xcf, 0x07, 0xdf, 0x65, 0xd0, 0x0e, 0xa5, 0xb6, 0x13, 0x0b, 0xdb, 0x0d, 0xda, 0x0a,
		0xa0, 0x34, 0x4b, 0x02, 0x46, 0x82, 0x91, 0x0a, 0xce, 0x48, 0xa3, 0xce, 0xee, 0xf8, 0x6d, 0xd9,
		0x93, 0xc4, 0x53, 0x4a, 0x92, 0x38, 0x2f, 0x58, 0xba, 0x70, 0xe2, 0x58, 0x84, 0xf2, 0xef, 0x4a,
		0x97, 0x3e, 0x6f, 0xdb, 0xef, 0xaf, 0xff, 0xde, 0xfd, 0xf6, 0xe5, 0x8b, 0xfd, 0xfd, 0xf6, 0xe7,
		0xb2, 0xfd, 0xfe, 0xfa, 0x9f, 0xf2, 0xe7, 0x6d, 0xbb, 0x72, 0xfd, 0xc3, 0xdc, 0x4f, 0x3e, 0x97,
		0x2b, 0xd7, 0xa3, 0x5f, 0xfc, 0x67, 0xe7, 0xf3, 0x76, 0xf9, 0xfa, 0x87, 0xcf, 0xcd, 0xf8, 0xfa,
		0xfb, 0xed, 0xf1, 0x4f, 0xca, 0xe3, 0xff, 0x54, 0x3e, 0x6f, 0xdb, 0x3b, 0xd7, 0x3f, 0x7c, 0x78,
		0xfc, 0xf1, 0xe7, 0xb2, 0xbd, 0x37, 0xfe, 0xcc, 0xb2, 0x9f, 0xfd, 0xb3, 0xbf, 0xfd, 0xc3, 0xf7,
		0x5f, 0xbe, 0xbc, 0x1b, 0xfd, 0xe5, 0xff, 0xfb, 0xe1, 0xff, 0x7e, 0xff, 0xf9, 0x7f, 0xfe, 0x73,
		0xfd, 0xcf, 0xf7, 0x9f, 0xff, 0x3f, 0x3b, 0x45, 0xba, 0x3f, 0xfc, 0x90, 0xbe, 0x33, 0x5d, 0xcb,
		0xd4, 0x71, 0xe3, 0xaa, 0xfe, 0x9b, 0x72, 0x45, 0xff, 0xef, 0xf7, 0x46, 0x57, 0xf5, 0x0f, 0xff,
		0x25, 0x51, 0xd9, 0x39, 0x98, 0xcd, 0x84, 0xef, 0xdc, 0x74, 0x45, 0x5b, 0x7e, 0x2e, 0x7b, 0x4c,
		0x80, 0x99, 0x8c, 0x99, 0xac, 0xe0, 0x33, 0x99, 0xfc, 0x96, 0xb1, 0xe4, 0x16, 0x71, 0x46, 0x21,
		0x1f, 0xdf, 0x89, 0xd0, 0x17, 0xb1, 0xdd, 0xef, 0xa9, 0xc4, 0xfd, 0x7c, 0x2a, 0x04, 0x3f, 0xc1,
		0x8f, 0xd4, 0x67, 0x86, 0xd4, 0x57, 0x6b, 0xfe, 0x5c, 0xbb, 0x3c, 0xaf, 0x35, 0x5b, 0x17, 0x67,
		0xc7, 0x05, 0xd1, 0xf9, 0x6a, 0xcd, 0x9f, 0x5b, 0xe5, 0xed, 0xed, 0xed, 0x8f, 0xd5, 0xab, 0x5a,
		0xeb, 0xf4, 0xb7, 0xf2, 0xb6, 0xc9, 0x8a, 0xcc, 0xa4, 0x30, 0x3f, 0x8d, 0x0a, 0x73, 0x74, 0x7a,
		0xb9, 0x5b, 0x9c, 0xc2, 0x14, 0xa9, 0x2c, 0xbf, 0x1e, 0x9f, 0x15, 0xa7, 0x34, 0xc7, 0x97, 0x85,
		0x29, 0x4a, 0xad, 0x40, 0x9d, 0xac, 0x76, 0xb9, 0x7b, 0x5a, 0x98, 0xc2, 0x9c, 0x14, 0xa7, 0x8f,
		0x15, 0x69, 0x50, 0xbe, 0xb8, 0x2a, 0xd0, 0x38, 0x76, 0x75, 0x59, 0xa0, 0xb9, 0xff, 0xaa, 0x18,
		0xbd, 0xac, 0x55, 0x3d, 0x3a, 0x2a, 0x46, 0x39, 0x1a, 0x05, 0x28, 0xc7, 0xe3, 0xc4, 0x52, 0x94,
		0x92, 0x9c, 0x16, 0xa8, 0x24, 0x67, 0x45, 0x29, 0xca, 0x55, 0x61, 0x1a, 0xe5, 0x7f, 0x8c, 0x2f,
		0xc9, 0xee, 0x8c, 0xf1, 0x77, 0x0b, 0x53, 0x96, 0x93, 0x02, 0x95, 0xe5, 0xb4, 0x50, 0x65, 0x39,
		0x2c, 0x4c, 0x59, 0x8a, 0x11, 0xfa, 0x67, 0x57, 0xd5, 0x42, 0x20, 0xfe, 0x6e, 0x71, 0x34, 0xa4,
		0xdd, 0xe2, 0x28, 0x15, 0xbb, 0x45, 0x1a, 0xc3, 0x8a, 0xb3, 0x1e, 0xde, 0x2d, 0xce, 0x0a, 0x72,
		0xf7, 0xb7, 0xe2, 0x90, 0xfe, 0xac, 0x2c, 0xe6, 0x03, 0xf2, 0xa7, 0xf3, 0xe3, 0xda, 0x49, 0xfd,
		0xbc, 0x76, 0xcc, 0xa1, 0xd1, 0x24, 0x55, 0x37, 0xbf, 0x5b, 0x6e, 0xf7, 0x43, 0xe1, 0x06, 0x7e,
		0x47, 0xcf, 0xde, 0xfb, 0x34, 0x35, 0xf6, 0xe0, 0x13, 0xa4, 0xc4, 0x1e, 0xbc, 0xc6, 0x48, 0x61,
		0x0f, 0x5e, 0x61, 0x04, 0x65, 0x0f, 0x3e, 0xf7, 0x12, 0x10, 0x7b, 0xf0, 0x39, 0x2f, 0x0b, 0x7b,
		0xf0, 0xf9, 0x2c, 0x0a, 0x7b, 0xf0, 0x39, 0x2d, 0x0c, 0x7b, 0xf0, 0xb9, 0x2c, 0x0b, 0x7b, 0xf0,
		0xf9, 0x2d, 0x0c, 0x7b, 0xf0, 0xec, 0xc1, 0xb3, 0x07, 0xff, 0x6a, 0x49, 0xd8, 0x83, 0xcf, 0x61,
		0x51, 0xd8, 0x83, 0xb7, 0xd8, 0x83, 0xcf, 0xb2, 0x2c, 0xec, 0xc1, 0xe7, 0xb5, 0x2c, 0xec, 0xc1,
		0x5b, 0xec, 0xc1, 0x67, 0x52, 0x16, 0xf6, 0xe0, 0xf3, 0x5b, 0x14, 0xf6, 0xe0, 0x73, 0x59, 0x16,
		0xf6, 0xe0, 0x73, 0x5a, 0x16, 0xf6, 0xe0, 0x37, 0x6c, 0x0f, 0xbe, 0xe3, 0x0c, 0xba, 0xb1, 0xed,
		0x06, 0x7e, 0xdb, 0x93, 0xb2, 0x3a, 0x9e, 0xd6, 0xfd, 0xf3, 0x84, 0xd8, 0x79, 0x4f, 0x90, 0x12,
		0x3b, 0xef, 0x1a, 0xe3, 0x03, 0xeb, 0x0b, 0xc9, 0x21, 0x40, 0xb8, 0xb6, 0x1b, 0x84, 0xa1, 0x70,
		0x63, 0xd1, 0xb6, 0x6f, 0xc6, 0xcf, 0xce, 0xc9, 0x8e, 0x02, 0x8b, 0x69, 0x31, 0x10, 0x30, 0x10,
		0x14, 0x7c, 0x20, 0x70, 0x83, 0x81, 0x1f, 0x8b, 0x50, 0xea, 0x41, 0x58, 0x85, 0x87, 0x5f, 0x15,
		0x1f, 0x60, 0x55, 0x78, 0xa6, 0x44, 0xc7, 0x83, 0xaa, 0xba, 0x1e, 0x4e, 0xd5, 0xfe, 0x64, 0xa6,
		0xbe, 0xa7, 0x31, 0x55, 0x1e, 0xe2, 0xd2, 0xf1, 0xb0, 0x69, 0x86, 0x0f, 0x98, 0xe6, 0xb9, 0xd6,
		0x57, 0xf4, 0x88, 0xcc, 0x75, 0xfe, 0xe6, 0xee, 0x87, 0x58, 0xe8, 0x9b, 0xbc, 0x47, 0x89, 0x31,
		0x7b, 0x33, 0x7b, 0x33, 0x7b, 0x33, 0x7b, 0x33, 0x7b, 0x33, 0x7b, 0x33, 0x7b, 0x67, 0x30, 0x7b,
		0xf7, 0x94, 0x4c, 0xd3, 0xa7, 0x29, 0x30, 0x4f, 0x33, 0x4f, 0x73, 0xd1, 0x25, 0x89, 0xe4, 0x96,
		0x83, 0x77, 0x65, 0x6a, 0x47, 0xad, 0xb3, 0xc6, 0x71, 0xad, 0x20, 0x97, 0x5c, 0x86, 0xc5, 0xa9,
		0x7e, 0x6a, 0x36, 0x4c, 0xde, 0x39, 0x1a, 0x96, 0xe1, 0xb8, 0x7e, 0x55, 0xfd, 0x78, 0xaa, 0xb4,
		0x71, 0x94, 0x8b, 0x72, 0xd4, 0xce, 0x55, 0x8b, 0xb1, 0x49, 0xfb, 0x5f, 0xc2, 0xb5, 0xa3, 0xd8,
		0x89, 0x07, 0x8a, 0xeb, 0xe6, 0x49, 0x1a, 0x4c, 0xc3, 0x4c, 0xc3, 0x4c, 0xc3, 0xe6, 0x4c, 0xc3,
		0x57, 0xcd, 0x6a, 0xf3, 0xd3, 0x55, 0x81, 0x26, 0xe2, 0x49, 0x81, 0x4e, 0x1b, 0x47, 0xff, 0x36,
		0x7f, 0x26, 0x9b, 0x14, 0xe6, 0xd3, 0xb9, 0x72, 0x71, 0x36, 0x6c, 0x46, 0x1b, 0xf8, 0x13, 0x1d,
		0xd7, 0xb9, 0xe9, 0x0a, 0xfb, 0xa6, 0x1b, 0xb8, 0x7f, 0x28, 0xce, 0x6f, 0x4b, 0x53, 0x64, 0xb6,
		0x63, 0xb6, 0x43, 0x1c, 0x7e, 0xb3, 0xc3, 0x23, 0x0e, 0x17, 0x50, 0xa6, 0x44, 0x1c, 0x5e, 0x47,
		0xad, 0x6f, 0x98, 0x38, 0xfc, 0x74, 0xd6, 0x1d, 0x4e, 0x03, 0x5a, 0xa7, 0xf1, 0x71, 0x82, 0xcc,
		0xe2, 0xcc, 0xe2, 0xcc, 0xe2, 0xcc, 0xe2, 0xcc, 0xe2, 0xcc, 0xe2, 0xcc, 0xe2, 0xba, 0x67, 0xf1,
		0x20, 0xec, 0xd9, 0x1d, 0xc7, 0x8d, 0x83, 0x50, 0x61, 0xe6, 0x9e, 0x4b, 0x84, 0xd9, 0x9a, 0xd9,
		0x1a, 0x85, 0x39, 0x41, 0x97, 0xcf, 0x81, 0xc2, 0xdc, 0xbc, 0xac, 0x9e, 0x5f, 0x1d, 0xd5, 0xea,
		0xbf, 0xd4, 0x2e, 0x5b, 0x27, 0x8d, 0xcb, 0xb3, 0xd6, 0x49, 0xf5, 0xa8, 0xd9, 0xb8, 0x2c, 0x88,
		0xdc, 0x7c, 0x74, 0x72, 0x61, 0xb2, 0xc0, 0x7c, 0x74, 0x72, 0x51, 0x31, 0x3d, 0xff, 0xad, 0xea,
		0x51, 0xc3, 0xf0, 0x32, 0x18, 0x7d, 0x11, 0xf8, 0xe8, 0xa2, 0xfa, 0x6f, 0xa3, 0xf3, 0x7f, 0x65,
		0x76, 0x0c, 0x1f, 0x1b, 0x9e, 0xff, 0xf3, 0xc6, 0x79, 0xeb, 0xe2, 0xf4, 0xd3, 0x4f, 0x3f, 0x55,
		0x3f, 0x9e, 0xd6, 0x4c, 0x2e, 0x48, 0xc3, 0xf0, 0x86, 0x68, 0x34, 0x7f, 0x36, 0xdb, 0x7a, 0xec,
		0xbf, 0x0d, 0x6f, 0x80, 0x61, 0xfe, 0x2b, 0x87, 0xe6, 0x97, 0xa0, 0x75, 0x7c, 0x6c, 0x7a, 0x21,
		0xf6, 0xf6, 0xcd, 0x2f, 0x41, 0x21, 0x9a, 0xa1, 0x75, 0x3c, 0xf6, 0x41, 0x2f, 0x17, 0xa7, 0x28,
		0x15, 0xd3, 0x8b, 0x32, 0x9c, 0xae, 0xaf, 0x4c, 0x2e, 0x84, 0xe1, 0xf3, 0x84, 0xf1, 0xd3, 0x84,
		0xf1, 0x03, 0xec, 0x30, 0x08, 0xcc, 0x1e, 0x5d, 0x8b, 0x10, 0xc6, 0xbf, 0x19, 0x3d, 0x92, 0xfe,
		0xa6, 0x34, 0x08, 0x6d, 0xd2, 0x61, 0xbe, 0x99, 0xf2, 0xaf, 0xfe, 0x42, 0xd2, 0xb2, 0xc4, 0xd8,
		0x4e, 0x48, 0x90, 0x12, 0xdb, 0x09, 0x1a, 0xe3, 0x84, 0xed, 0x04, 0xd9, 0x82, 0xb0, 0x9d, 0x90,
		0xe3, 0x29, 0x8d, 0xed, 0x04, 0xb6, 0x13, 0x94, 0xf3, 0xcf, 0x76, 0xc2, 0x5a, 0xf3, 0xcf, 0x76,
		0x42, 0x4e, 0x0a, 0xc2, 0x76, 0x42, 0x0e, 0xa4, 0x2e, 0xb6, 0x13, 0xd6, 0x5f, 0x02, 0xb6, 0x13,
		0x72, 0x51, 0x02, 0xb6, 0x13, 0xf2, 0x59, 0x14, 0xb6, 0x13, 0xd8, 0x4e, 0x50, 0xcd, 0x3e, 0xdb,
		0x09, 0xeb, 0x2e, 0x00, 0xdb, 0x09, 0x6c, 0x27, 0xa8, 0xe5, 0x9e, 0xed, 0x84, 0x64, 0x15, 0xe6,
		0xf9, 0xfd, 0x41, 0x6c, 0xf7, 0x83, 0xaf, 0x42, 0xe1, 0x36, 0xc2, 0x7c, 0x22, 0x72, 0xdb, 0x07,
		0x65, 0xb6, 0x0f, 0x52, 0xd5, 0x1a, 0xdb, 0x07, 0xb2, 0x83, 0x4d, 0xe9, 0xd8, 0x0b, 0xe5, 0x9a,
		0xdf, 0xb9, 0xbf, 0x55, 0x57, 0xec, 0x87, 0x89, 0x48, 0x56, 0xb1, 0xdc, 0x4e, 0x9b, 0x72, 0xc8,
		0xe8, 0x08, 0x9d, 0xa5, 0x21, 0xf4, 0xd0, 0x4f, 0xed, 0x26, 0xad, 0x33, 0x88, 0xb4, 0x07, 0x93,
		0xf6, 0xa0, 0x7a, 0x31, 0xb8, 0x46, 0x35, 0xb7, 0xea, 0xcb, 0x76, 0x92, 0xbd, 0x46, 0x7a, 0xb7,
		0x6e, 0xa1, 0xcf, 0xb4, 0x85, 0xeb, 0xf5, 0x9c, 0xae, 0xd4, 0x95, 0xdd, 0x85, 0xf9, 0xa6, 0xa2,
		0x90, 0xc6, 0xc2, 0x3d, 0x4a, 0x95, 0xc4, 0xd4, 0x2e, 0x04, 0xeb, 0xc1, 0x26, 0x4b, 0xd7, 0x05,
		0xe1, 0x69, 0x62, 0x8f, 0xb7, 0x58, 0xdf, 0x57, 0x2a, 0x3b, 0x3b, 0x07, 0x95, 0xed, 0x9d, 0xfd,
		0xc3, 0xbd, 0xdd, 0x83, 0x83, 0xbd, 0xc3, 0xed, 0xc3, 0x1f, 0xf5, 0x7c, 0x83, 0xce, 0x46, 0x78,
		0xda, 0xdd, 0x66, 0x97, 0x5a, 0x87, 0xa1, 0xab, 0x9c, 0xe8, 0xb7, 0x1f, 0x35, 0xb4, 0x8d, 0x86,
		0x9b, 0xc5, 0x09, 0xda, 0xe6, 0xc0, 0xa0, 0xb6, 0x51, 0xbb, 0x70, 0xac, 0x36, 0x16, 0xaa, 0x7f,
		0xfa, 0x7a, 0x45, 0x17, 0x9e, 0x25, 0x3a, 0x5f, 0xc9, 0xf3, 0xa3, 0xd8, 0x19, 0x4d, 0x36, 0x8a,
		0xac, 0xf3, 0x98, 0x10, 0xbc, 0x03, 0xef, 0xc0, 0x3b, 0xf0, 0x0e, 0xbc, 0x03, 0xef, 0xc0, 0x3b,
		0xf0, 0x4e, 0xee, 0x78, 0x27, 0x16, 0xe1, 0xbd, 0xd3, 0xd5, 0x01, 0x3c, 0x93, 0x94, 0x20, 0x1e,
		0x88, 0x07, 0xe2, 0x49, 0xdd, 0x67, 0xa2, 0xd8, 0x89, 0x6d, 0xc5, 0x20, 0xb2, 0xd4, 0x0c, 0xda,
		0xa6, 0x49, 0x7c, 0xf2, 0xc7, 0x43, 0x79, 0xc9, 0x77, 0xfc, 0x20, 0x12, 0x6e, 0xe0, 0xb7, 0x95,
		0xfa, 0x72, 0xb1, 0xb9, 0x67, 0x3b, 0xab, 0x99, 0x74, 0x3b, 0xb7, 0x33, 0x69, 0x5e, 0x31, 0x47,
		0xbf, 0x71, 0x9c, 0x89, 0xad, 0x03, 0xe7, 0x2c, 0x54, 0x72, 0x4f, 0xa1, 0xb7, 0x4d, 0x87, 0xe8,
		0x61, 0x22, 0xd0, 0x0d, 0x74, 0x03, 0xdd, 0xa0, 0xe7, 0xa0, 0xe7, 0xa0, 0xe7, 0xa0, 0xe7, 0xc0,
		0x39, 0xf9, 0xe3, 0x1c, 0x3b, 0xf6, 0x7a, 0x42, 0x0b, 0xec, 0x8c, 0x53, 0x82, 0x78, 0x20, 0x1e,
		0x88, 0x27, 0x75, 0x9f, 0x19, 0xc6, 0x4e, 0xec, 0xb9, 0x7f, 0x44, 0x5a, 0x98, 0x07, 0x35, 0x07,
		0x35, 0x07, 0x35, 0x07, 0x35, 0x07, 0xca, 0x19, 0x51, 0x8e, 0x42, 0xe0, 0xcf, 0x00, 0xc7, 0xf3,
		0x61, 0x1b, 0xd8, 0x06, 0xb6, 0x41, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x81, 0x73, 0x72,
		0xc8, 0x39, 0xba, 0xd4, 0x9c, 0xc7, 0x94, 0x20, 0x1e, 0x88, 0x07, 0xe2, 0x41, 0xcd, 0x41, 0xcd,
		0x41, 0xcd, 0x41, 0xcd, 0x81, 0x72, 0x74, 0x53, 0x4e, 0xa6, 0xd7, 0xd7, 0xab, 0xbe, 0x1f, 0xc4,
		0xce, 0xb0, 0xa5, 0xe5, 0x6e, 0xb1, 0x47, 0xee, 0x9d, 0xe8, 0x39, 0x7d, 0x27, 0xbe, 0x1b, 0x0e,
		0xa0, 0x5b, 0x41, 0x5f, 0xf8, 0xee, 0x88, 0x4c, 0xec, 0x7e, 0xd7, 0x89, 0x3b, 0x41, 0xd8, 0xdb,
		0x72, 0x83, 0x5e, 0x3f, 0xf0, 0x85, 0x1f, 0x47, 0xb3, 0x3f, 0x6e, 0xcd, 0xdd, 0xe8, 0xdf, 0x8a,
		0x62, 0x27, 0x16, 0x5b, 0xf2, 0xae, 0x0f, 0xe3, 0x8c, 0xc4, 0xe1, 0xc0, 0x8d, 0xfd, 0x47, 0x7f,
		0xbc, 0x69, 0x3e, 0x2e, 0x26, 0xd9, 0x68, 0x1d, 0x4d, 0xb3, 0x31, 0xfb, 0x63, 0xab, 0x39, 0xcb,
		0x46, 0xeb, 0x6a, 0x98, 0x8d, 0x56, 0x7d, 0x98, 0x8d, 0x8b, 0x51, 0x2e, 0x72, 0xe0, 0xa7, 0xd1,
		0x75, 0x22, 0x11, 0xda, 0x37, 0x9e, 0x13, 0xd9, 0xee, 0x20, 0x0c, 0x85, 0xc4, 0x3d, 0xba, 0xe9,
		0x84, 0xbb, 0x24, 0x2d, 0xdc, 0x35, 0xb2, 0x07, 0x53, 0xdc, 0x35, 0x14, 0x86, 0x27, 0xdc, 0x35,
		0x58, 0xdd, 0xb1, 0xba, 0x33, 0x70, 0x75, 0x87, 0x9e, 0x6d, 0xde, 0xca, 0x0e, 0x3d, 0x1b, 0x3d,
		0x1b, 0x3d, 0x7b, 0x8d, 0x2b, 0x3d, 0xdc, 0x35, 0xe0, 0x1d, 0x78, 0x07, 0xde, 0x81, 0x77, 0xe0,
		0x1d, 0x78, 0x07, 0xde, 0x81, 0x77, 0x96, 0xf0, 0x0e, 0xee, 0x1a, 0x10, 0x0f, 0xc4, 0x83, 0xbb,
		0xc6, 0x7c, 0x12, 0xec, 0xe0, 0xa7, 0x99, 0x5b, 0xd9, 0xc1, 0xcf, 0x0d, 0xe6, 0xb0, 0x83, 0x0f,
		0xe7, 0x2c, 0xad, 0x64, 0xdc, 0x35, 0xa0, 0x1b, 0xe8, 0x06, 0x3d, 0x07, 0x3d, 0x07, 0x3d, 0x07,
		0x3d, 0x07, 0x3d, 0x07, 0x77, 0x8d, 0x04, 0xb0, 0xc3, 0x7d, 0x0c, 0x88, 0x07, 0xe2, 0x91, 0xec,
		0x33, 0xdc, 0xc7, 0x40, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x81, 0x72, 0x32, 0xa0, 0x1c, 0xdc, 0x35,
		0x60, 0x1b, 0xd8, 0x06, 0x35, 0x07, 0x35, 0x07, 0x35, 0x07, 0x35, 0x07, 0x35, 0x07, 0x77, 0x8d,
		0xb7, 0x61, 0x07, 0x35, 0x07, 0xe2, 0x81, 0x78, 0x50, 0x73, 0x50, 0x73, 0x50, 0x73, 0x50, 0x73,
		0xa0, 0x9c, 0x6c, 0x28, 0x67, 0x43, 0xdc, 0x35, 0x94, 0xcd, 0x1f, 0x2c, 0x9d, 0x26, 0x1b, 0xa7,
		0xc3, 0xdc, 0x7c, 0xf4, 0x9c, 0xe8, 0x68, 0x92, 0x97, 0x1c, 0x58, 0x6d, 0xf4, 0x82, 0xf6, 0xa0,
		0x2b, 0xec, 0xce, 0xc0, 0x1f, 0x85, 0xa6, 0xd3, 0x1d, 0xa1, 0x83, 0xbc, 0xdd, 0xc6, 0x0b, 0xe9,
		0xc9, 0x59, 0x6e, 0x6c, 0x63, 0xb9, 0xb1, 0x0e, 0x4a, 0xdd, 0x44, 0xcb, 0x0d, 0x69, 0x06, 0x9d,
		0xdd, 0xac, 0x68, 0x0b, 0x3f, 0xf6, 0xe2, 0x87, 0x50, 0x74, 0x64, 0x1a, 0xff, 0x51, 0x67, 0x93,
		0x98, 0x6c, 0x4b, 0xf5, 0xc9, 0x57, 0x7f, 0x74, 0x22, 0x0d, 0x8b, 0xd0, 0xe6, 0x65, 0xf5, 0xfc,
		0xea, 0xa8, 0x56, 0xff, 0xa5, 0x76, 0xd9, 0x3a, 0x6b, 0x1c, 0x7f, 0x3a, 0xad, 0xb5, 0x4e, 0x3e,
		0x9d, 0x1f, 0x35, 0xeb, 0x8d, 0xf3, 0xea, 0x69, 0xab, 0xf9, 0xfb, 0x45, 0x4d, 0xb6, 0x5f, 0x8d,
		0x18, 0x23, 0x52, 0xa2, 0x58, 0xc5, 0x85, 0xdc, 0xb4, 0x8c, 0xbf, 0x5f, 0xd4, 0x5a, 0xc7, 0xf5,
		0x9f, 0xea, 0xcd, 0xea, 0x69, 0xeb, 0xa8, 0xf1, 0x73, 0xed, 0xb2, 0x76, 0xde, 0x6c, 0x35, 0x2e,
		0x9a, 0xf5, 0x23, 0x85, 0x55, 0xd3, 0x8f, 0xb9, 0x28, 0xd6, 0x55, 0xb3, 0x7a, 0x7e, 0x5c, 0xbd,
		0x3c, 0x56, 0x2e, 0xce, 0x77, 0xab, 0x41, 0x98, 0x6f, 0x39, 0x98, 0x06, 0x83, 0xd8, 0xb7, 0x87,
		0x20, 0xd1, 0xf5, 0x1c, 0xdf, 0x15, 0xb6, 0x1b, 0xb4, 0x15, 0xe6, 0xc0, 0x65, 0x89, 0x31, 0x01,
		0x32, 0x01, 0x32, 0x01, 0x9a, 0x31, 0x01, 0x36, 0x9a, 0xe7, 0xad, 0xea, 0xc5, 0xc5, 0x69, 0xfd,
		0xa8, 0x3a, 0x9c, 0xf4, 0x5a, 0x47, 0x8d, 0xe3, 0x02, 0x4c, 0x79, 0xc3, 0x52, 0x7d, 0x3a, 0x3f,
		0xae, 0x9d, 0xd4, 0xcf, 0x6b, 0xc7, 0x26, 0x4f, 0x72, 0x17, 0xe5, 0xd3, 0x72, 0xab, 0x72, 0x5c,
		0x2e, 0x40, 0x19, 0x2a, 0x66, 0x97, 0xe1, 0x4a, 0xb5, 0x0c, 0x9b, 0x44, 0x18, 0x83, 0x78, 0xe6,
		0xf4, 0x29, 0x8f, 0x16, 0xf3, 0xa9, 0xe0, 0x63, 0x09, 0x53, 0xe0, 0x63, 0xf9, 0x62, 0xdf, 0xc1,
		0xc7, 0x92, 0x7d, 0x54, 0xe5, 0xe0, 0xe2, 0xe4, 0x98, 0x7c, 0x63, 0x73, 0x72, 0xec, 0x85, 0x8c,
		0x70, 0x72, 0x6c, 0xd2, 0xdd, 0x38, 0x39, 0x66, 0x42, 0xdb, 0xb0, 0xa7, 0x9a, 0x51, 0xe7, 0xc3,
		0xc7, 0x12, 0xde, 0x81, 0x77, 0xe0, 0x1d, 0x78, 0x07, 0xde, 0x81, 0x77, 0xe0, 0x9d, 0x0d, 0xe0,
		0x1d, 0x7c, 0x2c, 0x21, 0x1e, 0x88, 0x07, 0x1f, 0xcb, 0xf9, 0x24, 0x38, 0x2b, 0x9f, 0x66, 0x6e,
		0xe5, 0xac, 0x7c, 0x6e, 0x30, 0x87, 0xb3, 0xf2, 0x70, 0xce, 0xd2, 0x4a, 0xc6, 0xc7, 0x12, 0xba,
		0x81, 0x6e, 0xd0, 0x73, 0xd0, 0x73, 0xd0, 0x73, 0xd0, 0x73, 0xd0, 0x73, 0xf0, 0xb1, 0x4c, 0x00,
		0x3b, 0x38, 0x1f, 0x40, 0x3c, 0x10, 0x8f, 0x64, 0x9f, 0xc1, 0xf9, 0x00, 0x35, 0x07, 0x35, 0x07,
		0x35, 0x07, 0xca, 0xc9, 0x80, 0x72, 0xf0, 0xb1, 0x84, 0x6d, 0x60, 0x1b, 0xd4, 0x1c, 0xd4, 0x1c,
		0xd4, 0x1c, 0xd4, 0x1c, 0xd4, 0x1c, 0x7c, 0x2c, 0xdf, 0x86, 0x1d, 0xd4, 0x1c, 0x88, 0x07, 0xe2,
		0x41, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x41, 0xcd, 0x81, 0x72, 0xb2, 0xa1, 0x9c, 0x0d, 0xf1, 0xb1,
		0x54, 0xb0, 0x7d, 0xb0, 0x74, 0x3a, 0x58, 0x36, 0x46, 0xf9, 0xb8, 0x18, 0x65, 0x23, 0x07, 0x9e,
		0x1a, 0xfd, 0x20, 0x8a, 0xed, 0x8e, 0x70, 0xed, 0x1b, 0x15, 0x4f, 0x8d, 0x27, 0xa9, 0xe0, 0xa9,
		0x91, 0x3d, 0x8e, 0xe2, 0xa9, 0xa1, 0x30, 0x28, 0xe1, 0xa9, 0x91, 0x8f, 0x35, 0x5d, 0xd0, 0x8f,
		0x59, 0xd7, 0x49, 0x07, 0xd8, 0xac, 0xf6, 0x50, 0xb3, 0x15, 0x82, 0x49, 0xaf, 0x9a, 0x5d, 0x3e,
		0x64, 0x61, 0x97, 0x58, 0x32, 0xcd, 0x4c, 0xce, 0x2e, 0x1f, 0xa2, 0x67, 0xab, 0x36, 0xce, 0x81,
		0x49, 0x8d, 0xc3, 0x52, 0x2f, 0xa3, 0xde, 0x87, 0xbd, 0x06, 0xe8, 0x03, 0xfa, 0x80, 0x3e, 0xa0,
		0x0f, 0xe8, 0x03, 0xfa, 0x80, 0x3e, 0x9b, 0x85, 0x3e, 0x38, 0x6d, 0x64, 0x02, 0x3f, 0x80, 0x8f,
		0x2c, 0xf8, 0xe0, 0xb4, 0x81, 0xd3, 0x86, 0x51, 0xe4, 0xc3, 0x6e, 0x7e, 0x6e, 0x38, 0x87, 0xdd,
		0x7c, 0x38, 0x67, 0x69, 0x25, 0xe3, 0xb4, 0x81, 0xb4, 0x83, 0xb4, 0x83, 0xb4, 0x83, 0xb4, 0x83,
		0xb4, 0x83, 0xb4, 0x83, 0xb4, 0xb3, 0x19, 0xc8, 0x83, 0xe9, 0x06, 0xd2, 0x0e, 0xd2, 0x0e, 0xd7,
		0x34, 0x10, 0x76, 0x10, 0x76, 0x10, 0x76, 0x10, 0x76, 0x8a, 0x48, 0x39, 0x98, 0x6e, 0x20, 0xec,
		0x20, 0xec, 0x20, 0xec, 0x20, 0xec, 0x20, 0xec, 0x20, 0xec, 0x20, 0xec, 0x6c, 0x04, 0xf2, 0xe0,
		0xbf, 0x81, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x83, 0xb0, 0x93,
		0x77, 0xca, 0xd9, 0x10, 0xff, 0x0d, 0x05, 0x8b, 0x08, 0x4b, 0xa7, 0xff, 0xc6, 0x45, 0x10, 0xc5,
		0x27, 0xc2, 0xfd, 0x98, 0x13, 0xfb, 0x8d, 0x50, 0x68, 0x70, 0xdf, 0x98, 0x4b, 0x04, 0xf3, 0x8d,
		0xec, 0x59, 0x14, 0xf3, 0x0d, 0x85, 0x11, 0x09, 0xf3, 0x0d, 0xd4, 0x6c, 0xf3, 0x17, 0x75, 0xa8,
		0xd9, 0xa8, 0xd9, 0x26, 0xad, 0xea, 0x50, 0xb3, 0x51, 0xb3, 0x51, 0xb3, 0xd7, 0xba, 0xce, 0xc3,
		0x7c, 0x03, 0xf4, 0x01, 0x7d, 0x40, 0x1f, 0xd0, 0x07, 0xf4, 0x01, 0x7d, 0x40, 0x1f, 0xd0, 0xe7,
		0x75, 0xf4, 0xc1, 0x7c, 0x23, 0x13, 0xf8, 0x01, 0x7c, 0x64, 0xc1, 0x07, 0xf3, 0x0d, 0xcc, 0x37,
		0x8c, 0x22, 0x1f, 0xb6, 0xf2, 0x73, 0xc3, 0x39, 0x6c, 0xe5, 0xc3, 0x39, 0x4b, 0x2b, 0x19, 0xf3,
		0x0d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x1d, 0xa4, 0x9d, 0xcd,
		0x40, 0x1e, 0xcc, 0x37, 0x90, 0x76, 0x90, 0x76, 0xb8, 0xa3, 0x81, 0xb0, 0x83, 0xb0, 0x83, 0xb0,
		0x83, 0xb0, 0x53, 0x44, 0xca, 0xc1, 0x7c, 0x03, 0x61, 0x07, 0x61, 0x07, 0x61, 0x07, 0x61, 0x07,
		0x61, 0x07, 0x61, 0x07, 0x61, 0x67, 0x23, 0x90, 0x07, 0xf3, 0x0d, 0x84, 0x1d, 0x84, 0x1d, 0x84,
		0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x1d, 0x84, 0x9d, 0xbc, 0x53, 0xce, 0xa6, 0x98, 0x6f, 0x48,
		0x3b, 0x44, 0x58, 0x5a, 0xbd, 0x37, 0x42, 0x91, 0x2b, 0xeb, 0x8d, 0x48, 0x48, 0x5c, 0xae, 0x9b,
		0xb7, 0xdd, 0x18, 0x25, 0x20, 0x67, 0xb9, 0xb1, 0x8d, 0xe5, 0xc6, 0x3a, 0xc8, 0x73, 0x13, 0x2d,
		0x37, 0xa4, 0xb9, 0x72, 0xda, 0xfe, 0xc2, 0x1f, 0xf4, 0x44, 0x38, 0x1e, 0xca, 0x24, 0x1a, 0xff,
		0x51, 0x3e, 0xdb, 0x95, 0xf8, 0x6c, 0xcd, 0x1f, 0xf4, 0xe4, 0xbb, 0x4d, 0x33, 0xb8, 0x8a, 0x43,
		0xcf, 0xbf, 0x55, 0xc3, 0xea, 0xed, 0x61, 0x1d, 0x5c, 0x5c, 0xd6, 0xae, 0x6a, 0xe7, 0x4d, 0x15,
		0x78, 0x2d, 0x0f, 0xd3, 0x39, 0x6f, 0x34, 0x5b, 0x8f, 0x69, 0xad, 0x76, 0x79, 0x11, 0xd4, 0x15,
		0xee, 0x12, 0x8f, 0xfb, 0xc3, 0x5c, 0xde, 0x53, 0xbb, 0x06, 0x3d, 0x1d, 0x95, 0xa6, 0xa9, 0x6c,
		0xe7, 0x73, 0xae, 0xcf, 0x64, 0xce, 0x89, 0x44, 0xe8, 0x39, 0x5d, 0xdb, 0x0f, 0xe4, 0x67, 0x9d,
		0x59, 0x12, 0xcc, 0x3b, 0xcc, 0x3b, 0x05, 0x9f, 0x77, 0xa2, 0xf1, 0xe0, 0xad, 0x30, 0xe5, 0x48,
		0x68, 0x17, 0xa5, 0x53, 0xe1, 0xdf, 0x8e, 0x98, 0x5b, 0x4e, 0x64, 0x50, 0x18, 0x5f, 0x75, 0x88,
		0x0a, 0xb3, 0x15, 0xac, 0xa2, 0x94, 0xa6, 0x7b, 0x99, 0xaa, 0x6f, 0x79, 0xaa, 0x20, 0x1a, 0x68,
		0x11, 0x0b, 0x66, 0x55, 0xbc, 0x5f, 0xdc, 0x3a, 0x5e, 0xd1, 0xb4, 0x7c, 0x9d, 0x87, 0x69, 0x39,
		0xf0, 0x45, 0x6c, 0x47, 0xed, 0x3b, 0x7b, 0xb8, 0x88, 0xee, 0x7a, 0x8e, 0xef, 0x0a, 0xdb, 0x0d,
		0xda, 0x42, 0x61, 0x9a, 0x7e, 0x31, 0x49, 0xa6, 0x6d, 0xa6, 0xed, 0x82, 0x4f, 0xdb, 0x5e, 0x5b,
		0xf8, 0xb1, 0x17, 0x3f, 0x84, 0xa2, 0xa3, 0x32, 0x77, 0x4b, 0xe8, 0xad, 0xa5, 0xfa, 0xe4, 0xab,
		0x3f, 0x3a, 0x91, 0x86, 0x7d, 0xc8, 0xab, 0xc6, 0x79, 0xad, 0xd9, 0xaa, 0x5e, 0x5c, 0x9c, 0xd6,
		0x8f, 0xaa, 0xcd, 0x7a, 0xe3, 0xbc, 0x75, 0xd4, 0x38, 0xae, 0xc9, 0xf6, 0xa5, 0xd1, 0xac, 0x11,
		0x29, 0x6d, 0x5e, 0x28, 0xce, 0x5b, 0x4f, 0xcb, 0xf5, 0xe9, 0xfc, 0xb8, 0x76, 0x52, 0x3f, 0xaf,
		0x1d, 0x97, 0xd6, 0x31, 0x13, 0x6b, 0x2a, 0xca, 0x2f, 0x57, 0x97, 0x95, 0xed, 0xed, 0xed, 0xd6,
		0xce, 0x65, 0xa5, 0x18, 0xc5, 0xd8, 0x29, 0x46, 0x31, 0xf6, 0x56, 0xbd, 0xeb, 0x7a, 0x6d, 0xa6,
		0x22, 0x30, 0xe8, 0xf7, 0xbb, 0x0f, 0xf6, 0x7d, 0xd0, 0x8d, 0x9d, 0x5b, 0x15, 0xde, 0x78, 0x9a,
		0x0e, 0x36, 0xd0, 0x40, 0x06, 0x36, 0xd0, 0x2f, 0xf6, 0x1d, 0x6c, 0xa0, 0x1f, 0x43, 0xe8, 0x71,
		0x27, 0x91, 0x33, 0x46, 0xd2, 0x51, 0xf6, 0xac, 0x0a, 0x39, 0x61, 0xad, 0x10, 0x56, 0x7a, 0x4f,
		0x58, 0x57, 0x38, 0x68, 0xf4, 0x82, 0x70, 0xb5, 0xc2, 0x03, 0xd6, 0x15, 0xce, 0x57, 0xab, 0xb6,
		0xcd, 0x81, 0x41, 0x6d, 0xc3, 0xc1, 0xa3, 0x8c, 0x3a, 0x1f, 0x6e, 0xd0, 0x10, 0x10, 0x04, 0x04,
		0x01, 0x41, 0x40, 0x10, 0x10, 0x04, 0x04, 0x01, 0x6d, 0x24, 0x01, 0x61, 0x0a, 0x9d, 0x09, 0x03,
		0x81, 0x3e, 0xb2, 0xe8, 0x83, 0x29, 0x34, 0xa6, 0xd0, 0x46, 0x71, 0x0f, 0x57, 0xcc, 0x72, 0x83,
		0x39, 0x5c, 0x31, 0x83, 0x73, 0x96, 0x56, 0x32, 0xa6, 0xd0, 0x28, 0x3c, 0x28, 0x3c, 0x28, 0x3c,
		0x28, 0x3c, 0x28, 0x3c, 0x28, 0x3c, 0x28, 0x3c, 0x1b, 0x45, 0x3e, 0x78, 0x43, 0xa3, 0xf0, 0xa0,
		0xf0, 0x60, 0x21, 0x84, 0xbe, 0x83, 0xbe, 0x83, 0xbe, 0x83, 0xbe, 0x53, 0x44, 0xca, 0xc1, 0x1b,
		0x1a, 0x7d, 0x07, 0x7d, 0x07, 0x7d, 0x07, 0x7d, 0x07, 0x7d, 0x07, 0x7d, 0x07, 0x7d, 0x67, 0x93,
		0xc8, 0x07, 0x8b, 0x68, 0xf4, 0x1d, 0xf4, 0x1d, 0xf4, 0x1d, 0xf4, 0x1d, 0xf4, 0x1d, 0xf4, 0x1d,
		0xf4, 0x9d, 0xbc, 0x53, 0xce, 0x86, 0x58, 0x44, 0x2b, 0x19, 0x48, 0x58, 0x3a, 0x5d, 0xa2, 0xaf,
		0x46, 0x39, 0xf9, 0x65, 0x92, 0x91, 0x1c, 0x78, 0x74, 0xdc, 0x0b, 0xbf, 0x1d, 0x84, 0xf2, 0xde,
		0x1c, 0x93, 0xcf, 0x63, 0xfc, 0x95, 0x3d, 0x86, 0xe2, 0xc9, 0xa1, 0x30, 0x18, 0xe1, 0xd7, 0xb9,
		0x0e, 0xc2, 0xc3, 0xaf, 0x33, 0x73, 0x72, 0xc3, 0xaf, 0x53, 0xdf, 0xa7, 0xae, 0x73, 0x33, 0x21,
		0xdb, 0x7d, 0x27, 0x8c, 0x55, 0x67, 0xe5, 0x71, 0x22, 0x4c, 0xcd, 0x4c, 0xcd, 0x4c, 0xcd, 0x4c,
		0xcd, 0x4c, 0xcd, 0x4c, 0xcd, 0x4c, 0xcd, 0x1a, 0xa6, 0xe6, 0x50, 0xdc, 0x2b, 0xcf, 0xcc, 0xc3,
		0x34, 0x98, 0x98, 0x99, 0x98, 0x99, 0x98, 0x99, 0x98, 0x99, 0x98, 0xd7, 0x36, 0x31, 0xef, 0x32,
		0x2f, 0xe7, 0x75, 0x5e, 0xfe, 0x4e, 0x63, 0x47, 0x92, 0xdd, 0x8a, 0xd0, 0xb7, 0x05, 0x51, 0x4a,
		0x63, 0x9b, 0xad, 0x67, 0xaf, 0x21, 0xd9, 0x6c, 0xf2, 0x76, 0x3d, 0x27, 0xa8, 0xe3, 0x52, 0x7c,
		0x17, 0x8a, 0xe8, 0x2e, 0xe8, 0xb6, 0xa3, 0xc4, 0xf5, 0x3b, 0xdb, 0xac, 0x9f, 0x7d, 0x36, 0x61,
		0x6b, 0xa6, 0x73, 0xf4, 0x4e, 0x4d, 0x40, 0x32, 0xe4, 0xa3, 0x4e, 0x3c, 0xb2, 0xa4, 0xa3, 0x4c,
		0x38, 0xca, 0x64, 0xa3, 0x85, 0x68, 0xf4, 0xc6, 0x7b, 0x5a, 0x07, 0xee, 0x59, 0x27, 0x94, 0x27,
		0xfb, 0x59, 0x12, 0x2b, 0x36, 0xa8, 0xaf, 0x00, 0xf6, 0x80, 0x7d, 0xaa, 0x9c, 0x4a, 0x1b, 0xd4,
		0x47, 0xe2, 0x5e, 0x84, 0x5e, 0xfc, 0xa0, 0x7e, 0xc4, 0x71, 0x9a, 0xd2, 0x9a, 0x8f, 0x38, 0x56,
		0x72, 0x72, 0xc4, 0x51, 0x29, 0x98, 0x74, 0x05, 0x95, 0xf6, 0xe0, 0xd2, 0x1e, 0x64, 0x99, 0x04,
		0x9b, 0x22, 0x33, 0xaf, 0xfd, 0xb8, 0x63, 0x57, 0x38, 0x1d, 0xb9, 0xe7, 0xa8, 0x16, 0xe6, 0xa0,
		0x03, 0x95, 0x67, 0x6f, 0x27, 0x98, 0xfc, 0xee, 0xdd, 0xe3, 0xb1, 0x9b, 0xc7, 0x18, 0xcf, 0xf1,
		0xa1, 0xed, 0x31, 0x9d, 0xab, 0x0f, 0x67, 0x29, 0x21, 0x5f, 0x03, 0x00, 0x30, 0x96, 0x31, 0x96,
		0xe5, 0x65, 0x2c, 0x93, 0x05, 0x8a, 0x69, 0x02, 0x9e, 0xdf, 0x1f, 0xc4, 0x76, 0x3f, 0xf8, 0x2a,
		0x42, 0xbb, 0x3b, 0xfc, 0xff, 0xea, 0xed, 0x3e, 0xb3, 0x43, 0x7d, 0x9e, 0xb4, 0x62, 0x73, 0xa9,
		0xa1, 0x87, 0xf4, 0xb2, 0x34, 0xcb, 0xf0, 0xcd, 0x2e, 0x8c, 0x75, 0x87, 0x73, 0x66, 0x61, 0x9d,
		0x59, 0x78, 0x67, 0x1a, 0xe6, 0x6a, 0xe1, 0xae, 0x41, 0x8f, 0xd5, 0x83, 0x32, 0x0b, 0xfd, 0x4f,
		0xc7, 0x9d, 0xd5, 0x85, 0xf9, 0x55, 0xc3, 0x6d, 0xba, 0x4c, 0xae, 0xe8, 0x69, 0xba, 0xd5, 0xf1,
		0xf8, 0x3f, 0x3d, 0x01, 0x66, 0xe9, 0xbe, 0xe5, 0x31, 0x4d, 0x34, 0xf3, 0x3b, 0xae, 0x99, 0x36,
		0xd6, 0xd3, 0xee, 0xaa, 0xf9, 0xce, 0xab, 0xa6, 0x80, 0x7c, 0xda, 0x86, 0x1a, 0xaf, 0x87, 0x24,
		0x68, 0xc3, 0x03, 0x83, 0xdb, 0x50, 0xcf, 0xad, 0x11, 0x3d, 0x63, 0xb2, 0xbe, 0x54, 0xae, 0xd7,
		0x74, 0x8b, 0x45, 0x65, 0x97, 0x6f, 0x1e, 0xda, 0x06, 0xfd, 0x7e, 0x56, 0x3c, 0x38, 0x4e, 0x1a,
		0x1e, 0x84, 0x07, 0xe1, 0x41, 0x78, 0x10, 0x1e, 0x84, 0x07, 0xe1, 0x41, 0x78, 0x10, 0x1e, 0xcc,
		0x1d, 0x0f, 0x76, 0x9d, 0x48, 0x84, 0xf6, 0x8d, 0xe7, 0x44, 0xb6, 0x3b, 0x08, 0x43, 0xe1, 0xc7,
		0xba, 0x65, 0xc2, 0x17, 0xbf, 0x01, 0x3a, 0x84, 0x0e, 0xa1, 0x43, 0xe8, 0x10, 0x3a, 0x84, 0x0e,
		0xa1, 0x43, 0xe8, 0x10, 0x3a, 0x34, 0x81, 0x0e, 0x35, 0x8b, 0x86, 0x2f, 0x7e, 0x03, 0x74, 0x08,
		0x1d, 0x42, 0x87, 0xd0, 0x21, 0x74, 0x08, 0x1d, 0x42, 0x87, 0xd0, 0x21, 0x74, 0x98, 0x53, 0x3a,
		0x8c, 0x45, 0xaf, 0x2f, 0x42, 0x27, 0x1e, 0x84, 0x22, 0x1b, 0xe9, 0x70, 0xf1, 0x0b, 0x60, 0x43,
		0xd8, 0x10, 0x36, 0x84, 0x0d, 0xb5, 0x4c, 0x55, 0x65, 0xd8, 0xd0, 0x1c, 0x36, 0x2c, 0xc3, 0x86,
		0xc6, 0xb3, 0x61, 0x19, 0x36, 0xdc, 0x44, 0x36, 0xcc, 0x44, 0x38, 0x5c, 0xfc, 0x02, 0xd8, 0x10,
		0x36, 0x84, 0x0d, 0x61, 0x43, 0xd8, 0x10, 0x36, 0x84, 0x0d, 0x61, 0x43, 0xd8, 0x30, 0x77, 0x6c,
		0xd8, 0x0b, 0xda, 0x83, 0xae, 0xc8, 0x52, 0x38, 0x7c, 0xf1, 0x1b, 0xa0, 0x43, 0xe8, 0x10, 0x3a,
		0x84, 0x0e, 0xa1, 0x43, 0xe8, 0x10, 0x3a, 0x84, 0x0e, 0xa1, 0x43, 0x13, 0xe8, 0x50, 0xb3, 0x74,
		0xf8, 0xe2, 0x37, 0x40, 0x87, 0xd0, 0x21, 0x74, 0x08, 0x1d, 0x42, 0x87, 0xd0, 0x21, 0x74, 0x08,
		0x1d, 0x42, 0x87, 0xb9, 0xa3, 0xc3, 0x60, 0x10, 0x67, 0x66, 0x68, 0xb8, 0x24, 0x6d, 0x88, 0x10,
		0x22, 0x84, 0x08, 0x21, 0x42, 0x2d, 0x13, 0x14, 0xb7, 0x50, 0x0c, 0x22, 0x42, 0x6e, 0xa1, 0x98,
		0x4f, 0x84, 0xdc, 0x42, 0xd9, 0x34, 0x22, 0xd4, 0xac, 0x14, 0x2e, 0x49, 0x1b, 0x22, 0x84, 0x08,
		0x21, 0x42, 0x88, 0x10, 0x22, 0x84, 0x08, 0x21, 0x42, 0x88, 0x10, 0x22, 0xcc, 0x1d, 0x11, 0x2a,
		0x3f, 0xa6, 0xb6, 0x30, 0xa3, 0x28, 0x3e, 0xaa, 0x06, 0xfd, 0x41, 0x7f, 0xd0, 0xdf, 0x8a, 0xe8,
		0xcf, 0x6b, 0x0b, 0x3f, 0xf6, 0xe2, 0x07, 0xb5, 0x87, 0xdb, 0x16, 0xf8, 0x6f, 0x4f, 0x43, 0x5a,
		0xf5, 0x49, 0xd6, 0x3e, 0x3a, 0x91, 0xc6, 0xee, 0xfc, 0x58, 0xf0, 0xc6, 0x45, 0xed, 0xfc, 0xa8,
		0x71, 0x7e, 0x52, 0xff, 0xa9, 0x55, 0x3d, 0xad, 0x5e, 0x9e, 0xb5, 0xae, 0x6a, 0xbf, 0xd4, 0x2e,
		0xeb, 0xcd, 0xdf, 0x75, 0x75, 0xef, 0xd1, 0xbc, 0x1d, 0x69, 0x43, 0x4d, 0xbd, 0xb8, 0xf9, 0xa4,
		0x2a, 0x8e, 0x2e, 0xeb, 0xcd, 0xfa, 0x51, 0xf5, 0xb4, 0x94, 0x47, 0xa8, 0xca, 0xa8, 0xcc, 0x67,
		0xd5, 0xff, 0xd7, 0xb8, 0xdc, 0xa8, 0x02, 0xd7, 0xcf, 0x37, 0xab, 0xc0, 0x9f, 0xce, 0xff, 0x7d,
		0xde, 0xf8, 0xf5, 0x7c, 0x93, 0x8a, 0xfc, 0x6b, 0xf5, 0xf2, 0xbc, 0x7e, 0xfe, 0x53, 0x29, 0x67,
		0x5c, 0x7d, 0xbd, 0xee, 0x59, 0x77, 0x3d, 0x5c, 0x3d, 0xe8, 0xf7, 0xbb, 0x0f, 0xf6, 0x7d, 0xd0,
		0x8d, 0x9d, 0x5b, 0xed, 0x77, 0x76, 0x96, 0xa6, 0x0e, 0x6f, 0xc3, 0xdb, 0xf0, 0x76, 0xae, 0x79,
		0x1b, 0xb5, 0x35, 0x0f, 0xb3, 0x26, 0x6a, 0x6b, 0x72, 0xa5, 0x0e, 0xb5, 0x15, 0xb5, 0x35, 0x0b,
		0x2a, 0xdc, 0x50, 0xb5, 0xf5, 0x29, 0xb7, 0x69, 0xde, 0x81, 0x5f, 0x9a, 0x3a, 0x54, 0x08, 0x15,
		0x42, 0x85, 0x50, 0x21, 0x54, 0x08, 0x15, 0x42, 0x85, 0x50, 0x21, 0x54, 0x98, 0x0d, 0x15, 0x7e,
		0xb7, 0xc2, 0xae, 0x5f, 0xaa, 0xfa, 0x7e, 0x10, 0x3b, 0xc3, 0x9e, 0xa2, 0xd4, 0xdb, 0x4b, 0x91,
		0x7b, 0x27, 0x7a, 0x4e, 0xdf, 0x89, 0xef, 0x86, 0xf3, 0xd0, 0x56, 0xd0, 0x17, 0xbe, 0x3b, 0x22,
		0x35, 0xbb, 0xdf, 0x75, 0xe2, 0x4e, 0x10, 0xf6, 0xb6, 0xdc, 0xa0, 0xd7, 0x0f, 0x7c, 0xe1, 0xc7,
		0xd1, 0xec, 0x8f, 0x5b, 0x73, 0xd3, 0xf9, 0x56, 0x7c, 0x17, 0x8a, 0xe8, 0x2e, 0xe8, 0xb6, 0xa3,
		0xd9, 0x1f, 0xb7, 0xa2, 0xd8, 0x89, 0x45, 0x49, 0x85, 0x94, 0xe3, 0x70, 0xe0, 0xc6, 0xfe, 0xe3,
		0x76, 0xdd, 0x34, 0x63, 0x17, 0x93, 0x7c, 0xb5, 0x8e, 0xa6, 0xf9, 0x9a, 0xfd, 0xb1, 0xd5, 0x9c,
		0xe5, 0xab, 0xd5, 0x9c, 0xe6, 0x6b, 0xf6, 0xc7, 0xd6, 0xd5, 0x28, 0x5f, 0xdf, 0xad, 0xa6, 0x85,
		0xd3, 0x7d, 0x22, 0x65, 0x5f, 0x18, 0x32, 0xa1, 0xc2, 0x71, 0x8b, 0xd2, 0xa9, 0x17, 0xc5, 0xd5,
		0x38, 0x96, 0x5b, 0x7e, 0x0c, 0xe7, 0xca, 0x5a, 0x57, 0x0c, 0x01, 0x2f, 0x92, 0x83, 0xfa, 0xe1,
		0x48, 0x3d, 0x97, 0x42, 0xf9, 0x70, 0x77, 0x77, 0xff, 0x60, 0x77, 0x77, 0xfb, 0x60, 0xe7, 0x60,
		0xfb, 0xfd, 0xde, 0x5e, 0x79, 0x5f, 0x66, 0x13, 0xb9, 0xd4, 0x08, 0xdb, 0x22, 0x14, 0xed, 0x8f,
		0xc3, 0x9a, 0xf1, 0x07, 0xdd, 0xae, 0x4a, 0x12, 0x9f, 0xa2, 0xd1, 0xda, 0x2c, 0xfd, 0x30, 0x99,
		0xb6, 0x21, 0x15, 0x83, 0x39, 0xb3, 0x20, 0x96, 0x08, 0xdf, 0x8c, 0xc2, 0x36, 0x5d, 0xc0, 0x26,
		0x0f, 0xbb, 0x64, 0xbf, 0x99, 0xb0, 0x3d, 0x65, 0xdb, 0x51, 0x73, 0xfb, 0xa5, 0x68, 0x35, 0xad,
		0xad, 0x95, 0xac, 0x8d, 0xde, 0xae, 0xf1, 0xd7, 0x7f, 0xe3, 0x8d, 0xb6, 0x48, 0xdb, 0x06, 0x3a,
		0xea, 0x3e, 0x41, 0x85, 0xab, 0x57, 0xf4, 0xeb, 0xb5, 0xfb, 0x72, 0x9d, 0x2d, 0xff, 0x97, 0x17,
		0x6a, 0xf1, 0x71, 0x4a, 0x19, 0xe5, 0xf3, 0x85, 0x5f, 0x49, 0x34, 0x6d, 0x24, 0x9f, 0x1e, 0x94,
		0xa6, 0x81, 0x14, 0xc3, 0x7d, 0x8a, 0x61, 0xfd, 0xa5, 0xca, 0xa9, 0x0e, 0x6e, 0x87, 0xd9, 0x14,
		0xed, 0x57, 0xd7, 0xae, 0xaf, 0xf7, 0xb9, 0xe9, 0x92, 0x7f, 0x2b, 0x70, 0xa7, 0x3d, 0xec, 0xc3,
		0x5c, 0x0f, 0x5b, 0xfa, 0xe3, 0x37, 0x7a, 0x58, 0xe9, 0x58, 0x44, 0x6e, 0xe8, 0xf5, 0x27, 0xbd,
		0xbe, 0x54, 0x6d, 0xb7, 0x3d, 0xff, 0xd6, 0x9a, 0xeb, 0xa2, 0x56, 0xdb, 0x89, 0x1d, 0x2b, 0x0e,
		0xac, 0xfe, 0xdd, 0x43, 0xe4, 0xb9, 0x4e, 0xd7, 0xf2, 0xfc, 0x7b, 0xe1, 0xc7, 0x41, 0xf8, 0xf0,
		0xce, 0x6a, 0xde, 0x79, 0x91, 0x15, 0x0d, 0x6e, 0xe2, 0x50, 0x08, 0xcb, 0x8b, 0xbe, 0xf8, 0x81,
		0xdf, 0x7d, 0xb0, 0xee, 0x9d, 0xae, 0xd7, 0xb6, 0xbe, 0xde, 0x09, 0xdf, 0x8a, 0xef, 0x84, 0x15,
		0x3f, 0xf4, 0x85, 0x15, 0x74, 0x46, 0x7f, 0x9e, 0xe6, 0xcb, 0xf2, 0x22, 0xab, 0x79, 0x59, 0x3d,
		0xbf, 0x3a, 0xaa, 0xd5, 0x7f, 0xa9, 0x5d, 0xbe, 0x7b, 0x2b, 0x9f, 0x8f, 0xd2, 0xc4, 0x1b, 0xbf,
		0x96, 0x54, 0x2b, 0x4c, 0xa3, 0x05, 0xca, 0x6b, 0x7d, 0x69, 0xb5, 0x3c, 0x69, 0xad, 0x4e, 0x5a,
		0x8b, 0x53, 0xd2, 0xda, 0xd4, 0x86, 0xdb, 0x63, 0x2f, 0x19, 0x3f, 0x96, 0xe6, 0xf3, 0x94, 0xb8,
		0x26, 0x1f, 0xdb, 0x2c, 0xbd, 0x38, 0xfb, 0x3c, 0x24, 0x9a, 0x41, 0xdf, 0xee, 0x8a, 0x7b, 0xd1,
		0xb5, 0xdc, 0xc0, 0x8f, 0x1d, 0xcf, 0x17, 0xa1, 0xd5, 0x09, 0x42, 0xcb, 0xed, 0x7a, 0xc3, 0x7e,
		0xdc, 0x0f, 0xc2, 0x78, 0x21, 0x5e, 0x92, 0x7e, 0x55, 0xb2, 0x5e, 0x2d, 0xad, 0x84, 0xcb, 0x28,
		0xde, 0xea, 0xca, 0xb6, 0xac, 0x82, 0xad, 0xac, 0x54, 0x2b, 0x2b, 0xd2, 0x5a, 0x94, 0xe7, 0x6f,
		0xab, 0x81, 0x99, 0xef, 0x24, 0xe2, 0x2e, 0x3f, 0x13, 0x4c, 0xd0, 0x8f, 0x47, 0x73, 0x89, 0x7b,
		0xe7, 0xf8, 0xbe, 0xe8, 0xbe, 0x39, 0xc9, 0x7c, 0xf1, 0x9d, 0xf1, 0x14, 0x3a, 0xe2, 0xb3, 0xe1,
		0xe4, 0x91, 0x78, 0xa6, 0xf9, 0xe2, 0x7b, 0x91, 0xd5, 0xb8, 0x18, 0x9d, 0x53, 0x6d, 0x1d, 0xfd,
		0x5c, 0x3d, 0x3f, 0xaf, 0x9d, 0x9a, 0x32, 0xdd, 0x04, 0xfd, 0xd8, 0x8e, 0x45, 0xd8, 0x2b, 0xe4,
		0x5c, 0x33, 0x2d, 0x5c, 0x5e, 0x26, 0x9a, 0x49, 0xa7, 0xb4, 0x27, 0x9d, 0x32, 0xfd, 0x64, 0xf3,
		0x3c, 0x01, 0xb9, 0x09, 0xa7, 0xe6, 0xbb, 0xdd, 0x20, 0x1a, 0x46, 0xc9, 0xd3, 0x09, 0x67, 0xd8,
		0xab, 0xbb, 0x5e, 0x14, 0x0f, 0x7b, 0xf8, 0xb3, 0xf8, 0x89, 0x0a, 0x32, 0xe1, 0xa4, 0xe8, 0xef,
		0xc5, 0x9b, 0x6d, 0x92, 0xc7, 0x43, 0x6e, 0xa6, 0x9a, 0xa5, 0xff, 0x72, 0xfd, 0xd2, 0x22, 0x28,
		0xd9, 0xfa, 0x5a, 0x76, 0x5d, 0xfd, 0x4a, 0xf3, 0xc9, 0xad, 0xa1, 0x97, 0xb7, 0xc3, 0x62, 0x99,
		0x9f, 0xfe, 0xe4, 0xd9, 0x68, 0xf4, 0x56, 0xa9, 0xd3, 0x95, 0x76, 0x49, 0x19, 0xd3, 0x94, 0xed,
		0x69, 0x89, 0x66, 0xf9, 0x9e, 0xcb, 0x73, 0xa9, 0x2d, 0x3a, 0x9e, 0x2f, 0xda, 0x76, 0x24, 0x46,
		0xab, 0xea, 0xa7, 0x39, 0x9e, 0xdb, 0x76, 0x9e, 0xfb, 0xad, 0x67, 0x25, 0x5e, 0x3e, 0xc6, 0xbc,
		0x38, 0x96, 0xbc, 0x36, 0x66, 0xcc, 0x8f, 0x0d, 0x4b, 0xbe, 0x2a, 0x49, 0xfc, 0x27, 0x8e, 0xf3,
		0xc4, 0xf1, 0xfc, 0x3c, 0x6e, 0x47, 0x19, 0x4b, 0xd9, 0x2b, 0x5e, 0x9a, 0x93, 0x4a, 0x5e, 0xff,
		0x7e, 0xd7, 0x1e, 0xe7, 0x73, 0x79, 0x13, 0x2c, 0x54, 0xcd, 0xc2, 0x27, 0x5e, 0x12, 0x68, 0x5e,
		0x1d, 0xfa, 0xdf, 0x1c, 0xea, 0x93, 0x0c, 0xed, 0x09, 0x9a, 0x2b, 0xed, 0xb0, 0x9d, 0x7a, 0x98,
		0x4e, 0x3d, 0x2c, 0x27, 0x6b, 0x4e, 0x39, 0x51, 0xec, 0x2d, 0xf4, 0x78, 0xde, 0x78, 0x6f, 0x57,
		0xc7, 0x0b, 0xad, 0x6e, 0x08, 0xcf, 0xbe, 0xd1, 0x29, 0xcc, 0x65, 0xd9, 0xd7, 0x3b, 0xcd, 0x8a,
		0x39, 0xd6, 0x7d, 0x6c, 0xc5, 0x94, 0xf8, 0x3a, 0xf9, 0x5c, 0x31, 0x50, 0x32, 0x61, 0x57, 0x2b,
		0x1e, 0x46, 0x26, 0xeb, 0x8a, 0xd9, 0x6c, 0x63, 0x25, 0xed, 0xa2, 0x73, 0xb4, 0x31, 0xbf, 0xf4,
		0x49, 0x59, 0xf5, 0x33, 0x18, 0x99, 0x25, 0x92, 0x76, 0x23, 0x5c, 0xea, 0x88, 0xaa, 0xf4, 0x91,
		0x54, 0x95, 0x23, 0xa8, 0x0a, 0x9d, 0x5b, 0xb5, 0x93, 0x6b, 0xeb, 0xec, 0xda, 0x3a, 0xbd, 0x9e,
		0xce, 0x9f, 0x2e, 0x08, 0x52, 0x06, 0xc3, 0x34, 0x8b, 0xd2, 0x87, 0x3e, 0x67, 0x87, 0xb3, 0xe3,
		0xd0, 0xf3, 0x6f, 0x65, 0x1a, 0xfc, 0x71, 0x90, 0x3e, 0xcc, 0x6a, 0x17, 0x3c, 0xc5, 0x08, 0x3b,
		0x59, 0xa2, 0x48, 0x06, 0xf9, 0x2b, 0x1b, 0x8b, 0x44, 0x37, 0xd1, 0x4d, 0x74, 0xaf, 0x39, 0xba,
		0xfb, 0x72, 0x7d, 0x7f, 0x5a, 0x0b, 0x72, 0xf0, 0x44, 0x84, 0x13, 0xe1, 0xf9, 0x8f, 0xf0, 0xb9,
		0xc5, 0xba, 0x52, 0x98, 0x4b, 0x7c, 0xf6, 0xc2, 0x89, 0x63, 0x11, 0xfa, 0xd2, 0x77, 0x26, 0x4a,
		0xdf, 0x7f, 0xde, 0xb6, 0xdf, 0x5f, 0xff, 0xf3, 0xb9, 0x6c, 0xbf, 0xbf, 0x1e, 0xff, 0xb1, 0x3c,
		0xfa, 0xcf, 0xdf, 0x95, 0x6f, 0xff, 0x54, 0x3e, 0x6f, 0xdb, 0xbb, 0x93, 0x9f, 0x56, 0xf6, 0x3e,
		0x6f, 0xdb, 0x7b, 0xd7, 0x3f, 0x7c, 0xff, 0xe5, 0xcb, 0xbb, 0xb4, 0x9f, 0xf9, 0xe1, 0xef, 0x9d,
		0x6f, 0x5b, 0xd3, 0x0f, 0x55, 0x26, 0xff, 0xba, 0xf3, 0x79, 0xdb, 0xae, 0x5c, 0xff, 0x90, 0xbe,
		0x3b, 0x5c, 0xcb, 0xd4, 0x53, 0xe3, 0xaa, 0xfe, 0x9b, 0x72, 0x65, 0xfd, 0xef, 0xf7, 0x6b, 0xaf,
		0xae, 0x1f, 0xfe, 0x4b, 0xa2, 0xc2, 0x32, 0x8d, 0x1f, 0x4e, 0x0b, 0xbf, 0x91, 0x84, 0xfc, 0x69,
		0xe1, 0xc2, 0x9c, 0x56, 0x9d, 0xdf, 0x4f, 0xd8, 0x7a, 0xf2, 0x97, 0xe7, 0xf2, 0xf6, 0xf3, 0x1f,
		0x6c, 0xa5, 0x52, 0xad, 0xac, 0xd7, 0x76, 0x4c, 0x8e, 0xc7, 0xdf, 0x7b, 0x25, 0xe2, 0xa8, 0x35,
		0xff, 0xe7, 0x7a, 0xff, 0x7e, 0x77, 0x3c, 0xf1, 0x2f, 0xfe, 0xb5, 0x35, 0x41, 0x09, 0x5d, 0x3b,
		0x71, 0x09, 0xc4, 0xd1, 0x54, 0xeb, 0x28, 0x99, 0xf5, 0x53, 0x4a, 0xaa, 0x42, 0xda, 0xdb, 0x04,
		0x69, 0x2f, 0x35, 0x05, 0x4d, 0x5b, 0xac, 0x2b, 0x9c, 0x4e, 0x3a, 0x93, 0xc0, 0x29, 0xf1, 0xa4,
		0xb8, 0x23, 0x37, 0x24, 0x9d, 0xd1, 0xb0, 0xf2, 0xee, 0xdd, 0x64, 0x48, 0xd8, 0x1a, 0x75, 0xf9,
		0x15, 0x06, 0xe6, 0xf8, 0xe2, 0x52, 0xea, 0xc8, 0x4c, 0x73, 0xdf, 0x49, 0x5a, 0x75, 0xaf, 0x10,
		0x9a, 0xa8, 0xee, 0xa8, 0xee, 0xac, 0xda, 0x59, 0xb5, 0xa3, 0xba, 0xa3, 0xba, 0x13, 0xdd, 0x44,
		0x37, 0xaa, 0x3b, 0xaa, 0x3b, 0x11, 0x8e, 0xea, 0x8e, 0xea, 0x8e, 0xea, 0x8e, 0xea, 0x8e, 0xea,
		0x8e, 0xea, 0x9e, 0x42, 0x75, 0x4f, 0x6b, 0xd2, 0xa3, 0x57, 0x74, 0x4f, 0x61, 0xc5, 0x93, 0xb5,
		0x6b, 0xc4, 0xdb, 0xbe, 0x07, 0x72, 0x21, 0x99, 0x3e, 0x04, 0xb5, 0x84, 0x9c, 0x44, 0x88, 0x49,
		0x84, 0xd4, 0xea, 0xac, 0x38, 0xe4, 0xbb, 0xb8, 0x8a, 0x37, 0x87, 0x4c, 0xa7, 0x5e, 0x8d, 0x4d,
		0x87, 0xfa, 0x25, 0xac, 0xe4, 0x35, 0x2a, 0x73, 0x23, 0x2b, 0x59, 0xcd, 0x25, 0xbe, 0x9a, 0xf5,
		0xe3, 0xd2, 0x1b, 0x36, 0xfb, 0xa9, 0x6f, 0xd8, 0xec, 0x73, 0xc3, 0x46, 0x7e, 0x19, 0xb2, 0xee,
		0x1b, 0x36, 0xfb, 0xb2, 0x37, 0x6c, 0xf6, 0xb9, 0x61, 0xa3, 0xba, 0x86, 0xe5, 0x86, 0x0d, 0x37,
		0x6c, 0xd4, 0x64, 0x14, 0xf6, 0xfa, 0x64, 0xba, 0xe8, 0xf4, 0x03, 0xec, 0xf5, 0xa1, 0x15, 0xa2,
		0x15, 0x6e, 0xc6, 0x6e, 0x00, 0x7b, 0x7d, 0x44, 0x37, 0xd1, 0x5d, 0xd4, 0xe8, 0x66, 0xaf, 0x8f,
		0x08, 0x27, 0xc2, 0xdf, 0x5c, 0xac, 0x9b, 0xb7, 0xd7, 0x37, 0xda, 0x54, 0x72, 0xec, 0x4e, 0xd5,
		0x3e, 0xb9, 0xfe, 0xbb, 0xfc, 0xe3, 0xee, 0xb7, 0x0f, 0x3f, 0xfc, 0x7d, 0xf0, 0xed, 0xf9, 0x0f,
		0xff, 0x59, 0xf6, 0x6b, 0xe5, 0x1f, 0x0f, 0xbe, 0x7d, 0x78, 0xe1, 0x5f, 0xf6, 0xbf, 0x7d, 0x48,
		0x98, 0xc6, 0xde, 0xb7, 0xef, 0x17, 0x7e, 0x75, 0xf8, 0xf3, 0xca, 0x4b, 0x1f, 0xd8, 0x7d, 0xe1,
		0x03, 0x3b, 0x2f, 0x7d, 0x60, 0xe7, 0x85, 0x0f, 0xbc, 0x98, 0xa5, 0xca, 0x0b, 0x1f, 0xd8, 0xfb,
		0xf6, 0xcf, 0xc2, 0xef, 0x7f, 0xbf, 0xfc, 0x57, 0xf7, 0xbf, 0xfd, 0xf0, 0xcf, 0x4b, 0xff, 0x76,
		0xf0, 0xed, 0x9f, 0x0f, 0x3f, 0xfc, 0xb0, 0xf5, 0x7d, 0xb9, 0xf2, 0x79, 0xdb, 0x3e, 0x1c, 0x6f,
		0xfd, 0x95, 0xaf, 0x17, 0x76, 0x04, 0x47, 0xff, 0xdf, 0xc4, 0xbd, 0x50, 0x7a, 0x53, 0x6e, 0x7b,
		0x13, 0x3b, 0xc5, 0x19, 0x6c, 0x5b, 0x69, 0xd8, 0xc6, 0xd2, 0xb0, 0xad, 0xa5, 0xc0, 0x81, 0x26,
		0xef, 0x14, 0xef, 0x3f, 0xdf, 0x46, 0xdb, 0x5f, 0xf9, 0xfd, 0xac, 0xfd, 0xa7, 0xbb, 0x6a, 0xfb,
		0xdc, 0xcf, 0x42, 0x18, 0xde, 0x2c, 0x61, 0x98, 0xfb, 0x59, 0x09, 0xc6, 0x15, 0xee, 0x67, 0x11,
		0x9a, 0xec, 0xd9, 0xa0, 0xf9, 0xa0, 0xf9, 0xa0, 0xea, 0xb2, 0x67, 0x43, 0x74, 0x13, 0xdd, 0x44,
		0x37, 0x7b, 0x36, 0x44, 0x38, 0x11, 0xce, 0x9e, 0x0d, 0x7b, 0x36, 0xec, 0xd9, 0xb0, 0x67, 0x43,
		0x6f, 0x62, 0xcf, 0x86, 0x3d, 0x9b, 0x4d, 0xdf, 0xb3, 0x59, 0xc5, 0xed, 0xbe, 0x97, 0xb7, 0x6c,
		0xb8, 0xdd, 0x97, 0x55, 0xc8, 0x6d, 0xd4, 0xed, 0xbe, 0x57, 0xbb, 0x78, 0x46, 0xb7, 0xfb, 0x5e,
		0xec, 0xd4, 0x85, 0xb8, 0xdd, 0xb7, 0x9f, 0xe1, 0xed, 0xbe, 0x7d, 0x3d, 0xb7, 0xfb, 0xfa, 0x41,
		0x18, 0x27, 0xbc, 0xd6, 0x37, 0xfb, 0x55, 0xee, 0xf3, 0x99, 0x73, 0x9f, 0xef, 0xb1, 0xd5, 0x92,
		0x5f, 0xe4, 0x9b, 0x7e, 0x82, 0x1b, 0x7c, 0xdc, 0xe0, 0x7b, 0xfc, 0x45, 0x6e, 0xf0, 0xb1, 0x1b,
		0xbc, 0x1e, 0xd0, 0x67, 0x37, 0x18, 0x35, 0x19, 0x35, 0x99, 0xfd, 0xa2, 0xa5, 0x79, 0x61, 0x37,
		0x98, 0xe8, 0x26, 0xba, 0x8b, 0x1a, 0xdd, 0xc3, 0x95, 0x88, 0xc2, 0x5e, 0xf0, 0xf0, 0xd3, 0x44,
		0x37, 0xd1, 0x5d, 0xb8, 0xe8, 0x1e, 0xad, 0xd0, 0xfd, 0x41, 0xcf, 0x0e, 0x1d, 0xff, 0x56, 0xa8,
		0x44, 0xf9, 0x7b, 0x89, 0xcf, 0x4e, 0xf2, 0x2f, 0xb7, 0x79, 0x27, 0xd7, 0xd1, 0xf4, 0x8c, 0x6d,
		0x8b, 0x63, 0x9c, 0x42, 0x1a, 0xaa, 0xbb, 0x98, 0xd3, 0x84, 0xbe, 0xdf, 0xfe, 0x7b, 0xfb, 0xc7,
		0xdd, 0x6f, 0xe3, 0xed, 0xb3, 0xe1, 0x9f, 0x77, 0xbe, 0xcd, 0xed, 0xa7, 0x0d, 0x7f, 0x50, 0x99,
		0xfb, 0xc1, 0xdf, 0x95, 0x6f, 0xff, 0x6c, 0xff, 0xdf, 0xb9, 0xbf, 0xef, 0x7c, 0xfb, 0xe7, 0x73,
		0xd9, 0xde, 0x9b, 0xfc, 0x6d, 0xf7, 0xdb, 0x3f, 0xfb, 0x33, 0x2f, 0xce, 0xe1, 0x3f, 0xee, 0xef,
		0xcd, 0xfd, 0xbd, 0x32, 0xfc, 0xfb, 0xde, 0xc8, 0x82, 0x73, 0x9c, 0xfc, 0xfe, 0xde, 0xde, 0xce,
		0xd8, 0xae, 0xf3, 0xcb, 0x97, 0x77, 0x5f, 0xbe, 0xbc, 0xcb, 0x49, 0x66, 0x4a, 0xd2, 0x55, 0x7a,
		0xad, 0xd2, 0xa4, 0x3a, 0x76, 0xa7, 0xa7, 0xa9, 0xfd, 0xef, 0xf7, 0xb4, 0xec, 0x62, 0x66, 0x64,
		0xb6, 0x86, 0xa7, 0x6d, 0x2b, 0xf5, 0xc9, 0x6f, 0x3f, 0xae, 0x6b, 0xa0, 0x7a, 0x1c, 0xa6, 0x6f,
		0x44, 0xa8, 0x61, 0xb4, 0xda, 0x57, 0x48, 0xe2, 0x72, 0x34, 0x4f, 0xa8, 0x76, 0xe9, 0xbf, 0x95,
		0x3e, 0x6d, 0x4d, 0xb6, 0xf1, 0xa4, 0x69, 0x63, 0x21, 0xb1, 0x5f, 0x9c, 0xee, 0x40, 0xc8, 0x6d,
		0xc8, 0x2f, 0x4d, 0xef, 0x24, 0x74, 0xdc, 0xd8, 0x0b, 0xfc, 0x63, 0xef, 0xd6, 0x93, 0xdd, 0xe9,
		0x5f, 0xde, 0x21, 0xc4, 0xad, 0x13, 0x7b, 0xf7, 0x42, 0x6a, 0x83, 0x5d, 0x63, 0x9f, 0x7e, 0xda,
		0x14, 0xce, 0x5f, 0xfa, 0x9b, 0x62, 0x18, 0xe8, 0x7b, 0x9b, 0xd7, 0x1c, 0xdf, 0xad, 0xe7, 0xd3,
		0xa6, 0x0d, 0x88, 0xc2, 0x1f, 0xf4, 0x44, 0xe8, 0x48, 0x88, 0xaa, 0x4b, 0xf1, 0x6d, 0x57, 0x21,
		0x8d, 0x9a, 0x3f, 0xe8, 0x29, 0x77, 0xff, 0x52, 0x33, 0xb8, 0x1a, 0xc3, 0xa8, 0x8e, 0x40, 0x2a,
		0x6d, 0x0f, 0xeb, 0xa8, 0x7a, 0xfe, 0x7b, 0xe9, 0xbb, 0x35, 0x8e, 0x0d, 0xa5, 0x66, 0x50, 0xf7,
		0x63, 0x3d, 0x05, 0x1a, 0x96, 0xe5, 0x83, 0xb5, 0xbd, 0xa6, 0xe8, 0x90, 0xfb, 0xe4, 0x37, 0x4e,
		0xae, 0x3d, 0x9f, 0x26, 0x38, 0xb9, 0x66, 0xec, 0xc9, 0xb5, 0xe9, 0x99, 0x8d, 0xe9, 0x9f, 0x56,
		0xe0, 0x2f, 0x70, 0x11, 0x84, 0xf1, 0xfc, 0x1f, 0xf0, 0x14, 0x60, 0xab, 0x3a, 0x33, 0xe5, 0x0f,
		0x4f, 0x01, 0x3c, 0x05, 0x5e, 0xa8, 0x19, 0x3c, 0x05, 0x08, 0xcd, 0xc7, 0xac, 0x70, 0x8a, 0x44,
		0x7f, 0xa7, 0xd6, 0xd0, 0xb9, 0x55, 0x3b, 0xb9, 0xb6, 0xce, 0xae, 0xad, 0xd3, 0xeb, 0xe9, 0xfc,
		0x72, 0xab, 0x11, 0xf6, 0x99, 0xa5, 0xea, 0x82, 0x53, 0x24, 0x44, 0x37, 0xd1, 0x5d, 0xd8, 0xe8,
		0xe6, 0x14, 0x09, 0xd1, 0x4d, 0x74, 0x2f, 0xef, 0xd9, 0x9c, 0x22, 0xe1, 0x14, 0x09, 0xa7, 0x48,
		0x16, 0xfe, 0xc7, 0x29, 0x12, 0x4e, 0x91, 0x28, 0x0d, 0xcf, 0x1a, 0x07, 0x2a, 0x4e, 0x91, 0x2c,
		0x64, 0x84, 0x53, 0x24, 0x9c, 0x22, 0x29, 0x60, 0x73, 0x70, 0x8a, 0x24, 0xd1, 0x80, 0xc8, 0x29,
		0x92, 0x57, 0x53, 0xe3, 0x14, 0x89, 0xd6, 0xe8, 0xe0, 0x14, 0x09, 0xa7, 0x48, 0x34, 0x69, 0x56,
		0x45, 0x3a, 0x45, 0x92, 0xb9, 0xe3, 0xd1, 0xc2, 0x21, 0x12, 0x5c, 0x8e, 0xb2, 0x0a, 0xac, 0xcd,
		0x71, 0x39, 0x5a, 0xec, 0xc8, 0x59, 0xf8, 0x1a, 0x3d, 0xef, 0xba, 0xe6, 0x7b, 0x19, 0xbd, 0x65,
		0xfd, 0xa3, 0x54, 0x4d, 0x89, 0xed, 0x8b, 0xbe, 0x7b, 0xa5, 0x1a, 0xde, 0x2a, 0xbe, 0x4c, 0xb1,
		0x97, 0x14, 0x36, 0x6d, 0x21, 0x9f, 0x96, 0x6d, 0x56, 0x82, 0xb9, 0xdc, 0x97, 0x3c, 0x3f, 0x16,
		0x61, 0xc7, 0x71, 0xc5, 0xa2, 0x07, 0xd3, 0xcc, 0xfb, 0x75, 0xf6, 0x3b, 0xcf, 0xca, 0xbd, 0xfc,
		0xb0, 0xcb, 0x8b, 0x7b, 0x09, 0xaf, 0xed, 0x15, 0xcc, 0xef, 0x05, 0x78, 0xcb, 0xce, 0x22, 0xbd,
		0xa5, 0xf4, 0x27, 0x56, 0xf2, 0x13, 0x2b, 0xf5, 0xcf, 0x95, 0x78, 0xaf, 0x53, 0x4a, 0xd9, 0x2f,
		0x5e, 0x3a, 0xf8, 0x31, 0xab, 0xd2, 0xb7, 0x9d, 0xaf, 0x66, 0xbf, 0x9a, 0x0f, 0xe7, 0x2b, 0xaf,
		0x63, 0xa4, 0xef, 0xd5, 0xb2, 0xc6, 0x93, 0x1b, 0xeb, 0xde, 0x74, 0xbd, 0x72, 0x6e, 0x6f, 0xc3,
		0xd1, 0xfa, 0x3c, 0xc1, 0x6c, 0x32, 0xad, 0xd9, 0xf9, 0x0f, 0x99, 0xe1, 0x7d, 0xd5, 0x75, 0x6e,
		0x0b, 0x69, 0x7d, 0x35, 0x2c, 0x17, 0xce, 0x57, 0x1a, 0x3a, 0x96, 0x4c, 0x07, 0x93, 0xef, 0x68,
		0xb2, 0x1d, 0x4e, 0xb9, 0xe3, 0x29, 0x77, 0x40, 0xa5, 0x8e, 0x98, 0xcd, 0x02, 0x2f, 0xf5, 0x89,
		0xc5, 0xae, 0x73, 0x6b, 0xc7, 0x32, 0xbb, 0xc2, 0xb3, 0x53, 0xc8, 0x8f, 0x29, 0x6c, 0xc6, 0x79,
		0x87, 0x74, 0x9d, 0x5a, 0xb5, 0x73, 0x6b, 0xeb, 0xe4, 0xda, 0x3a, 0xbb, 0x96, 0x4e, 0x2f, 0xa7,
		0x78, 0xad, 0xfe, 0xb4, 0xc3, 0xdc, 0xe4, 0x2e, 0xd3, 0xc7, 0x55, 0x25, 0x63, 0x35, 0xa9, 0x58,
		0x8f, 0x44, 0x3c, 0x96, 0x86, 0x4f, 0xab, 0x47, 0x17, 0x2a, 0xba, 0x79, 0x79, 0x98, 0xc8, 0x55,
		0xb3, 0xda, 0xac, 0x1f, 0x95, 0x56, 0xb9, 0x73, 0xa0, 0x41, 0x52, 0x1e, 0x97, 0x5d, 0x69, 0x0b,
		0xe8, 0xb1, 0xe4, 0x1f, 0xac, 0xf2, 0x8a, 0x84, 0xe1, 0x6f, 0x39, 0x38, 0x42, 0xd7, 0xf3, 0x7c,
		0xbb, 0xeb, 0xf9, 0x7f, 0x44, 0xf2, 0x73, 0xcb, 0x2c, 0x09, 0x26, 0x17, 0x26, 0x97, 0x82, 0x4d,
		0x2e, 0x03, 0xcf, 0x8f, 0xcb, 0xfb, 0x0a, 0x53, 0x8a, 0xc4, 0xb1, 0x0c, 0xc5, 0xe3, 0x18, 0x0a,
		0xa3, 0xa8, 0x8e, 0xe3, 0x17, 0xba, 0x8e, 0x5d, 0x68, 0xdf, 0xdf, 0xd7, 0xb7, 0xaf, 0xaf, 0xb0,
		0x85, 0xaa, 0xe5, 0x58, 0x85, 0xce, 0xe3, 0x14, 0x79, 0xae, 0xe6, 0x7c, 0x6e, 0xd0, 0x16, 0x66,
		0x5b, 0x70, 0x26, 0x3d, 0x6f, 0x2d, 0xfb, 0xe3, 0xd6, 0x1c, 0x58, 0x6b, 0xbc, 0x5b, 0x5e, 0x9f,
		0x7e, 0x55, 0x6b, 0xd9, 0x1f, 0x5b, 0xd5, 0xd9, 0xb7, 0xae, 0xe1, 0x7a, 0x39, 0xb7, 0x58, 0x51,
		0x84, 0x0c, 0x51, 0x84, 0xa2, 0xbe, 0x10, 0x6d, 0x35, 0x49, 0x68, 0x9c, 0x04, 0xd8, 0x0e, 0xb6,
		0x17, 0x10, 0xdb, 0x77, 0x2a, 0x0a, 0xd8, 0x7e, 0x00, 0xb6, 0x83, 0xed, 0x59, 0x61, 0xfb, 0x6e,
		0xe5, 0xfd, 0xee, 0xfb, 0xfd, 0x83, 0xca, 0x7b, 0xd8, 0x3d, 0xb7, 0xec, 0xfe, 0x23, 0xdb, 0x33,
		0x4c, 0xc5, 0x4c, 0xc5, 0x6c, 0xcf, 0xb0, 0x3d, 0xc3, 0xf6, 0xcc, 0xda, 0xa6, 0x96, 0x9e, 0x18,
		0xdd, 0x0e, 0x94, 0xdf, 0x9b, 0x11, 0x12, 0xb7, 0x0b, 0x99, 0x56, 0x98, 0x56, 0x72, 0x3f, 0xad,
		0xdc, 0x38, 0x91, 0x98, 0x29, 0x98, 0x76, 0x3a, 0x8b, 0xbd, 0x85, 0x89, 0x45, 0x66, 0xb9, 0x77,
		0x31, 0x95, 0x54, 0x5d, 0xdb, 0xeb, 0x7c, 0x98, 0x93, 0x50, 0x9f, 0xfd, 0x60, 0xf2, 0xf7, 0xe4,
		0x86, 0x7c, 0xb2, 0xb5, 0xca, 0x5d, 0xa0, 0x37, 0x92, 0x90, 0xbf, 0x0b, 0x94, 0xb2, 0x25, 0xc4,
		0x5f, 0x71, 0xe8, 0xd8, 0x03, 0x3f, 0x8a, 0x9d, 0x9b, 0xae, 0x64, 0x4f, 0xff, 0x7a, 0x27, 0xfc,
		0x75, 0xfa, 0x68, 0xbc, 0x7b, 0xb7, 0x35, 0x73, 0x93, 0x7c, 0x5c, 0xa1, 0x58, 0xff, 0xc7, 0xfa,
		0xd7, 0x78, 0x26, 0xfe, 0x97, 0x0a, 0xcb, 0x28, 0x8e, 0xb9, 0xcb, 0xc6, 0xde, 0x51, 0x75, 0x29,
		0x2e, 0x7f, 0x75, 0x8d, 0xc0, 0x4b, 0x47, 0xe2, 0x37, 0xeb, 0x73, 0x2d, 0xc2, 0xc6, 0xb1, 0x82,
		0x1b, 0xe2, 0x8b, 0x5d, 0xa7, 0x79, 0x27, 0xac, 0xc8, 0xeb, 0xf5, 0xbb, 0xc2, 0xea, 0x7a, 0x51,
		0x6c, 0x05, 0x1d, 0x6b, 0x4c, 0x22, 0xd6, 0x6c, 0x94, 0xb4, 0xbc, 0xc8, 0x72, 0xdc, 0xd8, 0xbb,
		0x17, 0x5f, 0xfc, 0x61, 0xdb, 0x59, 0xf1, 0x9d, 0xb0, 0x1e, 0x17, 0x0b, 0x62, 0xf8, 0xaf, 0x51,
		0xec, 0xc4, 0x9e, 0xeb, 0x74, 0xbb, 0x0f, 0xd6, 0xb8, 0xd6, 0x06, 0x61, 0x6a, 0xb5, 0x3a, 0xab,
		0x9e, 0xf7, 0xbc, 0xf7, 0xc9, 0xfb, 0x41, 0xae, 0xa4, 0x23, 0x2e, 0x74, 0xc6, 0x2c, 0x5b, 0x88,
		0xfb, 0xbc, 0xd9, 0xaf, 0x0b, 0x38, 0xb6, 0xc5, 0xea, 0x80, 0xd5, 0xc1, 0x8b, 0xed, 0xcd, 0xb1,
		0xad, 0xd4, 0x89, 0xb0, 0xff, 0xf3, 0xc6, 0xd2, 0x86, 0x63, 0x5b, 0x1b, 0x32, 0x0f, 0x17, 0xe8,
		0xd8, 0x96, 0x36, 0x33, 0x87, 0x34, 0xa7, 0xb6, 0xf4, 0xfa, 0x39, 0x24, 0x39, 0xb4, 0xf5, 0xd5,
		0x8b, 0xdd, 0x3b, 0xd1, 0xb6, 0xef, 0xbb, 0x8e, 0x2f, 0x71, 0x78, 0xeb, 0xc9, 0xc7, 0x8b, 0x71,
		0xad, 0x2f, 0x45, 0x51, 0xac, 0x42, 0x9d, 0xe2, 0x1a, 0x15, 0xdc, 0x94, 0x63, 0x5c, 0x29, 0x6f,
		0xa0, 0x2e, 0x34, 0x74, 0xea, 0x53, 0x99, 0x12, 0x5d, 0x37, 0x37, 0x00, 0x9f, 0xb2, 0x4b, 0x6f,
		0x0e, 0xc1, 0xa7, 0xeb, 0xf2, 0xab, 0x41, 0xf8, 0xb4, 0xa1, 0x30, 0xfd, 0xa0, 0xe3, 0xba, 0x22,
		0x8a, 0xd2, 0x8d, 0xe4, 0x2f, 0xf6, 0x9a, 0xf9, 0xc4, 0x24, 0xeb, 0x5a, 0x6e, 0xb5, 0xab, 0x1c,
		0x34, 0x3a, 0x82, 0x47, 0x63, 0x10, 0x65, 0x29, 0xdc, 0x2a, 0x05, 0xd5, 0x6a, 0xa4, 0x5b, 0xe9,
		0x20, 0x53, 0x64, 0x62, 0xd9, 0x0d, 0x7b, 0xd9, 0xf5, 0xf3, 0x42, 0x8f, 0x19, 0x96, 0xda, 0xf6,
		0xda, 0xd8, 0xd3, 0xea, 0x5b, 0x68, 0x2f, 0xac, 0x06, 0xcb, 0xd8, 0xd3, 0xae, 0x69, 0x41, 0xbe,
		0xd0, 0x14, 0xbb, 0xdb, 0xef, 0x77, 0x71, 0xa7, 0x5d, 0xd1, 0xa7, 0x57, 0xea, 0x4e, 0xab, 0x63,
		0x47, 0x76, 0x9a, 0x96, 0xd2, 0xce, 0xac, 0xc6, 0xe1, 0x68, 0x6e, 0xa7, 0x76, 0x76, 0x12, 0xa2,
		0x17, 0xb4, 0x47, 0xbb, 0x8a, 0xd5, 0xa3, 0xa3, 0xda, 0xd5, 0xd5, 0xbf, 0x74, 0xec, 0x46, 0x69,
		0xdc, 0x33, 0xb3, 0xf4, 0xef, 0xda, 0x66, 0x86, 0x00, 0x4b, 0x51, 0xe0, 0xd5, 0xba, 0xce, 0xc5,
		0xc8, 0xa8, 0x73, 0x47, 0x77, 0xa1, 0xab, 0x55, 0x47, 0x44, 0x6d, 0xfd, 0x72, 0x5a, 0x3d, 0xb7,
		0x9c, 0x28, 0xf2, 0x6e, 0x7d, 0xd1, 0xb6, 0xe2, 0x60, 0xb4, 0x35, 0xf8, 0xa2, 0x95, 0x5d, 0x5e,
		0x3a, 0x9e, 0x95, 0xe9, 0xa6, 0x6d, 0xe6, 0xfd, 0x70, 0xa1, 0x2f, 0x26, 0x6c, 0x0c, 0x2d, 0x5f,
		0xfe, 0x6d, 0xd3, 0xe6, 0x99, 0xef, 0x56, 0x10, 0xbb, 0xa5, 0xa7, 0x43, 0x89, 0xfa, 0x82, 0xf7,
		0x59, 0x7a, 0xac, 0x79, 0x59, 0xf3, 0xb2, 0xe6, 0x95, 0x59, 0xf3, 0x0e, 0xc3, 0x47, 0xf6, 0xba,
		0xc2, 0xf3, 0x38, 0x2a, 0xe8, 0x43, 0x04, 0x23, 0xe6, 0xd1, 0x81, 0x97, 0xa3, 0x8b, 0x0d, 0xcd,
		0xcb, 0x4f, 0xe7, 0xff, 0x2e, 0xce, 0xcb, 0x06, 0xe3, 0xca, 0xd1, 0xb2, 0xea, 0x9b, 0x54, 0x8d,
		0xec, 0xc5, 0x07, 0xf5, 0x09, 0xf4, 0x5b, 0x8e, 0x27, 0x50, 0x7f, 0xb4, 0x16, 0xd6, 0x24, 0x17,
		0xcf, 0x27, 0xc6, 0xd4, 0xc9, 0xd4, 0xc9, 0xd4, 0x29, 0x33, 0x75, 0x22, 0x17, 0x4f, 0x35, 0x4a,
		0xe4, 0x62, 0xe4, 0xe2, 0xc2, 0xb5, 0x06, 0x72, 0x71, 0xca, 0xb4, 0x8c, 0x90, 0x8b, 0x47, 0x90,
		0x89, 0x5a, 0xac, 0x59, 0xa1, 0x7b, 0xad, 0xaa, 0x8b, 0x2f, 0x16, 0x9f, 0x8f, 0x46, 0x9e, 0xb1,
		0x3e, 0xe9, 0x45, 0xd6, 0xbd, 0xd3, 0xf5, 0xda, 0x56, 0x27, 0x08, 0x87, 0xb5, 0xed, 0xff, 0x61,
		0x8d, 0xea, 0x03, 0xd1, 0x38, 0xdb, 0xee, 0xb8, 0xd0, 0x25, 0x53, 0x36, 0x0a, 0xe2, 0x71, 0x6e,
		0xd7, 0xbe, 0xa3, 0x06, 0x1b, 0xad, 0x34, 0x22, 0xf5, 0xb5, 0xef, 0x7c, 0x62, 0xac, 0x7d, 0x59,
		0xfb, 0xb2, 0xf6, 0x4d, 0xd9, 0x63, 0x06, 0xbe, 0xa6, 0x67, 0x6b, 0xdf, 0x2b, 0xa4, 0x31, 0x29,
		0x4e, 0x6e, 0x50, 0x53, 0x5d, 0x10, 0xd0, 0x28, 0x0c, 0x68, 0x16, 0x08, 0xf4, 0x55, 0x57, 0x26,
		0x82, 0x41, 0x56, 0xc2, 0x41, 0xe6, 0x4b, 0xd6, 0xec, 0x96, 0xae, 0x1a, 0xc1, 0x39, 0x13, 0x61,
		0x21, 0x43, 0x81, 0xa1, 0x08, 0xad, 0x96, 0x13, 0x14, 0xbd, 0x5e, 0xe7, 0x26, 0x95, 0xee, 0xb1,
		0x39, 0x1c, 0x0d, 0x85, 0xfa, 0x86, 0xe7, 0xf2, 0xa1, 0x86, 0xb4, 0x2e, 0x9c, 0x38, 0x16, 0xa1,
		0xaf, 0x6d, 0x84, 0x2e, 0x7d, 0xbf, 0xbb, 0xfd, 0xfe, 0xf3, 0xb6, 0xbd, 0x7b, 0xfd, 0xcf, 0xee,
		0xf6, 0xe7, 0x6d, 0xfb, 0xf0, 0xfa, 0xf3, 0xb6, 0xfd, 0xfe, 0xfa, 0x9f, 0xcf, 0x65, 0x7b, 0x67,
		0xfc, 0xc7, 0xbf, 0x77, 0xbe, 0x0d, 0xff, 0xf6, 0x7e, 0xf2, 0xb7, 0xf2, 0x8f, 0x95, 0xc9, 0xdf,
		0x7f, 0xf8, 0xf2, 0xe5, 0xdd, 0x97, 0x2f, 0xef, 0x14, 0x12, 0x50, 0x5f, 0x41, 0x5d, 0xeb, 0xa8,
		0xd2, 0xc6, 0x55, 0xfd, 0x37, 0xed, 0xf5, 0xfa, 0xbf, 0xeb, 0xac, 0xd8, 0xff, 0x2a, 0xad, 0x3b,
		0x94, 0x0d, 0xd1, 0x32, 0x95, 0x6c, 0xa1, 0xe6, 0xd9, 0x44, 0xcd, 0x1e, 0x6a, 0x7e, 0xca, 0xd4,
		0x6e, 0x13, 0x35, 0x4d, 0x5c, 0xdd, 0x2e, 0x6a, 0x31, 0x29, 0x69, 0xdb, 0x28, 0xd5, 0x96, 0x43,
		0x85, 0xce, 0x8b, 0x0a, 0x88, 0x0a, 0x9d, 0x21, 0x4c, 0x67, 0x7c, 0x64, 0xb9, 0xdb, 0x0d, 0xbe,
		0x8a, 0xf6, 0x48, 0xf1, 0x8c, 0xac, 0x9e, 0xf3, 0x60, 0xdd, 0x08, 0x2b, 0xea, 0x0b, 0xd7, 0xeb,
		0x78, 0xe2, 0xb9, 0xf4, 0xf9, 0xc5, 0x9f, 0x69, 0x9f, 0xef, 0x50, 0xa4, 0x57, 0x73, 0x8c, 0x59,
		0xbe, 0x81, 0x50, 0xa7, 0x57, 0xf2, 0x7d, 0xd9, 0xde, 0x15, 0x96, 0xb4, 0xc8, 0x98, 0x7e, 0x5e,
		0x93, 0x55, 0xc6, 0xbc, 0x0b, 0xc4, 0x96, 0xd4, 0xcd, 0x7a, 0x4b, 0x9b, 0x83, 0xc6, 0x24, 0x2f,
		0xbf, 0x74, 0x9d, 0x74, 0x8f, 0x20, 0xa5, 0x6f, 0xb0, 0x6f, 0xa9, 0xcc, 0x41, 0xd2, 0x3c, 0x8e,
		0xb4, 0x30, 0x10, 0xa7, 0x35, 0x23, 0xb1, 0x74, 0x98, 0x15, 0x54, 0x30, 0x2b, 0x58, 0xeb, 0xe8,
		0x8f, 0x59, 0x41, 0xd2, 0x5e, 0x83, 0x59, 0x81, 0xc5, 0x0e, 0x9c, 0x06, 0x9c, 0xe2, 0xf4, 0x29,
		0xa7, 0x4f, 0x39, 0x7d, 0xca, 0xe9, 0xd3, 0x62, 0xb6, 0x06, 0xa7, 0x4f, 0x8b, 0xa8, 0xfb, 0x61,
		0x56, 0x80, 0x59, 0x01, 0x66, 0x05, 0xc5, 0x56, 0xf9, 0x30, 0x2b, 0xc8, 0x93, 0xa2, 0x87, 0x59,
		0x01, 0x6b, 0x5e, 0xd6, 0xbc, 0xc5, 0x58, 0xf3, 0x62, 0x56, 0xf0, 0x4a, 0x6a, 0x98, 0x15, 0xbc,
		0x19, 0x48, 0x98, 0x15, 0x60, 0x56, 0xc0, 0xd4, 0xc9, 0xd4, 0xb9, 0x81, 0x53, 0x27, 0x72, 0xf1,
		0x54, 0xa3, 0x44, 0x2e, 0x46, 0x2e, 0x2e, 0x5c, 0x6b, 0x20, 0x17, 0xa7, 0x4c, 0x8b, 0x63, 0xa2,
		0xba, 0xe6, 0x7e, 0x8e, 0x89, 0xea, 0x1e, 0x17, 0x31, 0x2b, 0x48, 0xdb, 0x07, 0x31, 0x2b, 0x58,
		0xf5, 0x9c, 0x61, 0x21, 0x1e, 0x2f, 0x6d, 0x55, 0xcc, 0x0a, 0x58, 0xfb, 0xb2, 0xf6, 0xcd, 0xcb,
		0xda, 0x17, 0xb3, 0x82, 0x4c, 0x04, 0x01, 0x8d, 0xc2, 0x80, 0x66, 0x81, 0x40, 0x5f, 0x75, 0x65,
		0x22, 0x18, 0x64, 0x25, 0x1c, 0x64, 0xbe, 0x64, 0xcd, 0x6e, 0xe9, 0xaa, 0x11, 0x9c, 0x33, 0x11,
		0x16, 0x32, 0x14, 0x18, 0x8a, 0xd0, 0x6a, 0x98, 0x15, 0x60, 0x56, 0x20, 0x97, 0x20, 0x66, 0x05,
		0x98, 0x15, 0x64, 0x10, 0xca, 0x98, 0x15, 0xc8, 0x4e, 0x99, 0x98, 0x15, 0x24, 0xca, 0x01, 0x2a,
		0x74, 0x5e, 0x54, 0x40, 0x54, 0xe8, 0x0c, 0x61, 0x1a, 0xb3, 0x02, 0xa5, 0xfe, 0x88, 0x59, 0xc1,
		0xba, 0x97, 0x04, 0x98, 0x15, 0x28, 0x8c, 0x08, 0xb9, 0x34, 0x2b, 0x90, 0xb9, 0x58, 0x6f, 0x65,
		0xe2, 0x55, 0x70, 0x35, 0xca, 0x49, 0x56, 0x56, 0x05, 0xdf, 0x69, 0x6c, 0x50, 0xd9, 0x86, 0xcc,
		0xa2, 0x01, 0x4b, 0xa9, 0x3c, 0x18, 0xf4, 0x36, 0x59, 0xb2, 0xc6, 0x7a, 0xbb, 0xea, 0x5f, 0xff,
		0x8d, 0x37, 0x1a, 0xa5, 0x54, 0x1d, 0xdc, 0x0e, 0x07, 0x58, 0xd1, 0x4e, 0x04, 0x7d, 0xc9, 0x5a,
		0x6b, 0x3a, 0xa7, 0x6e, 0x05, 0xae, 0xed, 0x75, 0x3e, 0xcc, 0xb5, 0xc9, 0xb3, 0x1f, 0x0c, 0xff,
		0xde, 0x75, 0x6e, 0x3f, 0xcc, 0x35, 0x50, 0xc2, 0x26, 0x79, 0x06, 0x03, 0xa5, 0x6a, 0xbb, 0x3d,
		0xb9, 0xe2, 0x12, 0x89, 0x38, 0xf6, 0xfc, 0xdb, 0xc8, 0x8a, 0x03, 0xcb, 0xb1, 0x4e, 0xab, 0x3f,
		0xcd, 0xf6, 0x29, 0x93, 0xa6, 0x9d, 0xce, 0xfa, 0x22, 0xf5, 0x96, 0x94, 0xcc, 0x16, 0x94, 0xc2,
		0x96, 0x93, 0x2c, 0x58, 0x28, 0x6f, 0x29, 0x29, 0xb3, 0x81, 0xda, 0x96, 0x91, 0xde, 0x51, 0x2b,
		0xad, 0x55, 0x45, 0xe9, 0xe9, 0x40, 0x23, 0xef, 0xdd, 0x22, 0x39, 0x5e, 0x2d, 0x0b, 0x92, 0x9a,
		0xef, 0x76, 0x83, 0xc8, 0xf3, 0x6f, 0x2d, 0x37, 0xf0, 0x63, 0xc7, 0xf3, 0x45, 0x38, 0xe2, 0xa6,
		0xf1, 0x2e, 0xff, 0x94, 0xfd, 0x27, 0x50, 0xe5, 0x7e, 0xf1, 0xdb, 0x4e, 0xec, 0x58, 0x81, 0x6f,
		0xd5, 0xe2, 0x3b, 0x11, 0xfa, 0x22, 0x9e, 0xdb, 0xf2, 0x7f, 0x67, 0x59, 0xcd, 0x3b, 0x11, 0x09,
		0xcb, 0x09, 0xc5, 0x28, 0x91, 0x28, 0x76, 0xfc, 0xb6, 0x13, 0xb6, 0xbf, 0xf8, 0xa7, 0x95, 0x1f,
		0xad, 0x69, 0xb6, 0xa3, 0xf8, 0xa1, 0x3b, 0x3e, 0x47, 0x90, 0x9a, 0x94, 0x95, 0x2d, 0x68, 0xb6,
		0xb1, 0xa0, 0x59, 0x2b, 0xd3, 0xaf, 0xc5, 0x82, 0x46, 0xf7, 0xf8, 0xa0, 0x38, 0x01, 0xbf, 0x21,
		0xcb, 0xca, 0x88, 0x37, 0xe9, 0x44, 0x1a, 0xb9, 0x39, 0xc6, 0xeb, 0x7c, 0x18, 0xe3, 0xcd, 0x64,
		0xca, 0x8e, 0x1f, 0xfa, 0x23, 0x3d, 0xc0, 0x73, 0x7c, 0xc7, 0xeb, 0xc4, 0x1f, 0x3c, 0x21, 0xc4,
		0xe1, 0x76, 0x65, 0xc7, 0x69, 0x9f, 0x3a, 0xb7, 0xff, 0x5a, 0xf1, 0x6c, 0x24, 0x21, 0xad, 0x68,
		0x9f, 0x8b, 0x52, 0x56, 0x50, 0x26, 0xb6, 0x60, 0x2a, 0x82, 0xc8, 0x9c, 0xfb, 0xd1, 0xe8, 0xa4,
		0xd7, 0xb0, 0x4e, 0x9f, 0x5e, 0x09, 0xb6, 0xbc, 0x68, 0x08, 0x53, 0xa3, 0xab, 0xc2, 0xc3, 0xc2,
		0x9d, 0x56, 0x7f, 0x4a, 0x5b, 0xe9, 0x0a, 0x23, 0x9a, 0x3e, 0xe9, 0x42, 0xcb, 0x70, 0xf6, 0xa4,
		0xf9, 0x53, 0x55, 0x59, 0xce, 0x47, 0xaf, 0x6b, 0xb5, 0xe5, 0x43, 0xba, 0xb5, 0x9c, 0x9e, 0x35,
		0x5c, 0x82, 0x3e, 0xa0, 0x63, 0xb5, 0xf6, 0x7a, 0xcb, 0xbd, 0x5c, 0xb3, 0xaf, 0xd4, 0x59, 0xc9,
		0x7d, 0x44, 0x93, 0xd7, 0xeb, 0x6a, 0x1a, 0x9c, 0x89, 0xdc, 0x10, 0x13, 0x72, 0x52, 0x62, 0x2e,
		0x4a, 0xc3, 0x41, 0x4f, 0xe7, 0x8c, 0x24, 0x2d, 0x93, 0x72, 0x4c, 0x90, 0xa6, 0x1a, 0xe9, 0xb0,
		0x5f, 0x1c, 0xe9, 0x4b, 0x19, 0x2f, 0xc2, 0x93, 0xae, 0x2d, 0x9e, 0x0c, 0x84, 0x1f, 0xd2, 0xae,
		0xc6, 0xd3, 0x8f, 0xa2, 0x29, 0xcf, 0x6a, 0xae, 0x7c, 0x21, 0x9c, 0xa8, 0xc3, 0x15, 0x6f, 0x19,
		0x9c, 0xa4, 0x43, 0x66, 0xb3, 0x08, 0x4e, 0x7d, 0x0e, 0x72, 0xce, 0x82, 0x74, 0x74, 0xb1, 0x3c,
		0x45, 0x73, 0x4d, 0x8f, 0x8a, 0x68, 0x2d, 0x81, 0xc2, 0x5e, 0x69, 0x29, 0x14, 0x1d, 0x11, 0x0a,
		0xdf, 0x4d, 0x7f, 0x28, 0x50, 0x61, 0x3d, 0x79, 0x79, 0x72, 0x64, 0x55, 0x0e, 0xf7, 0x77, 0x3e,
		0x0c, 0x97, 0xdb, 0xd6, 0x6c, 0xce, 0xb2, 0x7e, 0x0a, 0x83, 0x41, 0xdf, 0x3a, 0xab, 0x7f, 0xb4,
		0x6c, 0xcb, 0xeb, 0x54, 0xbb, 0x9e, 0x13, 0xad, 0x79, 0xd1, 0x39, 0xab, 0x9f, 0x3c, 0xad, 0x3b,
		0x53, 0x55, 0x60, 0x6e, 0x16, 0xa7, 0xd7, 0xba, 0x16, 0xa7, 0x09, 0x66, 0x64, 0xe1, 0x0f, 0x63,
		0xa1, 0x9d, 0x7e, 0x46, 0x79, 0xfc, 0x60, 0x62, 0xc9, 0xb6, 0xe3, 0x0c, 0xba, 0x71, 0xaa, 0xe8,
		0x29, 0x0d, 0x7b, 0x41, 0xb2, 0x66, 0xb9, 0x66, 0x52, 0x63, 0x52, 0x5b, 0xe9, 0xa4, 0x76, 0x13,
		0x04, 0x5d, 0x91, 0x4e, 0x8b, 0x7f, 0x9c, 0xd5, 0xca, 0xcc, 0x6a, 0x49, 0x06, 0xe5, 0x76, 0xcf,
		0xf3, 0xaf, 0x62, 0x27, 0x1e, 0x30, 0xb7, 0xa9, 0xcc, 0x6d, 0x73, 0xd5, 0xb8, 0x91, 0x33, 0x5c,
		0x37, 0x08, 0xfa, 0x37, 0x8e, 0xfb, 0x47, 0x3a, 0xff, 0xb4, 0x69, 0x6f, 0x7d, 0xfa, 0x71, 0xa6,
		0x19, 0xa6, 0x99, 0x95, 0x4e, 0x33, 0x4f, 0xba, 0x5f, 0x5a, 0xbb, 0x31, 0x19, 0x7b, 0x31, 0x39,
		0x3b, 0x31, 0x35, 0xfb, 0xb0, 0xb1, 0x5d, 0xd8, 0x79, 0xe3, 0xbc, 0x26, 0x33, 0xd2, 0x8f, 0xcc,
		0xc1, 0x4e, 0xaa, 0x47, 0xf5, 0xd3, 0x7a, 0xf3, 0x77, 0x99, 0x04, 0x2a, 0x23, 0x77, 0xb1, 0xda,
		0xe5, 0x59, 0xfd, 0xbc, 0x7a, 0x2a, 0x93, 0xc0, 0xce, 0xe8, 0x14, 0xc2, 0x55, 0xfd, 0xa8, 0x75,
		0xf1, 0xf3, 0xef, 0xad, 0xd3, 0xc6, 0x91, 0x5c, 0x32, 0xbb, 0x4f, 0x92, 0xb9, 0xac, 0x9d, 0x35,
		0x9a, 0x52, 0x15, 0xb2, 0x37, 0x4d, 0xe7, 0xac, 0x7a, 0x24, 0x9f, 0x9d, 0xfd, 0x27, 0xc9, 0x4c,
		0xb2, 0x93, 0xe9, 0x31, 0x2f, 0x79, 0x7b, 0xb5, 0xe7, 0xc5, 0xfd, 0x60, 0xed, 0xfd, 0xa8, 0x90,
		0xc8, 0xa4, 0xb0, 0x52, 0x77, 0x09, 0x9f, 0x77, 0x84, 0x0f, 0xd6, 0x8e, 0x4a, 0x22, 0xd3, 0xac,
		0x48, 0x5c, 0xf3, 0x9a, 0x45, 0x85, 0xd4, 0xdd, 0xbe, 0x71, 0x44, 0x4a, 0x9d, 0xe4, 0x9f, 0x85,
		0xd3, 0x07, 0xab, 0x92, 0x83, 0x47, 0x74, 0x66, 0xcb, 0xcf, 0xb4, 0xc3, 0xcc, 0x70, 0x16, 0x9a,
		0x7d, 0x7a, 0x38, 0x09, 0xad, 0x90, 0x5d, 0x7a, 0xf1, 0x20, 0x3d, 0xb1, 0x0c, 0x3f, 0x04, 0xa7,
		0xc0, 0x29, 0x2b, 0xe5, 0x94, 0x81, 0xe7, 0xc7, 0xe5, 0x7d, 0x09, 0x36, 0x49, 0x31, 0xc2, 0x4a,
		0xde, 0xca, 0x96, 0x98, 0x4d, 0x54, 0x6e, 0x59, 0x4f, 0xaf, 0xe6, 0xca, 0x9a, 0x54, 0xe8, 0xba,
		0x7f, 0xab, 0x7e, 0xcf, 0x56, 0xc6, 0x72, 0x44, 0xe5, 0xb6, 0xf3, 0xb4, 0xea, 0xf6, 0xf7, 0xf6,
		0x76, 0xf6, 0xcc, 0xaf, 0xbe, 0x02, 0xac, 0x9e, 0x27, 0xbb, 0xe8, 0x29, 0xa7, 0xa0, 0xd1, 0xa7,
		0x98, 0x83, 0x98, 0x83, 0x56, 0x3a, 0x07, 0x65, 0xbe, 0xcf, 0xa8, 0x25, 0xa2, 0xe2, 0xbe, 0x27,
		0xb1, 0xdd, 0x32, 0xfa, 0x54, 0x96, 0x7b, 0x2d, 0x93, 0x23, 0x9a, 0x23, 0x89, 0x21, 0xfa, 0xd0,
		0xbc, 0xa8, 0x1f, 0xb7, 0xb6, 0x7f, 0x3b, 0x2c, 0x6f, 0x6f, 0x6f, 0xd4, 0x06, 0x0c, 0xc7, 0xeb,
		0x8d, 0x8a, 0x78, 0xaf, 0x2d, 0xfc, 0xd8, 0x8b, 0x1f, 0x42, 0xd1, 0x91, 0x09, 0xfb, 0x14, 0x88,
		0x51, 0xaa, 0x4f, 0xbe, 0xea, 0xa3, 0x13, 0x29, 0xbc, 0xc6, 0x3a, 0x8a, 0xab, 0xe6, 0xef, 0x17,
		0xb5, 0xb4, 0xb6, 0xf8, 0x63, 0x34, 0x8a, 0xa4, 0xae, 0x67, 0x2b, 0xfa, 0xbe, 0xa5, 0x1e, 0x0b,
		0x14, 0x11, 0x52, 0x53, 0x76, 0x0f, 0xab, 0x87, 0x06, 0x65, 0xf7, 0xbd, 0x59, 0xb5, 0xfb, 0xbe,
		0x62, 0x50, 0x76, 0xab, 0xe7, 0xbf, 0x67, 0xbd, 0xf5, 0x75, 0xbd, 0xfa, 0x9b, 0x07, 0x49, 0x50,
		0x23, 0xcd, 0xc0, 0x3a, 0x43, 0x8d, 0xe4, 0x9b, 0x0c, 0xc0, 0x3b, 0xf0, 0xfe, 0x6c, 0xf5, 0xef,
		0xb7, 0x9d, 0x38, 0x08, 0x1f, 0x52, 0x5c, 0xa1, 0xdc, 0xa0, 0xe9, 0x7f, 0x76, 0xcf, 0x4e, 0xe2,
		0xe1, 0xa0, 0x35, 0x22, 0x80, 0x53, 0xae, 0x9c, 0xf5, 0xfb, 0xe3, 0x1b, 0xcc, 0x26, 0x0c, 0xfb,
		0x8e, 0xd3, 0xad, 0x18, 0x92, 0xcf, 0x3d, 0x23, 0xf2, 0xe9, 0xc6, 0xa2, 0xeb, 0x45, 0x67, 0x22,
		0x76, 0x4e, 0x1b, 0x8d, 0x0b, 0x23, 0xb2, 0xdc, 0x8e, 0xba, 0xa6, 0xe4, 0xb3, 0x62, 0x4c, 0x46,
		0xfb, 0x5d, 0xa9, 0x63, 0x44, 0xab, 0xcf, 0x6c, 0xa7, 0xeb, 0xf8, 0xa3, 0x3b, 0x78, 0x46, 0xe5,
		0xd6, 0x8c, 0xc1, 0xa0, 0x3b, 0xa8, 0x9d, 0x5e, 0x98, 0x92, 0xd3, 0x7e, 0xe0, 0x1b, 0x94, 0xd5,
		0xd3, 0xe0, 0xd6, 0x73, 0x9d, 0xee, 0xa9, 0xe7, 0xff, 0x61, 0x50, 0xae, 0x1b, 0xfe, 0xc0, 0xa0,
		0xdc, 0x5e, 0xdc, 0x3d, 0x44, 0xc3, 0x4a, 0xfe, 0xe4, 0x7b, 0x86, 0xe4, 0xfa, 0x27, 0xa3, 0xea,
		0xf8, 0x27, 0x03, 0xeb, 0x38, 0x74, 0xfa, 0x66, 0xe4, 0xd3, 0xf5, 0x45, 0x6c, 0x4e, 0x4e, 0x2f,
		0x4c, 0xc1, 0x85, 0xe8, 0xc1, 0x77, 0x8d, 0xc8, 0x68, 0xdc, 0x33, 0x24, 0x9b, 0xc7, 0x7f, 0x79,
		0x86, 0xe4, 0xf4, 0x64, 0xe0, 0x9b, 0x92, 0xd5, 0x7a, 0xcf, 0x31, 0x24, 0xa7, 0x13, 0x90, 0x31,
		0x24, 0xb7, 0x97, 0x4e, 0xdb, 0x0b, 0x0c, 0xc9, 0xeb, 0xd5, 0xe0, 0x66, 0x7a, 0xd9, 0xc3, 0x90,
		0x2c, 0xff, 0xe2, 0x7a, 0x35, 0xbf, 0x7d, 0x11, 0x9b, 0x92, 0x5d, 0x2f, 0x8c, 0x07, 0xc6, 0xf4,
		0xdd, 0x9b, 0xc0, 0x6f, 0x1b, 0x91, 0xd5, 0x7b, 0xcf, 0xf5, 0x1a, 0xfd, 0x78, 0x38, 0x2c, 0x8c,
		0x3c, 0xc5, 0x4c, 0xc8, 0xf4, 0x8d, 0x13, 0x79, 0x6e, 0xfd, 0xea, 0xf8, 0xdc, 0x88, 0xcc, 0xde,
		0xf6, 0xfb, 0x41, 0xd7, 0x73, 0x1f, 0x1c, 0xd7, 0x0d, 0x06, 0x7e, 0xec, 0xf9, 0xb7, 0x46, 0x64,
		0xdb, 0x8b, 0x8d, 0x80, 0xc4, 0x9b, 0xd0, 0x6b, 0xdf, 0x1a, 0x31, 0xe4, 0xde, 0x44, 0x46, 0xc0,
		0xac, 0xeb, 0xdc, 0x74, 0xc5, 0x71, 0xf0, 0xd5, 0x8f, 0xe2, 0x50, 0x38, 0xbd, 0xcb, 0xce, 0x45,
		0x10, 0xc6, 0x66, 0x64, 0xbc, 0xff, 0xd5, 0xe9, 0x1f, 0x07, 0x71, 0xb9, 0xfc, 0x31, 0x8a, 0x0c,
		0xcb, 0xf1, 0x45, 0x18, 0x74, 0xbc, 0xae, 0x30, 0x27, 0xd7, 0xbf, 0xc6, 0xfd, 0xc9, 0x8c, 0x6c,
		0x0c, 0xa6, 0xb9, 0x37, 0xdd, 0x5f, 0x84, 0x1b, 0x3b, 0x57, 0xb1, 0x63, 0xc4, 0x34, 0xe7, 0xba,
		0x71, 0xad, 0x37, 0x30, 0x82, 0x78, 0xa4, 0x5e, 0x1c, 0x5d, 0x43, 0x36, 0xef, 0x1c, 0xdf, 0x17,
		0x66, 0xd4, 0xa8, 0x17, 0xb9, 0x41, 0xfd, 0xea, 0x54, 0xd2, 0xa1, 0x73, 0xf5, 0xf9, 0xf5, 0xcd,
		0x88, 0xa9, 0xa0, 0xd3, 0x11, 0x66, 0x0c, 0xb3, 0x41, 0xaf, 0x1f, 0x44, 0x5e, 0x2c, 0x4c, 0xd9,
		0x76, 0x68, 0xbb, 0x46, 0x74, 0xd4, 0x76, 0xdb, 0xff, 0xcd, 0x8c, 0x2d, 0xbd, 0xb6, 0x77, 0xeb,
		0xc5, 0x4e, 0xf7, 0x22, 0xf8, 0x2a, 0xc2, 0xae, 0xe7, 0x0b, 0x83, 0xf2, 0xfc, 0x6b, 0xe8, 0xf4,
		0xfb, 0x22, 0x6c, 0xdc, 0x8b, 0xf0, 0x4e, 0x38, 0xed, 0x23, 0x73, 0xc6, 0xdd, 0x76, 0x37, 0xfa,
		0x6a, 0x44, 0x3e, 0x03, 0x37, 0x3a, 0x7a, 0x8a, 0xea, 0x46, 0x65, 0xfb, 0xec, 0xa8, 0x17, 0x47,
		0xa6, 0xe6, 0xdd, 0x71, 0xbb, 0xce, 0x83, 0x19, 0x5a, 0xc9, 0x34, 0xd3, 0xe7, 0xed, 0x8e, 0x61,
		0xf9, 0x35, 0xab, 0x7e, 0xaf, 0xdc, 0x58, 0xec, 0xed, 0xb5, 0xcb, 0x27, 0x5f, 0xdb, 0x8d, 0xe0,
		0xc6, 0xc8, 0xac, 0x5f, 0x8a, 0xd8, 0xd0, 0xac, 0x57, 0x8e, 0x23, 0x53, 0x73, 0xfe, 0xc9, 0xb8,
		0x9c, 0x7f, 0xea, 0x1b, 0x38, 0x66, 0x3f, 0x66, 0xda, 0x24, 0x14, 0x79, 0x9e, 0x77, 0x73, 0xb4,
		0xb8, 0x61, 0xd6, 0x1b, 0x9d, 0x76, 0xcf, 0xbc, 0x09, 0x7e, 0x98, 0x6b, 0xc7, 0xa8, 0x1e, 0x1e,
		0x6d, 0x1b, 0x92, 0xcd, 0x8f, 0x03, 0xbf, 0x6d, 0x86, 0xc4, 0xd9, 0x8e, 0xca, 0x86, 0x64, 0xf3,
		0xe4, 0xf8, 0xd4, 0x8c, 0x9c, 0x1a, 0x71, 0xe4, 0xb7, 0x6d, 0xc6, 0x41, 0x9e, 0xf6, 0xfd, 0x4d,
		0x35, 0xf2, 0xea, 0xbe, 0x39, 0x79, 0x6d, 0x0c, 0x62, 0x43, 0x32, 0x7b, 0xe9, 0xba, 0x86, 0x4d,
		0x5a, 0xa3, 0x3c, 0x9f, 0x39, 0xee, 0xa9, 0x31, 0x4b, 0xd2, 0x51, 0x8e, 0x8d, 0x9a, 0x63, 0x87,
		0x39, 0x8e, 0x8c, 0xab, 0xe3, 0xa8, 0xd9, 0x36, 0xe3, 0x68, 0x5a, 0xfb, 0xfe, 0xa6, 0xd9, 0x36,
		0xa2, 0x27, 0x08, 0x23, 0xc0, 0x40, 0xb8, 0x81, 0x21, 0x27, 0x92, 0x85, 0x19, 0x17, 0x41, 0x44,
		0xbf, 0x1b, 0x1a, 0xb1, 0xc3, 0x29, 0x22, 0xd7, 0x90, 0x1a, 0x9d, 0x3c, 0x60, 0xb9, 0x73, 0x76,
		0xe3, 0xc5, 0x26, 0x65, 0xf8, 0x28, 0xea, 0x39, 0xae, 0x11, 0x67, 0xfb, 0x3a, 0x4e, 0x14, 0x9b,
		0x92, 0x4f, 0x63, 0xce, 0x1e, 0x4e, 0x33, 0x7b, 0xf2, 0x9b, 0x29, 0xd9, 0x35, 0xe4, 0xce, 0x6d,
		0xc7, 0xf5, 0xfa, 0xa6, 0xec, 0x75, 0x77, 0xda, 0x6d, 0x23, 0x6e, 0x27, 0x74, 0xbc, 0x9b, 0x50,
		0x18, 0x24, 0x79, 0x76, 0xc2, 0xe3, 0xae, 0x41, 0xc7, 0xd2, 0x3b, 0xe1, 0x49, 0x10, 0x7e, 0x75,
		0x42, 0x33, 0xa6, 0x83, 0xd0, 0xe9, 0x89, 0x4b, 0xd1, 0x75, 0x1e, 0xcc, 0xca, 0xed, 0xe8, 0x5e,
		0x85, 0x1b, 0xf8, 0xbe, 0x70, 0x63, 0xb3, 0x72, 0x7e, 0x76, 0x51, 0x37, 0x2b, 0xc3, 0x57, 0x22,
		0xbc, 0xf7, 0xcc, 0xb8, 0xc0, 0xd2, 0x09, 0x3b, 0xe5, 0xfd, 0xb3, 0x4e, 0x68, 0x8e, 0xa8, 0x7c,
		0x7b, 0xb0, 0xbd, 0xe3, 0xc4, 0x95, 0xde, 0x8d, 0x39, 0x99, 0xdd, 0xdf, 0x35, 0x62, 0x36, 0xbe,
		0x7d, 0xff, 0xfe, 0xb0, 0x6c, 0x4a, 0x46, 0x2b, 0xa6, 0x64, 0xd4, 0x08, 0xc5, 0xfe, 0xd6, 0x94,
		0x45, 0xce, 0x6d, 0xc7, 0x88, 0xbb, 0xec, 0xb7, 0xde, 0xad, 0x73, 0xe3, 0x8d, 0x57, 0x38, 0x86,
		0x48, 0x48, 0xb7, 0x86, 0x98, 0x89, 0xdc, 0x86, 0x3b, 0xdb, 0x3b, 0xf5, 0xe3, 0xa6, 0x31, 0x79,
		0xbd, 0x34, 0x24, 0xaf, 0xb1, 0x11, 0x91, 0x75, 0xb7, 0x53, 0xd9, 0xf9, 0xc9, 0x89, 0xc5, 0x1f,
		0x42, 0xf4, 0xcd, 0x90, 0x3a, 0x86, 0x39, 0xbe, 0x08, 0x83, 0xbf, 0x8c, 0x58, 0x2f, 0xdc, 0xb5,
		0xef, 0xca, 0x87, 0x95, 0x8a, 0x19, 0x59, 0xed, 0xba, 0x66, 0xe4, 0xd3, 0x10, 0x13, 0xb4, 0x3b,
		0xaf, 0x2f, 0xc2, 0xae, 0xe3, 0x9b, 0x92, 0xd9, 0xbe, 0x67, 0x4c, 0x46, 0x8d, 0x32, 0x35, 0xb8,
		0x0b, 0x7a, 0xa2, 0xef, 0x3b, 0x66, 0x64, 0x35, 0x8a, 0x2f, 0x1c, 0x23, 0x74, 0xa3, 0xbb, 0x28,
		0x32, 0xa3, 0xbf, 0x3e, 0xf4, 0x45, 0x68, 0xd0, 0x0d, 0x3f, 0xcf, 0xf1, 0x1d, 0x5b, 0xc9, 0x7b,
		0x76, 0x9a, 0xa4, 0x82, 0x07, 0xad, 0x5a, 0x61, 0x16, 0x0a, 0xa5, 0xe6, 0x49, 0xab, 0xd0, 0x18,
		0xba, 0xcb, 0x21, 0xe5, 0x55, 0x9b, 0xab, 0xfc, 0xef, 0x19, 0x9d, 0x7f, 0x55, 0x6f, 0xdb, 0x1c,
		0x15, 0x45, 0x6a, 0xff, 0x2d, 0x5f, 0xf9, 0xaf, 0x18, 0x5f, 0x00, 0x39, 0x8f, 0xdc, 0x1c, 0x15,
		0x42, 0xc1, 0x3b, 0x37, 0x87, 0xa5, 0x30, 0x7b, 0x70, 0x92, 0xf4, 0xda, 0xcd, 0x57, 0x09, 0xa4,
		0x64, 0xb3, 0xdc, 0x15, 0x41, 0xc9, 0x9b, 0x37, 0x77, 0xa5, 0x91, 0xf2, 0x93, 0xcd, 0x5d, 0x29,
		0x94, 0x7c, 0x66, 0x73, 0x55, 0x9a, 0x9f, 0x0a, 0xd1, 0x26, 0x3f, 0x15, 0xa8, 0x4d, 0xa4, 0x3c,
		0x81, 0xf3, 0x94, 0x7f, 0x39, 0xaf, 0xe0, 0xbc, 0x95, 0xe0, 0xc2, 0x74, 0x9c, 0x92, 0xf3, 0x16,
		0xce, 0x51, 0x01, 0x64, 0xae, 0x2a, 0xe5, 0x2a, 0xfb, 0x52, 0x5e, 0xc4, 0xb9, 0x2a, 0x81, 0x9c,
		0x47, 0x71, 0xae, 0x8a, 0x20, 0xe5, 0x5d, 0x9c, 0xab, 0x12, 0x48, 0x7b, 0x1a, 0xe7, 0xaa, 0x14,
		0x92, 0x26, 0x7a, 0xb9, 0x2a, 0x83, 0x9a, 0x07, 0x72, 0xae, 0x8a, 0x22, 0xef, 0x8d, 0x9c, 0xaf,
		0x62, 0xc8, 0x7a, 0x26, 0xe7, 0xaa, 0x14, 0x72, 0x5e, 0xca, 0x39, 0x2a, 0x82, 0xba, 0xc7, 0x72,
		0x7e, 0x0a, 0xa3, 0xe0, 0xbd, 0x9c, 0xa3, 0x42, 0xe8, 0xf0, 0x64, 0xce, 0x51, 0x71, 0xa4, 0xbc,
		0x9a, 0x73, 0x94, 0x7f, 0x49, 0x0f, 0xe7, 0x1c, 0x95, 0x20, 0x32, 0x7a, 0x31, 0xa1, 0xc9, 0xf3,
		0x39, 0x4f, 0x05, 0x52, 0xf3, 0x82, 0xce, 0x65, 0x49, 0xa4, 0x3d, 0xa2, 0xf3, 0x56, 0x1a, 0x65,
		0xef, 0xe8, 0x1c, 0x15, 0x48, 0xc9, 0x53, 0x3a, 0x47, 0xe5, 0x90, 0xf5, 0x9a, 0xce, 0x51, 0x11,
		0x84, 0xd9, 0x81, 0x2e, 0x7b, 0x72, 0x25, 0x47, 0x45, 0x50, 0xf2, 0xac, 0xce, 0x51, 0x39, 0x7c,
		0xb3, 0x63, 0x59, 0xd2, 0xe3, 0x3a, 0x4f, 0x25, 0x50, 0xf2, 0xbe, 0xce, 0x4f, 0x41, 0xa4, 0x3c,
		0xb1, 0x73, 0x94, 0x7d, 0x49, 0xaf, 0xec, 0x1c, 0x95, 0x40, 0xd9, 0x43, 0x3b, 0x77, 0x65, 0xd1,
		0xe5, 0xad, 0x9d, 0xa3, 0x82, 0x49, 0x79, 0x6e, 0xe7, 0x28, 0xff, 0x3a, 0xbc, 0xb8, 0x73, 0x58,
		0x1c, 0x65, 0x8f, 0xee, 0x3c, 0x96, 0x49, 0xda, 0xbb, 0x3b, 0x87, 0x85, 0x91, 0xf2, 0xf4, 0xce,
		0x65, 0x39, 0x8a, 0xd1, 0x1e, 0xaa, 0x1e, 0xe0, 0x39, 0x2e, 0x92, 0xac, 0x37, 0x78, 0x7e, 0x8b,
		0x24, 0xeb, 0x19, 0x9e, 0xe3, 0x12, 0x7d, 0x2a, 0x4c, 0x89, 0xe4, 0xdd, 0x21, 0x73, 0x5c, 0x98,
		0x22, 0xa0, 0x9a, 0x2e, 0x4f, 0xf2, 0x7c, 0x15, 0x49, 0xd5, 0xab, 0x3c, 0x7f, 0xa5, 0x71, 0x0a,
		0x11, 0x41, 0x32, 0xde, 0xe6, 0xb9, 0xca, 0xbe, 0xac, 0x3d, 0x4d, 0x9e, 0x0a, 0x51, 0x36, 0x3c,
		0xfb, 0x52, 0x1e, 0xe9, 0x79, 0x2a, 0x81, 0xd1, 0x57, 0x3e, 0xda, 0x66, 0x1f, 0x54, 0x94, 0xf7,
		0x5a, 0xcf, 0x5b, 0x19, 0xa4, 0x3c, 0xd8, 0x73, 0x55, 0x08, 0x45, 0x6f, 0xf6, 0xbc, 0x95, 0x45,
		0xde, 0x4f, 0x3c, 0x6f, 0x25, 0x29, 0x04, 0x6b, 0x28, 0x7a, 0xbc, 0xe7, 0xad, 0x24, 0x72, 0xde,
		0xef, 0xb9, 0x2a, 0x85, 0x94, 0x27, 0x7c, 0x7e, 0x4a, 0x20, 0x8c, 0x06, 0x27, 0x59, 0x0f, 0xf9,
		0x1c, 0x95, 0xc0, 0xec, 0x0b, 0x8e, 0x92, 0x9e, 0xf3, 0x39, 0x2a, 0x80, 0x9c, 0x17, 0x7d, 0x8e,
		0x0a, 0xa0, 0xe6, 0x51, 0x9f, 0xbf, 0x82, 0xc8, 0x7a, 0xd7, 0xe7, 0xa7, 0x24, 0x72, 0x76, 0x8f,
		0xf9, 0xca, 0xbf, 0xf1, 0x67, 0xc0, 0x95, 0x3c, 0xf0, 0xf3, 0x55, 0x0c, 0xc3, 0xbd, 0x39, 0xe4,
		0x3d, 0xf3, 0x73, 0x54, 0x06, 0x29, 0x2f, 0xfd, 0x1c, 0xe5, 0x5f, 0xc9, 0x63, 0x3f, 0x47, 0xe5,
		0x50, 0xf1, 0xde, 0xcf, 0x53, 0x31, 0xa4, 0x3d, 0xf9, 0xf3, 0x54, 0x08, 0x79, 0xaf, 0xfe, 0x3c,
		0x96, 0x42, 0xcd, 0xc3, 0x3f, 0x8f, 0x25, 0x92, 0xf2, 0xf6, 0xcf, 0x63, 0x41, 0xa4, 0x3d, 0xff,
		0xf3, 0x54, 0x18, 0xb5, 0xb7, 0x00, 0xf2, 0x53, 0x12, 0x85, 0x37, 0x02, 0xf2, 0x56, 0x08, 0xa9,
		0xb7, 0x03, 0x72, 0x54, 0x08, 0xb9, 0x37, 0x05, 0xf2, 0x55, 0x80, 0x8a, 0xe9, 0x05, 0x30, 0x7a,
		0xe7, 0xeb, 0xd6, 0xf4, 0xc5, 0xaa, 0xd4, 0x9b, 0x05, 0x39, 0xca, 0xbe, 0xea, 0x5b, 0x06, 0x39,
		0x2a, 0x8a, 0xe1, 0x66, 0x6d, 0xf2, 0x6f, 0x1f, 0xe4, 0xac, 0x0c, 0x97, 0x86, 0x97, 0x21, 0x36,
		0x3a, 0xa2, 0x55, 0xdf, 0x50, 0xc8, 0x57, 0x49, 0x24, 0xdf, 0x56, 0xc8, 0x51, 0x21, 0x64, 0xdf,
		0x5c, 0xc8, 0x53, 0x11, 0xba, 0xae, 0xd9, 0xf9, 0x37, 0xdc, 0x9c, 0x57, 0xe1, 0xed, 0x86, 0x5c,
		0x15, 0xa2, 0xef, 0x19, 0x5f, 0x80, 0x42, 0x98, 0x37, 0x49, 0xbf, 0x01, 0x91, 0xa7, 0x22, 0x48,
		0xbe, 0x0d, 0x91, 0xa3, 0x22, 0x48, 0xbd, 0x19, 0x91, 0xa3, 0xfc, 0x2b, 0xbd, 0x25, 0x91, 0x9f,
		0x72, 0x78, 0x37, 0xbd, 0x9d, 0x83, 0xed, 0xbe, 0x13, 0x1e, 0xdd, 0x99, 0x7d, 0x25, 0xdf, 0x33,
		0x7c, 0xa3, 0xce, 0x13, 0x42, 0x94, 0x77, 0xde, 0xef, 0x9a, 0x5e, 0x86, 0xc3, 0xed, 0x4a, 0xb9,
		0x5c, 0x84, 0x42, 0x54, 0x8a, 0x50, 0x88, 0xbd, 0x42, 0xf4, 0xa7, 0xfd, 0x5f, 0xcf, 0xaa, 0xe7,
		0x05, 0x28, 0xc8, 0x8e, 0xd3, 0x3e, 0x75, 0x8c, 0x36, 0x92, 0xf3, 0x3a, 0xf6, 0x6d, 0x64, 0xf6,
		0x3c, 0xd1, 0xb9, 0xf8, 0xff, 0xd9, 0x7b, 0xd3, 0xde, 0xc6, 0x71, 0x65, 0x7d, 0xfc, 0x7d, 0x7f,
		0x0a, 0xc1, 0xb8, 0xc0, 0x99, 0xb9, 0x68, 0x77, 0x6c, 0x67, 0x0f, 0x70, 0x5f, 0xb8, 0x13, 0xa7,
		0xc7, 0x98, 0x6c, 0x88, 0xdd, 0x3d, 0x33, 0x98, 0xce, 0x09, 0x18, 0x89, 0x76, 0xf8, 0x6f, 0x99,
		0xd2, 0x48, 0x74, 0x96, 0xdf, 0x39, 0xfd, 0xdd, 0xff, 0x90, 0xbc, 0xc4, 0x4b, 0x16, 0x89, 0xa4,
		0x16, 0x2a, 0xcf, 0x7d, 0x71, 0x4f, 0xd2, 0x13, 0xd3, 0x55, 0x24, 0xab, 0xf8, 0x3c, 0xc5, 0x62,
		0xd5, 0x7d, 0xff, 0xd1, 0xa7, 0x66, 0xeb, 0xf0, 0x6d, 0xc0, 0x8c, 0x57, 0xc2, 0xf0, 0x1a, 0x40,
		0x6c, 0x64, 0x74, 0xc0, 0x98, 0xf1, 0x01, 0xe3, 0xec, 0x86, 0x98, 0x5d, 0x39, 0x35, 0xee, 0x8e,
		0xe6, 0x52, 0x72, 0x67, 0xb6, 0x29, 0xf8, 0x66, 0x4b, 0x5f, 0x81, 0x7c, 0x1a, 0xe6, 0x9f, 0xdf,
		0xd1, 0xa0, 0x6d, 0xf6, 0x53, 0xb4, 0x89, 0x12, 0x87, 0x86, 0x47, 0x2c, 0xa7, 0x5a, 0xb8, 0xe4,
		0xde, 0x6c, 0x2d, 0xcc, 0xef, 0x71, 0xc8, 0x42, 0x87, 0x9b, 0x2e, 0x7f, 0x68, 0xba, 0x02, 0x63,
		0xb3, 0x15, 0xf0, 0xf6, 0xf6, 0x1a, 0xad, 0x96, 0x6b, 0xb8, 0x4b, 0x9a, 0xa8, 0xb1, 0x69, 0xfe,
		0xf3, 0x88, 0xa9, 0x26, 0x5b, 0x7d, 0xef, 0x07, 0xe5, 0x9f, 0xc7, 0x61, 0x05, 0x74, 0xd9, 0x3e,
		0xbc, 0x3c, 0xbe, 0xe8, 0x72, 0x51, 0x05, 0x55, 0x8e, 0x44, 0x50, 0x05, 0x35, 0x8e, 0xd9, 0x0d,
		0xad, 0x84, 0x22, 0xb1, 0x99, 0x5c, 0x1a, 0x5e, 0xfd, 0x7f, 0xaa, 0xcc, 0xce, 0xa9, 0xe1, 0x84,
		0x3b, 0x1c, 0x1b, 0xcd, 0x93, 0xdc, 0x96, 0xe9, 0x65, 0x8f, 0xdd, 0x4d, 0xe6, 0x57, 0x41, 0x87,
		0x07, 0xe3, 0x95, 0x20, 0xfe, 0x8d, 0xe1, 0xf2, 0x3b, 0x86, 0xcb, 0x6f, 0x74, 0x5d, 0x4d, 0x97,
		0x71, 0x3a, 0x0c, 0x3c, 0xc3, 0xfd, 0xe9, 0xc8, 0x6c, 0xf1, 0x3d, 0x9b, 0xb8, 0x7d, 0xe2, 0x1a,
		0xfd, 0x08, 0x62, 0x44, 0xec, 0x1e, 0xb5, 0x0f, 0x3d, 0x2e, 0x02, 0xcf, 0x75, 0xa9, 0xd3, 0x3d,
		0x36, 0x5f, 0x9b, 0xaf, 0xdc, 0xae, 0x8a, 0x3e, 0xd4, 0x61, 0xe4, 0x94, 0x30, 0xf7, 0xfc, 0x8e,
		0x06, 0x5d, 0xa3, 0xad, 0x65, 0x34, 0xe8, 0xb1, 0xa1, 0xe9, 0x0f, 0x99, 0x47, 0xcc, 0x7b, 0x30,
		0xbb, 0x5a, 0xfe, 0xc8, 0xb3, 0xc9, 0x37, 0x1a, 0x84, 0xcc, 0xe3, 0x4d, 0xb3, 0xf5, 0x70, 0xa8,
		0xd1, 0xa1, 0xfe, 0x91, 0x6f, 0x9b, 0x2d, 0x3e, 0x1d, 0xf6, 0x03, 0xc2, 0x43, 0xdf, 0xf0, 0xda,
		0xb0, 0x23, 0xdf, 0x0d, 0x4d, 0x97, 0xbf, 0x3f, 0x36, 0x3d, 0x8b, 0x71, 0x14, 0x1a, 0x9e, 0xfd,
		0x37, 0xba, 0x33, 0x5b, 0xfc, 0xc7, 0x80, 0x19, 0xfe, 0x80, 0x8e, 0x0f, 0x88, 0xd1, 0x86, 0xcc,
		0x43, 0xb3, 0xb3, 0x08, 0xbc, 0x49, 0xfb, 0xdb, 0x0a, 0x94, 0x49, 0x59, 0xd6, 0xe4, 0x8b, 0xe9,
		0x34, 0x7b, 0xaa, 0x4e, 0x25, 0x4e, 0x6b, 0xcf, 0xf4, 0xc2, 0x5a, 0x9e, 0xe0, 0xe7, 0xce, 0xd8,
		0x74, 0x0d, 0x84, 0xd1, 0x1a, 0xf8, 0x24, 0x30, 0xfa, 0xf5, 0x90, 0xef, 0xf0, 0xf8, 0xc5, 0xfb,
		0x89, 0xe7, 0xf9, 0xcd, 0xaa, 0x28, 0x62, 0x74, 0xb6, 0xbe, 0x6f, 0xf6, 0xd1, 0xed, 0x9b, 0x9d,
		0xdc, 0xe1, 0x7b, 0xbc, 0xb9, 0xbd, 0x6d, 0xb8, 0x06, 0x3b, 0x66, 0xbf, 0xb2, 0xf6, 0x3d, 0xa3,
		0xc1, 0xb7, 0xef, 0xfb, 0x86, 0x8b, 0x7f, 0x3a, 0x76, 0x05, 0x73, 0x19, 0xff, 0x61, 0x7e, 0x89,
		0x2c, 0x3f, 0x60, 0x23, 0x12, 0x3c, 0x76, 0x7b, 0x47, 0x67, 0x66, 0xab, 0xe1, 0xf9, 0x86, 0xe7,
		0x23, 0x47, 0x2a, 0x7c, 0xfe, 0xa3, 0xed, 0xb7, 0x4e, 0x7d, 0xd3, 0xd5, 0x38, 0xe4, 0x66, 0xc7,
		0xf9, 0x22, 0x1d, 0x8e, 0x3c, 0x3b, 0xfc, 0x83, 0x05, 0xd4, 0xa5, 0x61, 0x45, 0x9a, 0x76, 0xae,
		0x6a, 0x55, 0x85, 0xde, 0x9d, 0xab, 0x3a, 0x55, 0xa1, 0x75, 0x46, 0xa4, 0x53, 0x7c, 0xc2, 0xf8,
		0x2e, 0x7d, 0xf0, 0x8c, 0x5f, 0x9e, 0x0b, 0x8f, 0x71, 0xd1, 0xf7, 0xe2, 0xff, 0xe9, 0xd1, 0x80,
		0x11, 0xd7, 0x74, 0x8d, 0xbe, 0xb1, 0x40, 0x8c, 0xcd, 0x57, 0x63, 0x66, 0x33, 0x17, 0xad, 0x0b,
		0xc3, 0x55, 0x11, 0xd4, 0xe3, 0xcd, 0x86, 0xe9, 0x6d, 0x05, 0xa6, 0x8a, 0xec, 0x99, 0xaf, 0x88,
		0xd9, 0x40, 0xec, 0x9f, 0xd6, 0xfe, 0xa6, 0xd1, 0xa1, 0x9e, 0x7f, 0xcc, 0x3e, 0xff, 0xfe, 0x31,
		0xfc, 0xfd, 0x4b, 0x40, 0x1c, 0xe6, 0x9d, 0xb6, 0x0f, 0x0d, 0xd7, 0xc1, 0xec, 0x3b, 0xe2, 0x80,
		0x12, 0xfb, 0xf6, 0xa8, 0x77, 0x62, 0xb6, 0x0e, 0xc3, 0xb1, 0x4b, 0x02, 0xd3, 0x8b, 0x02, 0x06,
		0x03, 0xbb, 0xb9, 0x65, 0x76, 0xed, 0xe1, 0x60, 0x60, 0xef, 0xed, 0xee, 0x1a, 0x9e, 0x8e, 0x16,
		0xf8, 0x46, 0x73, 0x89, 0x20, 0x6c, 0x6d, 0x9a, 0x6d, 0x07, 0x61, 0x60, 0xf4, 0x3b, 0x84, 0xd0,
		0xb1, 0x99, 0xd9, 0xf2, 0x9b, 0x8d, 0x2b, 0x4c, 0x4f, 0xdb, 0x0a, 0x6f, 0x4d, 0x57, 0xc0, 0xec,
		0x9b, 0xc7, 0x90, 0xf9, 0x3d, 0x36, 0x34, 0x5c, 0x83, 0xbe, 0xe1, 0x0a, 0x3c, 0xf4, 0xbd, 0x63,
		0x6f, 0x6c, 0xf4, 0x41, 0x1c, 0xba, 0x86, 0xdb, 0xc1, 0xc8, 0x09, 0x8f, 0x1e, 0x98, 0xe9, 0x2a,
		0x74, 0x6d, 0xc3, 0x97, 0xc1, 0x1b, 0x88, 0x7b, 0x12, 0xd0, 0x13, 0xcf, 0xf3, 0x6f, 0x88, 0xfd,
		0xc3, 0x6c, 0x5d, 0x0c, 0x4f, 0xe8, 0x8d, 0x15, 0x38, 0xbf, 0xa3, 0xc1, 0x2d, 0x25, 0x4e, 0x05,
		0xd2, 0x4a, 0x63, 0x7d, 0x2e, 0x88, 0xb8, 0x35, 0x5e, 0x89, 0x6f, 0x46, 0x77, 0xc8, 0x08, 0x03,
		0xb3, 0x7d, 0x54, 0xb8, 0x5b, 0x81, 0x97, 0x74, 0xa1, 0x20, 0xf6, 0x8f, 0xbe, 0xd7, 0x13, 0xa6,
		0x7b, 0x59, 0x41, 0x82, 0x13, 0xb3, 0x6b, 0x11, 0x08, 0xc3, 0x39, 0xa8, 0xa0, 0xa6, 0x1b, 0x83,
		0xa0, 0xc1, 0xc8, 0xf0, 0x76, 0x00, 0x22, 0x68, 0x34, 0xf6, 0xcc, 0x56, 0x80, 0xf0, 0xd0, 0xff,
		0xcd, 0x74, 0x5b, 0x30, 0xfe, 0x25, 0xe0, 0xd8, 0x15, 0x66, 0x67, 0xe7, 0x8f, 0x43, 0xa3, 0x23,
		0xaa, 0x77, 0x66, 0x17, 0xff, 0xbf, 0xdb, 0xdc, 0x36, 0x5b, 0xfc, 0x1d, 0xb3, 0xc5, 0xdf, 0x35,
		0x5a, 0x7c, 0xc3, 0x83, 0xc1, 0x77, 0xa6, 0xb7, 0x0a, 0xbb, 0x9b, 0x64, 0xb1, 0x75, 0xfd, 0xb6,
		0xe3, 0x04, 0x34, 0x0c, 0x2b, 0xa0, 0x8b, 0xd9, 0xc1, 0xe1, 0xbb, 0xd1, 0x3d, 0x09, 0xe8, 0x19,
		0xb3, 0xfb, 0x86, 0x27, 0xb0, 0x4e, 0x14, 0x99, 0x66, 0x49, 0x9e, 0x31, 0xa3, 0x41, 0xde, 0x9d,
		0xc7, 0x6c, 0x7a, 0xd4, 0x3d, 0x32, 0x5e, 0x87, 0xce, 0xe7, 0x9e, 0xf9, 0x3a, 0x9c, 0x56, 0x40,
		0x85, 0xe3, 0x2f, 0x15, 0xd8, 0x4c, 0xdc, 0x26, 0xbe, 0xf1, 0x5a, 0x1c, 0x7f, 0x39, 0xea, 0xb4,
		0xcf, 0xda, 0x55, 0xd0, 0xe3, 0xdc, 0x7c, 0xe3, 0x3e, 0xfe, 0xf3, 0xbc, 0x02, 0x3a, 0x98, 0xbf,
		0x0e, 0x15, 0x68, 0xed, 0x31, 0xd7, 0xe3, 0x90, 0xdc, 0x98, 0xfd, 0x3c, 0x73, 0xae, 0xc9, 0x71,
		0x40, 0x46, 0xf4, 0x92, 0xba, 0xe4, 0xb1, 0x12, 0xea, 0x98, 0x5d, 0x5f, 0xf1, 0xfe, 0x9e, 0xf0,
		0x8b, 0x0b, 0xf3, 0x35, 0x30, 0x9a, 0xbf, 0x3e, 0xb4, 0x9a, 0x9b, 0x66, 0xcb, 0xbf, 0x7d, 0x3b,
		0xe6, 0xc2, 0xf8, 0x92, 0x47, 0x0f, 0xad, 0xed, 0x91, 0x6b, 0xba, 0x06, 0xbe, 0xd9, 0xc7, 0xc4,
		0xc3, 0xde, 0xce, 0x09, 0xf1, 0x8d, 0x0e, 0xe1, 0x3c, 0xdc, 0x78, 0x0f, 0xb3, 0x17, 0x89, 0x0a,
		0x7a, 0x48, 0x7d, 0xf2, 0xea, 0x43, 0x0e, 0xf3, 0x25, 0x37, 0x4f, 0xba, 0x7a, 0x4f, 0x17, 0x20,
		0xb0, 0x54, 0x80, 0xb7, 0x00, 0x39, 0xa5, 0x7b, 0x49, 0x17, 0x23, 0xab, 0x64, 0xcf, 0xe8, 0xe2,
		0x84, 0x6d, 0x99, 0x24, 0xec, 0xb6, 0x51, 0xfb, 0x40, 0xb2, 0xd7, 0x73, 0x61, 0x02, 0xcb, 0xf6,
		0x74, 0x2e, 0x40, 0x60, 0xc9, 0xde, 0xcd, 0x45, 0x48, 0x2a, 0xdb, 0xa3, 0xb9, 0x08, 0x59, 0xa5,
		0x7b, 0x31, 0x17, 0x20, 0xac, 0x6b, 0xc8, 0x41, 0x2b, 0xd3, 0x5b, 0xb9, 0x00, 0x31, 0x15, 0x7a,
		0x28, 0x17, 0x21, 0xad, 0x7c, 0xaf, 0xe4, 0x02, 0xa4, 0xf5, 0xcd, 0x90, 0x52, 0xba, 0xf7, 0x71,
		0x11, 0xc2, 0x4a, 0x07, 0x42, 0x8b, 0x12, 0x56, 0xae, 0x97, 0x71, 0x61, 0xd2, 0x4a, 0xf5, 0x2c,
		0x2e, 0x42, 0x5a, 0xd9, 0xde, 0xc4, 0x05, 0xc8, 0x2a, 0xd5, 0x83, 0xb8, 0x18, 0x39, 0x43, 0x53,
		0x04, 0x1d, 0x9b, 0x21, 0xa8, 0x42, 0xef, 0xe0, 0xc2, 0xc4, 0x95, 0xee, 0x11, 0x5c, 0x98, 0xc4,
		0x0a, 0xbd, 0x80, 0x0b, 0x93, 0x59, 0xbe, 0xe7, 0x6f, 0x71, 0x22, 0x4b, 0xf5, 0xf6, 0x2d, 0x4e,
		0x5c, 0xc9, 0x1e, 0xbe, 0xc5, 0x09, 0xac, 0xd0, 0xab, 0xb7, 0x30, 0xa1, 0xe5, 0x7a, 0xf2, 0x16,
		0x21, 0xee, 0xd8, 0x08, 0x3c, 0x2e, 0xdb, 0x63, 0xb7, 0x00, 0x49, 0xa5, 0x7b, 0xe9, 0x16, 0x23,
		0xeb, 0x83, 0x31, 0xc2, 0x4a, 0xf5, 0xc6, 0x2d, 0x44, 0x4e, 0xc7, 0x10, 0x39, 0x07, 0x46, 0xc8,
		0x29, 0xdf, 0xd3, 0xb6, 0x00, 0x61, 0x47, 0x66, 0x88, 0x29, 0xdf, 0xa3, 0x36, 0x7f, 0x61, 0x75,
		0xf4, 0xa2, 0x2d, 0x4a, 0x6a, 0xd5, 0x9e, 0xb3, 0x05, 0xc8, 0xad, 0xda, 0x5b, 0xb6, 0x00, 0x91,
		0xe5, 0x7b, 0xc8, 0x16, 0x20, 0xac, 0x64, 0xaf, 0xd8, 0x02, 0x24, 0x55, 0xea, 0x09, 0x5b, 0x84,
		0xbc, 0x52, 0xbd, 0x5f, 0x0b, 0x10, 0xd4, 0xb7, 0xcd, 0x10, 0x53, 0xa9, 0x97, 0x6b, 0x11, 0x02,
		0xbb, 0xa1, 0x29, 0x72, 0xca, 0xf6, 0x66, 0x2d, 0x40, 0xda, 0xd0, 0x90, 0xec, 0x18, 0xa9, 0x5e,
		0xab, 0x05, 0x88, 0x29, 0xdb, 0x53, 0x35, 0x7f, 0x51, 0xe5, 0x7a, 0xa7, 0x16, 0x20, 0x67, 0x68,
		0xc6, 0xad, 0xa2, 0x6a, 0x2f, 0xd4, 0xa2, 0x25, 0xfe, 0x62, 0x0a, 0x0d, 0x53, 0xef, 0x6d, 0x5a,
		0x80, 0xcc, 0x72, 0x3d, 0x4c, 0x8b, 0x10, 0x54, 0xae, 0x57, 0x69, 0x31, 0x92, 0x0a, 0x23, 0x24,
		0x95, 0xeb, 0x3d, 0x5a, 0x80, 0x9c, 0x6a, 0x3d, 0x46, 0x8b, 0x15, 0xd8, 0x88, 0xec, 0x4e, 0xdf,
		0x8c, 0xa3, 0xcc, 0x37, 0xe3, 0xf2, 0x56, 0xb6, 0x07, 0x68, 0x21, 0x92, 0x4a, 0xf5, 0xfa, 0x2c,
		0x42, 0x52, 0x23, 0x40, 0xa1, 0x54, 0xef, 0xce, 0x42, 0xc4, 0x54, 0xee, 0xd1, 0x59, 0x80, 0xd4,
		0x2a, 0xbd, 0x38, 0x8b, 0x10, 0x57, 0xb2, 0xe7, 0x66, 0x31, 0xa2, 0x4a, 0xf7, 0xd6, 0x2c, 0x46,
		0x5c, 0xb9, 0x1e, 0x9a, 0xc5, 0xc8, 0xaa, 0xab, 0x57, 0x66, 0xf1, 0xd2, 0xcb, 0xf7, 0xc4, 0x2c,
		0x5e, 0x76, 0xf9, 0xde, 0x97, 0xc5, 0xc8, 0xae, 0xd4, 0xe3, 0xb2, 0x18, 0x91, 0x75, 0xf4, 0xb2,
		0x2c, 0x46, 0x72, 0xe9, 0x9e, 0x95, 0xc5, 0x88, 0xab, 0xd4, 0x9b, 0xb2, 0x10, 0x91, 0x55, 0x7a,
		0x50, 0x16, 0x26, 0xf0, 0x9e, 0x39, 0x02, 0x9b, 0x01, 0x34, 0x24, 0x7b, 0x47, 0x16, 0x20, 0xa8,
		0x19, 0xe7, 0xc4, 0x3f, 0x86, 0xe4, 0x33, 0xcb, 0xf7, 0x7c, 0x2c, 0x44, 0x56, 0x33, 0xee, 0x9e,
		0xe4, 0x7b, 0x38, 0x16, 0x21, 0xab, 0x42, 0xaf, 0xc6, 0x02, 0xc4, 0x95, 0xed, 0xc9, 0x58, 0x88,
		0xa8, 0xb2, 0xbd, 0x17, 0x0b, 0x10, 0xd6, 0x37, 0x02, 0xcb, 0x4a, 0xf6, 0x52, 0x2c, 0x42, 0xd0,
		0xc0, 0x88, 0xfc, 0x54, 0xb9, 0xde, 0x88, 0x45, 0xc8, 0x69, 0xc6, 0x79, 0x6a, 0x4a, 0x7a, 0x84,
		0x64, 0x4f, 0xc3, 0x02, 0x04, 0x35, 0xe3, 0x06, 0x44, 0xb6, 0x47, 0x61, 0x21, 0x92, 0xf6, 0x0d,
		0x11, 0x54, 0xba, 0xe7, 0x60, 0x01, 0xc2, 0xba, 0x86, 0xec, 0x53, 0xd9, 0x1e, 0x82, 0xc5, 0x88,
		0x2a, 0xd7, 0x2b, 0xb0, 0x00, 0x59, 0x95, 0x7b, 0x02, 0x16, 0x21, 0xb3, 0x21, 0x89, 0x67, 0x7a,
		0x7a, 0xfc, 0x15, 0x24, 0xb7, 0x5c, 0x2f, 0xbf, 0x82, 0x84, 0x95, 0xe9, 0xd9, 0x57, 0x80, 0xa8,
		0x81, 0x19, 0x3e, 0x41, 0xa1, 0x07, 0x5f, 0x01, 0xd2, 0x2a, 0xf5, 0xda, 0x2b, 0x44, 0x5e, 0xb9,
		0x9e, 0x7a, 0xf9, 0x8b, 0x2a, 0x0c, 0xe1, 0x2e, 0xb2, 0x3d, 0xf2, 0x8a, 0x90, 0x54, 0xb2, 0x17,
		0x5e, 0x01, 0xa2, 0xca, 0xf5, 0xbc, 0x2b, 0x42, 0x50, 0xf9, 0xde, 0x76, 0x05, 0x48, 0x6b, 0xcc,
		0x8b, 0x09, 0xc9, 0x5e, 0x75, 0x05, 0x08, 0x1a, 0x1a, 0x11, 0xb1, 0xba, 0x33, 0xa3, 0x88, 0xa8,
		0x54, 0x8f, 0xb9, 0x22, 0xc4, 0xdc, 0x31, 0x43, 0xcc, 0x5d, 0x23, 0xc4, 0x34, 0x24, 0xa8, 0x26,
		0xd9, 0x03, 0xae, 0x00, 0x41, 0x95, 0x7b, 0xbd, 0x15, 0x26, 0xb3, 0x19, 0x41, 0x36, 0xc5, 0xde,
		0x6d, 0x45, 0x09, 0xac, 0xd2, 0xa3, 0xad, 0x00, 0x99, 0xa5, 0x7b, 0xb1, 0x15, 0x24, 0xab, 0x54,
		0xcf, 0xb5, 0xa2, 0x64, 0x3d, 0x35, 0x48, 0x54, 0xa9, 0x1e, 0x6a, 0x45, 0x49, 0x2b, 0xd7, 0x2b,
		0xad, 0x20, 0x69, 0xa5, 0x7b, 0xa2, 0x15, 0x27, 0xef, 0xb9, 0x39, 0x46, 0x26, 0xd5, 0xe3, 0xac,
		0x30, 0x59, 0xcd, 0x99, 0x57, 0x83, 0x4a, 0xf5, 0xaa, 0xf6, 0x26, 0x2b, 0x50, 0x62, 0x95, 0x1e,
		0x64, 0x05, 0x8a, 0x6d, 0x46, 0xbd, 0x1d, 0xd9, 0x9e, 0x62, 0x45, 0x49, 0x6a, 0x04, 0xef, 0x91,
		0xeb, 0x11, 0x56, 0x84, 0x9c, 0x2a, 0xbd, 0xc0, 0x0a, 0x91, 0x57, 0xaa, 0xe7, 0x57, 0x21, 0x92,
		0xfa, 0x66, 0xb8, 0x59, 0xe9, 0x1e, 0x5e, 0x05, 0x88, 0xaa, 0xd4, 0xab, 0x2b, 0x5d, 0x8f, 0xae,
		0xe4, 0xbd, 0xb9, 0x92, 0x8d, 0x9b, 0x70, 0xb6, 0x6a, 0xf4, 0x41, 0x04, 0xa4, 0x3e, 0xe6, 0xa1,
		0x88, 0xcf, 0xe9, 0x83, 0x14, 0x73, 0x56, 0x0b, 0xe8, 0x80, 0x06, 0x94, 0xdb, 0xd1, 0xc7, 0xfe,
		0xfe, 0x90, 0xed, 0xc2, 0xcc, 0x17, 0xe5, 0xf2, 0xf8, 0xd0, 0x6a, 0xed, 0xed, 0x6c, 0x1e, 0x58,
		0xfd, 0x5b, 0x6a, 0x75, 0xb9, 0xa0, 0xc1, 0x80, 0xd8, 0x34, 0xb4, 0x62, 0xaf, 0x62, 0x9d, 0x76,
		0x3f, 0x5b, 0x75, 0x8b, 0x0d, 0xe2, 0xee, 0x2b, 0xe9, 0x77, 0x4c, 0xad, 0xe7, 0x8d, 0x03, 0x3b,
		0xdd, 0x3c, 0x2c, 0x7d, 0xfe, 0x77, 0xfa, 0x78, 0xef, 0x05, 0xce, 0x24, 0x57, 0x7a, 0x36, 0x3d,
		0x72, 0x5d, 0xe7, 0x6a, 0xbf, 0x91, 0xb0, 0x1d, 0x0c, 0xc7, 0x23, 0xca, 0x45, 0xed, 0xc0, 0x12,
		0xc1, 0x98, 0x4a, 0x0e, 0xb4, 0x30, 0x4a, 0xaa, 0xf9, 0xcb, 0x78, 0xcf, 0x27, 0xff, 0xeb, 0x64,
		0xd6, 0xf1, 0xf6, 0x78, 0xaf, 0xff, 0xc5, 0x1b, 0x36, 0x53, 0xeb, 0x3c, 0x88, 0x30, 0xd1, 0x56,
		0x4f, 0xb6, 0x77, 0x16, 0xf7, 0x8a, 0x67, 0xd7, 0xe9, 0x83, 0x38, 0x10, 0xd4, 0xa5, 0x23, 0x2a,
		0x82, 0xc7, 0xba, 0xc7, 0xeb, 0xf6, 0x2d, 0xe1, 0xc3, 0xa4, 0x9b, 0x67, 0x65, 0xb3, 0x0c, 0x88,
		0x1b, 0x26, 0xdc, 0x2d, 0x4b, 0xbb, 0xa3, 0xa6, 0x38, 0x85, 0x57, 0x6f, 0x4c, 0x61, 0x7b, 0x3c,
		0x8c, 0xbe, 0x8a, 0x3a, 0x3a, 0xe7, 0x71, 0xe6, 0x1a, 0x36, 0x3c, 0xbb, 0xce, 0x06, 0x07, 0x6c,
		0xbe, 0xa7, 0x57, 0xff, 0x61, 0xfa, 0xbb, 0xed, 0xf1, 0x01, 0x1b, 0x26, 0x9d, 0xd8, 0x23, 0x1a,
		0xda, 0x01, 0xf3, 0x05, 0xf3, 0x78, 0xf4, 0x25, 0x6d, 0xc7, 0x09, 0xad, 0xfe, 0x45, 0xf7, 0xc8,
		0xda, 0xb0, 0xa8, 0xb8, 0xa5, 0x81, 0x78, 0xf4, 0xa9, 0x15, 0x52, 0x21, 0x18, 0x1f, 0x5a, 0x03,
		0x2f, 0xb0, 0xc4, 0x2d, 0xb5, 0x6e, 0x48, 0x48, 0xad, 0xf9, 0xf7, 0x26, 0xfd, 0xaa, 0xdf, 0x19,
		0x8f, 0x26, 0xa6, 0x99, 0xf0, 0xcf, 0x0f, 0x27, 0x7a, 0x1c, 0x58, 0x8d, 0x84, 0x1f, 0xb8, 0x08,
		0xe8, 0x80, 0x3d, 0xa4, 0x73, 0xf2, 0xf3, 0x7a, 0x38, 0x76, 0x3d, 0xae, 0xf6, 0x9c, 0xdc, 0x05,
		0xc9, 0xfa, 0xd2, 0x45, 0xbb, 0xf0, 0x27, 0x12, 0xa7, 0xf3, 0x7b, 0xca, 0x8e, 0x73, 0xc9, 0x24,
		0x66, 0x8a, 0x17, 0x74, 0x40, 0x1f, 0xb1, 0x20, 0xdd, 0x82, 0x09, 0x9f, 0x39, 0xe9, 0xe7, 0x7c,
		0x7e, 0x53, 0x1e, 0x7d, 0x3a, 0xe5, 0x6c, 0xad, 0x58, 0xc8, 0x79, 0xfc, 0x13, 0x71, 0xdd, 0xc7,
		0xc8, 0x2c, 0x62, 0x73, 0x10, 0x64, 0x68, 0xf9, 0x81, 0x27, 0x3c, 0xdb, 0x73, 0x2d, 0xe6, 0x50,
		0x2e, 0xd8, 0x80, 0xd1, 0xc0, 0x1a, 0x30, 0xea, 0x3a, 0xd6, 0x2f, 0x91, 0x39, 0xfd, 0x6a, 0x89,
		0x5b, 0x22, 0xbe, 0x73, 0x16, 0x5a, 0xc4, 0xb6, 0xa9, 0x2f, 0xa8, 0x63, 0x79, 0x3c, 0xfe, 0xf4,
		0xb7, 0x93, 0xf6, 0x59, 0x7a, 0x99, 0x06, 0x64, 0xec, 0x8a, 0xd4, 0xc8, 0x24, 0xfe, 0xf0, 0x74,
		0xc9, 0xeb, 0x91, 0x69, 0x87, 0x07, 0x91, 0x74, 0xd7, 0x8d, 0x3f, 0xf7, 0x9a, 0x8d, 0x46, 0xba,
		0x13, 0xf1, 0x2a, 0xa5, 0xcc, 0x53, 0xf3, 0x6f, 0xa4, 0xfc, 0x58, 0x5a, 0x37, 0xa0, 0xe2, 0x0e,
		0x34, 0xb8, 0x85, 0x2c, 0xa0, 0x96, 0x94, 0x9b, 0xc8, 0x16, 0x67, 0xa5, 0x76, 0x1b, 0x92, 0x18,
		0x2a, 0xe5, 0x9a, 0xc7, 0xb8, 0x4e, 0x69, 0xc5, 0x27, 0xe6, 0x2b, 0x1e, 0x03, 0x3a, 0x90, 0x59,
		0xf5, 0xd9, 0x19, 0xb7, 0x2d, 0xf1, 0xd9, 0xee, 0xf4, 0xab, 0x3f, 0x93, 0x50, 0x61, 0xdf, 0xcc,
		0x14, 0x89, 0xed, 0xba, 0xff, 0xd7, 0x45, 0xa7, 0x27, 0xbb, 0x71, 0xbe, 0x11, 0x77, 0x4c, 0x43,
		0x29, 0x1f, 0xa3, 0x46, 0x51, 0x9f, 0xd7, 0x45, 0xc6, 0x47, 0x29, 0x32, 0xec, 0x8c, 0xd4, 0xd8,
		0x6b, 0xef, 0x55, 0x40, 0x8d, 0xfd, 0x6a, 0xac, 0xc6, 0x7e, 0xab, 0x02, 0x6a, 0xb4, 0xcf, 0xfe,
		0x32, 0xa0, 0xdd, 0x7a, 0x46, 0xf4, 0xf9, 0x67, 0x2e, 0xf4, 0xf9, 0x4d, 0xee, 0xc7, 0xb9, 0x27,
		0xc8, 0x14, 0x25, 0xbe, 0xbd, 0xb6, 0xb5, 0xd0, 0xbe, 0xa5, 0x23, 0xe2, 0x13, 0x71, 0x3b, 0x21,
		0x77, 0x3e, 0xe5, 0x13, 0xe6, 0x56, 0x5f, 0x60, 0x78, 0xcf, 0xfd, 0xb8, 0x91, 0x98, 0xe0, 0xd5,
		0x42, 0x11, 0x8c, 0x6d, 0xc1, 0xa7, 0x3b, 0xe5, 0x7c, 0xfe, 0x15, 0x4f, 0x71, 0x91, 0xeb, 0xe7,
		0x7e, 0xbc, 0x9e, 0x62, 0xae, 0x0f, 0x72, 0xb3, 0xf5, 0x8a, 0x4d, 0xd4, 0x62, 0x4e, 0xc9, 0xa9,
		0x78, 0x73, 0x8e, 0xe6, 0xfb, 0x7b, 0xfe, 0x89, 0x37, 0xe6, 0x3f, 0x19, 0xbb, 0x4c, 0x0c, 0x27,
		0xd3, 0xc0, 0xc7, 0x45, 0xb8, 0x48, 0xc5, 0x6d, 0x92, 0x95, 0x49, 0x89, 0x0e, 0xa5, 0xd1, 0xa0,
		0x34, 0xfa, 0x5b, 0x45, 0x7b, 0x34, 0xc9, 0xcb, 0x1d, 0xb5, 0x00, 0x54, 0x52, 0x2e, 0x58, 0xb3,
		0x67, 0x6b, 0x98, 0x32, 0x82, 0x92, 0x2e, 0x32, 0x52, 0xf2, 0x70, 0x45, 0xb2, 0x8d, 0x56, 0xbd,
		0x68, 0x05, 0x4d, 0xf3, 0x84, 0xac, 0xe0, 0x60, 0x05, 0x19, 0x0e, 0x03, 0x3a, 0x24, 0x82, 0xd6,
		0x55, 0x82, 0x16, 0x4b, 0xa3, 0xbc, 0x0f, 0xd2, 0xed, 0x92, 0x21, 0x38, 0xf7, 0x33, 0x9b, 0x3f,
		0x9a, 0x97, 0xca, 0x51, 0x6e, 0x97, 0x92, 0x81, 0x22, 0xdd, 0xde, 0x95, 0xf8, 0xec, 0xc5, 0x1c,
		0x7a, 0x25, 0x8b, 0xab, 0xc7, 0x30, 0x2a, 0x2b, 0x08, 0x9b, 0xc2, 0x93, 0x93, 0xb1, 0xf0, 0xea,
		0x9c, 0x0e, 0x3d, 0xc1, 0x88, 0xa0, 0x0a, 0x6e, 0x65, 0x79, 0x9c, 0x3c, 0x23, 0x90, 0x91, 0x41,
		0x20, 0xd8, 0xa8, 0x7c, 0xa8, 0xbf, 0x1f, 0xbf, 0x47, 0xa5, 0xde, 0x8d, 0x97, 0xdc, 0xef, 0xdd,
		0x78, 0x9e, 0x4b, 0xe5, 0x82, 0xcb, 0x33, 0xbf, 0xd7, 0xcc, 0x54, 0x45, 0x85, 0xec, 0x89, 0xf9,
		0x18, 0xf2, 0x59, 0x14, 0xea, 0x71, 0x92, 0xf9, 0x4c, 0x77, 0x3b, 0x9d, 0x8e, 0xb5, 0xd7, 0x68,
		0x7d, 0xda, 0xac, 0xb7, 0x1a, 0xcd, 0x96, 0xb5, 0xe4, 0xfa, 0x98, 0xc7, 0xad, 0xf8, 0xbd, 0xe7,
		0x88, 0x85, 0x61, 0xf4, 0x8b, 0x4f, 0x02, 0x32, 0xa2, 0x82, 0x06, 0x61, 0x4d, 0x3e, 0xba, 0xa3,
		0x6a, 0x93, 0xcf, 0xd9, 0xa6, 0x6a, 0xca, 0x85, 0x76, 0x33, 0x7d, 0xd6, 0x5c, 0xa5, 0x27, 0x3b,
		0xe7, 0x00, 0x56, 0xfa, 0x4f, 0x5d, 0x95, 0xe0, 0xf4, 0x77, 0xc6, 0xbe, 0x4b, 0x1f, 0xea, 0x23,
		0xcf, 0x51, 0x38, 0xfa, 0x17, 0x07, 0xc1, 0xc1, 0x8a, 0x83, 0xb5, 0x62, 0x07, 0x2b, 0xe5, 0xe3,
		0x11, 0x0d, 0x26, 0xb1, 0x58, 0x85, 0xc3, 0x75, 0x4b, 0xe2, 0xb3, 0x1d, 0x3e, 0x1e, 0xc9, 0x6f,
		0x97, 0xbe, 0xd7, 0x13, 0x01, 0xe3, 0x43, 0xa5, 0x53, 0xa3, 0xd6, 0x88, 0xe6, 0xe0, 0xf8, 0xeb,
		0xc9, 0x89, 0xca, 0xf1, 0xd5, 0x8c, 0x06, 0xf9, 0xad, 0x7d, 0x72, 0x2c, 0xe7, 0x96, 0x25, 0xef,
		0x45, 0x6a, 0x7d, 0xaf, 0xcb, 0x85, 0x9a, 0xfa, 0xb1, 0xe6, 0xa9, 0x1d, 0xcd, 0xb2, 0xb5, 0x45,
		0x7a, 0x1f, 0x58, 0xcd, 0x9c, 0xce, 0x95, 0x9f, 0x25, 0x38, 0x57, 0x28, 0x8f, 0x30, 0x5e, 0x7d,
		0xe0, 0x7a, 0xf7, 0xf5, 0x69, 0x63, 0x66, 0xf9, 0xf3, 0xe5, 0xb9, 0xc1, 0xf2, 0xe4, 0x97, 0x71,
		0x7e, 0x20, 0x08, 0x26, 0xce, 0x41, 0x10, 0x4c, 0x10, 0xcc, 0x7c, 0x09, 0xe6, 0x03, 0x38, 0xa3,
		0x12, 0x67, 0x7c, 0x00, 0x0d, 0x4c, 0x74, 0xc2, 0x51, 0x5b, 0x91, 0x03, 0xce, 0x47, 0xc0, 0xc1,
		0x87, 0x83, 0xaf, 0x62, 0x07, 0x5f, 0x65, 0x92, 0x38, 0xbb, 0x67, 0xfd, 0xce, 0xe5, 0x71, 0xfb,
		0xb0, 0x73, 0x7d, 0xdc, 0x39, 0x34, 0x3f, 0x8f, 0xf3, 0xb8, 0x73, 0x78, 0x7d, 0xd4, 0xed, 0xb5,
		0x3f, 0x9f, 0x74, 0x8e, 0x4c, 0xce, 0xb9, 0x8b, 0xf4, 0x38, 0x3e, 0x34, 0x5d, 0x83, 0xcb, 0xde,
		0x76, 0x6b, 0xaf, 0x02, 0x4a, 0x6c, 0x6d, 0x55, 0x42, 0x89, 0xeb, 0xd6, 0x9f, 0xd7, 0xb1, 0xbd,
		0x9f, 0x74, 0xda, 0xdf, 0x3a, 0xef, 0x38, 0x9d, 0x33, 0x05, 0x0c, 0x1a, 0x11, 0xbb, 0x4e, 0xa6,
		0xd5, 0xd0, 0xa4, 0x91, 0xd0, 0xe2, 0x20, 0x00, 0x43, 0x00, 0x43, 0x15, 0x03, 0x43, 0xf2, 0xdb,
		0x7b, 0x09, 0x0c, 0xed, 0xc9, 0xa5, 0xd8, 0x08, 0x1a, 0x70, 0x69, 0xe8, 0x51, 0xfb, 0xbb, 0x51,
		0xdf, 0x27, 0xf5, 0x41, 0xbb, 0x7e, 0x7c, 0xf5, 0x9f, 0xd6, 0xcf, 0x5f, 0x0e, 0x96, 0x7f, 0xff,
		0xf5, 0x3f, 0xdb, 0x3f, 0xd3, 0xaf, 0xd7, 0x95, 0x8c, 0x22, 0xe7, 0xbd, 0xee, 0x9f, 0xca, 0xda,
		0xfc, 0xfb, 0x6d, 0x75, 0xfe, 0xa7, 0x66, 0x24, 0x1d, 0xf5, 0xbd, 0x40, 0xd4, 0x43, 0x9f, 0x52,
		0x85, 0x34, 0xc7, 0x85, 0x31, 0xe0, 0x85, 0xe1, 0x85, 0x41, 0x49, 0xcb, 0x49, 0x49, 0x3b, 0xfd,
		0xdf, 0x3a, 0x97, 0x67, 0x9d, 0xfe, 0x75, 0xef, 0xa2, 0xd3, 0x39, 0x32, 0x9f, 0x93, 0xc6, 0x6a,
		0x5c, 0x37, 0x1b, 0x8d, 0x2f, 0x9f, 0x4d, 0xa6, 0x11, 0x73, 0x35, 0x4e, 0x2b, 0xa1, 0x46, 0x35,
		0x16, 0xa3, 0x12, 0x6b, 0x51, 0x85, 0xa5, 0x68, 0x55, 0xc3, 0xbc, 0x5b, 0xdb, 0xd5, 0xb0, 0xef,
		0xd6, 0x76, 0x15, 0x56, 0x63, 0xab, 0x1a, 0x9b, 0x6a, 0xab, 0x12, 0x5a, 0x6c, 0x57, 0x43, 0x8b,
		0x2a, 0x28, 0xb1, 0x53, 0x0d, 0xbb, 0xd8, 0xab, 0x86, 0x1a, 0x5f, 0xcf, 0x7e, 0x3f, 0x3b, 0xff,
		0xe3, 0x0c, 0xf1, 0xe4, 0x24, 0x53, 0x17, 0x0a, 0xc2, 0x1d, 0xe2, 0x7a, 0x9c, 0xd6, 0x5d, 0xc6,
		0x7f, 0xd4, 0x45, 0x40, 0x18, 0x97, 0x49, 0xc8, 0x5c, 0x6c, 0xcd, 0xf6, 0xfc, 0x88, 0xc8, 0x87,
		0x43, 0x0c, 0x06, 0x31, 0x98, 0x5c, 0x63, 0x30, 0xf9, 0xe7, 0xc3, 0x15, 0xf4, 0x50, 0x3d, 0x5d,
		0x1d, 0x4a, 0xb9, 0x63, 0x27, 0x5d, 0x5d, 0x4a, 0x2a, 0x6e, 0x0f, 0x66, 0x95, 0x3c, 0x66, 0xbf,
		0xa7, 0x2a, 0xc7, 0xb0, 0xe0, 0x08, 0xd7, 0x0b, 0x56, 0x9e, 0xb4, 0xbf, 0xcc, 0x6a, 0x54, 0x86,
		0x96, 0xf0, 0x2c, 0xc6, 0x1d, 0x76, 0xc7, 0x9c, 0x31, 0x71, 0xad, 0xce, 0xf4, 0x4b, 0x9f, 0xca,
		0x55, 0xca, 0x5e, 0xf2, 0x35, 0xf1, 0x86, 0xbe, 0x12, 0xae, 0xad, 0x84, 0x6f, 0xe8, 0xd3, 0x16,
		0x96, 0x98, 0x7f, 0x50, 0xa9, 0xc0, 0xc4, 0xda, 0xa6, 0x51, 0x28, 0x34, 0xf1, 0x92, 0x79, 0xf6,
		0x7c, 0x6a, 0xb3, 0xc1, 0x63, 0x5c, 0xe8, 0xd2, 0xf5, 0x86, 0xcc, 0x26, 0xae, 0x35, 0xff, 0x9a,
		0x27, 0x9b, 0x8c, 0x8c, 0xf6, 0xfe, 0x96, 0xd9, 0xb7, 0xdf, 0xb9, 0xb8, 0x65, 0xe1, 0xc2, 0x7f,
		0xb8, 0xa1, 0xae, 0xc7, 0x87, 0xb2, 0x2f, 0x31, 0x25, 0x61, 0x89, 0xb2, 0x0d, 0xeb, 0xb0, 0x65,
		0x7d, 0x36, 0xad, 0xcb, 0xb6, 0xb5, 0xdb, 0xb8, 0x76, 0x5b, 0xd7, 0x6a, 0xf3, 0x6a, 0x04, 0x48,
		0xfa, 0x05, 0x94, 0x2c, 0xcc, 0x59, 0xdb, 0x2f, 0xf2, 0x75, 0x35, 0xd6, 0x8e, 0xbe, 0x5d, 0x85,
		0x31, 0xb2, 0xaf, 0xb3, 0x21, 0xbf, 0x50, 0xc5, 0x96, 0xa4, 0xbb, 0x4a, 0x0a, 0xe7, 0xd2, 0x95,
		0x96, 0x7b, 0x62, 0xb3, 0xd2, 0x25, 0xe6, 0xe6, 0x50, 0x2d, 0x35, 0x46, 0x93, 0xae, 0x39, 0x37,
		0x03, 0x6a, 0x89, 0x8a, 0xcf, 0x25, 0x9f, 0xe7, 0x9f, 0x89, 0xca, 0xe4, 0xa5, 0x29, 0xa4, 0xb2,
		0x48, 0xed, 0x45, 0xe6, 0xc5, 0xcf, 0x5b, 0xa8, 0x26, 0xa6, 0xf3, 0xa0, 0x40, 0x35, 0x31, 0x54,
		0x13, 0x03, 0x13, 0x42, 0x35, 0x31, 0xdd, 0x68, 0x07, 0xd5, 0xc4, 0x50, 0x4d, 0x0c, 0xc1, 0x6d,
		0x04, 0xb7, 0xdf, 0x53, 0x70, 0x1b, 0x8f, 0xbd, 0x51, 0x4d, 0x0c, 0xd5, 0xc4, 0xa4, 0x3f, 0x55,
		0x86, 0xbc, 0x7d, 0xdb, 0x1b, 0xf3, 0x78, 0xb6, 0xa4, 0xcf, 0xfd, 0xf9, 0x08, 0xef, 0xe3, 0x52,
		0x05, 0x47, 0xaa, 0x31, 0x47, 0xaa, 0xf4, 0xa5, 0x0a, 0xe3, 0xf5, 0xbd, 0x46, 0xab, 0xf9, 0x4f,
		0x7d, 0x10, 0x39, 0x93, 0x50, 0xfd, 0x5e, 0x65, 0x75, 0x40, 0xdc, 0x65, 0xc8, 0x9b, 0x52, 0x96,
		0x27, 0xa2, 0x19, 0x77, 0x19, 0x52, 0xa6, 0xa6, 0x78, 0xb8, 0x15, 0x7e, 0x97, 0x31, 0x3d, 0x66,
		0x76, 0xb6, 0x34, 0xdc, 0x66, 0xec, 0x29, 0x0c, 0x71, 0x19, 0x37, 0x2d, 0x55, 0x79, 0xb6, 0x62,
		0x29, 0x27, 0xf8, 0xc5, 0x82, 0x9c, 0x32, 0xae, 0xbc, 0xf7, 0xe7, 0x83, 0xc5, 0xaf, 0x71, 0xd4,
		0x6a, 0xe6, 0x2d, 0x8d, 0x77, 0x1c, 0x10, 0x3b, 0x02, 0x67, 0x47, 0x6c, 0xc8, 0xe2, 0xa6, 0xb2,
		0xba, 0x06, 0x3e, 0xa3, 0x43, 0x22, 0xd8, 0x1d, 0x9d, 0xf5, 0x80, 0x55, 0x1e, 0xf5, 0xe7, 0x47,
		0x0d, 0x4b, 0x41, 0x1e, 0xf4, 0x2f, 0x45, 0x73, 0x6f, 0x6b, 0x6b, 0x67, 0x77, 0x6b, 0xab, 0xb1,
		0xbb, 0xb9, 0xdb, 0xd8, 0xdf, 0xde, 0x6e, 0xee, 0xc8, 0xbc, 0xfd, 0x32, 0x7d, 0x75, 0x3e, 0x14,
		0xf3, 0xe9, 0xab, 0xbc, 0xae, 0x1f, 0x3f, 0x4a, 0xa1, 0x93, 0x1b, 0xd7, 0xb3, 0x7f, 0xd4, 0x69,
		0x10, 0x78, 0x81, 0x1e, 0x74, 0xb2, 0x34, 0x20, 0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x09,
		0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x49, 0x5a, 0x74, 0x62, 0x93, 0x20, 0x60, 0x34, 0xd0,
		0x89, 0x4f, 0x56, 0x86, 0x04, 0x42, 0x01, 0x42, 0x01, 0x42, 0x01, 0x42, 0x01, 0x42, 0x01, 0x42,
		0x01, 0x42, 0xa9, 0x0e, 0x42, 0x91, 0xf4, 0x92, 0x1a, 0x12, 0x0b, 0xe6, 0x63, 0xa9, 0x27, 0x18,
		0x68, 0xf4, 0x51, 0x33, 0xe7, 0x7d, 0x79, 0x7c, 0x68, 0x35, 0x77, 0xb6, 0x36, 0xad, 0x23, 0x3a,
		0x60, 0x9c, 0x45, 0x7b, 0x2f, 0xb4, 0xbc, 0x81, 0x75, 0x4a, 0x38, 0x19, 0x52, 0xe7, 0x3b, 0x3f,
		0xbf, 0xf9, 0xff, 0xa8, 0x2d, 0x42, 0x6b, 0xe0, 0x05, 0xf1, 0x4b, 0x9b, 0x59, 0x2e, 0x75, 0xdd,
		0x65, 0x3f, 0xa8, 0x35, 0xcf, 0xb1, 0xb6, 0xa2, 0xf3, 0x24, 0xfc, 0x54, 0xd3, 0x60, 0xb3, 0x9a,
		0xd0, 0xc3, 0x73, 0x28, 0x42, 0x57, 0x5e, 0x42, 0x66, 0x80, 0xe2, 0x59, 0x60, 0xa1, 0x7b, 0x8d,
		0xc0, 0x4e, 0x32, 0x62, 0x27, 0x81, 0xad, 0x95, 0x99, 0x3c, 0x0d, 0x07, 0x56, 0x02, 0x56, 0x02,
		0x56, 0x02, 0x56, 0x02, 0x56, 0x02, 0x56, 0x02, 0x56, 0x02, 0x56, 0xf2, 0x1e, 0x58, 0x49, 0x6b,
		0xaf, 0xb9, 0x7f, 0x60, 0x5d, 0xd2, 0x91, 0x27, 0xa8, 0x75, 0x46, 0xc5, 0xbd, 0x17, 0xfc, 0xb0,
		0x4e, 0x3d, 0xce, 0x84, 0x17, 0x30, 0x3e, 0xb4, 0x4e, 0xbb, 0x9f, 0xad, 0xfa, 0x77, 0x1e, 0x3f,
		0x27, 0xed, 0x09, 0x22, 0xc2, 0xc3, 0xcb, 0xc3, 0xb6, 0xcb, 0x86, 0xbc, 0xa3, 0x82, 0x99, 0xc0,
		0x44, 0xde, 0x62, 0x22, 0xaa, 0xeb, 0x02, 0xf6, 0x91, 0x0d, 0xfb, 0x18, 0x04, 0x24, 0xae, 0xcc,
		0xa3, 0x33, 0xb5, 0x74, 0x75, 0x4c, 0xf0, 0x10, 0xf0, 0x10, 0xf0, 0x10, 0xf0, 0x10, 0xf0, 0x10,
		0xf0, 0x10, 0xf0, 0x10, 0x60, 0x94, 0xb4, 0x18, 0x25, 0x7e, 0xa9, 0x1e, 0x8c, 0x7d, 0x41, 0x9d,
		0xba, 0x78, 0xd0, 0x02, 0x51, 0x56, 0x86, 0x04, 0x42, 0x01, 0x42, 0x01, 0x42, 0x01, 0x42, 0x01,
		0x42, 0x01, 0x42, 0x01, 0x42, 0xa9, 0x0e, 0x42, 0x41, 0xa4, 0xf4, 0x79, 0xe7, 0x8d, 0xfc, 0x8d,
		0x52, 0x01, 0x8a, 0x67, 0x81, 0x05, 0xf2, 0x37, 0xcc, 0x60, 0x27, 0xff, 0x1f, 0xb9, 0xb9, 0xa1,
		0x81, 0xce, 0xf8, 0xe9, 0xf2, 0x88, 0xe0, 0x26, 0xe0, 0x26, 0xe0, 0x26, 0xe0, 0x26, 0xe0, 0x26,
		0xe0, 0x26, 0xe0, 0x26, 0xc0, 0x27, 0x69, 0xf1, 0x89, 0x4b, 0x04, 0xad, 0xdb, 0x9e, 0xeb, 0xb2,
		0x30, 0x6d, 0xbd, 0xee, 0x97, 0x00, 0xca, 0xca, 0x90, 0x40, 0x28, 0x40, 0x28, 0x40, 0x28, 0x40,
		0x28, 0x40, 0x28, 0x40, 0x28, 0x40, 0x28, 0xd5, 0x41, 0x28, 0x88, 0x9e, 0x3e, 0xef, 0xbc, 0x11,
		0x3d, 0x2d, 0x15, 0xa0, 0x78, 0x16, 0x58, 0x20, 0x7a, 0x6a, 0x06, 0x3b, 0x19, 0x11, 0xbb, 0x6e,
		0x7b, 0x5c, 0x04, 0x9e, 0xab, 0x33, 0x84, 0xfa, 0xcc, 0xb0, 0x60, 0x29, 0x60, 0x29, 0x60, 0x29,
		0x60, 0x29, 0x60, 0x29, 0x60, 0x29, 0x60, 0x29, 0x40, 0x2a, 0x32, 0x48, 0x65, 0xf2, 0xb0, 0xbe,
		0x1e, 0x3c, 0x68, 0x03, 0x29, 0x4f, 0x23, 0x02, 0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x00,
		0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x54, 0x07, 0x9f, 0x20, 0x8a, 0xfa, 0xbc, 0xf3, 0x46, 0x14, 0xb5,
		0x54, 0x80, 0xe2, 0x59, 0x60, 0x81, 0x28, 0xaa, 0x39, 0xdc, 0xc4, 0x27, 0xe3, 0x90, 0xea, 0x8e,
		0xa1, 0x2e, 0x0d, 0x0a, 0x86, 0x02, 0x86, 0x02, 0x86, 0x02, 0x86, 0x02, 0x86, 0x02, 0x86, 0x02,
		0x86, 0x02, 0x94, 0x92, 0x1e, 0xa5, 0x3c, 0x84, 0xec, 0xff, 0xd1, 0x3a, 0x7d, 0xb0, 0x29, 0x75,
		0xa8, 0xa3, 0x09, 0xa5, 0xac, 0x0c, 0x0a, 0x94, 0x02, 0x94, 0x02, 0x94, 0x02, 0x94, 0x02, 0x94,
		0x02, 0x94, 0x02, 0x94, 0x02, 0x94, 0x92, 0x16, 0xa5, 0x78, 0x77, 0x34, 0x88, 0x11, 0x85, 0xc6,
		0x50, 0xca, 0xea, 0x98, 0xc0, 0x28, 0xc0, 0x28, 0xc0, 0x28, 0xc0, 0x28, 0xc0, 0x28, 0xc0, 0x28,
		0xc0, 0x28, 0xc0, 0x28, 0x69, 0x31, 0x4a, 0xc8, 0xf8, 0xd0, 0xd5, 0xfd, 0xaa, 0x77, 0x6d, 0x50,
		0xa0, 0x14, 0xa0, 0x14, 0xa0, 0x14, 0xa0, 0x14, 0xa0, 0x14, 0xa0, 0x14, 0xa0, 0x94, 0xea, 0xa0,
		0x14, 0x64, 0xa4, 0x3d, 0xef, 0xbc, 0x91, 0x91, 0x56, 0x2a, 0x40, 0xf1, 0x2c, 0xb0, 0x40, 0x46,
		0x9a, 0x21, 0x0c, 0xe5, 0x71, 0x74, 0xe3, 0xb9, 0x93, 0xe7, 0x2d, 0x7a, 0xd8, 0xc9, 0xe2, 0x80,
		0x60, 0x26, 0x60, 0x26, 0x60, 0x26, 0x60, 0x26, 0x60, 0x26, 0x60, 0x26, 0x60, 0x26, 0x60, 0x26,
		0x60, 0x26, 0x60, 0x26, 0x60, 0x26, 0x60, 0x26, 0x49, 0x98, 0xc9, 0x98, 0x3b, 0xfa, 0x13, 0x3c,
		0xd6, 0x06, 0x05, 0x43, 0x01, 0x43, 0x01, 0x43, 0x01, 0x43, 0x01, 0x43, 0x01, 0x43, 0x01, 0x43,
		0x01, 0x43, 0x41, 0xef, 0xfd, 0x67, 0x7a, 0xbc, 0x7f, 0x9d, 0xa1, 0xa6, 0x8b, 0x1f, 0x02, 0xad,
		0xf7, 0x4b, 0xd3, 0x7a, 0x7f, 0x79, 0x59, 0xc0, 0x43, 0x32, 0xe0, 0x21, 0xde, 0x58, 0xd4, 0xf7,
		0x1a, 0xad, 0xe6, 0x3f, 0xda, 0x48, 0xc8, 0xda, 0x88, 0x60, 0x20, 0x60, 0x20, 0x60, 0x20, 0x60,
		0x20, 0x60, 0x20, 0x60, 0x20, 0x60, 0x20, 0xc0, 0x27, 0xa9, 0xf1, 0x49, 0x16, 0xa5, 0xd9, 0x5f,
		0x18, 0x17, 0x58, 0x05, 0x58, 0x05, 0x58, 0x05, 0x58, 0x05, 0x58, 0x05, 0x58, 0x05, 0x58, 0x05,
		0x58, 0x45, 0x0a, 0xab, 0x4c, 0x4b, 0xa9, 0x8b, 0x07, 0x7d, 0x30, 0xe5, 0x69, 0x48, 0x20, 0x14,
		0x20, 0x14, 0x20, 0x14, 0x20, 0x14, 0x20, 0x14, 0x20, 0x14, 0x20, 0x94, 0xea, 0x20, 0x14, 0xdc,
		0xe7, 0x3e, 0xef, 0xbc, 0x91, 0x71, 0x5a, 0x2a, 0x40, 0xf1, 0x2c, 0xb0, 0x40, 0xc6, 0xa9, 0x41,
		0xec, 0x44, 0x6f, 0x79, 0xf6, 0x67, 0x47, 0x05, 0x47, 0x01, 0x47, 0x01, 0x47, 0x01, 0x47, 0x01,
		0x47, 0x01, 0x47, 0x01, 0x47, 0x79, 0xcf, 0x38, 0xe5, 0x43, 0x86, 0x7b, 0xb5, 0xd6, 0xe6, 0xdc,
		0x13, 0x44, 0xc8, 0x96, 0x1d, 0xab, 0x85, 0xf6, 0x2d, 0x1d, 0x11, 0x9f, 0x88, 0xdb, 0xc8, 0x03,
		0x6f, 0x78, 0x3e, 0xe5, 0x76, 0x8c, 0x21, 0xea, 0x6c, 0x86, 0x48, 0xc3, 0x8d, 0xe7, 0x7e, 0xdc,
		0xa0, 0x53, 0xfc, 0xba, 0x11, 0x0a, 0x22, 0xe8, 0xc6, 0xd4, 0x79, 0xcb, 0x00, 0x9f, 0x5a, 0x28,
		0x82, 0xb1, 0x2d, 0xf8, 0xf4, 0x18, 0x38, 0x9f, 0xcb, 0x30, 0x07, 0xc5, 0xe1, 0xf5, 0x73, 0x3f,
		0x5e, 0xcf, 0x20, 0xf4, 0x75, 0x2f, 0x12, 0xe1, 0xfa, 0x70, 0x26, 0xc2, 0x87, 0x6c, 0xd6, 0x27,
		0xc5, 0xda, 0xd4, 0x9c, 0xb1, 0xef, 0xd2, 0x87, 0xfa, 0xc8, 0x73, 0xd2, 0x1f, 0x8e, 0xf3, 0x03,
		0x71, 0x71, 0x90, 0x94, 0xfb, 0x42, 0x0e, 0x47, 0x4a, 0xe3, 0x47, 0x15, 0xdc, 0xa8, 0x8e, 0x17,
		0x55, 0x71, 0xa2, 0x36, 0x7c, 0xa8, 0x0d, 0x17, 0x6a, 0xc1, 0x83, 0xd9, 0x7a, 0x1e, 0x69, 0xdc,
		0x37, 0x5f, 0x6f, 0xca, 0xc7, 0x23, 0x1a, 0x4c, 0x9c, 0x97, 0xc4, 0xa2, 0x4f, 0xb7, 0x78, 0x73,
		0x4b, 0xe2, 0xb3, 0x1d, 0x3e, 0x1e, 0xc9, 0x6f, 0x97, 0xbe, 0xd7, 0x13, 0x01, 0xe3, 0x43, 0x35,
		0xd8, 0xdb, 0x88, 0xe6, 0xe0, 0xf8, 0xeb, 0xc9, 0x89, 0x0a, 0xdc, 0x6d, 0x46, 0x83, 0xfc, 0xd6,
		0x3e, 0x39, 0xae, 0xe5, 0x0b, 0xfa, 0xbd, 0x6e, 0xbc, 0x37, 0x15, 0xd4, 0x8f, 0x35, 0x57, 0xc2,
		0x25, 0x13, 0xbd, 0x0f, 0xac, 0x66, 0x39, 0x4f, 0xf2, 0x4c, 0xce, 0x15, 0xca, 0xc9, 0x8d, 0x4b,
		0xeb, 0x03, 0xd7, 0xbb, 0x9f, 0xe5, 0x6d, 0xc9, 0x9f, 0x2f, 0xcf, 0x0d, 0x96, 0xd2, 0x0b, 0x1c,
		0xd1, 0x01, 0x19, 0xbb, 0x42, 0x8a, 0x2d, 0xd5, 0x62, 0x00, 0x99, 0x6e, 0xe3, 0x5e, 0xe1, 0x1c,
		0xc4, 0x39, 0x58, 0xb1, 0x73, 0xf0, 0xc6, 0xf3, 0x5c, 0x4a, 0x94, 0xce, 0xc0, 0x66, 0xa6, 0x2a,
		0x6a, 0xb8, 0x60, 0xd1, 0x70, 0xb1, 0xa2, 0x21, 0xc2, 0xd4, 0xed, 0x74, 0x3a, 0xd6, 0x5e, 0xa3,
		0xf5, 0x69, 0xf3, 0xa1, 0x64, 0x61, 0x49, 0x5d, 0x97, 0x1e, 0xd9, 0x46, 0x26, 0x17, 0xe7, 0x2f,
		0xef, 0xf0, 0xe4, 0x87, 0x6c, 0x09, 0x7e, 0x36, 0xc7, 0xf5, 0x80, 0xda, 0x8a, 0x1c, 0x70, 0x3e,
		0x02, 0x0e, 0x3e, 0x1c, 0x7c, 0x15, 0x3b, 0xf8, 0x98, 0x43, 0xb9, 0x60, 0xe2, 0x31, 0xa0, 0x03,
		0x95, 0xc3, 0x4f, 0x22, 0x66, 0x5a, 0xeb, 0x4e, 0xbf, 0xfa, 0x33, 0x09, 0xa9, 0xfa, 0x0d, 0x60,
		0xf7, 0xac, 0xdf, 0xb9, 0x3c, 0x6e, 0x1f, 0x76, 0xae, 0x8f, 0x3b, 0x87, 0xb2, 0x5b, 0x27, 0x8e,
		0x0a, 0x87, 0x4a, 0xf7, 0x0e, 0x8a, 0xe7, 0xd1, 0x4c, 0x9d, 0xe3, 0xce, 0xe1, 0xf5, 0x51, 0xb7,
		0xd7, 0xfe, 0x7c, 0xd2, 0x39, 0x52, 0xf0, 0xf3, 0x1f, 0xcb, 0xa0, 0xc7, 0xf1, 0xa1, 0xe9, 0x1a,
		0x5c, 0xf6, 0xb6, 0x5b, 0x7b, 0x15, 0x50, 0x62, 0x6b, 0xab, 0x12, 0x4a, 0x5c, 0xb7, 0xfe, 0xbc,
		0x8e, 0xed, 0xfd, 0xa4, 0xd3, 0xfe, 0xd6, 0xc9, 0x1b, 0x06, 0x5d, 0x19, 0x19, 0xb5, 0xb8, 0xbd,
		0x8f, 0x13, 0x24, 0x88, 0xe3, 0x04, 0x34, 0x0c, 0xe5, 0xc1, 0xd0, 0xca, 0x38, 0x80, 0x44, 0x80,
		0x44, 0x15, 0x83, 0x44, 0xf2, 0xdb, 0x7b, 0x09, 0x12, 0x49, 0xa4, 0x3f, 0xd4, 0x2e, 0x88, 0x10,
		0x34, 0xe0, 0xd2, 0x00, 0xa4, 0xf6, 0x77, 0xa3, 0xbe, 0x4f, 0xea, 0x83, 0x76, 0xfd, 0xf8, 0xea,
		0x3f, 0xad, 0x9f, 0xbf, 0x1c, 0x2c, 0xff, 0xfe, 0xeb, 0x7f, 0xb6, 0x7f, 0xa6, 0x5f, 0xaf, 0x2b,
		0x19, 0x45, 0xce, 0x7b, 0xdd, 0x3f, 0x95, 0xb5, 0xf9, 0xf7, 0xdb, 0xea, 0xfc, 0x4f, 0xcd, 0x48,
		0x52, 0xaa, 0xc5, 0x15, 0xc3, 0x0f, 0xc3, 0x0f, 0xc3, 0x0f, 0xc3, 0x0f, 0xc3, 0x0f, 0x4b, 0xfb,
		0x61, 0x4e, 0x87, 0x9e, 0x60, 0x44, 0x50, 0xa7, 0xae, 0x25, 0x5d, 0xe4, 0x85, 0xf1, 0xe0, 0x9d,
		0xe1, 0x9d, 0x2b, 0xe6, 0x9d, 0x91, 0x39, 0x82, 0xcc, 0x11, 0x64, 0x8e, 0x48, 0x9f, 0x36, 0xbe,
		0x17, 0x88, 0x7a, 0xe8, 0x53, 0xea, 0x68, 0x39, 0x6c, 0x16, 0x86, 0xc3, 0x59, 0x83, 0xb3, 0xa6,
		0x62, 0x67, 0x4d, 0x65, 0x2e, 0xa9, 0x3a, 0xfd, 0xdf, 0x3a, 0x97, 0x67, 0x9d, 0xfe, 0x75, 0xef,
		0xa2, 0xd3, 0x39, 0x32, 0xff, 0x96, 0x2a, 0x56, 0xe3, 0xba, 0xd9, 0x68, 0x7c, 0xf9, 0x6c, 0xf2,
		0xc5, 0xc2, 0x5c, 0x8d, 0xd3, 0x4a, 0xa8, 0x51, 0x8d, 0xc5, 0xa8, 0xc4, 0x5a, 0x54, 0x61, 0x29,
		0x5a, 0xd5, 0x30, 0xef, 0xd6, 0x76, 0x35, 0xec, 0xbb, 0xb5, 0x5d, 0x85, 0xd5, 0xd8, 0xaa, 0xc6,
		0xa6, 0xda, 0xaa, 0x84, 0x16, 0xdb, 0xd5, 0xd0, 0xa2, 0x0a, 0x4a, 0xec, 0x54, 0xc3, 0x2e, 0xf6,
		0xaa, 0xa1, 0xc6, 0xd7, 0xb3, 0xdf, 0xcf, 0xce, 0xff, 0x38, 0x43, 0x86, 0x49, 0x92, 0xa9, 0xd3,
		0x11, 0xd2, 0x40, 0x1c, 0x03, 0x71, 0x0c, 0xc4, 0x31, 0x10, 0xc7, 0x40, 0x1c, 0x03, 0x71, 0x0c,
		0xc4, 0x31, 0x10, 0xc7, 0x40, 0x1c, 0x03, 0x71, 0x0c, 0xc4, 0x31, 0x10, 0xc7, 0x40, 0x1c, 0x03,
		0x71, 0x0c, 0xc4, 0x31, 0x10, 0xc7, 0xc8, 0x23, 0x8e, 0x11, 0x0a, 0xc2, 0x1d, 0xe2, 0x7a, 0x9c,
		0xd6, 0x5d, 0xc6, 0x7f, 0xd4, 0x45, 0x40, 0x18, 0x97, 0x49, 0x18, 0x9a, 0x2f, 0xc2, 0x8b, 0x23,
		0xa2, 0xd2, 0x07, 0x62, 0x30, 0x88, 0xc1, 0xe4, 0x1a, 0x83, 0xc9, 0xbf, 0xd2, 0xc7, 0x07, 0xbd,
		0x7f, 0x99, 0x70, 0xca, 0x6a, 0xed, 0xf1, 0x30, 0x5a, 0xcb, 0x38, 0x1a, 0x9b, 0xdc, 0x5d, 0x48,
		0x7a, 0xb8, 0x0d, 0xcf, 0xae, 0xb3, 0xc1, 0xc1, 0x42, 0x95, 0xc2, 0x95, 0x7f, 0xd8, 0x98, 0xec,
		0xa7, 0x83, 0x79, 0xc9, 0xc2, 0xe9, 0xef, 0x71, 0xe5, 0xc2, 0xf4, 0x7e, 0x30, 0xb4, 0x03, 0xe6,
		0x4f, 0x4b, 0x2e, 0xd6, 0xda, 0x8e, 0x13, 0x5a, 0x27, 0xed, 0x2f, 0x56, 0x48, 0x85, 0x60, 0x7c,
		0x18, 0x5a, 0xc2, 0xb3, 0x18, 0x77, 0xd8, 0x1d, 0x73, 0xc6, 0xc4, 0x9d, 0x97, 0xf9, 0xb6, 0x9e,
		0xc4, 0x93, 0x8c, 0x2e, 0x37, 0x0d, 0xf3, 0x6c, 0x2e, 0x19, 0xc2, 0xb3, 0x3d, 0xe3, 0xd9, 0xa2,
		0x79, 0x29, 0x99, 0x67, 0x3b, 0x62, 0x81, 0xdc, 0x72, 0x93, 0xe1, 0x30, 0xa0, 0x43, 0x22, 0x68,
		0x9d, 0x39, 0xea, 0x91, 0xdd, 0xa5, 0xd1, 0x24, 0x27, 0x7b, 0xc5, 0x3c, 0x7b, 0x3e, 0xb5, 0xd9,
		0xe0, 0x31, 0xae, 0xb8, 0xef, 0x7a, 0x43, 0x66, 0x13, 0xd7, 0x9a, 0x7f, 0xcd, 0x93, 0x4d, 0x46,
		0x46, 0x7b, 0x7f, 0xcb, 0xec, 0xdb, 0xef, 0x5c, 0xdc, 0xb2, 0x70, 0xe1, 0x3f, 0xdc, 0x50, 0xd7,
		0xe3, 0x43, 0xd4, 0x73, 0x57, 0xb1, 0x69, 0x5d, 0xb6, 0xad, 0xdd, 0xc6, 0xb5, 0xdb, 0xba, 0x56,
		0x9b, 0x57, 0xe3, 0x3f, 0xc5, 0xd7, 0x73, 0x77, 0x29, 0x19, 0xc8, 0xdd, 0x36, 0xad, 0x1d, 0x7d,
		0xbb, 0x0a, 0x63, 0x5c, 0xcc, 0x8b, 0x1b, 0x27, 0x80, 0x09, 0x6c, 0x70, 0x10, 0xd7, 0x21, 0x36,
		0xfd, 0x61, 0xc0, 0x07, 0x8d, 0x14, 0x4b, 0xb6, 0xc8, 0xb4, 0xb6, 0xe2, 0xd2, 0xb5, 0x54, 0x04,
		0x5a, 0x47, 0x2d, 0xe9, 0x64, 0xeb, 0xff, 0xf6, 0x2c, 0x27, 0x30, 0xc2, 0x5a, 0x78, 0xcf, 0x84,
		0x7d, 0x4b, 0x9d, 0xfa, 0x9d, 0x4b, 0x92, 0x4f, 0xf0, 0x13, 0xbf, 0x5f, 0xfa, 0x78, 0xc2, 0x15,
		0x4d, 0x07, 0x29, 0x53, 0x1f, 0x43, 0x32, 0xc7, 0xce, 0xe2, 0x31, 0x93, 0x42, 0x15, 0x95, 0x73,
		0x45, 0xf9, 0x1c, 0x51, 0x3e, 0x37, 0x56, 0xcf, 0x89, 0x58, 0xf1, 0x82, 0x38, 0x5b, 0x5a, 0x10,
		0x58, 0xb3, 0x67, 0xbb, 0x42, 0x92, 0xb7, 0x4d, 0x3f, 0xff, 0x3e, 0xd8, 0x50, 0xca, 0x2d, 0xfd,
		0x7e, 0xe8, 0x50, 0xba, 0x2d, 0x5f, 0x76, 0x3e, 0x64, 0xdb, 0x34, 0x0c, 0xd3, 0x79, 0xf2, 0x97,
		0xe9, 0xd0, 0xc2, 0x60, 0xa0, 0x1f, 0x0a, 0x46, 0x04, 0xfe, 0x21, 0x67, 0x64, 0xa6, 0x13, 0x90,
		0x48, 0x6b, 0xf9, 0x50, 0xc2, 0xa2, 0x01, 0xed, 0xa0, 0x9d, 0xd4, 0xca, 0x60, 0xf3, 0x1e, 0x46,
		0x68, 0x27, 0x25, 0xb3, 0x14, 0x59, 0xb4, 0x93, 0xda, 0x6a, 0xec, 0x6f, 0xa1, 0x7d, 0x54, 0x4e,
		0x9f, 0x36, 0xb7, 0xc5, 0xed, 0xfd, 0x2d, 0xe5, 0x65, 0xea, 0x6e, 0xfb, 0xe9, 0xd3, 0x13, 0xf1,
		0x8f, 0x2b, 0xd6, 0x58, 0xff, 0x67, 0xfd, 0xab, 0x7d, 0x78, 0xd8, 0xe9, 0xf5, 0xfe, 0x55, 0xf2,
		0x56, 0xb5, 0xf1, 0x54, 0x9a, 0xd4, 0xa5, 0xf6, 0xd5, 0xb9, 0x2e, 0x85, 0x67, 0x5c, 0x8e, 0xdf,
		0x6b, 0x5a, 0xb2, 0xd9, 0x56, 0x6b, 0xc7, 0x88, 0xda, 0xfa, 0x76, 0xd2, 0x3e, 0xb3, 0x48, 0x18,
		0xb2, 0x21, 0xa7, 0x8e, 0x25, 0xbc, 0xf8, 0x76, 0x40, 0xfa, 0x7e, 0x2e, 0xaf, 0x8d, 0xb7, 0xba,
		0xf9, 0x9c, 0x85, 0x99, 0xfa, 0xa8, 0xef, 0x1b, 0xb2, 0xda, 0x87, 0x6b, 0x7b, 0x31, 0xe1, 0x62,
		0x68, 0xf9, 0xf2, 0x9f, 0x68, 0x53, 0xa8, 0xdf, 0x76, 0x6b, 0xcb, 0xae, 0x44, 0x9d, 0xf0, 0xae,
		0x8c, 0x07, 0xce, 0x0b, 0xce, 0x0b, 0xce, 0x2b, 0xc3, 0x79, 0x23, 0xf3, 0xa9, 0x8b, 0x68, 0x4c,
		0x0d, 0x77, 0x6f, 0x0a, 0x9c, 0x42, 0xad, 0x5a, 0xda, 0xd3, 0xec, 0xe8, 0xa8, 0x9a, 0x36, 0x1f,
		0x2d, 0xae, 0x9e, 0x36, 0xc1, 0x3c, 0x3a, 0xe0, 0x65, 0x5c, 0x47, 0xad, 0x7f, 0xf9, 0xf5, 0xec,
		0x77, 0xb5, 0xa3, 0x4a, 0x11, 0x3c, 0x69, 0x28, 0xac, 0xf6, 0x64, 0x48, 0x93, 0xc9, 0xd1, 0xc2,
		0xfa, 0xa6, 0x53, 0x23, 0x5b, 0x6b, 0x4d, 0xfd, 0x00, 0xfd, 0x59, 0xe2, 0x03, 0x94, 0xc7, 0x5c,
		0x58, 0x53, 0xb8, 0x78, 0x71, 0x30, 0x1c, 0x9d, 0x38, 0x3a, 0x71, 0x74, 0xca, 0x1c, 0x9d, 0x08,
		0x17, 0xcf, 0x63, 0x94, 0x08, 0x17, 0x23, 0x5c, 0x5c, 0xb9, 0xd5, 0x40, 0xb8, 0x38, 0xe5, 0x58,
		0x46, 0x84, 0x8b, 0x63, 0x90, 0x89, 0x68, 0xb1, 0xe6, 0x08, 0xdd, 0x6b, 0x53, 0x5d, 0xfd, 0x60,
		0xf1, 0x59, 0xec, 0x79, 0x26, 0xf1, 0x49, 0x16, 0x5a, 0x77, 0xc4, 0x65, 0x8e, 0x35, 0xf0, 0x82,
		0x68, 0xb6, 0xf9, 0x0f, 0x2b, 0x9e, 0x0f, 0x04, 0x8d, 0xb3, 0xdd, 0x8e, 0x6b, 0x5b, 0x32, 0xe5,
		0xa2, 0x20, 0x78, 0x5c, 0x5a, 0xee, 0x1b, 0x2f, 0x58, 0xcc, 0x34, 0x42, 0x75, 0xee, 0xbb, 0x38,
		0x18, 0xb8, 0x2f, 0xb8, 0x2f, 0xb8, 0x6f, 0xca, 0x1d, 0x33, 0xe6, 0x6a, 0x27, 0xc2, 0x3c, 0x5a,
		0xbc, 0xaf, 0x30, 0xc6, 0x54, 0x9d, 0xd2, 0x40, 0x4d, 0xf5, 0x80, 0x80, 0xc6, 0xc0, 0x80, 0xe6,
		0x00, 0x81, 0xbe, 0xe9, 0xca, 0x24, 0x60, 0x90, 0x55, 0xe0, 0x20, 0x73, 0xca, 0x9a, 0x1d, 0x75,
		0xd5, 0x08, 0x9c, 0x33, 0x09, 0x2c, 0x64, 0x18, 0x60, 0xa8, 0xc2, 0xaa, 0x95, 0x04, 0x8a, 0x5e,
		0x15, 0x79, 0x49, 0xa5, 0xdb, 0x37, 0x07, 0xb1, 0x2b, 0xd4, 0xe7, 0x9e, 0x65, 0xfa, 0xf5, 0xad,
		0x03, 0x39, 0xc5, 0x8e, 0x77, 0x6b, 0x03, 0xfe, 0xb2, 0xd5, 0xd8, 0xff, 0xbb, 0x51, 0xdf, 0xba,
		0xfa, 0xef, 0x56, 0xe3, 0xef, 0x46, 0x7d, 0xef, 0xea, 0xef, 0x46, 0x7d, 0xff, 0xea, 0xbf, 0x7f,
		0x37, 0xeb, 0x9b, 0x93, 0x1f, 0xff, 0xb3, 0xf9, 0x33, 0xfa, 0x6d, 0x7f, 0xfa, 0x5b, 0xf3, 0x63,
		0x6b, 0xfa, 0xfb, 0xaf, 0xdf, 0xbf, 0x7f, 0xfa, 0xfe, 0xfd, 0x93, 0xc2, 0x00, 0xea, 0x0c, 0xea,
		0x4a, 0xc7, 0x94, 0xea, 0xe8, 0x24, 0xb8, 0x36, 0xea, 0xbf, 0x8b, 0x9c, 0xd8, 0xff, 0xa9, 0x15,
		0x6d, 0xca, 0x86, 0xc4, 0x32, 0x4f, 0x58, 0x28, 0xda, 0x42, 0x04, 0x6a, 0x38, 0xf7, 0x94, 0xf1,
		0x8e, 0x4b, 0x23, 0x98, 0xaf, 0x78, 0x6a, 0x44, 0x47, 0xe6, 0xc2, 0x48, 0xcd, 0xbd, 0xad, 0xad,
		0x9d, 0xdd, 0xad, 0xad, 0xc6, 0xee, 0xe6, 0x6e, 0x63, 0x7f, 0x7b, 0xbb, 0xb9, 0x23, 0x53, 0x21,
		0x77, 0x3e, 0xf8, 0x79, 0xe0, 0xd0, 0x80, 0x3a, 0x9f, 0x1f, 0x6b, 0x07, 0x16, 0x1f, 0xbb, 0xae,
		0x8e, 0xa1, 0xbe, 0x86, 0x34, 0x50, 0x3a, 0xce, 0x10, 0x85, 0x5e, 0x3f, 0x7e, 0x10, 0x85, 0x46,
		0x14, 0x7a, 0x26, 0x6c, 0xb6, 0x29, 0xcb, 0xae, 0xeb, 0xdd, 0x53, 0x27, 0x8e, 0x78, 0x86, 0xd6,
		0x88, 0x3c, 0x5a, 0x37, 0xd4, 0x0a, 0xe3, 0xaa, 0x26, 0x8c, 0xae, 0x86, 0x3e, 0xbf, 0xf3, 0xa7,
		0xd8, 0xe7, 0x27, 0x44, 0xa4, 0xf3, 0x49, 0x63, 0x96, 0x5f, 0x20, 0x44, 0xa7, 0x73, 0xf9, 0xbe,
		0x6c, 0xdf, 0x0a, 0x4b, 0x16, 0xc7, 0x98, 0x7f, 0x5e, 0x47, 0x91, 0x8c, 0xc5, 0x12, 0x10, 0x1b,
		0x52, 0xcf, 0xea, 0x2d, 0x3d, 0xb5, 0x33, 0xa6, 0x82, 0x7c, 0x73, 0x09, 0xbf, 0x9e, 0x46, 0xc4,
		0xcb, 0x51, 0x54, 0x53, 0x50, 0xa5, 0x0a, 0x9a, 0x82, 0xe6, 0x5d, 0xa6, 0xa0, 0x85, 0x32, 0x05,
		0x85, 0xfa, 0x7d, 0x94, 0x29, 0x48, 0xba, 0x6b, 0x50, 0xa6, 0xc0, 0xc2, 0xdd, 0x9b, 0x06, 0x20,
		0x85, 0xbc, 0x53, 0xe4, 0x9d, 0x22, 0xef, 0x14, 0x79, 0xa7, 0xd5, 0x5c, 0x0d, 0xe4, 0x9d, 0x56,
		0x31, 0xe2, 0x87, 0x32, 0x05, 0x28, 0x53, 0x80, 0x32, 0x05, 0xd5, 0x8e, 0xef, 0xa1, 0x4c, 0x41,
		0x99, 0x62, 0x79, 0x28, 0x53, 0x00, 0xce, 0x0b, 0xce, 0x5b, 0x0d, 0xce, 0x8b, 0x32, 0x05, 0xaf,
		0x8c, 0x86, 0x32, 0x05, 0x6f, 0x1a, 0x12, 0xca, 0x14, 0xa0, 0x4c, 0x01, 0x8e, 0x4e, 0x1c, 0x9d,
		0xef, 0xf0, 0xe8, 0x44, 0xb8, 0x78, 0x1e, 0xa3, 0x44, 0xb8, 0x18, 0xe1, 0xe2, 0xca, 0xad, 0x06,
		0xc2, 0xc5, 0x29, 0xc7, 0x42, 0x82, 0xa8, 0xae, 0xb3, 0x1f, 0x09, 0xa2, 0xba, 0xfd, 0x22, 0xca,
		0x14, 0xa4, 0xdd, 0x83, 0x28, 0x53, 0x90, 0xf7, 0x99, 0x61, 0x21, 0x78, 0xfc, 0xec, 0xaa, 0xa2,
		0x4c, 0x01, 0xb8, 0x2f, 0xb8, 0x6f, 0x59, 0xb8, 0x2f, 0xca, 0x14, 0x64, 0x12, 0x10, 0xd0, 0x18,
		0x18, 0xd0, 0x1c, 0x20, 0xd0, 0x37, 0x5d, 0x99, 0x04, 0x0c, 0xb2, 0x0a, 0x1c, 0x64, 0x4e, 0x59,
		0xb3, 0xa3, 0xae, 0x1a, 0x81, 0x73, 0x26, 0x81, 0x85, 0x0c, 0x03, 0x0c, 0x55, 0x58, 0x35, 0x94,
		0x29, 0x40, 0x99, 0x02, 0xb9, 0x01, 0x51, 0xa6, 0x00, 0x65, 0x0a, 0x32, 0x30, 0x65, 0x94, 0x29,
		0x90, 0x3d, 0x32, 0x51, 0xa6, 0x20, 0x91, 0x04, 0x88, 0x42, 0x97, 0x25, 0x0a, 0x88, 0x28, 0x74,
		0x86, 0x60, 0x1a, 0x65, 0x0a, 0x94, 0xf6, 0x23, 0xca, 0x14, 0x14, 0x4d, 0x09, 0x50, 0xa6, 0x40,
		0xc1, 0x23, 0x94, 0xaf, 0x4c, 0x81, 0xcc, 0xab, 0x7a, 0x4b, 0x7f, 0x95, 0x82, 0x5e, 0x2c, 0x46,
		0x56, 0x45, 0x0a, 0x3e, 0x68, 0x5c, 0x4a, 0xd9, 0x25, 0xd4, 0xbe, 0x74, 0xb5, 0x54, 0xa5, 0x17,
		0x34, 0x2e, 0x56, 0xb2, 0x65, 0x7a, 0x7b, 0xd2, 0x5f, 0xff, 0x8b, 0x37, 0x96, 0xa3, 0xd6, 0x1e,
		0x0f, 0x23, 0xa7, 0x4a, 0x9d, 0x44, 0x40, 0x2f, 0xd9, 0x3a, 0xcd, 0xcf, 0xd1, 0x0d, 0xcf, 0xae,
		0xb3, 0xc1, 0xc1, 0xc2, 0x6a, 0xac, 0xfc, 0x43, 0xf4, 0x3b, 0x15, 0xb7, 0x07, 0xb3, 0xa5, 0x49,
		0xb8, 0x18, 0x2b, 0xa7, 0x7f, 0xad, 0xed, 0x38, 0xd3, 0x37, 0x2d, 0x21, 0x15, 0x82, 0xf1, 0x61,
		0x68, 0x09, 0xcf, 0x62, 0xdc, 0x61, 0x77, 0xcc, 0x19, 0x13, 0xd7, 0x9a, 0x2d, 0x40, 0xfa, 0xbb,
		0xe3, 0x94, 0xa5, 0x2f, 0x52, 0x5f, 0x49, 0xc9, 0x5c, 0x41, 0x29, 0x5c, 0x39, 0xc9, 0x02, 0x0b,
		0xe5, 0x2b, 0x25, 0x65, 0x6c, 0xa0, 0x76, 0x65, 0xa4, 0xd7, 0x77, 0xa5, 0x2d, 0x55, 0x51, 0x5b,
		0xf6, 0x38, 0xf2, 0xb5, 0x5b, 0x24, 0x1d, 0xd7, 0x73, 0x36, 0xd3, 0xe1, 0xb6, 0xeb, 0x85, 0x8c,
		0x0f, 0x2d, 0xdb, 0xe3, 0x82, 0x30, 0x4e, 0x83, 0x18, 0x37, 0x4d, 0x6e, 0xf9, 0xe7, 0xd8, 0x7f,
		0x0a, 0xaa, 0xec, 0xef, 0xdc, 0x21, 0x82, 0x58, 0x1e, 0x7f, 0xce, 0x96, 0x3e, 0x59, 0x56, 0xff,
		0x96, 0x86, 0xd4, 0x22, 0x01, 0x8d, 0x07, 0x09, 0x05, 0xe1, 0x0e, 0x09, 0x9c, 0xef, 0xfc, 0xa4,
		0xf5, 0xd1, 0x9a, 0x8b, 0x1d, 0x8a, 0x47, 0x77, 0x92, 0x47, 0x90, 0x1a, 0x29, 0x2b, 0x97, 0xa0,
		0x69, 0xa0, 0x04, 0x4d, 0xa1, 0x98, 0xbe, 0x90, 0x12, 0x34, 0xba, 0xfd, 0x83, 0xe2, 0x61, 0xfc,
		0x46, 0x58, 0x56, 0x26, 0x78, 0x93, 0x2e, 0x48, 0x23, 0x77, 0xc6, 0xb0, 0xc1, 0xc1, 0x04, 0xe7,
		0x4c, 0x8f, 0x6f, 0xf1, 0xe8, 0xc7, 0xf1, 0x00, 0x46, 0x38, 0x61, 0x03, 0x31, 0x3f, 0xbd, 0x0f,
		0xc3, 0x11, 0xb1, 0x9d, 0x7f, 0x59, 0x5e, 0x60, 0x25, 0xf8, 0x14, 0xa3, 0x94, 0xee, 0x35, 0x5a,
		0x9b, 0xc4, 0x39, 0x21, 0xc3, 0x7f, 0xe5, 0x7c, 0x86, 0x49, 0x04, 0x64, 0xb4, 0x9f, 0x60, 0xb9,
		0x4c, 0x6b, 0x26, 0x25, 0xc8, 0x54, 0x82, 0x2f, 0x4f, 0x41, 0x16, 0xc7, 0x61, 0xd1, 0x08, 0xc4,
		0x7d, 0x3a, 0x49, 0xac, 0x89, 0x6a, 0xe3, 0x20, 0x26, 0x06, 0x96, 0x4f, 0x02, 0x32, 0xa2, 0x82,
		0x06, 0xa1, 0x15, 0x2d, 0xd8, 0x77, 0xbe, 0xf4, 0x4c, 0xd9, 0x8a, 0x55, 0x67, 0xe1, 0xfc, 0x44,
		0xfa, 0x18, 0x4d, 0xd1, 0xf2, 0x9f, 0xb0, 0xd0, 0x22, 0xdc, 0x22, 0xc3, 0x61, 0x40, 0x87, 0x44,
		0x2c, 0x86, 0x02, 0x52, 0x1f, 0x40, 0x0a, 0x1e, 0x59, 0x5f, 0xe8, 0x45, 0x8b, 0x3b, 0x5e, 0x0e,
		0xa5, 0x14, 0xbd, 0x0c, 0x25, 0xf7, 0xe8, 0x57, 0x6a, 0xf4, 0x2a, 0x1d, 0xcb, 0xd5, 0xc0, 0x6e,
		0x13, 0x6c, 0x2a, 0x65, 0x1e, 0xfb, 0xfa, 0x9a, 0xbd, 0x3c, 0xa7, 0xaf, 0xcc, 0x56, 0xed, 0xd6,
		0x73, 0x9d, 0xba, 0x60, 0xa3, 0xb7, 0x2d, 0x6c, 0xee, 0x41, 0x9e, 0x3e, 0xf2, 0xc6, 0x2a, 0x24,
		0xc3, 0x8e, 0x89, 0xb1, 0x62, 0x1a, 0x6c, 0xb8, 0x7c, 0x8e, 0x26, 0x59, 0x9c, 0x94, 0x7e, 0x46,
		0x1a, 0xe9, 0x49, 0xbb, 0x92, 0xf5, 0x73, 0xac, 0x96, 0x71, 0x90, 0x22, 0x29, 0xdf, 0xaa, 0xd9,
		0xb3, 0x15, 0x4c, 0x19, 0xa8, 0x48, 0x55, 0x65, 0xb4, 0xec, 0x21, 0x81, 0x44, 0xdb, 0xac, 0x7a,
		0x01, 0x81, 0x24, 0xdb, 0xb0, 0x24, 0xe1, 0x00, 0xc7, 0xbb, 0x57, 0x00, 0x4e, 0xf1, 0xa7, 0x53,
		0x93, 0xff, 0x01, 0x19, 0xbb, 0x42, 0xea, 0x36, 0xb7, 0xd6, 0x48, 0x77, 0x46, 0x5f, 0xc9, 0x31,
		0xfb, 0x86, 0x61, 0xcc, 0x3e, 0x95, 0x99, 0xbd, 0x1f, 0x5e, 0x9f, 0xc6, 0x0c, 0xf3, 0xb9, 0x2c,
		0x92, 0x4e, 0xd8, 0x7e, 0x4a, 0xd4, 0x66, 0x5c, 0x6c, 0xb6, 0x64, 0x96, 0x7b, 0xba, 0xb7, 0x77,
		0x25, 0x3e, 0xaa, 0x96, 0x72, 0xac, 0x96, 0xb6, 0xa3, 0xfe, 0x04, 0x61, 0x96, 0x8f, 0xaa, 0x98,
		0x2b, 0xaa, 0x3d, 0xf9, 0x54, 0x5f, 0xb2, 0xe9, 0x4f, 0xb5, 0x7c, 0x26, 0x7d, 0x53, 0xbc, 0xd5,
		0xda, 0xdf, 0xda, 0xdf, 0xd9, 0x6d, 0xed, 0x6f, 0x57, 0x77, 0xae, 0x73, 0xba, 0xb5, 0xbe, 0x2a,
		0x41, 0x7d, 0xf7, 0xb1, 0x2f, 0x0f, 0x0d, 0xc6, 0x3e, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
		0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x41, 0xf9, 0x81, 0x81, 0xd6, 0x40, 0x44, 0xe7, 0x21, 0x5e,
		0x9d, 0xe4, 0x8e, 0x41, 0x3e, 0xe6, 0xe3, 0xd9, 0x75, 0xfa, 0x20, 0x0e, 0x04, 0x75, 0xe9, 0x88,
		0x8a, 0xe0, 0xb1, 0xee, 0xf1, 0xba, 0x7d, 0x2b, 0xf1, 0x34, 0x68, 0xe5, 0xbc, 0x89, 0xb7, 0x83,
		0x42, 0x20, 0x48, 0x77, 0x0c, 0xe8, 0xaa, 0xb4, 0xe9, 0x6c, 0xf3, 0xe8, 0x77, 0xfa, 0x1e, 0x49,
		0xd2, 0x17, 0x00, 0xbf, 0x79, 0xae, 0xd3, 0x67, 0x23, 0x9a, 0xaa, 0x1d, 0x52, 0x82, 0x5b, 0xf3,
		0x44, 0x77, 0x16, 0x69, 0xda, 0x1e, 0x49, 0xb5, 0x3b, 0x92, 0x0e, 0xec, 0xb6, 0x10, 0xd8, 0xd5,
		0x08, 0x20, 0x11, 0xd8, 0x05, 0x7f, 0x03, 0x7f, 0x03, 0x7f, 0x03, 0x7f, 0x03, 0x7f, 0x03, 0x7f,
		0x03, 0x7f, 0x2b, 0x35, 0x7f, 0x43, 0x60, 0x17, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00,
		0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x20, 0x9b, 0x40, 0x44, 0x91, 0xd1, 0xc5, 0xb4, 0x4f, 0x9b, 0xd5,
		0x83, 0x8b, 0x29, 0x5e, 0x31, 0x67, 0xfd, 0x3c, 0xb6, 0x8c, 0x2f, 0x72, 0x3e, 0x6d, 0xf8, 0x94,
		0x13, 0x57, 0x3c, 0xd6, 0x6f, 0x48, 0x48, 0x9d, 0x3a, 0x61, 0xd4, 0x99, 0xc6, 0x80, 0x37, 0xc2,
		0xb1, 0xef, 0x07, 0x34, 0x0c, 0xeb, 0xe2, 0x36, 0xa0, 0x61, 0xb4, 0x88, 0xd6, 0xff, 0x59, 0x8d,
		0xef, 0xdc, 0x0b, 0xac, 0xd7, 0x3e, 0x16, 0xd0, 0x71, 0x48, 0x53, 0x7e, 0x66, 0xe0, 0x12, 0xbf,
		0x3e, 0xfd, 0xcf, 0xd1, 0x07, 0xde, 0xdb, 0x0b, 0x9e, 0xb2, 0x2e, 0x43, 0x79, 0x5f, 0xfc, 0x44,
		0x06, 0x6e, 0x45, 0x3e, 0xc5, 0x22, 0xdc, 0xb1, 0xd6, 0x55, 0x8a, 0x9f, 0x8f, 0x8a, 0x7b, 0xcf,
		0x22, 0xee, 0xd0, 0x0b, 0x98, 0xb8, 0x1d, 0xc5, 0xef, 0xb8, 0x67, 0x93, 0xf9, 0x9d, 0xbb, 0x8c,
		0xff, 0xb0, 0x44, 0x40, 0x78, 0x18, 0x3f, 0x59, 0x09, 0xe3, 0x71, 0x46, 0xe3, 0x50, 0x58, 0x37,
		0xd4, 0x1a, 0x8d, 0xc5, 0x98, 0xb8, 0xee, 0xa3, 0x45, 0x1f, 0x6c, 0x77, 0x1c, 0xb2, 0x3b, 0x3c,
		0xf1, 0x99, 0xee, 0xd4, 0xfc, 0xe7, 0x1d, 0x6f, 0x7a, 0xf4, 0x1e, 0xc2, 0x59, 0x3e, 0xea, 0x99,
		0x1d, 0xbb, 0x59, 0x3c, 0xea, 0x99, 0x4a, 0x93, 0xf0, 0x3d, 0x4f, 0xfc, 0xd7, 0xc9, 0x9e, 0xf2,
		0x34, 0xf0, 0x94, 0x47, 0x87, 0xcb, 0xc8, 0xff, 0x29, 0x4f, 0x62, 0x6a, 0x3e, 0x9f, 0x6d, 0x97,
		0x92, 0x41, 0x40, 0x13, 0xcd, 0xf7, 0xec, 0xfe, 0x36, 0x01, 0xf9, 0xae, 0x5d, 0x4c, 0xed, 0xf1,
		0xd3, 0xa7, 0xd9, 0x49, 0x1a, 0x6f, 0xbf, 0x0c, 0x8c, 0x60, 0xdd, 0xe1, 0x26, 0x37, 0x89, 0x67,
		0x3e, 0x8b, 0xb7, 0x6e, 0x78, 0xeb, 0x86, 0xb7, 0x6e, 0x48, 0x89, 0x28, 0x26, 0x12, 0x91, 0x3e,
		0x25, 0x82, 0xda, 0xe4, 0xb1, 0x7e, 0x4b, 0xdc, 0x41, 0xdd, 0x65, 0x03, 0xaa, 0x90, 0x1d, 0xb1,
		0x32, 0x10, 0xee, 0x43, 0x70, 0x1f, 0x82, 0xfb, 0x10, 0xdc, 0x87, 0xe0, 0x3e, 0x04, 0xf7, 0x21,
		0xb8, 0x0f, 0x29, 0xfd, 0x7d, 0x48, 0x0a, 0x98, 0xb6, 0x18, 0xd2, 0x94, 0xc7, 0x0b, 0x4b, 0xa3,
		0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x54, 0x09,
		0x2c, 0x8c, 0xc8, 0x43, 0xfd, 0xe9, 0xba, 0x35, 0x49, 0xfd, 0xb0, 0x17, 0xfd, 0xd6, 0xfa, 0x50,
		0x80, 0x0d, 0x80, 0x0d, 0x80, 0x0d, 0x80, 0x0d, 0x80, 0x0d, 0x80, 0x0d, 0x80, 0x0d, 0x55, 0x82,
		0x0d, 0x2b, 0xa9, 0x56, 0xf2, 0xa0, 0x61, 0x75, 0x20, 0x40, 0x06, 0x40, 0x06, 0x40, 0x06, 0x40,
		0x06, 0x40, 0x06, 0x40, 0x06, 0x40, 0x86, 0x2a, 0x41, 0x86, 0xf5, 0xa4, 0x6e, 0x85, 0x4e, 0x3e,
		0xeb, 0x63, 0x01, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38,
		0x94, 0x1e, 0x38, 0x18, 0xfe, 0xbe, 0xf3, 0xc5, 0x07, 0x65, 0x79, 0xbc, 0xf4, 0xbc, 0x98, 0x7c,
		0xf9, 0xe7, 0xe8, 0xbb, 0xdb, 0x8c, 0x3a, 0x28, 0x27, 0x87, 0x72, 0x72, 0x99, 0xc1, 0x1a, 0xe4,
		0x4e, 0x23, 0x77, 0x1a, 0x5c, 0x03, 0x5c, 0x03, 0x5c, 0x03, 0x5c, 0x03, 0x5c, 0x03, 0x5c, 0xa3,
		0xda, 0x41, 0x4a, 0xe4, 0x4e, 0x03, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00,
		0x2c, 0x00, 0x2c, 0xbc, 0x3a, 0x69, 0xc8, 0x9d, 0x06, 0x6c, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x6c,
		0x00, 0x6c, 0x00, 0x6c, 0x00, 0x6c, 0x48, 0x38, 0x69, 0xc8, 0x9d, 0x06, 0x64, 0x00, 0x64, 0x00,
		0x64, 0x00, 0x64, 0x00, 0x64, 0x00, 0x64, 0x00, 0x64, 0x48, 0x30, 0x69, 0xc8, 0x9d, 0x06, 0x70,
		0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x40, 0xee, 0xb4, 0xbe, 0x1d, 0x55,
		0x8e, 0xdc, 0xe9, 0xdc, 0x9a, 0xe4, 0xac, 0xa5, 0x4e, 0x97, 0xa8, 0x59, 0x4e, 0x7e, 0x8d, 0x11,
		0x52, 0x97, 0x45, 0xd7, 0x3a, 0xe7, 0x59, 0x14, 0x89, 0x0f, 0xbc, 0xb1, 0xa0, 0x4e, 0xfd, 0xce,
		0x25, 0x3c, 0x79, 0x75, 0xf8, 0xc5, 0x0f, 0x99, 0x51, 0x16, 0x3e, 0x81, 0xa8, 0x96, 0x91, 0x85,
		0xe1, 0x63, 0xc5, 0x50, 0x1a, 0x5e, 0x23, 0x43, 0x51, 0x7d, 0xde, 0x90, 0x70, 0xab, 0xa9, 0x72,
		0x91, 0xf2, 0x3d, 0x70, 0x48, 0xb6, 0x15, 0xb3, 0x39, 0x8c, 0x53, 0x3f, 0x71, 0x48, 0xe4, 0xf0,
		0x5e, 0x5c, 0xe6, 0x94, 0x6b, 0x6c, 0x32, 0xc1, 0x96, 0x50, 0xf5, 0x7d, 0x50, 0xec, 0x74, 0xdb,
		0xdd, 0x18, 0x92, 0xcd, 0x25, 0xbb, 0x87, 0xcd, 0xbc, 0xf2, 0xbe, 0xc4, 0x67, 0xa7, 0x62, 0xe7,
		0xce, 0xb1, 0x17, 0x23, 0x0b, 0xcd, 0x9d, 0x9a, 0x02, 0x95, 0x9c, 0x6a, 0xbf, 0xa3, 0x30, 0x84,
		0x5a, 0xa4, 0x41, 0x7d, 0x36, 0xb4, 0x46, 0x1e, 0x74, 0x47, 0x20, 0x32, 0x63, 0xc7, 0xfa, 0x59,
		0xb2, 0x86, 0xc8, 0x84, 0xd6, 0x08, 0xc5, 0xda, 0x52, 0xec, 0x6c, 0x6f, 0x6f, 0x6e, 0xbf, 0xbf,
		0xe5, 0xf8, 0x50, 0xcc, 0xa7, 0xaf, 0x3e, 0xe4, 0xb8, 0x79, 0x34, 0xf8, 0xc2, 0x50, 0x04, 0x8c,
		0x0f, 0x35, 0xf8, 0xc2, 0xe6, 0x1e, 0xc2, 0x45, 0x85, 0x86, 0x8b, 0x16, 0x58, 0x7a, 0x8e, 0x6f,
		0xec, 0x2f, 0xe3, 0x6f, 0xfd, 0xe6, 0x12, 0x8e, 0xd7, 0xf5, 0x45, 0xbc, 0xae, 0x07, 0xfd, 0x04,
		0xfd, 0x04, 0xfd, 0x04, 0xfd, 0x04, 0xfd, 0x04, 0xfd, 0x04, 0xfd, 0x04, 0xfd, 0x04, 0xfd, 0x04,
		0xfd, 0x04, 0xfd, 0x04, 0xfd, 0x2c, 0x94, 0x7e, 0xe6, 0x96, 0xa6, 0xb0, 0xc0, 0x3e, 0x4b, 0x94,
		0xa0, 0x40, 0x1f, 0x44, 0x40, 0xea, 0x63, 0x1e, 0x0a, 0x72, 0xe3, 0x26, 0x6c, 0x43, 0x7f, 0x7f,
		0x4b, 0x79, 0xe2, 0xe3, 0x58, 0x82, 0x2a, 0xda, 0xe3, 0x20, 0xa0, 0x5c, 0xfc, 0xf2, 0xeb, 0x46,
		0x9c, 0x2e, 0x78, 0x30, 0x6d, 0x46, 0x3f, 0xf9, 0x45, 0x3c, 0xfa, 0xd4, 0xfa, 0x3f, 0xeb, 0x5f,
		0x8c, 0x70, 0xc2, 0x06, 0xe2, 0xc0, 0xdd, 0x64, 0x7e, 0xb4, 0x90, 0xff, 0xca, 0x99, 0x59, 0xc6,
		0x93, 0x50, 0x24, 0xaf, 0x94, 0x9c, 0xa5, 0x4c, 0x72, 0x99, 0x8f, 0x68, 0x68, 0x07, 0xcc, 0x4f,
		0x6d, 0xc3, 0x4b, 0xcb, 0xde, 0xb6, 0xa3, 0x63, 0xcd, 0x8a, 0x26, 0xd6, 0x12, 0xb7, 0xd4, 0x9a,
		0xdb, 0xab, 0xc5, 0x42, 0x8b, 0x58, 0xae, 0x37, 0x64, 0x36, 0x71, 0x17, 0xfe, 0xd9, 0x0f, 0xbc,
		0x3b, 0xe6, 0x30, 0x3e, 0xfc, 0xce, 0x4f, 0x36, 0xad, 0xc8, 0xa8, 0x19, 0x1f, 0x5a, 0x03, 0x2f,
		0xb0, 0xbe, 0x9d, 0xb4, 0xcf, 0xc2, 0xb4, 0xab, 0xa3, 0xc0, 0xcb, 0x16, 0x37, 0x86, 0xb3, 0x30,
		0x17, 0x12, 0x88, 0x5f, 0x07, 0x29, 0x5b, 0xda, 0x27, 0xda, 0xa7, 0xb5, 0xd8, 0x43, 0xe5, 0x83,
		0xda, 0xa1, 0x57, 0x9e, 0x84, 0xad, 0xe4, 0x99, 0x4a, 0x9a, 0x8e, 0x9d, 0x2c, 0x72, 0xb4, 0x92,
		0x45, 0x35, 0x53, 0x45, 0x33, 0x53, 0xe7, 0x65, 0xb5, 0xb2, 0xc9, 0xcb, 0x4a, 0x94, 0xbe, 0x6f,
		0x5e, 0x56, 0x56, 0x92, 0xf4, 0xfb, 0x9c, 0x72, 0xb2, 0x88, 0x33, 0x62, 0xbc, 0x1e, 0xed, 0x89,
		0x71, 0x98, 0x3e, 0x32, 0xbe, 0xf4, 0xe9, 0x74, 0x01, 0xf2, 0x46, 0x49, 0xf3, 0xb3, 0x50, 0x7e,
		0x36, 0x67, 0xea, 0x71, 0x4a, 0xb8, 0x43, 0x84, 0x17, 0x3c, 0xa6, 0xb8, 0x35, 0x49, 0x1d, 0x49,
		0x9c, 0xaf, 0x30, 0xe5, 0xe3, 0x11, 0x0d, 0x48, 0x4a, 0x64, 0x30, 0xf7, 0x87, 0x5b, 0x29, 0x3e,
		0xd3, 0xe1, 0xe3, 0x51, 0xfa, 0x9d, 0xd1, 0xf7, 0x7a, 0x13, 0x8e, 0x2b, 0x85, 0x81, 0x1a, 0x91,
		0x8e, 0x5f, 0x2f, 0x64, 0x40, 0x4f, 0x33, 0xfa, 0xe8, 0xd1, 0xf9, 0x1f, 0x67, 0x32, 0x1f, 0x6e,
		0x45, 0x1f, 0xee, 0x77, 0x7a, 0xfd, 0xee, 0xd9, 0x97, 0x5a, 0xb6, 0x41, 0x64, 0xaf, 0x1b, 0x6f,
		0x5a, 0x89, 0xc9, 0x89, 0x95, 0x4b, 0xbc, 0xc9, 0x96, 0xbf, 0x75, 0xaa, 0x5a, 0xe2, 0x7b, 0xba,
		0xa5, 0x4f, 0x7f, 0xbd, 0x88, 0xfc, 0x97, 0x11, 0x81, 0x80, 0xce, 0x43, 0x1c, 0x28, 0x4b, 0x1e,
		0xe6, 0x95, 0x77, 0x7c, 0x9e, 0x5d, 0xa7, 0x0f, 0xe2, 0x40, 0x50, 0x97, 0x8e, 0xa8, 0x08, 0x1e,
		0xeb, 0x1e, 0xaf, 0xdb, 0xb7, 0x71, 0x9c, 0x59, 0xc9, 0x19, 0xc6, 0x11, 0x39, 0x05, 0x6f, 0x98,
		0x09, 0x3d, 0x53, 0x9e, 0x26, 0xcf, 0x9f, 0xba, 0x2d, 0xe2, 0x1a, 0x33, 0x3d, 0x89, 0xfe, 0x32,
		0xe1, 0x4b, 0x54, 0x99, 0x28, 0xc9, 0xfc, 0xb3, 0x01, 0x1d, 0xd0, 0x80, 0x72, 0x3b, 0xfd, 0x0d,
		0x86, 0xc2, 0x65, 0xd5, 0xe5, 0xf1, 0xa1, 0xd5, 0xda, 0xdb, 0xd9, 0x3c, 0xb0, 0xfa, 0xb7, 0xd4,
		0x7a, 0x22, 0x06, 0xd6, 0x97, 0xc0, 0x1b, 0xfb, 0xd6, 0x69, 0xf7, 0xb3, 0x55, 0xb7, 0xd8, 0xa0,
		0x1d, 0x61, 0xa8, 0x5e, 0x1a, 0x08, 0xa5, 0x8b, 0x31, 0xaf, 0xee, 0xb4, 0xa7, 0x59, 0x2a, 0xd3,
		0x65, 0xa6, 0xc4, 0x34, 0x66, 0x7d, 0xef, 0xf9, 0x41, 0x6f, 0xf0, 0x57, 0x4f, 0x72, 0x8b, 0xed,
		0x8d, 0xa3, 0xb9, 0x09, 0x65, 0xde, 0x57, 0x4c, 0x3f, 0x59, 0x8d, 0x17, 0x16, 0x40, 0xf0, 0x39,
		0x63, 0x86, 0xd4, 0xe9, 0x2d, 0x36, 0x09, 0x02, 0x46, 0x83, 0xba, 0x08, 0x08, 0x0f, 0x59, 0x74,
		0xa8, 0x85, 0xf2, 0x21, 0xcb, 0xe7, 0x06, 0x43, 0x71, 0x83, 0x5c, 0x0e, 0x0c, 0x14, 0x37, 0xb0,
		0xb2, 0xa1, 0xab, 0x2f, 0xb9, 0xe8, 0x9d, 0x2d, 0x85, 0xe4, 0x97, 0x3d, 0xd4, 0x37, 0x90, 0x1c,
		0x07, 0xf5, 0x0d, 0xde, 0x9c, 0xe2, 0xe6, 0xde, 0xd6, 0xd6, 0xce, 0xee, 0xd6, 0x56, 0x63, 0x77,
		0x73, 0xb7, 0xb1, 0xbf, 0xbd, 0xdd, 0xdc, 0x69, 0xa2, 0xd2, 0x81, 0xea, 0xa7, 0xae, 0x32, 0xf5,
		0x4a, 0xa9, 0xa9, 0xbe, 0x9a, 0x59, 0x67, 0x42, 0xfd, 0xf5, 0x71, 0x5c, 0x45, 0xae, 0xab, 0x60,
		0x90, 0xda, 0xa6, 0x53, 0x3e, 0x44, 0x50, 0xbe, 0x69, 0xfc, 0x90, 0x8d, 0x9d, 0xa4, 0xb9, 0x50,
		0x67, 0xbc, 0x7e, 0x13, 0x78, 0xc4, 0xb1, 0x49, 0x28, 0xea, 0xfe, 0x0f, 0xa1, 0x80, 0x51, 0xd7,
		0x87, 0x02, 0x42, 0x05, 0x42, 0x05, 0x42, 0x05, 0x42, 0x05, 0x42, 0x05, 0x42, 0x05, 0x42, 0x7d,
		0x61, 0x3a, 0x14, 0x42, 0xfe, 0xf3, 0x31, 0xe4, 0x43, 0xff, 0x1a, 0x7c, 0x44, 0xca, 0xab, 0x80,
		0xdf, 0x0e, 0xbb, 0xfc, 0xf3, 0x0c, 0x27, 0x5c, 0xfc, 0x10, 0xe1, 0xa7, 0xef, 0x3c, 0xfa, 0xe8,
		0x56, 0x6b, 0x7f, 0xf3, 0xc0, 0x3a, 0x25, 0x9c, 0x0c, 0x69, 0x74, 0x8c, 0x58, 0x5d, 0x3e, 0xf0,
		0x82, 0x51, 0x8c, 0xf5, 0xac, 0xcf, 0x24, 0xa4, 0x71, 0x66, 0x98, 0xb8, 0xa5, 0xdf, 0x79, 0x3c,
		0x36, 0xa7, 0xc2, 0xba, 0x08, 0x3c, 0xe1, 0xd9, 0x9e, 0x6b, 0xfd, 0xd2, 0xbd, 0xf8, 0xf5, 0x93,
		0x4a, 0xc6, 0xb4, 0xe2, 0x71, 0xfc, 0xdc, 0xb1, 0xac, 0x7a, 0xd3, 0xa0, 0xfd, 0x84, 0x7e, 0xf6,
		0xa4, 0x2e, 0x7e, 0xd5, 0x50, 0xc4, 0x37, 0x19, 0x4e, 0x77, 0x58, 0x68, 0x93, 0xc0, 0x51, 0x43,
		0xe8, 0xf3, 0x41, 0x80, 0xcd, 0x81, 0xcd, 0x81, 0xcd, 0x81, 0xcd, 0x81, 0xcd, 0x81, 0xcd, 0x81,
		0xcd, 0x81, 0xcd, 0x63, 0x94, 0xd7, 0xe5, 0x47, 0x53, 0x7c, 0x00, 0x50, 0x6e, 0x00, 0x28, 0xcf,
		0x62, 0xb9, 0x80, 0xc6, 0x93, 0xa1, 0x71, 0x1a, 0x04, 0x5e, 0xa0, 0x86, 0xc5, 0xa7, 0x43, 0x00,
		0x89, 0x03, 0x89, 0x03, 0x89, 0x03, 0x89, 0x03, 0x89, 0x03, 0x89, 0x03, 0x89, 0x03, 0x89, 0x4f,
		0xa1, 0x5d, 0x27, 0x46, 0x07, 0xc0, 0xe1, 0x46, 0xe0, 0x70, 0xdd, 0x8b, 0x05, 0x14, 0x9e, 0x0c,
		0x85, 0x0f, 0xec, 0x50, 0x07, 0x12, 0x5f, 0x18, 0x06, 0x68, 0x1c, 0x68, 0x1c, 0x68, 0x1c, 0x68,
		0x1c, 0x68, 0x1c, 0x68, 0x1c, 0x68, 0xfc, 0x85, 0xe9, 0x28, 0x3e, 0xab, 0x1a, 0x69, 0xc0, 0xba,
		0xa1, 0xd4, 0x68, 0xec, 0x0a, 0xa6, 0x27, 0x0d, 0x78, 0x65, 0x28, 0x40, 0x2a, 0x40, 0x2a, 0x40,
		0x2a, 0x40, 0x2a, 0x40, 0x2a, 0x40, 0x2a, 0x40, 0x2a, 0x04, 0x38, 0xe7, 0x09, 0xa5, 0xa7, 0x33,
		0x9c, 0x80, 0x34, 0x60, 0x43, 0x22, 0x9d, 0x19, 0xae, 0x1a, 0x42, 0x9e, 0xc9, 0x70, 0xba, 0x67,
		0x0b, 0xaa, 0x88, 0xcf, 0xa7, 0x43, 0x00, 0x97, 0x03, 0x97, 0x03, 0x97, 0x03, 0x97, 0x03, 0x97,
		0x03, 0x97, 0x03, 0x97, 0x03, 0x97, 0xcf, 0x11, 0xde, 0x79, 0x8c, 0x0f, 0x00, 0xc8, 0x0d, 0x01,
		0xe4, 0xba, 0x97, 0x0b, 0x48, 0x3c, 0x19, 0x12, 0x57, 0x8e, 0x93, 0x23, 0x3a, 0x0e, 0x14, 0x0e,
		0x14, 0x0e, 0x14, 0x0e, 0x14, 0x0e, 0x14, 0x0e, 0x14, 0xfe, 0x8e, 0x50, 0x78, 0x73, 0xff, 0xc0,
		0xba, 0xa4, 0x23, 0x4f, 0x50, 0xeb, 0x8c, 0x8a, 0x7b, 0x2f, 0xf8, 0x61, 0x9d, 0x7a, 0x9c, 0x09,
		0x2f, 0x60, 0x7c, 0xf8, 0x1a, 0x78, 0x03, 0x26, 0x2f, 0x1e, 0x93, 0x97, 0x60, 0xf1, 0x80, 0xd0,
		0x93, 0x21, 0xf4, 0x31, 0xd7, 0x94, 0xd1, 0xb2, 0x34, 0x10, 0x10, 0x3b, 0x10, 0x3b, 0x10, 0x3b,
		0x10, 0x3b, 0x10, 0x3b, 0x10, 0x3b, 0x10, 0xfb, 0xfb, 0x40, 0xec, 0x89, 0x02, 0xb1, 0x5f, 0x91,
		0xcb, 0x52, 0x1e, 0x98, 0x5e, 0xd4, 0x8a, 0x01, 0x9b, 0x27, 0xc5, 0xe6, 0x3f, 0xb8, 0x77, 0xcf,
		0xeb, 0x7e, 0x34, 0x7d, 0xaa, 0xe8, 0x7c, 0x69, 0x28, 0xe0, 0x73, 0xe0, 0x73, 0xe0, 0x73, 0xe0,
		0x73, 0xe0, 0x73, 0xe0, 0x73, 0xe0, 0xf3, 0x17, 0xa6, 0x03, 0x4f, 0xf8, 0x5e, 0x3c, 0x45, 0x32,
		0x7f, 0xc2, 0x07, 0x2a, 0xf5, 0x46, 0x39, 0x8d, 0xaf, 0x13, 0x40, 0x77, 0x21, 0x83, 0xe7, 0xc0,
		0x81, 0x14, 0xa6, 0x1a, 0xe4, 0x25, 0xc1, 0x3c, 0xbb, 0x24, 0x14, 0x75, 0xdb, 0xa5, 0x24, 0x90,
		0x67, 0x2d, 0x0b, 0x63, 0x80, 0xae, 0x80, 0xae, 0x54, 0x8a, 0xae, 0x08, 0x36, 0xa2, 0x82, 0xd9,
		0x3f, 0xc2, 0xdc, 0x09, 0xcb, 0x57, 0x3e, 0xc1, 0x8a, 0x35, 0x4e, 0xb8, 0x17, 0x52, 0xdb, 0xe3,
		0x8e, 0x54, 0xbf, 0x69, 0x10, 0x1f, 0x10, 0x1f, 0x10, 0x1f, 0x10, 0x9f, 0x6c, 0x88, 0x4f, 0x15,
		0x3b, 0x42, 0x96, 0xa0, 0x86, 0x89, 0x37, 0x16, 0xda, 0x7a, 0x19, 0x3e, 0x33, 0x16, 0x60, 0x1a,
		0x60, 0x5a, 0xa5, 0x60, 0x1a, 0xa2, 0xca, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x3a, 0xbd, 0xd2,
		0xfb, 0xcb, 0xfa, 0x38, 0x1f, 0x0b, 0x74, 0x33, 0x34, 0x2d, 0xec, 0x99, 0xe5, 0xb2, 0x21, 0x84,
		0x9a, 0x10, 0xab, 0xab, 0xf7, 0x33, 0x5c, 0x1a, 0x05, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8,
		0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x3c, 0x06, 0x7a, 0xe7, 0x63, 0x81, 0x8e, 0x86,
		0x06, 0x01, 0xf3, 0x4c, 0xd6, 0x0b, 0x88, 0x3c, 0x21, 0x22, 0x57, 0xed, 0xa4, 0xb2, 0x30, 0x06,
		0xd0, 0x38, 0xd0, 0x38, 0xd0, 0x38, 0xd0, 0x38, 0xd0, 0x38, 0xd0, 0x38, 0xd0, 0x38, 0xd0, 0xf8,
		0x0c, 0xdd, 0xa1, 0xab, 0xa1, 0x49, 0x58, 0x1c, 0x6d, 0x0d, 0x0b, 0x42, 0xe2, 0xba, 0x9a, 0xf1,
		0x3c, 0x33, 0x16, 0x90, 0x39, 0x90, 0x39, 0x90, 0x39, 0x90, 0x39, 0x90, 0x39, 0x90, 0x39, 0x90,
		0x39, 0x90, 0xf9, 0x53, 0x42, 0x04, 0xda, 0xf1, 0x98, 0x06, 0xd1, 0xb3, 0x5c, 0x36, 0x60, 0xf5,
		0x84, 0x58, 0x5d, 0xb5, 0x21, 0xcf, 0xc2, 0x18, 0xc0, 0xe6, 0xc0, 0xe6, 0xc0, 0xe6, 0xc0, 0xe6,
		0xc0, 0xe6, 0xc0, 0xe6, 0xc0, 0xe6, 0xc0, 0xe6, 0x4f, 0x20, 0x0f, 0x2d, 0x79, 0xcc, 0x02, 0xe5,
		0xe8, 0xc9, 0x53, 0x10, 0x1a, 0x57, 0x8f, 0x97, 0x23, 0x4a, 0x0e, 0x24, 0x0e, 0x24, 0x0e, 0x24,
		0x0e, 0x24, 0x0e, 0x24, 0x0e, 0x24, 0xfe, 0x8e, 0x90, 0x38, 0xba, 0xf2, 0xa0, 0x2b, 0x0f, 0x30,
		0x7a, 0x0e, 0x18, 0x5d, 0x4f, 0x5b, 0x9e, 0xb5, 0x91, 0x80, 0xd9, 0x81, 0xd9, 0x81, 0xd9, 0x81,
		0xd9, 0x81, 0xd9, 0x81, 0xd9, 0x81, 0xd9, 0xdf, 0x07, 0x66, 0x4f, 0x16, 0x8d, 0x45, 0x63, 0x9e,
		0x12, 0x21, 0xf5, 0xc2, 0x96, 0x0c, 0xf8, 0x3c, 0x91, 0x6d, 0x87, 0x4a, 0xd9, 0x2c, 0xd3, 0xcf,
		0x03, 0x8b, 0x03, 0x8b, 0x03, 0x8b, 0x03, 0x8b, 0x03, 0x8b, 0x03, 0x8b, 0x03, 0x8b, 0xbf, 0x30,
		0x1d, 0x28, 0x45, 0xfd, 0xe6, 0x69, 0x22, 0x71, 0x90, 0x7c, 0x44, 0x4b, 0x23, 0xab, 0xc4, 0x15,
		0xbd, 0x3f, 0x68, 0x5c, 0xc4, 0x5a, 0x9b, 0x73, 0x4f, 0xc4, 0x33, 0x9e, 0xca, 0x91, 0xd6, 0x42,
		0xfb, 0x96, 0x8e, 0x88, 0x4f, 0xc4, 0x6d, 0x34, 0x3b, 0x1b, 0x9e, 0x4f, 0xb9, 0x1d, 0x63, 0xc9,
		0x3a, 0x9b, 0xb3, 0x92, 0x8d, 0xe7, 0x7e, 0xdc, 0x08, 0x05, 0x11, 0x74, 0x63, 0x8a, 0x06, 0xd2,
		0xe0, 0xdc, 0x5a, 0x28, 0x82, 0xb1, 0x2d, 0xf8, 0x14, 0x4f, 0x9c, 0xcf, 0xbf, 0xf2, 0x89, 0x07,
		0x5d, 0x3f, 0xf7, 0xe3, 0x75, 0x2f, 0xfa, 0xc6, 0xeb, 0xc3, 0xd9, 0x37, 0x7e, 0xd0, 0x33, 0xcb,
		0x09, 0x66, 0xb8, 0x66, 0xfb, 0xe3, 0xc4, 0xd3, 0xfa, 0x04, 0x94, 0xfc, 0x71, 0xc2, 0x59, 0x49,
		0x89, 0xfa, 0x53, 0xa3, 0x7d, 0x19, 0x94, 0x2f, 0x8d, 0xee, 0x65, 0x51, 0xbd, 0x32, 0x9a, 0x57,
		0x46, 0xf1, 0x2a, 0xe8, 0x5d, 0xaf, 0x35, 0xa7, 0x46, 0xe9, 0xf3, 0xd5, 0xba, 0xf1, 0x3c, 0x97,
		0x12, 0x9e, 0x66, 0xbd, 0xa6, 0x9b, 0xaf, 0xd9, 0xd4, 0xaa, 0x42, 0xea, 0x23, 0x5d, 0x7e, 0xb7,
		0x68, 0x3b, 0xc2, 0xd5, 0xcf, 0x1c, 0xc9, 0xb3, 0x26, 0xc5, 0x51, 0xad, 0x3c, 0x4d, 0xf2, 0x47,
		0x73, 0x71, 0xd3, 0xf3, 0x41, 0xcf, 0xd1, 0x9b, 0xc4, 0xd5, 0x3b, 0x34, 0xb4, 0x03, 0xe6, 0xa7,
		0x3a, 0x49, 0xe7, 0xd6, 0xb7, 0xf8, 0x61, 0xb8, 0x7e, 0xb8, 0xfe, 0x5c, 0x5d, 0x7f, 0x28, 0x02,
		0xc6, 0x87, 0x32, 0x9e, 0x7f, 0x4f, 0xab, 0x06, 0x0a, 0x17, 0x2b, 0x0a, 0x17, 0x2a, 0x0a, 0x11,
		0xad, 0x84, 0xd1, 0xf8, 0xb6, 0xcb, 0x48, 0x58, 0x70, 0x98, 0x53, 0xf5, 0x7a, 0x23, 0x9b, 0x48,
		0x67, 0xaa, 0x09, 0xcc, 0x3a, 0x20, 0xfa, 0x41, 0x2f, 0x55, 0xd3, 0x43, 0x20, 0x28, 0x8f, 0x6c,
		0xc1, 0x49, 0x7f, 0xa2, 0xcc, 0x3e, 0x98, 0xd0, 0xf6, 0x8e, 0xe8, 0x80, 0x8c, 0x5d, 0x91, 0xca,
		0x7a, 0x6a, 0xd1, 0x2e, 0x48, 0xb6, 0x2c, 0x57, 0x38, 0xd4, 0x70, 0xa8, 0xbd, 0x4f, 0x3e, 0x53,
		0xd9, 0x53, 0xcd, 0x19, 0x31, 0xde, 0x13, 0x44, 0x8c, 0x71, 0xb6, 0xa9, 0x9c, 0x6d, 0x0b, 0xd3,
		0xf8, 0x2e, 0x4f, 0xb8, 0x5b, 0x12, 0x38, 0xf7, 0x24, 0xa0, 0x75, 0xdf, 0x0b, 0x44, 0xfa, 0x73,
		0x6e, 0xf9, 0xe3, 0xd5, 0x38, 0x66, 0x52, 0xa8, 0x52, 0xad, 0x83, 0x26, 0x56, 0xdc, 0xb8, 0xa3,
		0xc6, 0xa5, 0x64, 0x10, 0xd0, 0x81, 0xcc, 0x51, 0xb3, 0x9b, 0xe2, 0x33, 0x17, 0xf3, 0x58, 0xbb,
		0x5d, 0xf7, 0x5d, 0x22, 0x06, 0x5e, 0x30, 0x3a, 0xb0, 0xbd, 0x91, 0xef, 0x71, 0xca, 0x45, 0xf8,
		0xfc, 0x3f, 0x2f, 0xfd, 0x6b, 0x1c, 0x39, 0xcf, 0xd1, 0xb4, 0xd9, 0x80, 0x71, 0x87, 0x3e, 0xa4,
		0x37, 0xea, 0xd9, 0x07, 0x81, 0x1a, 0x81, 0x1a, 0x73, 0x35, 0xe5, 0x31, 0xe3, 0x62, 0xb3, 0x25,
		0x61, 0xc9, 0x69, 0x0c, 0x59, 0x2e, 0x21, 0x45, 0x02, 0xd1, 0xa9, 0x24, 0xa0, 0xa8, 0x26, 0x9e,
		0x68, 0x4b, 0x7d, 0x50, 0x4f, 0x79, 0x90, 0xb8, 0xcf, 0x56, 0x4a, 0x2c, 0x99, 0x4f, 0xdd, 0x56,
		0x6b, 0x7f, 0x6b, 0x7f, 0x67, 0xb7, 0xb5, 0xbf, 0x6d, 0xfe, 0x1c, 0x16, 0x8b, 0x34, 0x71, 0x77,
		0x94, 0xd4, 0xf1, 0xe2, 0xee, 0x48, 0xd7, 0xf4, 0x68, 0x0d, 0x6c, 0x19, 0x1b, 0x05, 0xb0, 0xea,
		0x2f, 0xf2, 0x57, 0xd0, 0xfe, 0x57, 0x68, 0xff, 0x6b, 0xf3, 0xf6, 0x2e, 0x79, 0xbe, 0x4b, 0x42,
		0x31, 0xf3, 0x90, 0xa9, 0x09, 0xc1, 0xe2, 0x87, 0x41, 0x0a, 0x40, 0x0a, 0x72, 0x25, 0x05, 0x82,
		0x8d, 0xa8, 0x60, 0xf6, 0x8f, 0x30, 0x55, 0xea, 0xba, 0x44, 0xca, 0x7a, 0xed, 0x2b, 0x9f, 0xc0,
		0xbc, 0x1a, 0x27, 0xdc, 0x0b, 0xa9, 0xed, 0xf1, 0x54, 0x6d, 0x79, 0xc1, 0x2c, 0xde, 0x0b, 0xb3,
		0xd0, 0x97, 0xaa, 0x0e, 0x8e, 0x01, 0x8e, 0x01, 0x8e, 0xf1, 0x0e, 0xf2, 0xd3, 0x5c, 0x6f, 0xc8,
		0x6c, 0xe2, 0x4a, 0x60, 0xaf, 0xe9, 0x07, 0x81, 0xbb, 0x80, 0xbb, 0x72, 0xc5, 0x5d, 0x48, 0x49,
		0x86, 0xcb, 0x87, 0xcb, 0x57, 0x72, 0xf9, 0x9e, 0x7f, 0x43, 0xec, 0x1f, 0xf5, 0x91, 0xe7, 0xc8,
		0x90, 0xee, 0xa5, 0x8f, 0xc3, 0xfd, 0xc3, 0xfd, 0xe7, 0xea, 0xfe, 0x97, 0xb6, 0x5f, 0x5d, 0x44,
		0xe3, 0x48, 0x9c, 0x04, 0x5b, 0x29, 0x3e, 0xd3, 0xe1, 0xe3, 0x51, 0xfa, 0xc5, 0xee, 0x7b, 0xbd,
		0x49, 0x02, 0xb5, 0xd4, 0xeb, 0xf8, 0x46, 0xa4, 0xea, 0xd9, 0xf9, 0x59, 0x47, 0x26, 0x9a, 0xda,
		0x8c, 0x3e, 0x7c, 0xdc, 0x3e, 0xec, 0x9e, 0x74, 0xfb, 0x7f, 0xc9, 0x0c, 0xd0, 0x8a, 0x06, 0xe8,
		0x77, 0x2e, 0x4f, 0xbb, 0x67, 0xed, 0x13, 0x99, 0x01, 0x36, 0xa3, 0x01, 0xda, 0xbd, 0xee, 0xe1,
		0xf5, 0xc5, 0x6f, 0x7f, 0x5d, 0x9f, 0x9c, 0x1f, 0xca, 0x0d, 0xb3, 0xb5, 0x34, 0xcc, 0x65, 0xe7,
		0xf4, 0xbc, 0x2f, 0x35, 0x21, 0xdb, 0xf3, 0x71, 0x4e, 0xdb, 0x87, 0xf2, 0xe2, 0xec, 0x2c, 0x0d,
		0x33, 0x15, 0x27, 0xdb, 0xf2, 0x0a, 0x5e, 0x97, 0x0b, 0xb9, 0x1d, 0xb4, 0xa2, 0xee, 0x81, 0x25,
		0x11, 0x09, 0x58, 0x53, 0xf6, 0xc0, 0xda, 0x91, 0x1d, 0xe5, 0x69, 0x23, 0x1c, 0x58, 0x9b, 0x2a,
		0x83, 0xcc, 0x45, 0xd9, 0x92, 0x18, 0x65, 0x6e, 0x15, 0x07, 0x56, 0x53, 0xe2, 0xe3, 0xb1, 0x45,
		0x4a, 0xc5, 0x42, 0x9e, 0xcc, 0xe9, 0xc0, 0x6a, 0x95, 0xa0, 0x1c, 0xcd, 0x53, 0x66, 0x77, 0x5a,
		0x37, 0x13, 0x9d, 0x42, 0x4f, 0x9f, 0x8e, 0x0e, 0xa1, 0x1c, 0xaf, 0x0b, 0x46, 0xf3, 0x3a, 0x45,
		0xe9, 0x81, 0xcb, 0xc2, 0x67, 0x81, 0x5a, 0x80, 0x5a, 0x40, 0x5a, 0x41, 0x5a, 0x41, 0x5a, 0x4d,
		0x21, 0xad, 0x23, 0x21, 0x51, 0x32, 0x21, 0xfa, 0x10, 0x5c, 0x3d, 0x5c, 0x7d, 0xae, 0xae, 0x7e,
		0xcc, 0xb8, 0x68, 0xee, 0x48, 0x78, 0xfa, 0x1d, 0x5c, 0xe9, 0xae, 0xa2, 0x75, 0x5c, 0xe9, 0xee,
		0x6c, 0x6f, 0x6f, 0xe2, 0x0e, 0x57, 0xfe, 0x6c, 0xd1, 0x47, 0x3d, 0xa6, 0x05, 0x86, 0x52, 0x1e,
		0x41, 0xf1, 0xa7, 0x70, 0x06, 0xe1, 0x0c, 0xca, 0xf5, 0x0c, 0xca, 0xbc, 0x76, 0x83, 0x16, 0x8b,
		0x8a, 0x20, 0x6f, 0x3d, 0x9c, 0x3c, 0x72, 0x4c, 0x6d, 0x58, 0x8b, 0x1f, 0x86, 0x7d, 0xc1, 0xbe,
		0x24, 0xec, 0xeb, 0x94, 0x70, 0x87, 0x08, 0x2f, 0x78, 0x4c, 0x1e, 0x0d, 0x54, 0xb0, 0x49, 0xca,
		0xc7, 0xa3, 0x29, 0xc5, 0xab, 0xe2, 0x8d, 0x45, 0x7c, 0xe9, 0xf0, 0xf5, 0x42, 0xfa, 0xba, 0xe1,
		0xe8, 0xfc, 0x8f, 0x33, 0xe9, 0xab, 0x86, 0x7e, 0xa7, 0xd7, 0xef, 0x9e, 0x7d, 0x91, 0xbe, 0x63,
		0xf8, 0x7a, 0xf6, 0xfb, 0x99, 0xe4, 0xf7, 0x6f, 0x4f, 0x84, 0xbf, 0x3c, 0x6d, 0x9f, 0xf5, 0xa5,
		0x2f, 0x15, 0xce, 0xce, 0xfb, 0xd7, 0x17, 0x97, 0x9d, 0x5e, 0x47, 0x6e, 0x8c, 0xdd, 0x68, 0x8c,
		0x93, 0xf3, 0x3f, 0x3a, 0x97, 0xd7, 0x27, 0xed, 0xbf, 0x3a, 0x97, 0xd7, 0xf1, 0x64, 0x96, 0xf5,
		0x66, 0x62, 0x36, 0x59, 0x72, 0x57, 0x12, 0xb1, 0x6a, 0x07, 0x56, 0x4b, 0xe2, 0xa3, 0x6b, 0x33,
		0x94, 0xea, 0x81, 0xde, 0x93, 0x41, 0x2f, 0x2c, 0x96, 0xdc, 0x85, 0xc8, 0x6c, 0xbb, 0xca, 0xdd,
		0x84, 0xcc, 0x36, 0xab, 0xdc, 0x0d, 0xc8, 0xd7, 0x8b, 0xc8, 0x9b, 0x64, 0x75, 0x03, 0x81, 0x58,
		0x25, 0x62, 0x95, 0x26, 0xc7, 0x2a, 0xdf, 0x79, 0xf5, 0x96, 0x73, 0x9f, 0x06, 0x28, 0xde, 0xf2,
		0xe2, 0x76, 0x4b, 0x3f, 0x8b, 0xef, 0x32, 0x52, 0xe2, 0xdf, 0x3e, 0x86, 0xcc, 0x26, 0x6e, 0xec,
		0x41, 0x39, 0x95, 0x48, 0x2e, 0x5e, 0x1b, 0xa1, 0x1a, 0x0c, 0x4f, 0x04, 0x84, 0x87, 0x36, 0x65,
		0x77, 0x34, 0x78, 0x97, 0x54, 0x6f, 0x51, 0x7f, 0xd4, 0x73, 0x79, 0x61, 0x8b, 0xc9, 0xd4, 0x73,
		0xf9, 0x7b, 0xb5, 0x9e, 0xcb, 0xff, 0xd9, 0xe3, 0x20, 0xa0, 0x5c, 0xfc, 0xf2, 0xeb, 0xc6, 0xa7,
		0x4f, 0x1b, 0xcb, 0x53, 0x7f, 0xb0, 0xf0, 0xf3, 0xd5, 0x2b, 0xff, 0x6d, 0xf5, 0x3f, 0xad, 0x1a,
		0x65, 0xb8, 0xfa, 0x07, 0xd3, 0x7f, 0x5f, 0xfd, 0xe7, 0x49, 0xd1, 0x16, 0xad, 0xab, 0x78, 0xc2,
		0x42, 0xd1, 0x16, 0x22, 0x48, 0xb7, 0x92, 0xa7, 0x8c, 0x77, 0xdc, 0x38, 0x01, 0x24, 0x65, 0x30,
		0xbc, 0x76, 0x4a, 0x1e, 0x16, 0x3e, 0xa9, 0xf6, 0xcc, 0xaa, 0x76, 0x1e, 0x38, 0x34, 0xa0, 0xce,
		0xe7, 0xc7, 0xda, 0x81, 0xc5, 0xc7, 0xae, 0x2b, 0xf3, 0xd1, 0xaf, 0x21, 0x0d, 0x52, 0x45, 0xe3,
		0xf5, 0x78, 0x76, 0xe1, 0x33, 0x89, 0xa2, 0x93, 0xf1, 0xa7, 0xb2, 0xac, 0x38, 0xe9, 0xd9, 0xf5,
		0x3b, 0x97, 0xf0, 0x38, 0x1b, 0x34, 0x3c, 0xe8, 0x5f, 0x74, 0x8f, 0xae, 0x1b, 0x7f, 0xee, 0x35,
		0x1b, 0x8d, 0x77, 0x55, 0x86, 0x32, 0x9a, 0x82, 0x77, 0x79, 0xac, 0xc4, 0x8a, 0x1b, 0x77, 0x9e,
		0x30, 0x87, 0x72, 0xc1, 0xc4, 0xa3, 0xe4, 0x99, 0x92, 0xc6, 0xe3, 0x74, 0xa7, 0x5f, 0xf5, 0x99,
		0x84, 0x54, 0xbe, 0x03, 0x5d, 0x6c, 0x57, 0xfd, 0xbf, 0x2e, 0x3a, 0xbd, 0xb4, 0x0b, 0x1e, 0x5f,
		0x66, 0xe6, 0xda, 0x91, 0x67, 0x49, 0xe6, 0x34, 0xbe, 0x40, 0x21, 0x26, 0xa6, 0x51, 0xdc, 0xbd,
		0xf6, 0x9e, 0x41, 0xe2, 0xee, 0x9b, 0x35, 0xbb, 0xfb, 0x2d, 0x83, 0xc4, 0x6d, 0x9f, 0xfd, 0x65,
		0x5c, 0x8f, 0x21, 0x3d, 0x50, 0x63, 0x81, 0x2b, 0xa4, 0x47, 0x1c, 0xa9, 0x89, 0x16, 0xa8, 0x23,
		0xa8, 0x23, 0xa8, 0xe3, 0xb3, 0xd4, 0xd1, 0xf7, 0x02, 0x71, 0xb0, 0x54, 0x50, 0xf7, 0x6a, 0x69,
		0xa8, 0x70, 0x7c, 0xf3, 0xc2, 0x97, 0x2c, 0xfe, 0x97, 0x42, 0x4b, 0x8e, 0x8a, 0x34, 0x4b, 0xf7,
		0xe4, 0x45, 0x92, 0x3f, 0x2e, 0x43, 0x6e, 0x01, 0x72, 0x0b, 0x56, 0x22, 0x06, 0x79, 0xe6, 0x16,
		0x18, 0xc7, 0x25, 0xe6, 0x7d, 0xff, 0xd2, 0xbe, 0xe0, 0x2c, 0x98, 0x4f, 0x90, 0x66, 0xeb, 0xd4,
		0xf7, 0x7b, 0xf7, 0x4c, 0xd8, 0xb7, 0x26, 0x60, 0x48, 0x42, 0xdc, 0x96, 0x21, 0x72, 0x6e, 0x1b,
		0x21, 0xa7, 0x2d, 0xa8, 0xcb, 0xc2, 0x53, 0x2a, 0xc8, 0xc9, 0xf9, 0xf9, 0x85, 0x11, 0x22, 0x3b,
		0xa1, 0x6b, 0x8a, 0x9c, 0x2d, 0x63, 0x04, 0xf5, 0x5d, 0xa9, 0xdb, 0xbd, 0xfc, 0x85, 0x1d, 0xb8,
		0x84, 0xd3, 0xbd, 0x46, 0x6b, 0xd3, 0x28, 0x69, 0xcd, 0x70, 0x06, 0xee, 0xb8, 0x73, 0x72, 0x61,
		0x8a, 0xa4, 0xbe, 0xc7, 0x0d, 0x12, 0xf5, 0x64, 0x52, 0x5e, 0xea, 0x84, 0xf1, 0x1f, 0x06, 0x49,
		0x7d, 0xce, 0xc7, 0x06, 0x49, 0x7b, 0x31, 0xbd, 0xd0, 0xfb, 0xca, 0x99, 0x21, 0x52, 0x7f, 0x31,
		0x6a, 0x8e, 0xbf, 0x18, 0x38, 0xc7, 0x01, 0xf1, 0xcd, 0x90, 0xd3, 0xe6, 0x54, 0x98, 0x23, 0xe9,
		0x85, 0x29, 0x70, 0x21, 0x7c, 0xe4, 0xb6, 0x11, 0x82, 0x8a, 0x91, 0x21, 0x62, 0x1e, 0x3d, 0x30,
		0x43, 0x24, 0x3d, 0x1e, 0x73, 0x53, 0x44, 0xed, 0x8e, 0x88, 0x21, 0x92, 0x4e, 0x81, 0x8c, 0x21,
		0xd2, 0x5e, 0x12, 0x87, 0x79, 0x86, 0xc8, 0xda, 0x1b, 0xdf, 0xcc, 0x53, 0x30, 0x0d, 0x11, 0xf9,
		0x9b, 0xcd, 0x3a, 0xdc, 0xb9, 0x10, 0xa6, 0x88, 0xcb, 0x02, 0x31, 0x36, 0x66, 0xef, 0xde, 0x78,
		0xdc, 0x31, 0x42, 0xd4, 0x3b, 0x66, 0xb3, 0x73, 0x5f, 0x44, 0x6e, 0xa1, 0x23, 0x6e, 0xd3, 0x5c,
		0x68, 0x15, 0x27, 0xf4, 0x0d, 0x09, 0x99, 0xdd, 0xed, 0x1d, 0x9d, 0x19, 0x21, 0xec, 0xd0, 0xf7,
		0x3d, 0x97, 0xd9, 0x8f, 0xc4, 0xb6, 0xbd, 0x31, 0x17, 0x8c, 0x0f, 0x8d, 0x10, 0x9b, 0x09, 0x23,
		0x40, 0xe2, 0x4d, 0xc0, 0x9c, 0xa1, 0x11, 0x2e, 0xf7, 0x26, 0x34, 0x02, 0xcc, 0xda, 0xe4, 0xc6,
		0xa5, 0x47, 0xde, 0x3d, 0x0f, 0x45, 0x40, 0xc9, 0xe8, 0x72, 0x70, 0x91, 0xaa, 0xe3, 0x65, 0x91,
		0x82, 0xfb, 0xf7, 0xc4, 0x3f, 0xf2, 0x44, 0xb3, 0xf9, 0x39, 0x0c, 0x0d, 0x93, 0xf8, 0x22, 0xf0,
		0x06, 0xcc, 0xa5, 0xe6, 0x48, 0xfd, 0x87, 0xf0, 0xa7, 0x27, 0xb2, 0x31, 0x30, 0xcd, 0xbe, 0x71,
		0xbf, 0x51, 0x5b, 0x90, 0x9e, 0x20, 0x46, 0x1c, 0x73, 0xb6, 0x2d, 0x3a, 0xa3, 0xb1, 0x11, 0x88,
		0xc7, 0xa6, 0x66, 0x18, 0xdc, 0xf4, 0x05, 0x8f, 0x09, 0xa2, 0xb2, 0xd0, 0xf6, 0xba, 0xbd, 0x93,
		0x74, 0xf9, 0xc4, 0x05, 0xca, 0xcb, 0xcd, 0xb0, 0x29, 0x6f, 0x30, 0xa0, 0x66, 0xb8, 0x59, 0x6f,
		0xe4, 0x7b, 0x21, 0x13, 0xd4, 0x94, 0x6b, 0x07, 0xc7, 0x36, 0x62, 0xa3, 0x3a, 0x0e, 0xff, 0xd3,
		0x8c, 0x2b, 0x3d, 0x87, 0x0d, 0x99, 0x20, 0xee, 0x85, 0x77, 0x4f, 0x03, 0x97, 0x71, 0x6a, 0x90,
		0xcc, 0x7f, 0x04, 0xc4, 0xf7, 0x69, 0x70, 0x7e, 0x47, 0x83, 0x5b, 0x4a, 0x9c, 0x43, 0x73, 0xfc,
		0xae, 0xe3, 0x86, 0xf7, 0x46, 0xc8, 0xe9, 0xd9, 0xe1, 0xe1, 0x32, 0x54, 0x37, 0x4a, 0xec, 0xd3,
		0xc3, 0x91, 0x08, 0x4d, 0x95, 0x9d, 0xd8, 0x2e, 0x79, 0x34, 0x23, 0x56, 0x32, 0x17, 0xfa, 0xcc,
		0x19, 0x18, 0x26, 0xaf, 0x59, 0xf3, 0xdb, 0xb3, 0x05, 0xdd, 0xde, 0x76, 0x9a, 0xc7, 0xf7, 0xce,
		0xb9, 0x77, 0x63, 0xa4, 0xe8, 0x97, 0x54, 0x18, 0x2a, 0x7a, 0xeb, 0x28, 0x34, 0x55, 0xf2, 0xaf,
		0xc6, 0x49, 0xfe, 0xd5, 0x37, 0xd0, 0x67, 0xcf, 0x84, 0x36, 0x09, 0x8a, 0xac, 0xca, 0x6e, 0x4e,
		0x2c, 0x2e, 0x12, 0xfd, 0x7c, 0xe0, 0x8c, 0xcc, 0x3b, 0xe0, 0x23, 0xa9, 0x89, 0x51, 0x3b, 0x3c,
		0x6c, 0x18, 0x22, 0xe6, 0xe7, 0x31, 0x77, 0xcc, 0x08, 0x71, 0x3a, 0x61, 0xd3, 0x10, 0x31, 0x8f,
		0x8f, 0x4e, 0xcc, 0x90, 0xd4, 0x88, 0x94, 0x5f, 0xc7, 0x8c, 0x44, 0x1e, 0xe7, 0xee, 0xa6, 0x1d,
		0xb2, 0x2e, 0x37, 0x47, 0xd6, 0xf3, 0xb1, 0x30, 0x44, 0xd8, 0x4b, 0xdb, 0x36, 0xec, 0xd0, 0x8a,
		0x65, 0x3e, 0x25, 0xf6, 0x89, 0x31, 0x94, 0x34, 0x96, 0xd8, 0xa8, 0x33, 0x36, 0x92, 0x38, 0x34,
		0x6e, 0x8e, 0xc3, 0xbe, 0x63, 0x46, 0x6a, 0x9a, 0x73, 0x77, 0xd3, 0x77, 0x8c, 0xd8, 0x09, 0xd4,
		0x08, 0x60, 0x40, 0x6d, 0xcf, 0x90, 0x8c, 0x64, 0x6a, 0xc6, 0x43, 0x10, 0xea, 0xbb, 0x81, 0x11,
		0x37, 0x9c, 0x34, 0xb4, 0x0d, 0x99, 0x51, 0x71, 0x4b, 0x03, 0x4e, 0xc5, 0xe6, 0xe9, 0x0d, 0x13,
		0x26, 0x09, 0x7c, 0x18, 0x8e, 0x88, 0x6d, 0x44, 0x6e, 0xdf, 0x80, 0x84, 0xc2, 0x14, 0x39, 0x8d,
		0xc9, 0x3d, 0x9c, 0x0b, 0x7b, 0xfc, 0xa7, 0x29, 0xe2, 0x1a, 0xf2, 0xe6, 0x76, 0x60, 0x33, 0xdf,
		0x94, 0xbb, 0xee, 0x81, 0xe3, 0x18, 0xf1, 0x3a, 0x61, 0xc0, 0x6e, 0x02, 0x6a, 0x50, 0xc8, 0x73,
		0x10, 0x1c, 0xb9, 0x06, 0xa5, 0xa5, 0x0f, 0x82, 0x63, 0x2f, 0xb8, 0x27, 0x81, 0x19, 0xc7, 0x41,
		0x40, 0x46, 0xf4, 0x92, 0xba, 0xe4, 0xd1, 0x2c, 0x69, 0xe3, 0x77, 0x15, 0xb6, 0xc7, 0x39, 0xb5,
		0x85, 0x59, 0x92, 0x9f, 0x5e, 0x74, 0xcd, 0x12, 0xb8, 0x47, 0x83, 0x3b, 0x66, 0xc6, 0x03, 0x96,
		0x41, 0x30, 0x68, 0xee, 0x9c, 0x0e, 0x02, 0x73, 0x82, 0xca, 0xc3, 0xdd, 0xc6, 0x26, 0x11, 0xad,
		0xd1, 0x8d, 0x39, 0xc2, 0xee, 0x6c, 0x19, 0x71, 0x1a, 0x0f, 0xf7, 0xf7, 0xf7, 0x9a, 0xa6, 0x08,
		0xda, 0x32, 0x45, 0x50, 0x23, 0x22, 0xf6, 0x43, 0x53, 0x48, 0xce, 0x70, 0x60, 0xc4, 0x5b, 0xf6,
		0x21, 0x1b, 0x92, 0x1b, 0x36, 0x61, 0x38, 0x86, 0x84, 0x90, 0x86, 0x86, 0x14, 0x13, 0x19, 0x06,
		0x9b, 0x8d, 0xcd, 0xee, 0x51, 0xdf, 0x18, 0x59, 0x2f, 0x0d, 0x91, 0x55, 0x18, 0x61, 0x59, 0xb7,
		0x9b, 0xad, 0xcd, 0x2f, 0x44, 0xd0, 0x1f, 0x94, 0xfa, 0x66, 0x84, 0x3a, 0x22, 0x89, 0x2f, 0x02,
		0xef, 0xc1, 0x08, 0xbe, 0x70, 0xeb, 0xdc, 0x36, 0xf7, 0x5a, 0x2d, 0x33, 0x44, 0x75, 0x6d, 0x33,
		0xe4, 0x34, 0xa4, 0x08, 0xda, 0x2d, 0xf3, 0x69, 0xe0, 0x12, 0x6e, 0x8a, 0xb0, 0x3e, 0x33, 0x46,
		0x50, 0xa3, 0x8a, 0x1a, 0xdc, 0x7a, 0x23, 0xea, 0x73, 0x62, 0x86, 0xa8, 0xa1, 0xb8, 0x20, 0x46,
		0xc4, 0x8d, 0x6e, 0xc3, 0xd0, 0x8c, 0xfd, 0xfa, 0xe8, 0xd3, 0xc0, 0xa0, 0x17, 0x7e, 0x8c, 0x70,
		0x52, 0x57, 0xaa, 0x3d, 0x3b, 0x1f, 0x52, 0xa1, 0x06, 0xad, 0x9a, 0x32, 0x6b, 0x4a, 0xa9, 0xd5,
		0xa4, 0x55, 0x58, 0x0c, 0xdd, 0x7a, 0x48, 0xd5, 0xaa, 0x2d, 0x95, 0xfc, 0xdb, 0x46, 0xcb, 0xaf,
		0x5a, 0xdb, 0xb6, 0x44, 0xaa, 0x48, 0xdd, 0xbf, 0x95, 0x4b, 0xfe, 0x96, 0xf1, 0x0a, 0xc8, 0xd5,
		0xc8, 0x2d, 0x91, 0x12, 0x0a, 0xb5, 0x73, 0x4b, 0xa8, 0x85, 0xd9, 0xce, 0x49, 0xb2, 0xd6, 0x6e,
		0xb9, 0x34, 0x90, 0x0a, 0x9b, 0x95, 0x4e, 0x05, 0xa5, 0xda, 0xbc, 0xa5, 0xd3, 0x46, 0xaa, 0x9e,
		0x6c, 0xe9, 0xb4, 0x50, 0xaa, 0x33, 0x5b, 0x2a, 0x6d, 0xbe, 0x54, 0x62, 0x4d, 0xbe, 0x54, 0x68,
		0x4d, 0xa4, 0x6a, 0x02, 0x97, 0x49, 0x7e, 0xb9, 0x5a, 0xc1, 0x65, 0xd3, 0xe0, 0xc2, 0x74, 0x38,
		0x25, 0x57, 0x5b, 0xb8, 0x44, 0x0a, 0xc8, 0x3c, 0x55, 0x2a, 0x95, 0xf8, 0x52, 0xb5, 0x88, 0x4b,
		0xa5, 0x81, 0x5c, 0x8d, 0xe2, 0x52, 0xa9, 0x20, 0x55, 0xbb, 0xb8, 0x54, 0x1a, 0x48, 0xd7, 0x34,
		0x2e, 0x95, 0x16, 0x92, 0x45, 0xf4, 0x4a, 0xa5, 0x83, 0x5a, 0x0d, 0xe4, 0x52, 0xa9, 0x22, 0x5f,
		0x1b, 0xb9, 0x5c, 0x6a, 0xc8, 0xd6, 0x4c, 0x2e, 0x95, 0x16, 0x72, 0xb5, 0x94, 0x4b, 0xa4, 0x82,
		0x7a, 0x8d, 0xe5, 0xf2, 0x28, 0xa3, 0x50, 0x7b, 0xb9, 0x44, 0x4a, 0xe8, 0xa8, 0xc9, 0x5c, 0x22,
		0x75, 0xa4, 0x6a, 0x35, 0x97, 0x48, 0x7e, 0xc9, 0x1a, 0xce, 0x25, 0xd2, 0x20, 0x34, 0x9a, 0x4c,
		0x68, 0xaa, 0xf9, 0x5c, 0x26, 0x85, 0xd4, 0x6a, 0x41, 0x97, 0x52, 0x13, 0xe9, 0x1a, 0xd1, 0x65,
		0xd3, 0x46, 0xb9, 0x76, 0x74, 0x89, 0x14, 0x52, 0xaa, 0x29, 0x5d, 0x22, 0x3d, 0x64, 0x6b, 0x4d,
		0x97, 0x48, 0x05, 0x6a, 0xb6, 0xa1, 0xcb, 0x66, 0xae, 0x94, 0x48, 0x05, 0xa5, 0x9a, 0xd5, 0x25,
		0xd2, 0x83, 0x9b, 0x6d, 0xcb, 0x92, 0x35, 0xae, 0xcb, 0xa4, 0x81, 0x52, 0xed, 0xeb, 0xf2, 0x28,
		0x22, 0x55, 0x13, 0xbb, 0x44, 0xe2, 0x4b, 0xd6, 0xca, 0x2e, 0x91, 0x06, 0xca, 0x35, 0xb4, 0x4b,
		0xa7, 0x8b, 0xae, 0xda, 0xda, 0x25, 0x52, 0x4c, 0xaa, 0xe6, 0x76, 0x89, 0xe4, 0xd7, 0x51, 0x8b,
		0xbb, 0x84, 0xea, 0x28, 0xd7, 0xe8, 0x2e, 0xa3, 0x4e, 0xd2, 0xb5, 0xbb, 0x4b, 0xa8, 0x8c, 0x54,
		0x4d, 0xef, 0x52, 0xea, 0x51, 0x8d, 0xf5, 0x50, 0xad, 0x01, 0x5e, 0x62, 0x95, 0x64, 0x6b, 0x83,
		0x97, 0x57, 0x25, 0xd9, 0x9a, 0xe1, 0x25, 0xd6, 0xe8, 0x6b, 0x65, 0x34, 0x92, 0xaf, 0x0e, 0x59,
		0x62, 0x65, 0xaa, 0x00, 0xd5, 0x74, 0xd5, 0x24, 0x2f, 0x97, 0x4a, 0xaa, 0xb5, 0xca, 0xcb, 0xa7,
		0x0d, 0xa9, 0x84, 0x05, 0xc9, 0xd4, 0x36, 0x2f, 0x95, 0xf8, 0xb2, 0xe5, 0x69, 0xca, 0xa4, 0x44,
		0xd3, 0x70, 0xf1, 0xa5, 0x6a, 0xa4, 0x97, 0x49, 0x03, 0xa3, 0x9f, 0x7c, 0x38, 0x66, 0x27, 0x2a,
		0xca, 0xd7, 0x5a, 0x2f, 0x9b, 0x0e, 0x52, 0x35, 0xd8, 0x4b, 0xa5, 0x84, 0x62, 0x6d, 0xf6, 0xb2,
		0xe9, 0x22, 0x5f, 0x4f, 0xbc, 0x6c, 0x9a, 0x54, 0x02, 0x6b, 0x28, 0xd6, 0x78, 0x2f, 0x9b, 0x26,
		0x72, 0xb5, 0xdf, 0x4b, 0xa5, 0x85, 0x54, 0x4d, 0xf8, 0xf2, 0x68, 0x40, 0x8d, 0x06, 0x4e, 0xb2,
		0x35, 0xe4, 0x4b, 0xa4, 0x81, 0xd9, 0x0f, 0x1c, 0x25, 0x6b, 0xce, 0x97, 0x48, 0x01, 0xb9, 0x5a,
		0xf4, 0x25, 0x52, 0x40, 0xad, 0x46, 0x7d, 0xf9, 0x14, 0x91, 0xad, 0x5d, 0x5f, 0x1e, 0x4d, 0xe4,
		0xca, 0x3d, 0x96, 0x4b, 0x7e, 0xe3, 0x73, 0xc0, 0x95, 0x6a, 0xe0, 0x97, 0x4b, 0x0d, 0xc3, 0x6b,
		0x73, 0xc8, 0xd7, 0xcc, 0x2f, 0x91, 0x0e, 0x52, 0xb5, 0xf4, 0x4b, 0x24, 0xbf, 0x52, 0x8d, 0xfd,
		0x12, 0xe9, 0xa1, 0x52, 0x7b, 0xbf, 0x4c, 0x6a, 0x48, 0xd7, 0xe4, 0x2f, 0x93, 0x12, 0xf2, 0xb5,
		0xfa, 0xcb, 0xa8, 0x85, 0x5a, 0x0d, 0xff, 0x32, 0x6a, 0x24, 0x55, 0xdb, 0xbf, 0x8c, 0x8a, 0x48,
		0xd7, 0xfc, 0x2f, 0x93, 0x32, 0x6a, 0xbd, 0x00, 0xca, 0xa3, 0x89, 0x42, 0x8f, 0x80, 0xb2, 0x29,
		0x21, 0xd5, 0x3b, 0xa0, 0x44, 0x4a, 0xc8, 0xf5, 0x14, 0x28, 0x97, 0x02, 0x2d, 0xd3, 0x15, 0x30,
		0xfa, 0xe6, 0x6b, 0x68, 0x3a, 0x59, 0x95, 0xea, 0x59, 0x50, 0x22, 0xf1, 0x55, 0x7b, 0x19, 0x94,
		0x48, 0x15, 0xc3, 0x8b, 0xb5, 0xc9, 0xf7, 0x3e, 0x28, 0x99, 0x0e, 0x97, 0x86, 0xeb, 0x20, 0x8c,
		0xb6, 0x68, 0xd5, 0x1e, 0x0a, 0xe5, 0xd2, 0x44, 0xb2, 0xb7, 0x42, 0x89, 0x94, 0x90, 0xed, 0xb9,
		0x50, 0x26, 0x15, 0x5c, 0xdb, 0x6c, 0xf9, 0x0d, 0x2f, 0xce, 0xab, 0xd0, 0xbb, 0xa1, 0x54, 0x4a,
		0xf8, 0xcc, 0x78, 0x05, 0x2a, 0x51, 0xbc, 0x49, 0xba, 0x07, 0x44, 0x99, 0x54, 0x90, 0xec, 0x0d,
		0x51, 0x22, 0x15, 0xa4, 0x7a, 0x46, 0x94, 0x48, 0x7e, 0xa5, 0x5e, 0x12, 0xe5, 0xd1, 0x83, 0xdd,
		0x8c, 0x36, 0x77, 0x1b, 0x3e, 0x09, 0x0e, 0x6f, 0xcd, 0x7e, 0x92, 0xcf, 0x0c, 0xbf, 0xa8, 0x63,
		0x94, 0xd2, 0xe6, 0xe6, 0xfe, 0x96, 0xe9, 0x3a, 0xec, 0x35, 0x5a, 0xcd, 0x66, 0x15, 0x94, 0x68,
		0x55, 0x41, 0x89, 0xed, 0x4a, 0xec, 0xa7, 0x9d, 0x3f, 0x4e, 0xdb, 0x67, 0x15, 0x50, 0x64, 0x93,
		0x38, 0x27, 0xc4, 0xe8, 0x42, 0x72, 0x6c, 0x50, 0x1f, 0x86, 0x66, 0x9f, 0x13, 0x83, 0x8b, 0xfb,
		0xfe, 0xa3, 0x4f, 0xcd, 0xd6, 0xe1, 0xdb, 0x80, 0x19, 0xaf, 0x84, 0xe1, 0x35, 0x80, 0xd8, 0xc8,
		0xe8, 0x80, 0x31, 0xe3, 0x03, 0xc6, 0xd9, 0x0d, 0x31, 0xbb, 0x72, 0x6a, 0xdc, 0x1d, 0xcd, 0xa5,
		0xe4, 0xce, 0x6c, 0x53, 0xf0, 0xcd, 0x96, 0xbe, 0x02, 0xf9, 0x34, 0xcc, 0x3f, 0xbf, 0xa3, 0x41,
		0xdb, 0xec, 0xa7, 0x68, 0x13, 0x25, 0x0e, 0x0d, 0x8f, 0x58, 0x4e, 0xb5, 0x70, 0xc9, 0xbd, 0xd9,
		0x5a, 0x98, 0xdf, 0xe3, 0x90, 0x85, 0x0e, 0x37, 0x5d, 0xfe, 0xd0, 0x74, 0x05, 0xc6, 0x66, 0x2b,
		0xe0, 0xed, 0xed, 0x35, 0x5a, 0x2d, 0xd7, 0x70, 0x97, 0x34, 0x51, 0x63, 0xd3, 0xfc, 0xe7, 0x11,
		0x53, 0x4d, 0xb6, 0xfa, 0xde, 0x0f, 0xca, 0x3f, 0x8f, 0xc3, 0x0a, 0xe8, 0xb2, 0x7d, 0x78, 0x79,
		0x7c, 0xd1, 0xe5, 0xa2, 0x0a, 0xaa, 0x1c, 0x89, 0xa0, 0x0a, 0x6a, 0x1c, 0xb3, 0x1b, 0x5a, 0x09,
		0x45, 0x62, 0x33, 0xb9, 0x34, 0xbc, 0xfa, 0xff, 0x54, 0x99, 0x9d, 0x53, 0xc3, 0x09, 0x77, 0x38,
		0x36, 0x9a, 0x27, 0xb9, 0x2d, 0xd3, 0xcb, 0x1e, 0xbb, 0x9b, 0xcc, 0xaf, 0x82, 0x0e, 0x0f, 0xc6,
		0x2b, 0x41, 0xfc, 0x1b, 0xc3, 0xe5, 0x77, 0x0c, 0x97, 0xdf, 0xe8, 0xba, 0x9a, 0x2e, 0xe3, 0x74,
		0x18, 0x78, 0x86, 0xfb, 0xd3, 0x91, 0xd9, 0xe2, 0x7b, 0x36, 0x71, 0xfb, 0xc4, 0x35, 0xfa, 0x11,
		0xc4, 0x88, 0xd8, 0x3d, 0x6a, 0x1f, 0x7a, 0x5c, 0x04, 0x9e, 0xeb, 0x52, 0xa7, 0x7b, 0x6c, 0xbe,
		0x36, 0x5f, 0xb9, 0x5d, 0x15, 0x7d, 0xa8, 0xc3, 0xc8, 0x29, 0x61, 0xee, 0xf9, 0x1d, 0x0d, 0xba,
		0x46, 0x5b, 0xcb, 0x68, 0xd0, 0x63, 0x43, 0xd3, 0x1f, 0x32, 0x8f, 0x98, 0xf7, 0x60, 0x76, 0xb5,
		0xfc, 0x91, 0x67, 0x93, 0x6f, 0x34, 0x08, 0x99, 0xc7, 0x9b, 0x66, 0xeb, 0xe1, 0x50, 0xa3, 0x43,
		0xfd, 0x23, 0xdf, 0x36, 0x5b, 0x7c, 0x3a, 0xec, 0x07, 0x84, 0x87, 0xbe, 0xe1, 0xb5, 0x61, 0x47,
		0xbe, 0x1b, 0x9a, 0x2e, 0x7f, 0x7f, 0x6c, 0x7a, 0x16, 0xe3, 0x28, 0x34, 0x3c, 0xfb, 0x6f, 0x74,
		0x67, 0xb6, 0xf8, 0x8f, 0x01, 0x33, 0xfc, 0x01, 0x1d, 0x1f, 0x10, 0xa3, 0x0d, 0x99, 0x87, 0x66,
		0x67, 0x11, 0x78, 0x93, 0xf6, 0xb7, 0x15, 0x28, 0x93, 0xb2, 0xac, 0xc9, 0x17, 0xd3, 0x69, 0xf6,
		0x54, 0x9d, 0x4a, 0x9c, 0xd6, 0x9e, 0xe9, 0x85, 0xb5, 0x3c, 0xc1, 0xcf, 0x9d, 0xb1, 0xe9, 0x1a,
		0x08, 0xa3, 0x35, 0xf0, 0x49, 0x60, 0xf4, 0xeb, 0x21, 0xdf, 0xe1, 0xf1, 0x8b, 0xf7, 0x13, 0xcf,
		0xf3, 0x9b, 0x55, 0x51, 0xc4, 0xe8, 0x6c, 0x7d, 0xdf, 0xec, 0xa3, 0xdb, 0x37, 0x3b, 0xb9, 0xc3,
		0xf7, 0x78, 0x73, 0x7b, 0xdb, 0x70, 0x0d, 0x76, 0xcc, 0x7e, 0x65, 0xed, 0x7b, 0x46, 0x83, 0x6f,
		0xdf, 0xf7, 0x0d, 0x17, 0xff, 0x74, 0xec, 0x0a, 0xe6, 0x32, 0xfe, 0xc3, 0xfc, 0x12, 0x59, 0x7e,
		0xc0, 0x46, 0x24, 0x78, 0xec, 0xf6, 0x8e, 0xce, 0xcc, 0x56, 0xc3, 0xf3, 0x0d, 0xcf, 0x47, 0x8e,
		0x54, 0xf8, 0xfc, 0x47, 0xdb, 0x6f, 0x9d, 0xfa, 0xa6, 0xab, 0x71, 0xc8, 0xcd, 0x8e, 0xf3, 0x45,
		0x3a, 0x1c, 0x79, 0x76, 0xf8, 0x07, 0x0b, 0xa8, 0x4b, 0xc3, 0x8a, 0x34, 0xed, 0x5c, 0xd5, 0xaa,
		0x0a, 0xbd, 0x3b, 0x57, 0x75, 0xaa, 0x42, 0xeb, 0x8c, 0x48, 0xa7, 0xf8, 0x84, 0xf1, 0x5d, 0xfa,
		0xe0, 0x19, 0xbf, 0x3c, 0x17, 0x1e, 0xe3, 0xa2, 0xef, 0xc5, 0xff, 0xd3, 0xa3, 0x01, 0x23, 0xae,
		0xe9, 0x1a, 0x7d, 0x63, 0x81, 0x18, 0x9b, 0xaf, 0xc6, 0xcc, 0x66, 0x2e, 0x5a, 0x17, 0x86, 0xab,
		0x22, 0xa8, 0xc7, 0x9b, 0x0d, 0xd3, 0xdb, 0x0a, 0x4c, 0x15, 0xd9, 0x33, 0x5f, 0x11, 0xb3, 0x81,
		0xd8, 0x3f, 0xad, 0xfd, 0x4d, 0xa3, 0x43, 0x3d, 0xff, 0x98, 0x7d, 0xfe, 0xfd, 0x63, 0xf8, 0xfb,
		0x97, 0x80, 0x38, 0xcc, 0x3b, 0x6d, 0x1f, 0x1a, 0xae, 0x83, 0xd9, 0x77, 0xc4, 0x01, 0x25, 0xf6,
		0xed, 0x51, 0xef, 0xc4, 0x6c, 0x1d, 0x86, 0x63, 0x97, 0x04, 0xa6, 0x17, 0x05, 0x0c, 0x06, 0x76,
		0x73, 0xcb, 0xec, 0xda, 0xc3, 0xc1, 0xc0, 0xde, 0xdb, 0xdd, 0x35, 0x3c, 0x1d, 0x2d, 0xf0, 0x8d,
		0xe6, 0x12, 0x41, 0xd8, 0xda, 0x34, 0xdb, 0x0e, 0xc2, 0xc0, 0xe8, 0x77, 0x08, 0xa1, 0x63, 0x33,
		0xb3, 0xe5, 0x37, 0x1b, 0x57, 0x98, 0x9e, 0xb6, 0x15, 0xde, 0x9a, 0xae, 0x80, 0xd9, 0x37, 0x8f,
		0x21, 0xf3, 0x7b, 0x6c, 0x68, 0xb8, 0x06, 0x7d, 0xc3, 0x15, 0x78, 0xe8, 0x7b, 0xc7, 0xde, 0xd8,
		0xe8, 0x83, 0x38, 0x74, 0x0d, 0xb7, 0x83, 0x91, 0x13, 0x1e, 0x3d, 0x30, 0xd3, 0x55, 0xe8, 0xda,
		0x86, 0x2f, 0x83, 0x37, 0x10, 0xf7, 0x24, 0xa0, 0x27, 0x9e, 0xe7, 0xdf, 0x10, 0xfb, 0x87, 0xd9,
		0xba, 0x18, 0x9e, 0xd0, 0x1b, 0x2b, 0x70, 0x7e, 0x47, 0x83, 0x5b, 0x4a, 0x9c, 0x0a, 0xa4, 0x95,
		0xc6, 0xfa, 0x5c, 0x10, 0x71, 0x6b, 0xbc, 0x12, 0xdf, 0x8c, 0xee, 0x90, 0x11, 0x06, 0x66, 0xfb,
		0xa8, 0x70, 0xb7, 0x02, 0x2f, 0xe9, 0x42, 0x41, 0xec, 0x1f, 0x7d, 0xaf, 0x27, 0x4c, 0xf7, 0xb2,
		0x82, 0x04, 0x27, 0x66, 0xd7, 0x22, 0x10, 0x86, 0x73, 0x50, 0x41, 0x4d, 0x37, 0x06, 0x41, 0x83,
		0x91, 0xe1, 0xed, 0x00, 0x44, 0xd0, 0x68, 0xec, 0x99, 0xad, 0x00, 0xe1, 0xa1, 0xff, 0x9b, 0xe9,
		0xb6, 0x60, 0xfc, 0x4b, 0xc0, 0xb1, 0x2b, 0xcc, 0xce, 0xce, 0x1f, 0x87, 0x46, 0x47, 0x54, 0xef,
		0xcc, 0x2e, 0xfe, 0x7f, 0xb7, 0xb9, 0x6d, 0xb6, 0xf8, 0x3b, 0x66, 0x8b, 0xbf, 0x6b, 0xb4, 0xf8,
		0x86, 0x07, 0x83, 0xef, 0x4c, 0x6f, 0x15, 0x76, 0x37, 0xc9, 0x62, 0xeb, 0xfa, 0x6d, 0xc7, 0x09,
		0x68, 0x18, 0x56, 0x40, 0x17, 0xb3, 0x83, 0xc3, 0x77, 0xa3, 0x7b, 0x12, 0xd0, 0x33, 0x66, 0xf7,
		0x0d, 0x4f, 0x60, 0x9d, 0x28, 0x32, 0xcd, 0x92, 0x3c, 0x63, 0x46, 0x83, 0xbc, 0x3b, 0x8f, 0xd9,
		0xf4, 0xa8, 0x7b, 0x64, 0xbc, 0x0e, 0x9d, 0xcf, 0x3d, 0xf3, 0x75, 0x38, 0xad, 0x80, 0x0a, 0xc7,
		0x5f, 0x2a, 0xb0, 0x99, 0xb8, 0x4d, 0x7c, 0xe3, 0xb5, 0x38, 0xfe, 0x72, 0xd4, 0x69, 0x9f, 0xb5,
		0xab, 0xa0, 0xc7, 0xb9, 0xf9, 0xc6, 0x7d, 0xfc, 0xe7, 0x79, 0x05, 0x74, 0x30, 0x7f, 0x1d, 0x2a,
		0xd0, 0xda, 0x63, 0xae, 0xc7, 0x21, 0xb9, 0x31, 0xfb, 0x79, 0xe6, 0x5c, 0x93, 0xe3, 0x80, 0x8c,
		0xe8, 0x25, 0x75, 0xc9, 0x63, 0x25, 0xd4, 0x31, 0xbb, 0xbe, 0xe2, 0xfd, 0x3d, 0xe1, 0x17, 0x17,
		0xe6, 0x6b, 0x60, 0x34, 0x7f, 0x7d, 0x68, 0x35, 0x37, 0xcd, 0x96, 0x7f, 0xfb, 0x76, 0xcc, 0x85,
		0xf1, 0x25, 0x8f, 0x1e, 0x5a, 0xdb, 0x23, 0xd7, 0x74, 0x0d, 0x7c, 0xb3, 0x8f, 0x89, 0x87, 0xbd,
		0x9d, 0x13, 0xe2, 0x1b, 0x1d, 0xc2, 0x79, 0xb8, 0xf1, 0x1e, 0x66, 0x2f, 0x12, 0x15, 0xf4, 0x90,
		0xfa, 0xe4, 0xd5, 0x87, 0x1c, 0xe6, 0x4b, 0x6e, 0x9e, 0x74, 0xf5, 0x9e, 0x2e, 0x40, 0x60, 0xa9,
		0x00, 0x6f, 0x01, 0x72, 0x4a, 0xf7, 0x92, 0x2e, 0x46, 0x56, 0xc9, 0x9e, 0xd1, 0xc5, 0x09, 0xdb,
		0x32, 0x49, 0xd8, 0x6d, 0xa3, 0xf6, 0x81, 0x64, 0xaf, 0xe7, 0xc2, 0x04, 0x96, 0xed, 0xe9, 0x5c,
		0x80, 0xc0, 0x92, 0xbd, 0x9b, 0x8b, 0x90, 0x54, 0xb6, 0x47, 0x73, 0x11, 0xb2, 0x4a, 0xf7, 0x62,
		0x2e, 0x40, 0x58, 0xd7, 0x90, 0x83, 0x56, 0xa6, 0xb7, 0x72, 0x01, 0x62, 0x2a, 0xf4, 0x50, 0x2e,
		0x42, 0x5a, 0xf9, 0x5e, 0xc9, 0x05, 0x48, 0xeb, 0x9b, 0x21, 0xa5, 0x74, 0xef, 0xe3, 0x22, 0x84,
		0x95, 0x0e, 0x84, 0x16, 0x25, 0xac, 0x5c, 0x2f, 0xe3, 0xc2, 0xa4, 0x95, 0xea, 0x59, 0x5c, 0x84,
		0xb4, 0xb2, 0xbd, 0x89, 0x0b, 0x90, 0x55, 0xaa, 0x07, 0x71, 0x31, 0x72, 0x86, 0xa6, 0x08, 0x3a,
		0x36, 0x43, 0x50, 0x85, 0xde, 0xc1, 0x85, 0x89, 0x2b, 0xdd, 0x23, 0xb8, 0x30, 0x89, 0x15, 0x7a,
		0x01, 0x17, 0x26, 0xb3, 0x7c, 0xcf, 0xdf, 0xe2, 0x44, 0x96, 0xea, 0xed, 0x5b, 0x9c, 0xb8, 0x92,
		0x3d, 0x7c, 0x8b, 0x13, 0x58, 0xa1, 0x57, 0x6f, 0x61, 0x42, 0xcb, 0xf5, 0xe4, 0x2d, 0x42, 0xdc,
		0xb1, 0x11, 0x78, 0x5c, 0xb6, 0xc7, 0x6e, 0x01, 0x92, 0x4a, 0xf7, 0xd2, 0x2d, 0x46, 0xd6, 0x07,
		0x63, 0x84, 0x95, 0xea, 0x8d, 0x5b, 0x88, 0x9c, 0x8e, 0x21, 0x72, 0x0e, 0x8c, 0x90, 0x53, 0xbe,
		0xa7, 0x6d, 0x01, 0xc2, 0x8e, 0xcc, 0x10, 0x53, 0xbe, 0x47, 0x6d, 0xfe, 0xc2, 0xea, 0xe8, 0x45,
		0x5b, 0x94, 0xd4, 0xaa, 0x3d, 0x67, 0x0b, 0x90, 0x5b, 0xb5, 0xb7, 0x6c, 0x01, 0x22, 0xcb, 0xf7,
		0x90, 0x2d, 0x40, 0x58, 0xc9, 0x5e, 0xb1, 0x05, 0x48, 0xaa, 0xd4, 0x13, 0xb6, 0x08, 0x79, 0xa5,
		0x7a, 0xbf, 0x16, 0x20, 0xa8, 0x6f, 0x9b, 0x21, 0xa6, 0x52, 0x2f, 0xd7, 0x22, 0x04, 0x76, 0x43,
		0x53, 0xe4, 0x94, 0xed, 0xcd, 0x5a, 0x80, 0xb4, 0xa1, 0x21, 0xd9, 0x31, 0x52, 0xbd, 0x56, 0x0b,
		0x10, 0x53, 0xb6, 0xa7, 0x6a, 0xfe, 0xa2, 0xca, 0xf5, 0x4e, 0x2d, 0x40, 0xce, 0xd0, 0x8c, 0x5b,
		0x45, 0xd5, 0x5e, 0xa8, 0x45, 0x4b, 0xfc, 0xc5, 0x14, 0x1a, 0xa6, 0xde, 0xdb, 0xb4, 0x00, 0x99,
		0xe5, 0x7a, 0x98, 0x16, 0x21, 0xa8, 0x5c, 0xaf, 0xd2, 0x62, 0x24, 0x15, 0x46, 0x48, 0x2a, 0xd7,
		0x7b, 0xb4, 0x00, 0x39, 0xd5, 0x7a, 0x8c, 0x16, 0x2b, 0xb0, 0x11, 0xd9, 0x9d, 0xbe, 0x19, 0x47,
		0x99, 0x6f, 0xc6, 0xe5, 0xad, 0x6c, 0x0f, 0xd0, 0x42, 0x24, 0x95, 0xea, 0xf5, 0x59, 0x84, 0xa4,
		0x46, 0x80, 0x42, 0xa9, 0xde, 0x9d, 0x85, 0x88, 0xa9, 0xdc, 0xa3, 0xb3, 0x00, 0xa9, 0x55, 0x7a,
		0x71, 0x16, 0x21, 0xae, 0x64, 0xcf, 0xcd, 0x62, 0x44, 0x95, 0xee, 0xad, 0x59, 0x8c, 0xb8, 0x72,
		0x3d, 0x34, 0x8b, 0x91, 0x55, 0x57, 0xaf, 0xcc, 0xe2, 0xa5, 0x97, 0xef, 0x89, 0x59, 0xbc, 0xec,
		0xf2, 0xbd, 0x2f, 0x8b, 0x91, 0x5d, 0xa9, 0xc7, 0x65, 0x31, 0x22, 0xeb, 0xe8, 0x65, 0x59, 0x8c,
		0xe4, 0xd2, 0x3d, 0x2b, 0x8b, 0x11, 0x57, 0xa9, 0x37, 0x65, 0x21, 0x22, 0xab, 0xf4, 0xa0, 0x2c,
		0x4c, 0xe0, 0x3d, 0x73, 0x04, 0x36, 0x03, 0x68, 0x48, 0xf6, 0x8e, 0x2c, 0x40, 0x50, 0x33, 0xce,
		0x89, 0x7f, 0x0c, 0xc9, 0x67, 0x96, 0xef, 0xf9, 0x58, 0x88, 0xac, 0x66, 0xdc, 0x3d, 0xc9, 0xf7,
		0x70, 0x2c, 0x42, 0x56, 0x85, 0x5e, 0x8d, 0x05, 0x88, 0x2b, 0xdb, 0x93, 0xb1, 0x10, 0x51, 0x65,
		0x7b, 0x2f, 0x16, 0x20, 0xac, 0x6f, 0x04, 0x96, 0x95, 0xec, 0xa5, 0x58, 0x84, 0xa0, 0x81, 0x11,
		0xf9, 0xa9, 0x72, 0xbd, 0x11, 0x8b, 0x90, 0xd3, 0x8c, 0xf3, 0xd4, 0x94, 0xf4, 0x08, 0xc9, 0x9e,
		0x86, 0x05, 0x08, 0x6a, 0xc6, 0x0d, 0x88, 0x6c, 0x8f, 0xc2, 0x42, 0x24, 0xed, 0x1b, 0x22, 0xa8,
		0x74, 0xcf, 0xc1, 0x02, 0x84, 0x75, 0x0d, 0xd9, 0xa7, 0xb2, 0x3d, 0x04, 0x8b, 0x11, 0x55, 0xae,
		0x57, 0x60, 0x01, 0xb2, 0x2a, 0xf7, 0x04, 0x2c, 0x42, 0x66, 0x43, 0x12, 0xcf, 0xf4, 0xf4, 0xf8,
		0x2b, 0x48, 0x6e, 0xb9, 0x5e, 0x7e, 0x05, 0x09, 0x2b, 0xd3, 0xb3, 0xaf, 0x00, 0x51, 0x03, 0x33,
		0x7c, 0x82, 0x42, 0x0f, 0xbe, 0x02, 0xa4, 0x55, 0xea, 0xb5, 0x57, 0x88, 0xbc, 0x72, 0x3d, 0xf5,
		0xf2, 0x17, 0x55, 0x18, 0xc2, 0x5d, 0x64, 0x7b, 0xe4, 0x15, 0x21, 0xa9, 0x64, 0x2f, 0xbc, 0x02,
		0x44, 0x95, 0xeb, 0x79, 0x57, 0x84, 0xa0, 0xf2, 0xbd, 0xed, 0x0a, 0x90, 0xd6, 0x98, 0x17, 0x13,
		0x92, 0xbd, 0xea, 0x0a, 0x10, 0x34, 0x34, 0x22, 0x62, 0x75, 0x67, 0x46, 0x11, 0x51, 0xa9, 0x1e,
		0x73, 0x45, 0x88, 0xb9, 0x63, 0x86, 0x98, 0xbb, 0x46, 0x88, 0x69, 0x48, 0x50, 0x4d, 0xb2, 0x07,
		0x5c, 0x01, 0x82, 0x2a, 0xf7, 0x7a, 0x2b, 0x4c, 0x66, 0x33, 0x82, 0x6c, 0x8a, 0xbd, 0xdb, 0x8a,
		0x12, 0x58, 0xa5, 0x47, 0x5b, 0x01, 0x32, 0x4b, 0xf7, 0x62, 0x2b, 0x48, 0x56, 0xa9, 0x9e, 0x6b,
		0x45, 0xc9, 0x7a, 0x6a, 0x90, 0xa8, 0x52, 0x3d, 0xd4, 0x8a, 0x92, 0x56, 0xae, 0x57, 0x5a, 0x41,
		0xd2, 0x4a, 0xf7, 0x44, 0x2b, 0x4e, 0xde, 0x73, 0x73, 0x8c, 0x4c, 0xaa, 0xc7, 0x59, 0x61, 0xb2,
		0x9a, 0x33, 0xaf, 0x06, 0x95, 0xea, 0x55, 0xed, 0x4d, 0x56, 0xa0, 0xc4, 0x2a, 0x3d, 0xc8, 0x0a,
		0x14, 0xdb, 0x8c, 0x7a, 0x3b, 0xb2, 0x3d, 0xc5, 0x8a, 0x92, 0xd4, 0x08, 0xde, 0x23, 0xd7, 0x23,
		0xac, 0x08, 0x39, 0x55, 0x7a, 0x81, 0x15, 0x22, 0xaf, 0x54, 0xcf, 0xaf, 0x42, 0x24, 0xf5, 0xcd,
		0x70, 0xb3, 0xd2, 0x3d, 0xbc, 0x0a, 0x10, 0x55, 0xa9, 0x57, 0x57, 0xba, 0x1e, 0x5d, 0xc9, 0x7b,
		0x73, 0x25, 0x1b, 0x37, 0xe1, 0x6c, 0xd5, 0xe8, 0x83, 0x08, 0x48, 0x7d, 0xcc, 0x43, 0x11, 0x9f,
		0xd3, 0x07, 0x29, 0xe6, 0xac, 0x16, 0xd0, 0x01, 0x0d, 0x28, 0xb7, 0xa3, 0x8f, 0xfd, 0xfd, 0x21,
		0xdb, 0x85, 0x99, 0x2f, 0xca, 0xe5, 0xf1, 0xa1, 0xd5, 0xda, 0xdb, 0xd9, 0x3c, 0xb0, 0xfa, 0xb7,
		0xd4, 0xea, 0x72, 0x41, 0x83, 0x01, 0xb1, 0x69, 0x68, 0xc5, 0x5e, 0xc5, 0x3a, 0xed, 0x7e, 0xb6,
		0xea, 0x16, 0x1b, 0xc4, 0xdd, 0x57, 0xd2, 0xef, 0x98, 0x5a, 0xcf, 0x1b, 0x07, 0x76, 0xba, 0x79,
		0x58, 0xfa, 0xfc, 0xef, 0xf4, 0xf1, 0xde, 0x0b, 0x9c, 0x49, 0xae, 0xf4, 0x6c, 0x7a, 0xe4, 0xba,
		0xce, 0xd5, 0x7e, 0x23, 0x61, 0x3b, 0x18, 0x8e, 0x47, 0x94, 0x8b, 0xda, 0x81, 0x25, 0x82, 0x31,
		0x95, 0x1c, 0x68, 0x61, 0x94, 0x54, 0xf3, 0x97, 0xf1, 0x9e, 0x4f, 0xfe, 0xd7, 0xc9, 0xac, 0xe3,
		0xed, 0xf1, 0x5e, 0xff, 0x8b, 0x37, 0x6c, 0xa6, 0xd6, 0x1e, 0x0f, 0xa3, 0x59, 0xa4, 0x4e, 0xa2,
		0xfd, 0x9e, 0x6c, 0x03, 0xcd, 0xf7, 0xf5, 0x86, 0x67, 0xd7, 0xd9, 0xe0, 0x80, 0xcd, 0x17, 0x64,
		0xf5, 0x1f, 0xa6, 0xbf, 0x87, 0x82, 0x88, 0xa4, 0x3b, 0xaa, 0x76, 0x44, 0x43, 0x3b, 0x60, 0xbe,
		0x60, 0x1e, 0x8f, 0xbe, 0xa3, 0xed, 0x38, 0xa1, 0x45, 0xac, 0xf9, 0xc6, 0xb4, 0x06, 0x81, 0x37,
		0xb2, 0xc4, 0x2d, 0xb5, 0x6e, 0x48, 0x48, 0xad, 0xf9, 0x57, 0x59, 0xc2, 0x8b, 0xff, 0xd5, 0xf6,
		0x82, 0x80, 0x86, 0xbe, 0xc7, 0x1d, 0xc6, 0x87, 0xdf, 0xb9, 0xef, 0x05, 0xc2, 0xb2, 0xbd, 0x91,
		0xef, 0x71, 0xca, 0x85, 0xc5, 0x78, 0xfc, 0x47, 0x0e, 0xbd, 0x63, 0x76, 0xf4, 0xe1, 0x3b, 0xca,
		0x85, 0x17, 0x3c, 0x7e, 0x4a, 0x2a, 0xdc, 0xef, 0x8c, 0x47, 0x33, 0xd9, 0x4c, 0xf8, 0xe7, 0x87,
		0x1e, 0x1f, 0xb0, 0x61, 0xed, 0xc0, 0x6a, 0x24, 0xfc, 0xc0, 0x45, 0x40, 0x07, 0xec, 0x21, 0x9d,
		0x4b, 0x9b, 0x57, 0x7f, 0xb1, 0xeb, 0x71, 0xed, 0x9f, 0xe4, 0x06, 0x27, 0xeb, 0x39, 0x16, 0x3d,
		0x86, 0x3f, 0x91, 0x38, 0x9d, 0x95, 0x2b, 0xbb, 0x89, 0x25, 0xf7, 0x30, 0x53, 0xbc, 0xa0, 0xe3,
		0xe8, 0x88, 0x05, 0xe9, 0x16, 0xec, 0x96, 0x04, 0xce, 0x3d, 0x09, 0xe8, 0x44, 0xea, 0xd4, 0x93,
		0x3f, 0x5b, 0xef, 0xe5, 0x61, 0x52, 0xce, 0xdf, 0x8a, 0x95, 0x1d, 0x7b, 0x81, 0xc5, 0x3d, 0x5e,
		0xb7, 0x27, 0xb9, 0x67, 0xec, 0xff, 0x51, 0xe7, 0xc9, 0xb4, 0xc2, 0x8f, 0x4f, 0xe6, 0x17, 0xc6,
		0xf6, 0x33, 0xfb, 0x6a, 0x2b, 0xfa, 0xea, 0xef, 0x7c, 0xc9, 0xe6, 0x66, 0x86, 0xb8, 0x6c, 0x9e,
		0x9f, 0xd2, 0x0a, 0x38, 0xb5, 0xb4, 0x46, 0xca, 0x8f, 0xa5, 0xb5, 0x38, 0x15, 0xcb, 0xd3, 0x60,
		0x81, 0x59, 0x9c, 0xe1, 0x52, 0x16, 0x99, 0xed, 0x01, 0x9e, 0xda, 0x42, 0x25, 0x0f, 0xe7, 0x94,
		0x6b, 0x1e, 0x03, 0x06, 0xa5, 0x15, 0x77, 0x29, 0x19, 0x04, 0x74, 0x20, 0xb3, 0xe2, 0xb3, 0xa3,
		0x64, 0x57, 0xe2, 0xb3, 0x71, 0xca, 0xe5, 0xf4, 0x00, 0xf6, 0x5d, 0x22, 0x06, 0x5e, 0x30, 0x3a,
		0x98, 0x9f, 0x72, 0xe1, 0xf3, 0xff, 0xbc, 0xf4, 0xaf, 0x3c, 0x52, 0x20, 0x23, 0xe4, 0xf3, 0x53,
		0x17, 0xf2, 0xf9, 0x58, 0x1d, 0xc0, 0x42, 0xf8, 0x9b, 0x50, 0x25, 0x4e, 0x4f, 0xb2, 0x29, 0xbb,
		0xa3, 0xc1, 0x13, 0x62, 0xa9, 0x0a, 0x32, 0x59, 0x50, 0xee, 0x5d, 0x02, 0x94, 0x45, 0xfd, 0x4d,
		0xc1, 0x29, 0x8b, 0x32, 0x4b, 0xa3, 0x14, 0xb9, 0x85, 0x7f, 0xce, 0xb0, 0x2e, 0x02, 0xef, 0x8e,
		0x39, 0x74, 0xd9, 0xb8, 0xa6, 0xa6, 0xb4, 0x68, 0x3b, 0xe1, 0xf8, 0xe6, 0x09, 0xf0, 0x8b, 0x5b,
		0xb2, 0x04, 0x50, 0xc2, 0xd9, 0x27, 0xfc, 0xdb, 0xc7, 0x90, 0xd9, 0xc4, 0xb5, 0x56, 0x18, 0xc2,
		0xc0, 0x0b, 0x2c, 0x71, 0xcb, 0xc2, 0x05, 0xe8, 0xf2, 0x9d, 0xf7, 0x9f, 0x38, 0xc3, 0x68, 0x1c,
		0x0a, 0xcb, 0xe3, 0xee, 0xa3, 0xe5, 0x7b, 0xfe, 0xd8, 0x25, 0x82, 0x4e, 0xfe, 0x3c, 0x3a, 0x09,
		0xac, 0x7b, 0x26, 0x6e, 0x57, 0xc4, 0xfb, 0xce, 0xc9, 0xc2, 0xe8, 0xde, 0xc0, 0x12, 0x8f, 0x3e,
		0xb5, 0xfa, 0x97, 0xed, 0xb3, 0xde, 0x61, 0xa7, 0xfb, 0xad, 0x73, 0xf9, 0x5e, 0x90, 0x91, 0xfc,
		0x46, 0x78, 0x1f, 0x00, 0x49, 0xca, 0x43, 0x00, 0x27, 0xe9, 0xc7, 0x49, 0x7f, 0xaf, 0xe2, 0xa4,
		0xff, 0xb3, 0xc7, 0x41, 0x40, 0xb9, 0xf8, 0xe5, 0xd7, 0x8d, 0x4f, 0x9f, 0x36, 0xa6, 0x58, 0xf6,
		0x60, 0x89, 0x7e, 0x5d, 0x2d, 0x0d, 0xb5, 0xe8, 0x81, 0xc2, 0x17, 0xff, 0x0b, 0xf0, 0x58, 0xe9,
		0x02, 0x48, 0x4c, 0x84, 0x6b, 0x01, 0xa4, 0xd9, 0x39, 0x31, 0xa5, 0xc6, 0x21, 0x10, 0x19, 0x10,
		0x59, 0x51, 0x88, 0x6c, 0xb6, 0x19, 0x67, 0x71, 0x1a, 0x79, 0x58, 0xb6, 0x36, 0x92, 0x7a, 0xfc,
		0x88, 0x58, 0xcf, 0x46, 0x8f, 0x3e, 0x5a, 0x2e, 0x0b, 0x63, 0xe4, 0xb3, 0x18, 0x44, 0x8a, 0x41,
		0xd8, 0x33, 0xd6, 0x65, 0xfd, 0xe2, 0x12, 0x4e, 0xc3, 0x5f, 0xad, 0x67, 0x63, 0x4a, 0xab, 0x98,
		0x6c, 0xfd, 0xe3, 0x24, 0xa0, 0x16, 0x75, 0x69, 0xb4, 0xce, 0x61, 0xf4, 0x9d, 0xc4, 0x7a, 0x96,
		0x56, 0x7d, 0xe7, 0xd3, 0x48, 0xf0, 0xcc, 0x01, 0x5b, 0x23, 0xcf, 0xa1, 0x2e, 0xb0, 0x18, 0xb0,
		0x18, 0xb0, 0x98, 0x51, 0x58, 0x6c, 0x61, 0xa9, 0x0e, 0x16, 0x7e, 0xbe, 0x7a, 0xe5, 0xbf, 0xad,
		0xfe, 0xa7, 0x55, 0x5f, 0x18, 0xae, 0xfe, 0xc1, 0xf4, 0xdf, 0x57, 0xff, 0x99, 0x71, 0x87, 0x3e,
		0xd4, 0x32, 0x5d, 0xed, 0x13, 0x16, 0x8a, 0xb6, 0x10, 0x81, 0xdc, 0x8a, 0x9f, 0x32, 0xde, 0x99,
		0xfa, 0xc2, 0xf4, 0xbe, 0x66, 0x32, 0x02, 0x79, 0x58, 0x18, 0xa1, 0xb9, 0xb7, 0xb5, 0xb5, 0xb3,
		0xbb, 0xb5, 0xd5, 0xd8, 0xdd, 0xdc, 0x6d, 0xec, 0x6f, 0x6f, 0x37, 0x77, 0x9a, 0xdb, 0x12, 0x83,
		0x9e, 0x07, 0x0e, 0x0d, 0xa8, 0xf3, 0xf9, 0xb1, 0x76, 0x60, 0xf1, 0xb1, 0xeb, 0xaa, 0x0c, 0xf1,
		0x35, 0x8c, 0x83, 0x13, 0x03, 0xe2, 0x86, 0x14, 0xf0, 0x39, 0x2b, 0xf8, 0xdc, 0xbf, 0xe8, 0x1e,
		0x59, 0x1b, 0x16, 0x15, 0xb7, 0x34, 0x88, 0xe3, 0x17, 0x9e, 0x1f, 0x8f, 0x39, 0x8d, 0x96, 0xac,
		0x42, 0xe9, 0x8a, 0x20, 0xe4, 0xb8, 0x53, 0xec, 0x7b, 0x84, 0xc6, 0xe9, 0x5a, 0xe4, 0x16, 0x1d,
		0xa5, 0xf4, 0x99, 0xa3, 0x10, 0x9e, 0x8c, 0x3e, 0xad, 0x86, 0x7d, 0xcf, 0xe3, 0x9f, 0x88, 0xeb,
		0x3e, 0x5a, 0x21, 0x15, 0x93, 0x70, 0x24, 0x19, 0x5a, 0x7e, 0xe0, 0x09, 0xcf, 0xf6, 0x5c, 0x8b,
		0x39, 0x94, 0x0b, 0x36, 0x60, 0x34, 0xb0, 0x06, 0x8c, 0xba, 0x8e, 0xf5, 0x4b, 0x64, 0x4e, 0xbf,
		0x4e, 0x43, 0x93, 0x2c, 0xb4, 0x88, 0x6d, 0x53, 0x5f, 0x50, 0xc7, 0xf2, 0x26, 0x98, 0xf4, 0xdb,
		0x49, 0xfb, 0x2c, 0xbd, 0x4c, 0x03, 0x32, 0x76, 0x45, 0xea, 0xac, 0xa6, 0xf8, 0xc3, 0xd3, 0x25,
		0xaf, 0x47, 0xa6, 0x1d, 0x1e, 0x44, 0xd2, 0x5d, 0x37, 0xfe, 0xdc, 0x6b, 0x36, 0x1a, 0xe9, 0x0e,
		0xb7, 0xab, 0xf7, 0x01, 0x9e, 0x53, 0xba, 0x85, 0xf7, 0x83, 0x9a, 0x25, 0x3b, 0x6b, 0x97, 0x1c,
		0x2e, 0x4f, 0xcc, 0x57, 0x3c, 0x2a, 0x42, 0x66, 0x19, 0xa0, 0xd4, 0x9d, 0x7e, 0xf5, 0x67, 0x12,
		0x2a, 0xec, 0x9b, 0x99, 0x22, 0xb1, 0x5d, 0xf7, 0xff, 0xba, 0xe8, 0xf4, 0x64, 0x37, 0xce, 0x37,
		0xe2, 0x8e, 0x69, 0x28, 0xe5, 0x63, 0xd2, 0x21, 0x9c, 0x64, 0xba, 0xc8, 0xf8, 0x28, 0x85, 0xbd,
		0x94, 0xa1, 0x1a, 0x7b, 0xed, 0xbd, 0x0a, 0xa8, 0xb1, 0x5f, 0x8d, 0xd5, 0xd8, 0x6f, 0x55, 0x40,
		0x8d, 0xf6, 0xd9, 0x5f, 0x0a, 0x3a, 0x48, 0x7d, 0xf2, 0xaa, 0x34, 0xa9, 0xb7, 0x3f, 0x73, 0x49,
		0xbd, 0xbd, 0x7a, 0x2b, 0xf5, 0x96, 0x73, 0x4f, 0x90, 0x29, 0x4a, 0x7c, 0x7b, 0x6d, 0x6b, 0xa1,
		0x7d, 0x4b, 0x47, 0xc4, 0x9f, 0x87, 0x49, 0x7c, 0xca, 0xed, 0x18, 0xea, 0xd4, 0x17, 0x08, 0xde,
		0x73, 0x3f, 0x6e, 0x24, 0xe5, 0x77, 0xb5, 0x50, 0x04, 0x63, 0x5b, 0xf0, 0xe9, 0x46, 0x39, 0x9f,
		0x7f, 0xc3, 0x53, 0x4a, 0xf5, 0xf5, 0x73, 0x3f, 0x5e, 0xf7, 0xe2, 0x2f, 0xf8, 0x20, 0x37, 0x57,
		0xaf, 0x58, 0x44, 0x2d, 0x1c, 0xdf, 0x3c, 0x69, 0xf4, 0xe6, 0x34, 0x3d, 0x95, 0xc6, 0x5a, 0xfa,
		0xd8, 0x1b, 0xeb, 0x90, 0x8c, 0x65, 0x26, 0x86, 0x95, 0x69, 0x60, 0xe4, 0x22, 0x6c, 0x64, 0x49,
		0xe0, 0x43, 0x5a, 0x90, 0x28, 0x0d, 0x0a, 0xa5, 0x41, 0xe0, 0x2a, 0xe8, 0x63, 0x83, 0x5a, 0xc6,
		0x29, 0xec, 0x49, 0x19, 0xe1, 0xd2, 0xae, 0x48, 0x3e, 0x83, 0xcf, 0xed, 0xa9, 0x8a, 0x04, 0x30,
		0xd8, 0xe0, 0x5d, 0x86, 0x2f, 0x92, 0x6c, 0xc9, 0x92, 0x04, 0x2f, 0xec, 0xd9, 0x8e, 0x90, 0x0c,
		0x5f, 0x4c, 0x3f, 0x2f, 0x47, 0xbc, 0x9b, 0x86, 0x11, 0x6f, 0x36, 0x00, 0xed, 0x56, 0xdc, 0xee,
		0xf9, 0x90, 0xee, 0xb4, 0x66, 0x30, 0xff, 0xa0, 0xb3, 0x14, 0x59, 0x53, 0xe4, 0xbb, 0x8b, 0x83,
		0x49, 0xce, 0xb4, 0x5c, 0x84, 0x4a, 0xd9, 0x60, 0x74, 0x18, 0x8e, 0x36, 0x03, 0xd2, 0x65, 0x48,
		0xda, 0x0d, 0x4a, 0xbb, 0x61, 0xe9, 0x34, 0x30, 0x35, 0x2a, 0x25, 0x49, 0x22, 0xe5, 0xa3, 0x5d,
		0xeb, 0x68, 0x48, 0x04, 0x8c, 0x0f, 0x55, 0xb6, 0xcb, 0xec, 0x90, 0xd9, 0xcb, 0x75, 0x06, 0x14,
		0xde, 0x06, 0xaf, 0x8d, 0x25, 0xff, 0x56, 0x58, 0x2f, 0xb3, 0xb7, 0x24, 0xde, 0x12, 0xb7, 0x5d,
		0x46, 0x42, 0x45, 0xc3, 0xd2, 0x69, 0xf5, 0xcf, 0x59, 0xbf, 0xea, 0x63, 0xe3, 0xcc, 0x1d, 0xc1,
		0xb3, 0x0e, 0x21, 0xd5, 0x02, 0x28, 0x7f, 0xfd, 0xcf, 0x0f, 0xc5, 0x7c, 0xfa, 0xea, 0x43, 0x3e,
		0xdf, 0x27, 0x61, 0xe7, 0x35, 0xca, 0x23, 0xdb, 0x76, 0xd4, 0x11, 0xc2, 0x6c, 0x20, 0x49, 0x5f,
		0xa3, 0x72, 0xe7, 0x36, 0x1f, 0x24, 0xda, 0xa5, 0x72, 0xdb, 0xe4, 0x0a, 0xa0, 0x06, 0xa0, 0x06,
		0xa0, 0x26, 0xc5, 0x6e, 0xb9, 0xf1, 0x3c, 0x97, 0x12, 0xae, 0x03, 0xd5, 0x34, 0x81, 0x6a, 0x8a,
		0x40, 0x35, 0xce, 0x88, 0xf1, 0x9e, 0x20, 0x62, 0x0c, 0x6c, 0x53, 0x24, 0xb6, 0x59, 0x58, 0x06,
		0x20, 0x9c, 0x0c, 0x10, 0xce, 0x24, 0xb3, 0x54, 0x19, 0xdf, 0x4c, 0x86, 0x29, 0x12, 0xdd, 0x34,
		0x00, 0x6d, 0x00, 0x6d, 0x00, 0x6d, 0xb2, 0x87, 0x36, 0x63, 0xc6, 0xc5, 0x66, 0x4b, 0x03, 0xb2,
		0xd9, 0x55, 0x18, 0xe2, 0x92, 0xf0, 0x61, 0x29, 0x60, 0xc5, 0x29, 0xe3, 0xfa, 0x4e, 0xf5, 0x38,
		0xeb, 0x49, 0xde, 0x29, 0xac, 0x8d, 0x77, 0x1c, 0x10, 0x5b, 0x30, 0x8f, 0x1f, 0xb1, 0x21, 0x93,
		0x4d, 0xcc, 0x7f, 0x7e, 0x2f, 0xd0, 0x21, 0x11, 0xec, 0x8e, 0x4a, 0xe5, 0xc3, 0x6b, 0xdc, 0xd6,
		0xcb, 0x4b, 0x41, 0x1e, 0xf4, 0x2f, 0xc5, 0x56, 0x6b, 0x7f, 0x6b, 0x7f, 0x67, 0xb7, 0xb5, 0xbf,
		0xfd, 0xfe, 0xd6, 0xa4, 0xea, 0x70, 0x29, 0xd3, 0x9b, 0xa9, 0xce, 0x83, 0x90, 0xcb, 0x5f, 0x54,
		0xbf, 0x3c, 0xf4, 0xec, 0x3a, 0x7d, 0x10, 0x07, 0x22, 0x7e, 0x9d, 0x28, 0x82, 0xc7, 0xfa, 0xb4,
		0xdc, 0xd6, 0x50, 0x53, 0xad, 0xc5, 0x78, 0x7b, 0x69, 0xb8, 0x51, 0xcc, 0xbc, 0x6a, 0x68, 0xda,
		0xcb, 0xfd, 0x74, 0x69, 0x54, 0x6b, 0x9f, 0x57, 0x48, 0xab, 0x5a, 0xcc, 0x32, 0x5a, 0xfa, 0x6d,
		0x43, 0xea, 0xde, 0xdd, 0x52, 0x4a, 0xc1, 0x5a, 0x14, 0x66, 0xe9, 0xb7, 0xeb, 0x29, 0x6c, 0xcd,
		0x2a, 0x99, 0x2e, 0x45, 0x0a, 0x89, 0x1c, 0x6f, 0x51, 0xe2, 0x2b, 0xa6, 0xbe, 0x22, 0x40, 0x32,
		0x83, 0x36, 0xec, 0x8e, 0x07, 0xb7, 0xcf, 0x6f, 0xd4, 0xa9, 0xcb, 0xfb, 0xf4, 0x69, 0xea, 0xae,
		0x36, 0x64, 0x1e, 0xac, 0x66, 0xe2, 0x27, 0x26, 0x09, 0xab, 0xd2, 0x7e, 0x22, 0xcd, 0x7b, 0xc6,
		0xb5, 0xa9, 0x94, 0xf5, 0x13, 0x2d, 0xf8, 0x09, 0xf8, 0x89, 0xd7, 0xe2, 0x65, 0xb2, 0x49, 0x4f,
		0xc4, 0x19, 0x31, 0x5e, 0x0f, 0x27, 0xe1, 0x54, 0xe5, 0x98, 0xdf, 0xd2, 0x68, 0x08, 0xa3, 0x21,
		0x8c, 0xf6, 0x0e, 0xc2, 0x68, 0xa7, 0x84, 0x3b, 0x44, 0x78, 0xc1, 0x63, 0x7a, 0xff, 0x9e, 0x41,
		0x28, 0x8e, 0xf2, 0xf1, 0x88, 0x06, 0x44, 0x21, 0xef, 0x70, 0xe9, 0xbc, 0xda, 0x52, 0x18, 0xa3,
		0xc3, 0xc7, 0x23, 0xf5, 0x9d, 0xdb, 0xf7, 0x7a, 0x93, 0x6c, 0x30, 0x1d, 0x71, 0x9c, 0x5a, 0x23,
		0x9a, 0xa3, 0xaf, 0x17, 0x3a, 0xee, 0xef, 0x9a, 0xd1, 0x50, 0x47, 0xe7, 0x7f, 0x9c, 0xe9, 0x18,
		0xac, 0x15, 0xbf, 0x9d, 0xea, 0xf4, 0xfa, 0xdd, 0xb3, 0x2f, 0x6a, 0xb7, 0x5a, 0x8a, 0x61, 0xb3,
		0x5a, 0xdf, 0xeb, 0x72, 0xa1, 0x67, 0xb2, 0xe3, 0xc9, 0x91, 0x36, 0x8a, 0x65, 0xa9, 0xa6, 0x53,
		0x93, 0x1a, 0x09, 0x3d, 0x3b, 0xda, 0xd7, 0x8b, 0xe8, 0x7c, 0x28, 0x28, 0x96, 0x95, 0xaf, 0x77,
		0x92, 0x8e, 0x39, 0xa9, 0xc5, 0x9e, 0x72, 0x89, 0x41, 0xe9, 0x8f, 0x45, 0x69, 0x8a, 0x49, 0x69,
		0xb0, 0x45, 0xed, 0xd3, 0xee, 0xf9, 0xd3, 0x63, 0x81, 0xb8, 0x98, 0x6e, 0x4c, 0xb7, 0x8e, 0xe9,
		0xce, 0xf5, 0x76, 0x1d, 0x59, 0x48, 0xc8, 0x42, 0x42, 0x16, 0x92, 0xde, 0x4f, 0x97, 0x39, 0x0b,
		0xc9, 0xf6, 0xc6, 0xd1, 0xdc, 0x6b, 0x08, 0x4a, 0xcc, 0x47, 0x52, 0x0b, 0x48, 0x34, 0x11, 0x90,
		0x40, 0x40, 0xc2, 0x04, 0xc8, 0x2f, 0x1b, 0x0b, 0x7c, 0x32, 0x3d, 0x12, 0x04, 0x8c, 0x06, 0x93,
		0x72, 0x93, 0x2c, 0x02, 0x31, 0xa1, 0xfa, 0x82, 0xcf, 0xad, 0xf1, 0x99, 0xc1, 0x15, 0x57, 0x4a,
		0x2d, 0x62, 0xa8, 0xcd, 0x50, 0x75, 0x1a, 0xac, 0x76, 0xc3, 0xcd, 0xe3, 0xc0, 0xd7, 0x62, 0xc8,
		0xf9, 0x9e, 0xf6, 0x8a, 0x86, 0xad, 0xe9, 0x00, 0x57, 0x0d, 0xd9, 0xa8, 0x46, 0x0f, 0x5f, 0x3a,
		0x32, 0x77, 0xb6, 0x74, 0xec, 0xb8, 0xa9, 0x79, 0xee, 0x69, 0x18, 0x4a, 0x4f, 0x8e, 0x9f, 0x3e,
		0xf0, 0x3e, 0x17, 0x4c, 0x67, 0xce, 0xdf, 0x7c, 0x50, 0xcd, 0xb9, 0x7f, 0xf3, 0x71, 0xb3, 0xca,
		0x37, 0x7b, 0xda, 0x46, 0xba, 0xf3, 0xce, 0x34, 0x59, 0xca, 0xf2, 0x92, 0x69, 0xcc, 0x0d, 0x5c,
		0x5b, 0x32, 0x3d, 0xc5, 0x8a, 0xab, 0xba, 0x8a, 0x1f, 0xca, 0x31, 0xca, 0x55, 0xa1, 0x5e, 0x5b,
		0x39, 0x32, 0xab, 0xd7, 0x8d, 0xe5, 0x12, 0xa9, 0xcd, 0x2e, 0xa6, 0xa5, 0x39, 0xb6, 0xa5, 0xd1,
		0xe1, 0x64, 0xb6, 0x3c, 0xfa, 0x42, 0x8c, 0xe6, 0x2d, 0x8b, 0xd2, 0x08, 0x57, 0x8a, 0x96, 0xab,
		0x31, 0x14, 0x39, 0x1f, 0x73, 0x9e, 0x81, 0x51, 0x3a, 0x68, 0xf3, 0x54, 0xd1, 0xc6, 0x0f, 0xa8,
		0x4d, 0x84, 0xf4, 0x93, 0xf5, 0x3c, 0xe8, 0xc8, 0x73, 0xe6, 0x12, 0xea, 0x0a, 0x96, 0xe6, 0x42,
		0x4f, 0x9e, 0xb5, 0x98, 0x85, 0xb9, 0xc7, 0x29, 0xac, 0xe9, 0xfb, 0x15, 0x5c, 0x7b, 0x8d, 0xf1,
		0xfa, 0x4d, 0xe0, 0x11, 0xc7, 0x26, 0xa1, 0xa8, 0xfb, 0x3f, 0x84, 0xc6, 0xf8, 0xc8, 0xfa, 0xd0,
		0x88, 0x8e, 0x20, 0x3a, 0x82, 0xe8, 0x08, 0xa2, 0x23, 0x88, 0x8e, 0x20, 0x3a, 0x82, 0xe8, 0x08,
		0xa2, 0x23, 0xef, 0x22, 0x3a, 0x92, 0x05, 0xc7, 0xd2, 0x97, 0xf6, 0x91, 0x21, 0xcd, 0x4a, 0x98,
		0x7f, 0xf0, 0xdb, 0x61, 0x97, 0x7f, 0x9e, 0xe1, 0xc4, 0x8b, 0x1f, 0x22, 0xfc, 0xf4, 0x9d, 0x47,
		0x1f, 0xdd, 0x6a, 0xed, 0x6f, 0x1e, 0x58, 0xa7, 0x84, 0x93, 0x61, 0xdc, 0x39, 0xcd, 0xea, 0xf2,
		0x81, 0x17, 0x8c, 0xe2, 0x38, 0x81, 0xf5, 0x99, 0x84, 0xf3, 0xae, 0x59, 0xdf, 0x79, 0x3c, 0x36,
		0xa7, 0xc2, 0xba, 0x98, 0x35, 0x0b, 0xfa, 0xa5, 0x7b, 0xf1, 0xeb, 0x27, 0xc3, 0xd8, 0x9d, 0xee,
		0x2c, 0x93, 0x62, 0x08, 0x5e, 0xf1, 0xab, 0x0e, 0xff, 0x55, 0x0e, 0x5e, 0xe9, 0xb0, 0xd0, 0x26,
		0x81, 0xa3, 0x97, 0x51, 0xce, 0x07, 0x05, 0x97, 0x04, 0x97, 0x04, 0x97, 0x04, 0x97, 0x04, 0x97,
		0x04, 0x97, 0x04, 0x97, 0x04, 0x97, 0x04, 0x97, 0x04, 0x97, 0x1c, 0x74, 0xf9, 0xd1, 0x14, 0x1f,
		0x82, 0x44, 0xbe, 0x03, 0x12, 0x99, 0xc5, 0x72, 0xc3, 0x63, 0x95, 0x83, 0x3d, 0xd2, 0x20, 0xf0,
		0x02, 0xbd, 0xdc, 0x71, 0x3a, 0x24, 0x98, 0x23, 0x98, 0x23, 0x98, 0x23, 0x98, 0x23, 0x98, 0x23,
		0x98, 0x23, 0x98, 0x23, 0x98, 0x23, 0x98, 0x23, 0x98, 0xe3, 0xa0, 0xcb, 0x3b, 0x31, 0x3a, 0x04,
		0x6f, 0x7c, 0x17, 0xbc, 0x51, 0xf7, 0x62, 0xc3, 0x5b, 0x95, 0x83, 0x35, 0x0e, 0xec, 0x30, 0x0b,
		0xe6, 0xb8, 0x30, 0x2c, 0xd8, 0x23, 0xd8, 0x23, 0xd8, 0x23, 0xd8, 0x23, 0xd8, 0x23, 0xd8, 0x23,
		0xd8, 0x23, 0xd8, 0xe3, 0xbb, 0x60, 0x8f, 0xe5, 0x7f, 0xe1, 0x8b, 0x27, 0xa4, 0xb2, 0x1b, 0x0b,
		0x4f, 0x48, 0x25, 0x40, 0x07, 0x9e, 0x90, 0x16, 0x47, 0xf2, 0xf1, 0x84, 0xb4, 0x74, 0xb4, 0x7b,
		0x34, 0x76, 0x05, 0xcb, 0xe6, 0x09, 0xe9, 0xca, 0xd0, 0xa0, 0xdf, 0xa0, 0xdf, 0xa0, 0xdf, 0xa0,
		0xdf, 0xa0, 0xdf, 0xa0, 0xdf, 0xa0, 0xdf, 0xa0, 0xdf, 0xef, 0x82, 0x7e, 0xe3, 0xf2, 0xf6, 0xed,
		0xc7, 0x84, 0xa7, 0x33, 0x9c, 0x88, 0x27, 0xa4, 0xef, 0xe8, 0x09, 0x69, 0x46, 0xab, 0x0e, 0xff,
		0x55, 0x0e, 0x5e, 0xe9, 0xd9, 0x82, 0x6a, 0xe6, 0x93, 0xd3, 0x21, 0xc1, 0x23, 0xc1, 0x23, 0xc1,
		0x23, 0xc1, 0x23, 0xc1, 0x23, 0xc1, 0x23, 0xc1, 0x23, 0xc1, 0x23, 0xc1, 0x23, 0xc1, 0x23, 0x63,
		0x46, 0x71, 0x1e, 0xe3, 0x43, 0x10, 0xc8, 0x77, 0x42, 0x20, 0x75, 0x2f, 0x37, 0x3c, 0x56, 0x39,
		0x98, 0xa3, 0xf6, 0x7b, 0x48, 0xdc, 0x3e, 0x82, 0x35, 0x82, 0x35, 0x82, 0x35, 0x82, 0x35, 0x82,
		0x35, 0x82, 0x35, 0x82, 0x35, 0x82, 0x35, 0xbe, 0x13, 0xd6, 0xd8, 0xdc, 0x3f, 0xb0, 0x2e, 0xe9,
		0xc8, 0x13, 0xd4, 0x3a, 0xa3, 0xe2, 0xde, 0x0b, 0x7e, 0x58, 0xa7, 0x1e, 0x67, 0xc2, 0x0b, 0x18,
		0x1f, 0xbe, 0x46, 0x16, 0xc0, 0x21, 0xcd, 0xe7, 0x90, 0x25, 0x58, 0x7c, 0x78, 0xb3, 0x72, 0x30,
		0xca, 0x31, 0xcf, 0x28, 0xc3, 0x75, 0x69, 0x60, 0x30, 0x4c, 0x30, 0x4c, 0x30, 0x4c, 0x30, 0x4c,
		0x30, 0x4c, 0x30, 0x4c, 0x30, 0x4c, 0x30, 0x4c, 0x30, 0xcc, 0xea, 0x33, 0xcc, 0x44, 0x17, 0x55,
		0x5f, 0x91, 0xdb, 0xfa, 0xce, 0xae, 0x26, 0xbf, 0x22, 0xaf, 0xb5, 0xba, 0x5c, 0xf2, 0x07, 0xf7,
		0xee, 0x79, 0xdd, 0x8f, 0x96, 0x47, 0x37, 0x9b, 0x5c, 0x1a, 0x1a, 0x7c, 0x12, 0x7c, 0x12, 0x7c,
		0x12, 0x7c, 0x12, 0x7c, 0x12, 0x7c, 0x12, 0x7c, 0x12, 0x7c, 0xf2, 0x5d, 0xf0, 0x49, 0x94, 0x2b,
		0x42, 0xb9, 0x22, 0x84, 0x1a, 0xa4, 0x42, 0x0d, 0x5d, 0xfe, 0x75, 0x42, 0x20, 0x2e, 0x74, 0xf0,
		0x07, 0xc4, 0x08, 0x32, 0x8c, 0x11, 0xac, 0x2e, 0x55, 0xf5, 0x0e, 0x91, 0x8f, 0x28, 0x25, 0x56,
		0x62, 0x63, 0x43, 0x29, 0x31, 0x84, 0xc6, 0x34, 0x87, 0xc6, 0x5c, 0x12, 0x8a, 0xba, 0xed, 0x52,
		0x12, 0xe8, 0x8b, 0x89, 0x2d, 0x8c, 0x89, 0x60, 0x18, 0x82, 0x61, 0x08, 0x86, 0x95, 0x28, 0x18,
		0x26, 0xd8, 0x88, 0x0a, 0x66, 0xff, 0x08, 0x4b, 0x17, 0x0e, 0xfb, 0xca, 0x27, 0xcc, 0xbf, 0xc6,
		0x09, 0xf7, 0x42, 0x6a, 0x7b, 0xdc, 0xd1, 0x71, 0xd4, 0x21, 0xcc, 0x86, 0x30, 0x1b, 0xc2, 0x6c,
		0x08, 0xb3, 0x21, 0xcc, 0x96, 0x4b, 0x98, 0x4d, 0x50, 0x97, 0x8e, 0xa8, 0x08, 0x1e, 0xeb, 0x1e,
		0xaf, 0xdb, 0xb7, 0xb1, 0xef, 0x45, 0xb8, 0x2d, 0x97, 0x0d, 0xa6, 0x42, 0x03, 0xbc, 0xb1, 0xa8,
		0xdf, 0x04, 0x1e, 0x71, 0x32, 0x48, 0xb8, 0x7e, 0x66, 0x6c, 0xd0, 0x02, 0xd0, 0x02, 0xd0, 0x82,
		0x12, 0xd1, 0x02, 0xdc, 0x91, 0x03, 0xbc, 0x03, 0xbc, 0x03, 0xbc, 0x03, 0xbc, 0x67, 0xe7, 0xb5,
		0x71, 0x11, 0xfa, 0x56, 0x06, 0xee, 0xf9, 0x58, 0x7c, 0x9e, 0x01, 0x45, 0x24, 0x5e, 0xbf, 0x9b,
		0xc4, 0xeb, 0xec, 0x96, 0x1d, 0x1e, 0x4c, 0xd3, 0xf7, 0xab, 0x72, 0x4b, 0x87, 0x85, 0x36, 0x09,
		0x1c, 0xcd, 0xac, 0x72, 0x3e, 0x2a, 0xf8, 0x24, 0xf8, 0x24, 0xf8, 0x24, 0xf8, 0x24, 0xf8, 0x24,
		0xf8, 0x24, 0xf8, 0x24, 0xf8, 0x24, 0xf8, 0x24, 0xf8, 0xe4, 0xe0, 0x7c, 0x2c, 0x8e, 0xa6, 0x00,
		0x11, 0x44, 0xf2, 0x1d, 0x10, 0xc9, 0x4c, 0xd6, 0x1b, 0x3e, 0xab, 0x24, 0x0c, 0x92, 0x06, 0x81,
		0x17, 0x68, 0xe6, 0x8f, 0xd3, 0x31, 0xc1, 0x1e, 0xc1, 0x1e, 0xc1, 0x1e, 0xc1, 0x1e, 0xc1, 0x1e,
		0xc1, 0x1e, 0xc1, 0x1e, 0xc1, 0x1e, 0xc1, 0x1e, 0xc1, 0x1e, 0x23, 0x36, 0xd1, 0x89, 0xe1, 0x21,
		0xb8, 0xe3, 0xfb, 0xe0, 0x8e, 0xba, 0x57, 0x1b, 0xfe, 0xaa, 0x24, 0xcc, 0x71, 0x34, 0xeb, 0x58,
		0x9b, 0x41, 0x5e, 0xeb, 0xca, 0xd8, 0x60, 0x92, 0x60, 0x92, 0x60, 0x92, 0x60, 0x92, 0x60, 0x92,
		0x60, 0x92, 0x60, 0x92, 0x60, 0x92, 0x60, 0x92, 0x60, 0x92, 0x93, 0x04, 0xc7, 0xd3, 0x19, 0x50,
		0x44, 0x5e, 0xeb, 0x7b, 0xca, 0x6b, 0xcd, 0x68, 0xd9, 0xe1, 0xc1, 0x4a, 0xc2, 0x2d, 0xbd, 0xb8,
		0x99, 0xad, 0x5e, 0x4e, 0x39, 0x1d, 0x13, 0x5c, 0x12, 0x5c, 0x12, 0x5c, 0x12, 0x5c, 0x12, 0x5c,
		0x12, 0x5c, 0x12, 0x5c, 0x12, 0x5c, 0x12, 0x5c, 0x12, 0x5c, 0x72, 0x42, 0x2a, 0xce, 0x63, 0x80,
		0x08, 0x12, 0xf9, 0x5e, 0x48, 0xa4, 0xee, 0xf5, 0x86, 0xcf, 0x2a, 0x09, 0x7b, 0xd4, 0x7f, 0x1f,
		0x89, 0x5b, 0x48, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30,
		0x47, 0x30, 0xc7, 0x77, 0xc2, 0x1c, 0x9b, 0xfb, 0x07, 0xd6, 0x25, 0x1d, 0x79, 0x82, 0x5a, 0x67,
		0x54, 0xdc, 0x7b, 0xc1, 0x0f, 0xeb, 0xd4, 0xe3, 0x4c, 0x78, 0x01, 0xe3, 0xc3, 0xd7, 0xe8, 0x02,
		0x68, 0xa4, 0xf9, 0x34, 0xb2, 0x04, 0x8b, 0x0f, 0x6f, 0x56, 0x12, 0x4e, 0x39, 0xe6, 0x59, 0xe5,
		0xba, 0x2e, 0x8d, 0x0c, 0x8e, 0x09, 0x8e, 0x09, 0x8e, 0x09, 0x8e, 0x09, 0x8e, 0x09, 0x8e, 0x09,
		0x8e, 0x09, 0x8e, 0x09, 0x8e, 0x59, 0x7d, 0x8e, 0x99, 0xec, 0xb6, 0xea, 0x2b, 0xb2, 0x5c, 0xdf,
		0xdb, 0x05, 0xe5, 0x57, 0x64, 0xb8, 0x96, 0x97, 0x4f, 0x7e, 0xc8, 0xd1, 0x53, 0xaa, 0x37, 0xa8,
		0x51, 0xe4, 0xab, 0x59, 0xf6, 0x7d, 0xd6, 0xdf, 0x80, 0x46, 0x53, 0xe3, 0x19, 0xb9, 0x25, 0x96,
		0xec, 0xf5, 0x5a, 0x6b, 0x73, 0xee, 0x89, 0x78, 0x46, 0x95, 0xbc, 0x68, 0x2d, 0xb4, 0x6f, 0xe9,
		0x88, 0xf8, 0x44, 0xdc, 0x46, 0xda, 0x6f, 0x78, 0x3e, 0xe5, 0x76, 0x4c, 0xe7, 0xeb, 0x6c, 0xee,
		0x6c, 0x36, 0x9e, 0xfb, 0x71, 0x23, 0x1c, 0xdf, 0x2c, 0xfc, 0xfb, 0xe2, 0x6f, 0x1b, 0xa1, 0x20,
		0x82, 0x6e, 0x4c, 0xb9, 0x90, 0x4a, 0x94, 0xa2, 0x16, 0x8a, 0x60, 0x6c, 0x0b, 0x3e, 0x3d, 0x00,
		0xcf, 0xe7, 0xd2, 0x3d, 0x79, 0xc2, 0xeb, 0xe7, 0x7e, 0xbc, 0xee, 0x2d, 0x0a, 0xb7, 0xf4, 0xdb,
		0x75, 0x2f, 0x12, 0xee, 0xfa, 0x70, 0x26, 0xdc, 0x87, 0x7c, 0xd6, 0x5a, 0xc2, 0x94, 0x6b, 0xb6,
		0x3f, 0x96, 0x5e, 0xdc, 0x27, 0x46, 0xea, 0x8f, 0x25, 0x17, 0x40, 0x31, 0x3c, 0xa4, 0x1c, 0x16,
		0xd2, 0x11, 0x0e, 0xd2, 0x16, 0x06, 0xd2, 0x05, 0x59, 0xb4, 0x87, 0x7d, 0xb4, 0xe3, 0x11, 0x9d,
		0x61, 0x9e, 0x7c, 0x8f, 0x3d, 0xe5, 0x70, 0xce, 0x7c, 0xb7, 0xdc, 0x78, 0x9e, 0x4b, 0x09, 0x57,
		0xd9, 0x2f, 0x53, 0xe3, 0x69, 0x36, 0xdf, 0xf9, 0xc9, 0xaf, 0xbf, 0x15, 0x5d, 0x79, 0x11, 0xc0,
		0x47, 0x00, 0x2e, 0x4c, 0x37, 0xf0, 0xad, 0x1a, 0xe1, 0x92, 0x41, 0x4a, 0x0e, 0x0d, 0xed, 0x80,
		0xf9, 0x4a, 0x70, 0x78, 0xee, 0xfc, 0x17, 0x07, 0x03, 0x72, 0x02, 0x72, 0x02, 0x72, 0x4a, 0xb1,
		0x5b, 0x42, 0x11, 0x30, 0x3e, 0xd4, 0x01, 0x9c, 0xf6, 0x72, 0x9d, 0x01, 0x8d, 0x41, 0x65, 0x8d,
		0xc1, 0x64, 0x8d, 0x37, 0x93, 0x09, 0x23, 0x89, 0x6d, 0x97, 0x91, 0xb0, 0xe4, 0xd7, 0xe5, 0xba,
		0x43, 0xbb, 0xf9, 0xdc, 0x98, 0xa7, 0x5a, 0x80, 0xa2, 0x2f, 0xd6, 0x3f, 0xe4, 0x1b, 0x60, 0xcd,
		0x27, 0x9e, 0x42, 0x79, 0x64, 0xdb, 0x8e, 0x3a, 0x42, 0x98, 0x0d, 0x24, 0xe9, 0x6b, 0x8e, 0xe8,
		0x80, 0x8c, 0x5d, 0xa1, 0xe4, 0x1d, 0x6a, 0xd1, 0x2e, 0xad, 0xe5, 0x1a, 0x72, 0x04, 0xa8, 0x01,
		0xa8, 0x41, 0x38, 0xc8, 0xa8, 0x70, 0x10, 0x50, 0xcd, 0xf4, 0x50, 0x75, 0x46, 0x8c, 0xf7, 0x04,
		0x11, 0x63, 0x60, 0x9b, 0x22, 0xb1, 0xcd, 0xc2, 0x32, 0x00, 0xe1, 0x64, 0x80, 0x70, 0xd8, 0x80,
		0x71, 0x87, 0x3e, 0xa8, 0x23, 0x9c, 0xd9, 0x40, 0x80, 0x0a, 0x80, 0x0a, 0x80, 0x0a, 0x29, 0x76,
		0xcb, 0x98, 0x71, 0xb1, 0xd9, 0xd2, 0x80, 0x14, 0x76, 0x15, 0x86, 0xd0, 0x93, 0xed, 0xab, 0xe1,
		0x98, 0xd6, 0x99, 0xdd, 0xab, 0x3b, 0xab, 0x37, 0xb3, 0x3c, 0x50, 0xfd, 0xf9, 0x9f, 0x1a, 0xb2,
		0x77, 0xb5, 0x66, 0xed, 0xce, 0x97, 0x62, 0xab, 0xb5, 0xbf, 0xb5, 0xbf, 0xb3, 0xdb, 0xda, 0xdf,
		0x7e, 0x7f, 0x6b, 0x62, 0x16, 0xfc, 0xc0, 0x7d, 0x72, 0xd2, 0x73, 0x10, 0x17, 0x9c, 0xb8, 0x4f,
		0xc6, 0x74, 0xe7, 0x30, 0xdd, 0xb9, 0x06, 0x2f, 0xdf, 0x4d, 0x24, 0xc4, 0xaa, 0xbf, 0xc8, 0xc1,
		0x11, 0xfa, 0xc8, 0x30, 0xf4, 0xf1, 0xda, 0xbc, 0x23, 0xd6, 0x91, 0x45, 0xac, 0x43, 0x53, 0xa4,
		0x43, 0x25, 0xce, 0xa1, 0xe5, 0x26, 0xa7, 0x81, 0x6b, 0x1c, 0xc4, 0x66, 0x10, 0x9b, 0x41, 0x6c,
		0x06, 0xb1, 0x19, 0xc4, 0x66, 0x10, 0x9b, 0x79, 0x7f, 0xb1, 0x99, 0x5c, 0xe0, 0x92, 0x4b, 0x42,
		0x31, 0x8b, 0x97, 0x28, 0x83, 0xa6, 0xc5, 0xc1, 0x00, 0x43, 0x00, 0x43, 0x00, 0x43, 0x52, 0xec,
		0x16, 0xc1, 0x46, 0x54, 0x30, 0xfb, 0x47, 0xa8, 0x54, 0x25, 0x46, 0x43, 0x75, 0x98, 0xda, 0x57,
		0x3e, 0x71, 0xe4, 0x35, 0x4e, 0xb8, 0x17, 0x52, 0xdb, 0xe3, 0x8e, 0xd2, 0x6b, 0x4d, 0x60, 0x1b,
		0x60, 0x9b, 0x5c, 0xb0, 0x4d, 0x76, 0x55, 0x62, 0x80, 0x72, 0xb2, 0x42, 0x39, 0xb8, 0x81, 0x4a,
		0x7a, 0xcc, 0xe2, 0x4a, 0x04, 0x37, 0x50, 0x98, 0xee, 0x1c, 0xa6, 0xbb, 0xc4, 0x2f, 0x1a, 0x5d,
		0x6f, 0xc8, 0x6c, 0xe2, 0x6a, 0xa0, 0x6a, 0xd3, 0x81, 0x40, 0xd3, 0x40, 0xd3, 0x40, 0xd3, 0x52,
		0xec, 0x16, 0xd4, 0x80, 0x00, 0x62, 0xc2, 0x11, 0x8e, 0xe9, 0xc6, 0x74, 0x9b, 0x81, 0x98, 0x46,
		0xf3, 0x42, 0x87, 0xea, 0xa0, 0x69, 0x61, 0x2c, 0xe0, 0x26, 0xe0, 0x26, 0xe0, 0x26, 0xe0, 0x26,
		0xe0, 0x26, 0x1c, 0xe4, 0x98, 0x6e, 0x4c, 0x77, 0xe5, 0x70, 0xd3, 0xb4, 0xb8, 0xaa, 0x22, 0x62,
		0x8a, 0x47, 0x01, 0x56, 0x02, 0x56, 0x02, 0x56, 0x4a, 0xb1, 0x5b, 0x4c, 0xad, 0x96, 0x05, 0xa8,
		0x84, 0xb3, 0x1b, 0x67, 0x77, 0xf1, 0x67, 0x77, 0x34, 0xfd, 0xf5, 0x70, 0x52, 0x50, 0x43, 0xf9,
		0x08, 0x5f, 0x1c, 0x0c, 0x27, 0x39, 0x4e, 0xf2, 0x77, 0x70, 0x92, 0x9f, 0x12, 0xee, 0x10, 0xe1,
		0x05, 0x8f, 0xd1, 0x11, 0x5a, 0x38, 0x1a, 0xa0, 0x7c, 0x3c, 0x9a, 0xba, 0x53, 0x1d, 0x90, 0x60,
		0x4b, 0x61, 0x8c, 0x0e, 0x1f, 0x8f, 0xd4, 0x77, 0x6e, 0xdf, 0xeb, 0x4d, 0x00, 0x8e, 0x96, 0x1e,
		0x4d, 0xcd, 0x68, 0x8e, 0xbe, 0x5e, 0xe8, 0x78, 0xc5, 0xd8, 0x8a, 0x86, 0x3a, 0x3a, 0xff, 0xe3,
		0x4c, 0xc7, 0x60, 0x9b, 0xd1, 0x60, 0xfd, 0x4e, 0xaf, 0xdf, 0x3d, 0xfb, 0xa2, 0x63, 0xbc, 0xad,
		0x58, 0xcf, 0xb3, 0xdf, 0xcf, 0x34, 0xc9, 0xb7, 0x3d, 0x51, 0xf6, 0xf2, 0xb4, 0x7d, 0xd6, 0xd7,
		0x31, 0xde, 0x4e, 0x34, 0xde, 0xd9, 0x79, 0xff, 0xfa, 0xe2, 0xb2, 0xd3, 0xeb, 0xe8, 0x19, 0x73,
		0x37, 0x1a, 0xf3, 0xe4, 0xfc, 0x8f, 0xce, 0xe5, 0xf5, 0x49, 0xfb, 0xaf, 0xce, 0xe5, 0x75, 0xbc,
		0x38, 0xc5, 0x36, 0x87, 0xf4, 0xba, 0x0a, 0x57, 0x09, 0x4b, 0x43, 0xcd, 0x26, 0xff, 0xc0, 0xd2,
		0x90, 0xa5, 0x38, 0xd9, 0xb7, 0x07, 0x56, 0x4b, 0xc3, 0x50, 0x6b, 0x33, 0xae, 0xf4, 0xb6, 0xe9,
		0xc9, 0xa1, 0x2d, 0x6c, 0x8e, 0x03, 0x6b, 0x47, 0xc3, 0x88, 0x33, 0xf3, 0x3a, 0xb0, 0x36, 0x35,
		0x8c, 0x36, 0x33, 0xae, 0x03, 0x6b, 0x4b, 0xc7, 0x68, 0x17, 0x91, 0xb7, 0x45, 0x63, 0x29, 0xf0,
		0x3e, 0xf0, 0x3e, 0x4c, 0x37, 0xa6, 0x3b, 0x57, 0x9a, 0x8d, 0x72, 0x20, 0xcf, 0x73, 0x89, 0x84,
		0x15, 0x39, 0xcf, 0x7d, 0x1a, 0xa0, 0x2e, 0x6a, 0xd1, 0x75, 0x51, 0x17, 0x56, 0x01, 0x6f, 0x5f,
		0xb5, 0x7e, 0x22, 0xa5, 0x13, 0x57, 0x6d, 0xab, 0x98, 0x61, 0x3b, 0x45, 0x89, 0x7d, 0x9f, 0x59,
		0xf7, 0xc4, 0x74, 0xbb, 0x34, 0xf9, 0x8a, 0xa5, 0x58, 0xad, 0xda, 0x9d, 0x4b, 0xd2, 0xaf, 0xd1,
		0xdc, 0x3d, 0xc6, 0x9f, 0x4e, 0xb9, 0x37, 0x66, 0x71, 0x95, 0x94, 0x1f, 0x93, 0x0d, 0x6a, 0xaa,
		0x04, 0x33, 0x17, 0x83, 0x98, 0x12, 0xaa, 0xea, 0x70, 0xe6, 0xda, 0xc2, 0x96, 0xda, 0x3c, 0xf5,
		0x6a, 0x98, 0x32, 0x9e, 0x98, 0x92, 0xf9, 0x9f, 0x23, 0x16, 0xc8, 0x2d, 0xb8, 0x3d, 0xdb, 0x65,
		0xaa, 0xed, 0x42, 0x27, 0xe3, 0xa8, 0xc5, 0xff, 0x9b, 0x15, 0x89, 0xff, 0x4b, 0x9a, 0x8e, 0x6e,
		0x3c, 0x64, 0xde, 0x0d, 0x80, 0x9c, 0x69, 0x15, 0x13, 0xd3, 0x90, 0x35, 0xb9, 0xa5, 0x93, 0xa8,
		0xce, 0x1c, 0xf5, 0x65, 0x5e, 0x3c, 0x9c, 0xa2, 0x01, 0x15, 0xd7, 0x44, 0xed, 0x32, 0x4e, 0x9b,
		0x51, 0xea, 0x34, 0xce, 0x0c, 0x8c, 0x34, 0x0f, 0xf2, 0xa2, 0xc5, 0x68, 0xf3, 0x65, 0x2e, 0xca,
		0x46, 0xac, 0x89, 0x8f, 0xa8, 0x06, 0xf1, 0x55, 0x2f, 0xe7, 0xd6, 0x76, 0xdc, 0x98, 0xab, 0x5d,
		0xcf, 0xad, 0x9d, 0x95, 0xfb, 0x3a, 0xc2, 0xe3, 0x13, 0x35, 0xff, 0xd6, 0xb2, 0x0f, 0xf4, 0xec,
		0xff, 0x0c, 0x3c, 0xda, 0x73, 0xd3, 0xb7, 0xa3, 0x71, 0x48, 0x3d, 0xe5, 0x4b, 0xb2, 0x9b, 0xce,
		0xb9, 0xa0, 0x3a, 0xcb, 0x9b, 0xac, 0x0d, 0x3e, 0xaf, 0xb1, 0xf1, 0x31, 0x9b, 0xf1, 0xb3, 0x2a,
		0xb0, 0xb1, 0xbe, 0xf9, 0x74, 0x17, 0xdc, 0xd0, 0xec, 0x9c, 0x9e, 0x5f, 0x5a, 0x8d, 0xe5, 0x52,
		0x5e, 0x5c, 0xda, 0xad, 0xc6, 0xfe, 0x16, 0x56, 0x37, 0xd3, 0x83, 0x2b, 0xbb, 0xd1, 0xae, 0x3e,
		0x94, 0x68, 0xef, 0x66, 0x70, 0x56, 0xfc, 0xc3, 0xf8, 0x3f, 0xd9, 0x9c, 0x15, 0xcd, 0x3d, 0x8d,
		0x63, 0x5e, 0x10, 0x21, 0x68, 0xc0, 0xb5, 0x1f, 0x17, 0xb5, 0x5f, 0xb6, 0x1a, 0xfb, 0x7f, 0x37,
		0xea, 0x5b, 0x57, 0xff, 0xdd, 0x6a, 0xfc, 0xdd, 0xa8, 0xef, 0x5d, 0xfd, 0xdd, 0xa8, 0xef, 0x5f,
		0xfd, 0xf7, 0xef, 0x66, 0x7d, 0x73, 0xf2, 0xe3, 0x7f, 0x36, 0x7f, 0x46, 0xbf, 0xed, 0x4f, 0x7f,
		0x6b, 0x7e, 0x6c, 0x4d, 0x7f, 0xff, 0xf5, 0xfb, 0xf7, 0x4f, 0xbf, 0x28, 0x7c, 0xfc, 0xbf, 0xdf,
		0xbf, 0xff, 0xef, 0xaf, 0x35, 0x7d, 0x1b, 0x55, 0xe7, 0x6c, 0x9f, 0xf7, 0xba, 0x7f, 0x66, 0x36,
		0xe5, 0xff, 0x2e, 0x78, 0xce, 0xff, 0xa7, 0x56, 0x36, 0xef, 0xf0, 0xa1, 0x58, 0x39, 0x54, 0x61,
		0xbf, 0xc6, 0xeb, 0xbd, 0xf9, 0x98, 0xf3, 0x34, 0xdb, 0xd2, 0xa2, 0x6c, 0x87, 0xfa, 0x01, 0xb5,
		0x89, 0xa0, 0x5a, 0x9d, 0xa7, 0x66, 0x5e, 0xfc, 0x1c, 0x3f, 0x0e, 0x75, 0xdd, 0x40, 0xe6, 0xc2,
		0x93, 0x9f, 0xe5, 0xcb, 0x0b, 0x73, 0xff, 0xa1, 0x5c, 0x98, 0xa1, 0x70, 0x5b, 0x36, 0x24, 0x0e,
		0xa8, 0x78, 0xf5, 0xf7, 0xe4, 0x27, 0xb2, 0xb8, 0x02, 0x8c, 0x08, 0xf4, 0x86, 0x52, 0x6c, 0xde,
		0xca, 0xe8, 0x42, 0xf0, 0x9b, 0x4b, 0xf8, 0xf5, 0x34, 0x46, 0x58, 0xe6, 0xde, 0xdf, 0xc3, 0x80,
		0x86, 0x61, 0x7d, 0x44, 0x7c, 0x5f, 0x25, 0x21, 0xf9, 0x29, 0x57, 0x7b, 0x79, 0x3c, 0xdc, 0x97,
		0xe0, 0xbe, 0x44, 0xf6, 0xe8, 0x78, 0x6f, 0xf7, 0x25, 0x8a, 0x57, 0x95, 0x6b, 0x1b, 0x4f, 0xd9,
		0x2d, 0x6a, 0x30, 0x45, 0x6d, 0x26, 0xa9, 0xd3, 0x34, 0x33, 0x30, 0xd1, 0xac, 0x50, 0x21, 0x6e,
		0x4b, 0x74, 0x80, 0x35, 0x55, 0xda, 0xa4, 0x6a, 0xda, 0xf3, 0x81, 0x84, 0xaf, 0xe1, 0x3e, 0x74,
		0x6d, 0xfb, 0xc6, 0xa3, 0x6a, 0x5a, 0x3d, 0x3d, 0x97, 0xa3, 0xda, 0xcd, 0x3e, 0x0b, 0xf3, 0xcf,
		0xd0, 0x0d, 0xe4, 0x49, 0x12, 0xb5, 0xba, 0x85, 0x62, 0x48, 0xa2, 0x36, 0x37, 0xa1, 0x99, 0x21,
		0x6a, 0xda, 0xb3, 0xda, 0x2e, 0x5b, 0xd7, 0x76, 0x2c, 0x73, 0x28, 0x17, 0x4c, 0x3c, 0x06, 0x74,
		0x90, 0x45, 0x5c, 0x78, 0x5b, 0xe3, 0x98, 0xdd, 0xa9, 0xa8, 0x9f, 0x49, 0x98, 0x81, 0x3d, 0xcc,
		0x26, 0xa4, 0x7f, 0xd1, 0x3d, 0xba, 0xee, 0xff, 0x75, 0xd1, 0xe9, 0xe9, 0x36, 0x88, 0xf8, 0x8e,
		0x28, 0xd4, 0x1e, 0x63, 0xb5, 0x32, 0xb9, 0x09, 0x5d, 0x9f, 0x93, 0xc6, 0x9f, 0x7b, 0xcd, 0x46,
		0xa3, 0x66, 0xc2, 0x5d, 0x5f, 0x4e, 0xd3, 0xb1, 0xd7, 0xde, 0xc3, 0x74, 0xcc, 0xa7, 0x63, 0x1f,
		0xbb, 0x63, 0x69, 0x3a, 0x5a, 0x98, 0x8e, 0xf9, 0x74, 0xb4, 0xcf, 0xfe, 0xaa, 0x95, 0xfc, 0x1a,
		0xf9, 0xaa, 0x72, 0xc1, 0x65, 0x1d, 0x3d, 0x66, 0x74, 0x65, 0x60, 0xae, 0x6d, 0x0b, 0xbd, 0x79,
		0x4b, 0x20, 0x1d, 0x20, 0x1d, 0x20, 0x1d, 0xc6, 0x90, 0x0e, 0x24, 0x2d, 0x6a, 0xdd, 0x93, 0x48,
		0x5a, 0x4c, 0xb4, 0xf9, 0x90, 0xb4, 0xf8, 0xc2, 0xd2, 0x22, 0x69, 0x31, 0x77, 0xb4, 0xf9, 0xb3,
		0x72, 0x69, 0x49, 0xda, 0xd0, 0x66, 0x28, 0x88, 0xfd, 0xa3, 0x3e, 0xd9, 0x36, 0x19, 0xe1, 0xce,
		0xa5, 0xaf, 0x00, 0x02, 0x05, 0x02, 0x05, 0x02, 0x7d, 0x8f, 0x08, 0x34, 0x03, 0x37, 0x60, 0x69,
		0x2a, 0x13, 0xb8, 0x36, 0xa6, 0x96, 0xb2, 0x81, 0xeb, 0x13, 0xac, 0xb3, 0x8c, 0xe0, 0xda, 0xe8,
		0x8d, 0x68, 0xa6, 0x2f, 0xbe, 0xf6, 0x7e, 0xab, 0x65, 0x80, 0x8c, 0xe2, 0x9a, 0x85, 0x17, 0xe7,
		0x17, 0x59, 0x8c, 0x1d, 0x17, 0x31, 0xec, 0xfd, 0xd1, 0xbe, 0xd0, 0x1b, 0xb4, 0xd2, 0x0c, 0x10,
		0x35, 0xd6, 0xd1, 0x5b, 0x3f, 0x2d, 0xce, 0x2f, 0xb2, 0xc1, 0xfc, 0x93, 0xfd, 0x90, 0x09, 0x0e,
		0x9c, 0xac, 0xd8, 0x81, 0xd5, 0x2a, 0x29, 0x52, 0x2b, 0x4d, 0x5c, 0xb0, 0xd0, 0x4c, 0x08, 0x4d,
		0xc9, 0xa0, 0xf3, 0xf1, 0xb2, 0x4b, 0x0a, 0x5d, 0x4e, 0x44, 0xdc, 0xd0, 0x92, 0x0c, 0x65, 0x65,
		0x99, 0x2b, 0xda, 0x89, 0x05, 0x3e, 0x9d, 0xc8, 0xab, 0x94, 0x39, 0xaa, 0xbe, 0x55, 0x7e, 0x2a,
		0xe5, 0xd2, 0x12, 0x41, 0xf5, 0x65, 0xb1, 0xc9, 0x16, 0xf9, 0x79, 0xf6, 0x4c, 0xd7, 0x95, 0xc4,
		0xd6, 0x42, 0x12, 0x5b, 0x19, 0x60, 0x3b, 0x92, 0xd8, 0x52, 0xa8, 0x84, 0x24, 0x36, 0xb0, 0x79,
		0xb0, 0x79, 0xb0, 0xf9, 0xd2, 0xb1, 0x79, 0x24, 0xb1, 0xad, 0x4c, 0x08, 0x92, 0xd8, 0x5e, 0x98,
		0x13, 0x24, 0xb1, 0x21, 0x89, 0xed, 0xb5, 0xe9, 0x40, 0x12, 0x1b, 0x92, 0xd8, 0x5e, 0x9a, 0x0e,
		0x24, 0xb1, 0x15, 0x11, 0xac, 0x42, 0x12, 0x1b, 0x48, 0x07, 0x48, 0x07, 0x48, 0x47, 0xe9, 0x48,
		0x07, 0x92, 0xd8, 0xb4, 0xee, 0x49, 0x24, 0xb1, 0x25, 0xda, 0x7c, 0x48, 0x62, 0x7b, 0x61, 0x69,
		0x91, 0xc4, 0x96, 0x3b, 0xda, 0x44, 0x12, 0xdb, 0x8b, 0x68, 0x13, 0x49, 0x6c, 0x40, 0xa0, 0x40,
		0xa0, 0x40, 0xa0, 0x48, 0x62, 0x5b, 0x1c, 0x13, 0x49, 0x6c, 0x2b, 0x83, 0x23, 0x89, 0x0d, 0x49,
		0x6c, 0xab, 0x67, 0x06, 0x92, 0xd8, 0xb2, 0x1f, 0xe1, 0xdd, 0x26, 0xb1, 0xe9, 0xc8, 0x85, 0xb2,
		0xf2, 0xcb, 0x61, 0x93, 0xe8, 0x89, 0xa6, 0x6f, 0xa3, 0xa0, 0x48, 0xe6, 0x6b, 0x5b, 0xa9, 0x8c,
		0xc5, 0x32, 0x97, 0x36, 0x4f, 0x99, 0x6b, 0x66, 0x32, 0xae, 0xb9, 0x68, 0xe6, 0xea, 0x80, 0xa8,
		0x9a, 0x89, 0xaa, 0x99, 0x85, 0xf1, 0x31, 0x54, 0xcd, 0x44, 0xd5, 0xcc, 0x9c, 0x43, 0x2e, 0x48,
		0x38, 0x46, 0xc2, 0xf1, 0x2b, 0x03, 0x21, 0xe1, 0x58, 0x99, 0xf1, 0x22, 0xf2, 0x8a, 0xc8, 0x6b,
		0x5e, 0xd1, 0x01, 0x24, 0x1c, 0x23, 0xe1, 0x78, 0xf6, 0x0d, 0x48, 0x38, 0xce, 0xd2, 0x46, 0x0a,
		0x98, 0x0e, 0x24, 0x1c, 0x23, 0xe1, 0xf8, 0xe5, 0xe9, 0x40, 0xc2, 0x31, 0x12, 0x8e, 0x0b, 0x1d,
		0x05, 0x09, 0xc7, 0x20, 0x1d, 0x20, 0x1d, 0x20, 0x1d, 0xe5, 0x23, 0x1d, 0x48, 0x38, 0xd6, 0xba,
		0x27, 0x91, 0x70, 0x9c, 0x68, 0xf3, 0x21, 0xe1, 0xf8, 0x85, 0xa5, 0x45, 0xc2, 0x71, 0xee, 0x68,
		0x13, 0x09, 0xc7, 0x2f, 0xa2, 0x4d, 0x24, 0x1c, 0x03, 0x81, 0x02, 0x81, 0x02, 0x81, 0x22, 0xe1,
		0x78, 0x71, 0x4c, 0x24, 0x1c, 0xaf, 0x0c, 0x8e, 0x84, 0x63, 0x24, 0x1c, 0xaf, 0x9e, 0x19, 0x48,
		0x38, 0xce, 0x7e, 0x84, 0xf7, 0x93, 0x70, 0xbc, 0x92, 0x89, 0x68, 0x40, 0xd9, 0xcc, 0x2e, 0x47,
		0xdd, 0xcc, 0xe7, 0x4e, 0x7b, 0xd4, 0xcd, 0xcc, 0x1d, 0xc8, 0x23, 0x8d, 0x0d, 0x69, 0x6c, 0xaf,
		0x0c, 0x84, 0x34, 0x36, 0xf0, 0x79, 0xf0, 0x79, 0xf0, 0x79, 0x5d, 0x3b, 0x16, 0x69, 0x6c, 0x2b,
		0x13, 0x82, 0x34, 0xb6, 0x17, 0xe6, 0x04, 0x69, 0x6c, 0x48, 0x63, 0x7b, 0x6d, 0x3a, 0x90, 0xc6,
		0x86, 0x34, 0xb6, 0x97, 0xa6, 0x03, 0x69, 0x6c, 0x45, 0x84, 0xab, 0x90, 0xc6, 0x06, 0xd2, 0x01,
		0xd2, 0x01, 0xd2, 0x51, 0x3a, 0xd2, 0x81, 0x34, 0x36, 0xad, 0x7b, 0x12, 0x69, 0x6c, 0x89, 0x36,
		0x1f, 0xd2, 0xd8, 0x5e, 0x58, 0x5a, 0xa4, 0xb1, 0xe5, 0x8e, 0x36, 0x91, 0xc6, 0xf6, 0x22, 0xda,
		0x44, 0x1a, 0x1b, 0x10, 0x28, 0x10, 0x28, 0x10, 0x28, 0xd2, 0xd8, 0x16, 0xc7, 0x44, 0x1a, 0xdb,
		0xca, 0xe0, 0x48, 0x63, 0x43, 0x1a, 0xdb, 0xea, 0x99, 0x81, 0x34, 0xb6, 0xec, 0x47, 0x78, 0xbf,
		0x69, 0x6c, 0xa5, 0x2f, 0x9c, 0xb9, 0x92, 0xc5, 0x86, 0xca, 0x99, 0xe5, 0xdd, 0x4c, 0x65, 0x2c,
		0x9d, 0xb9, 0xbc, 0x7d, 0xca, 0x5c, 0x3b, 0x73, 0x44, 0x84, 0x7d, 0xab, 0x5e, 0x31, 0x73, 0x32,
		0x0c, 0xea, 0x64, 0xa2, 0x4e, 0x66, 0x61, 0xfc, 0xcb, 0xb0, 0x3a, 0x99, 0x8e, 0x37, 0xbe, 0x71,
		0x69, 0x5d, 0x90, 0xe1, 0x90, 0x3a, 0xfa, 0xd2, 0x8c, 0x97, 0x87, 0x45, 0xd5, 0xcc, 0x1c, 0x03,
		0x2e, 0x48, 0x37, 0x46, 0xba, 0xf1, 0x2b, 0x03, 0x69, 0x2a, 0x8c, 0xbb, 0xb6, 0x81, 0xb5, 0x3d,
		0x09, 0xd1, 0x68, 0xf2, 0xda, 0x4d, 0x3f, 0x0b, 0x17, 0x90, 0xa1, 0x2b, 0xc8, 0xca, 0x25, 0x64,
		0xee, 0x1a, 0x32, 0x77, 0x11, 0xd9, 0xba, 0x0a, 0xcd, 0xf1, 0x01, 0x4d, 0x7b, 0x56, 0x97, 0x0b,
		0x99, 0x0f, 0xc8, 0x38, 0xa7, 0x41, 0x5d, 0x77, 0x42, 0xd1, 0x9a, 0x3d, 0x2c, 0x7f, 0x8d, 0xe6,
		0xf5, 0xd7, 0x7b, 0xc9, 0x93, 0x99, 0xc3, 0xc9, 0xd2, 0xf1, 0xe4, 0xe0, 0x80, 0xb2, 0x76, 0x44,
		0xb9, 0x39, 0xa4, 0xdc, 0x1c, 0x53, 0x3e, 0x0e, 0x4a, 0x7f, 0x48, 0xd4, 0xca, 0x22, 0x2a, 0xae,
		0xfb, 0xd2, 0x68, 0x6d, 0xc7, 0x67, 0xe3, 0x5c, 0xac, 0x6c, 0xd2, 0x98, 0xe6, 0x43, 0x67, 0x93,
		0xce, 0x34, 0xfb, 0xbf, 0x6c, 0x2c, 0xd4, 0xca, 0x3a, 0xbd, 0x69, 0xfe, 0x25, 0x19, 0xa7, 0x39,
		0xcd, 0xbf, 0x27, 0xaf, 0x84, 0x98, 0xa7, 0x4d, 0x9b, 0x75, 0x62, 0x4c, 0x46, 0x76, 0xbc, 0xbc,
		0x05, 0x32, 0x4c, 0x83, 0x5a, 0xdb, 0x02, 0xd9, 0xa5, 0x43, 0xbd, 0x87, 0x5d, 0xf0, 0xc1, 0x8c,
		0x51, 0xaf, 0xca, 0x7a, 0x49, 0xa8, 0x91, 0xc7, 0x79, 0x63, 0x91, 0x07, 0xe2, 0x5e, 0xfe, 0x1a,
		0x20, 0x6e, 0x20, 0x6e, 0x20, 0x6e, 0x20, 0x6e, 0x20, 0x6e, 0x20, 0x6e, 0x20, 0x6e, 0x20, 0x6e,
		0x20, 0x6e, 0x20, 0xee, 0x72, 0x23, 0xee, 0x52, 0x85, 0xdd, 0x35, 0xa7, 0xc7, 0xcd, 0xc7, 0xcd,
		0x2e, 0xb3, 0x29, 0xce, 0xa2, 0xd9, 0x58, 0xba, 0xc2, 0xdf, 0xd0, 0x7a, 0xbd, 0x67, 0x65, 0x99,
		0xf4, 0x74, 0x1a, 0x49, 0x7f, 0x7d, 0x14, 0x4b, 0xdf, 0x8f, 0x85, 0xd7, 0x52, 0xfd, 0x4d, 0xdf,
		0xe6, 0xfa, 0xa9, 0x25, 0xe1, 0x50, 0x47, 0x55, 0xb8, 0x35, 0x54, 0xa6, 0x2b, 0x21, 0xd2, 0xca,
		0xf2, 0x0e, 0xb7, 0x85, 0x3b, 0x5c, 0x93, 0x08, 0x1c, 0xee, 0x70, 0x71, 0x87, 0x8b, 0x3b, 0x5c,
		0x44, 0x94, 0x10, 0x51, 0x42, 0x44, 0x09, 0x11, 0x25, 0x44, 0x94, 0x10, 0x51, 0x42, 0x44, 0x09,
		0x11, 0x25, 0x44, 0x94, 0x8c, 0x8a, 0x28, 0xe1, 0x0e, 0x17, 0x88, 0x1b, 0x88, 0x1b, 0x88, 0x1b,
		0x88, 0x1b, 0x88, 0x1b, 0x88, 0x1b, 0x58, 0x0b, 0x88, 0x1b, 0xbb, 0x00, 0x88, 0x3b, 0x4b, 0xc4,
		0x8d, 0x3b, 0x5c, 0xed, 0x77, 0xb8, 0x3a, 0x6f, 0xf7, 0xac, 0x9c, 0xaf, 0x70, 0x35, 0x94, 0x3e,
		0xd1, 0xb7, 0xb5, 0x50, 0x6f, 0x47, 0x7a, 0x13, 0x96, 0xb9, 0xda, 0xce, 0xfa, 0xb6, 0x33, 0xb1,
		0x61, 0xdc, 0xd2, 0x74, 0xd7, 0x27, 0x17, 0x6f, 0x2e, 0x0b, 0x45, 0x46, 0xc5, 0x1d, 0x16, 0xbf,
		0x01, 0x75, 0x1e, 0x72, 0x8c, 0x12, 0xa0, 0xce, 0x03, 0xea, 0x3c, 0xbc, 0x32, 0x10, 0xea, 0x3c,
		0x94, 0x34, 0x70, 0x88, 0x1c, 0xa1, 0x02, 0x02, 0x83, 0xc8, 0x11, 0x52, 0x18, 0x70, 0x29, 0x79,
		0x27, 0xcc, 0x29, 0x49, 0x28, 0xc4, 0x9d, 0x05, 0xee, 0x2c, 0x0a, 0x74, 0x49, 0xb9, 0xb9, 0xa6,
		0x7c, 0x5c, 0x54, 0x36, 0x11, 0x24, 0xdc, 0x59, 0xac, 0x3b, 0x18, 0xdc, 0x59, 0x2c, 0x08, 0x8e,
		0x3b, 0x0b, 0xa5, 0x4d, 0x8b, 0x3b, 0x8b, 0x94, 0x5b, 0x00, 0x77, 0x16, 0xa5, 0x39, 0x1b, 0xb2,
		0x1b, 0xf5, 0xaa, 0xd4, 0x67, 0xd8, 0x09, 0x0b, 0x45, 0x5b, 0x88, 0x20, 0x9b, 0x73, 0xec, 0x94,
		0xf1, 0x8e, 0x4b, 0x23, 0x98, 0x90, 0xd1, 0xd6, 0x8b, 0xec, 0x75, 0xe1, 0x1b, 0x9a, 0x7b, 0x5b,
		0x5b, 0x3b, 0xbb, 0x5b, 0x5b, 0x8d, 0xdd, 0xcd, 0xdd, 0xc6, 0xfe, 0xf6, 0x76, 0x73, 0x47, 0x67,
		0x07, 0xe8, 0xf9, 0x97, 0x9e, 0x07, 0x0e, 0x0d, 0xa8, 0xf3, 0xf9, 0xb1, 0x76, 0x60, 0xf1, 0xb1,
		0xeb, 0x66, 0xf9, 0x15, 0x5f, 0x43, 0x1a, 0x64, 0x62, 0x4b, 0xc8, 0x37, 0x43, 0xbe, 0x19, 0xb8,
		0x1b, 0xb8, 0x1b, 0xb8, 0x1b, 0xb8, 0x1b, 0xb8, 0x1b, 0xb8, 0x1b, 0xb8, 0x1b, 0xb8, 0x1b, 0xb8,
		0x5b, 0xa6, 0xdc, 0x0d, 0xf9, 0x66, 0xa9, 0xc6, 0xcd, 0x35, 0xd5, 0x67, 0x21, 0x33, 0xc4, 0xe8,
		0xf2, 0x21, 0xdd, 0x48, 0x8d, 0x88, 0xd5, 0xa3, 0x8e, 0x48, 0x52, 0xa4, 0x86, 0x3a, 0x22, 0xa5,
		0x25, 0x79, 0xc8, 0x11, 0x28, 0x86, 0xc4, 0x21, 0x47, 0x40, 0x8b, 0x41, 0x20, 0x47, 0x00, 0x71,
		0x26, 0xc4, 0x99, 0x10, 0x67, 0x42, 0x9c, 0x09, 0x71, 0x26, 0xc4, 0x99, 0x10, 0x67, 0x42, 0x9c,
		0x09, 0x71, 0xa6, 0x1c, 0xe2, 0x4c, 0xc8, 0x11, 0x58, 0xb5, 0x57, 0xe4, 0x08, 0x14, 0xbc, 0xd3,
		0x91, 0x23, 0x00, 0xee, 0x06, 0xee, 0x06, 0xee, 0x06, 0xee, 0x06, 0xee, 0x06, 0xee, 0x06, 0xd4,
		0x0e, 0xee, 0x86, 0x5d, 0x00, 0xee, 0x96, 0x29, 0xe2, 0x46, 0x8e, 0x40, 0x96, 0x39, 0x02, 0x06,
		0x97, 0xa7, 0x79, 0x4a, 0x11, 0x40, 0x9d, 0x9a, 0xac, 0x36, 0x68, 0x61, 0x1b, 0xd3, 0xac, 0x92,
		0x35, 0xf3, 0xad, 0x58, 0x95, 0xda, 0x35, 0x93, 0xa0, 0x41, 0x30, 0x45, 0xc8, 0x19, 0x96, 0xb0,
		0x59, 0xfc, 0x22, 0x54, 0xb2, 0xc9, 0x31, 0xb6, 0x80, 0x4a, 0x36, 0xa8, 0x64, 0xf3, 0xca, 0x40,
		0xa8, 0x64, 0x53, 0xd2, 0x70, 0x23, 0xb2, 0xd4, 0x0a, 0x08, 0x27, 0x22, 0x4b, 0x4d, 0x61, 0xc0,
		0xc9, 0x41, 0x7f, 0xcb, 0x86, 0xb7, 0x79, 0xb5, 0xbc, 0x5a, 0xfa, 0x2e, 0xdc, 0x78, 0xe0, 0xc6,
		0xa3, 0x38, 0xd7, 0x94, 0x9b, 0x8b, 0xca, 0xc7, 0x55, 0x65, 0x13, 0x7f, 0xc2, 0x8d, 0xc7, 0xba,
		0x83, 0xc1, 0x8d, 0xc7, 0x82, 0xe0, 0xb8, 0xf1, 0x50, 0xda, 0xb4, 0xb8, 0xf1, 0x48, 0xb9, 0x05,
		0x70, 0xe3, 0x51, 0x9a, 0xb3, 0x21, 0xbb, 0x51, 0xdf, 0x43, 0xdf, 0xab, 0x69, 0x40, 0xd5, 0xbb,
		0xcf, 0x0b, 0x7a, 0x2f, 0x7e, 0x15, 0x90, 0x37, 0x90, 0x37, 0x90, 0x37, 0x90, 0x37, 0x90, 0x37,
		0x90, 0x37, 0x90, 0x37, 0x90, 0x37, 0x90, 0x37, 0x90, 0xf7, 0xbb, 0x41, 0xde, 0x93, 0x8b, 0xed,
		0x7c, 0xa2, 0xde, 0xcf, 0x7c, 0x17, 0xb0, 0x37, 0xb0, 0x37, 0xb0, 0x37, 0xb0, 0x37, 0xb0, 0x37,
		0xb0, 0x37, 0xb0, 0x37, 0xb0, 0x37, 0xb0, 0x37, 0xb0, 0xf7, 0x3b, 0xc3, 0xde, 0xb9, 0x44, 0xbd,
		0xd7, 0xbf, 0x0a, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8,
		0x1b, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0xbb, 0xdc, 0xc8, 0x1b, 0x2f, 0x6c, 0x33, 0x7a, 0xc8, 0xb8,
		0xf0, 0xb8, 0xcd, 0xfc, 0x62, 0xdc, 0xe7, 0x91, 0x32, 0xf1, 0x89, 0x8e, 0x92, 0xdc, 0x49, 0x61,
		0x1b, 0x4a, 0x72, 0x97, 0x96, 0xf1, 0xe1, 0xb1, 0x53, 0x31, 0x8c, 0x0e, 0x8f, 0x9d, 0xb4, 0x19,
		0x05, 0x1e, 0x3b, 0x21, 0xf8, 0x84, 0xe0, 0x13, 0x82, 0x4f, 0x08, 0x3e, 0x21, 0xf8, 0x84, 0xe0,
		0x13, 0x82, 0x4f, 0x08, 0x3e, 0x21, 0xf8, 0x64, 0x5c, 0xf0, 0x09, 0x8f, 0x9d, 0x80, 0xbc, 0x81,
		0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xb9, 0x80, 0xbc, 0xb1, 0x0b, 0x80,
		0xbc, 0x0d, 0x43, 0xde, 0x78, 0xec, 0x04, 0xec, 0x0d, 0xec, 0x0d, 0xec, 0x0d, 0xec, 0x0d, 0xec,
		0x0d, 0xec, 0x0d, 0xec, 0x0d, 0xec, 0x0d, 0xec, 0x0d, 0xec, 0x9d, 0x27, 0xf6, 0xc6, 0x63, 0x27,
		0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f,
		0x20, 0x6f, 0x20, 0xef, 0xac, 0x46, 0xc2, 0x63, 0xa7, 0xd7, 0x1f, 0x3b, 0x99, 0xde, 0x55, 0x70,
		0xe1, 0xad, 0x13, 0x7a, 0x0b, 0x66, 0xb5, 0x5b, 0x8b, 0xde, 0xa5, 0x06, 0xb6, 0x18, 0x7c, 0xda,
		0x97, 0x55, 0x69, 0x34, 0x98, 0x43, 0x8b, 0x41, 0x34, 0x17, 0xcc, 0x3d, 0xd2, 0x80, 0xe6, 0x82,
		0x68, 0x2e, 0xf8, 0xca, 0x40, 0x68, 0x2e, 0x58, 0xd2, 0xe0, 0x23, 0xde, 0xdb, 0x16, 0x10, 0x5c,
		0xc4, 0x7b, 0x5b, 0x85, 0x01, 0xf1, 0xde, 0xb6, 0x00, 0xd7, 0x93, 0xa5, 0x0b, 0xca, 0xc1, 0x15,
		0x65, 0xed, 0x92, 0x72, 0x73, 0x4d, 0xb9, 0xb9, 0xa8, 0x7c, 0x5c, 0x55, 0x36, 0xd1, 0x28, 0xdc,
		0x7f, 0xac, 0x3b, 0x18, 0xdc, 0x7f, 0x2c, 0x08, 0x8e, 0xfb, 0x0f, 0xa5, 0x4d, 0x8b, 0xfb, 0x8f,
		0x94, 0x5b, 0x00, 0xf7, 0x1f, 0xa5, 0x39, 0x1b, 0xb2, 0x1b, 0x15, 0xef, 0x6d, 0x33, 0x80, 0xde,
		0xc8, 0x3c, 0x02, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2,
		0x06, 0xf2, 0x06, 0xf2, 0x7e, 0x97, 0xc8, 0x7b, 0x92, 0xc5, 0x90, 0x53, 0xbe, 0x3f, 0x10, 0x37,
		0x10, 0x37, 0x10, 0x37, 0x10, 0x37, 0x10, 0x37, 0x10, 0x37, 0x10, 0x37, 0x10, 0x37, 0x10, 0x37,
		0x10, 0x77, 0x96, 0x88, 0x5b, 0xf3, 0x19, 0x76, 0xc2, 0x42, 0xd1, 0x16, 0x22, 0xc8, 0xe6, 0x1c,
		0x3b, 0x65, 0xbc, 0xe3, 0xd2, 0x08, 0x26, 0x64, 0xb4, 0xf5, 0x22, 0x7b, 0x5d, 0xf8, 0x86, 0xe6,
		0xde, 0xd6, 0xd6, 0xce, 0xee, 0xd6, 0x56, 0x63, 0x77, 0x73, 0xb7, 0xb1, 0xbf, 0xbd, 0xdd, 0xdc,
		0x69, 0x6e, 0x67, 0xf0, 0xa5, 0xe7, 0x81, 0x43, 0x03, 0xea, 0x7c, 0x7e, 0xac, 0x1d, 0x58, 0x7c,
		0xec, 0xba, 0x59, 0x7e, 0xc5, 0xd7, 0x90, 0x06, 0x99, 0xd8, 0x12, 0x5e, 0x8d, 0xa4, 0x1b, 0xb7,
		0x88, 0x7c, 0xfc, 0x8a, 0x34, 0xc7, 0x41, 0x5f, 0x9c, 0x54, 0xa8, 0x1f, 0x7d, 0x71, 0x4a, 0x1b,
		0x30, 0x40, 0x9e, 0x6e, 0x31, 0x01, 0x01, 0xe4, 0xe9, 0x6a, 0x33, 0x0a, 0xe4, 0xe9, 0xe6, 0xe0,
		0x82, 0x72, 0x70, 0x45, 0x59, 0xbb, 0xa4, 0xdc, 0x5c, 0x53, 0x6e, 0x2e, 0x2a, 0x1f, 0x57, 0x95,
		0x0d, 0x93, 0x44, 0xec, 0x72, 0xdd, 0xc1, 0x20, 0x76, 0xb9, 0x4c, 0xb5, 0x11, 0xbb, 0x34, 0x20,
		0x6a, 0x85, 0xd8, 0x25, 0x76, 0x01, 0xb2, 0x05, 0xca, 0x63, 0x45, 0xc8, 0xd3, 0x05, 0xf2, 0x06,
		0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06, 0xf2, 0x06,
		0xf2, 0xce, 0x05, 0x79, 0x23, 0x4f, 0x17, 0x88, 0x1b, 0x88, 0x1b, 0x88, 0x1b, 0x88, 0x1b, 0x88,
		0x1b, 0x88, 0x1b, 0x88, 0x1b, 0x88, 0x1b, 0x88, 0xbb, 0x32, 0x88, 0x1b, 0x79, 0xba, 0xab, 0xf6,
		0x8a, 0x3c, 0xdd, 0xa2, 0xb9, 0x1b, 0xf2, 0x74, 0x33, 0xcd, 0xd3, 0x35, 0xbd, 0xae, 0x3b, 0x4a,
		0xba, 0x67, 0xbb, 0x45, 0x8b, 0xdb, 0x9a, 0x06, 0x16, 0x73, 0xaf, 0x48, 0x1d, 0xf7, 0x69, 0x53,
		0x38, 0x16, 0x8a, 0xac, 0xca, 0xb8, 0x2f, 0x7c, 0x03, 0xaa, 0xb8, 0xe7, 0x18, 0x9b, 0x42, 0x15,
		0x77, 0x54, 0x71, 0x7f, 0x65, 0x20, 0x54, 0x71, 0xd7, 0x31, 0x20, 0x5e, 0x87, 0x58, 0x78, 0x1d,
		0x62, 0x18, 0xb1, 0xc9, 0xe8, 0x75, 0x48, 0x4e, 0xd9, 0x69, 0xb8, 0x27, 0xb3, 0x70, 0x4f, 0x56,
		0xb8, 0x43, 0xca, 0xcd, 0x31, 0xe5, 0xe3, 0xa0, 0xb2, 0x89, 0x5a, 0xe2, 0x9e, 0x6c, 0xdd, 0xc1,
		0xe0, 0x9e, 0x6c, 0x31, 0xe8, 0x8a, 0x7b, 0x32, 0x95, 0x4d, 0x8b, 0x7b, 0xb2, 0x94, 0x5b, 0x00,
		0xf7, 0x64, 0xa5, 0x39, 0x1b, 0xb2, 0x1b, 0xf5, 0xdd, 0x65, 0xa6, 0x85, 0x39, 0xa5, 0xa6, 0x85,
		0xc0, 0xdc, 0xc0, 0xdc, 0xc0, 0xdc, 0xc0, 0xdc, 0xc0, 0xdc, 0xc0, 0xdc, 0xc0, 0xdc, 0xc0, 0xdc,
		0xc0, 0xdc, 0xc0, 0xdc, 0x99, 0x60, 0x6e, 0xe4, 0xa6, 0xad, 0xda, 0x2b, 0x72, 0xd3, 0x8a, 0x66,
		0x6f, 0xc8, 0x4d, 0xd3, 0x9e, 0x00, 0xf4, 0x94, 0x19, 0x62, 0x74, 0x09, 0xc9, 0xf3, 0x48, 0x8d,
		0xc8, 0xc7, 0xa0, 0x82, 0x64, 0x52, 0xcc, 0x8f, 0x0a, 0x92, 0xa5, 0x0d, 0x17, 0x20, 0x47, 0xa0,
		0x98, 0x70, 0x00, 0x72, 0x04, 0x74, 0xd8, 0x03, 0x72, 0x04, 0xb2, 0x75, 0x3c, 0x39, 0x38, 0xa0,
		0xac, 0x1d, 0x51, 0x6e, 0x0e, 0x29, 0x37, 0xc7, 0x94, 0x8f, 0x83, 0xca, 0x86, 0x3d, 0x22, 0x5e,
		0xb9, 0xee, 0x60, 0x10, 0xaf, 0x5c, 0xa6, 0xd7, 0x88, 0x57, 0x1a, 0x10, 0xa9, 0x42, 0xbc, 0x12,
		0xbb, 0x00, 0x39, 0x02, 0xe5, 0xb1, 0x22, 0xe4, 0x08, 0x00, 0x73, 0x03, 0x73, 0x03, 0x73, 0x03,
		0x73, 0x03, 0x73, 0x03, 0x73, 0x03, 0x73, 0x03, 0x73, 0x03, 0x73, 0x57, 0x09, 0x73, 0x23, 0x47,
		0x60, 0xd5, 0x5e, 0x91, 0x23, 0x50, 0x34, 0x7b, 0x43, 0x8e, 0x40, 0x96, 0x39, 0x02, 0x06, 0x97,
		0xaf, 0x79, 0x4a, 0x11, 0x40, 0xf5, 0x9a, 0xac, 0x36, 0x68, 0x61, 0x1b, 0xd3, 0xac, 0xe2, 0x35,
		0xf3, 0xad, 0x58, 0x95, 0xda, 0x35, 0xc1, 0x94, 0x65, 0x65, 0x58, 0xbc, 0x46, 0x47, 0x8d, 0x22,
		0x54, 0xaf, 0x29, 0x34, 0x12, 0x85, 0xea, 0x35, 0x65, 0x70, 0xf9, 0xa8, 0x5e, 0x53, 0x06, 0xd3,
		0xcf, 0xc2, 0x05, 0x64, 0xe8, 0x0a, 0xb2, 0x72, 0x09, 0x99, 0xbb, 0x86, 0xcc, 0x5d, 0x44, 0xb6,
		0xae, 0xa2, 0x9c, 0xb4, 0x06, 0x99, 0x69, 0x2f, 0x3b, 0x1a, 0xdc, 0x92, 0xe1, 0x96, 0xac, 0x54,
		0x8e, 0x29, 0x1f, 0x07, 0x95, 0x4d, 0xcc, 0x12, 0xb7, 0x64, 0xeb, 0x0e, 0x06, 0xb7, 0x64, 0x8b,
		0x21, 0x57, 0xdc, 0x92, 0xa9, 0x6c, 0x5a, 0xdc, 0x92, 0xa5, 0xdc, 0x02, 0xb8, 0x25, 0x2b, 0xcd,
		0xd9, 0x90, 0xdd, 0xa8, 0xef, 0x27, 0x33, 0xed, 0x96, 0x0d, 0x6f, 0xf3, 0x6a, 0xae, 0xb6, 0xf4,
		0x5d, 0xc0, 0xde, 0xc0, 0xde, 0xc0, 0xde, 0xc0, 0xde, 0xc0, 0xde, 0xc0, 0xde, 0xc0, 0xde, 0xc0,
		0xde, 0xc0, 0xde, 0xc0, 0xde, 0xef, 0x0c, 0x7b, 0xbb, 0xde, 0x7d, 0x5e, 0xd0, 0x7b, 0xf1, 0xab,
		0x80, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc,
		0x81, 0xbc, 0x81, 0xbc, 0xcb, 0x8d, 0xbc, 0x91, 0xd1, 0x9f, 0x51, 0xe2, 0xf4, 0xa4, 0x23, 0xad,
		0xf1, 0x65, 0xff, 0x26, 0x2d, 0x69, 0x51, 0xf7, 0x2f, 0x21, 0x56, 0x43, 0xdd, 0xbf, 0xd2, 0xd2,
		0x3c, 0x64, 0x57, 0x16, 0x43, 0xe3, 0x90, 0x5d, 0xa9, 0xc3, 0x1e, 0x90, 0x5d, 0x89, 0x38, 0x13,
		0xe2, 0x4c, 0x88, 0x33, 0x21, 0xce, 0x84, 0x38, 0x13, 0xe2, 0x4c, 0x88, 0x33, 0x21, 0xce, 0x84,
		0x38, 0x93, 0x49, 0x71, 0x26, 0x64, 0x57, 0x02, 0x7b, 0x03, 0x7b, 0x03, 0x7b, 0x03, 0x7b, 0x03,
		0x7b, 0x03, 0x7b, 0x03, 0x75, 0x01, 0x7b, 0x63, 0x17, 0x00, 0x7b, 0x1b, 0x8a, 0xbd, 0x91, 0x5d,
		0x09, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4,
		0x0d, 0xe4, 0x0d, 0xe4, 0x9d, 0xd5, 0x48, 0xc8, 0xae, 0x7c, 0x29, 0xbb, 0xd2, 0xf4, 0x82, 0xc9,
		0x93, 0xe4, 0x4a, 0x54, 0x4c, 0xce, 0x6a, 0x8b, 0x16, 0xb7, 0x35, 0x0d, 0x2c, 0x99, 0x3c, 0x81,
		0x94, 0x06, 0xd6, 0x4c, 0x0e, 0x19, 0x1f, 0xce, 0x17, 0x41, 0x5f, 0x9d, 0xe4, 0xe5, 0x61, 0x51,
		0x1b, 0x39, 0xc7, 0xd8, 0x01, 0x6a, 0x23, 0xa3, 0x36, 0xf2, 0x2b, 0x03, 0xa1, 0x36, 0x72, 0x49,
		0xc3, 0x89, 0xc8, 0xde, 0x2f, 0x20, 0x5c, 0x88, 0xec, 0x7d, 0x85, 0x01, 0x33, 0xbf, 0xc5, 0xc0,
		0xdd, 0x85, 0x85, 0xbb, 0x8b, 0xc2, 0x9d, 0x50, 0x6e, 0xce, 0x28, 0x1f, 0xa7, 0x94, 0x4d, 0x24,
		0x09, 0x77, 0x17, 0xeb, 0x0e, 0x06, 0x77, 0x17, 0x0b, 0x82, 0xe3, 0xee, 0x42, 0x69, 0xd3, 0xe2,
		0xee, 0x22, 0xe5, 0x16, 0xc0, 0xdd, 0x45, 0x69, 0xce, 0x86, 0xec, 0x46, 0xc5, 0xdd, 0x45, 0x22,
		0x38, 0x61, 0xe8, 0xdd, 0xc5, 0x52, 0x10, 0xd1, 0xb8, 0x6a, 0x10, 0xbd, 0x58, 0xfa, 0x49, 0x8c,
		0x18, 0x35, 0x20, 0x92, 0xa2, 0x32, 0xd4, 0x80, 0x40, 0x14, 0x09, 0x51, 0x24, 0x44, 0x91, 0x10,
		0x45, 0x42, 0x14, 0x09, 0x51, 0x24, 0x44, 0x91, 0x10, 0x45, 0x42, 0x14, 0x09, 0x51, 0x24, 0x44,
		0x91, 0x10, 0x45, 0x42, 0x14, 0x09, 0x51, 0x24, 0x44, 0x91, 0x54, 0xa3, 0x48, 0x86, 0x65, 0xbd,
		0x2e, 0x05, 0x91, 0x90, 0xeb, 0x9a, 0xd5, 0x66, 0xcc, 0x77, 0x13, 0x96, 0x3f, 0xbf, 0x75, 0x71,
		0xdb, 0x19, 0x9f, 0xd5, 0x5a, 0x77, 0x59, 0x28, 0x32, 0x4a, 0x6d, 0x9d, 0x8c, 0x8d, 0xfc, 0xd6,
		0x1c, 0x23, 0x03, 0xc8, 0x6f, 0x45, 0x7e, 0xeb, 0x2b, 0x03, 0x21, 0xbf, 0xb5, 0xa4, 0xc1, 0x42,
		0xdc, 0x4c, 0x14, 0x10, 0x0c, 0xc4, 0xcd, 0x84, 0xc2, 0x80, 0xd3, 0xd8, 0x5e, 0x98, 0xf9, 0xd5,
		0x44, 0x88, 0xbb, 0x09, 0xdc, 0x4d, 0x14, 0xe8, 0x86, 0x72, 0x73, 0x47, 0xf9, 0xb8, 0xa5, 0x6c,
		0x22, 0x45, 0xb8, 0x9b, 0x58, 0x77, 0x30, 0xb8, 0x9b, 0x58, 0x10, 0x1c, 0x77, 0x13, 0x4a, 0x9b,
		0x16, 0x77, 0x13, 0x29, 0xb7, 0x00, 0xee, 0x26, 0x4a, 0x73, 0x36, 0x64, 0x37, 0xea, 0x55, 0xa9,
		0xcf, 0xb0, 0x13, 0x16, 0x8a, 0xb6, 0x10, 0x41, 0x36, 0xe7, 0xd8, 0x29, 0xe3, 0x1d, 0x97, 0x46,
		0x30, 0x21, 0xa3, 0xad, 0x17, 0xd9, 0xeb, 0xc2, 0x37, 0x34, 0xf7, 0xb6, 0xb6, 0x76, 0x76, 0xb7,
		0xb6, 0x1a, 0xbb, 0x9b, 0xbb, 0x8d, 0xfd, 0xed, 0xed, 0xe6, 0x4e, 0x73, 0x3b, 0x83, 0x2f, 0x3d,
		0x0f, 0x1c, 0x1a, 0x50, 0xe7, 0xf3, 0x63, 0xed, 0xc0, 0xe2, 0x63, 0xd7, 0xcd, 0xf2, 0x2b, 0xbe,
		0x86, 0x34, 0xc8, 0xc4, 0x96, 0x70, 0xcb, 0x95, 0x6e, 0xdc, 0x5c, 0x2f, 0x18, 0xe2, 0xa8, 0xb4,
		0xd1, 0x09, 0xd3, 0x91, 0x63, 0x41, 0xd2, 0x74, 0x52, 0xa0, 0x8f, 0xa4, 0xe9, 0xd2, 0xc6, 0x08,
		0x10, 0x9a, 0x2c, 0x26, 0x06, 0x80, 0xd0, 0xa4, 0x9e, 0xe0, 0x01, 0x42, 0x93, 0x08, 0x4d, 0x16,
		0xe9, 0x86, 0x72, 0x73, 0x47, 0xf9, 0xb8, 0xa5, 0x6c, 0x88, 0x22, 0x42, 0x93, 0xeb, 0x0e, 0x06,
		0xa1, 0xc9, 0x65, 0x26, 0x8d, 0xd0, 0xa4, 0x01, 0x41, 0x29, 0x84, 0x26, 0xb1, 0x0b, 0x10, 0x9a,
		0xd4, 0xb2, 0x5c, 0x08, 0x4d, 0x4a, 0x7c, 0x29, 0x42, 0x93, 0x25, 0x26, 0x91, 0x15, 0x0a, 0x4d,
		0x1a, 0x9c, 0x85, 0x1f, 0x47, 0x26, 0x91, 0x89, 0x9f, 0xd5, 0xae, 0x2c, 0x60, 0x37, 0x9a, 0x95,
		0x8e, 0x1f, 0xed, 0x3f, 0xf3, 0x53, 0xf2, 0x83, 0x29, 0x93, 0xca, 0x24, 0x27, 0x5f, 0x47, 0x11,
		0x71, 0x24, 0xe5, 0x17, 0x1a, 0x67, 0x42, 0x52, 0x7e, 0x19, 0x7c, 0x3b, 0x92, 0xf2, 0xcb, 0x60,
		0xfa, 0x59, 0xb8, 0x80, 0x0c, 0x5d, 0x41, 0x56, 0x2e, 0x21, 0x73, 0xd7, 0x90, 0xb9, 0x8b, 0xc8,
		0xd6, 0x55, 0x94, 0x93, 0xb4, 0x68, 0xbf, 0xf9, 0xca, 0xa7, 0x75, 0x3d, 0x9a, 0xd6, 0x67, 0xea,
		0x76, 0x72, 0x70, 0x3f, 0x59, 0xbb, 0xa1, 0xdc, 0xdc, 0x51, 0x6e, 0x6e, 0x29, 0x1f, 0xf7, 0x94,
		0x4d, 0x3c, 0x12, 0x37, 0x60, 0xeb, 0x0e, 0x06, 0x37, 0x60, 0x8b, 0xe1, 0x54, 0xdc, 0x80, 0xa9,
		0x6c, 0x5a, 0xdc, 0x80, 0xa5, 0xdc, 0x02, 0xb8, 0x01, 0x2b, 0xcd, 0xd9, 0x90, 0xdd, 0xa8, 0xef,
		0xa1, 0x69, 0x7d, 0x2e, 0xed, 0xea, 0xd1, 0xa8, 0x1e, 0x68, 0x1b, 0x68, 0x1b, 0x68, 0x1b, 0x68,
		0x1b, 0x68, 0x1b, 0x68, 0x1b, 0x68, 0x1b, 0x68, 0x1b, 0x68, 0xdb, 0x1c, 0xb4, 0x8d, 0x2c, 0x21,
		0xed, 0x79, 0x19, 0x93, 0x16, 0xf5, 0x26, 0xbf, 0x60, 0x9c, 0xb4, 0xa7, 0xc7, 0x13, 0xc6, 0x84,
		0x00, 0x0d, 0x4f, 0x18, 0x4b, 0xcb, 0xed, 0x70, 0x91, 0x5b, 0x0c, 0x77, 0xc3, 0x45, 0xae, 0x06,
		0x73, 0xc0, 0x45, 0x2e, 0x42, 0x4b, 0x08, 0x2d, 0x21, 0xb4, 0x84, 0xd0, 0x12, 0x42, 0x4b, 0x08,
		0x2d, 0x21, 0xb4, 0x84, 0xd0, 0x12, 0x42, 0x4b, 0x06, 0x85, 0x96, 0x70, 0x91, 0x0b, 0xb4, 0x0d,
		0xb4, 0x0d, 0xb4, 0x0d, 0xb4, 0x0d, 0xb4, 0x0d, 0xb4, 0x0d, 0x9c, 0x05, 0xb4, 0x8d, 0x5d, 0x00,
		0xb4, 0x9d, 0x15, 0xda, 0xc6, 0x45, 0x6e, 0x46, 0x17, 0xb9, 0x06, 0xd7, 0x7b, 0x98, 0xdc, 0xe3,
		0xa2, 0xe0, 0x43, 0x56, 0xfb, 0xb2, 0x88, 0xfd, 0x68, 0x56, 0xc5, 0x87, 0x09, 0x78, 0x2c, 0xaa,
		0xe4, 0xc3, 0x87, 0x1c, 0xf7, 0x98, 0xae, 0xbd, 0x95, 0xf5, 0x9e, 0xaa, 0xa9, 0xd4, 0xc1, 0xc8,
		0x72, 0xdf, 0xc8, 0xed, 0x92, 0xf4, 0x6b, 0x2c, 0xb1, 0xbe, 0x8a, 0x89, 0x23, 0x5a, 0x12, 0x45,
		0x14, 0x13, 0x43, 0x94, 0x13, 0x41, 0x74, 0xc4, 0x84, 0x34, 0xc6, 0x7e, 0x74, 0xc5, 0x78, 0xb4,
		0xc7, 0x72, 0xb4, 0xc7, 0x6c, 0xf4, 0xc6, 0x66, 0xf2, 0xf5, 0x89, 0xaa, 0x89, 0x17, 0x35, 0x5d,
		0x41, 0x5f, 0xcd, 0x31, 0x18, 0x4d, 0x01, 0x5d, 0x54, 0xd8, 0x29, 0x59, 0x00, 0x16, 0x15, 0x76,
		0x8a, 0x08, 0x98, 0xce, 0x77, 0xdc, 0x98, 0x47, 0xe8, 0x49, 0xc3, 0x7e, 0x9b, 0x9d, 0x95, 0xfb,
		0x1a, 0xc6, 0x9a, 0xaa, 0xa9, 0x27, 0xfc, 0x99, 0x41, 0xd2, 0xa4, 0xfe, 0xa8, 0x72, 0x06, 0xd1,
		0xe4, 0x8c, 0xa2, 0xc8, 0xd9, 0x54, 0x47, 0xcd, 0xee, 0xe2, 0x28, 0xe3, 0x68, 0x71, 0x6e, 0xf1,
		0xc1, 0xec, 0xe3, 0x82, 0x3f, 0xb3, 0x29, 0x4b, 0x9b, 0xfd, 0xd2, 0x66, 0x17, 0x05, 0xae, 0xd2,
		0xea, 0x96, 0x34, 0x8a, 0x7a, 0x55, 0xa6, 0x28, 0x6a, 0x06, 0x67, 0xc5, 0x3f, 0x8c, 0xff, 0x93,
		0xcd, 0x59, 0xd1, 0xdc, 0xd3, 0x38, 0xe6, 0x05, 0x11, 0x82, 0x06, 0x5c, 0xfb, 0x71, 0x51, 0xfb,
		0x65, 0xab, 0xb1, 0xff, 0x77, 0xa3, 0xbe, 0x75, 0xf5, 0xdf, 0xad, 0xc6, 0xdf, 0x8d, 0xfa, 0xde,
		0xd5, 0xdf, 0x8d, 0xfa, 0xfe, 0xd5, 0x7f, 0xff, 0x6e, 0xd6, 0x37, 0x27, 0x3f, 0xfe, 0x67, 0xf3,
		0x67, 0xf4, 0xdb, 0xfe, 0xf4, 0xb7, 0xe6, 0xc7, 0xd6, 0xf4, 0xf7, 0x5f, 0xbf, 0x7f, 0xff, 0xf4,
		0x8b, 0xc2, 0xc7, 0xff, 0xfb, 0xfd, 0xfb, 0xff, 0xfe, 0xaa, 0xef, 0x4a, 0xfd, 0x4a, 0xe7, 0x6c,
		0x9f, 0xf7, 0xba, 0x7f, 0x66, 0x36, 0xe5, 0xff, 0x2e, 0x78, 0xce, 0xff, 0xa7, 0x56, 0x36, 0xef,
		0xf0, 0xa1, 0x58, 0x39, 0x54, 0x61, 0x3f, 0x7d, 0x10, 0x01, 0xa9, 0x8f, 0x79, 0x28, 0xc8, 0x8d,
		0xab, 0x89, 0x00, 0x84, 0x82, 0x88, 0x71, 0x58, 0x66, 0x94, 0xed, 0x50, 0x3f, 0xa0, 0x36, 0x11,
		0xd4, 0x31, 0xec, 0x75, 0xd2, 0x74, 0x6a, 0x4d, 0x7e, 0x9d, 0xb4, 0x30, 0xf7, 0x65, 0xbb, 0x2f,
		0x2d, 0xda, 0x96, 0x71, 0x37, 0xa2, 0xe9, 0x6e, 0x44, 0xf5, 0x96, 0x37, 0xb3, 0xbb, 0x11, 0x85,
		0xdb, 0x5b, 0x89, 0xbb, 0x91, 0x0f, 0x19, 0xee, 0x06, 0xd5, 0x5d, 0x90, 0xdd, 0xea, 0xd7, 0xa4,
		0xae, 0x84, 0x32, 0x59, 0xef, 0x74, 0x2b, 0x9d, 0x7c, 0xbd, 0x92, 0xfd, 0x65, 0xc2, 0x15, 0x8d,
		0xce, 0x97, 0x48, 0x6b, 0xc6, 0x1d, 0x9a, 0x34, 0xf4, 0x2a, 0xd7, 0xd4, 0x46, 0xbe, 0x59, 0x8d,
		0xd6, 0x26, 0x34, 0x0a, 0xcd, 0x65, 0x14, 0x9a, 0xc6, 0x24, 0x5d, 0x8d, 0xf6, 0x78, 0x18, 0xa9,
		0x49, 0x9d, 0x54, 0x00, 0x2a, 0x9d, 0x01, 0xce, 0x81, 0xd0, 0x86, 0x67, 0xd7, 0xd9, 0xe0, 0x60,
		0xc1, 0x9c, 0x56, 0xfe, 0x61, 0xfa, 0xfb, 0xb2, 0xc9, 0xad, 0xff, 0x5b, 0x4a, 0x9b, 0xab, 0x1d,
		0xd1, 0xd0, 0x0e, 0x98, 0x3f, 0xf5, 0x1e, 0xb5, 0xb6, 0xe3, 0x84, 0xd6, 0xb7, 0x93, 0xf6, 0x99,
		0x15, 0x52, 0x21, 0x18, 0x1f, 0x86, 0x96, 0xf0, 0x2c, 0xc6, 0x1d, 0x76, 0xc7, 0x9c, 0x31, 0x71,
		0xad, 0xa5, 0xef, 0x4f, 0xfb, 0x65, 0x72, 0x77, 0xad, 0xd2, 0xd7, 0x39, 0x2a, 0xd7, 0x37, 0x1a,
		0xae, 0x6b, 0x54, 0x61, 0xa8, 0xb6, 0xeb, 0x18, 0x6d, 0xb0, 0x52, 0xcf, 0x75, 0x4b, 0xb6, 0xa7,
		0xa1, 0xec, 0xdd, 0x68, 0x1c, 0xf0, 0x57, 0xcf, 0x45, 0x50, 0xb8, 0xda, 0x5b, 0xb5, 0xc5, 0x0e,
		0xb7, 0x5d, 0x2f, 0x64, 0x7c, 0x68, 0xd9, 0x1e, 0x17, 0x84, 0x71, 0x1a, 0x58, 0x03, 0x2f, 0x98,
		0x98, 0xe7, 0xdc, 0x08, 0xeb, 0xa1, 0x4f, 0x6d, 0x36, 0x60, 0xf6, 0x77, 0xee, 0x10, 0x41, 0x2c,
		0x8f, 0x2b, 0xd9, 0xa8, 0xa2, 0xad, 0x2a, 0xdb, 0xac, 0x0e, 0xdb, 0xd5, 0x68, 0xc3, 0xba, 0x29,
		0x25, 0xf2, 0x22, 0x4a, 0x81, 0xb0, 0x35, 0xe3, 0xbb, 0xab, 0xa4, 0x88, 0x42, 0x0e, 0xa9, 0x67,
		0x82, 0xd0, 0x53, 0xec, 0xbb, 0x0c, 0x40, 0x79, 0xb2, 0x1d, 0xf5, 0xf6, 0xec, 0xbf, 0xfe, 0x17,
		0x6f, 0x9c, 0x1d, 0x69, 0xd7, 0x43, 0xd7, 0x3a, 0x24, 0x98, 0x7a, 0x3d, 0x53, 0xfe, 0xfa, 0x2c,
		0xbf, 0x3c, 0x77, 0xcf, 0xff, 0x97, 0x17, 0x66, 0x73, 0xc6, 0x5a, 0x62, 0x59, 0x5f, 0xf8, 0x93,
		0x44, 0x24, 0x25, 0x39, 0x29, 0x51, 0x22, 0x21, 0x29, 0x48, 0x47, 0x0a, 0x92, 0xf1, 0xd2, 0xe4,
		0x24, 0x23, 0x11, 0xaf, 0xef, 0xbd, 0xe4, 0x24, 0xe1, 0x8d, 0x9d, 0xf5, 0x2c, 0xda, 0x3f, 0x69,
		0x7f, 0xb1, 0x26, 0x7b, 0x6b, 0x1c, 0xc4, 0xb6, 0x10, 0x21, 0x7e, 0x71, 0x4b, 0x9f, 0x20, 0x86,
		0x35, 0xf2, 0x9c, 0xb1, 0xfb, 0xe6, 0xe0, 0xc9, 0x10, 0x43, 0x62, 0x64, 0x90, 0x06, 0x01, 0x2c,
		0x9e, 0xf4, 0x2e, 0x49, 0x52, 0x1e, 0x2e, 0xed, 0x81, 0x2e, 0x7d, 0x70, 0x4b, 0x1f, 0xd0, 0xab,
		0x07, 0x71, 0xa4, 0x57, 0xc6, 0xfe, 0x30, 0x29, 0x76, 0xae, 0x91, 0xe1, 0x30, 0x88, 0x2f, 0xb3,
		0x53, 0x9c, 0x64, 0xf3, 0x35, 0x5a, 0xfc, 0x70, 0xc2, 0xa9, 0x58, 0xd9, 0xb7, 0xe7, 0xf1, 0x4f,
		0x61, 0x8c, 0x86, 0x5d, 0x6f, 0xc8, 0x6c, 0xe2, 0x3e, 0xed, 0xd6, 0xd0, 0x0a, 0xa8, 0x1f, 0xd0,
		0x90, 0xf2, 0x88, 0xbf, 0x7e, 0xe7, 0xb3, 0xaf, 0x4b, 0x0c, 0x85, 0x53, 0x42, 0xdf, 0xd4, 0x50,
		0x57, 0x06, 0xda, 0xa6, 0xdf, 0xe0, 0xaa, 0xc8, 0x55, 0x19, 0xa9, 0x2a, 0x23, 0x53, 0x29, 0x03,
		0xc8, 0x26, 0x30, 0xa7, 0x70, 0x39, 0x57, 0xbb, 0xbf, 0xa5, 0xe9, 0xef, 0x7f, 0xd5, 0x02, 0x16,
		0x6c, 0x70, 0x30, 0xf1, 0xe8, 0xd3, 0xf3, 0x41, 0x3c, 0xfa, 0xd4, 0xfa, 0x3f, 0xeb, 0x5f, 0x8c,
		0x70, 0xc2, 0x06, 0xe2, 0x80, 0x51, 0x4a, 0xf7, 0x1a, 0xad, 0x4d, 0xe2, 0x9c, 0x90, 0xe1, 0xbf,
		0x0a, 0x0e, 0x6d, 0xc4, 0xf3, 0x53, 0xb2, 0xc0, 0x46, 0xca, 0x09, 0xcc, 0xe5, 0xb1, 0xc4, 0xb2,
		0x0f, 0x54, 0x0c, 0x53, 0x10, 0x5b, 0xb0, 0x3b, 0x6a, 0x45, 0x73, 0xbf, 0x72, 0xd6, 0xb3, 0xd0,
		0x0a, 0xa9, 0x88, 0x31, 0x40, 0xa4, 0xf4, 0x49, 0xfb, 0x8b, 0xec, 0xe2, 0x68, 0xa0, 0xcc, 0x8b,
		0xfb, 0xc4, 0x59, 0xd0, 0x5f, 0x81, 0xc8, 0xeb, 0xe4, 0xcb, 0x4b, 0xdb, 0x26, 0xd5, 0x94, 0x1a,
		0x4e, 0x8b, 0xaf, 0xf2, 0xa1, 0x6f, 0x1f, 0x24, 0xec, 0xa7, 0x48, 0x28, 0x4d, 0x1c, 0x27, 0xfa,
		0x9d, 0xb8, 0x56, 0x47, 0xdc, 0xd2, 0x80, 0x53, 0x31, 0x8f, 0xce, 0xad, 0x41, 0xec, 0xef, 0x7c,
		0x01, 0xb1, 0x8c, 0x3c, 0x87, 0xba, 0x86, 0xe0, 0x6b, 0x2a, 0x6e, 0x2b, 0x89, 0xaf, 0x23, 0xbd,
		0xca, 0x82, 0xaf, 0xe9, 0x74, 0xfb, 0xa4, 0x07, 0xd7, 0xf3, 0x4f, 0xca, 0x21, 0xeb, 0xbe, 0xe7,
		0xd7, 0x5d, 0x7a, 0x47, 0xdd, 0x95, 0x98, 0xf3, 0x6c, 0xd8, 0xe5, 0x6d, 0xfc, 0x9d, 0x13, 0xee,
		0x58, 0x69, 0xee, 0xf8, 0xcb, 0x8e, 0xad, 0x93, 0x6d, 0xee, 0xea, 0x61, 0xeb, 0x44, 0x9b, 0x1f,
		0xd8, 0x3a, 0x01, 0x34, 0x9c, 0x59, 0xca, 0x61, 0x38, 0x22, 0xb6, 0xf3, 0x2f, 0xcb, 0x0b, 0x2c,
		0x20, 0xf2, 0xec, 0x11, 0xb9, 0x96, 0x69, 0x37, 0x0f, 0xc7, 0xb7, 0x1d, 0x87, 0x4d, 0x21, 0xc7,
		0x13, 0xde, 0x5c, 0x86, 0x1a, 0x3e, 0x09, 0xc8, 0x88, 0x0a, 0x1a, 0x84, 0x31, 0x36, 0xfd, 0xce,
		0x97, 0xc1, 0x69, 0x3c, 0x25, 0x2c, 0x9c, 0x23, 0x96, 0x8f, 0xd1, 0xd4, 0xad, 0xe1, 0x57, 0xc2,
		0xad, 0x79, 0x1c, 0x65, 0x01, 0xb9, 0x7c, 0x02, 0x37, 0x48, 0xb4, 0x81, 0x0b, 0x5f, 0x26, 0xf0,
		0x8d, 0x2a, 0xf2, 0x8d, 0xe5, 0x1d, 0x34, 0xc7, 0x62, 0x31, 0x62, 0x0b, 0xbc, 0xb1, 0xa0, 0xce,
		0x4a, 0xb2, 0x40, 0x68, 0x08, 0xc7, 0x48, 0x78, 0x5b, 0x6f, 0x1e, 0xc9, 0x48, 0x76, 0x9b, 0x9e,
		0x13, 0xcb, 0x98, 0x6c, 0x91, 0x7a, 0xaa, 0xc4, 0x97, 0xf9, 0x2a, 0x2d, 0x7e, 0x58, 0x2f, 0xd7,
		0x98, 0xee, 0xdc, 0x68, 0xe4, 0x85, 0x9d, 0xfb, 0xc9, 0xb2, 0xfa, 0xb7, 0x34, 0xa4, 0xdf, 0xf9,
		0x33, 0x11, 0x7f, 0x12, 0x50, 0x8b, 0xb8, 0xa1, 0x67, 0xfd, 0xe0, 0xde, 0x3d, 0xb7, 0x48, 0x68,
		0xf5, 0xbe, 0x75, 0xad, 0x5f, 0xc2, 0x7b, 0x26, 0xec, 0xdb, 0x68, 0x2c, 0x16, 0x88, 0x31, 0x71,
		0x17, 0x5c, 0xe2, 0xaf, 0x1f, 0xad, 0xee, 0xe5, 0x67, 0xeb, 0x97, 0xe8, 0x1f, 0x86, 0x01, 0x89,
		0xbe, 0x30, 0xfa, 0x5e, 0xc6, 0x87, 0xb1, 0x1d, 0xdd, 0x04, 0xcc, 0x19, 0x32, 0x3e, 0xfc, 0xf5,
		0xa3, 0x75, 0xf9, 0xad, 0xfb, 0x9d, 0xff, 0xf2, 0xac, 0x39, 0xfd, 0x5a, 0x11, 0xd6, 0x93, 0x32,
		0x39, 0xa6, 0x3a, 0xb4, 0x27, 0x5d, 0x72, 0xcb, 0xfb, 0xe5, 0x3d, 0xf6, 0x38, 0x08, 0x28, 0x17,
		0xbf, 0xfc, 0xba, 0x91, 0x00, 0x54, 0xbb, 0x9b, 0xcc, 0x8f, 0x26, 0x16, 0x34, 0x66, 0x65, 0xc3,
		0x49, 0xce, 0xa2, 0x81, 0xac, 0xe4, 0xb5, 0x50, 0x38, 0x59, 0xbf, 0xb2, 0xb5, 0xfc, 0xc0, 0xbb,
		0x63, 0x4e, 0x7c, 0x5d, 0x7b, 0xb2, 0x39, 0x77, 0xc4, 0xb3, 0x64, 0xc7, 0x10, 0x2c, 0x23, 0x19,
		0xcb, 0xd0, 0x3d, 0xed, 0x60, 0x0d, 0x6a, 0xac, 0xe1, 0xd9, 0xff, 0x72, 0xf5, 0x52, 0xa6, 0x50,
		0xb2, 0x64, 0x34, 0xf9, 0x24, 0xb4, 0x57, 0xf6, 0xac, 0x6c, 0xba, 0xd9, 0xf3, 0x3b, 0x64, 0x5d,
		0xef, 0xe5, 0x7f, 0x59, 0xf1, 0x4f, 0x6f, 0x69, 0x9e, 0x56, 0xe3, 0x67, 0xf4, 0x4c, 0xa7, 0xdf,
		0xb2, 0x56, 0x4f, 0xb2, 0x2f, 0xc8, 0x5d, 0xfb, 0x41, 0x1f, 0xed, 0x5b, 0xc2, 0x78, 0xb8, 0x26,
		0xf2, 0xdc, 0x0b, 0x3e, 0xfd, 0xc9, 0x8a, 0xbe, 0xcf, 0xa3, 0xc1, 0x17, 0x51, 0xdf, 0x6b, 0xe8,
		0x6e, 0x11, 0xc5, 0xcd, 0xbe, 0xef, 0x39, 0xfd, 0xdf, 0xf0, 0x84, 0x89, 0x91, 0x59, 0x62, 0xe7,
		0xb5, 0x8a, 0xb4, 0xe6, 0xc2, 0xa5, 0xdc, 0x1b, 0x2f, 0x91, 0x99, 0xf9, 0xec, 0xbe, 0xac, 0xd3,
		0xea, 0x3a, 0xbc, 0xa4, 0xd2, 0xeb, 0xe0, 0xfc, 0x4d, 0x30, 0x9e, 0x04, 0x7c, 0x27, 0x5c, 0xa6,
		0xb4, 0x07, 0x57, 0x6a, 0x40, 0x9d, 0xfa, 0xec, 0x49, 0xbe, 0x8c, 0xaf, 0x3b, 0xbd, 0x97, 0xd2,
		0x23, 0xdf, 0xe2, 0xaa, 0x35, 0x7b, 0x36, 0xfb, 0x09, 0xe3, 0x2c, 0x89, 0xfa, 0xc3, 0x96, 0x25,
		0xcc, 0x91, 0x60, 0x2b, 0x98, 0x1b, 0xea, 0x78, 0x7b, 0xab, 0xe4, 0x1c, 0xee, 0x98, 0x7a, 0xff,
		0x94, 0x71, 0x8e, 0x57, 0xd2, 0x9a, 0x5f, 0xda, 0x56, 0x8d, 0x92, 0xd2, 0xfc, 0x14, 0xdb, 0xad,
		0x7a, 0x54, 0x3f, 0xf9, 0x76, 0xcc, 0x86, 0xee, 0xa7, 0x2e, 0xeb, 0xb7, 0x50, 0xde, 0x36, 0x60,
		0x3c, 0x55, 0xca, 0xe7, 0xbc, 0x78, 0x90, 0x2e, 0x00, 0x9c, 0xc0, 0x3f, 0x09, 0xcf, 0xa5, 0x01,
		0xe1, 0xb6, 0x84, 0x89, 0x3d, 0x7d, 0x14, 0x76, 0x06, 0x3b, 0x2b, 0xcc, 0xce, 0xd2, 0x96, 0xc9,
		0x94, 0x29, 0x87, 0x29, 0x57, 0xf6, 0x52, 0x21, 0x72, 0x47, 0xf9, 0x78, 0x44, 0x03, 0x22, 0x19,
		0xb3, 0x98, 0xab, 0x28, 0x51, 0x7b, 0xaf, 0xd6, 0xe1, 0xe3, 0x91, 0x7c, 0x2c, 0xa9, 0xef, 0xf5,
		0x26, 0x7e, 0x4f, 0x29, 0x7a, 0xd3, 0x88, 0xe6, 0xe0, 0xf8, 0xfc, 0xb2, 0xf3, 0xad, 0x73, 0x59,
		0xcb, 0xb5, 0x36, 0x4b, 0xdf, 0xeb, 0x72, 0xa1, 0x26, 0xfc, 0x4c, 0xee, 0x03, 0xab, 0x51, 0x85,
		0x42, 0x25, 0x0a, 0xbb, 0x78, 0xcc, 0xb8, 0xd8, 0x6c, 0x29, 0x6c, 0xe0, 0x5d, 0x89, 0x8f, 0xaa,
		0xd5, 0x56, 0x55, 0x58, 0x77, 0x1d, 0xb5, 0x52, 0xe7, 0x85, 0x33, 0x55, 0x4b, 0x60, 0xeb, 0xae,
		0x8e, 0xa9, 0xaf, 0x0a, 0xa6, 0x42, 0xc5, 0x35, 0x2d, 0x35, 0x4b, 0x9f, 0x6a, 0x93, 0xb6, 0xf6,
		0xb7, 0xf6, 0x77, 0x76, 0x5b, 0xfb, 0xdb, 0xd5, 0x9d, 0xeb, 0x9c, 0x1c, 0xd0, 0x95, 0xd9, 0xa1,
		0xe0, 0xdc, 0xde, 0x1b, 0xcf, 0x50, 0xd6, 0xc6, 0x3c, 0xc8, 0x38, 0xff, 0x69, 0x23, 0x51, 0x08,
		0xe4, 0xd5, 0xa8, 0xe8, 0xef, 0xd3, 0xa1, 0xae, 0x67, 0x3f, 0x84, 0xf3, 0x9f, 0xae, 0xa7, 0x60,
		0x5a, 0x7f, 0x22, 0x4d, 0xed, 0x07, 0x7d, 0x0c, 0x93, 0x07, 0x7a, 0xe2, 0xbf, 0x46, 0x98, 0x07,
		0x61, 0x9e, 0x67, 0xb6, 0x51, 0x7a, 0x0a, 0x1a, 0x7d, 0xa8, 0x1a, 0xb9, 0x1c, 0x20, 0x9f, 0x05,
		0x92, 0xcf, 0xb4, 0xc5, 0x87, 0x92, 0x86, 0xb7, 0x5f, 0x5c, 0xf0, 0xc4, 0xbe, 0x5e, 0x61, 0x0b,
		0x4b, 0x6f, 0x65, 0x95, 0x2d, 0xad, 0x69, 0x6b, 0xab, 0x6e, 0x71, 0x6d, 0x5b, 0x5d, 0xdb, 0x96,
		0xd7, 0xb7, 0xf5, 0x73, 0x21, 0x7d, 0xf2, 0xf5, 0xb8, 0xec, 0xe0, 0xd1, 0x17, 0x5e, 0x9d, 0xb8,
		0x43, 0x2f, 0x60, 0xe2, 0x76, 0xa4, 0x9e, 0x96, 0xb2, 0x36, 0xa2, 0x5a, 0x69, 0xac, 0x46, 0x45,
		0x4a, 0x63, 0x29, 0x98, 0x95, 0x2e, 0xf3, 0xd2, 0x6e, 0x66, 0xda, 0xcd, 0x4d, 0xbf, 0xd9, 0x29,
		0x52, 0x2b, 0xd9, 0xb0, 0x94, 0x6a, 0x77, 0xa1, 0xf9, 0xce, 0x61, 0x0e, 0xe5, 0x82, 0x89, 0xc7,
		0x80, 0x0e, 0x54, 0x76, 0xce, 0xec, 0x2c, 0x52, 0xe0, 0xce, 0xb5, 0xee, 0x54, 0x94, 0xcf, 0x24,
		0xa4, 0xfa, 0x7a, 0x9a, 0x1d, 0x5e, 0xfe, 0x75, 0xd1, 0x3f, 0xbf, 0xee, 0xff, 0x75, 0xd1, 0x51,
		0xdd, 0x85, 0x71, 0xa4, 0x40, 0x4f, 0x21, 0x76, 0x4d, 0xad, 0xbe, 0xe6, 0xa9, 0x7a, 0x9d, 0xde,
		0x75, 0x6b, 0xef, 0xfa, 0xf0, 0xb4, 0x7d, 0x78, 0xbd, 0xbf, 0xa3, 0xa1, 0x77, 0xd6, 0xc7, 0xb2,
		0x69, 0x38, 0x5d, 0xc6, 0xb3, 0xf3, 0xb3, 0x4e, 0x15, 0xd5, 0xfb, 0x2d, 0x5a, 0xb9, 0xd3, 0xa3,
		0xed, 0xca, 0xea, 0xd6, 0xfb, 0xad, 0x7d, 0xdd, 0xac, 0xb6, 0x76, 0xd7, 0xcd, 0x56, 0xc5, 0x15,
		0x6c, 0x35, 0x2a, 0xae, 0x60, 0x35, 0x7d, 0xe7, 0x5c, 0xc1, 0xd6, 0x76, 0x25, 0xf5, 0xab, 0xa8,
		0xdf, 0xd4, 0xe5, 0x32, 0x95, 0x46, 0xb8, 0x2a, 0x7f, 0xd1, 0x58, 0x89, 0x38, 0xc2, 0x0f, 0xfa,
		0xa8, 0xd2, 0x38, 0x77, 0x31, 0xe0, 0x28, 0xdf, 0x31, 0x0c, 0x0c, 0x14, 0x0c, 0x14, 0x0c, 0x54,
		0xb9, 0xaf, 0xad, 0x8e, 0x7e, 0xb6, 0x7a, 0xfa, 0xd8, 0x6a, 0x6c, 0xf6, 0x7b, 0x4b, 0x1f, 0xea,
		0xa9, 0x33, 0x06, 0xdf, 0x9c, 0x21, 0x0d, 0x6d, 0x08, 0x6b, 0x27, 0x94, 0x0f, 0xe3, 0x9b, 0xcc,
		0xd2, 0x75, 0x23, 0xcb, 0xa2, 0x39, 0x6d, 0x56, 0x4d, 0x69, 0x33, 0x6f, 0x57, 0x9a, 0x5d, 0x9b,
		0x52, 0x8d, 0xcd, 0x67, 0x33, 0x69, 0x3a, 0x3b, 0x5f, 0xb2, 0x9d, 0x2d, 0xac, 0x99, 0x16, 0x0c,
		0xa8, 0x6f, 0x14, 0x0d, 0x9d, 0x39, 0xb5, 0xf7, 0x3f, 0xad, 0xfd, 0xdd, 0xa8, 0xef, 0x93, 0xfa,
		0xa0, 0x5d, 0x3f, 0xbe, 0xfa, 0xdf, 0x5a, 0x39, 0x54, 0xcc, 0xa2, 0xe9, 0x68, 0xed, 0xdf, 0x8b,
		0x8a, 0x6a, 0xe8, 0xfc, 0x59, 0x68, 0xa7, 0x4d, 0x9d, 0x8d, 0xf5, 0x19, 0x17, 0x3b, 0x5b, 0x1a,
		0xcf, 0x59, 0x1d, 0xc7, 0xac, 0xde, 0x96, 0xf0, 0xa6, 0x9c, 0xb2, 0x0d, 0x78, 0x6c, 0xd3, 0x4e,
		0x59, 0xb5, 0xde, 0x71, 0x38, 0x77, 0xf3, 0x39, 0x77, 0x0b, 0x6a, 0xa4, 0x7a, 0x55, 0xe2, 0x18,
		0x50, 0x48, 0xed, 0x80, 0x8a, 0x7a, 0x9a, 0x44, 0xb3, 0x17, 0x8f, 0x90, 0x85, 0xb1, 0x10, 0x0b,
		0x42, 0x2c, 0x08, 0xb1, 0x20, 0x59, 0x3b, 0x52, 0x0d, 0x79, 0xa4, 0x7c, 0x34, 0xa9, 0xc1, 0xf3,
		0x18, 0xda, 0x14, 0xf8, 0xb5, 0xd4, 0xf3, 0x1f, 0xf4, 0x31, 0xfe, 0x6d, 0x43, 0x2a, 0x2f, 0xd1,
		0x92, 0xcd, 0x49, 0xff, 0x9d, 0x3e, 0xc6, 0xbf, 0x25, 0x4a, 0x4e, 0x97, 0x5f, 0x87, 0x14, 0x6b,
		0x20, 0x7b, 0x4f, 0xa0, 0x76, 0x3f, 0x20, 0x79, 0x16, 0x20, 0xb1, 0x13, 0x89, 0x9d, 0xe9, 0x3d,
		0x8c, 0xb4, 0xef, 0x9e, 0xaf, 0xbc, 0x4b, 0xc9, 0x40, 0x2e, 0x7b, 0x6c, 0xee, 0xac, 0x65, 0xde,
		0xf5, 0x5d, 0x4c, 0x9d, 0xda, 0xa7, 0x4f, 0x53, 0x37, 0xb5, 0x31, 0x35, 0xb6, 0x12, 0xb8, 0x8d,
		0x80, 0xda, 0x94, 0xdd, 0xd1, 0xba, 0xcb, 0x06, 0x54, 0xb0, 0x11, 0x95, 0x77, 0x20, 0x6b, 0x23,
		0x21, 0x47, 0x1c, 0xae, 0xa4, 0x72, 0x39, 0xe2, 0x72, 0xcf, 0x27, 0xd6, 0x36, 0x8e, 0x34, 0x5c,
		0xb1, 0x2a, 0xd8, 0x2a, 0x19, 0x0c, 0xec, 0x1d, 0x31, 0x30, 0x59, 0xd3, 0x9b, 0x0f, 0x40, 0xb9,
		0x53, 0x97, 0x3a, 0xa9, 0x5e, 0xdc, 0x82, 0xf3, 0x11, 0x15, 0x57, 0x46, 0x2d, 0x30, 0xa2, 0xcd,
		0x3c, 0x75, 0x9a, 0x69, 0x46, 0xe6, 0xaa, 0xdb, 0x6c, 0x33, 0x33, 0xdf, 0xcc, 0xcc, 0x38, 0x3b,
		0x73, 0xd6, 0x13, 0x8a, 0x55, 0x0c, 0xea, 0xab, 0x07, 0x5a, 0xd6, 0x76, 0x5e, 0x64, 0xa1, 0x82,
		0xd9, 0x3f, 0xc2, 0xd2, 0x5d, 0x80, 0x7d, 0xe5, 0x93, 0x58, 0x7f, 0x8d, 0x13, 0xee, 0x85, 0xd4,
		0xf6, 0xb8, 0x13, 0xd6, 0x70, 0xb1, 0x96, 0x72, 0x50, 0x5c, 0xac, 0x69, 0xb6, 0xc1, 0xe5, 0x25,
		0xc3, 0xc5, 0x5a, 0x51, 0xab, 0xf8, 0xce, 0x2f, 0xd6, 0x54, 0xaa, 0xe6, 0x84, 0x82, 0x04, 0x42,
		0x33, 0xda, 0x5b, 0x18, 0x13, 0x78, 0x0f, 0x78, 0x0f, 0x78, 0x0f, 0x78, 0x0f, 0x78, 0x0f, 0x78,
		0x0f, 0x78, 0x0f, 0x78, 0x0f, 0x78, 0x4f, 0x07, 0xde, 0xcb, 0x35, 0x9c, 0xa8, 0x98, 0x76, 0xf0,
		0x84, 0x34, 0xd5, 0xd2, 0x0f, 0x56, 0x2f, 0xbf, 0x36, 0x94, 0x02, 0xfc, 0x96, 0x72, 0x5e, 0xc2,
		0xe5, 0x44, 0x9e, 0x93, 0xa9, 0x38, 0x52, 0x79, 0x0a, 0xf2, 0x0b, 0x2a, 0x95, 0xe3, 0x16, 0x37,
		0xf5, 0x56, 0x4f, 0x6f, 0x4b, 0xd1, 0x1b, 0xfc, 0x25, 0x8c, 0xa0, 0x7c, 0xaf, 0xd2, 0xc2, 0xbd,
		0x4a, 0xd6, 0x40, 0x1d, 0xf7, 0x2a, 0x2b, 0xe2, 0xe3, 0x5e, 0x05, 0x3c, 0x1b, 0x3c, 0x1b, 0x3c,
		0x1b, 0x3c, 0x1b, 0x3c, 0x1b, 0x3c, 0x1b, 0x3c, 0x1b, 0x3c, 0xbb, 0xea, 0x3c, 0x1b, 0xf7, 0x2a,
		0xc0, 0x7b, 0xc0, 0x7b, 0xc0, 0x7b, 0xc0, 0x7b, 0xc0, 0x7b, 0xc0, 0x7b, 0xc0, 0x7b, 0xc0, 0x7b,
		0xd5, 0xc6, 0x7b, 0xb8, 0x57, 0x19, 0xd1, 0x0d, 0x95, 0xf8, 0xbe, 0xa5, 0xfd, 0x5a, 0xa5, 0x17,
		0x4b, 0x83, 0xf7, 0xbb, 0xfa, 0x17, 0x3a, 0xf7, 0x97, 0xbc, 0x2b, 0x4b, 0x5b, 0x86, 0xb7, 0x79,
		0x21, 0xe5, 0x8e, 0x86, 0x87, 0x79, 0xcb, 0xc3, 0xe0, 0x55, 0x5e, 0xc6, 0x5c, 0x0a, 0xaf, 0xf2,
		0x64, 0x5d, 0x10, 0x5e, 0xe5, 0xe1, 0x55, 0x5e, 0x3e, 0xe1, 0x08, 0xdc, 0x1e, 0x6b, 0x32, 0xbd,
		0xf9, 0x00, 0xb8, 0x3d, 0x46, 0x34, 0x11, 0xd1, 0x44, 0x44, 0x13, 0x11, 0x4d, 0x44, 0x34, 0x11,
		0xd1, 0x44, 0x44, 0x13, 0x11, 0x4d, 0x2c, 0x79, 0x34, 0x51, 0x25, 0x84, 0x16, 0x41, 0x33, 0xc2,
		0x9d, 0xfa, 0x34, 0x68, 0xa3, 0xf1, 0x0e, 0x79, 0x75, 0x64, 0xc5, 0xf3, 0xee, 0x88, 0x0e, 0xc8,
		0xd8, 0x15, 0x5a, 0xbc, 0x75, 0x2d, 0x82, 0x17, 0x6a, 0x00, 0xe0, 0x0a, 0x50, 0x16, 0x50, 0x16,
		0x50, 0xb6, 0xa4, 0x50, 0xf6, 0xc6, 0xf3, 0x5c, 0x4a, 0xb8, 0xce, 0x2e, 0x26, 0x4d, 0xe4, 0x06,
		0x21, 0x37, 0x08, 0x2e, 0x10, 0x2e, 0x10, 0x6c, 0x1e, 0x6c, 0x1e, 0x6c, 0x1e, 0x6c, 0x1e, 0x6c,
		0x1e, 0x6c, 0x3e, 0x0b, 0xbc, 0xf7, 0x1e, 0x73, 0x83, 0x96, 0xf2, 0x1a, 0x8a, 0x7e, 0x70, 0xdd,
		0xa3, 0xdc, 0xc1, 0x6b, 0x6b, 0x29, 0x92, 0x84, 0xd7, 0xd6, 0xba, 0xa1, 0x3a, 0xee, 0xcb, 0xb3,
		0x76, 0x81, 0xb8, 0x2f, 0x07, 0xc3, 0x06, 0xc3, 0x06, 0xc3, 0x06, 0xc3, 0x06, 0xc3, 0x06, 0xc3,
		0x06, 0xc3, 0x06, 0xc3, 0xae, 0x3a, 0xc3, 0xc6, 0x7d, 0x79, 0xda, 0xc1, 0x70, 0x5f, 0x0e, 0x28,
		0x0b, 0x28, 0x5b, 0x5d, 0x28, 0x8b, 0xfb, 0x72, 0x0b, 0xf7, 0xe5, 0x70, 0x81, 0x70, 0x81, 0x60,
		0xf3, 0x60, 0xf3, 0x60, 0xf3, 0x60, 0xf3, 0x60, 0xf3, 0x60, 0xf3, 0x86, 0xb0, 0x79, 0xdc, 0x97,
		0x17, 0x5b, 0x48, 0x63, 0xe9, 0xba, 0x1c, 0x55, 0x34, 0x32, 0x59, 0xe2, 0xdc, 0x4b, 0x68, 0x2c,
		0x2e, 0x6a, 0x29, 0xea, 0x67, 0x48, 0x25, 0x39, 0x28, 0x25, 0x37, 0x28, 0xd7, 0xcb, 0x68, 0xa1,
		0x5e, 0x06, 0xea, 0x65, 0x24, 0x14, 0x53, 0xbe, 0x5e, 0x46, 0xf0, 0xe8, 0x0b, 0xaf, 0x4e, 0xdc,
		0xa1, 0x17, 0x30, 0x71, 0x3b, 0xd2, 0x50, 0x39, 0x63, 0x75, 0x44, 0xb5, 0x9c, 0xa0, 0x06, 0x6a,
		0x68, 0xe8, 0x0e, 0x47, 0x20, 0x27, 0x28, 0x6b, 0x98, 0xa7, 0x1c, 0x5e, 0x98, 0xef, 0x1c, 0xe6,
		0x50, 0x2e, 0x98, 0x78, 0x0c, 0xe8, 0x40, 0x65, 0xe7, 0xcc, 0xce, 0x22, 0x05, 0xde, 0x53, 0xeb,
		0x4e, 0x45, 0xf9, 0x4c, 0x42, 0x8d, 0xf1, 0xcd, 0xc3, 0xcb, 0xbf, 0x2e, 0xfa, 0xe7, 0xd7, 0xfd,
		0xbf, 0x2e, 0x3a, 0xaa, 0xbb, 0x30, 0xe6, 0x7b, 0xa1, 0x96, 0x88, 0x84, 0xa6, 0x78, 0xdf, 0x4c,
		0xc9, 0x76, 0xa7, 0x77, 0xdd, 0xda, 0xbb, 0x3e, 0x3c, 0x6d, 0x1f, 0x5e, 0xef, 0xef, 0x68, 0x08,
		0x9e, 0x7d, 0x2c, 0x9b, 0x86, 0xd3, 0x65, 0x3c, 0x3b, 0x3f, 0xeb, 0x54, 0x51, 0xbd, 0xdf, 0xa2,
		0x95, 0x3b, 0x3d, 0xda, 0xae, 0xac, 0x6e, 0xbd, 0xdf, 0xda, 0xd7, 0xcd, 0x6a, 0x6b, 0x77, 0xdd,
		0x6c, 0x55, 0x5c, 0xc1, 0x56, 0xa3, 0xe2, 0x0a, 0x56, 0xd3, 0x77, 0xce, 0x15, 0x6c, 0x6d, 0x57,
		0x52, 0xbf, 0x8a, 0xfa, 0x4d, 0x5d, 0x2e, 0xf3, 0x43, 0x31, 0x61, 0xd3, 0x9f, 0x25, 0x7e, 0x93,
		0xf2, 0x83, 0x3e, 0xd6, 0x99, 0xa3, 0xce, 0x45, 0xa7, 0xe3, 0x80, 0x81, 0x82, 0x81, 0x82, 0x81,
		0x4a, 0xee, 0x9c, 0x31, 0x67, 0x1e, 0xd7, 0xc1, 0x3d, 0xf7, 0x15, 0xc6, 0x98, 0xaa, 0xa3, 0x46,
		0xec, 0x34, 0xde, 0xf6, 0xdf, 0xd2, 0x87, 0x7a, 0x28, 0x02, 0xc6, 0x87, 0x3a, 0x73, 0x9e, 0x74,
		0xdc, 0xf6, 0x9f, 0x50, 0x3e, 0x8c, 0xaf, 0x0c, 0xde, 0xd7, 0xb5, 0x7c, 0x13, 0x17, 0xba, 0xfa,
		0x80, 0xd2, 0xd3, 0x92, 0x65, 0x79, 0x2d, 0xbf, 0xb3, 0x85, 0x35, 0xd3, 0x82, 0x01, 0xf5, 0x8d,
		0x72, 0xa5, 0xc1, 0x01, 0x5d, 0x10, 0x21, 0x68, 0xc0, 0xb5, 0x79, 0xa0, 0xda, 0xdf, 0x8d, 0xfa,
		0x3e, 0xa9, 0x0f, 0xda, 0xf5, 0xe3, 0xab, 0xff, 0xad, 0x95, 0x43, 0xc5, 0xf3, 0x5e, 0xf7, 0x4f,
		0xed, 0x7a, 0xfe, 0x7b, 0x51, 0xd1, 0xff, 0xa9, 0x15, 0x9d, 0x51, 0xf1, 0xb1, 0x2c, 0x67, 0xed,
		0x98, 0x71, 0x51, 0xba, 0xa4, 0x3a, 0x24, 0xbf, 0xe1, 0x94, 0x35, 0xe2, 0x94, 0x45, 0xf2, 0x9b,
		0x09, 0xe7, 0x6e, 0x41, 0xc9, 0x6f, 0x57, 0x65, 0xae, 0x4b, 0x42, 0xed, 0x80, 0x8a, 0x88, 0x78,
		0x6b, 0x28, 0x4e, 0xf2, 0x34, 0x16, 0x62, 0x41, 0x88, 0x05, 0x21, 0x16, 0x24, 0x6b, 0x47, 0xaa,
		0x21, 0x8f, 0xa7, 0x50, 0x07, 0x72, 0x3c, 0x35, 0xe4, 0x78, 0x4a, 0x26, 0xee, 0x2a, 0xe6, 0x76,
		0xa6, 0xcf, 0xd1, 0x4d, 0x91, 0xd4, 0xf9, 0x41, 0xe3, 0x3a, 0x45, 0xae, 0x25, 0xf5, 0x35, 0x40,
		0xed, 0x84, 0x85, 0xa2, 0x2d, 0x44, 0xba, 0x84, 0xba, 0x08, 0x77, 0x77, 0x5c, 0x1a, 0x79, 0x89,
		0x94, 0x08, 0x28, 0x82, 0x7f, 0x0b, 0x9f, 0x54, 0xc3, 0x6b, 0xb5, 0xf3, 0xc0, 0xa1, 0x01, 0x75,
		0x3e, 0x47, 0x7a, 0xf3, 0xb1, 0xeb, 0xca, 0x7c, 0xf4, 0x6b, 0x48, 0x83, 0x54, 0x50, 0x2b, 0xe9,
		0x72, 0x48, 0x9a, 0x8b, 0xa2, 0x99, 0xd4, 0x52, 0xe5, 0x09, 0xcb, 0x1b, 0x46, 0x32, 0x93, 0x78,
		0x7b, 0x83, 0xbf, 0xfe, 0x17, 0x6f, 0xcc, 0x75, 0xda, 0x39, 0x56, 0x98, 0xdb, 0x04, 0xf3, 0x2a,
		0x3d, 0x9f, 0xaf, 0xcf, 0xe5, 0xcb, 0x33, 0xf4, 0xca, 0xec, 0xd4, 0xa6, 0x52, 0xbc, 0x3e, 0x27,
		0xf3, 0xa3, 0x2e, 0xfe, 0xeb, 0x37, 0xe6, 0x3a, 0x19, 0x28, 0x4c, 0x0c, 0xfe, 0xd2, 0x80, 0x3c,
		0x49, 0x30, 0x97, 0x16, 0xb4, 0x49, 0x83, 0x33, 0x69, 0x10, 0x26, 0x0f, 0xb6, 0xd4, 0xec, 0x26,
		0x31, 0x48, 0x9a, 0xcf, 0xbc, 0x4b, 0xc9, 0x20, 0x59, 0x5a, 0xe6, 0x1c, 0xf5, 0xec, 0x26, 0xf8,
		0xdb, 0x8b, 0xa9, 0x29, 0x7e, 0xfa, 0x34, 0x2d, 0x64, 0xb9, 0x11, 0x6f, 0xc5, 0x0c, 0x0c, 0x22,
		0xd9, 0xa3, 0x88, 0x54, 0x8f, 0x20, 0x12, 0x3e, 0x7a, 0x48, 0xfc, 0xc8, 0x01, 0x26, 0x51, 0xa0,
		0x49, 0x24, 0x7d, 0x54, 0x90, 0xcc, 0xb3, 0xca, 0x78, 0x58, 0x49, 0xfa, 0x9d, 0x9a, 0x6e, 0xcb,
		0xd0, 0x6b, 0x45, 0x3a, 0x2d, 0x4b, 0x9f, 0x95, 0xe9, 0xb2, 0x32, 0x3d, 0x56, 0xa7, 0xc3, 0x7a,
		0x41, 0x7e, 0x6a, 0x7a, 0x2b, 0x4f, 0x67, 0x53, 0xd2, 0xd7, 0x04, 0x58, 0x2f, 0x81, 0x7f, 0x12,
		0x9e, 0x4b, 0x03, 0xc2, 0x6d, 0x09, 0x13, 0x7b, 0xfa, 0x28, 0xec, 0x0c, 0x76, 0x56, 0x98, 0x9d,
		0xa5, 0x4d, 0x21, 0x92, 0x49, 0x19, 0x92, 0x4b, 0x11, 0x52, 0x78, 0x2a, 0x49, 0xf9, 0x78, 0x44,
		0x83, 0x09, 0xd3, 0x92, 0x08, 0xc1, 0xcc, 0x54, 0x94, 0x48, 0x82, 0xa8, 0x75, 0xf8, 0x58, 0xe1,
		0xa1, 0x5e, 0xdf, 0xeb, 0x4d, 0xfc, 0x9e, 0x52, 0x48, 0xb0, 0x11, 0xcd, 0xc1, 0xf1, 0xf9, 0x65,
		0xe7, 0x5b, 0xe7, 0xb2, 0x96, 0x6f, 0x38, 0xd3, 0xeb, 0xc6, 0x36, 0xa1, 0x20, 0xfc, 0x4c, 0xee,
		0x03, 0xab, 0x51, 0x85, 0x38, 0xa4, 0xc2, 0x2e, 0x1e, 0x33, 0x2e, 0x36, 0x5b, 0x0a, 0x1b, 0x78,
		0x57, 0xe2, 0xa3, 0x6a, 0x97, 0xe7, 0x0a, 0xeb, 0xae, 0xe3, 0x72, 0x5c, 0xd7, 0x65, 0xb8, 0xf6,
		0x6b, 0x53, 0x7d, 0xd7, 0xa4, 0x2a, 0x35, 0xd0, 0x74, 0x5c, 0x66, 0xcf, 0xa7, 0x78, 0xab, 0xb5,
		0xbf, 0xb5, 0xbf, 0xb3, 0xdb, 0xda, 0xdf, 0xae, 0xee, 0x5c, 0xe7, 0xe4, 0x80, 0xae, 0x32, 0x0a,
		0xd8, 0x5f, 0xbd, 0xa3, 0xa8, 0x67, 0xd2, 0xfb, 0x16, 0xa9, 0xb0, 0x67, 0x82, 0x6b, 0x95, 0x57,
		0xc2, 0x3c, 0x1f, 0x52, 0xcc, 0xda, 0xec, 0x5a, 0xe4, 0x15, 0x02, 0x9e, 0xec, 0x12, 0x24, 0xf9,
		0xa5, 0x87, 0xd2, 0x25, 0x47, 0x8a, 0x4b, 0x8d, 0x14, 0x97, 0x18, 0x2f, 0x4d, 0x4e, 0xc2, 0xad,
		0x24, 0xb7, 0x85, 0x6a, 0xaf, 0x86, 0xe3, 0x52, 0x6f, 0x9a, 0xe7, 0xb7, 0xcb, 0xfa, 0x66, 0x58,
		0xfe, 0x97, 0x15, 0xcd, 0xdf, 0xd2, 0x38, 0x95, 0xa6, 0xcf, 0x28, 0x98, 0x42, 0xb1, 0x65, 0x7d,
		0x9e, 0xa4, 0x5e, 0x90, 0xb8, 0xe6, 0xba, 0x8e, 0xbf, 0x26, 0xe7, 0x53, 0x50, 0x36, 0xfa, 0xaf,
		0x2b, 0xfa, 0x3d, 0x1f, 0x93, 0x7c, 0x91, 0xbc, 0xbe, 0x46, 0x52, 0x17, 0xc9, 0xe8, 0x33, 0x5f,
		0x95, 0x84, 0x70, 0x26, 0x26, 0x96, 0x89, 0x09, 0xe4, 0x2a, 0x51, 0x8c, 0x05, 0x4b, 0xb9, 0x07,
		0x5e, 0x8a, 0xf5, 0xd5, 0xec, 0xd9, 0x2c, 0xbd, 0xa0, 0xcd, 0xbc, 0xec, 0xc7, 0x6b, 0x4d, 0x97,
		0xde, 0x08, 0x0b, 0xbf, 0x19, 0x47, 0x48, 0x12, 0x37, 0x48, 0xb0, 0x34, 0x69, 0x63, 0x02, 0xa9,
		0x63, 0x00, 0xa9, 0x39, 0x7f, 0xb2, 0xa5, 0x93, 0xf3, 0xf2, 0x6f, 0x85, 0x6f, 0x6b, 0xf6, 0x2d,
		0x09, 0x43, 0x16, 0x26, 0x79, 0x69, 0xf7, 0xb4, 0xcc, 0x4f, 0x9f, 0x31, 0xe3, 0x72, 0xec, 0x8d,
		0xad, 0x60, 0xee, 0x2d, 0xc0, 0xeb, 0x5b, 0x45, 0x0f, 0xac, 0x4a, 0x7f, 0x29, 0x96, 0x38, 0xa4,
		0x9a, 0x30, 0x94, 0x2a, 0x77, 0xb3, 0xf5, 0xb4, 0x4b, 0xeb, 0x22, 0x89, 0x0a, 0xcf, 0x6c, 0xef,
		0xc9, 0x07, 0xb1, 0xc7, 0xb1, 0xc7, 0x15, 0x37, 0x49, 0xda, 0x68, 0x5f, 0xba, 0xe8, 0x9e, 0x5c,
		0x34, 0x6f, 0x12, 0xbd, 0x3b, 0xfc, 0xad, 0xdd, 0xeb, 0x75, 0x7b, 0xd7, 0x87, 0xe7, 0xa7, 0x17,
		0xe7, 0x67, 0x9d, 0xb3, 0x7e, 0x9a, 0x10, 0x6d, 0x33, 0x1a, 0xa1, 0x7b, 0xd6, 0xef, 0x5c, 0x1e,
		0xb7, 0x0f, 0x3b, 0xd7, 0xed, 0x93, 0x6e, 0xbb, 0x97, 0xe6, 0xf3, 0xad, 0xe8, 0xf3, 0x17, 0xe7,
		0x97, 0x7d, 0xb9, 0xaf, 0xdf, 0x8c, 0x0b, 0x0b, 0xb4, 0x0f, 0xaf, 0xdb, 0x47, 0x47, 0x97, 0x9d,
		0x5e, 0xaa, 0xaf, 0xde, 0x8a, 0x3e, 0x7b, 0xd6, 0xe9, 0xff, 0x71, 0x7e, 0xf9, 0xbb, 0xcc, 0xe7,
		0xb7, 0x97, 0x55, 0x3f, 0x6b, 0x9f, 0xa6, 0x29, 0x5d, 0x54, 0xdb, 0x89, 0x3e, 0x7e, 0x72, 0x7e,
		0xd8, 0x3e, 0xa9, 0xe9, 0x8d, 0xcf, 0xa7, 0x8e, 0x8b, 0x3e, 0xb3, 0x03, 0xd2, 0xa5, 0xae, 0xad,
		0xae, 0x7f, 0xaa, 0x77, 0x98, 0xab, 0x53, 0x78, 0x60, 0xa5, 0x49, 0x74, 0x9b, 0x4c, 0xe0, 0x81,
		0xb5, 0x93, 0x26, 0xd3, 0x6e, 0x61, 0xbf, 0x1c, 0x58, 0x9b, 0x29, 0x3e, 0xb9, 0xba, 0x5b, 0x0e,
		0xac, 0x14, 0x71, 0xfb, 0xd5, 0x6d, 0x7e, 0x60, 0xb5, 0xf2, 0x09, 0x9a, 0x48, 0x9d, 0x9d, 0x94,
		0x93, 0x1b, 0x97, 0xa6, 0x80, 0x84, 0xb3, 0x0f, 0xbc, 0x95, 0x4d, 0x90, 0xa2, 0xa1, 0x4c, 0x82,
		0x86, 0x31, 0x57, 0x38, 0x9a, 0x71, 0x34, 0xaf, 0xcd, 0x78, 0xf2, 0x46, 0x24, 0x09, 0x1b, 0x8d,
		0xc8, 0xd9, 0xd0, 0x2d, 0x75, 0x5d, 0x2f, 0x6e, 0xda, 0x11, 0x24, 0xb7, 0xa3, 0xc5, 0x0f, 0x61,
		0x73, 0x63, 0x73, 0xaf, 0xcd, 0x78, 0xe2, 0x87, 0xb0, 0x29, 0x1e, 0xba, 0xa6, 0xbc, 0x8b, 0x4b,
		0x97, 0x10, 0x9f, 0x3e, 0xe9, 0x42, 0xf2, 0x6e, 0x4d, 0xf9, 0x7e, 0x47, 0xfe, 0x3e, 0xe7, 0x67,
		0xba, 0x4c, 0x7f, 0xf9, 0x29, 0x51, 0x7f, 0xc8, 0x59, 0xe4, 0x2c, 0x69, 0x02, 0x3c, 0x57, 0x59,
		0xa4, 0xc1, 0x8e, 0x7d, 0x3f, 0xa0, 0x61, 0x58, 0x17, 0xee, 0x5d, 0x9d, 0x38, 0x77, 0x34, 0x10,
		0x2c, 0xa4, 0x53, 0x6f, 0x90, 0x34, 0x37, 0xf6, 0xe5, 0x31, 0xe0, 0xca, 0xe1, 0xca, 0xd7, 0x66,
		0x3c, 0x5d, 0x59, 0xdf, 0x34, 0xe5, 0x7b, 0xe5, 0xca, 0xf4, 0xce, 0x05, 0x3b, 0x39, 0x39, 0xba,
		0xb8, 0xee, 0x9f, 0x7c, 0x4b, 0xba, 0x4c, 0x12, 0x35, 0x77, 0x25, 0x6b, 0xf0, 0xcf, 0xb8, 0x6a,
		0xf7, 0xa8, 0x96, 0x85, 0x73, 0x96, 0x94, 0xea, 0xb4, 0x7d, 0xd6, 0xfe, 0xd2, 0x39, 0xed, 0x9c,
		0xf5, 0xe7, 0xdc, 0xb0, 0x44, 0xd2, 0xc5, 0xc4, 0xf3, 0xa8, 0xd3, 0x3b, 0xbc, 0xec, 0x5e, 0xf4,
		0xbb, 0xe7, 0x67, 0xa5, 0x93, 0xad, 0x5c, 0x8b, 0xd9, 0xfb, 0xab, 0xd7, 0xef, 0x9c, 0x5e, 0x1f,
		0xb6, 0x2f, 0xda, 0x9f, 0xbb, 0x27, 0xdd, 0x7e, 0xb7, 0xd3, 0x2b, 0xa1, 0x78, 0x25, 0x5d, 0xcf,
		0xa9, 0x74, 0x71, 0x28, 0x47, 0x33, 0x2e, 0xb8, 0xca, 0xd8, 0x7f, 0xa7, 0x7a, 0xf1, 0x99, 0xfe,
		0xa5, 0xa7, 0x96, 0x17, 0x9e, 0x12, 0x2f, 0x3b, 0x25, 0x5e, 0x74, 0x4a, 0x22, 0xa8, 0xc7, 0x50,
		0xd0, 0x51, 0xdd, 0xa1, 0xa1, 0x1d, 0x30, 0x3f, 0x51, 0x16, 0xce, 0x13, 0x72, 0x5a, 0xff, 0x2c,
		0x10, 0x13, 0x10, 0xd3, 0xfa, 0x3e, 0x49, 0x7f, 0xb1, 0x98, 0xe0, 0x6f, 0x53, 0x56, 0x4b, 0x04,
		0xfd, 0x2d, 0x8c, 0xfe, 0xb6, 0xb6, 0xc1, 0x76, 0x35, 0xfa, 0xea, 0x74, 0x8f, 0xa1, 0x17, 0x3f,
		0x04, 0xef, 0x0c, 0xef, 0x0c, 0xef, 0x0c, 0xef, 0x0c, 0xef, 0x9c, 0x4b, 0xae, 0xb6, 0x7a, 0x3a,
		0x72, 0xe4, 0x31, 0x36, 0xe2, 0xff, 0xf7, 0x6a, 0x8e, 0xa6, 0xf5, 0x5a, 0xaa, 0xee, 0x89, 0xeb,
		0xf8, 0xd7, 0xf1, 0xff, 0x9b, 0x3a, 0xee, 0xa4, 0x89, 0xc7, 0xcf, 0xe4, 0xc7, 0x32, 0x2e, 0x68,
		0x30, 0x20, 0x76, 0x1c, 0x36, 0x7a, 0x23, 0xab, 0x74, 0xe1, 0x6f, 0x91, 0x59, 0x6a, 0x4e, 0x66,
		0xe9, 0x7c, 0xd9, 0x92, 0x43, 0x8c, 0xa7, 0x8f, 0x68, 0xae, 0x30, 0x01, 0x80, 0x51, 0x3e, 0x80,
		0x91, 0xb8, 0xb2, 0xc4, 0x1b, 0xd9, 0xe7, 0x2f, 0x2e, 0xd0, 0x9b, 0x9e, 0x4e, 0x62, 0x4b, 0xa5,
		0xde, 0x5a, 0x32, 0x5b, 0x4c, 0x61, 0xab, 0xc9, 0x6e, 0x39, 0xe5, 0xad, 0xa7, 0xbc, 0x05, 0xd5,
		0xb6, 0x62, 0xca, 0x73, 0x3d, 0xe1, 0x9a, 0xa5, 0xed, 0xa8, 0x9a, 0x38, 0x6f, 0xea, 0xc5, 0x95,
		0x4e, 0x96, 0x47, 0xb5, 0x2e, 0x68, 0x8a, 0xbc, 0xaa, 0xb5, 0x0f, 0xbf, 0x9d, 0x67, 0xb5, 0x86,
		0x7a, 0xe4, 0xba, 0x20, 0x37, 0x64, 0xbb, 0x20, 0x37, 0x8a, 0xe9, 0x82, 0x9c, 0xd2, 0xe6, 0x54,
		0x6d, 0x4f, 0x9b, 0x0d, 0x6a, 0xb3, 0x45, 0x3d, 0x36, 0x99, 0xce, 0x36, 0x25, 0x68, 0x8b, 0xa5,
		0x54, 0xe0, 0x54, 0x22, 0x6f, 0xec, 0xc5, 0xc3, 0xa3, 0x59, 0x82, 0x36, 0xe7, 0xa9, 0x0a, 0x31,
		0xad, 0x4d, 0x42, 0x8a, 0x82, 0x4c, 0x30, 0x6f, 0x98, 0xb7, 0x49, 0xe6, 0x4d, 0x42, 0x5a, 0x9f,
		0x33, 0x8c, 0xba, 0x5c, 0x33, 0xe5, 0x34, 0x55, 0xfc, 0xd6, 0xf7, 0xed, 0x9c, 0x98, 0xdb, 0x75,
		0x36, 0x38, 0x78, 0xe2, 0xb5, 0xab, 0xff, 0x30, 0xfd, 0xfd, 0xed, 0x9a, 0x7f, 0x0a, 0x1e, 0xa5,
		0xe4, 0x45, 0x5d, 0x9f, 0x02, 0x16, 0x0b, 0xd3, 0xf4, 0x34, 0x41, 0xa9, 0xb0, 0x7d, 0xc2, 0xa8,
		0x46, 0x77, 0xfe, 0x45, 0x4f, 0x3f, 0xbe, 0x1a, 0xea, 0x48, 0x3f, 0xa7, 0x49, 0x4a, 0x7d, 0xbd,
		0xfb, 0x42, 0x7a, 0xa0, 0x3a, 0x05, 0x58, 0xb0, 0x7c, 0x61, 0xaf, 0xe4, 0x25, 0x50, 0x55, 0x9c,
		0xa8, 0x54, 0x49, 0x54, 0xcd, 0x86, 0x49, 0xd9, 0xf0, 0xf6, 0xc6, 0x0b, 0x42, 0x09, 0xeb, 0x9c,
		0x7f, 0x34, 0xe3, 0x68, 0x44, 0x0b, 0x26, 0x8a, 0x68, 0xc4, 0xea, 0x86, 0x55, 0x60, 0x03, 0xb3,
		0x11, 0xe4, 0x18, 0x41, 0x13, 0x8c, 0x00, 0x8c, 0x20, 0x2b, 0x46, 0x90, 0xd6, 0x1c, 0x9e, 0xe2,
		0xc9, 0xc4, 0x27, 0x37, 0xcc, 0x65, 0x82, 0xd1, 0x50, 0xbd, 0xad, 0xd0, 0xd2, 0x68, 0x6a, 0x8d,
		0x85, 0x9a, 0xaa, 0x8d, 0x85, 0x5a, 0xe5, 0x68, 0x2c, 0x24, 0x69, 0x46, 0xba, 0xcc, 0x49, 0xbb,
		0x59, 0x69, 0x37, 0x2f, 0xbd, 0x66, 0x26, 0x67, 0x6e, 0x92, 0x66, 0xa7, 0x6c, 0x7e, 0xeb, 0x66,
		0xf8, 0xa8, 0xbe, 0xd2, 0x6b, 0xc6, 0xf8, 0xa8, 0xba, 0xd4, 0x6a, 0x26, 0xa9, 0x7c, 0xa2, 0x65,
		0x61, 0xa2, 0x19, 0x98, 0xaa, 0x6e, 0x93, 0xcd, 0xcc, 0x74, 0x33, 0x33, 0xe1, 0x6c, 0x4c, 0x59,
		0xcd, 0xa4, 0x15, 0x4d, 0x5b, 0x9b, 0x89, 0x3f, 0x99, 0x7a, 0xba, 0x1b, 0xdc, 0xe4, 0xe6, 0x9e,
		0x36, 0x0a, 0x94, 0x83, 0xc9, 0x6b, 0x37, 0xfd, 0x2c, 0x5c, 0x40, 0x86, 0xae, 0x20, 0x2b, 0x97,
		0x90, 0xb9, 0x6b, 0xc8, 0xdc, 0x45, 0x64, 0xeb, 0x2a, 0xf4, 0xb8, 0x0c, 0x4d, 0xae, 0xe3, 0x49,
		0x55, 0xb5, 0xe6, 0x78, 0x2f, 0x8e, 0x2b, 0x1d, 0x38, 0x9e, 0x47, 0x62, 0xe6, 0x3f, 0x6d, 0x2c,
		0x22, 0xf8, 0xa7, 0x5f, 0x1e, 0x37, 0xb4, 0x7a, 0x17, 0x4b, 0x21, 0x06, 0x7d, 0x36, 0x93, 0x79,
		0xfe, 0xd3, 0xf5, 0xe1, 0x82, 0xcc, 0x4f, 0xbf, 0x3c, 0xa6, 0x0a, 0x57, 0x67, 0xbf, 0x93, 0x34,
		0xec, 0x22, 0xb9, 0xeb, 0xcc, 0xb7, 0x03, 0x1b, 0xe9, 0xaf, 0x39, 0xdf, 0x3a, 0x37, 0x1a, 0x38,
		0x37, 0x70, 0x6e, 0xe0, 0xdc, 0xd0, 0xb3, 0x67, 0x95, 0xdb, 0xd5, 0xbe, 0xb8, 0x63, 0xd3, 0x5f,
		0x57, 0x24, 0x06, 0x8e, 0xbb, 0x1a, 0xc7, 0x5c, 0xb8, 0xee, 0x88, 0x2b, 0x8e, 0x6f, 0xa4, 0xbf,
		0x0c, 0x2e, 0xb7, 0x5f, 0x4f, 0xd6, 0x78, 0x2e, 0xf5, 0xf2, 0xca, 0xb6, 0xc3, 0xcd, 0x95, 0x11,
		0xb4, 0xe0, 0xd9, 0xe1, 0xd9, 0xdf, 0xa9, 0x67, 0xd7, 0x15, 0x54, 0x98, 0x0f, 0x28, 0x9b, 0x73,
		0x9b, 0xd8, 0x12, 0xe4, 0x72, 0x72, 0x73, 0x86, 0x8d, 0x99, 0xc1, 0xc7, 0x2c, 0x9d, 0x4d, 0x0e,
		0x4e, 0x27, 0x6b, 0xe7, 0x93, 0x9b, 0x13, 0xca, 0xcd, 0x19, 0xe5, 0xe3, 0x94, 0xf4, 0x3a, 0x27,
		0xcd, 0x4e, 0x2a, 0x3b, 0x18, 0xba, 0xb6, 0xe3, 0xe5, 0x93, 0x8e, 0x13, 0xa3, 0x97, 0x66, 0xa9,
		0xa7, 0x98, 0x3e, 0x88, 0x80, 0xd4, 0xc7, 0x3c, 0x14, 0x91, 0x97, 0xcd, 0x66, 0xb2, 0x03, 0x3a,
		0xa0, 0x01, 0x9d, 0x74, 0xcf, 0xfc, 0x3b, 0x13, 0x63, 0xc9, 0xc6, 0xa9, 0x2c, 0xed, 0x94, 0x1e,
		0xb5, 0xad, 0xbd, 0x4f, 0xdb, 0x9f, 0xf6, 0x3e, 0xb5, 0x2c, 0x6f, 0x60, 0x75, 0x3b, 0x9d, 0x8e,
		0xb5, 0xd7, 0x68, 0x7d, 0x6a, 0xb6, 0x3f, 0xd7, 0x5b, 0x8d, 0xc6, 0x7e, 0x46, 0xfe, 0x26, 0x0f,
		0xe7, 0xf9, 0x9c, 0x13, 0x7d, 0x5a, 0xb3, 0x8f, 0xd9, 0x7e, 0x67, 0x5e, 0xfe, 0xf4, 0x59, 0xbf,
		0xfa, 0xe6, 0xa2, 0x66, 0x26, 0xca, 0xcf, 0x0f, 0x66, 0x8c, 0x7a, 0xf5, 0xa1, 0x9c, 0xf2, 0x69,
		0xf4, 0x83, 0x7a, 0x63, 0x9c, 0x6b, 0x8e, 0x43, 0x63, 0xac, 0x13, 0xe0, 0x15, 0xe0, 0x15, 0xe0,
		0x15, 0xe0, 0x55, 0xaa, 0x82, 0xa9, 0x34, 0x80, 0xdd, 0xce, 0x60, 0x6c, 0xa9, 0x0a, 0xa9, 0xd2,
		0x13, 0x15, 0x57, 0x54, 0x5d, 0xad, 0x2c, 0xf9, 0x57, 0x56, 0x46, 0x26, 0x51, 0x8f, 0xb5, 0x3c,
		0x78, 0x77, 0x69, 0xde, 0x0e, 0xaf, 0xbf, 0x9d, 0xb4, 0xcf, 0x32, 0x04, 0x41, 0x1f, 0x4d, 0x9f,
		0xa1, 0xa3, 0xf3, 0xc3, 0xb8, 0x79, 0x4b, 0xfb, 0xf3, 0x49, 0xe7, 0xfa, 0xa8, 0xf3, 0xad, 0x7b,
		0xd8, 0xc1, 0x74, 0xbd, 0x3c, 0x5d, 0xa7, 0xed, 0xc3, 0xeb, 0xcf, 0x97, 0xdd, 0xa3, 0x2f, 0x98,
		0xa5, 0x57, 0x66, 0xe9, 0xbc, 0xff, 0x9b, 0x6c, 0x43, 0xf7, 0xf7, 0x31, 0x41, 0x97, 0x9d, 0x8b,
		0x4e, 0xbb, 0x8f, 0x39, 0x7a, 0x75, 0x8e, 0xce, 0xbf, 0x62, 0x86, 0x5e, 0x8f, 0xe8, 0xf4, 0xdb,
		0xfd, 0xee, 0xf9, 0xd9, 0xf5, 0xf9, 0xd9, 0xc9, 0x5f, 0x98, 0xa7, 0x57, 0xe6, 0x09, 0x28, 0xe0,
		0x8d, 0x19, 0xea, 0x77, 0x4e, 0x3a, 0x17, 0xbf, 0x9d, 0x9f, 0xe1, 0x54, 0x7b, 0x6d, 0x92, 0xfe,
		0x38, 0xbf, 0x8e, 0x0b, 0xce, 0x47, 0x20, 0xe0, 0xb2, 0x73, 0xd2, 0x86, 0xd1, 0xbd, 0x32, 0x5b,
		0x7f, 0x9c, 0xb4, 0xcf, 0xae, 0xdb, 0x87, 0x87, 0x9d, 0x5e, 0xef, 0xfa, 0xe2, 0xbc, 0x7b, 0xd6,
		0x37, 0x2d, 0x14, 0x79, 0x55, 0x76, 0xba, 0x8f, 0x94, 0xdf, 0x54, 0xe3, 0xe6, 0x91, 0xf2, 0xab,
		0x33, 0x7b, 0xc8, 0xca, 0x27, 0xe3, 0xb7, 0x17, 0x8b, 0x5c, 0x96, 0xc4, 0xb0, 0x42, 0xdf, 0xab,
		0xfc, 0x4e, 0x1f, 0x35, 0xc5, 0xbb, 0xd3, 0x75, 0x83, 0x78, 0x73, 0xb4, 0xd4, 0xdd, 0x22, 0xde,
		0x1e, 0x51, 0x43, 0x37, 0x89, 0x37, 0xbf, 0x24, 0x7d, 0xb7, 0x89, 0xe4, 0x43, 0x26, 0xee, 0x46,
		0x91, 0xf5, 0xa6, 0xd1, 0xec, 0xae, 0xf2, 0x70, 0x53, 0x35, 0x2d, 0xe9, 0x97, 0x19, 0x3b, 0x26,
		0x35, 0x97, 0xf4, 0xd3, 0x90, 0x57, 0xb0, 0x9a, 0x76, 0x4f, 0x66, 0xbb, 0x46, 0xe5, 0x19, 0x76,
		0x36, 0x5b, 0x44, 0x6e, 0x5f, 0xa4, 0x5f, 0x55, 0x89, 0x15, 0x55, 0x7d, 0xa7, 0xa8, 0xe7, 0x5d,
		0xa2, 0xb6, 0x6a, 0x00, 0x0d, 0x54, 0x03, 0x58, 0x41, 0x07, 0xa8, 0x06, 0xf0, 0xae, 0xfc, 0xa0,
		0xea, 0xfb, 0x3d, 0x9d, 0x1e, 0x50, 0xe1, 0x5d, 0x5e, 0x4e, 0xbe, 0x6f, 0x1c, 0x0a, 0x6f, 0x54,
		0x17, 0xee, 0x9d, 0x8e, 0xa2, 0x28, 0x0b, 0x83, 0xa1, 0x26, 0x0a, 0xbc, 0xe0, 0x3b, 0xf1, 0x82,
		0xca, 0x35, 0x51, 0x84, 0x7b, 0xa7, 0xaf, 0x18, 0x4a, 0x34, 0x18, 0xaa, 0xa0, 0xe4, 0x60, 0x9c,
		0xba, 0x8d, 0x34, 0x33, 0x63, 0xcd, 0xcc, 0x68, 0xb3, 0x31, 0xde, 0x72, 0x44, 0x95, 0x50, 0x05,
		0xa5, 0x0c, 0xa6, 0x9f, 0x85, 0x0b, 0xc8, 0xd0, 0x15, 0x64, 0xe5, 0x12, 0x32, 0x77, 0x0d, 0x99,
		0xbb, 0x88, 0x6c, 0x5d, 0x85, 0x1e, 0x97, 0xa1, 0xc9, 0x75, 0x64, 0x15, 0x63, 0xcc, 0x86, 0x2d,
		0x3d, 0x41, 0xf6, 0x0d, 0xe1, 0xde, 0x95, 0xbb, 0xfa, 0x49, 0x2c, 0x6b, 0xdf, 0xbd, 0x0b, 0xaf,
		0xfb, 0xee, 0x5d, 0x05, 0x8b, 0x9e, 0x78, 0x63, 0xa6, 0xff, 0x9c, 0x88, 0x06, 0x45, 0xc9, 0x13,
		0x1c, 0x12, 0x38, 0x24, 0x4a, 0x79, 0x48, 0xa0, 0xe4, 0xc9, 0x6a, 0xc9, 0x93, 0xc8, 0x61, 0x55,
		0xcb, 0xa9, 0xd7, 0xc3, 0xf1, 0x8d, 0xd0, 0xb9, 0xce, 0x8b, 0xce, 0x7d, 0x3e, 0x38, 0x9c, 0x3c,
		0x9c, 0x3c, 0x9c, 0x3c, 0x9c, 0xbc, 0x29, 0x4e, 0x7e, 0xee, 0xb8, 0x50, 0xde, 0xea, 0xad, 0x55,
		0x46, 0x79, 0x2b, 0x38, 0x78, 0x38, 0xf8, 0x12, 0x3b, 0x78, 0xed, 0xe5, 0xad, 0x74, 0x86, 0x02,
		0x32, 0x0c, 0x09, 0x64, 0x84, 0x1a, 0x33, 0x43, 0x8f, 0x59, 0x3a, 0x99, 0x1c, 0x9c, 0x4d, 0xd6,
		0x4e, 0x27, 0x37, 0xe7, 0x93, 0x9b, 0x13, 0xca, 0xc7, 0x19, 0xe9, 0x75, 0x4a, 0x9a, 0x9d, 0x53,
		0x76, 0x28, 0xf4, 0x19, 0x9c, 0x12, 0x30, 0x3e, 0xcc, 0xb2, 0x28, 0xc0, 0xde, 0x3b, 0xa8, 0x0b,
		0x93, 0x45, 0xc4, 0x20, 0x87, 0xc8, 0x01, 0xce, 0x02, 0x9c, 0x05, 0x38, 0x0b, 0x70, 0x16, 0xe0,
		0x2c, 0xd0, 0x78, 0x16, 0x64, 0x7b, 0x08, 0xc0, 0xfb, 0xc3, 0xfb, 0xc3, 0xfb, 0xc3, 0xfb, 0xeb,
		0xdf, 0xf1, 0x8c, 0x8b, 0xcd, 0x56, 0x86, 0xce, 0x7f, 0x33, 0x83, 0xa1, 0x2f, 0x09, 0x1f, 0x1a,
		0x59, 0x2b, 0xf6, 0x94, 0xf1, 0xec, 0x8b, 0xb4, 0xc6, 0xe5, 0xc5, 0x6a, 0x07, 0x56, 0xab, 0xb9,
		0xb5, 0xbb, 0xb5, 0xb7, 0xb9, 0xb3, 0xb5, 0x97, 0x71, 0xc1, 0xd4, 0xe3, 0x80, 0xd8, 0x82, 0x79,
		0xfc, 0x88, 0x0d, 0x99, 0xae, 0x17, 0xb4, 0xaf, 0xef, 0x5d, 0x3a, 0x24, 0x82, 0xdd, 0xd1, 0xa9,
		0xfb, 0x31, 0xb1, 0x4a, 0x44, 0xed, 0x94, 0x3c, 0x14, 0xb0, 0x15, 0x76, 0x2b, 0xbc, 0x15, 0xd4,
		0xdf, 0x2a, 0xe7, 0x77, 0x4e, 0x64, 0x37, 0xea, 0x7b, 0xa8, 0xc7, 0x7b, 0x37, 0xdd, 0xd6, 0x19,
		0x81, 0xed, 0xc9, 0xf0, 0x40, 0xdb, 0x40, 0xdb, 0x40, 0xdb, 0x40, 0xdb, 0x5a, 0x77, 0xfc, 0x0d,
		0xe3, 0x24, 0x78, 0xcc, 0x10, 0x6e, 0xef, 0xa3, 0x06, 0x52, 0x92, 0xbd, 0x6e, 0x60, 0xc2, 0x7f,
		0x99, 0x6b, 0x1f, 0x2d, 0xe7, 0xfb, 0x97, 0xab, 0xe4, 0x91, 0x86, 0x64, 0xa1, 0x6c, 0x52, 0x42,
		0x91, 0x0b, 0x5a, 0x56, 0x14, 0x81, 0x54, 0xa1, 0x62, 0x50, 0x02, 0x72, 0x41, 0x55, 0x1d, 0x40,
		0xb6, 0xb9, 0xa0, 0xa5, 0x4a, 0x02, 0x2d, 0x43, 0x29, 0xbb, 0x68, 0x42, 0x2c, 0x6f, 0xcc, 0x2c,
		0x7d, 0x97, 0xf4, 0x28, 0x6d, 0x87, 0xd2, 0x76, 0xe5, 0x43, 0x9f, 0x25, 0x2b, 0x69, 0xb7, 0x84,
		0x37, 0x51, 0xc9, 0xae, 0x04, 0x9b, 0xa4, 0x24, 0x65, 0x9c, 0xe6, 0x1b, 0xa3, 0xcc, 0xa5, 0x9c,
		0x98, 0xa3, 0x5e, 0xc1, 0x89, 0x39, 0x8a, 0x85, 0x9b, 0x1a, 0x28, 0x5f, 0x67, 0xa1, 0x70, 0x93,
		0x21, 0xce, 0x4f, 0x19, 0x8a, 0x6b, 0x84, 0xde, 0x3a, 0xa0, 0xf6, 0x3a, 0xb4, 0x66, 0x4e, 0x99,
		0x3d, 0x96, 0xda, 0x6b, 0x29, 0x2d, 0xaf, 0xa3, 0x50, 0x70, 0x0e, 0x7e, 0xeb, 0xfd, 0x15, 0x9c,
		0x23, 0x43, 0xaa, 0xaf, 0xe0, 0x5c, 0x34, 0x98, 0x9e, 0x82, 0x73, 0x0d, 0x14, 0x9c, 0x2b, 0x22,
		0x8e, 0x88, 0x82, 0x73, 0x65, 0x88, 0xfd, 0x68, 0x8b, 0x0b, 0xce, 0x77, 0xdc, 0x98, 0x71, 0xb1,
		0xb3, 0xa5, 0x63, 0xc3, 0x4d, 0xed, 0x53, 0x43, 0xc6, 0x97, 0xe6, 0x24, 0x3b, 0x8d, 0x51, 0xd4,
		0x2c, 0x92, 0xe8, 0xe6, 0x99, 0x52, 0xba, 0xd3, 0x28, 0xb2, 0x4e, 0x88, 0xca, 0x2e, 0x01, 0x4a,
		0x67, 0xc2, 0x4e, 0x16, 0xc9, 0x6e, 0xf3, 0x25, 0xcb, 0x26, 0x04, 0x59, 0x95, 0x55, 0x2c, 0x49,
		0xb8, 0xfe, 0xaa, 0xa8, 0x20, 0x9d, 0x02, 0xc4, 0xb6, 0x6f, 0x49, 0x18, 0xb2, 0xb0, 0xae, 0x10,
		0xaf, 0x59, 0x73, 0xf5, 0x0b, 0x63, 0x02, 0x8a, 0x01, 0x8a, 0x01, 0x8a, 0x95, 0x0c, 0x8a, 0x69,
		0x7b, 0x0c, 0xa7, 0xe9, 0xf1, 0x5b, 0xd1, 0x9e, 0xaf, 0xae, 0x25, 0xf7, 0xe5, 0x19, 0xf7, 0x57,
		0xd7, 0x71, 0x57, 0x0a, 0x1f, 0x08, 0x1f, 0x08, 0x1f, 0xa8, 0xdb, 0x07, 0xea, 0x35, 0xd2, 0x25,
		0x67, 0xb8, 0xa5, 0x61, 0xac, 0x0e, 0x1f, 0x8f, 0xf4, 0xed, 0xe1, 0xbe, 0xd7, 0x9b, 0xb8, 0x7c,
		0xad, 0x99, 0x3e, 0x8d, 0x68, 0x1e, 0x0f, 0x7f, 0x6b, 0xf7, 0xe2, 0xe6, 0xff, 0xe7, 0xa7, 0x17,
		0xe7, 0x67, 0x9d, 0xb3, 0xbe, 0xce, 0x84, 0x9f, 0x66, 0xf4, 0x0d, 0xdd, 0xb3, 0x7e, 0xe7, 0xf2,
		0xb8, 0x7d, 0xd8, 0xb9, 0x6e, 0x9f, 0x74, 0xdb, 0x3d, 0x9d, 0xe3, 0xb7, 0xa2, 0xf1, 0xe3, 0x76,
		0xbc, 0x99, 0x88, 0xbf, 0x39, 0xeb, 0xf6, 0xdf, 0x3e, 0x3a, 0xba, 0xec, 0xf4, 0xb4, 0x8a, 0xbe,
		0x15, 0x8d, 0x7d, 0xd6, 0xe9, 0xff, 0x71, 0x7e, 0xf9, 0x7b, 0x16, 0xe3, 0x6f, 0x2f, 0x4f, 0xfd,
		0x59, 0xfb, 0xb4, 0xa3, 0x73, 0xf8, 0x9d, 0x68, 0xf8, 0x93, 0xf3, 0xc3, 0xf6, 0x49, 0xad, 0x5c,
		0xf9, 0x70, 0x5e, 0x37, 0x76, 0x9c, 0x1a, 0xcd, 0x64, 0xdd, 0x42, 0xb4, 0x52, 0xeb, 0x35, 0xfb,
		0xd0, 0x56, 0x4c, 0x6f, 0x65, 0xf4, 0x78, 0x0b, 0x1c, 0x58, 0x1a, 0xc3, 0x0e, 0xd3, 0x0d, 0x70,
		0x60, 0xed, 0xe8, 0x0c, 0xc3, 0x2c, 0xd8, 0x9b, 0xd6, 0x97, 0xb9, 0x6b, 0xd6, 0x76, 0x60, 0x6d,
		0xe9, 0x4c, 0x44, 0x5c, 0x76, 0x43, 0x07, 0x56, 0xab, 0x1a, 0x49, 0x88, 0x85, 0x60, 0x7b, 0x9d,
		0xd1, 0x0c, 0x44, 0x31, 0x80, 0xe0, 0x81, 0xe0, 0x11, 0xc5, 0x28, 0xa7, 0xa7, 0x73, 0x49, 0x28,
		0xea, 0x63, 0xdf, 0xd1, 0x51, 0xe9, 0xf7, 0x29, 0x81, 0x68, 0x61, 0x50, 0xf8, 0x3e, 0xf8, 0x3e,
		0xf8, 0xbe, 0x92, 0xf9, 0x3e, 0xdd, 0x77, 0xe9, 0x5b, 0xb8, 0x4b, 0x4f, 0x39, 0xe8, 0xff, 0xcf,
		0xde, 0xdf, 0xf7, 0xa6, 0xad, 0x2d, 0xef, 0xc3, 0xf8, 0xff, 0x79, 0x15, 0xfc, 0xac, 0x23, 0xed,
		0x44, 0xdf, 0x3a, 0x04, 0x42, 0x20, 0x89, 0x74, 0xf4, 0x15, 0x4d, 0x69, 0x3f, 0xe8, 0x43, 0x13,
		0x94, 0xd0, 0x9e, 0x7d, 0x7e, 0x29, 0x1b, 0x39, 0xb0, 0x92, 0x58, 0x25, 0x36, 0xb7, 0x6d, 0xd2,
		0xe6, 0x6e, 0x78, 0xef, 0xb7, 0x30, 0x60, 0x1e, 0x0c, 0x89, 0x1f, 0x66, 0x96, 0x6d, 0xb8, 0xb6,
		0x8e, 0x4e, 0x0b, 0xc5, 0x6b, 0xd9, 0x5e, 0x33, 0xd7, 0xcc, 0x35, 0x6b, 0xd6, 0xcc, 0x6c, 0x63,
		0xf6, 0xac, 0x58, 0x3c, 0x3e, 0xae, 0x14, 0x8f, 0x8e, 0xcb, 0xa7, 0x27, 0xa5, 0x4a, 0xe5, 0xe4,
		0xf4, 0xe8, 0x34, 0xc3, 0xfb, 0xb2, 0xa4, 0x95, 0x66, 0x32, 0xb3, 0xb9, 0xee, 0x5f, 0xc3, 0x0a,
		0xf6, 0xd6, 0xc9, 0xf8, 0x63, 0x6e, 0x67, 0xf7, 0xd6, 0x9f, 0x34, 0x43, 0x7b, 0x70, 0x4f, 0x91,
		0xa9, 0x5a, 0xaf, 0x67, 0x09, 0xdb, 0xa6, 0x73, 0xd1, 0xd6, 0x8c, 0x0d, 0x4f, 0x0d, 0x9e, 0x1a,
		0x3c, 0x35, 0xb0, 0xd4, 0x4c, 0x20, 0x21, 0xf1, 0x9e, 0xfb, 0xa6, 0x09, 0x80, 0x89, 0xc0, 0x44,
		0x60, 0x22, 0x30, 0x31, 0x85, 0x98, 0x38, 0x30, 0x2d, 0x47, 0xed, 0x09, 0xbb, 0x6b, 0xe9, 0x03,
		0x92, 0xf3, 0xf1, 0xde, 0xfb, 0xf5, 0x8d, 0x0c, 0x14, 0x04, 0x0a, 0x02, 0x05, 0x81, 0x82, 0x69,
		0x45, 0x41, 0xca, 0xed, 0xda, 0xd9, 0x80, 0xc0, 0x3c, 0x60, 0x1e, 0x30, 0x0f, 0x98, 0x97, 0x5e,
		0xcc, 0x23, 0xa6, 0xc0, 0x4b, 0xa3, 0x02, 0xfd, 0x80, 0x7e, 0x40, 0xbf, 0x94, 0xa1, 0x1f, 0xa1,
		0x86, 0xe6, 0x76, 0x36, 0xe1, 0x9c, 0x31, 0x1d, 0xbc, 0xc0, 0x9b, 0x0e, 0x5e, 0x64, 0x4c, 0x07,
		0x3f, 0x66, 0x4e, 0x07, 0x2f, 0xf1, 0xa6, 0x83, 0xbb, 0xd9, 0xe6, 0xd5, 0x2f, 0xb5, 0xcb, 0x56,
		0xe7, 0xa2, 0x7e, 0x7d, 0xf1, 0xad, 0xde, 0xea, 0xd4, 0x3f, 0x21, 0xdf, 0x3c, 0x1a, 0x14, 0xaf,
		0xbe, 0x46, 0xda, 0x9c, 0x6d, 0x7f, 0xba, 0xf9, 0x11, 0x67, 0xba, 0x79, 0x29, 0x53, 0xe9, 0xe6,
		0x45, 0xd6, 0x74, 0xf3, 0x63, 0xce, 0x74, 0xf3, 0x02, 0xd2, 0xcd, 0x23, 0xbf, 0x4c, 0xfb, 0xc5,
		0x76, 0xc4, 0x13, 0x4f, 0x30, 0x77, 0xcd, 0xd8, 0x70, 0xee, 0xe1, 0xdc, 0xc3, 0xb9, 0xdf, 0xfe,
		0xd0, 0x06, 0xc1, 0x58, 0x0d, 0x61, 0x3c, 0xb8, 0x55, 0x18, 0x51, 0xe1, 0x28, 0xce, 0xb8, 0xa8,
		0x70, 0xc4, 0x9e, 0x84, 0x59, 0x3c, 0x41, 0x41, 0x23, 0x3a, 0x2f, 0x2a, 0xb7, 0xb3, 0x49, 0x97,
		0x53, 0x7f, 0x69, 0x5a, 0x69, 0x9b, 0xd6, 0x09, 0x73, 0x07, 0x85, 0xf7, 0x05, 0xef, 0x0b, 0xde,
		0x17, 0xbc, 0x2f, 0x78, 0x5f, 0xf0, 0xbe, 0xe0, 0x7d, 0xc1, 0xfb, 0x82, 0xf7, 0xb5, 0xb0, 0x28,
		0x8e, 0xd3, 0xa7, 0xf3, 0xba, 0xc6, 0x83, 0xc1, 0xdb, 0x82, 0xb7, 0x05, 0x6f, 0x2b, 0x65, 0xde,
		0xd6, 0x50, 0x37, 0x9c, 0x42, 0x99, 0xd0, 0xdb, 0x2a, 0xe3, 0xfc, 0x31, 0x7c, 0xad, 0x5d, 0xf1,
		0xb5, 0xca, 0x27, 0x27, 0xc7, 0xf0, 0xb6, 0xe0, 0x6d, 0xc5, 0xb9, 0x72, 0x9b, 0x3a, 0xec, 0xc5,
		0x6d, 0xfa, 0x4d, 0xd8, 0x5b, 0x2f, 0x46, 0x57, 0xef, 0x08, 0x4d, 0xaa, 0xf6, 0x18, 0x57, 0x7c,
		0xd6, 0xbd, 0x35, 0x74, 0x26, 0x7c, 0xbc, 0xde, 0xac, 0xf1, 0x7b, 0xb1, 0xb2, 0xf4, 0x5e, 0x25,
		0xe8, 0xb5, 0x4a, 0xd0, 0x5b, 0x35, 0xec, 0x12, 0xc6, 0x54, 0x56, 0x4a, 0x25, 0x55, 0x22, 0x35,
		0x54, 0x23, 0x52, 0xcb, 0x70, 0x0a, 0x19, 0x5c, 0xad, 0x82, 0xfd, 0x32, 0xe0, 0xaa, 0x45, 0x5d,
		0x2d, 0x82, 0x55, 0x0a, 0xb1, 0x38, 0xb1, 0x17, 0x25, 0xd8, 0x5a, 0xbc, 0xff, 0x66, 0x03, 0xbc,
		0xd5, 0x90, 0x1d, 0xf9, 0x22, 0x75, 0xe0, 0x0b, 0xd9, 0x71, 0x2f, 0x74, 0x87, 0xbd, 0x28, 0x84,
		0x3f, 0x06, 0xb1, 0x8f, 0x4a, 0xe0, 0x63, 0x13, 0xf5, 0xd8, 0x84, 0x3c, 0x1e, 0xf1, 0xa6, 0xd5,
		0xe4, 0xb0, 0x1d, 0xed, 0x94, 0xae, 0x39, 0x1c, 0x6b, 0x4a, 0xf8, 0xf2, 0x2e, 0xf3, 0x72, 0xe4,
		0xb3, 0x11, 0xc2, 0x5a, 0xf9, 0x48, 0x0d, 0x23, 0x23, 0xc7, 0xb3, 0xe2, 0xc4, 0xaf, 0x08, 0xe2,
		0x55, 0x71, 0xe3, 0x53, 0x64, 0xf1, 0x28, 0xb2, 0xf8, 0x13, 0x4d, 0xbc, 0x89, 0xd7, 0x93, 0x8c,
		0xda, 0xe0, 0x51, 0xb9, 0xb7, 0xb4, 0x27, 0xa1, 0xf6, 0x74, 0xbb, 0xab, 0x59, 0x04, 0xed, 0xa0,
		0x97, 0x87, 0x43, 0x67, 0x68, 0x74, 0x58, 0x4d, 0x2c, 0xb0, 0x9b, 0xd5, 0xce, 0xd0, 0x53, 0x33,
		0x13, 0xab, 0x76, 0x24, 0x41, 0xff, 0x45, 0xa2, 0x58, 0x2d, 0x41, 0x44, 0x9b, 0x32, 0x36, 0x4b,
		0x1d, 0x93, 0x65, 0x0b, 0xea, 0xd1, 0x07, 0xf3, 0x08, 0x62, 0xaf, 0xa4, 0x31, 0x57, 0x09, 0x7d,
		0x13, 0xb3, 0xb4, 0x3a, 0x09, 0x85, 0x36, 0xdb, 0x29, 0xee, 0xf6, 0x3e, 0x71, 0x26, 0x84, 0x65,
		0x99, 0x96, 0x1a, 0x03, 0x03, 0x56, 0x9c, 0x13, 0x6f, 0x3c, 0x78, 0x27, 0xf0, 0x4e, 0xe0, 0x9d,
		0xc0, 0x3b, 0x81, 0x77, 0x02, 0xef, 0x04, 0xde, 0x09, 0xbc, 0x93, 0x18, 0xde, 0x89, 0x39, 0x74,
		0x68, 0xdd, 0x93, 0xf1, 0x80, 0xf0, 0x4f, 0xe0, 0x9f, 0xc0, 0x3f, 0x81, 0x7f, 0x02, 0xff, 0x04,
		0xfe, 0x09, 0xfc, 0x13, 0xf8, 0x27, 0x91, 0xfc, 0x13, 0xba, 0xb8, 0x09, 0x22, 0x26, 0xf0, 0x48,
		0xe0, 0x91, 0xc0, 0x23, 0x81, 0x47, 0x02, 0x8f, 0x04, 0x1e, 0x09, 0x3c, 0x92, 0xa8, 0x1e, 0x09,
		0x61, 0xac, 0x04, 0x51, 0x12, 0xf8, 0x24, 0xf0, 0x49, 0xe0, 0x93, 0xc0, 0x27, 0x81, 0x4f, 0x02,
		0x9f, 0x04, 0x3e, 0x49, 0x04, 0x9f, 0xc4, 0x6d, 0xa3, 0xde, 0xed, 0x0b, 0xcd, 0x8a, 0xef, 0x94,
		0x2c, 0x8c, 0x05, 0xaf, 0x04, 0x5e, 0x09, 0xbc, 0x92, 0x90, 0x12, 0xd3, 0xd3, 0x1c, 0xa1, 0x6a,
		0x46, 0x4f, 0x75, 0xf4, 0x58, 0x35, 0xdc, 0x28, 0xea, 0x43, 0x29, 0x4d, 0xcd, 0x71, 0x84, 0x65,
		0xc4, 0x76, 0x4e, 0x94, 0x1f, 0x3f, 0x7a, 0x7f, 0x4a, 0x23, 0x75, 0xfc, 0x47, 0x71, 0xf6, 0x47,
		0x6b, 0xf2, 0xc7, 0xf9, 0xd2, 0x1f, 0xfb, 0x3f, 0x7e, 0x1c, 0xfe, 0xf8, 0xd1, 0xfb, 0x3f, 0x07,
		0xff, 0x77, 0xff, 0xff, 0xff, 0x7a, 0xfb, 0xe3, 0xc7, 0xff, 0xf9, 0xf1, 0x43, 0x6d, 0x2f, 0xfd,
		0xe2, 0x40, 0xd9, 0x4a, 0x0c, 0x76, 0xfa, 0xcf, 0x74, 0x27, 0x10, 0x16, 0x07, 0x03, 0x0a, 0x03,
		0x85, 0x81, 0xc2, 0xe0, 0x86, 0xe0, 0x86, 0xe0, 0x86, 0xe0, 0x86, 0xe0, 0x86, 0x11, 0xfc, 0x92,
		0xa1, 0xf1, 0xd3, 0x30, 0x7f, 0x19, 0x34, 0x7e, 0xc9, 0x6c, 0x30, 0xf8, 0x25, 0xf0, 0x4b, 0xe0,
		0x97, 0xc0, 0x2f, 0x81, 0x5f, 0x02, 0xbf, 0x04, 0x7e, 0xc9, 0x6e, 0xfb, 0x25, 0xdb, 0x59, 0x9d,
		0xca, 0xad, 0xef, 0x93, 0x8f, 0x58, 0x31, 0x25, 0x17, 0xa3, 0x08, 0x92, 0x5b, 0x1d, 0xae, 0x73,
		0x31, 0x9b, 0x98, 0xab, 0x2a, 0x55, 0x88, 0x72, 0x3f, 0xc2, 0xd0, 0xee, 0xfa, 0xa2, 0x17, 0xbd,
		0xee, 0xcc, 0x6c, 0x80, 0xb0, 0x25, 0x41, 0xc4, 0xbd, 0x36, 0xec, 0x3b, 0x91, 0x2c, 0x95, 0x32,
		0x76, 0x5a, 0xc2, 0xbd, 0xbc, 0x76, 0xb4, 0xaa, 0x38, 0x47, 0xa8, 0x8a, 0x23, 0xd5, 0x49, 0xdd,
		0xa9, 0xaa, 0x38, 0x91, 0x9d, 0x4f, 0x6f, 0xc5, 0xef, 0x4c, 0xb3, 0x2f, 0xb4, 0x28, 0x8c, 0xcd,
		0xdb, 0x84, 0x28, 0xa4, 0x00, 0x83, 0x22, 0x75, 0xda, 0xf1, 0x5e, 0x42, 0x84, 0x96, 0x3a, 0x50,
		0x6f, 0xa8, 0x77, 0x16, 0xd4, 0x5b, 0xb3, 0x85, 0xea, 0x79, 0x2d, 0xaa, 0x25, 0xee, 0xe3, 0x68,
		0x7a, 0x25, 0xc2, 0xb5, 0x4d, 0xcf, 0xb7, 0xea, 0xaa, 0xfa, 0xfd, 0xf9, 0x82, 0x33, 0xb5, 0xf2,
		0xc5, 0xf4, 0xb3, 0xab, 0x8b, 0xa8, 0xb5, 0xb9, 0xd1, 0xe7, 0x94, 0x50, 0x67, 0x33, 0x44, 0x01,
		0xe2, 0x00, 0x35, 0x36, 0xf7, 0x62, 0xbc, 0xeb, 0x59, 0x01, 0xe1, 0x00, 0x00, 0x1d, 0xae, 0x64,
		0x70, 0xf8, 0x12, 0xc1, 0x24, 0x25, 0x81, 0x23, 0x94, 0x00, 0x8e, 0x50, 0xf2, 0xf7, 0xbd, 0x97,
		0x1a, 0x52, 0x70, 0x23, 0x0b, 0xac, 0x12, 0xa8, 0xbc, 0x6a, 0x14, 0x11, 0x7d, 0x5b, 0x38, 0x37,
		0x8b, 0xdc, 0xfa, 0x7f, 0xd9, 0xf0, 0xbe, 0x82, 0xbe, 0xa7, 0x90, 0xef, 0xe7, 0x8d, 0xb7, 0x12,
		0xea, 0x6d, 0xac, 0x7f, 0x07, 0xfe, 0x27, 0x5c, 0xf3, 0x74, 0xef, 0x14, 0xb5, 0x0d, 0x54, 0xc4,
		0xf6, 0x9d, 0xaa, 0x9f, 0xef, 0x16, 0xa9, 0x0d, 0xe2, 0xd0, 0x84, 0x70, 0x5c, 0x82, 0x3a, 0x28,
		0xa1, 0x1d, 0x91, 0xd0, 0x0e, 0x47, 0x38, 0xc7, 0x22, 0x9c, 0x44, 0xbe, 0x57, 0x05, 0x53, 0xe9,
		0x3e, 0x6a, 0xb6, 0xad, 0xdb, 0xaa, 0xfe, 0x3e, 0x1d, 0x9f, 0xc7, 0x9d, 0xe7, 0xd7, 0xbc, 0x87,
		0xc6, 0x81, 0x7c, 0xde, 0xc0, 0x3e, 0x6e, 0x18, 0x9f, 0x36, 0x82, 0x0f, 0x1b, 0xd6, 0x67, 0x8d,
		0xec, 0xa3, 0x46, 0xf6, 0x49, 0xa3, 0xf9, 0xa0, 0xf1, 0x2c, 0x6a, 0x60, 0x9f, 0x32, 0x7c, 0x5b,
		0xc3, 0x79, 0x5a, 0x5a, 0x54, 0x78, 0xfe, 0x10, 0x44, 0xb2, 0x55, 0x27, 0xc8, 0x23, 0xac, 0x11,
		0xef, 0xc9, 0x85, 0x90, 0x71, 0xc8, 0x78, 0x4c, 0x21, 0x59, 0x12, 0xf6, 0x52, 0x80, 0xdf, 0xd6,
		0x8c, 0xe1, 0x53, 0xf0, 0x35, 0x6a, 0x99, 0x37, 0x13, 0x95, 0x0b, 0x45, 0x2b, 0x8e, 0xc6, 0xcf,
		0x71, 0xf1, 0x3f, 0xd5, 0x9b, 0x9b, 0xfa, 0x4d, 0xe7, 0xe2, 0xea, 0x6b, 0xf3, 0xea, 0xb2, 0x76,
		0xd9, 0x0a, 0x43, 0x17, 0x0a, 0xe3, 0x11, 0xea, 0x97, 0xad, 0xda, 0xf5, 0xe7, 0xea, 0x45, 0xad,
		0x53, 0x6d, 0xd4, 0xab, 0x37, 0x61, 0xae, 0x2f, 0x8e, 0xaf, 0x6f, 0x5e, 0x5d, 0xb7, 0xa2, 0x4d,
		0x7f, 0x3c, 0xbe, 0xfc, 0x6b, 0xf5, 0xa2, 0x53, 0xfd, 0xf4, 0xe9, 0xba, 0x76, 0x13, 0x6a, 0xea,
		0xd2, 0xf8, 0xda, 0xcb, 0x5a, 0xeb, 0x3f, 0x57, 0xd7, 0xff, 0x1b, 0xe5, 0xfa, 0x93, 0xe5, 0x47,
		0xbf, 0xac, 0x7e, 0xad, 0x85, 0xb9, 0xbc, 0x3c, 0xbe, 0xbc, 0x71, 0x75, 0x51, 0x6d, 0x28, 0xa4,
		0x14, 0xb3, 0x65, 0xd6, 0x8d, 0x70, 0x87, 0x09, 0xd7, 0x48, 0x40, 0xa8, 0x58, 0x93, 0x6f, 0xfd,
		0x43, 0xd5, 0x75, 0x5f, 0x7d, 0x85, 0xe7, 0xb9, 0x10, 0x1b, 0x7a, 0xd3, 0x17, 0x18, 0xaa, 0x11,
		0xdb, 0x92, 0xbc, 0x9c, 0xe7, 0x8e, 0x43, 0x5c, 0xb9, 0x2a, 0x2d, 0xe7, 0xb9, 0x52, 0x88, 0xab,
		0x57, 0xc4, 0xfc, 0x3c, 0x57, 0x94, 0xc3, 0x97, 0xa3, 0xd9, 0xce, 0xa0, 0xad, 0x01, 0xc2, 0xb6,
		0x02, 0x08, 0x58, 0xfa, 0x1f, 0xd6, 0x32, 0xcd, 0xd6, 0x32, 0x68, 0x69, 0x7d, 0x45, 0x18, 0x8e,
		0xa5, 0x0b, 0x5b, 0xd5, 0x1e, 0x44, 0x2f, 0xd4, 0x29, 0xe7, 0x85, 0x9d, 0xbe, 0x95, 0x11, 0xc2,
		0x35, 0x48, 0x39, 0x0a, 0xdb, 0x20, 0xe5, 0x08, 0x0d, 0x52, 0x48, 0x83, 0xe7, 0x69, 0x6a, 0x90,
		0x12, 0x3a, 0x38, 0x1e, 0x2b, 0xd1, 0x2a, 0x42, 0x62, 0x55, 0xc4, 0x44, 0xaa, 0x68, 0xfd, 0xce,
		0xa2, 0xef, 0xcc, 0xc4, 0x4c, 0x8c, 0x22, 0x4b, 0xb5, 0x89, 0x9f, 0x5a, 0x33, 0x8a, 0xd6, 0xe8,
		0x2d, 0xfe, 0xab, 0xa3, 0x4b, 0x64, 0x4a, 0xd3, 0xdb, 0x64, 0xda, 0x84, 0x69, 0x4b, 0x6c, 0xde,
		0x15, 0xad, 0xf9, 0x4b, 0xac, 0x66, 0x2f, 0xb0, 0x55, 0xb0, 0x55, 0xb0, 0x55, 0xb0, 0x55, 0xb0,
		0x55, 0xb0, 0x55, 0x11, 0x6c, 0x55, 0xe8, 0x66, 0x20, 0xf1, 0x9a, 0x7f, 0xc0, 0x5a, 0xc1, 0x5a,
		0xc1, 0x5a, 0xc1, 0x5a, 0xc1, 0x5a, 0xc1, 0x5a, 0x45, 0xb0, 0x56, 0xd1, 0xed, 0x14, 0x2c, 0x14,
		0x2c, 0x14, 0x2c, 0x14, 0x2c, 0x14, 0x2c, 0x14, 0x2c, 0x14, 0xa7, 0x85, 0x8a, 0xb4, 0x4d, 0x15,
		0xb6, 0xf8, 0x2e, 0x6c, 0x14, 0x6c, 0x14, 0x6c, 0x14, 0x6c, 0x14, 0x6c, 0x14, 0x6c, 0x54, 0x28,
		0x1b, 0x15, 0xa1, 0x38, 0x6b, 0xf4, 0x62, 0xac, 0xb0, 0x52, 0xb0, 0x52, 0x84, 0x56, 0x2a, 0x6a,
		0x31, 0xd3, 0x28, 0xc5, 0x4b, 0x23, 0x17, 0x2b, 0x4d, 0xa8, 0x38, 0xa9, 0x4c, 0x0c, 0x71, 0xfa,
		0xcf, 0xaa, 0xd6, 0xed, 0x8a, 0x81, 0x23, 0x22, 0x6c, 0x71, 0x2f, 0x5d, 0x0d, 0x1c, 0x01, 0x8e,
		0xc0, 0xdb, 0x85, 0xb7, 0x0b, 0x6f, 0x17, 0xde, 0x2e, 0x93, 0xa5, 0x8a, 0x9c, 0x8b, 0x15, 0xbe,
		0xec, 0x35, 0xec, 0x14, 0xec, 0x14, 0xec, 0x14, 0xec, 0x14, 0xec, 0x14, 0xec, 0x54, 0x68, 0x3b,
		0x15, 0xb6, 0x2c, 0x72, 0x8c, 0x32, 0xc8, 0xb0, 0x53, 0xb0, 0x53, 0xb0, 0x53, 0xb0, 0x53, 0xb0,
		0x53, 0xb0, 0x53, 0x01, 0x7f, 0x91, 0x44, 0x85, 0xa7, 0xd0, 0x15, 0x6f, 0x03, 0x54, 0x33, 0x0a,
		0x53, 0xcc, 0x36, 0xda, 0xd1, 0xe7, 0xa0, 0xc5, 0x69, 0x43, 0x16, 0xa3, 0x0d, 0x55, 0x7c, 0x36,
		0x40, 0xb1, 0xd9, 0x36, 0xaa, 0x92, 0xa0, 0x2a, 0x89, 0xef, 0x8d, 0x07, 0x2f, 0xce, 0x1a, 0xb0,
		0x18, 0x6b, 0x34, 0x1d, 0x7a, 0x14, 0xfd, 0xbe, 0xe9, 0x6e, 0xf3, 0x58, 0xc1, 0xf5, 0x68, 0xf1,
		0x22, 0x08, 0x37, 0x84, 0xdb, 0xf7, 0xc6, 0x87, 0xba, 0xe1, 0x04, 0x72, 0x52, 0x43, 0x38, 0xa7,
		0x21, 0x9d, 0xd2, 0x10, 0xde, 0x75, 0x14, 0x27, 0x34, 0xaa, 0xf3, 0x19, 0xdb, 0x4d, 0x8a, 0xee,
		0x1e, 0x85, 0xa9, 0xb9, 0x1c, 0xc5, 0xb9, 0x24, 0x74, 0x2a, 0x93, 0x7c, 0x4b, 0x44, 0x4e, 0x5e,
		0x9b, 0x01, 0xac, 0xed, 0xe1, 0x60, 0x60, 0x09, 0xdb, 0x56, 0xdd, 0x9d, 0xdd, 0xde, 0xb3, 0xb0,
		0x1c, 0xdd, 0x16, 0x53, 0x34, 0x08, 0x88, 0xdd, 0x6f, 0x8c, 0x01, 0x28, 0x07, 0x94, 0xfb, 0xde,
		0xb8, 0xde, 0x13, 0x86, 0xa3, 0x3b, 0x2f, 0xc1, 0xca, 0x4b, 0x7b, 0xbe, 0x4a, 0x90, 0x82, 0xb9,
		0xf5, 0xe9, 0xd0, 0x1f, 0x35, 0x5b, 0x84, 0x0f, 0xc6, 0x35, 0x1a, 0x9f, 0x9a, 0x9d, 0x56, 0xe3,
		0x7b, 0xd0, 0x65, 0x72, 0xd1, 0xc9, 0x0e, 0x15, 0xd4, 0x88, 0x58, 0x72, 0x7e, 0x56, 0xa6, 0xab,
		0xfe, 0x49, 0xe1, 0x00, 0xe7, 0x88, 0x77, 0xf5, 0xb5, 0x7a, 0x59, 0xfd, 0x52, 0xfb, 0x5a, 0xbb,
		0x6c, 0x79, 0x65, 0xb1, 0x52, 0x74, 0x77, 0x6e, 0xcd, 0xad, 0x4f, 0xb5, 0x9b, 0x8b, 0xeb, 0x7a,
		0xb3, 0x55, 0xbf, 0xba, 0x4c, 0xdd, 0xbd, 0xa5, 0x6b, 0x31, 0x6f, 0xfe, 0x7b, 0xd3, 0xaa, 0x7d,
		0xed, 0x5c, 0x54, 0x9b, 0xd5, 0x8f, 0xf5, 0x46, 0xbd, 0x55, 0xaf, 0xdd, 0xa4, 0xf0, 0xf6, 0x52,
		0xba, 0x9e, 0xd3, 0xbb, 0x73, 0xab, 0xd8, 0x11, 0xfb, 0x05, 0x6d, 0x66, 0xfc, 0x46, 0x21, 0xf4,
		0x98, 0x1e, 0xd4, 0x8b, 0xed, 0x88, 0x27, 0xb5, 0x27, 0xec, 0xae, 0xa5, 0x0f, 0x02, 0x05, 0xd1,
		0xe6, 0x9e, 0x93, 0xff, 0x5a, 0x78, 0x4c, 0xf0, 0x98, 0xfc, 0x72, 0x12, 0xbe, 0xa6, 0x72, 0x80,
		0xdf, 0x36, 0x84, 0xf1, 0xe0, 0x86, 0x70, 0x41, 0x7f, 0x53, 0x4e, 0x7f, 0x8b, 0x27, 0x60, 0xbb,
		0x84, 0x58, 0x1d, 0xa8, 0xfd, 0xd3, 0x2a, 0x48, 0x07, 0x69, 0x2a, 0x02, 0x74, 0x06, 0x3a, 0x03,
		0x9d, 0x81, 0xce, 0x40, 0xe7, 0x70, 0xff, 0x22, 0xa3, 0xa5, 0xce, 0x7b, 0xed, 0xb0, 0x82, 0xee,
		0x3f, 0x07, 0x6e, 0xa4, 0xb3, 0xf7, 0xc6, 0x13, 0xbe, 0xf7, 0x64, 0x41, 0x9e, 0x48, 0x59, 0xdb,
		0xa9, 0xe7, 0x9d, 0x67, 0x58, 0xbe, 0xfb, 0xf9, 0x3d, 0x2e, 0xdc, 0x9f, 0xf2, 0x24, 0x6c, 0x5b,
		0x7b, 0x10, 0xfe, 0xfa, 0xdf, 0x1e, 0xe2, 0x79, 0xbf, 0x58, 0x79, 0xaa, 0xf5, 0xf5, 0xbd, 0x37,
		0xda, 0xbb, 0xb7, 0xec, 0xdb, 0xa2, 0x3d, 0xdb, 0x30, 0x5d, 0x10, 0x1b, 0x16, 0xd8, 0x66, 0x05,
		0xb6, 0x51, 0xab, 0x36, 0xc9, 0xbb, 0xb9, 0x90, 0x12, 0xb0, 0xa9, 0x8e, 0xb6, 0xd2, 0x9d, 0xbd,
		0xad, 0x77, 0xda, 0x2d, 0x4d, 0x7f, 0x17, 0xb3, 0xdf, 0xd2, 0x11, 0x4d, 0xbf, 0xa5, 0x37, 0x96,
		0x28, 0xac, 0xbb, 0x21, 0xbf, 0xe7, 0xd2, 0xe6, 0x25, 0x8c, 0x06, 0x5b, 0xef, 0xf6, 0x5d, 0xb2,
		0xc5, 0xb3, 0xb0, 0x74, 0xe7, 0x25, 0x84, 0x13, 0x3a, 0xbb, 0x22, 0x1b, 0x1e, 0x68, 0x00, 0x71,
		0xc8, 0xae, 0x17, 0xfa, 0xbe, 0xb8, 0x24, 0xe6, 0x89, 0xbe, 0xd8, 0x7d, 0xf3, 0x41, 0x0d, 0x28,
		0x2c, 0xb9, 0xd4, 0xf6, 0xa5, 0xa9, 0x7d, 0xad, 0x5d, 0x7f, 0xa9, 0x5d, 0x5e, 0xfc, 0x37, 0x74,
		0x3f, 0x9a, 0x6a, 0xa3, 0x76, 0xdd, 0x0a, 0xdd, 0x85, 0xe6, 0xe2, 0xba, 0xde, 0xaa, 0x5f, 0x54,
		0x1b, 0xa1, 0xfb, 0xcf, 0xd4, 0xae, 0xaf, 0xaf, 0xae, 0x43, 0x77, 0x9e, 0xf9, 0x4f, 0xf5, 0xfa,
		0xb2, 0x7e, 0xf9, 0x25, 0x74, 0xc7, 0x99, 0xcb, 0xab, 0x56, 0xfd, 0x22, 0x7c, 0xa7, 0x99, 0xfa,
		0xe5, 0xe7, 0xab, 0xeb, 0xaf, 0xd5, 0x56, 0xfd, 0xea, 0x32, 0xdc, 0x23, 0x56, 0xc6, 0x57, 0x7f,
		0xaa, 0x7d, 0xfc, 0xf6, 0x25, 0xf1, 0x3e, 0x35, 0x93, 0x75, 0x0d, 0xd7, 0x5d, 0xc6, 0x5b, 0xd5,
		0x8d, 0x5d, 0x05, 0xd7, 0xa3, 0xb7, 0xfb, 0xc0, 0xe7, 0xb9, 0x10, 0xed, 0x6b, 0x17, 0x04, 0x36,
		0x5c, 0xfb, 0x9c, 0x89, 0xfc, 0x84, 0xeb, 0x44, 0xb3, 0xbc, 0x9c, 0xe1, 0xfa, 0xdf, 0x4c, 0x25,
		0x28, 0x5c, 0xa3, 0x9d, 0x99, 0xb8, 0x9e, 0xe7, 0x4a, 0x49, 0x77, 0xad, 0x91, 0xcc, 0x1e, 0x66,
		0x48, 0x9f, 0xf7, 0xfe, 0xf2, 0xa6, 0xd3, 0xf5, 0xa6, 0x0b, 0xfe, 0x75, 0x3a, 0x44, 0xc7, 0xfb,
		0xcb, 0xd4, 0x08, 0xc7, 0x68, 0xcc, 0xd9, 0x13, 0x77, 0xc3, 0x07, 0x75, 0xda, 0x26, 0xe5, 0x7d,
		0x8f, 0x71, 0xf9, 0xe7, 0x70, 0x1c, 0xb3, 0xe7, 0x38, 0x4e, 0x56, 0xd0, 0x16, 0xd6, 0xb3, 0xde,
		0x0d, 0x11, 0xc2, 0x5c, 0xbe, 0x2c, 0x1b, 0x4d, 0x9a, 0xe0, 0x42, 0x12, 0xb8, 0x90, 0x81, 0x9b,
		0x35, 0xbd, 0x43, 0x3a, 0xa3, 0x91, 0xd0, 0x88, 0xa2, 0x15, 0x5a, 0xc4, 0xa2, 0x88, 0x5a, 0x4c,
		0x91, 0x8b, 0x2a, 0x7a, 0xb1, 0x45, 0x30, 0xb6, 0x28, 0xc6, 0x17, 0xc9, 0x90, 0xb1, 0xc4, 0x80,
		0x6b, 0x17, 0x54, 0x54, 0xbd, 0x0b, 0x82, 0x9e, 0xd5, 0xd8, 0xb8, 0xe2, 0xc1, 0xce, 0x6e, 0xf8,
		0x6f, 0x34, 0xc4, 0x59, 0x0e, 0xdf, 0xc5, 0x6e, 0xb4, 0x56, 0x09, 0x75, 0x5d, 0x3b, 0xe4, 0xfd,
		0x85, 0x3b, 0x1f, 0x1a, 0x59, 0xd9, 0xe2, 0x28, 0x1d, 0x91, 0xf2, 0xc5, 0x55, 0x42, 0x32, 0x65,
		0x24, 0x53, 0x4a, 0x3a, 0xe5, 0x0c, 0xa7, 0xa4, 0x11, 0xf6, 0x4c, 0x72, 0x91, 0xce, 0x9d, 0xfa,
		0x56, 0x3e, 0xf8, 0xa1, 0x95, 0x8d, 0xd6, 0xa4, 0xc0, 0x74, 0x38, 0x2f, 0xcc, 0x06, 0x52, 0x50,
		0x97, 0xec, 0x8d, 0x00, 0x5f, 0x10, 0xe7, 0x0c, 0xca, 0x0e, 0x65, 0xcf, 0xb0, 0xb2, 0x87, 0xcb,
		0xfc, 0xde, 0xa8, 0xf0, 0x11, 0xce, 0x13, 0x47, 0xcb, 0x0c, 0xdf, 0xf8, 0x20, 0x6e, 0x8c, 0xa8,
		0x73, 0x53, 0xbb, 0xfe, 0x5e, 0xbf, 0xa8, 0x29, 0xa9, 0x39, 0x4e, 0x4c, 0xeb, 0x91, 0x85, 0x3c,
		0x16, 0x1c, 0x29, 0x9e, 0xb2, 0x14, 0x92, 0xc8, 0x2f, 0xf1, 0xd4, 0x7c, 0x28, 0x6e, 0x11, 0x32,
		0xf6, 0xf2, 0x69, 0x3c, 0x53, 0x6d, 0x32, 0xed, 0xe4, 0xc3, 0xcd, 0x64, 0xd6, 0x37, 0xa3, 0x32,
		0x11, 0x22, 0x5d, 0x41, 0x0e, 0x3e, 0x87, 0xb4, 0x1d, 0x11, 0x6d, 0x46, 0xda, 0x0b, 0x87, 0x80,
		0x7d, 0x25, 0xc8, 0xbe, 0xa2, 0x17, 0x10, 0xe9, 0x0b, 0xed, 0x3e, 0x1c, 0x9e, 0x7b, 0x38, 0x5e,
		0x09, 0x57, 0xd2, 0xd5, 0x85, 0x93, 0xc3, 0xc3, 0x29, 0x2e, 0xe4, 0x67, 0xd2, 0x2f, 0x53, 0x53,
		0xdd, 0x04, 0x90, 0xf0, 0x7a, 0xfa, 0x4e, 0xea, 0x09, 0x49, 0x8c, 0xa4, 0x08, 0x2d, 0x45, 0x8c,
		0x04, 0x31, 0x12, 0xd0, 0x26, 0xd0, 0x26, 0xc4, 0x48, 0x10, 0x23, 0x81, 0xb2, 0x43, 0xd9, 0x11,
		0x23, 0x41, 0x8c, 0x64, 0xcb, 0x63, 0x24, 0x61, 0xa8, 0x05, 0x59, 0x88, 0xe4, 0x8d, 0x3c, 0xf8,
		0x08, 0xbc, 0x2b, 0xd6, 0x06, 0xf7, 0xff, 0x8a, 0x97, 0xe0, 0x96, 0x01, 0x67, 0x9d, 0x03, 0xbf,
		0x57, 0xba, 0x92, 0x80, 0xa1, 0xe4, 0x39, 0x4e, 0x9d, 0xc0, 0x10, 0x12, 0xac, 0x64, 0x36, 0xff,
		0x2c, 0x48, 0x0a, 0x57, 0x8c, 0xb7, 0x14, 0x27, 0x19, 0xed, 0xed, 0xe0, 0x48, 0xa0, 0x60, 0x48,
		0xe0, 0xe4, 0xb3, 0x22, 0x92, 0xcf, 0xe4, 0x27, 0x9f, 0x4d, 0x27, 0x0c, 0x9e, 0x76, 0x36, 0xbb,
		0x80, 0x38, 0xe1, 0xac, 0x88, 0x84, 0x33, 0x46, 0x7f, 0x59, 0x52, 0xc2, 0x99, 0x36, 0x18, 0x04,
		0x3b, 0x87, 0xed, 0x5b, 0x2a, 0xef, 0x4a, 0x6c, 0x7b, 0x20, 0xa0, 0x9a, 0xd8, 0xb6, 0x47, 0xe0,
		0x43, 0xdf, 0x3e, 0x98, 0x3b, 0x25, 0x7d, 0x02, 0xf1, 0xdb, 0xb1, 0x34, 0x75, 0x68, 0xd8, 0x8e,
		0x76, 0xd7, 0x0f, 0xf9, 0x2c, 0x96, 0xb8, 0x17, 0x96, 0x30, 0xba, 0x52, 0xea, 0xb2, 0xcf, 0x5e,
		0x5c, 0xbd, 0xd6, 0xfa, 0x9c, 0xbb, 0xfe, 0x7c, 0x91, 0x3b, 0x29, 0x15, 0x4b, 0x1f, 0x72, 0x37,
		0xc2, 0x3d, 0x09, 0x9d, 0x2b, 0x1f, 0x16, 0x0f, 0x4f, 0x0e, 0x13, 0x8e, 0x75, 0xcc, 0x5f, 0x48,
		0x9a, 0xc2, 0x1d, 0x6f, 0xbf, 0xb1, 0x9d, 0xec, 0xb9, 0xf1, 0x64, 0x47, 0xc8, 0x55, 0x1e, 0x5f,
		0x04, 0x9b, 0x01, 0x9b, 0xb1, 0xbd, 0x36, 0x83, 0x4a, 0xb7, 0xf4, 0x5e, 0x24, 0xed, 0xd2, 0x7b,
		0xd0, 0x2f, 0xe8, 0x17, 0x7c, 0xb2, 0x6d, 0xf2, 0xc9, 0x2a, 0xf0, 0xc9, 0x42, 0xfa, 0x64, 0x95,
		0x1d, 0xf5, 0xc9, 0x06, 0x96, 0x6e, 0x06, 0x2a, 0x6a, 0xe1, 0x13, 0x3f, 0xef, 0x4a, 0x58, 0x0f,
		0x58, 0x8f, 0xc4, 0xac, 0xc7, 0x50, 0x37, 0x9c, 0xd3, 0x08, 0xc6, 0xe3, 0x04, 0x5d, 0xd0, 0x56,
		0xae, 0x47, 0x17, 0xb4, 0xf0, 0x35, 0xe1, 0xd2, 0xf8, 0xf2, 0x92, 0x35, 0x4a, 0x3b, 0xe8, 0x6c,
		0x15, 0xe0, 0x6b, 0x85, 0xf3, 0xb5, 0x0a, 0xbb, 0xea, 0x6a, 0x99, 0xdd, 0x28, 0x1c, 0x7d, 0x7a,
		0x1d, 0xdc, 0x2c, 0xb8, 0x59, 0x20, 0xe9, 0x5b, 0x64, 0x37, 0xca, 0x20, 0xe9, 0x21, 0x0d, 0x47,
		0x79, 0x1b, 0x49, 0x7a, 0xac, 0x9d, 0xfb, 0xda, 0x6f, 0x27, 0x58, 0x2b, 0xa3, 0xf0, 0x29, 0x0f,
		0x66, 0x57, 0x15, 0xbf, 0x9d, 0x73, 0x47, 0xf4, 0xc5, 0x93, 0x70, 0xac, 0x17, 0x55, 0x73, 0xcc,
		0x27, 0xbd, 0x1b, 0x2d, 0x07, 0xc2, 0xf5, 0x65, 0x23, 0x24, 0x41, 0xc4, 0xcd, 0x7c, 0x78, 0xaf,
		0xe7, 0x6a, 0x04, 0x3c, 0x89, 0x80, 0x23, 0x11, 0x00, 0x77, 0x49, 0x0b, 0x72, 0x6a, 0xae, 0xf5,
		0x28, 0x72, 0x37, 0x6e, 0xa1, 0xc8, 0x5c, 0xd3, 0x32, 0x1d, 0xb3, 0x6b, 0xf6, 0x25, 0x9b, 0xd0,
		0xa8, 0x68, 0x41, 0x6b, 0x45, 0x83, 0xbc, 0x97, 0xb4, 0xd5, 0xd5, 0x4e, 0x30, 0x6b, 0x73, 0xd2,
		0xd0, 0x39, 0x58, 0x4a, 0x57, 0x2e, 0x5c, 0x06, 0xe2, 0xa4, 0xaf, 0xf3, 0xf4, 0x23, 0x47, 0x5b,
		0x67, 0xd4, 0xdb, 0x8d, 0xae, 0xc0, 0xa8, 0xb7, 0xfb, 0x86, 0x94, 0xa0, 0xde, 0x2e, 0xea, 0xed,
		0x2e, 0x5e, 0x86, 0x7a, 0xbb, 0xa8, 0xb7, 0xbb, 0x04, 0x14, 0xa8, 0xb7, 0x4b, 0xe0, 0x75, 0xd0,
		0x9c, 0x73, 0x48, 0x45, 0xf7, 0x0e, 0xdf, 0x13, 0x86, 0xe9, 0xe2, 0xe1, 0x7b, 0xa6, 0x20, 0xdd,
		0x3c, 0x0c, 0xe1, 0xfc, 0x32, 0xad, 0x9f, 0xaa, 0x3e, 0x66, 0x26, 0x46, 0xf7, 0xad, 0xb6, 0x1e,
		0xfe, 0x9f, 0xca, 0xe9, 0xef, 0x61, 0x08, 0x67, 0x3c, 0x65, 0x2a, 0xdb, 0x7b, 0xcc, 0xee, 0x8d,
		0xaa, 0xbb, 0xc7, 0xea, 0x3b, 0x7e, 0xff, 0xc0, 0x8c, 0xef, 0x8a, 0x74, 0x14, 0x6e, 0xde, 0xbc,
		0x68, 0x61, 0x3d, 0x4d, 0xf9, 0x47, 0x67, 0x36, 0x2e, 0x6a, 0x34, 0xe0, 0x7b, 0xf7, 0xe4, 0x8c,
		0x76, 0xef, 0xd8, 0xc1, 0xb9, 0x87, 0xfb, 0xeb, 0x6c, 0x9c, 0x99, 0xd1, 0xee, 0x9d, 0xad, 0xa4,
		0x1c, 0xe3, 0xe7, 0x4a, 0xcb, 0x49, 0x19, 0xe1, 0x3c, 0x0a, 0xcb, 0x10, 0x4e, 0xf8, 0xed, 0x1e,
		0xef, 0xca, 0xed, 0x28, 0xcf, 0x1c, 0x4c, 0xd8, 0xb6, 0x6f, 0xaf, 0x27, 0x90, 0x30, 0xf2, 0x6c,
		0xf3, 0x84, 0x2e, 0x38, 0xf4, 0xa4, 0x75, 0xdd, 0xd3, 0xa9, 0x2f, 0xd1, 0xab, 0x7c, 0xcc, 0x87,
		0x88, 0x56, 0xe7, 0xa3, 0x90, 0xb1, 0x3a, 0x1f, 0xe1, 0xc4, 0x9a, 0x63, 0xf7, 0x26, 0x9d, 0x25,
		0x3e, 0x42, 0x89, 0x7d, 0xc4, 0x3d, 0x9a, 0xb0, 0x65, 0xad, 0x42, 0xaa, 0xc3, 0x92, 0x5a, 0x68,
		0xbd, 0x9e, 0x25, 0x6c, 0x3b, 0x7e, 0x61, 0x8d, 0xc5, 0xc1, 0x22, 0xbe, 0xea, 0x68, 0x25, 0x71,
		0x62, 0xab, 0x0c, 0x85, 0xea, 0xd0, 0xa9, 0x10, 0x95, 0x2a, 0x91, 0xab, 0x14, 0xb9, 0x6a, 0x91,
		0xaa, 0x58, 0x34, 0x55, 0x8b, 0xa8, 0x72, 0xe1, 0x83, 0xb3, 0xef, 0xca, 0x4b, 0xf8, 0x82, 0x95,
		0x1b, 0x2d, 0x4d, 0x25, 0xc6, 0x18, 0x0b, 0x05, 0x2d, 0xa7, 0x5b, 0x2b, 0x0b, 0x6a, 0xbd, 0x27,
		0x67, 0x41, 0xa2, 0xa4, 0x47, 0x86, 0xab, 0x81, 0xb9, 0x39, 0x74, 0x1e, 0xb2, 0x70, 0x0d, 0x81,
		0xa5, 0x0f, 0xcd, 0x8a, 0x00, 0x5f, 0x80, 0x2f, 0x22, 0xf8, 0x8a, 0xea, 0x39, 0x78, 0x03, 0x74,
		0xcd, 0xa1, 0xe1, 0x08, 0xcb, 0x8e, 0xbf, 0xcc, 0xf3, 0xd6, 0x3d, 0xd3, 0x11, 0x63, 0x2e, 0x4a,
		0x3c, 0x65, 0x24, 0x53, 0x4a, 0x4a, 0xe5, 0xa4, 0x57, 0x52, 0x6a, 0x65, 0x65, 0x53, 0x5a, 0x36,
		0xe5, 0x65, 0x51, 0xe2, 0x78, 0xca, 0x1c, 0x53, 0xa9, 0xc9, 0x94, 0xdb, 0x1b, 0xc8, 0xec, 0x3a,
		0xc2, 0xb1, 0xd5, 0x7b, 0xd3, 0xfa, 0xa5, 0x59, 0xbd, 0x08, 0x75, 0x7b, 0x03, 0x08, 0xf2, 0xca,
		0x0c, 0x44, 0x8b, 0x1a, 0x8f, 0x50, 0x90, 0x13, 0x0c, 0x4e, 0x50, 0xe0, 0x03, 0x07, 0x2e, 0x90,
		0x60, 0x07, 0x0b, 0x76, 0xd0, 0x60, 0x05, 0x0f, 0x1a, 0x10, 0x21, 0x02, 0x13, 0x3a, 0xc2, 0xf3,
		0x9e, 0xe1, 0x2f, 0x97, 0x28, 0x45, 0x76, 0x0a, 0x00, 0xa7, 0x84, 0x43, 0x46, 0x3b, 0x2c, 0xf7,
		0xde, 0x7f, 0xb4, 0x2a, 0x95, 0x8b, 0x7b, 0xd8, 0xee, 0xdd, 0xc1, 0x63, 0x1e, 0xc6, 0x7b, 0x77,
		0x7c, 0xaa, 0xf3, 0x66, 0xef, 0x8b, 0x5f, 0xdc, 0xf3, 0x68, 0x92, 0x34, 0x6f, 0x79, 0x69, 0xb5,
		0xdf, 0xfc, 0x4b, 0x1b, 0xad, 0x50, 0xe8, 0xae, 0xaf, 0xf6, 0x5e, 0x3a, 0x47, 0x6b, 0xef, 0xa5,
		0xe3, 0x7e, 0x08, 0xb4, 0x41, 0x19, 0x68, 0xdd, 0x9f, 0xcc, 0x0e, 0xa9, 0x7f, 0x0a, 0x78, 0xa4,
		0xf0, 0x48, 0xe1, 0x91, 0xc2, 0x23, 0x85, 0x47, 0x0a, 0x8f, 0x14, 0x1e, 0x29, 0x3c, 0x52, 0x78,
		0xa4, 0xdb, 0xe2, 0x91, 0x26, 0x1a, 0xa4, 0x8d, 0xd8, 0xa9, 0x63, 0xe3, 0x78, 0x9b, 0x73, 0xbc,
		0x57, 0x13, 0x76, 0xf3, 0xbe, 0xbc, 0x6a, 0xdf, 0x37, 0x79, 0xed, 0xde, 0xb1, 0xf3, 0xb3, 0x7c,
		0xbd, 0xbc, 0x97, 0x02, 0x35, 0xdd, 0x1a, 0x26, 0xda, 0xaa, 0xc9, 0xbd, 0x95, 0x5c, 0x7e, 0x39,
		0xb9, 0xa5, 0xfa, 0xf4, 0x8e, 0x3a, 0x2b, 0x9f, 0xed, 0xd5, 0x2f, 0x3a, 0xd5, 0x7b, 0xc7, 0xee,
		0xd4, 0xa6, 0xb7, 0xdc, 0xf9, 0xaa, 0x75, 0x6b, 0xe3, 0x3b, 0x9e, 0x1e, 0xe6, 0xbb, 0x98, 0xdd,
		0xf1, 0x5e, 0x32, 0x12, 0x13, 0x43, 0x5a, 0x14, 0xf7, 0xcd, 0xab, 0x4f, 0xc2, 0xd1, 0x7a, 0x9a,
		0xa3, 0xd1, 0x6d, 0xb8, 0xad, 0x8c, 0x4b, 0xb3, 0xed, 0x76, 0x44, 0xb5, 0xed, 0x76, 0x84, 0x6d,
		0xb7, 0x14, 0xf0, 0x16, 0x6c, 0xbb, 0x25, 0xc0, 0x47, 0xe6, 0x8d, 0xf6, 0x74, 0x43, 0x0b, 0x9d,
		0x77, 0xfa, 0x96, 0x76, 0x9e, 0x11, 0x0c, 0xd5, 0x10, 0xc6, 0x83, 0x6b, 0x64, 0x68, 0x58, 0x07,
		0x21, 0x7d, 0xe3, 0x60, 0x19, 0x5c, 0xec, 0x82, 0xdd, 0xcf, 0xe4, 0xf3, 0x2f, 0x09, 0x59, 0x04,
		0x0b, 0x7b, 0xf0, 0x96, 0xec, 0x14, 0x4b, 0x46, 0x1b, 0xb8, 0xd9, 0x4b, 0xd6, 0xf5, 0x4f, 0xc6,
		0xfd, 0xa2, 0xc8, 0x95, 0xf6, 0x21, 0x7b, 0xfc, 0x9c, 0x69, 0x38, 0x5e, 0x70, 0xbc, 0xe0, 0x78,
		0x31, 0x39, 0x5e, 0x74, 0xea, 0x99, 0x5b, 0xaa, 0x18, 0x47, 0x30, 0x56, 0x53, 0x73, 0x1c, 0x61,
		0x19, 0x64, 0xfe, 0x97, 0x72, 0x7b, 0xa4, 0x9e, 0x69, 0xea, 0x7d, 0x55, 0xfd, 0xdc, 0xfe, 0x53,
		0x1c, 0xed, 0x9f, 0x2f, 0x7f, 0x3e, 0xf8, 0x73, 0x32, 0x8a, 0x2f, 0x1f, 0x6d, 0x8a, 0x07, 0xbf,
		0xba, 0xa9, 0xff, 0x4d, 0xfe, 0xf4, 0xff, 0xbc, 0xff, 0xf8, 0xff, 0x52, 0xb2, 0x6b, 0xf7, 0xa4,
		0x26, 0x15, 0x13, 0x85, 0xb4, 0x64, 0x86, 0xb2, 0xe2, 0xe4, 0xb9, 0x4b, 0x89, 0x5c, 0x49, 0x3b,
		0x7a, 0xc1, 0x7a, 0x50, 0x6d, 0xda, 0x16, 0x37, 0x3a, 0xac, 0x06, 0x2f, 0x07, 0x48, 0xc3, 0x2f,
		0xe9, 0xca, 0x05, 0xbe, 0x63, 0xd8, 0x43, 0x94, 0x0f, 0x7c, 0xd3, 0x92, 0x73, 0x1f, 0x4d, 0x0c,
		0x89, 0xe0, 0xe1, 0x5a, 0x1b, 0xaf, 0x63, 0xf2, 0xe1, 0x5a, 0x1d, 0xaf, 0x23, 0x96, 0xb1, 0x5b,
		0x1f, 0xfb, 0x06, 0x0d, 0xdf, 0x0a, 0x79, 0xf3, 0x10, 0x81, 0x5b, 0x23, 0xc7, 0xd5, 0xbd, 0x98,
		0xa8, 0x2c, 0x07, 0x8d, 0x95, 0x48, 0x27, 0xbf, 0x58, 0xf1, 0x57, 0xd9, 0xd1, 0x86, 0xef, 0xb1,
		0x57, 0x95, 0xa2, 0xfd, 0x7b, 0xbc, 0x35, 0x54, 0x24, 0xd6, 0x3e, 0xd7, 0x07, 0xcf, 0x25, 0x75,
		0x68, 0xe8, 0x5d, 0xcd, 0x8e, 0x50, 0x12, 0x63, 0xe9, 0x6a, 0x94, 0xc5, 0x90, 0x48, 0xbc, 0x77,
		0xba, 0x2c, 0x86, 0x2b, 0x76, 0x31, 0xeb, 0x62, 0x2c, 0x8c, 0x81, 0xc2, 0x18, 0x7c, 0x11, 0x27,
		0x14, 0xc6, 0x90, 0x59, 0x18, 0x63, 0x10, 0x2f, 0x78, 0xb9, 0xd0, 0xd9, 0x22, 0xce, 0x4a, 0xa1,
		0x1c, 0x06, 0x43, 0xc8, 0x16, 0xe7, 0xc9, 0x19, 0x43, 0x3f, 0xdb, 0x5f, 0x0e, 0x63, 0x2a, 0x32,
		0xa8, 0x84, 0xc1, 0x60, 0xda, 0xfd, 0xc8, 0x85, 0x4a, 0x18, 0x40, 0x2e, 0x39, 0xc8, 0x85, 0x4a,
		0x18, 0xdc, 0x4a, 0x49, 0xa9, 0x9c, 0xf4, 0x4a, 0x4a, 0xad, 0xac, 0x6c, 0x4a, 0xcb, 0xa6, 0xbc,
		0x2c, 0x4a, 0x1c, 0x4f, 0x99, 0x63, 0x2a, 0x35, 0x99, 0x72, 0x7b, 0x03, 0xa1, 0x12, 0x06, 0x11,
		0xb7, 0xe0, 0x04, 0x05, 0x3e, 0x70, 0xe0, 0x02, 0x09, 0x76, 0xb0, 0x60, 0x07, 0x0d, 0x56, 0xf0,
		0xa0, 0x01, 0x11, 0x22, 0x30, 0xa1, 0xe3, 0x3a, 0xef, 0x19, 0x7e, 0x9c, 0x3b, 0xa4, 0xba, 0x51,
		0x9c, 0x3b, 0x0c, 0x24, 0x7e, 0x38, 0x77, 0xb8, 0x61, 0x69, 0x71, 0xee, 0x30, 0x31, 0xb4, 0xa6,
		0x1f, 0x0d, 0x95, 0x30, 0x42, 0x19, 0x23, 0x54, 0xc2, 0x80, 0x47, 0x0a, 0x8f, 0x14, 0x1e, 0x29,
		0x3c, 0x52, 0x78, 0xa4, 0xf0, 0x48, 0xe1, 0x91, 0xc2, 0x23, 0xdd, 0x5e, 0x8f, 0x14, 0x95, 0x30,
		0xde, 0x4e, 0x6d, 0x5c, 0x4c, 0xd3, 0xcb, 0xcf, 0x13, 0x9f, 0x52, 0x5f, 0x0e, 0xa3, 0x3e, 0x78,
		0x2e, 0x7d, 0x9b, 0xdc, 0xb6, 0xfb, 0xf7, 0x6d, 0x29, 0x89, 0xd1, 0x13, 0x5d, 0x6d, 0x60, 0x0f,
		0xfb, 0x9a, 0x23, 0xd4, 0x47, 0xa1, 0xf5, 0x84, 0x45, 0xb7, 0xfb, 0xb6, 0x66, 0x6c, 0x9c, 0xd0,
		0x94, 0x47, 0x6c, 0xb0, 0x0f, 0x87, 0x13, 0x9a, 0x01, 0xe4, 0x4d, 0x18, 0x33, 0x2d, 0xd5, 0x4d,
		0x63, 0xaa, 0xa7, 0xaa, 0x33, 0x9e, 0x86, 0xf0, 0xbc, 0x66, 0x89, 0x60, 0xac, 0x50, 0x4d, 0xd3,
		0xdf, 0x7f, 0x91, 0x51, 0x9a, 0xaa, 0xbf, 0x3b, 0xaa, 0xdb, 0x74, 0xfd, 0xcb, 0x75, 0x8d, 0x92,
		0xe4, 0xb9, 0xed, 0xd8, 0xeb, 0xcd, 0xef, 0xa4, 0xcc, 0xb1, 0x38, 0x1d, 0xb4, 0x4c, 0x39, 0xa8,
		0xdb, 0xc9, 0xfd, 0x6b, 0xb3, 0x71, 0x43, 0x39, 0xa8, 0xdb, 0xe8, 0xfd, 0xfb, 0xdf, 0x8d, 0xea,
		0xa5, 0x92, 0xae, 0x50, 0x41, 0xe8, 0xde, 0xeb, 0xef, 0x0e, 0x39, 0x16, 0x1c, 0x52, 0x72, 0x30,
		0x11, 0x9b, 0xd8, 0x89, 0x2b, 0xab, 0x43, 0x96, 0xe3, 0xa7, 0xb0, 0x2c, 0xf3, 0xbd, 0xb1, 0xc8,
		0x84, 0xea, 0xdd, 0xfe, 0x3e, 0xcb, 0x73, 0x05, 0x26, 0x68, 0xa3, 0xf5, 0xd4, 0x13, 0x03, 0x94,
		0x4b, 0x83, 0x4f, 0x08, 0x9f, 0x10, 0x3e, 0xa1, 0x24, 0x9f, 0x10, 0xe5, 0xd2, 0xc2, 0xd9, 0x2f,
		0x94, 0x4b, 0x93, 0x11, 0x84, 0x44, 0xb9, 0x34, 0x94, 0x4b, 0x8b, 0xf8, 0x5f, 0x16, 0xcb, 0xa5,
		0x99, 0x96, 0xfe, 0xa0, 0x1b, 0xea, 0xc0, 0x32, 0x1d, 0xb3, 0x6b, 0xf6, 0xe9, 0xfc, 0xaf, 0xd5,
		0x81, 0xe1, 0x80, 0xc1, 0x01, 0x83, 0x03, 0x96, 0x2a, 0x07, 0x4c, 0xef, 0x09, 0xc3, 0xd1, 0x9d,
		0x97, 0x78, 0xe7, 0xf7, 0x7c, 0x61, 0x38, 0x82, 0x0d, 0x4e, 0xa5, 0x3e, 0xbd, 0xb5, 0x8f, 0x9a,
		0x2d, 0xe8, 0x73, 0xa5, 0xea, 0x97, 0x37, 0xad, 0x6a, 0xa3, 0xd1, 0x69, 0x5e, 0x5f, 0xb5, 0xae,
		0x2e, 0xae, 0x1a, 0x9d, 0xd6, 0x7f, 0x9b, 0x54, 0xd1, 0xb4, 0x89, 0x7d, 0xb6, 0x49, 0x93, 0x1b,
		0x88, 0x3d, 0x88, 0xd9, 0x6b, 0xf8, 0xf8, 0xa5, 0xa9, 0xa4, 0xd1, 0x6f, 0x62, 0x7a, 0xdc, 0x4f,
		0xf5, 0xeb, 0xda, 0x45, 0xab, 0xf1, 0xdf, 0xce, 0xc5, 0xd5, 0xe5, 0x65, 0xed, 0xa2, 0x55, 0xfb,
		0xb4, 0x4b, 0x4f, 0xff, 0xe5, 0xba, 0xfe, 0xb1, 0xbe, 0x4b, 0x0f, 0x5c, 0xff, 0xf2, 0x75, 0xa7,
		0xc4, 0xbb, 0x7e, 0x53, 0xbf, 0xd9, 0xa5, 0xe7, 0x6d, 0x5c, 0x5d, 0x54, 0x1b, 0x3b, 0xf7, 0xc0,
		0x9d, 0xea, 0x97, 0x2f, 0xd7, 0xb5, 0x2f, 0xd5, 0x56, 0x6d, 0x97, 0x1e, 0xfd, 0xea, 0xa6, 0xf9,
		0x79, 0xd7, 0x9e, 0xf7, 0x78, 0x97, 0x1e, 0xb8, 0x79, 0x51, 0xdb, 0x29, 0xb0, 0x6e, 0xd6, 0xbf,
		0xee, 0xd2, 0xe3, 0xde, 0xb4, 0xaa, 0xad, 0xfa, 0x45, 0xda, 0xf2, 0xb9, 0xdb, 0x3b, 0xb9, 0xe1,
		0x36, 0xa0, 0x89, 0x5c, 0xd0, 0xd4, 0x4e, 0x42, 0x7c, 0x07, 0xf1, 0x1d, 0xc4, 0x77, 0xb8, 0xe2,
		0x3b, 0x83, 0xe7, 0x92, 0x4a, 0xb6, 0x9e, 0xe9, 0x2e, 0x8b, 0xbf, 0x7f, 0x7b, 0xa4, 0x9e, 0xb5,
		0x5f, 0x6f, 0x0b, 0xea, 0x59, 0x7b, 0xf2, 0xd7, 0x82, 0xfb, 0xc7, 0x9f, 0xe2, 0xe8, 0xb5, 0x78,
		0x7b, 0xa4, 0x96, 0xa6, 0xdf, 0x16, 0x4f, 0x6e, 0x8f, 0xd4, 0x93, 0xf6, 0xc1, 0xfe, 0x8f, 0x1f,
		0x87, 0x61, 0xaf, 0x39, 0xf8, 0x73, 0x3c, 0xca, 0x7b, 0x17, 0x15, 0xa7, 0xff, 0x7a, 0x7c, 0x7b,
		0xa4, 0x16, 0xdb, 0x07, 0x5b, 0x5d, 0x75, 0x7f, 0x3f, 0xf1, 0xd7, 0x7b, 0x80, 0xb2, 0xfe, 0x41,
		0x91, 0x31, 0xbd, 0x65, 0xfd, 0xdf, 0xcc, 0xcb, 0x4f, 0x4f, 0x6d, 0xff, 0x37, 0xd2, 0xf0, 0xb7,
		0xaa, 0xbe, 0x7f, 0xb4, 0x42, 0xbc, 0x28, 0xed, 0xff, 0xb6, 0x37, 0x82, 0xd2, 0xfe, 0x2b, 0x23,
		0xa0, 0xb4, 0x3f, 0x0d, 0x32, 0x4b, 0x44, 0xe4, 0xe4, 0xeb, 0xfb, 0xaf, 0xc5, 0x60, 0xd4, 0xf8,
		0x8f, 0xb1, 0xbc, 0xc9, 0xd5, 0xf9, 0x5f, 0x58, 0x4b, 0xc9, 0xa5, 0xfe, 0xcb, 0xb1, 0x4a, 0xfd,
		0x97, 0x51, 0xea, 0x1f, 0xa5, 0xfe, 0xe3, 0x61, 0x41, 0x94, 0x52, 0xff, 0x65, 0x82, 0x52, 0xff,
		0x65, 0x94, 0xfa, 0x67, 0x8f, 0xa2, 0xa1, 0xd4, 0x3f, 0x4a, 0xfd, 0x4b, 0x0e, 0x4f, 0xa3, 0x60,
		0x76, 0x32, 0x61, 0x67, 0x94, 0xfa, 0x47, 0xa9, 0xff, 0xe8, 0xeb, 0x80, 0x52, 0xff, 0x40, 0x2e,
		0x20, 0x57, 0xe8, 0x3b, 0x47, 0xa9, 0x7f, 0x6e, 0xa5, 0xa4, 0x54, 0x4e, 0x7a, 0x25, 0xa5, 0x56,
		0x56, 0x36, 0xa5, 0x65, 0x53, 0x5e, 0x16, 0x25, 0x8e, 0xa7, 0xcc, 0x31, 0x95, 0x9a, 0x4c, 0xb9,
		0xbd, 0x81, 0x50, 0xea, 0x9f, 0x88, 0x5b, 0x70, 0x82, 0x02, 0x1f, 0x38, 0x70, 0x81, 0x04, 0x3b,
		0x58, 0xb0, 0x83, 0x06, 0x2b, 0x78, 0xd0, 0x80, 0x08, 0x11, 0x98, 0xd0, 0x71, 0x9d, 0xf7, 0x0c,
		0x3f, 0x0a, 0xab, 0x52, 0xdd, 0x28, 0x0a, 0xab, 0x06, 0x12, 0x3f, 0x14, 0x56, 0xdd, 0xb0, 0xb4,
		0x28, 0xac, 0x9a, 0x18, 0x5a, 0xd3, 0x8f, 0x86, 0x52, 0xff, 0xa1, 0x8c, 0x11, 0x4a, 0xfd, 0xc3,
		0x23, 0x85, 0x47, 0x0a, 0x8f, 0x14, 0x1e, 0x29, 0x3c, 0x52, 0x78, 0xa4, 0xf0, 0x48, 0xe1, 0x91,
		0x6e, 0xaf, 0x47, 0x8a, 0x52, 0xff, 0xef, 0x66, 0x38, 0x96, 0x17, 0x13, 0x58, 0xcb, 0xd9, 0x29,
		0xf5, 0x5f, 0x5e, 0xc8, 0x6f, 0x2d, 0xa3, 0xd4, 0xff, 0xfb, 0x2e, 0x0f, 0x4a, 0xfd, 0x27, 0x4a,
		0x6c, 0xb0, 0x0f, 0x87, 0x53, 0xa7, 0x01, 0xe4, 0x0d, 0xa5, 0xfe, 0x51, 0xea, 0x9f, 0x68, 0x50,
		0x94, 0xfa, 0x8f, 0x37, 0x24, 0x4a, 0xfd, 0xd3, 0xb1, 0x3c, 0x94, 0xfa, 0x8f, 0xed, 0x1b, 0xa2,
		0xd4, 0x3f, 0x7c, 0x42, 0xf8, 0x84, 0xbb, 0xe8, 0x13, 0xa2, 0xd4, 0x7f, 0x38, 0xfb, 0x85, 0x52,
		0xff, 0x32, 0x82, 0x90, 0x28, 0xf5, 0x8f, 0x52, 0xff, 0x11, 0xff, 0x43, 0xa9, 0x7f, 0x94, 0xfa,
		0x87, 0x03, 0x06, 0x07, 0x2c, 0x2b, 0x0e, 0x18, 0x4a, 0xfd, 0xa3, 0xd4, 0x3f, 0x4a, 0xfd, 0xef,
		0xc8, 0xd3, 0xa3, 0xd4, 0xff, 0xb6, 0x3f, 0x2f, 0x4a, 0xfd, 0xef, 0xc0, 0x03, 0xa3, 0xd4, 0xff,
		0xae, 0x3c, 0x2f, 0x4a, 0xfd, 0x6f, 0xf3, 0xf3, 0xa2, 0xd4, 0x7f, 0xf2, 0x11, 0x1f, 0x94, 0xfa,
		0xa7, 0x58, 0x5b, 0x94, 0xfa, 0x47, 0x7c, 0x07, 0xf1, 0x9d, 0x94, 0x96, 0xfa, 0x2f, 0xef, 0x4c,
		0xa9, 0x7f, 0xb7, 0x46, 0xbc, 0xa6, 0xde, 0x57, 0xd5, 0xcf, 0xed, 0x3f, 0x85, 0x0f, 0xa5, 0xd1,
		0xf9, 0xc1, 0x9f, 0xca, 0x68, 0xf5, 0xcb, 0xd7, 0x75, 0x3f, 0x2b, 0x7c, 0xa8, 0x8c, 0xce, 0x37,
		0xfc, 0x4b, 0x79, 0x74, 0x1e, 0x70, 0x8c, 0x93, 0xd1, 0xbe, 0xef, 0xa7, 0xe3, 0xef, 0x8b, 0x9b,
		0x2e, 0x28, 0x6d, 0xb8, 0xe0, 0x78, 0xd3, 0x05, 0xc7, 0x1b, 0x2e, 0xd8, 0x78, 0x4b, 0xc5, 0x0d,
		0x17, 0x9c, 0x8c, 0x5e, 0x7d, 0xbf, 0xdf, 0x5f, 0xff, 0xd3, 0xf2, 0xe8, 0xe0, 0x75, 0xd3, 0xbf,
		0x55, 0x46, 0xaf, 0xe7, 0x07, 0x07, 0xf9, 0xfd, 0x42, 0xf1, 0xf6, 0x48, 0x3d, 0x9d, 0x54, 0xf2,
		0x2f, 0xb4, 0x7d, 0x05, 0xfe, 0xdd, 0xff, 0xdf, 0x85, 0x56, 0x08, 0x90, 0xbe, 0xd4, 0x4a, 0x1f,
		0x1a, 0x45, 0x04, 0xb5, 0xab, 0xa9, 0x6e, 0x14, 0xb1, 0xf9, 0x54, 0x47, 0xaa, 0x1a, 0x45, 0x6c,
		0x3a, 0xc4, 0x81, 0x46, 0x11, 0x68, 0x14, 0xf1, 0x8e, 0x2f, 0x8b, 0x46, 0x11, 0x2b, 0x23, 0xa0,
		0x51, 0x04, 0x0d, 0x32, 0x4b, 0x44, 0xe4, 0x54, 0x34, 0x8a, 0xf0, 0x63, 0x30, 0x1a, 0x45, 0xc4,
		0x58, 0xde, 0x44, 0x1b, 0x45, 0x94, 0x13, 0x68, 0x14, 0xf1, 0x34, 0xe8, 0xdb, 0xe1, 0x1b, 0x44,
		0xb8, 0x57, 0xa1, 0x31, 0x84, 0xc4, 0xd0, 0xd3, 0x4e, 0x37, 0x86, 0xe8, 0x6b, 0x77, 0xa2, 0x1f,
		0xb7, 0x33, 0xc4, 0xe2, 0x20, 0x68, 0x0d, 0xc1, 0x17, 0x75, 0x45, 0x6b, 0x08, 0x99, 0xad, 0x21,
		0x5c, 0xa9, 0x8e, 0x5f, 0x5e, 0x7d, 0x32, 0x0c, 0x1a, 0x43, 0xa0, 0xbc, 0x7a, 0x42, 0x9b, 0x13,
		0x68, 0x0c, 0x41, 0xdb, 0x18, 0x62, 0xa2, 0xd0, 0xe8, 0x0b, 0xc1, 0x60, 0xd7, 0xfd, 0xc0, 0x85,
		0xbe, 0x10, 0x00, 0x2e, 0x39, 0xc0, 0x85, 0xbe, 0x10, 0xdc, 0x4a, 0x49, 0xa9, 0x9c, 0xf4, 0x4a,
		0x4a, 0xad, 0xac, 0x6c, 0x4a, 0xcb, 0xa6, 0xbc, 0x2c, 0x4a, 0x1c, 0x4f, 0x99, 0x63, 0x2a, 0x35,
		0x99, 0x72, 0x7b, 0x03, 0xa1, 0x2f, 0x04, 0x11, 0xb5, 0xe0, 0x04, 0x05, 0x3e, 0x70, 0xe0, 0x02,
		0x09, 0x76, 0xb0, 0x60, 0x07, 0x0d, 0x56, 0xf0, 0xa0, 0x01, 0x11, 0x22, 0x30, 0xa1, 0xa3, 0x3a,
		0xef, 0x19, 0x7e, 0x54, 0xe1, 0xa5, 0xba, 0x51, 0x54, 0xe1, 0x0d, 0x24, 0x7e, 0xa8, 0xc2, 0xbb,
		0x61, 0x69, 0x51, 0x85, 0x37, 0x31, 0xb4, 0xa6, 0x1f, 0x0d, 0x7d, 0x21, 0x42, 0x19, 0x23, 0xf4,
		0x85, 0x80, 0x47, 0x0a, 0x8f, 0x14, 0x1e, 0x29, 0x3c, 0x52, 0x78, 0xa4, 0xf0, 0x48, 0xe1, 0x91,
		0xc2, 0x23, 0xdd, 0x5e, 0x8f, 0x14, 0x7d, 0x21, 0xde, 0x4e, 0x68, 0x7c, 0x1a, 0xf4, 0xed, 0xfc,
		0x42, 0xba, 0x53, 0xea, 0x1b, 0x42, 0x7c, 0x1d, 0xf4, 0xed, 0x4e, 0x63, 0x7c, 0xc3, 0xdb, 0xd2,
		0x0a, 0x02, 0xe5, 0x7e, 0x13, 0xe6, 0x32, 0xd8, 0x72, 0xc3, 0x96, 0x9b, 0x4c, 0x2e, 0x82, 0x72,
		0xbf, 0xe9, 0x61, 0x18, 0x28, 0xf7, 0xcb, 0xc9, 0x20, 0x50, 0xee, 0x57, 0xd2, 0x92, 0xa1, 0xdc,
		0x6f, 0xe4, 0x45, 0x89, 0x97, 0x15, 0xed, 0xc3, 0xf4, 0x38, 0xd9, 0xd1, 0x70, 0xb6, 0xe0, 0x6c,
		0xc1, 0xd9, 0x62, 0x72, 0xb6, 0xc6, 0x4c, 0x57, 0xa5, 0xd0, 0xce, 0x45, 0x0d, 0x2d, 0x50, 0x78,
		0x5c, 0xd3, 0x67, 0x4d, 0x9d, 0xbf, 0x35, 0x7b, 0x73, 0x43, 0xdd, 0x70, 0x8e, 0x8b, 0x0c, 0x71,
		0xf2, 0x0a, 0xe2, 0xe4, 0xc4, 0x83, 0x7b, 0xc1, 0xd4, 0x32, 0x42, 0xa7, 0xf2, 0xdc, 0x5c, 0x56,
		0x77, 0xd7, 0xbf, 0xb6, 0x47, 0xa5, 0xd3, 0x93, 0x0a, 0x62, 0xe3, 0x72, 0x9c, 0x62, 0xfa, 0xd1,
		0xda, 0x69, 0xda, 0x61, 0x65, 0x30, 0x17, 0xc2, 0x18, 0x3e, 0x09, 0x6b, 0x12, 0xf6, 0xa6, 0xb7,
		0x19, 0x14, 0x2d, 0x2d, 0xbd, 0x31, 0x49, 0x5b, 0x5b, 0xce, 0xed, 0x39, 0x47, 0x8b, 0x4b, 0x6f,
		0xf4, 0xa3, 0x59, 0x5b, 0xca, 0x4e, 0xed, 0xef, 0x66, 0xa3, 0x7e, 0x51, 0x6f, 0x75, 0x2e, 0xbf,
		0x35, 0x1a, 0x0a, 0x03, 0x9c, 0xb9, 0x1d, 0x30, 0xaf, 0xaf, 0xbe, 0xb5, 0x6a, 0xd7, 0x9d, 0x6a,
		0xa3, 0x76, 0xdd, 0xe2, 0x98, 0xc4, 0xeb, 0x88, 0xc9, 0xff, 0x3c, 0x6e, 0x9f, 0xcc, 0xfa, 0x57,
		0xe6, 0x59, 0x2a, 0xe3, 0x59, 0x6a, 0x97, 0xad, 0xeb, 0xab, 0xe6, 0x7f, 0x3b, 0x8d, 0xea, 0xc7,
		0x5a, 0xa3, 0x53, 0xbf, 0xfc, 0x54, 0xbf, 0xa8, 0xb6, 0xae, 0xae, 0x39, 0xe6, 0x3b, 0x1d, 0xcf,
		0x77, 0x79, 0x35, 0x99, 0x4a, 0xd9, 0x4b, 0xb1, 0x8d, 0x64, 0xe8, 0xdd, 0x39, 0x57, 0xe5, 0x0d,
		0x2f, 0x9c, 0xd4, 0xcb, 0xf4, 0x66, 0x5b, 0x16, 0x22, 0xd2, 0x16, 0x9a, 0xf3, 0x39, 0xfc, 0x3a,
		0xce, 0x62, 0x8d, 0xd7, 0x29, 0x1f, 0x69, 0x9f, 0xd1, 0xb9, 0x85, 0x98, 0x09, 0x29, 0x79, 0xec,
		0x6e, 0x42, 0x01, 0x16, 0x91, 0xea, 0x3c, 0x57, 0x48, 0xa9, 0xfd, 0x47, 0xb0, 0x2e, 0x46, 0xa5,
		0x66, 0x73, 0x30, 0x10, 0x3d, 0x75, 0xce, 0xe5, 0x55, 0xdb, 0xd1, 0xba, 0x3f, 0x09, 0x4b, 0x37,
		0x6f, 0x98, 0x00, 0x01, 0x3d, 0x04, 0xf4, 0x10, 0xd0, 0x43, 0x40, 0x0f, 0x01, 0x3d, 0x04, 0xf4,
		0x10, 0xd0, 0x43, 0x40, 0x0f, 0x01, 0x3d, 0x04, 0xf4, 0x10, 0xd0, 0x43, 0x40, 0x0f, 0x01, 0x3d,
		0x04, 0xf4, 0x10, 0xd0, 0x43, 0x40, 0x0f, 0x01, 0x3d, 0x04, 0xf4, 0x32, 0x1e, 0xd0, 0x8b, 0x49,
		0xf0, 0x63, 0x95, 0xc5, 0x5f, 0x47, 0xaa, 0xe2, 0x95, 0xc9, 0x5f, 0xe7, 0xca, 0x93, 0x97, 0xcd,
		0xf7, 0x4d, 0x12, 0xbf, 0x8c, 0xfe, 0xe6, 0x21, 0x23, 0x97, 0xd5, 0xa7, 0x93, 0x34, 0x34, 0x5e,
		0x79, 0xf3, 0xd8, 0x54, 0x7a, 0x3a, 0xae, 0xac, 0x3d, 0x25, 0xb5, 0x55, 0xbd, 0x56, 0xa2, 0x04,
		0xfe, 0xd0, 0x6a, 0x65, 0x9d, 0x96, 0xa1, 0xd5, 0x8a, 0x54, 0x9b, 0x81, 0x56, 0x2b, 0x4c, 0x18,
		0x9c, 0x7c, 0x8f, 0x95, 0x15, 0xd4, 0x45, 0x77, 0x95, 0x08, 0x2b, 0x9a, 0x5c, 0x57, 0x95, 0xf1,
		0xea, 0xc9, 0x6c, 0xa7, 0x62, 0x88, 0xdf, 0x8e, 0xfa, 0x68, 0x0e, 0xd4, 0x07, 0xcb, 0x1c, 0x0e,
		0x22, 0x74, 0x56, 0x59, 0x1d, 0x00, 0x4d, 0x56, 0xa2, 0x99, 0x66, 0x34, 0x59, 0x09, 0xdb, 0x64,
		0x65, 0x59, 0xf2, 0xa2, 0xf7, 0x59, 0x59, 0x19, 0x07, 0xad, 0x56, 0xe8, 0x05, 0x9d, 0x4c, 0xe0,
		0xc9, 0x04, 0x9f, 0x44, 0x01, 0xe4, 0x70, 0x8d, 0xc8, 0xad, 0x56, 0xba, 0xa6, 0xd1, 0xd3, 0xc7,
		0x36, 0x55, 0x23, 0x68, 0xb8, 0xb2, 0x38, 0x58, 0xc2, 0xdd, 0x0b, 0xd0, 0x76, 0x85, 0x43, 0xa5,
		0xc8, 0x55, 0x8b, 0x54, 0xc5, 0x92, 0x09, 0xfe, 0x10, 0x74, 0x2f, 0x98, 0x6a, 0x0d, 0x65, 0xfb,
		0x82, 0xd9, 0x90, 0x29, 0xeb, 0x5f, 0x80, 0x74, 0xc0, 0x24, 0xd5, 0x96, 0x4d, 0x7d, 0x59, 0xd4,
		0x38, 0x7e, 0x14, 0x38, 0x97, 0xa6, 0xfe, 0x05, 0x3a, 0x43, 0x81, 0x58, 0x1d, 0x15, 0x61, 0xd3,
		0x04, 0x00, 0x5c, 0x40, 0xc0, 0x0e, 0x08, 0xec, 0xc0, 0xc0, 0x0a, 0x10, 0x34, 0x40, 0x41, 0x04,
		0x18, 0xde, 0x93, 0xf2, 0x55, 0x84, 0x8d, 0xdf, 0x9e, 0x6d, 0xa3, 0x9d, 0xa7, 0xcc, 0x8b, 0xf5,
		0xb5, 0x6f, 0xd3, 0x7b, 0xca, 0x16, 0xd5, 0xff, 0xd6, 0x8d, 0xc1, 0xd0, 0x51, 0x75, 0xc3, 0x11,
		0xd6, 0xbd, 0xd6, 0x15, 0x36, 0x03, 0xba, 0xaf, 0xce, 0x40, 0x8b, 0xf5, 0x05, 0x60, 0x3d, 0xb0,
		0x1e, 0x58, 0x4f, 0xf1, 0xa4, 0x54, 0x4e, 0xe2, 0x26, 0x70, 0xa1, 0x97, 0xae, 0x0d, 0x18, 0x43,
		0x2d, 0x63, 0xb4, 0x50, 0xc3, 0x06, 0x39, 0x9c, 0xd0, 0xc3, 0x0f, 0x41, 0xdc, 0x50, 0x24, 0x0d,
		0x92, 0xa4, 0x41, 0x93, 0x14, 0x88, 0xa2, 0x85, 0x2a, 0x62, 0xc8, 0x62, 0x83, 0x2e, 0x0e, 0xbe,
		0xcb, 0xcf, 0x7f, 0x99, 0xf9, 0xb0, 0x34, 0x00, 0x93, 0x01, 0x64, 0xf2, 0x00, 0x4d, 0x16, 0xb0,
		0x49, 0x07, 0x38, 0xe9, 0x40, 0x27, 0x15, 0xf0, 0x78, 0x80, 0x8f, 0x09, 0x00, 0xf9, 0xf8, 0xba,
		0x44, 0xfe, 0x2e, 0x83, 0xcf, 0xcb, 0xe3, 0xf7, 0xfc, 0x72, 0xc4, 0x71, 0x02, 0x33, 0x5e, 0xef,
		0xf7, 0xc0, 0xc2, 0x13, 0x37, 0x7f, 0x37, 0x01, 0x77, 0xdd, 0x6f, 0xf5, 0x8a, 0xb0, 0x7a, 0xb0,
		0x7a, 0xb0, 0x7a, 0x29, 0xb0, 0x7a, 0x5c, 0xee, 0xbf, 0x0c, 0x1a, 0x20, 0x8f, 0x0e, 0x48, 0xa2,
		0x05, 0xd2, 0xe8, 0x81, 0x4c, 0xc0, 0x94, 0x0f, 0x9c, 0xb2, 0x01, 0x34, 0x31, 0x20, 0x4d, 0x0c,
		0x50, 0x13, 0x01, 0x56, 0x5e, 0x80, 0x65, 0x06, 0x5a, 0x79, 0x34, 0x63, 0x8d, 0xc7, 0xe8, 0x96,
		0x04, 0x90, 0xa0, 0x6f, 0x33, 0xf7, 0xf1, 0x74, 0x2f, 0x9b, 0xeb, 0xcf, 0xb8, 0xf6, 0x0a, 0x5f,
		0x2c, 0x7f, 0xb3, 0x39, 0x64, 0x8a, 0xea, 0xc3, 0x2a, 0xf2, 0x58, 0x45, 0xfd, 0x1e, 0x46, 0x71,
		0x0b, 0x8d, 0xa2, 0x7e, 0x0f, 0x9b, 0x98, 0x36, 0x9b, 0xc8, 0x1f, 0x82, 0xf3, 0x19, 0xc5, 0x8a,
		0x84, 0xb9, 0x9a, 0xde, 0x21, 0xb7, 0xb1, 0xd8, 0x9d, 0xcf, 0x53, 0x47, 0x56, 0xbf, 0x98, 0x7e,
		0x76, 0x4f, 0xa4, 0xc1, 0x58, 0xfb, 0xde, 0xa3, 0x3d, 0xbc, 0x4b, 0xc0, 0x5e, 0x2f, 0xcd, 0x0a,
		0x93, 0x0d, 0x93, 0x0d, 0x93, 0x0d, 0x93, 0x0d, 0x93, 0x0d, 0x93, 0xed, 0x7e, 0x71, 0x3b, 0x37,
		0xd9, 0xff, 0xee, 0x0e, 0x2d, 0x4b, 0x18, 0xce, 0xfe, 0x41, 0xfe, 0xf0, 0x30, 0xef, 0xfd, 0xa2,
		0x3d, 0xbd, 0x64, 0xd1, 0x8e, 0xd8, 0x6b, 0xbe, 0xf3, 0x46, 0xee, 0x89, 0xdf, 0x99, 0xb5, 0xfe,
		0x99, 0x8a, 0xb2, 0x13, 0xf7, 0x57, 0xdf, 0xec, 0xb7, 0xd0, 0x97, 0x3a, 0x58, 0x39, 0xbb, 0xbf,
		0xf2, 0x39, 0xbf, 0x70, 0xe4, 0x73, 0xfe, 0xf7, 0xfc, 0x6a, 0xe6, 0xf2, 0xea, 0x17, 0x79, 0xce,
		0x5d, 0xcc, 0x1c, 0x7d, 0xc5, 0x85, 0x4b, 0xf1, 0xdb, 0xf9, 0x1f, 0x73, 0xf0, 0xc5, 0x7d, 0x05,
		0x4b, 0x9f, 0x3a, 0x17, 0xf3, 0x17, 0x30, 0xff, 0x7b, 0xa7, 0x3e, 0x7e, 0xde, 0xba, 0xf7, 0xfc,
		0x2b, 0x9f, 0xe3, 0x54, 0x39, 0x92, 0xaf, 0x18, 0xe9, 0xce, 0x5f, 0x9b, 0x56, 0x59, 0x22, 0xdf,
		0xfa, 0xa1, 0x2d, 0x13, 0xe7, 0x1b, 0x9d, 0xbc, 0x6c, 0x9c, 0x7f, 0x06, 0x09, 0x65, 0xe4, 0x7c,
		0x93, 0xd2, 0x97, 0x95, 0xdb, 0x3c, 0x05, 0x59, 0x99, 0x39, 0x6e, 0x11, 0x65, 0x46, 0xff, 0xcc,
		0xa0, 0xbe, 0xc2, 0x92, 0x75, 0x93, 0x62, 0x9c, 0x57, 0xb6, 0xbb, 0x0e, 0x28, 0xd5, 0x99, 0x61,
		0x1e, 0xf5, 0x48, 0xad, 0x5a, 0x50, 0x1e, 0x3e, 0x4a, 0x97, 0xf8, 0x6f, 0xd3, 0xf1, 0x3e, 0xda,
		0x74, 0x3e, 0x96, 0xf4, 0x3d, 0xb6, 0x83, 0x7c, 0x45, 0x1c, 0xe4, 0xcb, 0x50, 0x34, 0x0d, 0x07,
		0xf9, 0x52, 0x7c, 0x90, 0xaf, 0x67, 0x77, 0x07, 0x7c, 0xa7, 0xf7, 0xdc, 0xd1, 0x79, 0x8e, 0xec,
		0x1d, 0xe1, 0xc8, 0x1e, 0x8e, 0xec, 0xa5, 0x08, 0x84, 0xa4, 0x80, 0x51, 0x36, 0x42, 0x1e, 0x6c,
		0xb1, 0x77, 0x4e, 0x5c, 0x59, 0xc4, 0x16, 0x8e, 0xc8, 0x03, 0x4f, 0x17, 0xb6, 0xd9, 0x7f, 0x8c,
		0x31, 0x5b, 0xce, 0xae, 0x6c, 0xde, 0x24, 0xb3, 0x0e, 0x5e, 0xdc, 0xdb, 0xb0, 0xb2, 0x7a, 0x78,
		0xcd, 0x25, 0x96, 0xbb, 0x97, 0x17, 0x93, 0x12, 0xaf, 0x86, 0xea, 0xe4, 0x89, 0x40, 0xf9, 0x18,
		0x32, 0x90, 0x0a, 0xb3, 0xc0, 0x37, 0x6a, 0x3b, 0xd5, 0xe6, 0x0b, 0x81, 0xf5, 0x08, 0x93, 0x6e,
		0x47, 0x60, 0x7d, 0x2f, 0x85, 0x32, 0xc9, 0x71, 0x42, 0x89, 0xef, 0x44, 0x12, 0xe8, 0x19, 0xe8,
		0x19, 0xe8, 0xd9, 0x8e, 0xd3, 0xb3, 0xa1, 0x6e, 0x38, 0xe5, 0x12, 0x23, 0x41, 0x3b, 0x05, 0x41,
		0x03, 0x41, 0x03, 0x41, 0x4b, 0x86, 0xa0, 0xc9, 0xf1, 0x28, 0x41, 0xd9, 0xb6, 0x99, 0xb2, 0xa5,
		0xd2, 0xd1, 0x8e, 0xd9, 0x8c, 0x25, 0xb0, 0x79, 0x8c, 0xd5, 0xac, 0x05, 0x0e, 0x38, 0x1c, 0x70,
		0x38, 0xe0, 0x70, 0xc0, 0xdf, 0x94, 0x77, 0xbe, 0xb3, 0x08, 0x9c, 0x67, 0x0f, 0x16, 0x2b, 0x76,
		0x2d, 0xfe, 0x6f, 0x25, 0x8b, 0x89, 0xa7, 0x98, 0x17, 0xb2, 0xd7, 0xc2, 0x8d, 0x9b, 0x96, 0xec,
		0x35, 0xea, 0x4c, 0xfd, 0xa4, 0x53, 0xd6, 0x08, 0x53, 0xef, 0x47, 0x19, 0x6f, 0x6d, 0x42, 0x95,
		0x3a, 0x8f, 0x8e, 0xea, 0xd9, 0xe9, 0xa8, 0x1e, 0xb7, 0x4d, 0x17, 0x2d, 0xda, 0xa5, 0x05, 0xe5,
		0x14, 0x92, 0x84, 0xd1, 0x24, 0x71, 0x4d, 0x41, 0xa3, 0xfd, 0xac, 0x88, 0x5d, 0x7a, 0x9a, 0xef,
		0x07, 0x13, 0x32, 0x69, 0xdd, 0xf8, 0x23, 0xf4, 0x1a, 0x8d, 0xb1, 0x77, 0x17, 0x7f, 0x8f, 0x2e,
		0x66, 0x28, 0x00, 0xcd, 0x2a, 0xe5, 0x50, 0x72, 0x34, 0xab, 0x24, 0xa4, 0xc6, 0x84, 0x14, 0x98,
		0x82, 0xea, 0xd2, 0x15, 0xa1, 0x96, 0x83, 0x57, 0x33, 0xab, 0x60, 0xc7, 0x87, 0xad, 0xf9, 0x50,
		0x68, 0xb5, 0x0b, 0xf4, 0xda, 0x09, 0xf4, 0x8a, 0xdd, 0x6a, 0x77, 0xa6, 0x33, 0x74, 0x9d, 0x76,
		0xbd, 0x11, 0xd1, 0x68, 0x97, 0x5f, 0x49, 0xa9, 0x95, 0x95, 0x4d, 0x69, 0xd9, 0x94, 0x97, 0x45,
		0x89, 0xd3, 0x11, 0x8d, 0xa2, 0x6b, 0xb4, 0xeb, 0xd6, 0xb5, 0x61, 0xe8, 0xc6, 0x38, 0x1e, 0x16,
		0xed, 0x76, 0xd3, 0x03, 0x03, 0x5c, 0x70, 0xc0, 0x0e, 0x0b, 0xec, 0xf0, 0xc0, 0x0a, 0x13, 0x34,
		0x70, 0x41, 0x04, 0x1b, 0x74, 0xcc, 0x86, 0x91, 0xe9, 0x70, 0x30, 0x9f, 0x00, 0x4c, 0x88, 0xae,
		0xbe, 0x17, 0x8e, 0xe4, 0xcb, 0xf5, 0xe3, 0xfc, 0xc0, 0x8e, 0x23, 0xf9, 0x00, 0xf6, 0xdd, 0x04,
		0x76, 0x86, 0xde, 0xba, 0x94, 0xfe, 0x21, 0xab, 0x9f, 0xc8, 0xe4, 0x2f, 0xb2, 0xf9, 0x8d, 0x9c,
		0x30, 0xc3, 0x0f, 0x37, 0xdc, 0xb0, 0x23, 0x0d, 0x7e, 0xa4, 0xc1, 0x90, 0x14, 0x38, 0xa2, 0x85,
		0x25, 0x62, 0x78, 0xe2, 0xf3, 0x3f, 0x25, 0xf8, 0xa1, 0x9c, 0xfe, 0xe8, 0x3a, 0xbf, 0x74, 0x43,
		0xde, 0xd9, 0x7c, 0xb3, 0x94, 0xde, 0x73, 0xa5, 0x17, 0x1e, 0xca, 0x8c, 0xe8, 0x5f, 0x42, 0x7f,
		0x78, 0x74, 0xf8, 0x6c, 0xd1, 0x74, 0x7c, 0x18, 0x23, 0x18, 0x23, 0x18, 0x23, 0x18, 0x23, 0x42,
		0x79, 0xc7, 0x11, 0x44, 0xdf, 0x7f, 0x38, 0x82, 0x18, 0x6c, 0x1e, 0x1c, 0x41, 0x8c, 0x24, 0x02,
		0x38, 0x82, 0x98, 0x55, 0xa9, 0xc0, 0x11, 0xc4, 0x2d, 0x0a, 0x47, 0x6d, 0xcf, 0x79, 0x8f, 0x4d,
		0xf4, 0x2b, 0x93, 0x87, 0x3d, 0xa6, 0x1f, 0xbc, 0x6f, 0x71, 0xce, 0x63, 0xc9, 0xc3, 0xa7, 0x0a,
		0x4c, 0xe2, 0xa8, 0x07, 0x8e, 0x7a, 0x64, 0x18, 0xe0, 0x32, 0x75, 0xce, 0x63, 0x15, 0xd2, 0x70,
		0xc4, 0x23, 0x23, 0xe2, 0x96, 0x89, 0x03, 0x1e, 0x33, 0xe9, 0x4a, 0x73, 0xb6, 0x74, 0xbc, 0x0d,
		0x7f, 0x92, 0x0d, 0x7e, 0xb2, 0x2c, 0xe9, 0x22, 0xb2, 0xa4, 0x19, 0x83, 0x8e, 0xc8, 0x92, 0x9e,
		0xdf, 0x79, 0xec, 0x2c, 0xe9, 0x3b, 0xad, 0xfb, 0x73, 0x38, 0x50, 0x89, 0xcb, 0xb5, 0x78, 0x52,
		0xb8, 0x7e, 0x78, 0x9a, 0xfc, 0xe9, 0x23, 0xe4, 0x4f, 0x4b, 0x54, 0x63, 0x36, 0x75, 0x66, 0x53,
		0x6b, 0x16, 0xf5, 0x4e, 0x07, 0xcb, 0x23, 0x8b, 0xf9, 0x33, 0x6c, 0x38, 0x53, 0x6e, 0x30, 0xfb,
		0x37, 0x94, 0x59, 0xea, 0x97, 0xc4, 0xf0, 0x97, 0x63, 0xd8, 0xd7, 0xae, 0xd9, 0x37, 0x2d, 0x3a,
		0xa8, 0x9d, 0x0c, 0x07, 0x68, 0x05, 0xb4, 0x02, 0x5a, 0x53, 0x05, 0xad, 0x64, 0xdb, 0xa7, 0x84,
		0xdb, 0xa5, 0xc4, 0xdb, 0xa3, 0x84, 0xb1, 0x71, 0x8e, 0xed, 0x4f, 0xae, 0xed, 0x4e, 0xf6, 0x8d,
		0x2c, 0xbe, 0x8d, 0x2b, 0xca, 0xcc, 0x26, 0x8e, 0xed, 0x4a, 0x89, 0xdb, 0x93, 0x59, 0x5e, 0xc5,
		0x94, 0xec, 0x79, 0xb4, 0x33, 0xe8, 0x7e, 0x11, 0xb4, 0x02, 0xa0, 0x2b, 0xfd, 0x0f, 0xc7, 0x0b,
		0x8e, 0x17, 0x1c, 0x2f, 0x38, 0x5e, 0x70, 0xbc, 0xe0, 0x78, 0xc1, 0xf1, 0x82, 0xe3, 0xb5, 0xcd,
		0x8e, 0xd7, 0x72, 0x08, 0x4f, 0x9d, 0xee, 0x7f, 0x12, 0xd7, 0x68, 0x59, 0x1c, 0x1c, 0xae, 0x19,
		0x5c, 0x33, 0xb8, 0x66, 0xa9, 0x72, 0xcd, 0x6c, 0xc7, 0xd2, 0x8d, 0x07, 0xca, 0xdd, 0x86, 0xd3,
		0x0c, 0x22, 0xe1, 0xc0, 0x32, 0x1f, 0x2c, 0xed, 0xe9, 0x49, 0xf4, 0x54, 0x4a, 0x36, 0xba, 0x3c,
		0x2c, 0xd0, 0x0f, 0xe8, 0x07, 0xf4, 0x03, 0x31, 0x05, 0x31, 0x05, 0x31, 0x05, 0x31, 0x05, 0x31,
		0xdd, 0x72, 0x62, 0x8a, 0x04, 0xe6, 0x40, 0x09, 0xcc, 0x71, 0x4f, 0xff, 0xc8, 0x4b, 0x5e, 0x8e,
		0x71, 0xb8, 0x27, 0x42, 0xe6, 0xf2, 0x1e, 0xa3, 0xd8, 0x44, 0x6e, 0xc2, 0xa2, 0xd4, 0x7e, 0xbb,
		0x28, 0x14, 0xde, 0x34, 0x47, 0xcc, 0xa6, 0x5e, 0x70, 0x3b, 0xcd, 0xae, 0x2a, 0x7e, 0x3b, 0xe7,
		0x8e, 0xe8, 0x8b, 0x27, 0xe1, 0x58, 0x2f, 0xaa, 0xe6, 0x98, 0x4f, 0x7a, 0x37, 0x6a, 0x8a, 0xf5,
		0xb2, 0xdf, 0xe9, 0x62, 0x5f, 0x54, 0xdd, 0x5b, 0x70, 0x34, 0x15, 0xe6, 0x85, 0x6e, 0x87, 0x5c,
		0xaf, 0x58, 0x27, 0xa7, 0xe2, 0x9f, 0x94, 0x62, 0x39, 0x19, 0x45, 0x70, 0x12, 0x8a, 0xe0, 0xe4,
		0x53, 0x58, 0x95, 0x8b, 0x89, 0xd0, 0xf2, 0x91, 0x59, 0x89, 0x74, 0x76, 0x42, 0x0e, 0x16, 0x87,
		0x53, 0xb3, 0xe0, 0x2a, 0x16, 0xec, 0x97, 0x01, 0x97, 0x3e, 0xea, 0x92, 0x4b, 0x58, 0xea, 0x10,
		0x6b, 0xcb, 0xb9, 0xa6, 0xc1, 0x96, 0xf1, 0xfd, 0x45, 0x09, 0xb0, 0x20, 0x11, 0x9a, 0x20, 0x44,
		0x6e, 0x7a, 0x10, 0xf2, 0xf8, 0x4e, 0xe8, 0x90, 0x54, 0x94, 0xd0, 0x53, 0xf4, 0x10, 0x53, 0xd4,
		0x50, 0x52, 0xec, 0x90, 0x51, 0xec, 0xd0, 0x50, 0xac, 0x10, 0x10, 0x2d, 0x14, 0x84, 0x3d, 0x1e,
		0x13, 0xbd, 0x69, 0x40, 0xdc, 0x26, 0x01, 0x11, 0xcf, 0x9e, 0x45, 0x8e, 0xab, 0xc6, 0x89, 0xa3,
		0xc6, 0x8f, 0x9b, 0xc6, 0x8d, 0x93, 0x92, 0xc5, 0x45, 0xc9, 0xe2, 0xa0, 0x24, 0x71, 0x4f, 0x5e,
		0xf6, 0x11, 0xf5, 0xac, 0x58, 0xcc, 0x22, 0xaa, 0x24, 0xc5, 0x52, 0xd1, 0x7e, 0x8b, 0x52, 0x7d,
		0xc8, 0xd5, 0x88, 0x5c, 0x9d, 0x48, 0xd5, 0x2a, 0x99, 0xd8, 0xd0, 0x0e, 0xb4, 0xdf, 0x8a, 0x5e,
		0xba, 0x53, 0x52, 0xc7, 0x40, 0xc3, 0x11, 0xd6, 0xbd, 0xd6, 0x15, 0xea, 0xf8, 0xf5, 0x11, 0x00,
		0xd8, 0xe2, 0x70, 0xe8, 0xc4, 0x35, 0x56, 0x48, 0xfd, 0x1e, 0x38, 0x16, 0x01, 0xc7, 0xf4, 0xfb,
		0x9d, 0x39, 0x61, 0x4e, 0xd3, 0xc9, 0x81, 0xb4, 0x83, 0x03, 0x79, 0x07, 0xae, 0x62, 0x3a, 0x93,
		0x1a, 0xf4, 0x7b, 0xe4, 0x34, 0x50, 0x0c, 0x4c, 0xa8, 0xbc, 0xf1, 0x94, 0x38, 0xa6, 0x32, 0x93,
		0x29, 0xb5, 0xdf, 0xc2, 0x72, 0xf4, 0xe0, 0x9a, 0x0d, 0x8d, 0x3e, 0x5c, 0xa9, 0x01, 0x03, 0x2e,
		0x50, 0x60, 0x07, 0x07, 0x76, 0x90, 0xe0, 0x04, 0x0b, 0x1a, 0xd0, 0x20, 0x02, 0x0f, 0x3a, 0x82,
		0xc3, 0x48, 0x78, 0x38, 0x08, 0xd0, 0x46, 0x42, 0x94, 0x77, 0x97, 0xf9, 0xdc, 0x03, 0x2c, 0x7b,
		0xf5, 0x8b, 0xe9, 0x67, 0x37, 0x98, 0xbf, 0x4d, 0x3d, 0xba, 0x86, 0x77, 0x8c, 0xf8, 0xbf, 0x34,
		0x3a, 0x4c, 0x00, 0x4c, 0x00, 0x4c, 0x00, 0x4c, 0x40, 0x66, 0x4d, 0xc0, 0xed, 0xdc, 0x04, 0xfc,
		0xbb, 0x3b, 0xb4, 0x2c, 0x61, 0x38, 0xfb, 0x07, 0xf9, 0xc3, 0xc3, 0xbc, 0xf7, 0x8b, 0xf6, 0xf4,
		0x92, 0x45, 0xdc, 0xb3, 0xd7, 0x7c, 0xe7, 0x8d, 0x9c, 0xa6, 0x8e, 0x8f, 0xa8, 0x5e, 0x1b, 0x2c,
		0x11, 0x60, 0xa1, 0xfe, 0xf6, 0x52, 0x34, 0x91, 0xac, 0x1a, 0x37, 0x4f, 0xde, 0xc0, 0xbc, 0xd4,
		0x76, 0x7d, 0x76, 0xd7, 0xd7, 0xe2, 0x9e, 0xa2, 0xee, 0x36, 0x32, 0x3d, 0xd9, 0x65, 0x2b, 0x75,
		0x59, 0x9e, 0xeb, 0xa5, 0x29, 0xd5, 0x1b, 0x09, 0x03, 0x55, 0x37, 0x54, 0x7d, 0x40, 0xb0, 0x87,
		0x30, 0x1b, 0x09, 0xdb, 0x07, 0xd8, 0x07, 0x8d, 0xee, 0x52, 0xee, 0x52, 0x89, 0x5a, 0x6c, 0x20,
		0x48, 0x25, 0x8e, 0x38, 0x15, 0x89, 0x53, 0x91, 0x12, 0xd4, 0xda, 0x1b, 0xa8, 0x67, 0x3b, 0x71,
		0x2c, 0xeb, 0x46, 0xf1, 0x9d, 0x8e, 0x8b, 0xc8, 0x51, 0x7a, 0x80, 0x00, 0xa1, 0xa3, 0x44, 0x80,
		0x62, 0xd7, 0x62, 0x47, 0xfa, 0x40, 0xd5, 0x7a, 0x3d, 0x4b, 0xd8, 0x36, 0x47, 0xf8, 0xe8, 0x8c,
		0x70, 0xcc, 0xe9, 0x3b, 0xa0, 0xed, 0x51, 0xc9, 0xd8, 0x09, 0x54, 0x1f, 0x3c, 0x97, 0x18, 0xde,
		0xad, 0xef, 0x1d, 0x9f, 0xf2, 0xf4, 0xa6, 0x76, 0x84, 0x65, 0xb0, 0xb5, 0x04, 0x55, 0xf6, 0x6f,
		0x8f, 0xd4, 0xb3, 0xf6, 0xeb, 0x6d, 0x41, 0x3d, 0x6b, 0x4f, 0xfe, 0x5a, 0x70, 0xff, 0xf8, 0x53,
		0x1c, 0xbd, 0x16, 0x6f, 0x8f, 0xd4, 0xd2, 0xf4, 0xdb, 0xe2, 0xc9, 0xed, 0x91, 0x7a, 0xd2, 0x3e,
		0xd8, 0xff, 0xf1, 0xe3, 0x30, 0xec, 0x35, 0x07, 0x7f, 0x8e, 0x47, 0xf4, 0x0d, 0x6e, 0xdb, 0x1c,
		0xaf, 0xfb, 0xea, 0xa6, 0xfe, 0x37, 0xfb, 0x3b, 0xff, 0x67, 0x5f, 0xd6, 0x5b, 0x3f, 0xf8, 0x97,
		0x92, 0xf6, 0x2e, 0x8c, 0x1f, 0x32, 0x04, 0x23, 0x65, 0xc0, 0xc8, 0x26, 0x18, 0x71, 0xa5, 0x53,
		0x53, 0xef, 0xab, 0xea, 0xe7, 0xf6, 0x9f, 0xc2, 0x87, 0xd2, 0xe8, 0xfc, 0xe0, 0x4f, 0x65, 0xb4,
		0xfa, 0xe5, 0xeb, 0xba, 0x9f, 0x15, 0x3e, 0x54, 0x46, 0xe7, 0x1b, 0xfe, 0xa5, 0x3c, 0x3a, 0x0f,
		0x38, 0xc6, 0xc9, 0x68, 0xdf, 0xf7, 0xd3, 0xf1, 0xf7, 0xc5, 0x4d, 0x17, 0x94, 0x36, 0x5c, 0x70,
		0xbc, 0xe9, 0x82, 0xe3, 0x0d, 0x17, 0x6c, 0xbc, 0xa5, 0xe2, 0x86, 0x0b, 0x4e, 0x46, 0xaf, 0xbe,
		0xdf, 0xef, 0xaf, 0xff, 0x69, 0x79, 0x74, 0xf0, 0xba, 0xe9, 0xdf, 0x2a, 0xa3, 0xd7, 0xf3, 0x83,
		0x03, 0x00, 0xab, 0x0f, 0x58, 0x21, 0x86, 0xf2, 0xc5, 0x30, 0xfd, 0x86, 0x66, 0x2f, 0x5d, 0xf7,
		0x95, 0x92, 0x6c, 0x18, 0xab, 0xcb, 0x12, 0xc7, 0x98, 0x8e, 0x8b, 0x38, 0x06, 0xe2, 0x18, 0x88,
		0x63, 0x20, 0x8e, 0x81, 0x38, 0x06, 0xe2, 0x18, 0x88, 0x63, 0x20, 0x8e, 0x81, 0x38, 0x06, 0xe2,
		0x18, 0x88, 0x63, 0x80, 0x40, 0x22, 0x8e, 0x81, 0x38, 0x06, 0xe2, 0x18, 0x88, 0x63, 0x10, 0x8c,
		0xb0, 0xa3, 0x79, 0xd8, 0xd3, 0x8c, 0xcc, 0xec, 0xa4, 0x60, 0x0f, 0xea, 0x46, 0x7d, 0x80, 0xe4,
		0xeb, 0xb4, 0x0b, 0x54, 0x9a, 0xf3, 0xae, 0x5d, 0x11, 0x4a, 0x73, 0xc6, 0x75, 0xbc, 0xa4, 0x4f,
		0x92, 0x64, 0x4f, 0xb2, 0x5c, 0xeb, 0x22, 0x72, 0xad, 0x19, 0x63, 0x9b, 0xc8, 0xb5, 0x9e, 0xdf,
		0x79, 0xec, 0x5c, 0xeb, 0xae, 0x39, 0x34, 0x1c, 0x61, 0xd9, 0x94, 0x6d, 0xe9, 0xa7, 0x23, 0xa6,
		0x2c, 0xe3, 0x1a, 0x7d, 0x68, 0xd2, 0xb0, 0x21, 0x81, 0x8c, 0x6b, 0x79, 0xca, 0xed, 0x0d, 0x64,
		0x76, 0x1d, 0xe1, 0xd8, 0xea, 0xbd, 0x69, 0xfd, 0xd2, 0xac, 0x9e, 0xe8, 0xd1, 0xef, 0x59, 0xfa,
		0x66, 0xc0, 0xee, 0x65, 0x7a, 0xc0, 0x81, 0x0b, 0x24, 0xd8, 0xc1, 0x82, 0x1d, 0x34, 0x58, 0xc1,
		0x83, 0x36, 0xea, 0x90, 0xfe, 0xdd, 0xcb, 0xa9, 0xe1, 0x27, 0xe9, 0x73, 0xb5, 0x0a, 0x00, 0x84,
		0x01, 0x71, 0xe2, 0xbe, 0x57, 0xb3, 0xff, 0x18, 0x76, 0x1d, 0x38, 0xfa, 0x60, 0x79, 0x83, 0x33,
		0xf5, 0xc3, 0xf2, 0xc6, 0xe7, 0xee, 0xa8, 0x34, 0x17, 0x3f, 0xae, 0xce, 0x4a, 0xc4, 0x9a, 0xb7,
		0xbc, 0xb4, 0x0c, 0xfd, 0xb2, 0x7c, 0x4b, 0xcb, 0xdf, 0x37, 0x6b, 0x1b, 0x57, 0x1b, 0x11, 0x67,
		0x6e, 0x6d, 0x50, 0x06, 0x5a, 0xf7, 0x27, 0xb3, 0x43, 0xea, 0x9f, 0x02, 0x1e, 0x29, 0x3c, 0x52,
		0x78, 0xa4, 0xf0, 0x48, 0xe1, 0x91, 0xc2, 0x23, 0x85, 0x47, 0x0a, 0x8f, 0x14, 0x1e, 0xe9, 0xb6,
		0x78, 0xa4, 0xc8, 0x81, 0x08, 0xbd, 0x65, 0x3d, 0xe9, 0xe7, 0x41, 0xb4, 0x55, 0x93, 0x93, 0xb0,
		0x81, 0xed, 0x26, 0x3f, 0x74, 0x2e, 0x66, 0x37, 0x9c, 0x54, 0x16, 0x44, 0x8c, 0xed, 0xd4, 0x9e,
		0xe8, 0x6a, 0x03, 0x7b, 0xd8, 0xd7, 0x1c, 0xa1, 0x3e, 0x0a, 0xad, 0x27, 0x2c, 0xba, 0x3d, 0xb7,
		0x35, 0x63, 0xd3, 0xec, 0xbe, 0x1d, 0x61, 0xf7, 0x2d, 0x01, 0x1a, 0x83, 0xdd, 0xb7, 0x14, 0x00,
		0x3b, 0x19, 0x2d, 0xf1, 0xe4, 0x4d, 0x18, 0x33, 0x2d, 0xd5, 0x4d, 0x63, 0xaa, 0xa7, 0xaa, 0x33,
		0x9e, 0x86, 0x40, 0x04, 0x67, 0xdb, 0xe5, 0x25, 0x82, 0xb1, 0x6a, 0xc6, 0xf0, 0x89, 0x4e, 0x98,
		0x5b, 0xe6, 0x8d, 0x63, 0xe9, 0xc6, 0x03, 0x2d, 0xc7, 0x3b, 0x1a, 0xbf, 0xd1, 0x2f, 0xd7, 0x35,
		0x4a, 0x6a, 0x57, 0x18, 0x8f, 0x59, 0x6f, 0x7e, 0x27, 0xe5, 0x8b, 0xc5, 0xe9, 0xa0, 0x65, 0xca,
		0x41, 0x8f, 0xc7, 0x83, 0x7e, 0x6d, 0x36, 0x6e, 0x28, 0x07, 0x2d, 0x8d, 0x07, 0xfd, 0xfe, 0x77,
		0xa3, 0x7a, 0xa9, 0xa4, 0x2b, 0x40, 0x60, 0xd6, 0x5d, 0x60, 0x21, 0x94, 0x9e, 0xb1, 0xe0, 0x90,
		0x52, 0x82, 0x89, 0xd8, 0xc4, 0x4e, 0x57, 0x59, 0x1d, 0xb2, 0x1c, 0xbf, 0x54, 0xe0, 0x32, 0xcb,
		0x1b, 0x8b, 0xcc, 0x79, 0xee, 0x98, 0x70, 0xc8, 0x89, 0xc0, 0x9c, 0xe7, 0x4a, 0xdb, 0x41, 0x07,
		0x12, 0xf1, 0x0d, 0xe7, 0x96, 0x81, 0xde, 0x37, 0x5c, 0x33, 0x36, 0x7c, 0x43, 0xf8, 0x86, 0xf0,
		0x0d, 0xe1, 0x1b, 0xc2, 0x37, 0x84, 0x6f, 0x08, 0xdf, 0x10, 0xbe, 0x21, 0x7c, 0xc3, 0x14, 0xfb,
		0x86, 0xf1, 0x9a, 0xb1, 0xfb, 0x0c, 0x4d, 0x9c, 0xa6, 0xec, 0xf0, 0x00, 0xe1, 0x01, 0xc2, 0x03,
		0x64, 0xf2, 0x00, 0x87, 0xba, 0xe1, 0x90, 0x64, 0x2a, 0x10, 0x66, 0x28, 0x10, 0x67, 0x26, 0x10,
		0x1a, 0x69, 0x8e, 0x4c, 0x04, 0xae, 0x0c, 0x04, 0xf6, 0xbd, 0x68, 0xbe, 0x3d, 0xe8, 0x11, 0xa5,
		0x7f, 0xc1, 0x90, 0x61, 0x20, 0x31, 0xb3, 0x20, 0xcb, 0xab, 0x98, 0x12, 0xf7, 0xab, 0x9d, 0x45,
		0xf7, 0x6b, 0x5e, 0x93, 0x8d, 0xce, 0x07, 0xa3, 0xaa, 0xf3, 0x06, 0x47, 0x0c, 0x8e, 0x18, 0x1c,
		0x31, 0x62, 0x47, 0x8c, 0xb4, 0x0a, 0x23, 0x65, 0xf5, 0x45, 0xda, 0xaa, 0x8b, 0x2c, 0xf5, 0x2b,
		0x59, 0xaa, 0x2c, 0x72, 0x94, 0x45, 0x63, 0x2b, 0x87, 0x96, 0xc1, 0x6a, 0x8a, 0x6d, 0xca, 0xd7,
		0xca, 0x59, 0xe4, 0x2b, 0xa3, 0x55, 0x13, 0xdb, 0x69, 0x8a, 0x98, 0xf2, 0xa8, 0x7d, 0x19, 0x6a,
		0x8f, 0xb2, 0x73, 0x99, 0xaf, 0x7e, 0x98, 0x39, 0x20, 0x84, 0xb8, 0x65, 0xba, 0xca, 0x61, 0x1b,
		0xbc, 0x3c, 0xb2, 0x06, 0xf4, 0xed, 0x81, 0x3a, 0xcd, 0x36, 0x27, 0x62, 0xe5, 0xde, 0x88, 0xe0,
		0xe4, 0xe0, 0xe4, 0xe0, 0xe4, 0xa9, 0xe2, 0xe4, 0xf6, 0x24, 0x4b, 0x84, 0x90, 0x8f, 0x9f, 0x66,
		0x10, 0xf3, 0x9e, 0xb4, 0x2e, 0x7d, 0x30, 0x72, 0x71, 0x50, 0x20, 0x1f, 0x90, 0x0f, 0xc8, 0x97,
		0x2a, 0xe4, 0xa3, 0x53, 0x4f, 0x6a, 0x4e, 0x4d, 0xce, 0xa5, 0x95, 0x45, 0xa7, 0x7b, 0xd5, 0x97,
		0x2f, 0x8e, 0x0e, 0xfe, 0x9c, 0x10, 0x04, 0xbd, 0xda, 0x14, 0x0f, 0xce, 0xc1, 0xed, 0x94, 0x7f,
		0xde, 0x7f, 0x7c, 0x02, 0xee, 0x91, 0x45, 0x5f, 0xdf, 0xb4, 0xf4, 0x07, 0xdd, 0x50, 0x07, 0x96,
		0xe9, 0x98, 0x5d, 0xb3, 0x4f, 0x67, 0xfb, 0x56, 0x07, 0x86, 0xfd, 0x83, 0xfd, 0x83, 0xfd, 0x4b,
		0x95, 0xfd, 0xd3, 0x7b, 0xc2, 0x70, 0x74, 0xe7, 0xc5, 0x12, 0xf7, 0x94, 0xf6, 0x8f, 0x20, 0x39,
		0x44, 0xa9, 0x4f, 0x6f, 0xed, 0xa3, 0x66, 0x0b, 0xfa, 0x0a, 0x56, 0xf5, 0xcb, 0x9b, 0x56, 0xb5,
		0xd1, 0xe8, 0x34, 0xaf, 0xaf, 0x5a, 0x57, 0x17, 0x57, 0x8d, 0x4e, 0xeb, 0xbf, 0x4d, 0xaa, 0x8c,
		0xf6, 0x49, 0xda, 0x8c, 0x4d, 0x1a, 0x97, 0x24, 0x4e, 0xec, 0x99, 0xbd, 0x86, 0x8f, 0x5f, 0x9a,
		0x4a, 0x1a, 0xd3, 0x99, 0x98, 0x1e, 0xf7, 0x53, 0xfd, 0xba, 0x76, 0xd1, 0x6a, 0xfc, 0xb7, 0x73,
		0x71, 0x75, 0x79, 0x59, 0xbb, 0x68, 0xd5, 0x3e, 0xed, 0xd2, 0xd3, 0x7f, 0xb9, 0xae, 0x7f, 0xac,
		0xef, 0xd2, 0x03, 0xd7, 0xbf, 0x7c, 0xdd, 0x29, 0xf1, 0xae, 0xdf, 0xd4, 0x6f, 0x76, 0xe9, 0x79,
		0x1b, 0x57, 0x17, 0xd5, 0xc6, 0xce, 0x3d, 0x70, 0xa7, 0xfa, 0xe5, 0xcb, 0x75, 0xed, 0x4b, 0xb5,
		0x55, 0xdb, 0xa5, 0x47, 0xbf, 0xba, 0x69, 0x7e, 0xde, 0xb5, 0xe7, 0x3d, 0xde, 0xa5, 0x07, 0x6e,
		0x5e, 0xd4, 0x76, 0x0a, 0xac, 0x9b, 0xf5, 0xaf, 0xbb, 0xf4, 0xb8, 0x37, 0xad, 0x6a, 0xab, 0x7e,
		0x91, 0xb6, 0x2a, 0x9b, 0xed, 0x9d, 0x3c, 0xf4, 0x36, 0x30, 0x07, 0xaa, 0x63, 0x0e, 0xd4, 0xbe,
		0x76, 0x27, 0x08, 0xe3, 0x3d, 0xcb, 0xc3, 0xc6, 0x6d, 0xcf, 0x21, 0xee, 0xb5, 0x61, 0xdf, 0x21,
		0x21, 0x51, 0x8a, 0x9b, 0xf0, 0x1f, 0x4f, 0xf6, 0xda, 0x88, 0x5e, 0x21, 0x7a, 0x85, 0xe8, 0x55,
		0xaa, 0xa2, 0x57, 0x77, 0xa6, 0xd9, 0x17, 0x9a, 0x41, 0x19, 0xb9, 0x2a, 0x64, 0x11, 0xce, 0x2d,
		0xf3, 0xc1, 0xd2, 0x9e, 0x9e, 0x44, 0x4f, 0x25, 0x3e, 0xce, 0xec, 0x1b, 0x19, 0x20, 0x08, 0x10,
		0x04, 0x08, 0xa6, 0x0a, 0x04, 0x71, 0xb2, 0x39, 0xcc, 0x8d, 0xe1, 0x64, 0xf3, 0x92, 0x0c, 0xe1,
		0x64, 0x33, 0x4e, 0x36, 0x73, 0x73, 0xec, 0xdd, 0xcc, 0xa0, 0x1e, 0x0c, 0xed, 0x47, 0xd1, 0x53,
		0x9f, 0x06, 0x7d, 0x7b, 0x42, 0x88, 0x55, 0xdb, 0xd1, 0xba, 0x3f, 0x09, 0x7d, 0xb3, 0x0d, 0x13,
		0xc0, 0x45, 0x83, 0x8b, 0x06, 0x17, 0x2d, 0x55, 0x2e, 0xda, 0x5c, 0x47, 0x71, 0xe6, 0x39, 0xbc,
		0x73, 0x7b, 0x5c, 0x64, 0x38, 0xf6, 0x58, 0x41, 0x83, 0x21, 0xe2, 0xc1, 0x3d, 0x8f, 0xaa, 0x8c,
		0x9e, 0x33, 0xf2, 0xbc, 0x63, 0x56, 0x2f, 0xd9, 0xbf, 0xb6, 0x47, 0xa5, 0xd3, 0x93, 0x0a, 0x9a,
		0x0a, 0xc9, 0x71, 0x9c, 0xe9, 0x47, 0xdb, 0xf6, 0xb3, 0xf2, 0xc2, 0x18, 0x3e, 0x09, 0x6b, 0xd2,
		0x2f, 0x88, 0xe1, 0xa8, 0x7c, 0x89, 0x70, 0x4c, 0xd2, 0x4a, 0xbf, 0x73, 0x7b, 0xce, 0x51, 0xf1,
		0xd7, 0x1b, 0xfd, 0x68, 0x56, 0xa5, 0xb7, 0x53, 0xfb, 0xbb, 0xd9, 0xa8, 0x5f, 0xd4, 0x5b, 0x9d,
		0xcb, 0x6f, 0x8d, 0x86, 0xc2, 0x00, 0x67, 0x6e, 0x41, 0xe0, 0xeb, 0xab, 0x6f, 0xad, 0xda, 0x75,
		0xa7, 0xda, 0xa8, 0x5d, 0xb7, 0x38, 0x26, 0xf1, 0x0a, 0x04, 0xf3, 0x3f, 0x8f, 0x5b, 0x36, 0xb8,
		0xfe, 0x95, 0x79, 0x96, 0xca, 0x78, 0x96, 0xda, 0x65, 0xeb, 0xfa, 0xaa, 0xf9, 0xdf, 0x4e, 0xa3,
		0xfa, 0xb1, 0xd6, 0xe8, 0xd4, 0x2f, 0x3f, 0xd5, 0x2f, 0xaa, 0xad, 0xab, 0x6b, 0x8e, 0xf9, 0x4e,
		0xc7, 0xf3, 0x5d, 0x5e, 0x4d, 0xa6, 0x52, 0xf6, 0x52, 0x6c, 0x23, 0x19, 0x4a, 0x19, 0xcf, 0x55,
		0x79, 0xc3, 0x0b, 0x27, 0xf5, 0x32, 0xbd, 0xd9, 0x96, 0x85, 0x88, 0xb4, 0xa2, 0xf0, 0x7c, 0x0e,
		0xbf, 0x8e, 0xb3, 0x58, 0xe3, 0x75, 0xca, 0x47, 0x5a, 0x76, 0x79, 0x6e, 0x21, 0x66, 0x42, 0x4a,
		0xda, 0x5b, 0x74, 0x4e, 0x01, 0x16, 0x91, 0xea, 0x3c, 0x57, 0x48, 0xa9, 0xfd, 0xdf, 0x92, 0x80,
		0x5e, 0x4c, 0x82, 0xdf, 0xd0, 0x6d, 0xa7, 0xea, 0x38, 0x16, 0x0d, 0xc9, 0xff, 0xaa, 0x1b, 0xb5,
		0xbe, 0x78, 0x12, 0x06, 0x95, 0xcb, 0x3a, 0x76, 0xe5, 0x17, 0x46, 0xe4, 0x89, 0x50, 0x2b, 0x57,
		0x56, 0x4f, 0x58, 0xa2, 0xf7, 0xf1, 0x85, 0xfe, 0x6c, 0xc5, 0xd0, 0x8e, 0xdd, 0x05, 0x85, 0x2b,
		0xc0, 0xb6, 0x1a, 0x64, 0x33, 0x27, 0x6f, 0x41, 0xbd, 0x7b, 0xa1, 0xf4, 0x17, 0x39, 0xdb, 0x57,
		0x2f, 0x05, 0xdc, 0xdc, 0x37, 0xbd, 0x45, 0xad, 0xeb, 0x3d, 0xa1, 0xfc, 0x66, 0xbb, 0x4d, 0x7a,
		0xc6, 0xaf, 0x2e, 0x83, 0xb1, 0x7f, 0x67, 0x68, 0x18, 0xa2, 0xaf, 0xda, 0x56, 0x57, 0xe5, 0x28,
		0x70, 0xba, 0x7e, 0x78, 0xc4, 0xfd, 0xdf, 0x7d, 0x71, 0x88, 0xfb, 0x23, 0xee, 0xff, 0x06, 0x43,
		0x40, 0xad, 0xd3, 0xd4, 0x04, 0x72, 0x50, 0xeb, 0x14, 0xb5, 0x4e, 0x51, 0xeb, 0x94, 0x98, 0x37,
		0x11, 0x87, 0x56, 0x50, 0xeb, 0x14, 0xb5, 0x4e, 0x51, 0xeb, 0x74, 0x4b, 0x80, 0x10, 0xe2, 0x86,
		0x5a, 0xa7, 0x3b, 0x9a, 0xa9, 0xf7, 0x6c, 0xe8, 0xd4, 0x27, 0xe1, 0xe6, 0x43, 0x82, 0x95, 0x83,
		0x95, 0x83, 0x95, 0xa7, 0x8a, 0x95, 0x8b, 0x67, 0x5d, 0xd5, 0x7b, 0x84, 0x8c, 0xbc, 0x82, 0x03,
		0x13, 0x21, 0x07, 0xf5, 0xf2, 0x89, 0x90, 0x6a, 0x4f, 0xcb, 0xc9, 0x72, 0xfc, 0x07, 0x26, 0xca,
		0x95, 0x4a, 0xa5, 0x88, 0x43, 0x12, 0x84, 0x4e, 0x53, 0xc6, 0x5d, 0xaf, 0x3d, 0x89, 0xf2, 0xae,
		0x54, 0x0d, 0xc3, 0x74, 0x26, 0x09, 0x5e, 0x71, 0x44, 0x5c, 0xb1, 0xbb, 0x8f, 0xe2, 0x49, 0x1b,
		0x68, 0xce, 0xe3, 0xd8, 0x24, 0xe4, 0xcd, 0x81, 0x30, 0xba, 0xae, 0x93, 0xa4, 0x1a, 0xc2, 0xf9,
		0x65, 0x5a, 0x3f, 0x55, 0xdd, 0xb0, 0x1d, 0xcd, 0xe8, 0x8a, 0xfc, 0xea, 0x17, 0xb6, 0xef, 0x9b,
		0xbc, 0x76, 0xef, 0x8c, 0xbf, 0xfd, 0xed, 0xa8, 0x8f, 0xe6, 0x60, 0xfe, 0xb7, 0xbc, 0xed, 0x68,
		0x4e, 0x9c, 0x8a, 0xf7, 0x8a, 0xed, 0x58, 0xc3, 0xae, 0x63, 0xcc, 0x6a, 0xc2, 0x78, 0x77, 0x79,
		0x39, 0xb9, 0x83, 0xfa, 0xf4, 0x06, 0x3a, 0x2b, 0x9f, 0xed, 0xd5, 0x2f, 0x3a, 0xd5, 0x7b, 0x67,
		0xfc, 0xe5, 0x6f, 0xe7, 0x7f, 0xcc, 0x81, 0xf7, 0x97, 0xce, 0x8d, 0x7b, 0x7f, 0x7b, 0x72, 0x96,
		0x3d, 0xdc, 0x15, 0x21, 0x05, 0x64, 0xec, 0xab, 0x45, 0x6d, 0xc0, 0xac, 0xd4, 0x7e, 0x3b, 0xd1,
		0xaa, 0xf5, 0x45, 0x13, 0xc0, 0xa5, 0x0d, 0xe8, 0xae, 0x2a, 0x7e, 0x3b, 0xe7, 0x8e, 0xe8, 0x8b,
		0x27, 0xe1, 0x58, 0x2f, 0xaa, 0xe6, 0x98, 0x4f, 0x7a, 0x37, 0xa2, 0xcc, 0xac, 0x38, 0x96, 0x2e,
		0xd0, 0x45, 0x55, 0xb4, 0x05, 0x4f, 0x52, 0x61, 0x5e, 0xeb, 0x90, 0xd1, 0x92, 0x78, 0x09, 0x1c,
		0xf1, 0x13, 0x36, 0x58, 0x12, 0x34, 0x96, 0x12, 0x32, 0x8c, 0x61, 0xbf, 0x1f, 0x67, 0x88, 0xe9,
		0xf6, 0x79, 0x78, 0x43, 0x17, 0x56, 0xeb, 0x62, 0xc2, 0xb1, 0x1c, 0x18, 0x8e, 0xa0, 0x4c, 0xcc,
		0xc0, 0x1b, 0x4e, 0xa1, 0x82, 0x2b, 0x53, 0xb0, 0x5f, 0x06, 0x5c, 0xe4, 0xa8, 0x8b, 0xcb, 0xba,
		0xa8, 0x21, 0xd6, 0x92, 0x69, 0x0d, 0x83, 0xad, 0xdd, 0xfb, 0x2b, 0x11, 0x60, 0x15, 0x94, 0x81,
		0xd9, 0xd7, 0xbb, 0x2f, 0xea, 0xbd, 0x69, 0xfd, 0xd2, 0xac, 0x5e, 0x98, 0xbc, 0xee, 0x85, 0xa2,
		0x4c, 0xab, 0x43, 0x04, 0x5c, 0xfd, 0xd9, 0x9e, 0x49, 0xc0, 0x9f, 0x87, 0x0d, 0x31, 0x45, 0x09,
		0x25, 0x45, 0x0f, 0x19, 0x45, 0x0d, 0x0d, 0xc5, 0x0e, 0x01, 0xc5, 0x0e, 0xf5, 0xc4, 0x0a, 0xe9,
		0xd0, 0xe2, 0xc1, 0x27, 0x3d, 0x9c, 0xc5, 0xf5, 0xcb, 0x9e, 0x2a, 0x0c, 0xc7, 0x0a, 0x9f, 0x71,
		0xb8, 0x59, 0x98, 0xa7, 0x03, 0x86, 0xf5, 0x15, 0x43, 0x89, 0x76, 0xec, 0x28, 0x6a, 0x9c, 0xa8,
		0x69, 0xfc, 0x28, 0x69, 0xdc, 0xa8, 0x28, 0x59, 0x14, 0x94, 0x2c, 0xea, 0x49, 0x12, 0xe5, 0xe4,
		0x65, 0x23, 0x61, 0x55, 0xc5, 0xbb, 0x30, 0x5e, 0x01, 0xa7, 0xf9, 0x46, 0x7a, 0x8c, 0x6a, 0x4d,
		0x31, 0x37, 0x1d, 0x62, 0x6f, 0x36, 0x50, 0x6c, 0x32, 0xd0, 0x6d, 0x2e, 0x50, 0x6d, 0x2a, 0x90,
		0x6f, 0x26, 0x90, 0x6f, 0x22, 0x90, 0x6e, 0x1e, 0xc8, 0x8d, 0x0a, 0xc5, 0xde, 0x24, 0x98, 0xb7,
		0x29, 0x14, 0xda, 0x7d, 0xbc, 0x66, 0x08, 0x9e, 0x75, 0x89, 0xb1, 0x2d, 0xa0, 0x34, 0xa7, 0xce,
		0xf3, 0xe1, 0xe1, 0x24, 0x86, 0x94, 0x9f, 0x28, 0xb4, 0xac, 0x48, 0x4d, 0x24, 0xc2, 0xa4, 0x39,
		0x22, 0x3e, 0x70, 0xc5, 0x89, 0x98, 0x45, 0xb4, 0xeb, 0x7e, 0xe0, 0x2a, 0x02, 0xb8, 0x00, 0x5c,
		0x52, 0x80, 0x2b, 0xaa, 0x9f, 0xe0, 0x0d, 0xd0, 0x35, 0x87, 0x86, 0x23, 0x2c, 0xc2, 0xd3, 0x05,
		0xde, 0x88, 0x34, 0xa9, 0x0b, 0x05, 0xaa, 0xd4, 0x85, 0x22, 0x52, 0x17, 0x12, 0x54, 0x5a, 0x36,
		0xe5, 0x65, 0x51, 0xe2, 0x78, 0xca, 0x1c, 0x53, 0xa9, 0xc9, 0x94, 0xdb, 0x1b, 0xc8, 0xec, 0x3a,
		0xc2, 0xb1, 0x67, 0xb4, 0x57, 0xf4, 0xe8, 0x8f, 0xec, 0xf9, 0x66, 0x20, 0x5a, 0x54, 0x9a, 0xfc,
		0x25, 0x32, 0x6a, 0xc1, 0x09, 0x0a, 0x7c, 0xe0, 0xc0, 0x05, 0x12, 0xec, 0x60, 0xc1, 0x0e, 0x1a,
		0xac, 0xe0, 0x41, 0x03, 0x22, 0x44, 0x60, 0x42, 0x47, 0x75, 0xde, 0x33, 0xfc, 0x24, 0xb5, 0x64,
		0x57, 0x01, 0xe0, 0x14, 0xe5, 0xb6, 0x88, 0x07, 0x67, 0xaa, 0x39, 0xeb, 0x8d, 0x8f, 0x6a, 0x5b,
		0x6f, 0x2e, 0xad, 0x94, 0x6a, 0x5b, 0xec, 0xb5, 0x69, 0xb7, 0x71, 0xb5, 0xb7, 0xbb, 0xf4, 0x56,
		0x2a, 0x8e, 0xe9, 0x0f, 0xb4, 0xee, 0x4f, 0x66, 0x87, 0xd4, 0x3f, 0x05, 0x3c, 0x52, 0x78, 0xa4,
		0xf0, 0x48, 0xe1, 0x91, 0xc2, 0x23, 0x85, 0x47, 0x0a, 0x8f, 0x14, 0x1e, 0x29, 0x3c, 0xd2, 0x6d,
		0xf1, 0x48, 0x13, 0x0d, 0xd2, 0x12, 0x1d, 0x28, 0xf0, 0xc6, 0x63, 0x48, 0x7e, 0xf4, 0x65, 0x3d,
		0xe5, 0x37, 0xe4, 0x41, 0x4d, 0xf7, 0x8a, 0x89, 0x76, 0x70, 0x72, 0xf4, 0x39, 0x94, 0x4d, 0xf7,
		0xbe, 0x3f, 0x7b, 0xb7, 0xed, 0xfb, 0xa2, 0x36, 0x7e, 0x8c, 0xc9, 0xb1, 0x84, 0xce, 0xc5, 0xec,
		0x31, 0x32, 0x78, 0xa6, 0xd8, 0x5d, 0x0e, 0xf5, 0x49, 0x38, 0x5a, 0x4f, 0x73, 0x34, 0xba, 0xcd,
		0xb9, 0x95, 0x71, 0x71, 0xba, 0x58, 0x1e, 0xe7, 0xc1, 0x16, 0x1d, 0x4e, 0x17, 0x07, 0x90, 0xb7,
		0x3b, 0xdd, 0xd0, 0xac, 0x17, 0xc2, 0xd3, 0xc5, 0x14, 0xe5, 0xbe, 0x1a, 0xc2, 0x78, 0x70, 0x0d,
		0x12, 0xfa, 0xb1, 0xa5, 0xd9, 0x27, 0xc5, 0xf1, 0x62, 0xea, 0xe2, 0xcc, 0x38, 0x57, 0xbc, 0x93,
		0x25, 0x5d, 0x88, 0xdb, 0xe0, 0xa2, 0xf7, 0x2d, 0x9c, 0x2d, 0x38, 0x5b, 0xe8, 0x7d, 0x1b, 0x6c,
		0x28, 0xf4, 0xbe, 0x85, 0xaf, 0x95, 0x09, 0x5f, 0x0b, 0xbd, 0x6f, 0xe1, 0x7e, 0xf1, 0xb8, 0x5f,
		0x03, 0xb5, 0x67, 0x77, 0x07, 0x84, 0x0e, 0xd8, 0x74, 0x40, 0xb8, 0x60, 0x70, 0xc1, 0xe0, 0x82,
		0xa5, 0xca, 0x05, 0x23, 0xd0, 0xcb, 0x45, 0xdd, 0x3c, 0x81, 0x03, 0x06, 0x07, 0x6c, 0x57, 0x1c,
		0xb0, 0xf2, 0x31, 0xd6, 0x0c, 0xee, 0x16, 0x85, 0xbb, 0x35, 0xa0, 0xf1, 0x24, 0x16, 0x1d, 0x2e,
		0x9a, 0xb3, 0x9e, 0x70, 0xb9, 0xe0, 0x72, 0xc1, 0xe5, 0x22, 0x6f, 0x2b, 0x44, 0xb6, 0x9a, 0xbb,
		0xd7, 0x55, 0x88, 0x3c, 0x9f, 0x18, 0x4d, 0x85, 0xd6, 0xb5, 0xbd, 0xc9, 0x7b, 0x17, 0x15, 0xa7,
		0xff, 0x7a, 0x7c, 0x7b, 0xa4, 0x16, 0xdb, 0x07, 0xe8, 0x36, 0x94, 0xc8, 0x6b, 0x47, 0x1b, 0xa2,
		0x50, 0x38, 0x51, 0xde, 0x79, 0x9c, 0x40, 0x5b, 0x98, 0x84, 0xda, 0xc2, 0xe4, 0xf7, 0x0b, 0x63,
		0xed, 0x3e, 0x9d, 0xa8, 0x7b, 0xa1, 0xed, 0x43, 0x01, 0xf7, 0xff, 0xd1, 0xac, 0x08, 0x52, 0x99,
		0x42, 0xa9, 0x44, 0x4f, 0xa3, 0xf4, 0x84, 0x04, 0x4c, 0xc7, 0xec, 0x9a, 0x7d, 0xe2, 0xa0, 0xc0,
		0x74, 0x50, 0x84, 0x05, 0x10, 0x16, 0x40, 0x58, 0x20, 0x7d, 0x61, 0x81, 0x89, 0x7a, 0xaa, 0xce,
		0x78, 0x74, 0x44, 0x07, 0x42, 0xbd, 0xbf, 0xa1, 0x6e, 0x38, 0xa7, 0x0c, 0xfe, 0xfe, 0x09, 0x4e,
		0x9a, 0x12, 0x0f, 0x8e, 0x93, 0xa6, 0x92, 0x39, 0xf6, 0xf2, 0xd2, 0xca, 0x38, 0x69, 0x5a, 0x3c,
		0x29, 0x61, 0x71, 0xd9, 0x5d, 0x5b, 0x9e, 0xd1, 0xb6, 0x3e, 0x3c, 0xd4, 0x13, 0x86, 0xa3, 0x3b,
		0x2f, 0xf1, 0xea, 0x04, 0x6f, 0xb4, 0xb5, 0x94, 0xf6, 0xa2, 0x3e, 0xbd, 0xd5, 0x8f, 0x9a, 0xcd,
		0x50, 0xa5, 0x63, 0xf6, 0x42, 0xea, 0xcd, 0x4e, 0xf3, 0xfa, 0xaa, 0x75, 0x75, 0x71, 0xd5, 0xa0,
		0xae, 0xd3, 0xe1, 0xe2, 0x81, 0x4d, 0x6e, 0xf1, 0x78, 0xac, 0xde, 0xea, 0x4b, 0xa9, 0x7e, 0x6b,
		0xfd, 0x8f, 0x92, 0x05, 0x4c, 0xe7, 0x7f, 0x15, 0x5f, 0xae, 0x6b, 0x78, 0x13, 0xee, 0x9b, 0xa8,
		0x5f, 0x7c, 0x6d, 0xe2, 0x55, 0x4c, 0x5e, 0xc5, 0x17, 0xbc, 0x8a, 0xd9, 0xab, 0xb8, 0xec, 0xd4,
		0xf1, 0x2e, 0x26, 0xef, 0xa2, 0x51, 0x6c, 0xe1, 0x55, 0x4c, 0xcd, 0x6a, 0xfd, 0x2b, 0xde, 0x84,
		0xfb, 0x26, 0xae, 0x6f, 0xbe, 0x43, 0x28, 0x26, 0xaf, 0xa2, 0x75, 0x81, 0x37, 0x31, 0x79, 0x13,
		0xdf, 0x3e, 0x71, 0xbc, 0x09, 0xd2, 0x11, 0xdb, 0x48, 0x91, 0x24, 0x9a, 0x3f, 0xce, 0x7e, 0x48,
		0xbf, 0xa4, 0xf6, 0x6c, 0x47, 0x1d, 0x98, 0x96, 0x43, 0xb7, 0x1f, 0xb2, 0x38, 0x28, 0xf6, 0x43,
		0xde, 0x7d, 0x5d, 0xd8, 0x0f, 0xc1, 0x7e, 0xc8, 0xe6, 0x27, 0xa2, 0xdf, 0x0f, 0x19, 0xeb, 0xa5,
		0x6a, 0x0c, 0x9f, 0xee, 0x84, 0x45, 0xb8, 0x15, 0x52, 0xc6, 0x01, 0x95, 0x28, 0x21, 0x1c, 0x1c,
		0x50, 0xe1, 0xf1, 0xb5, 0x98, 0x0f, 0xa8, 0x9c, 0x9c, 0x1c, 0xe3, 0x48, 0x30, 0x1c, 0x30, 0x12,
		0x07, 0xcc, 0xb6, 0xba, 0xf4, 0x0e, 0x98, 0x37, 0x28, 0x1c, 0x30, 0x38, 0x60, 0x70, 0xc0, 0xe0,
		0x80, 0xc1, 0x01, 0x83, 0x03, 0x06, 0x07, 0x0c, 0x0e, 0x18, 0x1c, 0xb0, 0xe5, 0x45, 0x79, 0xd2,
		0xba, 0xaa, 0xd6, 0xeb, 0x59, 0xc2, 0x26, 0xec, 0x15, 0xba, 0x38, 0x28, 0x1c, 0x30, 0x38, 0x60,
		0x70, 0xc0, 0x52, 0xe5, 0x80, 0xd1, 0xa9, 0x67, 0x8e, 0xf8, 0xfc, 0x1a, 0xf9, 0xb9, 0x35, 0x65,
		0xf1, 0xe4, 0xca, 0xea, 0x81, 0x98, 0xe2, 0xe8, 0xe0, 0xcf, 0xc9, 0x28, 0xbe, 0x7c, 0xb4, 0x29,
		0x1e, 0x9c, 0xe3, 0x80, 0x94, 0xf2, 0xcf, 0xfb, 0x8f, 0x4f, 0x70, 0x32, 0x27, 0x93, 0x76, 0x6f,
		0xd0, 0xb7, 0xd5, 0xbe, 0x76, 0x27, 0x08, 0x0f, 0xc2, 0x2c, 0x8c, 0x09, 0xab, 0x07, 0xab, 0x07,
		0xab, 0x97, 0x2e, 0xab, 0x47, 0xa5, 0x9d, 0xb9, 0x5d, 0x3c, 0x01, 0x73, 0x5c, 0x64, 0xc8, 0x69,
		0xae, 0xe0, 0x08, 0x0c, 0xf1, 0xe0, 0x5e, 0x0d, 0xd7, 0x32, 0x8e, 0x49, 0xc8, 0x0b, 0xf6, 0xb0,
		0x06, 0x7d, 0xfc, 0x6b, 0x7b, 0x54, 0x3a, 0x3d, 0xa9, 0xa0, 0xc1, 0x9a, 0x9c, 0xb0, 0x10, 0xfd,
		0x68, 0xdb, 0x7e, 0x0e, 0x46, 0x18, 0xc3, 0x27, 0x61, 0x4d, 0x7a, 0xa7, 0x31, 0x9c, 0x83, 0x21,
		0x3c, 0x00, 0xa6, 0xd4, 0x8c, 0xe1, 0x13, 0x7d, 0x94, 0xb6, 0x65, 0xde, 0x38, 0x96, 0x6e, 0x3c,
		0xb0, 0x40, 0x81, 0x72, 0x34, 0x49, 0x72, 0xfc, 0x5e, 0xea, 0xd4, 0xfe, 0x6e, 0x36, 0xea, 0x17,
		0xf5, 0x56, 0xe7, 0xf2, 0x5b, 0x83, 0xfa, 0x84, 0x8d, 0x3b, 0x55, 0x61, 0x3c, 0xd5, 0xf5, 0xd5,
		0xb7, 0x56, 0xed, 0xba, 0x53, 0x6d, 0xd4, 0xae, 0x5b, 0x1c, 0x93, 0x14, 0xa7, 0xcf, 0x53, 0xe6,
		0x7f, 0x9e, 0x63, 0x77, 0xaa, 0xaf, 0xcc, 0xb3, 0x54, 0xc6, 0xb3, 0xd4, 0x2e, 0x5b, 0xd7, 0x57,
		0xcd, 0xff, 0x76, 0x1a, 0xd5, 0x8f, 0xb5, 0x46, 0xa7, 0x7e, 0xf9, 0xa9, 0x7e, 0x51, 0x6d, 0x5d,
		0x5d, 0x73, 0xcc, 0x77, 0x3a, 0x9e, 0xef, 0xf2, 0x6a, 0x32, 0x15, 0x6d, 0xde, 0x2b, 0xb1, 0x8d,
		0x54, 0x5a, 0x66, 0xdd, 0x70, 0x78, 0xd4, 0x62, 0xd3, 0x0b, 0x27, 0xf5, 0x32, 0xbd, 0xd9, 0x96,
		0x85, 0xe8, 0x3c, 0x77, 0xcc, 0x31, 0x87, 0x5f, 0xc7, 0x59, 0xac, 0xf1, 0x3a, 0xe5, 0x3b, 0xcf,
		0x15, 0x19, 0x26, 0xf2, 0x84, 0x94, 0xbc, 0xa1, 0xd3, 0x84, 0x02, 0x2c, 0x22, 0xd5, 0x79, 0xae,
		0x90, 0x52, 0xfb, 0x8f, 0xed, 0xaa, 0x98, 0x61, 0x3b, 0xa7, 0x4b, 0x1c, 0xb3, 0x73, 0xba, 0x08,
		0xd8, 0x21, 0x60, 0x87, 0x80, 0x5d, 0x0a, 0x03, 0x76, 0xb1, 0x55, 0x33, 0x87, 0x2e, 0x02, 0x04,
		0x31, 0x07, 0xe4, 0x08, 0x31, 0xb8, 0xc4, 0xbc, 0x39, 0x42, 0x15, 0x2c, 0xd9, 0x76, 0x39, 0x5c,
		0x31, 0x01, 0x5a, 0xfc, 0x76, 0x2c, 0x4d, 0x1d, 0x1a, 0xb6, 0xa3, 0xdd, 0xf5, 0x89, 0xa0, 0xda,
		0x12, 0xf7, 0xc2, 0x12, 0x46, 0x37, 0xd5, 0xdb, 0x17, 0xd7, 0x9f, 0x2f, 0x4e, 0x4a, 0xe5, 0xe2,
		0x79, 0xee, 0xeb, 0xb0, 0xef, 0xe8, 0xb3, 0x5a, 0x68, 0xb9, 0x86, 0x76, 0x27, 0xfa, 0xb9, 0x9b,
		0x5f, 0xba, 0xd3, 0x7d, 0xd4, 0x8d, 0x87, 0xdc, 0xfe, 0xd7, 0x66, 0xe3, 0xe6, 0x60, 0xf6, 0xb5,
		0xa3, 0x75, 0x7f, 0xfe, 0x30, 0xdc, 0xbe, 0xf3, 0xe7, 0xb9, 0xbf, 0x6a, 0x7f, 0x37, 0xff, 0xca,
		0x7d, 0xd6, 0x45, 0xbf, 0x97, 0xbb, 0x16, 0x86, 0xf6, 0x24, 0x7a, 0x39, 0xc7, 0xcc, 0xfd, 0xd5,
		0xb2, 0xb4, 0xfb, 0x7b, 0xbd, 0x9b, 0xbb, 0xe8, 0x6b, 0xb6, 0x3d, 0xfd, 0x01, 0x65, 0xc8, 0x8b,
		0xd8, 0x4f, 0x5a, 0xe7, 0x2f, 0xcd, 0x57, 0x90, 0x58, 0x9b, 0xb9, 0x5c, 0xa7, 0xb5, 0x2e, 0x94,
		0xe4, 0x25, 0x06, 0x32, 0x51, 0x51, 0xc1, 0x3d, 0x89, 0x48, 0xa8, 0x54, 0x0d, 0xc3, 0x74, 0x26,
		0x71, 0xe9, 0x38, 0x2a, 0xa5, 0xd8, 0xdd, 0x47, 0xf1, 0xa4, 0x0d, 0x34, 0xb7, 0x75, 0xba, 0x92,
		0x37, 0x07, 0xc2, 0xe8, 0xba, 0xc4, 0x4d, 0x35, 0x84, 0xf3, 0xcb, 0xb4, 0x7e, 0xaa, 0xfa, 0x18,
		0x65, 0x8d, 0xae, 0xc8, 0xaf, 0x7e, 0x61, 0xfb, 0xbe, 0xc9, 0x6b, 0xf7, 0x8e, 0x9d, 0x1f, 0x98,
		0x7d, 0xbd, 0xfb, 0xa2, 0xde, 0x9b, 0xd6, 0x2f, 0xcd, 0xea, 0xe9, 0xc6, 0x83, 0xff, 0x1b, 0x55,
		0x8c, 0x25, 0x35, 0x6f, 0x3b, 0x9a, 0x13, 0x47, 0x59, 0x15, 0xdb, 0xb1, 0x86, 0x5d, 0xc7, 0x98,
		0x82, 0xe3, 0x95, 0x77, 0xf3, 0x97, 0x93, 0x1b, 0xab, 0x4f, 0xef, 0xab, 0xb3, 0xf2, 0xd9, 0x5e,
		0xfd, 0xa2, 0x53, 0xbd, 0x77, 0xec, 0x4e, 0xd3, 0xbd, 0xcd, 0xcf, 0xde, 0x5d, 0xfa, 0xbe, 0x70,
		0xf5, 0xab, 0x73, 0xe3, 0xde, 0xf5, 0x9e, 0x1c, 0x19, 0x09, 0x77, 0x45, 0x48, 0x69, 0x1a, 0x83,
		0x67, 0xd4, 0xe6, 0xcf, 0x4a, 0xed, 0xb7, 0x13, 0xad, 0x68, 0x55, 0x34, 0x69, 0x5d, 0x04, 0x7a,
		0xb3, 0xab, 0x8a, 0xdf, 0xce, 0xb9, 0x23, 0xfa, 0xe2, 0x49, 0x38, 0xd6, 0x8b, 0xaa, 0x39, 0xe6,
		0x93, 0x1e, 0x95, 0x5d, 0xad, 0xc0, 0xbb, 0xeb, 0xaf, 0x45, 0xd5, 0xca, 0x05, 0x1c, 0x57, 0x98,
		0xd7, 0x3a, 0x64, 0xa6, 0x9e, 0xd2, 0xd0, 0x6d, 0xa7, 0xea, 0x38, 0x56, 0x24, 0xbc, 0x18, 0x33,
		0xb2, 0xda, 0xf8, 0x6d, 0x1b, 0x51, 0xdd, 0xe5, 0x31, 0x41, 0x58, 0x18, 0x81, 0xa6, 0x31, 0xab,
		0x72, 0x65, 0xf5, 0x84, 0x25, 0x7a, 0x1f, 0xc7, 0x62, 0x6c, 0x0c, 0xfb, 0xfd, 0x38, 0x43, 0x7c,
		0xb3, 0x85, 0x15, 0xc9, 0x5f, 0x0f, 0xab, 0x75, 0x31, 0xb1, 0x3b, 0x51, 0xcc, 0x8e, 0xa0, 0x63,
		0x89, 0xa0, 0x74, 0x38, 0xed, 0x0b, 0xae, 0x79, 0xc1, 0x7e, 0x19, 0x50, 0x22, 0xa2, 0x4a, 0x82,
		0x14, 0x09, 0x08, 0xb1, 0xd2, 0xcc, 0x2b, 0x1c, 0x6c, 0x2d, 0xdf, 0x5f, 0x99, 0x00, 0xab, 0xa2,
		0xb8, 0x2e, 0x89, 0x6a, 0xbf, 0x18, 0x5d, 0xd1, 0x0b, 0xbc, 0x26, 0x1e, 0x3d, 0x5b, 0xba, 0x3a,
		0xa0, 0x0c, 0xcc, 0x72, 0x01, 0x02, 0xfe, 0x3c, 0x6c, 0x58, 0x3d, 0x4a, 0xf8, 0x3c, 0x7a, 0x98,
		0x3c, 0x2a, 0xcd, 0x8b, 0x1d, 0xf6, 0x8e, 0xcd, 0xd1, 0x62, 0x85, 0xb1, 0x69, 0x51, 0xe1, 0x93,
		0x6e, 0x85, 0x84, 0x03, 0xd7, 0x23, 0x0d, 0xfd, 0xce, 0x97, 0xa4, 0x36, 0xec, 0xfb, 0x0e, 0x27,
		0xb6, 0x7e, 0xf1, 0x0d, 0xb9, 0x27, 0x1b, 0x67, 0x17, 0x28, 0xfe, 0xae, 0x4f, 0xdc, 0xe8, 0x05,
		0xd9, 0xae, 0x0e, 0x59, 0x28, 0x82, 0x64, 0xd7, 0x86, 0x97, 0x9c, 0x84, 0x55, 0x03, 0xef, 0x42,
		0xb7, 0x07, 0xde, 0xd0, 0xd0, 0xbb, 0x9a, 0x1d, 0x3d, 0x41, 0x63, 0xb9, 0xa3, 0xde, 0x6c, 0xb4,
		0x88, 0x2f, 0xfb, 0x93, 0xb8, 0xd7, 0x86, 0x7d, 0x27, 0x56, 0x64, 0x51, 0x71, 0x1d, 0xd3, 0x68,
		0xbc, 0x33, 0xe2, 0xa9, 0x9e, 0x98, 0x5b, 0xc1, 0xb1, 0xb7, 0x80, 0x29, 0xb6, 0x7e, 0xe9, 0xb6,
		0x7c, 0xa9, 0x42, 0x98, 0xe4, 0x5b, 0xbc, 0xe4, 0xf1, 0x49, 0xd2, 0x2d, 0x5d, 0xb9, 0x71, 0xb1,
		0xd8, 0x5b, 0xb7, 0x9e, 0xbc, 0xdc, 0x99, 0x66, 0x5f, 0x68, 0x71, 0xd2, 0x3e, 0x3d, 0x1b, 0x59,
		0x90, 0x15, 0x2c, 0xfa, 0x10, 0x09, 0x2c, 0xcb, 0xa4, 0x60, 0x59, 0x06, 0x58, 0x02, 0x2c, 0x01,
		0x96, 0x00, 0xcb, 0xb4, 0x83, 0xe5, 0xae, 0xc5, 0xf8, 0x16, 0x83, 0x13, 0x91, 0xb7, 0x5e, 0x88,
		0x43, 0x3d, 0xee, 0x5e, 0xca, 0x8d, 0x7b, 0x4b, 0x51, 0xf6, 0x55, 0x10, 0xb7, 0xcb, 0x47, 0x08,
		0x39, 0xf1, 0xae, 0x23, 0x59, 0xb4, 0x6e, 0x2f, 0xc6, 0x4a, 0x85, 0x5d, 0x21, 0x86, 0x95, 0x51,
		0x02, 0x45, 0x1b, 0x09, 0x17, 0xe1, 0xed, 0x17, 0xbf, 0xf9, 0x75, 0xbe, 0xf1, 0x2a, 0x95, 0xee,
		0xcc, 0x29, 0x79, 0xfb, 0x15, 0x7a, 0x76, 0x60, 0xfa, 0xfb, 0x77, 0x16, 0x27, 0x58, 0xec, 0x28,
		0xb0, 0x47, 0x14, 0xc6, 0xf3, 0x59, 0xf4, 0x70, 0x0c, 0xe1, 0x8c, 0x57, 0x2c, 0xc8, 0x42, 0x85,
		0xf4, 0x66, 0x22, 0x7b, 0x2d, 0x91, 0xbd, 0x93, 0x55, 0x2f, 0x64, 0xf6, 0x6c, 0xcc, 0x6a, 0x16,
		0x34, 0x46, 0xa3, 0xf4, 0x84, 0xdd, 0xb5, 0xf4, 0x41, 0x28, 0xc8, 0xf4, 0xd6, 0x6a, 0xf1, 0xe2,
		0x70, 0x51, 0xf5, 0xa3, 0x94, 0x46, 0xd5, 0x83, 0x8b, 0xde, 0xf6, 0x45, 0xd6, 0x03, 0x8b, 0x26,
		0x8f, 0xed, 0x0e, 0xed, 0xf4, 0x2e, 0xc4, 0xc9, 0xad, 0x90, 0xfb, 0x62, 0x5e, 0x39, 0x21, 0x89,
		0x3b, 0x58, 0xf7, 0x5a, 0xbf, 0x7f, 0xa7, 0x75, 0x7f, 0xfa, 0x0c, 0x57, 0x78, 0xbd, 0xdb, 0x3c,
		0x14, 0xb4, 0x10, 0x5a, 0x98, 0x90, 0x16, 0xae, 0xca, 0xa2, 0x1a, 0xae, 0x47, 0xa1, 0xa7, 0x93,
		0x21, 0x72, 0xca, 0x95, 0xa6, 0xe7, 0x17, 0x7a, 0x2f, 0xee, 0xdc, 0xef, 0x06, 0xbe, 0xf1, 0x8f,
		0x8b, 0xff, 0x36, 0xf1, 0x91, 0x96, 0x7e, 0x3d, 0x7e, 0x34, 0xd2, 0xd7, 0x1b, 0x23, 0x41, 0x5a,
		0xf9, 0xf5, 0x28, 0xc2, 0x97, 0xed, 0x8a, 0xb1, 0x2b, 0x77, 0x78, 0x98, 0x77, 0x5e, 0x06, 0x22,
		0xf7, 0xef, 0xdc, 0x5f, 0xe3, 0x77, 0xa2, 0xbb, 0x9d, 0x9d, 0xed, 0xf3, 0xc6, 0xf1, 0xf7, 0xeb,
		0xcf, 0x7f, 0x25, 0xbc, 0x59, 0xe7, 0xbe, 0x8b, 0x34, 0x6d, 0xd5, 0xbd, 0xfd, 0xb2, 0xb8, 0x83,
		0x20, 0x81, 0x7f, 0xdd, 0x96, 0x68, 0xf0, 0xa6, 0xf4, 0x29, 0xa4, 0x6d, 0x73, 0xaf, 0x82, 0x19,
		0x83, 0x19, 0x83, 0x33, 0xf9, 0xc6, 0x9c, 0x96, 0x39, 0x74, 0x84, 0xda, 0xd3, 0x6d, 0x47, 0x37,
		0x1e, 0x86, 0xba, 0xfd, 0x28, 0xac, 0xf0, 0xaa, 0xb6, 0x6e, 0x10, 0x68, 0x1e, 0x34, 0x2f, 0x21,
		0xcd, 0x8b, 0x2e, 0x8e, 0xb9, 0x88, 0xd5, 0xf2, 0xa2, 0x55, 0xc5, 0x8b, 0xe1, 0x52, 0x85, 0x06,
		0x17, 0x3f, 0xc8, 0x44, 0xb8, 0x36, 0x6e, 0xc9, 0x57, 0x65, 0xff, 0xf6, 0x48, 0x3d, 0x6b, 0xbf,
		0xde, 0x16, 0xd4, 0xb3, 0xb6, 0xfb, 0xd7, 0x3f, 0x85, 0x0f, 0xc7, 0xa3, 0xf1, 0xe7, 0x93, 0xe9,
		0xe7, 0xd2, 0xe8, 0xb5, 0x7c, 0x7b, 0xa4, 0x96, 0xa6, 0x1f, 0x8f, 0x47, 0xaf, 0xe5, 0x93, 0x85,
		0xcf, 0xc5, 0xf1, 0xe7, 0xf1, 0x17, 0xc5, 0xc9, 0x17, 0xe3, 0x4f, 0xc7, 0xb7, 0x47, 0xea, 0x49,
		0xfb, 0xe0, 0x7c, 0xdd, 0xe0, 0xa7, 0xee, 0xe0, 0xc7, 0xd3, 0xcf, 0x67, 0xa3, 0xd7, 0xd2, 0xed,
		0x51, 0x61, 0xfa, 0xe9, 0x74, 0xf4, 0x5a, 0x2a, 0xde, 0x1e, 0xa9, 0xa7, 0xd3, 0xcf, 0x95, 0xf1,
		0xe7, 0xb3, 0xdb, 0x23, 0xef, 0xe7, 0x65, 0xf7, 0x8b, 0xd2, 0xc2, 0x4f, 0x4e, 0x26, 0xdf, 0x9c,
		0xb9, 0x33, 0x7a, 0x37, 0xec, 0x7e, 0x35, 0xbe, 0xeb, 0xf2, 0xfc, 0xae, 0x27, 0xdf, 0x55, 0xe6,
		0xb3, 0x15, 0xbd, 0xef, 0x16, 0xe6, 0xf4, 0xbe, 0x9a, 0x8c, 0x78, 0x10, 0xde, 0xbf, 0x6b, 0x47,
		0x59, 0x46, 0x8a, 0xf2, 0xbd, 0xca, 0x3f, 0xfb, 0x58, 0xcd, 0xb7, 0x57, 0xf3, 0x20, 0x42, 0xb9,
		0xe2, 0x36, 0xe7, 0xa6, 0x25, 0x00, 0xa7, 0xfd, 0x5a, 0xf0, 0x16, 0xb0, 0x38, 0x97, 0xc4, 0xd7,
		0xe2, 0xc9, 0x64, 0xc9, 0xf6, 0x7f, 0xfc, 0x38, 0x0c, 0x7b, 0xcd, 0xc1, 0x9f, 0xe3, 0xd1, 0x39,
		0xa7, 0x2e, 0x64, 0x1c, 0x15, 0xb2, 0xf8, 0xca, 0xa1, 0xba, 0xa9, 0xf4, 0x15, 0x32, 0x66, 0x00,
		0x80, 0x0a, 0x6f, 0xfa, 0x0a, 0x58, 0x4d, 0xa9, 0x80, 0x93, 0xca, 0xd8, 0x9e, 0xcb, 0xd5, 0x2c,
		0x55, 0xef, 0x45, 0x8c, 0x3a, 0xb8, 0x97, 0x22, 0xd6, 0x80, 0x58, 0x43, 0x42, 0xb1, 0x86, 0x9e,
		0xe9, 0x38, 0xa2, 0xa7, 0xfe, 0x3f, 0x43, 0xad, 0x17, 0x29, 0xd4, 0x17, 0x6e, 0x8f, 0x2a, 0x12,
		0x0a, 0x4b, 0x73, 0x82, 0x83, 0xaf, 0x5e, 0x3b, 0xcc, 0x63, 0xc7, 0xb1, 0x40, 0x12, 0xfd, 0xd1,
		0x30, 0x08, 0x2e, 0x13, 0x61, 0x9d, 0x30, 0xb2, 0xed, 0xc9, 0xb5, 0x7b, 0x15, 0x70, 0x15, 0xb8,
		0x1a, 0x0b, 0x57, 0xbf, 0x6a, 0x46, 0x4f, 0x73, 0x4c, 0xeb, 0x25, 0xc4, 0xf9, 0xe7, 0xe8, 0x58,
		0xac, 0xf7, 0x84, 0xe1, 0xe8, 0xce, 0x4b, 0xc4, 0x7c, 0x81, 0x10, 0xe5, 0x29, 0x94, 0xfa, 0x74,
		0xaa, 0x8f, 0x9a, 0x1d, 0xe3, 0x5c, 0xee, 0x65, 0xad, 0xf5, 0x9f, 0xab, 0xeb, 0xff, 0xed, 0xd4,
		0x2f, 0x6f, 0x5a, 0xd5, 0xcb, 0x8b, 0x5a, 0xa7, 0xf5, 0xdf, 0x66, 0x2d, 0xac, 0xc8, 0xb8, 0x25,
		0xf4, 0xa4, 0x16, 0x6a, 0x99, 0xdd, 0xfe, 0xa7, 0xda, 0xe7, 0xea, 0xb7, 0x46, 0xcb, 0xbb, 0x7d,
		0x45, 0xc6, 0x79, 0xa6, 0x98, 0xf7, 0xdc, 0x28, 0x36, 0x8e, 0xb3, 0x71, 0x9f, 0xcd, 0x62, 0x33,
		0x1b, 0x37, 0xfa, 0xfd, 0xa6, 0x9e, 0x89, 0x1b, 0x3d, 0xfe, 0x7e, 0xfd, 0x99, 0xbd, 0x66, 0x0f,
		0x35, 0xd0, 0x6e, 0x75, 0x16, 0x7d, 0xa0, 0x64, 0xf2, 0x1c, 0x69, 0x1e, 0xfd, 0xd4, 0xf9, 0xe0,
		0xc9, 0xa4, 0x37, 0x84, 0x5b, 0x74, 0x54, 0x1d, 0x98, 0xfa, 0xa4, 0x08, 0x52, 0xf0, 0xa4, 0xfa,
		0x95, 0x4b, 0x91, 0x5f, 0x8f, 0xfc, 0xfa, 0xb7, 0xc5, 0x2b, 0xbc, 0x4b, 0xef, 0x1b, 0x61, 0x3b,
		0xea, 0xd7, 0xc0, 0xbd, 0xcf, 0x4e, 0x1d, 0x9b, 0x80, 0xa7, 0x8d, 0xde, 0x12, 0xe1, 0x60, 0x06,
		0x23, 0x86, 0x00, 0x47, 0x16, 0xe4, 0x38, 0x02, 0x4d, 0x23, 0xd8, 0x71, 0x05, 0x9c, 0x4c, 0xd0,
		0xc9, 0x04, 0x9e, 0x4c, 0xf0, 0xa3, 0xb9, 0x73, 0xd2, 0x2a, 0xda, 0xac, 0x62, 0x73, 0x98, 0x80,
		0x78, 0x60, 0xc0, 0x0f, 0x1e, 0x2a, 0x8f, 0x19, 0xe2, 0x21, 0x53, 0x25, 0x0a, 0x95, 0xa2, 0x55,
		0x2d, 0x2a, 0x15, 0x23, 0x57, 0x35, 0x72, 0x95, 0x23, 0x57, 0xbd, 0x68, 0x2a, 0x18, 0x83, 0x30,
		0xe6, 0x68, 0x4b, 0x20, 0x44, 0xde, 0x47, 0xf7, 0x19, 0xa2, 0x53, 0x54, 0x40, 0xe0, 0xe0, 0x92,
		0xcb, 0x1c, 0xca, 0xf7, 0x4d, 0x3e, 0x92, 0xf7, 0x40, 0x4e, 0x3f, 0xa7, 0xf7, 0xd4, 0x74, 0x6f,
		0x72, 0xf5, 0x8b, 0x40, 0xfc, 0x34, 0xfa, 0x32, 0x87, 0x58, 0x62, 0x12, 0x93, 0x44, 0x68, 0x8a,
		0x22, 0x9a, 0x20, 0x78, 0x71, 0xf0, 0xe2, 0xc2, 0x02, 0x5b, 0x64, 0x93, 0xe1, 0xad, 0x7b, 0x5f,
		0x68, 0xf7, 0xe1, 0x76, 0x21, 0x7c, 0x36, 0xa2, 0x12, 0x2d, 0xe7, 0xea, 0x71, 0x7a, 0x86, 0x6c,
		0x7a, 0x06, 0x71, 0x9d, 0xde, 0xa5, 0x00, 0x5b, 0x84, 0xd1, 0x0b, 0x18, 0x23, 0xdb, 0xf8, 0x8a,
		0xe7, 0x43, 0x80, 0x0d, 0x02, 0x47, 0xb6, 0x8b, 0x0d, 0xce, 0x64, 0x3b, 0x3e, 0x05, 0xf4, 0x46,
		0x8a, 0xc7, 0xfb, 0x0a, 0xe0, 0x7d, 0xe0, 0x7d, 0xd9, 0xe2, 0x7d, 0x51, 0x95, 0x2f, 0x6e, 0xac,
		0x92, 0x36, 0x76, 0x49, 0xac, 0x90, 0x64, 0x8a, 0x49, 0xa9, 0xa0, 0x3c, 0x8a, 0x4a, 0xad, 0xb0,
		0x6c, 0x8a, 0xcb, 0xa6, 0xc0, 0x6c, 0x8a, 0x1c, 0x4f, 0xa1, 0x63, 0x2a, 0x36, 0x99, 0x82, 0xfb,
		0xac, 0x6d, 0x9c, 0x98, 0xeb, 0xbb, 0x06, 0x38, 0x7a, 0xec, 0x95, 0x38, 0x16, 0xcb, 0x06, 0x05,
		0x1c, 0x90, 0xc0, 0x0b, 0x0d, 0x5c, 0x10, 0xc1, 0x0e, 0x15, 0xec, 0x90, 0xc1, 0x0e, 0x1d, 0x34,
		0x10, 0x42, 0x04, 0x25, 0xf1, 0x89, 0xff, 0xbb, 0x72, 0x1b, 0x3b, 0x76, 0xbc, 0xd1, 0x11, 0x38,
		0x4d, 0x49, 0x57, 0x46, 0x82, 0x35, 0x18, 0x2b, 0x49, 0x57, 0xf4, 0x84, 0x41, 0x69, 0xae, 0x67,
		0x2b, 0xb0, 0x30, 0x36, 0x70, 0x18, 0x38, 0x0c, 0x1c, 0xde, 0x49, 0x1c, 0x1e, 0xea, 0x86, 0x53,
		0x28, 0x33, 0xe0, 0x70, 0x99, 0x70, 0x48, 0xda, 0xae, 0xfd, 0xb3, 0xff, 0x68, 0x75, 0x2a, 0xc7,
		0xd5, 0xc5, 0xdf, 0x1b, 0x9c, 0xa9, 0x9b, 0xbf, 0x37, 0x3e, 0x77, 0x8b, 0xf8, 0xb9, 0xec, 0x71,
		0xb5, 0x8a, 0x27, 0x56, 0xbb, 0xe5, 0xa5, 0x65, 0xe8, 0xf6, 0xef, 0x5b, 0xda, 0xf2, 0xc9, 0xc9,
		0xf1, 0x09, 0x96, 0x57, 0x0a, 0x36, 0xd3, 0x8f, 0xd6, 0xde, 0x22, 0xcf, 0xd3, 0xa1, 0xb4, 0x38,
		0x51, 0x0e, 0xd1, 0xc1, 0xdb, 0x84, 0xb7, 0x09, 0x6f, 0x73, 0xcb, 0xbc, 0xcd, 0x68, 0x07, 0x12,
		0x03, 0x53, 0x7f, 0x42, 0xd3, 0x19, 0xef, 0x40, 0x63, 0xe0, 0x17, 0x52, 0xbb, 0xfc, 0xd4, 0xbc,
		0xaa, 0x5f, 0xb6, 0xa2, 0x1c, 0x74, 0x0c, 0xe6, 0x55, 0xd8, 0xe4, 0x7e, 0x33, 0x8f, 0xef, 0xbc,
		0xf4, 0x5a, 0x1a, 0x57, 0x17, 0xd5, 0x86, 0x92, 0x05, 0xbf, 0x90, 0xf9, 0x45, 0x5c, 0xd7, 0xbe,
		0x5e, 0xb5, 0x6a, 0x4a, 0xca, 0x5d, 0xa8, 0x76, 0xda, 0x80, 0x30, 0xe3, 0x3b, 0x39, 0x31, 0x13,
		0x49, 0x7d, 0xe3, 0x49, 0x4f, 0x2c, 0xf5, 0x72, 0x91, 0xbc, 0xbf, 0xe5, 0x49, 0x76, 0x7b, 0x73,
		0x72, 0x73, 0x4f, 0x6b, 0xb3, 0xc7, 0xf0, 0xfe, 0x16, 0x29, 0x1d, 0x95, 0x4e, 0xb8, 0x62, 0x08,
		0x16, 0xe9, 0xae, 0x1e, 0xc3, 0x6e, 0x1e, 0x91, 0x3f, 0x8f, 0x8d, 0xfc, 0xf4, 0xf9, 0xe9, 0xd8,
		0xc8, 0x4f, 0xc8, 0xff, 0x26, 0x48, 0xbf, 0xdd, 0xe8, 0x6b, 0x57, 0x08, 0xc6, 0xf2, 0xa7, 0xe7,
		0x2e, 0xe2, 0x49, 0x06, 0x31, 0xb6, 0x6f, 0x76, 0xb5, 0x3e, 0x1d, 0xba, 0x4e, 0x86, 0x43, 0x82,
		0x14, 0x70, 0x15, 0xb8, 0x9a, 0xa6, 0x04, 0x29, 0xa2, 0x4c, 0x48, 0x9f, 0x18, 0x93, 0xf9, 0xc8,
		0x84, 0x8a, 0x4f, 0x0e, 0x00, 0x1c, 0x40, 0xc0, 0x0b, 0x08, 0x5c, 0xc0, 0xc0, 0x0e, 0x10, 0xec,
		0x40, 0xc1, 0x0e, 0x18, 0xc4, 0x71, 0x01, 0x22, 0xc9, 0xa5, 0x02, 0x12, 0x6f, 0x40, 0xdd, 0x70,
		0x84, 0x75, 0xaf, 0x75, 0x19, 0x23, 0x8d, 0xf3, 0x29, 0x88, 0x97, 0x9e, 0x76, 0x1f, 0x86, 0x0d,
		0x6e, 0x38, 0x61, 0x67, 0x1d, 0xfc, 0xe8, 0xf7, 0x0a, 0xc3, 0x2e, 0x34, 0x13, 0x02, 0x49, 0x43,
		0x22, 0x69, 0x88, 0xb4, 0x09, 0x99, 0xf4, 0xfb, 0xb4, 0x07, 0x53, 0x89, 0x83, 0xd4, 0xf4, 0xbb,
		0x39, 0x8c, 0xec, 0x92, 0x93, 0x6d, 0x6e, 0x64, 0x9f, 0x79, 0x57, 0x2c, 0xce, 0x3d, 0x80, 0xb4,
		0x57, 0xbf, 0x98, 0x7e, 0x0e, 0xde, 0xb3, 0x52, 0xbe, 0xe0, 0x10, 0x0a, 0x8d, 0x62, 0xeb, 0x8e,
		0xa0, 0x4c, 0xfd, 0xf7, 0xc9, 0xcb, 0x6c, 0x02, 0x18, 0x22, 0x19, 0x86, 0x88, 0xde, 0x0f, 0x86,
		0x35, 0x4a, 0xad, 0x9f, 0x0c, 0x93, 0xc4, 0x94, 0xd6, 0xba, 0x8a, 0x32, 0x65, 0x86, 0xa1, 0x79,
		0xd2, 0x5c, 0x67, 0xff, 0xf1, 0xe8, 0x68, 0x8e, 0x3b, 0xed, 0xd5, 0x9b, 0x84, 0x39, 0xfd, 0xd5,
		0x9b, 0x47, 0x56, 0x9e, 0xe4, 0x5c, 0x66, 0xb9, 0xf3, 0x25, 0x99, 0xd4, 0x78, 0x59, 0x04, 0x18,
		0xd3, 0x63, 0x7d, 0x22, 0xc0, 0x98, 0x26, 0xbb, 0x0b, 0x62, 0xb0, 0x97, 0x8d, 0x51, 0xdb, 0xa9,
		0xb6, 0x61, 0x31, 0xfa, 0xcd, 0x07, 0x9e, 0xc3, 0x12, 0xf7, 0xc2, 0x9a, 0x9e, 0xfe, 0xca, 0x9c,
		0x51, 0xf0, 0x52, 0x98, 0x3e, 0x5f, 0x94, 0xcb, 0xc5, 0x52, 0xee, 0x66, 0x92, 0x59, 0x91, 0x2b,
		0x1e, 0x16, 0x0f, 0x0b, 0x1f, 0x72, 0xd7, 0x9f, 0x2f, 0x4a, 0x95, 0x72, 0xc1, 0xfb, 0xfa, 0xf8,
		0xb0, 0x78, 0x58, 0x54, 0x18, 0x11, 0x8a, 0xd9, 0x59, 0x5d, 0xe7, 0xb4, 0xce, 0xd7, 0x8f, 0x19,
		0x3b, 0x64, 0xf9, 0xaf, 0x6b, 0xfd, 0xd8, 0x50, 0x0b, 0x0c, 0x54, 0xdb, 0x95, 0x08, 0x42, 0x5f,
		0xbb, 0x13, 0x7d, 0xf5, 0xae, 0x6f, 0x76, 0x7f, 0xaa, 0xe6, 0xfd, 0xbd, 0x2d, 0x1c, 0xe6, 0x88,
		0xc2, 0x9a, 0x09, 0x11, 0x61, 0x40, 0x84, 0x01, 0x11, 0x06, 0x44, 0x18, 0x10, 0x61, 0x40, 0x84,
		0x01, 0x11, 0x06, 0x44, 0x18, 0x10, 0x61, 0x40, 0x84, 0x01, 0x11, 0x86, 0x2d, 0x8c, 0x30, 0xf8,
		0x98, 0x66, 0x21, 0xf7, 0xd7, 0xf7, 0x8f, 0x57, 0x7f, 0x21, 0xa0, 0x90, 0xcd, 0x80, 0xc2, 0xc6,
		0xf5, 0x04, 0x66, 0xed, 0x62, 0xfc, 0xc0, 0xd6, 0xff, 0x5f, 0x21, 0x31, 0x7a, 0xe0, 0x4e, 0x87,
		0xd8, 0x01, 0x62, 0x07, 0x88, 0x1d, 0x20, 0x76, 0x80, 0xd8, 0x01, 0x62, 0x07, 0x88, 0x1d, 0x20,
		0x76, 0x80, 0xd8, 0x01, 0x62, 0x07, 0x88, 0x1d, 0xec, 0x4c, 0xec, 0xe0, 0x06, 0xb1, 0x83, 0xad,
		0x8a, 0x1d, 0xdc, 0x20, 0x76, 0xb0, 0x1b, 0xb1, 0x83, 0xe1, 0x9d, 0x84, 0xd3, 0x74, 0x4b, 0xb3,
		0x20, 0x52, 0x80, 0x03, 0x75, 0x3b, 0x1b, 0x24, 0xc0, 0x81, 0x3a, 0x7a, 0x69, 0xdf, 0xf6, 0x03,
		0x75, 0xb7, 0xf3, 0x03, 0x75, 0xff, 0xee, 0x0e, 0x2d, 0x4b, 0x18, 0xce, 0xfe, 0x41, 0xfe, 0xf0,
		0x30, 0xef, 0xfd, 0xa2, 0x3d, 0xbd, 0x64, 0x11, 0x67, 0xed, 0x35, 0xdf, 0x79, 0x23, 0xf7, 0xc4,
		0xef, 0xd4, 0x9e, 0xcd, 0x4b, 0xd5, 0xd9, 0x75, 0xe2, 0xda, 0x72, 0x73, 0xbb, 0x9b, 0x82, 0x1a,
		0x73, 0x6e, 0xbd, 0x9c, 0x3c, 0x69, 0x15, 0x8d, 0x5c, 0xe2, 0x15, 0xe7, 0x1a, 0xe3, 0x87, 0x22,
		0xa9, 0x3b, 0x47, 0x27, 0x90, 0x23, 0x92, 0x32, 0x7e, 0x9a, 0xc3, 0x50, 0x62, 0x7a, 0x32, 0x6c,
		0xca, 0x4b, 0xa8, 0x14, 0x51, 0x42, 0x05, 0x25, 0x54, 0xde, 0xf6, 0xab, 0x50, 0x42, 0x25, 0xdc,
		0x80, 0x28, 0xa1, 0x02, 0xc6, 0x07, 0xc6, 0x07, 0xc6, 0x07, 0xc6, 0x97, 0x46, 0xc6, 0x87, 0x12,
		0x2a, 0xc4, 0xf1, 0x47, 0x94, 0x50, 0x41, 0x92, 0x12, 0xac, 0x11, 0x92, 0x94, 0x90, 0xa4, 0xb4,
		0x34, 0x34, 0x92, 0x94, 0xde, 0x9a, 0x04, 0x49, 0x4a, 0x29, 0x53, 0xe3, 0x65, 0x11, 0x40, 0x92,
		0x52, 0x66, 0xc4, 0x00, 0x49, 0x4a, 0x04, 0xcb, 0x85, 0x24, 0xa5, 0x80, 0xa6, 0x18, 0x25, 0x54,
		0x50, 0x42, 0x05, 0x25, 0x54, 0xb8, 0x50, 0x0d, 0x25, 0x54, 0x50, 0x42, 0x05, 0x11, 0x06, 0x44,
		0x18, 0x10, 0x61, 0x40, 0x84, 0x01, 0x11, 0x06, 0x44, 0x18, 0x10, 0x61, 0x40, 0x84, 0x01, 0x11,
		0x06, 0x44, 0x18, 0x76, 0x2c, 0xc2, 0x80, 0x12, 0x2a, 0xdb, 0x15, 0x50, 0x40, 0x09, 0x15, 0xc4,
		0x0f, 0x50, 0x42, 0x05, 0xb1, 0x03, 0xc4, 0x0e, 0x10, 0x3b, 0x40, 0xec, 0x00, 0xb1, 0x03, 0xc4,
		0x0e, 0x10, 0x3b, 0x40, 0xec, 0x00, 0xb1, 0x03, 0xc4, 0x0e, 0x10, 0x3b, 0x90, 0x13, 0x3b, 0x40,
		0x09, 0x95, 0xed, 0x8a, 0x1d, 0xa0, 0x84, 0x0a, 0x4a, 0xa8, 0x10, 0x86, 0x0c, 0x50, 0x42, 0x45,
		0x76, 0xa4, 0x00, 0x07, 0xea, 0x52, 0x19, 0x24, 0xc0, 0x81, 0x3a, 0x7a, 0x69, 0x47, 0x09, 0x15,
		0x94, 0x50, 0x61, 0x92, 0xe2, 0x1d, 0x28, 0xa1, 0x42, 0x59, 0x44, 0x23, 0x97, 0x92, 0x0a, 0x2a,
		0x37, 0xee, 0x33, 0xa5, 0xa5, 0x80, 0xca, 0x5e, 0x82, 0x82, 0xcc, 0x41, 0x6d, 0x95, 0x5f, 0x8f,
		0xc2, 0x20, 0x63, 0xb1, 0x0c, 0xe5, 0x4c, 0x0e, 0x0f, 0xa7, 0x85, 0x81, 0xf2, 0xce, 0xcb, 0x40,
		0xe4, 0xfe, 0x9d, 0xfb, 0xcb, 0xec, 0xaa, 0x86, 0xae, 0x8e, 0x3f, 0xd9, 0xe7, 0x8d, 0xab, 0x8b,
		0x6a, 0xe3, 0xaf, 0x8c, 0x15, 0x3a, 0x71, 0x5f, 0x79, 0x96, 0xcb, 0x9c, 0x04, 0x5a, 0x93, 0x54,
		0x52, 0xa4, 0x4f, 0xc2, 0xee, 0x5a, 0xfa, 0x80, 0xdc, 0x06, 0x2c, 0x89, 0xec, 0x95, 0xd1, 0x7f,
		0xc9, 0xe9, 0x46, 0xb7, 0x3f, 0xec, 0x89, 0x9c, 0xf3, 0x28, 0x72, 0x2e, 0x38, 0xe7, 0x26, 0xaf,
		0x6c, 0x68, 0xb9, 0x16, 0x28, 0x37, 0x16, 0x82, 0x1f, 0xc6, 0xf8, 0x5f, 0x67, 0x18, 0x9e, 0xd3,
		0xed, 0x9c, 0x3d, 0x10, 0x5d, 0xfd, 0x5e, 0x17, 0xbd, 0x9c, 0x63, 0xe6, 0xee, 0x66, 0x57, 0x3a,
		0xe6, 0xe4, 0x97, 0x53, 0x5b, 0x91, 0x13, 0x7d, 0xe1, 0x2e, 0x05, 0xf1, 0x12, 0x33, 0x12, 0x82,
		0x45, 0xf1, 0xef, 0x2d, 0xac, 0x01, 0x83, 0x2b, 0x26, 0x83, 0x0d, 0x2c, 0x69, 0x83, 0xb4, 0xe5,
		0xde, 0x6e, 0x27, 0x6f, 0x2f, 0xd9, 0x10, 0x4f, 0x5c, 0xdb, 0x4c, 0xec, 0x5c, 0xa6, 0xc7, 0xa9,
		0x54, 0x48, 0x6a, 0xc6, 0x25, 0xed, 0x46, 0xc6, 0x53, 0x9e, 0xe8, 0xc2, 0x19, 0x43, 0xac, 0x14,
		0x4b, 0x3c, 0x99, 0x04, 0xa5, 0xf6, 0x3c, 0xbb, 0x34, 0x1d, 0x2f, 0xa6, 0xa0, 0xd3, 0xd4, 0xd6,
		0x23, 0x8b, 0xc9, 0x51, 0xc6, 0xe0, 0x78, 0xb2, 0x73, 0xa8, 0xed, 0x2a, 0x5b, 0x60, 0x8d, 0xcd,
		0x74, 0xb2, 0x65, 0xd7, 0x24, 0x4b, 0xc7, 0xa8, 0x6a, 0xe1, 0x29, 0xdd, 0x99, 0x2e, 0x10, 0xd7,
		0xd4, 0x24, 0xad, 0xa8, 0xca, 0x56, 0x54, 0xf3, 0x08, 0x45, 0x35, 0x51, 0x54, 0x53, 0x12, 0x60,
		0xa4, 0x33, 0x30, 0x49, 0x5e, 0x54, 0x73, 0x62, 0xe9, 0x55, 0xfb, 0xc5, 0x76, 0xc4, 0x13, 0x1f,
		0xd1, 0x5d, 0x9e, 0x06, 0x7b, 0x81, 0xc8, 0x1a, 0x4e, 0x14, 0x96, 0xa4, 0x86, 0x00, 0x72, 0xc8,
		0x1a, 0x9e, 0xbd, 0x05, 0xfe, 0x5d, 0x41, 0x7d, 0xa0, 0x6a, 0xbd, 0x9e, 0x25, 0x6c, 0x9b, 0x73,
		0x63, 0xf0, 0x8c, 0x61, 0xec, 0xe9, 0xbb, 0xc9, 0x6c, 0x92, 0x98, 0x3e, 0x78, 0x2e, 0x31, 0xbe,
		0x7b, 0xdf, 0x1a, 0x9c, 0x32, 0xce, 0xd1, 0xd4, 0x1c, 0x47, 0x58, 0x06, 0xdb, 0x72, 0x78, 0x13,
		0xed, 0xdf, 0x1e, 0xa9, 0x67, 0xed, 0xd7, 0xdb, 0x82, 0x7a, 0xd6, 0x9e, 0xfc, 0xb5, 0xe0, 0xfe,
		0xf1, 0xa7, 0x38, 0x7a, 0x2d, 0xde, 0x1e, 0xa9, 0xa5, 0xe9, 0xb7, 0xc5, 0x93, 0xdb, 0x23, 0xf5,
		0xa4, 0x7d, 0xb0, 0xff, 0xe3, 0xc7, 0x61, 0xd8, 0x6b, 0x0e, 0xfe, 0x1c, 0x8f, 0xf8, 0xd2, 0xba,
		0xda, 0x9c, 0xcb, 0x70, 0x75, 0x53, 0xff, 0x5b, 0xda, 0x5a, 0xfc, 0xb3, 0x2f, 0x6b, 0x35, 0x0e,
		0xfe, 0xc5, 0xb8, 0x1e, 0x3c, 0x69, 0x76, 0x1f, 0x32, 0x0c, 0x4b, 0x65, 0xc0, 0x52, 0x58, 0x58,
		0x72, 0xa5, 0x5a, 0x53, 0xef, 0xab, 0xea, 0xe7, 0xf6, 0x9f, 0xc2, 0x87, 0xd2, 0xe8, 0xfc, 0xe0,
		0x4f, 0x65, 0xb4, 0xfa, 0xe5, 0xeb, 0xba, 0x9f, 0x15, 0x3e, 0x54, 0x46, 0xe7, 0x1b, 0xfe, 0xa5,
		0x3c, 0x3a, 0x0f, 0x38, 0xc6, 0xc9, 0x68, 0xdf, 0xf7, 0xd3, 0xf1, 0xf7, 0xc5, 0x4d, 0x17, 0x94,
		0x36, 0x5c, 0x70, 0xbc, 0xe9, 0x82, 0xe3, 0x0d, 0x17, 0x6c, 0xbc, 0xa5, 0xe2, 0x86, 0x0b, 0x4e,
		0x46, 0xaf, 0xbe, 0xdf, 0xef, 0xaf, 0xff, 0x69, 0x79, 0x74, 0xf0, 0xba, 0xe9, 0xdf, 0x2a, 0xa3,
		0xd7, 0xf3, 0x83, 0x03, 0x00, 0x75, 0x60, 0xa0, 0x86, 0x78, 0xca, 0x17, 0xcf, 0xec, 0x19, 0x2e,
		0xe4, 0x87, 0x47, 0xd0, 0x30, 0x54, 0xb7, 0x47, 0x24, 0x08, 0x91, 0x20, 0x44, 0x82, 0xb2, 0x1c,
		0x09, 0xc2, 0xf9, 0x71, 0x99, 0x74, 0x0b, 0xe7, 0xc7, 0x63, 0xc9, 0x2c, 0xce, 0x8f, 0x87, 0x14,
		0x01, 0x9c, 0x1f, 0x4f, 0x97, 0x57, 0x9c, 0xc3, 0xf9, 0x71, 0x9c, 0x1f, 0xdf, 0x64, 0x8a, 0xd7,
		0x16, 0x3f, 0xc7, 0xc9, 0xf1, 0x74, 0x3b, 0xaa, 0x6b, 0x1d, 0xd6, 0xf5, 0x2b, 0x09, 0x9c, 0xda,
		0x81, 0x98, 0xc0, 0xb3, 0x6e, 0x39, 0x43, 0xad, 0xaf, 0x76, 0x75, 0xab, 0x3b, 0xd4, 0x1d, 0x55,
		0xef, 0x09, 0xc3, 0xd1, 0xef, 0x75, 0x61, 0xf1, 0x85, 0x09, 0xde, 0x98, 0x13, 0x91, 0x03, 0x44,
		0x0e, 0x10, 0x39, 0x40, 0xe4, 0x80, 0x29, 0x72, 0x70, 0x5c, 0x64, 0x8c, 0x1c, 0x54, 0x10, 0x39,
		0x40, 0xe4, 0x00, 0x91, 0x83, 0x64, 0x22, 0x07, 0xa5, 0xe2, 0x59, 0xe9, 0xac, 0x5c, 0x29, 0x9e,
		0x21, 0x7c, 0x00, 0xb7, 0x3c, 0x21, 0xb7, 0x1c, 0xc5, 0x2e, 0x24, 0x9d, 0x4b, 0x9c, 0xe4, 0x9d,
		0xe7, 0x49, 0x8f, 0xb7, 0xe4, 0x12, 0x3f, 0xa7, 0x78, 0xed, 0x3e, 0x55, 0x67, 0x4a, 0x2e, 0xd2,
		0x52, 0xf0, 0x82, 0xe4, 0xf4, 0xa7, 0xe6, 0x08, 0xfa, 0xd3, 0x4d, 0x94, 0xc5, 0x4e, 0xd8, 0x0e,
		0x37, 0x15, 0x71, 0xb8, 0x09, 0x87, 0x9b, 0x24, 0x33, 0x3e, 0x1c, 0x6e, 0xa2, 0xd0, 0x0a, 0x1c,
		0x6e, 0x42, 0x60, 0x0a, 0x81, 0x29, 0x04, 0xa6, 0x70, 0xb8, 0xe9, 0xbd, 0x77, 0x83, 0xc3, 0x4d,
		0x01, 0xd7, 0x00, 0x87, 0x9b, 0x70, 0xb8, 0x89, 0x74, 0x36, 0x1c, 0x6e, 0x92, 0x1e, 0xda, 0xc4,
		0xe1, 0xa6, 0x94, 0xc2, 0x12, 0x4e, 0x8f, 0xe0, 0x70, 0x53, 0xda, 0x81, 0x1a, 0xe2, 0x89, 0xc3,
		0x4d, 0x92, 0xf9, 0x50, 0x0e, 0x87, 0x9b, 0x88, 0xc2, 0xcd, 0x38, 0xdc, 0x84, 0x48, 0x10, 0x22,
		0x41, 0x88, 0x04, 0xe1, 0x70, 0xd3, 0xd2, 0xd0, 0x48, 0x51, 0x7a, 0x6b, 0x12, 0xa4, 0x28, 0xa5,
		0x94, 0xc7, 0xe7, 0x70, 0xb8, 0x29, 0x5b, 0x62, 0x80, 0xc3, 0x4d, 0x04, 0xcb, 0x85, 0xc3, 0x4d,
		0x01, 0x4d, 0x31, 0x0e, 0x37, 0x65, 0xd0, 0x51, 0x5d, 0xeb, 0xb0, 0xe2, 0x70, 0xd3, 0xce, 0xc6,
		0x04, 0x70, 0xb8, 0x09, 0x91, 0x03, 0x44, 0x0e, 0x10, 0x39, 0xd8, 0x8d, 0xc8, 0x01, 0x0e, 0x37,
		0x21, 0x72, 0x00, 0xca, 0xb8, 0x8d, 0x91, 0x03, 0x1c, 0x6e, 0x82, 0x5b, 0x9e, 0xb4, 0x5b, 0x8e,
		0xc3, 0x4d, 0x72, 0x0f, 0x37, 0x6d, 0x57, 0x2b, 0xdf, 0xe9, 0xd9, 0x26, 0xf4, 0xf2, 0xe5, 0x8c,
		0xc4, 0x65, 0xbc, 0x97, 0xef, 0x75, 0xed, 0xeb, 0x55, 0xab, 0x86, 0x66, 0xbe, 0xa9, 0x6a, 0xe6,
		0x3b, 0x5b, 0x14, 0x74, 0xf3, 0xf5, 0xda, 0xbb, 0x4e, 0x00, 0x3a, 0x52, 0x7f, 0xd7, 0xe9, 0xa5,
		0xe8, 0xe7, 0x9b, 0xb2, 0x58, 0xc5, 0xdb, 0xfd, 0x7c, 0xf9, 0x16, 0x1c, 0x1d, 0x7d, 0x19, 0x9d,
		0x61, 0x74, 0xf4, 0xdd, 0xe4, 0x5c, 0x66, 0xbe, 0xa5, 0xef, 0xc4, 0x9d, 0xcc, 0x62, 0x4f, 0x5f,
		0x9a, 0xb3, 0xf0, 0xa4, 0x67, 0xe0, 0xc9, 0x3b, 0xfa, 0x16, 0xd1, 0xd1, 0x37, 0xba, 0x35, 0x45,
		0x47, 0xdf, 0x04, 0x21, 0x9f, 0xac, 0xa3, 0xaf, 0xd6, 0x9d, 0x46, 0xb5, 0x88, 0x6b, 0x5e, 0x4c,
		0xc7, 0xa5, 0x2d, 0x7a, 0x71, 0x84, 0x8e, 0xbe, 0x19, 0x22, 0x9c, 0x28, 0x7a, 0x91, 0x81, 0x00,
		0x25, 0xf9, 0x8e, 0x9f, 0x27, 0xb7, 0x77, 0xa6, 0xd9, 0x17, 0x1a, 0x25, 0xd3, 0xf2, 0xec, 0x7f,
		0x61, 0x8b, 0x6a, 0x0e, 0xcd, 0x3c, 0x5e, 0xca, 0x23, 0x21, 0xde, 0x1a, 0x2c, 0x0e, 0x0e, 0x28,
		0x06, 0x14, 0x03, 0x8a, 0x77, 0x12, 0x8a, 0x6d, 0xc7, 0xd2, 0x8d, 0x07, 0x0e, 0x24, 0x3e, 0xdd,
		0x22, 0x24, 0x1e, 0x58, 0xa2, 0x2b, 0x7a, 0xd3, 0x7c, 0x60, 0x62, 0x20, 0x5e, 0x18, 0x1b, 0x38,
		0x0c, 0x1c, 0x06, 0x0e, 0xef, 0x24, 0x0e, 0x93, 0x1f, 0x9b, 0x63, 0x38, 0x2e, 0xc7, 0x94, 0xec,
		0xc6, 0xb0, 0xb3, 0xc3, 0x99, 0xdc, 0xc6, 0x9d, 0xd4, 0x26, 0x2d, 0x81, 0x89, 0x3f, 0x71, 0x89,
		0x21, 0x79, 0x8d, 0x35, 0x69, 0x4d, 0xc6, 0x31, 0xb7, 0x6d, 0x5a, 0xde, 0x94, 0x6e, 0xfd, 0xb5,
		0xb7, 0xc8, 0xf3, 0x74, 0x28, 0x2d, 0x8e, 0x67, 0x6d, 0xdc, 0x51, 0xe1, 0x6d, 0xc2, 0xdb, 0x84,
		0xb7, 0xb9, 0x93, 0xde, 0xe6, 0xe4, 0x40, 0x97, 0xf3, 0x62, 0x89, 0x7b, 0x0e, 0xea, 0x4f, 0x68,
		0x3a, 0x95, 0xfa, 0xf4, 0x56, 0x3f, 0x6a, 0xb6, 0xe0, 0x4b, 0x90, 0xaa, 0x5d, 0x7e, 0x6a, 0x5e,
		0xd5, 0x2f, 0x5b, 0x9d, 0xd6, 0x7f, 0x9b, 0x35, 0x6a, 0xb5, 0x70, 0xbd, 0x0a, 0x9b, 0xe5, 0x90,
		0x08, 0x93, 0x1f, 0x34, 0x7b, 0x2d, 0x8d, 0xab, 0x8b, 0x6a, 0x43, 0xc9, 0x82, 0x5f, 0xc8, 0xfc,
		0x22, 0x26, 0x29, 0x84, 0x69, 0x3f, 0xf3, 0xd5, 0xde, 0xba, 0xec, 0xa9, 0x11, 0xb2, 0xa7, 0x88,
		0xb3, 0xa7, 0xa8, 0x72, 0xf2, 0x93, 0x4d, 0x9e, 0x22, 0x48, 0xc2, 0x4f, 0x26, 0x77, 0xea, 0xf9,
		0x77, 0x5f, 0x33, 0xe8, 0x72, 0xa7, 0x26, 0xc3, 0xa5, 0x2c, 0x77, 0xea, 0x08, 0xb9, 0x53, 0x29,
		0xf1, 0xcc, 0x91, 0x3b, 0x15, 0xee, 0xa9, 0xc8, 0x72, 0xa7, 0xba, 0x33, 0x5d, 0x20, 0x26, 0xee,
		0xa4, 0xed, 0xa2, 0xd8, 0x1a, 0x06, 0x65, 0x84, 0xba, 0x8b, 0xe7, 0x81, 0x01, 0xde, 0x9e, 0x00,
		0x6f, 0x77, 0x5f, 0x3c, 0x5a, 0x05, 0x05, 0x1b, 0xb0, 0x27, 0xe3, 0x80, 0x10, 0xdf, 0xf9, 0x17,
		0x94, 0x78, 0x91, 0x02, 0x3e, 0xdc, 0x20, 0x24, 0x0d, 0x8c, 0xa4, 0x81, 0x92, 0x1c, 0x70, 0xe2,
		0x21, 0xfa, 0xd9, 0x2b, 0xee, 0x42, 0x9e, 0x67, 0xe4, 0x73, 0x62, 0x4e, 0x77, 0xa0, 0x18, 0x98,
		0x30, 0xb4, 0xbb, 0xbe, 0x60, 0x2c, 0x10, 0x3e, 0x9b, 0x00, 0x36, 0x00, 0x36, 0x00, 0x36, 0x00,
		0x36, 0x80, 0x54, 0xe2, 0xe9, 0xd3, 0xfe, 0x7d, 0x46, 0xa0, 0xb0, 0x0b, 0x5d, 0x22, 0x5c, 0xed,
		0x56, 0x75, 0xc3, 0x11, 0xd6, 0xbd, 0xd6, 0x65, 0xdc, 0x15, 0xf3, 0xcd, 0x04, 0xb3, 0x00, 0xb3,
		0x00, 0xb3, 0x00, 0xb3, 0x00, 0x6a, 0xb0, 0x85, 0x91, 0xab, 0x6d, 0x2e, 0x48, 0xe6, 0xee, 0x93,
		0xe5, 0x49, 0xa3, 0xe7, 0xb9, 0xc4, 0x37, 0x41, 0xbf, 0x8f, 0x1f, 0xaa, 0x33, 0xb5, 0x76, 0xdb,
		0x78, 0xee, 0x71, 0x20, 0x84, 0x65, 0x33, 0x1e, 0x7d, 0x9c, 0x8c, 0x9f, 0xf2, 0xcd, 0x94, 0x22,
		0x36, 0x53, 0xb2, 0xe4, 0xa4, 0x60, 0x33, 0x25, 0xcd, 0x9b, 0x29, 0x4b, 0xaa, 0xcf, 0x19, 0x46,
		0x5b, 0x9c, 0x86, 0x87, 0x35, 0x15, 0xc0, 0x9a, 0xc0, 0x9a, 0xc0, 0x9a, 0xd2, 0xc9, 0x9a, 0xa8,
		0x81, 0xcb, 0x1b, 0x78, 0x0c, 0x28, 0x5e, 0x5f, 0xed, 0x73, 0xee, 0xb4, 0xd7, 0xa5, 0xd9, 0x98,
		0xa4, 0x85, 0x27, 0x08, 0xc4, 0x0e, 0x6b, 0x32, 0xe0, 0x4d, 0x22, 0xcc, 0xc9, 0x82, 0x3b, 0xe9,
		0xb0, 0x27, 0x1d, 0xfe, 0xe4, 0xc2, 0x20, 0x0f, 0x1c, 0x32, 0xc1, 0x22, 0x7f, 0x50, 0xc9, 0xa7,
		0x31, 0x7d, 0xa1, 0xdd, 0xd3, 0x9e, 0x72, 0xd9, 0xe8, 0x8f, 0x55, 0x38, 0x3b, 0xbd, 0x4f, 0xa3,
		0x27, 0x87, 0x87, 0x93, 0x04, 0xee, 0xfc, 0x12, 0x32, 0x67, 0xa4, 0x2f, 0x00, 0xc7, 0x71, 0x60,
		0x9a, 0x5a, 0x94, 0xef, 0x8a, 0x11, 0x75, 0x25, 0x7b, 0x09, 0x0e, 0x3d, 0x5b, 0x24, 0x01, 0x16,
		0x10, 0x16, 0x10, 0x16, 0x30, 0xa5, 0x04, 0xc1, 0x9b, 0xa0, 0x6b, 0x1a, 0x8e, 0x65, 0xf6, 0xd5,
		0x41, 0x5f, 0x33, 0x84, 0xfa, 0x6c, 0xe8, 0x36, 0xbf, 0x44, 0x2f, 0x64, 0xa9, 0xaf, 0xce, 0xcd,
		0x2c, 0x69, 0xbc, 0x24, 0x42, 0x1a, 0x99, 0x90, 0x09, 0xa9, 0x09, 0x40, 0xab, 0x6c, 0x88, 0x4d,
		0x0c, 0x6a, 0x13, 0x83, 0xdc, 0x64, 0xa0, 0x97, 0x17, 0x82, 0x99, 0xa1, 0x58, 0x1e, 0x29, 0xf1,
		0x69, 0xdc, 0xb3, 0xa1, 0xd3, 0x95, 0xdf, 0x0c, 0x82, 0x8f, 0x15, 0x09, 0x53, 0xf1, 0x76, 0x44,
		0x5c, 0xfd, 0x4f, 0x0e, 0x80, 0xe4, 0x64, 0x75, 0x4c, 0xf4, 0x4d, 0x3a, 0xab, 0x48, 0x54, 0xf8,
		0x20, 0x77, 0x5e, 0xd9, 0x5d, 0xf4, 0xfc, 0x3a, 0x22, 0xab, 0xab, 0x9e, 0x64, 0x98, 0x59, 0x16,
		0x29, 0xed, 0x77, 0x82, 0x22, 0x55, 0xae, 0x54, 0x2a, 0xc5, 0xc2, 0x09, 0x24, 0x4b, 0x96, 0x64,
		0xed, 0x6d, 0xc7, 0x2c, 0xed, 0x4c, 0x9b, 0xf9, 0x86, 0x6e, 0x3b, 0x55, 0xc7, 0xb1, 0xe4, 0x98,
		0xfa, 0xaf, 0xba, 0x51, 0x9b, 0x34, 0x4a, 0x92, 0x24, 0xea, 0x63, 0x4c, 0x59, 0x98, 0xb1, 0x70,
		0x5a, 0x2a, 0x95, 0x2b, 0xa5, 0xd2, 0x51, 0xe5, 0xb8, 0x72, 0x74, 0x76, 0x72, 0x52, 0x28, 0xcb,
		0x50, 0x78, 0xe5, 0xca, 0xea, 0x09, 0x4b, 0xf4, 0x3e, 0xbe, 0x28, 0xe7, 0x39, 0x63, 0xd8, 0xef,
		0xcb, 0x9c, 0xf2, 0x9b, 0xed, 0x6e, 0xed, 0xf3, 0xeb, 0x36, 0xb7, 0xa4, 0x32, 0xb4, 0x57, 0x7c,
		0x77, 0x4e, 0xdb, 0xd1, 0x9c, 0xa1, 0xbd, 0x8d, 0xee, 0xdb, 0xfc, 0xa8, 0xeb, 0xc0, 0x12, 0x5d,
		0xcd, 0x11, 0x3d, 0x45, 0xa2, 0xa5, 0x97, 0xcc, 0x78, 0xd7, 0x31, 0xdf, 0xe9, 0xd2, 0x4a, 0xb6,
		0xb6, 0x49, 0x31, 0xe0, 0xb5, 0x4c, 0x78, 0x61, 0xed, 0x61, 0xf5, 0xd3, 0x65, 0xf5, 0x33, 0xd9,
		0x41, 0xbd, 0x6b, 0x0e, 0x0d, 0x87, 0x32, 0x47, 0xf5, 0x5d, 0xf4, 0xf2, 0x66, 0x94, 0x13, 0x50,
		0x2d, 0x20, 0xa0, 0x1a, 0x7d, 0xad, 0x10, 0x50, 0xdd, 0x1e, 0x73, 0x82, 0x80, 0x6a, 0xf8, 0x57,
		0xc6, 0xbd, 0xc7, 0xe5, 0x4d, 0x74, 0x37, 0x7c, 0x52, 0x7b, 0xa2, 0xab, 0x0d, 0x54, 0xdd, 0x52,
		0x07, 0x3f, 0x1d, 0x5b, 0x9e, 0x22, 0x78, 0x67, 0x5b, 0x7d, 0xb7, 0x20, 0x49, 0x2e, 0xe5, 0xec,
		0x7c, 0x49, 0x07, 0xec, 0x24, 0x80, 0x3b, 0x41, 0x00, 0x4f, 0x13, 0x4f, 0x90, 0x0a, 0xe8, 0xe9,
		0xe4, 0x09, 0xd2, 0x00, 0x5e, 0x32, 0x49, 0x90, 0xa4, 0xb3, 0xd2, 0x76, 0xd2, 0x36, 0xb9, 0xc7,
		0xe5, 0x92, 0x4c, 0x9d, 0x9d, 0x42, 0xf0, 0xa9, 0xc4, 0x29, 0xe5, 0x6e, 0xb2, 0xc9, 0x8f, 0xd6,
		0x78, 0x0f, 0x9a, 0xc4, 0xa6, 0x9b, 0x37, 0x39, 0x73, 0xa7, 0x97, 0x77, 0xe7, 0x4f, 0x7a, 0xab,
		0x64, 0xae, 0x5e, 0x49, 0x6d, 0x99, 0x48, 0x46, 0xae, 0x65, 0xd1, 0x4b, 0x60, 0x73, 0xce, 0x27,
		0x7a, 0xc9, 0xc4, 0xef, 0x21, 0x8d, 0x29, 0xb0, 0xd6, 0xf2, 0x67, 0x6b, 0x6f, 0x49, 0xa8, 0x52,
		0x02, 0x5a, 0x2c, 0x10, 0xbe, 0xa7, 0x61, 0xdf, 0xd1, 0xbb, 0x9a, 0xed, 0x24, 0x4e, 0x3d, 0x57,
		0xee, 0x04, 0x0c, 0x14, 0x0c, 0x14, 0x0c, 0x14, 0x0c, 0x14, 0x0c, 0x14, 0x0c, 0x14, 0x0c, 0x14,
		0x0c, 0x14, 0x3e, 0x3f, 0x18, 0x28, 0x18, 0x28, 0x18, 0x28, 0x18, 0xe8, 0x96, 0x31, 0xd0, 0xa4,
		0x79, 0x27, 0xd8, 0x26, 0xd8, 0x26, 0xd8, 0x26, 0xd8, 0x26, 0xd8, 0x26, 0xd8, 0x26, 0xd8, 0x26,
		0xd8, 0x26, 0xfc, 0x7b, 0xb0, 0x4d, 0xb0, 0x4d, 0xb0, 0x4d, 0xb0, 0xcd, 0xed, 0x62, 0x9b, 0xc2,
		0x48, 0x96, 0x6d, 0x2e, 0xcc, 0x0f, 0xb6, 0x09, 0xb6, 0x09, 0xb6, 0x09, 0xb6, 0x09, 0xb6, 0x09,
		0xb6, 0x09, 0xb6, 0x09, 0xb6, 0x09, 0xff, 0x1e, 0x6c, 0x13, 0x6c, 0x13, 0x6c, 0x13, 0x6c, 0x73,
		0x2b, 0xd8, 0x66, 0xcf, 0x32, 0x07, 0x89, 0x6e, 0x6e, 0xae, 0xde, 0x00, 0xf8, 0x26, 0xf8, 0x26,
		0xf8, 0x26, 0xf8, 0x26, 0xf8, 0x26, 0xf8, 0x26, 0xf8, 0x26, 0xf8, 0x26, 0x3c, 0x7c, 0xf0, 0x4d,
		0xf0, 0x4d, 0xf0, 0x4d, 0xf0, 0xcd, 0xad, 0xe0, 0x9b, 0xe2, 0x77, 0x57, 0x0c, 0x9c, 0x44, 0x19,
		0xa7, 0xff, 0x16, 0xc0, 0x39, 0xc1, 0x39, 0xc1, 0x39, 0xc1, 0x39, 0xc1, 0x39, 0xc1, 0x39, 0xc1,
		0x39, 0xc1, 0x39, 0xe1, 0xe5, 0x83, 0x73, 0x82, 0x73, 0x82, 0x73, 0x82, 0x73, 0x6e, 0x05, 0xe7,
		0x74, 0x4c, 0x47, 0xeb, 0x4f, 0xf9, 0xde, 0xdd, 0x8b, 0x23, 0x12, 0xe0, 0x9c, 0xfe, 0x5b, 0x00,
		0xe7, 0x04, 0xe7, 0x04, 0xe7, 0x04, 0xe7, 0x04, 0xe7, 0x04, 0xe7, 0x04, 0xe7, 0x04, 0xe7, 0x84,
		0x97, 0x0f, 0xce, 0x09, 0xce, 0x09, 0xce, 0x09, 0xce, 0xb9, 0x75, 0x9c, 0x33, 0x99, 0x6d, 0x4e,
		0xdf, 0x1d, 0x80, 0x71, 0x82, 0x71, 0x82, 0x71, 0x82, 0x71, 0x82, 0x71, 0x82, 0x71, 0x82, 0x71,
		0x82, 0x71, 0xc2, 0xc7, 0x07, 0xe3, 0x04, 0xe3, 0x04, 0xe3, 0x04, 0xe3, 0xdc, 0x22, 0xc6, 0x39,
		0xa9, 0xdc, 0x93, 0xe8, 0x2e, 0xe7, 0xe2, 0x2d, 0x80, 0x73, 0x82, 0x73, 0x82, 0x73, 0x82, 0x73,
		0x82, 0x73, 0x82, 0x73, 0x82, 0x73, 0x82, 0x73, 0xc2, 0xcb, 0x07, 0xe7, 0x04, 0xe7, 0x04, 0xe7,
		0x04, 0xe7, 0xdc, 0x3a, 0xce, 0x99, 0xe4, 0x2e, 0x27, 0xea, 0xd5, 0x82, 0x71, 0x82, 0x71, 0x82,
		0x71, 0x82, 0x71, 0x82, 0x71, 0x82, 0x71, 0x82, 0x71, 0xc2, 0xc7, 0x07, 0xe3, 0x04, 0xe3, 0x04,
		0xe3, 0x04, 0xe3, 0xdc, 0x36, 0xc6, 0x39, 0x34, 0xf4, 0xae, 0x66, 0x27, 0x5b, 0x40, 0x68, 0xcd,
		0x3d, 0x80, 0x75, 0x82, 0x75, 0x82, 0x75, 0x82, 0x75, 0x82, 0x75, 0x82, 0x75, 0x82, 0x75, 0x82,
		0x75, 0xc2, 0xcf, 0x07, 0xeb, 0x04, 0xeb, 0x04, 0xeb, 0x04, 0xeb, 0xdc, 0xcb, 0xf6, 0x0c, 0xcc,
		0x58, 0xa4, 0x54, 0x0d, 0xc3, 0x74, 0xb4, 0xb1, 0xa6, 0x49, 0x81, 0x1f, 0xc5, 0xee, 0x3e, 0x8a,
		0x27, 0x6d, 0xa0, 0x39, 0x8f, 0x63, 0x0f, 0x2a, 0x6f, 0x0e, 0x84, 0xd1, 0x75, 0x59, 0x9e, 0x6a,
		0x08, 0xe7, 0x97, 0x69, 0xfd, 0x54, 0x75, 0xc3, 0x76, 0x34, 0xa3, 0x2b, 0xf2, 0xab, 0x5f, 0xd8,
		0xbe, 0x6f, 0xf2, 0x5d, 0xd3, 0x30, 0x84, 0x8b, 0x13, 0xea, 0xc0, 0xd4, 0x0d, 0xc7, 0xf6, 0x7d,
		0x93, 0x17, 0x46, 0x6f, 0xfa, 0x4f, 0xb3, 0xbf, 0xe5, 0x9f, 0x7f, 0xf7, 0x35, 0xc3, 0xfb, 0xa8,
		0x0e, 0x84, 0xb0, 0xec, 0xe5, 0x8f, 0x79, 0xdb, 0xd1, 0x9c, 0xf1, 0xf0, 0xae, 0x83, 0x27, 0x83,
		0x5e, 0x2b, 0xb6, 0x63, 0x0d, 0xbb, 0x8e, 0x31, 0x75, 0x2d, 0xaf, 0xbc, 0xf7, 0x72, 0x39, 0x79,
		0xe6, 0xfa, 0xf4, 0x91, 0x3b, 0x2b, 0x9f, 0xed, 0xd5, 0x2f, 0x3a, 0x17, 0xde, 0x1b, 0x68, 0xba,
		0xcf, 0xbd, 0xfa, 0x45, 0xa7, 0x36, 0x7b, 0x23, 0xde, 0xdf, 0x3a, 0xdf, 0xc7, 0x6f, 0xc4, 0xfb,
		0xd8, 0x1c, 0xbf, 0x90, 0xa5, 0x4f, 0x9d, 0x9b, 0xf1, 0xfb, 0xe8, 0x5c, 0xcc, 0xde, 0xc7, 0x5e,
		0x36, 0x15, 0x8a, 0x51, 0x99, 0x94, 0xb1, 0xd8, 0xa8, 0x5a, 0xaf, 0x67, 0x09, 0x9b, 0x3f, 0x24,
		0xe4, 0x51, 0x90, 0xa5, 0x59, 0x99, 0xa1, 0x42, 0x4e, 0xf0, 0x47, 0x5a, 0xd0, 0x47, 0x66, 0xb0,
		0x27, 0x81, 0x20, 0x8f, 0xec, 0xe0, 0x4e, 0x62, 0x41, 0x9d, 0xc4, 0x82, 0x39, 0xc9, 0x04, 0x71,
		0xb2, 0xed, 0x6e, 0x48, 0x0b, 0xd6, 0x78, 0x1a, 0xa7, 0x0f, 0x24, 0xe1, 0xe3, 0x22, 0x46, 0x16,
		0xce, 0x24, 0xcc, 0x35, 0x7d, 0x97, 0x72, 0xa2, 0x32, 0x09, 0x84, 0xd7, 0xf4, 0xc1, 0x73, 0x49,
		0xe2, 0xda, 0xf9, 0xd6, 0x50, 0x66, 0x88, 0xad, 0xa9, 0x39, 0x8e, 0xb0, 0x0c, 0xe9, 0x41, 0x36,
		0x65, 0xff, 0xf6, 0x48, 0x3d, 0x6b, 0xbf, 0xde, 0x16, 0xd4, 0xb3, 0xf6, 0xe4, 0xaf, 0x05, 0xf7,
		0x8f, 0x3f, 0xc5, 0xd1, 0x6b, 0xf1, 0xf6, 0x48, 0x2d, 0x4d, 0xbf, 0x2d, 0x9e, 0xdc, 0x1e, 0xa9,
		0x27, 0xed, 0x83, 0xfd, 0x1f, 0x3f, 0x0e, 0xc3, 0x5e, 0x73, 0xf0, 0xe7, 0x78, 0x24, 0x2f, 0xba,
		0xdd, 0x96, 0xb9, 0x6c, 0x57, 0x37, 0xf5, 0xbf, 0x13, 0x5b, 0xbb, 0x7f, 0xf6, 0x65, 0xad, 0xde,
		0xc1, 0xbf, 0x94, 0x6d, 0x8b, 0x0b, 0x7c, 0xd8, 0x62, 0xd8, 0x2c, 0x03, 0x36, 0xb9, 0x61, 0xd3,
		0xd5, 0x22, 0x4d, 0xbd, 0xaf, 0xaa, 0x9f, 0xdb, 0x7f, 0x0a, 0x1f, 0x4a, 0xa3, 0xf3, 0x83, 0x3f,
		0x95, 0xd1, 0xea, 0x97, 0xaf, 0xeb, 0x7e, 0x56, 0xf8, 0x50, 0x19, 0x9d, 0x6f, 0xf8, 0x97, 0xf2,
		0xe8, 0x3c, 0xe0, 0x18, 0x27, 0xa3, 0x7d, 0xdf, 0x4f, 0xc7, 0xdf, 0x17, 0x37, 0x5d, 0x50, 0xda,
		0x70, 0xc1, 0xf1, 0xa6, 0x0b, 0x8e, 0x37, 0x5c, 0xb0, 0xf1, 0x96, 0x8a, 0x1b, 0x2e, 0x38, 0x19,
		0xbd, 0xfa, 0x7e, 0xbf, 0xbf, 0xfe, 0xa7, 0xe5, 0xd1, 0xc1, 0xeb, 0xa6, 0x7f, 0xab, 0x8c, 0x5e,
		0xcf, 0x0f, 0x0e, 0x60, 0x48, 0xd8, 0x0c, 0x09, 0xc4, 0x59, 0xbe, 0x38, 0x6f, 0x9f, 0x61, 0xdd,
		0xcb, 0xf6, 0x73, 0x64, 0x38, 0xfa, 0xe8, 0x06, 0xad, 0x25, 0xc7, 0x1e, 0x27, 0x73, 0x22, 0xf2,
		0x88, 0xc8, 0x23, 0x22, 0x8f, 0x88, 0x3c, 0x22, 0xf2, 0xb8, 0xd8, 0xe7, 0xd3, 0x18, 0x3e, 0x09,
		0x6b, 0xb2, 0xb7, 0x2a, 0x31, 0xf4, 0x58, 0x92, 0x30, 0x57, 0xcd, 0x18, 0x3e, 0xc9, 0xd3, 0xef,
		0x96, 0x79, 0xe3, 0x58, 0xba, 0xf1, 0x20, 0x37, 0xcb, 0xef, 0x68, 0xbc, 0x86, 0xdf, 0x9a, 0x32,
		0x29, 0x74, 0x61, 0x3c, 0xe5, 0xa7, 0xab, 0xff, 0x5c, 0x2a, 0xdb, 0x95, 0xa1, 0x69, 0xd6, 0x5d,
		0xa8, 0x92, 0xb8, 0x78, 0xee, 0x4b, 0x3c, 0xcf, 0x15, 0x24, 0x2e, 0xde, 0xb7, 0xe6, 0xd8, 0x73,
		0x40, 0x52, 0xcb, 0xd6, 0xfa, 0xd8, 0x96, 0x39, 0x74, 0x84, 0xa5, 0x3e, 0x69, 0x5d, 0x79, 0x3e,
		0xf6, 0xc2, 0x9c, 0xf0, 0xb1, 0xe1, 0x63, 0xc3, 0xc7, 0x86, 0x8f, 0x0d, 0x1f, 0x7b, 0x41, 0xe3,
		0x9e, 0xb4, 0x6e, 0x12, 0xdb, 0xfb, 0x12, 0xf6, 0x38, 0xa4, 0xef, 0x6d, 0x28, 0x8b, 0x41, 0xca,
		0xd5, 0xd8, 0x67, 0x71, 0x74, 0xf0, 0xe7, 0x44, 0xc2, 0x26, 0x6e, 0x5b, 0xc6, 0x8b, 0x4d, 0x22,
		0xd6, 0xae, 0xfc, 0xf3, 0xfe, 0xeb, 0x95, 0x10, 0x0b, 0x6e, 0x67, 0x1a, 0x5f, 0xc4, 0x6f, 0xc7,
		0xd2, 0xd4, 0xa1, 0x61, 0x3b, 0xda, 0x5d, 0x5f, 0x12, 0xd2, 0xd8, 0x8e, 0xe6, 0x0c, 0xed, 0x6d,
		0xce, 0xb3, 0xe9, 0x89, 0x81, 0x25, 0xba, 0x9a, 0x23, 0x7a, 0x3b, 0x76, 0xf6, 0x74, 0xba, 0xb4,
		0xbb, 0x7c, 0xf6, 0x74, 0x61, 0xed, 0xb7, 0xed, 0xf8, 0x29, 0xf6, 0xa1, 0x12, 0xe0, 0xc8, 0xc3,
		0x81, 0xa3, 0x3f, 0x49, 0xdc, 0x83, 0x9a, 0xce, 0x07, 0x6e, 0x0c, 0x6e, 0x0c, 0x6e, 0x0c, 0x6e,
		0x0c, 0x6e, 0xbc, 0x58, 0x9a, 0x54, 0x7f, 0x12, 0x8e, 0xde, 0xfd, 0x69, 0x4b, 0x29, 0x50, 0x20,
		0xb1, 0x30, 0x81, 0xf2, 0xcd, 0x98, 0x9c, 0x09, 0x56, 0x0c, 0xcd, 0x30, 0x6d, 0xd1, 0x35, 0x8d,
		0x9e, 0x14, 0xfa, 0x2f, 0xb7, 0x10, 0x82, 0x44, 0x2a, 0x90, 0x44, 0xe1, 0x83, 0xa4, 0x0a, 0x1e,
		0x24, 0x7e, 0xb4, 0x3c, 0xb9, 0x23, 0xe5, 0x12, 0x0b, 0x1b, 0x24, 0x52, 0xd0, 0x20, 0x45, 0x85,
		0x0c, 0x76, 0x59, 0xca, 0xc0, 0xef, 0x92, 0xe5, 0x77, 0x7b, 0x19, 0xc2, 0x0e, 0x59, 0x05, 0x08,
		0x32, 0x55, 0x78, 0x80, 0xd1, 0x97, 0xc9, 0x42, 0x9d, 0x01, 0x1e, 0x2a, 0x41, 0xaf, 0x16, 0x0c,
		0x2a, 0xa1, 0x3c, 0x1b, 0xba, 0x2b, 0x08, 0xea, 0x83, 0x65, 0x0e, 0x07, 0x7c, 0x95, 0x04, 0x3c,
		0x96, 0xb0, 0x3a, 0x21, 0x93, 0x9a, 0xcf, 0x76, 0xce, 0x98, 0x86, 0xf7, 0x42, 0x27, 0x45, 0xa6,
		0x09, 0x24, 0x84, 0x4c, 0x24, 0x86, 0x4a, 0x64, 0x85, 0x48, 0xa4, 0x87, 0x46, 0xa4, 0x87, 0x44,
		0xe4, 0x86, 0x42, 0xb2, 0x65, 0xda, 0x3f, 0xe9, 0x16, 0xaf, 0xc2, 0x2c, 0x63, 0x97, 0xbc, 0xa8,
		0xf3, 0xca, 0xbc, 0x72, 0xa2, 0xcf, 0x05, 0x44, 0x9f, 0xd3, 0x0c, 0xa9, 0xb2, 0xa1, 0x35, 0x31,
		0x88, 0x4d, 0x0c, 0x6a, 0x93, 0x81, 0x5c, 0x39, 0x7c, 0x93, 0x3b, 0xfa, 0xcc, 0x0d, 0xc5, 0xde,
		0x44, 0xdd, 0x81, 0xfa, 0x6c, 0xe8, 0xf2, 0x6b, 0xa2, 0x4f, 0xe7, 0x45, 0x1d, 0xf4, 0xac, 0x41,
		0x74, 0x82, 0x50, 0x9d, 0x14, 0x64, 0x27, 0x0e, 0xdd, 0x89, 0x43, 0x78, 0xb2, 0x50, 0x2e, 0x07,
		0xd2, 0x25, 0x41, 0xbb, 0xf7, 0x2a, 0x93, 0xab, 0x83, 0xde, 0x17, 0xda, 0xbd, 0x25, 0xee, 0x93,
		0x28, 0x36, 0x52, 0x91, 0x5b, 0x6c, 0xc4, 0x8d, 0x1d, 0x1e, 0x1e, 0xce, 0xca, 0x83, 0x4e, 0x6c,
		0x0e, 0xba, 0xa7, 0x04, 0x7e, 0x85, 0xe2, 0xc1, 0x12, 0xb6, 0x9d, 0x8c, 0x87, 0xb0, 0x30, 0x37,
		0xbc, 0x04, 0x78, 0x09, 0xf0, 0x12, 0xe0, 0x25, 0xc0, 0x4b, 0x80, 0x97, 0xc0, 0xee, 0x25, 0x2c,
		0xd8, 0x1d, 0x78, 0x0a, 0x81, 0x5f, 0xa3, 0x9c, 0x5a, 0x36, 0x3e, 0x21, 0x95, 0x51, 0xce, 0xc6,
		0x27, 0x9e, 0xb2, 0xfd, 0x83, 0x22, 0xfc, 0x03, 0xf8, 0x07, 0xf0, 0x0f, 0xe0, 0x1f, 0xac, 0x79,
		0x95, 0xb2, 0x02, 0xc5, 0xde, 0x84, 0x92, 0x03, 0xc6, 0x3e, 0xa0, 0x90, 0x1a, 0x38, 0x4e, 0x88,
		0x1a, 0x26, 0x46, 0x11, 0x93, 0x34, 0x05, 0x29, 0x30, 0x09, 0x49, 0x9b, 0x86, 0xd4, 0x98, 0x88,
		0xd4, 0x98, 0x8a, 0x74, 0x98, 0x0c, 0xb9, 0xa6, 0x43, 0xb2, 0x09, 0x49, 0x8e, 0x6a, 0xfa, 0x34,
		0xfe, 0xd9, 0xd0, 0x55, 0xbd, 0x97, 0x84, 0xc2, 0x4f, 0xf1, 0xbd, 0x92, 0xc0, 0xd4, 0xc9, 0x74,
		0xeb, 0x9c, 0xfd, 0x97, 0x0c, 0xc0, 0xe5, 0x92, 0xee, 0xde, 0xe9, 0xdd, 0x84, 0x77, 0x02, 0xe1,
		0x43, 0xb2, 0xf7, 0x91, 0x96, 0xfe, 0x89, 0x73, 0x9d, 0x4c, 0xba, 0x8f, 0x62, 0x42, 0x30, 0xb8,
		0x2c, 0xa2, 0x09, 0x76, 0xf9, 0xf4, 0x8b, 0x68, 0xb9, 0x52, 0xa9, 0x14, 0x93, 0xea, 0xf0, 0x09,
		0x49, 0x4d, 0x99, 0x7b, 0x90, 0xdc, 0xac, 0xed, 0x2d, 0xed, 0x70, 0x2a, 0xf3, 0xb8, 0x5d, 0x02,
		0x3b, 0xab, 0x3e, 0x77, 0x4b, 0xfa, 0x0e, 0x2b, 0xe8, 0x34, 0xe8, 0x34, 0xe8, 0x34, 0xe8, 0x34,
		0xe8, 0x34, 0xe8, 0x34, 0xe8, 0x34, 0xe8, 0x34, 0x48, 0x0a, 0xe8, 0x34, 0xe8, 0x34, 0x24, 0x15,
		0x74, 0x1a, 0x74, 0x3a, 0x9e, 0xd0, 0x4a, 0xac, 0xf5, 0xbf, 0xd1, 0xdd, 0x92, 0x56, 0xfb, 0x1f,
		0x74, 0x1a, 0x74, 0x1a, 0x74, 0x1a, 0x74, 0x1a, 0x74, 0x5a, 0xaa, 0xc6, 0xcb, 0xed, 0x5d, 0xb0,
		0x09, 0xe4, 0x65, 0xf6, 0x6b, 0x9e, 0x03, 0x6e, 0x42, 0x9d, 0x6e, 0xbd, 0x1b, 0x48, 0x43, 0xaf,
		0x03, 0x9f, 0xdf, 0x96, 0xc4, 0x42, 0x24, 0xd9, 0x77, 0xd8, 0xbb, 0x8b, 0x74, 0xf4, 0x46, 0xd8,
		0x19, 0x3f, 0x7a, 0xab, 0x12, 0x56, 0x25, 0xd5, 0x8f, 0xf3, 0xcd, 0x9b, 0x91, 0x7a, 0x72, 0x2b,
		0xe5, 0xbd, 0x56, 0x3e, 0xe7, 0x65, 0x9e, 0x77, 0xc8, 0xa5, 0xbf, 0xfc, 0xdc, 0x77, 0x43, 0x1f,
		0xff, 0xf9, 0xc5, 0x7d, 0x57, 0x4b, 0x9f, 0x38, 0x2b, 0xd3, 0xc9, 0x57, 0xd0, 0x6c, 0x17, 0x33,
		0xf9, 0x5f, 0xf1, 0x32, 0xcf, 0xdc, 0xce, 0x49, 0xdb, 0x75, 0x56, 0x1a, 0xba, 0xed, 0x54, 0x1d,
		0x47, 0x52, 0x25, 0x95, 0xaf, 0xba, 0x51, 0xeb, 0x8b, 0x31, 0x0b, 0x90, 0x14, 0xc5, 0x53, 0xbe,
		0x6a, 0xbf, 0x17, 0x66, 0x4c, 0xa6, 0x86, 0xae, 0x72, 0x65, 0xf5, 0x84, 0x25, 0x7a, 0x1f, 0xc7,
		0x4b, 0x6c, 0x0c, 0xfb, 0x7d, 0x99, 0x53, 0x7e, 0xb3, 0x85, 0x25, 0x25, 0x4c, 0xc9, 0xad, 0x21,
		0x92, 0x8d, 0xe2, 0x76, 0x18, 0x43, 0x45, 0xca, 0xb1, 0xc6, 0x6c, 0x9a, 0x3f, 0x05, 0xb5, 0x90,
		0xf9, 0xd5, 0x17, 0xb5, 0x90, 0xdf, 0x54, 0xd7, 0xdd, 0xad, 0x8a, 0xbc, 0xa4, 0x97, 0x99, 0xa9,
		0x8e, 0xbc, 0x97, 0x62, 0x95, 0x9b, 0xf9, 0x90, 0xae, 0x78, 0xf1, 0x04, 0xe1, 0x78, 0xdd, 0x45,
		0x7e, 0xf7, 0x30, 0x11, 0x77, 0x50, 0x82, 0xfb, 0x27, 0xc1, 0xdd, 0xa3, 0x16, 0x56, 0x66, 0xbb,
		0x90, 0x11, 0x7b, 0xc0, 0x80, 0xff, 0xe9, 0xc6, 0x7d, 0x5a, 0xa4, 0xa7, 0xc3, 0x63, 0x9a, 0x91,
		0x88, 0x94, 0x84, 0x4b, 0x39, 0x52, 0xab, 0x14, 0x84, 0x6a, 0x90, 0x3a, 0xf1, 0xa7, 0x91, 0xf8,
		0xf8, 0xf2, 0x49, 0x20, 0x9b, 0x8a, 0xb7, 0x6a, 0xcf, 0x86, 0x4e, 0xd7, 0xc7, 0x61, 0x7e, 0xd8,
		0x62, 0x69, 0x78, 0x22, 0x5d, 0xa2, 0xad, 0x48, 0x43, 0x5e, 0x71, 0x86, 0x23, 0x51, 0x83, 0x31,
		0x01, 0x83, 0x2b, 0xb1, 0x82, 0x3d, 0x61, 0x82, 0x3d, 0x11, 0x82, 0x37, 0xc1, 0x21, 0x5d, 0xf6,
		0x89, 0xba, 0xa2, 0xca, 0x92, 0xe6, 0xd3, 0xcb, 0xd6, 0x3a, 0x7c, 0xa1, 0x16, 0x2f, 0x9e, 0xc2,
		0x57, 0x6c, 0xf9, 0x63, 0x9c, 0xf9, 0x61, 0x12, 0xf2, 0xbf, 0xb8, 0xf3, 0xbb, 0xa4, 0xe5, 0x6f,
		0x49, 0xcb, 0xcf, 0x92, 0x93, 0x7f, 0x95, 0xee, 0x00, 0x09, 0x57, 0x21, 0x28, 0x45, 0x1f, 0x3c,
		0x97, 0xf8, 0xdb, 0x5a, 0xb9, 0xb3, 0x64, 0xbc, 0x97, 0xd5, 0x11, 0x7a, 0x59, 0xa5, 0x00, 0xde,
		0xa4, 0xc3, 0x9c, 0x74, 0xb8, 0x93, 0x0b, 0x7b, 0x3c, 0xf0, 0xc7, 0x04, 0x83, 0xec, 0x70, 0xb8,
		0x40, 0xc5, 0x65, 0x14, 0x3c, 0x95, 0x5a, 0xe8, 0x54, 0x7a, 0xe7, 0xaa, 0x22, 0x3a, 0x57, 0x65,
		0x00, 0x48, 0x13, 0x03, 0xd4, 0xc4, 0x80, 0x35, 0x19, 0x80, 0xe5, 0x05, 0x5a, 0x66, 0xc0, 0x95,
		0x06, 0xbc, 0xde, 0x44, 0x5d, 0x73, 0x68, 0x38, 0xc2, 0xb2, 0x13, 0xe8, 0x5d, 0x35, 0x9b, 0x79,
		0xcb, 0xeb, 0x4e, 0xa3, 0x2f, 0xc5, 0x36, 0xc0, 0x76, 0xe2, 0xf0, 0x9d, 0x38, 0x8c, 0x27, 0x0b,
		0xe7, 0x72, 0x60, 0x5d, 0x12, 0xbc, 0x4b, 0x87, 0x79, 0x6f, 0xc2, 0xbb, 0xe1, 0x93, 0xda, 0x13,
		0x5d, 0x6d, 0xa0, 0xea, 0x96, 0x3a, 0xf8, 0xe9, 0xd8, 0xc9, 0x1d, 0xf4, 0xf5, 0xdf, 0x0a, 0xce,
		0xfb, 0x6e, 0x9b, 0x81, 0x48, 0x81, 0xa1, 0x48, 0xda, 0x60, 0xa4, 0xc6, 0x70, 0xa4, 0xc6, 0x80,
		0xa4, 0xc3, 0x90, 0xc8, 0x35, 0x28, 0x92, 0x0d, 0x8b, 0xf7, 0x8a, 0x93, 0x3f, 0xef, 0x3b, 0x75,
		0xf3, 0xcb, 0xa5, 0x04, 0x4f, 0xfb, 0x9e, 0xa2, 0x82, 0x96, 0xbc, 0x07, 0x4f, 0x55, 0x05, 0xad,
		0x23, 0xd4, 0x25, 0x5a, 0x51, 0x4b, 0x54, 0xd0, 0x4a, 0x5b, 0x05, 0xad, 0x44, 0x4e, 0x9c, 0x41,
		0x6a, 0x33, 0xe0, 0x2d, 0x24, 0x37, 0x2b, 0xaa, 0x69, 0x51, 0x72, 0xed, 0xa7, 0x61, 0xdf, 0xd1,
		0xbb, 0x9a, 0xed, 0xa4, 0x86, 0x72, 0xaf, 0xdc, 0x11, 0x98, 0x37, 0x98, 0x37, 0x98, 0x37, 0x98,
		0x37, 0x98, 0x37, 0x98, 0x37, 0x98, 0x37, 0x98, 0x37, 0x98, 0x37, 0x98, 0x37, 0x98, 0x37, 0xa4,
		0x16, 0xcc, 0x1b, 0xcc, 0x3b, 0xd3, 0xcc, 0x3b, 0x2d, 0x7c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c,
		0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c,
		0x1b, 0x52, 0x0b, 0x96, 0x0d, 0x96, 0x9d, 0x65, 0x96, 0x2d, 0x8c, 0x74, 0xb0, 0xec, 0x85, 0xfb,
		0x00, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb,
		0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x86, 0xd4, 0x82, 0x65, 0x83, 0x65, 0x67, 0x90, 0x65, 0xf7,
		0x2c, 0x73, 0x90, 0x8a, 0xcd, 0xec, 0xd5, 0x1b, 0x01, 0xcf, 0x06, 0xcf, 0x06, 0xcf, 0x06, 0xcf,
		0x06, 0xcf, 0x06, 0xcf, 0x06, 0xcf, 0x06, 0xcf, 0x06, 0xcf, 0x06, 0xcf, 0x06, 0xcf, 0x86, 0xd4,
		0x82, 0x67, 0x83, 0x67, 0x67, 0x90, 0x67, 0x8b, 0xdf, 0x5d, 0x31, 0x70, 0x52, 0xc1, 0xb4, 0xfd,
		0xb7, 0x02, 0xae, 0x0d, 0xae, 0x0d, 0xae, 0x0d, 0xae, 0x0d, 0xae, 0x0d, 0xae, 0x0d, 0xae, 0x0d,
		0xae, 0x0d, 0xae, 0x0d, 0xae, 0x0d, 0xae, 0x0d, 0xa9, 0x05, 0xd7, 0x06, 0xd7, 0xce, 0x20, 0xd7,
		0x76, 0x4c, 0x47, 0xeb, 0x4f, 0xf9, 0xed, 0xdd, 0x8b, 0x23, 0x12, 0xe4, 0xda, 0xfe, 0x5b, 0x01,
		0xd7, 0x06, 0xd7, 0x06, 0xd7, 0x06, 0xd7, 0x06, 0xd7, 0x06, 0xd7, 0x06, 0xd7, 0x06, 0xd7, 0x06,
		0xd7, 0x06, 0xd7, 0x06, 0xd7, 0x86, 0xd4, 0x82, 0x6b, 0x83, 0x6b, 0x67, 0x9c, 0x6b, 0x27, 0xbb,
		0xad, 0xed, 0xbb, 0x13, 0x30, 0x6d, 0x30, 0x6d, 0x30, 0x6d, 0x30, 0x6d, 0x30, 0x6d, 0x30, 0x6d,
		0x30, 0x6d, 0x30, 0x6d, 0x30, 0x6d, 0x30, 0x6d, 0x30, 0x6d, 0x48, 0x2d, 0x98, 0x36, 0x98, 0x76,
		0x66, 0x99, 0xf6, 0xa4, 0x12, 0x59, 0x2a, 0x76, 0xb5, 0x17, 0x6f, 0x05, 0x5c, 0x1b, 0x5c, 0x1b,
		0x5c, 0x1b, 0x5c, 0x1b, 0x5c, 0x1b, 0x5c, 0x1b, 0x5c, 0x1b, 0x5c, 0x1b, 0x5c, 0x1b, 0x5c, 0x1b,
		0x5c, 0x1b, 0x52, 0x0b, 0xae, 0x0d, 0xae, 0x9d, 0x71, 0xae, 0x9d, 0x86, 0x5d, 0x6d, 0xd4, 0x1f,
		0x07, 0xd3, 0x06, 0xd3, 0x06, 0xd3, 0x06, 0xd3, 0x06, 0xd3, 0x06, 0xd3, 0x06, 0xd3, 0x06, 0xd3,
		0x06, 0xd3, 0x06, 0xd3, 0x86, 0xd4, 0x82, 0x69, 0x83, 0x69, 0x67, 0x9b, 0x69, 0x0f, 0x0d, 0xbd,
		0xab, 0xd9, 0xe9, 0x28, 0x8c, 0xb6, 0xe6, 0x5e, 0xc0, 0xb6, 0xc1, 0xb6, 0xc1, 0xb6, 0xc1, 0xb6,
		0xc1, 0xb6, 0xc1, 0xb6, 0xc1, 0xb6, 0xc1, 0xb6, 0xc1, 0xb6, 0xc1, 0xb6, 0xc1, 0xb6, 0x21, 0xb5,
		0x60, 0xdb, 0x60, 0xdb, 0x99, 0x9a, 0x49, 0x12, 0xb6, 0x29, 0x55, 0xc3, 0x30, 0x1d, 0x6d, 0xac,
		0xa9, 0x52, 0xe1, 0x4c, 0xb1, 0xbb, 0x8f, 0xe2, 0x49, 0x1b, 0x68, 0xce, 0xe3, 0xd8, 0xc3, 0xcb,
		0x9b, 0x03, 0x61, 0x74, 0x5d, 0x56, 0xab, 0x1a, 0xc2, 0xf9, 0x65, 0x5a, 0x3f, 0x55, 0xdd, 0xb0,
		0x1d, 0xcd, 0xe8, 0x8a, 0xfc, 0xea, 0x17, 0xb6, 0xef, 0x9b, 0x7c, 0xd7, 0x34, 0x0c, 0xe1, 0xe2,
		0x8d, 0x3a, 0x30, 0x75, 0xc3, 0xb1, 0x7d, 0xdf, 0xe4, 0x85, 0xd1, 0x9b, 0xfe, 0xd3, 0xec, 0x6f,
		0xf9, 0xe7, 0xdf, 0x7d, 0xcd, 0xf0, 0x3e, 0xaa, 0xcf, 0x86, 0x6e, 0x2f, 0x7d, 0xca, 0xeb, 0x83,
		0xe7, 0x52, 0xde, 0x76, 0x34, 0x67, 0x3c, 0x83, 0xeb, 0x83, 0xca, 0x8c, 0x30, 0x28, 0xb6, 0x63,
		0x0d, 0xbb, 0x8e, 0x31, 0xf5, 0x82, 0xaf, 0xbc, 0x57, 0x74, 0x39, 0x79, 0xfc, 0xfa, 0xf4, 0xe9,
		0x3b, 0x2b, 0x9f, 0xed, 0xd5, 0x2f, 0x3a, 0x17, 0xde, 0xcb, 0x68, 0xba, 0xaf, 0x60, 0xf5, 0x8b,
		0x4e, 0x6d, 0xf6, 0x72, 0xbc, 0xbf, 0x75, 0xbe, 0x8f, 0x5f, 0x8e, 0xf7, 0xf1, 0xbb, 0xa1, 0xdb,
		0x8b, 0x1f, 0x3a, 0xf5, 0xc1, 0x73, 0xa9, 0x73, 0x33, 0x7e, 0x35, 0x9d, 0x8b, 0xd9, 0xab, 0xd9,
		0xdb, 0x0e, 0xf5, 0xe3, 0x9d, 0x81, 0x59, 0xb1, 0x65, 0x2b, 0x74, 0xd6, 0x14, 0x59, 0x82, 0xfe,
		0x66, 0x44, 0x6f, 0x79, 0xd5, 0x95, 0x4f, 0x89, 0x78, 0x46, 0x66, 0x52, 0x4b, 0x59, 0xea, 0x98,
		0x1d, 0x35, 0x64, 0x54, 0xc0, 0xd4, 0x2b, 0x1e, 0x8f, 0xca, 0xd1, 0x2b, 0x04, 0x83, 0x32, 0x28,
		0xfa, 0xe0, 0xb9, 0xcc, 0xa6, 0x02, 0x5e, 0xa8, 0xd0, 0x9d, 0x85, 0x49, 0x95, 0xa7, 0x91, 0xc0,
		0x02, 0xd3, 0xf0, 0xdc, 0x9b, 0x3a, 0x32, 0x36, 0x6f, 0x24, 0x6e, 0xd2, 0xc8, 0xda, 0x8c, 0x91,
		0xbe, 0xe9, 0x22, 0x7d, 0x73, 0x45, 0xee, 0x26, 0x4a, 0xb6, 0xcc, 0xf7, 0x27, 0xdd, 0x62, 0xb6,
		0xdb, 0xae, 0x2b, 0xc6, 0x2e, 0xc4, 0x33, 0xbd, 0x94, 0xe1, 0x03, 0x33, 0x03, 0xa5, 0x1f, 0x30,
		0x8b, 0xcc, 0x13, 0x49, 0xdc, 0xf5, 0x4e, 0x60, 0x97, 0x5b, 0xf6, 0xae, 0x76, 0x62, 0xbb, 0xd8,
		0x89, 0xed, 0x5a, 0x27, 0xb3, 0x4b, 0x9d, 0xed, 0x30, 0x06, 0x37, 0xf0, 0x7a, 0x13, 0x79, 0x81,
		0x3d, 0x69, 0xf2, 0xbf, 0xb2, 0xad, 0x2d, 0x2b, 0xa4, 0x28, 0x09, 0x96, 0xa5, 0xf9, 0xb3, 0x49,
		0xc2, 0x74, 0x82, 0x70, 0x9d, 0x14, 0x6c, 0x27, 0x0e, 0xdf, 0x89, 0xc3, 0x78, 0xb2, 0x70, 0x2e,
		0x07, 0xd6, 0x25, 0xc1, 0xbb, 0x74, 0x98, 0xf7, 0x26, 0xbc, 0x1b, 0x3e, 0x4d, 0xf3, 0x45, 0x75,
		0x2b, 0xe1, 0xf4, 0x55, 0xff, 0xad, 0x20, 0x7b, 0x75, 0xdb, 0x0c, 0x44, 0x0a, 0x0c, 0x45, 0xd2,
		0x06, 0x23, 0x35, 0x86, 0x23, 0x35, 0x06, 0x24, 0x1d, 0x86, 0x44, 0xae, 0x41, 0x91, 0x6c, 0x58,
		0xbc, 0x57, 0x8c, 0xec, 0x55, 0x64, 0xaf, 0x4a, 0x7e, 0x70, 0x64, 0xaf, 0x2e, 0xdc, 0x07, 0xf2,
		0x00, 0x53, 0x82, 0x84, 0xcb, 0x22, 0x8a, 0xec, 0x55, 0x48, 0x6d, 0x06, 0xbc, 0x85, 0xe4, 0x66,
		0xc5, 0x59, 0x51, 0x4a, 0xae, 0xfd, 0x34, 0xec, 0x3b, 0x93, 0xb3, 0x9a, 0x69, 0xa1, 0xdc, 0x2b,
		0x77, 0x04, 0xe6, 0x0d, 0xe6, 0x0d, 0xe6, 0x0d, 0xe6, 0x0d, 0xe6, 0x0d, 0xe6, 0x0d, 0xe6, 0x0d,
		0xe6, 0x0d, 0xe6, 0x0d, 0xe6, 0x0d, 0xe6, 0x0d, 0xa9, 0x05, 0xf3, 0x06, 0xf3, 0xce, 0x34, 0xf3,
		0x4e, 0x0b, 0xdf, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06,
		0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x86, 0xd4, 0x82, 0x65, 0x83, 0x65, 0x67,
		0x99, 0x65, 0xa7, 0xa1, 0xe7, 0xd0, 0xca, 0x7d, 0x80, 0x65, 0x83, 0x65, 0x83, 0x65, 0x83, 0x65,
		0x83, 0x65, 0x83, 0x65, 0x83, 0x65, 0x83, 0x65, 0x83, 0x65, 0x83, 0x65, 0x83, 0x65, 0x43, 0x6a,
		0xc1, 0xb2, 0xc1, 0xb2, 0x33, 0xc8, 0xb2, 0x7b, 0x96, 0x39, 0x48, 0xc5, 0x66, 0xf6, 0xea, 0x8d,
		0x80, 0x67, 0x83, 0x67, 0x83, 0x67, 0x83, 0x67, 0x83, 0x67, 0x83, 0x67, 0x83, 0x67, 0x83, 0x67,
		0x83, 0x67, 0x83, 0x67, 0x83, 0x67, 0x43, 0x6a, 0xc1, 0xb3, 0xc1, 0xb3, 0x33, 0xc8, 0xb3, 0xc5,
		0xef, 0xae, 0x18, 0xa4, 0xa3, 0xb1, 0xaf, 0xff, 0x56, 0xc0, 0xb5, 0xc1, 0xb5, 0xc1, 0xb5, 0xc1,
		0xb5, 0xc1, 0xb5, 0xc1, 0xb5, 0xc1, 0xb5, 0xc1, 0xb5, 0xc1, 0xb5, 0xc1, 0xb5, 0xc1, 0xb5, 0x21,
		0xb5, 0xe0, 0xda, 0xe0, 0xda, 0x19, 0xe4, 0xda, 0x8e, 0xe9, 0x68, 0xfd, 0x29, 0xbf, 0xbd, 0x7b,
		0x71, 0x44, 0x82, 0x5c, 0xdb, 0x7f, 0x2b, 0xe0, 0xda, 0xe0, 0xda, 0xe0, 0xda, 0xe0, 0xda, 0xe0,
		0xda, 0xe0, 0xda, 0xe0, 0xda, 0xe0, 0xda, 0xe0, 0xda, 0xe0, 0xda, 0xe0, 0xda, 0x90, 0x5a, 0x70,
		0x6d, 0x70, 0xed, 0x8c, 0x73, 0xed, 0x64, 0xb7, 0xb5, 0x7d, 0x77, 0x02, 0xa6, 0x0d, 0xa6, 0x0d,
		0xa6, 0x0d, 0xa6, 0x0d, 0xa6, 0x0d, 0xa6, 0x0d, 0xa6, 0x0d, 0xa6, 0x0d, 0xa6, 0x0d, 0xa6, 0x0d,
		0xa6, 0x0d, 0xa9, 0x05, 0xd3, 0x06, 0xd3, 0xce, 0x2c, 0xd3, 0x9e, 0x54, 0x22, 0x4b, 0xc5, 0xae,
		0xf6, 0xe2, 0xad, 0x80, 0x6b, 0x83, 0x6b, 0x83, 0x6b, 0x83, 0x6b, 0x83, 0x6b, 0x83, 0x6b, 0x83,
		0x6b, 0x83, 0x6b, 0x83, 0x6b, 0x83, 0x6b, 0x83, 0x6b, 0x43, 0x6a, 0xc1, 0xb5, 0xc1, 0xb5, 0x33,
		0xce, 0xb5, 0xd3, 0xb0, 0xab, 0x8d, 0xfa, 0xe3, 0x60, 0xda, 0x60, 0xda, 0x60, 0xda, 0x60, 0xda,
		0x60, 0xda, 0x60, 0xda, 0x60, 0xda, 0x60, 0xda, 0x60, 0xda, 0x60, 0xda, 0x90, 0x5a, 0x30, 0x6d,
		0x30, 0xed, 0x6c, 0x33, 0xed, 0xa1, 0xa1, 0x77, 0x35, 0x3b, 0x1d, 0x85, 0xd1, 0xd6, 0xdc, 0x0b,
		0xd8, 0x36, 0xd8, 0x36, 0xd8, 0x36, 0xd8, 0x36, 0xd8, 0x36, 0xd8, 0x36, 0xd8, 0x36, 0xd8, 0x36,
		0xd8, 0x36, 0xd8, 0x36, 0xd8, 0x36, 0xa4, 0x16, 0x6c, 0x1b, 0x6c, 0x3b, 0x53, 0x33, 0x49, 0xc2,
		0x36, 0xa5, 0x6a, 0x18, 0xa6, 0xa3, 0x8d, 0x35, 0x55, 0x2a, 0x9c, 0x29, 0x76, 0xf7, 0x51, 0x3c,
		0x69, 0x03, 0xcd, 0x79, 0x1c, 0x7b, 0x78, 0x79, 0x73, 0x20, 0x8c, 0xae, 0xcb, 0x6a, 0x55, 0x43,
		0x38, 0xbf, 0x4c, 0xeb, 0xa7, 0xaa, 0x1b, 0xb6, 0xa3, 0x19, 0x5d, 0x91, 0x5f, 0xfd, 0xc2, 0xf6,
		0x7d, 0x93, 0xef, 0x9a, 0x86, 0x21, 0x5c, 0xbc, 0x51, 0x07, 0xa6, 0x6e, 0x38, 0xb6, 0xef, 0x9b,
		0xbc, 0x30, 0x7a, 0xd3, 0x7f, 0x9a, 0xfd, 0x2d, 0xff, 0xfc, 0xbb, 0xaf, 0x19, 0xde, 0x47, 0xf5,
		0xd9, 0xd0, 0xed, 0xa5, 0x4f, 0x79, 0x7d, 0xf0, 0x5c, 0xce, 0xdb, 0x8e, 0xe6, 0x8c, 0x67, 0x70,
		0x7d, 0x50, 0x99, 0x11, 0x06, 0xc5, 0x76, 0xac, 0x61, 0xd7, 0x31, 0xa6, 0x5e, 0xf0, 0x95, 0xf7,
		0x8a, 0x2e, 0x27, 0x8f, 0x5f, 0x9f, 0x3e, 0x7d, 0x67, 0xe5, 0xb3, 0xbd, 0xfa, 0x45, 0xe7, 0xc2,
		0x7b, 0x19, 0x4d, 0xf7, 0x15, 0xac, 0x7e, 0xd1, 0xa9, 0xcd, 0x5e, 0x8e, 0xf7, 0xb7, 0xce, 0xf7,
		0xf1, 0xcb, 0xf1, 0x3e, 0x7e, 0x37, 0x74, 0x7b, 0xf1, 0x43, 0xa7, 0x3e, 0x78, 0x2e, 0x77, 0x6e,
		0xc6, 0xaf, 0xa6, 0x73, 0x31, 0x7b, 0x35, 0x7b, 0xdb, 0xa1, 0x7e, 0xbc, 0x33, 0x30, 0x2b, 0xb6,
		0x6c, 0x85, 0xce, 0x9a, 0x22, 0x4b, 0xd0, 0xdf, 0x8c, 0xe8, 0x2d, 0xaf, 0xba, 0xf2, 0x29, 0x11,
		0xcf, 0xc8, 0x4c, 0x6a, 0x29, 0x4b, 0x1d, 0xb3, 0xa3, 0x86, 0x8c, 0x0a, 0x98, 0x7a, 0xc5, 0xe3,
		0x51, 0x39, 0x7a, 0x85, 0x60, 0x50, 0x06, 0x65, 0x82, 0xbe, 0x5c, 0x3a, 0xe0, 0xc5, 0x0a, 0x39,
		0x41, 0x7e, 0x16, 0x0b, 0x2c, 0x30, 0x0d, 0xef, 0x6d, 0xeb, 0x14, 0x99, 0x26, 0x90, 0xb0, 0x7d,
		0x23, 0x71, 0x9b, 0x46, 0xd6, 0x76, 0x8c, 0xf4, 0x6d, 0x17, 0xe9, 0xdb, 0x2b, 0x72, 0xb7, 0x51,
		0xb2, 0x65, 0xc0, 0x3f, 0xe9, 0x16, 0xaf, 0xc2, 0xdc, 0x59, 0x7a, 0xef, 0x41, 0xa8, 0x3d, 0xf3,
		0x49, 0x93, 0x10, 0xf6, 0xf6, 0xf4, 0x73, 0x79, 0x5a, 0x66, 0xf9, 0x92, 0xb3, 0x4f, 0x2e, 0x6d,
		0x5f, 0x5c, 0xe6, 0x3e, 0x78, 0x02, 0xfb, 0xde, 0xb2, 0xf7, 0xb9, 0x13, 0xdb, 0xd7, 0x4e, 0x6c,
		0x1f, 0x3b, 0x99, 0x7d, 0xeb, 0x6c, 0x07, 0x36, 0xa4, 0xed, 0x43, 0xcf, 0xf3, 0x8b, 0x74, 0xc3,
		0x39, 0x2e, 0xca, 0x50, 0xb8, 0x29, 0x3e, 0x56, 0x24, 0x4c, 0x25, 0x77, 0x53, 0x59, 0x62, 0x44,
		0x39, 0x89, 0x4d, 0xe3, 0xa4, 0x36, 0x89, 0x13, 0xdf, 0x5e, 0x4b, 0x6e, 0x3b, 0x4d, 0x66, 0xb2,
		0x63, 0x12, 0x9b, 0xbc, 0x9e, 0x48, 0x95, 0x8a, 0x67, 0xa5, 0xb3, 0x72, 0xa5, 0x78, 0x76, 0x02,
		0xd9, 0x92, 0x25, 0x5b, 0x5b, 0xb2, 0x83, 0xd1, 0xce, 0x6a, 0x68, 0x97, 0x31, 0x58, 0xd0, 0x3f,
		0x56, 0x9f, 0xad, 0x7b, 0x75, 0x1a, 0x1c, 0x94, 0x44, 0xb2, 0x16, 0x27, 0x05, 0xc5, 0x02, 0xc5,
		0x02, 0xc5, 0x02, 0xc5, 0x02, 0xc5, 0x5a, 0x0a, 0xd7, 0x5b, 0xba, 0xf1, 0x20, 0x91, 0x62, 0x15,
		0x4e, 0x61, 0x1b, 0xfd, 0xb6, 0x51, 0x68, 0x96, 0xa1, 0x1b, 0x0f, 0xea, 0x93, 0xd9, 0x93, 0x69,
		0x1d, 0x97, 0xa6, 0x85, 0x7d, 0x84, 0x7d, 0x84, 0x7d, 0x84, 0x7d, 0x84, 0x7d, 0x4c, 0x08, 0x22,
		0x97, 0xcc, 0x64, 0x49, 0xc2, 0x5c, 0x35, 0x63, 0xf8, 0x24, 0x4f, 0xc3, 0x5b, 0xe6, 0xcd, 0xc4,
		0xd9, 0x90, 0x9a, 0xe7, 0x7a, 0x34, 0x5e, 0xc5, 0x8b, 0xab, 0xcb, 0xd6, 0xf5, 0x55, 0xa3, 0xd3,
		0x6c, 0x54, 0x2f, 0x6b, 0x32, 0x33, 0x48, 0x0b, 0xe3, 0xd9, 0x3f, 0x55, 0x5b, 0xd5, 0xe9, 0xd4,
		0x5b, 0x95, 0xba, 0xdc, 0x32, 0xeb, 0x2e, 0x7a, 0x49, 0x5c, 0xcd, 0xe5, 0x85, 0x94, 0x1a, 0x19,
		0x5b, 0x5c, 0xc6, 0xf3, 0x5c, 0x01, 0xb9, 0xb6, 0x5b, 0xeb, 0x8d, 0x3f, 0x0d, 0xfb, 0x8e, 0xde,
		0x13, 0xb6, 0xa3, 0x1b, 0x6e, 0xe2, 0xa0, 0xea, 0x58, 0xda, 0xfd, 0xbd, 0xde, 0x95, 0xe7, 0x98,
		0x6f, 0xbc, 0x03, 0xf8, 0xe8, 0xf0, 0xd1, 0xe1, 0xa3, 0xc3, 0x47, 0x87, 0x8f, 0xbe, 0x5c, 0x86,
		0xc4, 0x34, 0x64, 0xfa, 0xe6, 0x67, 0x12, 0xe6, 0x9a, 0xbe, 0xc6, 0xad, 0xcb, 0x12, 0x98, 0x2d,
		0x9a, 0x3e, 0x50, 0xb5, 0x5e, 0xcf, 0x12, 0xb6, 0xd4, 0x13, 0x5d, 0x12, 0x57, 0x30, 0x99, 0x95,
		0x94, 0xbf, 0xa2, 0x6b, 0x56, 0xf6, 0xb9, 0x94, 0xc0, 0xda, 0xfa, 0xd6, 0x38, 0x89, 0x8a, 0x11,
		0x4d, 0xcd, 0x71, 0x84, 0x65, 0x24, 0x56, 0x33, 0x42, 0xd9, 0xbf, 0x3d, 0x52, 0xcf, 0xda, 0xaf,
		0xb7, 0x05, 0xf5, 0xac, 0x3d, 0xf9, 0x6b, 0xc1, 0xfd, 0xe3, 0x4f, 0x71, 0xf4, 0x5a, 0xbc, 0x3d,
		0x52, 0x4b, 0xd3, 0x6f, 0x8b, 0x27, 0xb7, 0x47, 0xea, 0x49, 0xfb, 0x60, 0xff, 0xc7, 0x8f, 0xc3,
		0xb0, 0xd7, 0x1c, 0xfc, 0x39, 0x1e, 0xc9, 0x2f, 0xf2, 0xd2, 0x4e, 0x62, 0x39, 0xaf, 0x6e, 0xea,
		0x7f, 0x27, 0xbe, 0xa6, 0xff, 0xec, 0xcb, 0x5a, 0xd5, 0x83, 0x7f, 0x29, 0xdb, 0x7e, 0x4c, 0xfd,
		0xc3, 0x0e, 0xc1, 0x70, 0x19, 0x30, 0x9c, 0x14, 0x0c, 0xbb, 0xda, 0xa7, 0xa9, 0xf7, 0x55, 0xf5,
		0x73, 0xfb, 0x4f, 0xe1, 0x43, 0x69, 0x74, 0x7e, 0xf0, 0xa7, 0x32, 0x5a, 0xfd, 0xf2, 0x75, 0xdd,
		0xcf, 0x0a, 0x1f, 0x2a, 0xa3, 0xf3, 0x0d, 0xff, 0x52, 0x1e, 0x9d, 0x07, 0x1c, 0xe3, 0x64, 0xb4,
		0xef, 0xfb, 0xe9, 0xf8, 0xfb, 0xe2, 0xa6, 0x0b, 0x4a, 0x1b, 0x2e, 0x38, 0xde, 0x74, 0xc1, 0xf1,
		0x86, 0x0b, 0x36, 0xde, 0x52, 0x71, 0xc3, 0x05, 0x27, 0xa3, 0x57, 0xdf, 0xef, 0xf7, 0xd7, 0xff,
		0xb4, 0x3c, 0x3a, 0x78, 0xdd, 0xf4, 0x6f, 0x95, 0xd1, 0xeb, 0xf9, 0xc1, 0x01, 0x0c, 0x93, 0x74,
		0xc3, 0x04, 0x31, 0x97, 0x2f, 0xe6, 0xdb, 0x6f, 0xa8, 0xf7, 0xb6, 0xeb, 0xb9, 0x24, 0x39, 0x1e,
		0x09, 0x30, 0x79, 0x61, 0x0c, 0x9f, 0x84, 0x35, 0x39, 0x62, 0x9f, 0x00, 0x95, 0x2f, 0x49, 0x9c,
		0x53, 0xea, 0x86, 0xe9, 0x3c, 0x80, 0x90, 0xc4, 0xc6, 0xa9, 0x37, 0xbb, 0xbb, 0x81, 0x7a, 0xd3,
		0xaa, 0xb6, 0xea, 0x17, 0x9d, 0xfa, 0xe5, 0x97, 0xeb, 0xda, 0xcd, 0x4d, 0xe7, 0xba, 0xd6, 0x6c,
		0xd4, 0x2f, 0xaa, 0xad, 0xfa, 0xd5, 0x65, 0x12, 0xae, 0xa5, 0xbb, 0xab, 0xfa, 0xf1, 0x4b, 0x73,
		0xed, 0xfd, 0x6c, 0x77, 0x2d, 0x50, 0xe9, 0x5b, 0xae, 0xde, 0xd4, 0x9b, 0xde, 0x37, 0xdb, 0x71,
		0xfc, 0x37, 0xef, 0xe6, 0x0d, 0x81, 0x3c, 0xcf, 0x1d, 0xa1, 0xf2, 0x59, 0xaa, 0x67, 0xc1, 0xf1,
		0x08, 0xbf, 0x40, 0xdb, 0xcf, 0xba, 0xca, 0x5b, 0xa2, 0xc3, 0x67, 0xb8, 0xe7, 0x53, 0x62, 0x5b,
		0x39, 0x1c, 0xfb, 0xc2, 0xb6, 0x32, 0xa9, 0x78, 0x60, 0x5b, 0x19, 0xdb, 0xca, 0xef, 0x7a, 0x3e,
		0xd2, 0xb7, 0x95, 0xe5, 0xf2, 0x1a, 0x24, 0x7e, 0x72, 0xf0, 0x96, 0x6f, 0x4d, 0xf9, 0xd9, 0x9e,
		0x57, 0xff, 0xb9, 0x44, 0x9e, 0x67, 0xcc, 0x29, 0xdd, 0x97, 0x28, 0x95, 0x59, 0x8c, 0x45, 0x45,
		0x16, 0x73, 0x40, 0x5a, 0x67, 0x12, 0x1e, 0xf6, 0xb3, 0xa1, 0xcb, 0xf3, 0xad, 0xc7, 0x93, 0xc1,
		0xab, 0x86, 0x57, 0x0d, 0xaf, 0x1a, 0x5e, 0x35, 0xbc, 0xea, 0x45, 0xaf, 0xfa, 0x59, 0x57, 0xf5,
		0x1e, 0x6a, 0x3a, 0xc5, 0xf8, 0x6f, 0x57, 0x6a, 0x3a, 0x15, 0x50, 0x77, 0x47, 0xd2, 0x7f, 0x3b,
		0x53, 0xd3, 0xa9, 0x50, 0xae, 0x54, 0x2a, 0xc5, 0x02, 0x2a, 0x3a, 0x49, 0x93, 0x2c, 0x6c, 0x59,
		0x6c, 0x33, 0xa1, 0x92, 0xbd, 0x65, 0x31, 0x9f, 0x12, 0xe4, 0x0a, 0xe4, 0x0a, 0xe4, 0x0a, 0xe4,
		0x0a, 0xe4, 0x0a, 0x5b, 0x16, 0x0c, 0x4b, 0x87, 0x2d, 0x8b, 0x2c, 0x13, 0x0d, 0x6c, 0x59, 0x64,
		0xcf, 0xc3, 0xc6, 0x96, 0xc5, 0x7a, 0x0f, 0xdb, 0x91, 0x61, 0x45, 0x96, 0x1c, 0x6c, 0x77, 0x46,
		0xf8, 0xd7, 0xf0, 0xaf, 0xe1, 0x5f, 0xc3, 0xbf, 0x86, 0x7f, 0x0d, 0xff, 0x7a, 0xab, 0xfc, 0xeb,
		0x46, 0x51, 0xba, 0x7f, 0xdd, 0x38, 0x86, 0x77, 0x1d, 0x73, 0xca, 0x46, 0x51, 0x72, 0xb5, 0xb7,
		0xc6, 0x31, 0xaa, 0xbc, 0x25, 0xef, 0x5b, 0xa3, 0xd5, 0xec, 0x9a, 0x79, 0x32, 0xd1, 0x6a, 0x96,
		0x3b, 0x4a, 0x9f, 0xea, 0x5e, 0xb3, 0x8c, 0xfd, 0x9d, 0xb3, 0xd1, 0x6c, 0x96, 0x33, 0xd7, 0x4e,
		0x42, 0x8e, 0x1d, 0x33, 0x3d, 0x65, 0xa7, 0xa5, 0x68, 0x34, 0x9b, 0x0d, 0xda, 0x89, 0x46, 0xb3,
		0x29, 0x32, 0xdf, 0xec, 0x74, 0x72, 0xb1, 0xa8, 0xf8, 0xbd, 0x25, 0xee, 0x39, 0x35, 0x66, 0x46,
		0x1d, 0x19, 0xb3, 0xdf, 0x94, 0xe6, 0xd4, 0x03, 0x39, 0x3c, 0x9c, 0x58, 0xfb, 0xfc, 0x18, 0x90,
		0xb3, 0x62, 0xf4, 0xf6, 0x52, 0x2c, 0x92, 0x63, 0x1c, 0xe2, 0x31, 0x70, 0x4a, 0x43, 0xb7, 0x9d,
		0xaa, 0xe3, 0xf0, 0xb4, 0x54, 0x56, 0xbe, 0xea, 0x46, 0xad, 0x2f, 0xc6, 0xf8, 0xc2, 0x94, 0xe4,
		0xa4, 0x7c, 0xd5, 0x7e, 0x2f, 0xcc, 0x50, 0x38, 0x2d, 0x95, 0xca, 0x95, 0x52, 0xe9, 0xa8, 0x72,
		0x5c, 0x39, 0x3a, 0x3b, 0x39, 0x29, 0x94, 0x39, 0x52, 0xbb, 0x94, 0x2b, 0xab, 0x27, 0x2c, 0xd1,
		0xfb, 0x38, 0x5e, 0x14, 0x63, 0xd8, 0xef, 0x73, 0x4e, 0xf1, 0xcd, 0x16, 0x16, 0x4b, 0x96, 0x16,
		0xb5, 0x8c, 0x32, 0xb3, 0x9d, 0x4c, 0xb0, 0x1c, 0x06, 0x04, 0x4f, 0x33, 0xaf, 0xa1, 0x05, 0x77,
		0x3a, 0x08, 0xa6, 0x19, 0x89, 0x48, 0x41, 0xb8, 0x14, 0x23, 0xad, 0x0a, 0x41, 0xa8, 0x03, 0x69,
		0x93, 0x7d, 0x1a, 0x79, 0x8f, 0x2f, 0x9d, 0x04, 0x92, 0xa9, 0xd0, 0x26, 0x6a, 0x2e, 0xf4, 0x8f,
		0xa3, 0x0b, 0xf3, 0x78, 0x4e, 0x2b, 0xd1, 0x70, 0x1e, 0xcb, 0x2e, 0x12, 0x0d, 0xc8, 0xc0, 0xaa,
		0x19, 0x59, 0x34, 0x17, 0x6b, 0x66, 0x67, 0xc9, 0xec, 0xac, 0x98, 0x97, 0x05, 0xa7, 0xcb, 0x1a,
		0x7d, 0xd2, 0x69, 0x7d, 0x7d, 0xa5, 0x27, 0xec, 0xae, 0xa5, 0x0f, 0x58, 0x1c, 0x3f, 0x4f, 0x1b,
		0x16, 0x27, 0xa1, 0xe6, 0x56, 0x2c, 0xa1, 0x3d, 0xb6, 0x90, 0x1e, 0x67, 0x28, 0x4f, 0x42, 0x08,
		0x8f, 0x3b, 0x74, 0x27, 0x2d, 0x64, 0x27, 0x2d, 0x54, 0x27, 0x27, 0x44, 0x97, 0xee, 0xf8, 0x07,
		0x5b, 0x28, 0x8e, 0xbf, 0xef, 0x2d, 0x53, 0x9f, 0x5b, 0x42, 0xb2, 0x44, 0xe8, 0x61, 0x08, 0x43,
		0xbb, 0xeb, 0x8b, 0x1e, 0x9f, 0x1d, 0x98, 0x4d, 0x00, 0x1b, 0x00, 0x1b, 0x00, 0x1b, 0x00, 0x1b,
		0x40, 0x2a, 0xf1, 0x77, 0xa6, 0xd9, 0x17, 0x9a, 0xc1, 0x69, 0x04, 0x0a, 0x3b, 0x60, 0x04, 0x6c,
		0x57, 0xbb, 0x55, 0xdd, 0x70, 0x84, 0x75, 0xaf, 0x71, 0x10, 0x4e, 0xcf, 0x68, 0xaf, 0xce, 0x04,
		0xb3, 0x00, 0xb3, 0x00, 0xb3, 0x00, 0xb3, 0x00, 0x6a, 0xb0, 0x85, 0x91, 0xab, 0xed, 0xdf, 0x47,
		0xa1, 0xce, 0x91, 0x4c, 0xc3, 0xfe, 0x09, 0x61, 0xea, 0x23, 0xc1, 0xc6, 0xc9, 0x5e, 0x82, 0x82,
		0x4c, 0x2d, 0xc0, 0xe9, 0x11, 0x5c, 0x85, 0x64, 0x3f, 0x2a, 0x69, 0x51, 0x8d, 0x27, 0xa4, 0xd1,
		0x45, 0x2b, 0xda, 0x95, 0x11, 0x85, 0x71, 0x96, 0x4a, 0xe4, 0x6d, 0xd9, 0x46, 0xae, 0xbd, 0x46,
		0x93, 0x3a, 0x44, 0x97, 0x22, 0xc4, 0x9a, 0x0a, 0x44, 0x98, 0xf2, 0x43, 0x98, 0xda, 0x13, 0x55,
		0x06, 0x88, 0x80, 0x28, 0x0d, 0x00, 0x14, 0x03, 0x7a, 0x12, 0x85, 0x9c, 0x68, 0x60, 0x13, 0x1e,
		0x2a, 0xc2, 0x5d, 0x11, 0x52, 0xa0, 0x14, 0xf1, 0xdb, 0xb1, 0x34, 0x75, 0x38, 0x7e, 0x0f, 0x77,
		0xfd, 0x68, 0x6e, 0xb8, 0xf2, 0xeb, 0x51, 0x44, 0x6f, 0x59, 0x17, 0x43, 0x78, 0x67, 0xee, 0xfd,
		0xe1, 0x61, 0x7e, 0xf2, 0xbf, 0xc9, 0xe2, 0xe7, 0x9d, 0x97, 0x81, 0xc8, 0xfd, 0x3b, 0xf7, 0x97,
		0xd9, 0x55, 0xa7, 0x67, 0xdf, 0xed, 0xf3, 0x46, 0xb1, 0x59, 0x6c, 0xfe, 0x95, 0x33, 0xad, 0x5c,
		0xb0, 0x5f, 0x7f, 0xbf, 0xa9, 0xff, 0x15, 0xf0, 0xc7, 0x9f, 0x6a, 0x9f, 0xab, 0xdf, 0x1a, 0xad,
		0x4e, 0xfd, 0xf2, 0xa6, 0x55, 0xbd, 0xbc, 0xa8, 0xfd, 0x15, 0x47, 0xa2, 0x89, 0x18, 0xf4, 0x22,
		0x53, 0x76, 0x97, 0x27, 0xa6, 0xe3, 0x43, 0xcd, 0x87, 0x97, 0x78, 0x6f, 0xea, 0xd6, 0x6f, 0x2f,
		0x01, 0xff, 0x52, 0xf9, 0x44, 0xb8, 0x0b, 0xef, 0xa9, 0xc6, 0x24, 0x50, 0x35, 0x9c, 0x1c, 0x70,
		0xce, 0x0d, 0x34, 0x4b, 0x7b, 0x12, 0x8e, 0xb0, 0xec, 0x9c, 0x63, 0xe6, 0x34, 0xdb, 0x36, 0xbb,
		0xba, 0xe6, 0x88, 0x9c, 0x17, 0x7e, 0xb3, 0x7f, 0x18, 0xba, 0x31, 0xfe, 0xa7, 0x5c, 0xd7, 0x7c,
		0x7a, 0x32, 0x8d, 0xdc, 0x83, 0x65, 0x0e, 0x07, 0xb9, 0x7b, 0xd3, 0xca, 0x0d, 0xed, 0xf1, 0xef,
		0x72, 0x0d, 0xed, 0x45, 0x58, 0xb9, 0x62, 0x6e, 0x8a, 0xfd, 0xe3, 0xdf, 0x4f, 0x31, 0x35, 0xae,
		0x88, 0x11, 0xc6, 0x8e, 0x16, 0xa5, 0x9f, 0x36, 0xef, 0x80, 0x25, 0x30, 0xb4, 0xa4, 0x0c, 0x32,
		0x57, 0x2c, 0x5b, 0xee, 0x72, 0xe8, 0xab, 0xda, 0xac, 0x96, 0x33, 0xa6, 0x0b, 0x96, 0xa0, 0xeb,
		0x15, 0x41, 0x0f, 0x92, 0xf0, 0xb4, 0xc2, 0x89, 0x67, 0x70, 0xf1, 0x08, 0xb1, 0xd0, 0x11, 0x73,
		0x2c, 0x63, 0xe5, 0x52, 0x46, 0xcc, 0x99, 0x8c, 0x9c, 0x1b, 0x19, 0x67, 0xcf, 0x61, 0x71, 0x4f,
		0xc1, 0x10, 0xce, 0x58, 0x1a, 0xa3, 0x08, 0x57, 0x4c, 0xe8, 0x27, 0xdb, 0x16, 0x20, 0x43, 0xf7,
		0xd5, 0xb0, 0xfe, 0xec, 0xdd, 0xa4, 0xcc, 0xf9, 0x8f, 0x9a, 0x49, 0xa8, 0xac, 0x62, 0x8b, 0xaa,
		0x47, 0xcf, 0x18, 0xf1, 0x64, 0x68, 0xdd, 0xa0, 0x51, 0x43, 0x24, 0xb1, 0xb6, 0xfd, 0x62, 0x6f,
		0xef, 0x51, 0x6c, 0xe3, 0xd1, 0xa8, 0x16, 0x27, 0xaf, 0x20, 0xd9, 0x81, 0xe3, 0x65, 0x16, 0x71,
		0x54, 0x2f, 0x99, 0xe0, 0x5e, 0xec, 0xcd, 0x30, 0xba, 0x4d, 0xaf, 0x98, 0x9b, 0x5b, 0x69, 0x8b,
		0x74, 0x64, 0xce, 0x5f, 0x8b, 0xba, 0x97, 0x24, 0xd1, 0x57, 0x8b, 0xb0, 0x35, 0x14, 0xc2, 0x4f,
		0xdb, 0x23, 0x14, 0x83, 0x59, 0xd4, 0x3c, 0xba, 0x91, 0x89, 0x16, 0x2d, 0x8f, 0x1e, 0x1d, 0x27,
		0x8d, 0x86, 0xc7, 0x88, 0x7e, 0xc7, 0x88, 0x76, 0x07, 0x5d, 0x9b, 0x88, 0xaa, 0x29, 0x5d, 0x25,
		0x95, 0x50, 0xcc, 0x41, 0x92, 0x12, 0x06, 0x53, 0xbf, 0xf7, 0x95, 0xe9, 0xed, 0x5f, 0xbc, 0xb3,
		0x94, 0x61, 0x97, 0x90, 0x7b, 0xe9, 0x02, 0xac, 0x14, 0xdf, 0x0a, 0xbd, 0xbd, 0x22, 0x9b, 0xdf,
		0xf3, 0x1b, 0xef, 0x58, 0x11, 0x46, 0x57, 0x1b, 0xd8, 0xc3, 0x7e, 0xb0, 0x57, 0xbc, 0x90, 0x6d,
		0xbd, 0x78, 0xd9, 0x3b, 0x6b, 0x18, 0x8c, 0x78, 0x06, 0xf6, 0x8e, 0xc3, 0x78, 0xc1, 0xd1, 0xbc,
		0xdd, 0xb0, 0x5e, 0x6d, 0x64, 0xef, 0x35, 0xb2, 0x97, 0x1a, 0xd9, 0x1b, 0x8d, 0xa7, 0x8d, 0x41,
		0x89, 0x9d, 0xd2, 0x9d, 0xad, 0x65, 0xc0, 0x17, 0xb8, 0xc0, 0xd5, 0xc6, 0xd7, 0x05, 0xb5, 0xbd,
		0xa1, 0x22, 0x1a, 0xa1, 0xe9, 0x57, 0x14, 0xba, 0x15, 0x8f, 0x5e, 0x45, 0xa5, 0x53, 0xb1, 0xe9,
		0x53, 0x6c, 0xba, 0x14, 0x9b, 0x1e, 0xd1, 0x7a, 0x65, 0x61, 0x23, 0x10, 0x63, 0xc1, 0x73, 0x2c,
		0xb3, 0xaf, 0x4e, 0xdf, 0x62, 0xc4, 0xb8, 0xdc, 0xd2, 0x28, 0xd1, 0xc2, 0x73, 0x47, 0x51, 0xc3,
		0x73, 0x47, 0x08, 0xcf, 0x21, 0x3c, 0xc7, 0x1b, 0x0b, 0x20, 0x38, 0x0f, 0x11, 0xf1, 0xbc, 0x43,
		0x12, 0xe9, 0x07, 0x96, 0xb8, 0x17, 0x96, 0x30, 0xba, 0x22, 0xc9, 0x1c, 0x84, 0xeb, 0xcf, 0x17,
		0xc7, 0x67, 0xa7, 0x27, 0x29, 0x0b, 0xd1, 0xcd, 0x5f, 0x4d, 0x9a, 0xa3, 0x74, 0xb3, 0x77, 0x97,
		0xfe, 0x0d, 0xc5, 0x0f, 0x59, 0x4d, 0x8e, 0x79, 0x37, 0x57, 0x62, 0x9e, 0x59, 0xf1, 0x6e, 0x12,
		0xc6, 0x0f, 0x23, 0x17, 0xf0, 0xd7, 0x8d, 0x63, 0xe4, 0xc2, 0x84, 0xd4, 0x85, 0xa4, 0x97, 0x6b,
		0x7b, 0x52, 0x5f, 0xae, 0x8c, 0xfe, 0x4b, 0x4e, 0xeb, 0xf7, 0xcd, 0x5f, 0xb9, 0x46, 0x31, 0xb7,
		0x44, 0x84, 0xdd, 0x64, 0x8a, 0x3b, 0x91, 0xb3, 0x85, 0xf3, 0xc3, 0x18, 0x8b, 0x44, 0xce, 0x79,
		0x14, 0xb9, 0x59, 0x34, 0x21, 0xa7, 0xdb, 0x39, 0xf3, 0x3e, 0xa7, 0xe5, 0xdc, 0xb7, 0xe4, 0x3c,
		0x6a, 0x4e, 0xce, 0x1e, 0x0e, 0x06, 0xa6, 0xe5, 0xd8, 0x3f, 0x8c, 0xd8, 0xb5, 0xe6, 0x91, 0xe7,
		0x32, 0x11, 0x74, 0xb6, 0xe5, 0x41, 0x52, 0x4b, 0xb4, 0x68, 0x7b, 0x08, 0xf6, 0xbb, 0xb4, 0x5a,
		0xd1, 0xda, 0x19, 0xad, 0x8f, 0x50, 0x45, 0x69, 0x54, 0x04, 0x42, 0x06, 0x42, 0x96, 0x19, 0x42,
		0xa6, 0xf7, 0x84, 0xe1, 0xe8, 0xce, 0x4b, 0xb4, 0x5a, 0xc1, 0x1e, 0x29, 0x8b, 0x70, 0x0e, 0x42,
		0xa9, 0x4f, 0xa7, 0xfe, 0xa8, 0xd9, 0x22, 0x7e, 0xb2, 0x46, 0xed, 0xf2, 0xa2, 0xda, 0xbc, 0xf9,
		0xd6, 0xa8, 0xb6, 0xea, 0x57, 0x97, 0x51, 0xc5, 0xc7, 0xed, 0xe1, 0x6d, 0xc7, 0xea, 0xb2, 0x4f,
		0xe4, 0x2c, 0x7c, 0x6d, 0x36, 0x6e, 0x12, 0xf1, 0x7d, 0x88, 0xee, 0xff, 0xfb, 0xdf, 0x8d, 0xea,
		0xa5, 0x6c, 0x02, 0xd5, 0xe6, 0x56, 0x4f, 0x16, 0xe3, 0xd5, 0xd7, 0xee, 0x44, 0x5f, 0x1d, 0x7b,
		0x1e, 0xdd, 0x89, 0xcd, 0x79, 0x32, 0x7b, 0x31, 0xec, 0xd7, 0xfa, 0xe1, 0x60, 0xc2, 0x60, 0xc2,
		0x60, 0xc2, 0xd2, 0x6d, 0xc2, 0x1a, 0xd5, 0x8f, 0xb5, 0x46, 0xa7, 0xda, 0x68, 0x5c, 0x5d, 0xb8,
		0x56, 0xac, 0xf3, 0xf5, 0xea, 0x53, 0x2d, 0xfb, 0xa6, 0x6c, 0x76, 0x8c, 0xa5, 0xe3, 0x3e, 0x5f,
		0x96, 0x8d, 0x5a, 0xb3, 0x76, 0xdd, 0xb9, 0xac, 0xfd, 0xdd, 0xfa, 0x9f, 0xab, 0x66, 0xd6, 0x1f,
		0xa3, 0x79, 0x5d, 0xfb, 0x5c, 0xff, 0x7b, 0x87, 0x0d, 0xf4, 0x16, 0xe6, 0x0b, 0x2d, 0x31, 0xd7,
		0x7c, 0xa8, 0x1d, 0xf1, 0x1c, 0x69, 0xfe, 0x49, 0x6d, 0xf1, 0x46, 0x3a, 0x53, 0xa7, 0x80, 0x2a,
		0x2b, 0x28, 0x50, 0x22, 0x4d, 0x98, 0x43, 0x12, 0x91, 0x0e, 0x47, 0x44, 0x4e, 0x21, 0x28, 0x22,
		0x85, 0x80, 0xda, 0xe3, 0x41, 0x0a, 0x01, 0x52, 0x08, 0xe0, 0xee, 0x23, 0x85, 0x20, 0x30, 0x66,
		0x23, 0x85, 0x20, 0xd0, 0x9b, 0x46, 0x0a, 0x41, 0x74, 0x0d, 0x44, 0x0a, 0x01, 0xa3, 0x60, 0x22,
		0x85, 0x00, 0x29, 0x04, 0x48, 0x21, 0x40, 0x0a, 0x41, 0xc2, 0x42, 0x9e, 0x43, 0x0a, 0x01, 0x91,
		0x0d, 0x42, 0x0a, 0x01, 0x08, 0x19, 0x08, 0x59, 0x46, 0x09, 0x19, 0x52, 0x08, 0x16, 0x07, 0x43,
		0x0a, 0x01, 0x52, 0x08, 0xa4, 0x1b, 0x2f, 0xa4, 0x10, 0xc0, 0x84, 0xc1, 0x84, 0xc1, 0x84, 0x21,
		0x85, 0x20, 0xed, 0x46, 0x0d, 0x29, 0x04, 0xdb, 0x63, 0xa0, 0xb7, 0x3e, 0x85, 0x20, 0x6c, 0xc1,
		0x1f, 0xae, 0x0c, 0x82, 0x10, 0x55, 0x7d, 0xb8, 0xcb, 0x8a, 0x44, 0xd8, 0xdc, 0x09, 0x17, 0x2e,
		0x8f, 0xb0, 0xdd, 0xbf, 0x12, 0x03, 0xfd, 0xff, 0x11, 0x96, 0x83, 0xa6, 0x48, 0x0a, 0x88, 0x10,
		0x9f, 0xa6, 0x4d, 0x09, 0x08, 0xfd, 0x7e, 0x58, 0x7c, 0xf4, 0x38, 0x01, 0xe1, 0x75, 0x01, 0x60,
		0xe7, 0x51, 0x2c, 0x87, 0x18, 0x73, 0xe6, 0xfd, 0x72, 0x50, 0xd1, 0x8d, 0x38, 0xfe, 0x30, 0x6c,
		0xe1, 0xe4, 0xd6, 0x46, 0x1c, 0x0d, 0xd3, 0x71, 0xbf, 0xeb, 0x89, 0x7b, 0x6d, 0xd8, 0x77, 0xbc,
		0x7f, 0x0b, 0xbb, 0x58, 0x31, 0xfc, 0x5e, 0xba, 0x68, 0x2f, 0x89, 0xd3, 0xbb, 0x29, 0x9a, 0xcb,
		0xf8, 0xae, 0x93, 0x35, 0x4e, 0x7b, 0xf1, 0xcc, 0x6d, 0xba, 0x8b, 0x30, 0x85, 0xa9, 0x35, 0xc4,
		0x68, 0xbe, 0x58, 0xaa, 0x2f, 0x3d, 0x0f, 0xc2, 0x14, 0x5d, 0x7a, 0xbf, 0xbb, 0x1e, 0x6a, 0x2d,
		0xd1, 0x23, 0x4b, 0xda, 0x6b, 0x2d, 0x8d, 0xc5, 0x62, 0xae, 0x3f, 0xe1, 0xf3, 0x25, 0x57, 0xae,
		0xdf, 0x8e, 0xda, 0x4b, 0x21, 0x3b, 0x51, 0x6e, 0x4f, 0xd6, 0x64, 0xb8, 0x4e, 0x8f, 0x09, 0xa7,
		0x4c, 0x2e, 0x89, 0x5e, 0x8c, 0x8d, 0xba, 0xa5, 0x61, 0x24, 0x97, 0x45, 0x4f, 0x28, 0xc0, 0x19,
		0xb1, 0xd5, 0xea, 0xf6, 0x47, 0x37, 0xa3, 0xb5, 0x3a, 0x4d, 0x6f, 0x41, 0xf4, 0x30, 0x75, 0xf4,
		0x36, 0x0a, 0x4c, 0xe8, 0x53, 0x04, 0x04, 0x2a, 0x12, 0x5b, 0x55, 0x28, 0x54, 0x86, 0x50, 0x75,
		0xa8, 0x54, 0x88, 0x5c, 0x95, 0xc8, 0x55, 0x8a, 0x56, 0xb5, 0xe2, 0x05, 0x0a, 0xa3, 0x16, 0x3c,
		0x8f, 0xaa, 0x72, 0x8b, 0xaa, 0xe7, 0x25, 0xe2, 0xab, 0xc2, 0xd0, 0xee, 0xfa, 0xa2, 0x47, 0x97,
		0x02, 0xb6, 0x76, 0xf4, 0x98, 0xab, 0x45, 0xd3, 0x94, 0x9c, 0xac, 0x09, 0x39, 0x65, 0xd3, 0x71,
		0x86, 0x26, 0xe3, 0xd4, 0x4d, 0xc5, 0xd9, 0x9a, 0x88, 0xb3, 0x35, 0x0d, 0xe7, 0x69, 0x12, 0x9e,
		0x6c, 0x27, 0x5d, 0xb2, 0xa6, 0xdf, 0x04, 0x07, 0x15, 0x36, 0xda, 0xd1, 0x42, 0xa2, 0xaf, 0x88,
		0xe0, 0x60, 0x83, 0x6f, 0xcc, 0xf8, 0x07, 0x1d, 0xa2, 0x07, 0xd0, 0x03, 0xaf, 0xe4, 0xf5, 0xe7,
		0x8b, 0xd3, 0x62, 0xa1, 0x94, 0xfb, 0xae, 0x5b, 0xce, 0x50, 0xeb, 0xe7, 0x9a, 0x96, 0xfe, 0xac,
		0x39, 0x22, 0xf7, 0x1f, 0xdd, 0x12, 0xb9, 0x1b, 0x61, 0x3d, 0xeb, 0x5d, 0x91, 0xbb, 0x99, 0x24,
		0x6c, 0xfe, 0x30, 0x74, 0x23, 0x57, 0x73, 0x1e, 0x85, 0x65, 0x08, 0x27, 0xf7, 0xbd, 0x79, 0xf9,
		0xc3, 0xe8, 0x59, 0xda, 0xbd, 0xa3, 0xea, 0xc2, 0xb9, 0x57, 0xef, 0x84, 0x6d, 0xab, 0xd6, 0x7d,
		0xb7, 0x52, 0x3a, 0x2e, 0xde, 0xe9, 0xb6, 0x7a, 0x74, 0x92, 0xfb, 0xf8, 0xa5, 0x99, 0xfb, 0xda,
		0x6c, 0xdc, 0xa8, 0x1f, 0x35, 0x5b, 0xf4, 0x7e, 0x18, 0x8b, 0xd7, 0x52, 0x36, 0xee, 0x26, 0x46,
		0xad, 0x75, 0xe8, 0x45, 0x75, 0x34, 0x43, 0x1a, 0x90, 0xad, 0x05, 0xb4, 0xe4, 0x56, 0x3b, 0x6d,
		0x5d, 0xf6, 0x63, 0x8f, 0xd2, 0x4e, 0x2a, 0x71, 0x39, 0x86, 0x93, 0x4e, 0x90, 0x08, 0xbc, 0x39,
		0xde, 0x10, 0x37, 0x31, 0x18, 0xae, 0x1b, 0x5c, 0x37, 0xb8, 0x6e, 0xec, 0xae, 0x5b, 0xbc, 0x7c,
		0xb0, 0x8d, 0xee, 0xdb, 0x09, 0xc1, 0x58, 0x24, 0xf9, 0x62, 0x1b, 0x1f, 0x9c, 0x22, 0x05, 0xda,
		0x37, 0x38, 0x41, 0x1e, 0x19, 0x9f, 0x93, 0x97, 0xa3, 0x4b, 0x99, 0x26, 0x96, 0x6b, 0x09, 0xcf,
		0x1b, 0x33, 0xc5, 0x9a, 0xc7, 0xed, 0x68, 0x27, 0x0d, 0x47, 0xc9, 0xb8, 0x1d, 0xcf, 0x3a, 0xa1,
		0x9f, 0xf1, 0xac, 0xc3, 0xb1, 0x80, 0x63, 0x01, 0xc7, 0x22, 0x6d, 0x8e, 0x45, 0xec, 0x1e, 0x98,
		0x3e, 0x9f, 0xe2, 0x34, 0x83, 0x58, 0xf7, 0x34, 0xec, 0x3b, 0x7a, 0x57, 0xb3, 0x1d, 0xd5, 0x6d,
		0x0e, 0x4f, 0x87, 0x7b, 0xab, 0x03, 0x03, 0x03, 0x81, 0x81, 0xc0, 0xc0, 0xb4, 0x91, 0xab, 0x81,
		0xaa, 0xf5, 0x7a, 0x96, 0xb0, 0x6d, 0x4a, 0x1c, 0x3c, 0x23, 0x18, 0x6b, 0xfa, 0xac, 0xa9, 0x8d,
		0x43, 0xeb, 0x83, 0xe7, 0x12, 0xe1, 0xbb, 0xf3, 0xdb, 0x12, 0xc2, 0x31, 0x9b, 0x9a, 0xe3, 0x08,
		0xcb, 0x20, 0x65, 0x7d, 0xee, 0xc0, 0xfb, 0xb7, 0x47, 0xea, 0x59, 0xfb, 0xf5, 0xb6, 0xa0, 0x9e,
		0xb5, 0x27, 0x7f, 0x2d, 0xb8, 0x7f, 0xfc, 0x29, 0x8e, 0x5e, 0x8b, 0xb7, 0x47, 0x6a, 0x69, 0xfa,
		0x6d, 0xf1, 0xe4, 0xf6, 0x48, 0x3d, 0x69, 0x1f, 0xec, 0xff, 0xf8, 0x71, 0x18, 0xf6, 0x9a, 0x83,
		0x3f, 0xc7, 0x23, 0x3a, 0x5a, 0xd4, 0xa6, 0x7c, 0xad, 0x57, 0x37, 0xf5, 0xbf, 0xd9, 0xde, 0xed,
		0x3f, 0xfb, 0xb2, 0xde, 0xee, 0xc1, 0xbf, 0x08, 0xdf, 0xef, 0x5e, 0x8a, 0xd8, 0x3a, 0x8f, 0xda,
		0x97, 0xa1, 0xf6, 0xae, 0x94, 0x69, 0xea, 0x7d, 0x55, 0xfd, 0xdc, 0xfe, 0x53, 0xf8, 0x50, 0x1a,
		0x9d, 0x1f, 0xfc, 0xa9, 0x8c, 0x56, 0xbf, 0x7c, 0x5d, 0xf7, 0xb3, 0xc2, 0x87, 0xca, 0xe8, 0x7c,
		0xc3, 0xbf, 0x94, 0x47, 0xe7, 0x01, 0xc7, 0x38, 0x19, 0xed, 0xfb, 0x7e, 0x3a, 0xfe, 0xbe, 0xb8,
		0xe9, 0x82, 0xd2, 0x86, 0x0b, 0x8e, 0x37, 0x5d, 0x70, 0xbc, 0xe1, 0x82, 0x8d, 0xb7, 0x54, 0xdc,
		0x70, 0xc1, 0xc9, 0xe8, 0xd5, 0xf7, 0xfb, 0xfd, 0xf5, 0x3f, 0x2d, 0x8f, 0x0e, 0x5e, 0x37, 0xfd,
		0x5b, 0x65, 0xf4, 0x7a, 0x7e, 0x70, 0xb0, 0xc3, 0x40, 0x08, 0x71, 0x93, 0x2f, 0x6e, 0xe9, 0x33,
		0x0c, 0x3b, 0xb9, 0x0d, 0x3a, 0xa7, 0xd2, 0x4f, 0x9a, 0xfd, 0x93, 0x83, 0xa2, 0xbb, 0xe3, 0x82,
		0xa1, 0x83, 0xa1, 0x83, 0xa1, 0x83, 0xa1, 0x83, 0xa1, 0x83, 0xa1, 0x83, 0xa1, 0x83, 0xa1, 0x83,
		0xa1, 0x83, 0xa1, 0x83, 0x32, 0x81, 0xa1, 0x83, 0xa1, 0x83, 0xa1, 0x83, 0xa1, 0xbf, 0xa9, 0x01,
		0x96, 0x18, 0xf4, 0xf5, 0x38, 0xf5, 0x1e, 0x37, 0x9a, 0x33, 0xdf, 0xc8, 0x60, 0xe9, 0x60, 0xe9,
		0x60, 0xe9, 0x29, 0x63, 0xe9, 0xc2, 0x18, 0x3e, 0x09, 0x4b, 0xa3, 0xaa, 0x8e, 0x3f, 0xf3, 0x35,
		0x4b, 0x04, 0x63, 0xd5, 0x8c, 0xe1, 0x13, 0x9d, 0xfc, 0xb6, 0xcc, 0x9b, 0x49, 0xda, 0x14, 0xe5,
		0xd9, 0x25, 0xe5, 0x68, 0xfc, 0x0e, 0x6f, 0x5a, 0xd5, 0x56, 0xfd, 0xa2, 0x53, 0xbf, 0xfc, 0x72,
		0x5d, 0xbb, 0xb9, 0xe9, 0x5c, 0xd7, 0x9a, 0x8d, 0xfa, 0x05, 0x65, 0xf2, 0xb3, 0x3b, 0x55, 0x61,
		0x3c, 0xd5, 0xc7, 0x2f, 0x4d, 0xca, 0x31, 0x8b, 0x6e, 0xbe, 0xf2, 0xb7, 0x46, 0xab, 0x7e, 0x51,
		0xbd, 0x69, 0x29, 0x69, 0x22, 0x58, 0x4a, 0xcb, 0xac, 0xbb, 0xba, 0x4b, 0xb8, 0x5a, 0xe3, 0xb7,
		0x17, 0xb9, 0x90, 0xc0, 0xda, 0x11, 0xe7, 0xef, 0x2e, 0x70, 0x53, 0xbe, 0x60, 0xe8, 0xbd, 0x59,
		0xa4, 0xce, 0x73, 0x47, 0x29, 0xf1, 0x77, 0xb2, 0x98, 0x21, 0x6d, 0x99, 0x43, 0x47, 0xa8, 0x3d,
		0xdd, 0x76, 0x74, 0xe3, 0x61, 0xa8, 0xdb, 0x8f, 0xc2, 0x22, 0x74, 0x79, 0xd6, 0x0c, 0x0e, 0xaf,
		0x07, 0x5e, 0x0f, 0xbc, 0x9e, 0x94, 0x79, 0x3d, 0x43, 0x83, 0xd8, 0xdf, 0xd9, 0x85, 0x6d, 0x09,
		0x7a, 0x74, 0xe3, 0x7a, 0x95, 0x3c, 0xaf, 0x94, 0xfe, 0xd5, 0xfa, 0x5e, 0x31, 0x59, 0x66, 0xbf,
		0x8c, 0x20, 0x30, 0x7b, 0x30, 0x78, 0x1e, 0x14, 0x5e, 0xdd, 0x79, 0x98, 0x84, 0xbb, 0x6e, 0x0b,
		0xea, 0xc9, 0xf4, 0x73, 0x69, 0xf4, 0x5a, 0x9e, 0x6f, 0x41, 0xfc, 0x39, 0x1e, 0xbd, 0x96, 0x4f,
		0x16, 0x3e, 0x17, 0xc7, 0x9f, 0xc7, 0x5f, 0x14, 0xa7, 0x7b, 0x14, 0xe5, 0x93, 0x93, 0xe3, 0xc9,
		0x2e, 0xc5, 0xf9, 0xba, 0xc1, 0x4f, 0xdd, 0xc1, 0x8f, 0xa7, 0x9f, 0xcf, 0x46, 0xaf, 0xa5, 0xdb,
		0xa3, 0xc2, 0xf4, 0xd3, 0xe9, 0xe8, 0xb5, 0x54, 0xbc, 0x3d, 0x52, 0x4f, 0xa7, 0x9f, 0x2b, 0xe3,
		0xcf, 0x67, 0xb7, 0x47, 0xde, 0xcf, 0xcb, 0xee, 0x17, 0xa5, 0x85, 0x9f, 0x9c, 0x4c, 0xbe, 0x39,
		0x73, 0x67, 0xf4, 0x6e, 0xd8, 0xfd, 0x6a, 0x7c, 0xd7, 0xe5, 0xf9, 0x5d, 0x4f, 0xbe, 0xab, 0xcc,
		0x67, 0x2b, 0x7a, 0xdf, 0x2d, 0xcc, 0xe9, 0x7d, 0x35, 0x19, 0x91, 0x30, 0x74, 0xcb, 0x10, 0xc2,
		0x95, 0x13, 0xca, 0x5d, 0x0d, 0xe9, 0x42, 0x5a, 0x36, 0x4a, 0x0b, 0x65, 0xe8, 0x95, 0x36, 0x04,
		0x4b, 0x4c, 0x21, 0x01, 0xd8, 0xa9, 0x01, 0x6c, 0xa6, 0xed, 0xe5, 0x73, 0x4e, 0x5d, 0x07, 0xaa,
		0xbe, 0x89, 0xaa, 0x59, 0x5c, 0x52, 0x40, 0x1f, 0xa0, 0x2f, 0x01, 0x5f, 0x35, 0x63, 0x0e, 0x02,
		0x50, 0x35, 0x51, 0x5f, 0x15, 0xd2, 0x92, 0x29, 0xc0, 0x46, 0x7e, 0x5b, 0x40, 0x83, 0x41, 0xbb,
		0xd5, 0xe8, 0xb3, 0x16, 0x25, 0xc2, 0x31, 0x49, 0xb7, 0x1e, 0xe7, 0xd1, 0x28, 0x8e, 0x2d, 0x48,
		0x6f, 0x74, 0x77, 0x2b, 0xb2, 0xfa, 0xad, 0x75, 0xa5, 0xa4, 0xd9, 0x21, 0x61, 0xd8, 0xd6, 0x9b,
		0x87, 0xbe, 0xc7, 0x0f, 0x4f, 0xb5, 0x3d, 0x46, 0xaf, 0xdf, 0x5b, 0x52, 0x4f, 0x11, 0xf5, 0x5f,
		0xa3, 0xc1, 0xdf, 0xf5, 0xe7, 0x8b, 0x5c, 0xa5, 0x74, 0x5c, 0x3c, 0x5f, 0x29, 0xdf, 0xb9, 0x54,
		0xf9, 0x33, 0x37, 0xd0, 0x1e, 0x84, 0x5a, 0x38, 0x45, 0xcd, 0xd6, 0xc9, 0x1c, 0xb2, 0x6b, 0xb6,
		0x86, 0x58, 0x21, 0xe0, 0x02, 0xd1, 0xfc, 0x71, 0xb6, 0xf3, 0xed, 0x49, 0x25, 0x5d, 0xe2, 0x0a,
		0xab, 0x4b, 0xa3, 0x62, 0x03, 0xff, 0xdd, 0xf7, 0x85, 0x0d, 0x7c, 0x6c, 0xe0, 0xbf, 0xe9, 0xf3,
		0xa1, 0xb6, 0x2a, 0xd5, 0x83, 0xd7, 0xbe, 0x37, 0x2f, 0x3b, 0xad, 0xff, 0x36, 0x6b, 0xbb, 0x57,
		0x57, 0xf5, 0x7b, 0xa3, 0x7a, 0xd9, 0xa9, 0xfe, 0xa7, 0x7a, 0x5d, 0xdb, 0xa9, 0xea, 0xaa, 0xe3,
		0xa7, 0xfe, 0x58, 0xbd, 0xa9, 0x7d, 0xda, 0xbd, 0xa7, 0xfe, 0x76, 0xf9, 0xa9, 0x51, 0x43, 0x65,
		0x59, 0x10, 0x30, 0x79, 0x04, 0x0c, 0xc4, 0x2b, 0xad, 0xc4, 0x0b, 0x84, 0x8b, 0x8c, 0x70, 0x49,
		0x6d, 0x85, 0x16, 0xb2, 0x7d, 0xf3, 0x66, 0xaa, 0x47, 0xdb, 0xd6, 0xf9, 0x79, 0x60, 0xe4, 0x97,
		0x7b, 0xcf, 0x2e, 0x7f, 0xcc, 0xc7, 0x6a, 0x5a, 0x98, 0xa3, 0xed, 0x04, 0xfd, 0x3c, 0x30, 0xdc,
		0xff, 0x9b, 0xff, 0x64, 0xf1, 0x53, 0x67, 0x4a, 0x0e, 0xf7, 0xe4, 0x08, 0x43, 0x04, 0x41, 0x88,
		0x55, 0x98, 0x9c, 0xa0, 0x20, 0x79, 0x4c, 0x16, 0x8e, 0x1e, 0x92, 0x92, 0xd8, 0x35, 0x7a, 0x48,
		0x52, 0xb2, 0x66, 0x4f, 0x62, 0xfa, 0x42, 0xbb, 0x8f, 0xc7, 0x94, 0x3d, 0x86, 0x5c, 0x89, 0x31,
		0x46, 0x73, 0x8a, 0xdd, 0x87, 0x87, 0x53, 0x70, 0xcd, 0x8f, 0x35, 0x3a, 0xc5, 0xa8, 0xa5, 0x3f,
		0x0d, 0x4c, 0xcb, 0x51, 0xc5, 0x6f, 0xf7, 0x8f, 0x81, 0xd9, 0xd7, 0xbb, 0x2f, 0xf1, 0x61, 0x6c,
		0xed, 0xa8, 0xe8, 0x8d, 0x0b, 0x5c, 0xdb, 0x11, 0x5c, 0xa3, 0xe8, 0x8d, 0x1b, 0xa7, 0x2d, 0xb5,
		0x4f, 0xf0, 0x62, 0x7b, 0x7a, 0x04, 0xaa, 0x48, 0xa6, 0x92, 0x94, 0xaa, 0xc9, 0xa0, 0xa2, 0x5c,
		0xe4, 0x18, 0x81, 0xfe, 0x34, 0xc4, 0x96, 0xe2, 0xaa, 0xf6, 0x42, 0x90, 0xca, 0x35, 0x8e, 0x93,
		0x23, 0x67, 0x8e, 0x66, 0x3d, 0x08, 0x87, 0x3e, 0x96, 0xbe, 0x6e, 0x12, 0xa2, 0xb5, 0xa5, 0xd9,
		0xf5, 0x23, 0x07, 0x05, 0x0e, 0x70, 0x60, 0x04, 0x09, 0x99, 0x91, 0x34, 0x52, 0xd0, 0x48, 0x26,
		0x8c, 0x46, 0x06, 0x22, 0xc4, 0x81, 0x32, 0xaa, 0x82, 0x10, 0x54, 0xbb, 0x88, 0x3e, 0x89, 0xa5,
		0x3a, 0x0e, 0xec, 0xf3, 0x05, 0x76, 0xf9, 0x2c, 0xeb, 0xdd, 0xc3, 0x40, 0x15, 0xbf, 0x1d, 0xb5,
		0x6b, 0x3e, 0x3d, 0x0d, 0x0d, 0xdd, 0x79, 0xa1, 0x48, 0xa7, 0x90, 0xf5, 0xb6, 0x79, 0xdf, 0x3a,
		0xdf, 0xdb, 0xf7, 0xad, 0x02, 0xdb, 0x29, 0x0d, 0xdf, 0xdb, 0x3f, 0x65, 0x9c, 0x83, 0x3b, 0x13,
		0xdf, 0x9b, 0x68, 0xdf, 0x4b, 0x3d, 0xf7, 0xa5, 0xa4, 0xaf, 0x24, 0xac, 0x2f, 0xe7, 0xb3, 0x2f,
		0x27, 0xbb, 0xfb, 0x52, 0xe1, 0xc7, 0x7f, 0x3d, 0x38, 0xdf, 0x5f, 0xce, 0x9c, 0x7f, 0x23, 0xb7,
		0xfe, 0xf6, 0x48, 0xf5, 0xe5, 0xe0, 0xaf, 0xc9, 0xd5, 0xf7, 0xa7, 0xf4, 0xfb, 0xf2, 0xfe, 0x57,
		0x8f, 0x06, 0xac, 0x9c, 0x1d, 0x58, 0x98, 0xc8, 0x77, 0xec, 0xc0, 0x77, 0x28, 0xc1, 0x7d, 0x0a,
		0x85, 0x6d, 0x01, 0xda, 0x9c, 0x02, 0x24, 0xe3, 0x3c, 0x87, 0x37, 0xdb, 0x3f, 0x10, 0xa3, 0xf7,
		0xc4, 0xe8, 0x5f, 0x8c, 0x72, 0xc4, 0x32, 0xf2, 0xe8, 0x03, 0x4c, 0xc0, 0x6e, 0x98, 0x80, 0x4d,
		0xa7, 0x56, 0xa7, 0x67, 0x55, 0xd7, 0x9c, 0x5b, 0xfd, 0xf1, 0xe3, 0xf0, 0xe0, 0xcf, 0xf1, 0x28,
		0xfc, 0x85, 0xe7, 0x9c, 0x40, 0x01, 0xa4, 0x0e, 0x82, 0xd4, 0xdb, 0xb2, 0xda, 0x00, 0x54, 0x00,
		0x6a, 0x4a, 0x01, 0x75, 0x1b, 0xfc, 0x15, 0x20, 0x75, 0xe2, 0x48, 0x0d, 0x31, 0x82, 0x09, 0x80,
		0x09, 0xc8, 0xa4, 0x09, 0x70, 0xb7, 0x58, 0x7e, 0xfc, 0x98, 0x6e, 0xb2, 0x9c, 0x83, 0x1e, 0x23,
		0xca, 0x42, 0x60, 0x11, 0x20, 0x55, 0x08, 0xba, 0xc0, 0x40, 0x6c, 0xa5, 0x81, 0x40, 0x0c, 0x66,
		0x87, 0x71, 0x1c, 0x21, 0x19, 0xc0, 0x2d, 0xe0, 0x56, 0x26, 0xdc, 0x82, 0x5a, 0x03, 0xc7, 0xe9,
		0x71, 0x1c, 0x52, 0x05, 0x03, 0x01, 0x03, 0x91, 0x69, 0x03, 0x61, 0x5a, 0xfa, 0x83, 0x6e, 0x80,
		0x5a, 0x23, 0x60, 0x43, 0x69, 0x20, 0x20, 0x55, 0x08, 0xd8, 0xc0, 0x40, 0x6c, 0x95, 0x81, 0x40,
		0xc0, 0x66, 0x87, 0x71, 0x1c, 0x01, 0x1b, 0xc0, 0x2d, 0xe0, 0x56, 0x26, 0xdc, 0x82, 0x5a, 0x03,
		0xc7, 0xe9, 0x71, 0x1c, 0x52, 0x05, 0x03, 0x01, 0x03, 0x91, 0x49, 0x03, 0xd1, 0x35, 0xfb, 0xa6,
		0x75, 0xee, 0xaa, 0xcb, 0x9f, 0xe2, 0x08, 0x31, 0x95, 0x9d, 0xc1, 0xf0, 0x6d, 0x5c, 0x78, 0xc0,
		0x2c, 0x60, 0x36, 0x9d, 0x30, 0xdb, 0xd7, 0x8d, 0x9f, 0xea, 0x9d, 0x66, 0xf4, 0x7e, 0xe9, 0x3d,
		0xe7, 0x11, 0x11, 0xcc, 0x77, 0x55, 0x79, 0xff, 0xe7, 0xeb, 0xff, 0xbe, 0x7e, 0x7d, 0xfd, 0x72,
		0xf0, 0x7f, 0x81, 0xe6, 0x01, 0xd0, 0x5c, 0xa2, 0x7c, 0xfd, 0x6b, 0xcb, 0xe4, 0x2b, 0x7b, 0x46,
		0x03, 0xad, 0x28, 0x89, 0x8c, 0x18, 0x4f, 0x67, 0x31, 0x9f, 0x05, 0x2b, 0x31, 0x8c, 0xcd, 0xd2,
		0x69, 0xcc, 0x1b, 0x9d, 0xb5, 0xe3, 0x98, 0x37, 0x0b, 0x53, 0xe7, 0x31, 0x66, 0xe7, 0x8a, 0xb1,
		0x13, 0x99, 0x37, 0x05, 0x4b, 0x47, 0x32, 0x3e, 0xfc, 0x18, 0xa1, 0x33, 0x62, 0x80, 0x45, 0x6d,
		0xe8, 0xb6, 0x53, 0x75, 0x1c, 0x8b, 0xb6, 0x16, 0xd1, 0x57, 0xdd, 0xa8, 0xf5, 0xc5, 0x93, 0x30,
		0x1c, 0x9b, 0xae, 0xce, 0xd7, 0x64, 0x64, 0xed, 0xf7, 0xc2, 0xc8, 0x85, 0xd3, 0x52, 0xa9, 0x5c,
		0x29, 0x95, 0x8e, 0x2a, 0xc7, 0x95, 0xa3, 0xb3, 0x93, 0x93, 0x42, 0x99, 0xa2, 0xeb, 0x89, 0x37,
		0xd9, 0x95, 0xd5, 0x13, 0x96, 0xe8, 0x7d, 0x7c, 0x51, 0xce, 0x73, 0xc6, 0xb0, 0xdf, 0xe7, 0x18,
		0xfa, 0x9b, 0x2d, 0xc6, 0x2f, 0xff, 0x5e, 0xeb, 0xdb, 0x22, 0x55, 0x92, 0xc1, 0xd0, 0x5a, 0x61,
		0xbe, 0x03, 0x40, 0xde, 0x62, 0x41, 0x82, 0x61, 0x0e, 0xd3, 0x51, 0xed, 0x8c, 0xc3, 0x74, 0x33,
		0x15, 0x8e, 0x9b, 0xbb, 0x06, 0xfc, 0xad, 0x18, 0xbc, 0xb9, 0xb8, 0x6b, 0xc9, 0xcd, 0xad, 0x56,
		0xc4, 0x9e, 0x78, 0x67, 0x0a, 0x2c, 0x92, 0xe4, 0xfb, 0x21, 0x40, 0xae, 0x59, 0x3d, 0x6a, 0xde,
		0x5a, 0x9b, 0xeb, 0x26, 0x41, 0xad, 0xcd, 0xd8, 0xaf, 0x15, 0xb5, 0x36, 0xe5, 0xe1, 0x23, 0x6a,
		0x6d, 0x52, 0x48, 0x2c, 0x6a, 0x6d, 0x32, 0xf8, 0x59, 0xa8, 0xb5, 0x99, 0xc0, 0xdb, 0xf7, 0xad,
		0x02, 0xf6, 0x52, 0x42, 0x4d, 0x84, 0xcd, 0x13, 0x6c, 0x80, 0xc7, 0x9f, 0x0d, 0xb5, 0x36, 0xb1,
		0x9d, 0x0e, 0x13, 0x90, 0x55, 0x13, 0x80, 0x63, 0x03, 0xbb, 0x84, 0xd4, 0x38, 0x27, 0x00, 0x40,
		0x05, 0xa0, 0xb2, 0x02, 0x2a, 0x52, 0xb8, 0x81, 0xd4, 0x04, 0x48, 0x0d, 0x31, 0x82, 0x09, 0x80,
		0x09, 0xc8, 0xa4, 0x09, 0x40, 0x55, 0x44, 0x44, 0x59, 0xe8, 0x2d, 0x02, 0xa4, 0x0a, 0x41, 0x17,
		0x18, 0x08, 0xd4, 0xda, 0x44, 0x0c, 0x66, 0xbb, 0x70, 0x1c, 0x21, 0x19, 0xc0, 0x2d, 0xe0, 0x56,
		0x26, 0xdc, 0x82, 0x5a, 0x03, 0xc7, 0xe9, 0x71, 0x1c, 0x52, 0x05, 0x03, 0x01, 0x03, 0x91, 0x69,
		0x03, 0x81, 0xaa, 0x88, 0x08, 0xd8, 0xd0, 0x1b, 0x08, 0x48, 0x15, 0x02, 0x36, 0x30, 0x10, 0x5b,
		0x65, 0x20, 0x10, 0xb0, 0xd9, 0x61, 0x1c, 0x47, 0xc0, 0x06, 0x70, 0x0b, 0xb8, 0x95, 0x09, 0xb7,
		0xa0, 0xd6, 0xc0, 0x71, 0x7a, 0x1c, 0x87, 0x54, 0xc1, 0x40, 0xc0, 0x40, 0x64, 0xd2, 0x40, 0xa0,
		0xd6, 0xe6, 0x8e, 0x62, 0x38, 0x6a, 0x6d, 0x02, 0x66, 0x01, 0xb3, 0xa8, 0xb5, 0x89, 0x5a, 0x9b,
		0xdb, 0x80, 0xe6, 0xa8, 0xb5, 0x89, 0x5a, 0x9b, 0x69, 0xb9, 0x4f, 0xd4, 0xda, 0x5c, 0xb1, 0x60,
		0xa8, 0xb5, 0xb9, 0x7e, 0x16, 0xd4, 0xda, 0xdc, 0x34, 0x05, 0x6a, 0x6d, 0xa6, 0x08, 0xd7, 0x50,
		0x6b, 0x13, 0xb5, 0x36, 0x79, 0x25, 0x03, 0xb5, 0x36, 0x57, 0x0c, 0x33, 0x6a, 0x6d, 0x12, 0xce,
		0x85, 0x5a, 0x9b, 0x5b, 0x67, 0x91, 0xf6, 0x92, 0x1d, 0x21, 0x26, 0xee, 0x29, 0x55, 0xc3, 0x30,
		0x9d, 0x89, 0xdb, 0x4d, 0xa1, 0x61, 0x8a, 0xdd, 0x7d, 0x14, 0x4f, 0xda, 0x40, 0x73, 0x1e, 0xc7,
		0xa2, 0x97, 0x37, 0x07, 0xc2, 0xe8, 0xba, 0x95, 0x2f, 0x55, 0x43, 0x38, 0xbf, 0x4c, 0xeb, 0xa7,
		0xaa, 0x8f, 0xb1, 0xd5, 0xe8, 0x8a, 0xfc, 0xea, 0x17, 0xb6, 0xef, 0x9b, 0xbc, 0x78, 0x1e, 0x18,
		0xee, 0xff, 0x2d, 0xfc, 0x68, 0xe9, 0x63, 0x7e, 0x5a, 0x00, 0x54, 0xfc, 0x76, 0xff, 0x18, 0x98,
		0x7d, 0xbd, 0xfb, 0x92, 0x9f, 0xcc, 0x48, 0xa0, 0xc4, 0x8a, 0xed, 0x58, 0xc3, 0xae, 0x63, 0x4c,
		0xb1, 0xf0, 0xca, 0x7b, 0x9a, 0xcb, 0xc9, 0x9d, 0xd6, 0xa7, 0xb7, 0xd1, 0x59, 0xf9, 0x6c, 0xaf,
		0x7e, 0xd1, 0xa9, 0x3d, 0x0f, 0x0c, 0xf7, 0xff, 0xe6, 0x3f, 0x59, 0xfc, 0xd4, 0xa9, 0xbb, 0xcf,
		0x51, 0x73, 0x1f, 0xa3, 0xe9, 0x3e, 0x45, 0x67, 0x5a, 0x31, 0x74, 0x2f, 0x19, 0xe1, 0x8a, 0x21,
		0x58, 0x8a, 0xed, 0x68, 0x4e, 0x7c, 0xc4, 0x5e, 0x08, 0x70, 0x8e, 0x87, 0x8b, 0x29, 0xe8, 0x33,
		0x06, 0x18, 0x73, 0x18, 0xaf, 0x8c, 0x6b, 0x31, 0xe6, 0x40, 0x84, 0xe5, 0x5b, 0x19, 0xca, 0xb6,
		0x52, 0x5b, 0x5d, 0xb6, 0x32, 0xad, 0x6c, 0x26, 0x95, 0xa7, 0x2c, 0x6b, 0xb2, 0x60, 0xff, 0x49,
		0xa7, 0x61, 0x3c, 0xca, 0x14, 0x6e, 0x79, 0x6b, 0x3b, 0xaf, 0x9b, 0x04, 0xb5, 0x9d, 0x53, 0x04,
		0x12, 0xdc, 0x2e, 0x3a, 0x6a, 0x3b, 0xcb, 0xf0, 0x85, 0x51, 0xdb, 0x99, 0xf2, 0xf1, 0x51, 0xdb,
		0x59, 0xc6, 0xdb, 0xe6, 0x7d, 0xeb, 0x7c, 0x6f, 0x7f, 0x8d, 0x6b, 0x8b, 0xbd, 0xfb, 0x10, 0x13,
		0x61, 0xb3, 0x1e, 0x09, 0x57, 0xf1, 0x67, 0x43, 0x6d, 0x67, 0xa4, 0x6f, 0xc1, 0x04, 0x64, 0xd5,
		0x04, 0xe0, 0x98, 0xda, 0x2e, 0x21, 0x35, 0xce, 0xa5, 0x01, 0x50, 0x01, 0xa8, 0xac, 0x80, 0x8a,
		0x23, 0x43, 0x40, 0x6a, 0x02, 0xa4, 0x86, 0x18, 0xc1, 0x04, 0xc0, 0x04, 0x64, 0xd2, 0x04, 0xa0,
		0x0a, 0x2f, 0xa2, 0x2c, 0xf4, 0x16, 0x01, 0x52, 0x85, 0xa0, 0x0b, 0x0c, 0x04, 0x6a, 0x3b, 0x23,
		0x06, 0xb3, 0x5d, 0x38, 0x8e, 0x90, 0x0c, 0xe0, 0x16, 0x70, 0x2b, 0x13, 0x6e, 0x41, 0xad, 0x81,
		0xe3, 0xf4, 0x38, 0x0e, 0xa9, 0x82, 0x81, 0x80, 0x81, 0xc8, 0xb4, 0x81, 0x40, 0x15, 0x5e, 0x04,
		0x6c, 0xe8, 0x0d, 0x04, 0xa4, 0x0a, 0x01, 0x1b, 0x18, 0x88, 0xad, 0x32, 0x10, 0x08, 0xd8, 0xec,
		0x30, 0x8e, 0x23, 0x60, 0x03, 0xb8, 0x05, 0xdc, 0xca, 0x84, 0x5b, 0x50, 0x6b, 0xe0, 0x38, 0x3d,
		0x8e, 0x43, 0xaa, 0x60, 0x20, 0x60, 0x20, 0x32, 0x69, 0x20, 0x50, 0xdb, 0x79, 0x47, 0x31, 0x1c,
		0xb5, 0x9d, 0x01, 0xb3, 0x80, 0x59, 0xd4, 0x76, 0x46, 0x6d, 0xe7, 0x6d, 0x40, 0x73, 0xd4, 0x76,
		0x46, 0x6d, 0xe7, 0xb4, 0xdc, 0x27, 0x6a, 0x3b, 0xaf, 0x58, 0x30, 0xd4, 0x76, 0x5e, 0x3f, 0x0b,
		0x6a, 0x3b, 0x6f, 0x9a, 0x02, 0xb5, 0x9d, 0x53, 0x84, 0x6b, 0xa8, 0xed, 0x8c, 0xda, 0xce, 0xbc,
		0x92, 0x81, 0xda, 0xce, 0x2b, 0x86, 0x19, 0xb5, 0x9d, 0x09, 0xe7, 0x42, 0x6d, 0xe7, 0xad, 0xb3,
		0x48, 0x7b, 0x29, 0x40, 0x2e, 0x65, 0x5a, 0xe1, 0x98, 0xb7, 0xd6, 0xe6, 0xba, 0x49, 0x50, 0x6b,
		0x33, 0xf6, 0x6b, 0x45, 0xad, 0x4d, 0x79, 0xf8, 0x88, 0x5a, 0x9b, 0x14, 0x12, 0x8b, 0x5a, 0x9b,
		0x0c, 0x7e, 0x16, 0x6a, 0x6d, 0x26, 0xf0, 0xf6, 0x7d, 0xab, 0x80, 0xbd, 0x94, 0x50, 0x13, 0x61,
		0xf3, 0x04, 0x1b, 0xe0, 0xf1, 0x67, 0x43, 0xad, 0x4d, 0x6c, 0xa7, 0xc3, 0x04, 0x64, 0xd5, 0x04,
		0xe0, 0xd8, 0xc0, 0x2e, 0x21, 0x35, 0xce, 0x09, 0x00, 0x50, 0x01, 0xa8, 0xac, 0x80, 0x8a, 0x14,
		0x6e, 0x20, 0x35, 0x01, 0x52, 0x43, 0x8c, 0x60, 0x02, 0x60, 0x02, 0x32, 0x69, 0x02, 0x50, 0x15,
		0x11, 0x51, 0x16, 0x7a, 0x8b, 0x00, 0xa9, 0x42, 0xd0, 0x05, 0x06, 0x02, 0xb5, 0x36, 0x11, 0x83,
		0xd9, 0x2e, 0x1c, 0x47, 0x48, 0x06, 0x70, 0x0b, 0xb8, 0x95, 0x09, 0xb7, 0xa0, 0xd6, 0xc0, 0x71,
		0x7a, 0x1c, 0x87, 0x54, 0xc1, 0x40, 0xc0, 0x40, 0x64, 0xda, 0x40, 0xa0, 0x2a, 0x22, 0x02, 0x36,
		0xf4, 0x06, 0x02, 0x52, 0x85, 0x80, 0x0d, 0x0c, 0xc4, 0x56, 0x19, 0x08, 0x04, 0x6c, 0x76, 0x18,
		0xc7, 0x11, 0xb0, 0x01, 0xdc, 0x02, 0x6e, 0x65, 0xc2, 0x2d, 0xa8, 0x35, 0x70, 0x9c, 0x1e, 0xc7,
		0x21, 0x55, 0x30, 0x10, 0x30, 0x10, 0x99, 0x34, 0x10, 0xa8, 0xb5, 0xb9, 0xa3, 0x18, 0x8e, 0x5a,
		0x9b, 0x80, 0x59, 0xc0, 0x2c, 0x6a, 0x6d, 0xa2, 0xd6, 0xe6, 0x36, 0xa0, 0x39, 0x6a, 0x6d, 0xa2,
		0xd6, 0x66, 0x5a, 0xee, 0x13, 0xb5, 0x36, 0x57, 0x2c, 0x18, 0x6a, 0x6d, 0xae, 0x9f, 0x05, 0xb5,
		0x36, 0x37, 0x4d, 0x81, 0x5a, 0x9b, 0x29, 0xc2, 0x35, 0xd4, 0xda, 0x44, 0xad, 0x4d, 0x5e, 0xc9,
		0x40, 0xad, 0xcd, 0x15, 0xc3, 0x8c, 0x5a, 0x9b, 0x84, 0x73, 0xa1, 0xd6, 0xe6, 0xd6, 0x59, 0xa4,
		0xbd, 0x64, 0x47, 0x88, 0x89, 0x7b, 0x4a, 0xd5, 0x30, 0x4c, 0x67, 0xe2, 0x76, 0x53, 0x68, 0x98,
		0x62, 0x77, 0x1f, 0xc5, 0x93, 0x36, 0xd0, 0x9c, 0xc7, 0xb1, 0xe8, 0xe5, 0xcd, 0x81, 0x30, 0xba,
		0x6e, 0xe5, 0x4b, 0xd5, 0x10, 0xce, 0x2f, 0xd3, 0xfa, 0xa9, 0xea, 0x63, 0x6c, 0x35, 0xba, 0x22,
		0xbf, 0xfa, 0x85, 0xed, 0xfb, 0x26, 0x2f, 0x9e, 0x07, 0x86, 0xfb, 0x7f, 0x0b, 0x3f, 0x5a, 0xfa,
		0x98, 0x9f, 0x16, 0x00, 0x15, 0xbf, 0xdd, 0x3f, 0x06, 0x66, 0x5f, 0xef, 0xbe, 0xe4, 0x6d, 0x47,
		0x73, 0x28, 0x74, 0x58, 0xb1, 0x1d, 0x6b, 0xd8, 0x75, 0x8c, 0x29, 0x14, 0x5e, 0x79, 0x0f, 0x73,
		0x39, 0xb9, 0xd1, 0xfa, 0xf4, 0x2e, 0x3a, 0x2b, 0x9f, 0xed, 0xd5, 0x2f, 0x3a, 0xb5, 0xe7, 0x81,
		0xe1, 0xfe, 0xdf, 0xfc, 0x27, 0x8b, 0x9f, 0x3a, 0x75, 0xf7, 0x31, 0x6a, 0xee, 0x53, 0x34, 0xdd,
		0x87, 0xe8, 0xdc, 0xb8, 0x0f, 0xb1, 0x97, 0x8c, 0x68, 0x45, 0xbb, 0x32, 0xa2, 0x30, 0x52, 0x09,
		0x61, 0x2a, 0x84, 0x2f, 0x86, 0xd8, 0x25, 0x29, 0x6e, 0xd1, 0x04, 0x2d, 0xbc, 0x98, 0x44, 0x10,
		0x11, 0x65, 0x70, 0x77, 0x17, 0x59, 0x2e, 0x3c, 0x3f, 0x66, 0x3c, 0x48, 0x44, 0xf1, 0x9c, 0x05,
		0x0f, 0x22, 0x5e, 0x1e, 0xb7, 0xf2, 0x2f, 0x45, 0xa5, 0x5f, 0xc2, 0xca, 0xbe, 0x54, 0x0e, 0x19,
		0x79, 0xe5, 0x5e, 0x72, 0xef, 0x8a, 0xb6, 0x32, 0xaf, 0x5c, 0x48, 0xfd, 0xa4, 0xc7, 0x23, 0xb7,
		0xca, 0x9d, 0xda, 0x35, 0x9f, 0x06, 0xa6, 0x21, 0x08, 0x02, 0x2c, 0xf3, 0x82, 0xb2, 0x0b, 0x83,
		0xc6, 0x5c, 0x9b, 0x78, 0x4a, 0x49, 0xa6, 0x9c, 0x94, 0x4a, 0xca, 0xa0, 0xac, 0x5c, 0x2c, 0x8a,
		0xad, 0xec, 0x36, 0x1b, 0x45, 0xe2, 0x29, 0xb3, 0x9d, 0xac, 0xf3, 0x1e, 0x57, 0xc9, 0xd7, 0x29,
		0xbb, 0x3a, 0x75, 0x3f, 0x88, 0x0b, 0xf5, 0xfb, 0x66, 0x40, 0x95, 0xfe, 0x14, 0xc1, 0x03, 0x77,
		0xb0, 0x05, 0x55, 0xfa, 0x65, 0x44, 0x35, 0xd2, 0x5f, 0xa5, 0xbf, 0x2f, 0xb4, 0x7b, 0x4b, 0xdc,
		0x73, 0xd4, 0xe9, 0xaf, 0x10, 0x8e, 0xd9, 0x9c, 0x32, 0xc8, 0xc3, 0xc3, 0xfc, 0x84, 0x80, 0xe5,
		0x7d, 0xf0, 0xb5, 0x45, 0x8d, 0x5a, 0xba, 0x33, 0xcc, 0x23, 0x86, 0xfc, 0xe9, 0xb8, 0xb4, 0x40,
		0x5f, 0x00, 0xd0, 0x03, 0xe8, 0x01, 0xf4, 0x34, 0x32, 0x4b, 0xe5, 0x3f, 0xf2, 0xfb, 0x91, 0xb2,
		0xfc, 0x49, 0x26, 0xbf, 0x92, 0x0d, 0x76, 0x38, 0xe1, 0x47, 0x02, 0x0c, 0x71, 0xc3, 0x91, 0x34,
		0x58, 0x92, 0x06, 0x4f, 0x72, 0x60, 0x8a, 0x16, 0xae, 0x88, 0x61, 0x8b, 0xcf, 0x4f, 0xf5, 0x49,
		0x3c, 0x5b, 0x6a, 0xf5, 0x3c, 0xa5, 0x3a, 0xa5, 0xbb, 0xa3, 0x84, 0x6b, 0xa5, 0xdc, 0x69, 0xdd,
		0x9f, 0x77, 0xa6, 0x21, 0x54, 0xdb, 0xea, 0xaa, 0x4f, 0x5a, 0x97, 0xd1, 0x2a, 0xac, 0xce, 0x04,
		0xab, 0x00, 0xab, 0x00, 0xab, 0x00, 0xab, 0x40, 0x2a, 0xf1, 0x4f, 0x5a, 0x57, 0xd5, 0x7a, 0x3d,
		0x4b, 0xd8, 0x36, 0xab, 0x69, 0x60, 0x18, 0x9b, 0xfb, 0x18, 0x84, 0x72, 0x7b, 0xa4, 0x9e, 0x69,
		0xea, 0x7d, 0x55, 0xfd, 0xdc, 0xfe, 0x53, 0x1c, 0xed, 0x9f, 0x2f, 0x7f, 0x3e, 0xf8, 0x73, 0x32,
		0xa2, 0x97, 0xc7, 0x36, 0xc7, 0x8b, 0x92, 0x71, 0x68, 0x44, 0xf9, 0xe7, 0xfd, 0xd7, 0xc5, 0x70,
		0x26, 0xa2, 0x9d, 0x56, 0x9f, 0x23, 0x55, 0xe4, 0x98, 0x38, 0x33, 0xca, 0x1b, 0x57, 0x76, 0x92,
		0xca, 0xe0, 0xee, 0x6e, 0x31, 0x7c, 0x99, 0x27, 0x0d, 0xcb, 0xe5, 0xa4, 0xa6, 0xad, 0x34, 0xef,
		0xee, 0x3a, 0x1f, 0x2f, 0x66, 0x4f, 0xd2, 0x99, 0xba, 0x4d, 0xdb, 0xd4, 0x33, 0x7b, 0xbe, 0x4e,
		0x36, 0x43, 0xb3, 0xec, 0xc5, 0xd1, 0x11, 0x96, 0x4d, 0xa1, 0xe7, 0x8b, 0xb0, 0x6c, 0x32, 0x9e,
		0xed, 0x96, 0x87, 0x65, 0x75, 0xc2, 0x5c, 0x9e, 0x20, 0xe8, 0xc2, 0x44, 0xbb, 0x0b, 0xa0, 0xdd,
		0xa0, 0xdd, 0xa0, 0xdd, 0xe9, 0xa4, 0xdd, 0xd4, 0xa0, 0xe5, 0x0d, 0x4c, 0xbc, 0x3d, 0xbd, 0x51,
		0xa1, 0xc8, 0xfd, 0x62, 0x09, 0x10, 0xc6, 0x0e, 0x65, 0x32, 0x20, 0x4d, 0x22, 0xb4, 0xc9, 0x82,
		0x38, 0xe9, 0x50, 0x27, 0x1d, 0xf2, 0xe4, 0x42, 0x1f, 0x0f, 0x04, 0x32, 0x41, 0x21, 0x3b, 0x24,
		0x2e, 0xf8, 0x75, 0xb6, 0xde, 0xe3, 0x17, 0xe2, 0xb9, 0x87, 0x37, 0x9e, 0x8e, 0x59, 0x9e, 0x78,
		0xb6, 0x58, 0xa4, 0x03, 0xa6, 0x4c, 0xe0, 0x4c, 0x00, 0x40, 0x65, 0x03, 0x69, 0x62, 0x80, 0x9a,
		0x18, 0xb0, 0x26, 0x03, 0xb0, 0xbc, 0x40, 0xcb, 0x0c, 0xb8, 0xde, 0x2b, 0x63, 0xdb, 0x02, 0xda,
		0xa8, 0x71, 0x43, 0xdd, 0x70, 0x8e, 0x8b, 0x32, 0x14, 0x6e, 0x8a, 0x8f, 0x15, 0x09, 0x53, 0x5d,
		0x6b, 0xc6, 0x83, 0x60, 0xaf, 0x98, 0x35, 0xfb, 0x4f, 0x0e, 0x80, 0xe4, 0xa6, 0x85, 0x3a, 0xa4,
		0x21, 0x96, 0x37, 0xe9, 0x77, 0xad, 0x3f, 0x14, 0xfc, 0x06, 0xc7, 0x37, 0xef, 0x67, 0x4b, 0xeb,
		0x3a, 0xba, 0x69, 0x7c, 0xd2, 0x1f, 0x74, 0xea, 0xc2, 0x24, 0xc1, 0x74, 0x44, 0x3c, 0x68, 0x8e,
		0xfe, 0x2c, 0x48, 0xeb, 0x7d, 0xa4, 0x00, 0x66, 0x96, 0x45, 0x4a, 0xfb, 0x9d, 0x9c, 0x48, 0x15,
		0xca, 0x95, 0x4a, 0xa5, 0x48, 0x59, 0x04, 0x06, 0x92, 0x95, 0xa0, 0x79, 0x94, 0x37, 0x4b, 0x3b,
		0xd3, 0x66, 0x9e, 0xb1, 0x56, 0xcf, 0xc6, 0x39, 0xf9, 0x6a, 0xf8, 0xa4, 0xc0, 0x2e, 0x2e, 0xd5,
		0xfc, 0x39, 0x3a, 0x3d, 0x3a, 0xcf, 0x7d, 0xd7, 0x2d, 0x67, 0xa8, 0xf5, 0x73, 0x4d, 0x4b, 0x7f,
		0xd6, 0x1c, 0x91, 0x6b, 0x54, 0x2f, 0x73, 0x37, 0xc2, 0x7a, 0xd6, 0xbb, 0x22, 0xb7, 0xff, 0xbd,
		0xd9, 0xb8, 0x39, 0xc8, 0xd5, 0x0d, 0x47, 0x58, 0xe6, 0x40, 0x58, 0xda, 0x9d, 0xde, 0xd7, 0x9d,
		0x97, 0x1f, 0xc6, 0x2f, 0xdd, 0x79, 0xcc, 0x35, 0x2d, 0xf3, 0x59, 0xef, 0x09, 0x2b, 0xf7, 0x71,
		0x9a, 0x93, 0x97, 0xfb, 0x68, 0xe9, 0xbd, 0x07, 0x61, 0x1f, 0x2a, 0x12, 0x61, 0x59, 0x32, 0x3d,
		0x59, 0x47, 0x53, 0xb8, 0x8b, 0x0a, 0xa5, 0x8e, 0xb1, 0xac, 0x65, 0x2e, 0xcc, 0x22, 0x05, 0xe4,
		0x4f, 0x17, 0xf2, 0x23, 0x02, 0x98, 0x63, 0xcc, 0x21, 0xf2, 0xcd, 0x93, 0x74, 0x4e, 0xd1, 0x62,
		0x66, 0xc9, 0xe2, 0x87, 0x3c, 0xeb, 0xa6, 0x4a, 0x2e, 0xc9, 0xe4, 0xa3, 0xba, 0xf7, 0x57, 0x7b,
		0xe1, 0xef, 0xa4, 0x39, 0x49, 0xfc, 0xb2, 0xcf, 0x20, 0xf7, 0xcc, 0x41, 0x69, 0x29, 0xc1, 0x68,
		0xe6, 0x20, 0x34, 0x76, 0xeb, 0xd2, 0xe9, 0xc5, 0x61, 0xb7, 0x6e, 0x97, 0x6d, 0x35, 0x7b, 0xd0,
		0x98, 0xb1, 0x0a, 0xc2, 0x26, 0x00, 0x2b, 0x54, 0x78, 0x3b, 0x76, 0xac, 0x54, 0x49, 0x98, 0x60,
		0xf2, 0x0e, 0xdb, 0xbe, 0x49, 0xe1, 0x49, 0x76, 0xdb, 0x47, 0x55, 0xdf, 0xf2, 0x4d, 0xd1, 0xe1,
		0xb6, 0x7d, 0x45, 0xd8, 0x3e, 0xd8, 0x3e, 0xd8, 0xbe, 0x54, 0xd8, 0x3e, 0x64, 0xaa, 0xa4, 0x8e,
		0x24, 0x48, 0x23, 0x0b, 0x32, 0x81, 0x33, 0x01, 0x00, 0x95, 0x0d, 0xa4, 0x89, 0x01, 0x6a, 0x62,
		0xc0, 0x9a, 0x0c, 0xc0, 0xf2, 0x02, 0x2d, 0x33, 0xe0, 0xca, 0x23, 0x1d, 0x3e, 0x8d, 0x43, 0xa6,
		0x4a, 0xec, 0xff, 0x90, 0xa9, 0xc2, 0x33, 0x2f, 0x32, 0x55, 0xa4, 0x88, 0x14, 0x32, 0x55, 0x90,
		0xa9, 0x92, 0xb9, 0x59, 0x90, 0xa9, 0x12, 0x76, 0x4e, 0x64, 0xaa, 0x20, 0x53, 0x25, 0x1c, 0x4d,
		0x41, 0xa6, 0x0a, 0x32, 0x55, 0x76, 0x0e, 0xf9, 0x11, 0x01, 0xcc, 0x21, 0x53, 0xc5, 0x70, 0xf2,
		0x9c, 0x7b, 0x2a, 0xb9, 0x14, 0x26, 0xaa, 0x10, 0xb4, 0x17, 0x93, 0x27, 0xf9, 0xe9, 0x3e, 0xfa,
		0xfe, 0xbf, 0xe2, 0x85, 0x2b, 0xe8, 0xcc, 0xd3, 0xa9, 0x76, 0x31, 0xbc, 0xc0, 0xd3, 0xb1, 0x76,
		0x91, 0x6d, 0x4a, 0xeb, 0x5c, 0xeb, 0x4d, 0xca, 0xd7, 0xc1, 0xd6, 0x3f, 0x05, 0x79, 0x27, 0x5b,
		0x2e, 0x29, 0x65, 0x46, 0xf8, 0xd4, 0x22, 0xbb, 0xc2, 0xb2, 0xcf, 0x9f, 0x26, 0x2c, 0x57, 0x50,
		0xcf, 0x2f, 0x39, 0xf9, 0x4f, 0x95, 0xdc, 0x6f, 0x43, 0x55, 0xbf, 0x05, 0x19, 0xdf, 0xa6, 0xd2,
		0x7e, 0xb4, 0xa9, 0x41, 0x2c, 0xa9, 0x40, 0x6c, 0xc5, 0xfc, 0x8a, 0x28, 0xe6, 0xc7, 0x14, 0xb2,
		0x41, 0x31, 0xbf, 0xb4, 0x9b, 0x1d, 0xf4, 0x58, 0x79, 0x0f, 0x6e, 0x50, 0x4d, 0x1f, 0x65, 0xfd,
		0x52, 0x19, 0x2e, 0x46, 0x59, 0x3f, 0xf4, 0x58, 0x61, 0xe5, 0x47, 0xe8, 0xb1, 0x02, 0xab, 0x00,
		0xab, 0x00, 0xab, 0x00, 0xab, 0xe0, 0x93, 0x78, 0xf4, 0x58, 0xd9, 0x3c, 0x01, 0x7a, 0xac, 0x84,
		0x99, 0x05, 0x3d, 0x56, 0xd2, 0x4b, 0x8e, 0xb7, 0x35, 0x26, 0x4b, 0xbd, 0x99, 0x9c, 0x58, 0x30,
		0x96, 0x70, 0x97, 0x98, 0x20, 0x0c, 0xbb, 0x97, 0xa0, 0xcc, 0xce, 0x76, 0x79, 0x89, 0x83, 0x22,
		0xb4, 0x1b, 0xbc, 0xf4, 0x1b, 0xba, 0x52, 0x36, 0x70, 0x19, 0x36, 0x6c, 0x19, 0x36, 0x68, 0xe3,
		0x0a, 0x10, 0x43, 0x12, 0x28, 0x43, 0x92, 0x27, 0x43, 0x68, 0xdd, 0xcd, 0xa8, 0x2b, 0x17, 0x8f,
		0xcf, 0x37, 0xe5, 0xc5, 0xe9, 0xc6, 0x43, 0xee, 0xc2, 0x7c, 0xba, 0xd3, 0x0d, 0xd1, 0x9b, 0x66,
		0xd0, 0xd5, 0x9c, 0x47, 0x61, 0x19, 0xc2, 0xc9, 0x7d, 0x6f, 0x5e, 0xe6, 0xf6, 0x9b, 0x1f, 0x3f,
		0xaa, 0xb5, 0xef, 0xcd, 0xcb, 0x83, 0xc3, 0x8c, 0xc5, 0xe7, 0xb9, 0x52, 0x2a, 0xe5, 0x86, 0xe8,
		0x49, 0x17, 0x70, 0x3b, 0x5d, 0x19, 0x06, 0xb5, 0xa9, 0xd7, 0x6a, 0xb5, 0xdc, 0xe9, 0x51, 0xf1,
		0xb0, 0xa0, 0x6d, 0xce, 0x28, 0x85, 0x3e, 0x24, 0xa0, 0x0f, 0xc1, 0x56, 0x26, 0x6d, 0x82, 0xbe,
		0x97, 0x2c, 0xa7, 0x89, 0x6b, 0x3e, 0x89, 0xb9, 0x42, 0xd2, 0x1c, 0x41, 0x21, 0xc9, 0x29, 0x48,
		0x84, 0x15, 0xc4, 0x93, 0xec, 0xe8, 0x72, 0x18, 0xed, 0xca, 0x88, 0x72, 0x47, 0x25, 0x6f, 0x49,
		0xc8, 0x59, 0x0c, 0xd9, 0x92, 0x2a, 0x53, 0xd1, 0x04, 0x29, 0xbc, 0x18, 0x44, 0x10, 0x81, 0x98,
		0xf9, 0x3a, 0x24, 0xf9, 0x39, 0x31, 0xf3, 0x71, 0x62, 0xe7, 0xdf, 0x50, 0x6c, 0x6d, 0x10, 0x6e,
		0x61, 0x50, 0xf9, 0x27, 0xe4, 0x5b, 0x12, 0xe4, 0xce, 0x07, 0xed, 0x16, 0x83, 0x5c, 0xd8, 0x8c,
		0x9b, 0xef, 0xa2, 0x74, 0x4d, 0xc3, 0xb1, 0xcc, 0xbe, 0x3a, 0x5e, 0x22, 0x55, 0x18, 0x63, 0xae,
		0x1c, 0xbf, 0x72, 0xcc, 0x62, 0x97, 0x37, 0xff, 0xe8, 0x71, 0x23, 0x43, 0x24, 0x3b, 0x96, 0x64,
		0x3b, 0x94, 0x94, 0x3b, 0x92, 0x0c, 0x3b, 0x90, 0xd4, 0x34, 0x83, 0x6d, 0x87, 0x91, 0x8d, 0x53,
		0xf0, 0xec, 0x20, 0x26, 0x1b, 0x1d, 0x25, 0xdb, 0x11, 0x9c, 0xe7, 0x19, 0x98, 0x66, 0x5f, 0x68,
		0x24, 0x12, 0x37, 0xb3, 0xa3, 0x05, 0xc4, 0xff, 0x12, 0x8a, 0xff, 0x9d, 0x16, 0x0b, 0x25, 0xdf,
		0x79, 0xda, 0xff, 0xe8, 0x96, 0xf0, 0x0e, 0xd4, 0xde, 0x0c, 0x07, 0x03, 0xd3, 0x72, 0x7e, 0x18,
		0xba, 0xb1, 0x14, 0x3b, 0xfa, 0x61, 0xf4, 0x2c, 0xed, 0xde, 0x51, 0x75, 0xe1, 0xdc, 0xab, 0x77,
		0xc2, 0xb6, 0x55, 0xeb, 0xbe, 0x5b, 0x29, 0x1d, 0x17, 0xef, 0x74, 0x5b, 0x3d, 0x3a, 0xc9, 0x7d,
		0xfc, 0xd2, 0xcc, 0x7d, 0x6d, 0x36, 0x6e, 0xd4, 0x8f, 0x9a, 0x2d, 0x7a, 0x3f, 0x8c, 0xc5, 0x6b,
		0x11, 0x1c, 0x49, 0x26, 0x58, 0x98, 0xd0, 0x6a, 0x23, 0xe0, 0x42, 0x45, 0xb4, 0x63, 0x38, 0xe9,
		0xc2, 0xe8, 0x6a, 0x03, 0x7b, 0xd8, 0x77, 0x99, 0xb3, 0xea, 0x50, 0x98, 0x05, 0x0f, 0x48, 0xd6,
		0x8c, 0x0d, 0xd7, 0x0d, 0xae, 0x1b, 0x5c, 0xb7, 0x94, 0xb9, 0x6e, 0x7a, 0x4f, 0x18, 0x8e, 0xee,
		0xbc, 0xd0, 0x14, 0xb9, 0xf6, 0xdc, 0x37, 0x8a, 0x9d, 0xe6, 0xfa, 0xf4, 0xd6, 0xc6, 0xf6, 0x83,
		0xfe, 0x34, 0x56, 0xed, 0xf2, 0xa2, 0xda, 0xbc, 0xf9, 0xd6, 0xa8, 0xb6, 0xea, 0x57, 0x54, 0xde,
		0xc7, 0xa4, 0x76, 0x96, 0x4d, 0x9a, 0x20, 0xc5, 0x94, 0x1a, 0x3c, 0xb6, 0xcc, 0x4a, 0x1a, 0xd3,
		0xa3, 0x99, 0x9e, 0xf7, 0xfb, 0xdf, 0x8d, 0x6a, 0xea, 0xdc, 0x8e, 0x76, 0xd2, 0x70, 0x94, 0x8c,
		0xdb, 0xf1, 0xac, 0x13, 0xfa, 0x19, 0xcf, 0x3a, 0x1c, 0x0b, 0x38, 0x16, 0x70, 0x2c, 0xd2, 0xe6,
		0x58, 0x90, 0x9d, 0x15, 0x22, 0x3a, 0x1b, 0x94, 0x0c, 0xd6, 0x3d, 0x0d, 0xfb, 0x8e, 0xde, 0xd5,
		0x6c, 0x47, 0x7d, 0xb0, 0xcc, 0xe1, 0x80, 0x0e, 0xf7, 0x56, 0x07, 0x06, 0x06, 0x02, 0x03, 0x81,
		0x81, 0x69, 0x23, 0x57, 0x03, 0xc2, 0x83, 0x31, 0x1e, 0x0e, 0x9e, 0x11, 0x8c, 0x35, 0x7d, 0xd6,
		0xd4, 0xc6, 0xa1, 0xf5, 0xc1, 0x73, 0x89, 0xe1, 0x50, 0x11, 0xc7, 0x61, 0x22, 0xb6, 0x43, 0x44,
		0xca, 0xfe, 0xed, 0x91, 0x7a, 0xd6, 0x7e, 0xbd, 0x2d, 0xa8, 0x67, 0xed, 0xc9, 0x5f, 0x0b, 0xee,
		0x1f, 0x7f, 0x8a, 0xa3, 0xd7, 0xe2, 0xed, 0x91, 0x5a, 0x9a, 0x7e, 0x5b, 0x3c, 0xb9, 0x3d, 0x52,
		0x4f, 0xda, 0x07, 0xfb, 0x3f, 0x7e, 0x1c, 0x86, 0xbd, 0xe6, 0xe0, 0xcf, 0x31, 0xe1, 0x11, 0xa4,
		0x36, 0xe5, 0x6b, 0xe5, 0x3c, 0x72, 0xa4, 0xfc, 0xb3, 0x2f, 0xeb, 0xed, 0x1e, 0x10, 0x1e, 0x59,
		0x6a, 0x6f, 0x79, 0x1e, 0xad, 0x3e, 0x78, 0x2e, 0x43, 0xed, 0xf7, 0x17, 0x8f, 0xbd, 0x15, 0x3e,
		0x94, 0x46, 0xe7, 0x07, 0x7f, 0x2a, 0xa3, 0xd5, 0x2f, 0x5f, 0xd7, 0xfd, 0xac, 0xf0, 0xa1, 0x32,
		0x3a, 0xdf, 0xf0, 0x2f, 0xe5, 0xd1, 0x79, 0xc0, 0x31, 0x4e, 0x56, 0x8e, 0xde, 0x8d, 0xff, 0x61,
		0xfc, 0x7d, 0x71, 0xd3, 0x05, 0xa5, 0x0d, 0x17, 0x1c, 0x6f, 0xba, 0xe0, 0x78, 0xc3, 0x05, 0x1b,
		0x6f, 0xa9, 0xb8, 0xe1, 0x82, 0x93, 0xd1, 0xab, 0xef, 0xf7, 0xfb, 0xeb, 0x7f, 0x5a, 0x1e, 0x1d,
		0xbc, 0x6e, 0xfa, 0xb7, 0xca, 0xe8, 0xf5, 0xfc, 0xe0, 0x60, 0x87, 0x81, 0x10, 0xe2, 0x26, 0x5f,
		0xdc, 0xd2, 0x67, 0x18, 0x76, 0x72, 0x1b, 0x74, 0x4e, 0xa5, 0x9f, 0x34, 0xfb, 0x27, 0x07, 0x45,
		0x77, 0xc7, 0x05, 0x43, 0x07, 0x43, 0x07, 0x43, 0x07, 0x43, 0x07, 0x43, 0x07, 0x43, 0x07, 0x43,
		0x07, 0x43, 0x07, 0x43, 0x07, 0x43, 0x07, 0x65, 0x02, 0x43, 0x07, 0x43, 0x07, 0x43, 0x07, 0x43,
		0x7f, 0x53, 0x03, 0x2c, 0x31, 0xe8, 0xeb, 0xdd, 0x49, 0x2a, 0xf1, 0x93, 0xd9, 0x23, 0x4c, 0x53,
		0xf6, 0x8d, 0x0c, 0x96, 0x0e, 0x96, 0x0e, 0x96, 0x9e, 0x32, 0x96, 0x2e, 0x8c, 0xe1, 0x93, 0xb0,
		0x26, 0x07, 0xfc, 0x09, 0x69, 0x7a, 0x89, 0x60, 0xac, 0x9a, 0x31, 0x7c, 0xa2, 0x93, 0xdf, 0x96,
		0x79, 0x33, 0x49, 0x9b, 0x22, 0x2d, 0xb1, 0x77, 0x34, 0x7e, 0x87, 0x37, 0xad, 0x6a, 0xab, 0x7e,
		0xd1, 0xa9, 0x5f, 0x7e, 0xb9, 0xae, 0xdd, 0xdc, 0x74, 0xae, 0x6b, 0xcd, 0x46, 0xfd, 0x82, 0x32,
		0xf9, 0xd9, 0x9d, 0xaa, 0x30, 0x9e, 0xea, 0xe3, 0x97, 0x26, 0xe5, 0x98, 0x45, 0x37, 0x5f, 0xf9,
		0x5b, 0xa3, 0x55, 0xbf, 0xa8, 0xde, 0xb4, 0x94, 0x54, 0x55, 0x45, 0x6c, 0x99, 0x75, 0x57, 0x77,
		0x09, 0x57, 0x6b, 0xfc, 0xf6, 0xc8, 0x1a, 0x7b, 0xb8, 0x23, 0xce, 0xdf, 0x1d, 0x59, 0x7f, 0x8f,
		0x09, 0x7a, 0x6f, 0x16, 0xa9, 0xf3, 0xdc, 0xd1, 0x76, 0x54, 0x22, 0x4c, 0xc6, 0xdf, 0x31, 0x87,
		0x8e, 0x50, 0x7b, 0xba, 0xed, 0xe8, 0xc6, 0xc3, 0x50, 0xb7, 0x1f, 0x85, 0x45, 0xe8, 0xf2, 0xac,
		0x19, 0x1c, 0x5e, 0x0f, 0xbc, 0x1e, 0x78, 0x3d, 0x29, 0xf3, 0x7a, 0x86, 0x06, 0xb1, 0xbf, 0xb3,
		0x0b, 0xdb, 0x12, 0xf4, 0xe8, 0xc6, 0xf5, 0x2a, 0x79, 0x5e, 0x29, 0xfd, 0xab, 0xf5, 0xbd, 0x62,
		0x09, 0x5d, 0x40, 0xb2, 0x58, 0xea, 0xdd, 0xb7, 0xf3, 0x30, 0x09, 0x77, 0xdd, 0x16, 0xd4, 0x93,
		0xe9, 0xe7, 0xd2, 0xe8, 0xb5, 0x3c, 0xdf, 0x82, 0xf8, 0x73, 0x3c, 0x7a, 0x2d, 0x9f, 0x2c, 0x7c,
		0x2e, 0x8e, 0x3f, 0x8f, 0xbf, 0x28, 0x4e, 0xf7, 0x28, 0xca, 0x27, 0x27, 0xc7, 0x93, 0x5d, 0x8a,
		0xf3, 0x75, 0x83, 0x9f, 0xba, 0x83, 0x1f, 0x4f, 0x3f, 0x9f, 0x8d, 0x5e, 0x4b, 0xb7, 0x47, 0x85,
		0xe9, 0xa7, 0xd3, 0xd1, 0x6b, 0xa9, 0x78, 0x7b, 0xa4, 0x9e, 0x4e, 0x3f, 0x57, 0xc6, 0x9f, 0xcf,
		0x6e, 0x8f, 0xbc, 0x9f, 0x97, 0xdd, 0x2f, 0x4a, 0x0b, 0x3f, 0x39, 0x99, 0x7c, 0x73, 0xe6, 0xce,
		0xe8, 0xdd, 0xb0, 0xfb, 0xd5, 0xf8, 0xae, 0xcb, 0xf3, 0xbb, 0x9e, 0x7c, 0x57, 0x99, 0xcf, 0x56,
		0xf4, 0xbe, 0x5b, 0x98, 0xd3, 0xfb, 0x6a, 0x32, 0xe2, 0x01, 0x0a, 0xdd, 0xfb, 0x42, 0xba, 0x90,
		0x96, 0x8d, 0xd2, 0x72, 0x90, 0xfe, 0x42, 0xff, 0x1f, 0x00, 0xd8, 0xdb, 0x05, 0xd8, 0x4c, 0xdb,
		0xcb, 0xe7, 0x9c, 0xba, 0x0e, 0x54, 0x7d, 0x13, 0x55, 0xb3, 0xb8, 0xa4, 0x80, 0x3e, 0x40, 0x5f,
		0x02, 0xbe, 0x6a, 0xc6, 0x1c, 0x04, 0xa0, 0x6a, 0xa2, 0xbe, 0x2a, 0xa4, 0x25, 0x53, 0x80, 0x8d,
		0xfc, 0xb6, 0x80, 0x06, 0x83, 0x76, 0xab, 0xd1, 0x67, 0x2d, 0x4a, 0x84, 0x63, 0x92, 0x6e, 0x3d,
		0xce, 0xa3, 0x51, 0x1c, 0x5b, 0x90, 0xde, 0xe8, 0xee, 0x56, 0x64, 0xf5, 0x5b, 0xeb, 0x4a, 0x49,
		0x77, 0xd3, 0x44, 0xf2, 0x6d, 0xbd, 0x79, 0xe8, 0x7b, 0xfc, 0xf0, 0x54, 0xdb, 0x63, 0xf4, 0xfa,
		0x8d, 0x06, 0x16, 0xe8, 0xff, 0x54, 0x3a, 0x2e, 0x9e, 0xaf, 0x94, 0xef, 0x5c, 0xee, 0x11, 0x34,
		0xd0, 0x1e, 0x84, 0x5a, 0x38, 0x45, 0xcd, 0xd6, 0xc9, 0x1c, 0xf2, 0x1b, 0x3c, 0x05, 0x5e, 0x21,
		0xe0, 0x02, 0xd1, 0xfc, 0x71, 0xb6, 0xf3, 0xed, 0x49, 0x25, 0x5d, 0xe2, 0x0a, 0xab, 0x4b, 0xa3,
		0x62, 0x03, 0xff, 0xdd, 0xf7, 0x85, 0x0d, 0x7c, 0x6c, 0xe0, 0xbf, 0xe9, 0xf3, 0xa1, 0xb6, 0x2a,
		0xd5, 0x83, 0xd7, 0xbe, 0x37, 0x2f, 0x3b, 0xad, 0xff, 0x36, 0x6b, 0xbb, 0x57, 0x57, 0xf5, 0x7b,
		0xa3, 0x7a, 0xd9, 0xa9, 0xfe, 0xa7, 0x7a, 0x5d, 0xdb, 0xa9, 0xea, 0xaa, 0xe3, 0xa7, 0xfe, 0x58,
		0xbd, 0xa9, 0x7d, 0xda, 0xbd, 0xa7, 0xfe, 0x76, 0xf9, 0xa9, 0x51, 0x43, 0x65, 0x59, 0x10, 0x30,
		0x79, 0x04, 0x0c, 0xc4, 0x2b, 0xad, 0xc4, 0x0b, 0x84, 0x8b, 0x8c, 0x70, 0xa1, 0x83, 0x64, 0x80,
		0x0e, 0x92, 0x71, 0x7a, 0x16, 0xe6, 0xa4, 0xf6, 0x90, 0xbc, 0x71, 0xef, 0x34, 0xc5, 0x5d, 0x24,
		0x9f, 0x7f, 0xf7, 0x35, 0x23, 0x7e, 0x17, 0xc9, 0xc9, 0x30, 0x09, 0x77, 0x91, 0x3c, 0x42, 0x17,
		0x49, 0x4e, 0x7e, 0x8d, 0x2e, 0x92, 0x0b, 0xb7, 0x1e, 0xbb, 0x8b, 0xa4, 0x66, 0xbc, 0xb8, 0x55,
		0xb2, 0x6c, 0x77, 0xb5, 0x55, 0xdd, 0x70, 0x84, 0x75, 0xaf, 0x75, 0x09, 0x43, 0x65, 0x1b, 0x67,
		0xa0, 0x09, 0x9b, 0x15, 0x10, 0x36, 0x43, 0xd8, 0x6c, 0x57, 0xc3, 0x66, 0x71, 0xd5, 0xdf, 0x1b,
		0xa8, 0x3b, 0xd3, 0x02, 0xe2, 0x60, 0xd4, 0x74, 0x5c, 0xa2, 0x15, 0xa4, 0x51, 0x79, 0x72, 0xd5,
		0xe7, 0x80, 0x00, 0x46, 0x28, 0x90, 0xc9, 0x3e, 0x49, 0xa1, 0x21, 0x19, 0xea, 0x49, 0x06, 0x15,
		0xc4, 0xe4, 0x92, 0x48, 0x66, 0xa9, 0x20, 0xc4, 0x1b, 0x90, 0xce, 0x85, 0xd8, 0xa8, 0x0b, 0x54,
		0x3e, 0xc4, 0x26, 0x80, 0x39, 0x22, 0x1e, 0x96, 0x1a, 0x68, 0x38, 0x01, 0x67, 0x1d, 0xf0, 0xe8,
		0xf7, 0x1c, 0x49, 0xbc, 0x4c, 0xf0, 0x23, 0x0d, 0x86, 0xa4, 0xc1, 0xd1, 0x26, 0x58, 0xd2, 0xef,
		0xe9, 0x53, 0x1f, 0x47, 0xe9, 0x4e, 0x0d, 0xa3, 0xda, 0x26, 0xdc, 0x28, 0xed, 0x7d, 0xa1, 0xdd,
		0xd3, 0x6c, 0x19, 0x6e, 0xf4, 0x5e, 0x2a, 0x3c, 0x49, 0xeb, 0xd3, 0xa0, 0xd7, 0x58, 0x2c, 0xce,
		0x3d, 0x80, 0xb4, 0x57, 0xbf, 0x98, 0x7e, 0x76, 0x63, 0x4e, 0x69, 0xcd, 0x82, 0x23, 0x74, 0x71,
		0xec, 0xe1, 0x9d, 0x04, 0x7b, 0xb4, 0x34, 0x0b, 0x4c, 0x12, 0x4c, 0x12, 0x4c, 0x12, 0x4c, 0x12,
		0x4c, 0x52, 0x40, 0x93, 0x74, 0x3b, 0x37, 0x49, 0xff, 0xee, 0x0e, 0x2d, 0x4b, 0x18, 0xce, 0xfe,
		0x41, 0xfe, 0xf0, 0x30, 0xef, 0xfd, 0xa2, 0x3d, 0xbd, 0x64, 0x11, 0x67, 0xed, 0x35, 0xdf, 0x79,
		0x23, 0xf7, 0xc4, 0x6f, 0x65, 0xbb, 0x73, 0xbc, 0xa9, 0x62, 0x62, 0x34, 0x5b, 0x6f, 0x7e, 0xbb,
		0x2b, 0x79, 0x2b, 0xce, 0xdd, 0xf8, 0xc9, 0x6f, 0x0a, 0x35, 0xe7, 0x49, 0xc3, 0x50, 0x39, 0xa9,
		0x5b, 0x77, 0xdf, 0xc7, 0x4f, 0xd6, 0xa9, 0x4e, 0x9e, 0x6c, 0x62, 0x9f, 0xea, 0xb3, 0xe7, 0xea,
		0x4c, 0xad, 0x78, 0x5a, 0xaa, 0x7d, 0x11, 0x84, 0xa9, 0x27, 0x7b, 0xaa, 0xe4, 0x71, 0xc8, 0xb8,
		0x5b, 0xb5, 0x52, 0xc2, 0x90, 0x45, 0x84, 0x21, 0x11, 0x86, 0x44, 0x18, 0x12, 0x61, 0x48, 0x70,
		0x3e, 0x70, 0x3e, 0x70, 0x3e, 0x70, 0x3e, 0x84, 0x21, 0x11, 0x86, 0x44, 0x18, 0x12, 0x26, 0x09,
		0x26, 0x09, 0x26, 0x09, 0x26, 0x09, 0x61, 0x48, 0x84, 0x21, 0xb3, 0x1d, 0x86, 0xa4, 0x8c, 0x42,
		0xa5, 0x28, 0x0a, 0x19, 0xe3, 0x74, 0x01, 0x43, 0x10, 0x32, 0xd1, 0x84, 0x4c, 0x62, 0x41, 0x4e,
		0x99, 0x00, 0x2b, 0x24, 0x01, 0xde, 0x14, 0x88, 0xac, 0x92, 0xc1, 0x42, 0x16, 0x44, 0x29, 0xba,
		0xb4, 0xa9, 0xb9, 0xc8, 0xc2, 0x4f, 0xd4, 0xb3, 0x47, 0x16, 0x7e, 0x1a, 0x40, 0x9f, 0x2c, 0x0b,
		0xff, 0xd1, 0xb4, 0x1d, 0xd5, 0x12, 0x5a, 0xf7, 0x51, 0xbb, 0xd3, 0xfb, 0xba, 0xf3, 0xa2, 0xde,
		0x3d, 0x0c, 0xe8, 0x37, 0xc3, 0xd6, 0x4f, 0x43, 0xbb, 0x39, 0x76, 0x84, 0x1c, 0xfd, 0x34, 0x87,
		0x02, 0xb0, 0x39, 0x96, 0x25, 0x7a, 0x44, 0x4e, 0xee, 0x3d, 0x89, 0xbd, 0x33, 0xcd, 0xbe, 0xd0,
		0x58, 0xaa, 0x6d, 0x16, 0xb6, 0x28, 0x2b, 0xe1, 0x69, 0xd8, 0x77, 0x74, 0xd7, 0x25, 0x7e, 0xb0,
		0xcc, 0x21, 0x03, 0x24, 0xaf, 0x4e, 0x00, 0x30, 0x06, 0x18, 0x03, 0x8c, 0x77, 0x0c, 0x8c, 0xf5,
		0x01, 0x67, 0x73, 0xff, 0x5d, 0xee, 0x9a, 0xa5, 0x0f, 0x9e, 0x4b, 0x0c, 0xef, 0xd6, 0xf7, 0x8e,
		0xd1, 0x8a, 0xe5, 0x8d, 0xbe, 0x1d, 0xa8, 0xeb, 0x3f, 0x9f, 0x45, 0x5e, 0xb7, 0x14, 0x34, 0x34,
		0x21, 0x85, 0x91, 0x32, 0x60, 0x64, 0x13, 0x8c, 0xb8, 0xd2, 0xa9, 0xa9, 0xf7, 0x55, 0xf5, 0x73,
		0xfb, 0x4f, 0xe1, 0x43, 0x69, 0x74, 0x7e, 0xf0, 0xa7, 0x32, 0x5a, 0xfd, 0xf2, 0x75, 0xdd, 0xcf,
		0x0a, 0x1f, 0x2a, 0xa3, 0xf3, 0x0d, 0xff, 0x52, 0x1e, 0x9d, 0x07, 0x1c, 0xe3, 0x64, 0xb4, 0xef,
		0xfb, 0xe9, 0xf8, 0xfb, 0xe2, 0xa6, 0x0b, 0x4a, 0x1b, 0x2e, 0x38, 0xde, 0x74, 0xc1, 0xf1, 0x86,
		0x0b, 0x36, 0xde, 0x52, 0x71, 0xc3, 0x05, 0x27, 0xa3, 0x57, 0xdf, 0xef, 0xf7, 0xd7, 0xff, 0xb4,
		0x3c, 0x3a, 0x78, 0xdd, 0xf4, 0x6f, 0x95, 0xd1, 0xeb, 0xf9, 0x01, 0x1a, 0xa6, 0xf8, 0x81, 0x15,
		0x62, 0x28, 0x5f, 0x0c, 0xd1, 0x88, 0x25, 0xe3, 0xb1, 0x8d, 0x27, 0xcd, 0xfe, 0xc9, 0x19, 0xda,
		0x70, 0xc7, 0x47, 0x64, 0x03, 0x91, 0x0d, 0x44, 0x36, 0x10, 0xd9, 0x40, 0x64, 0x03, 0x91, 0x0d,
		0x44, 0x36, 0x10, 0xd9, 0x40, 0x64, 0x03, 0x91, 0x0d, 0x44, 0x36, 0x40, 0x29, 0x11, 0xd9, 0x40,
		0x64, 0x03, 0x91, 0x0d, 0x44, 0x36, 0x08, 0x23, 0x1b, 0xe6, 0xb3, 0xb0, 0xfa, 0xda, 0x8b, 0x2a,
		0x8c, 0xde, 0xc0, 0xd4, 0x09, 0x7b, 0x8a, 0xce, 0x99, 0xf8, 0xea, 0x0c, 0x88, 0x6e, 0x20, 0xba,
		0x81, 0xe8, 0xc6, 0x8e, 0x45, 0x37, 0xe8, 0x4f, 0xc6, 0x71, 0x9c, 0x88, 0x9b, 0x9f, 0x84, 0x7b,
		0xff, 0xa4, 0xc8, 0xad, 0xff, 0x14, 0xdc, 0x2a, 0xd4, 0xf9, 0x0e, 0xa0, 0xb4, 0xf3, 0x5d, 0xd3,
		0x30, 0x44, 0xd7, 0xd1, 0x4d, 0x43, 0x75, 0x7f, 0x62, 0xfb, 0xbe, 0xc9, 0xcf, 0xae, 0xb6, 0xbd,
		0xbf, 0x4d, 0x6b, 0x33, 0x79, 0x9f, 0x55, 0xbd, 0xa7, 0x6c, 0xb1, 0x0d, 0xf2, 0xbd, 0x36, 0x7e,
		0xa3, 0xe4, 0x9f, 0x12, 0x56, 0x0a, 0x56, 0x0a, 0x56, 0x0a, 0x56, 0x2a, 0xe3, 0x56, 0x2a, 0x4f,
		0x57, 0x3e, 0x24, 0x1d, 0xc6, 0xe2, 0xd9, 0xd0, 0xe9, 0xcd, 0xc1, 0x78, 0x50, 0x00, 0x3e, 0x00,
		0x1f, 0x80, 0xbf, 0x63, 0x80, 0xff, 0x6c, 0xe8, 0x63, 0x67, 0x9a, 0x1e, 0xef, 0x29, 0xe1, 0xfe,
		0x5a, 0x33, 0x1e, 0x32, 0xb1, 0xe1, 0xfa, 0x55, 0x37, 0xf8, 0x0a, 0xf2, 0xb8, 0x2d, 0xb6, 0xe9,
		0x4a, 0x8a, 0xfa, 0xc6, 0xff, 0x6c, 0x69, 0x2e, 0x0b, 0xfb, 0xa4, 0x3f, 0xe8, 0x8e, 0x4d, 0x5f,
		0x6e, 0x69, 0x2e, 0x7b, 0xe2, 0x41, 0x73, 0xf4, 0xe7, 0xf1, 0xb3, 0xdc, 0x6b, 0x7d, 0x5b, 0xd0,
		0x57, 0xe1, 0x61, 0x88, 0xdf, 0x7f, 0xd5, 0x7e, 0x4b, 0x58, 0xda, 0x72, 0xa5, 0x52, 0x29, 0x52,
		0xf4, 0x8f, 0xdf, 0xf6, 0x15, 0x46, 0x64, 0x9c, 0x71, 0x04, 0x14, 0x38, 0xe9, 0x6b, 0x06, 0x5d,
		0x3d, 0x70, 0xd9, 0xe5, 0x4c, 0x28, 0x0a, 0x7e, 0x27, 0x53, 0xbe, 0x84, 0xa6, 0xb0, 0x37, 0x69,
		0x41, 0x6f, 0xf2, 0xe2, 0x25, 0x45, 0x14, 0x2f, 0x49, 0x03, 0x4f, 0x41, 0xf1, 0x92, 0x10, 0x8f,
		0x84, 0xe2, 0x25, 0x08, 0x70, 0x20, 0xc0, 0x81, 0x00, 0x47, 0x06, 0x03, 0x1c, 0x28, 0x5e, 0x12,
		0xe8, 0x99, 0x50, 0xbc, 0x04, 0x60, 0x0c, 0x30, 0x06, 0x18, 0xe3, 0x88, 0xcf, 0xd2, 0x3b, 0xc0,
		0x11, 0x9f, 0x95, 0x77, 0x8c, 0x23, 0x3e, 0x38, 0xe2, 0x13, 0x68, 0x16, 0x1c, 0xf1, 0x21, 0x07,
		0x66, 0x39, 0x30, 0x82, 0x23, 0x3e, 0x1b, 0x61, 0x04, 0x67, 0x2b, 0x70, 0xc4, 0x27, 0x2d, 0xc0,
		0x0a, 0x31, 0xc4, 0x11, 0x1f, 0x26, 0x1e, 0x91, 0x43, 0xf1, 0x92, 0x88, 0xa1, 0x0d, 0x14, 0x2f,
		0x41, 0x64, 0x03, 0x91, 0x0d, 0x44, 0x36, 0x10, 0xd9, 0x40, 0x64, 0x03, 0x91, 0x0d, 0x44, 0x36,
		0x10, 0xd9, 0x40, 0x64, 0x03, 0x91, 0x0d, 0x50, 0x4a, 0x44, 0x36, 0x10, 0xd9, 0x40, 0x64, 0x03,
		0x91, 0x0d, 0xea, 0xc8, 0x06, 0x8a, 0x97, 0x20, 0xba, 0x81, 0xe8, 0x06, 0xa2, 0x1b, 0xdc, 0xd1,
		0x0d, 0x14, 0x2f, 0x41, 0xf1, 0x92, 0xa0, 0x36, 0x08, 0xc5, 0x4b, 0x60, 0xa5, 0x60, 0xa5, 0x60,
		0xa5, 0x60, 0xa5, 0xe2, 0x5b, 0x29, 0x14, 0x2f, 0x09, 0xb2, 0xee, 0x28, 0x5e, 0x02, 0xc0, 0x07,
		0xe0, 0xef, 0x20, 0xe0, 0xa3, 0x78, 0x09, 0xa5, 0x48, 0xa2, 0x78, 0x49, 0x20, 0xd9, 0x43, 0xf1,
		0x92, 0x4d, 0x4b, 0x8b, 0xe2, 0x25, 0x32, 0xe1, 0x99, 0x7e, 0x34, 0x14, 0x2f, 0xd9, 0x9e, 0xe2,
		0x25, 0x14, 0xa5, 0x2f, 0x72, 0x09, 0xd4, 0x2e, 0xb9, 0x71, 0xef, 0x3b, 0xa9, 0xd2, 0x25, 0x7b,
		0x12, 0x05, 0x8e, 0x4a, 0xd0, 0x92, 0x11, 0x30, 0x25, 0x56, 0x95, 0x17, 0x99, 0x22, 0x15, 0x4d,
		0x98, 0xc2, 0x8b, 0x42, 0xb8, 0x2b, 0x42, 0x0a, 0xcd, 0x98, 0xf1, 0x8c, 0x5f, 0x96, 0x78, 0x0e,
		0x4b, 0x75, 0x95, 0x86, 0x6e, 0x3b, 0x55, 0xc7, 0x89, 0x56, 0xc0, 0x63, 0xec, 0x14, 0xd6, 0xfa,
		0x62, 0xcc, 0x54, 0x22, 0x9a, 0xdc, 0xb1, 0xef, 0xb1, 0x30, 0x42, 0xe1, 0xb4, 0x54, 0x2a, 0x57,
		0x4a, 0xa5, 0xa3, 0xca, 0x71, 0xe5, 0xe8, 0xec, 0xe4, 0xa4, 0x50, 0x8e, 0xe2, 0x30, 0x28, 0x57,
		0x56, 0x4f, 0x58, 0xa2, 0xf7, 0x71, 0xfc, 0x52, 0x8c, 0x61, 0xbf, 0x1f, 0x67, 0x88, 0x6f, 0xb6,
		0xb0, 0x22, 0xd9, 0xfa, 0xb0, 0x6b, 0x18, 0x53, 0xe1, 0x65, 0x2b, 0x7a, 0x04, 0x15, 0x97, 0xa6,
		0xda, 0xe1, 0x94, 0x3a, 0xb8, 0x6a, 0x06, 0xfb, 0x65, 0xc0, 0x85, 0x8f, 0xba, 0xe0, 0xfc, 0x0b,
		0x1d, 0x62, 0x69, 0x39, 0x97, 0x34, 0xd8, 0x2a, 0xbe, 0xbf, 0x26, 0x6f, 0xff, 0xe2, 0x9d, 0xd5,
		0x52, 0xc4, 0x6f, 0xc7, 0xd2, 0xd4, 0xe1, 0xf8, 0xa6, 0xee, 0xfa, 0xc1, 0x22, 0x15, 0xca, 0xaf,
		0x47, 0x11, 0x3c, 0x11, 0x2a, 0xc4, 0xca, 0xcf, 0x22, 0x1b, 0x87, 0x87, 0xb3, 0x5d, 0x43, 0xe7,
		0x65, 0x20, 0x72, 0xff, 0xce, 0xfd, 0x65, 0x76, 0x55, 0x43, 0x57, 0xc7, 0x9f, 0xec, 0xf3, 0x46,
		0xf1, 0xfb, 0x4d, 0xfd, 0xaf, 0x1f, 0x86, 0x69, 0xe5, 0xde, 0xf9, 0xe1, 0xf1, 0xf7, 0xeb, 0xcf,
		0x7f, 0x85, 0x59, 0xed, 0x88, 0x11, 0xbb, 0xc5, 0x88, 0x9c, 0xfb, 0x6e, 0x42, 0x42, 0x63, 0xdc,
		0x78, 0xdb, 0x52, 0x3c, 0x8d, 0xf6, 0xe5, 0xed, 0x31, 0x98, 0x03, 0xe5, 0x93, 0xb0, 0xbb, 0x96,
		0x3e, 0x88, 0x64, 0x0b, 0x3c, 0x21, 0xa9, 0x7d, 0x6f, 0x5e, 0xe6, 0xba, 0xa6, 0xe1, 0x68, 0xba,
		0x21, 0xac, 0x9c, 0xfd, 0x68, 0x0e, 0xfb, 0xbd, 0xdc, 0x9d, 0xc8, 0xe9, 0x46, 0xb7, 0x3f, 0xec,
		0x89, 0x5e, 0xee, 0xde, 0xb4, 0x72, 0x8d, 0x62, 0x4e, 0x33, 0x7a, 0xb9, 0xc6, 0x71, 0xee, 0xb2,
		0x1e, 0x36, 0xf3, 0x35, 0x4e, 0x00, 0x77, 0x51, 0x24, 0x7a, 0x0b, 0x8f, 0x1b, 0xc1, 0xaa, 0x50,
		0x44, 0x63, 0x97, 0x24, 0x24, 0xca, 0x9b, 0x4b, 0xd6, 0xe2, 0xec, 0xc5, 0x23, 0xef, 0xef, 0x61,
		0x60, 0x48, 0x4b, 0xc5, 0x60, 0xa1, 0x02, 0xc8, 0x05, 0xad, 0x29, 0x7a, 0x7b, 0x41, 0x37, 0xbf,
		0xf0, 0x37, 0x5e, 0xa5, 0x72, 0xdf, 0xbb, 0x7b, 0xf7, 0xfd, 0x79, 0xea, 0x3b, 0xfe, 0xf1, 0x3b,
		0xcb, 0x12, 0xac, 0xf6, 0x64, 0xe0, 0x6d, 0xa6, 0x30, 0xdb, 0x47, 0x8b, 0xdb, 0x42, 0x86, 0x70,
		0xc6, 0x6b, 0x15, 0x64, 0x89, 0x42, 0x02, 0x46, 0xe4, 0x9d, 0x9c, 0xc8, 0x98, 0xb0, 0xba, 0xf3,
		0x32, 0x7b, 0x36, 0x66, 0x27, 0x23, 0x68, 0x05, 0x45, 0x45, 0xb3, 0x06, 0xea, 0xc0, 0x32, 0x7f,
		0xbf, 0x04, 0x7f, 0x87, 0xb3, 0x95, 0x9a, 0x5f, 0x1a, 0xf0, 0x55, 0x84, 0x2b, 0x6d, 0x1a, 0x7a,
		0x37, 0x33, 0xca, 0x6e, 0x65, 0x8c, 0xdd, 0x48, 0x0a, 0xdf, 0x25, 0xd2, 0x6e, 0x22, 0xad, 0xf7,
		0x12, 0x7a, 0x37, 0x90, 0x96, 0xb3, 0x84, 0x2d, 0xf5, 0xa9, 0x74, 0x67, 0x52, 0x11, 0xd1, 0x8b,
		0x89, 0x54, 0x66, 0x39, 0x62, 0x55, 0xde, 0xc8, 0x1b, 0xf2, 0x71, 0x36, 0xde, 0x09, 0x36, 0xd8,
		0xe3, 0x6e, 0xa4, 0x93, 0x6d, 0x98, 0x93, 0x6d, 0x8c, 0xd3, 0x6c, 0x80, 0xf3, 0xc6, 0xdc, 0xa2,
		0x56, 0xbd, 0x75, 0x81, 0xd8, 0x1e, 0x0e, 0x06, 0x96, 0xb0, 0xed, 0x38, 0xe1, 0xdd, 0x25, 0x64,
		0x5f, 0x1c, 0x30, 0xe2, 0x3b, 0xff, 0x24, 0xee, 0xb5, 0x61, 0xdf, 0x89, 0xb5, 0x19, 0xad, 0xb8,
		0x71, 0xb2, 0x68, 0x41, 0xd5, 0x88, 0x47, 0x93, 0x62, 0x66, 0xe5, 0xc4, 0xce, 0xc2, 0xa1, 0xc8,
		0xba, 0x21, 0xcc, 0xb2, 0xa1, 0xca, 0xaa, 0x21, 0xcf, 0xa2, 0x21, 0xcf, 0x9a, 0xa1, 0xcd, 0x92,
		0x91, 0xbb, 0xbb, 0x13, 0x3b, 0xeb, 0x85, 0xb0, 0x82, 0x6d, 0xcc, 0x8a, 0xb5, 0x51, 0x5f, 0x41,
		0x84, 0xc0, 0xda, 0xc6, 0xb1, 0x2c, 0x71, 0x2f, 0x2c, 0x31, 0xc9, 0x26, 0x8f, 0x97, 0x49, 0x43,
		0x58, 0x36, 0xbf, 0x67, 0x69, 0xf7, 0x8e, 0xaa, 0x0b, 0xe7, 0x5e, 0xbd, 0x13, 0xb6, 0xed, 0xca,
		0xe7, 0xc4, 0x03, 0x57, 0xc7, 0x88, 0x6d, 0xf4, 0xd4, 0xc2, 0xf1, 0x0f, 0xe3, 0xfa, 0xf3, 0x45,
		0xae, 0x52, 0x3a, 0x2e, 0x9e, 0xe7, 0x3e, 0x7e, 0x69, 0xe6, 0xbe, 0x36, 0x1b, 0x37, 0xea, 0x47,
		0xcd, 0x16, 0xbd, 0x5c, 0xcd, 0x79, 0x14, 0x96, 0x21, 0x9c, 0xdc, 0xf7, 0xe6, 0x65, 0xca, 0x4b,
		0xef, 0xcf, 0x5f, 0x7f, 0x96, 0xaa, 0xef, 0x53, 0xae, 0x4f, 0xd2, 0x59, 0x0d, 0x91, 0xaf, 0x6e,
		0xcb, 0xda, 0xff, 0x8c, 0xe0, 0xd6, 0xf6, 0x86, 0x83, 0xbe, 0xde, 0xd5, 0x1c, 0xa1, 0xea, 0x03,
		0xb5, 0x27, 0x9c, 0xe9, 0x49, 0x1a, 0xdd, 0x70, 0x84, 0xf5, 0xac, 0xf5, 0xe3, 0x3b, 0x4e, 0xef,
		0x4d, 0x00, 0x87, 0x04, 0x0e, 0x09, 0x1c, 0x92, 0x90, 0x12, 0x33, 0xd4, 0x0d, 0xa7, 0x50, 0x26,
		0xf0, 0x47, 0xca, 0x31, 0x86, 0xa0, 0x49, 0xab, 0x25, 0x70, 0x06, 0x28, 0xd3, 0x66, 0xbd, 0x5c,
		0x4a, 0xaa, 0xf3, 0x02, 0x5c, 0x49, 0x93, 0xf4, 0x49, 0x92, 0x14, 0xa7, 0x4b, 0x28, 0xd3, 0x5c,
		0xbd, 0xa5, 0x28, 0x9f, 0x9c, 0x1c, 0x9f, 0xec, 0xde, 0x72, 0xc0, 0x5b, 0xf1, 0xf3, 0x19, 0x23,
		0x16, 0x8f, 0xf1, 0xf0, 0x73, 0x3a, 0x0e, 0x82, 0x38, 0xf0, 0x99, 0xe0, 0x33, 0x21, 0x88, 0x23,
		0x29, 0x88, 0x23, 0x05, 0x22, 0xf5, 0x81, 0xfa, 0x64, 0x4e, 0x5b, 0xae, 0x39, 0x8f, 0x96, 0xb0,
		0x1f, 0xcd, 0x7e, 0x2f, 0x3e, 0x62, 0xae, 0x1f, 0x16, 0x40, 0x04, 0x20, 0x02, 0x10, 0x81, 0xbc,
		0x81, 0xbc, 0x81, 0xbc, 0x81, 0xbc, 0xed, 0x12, 0x79, 0xdb, 0xa1, 0x63, 0x1a, 0xf7, 0xbd, 0xbb,
		0xbc, 0x97, 0xd8, 0x15, 0xbd, 0x27, 0x39, 0x5d, 0xee, 0xe4, 0xe7, 0xde, 0x5d, 0xa7, 0x6a, 0x0d,
		0x9a, 0xe3, 0xfb, 0x89, 0xd4, 0x6a, 0x7c, 0xc4, 0x92, 0x51, 0x1d, 0xad, 0x75, 0x78, 0xac, 0x56,
		0xe1, 0xb1, 0x93, 0x90, 0x8a, 0x48, 0x42, 0x4a, 0xd4, 0x33, 0x44, 0x12, 0x52, 0x18, 0xc9, 0x41,
		0x12, 0x12, 0x68, 0x23, 0x68, 0x23, 0xe2, 0x57, 0x09, 0xc5, 0xaf, 0x90, 0x84, 0xb4, 0x7e, 0x65,
		0x90, 0x84, 0x94, 0x1a, 0xa8, 0x58, 0x0b, 0x19, 0x48, 0x42, 0x42, 0x12, 0x12, 0x92, 0x90, 0xe0,
		0x90, 0xc0, 0x21, 0x41, 0x1c, 0x9b, 0xcd, 0x19, 0x40, 0x1c, 0x1b, 0x71, 0xec, 0x2d, 0x5c, 0x0e,
		0x78, 0x2b, 0x7e, 0x3e, 0x83, 0x24, 0x24, 0x04, 0x71, 0xe0, 0x33, 0xc1, 0x67, 0xca, 0x64, 0x10,
		0x07, 0x49, 0x48, 0x00, 0x22, 0x00, 0x11, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8,
		0x5b, 0x96, 0xc9, 0xdb, 0xce, 0x26, 0x21, 0x45, 0xad, 0x2d, 0xce, 0x94, 0x83, 0x14, 0xa1, 0x64,
		0xf8, 0x6e, 0x17, 0x84, 0x5d, 0x5a, 0xcd, 0x44, 0x4a, 0xc1, 0x2e, 0xae, 0x1f, 0x59, 0x11, 0xd8,
		0x00, 0xd5, 0xe9, 0x42, 0xd6, 0xaa, 0x8a, 0x56, 0xa3, 0x2a, 0xed, 0x65, 0xd5, 0x82, 0x57, 0xf3,
		0x8b, 0xeb, 0x9e, 0xa7, 0xaf, 0xb2, 0x5a, 0xe0, 0x6a, 0x7f, 0x3c, 0xfa, 0x1f, 0xba, 0xb8, 0x9a,
		0x66, 0xbc, 0x74, 0x35, 0xdb, 0x51, 0x1f, 0x34, 0x47, 0xfc, 0xd2, 0x5e, 0xd4, 0x27, 0xad, 0x1b,
		0x3d, 0xc7, 0x71, 0xdd, 0x60, 0xd1, 0x32, 0x1e, 0x8f, 0x50, 0x76, 0x4d, 0x2a, 0x1d, 0xdd, 0xa9,
		0x8c, 0xc7, 0xc8, 0x34, 0xd3, 0x5b, 0xf1, 0x27, 0xad, 0xab, 0x6a, 0xbd, 0x9e, 0x25, 0x6c, 0x3b,
		0xca, 0xaa, 0xcf, 0xf0, 0xfb, 0x34, 0xc2, 0xb5, 0x4d, 0xcd, 0x71, 0x84, 0x65, 0x44, 0xa6, 0x95,
		0xca, 0x62, 0x8f, 0xfe, 0xd5, 0xd6, 0xff, 0xc5, 0xd1, 0xc1, 0x9f, 0x93, 0x51, 0xf8, 0xf5, 0x6a,
		0x47, 0x79, 0x90, 0xab, 0x9b, 0xfa, 0xdf, 0xb1, 0x9f, 0xe6, 0x9f, 0xf7, 0x1f, 0xe7, 0x5f, 0x11,
		0x9e, 0x27, 0x05, 0xf9, 0xe6, 0xf7, 0x7d, 0xd3, 0xec, 0xa9, 0x43, 0xe3, 0xa7, 0x61, 0xfe, 0x32,
		0xd4, 0xa1, 0xa1, 0xbb, 0xd0, 0x6a, 0x0f, 0x23, 0xe7, 0xdb, 0xce, 0xeb, 0x02, 0xbf, 0x37, 0x72,
		0xd8, 0x0c, 0xe2, 0x18, 0x7b, 0x35, 0x51, 0xf6, 0x68, 0xda, 0xb0, 0x29, 0xb0, 0x29, 0x5b, 0x67,
		0x53, 0xa2, 0xef, 0x9d, 0x44, 0xdc, 0x33, 0xe1, 0x81, 0x2d, 0xd7, 0x34, 0x3e, 0xe8, 0xc6, 0x83,
		0xea, 0xe8, 0x4f, 0x31, 0xce, 0xcb, 0xac, 0x8c, 0xb3, 0x1b, 0x2a, 0x1f, 0x9e, 0x39, 0xed, 0x8e,
		0xd6, 0x87, 0x66, 0x56, 0x59, 0x51, 0xfc, 0xc8, 0x7b, 0x15, 0x31, 0xf6, 0x28, 0x62, 0xee, 0x4d,
		0xc4, 0xd8, 0xa1, 0xa1, 0xd8, 0x8b, 0xa0, 0xda, 0x83, 0x20, 0x0f, 0x76, 0xd3, 0x05, 0xb9, 0x63,
		0xec, 0x35, 0x90, 0xec, 0x31, 0x50, 0xee, 0x2d, 0xa4, 0xf9, 0x35, 0x4b, 0x8a, 0xe5, 0xb7, 0x53,
		0x62, 0x99, 0xfb, 0x42, 0xb3, 0x0c, 0xdd, 0x78, 0x88, 0x67, 0x97, 0xbd, 0x51, 0x60, 0x95, 0x61,
		0x95, 0xb7, 0xd4, 0x2a, 0x6f, 0x8d, 0x3b, 0xfe, 0x5b, 0x7f, 0x1a, 0x3e, 0xa9, 0xc2, 0x70, 0x2c,
		0x5d, 0xd8, 0x71, 0xf4, 0x7e, 0x79, 0x20, 0xa8, 0x3e, 0x54, 0x1f, 0x0e, 0x39, 0x1c, 0x72, 0x38,
		0xe4, 0x70, 0xc8, 0xe1, 0x90, 0x87, 0xfc, 0x65, 0xf6, 0xd2, 0x39, 0x42, 0xd7, 0x05, 0xa2, 0xcd,
		0xe5, 0x08, 0x53, 0x06, 0x88, 0x26, 0x93, 0xa3, 0x5f, 0xb4, 0xf4, 0xbb, 0xf0, 0x89, 0x1c, 0x93,
		0xcb, 0x98, 0xf3, 0x38, 0x8a, 0xc8, 0xe3, 0xa0, 0x76, 0x72, 0xb2, 0x9e, 0xc7, 0x31, 0xa6, 0xe5,
		0xfa, 0x40, 0x8d, 0x56, 0x83, 0x62, 0x89, 0xdc, 0x7b, 0xa3, 0xec, 0x46, 0xc3, 0x3c, 0x78, 0xf8,
		0x99, 0xf3, 0xf0, 0x23, 0x57, 0xac, 0x8a, 0x4a, 0x82, 0x7d, 0x72, 0x13, 0x8d, 0x04, 0xc7, 0x54,
		0x95, 0xd8, 0x2a, 0x43, 0xa1, 0x3a, 0xb4, 0x2a, 0x44, 0xa5, 0x4a, 0xe4, 0x2a, 0x45, 0xae, 0x5a,
		0xe4, 0x2a, 0x16, 0xd3, 0x61, 0x8e, 0x7a, 0x2c, 0x37, 0xa2, 0xea, 0x2d, 0xa9, 0xe0, 0x4b, 0xfc,
		0x75, 0x5e, 0x54, 0xc4, 0x97, 0xb8, 0x6b, 0x1c, 0x4f, 0x1d, 0xc9, 0xd4, 0x92, 0x52, 0x3d, 0x79,
		0xd4, 0x94, 0x5a, 0x5d, 0xd9, 0xd4, 0x96, 0x4d, 0x7d, 0xd9, 0xd4, 0x38, 0x9e, 0x3a, 0x13, 0x04,
		0x29, 0x48, 0xd4, 0xdb, 0x1b, 0xe8, 0xd1, 0xfc, 0xff, 0xd8, 0xfb, 0xfb, 0xa6, 0xb6, 0x91, 0xa5,
		0x7d, 0x1c, 0xff, 0x3f, 0xaf, 0x42, 0xe5, 0x3a, 0x55, 0x9b, 0x9c, 0x8a, 0xe2, 0x07, 0x6c, 0x0c,
		0x54, 0x9d, 0xfa, 0x15, 0x01, 0x67, 0xd7, 0x9f, 0x63, 0xc0, 0x37, 0x98, 0x7d, 0xb8, 0x13, 0x8e,
		0x4b, 0xd8, 0x03, 0xe8, 0x5e, 0x23, 0xf9, 0x48, 0x72, 0x02, 0xbf, 0x84, 0xf7, 0xfe, 0x2d, 0xc9,
		0xb2, 0xfc, 0x1c, 0x6c, 0x69, 0xba, 0x47, 0x92, 0xaf, 0xd4, 0xd6, 0x02, 0x06, 0xcf, 0xc8, 0x33,
		0x3d, 0x57, 0xf7, 0xd5, 0xd3, 0x0f, 0xae, 0xa7, 0x9b, 0x43, 0x79, 0x12, 0x32, 0x91, 0xe3, 0xc9,
		0xc0, 0x92, 0xb6, 0x31, 0x59, 0x96, 0x2c, 0x19, 0x04, 0x50, 0x40, 0x01, 0x2d, 0x24, 0x50, 0x41,
		0x03, 0x39, 0x44, 0x90, 0x43, 0x05, 0x39, 0x64, 0xc8, 0x81, 0x0e, 0x49, 0x10, 0x12, 0x7d, 0xda,
		0xc4, 0xb9, 0xbc, 0xeb, 0x5d, 0x2c, 0xc2, 0xb8, 0x73, 0xc4, 0x9d, 0x4c, 0xa1, 0x9d, 0x58, 0x00,
		0x75, 0x89, 0x63, 0xb6, 0x43, 0xef, 0xdb, 0x87, 0x0f, 0xe3, 0x7c, 0xb6, 0xe2, 0x04, 0xba, 0xde,
		0xa4, 0x63, 0xb3, 0x65, 0x64, 0xb3, 0xce, 0xc6, 0xc1, 0x4b, 0x87, 0xfa, 0x64, 0x41, 0xf6, 0x80,
		0x7b, 0xc0, 0x3d, 0xe0, 0x1e, 0x70, 0xaf, 0x0c, 0xee, 0x67, 0xe1, 0x2b, 0x47, 0x90, 0x3f, 0x74,
		0xec, 0xfe, 0xa8, 0x27, 0x1c, 0x02, 0xc0, 0x9f, 0x0e, 0x2d, 0x17, 0xee, 0xcb, 0x80, 0x7b, 0xc0,
		0x3d, 0xe0, 0x5e, 0x26, 0xdc, 0xcb, 0x72, 0x14, 0x2c, 0xc1, 0x8a, 0x7c, 0xd1, 0x5a, 0x44, 0x17,
		0xd9, 0x92, 0x25, 0x17, 0x64, 0xc8, 0xc0, 0x86, 0x12, 0x74, 0x78, 0xc0, 0x87, 0x1a, 0x84, 0xd8,
		0xc0, 0x88, 0x0d, 0x94, 0xd8, 0xc0, 0x49, 0x2e, 0x48, 0x49, 0x06, 0x2b, 0x32, 0xd0, 0xa2, 0x07,
		0x2f, 0x2e, 0x10, 0x23, 0x22, 0xc8, 0x6c, 0xa0, 0xc6, 0x01, 0x6e, 0xbc, 0x20, 0xc7, 0x05, 0x76,
		0xec, 0xa0, 0xc7, 0x0e, 0x7e, 0xec, 0x20, 0x48, 0x03, 0x86, 0x44, 0xa0, 0x48, 0x47, 0xe0, 0x19,
		0x09, 0x3d, 0x07, 0xc1, 0x7f, 0x9d, 0xf0, 0x47, 0xd8, 0xfc, 0x26, 0x1b, 0xd2, 0x44, 0x20, 0x49,
		0x31, 0x9b, 0x24, 0x6e, 0x2d, 0x42, 0x71, 0x0b, 0xc4, 0x29, 0x34, 0xe8, 0x97, 0x75, 0x60, 0x05,
		0x3a, 0x10, 0x3a, 0x10, 0x3a, 0x30, 0x45, 0x3a, 0x90, 0x8a, 0x20, 0x44, 0x13, 0x08, 0xd7, 0xa4,
		0x97, 0xe2, 0x28, 0x36, 0xca, 0x35, 0xa9, 0xe5, 0x97, 0x96, 0x2e, 0xb0, 0xd1, 0x06, 0x4e, 0xe8,
		0x54, 0x03, 0xa1, 0xdc, 0x50, 0xaa, 0x0c, 0x52, 0x95, 0x41, 0xab, 0x32, 0x88, 0xa5, 0x85, 0x5a,
		0x62, 0xc8, 0xe5, 0xa3, 0x1f, 0x0a, 0xe0, 0x51, 0x4b, 0x58, 0xeb, 0x6f, 0xeb, 0xb9, 0x5a, 0xc2,
		0xba, 0x0f, 0x48, 0xc9, 0x67, 0x16, 0x51, 0xe7, 0x81, 0x10, 0x4d, 0x76, 0x05, 0xfb, 0x8d, 0x27,
		0x9d, 0x64, 0x5c, 0x56, 0x4a, 0xef, 0x79, 0x27, 0xa6, 0xaa, 0xc1, 0xbe, 0xf9, 0x19, 0x91, 0x5d,
		0xab, 0x3d, 0x25, 0x30, 0x33, 0x2f, 0x53, 0xc6, 0x13, 0x64, 0x6a, 0x17, 0x64, 0xea, 0x4d, 0x3e,
		0x66, 0xb9, 0x61, 0xd0, 0x20, 0x49, 0xeb, 0xb1, 0x6e, 0x3d, 0xe1, 0x4c, 0xb9, 0xd6, 0x7f, 0x16,
		0xf2, 0xb1, 0x84, 0x32, 0xea, 0xda, 0x6e, 0x3d, 0xeb, 0x6c, 0x1d, 0xdc, 0x7f, 0xfe, 0x83, 0x61,
		0x25, 0xdf, 0x64, 0xf3, 0x30, 0x11, 0x2a, 0x98, 0x42, 0xd4, 0xbc, 0x8b, 0xd6, 0x0b, 0xba, 0x64,
		0xc9, 0x2e, 0xcc, 0x0b, 0xce, 0x0f, 0xce, 0x0f, 0xce, 0x0f, 0xce, 0x0f, 0xce, 0xbf, 0xcc, 0xf9,
		0xad, 0xd1, 0xa3, 0x70, 0xc6, 0x05, 0x55, 0x18, 0xb9, 0x7f, 0x95, 0x61, 0xae, 0x86, 0x35, 0x7a,
		0xe4, 0x3b, 0xe2, 0x1d, 0xfb, 0xca, 0x73, 0xe2, 0xd4, 0x91, 0x4c, 0x34, 0x6b, 0xc9, 0xdf, 0xc3,
		0x4f, 0x97, 0x17, 0xff, 0xdb, 0x38, 0x2f, 0x30, 0x12, 0xc5, 0xb2, 0x3f, 0xed, 0xe9, 0x75, 0xbb,
		0xd5, 0x3c, 0x39, 0xee, 0x34, 0x0a, 0x6f, 0x72, 0x44, 0x84, 0x0b, 0x1d, 0xbb, 0x19, 0xc0, 0x16,
		0xe3, 0x2e, 0x4e, 0x57, 0x92, 0xec, 0x92, 0x75, 0x35, 0x03, 0x1e, 0x0b, 0xce, 0x91, 0x56, 0xca,
		0x09, 0x21, 0xcc, 0x36, 0xfa, 0x8b, 0x27, 0xcf, 0x31, 0xf4, 0x91, 0xe5, 0x7a, 0x89, 0xfa, 0x8d,
		0x6f, 0x35, 0xa7, 0x23, 0xee, 0x84, 0x23, 0xac, 0x9e, 0xc8, 0xa3, 0x8f, 0x74, 0xa2, 0xe4, 0xfa,
		0x8e, 0x71, 0xe7, 0xe9, 0xa6, 0xf0, 0xee, 0xf4, 0x5b, 0xe1, 0xba, 0x41, 0xbb, 0x04, 0xdd, 0x74,
		0x6e, 0x75, 0xf1, 0xe4, 0x09, 0xab, 0x2f, 0xfa, 0xd3, 0x2e, 0xc3, 0xa5, 0x1a, 0x27, 0x8e, 0x32,
		0xdb, 0xa1, 0xab, 0xec, 0xd1, 0xa9, 0x00, 0x30, 0x7b, 0xbf, 0x54, 0x99, 0xa6, 0x2b, 0x4d, 0xd4,
		0xed, 0x24, 0x04, 0x8e, 0x3a, 0xf8, 0x46, 0x12, 0x8b, 0x9f, 0x25, 0x9e, 0x3c, 0xfd, 0xc1, 0x1e,
		0xf2, 0x79, 0x45, 0xa2, 0x19, 0xe1, 0x0f, 0x81, 0x3f, 0x04, 0xfe, 0x10, 0xf8, 0x43, 0xe0, 0x0f,
		0x59, 0x3a, 0x77, 0xf4, 0xa1, 0xd8, 0x4b, 0xbe, 0x90, 0x3a, 0xcf, 0x2d, 0xd6, 0x24, 0x34, 0x7b,
		0xe1, 0xbf, 0x89, 0x52, 0x70, 0xa3, 0xef, 0x8a, 0xa6, 0xd5, 0x17, 0x4f, 0x05, 0x50, 0xa9, 0x2d,
		0xe7, 0x74, 0x3d, 0xc3, 0x1b, 0xb9, 0xb9, 0xe6, 0x51, 0x62, 0xe8, 0x88, 0x9e, 0xe1, 0x89, 0xfe,
		0x8e, 0x91, 0xa4, 0x70, 0x6b, 0x77, 0x9a, 0x21, 0x4d, 0xf7, 0x1e, 0xf4, 0x07, 0xf4, 0x47, 0x1a,
		0xfd, 0xd1, 0xef, 0x1d, 0x7b, 0xa4, 0x80, 0x04, 0x85, 0xf3, 0x82, 0x0a, 0x81, 0x0a, 0x81, 0x0a,
		0x81, 0x0a, 0x81, 0x0a, 0x81, 0x0a, 0xcd, 0xab, 0x06, 0x77, 0xe1, 0xe7, 0xa2, 0xd9, 0xcf, 0x36,
		0x27, 0x6a, 0x99, 0xae, 0x77, 0xec, 0x79, 0x0e, 0x8f, 0x14, 0x9d, 0x99, 0x56, 0x63, 0x20, 0xfc,
		0x73, 0xce, 0x14, 0x5a, 0x5b, 0x38, 0x33, 0x9e, 0x66, 0x66, 0x2c, 0x1f, 0x54, 0xab, 0xfb, 0xf5,
		0x6a, 0xb5, 0x54, 0xdf, 0xab, 0x97, 0x0e, 0x6b, 0xb5, 0xf2, 0x7e, 0xb9, 0xc6, 0xf0, 0x10, 0x17,
		0x4e, 0x5f, 0x38, 0xa2, 0xff, 0xf1, 0xb9, 0x70, 0xa4, 0x59, 0xa3, 0xc1, 0x80, 0x73, 0xca, 0x6b,
		0x37, 0x28, 0xb8, 0x41, 0x1f, 0x4b, 0x9c, 0x4d, 0x8b, 0x93, 0xbc, 0x26, 0xc9, 0x12, 0x82, 0x12,
		0xd7, 0x26, 0x81, 0x95, 0x09, 0x2b, 0x13, 0x56, 0x26, 0xac, 0xcc, 0x4c, 0x5b, 0x99, 0x08, 0x40,
		0x94, 0xb5, 0x75, 0xea, 0x02, 0x10, 0x5b, 0x17, 0x27, 0xc7, 0x2d, 0xf6, 0xf8, 0xc3, 0xab, 0xce,
		0x71, 0xa7, 0x79, 0xc2, 0x39, 0x6d, 0xc5, 0x9f, 0xf6, 0xe3, 0xaf, 0x6d, 0x04, 0x3c, 0x26, 0x9c,
		0xd2, 0x5f, 0x43, 0xb2, 0x72, 0x2f, 0xab, 0xc9, 0x4f, 0x20, 0xa2, 0xac, 0x39, 0x7e, 0x13, 0x01,
		0x3d, 0xd2, 0xca, 0x08, 0xaf, 0xcc, 0x2d, 0xab, 0x70, 0xc5, 0x7f, 0x75, 0x6b, 0xf4, 0x78, 0xcb,
		0xc9, 0x2b, 0x66, 0xe6, 0x04, 0xb3, 0x00, 0xb3, 0x00, 0xb3, 0x00, 0xb3, 0x00, 0xb3, 0x58, 0x3a,
		0x77, 0x23, 0xd3, 0xf2, 0xf6, 0x2a, 0x8c, 0xa4, 0x82, 0xc3, 0x7b, 0x9d, 0xac, 0x29, 0xfe, 0xb6,
		0xff, 0x76, 0xa5, 0x9e, 0x09, 0x4a, 0x4f, 0x70, 0xcd, 0xbc, 0x33, 0xe5, 0x4c, 0xaa, 0x95, 0xc3,
		0xea, 0xe1, 0x7e, 0xbd, 0x72, 0x58, 0x83, 0x6c, 0x71, 0xc9, 0x16, 0xc2, 0x85, 0x52, 0xa0, 0xe8,
		0x91, 0xc5, 0x46, 0x64, 0xcf, 0x5c, 0x7e, 0x3a, 0xa9, 0x57, 0xf7, 0x2a, 0x47, 0xda, 0xc7, 0x5f,
		0xdb, 0xda, 0x59, 0xbb, 0x75, 0xa5, 0x7f, 0x34, 0x5c, 0xd1, 0xd7, 0x1a, 0xde, 0x83, 0x70, 0x2c,
		0xe1, 0x69, 0xbf, 0xb7, 0xcf, 0x91, 0xbc, 0xa6, 0xe5, 0x9a, 0x7c, 0xac, 0x24, 0x21, 0x1b, 0x09,
		0x06, 0x50, 0x38, 0x5d, 0x28, 0x9c, 0x4d, 0x67, 0x97, 0x67, 0xf6, 0xfe, 0x7e, 0x66, 0x74, 0x74,
		0x8d, 0xe7, 0x83, 0x93, 0x6b, 0xab, 0x89, 0xe0, 0xe4, 0x22, 0x54, 0x39, 0x70, 0x72, 0x65, 0x18,
		0xd7, 0xf3, 0xe7, 0xe4, 0xba, 0xb5, 0xed, 0x81, 0x30, 0x58, 0xaf, 0xce, 0xcb, 0xa0, 0x27, 0xa0,
		0x27, 0xa0, 0x27, 0xa0, 0x27, 0xa0, 0x27, 0xa0, 0x27, 0x29, 0x19, 0x99, 0xaa, 0xff, 0xc9, 0xb1,
		0x65, 0xd9, 0xde, 0x38, 0x38, 0x8d, 0xb4, 0x0d, 0x8a, 0xdb, 0x7b, 0x10, 0x8f, 0xc6, 0x30, 0x4c,
		0x4d, 0x28, 0xda, 0x43, 0x61, 0xf5, 0x02, 0xba, 0xe0, 0x5b, 0x5e, 0xdf, 0x6c, 0xe7, 0x6f, 0xdd,
		0x37, 0xbf, 0x0c, 0xab, 0x27, 0x8a, 0x8b, 0x2f, 0xb8, 0x4b, 0xaf, 0x14, 0xef, 0xfa, 0xb7, 0xc5,
		0x41, 0xc5, 0x31, 0x6f, 0x83, 0x96, 0xdb, 0xe6, 0x50, 0x0f, 0x74, 0x5d, 0x51, 0x58, 0x9e, 0x63,
		0x0a, 0x37, 0xf8, 0xfa, 0x1c, 0x35, 0xe7, 0x72, 0xa3, 0xef, 0x8a, 0xd4, 0xd5, 0x52, 0x0b, 0xae,
		0xe7, 0x8c, 0x7a, 0x9e, 0x15, 0x6a, 0x8c, 0x8b, 0xe8, 0x53, 0x9e, 0x8f, 0x3f, 0x41, 0x33, 0xfc,
		0x00, 0xdd, 0x85, 0x9f, 0xdd, 0xc5, 0x17, 0xba, 0x9f, 0xfa, 0xb7, 0xdd, 0x56, 0xe5, 0xd2, 0xbc,
		0xed, 0x9e, 0x19, 0xbd, 0xe6, 0xb0, 0xe3, 0x7f, 0xbe, 0x6e, 0x63, 0xfc, 0xf9, 0x82, 0xaf, 0xcf,
		0xdd, 0xf6, 0xe4, 0xf3, 0x45, 0xdf, 0x75, 0xaf, 0x82, 0xcf, 0x97, 0x95, 0x66, 0x64, 0xa9, 0xee,
		0x1c, 0xfa, 0x6f, 0xf1, 0x4c, 0xd9, 0x42, 0x98, 0x34, 0x57, 0x85, 0x3e, 0x37, 0x45, 0x49, 0x2e,
		0x0a, 0x43, 0xee, 0x09, 0x43, 0xae, 0x89, 0x6c, 0x41, 0x25, 0x46, 0xf0, 0x74, 0x20, 0x77, 0x81,
		0xa4, 0x71, 0xa1, 0x4a, 0xac, 0x96, 0x8b, 0xd2, 0x2f, 0x39, 0x6d, 0x3a, 0x4f, 0x24, 0xdc, 0x4a,
		0x85, 0x5a, 0xa2, 0x2c, 0xab, 0x91, 0x61, 0x39, 0xa2, 0x9b, 0x5c, 0xd0, 0x24, 0x08, 0x99, 0xe4,
		0xee, 0xa5, 0x24, 0xdd, 0x4a, 0x25, 0x77, 0x27, 0x95, 0xde, 0x8d, 0x94, 0xc2, 0x1d, 0x4f, 0xeb,
		0x76, 0xa7, 0x72, 0x9d, 0x90, 0xbb, 0xd1, 0xc9, 0xfd, 0x1e, 0xe4, 0x6e, 0xf1, 0x74, 0xa9, 0x17,
		0xd9, 0xdd, 0x3f, 0x0b, 0xe2, 0xab, 0xfc, 0x6e, 0x9f, 0xd3, 0x4c, 0xb2, 0xaf, 0xb2, 0xdb, 0xd7,
		0x11, 0xdd, 0x0c, 0x92, 0xdd, 0x04, 0x52, 0xde, 0xfc, 0xf1, 0xdc, 0xf4, 0x51, 0x7b, 0x6d, 0xd9,
		0x6e, 0xf2, 0xd8, 0x5c, 0xb0, 0x6c, 0x37, 0x75, 0xe9, 0xf6, 0x47, 0x90, 0xdd, 0xbc, 0xcd, 0xc2,
		0x8b, 0x6e, 0x52, 0x14, 0xbe, 0x23, 0x0c, 0x1f, 0x27, 0x0e, 0x17, 0x27, 0x74, 0x88, 0x72, 0x84,
		0x83, 0x47, 0xb1, 0xba, 0xc4, 0x3d, 0x17, 0xd8, 0x43, 0x72, 0xf9, 0x42, 0x70, 0x29, 0x83, 0x8d,
		0x38, 0xc2, 0xb7, 0xa7, 0x22, 0xb0, 0x5f, 0xaf, 0xd7, 0x2b, 0xd4, 0x25, 0x62, 0xf2, 0x2c, 0x09,
		0x19, 0x71, 0xab, 0xdf, 0xa4, 0xd5, 0xb1, 0x24, 0x91, 0xbf, 0x3d, 0xd8, 0xae, 0xa7, 0x9b, 0x43,
		0x3a, 0x53, 0x7b, 0x32, 0x01, 0xcc, 0x6d, 0x98, 0xdb, 0x30, 0xb7, 0x61, 0x6e, 0x13, 0xc8, 0xbd,
		0x39, 0xd4, 0x8d, 0x7e, 0xdf, 0x11, 0xae, 0x4b, 0x68, 0x72, 0x97, 0x0f, 0x09, 0xc6, 0x0e, 0xd7,
		0x26, 0x73, 0x26, 0xf7, 0x74, 0xe5, 0xbf, 0x56, 0x09, 0xd7, 0x7e, 0x69, 0x0f, 0x0e, 0x08, 0xe7,
		0xe0, 0xea, 0x3a, 0x5c, 0x78, 0xfb, 0xb9, 0xa4, 0x1f, 0xde, 0xfc, 0xf8, 0x5c, 0xd6, 0x0f, 0x6f,
		0xc6, 0xdf, 0x96, 0x83, 0x2f, 0xdf, 0x2b, 0x2f, 0x3f, 0x2a, 0x9f, 0x4b, 0x7a, 0x35, 0x7c, 0xb5,
		0x52, 0xfb, 0x5c, 0xd2, 0x6b, 0x37, 0xef, 0xde, 0x7e, 0xf9, 0xf2, 0x61, 0xdb, 0xf7, 0xbc, 0xfb,
		0xbe, 0xf7, 0x42, 0x17, 0x28, 0x75, 0x43, 0xb9, 0x0d, 0x9c, 0x1d, 0xa0, 0x0b, 0xff, 0x79, 0xcb,
		0xb5, 0x1b, 0xef, 0x08, 0xfb, 0x4a, 0xdf, 0x64, 0x29, 0x50, 0x8a, 0x07, 0x96, 0xf6, 0x01, 0x4b,
		0xdb, 0xc2, 0xd2, 0xdb, 0x99, 0x2e, 0xe8, 0xdf, 0xcb, 0xef, 0xab, 0x2f, 0x47, 0xef, 0xbe, 0xd7,
		0x5f, 0x16, 0x5f, 0xfc, 0xb1, 0xea, 0xcf, 0xca, 0xef, 0xeb, 0x2f, 0x47, 0x6b, 0x7e, 0xb3, 0xff,
		0x72, 0xb4, 0xe1, 0x18, 0xb5, 0x97, 0xb7, 0x4b, 0x7f, 0xea, 0xbf, 0x5e, 0x59, 0xf7, 0x86, 0xea,
		0x9a, 0x37, 0xec, 0xad, 0x7b, 0xc3, 0xde, 0x9a, 0x37, 0xac, 0x7d, 0xa4, 0xca, 0x9a, 0x37, 0xd4,
		0x5e, 0x7e, 0x2c, 0xfd, 0xfd, 0xdb, 0xd5, 0x7f, 0xba, 0xff, 0xf2, 0xee, 0xc7, 0xba, 0xdf, 0xd5,
		0x5f, 0x7e, 0x1c, 0xbd, 0x7b, 0x07, 0xa0, 0xde, 0x18, 0xa8, 0x21, 0x9e, 0xfc, 0xe2, 0x99, 0x3d,
		0xc5, 0x95, 0x76, 0x4f, 0x90, 0x64, 0x86, 0xc5, 0x90, 0xa7, 0xc2, 0x90, 0x97, 0xc2, 0x60, 0x17,
		0x28, 0xce, 0x3b, 0xe1, 0xca, 0x33, 0x51, 0x91, 0x57, 0xc2, 0x9e, 0x47, 0x92, 0xa2, 0xbc, 0x11,
		0xf8, 0xb3, 0x53, 0x83, 0x87, 0x85, 0x41, 0x45, 0xff, 0x6a, 0x11, 0x46, 0x8e, 0x84, 0xe3, 0xc3,
		0x9b, 0x0d, 0x6f, 0xf6, 0xa6, 0x10, 0x0c, 0x6f, 0xb6, 0x42, 0xdc, 0x43, 0xf0, 0xc8, 0x12, 0xca,
		0x20, 0x78, 0x64, 0xe6, 0xc1, 0x11, 0x3c, 0x92, 0x48, 0x66, 0x11, 0x3c, 0xb2, 0xad, 0x08, 0x20,
		0x78, 0x04, 0xc6, 0x76, 0x6e, 0x8c, 0xed, 0x3d, 0x62, 0x63, 0x7b, 0x0f, 0xc6, 0x36, 0x8c, 0x6d,
		0x18, 0xdb, 0x30, 0xb6, 0x61, 0x6c, 0xc3, 0xd8, 0x86, 0xb1, 0x0d, 0x63, 0x1b, 0xc6, 0x36, 0x8c,
		0xed, 0x1d, 0x35, 0xb6, 0x1f, 0x8d, 0x5e, 0x14, 0xd3, 0x42, 0x66, 0x71, 0xcf, 0x4e, 0x02, 0xb3,
		0x1b, 0x66, 0x37, 0xcc, 0x6e, 0x98, 0xdd, 0x99, 0x82, 0x19, 0x8d, 0x38, 0x2e, 0x8f, 0x3c, 0x1e,
		0xaf, 0x30, 0x1b, 0x88, 0xb3, 0x18, 0xdf, 0x53, 0x79, 0x79, 0xf7, 0xbd, 0x46, 0x10, 0xd8, 0x7b,
		0x43, 0xb1, 0x50, 0x1c, 0xf1, 0x61, 0x85, 0xff, 0xbc, 0xbe, 0x5c, 0x04, 0xf1, 0x4b, 0xbb, 0x60,
		0x6f, 0x7c, 0x1d, 0x18, 0x16, 0x9d, 0xa1, 0x11, 0x8c, 0x0e, 0x0b, 0x03, 0x16, 0x06, 0x2c, 0x0c,
		0x58, 0x18, 0x04, 0x72, 0x3f, 0x10, 0xc6, 0x9d, 0x23, 0xee, 0x28, 0xad, 0x8b, 0x3a, 0x8d, 0x75,
		0x11, 0xd4, 0x51, 0xfb, 0xf0, 0xa1, 0xb8, 0xfc, 0x9f, 0x8f, 0x99, 0x6e, 0xf0, 0xff, 0xe2, 0xb8,
		0x36, 0x59, 0xf0, 0xbd, 0x6e, 0xf6, 0x51, 0x01, 0x6f, 0xa3, 0xa3, 0x97, 0x9f, 0x0a, 0x78, 0xb2,
		0xab, 0xef, 0xb2, 0x56, 0xbf, 0x93, 0x58, 0x5a, 0x57, 0x42, 0xe5, 0xbb, 0x37, 0x0a, 0x45, 0x73,
		0x52, 0x1a, 0x77, 0x86, 0x0e, 0x69, 0x72, 0xf2, 0xe5, 0xe5, 0x56, 0xc5, 0x95, 0x5f, 0x05, 0x97,
		0xa5, 0xea, 0x2d, 0x41, 0x95, 0x5b, 0x82, 0xaa, 0xb6, 0x49, 0x65, 0x48, 0x32, 0xac, 0x29, 0x80,
		0xb3, 0x82, 0x94, 0xea, 0x93, 0x6c, 0x00, 0x96, 0x0c, 0xba, 0xe2, 0x03, 0x4e, 0xbc, 0x77, 0xc6,
		0x14, 0x2f, 0x59, 0x62, 0xc5, 0x2a, 0x4e, 0x09, 0x04, 0x89, 0x47, 0x80, 0xe2, 0x89, 0xce, 0xf6,
		0x1b, 0x1f, 0x63, 0xd3, 0x0b, 0x96, 0x78, 0xf2, 0xf4, 0x07, 0x7b, 0xa8, 0xdf, 0x3b, 0xf6, 0x68,
		0x18, 0xff, 0x8e, 0x21, 0x32, 0xc1, 0x17, 0x07, 0x8c, 0x29, 0x88, 0xc9, 0x6a, 0xb6, 0x26, 0x66,
		0xef, 0x32, 0x58, 0xba, 0x5c, 0x36, 0x2e, 0x8b, 0x75, 0x4b, 0x67, 0xd7, 0xd2, 0x59, 0xb4, 0x74,
		0xb6, 0xcc, 0x0b, 0xa1, 0x49, 0x6b, 0xa2, 0x2e, 0x9c, 0xa0, 0xe4, 0x1b, 0xbe, 0xfa, 0x64, 0x26,
		0xdd, 0x75, 0x39, 0x45, 0x95, 0xa5, 0xb9, 0xd9, 0x64, 0xba, 0xd5, 0x68, 0xdc, 0x68, 0xb2, 0xdd,
		0x66, 0x64, 0x6e, 0x32, 0x32, 0xb7, 0x18, 0x99, 0x1b, 0x4c, 0x2d, 0x9d, 0x93, 0x55, 0x04, 0xb9,
		0x60, 0xf6, 0xe5, 0x17, 0x52, 0x97, 0x16, 0xe6, 0x26, 0xd9, 0xcf, 0x2e, 0xdd, 0xbf, 0x8e, 0x2a,
		0xea, 0xe4, 0xc0, 0x40, 0x0e, 0x10, 0xe4, 0x40, 0x91, 0x4e, 0x17, 0xa5, 0x74, 0xbf, 0x38, 0xa1,
		0x3f, 0x9c, 0xc2, 0x0f, 0x3e, 0xeb, 0xff, 0x0e, 0x7c, 0x9c, 0x45, 0x59, 0xce, 0xed, 0x74, 0xf4,
		0xc8, 0x98, 0x18, 0x5e, 0xae, 0x7c, 0x78, 0x9f, 0x0e, 0x9d, 0xf2, 0x5e, 0x19, 0x40, 0x79, 0xa0,
		0xfc, 0x6e, 0xa3, 0xbc, 0xf4, 0x5e, 0x19, 0x93, 0xb3, 0x4f, 0x17, 0xae, 0x11, 0xcd, 0x40, 0x13,
		0xb2, 0x51, 0x46, 0xc8, 0x06, 0x42, 0x36, 0x52, 0x06, 0x4a, 0x6c, 0xe0, 0x24, 0x17, 0xa4, 0x24,
		0x83, 0x15, 0x19, 0x68, 0x4d, 0xb9, 0xae, 0xd5, 0x17, 0x74, 0x39, 0x21, 0x53, 0xfa, 0x1b, 0x4c,
		0x43, 0x24, 0x22, 0x34, 0x91, 0x67, 0xe4, 0x70, 0xc6, 0x01, 0x6b, 0xbc, 0xf0, 0xc6, 0x05, 0x73,
		0xec, 0x70, 0xc7, 0x0e, 0x7b, 0xec, 0xf0, 0x47, 0x03, 0x83, 0x44, 0x70, 0x48, 0xc7, 0xd8, 0x19,
		0x19, 0x3c, 0x07, 0xa3, 0xdf, 0x80, 0xe1, 0x07, 0xc0, 0x9c, 0x95, 0x4e, 0xdb, 0x24, 0xdd, 0x73,
		0x65, 0x36, 0xce, 0x5c, 0x2b, 0x3f, 0x94, 0x1d, 0xdb, 0x89, 0xec, 0xf8, 0x65, 0x05, 0x58, 0x81,
		0x02, 0x84, 0x02, 0x84, 0x02, 0x4c, 0x91, 0x02, 0xa4, 0xe2, 0x05, 0x4c, 0xfc, 0x80, 0x95, 0x27,
		0x30, 0xf1, 0x05, 0x36, 0xde, 0xc0, 0x09, 0x9f, 0x6a, 0x60, 0x94, 0x1b, 0x4e, 0x95, 0xc1, 0xaa,
		0x32, 0x78, 0x55, 0x06, 0xb3, 0xb4, 0x70, 0x4b, 0x0c, 0xbb, 0x7c, 0xfc, 0x43, 0x01, 0x0f, 0xe1,
		0xe4, 0x23, 0xab, 0x78, 0xc9, 0xc2, 0x7f, 0xd1, 0xcd, 0x5a, 0xf4, 0x1d, 0x25, 0x67, 0xa1, 0x17,
		0xcb, 0x6c, 0xd9, 0x17, 0x44, 0x59, 0x3b, 0xcb, 0x2c, 0x8c, 0x23, 0x4e, 0x79, 0x21, 0x24, 0x76,
		0xe1, 0xe7, 0x55, 0x92, 0x46, 0xc9, 0xda, 0x34, 0xfa, 0xb8, 0xe7, 0x73, 0xf1, 0xe4, 0xfd, 0x66,
		0x0f, 0x7f, 0x0d, 0x3e, 0xee, 0xdc, 0x4f, 0x93, 0x1f, 0xa2, 0x57, 0x65, 0xe6, 0x05, 0x31, 0x38,
		0x02, 0x52, 0xed, 0xac, 0x0f, 0xf3, 0x8a, 0x28, 0x6c, 0x59, 0xb9, 0x99, 0x45, 0x4b, 0xa3, 0x4b,
		0xcf, 0x34, 0x5a, 0x9e, 0x81, 0x21, 0xf3, 0x68, 0x69, 0x52, 0xf9, 0x99, 0x48, 0xeb, 0xa7, 0x90,
		0x96, 0x99, 0x44, 0x2d, 0xa5, 0xc4, 0xd0, 0x9e, 0x52, 0x48, 0x2f, 0x90, 0xb8, 0x10, 0x53, 0x02,
		0xe2, 0xc8, 0x44, 0x56, 0x28, 0xf8, 0xe9, 0x12, 0xf8, 0xec, 0xa4, 0x27, 0x6f, 0x20, 0xdf, 0x79,
		0x0a, 0x42, 0x94, 0x7b, 0xdf, 0x40, 0x72, 0xbf, 0x40, 0x16, 0x7c, 0x58, 0x41, 0xf0, 0x21, 0x82,
		0x0f, 0x99, 0x1d, 0x4f, 0x39, 0x0f, 0x3e, 0x14, 0x2e, 0x61, 0x05, 0x78, 0x7f, 0x70, 0x54, 0x89,
		0x42, 0xc8, 0xa1, 0x52, 0x08, 0x62, 0x83, 0x22, 0x36, 0x48, 0xca, 0x86, 0x17, 0x83, 0xa1, 0xfc,
		0xbb, 0x74, 0x78, 0xd1, 0xa8, 0xeb, 0x4f, 0xb6, 0x84, 0x75, 0x1f, 0xd8, 0xf7, 0xa8, 0xfe, 0xbe,
		0x6a, 0x92, 0x49, 0xe9, 0xef, 0x4a, 0x09, 0x45, 0xbf, 0xd3, 0x71, 0x8c, 0x17, 0x9d, 0x6f, 0x90,
		0x81, 0x2c, 0xc8, 0x40, 0x56, 0x0a, 0xbf, 0x67, 0xbc, 0xc2, 0xef, 0x3f, 0x51, 0xcb, 0x77, 0x3a,
		0xcb, 0x6c, 0x2d, 0xdf, 0x7f, 0xa6, 0xbf, 0x6a, 0x2f, 0xba, 0x78, 0xf3, 0xda, 0x0f, 0xe8, 0xe2,
		0x8d, 0x2e, 0xde, 0xe8, 0xe2, 0xbd, 0x13, 0xb5, 0xc7, 0x25, 0xd6, 0x3f, 0x59, 0x82, 0x0f, 0xe9,
		0xed, 0xbe, 0xe0, 0x51, 0x82, 0x47, 0x09, 0x1e, 0x25, 0x78, 0x94, 0x02, 0xb9, 0x1f, 0x99, 0x96,
		0xb7, 0x5f, 0x25, 0x74, 0x2a, 0x1d, 0xa0, 0xa1, 0xa0, 0x22, 0x97, 0x12, 0xbc, 0x09, 0x3b, 0xef,
		0x51, 0xe2, 0x89, 0x16, 0x83, 0x8f, 0x09, 0x06, 0x37, 0xb3, 0xc1, 0xed, 0x51, 0x28, 0xc6, 0x48,
		0x29, 0x06, 0xa3, 0xc3, 0xe8, 0x86, 0xd1, 0x0d, 0xa3, 0x1b, 0x46, 0x37, 0x81, 0xdc, 0x0b, 0x6b,
		0xf4, 0x28, 0x9c, 0x71, 0x40, 0x25, 0xe1, 0x75, 0x6e, 0x95, 0x60, 0xec, 0x86, 0x35, 0x7a, 0xa4,
		0x3b, 0x52, 0x1d, 0xfb, 0xca, 0x73, 0x4c, 0xeb, 0x9e, 0x36, 0x75, 0xa6, 0xe4, 0xef, 0x41, 0xe3,
		0xaa, 0x49, 0xe9, 0x74, 0x2d, 0x87, 0x73, 0x74, 0x1b, 0xbf, 0x93, 0xce, 0x53, 0xf1, 0xe7, 0xf9,
		0x78, 0x7c, 0xd5, 0xe8, 0x36, 0x4e, 0xce, 0xda, 0x85, 0x6c, 0xd5, 0x22, 0xb1, 0x9b, 0x01, 0xd6,
		0x10, 0x6e, 0xf5, 0x74, 0x65, 0xc8, 0x6a, 0x31, 0x8c, 0x8f, 0xc5, 0x55, 0x93, 0xd6, 0xd4, 0x8d,
		0x64, 0xe9, 0x48, 0x2b, 0xef, 0x66, 0xca, 0x11, 0x62, 0xeb, 0xb7, 0x1a, 0x37, 0x0d, 0xb1, 0xf5,
		0x19, 0x6b, 0xfb, 0xf5, 0x93, 0xb8, 0x7a, 0xf4, 0x00, 0x9b, 0x35, 0x7b, 0xa5, 0x5c, 0x4b, 0xa0,
		0xe5, 0x17, 0x5a, 0x7e, 0x65, 0x17, 0xdb, 0xd2, 0xdf, 0x03, 0x6c, 0x3d, 0x9a, 0xa1, 0x21, 0x58,
		0xda, 0x85, 0x2d, 0xbd, 0x8d, 0xc1, 0xe6, 0xa4, 0x2a, 0x0b, 0xed, 0xc1, 0x24, 0x36, 0x06, 0x43,
		0x4b, 0x30, 0xb4, 0x04, 0x53, 0xee, 0x53, 0xcb, 0x68, 0x4b, 0x30, 0xf9, 0xcd, 0xc0, 0xd0, 0x06,
		0x8c, 0xe9, 0xb0, 0xca, 0x3e, 0xb4, 0x64, 0x87, 0x97, 0xec, 0x10, 0x93, 0x1d, 0xe6, 0x74, 0x30,
		0x3a, 0x79, 0x6d, 0xc0, 0xa4, 0x96, 0x3e, 0x24, 0x29, 0x71, 0x88, 0x66, 0x60, 0xc8, 0xd4, 0xa6,
		0x86, 0x09, 0x72, 0xb8, 0x48, 0xa7, 0x27, 0x13, 0xcd, 0xc0, 0x08, 0x4b, 0x85, 0xa3, 0x14, 0x07,
		0xaf, 0x5d, 0xb7, 0x0c, 0xf0, 0x28, 0xc5, 0x01, 0x80, 0xdf, 0x6d, 0x80, 0x47, 0x29, 0x0e, 0xc4,
		0x70, 0xf1, 0x40, 0x0e, 0x35, 0xf4, 0xb0, 0x41, 0x10, 0x1b, 0x14, 0xb1, 0x41, 0x92, 0x5c, 0x68,
		0x92, 0x0c, 0x51, 0x74, 0xb6, 0x28, 0x03, 0xbc, 0x68, 0x28, 0xc5, 0xb1, 0xee, 0xc9, 0x51, 0x8a,
		0x23, 0x99, 0xcc, 0x22, 0x71, 0x02, 0x32, 0x80, 0x34, 0x89, 0xf9, 0x7f, 0x28, 0xc5, 0xc1, 0xb3,
		0x24, 0x28, 0xc5, 0x41, 0x6e, 0xed, 0xa0, 0x14, 0xc7, 0x86, 0x46, 0x1b, 0x4a, 0x71, 0xd0, 0xcd,
		0x89, 0x52, 0x1c, 0xe9, 0x57, 0x79, 0xbb, 0x50, 0x8a, 0x83, 0xa4, 0xfd, 0x1a, 0x69, 0xbb, 0x35,
		0xf8, 0x95, 0xe0, 0x57, 0x82, 0x5f, 0x09, 0x7e, 0x25, 0x14, 0xe4, 0xc8, 0xb7, 0x63, 0x09, 0x3e,
		0x85, 0x9d, 0xf7, 0x2b, 0xa1, 0x20, 0x07, 0xcc, 0xee, 0x9c, 0x9a, 0xdd, 0x9e, 0x70, 0xee, 0x8c,
		0x9e, 0xa0, 0x34, 0xbd, 0x27, 0x53, 0xc0, 0xfc, 0xe6, 0x30, 0xbf, 0xcd, 0x3b, 0x58, 0xde, 0x29,
		0xb4, 0xbc, 0xcd, 0x3b, 0x18, 0xdd, 0xb2, 0xa5, 0x9d, 0xae, 0x47, 0x30, 0x65, 0x4f, 0xe0, 0x28,
		0xe0, 0xb0, 0x18, 0x88, 0xc5, 0x51, 0x04, 0x90, 0xee, 0xe2, 0x0b, 0xe1, 0xcf, 0x41, 0x52, 0xd8,
		0x0e, 0x28, 0xa3, 0x81, 0x71, 0x2b, 0x06, 0x74, 0x8a, 0x68, 0x3c, 0x3c, 0x94, 0x10, 0x7c, 0x40,
		0xf0, 0x01, 0xc1, 0x07, 0x44, 0x20, 0xf7, 0xe2, 0xab, 0xa9, 0x4b, 0x2f, 0xfb, 0x3c, 0x8b, 0x32,
		0x75, 0xf8, 0x80, 0x14, 0xf9, 0x80, 0xca, 0x60, 0xfb, 0x3b, 0xef, 0x03, 0xda, 0xaf, 0xd7, 0xeb,
		0x15, 0xf8, 0x7d, 0xe0, 0xf7, 0xc9, 0x81, 0xa9, 0x3d, 0x14, 0xc2, 0xd1, 0xcd, 0x21, 0x9d, 0xb1,
		0x3d, 0x99, 0x00, 0xe6, 0x36, 0xcc, 0x6d, 0x98, 0xdb, 0x30, 0xb7, 0x09, 0xe4, 0xde, 0x1c, 0xea,
		0x46, 0xbf, 0xef, 0x08, 0xd7, 0xa5, 0x74, 0x00, 0x1d, 0x12, 0x8c, 0x1d, 0xae, 0x4d, 0x66, 0xe3,
		0xf1, 0xcc, 0xe1, 0xd7, 0x2a, 0xe1, 0xda, 0x2f, 0xed, 0xc1, 0x01, 0xe1, 0x1c, 0xd4, 0x31, 0xae,
		0xd1, 0x44, 0x6f, 0x3f, 0x97, 0xf4, 0xc3, 0x9b, 0x1f, 0x9f, 0xcb, 0xfa, 0xe1, 0xcd, 0xf8, 0xdb,
		0x72, 0xf0, 0xe5, 0x7b, 0xe5, 0xe5, 0x47, 0xe5, 0x73, 0x49, 0xaf, 0x86, 0xaf, 0x56, 0x6a, 0x9f,
		0x4b, 0x7a, 0xed, 0xe6, 0xdd, 0xdb, 0x2f, 0x5f, 0x3e, 0x6c, 0xfb, 0x9e, 0x77, 0xdf, 0xf7, 0x5e,
		0xe8, 0xe2, 0xe5, 0x6e, 0x28, 0xb7, 0x81, 0x23, 0xde, 0x38, 0x9a, 0xed, 0x3f, 0x6f, 0xb9, 0x76,
		0xe3, 0xdd, 0x3f, 0x08, 0xf7, 0x23, 0x4b, 0x65, 0x83, 0x79, 0x60, 0x69, 0x1f, 0xb0, 0xb4, 0x2d,
		0x2c, 0xbd, 0x9d, 0x89, 0xc1, 0xff, 0x5e, 0x7e, 0x5f, 0x7d, 0x39, 0x7a, 0xf7, 0xbd, 0xfe, 0xb2,
		0xf8, 0xe2, 0x8f, 0x55, 0x7f, 0x56, 0x7e, 0x5f, 0x7f, 0x39, 0x5a, 0xf3, 0x9b, 0xfd, 0x97, 0xa3,
		0x0d, 0xc7, 0xa8, 0xbd, 0xbc, 0x5d, 0xfa, 0x53, 0xff, 0xf5, 0xca, 0xba, 0x37, 0x54, 0xd7, 0xbc,
		0x61, 0x6f, 0xdd, 0x1b, 0xf6, 0xd6, 0xbc, 0x61, 0xed, 0x23, 0x55, 0xd6, 0xbc, 0xa1, 0xf6, 0xf2,
		0x63, 0xe9, 0xef, 0xdf, 0xae, 0xfe, 0xd3, 0xfd, 0x97, 0x77, 0x3f, 0xd6, 0xfd, 0xae, 0xfe, 0xf2,
		0xe3, 0xe8, 0xdd, 0x3b, 0x00, 0xf5, 0xc6, 0x40, 0x0d, 0xf1, 0xe4, 0x17, 0xcf, 0xec, 0x29, 0x2e,
		0x78, 0x82, 0x62, 0x9c, 0x30, 0x47, 0xb8, 0xf6, 0xe0, 0xab, 0x20, 0xec, 0x84, 0x19, 0xcd, 0x00,
		0x5f, 0x10, 0x7c, 0x41, 0xf0, 0x05, 0xc1, 0x17, 0x44, 0x20, 0xf7, 0xb7, 0xb6, 0x3d, 0x10, 0x06,
		0x69, 0x5b, 0x9e, 0xf2, 0x0e, 0x28, 0x03, 0x77, 0x74, 0xcb, 0x10, 0x11, 0x3a, 0x37, 0x0b, 0x94,
		0x02, 0x82, 0x42, 0x77, 0x56, 0x1f, 0x20, 0x28, 0x54, 0xbe, 0xb4, 0xe7, 0x3d, 0x28, 0xf4, 0xf3,
		0x34, 0x28, 0xf4, 0x5f, 0xbd, 0x91, 0xe3, 0x08, 0xcb, 0x7b, 0xfb, 0xae, 0xf8, 0xe1, 0x43, 0x31,
		0xfa, 0x8b, 0x9b, 0xf0, 0x2d, 0xb3, 0x38, 0xeb, 0xae, 0x78, 0x2d, 0x1a, 0x59, 0x5a, 0xb9, 0x4b,
		0x02, 0xed, 0x86, 0xae, 0x4f, 0xb2, 0x9b, 0x55, 0x4c, 0x7b, 0xa2, 0x64, 0xb4, 0xd3, 0x53, 0xd4,
		0x16, 0x05, 0xfd, 0x9d, 0xe6, 0x74, 0xa5, 0xac, 0x44, 0x77, 0xb4, 0x78, 0x42, 0x8b, 0xa7, 0x6c,
		0x01, 0x59, 0x66, 0xda, 0x3a, 0x45, 0xd0, 0x85, 0x66, 0x4e, 0xe9, 0x15, 0xab, 0xd4, 0xb7, 0x71,
		0xe2, 0xeb, 0xe0, 0xf4, 0x86, 0x50, 0x4a, 0x92, 0x4a, 0x07, 0x8b, 0x54, 0xc4, 0x90, 0x05, 0x5a,
		0x19, 0xd8, 0x6e, 0xeb, 0x37, 0xdf, 0xc0, 0x2d, 0x36, 0xaf, 0xe0, 0x2f, 0x50, 0xbc, 0x9a, 0x65,
		0x11, 0x4b, 0x9b, 0x0e, 0xb1, 0xa5, 0xd0, 0xc4, 0xab, 0x13, 0x1f, 0xdb, 0x81, 0x93, 0xc4, 0x41,
		0x23, 0xc7, 0x2b, 0x9f, 0xd4, 0xcb, 0x22, 0xcd, 0x8b, 0x22, 0xcd, 0x4b, 0x22, 0xcd, 0x2b, 0x4e,
		0x0b, 0x4f, 0x71, 0xeb, 0xa6, 0x17, 0x84, 0xe5, 0x39, 0xa6, 0x90, 0xd0, 0xc1, 0x6e, 0x32, 0x10,
		0xfa, 0xd7, 0xa1, 0x7f, 0x9d, 0xa2, 0x23, 0xa6, 0xc6, 0x6e, 0x4c, 0xdc, 0xbf, 0xce, 0x3f, 0x39,
		0xcf, 0xf2, 0x9a, 0xd7, 0x8d, 0x87, 0x43, 0xe7, 0x3a, 0x9e, 0x63, 0x2a, 0xfb, 0xb8, 0x92, 0x1d,
		0x5b, 0xb2, 0xe3, 0x4b, 0x76, 0x8c, 0xd3, 0xe1, 0xab, 0x92, 0xd6, 0xb9, 0xce, 0xb7, 0x22, 0x27,
		0x01, 0x9f, 0xd2, 0xdb, 0x1b, 0xcd, 0x0e, 0x8e, 0x2e, 0x76, 0xe9, 0x82, 0x06, 0x2a, 0x88, 0x20,
		0x87, 0x0a, 0x72, 0xc8, 0x20, 0x87, 0x0e, 0x39, 0x10, 0x22, 0x09, 0x4a, 0xa2, 0x4f, 0x8b, 0x2e,
		0x76, 0x8b, 0x5d, 0xec, 0x66, 0xe1, 0x2b, 0x47, 0xbd, 0xec, 0x86, 0x8e, 0xdd, 0x1f, 0xf5, 0x84,
		0x43, 0x00, 0xf8, 0xd3, 0xa1, 0x53, 0xde, 0xd3, 0x0e, 0x70, 0x0f, 0xb8, 0xdf, 0x6d, 0xb8, 0x97,
		0xde, 0xd3, 0x6e, 0x72, 0xf6, 0x09, 0x33, 0xe2, 0x27, 0x33, 0xd0, 0x44, 0xbc, 0x95, 0x11, 0xf1,
		0x86, 0x30, 0xe8, 0x94, 0x81, 0x12, 0x1b, 0x38, 0xc9, 0x05, 0x29, 0xc9, 0x60, 0x45, 0x06, 0x5a,
		0xf4, 0xe0, 0xc5, 0x05, 0x62, 0x44, 0x04, 0x99, 0x0d, 0xd4, 0x38, 0xc0, 0x8d, 0x17, 0xe4, 0xb8,
		0xc0, 0x8e, 0x1d, 0xf4, 0xd8, 0xc1, 0x8f, 0x1d, 0x04, 0x69, 0xc0, 0x90, 0x08, 0x14, 0xe9, 0x08,
		0x3c, 0x23, 0xa1, 0xe7, 0x20, 0xf8, 0xaf, 0x13, 0xfe, 0x08, 0x9b, 0x33, 0x92, 0x5d, 0x49, 0x20,
		0x49, 0x92, 0x3b, 0xdd, 0xaf, 0x15, 0x21, 0xd9, 0x71, 0xb3, 0x0c, 0x06, 0xfd, 0xb2, 0x0e, 0xac,
		0x40, 0x07, 0x42, 0x07, 0x42, 0x07, 0xa6, 0x48, 0x07, 0x52, 0x11, 0x84, 0x68, 0x82, 0xbe, 0x70,
		0xcc, 0xaf, 0xa2, 0xaf, 0xdf, 0x39, 0xf6, 0xa3, 0x3e, 0x0e, 0x73, 0xa3, 0x97, 0xea, 0xc9, 0x59,
		0x5d, 0x35, 0x39, 0xb1, 0xb8, 0xd1, 0xd2, 0x09, 0x36, 0x5a, 0xc1, 0x09, 0xad, 0x6a, 0x20, 0x96,
		0x1b, 0x6a, 0x95, 0x41, 0xae, 0x32, 0xe8, 0x55, 0x06, 0xc1, 0xb4, 0x50, 0x4c, 0x0c, 0xc9, 0x7c,
		0xf4, 0x64, 0xe9, 0xdc, 0xd1, 0xa5, 0xb4, 0xaf, 0xb5, 0x38, 0xcb, 0x6f, 0xb2, 0x29, 0x00, 0x94,
		0x35, 0xa6, 0xfb, 0xa6, 0x23, 0x7a, 0xde, 0xe0, 0x59, 0x77, 0x44, 0x4f, 0x98, 0x14, 0x85, 0x52,
		0xd6, 0x2b, 0xcc, 0xa5, 0xa9, 0xa1, 0x2e, 0xa1, 0x2e, 0xa1, 0x2e, 0xa1, 0x2e, 0xa1, 0x2e, 0xa1,
		0x2e, 0xd3, 0xa9, 0x2e, 0x85, 0x6b, 0xf2, 0x29, 0x48, 0x7f, 0x32, 0xa8, 0x44, 0xa8, 0x44, 0xa8,
		0x44, 0xa8, 0x44, 0xa8, 0x44, 0x05, 0xf0, 0xa8, 0x31, 0x95, 0x43, 0x8e, 0xe6, 0x6a, 0x09, 0xeb,
		0x3e, 0xb8, 0xf6, 0xfa, 0xcc, 0x22, 0xea, 0x3c, 0x10, 0xa2, 0x71, 0xb5, 0xb3, 0x5a, 0x9a, 0x74,
		0xd2, 0xdb, 0xa8, 0x52, 0x7a, 0xcf, 0x3b, 0x31, 0x77, 0x97, 0xa3, 0xe5, 0x33, 0xc2, 0xd5, 0xf5,
		0x88, 0x19, 0x66, 0xe6, 0x65, 0xca, 0x78, 0x82, 0x4c, 0xed, 0x82, 0x4c, 0xbd, 0xc9, 0xc7, 0x2c,
		0x37, 0x0c, 0x1a, 0x84, 0xab, 0x74, 0x79, 0x34, 0xe1, 0x4c, 0x85, 0xed, 0x7f, 0x16, 0xf2, 0xb1,
		0x84, 0x9c, 0x25, 0xe0, 0xa3, 0x59, 0xff, 0x33, 0xbb, 0x90, 0xff, 0x60, 0x58, 0x49, 0xb0, 0xfb,
		0xa5, 0x3d, 0x78, 0xb4, 0x6f, 0xcd, 0x81, 0xe9, 0x3d, 0xeb, 0xb4, 0x71, 0x36, 0x4b, 0x96, 0xec,
		0xc2, 0xbc, 0xe0, 0xfc, 0xe0, 0xfc, 0xe0, 0xfc, 0xe0, 0xfc, 0xe0, 0xfc, 0xcb, 0x9c, 0xdf, 0x1a,
		0x3d, 0x0a, 0x67, 0x5c, 0x54, 0x8b, 0x91, 0xfb, 0x57, 0x19, 0xe6, 0x6a, 0x58, 0xa3, 0x47, 0xbe,
		0x23, 0xde, 0xb1, 0xaf, 0x3c, 0xc7, 0xb4, 0xee, 0x59, 0x09, 0x54, 0xa1, 0xe4, 0xef, 0xe1, 0xa7,
		0xcb, 0x8b, 0xff, 0x6d, 0x9c, 0x17, 0x18, 0x89, 0x62, 0xd9, 0x9f, 0xf6, 0xf4, 0xba, 0xdd, 0x6a,
		0x9e, 0x1c, 0x77, 0x1a, 0x85, 0x37, 0x39, 0x22, 0xc2, 0x85, 0x8e, 0xdd, 0x0c, 0x60, 0x8b, 0x71,
		0x17, 0xa7, 0x2b, 0x49, 0xde, 0x39, 0x7c, 0x9e, 0x01, 0x8f, 0x05, 0xe7, 0x48, 0x2b, 0xe5, 0x84,
		0x10, 0x66, 0x1b, 0xfd, 0xc5, 0x93, 0xe7, 0x18, 0xfa, 0xc8, 0x72, 0xe3, 0xd5, 0xca, 0x8b, 0x35,
		0xa7, 0x23, 0xee, 0x84, 0x23, 0xac, 0x9e, 0xc8, 0xa3, 0x8f, 0x34, 0x0a, 0x8c, 0x71, 0x8c, 0x3b,
		0x4f, 0x37, 0x85, 0x77, 0xa7, 0xdf, 0x0a, 0xd7, 0xd5, 0xc5, 0xd7, 0xa1, 0xa5, 0x9b, 0xce, 0xad,
		0x2e, 0x9e, 0x3c, 0x61, 0xf5, 0x45, 0x5f, 0x8f, 0x08, 0x43, 0xa9, 0xc6, 0x89, 0xa3, 0xcc, 0x76,
		0xe8, 0x2a, 0x7b, 0x74, 0x2a, 0x00, 0xcc, 0xde, 0x2f, 0x55, 0xa6, 0xe9, 0x4a, 0x13, 0x75, 0x3b,
		0x09, 0x81, 0xa3, 0x0e, 0xbe, 0x91, 0xc4, 0xe2, 0x17, 0xd5, 0xa2, 0x66, 0xf3, 0x8a, 0x48, 0xac,
		0x7e, 0x0d, 0x7f, 0x08, 0xfc, 0x21, 0xf0, 0x87, 0xc0, 0x1f, 0x92, 0x3b, 0x7f, 0x08, 0x7d, 0xb2,
		0xef, 0x92, 0x2f, 0xa4, 0xce, 0x73, 0x8b, 0x35, 0x49, 0xfe, 0x5d, 0xf8, 0x6f, 0x45, 0x97, 0x17,
		0x82, 0x06, 0x3f, 0xbb, 0x40, 0xa5, 0x5c, 0xcf, 0xf0, 0x46, 0x6e, 0xae, 0x79, 0x94, 0x18, 0x3a,
		0xa2, 0x67, 0x78, 0xe4, 0x99, 0x05, 0x69, 0x23, 0x49, 0xe1, 0xd6, 0xee, 0x34, 0x43, 0x9a, 0xee,
		0x3d, 0xe8, 0x0f, 0xe8, 0x8f, 0x34, 0xfa, 0xa3, 0xdf, 0x3b, 0xf6, 0x48, 0x01, 0x09, 0x0a, 0xe7,
		0x05, 0x15, 0x02, 0x15, 0x02, 0x15, 0x02, 0x15, 0x02, 0x15, 0x02, 0x15, 0x9a, 0x57, 0x0d, 0xee,
		0xc2, 0xcf, 0x45, 0xb3, 0x9f, 0x6d, 0x4e, 0x24, 0xb5, 0x4b, 0xe3, 0xab, 0xb3, 0x49, 0xef, 0xe2,
		0xf8, 0xfa, 0x8c, 0x0c, 0x5d, 0x1e, 0x5f, 0x7d, 0x08, 0xf9, 0x5d, 0x20, 0x37, 0x9f, 0x52, 0x5a,
		0x97, 0xc8, 0x7c, 0x5a, 0x9c, 0xe4, 0x55, 0x2f, 0x97, 0x10, 0x94, 0xb8, 0xfa, 0x25, 0xac, 0x4c,
		0x58, 0x99, 0xb0, 0x32, 0x61, 0x65, 0x66, 0xda, 0xca, 0x44, 0x00, 0xa2, 0xac, 0xad, 0x53, 0x17,
		0x80, 0xd8, 0xba, 0x38, 0x39, 0x6e, 0xb1, 0xc7, 0x1f, 0x5e, 0x75, 0x8e, 0x3b, 0xcd, 0x13, 0xce,
		0x69, 0x2b, 0xfe, 0xb4, 0x1f, 0x7f, 0x6d, 0x23, 0xe0, 0x31, 0xe1, 0x94, 0xfe, 0x1a, 0x92, 0x15,
		0x14, 0x5d, 0x4d, 0x7e, 0x02, 0x11, 0x65, 0xcd, 0xf1, 0x9b, 0x08, 0xe8, 0x91, 0x56, 0x46, 0x78,
		0x65, 0x6e, 0x59, 0x85, 0x2b, 0xfe, 0xab, 0x5b, 0xa3, 0xc7, 0x5b, 0x4e, 0x5e, 0x31, 0x33, 0x27,
		0x98, 0x05, 0x98, 0x05, 0x98, 0x05, 0x98, 0x05, 0x98, 0xc5, 0xd2, 0xb9, 0x1b, 0x99, 0x96, 0xb7,
		0x57, 0x61, 0x24, 0x15, 0x1c, 0xde, 0xeb, 0x4b, 0xc3, 0xba, 0x17, 0xa8, 0x67, 0x22, 0x69, 0xd2,
		0x49, 0xed, 0x09, 0x94, 0x9e, 0xe0, 0x9a, 0x79, 0x67, 0xca, 0x99, 0x54, 0x2b, 0x87, 0xd5, 0xc3,
		0xfd, 0x7a, 0xe5, 0xb0, 0x06, 0xd9, 0xe2, 0x92, 0x2d, 0x84, 0x0b, 0xa5, 0x40, 0xd1, 0x23, 0x8b,
		0x8d, 0xc8, 0x9e, 0xb9, 0xfc, 0x74, 0x52, 0xaf, 0xee, 0x55, 0x8e, 0xb4, 0x8f, 0xbf, 0xb6, 0xb5,
		0xb3, 0x76, 0xeb, 0x4a, 0xff, 0x68, 0xb8, 0xa2, 0xaf, 0x35, 0xbc, 0x07, 0xe1, 0x58, 0xc2, 0xd3,
		0x7e, 0x6f, 0x9f, 0x23, 0x79, 0x4d, 0xcb, 0x35, 0xf9, 0x58, 0x49, 0x42, 0x36, 0x12, 0x0c, 0xa0,
		0x70, 0xba, 0x50, 0x38, 0x9b, 0xce, 0x2e, 0xcf, 0xec, 0xfd, 0xfd, 0xcc, 0xe8, 0xe8, 0x1a, 0xcf,
		0x07, 0x27, 0xd7, 0x56, 0x13, 0xc1, 0xc9, 0x45, 0xa8, 0x72, 0xe0, 0xe4, 0xca, 0x30, 0xae, 0xa3,
		0x8c, 0x7d, 0x72, 0x98, 0xa4, 0x2e, 0x63, 0x0f, 0x7a, 0x02, 0x7a, 0x02, 0x7a, 0x02, 0x7a, 0x02,
		0x7a, 0x92, 0x4f, 0x7a, 0x92, 0xa9, 0x0e, 0x9b, 0xc7, 0x96, 0x65, 0x7b, 0xe3, 0xe0, 0x34, 0xd2,
		0x46, 0x9b, 0x6e, 0xef, 0x41, 0x3c, 0x1a, 0xc3, 0x30, 0x35, 0xa1, 0x68, 0x0f, 0x85, 0xd5, 0x0b,
		0xe8, 0x82, 0x6f, 0x79, 0x7d, 0xb3, 0x9d, 0xbf, 0x75, 0xdf, 0xfc, 0x32, 0xac, 0x9e, 0x28, 0x2e,
		0xbe, 0xe0, 0x2e, 0xbd, 0x52, 0xbc, 0xeb, 0xdf, 0x16, 0x07, 0x15, 0xc7, 0xbc, 0x2d, 0x3e, 0x1a,
		0x3d, 0x3d, 0x50, 0x74, 0x45, 0x61, 0x79, 0x8e, 0x29, 0xdc, 0xe0, 0xeb, 0x73, 0xd4, 0xfb, 0xd9,
		0x8d, 0xbe, 0x2b, 0x52, 0x97, 0x4a, 0x2d, 0xb8, 0x9e, 0x33, 0xea, 0x79, 0x56, 0xa8, 0x2e, 0x2e,
		0xa2, 0x8f, 0x78, 0x3e, 0x7e, 0xfc, 0x66, 0xf8, 0xf4, 0xdd, 0x85, 0x9f, 0xdd, 0xc5, 0x17, 0xba,
		0x9f, 0xfa, 0xb7, 0xdd, 0x56, 0xe5, 0xd2, 0xbc, 0xed, 0x9e, 0x19, 0xbd, 0x8e, 0xff, 0xe9, 0xba,
		0x8d, 0xf1, 0xa7, 0x0b, 0xbe, 0x3e, 0x77, 0xdb, 0x93, 0x4f, 0x17, 0x7d, 0xd7, 0xbd, 0x0a, 0x3e,
		0x5d, 0x56, 0x3a, 0x5d, 0xbf, 0x49, 0xf1, 0xd9, 0xf0, 0x15, 0x1c, 0x61, 0x70, 0x3b, 0x6d, 0x9a,
		0x0a, 0x7d, 0x5a, 0x8a, 0x92, 0x34, 0x14, 0x86, 0xb4, 0x13, 0x86, 0x34, 0x13, 0xd9, 0x82, 0x4a,
		0x0c, 0xde, 0x29, 0x00, 0xed, 0x02, 0x49, 0x4b, 0x7c, 0x75, 0x30, 0x2d, 0x17, 0xa0, 0xe5, 0xc1,
		0xa8, 0x9c, 0x91, 0x24, 0xc9, 0x37, 0x95, 0x5c, 0xab, 0x93, 0x67, 0x89, 0x62, 0xac, 0x42, 0x7c,
		0xe5, 0x48, 0x6d, 0x72, 0x19, 0x93, 0x20, 0x5f, 0x05, 0xb9, 0x85, 0xfa, 0x67, 0x1c, 0xf9, 0xf2,
		0x8c, 0xcb, 0xc8, 0x11, 0x25, 0x69, 0xb8, 0xc8, 0x2f, 0x2f, 0x29, 0x1e, 0x9d, 0xc2, 0xff, 0x4e,
		0xeb, 0x67, 0xa7, 0xf2, 0x95, 0x90, 0xfb, 0xcd, 0xc9, 0x1d, 0x1d, 0xe4, 0x7e, 0xf0, 0x74, 0x69,
		0x96, 0x53, 0x53, 0xae, 0xd9, 0x5d, 0x10, 0x5f, 0xe5, 0xb7, 0xf7, 0x9c, 0xa6, 0x8e, 0x7d, 0x95,
		0xdd, 0xaf, 0x8e, 0xe8, 0x2a, 0x90, 0xec, 0xea, 0x8f, 0xf2, 0xaa, 0x8f, 0xe7, 0x6a, 0x8f, 0xda,
		0x4d, 0xcb, 0x76, 0x75, 0xc7, 0xe6, 0x73, 0x65, 0xbb, 0x9a, 0x4b, 0xb7, 0x17, 0x82, 0xec, 0xaa,
		0x6d, 0x16, 0x5e, 0x74, 0x93, 0xa2, 0xd2, 0x1d, 0x61, 0xbc, 0x38, 0x71, 0x7c, 0x38, 0xa1, 0x07,
		0x94, 0x23, 0xfe, 0x3b, 0x0a, 0xce, 0x25, 0x6e, 0xb2, 0xc0, 0x1e, 0x83, 0xcb, 0x17, 0x73, 0x4b,
		0x19, 0x5d, 0xc4, 0x11, 0xaf, 0x3d, 0x15, 0x81, 0xfd, 0x7a, 0xbd, 0x5e, 0xa1, 0xae, 0x09, 0x93,
		0x67, 0x49, 0xc8, 0x88, 0x33, 0xfd, 0x26, 0xad, 0x3e, 0x25, 0x89, 0xfc, 0x6d, 0x50, 0xd1, 0xbf,
		0x5a, 0x84, 0x96, 0x76, 0x38, 0x3e, 0x8c, 0x6d, 0x18, 0xdb, 0x30, 0xb6, 0x61, 0x6c, 0xc3, 0xd8,
		0x86, 0xb1, 0x0d, 0x63, 0x1b, 0xc6, 0x36, 0x8c, 0x6d, 0x18, 0xdb, 0xbb, 0x67, 0x6c, 0x3f, 0x1a,
		0x3d, 0xdd, 0xe8, 0xf7, 0x1d, 0xe1, 0xba, 0x74, 0x16, 0xf7, 0xec, 0x24, 0x30, 0xbb, 0x61, 0x76,
		0xc3, 0xec, 0x86, 0xd9, 0x9d, 0x29, 0x98, 0x99, 0x85, 0x9a, 0xf2, 0x01, 0xc1, 0xd8, 0x6d, 0xc3,
		0xf3, 0x84, 0x63, 0x91, 0x99, 0xdf, 0x85, 0xcf, 0x25, 0xfd, 0xd0, 0xd0, 0xef, 0x8e, 0xf5, 0x4f,
		0x37, 0xdf, 0x2b, 0x2f, 0x6f, 0x8f, 0xe6, 0x7f, 0x7e, 0xf7, 0xbd, 0xf6, 0x22, 0x5f, 0x1e, 0x6f,
		0x28, 0x16, 0xea, 0xe2, 0xaa, 0xf9, 0x27, 0xf9, 0x6a, 0xfd, 0xe7, 0xf5, 0xe5, 0xfa, 0x47, 0x01,
		0xf6, 0x46, 0x8c, 0x95, 0xfd, 0x3a, 0x30, 0x2c, 0x3a, 0x43, 0x23, 0x18, 0x1d, 0x16, 0x06, 0x2c,
		0x0c, 0x58, 0x18, 0xb0, 0x30, 0x08, 0xe4, 0x9e, 0xae, 0x8b, 0x08, 0x65, 0xd7, 0x90, 0x9f, 0x74,
		0x09, 0xf9, 0xf0, 0xa1, 0xe8, 0x63, 0xa6, 0x1b, 0xfc, 0xbf, 0x38, 0x0e, 0x2e, 0x0d, 0xbe, 0xd7,
		0x65, 0x37, 0x08, 0x41, 0xfc, 0xf2, 0x76, 0xe3, 0x72, 0xc7, 0x2f, 0xcb, 0xce, 0x98, 0x62, 0x8c,
		0x5d, 0x96, 0x98, 0x0e, 0x25, 0x21, 0x6e, 0xf9, 0x8d, 0x42, 0xa9, 0x9c, 0xa4, 0x33, 0xc9, 0x63,
		0x42, 0x72, 0x33, 0x98, 0xe4, 0x67, 0x2c, 0xb1, 0x64, 0x28, 0x11, 0x64, 0x24, 0x11, 0x64, 0x20,
		0x25, 0x95, 0x1d, 0xc9, 0x48, 0xc6, 0x8d, 0x60, 0x05, 0x29, 0x09, 0x03, 0x4c, 0x98, 0x95, 0x0c,
		0xad, 0xe2, 0x63, 0x4c, 0xbc, 0x77, 0xc6, 0x94, 0x2c, 0x59, 0x12, 0xc5, 0x27, 0x49, 0x09, 0x64,
		0x88, 0x43, 0x76, 0xe2, 0x49, 0xcd, 0xf6, 0x7b, 0x1e, 0x63, 0xbf, 0x17, 0x5a, 0x91, 0xc6, 0xbf,
		0x4c, 0x58, 0xd3, 0xdb, 0x34, 0xee, 0xd6, 0x24, 0xcc, 0xaf, 0x49, 0x4c, 0xd3, 0x65, 0xd0, 0x71,
		0xb9, 0xb4, 0x5b, 0x16, 0xbd, 0x96, 0x4e, 0xa3, 0xa5, 0xd3, 0x65, 0xe9, 0xb4, 0x98, 0x17, 0x3d,
		0x93, 0xe6, 0xaf, 0xc8, 0xee, 0x4a, 0x4c, 0xd3, 0x75, 0x58, 0x52, 0x02, 0x9c, 0x34, 0x7f, 0x9a,
		0x4c, 0xff, 0x19, 0x8d, 0xbf, 0x4c, 0xb6, 0x7f, 0x8c, 0xcc, 0x1f, 0x46, 0xe6, 0xff, 0x22, 0xf3,
		0x77, 0xa9, 0x25, 0x6f, 0xb2, 0x12, 0xd6, 0x0a, 0x66, 0x5f, 0x7e, 0xd2, 0xab, 0xb4, 0x78, 0x36,
		0xc9, 0x0e, 0x75, 0xe9, 0x8e, 0x74, 0x64, 0xbc, 0x92, 0x03, 0x03, 0x39, 0x40, 0x90, 0x03, 0x45,
		0x3a, 0x7d, 0x91, 0xd2, 0x1d, 0xe0, 0x84, 0x8e, 0x6f, 0x0a, 0x87, 0xf7, 0xac, 0xa3, 0x3b, 0xf0,
		0x67, 0x4a, 0x6b, 0x73, 0x9d, 0x8e, 0x7a, 0x06, 0x13, 0xc3, 0xcb, 0x95, 0x0f, 0xef, 0xd3, 0xa1,
		0x53, 0x5e, 0xd7, 0x00, 0x28, 0x0f, 0x94, 0xdf, 0x6d, 0x94, 0x97, 0x5e, 0xd7, 0x60, 0x72, 0xf6,
		0xe9, 0xe2, 0x32, 0xa2, 0x19, 0x68, 0x62, 0x33, 0xca, 0x88, 0xcd, 0x40, 0x6c, 0x46, 0xca, 0x40,
		0x89, 0x0d, 0x9c, 0xe4, 0x82, 0x94, 0x64, 0xb0, 0x22, 0x03, 0xad, 0x29, 0xd7, 0xb5, 0xfa, 0x82,
		0x2e, 0xf9, 0x63, 0x4a, 0x7f, 0x83, 0x69, 0x88, 0x44, 0x84, 0xb6, 0x67, 0x03, 0x79, 0xaf, 0x06,
		0x8e, 0x1e, 0x0d, 0xbc, 0xbd, 0x19, 0xb8, 0xea, 0x6d, 0xb3, 0xf7, 0x62, 0x60, 0x2f, 0xa6, 0xcd,
		0xde, 0x7b, 0x21, 0x5b, 0x25, 0x99, 0xc9, 0x7b, 0x2c, 0x30, 0x84, 0xae, 0x51, 0x32, 0xfa, 0x0d,
		0x18, 0x7e, 0x00, 0xcc, 0x59, 0xa9, 0x85, 0x4c, 0x52, 0xe2, 0x54, 0x66, 0x91, 0xc3, 0xb5, 0xf2,
		0x43, 0x59, 0x51, 0x9b, 0xc8, 0x8e, 0x5f, 0x56, 0x80, 0x15, 0x28, 0x40, 0x28, 0x40, 0x28, 0xc0,
		0x14, 0x29, 0x40, 0x2a, 0x5e, 0xc0, 0xc4, 0x0f, 0x58, 0x79, 0x02, 0x13, 0x5f, 0x60, 0xe3, 0x0d,
		0x9c, 0xf0, 0xa9, 0x06, 0x46, 0xb9, 0xe1, 0x54, 0x19, 0xac, 0x2a, 0x83, 0x57, 0x65, 0x30, 0x4b,
		0x0b, 0xb7, 0xc4, 0xb0, 0xcb, 0xc7, 0x3f, 0x14, 0xf0, 0x10, 0x4e, 0x3e, 0xb2, 0x8a, 0x97, 0x2c,
		0xfc, 0x17, 0xdd, 0xac, 0x45, 0xdf, 0x51, 0x72, 0x16, 0x7a, 0xb1, 0x44, 0xcf, 0xa3, 0x95, 0x2c,
		0x8c, 0x3c, 0x44, 0x79, 0x21, 0x1e, 0x76, 0xe1, 0xe7, 0x55, 0x62, 0x96, 0xe9, 0x26, 0x48, 0xe7,
		0xe2, 0xc9, 0xfb, 0xcd, 0x1e, 0xfe, 0x1a, 0x7c, 0xd8, 0xb9, 0x9f, 0x26, 0x3f, 0x44, 0xaf, 0xa2,
		0x1f, 0x92, 0x54, 0xc3, 0x81, 0xca, 0x8c, 0x45, 0x33, 0xa4, 0x38, 0x93, 0xa2, 0x19, 0x12, 0x3f,
		0xaa, 0xa7, 0x11, 0xcd, 0xb3, 0xd6, 0x1d, 0x69, 0x0b, 0xfc, 0x46, 0xa2, 0xb1, 0x42, 0x99, 0x4f,
		0x91, 0xac, 0x67, 0x25, 0xfb, 0x78, 0x03, 0xd1, 0x46, 0x17, 0xa5, 0x57, 0x89, 0x20, 0xba, 0x28,
		0xa5, 0xd9, 0x93, 0x85, 0x68, 0x43, 0x65, 0x9e, 0xa6, 0xbc, 0x77, 0x51, 0x72, 0x29, 0xbb, 0x28,
		0xb9, 0x28, 0xec, 0x8e, 0x18, 0x43, 0xc5, 0x10, 0xc4, 0x06, 0x45, 0x6c, 0x90, 0x94, 0x0d, 0xdf,
		0x05, 0x43, 0x61, 0x77, 0xe9, 0xf0, 0xa2, 0x51, 0x57, 0x96, 0x6c, 0x09, 0xeb, 0x3e, 0x30, 0xed,
		0x51, 0xd7, 0x7d, 0xd5, 0x24, 0x93, 0xa2, 0xde, 0x95, 0x12, 0xca, 0x79, 0xa7, 0xe3, 0x18, 0x2f,
		0xba, 0xdc, 0x20, 0x03, 0x59, 0x90, 0x81, 0xac, 0x94, 0x74, 0xcf, 0x78, 0xed, 0xde, 0x7f, 0xa2,
		0x4a, 0xef, 0x74, 0x96, 0xd9, 0x2a, 0xbd, 0xff, 0x4c, 0x7f, 0x3d, 0x5e, 0xc9, 0xd6, 0x8e, 0x78,
		0xf2, 0x1c, 0x43, 0x1f, 0x59, 0x6e, 0xe0, 0x64, 0xa3, 0xb1, 0x7b, 0x1c, 0x71, 0x27, 0x1c, 0x61,
		0xf5, 0x32, 0xd9, 0x17, 0x66, 0x62, 0xb4, 0x5d, 0x7e, 0x3a, 0xa9, 0x57, 0xf7, 0x2a, 0x47, 0xda,
		0xc7, 0x5f, 0xdb, 0xda, 0x59, 0xbb, 0x75, 0xa5, 0x7f, 0x34, 0x5c, 0xd1, 0xd7, 0x1a, 0xde, 0x83,
		0x70, 0x2c, 0xe1, 0x69, 0xbf, 0xb7, 0xcf, 0x73, 0x16, 0x4a, 0x39, 0xdd, 0xb7, 0x3c, 0x47, 0x53,
		0x6e, 0xb4, 0xb1, 0x50, 0x79, 0x3b, 0x50, 0x55, 0x5c, 0x62, 0xc1, 0x93, 0x25, 0xf8, 0x90, 0xde,
		0xc8, 0x0b, 0x1e, 0x25, 0x78, 0x94, 0xe0, 0x51, 0x82, 0x47, 0x29, 0x90, 0xfb, 0x91, 0x69, 0x79,
		0xfb, 0x55, 0x42, 0xa7, 0xd2, 0x01, 0x5a, 0x05, 0x2a, 0x72, 0x29, 0xc1, 0x9b, 0xb0, 0xf3, 0x1e,
		0x25, 0x9e, 0x18, 0x31, 0xf8, 0x98, 0x60, 0x70, 0x33, 0x1b, 0xdc, 0x1e, 0x85, 0x62, 0x8c, 0x94,
		0x62, 0x30, 0x3a, 0x8c, 0x6e, 0x18, 0xdd, 0x30, 0xba, 0x61, 0x74, 0x13, 0xc8, 0xbd, 0xb0, 0x46,
		0x8f, 0xc2, 0x19, 0xc7, 0x52, 0x12, 0x5e, 0xe7, 0x56, 0x09, 0xc6, 0x6e, 0x58, 0xa3, 0x47, 0xba,
		0x23, 0xd5, 0xb1, 0xaf, 0x3c, 0xc7, 0xb4, 0xee, 0x69, 0x73, 0x65, 0x4a, 0xfe, 0x1e, 0x34, 0xae,
		0x9a, 0x94, 0x4e, 0xd7, 0x72, 0x38, 0x47, 0xb7, 0xf1, 0x3b, 0xe9, 0x3c, 0x15, 0x7f, 0x9e, 0x8f,
		0xc7, 0x57, 0x8d, 0x6e, 0xe3, 0xe4, 0xac, 0x5d, 0xc8, 0x56, 0xf1, 0x11, 0xbb, 0x19, 0x60, 0x0d,
		0xe1, 0x56, 0x4f, 0x57, 0x86, 0xac, 0xf8, 0xc2, 0xf8, 0x58, 0x5c, 0x35, 0x69, 0x4d, 0xdd, 0x48,
		0x96, 0x8e, 0xb4, 0xf2, 0x6e, 0x26, 0x1a, 0x21, 0xac, 0x7e, 0xab, 0x71, 0x95, 0x87, 0xd5, 0x67,
		0xaa, 0xa1, 0xd7, 0x4f, 0x42, 0xea, 0xd1, 0xdd, 0x6b, 0xd6, 0xe2, 0x95, 0x72, 0x23, 0x81, 0xa6,
		0x5e, 0x68, 0xea, 0x95, 0x51, 0x58, 0x4b, 0x7b, 0x97, 0xaf, 0xf5, 0x40, 0x86, 0x96, 0x5f, 0xa9,
		0x96, 0xb3, 0xb4, 0xb6, 0xfe, 0x9a, 0x13, 0xa8, 0x2c, 0x34, 0x00, 0x93, 0xd8, 0xfa, 0x0b, 0x4d,
		0xbf, 0xd0, 0xf4, 0x4b, 0xb9, 0x13, 0x2d, 0xa3, 0x4d, 0xbf, 0xe4, 0xb7, 0xfb, 0x42, 0xa3, 0x2f,
		0xa6, 0xc3, 0x2a, 0xfb, 0xd0, 0x92, 0x1d, 0x5e, 0xb2, 0x43, 0x4c, 0x76, 0x98, 0xd3, 0xc1, 0xe3,
		0xe4, 0x35, 0xfa, 0x92, 0x5a, 0xdc, 0x90, 0xa4, 0x88, 0x21, 0xda, 0x7d, 0x21, 0x35, 0x9b, 0x1a,
		0x26, 0xc8, 0xe1, 0x22, 0x9d, 0xae, 0x4b, 0xb4, 0xfb, 0x22, 0x2c, 0x06, 0x8e, 0xda, 0x1b, 0xbc,
		0x76, 0xdd, 0x32, 0xc0, 0xa3, 0xf6, 0x06, 0x00, 0x7e, 0xb7, 0x01, 0x1e, 0xb5, 0x37, 0x10, 0xb4,
		0xc5, 0x03, 0x39, 0xd4, 0xd0, 0xc3, 0x06, 0x41, 0x6c, 0x50, 0xc4, 0x06, 0x49, 0x72, 0xa1, 0x49,
		0x32, 0x44, 0xd1, 0xd9, 0xa2, 0x0c, 0xf0, 0xa2, 0xa1, 0xf6, 0xc6, 0xba, 0x27, 0x47, 0xed, 0x8d,
		0x64, 0x32, 0x8b, 0x4c, 0x09, 0xc8, 0x00, 0xf2, 0x22, 0xe6, 0xff, 0xa1, 0xf6, 0x06, 0xcf, 0x92,
		0xa0, 0xf6, 0x06, 0xb9, 0xb5, 0x83, 0xda, 0x1b, 0x1b, 0x1a, 0x6d, 0xa8, 0xbd, 0x41, 0x37, 0x27,
		0x6a, 0x6f, 0xa4, 0x5f, 0xe5, 0xed, 0x42, 0xed, 0x0d, 0x92, 0x06, 0x6b, 0xa4, 0x0d, 0xd5, 0xe0,
		0x57, 0x82, 0x5f, 0x09, 0x7e, 0x25, 0xf8, 0x95, 0x50, 0x81, 0x23, 0xdf, 0x8e, 0x25, 0xf8, 0x14,
		0x76, 0xde, 0xaf, 0x84, 0x0a, 0x1c, 0x30, 0xbb, 0x73, 0x6a, 0x76, 0x7b, 0xc2, 0xb9, 0x33, 0x7a,
		0x82, 0xd2, 0xf4, 0x9e, 0x4c, 0x01, 0xf3, 0x9b, 0xc3, 0xfc, 0x36, 0xef, 0x60, 0x79, 0xa7, 0xd0,
		0xf2, 0x36, 0xef, 0x60, 0x74, 0xcb, 0x96, 0x76, 0xba, 0x2e, 0xc0, 0x94, 0x5d, 0x7f, 0xa3, 0x80,
		0xc3, 0x62, 0x20, 0x16, 0x47, 0x11, 0x40, 0xba, 0x8b, 0x2f, 0x84, 0x3f, 0x07, 0x29, 0x61, 0x3b,
		0xa0, 0x8c, 0x06, 0xc6, 0xad, 0x18, 0xd0, 0x29, 0xa2, 0xf1, 0xf0, 0x50, 0x42, 0xf0, 0x01, 0xc1,
		0x07, 0x04, 0x1f, 0x10, 0x81, 0xdc, 0x8b, 0xaf, 0xa6, 0x2e, 0xbd, 0xce, 0xf3, 0x2c, 0xca, 0xd4,
		0xe1, 0x03, 0x52, 0xe4, 0x03, 0x2a, 0x83, 0xed, 0xef, 0xbc, 0x0f, 0x68, 0xbf, 0x5e, 0xaf, 0x57,
		0xe0, 0xf7, 0x81, 0xdf, 0x27, 0x07, 0xa6, 0xf6, 0x50, 0x08, 0x47, 0x37, 0x87, 0x74, 0xc6, 0xf6,
		0x64, 0x02, 0x98, 0xdb, 0x30, 0xb7, 0x61, 0x6e, 0xc3, 0xdc, 0x26, 0x90, 0x7b, 0x73, 0xa8, 0x1b,
		0xfd, 0xbe, 0x23, 0x5c, 0x97, 0xd2, 0x01, 0x74, 0x48, 0x30, 0x76, 0xb8, 0x36, 0x99, 0x8d, 0xc7,
		0x33, 0x87, 0x5f, 0xab, 0x84, 0x6b, 0xbf, 0xb4, 0x07, 0x07, 0x84, 0x73, 0x50, 0xc7, 0xb8, 0x46,
		0x13, 0xbd, 0xfd, 0x5c, 0xd2, 0x0f, 0x6f, 0x7e, 0x7c, 0x2e, 0xeb, 0x87, 0x37, 0xe3, 0x6f, 0xcb,
		0xc1, 0x97, 0xef, 0x95, 0x97, 0x1f, 0x95, 0xcf, 0x25, 0xbd, 0x1a, 0xbe, 0x5a, 0xa9, 0x7d, 0x2e,
		0xe9, 0xb5, 0x9b, 0x77, 0x6f, 0xbf, 0x7c, 0xf9, 0xb0, 0xed, 0x7b, 0xde, 0x7d, 0xdf, 0x7b, 0xa1,
		0x8b, 0x97, 0xbb, 0xa1, 0xdc, 0x06, 0x8e, 0x78, 0xe3, 0x68, 0xb6, 0xff, 0xbc, 0xe5, 0xda, 0x8d,
		0x77, 0xff, 0x20, 0xdc, 0x8f, 0x2c, 0xd5, 0x09, 0xe6, 0x81, 0xa5, 0x7d, 0xc0, 0xd2, 0xb6, 0xb0,
		0xf4, 0x76, 0x26, 0x06, 0xff, 0x7b, 0xf9, 0x7d, 0xf5, 0xe5, 0xe8, 0xdd, 0xf7, 0xfa, 0xcb, 0xe2,
		0x8b, 0x3f, 0x56, 0xfd, 0x59, 0xf9, 0x7d, 0xfd, 0xe5, 0x68, 0xcd, 0x6f, 0xf6, 0x5f, 0x8e, 0x36,
		0x1c, 0xa3, 0xf6, 0xf2, 0x76, 0xe9, 0x4f, 0xfd, 0xd7, 0x2b, 0xeb, 0xde, 0x50, 0x5d, 0xf3, 0x86,
		0xbd, 0x75, 0x6f, 0xd8, 0x5b, 0xf3, 0x86, 0xb5, 0x8f, 0x54, 0x59, 0xf3, 0x86, 0xda, 0xcb, 0x8f,
		0xa5, 0xbf, 0x7f, 0xbb, 0xfa, 0x4f, 0xf7, 0x5f, 0xde, 0xfd, 0x58, 0xf7, 0xbb, 0xfa, 0xcb, 0x8f,
		0xa3, 0x77, 0xef, 0x00, 0xd4, 0x1b, 0x03, 0x35, 0xc4, 0x93, 0x5f, 0x3c, 0xb3, 0xa7, 0xb8, 0xe0,
		0x09, 0x8a, 0x71, 0xc2, 0x1c, 0xe1, 0xda, 0x83, 0xaf, 0x82, 0xb0, 0xf5, 0x65, 0x34, 0x03, 0x7c,
		0x41, 0xf0, 0x05, 0xc1, 0x17, 0x04, 0x5f, 0x10, 0x81, 0xdc, 0xdf, 0xda, 0xf6, 0x40, 0x18, 0xa4,
		0x7d, 0x78, 0xca, 0x3b, 0xa0, 0x0c, 0xdc, 0xd1, 0x2d, 0x43, 0x44, 0xe8, 0xdc, 0x2c, 0x50, 0x0a,
		0x08, 0x0a, 0xdd, 0x59, 0x7d, 0x80, 0xa0, 0x50, 0xf9, 0xd2, 0x9e, 0xf7, 0xa0, 0xd0, 0xcf, 0xd3,
		0xa0, 0xd0, 0x7f, 0xf5, 0x46, 0x8e, 0x23, 0x2c, 0xef, 0xed, 0xbb, 0xe2, 0x87, 0x0f, 0xc5, 0xe8,
		0x2f, 0x6e, 0xc2, 0xb7, 0xcc, 0xe2, 0xac, 0xbb, 0xe2, 0xb5, 0x68, 0x64, 0x69, 0xe5, 0x2e, 0x09,
		0xb4, 0x1b, 0xda, 0x3c, 0x49, 0xed, 0x53, 0x31, 0xed, 0x84, 0x92, 0xc9, 0xd6, 0x4e, 0x51, 0x33,
		0x14, 0x34, 0x74, 0x9a, 0x53, 0x93, 0xb2, 0x72, 0xdc, 0xd1, 0xd3, 0x09, 0x3d, 0x9d, 0x32, 0x84,
		0x61, 0x19, 0xe9, 0xe3, 0x14, 0xa1, 0x16, 0xba, 0x37, 0xa5, 0x54, 0xa2, 0x52, 0xde, 0xb7, 0x89,
		0xaf, 0x65, 0xd3, 0x1b, 0x42, 0x01, 0x49, 0x2a, 0x18, 0xf4, 0x02, 0x11, 0x43, 0x0c, 0x28, 0xb7,
		0x7f, 0xbb, 0x5d, 0xdf, 0x7c, 0xef, 0x36, 0xfb, 0xcb, 0x0d, 0x77, 0x37, 0xee, 0xae, 0x52, 0xed,
		0xe6, 0x16, 0x7b, 0x48, 0xb0, 0x77, 0x9b, 0x6d, 0xd9, 0xeb, 0x1b, 0xb0, 0xc1, 0xe2, 0x17, 0x7c,
		0xb1, 0x7d, 0xb4, 0x6f, 0xcd, 0x81, 0xe9, 0x3d, 0x6f, 0xbc, 0xf4, 0x11, 0x4f, 0x9e, 0x7b, 0xf7,
		0x86, 0x5b, 0xbd, 0x5d, 0x91, 0xfe, 0xad, 0xbd, 0x66, 0x71, 0xbc, 0x61, 0xb3, 0x5e, 0x2e, 0xf1,
		0x75, 0xb8, 0x8d, 0x0b, 0x38, 0xae, 0xff, 0x2a, 0xb1, 0x5f, 0x2a, 0xb1, 0xbf, 0x69, 0xd1, 0x8f,
		0x14, 0x7c, 0x70, 0x45, 0xc7, 0x7f, 0xdb, 0xf2, 0xf2, 0x85, 0xde, 0x44, 0x2a, 0xb6, 0x5c, 0xf5,
		0xc9, 0x46, 0x87, 0xef, 0xdf, 0x72, 0xc5, 0xe2, 0xf5, 0x97, 0x88, 0xed, 0xf8, 0x4d, 0xe2, 0xd8,
		0x4d, 0x20, 0xd2, 0xb2, 0x5c, 0xb3, 0xd2, 0x5c, 0xaf, 0xd2, 0x5c, 0xab, 0xc9, 0x44, 0x9e, 0xc7,
		0xbe, 0x89, 0xdb, 0x69, 0xa1, 0xd0, 0x1f, 0x0d, 0x07, 0x66, 0xcf, 0xf0, 0x84, 0x6e, 0x0e, 0xf5,
		0xbe, 0xf0, 0x44, 0x90, 0x02, 0xa4, 0x07, 0x9e, 0xba, 0xaf, 0xc6, 0x20, 0x79, 0x2f, 0xcc, 0xd7,
		0x26, 0x48, 0xd6, 0x21, 0xb3, 0x94, 0x93, 0x0e, 0x99, 0x31, 0x0f, 0x9b, 0xac, 0x43, 0x47, 0x76,
		0xef, 0x41, 0xde, 0x1e, 0x33, 0xde, 0x61, 0x54, 0xc3, 0x4e, 0x13, 0xdf, 0x40, 0xcc, 0xd5, 0x7c,
		0x2b, 0xef, 0x27, 0x11, 0x98, 0xf0, 0xfc, 0xec, 0x27, 0x18, 0x42, 0x4e, 0xfe, 0xae, 0x1c, 0x5f,
		0x9f, 0xbc, 0x16, 0x53, 0x92, 0x6b, 0xaf, 0x91, 0x65, 0x55, 0xca, 0xcf, 0x9e, 0x7c, 0x91, 0xe3,
		0x24, 0x95, 0xbf, 0x15, 0xfb, 0xb5, 0xda, 0x5e, 0x6d, 0xf7, 0xb6, 0x43, 0x91, 0xc7, 0xee, 0x26,
		0xc5, 0x3d, 0xba, 0xcd, 0x61, 0x44, 0x1c, 0x75, 0xef, 0xc1, 0x11, 0xee, 0x83, 0x3d, 0xe8, 0x27,
		0xb7, 0x51, 0x56, 0x0f, 0x0b, 0xcb, 0x04, 0x96, 0x09, 0x2c, 0x13, 0x58, 0x26, 0xb0, 0x4c, 0x60,
		0x99, 0xc0, 0x32, 0x81, 0x65, 0xf2, 0xd3, 0x45, 0x8e, 0xe5, 0x11, 0x5f, 0x8b, 0xa2, 0x31, 0x3c,
		0xe4, 0xb0, 0x43, 0x60, 0x87, 0xc0, 0x0e, 0x91, 0x18, 0x96, 0x9f, 0x30, 0xfc, 0x9e, 0x1f, 0x76,
		0x64, 0x32, 0xa2, 0x35, 0xe3, 0xc6, 0xdc, 0xd6, 0x53, 0x71, 0x67, 0x8c, 0x06, 0x5e, 0x22, 0x8b,
		0xac, 0x50, 0x8b, 0x27, 0xc4, 0x37, 0x80, 0x4f, 0xc0, 0x27, 0xe0, 0x33, 0x06, 0x8d, 0x3b, 0x90,
		0x00, 0x9e, 0x35, 0xb0, 0x38, 0xb0, 0xb8, 0xb4, 0xb3, 0xb8, 0x5a, 0x09, 0x14, 0x2e, 0xdd, 0x14,
		0x2e, 0x26, 0x1e, 0x4a, 0x6c, 0x73, 0x29, 0xb1, 0x9d, 0xa5, 0x04, 0x44, 0x9a, 0x69, 0x4f, 0xa9,
		0xbd, 0xda, 0xc6, 0x50, 0x73, 0xc3, 0x3b, 0xf7, 0x72, 0x4d, 0x46, 0xd4, 0xb2, 0xe4, 0xd4, 0x3b,
		0xca, 0xd6, 0x93, 0x64, 0xd9, 0x75, 0x8b, 0xad, 0x24, 0xb7, 0xdb, 0x04, 0x38, 0x60, 0xa8, 0x99,
		0xd0, 0x37, 0xd3, 0xea, 0xdb, 0xdf, 0x24, 0xd3, 0xa0, 0x70, 0x50, 0x95, 0x1c, 0xa8, 0x7c, 0x50,
		0x02, 0x0b, 0x02, 0x0b, 0x02, 0x0b, 0xe2, 0x63, 0x41, 0xb8, 0xcc, 0x02, 0x0d, 0xda, 0x91, 0xcb,
		0xac, 0x12, 0x78, 0x10, 0x78, 0x10, 0x78, 0x10, 0x78, 0x10, 0x78, 0x50, 0x4a, 0x78, 0xd0, 0x8e,
		0xe5, 0x44, 0xce, 0xd2, 0xad, 0x62, 0xac, 0x64, 0x1b, 0x4d, 0x7a, 0x6e, 0xdd, 0x99, 0xd1, 0x3b,
		0x0b, 0x1f, 0xa9, 0x1b, 0xd2, 0x19, 0xaa, 0xdc, 0xc8, 0xad, 0xd2, 0x07, 0x0d, 0x4f, 0xc4, 0x4f,
		0x64, 0x8a, 0x53, 0x80, 0x23, 0x71, 0x1e, 0x53, 0x05, 0x79, 0x4c, 0x4a, 0xc1, 0x1b, 0x79, 0x4c,
		0x49, 0x4c, 0x0c, 0xe4, 0x31, 0xc1, 0xc1, 0x02, 0x07, 0x0b, 0x1c, 0x2c, 0x70, 0xb0, 0xc0, 0xc1,
		0x12, 0xd7, 0xc1, 0x82, 0x68, 0xe1, 0x3c, 0x92, 0x34, 0xe4, 0x31, 0xc1, 0x32, 0x81, 0x65, 0x02,
		0xcb, 0x04, 0x96, 0x09, 0x2c, 0x13, 0x58, 0x26, 0xb0, 0x4c, 0x32, 0x6d, 0x99, 0x20, 0x8f, 0x09,
		0x76, 0x08, 0xec, 0x90, 0xf4, 0xd8, 0x21, 0xc8, 0x63, 0x92, 0x06, 0x40, 0xc8, 0x63, 0x02, 0x7c,
		0x02, 0x3e, 0x77, 0x8f, 0xc6, 0x21, 0x8f, 0x09, 0x2c, 0x0e, 0x79, 0x4c, 0xa0, 0x70, 0x29, 0xa0,
		0x70, 0x88, 0xdf, 0x5b, 0x0d, 0xd3, 0x88, 0xdf, 0xe3, 0x35, 0x0e, 0x56, 0x1a, 0x09, 0x88, 0xdf,
		0x4b, 0x1d, 0x13, 0x42, 0x1e, 0x13, 0x58, 0x10, 0x58, 0x10, 0x58, 0x90, 0x04, 0x16, 0x84, 0xcb,
		0x2c, 0xd0, 0x20, 0xe4, 0x31, 0x81, 0x07, 0x81, 0x07, 0x81, 0x07, 0x81, 0x07, 0x81, 0x07, 0x69,
		0xc8, 0x63, 0x0a, 0xdf, 0x4f, 0x9c, 0xc7, 0x14, 0xb7, 0xd9, 0x2d, 0x5d, 0x1a, 0x53, 0x8c, 0x06,
		0xb6, 0xe8, 0xf0, 0x16, 0x33, 0x94, 0x81, 0x6c, 0x17, 0xb9, 0xdb, 0xbd, 0x6d, 0xa7, 0x72, 0xe7,
		0x3c, 0x0f, 0xdb, 0x34, 0x38, 0x4c, 0x7b, 0xa3, 0x37, 0x4b, 0x78, 0xbe, 0x58, 0xec, 0x64, 0xaf,
		0xb7, 0xc9, 0x67, 0xcf, 0x4a, 0xbb, 0x37, 0x61, 0x79, 0x8e, 0x29, 0xdc, 0xf8, 0x69, 0x92, 0x93,
		0x01, 0x76, 0xa3, 0xe1, 0xdb, 0xf6, 0xa2, 0x2d, 0xcb, 0x86, 0x4c, 0x7f, 0xae, 0xe4, 0xd6, 0xa2,
		0xcf, 0x63, 0xfa, 0xc4, 0x4e, 0x97, 0xf4, 0x25, 0x5b, 0x42, 0x7c, 0xdf, 0x78, 0x98, 0x64, 0x3e,
		0xd9, 0x72, 0x4e, 0x7c, 0xb2, 0xf1, 0x8f, 0x0f, 0xdc, 0xb2, 0xb1, 0x8f, 0x97, 0x1a, 0xcf, 0x6c,
		0xdc, 0x63, 0x17, 0x0d, 0x10, 0xb3, 0x11, 0xe9, 0x5a, 0xf1, 0x8b, 0x5d, 0x2b, 0x41, 0xe2, 0x81,
		0x94, 0x76, 0x30, 0x65, 0x1e, 0x50, 0x9a, 0x83, 0xca, 0xe1, 0x3b, 0x91, 0x72, 0x70, 0x79, 0x1d,
		0x27, 0x32, 0x0e, 0xb2, 0x24, 0x97, 0x48, 0x42, 0xc9, 0x4b, 0x7a, 0xc0, 0xe7, 0x98, 0x93, 0xd1,
		0xef, 0x3b, 0xc2, 0x75, 0xe5, 0x49, 0xc9, 0x2c, 0xb7, 0x9a, 0x0c, 0x2e, 0x69, 0x3b, 0x93, 0xdd,
		0x93, 0x92, 0x41, 0x01, 0x05, 0x24, 0xd0, 0x42, 0x03, 0x15, 0x44, 0x90, 0x43, 0x05, 0x39, 0x64,
		0x90, 0x43, 0x87, 0x1c, 0x08, 0x91, 0x04, 0x25, 0xd1, 0xa7, 0x4d, 0x7c, 0x9b, 0xcb, 0x08, 0x03,
		0x73, 0xd6, 0xc0, 0x81, 0xc4, 0x31, 0xdb, 0x86, 0xe7, 0x09, 0xc7, 0x4a, 0x7c, 0xe5, 0xb2, 0x34,
		0xf0, 0xe7, 0x92, 0x7e, 0x68, 0xe8, 0x77, 0xc7, 0xfa, 0xa7, 0x9b, 0xef, 0x95, 0x97, 0xb7, 0x47,
		0xf3, 0x3f, 0xbf, 0xfb, 0x5e, 0x7b, 0x91, 0x27, 0x57, 0x37, 0x32, 0x17, 0xe4, 0xe2, 0xaa, 0xf9,
		0x27, 0xd9, 0xaa, 0xfc, 0xe7, 0xf5, 0x65, 0xf9, 0x87, 0xc4, 0x75, 0x79, 0x93, 0x8e, 0x53, 0x2b,
		0xe3, 0x62, 0xfa, 0xeb, 0xc0, 0xb0, 0xe4, 0x2b, 0xec, 0x60, 0x54, 0x68, 0x6a, 0x68, 0x6a, 0x68,
		0xea, 0x9d, 0xd4, 0xd4, 0x03, 0x61, 0xdc, 0x39, 0xe2, 0x8e, 0x42, 0x4b, 0xd7, 0xe5, 0x6a, 0xe9,
		0xe0, 0xda, 0xec, 0xc3, 0x87, 0xe2, 0xc2, 0x7f, 0x3e, 0x80, 0xb9, 0xc1, 0xff, 0xc3, 0xf2, 0x8c,
		0xc1, 0xf7, 0xba, 0xd9, 0x2f, 0xa4, 0x05, 0xfb, 0x95, 0xd2, 0xc6, 0x84, 0x37, 0xd1, 0x4b, 0xe3,
		0xd1, 0xdc, 0x62, 0x06, 0xd7, 0x71, 0xc5, 0xf0, 0x6e, 0x23, 0xf8, 0x9a, 0xa0, 0xd8, 0xe6, 0xf2,
		0x33, 0x4b, 0xbe, 0xef, 0xec, 0xf8, 0x4f, 0xdb, 0x6d, 0x8c, 0x9f, 0x36, 0xf8, 0x1a, 0xaf, 0x0e,
		0xa7, 0x3c, 0x49, 0x49, 0x20, 0x25, 0x85, 0xa0, 0x5c, 0xe0, 0x9d, 0x21, 0xc3, 0xc9, 0x1b, 0x15,
		0xfd, 0x89, 0x86, 0x84, 0xfb, 0x0f, 0xee, 0x3f, 0xb8, 0xff, 0xd2, 0xe4, 0xfe, 0x8b, 0xce, 0xa6,
		0xee, 0xab, 0x7d, 0xe9, 0x7c, 0x62, 0x7e, 0x78, 0xb9, 0xc4, 0xa2, 0xbc, 0xa3, 0xc4, 0xc2, 0xbc,
		0x03, 0xa7, 0x50, 0xc0, 0x29, 0xcc, 0xbb, 0xbc, 0xd2, 0x09, 0x59, 0x60, 0x12, 0x0d, 0x28, 0xe9,
		0xf2, 0x70, 0xed, 0x21, 0x90, 0x66, 0x0b, 0x12, 0xc2, 0x0a, 0x19, 0xbc, 0x50, 0xc2, 0x0c, 0x39,
		0xdc, 0x50, 0xc3, 0x0e, 0x1b, 0xfc, 0xb0, 0xc1, 0x10, 0x07, 0x1c, 0xc9, 0x85, 0x25, 0xc9, 0xf0,
		0x44, 0x06, 0x53, 0x04, 0x94, 0x87, 0x8d, 0x0a, 0xbd, 0x06, 0x62, 0x25, 0xa2, 0xe1, 0xa9, 0xc0,
		0x8c, 0x03, 0xd4, 0xd8, 0xc0, 0x8d, 0x0b, 0xe4, 0xd8, 0xc1, 0x8e, 0x1d, 0xf4, 0x38, 0xc1, 0x8f,
		0x06, 0x04, 0x89, 0xc0, 0x30, 0x5a, 0x18, 0xe9, 0xae, 0xe0, 0xb5, 0xa7, 0x45, 0xbe, 0x6b, 0x78,
		0xad, 0x05, 0x56, 0x27, 0x9c, 0xa3, 0x1d, 0xf9, 0x2a, 0x7d, 0x31, 0x3a, 0x8a, 0x00, 0xd9, 0x5d,
		0x7c, 0x21, 0xfc, 0x39, 0xf0, 0x13, 0xbe, 0xc9, 0x86, 0xa0, 0x11, 0x08, 0x59, 0xc1, 0x1d, 0xdd,
		0x32, 0xea, 0xc7, 0xb9, 0xd9, 0xa0, 0x22, 0xa1, 0x22, 0xa1, 0x22, 0xa1, 0x22, 0xa1, 0x22, 0x53,
		0xaa, 0x22, 0x3f, 0x4f, 0x55, 0xe4, 0xbf, 0x7a, 0x23, 0xc7, 0x11, 0x96, 0xf7, 0xf6, 0x5d, 0xf1,
		0xc3, 0x87, 0x62, 0xf4, 0x17, 0x37, 0xe1, 0x5b, 0x66, 0x71, 0xdd, 0x5d, 0xf1, 0x5a, 0x34, 0x72,
		0x5f, 0x3c, 0x65, 0x46, 0xdb, 0xa6, 0x9a, 0x2d, 0x37, 0x9e, 0x82, 0x7a, 0x10, 0x9f, 0xa5, 0x7f,
		0x6c, 0x7a, 0x87, 0x8d, 0xdd, 0xd3, 0xc5, 0x93, 0x77, 0xe4, 0x89, 0x81, 0x78, 0x14, 0x9e, 0xf3,
		0xac, 0xdb, 0x96, 0xde, 0x7b, 0x08, 0x8a, 0xb3, 0xb0, 0x38, 0x71, 0x82, 0x82, 0x17, 0x0c, 0x5e,
		0x9c, 0xb4, 0x3b, 0x70, 0x6e, 0x64, 0x3b, 0xd4, 0xe5, 0x06, 0x1f, 0x2c, 0x9b, 0xaa, 0x6c, 0xc1,
		0x08, 0x53, 0xdc, 0x9a, 0xbb, 0xe0, 0x2a, 0x92, 0x38, 0xa6, 0x35, 0xae, 0xa0, 0x85, 0xe6, 0xe4,
		0xb3, 0x4c, 0xbf, 0xbb, 0x14, 0x77, 0x52, 0x62, 0x19, 0xe8, 0x04, 0x55, 0x22, 0x6e, 0xc6, 0xec,
		0x59, 0xba, 0x39, 0xb9, 0x89, 0x59, 0x67, 0x61, 0x23, 0x83, 0x80, 0xea, 0xd6, 0xa2, 0x82, 0x5b,
		0x0b, 0x36, 0xb6, 0x82, 0x5b, 0x8b, 0xfc, 0xd9, 0x61, 0xb8, 0xb5, 0x80, 0x4b, 0x06, 0x2e, 0x19,
		0xb8, 0x64, 0xe0, 0x92, 0x81, 0x4b, 0x86, 0xc1, 0x25, 0x83, 0x5b, 0x0b, 0x0d, 0xb7, 0x16, 0x50,
		0x91, 0x50, 0x91, 0x50, 0x91, 0x50, 0x91, 0x50, 0x91, 0xb8, 0xb5, 0xc8, 0x16, 0x5b, 0xce, 0xbf,
		0x8b, 0x98, 0xc2, 0x09, 0xa8, 0x29, 0xf6, 0x10, 0xc7, 0x28, 0xd7, 0xca, 0x27, 0xa6, 0xe9, 0x8a,
		0xb5, 0x27, 0x12, 0x70, 0xf5, 0x82, 0x5d, 0x90, 0xea, 0x87, 0x57, 0x25, 0xca, 0xc8, 0x12, 0xce,
		0x76, 0x96, 0xb0, 0x4c, 0x1a, 0xc6, 0x2b, 0x86, 0x59, 0xcc, 0x15, 0x96, 0x59, 0x3b, 0x8c, 0xa0,
		0x58, 0x90, 0x24, 0xce, 0x8c, 0x7c, 0xe1, 0xf4, 0x11, 0x58, 0xe4, 0x0b, 0x2b, 0x62, 0x93, 0x04,
		0xac, 0x51, 0x26, 0x3b, 0x9c, 0xad, 0x0c, 0x12, 0xd6, 0xff, 0x98, 0xc5, 0x93, 0x0c, 0x62, 0xac,
		0x9c, 0x98, 0x04, 0xa9, 0x31, 0x08, 0xd2, 0xeb, 0x30, 0x54, 0x80, 0xab, 0xc0, 0xd5, 0x4c, 0xe2,
		0xaa, 0xb4, 0x3a, 0x0c, 0xc6, 0xbd, 0x90, 0x5f, 0x7d, 0xc1, 0x90, 0x16, 0x31, 0x89, 0x62, 0x6e,
		0x28, 0xe6, 0x46, 0x0d, 0x11, 0xe4, 0x50, 0x91, 0x4e, 0x8f, 0x10, 0x5d, 0x31, 0xb7, 0x91, 0x69,
		0x79, 0xfb, 0x55, 0x82, 0x5a, 0x6e, 0x32, 0x0b, 0xae, 0xca, 0x69, 0xba, 0xb9, 0xf8, 0x8f, 0xc0,
		0x75, 0x2c, 0xb3, 0x29, 0xe7, 0xd2, 0xe0, 0x92, 0x9b, 0x74, 0x2e, 0x8d, 0x4f, 0xd5, 0x27, 0x72,
		0x59, 0xf6, 0x64, 0xf7, 0x8d, 0x24, 0x3a, 0x76, 0xf3, 0x5b, 0x6b, 0x3c, 0xd1, 0x6f, 0x6d, 0xf9,
		0xa0, 0x5a, 0xdd, 0xaf, 0x57, 0xab, 0xa5, 0xfa, 0x5e, 0xbd, 0x74, 0x58, 0xab, 0x95, 0xf7, 0xcb,
		0x35, 0xec, 0x36, 0x0b, 0x54, 0xcb, 0x1f, 0x2d, 0x4f, 0x95, 0x84, 0x03, 0xcf, 0xa9, 0xee, 0xc9,
		0x54, 0x43, 0xf3, 0xed, 0x77, 0xc6, 0x63, 0xc3, 0x10, 0x85, 0x21, 0x0a, 0x43, 0x74, 0x27, 0x0d,
		0x51, 0x61, 0x8d, 0x1e, 0x85, 0x33, 0xbe, 0x50, 0x22, 0xa8, 0x2c, 0x5c, 0x95, 0x38, 0x66, 0xc3,
		0x1a, 0x3d, 0xca, 0x3f, 0x0a, 0x1d, 0xfb, 0xca, 0x73, 0x4c, 0xeb, 0x9e, 0x26, 0xa8, 0xa1, 0xe4,
		0xaf, 0xf1, 0x55, 0xe7, 0xb8, 0xd3, 0x3c, 0xa1, 0x08, 0x2c, 0x28, 0xfb, 0xc3, 0x9f, 0xfe, 0x75,
		0x7e, 0x7c, 0xd6, 0x3c, 0x29, 0xa4, 0x3a, 0x7a, 0xa4, 0x63, 0x37, 0x83, 0xc3, 0x4a, 0xb0, 0xc6,
		0x93, 0xcf, 0x2f, 0x3d, 0xd3, 0x6a, 0x0c, 0xc1, 0xe3, 0xcd, 0x3b, 0xd2, 0x4a, 0xf9, 0x0e, 0xa2,
		0x48, 0x87, 0xbd, 0xf3, 0xd5, 0x24, 0x30, 0x74, 0xbe, 0x9a, 0xb0, 0x70, 0x60, 0xe1, 0xc0, 0xc2,
		0xd9, 0x4d, 0x0b, 0xe7, 0xab, 0x65, 0xea, 0x66, 0x9f, 0xc0, 0xb8, 0xa9, 0xc3, 0xd5, 0x46, 0xe5,
		0x8f, 0x81, 0xf3, 0x85, 0xd7, 0x3c, 0xd3, 0xf8, 0x5c, 0x6d, 0xfb, 0xf5, 0x7a, 0xbd, 0x02, 0xf7,
		0x1a, 0xa3, 0x81, 0xa8, 0xc1, 0xbd, 0xb6, 0x66, 0x13, 0xd1, 0x60, 0x13, 0xe6, 0x27, 0xcc, 0x4f,
		0x98, 0x9f, 0x68, 0xb0, 0xa9, 0xa1, 0xc1, 0xe6, 0xaa, 0x05, 0x41, 0x83, 0xcd, 0x54, 0xea, 0x6d,
		0x34, 0xd8, 0x84, 0xa6, 0x86, 0xa6, 0x86, 0xa6, 0x96, 0x2b, 0xb7, 0x68, 0xb0, 0x49, 0x8e, 0xfd,
		0x48, 0x9d, 0x8b, 0x95, 0x3a, 0x27, 0x2b, 0x31, 0x99, 0x25, 0x6d, 0x4e, 0x42, 0xc6, 0xb1, 0x9a,
		0x74, 0x0e, 0x29, 0x56, 0x85, 0x4c, 0x6b, 0x02, 0x49, 0x72, 0xaa, 0xad, 0x04, 0x24, 0x73, 0xa4,
		0x04, 0xbb, 0x77, 0x38, 0x49, 0x2e, 0x00, 0x12, 0x55, 0x70, 0xfa, 0x86, 0x71, 0xb3, 0xfd, 0xc3,
		0xb6, 0xe0, 0x31, 0xd1, 0x12, 0xa0, 0x68, 0xa1, 0x65, 0xba, 0xde, 0xb1, 0xe7, 0x25, 0xcb, 0x02,
		0x2a, 0x9c, 0x99, 0x56, 0x63, 0x20, 0xfc, 0x13, 0x95, 0xf0, 0x3a, 0xa1, 0x70, 0x66, 0x3c, 0xcd,
		0x8c, 0x24, 0x37, 0xe6, 0xb8, 0x70, 0xe1, 0xf4, 0x85, 0x23, 0xfa, 0x1f, 0xfd, 0x15, 0xb4, 0x46,
		0x83, 0x81, 0x8c, 0xa1, 0xae, 0x5d, 0xe1, 0x24, 0xba, 0xdf, 0x88, 0x2b, 0x08, 0x92, 0x2c, 0x35,
		0x3e, 0x0b, 0xad, 0x90, 0x28, 0x8b, 0x94, 0xdc, 0x26, 0x8b, 0x07, 0x1f, 0xdb, 0x1f, 0xfe, 0xed,
		0xde, 0xb1, 0xa5, 0x74, 0x24, 0x95, 0x0a, 0x0e, 0x69, 0x88, 0x21, 0x07, 0xb4, 0xfb, 0xbf, 0xdd,
		0xce, 0x6f, 0xbe, 0x7f, 0x9b, 0xfd, 0xe5, 0x86, 0x3b, 0x1c, 0x77, 0x67, 0x29, 0x77, 0x74, 0x8b,
		0x9d, 0xa4, 0xd9, 0xc1, 0xcd, 0x76, 0xee, 0xf5, 0x7d, 0xd8, 0x60, 0x0f, 0x0a, 0x56, 0x5f, 0x1f,
		0x3a, 0xf6, 0xd3, 0xf3, 0xc6, 0xab, 0x1f, 0x59, 0x51, 0xd1, 0x3b, 0x37, 0xdc, 0xe9, 0xed, 0xd2,
		0xd3, 0xb7, 0x66, 0x2e, 0x71, 0x18, 0xca, 0x2c, 0x13, 0x11, 0x5f, 0x87, 0xdb, 0x98, 0x1b, 0x71,
		0xe9, 0x46, 0x62, 0x5a, 0x91, 0x98, 0x3e, 0x2c, 0xd2, 0x84, 0xe0, 0x83, 0x2b, 0x3a, 0xfd, 0xdb,
		0x26, 0x6a, 0xc7, 0xed, 0x61, 0x9d, 0xac, 0x47, 0x75, 0xcc, 0xca, 0x0a, 0xb1, 0xc9, 0x77, 0x12,
		0xb2, 0x9d, 0x40, 0xa4, 0x65, 0x31, 0x69, 0x69, 0xcc, 0x59, 0x1a, 0x53, 0x4e, 0x26, 0xf2, 0x3c,
		0x26, 0x4e, 0xdc, 0x9a, 0x05, 0x85, 0xfe, 0x68, 0x38, 0x30, 0x7b, 0x86, 0x27, 0x74, 0x73, 0xa8,
		0xf7, 0x85, 0x27, 0x82, 0x28, 0x28, 0x3d, 0xa8, 0xb9, 0xf5, 0xd5, 0x18, 0xc4, 0xdf, 0xc6, 0x89,
		0x24, 0xbd, 0x36, 0x41, 0x5c, 0xca, 0x97, 0xc8, 0xc3, 0x95, 0xd8, 0xb3, 0x25, 0xc3, 0xa3, 0x25,
		0xe1, 0xb0, 0xc9, 0x76, 0x5f, 0x49, 0x77, 0x5b, 0x49, 0x77, 0x57, 0xc9, 0x39, 0x8c, 0x6a, 0xdc,
		0x14, 0x89, 0x7d, 0x51, 0x73, 0x55, 0x00, 0xca, 0xfb, 0x49, 0x04, 0x26, 0x3c, 0x3f, 0xfb, 0x09,
		0x86, 0x90, 0x13, 0x7a, 0x2c, 0xc1, 0x33, 0x27, 0x33, 0xb4, 0x58, 0x76, 0xd6, 0x3e, 0x59, 0x60,
		0xa9, 0xfc, 0x40, 0x52, 0x19, 0x01, 0x16, 0x32, 0x43, 0x81, 0xa3, 0xad, 0xd8, 0xaf, 0xd5, 0xf6,
		0x6a, 0xbb, 0xb7, 0x1d, 0x8a, 0x5c, 0xb7, 0x37, 0x5c, 0x3e, 0x9f, 0x18, 0xb6, 0xa5, 0xb0, 0x02,
		0x86, 0x9b, 0xd8, 0x28, 0x09, 0xc7, 0x89, 0x89, 0xe3, 0xa7, 0xe2, 0xce, 0x18, 0x0d, 0xbc, 0x44,
		0xd0, 0x57, 0x08, 0x84, 0x24, 0x9e, 0xe6, 0xba, 0x81, 0xcd, 0x04, 0x9b, 0x09, 0x36, 0xd3, 0x96,
		0x12, 0x73, 0x6b, 0xdb, 0x03, 0x91, 0xe8, 0x6a, 0x3d, 0x62, 0xf2, 0x65, 0xd6, 0x25, 0x10, 0x4f,
		0x9e, 0x63, 0xe8, 0x23, 0xcb, 0xf5, 0x12, 0x81, 0x5f, 0x30, 0x96, 0x23, 0xee, 0x84, 0x23, 0xac,
		0x5e, 0x2a, 0xec, 0xb6, 0x88, 0x22, 0x3a, 0xc6, 0x9d, 0xa7, 0x9b, 0xc2, 0xbb, 0xd3, 0x6f, 0x85,
		0xeb, 0x06, 0xf2, 0x39, 0xf6, 0x0e, 0xea, 0x86, 0x33, 0xd4, 0xad, 0xbe, 0x5e, 0xde, 0xfb, 0x62,
		0x5d, 0x7e, 0x3a, 0xd1, 0xea, 0xd5, 0xbd, 0xca, 0x91, 0xf6, 0xf1, 0xd7, 0xb6, 0x76, 0xd6, 0x6e,
		0x5d, 0xe9, 0x1f, 0x0d, 0x57, 0xf4, 0xb5, 0x86, 0xf7, 0x20, 0x1c, 0x4b, 0x78, 0xda, 0xef, 0xed,
		0xf3, 0x94, 0x87, 0x02, 0x4c, 0x97, 0x3f, 0x4b, 0xd1, 0x00, 0x32, 0xf7, 0x07, 0x66, 0x11, 0x81,
		0x59, 0x64, 0x0e, 0xf5, 0x47, 0xfb, 0xd6, 0x1c, 0x98, 0xde, 0xb3, 0xee, 0x3d, 0x38, 0xc2, 0x7d,
		0xb0, 0x07, 0xfd, 0xe4, 0x56, 0xd2, 0xea, 0x61, 0x61, 0x7c, 0xc0, 0xf8, 0x80, 0xf1, 0x01, 0x87,
		0x0d, 0x1c, 0x36, 0x70, 0xd8, 0xc0, 0x61, 0x03, 0xcb, 0xe4, 0xa7, 0x8b, 0x6c, 0xf5, 0x75, 0x77,
		0x34, 0x1c, 0x3a, 0xc2, 0x75, 0x93, 0x04, 0x65, 0xcd, 0x86, 0x0d, 0xcc, 0x8e, 0x07, 0x07, 0x0e,
		0x6c, 0x28, 0xd8, 0x50, 0x70, 0xe0, 0x30, 0x39, 0x70, 0x10, 0xd7, 0xf8, 0x4a, 0x14, 0xdc, 0x24,
		0xaa, 0xab, 0x18, 0x2b, 0x52, 0x46, 0x93, 0x1e, 0x13, 0x77, 0xde, 0x6f, 0xfb, 0x8f, 0xd3, 0x0d,
		0x91, 0x8f, 0x2a, 0xa6, 0x71, 0xab, 0x90, 0xbf, 0x38, 0xad, 0x5f, 0x12, 0xb5, 0x7a, 0x49, 0x1c,
		0x80, 0x54, 0x41, 0x00, 0x92, 0x52, 0x35, 0x80, 0x00, 0xa4, 0x24, 0x6a, 0x03, 0x01, 0x48, 0xb0,
		0xc5, 0x60, 0x8b, 0xc1, 0x9f, 0x05, 0x7f, 0x16, 0xfc, 0x59, 0xf0, 0x67, 0xc1, 0x9f, 0x95, 0xc8,
		0x9f, 0x85, 0x00, 0x24, 0xf8, 0xaf, 0x60, 0x33, 0xc1, 0x66, 0xca, 0xa6, 0xff, 0x0a, 0x01, 0x48,
		0x6b, 0x28, 0x22, 0x02, 0x90, 0xd2, 0x02, 0x15, 0x2b, 0x21, 0x03, 0x01, 0x48, 0x08, 0x40, 0x42,
		0x00, 0x12, 0x8c, 0x0f, 0x18, 0x1f, 0x70, 0xd8, 0xc0, 0x61, 0x03, 0x87, 0x0d, 0x1c, 0x36, 0xb0,
		0x4c, 0x36, 0x5c, 0x64, 0x04, 0x20, 0xc1, 0x81, 0x03, 0x1b, 0x0a, 0x36, 0x14, 0x02, 0x90, 0xe4,
		0x2f, 0x71, 0x9a, 0x03, 0x90, 0xe2, 0x56, 0x3e, 0xa6, 0x89, 0x3f, 0x8a, 0x51, 0xda, 0x18, 0x25,
		0xd5, 0xb6, 0x2c, 0x11, 0x46, 0xb6, 0x7b, 0x9c, 0x05, 0xd5, 0xb6, 0x0b, 0x0f, 0x8b, 0x15, 0x16,
		0x16, 0xbb, 0x94, 0x5a, 0x85, 0xa7, 0x94, 0xda, 0xf6, 0x45, 0x9d, 0xf3, 0x53, 0x4d, 0x6d, 0xeb,
		0xa2, 0xcb, 0x8a, 0x0b, 0xaa, 0x19, 0xd6, 0x73, 0xcf, 0x70, 0x3d, 0xfd, 0xde, 0xf0, 0xc4, 0x37,
		0xe3, 0x59, 0x7f, 0x34, 0x7a, 0xf1, 0x63, 0x1b, 0x57, 0x0d, 0x16, 0x2f, 0xd2, 0xb1, 0x84, 0x52,
		0x6b, 0xac, 0x76, 0xe7, 0x4e, 0x45, 0x3a, 0xc6, 0xb6, 0x27, 0x25, 0x75, 0xf6, 0x4a, 0xd2, 0xc1,
		0x2b, 0x71, 0xa7, 0x2e, 0x92, 0x8e, 0x5c, 0x37, 0x71, 0x3e, 0x88, 0x8c, 0x0e, 0x5b, 0x44, 0x9d,
		0xb4, 0x6e, 0x52, 0x10, 0x67, 0x7e, 0x37, 0xb0, 0xed, 0xbe, 0x3e, 0xb2, 0xfe, 0xb6, 0xec, 0x6f,
		0x96, 0x3e, 0xb2, 0xcc, 0x00, 0x5a, 0xdd, 0x51, 0x6c, 0x4f, 0x48, 0x24, 0xbd, 0xaf, 0x8e, 0xbc,
		0x6d, 0xe4, 0x70, 0x02, 0x5f, 0x48, 0x1c, 0x1f, 0xc8, 0x0d, 0x74, 0x0a, 0x74, 0x4a, 0xee, 0x74,
		0x4a, 0x7c, 0xdf, 0x44, 0x4c, 0x9f, 0x04, 0x0d, 0x6c, 0x05, 0xaa, 0xf1, 0xde, 0xb4, 0xee, 0x75,
		0xcf, 0x7c, 0x4c, 0x90, 0x27, 0xb3, 0x30, 0xce, 0x6e, 0x1c, 0xf9, 0xf8, 0xed, 0x70, 0xf2, 0x7f,
		0xea, 0x63, 0xb7, 0xb3, 0x49, 0xfb, 0xc1, 0x8f, 0x7d, 0xb1, 0x9b, 0xe0, 0x42, 0x37, 0xe1, 0x45,
		0x6e, 0xb2, 0xa6, 0x2a, 0xc9, 0xdd, 0xed, 0x92, 0x2e, 0x6c, 0xa5, 0xdf, 0x0c, 0xca, 0xbb, 0x11,
		0x7c, 0x49, 0xd6, 0x6d, 0x46, 0xde, 0x12, 0x4b, 0xb8, 0x88, 0x4d, 0xf3, 0x32, 0x33, 0x79, 0xf1,
		0x6f, 0x52, 0xa2, 0x99, 0x07, 0xc2, 0x70, 0x2c, 0xd3, 0xba, 0x4f, 0xa6, 0x97, 0xa3, 0x51, 0xa0,
		0x95, 0xa1, 0x95, 0x73, 0xaa, 0x95, 0x73, 0x63, 0x8e, 0x3f, 0x99, 0x8f, 0xa3, 0x47, 0x7d, 0xd2,
		0xa5, 0x28, 0xc1, 0xb9, 0x9f, 0x1f, 0x08, 0x47, 0x1f, 0x47, 0x1f, 0x06, 0x39, 0x0c, 0x72, 0x18,
		0xe4, 0x30, 0xc8, 0x61, 0x90, 0x6f, 0xf9, 0x97, 0xd9, 0x0b, 0xe5, 0xd8, 0x36, 0x1a, 0x47, 0x6e,
		0x1c, 0xc7, 0x16, 0xd1, 0x37, 0x1b, 0x44, 0x71, 0xbc, 0x49, 0xb0, 0x35, 0x71, 0x52, 0xe9, 0x0a,
		0xdf, 0x1e, 0xc4, 0xe6, 0x57, 0x5c, 0x31, 0x62, 0x2e, 0xa2, 0x86, 0xc1, 0xde, 0xf3, 0x50, 0x68,
		0xff, 0xd2, 0x7e, 0xf1, 0xb5, 0xb3, 0xa9, 0xfb, 0x3f, 0xb9, 0x47, 0xad, 0xca, 0xef, 0x57, 0xcd,
		0x5f, 0xbe, 0x58, 0xb6, 0xa3, 0xbd, 0xf2, 0x77, 0xed, 0x4a, 0x7b, 0xa3, 0xbf, 0x6b, 0xed, 0x6d,
		0xf0, 0x67, 0xa7, 0x8d, 0x4f, 0xc7, 0xd7, 0xad, 0x4e, 0xb7, 0x79, 0x7e, 0xd5, 0x39, 0x3e, 0x3f,
		0x69, 0xfc, 0xc2, 0x1c, 0x0e, 0x12, 0xac, 0xb9, 0xca, 0x60, 0x90, 0x6c, 0x6c, 0x0a, 0x09, 0xe9,
		0x38, 0x15, 0x6e, 0xcf, 0x31, 0x87, 0x5e, 0xa2, 0x5b, 0xca, 0x96, 0xf1, 0x2c, 0x1c, 0xad, 0xa2,
		0x8d, 0x3f, 0xce, 0xc8, 0x09, 0x60, 0x50, 0x1b, 0x1a, 0x8e, 0xf1, 0x28, 0x3c, 0xe1, 0xb8, 0x9a,
		0x69, 0xf5, 0x06, 0xa3, 0xbe, 0xe8, 0x6b, 0xfe, 0x56, 0x7f, 0xb1, 0x0c, 0x2d, 0x04, 0x2e, 0x6d,
		0x02, 0x5c, 0x9a, 0xe9, 0x6a, 0x86, 0x36, 0x19, 0x27, 0x7a, 0xd5, 0x76, 0x34, 0xe3, 0x8b, 0xd5,
		0xb3, 0x1f, 0x6f, 0x4d, 0x4b, 0xf4, 0x35, 0x7f, 0xe9, 0xa2, 0x5f, 0x6e, 0x2b, 0x31, 0x09, 0x8c,
		0xfc, 0x59, 0x61, 0xed, 0xcf, 0x2c, 0x58, 0x0c, 0xdb, 0x51, 0x86, 0x85, 0x3f, 0x27, 0xbb, 0x6a,
		0xd6, 0x5e, 0xad, 0x4a, 0x7e, 0x93, 0xcc, 0x64, 0x78, 0x4d, 0x6f, 0x6c, 0xa9, 0xca, 0xe5, 0xab,
		0xf0, 0xc2, 0x46, 0xc1, 0x8b, 0xf2, 0x94, 0xf6, 0xcf, 0xb7, 0x73, 0xfd, 0x72, 0xff, 0x64, 0x21,
		0x0b, 0x41, 0xc9, 0xaf, 0xe8, 0x53, 0xe9, 0x43, 0x7b, 0x60, 0xf6, 0x36, 0xf1, 0x6a, 0x4c, 0xf3,
		0x51, 0xd7, 0x0c, 0xf0, 0xca, 0xe6, 0x6d, 0x16, 0x70, 0xb9, 0xb1, 0xb7, 0x62, 0x1b, 0xef, 0x44,
		0x3c, 0x6f, 0xc4, 0xb6, 0xc0, 0x14, 0xdb, 0xdb, 0x10, 0x1b, 0x7b, 0x62, 0x7b, 0x13, 0x92, 0x99,
		0x6f, 0x9b, 0x06, 0x48, 0x16, 0x8c, 0xe1, 0x70, 0xf0, 0x3c, 0x16, 0x90, 0x18, 0xcd, 0x91, 0xe7,
		0xde, 0x9d, 0x8f, 0x06, 0xc9, 0xce, 0xd0, 0x1e, 0xec, 0x64, 0x48, 0x6f, 0xf0, 0xc1, 0xd1, 0x20,
		0x59, 0x9e, 0xe8, 0xa6, 0xc6, 0xbb, 0xbb, 0xa5, 0x48, 0xef, 0x8e, 0x6b, 0x77, 0x3b, 0x91, 0xe7,
		0xf1, 0xeb, 0xc6, 0xaf, 0x4f, 0x3a, 0x0e, 0x4f, 0xd4, 0xc5, 0xd3, 0xd0, 0x76, 0xbc, 0x6d, 0x21,
		0x7d, 0xad, 0xfc, 0xac, 0x1e, 0x56, 0x65, 0x3a, 0xe9, 0x65, 0xe3, 0xff, 0x35, 0x4e, 0x3a, 0xdd,
		0xcb, 0x8b, 0xeb, 0x4e, 0x03, 0x59, 0xa5, 0xfc, 0xb8, 0x20, 0x0b, 0x1f, 0xa4, 0xe3, 0x84, 0x74,
		0xbc, 0x90, 0x8b, 0x1b, 0x09, 0x7d, 0xbf, 0xca, 0xb3, 0x4a, 0x27, 0x48, 0x30, 0x86, 0x80, 0xc0,
		0xd5, 0x22, 0x23, 0xc3, 0xb4, 0x9a, 0x60, 0x8c, 0x86, 0x35, 0x7a, 0x4c, 0x2e, 0x7f, 0x1d, 0xfb,
		0xca, 0x73, 0xe2, 0x44, 0x8b, 0xac, 0x1c, 0xad, 0xe4, 0xaf, 0xd5, 0xf1, 0xc9, 0x49, 0xa3, 0x3d,
		0xc1, 0x28, 0x09, 0xc5, 0x27, 0xca, 0xfe, 0xa0, 0xc9, 0x81, 0x2f, 0xa1, 0x30, 0xcd, 0xac, 0x58,
		0x33, 0x38, 0x0c, 0x12, 0x96, 0x6b, 0x6e, 0xa5, 0xa4, 0xd4, 0xac, 0x98, 0x5f, 0xa7, 0x23, 0xad,
		0xac, 0xa8, 0xda, 0xc4, 0x4b, 0x8a, 0xab, 0x4d, 0x4c, 0xce, 0xb2, 0xf9, 0x48, 0x62, 0x2c, 0xcc,
		0x0f, 0x0b, 0x63, 0x01, 0xc6, 0x02, 0x8c, 0x05, 0x18, 0x0b, 0x30, 0x16, 0x60, 0x2c, 0xc0, 0x58,
		0xc8, 0x9e, 0xb1, 0x20, 0xd9, 0xa3, 0x20, 0xc5, 0x93, 0x00, 0xed, 0x0a, 0xed, 0xba, 0xbb, 0xda,
		0x75, 0x20, 0x8c, 0x3b, 0x47, 0xdc, 0xc9, 0xd0, 0xa8, 0xf5, 0x04, 0x63, 0xb4, 0xa3, 0x6b, 0xdb,
		0xf1, 0x46, 0x1c, 0x39, 0xf6, 0xc8, 0x33, 0xad, 0xfb, 0xf0, 0x6c, 0x47, 0x2f, 0x87, 0x46, 0x40,
		0x5f, 0xdc, 0x99, 0x96, 0xe9, 0x99, 0xb6, 0xe5, 0xae, 0xff, 0x55, 0xf4, 0x9b, 0xe0, 0x7a, 0x96,
		0x75, 0x7f, 0x5a, 0xa6, 0xeb, 0x1d, 0x7b, 0x9e, 0x93, 0x6c, 0x8f, 0xce, 0x4c, 0xab, 0x31, 0x10,
		0xbe, 0x88, 0x26, 0x8c, 0x38, 0x2c, 0x9c, 0x19, 0x4f, 0x33, 0x23, 0x95, 0x0f, 0xaa, 0xd5, 0xfd,
		0x7a, 0xb5, 0x5a, 0xaa, 0xef, 0xd5, 0x4b, 0x87, 0xb5, 0x5a, 0x79, 0xbf, 0x9c, 0x20, 0x3e, 0xb2,
		0x70, 0xe1, 0xf4, 0x85, 0x23, 0xfa, 0x1f, 0x9f, 0x93, 0x83, 0x46, 0x14, 0x50, 0xec, 0x0a, 0x27,
		0x29, 0x5e, 0x48, 0x2c, 0x29, 0x3e, 0x0b, 0x66, 0xf6, 0xf8, 0xd3, 0xea, 0xb7, 0xcf, 0x32, 0x0c,
		0x2c, 0x8a, 0x5a, 0xe2, 0x73, 0xc0, 0x16, 0xac, 0xa4, 0x2a, 0x4b, 0x44, 0x86, 0x50, 0x5d, 0xfb,
		0x1f, 0x60, 0xbc, 0x34, 0x69, 0xae, 0x06, 0x2e, 0xd7, 0xfb, 0x21, 0xc5, 0xeb, 0x01, 0xc3, 0x06,
		0x86, 0x0d, 0x0c, 0x1b, 0x18, 0x36, 0x30, 0x6c, 0x60, 0xd8, 0xc0, 0xb0, 0x81, 0x61, 0xb3, 0x53,
		0x95, 0x71, 0xd7, 0xc4, 0xad, 0x16, 0x67, 0xe3, 0x0c, 0xd3, 0xd0, 0xb2, 0xbb, 0xe9, 0x3f, 0xe7,
		0xe4, 0xa7, 0x76, 0xf8, 0x94, 0xdd, 0x63, 0xff, 0x29, 0x83, 0x9f, 0xd0, 0xc8, 0x3b, 0x93, 0x8d,
		0xbc, 0x11, 0x28, 0x27, 0xd5, 0x18, 0x45, 0xa0, 0x1c, 0xee, 0xbe, 0x41, 0x62, 0x41, 0x62, 0x77,
		0x8d, 0xc4, 0xe2, 0xee, 0x7b, 0xa3, 0xd1, 0x70, 0xf7, 0xbd, 0xdd, 0xd1, 0xc2, 0xdd, 0xb7, 0x02,
		0x17, 0x31, 0x02, 0xe5, 0x60, 0x2c, 0xc0, 0x58, 0x80, 0xb1, 0x00, 0x63, 0x01, 0xc6, 0x02, 0x8c,
		0x05, 0x18, 0x0b, 0x3f, 0x5d, 0x22, 0x04, 0xca, 0x41, 0xbb, 0x42, 0xbb, 0xa6, 0x49, 0xbb, 0xe2,
		0x3e, 0x99, 0x62, 0x7f, 0x70, 0x9f, 0x9c, 0x4c, 0x2a, 0x71, 0x9f, 0x2c, 0x0b, 0xd8, 0x70, 0x9f,
		0x8c, 0x40, 0x39, 0x18, 0x36, 0x30, 0x6c, 0x60, 0xd8, 0xc0, 0xb0, 0x81, 0x61, 0x03, 0xc3, 0x06,
		0x86, 0xcd, 0x0e, 0x1b, 0x36, 0x08, 0x94, 0x9b, 0x0f, 0x94, 0x53, 0xdf, 0x5a, 0xfe, 0xf5, 0x38,
		0x39, 0x34, 0x9c, 0x27, 0xd8, 0x79, 0x25, 0x05, 0xcc, 0x5f, 0xdd, 0x6b, 0xce, 0xf6, 0xf4, 0x21,
		0xc3, 0x88, 0xe7, 0x90, 0x5d, 0xe4, 0x29, 0x71, 0xfc, 0xb0, 0x69, 0x2f, 0x73, 0xb9, 0x65, 0xd7,
		0xd5, 0xfc, 0x94, 0xb9, 0xdc, 0xae, 0xab, 0x2a, 0xca, 0x5c, 0xd2, 0x33, 0x6a, 0x34, 0x12, 0x96,
		0x6c, 0x54, 0x66, 0xa1, 0x91, 0x70, 0xec, 0xe8, 0xdd, 0x10, 0x8c, 0x7d, 0x9e, 0x29, 0x74, 0xcf,
		0x70, 0xee, 0x85, 0x27, 0xed, 0xa6, 0x6d, 0x6e, 0x50, 0xb8, 0xa5, 0x12, 0x1c, 0x2a, 0xb8, 0xa5,
		0xe2, 0x1d, 0xba, 0xac, 0xbb, 0xa5, 0x46, 0x56, 0xbc, 0xde, 0x0e, 0x4b, 0xba, 0xe7, 0x30, 0xc1,
		0x18, 0xe1, 0xc7, 0xf9, 0x9c, 0x68, 0x3f, 0x25, 0x78, 0x1f, 0xa2, 0x1e, 0x8b, 0xf7, 0x43, 0x5d,
		0x3c, 0x79, 0x7a, 0xcf, 0x7e, 0x7c, 0x1c, 0x59, 0xa6, 0x97, 0x38, 0xca, 0x47, 0xe6, 0x6a, 0xc9,
		0x5d, 0x35, 0x79, 0xab, 0xb7, 0xb4, 0x8a, 0xee, 0x38, 0x9a, 0xe8, 0xbd, 0xbc, 0x91, 0x27, 0xab,
		0x77, 0x20, 0x71, 0xcc, 0xb6, 0xe1, 0x79, 0xc2, 0xb1, 0xa4, 0x2d, 0x64, 0x34, 0xf0, 0xdb, 0xfd,
		0x5a, 0x6d, 0xef, 0x73, 0x49, 0xaf, 0xdd, 0xfc, 0xd8, 0xaf, 0xd5, 0x3e, 0x97, 0xf4, 0xca, 0xcd,
		0xe7, 0x92, 0x7e, 0xe8, 0xff, 0xf4, 0xb9, 0xa4, 0x57, 0xc7, 0x3f, 0x7c, 0xaf, 0xbc, 0xfc, 0xd8,
		0x9f, 0xf9, 0x71, 0xef, 0xe5, 0xc7, 0xe7, 0xb2, 0x5e, 0x0b, 0x7f, 0xaa, 0x06, 0x3f, 0x1d, 0x86,
		0x3f, 0x95, 0xdf, 0xfb, 0xbf, 0xf5, 0xbf, 0x7d, 0x77, 0xf4, 0xb6, 0x5a, 0x39, 0xac, 0x1e, 0xee,
		0xd7, 0x2b, 0x87, 0xe3, 0x19, 0x26, 0x3f, 0x7e, 0x2e, 0xe9, 0x07, 0xe1, 0x34, 0xe1, 0x4b, 0x9f,
		0x4b, 0x7a, 0x79, 0x3a, 0xd7, 0xf8, 0xc5, 0xcf, 0x25, 0x7d, 0x7f, 0x3a, 0x61, 0xf0, 0x5a, 0x30,
		0x4c, 0x34, 0xab, 0xff, 0xd2, 0x74, 0xa8, 0xef, 0xb5, 0xe0, 0x95, 0xcf, 0x25, 0x7d, 0x2f, 0x7c,
		0x61, 0xdf, 0x7f, 0x61, 0xe6, 0x0f, 0xea, 0x2f, 0x3f, 0xaa, 0x33, 0x13, 0x1d, 0x04, 0xcf, 0x3d,
		0xf9, 0xe3, 0xc3, 0x85, 0x4f, 0x71, 0x30, 0xf9, 0x14, 0x05, 0x69, 0x0b, 0x7e, 0x23, 0x53, 0x20,
		0x2e, 0xae, 0x9a, 0x7f, 0x92, 0x49, 0xc5, 0x7f, 0x20, 0x16, 0xaf, 0x89, 0xc5, 0x3f, 0x24, 0xca,
		0x85, 0x94, 0x91, 0x5e, 0xde, 0x03, 0x62, 0xd3, 0x09, 0xb1, 0x6f, 0xc7, 0x32, 0x3d, 0x95, 0xa3,
		0x1f, 0xe5, 0xe0, 0xcb, 0xf8, 0xfb, 0xca, 0xf4, 0x04, 0xfd, 0xa8, 0xd4, 0x02, 0x51, 0x7e, 0xf7,
		0xe5, 0xcb, 0x87, 0x77, 0xdf, 0xf7, 0x5e, 0xb6, 0x7f, 0xe3, 0x11, 0xe5, 0xc1, 0xdd, 0x4d, 0x24,
		0xcc, 0xcb, 0xee, 0x01, 0xb0, 0x00, 0x58, 0x1b, 0x02, 0x56, 0x1e, 0xf4, 0x33, 0x90, 0x50, 0x3a,
		0x12, 0x42, 0x2c, 0x00, 0xb1, 0x80, 0x58, 0x29, 0x03, 0x07, 0x2e, 0xe1, 0x2f, 0x5f, 0x42, 0xa7,
		0xf0, 0x11, 0xe8, 0x16, 0x58, 0xf8, 0x0a, 0xc4, 0x85, 0x94, 0x80, 0x94, 0x03, 0x80, 0x59, 0x00,
		0x18, 0x1c, 0x3d, 0x47, 0x38, 0x09, 0xca, 0x0e, 0x38, 0xdb, 0x6d, 0x38, 0x03, 0x55, 0x03, 0x4e,
		0xbe, 0x8e, 0x93, 0x90, 0x12, 0x00, 0x30, 0x00, 0x58, 0x2a, 0x00, 0xdb, 0x8e, 0x79, 0x6f, 0x5a,
		0xa0, 0x6a, 0x20, 0xf4, 0x3f, 0x03, 0x60, 0x48, 0x09, 0x08, 0x3d, 0x00, 0x98, 0x14, 0x80, 0x41,
		0xe8, 0x73, 0x84, 0x93, 0x20, 0xf4, 0x80, 0xb3, 0xdd, 0x86, 0x33, 0x50, 0x35, 0xe0, 0xe4, 0xeb,
		0x38, 0x09, 0x29, 0x01, 0x00, 0x03, 0x80, 0xa5, 0x0c, 0xdc, 0xb3, 0x07, 0xb6, 0x73, 0x14, 0x88,
		0xef, 0xf7, 0xca, 0x0b, 0x38, 0x77, 0x66, 0x31, 0x32, 0x8f, 0x1b, 0x09, 0x18, 0x03, 0x8c, 0x6d,
		0x36, 0xf0, 0xc0, 0xb4, 0xfe, 0xd6, 0x6f, 0x0d, 0xab, 0xff, 0xcd, 0xec, 0x7b, 0x0f, 0xf0, 0x38,
		0xbd, 0x7a, 0xb4, 0xde, 0xfe, 0xfd, 0xe3, 0xdf, 0x3f, 0xce, 0x7e, 0xfc, 0xfa, 0xee, 0xff, 0xb7,
		0x93, 0x68, 0xc9, 0x28, 0x2f, 0xff, 0xc8, 0x99, 0xbc, 0xa4, 0x0f, 0x94, 0xdf, 0xa8, 0x7d, 0x8e,
		0x84, 0x4a, 0x41, 0x62, 0xaa, 0xac, 0xb0, 0x46, 0x8f, 0xc2, 0x19, 0x17, 0xd9, 0x91, 0x98, 0x1f,
		0x5b, 0x95, 0x30, 0x96, 0x94, 0xaa, 0xf8, 0xd1, 0x68, 0x52, 0xab, 0xe3, 0x47, 0xa3, 0x8e, 0xab,
		0xe4, 0x5f, 0x77, 0x2e, 0x0a, 0x69, 0x32, 0x16, 0x24, 0x16, 0xb6, 0x8f, 0x86, 0x0c, 0x3e, 0xe4,
		0x91, 0x56, 0x4a, 0xc9, 0xf9, 0x7b, 0x51, 0x54, 0xaa, 0xed, 0x06, 0xe5, 0x11, 0x39, 0xca, 0x23,
		0x5a, 0xa3, 0xc1, 0x40, 0x62, 0x51, 0xbc, 0x3b, 0x63, 0xe0, 0x0a, 0xd6, 0x9d, 0x13, 0x4f, 0x9e,
		0x63, 0xe8, 0x23, 0xcb, 0xf5, 0x8c, 0xdb, 0x41, 0xc2, 0x5a, 0x0f, 0x8e, 0xb8, 0x13, 0x8e, 0xb0,
		0x7a, 0xa9, 0xaa, 0xb1, 0x70, 0xf9, 0xe9, 0x44, 0xab, 0x57, 0xf7, 0x2a, 0x47, 0xda, 0xc7, 0x5f,
		0xdb, 0xda, 0x59, 0xbb, 0x75, 0xa5, 0x7f, 0x34, 0x5c, 0xd1, 0xd7, 0x1a, 0xde, 0x83, 0x70, 0x2c,
		0xe1, 0x69, 0xbf, 0xb7, 0xcf, 0xb5, 0xa1, 0x71, 0x2f, 0xf4, 0xf2, 0xa1, 0x0c, 0xd5, 0x22, 0xb1,
		0x4c, 0xa5, 0xb6, 0x50, 0xe0, 0x64, 0xba, 0xc0, 0x92, 0xf0, 0x97, 0xa2, 0x5a, 0xa5, 0xb6, 0x58,
		0xf3, 0x64, 0xbb, 0x1d, 0xd8, 0x35, 0xc4, 0xe5, 0x2c, 0xd3, 0x2d, 0xb7, 0x36, 0xd2, 0xaa, 0x41,
		0x51, 0x1b, 0x09, 0xb5, 0x91, 0xe2, 0xe2, 0x04, 0x6a, 0x23, 0x25, 0x65, 0x33, 0xa8, 0x8d, 0xc4,
		0xb4, 0x5a, 0x72, 0x57, 0x0d, 0xbe, 0x53, 0xd4, 0x46, 0xc2, 0x85, 0x12, 0xa3, 0x8b, 0x14, 0x62,
		0x81, 0xeb, 0x29, 0x40, 0xac, 0x24, 0x88, 0x45, 0x98, 0x66, 0x96, 0x91, 0x10, 0x71, 0x99, 0x00,
		0xac, 0x1d, 0x03, 0x2c, 0x84, 0xd8, 0x01, 0x09, 0x57, 0x20, 0x21, 0xc4, 0x02, 0x10, 0x0b, 0x88,
		0x95, 0x32, 0x30, 0xaa, 0xde, 0x80, 0x85, 0xbf, 0x8e, 0xb8, 0x90, 0x12, 0x90, 0x72, 0x00, 0x30,
		0x6a, 0x23, 0xc1, 0x32, 0xdd, 0x0e, 0x27, 0x41, 0xd9, 0x01, 0x67, 0xbb, 0x0d, 0x67, 0xa0, 0x6a,
		0xc0, 0xc9, 0xd7, 0x71, 0x12, 0x52, 0x02, 0x00, 0x06, 0x00, 0x4b, 0x05, 0x60, 0x54, 0xbd, 0x01,
		0xa1, 0x7f, 0x1d, 0x80, 0x21, 0x25, 0x20, 0xf4, 0x00, 0x60, 0x52, 0x00, 0x06, 0xa1, 0xcf, 0x11,
		0x4e, 0x82, 0xd0, 0x03, 0xce, 0x76, 0x1b, 0xce, 0x40, 0xd5, 0x80, 0x93, 0xaf, 0xe3, 0x24, 0xa4,
		0x04, 0x00, 0x0c, 0x00, 0x96, 0x32, 0x30, 0x6a, 0x23, 0xe5, 0x04, 0x23, 0x51, 0x1b, 0x09, 0x30,
		0x86, 0xda, 0x48, 0xa8, 0x8d, 0x84, 0xda, 0x48, 0x9b, 0xa0, 0x25, 0x6a, 0x23, 0xa1, 0x36, 0x92,
		0xac, 0xe7, 0x40, 0x6d, 0xa4, 0x0d, 0xc6, 0x42, 0x6d, 0xa4, 0x04, 0x1f, 0x16, 0xb5, 0x91, 0x68,
		0xde, 0x8d, 0xda, 0x48, 0xa8, 0x8d, 0xb4, 0xc9, 0x13, 0xa0, 0x36, 0x12, 0x6a, 0x23, 0xa1, 0x36,
		0x92, 0x42, 0xc4, 0x7d, 0x43, 0xfb, 0x8e, 0x2d, 0x71, 0xa1, 0x70, 0x6c, 0x59, 0xb6, 0x37, 0x36,
		0xb3, 0xe2, 0x48, 0x70, 0xc1, 0xed, 0x3d, 0x88, 0x47, 0x63, 0x68, 0x78, 0x0f, 0xfe, 0xd6, 0x17,
		0xed, 0xa1, 0xb0, 0x7a, 0x41, 0xe5, 0x22, 0xdd, 0x12, 0xde, 0x37, 0xdb, 0xf9, 0x5b, 0x37, 0x7d,
		0xac, 0xb1, 0x7a, 0xa2, 0xb8, 0xf8, 0x82, 0xbb, 0xf4, 0x4a, 0xd1, 0xb4, 0x3c, 0xe1, 0x44, 0x3f,
		0xea, 0x43, 0x7b, 0x60, 0xf6, 0x4c, 0xe1, 0x16, 0xc3, 0xb2, 0x4c, 0xe2, 0x29, 0xf8, 0x12, 0xbc,
		0xfc, 0x5c, 0x1c, 0xcf, 0x13, 0xe3, 0x68, 0x14, 0x5c, 0xcf, 0x19, 0xf5, 0x3c, 0x2b, 0x44, 0x8c,
		0x8b, 0xe8, 0x99, 0xcf, 0xc7, 0xcf, 0xd3, 0x0c, 0xe7, 0xef, 0x2e, 0xfc, 0xec, 0x2e, 0xbe, 0xd0,
		0x6d, 0xfa, 0xcf, 0x3b, 0xf9, 0xa9, 0x1d, 0x3e, 0x6d, 0xb7, 0x19, 0x3c, 0x6d, 0x23, 0x78, 0xd8,
		0xe0, 0xc5, 0xe7, 0x6e, 0x58, 0xcd, 0xe9, 0x0d, 0xcd, 0xc6, 0x6f, 0xb1, 0xe9, 0x05, 0xd7, 0x33,
		0xbc, 0xed, 0xd1, 0x6a, 0xc6, 0x39, 0xe3, 0xbf, 0x7d, 0x4b, 0x21, 0x9b, 0x58, 0xdf, 0x5b, 0xbe,
		0x2d, 0x2a, 0x81, 0x55, 0xd9, 0xf2, 0x8d, 0x09, 0x4a, 0x5f, 0x49, 0x28, 0x79, 0x95, 0x54, 0x23,
		0x48, 0x2b, 0x71, 0x25, 0x0d, 0xee, 0xe5, 0x94, 0xb4, 0xa2, 0x05, 0xb2, 0x53, 0x33, 0x9e, 0x35,
		0x5a, 0x08, 0x41, 0x45, 0x6e, 0x1d, 0xb9, 0x55, 0x83, 0xa2, 0x8e, 0x1c, 0xea, 0xc8, 0xb1, 0x1f,
		0xba, 0x64, 0x76, 0x0e, 0xea, 0xc8, 0x69, 0xa8, 0x23, 0xa7, 0x74, 0xd5, 0xe4, 0xad, 0xde, 0x0a,
		0x53, 0x06, 0x75, 0xe4, 0x70, 0xb1, 0x84, 0xcb, 0xf7, 0xb9, 0xd1, 0x51, 0x47, 0x0e, 0x57, 0xf9,
		0x80, 0x58, 0x59, 0x10, 0x8b, 0x90, 0xf6, 0x2c, 0x23, 0x21, 0x62, 0xd8, 0x01, 0x58, 0x3b, 0x06,
		0x58, 0x08, 0x47, 0x06, 0x12, 0xae, 0x40, 0x42, 0x88, 0x05, 0x20, 0x16, 0x10, 0x2b, 0x65, 0x60,
		0x54, 0x08, 0x03, 0x0b, 0x7f, 0x1d, 0x71, 0x21, 0x25, 0x20, 0xe5, 0x00, 0x60, 0xd4, 0x91, 0x83,
		0x65, 0xba, 0x1d, 0x4e, 0x82, 0xb2, 0x03, 0xce, 0x76, 0x1b, 0xce, 0x40, 0xd5, 0x80, 0x93, 0xaf,
		0xe3, 0x24, 0xa4, 0x04, 0x00, 0x0c, 0x00, 0x96, 0x0a, 0xc0, 0xa8, 0x10, 0x06, 0x42, 0xff, 0x3a,
		0x00, 0x43, 0x4a, 0x40, 0xe8, 0x01, 0xc0, 0xa4, 0x00, 0x0c, 0x42, 0x9f, 0x23, 0x9c, 0x04, 0xa1,
		0x07, 0x9c, 0xed, 0x36, 0x9c, 0x81, 0xaa, 0x01, 0x27, 0x5f, 0xc7, 0x49, 0x48, 0x09, 0x00, 0x18,
		0x00, 0x2c, 0x65, 0x60, 0xd4, 0x91, 0xcb, 0x09, 0x46, 0xa2, 0x8e, 0x1c, 0x60, 0x0c, 0x75, 0xe4,
		0x50, 0x47, 0x0e, 0x75, 0xe4, 0x36, 0x41, 0x4b, 0xd4, 0x91, 0x43, 0x1d, 0x39, 0x59, 0xcf, 0x81,
		0x3a, 0x72, 0x1b, 0x8c, 0x85, 0x3a, 0x72, 0x09, 0x3e, 0x2c, 0xea, 0xc8, 0xd1, 0xbc, 0x1b, 0x75,
		0xe4, 0x50, 0x47, 0x6e, 0x93, 0x27, 0x40, 0x1d, 0x39, 0xd4, 0x91, 0x43, 0x1d, 0x39, 0x85, 0x88,
		0xfb, 0x86, 0xe1, 0xa4, 0x17, 0xc2, 0xba, 0x6b, 0x72, 0x6b, 0x23, 0xad, 0x1a, 0x14, 0xb5, 0x91,
		0x50, 0x1b, 0x29, 0x2e, 0x4e, 0xa0, 0x36, 0x52, 0x52, 0x36, 0x83, 0xda, 0x48, 0x4c, 0xab, 0x25,
		0x77, 0xd5, 0xe0, 0x3b, 0x45, 0x6d, 0x24, 0x5c, 0x28, 0x31, 0xba, 0x48, 0x21, 0x16, 0xb8, 0x9e,
		0x02, 0xc4, 0x4a, 0x82, 0x58, 0x84, 0x69, 0x66, 0x19, 0x09, 0x11, 0x97, 0x09, 0xc0, 0xda, 0x31,
		0xc0, 0x42, 0x88, 0x1d, 0x90, 0x70, 0x05, 0x12, 0x42, 0x2c, 0x00, 0xb1, 0x80, 0x58, 0x29, 0x03,
		0xa3, 0xea, 0x0d, 0x58, 0xf8, 0xeb, 0x88, 0x0b, 0x29, 0x01, 0x29, 0x07, 0x00, 0xa3, 0x36, 0x12,
		0x2c, 0xd3, 0xed, 0x70, 0x12, 0x94, 0x1d, 0x70, 0xb6, 0xdb, 0x70, 0x06, 0xaa, 0x06, 0x9c, 0x7c,
		0x1d, 0x27, 0x21, 0x25, 0x00, 0x60, 0x00, 0xb0, 0x54, 0x00, 0x46, 0xd5, 0x1b, 0x10, 0xfa, 0xd7,
		0x01, 0x18, 0x52, 0x02, 0x42, 0x0f, 0x00, 0x26, 0x05, 0x60, 0x10, 0xfa, 0x1c, 0xe1, 0x24, 0x08,
		0x3d, 0xe0, 0x6c, 0xb7, 0xe1, 0x0c, 0x54, 0x0d, 0x38, 0xf9, 0x3a, 0x4e, 0x42, 0x4a, 0x00, 0xc0,
		0x00, 0x60, 0x29, 0x03, 0xa3, 0x36, 0x52, 0x4e, 0x30, 0x12, 0xb5, 0x91, 0x00, 0x63, 0xa8, 0x8d,
		0x84, 0xda, 0x48, 0xa8, 0x8d, 0xb4, 0x09, 0x5a, 0xa2, 0x36, 0x12, 0x6a, 0x23, 0xc9, 0x7a, 0x0e,
		0xd4, 0x46, 0xda, 0x60, 0x2c, 0xd4, 0x46, 0x4a, 0xf0, 0x61, 0x51, 0x1b, 0x89, 0xe6, 0xdd, 0xa8,
		0x8d, 0x84, 0xda, 0x48, 0x9b, 0x3c, 0x01, 0x6a, 0x23, 0xa1, 0x36, 0x12, 0x6a, 0x23, 0x29, 0x44,
		0xdc, 0x37, 0xb4, 0xef, 0xd8, 0x12, 0x17, 0x0a, 0xc7, 0x96, 0x65, 0x7b, 0x63, 0x33, 0x2b, 0x8e,
		0x04, 0x17, 0xdc, 0xde, 0x83, 0x78, 0x34, 0x86, 0x86, 0xf7, 0xe0, 0x6f, 0x7d, 0xd1, 0x1e, 0x0a,
		0xab, 0x17, 0x54, 0x2e, 0xd2, 0x2d, 0xe1, 0x7d, 0xb3, 0x9d, 0xbf, 0x75, 0xd3, 0xc7, 0x1a, 0xab,
		0x27, 0x8a, 0x8b, 0x2f, 0xb8, 0x4b, 0xaf, 0x14, 0x4d, 0xcb, 0x13, 0x4e, 0xf4, 0xa3, 0x3e, 0xb4,
		0x07, 0x66, 0xcf, 0x14, 0x6e, 0x31, 0x2c, 0xcb, 0x24, 0x9e, 0x82, 0x2f, 0xc1, 0xcb, 0xcf, 0x45,
		0xd7, 0x33, 0xbc, 0x38, 0x27, 0xa3, 0xe0, 0x7a, 0xce, 0xa8, 0xe7, 0x59, 0x21, 0x60, 0x5c, 0x44,
		0x8f, 0x7c, 0x3e, 0x7e, 0x9c, 0x66, 0x38, 0x7d, 0x77, 0xe1, 0x67, 0x77, 0xf1, 0x85, 0x6e, 0xd3,
		0x7f, 0xdc, 0xc9, 0x4f, 0xed, 0xf0, 0x61, 0xbb, 0xcd, 0xe0, 0x61, 0x1b, 0xc1, 0xb3, 0x06, 0x2f,
		0x3e, 0x77, 0xaf, 0x82, 0x47, 0x7d, 0x43, 0xb3, 0xed, 0x9b, 0xfd, 0xe5, 0x86, 0x82, 0x11, 0x57,
		0x20, 0x14, 0x0a, 0xc2, 0x16, 0x22, 0xc0, 0xbf, 0xf5, 0x9b, 0x6d, 0xfa, 0xeb, 0x5b, 0xf8, 0xf3,
		0xbf, 0x78, 0x65, 0x73, 0xb7, 0xdd, 0x54, 0x9e, 0xcd, 0xdc, 0x60, 0xdf, 0x88, 0xf7, 0xeb, 0xe7,
		0x9b, 0xb3, 0x7e, 0xc9, 0x7f, 0xb2, 0xdc, 0x85, 0xe0, 0xc3, 0xde, 0x19, 0x3d, 0xe1, 0xbe, 0xba,
		0xd4, 0xd3, 0xaa, 0x73, 0xd3, 0xf7, 0xbc, 0xb2, 0x91, 0x13, 0x1e, 0xfb, 0xca, 0x9f, 0x6d, 0x5a,
		0x3c, 0x6e, 0x9b, 0x22, 0x71, 0xb3, 0xc5, 0xe0, 0x2c, 0xe1, 0xf9, 0xdb, 0xb9, 0xc9, 0x0e, 0x6e,
		0x69, 0x1e, 0xc5, 0xae, 0xef, 0x16, 0xdb, 0xb6, 0x59, 0xac, 0xd7, 0x36, 0xf9, 0x6c, 0xc4, 0x47,
		0xf2, 0xd4, 0xdc, 0x8c, 0x3d, 0x4d, 0x85, 0x63, 0xf3, 0x35, 0x5c, 0x92, 0xab, 0x4d, 0xd7, 0x70,
		0x33, 0xf1, 0xda, 0x5a, 0xcc, 0xe2, 0x88, 0x5b, 0x32, 0xb1, 0x4b, 0x6a, 0x9d, 0x27, 0x2e, 0x33,
		0x98, 0xd8, 0xd4, 0x8e, 0x2d, 0x96, 0x34, 0x66, 0xc1, 0xa6, 0xe2, 0x1a, 0xbd, 0xa1, 0x37, 0x91,
		0x8d, 0x2d, 0x17, 0x7e, 0xb2, 0xdd, 0xe1, 0xfb, 0xb7, 0x5c, 0xb4, 0xed, 0x04, 0x38, 0xb6, 0x20,
		0x27, 0x11, 0x68, 0x39, 0x82, 0x2d, 0x8b, 0x7e, 0x4a, 0xab, 0xa7, 0x29, 0x8d, 0x5b, 0x26, 0x16,
		0x7c, 0x1e, 0xe2, 0xb4, 0xed, 0x81, 0x88, 0xde, 0x68, 0xb8, 0xae, 0xdd, 0x33, 0x0d, 0x4f, 0xf4,
		0x75, 0xa3, 0xdf, 0x77, 0x84, 0xeb, 0xea, 0x77, 0xc6, 0xa3, 0x39, 0x30, 0x37, 0xb0, 0x18, 0x5e,
		0x95, 0xa5, 0x9f, 0x0d, 0x8e, 0x3a, 0xb6, 0xc9, 0x8e, 0x9a, 0x6c, 0x8f, 0x4f, 0xf6, 0x4a, 0xd9,
		0xc6, 0x3e, 0x8a, 0xc9, 0xbc, 0x2d, 0xea, 0xab, 0xd9, 0x9a, 0x7d, 0x61, 0x79, 0xa6, 0xf7, 0xec,
		0x88, 0x3b, 0x19, 0x35, 0x6d, 0x93, 0x78, 0xa3, 0x9b, 0xe1, 0xa3, 0x7c, 0x34, 0x5c, 0x09, 0x22,
		0x38, 0xf9, 0x80, 0xc7, 0xa7, 0xa7, 0x97, 0x8d, 0xab, 0xab, 0xee, 0xa7, 0xe3, 0xb3, 0x66, 0xeb,
		0xaf, 0xa4, 0x72, 0xf8, 0xbb, 0x31, 0x18, 0x05, 0x68, 0x96, 0xfc, 0xae, 0x5b, 0x92, 0x53, 0x75,
		0xf2, 0x39, 0x9b, 0xed, 0xdf, 0xab, 0x12, 0x5c, 0x8e, 0xef, 0x53, 0xf8, 0xb9, 0xf6, 0xf3, 0xf8,
		0xb9, 0x5a, 0x95, 0x6e, 0xa3, 0xf3, 0x5b, 0xe3, 0xf2, 0xbc, 0xd1, 0xc9, 0xe3, 0xc7, 0x3b, 0x6b,
		0xb7, 0xae, 0x54, 0x7b, 0xc0, 0x6f, 0x32, 0x82, 0xe6, 0xb8, 0x73, 0x4c, 0x38, 0x54, 0xf2, 0x3b,
		0x47, 0x9e, 0xbe, 0x0e, 0x7d, 0x09, 0x6d, 0x1c, 0xfa, 0xb0, 0x76, 0x61, 0xed, 0xc2, 0xda, 0x8d,
		0x79, 0x7a, 0x26, 0x6e, 0x43, 0x3d, 0xf6, 0x39, 0x9a, 0x33, 0x77, 0x0f, 0xd2, 0x8c, 0x36, 0x5b,
		0x7b, 0x57, 0x5f, 0x5f, 0x36, 0x60, 0x4f, 0x70, 0x7e, 0xcc, 0x3b, 0xc0, 0x4e, 0x0c, 0xd8, 0x31,
		0xef, 0x76, 0x0f, 0x71, 0x06, 0xc2, 0xb8, 0x93, 0xc4, 0xad, 0xeb, 0x09, 0xc6, 0x68, 0x47, 0x17,
		0x9e, 0xfe, 0x36, 0x1c, 0x4d, 0xaf, 0xe5, 0x16, 0x5f, 0x08, 0x7f, 0x0e, 0xee, 0x25, 0xd3, 0x0c,
		0x6e, 0xce, 0xad, 0x6e, 0x58, 0xcf, 0x3d, 0xc3, 0xf5, 0xf4, 0x7b, 0xc3, 0x13, 0xdf, 0x8c, 0x67,
		0x09, 0x30, 0xb7, 0x62, 0x50, 0x00, 0x1e, 0x8c, 0x2d, 0x18, 0x5b, 0xb1, 0xe4, 0x46, 0x4e, 0xa0,
		0xbb, 0x8c, 0x00, 0x77, 0x39, 0x81, 0xed, 0x72, 0x03, 0xda, 0xc7, 0x81, 0xec, 0xa7, 0xcd, 0xab,
		0xce, 0x65, 0xf3, 0xe3, 0x75, 0xa7, 0x71, 0xda, 0xbd, 0xfa, 0xeb, 0xac, 0xd1, 0xb9, 0x6c, 0x9e,
		0xc8, 0x08, 0xdd, 0x2c, 0x2f, 0x0e, 0x7e, 0x2c, 0x73, 0xf4, 0x8a, 0x3f, 0xfa, 0x6f, 0x7f, 0x7d,
		0xbc, 0x6c, 0x9e, 0xca, 0x18, 0x6e, 0xcf, 0x1f, 0xee, 0xa4, 0x71, 0xde, 0xb9, 0x3c, 0x6e, 0x35,
		0xff, 0xb7, 0x71, 0x5a, 0x50, 0x99, 0xe9, 0x21, 0x31, 0x92, 0x7f, 0xee, 0x33, 0x1d, 0x69, 0x7b,
		0x12, 0x96, 0x6a, 0xf5, 0x96, 0x6e, 0x7d, 0x2d, 0xfc, 0xea, 0xd8, 0x33, 0x43, 0x97, 0x24, 0x0c,
		0x1d, 0xca, 0xca, 0x91, 0x56, 0x51, 0x14, 0xd2, 0xfa, 0x92, 0x62, 0x5b, 0xe6, 0xd1, 0xe8, 0xe9,
		0x43, 0xd3, 0xb2, 0x92, 0x20, 0x4b, 0x04, 0xba, 0xb3, 0x83, 0xc1, 0x76, 0x81, 0xed, 0x02, 0xdb,
		0x25, 0x96, 0xdc, 0xdc, 0xda, 0xf6, 0x40, 0x18, 0x52, 0xec, 0x96, 0x32, 0xb2, 0x60, 0xd8, 0xb3,
		0x60, 0x90, 0xfd, 0xa2, 0x2a, 0xfb, 0x05, 0x59, 0x2f, 0x14, 0x26, 0x82, 0x3b, 0xba, 0x95, 0xe8,
		0xce, 0x9d, 0x1b, 0x0d, 0x46, 0x02, 0x3c, 0xba, 0xb1, 0xed, 0x03, 0x78, 0x74, 0x13, 0x99, 0x06,
		0x2c, 0x1e, 0xdd, 0xcf, 0x53, 0x8f, 0xee, 0xbf, 0x7a, 0x23, 0xc7, 0x11, 0x96, 0xf7, 0xf6, 0x5d,
		0xf1, 0xc3, 0x87, 0x62, 0xf4, 0x17, 0x37, 0xe1, 0x5b, 0x66, 0x71, 0xc1, 0x5d, 0xf1, 0x5a, 0x34,
		0x72, 0x5f, 0x3c, 0x15, 0x90, 0x23, 0x48, 0x93, 0x4d, 0x34, 0x5e, 0xfc, 0xe9, 0x9a, 0xc7, 0x8a,
		0x16, 0xd7, 0xe4, 0x67, 0x18, 0x05, 0xcf, 0x35, 0xfd, 0xb6, 0x1b, 0x22, 0x38, 0x55, 0xe6, 0xdf,
		0x16, 0x89, 0x10, 0x31, 0xc2, 0x2a, 0xe2, 0x87, 0x53, 0xc4, 0x54, 0x7c, 0x88, 0xc3, 0x47, 0x1c,
		0xfe, 0xb6, 0xe0, 0x14, 0x5b, 0x65, 0x49, 0x50, 0x55, 0x49, 0x54, 0x54, 0xa4, 0x9a, 0x3e, 0x7c,
		0x08, 0xd1, 0xab, 0x68, 0xf6, 0xd3, 0x00, 0x14, 0xe3, 0xb4, 0xea, 0xd8, 0x58, 0x11, 0x27, 0x2b,
		0x3b, 0x71, 0xda, 0x4e, 0x05, 0x70, 0x01, 0xb8, 0xd8, 0xe8, 0x29, 0x91, 0xb6, 0x03, 0xff, 0x34,
		0xfc, 0xd3, 0x3b, 0x42, 0x42, 0x91, 0xb6, 0xb3, 0xd5, 0xa8, 0x48, 0xdb, 0x51, 0xf0, 0xb9, 0x90,
		0xb6, 0x93, 0xbd, 0x8f, 0x87, 0xb4, 0x9d, 0xcd, 0xd7, 0x0c, 0x69, 0x3b, 0x09, 0x87, 0x42, 0xda,
		0x0e, 0xac, 0x5d, 0x58, 0xbb, 0xb0, 0x76, 0x5f, 0x3f, 0x3d, 0x48, 0xdb, 0x49, 0xb4, 0x6c, 0xc0,
		0x1e, 0x5c, 0xf2, 0xc6, 0x87, 0x1d, 0x5c, 0xf2, 0x26, 0x02, 0x1b, 0xa4, 0xed, 0xcc, 0x80, 0x1b,
		0xd2, 0x76, 0x60, 0x6c, 0xc1, 0xd8, 0x4a, 0x35, 0xf4, 0x21, 0x6d, 0xe7, 0xa7, 0xa3, 0x21, 0x6d,
		0x67, 0x32, 0x1c, 0xd2, 0x76, 0x36, 0x1e, 0x11, 0x69, 0x3b, 0xac, 0x18, 0x8a, 0xb4, 0x1d, 0xd8,
		0x2e, 0xb0, 0x5d, 0x90, 0xb6, 0x93, 0xc4, 0x6e, 0x41, 0xda, 0x0e, 0xd2, 0x76, 0x90, 0xb6, 0xc3,
		0xa1, 0xe4, 0x35, 0xa4, 0xed, 0x6c, 0x74, 0x84, 0x90, 0xb6, 0xb3, 0x64, 0x24, 0xc0, 0xa3, 0x1b,
		0xcb, 0x3e, 0x80, 0x47, 0x37, 0x91, 0x69, 0x80, 0xb4, 0x1d, 0xc9, 0xef, 0xc8, 0x61, 0xda, 0x4e,
		0x4a, 0x5a, 0x78, 0x2d, 0x66, 0xed, 0x64, 0xa8, 0x5d, 0xd7, 0xbf, 0xc5, 0xf3, 0x56, 0x91, 0x13,
		0xf1, 0xe2, 0x71, 0xe2, 0xc7, 0xdf, 0x48, 0x8d, 0xb7, 0x49, 0x10, 0x5f, 0x93, 0x20, 0x9e, 0x26,
		0x83, 0x9d, 0xd3, 0x16, 0xce, 0x99, 0xba, 0x0e, 0x69, 0x0b, 0x27, 0x0b, 0xdd, 0xd0, 0x66, 0x37,
		0x88, 0xbf, 0x01, 0xda, 0x78, 0x5a, 0x82, 0xae, 0x67, 0x8f, 0xc3, 0xc1, 0x16, 0xfd, 0xce, 0x82,
		0xbf, 0xce, 0x46, 0xa7, 0xb3, 0x0d, 0x1e, 0x55, 0xcb, 0x64, 0x9b, 0xb3, 0xe0, 0x83, 0xa5, 0xa5,
		0xc7, 0xd9, 0xfd, 0xc0, 0xbe, 0x35, 0x06, 0xdb, 0x37, 0x38, 0x0b, 0xdf, 0x97, 0x8f, 0xee, 0x66,
		0x1b, 0x8a, 0x5a, 0x52, 0x62, 0x96, 0xbe, 0xd6, 0x66, 0x9b, 0x89, 0x22, 0x8d, 0xfd, 0x84, 0xbe,
		0x66, 0xb2, 0x3d, 0x10, 0x09, 0x44, 0x5a, 0x96, 0xcf, 0x21, 0xfd, 0xd9, 0x91, 0xdb, 0x89, 0x3c,
		0x0f, 0x5f, 0x8c, 0x9d, 0x1a, 0xe9, 0x5b, 0xe2, 0xfa, 0xc0, 0xb8, 0x15, 0x83, 0xe4, 0xee, 0xbb,
		0x99, 0xb1, 0x62, 0xae, 0xf4, 0xa9, 0xb8, 0x33, 0x46, 0x03, 0x2f, 0x91, 0x5b, 0x7f, 0xb2, 0x45,
		0xde, 0x51, 0xf3, 0xac, 0xdd, 0x6a, 0x9e, 0x34, 0x63, 0xa6, 0xb1, 0xdc, 0xc0, 0x01, 0x99, 0x00,
		0x06, 0xe0, 0x82, 0x8c, 0x07, 0x13, 0x59, 0x77, 0x42, 0xe6, 0x3e, 0x6d, 0xf3, 0xfc, 0xba, 0xd5,
		0xea, 0xb6, 0x8e, 0x3f, 0x36, 0x5a, 0xdd, 0xce, 0x5f, 0xed, 0x46, 0x7e, 0xf3, 0x36, 0x1b, 0x7f,
		0x26, 0x41, 0x4f, 0x09, 0x52, 0x49, 0xf8, 0xd9, 0x92, 0x69, 0x86, 0xe4, 0xe7, 0x34, 0xd2, 0x31,
		0xb9, 0x8c, 0x1b, 0x1a, 0x7e, 0xd3, 0x85, 0xd5, 0x33, 0x86, 0xee, 0x68, 0x10, 0xdf, 0x85, 0x3d,
		0xb7, 0x5f, 0x4b, 0x23, 0x42, 0x37, 0x43, 0x37, 0x43, 0x37, 0x43, 0x37, 0xcf, 0x7f, 0xc0, 0xf6,
		0x55, 0xe3, 0xfa, 0xf4, 0xe2, 0x8f, 0xe6, 0x65, 0xa3, 0xdb, 0x38, 0x3f, 0x39, 0x6e, 0x5f, 0x5d,
		0xb7, 0x8e, 0x3b, 0xcd, 0x8b, 0xf3, 0xfc, 0x2a, 0xe9, 0xf6, 0x1f, 0x8d, 0x28, 0x5b, 0xbf, 0x7b,
		0x79, 0xfc, 0x47, 0xf7, 0xec, 0xe2, 0xb4, 0x91, 0x47, 0x8d, 0x3d, 0xf7, 0x41, 0x3b, 0xc7, 0xbf,
		0xfe, 0xda, 0x38, 0x95, 0xf5, 0x59, 0xa1, 0xc1, 0x97, 0x56, 0xdd, 0xf3, 0x06, 0xfa, 0xd0, 0xb1,
		0x87, 0xc6, 0xbd, 0x24, 0x05, 0xbe, 0x38, 0xa0, 0x4a, 0xff, 0x80, 0xaf, 0x4e, 0xe0, 0x12, 0x80,
		0xd9, 0x01, 0xb3, 0x83, 0xc7, 0xec, 0x50, 0x1f, 0xb2, 0x8c, 0xe0, 0x9e, 0x9f, 0xdc, 0x69, 0xfb,
		0x42, 0x59, 0x1c, 0x5f, 0xc6, 0xa5, 0xa1, 0x14, 0xef, 0xd9, 0x70, 0xe0, 0x76, 0x7f, 0x0d, 0x1e,
		0x27, 0x4d, 0x15, 0x78, 0xa3, 0xfa, 0x0c, 0x86, 0xe7, 0x39, 0xe6, 0xed, 0xc8, 0x8b, 0x51, 0x3a,
		0x70, 0x45, 0xb5, 0x87, 0x99, 0xd1, 0x70, 0xab, 0x44, 0xa8, 0x33, 0x70, 0xab, 0xa4, 0x71, 0xde,
		0x2a, 0xa5, 0xb0, 0xc4, 0x47, 0x19, 0xc6, 0x17, 0x8c, 0xaf, 0xac, 0x18, 0x5f, 0x71, 0x0f, 0x5e,
		0x34, 0x40, 0xcc, 0x48, 0x87, 0xb5, 0x82, 0x17, 0xdb, 0x30, 0x90, 0x78, 0x14, 0xa5, 0x1d, 0x49,
		0x99, 0x47, 0x93, 0xe0, 0x88, 0xca, 0x3e, 0xaa, 0x64, 0x47, 0x96, 0xec, 0xe8, 0xd2, 0x1c, 0x61,
		0x39, 0x0e, 0x9f, 0xa4, 0x59, 0xfc, 0x49, 0x8f, 0xf6, 0x0a, 0x93, 0x34, 0x41, 0xf9, 0xbe, 0x0d,
		0x4c, 0xd4, 0x44, 0x05, 0xc9, 0x24, 0xba, 0x41, 0xc8, 0x60, 0x80, 0x02, 0x0e, 0x08, 0x61, 0x81,
		0x0a, 0x1e, 0xc8, 0x61, 0x82, 0x1c, 0x2e, 0x68, 0x61, 0x43, 0x0e, 0x7c, 0x48, 0x82, 0x11, 0x79,
		0x6e, 0x1a, 0x4e, 0x04, 0xd0, 0x92, 0x97, 0x28, 0x94, 0xbf, 0x1b, 0x12, 0x76, 0x22, 0x08, 0x8a,
		0xd7, 0x85, 0x65, 0xdc, 0x0e, 0x04, 0x01, 0x16, 0xcf, 0x8d, 0x2e, 0x49, 0x6e, 0x64, 0x78, 0xd2,
		0x97, 0x06, 0x0d, 0xf2, 0x72, 0xe4, 0x9c, 0xb4, 0x1b, 0xe8, 0x1c, 0xe8, 0x1c, 0xe8, 0x9c, 0x1d,
		0xd3, 0x39, 0xc9, 0xaf, 0x0a, 0xd6, 0xaa, 0x9b, 0x72, 0x5a, 0xd4, 0x8d, 0x52, 0xf6, 0x91, 0xf0,
		0xea, 0x61, 0x69, 0x3c, 0xba, 0xab, 0x88, 0x55, 0x3e, 0x72, 0x19, 0x4d, 0x03, 0x97, 0x3f, 0x02,
		0xc5, 0xcd, 0x45, 0x94, 0xb1, 0x77, 0x1c, 0x3d, 0x7c, 0xc2, 0xce, 0x82, 0xf2, 0xe4, 0x28, 0x81,
		0x0c, 0xc9, 0x25, 0x9d, 0x14, 0xa6, 0xa6, 0x24, 0x85, 0x0f, 0x1f, 0x13, 0x7c, 0x4c, 0xd9, 0x45,
		0x79, 0x69, 0x0a, 0x5a, 0x62, 0x6d, 0x91, 0x25, 0x85, 0x5c, 0x97, 0x30, 0xd6, 0x8a, 0x3e, 0x8c,
		0xb3, 0x50, 0x92, 0x69, 0x80, 0xf5, 0x97, 0x9b, 0x00, 0x61, 0x93, 0xef, 0xe2, 0xae, 0xb8, 0xf1,
		0xcd, 0x3b, 0x00, 0x2c, 0x01, 0xc0, 0x26, 0x29, 0xcd, 0x94, 0x0e, 0x78, 0x95, 0xe6, 0xc2, 0x97,
		0x74, 0x4b, 0xb7, 0x24, 0xbc, 0xd2, 0x8c, 0x63, 0x89, 0xc7, 0x3d, 0xb3, 0x2e, 0x14, 0x29, 0x30,
		0x00, 0x07, 0x8a, 0x0a, 0x98, 0x48, 0xa7, 0xfb, 0x44, 0x16, 0x7c, 0x2c, 0xdb, 0x0c, 0xf2, 0xc5,
		0x4a, 0x56, 0x14, 0x0e, 0x31, 0x5d, 0x23, 0x07, 0x19, 0x4a, 0xb0, 0x21, 0x07, 0x1d, 0x6a, 0xf0,
		0x61, 0x03, 0x21, 0x36, 0x30, 0xe2, 0x00, 0x25, 0xb9, 0xe0, 0x24, 0x19, 0xa4, 0xe4, 0x53, 0x49,
		0x06, 0x6a, 0x49, 0x49, 0x35, 0xd7, 0x52, 0x4f, 0xfa, 0xc6, 0x45, 0xf4, 0x82, 0x23, 0x51, 0x68,
		0xe4, 0x54, 0x04, 0x7e, 0x55, 0x68, 0x24, 0x54, 0x0a, 0x86, 0x4a, 0x82, 0x4a, 0x82, 0x4a, 0x82,
		0x4a, 0xda, 0x41, 0x95, 0x94, 0xa6, 0xca, 0xcb, 0x0c, 0xda, 0x2d, 0x55, 0xec, 0xaf, 0xf1, 0xe4,
		0xb9, 0x52, 0xa3, 0x6e, 0xe8, 0x1c, 0x09, 0x76, 0x4f, 0x17, 0x4f, 0xde, 0x91, 0x27, 0x06, 0xe2,
		0x51, 0x78, 0xce, 0xb3, 0x6e, 0x5b, 0x7a, 0xef, 0xc1, 0xb0, 0xee, 0x05, 0xad, 0x73, 0x21, 0x08,
		0x23, 0x22, 0xf4, 0x2e, 0xa4, 0xcd, 0xb1, 0x20, 0x2b, 0xd6, 0x49, 0xf2, 0xe5, 0xfe, 0xd4, 0xa4,
		0x53, 0x75, 0xc9, 0x3f, 0x77, 0x6b, 0x51, 0x94, 0xea, 0xd5, 0xd4, 0x14, 0x5d, 0xfd, 0x47, 0xdf,
		0x5d, 0x8a, 0x3b, 0x29, 0x71, 0x00, 0xf2, 0x44, 0xf1, 0x45, 0x4a, 0x30, 0x85, 0xe1, 0x09, 0xf9,
		0x0e, 0xed, 0xb8, 0xb5, 0xe6, 0x7f, 0xaa, 0x82, 0x65, 0xfb, 0xb3, 0x2b, 0xf0, 0x67, 0x67, 0xc7,
		0x6e, 0x87, 0x3f, 0x1b, 0xfe, 0x6c, 0x38, 0x0f, 0xe0, 0x3c, 0x80, 0xf3, 0x00, 0xce, 0x03, 0x38,
		0x0f, 0xe0, 0xcf, 0x5e, 0x6f, 0xd1, 0xc2, 0x9f, 0x0d, 0x95, 0x04, 0x95, 0x04, 0x95, 0x04, 0x95,
		0x94, 0x5a, 0x95, 0x04, 0x7f, 0xb6, 0x3a, 0xf6, 0x97, 0x73, 0xa7, 0xa3, 0x4c, 0xcf, 0x53, 0x2a,
		0x7c, 0x8e, 0x31, 0xfa, 0x23, 0x12, 0xba, 0x1c, 0x91, 0x0c, 0x27, 0x5d, 0x64, 0x33, 0x9a, 0x13,
		0x37, 0x2b, 0xa4, 0x59, 0x4c, 0xdc, 0x90, 0xe3, 0xf9, 0x96, 0xea, 0xf1, 0x96, 0x9e, 0xa8, 0x51,
		0x41, 0x2e, 0x5c, 0x1a, 0x6c, 0x75, 0xe4, 0xc2, 0x6d, 0xf1, 0x91, 0x50, 0x6f, 0x09, 0xb5, 0x2f,
		0x52, 0x4d, 0xed, 0x51, 0xfb, 0x22, 0x4b, 0x74, 0x07, 0xf5, 0x96, 0x52, 0xb0, 0x13, 0xa8, 0xb7,
		0x34, 0x1e, 0x14, 0xf5, 0x96, 0xa0, 0x73, 0xa0, 0x73, 0xa0, 0x73, 0x62, 0x4b, 0x2c, 0xea, 0x2d,
		0xc1, 0xc5, 0xb4, 0x99, 0x8b, 0x49, 0x96, 0x1f, 0x54, 0x85, 0x6b, 0x49, 0x82, 0xcb, 0xf3, 0x25,
		0x23, 0x85, 0xc3, 0xff, 0x2d, 0x9e, 0x25, 0xd9, 0x92, 0x85, 0x96, 0xe9, 0x7a, 0xfe, 0x72, 0x26,
		0x2b, 0x44, 0x7e, 0x66, 0x5a, 0x8d, 0x81, 0xf0, 0x81, 0xda, 0x4d, 0xa6, 0xc5, 0x0b, 0x67, 0xc6,
		0xd3, 0xcc, 0x48, 0xe5, 0x83, 0x6a, 0x75, 0xbf, 0x5e, 0xad, 0x96, 0xea, 0x7b, 0xf5, 0xd2, 0x61,
		0xad, 0x56, 0xde, 0x4f, 0xd4, 0x8f, 0xee, 0xc2, 0xe9, 0x0b, 0x47, 0xf4, 0x3f, 0xfa, 0xab, 0x67,
		0x8d, 0x06, 0x03, 0x19, 0x43, 0x5d, 0xbb, 0xc2, 0x99, 0x44, 0xb3, 0xb3, 0x0a, 0x81, 0x24, 0xd0,
		0x51, 0x06, 0x36, 0x85, 0x44, 0x6e, 0x58, 0x6e, 0x78, 0x29, 0xa0, 0x27, 0x11, 0xbb, 0xac, 0xa4,
		0xa6, 0x43, 0xd1, 0x0a, 0xc9, 0x48, 0x43, 0xbb, 0x22, 0x47, 0xb8, 0xc2, 0xf9, 0x2a, 0xfa, 0xe3,
		0x6e, 0xfc, 0xfa, 0xed, 0xc0, 0xee, 0xfd, 0x9d, 0xa0, 0x5f, 0xd1, 0xea, 0xe1, 0xd0, 0xb0, 0x88,
		0x90, 0xb9, 0xa1, 0x61, 0x91, 0xc6, 0xd9, 0xb0, 0x68, 0x95, 0x84, 0x27, 0xef, 0x5d, 0xb4, 0x72,
		0x54, 0xb4, 0x31, 0x42, 0x1b, 0x23, 0x65, 0x8e, 0x0e, 0xb4, 0x31, 0x42, 0x1b, 0x23, 0x66, 0x5f,
		0x26, 0xae, 0xd5, 0x71, 0xad, 0xfe, 0x93, 0x81, 0x06, 0x76, 0xcf, 0x18, 0x90, 0x5c, 0xa9, 0x47,
		0x23, 0xe3, 0x6a, 0x23, 0x45, 0x70, 0x40, 0x05, 0x0b, 0xe4, 0xf0, 0x40, 0x0e, 0x13, 0xb4, 0x70,
		0x21, 0xcf, 0xa3, 0xae, 0x65, 0xe2, 0x6a, 0xc3, 0xf5, 0x1c, 0xd3, 0xba, 0xc7, 0x45, 0xfa, 0x6b,
		0xe8, 0xfb, 0x4d, 0x38, 0xfa, 0xad, 0x3d, 0xb2, 0x48, 0x00, 0x78, 0x3a, 0x38, 0x30, 0x18, 0x18,
		0x0c, 0x0c, 0xde, 0x31, 0x0c, 0x0e, 0x02, 0x69, 0x02, 0xdf, 0x07, 0x05, 0x0e, 0x1f, 0x4a, 0x1c,
		0x33, 0x5c, 0x83, 0xcf, 0x52, 0x85, 0x88, 0x30, 0xa3, 0x6b, 0x64, 0x5a, 0xde, 0x5e, 0x85, 0x30,
		0xa1, 0x8b, 0x22, 0x9f, 0xeb, 0x32, 0x28, 0x1d, 0x25, 0x7b, 0x95, 0xe9, 0x56, 0x3b, 0x7a, 0xf0,
		0x33, 0xd3, 0x22, 0xcb, 0xe8, 0x8c, 0x26, 0xf9, 0xdd, 0x18, 0x8c, 0xfc, 0xd5, 0x29, 0xef, 0xbf,
		0xa7, 0x9d, 0xe8, 0x93, 0x63, 0xf4, 0x3c, 0xd3, 0xb6, 0x4e, 0xcd, 0x7b, 0x33, 0xe9, 0xad, 0xec,
		0x66, 0x42, 0x2b, 0xee, 0x0d, 0xcf, 0xfc, 0x2a, 0x12, 0x5d, 0x86, 0x32, 0x22, 0xe2, 0x6a, 0x19,
		0x30, 0x9e, 0x18, 0x65, 0xa0, 0x54, 0x3d, 0xa8, 0xd5, 0x6b, 0x10, 0x04, 0xa5, 0x0a, 0x96, 0x7e,
		0xd4, 0x9b, 0x34, 0x27, 0x26, 0x13, 0xaa, 0x2f, 0x61, 0x8d, 0x1e, 0x85, 0x33, 0xbe, 0x6e, 0x26,
		0x4c, 0x4a, 0xae, 0x12, 0x8c, 0xdd, 0xb0, 0x46, 0x8f, 0x74, 0xe9, 0xfd, 0x1d, 0xfb, 0x6a, 0xcc,
		0x5b, 0x29, 0xa1, 0xa6, 0x50, 0xf2, 0xf7, 0xa0, 0xd9, 0xfe, 0xbd, 0xda, 0x6d, 0xfc, 0xd9, 0x6e,
		0x35, 0x4f, 0x9a, 0x9d, 0xee, 0xf9, 0x75, 0xab, 0x55, 0x20, 0x84, 0xcf, 0xb2, 0x3f, 0xe5, 0xe5,
		0xc5, 0x75, 0xa7, 0x71, 0xd9, 0x3d, 0x6e, 0x35, 0x2e, 0x3b, 0x94, 0x93, 0x55, 0xc2, 0xcf, 0xb7,
		0xcf, 0xf7, 0xf9, 0xf6, 0x82, 0x29, 0xcf, 0x98, 0x66, 0xab, 0xfb, 0xb3, 0x35, 0xce, 0x3b, 0x97,
		0x17, 0xed, 0xbf, 0xba, 0xad, 0xe3, 0x8f, 0x8d, 0x56, 0xb7, 0x79, 0x7e, 0xda, 0x3c, 0x39, 0xee,
		0x5c, 0x5c, 0x52, 0xce, 0x7b, 0xe0, 0xcf, 0x7b, 0x7e, 0x31, 0x9e, 0xb2, 0xf0, 0x26, 0x43, 0x3a,
		0xbc, 0xd0, 0xb1, 0x9b, 0x01, 0x9b, 0x23, 0x3c, 0x56, 0xeb, 0x36, 0x84, 0xc4, 0x9a, 0x8e, 0x66,
		0x9d, 0x17, 0xba, 0x23, 0x6d, 0x8f, 0x72, 0xae, 0x65, 0xcc, 0x20, 0xb5, 0x1a, 0x56, 0x1d, 0x62,
		0x69, 0x85, 0x16, 0x57, 0x6b, 0xa8, 0x89, 0x70, 0x1f, 0x69, 0x07, 0x84, 0xd3, 0xcc, 0x21, 0xe1,
		0x91, 0x56, 0xce, 0x88, 0xbd, 0xf2, 0x92, 0xd2, 0x92, 0x18, 0x37, 0x39, 0x72, 0xc9, 0x8e, 0x86,
		0x43, 0x3a, 0x97, 0xec, 0xec, 0xe0, 0x70, 0xc9, 0x26, 0x5e, 0x4e, 0xb8, 0x64, 0xa7, 0x13, 0xc0,
		0x25, 0x0b, 0x97, 0x2c, 0x5c, 0xb2, 0x70, 0xc9, 0x92, 0xae, 0x76, 0xf4, 0xe0, 0x70, 0xc9, 0x26,
		0x13, 0x5a, 0xb8, 0x64, 0xb7, 0x95, 0x01, 0xb8, 0x64, 0x53, 0x46, 0x46, 0x34, 0xb8, 0x64, 0x25,
		0xaa, 0x2f, 0xb8, 0x64, 0xd7, 0x3a, 0x8e, 0xe0, 0x92, 0x4d, 0x3e, 0x19, 0x5c, 0xb2, 0x44, 0xf3,
		0xc2, 0x25, 0xfb, 0x53, 0x68, 0x80, 0x4b, 0x96, 0x60, 0x42, 0xb8, 0x64, 0xd3, 0x63, 0xaf, 0xc0,
		0x25, 0x4b, 0x39, 0xc2, 0xee, 0xd4, 0xff, 0x58, 0x99, 0xe3, 0xbb, 0xf2, 0x55, 0x79, 0x8d, 0xd8,
		0x68, 0x72, 0xb2, 0x2f, 0xc3, 0x67, 0x6e, 0xf9, 0x8f, 0xfc, 0x31, 0xf8, 0x1c, 0x2b, 0x5e, 0x93,
		0xd2, 0x7c, 0x4d, 0x4d, 0xa9, 0x59, 0x69, 0x29, 0x33, 0xb2, 0x53, 0x65, 0x24, 0xdd, 0x05, 0x20,
		0x33, 0x2e, 0xee, 0xf2, 0x23, 0x33, 0x4e, 0x3d, 0xe4, 0x4b, 0xf3, 0xdd, 0x13, 0xb4, 0x6f, 0x90,
		0xd9, 0xae, 0x21, 0x6a, 0xcf, 0xf0, 0xe1, 0x43, 0xa8, 0x11, 0x8a, 0x11, 0x8c, 0xa0, 0x7e, 0x37,
		0xea, 0x77, 0x03, 0x4e, 0x01, 0xa7, 0x48, 0x34, 0x56, 0x67, 0x45, 0x49, 0xb7, 0xa6, 0x28, 0x60,
		0x80, 0x10, 0x0e, 0xa8, 0x60, 0x81, 0x1c, 0x1e, 0xc8, 0x61, 0x82, 0x16, 0x2e, 0xe4, 0xba, 0x12,
		0x90, 0x68, 0x9c, 0x02, 0x17, 0x0a, 0x12, 0x8d, 0x81, 0xc1, 0xc0, 0x60, 0x60, 0x70, 0x6a, 0x31,
		0x18, 0x51, 0x6d, 0x92, 0xff, 0x21, 0xaa, 0x8d, 0x73, 0xb5, 0xa3, 0x07, 0x47, 0x54, 0x5b, 0x32,
		0xa1, 0x45, 0x54, 0xdb, 0xb6, 0x32, 0x80, 0xa8, 0xb6, 0x14, 0x28, 0x58, 0xfa, 0x51, 0x11, 0xd5,
		0x86, 0xa8, 0xb6, 0x79, 0x3b, 0x04, 0x51, 0x6d, 0x12, 0x26, 0x43, 0x54, 0x1b, 0xd1, 0xbc, 0x88,
		0x6a, 0xfb, 0x29, 0x34, 0x20, 0xaa, 0x8d, 0x60, 0x42, 0x44, 0xb5, 0xa5, 0xc7, 0x5e, 0x41, 0x54,
		0x1b, 0x39, 0x78, 0x21, 0xd1, 0x18, 0x2e, 0x59, 0xb8, 0x64, 0x57, 0x4d, 0x00, 0x97, 0xac, 0x04,
		0x89, 0x85, 0x4b, 0x96, 0x8a, 0xd3, 0xc2, 0x25, 0xcb, 0xb0, 0xda, 0xd1, 0x83, 0xc3, 0x25, 0x9b,
		0x4c, 0x68, 0xe1, 0x92, 0xdd, 0x56, 0x06, 0xe0, 0x92, 0x4d, 0x19, 0x19, 0xd1, 0xe0, 0x92, 0x95,
		0xa8, 0xbe, 0xe0, 0x92, 0x5d, 0xeb, 0x38, 0x82, 0x4b, 0x36, 0xf9, 0x64, 0x70, 0xc9, 0x12, 0xcd,
		0x0b, 0x97, 0xec, 0x4f, 0xa1, 0x01, 0x2e, 0x59, 0x82, 0x09, 0xe1, 0x92, 0x4d, 0x8f, 0xbd, 0x02,
		0x97, 0x2c, 0xe5, 0x08, 0x48, 0x34, 0x5e, 0x91, 0x68, 0x2c, 0x23, 0x89, 0x4a, 0x53, 0x9d, 0x67,
		0x7c, 0x15, 0x7c, 0x08, 0x55, 0x19, 0x71, 0xac, 0xfd, 0x3e, 0xff, 0x2d, 0x9e, 0x25, 0xe4, 0xc3,
		0x14, 0x5a, 0xa6, 0xeb, 0x1d, 0x7b, 0x5e, 0xc2, 0xde, 0xa1, 0x67, 0xa6, 0xd5, 0x18, 0x88, 0x47,
		0x61, 0x25, 0xa5, 0xb7, 0x3e, 0xfd, 0x9f, 0x19, 0xa9, 0x7c, 0x50, 0xad, 0xee, 0xd7, 0xab, 0xd5,
		0x52, 0x7d, 0xaf, 0x5e, 0x3a, 0xac, 0xd5, 0xca, 0xfb, 0xe5, 0x04, 0x64, 0xbd, 0x70, 0xe1, 0xf4,
		0x85, 0x23, 0xfa, 0x1f, 0xfd, 0x95, 0xb3, 0x46, 0x83, 0x81, 0x8c, 0xa1, 0xae, 0x5d, 0xe1, 0x24,
		0xe2, 0xd9, 0x71, 0x05, 0x40, 0x12, 0x0a, 0xa5, 0x02, 0x7d, 0x0a, 0x89, 0x92, 0x49, 0x95, 0xe1,
		0x4d, 0x3c, 0xa4, 0x79, 0x49, 0x59, 0x23, 0xef, 0x84, 0x82, 0xc4, 0x2d, 0x40, 0x71, 0x1a, 0xc4,
		0x73, 0xc9, 0xc8, 0x76, 0x02, 0xb1, 0xf9, 0xb6, 0x6e, 0xb1, 0xa5, 0x31, 0x93, 0xab, 0x13, 0x25,
		0x53, 0xc7, 0x4c, 0x9e, 0x8e, 0x9d, 0x2c, 0x9d, 0xe4, 0xfa, 0x57, 0xc2, 0x35, 0x6f, 0xd2, 0xeb,
		0x5c, 0x69, 0xd7, 0xb6, 0xd2, 0xae, 0x67, 0xe5, 0x5c, 0xc3, 0xd2, 0xc2, 0x54, 0xdc, 0xe4, 0xe4,
		0x82, 0xaf, 0xe9, 0xc3, 0xdb, 0xd1, 0xd8, 0x3b, 0x36, 0x11, 0x9a, 0x99, 0xb1, 0xe2, 0xf6, 0x69,
		0x17, 0x77, 0xc6, 0x68, 0xe0, 0x25, 0xba, 0x9e, 0x9b, 0x6c, 0x91, 0x77, 0x34, 0x71, 0x4a, 0xc4,
		0xd3, 0x44, 0x37, 0x71, 0x6d, 0xcf, 0x44, 0xd1, 0x21, 0x89, 0xa3, 0x41, 0x64, 0x44, 0x7f, 0x48,
		0x8c, 0xf6, 0x90, 0x15, 0xdd, 0x21, 0x3d, 0x9a, 0x43, 0x7a, 0xf4, 0x86, 0xdc, 0x68, 0x0d, 0x5e,
		0xbe, 0x94, 0x38, 0xfa, 0x22, 0x92, 0x18, 0xb3, 0x2f, 0x2c, 0xcf, 0xf4, 0x9e, 0x93, 0x95, 0x89,
		0x89, 0x74, 0x66, 0x12, 0x42, 0xd3, 0x0c, 0x1f, 0xe5, 0xa3, 0xe1, 0x4a, 0xac, 0xa7, 0x72, 0x7e,
		0xdd, 0x6a, 0x85, 0xce, 0xd5, 0xce, 0x5f, 0xed, 0x46, 0x52, 0x29, 0x0c, 0x2e, 0x5b, 0x5d, 0x29,
		0xf1, 0x08, 0x92, 0x03, 0xe7, 0x26, 0x0e, 0xcf, 0x42, 0x1a, 0x62, 0x04, 0x25, 0x7f, 0xb6, 0x64,
		0x9a, 0x41, 0x9e, 0xb3, 0xed, 0x86, 0x1b, 0x1f, 0xde, 0x30, 0xec, 0x5d, 0x61, 0xf8, 0x4d, 0x17,
		0x56, 0xcf, 0x18, 0xba, 0xa3, 0x41, 0x32, 0x0a, 0x1e, 0xed, 0xd7, 0xd2, 0x88, 0xd0, 0xcd, 0xd0,
		0xcd, 0xd0, 0xcd, 0xd0, 0xcd, 0xf3, 0x1f, 0xb0, 0x7d, 0xd5, 0xb8, 0x3e, 0xbd, 0xf8, 0xa3, 0x79,
		0xd9, 0xe8, 0x36, 0xce, 0x4f, 0x8e, 0xdb, 0x57, 0xd7, 0xad, 0xe3, 0x4e, 0xf3, 0xe2, 0x3c, 0xbf,
		0x4a, 0xba, 0xfd, 0x47, 0xa3, 0xdb, 0xe8, 0xfc, 0xd6, 0xb8, 0x3c, 0x6f, 0x74, 0xba, 0x97, 0xc7,
		0x7f, 0x74, 0xcf, 0x2e, 0x4e, 0x1b, 0x79, 0xd4, 0xd8, 0x73, 0x1f, 0xb4, 0x73, 0xfc, 0xeb, 0xaf,
		0x8d, 0x53, 0x59, 0x9f, 0x15, 0x1a, 0x7c, 0x69, 0xd5, 0x3d, 0x6f, 0xa0, 0x0f, 0x1d, 0x7b, 0x68,
		0xdc, 0x4b, 0x52, 0xe0, 0x8b, 0x03, 0xaa, 0xf4, 0x0f, 0xf8, 0xea, 0x04, 0x2e, 0x01, 0x98, 0x1d,
		0x30, 0x3b, 0x78, 0xcc, 0x8e, 0x5b, 0xdb, 0x1e, 0x08, 0xc3, 0x92, 0x61, 0x72, 0x94, 0x71, 0xa7,
		0x44, 0x7a, 0xa7, 0x14, 0x37, 0xce, 0x81, 0xe6, 0x0e, 0x29, 0x46, 0xc0, 0xc2, 0x16, 0xb7, 0x46,
		0x6f, 0x24, 0x6e, 0x6d, 0xdc, 0x2d, 0xa5, 0xdb, 0xca, 0xc2, 0x56, 0x97, 0x62, 0xf2, 0x37, 0x6f,
		0xb3, 0x6d, 0x7b, 0x7d, 0x13, 0x36, 0xd8, 0x80, 0xc2, 0xc0, 0x1d, 0xba, 0x1b, 0x2f, 0xfb, 0xb4,
		0x56, 0x9f, 0xff, 0xae, 0x0d, 0xb7, 0x77, 0xbb, 0x2b, 0xbc, 0xad, 0x15, 0x76, 0x1c, 0x05, 0x9d,
		0x40, 0x21, 0xc7, 0x55, 0xc0, 0x89, 0x15, 0x6e, 0x62, 0x05, 0x9b, 0x4c, 0xa1, 0xca, 0x3d, 0xf2,
		0xdb, 0x5e, 0xb9, 0x15, 0x7a, 0xb6, 0xe5, 0x7a, 0x8e, 0x61, 0x5a, 0xa2, 0xaf, 0x87, 0x27, 0x3e,
		0xe6, 0x35, 0xf4, 0xd2, 0x48, 0xcc, 0x37, 0xd2, 0x25, 0xdc, 0x48, 0x2b, 0xb5, 0x2f, 0xf3, 0x7d,
		0x23, 0x6d, 0x3c, 0x8a, 0xbe, 0x2e, 0x9e, 0x86, 0x03, 0xb3, 0x67, 0x7a, 0x81, 0x7c, 0xbb, 0x12,
		0xee, 0xa6, 0x57, 0x8d, 0x9a, 0x8c, 0xce, 0x95, 0x41, 0xe7, 0x40, 0xe7, 0xb2, 0x42, 0xe7, 0x92,
		0x56, 0xaf, 0x5f, 0x75, 0x80, 0xe4, 0x39, 0x6e, 0x57, 0x0d, 0x9e, 0xb2, 0x96, 0x15, 0xe8, 0x00,
		0xa4, 0xf4, 0x30, 0x93, 0x1d, 0x6a, 0x9a, 0xc3, 0x2d, 0xc7, 0xb9, 0x9c, 0x9a, 0x96, 0x15, 0xbd,
		0xc9, 0x29, 0x90, 0xec, 0xd5, 0x97, 0xd6, 0xc0, 0x4d, 0xe2, 0x91, 0x97, 0x7e, 0xf4, 0x29, 0x20,
		0x80, 0x10, 0x0a, 0xa8, 0x20, 0x81, 0x1c, 0x1a, 0xc8, 0x21, 0x82, 0x16, 0x2a, 0xe4, 0x40, 0x86,
		0x24, 0xe8, 0x90, 0x0e, 0x21, 0x73, 0x76, 0x84, 0x7c, 0x99, 0x9a, 0x35, 0x24, 0x64, 0x8b, 0x93,
		0xdc, 0x72, 0x5f, 0x64, 0xf0, 0x42, 0x09, 0x33, 0x0c, 0x70, 0x43, 0x0d, 0x3b, 0x6c, 0xf0, 0xc3,
		0x06, 0x43, 0x3c, 0x70, 0x24, 0x17, 0x96, 0x24, 0xc3, 0x53, 0xb4, 0x04, 0xd2, 0xcb, 0x87, 0x2d,
		0x49, 0xbc, 0xf4, 0xee, 0x3a, 0x4b, 0x66, 0xcb, 0x41, 0x4a, 0xf3, 0x9a, 0x25, 0xee, 0x55, 0xc1,
		0x35, 0xfb, 0xfa, 0xd0, 0xb1, 0x3d, 0x11, 0xd4, 0xfc, 0xd1, 0x1d, 0xf1, 0xdf, 0x91, 0xe9, 0x88,
		0x3e, 0x9d, 0x42, 0x58, 0x37, 0xa1, 0x64, 0xf9, 0x93, 0x11, 0x98, 0xb0, 0x76, 0xf0, 0x20, 0x7d,
		0x52, 0xee, 0x89, 0xbe, 0x81, 0x8e, 0xe4, 0xd2, 0x91, 0xba, 0xeb, 0x40, 0x4d, 0xa6, 0x54, 0x4d,
		0xfa, 0x7b, 0x03, 0x4d, 0x29, 0x59, 0xee, 0x93, 0xc7, 0x7b, 0xbc, 0xaa, 0x2a, 0xcb, 0x3b, 0xa2,
		0x2a, 0x5d, 0x31, 0x08, 0x15, 0xd7, 0xa3, 0xdd, 0x17, 0xb4, 0x5a, 0x72, 0x61, 0xae, 0x2c, 0x29,
		0xc8, 0xb3, 0xe6, 0x9f, 0xd2, 0xc2, 0x41, 0xa1, 0x25, 0xa1, 0x25, 0xa1, 0x25, 0xa1, 0x25, 0xa9,
		0xb5, 0x24, 0xaa, 0x4f, 0xae, 0x5b, 0x7a, 0xbe, 0xea, 0x93, 0xc7, 0xa7, 0xff, 0xaf, 0x7b, 0xd5,
		0x3c, 0xed, 0x5e, 0x9c, 0xb7, 0xfe, 0x22, 0xaf, 0x3b, 0x49, 0xa5, 0xa4, 0x88, 0x8e, 0xc0, 0xcc,
		0x7e, 0x90, 0xd7, 0x2c, 0x9c, 0xdb, 0x07, 0xda, 0x5a, 0x7e, 0x33, 0xbb, 0x80, 0x8a, 0x77, 0xe9,
		0x18, 0x49, 0xd6, 0x55, 0x85, 0xe4, 0xca, 0x73, 0x53, 0x43, 0x5c, 0x7e, 0x8c, 0xee, 0xc0, 0x1d,
		0xba, 0xc5, 0xc5, 0x28, 0xbe, 0xe2, 0xaa, 0x18, 0xa5, 0x55, 0x2f, 0x16, 0xa5, 0x5e, 0x9b, 0x6a,
		0xf2, 0x43, 0x80, 0x5b, 0xee, 0xd0, 0xed, 0x9e, 0x4c, 0x3f, 0x5e, 0xdb, 0xf0, 0x1e, 0xba, 0xbe,
		0xe2, 0xeb, 0x37, 0xc2, 0xcf, 0xe1, 0xbf, 0xe2, 0x2e, 0xbf, 0xd4, 0x0d, 0x4d, 0xd9, 0x1c, 0x35,
		0xb7, 0x89, 0x76, 0xce, 0xb1, 0x47, 0x9e, 0xd0, 0xed, 0xdb, 0xff, 0x13, 0x3d, 0xcf, 0x95, 0x7f,
		0x95, 0xbe, 0x66, 0x1e, 0x5c, 0xad, 0xcb, 0x62, 0x28, 0xb8, 0x5a, 0xc7, 0xd5, 0xba, 0x54, 0x7d,
		0x25, 0xfd, 0x6a, 0x7d, 0x25, 0x04, 0xd0, 0x39, 0x8d, 0x56, 0x4f, 0x47, 0xe3, 0x32, 0x29, 0xc3,
		0x65, 0x82, 0xcb, 0xf7, 0xac, 0xf8, 0x4b, 0x76, 0xcd, 0x59, 0x22, 0x1b, 0xc8, 0xa2, 0x81, 0x25,
		0x87, 0x1d, 0xae, 0x3d, 0x50, 0xd2, 0xed, 0x69, 0x06, 0x08, 0x23, 0x87, 0x32, 0x0e, 0x48, 0x63,
		0x84, 0x36, 0x2e, 0x88, 0x63, 0x87, 0x3a, 0x76, 0xc8, 0xe3, 0x85, 0x3e, 0x3a, 0xaf, 0x0a, 0xa5,
		0xd3, 0x8c, 0x0a, 0x12, 0xa3, 0x09, 0x8c, 0x7e, 0xdf, 0x11, 0xae, 0x4b, 0x2f, 0xc6, 0x93, 0x93,
		0x39, 0x99, 0x90, 0x58, 0xa6, 0x68, 0xae, 0xc8, 0xd8, 0x41, 0x93, 0x13, 0x3c, 0x15, 0x80, 0x28,
		0x37, 0x98, 0x2a, 0x03, 0x55, 0x65, 0xe0, 0xaa, 0x06, 0x64, 0x69, 0xc1, 0x96, 0x18, 0x74, 0xa3,
		0x25, 0x23, 0xbb, 0xbc, 0x5b, 0x7b, 0xe2, 0xcc, 0xa1, 0xce, 0x83, 0x8f, 0x1a, 0x51, 0xef, 0xd9,
		0xd7, 0xd6, 0xf2, 0x33, 0x8b, 0xb0, 0xf3, 0x80, 0xc8, 0xc2, 0xce, 0x7d, 0xad, 0x32, 0xee, 0xdd,
		0xd2, 0x1e, 0x1e, 0x30, 0xce, 0xd9, 0x36, 0x3c, 0x4f, 0x38, 0x16, 0xdb, 0x76, 0x46, 0x13, 0xbf,
		0xfd, 0x5c, 0xd2, 0x0f, 0x6f, 0x7e, 0x7c, 0x2e, 0xeb, 0x87, 0x37, 0xe3, 0x6f, 0xcb, 0xc1, 0x97,
		0xef, 0x95, 0x97, 0x1f, 0x95, 0xcf, 0x25, 0xbd, 0x1a, 0xbe, 0x5a, 0xa9, 0x7d, 0x2e, 0xe9, 0xb5,
		0x9b, 0x77, 0x6f, 0xbf, 0x7c, 0xf9, 0xb0, 0xed, 0x7b, 0xde, 0x7d, 0xdf, 0x7b, 0x29, 0xb0, 0x7d,
		0xac, 0x1b, 0xce, 0x6d, 0xbb, 0xb8, 0x6a, 0xfe, 0xa9, 0x6c, 0xef, 0xfe, 0xf3, 0x96, 0x6b, 0xf7,
		0xde, 0xfd, 0x83, 0x71, 0xff, 0x58, 0x66, 0x7a, 0x79, 0x9f, 0x63, 0xd8, 0xdc, 0x07, 0x6c, 0x52,
		0xc3, 0x66, 0x70, 0x8a, 0x0c, 0xfd, 0xee, 0x58, 0xff, 0x74, 0xf3, 0xbd, 0xfc, 0xbe, 0xfa, 0x72,
		0xf4, 0xee, 0x7b, 0xfd, 0x65, 0xf1, 0xc5, 0x1f, 0xab, 0xfe, 0xac, 0xfc, 0xbe, 0xfe, 0x72, 0xb4,
		0xe6, 0x37, 0xfb, 0x2f, 0x47, 0x1b, 0x8e, 0x51, 0x7b, 0x79, 0xbb, 0xf4, 0xa7, 0xfe, 0xeb, 0x95,
		0x75, 0x6f, 0xa8, 0xae, 0x79, 0xc3, 0xde, 0xba, 0x37, 0xec, 0xad, 0x79, 0xc3, 0xda, 0x47, 0xaa,
		0xac, 0x79, 0x43, 0xed, 0xe5, 0xc7, 0xd2, 0xdf, 0xbf, 0x5d, 0xfd, 0xa7, 0xfb, 0x2f, 0xef, 0x7e,
		0xac, 0xfb, 0x5d, 0xfd, 0xe5, 0xc7, 0xd1, 0xbb, 0x77, 0x50, 0x24, 0x64, 0x8a, 0x04, 0xe2, 0xcc,
		0x2f, 0xce, 0xf9, 0x53, 0xac, 0x6f, 0xb2, 0xfd, 0x39, 0xe8, 0x9e, 0x9f, 0xd0, 0xe4, 0x28, 0x3c,
		0xd8, 0x43, 0xdd, 0xe3, 0xe0, 0xd6, 0x91, 0x99, 0x11, 0xcd, 0x08, 0xaf, 0x23, 0xbc, 0x8e, 0xf0,
		0x3a, 0xc2, 0xeb, 0x08, 0xaf, 0xe3, 0xcc, 0x89, 0x0b, 0x72, 0x33, 0x98, 0x20, 0x52, 0x23, 0x4e,
		0x2a, 0x58, 0x9a, 0x8b, 0x34, 0xc9, 0x60, 0x79, 0xf3, 0x38, 0x92, 0x0e, 0x96, 0x66, 0x0d, 0x92,
		0x10, 0x5a, 0x17, 0x17, 0x57, 0x0d, 0x4e, 0x0e, 0x1d, 0x64, 0x23, 0x5c, 0x75, 0x2e, 0x9b, 0x27,
		0x9d, 0x42, 0x9e, 0xdc, 0x20, 0x0c, 0x99, 0x0a, 0x4b, 0x53, 0x8e, 0x37, 0x8f, 0x5c, 0xa1, 0xcf,
		0x6b, 0xbf, 0xf1, 0xd6, 0x51, 0xa5, 0x2f, 0xf0, 0xdb, 0xda, 0x2f, 0xb0, 0xb5, 0x97, 0x36, 0xd9,
		0xb4, 0xfa, 0xe2, 0x89, 0xcf, 0xd0, 0x1e, 0x4f, 0x07, 0x2b, 0x1b, 0x56, 0x36, 0xac, 0x6c, 0x58,
		0xd9, 0xb0, 0xb2, 0x67, 0x4e, 0xdc, 0xc8, 0xb4, 0xbc, 0x03, 0x46, 0xeb, 0xba, 0xc6, 0x30, 0xd5,
		0xa5, 0x61, 0xdd, 0xe7, 0xf2, 0x5a, 0xff, 0xcc, 0xb4, 0x58, 0x0d, 0x40, 0x2d, 0x6a, 0x0f, 0xc7,
		0x6b, 0x04, 0x06, 0xf3, 0x7e, 0x72, 0x8c, 0xa0, 0x60, 0xc7, 0xa9, 0x79, 0x6f, 0x06, 0x29, 0x65,
		0xdc, 0x0f, 0x70, 0x2e, 0xee, 0x0d, 0xcf, 0xfc, 0xea, 0x7f, 0xf6, 0xa0, 0x46, 0x15, 0xdb, 0xec,
		0x2f, 0x8c, 0xe6, 0xf6, 0x99, 0xf1, 0xa4, 0x4e, 0xa4, 0x2a, 0xb5, 0x1a, 0x84, 0x8a, 0x4b, 0xa8,
		0x70, 0x75, 0xa1, 0x96, 0x4e, 0x65, 0x2a, 0xc2, 0x9b, 0x28, 0xdb, 0x7c, 0x69, 0x9e, 0xf4, 0x65,
		0x9f, 0xaf, 0xce, 0x34, 0x5e, 0xfd, 0x72, 0x91, 0x34, 0xb5, 0x46, 0x4b, 0x53, 0xea, 0xfa, 0xe4,
		0x87, 0x4b, 0xff, 0xe3, 0x5f, 0x8c, 0x17, 0x65, 0xd5, 0x8b, 0x52, 0x73, 0xdc, 0xe9, 0xcf, 0x10,
		0xc1, 0xf9, 0x21, 0x76, 0x6e, 0xb0, 0x38, 0x35, 0x88, 0x9d, 0x19, 0xc8, 0xea, 0x4a, 0xa7, 0xb3,
		0x02, 0x59, 0x5d, 0xbb, 0xac, 0xf3, 0xc9, 0x9d, 0x0f, 0xd3, 0xe6, 0x84, 0xc2, 0xb8, 0x4b, 0xd6,
		0xa6, 0x7d, 0x53, 0x00, 0x2b, 0xd7, 0x09, 0xe7, 0x68, 0x87, 0x66, 0xcb, 0x87, 0x0f, 0xa1, 0x21,
		0x50, 0x1c, 0x63, 0xf2, 0x0e, 0xeb, 0xbe, 0x71, 0x8b, 0x55, 0x72, 0xdd, 0x17, 0xb7, 0x93, 0xeb,
		0x56, 0xa2, 0x43, 0xad, 0xfb, 0x2a, 0xd0, 0x7d, 0xd0, 0x7d, 0xd0, 0x7d, 0xa9, 0xd0, 0x7d, 0xc8,
		0x68, 0x4e, 0x25, 0x51, 0x60, 0x23, 0x0c, 0x9c, 0xe0, 0xa9, 0x00, 0x44, 0xb9, 0xc1, 0x54, 0x19,
		0xa8, 0x2a, 0x03, 0x57, 0x35, 0x20, 0x4b, 0x0b, 0xb6, 0xc4, 0xa0, 0xcb, 0x47, 0x3c, 0x96, 0x7d,
		0x27, 0xc8, 0x68, 0x96, 0xf1, 0x0f, 0x19, 0xcd, 0xb4, 0xba, 0x08, 0x19, 0xcd, 0xb2, 0xfe, 0x21,
		0xa3, 0x19, 0x19, 0xcd, 0xca, 0x15, 0x9d, 0x5a, 0xd8, 0x44, 0x46, 0x33, 0x39, 0x6c, 0x22, 0x05,
		0x14, 0x19, 0xcd, 0x79, 0x53, 0x24, 0x10, 0x67, 0x64, 0x34, 0xa7, 0x9c, 0x9f, 0x6a, 0xc8, 0x68,
		0x5e, 0x79, 0x82, 0x91, 0xd1, 0x0c, 0xaf, 0x23, 0xbc, 0x8e, 0xf0, 0x3a, 0xc2, 0xeb, 0x98, 0x0e,
		0xaf, 0x23, 0x32, 0x9a, 0xe5, 0x6d, 0x1e, 0x32, 0x9a, 0x33, 0xef, 0x06, 0x41, 0x46, 0x73, 0x46,
		0x6d, 0x6d, 0x64, 0x34, 0x2f, 0x6f, 0x32, 0x32, 0x9a, 0x61, 0x65, 0xc3, 0xca, 0x86, 0x95, 0x0d,
		0x2b, 0x5b, 0xb5, 0x95, 0x8d, 0x8c, 0xe6, 0xa4, 0xff, 0x90, 0xd1, 0x4c, 0x33, 0x2f, 0x32, 0x9a,
		0x59, 0x44, 0x0a, 0x19, 0xcd, 0x3b, 0x22, 0x54, 0xb8, 0xba, 0x50, 0x4b, 0xa7, 0x90, 0xd1, 0xbc,
		0x62, 0x9e, 0x8c, 0x67, 0x34, 0x53, 0x66, 0xd6, 0x68, 0x99, 0x4c, 0x68, 0xbe, 0x0a, 0x56, 0x64,
		0x37, 0x7b, 0xe9, 0xbf, 0x97, 0xde, 0xc0, 0x99, 0xca, 0x79, 0x51, 0x68, 0x99, 0xae, 0x77, 0xec,
		0x79, 0x44, 0xbd, 0x3a, 0xcf, 0x4c, 0xab, 0x31, 0x10, 0x3e, 0xf7, 0x23, 0x52, 0xb1, 0xbe, 0xd9,
		0x32, 0x33, 0x43, 0xf9, 0xa0, 0x5a, 0xdd, 0xaf, 0x57, 0xab, 0xa5, 0xfa, 0x5e, 0xbd, 0x74, 0x58,
		0xab, 0x95, 0xf7, 0xcb, 0x04, 0x86, 0x45, 0xe1, 0xc2, 0xe9, 0x0b, 0x47, 0xf4, 0x3f, 0xfa, 0xdb,
		0x62, 0x8d, 0x06, 0x03, 0xca, 0x29, 0xae, 0x5d, 0xe1, 0x90, 0xd8, 0x08, 0xb2, 0xa5, 0x94, 0x58,
		0x53, 0x64, 0x5c, 0x43, 0x14, 0x48, 0xb2, 0x46, 0xb3, 0xa5, 0x13, 0xe4, 0x6a, 0x83, 0x97, 0x9c,
		0x76, 0x80, 0x27, 0x3a, 0x47, 0x99, 0x39, 0x3f, 0x12, 0x4f, 0x4a, 0xaa, 0x4f, 0x88, 0x9c, 0xd3,
		0x90, 0x5c, 0x76, 0x25, 0xc8, 0x6d, 0x21, 0x5c, 0x61, 0x39, 0xd2, 0x1a, 0xb9, 0x24, 0x83, 0x51,
		0x25, 0x9d, 0x2a, 0xb9, 0x97, 0x32, 0xd2, 0x2f, 0x5f, 0x28, 0x2e, 0x59, 0x08, 0x2f, 0x53, 0xa8,
		0x2e, 0x4d, 0xc8, 0x2f, 0x47, 0xc8, 0x2f, 0x41, 0x68, 0x2f, 0x3b, 0xd2, 0xa5, 0xa9, 0xa4, 0x5f,
		0x52, 0x10, 0x56, 0x3a, 0xa1, 0xa8, 0x6c, 0xb2, 0xa2, 0x92, 0x49, 0x00, 0x59, 0x39, 0x02, 0x76,
		0xb9, 0x85, 0x49, 0x48, 0x0a, 0x91, 0x48, 0x2e, 0x3c, 0x22, 0xbd, 0xd0, 0x08, 0xa0, 0x1d, 0xd0,
		0x9e, 0x39, 0x68, 0x97, 0x5d, 0xd8, 0x43, 0xae, 0x85, 0x48, 0x69, 0x29, 0x12, 0x59, 0x8c, 0x64,
		0x96, 0x23, 0x25, 0xcc, 0x30, 0xc0, 0x0d, 0x35, 0xec, 0xb0, 0xc1, 0x0f, 0x1b, 0x0c, 0xf1, 0xc0,
		0x91, 0x7c, 0x2f, 0x0b, 0x85, 0xcf, 0x91, 0x2c, 0x4c, 0x66, 0xc6, 0x52, 0x09, 0xe2, 0xa5, 0x09,
		0x04, 0x3e, 0xca, 0xf1, 0x4d, 0xab, 0x57, 0x4c, 0xa6, 0x1f, 0xc6, 0xec, 0xeb, 0x43, 0xc7, 0xf6,
		0x44, 0x70, 0xe7, 0xae, 0x3b, 0xe2, 0xbf, 0x23, 0xd3, 0x11, 0x7d, 0x3a, 0x85, 0xb0, 0x6e, 0x42,
		0xc9, 0xf2, 0x77, 0x2a, 0xee, 0x8c, 0xd1, 0xc0, 0x23, 0x09, 0x31, 0x2a, 0x04, 0x2e, 0x7f, 0xb9,
		0x27, 0xfa, 0x06, 0x3a, 0x92, 0x4b, 0x47, 0xea, 0xae, 0x03, 0x35, 0x99, 0x52, 0x35, 0xe9, 0xef,
		0x0d, 0x34, 0xa5, 0x64, 0xb9, 0xbf, 0xb5, 0xed, 0x81, 0x30, 0x2c, 0x4a, 0x55, 0x59, 0xde, 0x11,
		0x55, 0xe9, 0x8a, 0x41, 0xa8, 0xb8, 0x1e, 0xed, 0xbe, 0xa0, 0xd5, 0x92, 0x0b, 0x73, 0x65, 0x49,
		0x41, 0x9e, 0x35, 0xff, 0x6c, 0x9c, 0x76, 0xcf, 0x2e, 0x4e, 0x1b, 0xd0, 0x92, 0xd0, 0x92, 0xd0,
		0x92, 0xd0, 0x92, 0xe9, 0xd7, 0x92, 0xc2, 0x1a, 0x3d, 0x0a, 0x67, 0x7c, 0xbd, 0x4f, 0xa8, 0x29,
		0x09, 0x52, 0x97, 0x69, 0x53, 0x95, 0x79, 0x52, 0x93, 0xc7, 0xa9, 0xc8, 0xc7, 0xa7, 0xff, 0xaf,
		0x7b, 0xd5, 0x3c, 0xed, 0x5e, 0x9c, 0xb7, 0xfe, 0xa2, 0x8c, 0xd9, 0x0c, 0x32, 0x90, 0xa9, 0x94,
		0x14, 0xd1, 0x11, 0x98, 0xd9, 0x0f, 0xea, 0x2c, 0xe3, 0xf9, 0x7d, 0x20, 0x8d, 0xc0, 0x9f, 0xdd,
		0x05, 0xaa, 0x84, 0xe2, 0xd4, 0x47, 0xa5, 0x22, 0x5e, 0x6a, 0x3b, 0x43, 0x3c, 0x75, 0xf1, 0x52,
		0xb2, 0x83, 0xcc, 0x53, 0x13, 0x1e, 0x25, 0x31, 0x56, 0x5c, 0xc2, 0xb5, 0xf9, 0x1b, 0x85, 0x52,
		0x3d, 0x89, 0xf5, 0x96, 0x70, 0xa1, 0x25, 0x37, 0xb4, 0x5b, 0x7e, 0x28, 0x37, 0x4b, 0xe8, 0x36,
		0x41, 0xa8, 0x36, 0x41, 0x68, 0x76, 0x52, 0xa1, 0x91, 0x0c, 0x81, 0xe9, 0x83, 0xbe, 0x82, 0x94,
		0x50, 0x96, 0x54, 0x80, 0x5d, 0x32, 0x98, 0x8b, 0x0f, 0x4e, 0xf1, 0xde, 0x19, 0x53, 0x32, 0x65,
		0x49, 0xa4, 0x5a, 0x49, 0x4c, 0x20, 0x75, 0x6a, 0xa4, 0x2d, 0x9e, 0x6c, 0x6d, 0x2f, 0x19, 0x31,
		0xa4, 0xa2, 0xe0, 0x8d, 0x2c, 0x4b, 0x0c, 0xe2, 0x77, 0x72, 0x89, 0x18, 0xf4, 0x64, 0xa0, 0x98,
		0x92, 0x99, 0x2c, 0x5a, 0x2c, 0xb1, 0xd3, 0x4d, 0x86, 0x73, 0x4d, 0x62, 0x38, 0x86, 0x2c, 0x4f,
		0x99, 0x74, 0x8f, 0x98, 0x74, 0xcf, 0x97, 0xdc, 0x70, 0x09, 0x5e, 0x34, 0x4d, 0x1a, 0x8d, 0x15,
		0x9e, 0x99, 0xe4, 0xbb, 0x3c, 0x7f, 0x06, 0x93, 0x6e, 0xb1, 0x9c, 0xc0, 0x4d, 0x69, 0x7e, 0x70,
		0x99, 0x7e, 0x6f, 0x82, 0x88, 0x29, 0xd9, 0x4e, 0x6d, 0x32, 0x27, 0x36, 0x99, 0xd3, 0x9a, 0x26,
		0xe2, 0x49, 0x2d, 0xdf, 0x93, 0x15, 0x68, 0x59, 0xb8, 0x35, 0xac, 0xfe, 0x37, 0xb3, 0x1f, 0x18,
		0x4a, 0x92, 0xa3, 0xb5, 0xa7, 0x43, 0xa7, 0x3c, 0x62, 0x1b, 0xc9, 0x38, 0x52, 0x9d, 0xa6, 0x88,
		0xd8, 0xce, 0x90, 0x1b, 0x54, 0x7a, 0xc4, 0xb6, 0x31, 0xf2, 0x6c, 0x5d, 0x3e, 0xaa, 0x2c, 0x1d,
		0x88, 0x85, 0x79, 0x68, 0xee, 0xde, 0xcb, 0xb8, 0x7b, 0x47, 0x14, 0x77, 0x9a, 0xa0, 0x89, 0x07,
		0xa2, 0xe4, 0x42, 0x95, 0x64, 0xc8, 0x22, 0x83, 0xae, 0x68, 0xe0, 0xde, 0xe4, 0x94, 0x12, 0xf7,
		0xd5, 0x0e, 0xe7, 0xc9, 0x78, 0x63, 0xed, 0x12, 0x1a, 0x6b, 0xa7, 0x00, 0xe2, 0xd8, 0xa1, 0x8e,
		0x1d, 0xf2, 0x78, 0xa1, 0x8f, 0x06, 0x02, 0x89, 0xa0, 0x90, 0x1c, 0x12, 0xa7, 0xd6, 0x5d, 0xff,
		0xff, 0x46, 0xae, 0xa7, 0x9b, 0x96, 0x27, 0x9c, 0xaf, 0xc6, 0x80, 0xb3, 0xc1, 0xf6, 0xfc, 0xc4,
		0x28, 0xc6, 0x9d, 0x36, 0x30, 0x55, 0x00, 0xaa, 0xdc, 0xe0, 0xaa, 0x0c, 0x64, 0x95, 0x81, 0xad,
		0x1a, 0xd0, 0xa5, 0x05, 0x5f, 0x62, 0x10, 0x8e, 0x96, 0x4c, 0x4d, 0x31, 0xee, 0xbd, 0x0a, 0x63,
		0x35, 0xee, 0x3a, 0xaa, 0x71, 0xc7, 0xff, 0x60, 0xa8, 0xc6, 0xcd, 0xf9, 0x00, 0xa8, 0xc6, 0x4d,
		0x2d, 0x52, 0xd5, 0xca, 0x61, 0xf5, 0x70, 0xbf, 0x5e, 0x39, 0x44, 0x51, 0x6e, 0x36, 0xd9, 0x42,
		0x51, 0x6e, 0xa5, 0xcf, 0x4f, 0xd9, 0xe3, 0x28, 0x64, 0x3c, 0xde, 0x83, 0x23, 0xdc, 0x07, 0x7b,
		0xd0, 0x67, 0xe7, 0x5a, 0xd3, 0x99, 0x41, 0xb6, 0x40, 0xb6, 0x40, 0xb6, 0x40, 0xb6, 0x40, 0xb6,
		0x66, 0x4e, 0xdc, 0x50, 0x38, 0x3d, 0x61, 0x79, 0xc6, 0xbd, 0x40, 0xfb, 0x23, 0x10, 0x2e, 0x10,
		0x2e, 0x10, 0x2e, 0x6e, 0x91, 0x2a, 0x97, 0x20, 0x54, 0x60, 0x5a, 0x60, 0x5a, 0x49, 0x85, 0x4a,
		0x58, 0xc6, 0xed, 0x40, 0x30, 0x12, 0xac, 0xc9, 0x84, 0xc4, 0x36, 0x11, 0x65, 0x15, 0x95, 0xa5,
		0xc9, 0x08, 0xca, 0x8e, 0x2d, 0xc9, 0x2e, 0x78, 0x28, 0x78, 0x28, 0x78, 0x28, 0x78, 0x28, 0x78,
		0x28, 0x4b, 0x01, 0xb5, 0x75, 0x00, 0x59, 0x2e, 0xc3, 0x88, 0x58, 0x5a, 0x9b, 0x47, 0xe3, 0x49,
		0xbf, 0xfd, 0xc6, 0x67, 0x43, 0x84, 0xf3, 0x41, 0x25, 0x42, 0x25, 0x42, 0x25, 0x42, 0x25, 0x42,
		0x25, 0xae, 0xca, 0x3c, 0xd3, 0xff, 0xbe, 0x1d, 0xba, 0x8c, 0x9a, 0xf1, 0x80, 0x61, 0xaa, 0x6b,
		0x6b, 0xec, 0x7a, 0x29, 0xfc, 0x9b, 0xe9, 0xb3, 0xc1, 0x1f, 0x2c, 0x73, 0x52, 0xf8, 0x83, 0xe1,
		0x0f, 0x26, 0x12, 0x29, 0x9e, 0x36, 0xb6, 0x90, 0x32, 0x05, 0x3a, 0x9a, 0x6f, 0x16, 0x38, 0x88,
		0x57, 0x70, 0x3b, 0xd3, 0xe2, 0xe5, 0x76, 0xe3, 0xf9, 0xc0, 0xed, 0xc0, 0xed, 0xc0, 0xed, 0xc0,
		0xed, 0xc0, 0xed, 0xc0, 0xed, 0xc0, 0xed, 0xc0, 0xed, 0x60, 0x75, 0x83, 0xdb, 0x81, 0xdb, 0x81,
		0xdb, 0xed, 0x1e, 0xb7, 0xcb, 0x54, 0x12, 0x3e, 0x51, 0x65, 0xf9, 0xa5, 0x79, 0xd8, 0x8a, 0xdc,
		0x86, 0xa5, 0x53, 0xc3, 0xaf, 0xc5, 0xc8, 0x02, 0x2b, 0xce, 0xd7, 0x60, 0x2a, 0x92, 0xd6, 0x33,
		0xd1, 0x98, 0xca, 0xe3, 0x76, 0xc6, 0x1f, 0x36, 0xfc, 0xda, 0xfd, 0x38, 0xf9, 0x74, 0xdd, 0xe3,
		0x91, 0x67, 0x4f, 0x7f, 0x0a, 0x59, 0x6d, 0x56, 0x5a, 0x42, 0x10, 0xd4, 0x6c, 0xb2, 0xbf, 0x0a,
		0xe7, 0x6e, 0x60, 0x7f, 0xa3, 0xaf, 0x93, 0x13, 0xcd, 0x84, 0x4a, 0x39, 0xaa, 0x1c, 0x1f, 0xa8,
		0x94, 0x93, 0x41, 0xc7, 0x06, 0x2a, 0xe5, 0xac, 0x5f, 0x1a, 0xf2, 0x4a, 0x39, 0xc4, 0x45, 0xc4,
		0x96, 0x0e, 0x26, 0xb9, 0xf2, 0x65, 0x80, 0x4a, 0x36, 0xc8, 0xe4, 0x84, 0x4e, 0x05, 0x10, 0xca,
		0x0d, 0xa5, 0xca, 0x20, 0x55, 0x19, 0xb4, 0xaa, 0x81, 0x58, 0x1e, 0xa6, 0x48, 0xed, 0x33, 0xa6,
		0x86, 0xde, 0x68, 0x22, 0xae, 0xbc, 0x8e, 0xa5, 0x13, 0xce, 0x93, 0xdf, 0x31, 0x5d, 0x50, 0xc6,
		0x3c, 0x8f, 0x68, 0x52, 0x86, 0x7c, 0x8f, 0xc8, 0x6d, 0xc1, 0xb4, 0x8e, 0x3c, 0x17, 0xa2, 0xec,
		0x4a, 0x4e, 0x85, 0xb2, 0x53, 0xa8, 0xf4, 0x54, 0x29, 0x3f, 0xe5, 0x4a, 0x50, 0xb9, 0x32, 0x54,
		0xab, 0x14, 0x79, 0x94, 0x23, 0x93, 0x92, 0x8c, 0x96, 0x92, 0xed, 0x82, 0x75, 0xe9, 0xc4, 0xf2,
		0xe5, 0x95, 0x2c, 0xb1, 0x8b, 0x72, 0x4e, 0xfc, 0xed, 0x0c, 0x42, 0x12, 0x39, 0xc7, 0x18, 0x0b,
		0x05, 0x2d, 0x83, 0xfb, 0xf2, 0x33, 0x40, 0x65, 0x43, 0x65, 0x43, 0x65, 0x43, 0x65, 0x43, 0x65,
		0x33, 0x9e, 0x58, 0xd6, 0x92, 0x44, 0x8b, 0x18, 0xcc, 0x18, 0x8e, 0xc0, 0x1c, 0xb6, 0x34, 0xf9,
		0xc7, 0x0b, 0x4a, 0x9a, 0xaa, 0x30, 0xa6, 0x68, 0x72, 0x45, 0xe1, 0x4c, 0xd1, 0xfc, 0xaa, 0x03,
		0x4e, 0xa6, 0xe7, 0x4b, 0x55, 0xe0, 0x09, 0x33, 0x74, 0xcd, 0x8b, 0x9e, 0x82, 0x70, 0xa7, 0x25,
		0xd1, 0x63, 0x2f, 0x71, 0x04, 0xe1, 0x53, 0xa4, 0x9d, 0xf9, 0x67, 0xbb, 0x01, 0xcb, 0xdc, 0x58,
		0x08, 0x3d, 0xc7, 0xbc, 0xbf, 0x17, 0x8e, 0x2e, 0xbe, 0x0a, 0xcb, 0xd3, 0x7b, 0xf6, 0x28, 0xb0,
		0x14, 0x99, 0x69, 0xe6, 0xaa, 0x87, 0x00, 0xcf, 0x04, 0xcf, 0x04, 0xcf, 0x04, 0xcf, 0x04, 0xcf,
		0x64, 0x3c, 0xb1, 0x23, 0xd3, 0xf2, 0xca, 0xfb, 0x0a, 0x38, 0xe6, 0x3e, 0x38, 0x26, 0x38, 0x26,
		0xcc, 0x7c, 0x70, 0x4c, 0x99, 0xa2, 0xb7, 0x5f, 0xab, 0xed, 0xd5, 0x20, 0x7e, 0x60, 0x99, 0x60,
		0x99, 0xca, 0x66, 0xa0, 0x8e, 0x39, 0x63, 0xca, 0xc9, 0x89, 0xe6, 0x4b, 0x5d, 0x6e, 0xce, 0xe4,
		0x8a, 0xb6, 0xc8, 0x12, 0x27, 0xac, 0xa5, 0x2b, 0x59, 0xe7, 0x22, 0xfc, 0xf0, 0xa4, 0x59, 0x3b,
		0xf4, 0x07, 0xe5, 0x85, 0x34, 0xb3, 0xca, 0xf0, 0x04, 0x5f, 0xb4, 0xfa, 0x78, 0xba, 0x9c, 0x05,
		0xab, 0x57, 0x10, 0xac, 0x9e, 0x21, 0xa7, 0x0c, 0x82, 0xd5, 0x11, 0xac, 0xfe, 0xfa, 0x92, 0x21,
		0x58, 0x5d, 0xf6, 0x82, 0x22, 0x58, 0x5d, 0xa6, 0x72, 0xc3, 0x8d, 0x44, 0xa6, 0x95, 0x9e, 0x2a,
		0xe5, 0xa7, 0x5c, 0x09, 0x2a, 0x57, 0x86, 0x6a, 0x95, 0x22, 0xaf, 0x1f, 0x02, 0xc1, 0xea, 0x84,
		0xec, 0x02, 0xc1, 0xea, 0x9b, 0xaf, 0x19, 0x82, 0xd5, 0xa1, 0xb2, 0xa1, 0xb2, 0xa1, 0xb2, 0xa1,
		0xb2, 0xa1, 0xb2, 0x11, 0xac, 0x4e, 0xfa, 0x0f, 0x81, 0x04, 0xbc, 0xf3, 0xe3, 0x26, 0x97, 0x19,
		0xba, 0xe6, 0x45, 0x0f, 0xc1, 0xea, 0x10, 0x3e, 0x0d, 0x61, 0x04, 0x60, 0x99, 0x08, 0x56, 0x07,
		0xcf, 0x04, 0xcf, 0x04, 0xcf, 0x04, 0xcf, 0x04, 0xcf, 0x44, 0xb0, 0x3a, 0x38, 0x26, 0x38, 0x26,
		0x38, 0x66, 0x8e, 0x38, 0x26, 0x82, 0xd5, 0xc1, 0x32, 0xc1, 0x32, 0xd5, 0xce, 0x80, 0x60, 0x75,
		0xae, 0x60, 0x75, 0x8e, 0x30, 0x61, 0x2d, 0xa5, 0xb1, 0xea, 0x57, 0xc1, 0x67, 0x47, 0xc7, 0x16,
		0xfa, 0x83, 0xb7, 0xbb, 0x1d, 0x5b, 0x88, 0x3b, 0x6b, 0xa4, 0xf4, 0x68, 0xed, 0x72, 0xd7, 0x16,
		0xda, 0x3c, 0x0f, 0x96, 0xfc, 0x0e, 0xb6, 0x7e, 0x2d, 0x15, 0xf4, 0x6b, 0xd9, 0x64, 0x2a, 0xf4,
		0x6b, 0xc9, 0xa4, 0xbf, 0x11, 0xfd, 0x5a, 0xe6, 0x26, 0x30, 0xfa, 0xff, 0x37, 0x72, 0x3d, 0xdd,
		0xb4, 0x3c, 0xe1, 0x7c, 0x35, 0x06, 0x7c, 0xa9, 0x70, 0x8b, 0x13, 0xa3, 0xeb, 0x77, 0xda, 0xc0,
		0x54, 0x01, 0xa8, 0x72, 0x83, 0xab, 0x32, 0x90, 0x55, 0x06, 0xb6, 0x6a, 0x40, 0x37, 0x1f, 0x0e,
		0x0a, 0xfe, 0xae, 0xdf, 0x23, 0xd3, 0xf2, 0xf6, 0x2a, 0x8c, 0xdd, 0xbe, 0xeb, 0x68, 0xbe, 0x1d,
		0xff, 0x83, 0xa1, 0xf9, 0x36, 0xe7, 0x03, 0xa0, 0xf9, 0x36, 0xb5, 0x48, 0x55, 0x2b, 0x87, 0xd5,
		0xc3, 0xfd, 0x7a, 0xe5, 0x10, 0x2d, 0xb7, 0xd9, 0x64, 0x0b, 0x2d, 0xb7, 0x95, 0x3e, 0x3f, 0x65,
		0xad, 0x91, 0x90, 0xf1, 0xf0, 0xe5, 0x80, 0x2d, 0x72, 0x2d, 0xae, 0xcc, 0x2f, 0x90, 0x2d, 0x90,
		0x2d, 0x90, 0x2d, 0x90, 0xad, 0x8c, 0x91, 0x2d, 0xd6, 0xcc, 0x2c, 0xc6, 0x8c, 0x2c, 0x10, 0x2e,
		0x10, 0x2e, 0x10, 0xae, 0x2c, 0x10, 0x2e, 0xf6, 0x4c, 0x2a, 0x30, 0x2d, 0x30, 0xad, 0x1c, 0x32,
		0x2d, 0xae, 0xa2, 0x62, 0xcc, 0xc5, 0xc4, 0x58, 0x8b, 0x88, 0x71, 0x14, 0x0f, 0xbb, 0x01, 0x0f,
		0x05, 0x0f, 0x05, 0x0f, 0x05, 0x0f, 0x05, 0x0f, 0x55, 0x52, 0xd4, 0x8b, 0xa9, 0x98, 0x57, 0x36,
		0x8d, 0x88, 0x49, 0x64, 0x8a, 0xfe, 0x60, 0xde, 0x3f, 0xe8, 0xb7, 0xdf, 0xf8, 0xac, 0x89, 0xa5,
		0x99, 0xa1, 0x26, 0xa1, 0x26, 0xa1, 0x26, 0xa1, 0x26, 0xa1, 0x26, 0x67, 0xd5, 0xe4, 0x24, 0xc0,
		0x5d, 0xff, 0xfb, 0x76, 0xe8, 0x32, 0x6a, 0xcb, 0x03, 0x86, 0xa9, 0xae, 0xad, 0xb1, 0x3b, 0xa6,
		0xf0, 0x6f, 0xa6, 0xcf, 0x06, 0x1f, 0xb1, 0xcc, 0x49, 0xe1, 0x23, 0x86, 0x8f, 0x98, 0x48, 0xa4,
		0xca, 0x07, 0xd5, 0xea, 0x7e, 0xbd, 0x5a, 0x2d, 0xd5, 0xf7, 0xea, 0xa5, 0xc3, 0x5a, 0xad, 0xbc,
		0x5f, 0x46, 0x78, 0x0e, 0x9b, 0x94, 0xc1, 0x69, 0x9c, 0x5b, 0xbe, 0xf7, 0x68, 0x3c, 0xb1, 0xb2,
		0xbc, 0x70, 0x3e, 0x70, 0x3b, 0x70, 0x3b, 0x70, 0x3b, 0x70, 0x3b, 0x70, 0x3b, 0x70, 0x3b, 0x70,
		0x3b, 0x70, 0x3b, 0x58, 0xdd, 0xe0, 0x76, 0xe0, 0x76, 0xe0, 0x76, 0xe0, 0x76, 0x32, 0xb9, 0x9d,
		0x69, 0xf1, 0x72, 0xbb, 0xf1, 0x7c, 0xe0, 0x76, 0xe0, 0x76, 0xe0, 0x76, 0xe0, 0x76, 0xe0, 0x76,
		0xe0, 0x76, 0xe0, 0x76, 0xe0, 0x76, 0xb0, 0xba, 0xc1, 0xed, 0xc0, 0xed, 0xc0, 0xed, 0x76, 0x8f,
		0xdb, 0xa1, 0x2e, 0xea, 0x8a, 0x79, 0x52, 0x57, 0x17, 0x95, 0xba, 0xee, 0x70, 0x8a, 0x8a, 0xa2,
		0x12, 0x96, 0x19, 0xce, 0x46, 0x45, 0xd4, 0x91, 0xd5, 0x0f, 0xcb, 0xc2, 0x92, 0x57, 0x45, 0x9d,
		0x4e, 0x95, 0xf1, 0xca, 0xa8, 0x25, 0x54, 0x46, 0x4d, 0x91, 0xa3, 0x03, 0x95, 0x51, 0x77, 0x59,
		0x49, 0x93, 0x57, 0x46, 0xed, 0x4d, 0x4e, 0x3d, 0x93, 0xcf, 0x38, 0x9c, 0x8f, 0xc7, 0x67, 0x5c,
		0x86, 0xcf, 0x38, 0xcd, 0x10, 0xca, 0x0d, 0xa5, 0xca, 0x20, 0x55, 0x19, 0xb4, 0xaa, 0x81, 0x58,
		0x1e, 0xa6, 0x48, 0xed, 0x33, 0xa6, 0x86, 0xde, 0x68, 0x22, 0xae, 0x3c, 0xfe, 0xa5, 0x13, 0xce,
		0x93, 0xcf, 0x3f, 0x5d, 0x50, 0xc6, 0xbc, 0xfe, 0x68, 0x52, 0x86, 0xfc, 0xfe, 0xc8, 0x6d, 0x81,
		0x0e, 0xb0, 0x59, 0x53, 0x76, 0x0a, 0x95, 0x9e, 0x2a, 0xe5, 0xa7, 0x5c, 0x09, 0x2a, 0x57, 0x86,
		0x6a, 0x95, 0x22, 0x8f, 0x72, 0x64, 0x52, 0x92, 0xd1, 0x52, 0xaa, 0xeb, 0x00, 0xcb, 0x57, 0x47,
		0x60, 0x89, 0x5d, 0x94, 0xd1, 0xb6, 0x7d, 0xe3, 0x35, 0x43, 0xdb, 0x76, 0x28, 0x6d, 0x28, 0x6d,
		0x28, 0x6d, 0x28, 0x6d, 0x28, 0x6d, 0xb4, 0x6d, 0x27, 0xfc, 0x87, 0xb6, 0xed, 0xbc, 0xf3, 0xa3,
		0x6f, 0x36, 0x33, 0x6c, 0xcd, 0x8b, 0x1e, 0xda, 0xb6, 0x43, 0xfc, 0x38, 0x75, 0x33, 0xff, 0x6c,
		0x37, 0x60, 0x99, 0x1b, 0x0b, 0x61, 0x14, 0x83, 0xc1, 0xd8, 0x7f, 0x64, 0xd9, 0xb8, 0x59, 0xf1,
		0x10, 0x60, 0x99, 0x60, 0x99, 0x60, 0x99, 0x60, 0x99, 0x60, 0x99, 0x8c, 0x27, 0x96, 0xb5, 0xd5,
		0xc9, 0x22, 0x06, 0xd7, 0xc0, 0x34, 0xc1, 0x34, 0x61, 0xea, 0x83, 0x69, 0xca, 0x14, 0x3d, 0xf6,
		0xd6, 0x29, 0x10, 0x3e, 0xf0, 0xcc, 0xac, 0xf1, 0xcc, 0x4c, 0x47, 0x9d, 0x31, 0x65, 0xe5, 0x44,
		0xf3, 0xa5, 0x2e, 0x3b, 0x27, 0x62, 0xcf, 0x45, 0x96, 0x50, 0x61, 0x2d, 0x5d, 0x09, 0x3b, 0xd7,
		0x93, 0x4f, 0xdf, 0x0d, 0xb9, 0x35, 0xca, 0x9c, 0xac, 0xd8, 0x2d, 0xc3, 0x13, 0x7c, 0x11, 0xeb,
		0xd4, 0xe9, 0x62, 0x9a, 0x8a, 0x80, 0xf5, 0x0a, 0x02, 0xd6, 0x33, 0xe4, 0x98, 0x41, 0xc0, 0x3a,
		0x02, 0xd6, 0x5f, 0x5f, 0x32, 0x04, 0xac, 0xcb, 0x5e, 0x50, 0x04, 0xac, 0xcb, 0x54, 0x6e, 0xb8,
		0x95, 0xc8, 0xb4, 0xd2, 0x53, 0xa5, 0xfc, 0x94, 0x2b, 0x41, 0xe5, 0xca, 0x50, 0xad, 0x52, 0xe4,
		0xf5, 0x44, 0x20, 0x60, 0x9d, 0x90, 0x5d, 0x20, 0x60, 0x7d, 0xf3, 0x35, 0x43, 0xc0, 0x3a, 0x94,
		0x36, 0x94, 0x36, 0x94, 0x36, 0x94, 0x36, 0x94, 0x36, 0x02, 0xd6, 0x09, 0xff, 0x21, 0x8c, 0x80,
		0x77, 0x7e, 0xdc, 0xe4, 0x32, 0xc3, 0xd6, 0xbc, 0xe8, 0x21, 0x60, 0x1d, 0xe2, 0xc7, 0xa9, 0x9b,
		0xf9, 0x67, 0x43, 0xc0, 0xfa, 0xe6, 0x42, 0x88, 0x80, 0x75, 0xb0, 0x4c, 0xb0, 0x4c, 0xb0, 0x4c,
		0xb0, 0x4c, 0xb0, 0x4c, 0x04, 0xac, 0x83, 0x69, 0x82, 0x69, 0x82, 0x69, 0xe6, 0x89, 0x69, 0x22,
		0x60, 0x1d, 0x3c, 0x13, 0x3c, 0x53, 0xe5, 0x0c, 0x08, 0x58, 0x67, 0x0b, 0x58, 0xe7, 0x88, 0x14,
		0xd6, 0xd2, 0x1a, 0xaf, 0x4e, 0xd8, 0x6a, 0x82, 0xfe, 0xa0, 0xa0, 0x73, 0x4b, 0xb6, 0x8e, 0xda,
		0x6e, 0x74, 0x6f, 0x89, 0x0e, 0x57, 0x66, 0x3a, 0xb8, 0xbc, 0x49, 0xf1, 0xf1, 0x29, 0x88, 0x27,
		0xcf, 0x31, 0xf4, 0x91, 0xbf, 0x3d, 0xb7, 0x03, 0x1a, 0x86, 0x5f, 0xf8, 0xf6, 0x20, 0x2c, 0x32,
		0x5e, 0xcb, 0xd0, 0x37, 0xe5, 0xc3, 0x87, 0x30, 0xed, 0xaa, 0xe8, 0x0e, 0x45, 0xcf, 0xbc, 0x33,
		0x7b, 0x01, 0xce, 0xe8, 0xde, 0xf3, 0x50, 0x68, 0xff, 0xd2, 0x7e, 0x39, 0xbe, 0xee, 0x5c, 0xfc,
		0x92, 0xb3, 0xae, 0x2a, 0xc1, 0x9e, 0xe5, 0xb9, 0xa7, 0xca, 0x66, 0x9b, 0x9a, 0xc9, 0x5c, 0xb0,
		0x53, 0xe1, 0xf6, 0x1c, 0x73, 0xc8, 0x62, 0x7e, 0x46, 0x87, 0xa4, 0x69, 0xf5, 0x06, 0xa3, 0xbe,
		0xd0, 0xbc, 0x07, 0xd3, 0xd5, 0x7a, 0xb6, 0xe5, 0xf9, 0xc8, 0xee, 0x68, 0x77, 0xb6, 0xa3, 0xf9,
		0x0a, 0x4b, 0x8b, 0x14, 0xd6, 0x17, 0x6b, 0xb2, 0xe0, 0xda, 0x78, 0x03, 0x46, 0xce, 0x58, 0x6d,
		0x13, 0x6f, 0x3e, 0xa3, 0x1b, 0x7e, 0xf6, 0x20, 0xf5, 0x67, 0x36, 0x83, 0xc1, 0x0a, 0x56, 0xe1,
		0x73, 0x9f, 0x3b, 0x57, 0xc9, 0xe5, 0x00, 0xe6, 0x32, 0xe9, 0xa8, 0x37, 0xa9, 0xb6, 0x47, 0x88,
		0xcd, 0xf8, 0xd4, 0x99, 0xef, 0x04, 0x98, 0x90, 0x1e, 0x63, 0x5d, 0xee, 0x51, 0x96, 0x77, 0x14,
		0x24, 0x0a, 0x2d, 0x55, 0xaf, 0x30, 0xda, 0xde, 0x60, 0x44, 0xa9, 0xd5, 0x64, 0xa1, 0x04, 0x94,
		0x21, 0x03, 0x0c, 0xa1, 0x01, 0xd4, 0xb6, 0x07, 0xdb, 0x55, 0x3f, 0x9b, 0x79, 0xc1, 0x73, 0x75,
		0x9f, 0x6e, 0x6a, 0x4e, 0x95, 0xba, 0x5c, 0x70, 0x85, 0x37, 0xa3, 0x80, 0xc8, 0x7b, 0xc0, 0xce,
		0x4f, 0x47, 0xdb, 0x07, 0xb6, 0x84, 0x3e, 0xb0, 0x2a, 0x81, 0x4e, 0xa5, 0xc7, 0x02, 0x7d, 0x60,
		0x53, 0xcb, 0x61, 0x88, 0xce, 0x0c, 0x79, 0x4c, 0xd2, 0x34, 0x3d, 0x75, 0x02, 0x5f, 0xfa, 0xdf,
		0xb7, 0x43, 0xd2, 0x83, 0x13, 0xe2, 0xd8, 0x01, 0xe1, 0x14, 0xd7, 0xd6, 0xf8, 0xee, 0xbf, 0xf0,
		0x6f, 0xe2, 0xcf, 0xc2, 0x13, 0xd0, 0xc4, 0xe0, 0xce, 0xe1, 0x0c, 0x58, 0xe2, 0x0e, 0x50, 0x52,
		0x16, 0x13, 0xc2, 0x1f, 0x03, 0xc2, 0x11, 0xbb, 0xce, 0x19, 0x60, 0x34, 0x0d, 0x28, 0x3a, 0xa8,
		0x56, 0xf7, 0xeb, 0xd5, 0x6a, 0xa9, 0xbe, 0x57, 0x2f, 0x1d, 0xd6, 0x6a, 0xe5, 0xfd, 0x72, 0x0d,
		0xd2, 0x93, 0x09, 0xdd, 0x48, 0x3f, 0xfa, 0x4d, 0xa6, 0x74, 0x3a, 0xc3, 0x7d, 0x64, 0x34, 0x17,
		0xe9, 0xbd, 0x24, 0xa3, 0x7a, 0x9a, 0xb9, 0xa7, 0x5c, 0x7d, 0x97, 0x75, 0xd5, 0x6e, 0x9c, 0x34,
		0x3f, 0x35, 0x1b, 0xa7, 0xbf, 0xe4, 0xbc, 0x0e, 0x1c, 0xc3, 0xad, 0xa5, 0x32, 0x26, 0xb0, 0x92,
		0x11, 0x6c, 0xb2, 0xe5, 0xb9, 0xd0, 0xab, 0x9c, 0x77, 0x9a, 0x4b, 0x07, 0xab, 0xf3, 0x20, 0xa6,
		0xf7, 0x56, 0xda, 0x57, 0x5f, 0xeb, 0x6a, 0xbe, 0xa8, 0xcd, 0xbc, 0x68, 0xba, 0x9a, 0x78, 0x1a,
		0x0e, 0xcc, 0x9e, 0xe9, 0x0d, 0x9e, 0xa3, 0xab, 0x2d, 0xbe, 0xb2, 0x6c, 0x0a, 0x92, 0x8c, 0xd4,
		0xdd, 0x72, 0x2a, 0x3f, 0x83, 0x4b, 0xe7, 0x30, 0x89, 0x84, 0x20, 0x62, 0x37, 0x8f, 0xf6, 0xd1,
		0x9b, 0x0c, 0xa0, 0x6c, 0x61, 0x59, 0x77, 0x30, 0xb8, 0x83, 0x97, 0xe7, 0x24, 0xb2, 0x25, 0x39,
		0x4a, 0x55, 0x16, 0x22, 0x45, 0x4b, 0x73, 0x8e, 0x6f, 0xe0, 0x2f, 0x5f, 0x39, 0x01, 0xfc, 0xe5,
		0x49, 0x55, 0x36, 0xfc, 0xe5, 0x69, 0xd5, 0x4a, 0xd9, 0xf7, 0x97, 0x7b, 0x62, 0x7a, 0xe3, 0x47,
		0x09, 0xf1, 0xb3, 0x50, 0x56, 0xae, 0x12, 0xce, 0xd1, 0xb0, 0x46, 0x8f, 0xf4, 0xa7, 0xb3, 0x63,
		0x5f, 0x79, 0x8e, 0x69, 0xdd, 0xf3, 0x04, 0x29, 0x96, 0xfc, 0x9d, 0x9a, 0xaa, 0x2f, 0x06, 0x12,
		0x57, 0xf6, 0x67, 0x3c, 0xbe, 0xee, 0x5c, 0x14, 0x32, 0x9d, 0xdd, 0xd5, 0xb1, 0x9b, 0x4c, 0x75,
		0x2f, 0xc7, 0x8b, 0x45, 0xde, 0x02, 0x61, 0xc1, 0x90, 0x39, 0xd2, 0x4a, 0x88, 0xc1, 0xa4, 0xb5,
		0xe5, 0x11, 0x83, 0xa9, 0x34, 0x06, 0x93, 0xac, 0x8b, 0x8e, 0xd2, 0xd8, 0x4b, 0x8a, 0xee, 0x38,
		0xe9, 0x0c, 0xba, 0xa4, 0xe9, 0x76, 0x43, 0xda, 0xdd, 0x86, 0x3c, 0xe4, 0xb2, 0x82, 0x90, 0x4b,
		0x46, 0x46, 0x85, 0x90, 0xcb, 0x3c, 0x6a, 0x3e, 0x84, 0x5c, 0xc2, 0x85, 0x04, 0x17, 0x12, 0x5c,
		0x48, 0x70, 0x21, 0x29, 0x77, 0x21, 0x21, 0xe4, 0x32, 0xce, 0x44, 0x08, 0xb9, 0x8c, 0x33, 0x19,
		0x42, 0x2e, 0x33, 0xea, 0x8a, 0xd3, 0x10, 0x72, 0x89, 0x90, 0xcb, 0xf4, 0x8d, 0x8e, 0x90, 0xcb,
		0x75, 0x73, 0x21, 0xe4, 0x32, 0xcb, 0xb6, 0xff, 0x2a, 0x0e, 0x80, 0x90, 0x4b, 0x84, 0x5c, 0x12,
		0x1c, 0x2c, 0x84, 0x5c, 0xbe, 0x76, 0xf0, 0x10, 0x72, 0x89, 0x90, 0x4b, 0xd8, 0x47, 0xa4, 0xcf,
		0x4b, 0x12, 0x72, 0x69, 0xde, 0x5b, 0xc6, 0x40, 0xf4, 0x59, 0xdd, 0xc1, 0xcb, 0x73, 0xc2, 0x27,
		0xbc, 0x72, 0x02, 0xf8, 0x84, 0x93, 0xaa, 0x25, 0xf8, 0x84, 0xd3, 0x8a, 0xbc, 0xf0, 0x09, 0x6f,
		0x8d, 0x63, 0xf0, 0x09, 0xa7, 0x89, 0x74, 0xc3, 0x27, 0x4c, 0x72, 0xb8, 0xe0, 0x13, 0x96, 0x24,
		0x2a, 0xf0, 0x09, 0xc3, 0x27, 0x0c, 0xce, 0xb3, 0x8a, 0xf3, 0x20, 0xcd, 0x2c, 0xb1, 0x25, 0x8f,
		0x34, 0x33, 0xf0, 0x41, 0xf0, 0x41, 0xf0, 0x41, 0xf0, 0x41, 0xa4, 0x99, 0x25, 0xdd, 0x20, 0xa4,
		0x99, 0x65, 0x80, 0xc7, 0x20, 0xcd, 0x2c, 0xb5, 0xb6, 0x3c, 0xd2, 0xcc, 0xa4, 0x08, 0x5d, 0xee,
		0xd3, 0xcc, 0xa8, 0x7a, 0xdf, 0x29, 0xcd, 0x32, 0x23, 0xe8, 0x69, 0x27, 0x31, 0xc9, 0xec, 0x4d,
		0x8a, 0x24, 0x9d, 0x4a, 0xc2, 0xd5, 0x4b, 0x76, 0x41, 0x6a, 0x2e, 0x9f, 0x32, 0x59, 0x96, 0x23,
		0xc5, 0xc9, 0x65, 0x4e, 0x82, 0xbc, 0xc9, 0xee, 0x43, 0x41, 0xd3, 0x7f, 0x42, 0x72, 0x12, 0xa4,
		0x74, 0xfe, 0x4f, 0xc1, 0xf7, 0x09, 0xf9, 0x3d, 0x15, 0x9f, 0x27, 0xe7, 0xef, 0xe4, 0x7c, 0x9d,
		0x96, 0x9f, 0xa7, 0x4b, 0xcb, 0xc8, 0x4e, 0x5a, 0x2c, 0x18, 0xfd, 0x47, 0xd3, 0xd2, 0x7d, 0xe3,
		0x65, 0xe4, 0xd2, 0x25, 0x59, 0xcf, 0xcd, 0x22, 0x3b, 0x8f, 0x93, 0xd0, 0x25, 0x3b, 0x11, 0x27,
		0xef, 0xe8, 0xf8, 0xf4, 0xac, 0x79, 0xde, 0xbd, 0x6e, 0xcb, 0x35, 0x86, 0x6e, 0x68, 0xf2, 0xce,
		0x4b, 0x68, 0xf5, 0x83, 0xbc, 0xf3, 0x34, 0x41, 0x34, 0x0f, 0x54, 0x67, 0x83, 0x0a, 0x93, 0xb9,
		0x4c, 0x23, 0x89, 0x37, 0xfb, 0xc2, 0xf2, 0x4c, 0xef, 0xd9, 0x11, 0x77, 0x14, 0x52, 0x3f, 0xb1,
		0xeb, 0x08, 0xee, 0xbb, 0x0b, 0xcd, 0xf0, 0xd1, 0x3f, 0x1a, 0x2e, 0xc3, 0xbd, 0x61, 0xe7, 0xfa,
		0xfc, 0xbc, 0xd1, 0xea, 0x8e, 0xb1, 0xfd, 0xaa, 0x73, 0xdc, 0xb9, 0xbe, 0xa2, 0x3a, 0x61, 0x41,
		0xdc, 0x80, 0x4b, 0x7a, 0x6f, 0xc8, 0xd4, 0xfc, 0x75, 0xbc, 0x5a, 0xa7, 0x17, 0x7f, 0x9c, 0x67,
		0xb2, 0x63, 0x2e, 0xeb, 0x2a, 0xc9, 0xb6, 0x17, 0xe8, 0x1d, 0x93, 0x37, 0x69, 0x47, 0xe3, 0x54,
		0xd6, 0x28, 0xea, 0x13, 0xa6, 0xcf, 0x44, 0x22, 0x45, 0x97, 0x04, 0x02, 0xbb, 0x11, 0x76, 0x23,
		0xec, 0xc6, 0x9d, 0xb7, 0x1b, 0xdd, 0xf1, 0x4d, 0x31, 0xa1, 0xc9, 0x78, 0xb0, 0x03, 0xba, 0xe0,
		0xc1, 0x1e, 0xf4, 0xf5, 0xa1, 0x63, 0xda, 0x8e, 0xe9, 0x3d, 0xd3, 0x69, 0x83, 0xf9, 0x69, 0xb2,
		0xe4, 0x53, 0x29, 0xc1, 0x87, 0x92, 0x41, 0x5d, 0xe8, 0xb8, 0x5f, 0x87, 0xd0, 0x85, 0x29, 0xd4,
		0x85, 0xc1, 0xc6, 0x40, 0x17, 0x4a, 0x96, 0xf8, 0x91, 0x69, 0x79, 0x07, 0x84, 0xaa, 0x90, 0xc2,
		0x79, 0x42, 0x9b, 0xfc, 0x43, 0x18, 0xe3, 0xc7, 0x91, 0xec, 0xc3, 0x95, 0xe4, 0xc3, 0x9e, 0x9e,
		0xc1, 0x97, 0x96, 0x41, 0xe8, 0x95, 0x61, 0x49, 0xe2, 0x89, 0x44, 0xa0, 0x0e, 0x11, 0x48, 0x95,
		0xd3, 0x49, 0xfe, 0xa8, 0x37, 0xa9, 0x56, 0x5f, 0x0c, 0x55, 0x98, 0x0a, 0x8e, 0xb8, 0x13, 0x8e,
		0xb0, 0x7a, 0x99, 0x54, 0x08, 0x13, 0x2d, 0x7c, 0xf9, 0xe9, 0x44, 0xdb, 0xab, 0x94, 0x0e, 0x35,
		0x5d, 0xbb, 0xbc, 0xfa, 0xbd, 0xad, 0x77, 0x1a, 0x47, 0x5a, 0xe3, 0xc9, 0x13, 0x96, 0x6b, 0xda,
		0x96, 0xab, 0x79, 0x76, 0xf0, 0xb2, 0x76, 0x67, 0x3b, 0x5f, 0xac, 0xd6, 0x55, 0x5b, 0x0b, 0x83,
		0x7f, 0x72, 0x96, 0x56, 0x31, 0xdd, 0xca, 0x3c, 0x67, 0x56, 0xc4, 0xdd, 0x6b, 0x60, 0x1d, 0x81,
		0x29, 0x49, 0x5a, 0xbb, 0x8d, 0x01, 0x38, 0x3e, 0x7c, 0x28, 0x8e, 0x0b, 0xa1, 0x98, 0xd6, 0xbd,
		0x3e, 0x74, 0x6c, 0xcf, 0xee, 0xd9, 0x03, 0xed, 0x5f, 0xda, 0x2f, 0x51, 0x40, 0x47, 0xfb, 0xb8,
		0xf3, 0x5b, 0xf7, 0xaa, 0xd1, 0xb9, 0x6e, 0x77, 0x7d, 0xb9, 0xfa, 0x25, 0x67, 0x98, 0xc1, 0x50,
		0xaa, 0x4d, 0x2d, 0x5c, 0xc4, 0xd8, 0xe1, 0x4c, 0x1a, 0xc6, 0x9c, 0x95, 0xd9, 0xa2, 0xe3, 0xf3,
		0xc7, 0x83, 0xb0, 0x34, 0xef, 0x41, 0x68, 0xd1, 0x12, 0x6b, 0xd1, 0x12, 0x9b, 0xee, 0x04, 0x9f,
		0x35, 0x6a, 0x01, 0x63, 0xac, 0xba, 0xa6, 0xae, 0xda, 0x9a, 0x92, 0x2a, 0x6b, 0x73, 0x47, 0x69,
		0xd3, 0xdd, 0x46, 0x06, 0x4f, 0x96, 0x38, 0x4b, 0x2a, 0x2f, 0x47, 0x1e, 0x85, 0xe7, 0x98, 0x3d,
		0xba, 0x5b, 0x91, 0x70, 0x7c, 0x5c, 0x09, 0xe0, 0x7a, 0x7c, 0x23, 0xa8, 0xc7, 0xf5, 0xb8, 0x2a,
		0xc4, 0xcb, 0x60, 0x58, 0xa5, 0xe5, 0xed, 0x55, 0x08, 0xaf, 0x04, 0xf6, 0x70, 0x25, 0x30, 0x7d,
		0x70, 0xd6, 0x2b, 0x81, 0x4a, 0xb9, 0x5a, 0xaf, 0x1e, 0xec, 0xed, 0x57, 0x0f, 0x72, 0xec, 0x18,
		0xf6, 0xe1, 0x07, 0x57, 0x03, 0x1b, 0x8b, 0x02, 0xee, 0x08, 0x60, 0x6f, 0xe7, 0xc5, 0xde, 0xa6,
		0x29, 0xc3, 0xb5, 0x60, 0x74, 0x53, 0x14, 0x65, 0x61, 0x4a, 0xee, 0x6a, 0x5d, 0xb5, 0xbb, 0x67,
		0x8d, 0xce, 0x65, 0xf3, 0xa4, 0xdb, 0x3c, 0xff, 0xad, 0x71, 0xd9, 0xec, 0xc8, 0xae, 0xbd, 0x85,
		0x20, 0x25, 0x30, 0x12, 0x30, 0x12, 0x30, 0x12, 0xc9, 0x8c, 0x04, 0x89, 0x5e, 0x9b, 0x2d, 0xd4,
		0x0c, 0xc0, 0x77, 0xfe, 0x6a, 0x37, 0x90, 0xe4, 0xb5, 0xc5, 0x82, 0x1d, 0x7f, 0xbc, 0xba, 0x68,
		0x5d, 0x77, 0x1a, 0xc8, 0xf6, 0xda, 0x68, 0xb9, 0x88, 0x0c, 0x88, 0xdc, 0xae, 0xd7, 0x65, 0xa3,
		0x75, 0xdc, 0x69, 0xfe, 0xde, 0x40, 0xa2, 0xdc, 0x2e, 0x24, 0xca, 0x85, 0xa5, 0x7f, 0x88, 0x88,
		0x48, 0x30, 0x3a, 0x2c, 0x6d, 0x58, 0xda, 0xb0, 0xb4, 0x61, 0x69, 0x4b, 0x95, 0x78, 0xa4, 0xc6,
		0xc9, 0xf8, 0xac, 0xc3, 0xd9, 0xa0, 0x54, 0x22, 0x1d, 0x30, 0xa4, 0x8a, 0x96, 0x84, 0x26, 0x80,
		0x26, 0x80, 0x26, 0x40, 0x62, 0x18, 0x12, 0xc3, 0xd8, 0x38, 0x23, 0xef, 0x2d, 0x70, 0x19, 0x37,
		0x7e, 0xe9, 0x73, 0x48, 0x30, 0xdf, 0xfe, 0xd6, 0x6a, 0x10, 0x82, 0x54, 0xb9, 0x59, 0x70, 0xed,
		0x1b, 0xcf, 0xd0, 0xb6, 0x3d, 0x11, 0xc8, 0x99, 0xee, 0x7a, 0xcf, 0x03, 0xa1, 0x3b, 0xe2, 0xbf,
		0x23, 0xe1, 0x7a, 0xa2, 0x4f, 0x69, 0x78, 0xaf, 0x9d, 0x33, 0x93, 0x97, 0xc2, 0xd7, 0xe7, 0xed,
		0xcb, 0x8b, 0x4e, 0xe3, 0x04, 0x77, 0xc1, 0xe0, 0x25, 0xe0, 0x25, 0xe0, 0x25, 0x29, 0xe7, 0x25,
		0xb8, 0x0b, 0xde, 0x70, 0xa1, 0x42, 0x54, 0x6f, 0x5e, 0x9c, 0xe3, 0x2e, 0x78, 0xa3, 0x05, 0x6b,
		0x35, 0xcf, 0xff, 0xdd, 0x3d, 0xbf, 0x38, 0x6d, 0x74, 0x67, 0x96, 0xee, 0xb2, 0xf1, 0x3f, 0xd7,
		0x8d, 0x2b, 0x5c, 0x73, 0xbe, 0xbe, 0x72, 0x0b, 0x8b, 0xd6, 0xbc, 0xc4, 0x9a, 0xfd, 0x6c, 0xcd,
		0xc8, 0xcc, 0x2e, 0x7a, 0xae, 0x82, 0x2b, 0xe1, 0x38, 0x1b, 0xef, 0x08, 0x7b, 0xe8, 0x99, 0x8f,
		0xe6, 0xff, 0x5f, 0xe8, 0x9e, 0xf9, 0x28, 0x1c, 0x3a, 0x86, 0xb2, 0x34, 0x13, 0x0c, 0x71, 0x18,
		0xe2, 0x30, 0xc4, 0x61, 0x88, 0x4b, 0x95, 0xf8, 0x91, 0x69, 0x79, 0xe5, 0x7d, 0x42, 0x1b, 0x7c,
		0x1f, 0x37, 0x04, 0xd3, 0x07, 0x47, 0xe9, 0xb8, 0x44, 0x32, 0x8b, 0x1b, 0x82, 0x2d, 0x45, 0x60,
		0xbf, 0x56, 0xdb, 0xc3, 0x1d, 0x41, 0xba, 0xec, 0x6e, 0xdc, 0x11, 0xc4, 0xd9, 0x74, 0x57, 0x78,
		0xa3, 0x21, 0x43, 0xa1, 0xea, 0x85, 0x79, 0xb2, 0x74, 0x17, 0x50, 0x87, 0xe3, 0x3f, 0x83, 0x7c,
		0x03, 0x95, 0xaa, 0x53, 0xca, 0x37, 0x50, 0xa9, 0x9a, 0x8a, 0x6f, 0x20, 0x20, 0x09, 0x74, 0x03,
		0x76, 0x66, 0x0e, 0xe9, 0x06, 0xaa, 0x50, 0x80, 0x6a, 0xa8, 0x54, 0x5f, 0xa8, 0x54, 0xbd, 0xa1,
		0x16, 0x46, 0xa5, 0x6a, 0x54, 0xaa, 0x46, 0xa5, 0x6a, 0x5e, 0x02, 0xac, 0xa1, 0x52, 0x75, 0x0e,
		0x30, 0x03, 0x95, 0xaa, 0x51, 0xa9, 0x3a, 0xfe, 0xf1, 0x41, 0xa5, 0x6a, 0x54, 0xaa, 0x46, 0xa5,
		0xea, 0x6c, 0x73, 0x96, 0x74, 0x5e, 0x8f, 0x3c, 0xd8, 0x8e, 0xd7, 0x1b, 0x79, 0xba, 0x18, 0x98,
		0xf7, 0x26, 0x05, 0xf9, 0x99, 0xde, 0x90, 0x2c, 0x4d, 0x95, 0xa5, 0x4b, 0x12, 0x1f, 0x06, 0x70,
		0x4f, 0x22, 0x73, 0x60, 0xc4, 0x65, 0x6d, 0xaa, 0xff, 0x10, 0x97, 0xa5, 0x4a, 0x0d, 0x64, 0xef,
		0x9e, 0xe4, 0xd6, 0xb6, 0x07, 0xc2, 0xb0, 0x28, 0x93, 0x23, 0xca, 0xbb, 0xa0, 0x17, 0x97, 0xa8,
		0x0c, 0xa1, 0x62, 0x5c, 0x9e, 0x0b, 0xaa, 0x01, 0xaa, 0x01, 0xaa, 0x01, 0xaa, 0x41, 0xaa, 0xc4,
		0x23, 0x77, 0x6e, 0xc3, 0x85, 0x9a, 0x71, 0x54, 0xb5, 0x2f, 0x2f, 0x3a, 0x17, 0x27, 0x17, 0x2d,
		0xe4, 0xcf, 0x6d, 0xb1, 0x68, 0xad, 0xd3, 0x36, 0x72, 0xbf, 0x36, 0x5a, 0xa9, 0xcb, 0xab, 0xdf,
		0xb1, 0x54, 0x9b, 0x2d, 0xd5, 0xd5, 0x25, 0x12, 0xe5, 0x76, 0x21, 0x51, 0xce, 0xb5, 0xef, 0x3c,
		0x7d, 0xe8, 0x08, 0xf1, 0x48, 0xe3, 0x63, 0x9f, 0x9a, 0xdd, 0x0b, 0x13, 0x65, 0xc9, 0x1b, 0x15,
		0x04, 0x95, 0xc0, 0x1d, 0x95, 0x41, 0xce, 0x81, 0xb0, 0xdd, 0x94, 0x72, 0x0e, 0x84, 0xed, 0xc2,
		0x1d, 0x95, 0xd1, 0xd0, 0x32, 0x04, 0x87, 0x64, 0x08, 0x49, 0x57, 0x21, 0x2a, 0x82, 0x43, 0x10,
		0x1c, 0x12, 0xff, 0xf8, 0x20, 0x38, 0x04, 0xc1, 0x21, 0x08, 0x0e, 0x61, 0x1e, 0x75, 0x27, 0x82,
		0x43, 0x68, 0x4e, 0xf4, 0x0c, 0x03, 0x0f, 0xc6, 0x07, 0xf1, 0x04, 0xf1, 0x04, 0xf1, 0x04, 0xf1,
		0x94, 0x2a, 0xf1, 0xe6, 0x50, 0x37, 0xfa, 0x7d, 0x47, 0xb8, 0x2e, 0x25, 0xf7, 0x3c, 0x24, 0x18,
		0x3b, 0x5c, 0x9b, 0xcc, 0xb2, 0x39, 0x73, 0xf8, 0xb5, 0x4a, 0xb8, 0xf6, 0x4b, 0x7b, 0x40, 0xd8,
		0xcd, 0xbc, 0xd0, 0x36, 0x3c, 0x4f, 0x38, 0x16, 0xe9, 0xfd, 0x5c, 0x30, 0xd1, 0xdb, 0xcf, 0x25,
		0xfd, 0xf0, 0xe6, 0xc7, 0xe7, 0xb2, 0x7e, 0x78, 0x33, 0xfe, 0xb6, 0x1c, 0x7c, 0xf9, 0x5e, 0x79,
		0xf9, 0x51, 0xf9, 0x5c, 0xd2, 0xab, 0xe1, 0xab, 0x95, 0xda, 0xe7, 0x92, 0x5e, 0xbb, 0x79, 0xf7,
		0xf6, 0xcb, 0x97, 0x0f, 0xdb, 0xbe, 0xe7, 0xdd, 0xf7, 0xbd, 0x17, 0x3a, 0xb3, 0xf0, 0x86, 0x72,
		0x1b, 0x2e, 0xae, 0x9a, 0x7f, 0xb2, 0xed, 0xc5, 0x7f, 0xde, 0x72, 0xed, 0xc6, 0xbb, 0x7f, 0x10,
		0xee, 0xc7, 0x9b, 0x0c, 0x91, 0x67, 0x1e, 0x58, 0xda, 0x07, 0x2c, 0x6d, 0x0b, 0x4b, 0x81, 0x54,
		0x1b, 0xfa, 0xdd, 0xb1, 0xfe, 0xe9, 0xe6, 0x7b, 0xf9, 0x7d, 0xf5, 0xe5, 0xe8, 0xdd, 0xf7, 0xfa,
		0xcb, 0xe2, 0x8b, 0x3f, 0x56, 0xfd, 0x59, 0xf9, 0x7d, 0xfd, 0xe5, 0x68, 0xcd, 0x6f, 0xf6, 0x5f,
		0x8e, 0x36, 0x1c, 0xa3, 0xf6, 0xf2, 0x76, 0xe9, 0x4f, 0xfd, 0xd7, 0x2b, 0xeb, 0xde, 0x50, 0x5d,
		0xf3, 0x86, 0xbd, 0x75, 0x6f, 0xd8, 0x5b, 0xf3, 0x86, 0xb5, 0x8f, 0x54, 0x59, 0xf3, 0x86, 0xda,
		0xcb, 0x8f, 0xa5, 0xbf, 0x7f, 0xbb, 0xfa, 0x4f, 0xf7, 0x5f, 0xde, 0xfd, 0x58, 0xf7, 0xbb, 0xfa,
		0xcb, 0x8f, 0xa3, 0x77, 0xef, 0x00, 0xd4, 0x1b, 0x03, 0x35, 0xc4, 0x93, 0x5f, 0x3c, 0xb3, 0xa7,
		0xb8, 0x50, 0xd2, 0x40, 0xfa, 0xf9, 0xc3, 0xbd, 0x53, 0x86, 0x1c, 0x29, 0xab, 0x1c, 0x2a, 0xb8,
		0x77, 0xc2, 0xbd, 0x53, 0xfc, 0xe3, 0x83, 0x7b, 0x27, 0xdc, 0x3b, 0xe1, 0xde, 0x29, 0xdb, 0x56,
		0x47, 0x2a, 0xef, 0x9d, 0x3c, 0x0a, 0xef, 0x70, 0x04, 0x5b, 0xc1, 0xe8, 0xb8, 0x73, 0x42, 0x82,
		0xd5, 0x46, 0x30, 0x8f, 0x04, 0x2b, 0x55, 0x68, 0x87, 0x04, 0xab, 0x35, 0x9e, 0xc5, 0xec, 0x27,
		0x58, 0x75, 0xae, 0xcf, 0xcf, 0x1b, 0x2d, 0x34, 0x26, 0xdb, 0x68, 0xb1, 0xda, 0x95, 0x33, 0xe4,
		0x08, 0xfd, 0x74, 0x7d, 0xda, 0xc8, 0x0c, 0x4a, 0x6d, 0x66, 0xd0, 0x9b, 0x14, 0x09, 0x69, 0xe1,
		0xd8, 0xb2, 0x6c, 0xcf, 0x90, 0xce, 0x92, 0x0b, 0x6e, 0xef, 0x41, 0x3c, 0x1a, 0x43, 0xc3, 0x7b,
		0xf0, 0x05, 0xb2, 0x68, 0x0f, 0x85, 0xd5, 0x0b, 0x4c, 0x37, 0xdd, 0x12, 0xde, 0x37, 0xdb, 0xf9,
		0x5b, 0x37, 0x2d, 0xd7, 0x33, 0xac, 0x9e, 0x28, 0x2e, 0xbe, 0xe0, 0x2e, 0xbd, 0x52, 0xf4, 0x95,
		0x73, 0x71, 0xe0, 0x0e, 0xdd, 0x62, 0xcf, 0xb6, 0x5c, 0xcf, 0x31, 0x4c, 0x4b, 0xf4, 0x75, 0x7f,
		0xf4, 0xa2, 0x37, 0xae, 0xb1, 0x18, 0x7e, 0x2d, 0x8e, 0x27, 0x29, 0xc8, 0x0c, 0xf9, 0xf2, 0x9c,
		0x51, 0xcf, 0xb3, 0xc2, 0xa3, 0x75, 0x11, 0x7d, 0x90, 0xf3, 0xf1, 0x43, 0x36, 0xc3, 0x67, 0xec,
		0x2e, 0xfc, 0xec, 0x2e, 0xbe, 0xd0, 0x3d, 0x1b, 0x0e, 0xdc, 0x6e, 0xcb, 0x1d, 0xba, 0xdd, 0x93,
		0xe9, 0x87, 0x68, 0x1b, 0xde, 0x43, 0x37, 0xac, 0x13, 0x19, 0x7e, 0xed, 0x86, 0x36, 0xee, 0x9b,
		0x74, 0x48, 0x9b, 0x04, 0x49, 0x2b, 0x84, 0xab, 0x27, 0x47, 0xbe, 0x22, 0x98, 0x0b, 0x46, 0x95,
		0x74, 0x0e, 0xe4, 0xd2, 0x15, 0xe9, 0x34, 0x85, 0x82, 0x9e, 0x10, 0xd2, 0x12, 0x2a, 0x3a, 0x42,
		0x4e, 0x43, 0xc8, 0xe9, 0x07, 0x2d, 0xed, 0x48, 0x97, 0x6e, 0x91, 0x4e, 0x2f, 0x22, 0x89, 0x1d,
		0x08, 0xe3, 0x4e, 0x2e, 0xa5, 0x88, 0xa8, 0x84, 0xc4, 0xc2, 0xeb, 0x85, 0x76, 0xa8, 0xfe, 0x3e,
		0x7c, 0x08, 0xf5, 0x52, 0x31, 0x80, 0xac, 0x1c, 0x01, 0xfb, 0xb0, 0x32, 0xd4, 0xc7, 0x9a, 0x57,
		0x37, 0x3c, 0xcf, 0x31, 0x6f, 0x47, 0x5e, 0x40, 0x31, 0x24, 0x23, 0xfd, 0xea, 0x69, 0xe4, 0x42,
		0x7f, 0x19, 0xd0, 0x0f, 0xe8, 0x07, 0xf4, 0xcb, 0x91, 0xd9, 0x53, 0x53, 0x6e, 0x3b, 0xdf, 0x42,
		0x6f, 0x72, 0xaa, 0x88, 0x5c, 0xe0, 0xd2, 0x79, 0x03, 0x01, 0xb4, 0x90, 0x41, 0x0c, 0x25, 0xd4,
		0x30, 0x40, 0x0e, 0x35, 0xf4, 0xb0, 0x41, 0x10, 0x1b, 0x14, 0xf1, 0x40, 0x12, 0x91, 0x27, 0x46,
		0x76, 0x55, 0x12, 0xd3, 0xa1, 0x11, 0xf8, 0xbe, 0x70, 0x3d, 0xd3, 0x32, 0x48, 0x23, 0x10, 0xa2,
		0x53, 0x35, 0x3b, 0x19, 0x91, 0xac, 0xd0, 0xdc, 0xe8, 0x91, 0x83, 0x1a, 0x07, 0xb8, 0x31, 0x82,
		0x1c, 0x17, 0xd8, 0xb1, 0x83, 0x1e, 0x3b, 0xf8, 0xf1, 0x82, 0x20, 0x0d, 0x18, 0x12, 0x81, 0x22,
		0x1d, 0x85, 0x5f, 0x7b, 0x62, 0x48, 0xb3, 0xd3, 0x96, 0x0c, 0xb2, 0x43, 0xc2, 0x39, 0x48, 0xb3,
		0xd5, 0x26, 0xff, 0x18, 0x22, 0xbb, 0x98, 0xb3, 0xd7, 0x96, 0xf6, 0xe8, 0x80, 0x61, 0x2e, 0xae,
		0xc0, 0xfc, 0x68, 0xc2, 0xec, 0x67, 0xb5, 0x4d, 0xfe, 0xdd, 0x70, 0x6c, 0x0f, 0x67, 0xf2, 0x44,
		0x34, 0x6b, 0x3e, 0xb2, 0xdd, 0xa2, 0x7d, 0xa2, 0x0d, 0x3f, 0x7c, 0x9f, 0x23, 0x98, 0xdb, 0x07,
		0xcc, 0xc9, 0x82, 0x39, 0xa4, 0x21, 0xe5, 0x2e, 0x4b, 0x6e, 0x67, 0x80, 0x1f, 0x62, 0x9b, 0xab,
		0xec, 0x39, 0x26, 0x45, 0xb8, 0xf3, 0xd9, 0x7f, 0x04, 0xa6, 0x40, 0xc1, 0x11, 0x3d, 0xdb, 0xe9,
		0xeb, 0x8e, 0x3d, 0xf2, 0x84, 0x2e, 0x2c, 0xe3, 0x76, 0x20, 0xfa, 0xf4, 0xce, 0xb4, 0x95, 0xb3,
		0xc2, 0xab, 0x06, 0xaf, 0x1a, 0xbc, 0x6a, 0xf0, 0xaa, 0x65, 0xca, 0xab, 0x46, 0x57, 0x6c, 0x78,
		0x89, 0xc7, 0x94, 0xb3, 0xa2, 0xa6, 0x52, 0x7d, 0x1b, 0x45, 0x14, 0x8f, 0x1b, 0x8d, 0xaf, 0x2a,
		0x2e, 0x77, 0x65, 0x04, 0x4f, 0x91, 0xe4, 0xd6, 0x5d, 0x53, 0x13, 0xb5, 0xdb, 0xae, 0xb4, 0xc7,
		0xdf, 0x1d, 0x47, 0x9f, 0x4f, 0x6a, 0x24, 0xaf, 0x7c, 0xf9, 0x95, 0x99, 0xa0, 0xe8, 0xef, 0xef,
		0xd0, 0x31, 0x1f, 0x0d, 0xe7, 0x59, 0x0f, 0xa5, 0x8b, 0x28, 0x52, 0x63, 0x69, 0x26, 0xc4, 0x6c,
		0x20, 0x66, 0x43, 0xbd, 0xa1, 0x85, 0x98, 0x0d, 0x46, 0x2d, 0x49, 0x16, 0xb3, 0x41, 0x0e, 0x63,
		0xdc, 0x70, 0x46, 0x0c, 0x6b, 0xe0, 0x99, 0xe0, 0x99, 0xe0, 0x99, 0x69, 0xe5, 0x99, 0x54, 0x30,
		0x19, 0x4d, 0x60, 0xf4, 0x1f, 0x4d, 0x4b, 0xbf, 0x77, 0xec, 0xd1, 0xd0, 0xe5, 0xab, 0xb2, 0x33,
		0x37, 0x2b, 0xb1, 0x74, 0xd1, 0xc2, 0x26, 0x1b, 0x7c, 0x72, 0xc2, 0xa8, 0x02, 0x38, 0xe5, 0x86,
		0x55, 0x65, 0xf0, 0xaa, 0x0c, 0x66, 0xd5, 0xc0, 0x2d, 0x2d, 0xec, 0x12, 0xc3, 0x2f, 0x1b, 0x0c,
		0x47, 0x13, 0x11, 0x25, 0x49, 0xbc, 0x7a, 0xc0, 0xc9, 0xdc, 0x38, 0x0a, 0x21, 0x99, 0x1d, 0x9a,
		0x55, 0x40, 0xb4, 0x42, 0xa8, 0x56, 0x05, 0xd9, 0xca, 0xa1, 0x5b, 0x39, 0x84, 0xab, 0x85, 0x72,
		0x1e, 0x48, 0x67, 0x82, 0x76, 0x76, 0x88, 0x8f, 0x26, 0x14, 0x4f, 0xbd, 0xc1, 0xa8, 0x2f, 0xc6,
		0x56, 0x30, 0xff, 0xe1, 0x99, 0xe0, 0xc5, 0xfc, 0x63, 0x30, 0xcb, 0x2f, 0xed, 0xd5, 0x79, 0x6a,
		0x14, 0x82, 0x4a, 0xc5, 0x90, 0x02, 0x05, 0xa1, 0x5a, 0x51, 0xa4, 0x46, 0x61, 0xa4, 0x46, 0x71,
		0xa4, 0x43, 0x81, 0xf0, 0x2a, 0x12, 0x66, 0x85, 0x12, 0x2d, 0x31, 0x79, 0xa8, 0xc0, 0xab, 0x27,
		0x5e, 0x7e, 0xad, 0x8d, 0xad, 0x2d, 0xfd, 0xba, 0x82, 0xb9, 0x67, 0x6a, 0x77, 0xfc, 0xe4, 0x3f,
		0x4f, 0xe8, 0xf7, 0x03, 0xfb, 0xd6, 0x98, 0xbb, 0xd5, 0xf6, 0xcf, 0x81, 0x3e, 0xeb, 0xa4, 0x2a,
		0xce, 0xfc, 0x30, 0xfb, 0xbd, 0x2e, 0xaf, 0x1c, 0x48, 0x5a, 0xe5, 0xb7, 0x65, 0xba, 0xde, 0xb1,
		0xe7, 0x39, 0x6a, 0x64, 0xf8, 0xcc, 0xb4, 0x1a, 0x03, 0xe1, 0x43, 0x94, 0xcb, 0xaf, 0xaf, 0xc7,
		0x4f, 0x60, 0x3c, 0xcd, 0x3c, 0x41, 0xf9, 0xa0, 0x5a, 0xdd, 0xaf, 0x57, 0xab, 0xa5, 0xfa, 0x5e,
		0xbd, 0x74, 0x58, 0xab, 0x95, 0xf7, 0x29, 0x4a, 0x57, 0xbe, 0xfa, 0x50, 0x17, 0x4e, 0x5f, 0x38,
		0xa2, 0xff, 0xf1, 0xb9, 0x70, 0xa4, 0x59, 0xa3, 0xc1, 0x40, 0xe5, 0x23, 0x5c, 0xbb, 0xc2, 0x17,
		0x8e, 0x3b, 0x63, 0xe0, 0x8a, 0x37, 0xf9, 0xd4, 0x1b, 0x8c, 0x67, 0xae, 0x60, 0x5a, 0x63, 0x83,
		0xdc, 0x18, 0x0c, 0x54, 0x73, 0x83, 0xe5, 0x47, 0x01, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f,
		0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x50, 0xc3,
		0x0f, 0xac, 0xe7, 0xd4, 0xf0, 0x83, 0xe8, 0x51, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f,
		0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0x72, 0x16,
		0x2a, 0x45, 0x9c, 0xe1, 0xbc, 0x76, 0xde, 0x74, 0x65, 0x3e, 0x2f, 0xa6, 0x7d, 0x2d, 0xbf, 0x30,
		0xa7, 0x00, 0x58, 0x23, 0x6c, 0xb5, 0xf4, 0x24, 0x50, 0xb7, 0x2b, 0xed, 0xf6, 0x78, 0x51, 0x82,
		0x77, 0x2c, 0xfc, 0x78, 0xec, 0x2f, 0xd1, 0xaf, 0xc1, 0x0a, 0x91, 0xa4, 0x5a, 0xab, 0x3b, 0x90,
		0x0c, 0x87, 0xb1, 0xe0, 0x7a, 0x86, 0x27, 0xf8, 0x83, 0xc5, 0xc7, 0xd3, 0xe6, 0x3c, 0x56, 0xbc,
		0x82, 0x58, 0xf1, 0x1c, 0x51, 0x78, 0xc4, 0x8a, 0x23, 0x56, 0x5c, 0xde, 0x52, 0x22, 0x56, 0x1c,
		0xbe, 0xde, 0x3c, 0x2a, 0x86, 0x14, 0x28, 0x08, 0xd5, 0x8a, 0x22, 0x35, 0x0a, 0x23, 0x35, 0x8a,
		0x23, 0x1d, 0x0a, 0x84, 0x9f, 0xb3, 0x6b, 0xf0, 0xf5, 0x6a, 0x2a, 0x00, 0x1e, 0xbe, 0xde, 0xec,
		0xca, 0x2f, 0x7c, 0xbd, 0xf0, 0xf5, 0xfe, 0xf4, 0x11, 0x10, 0x0b, 0x22, 0x75, 0x5d, 0x11, 0x2b,
		0x0e, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e,
		0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0xb0, 0xc4, 0x0f, 0x10, 0x2b, 0x0e, 0x7e, 0x00, 0x7e, 0x00,
		0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x00, 0x7e, 0x90,
		0x4e, 0x7e, 0x80, 0x58, 0x71, 0x09, 0xf3, 0x66, 0x3a, 0x56, 0x9c, 0x33, 0xc0, 0x56, 0xcb, 0x62,
		0xa8, 0xf8, 0x55, 0xb0, 0x40, 0x79, 0x89, 0x14, 0xcf, 0x74, 0x69, 0x74, 0xe6, 0x03, 0x9e, 0xe9,
		0x83, 0x5d, 0x60, 0xc9, 0x09, 0xc8, 0xd4, 0x51, 0x2e, 0x64, 0xb4, 0xa5, 0x33, 0xe1, 0xb1, 0x2a,
		0xf4, 0x0c, 0xab, 0x6f, 0xf6, 0x0d, 0x4f, 0xe8, 0xae, 0xe8, 0xd9, 0x56, 0x7f, 0x22, 0x4b, 0x8c,
		0x0d, 0x5a, 0xd6, 0x3f, 0x02, 0xba, 0xb5, 0xa4, 0xd5, 0x0b, 0x87, 0x6e, 0x2d, 0x39, 0xf4, 0xa2,
		0xa1, 0x5b, 0xcb, 0xf6, 0x4b, 0xc6, 0xd7, 0xad, 0x65, 0x0d, 0x4a, 0x2a, 0xe8, 0xdf, 0xb2, 0xee,
		0x49, 0xd0, 0xd1, 0x25, 0x6b, 0x30, 0xae, 0x10, 0xce, 0x55, 0xc1, 0xba, 0x72, 0x78, 0x57, 0x0e,
		0xf3, 0x6a, 0xe1, 0x3e, 0x9f, 0xae, 0x27, 0xf6, 0x2c, 0x3d, 0xe6, 0xe6, 0x5d, 0xcb, 0x4a, 0x80,
		0xbb, 0xc4, 0x80, 0x02, 0xe8, 0x57, 0xa6, 0x02, 0x54, 0xaa, 0x82, 0x14, 0xa8, 0x04, 0xd5, 0xaa,
		0x21, 0x35, 0x2a, 0x22, 0x35, 0xaa, 0x22, 0x1d, 0x2a, 0x83, 0x57, 0x75, 0x30, 0xab, 0x10, 0x65,
		0xaa, 0x24, 0x9a, 0x78, 0xe8, 0x98, 0xb6, 0x63, 0x7a, 0xcf, 0xea, 0xce, 0x5b, 0xd4, 0xe5, 0x7c,
		0xf2, 0x24, 0x8a, 0xa4, 0x5c, 0x4d, 0xf8, 0x96, 0x72, 0x75, 0x93, 0x06, 0xb5, 0x93, 0x22, 0xf5,
		0x93, 0x16, 0x35, 0x94, 0x3a, 0x75, 0x94, 0x3a, 0xb5, 0x94, 0x2e, 0xf5, 0xa4, 0x46, 0x4d, 0x29,
		0x52, 0x57, 0xd1, 0xd2, 0x2b, 0x0b, 0x07, 0x5b, 0x42, 0x8c, 0x91, 0x69, 0x79, 0xe5, 0x7d, 0x95,
		0x80, 0x11, 0xea, 0x8f, 0x7d, 0x85, 0x8f, 0x70, 0x69, 0x58, 0xf7, 0xfe, 0x6a, 0x7c, 0x56, 0x7a,
		0x20, 0xd5, 0x02, 0xa6, 0x16, 0x06, 0x5a, 0x29, 0x47, 0xee, 0xe8, 0x61, 0x7e, 0x37, 0x06, 0x23,
		0xa1, 0x4e, 0xb1, 0x2f, 0x3d, 0xcf, 0x27, 0xc7, 0xe8, 0x79, 0xa6, 0x6d, 0x9d, 0x9a, 0xf7, 0xa6,
		0xaa, 0x40, 0xb4, 0xd5, 0x67, 0x59, 0xdc, 0x1b, 0x9e, 0xf9, 0x55, 0x28, 0x89, 0xbf, 0x4a, 0x11,
		0xac, 0xce, 0x8b, 0xb2, 0xf1, 0x94, 0x3e, 0x51, 0xde, 0xaf, 0xd5, 0xf6, 0x6a, 0x10, 0xe7, 0xac,
		0x89, 0xf3, 0x9b, 0xdd, 0x9c, 0xfd, 0xe6, 0xcd, 0x6e, 0x7c, 0x5e, 0x05, 0x70, 0x55, 0x50, 0x74,
		0x2f, 0xb9, 0xd6, 0x0e, 0x54, 0x72, 0x3b, 0x09, 0x5f, 0x02, 0x7c, 0x09, 0xf0, 0x25, 0xc0, 0x97,
		0x00, 0x5f, 0x42, 0x2e, 0x7c, 0x09, 0xea, 0x52, 0xcc, 0x16, 0x15, 0x88, 0x8a, 0x54, 0xb3, 0x29,
		0x88, 0xaf, 0x4d, 0x39, 0x1b, 0x56, 0x86, 0x8b, 0x61, 0x9b, 0x2b, 0x5e, 0x0b, 0x2b, 0xd2, 0x17,
		0xf9, 0xb3, 0xca, 0x14, 0x9a, 0x60, 0xb9, 0xbe, 0xa5, 0x52, 0x94, 0x6b, 0x33, 0x35, 0x36, 0x33,
		0x16, 0x9a, 0xbf, 0x36, 0xc8, 0x79, 0xed, 0x6f, 0x8a, 0x4a, 0x42, 0x2c, 0xb4, 0xac, 0xc4, 0xf5,
		0x9f, 0x4c, 0x96, 0xed, 0x6a, 0xb2, 0x6a, 0xfe, 0xcb, 0xee, 0x9a, 0xd7, 0x59, 0x1b, 0x3e, 0xf0,
		0x23, 0x00, 0x67, 0x9d, 0x0f, 0xc5, 0x34, 0x2f, 0x1d, 0xf4, 0x0e, 0x15, 0x3e, 0x76, 0x8a, 0xbe,
		0x21, 0x12, 0x29, 0x6d, 0x34, 0x0d, 0x91, 0x48, 0x39, 0xa6, 0x61, 0xa8, 0xf0, 0x11, 0xd1, 0xad,
		0x90, 0x38, 0x2d, 0x28, 0x3b, 0x98, 0x31, 0x12, 0x6c, 0x5c, 0xce, 0x7e, 0x56, 0xcb, 0xd6, 0x0b,
		0x73, 0xda, 0xbd, 0x96, 0x86, 0xf0, 0xe9, 0x0a, 0x8c, 0x16, 0x18, 0x2d, 0x30, 0x5a, 0x60, 0xb4,
		0x10, 0x2e, 0xb1, 0xb2, 0xf0, 0x69, 0xa3, 0x17, 0xde, 0xf0, 0x2b, 0xbe, 0xf6, 0x0c, 0x9f, 0x03,
		0xd7, 0x9d, 0x4a, 0x1e, 0x00, 0xd7, 0x9d, 0x69, 0x52, 0x41, 0xa9, 0x53, 0x45, 0xa9, 0x53, 0x49,
		0xe9, 0x52, 0x4d, 0x6a, 0x54, 0x94, 0x22, 0x55, 0xa5, 0x9e, 0x67, 0x2f, 0x21, 0xc6, 0xad, 0x6d,
		0x0f, 0x84, 0x61, 0xa5, 0xe1, 0xba, 0xb3, 0x8c, 0x48, 0x2d, 0xb2, 0x35, 0x46, 0xa6, 0x17, 0xcc,
		0x15, 0x98, 0x2b, 0x30, 0x57, 0x60, 0xae, 0xc0, 0x5c, 0xc9, 0xb2, 0xb9, 0x82, 0x4c, 0x2f, 0x64,
		0x7a, 0x4d, 0x17, 0x02, 0x99, 0x5e, 0x3f, 0x79, 0x1e, 0xa4, 0xc6, 0xa4, 0x1c, 0x56, 0xe7, 0x45,
		0x19, 0x99, 0x5e, 0x10, 0xe7, 0x2c, 0xdb, 0x26, 0xea, 0x67, 0x47, 0xa6, 0x17, 0x9d, 0x90, 0x23,
		0xd3, 0x0b, 0xbe, 0x04, 0xf8, 0x12, 0xe0, 0x4b, 0x80, 0x2f, 0x01, 0xbe, 0x84, 0xbc, 0xf8, 0x12,
		0x90, 0xe9, 0xa5, 0x21, 0xd3, 0x2b, 0x0b, 0x33, 0x22, 0xd3, 0x2b, 0x77, 0x99, 0x5e, 0x2a, 0x82,
		0x41, 0xb5, 0x9c, 0x26, 0x7a, 0x31, 0xb6, 0x6b, 0xe2, 0x3f, 0xff, 0xf9, 0x2a, 0x9a, 0xfd, 0x6f,
		0xf1, 0xac, 0x8c, 0xbd, 0xa9, 0x69, 0xff, 0xa8, 0xae, 0xed, 0x63, 0xaa, 0xda, 0x3d, 0x2a, 0x6c,
		0xf3, 0xa8, 0xb0, 0xbd, 0x23, 0xda, 0x20, 0x66, 0x5d, 0x51, 0xa3, 0x4d, 0x62, 0x12, 0xd5, 0x8c,
		0x1e, 0x8a, 0x29, 0x40, 0x09, 0xf4, 0x50, 0x8c, 0x8b, 0x0a, 0x68, 0xa8, 0xf8, 0xd3, 0x43, 0x8f,
		0xe6, 0x8a, 0xcb, 0xdb, 0xc9, 0xd4, 0xa4, 0x85, 0xb7, 0x29, 0x0b, 0xda, 0x26, 0x4a, 0xd8, 0x29,
		0xb4, 0x4d, 0x94, 0x3f, 0x31, 0xda, 0x26, 0x66, 0xc7, 0x0a, 0xe1, 0x6b, 0x9b, 0xe8, 0x0e, 0xef,
		0x74, 0xcf, 0x14, 0xb7, 0x8e, 0x30, 0xfe, 0x16, 0x8e, 0x82, 0x6e, 0x89, 0x0b, 0x0f, 0xc0, 0xdb,
		0x24, 0xb1, 0x84, 0x26, 0x89, 0x59, 0x06, 0x6f, 0x55, 0x20, 0xae, 0x1c, 0xcc, 0x95, 0x83, 0xba,
		0x5a, 0x70, 0xe7, 0x23, 0xb3, 0x9c, 0x8e, 0x29, 0xf6, 0xcb, 0xde, 0x25, 0x10, 0xd6, 0x03, 0x14,
		0x36, 0x2d, 0xce, 0xaa, 0x7a, 0x91, 0xbd, 0x5c, 0x65, 0x9c, 0xb3, 0x61, 0x8d, 0x1e, 0xf9, 0xd1,
		0xa2, 0x63, 0x5f, 0x79, 0x8e, 0xbf, 0xba, 0x4a, 0x2e, 0x0a, 0x4b, 0xfe, 0x4e, 0x5f, 0x1e, 0x9f,
		0x9f, 0x5e, 0x9c, 0xa9, 0xb8, 0x4b, 0x2b, 0xfb, 0xd3, 0xb7, 0x1a, 0xc7, 0x57, 0x9d, 0xee, 0xa7,
		0x66, 0xab, 0xa5, 0xe2, 0x11, 0x2a, 0xfe, 0x23, 0x9c, 0x5d, 0x4c, 0x9e, 0x20, 0xdf, 0xc5, 0xa9,
		0xec, 0x66, 0x00, 0xca, 0x0a, 0x04, 0x6d, 0x66, 0x93, 0xd9, 0x8b, 0xe9, 0x04, 0x0f, 0x30, 0xdd,
		0x62, 0xf6, 0x9a, 0x3a, 0xc1, 0xfc, 0xe1, 0x21, 0x3b, 0xd2, 0x4a, 0x28, 0x44, 0x95, 0x9c, 0x0a,
		0x89, 0x3b, 0x63, 0x34, 0xf0, 0x94, 0x80, 0x97, 0x6f, 0x5e, 0x4d, 0xe7, 0xf7, 0xad, 0xab, 0x5c,
		0x19, 0x1c, 0xe2, 0xc9, 0x73, 0x0c, 0x7d, 0x64, 0xb9, 0x9e, 0x71, 0x3b, 0x60, 0x36, 0x3d, 0xbe,
		0x3d, 0x08, 0x8b, 0x3d, 0x2b, 0x4b, 0x61, 0x9d, 0xab, 0x0f, 0x1f, 0x8a, 0x43, 0xc3, 0x7b, 0xd0,
		0x7b, 0xf6, 0xe3, 0x70, 0x34, 0xbe, 0x60, 0xd0, 0x1f, 0x85, 0xf7, 0x60, 0xf7, 0xb5, 0x7f, 0x69,
		0xbf, 0x84, 0x96, 0xb3, 0x77, 0xd4, 0xba, 0x38, 0x39, 0x6e, 0xb5, 0xfe, 0xea, 0x9e, 0x5c, 0x9c,
		0xb5, 0xaf, 0x3b, 0x8d, 0xd3, 0x5f, 0x76, 0xbc, 0x30, 0x56, 0x20, 0x26, 0x28, 0x8b, 0x35, 0xe5,
		0x58, 0xb1, 0xe5, 0x68, 0x27, 0x32, 0x2f, 0x4e, 0x85, 0xdb, 0x73, 0xcc, 0xa1, 0xb2, 0x68, 0xbc,
		0xb9, 0x23, 0xdf, 0x79, 0x10, 0x9a, 0xcf, 0xac, 0xb4, 0x89, 0x7b, 0xcb, 0xb4, 0xee, 0xb5, 0x70,
		0xaf, 0x7c, 0xb9, 0xd6, 0xbc, 0x07, 0xa1, 0xf9, 0x9b, 0xa9, 0x99, 0xee, 0x17, 0x6b, 0x60, 0xf7,
		0x8c, 0xc1, 0xe0, 0x59, 0x1b, 0x6f, 0xac, 0xe8, 0xab, 0x92, 0xfa, 0x14, 0xc4, 0xe5, 0xcf, 0x02,
		0x40, 0x7f, 0x66, 0x47, 0x15, 0xc6, 0xfd, 0xa6, 0x29, 0x28, 0x7f, 0x0e, 0x0f, 0x12, 0x0a, 0x19,
		0x42, 0x90, 0x33, 0x3d, 0xdb, 0x4d, 0x5e, 0x62, 0x46, 0x18, 0x2e, 0xfa, 0xc4, 0xd3, 0x70, 0x60,
		0xf6, 0x4c, 0x2f, 0x08, 0x57, 0xd0, 0xc3, 0x20, 0x02, 0xe6, 0xdb, 0x8e, 0x15, 0xcf, 0x80, 0x0b,
		0x0f, 0x29, 0x13, 0xe2, 0xc2, 0x83, 0x5b, 0x33, 0xe3, 0xc2, 0x03, 0x17, 0x1e, 0xc9, 0x96, 0x52,
		0xdd, 0x85, 0x07, 0x7f, 0x36, 0x9b, 0x8a, 0xec, 0xb5, 0x9f, 0x64, 0xab, 0x7d, 0xf8, 0x10, 0xa4,
		0xa0, 0xf5, 0xf5, 0x39, 0x8d, 0xe4, 0xae, 0x7a, 0x91, 0x3f, 0x65, 0x0d, 0xfe, 0xaf, 0x9d, 0xf5,
		0x7f, 0x35, 0xfe, 0x6c, 0xb7, 0x9a, 0x27, 0xcd, 0x4e, 0xeb, 0xaf, 0xee, 0x69, 0xe3, 0x53, 0xf3,
		0x1c, 0x1e, 0x30, 0x78, 0xc0, 0xe2, 0x79, 0xc0, 0x56, 0x49, 0x12, 0x7c, 0x60, 0x2a, 0x7c, 0x60,
		0xbe, 0xe2, 0xd0, 0xec, 0xbb, 0xc0, 0x13, 0x31, 0xd1, 0x2c, 0x83, 0x67, 0xad, 0x2f, 0xee, 0x4c,
		0x4b, 0xf4, 0xc7, 0xce, 0x89, 0x91, 0x0b, 0x8f, 0x17, 0x3c, 0x5e, 0x1b, 0x7b, 0xbc, 0x36, 0x16,
		0x29, 0xf8, 0xb7, 0xe0, 0xdf, 0xda, 0x11, 0xff, 0xd6, 0x83, 0x3d, 0xe8, 0xeb, 0xec, 0xa5, 0xab,
		0x23, 0xa4, 0x9f, 0x9f, 0x9e, 0xc9, 0x82, 0x9f, 0x5e, 0xce, 0xf3, 0x19, 0xd2, 0x85, 0x12, 0x0f,
		0xaa, 0xdc, 0xc0, 0x33, 0x28, 0x87, 0x04, 0xab, 0xf5, 0x0c, 0x3a, 0xee, 0xd7, 0x21, 0x3c, 0x83,
		0x3b, 0x60, 0xb0, 0x2c, 0x7a, 0x06, 0x83, 0x8d, 0x87, 0x67, 0x30, 0xd6, 0x52, 0xaa, 0xf3, 0x0c,
		0x8e, 0x4c, 0xcb, 0x3b, 0x50, 0xe0, 0x17, 0xe4, 0x2c, 0x2f, 0xa1, 0xa6, 0x24, 0xb6, 0x02, 0xe7,
		0x93, 0xca, 0x92, 0xd7, 0xaa, 0x4b, 0x5c, 0xa7, 0xa6, 0x06, 0xb0, 0xfa, 0x9a, 0xbf, 0x2a, 0xbc,
		0x30, 0x2a, 0x4b, 0x54, 0x47, 0xa2, 0x57, 0x87, 0xe8, 0xa9, 0x16, 0x3d, 0x10, 0xf3, 0x0c, 0x98,
		0x1b, 0x2a, 0x2f, 0x82, 0x1c, 0x71, 0x27, 0x1c, 0x61, 0xf5, 0xc4, 0x2e, 0xdd, 0x06, 0x5d, 0x7e,
		0x3a, 0xd1, 0xf6, 0x2a, 0xa5, 0x43, 0x4d, 0xd7, 0x2e, 0xaf, 0x7e, 0x6f, 0xeb, 0x9d, 0xc6, 0x91,
		0xd6, 0x78, 0xf2, 0x84, 0xe5, 0x9a, 0xb6, 0xe5, 0x6a, 0x9e, 0x1d, 0xbc, 0xac, 0xdd, 0xd9, 0xce,
		0x17, 0xab, 0x75, 0xd5, 0xd6, 0xc2, 0xaa, 0x1c, 0x3b, 0x7e, 0x15, 0x34, 0x15, 0x15, 0xdc, 0x07,
		0x4d, 0xa9, 0x56, 0x5c, 0x59, 0x82, 0x2e, 0x90, 0xa5, 0x0b, 0xde, 0xe3, 0xda, 0x9c, 0x0a, 0x28,
		0x17, 0x62, 0x36, 0xc2, 0x50, 0x0c, 0xd7, 0xbc, 0xb7, 0x8c, 0x81, 0x69, 0xdd, 0xeb, 0x43, 0xc7,
		0xf6, 0xec, 0x9e, 0x3d, 0x98, 0xbb, 0xfa, 0x6c, 0x1f, 0x77, 0x7e, 0xeb, 0x5e, 0x35, 0x3a, 0xd7,
		0xed, 0xae, 0x2f, 0xfa, 0xb8, 0x41, 0xc7, 0x0d, 0xfa, 0xe2, 0x0d, 0xba, 0x04, 0xa1, 0xc2, 0x65,
		0x3a, 0x37, 0x18, 0xfc, 0x31, 0x89, 0xe7, 0x8f, 0xb6, 0x4a, 0x8b, 0xb6, 0xca, 0x74, 0x27, 0xda,
		0x4f, 0xc3, 0x3d, 0x3a, 0xee, 0xd1, 0x37, 0x40, 0x81, 0x4d, 0xa5, 0x09, 0x57, 0xe8, 0x60, 0xea,
		0x29, 0xf8, 0x3c, 0x1c, 0x57, 0xe8, 0x6a, 0x92, 0x42, 0x90, 0x06, 0x22, 0x6f, 0x42, 0xa4, 0x81,
		0x70, 0xab, 0x59, 0x5c, 0xf6, 0x22, 0x0d, 0x24, 0xd9, 0x52, 0xaa, 0xbb, 0xec, 0x75, 0xc7, 0xe5,
		0x98, 0x14, 0x64, 0x81, 0x1c, 0x40, 0x2b, 0x6f, 0xbc, 0x66, 0x6b, 0xa2, 0xbd, 0xf9, 0x15, 0xf5,
		0xba, 0x07, 0xc9, 0x73, 0xb0, 0xdb, 0xda, 0x8a, 0x12, 0x08, 0x82, 0x83, 0x5d, 0x04, 0xbb, 0x08,
		0x76, 0x11, 0xec, 0xa2, 0xfc, 0xd9, 0x45, 0x66, 0x5f, 0x58, 0x9e, 0xe9, 0x3d, 0x2b, 0x4a, 0x91,
		0xe5, 0x8c, 0x85, 0x6b, 0x86, 0x1f, 0xf5, 0xa3, 0xe1, 0x2a, 0xc0, 0x8b, 0xc9, 0x82, 0x07, 0xce,
		0xf5, 0xb1, 0x66, 0x3d, 0xee, 0x34, 0x2f, 0xce, 0xbb, 0x67, 0x8d, 0xce, 0x6f, 0x17, 0xa7, 0xdc,
		0xe8, 0x11, 0xc4, 0x0d, 0xb9, 0xec, 0xf7, 0x6b, 0x9a, 0x92, 0x3b, 0xb6, 0xb9, 0x0d, 0x58, 0xce,
		0x16, 0xdc, 0x89, 0xfb, 0x0d, 0xe5, 0xab, 0xde, 0x69, 0x5c, 0x9e, 0x07, 0x66, 0xe5, 0xff, 0x5c,
		0x37, 0x2e, 0x9b, 0x58, 0x75, 0x8e, 0x55, 0x57, 0x63, 0xc9, 0xf3, 0xeb, 0xe9, 0x88, 0x43, 0xe4,
		0xcd, 0xfe, 0xc8, 0x27, 0xab, 0x77, 0x85, 0xf3, 0x55, 0x45, 0x07, 0x8a, 0x75, 0x0f, 0x02, 0xe6,
		0x09, 0xe6, 0x09, 0xe6, 0x09, 0xe6, 0x09, 0xe6, 0xc9, 0x78, 0x62, 0x51, 0x98, 0x69, 0xe6, 0xbf,
		0x49, 0x38, 0x86, 0x1b, 0x7d, 0x57, 0x1c, 0xf6, 0xc4, 0xb0, 0xb8, 0x46, 0x63, 0xb9, 0xeb, 0x7e,
		0xe1, 0xbf, 0x2b, 0xfc, 0x56, 0x37, 0xfa, 0x7d, 0x47, 0xb8, 0x2e, 0x0a, 0x39, 0xc9, 0x9a, 0x1b,
		0x85, 0x9c, 0xd6, 0x94, 0xdf, 0x59, 0xa4, 0x76, 0x08, 0x43, 0x45, 0x18, 0x6a, 0xbc, 0x42, 0x4e,
		0xcb, 0x92, 0x84, 0xd8, 0x53, 0xee, 0x63, 0xdf, 0x09, 0xcb, 0x48, 0xcf, 0xee, 0x96, 0x36, 0xd6,
		0x29, 0x2b, 0xea, 0x4c, 0x8b, 0x27, 0x4f, 0x38, 0x56, 0x50, 0x6a, 0xfa, 0xbf, 0x23, 0xe1, 0x98,
		0x28, 0xee, 0x84, 0xa0, 0xd4, 0x8d, 0x30, 0x21, 0xb1, 0x98, 0x21, 0x5a, 0x35, 0xd3, 0xb3, 0x21,
		0x5a, 0x75, 0x6b, 0x0f, 0x9a, 0xe5, 0x39, 0xf6, 0x40, 0x99, 0xdb, 0x6c, 0x3c, 0x3b, 0x7c, 0x65,
		0xf0, 0x95, 0xc1, 0x57, 0x06, 0x5f, 0x19, 0x7c, 0x65, 0x9c, 0xbe, 0x32, 0x77, 0x38, 0x01, 0x60,
		0xdd, 0xf3, 0x9f, 0x02, 0x4d, 0x5b, 0x29, 0xf6, 0x57, 0x7d, 0xd3, 0xd6, 0xf6, 0x49, 0xa3, 0x7b,
		0xda, 0x68, 0x35, 0x7e, 0x3d, 0xee, 0x34, 0x4e, 0x95, 0xf5, 0x6e, 0x6d, 0x9f, 0x9c, 0x74, 0x4f,
		0x2e, 0xce, 0x3b, 0x97, 0x17, 0xad, 0x96, 0x9a, 0xc7, 0xa8, 0x4c, 0x1e, 0xe3, 0xb2, 0xd1, 0xbe,
		0xb8, 0xec, 0x74, 0x2f, 0xce, 0x5b, 0x7f, 0xa1, 0x8b, 0x2b, 0x95, 0x2d, 0x32, 0xbf, 0xdd, 0x6a,
		0x3a, 0xb9, 0x2e, 0x6e, 0xb6, 0x9a, 0x7e, 0xae, 0xf3, 0xe7, 0x2f, 0xc7, 0x6d, 0x5d, 0x41, 0xbe,
		0x36, 0x27, 0x5f, 0xb3, 0x75, 0x7b, 0xb8, 0xa9, 0x17, 0x77, 0x21, 0x18, 0x10, 0x2f, 0x10, 0x2f,
		0x10, 0x2f, 0x10, 0x2f, 0x10, 0x2f, 0xd4, 0x88, 0x25, 0xfd, 0xb7, 0xab, 0x35, 0x62, 0xcb, 0x28,
		0xd4, 0x89, 0x1a, 0xb1, 0x6a, 0x44, 0xaf, 0x52, 0xab, 0x41, 0xf8, 0x50, 0x25, 0x96, 0xe4, 0x1f,
		0x6e, 0xf3, 0x36, 0x17, 0x42, 0x47, 0x78, 0xce, 0xb3, 0xee, 0x99, 0x8f, 0x2a, 0x62, 0xe0, 0x67,
		0x27, 0x07, 0xa5, 0xcc, 0x03, 0xa5, 0x44, 0xdb, 0x91, 0x1d, 0xa5, 0x94, 0x68, 0x3b, 0x92, 0x55,
		0x4a, 0x59, 0xde, 0x57, 0xc0, 0x29, 0xf7, 0xc1, 0x29, 0xc1, 0x29, 0x61, 0xd6, 0x83, 0x53, 0xca,
		0x14, 0xbd, 0xfd, 0x12, 0x9a, 0xde, 0x80, 0x53, 0x66, 0x9a, 0x53, 0x22, 0x73, 0x29, 0x37, 0xda,
		0x18, 0xb5, 0xf4, 0xe5, 0x71, 0x2c, 0x24, 0x31, 0xa1, 0x96, 0x7e, 0xdc, 0x65, 0x43, 0x2d, 0xfd,
		0xcc, 0x1c, 0x79, 0x0d, 0x69, 0x4b, 0x5b, 0xa1, 0x00, 0x6a, 0xe9, 0xc3, 0xf6, 0xcc, 0xd0, 0xe7,
		0xe1, 0xb8, 0xcf, 0x70, 0x85, 0x37, 0x1a, 0x2a, 0xec, 0x47, 0xbf, 0x30, 0x7f, 0x9e, 0x6b, 0xf4,
		0xd6, 0x51, 0x8b, 0x37, 0xc1, 0x74, 0xb8, 0x19, 0xca, 0xa5, 0x29, 0x83, 0x9b, 0x21, 0xdc, 0x0c,
		0xc9, 0x5b, 0x4a, 0x04, 0x1b, 0x52, 0x4e, 0x89, 0x8b, 0x21, 0x8e, 0xc9, 0xd1, 0x90, 0x7e, 0x72,
		0xb4, 0x70, 0x31, 0xa4, 0x48, 0xf4, 0xd0, 0x90, 0x1e, 0xd7, 0x42, 0x99, 0xa6, 0xe6, 0x68, 0x48,
		0x9f, 0x2f, 0x85, 0x8c, 0x86, 0xf4, 0x49, 0x78, 0x15, 0x1a, 0xd2, 0xaf, 0xa2, 0x5a, 0x68, 0x48,
		0xaf, 0x5a, 0x17, 0xa0, 0x21, 0x3d, 0x19, 0x50, 0xe2, 0x12, 0x3d, 0x39, 0x6c, 0xe2, 0x12, 0x1d,
		0x97, 0xe8, 0x71, 0x97, 0x0d, 0x97, 0xe8, 0x99, 0x39, 0xf2, 0x1a, 0x2e, 0xd1, 0xb7, 0x42, 0x01,
		0x5c, 0xa2, 0x83, 0xa9, 0x67, 0xe8, 0xf3, 0x70, 0x5c, 0xa2, 0x8f, 0x5c, 0xa1, 0xf7, 0xdc, 0xe1,
		0x1d, 0xff, 0xf5, 0x79, 0x34, 0x33, 0x2e, 0x7d, 0xa5, 0x4c, 0x88, 0x0a, 0x33, 0xdc, 0xea, 0x16,
		0x97, 0xbe, 0xa8, 0x30, 0x93, 0x6c, 0x29, 0xd5, 0x5d, 0xfa, 0xde, 0xda, 0xf6, 0x40, 0x18, 0x96,
		0x8a, 0x8a, 0x9e, 0x65, 0x38, 0xd2, 0xe1, 0x1a, 0x8a, 0xeb, 0x1a, 0xda, 0xa4, 0x9f, 0xc7, 0x62,
		0xfb, 0x49, 0x78, 0x83, 0xe0, 0x0d, 0x8a, 0xd3, 0x17, 0x66, 0x59, 0x8e, 0xe0, 0x00, 0xe2, 0x3e,
		0xf2, 0x9d, 0x07, 0xa1, 0x8d, 0x5c, 0xa1, 0xd9, 0x77, 0x9a, 0x4f, 0x16, 0xe6, 0x5b, 0x74, 0xcc,
		0xf5, 0xf0, 0x08, 0x37, 0xd0, 0x74, 0xbf, 0x58, 0x03, 0xbb, 0x67, 0x0c, 0xb4, 0x99, 0x5f, 0xc2,
		0x3f, 0x04, 0xff, 0xd0, 0x06, 0xb8, 0x20, 0x49, 0xd8, 0xe0, 0x3e, 0x82, 0xfb, 0x28, 0x0d, 0xee,
		0xa3, 0x37, 0x19, 0xd6, 0x4c, 0x85, 0x63, 0xcb, 0xb2, 0xc3, 0xf3, 0xc4, 0x01, 0x9f, 0x05, 0xb7,
		0xf7, 0x20, 0x1e, 0x8d, 0x61, 0xd8, 0x36, 0xb3, 0x68, 0x0f, 0x85, 0x35, 0xbe, 0x25, 0xd2, 0x2d,
		0xe1, 0x7d, 0xb3, 0x9d, 0xbf, 0x75, 0xd3, 0xb7, 0xf1, 0xad, 0x9e, 0x28, 0x2e, 0xbe, 0xe0, 0x2e,
		0xbd, 0x52, 0xf4, 0x0d, 0x88, 0xe2, 0xc0, 0x1d, 0xba, 0xc5, 0x9e, 0x6d, 0xb9, 0x9e, 0x63, 0x98,
		0x96, 0xe8, 0xeb, 0xfe, 0xe8, 0x45, 0x6f, 0x7c, 0x19, 0x1f, 0x7e, 0x2d, 0x0e, 0x2b, 0x43, 0x7d,
		0xfc, 0xad, 0x6e, 0x78, 0x9e, 0x63, 0xde, 0x8e, 0x3c, 0xe1, 0x06, 0xaf, 0x0e, 0x1d, 0xf3, 0xd1,
		0x70, 0x9e, 0xc7, 0xef, 0x5a, 0x7a, 0x61, 0xfc, 0x70, 0x05, 0x8e, 0x3c, 0x1b, 0xcf, 0x19, 0xf5,
		0x3c, 0x2b, 0x54, 0xc8, 0x17, 0xd1, 0xc2, 0x9c, 0x8f, 0x3f, 0x74, 0x33, 0xfc, 0xcc, 0xdd, 0x85,
		0x9f, 0xdd, 0xc5, 0x17, 0xba, 0x67, 0xc3, 0x81, 0xdb, 0x6d, 0xb9, 0x43, 0xb7, 0x7b, 0x32, 0x5d,
		0x94, 0xb6, 0xe1, 0x3d, 0x74, 0xc3, 0x00, 0x85, 0xf0, 0x6b, 0xb7, 0x5d, 0x69, 0x8f, 0xbf, 0x3b,
		0x8e, 0x56, 0xc4, 0x7f, 0xad, 0x3d, 0xfe, 0xfc, 0xc1, 0x3b, 0x16, 0x7e, 0x0c, 0xbd, 0x6d, 0x6f,
		0xb2, 0x79, 0x9e, 0x08, 0xcf, 0x52, 0x21, 0xdc, 0x37, 0xda, 0x13, 0x14, 0x99, 0x6b, 0xc1, 0x6c,
		0xc4, 0xc8, 0xc0, 0xe3, 0xc8, 0x65, 0x73, 0xe0, 0x72, 0x3a, 0x6e, 0x15, 0x38, 0x6c, 0xb9, 0x6d,
		0x60, 0x65, 0x0e, 0x5a, 0x65, 0x66, 0xad, 0x1a, 0x87, 0x6c, 0xb6, 0xad, 0x0b, 0x36, 0xc7, 0xab,
		0x82, 0xbe, 0xe3, 0x9c, 0xfd, 0xc6, 0x67, 0xfb, 0x8c, 0x87, 0x41, 0x35, 0x81, 0x0a, 0x80, 0x22,
		0x5e, 0x5a, 0xa9, 0x80, 0x43, 0x3e, 0x0a, 0xcf, 0x31, 0x7b, 0xfa, 0xad, 0x3d, 0xb2, 0xfa, 0x7a,
		0x64, 0x1a, 0x06, 0x09, 0x03, 0x4c, 0x1a, 0xfa, 0xe7, 0x8f, 0xc1, 0xa3, 0xba, 0xcb, 0x50, 0xdd,
		0x50, 0xdd, 0x50, 0xdd, 0x50, 0xdd, 0x71, 0x96, 0xec, 0xd4, 0xe4, 0x29, 0x5f, 0xfd, 0x53, 0xa4,
		0x54, 0xd4, 0x0d, 0x77, 0xdd, 0xd3, 0xf0, 0x86, 0xd0, 0x94, 0x11, 0x42, 0x93, 0x65, 0x58, 0x57,
		0x05, 0xef, 0xca, 0x61, 0x5e, 0x39, 0xdc, 0xab, 0x85, 0x7d, 0x1e, 0xf8, 0x67, 0x52, 0x03, 0xec,
		0xea, 0x20, 0x9a, 0xb0, 0x37, 0x41, 0x25, 0xe6, 0x53, 0x33, 0x01, 0x0a, 0x36, 0xc7, 0xaf, 0x42,
		0xe8, 0x57, 0xa6, 0x02, 0x54, 0xaa, 0x82, 0x14, 0xa8, 0x04, 0xd5, 0xaa, 0x21, 0x35, 0x2a, 0x22,
		0x35, 0xaa, 0x22, 0x1d, 0x2a, 0x83, 0x57, 0x75, 0x30, 0xab, 0x10, 0x65, 0xaa, 0x24, 0x9a, 0x38,
		0x34, 0xeb, 0x47, 0xc3, 0xa1, 0x70, 0xc6, 0xc6, 0xbd, 0xfa, 0xc0, 0x9b, 0x15, 0xcf, 0xa4, 0x48,
		0xf2, 0x55, 0x54, 0xbc, 0x5b, 0x7a, 0x88, 0x92, 0x9a, 0xa8, 0x8e, 0x1b, 0x45, 0x6b, 0xce, 0x9b,
		0x2c, 0x91, 0x1a, 0xb5, 0x9f, 0x06, 0xf5, 0x9f, 0x22, 0x33, 0x20, 0x2d, 0xe6, 0x40, 0xea, 0xcc,
		0x82, 0xd4, 0x99, 0x07, 0xe9, 0x32, 0x13, 0xd4, 0x98, 0x0b, 0x8a, 0xcc, 0x86, 0x68, 0xe9, 0xd9,
		0x93, 0x39, 0xd6, 0x22, 0xc6, 0xc8, 0xb4, 0xbc, 0xfd, 0xaa, 0x4a, 0xc0, 0x08, 0xf5, 0xc7, 0x81,
		0xc2, 0x47, 0x50, 0x53, 0xf2, 0x6f, 0xf1, 0x9f, 0x5a, 0xc0, 0xd4, 0x54, 0x97, 0x04, 0x5c, 0x7a,
		0x18, 0xc5, 0x25, 0x02, 0x97, 0x9e, 0x27, 0x2d, 0x75, 0xdb, 0x96, 0xcf, 0xb2, 0xea, 0x3a, 0x6e,
		0x29, 0x81, 0xd5, 0x79, 0x51, 0x36, 0x9e, 0xd2, 0x27, 0xca, 0xe5, 0x83, 0x6a, 0x75, 0xbf, 0x5e,
		0xad, 0x96, 0xea, 0x7b, 0xf5, 0xd2, 0x61, 0xad, 0x56, 0xde, 0x2f, 0xd7, 0x20, 0xdd, 0x59, 0x93,
		0xee, 0x37, 0xbb, 0x39, 0xfb, 0xcd, 0xae, 0x24, 0x2b, 0x28, 0x70, 0xa2, 0x7a, 0x2a, 0x0d, 0xc2,
		0xc8, 0x18, 0x0c, 0x9e, 0x02, 0x6e, 0x04, 0xb8, 0x11, 0xe0, 0x46, 0x80, 0x1b, 0x01, 0x6e, 0x04,
		0xb8, 0x11, 0x36, 0x46, 0x0c, 0xb3, 0x2f, 0x2c, 0xcf, 0xf4, 0x9e, 0x79, 0xc2, 0x96, 0x5f, 0x53,
		0x22, 0x2a, 0x8d, 0xea, 0x42, 0x33, 0x5c, 0x8a, 0x8f, 0x86, 0x9b, 0x02, 0xfc, 0x9a, 0x6c, 0x50,
		0x50, 0xa0, 0xf0, 0xac, 0xd1, 0xb9, 0x6c, 0x9e, 0x74, 0x3b, 0x7f, 0xb5, 0x1b, 0xaa, 0x61, 0x2c,
		0x60, 0x44, 0xae, 0x72, 0x9f, 0x4b, 0x3a, 0xfc, 0x2e, 0x73, 0x3b, 0xf5, 0xdb, 0x45, 0xbb, 0x7b,
		0x72, 0x71, 0x7d, 0xde, 0x29, 0x80, 0xc7, 0xa7, 0x6e, 0x73, 0x9a, 0xbf, 0xb6, 0xc3, 0x53, 0x84,
		0xdd, 0x49, 0xdf, 0xee, 0x04, 0x20, 0x77, 0xda, 0x68, 0x1d, 0xff, 0x85, 0xdd, 0x49, 0xdf, 0xee,
		0x74, 0x1a, 0xe9, 0x39, 0x3a, 0x4a, 0x9f, 0xe0, 0x66, 0xd7, 0xcc, 0x63, 0x04, 0x1f, 0xc9, 0x65,
		0x5c, 0xbc, 0xf5, 0x0e, 0x96, 0xe6, 0xcf, 0x5a, 0xfd, 0x83, 0x9f, 0xe6, 0xb1, 0xfd, 0xf4, 0xb7,
		0x45, 0x25, 0x11, 0xb4, 0x5a, 0x56, 0x4a, 0x29, 0xf8, 0xff, 0x3b, 0x0b, 0x56, 0xee, 0xa3, 0xbf,
		0x70, 0x27, 0xd3, 0x55, 0x5d, 0xff, 0x2b, 0x96, 0xfa, 0x0b, 0xea, 0xf0, 0x80, 0x11, 0x0b, 0x0a,
		0xae, 0x67, 0x78, 0x42, 0x5d, 0x74, 0xf9, 0x78, 0xfa, 0x1d, 0x0b, 0x2e, 0xaf, 0x20, 0xb8, 0x9c,
		0xf3, 0x11, 0x10, 0x5c, 0x1e, 0x3e, 0x08, 0x82, 0xcb, 0x77, 0xc7, 0xbe, 0x43, 0x70, 0x39, 0x82,
		0xcb, 0xd7, 0x3d, 0x04, 0x82, 0xcb, 0x95, 0xa8, 0x7d, 0xdc, 0x0a, 0xe3, 0x56, 0x38, 0x85, 0x66,
		0x41, 0xea, 0xcc, 0x83, 0x74, 0x99, 0x09, 0x8a, 0xdd, 0x5e, 0x08, 0x2e, 0x47, 0x70, 0x39, 0x82,
		0xcb, 0xa3, 0x85, 0x40, 0x70, 0xf9, 0x4f, 0x9e, 0x07, 0xe1, 0xb7, 0x29, 0x87, 0xd5, 0x79, 0x51,
		0x46, 0x70, 0x39, 0xa4, 0x3b, 0x47, 0xa6, 0x8a, 0xfa, 0xd9, 0x11, 0x5c, 0x4e, 0x27, 0xe4, 0x08,
		0x2e, 0x87, 0x1b, 0x01, 0x6e, 0x04, 0xb8, 0x11, 0xe0, 0x46, 0x80, 0x1b, 0x21, 0x8b, 0x6e, 0x04,
		0x04, 0x97, 0x47, 0xcf, 0x80, 0xe0, 0xf2, 0x8d, 0x19, 0x11, 0x82, 0xcb, 0x57, 0xec, 0x14, 0x82,
		0xcb, 0x53, 0xbc, 0x39, 0x08, 0x2e, 0x4f, 0xf3, 0xee, 0x20, 0xb8, 0x3c, 0xcd, 0xbb, 0x83, 0xe0,
		0x72, 0xa5, 0x8e, 0x14, 0x0d, 0xc1, 0xe5, 0xf9, 0x38, 0xea, 0x08, 0x2e, 0xe7, 0x0b, 0x2e, 0x57,
		0x11, 0x40, 0xab, 0xe5, 0x3a, 0xb6, 0xfc, 0x2a, 0x58, 0x51, 0x84, 0x96, 0x27, 0x96, 0x10, 0x25,
		0x2e, 0x63, 0x95, 0xae, 0x62, 0x45, 0x2e, 0x62, 0x54, 0x2d, 0x47, 0x60, 0x39, 0x02, 0xcb, 0x35,
		0x04, 0x96, 0xb3, 0x2c, 0xb1, 0x32, 0x97, 0xae, 0x82, 0xd6, 0x86, 0xeb, 0x00, 0x9e, 0xa3, 0xd5,
		0xe1, 0x32, 0xd8, 0x2e, 0xb5, 0x3e, 0x0c, 0x54, 0x5c, 0x5e, 0x0d, 0x95, 0x5c, 0x75, 0x8d, 0xf9,
		0xb7, 0x78, 0x66, 0xb6, 0x49, 0x0a, 0x2d, 0xd3, 0xf5, 0x7c, 0x43, 0x99, 0xb7, 0x5b, 0xcd, 0x99,
		0x69, 0x35, 0x06, 0xc2, 0x87, 0x60, 0xe6, 0x08, 0x9d, 0xc2, 0x99, 0xf1, 0x34, 0x33, 0xb3, 0xda,
		0x38, 0xa6, 0xc2, 0x85, 0xd3, 0x17, 0x8e, 0xe8, 0x7f, 0xf4, 0x77, 0xdd, 0x1a, 0x0d, 0x06, 0x2a,
		0xa6, 0xbe, 0x76, 0x85, 0xc3, 0x1a, 0x92, 0xc4, 0x75, 0x98, 0x14, 0x79, 0x17, 0x76, 0xc8, 0xab,
		0x50, 0x60, 0x4d, 0x40, 0xce, 0xa7, 0x1f, 0x81, 0x47, 0x31, 0xbf, 0xa0, 0x7b, 0x67, 0x9a, 0xb0,
		0x22, 0x5f, 0x18, 0xc1, 0xd1, 0xf3, 0x37, 0xdb, 0xc7, 0x1f, 0x8d, 0xc7, 0x57, 0xed, 0x28, 0x47,
		0x45, 0x09, 0xd6, 0x0a, 0x12, 0xec, 0x8d, 0xc4, 0x2b, 0x68, 0x24, 0x9e, 0x21, 0xc7, 0x1c, 0x1a,
		0x89, 0xa3, 0x91, 0xf8, 0xeb, 0x4b, 0xc6, 0xd6, 0x48, 0xdc, 0x70, 0x5d, 0xbb, 0x67, 0x1a, 0x9e,
		0xe8, 0xeb, 0x8e, 0xfb, 0x75, 0xa8, 0xbb, 0xc2, 0x75, 0x4d, 0xdb, 0x72, 0xf9, 0x9b, 0x88, 0xaf,
		0x7d, 0x12, 0xde, 0x06, 0xe2, 0x25, 0x34, 0x10, 0xcf, 0x32, 0x9c, 0xab, 0x82, 0x75, 0xe5, 0xf0,
		0xae, 0x1c, 0xe6, 0xd5, 0xc2, 0x3d, 0x1f, 0xc7, 0xe5, 0xf4, 0x5e, 0xb1, 0xdf, 0x9f, 0x28, 0xbc,
		0x37, 0x51, 0x71, 0x5f, 0x32, 0x7b, 0x4f, 0xb2, 0xee, 0x3f, 0xd7, 0xbc, 0xb7, 0x8c, 0x81, 0x69,
		0xdd, 0xeb, 0x43, 0xc7, 0xf6, 0xec, 0x9e, 0x3d, 0x70, 0x8b, 0x81, 0x82, 0xf2, 0x44, 0x71, 0xa2,
		0xa3, 0x26, 0xdf, 0x14, 0x07, 0x76, 0xcf, 0x18, 0xe8, 0xa6, 0xd5, 0x17, 0x4f, 0x85, 0x5c, 0x49,
		0x22, 0x6e, 0x08, 0x70, 0x43, 0xc0, 0x7c, 0x43, 0xf0, 0x26, 0x07, 0x67, 0xa7, 0xd0, 0x73, 0x87,
		0x77, 0xa1, 0xcf, 0x8c, 0xdf, 0xa4, 0x9e, 0x9d, 0x1c, 0x56, 0x34, 0xac, 0x68, 0x58, 0xd1, 0xb0,
		0xa2, 0x61, 0x45, 0x33, 0x9e, 0x58, 0xf6, 0x7a, 0x54, 0x0a, 0xea, 0x4f, 0x29, 0xaa, 0x37, 0xa5,
		0x20, 0xa6, 0x4c, 0x65, 0x3d, 0x29, 0xd5, 0xf5, 0xa3, 0x52, 0x53, 0x51, 0x47, 0x7d, 0x05, 0x1d,
		0x15, 0x15, 0x55, 0x54, 0xd6, 0x7f, 0x4a, 0x61, 0xbd, 0x27, 0x48, 0x23, 0xb3, 0xaa, 0xe6, 0x9f,
		0xed, 0x06, 0x24, 0x73, 0x3b, 0x92, 0xe9, 0x99, 0xe2, 0xd6, 0x11, 0xc6, 0xdf, 0xc2, 0x51, 0x44,
		0x34, 0x67, 0x1e, 0x00, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x53, 0x01, 0x08,
		0xeb, 0x01, 0x0a, 0x9b, 0xd6, 0xbd, 0x8a, 0xcb, 0x9b, 0x2a, 0xe3, 0x9c, 0x0d, 0x6b, 0xf4, 0xc8,
		0x8f, 0x16, 0x1d, 0xfb, 0xca, 0x73, 0xfc, 0xd5, 0x55, 0x92, 0xd7, 0x54, 0xf2, 0x77, 0xfa, 0xf2,
		0xf8, 0xfc, 0xf4, 0xe2, 0x4c, 0x45, 0x4e, 0x53, 0xd9, 0x9f, 0xbe, 0xd5, 0x38, 0xbe, 0xea, 0x74,
		0x3f, 0x35, 0x5b, 0x2d, 0x15, 0x8f, 0x50, 0xf1, 0x1f, 0xe1, 0xec, 0x62, 0xf2, 0x04, 0xf9, 0xce,
		0x9f, 0xb3, 0x9b, 0x01, 0x28, 0x2b, 0x10, 0xb4, 0x99, 0x4d, 0x66, 0xef, 0x7e, 0x35, 0xa6, 0xbc,
		0x17, 0xd3, 0xf9, 0x2b, 0x0a, 0xe6, 0x0f, 0x0f, 0xd9, 0x91, 0x56, 0x42, 0x7a, 0x7f, 0xe2, 0xc5,
		0x9c, 0xb6, 0xb2, 0xe1, 0x07, 0x2f, 0xdf, 0xbc, 0x9a, 0xce, 0xef, 0x5b, 0x57, 0xb9, 0x32, 0x38,
		0xc4, 0x93, 0xe7, 0x18, 0xfa, 0xc8, 0x72, 0x3d, 0xe3, 0x76, 0xc0, 0x6c, 0x7a, 0x7c, 0x7b, 0x10,
		0xd6, 0x2e, 0x78, 0x7e, 0x27, 0x26, 0xd6, 0x87, 0x0f, 0xe3, 0x24, 0x88, 0x9e, 0xfd, 0x38, 0x1c,
		0x8d, 0x53, 0x45, 0xf4, 0x47, 0xe1, 0x3d, 0xd8, 0x7d, 0xed, 0x5f, 0xda, 0x2f, 0xa1, 0xe5, 0xec,
		0x1d, 0xb5, 0x2e, 0x4e, 0x8e, 0x5b, 0xad, 0xbf, 0xba, 0x27, 0x17, 0x67, 0xed, 0xeb, 0x4e, 0xe3,
		0xf4, 0x97, 0x1d, 0x2f, 0x38, 0x10, 0x88, 0x09, 0xca, 0x0d, 0x4c, 0x39, 0x56, 0x6c, 0x39, 0xda,
		0x09, 0x67, 0xf7, 0xa9, 0x70, 0x7b, 0x8e, 0x39, 0x54, 0x56, 0x12, 0x6a, 0xee, 0xc8, 0x77, 0x1e,
		0x84, 0xe6, 0x33, 0x2b, 0x6d, 0xe2, 0xde, 0x32, 0xad, 0x7b, 0x2d, 0xdc, 0x2b, 0x5f, 0xae, 0x35,
		0xef, 0x41, 0x68, 0xfe, 0x66, 0x6a, 0xa6, 0xfb, 0xc5, 0x0a, 0xe2, 0xbf, 0x06, 0xcf, 0xda, 0x78,
		0x63, 0x85, 0xb2, 0xd6, 0x71, 0x29, 0x28, 0x38, 0x3d, 0x0b, 0x00, 0xfd, 0x99, 0x1d, 0x55, 0x58,
		0xcc, 0x36, 0x4d, 0xd5, 0xa6, 0xe7, 0xf0, 0x20, 0xa1, 0x90, 0xa1, 0x0e, 0x5e, 0xa6, 0x67, 0xc3,
		0x55, 0xc7, 0x36, 0xd6, 0xee, 0x70, 0x60, 0xf6, 0x4c, 0x2f, 0xc8, 0x48, 0xd5, 0xc3, 0x54, 0x50,
		0xe6, 0xdb, 0x8e, 0x15, 0xcf, 0x80, 0x0b, 0x0f, 0x29, 0x13, 0xe2, 0xc2, 0x83, 0x5b, 0x33, 0xe3,
		0xc2, 0x03, 0x17, 0x1e, 0xc9, 0x96, 0x12, 0x39, 0x2a, 0xd4, 0xa0, 0xf8, 0xb3, 0x1c, 0x15, 0x5f,
		0xfb, 0xf4, 0xf5, 0x39, 0x8d, 0xe4, 0xae, 0x7a, 0x71, 0x52, 0x06, 0x2c, 0xd0, 0x56, 0xf0, 0x7f,
		0xc1, 0xff, 0x45, 0xe9, 0xff, 0x6a, 0xfc, 0xd9, 0x6e, 0x35, 0x4f, 0x9a, 0x9d, 0xd6, 0x5f, 0xdd,
		0xd3, 0xc6, 0xa7, 0xe6, 0x39, 0x3c, 0x60, 0xf0, 0x80, 0xc5, 0xf3, 0x80, 0xad, 0x92, 0x24, 0xf8,
		0xc0, 0x54, 0xf8, 0xc0, 0x7c, 0xc5, 0xa1, 0xd9, 0x77, 0x81, 0x27, 0x62, 0xa2, 0x59, 0x06, 0xcf,
		0x5a, 0x5f, 0xdc, 0x99, 0x96, 0xe8, 0x8f, 0x9d, 0x13, 0x23, 0x17, 0x1e, 0x2f, 0x78, 0xbc, 0x36,
		0xf6, 0x78, 0x6d, 0x2c, 0x52, 0xf0, 0x6f, 0xc1, 0xbf, 0xb5, 0x23, 0xfe, 0xad, 0x07, 0x7b, 0xd0,
		0xd7, 0x87, 0x8e, 0x69, 0x3b, 0xa6, 0xf7, 0xcc, 0xef, 0xda, 0x9a, 0x9f, 0x9e, 0xc9, 0x82, 0x9f,
		0x5e, 0xce, 0xf3, 0x19, 0xd2, 0x85, 0x12, 0x0f, 0xaa, 0xdc, 0xc0, 0x33, 0x28, 0x87, 0x04, 0xab,
		0xf5, 0x0c, 0x3a, 0xee, 0xd7, 0x21, 0x3c, 0x83, 0x3b, 0x60, 0xb0, 0x2c, 0x7a, 0x06, 0x83, 0x8d,
		0x87, 0x67, 0x30, 0xd6, 0x52, 0xaa, 0xcd, 0xbb, 0x3d, 0x50, 0xe0, 0x17, 0xac, 0x21, 0xed, 0x56,
		0xfe, 0x07, 0x45, 0xda, 0x2d, 0x12, 0x1d, 0x77, 0x39, 0xed, 0xb6, 0x0e, 0xd1, 0x43, 0x8e, 0x6d,
		0x96, 0x89, 0xf9, 0x0e, 0x5c, 0x04, 0x39, 0xe2, 0x4e, 0x38, 0xc2, 0xea, 0x89, 0x5d, 0xba, 0x0d,
		0xba, 0xfc, 0x74, 0xa2, 0xed, 0x55, 0x4a, 0x87, 0x9a, 0xae, 0x5d, 0x5e, 0xfd, 0xde, 0xd6, 0x3b,
		0x8d, 0x23, 0xad, 0xf1, 0xe4, 0x09, 0x2b, 0xa8, 0x89, 0xa7, 0x79, 0x76, 0xf0, 0xb2, 0x76, 0x67,
		0x3b, 0x5f, 0xac, 0xd6, 0x55, 0x5b, 0x0b, 0x6b, 0xab, 0xef, 0xf8, 0x55, 0xd0, 0x54, 0x54, 0x70,
		0x1f, 0x34, 0xa5, 0x5a, 0x71, 0x65, 0x09, 0xba, 0x40, 0x96, 0x2e, 0x78, 0x8f, 0x6b, 0x73, 0x2a,
		0xa0, 0x5c, 0x88, 0xd9, 0x08, 0x43, 0x31, 0x96, 0x0b, 0x8b, 0xce, 0x5d, 0x7d, 0x06, 0xed, 0xdf,
		0xaf, 0x1a, 0x9d, 0xeb, 0x76, 0xd7, 0x17, 0x7d, 0xdc, 0xa0, 0xe3, 0x06, 0x7d, 0xf1, 0x06, 0x5d,
		0x82, 0x50, 0xe1, 0x32, 0x9d, 0x1b, 0x0c, 0xfe, 0x98, 0xc4, 0xf3, 0x47, 0x5b, 0xa5, 0x45, 0x5b,
		0x65, 0xba, 0x13, 0xed, 0xa7, 0xe1, 0x1e, 0x1d, 0xf7, 0xe8, 0x1b, 0xa0, 0xc0, 0xa6, 0xd2, 0x84,
		0x2b, 0x74, 0x30, 0xf5, 0x14, 0x7c, 0x1e, 0x8e, 0x2b, 0x74, 0x35, 0x49, 0x21, 0x48, 0x03, 0x91,
		0x37, 0x21, 0xd2, 0x40, 0xb8, 0xd5, 0x2c, 0x2e, 0x7b, 0x91, 0x06, 0x92, 0x6c, 0x29, 0xd5, 0x5d,
		0xf6, 0xba, 0xe3, 0x72, 0x4c, 0x0a, 0xb2, 0x40, 0x0e, 0xa0, 0x95, 0x37, 0x5e, 0xb3, 0x35, 0xd1,
		0xde, 0xfc, 0x8a, 0x7a, 0xdd, 0x83, 0xe4, 0x39, 0xd8, 0x6d, 0x6d, 0x45, 0x09, 0x04, 0xc1, 0xc1,
		0x2e, 0x82, 0x5d, 0x04, 0xbb, 0x08, 0x76, 0x51, 0xfe, 0xec, 0x22, 0xb3, 0x2f, 0x2c, 0xcf, 0xf4,
		0x9e, 0x15, 0xa5, 0xc8, 0x72, 0xc6, 0xc2, 0x35, 0xc3, 0x8f, 0xfa, 0xd1, 0x70, 0x15, 0xe0, 0xc5,
		0x64, 0xc1, 0x03, 0xe7, 0xfa, 0x58, 0xb3, 0x1e, 0x77, 0x9a, 0x17, 0xe7, 0xdd, 0xb3, 0x46, 0xe7,
		0xb7, 0x8b, 0x53, 0x6e, 0xf4, 0x08, 0xe2, 0x86, 0x5c, 0xf6, 0xfb, 0x35, 0x4d, 0xc9, 0x1d, 0xdb,
		0xdc, 0x06, 0x2c, 0x67, 0x0b, 0xee, 0xc4, 0xfd, 0x86, 0xf2, 0x55, 0xef, 0x34, 0x2e, 0xcf, 0x03,
		0xb3, 0xf2, 0x7f, 0xae, 0x1b, 0x97, 0x4d, 0xac, 0x3a, 0xc7, 0xaa, 0xab, 0xb1, 0xe4, 0xf9, 0xf5,
		0x74, 0xc4, 0x21, 0xf2, 0x66, 0x7f, 0xe4, 0x93, 0xd5, 0xbb, 0xc2, 0xf9, 0xaa, 0xa2, 0x03, 0xc5,
		0xba, 0x07, 0x01, 0xf3, 0x04, 0xf3, 0x04, 0xf3, 0x04, 0xf3, 0x04, 0xf3, 0x64, 0x3c, 0xb1, 0x28,
		0xcc, 0x34, 0xf3, 0xdf, 0xb4, 0x6b, 0xf8, 0xe4, 0xbb, 0xe2, 0xb0, 0x27, 0x86, 0xc5, 0x35, 0x1a,
		0xcb, 0x5d, 0xf7, 0x0b, 0xff, 0x5d, 0xe1, 0xb7, 0xba, 0xd1, 0xef, 0x3b, 0xc2, 0x75, 0x51, 0xc8,
		0x49, 0xd6, 0xdc, 0x28, 0xe4, 0xb4, 0xa6, 0xfc, 0xce, 0x22, 0xb5, 0x43, 0x18, 0x2a, 0xc2, 0x50,
		0xe3, 0x15, 0x72, 0x5a, 0x96, 0x24, 0xc4, 0x9e, 0x72, 0x1f, 0xfb, 0x4e, 0x58, 0x46, 0x7a, 0x76,
		0xb7, 0xb4, 0xb1, 0x4e, 0x59, 0x51, 0x67, 0x5a, 0x3c, 0x79, 0xc2, 0xb1, 0x82, 0x52, 0xd3, 0xff,
		0x1d, 0x09, 0xc7, 0x44, 0x71, 0x27, 0x04, 0xa5, 0x6e, 0x84, 0x09, 0x89, 0xc5, 0x0c, 0xd1, 0xaa,
		0x99, 0x9e, 0x0d, 0xd1, 0xaa, 0x5b, 0x7b, 0xd0, 0x2c, 0xcf, 0xb1, 0x07, 0xca, 0xdc, 0x66, 0xe3,
		0xd9, 0xe1, 0x2b, 0x83, 0xaf, 0x0c, 0xbe, 0x32, 0xf8, 0xca, 0xe0, 0x2b, 0xe3, 0xf4, 0x95, 0xb9,
		0xc3, 0x09, 0x00, 0xeb, 0x9e, 0xff, 0x14, 0x68, 0xda, 0x4a, 0xb1, 0xbf, 0xea, 0x9b, 0xb6, 0xb6,
		0x4f, 0x1a, 0xdd, 0xd3, 0x46, 0xab, 0xf1, 0xeb, 0x71, 0xa7, 0x71, 0xaa, 0xac, 0x77, 0x6b, 0xfb,
		0xe4, 0xa4, 0x7b, 0x72, 0x71, 0xde, 0xb9, 0xbc, 0x68, 0xb5, 0xd4, 0x3c, 0x46, 0x65, 0xf2, 0x18,
		0x97, 0x8d, 0xf6, 0xc5, 0x65, 0xa7, 0x7b, 0x71, 0xde, 0xfa, 0x0b, 0x5d, 0x5c, 0xa9, 0x6c, 0x91,
		0xf9, 0xed, 0x56, 0xd3, 0xc9, 0x75, 0x71, 0xb3, 0xd5, 0xf4, 0x73, 0x9d, 0x3f, 0x7f, 0x39, 0x6e,
		0xeb, 0x0a, 0xf2, 0xb5, 0x39, 0xf9, 0x9a, 0xad, 0xdb, 0xc3, 0x4d, 0xbd, 0xb8, 0x0b, 0xc1, 0x80,
		0x78, 0x81, 0x78, 0x81, 0x78, 0x81, 0x78, 0x81, 0x78, 0xa1, 0x46, 0x2c, 0xe9, 0xbf, 0x5d, 0xad,
		0x11, 0x5b, 0x46, 0xa1, 0x4e, 0xd4, 0x88, 0x55, 0x23, 0x7a, 0x95, 0x5a, 0x0d, 0xc2, 0x87, 0x2a,
		0xb1, 0x24, 0xff, 0x70, 0x9b, 0xb7, 0xb9, 0x10, 0x3a, 0xc2, 0x73, 0x9e, 0x75, 0xcf, 0x7c, 0x54,
		0x11, 0x03, 0x3f, 0x3b, 0x39, 0x28, 0x65, 0x1e, 0x28, 0x25, 0xda, 0x8e, 0xec, 0x28, 0xa5, 0x44,
		0xdb, 0x91, 0xac, 0x52, 0xca, 0xf2, 0xbe, 0x02, 0x4e, 0xb9, 0x0f, 0x4e, 0x09, 0x4e, 0x09, 0xb3,
		0x1e, 0x9c, 0x52, 0xa6, 0xe8, 0xed, 0x97, 0xd0, 0xf4, 0x06, 0x9c, 0x32, 0xd3, 0x9c, 0x12, 0x99,
		0x4b, 0xb9, 0xd1, 0xc6, 0xa8, 0xa5, 0x2f, 0x8f, 0x63, 0x21, 0x89, 0x09, 0xb5, 0xf4, 0xe3, 0x2e,
		0x1b, 0x6a, 0xe9, 0x67, 0xe6, 0xc8, 0x6b, 0x48, 0x5b, 0xda, 0x0a, 0x05, 0x50, 0x4b, 0x1f, 0xb6,
		0x67, 0x86, 0x3e, 0x0f, 0xc7, 0x7d, 0x86, 0x2b, 0xbc, 0xd1, 0x50, 0x61, 0x3f, 0xfa, 0x85, 0xf9,
		0xf3, 0x5c, 0xa3, 0xb7, 0x8e, 0x5a, 0xbc, 0x09, 0xa6, 0xc3, 0xcd, 0x50, 0x2e, 0x4d, 0x19, 0xdc,
		0x0c, 0xe1, 0x66, 0x48, 0xde, 0x52, 0x22, 0xd8, 0x90, 0x72, 0x4a, 0x5c, 0x0c, 0x71, 0x4c, 0x8e,
		0x86, 0xf4, 0x93, 0xa3, 0x85, 0x8b, 0x21, 0x45, 0xa2, 0x87, 0x86, 0xf4, 0xb8, 0x16, 0xca, 0x34,
		0x35, 0x47, 0x43, 0xfa, 0x7c, 0x29, 0x64, 0x34, 0xa4, 0x4f, 0xc2, 0xab, 0xd0, 0x90, 0x7e, 0x15,
		0xd5, 0x42, 0x43, 0x7a, 0xd5, 0xba, 0x00, 0x0d, 0xe9, 0xc9, 0x80, 0x12, 0x97, 0xe8, 0xc9, 0x61,
		0x13, 0x97, 0xe8, 0xb8, 0x44, 0x8f, 0xbb, 0x6c, 0xb8, 0x44, 0xcf, 0xcc, 0x91, 0xd7, 0x70, 0x89,
		0xbe, 0x15, 0x0a, 0xe0, 0x12, 0x1d, 0x4c, 0x3d, 0x43, 0x9f, 0x87, 0xe5, 0x12, 0x7d, 0x78, 0xa7,
		0x3f, 0x0a, 0xcf, 0x31, 0x7b, 0x0a, 0x2e, 0xd0, 0xa7, 0x73, 0xe3, 0xe2, 0x57, 0xca, 0x84, 0xa8,
		0x32, 0xc3, 0xad, 0x72, 0x71, 0xf1, 0x8b, 0x2a, 0x33, 0xc9, 0x96, 0x52, 0xed, 0xc5, 0xef, 0x7e,
		0x55, 0xc1, 0xcd, 0xef, 0x01, 0x6e, 0x7e, 0xe5, 0x7f, 0x50, 0xdc, 0xfc, 0xe2, 0xfa, 0x6d, 0x97,
		0x6f, 0x7e, 0xcb, 0x07, 0xd5, 0xea, 0x7e, 0xbd, 0x5a, 0x2d, 0xd5, 0xf7, 0xea, 0xa5, 0xc3, 0x5a,
		0xad, 0xbc, 0x5f, 0x46, 0xdd, 0x19, 0x5c, 0x06, 0x83, 0x62, 0xaa, 0xa6, 0x98, 0x23, 0x57, 0xe8,
		0x3d, 0x77, 0x78, 0xc7, 0x4f, 0x30, 0xa3, 0x99, 0x41, 0x2f, 0x41, 0x2f, 0x41, 0x2f, 0x41, 0x2f,
		0x41, 0x2f, 0x19, 0x4f, 0xec, 0xad, 0x6d, 0x0f, 0x84, 0x61, 0xa9, 0x68, 0x1a, 0x51, 0x46, 0xac,
		0x96, 0xa4, 0xb9, 0xd1, 0x7c, 0x74, 0x65, 0xcb, 0xc8, 0xd6, 0xc5, 0x49, 0xd0, 0x2f, 0xf2, 0xe4,
		0xe2, 0xac, 0x7d, 0xdd, 0x41, 0xeb, 0x51, 0x04, 0x1c, 0xc4, 0x6b, 0x3d, 0xba, 0x2c, 0x47, 0x88,
		0x31, 0xe0, 0x3e, 0xf2, 0x9d, 0x07, 0xa1, 0x8d, 0x5c, 0xa1, 0xd9, 0x77, 0x9a, 0x4f, 0x16, 0xe6,
		0xbb, 0x40, 0xce, 0xb5, 0x89, 0x0c, 0x37, 0xd0, 0x74, 0xbf, 0x58, 0x03, 0xbb, 0x67, 0x0c, 0xb4,
		0x99, 0x5f, 0x22, 0x04, 0x01, 0x21, 0x08, 0x1b, 0xe0, 0x82, 0x24, 0x61, 0x43, 0x84, 0x02, 0xdc,
		0x47, 0x69, 0x70, 0x1f, 0xbd, 0xc9, 0xb0, 0x66, 0x2a, 0x1c, 0x5b, 0x96, 0x1d, 0x9e, 0x27, 0x0e,
		0xf8, 0x2c, 0xb8, 0xbd, 0x07, 0xf1, 0x68, 0xf8, 0x07, 0xdd, 0x47, 0x82, 0xa2, 0x3d, 0x14, 0xd6,
		0x38, 0x10, 0x51, 0xb7, 0x84, 0xf7, 0xcd, 0x76, 0xfe, 0xd6, 0x4d, 0xdf, 0xc6, 0xb7, 0x7a, 0xa2,
		0xb8, 0xf8, 0x82, 0xbb, 0xf4, 0x4a, 0xd1, 0x37, 0x20, 0x8a, 0x03, 0x77, 0xe8, 0x16, 0x7b, 0xb6,
		0xe5, 0x7a, 0x8e, 0x61, 0x5a, 0xa2, 0xaf, 0xfb, 0xa3, 0x17, 0xbd, 0x71, 0xbc, 0x77, 0xf8, 0xb5,
		0x38, 0xac, 0x0c, 0xf5, 0xf1, 0xb7, 0xba, 0xe1, 0x79, 0x8e, 0x79, 0x3b, 0xf2, 0x84, 0x1b, 0xbc,
		0x3a, 0x74, 0xcc, 0x47, 0xc3, 0x79, 0x1e, 0xbf, 0x6b, 0xe9, 0x05, 0xd7, 0x33, 0x3c, 0x8e, 0xc0,
		0xfb, 0x82, 0xeb, 0x39, 0xa3, 0x9e, 0x67, 0x85, 0xfa, 0xf8, 0x22, 0x5a, 0x97, 0xf3, 0xf1, 0x67,
		0x6e, 0x86, 0x1f, 0xb9, 0xbb, 0xf0, 0xb3, 0xbb, 0xf8, 0x42, 0xf7, 0x6c, 0x38, 0x70, 0xbb, 0x2d,
		0x77, 0xe8, 0x76, 0x4f, 0xa6, 0x6b, 0xd2, 0x36, 0xbc, 0x87, 0x6e, 0x18, 0x02, 0x1f, 0x7e, 0xed,
		0xb6, 0x2b, 0xed, 0xf1, 0x77, 0xc7, 0xd1, 0x82, 0xf8, 0xaf, 0xb5, 0xc7, 0x1f, 0x3f, 0x78, 0xc7,
		0xc2, 0x8f, 0x57, 0xc1, 0x62, 0xbc, 0xc9, 0xe6, 0x69, 0xa2, 0x19, 0x99, 0xe8, 0x7c, 0xfa, 0xe6,
		0x84, 0x2f, 0x07, 0x81, 0x3c, 0x10, 0x4d, 0xd1, 0x32, 0x5d, 0xcf, 0xdf, 0x7a, 0xd2, 0x83, 0x5f,
		0x38, 0x33, 0xad, 0xc6, 0x40, 0xf8, 0xaa, 0x9f, 0xf8, 0x12, 0xa8, 0x70, 0x66, 0x3c, 0xcd, 0xcc,
		0xc4, 0x7b, 0x15, 0x56, 0xb8, 0x70, 0xfa, 0xc2, 0x11, 0xfd, 0x8f, 0xfe, 0xae, 0x59, 0xa3, 0xc1,
		0x80, 0x63, 0xaa, 0x6b, 0x37, 0xa8, 0x62, 0x4f, 0x77, 0xab, 0x45, 0x25, 0xdc, 0x4c, 0x4a, 0x27,
		0x6b, 0xca, 0x86, 0x50, 0xcd, 0x64, 0x41, 0xbd, 0xd0, 0x28, 0x16, 0xf9, 0xb0, 0x2f, 0x77, 0x44,
		0xc9, 0x67, 0x8c, 0xfa, 0x6c, 0xa5, 0xfc, 0x4c, 0x11, 0x1c, 0xa1, 0x54, 0x1e, 0x1d, 0xb9, 0x67,
		0x45, 0x9e, 0x44, 0x4b, 0x94, 0xe6, 0x82, 0xbf, 0xb7, 0xae, 0xe8, 0xd9, 0x56, 0x7f, 0xb2, 0xbb,
		0xae, 0x74, 0x91, 0x9e, 0x76, 0xfb, 0x5c, 0x31, 0x99, 0xe4, 0x93, 0x39, 0xb9, 0x98, 0x91, 0x3c,
		0x2c, 0xd5, 0x0d, 0x38, 0xe5, 0x4d, 0x37, 0xc3, 0x8d, 0x36, 0xb5, 0x53, 0x90, 0xed, 0x86, 0x9a,
		0xcd, 0x8f, 0xc7, 0x73, 0xe3, 0x9c, 0x6e, 0xed, 0x79, 0x6a, 0xd2, 0xd0, 0xa1, 0x15, 0xf8, 0x42,
		0x27, 0x99, 0xeb, 0x31, 0x8d, 0x4a, 0x44, 0x69, 0xa0, 0x8d, 0x1c, 0xe2, 0x38, 0xa0, 0x8e, 0x11,
		0xf2, 0xb8, 0xa0, 0x8f, 0x1d, 0x02, 0xd9, 0xa1, 0x90, 0x17, 0x12, 0xb3, 0xe9, 0xa1, 0xa2, 0x82,
		0xca, 0x68, 0x02, 0xa3, 0xff, 0x68, 0x5a, 0xfa, 0xbd, 0x63, 0x8f, 0x86, 0x2e, 0xbd, 0x2c, 0x4f,
		0x8e, 0xe7, 0xdc, 0xac, 0xc4, 0xd2, 0x45, 0x0b, 0x9b, 0x6c, 0xf0, 0xc9, 0x09, 0xa3, 0x0a, 0xe0,
		0x94, 0x1b, 0x56, 0x95, 0xc1, 0xab, 0x32, 0x98, 0x55, 0x03, 0xb7, 0xb4, 0xb0, 0x4b, 0x0c, 0xbf,
		0x6c, 0x30, 0x1c, 0x4d, 0xd4, 0x9b, 0xa0, 0x08, 0x73, 0x00, 0x7b, 0x38, 0x2f, 0x6f, 0xf8, 0x7a,
		0x19, 0xe1, 0xeb, 0x59, 0x86, 0x6a, 0x55, 0x90, 0xad, 0x1c, 0xba, 0x95, 0x43, 0xb8, 0x5a, 0x28,
		0xe7, 0x81, 0x74, 0x26, 0x68, 0x67, 0x87, 0xf8, 0x68, 0x42, 0xf1, 0xd4, 0x1b, 0x8c, 0xfa, 0x62,
		0x6c, 0x05, 0xf3, 0x1f, 0x9e, 0x09, 0x5e, 0xcc, 0x3f, 0x06, 0xb3, 0xfc, 0xf2, 0xe6, 0x31, 0x29,
		0x53, 0x08, 0x2a, 0x15, 0x43, 0x0a, 0x14, 0x84, 0x6a, 0x45, 0x91, 0x1a, 0x85, 0x91, 0x1a, 0xc5,
		0x91, 0x0e, 0x05, 0xc2, 0xab, 0x48, 0x98, 0x15, 0x4a, 0xb4, 0xc4, 0xec, 0x79, 0x51, 0x4b, 0x27,
		0x7e, 0x20, 0x8c, 0x3b, 0x47, 0xdc, 0xa9, 0x38, 0xf1, 0x13, 0x4b, 0x5f, 0x41, 0xb5, 0xf4, 0x42,
		0x3b, 0xbc, 0x3e, 0x5f, 0x28, 0xc9, 0xb8, 0xf0, 0x9f, 0x27, 0xf4, 0xfb, 0x81, 0x7d, 0x6b, 0xcc,
		0xdd, 0x78, 0xfb, 0xe7, 0x40, 0x9f, 0x75, 0x52, 0x15, 0x67, 0x7e, 0x98, 0xfd, 0x5e, 0x0f, 0x6e,
		0xac, 0x73, 0x2d, 0xbf, 0x2c, 0x11, 0x6c, 0x6b, 0x67, 0x67, 0x8b, 0x6c, 0x5b, 0xff, 0x04, 0x0a,
		0x23, 0xde, 0xd6, 0x3e, 0x14, 0x5f, 0x24, 0xdc, 0xeb, 0x8f, 0x40, 0x1e, 0x21, 0xa7, 0x5e, 0x6f,
		0x30, 0x9e, 0xb9, 0x82, 0x69, 0x8d, 0x0d, 0x72, 0x63, 0x30, 0x50, 0xcd, 0x0d, 0x96, 0x1f, 0x05,
		0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00,
		0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x40, 0x0d, 0x3f, 0xb0, 0x9e, 0x53, 0xc3, 0x0f, 0xa2, 0x47, 0x01,
		0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00,
		0x3f, 0x00, 0x3f, 0x00, 0x3f, 0xc8, 0x59, 0xa8, 0x14, 0x73, 0x39, 0x9b, 0x68, 0xde, 0xf4, 0x65,
		0x45, 0x2f, 0x24, 0xb3, 0xae, 0x78, 0xad, 0x38, 0xa7, 0x05, 0x58, 0xc3, 0x6c, 0xb5, 0x54, 0xe5,
		0x55, 0x5f, 0x4d, 0x96, 0xc5, 0x7f, 0xcf, 0xf2, 0x2b, 0xdd, 0x63, 0x7f, 0x9d, 0x7e, 0x0d, 0x96,
		0xa9, 0x1b, 0xf2, 0x2b, 0x94, 0x3e, 0xdf, 0x62, 0x9b, 0x0d, 0x4f, 0x28, 0x68, 0xac, 0xc5, 0x54,
		0xb8, 0x49, 0x53, 0x19, 0x35, 0x5e, 0x41, 0xd4, 0x78, 0x8e, 0xc8, 0x3c, 0xa2, 0xc6, 0x11, 0x35,
		0x2e, 0x6f, 0x29, 0x11, 0x35, 0x0e, 0xaf, 0x6f, 0x1e, 0x15, 0x43, 0x0a, 0x14, 0x84, 0x6a, 0x45,
		0x91, 0x1a, 0x85, 0x91, 0x1a, 0xc5, 0x91, 0x0e, 0x05, 0xc2, 0xcf, 0xde, 0x35, 0x78, 0x7d, 0x35,
		0x15, 0x00, 0x0f, 0xaf, 0x6f, 0x76, 0xe5, 0x17, 0x5e, 0x5f, 0x78, 0x7d, 0x7f, 0xfa, 0x08, 0x88,
		0x0a, 0x91, 0xba, 0xae, 0x88, 0x1a, 0x07, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f,
		0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x58, 0xe2, 0x07, 0x88,
		0x1a, 0x07, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00,
		0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x48, 0x27, 0x3f, 0x40, 0xd4, 0xb8, 0x84, 0x79, 0xb3, 0x1f, 0x35,
		0xce, 0x19, 0x65, 0xab, 0x65, 0x36, 0x68, 0x9c, 0xa1, 0x6f, 0x2a, 0xdf, 0xc1, 0x44, 0xbf, 0xe3,
		0x9d, 0x3a, 0xe2, 0x3b, 0xd5, 0xfb, 0x78, 0x8b, 0x43, 0x9d, 0xd9, 0x36, 0xc8, 0x84, 0x7d, 0x87,
		0x98, 0x5a, 0x04, 0xf0, 0xb6, 0x06, 0x40, 0x97, 0x96, 0x4c, 0xf9, 0xd8, 0xd0, 0xa5, 0x25, 0x9f,
		0x3e, 0x32, 0x74, 0x69, 0xd9, 0x0c, 0x82, 0xdd, 0xe1, 0x9d, 0xee, 0x99, 0xe2, 0xd6, 0x11, 0xc6,
		0xdf, 0xc2, 0x51, 0xd0, 0xae, 0x65, 0xe1, 0x01, 0x78, 0x33, 0xf0, 0x4a, 0xe8, 0xdb, 0x92, 0x65,
		0xf0, 0x56, 0x05, 0xe2, 0xca, 0xc1, 0x5c, 0x39, 0xa8, 0xab, 0x05, 0xf7, 0x7c, 0xba, 0x95, 0xd8,
		0x2f, 0x3a, 0x96, 0x40, 0x58, 0x0f, 0x50, 0xd8, 0xb4, 0x58, 0xf3, 0xfa, 0x27, 0xf6, 0x72, 0x95,
		0x71, 0xce, 0x86, 0x35, 0x7a, 0xe4, 0x47, 0x8b, 0x8e, 0x7d, 0xe5, 0x39, 0xfe, 0xea, 0x2a, 0xb9,
		0x09, 0x28, 0xf9, 0x3b, 0x7d, 0x79, 0x7c, 0x7e, 0x7a, 0x71, 0xa6, 0xe2, 0x26, 0xab, 0xec, 0x4f,
		0xdf, 0x6a, 0x1c, 0x5f, 0x75, 0xba, 0x9f, 0x9a, 0xad, 0x96, 0x8a, 0x47, 0xa8, 0xf8, 0x8f, 0x70,
		0x76, 0x31, 0x79, 0x82, 0x7c, 0xdf, 0x9a, 0xda, 0xcd, 0x00, 0x94, 0x15, 0x08, 0xda, 0xcc, 0x26,
		0xb3, 0xd5, 0x38, 0x98, 0x7b, 0x80, 0xe9, 0x16, 0xb3, 0x95, 0x3c, 0x98, 0x9b, 0x3f, 0x3c, 0x64,
		0x47, 0x5a, 0x09, 0xe1, 0x5e, 0xc9, 0xa9, 0x90, 0xb8, 0x33, 0x46, 0x03, 0x4f, 0x09, 0x78, 0xf9,
		0xe6, 0xd5, 0x74, 0x7e, 0xdf, 0xba, 0xca, 0x95, 0xc1, 0x21, 0x9e, 0x3c, 0xc7, 0xd0, 0x47, 0x96,
		0xeb, 0x19, 0xb7, 0x03, 0x66, 0xd3, 0xe3, 0xdb, 0x83, 0xb0, 0x0a, 0x47, 0xda, 0x67, 0xd6, 0x13,
		0xa2, 0x30, 0x86, 0xe4, 0xc3, 0x87, 0xe2, 0xd0, 0xf0, 0x1e, 0xf4, 0x9e, 0xfd, 0x38, 0x1c, 0x8d,
		0x6f, 0x14, 0xf4, 0x47, 0xe1, 0x3d, 0xd8, 0x7d, 0xed, 0x5f, 0xda, 0x2f, 0xa1, 0xe5, 0xec, 0x1d,
		0xb5, 0x2e, 0x4e, 0x8e, 0x5b, 0xad, 0xbf, 0xba, 0x27, 0x17, 0x67, 0xed, 0xeb, 0x4e, 0xe3, 0xf4,
		0x97, 0x1d, 0x0f, 0x33, 0x0b, 0xc4, 0x04, 0x41, 0x66, 0x53, 0x8e, 0x15, 0x5b, 0x8e, 0xf8, 0xa3,
		0xd2, 0x14, 0x48, 0xee, 0xa9, 0x70, 0x7b, 0x8e, 0x39, 0x64, 0xbf, 0x9a, 0x5f, 0x79, 0xe4, 0x3b,
		0x0f, 0x42, 0xf3, 0x99, 0x95, 0x36, 0x71, 0x6f, 0x99, 0xd6, 0xbd, 0x16, 0xee, 0x95, 0x2f, 0xd7,
		0x9a, 0xf7, 0x20, 0x34, 0x7f, 0x33, 0x35, 0xd3, 0xfd, 0x62, 0x0d, 0xec, 0x9e, 0x31, 0x18, 0x3c,
		0x6b, 0xe3, 0x8d, 0x15, 0x7d, 0x55, 0x52, 0xaf, 0xf8, 0xf0, 0x2f, 0x02, 0x40, 0x7f, 0x66, 0x47,
		0xdf, 0xab, 0x7b, 0xa2, 0xb4, 0x60, 0xc1, 0x12, 0x1e, 0x24, 0x14, 0x32, 0x25, 0x1f, 0xe2, 0x25,
		0xef, 0x11, 0xb2, 0x6c, 0xb3, 0xdd, 0xa0, 0xb0, 0xe0, 0x16, 0xd6, 0xee, 0x70, 0x60, 0xf6, 0x4c,
		0x2f, 0x88, 0x59, 0xd0, 0xc3, 0xe8, 0x01, 0xe6, 0xdb, 0x8e, 0x15, 0xcf, 0x80, 0x0b, 0x0f, 0x29,
		0x13, 0xe2, 0xc2, 0x83, 0x5b, 0x33, 0xe3, 0xc2, 0x03, 0x17, 0x1e, 0xc9, 0x96, 0x52, 0xdd, 0x85,
		0x07, 0x7f, 0x46, 0x87, 0x8a, 0x4c, 0x8e, 0x9f, 0x67, 0x70, 0xf8, 0xda, 0xa7, 0xaf, 0xcf, 0x69,
		0x24, 0x77, 0xd5, 0x8b, 0x61, 0xa9, 0xe7, 0x22, 0x5f, 0xa6, 0x06, 0xfc, 0x5f, 0x3b, 0xeb, 0xff,
		0x6a, 0xfc, 0xd9, 0x6e, 0x35, 0x4f, 0x9a, 0x9d, 0xd6, 0x5f, 0xdd, 0xd3, 0xc6, 0xa7, 0xe6, 0x39,
		0x3c, 0x60, 0xf0, 0x80, 0xc5, 0xf3, 0x80, 0xad, 0x92, 0x24, 0xf8, 0xc0, 0x54, 0xf8, 0xc0, 0x7c,
		0xc5, 0xa1, 0xd9, 0x77, 0x81, 0x27, 0x62, 0xa2, 0x59, 0x06, 0xcf, 0x5a, 0x5f, 0xdc, 0x99, 0x96,
		0xe8, 0x8f, 0x9d, 0x13, 0x23, 0x17, 0x1e, 0x2f, 0x78, 0xbc, 0x36, 0xf6, 0x78, 0x6d, 0x2c, 0x52,
		0xf0, 0x6f, 0xc1, 0xbf, 0xb5, 0x23, 0xfe, 0xad, 0x07, 0x7b, 0xd0, 0xd7, 0x87, 0x8e, 0x69, 0x3b,
		0xa6, 0xf7, 0xcc, 0xef, 0xda, 0x9a, 0x9f, 0x9e, 0xab, 0x68, 0x7d, 0x74, 0x39, 0xcf, 0x67, 0x48,
		0x17, 0x4a, 0x3c, 0xa8, 0x72, 0x03, 0xcf, 0xa0, 0x1c, 0x12, 0xac, 0xd6, 0x33, 0xe8, 0xb8, 0x5f,
		0x87, 0xf0, 0x0c, 0xee, 0x80, 0xc1, 0xb2, 0xe8, 0x19, 0x0c, 0x36, 0x1e, 0x9e, 0xc1, 0x58, 0x4b,
		0xa9, 0xce, 0x33, 0x38, 0x32, 0x2d, 0xef, 0x40, 0x81, 0x5f, 0x90, 0xb1, 0x08, 0x46, 0xe1, 0xd2,
		0xb0, 0xee, 0xc5, 0x2e, 0x38, 0x9f, 0xce, 0x4c, 0x85, 0x14, 0xf8, 0x77, 0x63, 0x30, 0x12, 0x6a,
		0x6a, 0xae, 0x04, 0xf3, 0x7f, 0x72, 0x8c, 0x9e, 0x4f, 0x22, 0x4f, 0xcd, 0x7b, 0x53, 0x55, 0xf1,
		0x97, 0xf1, 0xd1, 0x12, 0xf7, 0x86, 0x67, 0x7e, 0x15, 0x4a, 0x6a, 0x9c, 0xa8, 0xf2, 0xc2, 0x9c,
		0x19, 0x4f, 0xea, 0x45, 0xaf, 0x0e, 0xd1, 0x53, 0x2d, 0x7a, 0x20, 0xe6, 0x19, 0x30, 0x37, 0x54,
		0x5e, 0x04, 0x39, 0xe2, 0x4e, 0x38, 0xc2, 0xea, 0x89, 0x5d, 0xba, 0x0d, 0xba, 0xfc, 0x74, 0xa2,
		0xed, 0x55, 0x4a, 0x87, 0x9a, 0xae, 0x5d, 0x5e, 0xfd, 0xde, 0xd6, 0x3b, 0x8d, 0x23, 0xad, 0xf1,
		0xe4, 0x09, 0xcb, 0x35, 0x6d, 0xcb, 0xd5, 0x3c, 0x3b, 0x78, 0x59, 0xbb, 0xb3, 0x9d, 0x2f, 0x56,
		0xeb, 0xaa, 0xad, 0x85, 0xe5, 0x38, 0x76, 0xfc, 0x2a, 0x68, 0x2a, 0x2a, 0xb8, 0x0f, 0x9a, 0x52,
		0xad, 0xb8, 0xb2, 0x04, 0x5d, 0x20, 0x4b, 0x17, 0xbc, 0xc7, 0xb5, 0x39, 0x15, 0x50, 0x2e, 0xc4,
		0x6c, 0x84, 0xa1, 0x18, 0xae, 0x79, 0x6f, 0x19, 0x03, 0xd3, 0xba, 0xd7, 0x87, 0x8e, 0xed, 0xd9,
		0x3d, 0x7b, 0x30, 0x77, 0xf5, 0xd9, 0x3e, 0xee, 0xfc, 0xd6, 0xbd, 0x6a, 0x74, 0xae, 0xdb, 0x5d,
		0x5f, 0xf4, 0x71, 0x83, 0x8e, 0x1b, 0xf4, 0xc5, 0x1b, 0x74, 0x09, 0x42, 0x85, 0xcb, 0x74, 0x6e,
		0x30, 0xf8, 0x63, 0x12, 0xcf, 0x1f, 0x6d, 0x95, 0x16, 0x6d, 0x95, 0xe9, 0x4e, 0xb4, 0x9f, 0x86,
		0x7b, 0x74, 0xdc, 0xa3, 0x6f, 0x80, 0x02, 0x9b, 0x4a, 0x13, 0xae, 0xd0, 0xc1, 0xd4, 0x53, 0xf0,
		0x79, 0x38, 0xae, 0xd0, 0xd5, 0x24, 0x85, 0x20, 0x0d, 0x44, 0xde, 0x84, 0x48, 0x03, 0xe1, 0x56,
		0xb3, 0xb8, 0xec, 0x45, 0x1a, 0x48, 0xb2, 0xa5, 0x54, 0x77, 0xd9, 0xeb, 0x8e, 0xcb, 0x31, 0x29,
		0xc8, 0x02, 0x39, 0x80, 0x56, 0xde, 0x78, 0xcd, 0xd6, 0x44, 0x7b, 0xf3, 0x2b, 0xea, 0x75, 0x0f,
		0x92, 0xe7, 0x60, 0xb7, 0xb5, 0x15, 0x25, 0x10, 0x04, 0x07, 0xbb, 0x08, 0x76, 0x11, 0xec, 0x22,
		0xd8, 0x45, 0xf9, 0xb3, 0x8b, 0xcc, 0xbe, 0xb0, 0x3c, 0xd3, 0x7b, 0x56, 0x94, 0x22, 0xcb, 0x19,
		0x0b, 0xd7, 0x0c, 0x3f, 0xea, 0x47, 0xc3, 0x15, 0xea, 0x1a, 0x89, 0x06, 0xce, 0xf5, 0xb1, 0x66,
		0x3d, 0xee, 0x34, 0x2f, 0xce, 0xbb, 0x67, 0x8d, 0xce, 0x6f, 0x17, 0xa7, 0xdc, 0xe8, 0x11, 0xc4,
		0x0d, 0xb9, 0xec, 0xf7, 0x6b, 0x9a, 0x92, 0x3b, 0xb6, 0xb9, 0x0d, 0x58, 0xce, 0x16, 0xdc, 0x89,
		0xfb, 0x0d, 0xe5, 0xab, 0xde, 0x69, 0x5c, 0x9e, 0x07, 0x66, 0xe5, 0xff, 0x5c, 0x37, 0x2e, 0x9b,
		0x58, 0x75, 0x8e, 0x55, 0x57, 0x63, 0xc9, 0xf3, 0xeb, 0xe9, 0x88, 0x43, 0xe4, 0xcd, 0xfe, 0xc8,
		0x27, 0xab, 0x77, 0x85, 0xf3, 0x55, 0x45, 0x07, 0x8a, 0x75, 0x0f, 0x02, 0xe6, 0x09, 0xe6, 0x09,
		0xe6, 0x09, 0xe6, 0x09, 0xe6, 0xc9, 0x78, 0x62, 0x51, 0x98, 0x69, 0xe6, 0xbf, 0x49, 0x38, 0x86,
		0x1b, 0x7d, 0x57, 0x1c, 0xf6, 0xc4, 0xb0, 0xb8, 0x46, 0x63, 0xb9, 0xeb, 0x7e, 0xe1, 0xbf, 0x2b,
		0xfc, 0x56, 0x37, 0xfa, 0x7d, 0x47, 0xb8, 0x2e, 0x0a, 0x39, 0xc9, 0x9a, 0x1b, 0x85, 0x9c, 0xd6,
		0x94, 0xdf, 0x59, 0xa4, 0x76, 0x08, 0x43, 0x45, 0x18, 0x6a, 0xbc, 0x42, 0x4e, 0xcb, 0x92, 0x84,
		0xd8, 0x53, 0xee, 0x63, 0xdf, 0x09, 0xcb, 0x48, 0xcf, 0xee, 0x96, 0x36, 0xd6, 0x29, 0x2b, 0xea,
		0x4c, 0x8b, 0x27, 0x4f, 0x38, 0x56, 0x50, 0x6a, 0xfa, 0xbf, 0x23, 0xe1, 0x98, 0x28, 0xee, 0x84,
		0xa0, 0xd4, 0x8d, 0x30, 0x21, 0xb1, 0x98, 0x21, 0x5a, 0x35, 0xd3, 0xb3, 0x21, 0x5a, 0x75, 0x6b,
		0x0f, 0x9a, 0xe5, 0x39, 0xf6, 0x40, 0x99, 0xdb, 0x6c, 0x3c, 0x3b, 0x7c, 0x65, 0xf0, 0x95, 0xc1,
		0x57, 0x06, 0x5f, 0x19, 0x7c, 0x65, 0x9c, 0xbe, 0x32, 0x77, 0x38, 0x01, 0x60, 0xdd, 0xf3, 0x9f,
		0x02, 0x4d, 0x5b, 0x29, 0xf6, 0x57, 0x7d, 0xd3, 0xd6, 0xf6, 0x49, 0xa3, 0x7b, 0xda, 0x68, 0x35,
		0x7e, 0x3d, 0xee, 0x34, 0x4e, 0x95, 0xf5, 0x6e, 0x6d, 0x9f, 0x9c, 0x74, 0x4f, 0x2e, 0xce, 0x3b,
		0x97, 0x17, 0xad, 0x96, 0x9a, 0xc7, 0xa8, 0x4c, 0x1e, 0xe3, 0xb2, 0xd1, 0xbe, 0xb8, 0xec, 0x74,
		0x2f, 0xce, 0x5b, 0x7f, 0xa1, 0x8b, 0x2b, 0x95, 0x2d, 0x32, 0xbf, 0xdd, 0x6a, 0x3a, 0xb9, 0x2e,
		0x6e, 0xb6, 0x9a, 0x7e, 0xae, 0xf3, 0xe7, 0x2f, 0xc7, 0x6d, 0x5d, 0x41, 0xbe, 0x36, 0x27, 0x5f,
		0xb3, 0x75, 0x7b, 0xb8, 0xa9, 0x17, 0x77, 0x21, 0x18, 0x10, 0x2f, 0x10, 0x2f, 0x10, 0x2f, 0x10,
		0x2f, 0x10, 0x2f, 0xd4, 0x88, 0x25, 0xfd, 0xb7, 0xab, 0x35, 0x62, 0xcb, 0x28, 0xd4, 0x89, 0x1a,
		0xb1, 0x6a, 0x44, 0xaf, 0x52, 0xab, 0x41, 0xf8, 0x50, 0x25, 0x96, 0xe4, 0x1f, 0x6e, 0xf3, 0x36,
		0x17, 0x42, 0x47, 0x78, 0xce, 0xb3, 0xee, 0x99, 0x8f, 0x2a, 0x62, 0xe0, 0x67, 0x27, 0x07, 0xa5,
		0xcc, 0x03, 0xa5, 0x44, 0xdb, 0x91, 0x1d, 0xa5, 0x94, 0x68, 0x3b, 0x92, 0x55, 0x4a, 0x59, 0xde,
		0x57, 0xc0, 0x29, 0xf7, 0xc1, 0x29, 0xc1, 0x29, 0x61, 0xd6, 0x83, 0x53, 0xca, 0x14, 0xbd, 0xfd,
		0x12, 0x9a, 0xde, 0x80, 0x53, 0x66, 0x9a, 0x53, 0x22, 0x73, 0x29, 0x37, 0xda, 0x18, 0xb5, 0xf4,
		0xe5, 0x71, 0x2c, 0x24, 0x31, 0xa1, 0x96, 0x7e, 0xdc, 0x65, 0x43, 0x2d, 0xfd, 0xcc, 0x1c, 0x79,
		0x0d, 0x69, 0x4b, 0x5b, 0xa1, 0x00, 0x6a, 0xe9, 0xc3, 0xf6, 0xcc, 0xd0, 0xe7, 0xe1, 0xb8, 0xcf,
		0x70, 0x85, 0x37, 0x1a, 0x2a, 0xec, 0x47, 0xbf, 0x30, 0x7f, 0x9e, 0x6b, 0xf4, 0xd6, 0x51, 0x8b,
		0x37, 0xc1, 0x74, 0xb8, 0x19, 0xca, 0xa5, 0x29, 0x83, 0x9b, 0x21, 0xdc, 0x0c, 0xc9, 0x5b, 0x4a,
		0x04, 0x1b, 0x52, 0x4e, 0x89, 0x8b, 0x21, 0x8e, 0xc9, 0xd1, 0x90, 0x7e, 0x72, 0xb4, 0xfe, 0x3f,
		0xf6, 0xde, 0xb4, 0xb7, 0x6d, 0x25, 0x59, 0x1f, 0x7f, 0xef, 0x4f, 0x41, 0x08, 0x03, 0x5c, 0x1b,
		0x08, 0xa3, 0xc5, 0x5a, 0x6c, 0x03, 0xf3, 0xc2, 0x27, 0x56, 0xce, 0x18, 0xe3, 0x45, 0xd7, 0x96,
		0xcf, 0x9c, 0xf9, 0x27, 0x1a, 0x81, 0x96, 0x5a, 0x36, 0x7f, 0xa1, 0x49, 0x0d, 0xd9, 0xca, 0x71,
		0x6e, 0xac, 0xef, 0xfe, 0x87, 0x28, 0x8a, 0xda, 0x1d, 0x2d, 0x5d, 0xd5, 0xa4, 0xf4, 0x18, 0x83,
		0x49, 0x8e, 0x62, 0x75, 0x4b, 0xec, 0xea, 0xaa, 0x7a, 0x9e, 0xda, 0x10, 0x18, 0xd2, 0x24, 0x7a,
		0x18, 0x48, 0x8f, 0xb0, 0x50, 0xaa, 0xa1, 0x39, 0x06, 0xd2, 0xef, 0x96, 0x41, 0xc6, 0x40, 0xfa,
		0x6d, 0x70, 0x15, 0x06, 0xd2, 0x2f, 0x82, 0x5a, 0x18, 0x48, 0xaf, 0xdb, 0x16, 0x60, 0x20, 0x3d,
		0x99, 0xa2, 0x44, 0x10, 0x7d, 0x7b, 0xb5, 0x89, 0x20, 0x3a, 0x82, 0xe8, 0x9b, 0x3e, 0x36, 0x04,
		0xd1, 0x53, 0x73, 0xe5, 0x0d, 0x04, 0xd1, 0xd7, 0xd2, 0x02, 0x08, 0xa2, 0x03, 0xa9, 0xa7, 0xe8,
		0xfb, 0x70, 0x04, 0xd1, 0x7b, 0x81, 0x30, 0x5b, 0x41, 0xb7, 0xc3, 0x1f, 0x3e, 0x8f, 0x77, 0x46,
		0xd0, 0x57, 0xc9, 0x86, 0xe8, 0x30, 0xc3, 0x6d, 0x6e, 0x11, 0xf4, 0x45, 0x87, 0x99, 0xed, 0x1e,
		0xa5, 0xbe, 0xa0, 0xef, 0xa3, 0xe7, 0x39, 0xc2, 0x72, 0x75, 0x74, 0xf4, 0xcc, 0x83, 0x48, 0x07,
		0x35, 0xb4, 0x29, 0x35, 0xb4, 0xca, 0x3c, 0x8f, 0xd9, 0xf1, 0x93, 0x60, 0x83, 0xc0, 0x06, 0x6d,
		0x32, 0x17, 0x66, 0x5e, 0x8e, 0x40, 0x00, 0x71, 0x5f, 0xf9, 0xfa, 0xb3, 0x30, 0x7a, 0x81, 0x30,
		0xbc, 0x8e, 0x31, 0x00, 0x0b, 0xd3, 0x23, 0x3a, 0xa6, 0x66, 0x78, 0x44, 0x07, 0x68, 0x07, 0x5f,
		0x5d, 0xc7, 0x6b, 0x59, 0x8e, 0x31, 0xf1, 0x8f, 0xe0, 0x87, 0xc0, 0x0f, 0xad, 0xa0, 0x17, 0x14,
		0x09, 0x1b, 0xe8, 0x23, 0xd0, 0x47, 0x49, 0xa0, 0x8f, 0x0e, 0x52, 0x6c, 0x99, 0x32, 0xe7, 0xae,
		0xeb, 0x45, 0xf7, 0x89, 0x43, 0x7d, 0x66, 0x82, 0xd6, 0xb3, 0x78, 0xb1, 0xba, 0xd1, 0xd8, 0xcc,
		0xac, 0xd7, 0x15, 0xee, 0x30, 0x4a, 0x64, 0xba, 0x42, 0xfe, 0xe5, 0xf9, 0xdf, 0x4c, 0x7b, 0xe0,
		0xe3, 0xbb, 0x2d, 0x91, 0x9d, 0x7d, 0x21, 0x98, 0x7b, 0x25, 0x3b, 0x70, 0x20, 0xb2, 0x4e, 0xd0,
		0x0d, 0xb2, 0x2d, 0xcf, 0x0d, 0xa4, 0x6f, 0xd9, 0xae, 0x68, 0x9b, 0x83, 0xd5, 0xb3, 0x72, 0x18,
		0x8c, 0x8f, 0xfe, 0xcc, 0x76, 0x0b, 0x5d, 0x73, 0xf8, 0x57, 0xd3, 0x92, 0xd2, 0xb7, 0x1f, 0x7b,
		0x52, 0x04, 0xe1, 0xab, 0x81, 0x68, 0x79, 0x6e, 0xdb, 0xf2, 0x7f, 0x84, 0xef, 0x5b, 0xf4, 0x5a,
		0x14, 0xc7, 0xca, 0x70, 0x14, 0xdb, 0x48, 0xbf, 0xd7, 0x92, 0x6e, 0x64, 0x95, 0x6f, 0xe3, 0xa7,
		0x73, 0x33, 0xfc, 0xe6, 0x97, 0xd1, 0x17, 0x6f, 0xce, 0xfc, 0x77, 0x30, 0xfb, 0x42, 0xf3, 0xba,
		0xeb, 0x04, 0xcd, 0xab, 0xa0, 0x1b, 0x34, 0x3f, 0x8d, 0x9f, 0x4c, 0xcd, 0x92, 0xcf, 0xcd, 0x28,
		0x4b, 0x21, 0xfa, 0xb3, 0x59, 0x2b, 0xd4, 0x86, 0x7f, 0x3b, 0x8f, 0x1f, 0xcb, 0xe0, 0xb5, 0xfb,
		0xd1, 0x13, 0x18, 0xbc, 0x67, 0xfe, 0x95, 0x66, 0xc4, 0xbb, 0x1d, 0xa4, 0xf3, 0x66, 0x11, 0xde,
		0xaa, 0x4c, 0x74, 0x78, 0xb4, 0x77, 0x29, 0x76, 0xdc, 0xc2, 0xdd, 0x88, 0x75, 0x04, 0x0f, 0xa5,
		0xcb, 0x46, 0xe5, 0x72, 0x52, 0xb8, 0x1a, 0xa8, 0x5b, 0x6e, 0x6f, 0x58, 0x1b, 0x55, 0xab, 0xcd,
		0xc1, 0xd5, 0x43, 0xcd, 0xa6, 0xdb, 0xcf, 0x60, 0xa3, 0x60, 0x35, 0x4c, 0x20, 0xe7, 0x9c, 0x3c,
		0x3e, 0x39, 0x71, 0x3c, 0x4a, 0xaf, 0x09, 0x4d, 0x00, 0x0c, 0xf1, 0xdc, 0x93, 0x0a, 0xd1, 0xe4,
		0x8b, 0x90, 0xbe, 0xdd, 0x32, 0x1f, 0xbd, 0x9e, 0xdb, 0x36, 0x63, 0x27, 0x31, 0x2c, 0x1d, 0x60,
		0xb2, 0xd0, 0xef, 0x7f, 0x0c, 0x1e, 0xd3, 0x9d, 0x87, 0xe9, 0x86, 0xe9, 0x86, 0xe9, 0x86, 0xe9,
		0xde, 0xe4, 0x91, 0x5d, 0xd8, 0x3c, 0x8d, 0xac, 0xdf, 0xd5, 0x94, 0x9a, 0xe6, 0xe2, 0x2e, 0xfb,
		0x34, 0xbc, 0xc9, 0x34, 0x79, 0x24, 0xd3, 0xa4, 0x59, 0xad, 0xeb, 0x52, 0xef, 0xda, 0xd5, 0xbc,
		0x76, 0x75, 0xaf, 0x57, 0xed, 0xf3, 0xa8, 0x7f, 0x26, 0x33, 0xc0, 0x6e, 0x0e, 0xe2, 0x0d, 0x5b,
		0x23, 0xad, 0xc4, 0x7c, 0x6b, 0x46, 0x8a, 0x82, 0x8d, 0xfd, 0xd5, 0xa8, 0xfa, 0xb5, 0x99, 0x00,
		0x9d, 0xa6, 0x20, 0x01, 0x26, 0x41, 0xb7, 0x69, 0x48, 0x8c, 0x89, 0x48, 0x8c, 0xa9, 0x48, 0x86,
		0xc9, 0xe0, 0x35, 0x1d, 0xcc, 0x26, 0x44, 0x9b, 0x29, 0x89, 0x37, 0x8e, 0xdc, 0xfa, 0x5e, 0xb7,
		0x2b, 0xfc, 0xa1, 0x73, 0xaf, 0x3f, 0x05, 0x67, 0xc1, 0x67, 0xd2, 0x24, 0xf9, 0x3a, 0x7a, 0xdf,
		0xcd, 0x7d, 0x88, 0x9c, 0x9e, 0xfc, 0x8e, 0x86, 0xa6, 0x67, 0xce, 0x5b, 0x36, 0x91, 0x18, 0xb3,
		0x9f, 0x04, 0xf3, 0x9f, 0x20, 0x37, 0x20, 0x29, 0xee, 0x40, 0xe2, 0xdc, 0x82, 0xc4, 0xb9, 0x07,
		0xc9, 0x72, 0x13, 0xf4, 0xb8, 0x0b, 0x9a, 0xdc, 0x86, 0xf8, 0xd1, 0xb3, 0x97, 0x75, 0x2c, 0xd5,
		0x18, 0x3d, 0xdb, 0x95, 0xe5, 0xa2, 0x4e, 0x85, 0x11, 0xd9, 0x8f, 0x13, 0x8d, 0x1f, 0x41, 0x4f,
		0xf3, 0xbf, 0xd9, 0x1f, 0xbd, 0x0a, 0xd3, 0xd0, 0xdd, 0x1c, 0x70, 0xee, 0xc3, 0x68, 0x6e, 0x16,
		0x38, 0xf7, 0x79, 0x92, 0xd2, 0xc1, 0x6d, 0xfe, 0x2e, 0xeb, 0xee, 0xe8, 0x96, 0x10, 0xb5, 0x3a,
		0x2d, 0xca, 0xd6, 0x6b, 0xf2, 0x44, 0x39, 0x7f, 0x52, 0x2c, 0x96, 0x2b, 0xc5, 0x62, 0xae, 0x72,
		0x5c, 0xc9, 0x9d, 0x96, 0x4a, 0xf9, 0x72, 0xbe, 0x04, 0xe9, 0x4e, 0x9b, 0x74, 0x1f, 0xec, 0xe7,
		0xee, 0x8d, 0x7d, 0x29, 0x5b, 0xd0, 0x40, 0xa2, 0x4a, 0x9d, 0x0e, 0x61, 0xec, 0x0c, 0x86, 0x9f,
		0x02, 0x34, 0x02, 0x68, 0x04, 0xd0, 0x08, 0xa0, 0x11, 0x40, 0x23, 0x80, 0x46, 0x58, 0x59, 0x63,
		0xd8, 0x6d, 0xe1, 0x4a, 0x5b, 0xfe, 0xe0, 0x49, 0x5b, 0xfe, 0x95, 0x11, 0xd1, 0xe9, 0x54, 0x67,
		0x2e, 0xa3, 0x47, 0xf1, 0x9b, 0x15, 0x24, 0x40, 0x7f, 0x8d, 0x0e, 0x28, 0x6c, 0x55, 0x78, 0x5d,
		0xad, 0xdf, 0x5d, 0x7e, 0x6a, 0xd6, 0xff, 0x5d, 0xab, 0xea, 0x56, 0x63, 0x21, 0x22, 0x0a, 0xb4,
		0x73, 0x2e, 0xc9, 0xe0, 0x5d, 0xa6, 0x4e, 0xea, 0x1f, 0xb7, 0xb5, 0xe6, 0xa7, 0xdb, 0x87, 0x9b,
		0x7a, 0x06, 0x38, 0x3e, 0x71, 0x87, 0x73, 0xf9, 0x7b, 0x2d, 0xba, 0x45, 0x38, 0x9d, 0xe4, 0x9d,
		0x4e, 0xa8, 0xe4, 0x2e, 0xaa, 0x57, 0xe7, 0xff, 0xc6, 0xe9, 0x24, 0xef, 0x74, 0xea, 0xd5, 0xe4,
		0x5c, 0x1d, 0xad, 0x9f, 0xa0, 0xb1, 0x6f, 0xee, 0x31, 0x92, 0x8f, 0xd4, 0x22, 0x2e, 0xde, 0xce,
		0x07, 0x73, 0xfb, 0xa7, 0xb2, 0x13, 0xc2, 0xbb, 0xc5, 0x6c, 0xef, 0xfe, 0x6b, 0x56, 0x4b, 0x1a,
		0xad, 0x91, 0xaa, 0xa6, 0x0a, 0x83, 0xff, 0xbb, 0x0e, 0x1f, 0xdf, 0x6f, 0x83, 0xa7, 0xf7, 0x69,
		0xfc, 0x68, 0x97, 0xff, 0x13, 0x4b, 0x27, 0x06, 0x7d, 0x9a, 0x81, 0x51, 0x2b, 0x64, 0x02, 0x69,
		0x49, 0xa1, 0x2f, 0xcf, 0x7c, 0xb8, 0xfd, 0x9e, 0xa5, 0x99, 0x17, 0x90, 0x66, 0xce, 0xf9, 0x11,
		0x90, 0x66, 0x1e, 0x7d, 0x10, 0xa4, 0x99, 0xef, 0x8f, 0xa7, 0x87, 0x34, 0x73, 0xa4, 0x99, 0x2f,
		0xfb, 0x10, 0x48, 0x33, 0xd7, 0x62, 0xf6, 0x11, 0x1f, 0x46, 0x7c, 0x38, 0x81, 0x6e, 0x41, 0xe2,
		0xdc, 0x83, 0x64, 0xb9, 0x09, 0x9a, 0x09, 0x30, 0xa4, 0x99, 0x23, 0xcd, 0x1c, 0x69, 0xe6, 0xf1,
		0x83, 0x40, 0x9a, 0xf9, 0x3b, 0x9f, 0x07, 0x89, 0xb8, 0x09, 0x57, 0xab, 0xd3, 0xa2, 0x8c, 0x34,
		0x73, 0x48, 0xf7, 0x0e, 0xb9, 0x2a, 0xfa, 0x77, 0x47, 0x9a, 0x39, 0x9d, 0x90, 0x23, 0xcd, 0x1c,
		0x34, 0x02, 0x68, 0x04, 0xd0, 0x08, 0xa0, 0x11, 0x40, 0x23, 0xa4, 0x91, 0x46, 0x40, 0x9a, 0x79,
		0xfc, 0x19, 0x90, 0x66, 0xbe, 0x32, 0x22, 0x42, 0x9a, 0xf9, 0x82, 0x93, 0x42, 0x9a, 0x79, 0x82,
		0x0f, 0x07, 0x69, 0xe6, 0x49, 0x3e, 0x1d, 0xa4, 0x99, 0x27, 0xf9, 0x74, 0x90, 0x66, 0xae, 0x95,
		0x48, 0x31, 0x90, 0x66, 0xbe, 0x1b, 0x57, 0x1d, 0x69, 0xe6, 0xcc, 0x69, 0xe6, 0x3a, 0xb2, 0x68,
		0x8d, 0xdd, 0xcf, 0x32, 0xbf, 0x0f, 0x1f, 0x2b, 0x92, 0xcc, 0xb7, 0x16, 0x13, 0x2d, 0xe4, 0xb1,
		0x4e, 0xd2, 0x58, 0x13, 0x59, 0x8c, 0x4e, 0xe6, 0x48, 0x31, 0x47, 0x8a, 0xb9, 0x81, 0x14, 0x73,
		0x96, 0x47, 0xac, 0x8d, 0xdc, 0xd5, 0x30, 0xee, 0x70, 0x99, 0x82, 0xe7, 0x18, 0x7f, 0x38, 0xaf,
		0x6c, 0xe7, 0xc6, 0x21, 0x86, 0x26, 0x6e, 0x57, 0x1d, 0x95, 0x9d, 0x9a, 0x24, 0xf3, 0x4f, 0xf1,
		0x83, 0xd9, 0x27, 0xc9, 0x5c, 0xd9, 0x81, 0x1c, 0x78, 0xcb, 0xbc, 0x13, 0x6c, 0xae, 0x6d, 0xb7,
		0xea, 0x88, 0x81, 0x0a, 0x66, 0xce, 0xd5, 0xc9, 0x5c, 0x5b, 0xaf, 0x13, 0x3b, 0xeb, 0xcd, 0x68,
		0xca, 0xdc, 0xfa, 0x6d, 0xe1, 0x8b, 0xf6, 0x6f, 0x83, 0x53, 0x77, 0x7b, 0x8e, 0xa3, 0x63, 0xeb,
		0x87, 0x40, 0xf8, 0xac, 0xc9, 0x49, 0x5c, 0x97, 0x49, 0x13, 0xcf, 0xb0, 0x6f, 0xfc, 0x42, 0x86,
		0xb5, 0x1e, 0x79, 0x87, 0x19, 0x05, 0x1e, 0x13, 0xdd, 0xc7, 0x6c, 0xcf, 0x24, 0x69, 0x8d, 0x1d,
		0xd4, 0x16, 0x1c, 0x63, 0x81, 0x77, 0x40, 0x11, 0x60, 0x40, 0xf9, 0xa2, 0x63, 0xe5, 0xe8, 0x37,
		0xc1, 0xda, 0x5f, 0x82, 0x7d, 0xe0, 0x78, 0x01, 0x03, 0xc7, 0x53, 0x44, 0xd6, 0x61, 0xe0, 0x38,
		0x06, 0x8e, 0xff, 0xfa, 0x91, 0xb1, 0x0d, 0x1c, 0xb7, 0x82, 0xc0, 0x6b, 0xd9, 0x96, 0x14, 0x6d,
		0xd3, 0x0f, 0xbe, 0x0f, 0xec, 0x7e, 0x10, 0xd8, 0x9e, 0x1b, 0xf0, 0x0f, 0x1b, 0x5f, 0xfa, 0x49,
		0x78, 0x07, 0x8d, 0xe7, 0x30, 0x68, 0x3c, 0xcd, 0xea, 0x5c, 0x97, 0x5a, 0xd7, 0xae, 0xde, 0xb5,
		0xab, 0x79, 0xbd, 0xea, 0x9e, 0x0f, 0xed, 0x72, 0x32, 0x5a, 0xec, 0x31, 0x15, 0x8d, 0xb1, 0x14,
		0x1d, 0x31, 0x94, 0xc9, 0xd8, 0xc9, 0xb2, 0xff, 0x05, 0xf6, 0x93, 0x6b, 0x39, 0xb6, 0xfb, 0x64,
		0x76, 0x7d, 0x4f, 0x7a, 0x2d, 0xcf, 0x09, 0xb2, 0xa1, 0x81, 0x92, 0x22, 0x3b, 0xb2, 0x51, 0xa3,
		0xbf, 0x64, 0x1d, 0xaf, 0x65, 0x39, 0xa6, 0xed, 0xb6, 0xc5, 0x6b, 0x66, 0xa7, 0x24, 0x11, 0x51,
		0x03, 0x44, 0x0d, 0x98, 0xa3, 0x06, 0x07, 0x3b, 0x70, 0x77, 0x32, 0xad, 0xa0, 0xdb, 0x89, 0x88,
		0x33, 0x7e, 0x97, 0x7a, 0x72, 0x73, 0x78, 0xd1, 0xf0, 0xa2, 0xe1, 0x45, 0xc3, 0x8b, 0x86, 0x17,
		0xcd, 0x78, 0x63, 0xd9, 0xbb, 0x55, 0x69, 0xe8, 0x4e, 0xa5, 0xa9, 0x1b, 0x95, 0x86, 0x3c, 0x33,
		0x9d, 0xdd, 0xa6, 0x74, 0x77, 0x97, 0x4a, 0x4c, 0xbf, 0x1d, 0xfd, 0xfd, 0x75, 0x74, 0xf4, 0x5b,
		0xd1, 0xd9, 0x1d, 0x2a, 0x81, 0xdd, 0xa0, 0x20, 0x8d, 0xcc, 0xa6, 0x9a, 0x7f, 0xb7, 0x06, 0x40,
		0xe6, 0x7a, 0x20, 0x53, 0xda, 0xe2, 0xd1, 0x17, 0xd6, 0x37, 0xe1, 0x6b, 0x02, 0x9a, 0x13, 0x1f,
		0x00, 0x60, 0x13, 0x60, 0x13, 0x60, 0x13, 0x60, 0x13, 0x60, 0x53, 0x83, 0x12, 0x36, 0x43, 0x2d,
		0x6c, 0xbb, 0x4f, 0x3a, 0x82, 0x37, 0x45, 0xc6, 0x3d, 0xab, 0x6e, 0xef, 0x85, 0x5f, 0x5b, 0xd4,
		0xbd, 0x7b, 0xe9, 0x0f, 0x9e, 0xae, 0x96, 0x5a, 0xa7, 0xdc, 0xe0, 0xa4, 0xef, 0xce, 0x6f, 0x2e,
		0x6e, 0xaf, 0x75, 0xd4, 0x39, 0xe5, 0x07, 0xdb, 0x5f, 0x55, 0xcf, 0xef, 0xeb, 0xcd, 0xcf, 0x97,
		0x57, 0x57, 0x3a, 0x3e, 0x42, 0x61, 0xf0, 0x11, 0xae, 0x6f, 0x47, 0x9f, 0x60, 0xb7, 0x6b, 0xea,
		0xbc, 0xcb, 0x50, 0x29, 0x6b, 0x10, 0xb4, 0x89, 0x43, 0x66, 0x9f, 0x8d, 0x35, 0x84, 0xbc, 0xb7,
		0xe3, 0xfd, 0x0b, 0x1a, 0xf6, 0x8f, 0x2e, 0xd9, 0x99, 0x91, 0x43, 0xc9, 0xff, 0xd6, 0x0f, 0x73,
		0x3c, 0xe8, 0x86, 0x5f, 0x79, 0x0d, 0xdc, 0xab, 0xf1, 0xfe, 0x03, 0xef, 0x6a, 0xa7, 0x1c, 0x0e,
		0xf1, 0x2a, 0x7d, 0xcb, 0xec, 0xb9, 0x81, 0xb4, 0x1e, 0x1d, 0x66, 0xd7, 0xe3, 0xaf, 0x67, 0xe1,
		0xee, 0x03, 0xf3, 0x3b, 0x72, 0xb1, 0x3e, 0x7e, 0x1c, 0x56, 0x42, 0xb4, 0xbc, 0x97, 0x6e, 0x6f,
		0x58, 0x34, 0x62, 0xbe, 0x08, 0xf9, 0xec, 0xb5, 0x8d, 0xbf, 0x1b, 0xff, 0x13, 0x79, 0xce, 0xf2,
		0xec, 0xea, 0xf6, 0xd3, 0xf9, 0xd5, 0xd5, 0xbf, 0x9b, 0x9f, 0x6e, 0xaf, 0x6b, 0x0f, 0xf5, 0xea,
		0xc5, 0xff, 0xec, 0x79, 0x13, 0x82, 0x50, 0x4c, 0xd0, 0x82, 0x60, 0x8c, 0xb1, 0x36, 0x96, 0xa3,
		0xbd, 0x20, 0xbb, 0x2f, 0x44, 0xd0, 0xf2, 0xed, 0xae, 0xb6, 0x86, 0x51, 0x53, 0x57, 0xbe, 0xfe,
		0x2c, 0x8c, 0x01, 0xb2, 0x32, 0x46, 0xf4, 0x96, 0xed, 0x3e, 0x19, 0xd1, 0x59, 0x0d, 0xe4, 0xda,
		0x90, 0xcf, 0xc2, 0x18, 0x1c, 0xa6, 0x61, 0x07, 0x5f, 0xdd, 0x30, 0xff, 0xcb, 0xf9, 0x61, 0x0c,
		0x0f, 0x56, 0x68, 0x1b, 0x2c, 0x97, 0x80, 0x76, 0xd4, 0x93, 0x0a, 0xa0, 0x3d, 0x71, 0xa2, 0x1a,
		0x5b, 0xdd, 0x26, 0xa9, 0x17, 0xf5, 0x94, 0x3e, 0xd8, 0x52, 0xc8, 0xd0, 0x25, 0x2f, 0xd5, 0xbb,
		0x21, 0xd4, 0xb1, 0x8e, 0xb7, 0xdb, 0x75, 0xec, 0x96, 0x2d, 0xc3, 0xb2, 0x54, 0x33, 0xaa, 0x07,
		0x65, 0x8e, 0x76, 0x2c, 0xf8, 0x0c, 0x08, 0x78, 0x28, 0xd9, 0x10, 0x01, 0x0f, 0x6e, 0xcb, 0x8c,
		0x80, 0x07, 0x02, 0x1e, 0xdb, 0x3d, 0x4a, 0xd4, 0xa8, 0x50, 0x2b, 0xc5, 0xf7, 0x6a, 0x54, 0x06,
		0xd6, 0xa7, 0x6d, 0x4e, 0x59, 0xa4, 0x60, 0xd1, 0x8b, 0xa3, 0xd6, 0x60, 0xa1, 0xb5, 0x02, 0xff,
		0x05, 0xfe, 0x8b, 0x92, 0xff, 0xaa, 0xfe, 0x59, 0xbb, 0xba, 0xfc, 0x74, 0x59, 0xbf, 0xfa, 0x77,
		0xf3, 0xa2, 0xfa, 0xf9, 0xf2, 0x06, 0x0c, 0x18, 0x18, 0xb0, 0xcd, 0x18, 0xb0, 0x45, 0x92, 0x04,
		0x0e, 0x4c, 0x07, 0x07, 0x36, 0x30, 0x1c, 0x86, 0xd7, 0x09, 0x99, 0x88, 0x91, 0x65, 0x71, 0x7e,
		0x18, 0x6d, 0xd1, 0xb1, 0x5d, 0xd1, 0x1e, 0x92, 0x13, 0xbd, 0x00, 0x8c, 0x17, 0x18, 0xaf, 0x95,
		0x19, 0xaf, 0x95, 0x45, 0x0a, 0xfc, 0x16, 0xf8, 0xad, 0x3d, 0xe1, 0xb7, 0x9e, 0x3d, 0xa7, 0x6d,
		0x76, 0x7d, 0xdb, 0xf3, 0x6d, 0xf9, 0x83, 0x9f, 0xda, 0x9a, 0xde, 0x9e, 0xc9, 0x83, 0x1f, 0x07,
		0xe7, 0xf9, 0x1c, 0xe9, 0x4c, 0x8e, 0x47, 0xab, 0x34, 0xc0, 0x0c, 0xaa, 0x01, 0xc1, 0x7a, 0x99,
		0x41, 0x3f, 0xf8, 0xde, 0x05, 0x33, 0xb8, 0x07, 0x0e, 0xcb, 0x2c, 0x33, 0x18, 0x1e, 0x3c, 0x98,
		0xc1, 0x8d, 0x1e, 0xa5, 0xde, 0xba, 0xdb, 0x13, 0x0d, 0xbc, 0x60, 0x09, 0x65, 0xb7, 0xea, 0xbf,
		0x28, 0xca, 0x6e, 0x51, 0xe8, 0xb8, 0xcf, 0x65, 0xb7, 0x15, 0x88, 0x1e, 0x6a, 0x6c, 0xd3, 0x0c,
		0xcc, 0xf7, 0x20, 0x10, 0xe4, 0x8b, 0x8e, 0xf0, 0x85, 0xdb, 0x12, 0xfb, 0x14, 0x0d, 0xba, 0xfb,
		0xfc, 0xc9, 0x38, 0x2e, 0xe4, 0x4e, 0x0d, 0xd3, 0xb8, 0xbb, 0xff, 0xa3, 0x66, 0xd6, 0xab, 0x67,
		0x46, 0xf5, 0x55, 0x0a, 0x37, 0xec, 0x89, 0x67, 0x48, 0x2f, 0x7c, 0xd9, 0xe8, 0x78, 0xfe, 0x57,
		0xf7, 0xea, 0xbe, 0x66, 0x44, 0x0d, 0xd6, 0xf7, 0x3c, 0x14, 0x34, 0x16, 0x15, 0xc4, 0x83, 0xc6,
		0x50, 0x6b, 0x53, 0x59, 0x82, 0x2d, 0x50, 0x65, 0x0b, 0x3e, 0x20, 0x6c, 0x4e, 0xa5, 0x28, 0x67,
		0x72, 0x36, 0xa2, 0x54, 0x8c, 0xf9, 0xc6, 0xa2, 0x53, 0xa1, 0xcf, 0x70, 0x38, 0xfc, 0x7d, 0xb5,
		0xfe, 0x50, 0x6b, 0x0e, 0x44, 0x1f, 0x11, 0x74, 0x44, 0xd0, 0x67, 0x23, 0xe8, 0x0a, 0x84, 0x0a,
		0xc1, 0x74, 0x6e, 0x65, 0xf0, 0xaf, 0x51, 0x3e, 0x7f, 0x7c, 0x54, 0x46, 0x7c, 0x54, 0x76, 0x30,
		0xb2, 0x7e, 0x06, 0xe2, 0xe8, 0x88, 0xa3, 0xaf, 0xa0, 0x05, 0x56, 0x95, 0x26, 0x84, 0xd0, 0x81,
		0xd4, 0x13, 0xf0, 0x7d, 0x38, 0x42, 0xe8, 0x7a, 0x8a, 0x42, 0x50, 0x06, 0xa2, 0x6e, 0x43, 0x94,
		0x81, 0x70, 0x9b, 0x59, 0x04, 0x7b, 0x51, 0x06, 0xb2, 0xdd, 0xa3, 0xd4, 0x17, 0xec, 0x0d, 0x86,
		0xed, 0x98, 0x34, 0x54, 0x81, 0x9c, 0xc0, 0x2a, 0xaf, 0xfc, 0xcc, 0x96, 0x64, 0x7b, 0xf3, 0x1b,
		0xea, 0x65, 0x1f, 0x64, 0x97, 0x93, 0xdd, 0x96, 0x76, 0x94, 0x40, 0x12, 0x1c, 0xfc, 0x22, 0xf8,
		0x45, 0xf0, 0x8b, 0xe0, 0x17, 0xed, 0x9e, 0x5f, 0x64, 0xb7, 0x85, 0x2b, 0x6d, 0xf9, 0x43, 0x53,
		0x89, 0x2c, 0x67, 0x2e, 0xdc, 0x65, 0xf4, 0x55, 0x7f, 0xb3, 0x02, 0x0d, 0xfa, 0x62, 0xf4, 0xc0,
		0x43, 0x72, 0x7d, 0x68, 0x59, 0xcf, 0xeb, 0x97, 0xb7, 0x37, 0xcd, 0xeb, 0x6a, 0xfd, 0x1f, 0xb7,
		0x17, 0xdc, 0xda, 0x23, 0xcc, 0x1b, 0x0a, 0xd8, 0xe3, 0x6b, 0x86, 0x96, 0x18, 0xdb, 0xd4, 0x01,
		0xcc, 0x57, 0x0b, 0xee, 0x45, 0x7c, 0x43, 0xfb, 0x53, 0xaf, 0x57, 0xef, 0x6e, 0x42, 0xb7, 0xf2,
		0x7f, 0x1f, 0xaa, 0x77, 0x97, 0x78, 0xea, 0x1c, 0x4f, 0x5d, 0x8f, 0x27, 0xcf, 0x6f, 0xa7, 0x63,
		0x0c, 0xb1, 0x6b, 0xfe, 0xc7, 0x6e, 0xa2, 0xfa, 0x40, 0xf8, 0xdf, 0x75, 0x4c, 0xa0, 0x58, 0xf6,
		0x41, 0x80, 0x3c, 0x81, 0x3c, 0x81, 0x3c, 0x81, 0x3c, 0x81, 0x3c, 0x19, 0x6f, 0x2c, 0x1a, 0x33,
		0x4d, 0xfc, 0x6f, 0x3c, 0x35, 0x7c, 0xf4, 0xb7, 0x6c, 0xb7, 0x25, 0xba, 0xd9, 0x25, 0x16, 0x2b,
		0x58, 0xf6, 0x0f, 0x83, 0x77, 0x45, 0x7f, 0x35, 0xad, 0x76, 0xdb, 0x17, 0x41, 0x80, 0x46, 0x4e,
		0xaa, 0xf6, 0x46, 0x23, 0xa7, 0x25, 0xed, 0x77, 0x66, 0xa1, 0x1d, 0xd2, 0x50, 0x91, 0x86, 0xba,
		0x59, 0x23, 0xa7, 0x79, 0x49, 0x42, 0xee, 0x29, 0xf7, 0xb5, 0xaf, 0x47, 0x6d, 0xa4, 0x27, 0x4f,
		0xcb, 0x18, 0xda, 0x94, 0x05, 0x7d, 0xa6, 0xc5, 0xab, 0x14, 0xbe, 0x1b, 0xb6, 0x9a, 0xfe, 0x6f,
		0x4f, 0xf8, 0x36, 0x9a, 0x3b, 0x21, 0x29, 0x75, 0x25, 0x9d, 0xb0, 0xb5, 0x98, 0x21, 0x5b, 0x35,
		0xd5, 0xbb, 0x21, 0x5b, 0x75, 0x6d, 0x06, 0xcd, 0x95, 0xbe, 0xe7, 0x68, 0xa3, 0xcd, 0x86, 0xbb,
		0x83, 0x2b, 0x03, 0x57, 0x06, 0xae, 0x0c, 0x5c, 0x19, 0xb8, 0x32, 0x4e, 0xae, 0x2c, 0xe8, 0x8e,
		0x14, 0xb0, 0x29, 0x07, 0x9f, 0x02, 0x43, 0x5b, 0x29, 0xce, 0x57, 0xff, 0xd0, 0xd6, 0xda, 0xa7,
		0x6a, 0xf3, 0xa2, 0x7a, 0x55, 0xfd, 0xfd, 0xbc, 0x5e, 0xbd, 0xd0, 0x36, 0xbb, 0xb5, 0xf6, 0xe9,
		0x53, 0xf3, 0xd3, 0xed, 0x4d, 0xfd, 0xee, 0xf6, 0xea, 0x4a, 0xcf, 0xc7, 0x28, 0x8c, 0x3e, 0xc6,
		0x5d, 0xb5, 0x76, 0x7b, 0x57, 0x6f, 0xde, 0xde, 0x5c, 0xfd, 0x1b, 0x53, 0x5c, 0xa9, 0x7c, 0x91,
		0xe9, 0xe3, 0xd6, 0x33, 0xc9, 0x75, 0xf6, 0xb0, 0xf5, 0xcc, 0x73, 0x9d, 0xbe, 0x7f, 0x3b, 0x3c,
		0xd6, 0x15, 0xe0, 0x6b, 0x75, 0xf0, 0x35, 0xd9, 0xb7, 0x87, 0x1b, 0x7a, 0x71, 0x37, 0x82, 0x01,
		0xf0, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0xf0, 0x42, 0x8f, 0x58, 0xd2, 0x9f, 0x7d, 0xed,
		0x11, 0x9b, 0x47, 0xa3, 0x4e, 0xf4, 0x88, 0xd5, 0x23, 0x7a, 0x85, 0x52, 0x09, 0xc2, 0x87, 0x2e,
		0xb1, 0x24, 0x3f, 0x88, 0xe6, 0xad, 0x2e, 0x84, 0xbe, 0x90, 0xfe, 0x0f, 0x53, 0xda, 0x2f, 0x3a,
		0x72, 0xe0, 0x27, 0x37, 0x07, 0xa4, 0xdc, 0x05, 0x48, 0x89, 0xb1, 0x23, 0x7b, 0x0a, 0x29, 0x31,
		0x76, 0x24, 0xad, 0x90, 0x32, 0x5f, 0xd6, 0x80, 0x29, 0xcb, 0xc0, 0x94, 0xc0, 0x94, 0x70, 0xeb,
		0x81, 0x29, 0x55, 0x8a, 0x5e, 0x39, 0x87, 0xa1, 0x37, 0xc0, 0x94, 0xa9, 0xc6, 0x94, 0xa8, 0x5c,
		0xda, 0x19, 0x6b, 0x8c, 0x5e, 0xfa, 0xea, 0x30, 0x16, 0x8a, 0x98, 0xd0, 0x4b, 0x7f, 0xd3, 0xc7,
		0x86, 0x5e, 0xfa, 0xa9, 0xb9, 0xf2, 0x06, 0xca, 0x96, 0xd6, 0xd2, 0x02, 0xe8, 0xa5, 0x0f, 0xdf,
		0x33, 0x45, 0xdf, 0x87, 0x23, 0x9e, 0x11, 0x08, 0xd9, 0xeb, 0x6a, 0x9c, 0x47, 0x3f, 0xb3, 0xff,
		0x2e, 0xf7, 0xe8, 0xad, 0xa0, 0x17, 0xef, 0x16, 0xdb, 0x21, 0x32, 0xb4, 0x93, 0xae, 0x0c, 0x22,
		0x43, 0x88, 0x0c, 0xa9, 0x7b, 0x94, 0x48, 0x36, 0xa4, 0xdc, 0x12, 0x81, 0x21, 0x8e, 0xcd, 0x31,
		0x90, 0x7e, 0x74, 0xb5, 0x10, 0x18, 0xd2, 0x24, 0x7a, 0x18, 0x48, 0x8f, 0xb0, 0x50, 0xaa, 0xa1,
		0x39, 0x06, 0xd2, 0xef, 0x96, 0x41, 0xc6, 0x40, 0xfa, 0x6d, 0x70, 0x15, 0x06, 0xd2, 0x2f, 0x82,
		0x5a, 0x18, 0x48, 0xaf, 0xdb, 0x16, 0x60, 0x20, 0x3d, 0x99, 0xa2, 0x44, 0x10, 0x7d, 0x7b, 0xb5,
		0x89, 0x20, 0x3a, 0x82, 0xe8, 0x9b, 0x3e, 0x36, 0x04, 0xd1, 0x53, 0x73, 0xe5, 0x0d, 0x04, 0xd1,
		0xd7, 0xd2, 0x02, 0x08, 0xa2, 0x03, 0xa9, 0xa7, 0xe8, 0xfb, 0xb0, 0x04, 0xd1, 0xbb, 0x1d, 0xf3,
		0x45, 0x48, 0xdf, 0x6e, 0x69, 0x08, 0xa0, 0x8f, 0xf7, 0x46, 0xe0, 0x57, 0xc9, 0x86, 0xe8, 0x32,
		0xc3, 0x6d, 0x72, 0x11, 0xf8, 0x45, 0x97, 0x99, 0xed, 0x1e, 0xa5, 0xde, 0xc0, 0x6f, 0xb9, 0xa8,
		0x21, 0xf2, 0x7b, 0x82, 0xc8, 0xaf, 0xfa, 0x2f, 0x8a, 0xc8, 0x2f, 0xc2, 0x6f, 0xfb, 0x1c, 0xf9,
		0xcd, 0x9f, 0x14, 0x8b, 0xe5, 0x4a, 0xb1, 0x98, 0xab, 0x1c, 0x57, 0x72, 0xa7, 0xa5, 0x52, 0xbe,
		0x9c, 0x47, 0xdf, 0x19, 0x04, 0x83, 0x01, 0x31, 0x75, 0x43, 0xcc, 0x5e, 0x20, 0xcc, 0x56, 0xd0,
		0xed, 0xf0, 0x03, 0xcc, 0x78, 0x67, 0xc0, 0x4b, 0xc0, 0x4b, 0xc0, 0x4b, 0xc0, 0x4b, 0xc0, 0x4b,
		0xc6, 0x1b, 0xfb, 0xe8, 0x79, 0x8e, 0xb0, 0x5c, 0x1d, 0x43, 0x23, 0xf2, 0xc8, 0xd5, 0x52, 0xb4,
		0x37, 0x86, 0x8f, 0x2e, 0x1c, 0x19, 0x79, 0x75, 0xfb, 0x29, 0x9c, 0x17, 0xf9, 0xe9, 0xf6, 0xba,
		0xf6, 0x50, 0xc7, 0xe8, 0x51, 0x24, 0x1c, 0x6c, 0x36, 0x7a, 0x74, 0x5e, 0x8e, 0x90, 0x63, 0xc0,
		0x7d, 0xe5, 0xeb, 0xcf, 0xc2, 0xe8, 0x05, 0xc2, 0xf0, 0x3a, 0xc6, 0x00, 0x2c, 0x4c, 0x4f, 0x81,
		0x9c, 0x1a, 0x13, 0x19, 0x1d, 0xa0, 0x1d, 0x7c, 0x75, 0x1d, 0xaf, 0x65, 0x39, 0xc6, 0xc4, 0x3f,
		0x22, 0x05, 0x01, 0x29, 0x08, 0x2b, 0xe8, 0x05, 0x45, 0xc2, 0x86, 0x0c, 0x05, 0xd0, 0x47, 0x49,
		0xa0, 0x8f, 0x0e, 0x52, 0x6c, 0x99, 0x32, 0xe7, 0xae, 0xeb, 0x45, 0xf7, 0x89, 0x43, 0x7d, 0x66,
		0x82, 0xd6, 0xb3, 0x78, 0xb1, 0x06, 0x17, 0x7d, 0xa0, 0x09, 0xb2, 0x5e, 0x57, 0xb8, 0xc3, 0x44,
		0x44, 0xd3, 0x15, 0xf2, 0x2f, 0xcf, 0xff, 0x66, 0xda, 0x03, 0x1f, 0xdf, 0x6d, 0x89, 0xec, 0xec,
		0x0b, 0xc1, 0xdc, 0x2b, 0xd9, 0x81, 0x03, 0x91, 0x75, 0x82, 0x6e, 0x90, 0x6d, 0x79, 0x6e, 0x20,
		0x7d, 0xcb, 0x76, 0x45, 0xdb, 0x1c, 0xac, 0x9e, 0x95, 0xc3, 0x7c, 0xef, 0xe8, 0xcf, 0x6c, 0xb7,
		0xd0, 0x35, 0x87, 0x7f, 0x35, 0x2d, 0x29, 0x7d, 0xfb, 0xb1, 0x27, 0x45, 0x10, 0xbe, 0x1a, 0x88,
		0x96, 0xe7, 0xb6, 0x2d, 0xff, 0x47, 0xf8, 0xbe, 0x45, 0xaf, 0x65, 0x03, 0x69, 0x49, 0x8e, 0xec,
		0xfb, 0x4c, 0x20, 0xfd, 0x5e, 0x4b, 0xba, 0x91, 0x51, 0xbe, 0x8d, 0x1f, 0xce, 0xcd, 0xf0, 0x8b,
		0x5f, 0x46, 0xdf, 0xbb, 0x39, 0xf3, 0xdf, 0xc1, 0xec, 0x0b, 0xcd, 0xeb, 0xae, 0x13, 0x34, 0xaf,
		0x82, 0x6e, 0xd0, 0xfc, 0x34, 0x7e, 0x30, 0x35, 0x4b, 0x3e, 0x37, 0xa3, 0x3c, 0xf8, 0xe8, 0xcf,
		0x66, 0xad, 0x50, 0x1b, 0xfe, 0xed, 0x3c, 0x7e, 0x2a, 0x83, 0xd7, 0xee, 0x47, 0x0f, 0x60, 0xf0,
		0x9e, 0xf9, 0x57, 0x9a, 0xf7, 0xe1, 0x13, 0x39, 0x48, 0xe7, 0xbd, 0xa2, 0x59, 0x99, 0xe8, 0xa6,
		0x0e, 0x1c, 0x8b, 0x81, 0x30, 0x84, 0x42, 0x41, 0xb4, 0xc5, 0x95, 0x1d, 0xc8, 0xc1, 0xf9, 0x93,
		0xaa, 0x80, 0xcc, 0xb5, 0xed, 0x56, 0x1d, 0x31, 0x70, 0x02, 0x88, 0xc3, 0x41, 0x99, 0x6b, 0xeb,
		0x75, 0x62, 0x27, 0xde, 0xa0, 0x58, 0xe6, 0xd6, 0x6f, 0x0b, 0x5f, 0xb4, 0x7f, 0x1b, 0x9c, 0x9a,
		0xdb, 0x73, 0x1c, 0x8e, 0xad, 0x1e, 0x82, 0xb0, 0x9f, 0x3d, 0x5d, 0x7c, 0x8b, 0x4a, 0xb8, 0x99,
		0xcc, 0x4f, 0x2a, 0xcd, 0x0e, 0xa1, 0xc1, 0x49, 0x8d, 0xa1, 0xa1, 0x31, 0x31, 0xea, 0x0d, 0x80,
		0xda, 0x15, 0x15, 0xdf, 0x36, 0xea, 0x5b, 0x96, 0xfc, 0xdb, 0x45, 0x70, 0x95, 0x92, 0x7a, 0x85,
		0xd4, 0xde, 0x18, 0x75, 0x72, 0xad, 0x50, 0xa6, 0x33, 0x43, 0x7f, 0x5c, 0xb5, 0x28, 0x8f, 0x73,
		0xb2, 0x09, 0xdc, 0xfd, 0x38, 0x2c, 0xa3, 0x78, 0xd9, 0x38, 0xfe, 0xad, 0x78, 0x64, 0x2f, 0x65,
		0x9c, 0x9b, 0x21, 0x9e, 0x4d, 0x4d, 0x09, 0xb2, 0xc5, 0xa7, 0xd9, 0x58, 0x3c, 0x9e, 0x78, 0x73,
		0xb2, 0xed, 0xe4, 0x85, 0x4d, 0x03, 0x81, 0x32, 0x6d, 0x11, 0x48, 0xdb, 0xa5, 0xf5, 0x73, 0xe3,
		0x5b, 0x35, 0xb9, 0x19, 0x15, 0x26, 0x25, 0x4d, 0xf2, 0x21, 0x4f, 0xea, 0xe1, 0x48, 0xe2, 0x61,
		0x4c, 0xda, 0xe1, 0x8a, 0x7f, 0xb0, 0x27, 0xe5, 0xb0, 0x87, 0x30, 0x78, 0x93, 0x6e, 0xd2, 0xc5,
		0x43, 0x91, 0x27, 0xd1, 0xc4, 0x37, 0xc6, 0xee, 0x9a, 0x56, 0xbb, 0xed, 0x8b, 0x80, 0xf4, 0xd2,
		0x8c, 0x1c, 0xb2, 0x53, 0xc2, 0x3d, 0xa2, 0x67, 0x46, 0x9b, 0x39, 0xc2, 0xc0, 0xda, 0x8f, 0x4f,
		0xe6, 0x7b, 0x91, 0xe1, 0x6c, 0xe6, 0xce, 0x88, 0xa1, 0x58, 0x26, 0x53, 0xb3, 0xa4, 0x14, 0x3e,
		0x5f, 0xa2, 0x4f, 0xe6, 0xf0, 0x4b, 0xce, 0x3c, 0x6d, 0xbc, 0x7d, 0xc9, 0x9b, 0xa7, 0x8d, 0xe1,
		0x5f, 0xf3, 0xe1, 0x1f, 0x3f, 0x0b, 0xfd, 0xb7, 0xc2, 0x97, 0x9c, 0x59, 0x8c, 0x5e, 0x2d, 0x94,
		0xbe, 0xe4, 0xcc, 0x52, 0xe3, 0xe8, 0xf0, 0xeb, 0xd7, 0x8f, 0xeb, 0xbe, 0xe7, 0xe8, 0xe7, 0x71,
		0x9f, 0x3e, 0x50, 0xda, 0xe0, 0x38, 0x9e, 0xdb, 0xfb, 0xcb, 0x3f, 0xd9, 0xcf, 0xe8, 0x3f, 0x87,
		0x5c, 0xa7, 0x74, 0xf4, 0x37, 0x86, 0x73, 0x4a, 0x73, 0xa8, 0x92, 0x57, 0xcd, 0x95, 0xa1, 0xe6,
		0x54, 0xa9, 0xb9, 0xf0, 0x36, 0x58, 0x66, 0xe7, 0xdc, 0xfc, 0xdc, 0xf8, 0x99, 0xff, 0x50, 0xec,
		0x9f, 0x1d, 0xfd, 0xac, 0xf4, 0x67, 0x5f, 0x7c, 0x5b, 0xf4, 0x6b, 0xf9, 0x0f, 0x95, 0xfe, 0xd9,
		0x92, 0x7f, 0x29, 0xf7, 0xcf, 0x56, 0x5c, 0xa3, 0xd4, 0x3f, 0x9c, 0xfb, 0xd5, 0xc1, 0xeb, 0x85,
		0x65, 0x6f, 0x28, 0x2e, 0x79, 0xc3, 0xf1, 0xb2, 0x37, 0x1c, 0x2f, 0x79, 0xc3, 0xd2, 0x8f, 0x54,
		0x58, 0xf2, 0x86, 0x52, 0xff, 0x6d, 0xee, 0xf7, 0x0f, 0x17, 0xff, 0x6a, 0xb9, 0x7f, 0xf4, 0xb6,
		0xec, 0xdf, 0x2a, 0xfd, 0xb7, 0xb3, 0xa3, 0x23, 0x28, 0xfe, 0xad, 0x15, 0x3f, 0xc4, 0x96, 0x5f,
		0x6c, 0xd3, 0x6f, 0x08, 0x0f, 0xd2, 0xf5, 0xb9, 0x09, 0xc2, 0x61, 0x04, 0x8c, 0xae, 0x2f, 0x5a,
		0x9e, 0xdf, 0x36, 0x7d, 0xaf, 0x27, 0x85, 0x29, 0x5c, 0xeb, 0xd1, 0x11, 0x6d, 0x7a, 0x32, 0x6d,
		0xe1, 0xae, 0x60, 0xd5, 0xc0, 0xaa, 0x81, 0x55, 0x03, 0xab, 0x96, 0x2a, 0x56, 0x8d, 0xbe, 0x14,
		0x8d, 0xb8, 0xf4, 0x0c, 0x59, 0x1b, 0x6a, 0x4f, 0x2b, 0x59, 0x59, 0x1b, 0x54, 0x39, 0xb6, 0x09,
		0xc9, 0xd3, 0x20, 0x48, 0x98, 0x55, 0x98, 0x9b, 0x71, 0x90, 0x20, 0xf9, 0xa7, 0x2c, 0xf5, 0xa4,
		0x29, 0xe5, 0x24, 0xcc, 0x90, 0x18, 0xf7, 0xe9, 0x95, 0x3f, 0xba, 0x62, 0xba, 0x33, 0x6f, 0x81,
		0xa4, 0xc5, 0x33, 0x67, 0xe6, 0x04, 0x61, 0xc5, 0xa4, 0x9e, 0xbc, 0x89, 0x5f, 0x1d, 0x57, 0x2a,
		0x80, 0x16, 0x47, 0x61, 0x62, 0x2c, 0xe0, 0x97, 0x6e, 0xcb, 0xe9, 0xb5, 0x85, 0x21, 0x9f, 0xed,
		0xc0, 0x68, 0x79, 0xae, 0x1c, 0x68, 0x55, 0xdf, 0xe8, 0x78, 0xbe, 0x71, 0x75, 0x5f, 0x0b, 0x0c,
		0xaf, 0x63, 0x84, 0x8f, 0xb2, 0x56, 0xa8, 0x51, 0x49, 0x0a, 0x83, 0x9f, 0xcf, 0x5f, 0x1d, 0xc8,
		0xea, 0xe4, 0x4f, 0xdd, 0x81, 0x75, 0x4e, 0x74, 0x3f, 0xfd, 0xc4, 0x83, 0x64, 0xd1, 0x41, 0xaa,
		0xec, 0x36, 0x91, 0xbf, 0x9a, 0x2c, 0x3f, 0x35, 0xa3, 0x34, 0x8d, 0x35, 0x01, 0x9e, 0xa9, 0x9a,
		0x3b, 0xb8, 0xbd, 0x4c, 0x2b, 0x90, 0x42, 0xc5, 0x79, 0xc1, 0x24, 0xf9, 0xc0, 0x8a, 0xf3, 0x80,
		0x95, 0xe7, 0xff, 0x52, 0x90, 0x78, 0x84, 0xa4, 0x1d, 0x95, 0xf1, 0x26, 0x27, 0xe5, 0xc8, 0xed,
		0x33, 0x2d, 0xe9, 0x96, 0x2c, 0xc4, 0xa8, 0x3a, 0x6f, 0x37, 0x63, 0xb5, 0x5f, 0x6c, 0xd7, 0x1c,
		0xdc, 0xfb, 0x5e, 0x40, 0x57, 0x67, 0x30, 0xb5, 0x8b, 0xea, 0x54, 0x66, 0xc2, 0x11, 0xe9, 0x99,
		0x18, 0xd4, 0x9c, 0x5f, 0x5c, 0x5f, 0xde, 0x34, 0x1f, 0x14, 0x3b, 0x72, 0x0d, 0x9a, 0xd2, 0x8b,
		0x1c, 0x55, 0xe9, 0x45, 0x0e, 0xa5, 0x17, 0x9a, 0x08, 0x04, 0x94, 0x5e, 0x68, 0x03, 0x31, 0x8a,
		0x65, 0x9e, 0x2c, 0x0e, 0x32, 0x4e, 0xea, 0x6a, 0x0b, 0x57, 0xda, 0xf2, 0x87, 0x2f, 0x28, 0x7a,
		0xa1, 0xc6, 0x7e, 0x1d, 0x41, 0x69, 0x79, 0xe6, 0x32, 0xfa, 0xe8, 0xbf, 0x59, 0x81, 0xa0, 0xa7,
		0x64, 0xea, 0x0f, 0x37, 0x37, 0xd5, 0xab, 0xe6, 0x50, 0xb7, 0xdf, 0xd7, 0xcf, 0xeb, 0x0f, 0xf7,
		0x54, 0x37, 0x2c, 0xec, 0x5b, 0x1d, 0x90, 0x66, 0xf5, 0x10, 0x07, 0x6f, 0x47, 0x0f, 0x6d, 0xf8,
		0xb4, 0x2e, 0x6e, 0xff, 0x75, 0x43, 0x18, 0xd9, 0xfc, 0xb0, 0x1b, 0x4f, 0xe9, 0xa1, 0x96, 0xb6,
		0xe8, 0x6f, 0x63, 0x6f, 0x28, 0x25, 0x95, 0x65, 0xba, 0x56, 0x4f, 0x7a, 0xe6, 0x93, 0x70, 0x85,
		0x6f, 0x49, 0x82, 0x5c, 0x9d, 0xb1, 0x1f, 0x3d, 0xbd, 0x0f, 0xbc, 0x47, 0x78, 0x8f, 0xf0, 0x1e,
		0xe1, 0x3d, 0x2a, 0x95, 0x78, 0xba, 0xec, 0x19, 0xa2, 0xac, 0x99, 0x64, 0x9a, 0x84, 0x96, 0xd7,
		0x73, 0xa5, 0xf0, 0x09, 0x49, 0x95, 0x78, 0x87, 0x94, 0xf5, 0x6f, 0x80, 0x19, 0x80, 0x19, 0x80,
		0x19, 0xd8, 0xee, 0x11, 0x90, 0xf5, 0x6f, 0x78, 0xfc, 0x21, 0x45, 0x40, 0x8f, 0xbc, 0x87, 0xdb,
		0x20, 0xbb, 0x9c, 0x5b, 0xa1, 0x31, 0x2a, 0x36, 0x2e, 0x05, 0xc7, 0xae, 0xe8, 0xd8, 0x15, 0x1e,
		0xaf, 0xe2, 0xa3, 0xe5, 0x17, 0xd2, 0x9f, 0x5d, 0x1e, 0xb9, 0x5d, 0xa4, 0xa3, 0x34, 0x19, 0x46,
		0x67, 0x32, 0x8d, 0xca, 0x64, 0xa8, 0x65, 0xe6, 0x1c, 0x85, 0xc9, 0x3d, 0xfa, 0x52, 0xdb, 0x70,
		0x41, 0xfe, 0x61, 0x82, 0x1c, 0xc3, 0xe9, 0x38, 0x47, 0x57, 0x26, 0x60, 0x54, 0xe5, 0x3e, 0x49,
		0x0f, 0xea, 0x5c, 0x49, 0x3f, 0x2f, 0x45, 0xfa, 0x75, 0xab, 0xe7, 0xfb, 0xc2, 0x95, 0x61, 0x4a,
		0xa2, 0x29, 0xed, 0x17, 0x86, 0x88, 0xdf, 0xfc, 0x96, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20, 0xc0,
		0x20, 0xa9, 0xc2, 0x20, 0x03, 0xcd, 0x25, 0xed, 0xd6, 0xb7, 0x20, 0xf5, 0x28, 0xe4, 0xc1, 0x1d,
		0x3a, 0x26, 0x19, 0xd7, 0x72, 0xbd, 0x61, 0x2f, 0x6b, 0x52, 0x45, 0x00, 0xd4, 0x03, 0xd4, 0x03,
		0xd4, 0x03, 0xd4, 0x03, 0xd4, 0x03, 0xd4, 0xa3, 0x07, 0xf5, 0xb8, 0xe2, 0x55, 0x9a, 0xbe, 0xf0,
		0xba, 0xd2, 0x7e, 0xb1, 0xff, 0x6f, 0x38, 0x2b, 0x94, 0x07, 0xfc, 0x2c, 0xdd, 0x19, 0x18, 0x08,
		0x18, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x08, 0x18, 0x08,
		0x18, 0x08, 0x18, 0x08, 0x18, 0x88, 0x0c, 0x03, 0x79, 0xae, 0x63, 0xbb, 0x82, 0x09, 0xf6, 0x4c,
		0x6e, 0x06, 0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x03,
		0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x03, 0xa4, 0x43, 0x86, 0x74, 0xba, 0x56, 0xeb, 0x9b,
		0x90, 0x0c, 0x15, 0x35, 0xa3, 0x8d, 0x80, 0x70, 0x80, 0x70, 0x80, 0x70, 0x80, 0x70, 0x52, 0x85,
		0x70, 0x50, 0x53, 0x03, 0xbc, 0x01, 0xbc, 0x01, 0xbc, 0x01, 0xbc, 0x01, 0xbc, 0x01, 0xbc, 0xb1,
		0x1d, 0xde, 0x90, 0xcf, 0x66, 0xeb, 0x79, 0x60, 0x87, 0x58, 0x40, 0xc7, 0xc4, 0x6e, 0x40, 0x1e,
		0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e,
		0x90, 0x1e, 0x20, 0x8f, 0xbd, 0x41, 0x1e, 0xe1, 0xec, 0x18, 0x3e, 0xe8, 0x31, 0xbd, 0x1d, 0xb0,
		0x07, 0xb0, 0x07, 0xb0, 0x07, 0xb0, 0x07, 0xb0, 0x07, 0xb0, 0x07, 0xb0, 0x07, 0xb0, 0x07, 0xb0,
		0x07, 0xa4, 0x07, 0xd8, 0x23, 0x99, 0xd8, 0x23, 0xd1, 0x8d, 0x95, 0x89, 0x46, 0xbb, 0x8e, 0x51,
		0x92, 0xa6, 0x11, 0xaf, 0x21, 0x5c, 0xca, 0x12, 0xb5, 0x8c, 0x37, 0xf4, 0xcc, 0x78, 0xbd, 0x1f,
		0x7c, 0xa7, 0xe6, 0xa7, 0xd1, 0x77, 0xda, 0x83, 0xa1, 0x02, 0x6d, 0xc2, 0x81, 0xe5, 0xb1, 0x5b,
		0x4a, 0x37, 0xb6, 0x1b, 0x13, 0x66, 0x58, 0x71, 0x33, 0x46, 0x0b, 0x24, 0x13, 0x17, 0xef, 0xfb,
		0x84, 0x99, 0x40, 0xfa, 0xb6, 0xfb, 0x44, 0x39, 0x60, 0xe6, 0x64, 0x0f, 0x6c, 0xc1, 0xb3, 0xe7,
		0xb4, 0xcd, 0xae, 0x6f, 0x7b, 0xbe, 0x2d, 0x7f, 0xd0, 0x59, 0x83, 0xe9, 0x6d, 0xd2, 0x34, 0xbb,
		0x37, 0x87, 0x59, 0xbd, 0x29, 0xb4, 0x85, 0x7e, 0xf0, 0xbd, 0x0b, 0x5b, 0x98, 0x40, 0x5b, 0x18,
		0x1e, 0x0c, 0x6c, 0xa1, 0x62, 0x89, 0xef, 0xd9, 0xae, 0x3c, 0x21, 0x34, 0x85, 0x14, 0x43, 0x7a,
		0x69, 0xf9, 0x5e, 0x42, 0xe2, 0x9d, 0x83, 0xdf, 0xe5, 0xe2, 0x75, 0xd9, 0x19, 0x39, 0x3e, 0x26,
		0x8e, 0x90, 0xbf, 0x65, 0xe1, 0x6d, 0x63, 0x11, 0xa8, 0x40, 0x04, 0x12, 0x61, 0x16, 0xe8, 0x56,
		0x6d, 0x24, 0xda, 0x7c, 0x89, 0x57, 0xe9, 0x5b, 0x66, 0xcf, 0x0d, 0xa4, 0xf5, 0xe8, 0x10, 0x19,
		0x32, 0x5f, 0x74, 0x84, 0x2f, 0xdc, 0x56, 0x2a, 0x0d, 0xc2, 0xc8, 0x0a, 0xdf, 0x7d, 0xfe, 0x64,
		0x1c, 0x17, 0x72, 0xa7, 0x86, 0x69, 0xdc, 0xdd, 0xff, 0x51, 0x33, 0xeb, 0xd5, 0x33, 0xa3, 0xfa,
		0x2a, 0x85, 0x1b, 0xd8, 0x9e, 0x1b, 0x18, 0xd2, 0x0b, 0x5f, 0x36, 0x3a, 0x9e, 0xff, 0xd5, 0xbd,
		0xba, 0xaf, 0x19, 0x11, 0x11, 0xb9, 0x63, 0xb9, 0x0e, 0xe3, 0xa3, 0xdc, 0xe5, 0x74, 0x87, 0x4d,
		0xcf, 0x1a, 0xba, 0x8e, 0xc0, 0x95, 0xfc, 0xeb, 0x59, 0xb8, 0x69, 0x56, 0x1c, 0x1f, 0x3f, 0x66,
		0x03, 0xfb, 0xc9, 0xb5, 0x1c, 0xdb, 0x7d, 0x32, 0xbb, 0xbe, 0x27, 0xbd, 0x96, 0xe7, 0x18, 0x7f,
		0x37, 0xfe, 0x27, 0x22, 0x0f, 0xe5, 0x59, 0xed, 0xbc, 0xfe, 0x8f, 0xe6, 0x7d, 0xb5, 0xfe, 0x50,
		0x6b, 0x0e, 0xe4, 0xea, 0x7f, 0x76, 0x4c, 0x67, 0x84, 0x07, 0xb8, 0xcb, 0xea, 0x62, 0x83, 0x13,
		0x4e, 0xa5, 0x63, 0x7c, 0x41, 0x18, 0x5a, 0x5a, 0x7a, 0x7d, 0xfe, 0xf5, 0x2c, 0x5c, 0x43, 0x3e,
		0x0b, 0x23, 0x7e, 0xc4, 0x46, 0xfc, 0x88, 0xed, 0x60, 0xa4, 0x9f, 0x0d, 0x6a, 0x01, 0x63, 0xba,
		0x37, 0xb3, 0x77, 0x87, 0x2e, 0xd0, 0x96, 0x88, 0x6b, 0x34, 0x77, 0x95, 0x56, 0x3d, 0xed, 0x94,
		0x26, 0x60, 0xec, 0x29, 0x66, 0x49, 0x64, 0x70, 0xe4, 0x45, 0x48, 0xdf, 0x6e, 0xd1, 0x45, 0x45,
		0xa2, 0xf5, 0x11, 0x12, 0x40, 0x78, 0x7c, 0x25, 0x55, 0x8f, 0xf0, 0xb8, 0x2e, 0x8d, 0x97, 0xbe,
		0x90, 0x80, 0xed, 0xca, 0xe3, 0x02, 0x61, 0x48, 0xe0, 0x18, 0x21, 0x81, 0xf1, 0x07, 0x67, 0x0d,
		0x09, 0x14, 0xf2, 0xc5, 0x4a, 0xf1, 0xe4, 0xb8, 0x5c, 0x3c, 0xd9, 0x61, 0x62, 0x78, 0xa0, 0x7e,
		0x10, 0x1a, 0x58, 0x59, 0x14, 0x10, 0x23, 0x80, 0xbf, 0xbd, 0x2b, 0xfe, 0xb6, 0x29, 0x29, 0x8c,
		0xe3, 0x8c, 0xd3, 0x3d, 0xdc, 0x24, 0x4d, 0x89, 0x48, 0x31, 0x53, 0x74, 0x75, 0x5f, 0x6b, 0x5e,
		0x57, 0xeb, 0x77, 0x97, 0x9f, 0x9a, 0x97, 0x37, 0xff, 0xa8, 0xde, 0x5d, 0xd6, 0xab, 0x17, 0x48,
		0x52, 0x02, 0x22, 0x01, 0x22, 0x01, 0x22, 0x49, 0x34, 0x22, 0x69, 0x0b, 0x57, 0xda, 0xf2, 0x87,
		0x2f, 0x3a, 0x94, 0x59, 0xbb, 0x14, 0xb9, 0x4a, 0x97, 0xd1, 0x47, 0xff, 0xcd, 0x0a, 0x18, 0x46,
		0xcd, 0x4c, 0x28, 0xf8, 0xfa, 0xbf, 0x6b, 0x55, 0xaa, 0xdb, 0x15, 0x3a, 0x91, 0x01, 0x69, 0xc5,
		0x2d, 0x53, 0x00, 0x60, 0xe2, 0x81, 0x9d, 0xff, 0x76, 0x7f, 0x7b, 0xf5, 0x50, 0xaf, 0xa6, 0x32,
		0x7c, 0xc2, 0xff, 0xb8, 0x88, 0x1c, 0x88, 0x9d, 0x7d, 0x5e, 0x77, 0xd5, 0xab, 0xf3, 0xfa, 0xe5,
		0x1f, 0xd5, 0xb4, 0xc5, 0xf1, 0x1b, 0x49, 0xb7, 0x66, 0x89, 0xc4, 0x23, 0x51, 0x19, 0x22, 0x11,
		0x10, 0x09, 0x57, 0x87, 0xa7, 0x0d, 0x4f, 0x1b, 0x9e, 0x36, 0x3c, 0x6d, 0xa5, 0x12, 0x8f, 0xd2,
		0x38, 0x25, 0x84, 0x4b, 0x57, 0xf8, 0x66, 0x20, 0x2d, 0xd9, 0x0b, 0xe8, 0x8c, 0xc0, 0xe4, 0x26,
		0xb0, 0x05, 0xb0, 0x05, 0xb0, 0x05, 0xb0, 0x05, 0x60, 0x5d, 0x74, 0xb1, 0x2e, 0xb7, 0xb5, 0xea,
		0x5d, 0xf3, 0xbe, 0x7e, 0x5e, 0x7f, 0xb8, 0x07, 0xeb, 0xf2, 0xab, 0x07, 0x76, 0x71, 0xfb, 0xaf,
		0x1b, 0xd0, 0x06, 0xcb, 0x9f, 0xcf, 0x43, 0x0d, 0x2c, 0xc1, 0x3e, 0xb0, 0x04, 0xdd, 0xc9, 0xe2,
		0x25, 0x22, 0x37, 0xb1, 0x4b, 0x55, 0x55, 0x03, 0x2f, 0x11, 0x5e, 0x22, 0xbc, 0x44, 0x34, 0x10,
		0x40, 0x03, 0x01, 0x36, 0x27, 0x81, 0x37, 0x5b, 0x30, 0x8f, 0xcc, 0xb0, 0xe4, 0x79, 0xa0, 0xcc,
		0x59, 0x82, 0xa5, 0x12, 0x84, 0x20, 0x51, 0x8e, 0x36, 0xd2, 0x03, 0x37, 0x73, 0xb4, 0x3d, 0x29,
		0x42, 0x39, 0x33, 0x03, 0xf9, 0xc3, 0x11, 0xa6, 0x2f, 0xfe, 0xdb, 0x13, 0x81, 0x14, 0x6d, 0x4a,
		0xc7, 0x7b, 0xe9, 0x9e, 0xa9, 0x4c, 0x1e, 0x7c, 0xb8, 0xa9, 0xdd, 0xdd, 0xd6, 0xab, 0x9f, 0x90,
		0x33, 0x08, 0x5c, 0x02, 0x5c, 0x02, 0x5c, 0x92, 0x70, 0x5c, 0x02, 0xf6, 0x7a, 0xc5, 0x07, 0x15,
		0x69, 0xf5, 0xcb, 0xdb, 0x1b, 0xe4, 0x0c, 0xae, 0xf4, 0xc0, 0xae, 0x2e, 0x6f, 0xfe, 0xd9, 0xbc,
		0xb9, 0xbd, 0xa8, 0x36, 0x27, 0x1e, 0xdd, 0x5d, 0xf5, 0x7f, 0x1f, 0xaa, 0xf7, 0x48, 0x87, 0xfb,
		0xf5, 0x93, 0x9b, 0x79, 0x68, 0x97, 0x77, 0x78, 0x66, 0xef, 0x3d, 0x33, 0x32, 0xb7, 0x8b, 0x1e,
		0xab, 0x20, 0x28, 0xb0, 0xc9, 0xc1, 0xfb, 0xc2, 0xeb, 0x4a, 0xfb, 0xc5, 0xfe, 0x3f, 0x61, 0x4a,
		0xfb, 0x45, 0xf8, 0x74, 0x08, 0x65, 0x6e, 0x27, 0x38, 0xe2, 0x70, 0xc4, 0xe1, 0x88, 0xc3, 0x11,
		0x57, 0x2a, 0xf1, 0x3d, 0xdb, 0x95, 0xf9, 0x32, 0xa1, 0x0f, 0x5e, 0x46, 0x84, 0x60, 0xfc, 0xc1,
		0xd1, 0x62, 0x78, 0x2b, 0x99, 0x45, 0x84, 0x60, 0x4d, 0x11, 0x28, 0x97, 0x4a, 0xc7, 0x88, 0x11,
		0x24, 0xcb, 0xef, 0x46, 0x8c, 0x60, 0x23, 0xbf, 0xdb, 0x73, 0x08, 0xd3, 0x70, 0xc2, 0xd5, 0xe1,
		0x5f, 0xc3, 0xbf, 0x86, 0x7f, 0x0d, 0xff, 0x5a, 0xa9, 0xc4, 0x83, 0xe8, 0x5e, 0xf1, 0x41, 0x5d,
		0xdd, 0xd7, 0x9a, 0x77, 0xb7, 0x57, 0x60, 0xb8, 0x7f, 0xf9, 0xa4, 0xaa, 0xbf, 0xdf, 0x55, 0xef,
		0xef, 0xc1, 0xca, 0x2e, 0x7f, 0x42, 0x97, 0x37, 0x78, 0x44, 0xbf, 0x78, 0x44, 0xf5, 0xbb, 0xf3,
		0x9b, 0xfb, 0xcb, 0x3a, 0x48, 0xeb, 0x7d, 0x20, 0xad, 0x03, 0x21, 0x7b, 0x5d, 0x86, 0x69, 0x80,
		0x33, 0xfb, 0xa4, 0x29, 0x91, 0xa6, 0x82, 0xac, 0x99, 0x14, 0x82, 0x09, 0x8c, 0x03, 0x4c, 0x28,
		0x98, 0xc0, 0x38, 0x40, 0x0a, 0x89, 0x47, 0x36, 0x3f, 0x9f, 0xb7, 0x04, 0xae, 0x7e, 0x3b, 0x91,
		0x05, 0x57, 0xbf, 0xa6, 0x08, 0xa0, 0xd5, 0x6f, 0xb2, 0xa0, 0x06, 0xc6, 0x01, 0x62, 0x1c, 0xe0,
		0x42, 0x2b, 0x8c, 0x71, 0x80, 0x18, 0x07, 0x88, 0x71, 0x80, 0xbc, 0x00, 0xd8, 0xc0, 0x38, 0xc0,
		0x1d, 0xd0, 0x19, 0x18, 0x07, 0x88, 0x71, 0x80, 0x9b, 0x5f, 0x1f, 0x8c, 0x03, 0xc4, 0x38, 0x40,
		0x8c, 0x03, 0x4c, 0x37, 0x66, 0x49, 0x66, 0x78, 0xe4, 0xd9, 0xf3, 0x65, 0xab, 0x27, 0x4d, 0xe1,
		0xd8, 0x4f, 0xf6, 0x23, 0x65, 0xa2, 0xd1, 0xfc, 0x56, 0x69, 0x0a, 0x92, 0x0c, 0xd4, 0x00, 0xe2,
		0x24, 0x2a, 0x17, 0x46, 0xd2, 0xd5, 0xaa, 0xf6, 0x0f, 0x49, 0x57, 0xba, 0xcc, 0x40, 0xfa, 0xe2,
		0x24, 0x8f, 0x9e, 0xe7, 0x08, 0xcb, 0xa5, 0x4c, 0xb8, 0xca, 0xef, 0x83, 0x5d, 0x9c, 0x83, 0x32,
		0x84, 0x86, 0x71, 0x7e, 0x2f, 0x98, 0x06, 0x98, 0x06, 0x98, 0x06, 0x98, 0x06, 0xa5, 0x12, 0x8f,
		0x7c, 0xdc, 0x15, 0x1f, 0xd4, 0x04, 0x51, 0x55, 0xbb, 0xbb, 0xad, 0xdf, 0x7e, 0xba, 0xbd, 0x42,
		0x6a, 0xee, 0x1a, 0x0f, 0xed, 0xea, 0xa2, 0x86, 0xfc, 0xd3, 0x95, 0x9e, 0xd4, 0xdd, 0xfd, 0x1f,
		0x78, 0x54, 0xab, 0x3d, 0xaa, 0xfb, 0x3b, 0x24, 0xec, 0xee, 0x45, 0xc2, 0xae, 0xd7, 0x91, 0x66,
		0xd7, 0x17, 0xe2, 0x85, 0x86, 0x63, 0x1f, 0xbb, 0xdd, 0x33, 0x1b, 0xa5, 0x89, 0x8d, 0x0a, 0x93,
		0x4a, 0x40, 0x47, 0xa5, 0x10, 0x73, 0x20, 0x6d, 0x37, 0xa1, 0x98, 0x03, 0x69, 0xbb, 0xa0, 0xa3,
		0x52, 0x9a, 0x5a, 0x86, 0xe4, 0x90, 0x14, 0x69, 0xd2, 0x45, 0x1a, 0x15, 0xc9, 0x21, 0x48, 0x0e,
		0xd9, 0xfc, 0xfa, 0x20, 0x39, 0x04, 0xc9, 0x21, 0x48, 0x0e, 0x61, 0x5e, 0x75, 0x2f, 0x92, 0x43,
		0x68, 0x6e, 0xf4, 0x04, 0x02, 0x0f, 0xd7, 0x07, 0xf0, 0x04, 0xf0, 0x04, 0xf0, 0x04, 0xf0, 0x54,
		0x2a, 0xf1, 0x76, 0xd7, 0xb4, 0xda, 0x6d, 0x5f, 0x04, 0x01, 0x25, 0xf6, 0x3c, 0x25, 0x58, 0x3b,
		0x7a, 0x36, 0xa9, 0x45, 0x73, 0x76, 0xf7, 0x7b, 0x91, 0xf0, 0xd9, 0xcf, 0x9d, 0xc1, 0x09, 0xe1,
		0x1e, 0x35, 0x4b, 0x4a, 0xe1, 0xbb, 0xa4, 0xf1, 0xb9, 0x70, 0xa3, 0xc3, 0x2f, 0x39, 0xf3, 0xb4,
		0xf1, 0xf6, 0x25, 0x6f, 0x9e, 0x36, 0x86, 0x7f, 0xcd, 0x87, 0x7f, 0xfc, 0x2c, 0xf4, 0xdf, 0x0a,
		0x5f, 0x72, 0x66, 0x31, 0x7a, 0xb5, 0x50, 0xfa, 0x92, 0x33, 0x4b, 0x8d, 0xa3, 0xc3, 0xaf, 0x5f,
		0x3f, 0xae, 0xfb, 0x9e, 0xa3, 0x9f, 0xc7, 0x7d, 0x3a, 0xb7, 0xb0, 0x41, 0x79, 0x0c, 0xb7, 0xf7,
		0x97, 0x7f, 0xb2, 0x9d, 0xc5, 0x7f, 0x0e, 0xb9, 0x4e, 0xe3, 0xe8, 0x6f, 0x84, 0xe7, 0x71, 0x90,
		0x22, 0xf0, 0xcc, 0xa3, 0x96, 0xca, 0x50, 0x4b, 0xeb, 0xaa, 0xa5, 0x50, 0xaa, 0x2d, 0xb3, 0x73,
		0x6e, 0x7e, 0x6e, 0xfc, 0xcc, 0x7f, 0x28, 0xf6, 0xcf, 0x8e, 0x7e, 0x56, 0xfa, 0xb3, 0x2f, 0xbe,
		0x2d, 0xfa, 0xb5, 0xfc, 0x87, 0x4a, 0xff, 0x6c, 0xc9, 0xbf, 0x94, 0xfb, 0x67, 0x2b, 0xae, 0x51,
		0xea, 0x1f, 0xce, 0xfd, 0xea, 0xe0, 0xf5, 0xc2, 0xb2, 0x37, 0x14, 0x97, 0xbc, 0xe1, 0x78, 0xd9,
		0x1b, 0x8e, 0x97, 0xbc, 0x61, 0xe9, 0x47, 0x2a, 0x2c, 0x79, 0x43, 0xa9, 0xff, 0x36, 0xf7, 0xfb,
		0x87, 0x8b, 0x7f, 0xb5, 0xdc, 0x3f, 0x7a, 0x5b, 0xf6, 0x6f, 0x95, 0xfe, 0xdb, 0xd9, 0xd1, 0x11,
		0x14, 0xf5, 0xca, 0x8a, 0x1a, 0xe2, 0xc9, 0x2f, 0x9e, 0xe9, 0x33, 0x5c, 0x68, 0x69, 0xa0, 0xfc,
		0xfe, 0x21, 0xee, 0x94, 0x22, 0x22, 0x65, 0x11, 0xa1, 0x82, 0xb8, 0x13, 0xe2, 0x4e, 0x9b, 0x5f,
		0x1f, 0xc4, 0x9d, 0x10, 0x77, 0x42, 0xdc, 0x29, 0xdd, 0x5e, 0x47, 0x22, 0xe3, 0x4e, 0x92, 0x82,
		0x1d, 0x8e, 0xd5, 0x56, 0xb8, 0x3a, 0x62, 0x4e, 0x28, 0xb0, 0x5a, 0x49, 0xcd, 0xa3, 0xc0, 0x4a,
		0x97, 0xb6, 0x43, 0x81, 0xd5, 0x12, 0x66, 0x31, 0xfd, 0x05, 0x56, 0xf5, 0x87, 0x9b, 0x9b, 0xea,
		0x15, 0xa6, 0xfa, 0xae, 0xf4, 0xb0, 0x6a, 0x85, 0x6b, 0xd4, 0x08, 0xbd, 0xfb, 0x7c, 0x6a, 0xa8,
		0x0c, 0x4a, 0x6c, 0x65, 0xd0, 0x41, 0x82, 0x84, 0x34, 0x73, 0xee, 0xba, 0x9e, 0xb4, 0x94, 0xa3,
		0xe4, 0x4c, 0xd0, 0x7a, 0x16, 0x2f, 0x56, 0xd7, 0x92, 0xcf, 0x03, 0x81, 0xcc, 0x7a, 0x5d, 0xe1,
		0xb6, 0x42, 0xd7, 0xcd, 0x74, 0x85, 0xfc, 0xcb, 0xf3, 0xbf, 0x99, 0xb6, 0x1b, 0x48, 0xcb, 0x6d,
		0x89, 0xec, 0xec, 0x0b, 0xc1, 0xdc, 0x2b, 0xd9, 0x81, 0x71, 0xce, 0x3a, 0x41, 0x37, 0xc8, 0xb6,
		0x3c, 0x37, 0x90, 0xbe, 0x65, 0xbb, 0xa2, 0x6d, 0x0e, 0x56, 0xcf, 0xca, 0x61, 0x8f, 0xc5, 0xe8,
		0xcf, 0x6c, 0x20, 0x2d, 0xa9, 0xd2, 0x97, 0xcd, 0x04, 0xd2, 0xef, 0xb5, 0xa4, 0x1b, 0xdd, 0xac,
		0xdb, 0xf8, 0x7b, 0xdc, 0x0c, 0x3f, 0xe3, 0x65, 0xf4, 0x11, 0x9b, 0x33, 0xff, 0x1d, 0xcc, 0xbe,
		0xd0, 0xbc, 0xee, 0x3a, 0x41, 0xf3, 0x2a, 0xe8, 0x06, 0xcd, 0x4f, 0xe3, 0xef, 0x50, 0xb3, 0xe4,
		0x73, 0x33, 0x6a, 0x13, 0x19, 0xfd, 0xd9, 0xbc, 0x0f, 0xbf, 0xc2, 0x41, 0x32, 0x64, 0x6d, 0xbb,
		0x15, 0xb6, 0x94, 0xd2, 0x81, 0xd7, 0x39, 0x78, 0xea, 0xe1, 0xd3, 0xdf, 0x72, 0xa9, 0x2b, 0x3b,
		0x90, 0xe7, 0x52, 0xaa, 0x19, 0xd1, 0x9c, 0xb9, 0xb6, 0xdd, 0xaa, 0x23, 0x06, 0xee, 0xa3, 0xa2,
		0xde, 0xc9, 0x99, 0x6b, 0xeb, 0x75, 0x62, 0xc5, 0xfc, 0x49, 0xb1, 0x58, 0xae, 0x14, 0x8b, 0xb9,
		0xca, 0x71, 0x25, 0x77, 0x5a, 0x2a, 0xe5, 0xcb, 0x2a, 0x7c, 0x9c, 0xcc, 0xad, 0xdf, 0x16, 0xbe,
		0x68, 0xff, 0x36, 0x78, 0xaa, 0x6e, 0xcf, 0x71, 0x54, 0x2e, 0xf9, 0x10, 0x84, 0xf3, 0xaf, 0xb7,
		0x6f, 0xee, 0xbc, 0xad, 0xd0, 0x28, 0x56, 0x69, 0xba, 0x54, 0x99, 0x02, 0x25, 0xc6, 0xaf, 0xbc,
		0xb6, 0x53, 0x5b, 0x9b, 0x2b, 0x9b, 0xcd, 0xde, 0xb9, 0xa1, 0xa4, 0xa9, 0x92, 0x30, 0x76, 0xc9,
		0xda, 0x42, 0xa4, 0x18, 0x45, 0x69, 0x33, 0x19, 0x5a, 0x5f, 0x02, 0xd6, 0x7b, 0xc7, 0x9a, 0xb2,
		0xb2, 0xad, 0x8c, 0xb0, 0xc9, 0xc6, 0x06, 0x32, 0xc1, 0x20, 0x0b, 0xeb, 0xc9, 0xc0, 0xea, 0x27,
		0xb9, 0xc6, 0x29, 0x66, 0x06, 0xae, 0xa4, 0xdd, 0x32, 0x07, 0x4f, 0x6d, 0xed, 0x23, 0x1c, 0x27,
		0xf4, 0x4f, 0x2c, 0xb2, 0xa6, 0x04, 0x8d, 0xc8, 0x8d, 0x35, 0xdf, 0xb6, 0x29, 0x43, 0xba, 0x0d,
		0x03, 0xaa, 0x80, 0xe1, 0xdc, 0x96, 0xc1, 0x54, 0xc6, 0x50, 0x2a, 0x63, 0x20, 0xd5, 0x30, 0x8c,
		0xb4, 0x5a, 0xea, 0xc2, 0xf6, 0x37, 0x54, 0x4f, 0xb1, 0x5c, 0x6f, 0x7e, 0x62, 0xf3, 0x77, 0x64,
		0xd3, 0x23, 0xdb, 0xec, 0xaa, 0x6c, 0x7d, 0x65, 0x54, 0x5c, 0x9d, 0xb9, 0xa7, 0xb1, 0x65, 0x84,
		0x40, 0x55, 0x24, 0x40, 0x39, 0xe3, 0xaf, 0x9c, 0xd9, 0x9f, 0xba, 0x5f, 0xdb, 0xd1, 0xf7, 0xbc,
		0xee, 0xe3, 0xa6, 0x97, 0x2e, 0x5e, 0xa0, 0x35, 0x92, 0xd7, 0x2d, 0x8f, 0x78, 0x24, 0x72, 0xd1,
		0x7a, 0xdb, 0x82, 0xf5, 0xad, 0x2e, 0xa1, 0xb2, 0xcb, 0xa8, 0xf2, 0x52, 0xaa, 0xbe, 0x9c, 0xaa,
		0x2f, 0x29, 0xd9, 0x65, 0x25, 0xbb, 0xb4, 0x04, 0x97, 0x37, 0x19, 0x54, 0xd5, 0xb6, 0x97, 0x3a,
		0x5e, 0x28, 0x72, 0xab, 0x15, 0x09, 0xc6, 0x48, 0x70, 0x15, 0x50, 0x68, 0xb3, 0x17, 0x5d, 0x51,
		0x04, 0x5e, 0x79, 0x48, 0x9f, 0x22, 0x94, 0xaf, 0x5a, 0x01, 0x50, 0x29, 0x02, 0x72, 0x85, 0x40,
		0xae, 0x18, 0x08, 0x15, 0x84, 0x1a, 0x45, 0xa1, 0x48, 0x61, 0xc4, 0xdf, 0x53, 0x79, 0x10, 0x7e,
		0xc2, 0xaf, 0xf6, 0x6d, 0xf7, 0x49, 0xa5, 0xb4, 0xc6, 0x95, 0x3c, 0x88, 0x4e, 0xa4, 0x88, 0x68,
		0x9e, 0xe0, 0x20, 0x26, 0xfe, 0x9e, 0x55, 0xe2, 0xf5, 0x51, 0xf1, 0x41, 0xf7, 0xe1, 0xe7, 0x9c,
		0xfe, 0x6b, 0x33, 0xb2, 0x14, 0xba, 0x38, 0xe6, 0x2d, 0x40, 0x99, 0x78, 0x0a, 0x8b, 0xec, 0x94,
		0x79, 0xec, 0xd1, 0x7a, 0xf0, 0xd8, 0xe1, 0xb1, 0xc3, 0x63, 0xd7, 0xed, 0xb1, 0x2b, 0x82, 0xe3,
		0x34, 0xb0, 0x5c, 0xf1, 0x65, 0x87, 0xd7, 0x0e, 0xaf, 0x1d, 0x5e, 0xbb, 0x3a, 0xe5, 0x11, 0x2f,
		0x68, 0xbb, 0x2d, 0xef, 0xc5, 0x76, 0x9f, 0x4c, 0xc7, 0x7a, 0x14, 0x84, 0xa3, 0x55, 0x66, 0xf6,
		0x41, 0xd6, 0x3f, 0x79, 0xd6, 0x3f, 0x52, 0xfe, 0x35, 0x2b, 0x25, 0x06, 0xe5, 0xa4, 0x56, 0x49,
		0x29, 0x56, 0x56, 0x74, 0x54, 0xc3, 0x42, 0x59, 0x27, 0xd1, 0x2c, 0x06, 0x7a, 0x4c, 0xbd, 0xff,
		0xe4, 0x7b, 0xb6, 0x2b, 0x8f, 0x0b, 0x0c, 0x6d, 0x5c, 0x2a, 0x84, 0x5b, 0xdc, 0x59, 0xee, 0x93,
		0x20, 0xef, 0x92, 0xc1, 0x50, 0x15, 0x7b, 0x6d, 0xbb, 0x2c, 0xe5, 0xb7, 0x46, 0x5c, 0xd8, 0x31,
		0xb8, 0x17, 0xe5, 0x0f, 0x3c, 0x1b, 0x7e, 0xf6, 0xad, 0x96, 0xb4, 0x3d, 0xf7, 0xc2, 0x7e, 0xb2,
		0x55, 0x25, 0xc0, 0xae, 0x26, 0xec, 0xe2, 0xc9, 0x92, 0xf6, 0x77, 0xa1, 0x24, 0xcf, 0x54, 0x83,
		0x06, 0x5e, 0x2c, 0x2b, 0xd6, 0xab, 0x06, 0x59, 0xc9, 0x15, 0x4f, 0x4a, 0x95, 0x12, 0x04, 0x26,
		0xd1, 0x0e, 0x00, 0xdf, 0xea, 0xe8, 0x8d, 0x36, 0x6d, 0x4e, 0x85, 0xdb, 0x7b, 0x11, 0xbe, 0x45,
		0xdc, 0xcb, 0x20, 0xf6, 0x68, 0x8a, 0x84, 0x7b, 0x54, 0xdd, 0xde, 0x0b, 0x7d, 0x0b, 0x8c, 0xba,
		0x77, 0x3f, 0x0c, 0x37, 0xb1, 0x74, 0x9d, 0xc8, 0x0d, 0xce, 0xe8, 0xb2, 0xf6, 0x47, 0xb1, 0x59,
		0xfd, 0xb3, 0x76, 0x75, 0xf9, 0xe9, 0xb2, 0xde, 0xbc, 0x79, 0xb8, 0xba, 0xe2, 0x68, 0x3b, 0x91,
		0x1f, 0x6c, 0x7d, 0x77, 0xfb, 0x50, 0xaf, 0xde, 0x35, 0xcf, 0xaf, 0xaa, 0x77, 0x75, 0x8e, 0x4d,
		0x0b, 0xd1, 0xf7, 0x2d, 0xf3, 0x7f, 0xdf, 0xe3, 0x70, 0xeb, 0x6b, 0xe6, 0x5d, 0x2b, 0x83, 0x5d,
		0xab, 0x37, 0xf5, 0xbb, 0xdb, 0xda, 0xbf, 0x9b, 0x57, 0xe7, 0xbf, 0x55, 0xaf, 0x9a, 0x97, 0x37,
		0x17, 0x97, 0x9f, 0xce, 0xeb, 0xb7, 0x77, 0x1c, 0xfb, 0x9f, 0x0c, 0xf6, 0xbf, 0xb9, 0x1d, 0x6e,
		0x4d, 0xdc, 0xc1, 0xe3, 0x03, 0xf5, 0xcd, 0xbc, 0x0c, 0x21, 0x2f, 0xc3, 0xb5, 0x5c, 0x76, 0x60,
		0xa4, 0xa8, 0x21, 0xde, 0x7d, 0x5a, 0x48, 0xcf, 0x8c, 0x63, 0x8e, 0x3d, 0xe7, 0x75, 0x10, 0x8b,
		0x77, 0xb3, 0x48, 0x19, 0x9c, 0x19, 0x05, 0x86, 0x8d, 0xe3, 0x4b, 0x71, 0x66, 0x9c, 0x30, 0x6c,
		0x37, 0xa5, 0x69, 0xcf, 0x8c, 0x3c, 0x9a, 0xe9, 0x90, 0xae, 0xba, 0x0f, 0xcd, 0x74, 0x6c, 0x57,
		0x0a, 0xbf, 0x63, 0x51, 0xce, 0x71, 0x18, 0x6f, 0x01, 0x82, 0x9d, 0xa3, 0xad, 0x8e, 0xdd, 0x01,
		0xc3, 0xfe, 0xce, 0x46, 0xba, 0x9a, 0xea, 0xd8, 0x1d, 0x50, 0xec, 0xaa, 0xa5, 0xdd, 0x11, 0x56,
		0x87, 0xb8, 0x9d, 0x0e, 0x81, 0xb3, 0x96, 0xa9, 0xc5, 0x69, 0x6d, 0x03, 0xb1, 0x38, 0x8b, 0x15,
		0x64, 0x30, 0xfb, 0x42, 0xf4, 0xdf, 0x61, 0x36, 0xd9, 0x1e, 0x18, 0xa3, 0x17, 0x21, 0x7d, 0xbb,
		0x45, 0x67, 0x89, 0xa2, 0xf5, 0x61, 0x86, 0x10, 0xe7, 0xdd, 0x4b, 0x2b, 0x84, 0x38, 0x2f, 0x85,
		0xac, 0xf7, 0x6c, 0x57, 0x9e, 0x10, 0x9a, 0x20, 0x8a, 0x86, 0x6e, 0xb4, 0xc1, 0x45, 0x42, 0x4e,
		0x9a, 0x23, 0x98, 0x18, 0x07, 0x86, 0x88, 0xb9, 0x0b, 0xf6, 0x50, 0x10, 0x5f, 0x08, 0x88, 0xb2,
		0x9b, 0x35, 0x47, 0x8c, 0x30, 0x16, 0x81, 0x42, 0xa9, 0x04, 0x21, 0x00, 0xcf, 0x93, 0x7a, 0xd7,
		0xda, 0x15, 0xaf, 0xd2, 0x7c, 0xf6, 0xba, 0x74, 0xce, 0x75, 0xbc, 0x03, 0xdc, 0x6b, 0xb8, 0xd7,
		0x70, 0xaf, 0xe1, 0x5e, 0x2b, 0x92, 0x75, 0x8c, 0xea, 0xe4, 0xf6, 0xb1, 0x31, 0xaa, 0x73, 0x8b,
		0x8d, 0x30, 0xaa, 0xf3, 0xdd, 0x63, 0xc0, 0xa8, 0x4e, 0xcd, 0xee, 0x29, 0x31, 0x42, 0xc3, 0xa8,
		0xce, 0x84, 0xaa, 0x25, 0xcc, 0x42, 0xc4, 0xa8, 0xce, 0xa4, 0x2b, 0x6a, 0x88, 0x27, 0x46, 0x75,
		0x82, 0xff, 0x21, 0xe1, 0x7f, 0xba, 0xbd, 0xe0, 0x99, 0xba, 0x9c, 0x76, 0x62, 0x0f, 0x70, 0x40,
		0xe0, 0x80, 0xc0, 0x01, 0x81, 0x03, 0x52, 0x28, 0xeb, 0x28, 0xa5, 0xd5, 0x01, 0xb6, 0x50, 0x4a,
		0x9b, 0x80, 0xd3, 0x88, 0xbf, 0x08, 0x4a, 0x69, 0x69, 0x84, 0x1d, 0xa5, 0xb4, 0xaa, 0x64, 0x05,
		0xa5, 0xb4, 0x46, 0x3a, 0x40, 0x0f, 0xcf, 0xea, 0xe0, 0x2e, 0xa7, 0xcd, 0x29, 0x4a, 0x69, 0xd7,
		0xf5, 0x9f, 0x50, 0x4a, 0x4b, 0xb8, 0x29, 0x4a, 0x69, 0x51, 0x4a, 0xbb, 0xf9, 0xcd, 0x44, 0x29,
		0x2d, 0xdd, 0x9e, 0x28, 0xa5, 0xa5, 0xdd, 0x0e, 0xa5, 0xb4, 0xac, 0xab, 0xee, 0x03, 0xc5, 0x1e,
		0xf4, 0x1e, 0x19, 0xaa, 0x69, 0xa7, 0x76, 0x01, 0xcd, 0x8e, 0x82, 0xda, 0xa5, 0x87, 0x89, 0x82,
		0x5a, 0xdd, 0x9a, 0x0f, 0x05, 0xb5, 0x0b, 0x30, 0xa9, 0xd6, 0x82, 0xda, 0x2f, 0xe3, 0x82, 0xda,
		0xbf, 0xb7, 0x7a, 0xbe, 0x2f, 0x5c, 0x79, 0x78, 0x94, 0xfd, 0xf8, 0x31, 0x1b, 0xff, 0x46, 0x23,
		0x7a, 0xcb, 0xa4, 0x9e, 0x0d, 0x16, 0xbc, 0x16, 0xaf, 0xdc, 0x16, 0xaf, 0x19, 0x8c, 0xd7, 0x5f,
		0xe5, 0xfa, 0xa6, 0x6c, 0xbc, 0xfe, 0x92, 0x51, 0x21, 0xc3, 0x71, 0x13, 0x59, 0xa5, 0x0d, 0xe9,
		0x0d, 0xce, 0xc9, 0x21, 0xd5, 0xf0, 0x0b, 0x28, 0x19, 0x20, 0xa2, 0x4e, 0xd0, 0xfa, 0x4a, 0x46,
		0xaf, 0x58, 0x92, 0x60, 0x5c, 0xd8, 0x70, 0xd9, 0x84, 0x4f, 0x1e, 0x28, 0x60, 0xf2, 0x40, 0x6a,
		0x3c, 0x27, 0x4c, 0x1e, 0xc0, 0xe4, 0x01, 0x4c, 0x1e, 0x60, 0xc6, 0x71, 0x48, 0x97, 0x4a, 0x22,
		0x8c, 0x43, 0xba, 0x14, 0x95, 0xac, 0x23, 0x5d, 0x6a, 0xee, 0x07, 0xe9, 0x52, 0xab, 0x6d, 0x81,
		0x74, 0xa9, 0x4d, 0x36, 0x43, 0xba, 0x14, 0xd9, 0x0f, 0xd2, 0xa5, 0x20, 0x30, 0x1a, 0x1d, 0x00,
		0xbe, 0xd5, 0x91, 0x2e, 0x35, 0x6d, 0x4e, 0x91, 0x2e, 0xb5, 0xae, 0xff, 0x84, 0x74, 0x29, 0xc2,
		0x4d, 0x91, 0x2e, 0x85, 0x74, 0xa9, 0xcd, 0x6f, 0x26, 0xd2, 0xa5, 0xe8, 0xf6, 0x44, 0xba, 0x14,
		0xed, 0x76, 0x48, 0x97, 0x62, 0x5d, 0x15, 0x93, 0x07, 0x94, 0xb8, 0x8f, 0x48, 0x94, 0x8a, 0x16,
		0x46, 0xa2, 0xd4, 0x7b, 0x87, 0x89, 0x44, 0x29, 0xdd, 0x3a, 0x0f, 0x89, 0x52, 0x0b, 0xd0, 0x28,
		0x26, 0x0f, 0xf0, 0x19, 0x23, 0x4c, 0x1e, 0xd8, 0x15, 0x33, 0x84, 0x38, 0x6f, 0x12, 0xad, 0x10,
		0xe2, 0xbc, 0x14, 0xb2, 0x8e, 0xc9, 0x03, 0xb3, 0x3f, 0x98, 0x3c, 0xb0, 0xda, 0x3e, 0x98, 0x3c,
		0xb0, 0x91, 0x08, 0x60, 0xf2, 0x40, 0x4a, 0x84, 0x00, 0x3c, 0x4f, 0x62, 0x5c, 0x6b, 0x4c, 0x1e,
		0x80, 0x7b, 0x0d, 0xf7, 0x1a, 0xee, 0x35, 0x26, 0x0f, 0x2c, 0xa6, 0x79, 0x90, 0x46, 0xb9, 0xe8,
		0xc9, 0x63, 0xf2, 0xc0, 0xda, 0x1b, 0x61, 0xf2, 0xc0, 0xbb, 0xc7, 0x80, 0xc9, 0x03, 0x9a, 0xdd,
		0x53, 0x62, 0x84, 0x86, 0xc9, 0x03, 0x09, 0x55, 0x4b, 0x68, 0xed, 0x8e, 0xc9, 0x03, 0x49, 0x57,
		0xd4, 0x10, 0x4f, 0x4c, 0x1e, 0x00, 0xff, 0x43, 0xc2, 0xff, 0x60, 0xf2, 0x00, 0x38, 0x20, 0x70,
		0x40, 0xe0, 0x80, 0x0c, 0x94, 0xd2, 0x82, 0x03, 0x5a, 0xe3, 0xc9, 0xa3, 0x94, 0x36, 0x01, 0xa7,
		0x11, 0x7f, 0x11, 0x94, 0xd2, 0xd2, 0x08, 0x3b, 0x4a, 0x69, 0x55, 0xc9, 0x0a, 0x4a, 0x69, 0x8d,
		0x74, 0x80, 0x1e, 0x9e, 0xd5, 0xc1, 0x5d, 0x4e, 0x9b, 0x53, 0x94, 0xd2, 0xae, 0xeb, 0x3f, 0xa1,
		0x94, 0x96, 0x70, 0x53, 0x94, 0xd2, 0xa2, 0x94, 0x76, 0xf3, 0x9b, 0x89, 0x52, 0x5a, 0xba, 0x3d,
		0x51, 0x4a, 0x4b, 0xbb, 0x1d, 0x4a, 0x69, 0x59, 0x57, 0xc5, 0xe4, 0x01, 0x55, 0x1e, 0x24, 0x26,
		0x0f, 0x8c, 0x17, 0x46, 0x41, 0xed, 0x7b, 0x87, 0x89, 0x82, 0x5a, 0xdd, 0x9a, 0x0f, 0x05, 0xb5,
		0x0b, 0x30, 0x29, 0x26, 0x0f, 0xf0, 0x59, 0x37, 0x4c, 0x1e, 0x20, 0x9b, 0x3c, 0xa0, 0xb2, 0x1f,
		0xbd, 0xa1, 0x61, 0xf0, 0xc0, 0x7d, 0xf8, 0xf9, 0x93, 0x32, 0x77, 0xe0, 0x40, 0xa3, 0x80, 0xaa,
		0x16, 0x4c, 0x3d, 0x02, 0x99, 0x51, 0x32, 0xba, 0x81, 0x53, 0x04, 0xb7, 0x13, 0xbe, 0xcd, 0x45,
		0x66, 0x0b, 0x71, 0xc9, 0xd8, 0xee, 0xf0, 0xa3, 0x6f, 0x2b, 0x27, 0x13, 0xcd, 0x71, 0x54, 0x9c,
		0x9e, 0xa2, 0x81, 0x16, 0xca, 0x3c, 0x75, 0x95, 0x9e, 0xb9, 0xea, 0x84, 0x17, 0xd5, 0x8e, 0x37,
		0x99, 0xa3, 0x4d, 0xe6, 0x58, 0x13, 0x24, 0xac, 0xe8, 0x55, 0xe0, 0xaa, 0x06, 0x50, 0x64, 0x5a,
		0x23, 0xf9, 0x57, 0x3c, 0xbc, 0x46, 0xe9, 0x98, 0x22, 0xb2, 0xe9, 0x35, 0x39, 0x4c, 0xaf, 0x49,
		0x0d, 0xfa, 0xc6, 0xf4, 0x1a, 0x4c, 0xaf, 0xc1, 0xf4, 0x1a, 0x66, 0x2e, 0x10, 0x29, 0xb7, 0x49,
		0xa4, 0x02, 0x91, 0x72, 0x4b, 0x25, 0xeb, 0x48, 0xb9, 0x9d, 0xfb, 0x41, 0xca, 0xed, 0x6a, 0x5b,
		0x20, 0xe5, 0x76, 0x93, 0xcd, 0x90, 0x72, 0x4b, 0xf6, 0x83, 0x94, 0x5b, 0x08, 0x8c, 0x46, 0x07,
		0x80, 0x6f, 0x75, 0xa4, 0xdc, 0x4e, 0x9b, 0x53, 0xa4, 0xdc, 0xae, 0xeb, 0x3f, 0x21, 0xe5, 0x96,
		0x70, 0x53, 0xa4, 0xdc, 0x22, 0xe5, 0x76, 0xf3, 0x9b, 0x89, 0x94, 0x5b, 0xba, 0x3d, 0x91, 0x72,
		0x4b, 0xbb, 0x1d, 0x52, 0x6e, 0x59, 0x57, 0xc5, 0xf4, 0x1a, 0x25, 0xee, 0x23, 0x92, 0x6d, 0xa3,
		0x85, 0x91, 0x6c, 0xfb, 0xde, 0x61, 0x22, 0xd9, 0x56, 0xb7, 0xce, 0x43, 0xb2, 0xed, 0x02, 0x34,
		0x8a, 0xe9, 0x35, 0x7c, 0xc6, 0x08, 0xd3, 0x6b, 0x76, 0xc5, 0x0c, 0x21, 0xce, 0x9b, 0x44, 0x2b,
		0x84, 0x38, 0x2f, 0x85, 0xac, 0x63, 0x7a, 0xcd, 0xec, 0x0f, 0xa6, 0xd7, 0xac, 0xb6, 0x0f, 0xa6,
		0xd7, 0x6c, 0x24, 0x02, 0x98, 0x5e, 0x93, 0x12, 0x21, 0x00, 0xcf, 0x93, 0x18, 0xd7, 0x1a, 0xd3,
		0x6b, 0xe0, 0x5e, 0xc3, 0xbd, 0x86, 0x7b, 0x8d, 0xe9, 0x35, 0x8b, 0x69, 0x1e, 0xa4, 0x51, 0x2e,
		0x7a, 0xf2, 0x98, 0x5e, 0xb3, 0xf6, 0x46, 0x98, 0x5e, 0xf3, 0xee, 0x31, 0x60, 0x7a, 0x8d, 0x66,
		0xf7, 0x94, 0x18, 0xa1, 0x61, 0x7a, 0x4d, 0x42, 0xd5, 0x12, 0xc6, 0x83, 0x60, 0x7a, 0x4d, 0xd2,
		0x15, 0x35, 0xc4, 0x13, 0xd3, 0x6b, 0xc0, 0xff, 0x90, 0xf0, 0x3f, 0x98, 0x5e, 0x03, 0x0e, 0x08,
		0x1c, 0x10, 0x38, 0x20, 0x03, 0xa5, 0xb4, 0xe0, 0x80, 0xd6, 0x78, 0xf2, 0x28, 0xa5, 0x4d, 0xc0,
		0x69, 0xc4, 0x5f, 0x04, 0xa5, 0xb4, 0x34, 0xc2, 0x8e, 0x52, 0x5a, 0x55, 0xb2, 0x82, 0x52, 0x5a,
		0x23, 0x1d, 0xa0, 0x87, 0x67, 0x75, 0x70, 0x97, 0xd3, 0xe6, 0x14, 0xa5, 0xb4, 0xeb, 0xfa, 0x4f,
		0x28, 0xa5, 0x25, 0xdc, 0x14, 0xa5, 0xb4, 0x28, 0xa5, 0xdd, 0xfc, 0x66, 0xa2, 0x94, 0x96, 0x6e,
		0x4f, 0x94, 0xd2, 0xd2, 0x6e, 0x87, 0x52, 0x5a, 0xd6, 0x55, 0x31, 0xbd, 0x46, 0x95, 0x07, 0x89,
		0xe9, 0x35, 0xe3, 0x85, 0x51, 0x50, 0xfb, 0xde, 0x61, 0xa2, 0xa0, 0x56, 0xb7, 0xe6, 0x43, 0x41,
		0xed, 0x02, 0x4c, 0x8a, 0xe9, 0x35, 0x7c, 0xd6, 0x0d, 0xd3, 0x6b, 0xd4, 0x0f, 0x0b, 0x89, 0xe6,
		0x4d, 0x64, 0x95, 0x76, 0xa4, 0x37, 0x38, 0x87, 0x87, 0x5c, 0x0e, 0xbf, 0x41, 0x33, 0xb2, 0xcb,
		0x49, 0x99, 0x60, 0xa3, 0x64, 0xfc, 0x8a, 0x25, 0x85, 0xfa, 0xe1, 0x03, 0x2a, 0x27, 0x15, 0x91,
		0xcd, 0x1e, 0x28, 0x60, 0xf6, 0x40, 0x6a, 0x7c, 0x27, 0xcc, 0x1e, 0xc0, 0xec, 0x01, 0xcc, 0x1e,
		0x60, 0x46, 0x72, 0x48, 0x98, 0x4a, 0x22, 0x90, 0x43, 0xc2, 0x14, 0x95, 0xac, 0x23, 0x61, 0x6a,
		0xee, 0x07, 0x09, 0x53, 0xab, 0x6d, 0x81, 0x84, 0xa9, 0x4d, 0x36, 0x43, 0xc2, 0x14, 0xd9, 0x0f,
		0x12, 0xa6, 0x20, 0x30, 0x1a, 0x1d, 0x00, 0xbe, 0xd5, 0x91, 0x30, 0x35, 0x6d, 0x4e, 0x91, 0x30,
		0xb5, 0xae, 0xff, 0x84, 0x84, 0x29, 0xc2, 0x4d, 0x91, 0x30, 0x85, 0x84, 0xa9, 0xcd, 0x6f, 0x26,
		0x12, 0xa6, 0xe8, 0xf6, 0x44, 0xc2, 0x14, 0xed, 0x76, 0x48, 0x98, 0x62, 0x5d, 0x15, 0xb3, 0x07,
		0x94, 0xb8, 0x8f, 0x48, 0x95, 0x8a, 0x16, 0x46, 0xaa, 0xd4, 0x7b, 0x87, 0x89, 0x54, 0x29, 0xdd,
		0x3a, 0x0f, 0xa9, 0x52, 0x0b, 0xd0, 0x28, 0x66, 0x0f, 0xf0, 0x19, 0x23, 0xcc, 0x1e, 0xd8, 0x15,
		0x33, 0x84, 0x38, 0x6f, 0x12, 0xad, 0x10, 0xe2, 0xbc, 0x14, 0xb2, 0x8e, 0xd9, 0x03, 0xb3, 0x3f,
		0x98, 0x3d, 0xb0, 0xda, 0x3e, 0x98, 0x3d, 0xb0, 0x91, 0x08, 0x60, 0xf6, 0x40, 0x4a, 0x84, 0x00,
		0x3c, 0x4f, 0x62, 0x5c, 0x6b, 0xcc, 0x1e, 0x80, 0x7b, 0x0d, 0xf7, 0x1a, 0xee, 0x35, 0x66, 0x0f,
		0x2c, 0xa6, 0x79, 0x90, 0x46, 0xb9, 0xe8, 0xc9, 0x63, 0xf6, 0xc0, 0xda, 0x1b, 0x61, 0xf6, 0xc0,
		0xbb, 0xc7, 0x80, 0xd9, 0x03, 0x9a, 0xdd, 0x53, 0x62, 0x84, 0x86, 0xd9, 0x03, 0x09, 0x55, 0x4b,
		0x68, 0xee, 0x8e, 0xd9, 0x03, 0x49, 0x57, 0xd4, 0x10, 0x4f, 0xcc, 0x1e, 0x00, 0xff, 0x43, 0xc2,
		0xff, 0x60, 0xf6, 0x00, 0x38, 0x20, 0x70, 0x40, 0xe0, 0x80, 0x0c, 0x94, 0xd2, 0x82, 0x03, 0x5a,
		0xe3, 0xc9, 0xa3, 0x94, 0x36, 0x01, 0xa7, 0x11, 0x7f, 0x11, 0x94, 0xd2, 0xd2, 0x08, 0x3b, 0x4a,
		0x69, 0x55, 0xc9, 0x0a, 0x4a, 0x69, 0x8d, 0x74, 0x80, 0x1e, 0x9e, 0xd5, 0xc1, 0x5d, 0x4e, 0x9b,
		0x53, 0x94, 0xd2, 0xae, 0xeb, 0x3f, 0xa1, 0x94, 0x96, 0x70, 0x53, 0x94, 0xd2, 0xa2, 0x94, 0x76,
		0xf3, 0x9b, 0x89, 0x52, 0x5a, 0xba, 0x3d, 0x51, 0x4a, 0x4b, 0xbb, 0x1d, 0x4a, 0x69, 0x59, 0x57,
		0xc5, 0xec, 0x01, 0x55, 0x1e, 0x24, 0x66, 0x0f, 0x8c, 0x17, 0x46, 0x41, 0xed, 0x7b, 0x87, 0x89,
		0x82, 0x5a, 0xdd, 0x9a, 0x0f, 0x05, 0xb5, 0x0b, 0x30, 0x29, 0x66, 0x0f, 0xf0, 0x59, 0x37, 0xcc,
		0x1e, 0xa0, 0x9b, 0x3d, 0xa0, 0xb2, 0x21, 0xbd, 0xa1, 0x63, 0xf4, 0xc0, 0x7d, 0xf8, 0x05, 0x92,
		0x32, 0x79, 0xe0, 0x40, 0xa3, 0x88, 0xaa, 0x16, 0x4d, 0x4d, 0x22, 0x99, 0x51, 0x32, 0xbd, 0x81,
		0x55, 0x08, 0xb7, 0x13, 0xbf, 0xcd, 0x85, 0x66, 0x0b, 0x81, 0xc9, 0x44, 0x0f, 0x67, 0x3b, 0x31,
		0x19, 0x97, 0x4d, 0x0d, 0xfe, 0xdc, 0x52, 0x7c, 0xd5, 0xf8, 0xed, 0xca, 0xfc, 0x74, 0x95, 0x7e,
		0xb9, 0xea, 0x74, 0x17, 0xd5, 0x6e, 0x37, 0x99, 0x9b, 0x4d, 0xe6, 0x56, 0x13, 0xa4, 0xab, 0xe8,
		0x55, 0xde, 0xca, 0xbc, 0x62, 0x02, 0x2f, 0x58, 0xa5, 0xd7, 0x1b, 0x7b, 0xb9, 0x1f, 0x3f, 0x46,
		0x83, 0x8f, 0xb2, 0xdb, 0x37, 0x86, 0xd1, 0xa3, 0x42, 0xd5, 0xcc, 0x08, 0x52, 0x3a, 0x1b, 0x48,
		0xd1, 0x4c, 0x20, 0x65, 0xb3, 0x80, 0xa0, 0x44, 0xa1, 0x44, 0x19, 0x95, 0xa8, 0xaa, 0x19, 0x3e,
		0x6a, 0xbc, 0x23, 0x0a, 0x2f, 0x89, 0x88, 0xe5, 0x54, 0xce, 0x6e, 0x62, 0xf8, 0x17, 0x86, 0x7f,
		0xa5, 0x88, 0xd5, 0x51, 0xce, 0x49, 0x4e, 0x58, 0xf5, 0x30, 0xf1, 0x43, 0xa1, 0xb4, 0xc6, 0x15,
		0x7d, 0x20, 0x3d, 0xd2, 0x4f, 0x7a, 0xa8, 0xe2, 0xdf, 0xd8, 0x28, 0x0f, 0x05, 0x7c, 0x9b, 0x1e,
		0x6f, 0x5d, 0xfa, 0x96, 0x1b, 0xd8, 0x52, 0x9d, 0xbf, 0x3e, 0x5a, 0x30, 0x61, 0x1e, 0x3b, 0x68,
		0x0f, 0x78, 0xec, 0x7b, 0xe8, 0xb1, 0xb7, 0x46, 0xf2, 0xaf, 0xd8, 0x67, 0x57, 0x3a, 0x9c, 0x99,
		0x6c, 0x64, 0x2f, 0xbc, 0x76, 0x78, 0xed, 0xfb, 0xe7, 0xb5, 0x63, 0x64, 0x2f, 0x03, 0x35, 0x40,
		0xa6, 0x6c, 0x28, 0x95, 0x0e, 0xb5, 0xf2, 0xa1, 0x56, 0x42, 0x6c, 0xca, 0x88, 0x4d, 0x29, 0x31,
		0x28, 0x27, 0xb5, 0x4a, 0x4a, 0xb1, 0xb2, 0xa2, 0xa3, 0x1a, 0x16, 0xca, 0x3a, 0xea, 0x8c, 0xe7,
		0x7e, 0x50, 0x67, 0xbc, 0xda, 0x16, 0xa8, 0x33, 0xde, 0x64, 0x33, 0xd4, 0x19, 0x93, 0xfd, 0xa0,
		0xce, 0x18, 0x02, 0xa3, 0xd1, 0x01, 0xe0, 0x5b, 0x1d, 0x75, 0xc6, 0xd3, 0xe6, 0x14, 0x75, 0xc6,
		0xeb, 0xfa, 0x4f, 0xa8, 0x33, 0x26, 0xdc, 0x14, 0x75, 0xc6, 0xa8, 0x33, 0xde, 0xfc, 0x66, 0xa2,
		0xce, 0x98, 0x6e, 0x4f, 0xd4, 0x19, 0xd3, 0x6e, 0x87, 0x3a, 0x63, 0xd6, 0x55, 0x31, 0xb2, 0x57,
		0x89, 0xfb, 0x88, 0x0a, 0xe3, 0x68, 0x61, 0x54, 0x18, 0xbf, 0x77, 0x98, 0xa8, 0x30, 0xd6, 0xad,
		0xf3, 0x50, 0x61, 0xbc, 0x00, 0x8d, 0x62, 0x64, 0x2f, 0x9f, 0x31, 0xc2, 0xc8, 0xde, 0x5d, 0x31,
		0x43, 0x88, 0xf3, 0x26, 0xd1, 0x0a, 0x21, 0xce, 0x4b, 0x21, 0xeb, 0x18, 0xd9, 0x3b, 0xfb, 0x83,
		0x91, 0xbd, 0xab, 0xed, 0x83, 0x91, 0xbd, 0x1b, 0x89, 0x00, 0x46, 0xf6, 0xa6, 0x44, 0x08, 0xc0,
		0xf3, 0x24, 0xc6, 0xb5, 0xc6, 0xc8, 0x5e, 0xb8, 0xd7, 0x70, 0xaf, 0xe1, 0x5e, 0x63, 0x64, 0xef,
		0x62, 0x9a, 0x07, 0x69, 0x94, 0x8b, 0x9e, 0x3c, 0x46, 0xf6, 0xae, 0xbd, 0x11, 0x46, 0xf6, 0xbe,
		0x7b, 0x0c, 0x18, 0xd9, 0xab, 0xd9, 0x3d, 0x25, 0x46, 0x68, 0x18, 0xd9, 0x9b, 0x50, 0xb5, 0x84,
		0x99, 0xa8, 0x18, 0xd9, 0x9b, 0x74, 0x45, 0x0d, 0xf1, 0xc4, 0xc8, 0x5e, 0xf0, 0x3f, 0x24, 0xfc,
		0x0f, 0x46, 0xf6, 0x82, 0x03, 0x02, 0x07, 0x04, 0x0e, 0xc8, 0x40, 0x29, 0x2d, 0x38, 0xa0, 0x35,
		0x9e, 0x3c, 0x4a, 0x69, 0x13, 0x70, 0x1a, 0xf1, 0x17, 0x41, 0x29, 0x2d, 0x8d, 0xb0, 0xa3, 0x94,
		0x56, 0x95, 0xac, 0xa0, 0x94, 0xd6, 0x48, 0x07, 0xe8, 0xe1, 0x59, 0x1d, 0xdc, 0xe5, 0xb4, 0x39,
		0x45, 0x29, 0xed, 0xba, 0xfe, 0x13, 0x4a, 0x69, 0x09, 0x37, 0x45, 0x29, 0x2d, 0x4a, 0x69, 0x37,
		0xbf, 0x99, 0x28, 0xa5, 0xa5, 0xdb, 0x13, 0xa5, 0xb4, 0xb4, 0xdb, 0xa1, 0x94, 0x96, 0x75, 0x55,
		0x8c, 0xec, 0x55, 0xe5, 0x41, 0x62, 0x64, 0xef, 0x78, 0x61, 0x14, 0xd4, 0xbe, 0x77, 0x98, 0x28,
		0xa8, 0xd5, 0xad, 0xf9, 0x50, 0x50, 0xbb, 0x00, 0x93, 0x62, 0x64, 0x2f, 0x9f, 0x75, 0xc3, 0xc8,
		0x5e, 0xf5, 0xa3, 0x42, 0xa2, 0x79, 0x13, 0x59, 0xa5, 0x1d, 0xe9, 0x0d, 0xce, 0xd9, 0x21, 0xf5,
		0xe1, 0x37, 0x68, 0x46, 0x76, 0x39, 0x29, 0xf3, 0x6b, 0x94, 0x4c, 0x5f, 0x51, 0x31, 0x0a, 0x70,
		0xde, 0xe7, 0x52, 0x38, 0x9d, 0x99, 0x6c, 0xf6, 0x40, 0x01, 0xb3, 0x07, 0x52, 0xe3, 0x3b, 0x61,
		0xf6, 0x00, 0x66, 0x0f, 0x60, 0xf6, 0x00, 0x33, 0x92, 0x43, 0xc2, 0x54, 0x12, 0x81, 0x1c, 0x12,
		0xa6, 0xa8, 0x64, 0x1d, 0x09, 0x53, 0x73, 0x3f, 0x48, 0x98, 0x5a, 0x6d, 0x0b, 0x24, 0x4c, 0x6d,
		0xb2, 0x19, 0x12, 0xa6, 0xc8, 0x7e, 0x90, 0x30, 0x05, 0x81, 0xd1, 0xe8, 0x00, 0xf0, 0xad, 0x8e,
		0x84, 0xa9, 0x69, 0x73, 0x8a, 0x84, 0xa9, 0x75, 0xfd, 0x27, 0x24, 0x4c, 0x11, 0x6e, 0x8a, 0x84,
		0x29, 0x24, 0x4c, 0x6d, 0x7e, 0x33, 0x91, 0x30, 0x45, 0xb7, 0x27, 0x12, 0xa6, 0x68, 0xb7, 0x43,
		0xc2, 0x14, 0xeb, 0xaa, 0x98, 0x3d, 0xa0, 0xc4, 0x7d, 0x44, 0xaa, 0x54, 0xb4, 0x30, 0x52, 0xa5,
		0xde, 0x3b, 0x4c, 0xa4, 0x4a, 0xe9, 0xd6, 0x79, 0x48, 0x95, 0x5a, 0x80, 0x46, 0x31, 0x7b, 0x80,
		0xcf, 0x18, 0x61, 0xf6, 0xc0, 0xae, 0x98, 0x21, 0xc4, 0x79, 0x93, 0x68, 0x85, 0x10, 0xe7, 0xa5,
		0x90, 0x75, 0xcc, 0x1e, 0x98, 0xfd, 0xc1, 0xec, 0x81, 0xd5, 0xf6, 0xc1, 0xec, 0x81, 0x8d, 0x44,
		0x00, 0xb3, 0x07, 0x52, 0x22, 0x04, 0xe0, 0x79, 0x12, 0xe3, 0x5a, 0x63, 0xf6, 0x00, 0xdc, 0x6b,
		0xb8, 0xd7, 0x70, 0xaf, 0x31, 0x7b, 0x60, 0x31, 0xcd, 0x83, 0x34, 0xca, 0x45, 0x4f, 0x1e, 0xb3,
		0x07, 0xd6, 0xde, 0x08, 0xb3, 0x07, 0xde, 0x3d, 0x06, 0xcc, 0x1e, 0xd0, 0xec, 0x9e, 0x12, 0x23,
		0x34, 0xcc, 0x1e, 0x48, 0xa8, 0x5a, 0x42, 0x73, 0x77, 0xcc, 0x1e, 0x48, 0xba, 0xa2, 0x86, 0x78,
		0x62, 0xf6, 0x00, 0xf8, 0x1f, 0x12, 0xfe, 0x07, 0xb3, 0x07, 0xc0, 0x01, 0x81, 0x03, 0x02, 0x07,
		0x64, 0xa0, 0x94, 0x16, 0x1c, 0xd0, 0x1a, 0x4f, 0x1e, 0xa5, 0xb4, 0x09, 0x38, 0x8d, 0xf8, 0x8b,
		0xa0, 0x94, 0x96, 0x46, 0xd8, 0x51, 0x4a, 0xab, 0x4a, 0x56, 0x50, 0x4a, 0x6b, 0xa4, 0x03, 0xf4,
		0xf0, 0xac, 0x0e, 0xee, 0x72, 0xda, 0x9c, 0xa2, 0x94, 0x76, 0x5d, 0xff, 0x09, 0xa5, 0xb4, 0x84,
		0x9b, 0xa2, 0x94, 0x16, 0xa5, 0xb4, 0x9b, 0xdf, 0x4c, 0x94, 0xd2, 0xd2, 0xed, 0x89, 0x52, 0x5a,
		0xda, 0xed, 0x50, 0x4a, 0xcb, 0xba, 0x2a, 0x66, 0x0f, 0xa8, 0xf2, 0x20, 0x31, 0x7b, 0x60, 0xbc,
		0x30, 0x0a, 0x6a, 0xdf, 0x3b, 0x4c, 0x14, 0xd4, 0xea, 0xd6, 0x7c, 0x28, 0xa8, 0x5d, 0x80, 0x49,
		0x31, 0x7b, 0x80, 0xcf, 0xba, 0x61, 0xf6, 0x00, 0xdd, 0xec, 0x01, 0x95, 0x0d, 0xe9, 0x0d, 0x1d,
		0xa3, 0x07, 0xee, 0xc3, 0x2f, 0x90, 0x94, 0xc9, 0x03, 0x07, 0x1a, 0x45, 0x54, 0xb5, 0x68, 0x6a,
		0x12, 0xc9, 0x8c, 0x92, 0xe9, 0x0d, 0xac, 0x42, 0xb8, 0x9d, 0xf8, 0x6d, 0x2e, 0x34, 0x9b, 0xbd,
		0x73, 0x43, 0x31, 0x1b, 0xb8, 0x62, 0x61, 0x85, 0xd4, 0xe0, 0xa9, 0x6e, 0xb8, 0xc4, 0x95, 0x1d,
		0xc8, 0x73, 0x29, 0xb7, 0x6b, 0xb4, 0x9f, 0xb9, 0xb6, 0xdd, 0xaa, 0x23, 0x06, 0x3e, 0xd4, 0x96,
		0xd1, 0x92, 0xcc, 0xb5, 0xf5, 0x3a, 0xb1, 0x52, 0xfe, 0xa4, 0x58, 0x2c, 0x57, 0x8a, 0xc5, 0x5c,
		0xe5, 0xb8, 0x92, 0x3b, 0x2d, 0x95, 0xf2, 0xe5, 0xfc, 0x16, 0x31, 0xa0, 0xcc, 0xad, 0xdf, 0x16,
		0xbe, 0x68, 0xff, 0x36, 0x78, 0x6a, 0x6e, 0xcf, 0x71, 0x54, 0x2c, 0xf5, 0x10, 0x08, 0x7f, 0xab,
		0x70, 0xcd, 0xa6, 0x87, 0xaf, 0x48, 0xb7, 0x30, 0xeb, 0x94, 0x2d, 0x74, 0x09, 0x97, 0x0e, 0xd9,
		0x4c, 0x77, 0xac, 0x7f, 0xf3, 0xd7, 0x7b, 0xc7, 0x9a, 0x62, 0xb2, 0xad, 0x78, 0x70, 0x88, 0xc5,
		0x06, 0xb2, 0x40, 0x2b, 0x03, 0xeb, 0x9d, 0xfc, 0xea, 0xe7, 0xb7, 0xc6, 0xd9, 0x65, 0x7a, 0x83,
		0x2f, 0x14, 0x48, 0xdf, 0xb2, 0x5d, 0xd1, 0x36, 0xa3, 0xe7, 0xbf, 0xde, 0xf9, 0x8d, 0x93, 0x6c,
		0xe6, 0xd7, 0x5a, 0x53, 0x8a, 0x36, 0x1b, 0x68, 0xb4, 0x31, 0x33, 0xb3, 0x0d, 0xf3, 0x32, 0xc9,
		0xac, 0x6c, 0x98, 0xc3, 0xb8, 0x2d, 0x77, 0xa2, 0x8c, 0x1b, 0x51, 0xc6, 0x7d, 0xcc, 0x72, 0x1b,
		0x9b, 0xa5, 0x11, 0xd2, 0x6a, 0xaa, 0x4d, 0xc7, 0xfc, 0x64, 0x06, 0x02, 0x6d, 0x06, 0x42, 0xf6,
		0xba, 0x66, 0xd7, 0xf7, 0xa4, 0xd7, 0xf2, 0x36, 0x4f, 0x42, 0x1e, 0x27, 0x1b, 0x2f, 0x58, 0x74,
		0x53, 0xf7, 0x6c, 0xab, 0x69, 0x60, 0x5b, 0xd3, 0x9b, 0x2a, 0x68, 0x4c, 0x05, 0x97, 0x4a, 0x35,
		0x31, 0xa9, 0x9c, 0x80, 0x54, 0x4e, 0x34, 0xaa, 0xb9, 0x74, 0x7a, 0x20, 0xc5, 0xb6, 0x33, 0xb7,
		0x32, 0x4e, 0x7b, 0xfb, 0x5e, 0x10, 0x63, 0xda, 0xb0, 0xbd, 0x6d, 0xdb, 0x07, 0x45, 0x23, 0xf9,
		0x94, 0xc5, 0x1a, 0x54, 0xc6, 0x16, 0x26, 0x2f, 0xe7, 0xf6, 0x4f, 0xca, 0x20, 0x08, 0x1e, 0x90,
		0x05, 0x0b, 0xc8, 0x82, 0x03, 0xb3, 0x77, 0x77, 0xf0, 0x5c, 0x41, 0x42, 0xb1, 0x20, 0x83, 0x79,
		0x6f, 0x35, 0xbb, 0xc0, 0x18, 0x67, 0x15, 0x49, 0x3a, 0x01, 0x90, 0x78, 0x98, 0xfc, 0x02, 0x35,
		0x4b, 0x3e, 0x37, 0x07, 0xff, 0x77, 0x3f, 0xf8, 0xf8, 0xb5, 0xe8, 0xd3, 0x37, 0xaf, 0xb6, 0x95,
		0xa7, 0xb4, 0x70, 0x53, 0x49, 0xa7, 0x27, 0x56, 0x93, 0xb6, 0x84, 0xd1, 0x15, 0x2b, 0x48, 0x18,
		0xd8, 0x0b, 0x5e, 0xa9, 0x49, 0x08, 0x89, 0x31, 0x27, 0x19, 0x64, 0x5c, 0xc6, 0x81, 0xc2, 0xf3,
		0xde, 0xf4, 0x9c, 0xa9, 0xce, 0x77, 0x8d, 0xc3, 0x24, 0x38, 0xc4, 0xd5, 0x8e, 0xec, 0xd7, 0x07,
		0xb0, 0xc2, 0xc3, 0xcf, 0x04, 0xf6, 0x93, 0x6b, 0x39, 0xb6, 0xfb, 0x14, 0xab, 0xba, 0x60, 0xe5,
		0x13, 0x18, 0xe7, 0x0c, 0x2d, 0x58, 0x64, 0xc5, 0x83, 0x5f, 0xcf, 0x2d, 0x5f, 0xdb, 0xfd, 0xde,
		0xc4, 0xcd, 0xde, 0x02, 0xeb, 0x6e, 0xea, 0x37, 0x6f, 0xed, 0x1f, 0x6f, 0xed, 0x07, 0x6f, 0x87,
		0x55, 0xd5, 0x2a, 0x83, 0x75, 0xb1, 0xe7, 0x46, 0x58, 0x73, 0x0b, 0x6c, 0x99, 0x56, 0x36, 0x74,
		0x33, 0x8f, 0x79, 0xf7, 0xc9, 0xd0, 0x8d, 0xb0, 0x5d, 0x42, 0xb9, 0xd0, 0x27, 0xc7, 0x7b, 0xb4,
		0x14, 0xd0, 0x9f, 0xd1, 0x3a, 0x60, 0x3c, 0xb7, 0x27, 0x55, 0xf6, 0x97, 0xf0, 0xdc, 0x8a, 0x34,
		0x49, 0x19, 0xdf, 0x69, 0xf5, 0xe4, 0xb3, 0x70, 0xa5, 0xdd, 0x52, 0xc3, 0xb0, 0xc4, 0xe2, 0x37,
		0xb3, 0x2e, 0x58, 0x50, 0xb0, 0xa0, 0x60, 0x41, 0xb7, 0xf8, 0x46, 0xdb, 0x5e, 0xf4, 0x78, 0xa1,
		0xd6, 0xe8, 0x0e, 0x28, 0x12, 0x8e, 0x91, 0xf8, 0x46, 0xeb, 0x2a, 0x3a, 0x40, 0x35, 0x17, 0x5e,
		0xf9, 0xc5, 0xa7, 0x50, 0x00, 0x74, 0x8a, 0x80, 0x4a, 0x21, 0x90, 0x2b, 0x06, 0x72, 0x05, 0x41,
		0xaa, 0x28, 0xd4, 0x28, 0x0c, 0x45, 0x8a, 0x43, 0xb9, 0x02, 0x59, 0xe2, 0x39, 0x98, 0xdf, 0xc2,
		0x64, 0x4e, 0xa2, 0xea, 0xae, 0x05, 0x7b, 0xa1, 0xc6, 0x8b, 0xa3, 0xc6, 0x4b, 0xad, 0x22, 0xa2,
		0x56, 0x48, 0x6c, 0x8a, 0x89, 0x4d, 0x41, 0xb1, 0x28, 0x2a, 0xb5, 0x0a, 0x4b, 0xb1, 0xe2, 0x8a,
		0x9f, 0x00, 0x7d, 0x95, 0x97, 0xef, 0xf5, 0x64, 0xc8, 0x06, 0x5b, 0x41, 0x10, 0x8a, 0x0f, 0x61,
		0xb9, 0xd7, 0x49, 0xa2, 0x9f, 0xb5, 0x78, 0x95, 0xbe, 0x65, 0xf6, 0xdc, 0x40, 0x5a, 0x8f, 0x0e,
		0xd1, 0x53, 0xf7, 0x45, 0x47, 0xf8, 0xc2, 0x6d, 0xa5, 0xba, 0x0f, 0xdc, 0xdd, 0xe7, 0x4f, 0xf9,
		0xe3, 0x42, 0xde, 0xa8, 0x3f, 0x0b, 0xe3, 0xfa, 0xa2, 0x64, 0x5c, 0x8b, 0x20, 0xb0, 0x9e, 0x84,
		0x79, 0x61, 0x3f, 0x89, 0x40, 0x1a, 0xe7, 0xce, 0x93, 0xe7, 0xdb, 0xf2, 0xf9, 0xe5, 0xab, 0x7b,
		0xf7, 0xf9, 0x53, 0x29, 0x77, 0x5c, 0x36, 0xae, 0x2e, 0x6a, 0xc6, 0x7d, 0x57, 0xb4, 0xec, 0x8e,
		0x1a, 0x6c, 0xac, 0x53, 0xcf, 0x2e, 0xd2, 0xb7, 0xe3, 0x63, 0x25, 0x6e, 0xb4, 0xc1, 0xa5, 0x7a,
		0x17, 0xaa, 0x60, 0x15, 0xe7, 0x8e, 0xee, 0x07, 0x7b, 0xd0, 0xfd, 0x40, 0xb8, 0x24, 0x1a, 0x74,
		0xa2, 0x73, 0x56, 0xb8, 0xbe, 0x62, 0xfd, 0x7f, 0x21, 0x3a, 0x56, 0xcf, 0x91, 0x24, 0x9a, 0x39,
		0x13, 0xd6, 0x1a, 0xa9, 0x95, 0xfe, 0x06, 0xd0, 0x00, 0xd0, 0x00, 0xd0, 0x00, 0xd0, 0x80, 0x42,
		0x79, 0x7f, 0xf4, 0x3c, 0x47, 0x58, 0x2e, 0x25, 0x08, 0xc8, 0xa3, 0x41, 0xc2, 0x2a, 0xc2, 0x9e,
		0x9e, 0x06, 0x09, 0x0b, 0x32, 0x8a, 0xb2, 0x4e, 0xbb, 0x9b, 0x1d, 0x86, 0xa5, 0xb3, 0xd3, 0x34,
		0x56, 0x56, 0x29, 0x65, 0x6e, 0xa8, 0x4f, 0xea, 0xba, 0x1f, 0x7d, 0x9b, 0x51, 0x72, 0x66, 0xd0,
		0xbc, 0x6a, 0x77, 0x9b, 0xbf, 0x87, 0x5f, 0xa6, 0x79, 0x3e, 0xf5, 0x65, 0x9a, 0x91, 0x6d, 0x4b,
		0x4a, 0xdf, 0x04, 0x25, 0x29, 0xd6, 0x96, 0x14, 0xea, 0x03, 0x25, 0x2a, 0x1b, 0x64, 0x90, 0xc5,
		0x49, 0x0a, 0x88, 0x93, 0xa4, 0xc8, 0x01, 0x41, 0x9c, 0x04, 0x71, 0x12, 0xc4, 0x49, 0x80, 0x8c,
		0x80, 0x8c, 0x80, 0x8c, 0x10, 0x27, 0x61, 0x7c, 0xd6, 0x88, 0x93, 0xac, 0x28, 0x32, 0x88, 0x93,
		0x18, 0x88, 0x93, 0x20, 0x4e, 0xb2, 0xd9, 0x0f, 0xe2, 0x24, 0xdb, 0x2b, 0x20, 0xc4, 0x49, 0x0c,
		0xc4, 0x49, 0x80, 0x06, 0x80, 0x06, 0x80, 0x06, 0x14, 0xcb, 0x3b, 0xe2, 0x24, 0x09, 0x61, 0xae,
		0x76, 0x36, 0x4e, 0x92, 0xf0, 0x96, 0xd2, 0x6b, 0x85, 0x49, 0xd0, 0x5d, 0x9a, 0x4a, 0x5e, 0xb5,
		0xcb, 0x69, 0xf2, 0xda, 0xfa, 0xac, 0x23, 0x99, 0xda, 0xda, 0xfa, 0x6c, 0x51, 0xa1, 0xaa, 0xa8,
		0x96, 0x49, 0x6d, 0x0d, 0x13, 0x8a, 0x15, 0x75, 0x3a, 0xb5, 0x28, 0x56, 0x4c, 0x80, 0x66, 0x57,
		0x56, 0xac, 0xe8, 0x04, 0xbe, 0x69, 0xb7, 0xd5, 0xc7, 0xe0, 0xa3, 0x75, 0xd5, 0x06, 0xe1, 0x73,
		0x28, 0x56, 0x4c, 0x30, 0xca, 0x45, 0x10, 0x3e, 0x45, 0x50, 0x46, 0x39, 0x6a, 0x8d, 0xe5, 0xd5,
		0xee, 0x9a, 0x56, 0xbb, 0xed, 0x8b, 0x20, 0x50, 0x29, 0xb3, 0x23, 0x93, 0x7f, 0xaa, 0x70, 0xcd,
		0xe8, 0x19, 0xa8, 0x25, 0x16, 0x09, 0x79, 0x00, 0xbb, 0xfb, 0xbd, 0x48, 0xf0, 0x6c, 0xe7, 0x9e,
		0xf1, 0x09, 0xcd, 0xa0, 0x2c, 0x29, 0x7c, 0x97, 0x2c, 0xc2, 0x96, 0x39, 0xfc, 0x92, 0x33, 0x4f,
		0x1b, 0x6f, 0x5f, 0xf2, 0xe6, 0x69, 0x63, 0xf8, 0xd7, 0x7c, 0xf8, 0xc7, 0xcf, 0x42, 0xff, 0xad,
		0xf0, 0x25, 0x67, 0x16, 0xa3, 0x57, 0x0b, 0xa5, 0x2f, 0x39, 0xb3, 0xd4, 0x38, 0x3a, 0xfc, 0xfa,
		0xf5, 0xe3, 0xba, 0xef, 0x39, 0xfa, 0x79, 0xdc, 0x57, 0x4f, 0x6f, 0x35, 0x28, 0x1e, 0xf7, 0xed,
		0xfd, 0xe5, 0x9f, 0xe4, 0xcf, 0xfc, 0x3f, 0x87, 0x5c, 0x4f, 0xfd, 0xe8, 0x6f, 0x99, 0xa4, 0x07,
		0x7d, 0x3e, 0xa4, 0x48, 0x8d, 0x94, 0xa1, 0x46, 0x96, 0xa9, 0x91, 0x50, 0x3a, 0x2d, 0xb3, 0x73,
		0x6e, 0x7e, 0x6e, 0xfc, 0xcc, 0x7f, 0x28, 0xf6, 0xcf, 0x8e, 0x7e, 0x56, 0xfa, 0xb3, 0x2f, 0xbe,
		0x2d, 0xfa, 0xb5, 0xfc, 0x87, 0x4a, 0xff, 0x6c, 0xc9, 0xbf, 0x94, 0xfb, 0x67, 0x2b, 0xae, 0x51,
		0xea, 0x1f, 0xce, 0xfd, 0xea, 0xe0, 0xf5, 0xc2, 0xb2, 0x37, 0x14, 0x97, 0xbc, 0xe1, 0x78, 0xd9,
		0x1b, 0x8e, 0x97, 0xbc, 0x61, 0xe9, 0x47, 0x2a, 0x2c, 0x79, 0x43, 0xa9, 0xff, 0x36, 0xf7, 0xfb,
		0x87, 0x8b, 0x7f, 0xb5, 0xdc, 0x3f, 0x7a, 0x5b, 0xf6, 0x6f, 0x95, 0xfe, 0xdb, 0xd9, 0xd1, 0x11,
		0x14, 0xeb, 0x9c, 0x62, 0x85, 0x18, 0xf2, 0x8b, 0x61, 0xf2, 0x0d, 0xcd, 0x41, 0xb2, 0x3e, 0x97,
		0x2a, 0x44, 0x42, 0x98, 0xe9, 0x45, 0x98, 0xe1, 0x45, 0x68, 0xa7, 0x39, 0xf3, 0xb4, 0x38, 0x23,
		0xdf, 0xd4, 0x79, 0x59, 0x7a, 0x82, 0xdf, 0x8c, 0xd9, 0x55, 0xfd, 0xdd, 0xd6, 0x27, 0x08, 0xba,
		0x4d, 0xad, 0xc7, 0x1f, 0x74, 0x53, 0x56, 0x35, 0xc7, 0x1a, 0x6c, 0x53, 0x51, 0x1e, 0xa7, 0x27,
		0xc8, 0xf6, 0xe4, 0x5b, 0x2d, 0xd1, 0xe9, 0x39, 0xa6, 0x2f, 0x02, 0x69, 0xf9, 0x52, 0x5d, 0xb8,
		0x6d, 0x6e, 0x65, 0x04, 0xde, 0xf8, 0xf8, 0x76, 0x04, 0xde, 0x10, 0x78, 0x5b, 0xbe, 0x10, 0xba,
		0x84, 0x2a, 0x81, 0xe3, 0x08, 0xbc, 0x21, 0xf0, 0xc6, 0xe2, 0xe0, 0x26, 0xb6, 0xfa, 0x75, 0x98,
		0x77, 0xdf, 0xa6, 0x4e, 0xec, 0x6f, 0x23, 0xb3, 0x1f, 0x99, 0xfd, 0xc8, 0xec, 0xd7, 0xa5, 0x82,
		0xf5, 0x92, 0x1b, 0xc8, 0xec, 0xa7, 0x91, 0xf7, 0x7d, 0xce, 0xec, 0x57, 0xe8, 0x57, 0x75, 0x3c,
		0xff, 0x2f, 0xcb, 0x6f, 0xdb, 0xee, 0x93, 0xf9, 0xec, 0x39, 0x6d, 0x69, 0xbf, 0x10, 0xd6, 0xb9,
		0x2d, 0xda, 0x0c, 0xa6, 0x01, 0xa6, 0x01, 0xa6, 0x01, 0xa6, 0x41, 0xa1, 0xbc, 0xf7, 0x6c, 0x57,
		0xe6, 0xcb, 0x84, 0x96, 0xa1, 0x4c, 0xb0, 0xf4, 0x9d, 0xe5, 0x3e, 0xa5, 0xb2, 0x8b, 0xc2, 0xb5,
		0xed, 0xd2, 0xf7, 0x26, 0xf8, 0xc3, 0x72, 0x7a, 0x42, 0xbd, 0xfa, 0x9d, 0xdb, 0xe7, 0xb3, 0x6f,
		0xb5, 0xa4, 0xed, 0xb9, 0x17, 0xf6, 0x93, 0x2d, 0x03, 0x86, 0x0d, 0x6f, 0xc4, 0x93, 0x25, 0xed,
		0xef, 0x83, 0xef, 0x16, 0x02, 0x2f, 0xba, 0x7e, 0x02, 0x84, 0x1d, 0x2a, 0xae, 0xad, 0x57, 0x3e,
		0x11, 0x28, 0x97, 0x4a, 0xc7, 0x25, 0x88, 0x41, 0x22, 0x6c, 0x03, 0xdd, 0xaa, 0x0d, 0xb4, 0xd6,
		0xd9, 0x91, 0xd6, 0x3a, 0xc7, 0xc5, 0xca, 0x89, 0xf1, 0x7b, 0x14, 0x4d, 0x33, 0xee, 0x86, 0xd1,
		0x34, 0xe3, 0x5a, 0xb4, 0x9e, 0x2d, 0xd7, 0x0e, 0x5e, 0x8c, 0x8e, 0xe7, 0x1b, 0x57, 0xd6, 0xa3,
		0x70, 0xbe, 0xba, 0x17, 0x76, 0x20, 0x7d, 0xfb, 0xb1, 0x37, 0xb8, 0x7a, 0x46, 0x6d, 0xfb, 0x31,
		0xf1, 0xba, 0xfd, 0xd7, 0x45, 0x7e, 0xec, 0xde, 0xb4, 0xd6, 0xd9, 0xfa, 0xdc, 0xa1, 0x03, 0xf7,
		0x80, 0x7f, 0x78, 0x16, 0x4e, 0x57, 0xf8, 0x26, 0x75, 0x87, 0x9d, 0xe9, 0x6d, 0xc0, 0x39, 0x80,
		0x73, 0x00, 0xe7, 0x00, 0xce, 0x41, 0xa1, 0xbc, 0x83, 0x8e, 0x56, 0xe4, 0xf4, 0xb6, 0x3c, 0xd7,
		0x15, 0x2d, 0x69, 0xd2, 0x32, 0xd1, 0x33, 0xfb, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20,
		0x28, 0x94, 0x77, 0x90, 0xd0, 0x9c, 0x7c, 0x03, 0x48, 0xe8, 0xad, 0x64, 0x16, 0x24, 0xf4, 0x9a,
		0x22, 0x00, 0x12, 0x1a, 0x04, 0x8c, 0x6e, 0x1b, 0x06, 0x12, 0x7a, 0x45, 0x53, 0x0c, 0x12, 0xda,
		0x00, 0x09, 0x0d, 0x12, 0x3a, 0x11, 0x3a, 0x30, 0xb1, 0xac, 0xc3, 0x77, 0xe1, 0xff, 0x60, 0x20,
		0x1d, 0xc6, 0xdb, 0x80, 0x73, 0x00, 0xe7, 0x00, 0xce, 0x01, 0x9c, 0x03, 0x38, 0x07, 0x70, 0x0e,
		0xe0, 0x1c, 0xc0, 0x39, 0x80, 0x73, 0x00, 0xe7, 0x00, 0xce, 0x01, 0x9c, 0x03, 0x38, 0x07, 0x70,
		0x0e, 0xd0, 0x81, 0xc9, 0xe4, 0x1c, 0x30, 0x52, 0x87, 0xa4, 0x6b, 0xd2, 0x6c, 0xaf, 0x9d, 0xac,
		0xd2, 0x4e, 0x1c, 0x06, 0x77, 0x3b, 0xa5, 0xd1, 0xdd, 0x8f, 0xae, 0xbe, 0x92, 0xf6, 0x4a, 0xea,
		0x44, 0xb0, 0xaf, 0xa4, 0x39, 0x95, 0x25, 0x85, 0xfa, 0x06, 0x2c, 0x2a, 0x67, 0x29, 0x91, 0xf5,
		0x5f, 0x29, 0xa0, 0xff, 0x4a, 0x8a, 0x88, 0x2e, 0xf4, 0x5f, 0x41, 0xff, 0x15, 0xf4, 0x5f, 0x41,
		0xac, 0x01, 0xb1, 0x06, 0x6d, 0x2a, 0x98, 0x1d, 0x98, 0x21, 0xd6, 0x80, 0x84, 0x77, 0x52, 0x18,
		0x88, 0xfe, 0x2b, 0x30, 0x0d, 0x30, 0x0d, 0x30, 0x0d, 0x30, 0x0d, 0x0b, 0xe5, 0x1d, 0x61, 0xe8,
		0xb9, 0x1f, 0x84, 0xa1, 0x57, 0xdb, 0x07, 0x61, 0xe8, 0x8d, 0x44, 0x00, 0x61, 0xe8, 0xd4, 0x88,
		0x01, 0xc2, 0xd0, 0x2a, 0x88, 0x23, 0x84, 0xa1, 0x57, 0x33, 0xc5, 0x08, 0x43, 0x1b, 0x08, 0x43,
		0x23, 0x0c, 0x9d, 0x08, 0x1d, 0x88, 0xfe, 0x2b, 0xe8, 0xbf, 0x02, 0xce, 0x01, 0x9c, 0x03, 0x38,
		0x07, 0x02, 0x79, 0x07, 0x1d, 0xad, 0xc8, 0xe9, 0x45, 0xff, 0x15, 0x18, 0x04, 0x18, 0x04, 0x18,
		0x84, 0xb4, 0x1b, 0x04, 0x90, 0xd0, 0x9c, 0x7c, 0x03, 0x48, 0xe8, 0xad, 0x64, 0x16, 0x24, 0xf4,
		0x9a, 0x22, 0x00, 0x12, 0x1a, 0x04, 0x8c, 0x6e, 0x1b, 0x06, 0x12, 0x7a, 0x45, 0x53, 0x0c, 0x12,
		0xda, 0x00, 0x09, 0x0d, 0x12, 0x3a, 0x11, 0x3a, 0x10, 0xfd, 0x57, 0xd0, 0x7f, 0x05, 0x9c, 0x03,
		0x38, 0x07, 0x70, 0x0e, 0xe0, 0x1c, 0xc0, 0x39, 0x80, 0x73, 0x00, 0xe7, 0x00, 0xce, 0x01, 0x9c,
		0x03, 0x38, 0x07, 0x70, 0x0e, 0xe0, 0x1c, 0xc0, 0x39, 0x80, 0x73, 0x48, 0x36, 0xe7, 0x80, 0xfe,
		0x2b, 0x3c, 0xfd, 0x57, 0x54, 0x36, 0xe2, 0x30, 0x74, 0xb7, 0x5f, 0xb9, 0x0f, 0xbf, 0x4c, 0x52,
		0xba, 0xaf, 0x1c, 0x68, 0x14, 0x5d, 0xd5, 0x22, 0x9b, 0x00, 0x51, 0xcd, 0x28, 0xe9, 0x66, 0xa3,
		0x4d, 0x38, 0xb7, 0x13, 0xcb, 0xcd, 0x85, 0x69, 0x0b, 0x41, 0x52, 0xd4, 0xfc, 0x47, 0x69, 0xd3,
		0x1f, 0x45, 0xcd, 0x7e, 0x94, 0x35, 0xf9, 0x51, 0xc9, 0xae, 0xaa, 0x67, 0x53, 0x55, 0x7b, 0x9f,
		0x64, 0x6c, 0x29, 0x99, 0x2b, 0x49, 0xc2, 0x86, 0xea, 0x55, 0xed, 0xaa, 0x9a, 0xf3, 0x64, 0x9c,
		0xc0, 0x37, 0xed, 0xb6, 0xfa, 0xe6, 0x5e, 0xd1, 0xba, 0x6a, 0xbb, 0x7b, 0xe5, 0x54, 0x77, 0xf7,
		0xca, 0xa1, 0xbb, 0x17, 0x0d, 0xfc, 0x44, 0x77, 0xaf, 0x84, 0xc3, 0x19, 0xe5, 0xe1, 0x91, 0x58,
		0x5e, 0xed, 0xae, 0x69, 0xb5, 0xdb, 0xbe, 0x08, 0x02, 0x95, 0x32, 0x3b, 0x32, 0xf9, 0xa7, 0x0a,
		0xd7, 0x8c, 0x9e, 0x81, 0x5a, 0xd6, 0x8b, 0x30, 0xe0, 0x64, 0x77, 0xbf, 0x17, 0x09, 0x9e, 0xed,
		0xdc, 0x33, 0x3e, 0x21, 0x58, 0xbb, 0x66, 0x49, 0x29, 0x7c, 0x97, 0x8c, 0x64, 0xcc, 0x1c, 0x7e,
		0xc9, 0x99, 0xa7, 0x8d, 0xb7, 0x2f, 0x79, 0xf3, 0xb4, 0x31, 0xfc, 0x6b, 0x3e, 0xfc, 0xe3, 0x67,
		0xa1, 0xff, 0x56, 0xf8, 0x92, 0x33, 0x8b, 0xd1, 0xab, 0x85, 0xd2, 0x97, 0x9c, 0x59, 0x6a, 0x1c,
		0x1d, 0x7e, 0xfd, 0xfa, 0x71, 0xdd, 0xf7, 0x1c, 0xfd, 0x3c, 0xee, 0xab, 0xe7, 0x8b, 0x1a, 0x14,
		0x8f, 0xfb, 0xf6, 0xfe, 0xf2, 0x4f, 0xf2, 0x67, 0xfe, 0x9f, 0x43, 0xae, 0xa7, 0x7e, 0xf4, 0xb7,
		0xcc, 0x7e, 0x71, 0xff, 0xb4, 0x6a, 0xa4, 0x0c, 0x35, 0xb2, 0x4c, 0x8d, 0x84, 0xd2, 0x69, 0x99,
		0x9d, 0x73, 0xf3, 0x73, 0xe3, 0x67, 0xfe, 0x43, 0xb1, 0x7f, 0x76, 0xf4, 0xb3, 0xd2, 0x9f, 0x7d,
		0xf1, 0x6d, 0xd1, 0xaf, 0xe5, 0x3f, 0x54, 0xfa, 0x67, 0x4b, 0xfe, 0xa5, 0xdc, 0x3f, 0x5b, 0x71,
		0x8d, 0x52, 0xff, 0x70, 0xee, 0x57, 0x07, 0xaf, 0x17, 0x96, 0xbd, 0xa1, 0xb8, 0xe4, 0x0d, 0xc7,
		0xcb, 0xde, 0x70, 0xbc, 0xe4, 0x0d, 0x4b, 0x3f, 0x52, 0x61, 0xc9, 0x1b, 0x4a, 0xfd, 0xb7, 0xb9,
		0xdf, 0x3f, 0x5c, 0xfc, 0xab, 0xe5, 0xfe, 0xd1, 0xdb, 0xb2, 0x7f, 0xab, 0xf4, 0xdf, 0xce, 0x8e,
		0x8e, 0xa0, 0x58, 0xe7, 0x14, 0x2b, 0xc4, 0x90, 0x5f, 0x0c, 0x93, 0x6f, 0x68, 0x0e, 0x92, 0xf5,
		0xb9, 0x54, 0x21, 0x12, 0xc2, 0x60, 0x37, 0x61, 0x90, 0x9b, 0xd0, 0x4e, 0xdf, 0x7d, 0xfe, 0x54,
		0xca, 0x1d, 0x97, 0x8d, 0xab, 0x8b, 0x9a, 0x71, 0xdf, 0x15, 0x2d, 0xbb, 0x63, 0xb7, 0x86, 0x6c,
		0x7e, 0xba, 0x53, 0x2c, 0xa9, 0x43, 0xd3, 0x7a, 0xb2, 0x2c, 0x97, 0x9f, 0x56, 0xd2, 0x13, 0x2f,
		0x93, 0xa6, 0x4f, 0x10, 0x75, 0x9b, 0x5a, 0x8f, 0x3f, 0xea, 0xa6, 0x2a, 0x1e, 0xcc, 0x1a, 0x6a,
		0x53, 0x10, 0xf7, 0xdd, 0x22, 0xc0, 0x76, 0xc0, 0x28, 0x69, 0xaa, 0x24, 0x8c, 0x5f, 0xb2, 0x32,
		0x5b, 0xc5, 0x21, 0xd9, 0x64, 0x69, 0x33, 0x29, 0x5a, 0x5f, 0x06, 0x36, 0x38, 0xff, 0x8c, 0xed,
		0x4a, 0xe1, 0x77, 0xac, 0x96, 0x30, 0x2d, 0x39, 0x4c, 0x66, 0x12, 0xc1, 0xc6, 0x52, 0x30, 0xa6,
		0x04, 0x16, 0xad, 0xba, 0xa1, 0x74, 0x6e, 0x17, 0x9c, 0xdd, 0x3a, 0x36, 0xa3, 0x22, 0x16, 0xa3,
		0x2e, 0xf6, 0xa2, 0xca, 0xaf, 0x52, 0x1e, 0x5b, 0x51, 0xee, 0x24, 0x29, 0x8d, 0x9d, 0xf0, 0xea,
		0xd3, 0x6d, 0x83, 0xa9, 0x99, 0xd6, 0x48, 0x66, 0x15, 0x25, 0x49, 0x28, 0x19, 0x88, 0xa5, 0x3c,
		0x4b, 0x22, 0x87, 0x2c, 0x09, 0x8d, 0x17, 0x96, 0x1c, 0xdd, 0x20, 0x4b, 0x62, 0xf9, 0x42, 0xcf,
		0xc2, 0x71, 0x3c, 0xf5, 0x23, 0x1b, 0x26, 0x1b, 0x26, 0x4e, 0xae, 0x8f, 0xac, 0x89, 0xe4, 0x28,
		0x06, 0x6a, 0x86, 0x04, 0x59, 0x13, 0x0c, 0xec, 0x44, 0xf2, 0xb3, 0x26, 0x94, 0x17, 0x93, 0x12,
		0x14, 0x91, 0x12, 0x15, 0x8f, 0x12, 0x50, 0xa8, 0x94, 0xc5, 0xa2, 0xd4, 0x45, 0xa2, 0x6c, 0x55,
		0x81, 0xf4, 0xd5, 0x80, 0x04, 0xc5, 0xa0, 0xa4, 0x45, 0xa0, 0x1c, 0xc5, 0x9f, 0xbb, 0x74, 0xbc,
		0x88, 0x6b, 0xad, 0x70, 0x0c, 0x88, 0x6b, 0xcd, 0x98, 0x3a, 0xc4, 0xb5, 0x12, 0xea, 0xc8, 0x2d,
		0x74, 0xe8, 0x10, 0xd7, 0x4a, 0x4e, 0x5c, 0xeb, 0x83, 0x2a, 0x24, 0x1b, 0xf2, 0xbd, 0xdf, 0x2d,
		0x87, 0x0a, 0xc9, 0xc6, 0xeb, 0x03, 0xc9, 0x02, 0xc9, 0x02, 0xc9, 0x02, 0xc9, 0x02, 0xc9, 0x02,
		0xc9, 0x02, 0xc9, 0x02, 0xc9, 0x02, 0xc9, 0xa6, 0xd3, 0xf3, 0x44, 0x46, 0xd5, 0x66, 0x79, 0x2f,
		0x8b, 0x12, 0x2b, 0xb2, 0x4a, 0xc2, 0xbb, 0x06, 0x5b, 0x52, 0xcc, 0xe5, 0xe8, 0x3b, 0x9c, 0xc7,
		0x5f, 0xa1, 0x19, 0x79, 0xd0, 0x29, 0xec, 0x67, 0x10, 0x9f, 0x48, 0xa0, 0x2e, 0x5e, 0x3f, 0xb1,
		0x26, 0x62, 0xf6, 0x7c, 0x80, 0x06, 0x31, 0x7b, 0xc4, 0xec, 0x57, 0xb8, 0xe8, 0xea, 0x49, 0x8e,
		0xf1, 0xd2, 0x6a, 0xf9, 0x8d, 0x3c, 0xf8, 0x0d, 0xf0, 0x1b, 0xe0, 0x37, 0x54, 0x7c, 0x53, 0x55,
		0x6a, 0x24, 0x5e, 0x30, 0x2a, 0x98, 0x35, 0x3b, 0xd6, 0x8b, 0xed, 0xd8, 0x0a, 0xbc, 0x87, 0xa5,
		0x17, 0x62, 0x6e, 0x27, 0x9a, 0xde, 0xf5, 0x79, 0xf4, 0xae, 0x47, 0xef, 0xfa, 0x04, 0x29, 0x27,
		0x16, 0x25, 0x45, 0x04, 0xf8, 0x15, 0x4b, 0xbc, 0x6a, 0xe5, 0xb5, 0x58, 0x89, 0xfd, 0xa0, 0x13,
		0xca, 0x85, 0xaa, 0xec, 0x07, 0x95, 0x64, 0xd2, 0x28, 0x34, 0x72, 0xc5, 0xc6, 0xa1, 0xe0, 0xf8,
		0x14, 0x1d, 0x97, 0xc2, 0x63, 0x57, 0x7c, 0xec, 0x0a, 0x90, 0x55, 0x11, 0xd2, 0x28, 0x44, 0x22,
		0xc5, 0x48, 0xae, 0x20, 0xc7, 0x8a, 0xb2, 0x63, 0x9b, 0x11, 0xad, 0x46, 0x2c, 0xc6, 0xb1, 0xaa,
		0x1c, 0xed, 0x48, 0x2c, 0x54, 0x34, 0x93, 0x8b, 0xd8, 0x95, 0x26, 0xa7, 0xf2, 0xe4, 0x57, 0xa2,
		0xdc, 0xca, 0x54, 0x9b, 0x52, 0xd5, 0xa6, 0x5c, 0xb5, 0x28, 0x59, 0x5a, 0x65, 0x4b, 0xac, 0x74,
		0xe3, 0x27, 0x46, 0x36, 0x59, 0x69, 0xe9, 0x7d, 0x73, 0x84, 0xd5, 0xf1, 0x45, 0x87, 0xe3, 0xc2,
		0x8d, 0x7c, 0xc9, 0x0a, 0xc3, 0x5e, 0xb5, 0x28, 0x02, 0xf5, 0xf1, 0x63, 0x14, 0x12, 0xca, 0xc6,
		0x46, 0xe0, 0x20, 0x9d, 0xe2, 0x47, 0x39, 0xfd, 0x47, 0x51, 0x91, 0xe5, 0xca, 0x42, 0xa7, 0x2c,
		0x4a, 0xa7, 0x11, 0xbb, 0xc0, 0x1c, 0xc3, 0x1c, 0xc3, 0x1c, 0xef, 0xb6, 0x39, 0xa6, 0xc6, 0x42,
		0xfc, 0x98, 0x48, 0x17, 0x36, 0x62, 0xc6, 0x48, 0xec, 0xca, 0x59, 0x87, 0x92, 0xd6, 0xa7, 0xac,
		0x75, 0x29, 0x6d, 0xed, 0xca, 0x5b, 0xbb, 0x12, 0xd7, 0xaa, 0xcc, 0x79, 0x94, 0x3a, 0x93, 0x72,
		0xe7, 0xc7, 0x5c, 0x73, 0xf7, 0xf5, 0xa5, 0xeb, 0x04, 0x83, 0x93, 0x33, 0xad, 0x8e, 0xcd, 0x79,
		0x6b, 0x47, 0x8e, 0x71, 0x91, 0x71, 0xcf, 0xaa, 0xdb, 0x7b, 0xe1, 0xd7, 0x13, 0x75, 0xef, 0x5e,
		0xfa, 0xb6, 0xfb, 0xc4, 0xbe, 0x73, 0xb8, 0x7b, 0x6e, 0x70, 0xc8, 0x97, 0xb5, 0x3f, 0x8a, 0xcc,
		0xda, 0x29, 0xdc, 0x3c, 0x1f, 0x6d, 0x5e, 0xce, 0xb0, 0xee, 0xdd, 0xff, 0xc0, 0x7d, 0xc2, 0x97,
		0xa1, 0x12, 0xd4, 0x70, 0xbc, 0xe1, 0xc9, 0xb2, 0x79, 0x16, 0xb3, 0x5b, 0x97, 0x07, 0x37, 0x98,
		0xf7, 0x68, 0x77, 0xcd, 0xc0, 0x1c, 0xec, 0xc0, 0x65, 0xc8, 0x08, 0xd7, 0x7a, 0x74, 0x44, 0x9b,
		0x1f, 0x39, 0x8c, 0x36, 0x66, 0x32, 0xd3, 0x17, 0xa2, 0x63, 0xf5, 0x1c, 0x49, 0xd6, 0x18, 0x7c,
		0xe1, 0xa6, 0x61, 0x49, 0x04, 0x8f, 0x02, 0x6d, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
		0x01, 0x80, 0xb1, 0xdd, 0xd7, 0x47, 0xcf, 0x73, 0x84, 0xe5, 0xea, 0xc0, 0x5e, 0xf9, 0x5d, 0x71,
		0x71, 0x52, 0x4d, 0xf0, 0x12, 0x4d, 0x9e, 0x5e, 0xba, 0x9f, 0xee, 0xf2, 0xb8, 0x71, 0x35, 0xd5,
		0xf8, 0xaf, 0xd9, 0xd9, 0xa4, 0xe8, 0xe9, 0x17, 0x7e, 0x64, 0x59, 0xa2, 0x75, 0x86, 0xd6, 0x9a,
		0xbb, 0xf8, 0xb5, 0x89, 0xbf, 0x36, 0xcf, 0x87, 0x8f, 0xe1, 0x73, 0xf4, 0x58, 0xa6, 0xfe, 0xfb,
		0x87, 0x92, 0x32, 0x3d, 0x7d, 0x97, 0x8b, 0x32, 0x9a, 0xac, 0x66, 0xac, 0xf1, 0xca, 0x4a, 0x5c,
		0xf5, 0x88, 0xf5, 0x77, 0xd5, 0x36, 0x57, 0x2c, 0xb9, 0x80, 0x58, 0x72, 0x7a, 0xbc, 0x62, 0xc4,
		0x92, 0x11, 0x4b, 0xfe, 0x35, 0x7f, 0x81, 0x58, 0x32, 0xa8, 0x0c, 0x50, 0x19, 0xa0, 0x32, 0x40,
		0x65, 0x80, 0xca, 0x50, 0x7f, 0x5f, 0x11, 0x4b, 0x26, 0x3f, 0x5b, 0xc4, 0x92, 0x11, 0x4b, 0xa6,
		0xda, 0x1a, 0xb1, 0xe4, 0x94, 0x1b, 0x18, 0xc4, 0x92, 0xb7, 0xb1, 0x5e, 0x88, 0x25, 0x2b, 0xfd,
		0x41, 0x2c, 0x19, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x8c, 0xef, 0xbe, 0x22, 0x96, 0x9c,
		0xf0, 0x1d, 0x10, 0x4b, 0x4e, 0x40, 0x2c, 0x99, 0x23, 0x58, 0x67, 0xa4, 0x2d, 0x94, 0xac, 0x60,
		0xbe, 0xb6, 0xbe, 0xab, 0x95, 0xae, 0xee, 0x26, 0xff, 0x14, 0x3f, 0x18, 0x22, 0x15, 0x99, 0x2b,
		0x3b, 0x90, 0x03, 0x99, 0xa0, 0xed, 0xa4, 0x72, 0x6d, 0xbb, 0x55, 0x47, 0x0c, 0x1c, 0x87, 0x80,
		0xd6, 0x29, 0xce, 0x5c, 0x5b, 0xaf, 0x13, 0x3b, 0xe5, 0x4f, 0x8a, 0xc5, 0x72, 0xa5, 0x58, 0xcc,
		0x55, 0x8e, 0x2b, 0xb9, 0xd3, 0x52, 0x29, 0x5f, 0xce, 0x97, 0x08, 0x37, 0xbf, 0xf5, 0xdb, 0xc2,
		0x17, 0xed, 0xdf, 0x06, 0x27, 0xe7, 0xf6, 0x1c, 0x87, 0x63, 0xab, 0x87, 0x40, 0xf8, 0x64, 0x2d,
		0xd1, 0x29, 0x05, 0x9c, 0xc9, 0x0a, 0xa5, 0xd2, 0xfa, 0x64, 0x48, 0x93, 0x5e, 0x52, 0x63, 0x6f,
		0x68, 0x2c, 0x4d, 0x7f, 0xcf, 0x1a, 0x09, 0x12, 0x5f, 0xb4, 0x74, 0x5c, 0x30, 0x8a, 0xae, 0x9e,
		0x89, 0xbe, 0x49, 0x99, 0x84, 0x4e, 0xb3, 0x50, 0x28, 0xdd, 0x54, 0xdd, 0x60, 0x68, 0xbb, 0xbf,
		0xa0, 0xf5, 0x2e, 0x27, 0x87, 0x88, 0xd6, 0xbb, 0x89, 0xe4, 0xf8, 0xf6, 0xb4, 0xf5, 0xee, 0xcc,
		0x88, 0x7f, 0xf2, 0xd6, 0xbb, 0x33, 0xfb, 0xd1, 0xb6, 0xde, 0xcd, 0xa1, 0xf5, 0xae, 0x46, 0x45,
		0xc7, 0xa5, 0xf0, 0xd8, 0x15, 0x1f, 0xbb, 0x02, 0x64, 0x55, 0x84, 0xe9, 0x24, 0xa7, 0xc8, 0x83,
		0x17, 0x74, 0x83, 0x24, 0x97, 0x69, 0xaf, 0x32, 0xe1, 0x16, 0x34, 0x83, 0x26, 0x67, 0x7f, 0x18,
		0x98, 0x7c, 0xca, 0x41, 0x94, 0x73, 0x9b, 0x11, 0x0f, 0xa6, 0x9c, 0xdb, 0x8f, 0x6b, 0x92, 0xe1,
		0xbc, 0xac, 0x53, 0x4f, 0x36, 0x64, 0x52, 0x0b, 0xb3, 0x44, 0x2c, 0xbf, 0xa8, 0x10, 0x0e, 0xba,
		0xdc, 0x67, 0x71, 0x49, 0x69, 0xc0, 0xa7, 0x91, 0x2a, 0x9b, 0x2a, 0x5e, 0xa5, 0x6f, 0x99, 0x3d,
		0x37, 0x90, 0xd6, 0xa3, 0x43, 0x6c, 0x5d, 0x7d, 0xd1, 0x11, 0xbe, 0x70, 0x5b, 0x3b, 0x61, 0x94,
		0x46, 0xae, 0xc2, 0xdd, 0xe7, 0x4f, 0xa5, 0xdc, 0x71, 0xd9, 0xb8, 0xba, 0xa8, 0x19, 0xf7, 0x5d,
		0xd1, 0xb2, 0x3b, 0x76, 0x6b, 0x48, 0x7b, 0xee, 0x76, 0x21, 0xdf, 0xf8, 0x30, 0xf7, 0xa9, 0x96,
		0x6f, 0xf9, 0x69, 0x43, 0x1f, 0xf2, 0xea, 0xc3, 0x54, 0xcc, 0xd9, 0x1e, 0x32, 0x21, 0x61, 0x7c,
		0xe0, 0xbb, 0xe5, 0x70, 0x31, 0x2f, 0xf1, 0x7e, 0x60, 0x5e, 0xc0, 0xbc, 0x80, 0x79, 0x01, 0xf3,
		0x02, 0xe6, 0x05, 0xcc, 0x0b, 0x98, 0x17, 0x30, 0x2f, 0x60, 0x5e, 0x20, 0x2e, 0x40, 0x1a, 0x3b,
		0x89, 0x34, 0xc6, 0x39, 0x4a, 0x76, 0x9b, 0x1e, 0x67, 0x4c, 0xed, 0x06, 0x94, 0x01, 0x94, 0x01,
		0x94, 0x01, 0x94, 0x91, 0x22, 0x94, 0xc1, 0xa0, 0xbf, 0x26, 0x75, 0x58, 0xfe, 0x04, 0x29, 0xc5,
		0x2a, 0x6e, 0xce, 0x3e, 0xa6, 0x14, 0x93, 0x75, 0x17, 0x4d, 0x58, 0x22, 0x31, 0x45, 0xbf, 0xd0,
		0x64, 0xe6, 0x0f, 0x93, 0xba, 0x6a, 0x1c, 0x2a, 0x8e, 0xc8, 0x35, 0x43, 0x2e, 0xb1, 0x16, 0xd7,
		0x0b, 0xb9, 0xc4, 0x3b, 0x68, 0x2a, 0xc9, 0x5c, 0x29, 0x86, 0xc1, 0xc8, 0x94, 0x83, 0x90, 0x17,
		0x0c, 0x3e, 0x9e, 0x52, 0x94, 0x7b, 0x65, 0x7e, 0x06, 0xc7, 0xc7, 0x60, 0x7f, 0xd4, 0x4b, 0x09,
		0x8a, 0x59, 0x16, 0x1b, 0x20, 0xbb, 0x03, 0xfb, 0x93, 0x40, 0xfb, 0x63, 0x77, 0x50, 0xca, 0xa2,
		0x68, 0x61, 0xe2, 0x49, 0xec, 0x3c, 0x13, 0xd8, 0x89, 0xbb, 0xe5, 0xef, 0x1c, 0xb5, 0x49, 0xa2,
		0xd6, 0xb8, 0xd4, 0x1b, 0xbb, 0x9a, 0x63, 0x57, 0x77, 0x9c, 0x6a, 0x8f, 0x8e, 0xfa, 0x32, 0x08,
		0x89, 0x4d, 0xea, 0xde, 0xf6, 0x63, 0x67, 0x8b, 0x6f, 0xac, 0xc8, 0x78, 0x4b, 0x9e, 0xd1, 0x22,
		0x39, 0xae, 0xd1, 0x22, 0xb9, 0xdd, 0x1c, 0x2d, 0x42, 0xaa, 0x44, 0xb9, 0x95, 0xa9, 0x36, 0xa5,
		0xaa, 0x4d, 0xb9, 0xea, 0x50, 0xb2, 0xb4, 0xca, 0x96, 0x58, 0xe9, 0xd2, 0x53, 0x21, 0x1a, 0xa8,
		0x11, 0x4e, 0xaa, 0x64, 0x29, 0x75, 0x92, 0x0d, 0xc5, 0xee, 0x6c, 0x22, 0x5a, 0x31, 0xf3, 0x42,
		0xf4, 0xdf, 0x61, 0x64, 0x01, 0xf3, 0xbf, 0xe6, 0x9e, 0x63, 0xd0, 0x7b, 0xd4, 0x60, 0xaf, 0xa7,
		0x76, 0x85, 0xc9, 0x86, 0xc9, 0x86, 0xc9, 0x86, 0xc9, 0x86, 0xc9, 0x86, 0xc9, 0x0e, 0x5f, 0xf8,
		0x32, 0x36, 0xd9, 0x7f, 0x6f, 0xf5, 0x7c, 0x5f, 0xb8, 0xf2, 0xf0, 0x28, 0xfb, 0xf1, 0xe3, 0x38,
		0x3a, 0xd2, 0x88, 0xde, 0x32, 0x69, 0x47, 0x82, 0x05, 0xaf, 0xc5, 0x2b, 0xb7, 0xc5, 0x2b, 0x7a,
		0xb6, 0x72, 0xb0, 0x0b, 0xd5, 0xd7, 0x30, 0x1d, 0x99, 0xae, 0xd8, 0x80, 0x8f, 0x18, 0xf3, 0x5a,
		0xa6, 0x78, 0x95, 0x67, 0x52, 0x38, 0xe2, 0x45, 0x48, 0xff, 0x87, 0xe9, 0xb9, 0x66, 0xeb, 0x39,
		0xac, 0xa6, 0x60, 0x25, 0xcb, 0xc2, 0x3c, 0x6b, 0x46, 0xb6, 0x2c, 0x6d, 0x44, 0x59, 0x03, 0xdd,
		0x59, 0xd5, 0x67, 0x7a, 0x4d, 0x45, 0x4c, 0xe9, 0xa7, 0x4a, 0x27, 0x2c, 0xff, 0x2b, 0xfe, 0xdb,
		0x9d, 0xe8, 0x90, 0x0e, 0x8f, 0x4e, 0x47, 0x3e, 0x3f, 0xed, 0x90, 0x68, 0x96, 0xe1, 0xd0, 0x6c,
		0x61, 0xae, 0x02, 0xc2, 0x5c, 0x89, 0x81, 0x79, 0x08, 0x73, 0xed, 0xaf, 0x23, 0x8a, 0x30, 0x17,
		0x38, 0x33, 0x70, 0x66, 0xe0, 0xcc, 0xc0, 0x99, 0x81, 0x33, 0xdb, 0x03, 0xce, 0x0c, 0x61, 0xae,
		0xf7, 0x11, 0x0c, 0xc2, 0x5c, 0x30, 0xd9, 0x30, 0xd9, 0x30, 0xd9, 0x30, 0xd9, 0x30, 0xd9, 0x09,
		0x31, 0xd9, 0x08, 0x73, 0xa5, 0x97, 0x5d, 0x40, 0x6c, 0x20, 0x8e, 0x0d, 0x50, 0x4f, 0x09, 0x4d,
		0x72, 0x68, 0x80, 0x70, 0x18, 0x28, 0xfa, 0x29, 0xec, 0xdb, 0x4d, 0xda, 0xfd, 0xb6, 0x0a, 0x93,
		0x77, 0x67, 0x1f, 0xaa, 0x5b, 0x69, 0xe2, 0x66, 0xa4, 0xf1, 0x32, 0xf2, 0x6a, 0xd6, 0x02, 0xda,
		0x29, 0xf0, 0x01, 0x41, 0xb4, 0x53, 0xd8, 0x41, 0x4b, 0x49, 0x58, 0xcf, 0xda, 0x1b, 0x28, 0xe8,
		0x80, 0xa3, 0xa2, 0x35, 0xda, 0x09, 0xc1, 0x7e, 0x5d, 0xe4, 0x17, 0xda, 0xf5, 0xa5, 0x8f, 0xdd,
		0x42, 0xbb, 0x3e, 0x00, 0xf2, 0x45, 0x30, 0x22, 0x74, 0x04, 0xb3, 0xc4, 0x4a, 0x35, 0x81, 0x78,
		0x22, 0x84, 0xdf, 0xcd, 0x4f, 0xa3, 0xef, 0xbd, 0xf7, 0xb3, 0x3d, 0x30, 0x55, 0x75, 0x33, 0x33,
		0x8e, 0xae, 0xbb, 0x30, 0xe3, 0x30, 0xe3, 0x49, 0x30, 0xe3, 0x98, 0xed, 0xb1, 0xd6, 0x16, 0x98,
		0xed, 0xb1, 0xc9, 0x66, 0x98, 0xed, 0x41, 0xa6, 0x6c, 0x30, 0xdb, 0x03, 0xe2, 0xa2, 0xdb, 0x36,
		0xd1, 0xaf, 0x8e, 0xa9, 0xaa, 0xcb, 0xf6, 0xc2, 0x54, 0xd5, 0x94, 0x7a, 0xdd, 0x8b, 0xbc, 0x6f,
		0x4c, 0x55, 0xc5, 0x54, 0x55, 0x9d, 0xfa, 0x10, 0x53, 0x55, 0x97, 0x32, 0x2f, 0x98, 0xaa, 0x0a,
		0xe6, 0x05, 0xcc, 0x0b, 0x98, 0x17, 0x30, 0x2f, 0x60, 0x5e, 0xc0, 0xbc, 0x00, 0x4a, 0x83, 0x79,
		0x81, 0xb8, 0x00, 0x69, 0xec, 0x36, 0xd2, 0xc0, 0x54, 0x55, 0xa0, 0x0c, 0xa0, 0x0c, 0xa0, 0x0c,
		0xa0, 0x8c, 0x84, 0xe8, 0x2f, 0x03, 0x53, 0x55, 0x51, 0x05, 0xa4, 0x2a, 0x7d, 0x6f, 0xf7, 0xab,
		0x7f, 0x08, 0x8a, 0xe5, 0x14, 0x96, 0xfd, 0x1c, 0x24, 0xe8, 0x3a, 0x0c, 0x4c, 0x24, 0x91, 0x0e,
		0xcb, 0x5c, 0xd9, 0x81, 0x1c, 0x9c, 0x94, 0xd2, 0xfb, 0x95, 0xb9, 0xb6, 0xdd, 0xaa, 0x23, 0x06,
		0x36, 0x4f, 0x31, 0x6c, 0x1a, 0x80, 0xce, 0x89, 0x95, 0xf3, 0x27, 0xc5, 0x62, 0xb9, 0x52, 0x2c,
		0xe6, 0x2a, 0xc7, 0x95, 0xdc, 0x69, 0xa9, 0x94, 0x2f, 0xe7, 0x15, 0x82, 0xc3, 0xcc, 0xad, 0xdf,
		0x16, 0xbe, 0x68, 0xff, 0x36, 0x78, 0xfa, 0x6e, 0xcf, 0x71, 0x28, 0x96, 0x7e, 0x08, 0x84, 0xaf,
		0x14, 0xe7, 0xa9, 0x12, 0x3a, 0x22, 0xdd, 0x9b, 0x48, 0x9d, 0x9b, 0x51, 0x5a, 0xe5, 0x97, 0x20,
		0x2d, 0xab, 0x46, 0xbf, 0x6e, 0xaf, 0x0d, 0xb7, 0x5b, 0x61, 0x4b, 0x91, 0x56, 0x2d, 0xca, 0x09,
		0x12, 0x61, 0x05, 0x82, 0x9b, 0x04, 0x81, 0xdd, 0x4e, 0x4c, 0x37, 0x17, 0xae, 0x2d, 0x04, 0x4b,
		0x51, 0x35, 0xaf, 0xd2, 0xea, 0x5d, 0x45, 0x85, 0x6e, 0xca, 0x0a, 0xda, 0x54, 0x32, 0x22, 0xea,
		0x99, 0x0f, 0xd5, 0x0c, 0x07, 0x19, 0x93, 0x41, 0xc6, 0x58, 0x90, 0x30, 0x13, 0x7a, 0x55, 0xbd,
		0xaa, 0x6a, 0x58, 0xaa, 0x12, 0x1a, 0xda, 0x92, 0x19, 0xc5, 0x14, 0xaa, 0x72, 0xca, 0x94, 0x82,
		0x22, 0xa5, 0xa3, 0x44, 0xa9, 0x28, 0x50, 0x72, 0xca, 0x93, 0x9c, 0xe2, 0x24, 0xa5, 0x34, 0x93,
		0x85, 0xbd, 0x95, 0x53, 0x94, 0x74, 0x89, 0x0f, 0x04, 0x89, 0x0e, 0x44, 0x89, 0x0d, 0x04, 0x54,
		0x1e, 0x65, 0xe2, 0x02, 0x75, 0xa2, 0x02, 0x5b, 0xa4, 0x99, 0x3e, 0xb2, 0x4c, 0x11, 0xe9, 0xa4,
		0x4c, 0x34, 0xe0, 0x48, 0x2c, 0xd8, 0xa5, 0xe3, 0x4d, 0x28, 0x5f, 0xdb, 0x48, 0x94, 0xcd, 0x20,
		0x2c, 0xb1, 0x20, 0x2c, 0xa9, 0x20, 0xec, 0x98, 0xc4, 0x59, 0x32, 0xc1, 0xd9, 0x44, 0x89, 0xba,
		0x24, 0x42, 0x4f, 0x1f, 0x25, 0xc6, 0x92, 0x87, 0x1d, 0xd7, 0x27, 0x07, 0x09, 0xd0, 0x48, 0x54,
		0x25, 0x09, 0xb4, 0x25, 0x08, 0x40, 0xb2, 0x40, 0xb2, 0x40, 0xb2, 0x40, 0xb2, 0x40, 0xb2, 0x40,
		0xb2, 0x40, 0xb2, 0x40, 0xb2, 0xf0, 0x3c, 0xb9, 0x3d, 0x4f, 0x44, 0xec, 0x15, 0x46, 0xec, 0x55,
		0xe5, 0xf4, 0xe9, 0x0b, 0xd6, 0x2b, 0x48, 0xd7, 0xdb, 0x22, 0x4e, 0x7f, 0xc0, 0x28, 0x84, 0xaa,
		0x84, 0x4f, 0xb7, 0xd0, 0x65, 0xb6, 0x4a, 0x6e, 0xd0, 0x23, 0x66, 0x9b, 0x09, 0xd8, 0xfa, 0xe2,
		0xb1, 0x81, 0x68, 0x64, 0x5c, 0x61, 0x3f, 0x3d, 0x3f, 0x7a, 0x5b, 0x34, 0x44, 0x8e, 0x1d, 0xe6,
		0xf1, 0x52, 0x1b, 0x8a, 0xe8, 0x76, 0x89, 0x1e, 0x5b, 0xa3, 0x61, 0x15, 0xe8, 0x57, 0x1d, 0xda,
		0x55, 0x85, 0x6e, 0x95, 0xa3, 0x59, 0xe5, 0xe8, 0x55, 0x29, 0x5a, 0xe5, 0x55, 0xaa, 0xdb, 0x26,
		0x66, 0xc4, 0x77, 0x46, 0x5d, 0xca, 0x55, 0xbc, 0x62, 0xc2, 0xb2, 0xae, 0x72, 0xc8, 0xba, 0x4a,
		0x00, 0x05, 0x85, 0xac, 0x2b, 0xbe, 0xcb, 0x1d, 0x2f, 0x64, 0xf5, 0xe4, 0xb3, 0x70, 0xe5, 0x28,
		0xde, 0xa0, 0x9c, 0xab, 0x9e, 0x59, 0x5f, 0x2d, 0x57, 0x9d, 0x07, 0x57, 0xad, 0x62, 0x65, 0x70,
		0xd5, 0x9c, 0x8a, 0x43, 0x2d, 0x83, 0xa1, 0x8a, 0xab, 0x56, 0x3d, 0xd4, 0x24, 0xd3, 0x1a, 0xdd,
		0x29, 0xa2, 0xe1, 0x4b, 0xd1, 0xfa, 0x29, 0x9b, 0xbe, 0x94, 0xc3, 0xf4, 0x25, 0x7a, 0xc5, 0xc3,
		0xa6, 0x80, 0xd8, 0x14, 0x11, 0x8b, 0x42, 0x22, 0x22, 0x6a, 0xd3, 0x32, 0x7d, 0x69, 0xda, 0x53,
		0x31, 0xbf, 0x85, 0x25, 0xa0, 0xc4, 0x4d, 0x3e, 0x16, 0xec, 0x89, 0x56, 0x1f, 0xdc, 0x8a, 0x8e,
		0x4f, 0xe1, 0x71, 0x29, 0x3e, 0x76, 0x05, 0xc8, 0xae, 0x08, 0x59, 0x15, 0x22, 0x8d, 0x62, 0x24,
		0x52, 0x90, 0xf1, 0x93, 0xe1, 0x6b, 0xf5, 0xe1, 0x7b, 0x3d, 0x19, 0x32, 0xe4, 0x56, 0x10, 0x84,
		0xe2, 0x96, 0xde, 0x76, 0x1f, 0x68, 0x01, 0xbe, 0xc6, 0x0f, 0x6f, 0x0b, 0xf0, 0xfc, 0x71, 0x21,
		0x6f, 0xd4, 0x9f, 0x85, 0x71, 0x7d, 0x51, 0x32, 0xae, 0x45, 0x10, 0x58, 0x4f, 0xc2, 0xbc, 0xb0,
		0x9f, 0x44, 0x20, 0x8d, 0x73, 0xe7, 0xc9, 0xf3, 0x6d, 0xf9, 0xfc, 0xf2, 0xd5, 0x45, 0xb3, 0xf0,
		0x3d, 0x6b, 0x16, 0xbe, 0xb5, 0x5c, 0xa0, 0xd9, 0xdf, 0x92, 0x9f, 0x7d, 0x6e, 0xf6, 0x27, 0x5c,
		0x52, 0x4d, 0x1d, 0x2b, 0xb6, 0x68, 0x1f, 0x22, 0xbb, 0x73, 0x21, 0x3a, 0x56, 0xcf, 0x91, 0xa4,
		0x96, 0x20, 0x13, 0xa6, 0x0b, 0xd1, 0xdc, 0xa2, 0x06, 0xd0, 0x10, 0xd0, 0x10, 0xd0, 0x10, 0xd0,
		0x50, 0x8a, 0xd0, 0xd0, 0xa3, 0xe7, 0x39, 0xc2, 0x72, 0x39, 0x40, 0x50, 0x1e, 0x3d, 0x0f, 0x55,
		0x5c, 0x9a, 0xdd, 0xe9, 0x79, 0x18, 0xa7, 0x39, 0xc5, 0x7f, 0xcb, 0x4e, 0x53, 0x8c, 0x59, 0x92,
		0xb0, 0x89, 0xc1, 0x96, 0xc1, 0x76, 0x33, 0xfa, 0x82, 0xf1, 0xdf, 0x9a, 0xe7, 0x53, 0x5f, 0xb0,
		0x19, 0xd9, 0xde, 0xa4, 0xb6, 0x39, 0x54, 0xda, 0xf7, 0x4c, 0x45, 0x3f, 0xa4, 0xa5, 0x7a, 0x8c,
		0xa2, 0x2b, 0x26, 0x79, 0x7c, 0xad, 0x80, 0xf8, 0x1a, 0x9f, 0x63, 0x85, 0xf8, 0xda, 0x0e, 0x5a,
		0x43, 0xc4, 0xd7, 0x80, 0x28, 0x81, 0x28, 0x81, 0x28, 0x81, 0x28, 0x13, 0x83, 0x28, 0x11, 0x5f,
		0xfb, 0xd5, 0xa7, 0x46, 0x7c, 0x6d, 0x4b, 0x11, 0x43, 0x7c, 0xed, 0x57, 0xfa, 0x1d, 0xf1, 0x35,
		0xc4, 0xd7, 0x14, 0xff, 0x20, 0xbe, 0x86, 0xf8, 0xda, 0x0a, 0x9b, 0x20, 0xbe, 0x06, 0x34, 0x04,
		0x34, 0x04, 0x34, 0x04, 0x34, 0x84, 0xf8, 0x1a, 0xc7, 0x8a, 0x88, 0xaf, 0x6d, 0x11, 0x5f, 0x4b,
		0xf7, 0x2c, 0xb1, 0x5f, 0x87, 0xd7, 0x30, 0x44, 0x4c, 0xb7, 0xdc, 0x27, 0x4a, 0xde, 0x53, 0x37,
		0xc7, 0xe9, 0x97, 0x12, 0x9e, 0xd9, 0xa1, 0x46, 0xa4, 0x8a, 0x6b, 0x30, 0x69, 0x6a, 0x2f, 0x51,
		0xcc, 0x8d, 0x62, 0x6e, 0x14, 0x73, 0x2b, 0xb5, 0x3c, 0xca, 0x8b, 0xb9, 0x87, 0x2c, 0x8a, 0xd9,
		0xf6, 0xfe, 0x72, 0x03, 0xe9, 0x0b, 0xeb, 0xc5, 0xf4, 0x5c, 0xb3, 0x2d, 0x5e, 0x2c, 0xb7, 0x4d,
		0x97, 0x80, 0xf2, 0xde, 0xa6, 0xaa, 0x83, 0xde, 0x84, 0x3c, 0x0e, 0x05, 0x7f, 0xd3, 0xa0, 0x49,
		0xcb, 0xc9, 0xa1, 0xec, 0x1d, 0x69, 0x39, 0x09, 0xe4, 0x5f, 0x90, 0x96, 0x43, 0xc7, 0xaf, 0x30,
		0xf0, 0x2a, 0x44, 0x7c, 0x4a, 0x32, 0xb3, 0x32, 0x1d, 0xeb, 0x51, 0x38, 0x66, 0xd0, 0x8d, 0xa6,
		0x46, 0x93, 0x59, 0xc7, 0x99, 0x7d, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x14, 0xca,
		0xbb, 0xf2, 0x21, 0x03, 0xb3, 0xda, 0xa5, 0x4c, 0xb0, 0x34, 0xcd, 0xd0, 0x81, 0xd1, 0x0f, 0x61,
		0x78, 0x83, 0x72, 0x08, 0x41, 0xbc, 0x09, 0xf1, 0x30, 0x82, 0x78, 0x1f, 0xae, 0xae, 0xf5, 0x63,
		0x99, 0xa5, 0xee, 0x5e, 0x4f, 0x74, 0x8d, 0xa7, 0x45, 0xc0, 0x7a, 0xe5, 0x13, 0x01, 0xc2, 0xa1,
		0x05, 0xfb, 0x20, 0x06, 0x29, 0x89, 0x0c, 0x36, 0xf6, 0xc1, 0xe3, 0x0e, 0x7c, 0x5a, 0x4f, 0x7b,
		0xb8, 0x3e, 0x3c, 0x6c, 0x78, 0xd8, 0xf0, 0xb0, 0xe1, 0x61, 0x2b, 0x94, 0x77, 0xbb, 0x6b, 0x5a,
		0xed, 0xb6, 0x2f, 0x82, 0x80, 0x92, 0x75, 0x39, 0x25, 0x58, 0x3b, 0x7a, 0x36, 0xa9, 0xf3, 0xb2,
		0xc7, 0x4f, 0xfe, 0x7b, 0x91, 0xf0, 0xd9, 0xcf, 0x9d, 0xc1, 0x09, 0xe1, 0x1e, 0x35, 0x4b, 0x4a,
		0xe1, 0xbb, 0xe4, 0xe5, 0x08, 0x99, 0xc3, 0x2f, 0x39, 0xf3, 0xb4, 0xf1, 0xf6, 0x25, 0x6f, 0x9e,
		0x36, 0x86, 0x7f, 0xcd, 0x87, 0x7f, 0xfc, 0x2c, 0xf4, 0xdf, 0x0a, 0x5f, 0x72, 0x66, 0x31, 0x7a,
		0xb5, 0x50, 0xfa, 0x92, 0x33, 0x4b, 0x8d, 0xa3, 0xc3, 0xaf, 0x5f, 0x3f, 0xae, 0xfb, 0x9e, 0xa3,
		0x9f, 0xc7, 0x7d, 0xba, 0x9c, 0xba, 0x06, 0xe5, 0x31, 0xdc, 0xde, 0x5f, 0xfe, 0xc9, 0x76, 0x16,
		0xff, 0x39, 0xe4, 0x3a, 0x8d, 0xa3, 0xbf, 0x65, 0xd2, 0x96, 0x01, 0xff, 0x21, 0xc5, 0x6a, 0xa9,
		0x0c, 0xb5, 0xb4, 0xae, 0x5a, 0x0a, 0xa5, 0xda, 0x32, 0x3b, 0xe7, 0xe6, 0xe7, 0xc6, 0xcf, 0xfc,
		0x87, 0x62, 0xff, 0xec, 0xe8, 0x67, 0xa5, 0x3f, 0xfb, 0xe2, 0xdb, 0xa2, 0x5f, 0xcb, 0x7f, 0xa8,
		0xf4, 0xcf, 0x96, 0xfc, 0x4b, 0xb9, 0x7f, 0xb6, 0xe2, 0x1a, 0xa5, 0xfe, 0xe1, 0xdc, 0xaf, 0x0e,
		0x5e, 0x2f, 0x2c, 0x7b, 0x43, 0x71, 0xc9, 0x1b, 0x8e, 0x97, 0xbd, 0xe1, 0x78, 0xc9, 0x1b, 0x96,
		0x7e, 0xa4, 0xc2, 0x92, 0x37, 0x94, 0xfa, 0x6f, 0x73, 0xbf, 0x7f, 0xb8, 0xf8, 0x57, 0xcb, 0xfd,
		0xa3, 0xb7, 0x65, 0xff, 0x56, 0xe9, 0xbf, 0x9d, 0x1d, 0x1d, 0x41, 0x51, 0xaf, 0xac, 0xa8, 0x21,
		0x9e, 0xfc, 0xe2, 0x99, 0x3e, 0xc3, 0xb5, 0x3f, 0xfc, 0x0f, 0x32, 0x75, 0xc9, 0x33, 0x75, 0x95,
		0xb7, 0x7a, 0xd2, 0x96, 0xa1, 0xab, 0xb2, 0xa7, 0x53, 0x32, 0x32, 0x73, 0x87, 0x23, 0xfc, 0xad,
		0xf6, 0xff, 0xb3, 0x5a, 0xc2, 0x6d, 0xd9, 0x22, 0x50, 0x9f, 0xa4, 0x3b, 0xbf, 0x45, 0xc2, 0xf3,
		0x75, 0x0b, 0xc8, 0xd7, 0x4d, 0x11, 0x23, 0x89, 0x7c, 0xdd, 0x04, 0xe7, 0xeb, 0x4e, 0xdf, 0xfd,
		0x1f, 0x74, 0xb1, 0x91, 0xd9, 0x8d, 0xd0, 0x2e, 0x0e, 0x41, 0x12, 0x6d, 0x2a, 0x89, 0x4d, 0x35,
		0xb1, 0xa8, 0x28, 0x1a, 0x50, 0x90, 0x9a, 0x76, 0x71, 0x43, 0xcd, 0xf2, 0xec, 0x39, 0x6d, 0x69,
		0xbf, 0x30, 0x34, 0x8a, 0x98, 0xd9, 0x8f, 0xb6, 0x31, 0x42, 0x1e, 0x8d, 0x11, 0x34, 0x2a, 0x3a,
		0x2e, 0x85, 0xc7, 0xae, 0xf8, 0xd8, 0x15, 0x20, 0xab, 0x22, 0xa4, 0x63, 0x49, 0x0c, 0xc2, 0xc6,
		0x08, 0x54, 0x0a, 0x72, 0x02, 0x94, 0x53, 0xb4, 0x01, 0x5e, 0x7a, 0x2b, 0xa9, 0x0a, 0xdc, 0x19,
		0xd5, 0x24, 0xb9, 0x1f, 0xa8, 0x43, 0x6d, 0xf2, 0xab, 0x4f, 0x6e, 0x35, 0xaa, 0x4d, 0x9d, 0x6a,
		0x53, 0xab, 0x5a, 0xd4, 0x2b, 0xad, 0x9a, 0x25, 0x56, 0xb7, 0x6c, 0x6a, 0x37, 0xde, 0x28, 0xc2,
		0xbe, 0x92, 0x4f, 0xfc, 0xe3, 0xe6, 0xc6, 0xa3, 0x9d, 0x99, 0x84, 0x90, 0xb6, 0xa9, 0x17, 0xbb,
		0x2f, 0xab, 0x53, 0x49, 0xeb, 0x53, 0xd6, 0xba, 0x94, 0xb6, 0x76, 0xe5, 0xad, 0x5d, 0x89, 0x6b,
		0x55, 0xe6, 0x3c, 0x4a, 0x9d, 0x49, 0xb9, 0xc7, 0x4f, 0x92, 0xbc, 0xe9, 0xd8, 0xd2, 0xfb, 0x4a,
		0x56, 0x1b, 0xf5, 0x2b, 0xed, 0x5b, 0x66, 0xdc, 0x92, 0xb6, 0x96, 0x6a, 0xd9, 0x0f, 0xaf, 0x3e,
		0x32, 0xb8, 0x6a, 0xaf, 0x96, 0x6e, 0xce, 0x54, 0x93, 0xb5, 0x74, 0x7f, 0xee, 0x22, 0x9d, 0xe5,
		0x77, 0x8b, 0xab, 0x78, 0x47, 0xb3, 0xda, 0x9a, 0x16, 0x3d, 0xeb, 0x55, 0xbf, 0xe8, 0x31, 0xd4,
		0x82, 0x41, 0xfc, 0x12, 0x62, 0x9b, 0xf9, 0x77, 0x6b, 0x1c, 0xec, 0xc6, 0xf7, 0x61, 0x50, 0x0f,
		0x51, 0x14, 0x42, 0xbc, 0x76, 0x6d, 0x9f, 0xae, 0x63, 0xe6, 0xbb, 0x9e, 0xcd, 0xdc, 0x27, 0x00,
		0xba, 0x04, 0xba, 0x04, 0xba, 0x04, 0xba, 0x04, 0xba, 0x64, 0xbb, 0xaf, 0xd2, 0x7e, 0x11, 0xd2,
		0x6e, 0x7d, 0x0b, 0xca, 0x45, 0x0d, 0x10, 0xf3, 0x84, 0x71, 0xcb, 0x07, 0x77, 0xe8, 0xf4, 0x65,
		0x5c, 0xcb, 0xf5, 0x02, 0xd1, 0xf2, 0xdc, 0x76, 0x90, 0x01, 0xc4, 0x05, 0xc4, 0x05, 0xc6, 0x00,
		0xc4, 0x55, 0x29, 0x7a, 0xf9, 0x93, 0x62, 0xb1, 0x5c, 0x29, 0x16, 0x73, 0x95, 0xe3, 0x4a, 0xee,
		0xb4, 0x54, 0xca, 0x97, 0xf3, 0x40, 0xbc, 0x40, 0xbc, 0x40, 0xbc, 0xba, 0x11, 0xaf, 0x2b, 0x9e,
		0x3c, 0x69, 0x5b, 0x52, 0xb4, 0xf9, 0xb1, 0xee, 0xc4, 0xde, 0x40, 0xb9, 0x40, 0xb9, 0x40, 0xb9,
		0x40, 0xb9, 0x40, 0xb9, 0x6c, 0xf7, 0x15, 0x31, 0x54, 0x00, 0x4c, 0x00, 0x4c, 0x00, 0xcc, 0xdd,
		0x00, 0x98, 0x88, 0xa1, 0x02, 0x51, 0x02, 0x51, 0x26, 0x03, 0x51, 0xbe, 0x4a, 0x33, 0x0c, 0x63,
		0xea, 0x40, 0x94, 0xf1, 0xde, 0x40, 0x94, 0x40, 0x94, 0x40, 0x94, 0x40, 0x94, 0x40, 0x94, 0x6c,
		0xf7, 0x15, 0x71, 0x53, 0xc0, 0x5a, 0xc0, 0x5a, 0xe0, 0x0a, 0xc0, 0x5a, 0x65, 0xa2, 0x87, 0xb8,
		0x29, 0x50, 0x2e, 0x50, 0x6e, 0xa2, 0x76, 0xa0, 0x2e, 0x9d, 0x25, 0x9e, 0xd7, 0x3f, 0xb7, 0x9f,
		0xde, 0x2e, 0x89, 0x73, 0x6d, 0xf2, 0x66, 0x5e, 0xf9, 0x91, 0x9d, 0xee, 0x0c, 0x93, 0xe5, 0x68,
		0x80, 0x60, 0xe8, 0xec, 0xb6, 0xf8, 0x8f, 0xc1, 0xf7, 0x3d, 0x1f, 0x3f, 0x90, 0xe9, 0x17, 0x7e,
		0x0c, 0xff, 0xf3, 0x1f, 0xd1, 0xe3, 0x68, 0xde, 0x87, 0x8f, 0xe3, 0x20, 0x9d, 0xd7, 0x29, 0x5d,
		0xad, 0x44, 0x98, 0x2e, 0x66, 0xca, 0x2e, 0x24, 0x65, 0x83, 0xa0, 0x54, 0x5c, 0xc1, 0x4c, 0x4a,
		0x7a, 0x11, 0x13, 0x5c, 0x8b, 0x8c, 0xed, 0x4a, 0xe1, 0x77, 0xac, 0x96, 0x30, 0x7d, 0xd1, 0xa1,
		0x6f, 0x12, 0x36, 0xbd, 0x1d, 0x7a, 0x84, 0x2d, 0xdc, 0x80, 0xb9, 0x47, 0x98, 0xdd, 0x41, 0x8b,
		0xb0, 0x0d, 0x36, 0xd4, 0xdd, 0x22, 0xcc, 0xee, 0xa0, 0x43, 0xd8, 0xf0, 0xc1, 0xa0, 0x43, 0x58,
		0xe2, 0x94, 0xe4, 0xbc, 0xb2, 0xdc, 0xd1, 0x0e, 0x61, 0xa4, 0xca, 0x93, 0x5b, 0x89, 0x6a, 0x53,
		0xa6, 0xda, 0x94, 0xaa, 0x0e, 0xe5, 0xba, 0x1b, 0x24, 0x07, 0x5b, 0x7f, 0xb0, 0xd8, 0x65, 0xe4,
		0x4f, 0x46, 0x18, 0x6f, 0x8d, 0x5c, 0x84, 0xb4, 0x29, 0x69, 0x6d, 0xca, 0x5a, 0x97, 0xd2, 0xd6,
		0xae, 0xbc, 0xb5, 0x2b, 0x71, 0x9d, 0xca, 0x9c, 0x47, 0xa9, 0x33, 0x29, 0xf7, 0xf8, 0x41, 0xea,
		0xcb, 0x44, 0x70, 0x84, 0xd5, 0xa1, 0xa3, 0x08, 0xde, 0xf5, 0x88, 0x2b, 0x8c, 0x7b, 0xd6, 0x62,
		0x8e, 0x70, 0x20, 0xa6, 0x67, 0xb1, 0xc1, 0x09, 0x66, 0x5f, 0x88, 0xfe, 0x3b, 0x64, 0xd2, 0x90,
		0xca, 0xb8, 0x3a, 0x72, 0xeb, 0x3d, 0x6a, 0xf4, 0x1f, 0xa6, 0x76, 0x87, 0x0b, 0x01, 0x17, 0x02,
		0x2e, 0x04, 0x5c, 0x08, 0xb8, 0x10, 0x70, 0x21, 0xb4, 0xb8, 0x10, 0x5f, 0xc6, 0x2e, 0xc4, 0xdf,
		0x5b, 0x3d, 0xdf, 0x17, 0xae, 0x3c, 0x3c, 0xca, 0x7e, 0xfc, 0x98, 0x8d, 0x7f, 0xa3, 0x11, 0xbd,
		0x65, 0xd2, 0x6e, 0x05, 0x0b, 0x5e, 0x8b, 0x57, 0x6e, 0x8b, 0xd7, 0x0c, 0x52, 0x4e, 0x12, 0xc0,
		0xc6, 0x20, 0xe5, 0x64, 0x3a, 0xc2, 0x3d, 0x15, 0x67, 0x44, 0xc6, 0xc9, 0xe5, 0xe8, 0x71, 0xdc,
		0x89, 0x0e, 0x12, 0x4e, 0xd8, 0xae, 0x27, 0x12, 0x4e, 0x16, 0x5d, 0xc7, 0x7d, 0xcc, 0x37, 0x99,
		0xbc, 0x80, 0xfb, 0x9c, 0x6e, 0xe2, 0x78, 0x2d, 0xcb, 0x31, 0xad, 0x76, 0xdb, 0x17, 0x41, 0x40,
		0x9f, 0x6e, 0x32, 0xbd, 0x1d, 0x6d, 0xba, 0x49, 0x8e, 0x3a, 0xdd, 0xa4, 0x80, 0x91, 0x74, 0xc9,
		0x81, 0xcc, 0x18, 0x49, 0xb7, 0xc7, 0x66, 0x9d, 0x1c, 0xd3, 0x32, 0x62, 0x58, 0x0e, 0xcc, 0x1a,
		0x63, 0xd4, 0x8f, 0x1f, 0x87, 0xbe, 0x78, 0x76, 0x5a, 0x31, 0xef, 0xb1, 0x41, 0xf4, 0xc5, 0x8b,
		0x27, 0x05, 0x9f, 0x45, 0x9c, 0xd9, 0x0f, 0x26, 0x11, 0x26, 0x11, 0x26, 0x11, 0x26, 0x11, 0x26,
		0x51, 0xbb, 0x49, 0x9c, 0xd1, 0xcc, 0x7b, 0x6c, 0x13, 0x69, 0xd3, 0x6d, 0x59, 0xd2, 0x6c, 0x51,
		0x83, 0x00, 0x0b, 0x08, 0x0b, 0xb8, 0x57, 0x16, 0x90, 0xbc, 0x0a, 0x21, 0xa6, 0x53, 0x4d, 0xc9,
		0x11, 0x53, 0x9d, 0x1d, 0x93, 0x3b, 0xda, 0x97, 0xa7, 0x2e, 0x21, 0xc7, 0x55, 0x97, 0x90, 0xc3,
		0xe4, 0xf2, 0xe4, 0x2b, 0x56, 0x6d, 0x0a, 0x56, 0x9b, 0xa2, 0xd5, 0xa2, 0x70, 0x69, 0x15, 0x2f,
		0xb1, 0x02, 0xe6, 0x83, 0x22, 0x73, 0xf7, 0xed, 0xa5, 0xeb, 0x04, 0x83, 0x93, 0x31, 0x59, 0x55,
		0xe5, 0x94, 0x9f, 0x59, 0x64, 0xd8, 0xab, 0xea, 0xf6, 0x5e, 0xf8, 0xae, 0x7a, 0xdd, 0xbb, 0x97,
		0xbe, 0xed, 0x3e, 0xf1, 0x26, 0x0f, 0xe5, 0x06, 0xe7, 0x79, 0x75, 0x79, 0xf3, 0x4f, 0xce, 0xb4,
		0xa1, 0xfc, 0x60, 0xd3, 0xfa, 0xf9, 0xdd, 0xef, 0xd5, 0x7a, 0xf5, 0x22, 0xb3, 0x5b, 0xe9, 0x5f,
		0xde, 0x25, 0xe3, 0x68, 0xff, 0x70, 0xcb, 0xf0, 0xf4, 0x58, 0x9b, 0x1b, 0x8d, 0xcf, 0xee, 0xcc,
		0xc8, 0x23, 0x1f, 0x4a, 0xeb, 0xea, 0x84, 0x82, 0x1d, 0x8d, 0xf6, 0x6c, 0xfb, 0x5e, 0xb7, 0xcb,
		0x30, 0x6d, 0x65, 0x66, 0xa2, 0xe8, 0x68, 0x5b, 0xf8, 0xdf, 0xf0, 0xbf, 0xe1, 0x7f, 0xc3, 0xff,
		0x86, 0xff, 0x1d, 0xdf, 0xb7, 0x96, 0xd7, 0x73, 0xa5, 0xf0, 0x59, 0x9a, 0xd6, 0x32, 0x36, 0xab,
		0x65, 0x6e, 0x12, 0xcb, 0xe8, 0xa2, 0xe9, 0x68, 0x0a, 0xab, 0xab, 0x19, 0xac, 0xf6, 0xb6, 0x9b,
		0xfa, 0xda, 0x6d, 0x32, 0x36, 0x7d, 0xd5, 0xd2, 0xec, 0x35, 0x41, 0x4d, 0x5e, 0xf7, 0x59, 0xca,
		0x76, 0x04, 0x71, 0x35, 0x80, 0xb8, 0x96, 0x20, 0x2e, 0x5f, 0xb4, 0x84, 0xfd, 0x9d, 0x1f, 0x72,
		0xc5, 0xfb, 0x02, 0x73, 0x01, 0x73, 0x01, 0x73, 0x01, 0x73, 0x01, 0x73, 0x01, 0x73, 0x01, 0x73,
		0x01, 0x73, 0x01, 0x73, 0x01, 0x73, 0x01, 0x73, 0x01, 0x73, 0xed, 0x24, 0xe6, 0x72, 0xac, 0x40,
		0x9a, 0x2d, 0x47, 0x58, 0x3e, 0x1f, 0xde, 0x9a, 0xd8, 0x13, 0x58, 0x0b, 0x58, 0x0b, 0x58, 0x0b,
		0x58, 0x0b, 0x58, 0x4b, 0xd3, 0x58, 0x46, 0x4e, 0xb4, 0xa5, 0x69, 0x0c, 0x23, 0x50, 0x1e, 0x50,
		0x1e, 0x50, 0x1e, 0x50, 0x1e, 0xa4, 0x0c, 0x28, 0x6f, 0x5f, 0x51, 0x1e, 0x4b, 0x27, 0x9e, 0x79,
		0xa0, 0xc7, 0xd0, 0x91, 0x07, 0x58, 0x0f, 0x58, 0x0f, 0x58, 0x0f, 0x58, 0x2f, 0x95, 0x58, 0xcf,
		0xee, 0x32, 0x69, 0xc7, 0x49, 0x0d, 0x99, 0x3f, 0x65, 0xd8, 0x2b, 0x7a, 0x96, 0x3b, 0x07, 0xb9,
		0xc6, 0x27, 0xf7, 0xbd, 0xc8, 0x78, 0x76, 0x73, 0x67, 0x78, 0xc2, 0xdb, 0x74, 0x58, 0x0a, 0xdf,
		0x65, 0x3b, 0xce, 0x78, 0xe3, 0xc3, 0x2f, 0x39, 0xf3, 0xb4, 0xf1, 0xf6, 0x25, 0x6f, 0x9e, 0x36,
		0x86, 0x7f, 0xcd, 0x87, 0x7f, 0xfc, 0x2c, 0xf4, 0xdf, 0x0a, 0x5f, 0x72, 0x66, 0x31, 0x7a, 0xb5,
		0x50, 0xfa, 0x92, 0x33, 0x4b, 0x8d, 0xa3, 0xc3, 0xaf, 0x5f, 0x3f, 0xae, 0xfb, 0x9e, 0xa3, 0x9f,
		0xc7, 0x7d, 0xbe, 0x76, 0xdf, 0x0d, 0xce, 0x63, 0xbb, 0xbd, 0xbf, 0xfc, 0x53, 0xdb, 0xd9, 0xfd,
		0xe7, 0x90, 0xeb, 0xf4, 0x8e, 0xfe, 0x96, 0xd9, 0xb5, 0x99, 0xeb, 0x1f, 0x76, 0x58, 0x6d, 0x96,
		0xa1, 0x36, 0xa9, 0xd5, 0x66, 0x78, 0x8b, 0x2c, 0xb3, 0x73, 0x6e, 0x7e, 0x6e, 0xfc, 0xcc, 0x7f,
		0x28, 0xf6, 0xcf, 0x8e, 0x7e, 0x56, 0xfa, 0xb3, 0x2f, 0xbe, 0x2d, 0xfa, 0xb5, 0xfc, 0x87, 0x4a,
		0xff, 0x6c, 0xc9, 0xbf, 0x94, 0xfb, 0x67, 0x2b, 0xae, 0x51, 0xea, 0x1f, 0xce, 0xfd, 0xea, 0xe0,
		0xf5, 0xc2, 0xb2, 0x37, 0x14, 0x97, 0xbc, 0xe1, 0x78, 0xd9, 0x1b, 0x8e, 0x97, 0xbc, 0x61, 0xe9,
		0x47, 0x2a, 0x2c, 0x79, 0x43, 0xa9, 0xff, 0x36, 0xf7, 0xfb, 0x87, 0x8b, 0x7f, 0xb5, 0xdc, 0x3f,
		0x7a, 0x5b, 0xf6, 0x6f, 0x95, 0xfe, 0xdb, 0xd9, 0xd1, 0x11, 0x0c, 0x09, 0x99, 0x21, 0x81, 0x38,
		0xf3, 0x8b, 0xf3, 0xee, 0x19, 0x56, 0xb0, 0x8f, 0x1a, 0xd8, 0x47, 0xa6, 0xb6, 0xa7, 0x73, 0xce,
		0x06, 0x4b, 0xfb, 0x53, 0xf0, 0x8f, 0xe0, 0x1f, 0xc1, 0x3f, 0x82, 0x7f, 0x04, 0xff, 0x08, 0xfe,
		0x11, 0xfc, 0x23, 0xf8, 0x47, 0xf0, 0x8f, 0xe0, 0x1f, 0xc1, 0x3f, 0x82, 0x7f, 0x04, 0xff, 0x08,
		0xc2, 0x06, 0xfc, 0x23, 0xf8, 0x47, 0x88, 0x33, 0xf8, 0x47, 0xf0, 0x8f, 0x9a, 0x56, 0xc6, 0xa8,
		0x4f, 0xda, 0x51, 0x9f, 0xd4, 0xb3, 0x76, 0x13, 0x3b, 0xe2, 0x93, 0x70, 0xac, 0x2e, 0xc1, 0xd8,
		0x96, 0x83, 0x04, 0xdf, 0xa9, 0xcc, 0x3f, 0xc5, 0x8f, 0x79, 0xb2, 0xde, 0xa0, 0x4c, 0x1d, 0xce,
		0x5c, 0xd9, 0x81, 0x3c, 0x97, 0x92, 0xa6, 0xe4, 0x35, 0x73, 0x6d, 0xbb, 0x55, 0x47, 0xbc, 0x08,
		0x97, 0xaa, 0x7e, 0x20, 0x73, 0x6d, 0xbd, 0x4e, 0xec, 0xc0, 0x53, 0x35, 0x91, 0xb9, 0xf5, 0xdb,
		0xc2, 0x17, 0xed, 0xdf, 0x06, 0xa7, 0xe5, 0xf6, 0x1c, 0x87, 0x72, 0x8b, 0x87, 0x40, 0xf8, 0x24,
		0x05, 0x10, 0xaa, 0x85, 0x97, 0xd8, 0x10, 0x24, 0xdd, 0x00, 0x64, 0x48, 0x06, 0x42, 0x25, 0x52,
		0xe5, 0xab, 0x55, 0xf6, 0xea, 0x54, 0xb2, 0x9a, 0x95, 0x14, 0xdd, 0x0b, 0xaa, 0xfb, 0x90, 0xb4,
		0x7b, 0xa0, 0x50, 0xee, 0x13, 0x23, 0xef, 0x6a, 0x04, 0x7c, 0x7b, 0x71, 0x54, 0x20, 0x8a, 0x19,
		0xc7, 0x7a, 0x14, 0x8e, 0x19, 0x74, 0xad, 0x96, 0x30, 0x6d, 0x75, 0x9d, 0x04, 0x27, 0x3a, 0x58,
		0x4c, 0xad, 0xaf, 0xe8, 0xf2, 0xa8, 0xcd, 0x20, 0x50, 0x9e, 0x29, 0x40, 0x91, 0x11, 0x40, 0x17,
		0xf9, 0xa7, 0x8a, 0xf0, 0x93, 0x47, 0xf2, 0xc9, 0x23, 0xf6, 0xa4, 0x91, 0xf9, 0x64, 0x99, 0x23,
		0xe5, 0x11, 0x75, 0xc2, 0xc1, 0xa4, 0x14, 0x83, 0x48, 0x27, 0x07, 0x8f, 0x0e, 0xad, 0x4a, 0x76,
		0x46, 0x75, 0xed, 0x92, 0xd2, 0x0f, 0x7c, 0x1a, 0x65, 0x3f, 0x5c, 0x17, 0x4a, 0x1e, 0x4a, 0x1e,
		0x4a, 0x1e, 0x4a, 0x3e, 0x15, 0x4a, 0x7e, 0xa8, 0xb2, 0x76, 0x48, 0xb9, 0xab, 0x1d, 0x13, 0x4d,
		0x32, 0x16, 0x5a, 0xf1, 0x18, 0xe8, 0xb1, 0x6a, 0x2f, 0x40, 0xb5, 0x43, 0xb5, 0xef, 0xa5, 0x6a,
		0x57, 0x3d, 0x66, 0x39, 0x23, 0x5c, 0xeb, 0xd1, 0x11, 0x66, 0xdb, 0xfb, 0xcb, 0x0d, 0xa4, 0x2f,
		0xac, 0x17, 0xd3, 0x73, 0xcd, 0xb6, 0x78, 0xb1, 0x5c, 0xf5, 0xf3, 0x06, 0xe2, 0xbb, 0xf1, 0xde,
		0xa6, 0x8a, 0x45, 0xe3, 0x42, 0x74, 0xac, 0x9e, 0x23, 0x49, 0xb2, 0x24, 0x32, 0x21, 0x1d, 0xaf,
		0x96, 0x07, 0x6d, 0xa8, 0x0e, 0x26, 0x91, 0x14, 0x61, 0x90, 0x15, 0x5d, 0x50, 0x16, 0x59, 0xd0,
		0x17, 0x55, 0x50, 0x17, 0x51, 0xb0, 0x15, 0x4d, 0xb0, 0x15, 0x49, 0xb0, 0x14, 0x45, 0x24, 0x3b,
		0xdc, 0x4b, 0x56, 0xe4, 0x10, 0xcb, 0xfb, 0xa3, 0xe7, 0x39, 0xc2, 0x72, 0x29, 0x04, 0x7e, 0xe4,
		0xe1, 0xe5, 0x93, 0x1a, 0x0c, 0x52, 0xe8, 0x7f, 0x11, 0x71, 0xe8, 0xf3, 0x20, 0x8b, 0x82, 0x4b,
		0x87, 0x41, 0x80, 0x41, 0x80, 0x41, 0x80, 0x41, 0x08, 0xe5, 0xbd, 0x67, 0xbb, 0x32, 0x5f, 0x26,
		0xb4, 0x07, 0x65, 0x82, 0xa5, 0x69, 0x9b, 0x16, 0x13, 0xe6, 0x2c, 0x72, 0x34, 0x25, 0xe6, 0x6a,
		0x42, 0xcc, 0xde, 0x0e, 0x96, 0xaf, 0xfd, 0x2b, 0x65, 0xc1, 0x3f, 0x47, 0x13, 0xe1, 0x58, 0x04,
		0xca, 0xa5, 0xd2, 0x71, 0x09, 0x62, 0x90, 0x08, 0xdb, 0x40, 0xb7, 0x6a, 0x63, 0x1f, 0x3c, 0x6e,
		0xb5, 0x01, 0xcc, 0x79, 0x4f, 0x5b, 0x65, 0x20, 0x13, 0x1e, 0x36, 0x3c, 0x6c, 0x78, 0xd8, 0xf0,
		0xb0, 0xe9, 0xfb, 0x48, 0x50, 0xf6, 0x8d, 0xa0, 0xed, 0x13, 0x41, 0xe8, 0x65, 0x33, 0xf7, 0x81,
		0xe0, 0x28, 0x60, 0x66, 0x2b, 0x58, 0xde, 0x81, 0xbe, 0x0e, 0x0d, 0xca, 0x63, 0xe0, 0x2c, 0xb7,
		0xdd, 0x91, 0x3e, 0x0d, 0x8d, 0x34, 0x95, 0x2f, 0xf2, 0xa8, 0xa5, 0x32, 0xd4, 0xd2, 0xba, 0x6a,
		0x09, 0x85, 0xe6, 0x3b, 0xd7, 0x37, 0x61, 0xe7, 0x14, 0x35, 0xc4, 0x73, 0xa7, 0xfa, 0x20, 0x34,
		0xc0, 0xff, 0x24, 0x86, 0xff, 0x71, 0xc5, 0x93, 0x27, 0x6d, 0x4b, 0x8a, 0xb6, 0x39, 0x0c, 0x8a,
		0x5a, 0xed, 0xef, 0xc2, 0x97, 0x76, 0x10, 0x96, 0xfa, 0x9a, 0x2f, 0x5e, 0x5b, 0xd0, 0x91, 0x43,
		0xab, 0x6c, 0x0e, 0xe6, 0x08, 0xcc, 0x11, 0x98, 0x23, 0x30, 0x47, 0x2a, 0x39, 0x69, 0x1e, 0x5d,
		0x33, 0x05, 0x16, 0x8a, 0x04, 0x6b, 0x57, 0xdd, 0xde, 0x0b, 0xdd, 0xdd, 0xaa, 0x7b, 0xf7, 0xd2,
		0xb7, 0xdd, 0x27, 0xda, 0x6e, 0x33, 0xb9, 0xc1, 0x81, 0x5c, 0xdc, 0xfe, 0xeb, 0xe6, 0xbe, 0x7e,
		0x57, 0x3d, 0xbf, 0x6e, 0x3e, 0xdc, 0xdc, 0xdf, 0x5e, 0x5d, 0x7e, 0xba, 0xac, 0x57, 0x2f, 0x28,
		0x31, 0x5c, 0x7e, 0x66, 0xdb, 0xdb, 0x9b, 0xe6, 0x45, 0xf5, 0xfa, 0xfc, 0xe6, 0x22, 0x93, 0xaa,
		0x9e, 0x40, 0x75, 0xef, 0x32, 0x54, 0x15, 0x84, 0x07, 0xb4, 0xf0, 0x21, 0x29, 0x2b, 0x38, 0xf8,
		0xd5, 0x96, 0x93, 0xe2, 0x70, 0x66, 0xe4, 0xf6, 0xb3, 0xf9, 0x4d, 0x22, 0x1d, 0xc7, 0xae, 0x10,
		0xbe, 0x06, 0x97, 0xf1, 0xfd, 0x6d, 0xe1, 0x2c, 0xc2, 0x59, 0x84, 0xb3, 0x08, 0x67, 0x11, 0xce,
		0x22, 0x9c, 0x45, 0x38, 0x8b, 0x70, 0x16, 0xe1, 0x2c, 0x26, 0xc3, 0x59, 0x0c, 0x44, 0x10, 0xd8,
		0x9e, 0x6b, 0xaa, 0xad, 0xa8, 0x9e, 0xd3, 0xd5, 0xd3, 0xdb, 0xc0, 0x19, 0x84, 0x33, 0x08, 0x67,
		0x10, 0xce, 0xa0, 0x42, 0x79, 0x17, 0x6e, 0xef, 0x45, 0xf8, 0xc3, 0x5e, 0x83, 0xf0, 0xff, 0xf4,
		0xf8, 0x7f, 0x37, 0xb7, 0x37, 0xcd, 0xea, 0x9f, 0x97, 0xf7, 0xf5, 0xea, 0x4d, 0x9d, 0xdc, 0xeb,
		0xbb, 0xbc, 0xb9, 0xac, 0x5f, 0x9e, 0x5f, 0x5d, 0xfe, 0x7f, 0xb4, 0x1e, 0x66, 0x21, 0x6c, 0xc3,
		0x58, 0xab, 0xde, 0xdc, 0x55, 0x3f, 0x51, 0xee, 0x73, 0x3c, 0xda, 0xe7, 0x9e, 0xf8, 0xe1, 0x15,
		0xa3, 0x8d, 0xee, 0xce, 0xeb, 0x97, 0xb7, 0x37, 0xe7, 0x57, 0xf0, 0x94, 0x67, 0xb6, 0x98, 0x14,
		0x2c, 0x5a, 0x07, 0x79, 0xea, 0xbe, 0x90, 0x56, 0x91, 0xc4, 0x12, 0xac, 0xac, 0x7d, 0xcc, 0xd2,
		0x5d, 0xee, 0x87, 0x5f, 0xe6, 0x98, 0x76, 0x9b, 0x58, 0x7a, 0xcf, 0x8c, 0x22, 0xfa, 0xae, 0x2b,
		0x78, 0xa6, 0xe2, 0x55, 0xfa, 0x96, 0xd9, 0x73, 0x03, 0x69, 0x3d, 0x3a, 0x44, 0xb6, 0xda, 0x17,
		0x1d, 0xe1, 0x0b, 0xb7, 0x95, 0xea, 0x14, 0xeb, 0xbb, 0xcf, 0x9f, 0x4a, 0xb9, 0xe3, 0xf2, 0x07,
		0xe3, 0x5e, 0xb4, 0x3e, 0x1a, 0x85, 0x8f, 0xa5, 0x8f, 0xc5, 0x8f, 0x94, 0xfa, 0x9a, 0x69, 0x34,
		0xe9, 0xa4, 0xdb, 0x3d, 0x3e, 0x27, 0xe2, 0xba, 0x36, 0xee, 0x69, 0xa4, 0x53, 0x9e, 0xf8, 0xc2,
		0x83, 0x44, 0x65, 0x1d, 0x1a, 0x9b, 0xaf, 0x22, 0x47, 0x3b, 0xd9, 0xd8, 0x5c, 0x35, 0x39, 0xa3,
		0xad, 0x99, 0xb9, 0xc2, 0x79, 0x2c, 0x0a, 0xfa, 0x1d, 0x1e, 0x68, 0x94, 0xd8, 0xd1, 0x3c, 0x95,
		0x61, 0xb1, 0xa7, 0xa1, 0xb4, 0xbb, 0x8a, 0xda, 0xc1, 0x29, 0xea, 0x07, 0xa5, 0xb0, 0x0c, 0x46,
		0x21, 0x18, 0x84, 0x42, 0x30, 0xf8, 0x64, 0x5b, 0x29, 0x52, 0xac, 0xef, 0xf4, 0xea, 0xb9, 0x8c,
		0x92, 0x06, 0xa4, 0x5a, 0x34, 0xdb, 0x76, 0x3a, 0x6d, 0x73, 0x4d, 0xb4, 0xd9, 0x3b, 0x37, 0x94,
		0x3a, 0x55, 0xd2, 0xa6, 0x45, 0xca, 0xb6, 0x10, 0x2e, 0x66, 0xa1, 0xda, 0x4c, 0x96, 0xd6, 0x97,
		0x84, 0x0d, 0xa4, 0x20, 0x23, 0x2d, 0xff, 0x49, 0x48, 0xb1, 0x79, 0xf7, 0x83, 0x18, 0xae, 0xc5,
		0x2b, 0x6d, 0x28, 0x8b, 0xdb, 0x75, 0xf1, 0xdd, 0x3a, 0x86, 0xa4, 0x22, 0x56, 0xa4, 0x2e, 0x26,
		0xa4, 0x0a, 0x8c, 0x2a, 0x8f, 0xf1, 0x28, 0x47, 0x92, 0x4a, 0x63, 0x36, 0xbc, 0xda, 0x73, 0xdb,
		0x2e, 0xb9, 0x99, 0xa8, 0x50, 0xd3, 0xec, 0x58, 0x2f, 0xb6, 0x63, 0x8b, 0x60, 0xfb, 0xe3, 0x1e,
		0x09, 0xe0, 0xdc, 0xca, 0xdb, 0x3a, 0xb7, 0x4a, 0x5a, 0x6c, 0x2b, 0x0b, 0xf4, 0xaa, 0x0c, 0xec,
		0xaa, 0x0f, 0xe4, 0xaa, 0x66, 0x92, 0xc8, 0x02, 0xb5, 0x64, 0xb4, 0x10, 0x49, 0x20, 0x56, 0x2f,
		0xbc, 0x53, 0xd5, 0x12, 0x7b, 0xfa, 0x6a, 0xfe, 0x50, 0xdf, 0x5a, 0x7f, 0x66, 0xfd, 0x84, 0xf7,
		0xd8, 0xc7, 0xf8, 0x14, 0x22, 0x6a, 0x19, 0x3d, 0xf6, 0x13, 0xce, 0x6c, 0x2a, 0xef, 0xb1, 0x6f,
		0x75, 0x6c, 0x33, 0x82, 0x34, 0x44, 0xb9, 0x65, 0xf1, 0x0e, 0x48, 0x2b, 0x43, 0x5a, 0x99, 0x36,
		0x25, 0xc4, 0xa6, 0x8c, 0x58, 0x94, 0x92, 0x5a, 0xe5, 0xa4, 0x58, 0x49, 0xc5, 0x4f, 0x80, 0xa1,
		0xc6, 0x40, 0xf9, 0xcc, 0xa7, 0x39, 0xdf, 0xa5, 0x42, 0xb0, 0xf6, 0xfc, 0x0c, 0xa8, 0x58, 0x49,
		0xee, 0x41, 0x4e, 0x73, 0x6b, 0xa4, 0x61, 0x89, 0x0c, 0x4e, 0xb4, 0x3e, 0x8d, 0xb9, 0xc9, 0xc3,
		0xdc, 0xc0, 0xdc, 0xc0, 0xdc, 0x24, 0xd1, 0xdc, 0xa8, 0xf6, 0x8d, 0xe9, 0x7d, 0x64, 0x2e, 0x5f,
		0x99, 0xd8, 0x67, 0x26, 0x57, 0x66, 0x1c, 0x4a, 0x8d, 0x4f, 0xb9, 0x71, 0x29, 0x39, 0x76, 0x65,
		0xc7, 0xae, 0xf4, 0x58, 0x95, 0x1f, 0x8d, 0x12, 0x24, 0x52, 0x86, 0xf4, 0x3e, 0xf8, 0xdc, 0x7d,
		0x79, 0xe9, 0x3a, 0xc1, 0xe0, 0xc9, 0x9b, 0x56, 0xc7, 0xe6, 0xe8, 0x22, 0x59, 0x24, 0xdc, 0x83,
		0xb4, 0xe6, 0x63, 0x7c, 0x36, 0x1c, 0xb5, 0x1f, 0xf1, 0x6e, 0x61, 0x0d, 0xc8, 0x65, 0xed, 0x8f,
		0x22, 0xf1, 0xed, 0x37, 0xc6, 0x35, 0x20, 0xb5, 0x3f, 0xca, 0x19, 0xd2, 0xbd, 0xfa, 0x1f, 0xa8,
		0x4f, 0x88, 0xba, 0x9e, 0x21, 0xde, 0x2a, 0x3c, 0x19, 0xf2, 0x59, 0x15, 0xa3, 0xad, 0xca, 0x83,
		0x1b, 0x44, 0x7b, 0x34, 0x7b, 0x9f, 0xab, 0x9b, 0x6c, 0x6f, 0x99, 0x28, 0x47, 0x36, 0x5e, 0x9f,
		0x31, 0xbb, 0x67, 0x94, 0x44, 0x92, 0x9d, 0x0d, 0x60, 0x4f, 0xbf, 0xf0, 0x23, 0x4b, 0xc2, 0x0c,
		0x18, 0x6c, 0xb9, 0x41, 0xf5, 0xe8, 0x7b, 0x36, 0xcf, 0x87, 0x5f, 0xeb, 0x73, 0xf4, 0x35, 0xa7,
		0xfe, 0xfb, 0x47, 0x33, 0xf2, 0xc2, 0xf7, 0xa1, 0x3a, 0x9e, 0xb8, 0x2a, 0x9e, 0xb0, 0x1a, 0x9e,
		0x8c, 0x47, 0x2a, 0x80, 0x47, 0x02, 0x8f, 0x04, 0x1e, 0x09, 0x3c, 0x12, 0x78, 0x24, 0xf0, 0x48,
		0xe0, 0x91, 0xc0, 0x23, 0x81, 0x47, 0x02, 0x8f, 0x04, 0x1e, 0x09, 0x3c, 0x12, 0x78, 0x24, 0xf0,
		0x48, 0xe0, 0x91, 0x94, 0xf0, 0x48, 0x14, 0xc4, 0x40, 0xe2, 0x68, 0x24, 0x85, 0x55, 0xda, 0xc9,
		0x66, 0x91, 0x86, 0xc7, 0x1e, 0xd0, 0xf1, 0x48, 0xa3, 0x0d, 0x90, 0x91, 0x04, 0x26, 0x09, 0x4c,
		0x12, 0x98, 0x24, 0x55, 0x2a, 0x8b, 0x9e, 0x47, 0x8a, 0xf6, 0xa1, 0x65, 0x91, 0xf2, 0x60, 0x91,
		0xc0, 0x22, 0x81, 0x45, 0xda, 0x07, 0x16, 0x89, 0x4a, 0x21, 0xc6, 0x1b, 0x10, 0xe5, 0x96, 0x2f,
		0xbd, 0x96, 0x64, 0x11, 0x65, 0x46, 0x45, 0xc9, 0xa6, 0x30, 0x39, 0x15, 0x27, 0xbf, 0x02, 0xe5,
		0x56, 0xa4, 0xda, 0x14, 0xaa, 0x36, 0xc5, 0xaa, 0x45, 0xc1, 0xd2, 0xf3, 0x50, 0x06, 0x03, 0x01,
		0x49, 0xad, 0x78, 0xe3, 0x8d, 0x84, 0x6b, 0x3d, 0x3a, 0x5b, 0x74, 0x86, 0xd9, 0xf8, 0x7e, 0x8f,
		0x36, 0x66, 0x12, 0xc1, 0x0b, 0xd1, 0xb1, 0x7a, 0x8e, 0x24, 0x9f, 0xe4, 0x3c, 0xb5, 0x69, 0xd8,
		0x69, 0x2c, 0xc3, 0xb2, 0x5f, 0x83, 0xe9, 0x39, 0xd2, 0x46, 0x92, 0xb5, 0x99, 0x38, 0x1d, 0xa6,
		0x4e, 0x9f, 0xc9, 0xd3, 0x65, 0xfa, 0xb4, 0x9b, 0x40, 0xed, 0xa6, 0x50, 0xab, 0x49, 0xe4, 0x31,
		0x8d, 0x4c, 0x26, 0x32, 0x7e, 0x92, 0xe4, 0x91, 0xee, 0xa5, 0xf7, 0xf5, 0xd1, 0xf3, 0x1c, 0x61,
		0xb9, 0x9c, 0x17, 0x76, 0x84, 0x2c, 0xf2, 0x07, 0xbb, 0x21, 0x28, 0x0c, 0x42, 0x92, 0x79, 0x16,
		0x8e, 0xe3, 0x99, 0xcf, 0x9e, 0xd3, 0x96, 0xf6, 0x8b, 0xe0, 0xf7, 0x74, 0x66, 0xf6, 0x87, 0xa1,
		0x86, 0xa1, 0x86, 0xa1, 0x86, 0xa1, 0x86, 0xa1, 0x66, 0xbb, 0xaf, 0x3d, 0xdb, 0x95, 0xf9, 0xb2,
		0x06, 0x3b, 0x5d, 0x66, 0xdc, 0xf2, 0xce, 0x72, 0x9f, 0x04, 0x2b, 0xbe, 0x35, 0x48, 0x47, 0x84,
		0x2c, 0xfd, 0xa2, 0xd7, 0xb6, 0xcb, 0xae, 0x08, 0xe3, 0xcd, 0xff, 0xb0, 0x9c, 0x9e, 0xe0, 0x33,
		0x73, 0x73, 0xfb, 0x7f, 0xf6, 0xad, 0x96, 0xb4, 0x3d, 0xf7, 0xc2, 0x7e, 0xb2, 0x55, 0x75, 0x76,
		0xdf, 0xec, 0x6e, 0x89, 0x27, 0x4b, 0xda, 0xdf, 0x85, 0x92, 0x86, 0xea, 0x09, 0x56, 0x5b, 0xd3,
		0xa2, 0x67, 0xbd, 0xea, 0x17, 0xbd, 0x72, 0xa9, 0x74, 0x5c, 0x82, 0xf8, 0xe9, 0x16, 0xbf, 0x83,
		0xdd, 0xdc, 0xad, 0xb1, 0x53, 0x3e, 0x07, 0xc3, 0x1c, 0xae, 0xa5, 0x7b, 0xd3, 0xcf, 0xe7, 0x4a,
		0x90, 0x51, 0x9e, 0x99, 0xe7, 0x65, 0x5c, 0x5d, 0xd4, 0x8c, 0xfb, 0xae, 0x68, 0xd9, 0x1d, 0xbb,
		0x45, 0x35, 0x46, 0x34, 0xa9, 0xa8, 0x69, 0x11, 0x7a, 0xe2, 0x1a, 0x02, 0x96, 0x58, 0x20, 0xb5,
		0x10, 0x50, 0x2d, 0x97, 0x16, 0xe8, 0xf3, 0x74, 0xe9, 0xf3, 0x1d, 0x62, 0x0a, 0x6d, 0x57, 0x0a,
		0xff, 0xbb, 0xe5, 0xe8, 0x62, 0x0a, 0xe3, 0xfd, 0xc1, 0x14, 0x2a, 0xd9, 0x10, 0x4c, 0x21, 0xb3,
		0xad, 0x03, 0x53, 0x08, 0xa6, 0x70, 0xab, 0x27, 0x09, 0xa6, 0x90, 0x74, 0x4b, 0x30, 0x85, 0x9c,
		0x74, 0x0d, 0x98, 0x42, 0x30, 0x85, 0x9a, 0x44, 0x0f, 0x4c, 0x21, 0x98, 0x42, 0x20, 0xcb, 0x24,
		0x20, 0x4b, 0xc7, 0x6b, 0x59, 0x8e, 0x19, 0x95, 0x25, 0xf3, 0x03, 0xcb, 0xe9, 0xed, 0x81, 0x2b,
		0x81, 0x2b, 0x81, 0x2b, 0x81, 0x2b, 0x81, 0x2b, 0xd9, 0xee, 0xab, 0xdd, 0x65, 0xd6, 0xbe, 0x93,
		0x1a, 0x38, 0x7f, 0xca, 0xb8, 0x67, 0xf4, 0x8c, 0xf7, 0x26, 0xe0, 0x65, 0x77, 0xbf, 0x17, 0x35,
		0x9c, 0xed, 0xdc, 0x19, 0x9f, 0x68, 0xd8, 0xbb, 0x66, 0x49, 0x29, 0x7c, 0x97, 0xfd, 0xb8, 0xe3,
		0x0f, 0x70, 0xf8, 0x25, 0x67, 0x9e, 0x36, 0xde, 0xbe, 0xe4, 0xcd, 0xd3, 0xc6, 0xf0, 0xaf, 0xf9,
		0xf0, 0x8f, 0x9f, 0x85, 0xfe, 0x5b, 0xe1, 0x4b, 0xce, 0x2c, 0x46, 0xaf, 0x16, 0x4a, 0x5f, 0x72,
		0x66, 0xa9, 0x71, 0x74, 0xf8, 0xf5, 0xeb, 0xc7, 0x75, 0xdf, 0x73, 0xf4, 0xf3, 0xb8, 0xcf, 0x1f,
		0x8e, 0x6a, 0xe8, 0x38, 0xce, 0xdb, 0xfb, 0xcb, 0x3f, 0xb5, 0x9f, 0xe9, 0x7f, 0x0e, 0xb9, 0x4e,
		0xf5, 0xe8, 0x6f, 0x1a, 0xce, 0xf5, 0x60, 0x87, 0x99, 0x0f, 0xbd, 0x6a, 0xb8, 0x0c, 0x35, 0xac,
		0x4b, 0x0d, 0x87, 0xb7, 0xcf, 0x32, 0x3b, 0xe7, 0xe6, 0xe7, 0xc6, 0xcf, 0xfc, 0x87, 0x62, 0xff,
		0xec, 0xe8, 0x67, 0xa5, 0x3f, 0xfb, 0xe2, 0xdb, 0xa2, 0x5f, 0xcb, 0x7f, 0xa8, 0xf4, 0xcf, 0x96,
		0xfc, 0x4b, 0xb9, 0x7f, 0xb6, 0xe2, 0x1a, 0xa5, 0xfe, 0xe1, 0xdc, 0xaf, 0x0e, 0x5e, 0x2f, 0x2c,
		0x7b, 0x43, 0x71, 0xc9, 0x1b, 0x8e, 0x97, 0xbd, 0xe1, 0x78, 0xc9, 0x1b, 0x96, 0x7e, 0xa4, 0xc2,
		0x92, 0x37, 0x94, 0xfa, 0x6f, 0x73, 0xbf, 0x7f, 0xb8, 0xf8, 0x57, 0xcb, 0xfd, 0xa3, 0xb7, 0x65,
		0xff, 0x56, 0xe9, 0xbf, 0x9d, 0x1d, 0x1d, 0xc1, 0x30, 0xb1, 0x1b, 0x26, 0x88, 0x39, 0xbf, 0x98,
		0xef, 0xbe, 0xa1, 0x06, 0x6b, 0x9b, 0x40, 0xd6, 0xd6, 0x17, 0x2f, 0x9e, 0x14, 0xfa, 0x68, 0xdb,
		0x99, 0xfd, 0xc1, 0xdb, 0x82, 0xb7, 0x05, 0x6f, 0x0b, 0xde, 0x16, 0xbc, 0x2d, 0x78, 0x5b, 0xf0,
		0xb6, 0xe0, 0x6d, 0xc1, 0xdb, 0x82, 0xb7, 0x05, 0x6f, 0x0b, 0xde, 0x16, 0xbc, 0x2d, 0xd4, 0x30,
		0x78, 0x5b, 0xf0, 0xb6, 0x30, 0x4c, 0xe0, 0x6d, 0xc1, 0xdb, 0x82, 0xb7, 0x4d, 0x36, 0x6f, 0x9b,
		0xea, 0xbe, 0xbc, 0xc4, 0xd3, 0x93, 0xe6, 0xf6, 0x4b, 0xe2, 0x34, 0xa5, 0x68, 0x3c, 0x4e, 0xf4,
		0x67, 0x96, 0xa5, 0xa5, 0xba, 0x91, 0xb4, 0x69, 0x4b, 0xc3, 0x5f, 0x0b, 0xa2, 0x3f, 0x49, 0x66,
		0x78, 0xf3, 0xdd, 0x1c, 0xc2, 0x5b, 0xc3, 0x1d, 0x43, 0xd1, 0x13, 0x3b, 0x61, 0x8a, 0x99, 0xa0,
		0xe3, 0xbf, 0x9a, 0x1d, 0xd1, 0xf1, 0x9f, 0x7a, 0x63, 0x74, 0xfc, 0x5f, 0xf7, 0x89, 0xb1, 0xc5,
		0x38, 0xc6, 0x45, 0x41, 0xc2, 0xea, 0xf8, 0xa2, 0xc3, 0x71, 0xe1, 0x46, 0x2c, 0x4b, 0x85, 0x61,
		0xaf, 0x5a, 0xe4, 0x2c, 0x7d, 0xfc, 0x18, 0xb9, 0x26, 0xd9, 0x19, 0x53, 0x00, 0x23, 0xbd, 0xc0,
		0xb3, 0xb2, 0xa4, 0xe0, 0xb3, 0xcd, 0x54, 0xf3, 0x38, 0x17, 0xca, 0x1c, 0x97, 0x49, 0x2e, 0xc0,
		0x24, 0xc3, 0x24, 0xc3, 0x24, 0xef, 0x90, 0x49, 0xc6, 0x10, 0x1e, 0xd5, 0x0f, 0x14, 0x43, 0x78,
		0x52, 0x84, 0x36, 0xd9, 0x51, 0xa7, 0x0e, 0x53, 0xa7, 0xcf, 0xe4, 0xe9, 0x32, 0x7d, 0xda, 0x4d,
		0xa0, 0x76, 0x53, 0xa8, 0xd5, 0x24, 0xf2, 0x98, 0x46, 0x26, 0x13, 0xc9, 0x8f, 0x5e, 0xe7, 0xee,
		0x2b, 0x86, 0xf0, 0xa4, 0x41, 0x48, 0x30, 0x84, 0x07, 0x86, 0x1a, 0x86, 0x1a, 0x86, 0x1a, 0x86,
		0x7a, 0x6f, 0x0d, 0x35, 0x5a, 0x6b, 0x92, 0xfd, 0xa0, 0xb5, 0x26, 0xef, 0xfe, 0xe8, 0x6d, 0xc8,
		0xac, 0xb6, 0xa6, 0x45, 0x0f, 0xad, 0x35, 0x21, 0x7e, 0x9c, 0xb6, 0x99, 0x7f, 0x37, 0x0c, 0xe1,
		0x51, 0xb5, 0x37, 0x86, 0xf0, 0x60, 0x08, 0x0f, 0x86, 0xf0, 0xbc, 0x0b, 0xa8, 0x30, 0x84, 0x67,
		0x57, 0xf4, 0x39, 0x86, 0xf0, 0x28, 0x50, 0x9e, 0x18, 0xc2, 0x43, 0xb1, 0x21, 0x98, 0x42, 0x66,
		0x5b, 0x07, 0xa6, 0x10, 0x4c, 0xe1, 0x56, 0x4f, 0x12, 0x4c, 0x21, 0xe9, 0x96, 0x60, 0x0a, 0x39,
		0xe9, 0x1a, 0x30, 0x85, 0x60, 0x0a, 0x35, 0x89, 0x1e, 0x98, 0x42, 0x30, 0x85, 0x40, 0x96, 0x49,
		0x40, 0x96, 0x18, 0xc2, 0xc3, 0x87, 0x2b, 0x0b, 0xc0, 0x95, 0xc0, 0x95, 0xc0, 0x95, 0xc0, 0x95,
		0x09, 0xc2, 0x95, 0x68, 0xe6, 0xb8, 0x6b, 0xd8, 0x12, 0xcd, 0x1c, 0xd1, 0xcc, 0x91, 0xd2, 0xb9,
		0x46, 0x33, 0x47, 0x34, 0x73, 0x4c, 0x1b, 0xf3, 0x81, 0x66, 0x8e, 0x68, 0xe6, 0x88, 0x2e, 0x77,
		0x68, 0xe6, 0xb8, 0xd3, 0x86, 0x09, 0x62, 0x8e, 0x66, 0x8e, 0x60, 0x6d, 0xf7, 0x82, 0xb5, 0xc5,
		0x10, 0x1e, 0xf0, 0xb6, 0xe0, 0x6d, 0xc1, 0xdb, 0x82, 0xb7, 0x05, 0x6f, 0x0b, 0xde, 0x16, 0xbc,
		0x2d, 0x08, 0x03, 0xf0, 0xb6, 0x80, 0xc7, 0xe0, 0x6d, 0xc1, 0xdb, 0x82, 0xb7, 0x05, 0x6f, 0x0b,
		0x42, 0x0b, 0xbc, 0x2d, 0x78, 0x5b, 0x88, 0x39, 0x78, 0x5b, 0xf0, 0xb6, 0x49, 0xd9, 0x01, 0x43,
		0x78, 0xd8, 0x87, 0xf0, 0x70, 0x74, 0x54, 0x37, 0x12, 0x3e, 0x83, 0xe7, 0x3e, 0x7c, 0x06, 0x69,
		0xed, 0xee, 0x7f, 0x90, 0xa2, 0x9b, 0x98, 0xf9, 0xa7, 0xf8, 0xc1, 0x16, 0x1a, 0xc9, 0x5c, 0xd9,
		0x81, 0x3c, 0x97, 0x92, 0xb6, 0x17, 0x77, 0xe6, 0xda, 0x76, 0xab, 0x8e, 0x78, 0x11, 0x2e, 0x75,
		0x9d, 0x4c, 0xe6, 0xda, 0x7a, 0x9d, 0xd8, 0x29, 0x7f, 0x52, 0x2c, 0x96, 0x2b, 0xc5, 0x62, 0xae,
		0x72, 0x5c, 0xc9, 0x9d, 0x96, 0x4a, 0xf9, 0x72, 0x9e, 0xb0, 0x5a, 0x28, 0x73, 0xeb, 0xb7, 0x85,
		0x2f, 0xda, 0xbf, 0x0d, 0xce, 0xcf, 0xed, 0x39, 0x0e, 0xc7, 0x56, 0x0f, 0x81, 0xf0, 0x49, 0x0b,
		0x7f, 0xa8, 0xc4, 0x9c, 0xc9, 0xd0, 0xa4, 0xc0, 0xc0, 0x64, 0x48, 0x87, 0x8f, 0x24, 0xd5, 0xa4,
		0xd0, 0x18, 0x13, 0xf5, 0xaa, 0x5e, 0xed, 0x8a, 0x8a, 0x6f, 0x13, 0xf5, 0x2d, 0x4a, 0xf2, 0xed,
		0x21, 0xb8, 0x36, 0x49, 0xbc, 0x2e, 0x6a, 0xef, 0x89, 0x3a, 0x69, 0x56, 0xb3, 0x92, 0xa2, 0xfb,
		0x30, 0x72, 0x9a, 0xac, 0x8e, 0x6d, 0x86, 0xa7, 0xa7, 0x68, 0x59, 0x12, 0xf7, 0x88, 0xce, 0x1d,
		0x62, 0x75, 0x7f, 0x08, 0xdd, 0x1d, 0x42, 0xf7, 0x46, 0x95, 0xc0, 0x11, 0x29, 0xde, 0x24, 0x2a,
		0x5c, 0x85, 0x8a, 0x36, 0x49, 0x0a, 0x56, 0x8d, 0x62, 0xdd, 0x5e, 0x0d, 0x6e, 0xb7, 0xc2, 0x96,
		0xf2, 0xac, 0x5a, 0x8e, 0x13, 0x21, 0xbf, 0x0a, 0x04, 0x56, 0xaf, 0xa0, 0x6e, 0x27, 0x9a, 0x9b,
		0x0b, 0xd4, 0x16, 0xc2, 0x94, 0x69, 0x8d, 0xb2, 0x1c, 0xb7, 0x13, 0xa2, 0x38, 0x6e, 0xaa, 0x64,
		0xf4, 0xb5, 0xa2, 0x41, 0x85, 0xca, 0x5a, 0xba, 0xa9, 0x4c, 0xcd, 0x54, 0x9f, 0x72, 0xa9, 0x3a,
		0x95, 0x92, 0x2c, 0x45, 0x92, 0x2c, 0xf5, 0x91, 0x24, 0xa5, 0x51, 0xaf, 0x82, 0x57, 0x35, 0x68,
		0x2f, 0xea, 0xdd, 0x68, 0xb5, 0x5a, 0xa2, 0x2b, 0xd5, 0x89, 0xc8, 0x74, 0x67, 0xc8, 0x68, 0x75,
		0x55, 0xa0, 0x40, 0x69, 0x9e, 0xb7, 0xf2, 0xbe, 0x8e, 0x14, 0x79, 0xda, 0x74, 0x79, 0xd8, 0x54,
		0x79, 0xd6, 0xe4, 0x79, 0xd4, 0xe4, 0x79, 0xd2, 0xa4, 0x79, 0xd0, 0xc9, 0x82, 0xd9, 0xca, 0xf3,
		0x94, 0x09, 0x47, 0x8d, 0x29, 0x1e, 0x25, 0xa6, 0xea, 0x11, 0x12, 0x36, 0x6c, 0x27, 0x6c, 0xc8,
		0x4e, 0x40, 0x2d, 0xea, 0x68, 0xa8, 0x4e, 0x5d, 0x2c, 0xc2, 0xd9, 0x10, 0x9d, 0xad, 0xfe, 0x43,
		0x57, 0x43, 0xf3, 0x7e, 0x42, 0x99, 0xcf, 0x46, 0x52, 0x88, 0x83, 0x0f, 0xaa, 0x9c, 0x3a, 0xe5,
		0xa3, 0x03, 0x69, 0x47, 0x03, 0xc2, 0xb1, 0x83, 0x63, 0x07, 0xc7, 0x2e, 0x25, 0x8e, 0x9d, 0xf2,
		0x86, 0xd3, 0x04, 0x0d, 0xa5, 0x89, 0x1a, 0x46, 0x13, 0x38, 0x4d, 0x94, 0x0d, 0x9f, 0xa9, 0x1b,
		0x3a, 0xb3, 0x75, 0xcc, 0xa5, 0xef, 0x88, 0x4b, 0x90, 0x14, 0x43, 0xda, 0x50, 0x99, 0xa3, 0x61,
		0xf2, 0x2e, 0x1d, 0xef, 0x6e, 0x7b, 0x9e, 0x40, 0xb2, 0x40, 0xb2, 0x40, 0xb2, 0x40, 0xb2, 0x3b,
		0x88, 0x64, 0x95, 0x8f, 0xb6, 0xa2, 0x1d, 0x5d, 0x05, 0x24, 0x0b, 0x24, 0x0b, 0x24, 0x0b, 0x24,
		0x0b, 0x24, 0x0b, 0x24, 0x0b, 0x24, 0x0b, 0x24, 0x0b, 0xcf, 0x93, 0xdb, 0xf3, 0x44, 0xf2, 0xe5,
		0x96, 0xc9, 0x97, 0x4a, 0xf2, 0xf4, 0x0c, 0xfe, 0x94, 0xcb, 0xc8, 0x55, 0x4e, 0x61, 0xa6, 0xe5,
		0xb0, 0x1e, 0x59, 0x59, 0xa2, 0xa5, 0x8a, 0xf2, 0x66, 0xe5, 0x79, 0x96, 0x05, 0xe4, 0x59, 0x26,
		0x00, 0x9f, 0x20, 0xcf, 0x72, 0xf5, 0x6f, 0x84, 0x3c, 0x4b, 0x90, 0x18, 0x20, 0x31, 0x40, 0x62,
		0x24, 0x9c, 0xc4, 0x40, 0x9e, 0xa5, 0x82, 0xb5, 0x11, 0x9d, 0xd2, 0xa4, 0xc4, 0x16, 0x29, 0x33,
		0x44, 0xa7, 0xc0, 0x11, 0xd0, 0x72, 0x04, 0xc8, 0xb3, 0x84, 0x63, 0x07, 0xc7, 0x0e, 0x8e, 0x5d,
		0xa2, 0x1d, 0x3b, 0x44, 0xa7, 0x54, 0x4a, 0x24, 0xa2, 0x53, 0x2b, 0xc9, 0x1e, 0xa2, 0x53, 0x4b,
		0x8e, 0x16, 0xd1, 0x29, 0x78, 0x9e, 0x40, 0xb2, 0x40, 0xb2, 0x40, 0xb2, 0x40, 0xb2, 0xc8, 0xb3,
		0x5c, 0x1f, 0xc9, 0x22, 0xcf, 0x12, 0x48, 0x16, 0x48, 0x16, 0x48, 0x16, 0x48, 0x16, 0x48, 0x16,
		0x48, 0x16, 0x48, 0x16, 0x48, 0x36, 0xe5, 0x9e, 0x27, 0xf2, 0x2c, 0xb7, 0xcc, 0xb3, 0x54, 0x35,
		0x85, 0x84, 0x39, 0xcd, 0x52, 0xc1, 0xe0, 0x90, 0x2d, 0xb2, 0x2c, 0x0f, 0x18, 0xa5, 0x4d, 0x95,
		0x94, 0xe9, 0x90, 0xae, 0xcc, 0x56, 0xe9, 0xa8, 0x8c, 0xf2, 0xb4, 0x99, 0x24, 0xad, 0x2f, 0x07,
		0xeb, 0xbd, 0x63, 0x4d, 0x89, 0xd9, 0x56, 0x52, 0x18, 0x25, 0x64, 0x03, 0xc1, 0x60, 0x11, 0x88,
		0xf5, 0xe4, 0x60, 0xf5, 0xd3, 0x5c, 0xe3, 0x24, 0x33, 0x7e, 0xf0, 0xbd, 0x6b, 0x6e, 0x90, 0x89,
		0x1d, 0x03, 0x9d, 0xd1, 0x02, 0x6b, 0x4a, 0xcf, 0x66, 0xb9, 0xd6, 0x1b, 0x73, 0x16, 0xdb, 0x70,
		0x13, 0x93, 0x1c, 0xc4, 0xe0, 0xdb, 0x6e, 0x22, 0x4e, 0x5b, 0x92, 0x0d, 0xca, 0x48, 0x05, 0x65,
		0xe4, 0xc1, 0x2c, 0x49, 0x10, 0x3e, 0x98, 0x84, 0x69, 0xa8, 0x4d, 0xb3, 0x99, 0x33, 0x4f, 0x8e,
		0xf7, 0xb8, 0x05, 0x2d, 0x18, 0x0b, 0x4c, 0xb4, 0xce, 0x86, 0x4f, 0x78, 0xbb, 0x72, 0x84, 0xad,
		0xe9, 0x3d, 0x15, 0x74, 0x9e, 0x82, 0xab, 0xa3, 0x9a, 0xaf, 0x53, 0xce, 0xcf, 0x29, 0xe7, 0xe3,
		0xd4, 0x5c, 0x2d, 0x3d, 0xee, 0xe3, 0xb6, 0x05, 0x04, 0x99, 0x27, 0xdf, 0x6a, 0x89, 0x4e, 0xcf,
		0x31, 0x7d, 0x11, 0x48, 0xcb, 0x97, 0xea, 0x4a, 0x84, 0xe6, 0x56, 0x46, 0x57, 0x76, 0x86, 0x6b,
		0xab, 0xfa, 0xfa, 0x92, 0x5d, 0x63, 0xb2, 0xeb, 0x4c, 0x73, 0xad, 0x93, 0xc1, 0x49, 0x28, 0xab,
		0x17, 0x52, 0x34, 0x78, 0x61, 0x4e, 0x80, 0x95, 0x15, 0x76, 0x2a, 0xbc, 0xf2, 0xca, 0xaf, 0x3e,
		0x85, 0x0a, 0x20, 0x54, 0x05, 0x54, 0x2a, 0x81, 0x5c, 0x35, 0x90, 0xab, 0x08, 0x5a, 0x55, 0xa1,
		0x96, 0x98, 0x55, 0x15, 0x82, 0x53, 0xa5, 0x42, 0xe2, 0x05, 0x85, 0xab, 0x3c, 0xc3, 0x68, 0xea,
		0x22, 0x44, 0xeb, 0x2b, 0x3e, 0xf1, 0x0b, 0xd1, 0xb1, 0x7a, 0x8e, 0x24, 0x99, 0xbf, 0x9f, 0x09,
		0xc3, 0x05, 0x6a, 0x33, 0x55, 0x1a, 0x8a, 0xbf, 0xbf, 0xda, 0xdc, 0x06, 0x32, 0x15, 0x4b, 0xa9,
		0x6a, 0x19, 0x54, 0x2e, 0xb5, 0xea, 0x65, 0x53, 0xc1, 0x6c, 0xaa, 0x98, 0x47, 0x25, 0xab, 0x55,
		0xcd, 0x8a, 0x55, 0x74, 0xfc, 0x08, 0x94, 0x67, 0x4b, 0xcc, 0x49, 0xbc, 0xfa, 0xc2, 0xce, 0x39,
		0xdf, 0x2d, 0x9f, 0xd4, 0x51, 0xa4, 0x1f, 0x54, 0x26, 0xc4, 0xb6, 0xbc, 0xef, 0xc2, 0xff, 0x61,
		0x2a, 0xad, 0xd3, 0x9a, 0x3b, 0xad, 0xe9, 0x6d, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10,
		0x94, 0x4a, 0x7c, 0xcf, 0x76, 0xe5, 0x71, 0x81, 0xd0, 0x1e, 0x54, 0x08, 0x96, 0xa6, 0x49, 0xab,
		0x1b, 0xfd, 0xfc, 0xa4, 0x1b, 0xb4, 0x4f, 0x99, 0x66, 0x17, 0x6f, 0x42, 0x9c, 0x6e, 0x17, 0xef,
		0xc3, 0x95, 0x97, 0x35, 0x96, 0x59, 0xea, 0xfc, 0x2c, 0xa2, 0x6b, 0x3c, 0x2d, 0x02, 0x84, 0xe9,
		0x78, 0x73, 0x22, 0x50, 0x2c, 0x9c, 0x16, 0x4f, 0xcb, 0x95, 0xc2, 0x69, 0x09, 0xb2, 0x90, 0x08,
		0x03, 0x41, 0xb7, 0x6a, 0x63, 0x2f, 0xdc, 0xee, 0x30, 0xb0, 0x44, 0xee, 0x75, 0x4f, 0xec, 0x02,
		0xa7, 0x1b, 0x4e, 0x37, 0x9c, 0x6e, 0x38, 0xdd, 0x70, 0xba, 0xe1, 0x74, 0xc3, 0xe9, 0x86, 0xd3,
		0x0d, 0xa7, 0x1b, 0x4e, 0x37, 0x99, 0xd3, 0xad, 0xd8, 0x90, 0x11, 0xb6, 0x84, 0x98, 0x70, 0xc9,
		0xa9, 0x5a, 0x43, 0x30, 0x58, 0x86, 0x89, 0x56, 0x11, 0x46, 0xa9, 0x78, 0x5a, 0x3a, 0x33, 0x2e,
		0x44, 0xd0, 0xf2, 0xed, 0xee, 0xe0, 0x56, 0x19, 0x5e, 0xc7, 0x90, 0xcf, 0xc2, 0xb8, 0x13, 0x41,
		0xe8, 0x45, 0x7e, 0x75, 0xef, 0x44, 0x20, 0xfc, 0xef, 0x61, 0x46, 0xbe, 0x31, 0xca, 0x33, 0x37,
		0x4c, 0xa3, 0xee, 0x5b, 0x9d, 0x8e, 0xdd, 0x32, 0xab, 0xee, 0x93, 0xed, 0x0a, 0xe1, 0x8b, 0xf6,
		0x57, 0xf7, 0xf0, 0xee, 0xfe, 0x8f, 0x9a, 0x59, 0xaf, 0x1e, 0x19, 0xbf, 0x47, 0x59, 0x71, 0x83,
		0x75, 0x06, 0xb0, 0x62, 0xf0, 0xce, 0x96, 0x68, 0xf7, 0x7c, 0x11, 0x64, 0x08, 0x35, 0x1e, 0xb1,
		0xe7, 0xbb, 0xc8, 0x03, 0xa6, 0x6e, 0x4c, 0xc1, 0xee, 0x0c, 0x2f, 0x74, 0x8a, 0x75, 0xc9, 0x0a,
		0x74, 0x6d, 0x52, 0x09, 0x8e, 0x44, 0x65, 0xfb, 0x28, 0x2e, 0x62, 0x8c, 0xd7, 0x65, 0x2a, 0x26,
		0x8a, 0x8a, 0x5d, 0xb2, 0xc3, 0xc4, 0xfe, 0xec, 0x6c, 0x4a, 0x71, 0x56, 0x69, 0xba, 0xa1, 0xc1,
		0x52, 0x87, 0x74, 0x17, 0x7c, 0xef, 0xd6, 0x45, 0xf3, 0xf7, 0xf0, 0x1b, 0x35, 0x47, 0x57, 0x3c,
		0xba, 0xe1, 0x4a, 0x06, 0x4c, 0xa8, 0x93, 0xc4, 0xbe, 0x92, 0xca, 0x51, 0x15, 0x83, 0x27, 0xe6,
		0x6c, 0xb4, 0xaa, 0xca, 0x56, 0x83, 0x32, 0xcf, 0xb4, 0x80, 0x3c, 0xd3, 0x34, 0xd1, 0x6b, 0xc8,
		0x33, 0x45, 0x9e, 0x29, 0xf2, 0x4c, 0x11, 0xe1, 0x40, 0x84, 0x43, 0x9b, 0x0a, 0x66, 0x07, 0x75,
		0x88, 0x70, 0x20, 0xcf, 0x94, 0x16, 0x0f, 0x22, 0xcf, 0x14, 0x06, 0x01, 0x06, 0x01, 0x06, 0x01,
		0x06, 0x01, 0x21, 0xef, 0xf7, 0x7e, 0x10, 0xf2, 0x5e, 0x6d, 0x1f, 0x84, 0xbc, 0x37, 0x12, 0x01,
		0x84, 0xbc, 0xd3, 0x25, 0x0b, 0x08, 0xc3, 0x24, 0xc8, 0xed, 0x46, 0x9e, 0x29, 0x9c, 0x6e, 0x38,
		0xdd, 0x70, 0xba, 0xe1, 0x74, 0xc3, 0xe9, 0x86, 0xd3, 0x0d, 0xa7, 0x1b, 0x4e, 0x37, 0x9c, 0xee,
		0xdd, 0x71, 0xba, 0x91, 0x67, 0xca, 0x6b, 0x19, 0x90, 0x67, 0xaa, 0xd2, 0x03, 0x46, 0x9e, 0x29,
		0xf2, 0x4c, 0xf7, 0x91, 0xe0, 0x40, 0x9e, 0x29, 0x5f, 0x9e, 0xa9, 0xca, 0x6c, 0x43, 0x23, 0x01,
		0x69, 0xa6, 0x0a, 0x06, 0x6c, 0xa8, 0x93, 0x43, 0x8c, 0x79, 0x51, 0x2f, 0xb1, 0xa9, 0x98, 0xf9,
		0xf2, 0xae, 0x8c, 0x6a, 0x1b, 0xff, 0xb2, 0x45, 0xcb, 0xf4, 0x70, 0x0c, 0x65, 0xa0, 0xae, 0x85,
		0x76, 0xb4, 0x1e, 0x1a, 0x67, 0x33, 0x92, 0xb9, 0x68, 0x9c, 0x8d, 0xc6, 0xd9, 0xef, 0x2c, 0x84,
		0xc6, 0xd9, 0x2a, 0x16, 0x44, 0x41, 0x83, 0x81, 0x82, 0x86, 0x94, 0x41, 0x1c, 0xe5, 0x05, 0x0d,
		0x44, 0x43, 0xb1, 0x17, 0x7b, 0x11, 0xaa, 0x87, 0x63, 0x8f, 0x1f, 0x0b, 0x65, 0x81, 0xc3, 0x69,
		0x2e, 0x97, 0x43, 0x7d, 0x83, 0xca, 0x85, 0x11, 0x59, 0xd7, 0xaa, 0x91, 0xd9, 0xc9, 0x44, 0x44,
		0xd6, 0xb9, 0x22, 0xeb, 0x4a, 0xa7, 0x8f, 0xcf, 0xea, 0x97, 0x32, 0x22, 0xeb, 0xe3, 0x0f, 0xce,
		0x1a, 0x59, 0xcf, 0xe7, 0x72, 0x08, 0xae, 0x27, 0xe4, 0x26, 0x4f, 0x4b, 0x01, 0x67, 0x70, 0xbd,
		0x9c, 0x83, 0x18, 0x24, 0xc5, 0x3c, 0xd0, 0xad, 0x8a, 0xb8, 0xfa, 0xce, 0xc4, 0xd5, 0x8f, 0x0b,
		0xb9, 0xd3, 0x33, 0x23, 0x0a, 0x71, 0x9e, 0x19, 0xd5, 0x57, 0x29, 0xdc, 0xc0, 0xf6, 0xdc, 0xc0,
		0x90, 0x5e, 0xf8, 0xb2, 0xd1, 0xf1, 0xfc, 0xaf, 0xee, 0xd5, 0x7d, 0xcd, 0xa8, 0xf7, 0x5c, 0x57,
		0x38, 0xc1, 0xc7, 0xaf, 0x2e, 0x02, 0xf2, 0x2a, 0x1c, 0xe7, 0xfd, 0x09, 0xc8, 0xa7, 0x4a, 0xc8,
		0xa0, 0xdd, 0xf7, 0xa2, 0x54, 0xa1, 0xe3, 0x8b, 0xe0, 0xd9, 0xf4, 0x45, 0xbb, 0xd7, 0x52, 0x1e,
		0x8e, 0x37, 0xa6, 0xeb, 0x15, 0x66, 0xb7, 0x4a, 0x13, 0xb3, 0x34, 0xd0, 0x16, 0x60, 0x96, 0xc0,
		0x2c, 0x81, 0x59, 0x02, 0xb3, 0x94, 0x64, 0x66, 0x29, 0x7d, 0x9d, 0x33, 0x80, 0x7a, 0xf4, 0xa1,
		0x9e, 0xc2, 0x69, 0x39, 0x3f, 0x74, 0x3c, 0xef, 0x86, 0xd6, 0xd9, 0xb8, 0xfd, 0x2e, 0xfc, 0x67,
		0x61, 0xb5, 0x8d, 0xbb, 0x91, 0x99, 0xfe, 0xea, 0x8e, 0xfd, 0x54, 0x20, 0x8f, 0x94, 0x22, 0x8f,
		0xb5, 0x0f, 0x1a, 0xde, 0x3f, 0xf2, 0x78, 0x57, 0x91, 0xb3, 0x9d, 0xca, 0xe3, 0x1d, 0xe6, 0xcf,
		0xa5, 0xbf, 0x4b, 0xec, 0x3f, 0xc2, 0xef, 0x81, 0xe6, 0xb0, 0xab, 0x9a, 0x42, 0x34, 0x87, 0x4d,
		0x2c, 0xde, 0x42, 0x2e, 0x95, 0x1e, 0x3c, 0x85, 0x5c, 0x2a, 0x25, 0x17, 0x02, 0xb9, 0x54, 0x60,
		0xbc, 0xc0, 0x78, 0x81, 0xf1, 0x02, 0xe3, 0x45, 0x26, 0xf1, 0xc8, 0xa5, 0xe2, 0x64, 0x8f, 0x90,
		0x4b, 0xb5, 0xad, 0xd8, 0x22, 0x97, 0x6a, 0x4d, 0x29, 0x40, 0x2e, 0x15, 0xf8, 0x36, 0xdd, 0x66,
		0x0c, 0x51, 0x85, 0x15, 0xad, 0x31, 0x72, 0xa9, 0xd8, 0x1c, 0xe6, 0x45, 0x8e, 0x33, 0x72, 0xa9,
		0x90, 0x4b, 0xb5, 0x07, 0xda, 0x1d, 0xb9, 0x54, 0xc8, 0xa5, 0x02, 0xb3, 0x04, 0x66, 0x09, 0xcc,
		0x12, 0x98, 0x25, 0xe4, 0x52, 0x01, 0xf5, 0x24, 0x01, 0xf5, 0x20, 0x97, 0x0a, 0xb9, 0x54, 0xc8,
		0xa5, 0x4a, 0x97, 0xf7, 0x8f, 0x5c, 0x2a, 0xea, 0x5c, 0xaa, 0xb4, 0x77, 0x42, 0x8c, 0x52, 0xa9,
		0xd0, 0x00, 0x91, 0x4a, 0x4c, 0xb5, 0x8a, 0x67, 0x0a, 0xdb, 0x1e, 0x0e, 0x05, 0x32, 0x8d, 0xdd,
		0x0e, 0x03, 0xaf, 0x23, 0xcd, 0xae, 0x2f, 0xc4, 0x4b, 0x57, 0x89, 0xf4, 0x8c, 0xd3, 0xf7, 0x66,
		0x16, 0x46, 0xff, 0x43, 0x46, 0x30, 0x8f, 0xfe, 0x87, 0xe8, 0x7f, 0xf8, 0xce, 0x42, 0xe8, 0x7f,
		0x98, 0x50, 0x7e, 0x0f, 0x39, 0xbb, 0x1a, 0xb0, 0x25, 0x72, 0x76, 0xb7, 0x61, 0xa3, 0x5c, 0x12,
		0x16, 0x2a, 0xbe, 0x08, 0xd1, 0xfa, 0x69, 0x8a, 0xa4, 0x84, 0xa9, 0x23, 0x08, 0xa5, 0xa8, 0x5c,
		0x18, 0xa1, 0x14, 0xad, 0x2a, 0x98, 0x9d, 0xe6, 0x43, 0x28, 0x05, 0xa1, 0x14, 0x5a, 0x92, 0x51,
		0x25, 0xf9, 0x35, 0x8d, 0x74, 0xc3, 0xd9, 0xaf, 0x5e, 0x4f, 0xd2, 0xd9, 0xc4, 0x65, 0x1b, 0xa6,
		0xc9, 0x48, 0x1e, 0xa3, 0x8c, 0x05, 0x16, 0x12, 0x16, 0x12, 0x16, 0x32, 0xd1, 0x16, 0x12, 0x65,
		0x2c, 0x73, 0x3f, 0x18, 0xb6, 0xbb, 0xda, 0x3e, 0xa8, 0x61, 0xd9, 0x48, 0x04, 0x58, 0x6b, 0x58,
		0x4a, 0xa5, 0x63, 0xcc, 0xd9, 0x4d, 0x86, 0x6d, 0xa0, 0x5b, 0x15, 0x35, 0x2c, 0xbb, 0x92, 0xcd,
		0x55, 0xaa, 0xe4, 0x0b, 0xc6, 0x75, 0xed, 0xea, 0xde, 0xac, 0x57, 0x8d, 0x01, 0x08, 0x32, 0x94,
		0xc5, 0x17, 0x75, 0x3a, 0xa7, 0x8b, 0x9c, 0xd4, 0xbd, 0x49, 0xdc, 0x7a, 0xf7, 0x4c, 0xa1, 0xbb,
		0x90, 0xa3, 0xb5, 0x8a, 0x48, 0xed, 0x54, 0x8e, 0xd6, 0x0c, 0xbb, 0x93, 0xfe, 0xc6, 0x57, 0xf7,
		0x5e, 0x47, 0xd6, 0xe2, 0xef, 0x83, 0x06, 0x58, 0x2b, 0xd3, 0x7c, 0x68, 0x80, 0x95, 0x54, 0xde,
		0x0a, 0xc1, 0x74, 0x3d, 0xbc, 0x14, 0x82, 0xe9, 0x5b, 0x5d, 0x04, 0x04, 0xd3, 0x0d, 0x84, 0x0a,
		0x10, 0x2a, 0xd0, 0xab, 0x82, 0xd9, 0xa1, 0x17, 0x42, 0x05, 0x08, 0xa6, 0xd3, 0xa2, 0x41, 0x04,
		0xd3, 0xf5, 0x1a, 0x49, 0x04, 0xd3, 0x61, 0x21, 0x61, 0x21, 0x61, 0x21, 0x93, 0x6d, 0x21, 0x11,
		0x4c, 0x9f, 0xfb, 0x41, 0x30, 0x7d, 0xb5, 0x7d, 0x10, 0x4c, 0xdf, 0x48, 0x04, 0x10, 0x4c, 0x4f,
		0x8d, 0x18, 0x20, 0x98, 0xae, 0xe0, 0xb8, 0x10, 0x4c, 0x5f, 0xd1, 0x14, 0x23, 0x98, 0x9e, 0x6a,
		0x7f, 0x75, 0xa1, 0xdf, 0x8a, 0x60, 0x3a, 0xaf, 0xee, 0x42, 0x30, 0x7d, 0x3d, 0x62, 0x27, 0x11,
		0xc1, 0xf4, 0xb4, 0x77, 0x3e, 0x99, 0x89, 0xa5, 0xa3, 0x03, 0x0a, 0x95, 0xdc, 0x26, 0x43, 0x5e,
		0x53, 0xd8, 0x0a, 0x65, 0x5a, 0x42, 0x53, 0xd9, 0x12, 0x45, 0x49, 0x3a, 0x87, 0xd2, 0x34, 0x0e,
		0xe5, 0xed, 0x4f, 0x0a, 0x68, 0x7f, 0x92, 0x04, 0xc6, 0x13, 0xed, 0x4f, 0xd6, 0xf8, 0x4a, 0x0a,
		0xdb, 0x9f, 0xf4, 0x5c, 0x29, 0xfc, 0x80, 0xa2, 0x01, 0x4a, 0xb4, 0x32, 0xb2, 0xb6, 0x12, 0xa4,
		0x0e, 0xa8, 0xb1, 0x27, 0xb2, 0xb6, 0xd2, 0x04, 0x70, 0xd4, 0x67, 0x6d, 0xf9, 0xbe, 0xa7, 0x50,
		0x99, 0xcc, 0x5d, 0x84, 0x68, 0x7d, 0x9a, 0x98, 0x6c, 0x1e, 0x31, 0x59, 0xc4, 0x64, 0x93, 0xc8,
		0x71, 0x21, 0x26, 0xab, 0x5e, 0x55, 0xc5, 0x0b, 0x5b, 0x3d, 0xf9, 0x2c, 0x5c, 0x69, 0xb7, 0x42,
		0xc0, 0x6c, 0x76, 0x2c, 0xdb, 0xa1, 0x13, 0xcd, 0xd1, 0xed, 0x5a, 0xb4, 0x29, 0x91, 0xec, 0xd0,
		0x24, 0x9c, 0x90, 0x2b, 0x39, 0x0e, 0x65, 0xc7, 0xa8, 0xf4, 0xb8, 0x94, 0x1f, 0xbb, 0x12, 0x64,
		0x57, 0x86, 0xbc, 0x4a, 0x91, 0x46, 0x39, 0x12, 0x29, 0xc9, 0xf8, 0xd1, 0x90, 0x25, 0xb0, 0x2c,
		0x43, 0x79, 0xe5, 0x22, 0xe5, 0x9d, 0x89, 0x54, 0xd8, 0x09, 0xe1, 0x16, 0xb4, 0xb9, 0x2d, 0xa3,
		0x1f, 0xda, 0x3b, 0x6f, 0x70, 0xe5, 0xba, 0xc4, 0x9b, 0x31, 0xe5, 0xbc, 0xc4, 0xfb, 0x71, 0x27,
		0x3d, 0x8c, 0xc5, 0x9d, 0x2b, 0xf9, 0x81, 0x58, 0x33, 0x4c, 0x8b, 0x0a, 0x43, 0x4e, 0xcc, 0x9c,
		0xa8, 0xe4, 0x4f, 0x8a, 0xc5, 0x72, 0xa5, 0x58, 0xcc, 0x55, 0x8e, 0x2b, 0xb9, 0xd3, 0x52, 0x29,
		0x5f, 0xce, 0x97, 0x20, 0x3d, 0xa9, 0xb0, 0x56, 0xf4, 0xab, 0x37, 0x52, 0x12, 0x3e, 0x27, 0xb8,
		0x9d, 0x99, 0x47, 0xab, 0x6d, 0xb6, 0x9e, 0x45, 0xeb, 0x5b, 0xd0, 0x7b, 0xa1, 0x07, 0x20, 0x53,
		0xbb, 0x01, 0x79, 0x00, 0x79, 0x00, 0x79, 0x00, 0x79, 0x00, 0x79, 0x00, 0x79, 0x00, 0x79, 0x00,
		0x79, 0x00, 0x79, 0x40, 0x7a, 0x80, 0x3c, 0xf6, 0x0a, 0x79, 0x74, 0xad, 0xd6, 0x37, 0x21, 0xcd,
		0x8e, 0xe7, 0xbf, 0x58, 0x92, 0x07, 0x7e, 0x4c, 0x6f, 0x09, 0x0c, 0x02, 0x0c, 0x02, 0x0c, 0x02,
		0x0c, 0x02, 0x0c, 0x02, 0x0c, 0x02, 0x0c, 0x02, 0x0c, 0x02, 0x0c, 0x02, 0xe9, 0x01, 0x06, 0xd9,
		0x47, 0x0c, 0xe2, 0x08, 0xf7, 0x29, 0xac, 0x34, 0xe2, 0xc3, 0x20, 0xd1, 0x96, 0xc0, 0x20, 0xc0,
		0x20, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20, 0xc0, 0x20, 0x90,
		0x1e, 0x60, 0x90, 0xbd, 0xc1, 0x20, 0x5e, 0x4f, 0x9a, 0x5e, 0xc7, 0xf4, 0xfc, 0xb6, 0xf0, 0xe9,
		0xe1, 0xc7, 0xd4, 0x6e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e,
		0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x90, 0x1e, 0x20, 0x8f, 0xbd, 0x41, 0x1e, 0xbe, 0x68, 0x09,
		0xfb, 0xbb, 0x68, 0x9b, 0xae, 0xd5, 0xfa, 0x46, 0x0f, 0x3d, 0xa6, 0xb7, 0x03, 0xf6, 0x00, 0xf6,
		0x00, 0xf6, 0x00, 0xf6, 0x00, 0xf6, 0x00, 0xf6, 0x00, 0xf6, 0x00, 0xf6, 0x00, 0xf6, 0x80, 0xf4,
		0x00, 0x7b, 0xec, 0x0d, 0xf6, 0x90, 0xbe, 0xe5, 0x06, 0x2f, 0xb6, 0x0c, 0x9b, 0x50, 0xf5, 0x7c,
		0x41, 0x0f, 0x3f, 0xe6, 0x76, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
		0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x81, 0xf4, 0x00, 0x81, 0xec, 0x1f, 0x02, 0xf9, 0x6f,
		0x4f, 0xf4, 0x84, 0xd9, 0xe9, 0x39, 0x0e, 0x23, 0x08, 0x99, 0xd8, 0x14, 0x38, 0x04, 0x38, 0x04,
		0x38, 0x04, 0x38, 0x04, 0x38, 0x04, 0x38, 0x04, 0x38, 0x04, 0x38, 0x04, 0x38, 0x04, 0xd2, 0x03,
		0x1c, 0xb2, 0x37, 0x38, 0xa4, 0xe7, 0x7e, 0x73, 0xbd, 0xbf, 0x5c, 0x93, 0x25, 0x07, 0x6b, 0x72,
		0x33, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0,
		0x0e, 0xe0, 0x0e, 0x48, 0x0f, 0x70, 0xc7, 0xde, 0xe1, 0x0e, 0x97, 0x15, 0x78, 0xa0, 0xf6, 0x03,
		0xc8, 0x03, 0xc8, 0x03, 0xc8, 0x03, 0xc8, 0x03, 0xc8, 0x03, 0xc8, 0x03, 0xbe, 0x23, 0x90, 0x07,
		0xa4, 0x07, 0xc8, 0x23, 0xc1, 0xc8, 0x23, 0xd1, 0xe3, 0xd9, 0xcf, 0x5d, 0xd7, 0x93, 0xe1, 0x30,
		0x73, 0x9a, 0x29, 0xed, 0x41, 0xeb, 0x59, 0xbc, 0x58, 0x5d, 0x2b, 0x6c, 0x0c, 0x9c, 0xc9, 0x7a,
		0x5d, 0xe1, 0xb6, 0x42, 0x14, 0x60, 0xba, 0x42, 0xfe, 0xe5, 0xf9, 0xdf, 0x4c, 0xdb, 0x0d, 0xa4,
		0xe5, 0xb6, 0x44, 0x76, 0xf6, 0x85, 0x60, 0xee, 0x95, 0xec, 0x4b, 0xd7, 0x09, 0xb2, 0x81, 0xfd,
		0xe4, 0x5a, 0x8e, 0xed, 0x3e, 0x99, 0x5d, 0xdf, 0x93, 0x5e, 0xcb, 0x73, 0x82, 0xec, 0xc0, 0xa1,
		0x33, 0xa5, 0xc8, 0x3e, 0x39, 0xde, 0xa3, 0xe5, 0x64, 0x03, 0x69, 0x49, 0x91, 0x8d, 0xfc, 0x8d,
		0x20, 0x2b, 0x7c, 0xdf, 0xf3, 0x03, 0x02, 0xaf, 0x23, 0x13, 0x48, 0xbf, 0xd7, 0x92, 0x6e, 0xe4,
		0xe0, 0xdc, 0xc6, 0xdf, 0xee, 0x66, 0xf8, 0xc9, 0x2f, 0xa3, 0x0f, 0xde, 0x9c, 0xf9, 0xef, 0x60,
		0xf6, 0x85, 0xe6, 0x75, 0xd7, 0x09, 0x9a, 0xf7, 0xa3, 0x6f, 0x56, 0x1b, 0x7d, 0xb1, 0xe6, 0x5d,
		0xf0, 0xbd, 0x5b, 0x17, 0xcd, 0xdf, 0xc3, 0xef, 0xd5, 0xbc, 0x1f, 0x7c, 0xaf, 0xe6, 0xa7, 0xe8,
		0x7b, 0x35, 0xab, 0xc3, 0xef, 0x75, 0x90, 0x4c, 0x71, 0x55, 0x28, 0xaa, 0x19, 0x3b, 0x0c, 0xb8,
		0x99, 0x2f, 0x22, 0x08, 0xac, 0x27, 0x11, 0x28, 0x97, 0xd5, 0xd8, 0x47, 0x9d, 0xdd, 0x48, 0xf1,
		0x75, 0xa3, 0x01, 0xd8, 0x64, 0xc0, 0x9a, 0x12, 0x50, 0x33, 0x00, 0x69, 0x6a, 0x00, 0xcd, 0x06,
		0x9c, 0xd9, 0x00, 0x33, 0x0f, 0x50, 0x4e, 0xb6, 0x49, 0x24, 0x03, 0xc4, 0x2c, 0x40, 0x98, 0x10,
		0x00, 0x13, 0x03, 0x5f, 0x42, 0x06, 0x82, 0x03, 0xe8, 0x72, 0x01, 0x5c, 0x76, 0x68, 0xc2, 0x07,
		0x49, 0x08, 0x81, 0x2c, 0x0b, 0x80, 0xd5, 0x08, 0x5c, 0x77, 0x59, 0x2a, 0x52, 0x02, 0xf4, 0x1a,
		0xfb, 0xe1, 0x87, 0x3f, 0x0b, 0xc7, 0xf1, 0x78, 0x3c, 0xf1, 0x99, 0xad, 0xe0, 0x8b, 0xc3, 0x17,
		0x87, 0x2f, 0x0e, 0x5f, 0x1c, 0xbe, 0x38, 0x7c, 0x71, 0xf8, 0xe2, 0xf0, 0xc5, 0xe1, 0x8b, 0xc3,
		0x17, 0xdf, 0x6f, 0x5f, 0xbc, 0x6b, 0xc9, 0x67, 0x33, 0x8c, 0x6e, 0xf0, 0x38, 0xe4, 0x8b, 0xf6,
		0x83, 0x57, 0x0e, 0xaf, 0x1c, 0x5e, 0x39, 0xbc, 0x72, 0x78, 0xe5, 0xf0, 0xca, 0xe1, 0x95, 0xc3,
		0x2b, 0x87, 0x57, 0x0e, 0xaf, 0x1c, 0x5e, 0x39, 0xa3, 0x3f, 0x0e, 0x4f, 0x1c, 0x9e, 0x38, 0x3c,
		0x71, 0x78, 0xe2, 0xf0, 0xc4, 0xe1, 0x89, 0xc3, 0x13, 0x87, 0x27, 0x0e, 0x4f, 0x1c, 0x9e, 0x38,
		0x3c, 0xf1, 0xb1, 0x7f, 0x2c, 0x85, 0xc5, 0x49, 0x8f, 0x4f, 0x6f, 0x07, 0x9f, 0x1c, 0x3e, 0x39,
		0x7c, 0x72, 0xf8, 0xe4, 0xf0, 0xc9, 0xe1, 0x93, 0xc3, 0x27, 0x87, 0x4f, 0x0e, 0x9f, 0x1c, 0x3e,
		0xf9, 0x7e, 0xfb, 0xe4, 0xbe, 0x08, 0x84, 0xff, 0x3d, 0x2c, 0x39, 0xe6, 0x4c, 0x5d, 0x79, 0x67,
		0x5b, 0xf8, 0xe8, 0xf0, 0xd1, 0xe1, 0xa3, 0xc3, 0x47, 0x87, 0x8f, 0x0e, 0x1f, 0x1d, 0x3e, 0x3a,
		0x7c, 0x74, 0xf8, 0xe8, 0xf0, 0xd1, 0xe1, 0xa3, 0x8f, 0x9c, 0x65, 0x76, 0xef, 0x1c, 0x7e, 0x39,
		0xfc, 0x72, 0xf8, 0xe5, 0xf0, 0xcb, 0xe1, 0x97, 0xc3, 0x2f, 0x87, 0x5f, 0x0e, 0xbf, 0x1c, 0x7e,
		0x39, 0xfc, 0x72, 0xf8, 0xe5, 0x73, 0x6e, 0x32, 0x5f, 0x5a, 0xcb, 0xf2, 0x5d, 0xe1, 0xa1, 0xc3,
		0x43, 0x87, 0x87, 0x0e, 0x0f, 0x1d, 0x1e, 0x3a, 0x3c, 0x74, 0x78, 0xe8, 0xf0, 0xd0, 0xe1, 0xa1,
		0xc3, 0x43, 0xdf, 0x6f, 0x0f, 0x3d, 0xf0, 0x45, 0xc7, 0x17, 0x01, 0x53, 0xfd, 0xe7, 0xfc, 0x6e,
		0xf0, 0xc8, 0xe1, 0x91, 0xc3, 0x23, 0x87, 0x47, 0x0e, 0x8f, 0x1c, 0x1e, 0x39, 0x3c, 0x72, 0x78,
		0xe4, 0xf0, 0xc8, 0xe1, 0x91, 0xef, 0xb1, 0x47, 0xee, 0xf5, 0x24, 0xd3, 0xe0, 0xa0, 0xb9, 0x9d,
		0xe0, 0x89, 0xc3, 0x13, 0x87, 0x27, 0x0e, 0x4f, 0x1c, 0x9e, 0x38, 0x3c, 0x71, 0x78, 0xe2, 0xf0,
		0xc4, 0xe1, 0x89, 0xc3, 0x13, 0xdf, 0x73, 0x4f, 0x9c, 0x6b, 0x74, 0xd0, 0x82, 0xbd, 0xe0, 0x8d,
		0xc3, 0x1b, 0x87, 0x37, 0x0e, 0x6f, 0x1c, 0xde, 0x38, 0xbc, 0x71, 0x78, 0xe3, 0xf0, 0xc6, 0xe1,
		0x8d, 0xc3, 0x1b, 0xdf, 0x73, 0x6f, 0x9c, 0x75, 0x78, 0xd0, 0xb2, 0x0d, 0xe1, 0x97, 0xc3, 0x2f,
		0x87, 0x5f, 0x0e, 0xbf, 0x1c, 0x7e, 0x39, 0xfc, 0x72, 0xf8, 0xe5, 0xf0, 0xcb, 0xe1, 0x97, 0xc3,
		0x2f, 0x87, 0x5f, 0xfe, 0xcc, 0xe9, 0x91, 0xc3, 0x17, 0x87, 0x2f, 0x0e, 0x5f, 0x1c, 0xbe, 0x38,
		0x7c, 0x71, 0xf8, 0xe2, 0xf0, 0xc5, 0xe1, 0x8b, 0xc3, 0x17, 0x87, 0x2f, 0x0e, 0x5f, 0x7c, 0xc2,
		0x41, 0x66, 0xea, 0xb4, 0xb2, 0x64, 0x3f, 0x78, 0xe5, 0xf0, 0xca, 0xe1, 0x95, 0xc3, 0x2b, 0x87,
		0x57, 0x0e, 0xaf, 0x1c, 0x5e, 0x39, 0xbc, 0x72, 0x78, 0xe5, 0xf0, 0xca, 0xf7, 0xdc, 0x2b, 0xd7,
		0x31, 0x42, 0xe8, 0x17, 0xfb, 0xc2, 0x4b, 0x87, 0x97, 0x0e, 0x2f, 0x1d, 0x5e, 0x3a, 0xbc, 0x74,
		0x78, 0xe9, 0xf0, 0xd2, 0xe1, 0xa5, 0xc3, 0x4b, 0x87, 0x97, 0x0e, 0x2f, 0x9d, 0x71, 0x88, 0xd0,
		0xd2, 0x1d, 0xe1, 0x99, 0xc3, 0x33, 0x87, 0x67, 0x0e, 0xcf, 0x1c, 0x9e, 0x39, 0x3c, 0x73, 0x78,
		0xe6, 0xf0, 0xcc, 0xe1, 0x99, 0xc3, 0x33, 0x87, 0x67, 0xce, 0x3d, 0x46, 0xe8, 0xfd, 0x6d, 0xe1,
		0xa3, 0xc3, 0x47, 0x87, 0x8f, 0x0e, 0x1f, 0x1d, 0x3e, 0x3a, 0x7c, 0x74, 0xf8, 0xe8, 0xf0, 0xd1,
		0xe1, 0xa3, 0xc3, 0x47, 0xdf, 0x73, 0x1f, 0x9d, 0x71, 0x90, 0xd0, 0xe2, 0xed, 0xe0, 0x93, 0xc3,
		0x27, 0x87, 0x4f, 0x0e, 0x9f, 0x1c, 0x3e, 0x39, 0x7c, 0x72, 0xf8, 0xe4, 0xf0, 0xc9, 0xe1, 0x93,
		0xc3, 0x27, 0xdf, 0x63, 0x9f, 0x7c, 0x58, 0x99, 0x69, 0xbf, 0x08, 0xaf, 0x27, 0x09, 0x7d, 0xf1,
		0xe9, 0x6d, 0xe0, 0x83, 0xc3, 0x07, 0x87, 0x0f, 0x0e, 0x1f, 0x1c, 0x3e, 0x38, 0x7c, 0x70, 0xf8,
		0xe0, 0xf0, 0xc1, 0xe1, 0x83, 0xc3, 0x07, 0xdf, 0x63, 0x1f, 0xdc, 0xb7, 0xa4, 0x30, 0x1d, 0xfb,
		0xc5, 0x96, 0xa2, 0xcd, 0xc0, 0x8b, 0x2f, 0xde, 0x0e, 0x3e, 0x39, 0x7c, 0x72, 0xf8, 0xe4, 0xf0,
		0xc9, 0xe1, 0x93, 0xc3, 0x27, 0x87, 0x4f, 0x0e, 0x9f, 0x1c, 0x3e, 0x39, 0x7c, 0xf2, 0x7d, 0xf6,
		0xc9, 0x27, 0x93, 0xba, 0xc9, 0xe9, 0xf1, 0x85, 0xbb, 0xc1, 0x23, 0x87, 0x47, 0x0e, 0x8f, 0x1c,
		0x1e, 0x39, 0x3c, 0x72, 0x78, 0xe4, 0xf0, 0xc8, 0xe1, 0x91, 0xc3, 0x23, 0x87, 0x47, 0x9e, 0x36,
		0x8f, 0xfc, 0x20, 0x41, 0x77, 0x33, 0x73, 0xee, 0xba, 0x9e, 0x0c, 0x9d, 0x6c, 0xa5, 0xd7, 0x31,
		0x13, 0xb4, 0x9e, 0xc5, 0x8b, 0xd5, 0xb5, 0xe4, 0xf3, 0xc0, 0xc2, 0x66, 0xbd, 0xae, 0x70, 0x5b,
		0xa1, 0x57, 0x6c, 0xba, 0x42, 0xfe, 0xe5, 0xf9, 0xdf, 0x4c, 0xdb, 0x0d, 0xa4, 0xe5, 0xb6, 0x44,
		0x76, 0xf6, 0x85, 0x60, 0xee, 0x95, 0xec, 0x4b, 0xd7, 0x09, 0xb2, 0x81, 0xfd, 0xe4, 0x5a, 0x8e,
		0xed, 0x3e, 0x99, 0x5d, 0xdf, 0x93, 0x5e, 0xcb, 0x73, 0x82, 0xec, 0xc0, 0x21, 0x32, 0xa5, 0xc8,
		0x3e, 0x39, 0xde, 0xa3, 0xe5, 0x64, 0x03, 0x69, 0x49, 0x91, 0x8d, 0xec, 0xb9, 0x4a, 0xb4, 0x90,
		0x09, 0xa4, 0xdf, 0x6b, 0x49, 0x37, 0xf2, 0x18, 0x6e, 0xe3, 0xaf, 0x73, 0x33, 0xfc, 0xa8, 0x97,
		0xd1, 0x27, 0x6d, 0xce, 0xfc, 0x77, 0x30, 0xfb, 0x42, 0xf3, 0xba, 0xeb, 0x04, 0xcd, 0xfb, 0xd1,
		0x57, 0xa9, 0x8d, 0xbe, 0x49, 0xf3, 0x2e, 0xf8, 0xde, 0xad, 0x8b, 0xe6, 0xef, 0xe1, 0x17, 0x69,
		0xde, 0x0f, 0xbe, 0x48, 0xf3, 0xd3, 0xe8, 0x8b, 0x1c, 0x24, 0x43, 0xf0, 0xb6, 0x5b, 0x61, 0x4b,
		0x91, 0x55, 0x2d, 0xaa, 0x3a, 0x45, 0x54, 0x81, 0x64, 0x6a, 0x91, 0xc8, 0xed, 0x04, 0x71, 0x73,
		0xf1, 0xd9, 0xec, 0x9d, 0x1b, 0x0a, 0x9c, 0x2a, 0x41, 0xd3, 0x23, 0x60, 0x5b, 0x88, 0x16, 0xb3,
		0x48, 0x6d, 0x26, 0x4c, 0xeb, 0x8b, 0xc2, 0x06, 0x62, 0x90, 0xb1, 0x07, 0x7a, 0xb7, 0x63, 0xb5,
		0x84, 0x69, 0x49, 0xe9, 0xdb, 0x8f, 0x3d, 0xb9, 0x45, 0xf4, 0x39, 0x06, 0x9a, 0x0b, 0x57, 0xdd,
		0x50, 0x48, 0x23, 0x5c, 0x99, 0xdf, 0xf0, 0xed, 0xdb, 0x52, 0x54, 0x2a, 0xa8, 0x28, 0x85, 0x94,
		0x93, 0x2a, 0x6a, 0x49, 0x39, 0x85, 0xa4, 0x9c, 0x2a, 0x52, 0x4b, 0x09, 0xf1, 0x2a, 0xd6, 0x0b,
		0xdb, 0xdf, 0x4e, 0x60, 0xe2, 0x0b, 0xb4, 0xfd, 0x41, 0xcf, 0xdd, 0xc9, 0x6d, 0x0f, 0x7a, 0xbb,
		0x0b, 0xa9, 0xec, 0x62, 0x52, 0x70, 0xc5, 0x04, 0xdc, 0xb0, 0x6a, 0x2e, 0x98, 0x8c, 0xfb, 0x25,
		0xe3, 0x7a, 0x69, 0xb8, 0x5d, 0xbd, 0x2e, 0xfa, 0xb6, 0x17, 0x3c, 0x5e, 0xc8, 0xea, 0xc9, 0x67,
		0xe1, 0x4a, 0xbb, 0xa5, 0x16, 0x9a, 0xc6, 0x82, 0x3c, 0xb3, 0xbe, 0xa2, 0x13, 0x55, 0xa3, 0x02,
		0x94, 0xab, 0x02, 0x0a, 0x95, 0x40, 0xa8, 0x1a, 0xa8, 0x54, 0x04, 0xb9, 0xaa, 0x20, 0x57, 0x19,
		0xb4, 0xaa, 0x23, 0x99, 0x04, 0x95, 0x2a, 0x95, 0x12, 0x2f, 0xd8, 0x1a, 0xdd, 0x2a, 0xa2, 0xb8,
		0x75, 0xb4, 0x3e, 0x4d, 0xa4, 0x3a, 0x8f, 0x48, 0x35, 0x22, 0xd5, 0x49, 0x52, 0x45, 0x3c, 0x2a,
		0x49, 0xad, 0x6a, 0x52, 0xac, 0xa2, 0xc8, 0x54, 0xd5, 0x12, 0x6f, 0xc8, 0xfc, 0x26, 0x7e, 0xd0,
		0x49, 0xe6, 0x62, 0x0f, 0x29, 0xdc, 0x93, 0x48, 0x72, 0x68, 0x92, 0x70, 0xc8, 0x55, 0x1c, 0x87,
		0xaa, 0x63, 0x54, 0x79, 0x5c, 0xaa, 0x8f, 0x5d, 0x05, 0xb2, 0xab, 0x42, 0x5e, 0x95, 0x48, 0xa3,
		0x1a, 0x89, 0x54, 0x64, 0xfc, 0x68, 0xc8, 0x92, 0x7a, 0xe6, 0x6e, 0x8c, 0xef, 0xf5, 0x64, 0xc8,
		0x97, 0x5b, 0x41, 0x10, 0xca, 0x1b, 0xe1, 0xd5, 0x19, 0x39, 0x69, 0x27, 0xa9, 0x3a, 0x0b, 0xf1,
		0x2a, 0x7d, 0xcb, 0xec, 0xb9, 0x81, 0xb4, 0x1e, 0x1d, 0xe2, 0x53, 0xf1, 0x45, 0x47, 0xf8, 0xc2,
		0x6d, 0xd1, 0xa5, 0x2d, 0x8d, 0x7e, 0x68, 0xb5, 0xd7, 0x94, 0x88, 0xdd, 0x7d, 0xfe, 0x64, 0x14,
		0x2a, 0xc5, 0xca, 0x99, 0x71, 0x77, 0xff, 0x47, 0xcd, 0xf8, 0xe4, 0xff, 0xe8, 0x4a, 0xef, 0xc9,
		0xb7, 0xba, 0xcf, 0x76, 0xcb, 0x38, 0xa7, 0x60, 0x1a, 0x92, 0xa0, 0xc0, 0x17, 0x29, 0xf2, 0xf1,
		0xf1, 0x7e, 0xe0, 0xd9, 0x9b, 0x5b, 0xa7, 0x2f, 0xd4, 0xed, 0xeb, 0x9c, 0x3f, 0xf9, 0xa7, 0xeb,
		0x1f, 0xa4, 0x73, 0xf5, 0x46, 0x4a, 0xd2, 0x8a, 0x08, 0xb4, 0xf0, 0xac, 0xaf, 0x2d, 0x29, 0x8d,
		0xe3, 0x32, 0x07, 0x3f, 0xdc, 0x14, 0x1e, 0x3e, 0x3c, 0x7c, 0x78, 0xf8, 0xf0, 0xf0, 0x53, 0xe5,
		0xe1, 0xdb, 0xed, 0x81, 0x1a, 0x93, 0x3f, 0x7c, 0xd1, 0xe1, 0x70, 0xee, 0x09, 0x33, 0x87, 0x33,
		0x97, 0xd1, 0x57, 0xf9, 0xcd, 0x0a, 0x18, 0xee, 0x67, 0xec, 0xbf, 0xde, 0xff, 0x51, 0x6b, 0x9e,
		0x3f, 0xd4, 0xff, 0xd1, 0xac, 0xff, 0xbb, 0x56, 0xa5, 0xbe, 0xa4, 0x61, 0x52, 0x76, 0x40, 0xee,
		0xff, 0xf3, 0x60, 0x80, 0x25, 0xcf, 0xf1, 0xfa, 0xa2, 0x94, 0x76, 0x4f, 0xaf, 0xb1, 0xf7, 0x09,
		0xe4, 0x14, 0x9e, 0x9e, 0x70, 0x49, 0x31, 0x76, 0x2c, 0x8a, 0xd1, 0x3e, 0x44, 0xba, 0xfd, 0x42,
		0x74, 0xac, 0x9e, 0x23, 0x49, 0xef, 0x70, 0x26, 0xac, 0x62, 0xa0, 0xb9, 0x45, 0x0d, 0xf8, 0xb9,
		0xf0, 0x73, 0xe1, 0xe7, 0xc2, 0xcf, 0x4d, 0x95, 0x9f, 0xfb, 0xe8, 0x79, 0x8e, 0xb0, 0x5c, 0x0e,
		0x1f, 0x37, 0x9f, 0x16, 0x13, 0x9d, 0xe8, 0x78, 0x30, 0x51, 0x6d, 0x55, 0xbc, 0x3e, 0x73, 0x7d,
		0xc1, 0xa2, 0xec, 0xf5, 0xf1, 0x8b, 0xd9, 0x69, 0x3e, 0x29, 0x4b, 0x92, 0x06, 0x63, 0x70, 0x56,
		0x29, 0x5c, 0x8e, 0xbe, 0xda, 0x79, 0xfc, 0x75, 0xc7, 0xaf, 0x35, 0xa7, 0x79, 0xdd, 0x66, 0x64,
		0x9b, 0xf7, 0xa0, 0x0b, 0xc8, 0xb0, 0x80, 0x89, 0x2c, 0x7d, 0x4a, 0x55, 0x7d, 0xd4, 0x42, 0xbd,
		0x46, 0x95, 0x3d, 0x55, 0x40, 0xf6, 0x14, 0xa3, 0xe3, 0x85, 0xec, 0xa9, 0x5d, 0xb4, 0x96, 0xc8,
		0x9e, 0x02, 0xe6, 0x04, 0xe6, 0x04, 0xe6, 0x04, 0xe6, 0x4c, 0x10, 0xe6, 0x44, 0xf6, 0xd4, 0xaf,
		0x3e, 0x35, 0xb2, 0xa7, 0xb6, 0x14, 0x31, 0x64, 0x4f, 0x21, 0x7b, 0x0a, 0xd9, 0x53, 0x5b, 0xfe,
		0x20, 0x7b, 0x0a, 0xd9, 0x53, 0xf0, 0xf0, 0xe1, 0xe1, 0xc3, 0xc3, 0x87, 0x87, 0xbf, 0xde, 0x8d,
		0x41, 0xf6, 0xd4, 0xb6, 0xfe, 0x2b, 0xb2, 0xa7, 0x14, 0x3f, 0x47, 0x64, 0x4f, 0xf1, 0xeb, 0x31,
		0x64, 0x4f, 0x21, 0x7b, 0x6a, 0x55, 0xd9, 0x86, 0x9f, 0x0b, 0x3f, 0x17, 0x7e, 0x2e, 0xfc, 0xdc,
		0x54, 0xf9, 0xb9, 0xc8, 0x9e, 0x22, 0x5e, 0x11, 0xd9, 0x53, 0x0a, 0xb3, 0xa7, 0x28, 0xb2, 0x60,
		0x8c, 0xc4, 0x26, 0x4f, 0x29, 0xe8, 0x2d, 0x4c, 0x27, 0xdb, 0xe8, 0xd7, 0xae, 0xfb, 0x36, 0xa4,
		0xb1, 0x8f, 0xfb, 0x3a, 0xf2, 0x9f, 0x98, 0xf6, 0xee, 0x0a, 0xda, 0x7a, 0x3e, 0x5a, 0x6e, 0xfb,
		0x2f, 0xbb, 0x2d, 0x9f, 0xcd, 0x89, 0xf9, 0x5d, 0x81, 0xfa, 0x06, 0x8e, 0x4b, 0xf6, 0x41, 0x23,
		0xc7, 0x04, 0x42, 0x0b, 0x34, 0x72, 0xd4, 0x03, 0x0d, 0x76, 0xbc, 0x91, 0xe3, 0x42, 0x15, 0x40,
		0x97, 0x98, 0xbc, 0x78, 0x3b, 0x24, 0x2a, 0x23, 0x51, 0x59, 0x3f, 0xb7, 0x81, 0x44, 0x65, 0x46,
		0x60, 0x4a, 0x96, 0xa8, 0xdc, 0xf5, 0x6d, 0xcf, 0xb7, 0x25, 0x43, 0x7a, 0x72, 0xbc, 0x13, 0xa8,
		0x5c, 0x6e, 0xb5, 0xc6, 0xa8, 0xde, 0xb8, 0xd4, 0x1c, 0xbb, 0xba, 0x63, 0x57, 0x7b, 0xbc, 0xea,
		0x8f, 0x8e, 0xf1, 0x33, 0x76, 0x82, 0xca, 0x75, 0x84, 0xd5, 0x61, 0x4a, 0x57, 0xa8, 0x10, 0xee,
		0x51, 0x8b, 0xc8, 0x96, 0x8f, 0x1f, 0xa3, 0xb9, 0x75, 0xb1, 0x56, 0xde, 0xe3, 0x10, 0x2f, 0x4d,
		0x75, 0xe1, 0x9c, 0x08, 0x51, 0xf1, 0xab, 0x84, 0x4e, 0x3c, 0xac, 0x1f, 0xac, 0x1f, 0xac, 0x5f,
		0x52, 0xad, 0x1f, 0x15, 0x28, 0x88, 0x37, 0xb0, 0x5a, 0xd2, 0xfe, 0x2e, 0xa6, 0xd8, 0x4e, 0x33,
		0x1c, 0x74, 0xca, 0x97, 0xe9, 0xb6, 0xfc, 0x23, 0x10, 0xcb, 0x1d, 0x2d, 0x9c, 0x60, 0x53, 0xac,
		0x9c, 0x0a, 0x56, 0x83, 0xa2, 0xe5, 0x56, 0xb8, 0xda, 0x14, 0xaf, 0x36, 0x05, 0xac, 0x47, 0x11,
		0xd3, 0x2a, 0x64, 0x62, 0xc5, 0xcc, 0x07, 0x4f, 0xe6, 0x6e, 0xdc, 0x93, 0xd5, 0x7b, 0x12, 0xe5,
		0x22, 0xc7, 0x8d, 0x8b, 0x14, 0xe4, 0x09, 0xc3, 0x56, 0x77, 0x96, 0xfb, 0x24, 0x58, 0xf2, 0x8f,
		0x0d, 0xb6, 0x1c, 0xe4, 0xf0, 0x8b, 0x5d, 0xdb, 0x2e, 0x9b, 0xca, 0x8a, 0x37, 0x0d, 0xd3, 0xb9,
		0xe9, 0x2d, 0xce, 0xdc, 0xbe, 0x9f, 0xfd, 0x81, 0x31, 0xf7, 0xdc, 0x0b, 0xfb, 0xc9, 0x96, 0x81,
		0x86, 0x0f, 0x70, 0x23, 0x9e, 0xac, 0x81, 0x37, 0x91, 0x39, 0x33, 0xc2, 0x54, 0x55, 0xb6, 0xdd,
		0xfb, 0x1f, 0x18, 0x45, 0xca, 0x7a, 0xd5, 0x27, 0x52, 0xf9, 0x93, 0x62, 0xb1, 0x5c, 0x29, 0x16,
		0x73, 0x95, 0xe3, 0x4a, 0xee, 0xb4, 0x54, 0xca, 0x97, 0x29, 0x8b, 0x2f, 0x20, 0x65, 0x8c, 0xb6,
		0x92, 0x6f, 0x97, 0x46, 0x4a, 0xeb, 0x61, 0x09, 0x6f, 0x79, 0xc6, 0xfa, 0x6e, 0xd9, 0x8e, 0xf5,
		0xe8, 0x08, 0x33, 0x0e, 0x09, 0x33, 0x62, 0xb0, 0x05, 0x9b, 0x03, 0x7d, 0x01, 0x7d, 0x01, 0x7d,
		0x01, 0x7d, 0x01, 0x7d, 0x2d, 0x4c, 0xd7, 0x79, 0x79, 0xec, 0x06, 0x3b, 0x06, 0xc2, 0x1e, 0xdc,
		0xa1, 0x3f, 0x95, 0xb9, 0x66, 0xfa, 0x6e, 0x40, 0x7d, 0x40, 0x7d, 0x40, 0x7d, 0x40, 0x7d, 0x90,
		0x32, 0xa0, 0xbe, 0xfd, 0x44, 0x7d, 0xcf, 0xf6, 0xd3, 0xf3, 0x5f, 0x96, 0x14, 0xbe, 0xf9, 0x62,
		0xf9, 0xdf, 0xf8, 0x00, 0xdf, 0xcc, 0xbe, 0xc0, 0x7a, 0xc0, 0x7a, 0xc0, 0x7a, 0xc0, 0x7a, 0xc0,
		0x7a, 0xc0, 0x7a, 0xc0, 0x7a, 0xc0, 0x7a, 0xf0, 0xc2, 0x81, 0xf5, 0x80, 0xf5, 0x80, 0xf5, 0x80,
		0xf5, 0x14, 0x0a, 0x15, 0x79, 0x21, 0xd6, 0x9c, 0x07, 0x43, 0x5c, 0x90, 0x05, 0x7c, 0x07, 0x7c,
		0x07, 0x7c, 0x07, 0x7c, 0x97, 0x52, 0x7c, 0xd7, 0x73, 0x99, 0x9a, 0xff, 0x8f, 0x2a, 0x77, 0x4e,
		0x19, 0xf6, 0x8a, 0x1e, 0xe3, 0xce, 0xa1, 0xac, 0xf8, 0xd0, 0x6c, 0x57, 0x9e, 0x64, 0x18, 0x7d,
		0xf1, 0xe8, 0xf0, 0x18, 0x5d, 0x60, 0x66, 0xa8, 0xcc, 0x7f, 0x98, 0x5a, 0xa1, 0xb3, 0x6e, 0x08,
		0x9d, 0x18, 0x90, 0xa3, 0x1f, 0xec, 0x68, 0x80, 0xd6, 0x5a, 0x21, 0xf6, 0x9c, 0xe8, 0x55, 0x20,
		0x7a, 0xba, 0x45, 0xef, 0x60, 0x37, 0x77, 0x6b, 0x1c, 0xec, 0xd0, 0xc5, 0xd5, 0xe0, 0x66, 0x08,
		0xb7, 0xf7, 0x22, 0x7c, 0xae, 0xf1, 0x50, 0x73, 0x9e, 0x62, 0x91, 0x71, 0xcf, 0xaa, 0xdb, 0x7b,
		0xe1, 0x67, 0x1b, 0xeb, 0xde, 0xbd, 0xf4, 0x6d, 0xf7, 0x49, 0x8b, 0x12, 0xce, 0xe4, 0x06, 0x67,
		0x7c, 0x7e, 0x75, 0x95, 0x39, 0xd8, 0x61, 0x3b, 0x97, 0xa9, 0x7b, 0x97, 0x0c, 0x85, 0xbc, 0x8b,
		0x01, 0xf0, 0xd5, 0xd5, 0xc0, 0xac, 0xec, 0xa8, 0x76, 0x05, 0x4b, 0xab, 0xf7, 0xf3, 0x53, 0xb2,
		0xb4, 0xc3, 0x3a, 0x74, 0xd1, 0xd6, 0x51, 0x86, 0xb1, 0x60, 0x6f, 0x30, 0xb7, 0x6b, 0x6d, 0x04,
		0xe6, 0x56, 0xad, 0x78, 0x80, 0xb9, 0x05, 0x73, 0xfb, 0x4b, 0x37, 0x03, 0x99, 0x39, 0x2a, 0xb7,
		0x42, 0x66, 0x8e, 0x32, 0x8e, 0x07, 0x99, 0x39, 0xfb, 0xc0, 0xe5, 0x20, 0x33, 0x07, 0x52, 0x06,
		0xcc, 0xb7, 0xf3, 0x98, 0x2f, 0x55, 0x8d, 0xdb, 0x88, 0xc7, 0x0c, 0xc5, 0xfb, 0x24, 0x6b, 0xc0,
		0xca, 0xe2, 0xf1, 0x19, 0x8b, 0x5f, 0xce, 0x52, 0x36, 0xcb, 0x34, 0x92, 0x33, 0x94, 0xe5, 0xb7,
		0xd1, 0x97, 0xbf, 0x9b, 0x78, 0x24, 0x0b, 0x5f, 0xa5, 0x18, 0x58, 0x44, 0x77, 0x7b, 0x92, 0xdd,
		0x4d, 0xfd, 0x9f, 0xe2, 0x07, 0x61, 0x02, 0x5c, 0xe6, 0xca, 0x0e, 0xe4, 0xe0, 0xb4, 0x69, 0x3a,
		0xb6, 0x5f, 0xdb, 0x6e, 0xd5, 0x11, 0x03, 0x14, 0x4a, 0x64, 0x61, 0x07, 0x6e, 0xcc, 0xc4, 0x0e,
		0x3c, 0x7e, 0x45, 0xe6, 0xd6, 0x6f, 0x0b, 0x5f, 0xb4, 0x7f, 0x1b, 0x9c, 0x8c, 0xdb, 0x73, 0x1c,
		0xca, 0x2d, 0x1e, 0x02, 0xe1, 0x93, 0xb8, 0x08, 0x98, 0x47, 0xc7, 0x65, 0x20, 0x76, 0x77, 0x4e,
		0xdd, 0xea, 0x26, 0x01, 0xd3, 0xeb, 0x34, 0xde, 0xa1, 0x54, 0xdc, 0x9d, 0xdd, 0x9b, 0x62, 0xb7,
		0xf0, 0x76, 0xec, 0xd2, 0x30, 0xbb, 0xd6, 0x28, 0x18, 0xa2, 0x78, 0x78, 0x5d, 0xb4, 0x2e, 0x86,
		0xd5, 0x6d, 0xfd, 0x24, 0x31, 0xac, 0x6e, 0xbc, 0x01, 0x86, 0xd5, 0x25, 0x78, 0x58, 0xdd, 0xd8,
		0x64, 0xd8, 0x6d, 0xba, 0x19, 0x75, 0x53, 0xbb, 0xd0, 0x8c, 0xa6, 0xcb, 0x51, 0x8d, 0xa6, 0xcb,
		0x61, 0x34, 0x1d, 0x83, 0x1a, 0x62, 0x53, 0x47, 0x6c, 0x6a, 0x89, 0x47, 0x3d, 0xa5, 0x83, 0x4c,
		0x21, 0x0b, 0xf0, 0x72, 0x68, 0x98, 0x29, 0x67, 0xe6, 0x04, 0x78, 0x0a, 0x78, 0x2a, 0xc2, 0x53,
		0x4a, 0xdd, 0xe5, 0x04, 0xe1, 0xa7, 0xc8, 0xf4, 0xed, 0x10, 0x60, 0x7a, 0x16, 0x8e, 0xe3, 0x11,
		0x4c, 0xfb, 0x8e, 0xd6, 0x05, 0x60, 0x02, 0x60, 0x02, 0x60, 0xda, 0x0f, 0xc0, 0xa4, 0x98, 0x7b,
		0xa1, 0xe5, 0x60, 0x88, 0x54, 0x0b, 0x40, 0x12, 0x40, 0x12, 0x40, 0x52, 0x6a, 0xe6, 0x77, 0x87,
		0x5e, 0x8a, 0x19, 0xfa, 0xad, 0xdf, 0x2d, 0x87, 0x7e, 0x88, 0xe9, 0xcc, 0x7e, 0x54, 0x93, 0x0d,
		0x45, 0xc7, 0xea, 0x39, 0x92, 0x34, 0xed, 0x34, 0x73, 0x9a, 0xcb, 0xe5, 0x68, 0xf2, 0x29, 0x1a,
		0x18, 0x71, 0xce, 0xad, 0xf9, 0x19, 0x2d, 0x00, 0x97, 0x25, 0x60, 0xb7, 0x08, 0xec, 0x96, 0x81,
		0xd7, 0x42, 0xd0, 0x58, 0x0a, 0x22, 0x8b, 0x41, 0x4f, 0xaf, 0xcd, 0xdd, 0x98, 0x9e, 0xed, 0xca,
		0x7c, 0x99, 0x61, 0xc2, 0x79, 0x99, 0x70, 0x0b, 0x9e, 0x72, 0x05, 0x86, 0x6a, 0x16, 0xce, 0xf2,
		0x84, 0x71, 0x0e, 0x79, 0x2e, 0xc7, 0x94, 0xb2, 0xad, 0x2d, 0x57, 0x9c, 0x3f, 0x47, 0x9c, 0xa1,
		0x02, 0x81, 0xb5, 0xf2, 0x20, 0x96, 0x96, 0x72, 0x0e, 0xe2, 0x92, 0x16, 0xf3, 0x44, 0xbf, 0x7a,
		0x23, 0x55, 0x66, 0x55, 0xbc, 0x4a, 0xdf, 0x32, 0x7b, 0x6e, 0x20, 0xad, 0x47, 0x87, 0xd8, 0xc0,
		0xfa, 0xa2, 0x23, 0x7c, 0xe1, 0xb6, 0x76, 0xc2, 0x2e, 0x8d, 0xbc, 0x85, 0xbb, 0xcf, 0x9f, 0x8c,
		0xe3, 0x42, 0xee, 0xf4, 0xcc, 0xb8, 0xbb, 0xff, 0xa3, 0x66, 0xd6, 0xab, 0x67, 0x46, 0xf5, 0x55,
		0x0a, 0x37, 0xb0, 0x3d, 0x37, 0x30, 0xa4, 0x17, 0xbe, 0x6c, 0x74, 0x3c, 0xff, 0xab, 0x7b, 0x75,
		0x5f, 0x33, 0xea, 0x3d, 0xd7, 0x15, 0x4e, 0xf0, 0xf1, 0xab, 0x3b, 0x78, 0x63, 0xa9, 0x78, 0x5a,
		0x3a, 0x33, 0x2e, 0x44, 0xd0, 0xf2, 0xed, 0xee, 0xe0, 0x5a, 0x1b, 0x5e, 0xc7, 0x90, 0xcf, 0xc2,
		0xb8, 0x13, 0x41, 0xe8, 0x54, 0x7f, 0x75, 0x27, 0xf2, 0xbb, 0x8c, 0x51, 0x8c, 0xc3, 0x30, 0x8d,
		0xba, 0x6f, 0x75, 0x3a, 0x76, 0xcb, 0xac, 0xba, 0x4f, 0xb6, 0x2b, 0x84, 0x2f, 0xda, 0x5f, 0xdd,
		0xc3, 0xe8, 0x13, 0x1c, 0x19, 0xbf, 0xfb, 0x56, 0x4b, 0x74, 0x7a, 0xce, 0x60, 0x1d, 0x69, 0xf9,
		0x72, 0xf0, 0xce, 0x96, 0x68, 0xf7, 0x7c, 0x11, 0xec, 0x78, 0x01, 0xf6, 0x58, 0xc6, 0xf6, 0xa9,
		0x06, 0x3b, 0x75, 0x42, 0x08, 0xeb, 0xc1, 0x6b, 0x3d, 0x0e, 0x52, 0x60, 0x8f, 0x06, 0x77, 0xd7,
		0x17, 0xc1, 0xb3, 0xe9, 0x8b, 0x76, 0xaf, 0x45, 0x5a, 0x15, 0x36, 0xd1, 0x4b, 0x64, 0x76, 0xcb,
		0x34, 0x33, 0x79, 0x03, 0xed, 0x03, 0x26, 0x0f, 0x4c, 0x1e, 0x98, 0x3c, 0x30, 0x79, 0x60, 0xf2,
		0x8c, 0xcc, 0xa3, 0xe7, 0x39, 0xc2, 0x72, 0x19, 0xa8, 0xbc, 0x7c, 0x1e, 0xa8, 0x6f, 0xdf, 0x50,
		0x5f, 0xe1, 0xb4, 0x9c, 0x1f, 0x3a, 0xd6, 0x77, 0x43, 0x2f, 0xc2, 0xb8, 0xfd, 0x2e, 0xfc, 0x67,
		0x61, 0xb5, 0x8d, 0xbb, 0x91, 0x3b, 0xf1, 0xd5, 0x1d, 0xfb, 0xe1, 0x40, 0x5e, 0x3b, 0x8a, 0xbc,
		0xd6, 0x16, 0x04, 0xa0, 0x9f, 0xb4, 0xa3, 0x1f, 0x54, 0x4b, 0x27, 0x26, 0x43, 0x79, 0x98, 0x9f,
		0x9a, 0x25, 0xc9, 0x29, 0x33, 0x92, 0x93, 0xb0, 0xfc, 0x8f, 0xf0, 0x6b, 0x2a, 0xcd, 0x5b, 0x56,
		0x2f, 0xcd, 0x7d, 0xa5, 0x79, 0xe2, 0x96, 0x14, 0x74, 0x39, 0x88, 0x14, 0x8d, 0x55, 0xc8, 0x53,
		0x10, 0x0b, 0x48, 0x41, 0x64, 0xf4, 0x76, 0x90, 0x82, 0xb8, 0x8b, 0xd6, 0x11, 0x29, 0x88, 0xeb,
		0x3d, 0x2e, 0xa4, 0x20, 0xbe, 0xa3, 0xe9, 0x41, 0x5c, 0x6a, 0xb5, 0x00, 0xdc, 0xb8, 0x17, 0xc4,
		0x65, 0x1a, 0x90, 0x24, 0x52, 0x10, 0x57, 0xd6, 0x5f, 0x48, 0x41, 0x5c, 0xe1, 0x8b, 0x20, 0x05,
		0x91, 0x4a, 0xdc, 0x91, 0x82, 0xa8, 0x48, 0x5a, 0x90, 0x82, 0x98, 0x1e, 0xf3, 0x44, 0xbf, 0x3a,
		0x52, 0x10, 0x97, 0xed, 0x85, 0x14, 0x44, 0xa4, 0x20, 0x52, 0x03, 0x03, 0xa4, 0x20, 0x22, 0x05,
		0x11, 0xd6, 0x83, 0xfe, 0xf3, 0x22, 0x05, 0x31, 0x81, 0x4c, 0x1e, 0x52, 0x10, 0xc1, 0xe4, 0x81,
		0xc9, 0x03, 0x93, 0x07, 0x26, 0x0f, 0x29, 0x88, 0x40, 0x7d, 0xd4, 0xa8, 0x0f, 0x29, 0x88, 0x40,
		0x5e, 0x48, 0x41, 0xdc, 0x4f, 0xf4, 0x83, 0x14, 0xc4, 0xa4, 0xa5, 0x20, 0x52, 0xcd, 0xea, 0x4a,
		0x56, 0x06, 0x22, 0xc1, 0xfc, 0x2d, 0xb4, 0x08, 0x4e, 0xbf, 0xf4, 0xef, 0x5e, 0x8b, 0xe0, 0xa1,
		0xbc, 0xef, 0x52, 0x8b, 0x60, 0x92, 0x41, 0x08, 0x94, 0xed, 0xc9, 0x15, 0x93, 0x33, 0x68, 0x17,
		0x8c, 0x76, 0xc1, 0x3a, 0xc8, 0x92, 0x64, 0x59, 0x25, 0xe5, 0xe4, 0x47, 0x2c, 0xb1, 0x8e, 0xb0,
		0x3a, 0xbe, 0xe8, 0xa8, 0x94, 0xd8, 0x11, 0xb9, 0x51, 0x51, 0xb8, 0x66, 0x2d, 0x32, 0x9c, 0x1f,
		0x3f, 0x46, 0x55, 0x23, 0xd9, 0x29, 0xd5, 0xb5, 0x93, 0x0a, 0x7f, 0x70, 0x2c, 0x84, 0x1a, 0x5f,
		0xdd, 0xa9, 0xef, 0x7b, 0x87, 0x78, 0xbb, 0x03, 0x85, 0xaf, 0x41, 0xe1, 0xdb, 0x1d, 0x74, 0x87,
		0x5f, 0x71, 0x41, 0x74, 0x87, 0x27, 0x54, 0x2f, 0x94, 0x6a, 0x86, 0x5c, 0xdd, 0x50, 0xab, 0x1d,
		0x36, 0xf5, 0xc3, 0xa6, 0x86, 0x38, 0xd4, 0x51, 0x3a, 0x18, 0x43, 0xb2, 0xb2, 0xac, 0xd8, 0x49,
		0xa1, 0x4f, 0xe5, 0x18, 0x6f, 0x85, 0x5c, 0x05, 0x6e, 0xa5, 0xc6, 0xa6, 0xdc, 0xb8, 0x94, 0x1c,
		0xbb, 0xb2, 0x63, 0x57, 0x7a, 0x9c, 0xca, 0x8f, 0x46, 0x09, 0x12, 0x29, 0x43, 0x3a, 0xa8, 0xce,
		0x08, 0xdd, 0x39, 0xa0, 0xfc, 0x52, 0x68, 0x9f, 0x0d, 0xc5, 0xe8, 0x2c, 0x56, 0xc8, 0xc1, 0xec,
		0x0b, 0xd1, 0x7f, 0x87, 0x1c, 0xf3, 0x1e, 0xe7, 0x3b, 0x06, 0xbd, 0x47, 0x46, 0xfb, 0x38, 0xb5,
		0x1b, 0x4c, 0x24, 0x4c, 0x24, 0x4c, 0x24, 0x4c, 0x24, 0x4c, 0x64, 0x42, 0x4d, 0xe4, 0x97, 0xb1,
		0x89, 0xfc, 0x7b, 0xab, 0xe7, 0xfb, 0xc2, 0x95, 0x87, 0x47, 0xd9, 0x8f, 0x1f, 0xc7, 0x6c, 0x79,
		0x23, 0x7a, 0xcb, 0xa4, 0x5e, 0x0f, 0x16, 0xbc, 0x16, 0xaf, 0xdc, 0x16, 0xaf, 0x19, 0xe4, 0xd7,
		0x28, 0x38, 0xc4, 0xea, 0x6b, 0x58, 0x79, 0xa9, 0x3e, 0x99, 0x91, 0x9e, 0xb0, 0xf1, 0x5a, 0xa6,
		0x78, 0x95, 0x67, 0x52, 0x38, 0xe2, 0x45, 0x48, 0xff, 0x87, 0xe9, 0xb9, 0x66, 0xeb, 0x39, 0xac,
		0x15, 0x67, 0x21, 0x71, 0xc2, 0xd2, 0x51, 0x06, 0x16, 0x27, 0xe9, 0x04, 0x4e, 0x03, 0x29, 0x5f,
		0x5b, 0x24, 0xbd, 0x4c, 0x85, 0xbe, 0x76, 0xbe, 0xf9, 0x5c, 0xfc, 0xb7, 0x3b, 0xd1, 0x41, 0x0b,
		0x3a, 0x65, 0x70, 0x08, 0x2d, 0xe8, 0x10, 0xe7, 0x48, 0x04, 0xae, 0x41, 0x9c, 0x83, 0xcd, 0x73,
		0x43, 0x9c, 0x03, 0x24, 0x0e, 0x48, 0x1c, 0x90, 0x38, 0x20, 0x71, 0x40, 0xe2, 0x30, 0x90, 0x38,
		0x88, 0x73, 0x18, 0x88, 0x73, 0xc0, 0x44, 0xc2, 0x44, 0xc2, 0x44, 0xc2, 0x44, 0xc2, 0x44, 0x22,
		0xce, 0x91, 0x2e, 0xb4, 0xbc, 0xcf, 0xa4, 0xf2, 0x8e, 0x97, 0x13, 0x4f, 0x71, 0xca, 0x28, 0x2a,
		0xd6, 0x7d, 0x25, 0x92, 0x7c, 0x15, 0x76, 0xaf, 0xb6, 0x78, 0x52, 0xf8, 0x77, 0xa9, 0xe0, 0x6c,
		0x70, 0xce, 0x42, 0x6d, 0xe3, 0xbc, 0xd8, 0x2f, 0x99, 0x58, 0x1b, 0xa5, 0x66, 0x2a, 0x30, 0x11,
		0xaa, 0x8b, 0x99, 0x50, 0xce, 0x3e, 0x55, 0x17, 0xa3, 0xdc, 0xcc, 0x40, 0xb9, 0x19, 0x97, 0xca,
		0xe1, 0x22, 0x60, 0x30, 0x09, 0x6c, 0x17, 0xc1, 0x25, 0x59, 0x28, 0xf6, 0xf1, 0x47, 0xd7, 0x0a,
		0x02, 0xd3, 0xeb, 0x4a, 0xfb, 0xc5, 0xfe, 0x3f, 0xc1, 0x38, 0x13, 0x6c, 0xe9, 0xce, 0x60, 0xa1,
		0xb9, 0xd5, 0x1e, 0xa3, 0xfa, 0xe3, 0x52, 0x83, 0xec, 0xea, 0x90, 0x5d, 0x2d, 0xf2, 0xaa, 0x47,
		0x3a, 0x56, 0xcf, 0xc0, 0x18, 0xac, 0x75, 0xf4, 0x17, 0xc6, 0x60, 0xad, 0xf0, 0x45, 0xb4, 0x8c,
		0xc1, 0xc2, 0x50, 0xa3, 0x94, 0xa8, 0x85, 0x69, 0x51, 0xd1, 0x32, 0x03, 0xab, 0x54, 0x3a, 0x2e,
		0x41, 0x5c, 0x52, 0x61, 0x9b, 0xe8, 0x57, 0xdf, 0xe7, 0x29, 0x26, 0x8e, 0xed, 0x7e, 0x33, 0xc7,
		0x74, 0xa9, 0x19, 0xc8, 0x1f, 0x8e, 0x30, 0x7d, 0xf1, 0xdf, 0x9e, 0x08, 0xa4, 0x68, 0xd3, 0xc3,
		0x90, 0x5f, 0x7d, 0x80, 0x34, 0x4f, 0x38, 0xf1, 0x5a, 0xe6, 0x4b, 0xd7, 0x09, 0xe4, 0xd9, 0xd5,
		0xe5, 0xcd, 0x3f, 0x9b, 0x37, 0xb7, 0x17, 0xd5, 0x66, 0xed, 0xee, 0xb6, 0x5e, 0xfd, 0x54, 0xbf,
		0xbc, 0xbd, 0x69, 0xde, 0x55, 0xff, 0xf7, 0xa1, 0x7a, 0x5f, 0xaf, 0x5e, 0x60, 0x08, 0x0a, 0x70,
		0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x9c, 0x91, 0xb1, 0xdb, 0xc2, 0x95, 0xb6, 0xfc, 0xc1, 0x94,
		0x55, 0x44, 0xe8, 0x04, 0x66, 0x2e, 0xa3, 0xaf, 0xf2, 0x9b, 0x15, 0x30, 0xdc, 0xcf, 0xd1, 0x03,
		0x9c, 0x30, 0x30, 0xf5, 0x7f, 0xd7, 0xaa, 0xd4, 0xb7, 0x34, 0xf4, 0xa8, 0x03, 0x72, 0xcc, 0xca,
		0x83, 0x5b, 0xa7, 0x1e, 0xa4, 0x0e, 0x9b, 0xcd, 0x0c, 0xbe, 0x74, 0x3c, 0xd1, 0x99, 0x87, 0x79,
		0x79, 0x87, 0x67, 0xb9, 0xc9, 0xb3, 0x7c, 0xb8, 0x89, 0x1e, 0x24, 0xcb, 0xe3, 0x23, 0xdd, 0xa1,
		0x91, 0x36, 0x23, 0x8b, 0xc4, 0x4a, 0xa5, 0xeb, 0x27, 0x2b, 0x9b, 0x6c, 0x0c, 0x45, 0x77, 0xbe,
		0x54, 0xbf, 0x16, 0x7f, 0x55, 0x14, 0xea, 0xab, 0xd2, 0xcb, 0x28, 0xd4, 0x47, 0x86, 0x48, 0x52,
		0xa0, 0x34, 0x32, 0x44, 0x18, 0xad, 0x24, 0x32, 0x44, 0x54, 0xa9, 0x39, 0x30, 0x8b, 0x5a, 0xd5,
		0x1f, 0x97, 0x1a, 0x64, 0x57, 0x87, 0xec, 0x6a, 0x91, 0x57, 0x3d, 0x12, 0x83, 0x1e, 0x64, 0x88,
		0xac, 0xaa, 0xbf, 0x90, 0x21, 0xb2, 0xc2, 0x17, 0x41, 0x86, 0x08, 0x89, 0xac, 0x23, 0x43, 0x44,
		0x91, 0xa8, 0x20, 0x43, 0x24, 0x3d, 0xb6, 0x89, 0x7e, 0x75, 0x64, 0x88, 0x20, 0x43, 0x84, 0x64,
		0x13, 0x64, 0x88, 0x00, 0xc7, 0x01, 0xc7, 0x01, 0xc7, 0x01, 0xc7, 0xad, 0x7c, 0x63, 0x90, 0x21,
		0xb2, 0xe5, 0x03, 0x44, 0x86, 0x88, 0xa2, 0x07, 0x89, 0x0c, 0x11, 0x92, 0x27, 0x8a, 0x0c, 0x11,
		0x25, 0xcf, 0x12, 0x19, 0x22, 0xfa, 0x8c, 0x2c, 0x32, 0x44, 0x94, 0xae, 0x9f, 0xd8, 0x0c, 0x91,
		0x1d, 0xef, 0xbb, 0x35, 0x91, 0x20, 0x82, 0xae, 0x5b, 0xba, 0x6f, 0x43, 0x62, 0x6f, 0xc1, 0xee,
		0xb5, 0xdc, 0x1a, 0xcb, 0xfd, 0x2e, 0x35, 0xdc, 0x52, 0x9b, 0xf9, 0x44, 0x92, 0xf1, 0x44, 0xd6,
		0x66, 0xab, 0x80, 0x36, 0x5b, 0x69, 0xa2, 0x7a, 0xd0, 0x66, 0x2b, 0xd9, 0x6d, 0xb6, 0x7a, 0x03,
		0x55, 0x19, 0x50, 0x36, 0xda, 0x8a, 0x76, 0x40, 0x22, 0x25, 0x12, 0x29, 0xf5, 0xa9, 0x21, 0x36,
		0x75, 0xc4, 0xa3, 0x96, 0xd2, 0x01, 0x26, 0xc9, 0x12, 0x29, 0x85, 0xef, 0x7b, 0x04, 0x4a, 0x6b,
		0xee, 0x42, 0x45, 0xfb, 0xd0, 0x06, 0xd7, 0xf2, 0x08, 0xae, 0xe9, 0x54, 0x6d, 0x5c, 0x2a, 0x8e,
		0x5d, 0xd5, 0xb1, 0xab, 0x3c, 0x5e, 0xd5, 0x47, 0xcc, 0xfb, 0x51, 0xa5, 0x22, 0x10, 0xa9, 0xc4,
		0x78, 0x03, 0xab, 0x27, 0x9f, 0x85, 0x2b, 0xed, 0x56, 0x48, 0x5b, 0x98, 0x1d, 0xcb, 0x76, 0xf8,
		0xe2, 0x51, 0x8b, 0x36, 0x27, 0x96, 0x35, 0xda, 0x0c, 0x05, 0x36, 0x65, 0xca, 0xa9, 0x54, 0x35,
		0x28, 0x57, 0x6e, 0x25, 0xab, 0x4d, 0xd9, 0x6a, 0x53, 0xba, 0x7a, 0x94, 0x2f, 0xad, 0x12, 0x26,
		0x56, 0xc6, 0xf1, 0x23, 0x23, 0xcf, 0x78, 0x58, 0x86, 0x8a, 0xcb, 0x45, 0x8e, 0x3b, 0x17, 0xa9,
		0xc8, 0x13, 0x86, 0xad, 0x78, 0x92, 0xda, 0x47, 0x3f, 0x3c, 0x3a, 0xc4, 0xe0, 0x4e, 0x72, 0x8f,
		0x37, 0x65, 0x4e, 0x76, 0x8f, 0xf7, 0xd5, 0x95, 0xc5, 0x3c, 0xbe, 0x26, 0xdc, 0xd9, 0xcc, 0x4c,
		0x9a, 0x66, 0x5a, 0xa4, 0x18, 0x93, 0xe1, 0xe7, 0x44, 0x2a, 0x7f, 0x52, 0x2c, 0x96, 0x2b, 0xc5,
		0x62, 0xae, 0x72, 0x5c, 0xc9, 0x9d, 0x96, 0x4a, 0xf9, 0x72, 0xbe, 0x04, 0x29, 0xe3, 0x92, 0xb2,
		0x83, 0xdd, 0xd8, 0xa5, 0x91, 0xd2, 0x1a, 0x00, 0xc2, 0x5b, 0x9e, 0x79, 0xb4, 0xda, 0x66, 0xeb,
		0x59, 0xb4, 0xbe, 0x05, 0xbd, 0x17, 0x3e, 0xe0, 0x35, 0xb5, 0x2b, 0x10, 0x17, 0x10, 0x17, 0x10,
		0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10,
		0x17, 0x10, 0xd7, 0x0e, 0x23, 0xae, 0xae, 0xd5, 0xfa, 0x26, 0xa4, 0xd9, 0xf1, 0xfc, 0x17, 0x4b,
		0xf2, 0xc2, 0xae, 0xe9, 0xad, 0x81, 0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x80,
		0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x80, 0xbd, 0x76, 0x1f, 0x7b,
		0x39, 0xc2, 0x7d, 0x0a, 0xeb, 0x19, 0xf9, 0xb1, 0x57, 0xb4, 0x35, 0xb0, 0x17, 0xb0, 0x17, 0xb0,
		0x17, 0xb0, 0x17, 0xb0, 0x17, 0xb0, 0x17, 0xb0, 0x17, 0xb0, 0x17, 0xb0, 0x17, 0xb0, 0x17, 0xb0,
		0x17, 0xb0, 0xd7, 0x8e, 0x62, 0x2f, 0xaf, 0x27, 0x4d, 0xaf, 0x63, 0x7a, 0x7e, 0x5b, 0xf8, 0x7c,
		0xb0, 0x6b, 0x6a, 0x57, 0x20, 0x2e, 0x20, 0x2e, 0x20, 0x2e, 0x20, 0x2e, 0x20, 0x2e, 0x20, 0x2e,
		0x20, 0x2e, 0x20, 0x2e, 0x20, 0x2e, 0x20, 0x2e, 0x20, 0x2e, 0x20, 0xae, 0x1d, 0x45, 0x5c, 0xbe,
		0x68, 0x09, 0xfb, 0xbb, 0x68, 0x9b, 0xae, 0xd5, 0xfa, 0xc6, 0x07, 0xb9, 0xa6, 0xb7, 0x05, 0xe6,
		0x02, 0xe6, 0x02, 0xe6, 0x02, 0xe6, 0x02, 0xe6, 0x02, 0xe6, 0x02, 0xe6, 0x02, 0xe6, 0x02, 0xe6,
		0x02, 0xe6, 0x02, 0xe6, 0x02, 0xe6, 0xda, 0x51, 0xcc, 0x25, 0x7d, 0xcb, 0x0d, 0x5e, 0x6c, 0x19,
		0x36, 0x13, 0xec, 0xf9, 0x8c, 0xc3, 0xb5, 0xe6, 0x76, 0x06, 0xf2, 0x02, 0xf2, 0x02, 0xf2, 0x02,
		0xf2, 0x02, 0xf2, 0x02, 0xf2, 0x02, 0xf2, 0x02, 0xf2, 0x02, 0xf2, 0x02, 0xf2, 0x02, 0xf2, 0x02,
		0xf2, 0xda, 0x75, 0xe4, 0xf5, 0xdf, 0x9e, 0xe8, 0x09, 0xb3, 0xd3, 0x73, 0x1c, 0x0d, 0xe0, 0x6b,
		0x62, 0x73, 0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0x2f,
		0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0x2f, 0xe0, 0xaf, 0x1d, 0xc5, 0x5f, 0x3d, 0xf7, 0x9b,
		0xeb, 0xfd, 0xe5, 0x9a, 0xac, 0xb9, 0x86, 0x93, 0x9b, 0x02, 0x6f, 0x01, 0x6f, 0x01, 0x6f, 0x01,
		0x6f, 0x01, 0x6f, 0x01, 0x6f, 0x01, 0x6f, 0x01, 0x6f, 0x01, 0x6f, 0x01, 0x6f, 0x01, 0x6f, 0x01,
		0x6f, 0xed, 0x38, 0xde, 0x72, 0xb5, 0x00, 0x2e, 0xd4, 0x76, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71,
		0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x41, 0xca, 0x80, 0xb8,
		0xb4, 0x23, 0xae, 0x83, 0x14, 0xe9, 0x8e, 0xcc, 0xb9, 0xeb, 0x7a, 0xd2, 0x1a, 0xdc, 0x14, 0x52,
		0x75, 0x91, 0x09, 0x5a, 0xcf, 0xe2, 0xc5, 0xea, 0x5a, 0x61, 0xc3, 0xfb, 0x4c, 0xd6, 0xeb, 0x0a,
		0xb7, 0x15, 0xa2, 0x1e, 0xd3, 0x15, 0xf2, 0x2f, 0xcf, 0xff, 0x66, 0xda, 0x6e, 0x20, 0x2d, 0xb7,
		0x25, 0xb2, 0xb3, 0x2f, 0x04, 0x73, 0xaf, 0x64, 0x5f, 0xba, 0x4e, 0x90, 0x0d, 0xec, 0x27, 0xd7,
		0x72, 0x6c, 0xf7, 0xc9, 0xec, 0xfa, 0x9e, 0xf4, 0x5a, 0x9e, 0x13, 0x64, 0x07, 0x0e, 0xa9, 0x29,
		0x45, 0xd6, 0x1e, 0x38, 0x40, 0x1d, 0xab, 0x25, 0x4c, 0x4b, 0x4a, 0xdf, 0x7e, 0xec, 0x49, 0x11,
		0x8c, 0x5f, 0xcc, 0x06, 0xd2, 0x92, 0x22, 0x1b, 0xf9, 0x49, 0x41, 0x56, 0xf8, 0xbe, 0xe7, 0x07,
		0x84, 0xde, 0x52, 0x26, 0x90, 0x7e, 0xaf, 0x25, 0xdd, 0xc8, 0x41, 0xbb, 0x8d, 0xbf, 0xfd, 0xcd,
		0xf0, 0x9b, 0x5d, 0x46, 0x5f, 0xac, 0x39, 0xf3, 0xdf, 0xc1, 0xec, 0x0b, 0xcd, 0xeb, 0xae, 0x13,
		0x34, 0xef, 0x47, 0xdf, 0xbc, 0x36, 0xfa, 0xe2, 0xcd, 0xbb, 0xe0, 0x7b, 0xb7, 0x2e, 0x9a, 0x97,
		0xa3, 0xaf, 0x78, 0x1e, 0x7f, 0xed, 0xf1, 0x6b, 0xcd, 0xfb, 0xc1, 0xd7, 0x6e, 0x7e, 0x8a, 0xbe,
		0x76, 0xb3, 0x3a, 0xfc, 0xda, 0x07, 0xe9, 0xb8, 0x05, 0x04, 0x37, 0x20, 0x63, 0x87, 0x71, 0x5b,
		0xf3, 0x45, 0x04, 0x81, 0xf5, 0x24, 0x02, 0xb2, 0x2b, 0x10, 0xbb, 0xe6, 0xb3, 0x1b, 0x12, 0xdd,
		0x6a, 0x5a, 0xde, 0x82, 0x9c, 0xaf, 0xe0, 0xe0, 0x29, 0x18, 0xf9, 0x09, 0x2e, 0x5e, 0x82, 0x9d,
		0x8f, 0x60, 0xe7, 0x21, 0x78, 0xf9, 0x87, 0x74, 0x59, 0x72, 0x72, 0x9e, 0x81, 0x95, 0x5f, 0x60,
		0xe0, 0x15, 0x98, 0xf8, 0x04, 0x06, 0xe2, 0x87, 0x93, 0x3f, 0xe0, 0xe6, 0x0d, 0xb4, 0x21, 0x39,
		0x7e, 0x04, 0xc7, 0xc0, 0x0f, 0xb0, 0xf2, 0x02, 0x09, 0xe0, 0x03, 0xf6, 0x49, 0x7a, 0x52, 0x8a,
		0x97, 0x1b, 0xfb, 0x8d, 0x3f, 0x9e, 0x85, 0xe3, 0x78, 0xbc, 0x08, 0x64, 0x66, 0x4b, 0x60, 0x10,
		0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10,
		0x48, 0x0f, 0x30, 0xc8, 0x3e, 0x61, 0x90, 0xae, 0x25, 0x9f, 0xcd, 0x30, 0x08, 0xc6, 0x0b, 0x44,
		0x16, 0xed, 0x0b, 0x34, 0x02, 0x34, 0x02, 0x34, 0x02, 0x34, 0x02, 0x34, 0x02, 0x34, 0x02, 0x34,
		0x02, 0x34, 0x02, 0x34, 0x02, 0xe9, 0x01, 0x1a, 0xd9, 0x3b, 0x34, 0xc2, 0x8f, 0x43, 0x80, 0x40,
		0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0xe0, 0x43, 0x02, 0x81,
		0x40, 0x7a, 0x80, 0x40, 0xf6, 0x17, 0x81, 0x48, 0x61, 0xe9, 0x08, 0x87, 0x4c, 0x6f, 0x0b, 0x2c,
		0x02, 0x2c, 0x02, 0x2c, 0x02, 0x2c, 0x02, 0x2c, 0x02, 0x2c, 0x02, 0x2c, 0x02, 0x2c, 0x02, 0x2c,
		0x02, 0xe9, 0x01, 0x16, 0xd9, 0x27, 0x2c, 0xe2, 0x8b, 0x40, 0xf8, 0xdf, 0xc3, 0x0e, 0x0d, 0x3a,
		0x52, 0xb4, 0xde, 0xd9, 0x1e, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd8,
		0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd2, 0x03, 0x6c, 0xb2, 0xaf, 0xd8, 0x44, 0x1b, 0x2a,
		0x01, 0x1e, 0x01, 0x1e, 0x01, 0x1e, 0x01, 0x1e, 0x01, 0x1e, 0x01, 0x1e, 0x01, 0x1e, 0x81, 0x47,
		0x09, 0x3c, 0x02, 0xe9, 0x01, 0x1e, 0xd9, 0x7b, 0x3c, 0xc2, 0x9f, 0xbe, 0xb5, 0x7c, 0x77, 0x20,
		0x13, 0x20, 0x13, 0x20, 0x13, 0x20, 0x13, 0x20, 0x13, 0x20, 0x13, 0x20, 0x13, 0x20, 0x13, 0x20,
		0x13, 0x48, 0x0f, 0x90, 0xc9, 0x3e, 0x21, 0x93, 0xc0, 0x17, 0x1d, 0x5f, 0x04, 0xcc, 0x75, 0xed,
		0xf3, 0xbb, 0x02, 0x89, 0x00, 0x89, 0x00, 0x89, 0x00, 0x89, 0x00, 0x89, 0x00, 0x89, 0x00, 0x89,
		0x00, 0x89, 0x00, 0x89, 0x40, 0x7a, 0x80, 0x44, 0xf6, 0x06, 0x89, 0x78, 0x3d, 0xc9, 0x3c, 0xf0,
		0x70, 0x6e, 0x47, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20,
		0x10, 0x20, 0x10, 0x20, 0x10, 0x48, 0x0f, 0x10, 0xc8, 0x5e, 0x21, 0x10, 0xee, 0x91, 0x87, 0x0b,
		0xf6, 0x04, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x01,
		0x0a, 0x01, 0x0a, 0x81, 0xf4, 0x00, 0x85, 0xec, 0x15, 0x0a, 0xd1, 0x32, 0xf4, 0x70, 0xd9, 0xc6,
		0xc0, 0x23, 0xc0, 0x23, 0xc0, 0x23, 0xc0, 0x23, 0xc0, 0x23, 0xc0, 0x23, 0xc0, 0x23, 0xc0, 0x23,
		0xc0, 0x23, 0x90, 0x1e, 0xe0, 0x91, 0xfd, 0xc3, 0x23, 0x1a, 0x90, 0x08, 0x30, 0x08, 0x30, 0x08,
		0x30, 0x08, 0x30, 0x08, 0x30, 0x08, 0x30, 0x08, 0x30, 0x08, 0xbc, 0x48, 0x60, 0x10, 0x48, 0x0f,
		0x30, 0xc8, 0x1e, 0x63, 0x10, 0xe6, 0xce, 0x59, 0x4b, 0xf6, 0x05, 0x1a, 0x01, 0x1a, 0x01, 0x1a,
		0x01, 0x1a, 0x01, 0x1a, 0x01, 0x1a, 0x01, 0x1a, 0x01, 0x1a, 0x01, 0x1a, 0x81, 0xf4, 0x00, 0x8d,
		0xec, 0x15, 0x1a, 0xd1, 0x39, 0xfa, 0xf0, 0x17, 0xfb, 0x03, 0x9d, 0x00, 0x9d, 0x00, 0x9d, 0x00,
		0x9d, 0x00, 0x9d, 0x00, 0x9d, 0x00, 0x9d, 0x00, 0x9d, 0x00, 0x9d, 0x40, 0x7a, 0x80, 0x4e, 0xf6,
		0x16, 0x9d, 0xe8, 0xc3, 0x25, 0x40, 0x24, 0x40, 0x24, 0x40, 0x24, 0x40, 0x24, 0x40, 0x24, 0x40,
		0x24, 0x40, 0x24, 0xf0, 0x29, 0x81, 0x48, 0x20, 0x3d, 0x40, 0x24, 0x40, 0x24, 0x1a, 0x92, 0xb8,
		0x30, 0xff, 0x10, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xd8, 0x04, 0xde,
		0x25, 0xb0, 0x09, 0xb0, 0x09, 0xb0, 0x09, 0xb0, 0x49, 0x08, 0x0e, 0x34, 0x0c, 0x40, 0x5c, 0xbc,
		0x2d, 0xb0, 0x08, 0xb0, 0x08, 0xb0, 0x08, 0xb0, 0x08, 0xb0, 0x08, 0xb0, 0x08, 0xb0, 0x08, 0xb0,
		0x08, 0xb0, 0x08, 0xa4, 0x07, 0x58, 0x64, 0x6f, 0xb0, 0x88, 0x6f, 0x49, 0x61, 0x3a, 0xf6, 0x8b,
		0x2d, 0x45, 0x9b, 0x11, 0x8b, 0x2c, 0xde, 0x16, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04,
		0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0xd2, 0x03, 0x2c, 0x92, 0x4c, 0x2c,
		0x72, 0x90, 0xe0, 0xbb, 0x9e, 0x39, 0x77, 0x5d, 0x4f, 0x86, 0x99, 0x57, 0x24, 0xd7, 0x3b, 0x13,
		0xb4, 0x9e, 0xc5, 0x8b, 0xd5, 0xb5, 0xe4, 0xf3, 0xc0, 0x03, 0xc8, 0x7a, 0x5d, 0xe1, 0xb6, 0x42,
		0x14, 0x60, 0xba, 0x42, 0xfe, 0xe5, 0xf9, 0xdf, 0x4c, 0xdb, 0x0d, 0xa4, 0xe5, 0xb6, 0x44, 0x76,
		0xf6, 0x85, 0x60, 0xee, 0x95, 0xec, 0x4b, 0xd7, 0x09, 0xb2, 0x81, 0xfd, 0xe4, 0x5a, 0x8e, 0xed,
		0x3e, 0x99, 0x5d, 0xdf, 0x93, 0x5e, 0xcb, 0x73, 0x82, 0xec, 0xc0, 0xa1, 0x33, 0xa5, 0xc8, 0xda,
		0x03, 0x07, 0xa3, 0x63, 0xb5, 0x84, 0x69, 0x49, 0xe9, 0xdb, 0x8f, 0x3d, 0x29, 0x82, 0xf1, 0x8b,
		0xd9, 0x40, 0x5a, 0x52, 0x64, 0x23, 0x3f, 0x84, 0x02, 0x45, 0x65, 0x02, 0xe9, 0xf7, 0x5a, 0xd2,
		0x8d, 0x3c, 0x9e, 0xdb, 0xf8, 0xeb, 0xde, 0x0c, 0xbf, 0xca, 0x65, 0xf4, 0x4d, 0x9a, 0x33, 0xff,
		0x1d, 0xcc, 0xbe, 0xd0, 0xbc, 0xee, 0x3a, 0x41, 0xf3, 0x7e, 0xf4, 0x55, 0x6b, 0xa3, 0x6f, 0xda,
		0xbc, 0x0b, 0xbe, 0x77, 0xeb, 0xa2, 0x79, 0x39, 0xfa, 0x4e, 0xe7, 0xf1, 0xf7, 0x1c, 0xbf, 0xd6,
		0xbc, 0x1f, 0x7c, 0xcf, 0xe6, 0xa7, 0xd1, 0xf7, 0x3c, 0x48, 0xa6, 0x3c, 0x2b, 0x94, 0xe5, 0xcc,
		0xf8, 0xe0, 0xed, 0xb6, 0x72, 0x49, 0x8e, 0x3d, 0xd8, 0xa9, 0x5d, 0x14, 0xdf, 0x44, 0x1a, 0xec,
		0x4d, 0x86, 0xb9, 0x29, 0xb1, 0x36, 0x03, 0xc6, 0xa6, 0xc6, 0xd6, 0x6c, 0x98, 0x9a, 0x0d, 0x4b,
		0xf3, 0x60, 0xe8, 0x64, 0x5b, 0x4b, 0x32, 0xac, 0xcc, 0xa1, 0x61, 0x26, 0xb5, 0x4c, 0xfe, 0x64,
		0x0f, 0x6c, 0xc2, 0x8b, 0xf5, 0x6a, 0x3a, 0xb6, 0xfb, 0xcd, 0x7c, 0xb4, 0xdc, 0xf6, 0x5f, 0x76,
		0x3b, 0xf4, 0x41, 0x88, 0x2c, 0xc3, 0x82, 0xbd, 0x60, 0x1f, 0x60, 0x1f, 0x60, 0x1f, 0x60, 0x1f,
		0x94, 0x4a, 0x7c, 0xac, 0x5e, 0xcc, 0x6f, 0x8f, 0xdd, 0x80, 0xd0, 0x42, 0x10, 0x10, 0xa8, 0x99,
		0x07, 0x77, 0xc8, 0xa5, 0x64, 0xfe, 0x49, 0xf4, 0xd9, 0x69, 0x99, 0x59, 0x42, 0x8a, 0x9c, 0x83,
		0x89, 0xe5, 0x62, 0x60, 0xd9, 0xb9, 0x33, 0x3e, 0xce, 0x8c, 0x90, 0x69, 0x65, 0x61, 0x58, 0x35,
		0x32, 0xab, 0xbb, 0x2c, 0x15, 0x29, 0x61, 0x22, 0x1b, 0x49, 0xf5, 0xf9, 0x0f, 0x12, 0x74, 0x37,
		0xa9, 0x18, 0xd1, 0x24, 0x32, 0xa1, 0x0a, 0x4d, 0x70, 0x92, 0x88, 0x4f, 0x35, 0x5e, 0xe7, 0xf6,
		0x52, 0xa9, 0x40, 0x22, 0x33, 0x41, 0xef, 0x31, 0x68, 0xf9, 0x76, 0x57, 0xa9, 0x3c, 0xc6, 0xde,
		0xe4, 0xd4, 0xea, 0x8a, 0xee, 0xcf, 0x88, 0x61, 0x50, 0xb4, 0x9c, 0x6a, 0x7c, 0x4a, 0x81, 0x4b,
		0x09, 0xf1, 0x28, 0x15, 0x0e, 0x25, 0xc7, 0x9f, 0xe4, 0xb8, 0x93, 0x16, 0x6f, 0x26, 0xcb, 0x26,
		0x5d, 0xd8, 0xbe, 0x5a, 0x81, 0x6d, 0x8d, 0x6e, 0x15, 0x11, 0x1d, 0x16, 0xad, 0x4f, 0x43, 0x81,
		0xe5, 0x41, 0x81, 0x81, 0x02, 0x03, 0x05, 0x96, 0x4c, 0x0a, 0x4c, 0xb5, 0xaa, 0xa2, 0xf5, 0x84,
		0x38, 0x3d, 0xa3, 0x65, 0xea, 0x0c, 0xd9, 0xd6, 0x5a, 0xd5, 0x1c, 0x97, 0xba, 0x63, 0x57, 0x7b,
		0xec, 0xea, 0x8f, 0x57, 0x0d, 0x12, 0xb3, 0x2f, 0xa9, 0xcf, 0xb6, 0xee, 0x0a, 0xbf, 0x25, 0x5c,
		0x69, 0x3d, 0x09, 0x86, 0x74, 0xeb, 0x12, 0xd2, 0xad, 0x7f, 0xfd, 0x45, 0x90, 0x6e, 0x4d, 0x22,
		0xef, 0x48, 0xb7, 0x56, 0x24, 0x2a, 0xf9, 0x1c, 0x84, 0x25, 0x1d, 0xd6, 0x89, 0x7e, 0x75, 0x64,
		0x57, 0x2b, 0x71, 0x84, 0xf6, 0x2b, 0xbb, 0x7a, 0x02, 0x33, 0x65, 0x49, 0x18, 0x20, 0x23, 0x41,
		0x91, 0x86, 0x89, 0x2f, 0xdb, 0x8c, 0xa0, 0xd6, 0x1e, 0xe4, 0xd4, 0x0d, 0xe3, 0x46, 0x64, 0xbc,
		0xa1, 0xea, 0xb0, 0x94, 0xc1, 0x41, 0x1b, 0x16, 0x40, 0x1b, 0x32, 0xe2, 0x68, 0xd0, 0x86, 0xbb,
		0x68, 0x29, 0xc9, 0x68, 0xc3, 0x96, 0xe5, 0xb4, 0x7a, 0x8e, 0x25, 0x45, 0xdb, 0xb4, 0x1e, 0x03,
		0xcf, 0xe9, 0x49, 0x61, 0x4e, 0x1a, 0x2a, 0xf3, 0xf1, 0x2f, 0x7a, 0x36, 0x71, 0x95, 0x0f, 0x01,
		0x92, 0x91, 0x5b, 0x19, 0x32, 0x2a, 0x45, 0x2e, 0xe5, 0xc8, 0xae, 0x24, 0xd9, 0x95, 0x25, 0xaf,
		0xd2, 0xa4, 0x05, 0x5a, 0xe9, 0x27, 0x19, 0x7b, 0xb6, 0x2b, 0xd1, 0xcf, 0x61, 0xa5, 0x1f, 0x10,
		0x8c, 0xe0, 0x8c, 0xb4, 0xaa, 0x85, 0x69, 0x51, 0x41, 0x3f, 0x07, 0x30, 0x8e, 0x89, 0x5a, 0x7d,
		0x9f, 0x7b, 0xcb, 0x21, 0xb7, 0x01, 0xb0, 0x03, 0xb0, 0x03, 0xb0, 0x03, 0xb0, 0x63, 0xb5, 0x1b,
		0x83, 0xdc, 0x06, 0x40, 0x0f, 0x40, 0x0f, 0x40, 0x8f, 0x35, 0xa0, 0x07, 0x72, 0x1b, 0x80, 0x34,
		0xd2, 0x86, 0x34, 0x90, 0xdb, 0x90, 0xcc, 0xdc, 0x06, 0x8a, 0x28, 0xb5, 0x91, 0xd0, 0xd4, 0x06,
		0x85, 0x15, 0x95, 0xea, 0xe5, 0x1a, 0x95, 0xc3, 0x7a, 0x6f, 0xc2, 0x0e, 0x16, 0x10, 0x4f, 0x7e,
		0xbb, 0xa4, 0xd4, 0x11, 0x1f, 0x68, 0x94, 0xee, 0x01, 0xa4, 0x57, 0xdc, 0x98, 0x2c, 0x73, 0x65,
		0x07, 0x72, 0xf0, 0xf4, 0x95, 0x5c, 0x93, 0x01, 0xf4, 0xa8, 0x3a, 0x62, 0x80, 0xc9, 0x15, 0x79,
		0x5b, 0x03, 0x0f, 0x75, 0x62, 0x45, 0x1a, 0xd6, 0x3a, 0x73, 0xeb, 0xb7, 0x85, 0x2f, 0xda, 0xbf,
		0x0d, 0x9e, 0xae, 0xdb, 0x73, 0x1c, 0x95, 0x4b, 0x3e, 0x04, 0xc2, 0x57, 0xe2, 0x06, 0x6e, 0x2b,
		0x3c, 0x8a, 0x55, 0x62, 0xb2, 0x54, 0x61, 0x46, 0x45, 0x7d, 0x7f, 0x12, 0xb4, 0xde, 0x76, 0x8a,
		0x6e, 0x73, 0xf5, 0xb4, 0xd9, 0x3b, 0x37, 0x94, 0x49, 0x55, 0xb2, 0x98, 0x04, 0x19, 0xdc, 0x42,
		0xf2, 0x74, 0x4a, 0xdc, 0x66, 0x72, 0xb6, 0xbe, 0x94, 0x6c, 0x20, 0x21, 0x19, 0x57, 0xd8, 0x4f,
		0xcf, 0x8f, 0x9e, 0xbf, 0xf9, 0x48, 0x9f, 0x98, 0x9d, 0x1c, 0x2f, 0xb5, 0xa1, 0xa4, 0x6e, 0x97,
		0xb0, 0xba, 0x75, 0x70, 0x44, 0x45, 0xf0, 0x43, 0x61, 0x70, 0x43, 0x55, 0xf0, 0x42, 0x79, 0x70,
		0x42, 0x79, 0xf0, 0x41, 0x6d, 0x70, 0x81, 0x57, 0xbb, 0x6e, 0x9b, 0xc0, 0x19, 0xdf, 0x9a, 0xed,
		0xcf, 0x79, 0xf6, 0x1e, 0x6e, 0x7b, 0xcc, 0x6a, 0xf2, 0xc7, 0x95, 0xe5, 0x8b, 0xab, 0x8c, 0x4d,
		0x12, 0xc4, 0x20, 0x55, 0xc7, 0x1a, 0xc9, 0x62, 0x8a, 0x64, 0xb1, 0x43, 0x9a, 0x18, 0xa1, 0x5e,
		0x14, 0xa8, 0x2a, 0x3f, 0x3b, 0x63, 0xb5, 0xdb, 0xbe, 0x08, 0x02, 0xf5, 0xbd, 0xac, 0x46, 0x0b,
		0xab, 0x6d, 0x63, 0x95, 0x43, 0x1b, 0x2b, 0x25, 0x4b, 0xa3, 0x8d, 0x15, 0xab, 0xb2, 0x48, 0x26,
		0x41, 0xaa, 0x3c, 0x41, 0x20, 0x96, 0x58, 0x47, 0x58, 0x1d, 0x5f, 0x74, 0x54, 0x4a, 0xec, 0xc8,
		0xea, 0x57, 0x14, 0xae, 0x59, 0x8b, 0x40, 0xe3, 0xc7, 0x8f, 0xd1, 0x28, 0x9a, 0x91, 0xd2, 0xda,
		0xa5, 0x8e, 0x85, 0x4a, 0x2b, 0x04, 0x49, 0x2a, 0x03, 0xc9, 0x7a, 0x14, 0x16, 0xa0, 0xdc, 0xa1,
		0xdc, 0xf7, 0x54, 0xb9, 0x2b, 0xef, 0x51, 0xa8, 0xda, 0x53, 0x24, 0xf6, 0x18, 0x89, 0x3c, 0x47,
		0x32, 0x0f, 0x92, 0x52, 0xd9, 0x30, 0x28, 0x1d, 0x6a, 0xe5, 0xc3, 0xa6, 0x84, 0xd8, 0x94, 0x11,
		0x8f, 0x52, 0x52, 0xab, 0x9c, 0x14, 0x2b, 0x29, 0x3a, 0x4f, 0x74, 0x4e, 0xe2, 0xed, 0xae, 0x49,
		0xa3, 0x5f, 0xa6, 0x1c, 0x98, 0x53, 0x82, 0xb5, 0xa3, 0x67, 0x93, 0xba, 0x19, 0x1a, 0xe3, 0x27,
		0xff, 0xbd, 0x48, 0xf8, 0xec, 0xe7, 0xce, 0x80, 0xb2, 0x34, 0xb1, 0x66, 0x49, 0x29, 0x7c, 0x97,
		0x3c, 0x43, 0x38, 0x73, 0xf8, 0x25, 0x67, 0x9e, 0x36, 0xde, 0xbe, 0xe4, 0xcd, 0xd3, 0xc6, 0xf0,
		0xaf, 0xf9, 0xf0, 0x8f, 0x9f, 0x85, 0xfe, 0x5b, 0xe1, 0x4b, 0xce, 0x2c, 0x46, 0xaf, 0x16, 0x4a,
		0x5f, 0x72, 0x66, 0xa9, 0x71, 0x74, 0xf8, 0xf5, 0xeb, 0xc7, 0x75, 0xdf, 0x73, 0xf4, 0xf3, 0xb8,
		0x4f, 0x97, 0x2b, 0xdf, 0xa0, 0x3c, 0x86, 0xdb, 0xfb, 0xcb, 0x3f, 0xd9, 0xce, 0xe2, 0x3f, 0x87,
		0x5c, 0xa7, 0x71, 0xf4, 0xb7, 0x4c, 0xda, 0xb2, 0x2c, 0x3f, 0xa4, 0x58, 0x2d, 0x95, 0xa1, 0x96,
		0xd6, 0x55, 0x4b, 0xa1, 0x54, 0x5b, 0x66, 0xe7, 0xdc, 0xfc, 0xdc, 0xf8, 0x99, 0xff, 0x50, 0xec,
		0x9f, 0x1d, 0xfd, 0xac, 0xf4, 0x67, 0x5f, 0x7c, 0x5b, 0xf4, 0x6b, 0xf9, 0x0f, 0x95, 0xfe, 0xd9,
		0x92, 0x7f, 0x29, 0xf7, 0xcf, 0x56, 0x5c, 0xa3, 0xd4, 0x3f, 0x9c, 0xfb, 0xd5, 0xc1, 0xeb, 0x85,
		0x65, 0x6f, 0x28, 0x2e, 0x79, 0xc3, 0xf1, 0xb2, 0x37, 0x1c, 0x2f, 0x79, 0xc3, 0xd2, 0x8f, 0x54,
		0x58, 0xf2, 0x86, 0x52, 0xff, 0x6d, 0xee, 0xf7, 0x0f, 0x17, 0xff, 0x6a, 0xb9, 0x7f, 0xf4, 0xb6,
		0xec, 0xdf, 0x2a, 0xfd, 0xb7, 0xb3, 0xa3, 0x23, 0x28, 0xea, 0x95, 0x15, 0x35, 0xc4, 0x93, 0x5f,
		0x3c, 0xd3, 0x67, 0xb8, 0xf6, 0x67, 0x9c, 0x93, 0x42, 0x66, 0xb1, 0x2d, 0xa4, 0x68, 0x49, 0xd1,
		0x36, 0xc7, 0x49, 0x77, 0x64, 0x74, 0xd0, 0x82, 0xbd, 0xc0, 0x0c, 0x81, 0x19, 0x02, 0x33, 0x04,
		0x66, 0x48, 0xa9, 0xc4, 0x07, 0xd2, 0xb7, 0xdd, 0x27, 0x0c, 0xf7, 0xde, 0xee, 0xbb, 0x8e, 0x92,
		0xbb, 0xcc, 0x40, 0x5a, 0xb2, 0x47, 0x18, 0x25, 0x98, 0xdd, 0x08, 0x36, 0x01, 0x36, 0x01, 0x36,
		0x01, 0x36, 0x41, 0xa9, 0xc4, 0x0b, 0xb7, 0xf7, 0x22, 0x7c, 0x8b, 0xa8, 0x23, 0x4f, 0x6c, 0x18,
		0x8a, 0x04, 0x6b, 0x57, 0xdd, 0xde, 0x0b, 0xdd, 0x7d, 0xaa, 0x7b, 0xf7, 0x43, 0x73, 0x49, 0xda,
		0x57, 0x24, 0x37, 0x38, 0x83, 0x87, 0x1a, 0x25, 0x2d, 0x97, 0x1f, 0x6c, 0x71, 0x71, 0xfb, 0xaf,
		0x9b, 0x4c, 0xba, 0x7a, 0xba, 0x78, 0x97, 0xe1, 0xd5, 0x27, 0x7c, 0xf8, 0xe1, 0x43, 0x51, 0xde,
		0x9e, 0x7b, 0x6a, 0x8b, 0x87, 0xda, 0xc0, 0x12, 0xee, 0x67, 0xd9, 0x7f, 0x22, 0xbd, 0x37, 0x5f,
		0x74, 0x7c, 0x11, 0x3c, 0x9b, 0xbe, 0x68, 0xf7, 0x5a, 0x24, 0x3d, 0x04, 0x62, 0xd5, 0x3a, 0xbf,
		0x15, 0x3c, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xe0, 0xc1, 0x29, 0x95, 0xf8, 0x47, 0xcf, 0x73, 0x84,
		0x45, 0xea, 0xbd, 0xe5, 0x13, 0xfd, 0x88, 0xc5, 0xab, 0xf4, 0x2d, 0xb3, 0xe7, 0x06, 0xd2, 0x7a,
		0x74, 0x88, 0x1e, 0xb6, 0x2f, 0x3a, 0xc2, 0x17, 0x6e, 0x2b, 0xd5, 0xf9, 0x29, 0x77, 0x9f, 0x3f,
		0x19, 0x85, 0xd3, 0x72, 0xde, 0xb8, 0xbb, 0xff, 0xa3, 0x66, 0xdc, 0x0d, 0xcd, 0x93, 0x71, 0xfb,
		0x5d, 0xf8, 0xcf, 0xc2, 0x6a, 0x1b, 0x77, 0x23, 0x3b, 0xf5, 0xd5, 0xad, 0xbe, 0x4a, 0xe1, 0x06,
		0xb6, 0xe7, 0x06, 0x3b, 0xd6, 0x1b, 0x72, 0x7c, 0x8e, 0xbb, 0xdc, 0x1e, 0x72, 0xa3, 0x83, 0x4e,
		0x5b, 0x2f, 0xc9, 0xfd, 0x09, 0x6b, 0xa1, 0xd7, 0x90, 0xfa, 0xe6, 0x06, 0x71, 0xa9, 0x7c, 0xfc,
		0x37, 0xe5, 0xcd, 0xb5, 0xd8, 0x1a, 0x1e, 0xdc, 0x8c, 0xbe, 0x4b, 0xfc, 0x37, 0x95, 0xcd, 0xb3,
		0x76, 0xa4, 0x8d, 0x90, 0x9a, 0x04, 0x28, 0x74, 0x10, 0x42, 0x07, 0xa1, 0xb4, 0x2a, 0xb8, 0x34,
		0x75, 0x0d, 0x9a, 0x57, 0x69, 0x68, 0x15, 0x94, 0x06, 0x61, 0x4b, 0x43, 0x7f, 0xa0, 0x58, 0xb6,
		0x92, 0xdc, 0x15, 0x28, 0x10, 0xc1, 0xd0, 0x2d, 0xdf, 0xba, 0x29, 0x50, 0xbc, 0x12, 0x7a, 0x02,
		0xa1, 0x27, 0x90, 0x36, 0xf6, 0x2e, 0x65, 0x3d, 0x81, 0xa2, 0x4b, 0xa3, 0xae, 0x25, 0xd0, 0x68,
		0x41, 0x74, 0x04, 0x62, 0xb8, 0xa4, 0x54, 0x0c, 0x13, 0x3a, 0x02, 0x25, 0x01, 0xd0, 0x29, 0xeb,
		0x08, 0x24, 0x5e, 0xbb, 0x8e, 0xdd, 0xb2, 0xa5, 0xe9, 0x7b, 0x3d, 0x29, 0x4c, 0xef, 0xf1, 0xff,
		0x89, 0x96, 0x24, 0x68, 0x10, 0xb4, 0x64, 0x9f, 0x84, 0xb7, 0x94, 0x40, 0xbf, 0x20, 0x2a, 0x12,
		0x1a, 0x2d, 0x25, 0x92, 0x4e, 0x72, 0x2a, 0x6f, 0x29, 0xb1, 0x50, 0x05, 0xd0, 0xa5, 0x1e, 0x2c,
		0xde, 0x0e, 0xd3, 0xed, 0x91, 0x7e, 0xa0, 0x4f, 0x41, 0xb1, 0x29, 0x2a, 0x1e, 0x85, 0xa5, 0x56,
		0x71, 0x29, 0x56, 0x60, 0x64, 0x8a, 0x2c, 0x5e, 0xd8, 0x76, 0xdb, 0xe2, 0x95, 0x7e, 0x62, 0xe4,
		0x70, 0x1b, 0x8c, 0x8a, 0xe4, 0x56, 0x68, 0x8c, 0x8a, 0x8d, 0x4b, 0xc1, 0xb1, 0x2b, 0x3a, 0x76,
		0x85, 0xc7, 0xab, 0xf8, 0x68, 0x14, 0x20, 0x91, 0x22, 0x8c, 0x1f, 0x0d, 0xdf, 0xa8, 0x48, 0xf5,
		0x9d, 0x21, 0x97, 0x7a, 0x60, 0x15, 0xda, 0x8e, 0x0b, 0xd3, 0x9d, 0x23, 0x87, 0x2a, 0x79, 0x9f,
		0x67, 0x26, 0x2b, 0xed, 0x33, 0xb9, 0x54, 0x7e, 0xa8, 0x66, 0x7d, 0x11, 0xfa, 0xee, 0xe4, 0x3e,
		0x3c, 0x4c, 0x1f, 0x4c, 0x1f, 0x4c, 0x5f, 0xc2, 0xb0, 0x40, 0xbc, 0x81, 0x15, 0xd0, 0x8f, 0xe2,
		0x1d, 0xf7, 0xd0, 0x0c, 0x5c, 0x6a, 0xe1, 0xa5, 0xc5, 0x07, 0x6c, 0x38, 0x81, 0x53, 0x69, 0x6a,
		0x50, 0x9e, 0xdc, 0x4a, 0x54, 0x9b, 0x32, 0xd5, 0xa6, 0x54, 0xf5, 0x28, 0x57, 0x5a, 0x25, 0x4b,
		0xac, 0x6c, 0xf9, 0xf0, 0xc6, 0x02, 0xc5, 0x68, 0xba, 0xbd, 0x97, 0x47, 0xe1, 0x73, 0xdc, 0xb9,
		0x48, 0x45, 0x56, 0x18, 0xb6, 0xe2, 0x99, 0x58, 0x3f, 0xfa, 0xe1, 0xd1, 0x21, 0x06, 0xf7, 0x04,
		0xfb, 0x78, 0x53, 0xe6, 0x49, 0xf6, 0xf1, 0xbe, 0xba, 0x86, 0x94, 0x8f, 0xaf, 0x09, 0xf7, 0xb0,
		0x72, 0x26, 0x4d, 0x33, 0x2d, 0x52, 0x8c, 0x93, 0xee, 0xe7, 0x44, 0xaa, 0x58, 0x38, 0x2d, 0x9e,
		0x96, 0x2b, 0x85, 0xd3, 0x12, 0x64, 0x8b, 0x4b, 0xb6, 0x0e, 0x76, 0x63, 0x97, 0x46, 0xaa, 0x6d,
		0x3d, 0x43, 0x21, 0xe2, 0xdc, 0x9e, 0xf4, 0x85, 0x89, 0x1a, 0x2d, 0xe3, 0x44, 0xe1, 0xe2, 0x71,
		0xb1, 0x52, 0x31, 0x4c, 0x63, 0x98, 0xd5, 0xeb, 0xd8, 0xee, 0x93, 0xf1, 0xe0, 0x0e, 0xdd, 0x1c,
		0xd1, 0x36, 0xae, 0x6c, 0xf7, 0x5b, 0x60, 0xd8, 0xae, 0x71, 0x27, 0x82, 0x10, 0x04, 0x7c, 0x75,
		0xef, 0xc4, 0xbd, 0xf0, 0xff, 0x08, 0x33, 0xa9, 0x8d, 0x51, 0x06, 0xb0, 0x61, 0x1a, 0x75, 0xdf,
		0xea, 0x74, 0xec, 0x96, 0x51, 0x75, 0x9f, 0x6c, 0x57, 0x08, 0x7f, 0xb0, 0xd0, 0xe1, 0xdd, 0xfd,
		0x1f, 0x35, 0xb3, 0x5e, 0x3d, 0xca, 0x30, 0x6a, 0x68, 0x66, 0xb0, 0xb2, 0x08, 0xb4, 0x70, 0xd5,
		0x42, 0x26, 0x06, 0xbf, 0x2c, 0xc4, 0x31, 0x5c, 0xb2, 0x05, 0x5b, 0x90, 0x2c, 0x5b, 0x70, 0x90,
		0x42, 0x2b, 0x43, 0x1c, 0x75, 0x9f, 0xd3, 0xbb, 0x94, 0xd1, 0xf7, 0x59, 0x08, 0x09, 0x96, 0x6d,
		0x8b, 0x83, 0x02, 0xcb, 0xb6, 0x3b, 0x56, 0x0a, 0x2c, 0xdb, 0xfa, 0x8f, 0x8c, 0x9f, 0x65, 0xeb,
		0xd9, 0xae, 0x2c, 0x17, 0x19, 0x29, 0xb6, 0x13, 0x50, 0x6c, 0x5b, 0xf0, 0x21, 0xa0, 0xd8, 0xf6,
		0x82, 0x06, 0xd9, 0x17, 0x8a, 0x8d, 0xa6, 0xae, 0x1f, 0x52, 0x06, 0x80, 0x95, 0x1a, 0x93, 0x0f,
		0xb2, 0x8d, 0xc8, 0xb3, 0x01, 0xd9, 0x46, 0x81, 0x5d, 0x40, 0xb6, 0x81, 0x6c, 0xdb, 0x5f, 0x5b,
		0x90, 0x52, 0xb2, 0x2d, 0x9a, 0xc6, 0x63, 0xda, 0x6d, 0x4e, 0xce, 0x6d, 0x62, 0x57, 0x50, 0x6f,
		0x6b, 0x6d, 0x04, 0xea, 0x8d, 0xca, 0x7c, 0x81, 0x7a, 0x4b, 0xab, 0x76, 0xdf, 0x4d, 0xea, 0xed,
		0xb8, 0x80, 0xec, 0xb6, 0x74, 0xc0, 0x0a, 0x50, 0x6f, 0xfb, 0x41, 0x8a, 0x20, 0xbb, 0x0d, 0xb2,
		0x05, 0x90, 0xa5, 0x13, 0x64, 0x81, 0x70, 0x4b, 0x97, 0x65, 0x04, 0xe1, 0x46, 0x89, 0x58, 0x40,
		0xb8, 0x81, 0x70, 0xdb, 0x5f, 0x5b, 0x90, 0x4e, 0xc2, 0xad, 0x6b, 0x76, 0x79, 0x18, 0x9c, 0x31,
		0xdb, 0x16, 0x6f, 0x09, 0xaa, 0x6d, 0xad, 0x8d, 0x40, 0xb5, 0x51, 0x19, 0x2e, 0x50, 0x6d, 0x69,
		0xd5, 0xeb, 0xbb, 0x47, 0xb5, 0x71, 0xa9, 0xc7, 0x49, 0x15, 0x99, 0x3f, 0x65, 0xd8, 0x2b, 0x7a,
		0x94, 0x3b, 0x8b, 0x29, 0xec, 0xee, 0xf7, 0xa2, 0xc9, 0xaa, 0x49, 0xa6, 0x8e, 0xf0, 0x84, 0x71,
		0xcf, 0x9a, 0x25, 0xa5, 0xf0, 0x5d, 0xb6, 0xd3, 0x8c, 0x37, 0x3e, 0xfc, 0x92, 0x33, 0x4f, 0x1b,
		0x6f, 0x5f, 0xf2, 0xe6, 0x69, 0x63, 0xf8, 0xd7, 0x7c, 0xf8, 0xc7, 0xcf, 0x42, 0xff, 0xad, 0xf0,
		0x25, 0x67, 0x16, 0xa3, 0x57, 0x0b, 0xa5, 0x2f, 0x39, 0xb3, 0xd4, 0x38, 0x3a, 0xfc, 0xfa, 0xf5,
		0xe3, 0xba, 0xef, 0x39, 0xfa, 0x79, 0xdc, 0xcf, 0xc6, 0x6f, 0x2a, 0x44, 0xff, 0x7a, 0xfc, 0x25,
		0x67, 0x16, 0x1a, 0x8c, 0x5e, 0x77, 0x83, 0xf3, 0x3c, 0x6f, 0xef, 0x2f, 0xff, 0xd4, 0x76, 0xa8,
		0xff, 0x39, 0xd4, 0x7e, 0xac, 0x47, 0x7f, 0x63, 0x3c, 0x58, 0x1e, 0x38, 0xf5, 0x61, 0x87, 0xf5,
		0x6c, 0x19, 0x7a, 0x96, 0x58, 0xcf, 0x86, 0x17, 0xc5, 0x32, 0x3b, 0xe7, 0xe6, 0xe7, 0xc6, 0xcf,
		0xfc, 0x87, 0x62, 0xff, 0xec, 0xe8, 0x67, 0xa5, 0x3f, 0xfb, 0xe2, 0xdb, 0xa2, 0x5f, 0xcb, 0x7f,
		0xa8, 0xf4, 0xcf, 0x96, 0xfc, 0x4b, 0xb9, 0x7f, 0xb6, 0xe2, 0x1a, 0xa5, 0xfe, 0xe1, 0xdc, 0xaf,
		0x0e, 0x5e, 0x2f, 0x2c, 0x7b, 0x43, 0x71, 0xc9, 0x1b, 0x8e, 0x97, 0xbd, 0xe1, 0x78, 0xc9, 0x1b,
		0x96, 0x7e, 0xa4, 0xc2, 0x92, 0x37, 0x94, 0xfa, 0x6f, 0x73, 0xbf, 0x7f, 0xb8, 0xf8, 0x57, 0xcb,
		0xfd, 0xa3, 0xb7, 0x65, 0xff, 0x56, 0xe9, 0xbf, 0x9d, 0x1d, 0x1d, 0x65, 0x0f, 0xf3, 0x03, 0xed,
		0x75, 0x32, 0x54, 0x67, 0xf9, 0xc6, 0x9c, 0x96, 0x0b, 0xff, 0x1f, 0x76, 0x88, 0xce, 0x0e, 0x41,
		0xea, 0x13, 0x2b, 0xf5, 0xbb, 0x67, 0xa5, 0x11, 0x00, 0x7b, 0xf7, 0x4a, 0x22, 0x00, 0x46, 0xe4,
		0x44, 0x21, 0x00, 0x46, 0xc1, 0x23, 0x22, 0x00, 0x86, 0x00, 0xd8, 0xfe, 0xda, 0x82, 0x54, 0x06,
		0xc0, 0x1c, 0xeb, 0x51, 0x38, 0x7c, 0xc1, 0xaf, 0xe1, 0x76, 0x08, 0x7c, 0xad, 0x07, 0x0b, 0x10,
		0xf8, 0x22, 0x32, 0x58, 0x08, 0x7c, 0xa5, 0x55, 0x9f, 0xef, 0x5e, 0xe0, 0xeb, 0xa5, 0xeb, 0x04,
		0x26, 0x87, 0x7e, 0x34, 0x10, 0xf9, 0x52, 0x7b, 0x72, 0x6c, 0xd5, 0x01, 0xb3, 0xa7, 0x57, 0x61,
		0xdc, 0x92, 0xb7, 0x5a, 0x80, 0xff, 0x34, 0xe3, 0x2f, 0xaa, 0xa3, 0x7a, 0x20, 0xde, 0x3c, 0xee,
		0xb6, 0x50, 0xfe, 0xa0, 0xe7, 0x03, 0xe8, 0x4e, 0xf9, 0x1e, 0x5f, 0x2e, 0x5d, 0xa9, 0xdf, 0x4c,
		0x16, 0x66, 0xb1, 0xec, 0x69, 0x28, 0x33, 0x98, 0x97, 0xbd, 0x5c, 0xf1, 0xa4, 0x54, 0x29, 0x41,
		0x00, 0x75, 0x0b, 0xe0, 0xc1, 0x6e, 0xee, 0x86, 0x00, 0xf0, 0x76, 0xee, 0x86, 0x70, 0x7b, 0x2f,
		0xc2, 0x0f, 0xc9, 0x22, 0x1d, 0x01, 0xe0, 0x22, 0xe3, 0x9e, 0x55, 0xb7, 0xf7, 0xc2, 0xcf, 0x68,
		0xd6, 0xbd, 0x7b, 0xe9, 0xdb, 0xee, 0x93, 0x16, 0x55, 0x9c, 0xc9, 0x0d, 0xce, 0xf8, 0xb2, 0xf6,
		0x47, 0xb1, 0x59, 0xfd, 0xb3, 0x76, 0x75, 0xf9, 0xe9, 0xb2, 0xde, 0xbc, 0x79, 0xb8, 0xba, 0xca,
		0x68, 0x30, 0x47, 0xf9, 0x90, 0xce, 0xbc, 0x7d, 0xa8, 0x57, 0xef, 0x9a, 0xe7, 0x57, 0xd5, 0xbb,
		0xba, 0x8e, 0x0f, 0x51, 0x88, 0x9e, 0x47, 0x59, 0xff, 0xf3, 0x38, 0x0e, 0x3f, 0xca, 0xb5, 0xe6,
		0x4f, 0x51, 0x19, 0x7c, 0x8a, 0xea, 0x4d, 0xfd, 0xee, 0xb6, 0xf6, 0xef, 0xe6, 0xd5, 0xf9, 0x6f,
		0xd5, 0xab, 0xe6, 0xe5, 0xcd, 0xc5, 0xe5, 0xa7, 0xf3, 0xfa, 0xed, 0x9d, 0x8e, 0xcf, 0x73, 0x32,
		0xf8, 0x3c, 0x37, 0xb7, 0xc3, 0x8f, 0x92, 0x39, 0xd8, 0x61, 0x1f, 0x2d, 0x53, 0xf7, 0x2e, 0x5d,
		0xa9, 0x47, 0x2d, 0x2c, 0x3b, 0x70, 0x56, 0x14, 0x18, 0x7f, 0x9a, 0xe9, 0x4b, 0x70, 0x66, 0x1c,
		0xeb, 0xf8, 0x0c, 0xf3, 0x3a, 0x52, 0x8b, 0xb7, 0xb8, 0x48, 0x39, 0x91, 0x8d, 0x21, 0x7c, 0xdf,
		0x43, 0x18, 0x5d, 0x42, 0x96, 0xde, 0x9d, 0xf3, 0x14, 0xc1, 0xa4, 0xa5, 0x38, 0x33, 0xf2, 0x3b,
		0xea, 0xbf, 0x22, 0x1c, 0x96, 0x00, 0xd5, 0x8c, 0xd4, 0x08, 0x2a, 0x78, 0x81, 0xd4, 0x08, 0x75,
		0x90, 0x09, 0xa9, 0x11, 0x48, 0x8d, 0x80, 0x2d, 0x48, 0x6b, 0x6a, 0x84, 0xe7, 0x05, 0x82, 0x31,
		0x35, 0x22, 0xdc, 0x0e, 0xa9, 0x11, 0x6b, 0x6d, 0x84, 0xd4, 0x08, 0x2a, 0x83, 0x85, 0xd4, 0x88,
		0xb4, 0xea, 0xf3, 0xdd, 0x4b, 0x8d, 0x78, 0xf4, 0x3c, 0x47, 0x58, 0x2e, 0x67, 0x5e, 0x44, 0x1e,
		0xe0, 0x08, 0xe0, 0x08, 0xe0, 0x08, 0xe0, 0x08, 0xe0, 0x08, 0xe0, 0x08, 0xe0, 0x68, 0x4e, 0x70,
		0x25, 0x87, 0x13, 0x10, 0xab, 0xdd, 0x70, 0x37, 0x40, 0x23, 0x40, 0x23, 0x40, 0x23, 0x40, 0x23,
		0x40, 0x23, 0x6d, 0xc9, 0x40, 0x9c, 0x49, 0x40, 0xbc, 0xc9, 0x3f, 0x7a, 0x92, 0x7e, 0xc6, 0xc9,
		0x3e, 0x9c, 0x1e, 0x7f, 0x7e, 0x94, 0x51, 0xc3, 0xb9, 0x69, 0x98, 0xc6, 0x73, 0x7e, 0x7f, 0xc3,
		0xb9, 0xe7, 0x71, 0xb4, 0x27, 0xeb, 0xd3, 0x2d, 0xfe, 0xff, 0xec, 0xbd, 0x6d, 0x73, 0xda, 0xca,
		0xb2, 0x36, 0xfc, 0x3d, 0xbf, 0x82, 0xa2, 0x4e, 0xd5, 0x89, 0xab, 0xa2, 0x60, 0x30, 0xc6, 0x2f,
		0x55, 0xe7, 0x03, 0x06, 0x39, 0xd6, 0xbd, 0x40, 0x62, 0x0b, 0x39, 0x3b, 0x39, 0x89, 0xb7, 0x4a,
		0x81, 0xb1, 0xa3, 0x67, 0x61, 0xc1, 0x2d, 0x89, 0xbc, 0xdc, 0x2b, 0xfe, 0xef, 0x4f, 0x21, 0x5e,
		0x8c, 0x0d, 0x24, 0xb6, 0x99, 0xee, 0x91, 0xd0, 0xb5, 0x6b, 0x57, 0x56, 0x82, 0x8d, 0x06, 0x7a,
		0xba, 0xaf, 0xee, 0xbe, 0xa6, 0xa7, 0x7b, 0xb2, 0xe8, 0xf4, 0x18, 0x9e, 0x71, 0xd5, 0xc3, 0xc9,
		0xaa, 0x97, 0xa6, 0x79, 0xd9, 0x3e, 0xd3, 0x6d, 0xbd, 0xe9, 0x1a, 0xa6, 0xa3, 0xdb, 0xe7, 0xf5,
		0x86, 0x5e, 0xdc, 0xa5, 0x6a, 0x4b, 0x05, 0x05, 0x38, 0x89, 0xce, 0xb2, 0x96, 0x73, 0x4c, 0x35,
		0x96, 0xb5, 0xa6, 0x66, 0x0a, 0x41, 0xac, 0xd5, 0x33, 0x53, 0x00, 0x3a, 0x2d, 0x94, 0x19, 0x97,
		0x9c, 0x17, 0xc7, 0x70, 0x96, 0xb0, 0xae, 0xb5, 0xc9, 0xd3, 0xc2, 0xe1, 0x8e, 0xe4, 0xc6, 0x77,
		0xe0, 0x49, 0x9f, 0xb9, 0x26, 0x78, 0x52, 0xf0, 0xa4, 0x2f, 0x4c, 0x3c, 0xc1, 0x93, 0x82, 0x27,
		0x4d, 0xf1, 0x2a, 0x99, 0xe5, 0x49, 0x5f, 0x65, 0xc8, 0x77, 0x15, 0xeb, 0x41, 0x30, 0x8c, 0xa7,
		0x09, 0x3f, 0x25, 0x16, 0x15, 0xa3, 0xde, 0x57, 0x71, 0xeb, 0x8d, 0xbc, 0xf8, 0xeb, 0xc4, 0xe8,
		0x4a, 0xc3, 0x91, 0x08, 0x7a, 0x09, 0x77, 0xa9, 0x05, 0x22, 0xfe, 0x3e, 0x0c, 0xff, 0xd6, 0xfc,
		0x89, 0xdf, 0x0c, 0x7a, 0xa2, 0xf4, 0xf8, 0x85, 0x68, 0xe5, 0x95, 0xd2, 0xed, 0x68, 0x10, 0x95,
		0xa2, 0xc4, 0x5e, 0xfd, 0xe0, 0x46, 0x1b, 0xcd, 0x8c, 0x30, 0x2a, 0x85, 0xd1, 0xb7, 0x91, 0x16,
		0x8b, 0x52, 0x24, 0xa2, 0xc8, 0x1f, 0x06, 0xd1, 0xfc, 0x2f, 0x25, 0xf1, 0x63, 0x34, 0xf0, 0x7b,
		0x7e, 0xac, 0x85, 0xc3, 0x71, 0x2c, 0xb4, 0xe1, 0x97, 0xff, 0x4f, 0xf4, 0xe2, 0x68, 0xfd, 0xcb,
		0xa5, 0x28, 0xf6, 0x62, 0x4a, 0x54, 0x2c, 0x46, 0x71, 0x38, 0xee, 0xc5, 0xc1, 0xcc, 0xbd, 0x59,
		0x0b, 0x61, 0x98, 0xd3, 0x2f, 0x6a, 0xcc, 0xbe, 0xa7, 0xfb, 0xe8, 0xdf, 0xd1, 0xe3, 0x17, 0xdc,
		0xf6, 0x68, 0x10, 0xb9, 0xdd, 0xb9, 0x20, 0xe6, 0x60, 0x14, 0xb9, 0x76, 0xf4, 0x6d, 0xe4, 0x08,
		0xb7, 0x3b, 0x13, 0xc3, 0xfc, 0x2f, 0xae, 0x3e, 0xfb, 0xbe, 0xf6, 0xe4, 0xeb, 0x5a, 0x53, 0x21,
		0xac, 0x7b, 0xd1, 0xed, 0x26, 0x22, 0x78, 0x95, 0x0d, 0x03, 0x91, 0xfb, 0x44, 0xc9, 0xa6, 0x36,
		0x71, 0xb9, 0xd3, 0xb9, 0xa8, 0x7d, 0x21, 0x9b, 0xe6, 0x2d, 0xb6, 0xfc, 0x28, 0xae, 0xc7, 0x71,
		0x48, 0x62, 0xbc, 0xc5, 0xb6, 0x1f, 0xe8, 0x03, 0x31, 0xf1, 0x94, 0x44, 0x57, 0x67, 0x8b, 0x6d,
		0xef, 0xc7, 0xd2, 0x0a, 0xe5, 0xe3, 0x6a, 0xb5, 0x76, 0x54, 0xad, 0xee, 0x1f, 0x1d, 0x1c, 0xed,
		0x9f, 0x1c, 0x1e, 0x96, 0x6b, 0x65, 0x82, 0x8b, 0xc3, 0x45, 0x2b, 0xec, 0x4f, 0x5c, 0xfb, 0xd9,
		0x64, 0x5b, 0x82, 0xf1, 0x60, 0x40, 0xb9, 0xc4, 0x65, 0x24, 0x42, 0x92, 0x3b, 0xbf, 0xb2, 0xb5,
		0x94, 0xd8, 0x11, 0x64, 0xca, 0x01, 0x10, 0x40, 0x7f, 0xfa, 0x21, 0x5f, 0x2e, 0xd8, 0xcb, 0x83,
		0x64, 0x39, 0x4f, 0x92, 0x64, 0x2e, 0x54, 0x66, 0x92, 0x52, 0xf3, 0x90, 0x68, 0x08, 0xe9, 0x32,
		0x00, 0x39, 0xca, 0xbe, 0xbd, 0x6a, 0x4a, 0x50, 0xcb, 0xe2, 0x60, 0xd8, 0xf3, 0x06, 0xda, 0x34,
		0xbc, 0x90, 0xa5, 0x93, 0x4b, 0x75, 0xe4, 0xf7, 0x0f, 0x97, 0x64, 0x42, 0x72, 0x4b, 0x23, 0xa4,
		0x97, 0x40, 0x50, 0x94, 0x3a, 0x10, 0x96, 0x34, 0x50, 0x31, 0x49, 0xe4, 0x25, 0x0a, 0xe4, 0x34,
		0x10, 0x6d, 0xc9, 0x41, 0xba, 0xdc, 0x92, 0xf4, 0x52, 0x81, 0x7b, 0x00, 0x10, 0xde, 0x75, 0x28,
		0xae, 0x65, 0x6a, 0xec, 0xfc, 0xd8, 0x5f, 0xe2, 0x55, 0xf3, 0x62, 0x67, 0xe6, 0x39, 0xdf, 0xbe,
		0x9d, 0x66, 0xef, 0xa5, 0x65, 0xe0, 0xda, 0x21, 0xb0, 0x0f, 0x45, 0x6f, 0x18, 0xf6, 0x1f, 0x79,
		0x69, 0xe9, 0xa8, 0xbf, 0x76, 0x15, 0xb9, 0xf0, 0x5f, 0x06, 0xfc, 0x03, 0xfe, 0x01, 0xff, 0x72,
		0x74, 0xb6, 0xe9, 0xcb, 0x65, 0x80, 0xd6, 0x01, 0x80, 0x7c, 0x15, 0xfb, 0x0d, 0xda, 0xc8, 0x56,
		0x36, 0xb9, 0xa0, 0xb3, 0x0a, 0x3e, 0x92, 0x0b, 0x3a, 0x28, 0xcb, 0x6d, 0x19, 0xca, 0x6b, 0xa9,
		0x4f, 0x37, 0xd9, 0xca, 0x67, 0xd9, 0x8e, 0x2a, 0x79, 0xca, 0x63, 0xd3, 0xcd, 0x93, 0xcb, 0x06,
		0xb1, 0xc5, 0x83, 0xe5, 0xa6, 0xc6, 0x1b, 0xed, 0x89, 0x82, 0xe0, 0x27, 0x4a, 0x9a, 0xc9, 0xa3,
		0x28, 0x4e, 0x40, 0x63, 0x04, 0x36, 0x2e, 0x80, 0x63, 0x07, 0x3a, 0x76, 0xc0, 0xe3, 0x05, 0x3e,
		0x1a, 0x00, 0x24, 0x02, 0x42, 0xba, 0xa4, 0x9e, 0x31, 0xc9, 0xe7, 0x48, 0xfa, 0xff, 0x4c, 0x02,
		0x48, 0x4c, 0xff, 0xe9, 0x55, 0xe9, 0x8e, 0xe4, 0xd4, 0xc9, 0x8b, 0x05, 0xbd, 0xeb, 0xa3, 0x2c,
		0x98, 0x20, 0x8a, 0xdd, 0xc9, 0x63, 0x78, 0xb8, 0x3e, 0xb8, 0x3e, 0xb8, 0xbe, 0x94, 0xe5, 0x02,
		0x8b, 0x05, 0xbc, 0x7e, 0x3f, 0x14, 0x51, 0xc4, 0x77, 0xe9, 0x78, 0xbe, 0x20, 0xee, 0x1d, 0xa7,
		0x0d, 0x3c, 0x15, 0x80, 0x28, 0x37, 0x98, 0x2a, 0x03, 0x55, 0x65, 0xe0, 0xaa, 0x06, 0x64, 0x69,
		0xc1, 0x96, 0x18, 0x74, 0xf9, 0xf2, 0x8e, 0x55, 0xea, 0x64, 0xa4, 0xf1, 0xe0, 0x63, 0x01, 0xd3,
		0xaa, 0x64, 0xef, 0xdc, 0xb7, 0x2a, 0xe3, 0xde, 0xad, 0xec, 0xe1, 0x31, 0xe7, 0x40, 0x75, 0x55,
		0xb3, 0xd4, 0x5f, 0xaf, 0x4c, 0xf0, 0x2e, 0x27, 0xff, 0xf9, 0xa7, 0x72, 0xf7, 0xab, 0xf2, 0x69,
		0x5f, 0xab, 0xce, 0x5e, 0xad, 0x1c, 0x7e, 0xda, 0xd7, 0x0e, 0xaf, 0xf6, 0x5e, 0x7f, 0xfe, 0xfc,
		0xf6, 0xb9, 0xef, 0xd9, 0xfb, 0xe7, 0xe0, 0x0e, 0x73, 0xf0, 0xe5, 0xaf, 0x3e, 0x9b, 0x83, 0xcf,
		0xb0, 0x7b, 0x3b, 0x38, 0xd0, 0xfd, 0xcd, 0x0e, 0xc3, 0x66, 0x0d, 0xb0, 0x49, 0x0d, 0x9b, 0x89,
		0x15, 0x79, 0xda, 0x75, 0x5d, 0x3b, 0xbf, 0xfa, 0xa7, 0xfc, 0xa6, 0x7a, 0x77, 0xba, 0xf7, 0xcf,
		0xd1, 0xdd, 0xe3, 0x17, 0x7f, 0xad, 0xfb, 0xb5, 0xf2, 0x9b, 0xa3, 0xbb, 0xd3, 0x0d, 0x3f, 0xa9,
		0xdd, 0x9d, 0x3e, 0xf1, 0x19, 0x87, 0x77, 0xaf, 0x57, 0x7e, 0x75, 0xf2, 0x7a, 0x65, 0xd3, 0x1b,
		0xaa, 0x1b, 0xde, 0x70, 0xb0, 0xe9, 0x0d, 0x07, 0x1b, 0xde, 0xb0, 0xf1, 0x23, 0x55, 0x36, 0xbc,
		0xe1, 0xf0, 0xee, 0xd7, 0xca, 0xef, 0xbf, 0x5e, 0xff, 0xab, 0xb5, 0xbb, 0xbd, 0x5f, 0x9b, 0x7e,
		0x76, 0x74, 0xf7, 0xeb, 0x74, 0x6f, 0x0f, 0x8e, 0x84, 0xcc, 0x91, 0x40, 0x9d, 0xf9, 0xd5, 0x79,
		0xf7, 0x1c, 0x2b, 0x6e, 0xef, 0xf2, 0x87, 0x1c, 0xc4, 0x75, 0x08, 0xab, 0x31, 0x06, 0x61, 0x3d,
		0x02, 0xf8, 0x46, 0xf0, 0x8d, 0xe0, 0x1b, 0xc1, 0x37, 0x66, 0x94, 0x6f, 0x1c, 0xfb, 0x41, 0x7c,
		0xcc, 0x48, 0x35, 0x32, 0x8c, 0x3f, 0x66, 0x1e, 0xa9, 0xce, 0x98, 0x33, 0xab, 0x18, 0xa1, 0xbe,
		0x18, 0x5f, 0xcd, 0x3c, 0x01, 0x50, 0xf9, 0xc0, 0x6a, 0x75, 0x83, 0xaa, 0x19, 0xa7, 0x6f, 0x2a,
		0x99, 0x8c, 0xbe, 0x50, 0xa9, 0xca, 0xe1, 0x21, 0x94, 0x8a, 0x4b, 0xa9, 0x90, 0x4e, 0xed, 0x6c,
		0x3a, 0x15, 0x8a, 0xd1, 0x30, 0x8c, 0x45, 0x5f, 0xbb, 0x1e, 0x78, 0x37, 0x8c, 0x95, 0x1c, 0x8f,
		0xd6, 0x45, 0x82, 0x85, 0x04, 0x0b, 0x09, 0x16, 0x12, 0x2c, 0x24, 0x58, 0x48, 0xb0, 0x90, 0x60,
		0x21, 0xc1, 0x42, 0x82, 0x85, 0x04, 0x0b, 0x09, 0x16, 0x12, 0xac, 0x1d, 0x4a, 0xb0, 0x06, 0xde,
		0x17, 0x31, 0x50, 0x90, 0x60, 0x4d, 0xd7, 0x45, 0x82, 0x85, 0x04, 0x0b, 0x09, 0x16, 0x12, 0x2c,
		0x24, 0x58, 0x4b, 0x16, 0x77, 0x3b, 0x1a, 0x44, 0x2c, 0xf8, 0x58, 0x40, 0xc5, 0xbc, 0xfc, 0xd4,
		0xf8, 0xa0, 0xa2, 0xa0, 0xe8, 0xf3, 0x88, 0x71, 0x49, 0xde, 0x5c, 0x99, 0x7f, 0x37, 0x95, 0xe6,
		0xce, 0x2b, 0x09, 0x4f, 0xb9, 0xf6, 0x46, 0xcd, 0x07, 0x50, 0x9d, 0xf7, 0xa8, 0xcf, 0x7f, 0x14,
		0x24, 0xd7, 0x4a, 0x93, 0xec, 0x55, 0xdd, 0xdb, 0xaf, 0x1e, 0x1f, 0x1e, 0x1d, 0x42, 0x01, 0x55,
		0x2b, 0xe0, 0xab, 0xdd, 0x5c, 0x0d, 0x37, 0x4d, 0xb6, 0x0b, 0x37, 0x78, 0x47, 0xba, 0xae, 0x44,
		0x8c, 0x9c, 0xc3, 0xf1, 0x58, 0x47, 0xbc, 0xde, 0xc7, 0xab, 0x2a, 0x46, 0xbd, 0x2e, 0x56, 0x5f,
		0x8c, 0x7c, 0x75, 0xf5, 0x0f, 0x9d, 0x96, 0xd1, 0x30, 0x1c, 0xd7, 0xbc, 0x6c, 0xb5, 0x8a, 0x0a,
		0xdc, 0x51, 0x32, 0x08, 0xd6, 0xb6, 0x2e, 0x1d, 0xdd, 0x76, 0xeb, 0x2d, 0xdd, 0x76, 0x54, 0x7c,
		0x88, 0xca, 0x7c, 0x1a, 0xad, 0x7a, 0x79, 0x24, 0xf3, 0x62, 0x8d, 0xb6, 0xe2, 0x4f, 0x71, 0x34,
		0xf9, 0x14, 0xba, 0xe9, 0xd8, 0x56, 0xe7, 0xa3, 0x9b, 0x8c, 0xac, 0x74, 0x0d, 0xb3, 0x69, 0x34,
		0xea, 0x8e, 0x65, 0xab, 0xf8, 0x3c, 0xc7, 0x93, 0xcf, 0x63, 0x5a, 0xd3, 0x8f, 0x52, 0x7c, 0xb5,
		0xc3, 0x31, 0x9a, 0x82, 0xf1, 0xb2, 0xf7, 0x50, 0xb8, 0x61, 0xc3, 0x59, 0xb3, 0xc0, 0xc5, 0xa7,
		0x79, 0x68, 0x04, 0xac, 0xb3, 0x68, 0xef, 0x3f, 0xc3, 0x2a, 0x46, 0x2a, 0x89, 0x16, 0xd7, 0x81,
		0x13, 0xeb, 0x40, 0xe0, 0xfb, 0x08, 0x61, 0x6e, 0x84, 0xa7, 0x85, 0x63, 0x05, 0xcb, 0x3f, 0xf0,
		0x14, 0xa7, 0x85, 0xf2, 0x8e, 0xc6, 0xaf, 0x38, 0x20, 0x53, 0xfb, 0xf9, 0x31, 0x8e, 0x71, 0xdd,
		0x3a, 0xaa, 0xc7, 0x0d, 0xad, 0x1b, 0x30, 0xb0, 0xee, 0xc5, 0x1d, 0x1e, 0xc5, 0x68, 0x27, 0xdf,
		0xf6, 0xc1, 0x54, 0xae, 0x95, 0x97, 0x30, 0x86, 0x51, 0x62, 0x46, 0x8a, 0x31, 0x8c, 0x9b, 0x57,
		0xc0, 0x18, 0xc6, 0x94, 0x68, 0xe9, 0xae, 0x8f, 0x61, 0x7c, 0x2a, 0xf0, 0xef, 0xd4, 0x08, 0xc6,
		0xa7, 0x40, 0x3d, 0xc6, 0x2f, 0x2a, 0x34, 0x8f, 0x54, 0x9a, 0xc5, 0x4e, 0x0c, 0x5f, 0x5c, 0x55,
		0xfd, 0x5d, 0x9a, 0xc6, 0x25, 0xb7, 0xbd, 0x36, 0x49, 0x3b, 0x6d, 0xcc, 0xdb, 0xc2, 0xbc, 0xad,
		0x02, 0xe6, 0x6d, 0xc9, 0x75, 0x43, 0xd2, 0xe7, 0x6d, 0xf5, 0x45, 0x14, 0xfb, 0x41, 0xe2, 0xd8,
		0x34, 0xaa, 0xd6, 0xd4, 0x0b, 0xab, 0x58, 0xb7, 0x18, 0xcd, 0xbc, 0xad, 0x7d, 0xaa, 0x79, 0x5b,
		0xfb, 0x98, 0xb7, 0xc5, 0x00, 0x4a, 0x6c, 0xe0, 0xc4, 0x06, 0x52, 0x3c, 0x60, 0x95, 0x0d, 0x42,
		0x84, 0xac, 0x68, 0x95, 0xa7, 0xad, 0x33, 0x65, 0x51, 0x2a, 0x6d, 0x11, 0x2a, 0xc3, 0x1c, 0x10,
		0xa6, 0xb6, 0xcc, 0x1c, 0xfd, 0x44, 0xd9, 0xfa, 0x87, 0xee, 0x40, 0x9b, 0xe5, 0x2b, 0xca, 0x6d,
		0xe0, 0xec, 0x7e, 0xb9, 0x23, 0x6d, 0x93, 0xaf, 0xb2, 0x74, 0xf8, 0xc4, 0x03, 0x4b, 0x35, 0xc0,
		0xd2, 0x73, 0x61, 0x09, 0x7d, 0x5f, 0x77, 0xae, 0x8d, 0xf1, 0xce, 0x01, 0x35, 0xd4, 0x73, 0xa7,
		0xda, 0x12, 0x5f, 0x65, 0xe4, 0xc8, 0xf9, 0x2a, 0xad, 0xa7, 0x26, 0x12, 0x19, 0xc7, 0xe4, 0x96,
		0x9f, 0x46, 0x70, 0xcf, 0xe8, 0x7e, 0xfc, 0xe7, 0x7c, 0x05, 0xb0, 0x40, 0x60, 0x81, 0xc0, 0x02,
		0x81, 0x05, 0x92, 0xaa, 0xf1, 0xa4, 0x57, 0x95, 0xc1, 0x02, 0xfd, 0x46, 0xf2, 0xe4, 0x57, 0x8d,
		0x19, 0xae, 0x16, 0x33, 0x5d, 0x25, 0x66, 0xb8, 0xba, 0xcf, 0x79, 0x55, 0x98, 0xfd, 0x6a, 0xb0,
		0xb2, 0x9b, 0x98, 0xfc, 0x37, 0x2f, 0x19, 0xae, 0x91, 0xb0, 0x5e, 0xed, 0x55, 0x73, 0x95, 0x37,
		0x4f, 0x0a, 0x93, 0xd1, 0xd2, 0x79, 0xb0, 0x97, 0x0f, 0xdd, 0x29, 0xcf, 0x55, 0x5a, 0x8e, 0xab,
		0xb3, 0x3c, 0x57, 0x65, 0x79, 0xaf, 0xc6, 0x2a, 0xbc, 0x0a, 0xab, 0xe4, 0xea, 0xab, 0xc2, 0xab,
		0xae, 0x6a, 0xae, 0xb6, 0xaa, 0xbe, 0xca, 0xca, 0x79, 0x75, 0x95, 0xbc, 0x61, 0x15, 0xdb, 0xd5,
		0x54, 0xb5, 0x57, 0x51, 0x55, 0x5c, 0x3d, 0x55, 0x76, 0xd5, 0x54, 0xd9, 0xd5, 0x52, 0xe6, 0xab,
		0xa4, 0xbc, 0x57, 0x47, 0x33, 0x77, 0x35, 0x11, 0x24, 0xfb, 0x0b, 0x54, 0x6a, 0x4a, 0x81, 0x0f,
		0xc7, 0x31, 0x35, 0xcb, 0x3e, 0x59, 0x02, 0x34, 0x3b, 0x68, 0xf6, 0xdf, 0x6c, 0x27, 0x68, 0x76,
		0xf5, 0xb8, 0x07, 0x9a, 0x7d, 0x7d, 0x52, 0x0a, 0x9a, 0x7d, 0x55, 0xf2, 0xa0, 0xd9, 0x53, 0xb0,
		0x1b, 0x8b, 0x2f, 0x02, 0x9a, 0x9d, 0x46, 0xd9, 0x41, 0xb3, 0xcb, 0xd2, 0x15, 0xd0, 0xec, 0x19,
		0x4b, 0xd4, 0x0a, 0xa0, 0xd9, 0x19, 0xdd, 0x29, 0x68, 0xf6, 0xe7, 0xc6, 0x4f, 0xa0, 0xd9, 0x09,
		0x17, 0x05, 0xcd, 0x0e, 0x9a, 0xfd, 0xe5, 0x96, 0x09, 0x9a, 0x9d, 0x6e, 0x4d, 0xd0, 0xec, 0xb4,
		0xcb, 0x81, 0x66, 0x67, 0x7d, 0x6a, 0x2e, 0x68, 0xf6, 0x61, 0xcf, 0x1b, 0x68, 0xd3, 0x1e, 0x6c,
		0x74, 0x44, 0xfb, 0xd2, 0x22, 0xa0, 0xda, 0x41, 0xb5, 0xff, 0x66, 0x3b, 0x41, 0xb5, 0xab, 0xc7,
		0xbe, 0xec, 0x51, 0xed, 0x63, 0x3f, 0x88, 0x6b, 0x55, 0x42, 0x9a, 0x9d, 0xc0, 0xbb, 0x13, 0x13,
		0xbc, 0x84, 0xbc, 0x00, 0x07, 0xa1, 0xcb, 0x35, 0x8e, 0x98, 0x9d, 0x8e, 0xe3, 0xa3, 0xe1, 0x28,
		0x27, 0x91, 0x72, 0xf0, 0xb4, 0xf7, 0xfc, 0x2c, 0x4b, 0xfb, 0xd3, 0xbc, 0x68, 0x05, 0x82, 0xef,
		0xf4, 0x04, 0xdf, 0xd1, 0x48, 0xf3, 0xfb, 0x84, 0x71, 0xf7, 0xf4, 0xf9, 0x08, 0xb9, 0x11, 0x72,
		0x23, 0xe4, 0x46, 0xc8, 0x2d, 0x3d, 0xe4, 0x2e, 0xd7, 0x08, 0x43, 0xee, 0x1a, 0x42, 0x6e, 0x84,
		0xdc, 0x08, 0xb9, 0xd5, 0x84, 0xdc, 0xb5, 0xc3, 0xc3, 0x03, 0xc4, 0xd8, 0x88, 0xb1, 0x55, 0xfa,
		0x30, 0xf1, 0x23, 0x0e, 0x3d, 0x6d, 0x1c, 0x44, 0xb1, 0xf7, 0x65, 0x40, 0xe4, 0xcd, 0x42, 0x71,
		0x2d, 0x42, 0x11, 0xf4, 0x32, 0x5d, 0xee, 0x68, 0x9f, 0x37, 0x0a, 0x07, 0x95, 0xfd, 0x13, 0xca,
		0xe2, 0x0c, 0xe2, 0x28, 0x74, 0x5d, 0x34, 0x7a, 0xbf, 0x37, 0xc4, 0xb8, 0xc0, 0x15, 0x98, 0xae,
		0x0d, 0x50, 0x17, 0x9b, 0x07, 0x34, 0xca, 0x41, 0xc6, 0x3f, 0x0a, 0x87, 0xb1, 0x48, 0xbc, 0x9e,
		0x16, 0x8a, 0xff, 0x3b, 0x16, 0x51, 0x2c, 0x08, 0xf3, 0xff, 0xb5, 0xab, 0x81, 0x0d, 0x00, 0x1b,
		0x00, 0x36, 0x00, 0x6c, 0x80, 0x54, 0x8d, 0xf7, 0xfb, 0x22, 0x88, 0xfd, 0xf8, 0x67, 0x28, 0xae,
		0x29, 0x2f, 0xbb, 0x50, 0x4c, 0x3d, 0x33, 0x66, 0x1f, 0xfd, 0xcc, 0x8b, 0x08, 0xed, 0x6a, 0x2e,
		0xa8, 0x8e, 0x6d, 0x39, 0x7a, 0xc3, 0x31, 0x2c, 0xd3, 0x75, 0x3e, 0x76, 0x74, 0x2a, 0xeb, 0x4a,
		0xf2, 0xb8, 0x88, 0xf4, 0xf6, 0x08, 0x71, 0x20, 0x38, 0x17, 0x58, 0xcb, 0x30, 0xff, 0x72, 0x4d,
		0xab, 0xa9, 0xbb, 0x4b, 0xa2, 0xb3, 0xf5, 0x7f, 0x5d, 0xea, 0x5d, 0x47, 0x6f, 0x16, 0xb3, 0x98,
		0xca, 0x73, 0x4a, 0xee, 0x91, 0xd0, 0x0c, 0x1b, 0x32, 0xfb, 0x9d, 0xcc, 0x2e, 0xcd, 0x99, 0xc0,
		0x48, 0xc5, 0x44, 0xf2, 0xe4, 0xab, 0xb4, 0x3b, 0xb5, 0x54, 0x06, 0xe4, 0x91, 0x08, 0xfa, 0x22,
		0xd4, 0xe2, 0x68, 0x24, 0x7a, 0x74, 0x81, 0xf8, 0x83, 0x55, 0x68, 0x02, 0xf0, 0x32, 0x02, 0x70,
		0x04, 0xe0, 0x08, 0xc0, 0xd3, 0x19, 0x80, 0xcb, 0x1e, 0x4f, 0x76, 0xcf, 0x27, 0x08, 0xef, 0x6f,
		0xad, 0xef, 0xc5, 0x9e, 0x16, 0xca, 0x1c, 0x7c, 0xb8, 0x99, 0x51, 0x78, 0xb8, 0x1e, 0x91, 0xc6,
		0xd0, 0x70, 0x0a, 0xe4, 0xd0, 0xc6, 0x01, 0x71, 0x8c, 0x50, 0xc7, 0x05, 0x79, 0xec, 0xd0, 0xc7,
		0x0e, 0x81, 0xbc, 0x50, 0x48, 0x1b, 0x66, 0x12, 0xc5, 0xf8, 0x74, 0x1c, 0xc5, 0x2a, 0x57, 0x21,
		0x84, 0xb8, 0x1e, 0x0c, 0x3d, 0x9e, 0x16, 0x11, 0x27, 0x84, 0x4b, 0xb4, 0x44, 0x70, 0x93, 0x0c,
		0x48, 0x46, 0x8f, 0x88, 0x67, 0x93, 0x23, 0xc5, 0xd3, 0x42, 0x15, 0x37, 0xfe, 0xb3, 0x43, 0x00,
		0xdc, 0xab, 0x8a, 0x8a, 0x16, 0x11, 0x50, 0x95, 0x6c, 0x78, 0x27, 0xfa, 0xa7, 0x67, 0xaa, 0x39,
		0x04, 0x47, 0x0d, 0xc5, 0x62, 0x2d, 0xfa, 0x5a, 0x0a, 0x46, 0x87, 0xb4, 0x54, 0x5b, 0x51, 0xa9,
		0x94, 0xf7, 0x4f, 0x0b, 0x76, 0xf7, 0x7d, 0xa7, 0xf0, 0xdd, 0x8f, 0xbf, 0x16, 0x0c, 0xd3, 0xe9,
		0xea, 0xf6, 0x7b, 0x8e, 0x9b, 0xf7, 0x4c, 0x91, 0xf7, 0xba, 0x08, 0x9c, 0xab, 0xfa, 0x42, 0x59,
		0x30, 0xbe, 0x36, 0x28, 0xff, 0xcd, 0x76, 0x03, 0x11, 0x79, 0x11, 0xf1, 0x55, 0x06, 0x30, 0xb6,
		0xc8, 0xc3, 0xba, 0x80, 0x6b, 0x01, 0xd7, 0x02, 0xae, 0x05, 0x5c, 0x0b, 0xb8, 0x16, 0x70, 0x2d,
		0xe0, 0x5a, 0x90, 0x40, 0x83, 0x6b, 0x81, 0xaa, 0x20, 0xb3, 0x00, 0xd7, 0x02, 0xae, 0x05, 0x5c,
		0x0b, 0xb8, 0x16, 0x20, 0x62, 0x3e, 0xb8, 0x96, 0xc8, 0xff, 0x7f, 0x0c, 0x5c, 0x4b, 0xb2, 0x0a,
		0xb8, 0x16, 0x70, 0x2d, 0xe0, 0x5a, 0xc0, 0xb5, 0x80, 0x6b, 0x01, 0xd7, 0x02, 0xae, 0x05, 0x09,
		0x34, 0xb8, 0x16, 0xa8, 0x0a, 0x32, 0x0b, 0x70, 0x2d, 0xe0, 0x5a, 0xc0, 0xb5, 0x80, 0x6b, 0x01,
		0x22, 0xa6, 0x8b, 0x6b, 0x49, 0xf5, 0xd5, 0xa7, 0x7a, 0x10, 0x0c, 0xe3, 0xe9, 0xec, 0x28, 0x92,
		0x1b, 0x50, 0x51, 0xef, 0xab, 0xb8, 0xf5, 0x46, 0x5e, 0x92, 0x2f, 0x14, 0x4b, 0xc3, 0x91, 0x08,
		0x7a, 0x09, 0x0f, 0xa2, 0x05, 0x22, 0xfe, 0x3e, 0x0c, 0xff, 0xd6, 0xfc, 0x89, 0x97, 0x08, 0x7a,
		0xa2, 0xf4, 0xf8, 0x85, 0x68, 0xe5, 0x95, 0xd2, 0xed, 0x68, 0x10, 0x95, 0x22, 0xff, 0x26, 0xf0,
		0x06, 0x7e, 0x70, 0xa3, 0x8d, 0xc2, 0x61, 0x3c, 0xec, 0x0d, 0x07, 0x51, 0x69, 0x92, 0xd2, 0x6a,
		0xb1, 0x28, 0x45, 0x22, 0x8a, 0xfc, 0x61, 0x10, 0xcd, 0xff, 0x52, 0x8a, 0x62, 0x2f, 0x79, 0x99,
		0xec, 0x82, 0xe7, 0xf4, 0x5b, 0xc6, 0xe1, 0xb8, 0x17, 0x07, 0x33, 0xf0, 0xb6, 0x16, 0x5f, 0xd2,
		0x9c, 0x7e, 0x01, 0x63, 0xf6, 0xf9, 0xdd, 0x47, 0xff, 0x8e, 0x1e, 0xbf, 0xe0, 0xb6, 0x47, 0x83,
		0xc8, 0xed, 0xce, 0xbf, 0x60, 0x67, 0xfe, 0xfd, 0x5c, 0x3b, 0xfa, 0x36, 0x72, 0x84, 0xdb, 0x9d,
		0x7d, 0xbd, 0xf9, 0x5f, 0xdc, 0xee, 0xe4, 0xeb, 0xb9, 0xdd, 0xe4, 0xeb, 0x39, 0xc9, 0xb7, 0xcb,
		0xc5, 0xa5, 0xe0, 0xe4, 0xcb, 0x6b, 0x33, 0x79, 0x93, 0x5d, 0x0a, 0x5e, 0x5a, 0x05, 0x5d, 0x79,
		0x70, 0x29, 0xf8, 0x49, 0xf1, 0x0b, 0x2e, 0x05, 0xef, 0x8a, 0x67, 0xa4, 0xef, 0xca, 0x13, 0x4d,
		0xa7, 0x10, 0x12, 0x36, 0xe4, 0x39, 0xce, 0x83, 0x37, 0x48, 0x8c, 0x5b, 0xf3, 0xfa, 0xfd, 0x50,
		0x44, 0x11, 0xa1, 0x3f, 0x78, 0xb8, 0x0e, 0x3c, 0x02, 0x3c, 0x02, 0x3c, 0x02, 0x3c, 0x82, 0x54,
		0x8d, 0xf7, 0x47, 0x44, 0xf8, 0xf2, 0xc0, 0x2b, 0x10, 0x9c, 0x0d, 0xcd, 0x65, 0x93, 0xd9, 0x26,
		0xbd, 0xfe, 0xe8, 0x5b, 0x95, 0x50, 0xf6, 0xab, 0x9e, 0x99, 0x70, 0x8d, 0x8e, 0x17, 0xc7, 0x22,
		0x0c, 0xc8, 0xf9, 0xd0, 0xe2, 0xeb, 0x4f, 0xfb, 0xda, 0xc9, 0xd5, 0xaf, 0x4f, 0x65, 0xed, 0xe4,
		0x6a, 0xfa, 0xd7, 0x72, 0xf2, 0x9f, 0x7f, 0x2a, 0x77, 0xbf, 0x2a, 0x9f, 0xf6, 0xb5, 0xea, 0xec,
		0xd5, 0xca, 0xe1, 0xa7, 0x7d, 0xed, 0xf0, 0x6a, 0xef, 0xf5, 0xe7, 0xcf, 0x6f, 0x9f, 0xfb, 0x9e,
		0xbd, 0x7f, 0x0e, 0xee, 0xe8, 0x48, 0xb0, 0x2b, 0xca, 0x6d, 0xb0, 0xba, 0xc6, 0x07, 0xb6, 0xbd,
		0xf8, 0xcf, 0x6b, 0xae, 0xdd, 0xd8, 0xfb, 0xaf, 0x22, 0x8e, 0x39, 0xf8, 0x60, 0xa9, 0x06, 0x58,
		0x7a, 0x2e, 0x2c, 0x25, 0x5a, 0xed, 0x69, 0xd7, 0x75, 0xed, 0xfc, 0xea, 0x9f, 0xf2, 0x9b, 0xea,
		0xdd, 0xe9, 0xde, 0x3f, 0x47, 0x77, 0x8f, 0x5f, 0xfc, 0xb5, 0xee, 0xd7, 0xca, 0x6f, 0x8e, 0xee,
		0x4e, 0x37, 0xfc, 0xa4, 0x76, 0x77, 0xfa, 0xc4, 0x67, 0x1c, 0xde, 0xbd, 0x5e, 0xf9, 0xd5, 0xc9,
		0xeb, 0x95, 0x4d, 0x6f, 0xa8, 0x6e, 0x78, 0xc3, 0xc1, 0xa6, 0x37, 0x1c, 0x6c, 0x78, 0xc3, 0xc6,
		0x8f, 0x54, 0xd9, 0xf0, 0x86, 0xc3, 0xbb, 0x5f, 0x2b, 0xbf, 0xff, 0x7a, 0xfd, 0xaf, 0xd6, 0xee,
		0xf6, 0x7e, 0x6d, 0xfa, 0xd9, 0xd1, 0xdd, 0xaf, 0xd3, 0xbd, 0x3d, 0x00, 0xf5, 0x93, 0x81, 0x1a,
		0xea, 0xc9, 0xaf, 0x9e, 0xd9, 0x73, 0x5c, 0xe8, 0xe2, 0xff, 0x12, 0x46, 0x28, 0xf6, 0xe2, 0x31,
		0x25, 0x13, 0x34, 0x7d, 0x3e, 0x18, 0x20, 0x30, 0x40, 0x60, 0x80, 0xc0, 0x00, 0x49, 0xd5, 0x78,
		0x11, 0x8c, 0x6f, 0x45, 0x38, 0x3d, 0x90, 0x27, 0xa4, 0x80, 0x08, 0x0a, 0x0b, 0x8b, 0x7a, 0x30,
		0xbe, 0xa5, 0xb3, 0x27, 0x67, 0xd8, 0x9d, 0x1e, 0x97, 0x90, 0x16, 0x93, 0xed, 0x27, 0x5d, 0xc6,
		0x3b, 0x94, 0xa9, 0x56, 0x79, 0xb2, 0x44, 0xd3, 0xfa, 0xb7, 0x59, 0xcc, 0x56, 0xa1, 0xfc, 0xd0,
		0x48, 0x4c, 0x9f, 0x50, 0xf8, 0x89, 0x50, 0xa4, 0xb7, 0xca, 0x7e, 0xb0, 0xc4, 0x65, 0x67, 0xe2,
		0x09, 0xf3, 0x59, 0x39, 0x94, 0xca, 0x58, 0x2d, 0x1e, 0x07, 0x81, 0x18, 0x90, 0x8e, 0x59, 0xbe,
		0x5f, 0x02, 0x11, 0x1b, 0x22, 0x36, 0x44, 0x6c, 0x88, 0xd8, 0xa4, 0x6a, 0x3c, 0x26, 0x2d, 0xaf,
		0xfc, 0x0f, 0x93, 0x96, 0x9f, 0xb6, 0x0e, 0x26, 0x2d, 0xbf, 0x48, 0x05, 0x30, 0x69, 0x39, 0x33,
		0x6a, 0x80, 0x49, 0xcb, 0x12, 0xb6, 0x0b, 0x93, 0x96, 0x9f, 0xe8, 0x8a, 0x31, 0x69, 0x39, 0x1b,
		0x81, 0xe9, 0xda, 0x00, 0x15, 0x93, 0x96, 0x89, 0xd0, 0x28, 0x9d, 0x79, 0x3f, 0x45, 0x5c, 0x7e,
		0x9f, 0xf2, 0x4f, 0x9e, 0x8e, 0x6c, 0x1f, 0xd9, 0x3e, 0xb2, 0x7d, 0x64, 0xfb, 0x52, 0x35, 0x1e,
		0x93, 0x94, 0x9f, 0x28, 0xa8, 0x56, 0xb7, 0xe3, 0xda, 0x56, 0x0b, 0x23, 0x94, 0xff, 0x28, 0x29,
		0xfd, 0x9d, 0xad, 0x77, 0xbb, 0x18, 0xfb, 0xbb, 0x59, 0x42, 0x86, 0x09, 0x11, 0xfd, 0x41, 0x44,
		0x8e, 0x5d, 0x37, 0xbb, 0x86, 0x83, 0xa9, 0xc8, 0xa9, 0x3d, 0x34, 0x7b, 0x95, 0x22, 0x45, 0xa5,
		0xba, 0xf6, 0x9f, 0x8e, 0xeb, 0xfe, 0x45, 0xa9, 0xb5, 0x64, 0x2a, 0x6f, 0xf6, 0xcb, 0x31, 0xe7,
		0xed, 0x55, 0x6f, 0xbb, 0x27, 0x6c, 0xa9, 0xb4, 0x93, 0x50, 0x7d, 0x22, 0xfc, 0xc1, 0xb0, 0xe7,
		0x0d, 0x34, 0x3f, 0xe8, 0x8b, 0x6d, 0x63, 0xf5, 0x62, 0xcb, 0x8f, 0xe2, 0x7a, 0x1c, 0xcb, 0x99,
		0xfa, 0x5b, 0x6c, 0xfb, 0x81, 0x3e, 0x10, 0x93, 0xd0, 0x5b, 0x12, 0x79, 0x5b, 0x6c, 0x7b, 0x3f,
		0x96, 0x9e, 0x58, 0x3e, 0xae, 0x56, 0x6b, 0x47, 0xd5, 0xea, 0xfe, 0xd1, 0xc1, 0xd1, 0xfe, 0xc9,
		0xe1, 0x61, 0xb9, 0x26, 0x23, 0x3e, 0x2c, 0x5a, 0x61, 0x5f, 0x84, 0xa2, 0x7f, 0x36, 0x11, 0x6e,
		0x30, 0x1e, 0x0c, 0x64, 0x3e, 0xf2, 0x32, 0x12, 0xa1, 0x14, 0x76, 0x79, 0x5b, 0xdd, 0x91, 0x0c,
		0x74, 0xaa, 0x01, 0x4e, 0x02, 0xb4, 0x29, 0x83, 0xb4, 0xed, 0xc0, 0xec, 0xe5, 0x10, 0xf4, 0xb2,
		0x77, 0xbe, 0x50, 0xf1, 0x64, 0x29, 0x9c, 0x2a, 0x45, 0xdb, 0x42, 0xc1, 0xd8, 0x15, 0xeb, 0x65,
		0x0a, 0xf5, 0x7c, 0x75, 0x78, 0xde, 0x3b, 0x9e, 0xa9, 0x38, 0xdb, 0x2a, 0x0c, 0xb3, 0xa2, 0xbc,
		0x40, 0x3f, 0xb8, 0xf4, 0xe2, 0x79, 0xea, 0xf0, 0xf4, 0x4d, 0x7d, 0xc6, 0x86, 0x16, 0x23, 0x71,
		0x33, 0xf1, 0xda, 0x5a, 0x38, 0x1c, 0xc7, 0x2f, 0x29, 0x56, 0x5d, 0xea, 0x3e, 0xf4, 0xf0, 0x41,
		0xcf, 0x54, 0xaa, 0x39, 0x8f, 0xf4, 0xcc, 0xb7, 0xbd, 0x94, 0x8c, 0xde, 0x86, 0x6c, 0x5e, 0x26,
		0x93, 0xa3, 0xf0, 0x25, 0xfa, 0xb5, 0x25, 0x55, 0x2c, 0x8d, 0x0a, 0x96, 0x46, 0xf5, 0x3e, 0xa6,
		0x72, 0xa3, 0xb0, 0x98, 0x32, 0xd0, 0x6a, 0xfa, 0x2f, 0x8b, 0x9d, 0x8b, 0xde, 0xcd, 0x4d, 0x28,
		0x6e, 0xbc, 0x58, 0x68, 0x91, 0xdf, 0xd7, 0x7a, 0xc3, 0x71, 0x10, 0x8b, 0xf0, 0xe5, 0x77, 0x75,
		0x16, 0xca, 0xb3, 0xe1, 0xb9, 0x2f, 0x94, 0xff, 0xcb, 0xcc, 0x67, 0x6b, 0x33, 0x92, 0x61, 0x4e,
		0xd2, 0xcc, 0x4a, 0x96, 0x79, 0x49, 0x37, 0x33, 0xe9, 0xe6, 0x26, 0xd3, 0xec, 0xd4, 0x04, 0x9d,
		0x2f, 0x35, 0xc7, 0xdf, 0x9b, 0xe5, 0xf6, 0x5b, 0xfe, 0x5b, 0xeb, 0xdc, 0x76, 0xfb, 0xb7, 0x33,
		0xd2, 0x55, 0x63, 0xad, 0x6c, 0xf9, 0x20, 0x89, 0x07, 0xae, 0xd2, 0x8c, 0x57, 0xb6, 0x11, 0x93,
		0x19, 0x33, 0x99, 0x51, 0x53, 0x18, 0x77, 0x3a, 0x68, 0xb1, 0x6d, 0x8d, 0x7e, 0xf1, 0xa0, 0x49,
		0xcc, 0xaf, 0x0d, 0xbc, 0x2f, 0x62, 0x20, 0x4f, 0x3f, 0xe6, 0x0a, 0xbc, 0xf4, 0x6c, 0x49, 0xfb,
		0x28, 0xb7, 0x0e, 0x43, 0x7a, 0xfd, 0x05, 0x45, 0xdd, 0x85, 0x74, 0x38, 0xa0, 0x82, 0x05, 0x72,
		0x78, 0x20, 0x87, 0x09, 0x4a, 0xb8, 0x90, 0x03, 0x1b, 0x92, 0xe0, 0x63, 0xf1, 0x45, 0xa5, 0xd7,
		0x4c, 0x2c, 0xb4, 0x75, 0x20, 0xbc, 0x6b, 0xb9, 0x75, 0x12, 0x0b, 0x9f, 0x7f, 0x24, 0xf1, 0x99,
		0x9d, 0x19, 0x75, 0xf2, 0xf6, 0xed, 0xac, 0x5b, 0xf4, 0x12, 0x66, 0xa5, 0xe5, 0xfc, 0x45, 0x0a,
		0xed, 0x2b, 0x73, 0x18, 0xfe, 0x83, 0x66, 0x08, 0x42, 0x32, 0xb6, 0x97, 0x65, 0x63, 0x7b, 0x05,
		0xd8, 0x0e, 0x6c, 0xcf, 0x21, 0xb6, 0xcb, 0x0a, 0x11, 0x17, 0x0f, 0xf4, 0x03, 0x6d, 0xd8, 0x8b,
		0x45, 0x4c, 0xd8, 0x5d, 0xe5, 0x7e, 0x09, 0x14, 0xf0, 0x72, 0x14, 0xf0, 0x4a, 0x05, 0x1d, 0x6a,
		0xf0, 0x61, 0x03, 0x21, 0x36, 0x30, 0xe2, 0x00, 0x25, 0xb9, 0xe0, 0x24, 0x19, 0xa4, 0xe8, 0x02,
		0xd1, 0x15, 0x6d, 0x9f, 0x11, 0x4f, 0xb5, 0x2a, 0x61, 0xe9, 0xee, 0x31, 0x6e, 0xeb, 0xde, 0x7f,
		0x70, 0xdc, 0xd6, 0xdd, 0x4a, 0x6d, 0x71, 0x5b, 0xf7, 0x99, 0x2a, 0x40, 0x53, 0x29, 0x95, 0x57,
		0xad, 0xc0, 0x75, 0xb9, 0xb4, 0x58, 0xd5, 0x24, 0x28, 0x1e, 0xfd, 0x4d, 0x1c, 0x75, 0x27, 0x0b,
		0x20, 0xe6, 0x46, 0xcc, 0x8d, 0x98, 0x1b, 0x31, 0x37, 0x62, 0x6e, 0xc4, 0xdc, 0x88, 0xb9, 0x11,
		0x73, 0x23, 0xe6, 0x46, 0xcc, 0x9d, 0xd3, 0x98, 0x9b, 0xa0, 0x2c, 0x62, 0xc5, 0x3b, 0x4a, 0x2f,
		0x8f, 0x40, 0xe4, 0x8d, 0xc8, 0x1b, 0x91, 0x37, 0x22, 0x6f, 0x4a, 0x6c, 0x29, 0x60, 0x98, 0xdc,
		0xef, 0x25, 0x3f, 0xf6, 0x83, 0xf8, 0xa0, 0xc2, 0x30, 0xaf, 0xe9, 0x88, 0x70, 0x09, 0xda, 0x04,
		0x88, 0x7e, 0x37, 0x58, 0x13, 0xa2, 0xd5, 0xa8, 0xb8, 0xf6, 0x86, 0x67, 0x41, 0xee, 0x58, 0x98,
		0x3f, 0x26, 0x66, 0xc8, 0x98, 0x58, 0x33, 0xa7, 0x55, 0x5d, 0xd9, 0xaf, 0x1e, 0x1f, 0x1e, 0x1d,
		0x42, 0x61, 0x32, 0x91, 0x4c, 0xd1, 0x3f, 0x1d, 0x43, 0x10, 0x1f, 0xba, 0x53, 0xda, 0x99, 0x28,
		0x2b, 0x11, 0x4d, 0x95, 0x70, 0x0d, 0xd2, 0x19, 0x29, 0xf7, 0xf1, 0x13, 0xc7, 0xac, 0x94, 0xc5,
		0x6a, 0xc9, 0xcc, 0x14, 0xa3, 0xf3, 0xbe, 0xea, 0xea, 0x1f, 0x3a, 0x2d, 0xa3, 0x61, 0x38, 0xae,
		0x79, 0xd9, 0x6a, 0x15, 0x19, 0xe0, 0x3a, 0x99, 0xa5, 0x62, 0x5b, 0x97, 0x8e, 0x6e, 0xbb, 0xf5,
		0x96, 0x6e, 0x3b, 0x1c, 0x8b, 0x56, 0x66, 0xdf, 0xb7, 0xc6, 0xff, 0x7d, 0x0f, 0x92, 0xa5, 0xdb,
		0xcc, 0xab, 0x1e, 0x25, 0x5d, 0xca, 0x4c, 0xc7, 0xb6, 0x3a, 0x1f, 0xdd, 0x56, 0xfd, 0x4c, 0x6f,
		0xb9, 0x86, 0xd9, 0x34, 0x1a, 0x75, 0xc7, 0xb2, 0x39, 0xd6, 0x3f, 0x9e, 0xac, 0x6f, 0x5a, 0xd3,
		0xa5, 0x8b, 0xaf, 0x32, 0x1c, 0x63, 0x30, 0x4c, 0xd1, 0xb9, 0x87, 0x9a, 0x0d, 0x1b, 0x46, 0x9a,
		0x35, 0x2c, 0x56, 0x7f, 0xa8, 0xa4, 0xa7, 0x85, 0x03, 0x8e, 0x35, 0x57, 0x31, 0x88, 0x25, 0xba,
		0x59, 0x07, 0x06, 0xd2, 0x6a, 0xce, 0x7f, 0xef, 0x21, 0xe7, 0x46, 0x41, 0x72, 0x06, 0xb6, 0x9a,
		0x12, 0x2e, 0x23, 0xed, 0x69, 0xa1, 0x9c, 0xd1, 0xf8, 0x0a, 0x24, 0x7b, 0x6a, 0x40, 0xb2, 0x38,
		0x1c, 0xc7, 0xe4, 0x15, 0xe5, 0x4b, 0x6b, 0x80, 0x64, 0x07, 0xc9, 0xbe, 0x71, 0x33, 0x41, 0xb2,
		0xab, 0x46, 0x3d, 0x94, 0xb7, 0xac, 0x83, 0x17, 0x94, 0xb7, 0x2c, 0x7d, 0x70, 0x94, 0xb7, 0x6c,
		0xa5, 0xb6, 0x28, 0x6f, 0x79, 0xa6, 0x0a, 0xa0, 0xbc, 0x05, 0x91, 0xf7, 0xce, 0x46, 0xde, 0xb4,
		0x35, 0xe5, 0x8b, 0x15, 0x10, 0x75, 0x23, 0xea, 0x46, 0xd4, 0x8d, 0xa8, 0x1b, 0x51, 0x37, 0xa2,
		0x6e, 0x44, 0xdd, 0x88, 0xba, 0x11, 0x75, 0x23, 0xea, 0xce, 0x52, 0xd4, 0x8d, 0xd1, 0x2d, 0xf2,
		0xfa, 0x88, 0x3f, 0x6a, 0x6c, 0x5d, 0x5a, 0xdf, 0xb8, 0x77, 0xfd, 0xcb, 0x19, 0x1c, 0xef, 0xd2,
		0x9d, 0x7e, 0x5d, 0x7b, 0xfa, 0x6d, 0xdd, 0xfa, 0xfc, 0x6b, 0x75, 0xfd, 0x7e, 0x63, 0xf6, 0x5d,
		0xd7, 0xbd, 0x88, 0xf1, 0x2f, 0x0f, 0x32, 0x04, 0xa9, 0xe5, 0xcc, 0x98, 0xfe, 0x82, 0xe9, 0x2f,
		0xbb, 0x8b, 0x91, 0x99, 0x98, 0x10, 0xf3, 0x42, 0x54, 0xc4, 0x04, 0x99, 0xcc, 0x2a, 0x6b, 0xaa,
		0xe7, 0xca, 0x3c, 0x41, 0x1d, 0xd9, 0x66, 0xcd, 0xbc, 0x60, 0xfe, 0x85, 0x3f, 0xf9, 0x84, 0xd7,
		0x5e, 0x4f, 0x48, 0x98, 0xa3, 0xb0, 0xf4, 0x2c, 0xcc, 0x4e, 0xc0, 0xec, 0x04, 0x25, 0xac, 0x67,
		0xc6, 0x66, 0x27, 0x2c, 0x4c, 0x46, 0xde, 0xbc, 0x84, 0xfb, 0x47, 0xa6, 0x6c, 0x46, 0xc2, 0x3e,
		0x66, 0x24, 0xa8, 0x33, 0x5a, 0x32, 0xe3, 0xa5, 0x30, 0xe2, 0x74, 0xe4, 0x8e, 0xd2, 0x66, 0x24,
		0xf4, 0xe6, 0x16, 0x20, 0xb9, 0x7d, 0xf6, 0xec, 0xb9, 0x29, 0xef, 0x9f, 0x8d, 0xd9, 0x08, 0x12,
		0x79, 0x5f, 0xf4, 0xcf, 0xce, 0x0c, 0xd7, 0x4a, 0xd0, 0x3f, 0x7b, 0xe6, 0xd8, 0x35, 0xbf, 0x4f,
		0xd9, 0xcc, 0x6f, 0x69, 0x15, 0x14, 0x5f, 0xa0, 0xf8, 0x42, 0x15, 0x14, 0xb1, 0x41, 0x12, 0x07,
		0x34, 0xc9, 0x85, 0x28, 0xc9, 0x50, 0xb5, 0x10, 0x00, 0x7d, 0xf1, 0x05, 0x21, 0xba, 0x3c, 0x08,
		0x62, 0x8e, 0x71, 0x1c, 0xc8, 0xc7, 0x16, 0xa6, 0x85, 0x3d, 0xbc, 0xe7, 0x9f, 0xee, 0xff, 0x5a,
		0x92, 0x1a, 0x24, 0x2b, 0xa1, 0x14, 0x8d, 0xc5, 0xd7, 0xba, 0xff, 0xab, 0x3b, 0xf3, 0x79, 0x3b,
		0x34, 0x63, 0x88, 0x24, 0xbc, 0xa1, 0x04, 0x1e, 0x4c, 0x93, 0x43, 0xc6, 0x84, 0x8c, 0x09, 0xd3,
		0xe4, 0x48, 0xa6, 0xc9, 0x4d, 0x5d, 0x4a, 0xe9, 0x01, 0x6c, 0xed, 0x24, 0xd8, 0x4f, 0xb6, 0x85,
		0x10, 0xed, 0xe5, 0xed, 0x7a, 0xde, 0x09, 0x32, 0xff, 0x1a, 0x70, 0xaf, 0x00, 0xee, 0xfd, 0x6b,
		0x10, 0x64, 0x4f, 0x7c, 0xa0, 0x64, 0x9e, 0x7d, 0xc5, 0x08, 0xa4, 0xa7, 0x12, 0x04, 0xb0, 0xb2,
		0x33, 0xa4, 0x98, 0x54, 0xb8, 0x01, 0x29, 0x96, 0x46, 0x38, 0xca, 0x06, 0x29, 0x26, 0x1b, 0xa6,
		0x56, 0x63, 0x20, 0x3a, 0x75, 0x94, 0x5d, 0x13, 0xc0, 0x94, 0x0a, 0xb3, 0x81, 0x19, 0x07, 0xa8,
		0xb1, 0x81, 0x1b, 0x17, 0xc8, 0xb1, 0x83, 0x1d, 0x3b, 0xe8, 0x71, 0x82, 0x1f, 0x0d, 0x08, 0x12,
		0x81, 0x21, 0x5d, 0xaa, 0xce, 0x98, 0xba, 0x73, 0xa4, 0xf2, 0x1b, 0x53, 0xfb, 0x52, 0xa2, 0x46,
		0xa7, 0x4b, 0x54, 0xf5, 0xa3, 0x17, 0x66, 0xff, 0x4e, 0xe8, 0xe5, 0x8c, 0xdc, 0xbd, 0x22, 0x50,
		0xb2, 0x62, 0x34, 0xfe, 0xc2, 0xe8, 0x1f, 0x1f, 0xac, 0x06, 0x17, 0x09, 0x17, 0x09, 0x17, 0x09,
		0x17, 0x09, 0x17, 0x99, 0x52, 0x17, 0xf9, 0xe9, 0xde, 0x45, 0xfe, 0x4f, 0x6f, 0x1c, 0x86, 0x22,
		0x88, 0x5f, 0xef, 0x95, 0xde, 0xbe, 0xbd, 0x67, 0xcb, 0xaf, 0x66, 0x6f, 0x59, 0xc6, 0xf5, 0x68,
		0xcd, 0x6b, 0x8b, 0x27, 0xf7, 0xc5, 0x8f, 0xcc, 0x78, 0xdb, 0x54, 0x67, 0xcb, 0xfa, 0x8f, 0xe4,
		0xe2, 0xa1, 0xfc, 0x26, 0x15, 0xf4, 0x84, 0xcd, 0xb0, 0xa7, 0x89, 0x1f, 0xf1, 0x69, 0x2c, 0x06,
		0xe2, 0x56, 0xc4, 0xe1, 0x4f, 0x6d, 0x18, 0x68, 0xbd, 0xaf, 0x49, 0xd7, 0x0d, 0x16, 0x12, 0x27,
		0xb9, 0xf2, 0xc8, 0xc0, 0xe2, 0xa4, 0x9d, 0xc0, 0xb9, 0x92, 0x4d, 0xa8, 0xd3, 0x54, 0xb9, 0xdc,
		0x87, 0xaa, 0x29, 0xaa, 0x76, 0x79, 0x70, 0xf0, 0x55, 0x22, 0x21, 0xac, 0x0b, 0xa9, 0xa9, 0x81,
		0x59, 0xfc, 0xcd, 0x16, 0xd7, 0x52, 0x0b, 0x62, 0xe4, 0xeb, 0xf5, 0x9d, 0xd4, 0xfa, 0x23, 0x2f,
		0x16, 0x74, 0xa7, 0x1c, 0xb2, 0xfb, 0x24, 0x14, 0x38, 0x0e, 0x39, 0x2a, 0x38, 0xe4, 0x60, 0x4b,
		0x6e, 0x70, 0xc8, 0xb1, 0x7b, 0x61, 0x1b, 0x0e, 0x39, 0xc0, 0xe0, 0x80, 0xc1, 0x01, 0x83, 0x03,
		0x06, 0x07, 0x0c, 0x0e, 0x03, 0x83, 0x83, 0x43, 0x8e, 0x02, 0x0e, 0x39, 0xe0, 0x22, 0xe1, 0x22,
		0xe1, 0x22, 0xe1, 0x22, 0xe1, 0x22, 0x71, 0xc8, 0x91, 0xad, 0x6c, 0x39, 0xbf, 0x8c, 0x32, 0x05,
		0x39, 0x58, 0x48, 0x27, 0xa1, 0x2c, 0xb1, 0x8b, 0xaa, 0x7c, 0xad, 0xc6, 0x3d, 0x62, 0xa5, 0x76,
		0xb0, 0x73, 0xd7, 0x89, 0x97, 0x35, 0x7f, 0x97, 0xee, 0x99, 0x3d, 0x68, 0x23, 0x29, 0xfd, 0x9a,
		0x99, 0xa4, 0x26, 0x95, 0x6b, 0x83, 0x10, 0x5c, 0x2a, 0x4e, 0x6f, 0x06, 0x84, 0x4b, 0xc5, 0xd9,
		0xf1, 0x4d, 0xd2, 0x6f, 0x99, 0x2d, 0xf7, 0x4b, 0xa6, 0x3b, 0x84, 0x95, 0xda, 0x94, 0x99, 0x10,
		0x60, 0x56, 0x81, 0xa6, 0x82, 0x26, 0x4c, 0x6c, 0x14, 0x0c, 0x9a, 0x30, 0xed, 0x5e, 0x72, 0x49,
		0x76, 0x14, 0x7b, 0x3d, 0x0c, 0xbf, 0x7b, 0x61, 0x7f, 0x12, 0xfb, 0xf6, 0x06, 0x5e, 0x14, 0x89,
		0x88, 0x9e, 0x73, 0x5e, 0xb3, 0x26, 0x2d, 0xf3, 0x5c, 0x06, 0xf3, 0xac, 0x0e, 0xee, 0xb8, 0x60,
		0x8f, 0x1d, 0xfe, 0xd8, 0x61, 0x90, 0x13, 0x0e, 0xe9, 0x58, 0xbc, 0x02, 0x21, 0xf3, 0x4c, 0x05,
		0x93, 0x1b, 0xe1, 0x92, 0x5e, 0x9b, 0x37, 0x81, 0x26, 0xb5, 0x52, 0xd3, 0x42, 0x27, 0x79, 0x84,
		0xa8, 0x02, 0x4a, 0xd9, 0x21, 0x95, 0x1b, 0x5a, 0x95, 0x41, 0xac, 0x32, 0xa8, 0x55, 0x01, 0xb9,
		0xb4, 0xd0, 0x4b, 0x0c, 0xc1, 0x6c, 0x50, 0xbc, 0x58, 0x48, 0xfc, 0x18, 0xf1, 0x29, 0xfe, 0xdc,
		0xb2, 0x27, 0x8b, 0x32, 0x69, 0x1e, 0x6d, 0xf5, 0x04, 0x7b, 0x4c, 0xab, 0x12, 0x98, 0x95, 0x01,
		0xb4, 0x2a, 0xa0, 0x56, 0x0e, 0xd8, 0xca, 0x81, 0x5b, 0x25, 0x80, 0xf3, 0x00, 0x39, 0x13, 0xa0,
		0x2f, 0x04, 0x49, 0x5e, 0xdd, 0xb1, 0xd1, 0x5a, 0xe9, 0xab, 0x3d, 0x36, 0x46, 0xc1, 0x47, 0x8c,
		0x6b, 0x2e, 0x35, 0x7c, 0x4c, 0x4e, 0xd6, 0x4b, 0x13, 0x67, 0xf3, 0x6a, 0x37, 0x14, 0x95, 0x41,
		0x49, 0x89, 0xae, 0x42, 0xfd, 0x51, 0x3b, 0xa9, 0xaa, 0x20, 0x14, 0x66, 0x67, 0xec, 0x59, 0x1a,
		0x82, 0x02, 0x04, 0x05, 0x08, 0x0a, 0x32, 0x18, 0x14, 0x70, 0x65, 0x7b, 0x4a, 0xb2, 0x3e, 0x85,
		0xd9, 0x9f, 0xa2, 0x2c, 0x50, 0x59, 0x36, 0xa8, 0xd2, 0x01, 0x28, 0x77, 0x04, 0xaa, 0x1d, 0x42,
		0x6a, 0x1c, 0x43, 0x6a, 0x1c, 0x44, 0x1a, 0x1c, 0x05, 0xaf, 0xc3, 0x60, 0x76, 0x1c, 0xea, 0xb2,
		0xca, 0x15, 0x6b, 0x1f, 0xfb, 0x41, 0x7c, 0xac, 0xc2, 0xda, 0x67, 0xd0, 0x7e, 0xa8, 0x60, 0x69,
		0x3b, 0x69, 0x64, 0x43, 0xd1, 0x99, 0xe7, 0x29, 0xff, 0x53, 0x83, 0x6e, 0xc9, 0x17, 0x6f, 0xfb,
		0x81, 0x32, 0x78, 0x5d, 0x7c, 0x88, 0xf7, 0xde, 0x60, 0x2c, 0xf8, 0x7d, 0xeb, 0xca, 0xe7, 0x38,
		0x0f, 0xbd, 0x5e, 0xec, 0x0f, 0x83, 0xa6, 0x7f, 0xe3, 0x27, 0x8d, 0x9a, 0x54, 0x7f, 0x20, 0x53,
		0xdc, 0x78, 0xb1, 0xff, 0x4d, 0xcc, 0xfb, 0x1f, 0x29, 0xfb, 0x34, 0x77, 0x6f, 0x14, 0xaa, 0xa8,
		0xf7, 0x23, 0x3d, 0x2a, 0x7a, 0x04, 0x15, 0x4d, 0xab, 0x8a, 0xbe, 0xca, 0xc7, 0xaa, 0x57, 0xaf,
		0x76, 0xf3, 0xfb, 0x31, 0x42, 0x4c, 0xd1, 0x0f, 0xb4, 0x61, 0x2f, 0x16, 0x71, 0xa4, 0x2e, 0x75,
		0xbe, 0xff, 0x08, 0x48, 0xa0, 0x91, 0x40, 0x23, 0x81, 0x46, 0x02, 0x8d, 0x04, 0x7a, 0x47, 0x12,
		0xe8, 0xd9, 0xd5, 0x94, 0x5a, 0x55, 0x61, 0x12, 0x7d, 0x8c, 0x24, 0x1a, 0x49, 0x34, 0x32, 0x14,
		0x24, 0xd1, 0x69, 0x4c, 0xa2, 0xcb, 0xc7, 0xd5, 0x6a, 0xed, 0xa8, 0x5a, 0xdd, 0x3f, 0x3a, 0x38,
		0xda, 0x3f, 0x39, 0x3c, 0x2c, 0xd7, 0xca, 0x87, 0xd0, 0x5a, 0xe4, 0xd5, 0xc8, 0xab, 0xb3, 0x9f,
		0x57, 0x8f, 0xfe, 0x56, 0x9c, 0x55, 0x27, 0x1f, 0x00, 0x39, 0x35, 0x72, 0x6a, 0xe4, 0xd4, 0xc8,
		0xa9, 0x91, 0x53, 0x23, 0xa7, 0x46, 0x4e, 0x8d, 0x9c, 0x1a, 0x39, 0x35, 0x72, 0x6a, 0xe4, 0xd4,
		0xd0, 0x5a, 0xe4, 0xd4, 0xc8, 0xa9, 0x33, 0x96, 0x53, 0x0f, 0xc7, 0xb1, 0xf2, 0xc3, 0xea, 0xa5,
		0xcf, 0x80, 0xcc, 0x1a, 0x99, 0x35, 0x32, 0x6b, 0x64, 0xd6, 0xc8, 0xac, 0x91, 0x59, 0x23, 0xb3,
		0x46, 0x66, 0x8d, 0xcc, 0x1a, 0x99, 0x35, 0x32, 0x6b, 0x68, 0x2d, 0x32, 0x6b, 0x64, 0xd6, 0x19,
		0xcc, 0xac, 0xd5, 0x1e, 0x57, 0x2f, 0x3e, 0x01, 0xb2, 0x6a, 0x64, 0xd5, 0xc8, 0xaa, 0x91, 0x55,
		0x23, 0xab, 0x46, 0x56, 0x8d, 0xac, 0x1a, 0x59, 0x35, 0xb2, 0x6a, 0x64, 0xd5, 0xc8, 0xaa, 0xa1,
		0xb5, 0xc8, 0xaa, 0x91, 0x55, 0x67, 0x66, 0x25, 0xae, 0x1e, 0x6b, 0xc4, 0x03, 0x46, 0x37, 0xae,
		0x9b, 0xa6, 0x81, 0x8b, 0xcb, 0xc3, 0xf5, 0x96, 0xff, 0x51, 0x5a, 0x9d, 0x29, 0xb3, 0xf2, 0x52,
		0x89, 0xb3, 0x43, 0x67, 0x21, 0x35, 0x53, 0x1c, 0xbb, 0x7e, 0xbf, 0x31, 0x93, 0xd8, 0xd2, 0xdf,
		0xdd, 0xf3, 0x85, 0x74, 0x1a, 0x53, 0x79, 0x3d, 0x7e, 0x85, 0x62, 0xd6, 0xa9, 0x3a, 0x43, 0xcd,
		0x76, 0x33, 0xfd, 0xbf, 0xc4, 0x4f, 0x9e, 0xbe, 0x83, 0xc5, 0x96, 0x1f, 0xc5, 0xf5, 0x38, 0x66,
		0xea, 0xdd, 0xdf, 0xf6, 0x03, 0x7d, 0x20, 0x26, 0x2a, 0xcc, 0x14, 0x77, 0x4c, 0x82, 0xc1, 0xa5,
		0x15, 0xd5, 0x44, 0x63, 0x45, 0x2b, 0xec, 0x8b, 0x50, 0xf4, 0xcf, 0x26, 0x9b, 0x1a, 0x8c, 0x07,
		0x03, 0xce, 0x25, 0x2f, 0xa3, 0x64, 0x44, 0x21, 0x7d, 0x60, 0x45, 0x6d, 0x13, 0xcc, 0xee, 0x70,
		0x67, 0xdc, 0x60, 0x91, 0xa5, 0x05, 0x77, 0x86, 0x1d, 0x1f, 0xad, 0xcb, 0xbb, 0xc3, 0xa8, 0x2e,
		0x4e, 0xf3, 0xcd, 0xaa, 0xd9, 0x52, 0x0e, 0xe2, 0xcb, 0x94, 0x75, 0xd2, 0x58, 0xa3, 0x7c, 0x5b,
		0x21, 0xb0, 0x93, 0xe2, 0x44, 0xdb, 0xb4, 0x81, 0xf7, 0x45, 0x0c, 0xe8, 0x87, 0x72, 0x2e, 0xad,
		0x45, 0x3b, 0x8c, 0x73, 0x1f, 0xc3, 0x38, 0xff, 0xbc, 0x1b, 0x18, 0xc6, 0xf9, 0xd2, 0x05, 0x31,
		0x8c, 0x33, 0x2d, 0x1e, 0x9e, 0xfc, 0x34, 0x92, 0x71, 0x30, 0x10, 0xc7, 0x20, 0xa0, 0xd5, 0xc1,
		0x3f, 0x4b, 0x98, 0x9c, 0x63, 0x2f, 0x48, 0x3b, 0xcf, 0x87, 0x65, 0x7e, 0x0f, 0xdb, 0x20, 0xea,
		0x0a, 0x7c, 0x1f, 0x7c, 0x1f, 0x7c, 0x9f, 0x72, 0xdf, 0x47, 0x3e, 0x88, 0x9a, 0xaf, 0x95, 0x2f,
		0x7b, 0xeb, 0x5e, 0xa6, 0x32, 0x4d, 0xb6, 0xb2, 0x4c, 0x8c, 0x9e, 0xce, 0x32, 0xa8, 0x2a, 0x03,
		0x57, 0x15, 0x20, 0x4b, 0x0b, 0xb6, 0xc4, 0xa0, 0xcb, 0x97, 0x78, 0xac, 0x58, 0x1b, 0x67, 0xd9,
		0x23, 0x63, 0x99, 0x23, 0x73, 0x59, 0x23, 0x63, 0x4d, 0x83, 0x8a, 0xb2, 0x45, 0x55, 0x65, 0x8a,
		0xca, 0x0b, 0xbc, 0xd4, 0x15, 0x74, 0x71, 0x5e, 0xab, 0x51, 0x51, 0x66, 0x98, 0xa2, 0xb2, 0xc2,
		0x3c, 0x6b, 0xd9, 0x8e, 0xd4, 0xc8, 0x5c, 0x65, 0xf5, 0xe0, 0xf3, 0x0d, 0x69, 0x9e, 0xc5, 0x72,
		0x57, 0x8e, 0xb9, 0x95, 0x2b, 0x72, 0x2c, 0xe4, 0x58, 0xc8, 0xb1, 0x90, 0x63, 0x21, 0xc7, 0x42,
		0x8e, 0x85, 0x1c, 0x0b, 0xd1, 0x2f, 0x72, 0x2c, 0xe4, 0x58, 0xc8, 0xb1, 0x90, 0x63, 0x29, 0xc9,
		0xb1, 0x18, 0xca, 0xdc, 0x56, 0xa2, 0x09, 0xf2, 0x72, 0x37, 0x64, 0x5a, 0xc8, 0xb4, 0x90, 0x69,
		0x21, 0xd3, 0xca, 0x60, 0xa6, 0xc5, 0x86, 0x8d, 0xcb, 0xf8, 0x58, 0x3e, 0x61, 0x58, 0x6b, 0x26,
		0xcb, 0x9d, 0x4b, 0xb5, 0xe6, 0x3b, 0x37, 0xf6, 0x83, 0xf8, 0xa0, 0xc2, 0x79, 0xc5, 0x75, 0xb6,
		0x7b, 0x8c, 0xf3, 0xe1, 0x15, 0xf5, 0x5a, 0x51, 0xd0, 0x54, 0x47, 0x65, 0x6f, 0x95, 0xfb, 0xac,
		0xa7, 0xa6, 0xa8, 0x5b, 0x54, 0x5a, 0xda, 0x52, 0xa8, 0x6f, 0x47, 0xa1, 0xa0, 0x79, 0x8a, 0xd2,
		0xa6, 0x29, 0xf7, 0xba, 0xb7, 0x5f, 0x3d, 0x3e, 0x3c, 0x3a, 0x84, 0x02, 0xaa, 0x56, 0xc0, 0x1d,
		0xed, 0x0f, 0x72, 0xb5, 0x4b, 0xfd, 0x41, 0x14, 0x84, 0x1b, 0x22, 0x18, 0xdf, 0x8a, 0x70, 0x7a,
		0x89, 0x93, 0x3f, 0xe6, 0x28, 0x57, 0x19, 0xd7, 0xd4, 0x83, 0xf1, 0x2d, 0x3f, 0xf5, 0xe8, 0x0c,
		0xbb, 0x71, 0xe8, 0x07, 0x37, 0x6a, 0x9a, 0xfa, 0xed, 0x4f, 0xf6, 0xd8, 0xe8, 0xbc, 0xaf, 0xba,
		0xfa, 0x87, 0x4e, 0xcb, 0x68, 0x18, 0x8e, 0x6b, 0x5e, 0xb6, 0x5a, 0x2a, 0x5a, 0xfb, 0x95, 0x27,
		0x1f, 0xc5, 0xb6, 0x2e, 0x1d, 0xdd, 0x76, 0xeb, 0x2d, 0xdd, 0x76, 0x54, 0x7c, 0x88, 0xca, 0x4c,
		0x1e, 0x35, 0xf5, 0xf2, 0x38, 0x48, 0x3e, 0x4a, 0x5b, 0xf1, 0xa7, 0x38, 0x9a, 0x7c, 0x0a, 0xdd,
		0x74, 0x6c, 0xab, 0xf3, 0xd1, 0x6d, 0xd5, 0xcf, 0xf4, 0x96, 0x6b, 0x98, 0x4d, 0xa3, 0x51, 0x77,
		0x2c, 0x5b, 0xc5, 0xe7, 0x39, 0x9e, 0x7c, 0x1e, 0xd3, 0x9a, 0x7e, 0x94, 0xe2, 0x6e, 0xb7, 0xfa,
		0x1c, 0x1a, 0x09, 0x87, 0xa2, 0x00, 0x16, 0x36, 0x6d, 0x38, 0x6b, 0x16, 0xb8, 0xf8, 0x34, 0x0f,
		0x8d, 0xe0, 0xb4, 0x70, 0xa0, 0xe2, 0x33, 0xac, 0x62, 0xa4, 0x92, 0x68, 0x71, 0x1d, 0x38, 0x91,
		0xdd, 0x09, 0xfb, 0x7d, 0x84, 0x30, 0x37, 0x42, 0x45, 0xed, 0x58, 0x97, 0x3d, 0xc5, 0x69, 0xa1,
		0x8c, 0xfe, 0x76, 0xa9, 0x5e, 0x05, 0x87, 0x62, 0xab, 0x2a, 0xcc, 0x38, 0xff, 0x8e, 0x7f, 0xde,
		0x1d, 0x0e, 0xc5, 0x64, 0xec, 0x16, 0x0e, 0xc5, 0x24, 0x2f, 0x8c, 0x43, 0xb1, 0x8c, 0x84, 0xc3,
		0x28, 0x3f, 0x94, 0x17, 0x2a, 0xa1, 0xfc, 0x50, 0xe2, 0xa2, 0x28, 0x3f, 0x44, 0xf9, 0x21, 0x91,
		0x4a, 0xa1, 0xfc, 0x10, 0xe5, 0x87, 0xc8, 0xb4, 0x88, 0x32, 0x2d, 0xde, 0x3b, 0x5e, 0x4c, 0xf3,
		0xcf, 0x90, 0x65, 0x21, 0xcb, 0x42, 0x96, 0x85, 0x2c, 0x0b, 0x59, 0x16, 0xb2, 0x2c, 0x64, 0x59,
		0x88, 0x7f, 0x91, 0x65, 0x21, 0xcb, 0x42, 0x96, 0x85, 0x2c, 0x8b, 0xf9, 0xc9, 0x98, 0x20, 0xc0,
		0x30, 0x41, 0x80, 0x7a, 0xb6, 0x55, 0xaa, 0x87, 0x06, 0x10, 0x4e, 0xaa, 0x22, 0x68, 0x91, 0xfc,
		0x2a, 0xc5, 0xc6, 0x35, 0x9f, 0x34, 0x45, 0x76, 0x05, 0x88, 0x76, 0xc0, 0x14, 0xfd, 0x40, 0x29,
		0x25, 0x03, 0xa4, 0x18, 0x06, 0x46, 0x31, 0x0c, 0x88, 0x92, 0xad, 0xaa, 0xc4, 0xf8, 0x9f, 0x09,
		0xdc, 0x2f, 0x92, 0xf4, 0x5b, 0x4f, 0x2d, 0xd2, 0xcb, 0xc5, 0x78, 0x79, 0x48, 0x2c, 0xe7, 0x49,
		0x92, 0x0c, 0x84, 0xca, 0x30, 0x52, 0x6b, 0x10, 0x12, 0x8d, 0x20, 0x75, 0xca, 0x2f, 0x47, 0xe3,
		0xb7, 0xd7, 0x4f, 0x09, 0xba, 0x29, 0x79, 0x90, 0x03, 0xc9, 0xe0, 0x06, 0xc9, 0x83, 0x1a, 0xa4,
		0x0f, 0x66, 0xa0, 0x38, 0x02, 0x21, 0x3b, 0xea, 0xa0, 0x3a, 0xd2, 0x20, 0x3f, 0xba, 0x20, 0x3f,
		0xa2, 0xa0, 0x3c, 0x8a, 0x48, 0x97, 0x2f, 0x92, 0x3d, 0x08, 0x81, 0x70, 0xf0, 0x01, 0xf9, 0xa0,
		0x03, 0xa2, 0xf3, 0x58, 0xb2, 0xf3, 0x57, 0xca, 0xf3, 0x56, 0xf2, 0xf3, 0x55, 0xea, 0xf3, 0x54,
		0xb6, 0xf3, 0x53, 0xb6, 0xf3, 0x52, 0x8e, 0xf3, 0xd1, 0x74, 0x93, 0x1f, 0x64, 0xe7, 0x9d, 0x2c,
		0xe7, 0x9b, 0x84, 0xe7, 0x99, 0xc4, 0xe7, 0x97, 0x84, 0xe4, 0x2d, 0xc7, 0xf9, 0x24, 0xd7, 0x79,
		0x24, 0xfb, 0xc9, 0x10, 0xdf, 0x49, 0x10, 0x65, 0x7d, 0x17, 0xc7, 0x79, 0xa2, 0xc2, 0xf3, 0xc3,
		0x5d, 0xd6, 0x8a, 0x8c, 0x50, 0xfa, 0x57, 0x69, 0xa5, 0xa5, 0xde, 0x48, 0x8d, 0xbb, 0x49, 0x8a,
		0x24, 0x89, 0x1b, 0xdf, 0x23, 0xe6, 0x46, 0xcc, 0x8d, 0x98, 0x1b, 0x31, 0x37, 0x62, 0x6e, 0xc4,
		0xdc, 0x88, 0xae, 0x10, 0x73, 0x43, 0x2b, 0x10, 0x73, 0x67, 0x28, 0xe6, 0x9e, 0x9d, 0x08, 0x6a,
		0x7e, 0x9f, 0x32, 0xf0, 0x5e, 0x5a, 0x05, 0xd1, 0x37, 0xa2, 0x6f, 0x44, 0xdf, 0x88, 0xbe, 0xb3,
		0x80, 0x2e, 0xcb, 0x08, 0x53, 0x3e, 0xce, 0x81, 0x3f, 0x20, 0xec, 0x09, 0x44, 0xdf, 0x03, 0x08,
		0xbe, 0x00, 0xbe, 0x00, 0xbe, 0x00, 0x4c, 0x0c, 0x98, 0x18, 0x30, 0x31, 0xc8, 0xb9, 0xc1, 0xc4,
		0x40, 0x2b, 0xc0, 0xc4, 0x64, 0x2a, 0xf2, 0xa6, 0x3d, 0xfe, 0x24, 0xea, 0x09, 0x83, 0xa8, 0x1b,
		0x51, 0x37, 0xa2, 0x6e, 0x44, 0xdd, 0x88, 0xba, 0x11, 0x75, 0x23, 0xbe, 0x42, 0xd4, 0x0d, 0xad,
		0x40, 0xd4, 0x4d, 0x1b, 0x75, 0xe3, 0x2a, 0x2c, 0xf7, 0x55, 0x58, 0xc9, 0xad, 0x3f, 0x52, 0x72,
		0x07, 0x56, 0x5e, 0x4f, 0x0f, 0x09, 0xb7, 0x5f, 0x5f, 0x29, 0x54, 0xe6, 0x79, 0x4f, 0x0e, 0x89,
		0x27, 0x69, 0x72, 0xbb, 0x70, 0xc8, 0xef, 0xba, 0xc1, 0xd2, 0x65, 0x83, 0xa0, 0xab, 0x06, 0x41,
		0x17, 0x8d, 0x6d, 0x95, 0x47, 0x32, 0x02, 0xa6, 0x09, 0xf9, 0x8a, 0x52, 0xee, 0xa4, 0xab, 0xc7,
		0xba, 0xed, 0x50, 0xee, 0xe5, 0xd8, 0xf4, 0xb2, 0x77, 0xbe, 0x50, 0x21, 0x65, 0x29, 0xa2, 0x7a,
		0x05, 0xdc, 0x42, 0xed, 0x14, 0xaa, 0xdb, 0xcb, 0x94, 0xec, 0xf9, 0x2a, 0xf2, 0xbc, 0x77, 0x3c,
		0x53, 0x99, 0xb6, 0x55, 0x22, 0x45, 0xca, 0xf3, 0x02, 0x8d, 0xe1, 0xd6, 0x94, 0xe7, 0xa9, 0xc7,
		0xd3, 0x37, 0xf9, 0x69, 0xbf, 0xf9, 0x44, 0x35, 0x78, 0xe9, 0xf6, 0x33, 0x6d, 0xfb, 0x33, 0xb6,
		0x99, 0x7c, 0x7b, 0x9f, 0xb6, 0x9f, 0x7f, 0xde, 0x9d, 0x27, 0xec, 0x4c, 0x31, 0x16, 0xda, 0xcd,
		0x60, 0xf8, 0xc5, 0x1b, 0x68, 0x5e, 0x1c, 0x87, 0xfe, 0x97, 0x71, 0x2c, 0x9e, 0x7e, 0x50, 0xb2,
		0xa0, 0x29, 0xd7, 0x3e, 0xe5, 0x89, 0x7a, 0xf1, 0xbc, 0xae, 0x2d, 0xcf, 0x3e, 0xbc, 0x78, 0xc9,
		0xa1, 0xc4, 0xf2, 0x61, 0xc3, 0x44, 0x61, 0x9e, 0xa3, 0x1c, 0x2f, 0x3c, 0x46, 0xd8, 0xfa, 0x78,
		0x60, 0x6b, 0xda, 0xff, 0x31, 0x9d, 0x9f, 0x7c, 0x71, 0x45, 0x58, 0xf1, 0xdc, 0xce, 0x23, 0xd3,
		0x9e, 0x87, 0x5e, 0xff, 0xd6, 0x0f, 0xb4, 0x9b, 0x70, 0x38, 0x1e, 0x3d, 0xff, 0xb0, 0x6f, 0xb1,
		0xe7, 0xab, 0x8f, 0x7a, 0xa6, 0x1c, 0x5f, 0xd6, 0x86, 0xe8, 0xc5, 0xa7, 0x72, 0xdb, 0x9c, 0xba,
		0x6d, 0xa1, 0xe8, 0xdb, 0x2a, 0xbc, 0x34, 0xc5, 0x97, 0x66, 0x00, 0x72, 0x0c, 0x81, 0x27, 0x96,
		0x7a, 0x69, 0x6b, 0x9e, 0xe2, 0x92, 0x62, 0xbf, 0x7c, 0xcb, 0xe6, 0x5a, 0xb3, 0xfc, 0xb0, 0x17,
		0xca, 0x7a, 0xbb, 0x9e, 0x5d, 0x5b, 0x1f, 0x65, 0xcb, 0x38, 0xb2, 0x96, 0x60, 0x44, 0xb2, 0x8c,
		0x49, 0xba, 0x51, 0x49, 0x37, 0x2e, 0xb9, 0x46, 0xa6, 0x26, 0x1b, 0xde, 0xb6, 0x2f, 0xd6, 0xb2,
		0xdd, 0x68, 0xb3, 0x30, 0x72, 0xcb, 0xfd, 0x5e, 0x63, 0x91, 0xd3, 0x27, 0x6f, 0x4b, 0x5f, 0x4a,
		0xa9, 0x40, 0x91, 0x56, 0x71, 0x22, 0xb3, 0xc2, 0x44, 0xa2, 0xd9, 0xca, 0x36, 0x5f, 0x32, 0x33,
		0x26, 0x33, 0x67, 0x1a, 0xb3, 0x4e, 0x07, 0x85, 0x2f, 0xad, 0xca, 0x63, 0xa1, 0x71, 0x03, 0xe1,
		0x5d, 0x87, 0xe2, 0x5a, 0x86, 0xc6, 0xcd, 0xfd, 0xa7, 0x84, 0xf1, 0xfd, 0xc5, 0xce, 0x2c, 0xc7,
		0x7e, 0xfb, 0xb6, 0x34, 0x4d, 0x68, 0x4b, 0x2b, 0x70, 0xa2, 0x8a, 0xed, 0xdc, 0xc2, 0xa5, 0xf6,
		0xe6, 0xd8, 0x23, 0x09, 0x62, 0x67, 0xcf, 0x93, 0x03, 0xac, 0x65, 0x00, 0x2b, 0x80, 0x35, 0xaf,
		0xc0, 0x2a, 0xab, 0xbf, 0xa8, 0xfc, 0x78, 0x8a, 0x3a, 0xae, 0x92, 0x1c, 0x5f, 0x49, 0x87, 0x03,
		0x0a, 0x58, 0x20, 0x84, 0x07, 0x2a, 0x98, 0x20, 0x87, 0x0b, 0x72, 0xd8, 0xa0, 0x85, 0x0f, 0x39,
		0x30, 0x22, 0x09, 0x4e, 0xe4, 0xc7, 0x6b, 0x2b, 0x1a, 0x1b, 0xc5, 0xe1, 0xcb, 0x4e, 0x84, 0xfe,
		0x18, 0x06, 0x1c, 0xef, 0x50, 0xab, 0xf8, 0x2f, 0x7e, 0xac, 0x8d, 0x86, 0x91, 0x2f, 0xb5, 0x72,
		0x6b, 0xb1, 0x07, 0x0f, 0x9e, 0x0e, 0x14, 0x06, 0x0a, 0x03, 0x85, 0x73, 0x86, 0xc2, 0x63, 0x3f,
		0x88, 0x0f, 0x2a, 0x04, 0x28, 0x7c, 0x24, 0xf1, 0x91, 0x34, 0x17, 0x20, 0x68, 0xa6, 0x6e, 0xd1,
		0xdd, 0x79, 0x22, 0xbe, 0xe8, 0xc0, 0x56, 0xca, 0x4e, 0x5f, 0xc2, 0x7e, 0x47, 0x33, 0xee, 0x8c,
		0x7e, 0x6b, 0xab, 0x95, 0x93, 0xea, 0x49, 0xed, 0xa8, 0x72, 0x72, 0x88, 0x3d, 0x66, 0x01, 0x68,
		0xf9, 0x4f, 0xbb, 0x42, 0xa5, 0x76, 0x36, 0x8a, 0x6d, 0xd7, 0x95, 0xd9, 0x94, 0x56, 0xea, 0x15,
		0x96, 0x59, 0xdb, 0x92, 0x14, 0xb6, 0xb2, 0x20, 0xbf, 0xea, 0xc9, 0x11, 0xef, 0x92, 0x6f, 0x52,
		0x5f, 0x7c, 0x91, 0xe4, 0xf5, 0xfa, 0xe4, 0xa3, 0xbf, 0x4b, 0xbe, 0x86, 0x7b, 0xff, 0x77, 0x77,
		0x16, 0x51, 0x67, 0x90, 0x7d, 0x96, 0x33, 0x37, 0x4b, 0xea, 0xbc, 0x2c, 0xe9, 0xdc, 0x73, 0x05,
		0xdc, 0x73, 0x1a, 0xd2, 0x18, 0x70, 0xcf, 0xcf, 0xf8, 0x4a, 0xe0, 0x9e, 0xc1, 0x7a, 0x80, 0xf5,
		0x00, 0xeb, 0x91, 0x19, 0xd6, 0x03, 0xdc, 0xf3, 0x53, 0xbe, 0x13, 0xb8, 0x67, 0xa0, 0x30, 0x50,
		0x18, 0x28, 0x0c, 0xee, 0x19, 0xdc, 0x33, 0xb8, 0x67, 0x5e, 0xb3, 0x7b, 0xb8, 0xb5, 0xe0, 0x9e,
		0xd3, 0xb5, 0xc7, 0xe0, 0x9e, 0x53, 0xcc, 0x46, 0xec, 0x26, 0xf7, 0x2c, 0xab, 0xb9, 0x8d, 0x52,
		0xea, 0x59, 0x42, 0x2f, 0x9b, 0xac, 0x74, 0x79, 0x98, 0xf5, 0xaa, 0x91, 0xc4, 0x37, 0xc9, 0xe9,
		0x53, 0x23, 0xaf, 0x3f, 0x0d, 0x69, 0x5f, 0x1a, 0x89, 0xfd, 0x68, 0x24, 0xf6, 0xa1, 0xd9, 0xc1,
		0x76, 0x1f, 0xcf, 0x87, 0xa1, 0xf4, 0xb4, 0xfc, 0x78, 0x16, 0xf0, 0xa0, 0xe7, 0x87, 0x52, 0x0d,
		0x52, 0xdf, 0xf6, 0xe3, 0xcf, 0xda, 0x42, 0xd6, 0xf7, 0xe3, 0x39, 0xbd, 0x30, 0xc2, 0xc1, 0xcd,
		0x16, 0x97, 0xed, 0xa7, 0x6f, 0xc7, 0x05, 0x7b, 0x42, 0x4a, 0x0b, 0x17, 0xec, 0x0b, 0x9c, 0x17,
		0xec, 0x27, 0x1a, 0xbd, 0xfd, 0xcd, 0xfa, 0xe4, 0x29, 0xb8, 0x52, 0x8f, 0x2b, 0xf5, 0xca, 0x18,
		0xde, 0x8c, 0x5d, 0xa9, 0xc7, 0x2d, 0x4f, 0x26, 0xd3, 0x24, 0x30, 0x51, 0xd9, 0xa6, 0x4a, 0x66,
		0xb2, 0x64, 0xa6, 0x4b, 0x63, 0xc2, 0xe9, 0xe0, 0xb6, 0xa4, 0x55, 0xda, 0xf4, 0x86, 0x51, 0x2c,
		0xff, 0x4c, 0x37, 0x79, 0x2a, 0xce, 0x72, 0x53, 0x04, 0x03, 0x54, 0x70, 0x40, 0x0e, 0x0b, 0xe4,
		0xf0, 0x40, 0x0b, 0x13, 0xf2, 0xc8, 0xf4, 0x02, 0xce, 0x72, 0x65, 0x3d, 0x12, 0x67, 0xb9, 0x38,
		0xcb, 0x55, 0x60, 0x76, 0x0f, 0xb7, 0x16, 0x67, 0xb9, 0xe9, 0xda, 0x63, 0x9c, 0xe5, 0x52, 0xdb,
		0x40, 0xf1, 0x7a, 0x30, 0x1c, 0xf6, 0xfd, 0xe0, 0x46, 0x8b, 0x65, 0xfa, 0x9f, 0x85, 0xef, 0x79,
		0xf8, 0x78, 0x49, 0xae, 0xb2, 0x29, 0xae, 0xbd, 0xf1, 0x20, 0x96, 0xea, 0x2d, 0x8a, 0xe7, 0x2d,
		0xcb, 0x6a, 0xea, 0x4d, 0xb7, 0x6b, 0xb7, 0xde, 0xc9, 0x89, 0x31, 0xae, 0x10, 0x6d, 0x23, 0xda,
		0x46, 0xb4, 0x9d, 0xb3, 0x68, 0x3b, 0x39, 0x61, 0x8b, 0xc2, 0xc1, 0x8d, 0x46, 0x81, 0x7d, 0x0f,
		0xd8, 0xb6, 0xaa, 0xc4, 0x67, 0xea, 0xc1, 0xf8, 0x56, 0xbe, 0x4d, 0x38, 0xc3, 0xee, 0xb4, 0x9c,
		0x9f, 0x64, 0x78, 0xe4, 0xfe, 0x44, 0xde, 0x0f, 0x70, 0x9b, 0x20, 0x28, 0x2c, 0x4f, 0x16, 0xe9,
		0x3a, 0x75, 0xc7, 0x68, 0x48, 0xf4, 0x0d, 0x44, 0x61, 0x6c, 0xd1, 0x19, 0x1a, 0x41, 0x4c, 0x23,
		0xed, 0x07, 0x82, 0x26, 0x89, 0x2a, 0x1f, 0x88, 0xf9, 0xb4, 0x50, 0xde, 0xed, 0xe9, 0x71, 0xa9,
		0x08, 0xff, 0x68, 0x6e, 0xf2, 0xe1, 0xf6, 0x1e, 0xa2, 0x1f, 0x44, 0x3f, 0x79, 0x8c, 0x7e, 0x70,
		0x7b, 0xef, 0x29, 0xdf, 0xe9, 0xdb, 0x8c, 0x0b, 0x92, 0x0c, 0xbb, 0xd3, 0xc7, 0x02, 0x77, 0x81,
		0xbb, 0xc0, 0xdd, 0x9c, 0xe1, 0x2e, 0xce, 0x78, 0x64, 0xaa, 0x24, 0xce, 0x78, 0x9e, 0xa4, 0x7b,
		0x38, 0xe3, 0xd9, 0xb0, 0xb5, 0x38, 0xe3, 0x51, 0x90, 0x96, 0x17, 0x70, 0x5f, 0x4f, 0xb6, 0x05,
		0x65, 0xf6, 0xbe, 0x5e, 0x52, 0x6e, 0x9f, 0xfc, 0x99, 0xa5, 0xc6, 0x70, 0xdd, 0xc9, 0xa7, 0x4e,
		0xfe, 0xcc, 0x70, 0x23, 0x38, 0xb9, 0x73, 0x9e, 0x30, 0xdb, 0x89, 0x3b, 0x63, 0x41, 0x71, 0x2a,
		0x66, 0x3b, 0x3d, 0x45, 0xe3, 0x32, 0x33, 0xdb, 0x29, 0xab, 0xf3, 0x9c, 0xd0, 0x51, 0x13, 0x50,
		0x0a, 0x28, 0x4d, 0x1f, 0x94, 0xa2, 0xce, 0x5f, 0x75, 0x04, 0x45, 0x61, 0xfe, 0x84, 0x30, 0x40,
		0x05, 0x07, 0xe4, 0xb0, 0x40, 0x0e, 0x0f, 0xb4, 0x30, 0x21, 0x97, 0x14, 0x00, 0x07, 0x2c, 0xe5,
		0x91, 0xe0, 0x80, 0xc1, 0x01, 0x2b, 0x30, 0xbb, 0x87, 0x5b, 0x0b, 0x0e, 0x38, 0x5d, 0x7b, 0x0c,
		0x0e, 0x98, 0xda, 0x06, 0x50, 0xe7, 0xbf, 0x30, 0x1b, 0xd4, 0xf9, 0x23, 0xda, 0x46, 0xb4, 0x8d,
		0x68, 0x7b, 0x4b, 0x8d, 0x45, 0x9d, 0xff, 0xb2, 0x98, 0x51, 0xe7, 0xcf, 0x1a, 0xc6, 0xa2, 0xce,
		0x9f, 0x21, 0xfc, 0x43, 0x9d, 0xff, 0x9f, 0x30, 0x10, 0x75, 0xfe, 0x88, 0x7e, 0x10, 0xfd, 0xe4,
		0x31, 0xfa, 0x41, 0x9d, 0xff, 0x53, 0xbe, 0x13, 0xea, 0xfc, 0x81, 0xbb, 0xc0, 0x5d, 0xe0, 0xae,
		0x3c, 0x8d, 0xc5, 0x19, 0x8f, 0x4c, 0x95, 0xc4, 0x19, 0xcf, 0x93, 0x74, 0x0f, 0x67, 0x3c, 0x1b,
		0xb6, 0x16, 0x67, 0x3c, 0x0a, 0xd2, 0xf2, 0x02, 0xea, 0xfc, 0x65, 0x5b, 0xd0, 0x2e, 0xd4, 0xf9,
		0x67, 0x67, 0x08, 0xcf, 0x52, 0x99, 0xbf, 0xda, 0xa1, 0x3b, 0x5b, 0x16, 0xa7, 0xfa, 0xbd, 0x29,
		0xff, 0x7d, 0x2b, 0x6e, 0xbf, 0x88, 0x30, 0x92, 0x5b, 0xaa, 0xfa, 0xf8, 0xe1, 0x68, 0x50, 0xcd,
		0x98, 0xcd, 0xa0, 0x70, 0x15, 0x85, 0xab, 0xbf, 0x79, 0xd0, 0xcc, 0x26, 0xb5, 0x81, 0x4f, 0x51,
		0xc0, 0xfa, 0xe0, 0xe9, 0x72, 0x49, 0x8e, 0x32, 0x48, 0x0e, 0x90, 0x1c, 0x20, 0x39, 0x24, 0x55,
		0xe7, 0x48, 0x82, 0x93, 0xc5, 0x03, 0x25, 0x8d, 0xb6, 0xd8, 0x68, 0x08, 0xd2, 0x6e, 0x82, 0x12,
		0x42, 0x0b, 0x19, 0xc4, 0x50, 0x42, 0x0d, 0x03, 0xe4, 0x50, 0x43, 0x0f, 0x1b, 0x04, 0xb1, 0x41,
		0x11, 0x0f, 0x24, 0x11, 0xa5, 0xf7, 0x92, 0x75, 0x5e, 0x36, 0x54, 0x2d, 0x1e, 0x7c, 0x1d, 0x0e,
		0x6f, 0x35, 0xaf, 0xdf, 0x0f, 0x45, 0x14, 0xd1, 0xe9, 0xe4, 0xa2, 0xc8, 0x72, 0x79, 0x35, 0x22,
		0x6d, 0x91, 0x7b, 0x1c, 0xc4, 0x06, 0x6b, 0x1c, 0xf0, 0xc6, 0x08, 0x73, 0x5c, 0x70, 0xc7, 0x0e,
		0x7b, 0xec, 0xf0, 0xc7, 0x0b, 0x83, 0x34, 0x70, 0x48, 0x04, 0x8b, 0x0b, 0xd1, 0x48, 0x3f, 0xae,
		0xda, 0x68, 0x31, 0xfe, 0x88, 0x18, 0xbf, 0x1e, 0x84, 0x64, 0x27, 0x84, 0x6b, 0xcc, 0x64, 0xf6,
		0x89, 0x54, 0x69, 0x69, 0x8d, 0xfe, 0xd1, 0xce, 0x7c, 0xab, 0x32, 0xec, 0xcd, 0xca, 0x1e, 0x1d,
		0x33, 0xac, 0xd5, 0xf1, 0xe2, 0x58, 0x84, 0x01, 0xf9, 0x76, 0x2d, 0x16, 0x7c, 0xfd, 0x69, 0x5f,
		0x3b, 0xb9, 0xfa, 0xf5, 0xa9, 0xac, 0x9d, 0x5c, 0x4d, 0xff, 0x5a, 0x4e, 0xfe, 0xf3, 0x4f, 0xe5,
		0xee, 0x57, 0xe5, 0xd3, 0xbe, 0x56, 0x9d, 0xbd, 0x5a, 0x39, 0xfc, 0xb4, 0xaf, 0x1d, 0x5e, 0xed,
		0xbd, 0xfe, 0xfc, 0xf9, 0xed, 0x73, 0xdf, 0xb3, 0xf7, 0xcf, 0xc1, 0x5d, 0x91, 0xfc, 0xeb, 0x5c,
		0x71, 0x6c, 0x8f, 0xd5, 0x35, 0x3e, 0xb0, 0xef, 0xd1, 0x7f, 0x5e, 0x73, 0xed, 0xd2, 0xde, 0x7f,
		0x31, 0xec, 0x13, 0xe9, 0x0a, 0x77, 0x6f, 0x76, 0x08, 0xe6, 0x6a, 0x80, 0x39, 0x59, 0x30, 0x97,
		0x58, 0x83, 0xa7, 0x5d, 0xd7, 0xb5, 0xf3, 0xab, 0x7f, 0xca, 0x6f, 0xaa, 0x77, 0xa7, 0x7b, 0xff,
		0x1c, 0xdd, 0x3d, 0x7e, 0xf1, 0xd7, 0xba, 0x5f, 0x2b, 0xbf, 0x39, 0xba, 0x3b, 0xdd, 0xf0, 0x93,
		0xda, 0xdd, 0xe9, 0x13, 0x9f, 0x71, 0x78, 0xf7, 0x7a, 0xe5, 0x57, 0x27, 0xaf, 0x57, 0x36, 0xbd,
		0xa1, 0xba, 0xe1, 0x0d, 0x07, 0x9b, 0xde, 0x70, 0xb0, 0xe1, 0x0d, 0x1b, 0x3f, 0x52, 0x65, 0xc3,
		0x1b, 0x0e, 0xef, 0x7e, 0xad, 0xfc, 0xfe, 0xeb, 0xf5, 0xbf, 0x5a, 0xbb, 0xdb, 0xfb, 0xb5, 0xe9,
		0x67, 0x47, 0x77, 0xbf, 0x4e, 0xf7, 0xf6, 0x00, 0xfc, 0x5b, 0x03, 0x3f, 0xd4, 0x96, 0x5f, 0x6d,
		0xb3, 0xef, 0x08, 0x5f, 0x65, 0xeb, 0x73, 0xdf, 0x65, 0xa2, 0x56, 0x2b, 0x1e, 0xf2, 0x71, 0x68,
		0x4b, 0x6b, 0x81, 0x41, 0x03, 0x83, 0x06, 0x06, 0x0d, 0x0c, 0x1a, 0x18, 0x34, 0x30, 0x68, 0x60,
		0xd0, 0xc0, 0xa0, 0x21, 0x91, 0x02, 0x83, 0x06, 0x06, 0x0d, 0x0c, 0x1a, 0x18, 0x34, 0x30, 0x68,
		0x00, 0x7e, 0x30, 0x68, 0x60, 0xd0, 0xc0, 0xa0, 0x51, 0x30, 0x68, 0xa9, 0x2e, 0x95, 0x93, 0x7c,
		0x13, 0x6c, 0xe5, 0xf9, 0x8a, 0x6e, 0x86, 0x3d, 0xba, 0x4e, 0x54, 0x5a, 0xbe, 0x64, 0x50, 0x22,
		0x29, 0x0c, 0x2e, 0xa8, 0xb8, 0x4b, 0xe6, 0xf7, 0x26, 0x7f, 0x6d, 0x4f, 0xbf, 0x9c, 0x3b, 0xfb,
		0x6f, 0xcb, 0x8f, 0x62, 0x29, 0x03, 0x65, 0xe8, 0x34, 0x59, 0xa2, 0x16, 0xd3, 0xd6, 0x64, 0x72,
		0xd4, 0x62, 0x12, 0x31, 0xc8, 0x28, 0x29, 0x57, 0xc3, 0x10, 0xa3, 0xa4, 0x7c, 0x17, 0xfd, 0x24,
		0x19, 0xe3, 0x4b, 0x30, 0x60, 0x67, 0x63, 0x4e, 0x7d, 0x44, 0xf0, 0xec, 0xd5, 0x01, 0x3c, 0x0f,
		0xa0, 0x32, 0x07, 0x0e, 0x48, 0xce, 0xe0, 0x9e, 0x8d, 0x7a, 0x21, 0xeb, 0xa2, 0xfb, 0x5a, 0x8d,
		0xa0, 0x72, 0x39, 0x15, 0xb8, 0x1c, 0xb8, 0x1c, 0xb8, 0x9c, 0xad, 0x44, 0x80, 0x5b, 0x4c, 0x8a,
		0x23, 0x68, 0xf2, 0x48, 0x9a, 0x03, 0xde, 0x18, 0x61, 0x8e, 0x0b, 0xee, 0xd8, 0x61, 0x8f, 0x1d,
		0xfe, 0x78, 0x61, 0x90, 0x96, 0xab, 0x43, 0x0d, 0xc6, 0xf3, 0x42, 0x32, 0xd4, 0x60, 0x3c, 0x67,
		0x67, 0x50, 0x83, 0x21, 0x6d, 0x41, 0xd4, 0x60, 0x3c, 0x6b, 0x7b, 0x50, 0x83, 0xb1, 0xfd, 0x3e,
		0xa1, 0x06, 0xe3, 0xa9, 0x30, 0x87, 0x1a, 0x0c, 0x69, 0x30, 0x87, 0xc3, 0x6c, 0xd4, 0x60, 0x64,
		0x15, 0xf8, 0xa1, 0xb6, 0xa8, 0xc1, 0x48, 0x49, 0x5e, 0x57, 0xc0, 0x2d, 0x26, 0xdc, 0x62, 0x02,
		0x83, 0x06, 0x06, 0x0d, 0x0c, 0x1a, 0x18, 0x34, 0x30, 0x68, 0x60, 0xd0, 0x90, 0x5a, 0x82, 0x41,
		0x03, 0x83, 0x06, 0x06, 0x0d, 0x0c, 0x1a, 0x18, 0x34, 0x50, 0x11, 0x60, 0xd0, 0xc0, 0xa0, 0x41,
		0x6d, 0xc1, 0xa0, 0xed, 0x0a, 0x83, 0x86, 0x5b, 0x4c, 0x29, 0xbb, 0xc5, 0x44, 0x51, 0x17, 0x5c,
		0x48, 0xd7, 0x25, 0x26, 0x09, 0xe3, 0xb2, 0xe8, 0xf4, 0x38, 0x5d, 0xd3, 0x39, 0xfe, 0x12, 0x3f,
		0x89, 0x8a, 0x2d, 0x8b, 0x93, 0xad, 0x98, 0xec, 0x9e, 0xdc, 0xe9, 0x1f, 0x6d, 0x3f, 0xd0, 0x07,
		0xe2, 0x56, 0x04, 0xb2, 0xe7, 0x1c, 0x16, 0xdb, 0xde, 0x8f, 0xa5, 0x27, 0x97, 0x8f, 0xab, 0xd5,
		0xda, 0x51, 0xb5, 0xba, 0x7f, 0x74, 0x70, 0xb4, 0x7f, 0x72, 0x78, 0x58, 0xae, 0x95, 0x25, 0x4e,
		0x6f, 0x2c, 0x5a, 0x61, 0x5f, 0x84, 0xa2, 0x7f, 0x36, 0x91, 0x7e, 0x30, 0x1e, 0x0c, 0x28, 0x1e,
		0x7d, 0x19, 0x89, 0x50, 0xea, 0xa0, 0x46, 0x59, 0x4a, 0x47, 0x04, 0xbb, 0x69, 0x84, 0xdb, 0xa2,
		0xd4, 0x0b, 0x23, 0x29, 0x01, 0xd8, 0x22, 0x86, 0x61, 0x16, 0x0a, 0x45, 0xf1, 0x23, 0x0e, 0x3d,
		0x6d, 0x3c, 0x11, 0xea, 0x97, 0x81, 0x1c, 0x42, 0xbc, 0xf8, 0xfd, 0xab, 0x90, 0x97, 0xda, 0x10,
		0x0c, 0x09, 0x5b, 0xba, 0xad, 0x35, 0x18, 0x0e, 0xfb, 0x7e, 0x70, 0xa3, 0xc5, 0x3f, 0x47, 0xa2,
		0xf0, 0x3f, 0x85, 0xff, 0xee, 0x3a, 0x75, 0xc7, 0x68, 0xb8, 0x5d, 0xbb, 0xf5, 0xee, 0xbf, 0x33,
		0x36, 0x44, 0x2c, 0x91, 0x7a, 0x96, 0x47, 0x88, 0x3d, 0x75, 0x5b, 0x52, 0x79, 0x0f, 0xae, 0x29,
		0xa2, 0x5e, 0xe8, 0x8f, 0x48, 0xa2, 0xf0, 0x85, 0xe2, 0x1a, 0x41, 0x6f, 0x30, 0xee, 0x8b, 0x42,
		0xfc, 0xd5, 0x8f, 0x0a, 0xbd, 0x61, 0x10, 0x7b, 0x7e, 0x20, 0xc2, 0xc2, 0xf5, 0x30, 0x2c, 0x4c,
		0x21, 0xfc, 0x73, 0x30, 0x11, 0x51, 0x21, 0x1a, 0x89, 0x9e, 0x7f, 0xed, 0xf7, 0x0a, 0x53, 0x79,
		0x8e, 0xc3, 0xa9, 0x9b, 0x92, 0xbc, 0x77, 0x84, 0xc7, 0xb4, 0xcb, 0x7a, 0xdd, 0x5f, 0x92, 0x2c,
		0x41, 0xc0, 0xcf, 0x71, 0x26, 0xfb, 0x40, 0xcd, 0xb7, 0xdc, 0xc4, 0xdd, 0x4e, 0x08, 0x5e, 0xa9,
		0xa5, 0x14, 0x30, 0x5a, 0xba, 0x24, 0x7f, 0x1e, 0xb1, 0xfa, 0xb0, 0x4f, 0xd9, 0xd0, 0xe9, 0x57,
		0x8c, 0x4a, 0x38, 0xcf, 0x82, 0x13, 0x19, 0xbf, 0xf0, 0x11, 0x52, 0xb2, 0x5d, 0x79, 0xd9, 0x2d,
		0x69, 0x36, 0x2b, 0x31, 0x7b, 0x95, 0x98, 0xad, 0xbe, 0x74, 0xf3, 0x25, 0x21, 0x8f, 0x02, 0xc4,
		0x29, 0x6e, 0x35, 0x99, 0x9d, 0x0d, 0x55, 0x5e, 0x86, 0x21, 0xcf, 0x47, 0x80, 0xe7, 0xbd, 0xe3,
		0x99, 0xea, 0xb2, 0xad, 0x9a, 0xf0, 0xaa, 0xc7, 0x0b, 0x34, 0x83, 0x49, 0x23, 0x9e, 0xa7, 0x0c,
		0x4f, 0xdf, 0xd2, 0x67, 0x6c, 0x67, 0x31, 0x16, 0xda, 0x20, 0x1a, 0x69, 0xb1, 0x7f, 0x3b, 0xf1,
		0x70, 0xcf, 0xdd, 0xcd, 0xfb, 0xea, 0xda, 0x07, 0x8f, 0x79, 0xa6, 0x3a, 0xbd, 0xac, 0x93, 0xc6,
		0x8b, 0x0b, 0x62, 0xb7, 0x29, 0x74, 0x95, 0x50, 0xc0, 0xba, 0x6d, 0xc6, 0x23, 0xad, 0xe0, 0x54,
		0x5a, 0xd2, 0x22, 0xa7, 0x40, 0x94, 0x16, 0xb2, 0x5e, 0xda, 0x09, 0x62, 0xdb, 0x11, 0xdb, 0x72,
		0x46, 0x69, 0x6f, 0xd9, 0x6c, 0x66, 0xeb, 0xda, 0x71, 0x19, 0xb5, 0xe1, 0x12, 0x6b, 0xbf, 0x65,
		0x91, 0x06, 0xd2, 0x6b, 0xb7, 0xa5, 0xf3, 0x00, 0x72, 0x6b, 0xaf, 0x79, 0x33, 0x89, 0x6d, 0x9b,
		0xaf, 0x14, 0x7b, 0x03, 0xe1, 0x05, 0xe3, 0x91, 0xd6, 0x17, 0x03, 0xef, 0xe7, 0xf6, 0x9b, 0xbd,
		0xb0, 0xc4, 0x07, 0x8f, 0xdd, 0x72, 0x7f, 0xe4, 0x5c, 0xfa, 0x90, 0x76, 0xb9, 0x43, 0xe6, 0x25,
		0x0e, 0x82, 0xcb, 0x1a, 0xb2, 0xd9, 0x3e, 0xb2, 0xcb, 0x17, 0x64, 0x84, 0x1e, 0xcd, 0x65, 0x0a,
		0xb5, 0xa7, 0x3f, 0xd2, 0x2e, 0x41, 0x2c, 0x34, 0x6e, 0xec, 0x07, 0x71, 0xb9, 0x26, 0x43, 0xe1,
		0x66, 0xf6, 0x59, 0x93, 0xf0, 0x28, 0xdb, 0x0b, 0x6e, 0x44, 0x1a, 0x4f, 0xa4, 0xda, 0x3e, 0xc1,
		0x69, 0xc1, 0x7b, 0x6f, 0x30, 0x16, 0x04, 0x9d, 0x4f, 0xcf, 0x43, 0xaf, 0x37, 0xc9, 0x1c, 0x9b,
		0xfe, 0x8d, 0x2f, 0xbb, 0x6e, 0x61, 0xaa, 0x43, 0xe2, 0xc6, 0x8b, 0xfd, 0x6f, 0x42, 0xea, 0x71,
		0x7f, 0x41, 0xf2, 0x41, 0x4f, 0xdb, 0xfb, 0x41, 0xb7, 0x65, 0xb5, 0xc3, 0xc3, 0x83, 0x43, 0x6c,
		0x9b, 0x14, 0x6c, 0x94, 0xf7, 0x94, 0x2b, 0x55, 0xf4, 0xf1, 0x16, 0x71, 0x76, 0xc2, 0xb1, 0x0c,
		0x06, 0xb2, 0x23, 0xb0, 0x87, 0x8f, 0x45, 0x04, 0x86, 0x08, 0x0c, 0x11, 0x18, 0x22, 0x30, 0x44,
		0x60, 0x88, 0xc0, 0x76, 0x24, 0x02, 0x3b, 0xa8, 0xed, 0x63, 0xd7, 0x10, 0x80, 0x6d, 0x1f, 0x80,
		0x85, 0x62, 0x38, 0x8a, 0xfd, 0x5b, 0xff, 0xff, 0x89, 0xe9, 0xd9, 0x8a, 0xbc, 0x18, 0x6c, 0xe5,
		0xc9, 0x08, 0xc3, 0x10, 0x86, 0x21, 0x0c, 0x43, 0x18, 0x86, 0x30, 0x0c, 0x61, 0x18, 0x88, 0x30,
		0xc4, 0x61, 0xbb, 0x17, 0x87, 0xa1, 0x94, 0xee, 0x37, 0xb5, 0x52, 0x0f, 0x2a, 0x78, 0xb6, 0x9f,
		0xef, 0x47, 0x5f, 0x42, 0xe5, 0x88, 0x56, 0x34, 0x72, 0x92, 0x8f, 0xbb, 0xd5, 0xa8, 0xbe, 0x17,
		0x14, 0xd7, 0xbd, 0xa8, 0xa2, 0x6c, 0x9b, 0x09, 0x47, 0x52, 0x26, 0x19, 0x49, 0x2b, 0x22, 0xa9,
		0xa0, 0x88, 0x84, 0x32, 0xf4, 0x46, 0x11, 0xc9, 0xd2, 0x47, 0x47, 0x11, 0x09, 0x72, 0x67, 0xe4,
		0xce, 0xc8, 0x9d, 0x91, 0x3b, 0x23, 0x77, 0x46, 0xee, 0x8c, 0xdc, 0x19, 0xb9, 0xb3, 0x9a, 0xdc,
		0x19, 0x45, 0x24, 0x88, 0xc0, 0x10, 0x81, 0x21, 0x02, 0x43, 0x04, 0x86, 0x08, 0x0c, 0x11, 0x18,
		0x4b, 0x04, 0x86, 0x22, 0x12, 0x04, 0x60, 0x52, 0x02, 0x30, 0x14, 0x91, 0x20, 0x0c, 0x43, 0x18,
		0x86, 0x30, 0x0c, 0x61, 0x18, 0xc2, 0x30, 0x84, 0x61, 0x20, 0xc2, 0x10, 0x87, 0xa1, 0x88, 0x84,
		0xa3, 0x88, 0x64, 0xdb, 0xf6, 0xea, 0xbc, 0x35, 0x24, 0x5b, 0x74, 0x4a, 0x47, 0x7f, 0x26, 0x09,
		0xea, 0x92, 0xca, 0x3e, 0x4d, 0x4b, 0x0a, 0x42, 0xd6, 0xad, 0xe9, 0x95, 0x44, 0x15, 0x78, 0xe9,
		0xd6, 0x73, 0x6d, 0xf9, 0x33, 0x36, 0x99, 0x7c, 0x73, 0x9f, 0xb6, 0xa1, 0x7f, 0xde, 0x9e, 0x27,
		0x6c, 0x4d, 0x31, 0x16, 0x9a, 0x1f, 0xc4, 0x22, 0xbc, 0xf6, 0x7a, 0x62, 0x59, 0x1c, 0x4f, 0xdd,
		0xa3, 0xe5, 0x46, 0x5b, 0x6b, 0x1f, 0xf4, 0x44, 0xf5, 0x78, 0x5e, 0x09, 0xd8, 0xb3, 0x13, 0xe9,
		0x97, 0x24, 0xcc, 0x5b, 0x24, 0xc6, 0x2f, 0x4d, 0x80, 0xb7, 0x4e, 0x74, 0xb7, 0x4e, 0x68, 0xb7,
		0x4b, 0x5c, 0xe5, 0x42, 0xc6, 0x73, 0x4b, 0xac, 0x8a, 0x0b, 0x05, 0x7c, 0x79, 0xbf, 0xb8, 0xfb,
		0x47, 0xa0, 0x57, 0x1c, 0x21, 0xc3, 0x83, 0x5e, 0x71, 0x05, 0xf4, 0x8a, 0x63, 0x26, 0x4f, 0x51,
		0xe6, 0xab, 0x88, 0x14, 0xcd, 0x75, 0x99, 0xaf, 0xd7, 0xbf, 0xf5, 0x03, 0xed, 0x26, 0x1c, 0x8e,
		0x47, 0xf2, 0x8e, 0x37, 0x96, 0x1f, 0x8a, 0x93, 0x0d, 0x06, 0x63, 0x95, 0x6d, 0xb4, 0x64, 0xc6,
		0x4b, 0x66, 0xc4, 0x34, 0xc6, 0x2c, 0x87, 0x77, 0x4b, 0xdf, 0xc9, 0x46, 0x14, 0x87, 0x7e, 0x70,
		0x23, 0xf1, 0x64, 0xa3, 0x7c, 0xac, 0x54, 0x42, 0x52, 0xe7, 0xc4, 0xc9, 0x9f, 0x0f, 0xc7, 0x32,
		0x17, 0x8e, 0x60, 0x1e, 0x1c, 0xc1, 0x1c, 0x38, 0x55, 0xa5, 0x94, 0xf3, 0xd4, 0xdf, 0xef, 0xcb,
		0xac, 0xa4, 0x5c, 0x7a, 0x2a, 0xfc, 0x1c, 0xfc, 0x1c, 0xfc, 0x5c, 0xca, 0xfc, 0x9c, 0x44, 0x0b,
		0x95, 0xe9, 0xed, 0x94, 0x60, 0xe0, 0xf2, 0x4c, 0xa1, 0xaf, 0xbe, 0xc4, 0x68, 0xff, 0xf1, 0x83,
		0x81, 0x84, 0x40, 0x42, 0x20, 0x61, 0xca, 0x90, 0x70, 0x20, 0xbc, 0xeb, 0x50, 0x5c, 0xcb, 0x04,
		0xc1, 0x23, 0x09, 0xcf, 0xea, 0xcc, 0x0e, 0xce, 0xde, 0xbe, 0x2d, 0x2d, 0xfe, 0xff, 0xa7, 0x19,
		0x69, 0xc9, 0xc9, 0x16, 0xd2, 0x0d, 0xa4, 0x1b, 0xa9, 0x75, 0xb5, 0xb1, 0xd0, 0x6e, 0x45, 0x1c,
		0xfa, 0x3d, 0x79, 0x4e, 0xf6, 0xfe, 0x91, 0x70, 0xaf, 0x70, 0xaf, 0x70, 0xaf, 0x29, 0x73, 0xaf,
		0x63, 0x3f, 0x88, 0x0f, 0x2a, 0x12, 0xbd, 0xeb, 0x11, 0x4a, 0x85, 0x9f, 0xf9, 0x50, 0x94, 0x0a,
		0x4b, 0x36, 0x93, 0xc7, 0x21, 0x05, 0xdd, 0x96, 0x55, 0x2b, 0x27, 0xd5, 0x93, 0xda, 0x51, 0xe5,
		0x04, 0xf5, 0xc2, 0x72, 0x00, 0x52, 0xde, 0x53, 0x50, 0x2f, 0xfc, 0x2c, 0x8e, 0x85, 0xa4, 0x1a,
		0x70, 0x5d, 0xe1, 0x5a, 0x69, 0xf1, 0x62, 0x0a, 0x7b, 0xce, 0x19, 0xf3, 0xcf, 0xb6, 0x54, 0x11,
		0xba, 0x78, 0x2d, 0x03, 0x4d, 0xe7, 0xfc, 0x9b, 0x91, 0x76, 0x3d, 0x18, 0x0e, 0xfb, 0x7e, 0x70,
		0xa3, 0x7d, 0xf1, 0x82, 0xfe, 0x77, 0xbf, 0x9f, 0x6c, 0xe9, 0x96, 0xf5, 0x29, 0x1b, 0x9e, 0x8b,
		0x7a, 0x15, 0xd4, 0xab, 0x28, 0x8b, 0xc8, 0xb3, 0xd6, 0x96, 0x6e, 0xbb, 0x52, 0xb1, 0x15, 0xc5,
		0xdb, 0x1a, 0x3c, 0x25, 0x98, 0x22, 0x92, 0x6a, 0x24, 0xd5, 0xd9, 0x4f, 0xaa, 0xb7, 0x35, 0xed,
		0xc5, 0x83, 0xfa, 0x62, 0x10, 0x7b, 0xda, 0x48, 0x84, 0x3d, 0x11, 0xc4, 0xde, 0x8d, 0x44, 0x3d,
		0x99, 0xab, 0xf2, 0xca, 0x0a, 0x92, 0x76, 0x55, 0x0e, 0xb7, 0x26, 0x1d, 0x0e, 0x28, 0x60, 0x81,
		0x10, 0x1e, 0xa8, 0x60, 0x82, 0x1c, 0x2e, 0xc8, 0x61, 0x83, 0x16, 0x3e, 0x24, 0xa7, 0x9e, 0x92,
		0x74, 0x56, 0x1a, 0x57, 0xb7, 0xa2, 0xb1, 0xd2, 0xed, 0x7f, 0x19, 0x03, 0x24, 0x32, 0x19, 0x92,
		0x79, 0x3c, 0xf9, 0x7c, 0x1e, 0x29, 0xaf, 0x47, 0xcd, 0xef, 0xb1, 0x71, 0x45, 0xf4, 0x9c, 0x11,
		0x01, 0xef, 0x47, 0xca, 0xff, 0xad, 0x6c, 0x6d, 0x79, 0x1f, 0x9b, 0xcb, 0x83, 0xce, 0xf2, 0x9f,
		0x76, 0x95, 0x2a, 0xaf, 0x21, 0x7e, 0xc4, 0xa1, 0xa7, 0x8d, 0x83, 0x28, 0xf6, 0xbe, 0x0c, 0x24,
		0xfb, 0x8f, 0xef, 0x5f, 0x45, 0x90, 0x05, 0x34, 0x9e, 0xfb, 0xb9, 0xb7, 0x6f, 0x4b, 0xf1, 0xd7,
		0x50, 0x44, 0x5f, 0x87, 0x83, 0xbe, 0x16, 0xff, 0x1c, 0x89, 0xc2, 0xff, 0x14, 0xfe, 0xbb, 0xa9,
		0xb7, 0x9c, 0xfa, 0x7f, 0x17, 0x09, 0x90, 0x82, 0x28, 0x6a, 0x5b, 0x17, 0xbd, 0x25, 0x3b, 0x41,
		0x64, 0xc8, 0xd4, 0x31, 0xdc, 0xda, 0x58, 0xee, 0x77, 0x5b, 0x95, 0x09, 0x37, 0xd1, 0x14, 0x51,
		0x2f, 0xf4, 0x47, 0x5b, 0x33, 0xe9, 0x4f, 0x52, 0x6c, 0xe7, 0xab, 0x28, 0xdc, 0x07, 0x71, 0x85,
		0x24, 0xab, 0x2b, 0xf4, 0xbc, 0xa0, 0x30, 0x0c, 0x06, 0x3f, 0x0b, 0x5f, 0x44, 0x21, 0x1a, 0x89,
		0x9e, 0x7f, 0xed, 0x8b, 0x7e, 0x61, 0xa2, 0x29, 0x85, 0xf8, 0xab, 0xf8, 0x1c, 0x2c, 0xe4, 0x5b,
		0x48, 0xe4, 0xeb, 0x47, 0x4b, 0xbf, 0x15, 0x0f, 0x27, 0xef, 0xf2, 0x56, 0x1f, 0x3a, 0xbc, 0x9e,
		0xbc, 0x51, 0x14, 0x42, 0x11, 0x89, 0xf0, 0x9b, 0xe8, 0x17, 0xb6, 0x25, 0x6f, 0x55, 0x5b, 0xd1,
		0x63, 0x4b, 0xea, 0x2f, 0xed, 0xdb, 0x1b, 0xba, 0x15, 0xb9, 0x8c, 0x6a, 0xc5, 0xb0, 0x52, 0xa1,
		0x2a, 0x24, 0x5f, 0xf5, 0x0e, 0x11, 0x06, 0xf3, 0xe7, 0x91, 0x80, 0x9b, 0xc5, 0xfe, 0xf0, 0x7b,
		0xa0, 0x2d, 0xf4, 0x2b, 0x22, 0xa0, 0xb8, 0x1e, 0x2d, 0x00, 0x86, 0x0b, 0x0c, 0x17, 0x18, 0x2e,
		0x30, 0x5c, 0x60, 0xb8, 0xc0, 0x70, 0x81, 0xe1, 0x02, 0xc3, 0x05, 0x86, 0x2b, 0xe3, 0x0c, 0x97,
		0xd4, 0x3b, 0x28, 0xcb, 0xf8, 0x26, 0xf7, 0x2e, 0xca, 0xb2, 0x79, 0x91, 0xdf, 0x49, 0x59, 0x2c,
		0x26, 0xff, 0x6e, 0xca, 0xea, 0xa3, 0xa5, 0xdd, 0x51, 0x91, 0xad, 0x19, 0xe0, 0x3e, 0xff, 0xc0,
		0x7d, 0x3a, 0x17, 0xb6, 0xde, 0xbd, 0xb0, 0x5a, 0x4d, 0xb7, 0x61, 0x5b, 0xdd, 0xae, 0xde, 0xfc,
		0x6f, 0x2f, 0xe8, 0x17, 0x1e, 0xfc, 0xea, 0x2c, 0xd1, 0xef, 0x25, 0x35, 0xa1, 0x93, 0xf7, 0x74,
		0xf5, 0x4e, 0xdd, 0xae, 0x3b, 0xba, 0x7b, 0xd9, 0x71, 0x9b, 0xd6, 0xbf, 0x4d, 0x50, 0xa7, 0xea,
		0x59, 0x9e, 0x3f, 0x53, 0xa7, 0x72, 0x76, 0x1a, 0xcc, 0xeb, 0x63, 0xb3, 0xaa, 0x17, 0x06, 0x7e,
		0x14, 0x17, 0x86, 0xd7, 0x85, 0x47, 0x3c, 0xc3, 0x1f, 0x39, 0xb5, 0x05, 0x1b, 0x56, 0x18, 0x8f,
		0xfa, 0x5e, 0x9c, 0xb0, 0x6a, 0x71, 0xe8, 0xdf, 0xdc, 0x4c, 0x40, 0xb5, 0xf0, 0xc5, 0x8b, 0x44,
		0xbf, 0x30, 0x0c, 0x0a, 0xbd, 0x70, 0x18, 0x45, 0x7e, 0x70, 0x53, 0xf0, 0x96, 0x69, 0xb8, 0xc9,
		0xe6, 0x45, 0x62, 0xe4, 0x85, 0x93, 0x37, 0x8e, 0x47, 0xc9, 0xbf, 0x27, 0x1f, 0xa0, 0xb0, 0xf4,
		0x01, 0xbc, 0x50, 0x7c, 0x0e, 0x42, 0xf1, 0x7f, 0xc7, 0x7e, 0x28, 0xfa, 0x60, 0x67, 0xd3, 0x68,
		0xb7, 0x2b, 0xb6, 0x9b, 0x19, 0x75, 0x02, 0x83, 0x9b, 0x86, 0x08, 0x3a, 0x15, 0x0c, 0xee, 0x06,
		0x0f, 0x22, 0x9f, 0xc9, 0xdd, 0xb4, 0x10, 0x18, 0xdd, 0xad, 0x45, 0x0b, 0x46, 0x97, 0x0f, 0xfc,
		0xc1, 0xe8, 0xca, 0xd0, 0x58, 0x11, 0x8c, 0x6f, 0x45, 0xe8, 0x49, 0x8e, 0x04, 0x16, 0xf7, 0x17,
		0xaa, 0x12, 0x9f, 0xa9, 0x07, 0xe3, 0x5b, 0xf9, 0x76, 0xe0, 0x0c, 0xbb, 0xd3, 0xde, 0x85, 0x14,
		0xb1, 0x57, 0x71, 0x7f, 0x22, 0xe3, 0xb6, 0x61, 0xdb, 0x96, 0xad, 0x37, 0xe7, 0x09, 0x00, 0x45,
		0xa6, 0x57, 0x9e, 0x2c, 0xf4, 0x38, 0xd3, 0x90, 0x1b, 0x5e, 0x48, 0x4e, 0x32, 0x8a, 0xce, 0xd0,
		0x48, 0x8c, 0x97, 0x82, 0x55, 0x7f, 0x2c, 0x71, 0x12, 0xf6, 0x72, 0x55, 0xde, 0xa7, 0x85, 0x72,
		0x4a, 0x23, 0xa5, 0x3b, 0x30, 0x4a, 0xd9, 0x66, 0x94, 0x40, 0x0f, 0x65, 0x92, 0x1e, 0x02, 0xd7,
		0xb3, 0xa2, 0xf0, 0xce, 0x57, 0x51, 0x88, 0xc4, 0x40, 0x24, 0xa7, 0x4b, 0x93, 0x1c, 0xfd, 0xfb,
		0x57, 0x11, 0x7f, 0x15, 0x61, 0xe1, 0xd6, 0x0f, 0xc3, 0xe1, 0x24, 0xcd, 0x1e, 0x86, 0xf7, 0x69,
		0xf4, 0x42, 0xc8, 0x9f, 0x83, 0x6f, 0xde, 0x60, 0x2c, 0x92, 0x0c, 0x7a, 0x56, 0x2d, 0x35, 0x9e,
		0x64, 0xe3, 0xb3, 0x5c, 0x3a, 0x9a, 0xfc, 0x2b, 0x5c, 0x2e, 0xa8, 0xba, 0xcf, 0xb9, 0xe3, 0xe1,
		0xe7, 0x60, 0x92, 0xef, 0x8b, 0x18, 0xfc, 0x4d, 0x26, 0xf8, 0x1b, 0xa5, 0x2a, 0x02, 0x4e, 0x06,
		0x9c, 0xcc, 0x0a, 0x27, 0x13, 0xcb, 0xcc, 0xc0, 0xd6, 0x50, 0x31, 0xc9, 0xf3, 0xc1, 0xc0, 0x80,
		0x81, 0x01, 0x03, 0x03, 0x06, 0x06, 0x0c, 0x8c, 0x64, 0x06, 0x26, 0xb9, 0xf1, 0x42, 0x46, 0xbb,
		0xac, 0x44, 0xfd, 0xb9, 0xe5, 0x5d, 0xa6, 0x72, 0xa6, 0x21, 0x5b, 0x56, 0xa5, 0xbc, 0xf3, 0x6c,
		0x4b, 0x2a, 0x62, 0xa0, 0xf1, 0x48, 0x23, 0xbf, 0x5c, 0xb0, 0x66, 0x0d, 0xc4, 0x42, 0x88, 0x85,
		0x10, 0x0b, 0xe5, 0x2c, 0x16, 0xc2, 0xfd, 0x02, 0xd9, 0x5e, 0x13, 0xf7, 0x0b, 0x9e, 0xa4, 0x7f,
		0xb8, 0x5f, 0xb0, 0x61, 0x6b, 0x71, 0xbf, 0x80, 0x33, 0x6e, 0x2c, 0xe0, 0x7e, 0xc1, 0xf3, 0xf1,
		0x0d, 0xf7, 0x0b, 0x9e, 0xf6, 0x68, 0xdc, 0x2f, 0x48, 0xb1, 0x9f, 0x96, 0x7e, 0xbf, 0xe0, 0x71,
		0x09, 0x04, 0x0e, 0x90, 0xd5, 0x25, 0x07, 0x6b, 0x93, 0x04, 0xc2, 0x9d, 0xc6, 0x99, 0xf3, 0x63,
		0xb3, 0xba, 0x2f, 0x08, 0x5f, 0xae, 0x05, 0x1f, 0x86, 0xa1, 0x88, 0x46, 0xc3, 0xa0, 0xef, 0x07,
		0x37, 0xc9, 0x79, 0xe1, 0x30, 0xfe, 0x5a, 0xf0, 0x83, 0x5e, 0x28, 0xbc, 0xc8, 0x0f, 0x6e, 0x3e,
		0x07, 0x49, 0x01, 0xb7, 0x98, 0xff, 0xfb, 0xbe, 0xf3, 0xc6, 0xb4, 0x8e, 0xfc, 0x41, 0x09, 0x79,
		0x52, 0x54, 0x9e, 0xd4, 0x91, 0x7b, 0xc1, 0xe7, 0xe0, 0x89, 0xc5, 0xe3, 0xf7, 0x9f, 0xe6, 0x4d,
		0xc1, 0x0b, 0xfa, 0xd3, 0x46, 0x1f, 0x91, 0x77, 0xfb, 0xbb, 0xea, 0xf1, 0xf9, 0x69, 0x66, 0xff,
		0x2d, 0x0e, 0xb3, 0xd3, 0x68, 0xe4, 0x85, 0xcd, 0x97, 0x11, 0x76, 0x49, 0xf7, 0x70, 0x4a, 0x9e,
		0x86, 0xd8, 0x3c, 0x2d, 0x0c, 0x31, 0x31, 0x39, 0x0c, 0x5e, 0x58, 0xa6, 0x40, 0xc1, 0x0b, 0xf3,
		0x79, 0x05, 0xf0, 0xc2, 0x32, 0x34, 0x16, 0xbc, 0xb0, 0x74, 0xf2, 0x10, 0xbc, 0x70, 0x2a, 0xa8,
		0x43, 0xf0, 0xc2, 0x3b, 0xbc, 0xb9, 0xe0, 0x85, 0x9f, 0xb0, 0x0d, 0xe0, 0x85, 0x9f, 0x42, 0xde,
		0x82, 0x17, 0x06, 0x2f, 0x8c, 0xbe, 0x33, 0x6b, 0xd2, 0x02, 0xf0, 0xc2, 0xe8, 0x3b, 0xf3, 0x72,
		0xb3, 0xba, 0xe7, 0xe6, 0x1e, 0xb0, 0x0c, 0xe8, 0x3a, 0x43, 0x61, 0xaa, 0xf9, 0x21, 0x7a, 0x53,
		0xad, 0x4c, 0x60, 0x6e, 0xd3, 0x10, 0x3d, 0x67, 0x7c, 0x38, 0x9f, 0xa4, 0x01, 0xc7, 0x8b, 0xe7,
		0x29, 0x19, 0x74, 0xbc, 0x7e, 0x7c, 0x6e, 0x49, 0xca, 0x08, 0xcf, 0x02, 0xff, 0x1c, 0x64, 0xe3,
		0x66, 0x74, 0x3e, 0xfb, 0x36, 0x67, 0xf3, 0x2f, 0xb3, 0xd5, 0x70, 0xe4, 0xed, 0x55, 0xed, 0x6e,
		0xab, 0x21, 0xd2, 0x5e, 0x2c, 0xe4, 0x0d, 0x66, 0x9d, 0x3e, 0x2e, 0x65, 0x73, 0x59, 0x2b, 0x98,
		0xcb, 0xfa, 0xc2, 0x60, 0x02, 0x73, 0x59, 0x55, 0x41, 0x3f, 0xe6, 0xb2, 0xe2, 0xf4, 0x10, 0xa7,
		0x87, 0x05, 0x9c, 0x1e, 0xca, 0x65, 0xfb, 0x70, 0x7a, 0x88, 0xd3, 0xc3, 0x02, 0x4e, 0x0f, 0x55,
		0xd3, 0x6f, 0x38, 0x3d, 0x4c, 0xcb, 0xe6, 0xe2, 0xf4, 0xf0, 0x09, 0xdb, 0x80, 0x33, 0x22, 0xcc,
		0x65, 0x4d, 0x77, 0x0c, 0xb7, 0x36, 0x96, 0xc3, 0x5c, 0xd6, 0xe7, 0x28, 0x36, 0xe6, 0xb2, 0x4a,
		0xb3, 0x24, 0xcc, 0x65, 0xc5, 0x5c, 0xd6, 0x9c, 0x44, 0x18, 0x98, 0xcb, 0x0a, 0x86, 0x0b, 0x0c,
		0x17, 0x18, 0x2e, 0x30, 0x5c, 0x60, 0xb8, 0xc0, 0x70, 0x81, 0xe1, 0x02, 0xc3, 0x05, 0x86, 0x2b,
		0x83, 0x0c, 0x17, 0xea, 0xe3, 0x7f, 0xb3, 0x18, 0xea, 0xe3, 0xc1, 0x7d, 0xa2, 0x3e, 0xfe, 0x77,
		0x69, 0x01, 0xea, 0xe3, 0x51, 0x1f, 0xff, 0x72, 0xb3, 0xc2, 0x5c, 0x56, 0xb0, 0xb3, 0x12, 0x6d,
		0x17, 0x73, 0x59, 0x11, 0x41, 0x73, 0x7e, 0x1e, 0xcc, 0x65, 0x5d, 0x61, 0x73, 0xc0, 0xe8, 0xa6,
		0xda, 0x33, 0x80, 0xd1, 0xe5, 0xc0, 0x28, 0x4c, 0x05, 0xc1, 0x54, 0x10, 0xcc, 0x65, 0xdd, 0x28,
		0x79, 0xcc, 0x65, 0x65, 0x8b, 0x94, 0x30, 0x97, 0x35, 0xe3, 0x8c, 0x12, 0xe8, 0xa1, 0x4c, 0xd2,
		0x43, 0xe0, 0x7a, 0x56, 0x14, 0x1e, 0x73, 0x59, 0xc1, 0xdf, 0xfc, 0xc1, 0xb8, 0x30, 0x97, 0x15,
		0x9c, 0x4c, 0xba, 0x38, 0x19, 0xcc, 0x65, 0x05, 0x03, 0x03, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18,
		0xcc, 0x65, 0x7d, 0x4c, 0xbb, 0x60, 0x2e, 0xeb, 0x22, 0x8f, 0xc0, 0x5c, 0x56, 0x99, 0xd8, 0x85,
		0xb9, 0xac, 0x88, 0x85, 0x10, 0x0b, 0x21, 0x16, 0xc2, 0xfd, 0x02, 0x19, 0x18, 0x80, 0xfb, 0x05,
		0xb2, 0x1f, 0x8e, 0xfb, 0x05, 0x8a, 0x62, 0xb8, 0x02, 0xee, 0x17, 0xa4, 0x69, 0x73, 0x71, 0xbf,
		0xe0, 0x09, 0xdb, 0x80, 0xfb, 0x05, 0xbf, 0x59, 0x0c, 0xf7, 0x0b, 0x70, 0x1a, 0x8c, 0xb9, 0xac,
		0xbf, 0x4b, 0x0b, 0x70, 0xbf, 0x00, 0x73, 0x59, 0x5f, 0x6e, 0x56, 0x98, 0xcb, 0x9a, 0x1e, 0xab,
		0x2e, 0x60, 0x2e, 0x2b, 0xe6, 0xb2, 0x72, 0x44, 0xd2, 0x05, 0x9c, 0x92, 0x73, 0x20, 0x3b, 0xe6,
		0xb2, 0x82, 0x17, 0x06, 0x2f, 0xfc, 0x14, 0x4f, 0x00, 0x5e, 0xf8, 0x85, 0x1a, 0x0b, 0x5e, 0x58,
		0x3a, 0x79, 0x08, 0x5e, 0x38, 0x15, 0xd4, 0x21, 0x78, 0xe1, 0x1d, 0xde, 0x5c, 0xf0, 0xc2, 0x4f,
		0xd8, 0x06, 0xf0, 0xc2, 0x4f, 0x21, 0x6f, 0xc1, 0x0b, 0x83, 0x17, 0x46, 0xdf, 0x99, 0x35, 0x69,
		0x01, 0x78, 0x61, 0xf4, 0x9d, 0x79, 0xb9, 0x59, 0x61, 0x2e, 0x2b, 0x88, 0x5e, 0x69, 0x96, 0x8b,
		0xb9, 0xac, 0x88, 0x9e, 0xf9, 0x3e, 0x0f, 0xe6, 0xb2, 0x52, 0xcd, 0x65, 0x95, 0x31, 0xc1, 0xb3,
		0x90, 0x92, 0xb1, 0xac, 0xdd, 0xe4, 0xbb, 0xa8, 0x9a, 0xca, 0xfa, 0x8a, 0x51, 0x35, 0x65, 0xa9,
		0x64, 0x9a, 0x54, 0xb1, 0xb8, 0xd5, 0x58, 0x5b, 0xd5, 0xca, 0xf7, 0x32, 0xb5, 0x7b, 0xbe, 0xd2,
		0xbc, 0x40, 0x61, 0x8a, 0xf7, 0xdb, 0xe1, 0xf7, 0x5f, 0xac, 0x2e, 0x8b, 0x30, 0xf2, 0xc1, 0xd3,
		0x5e, 0xa8, 0xbe, 0xdb, 0x9d, 0x48, 0x6d, 0x7d, 0x02, 0x25, 0xe3, 0xc4, 0x49, 0xe2, 0x09, 0x93,
		0xac, 0xd8, 0x54, 0xfa, 0x09, 0x92, 0xf4, 0xf0, 0x52, 0xee, 0x09, 0x11, 0x2f, 0xe4, 0x6e, 0x7d,
		0xe2, 0xb3, 0xd0, 0x98, 0x81, 0xf0, 0xae, 0x43, 0x71, 0xbd, 0x8d, 0xc6, 0xcc, 0x6f, 0x3c, 0x1e,
		0x6d, 0xf1, 0x8c, 0xce, 0x0c, 0xf5, 0xdf, 0xbe, 0x9d, 0x4d, 0x67, 0x2f, 0x3d, 0x30, 0xed, 0x4c,
		0x00, 0xda, 0x44, 0x8c, 0x12, 0x11, 0xed, 0xe5, 0xbb, 0xb2, 0xe5, 0x14, 0xf3, 0xd4, 0x41, 0x9a,
		0x7f, 0x0d, 0x40, 0x7b, 0x01, 0xa0, 0xf9, 0xd7, 0x59, 0x81, 0xb3, 0x6d, 0x27, 0x8e, 0x17, 0x7b,
		0x73, 0x8d, 0xdd, 0x72, 0x8f, 0xe7, 0x4a, 0x37, 0x7b, 0xde, 0x96, 0xfb, 0xb1, 0x9d, 0x19, 0x4a,
		0x33, 0x47, 0x99, 0x66, 0x29, 0xdd, 0x3c, 0xa9, 0x38, 0x31, 0xb2, 0x0a, 0x16, 0x32, 0x9a, 0x4b,
		0xa6, 0xf9, 0xa6, 0x83, 0xab, 0xd8, 0xd6, 0xac, 0x57, 0x7d, 0xac, 0xfc, 0x22, 0xb7, 0xfb, 0x47,
		0xa3, 0xc0, 0x2d, 0x35, 0x60, 0x40, 0x05, 0x0a, 0xe4, 0xe0, 0x40, 0x0e, 0x12, 0x94, 0x60, 0x21,
		0x97, 0xb2, 0x4d, 0x7f, 0x71, 0xdb, 0xf6, 0xa9, 0x0f, 0x45, 0x2a, 0xb4, 0x31, 0x35, 0x2a, 0x25,
		0xdb, 0x7c, 0xba, 0x00, 0xac, 0xe8, 0xf1, 0x0b, 0xb3, 0x7f, 0x27, 0xcc, 0xd3, 0x0e, 0x55, 0x39,
		0x47, 0xe3, 0x2f, 0x84, 0xf8, 0xff, 0xe0, 0xe9, 0x70, 0x01, 0x70, 0x01, 0x70, 0x01, 0x70, 0x01,
		0x99, 0x75, 0x01, 0x9f, 0xee, 0x5d, 0xc0, 0xff, 0xf4, 0xc6, 0x61, 0x28, 0x82, 0xf8, 0xf5, 0x5e,
		0xe9, 0xed, 0xdb, 0x7b, 0x36, 0xed, 0x6a, 0xf6, 0x96, 0x65, 0xdc, 0x8b, 0xd6, 0xbc, 0xb6, 0x78,
		0x72, 0x5f, 0xfc, 0x28, 0xe2, 0xe4, 0xb5, 0x50, 0x28, 0xea, 0x3f, 0x92, 0xc2, 0xc3, 0xed, 0x2b,
		0xd7, 0xe4, 0x27, 0xb8, 0xc3, 0x9e, 0x26, 0x7e, 0xc4, 0xa7, 0xb1, 0x18, 0x88, 0x5b, 0x11, 0x87,
		0x3f, 0xb5, 0x61, 0xa0, 0xf5, 0xbe, 0x26, 0x25, 0xf1, 0x24, 0x49, 0x6f, 0x52, 0xb2, 0x48, 0x90,
		0xf5, 0xaa, 0x4e, 0x78, 0xaf, 0x70, 0x38, 0x2f, 0x4a, 0x0f, 0x18, 0xe8, 0x92, 0x14, 0x26, 0xac,
		0xa0, 0xe0, 0x5c, 0x74, 0xfe, 0x37, 0x5b, 0x5c, 0xbb, 0xb3, 0x08, 0x4a, 0xd5, 0x69, 0xfc, 0x56,
		0x87, 0xc9, 0x5e, 0x2c, 0xe4, 0xf1, 0x9a, 0x32, 0x2a, 0x2c, 0xa4, 0xd3, 0x9a, 0x15, 0xd0, 0x9a,
		0xa0, 0x35, 0x41, 0x6b, 0x82, 0xd6, 0x44, 0x4e, 0x8b, 0x9c, 0x16, 0x39, 0x2d, 0x72, 0x5a, 0xd0,
		0x9a, 0xa0, 0x35, 0xe1, 0x02, 0xe0, 0x02, 0xe0, 0x02, 0xe0, 0x02, 0x40, 0x6b, 0x12, 0x67, 0x33,
		0x3b, 0xc8, 0x59, 0x65, 0xf5, 0x1e, 0xc9, 0x32, 0x65, 0x85, 0xfb, 0x23, 0x19, 0xd4, 0xbc, 0x0c,
		0x5d, 0x1b, 0x59, 0xd2, 0xb5, 0x34, 0x57, 0x57, 0x6f, 0xc7, 0x7f, 0x4a, 0xe1, 0x3d, 0xa5, 0x55,
		0x53, 0x57, 0x70, 0x41, 0x84, 0x32, 0x52, 0xc5, 0x05, 0x11, 0x89, 0x1c, 0x65, 0xd1, 0xeb, 0xdf,
		0xfa, 0x81, 0x76, 0x13, 0x0e, 0xc7, 0x23, 0x79, 0xc7, 0x0f, 0xcb, 0x0f, 0x95, 0x73, 0x08, 0xb1,
		0xbf, 0xe3, 0xb5, 0xd5, 0x92, 0xfa, 0x05, 0xe2, 0x18, 0x82, 0xa6, 0x1f, 0xa0, 0xda, 0xd0, 0x5d,
		0x5a, 0x02, 0xb9, 0xe4, 0x27, 0x93, 0x81, 0x70, 0x12, 0x14, 0x6e, 0xee, 0x34, 0x8f, 0x95, 0x4a,
		0x48, 0x6a, 0x8f, 0x2b, 0xf9, 0xbd, 0xad, 0x58, 0x7a, 0x5a, 0x11, 0xf4, 0xb2, 0x22, 0xe8, 0x61,
		0xa5, 0xe6, 0x78, 0x5d, 0xca, 0x6d, 0xe4, 0x15, 0x2b, 0x92, 0x70, 0x2b, 0x19, 0x7e, 0x0e, 0x7e,
		0x0e, 0x7e, 0x8e, 0xcc, 0xcf, 0x49, 0xb4, 0x50, 0x99, 0xde, 0x4e, 0x4d, 0x89, 0x51, 0x38, 0xb8,
		0xd1, 0x6e, 0xc5, 0xed, 0x17, 0x11, 0x46, 0x5f, 0x7d, 0x89, 0xd1, 0xfe, 0xe3, 0x07, 0x03, 0x09,
		0x81, 0x84, 0x40, 0xc2, 0x94, 0x21, 0xa1, 0xbc, 0xa3, 0x22, 0x99, 0x47, 0x44, 0xcb, 0xfd, 0x20,
		0x16, 0xff, 0x8f, 0x85, 0x76, 0x33, 0x18, 0x7e, 0xf1, 0x06, 0xcb, 0x4c, 0xec, 0x04, 0x64, 0xa6,
		0x7f, 0x96, 0xb6, 0xaf, 0x10, 0x40, 0xba, 0x81, 0x74, 0x83, 0xd2, 0xd5, 0xc6, 0x42, 0xbb, 0x15,
		0x71, 0xe8, 0xf7, 0xe4, 0x39, 0xd9, 0xfb, 0x47, 0xc2, 0xbd, 0xc2, 0xbd, 0xc2, 0xbd, 0xa6, 0xcc,
		0xbd, 0x8e, 0xfd, 0x20, 0x3e, 0xa8, 0x48, 0xf4, 0xae, 0x32, 0x9c, 0xab, 0xdc, 0x61, 0x19, 0x72,
		0x9b, 0xc7, 0xcb, 0xaf, 0x88, 0x22, 0x1a, 0x8a, 0x41, 0x3e, 0x2f, 0x81, 0x6e, 0x4e, 0xc2, 0x9d,
		0xdc, 0xae, 0xfc, 0x74, 0x5b, 0x56, 0xad, 0x9c, 0x54, 0x4f, 0x6a, 0x47, 0x95, 0x93, 0x43, 0xec,
		0x9d, 0x14, 0x80, 0x94, 0xf7, 0x94, 0x2b, 0x94, 0xa6, 0x3c, 0x87, 0x63, 0x51, 0x51, 0x9a, 0xb2,
		0x6d, 0x19, 0x14, 0x73, 0x49, 0xca, 0x16, 0x15, 0x4f, 0x2f, 0xa8, 0x45, 0x79, 0x45, 0xa8, 0x3e,
		0x93, 0x60, 0x6e, 0x4b, 0x96, 0x71, 0xbb, 0x54, 0x72, 0xfb, 0xd4, 0x91, 0x24, 0x55, 0x94, 0x90,
		0x1a, 0x4a, 0x48, 0x05, 0x9f, 0xbb, 0x99, 0x5b, 0x62, 0x80, 0x12, 0xdb, 0x2f, 0xbe, 0xa8, 0xd4,
		0x8a, 0xd1, 0xda, 0x9f, 0x67, 0xe7, 0x4f, 0xb7, 0xd6, 0xa7, 0xfd, 0xe6, 0x13, 0x55, 0xe0, 0xa5,
		0x5b, 0xcf, 0xb8, 0xe5, 0xcf, 0xd8, 0x68, 0x8e, 0x0d, 0x7e, 0xda, 0xb6, 0xfe, 0x79, 0x93, 0x7e,
		0xff, 0x1b, 0x7f, 0xd8, 0xbe, 0x97, 0xcc, 0x2f, 0x7a, 0xde, 0x5c, 0xa2, 0x67, 0xa8, 0xc2, 0x62,
		0x8e, 0xd0, 0xbc, 0xaf, 0xed, 0x7c, 0xb2, 0xcc, 0xb0, 0xa7, 0x05, 0x7e, 0x32, 0x67, 0x26, 0x3a,
		0x6d, 0xea, 0xe7, 0xf5, 0xcb, 0x96, 0xe3, 0x1a, 0x66, 0xd7, 0xa9, 0x9b, 0x0d, 0xfd, 0x39, 0xb3,
		0x81, 0x5e, 0xca, 0x44, 0x6c, 0x39, 0xcb, 0x67, 0x6b, 0x5e, 0xe1, 0xe1, 0xec, 0x9d, 0xe7, 0x49,
		0xe7, 0x15, 0x01, 0xd6, 0x6f, 0x35, 0xff, 0x66, 0xb1, 0xcd, 0xed, 0x4e, 0xab, 0x5b, 0x98, 0x7e,
		0x97, 0x71, 0x38, 0x9d, 0x08, 0xe4, 0x47, 0xd3, 0x21, 0x24, 0xdf, 0xbc, 0x81, 0xdf, 0x2f, 0x7c,
		0xf7, 0xe3, 0xaf, 0x7e, 0x32, 0x7f, 0xa4, 0xd0, 0x17, 0xd7, 0xde, 0x78, 0x10, 0x7f, 0x0e, 0x66,
		0x16, 0x5f, 0x98, 0x5b, 0xfc, 0x73, 0x07, 0x8c, 0x6f, 0x43, 0x46, 0xc9, 0x9b, 0x13, 0x23, 0x85,
		0x69, 0x7a, 0xa0, 0x15, 0x92, 0x84, 0xa9, 0xd6, 0xd5, 0xbc, 0xda, 0x2e, 0x93, 0xfa, 0x13, 0xd6,
		0x3d, 0xd3, 0x45, 0x11, 0xb8, 0xa6, 0x27, 0xa8, 0x8a, 0x5c, 0xd7, 0xf3, 0xfb, 0x0d, 0xdd, 0x2c,
		0xf0, 0xdf, 0x88, 0xb2, 0x38, 0xfb, 0x68, 0xbf, 0x17, 0xe0, 0xc2, 0xca, 0x93, 0xdf, 0xfe, 0xc3,
		0xc6, 0x3c, 0x8d, 0x4f, 0x7f, 0x32, 0x5f, 0xfe, 0x1c, 0x3e, 0x7c, 0x99, 0xef, 0x0e, 0x44, 0x3c,
		0xd9, 0xad, 0xa7, 0x6c, 0xd2, 0x33, 0x51, 0xe4, 0xc5, 0x94, 0xf5, 0x8b, 0x81, 0xe2, 0x31, 0xe5,
		0x3c, 0xff, 0x6e, 0xc4, 0xe1, 0xc4, 0x93, 0x59, 0xe1, 0x17, 0x1c, 0xaa, 0x3e, 0xe7, 0xd0, 0x74,
		0x4d, 0x93, 0xfc, 0x3f, 0x1f, 0x79, 0xbe, 0xcc, 0x1c, 0x46, 0xc3, 0x81, 0xdf, 0xfb, 0xa9, 0x5d,
		0x0f, 0xc3, 0xef, 0x5e, 0xd8, 0xf7, 0x83, 0x9b, 0xa7, 0xdb, 0xc6, 0xea, 0x5b, 0x9f, 0x66, 0x28,
		0x65, 0xc5, 0x86, 0x32, 0xba, 0xde, 0x49, 0x1b, 0x19, 0x5d, 0x53, 0x9b, 0xc7, 0x53, 0xaf, 0x1a,
		0xdc, 0xd3, 0x21, 0xd1, 0xd3, 0xe5, 0xb7, 0x52, 0xb0, 0xf5, 0xd4, 0x8c, 0xe7, 0x99, 0xb7, 0x76,
		0x9e, 0x7d, 0x6e, 0xf9, 0x92, 0xf3, 0xc9, 0x67, 0xab, 0x9b, 0xcc, 0x18, 0xff, 0x45, 0xa7, 0x8a,
		0x72, 0xa3, 0xfc, 0x27, 0xaa, 0x23, 0x4d, 0x2e, 0xff, 0xdc, 0x1b, 0x31, 0x5b, 0x74, 0xe7, 0xd9,
		0xba, 0x0b, 0xcf, 0x0b, 0xaf, 0x9c, 0xbd, 0xf8, 0xf0, 0x7d, 0x9b, 0xc3, 0xf6, 0x17, 0x2b, 0xb5,
		0x8c, 0xec, 0xa5, 0x20, 0xf3, 0xe8, 0x5c, 0xda, 0x51, 0xf9, 0x36, 0x4a, 0xcf, 0x43, 0x50, 0xbf,
		0xf4, 0x7a, 0xd8, 0xb6, 0x83, 0x36, 0xe4, 0x0c, 0xd8, 0xd8, 0xb5, 0xf9, 0x36, 0x23, 0xcc, 0xb7,
		0xe1, 0x32, 0xab, 0x97, 0x99, 0xd7, 0x0b, 0xcd, 0x6c, 0x6b, 0x73, 0x5b, 0x3c, 0xc0, 0x1b, 0x8d,
		0x06, 0xcb, 0x31, 0xb5, 0x36, 0x8d, 0xb2, 0x25, 0xde, 0xcc, 0xdc, 0xb0, 0x00, 0x8a, 0xca, 0xc8,
		0x0d, 0x58, 0xb6, 0x21, 0x93, 0x19, 0x34, 0x99, 0x61, 0x53, 0x18, 0xf8, 0x76, 0x86, 0xbe, 0xa5,
		0xc1, 0x3f, 0x9f, 0x3a, 0x20, 0xa0, 0x16, 0x64, 0x52, 0x0f, 0xcf, 0xa1, 0x26, 0x16, 0xff, 0x4f,
		0x20, 0xc4, 0x17, 0xd1, 0xf4, 0x2f, 0x3f, 0xe7, 0x9c, 0xc5, 0x8c, 0x20, 0xf0, 0xfb, 0x59, 0xec,
		0xc7, 0x3b, 0xc5, 0xc9, 0x6f, 0xe1, 0xb5, 0x16, 0x89, 0x81, 0x48, 0x6a, 0x88, 0x88, 0xb0, 0x78,
		0xed, 0x1a, 0x80, 0x63, 0xc0, 0x31, 0xe0, 0x18, 0x70, 0x0c, 0x38, 0x7e, 0xc4, 0xd1, 0xe0, 0xfe,
		0x36, 0x20, 0x17, 0x90, 0x9b, 0x0b, 0xc8, 0xdd, 0xb9, 0xbb, 0xdb, 0xa8, 0x68, 0x2e, 0xad, 0x1c,
		0x1a, 0x96, 0x96, 0xba, 0x78, 0xde, 0x57, 0x34, 0x6f, 0x3d, 0x8c, 0x44, 0x5e, 0x21, 0x42, 0x27,
		0xf9, 0xc4, 0xe7, 0x8b, 0x0f, 0x7c, 0x5f, 0xda, 0xb8, 0x5c, 0xd3, 0xbc, 0xcd, 0xe0, 0x11, 0xee,
		0xf1, 0xe5, 0x5b, 0x78, 0x50, 0x99, 0xb6, 0xb9, 0xa5, 0xc7, 0x04, 0xb9, 0xcb, 0xe2, 0x09, 0x41,
		0xee, 0xca, 0xf3, 0x70, 0x12, 0x93, 0x09, 0x19, 0x49, 0xc4, 0x9a, 0x32, 0x93, 0x07, 0x66, 0x9d,
		0x09, 0x30, 0x9b, 0x88, 0x51, 0x22, 0x9a, 0xbd, 0x7c, 0x57, 0x76, 0xed, 0xac, 0xca, 0x07, 0x9c,
		0xbd, 0x04, 0xce, 0xfc, 0xfc, 0x9c, 0x55, 0x6d, 0x79, 0x44, 0xbc, 0xa2, 0x74, 0x52, 0x26, 0xd0,
		0x49, 0x1f, 0x5a, 0xb6, 0x8f, 0xa1, 0x65, 0x39, 0xca, 0xc3, 0x31, 0xb4, 0x6c, 0xd5, 0xc7, 0x62,
		0x68, 0xd9, 0xd6, 0x0f, 0xc4, 0xc4, 0x1a, 0x4c, 0xac, 0xa1, 0x04, 0x0d, 0x49, 0xe0, 0x21, 0x9f,
		0xcc, 0x23, 0x48, 0x7d, 0x28, 0x52, 0xa1, 0x8d, 0xa9, 0x11, 0x86, 0x96, 0x61, 0x68, 0x19, 0x5c,
		0x00, 0x5c, 0x00, 0x5c, 0x00, 0x5c, 0x00, 0x86, 0x96, 0xf1, 0x67, 0x33, 0xfa, 0x8f, 0xa4, 0x2d,
		0xc9, 0xf6, 0x0d, 0xcc, 0xe4, 0x27, 0xb8, 0xc3, 0x9e, 0x26, 0x7e, 0xc4, 0xa7, 0xb1, 0x18, 0x88,
		0x5b, 0x11, 0x87, 0x3f, 0xb5, 0x61, 0xa0, 0xf5, 0xbe, 0x26, 0x1d, 0xd7, 0x48, 0x92, 0xde, 0xa4,
		0x01, 0x0a, 0x41, 0xd6, 0xab, 0x3a, 0xe1, 0xbd, 0xda, 0xe9, 0xb9, 0x76, 0x4f, 0x3c, 0xf0, 0x7c,
		0x38, 0xd7, 0x4e, 0x0a, 0x13, 0x56, 0x50, 0x70, 0x0c, 0xfa, 0x60, 0xb2, 0xdd, 0x36, 0x67, 0xa2,
		0xdb, 0xab, 0xd6, 0x56, 0x9d, 0xd2, 0xb7, 0x1a, 0x46, 0xb6, 0x1a, 0xee, 0x4a, 0x18, 0x53, 0x28,
		0x9d, 0xd7, 0xac, 0x80, 0xd7, 0x04, 0xaf, 0x09, 0x5e, 0x13, 0xbc, 0x26, 0x92, 0x5a, 0x24, 0xb5,
		0x48, 0x6a, 0x91, 0xd4, 0x82, 0xd7, 0x04, 0xaf, 0x09, 0x17, 0x00, 0x17, 0x00, 0x17, 0x00, 0x17,
		0x00, 0x5e, 0x93, 0x38, 0x9b, 0xd9, 0x41, 0xd2, 0x4a, 0x06, 0xcb, 0xa1, 0x9c, 0xb3, 0xda, 0xa2,
		0x37, 0xb9, 0x04, 0xca, 0x0a, 0x17, 0x44, 0x5e, 0xa4, 0x7a, 0x19, 0xba, 0x27, 0xb2, 0xac, 0x6c,
		0x69, 0x2e, 0xb0, 0xde, 0x8e, 0x01, 0x95, 0xc2, 0x7c, 0x4a, 0x2b, 0xa8, 0xae, 0xe0, 0x7e, 0x08,
		0x5d, 0xa4, 0x8a, 0xfb, 0x21, 0xd2, 0x18, 0x4a, 0x34, 0xff, 0xc1, 0xd5, 0xe7, 0xf4, 0xa4, 0x9e,
		0xb8, 0xfa, 0xcc, 0x9f, 0x52, 0xa2, 0xdb, 0x84, 0xc4, 0x60, 0x1a, 0xcd, 0x7f, 0x00, 0xc7, 0x80,
		0x63, 0xc0, 0x31, 0xe0, 0x18, 0xcd, 0x7f, 0xd6, 0x6d, 0x2a, 0x9a, 0xff, 0x00, 0x72, 0x01, 0xb9,
		0x69, 0x85, 0x5c, 0x34, 0xff, 0x29, 0xe4, 0x95, 0xdb, 0x4d, 0xcf, 0x38, 0xd3, 0xa7, 0x71, 0xba,
		0x98, 0x67, 0xba, 0xfc, 0x08, 0xcc, 0x33, 0xfd, 0xc3, 0x23, 0x72, 0x3a, 0xcf, 0xf4, 0x69, 0xc6,
		0xaf, 0x74, 0x9e, 0xe9, 0x93, 0xcc, 0x1d, 0x03, 0x4d, 0xe5, 0xec, 0xb9, 0x92, 0x81, 0xa6, 0xbf,
		0xd9, 0x61, 0x69, 0x13, 0x4d, 0x9f, 0x30, 0x5c, 0x6a, 0x22, 0xdf, 0x25, 0xda, 0xe7, 0x26, 0x1c,
		0x8e, 0x47, 0x2f, 0x98, 0x95, 0xb4, 0xfe, 0x31, 0x18, 0x9b, 0xc4, 0x97, 0x3a, 0xe4, 0x79, 0x6c,
		0xd2, 0x3a, 0xed, 0x7b, 0xf9, 0x04, 0xa5, 0xb5, 0x4f, 0xc3, 0x30, 0x25, 0xb2, 0x2c, 0x1a, 0xc3,
		0x94, 0x30, 0x4c, 0x89, 0x97, 0x9c, 0x42, 0x3d, 0x85, 0x12, 0xd2, 0x29, 0xc7, 0xf5, 0x14, 0x89,
		0x13, 0x91, 0xca, 0x19, 0x2f, 0x9e, 0x08, 0xbe, 0x18, 0x7c, 0x31, 0xf8, 0xe2, 0x14, 0xf1, 0xc5,
		0x51, 0x1c, 0xfe, 0x79, 0x04, 0x71, 0x36, 0x98, 0xe2, 0x2d, 0xbc, 0xda, 0xed, 0x68, 0x10, 0x69,
		0x83, 0x68, 0x24, 0x0f, 0xf1, 0x16, 0x4f, 0x04, 0xe2, 0x01, 0xf1, 0x80, 0x78, 0x29, 0x42, 0xbc,
		0x0c, 0x15, 0x25, 0xbc, 0x7d, 0x5b, 0x9a, 0xe0, 0x48, 0x69, 0x10, 0x8d, 0xa2, 0x52, 0x6f, 0x18,
		0x44, 0x71, 0xe8, 0xf9, 0x81, 0xe8, 0x6b, 0x93, 0xac, 0xbf, 0x14, 0x8f, 0x83, 0x40, 0x0c, 0xa2,
		0xd9, 0x7f, 0x9f, 0x3e, 0xf1, 0x9e, 0x7a, 0xcb, 0xb6, 0x3a, 0xc9, 0x58, 0x79, 0xda, 0xd6, 0x27,
		0x1b, 0xab, 0x4f, 0x24, 0x38, 0xe9, 0x58, 0x59, 0x64, 0xfb, 0x93, 0x8f, 0xcd, 0x8f, 0x7c, 0xf1,
		0x49, 0x88, 0x44, 0x67, 0x8b, 0x63, 0xd9, 0x35, 0x2c, 0xfd, 0x5a, 0x62, 0x79, 0xed, 0xab, 0xa9,
		0x9e, 0xd4, 0x32, 0x81, 0xa2, 0xee, 0xfc, 0xf3, 0xbe, 0x4b, 0xbe, 0xc4, 0x9a, 0xd7, 0x32, 0x30,
		0xbb, 0x65, 0xeb, 0x44, 0x56, 0x56, 0x02, 0x8b, 0x99, 0x2d, 0xe0, 0x90, 0x30, 0xb3, 0x45, 0x61,
		0x98, 0xb5, 0x66, 0x66, 0xcb, 0xc2, 0xa4, 0x71, 0x9d, 0xf0, 0x49, 0xd2, 0xc7, 0x75, 0x42, 0x40,
		0x57, 0x16, 0xa0, 0x0b, 0xf4, 0x37, 0xc8, 0x20, 0x90, 0x41, 0x20, 0x83, 0x9e, 0xe8, 0x19, 0x41,
		0x7f, 0x83, 0xfe, 0x06, 0xe2, 0x01, 0xf1, 0xf2, 0x82, 0x78, 0xa0, 0xbf, 0x89, 0xb7, 0x0c, 0xf4,
		0x37, 0xe8, 0x6f, 0xb9, 0x19, 0xcd, 0x0e, 0xd2, 0xdf, 0x29, 0xbe, 0xab, 0xf4, 0x44, 0xf6, 0x7b,
		0xf7, 0x6e, 0x2f, 0xbd, 0x30, 0x4b, 0xc5, 0xcd, 0x25, 0x32, 0xc0, 0xda, 0xb5, 0x9b, 0x4b, 0x4f,
		0x07, 0x88, 0x74, 0xdd, 0x67, 0x7a, 0x1a, 0x24, 0xe0, 0x86, 0x93, 0x74, 0xdd, 0x48, 0xc7, 0x65,
		0xa7, 0x35, 0xdb, 0xcf, 0x7a, 0xeb, 0x69, 0xd6, 0x9a, 0xe2, 0x05, 0x17, 0x9d, 0xe6, 0xef, 0xc4,
		0xdd, 0x26, 0xbe, 0xac, 0x37, 0xd7, 0x77, 0x9b, 0x5e, 0xd6, 0xec, 0xe9, 0xa1, 0xc2, 0xfe, 0xc4,
		0xfd, 0x25, 0x3a, 0x92, 0x07, 0xf7, 0x97, 0x70, 0x7f, 0x89, 0x97, 0x3b, 0xc5, 0x01, 0xae, 0x12,
		0x4e, 0x34, 0xc7, 0x07, 0xb8, 0xf7, 0x4d, 0xbb, 0xa4, 0x9d, 0x67, 0xdc, 0x3f, 0x12, 0x07, 0x1a,
		0xe4, 0x46, 0x2a, 0xdb, 0x58, 0xc9, 0x8c, 0x96, 0xcc, 0x78, 0x29, 0x8c, 0x78, 0x7b, 0xd6, 0xb3,
		0x80, 0x23, 0x5c, 0x5a, 0x56, 0x79, 0x0b, 0xbf, 0x16, 0xcb, 0x90, 0xeb, 0x42, 0xa6, 0xc9, 0xd3,
		0xb6, 0x1d, 0x3c, 0x28, 0xae, 0xbd, 0xf1, 0x20, 0x96, 0x32, 0x85, 0xb8, 0xd8, 0x39, 0xb3, 0xdd,
		0x8e, 0xd5, 0x32, 0x1a, 0x1f, 0x8b, 0x4a, 0x87, 0xe6, 0x02, 0xbe, 0x01, 0xdf, 0x80, 0x6f, 0x99,
		0xda, 0x26, 0x82, 0xf1, 0xad, 0x08, 0xa7, 0x84, 0xa4, 0x44, 0x0c, 0xaf, 0x4a, 0x78, 0x96, 0x1e,
		0x8c, 0x6f, 0xe5, 0x69, 0xaf, 0x33, 0xec, 0x4e, 0x3d, 0x95, 0xd4, 0x21, 0x5a, 0xfb, 0x13, 0x19,
		0x2e, 0xa1, 0xa3, 0xc4, 0x81, 0x57, 0xe5, 0xc9, 0xa3, 0xdf, 0xdb, 0xe7, 0x6e, 0x57, 0x6f, 0xe9,
		0x0d, 0xc7, 0xb0, 0x4c, 0x29, 0x10, 0x2c, 0x49, 0x15, 0x97, 0xe4, 0x6a, 0x24, 0x06, 0x26, 0x51,
		0xa8, 0x4b, 0xf2, 0x94, 0x36, 0xf0, 0x2f, 0x79, 0xf0, 0x5a, 0x69, 0x9e, 0x16, 0xca, 0xbb, 0x31,
		0xdb, 0x0b, 0xc7, 0xe9, 0x72, 0x4f, 0x44, 0xd6, 0xb6, 0xa4, 0x4e, 0xe9, 0xa1, 0xf9, 0xec, 0xb3,
		0xce, 0x7e, 0x92, 0x81, 0xbb, 0x61, 0xdb, 0x93, 0x04, 0xd2, 0xc8, 0x01, 0xdc, 0x0e, 0x03, 0x43,
		0x87, 0xdb, 0x61, 0xdb, 0x46, 0x7c, 0x72, 0x6f, 0x87, 0x6d, 0xd9, 0xf8, 0x9f, 0x07, 0xc3, 0xc2,
		0xf1, 0xe0, 0x19, 0xc7, 0xc2, 0x1b, 0x37, 0x61, 0xfa, 0x18, 0x9c, 0x2e, 0x00, 0xbb, 0x72, 0x80,
		0x5d, 0x5b, 0x9f, 0x2e, 0x4c, 0xac, 0x45, 0x1e, 0xd3, 0x96, 0x3c, 0x4d, 0x0e, 0x29, 0x55, 0x06,
		0x29, 0x05, 0x52, 0x2a, 0x8f, 0xa4, 0xd4, 0xb6, 0x26, 0xbd, 0x78, 0x90, 0xd7, 0x93, 0x36, 0x59,
		0xfa, 0x81, 0xf2, 0xce, 0x9e, 0x2b, 0x69, 0xff, 0xe4, 0x98, 0xbb, 0x74, 0xb3, 0xa7, 0x30, 0x7f,
		0x32, 0x18, 0xa0, 0x82, 0x03, 0x72, 0x58, 0x20, 0x87, 0x07, 0x4a, 0x98, 0x90, 0xc7, 0x54, 0xc9,
		0x24, 0x10, 0x65, 0xc1, 0xc7, 0xe2, 0x81, 0x5b, 0x96, 0xfd, 0xfc, 0xd1, 0x08, 0xb6, 0x26, 0x82,
		0x18, 0x60, 0x85, 0x0c, 0x5e, 0x28, 0x61, 0x86, 0x1c, 0x6e, 0xa8, 0x61, 0x87, 0x0d, 0x7e, 0xd8,
		0x60, 0x88, 0x03, 0x8e, 0xe4, 0xc2, 0x92, 0x64, 0x78, 0x22, 0x83, 0xa9, 0xc5, 0x83, 0xfb, 0xa2,
		0xe7, 0x8d, 0xb4, 0x6b, 0x6f, 0x30, 0xf8, 0xe2, 0xf5, 0xfe, 0x5e, 0x21, 0xaf, 0xe9, 0x94, 0x74,
		0x6e, 0x65, 0x7f, 0xfa, 0x00, 0x44, 0x1a, 0x25, 0xe7, 0x2c, 0x9f, 0x1d, 0xf8, 0x38, 0x00, 0x90,
		0x0d, 0x08, 0xb9, 0x00, 0x91, 0x1d, 0x18, 0xd9, 0x01, 0x92, 0x13, 0x28, 0x69, 0x00, 0x93, 0x08,
		0x38, 0x17, 0x82, 0x91, 0x56, 0xbb, 0xf0, 0x47, 0x6b, 0x91, 0x77, 0xc7, 0xfe, 0x8f, 0xd1, 0xda,
		0x11, 0xe1, 0x1a, 0x73, 0x56, 0xfc, 0x29, 0xc7, 0x97, 0xd2, 0xae, 0xdf, 0xf3, 0xe9, 0x1a, 0x81,
		0x9e, 0xcd, 0x5c, 0x99, 0x2a, 0x17, 0x0a, 0xcf, 0x09, 0xcf, 0x09, 0xcf, 0x09, 0xcf, 0x09, 0xcf,
		0x09, 0xcf, 0x99, 0x49, 0xcf, 0x19, 0x8d, 0x07, 0x5e, 0x2c, 0xb4, 0x9b, 0x90, 0xcb, 0x65, 0x2e,
		0x2d, 0x48, 0x64, 0x3b, 0x32, 0xcb, 0xe0, 0x37, 0x2e, 0x92, 0xb4, 0x96, 0xa0, 0xd1, 0x9e, 0x2b,
		0xc4, 0x10, 0x88, 0x21, 0x10, 0x43, 0x20, 0x86, 0xc8, 0x4c, 0x0c, 0xf1, 0x65, 0x38, 0x1c, 0x08,
		0x2f, 0xe0, 0x88, 0x21, 0xca, 0x70, 0xd8, 0x53, 0xff, 0x39, 0xe6, 0x76, 0xd8, 0x63, 0x38, 0x6c,
		0x38, 0x6c, 0x38, 0x6c, 0x38, 0x6c, 0x38, 0x6c, 0x38, 0x6c, 0x38, 0xec, 0xe7, 0x3a, 0xec, 0xa4,
		0x3f, 0xb7, 0x1f, 0x68, 0xe3, 0xfe, 0x88, 0xd7, 0x71, 0x2f, 0x2f, 0x0c, 0x07, 0x0e, 0x07, 0x0e,
		0x07, 0x0e, 0x07, 0x0e, 0x07, 0x0e, 0x07, 0x0e, 0x07, 0xfe, 0x04, 0x07, 0xee, 0x47, 0x3d, 0x2f,
		0xec, 0x33, 0x38, 0xec, 0xd9, 0x42, 0x70, 0xd0, 0x70, 0xd0, 0x70, 0xd0, 0x70, 0xd0, 0x70, 0xd0,
		0x70, 0xd0, 0x70, 0xd0, 0x7f, 0x96, 0x01, 0x7f, 0xdd, 0x17, 0x2a, 0xbe, 0xe0, 0x9a, 0xe0, 0x9a,
		0xe0, 0x9a, 0xb2, 0xeb, 0x9a, 0x50, 0xf1, 0x95, 0x5f, 0x6f, 0xf9, 0x23, 0xd6, 0xbe, 0x0e, 0x47,
		0x1c, 0x5e, 0x72, 0xb6, 0x12, 0xbc, 0x23, 0xbc, 0x23, 0xbc, 0x23, 0xbc, 0x63, 0x66, 0xbc, 0xa3,
		0x3f, 0xd2, 0xbc, 0x7e, 0x3f, 0x14, 0x51, 0xc4, 0xe1, 0x20, 0x4f, 0x08, 0xd7, 0x98, 0xc9, 0xec,
		0x13, 0xa9, 0xca, 0xd2, 0x9a, 0xfc, 0xa3, 0x9d, 0xf9, 0x56, 0x65, 0xd8, 0x9b, 0x95, 0x3d, 0x3a,
		0x66, 0x58, 0xab, 0xe3, 0xc5, 0xb1, 0x08, 0x03, 0xf2, 0xed, 0x5a, 0x2c, 0xf8, 0xfa, 0xd3, 0xbe,
		0x76, 0x72, 0xf5, 0xeb, 0x53, 0x59, 0x3b, 0xb9, 0x9a, 0xfe, 0xb5, 0x9c, 0xfc, 0xe7, 0x9f, 0xca,
		0xdd, 0xaf, 0xca, 0xa7, 0x7d, 0xad, 0x3a, 0x7b, 0xb5, 0x72, 0xf8, 0x69, 0x5f, 0x3b, 0xbc, 0xda,
		0x7b, 0xfd, 0xf9, 0xf3, 0xdb, 0xe7, 0xbe, 0x67, 0xef, 0x9f, 0x83, 0xbb, 0x22, 0xf9, 0xd7, 0xb9,
		0xe2, 0xd8, 0x1e, 0xab, 0x6b, 0x7c, 0x60, 0xdf, 0xa3, 0xff, 0xbc, 0xe6, 0xda, 0xa5, 0xbd, 0xff,
		0x62, 0xd8, 0x27, 0xd2, 0x15, 0xee, 0xde, 0xec, 0x10, 0xcc, 0xd5, 0x00, 0x73, 0xb2, 0x60, 0x2e,
		0xb1, 0x06, 0x4f, 0xbb, 0xae, 0x6b, 0xe7, 0x57, 0xff, 0x94, 0xdf, 0x54, 0xef, 0x4e, 0xf7, 0xfe,
		0x39, 0xba, 0x7b, 0xfc, 0xe2, 0xaf, 0x75, 0xbf, 0x56, 0x7e, 0x73, 0x74, 0x77, 0xba, 0xe1, 0x27,
		0xb5, 0xbb, 0xd3, 0x27, 0x3e, 0xe3, 0xf0, 0xee, 0xf5, 0xca, 0xaf, 0x4e, 0x5e, 0xaf, 0x6c, 0x7a,
		0x43, 0x75, 0xc3, 0x1b, 0x0e, 0x36, 0xbd, 0xe1, 0x60, 0xc3, 0x1b, 0x36, 0x7e, 0xa4, 0xca, 0x86,
		0x37, 0x1c, 0xde, 0xfd, 0x5a, 0xf9, 0xfd, 0xd7, 0xeb, 0x7f, 0xb5, 0x76, 0xb7, 0xf7, 0x6b, 0xd3,
		0xcf, 0x8e, 0xee, 0x7e, 0x9d, 0xee, 0xed, 0x01, 0xf8, 0xb7, 0x06, 0x7e, 0xa8, 0x2d, 0xbf, 0xda,
		0x66, 0xdf, 0x11, 0xbe, 0xca, 0xd6, 0xe7, 0xce, 0x06, 0x73, 0xb6, 0x76, 0x62, 0x32, 0x39, 0x8b,
		0x26, 0x69, 0x4e, 0x33, 0x18, 0x35, 0x30, 0x6a, 0x60, 0xd4, 0xc0, 0xa8, 0x29, 0x62, 0xd4, 0x76,
		0xec, 0xbc, 0xe9, 0xed, 0xdb, 0xd2, 0xea, 0xff, 0x9f, 0x3e, 0x67, 0x7f, 0x7e, 0x16, 0x95, 0xfc,
		0xe3, 0xc5, 0xdd, 0xee, 0x77, 0xc4, 0xab, 0x0e, 0xa3, 0x58, 0x53, 0xd5, 0xc0, 0xe7, 0x77, 0x8b,
		0xc3, 0xc7, 0xc2, 0xc7, 0xc2, 0xc7, 0xc2, 0xc7, 0xc2, 0xc7, 0xaa, 0xf1, 0xb1, 0xbb, 0x5a, 0xd3,
		0x91, 0xea, 0x76, 0xb7, 0x92, 0xa6, 0xb4, 0x6d, 0x7c, 0x3e, 0xf7, 0xf4, 0xb6, 0x64, 0xc8, 0x4e,
		0xf2, 0x67, 0x69, 0x3a, 0x0e, 0xa0, 0x44, 0xd2, 0xc6, 0xbb, 0xc0, 0x3b, 0xe7, 0xcd, 0x9e, 0x7c,
		0xab, 0xe4, 0x4f, 0xb7, 0x9e, 0x7c, 0xab, 0xad, 0x26, 0xbf, 0xd1, 0x6b, 0xaa, 0x44, 0x2d, 0x2d,
		0x8a, 0x80, 0xb6, 0x63, 0xd5, 0xd2, 0x88, 0x54, 0xca, 0x4e, 0x55, 0x68, 0xfc, 0xce, 0x18, 0xef,
		0xa1, 0xf1, 0x7b, 0x1a, 0xe3, 0xb9, 0x9c, 0x36, 0x7e, 0x27, 0x9a, 0x53, 0xb1, 0x62, 0x4c, 0x64,
		0x8e, 0x8e, 0x10, 0xbe, 0x90, 0xc6, 0x22, 0x8d, 0x45, 0x1a, 0x9b, 0xc6, 0x34, 0x96, 0x0a, 0x0e,
		0x17, 0x0b, 0xf8, 0x7d, 0x11, 0xc4, 0xfe, 0xf5, 0x4f, 0x3f, 0xb8, 0xd1, 0x46, 0xf4, 0xc6, 0xf9,
		0xc0, 0x40, 0xd7, 0xac, 0x4d, 0xac, 0x67, 0xb4, 0x2c, 0x20, 0x1b, 0x8c, 0x72, 0xc2, 0x29, 0x3b,
		0xac, 0x72, 0xc3, 0xab, 0x32, 0x98, 0x55, 0x06, 0xb7, 0x2a, 0x60, 0x97, 0x16, 0x7e, 0x89, 0x61,
		0x78, 0x21, 0x30, 0x72, 0x56, 0x71, 0x15, 0x23, 0x47, 0x1a, 0x9b, 0x32, 0x72, 0x94, 0xc6, 0x3f,
		0x16, 0x25, 0x4f, 0x59, 0x17, 0x0f, 0x82, 0x14, 0x56, 0x4a, 0xe6, 0x59, 0x71, 0xa4, 0xc0, 0x5c,
		0x52, 0x7a, 0xef, 0x85, 0x98, 0x8b, 0xf4, 0x16, 0x0b, 0x73, 0xd5, 0x68, 0x97, 0x16, 0x6f, 0xaa,
		0xcc, 0x7e, 0x7a, 0xf0, 0x69, 0x5f, 0xab, 0x5c, 0x31, 0x54, 0x5a, 0xce, 0xff, 0x77, 0xc5, 0xb9,
		0x9f, 0x2a, 0x2a, 0x2f, 0x17, 0xab, 0xf3, 0x95, 0xde, 0x6f, 0xdc, 0x56, 0x8e, 0x52, 0xc4, 0xc5,
		0xc6, 0xb2, 0xac, 0x74, 0xf7, 0x66, 0x87, 0x71, 0xb6, 0x06, 0x9c, 0x25, 0xc6, 0x59, 0xd4, 0x44,
		0x2b, 0xaa, 0x89, 0x2e, 0xbd, 0x2e, 0x4f, 0xd0, 0xeb, 0x78, 0x0a, 0x67, 0xe5, 0xab, 0x15, 0x94,
		0x4b, 0xfe, 0x84, 0x1f, 0xa2, 0xf3, 0x43, 0xd0, 0xfa, 0xd4, 0x6a, 0xfd, 0xee, 0x79, 0x69, 0x5c,
		0x80, 0xd8, 0x09, 0xd6, 0x96, 0xb8, 0x9c, 0x63, 0xb1, 0x8e, 0xfa, 0xb2, 0x8e, 0x47, 0xa7, 0xf5,
		0x25, 0xd2, 0xd3, 0xaf, 0x82, 0xea, 0x72, 0x0f, 0xfd, 0xfe, 0xdb, 0xbe, 0x0b, 0x05, 0x49, 0xf5,
		0x07, 0x9d, 0xc2, 0xdf, 0x91, 0xd4, 0xde, 0x78, 0x31, 0x43, 0xbd, 0xf0, 0x74, 0x99, 0x8c, 0x1f,
		0xa9, 0x56, 0x70, 0xa4, 0xfa, 0xe7, 0x85, 0x70, 0xa4, 0x2a, 0xcd, 0x07, 0xe1, 0x48, 0x75, 0xbd,
		0x60, 0x70, 0xa4, 0x4a, 0x01, 0x9f, 0x38, 0x52, 0x4d, 0x31, 0xac, 0x72, 0xc3, 0xab, 0x32, 0x98,
		0x55, 0x06, 0xb7, 0x2a, 0x60, 0x97, 0x27, 0x6b, 0xc4, 0x91, 0xaa, 0x94, 0xe8, 0x12, 0x47, 0xaa,
		0x32, 0x36, 0x0e, 0x47, 0xaa, 0xd4, 0x0b, 0xe3, 0x48, 0x95, 0x66, 0x3f, 0x71, 0xa4, 0x8a, 0x23,
		0xd5, 0x0c, 0xe1, 0x2c, 0x8e, 0x54, 0xa9, 0x71, 0x16, 0x87, 0x4b, 0x38, 0x52, 0xcd, 0xa9, 0x1f,
		0x82, 0xd6, 0xe3, 0x48, 0x15, 0x47, 0xaa, 0xaa, 0x3f, 0x3f, 0x8e, 0x54, 0xd7, 0xad, 0x93, 0xbe,
		0x23, 0x55, 0xca, 0xc3, 0xaf, 0x42, 0xca, 0x4e, 0x54, 0xbb, 0xc9, 0x77, 0xcd, 0xf1, 0x81, 0x6a,
		0xec, 0x85, 0x37, 0x22, 0x8e, 0xe8, 0x8f, 0x54, 0xe7, 0x0b, 0xe1, 0x9e, 0xea, 0xfa, 0x38, 0x09,
		0x87, 0xaa, 0x2f, 0xd8, 0x74, 0x1c, 0xaa, 0xe6, 0xd5, 0x3d, 0x93, 0x1f, 0xaa, 0x4e, 0xf1, 0x8a,
		0xef, 0x20, 0x75, 0xb6, 0x1e, 0xcf, 0xe1, 0x69, 0x19, 0x87, 0xa7, 0xe9, 0x85, 0x4f, 0x6e, 0x18,
		0x55, 0x06, 0xa7, 0xca, 0x60, 0x55, 0x05, 0xbc, 0xf2, 0xe4, 0x87, 0xd4, 0x87, 0xa7, 0xd4, 0xb0,
		0xbb, 0x58, 0x88, 0xb8, 0x7b, 0xca, 0x46, 0xe3, 0x26, 0xaf, 0x27, 0x55, 0x00, 0xc7, 0xec, 0xb0,
		0xac, 0x02, 0x9e, 0x95, 0xc1, 0xb4, 0x2a, 0xb8, 0x56, 0x0e, 0xdb, 0xca, 0xe1, 0x5b, 0x25, 0x8c,
		0xf3, 0xc0, 0x39, 0x13, 0xac, 0xb3, 0xc3, 0xfb, 0x62, 0xc1, 0xbe, 0x88, 0x62, 0x3f, 0xa0, 0xa7,
		0xd9, 0x7e, 0x8b, 0x14, 0xcb, 0x1f, 0x82, 0x59, 0x73, 0x79, 0x8a, 0x19, 0x95, 0x3b, 0x02, 0x95,
		0x0e, 0x41, 0xb9, 0x63, 0x50, 0xed, 0x20, 0x52, 0xe3, 0x28, 0x52, 0xe3, 0x30, 0xd2, 0xe0, 0x38,
		0x78, 0x1d, 0x08, 0xb3, 0x23, 0x59, 0x08, 0x98, 0xad, 0xd8, 0x72, 0xa3, 0xb5, 0x73, 0x16, 0x5f,
		0x6e, 0x8c, 0xef, 0x4f, 0x14, 0xac, 0xcd, 0x5a, 0x9c, 0xf9, 0xf8, 0x7f, 0x6a, 0x10, 0xae, 0xa0,
		0xbe, 0x78, 0x73, 0xa3, 0x0a, 0x1c, 0x2b, 0xfc, 0x0c, 0xaa, 0xea, 0x2f, 0x56, 0x3e, 0x48, 0x8e,
		0x8a, 0x3d, 0x1f, 0xff, 0xef, 0x4a, 0xe5, 0xfe, 0xab, 0x2c, 0xc2, 0x59, 0xf9, 0x34, 0x39, 0x2b,
		0x0e, 0x5d, 0x51, 0x04, 0x25, 0x2b, 0xdf, 0xbd, 0xc9, 0xb1, 0x1f, 0xa8, 0xc1, 0x0f, 0xa4, 0xcc,
		0x0f, 0xa0, 0x2c, 0x0f, 0xc5, 0xa8, 0xf0, 0x93, 0x4f, 0xf2, 0x93, 0xb0, 0x12, 0x14, 0xaf, 0xa6,
		0x26, 0x8a, 0x78, 0xb5, 0xdb, 0xdf, 0x93, 0xef, 0xfb, 0x31, 0xc6, 0x63, 0x45, 0xbf, 0xaf, 0x8e,
		0x5b, 0xf7, 0xfb, 0xa0, 0xd4, 0x89, 0x9d, 0x16, 0x28, 0x75, 0x50, 0xea, 0xa0, 0xd4, 0x95, 0x79,
		0xa9, 0xfc, 0x51, 0xea, 0x51, 0x1c, 0xfa, 0xc1, 0x8d, 0x4a, 0x3e, 0xfd, 0x18, 0x51, 0xc1, 0xf6,
		0x51, 0xc1, 0x48, 0x8b, 0xe3, 0x81, 0xc2, 0xc8, 0x60, 0xba, 0x3e, 0xa2, 0x03, 0x44, 0x07, 0x88,
		0x0e, 0x10, 0x1d, 0x20, 0x3a, 0xd8, 0x91, 0xe8, 0x60, 0xec, 0x07, 0xf1, 0xb1, 0xc2, 0xe0, 0xe0,
		0x50, 0xc1, 0xd2, 0xb6, 0x17, 0xdc, 0xe4, 0xf2, 0xb0, 0xbd, 0xed, 0x07, 0xca, 0xe0, 0x75, 0xf1,
		0x21, 0xde, 0x7b, 0x83, 0xb1, 0xe0, 0xf7, 0xad, 0x2b, 0x9f, 0xe3, 0x3c, 0x9c, 0xde, 0xa8, 0x6d,
		0xfa, 0x37, 0x7e, 0x72, 0xa5, 0x52, 0xf5, 0x07, 0x32, 0xc5, 0x8d, 0x17, 0xfb, 0xdf, 0x26, 0xb2,
		0xb9, 0xf6, 0x06, 0x91, 0x50, 0xf6, 0x69, 0xee, 0x14, 0x92, 0xfa, 0x6d, 0xef, 0x47, 0x7a, 0x54,
		0xb4, 0x72, 0x78, 0x08, 0x25, 0x4d, 0xab, 0x92, 0x82, 0x52, 0x47, 0xf2, 0xfc, 0x44, 0xa5, 0x8d,
		0x14, 0xdd, 0xf5, 0x58, 0x50, 0x30, 0xd3, 0xf5, 0x91, 0x3c, 0x23, 0x79, 0x46, 0xf2, 0x8c, 0xe4,
		0x19, 0xc9, 0xf3, 0x8e, 0x24, 0xcf, 0xfe, 0x48, 0xf3, 0xfa, 0xfd, 0x50, 0x44, 0x11, 0xca, 0xd5,
		0xf3, 0x91, 0x41, 0x3f, 0x28, 0x57, 0x57, 0xb7, 0xf7, 0x2b, 0x3a, 0x80, 0x3a, 0x45, 0xc6, 0x7a,
		0x75, 0x94, 0xdb, 0xe5, 0xa9, 0x2c, 0x1d, 0xd5, 0xe7, 0xb9, 0x82, 0xf5, 0x1a, 0x60, 0x3d, 0x6d,
		0xb0, 0x8e, 0xc2, 0x5a, 0x45, 0x85, 0xb5, 0x70, 0x74, 0xa8, 0x2b, 0xcf, 0xb1, 0xfa, 0xa3, 0x60,
		0x7c, 0xc7, 0xbe, 0xe7, 0x1d, 0x1a, 0xcd, 0xbc, 0x8c, 0xca, 0xe2, 0xe9, 0xae, 0xbc, 0xb2, 0x6e,
		0xfa, 0xba, 0x2d, 0xcf, 0xfa, 0xe2, 0xce, 0xfe, 0x5b, 0x62, 0xed, 0x3f, 0x56, 0x48, 0x59, 0x37,
		0x66, 0x67, 0x2a, 0x8b, 0xd9, 0x7f, 0x49, 0xc7, 0xdd, 0xf2, 0x9b, 0x17, 0x83, 0x69, 0x71, 0xde,
		0xf4, 0xe0, 0xbf, 0xe1, 0xc1, 0x7c, 0xfc, 0x84, 0x6e, 0x79, 0xa4, 0x0b, 0xa3, 0x5b, 0x1e, 0xba,
		0xe5, 0x65, 0x3c, 0x88, 0x61, 0x3f, 0x2e, 0x5a, 0x58, 0xeb, 0x40, 0x78, 0xd7, 0xa1, 0xb8, 0x56,
		0x31, 0x2c, 0xeb, 0x88, 0x77, 0x58, 0x56, 0x12, 0xa7, 0xbd, 0x7d, 0x3b, 0x8b, 0x8b, 0x4a, 0x7e,
		0x1f, 0xe1, 0xc0, 0x73, 0x42, 0x3b, 0xca, 0x69, 0xf9, 0x1b, 0xb5, 0x93, 0x7a, 0x80, 0xc8, 0x5a,
		0xbd, 0xe4, 0x0e, 0x0a, 0x2a, 0x08, 0x0a, 0x10, 0x14, 0x20, 0x28, 0x40, 0x50, 0xf0, 0x48, 0x90,
		0x68, 0xa1, 0x8b, 0xa2, 0xc4, 0x5d, 0x73, 0x08, 0xca, 0x1d, 0x83, 0x6a, 0x07, 0x91, 0x1a, 0x47,
		0x91, 0x1a, 0x87, 0x91, 0x06, 0xc7, 0xc1, 0xeb, 0x40, 0x98, 0x1d, 0x89, 0xba, 0x2c, 0x73, 0xc5,
		0xda, 0xd1, 0x42, 0x57, 0x85, 0x65, 0xa1, 0x85, 0xee, 0x63, 0x15, 0x40, 0xed, 0x0a, 0x5a, 0xe8,
		0x2a, 0xdb, 0x7f, 0xb4, 0xd0, 0x45, 0x0b, 0x5d, 0xb4, 0xd0, 0x85, 0x1f, 0x40, 0x0d, 0x23, 0x9a,
		0x83, 0xa2, 0x85, 0x6e, 0xb6, 0xfc, 0x24, 0xac, 0x04, 0x2d, 0x74, 0x53, 0x13, 0x45, 0xa0, 0x22,
		0x32, 0x7b, 0xf1, 0x18, 0x5a, 0xe8, 0x72, 0x2c, 0x0b, 0x4a, 0x1d, 0x94, 0x3a, 0x28, 0x75, 0x50,
		0xea, 0x5c, 0xbc, 0x2e, 0x5a, 0xe8, 0x22, 0x2a, 0xd8, 0x2e, 0x2a, 0x40, 0x0b, 0x5d, 0x44, 0x07,
		0x88, 0x0e, 0x10, 0x1d, 0x20, 0x3a, 0x40, 0x74, 0x20, 0xd1, 0xda, 0xd1, 0x42, 0x97, 0xfb, 0x7f,
		0x68, 0xa1, 0x8b, 0x16, 0xba, 0xeb, 0x4d, 0x12, 0x2d, 0x74, 0xd1, 0x42, 0x17, 0x4a, 0x9a, 0xca,
		0xc0, 0x40, 0xdd, 0xaa, 0xa0, 0xd4, 0xb7, 0x57, 0x5a, 0xb4, 0xd0, 0x45, 0xf2, 0x8c, 0xe4, 0x19,
		0xc9, 0x33, 0x92, 0x67, 0x24, 0xcf, 0x32, 0xad, 0x1d, 0x2d, 0x74, 0xd1, 0x42, 0x17, 0xbd, 0x16,
		0xd1, 0x42, 0x97, 0x2f, 0x19, 0x40, 0xb9, 0xdd, 0xec, 0xd3, 0xa0, 0x85, 0xee, 0xce, 0xf1, 0x3f,
		0x68, 0xa1, 0x0b, 0x58, 0x5f, 0x0b, 0xeb, 0x28, 0xac, 0x45, 0x0b, 0xdd, 0xbc, 0x3b, 0x3a, 0xa8,
		0x3f, 0x5a, 0xe8, 0xee, 0x18, 0x5f, 0x50, 0x40, 0x0b, 0xdd, 0x6c, 0x04, 0x6a, 0x68, 0xa1, 0xbb,
		0xa9, 0x85, 0x2e, 0x67, 0xfb, 0xb1, 0x42, 0xba, 0x3b, 0xe8, 0x76, 0x13, 0x51, 0xec, 0x4a, 0xc7,
		0xbc, 0x57, 0x19, 0x36, 0xdb, 0xe2, 0x5f, 0xe2, 0x27, 0xcb, 0x65, 0x8e, 0x62, 0xcb, 0x8f, 0xe2,
		0x7a, 0x1c, 0xf3, 0x74, 0xa1, 0x2a, 0xb6, 0xfd, 0x40, 0x1f, 0x88, 0x5b, 0x11, 0x70, 0x1d, 0x84,
		0x17, 0xdb, 0xde, 0x8f, 0xa5, 0x15, 0xcb, 0xc7, 0xd5, 0x6a, 0xed, 0xa8, 0x5a, 0xdd, 0x3f, 0x3a,
		0x38, 0xda, 0x3f, 0x39, 0x3c, 0x2c, 0xd7, 0xca, 0x0c, 0xe5, 0x01, 0x45, 0x2b, 0xec, 0x8b, 0x50,
		0xf4, 0xcf, 0x26, 0x7b, 0x1a, 0x8c, 0x07, 0x03, 0xce, 0x25, 0x2f, 0x23, 0x11, 0xb2, 0x9c, 0xf4,
		0x53, 0x9b, 0x04, 0xb3, 0x07, 0x4b, 0xbd, 0xe7, 0x2a, 0xb2, 0xb4, 0x04, 0x4d, 0xa9, 0xaf, 0xa2,
		0xf5, 0x52, 0x74, 0xbe, 0x83, 0xe6, 0xc9, 0x44, 0xa6, 0xc7, 0x65, 0x72, 0xe9, 0x35, 0x35, 0x42,
		0x1b, 0x4b, 0xa1, 0x6d, 0xd1, 0x18, 0x95, 0x7c, 0x95, 0x97, 0xfb, 0x44, 0xc9, 0xc6, 0x43, 0x6d,
		0x34, 0xe9, 0x33, 0x16, 0x02, 0x23, 0x49, 0x91, 0x71, 0xc8, 0x35, 0x0a, 0x79, 0xaa, 0x2b, 0x51,
		0x6d, 0x89, 0x3a, 0x7f, 0x93, 0x76, 0xf8, 0x26, 0xea, 0xe4, 0x4d, 0xd6, 0xb1, 0x9b, 0xb2, 0xb4,
		0x8d, 0xbc, 0x74, 0x8d, 0xba, 0x34, 0x8d, 0xad, 0xf4, 0x8c, 0xad, 0xb4, 0x8c, 0xa3, 0x74, 0x2c,
		0xdd, 0x6e, 0x90, 0xaa, 0xb3, 0x75, 0xb1, 0x2f, 0x7a, 0xde, 0x48, 0xbb, 0xf6, 0x06, 0x83, 0x2f,
		0x5e, 0xef, 0xef, 0x15, 0xa7, 0x47, 0xa7, 0xa4, 0xf7, 0xdd, 0xab, 0x7f, 0xff, 0x01, 0x88, 0x34,
		0x8a, 0xb6, 0x16, 0x98, 0xbc, 0xe6, 0x97, 0xa3, 0xb6, 0x97, 0xad, 0x86, 0x97, 0xab, 0x56, 0x97,
		0xbd, 0x26, 0x97, 0xbd, 0xf6, 0x96, 0xb3, 0xc6, 0x36, 0x5b, 0xc9, 0x37, 0x79, 0x6d, 0x2c, 0xe3,
		0x7c, 0x20, 0x8e, 0x79, 0x40, 0x8b, 0xf9, 0x3f, 0x4f, 0x49, 0x7b, 0x66, 0x03, 0x82, 0x92, 0x04,
		0x23, 0x2b, 0x59, 0xef, 0x1b, 0x2a, 0x5f, 0xaa, 0xca, 0x85, 0xc2, 0x73, 0xc2, 0x73, 0xc2, 0x73,
		0xc2, 0x73, 0xc2, 0x73, 0xc2, 0x73, 0x66, 0xd2, 0x73, 0x2e, 0x71, 0xa0, 0x3c, 0x2e, 0x93, 0x94,
		0x74, 0x9d, 0xa6, 0xed, 0xe2, 0xda, 0x1b, 0x0f, 0x62, 0xd2, 0xa2, 0xc9, 0x62, 0x72, 0x18, 0x4d,
		0xa3, 0x3d, 0x57, 0x88, 0x21, 0x10, 0x43, 0x20, 0x86, 0x40, 0x0c, 0x91, 0x99, 0x18, 0xe2, 0xcb,
		0x70, 0x38, 0x10, 0x5e, 0xc0, 0x11, 0x43, 0x94, 0xe1, 0xb0, 0xa7, 0xfe, 0x73, 0xcc, 0xed, 0xb0,
		0xc7, 0x70, 0xd8, 0x70, 0xd8, 0x70, 0xd8, 0x70, 0xd8, 0x70, 0xd8, 0x70, 0xd8, 0x70, 0xd8, 0xcf,
		0x75, 0xd8, 0xb7, 0xa3, 0x41, 0xa4, 0xf9, 0x81, 0x36, 0xee, 0x8f, 0x78, 0x1d, 0xf7, 0xf2, 0xc2,
		0x70, 0xe0, 0x70, 0xe0, 0x70, 0xe0, 0x70, 0xe0, 0x70, 0xe0, 0x70, 0xe0, 0x70, 0xe0, 0x4f, 0x70,
		0xe0, 0x7e, 0xd4, 0xf3, 0xc2, 0x3e, 0x83, 0xc3, 0x9e, 0x2d, 0x04, 0x07, 0x0d, 0x07, 0x0d, 0x07,
		0x0d, 0x07, 0x0d, 0x07, 0x0d, 0x07, 0x0d, 0x07, 0xfd, 0x67, 0x19, 0xf0, 0xd7, 0x7d, 0xa1, 0xe2,
		0x0b, 0xae, 0x09, 0xae, 0x09, 0xae, 0x29, 0xbb, 0xae, 0x09, 0x15, 0x5f, 0xf9, 0xf5, 0x96, 0x3f,
		0x62, 0xed, 0xeb, 0x70, 0xc4, 0xe1, 0x25, 0x67, 0x2b, 0xc1, 0x3b, 0xc2, 0x3b, 0xc2, 0x3b, 0xc2,
		0x3b, 0x66, 0xc6, 0x3b, 0xb2, 0x74, 0xd3, 0xe7, 0xe8, 0x9a, 0xcf, 0xd3, 0x1d, 0x9f, 0xa1, 0x8b,
		0x91, 0xa2, 0x6e, 0xf7, 0x9c, 0xed, 0x8f, 0xd9, 0xdb, 0x1c, 0xef, 0x50, 0x97, 0xfa, 0x2b, 0x8e,
		0xed, 0x51, 0xd1, 0x8c, 0x77, 0xc7, 0xba, 0xcb, 0x5f, 0x65, 0xb9, 0x75, 0x1b, 0x2f, 0xcc, 0xd5,
		0x00, 0x73, 0xb2, 0x60, 0x0e, 0x6d, 0xab, 0x77, 0xb6, 0x6b, 0xfb, 0xce, 0x03, 0x3f, 0xd4, 0x76,
		0x27, 0xbb, 0xad, 0x5f, 0x65, 0xb4, 0xf1, 0xe3, 0x55, 0x8e, 0x99, 0xb3, 0x91, 0x17, 0x7f, 0xd5,
		0x22, 0x31, 0x10, 0x49, 0x7f, 0x35, 0xed, 0x26, 0x1c, 0x8e, 0x19, 0x58, 0xb4, 0xb5, 0xab, 0x82,
		0x51, 0x03, 0xa3, 0x06, 0x46, 0x0d, 0x8c, 0x5a, 0x66, 0x18, 0xb5, 0x1d, 0x3b, 0x6f, 0x7a, 0xfb,
		0xb6, 0xb4, 0xfa, 0xff, 0x75, 0x48, 0x1d, 0xad, 0x7d, 0x75, 0x7e, 0x16, 0x95, 0xfc, 0x43, 0xf3,
		0xfb, 0x79, 0x3e, 0x8f, 0x1a, 0x0d, 0xa3, 0x58, 0x53, 0xd5, 0xc0, 0xe7, 0x77, 0x8b, 0xc3, 0xc7,
		0xc2, 0xc7, 0xc2, 0xc7, 0xc2, 0xc7, 0xc2, 0xc7, 0xaa, 0xf1, 0xb1, 0xbb, 0x5a, 0xd3, 0x81, 0xae,
		0xef, 0x4a, 0xbb, 0xbe, 0x53, 0x0d, 0xca, 0x52, 0xda, 0xeb, 0x9d, 0x60, 0xe4, 0x95, 0xc4, 0x16,
		0xef, 0xaf, 0x52, 0xa4, 0xe9, 0x54, 0x1a, 0xae, 0x5e, 0xb3, 0x8b, 0x52, 0x3b, 0xe9, 0x2b, 0xd3,
		0x65, 0x39, 0x5a, 0xbc, 0xbd, 0xce, 0x49, 0xd0, 0xb7, 0x62, 0x6f, 0x1e, 0x8c, 0xcb, 0xd1, 0xb3,
		0x85, 0xa7, 0x9f, 0x3d, 0x57, 0x92, 0x45, 0xc8, 0x1d, 0x41, 0x20, 0x3d, 0x03, 0xa1, 0xc8, 0x38,
		0xc8, 0x32, 0x0c, 0xaa, 0x8c, 0x82, 0x3c, 0x83, 0x20, 0xcf, 0x18, 0x28, 0x33, 0x84, 0x74, 0x79,
		0x18, 0xd9, 0x23, 0x03, 0x8a, 0x91, 0xf8, 0xbf, 0x63, 0x11, 0xf4, 0x84, 0xe6, 0xf7, 0x09, 0xa7,
		0x9b, 0x2c, 0x2d, 0x42, 0x33, 0xe3, 0x64, 0x9f, 0x6a, 0xc6, 0xc9, 0x3e, 0x66, 0x9c, 0xb0, 0x51,
		0x1a, 0x98, 0x71, 0xb2, 0x7b, 0x49, 0x1f, 0x19, 0x45, 0xb1, 0xd0, 0xf6, 0xb1, 0x1f, 0xc4, 0x07,
		0x15, 0x0a, 0x75, 0x9f, 0x61, 0x0b, 0x01, 0x21, 0x51, 0xb4, 0xbd, 0xe0, 0x86, 0xae, 0x78, 0x96,
		0x90, 0x10, 0x6a, 0xfb, 0xf4, 0xb3, 0x45, 0x8b, 0xef, 0xbd, 0x41, 0xd2, 0x7e, 0x90, 0x78, 0xfa,
		0x6d, 0xf1, 0x3c, 0x9c, 0xa6, 0x37, 0x4d, 0xff, 0xc6, 0xe7, 0x18, 0xb7, 0x5b, 0x34, 0xc5, 0x8d,
		0x17, 0xfb, 0xdf, 0x04, 0xf9, 0xb4, 0x59, 0xc2, 0x72, 0xc5, 0x62, 0xdb, 0xfb, 0xc1, 0xa7, 0x02,
		0xd5, 0xca, 0x49, 0xf5, 0xa4, 0x76, 0x54, 0x39, 0x39, 0x84, 0x2e, 0xa4, 0x86, 0x67, 0xa4, 0x79,
		0xea, 0x15, 0x38, 0xa6, 0x7c, 0x72, 0x4c, 0x52, 0x29, 0x07, 0x75, 0x1c, 0xd3, 0x2c, 0x67, 0xd8,
		0x21, 0x8e, 0xc9, 0x1f, 0x7d, 0xab, 0xca, 0x67, 0x98, 0x92, 0xa7, 0x82, 0x5f, 0x92, 0x92, 0xe6,
		0xfd, 0x1d, 0x6b, 0xb7, 0x5e, 0xdc, 0xfb, 0x0a, 0x9a, 0x49, 0x05, 0xcd, 0xb4, 0x90, 0x3e, 0xd8,
		0xa6, 0xa7, 0x3d, 0x50, 0x32, 0x69, 0xbd, 0x62, 0x12, 0xd2, 0x3d, 0x49, 0x81, 0x63, 0x8e, 0x6e,
		0x56, 0x39, 0x26, 0x02, 0xf0, 0x01, 0xd5, 0x94, 0x62, 0x70, 0xca, 0x06, 0xe3, 0x44, 0x38, 0x55,
		0x37, 0x8a, 0xfd, 0x20, 0x09, 0xbd, 0x17, 0xf7, 0xe7, 0x18, 0x3a, 0x2d, 0xaf, 0x2e, 0x8a, 0xea,
		0x41, 0x6e, 0xd8, 0xe3, 0x86, 0x3f, 0x2e, 0x18, 0x64, 0x87, 0x43, 0x76, 0x58, 0x54, 0x00, 0x8f,
		0xc4, 0xbc, 0xcb, 0x0e, 0x74, 0xc0, 0xf8, 0x56, 0xd5, 0xc8, 0xb5, 0x8c, 0xe3, 0xde, 0x31, 0xdb,
		0x7d, 0x63, 0xb6, 0x76, 0x0a, 0xa5, 0xc5, 0x9b, 0x2a, 0xb3, 0x9f, 0x1e, 0x7c, 0xda, 0xd7, 0x2a,
		0x57, 0x84, 0xd7, 0x6d, 0xaf, 0x28, 0xf7, 0x87, 0xf3, 0x7a, 0x2d, 0x63, 0x3f, 0x85, 0x8d, 0xdb,
		0x44, 0x79, 0xbf, 0xf4, 0x2a, 0xd7, 0x93, 0x36, 0x56, 0xc2, 0xb0, 0x19, 0x84, 0x69, 0x91, 0x88,
		0x95, 0x84, 0x81, 0xcb, 0xeb, 0x23, 0x22, 0x44, 0x44, 0x88, 0x88, 0x10, 0x11, 0x61, 0x46, 0x23,
		0xc2, 0x5d, 0xbb, 0x5d, 0x32, 0xec, 0x4d, 0x50, 0x39, 0x3a, 0xed, 0x8b, 0x6b, 0x3f, 0x10, 0xfd,
		0xe4, 0x1f, 0x8b, 0x17, 0x97, 0xc2, 0xdf, 0xdf, 0xfe, 0x60, 0xf1, 0x7a, 0xee, 0xe7, 0x48, 0x47,
		0x3d, 0x8e, 0x91, 0x56, 0x93, 0x55, 0xe0, 0x47, 0xe1, 0x47, 0xe1, 0x47, 0xe1, 0x47, 0x33, 0xea,
		0x47, 0x09, 0x31, 0x6c, 0x19, 0xc7, 0x08, 0x4b, 0xb1, 0x88, 0x0b, 0x23, 0xe7, 0xff, 0x63, 0x68,
		0xb7, 0xc7, 0x51, 0x28, 0xb9, 0x58, 0x8c, 0xa9, 0x60, 0x72, 0xb1, 0x1e, 0x77, 0xb1, 0xdc, 0xbd,
		0xa6, 0x73, 0x15, 0xcd, 0x11, 0x83, 0xc2, 0x43, 0x55, 0x61, 0x28, 0xa8, 0x5c, 0x51, 0x95, 0xda,
		0x01, 0x74, 0x25, 0x13, 0x6e, 0x89, 0xfe, 0xe9, 0x57, 0x39, 0x4f, 0x2e, 0x98, 0x28, 0xbc, 0xf9,
		0x4a, 0x48, 0x32, 0x90, 0x64, 0x20, 0xc9, 0x40, 0x92, 0x81, 0x24, 0x03, 0x49, 0x06, 0x92, 0x0c,
		0x04, 0x8e, 0x48, 0x32, 0xa0, 0x2b, 0x48, 0x32, 0xd2, 0xe5, 0x4e, 0x5b, 0x7e, 0x14, 0xd7, 0xe3,
		0x38, 0xa4, 0x75, 0xa9, 0x6d, 0x3f, 0xd0, 0x07, 0x62, 0x12, 0xd6, 0x10, 0xab, 0xec, 0xc4, 0xfa,
		0x97, 0x56, 0x2a, 0x1f, 0x57, 0xab, 0xb5, 0xa3, 0x6a, 0x75, 0xff, 0xe8, 0xe0, 0x68, 0xff, 0xe4,
		0xf0, 0xb0, 0x5c, 0x2b, 0x53, 0xba, 0x5b, 0x2b, 0xec, 0x8b, 0x50, 0xf4, 0xcf, 0x7e, 0x16, 0x4f,
		0x0b, 0xc1, 0x78, 0x30, 0xe0, 0x58, 0xea, 0x32, 0x12, 0x21, 0xa9, 0x4d, 0x66, 0x23, 0xbd, 0xfd,
		0x3a, 0x1c, 0x69, 0x03, 0xff, 0xd6, 0x67, 0xc8, 0x6f, 0xef, 0x97, 0x42, 0x82, 0x8b, 0x04, 0x17,
		0x09, 0x2e, 0x12, 0xdc, 0x8c, 0x26, 0xb8, 0x63, 0x3f, 0x88, 0x8f, 0x91, 0xe1, 0x22, 0xc3, 0x45,
		0xd6, 0x82, 0x0c, 0xf7, 0x4f, 0xaa, 0x52, 0x39, 0x3c, 0x84, 0xb2, 0x20, 0xc5, 0xa5, 0x4c, 0x71,
		0x33, 0x91, 0x68, 0x0c, 0x44, 0x70, 0x93, 0x54, 0x3f, 0x12, 0x67, 0x19, 0xb3, 0x75, 0x90, 0x62,
		0x20, 0xc5, 0x40, 0x8a, 0x81, 0x14, 0x23, 0xc3, 0x29, 0x46, 0xb9, 0xc6, 0x90, 0x63, 0xd4, 0x90,
		0x63, 0x20, 0xc7, 0x40, 0x8e, 0x91, 0xed, 0x1c, 0xa3, 0x76, 0x78, 0x78, 0x80, 0x2c, 0x03, 0x59,
		0x06, 0x69, 0x96, 0x41, 0xe4, 0x53, 0xc5, 0x8f, 0x38, 0xf4, 0xb4, 0x71, 0x10, 0xc5, 0xde, 0x97,
		0x01, 0xb1, 0x77, 0x0d, 0xc5, 0xb5, 0x08, 0xc5, 0x74, 0xb8, 0xdb, 0xa7, 0x5d, 0x19, 0xd7, 0x6e,
		0x9f, 0x37, 0x0a, 0x47, 0x27, 0xe5, 0xd3, 0x82, 0x11, 0xc4, 0x22, 0x0c, 0x44, 0x5c, 0xe8, 0x84,
		0xc3, 0x78, 0xd8, 0x1b, 0x0e, 0x3e, 0x07, 0x93, 0x9f, 0x1d, 0x57, 0xf6, 0xf7, 0xd7, 0xfc, 0xf0,
		0x4d, 0xe1, 0xbd, 0x08, 0x23, 0x7f, 0x18, 0x14, 0x6a, 0x85, 0xd7, 0x46, 0xe7, 0x5b, 0x6d, 0xaf,
		0xd0, 0x1d, 0x89, 0x9e, 0x7f, 0xed, 0xf7, 0x92, 0x5b, 0xc4, 0x6f, 0x39, 0x46, 0xbf, 0x33, 0x85,
		0xee, 0xeb, 0x42, 0xf8, 0x7b, 0x5d, 0x60, 0xc2, 0x2f, 0xee, 0x68, 0x7e, 0x6d, 0x54, 0x4f, 0xa6,
		0x2c, 0x40, 0x63, 0x70, 0x3e, 0x2b, 0x9a, 0x37, 0x9a, 0xa9, 0x0f, 0xc3, 0x2c, 0xcd, 0xf9, 0x4a,
		0xe0, 0x7d, 0xc0, 0xfb, 0x80, 0xf7, 0x01, 0xef, 0x93, 0x51, 0xde, 0xc7, 0x1f, 0x69, 0x73, 0x28,
		0xd3, 0xe2, 0xc9, 0xaa, 0x0c, 0x1d, 0x0f, 0x4e, 0x08, 0xd7, 0x98, 0x49, 0x6e, 0x67, 0x82, 0x6d,
		0xea, 0xa3, 0xff, 0xc7, 0x9b, 0xc3, 0x90, 0xd5, 0x33, 0xd1, 0x74, 0x7c, 0x9b, 0x75, 0xcf, 0xc5,
		0x30, 0xd2, 0x76, 0x2b, 0x9c, 0x0c, 0x13, 0x2d, 0xa2, 0x9c, 0x97, 0x51, 0xc7, 0xcf, 0x10, 0xa3,
		0xfe, 0x7a, 0x95, 0x62, 0xa4, 0xf7, 0x56, 0x54, 0xaa, 0x72, 0x58, 0x85, 0x52, 0x71, 0x29, 0xd5,
		0xab, 0xdd, 0x58, 0xe5, 0xea, 0x55, 0x86, 0x4d, 0x8f, 0xd1, 0xb1, 0xfb, 0x7d, 0x11, 0xc4, 0x7e,
		0xfc, 0x93, 0xb6, 0xcb, 0xd4, 0x4a, 0xec, 0xc5, 0xe1, 0xdf, 0x8d, 0xd9, 0x57, 0x3b, 0xf3, 0x22,
		0x46, 0xaa, 0x6d, 0x2e, 0x58, 0xa3, 0xe3, 0x76, 0x6c, 0xcb, 0xb1, 0x1a, 0x56, 0x8b, 0x8b, 0x69,
		0x4b, 0xf0, 0x32, 0x62, 0x8b, 0x68, 0x78, 0xa3, 0x9a, 0xc7, 0xc2, 0xad, 0x5f, 0x3a, 0x17, 0xc5,
		0x5d, 0xf4, 0xb5, 0xea, 0x44, 0xfa, 0xce, 0xd6, 0x21, 0x51, 0xa9, 0x12, 0x35, 0x1a, 0xed, 0x0e,
		0x44, 0x2a, 0x57, 0xa4, 0xef, 0x20, 0x52, 0xd9, 0x22, 0x35, 0x5d, 0x03, 0x32, 0x95, 0x2b, 0xd3,
		0x56, 0xc5, 0x81, 0x48, 0x25, 0x87, 0x53, 0x46, 0x1b, 0x12, 0x95, 0x2a, 0x51, 0xbb, 0xfb, 0x1e,
		0x4a, 0x2a, 0x57, 0xa4, 0x4e, 0x03, 0x12, 0x95, 0x2b, 0xd1, 0xcb, 0x26, 0xa7, 0x44, 0x59, 0x56,
		0xba, 0x42, 0xd5, 0x00, 0xab, 0x64, 0xb2, 0x51, 0x35, 0x10, 0x25, 0xe7, 0xba, 0x7c, 0x13, 0xb4,
		0x1e, 0xad, 0x87, 0x0a, 0x82, 0xb5, 0x0b, 0xa0, 0x82, 0x60, 0x8b, 0xbd, 0x47, 0x05, 0x41, 0x46,
		0xb0, 0x17, 0xc3, 0xb3, 0x9e, 0x07, 0x67, 0x18, 0x9e, 0x85, 0xe1, 0x59, 0x18, 0x9e, 0x85, 0x88,
		0x4f, 0x66, 0xc4, 0xc7, 0x3a, 0x37, 0x6b, 0xf3, 0xd2, 0x88, 0x03, 0x11, 0x07, 0x22, 0x0e, 0x44,
		0x1c, 0x98, 0xd1, 0x38, 0x10, 0x23, 0xb3, 0x76, 0x66, 0x64, 0x56, 0xaa, 0xa7, 0xa9, 0xd7, 0x83,
		0x60, 0x18, 0x27, 0x97, 0x80, 0x68, 0x86, 0xaa, 0x47, 0xbd, 0xaf, 0xe2, 0xd6, 0x1b, 0x2d, 0xd4,
		0x60, 0x24, 0x82, 0x5e, 0xe2, 0xe3, 0xb4, 0x40, 0xc4, 0xdf, 0x87, 0xe1, 0xdf, 0x9a, 0x1f, 0x44,
		0xb1, 0x17, 0xf4, 0x44, 0xe9, 0xf1, 0x0b, 0xd1, 0xca, 0x2b, 0xa5, 0xd1, 0x70, 0xe0, 0xf7, 0x7e,
		0x6a, 0xd7, 0xc3, 0xf0, 0xbb, 0x17, 0xf6, 0xfd, 0xe0, 0x66, 0xfa, 0x8a, 0x2f, 0xa2, 0xd9, 0x8f,
		0x4a, 0xe1, 0x78, 0x20, 0xa2, 0xe4, 0xcf, 0xd2, 0x44, 0x79, 0x4a, 0xd3, 0xc5, 0x8a, 0x14, 0x51,
		0x4f, 0x1c, 0x8e, 0x7b, 0x71, 0x30, 0xb3, 0x57, 0x6b, 0xf1, 0xc5, 0xcc, 0xe9, 0x87, 0x36, 0x66,
		0x9f, 0xd9, 0x7d, 0xf4, 0xef, 0xe8, 0xf1, 0x0b, 0x6e, 0x27, 0xf9, 0xe4, 0xe7, 0x8b, 0xef, 0x34,
		0x7d, 0xc1, 0x17, 0xd1, 0xec, 0x27, 0xae, 0x3d, 0xf9, 0x4e, 0xc9, 0x9f, 0xae, 0x31, 0xfa, 0x56,
		0x75, 0x67, 0x41, 0xc2, 0xab, 0x74, 0x6a, 0xa9, 0x44, 0x0d, 0x2d, 0xfa, 0xbd, 0xdb, 0xd1, 0xb7,
		0xaa, 0x74, 0xcd, 0xbc, 0xcf, 0xb6, 0xa7, 0xcf, 0x97, 0x6c, 0x53, 0x73, 0x60, 0x95, 0xfc, 0x58,
		0xaa, 0xd8, 0x90, 0x32, 0x26, 0xe4, 0x8a, 0x05, 0xa9, 0x63, 0x40, 0xb6, 0xd8, 0x8f, 0x2d, 0xe6,
		0x63, 0x8c, 0xf5, 0xd2, 0xed, 0x01, 0x9b, 0x3e, 0x4d, 0x17, 0xe8, 0x62, 0x6f, 0x6e, 0xaf, 0xc4,
		0x39, 0x30, 0x99, 0x8b, 0x23, 0x04, 0x33, 0x24, 0xbc, 0x48, 0x78, 0x91, 0xf0, 0xa6, 0x3f, 0xe1,
		0xa5, 0x02, 0xc7, 0x25, 0x90, 0xec, 0x33, 0x28, 0xf2, 0x3d, 0x54, 0xf6, 0xa9, 0x1b, 0x46, 0x10,
		0x33, 0x84, 0x6c, 0xc0, 0xc9, 0x09, 0xa0, 0xaa, 0x80, 0x94, 0x1b, 0x50, 0x95, 0x01, 0xab, 0x32,
		0x80, 0x55, 0x08, 0xb4, 0xb4, 0x80, 0x4b, 0x0c, 0xbc, 0x0b, 0xb9, 0x91, 0x33, 0x8e, 0xab, 0x39,
		0x31, 0xae, 0x52, 0xd1, 0x08, 0xb6, 0x61, 0x35, 0x75, 0xdc, 0xa1, 0x92, 0x2d, 0xd5, 0x66, 0xd7,
		0x71, 0x2f, 0x4d, 0x5b, 0xaf, 0x37, 0x2e, 0xea, 0x67, 0x2d, 0xdd, 0xad, 0x37, 0xdb, 0x86, 0xe9,
		0x76, 0x6c, 0xeb, 0xc2, 0x38, 0x33, 0x1c, 0xbd, 0x89, 0x32, 0x56, 0x3a, 0x59, 0x37, 0xea, 0xa6,
		0x69, 0x39, 0xee, 0xb9, 0x5d, 0x7f, 0xd7, 0xd6, 0x4d, 0x07, 0xa2, 0x26, 0x14, 0x35, 0x1f, 0x78,
		0xa8, 0x04, 0x11, 0x35, 0x52, 0x4f, 0x31, 0xa8, 0x28, 0xd0, 0xf8, 0x94, 0xee, 0x81, 0x32, 0xb0,
		0xc1, 0x16, 0xcc, 0xb7, 0x60, 0xf2, 0xef, 0x0b, 0xab, 0xeb, 0xc0, 0x1e, 0xd2, 0xb4, 0x19, 0x97,
		0xe6, 0x5f, 0xa6, 0xf5, 0x6f, 0x13, 0x7b, 0xa0, 0x66, 0x0f, 0x4c, 0x1d, 0xf6, 0x90, 0xa6, 0xbd,
		0x80, 0x39, 0x28, 0xdb, 0x82, 0x09, 0x1c, 0x41, 0xee, 0x6a, 0xe4, 0xee, 0x76, 0x6c, 0xbd, 0xa1,
		0x37, 0x75, 0xb3, 0xa1, 0xbb, 0xef, 0x0d, 0xab, 0x55, 0x77, 0x0c, 0x0b, 0x46, 0xa0, 0x6a, 0x33,
		0x96, 0x5f, 0x38, 0xb7, 0x6c, 0xd7, 0xb1, 0xba, 0xd8, 0x0b, 0xfe, 0xbd, 0x30, 0x75, 0xe0, 0x91,
		0x1a, 0xb1, 0xc3, 0x02, 0xd2, 0xb1, 0x15, 0x1d, 0xcb, 0x86, 0x09, 0xa8, 0x90, 0xfb, 0xbd, 0x37,
		0x6e, 0x5c, 0x3a, 0xd6, 0xf9, 0x39, 0x36, 0x41, 0xc5, 0x26, 0xcc, 0x3a, 0xd7, 0x41, 0xf6, 0xec,
		0xb2, 0xef, 0xda, 0x8d, 0x69, 0x28, 0x64, 0x74, 0x27, 0xc1, 0x28, 0x72, 0x62, 0x55, 0x9b, 0x60,
		0x5b, 0x97, 0x8e, 0xee, 0x9e, 0xd7, 0x8d, 0x96, 0x92, 0x3d, 0x60, 0x5d, 0xf1, 0x0a, 0x27, 0x50,
		0xa4, 0xfc, 0x8a, 0x62, 0xf2, 0x37, 0xc7, 0x42, 0x67, 0x67, 0xb5, 0xf2, 0x29, 0x6b, 0xb5, 0x64,
		0x6e, 0x7e, 0x65, 0x0e, 0xf5, 0x66, 0xe1, 0xa5, 0x20, 0x5f, 0x5a, 0xf9, 0x2a, 0x26, 0x61, 0x73,
		0x2a, 0x74, 0xa5, 0x54, 0x53, 0xfe, 0x64, 0xce, 0x4a, 0xaa, 0xe6, 0x52, 0xbc, 0xd0, 0x68, 0x66,
		0x9e, 0x88, 0x95, 0x24, 0xcd, 0xa1, 0x7c, 0xd5, 0x91, 0xa1, 0x79, 0x14, 0x36, 0x37, 0xe9, 0x99,
		0x3f, 0x19, 0x2b, 0x24, 0x37, 0xf3, 0x29, 0x6c, 0x35, 0x24, 0xe6, 0xee, 0xcb, 0x5a, 0x6f, 0x5c,
		0x58, 0xa8, 0x2d, 0xe7, 0x17, 0xb9, 0x39, 0x93, 0x3a, 0xf8, 0x78, 0x98, 0x6a, 0xaa, 0xf5, 0x26,
		0x27, 0x72, 0xb5, 0xf5, 0x4e, 0xeb, 0x23, 0x80, 0x50, 0x95, 0xe0, 0x4d, 0xcb, 0x04, 0x16, 0xc2,
		0x66, 0xd3, 0xaf, 0x3a, 0x39, 0x10, 0xed, 0x07, 0xc7, 0x05, 0x24, 0xaa, 0x82, 0xc4, 0x87, 0xc2,
		0x6f, 0xd7, 0x5b, 0xe7, 0x96, 0xdd, 0xd6, 0x9b, 0xee, 0xbf, 0x2e, 0x75, 0xfb, 0x23, 0x2a, 0x68,
		0xf8, 0x77, 0xe0, 0xb2, 0xe5, 0x18, 0x9d, 0x96, 0xee, 0x1a, 0xa6, 0x73, 0xee, 0x76, 0xeb, 0x8e,
		0xd1, 0x3d, 0xff, 0x88, 0xdd, 0x50, 0xb4, 0x1b, 0xa6, 0xe5, 0xea, 0xb6, 0x6d, 0xd9, 0x10, 0xbd,
		0x0a, 0xd1, 0x77, 0x2f, 0xcf, 0x5c, 0x27, 0x61, 0x64, 0x74, 0xd3, 0x81, 0xfe, 0xab, 0xda, 0x84,
		0xc6, 0x45, 0x02, 0x46, 0x08, 0x97, 0x11, 0xd3, 0x65, 0x2d, 0xac, 0xc8, 0x9f, 0xa4, 0xd3, 0x10,
		0x3e, 0xe4, 0x4e, 0xea, 0xfc, 0x61, 0x42, 0x1e, 0x45, 0xac, 0x2c, 0x1c, 0xc8, 0xa7, 0xb0, 0xd9,
		0xdd, 0x7e, 0xae, 0xc4, 0xfc, 0xaf, 0x4b, 0xbd, 0xeb, 0x80, 0xec, 0x50, 0x2b, 0x7e, 0x85, 0xe9,
		0x1d, 0x42, 0xdb, 0x5d, 0xb1, 0x61, 0x38, 0x7f, 0xf9, 0x42, 0xee, 0xd4, 0xed, 0x7a, 0xdb, 0xed,
		0xd8, 0xd6, 0x59, 0x4b, 0x6f, 0xbb, 0x67, 0xf5, 0xa6, 0xdb, 0xd2, 0xcd, 0x77, 0xce, 0x05, 0x64,
		0x4c, 0x25, 0x63, 0x78, 0xa2, 0x7c, 0xe9, 0xb7, 0x02, 0x3d, 0x4f, 0xa5, 0xec, 0xdb, 0x46, 0xb7,
		0x6b, 0x98, 0xef, 0x26, 0x68, 0xee, 0x5a, 0x1d, 0xb4, 0xb0, 0x51, 0xb1, 0x07, 0x1d, 0xcb, 0x30,
		0x1d, 0xdd, 0x76, 0x0d, 0xb3, 0x69, 0x34, 0xea, 0x8e, 0xde, 0x9d, 0x38, 0x54, 0xc4, 0x64, 0x70,
		0x65, 0xd9, 0x33, 0xe9, 0xbc, 0xc9, 0x5a, 0xb1, 0xe9, 0xe6, 0x40, 0xdc, 0x17, 0x96, 0x73, 0x69,
		0x1b, 0x5d, 0xb7, 0x7e, 0xe9, 0x5c, 0xa0, 0x1e, 0x99, 0x4e, 0xbe, 0x93, 0x20, 0xac, 0xdb, 0x31,
		0x20, 0x5b, 0x02, 0xd9, 0x22, 0xb9, 0xc8, 0x0f, 0x64, 0xe4, 0x38, 0xa8, 0x55, 0x06, 0x25, 0x90,
		0xb9, 0xdb, 0xd4, 0x1b, 0x56, 0xbb, 0x63, 0xeb, 0xdd, 0x2e, 0x34, 0x5e, 0x89, 0xf4, 0xed, 0x8f,
		0x49, 0xa8, 0x0d, 0xe9, 0xf3, 0x4b, 0xdf, 0xd4, 0xf5, 0x66, 0x02, 0xf6, 0xba, 0xe9, 0x4c, 0xa2,
		0x70, 0x90, 0x18, 0x8a, 0xe4, 0x6f, 0xd9, 0xc6, 0xff, 0xaa, 0x12, 0x3f, 0xc8, 0x8b, 0xac, 0x47,
		0xc9, 0x0a, 0x5d, 0x58, 0xbe, 0xa4, 0xac, 0xca, 0x55, 0xe5, 0x48, 0xca, 0x4a, 0x5d, 0x52, 0x1e,
		0xe5, 0xac, 0xc0, 0xf5, 0xec, 0xbe, 0x98, 0x6d, 0xbd, 0x69, 0xd8, 0x7a, 0x03, 0x75, 0x3a, 0x8a,
		0xc4, 0x8e, 0xf1, 0x1e, 0xcc, 0x02, 0x37, 0x75, 0xe7, 0xdf, 0x96, 0xfd, 0x17, 0x64, 0xce, 0x28,
		0x73, 0xc7, 0xea, 0x42, 0xd1, 0x55, 0x08, 0x5d, 0x9d, 0xb2, 0x23, 0x57, 0xcb, 0x7a, 0x40, 0x80,
		0xde, 0xa6, 0xbb, 0xe2, 0x81, 0x72, 0x24, 0x5b, 0x7e, 0x4f, 0x93, 0x33, 0xe1, 0x42, 0x79, 0xe5,
		0xcb, 0xd7, 0xba, 0x74, 0x74, 0xdb, 0xad, 0x37, 0xdf, 0xeb, 0xb6, 0x63, 0x74, 0xf5, 0xb6, 0x6e,
		0x22, 0x1d, 0x4b, 0xc1, 0x16, 0x34, 0x2d, 0xbd, 0xeb, 0x9a, 0x96, 0x33, 0x6b, 0x94, 0xd7, 0xb0,
		0xda, 0x6d, 0x9c, 0x3a, 0x28, 0xdb, 0x0d, 0xd3, 0xb2, 0xdb, 0xf5, 0x16, 0x22, 0x59, 0xe0, 0x6a,
		0x96, 0x8d, 0x3a, 0xa7, 0x52, 0xe7, 0x36, 0xde, 0xdc, 0x88, 0xb9, 0xab, 0xb7, 0xf4, 0x46, 0x72,
		0xd2, 0x83, 0x80, 0x41, 0xa9, 0xf8, 0xd1, 0x7c, 0x14, 0x26, 0x9c, 0x39, 0x1d, 0xda, 0x7d, 0x19,
		0x3b, 0x46, 0x5b, 0xef, 0x3a, 0xf5, 0x76, 0x07, 0xf8, 0xa8, 0x48, 0xee, 0x00, 0x46, 0x18, 0x6d,
		0x76, 0x94, 0x27, 0x4f, 0xc2, 0x45, 0x33, 0x52, 0xf5, 0xd2, 0x07, 0x3a, 0xc2, 0x80, 0xb3, 0xa6,
		0x42, 0xf9, 0x10, 0xb1, 0xab, 0x7f, 0x68, 0xe8, 0x7a, 0x53, 0x6f, 0x02, 0x21, 0x15, 0xca, 0xfe,
		0xdc, 0xae, 0xbf, 0x4b, 0x18, 0x24, 0x5b, 0xaf, 0x77, 0xbb, 0x7a, 0xfb, 0xac, 0xf5, 0xd1, 0x35,
		0x4c, 0xd7, 0xb1, 0xeb, 0x66, 0xd7, 0x40, 0x3d, 0x09, 0xfb, 0x7e, 0x28, 0x95, 0x3d, 0x5c, 0xd6,
		0x4e, 0xe0, 0x69, 0x5a, 0x6c, 0x3a, 0x6f, 0x72, 0x57, 0x22, 0xe3, 0x57, 0xbb, 0x61, 0xab, 0xb4,
		0xdf, 0x83, 0x58, 0x13, 0x8b, 0xe2, 0x47, 0x1c, 0x7a, 0xda, 0x38, 0x88, 0x62, 0xef, 0xcb, 0x60,
		0xa2, 0x19, 0xf4, 0xfa, 0x58, 0x0c, 0xc5, 0xb5, 0x08, 0x45, 0xd0, 0x13, 0x6c, 0x41, 0x0c, 0x9f,
		0x91, 0xdd, 0x53, 0xb8, 0xe7, 0x8d, 0xc2, 0xd1, 0x49, 0xe5, 0xb4, 0x60, 0x04, 0xb1, 0x08, 0x03,
		0x11, 0x17, 0x1a, 0xc3, 0x20, 0x0e, 0x87, 0x83, 0x42, 0x5b, 0x44, 0x91, 0x77, 0x23, 0x0a, 0x9d,
		0x70, 0x18, 0x0f, 0x7b, 0xc3, 0x01, 0x63, 0x00, 0x59, 0xec, 0x0e, 0xc7, 0x61, 0x8f, 0x67, 0x9b,
		0x1f, 0xac, 0xfb, 0x97, 0xf8, 0xf9, 0x7d, 0x18, 0xf6, 0x27, 0x82, 0xb9, 0xdf, 0x7d, 0xe6, 0xc0,
		0xf9, 0xc2, 0x8b, 0xea, 0xe1, 0xcd, 0xf8, 0x56, 0x04, 0x71, 0xf1, 0xb4, 0x10, 0x87, 0x63, 0xc1,
		0xfc, 0x01, 0x96, 0x56, 0x7f, 0x8e, 0x7a, 0xec, 0x18, 0x22, 0xd3, 0xaf, 0x42, 0x8b, 0xf9, 0x74,
		0x9f, 0x9f, 0x10, 0xeb, 0x8b, 0xf1, 0xcf, 0x11, 0xbd, 0xd9, 0x2f, 0xc0, 0x2f, 0x59, 0x8d, 0xd8,
		0x73, 0xfd, 0xe5, 0x07, 0x13, 0x3c, 0xd9, 0x27, 0x5e, 0xa6, 0x31, 0x0c, 0xae, 0xfd, 0x1b, 0x86,
		0x85, 0x3a, 0xa1, 0xb8, 0xf6, 0x7f, 0xf0, 0x78, 0xe0, 0xf9, 0x3e, 0x0d, 0x7b, 0xda, 0xe8, 0xef,
		0x58, 0xbb, 0xf5, 0xe2, 0xde, 0x57, 0x06, 0x38, 0xe6, 0x76, 0x3f, 0xcb, 0x6e, 0x67, 0x34, 0x15,
		0x2f, 0x0f, 0xe4, 0x2b, 0xf3, 0x35, 0x0f, 0x7c, 0xcc, 0x83, 0xdd, 0x45, 0x1c, 0xfc, 0x5b, 0xb9,
		0x39, 0x1c, 0xf8, 0xf8, 0xc0, 0xf6, 0xfc, 0xbe, 0x08, 0x62, 0x3f, 0xfe, 0x19, 0x8a, 0x6b, 0x0e,
		0xd3, 0x9b, 0xc1, 0x65, 0xf9, 0x90, 0x61, 0x2d, 0x63, 0xf6, 0xd5, 0xce, 0xbc, 0x88, 0xd1, 0xd8,
		0x17, 0xa9, 0xed, 0xc7, 0x0e, 0x17, 0x29, 0xab, 0x82, 0x8c, 0x4d, 0xc7, 0x98, 0x70, 0x70, 0x31,
		0xf2, 0x44, 0xab, 0x37, 0x2e, 0x2c, 0xc8, 0x53, 0xae, 0x3c, 0xa7, 0x27, 0x60, 0x90, 0xaa, 0x44,
		0xa9, 0x3e, 0x98, 0x92, 0x02, 0xc9, 0x92, 0x48, 0x36, 0x19, 0xaa, 0x00, 0xd9, 0xca, 0x93, 0xed,
		0x83, 0x86, 0xbd, 0x10, 0xac, 0x44, 0xc1, 0xce, 0x9a, 0xb0, 0x40, 0xa6, 0xf2, 0x64, 0x3a, 0xbf,
		0x4e, 0x09, 0x99, 0x4a, 0x94, 0xe9, 0x9a, 0x4b, 0x27, 0x90, 0xaf, 0x74, 0xf9, 0x76, 0xad, 0x96,
		0xd1, 0x30, 0x1c, 0x34, 0x61, 0x92, 0x9d, 0xcc, 0xce, 0x4b, 0xba, 0x20, 0x54, 0x02, 0xa1, 0x22,
		0x96, 0xa5, 0x10, 0xed, 0xa2, 0xae, 0x00, 0x82, 0x95, 0x28, 0x58, 0xbb, 0xde, 0xd0, 0x13, 0xb0,
		0x45, 0x89, 0x46, 0xba, 0xbe, 0x07, 0x4a, 0x34, 0xb2, 0x65, 0x56, 0x28, 0xd1, 0x58, 0xbb, 0x2e,
		0x4a, 0x34, 0x50, 0xa2, 0xc1, 0xb6, 0x4a, 0x66, 0x4b, 0x34, 0x5e, 0x65, 0xc8, 0x83, 0x14, 0xeb,
		0x41, 0x30, 0x8c, 0xbd, 0xd8, 0x1f, 0x06, 0xa4, 0x70, 0x52, 0x8c, 0x7a, 0x5f, 0xc5, 0xad, 0x37,
		0xf2, 0xe2, 0xaf, 0x13, 0xbb, 0x29, 0x0d, 0x47, 0x22, 0xe8, 0x25, 0x65, 0x13, 0x5a, 0x20, 0xe2,
		0xef, 0xc3, 0xf0, 0x6f, 0xcd, 0x9f, 0x78, 0xaf, 0xa0, 0x27, 0x4a, 0x8f, 0x5f, 0x88, 0x56, 0x5e,
		0x29, 0x8d, 0x86, 0x03, 0xbf, 0xf7, 0x53, 0xbb, 0x1e, 0x86, 0xdf, 0xbd, 0xb0, 0xef, 0x07, 0x37,
		0xd3, 0x57, 0x7c, 0x11, 0xcd, 0x7e, 0x54, 0x0a, 0xc7, 0x03, 0x11, 0x25, 0x7f, 0x96, 0xfc, 0xd1,
		0xb7, 0x6a, 0xc9, 0xef, 0xdd, 0x4e, 0xfe, 0x33, 0x5d, 0x93, 0x10, 0xb3, 0x8a, 0x51, 0x1c, 0x8e,
		0x7b, 0x71, 0x30, 0xf3, 0x1f, 0xd6, 0xe2, 0x7b, 0x9a, 0xd3, 0xef, 0x60, 0xcc, 0xbe, 0x82, 0xfb,
		0xe8, 0xdf, 0xd1, 0xe3, 0x17, 0xdc, 0x4e, 0xf2, 0x45, 0xce, 0x17, 0x5f, 0x71, 0xfa, 0x82, 0x2f,
		0xa2, 0xd9, 0x4f, 0x5c, 0x7b, 0xf2, 0x15, 0x93, 0x3f, 0x5d, 0x63, 0xf4, 0xad, 0xea, 0x1a, 0xc9,
		0x57, 0x74, 0x67, 0xd5, 0x28, 0xaf, 0xb2, 0xa1, 0xdb, 0x04, 0x7a, 0x5d, 0x8c, 0x62, 0x2f, 0xa6,
		0xf3, 0x8e, 0x8b, 0xd8, 0x60, 0xba, 0x0c, 0x91, 0x5d, 0xce, 0xcf, 0xe2, 0x89, 0x1e, 0xbf, 0x28,
		0x59, 0xaa, 0x10, 0x2d, 0xc0, 0x50, 0xaa, 0xc4, 0x5d, 0xa2, 0xc4, 0x15, 0x76, 0xb1, 0x97, 0x24,
		0xb1, 0xc7, 0x54, 0x0a, 0x4a, 0x90, 0xb2, 0xe5, 0x95, 0x9b, 0x7e, 0x48, 0x6b, 0x3a, 0xbd, 0x61,
		0x9f, 0xb1, 0xd6, 0x33, 0x59, 0x0d, 0xb5, 0x9e, 0x69, 0x03, 0x50, 0x55, 0x40, 0xaa, 0x2a, 0x8f,
		0x45, 0xad, 0x27, 0x6a, 0x3d, 0x9f, 0x28, 0x37, 0xd4, 0x7a, 0x4a, 0x5c, 0x4b, 0x6d, 0xad, 0x27,
		0xe3, 0x05, 0xfc, 0xfc, 0xd6, 0x7a, 0xba, 0xf5, 0x66, 0xdb, 0x30, 0xdd, 0x8e, 0x6d, 0x5d, 0x18,
		0x67, 0x86, 0x83, 0x73, 0x1d, 0x4a, 0x59, 0x37, 0xea, 0xa6, 0x69, 0x39, 0x8b, 0x9b, 0xd0, 0x10,
		0x35, 0xa1, 0xa8, 0xd1, 0xbd, 0x23, 0x97, 0xa0, 0xa2, 0x40, 0xe3, 0x53, 0xba, 0x07, 0xca, 0xc0,
		0x06, 0x5b, 0x30, 0xdf, 0x82, 0xc9, 0xbf, 0x2f, 0xac, 0xae, 0x03, 0x7b, 0x48, 0xd3, 0x66, 0x5c,
		0x9a, 0x7f, 0x99, 0xd6, 0xbf, 0xd1, 0xd2, 0x5f, 0xd1, 0x1e, 0x98, 0x3a, 0xec, 0x21, 0x4d, 0x7b,
		0x01, 0x73, 0x50, 0xb6, 0x05, 0x18, 0x8e, 0xa7, 0x4e, 0xee, 0x6e, 0xc7, 0xd6, 0x1b, 0x7a, 0x53,
		0x37, 0x1b, 0xba, 0xfb, 0xde, 0xb0, 0x5a, 0x18, 0x2e, 0xaf, 0x72, 0x33, 0x96, 0x5f, 0x38, 0xb7,
		0x6c, 0xd7, 0xb1, 0xba, 0xd8, 0x0b, 0xfe, 0xbd, 0x30, 0x75, 0xe0, 0x91, 0x1a, 0xb1, 0xc3, 0x02,
		0xd2, 0xb1, 0x15, 0x1d, 0xcb, 0x86, 0x09, 0xa8, 0x90, 0xfb, 0xbd, 0x37, 0x6e, 0x5c, 0x3a, 0xd6,
		0xf9, 0x39, 0x36, 0x41, 0xc5, 0x26, 0x58, 0x8e, 0xd5, 0xb0, 0x5a, 0x90, 0x3d, 0xbf, 0xec, 0xbb,
		0x76, 0x63, 0x1a, 0x0a, 0x19, 0xdd, 0x49, 0x30, 0x8a, 0x9c, 0x58, 0xd5, 0x26, 0x4c, 0x27, 0xc4,
		0x9d, 0xd7, 0x8d, 0x96, 0x92, 0x3d, 0x40, 0xb7, 0xe3, 0x6c, 0xe9, 0x54, 0x9a, 0xc9, 0xdf, 0x1c,
		0x0b, 0x9d, 0x9d, 0xd5, 0xca, 0xa7, 0xac, 0xd5, 0x92, 0xb9, 0xf9, 0x95, 0x39, 0xd4, 0x9b, 0x85,
		0x97, 0x82, 0x7c, 0x69, 0xe5, 0xab, 0x98, 0x84, 0xcd, 0xa9, 0xd0, 0x95, 0x52, 0x4d, 0xf9, 0x93,
		0x39, 0x2b, 0xa9, 0x9a, 0x4b, 0xf1, 0x42, 0xa3, 0x99, 0x79, 0x22, 0x56, 0x92, 0x34, 0x87, 0xf2,
		0x55, 0x47, 0x86, 0xe6, 0x51, 0xd8, 0xdc, 0xa4, 0x67, 0xfe, 0x64, 0xac, 0x90, 0xdc, 0xcc, 0xa7,
		0xb0, 0xd5, 0x90, 0x98, 0x39, 0x69, 0x3f, 0x8c, 0xda, 0x72, 0x76, 0x91, 0x63, 0x60, 0x2e, 0x4c,
		0x35, 0x13, 0x7a, 0x93, 0xa7, 0x0e, 0xec, 0x00, 0x42, 0x55, 0x82, 0x37, 0x2d, 0x13, 0x58, 0x08,
		0x9b, 0x4d, 0xbf, 0xea, 0xe4, 0x6d, 0x74, 0x02, 0x20, 0x51, 0xa5, 0xf0, 0xdb, 0xf5, 0xd6, 0xb9,
		0x65, 0xb7, 0xf5, 0xa6, 0xfb, 0xaf, 0x4b, 0xdd, 0xfe, 0x88, 0x0a, 0x1a, 0xfe, 0x1d, 0xb8, 0x6c,
		0x39, 0x46, 0xa7, 0xa5, 0xbb, 0x86, 0xe9, 0x9c, 0xbb, 0xdd, 0xba, 0x63, 0x74, 0xcf, 0x3f, 0x62,
		0x37, 0x14, 0xed, 0x86, 0x69, 0xb9, 0xba, 0x6d, 0x5b, 0x36, 0x44, 0xaf, 0x42, 0xf4, 0xdd, 0xcb,
		0x33, 0xd7, 0x49, 0x18, 0x19, 0xdd, 0x74, 0xa0, 0xff, 0xaa, 0x36, 0xa1, 0x71, 0x91, 0x80, 0x11,
		0xc2, 0x65, 0xc4, 0x74, 0x59, 0x0b, 0x2b, 0xf2, 0x27, 0xe9, 0x34, 0x84, 0x0f, 0xb9, 0x93, 0x3a,
		0x7f, 0x98, 0x90, 0x47, 0x11, 0x2b, 0x0b, 0x07, 0xf2, 0x29, 0x6c, 0x76, 0xb7, 0x9f, 0xbf, 0x59,
		0x86, 0x20, 0x3b, 0xd4, 0x8a, 0x5f, 0x61, 0x7a, 0x87, 0xd0, 0x76, 0x57, 0x6c, 0x18, 0xce, 0x5f,
		0xbe, 0x90, 0x1f, 0x0c, 0x26, 0x75, 0xcf, 0xea, 0x4d, 0xb7, 0xa5, 0x9b, 0xef, 0x9c, 0x0b, 0xc8,
		0x98, 0x4a, 0xc6, 0xf0, 0x44, 0xf9, 0xd2, 0x6f, 0x05, 0x7a, 0x9e, 0x4a, 0xd9, 0xb7, 0x8d, 0x6e,
		0xd7, 0x30, 0xdf, 0x4d, 0xd0, 0xdc, 0xb5, 0x3a, 0x68, 0x61, 0xa3, 0x62, 0x0f, 0x3a, 0x96, 0x61,
		0x3a, 0xba, 0xed, 0x1a, 0x66, 0xd3, 0x68, 0xd4, 0x1d, 0xbd, 0x3b, 0x71, 0xa8, 0x88, 0xc9, 0xe0,
		0xca, 0xb2, 0x67, 0xd2, 0x79, 0x93, 0xb5, 0x62, 0xd3, 0xcd, 0xcf, 0x24, 0x79, 0xb7, 0x7e, 0xe9,
		0x5c, 0xa0, 0x1e, 0x99, 0x4e, 0xbe, 0x93, 0x20, 0xac, 0xdb, 0x31, 0x20, 0x5b, 0x02, 0xd9, 0x22,
		0xb9, 0xc8, 0x0f, 0x64, 0xe4, 0x38, 0xa8, 0x55, 0x06, 0x25, 0x90, 0xb9, 0xdb, 0xd4, 0x1b, 0x56,
		0xbb, 0x63, 0xeb, 0xdd, 0x2e, 0x34, 0x5e, 0x89, 0xf4, 0xed, 0x8f, 0x49, 0xa8, 0x0d, 0xe9, 0xf3,
		0x4b, 0xdf, 0xd4, 0xf5, 0x66, 0x02, 0xf6, 0xba, 0xe9, 0x4c, 0xa2, 0x70, 0x90, 0x18, 0x8a, 0xe4,
		0x6f, 0xd9, 0xc6, 0xff, 0xaa, 0x12, 0x3f, 0xc8, 0x8b, 0xac, 0x47, 0xc9, 0x0a, 0x5d, 0x58, 0xbe,
		0xa4, 0xac, 0xca, 0x55, 0xe5, 0x48, 0xca, 0x4a, 0x5d, 0x52, 0x1e, 0xe5, 0xac, 0xc0, 0xf5, 0xec,
		0xbe, 0x98, 0x6d, 0xbd, 0x69, 0xd8, 0x7a, 0x03, 0x75, 0x3a, 0x8a, 0xc4, 0x8e, 0xf1, 0x1e, 0xcc,
		0x02, 0x37, 0x75, 0xe7, 0xdf, 0x96, 0xfd, 0x17, 0x64, 0xce, 0x28, 0x73, 0xc7, 0xea, 0x42, 0xd1,
		0x55, 0x08, 0x5d, 0x9d, 0xb2, 0x23, 0x57, 0xcb, 0x7a, 0x40, 0x80, 0xde, 0xa6, 0xbb, 0xe2, 0x81,
		0x72, 0x24, 0x5b, 0x7e, 0x4f, 0x93, 0x33, 0xe1, 0x42, 0x79, 0xe5, 0xcb, 0xd7, 0xba, 0x74, 0x74,
		0xdb, 0xad, 0x37, 0xdf, 0xeb, 0xb6, 0x63, 0x74, 0xf5, 0xb6, 0x6e, 0x22, 0x1d, 0x4b, 0xc1, 0x16,
		0x34, 0x2d, 0xbd, 0xeb, 0x9a, 0x96, 0x33, 0x6b, 0x94, 0xd7, 0xb0, 0xda, 0x6d, 0x9c, 0x3a, 0x28,
		0xdb, 0x0d, 0xd3, 0xb2, 0xdb, 0xf5, 0x16, 0x22, 0x59, 0xe0, 0x6a, 0x96, 0x8d, 0x3a, 0xa7, 0x52,
		0xe7, 0x36, 0xde, 0xdc, 0x88, 0xb9, 0xab, 0xb7, 0xf4, 0x46, 0x72, 0xd2, 0x83, 0x80, 0x41, 0xa9,
		0xf8, 0xd1, 0x7c, 0x14, 0x26, 0x9c, 0x39, 0x1d, 0xda, 0x7d, 0x19, 0x3b, 0x46, 0x5b, 0xef, 0x3a,
		0xf5, 0x76, 0x07, 0xf8, 0xa8, 0x48, 0xee, 0x00, 0x46, 0x18, 0x6d, 0x76, 0x94, 0x27, 0x4f, 0xc2,
		0x45, 0x33, 0x52, 0xf5, 0xd2, 0x07, 0x3a, 0xc2, 0x80, 0xb3, 0xa6, 0x42, 0xf9, 0x10, 0xb1, 0xab,
		0x7f, 0x68, 0xe8, 0x7a, 0x53, 0x6f, 0x02, 0x21, 0x15, 0xca, 0xfe, 0xdc, 0xae, 0xbf, 0x4b, 0x18,
		0x24, 0x5b, 0xaf, 0x77, 0xbb, 0x7a, 0xfb, 0xac, 0xf5, 0xd1, 0x35, 0x4c, 0xd7, 0xb1, 0xeb, 0x66,
		0xd7, 0x40, 0x3d, 0x09, 0xfb, 0x7e, 0x28, 0x95, 0x3d, 0x5c, 0xd6, 0x4e, 0xe0, 0x69, 0x5a, 0x6c,
		0x3a, 0x6f, 0x72, 0x57, 0x22, 0xe3, 0x57, 0xbb, 0x61, 0xab, 0xb4, 0xdf, 0x83, 0x58, 0x13, 0x8b,
		0xe2, 0x47, 0x1c, 0x7a, 0xda, 0x38, 0x88, 0x62, 0xef, 0xcb, 0x60, 0xa2, 0x19, 0xf4, 0xfa, 0x58,
		0x0c, 0xc5, 0xb5, 0x08, 0x45, 0xd0, 0x13, 0x6c, 0x41, 0x0c, 0x9f, 0x91, 0xdd, 0x53, 0xb8, 0xe7,
		0x8d, 0xc2, 0xd1, 0x49, 0xe5, 0xb4, 0x60, 0x04, 0xb1, 0x08, 0x03, 0x11, 0x17, 0x1a, 0xc3, 0x20,
		0x0e, 0x87, 0x83, 0x42, 0x5b, 0x44, 0x91, 0x77, 0x23, 0x0a, 0x9d, 0x70, 0x18, 0x0f, 0x7b, 0xc3,
		0x01, 0x63, 0x00, 0x59, 0xec, 0x0e, 0xc7, 0x61, 0x8f, 0x67, 0x9b, 0x1f, 0xac, 0xfb, 0x97, 0xf8,
		0xf9, 0x7d, 0x18, 0xf6, 0x27, 0x82, 0xb9, 0xdf, 0x7d, 0xe6, 0xc0, 0xf9, 0xc2, 0x8b, 0xea, 0xe1,
		0xcd, 0xf8, 0x56, 0x04, 0x71, 0xf1, 0xb4, 0x10, 0x87, 0x63, 0xc1, 0xfc, 0x01, 0x96, 0x56, 0x7f,
		0x8e, 0x7a, 0xec, 0x18, 0x22, 0xd3, 0xaf, 0x42, 0x8b, 0xf9, 0x74, 0x9f, 0x9f, 0x10, 0xeb, 0x8b,
		0xf1, 0xcf, 0x11, 0xbd, 0xd9, 0x2f, 0xc0, 0x2f, 0x59, 0x8d, 0xd8, 0x73, 0xfd, 0xe5, 0x07, 0x13,
		0x3c, 0xd9, 0x27, 0x5e, 0xa6, 0x31, 0x0c, 0xae, 0xfd, 0x1b, 0x86, 0x85, 0x3a, 0xa1, 0xb8, 0xf6,
		0x7f, 0xf0, 0x78, 0xe0, 0xf9, 0x3e, 0x0d, 0x7b, 0xda, 0xe8, 0xef, 0x58, 0xbb, 0xf5, 0xe2, 0xde,
		0x57, 0x06, 0x38, 0xe6, 0x76, 0x3f, 0xcb, 0x6e, 0x67, 0x34, 0x15, 0x2f, 0x0f, 0xe4, 0x2b, 0xf3,
		0x35, 0x0f, 0x7c, 0xcc, 0x83, 0xdd, 0x45, 0x1c, 0xfc, 0x5b, 0xb9, 0x39, 0x1c, 0xf8, 0xf8, 0xc0,
		0xf6, 0xfc, 0xbe, 0x08, 0x62, 0x3f, 0xfe, 0x19, 0x8a, 0x6b, 0x0e, 0xd3, 0x9b, 0xc1, 0x65, 0xf9,
		0x90, 0x61, 0x2d, 0x63, 0xf6, 0xd5, 0xce, 0xbc, 0x88, 0xd1, 0xd8, 0x17, 0xa9, 0xed, 0xc7, 0x0e,
		0x17, 0x29, 0xab, 0x82, 0x8c, 0x4d, 0xc7, 0x98, 0x70, 0x70, 0x31, 0xf2, 0x44, 0xab, 0x37, 0x2e,
		0x2c, 0xc8, 0x53, 0xae, 0x3c, 0xa7, 0x27, 0x60, 0x90, 0xaa, 0x44, 0xa9, 0x3e, 0x98, 0x92, 0x02,
		0xc9, 0x92, 0x48, 0x36, 0x19, 0xaa, 0x00, 0xd9, 0xca, 0x93, 0xed, 0x83, 0x86, 0xbd, 0x10, 0xac,
		0x44, 0xc1, 0xce, 0x9a, 0xb0, 0x40, 0xa6, 0xf2, 0x64, 0x3a, 0xbf, 0x4e, 0x09, 0x99, 0x4a, 0x94,
		0xe9, 0x9a, 0x4b, 0x27, 0x90, 0xaf, 0x74, 0xf9, 0x76, 0xad, 0x96, 0xd1, 0x30, 0x1c, 0x34, 0x61,
		0x92, 0x9d, 0xcc, 0xce, 0x4b, 0xba, 0x20, 0x54, 0x02, 0xa1, 0x22, 0x96, 0xa5, 0x10, 0xed, 0xa2,
		0xae, 0x00, 0x82, 0x95, 0x28, 0x58, 0xbb, 0xde, 0xd0, 0x13, 0xb0, 0x45, 0x89, 0x46, 0xba, 0xbe,
		0x07, 0x4a, 0x34, 0xb2, 0x65, 0x56, 0x28, 0xd1, 0x58, 0xbb, 0x2e, 0x4a, 0x34, 0x50, 0xa2, 0xc1,
		0xb6, 0x4a, 0x66, 0x4b, 0x34, 0x5e, 0x65, 0xc8, 0x83, 0x14, 0xeb, 0x41, 0x30, 0x8c, 0xbd, 0xd8,
		0x1f, 0x06, 0xa4, 0x70, 0x52, 0x8c, 0x7a, 0x5f, 0xc5, 0xad, 0x37, 0xf2, 0xe2, 0xaf, 0x13, 0xbb,
		0x29, 0x0d, 0x47, 0x22, 0xe8, 0x25, 0x65, 0x13, 0x5a, 0x20, 0xe2, 0xef, 0xc3, 0xf0, 0x6f, 0xcd,
		0x9f, 0x78, 0xaf, 0xa0, 0x27, 0x4a, 0x8f, 0x5f, 0x88, 0x56, 0x5e, 0x29, 0x8d, 0x86, 0x03, 0xbf,
		0xf7, 0x53, 0xbb, 0x1e, 0x86, 0xdf, 0xbd, 0xb0, 0xef, 0x07, 0x37, 0xd3, 0x57, 0x7c, 0x11, 0xcd,
		0x7e, 0x54, 0x0a, 0xc7, 0x03, 0x11, 0x25, 0x7f, 0x96, 0xfc, 0xd1, 0xb7, 0x6a, 0xc9, 0xef, 0xdd,
		0x4e, 0xfe, 0x13, 0xc5, 0x5e, 0x4c, 0x09, 0x59, 0xc5, 0x28, 0x0e, 0xc7, 0xbd, 0x38, 0x98, 0xb9,
		0x0f, 0x6b, 0xf1, 0x35, 0xcd, 0xe9, 0x57, 0x30, 0x66, 0xdf, 0xc0, 0x7d, 0xf4, 0xef, 0xe8, 0xf1,
		0x0b, 0x6e, 0x27, 0xf9, 0x1e, 0xe7, 0x8b, 0x6f, 0x38, 0x7d, 0xc1, 0x17, 0xd1, 0xec, 0x27, 0xae,
		0x3d, 0xf9, 0x86, 0xc9, 0x9f, 0xae, 0x31, 0xfa, 0x56, 0x75, 0x8d, 0xe4, 0x1b, 0xba, 0xdd, 0xe4,
		0x1b, 0xbe, 0xca, 0x86, 0x66, 0xcb, 0x7d, 0xa2, 0x64, 0x1b, 0xa1, 0xb6, 0x8d, 0x94, 0xd8, 0x04,
		0x81, 0x35, 0x28, 0xb7, 0x02, 0xb9, 0xfa, 0x2f, 0x4f, 0x4b, 0x25, 0x6a, 0x68, 0x71, 0x0a, 0x65,
		0xb2, 0x15, 0x73, 0x11, 0xf9, 0x52, 0x20, 0xe5, 0xa2, 0xc2, 0x44, 0xf2, 0x63, 0x17, 0x05, 0x78,
		0x15, 0xc9, 0x0f, 0x26, 0x2c, 0xb8, 0xe3, 0x2a, 0xb0, 0xa3, 0x4e, 0x16, 0xd8, 0x0a, 0xe8, 0xd8,
		0x22, 0x7f, 0xc6, 0x02, 0xb9, 0x74, 0xfb, 0xbf, 0xa6, 0x1f, 0xd2, 0xa8, 0x7e, 0x5f, 0x44, 0xb1,
		0x1f, 0x24, 0x9e, 0x55, 0xf3, 0xfa, 0xfd, 0x50, 0x44, 0x11, 0x9d, 0x7e, 0xce, 0xed, 0x6c, 0xdd,
		0xa2, 0x44, 0x0a, 0x44, 0x5b, 0x77, 0x4c, 0x5e, 0x6f, 0xcc, 0x51, 0x67, 0xcc, 0x5d, 0x5f, 0xcc,
		0xc5, 0x99, 0xb0, 0xd7, 0x13, 0xb3, 0x13, 0x22, 0x0a, 0xea, 0x87, 0xb3, 0x95, 0x52, 0x93, 0xd7,
		0x09, 0xdf, 0xd7, 0x07, 0x8f, 0xbe, 0x55, 0x35, 0x72, 0x2d, 0x5b, 0x44, 0x6d, 0xc7, 0x84, 0x6b,
		0x74, 0xbc, 0x38, 0x16, 0x61, 0x40, 0xce, 0x25, 0x17, 0x5f, 0x7f, 0xda, 0xd7, 0x4e, 0xae, 0x7e,
		0x7d, 0x2a, 0x6b, 0x27, 0x57, 0xd3, 0xbf, 0x96, 0x93, 0xff, 0xfc, 0x53, 0xb9, 0xfb, 0x55, 0xf9,
		0xb4, 0xaf, 0x55, 0x67, 0xaf, 0x56, 0x0e, 0x3f, 0xed, 0x6b, 0x87, 0x57, 0x7b, 0xaf, 0x3f, 0x7f,
		0x7e, 0xfb, 0xdc, 0xf7, 0xec, 0xfd, 0x73, 0x70, 0x57, 0x5a, 0xbc, 0xa9, 0x32, 0xfb, 0xe9, 0xc1,
		0xa7, 0x7d, 0xad, 0x72, 0xb5, 0x47, 0x67, 0x26, 0x57, 0x94, 0xfb, 0x63, 0x75, 0x8d, 0x0f, 0x6c,
		0x9b, 0xf4, 0x9f, 0xd7, 0xca, 0xb7, 0x69, 0xef, 0xbf, 0x08, 0x37, 0x2a, 0x2b, 0xf4, 0xcc, 0x1b,
		0x96, 0xd8, 0x6f, 0x06, 0x61, 0x5a, 0x24, 0x62, 0x25, 0x61, 0xe0, 0xf2, 0xfa, 0x88, 0x08, 0x11,
		0x11, 0x22, 0x22, 0x44, 0x44, 0x98, 0xd1, 0x88, 0x70, 0x20, 0xbc, 0x6b, 0xda, 0xdb, 0x62, 0x8b,
		0x68, 0xf0, 0x88, 0x36, 0x1a, 0x9c, 0x71, 0xe2, 0xbd, 0x09, 0x2a, 0x47, 0xa7, 0x7d, 0x71, 0xed,
		0x07, 0xa2, 0x9f, 0xfc, 0x63, 0xf1, 0xe2, 0x52, 0xf8, 0xfb, 0xdb, 0x1f, 0x2c, 0x5e, 0x4f, 0x08,
		0xe9, 0x3c, 0xfb, 0xde, 0xa8, 0x37, 0x62, 0xf0, 0xb0, 0x93, 0x55, 0xe0, 0x47, 0xe1, 0x47, 0xe1,
		0x47, 0xe1, 0x47, 0x33, 0xea, 0x47, 0x09, 0x31, 0x6c, 0x19, 0xc7, 0x08, 0x6f, 0x5a, 0x17, 0x6d,
		0x2f, 0xb8, 0xa1, 0xaf, 0xcd, 0x63, 0x28, 0x34, 0x6c, 0xfb, 0x01, 0xdf, 0x0d, 0xf1, 0xe4, 0xb6,
		0x36, 0x7d, 0x2b, 0x8f, 0xc5, 0x7a, 0xe7, 0xa1, 0xd7, 0x9b, 0xe4, 0xa2, 0x4d, 0xff, 0xc6, 0x8f,
		0x23, 0xc6, 0x85, 0x4d, 0x71, 0xe3, 0xc5, 0xfe, 0xb7, 0xc9, 0x77, 0xbd, 0xf6, 0x06, 0x91, 0xa0,
		0xaf, 0xb0, 0x65, 0xe8, 0x2a, 0xd0, 0xf6, 0x7e, 0xf0, 0xab, 0x4a, 0xed, 0x00, 0xba, 0x92, 0x09,
		0xb7, 0x44, 0xff, 0xf4, 0xab, 0x9c, 0x27, 0x17, 0x4c, 0x14, 0xde, 0x7c, 0x25, 0x24, 0x19, 0x48,
		0x32, 0x90, 0x64, 0x20, 0xc9, 0x40, 0x92, 0x81, 0x24, 0x03, 0x49, 0x06, 0x02, 0x47, 0x24, 0x19,
		0xd0, 0x15, 0x24, 0x19, 0xe9, 0x72, 0xa7, 0x2d, 0x3f, 0x8a, 0xeb, 0x71, 0x1c, 0xd2, 0xba, 0xd4,
		0xb6, 0x1f, 0xe8, 0x03, 0x31, 0x09, 0x6b, 0x88, 0x55, 0x76, 0x62, 0xfd, 0x4b, 0x2b, 0x95, 0x8f,
		0xab, 0xd5, 0xda, 0x51, 0xb5, 0xba, 0x7f, 0x74, 0x70, 0xb4, 0x7f, 0x72, 0x78, 0x58, 0xae, 0x51,
		0x76, 0x4f, 0x2c, 0x5a, 0x61, 0x5f, 0x84, 0xa2, 0x7f, 0xf6, 0xb3, 0x78, 0x5a, 0x08, 0xc6, 0x83,
		0x01, 0xc7, 0x52, 0x97, 0x91, 0x08, 0x49, 0x6d, 0x32, 0x1b, 0xe9, 0xed, 0xd7, 0xe1, 0x48, 0x1b,
		0xf8, 0xb7, 0x3e, 0x43, 0x7e, 0x7b, 0xbf, 0x14, 0x12, 0x5c, 0x24, 0xb8, 0x48, 0x70, 0x91, 0xe0,
		0x66, 0x34, 0xc1, 0x1d, 0xfb, 0x41, 0x7c, 0x8c, 0x0c, 0x17, 0x19, 0x2e, 0xb2, 0x16, 0x64, 0xb8,
		0x7f, 0x52, 0x95, 0xca, 0xe1, 0x21, 0x94, 0x05, 0x29, 0x2e, 0x65, 0x8a, 0x9b, 0x89, 0x44, 0x63,
		0x20, 0x82, 0x9b, 0xa4, 0xfa, 0x91, 0x38, 0xcb, 0x98, 0xad, 0x83, 0x14, 0x03, 0x29, 0x06, 0x52,
		0x0c, 0xa4, 0x18, 0x19, 0x4e, 0x31, 0xca, 0x35, 0x86, 0x1c, 0xa3, 0x86, 0x1c, 0x03, 0x39, 0x06,
		0x72, 0x8c, 0x6c, 0xe7, 0x18, 0xb5, 0xc3, 0xc3, 0x03, 0x64, 0x19, 0xc8, 0x32, 0x48, 0xb3, 0x0c,
		0x22, 0x9f, 0xca, 0xd8, 0xe3, 0x95, 0xb1, 0xb7, 0x2b, 0xe3, 0x34, 0xb5, 0x69, 0xb3, 0xce, 0xf2,
		0x52, 0xb3, 0xce, 0x79, 0x73, 0xce, 0xcf, 0xc1, 0xe4, 0x67, 0xc7, 0x95, 0xfd, 0xfd, 0x35, 0x3f,
		0x7c, 0x53, 0x78, 0x2f, 0xc2, 0xc8, 0x1f, 0x06, 0x85, 0x5a, 0xe1, 0xb5, 0xd1, 0xf9, 0x56, 0xdb,
		0x2b, 0x74, 0x47, 0xa2, 0xe7, 0x5f, 0xfb, 0xbd, 0xe4, 0x16, 0xf1, 0xdb, 0x1d, 0x9f, 0x8a, 0xc8,
		0xdd, 0xe9, 0x35, 0x1d, 0x83, 0x11, 0xc9, 0x94, 0x05, 0x68, 0x0c, 0xce, 0x67, 0x45, 0xf3, 0x46,
		0xf3, 0x2e, 0xc1, 0xe4, 0xac, 0xcf, 0x88, 0xb6, 0x5d, 0x35, 0x78, 0x1f, 0xf0, 0x3e, 0xe0, 0x7d,
		0xc0, 0xfb, 0x90, 0xdb, 0x8e, 0x3f, 0xd2, 0xe6, 0x50, 0xa6, 0x11, 0x8f, 0x12, 0x5f, 0x74, 0x3c,
		0x38, 0x21, 0x5c, 0x63, 0x26, 0xb9, 0x9d, 0x09, 0xb6, 0xa9, 0x8f, 0xfe, 0x1f, 0x6f, 0x0e, 0xc7,
		0xcc, 0x62, 0x1e, 0x9a, 0x8e, 0x6f, 0xb3, 0xee, 0xb9, 0x18, 0x46, 0xda, 0x6e, 0x85, 0x93, 0xd9,
		0x67, 0x9e, 0xdf, 0xa0, 0x8a, 0x97, 0x51, 0xc7, 0xcf, 0x10, 0xa3, 0xfe, 0x7a, 0x95, 0x62, 0xa4,
		0xf7, 0x56, 0x54, 0xaa, 0x72, 0x58, 0x85, 0x52, 0x71, 0x29, 0x15, 0xc6, 0x8d, 0xa8, 0x37, 0x3d,
		0x46, 0xc7, 0xee, 0xcf, 0x06, 0xf7, 0xd3, 0x76, 0x99, 0x5a, 0x89, 0xbd, 0x38, 0xfc, 0xbb, 0x31,
		0xfb, 0x6a, 0x67, 0x5e, 0xc4, 0x48, 0xb5, 0xcd, 0x05, 0x6b, 0x74, 0xdc, 0x8e, 0x6d, 0x39, 0x56,
		0xc3, 0x6a, 0x71, 0x31, 0x6d, 0x09, 0x5e, 0x46, 0x6c, 0x11, 0x4d, 0x41, 0xdd, 0x68, 0x3c, 0xa3,
		0xe3, 0xd6, 0x2f, 0x9d, 0x0b, 0x4c, 0x1b, 0x94, 0x2a, 0xd2, 0x77, 0xb6, 0x0e, 0x89, 0x4a, 0x95,
		0xa8, 0xd1, 0xc0, 0x18, 0x57, 0xd9, 0x22, 0x7d, 0x07, 0x91, 0xca, 0x16, 0xa9, 0xe9, 0x1a, 0x90,
		0xa9, 0x5c, 0x99, 0xb6, 0x2a, 0x0e, 0x44, 0x2a, 0x39, 0x9c, 0x32, 0xda, 0x90, 0xa8, 0x54, 0x89,
		0xda, 0xdd, 0xf7, 0x50, 0x52, 0xb9, 0x22, 0x75, 0x1a, 0x90, 0xa8, 0x5c, 0x89, 0x5e, 0x36, 0x3b,
		0x98, 0x7f, 0x9d, 0xae, 0xef, 0x81, 0xaa, 0x01, 0x8a, 0xaa, 0x81, 0x28, 0x39, 0xd7, 0xe5, 0x9b,
		0xa0, 0xf5, 0x68, 0x3d, 0x54, 0x10, 0xac, 0x5d, 0x00, 0x15, 0x04, 0x5b, 0xec, 0x3d, 0x2a, 0x08,
		0x32, 0x82, 0xbd, 0x18, 0x9e, 0xf5, 0x3c, 0x38, 0xc3, 0xf0, 0x2c, 0x0c, 0xcf, 0xc2, 0xf0, 0x2c,
		0x44, 0x7c, 0x32, 0x23, 0x3e, 0xd6, 0xb9, 0x59, 0x9b, 0x97, 0x46, 0x1c, 0x88, 0x38, 0x10, 0x71,
		0x20, 0xe2, 0xc0, 0x8c, 0xc6, 0x81, 0x18, 0x99, 0xb5, 0x33, 0x23, 0xb3, 0x52, 0x3d, 0x4d, 0xbd,
		0x1e, 0x04, 0xc3, 0x38, 0xb9, 0x04, 0x44, 0x33, 0x54, 0x3d, 0xea, 0x7d, 0x15, 0xb7, 0xde, 0x68,
		0xa1, 0x06, 0x23, 0x11, 0xf4, 0x12, 0x1f, 0xa7, 0x05, 0x22, 0xfe, 0x3e, 0x0c, 0xff, 0xd6, 0xfc,
		0x20, 0x8a, 0xbd, 0xa0, 0x27, 0x4a, 0x8f, 0x5f, 0x88, 0x56, 0x5e, 0x29, 0x8d, 0x86, 0x03, 0xbf,
		0xf7, 0x53, 0xbb, 0x1e, 0x86, 0xdf, 0xbd, 0xb0, 0xef, 0x07, 0x37, 0xd3, 0x57, 0x7c, 0x11, 0xcd,
		0x7e, 0x54, 0x0a, 0xc7, 0x03, 0x11, 0x25, 0x7f, 0x96, 0x26, 0xca, 0x53, 0x8a, 0x62, 0x2f, 0xa6,
		0x28, 0xc3, 0x2e, 0x46, 0x71, 0x38, 0xee, 0xc5, 0xc1, 0xcc, 0x5c, 0xad, 0xc5, 0xf7, 0x32, 0xa7,
		0x9f, 0xd9, 0x98, 0x7d, 0x64, 0xf7, 0xd1, 0xbf, 0xa3, 0xc7, 0x2f, 0xb8, 0x9d, 0xe4, 0x83, 0x9f,
		0x2f, 0xbe, 0xd2, 0xf4, 0x05, 0x5f, 0x44, 0xb3, 0x9f, 0xb8, 0xf6, 0xe4, 0x2b, 0x25, 0x7f, 0xba,
		0xc6, 0xe8, 0x5b, 0xd5, 0xed, 0x26, 0x5f, 0xe9, 0x55, 0x3a, 0x75, 0x54, 0xce, 0x93, 0x24, 0x69,
		0x39, 0x95, 0x76, 0xab, 0xd6, 0x6a, 0x89, 0xfa, 0xac, 0x4e, 0x8f, 0xe5, 0x68, 0xf0, 0xf6, 0xfa,
		0x26, 0x41, 0xd7, 0x8a, 0xfe, 0xe8, 0x5b, 0x4d, 0x9a, 0x86, 0x2d, 0x73, 0x41, 0xb2, 0x7a, 0x88,
		0x2c, 0x9c, 0xbd, 0xa4, 0xc7, 0xc9, 0xce, 0x53, 0x28, 0xf2, 0x12, 0xea, 0x3c, 0x84, 0x2a, 0xef,
		0x20, 0xcf, 0x33, 0xc8, 0xf3, 0x0a, 0x86, 0x3c, 0x22, 0x5d, 0x7e, 0xa6, 0xe9, 0xcb, 0xed, 0x24,
		0x5e, 0xec, 0xcd, 0xed, 0x4b, 0xb2, 0x6a, 0xcd, 0x4d, 0x62, 0xf6, 0x7c, 0xc9, 0xdb, 0x2e, 0x17,
		0x64, 0xc8, 0x49, 0x11, 0x4a, 0x32, 0x84, 0x8b, 0x04, 0xa1, 0x26, 0x3f, 0xd8, 0x48, 0x0f, 0x36,
		0xb2, 0x83, 0x91, 0xe4, 0x48, 0x77, 0xea, 0x27, 0x1b, 0xb4, 0x16, 0x0f, 0xee, 0x8b, 0x28, 0xf6,
		0x83, 0x24, 0xec, 0xe6, 0x2b, 0x03, 0x58, 0xb7, 0x28, 0x38, 0x60, 0x6e, 0xd8, 0xe3, 0x86, 0x3f,
		0x2e, 0x18, 0x64, 0x87, 0x43, 0x76, 0x58, 0x54, 0x00, 0x8f, 0x74, 0x9c, 0x5b, 0x61, 0x57, 0x6a,
		0x01, 0x6a, 0xa8, 0x05, 0x78, 0xde, 0x42, 0xd3, 0x53, 0x66, 0x4f, 0xbb, 0xae, 0x6b, 0xe7, 0x57,
		0xff, 0x94, 0xdf, 0x54, 0xef, 0x4e, 0xf7, 0xfe, 0x39, 0xba, 0x7b, 0xfc, 0xe2, 0xaf, 0x75, 0xbf,
		0x56, 0x7e, 0x73, 0x74, 0x77, 0xba, 0xe1, 0x27, 0xb5, 0xbb, 0xd3, 0x27, 0x3e, 0xe3, 0xf0, 0xee,
		0xf5, 0xca, 0xaf, 0x4e, 0x5e, 0xaf, 0x6c, 0x7a, 0x43, 0x75, 0xc3, 0x1b, 0x0e, 0x36, 0xbd, 0xe1,
		0x60, 0xc3, 0x1b, 0x36, 0x7e, 0xa4, 0xca, 0x86, 0x37, 0x1c, 0xde, 0xfd, 0x5a, 0xf9, 0xfd, 0xd7,
		0xeb, 0x7f, 0xb5, 0x76, 0xb7, 0xf7, 0x6b, 0xd3, 0xcf, 0x8e, 0xee, 0x7e, 0x9d, 0xee, 0xed, 0x95,
		0x5e, 0x97, 0x2b, 0x9f, 0xf6, 0xb5, 0xe3, 0xe9, 0x11, 0x7d, 0xf9, 0x6a, 0xe5, 0xe4, 0x3e, 0xf9,
		0x13, 0xb5, 0x12, 0x4f, 0x58, 0xed, 0x3f, 0xd0, 0xe2, 0x94, 0x6b, 0x31, 0x2a, 0x49, 0x68, 0xa6,
		0x35, 0xaf, 0x06, 0xf1, 0xac, 0xe5, 0x24, 0x7f, 0x58, 0x1f, 0xf9, 0x04, 0xf2, 0x09, 0xe4, 0x13,
		0xc8, 0x27, 0x32, 0x9a, 0x4f, 0xe4, 0xad, 0xa6, 0xa4, 0xb6, 0xa9, 0xa6, 0xa4, 0x96, 0xf9, 0x9a,
		0x12, 0x62, 0xdf, 0x7b, 0x3d, 0x18, 0x7e, 0xd7, 0x06, 0xde, 0x17, 0x31, 0xe0, 0xf5, 0xb9, 0x4b,
		0xeb, 0xc2, 0xd7, 0xc2, 0xd7, 0xc2, 0xd7, 0xc2, 0xd7, 0x66, 0x99, 0xbb, 0x23, 0x87, 0xb3, 0x65,
		0x48, 0x3b, 0xc2, 0x28, 0x98, 0x3f, 0x7f, 0x11, 0x8c, 0x82, 0x21, 0x51, 0x7a, 0x8c, 0x82, 0x91,
		0xa4, 0x2a, 0xe5, 0xfd, 0xea, 0xf1, 0xe1, 0x11, 0x86, 0xc1, 0x64, 0xc3, 0x4d, 0xd1, 0x3f, 0x3d,
		0xd7, 0x64, 0x60, 0xd4, 0x1b, 0x31, 0xa4, 0x1f, 0x93, 0x55, 0x90, 0x6c, 0x20, 0xd9, 0x40, 0xb2,
		0x81, 0x64, 0x23, 0xa3, 0xc9, 0x06, 0x21, 0x86, 0x15, 0x30, 0xd0, 0x1e, 0x19, 0x06, 0x32, 0x8c,
		0xdd, 0xc9, 0x30, 0x6a, 0x07, 0xd0, 0x15, 0x24, 0x17, 0x48, 0x2e, 0xa2, 0xde, 0x88, 0xa9, 0xa6,
		0x60, 0xbe, 0x12, 0x92, 0x0c, 0x24, 0x19, 0x48, 0x32, 0x90, 0x64, 0x20, 0xc9, 0x40, 0x92, 0x81,
		0x24, 0x03, 0x81, 0x23, 0x92, 0x0c, 0xe8, 0x0a, 0x92, 0x8c, 0x74, 0xb9, 0xd3, 0x96, 0x1f, 0xc5,
		0xf5, 0x38, 0x0e, 0x69, 0x5d, 0x6a, 0xdb, 0x0f, 0xf4, 0x81, 0x98, 0x84, 0x35, 0xc4, 0x2a, 0x3b,
		0xb1, 0xfe, 0xa5, 0x95, 0xca, 0xc7, 0xd5, 0x6a, 0xed, 0xa8, 0x5a, 0xdd, 0x3f, 0x3a, 0x38, 0xda,
		0x3f, 0x39, 0x3c, 0x2c, 0xd7, 0x28, 0x27, 0x58, 0x15, 0xad, 0xb0, 0x2f, 0x42, 0xd1, 0x3f, 0xfb,
		0x59, 0x3c, 0x2d, 0x04, 0xe3, 0xc1, 0x80, 0x63, 0xa9, 0xcb, 0x48, 0x84, 0xa4, 0x36, 0x99, 0x8d,
		0xf4, 0xf6, 0xeb, 0x70, 0xa4, 0x0d, 0xfc, 0x5b, 0x9f, 0x21, 0xbf, 0xbd, 0x5f, 0x0a, 0x09, 0x2e,
		0x12, 0x5c, 0x24, 0xb8, 0x48, 0x70, 0x33, 0x9a, 0xe0, 0x52, 0x0f, 0x87, 0x46, 0x86, 0x8b, 0x0c,
		0x17, 0x19, 0xee, 0x8e, 0x64, 0xb8, 0x95, 0x43, 0x14, 0xe9, 0x21, 0xc5, 0x25, 0x4d, 0x71, 0x33,
		0x91, 0x68, 0x0c, 0x44, 0x70, 0x93, 0x5c, 0xc7, 0x22, 0xce, 0x32, 0x66, 0xeb, 0x20, 0xc5, 0x40,
		0x8a, 0x81, 0x14, 0x03, 0x29, 0x46, 0x86, 0x53, 0x8c, 0x72, 0x8d, 0x21, 0xc7, 0xa8, 0x21, 0xc7,
		0x40, 0x8e, 0x81, 0x1c, 0x23, 0xdb, 0x39, 0x46, 0xed, 0xf0, 0xf0, 0x00, 0x59, 0x06, 0xb2, 0x0c,
		0xd2, 0x2c, 0x83, 0xc8, 0xa7, 0x8a, 0x1f, 0x71, 0xe8, 0x69, 0xe3, 0x20, 0x8a, 0xbd, 0x2f, 0x03,
		0x62, 0xef, 0x1a, 0x8a, 0x6b, 0x11, 0x8a, 0xa0, 0xb7, 0x13, 0x4e, 0x69, 0x1e, 0x2a, 0xd8, 0xe7,
		0x8d, 0xc2, 0xd1, 0x49, 0xf9, 0xb4, 0x60, 0x04, 0xb1, 0x08, 0x03, 0x11, 0x17, 0x3a, 0xe1, 0x30,
		0x1e, 0xf6, 0x86, 0x83, 0xcf, 0xc1, 0xe4, 0x67, 0xc7, 0x95, 0xfd, 0xfd, 0x35, 0x3f, 0x7c, 0x53,
		0x78, 0x2f, 0xc2, 0xc8, 0x1f, 0x06, 0x85, 0x5a, 0xe1, 0xb5, 0xd1, 0xf9, 0x56, 0xdb, 0x2b, 0x74,
		0x47, 0xa2, 0xe7, 0x5f, 0xfb, 0xbd, 0xa4, 0xc5, 0xc2, 0xdb, 0x22, 0x03, 0x5a, 0x32, 0x85, 0xee,
		0xeb, 0x42, 0xf8, 0x7b, 0x5d, 0x60, 0xc2, 0x2f, 0xee, 0x68, 0x7e, 0x6d, 0x54, 0x4f, 0xa6, 0x2c,
		0x40, 0x63, 0x70, 0x3e, 0x2b, 0x9a, 0x37, 0x9a, 0xa9, 0x0f, 0x3d, 0xeb, 0xb3, 0x58, 0x09, 0xbc,
		0x0f, 0x78, 0x1f, 0xf0, 0x3e, 0xe0, 0x7d, 0x32, 0xca, 0xfb, 0xf8, 0x23, 0x6d, 0x0e, 0x65, 0x5a,
		0x3c, 0x59, 0x95, 0xa1, 0x05, 0xdb, 0x09, 0xe1, 0x1a, 0x33, 0xc9, 0xed, 0x4c, 0xb0, 0x4d, 0x7d,
		0xf4, 0xff, 0x78, 0x73, 0x18, 0xb2, 0x7a, 0x26, 0x9a, 0x8e, 0x6f, 0xb3, 0xee, 0xb9, 0x18, 0x46,
		0xda, 0x6e, 0x85, 0x93, 0x61, 0xa2, 0x45, 0x94, 0xf3, 0x32, 0xea, 0xf8, 0x19, 0x62, 0xd4, 0x5f,
		0xaf, 0x52, 0x8c, 0xf4, 0xde, 0x8a, 0x4a, 0x55, 0x0e, 0xab, 0x50, 0x2a, 0x2e, 0xa5, 0x7a, 0xb5,
		0x1b, 0xab, 0x5c, 0xbd, 0xca, 0xb0, 0xe9, 0x31, 0x3a, 0x76, 0xbf, 0x2f, 0x82, 0xd8, 0x8f, 0x7f,
		0xd2, 0xb6, 0xbd, 0x5d, 0x89, 0xbd, 0x38, 0xfc, 0xbb, 0x31, 0xfb, 0x6a, 0x67, 0x5e, 0xc4, 0x48,
		0xb5, 0xcd, 0x05, 0x6b, 0x74, 0xdc, 0x8e, 0x6d, 0x39, 0x56, 0xc3, 0x6a, 0x71, 0x31, 0x6d, 0x09,
		0x5e, 0x46, 0x6c, 0x11, 0x0d, 0x6f, 0x54, 0xf3, 0x58, 0xb8, 0xf5, 0x4b, 0xe7, 0xa2, 0xb8, 0x8b,
		0xbe, 0x56, 0x9d, 0x48, 0xdf, 0xd9, 0x3a, 0x24, 0x2a, 0x55, 0xa2, 0x46, 0xa3, 0xdd, 0x81, 0x48,
		0xe5, 0x8a, 0xf4, 0x1d, 0x44, 0x2a, 0x5b, 0xa4, 0xa6, 0x6b, 0x40, 0xa6, 0x72, 0x65, 0xda, 0xaa,
		0x38, 0x10, 0xa9, 0xe4, 0x70, 0xca, 0x68, 0x43, 0xa2, 0x52, 0x25, 0x6a, 0x77, 0xdf, 0x43, 0x49,
		0xe5, 0x8a, 0xd4, 0x69, 0x40, 0xa2, 0x72, 0x25, 0x7a, 0xd9, 0xe4, 0x94, 0x28, 0xcb, 0x4a, 0x57,
		0xa8, 0x1a, 0x60, 0x95, 0x4c, 0x36, 0xaa, 0x06, 0xa2, 0xe4, 0x5c, 0x97, 0x6f, 0x20, 0xf4, 0xa3,
		0xf5, 0x50, 0x41, 0xb0, 0x76, 0x01, 0x54, 0x10, 0x6c, 0xb1, 0xf7, 0xa8, 0x20, 0xc8, 0x08, 0xf6,
		0x62, 0x16, 0xf4, 0xf3, 0xe0, 0x0c, 0xb3, 0xa0, 0x31, 0x45, 0x17, 0xb3, 0xa0, 0x37, 0xe9, 0x2f,
		0x66, 0x41, 0x43, 0x8b, 0x31, 0x0b, 0x9a, 0x37, 0x5f, 0x60, 0x1d, 0x03, 0xbd, 0x79, 0x69, 0x64,
		0x11, 0xc8, 0x22, 0x90, 0x45, 0x20, 0x8b, 0xc8, 0x68, 0x16, 0x81, 0x09, 0xd0, 0x98, 0x00, 0xfd,
		0x47, 0x8f, 0xcb, 0x39, 0xfc, 0x79, 0x75, 0x49, 0x78, 0x58, 0x78, 0x58, 0x78, 0x58, 0x78, 0xd8,
		0x2c, 0xf3, 0x74, 0x98, 0xfb, 0xfc, 0xac, 0xff, 0xa1, 0xd5, 0xcb, 0x76, 0xeb, 0xa1, 0xd5, 0x8b,
		0x54, 0x55, 0xc1, 0xdc, 0xe7, 0x1d, 0x52, 0x18, 0x14, 0x0a, 0xd0, 0xa6, 0x21, 0xaf, 0x52, 0x6c,
		0xde, 0xc5, 0x7a, 0x10, 0x0c, 0xe3, 0xa4, 0x93, 0x05, 0x89, 0x45, 0x17, 0xa3, 0xde, 0x57, 0x71,
		0xeb, 0x8d, 0x16, 0xd9, 0xe8, 0x48, 0x04, 0xbd, 0x24, 0x11, 0xd0, 0x02, 0x11, 0x7f, 0x1f, 0x86,
		0x7f, 0x6b, 0x7e, 0x10, 0xc5, 0x5e, 0xd0, 0x13, 0xa5, 0xc7, 0x2f, 0x44, 0x2b, 0xaf, 0x94, 0x46,
		0xc3, 0x81, 0xdf, 0xfb, 0xa9, 0x5d, 0x0f, 0xc3, 0xef, 0x5e, 0xd8, 0xf7, 0x83, 0x9b, 0xe9, 0x2b,
		0xbe, 0x88, 0x66, 0x3f, 0x2a, 0x85, 0xe3, 0x81, 0x88, 0x92, 0x3f, 0x4b, 0x93, 0x38, 0xa3, 0x34,
		0x5d, 0xac, 0x48, 0x91, 0x0a, 0xc6, 0xe1, 0xb8, 0x17, 0x07, 0xb3, 0xa0, 0xc6, 0x5a, 0x7c, 0x31,
		0x73, 0xfa, 0xa1, 0x8d, 0xd9, 0x67, 0x76, 0x1f, 0xfd, 0x3b, 0x7a, 0xfc, 0x82, 0xdb, 0x49, 0x3e,
		0xf9, 0xf9, 0xe2, 0x3b, 0x4d, 0x5f, 0xf0, 0x45, 0x34, 0xfb, 0x89, 0x6b, 0x4f, 0xbe, 0x53, 0xf2,
		0xa7, 0x6b, 0x8c, 0xbe, 0xd5, 0xdc, 0x59, 0x26, 0xf5, 0x2a, 0x9d, 0x5a, 0x2a, 0x51, 0x43, 0x8b,
		0x7e, 0xef, 0x76, 0xf4, 0xad, 0x26, 0x5d, 0x33, 0xef, 0x43, 0xd1, 0xe9, 0xf3, 0x25, 0xdb, 0xd4,
		0x9c, 0xdf, 0x91, 0xfc, 0x58, 0xaa, 0x04, 0x9a, 0x32, 0x71, 0xe6, 0x4a, 0x98, 0xa9, 0x13, 0x65,
		0xb6, 0x04, 0x99, 0x2d, 0x31, 0x66, 0x4c, 0x88, 0xd3, 0xed, 0x01, 0x9b, 0x3e, 0xcd, 0x28, 0xa3,
		0x62, 0x6f, 0x6e, 0xaf, 0xc4, 0x04, 0x21, 0x99, 0x8b, 0x23, 0x04, 0x33, 0x72, 0x50, 0xe3, 0x00,
		0x37, 0x6e, 0x90, 0xe3, 0x02, 0x3b, 0x76, 0xd0, 0x63, 0x07, 0x3f, 0x05, 0x20, 0x48, 0x9b, 0x10,
		0x51, 0xb1, 0x82, 0x54, 0xe0, 0xb8, 0x04, 0x92, 0x7d, 0x06, 0x45, 0xbe, 0x87, 0xca, 0x3e, 0x75,
		0xd7, 0x43, 0xe2, 0x63, 0x14, 0x36, 0xe0, 0xe4, 0x04, 0x50, 0x55, 0x40, 0xca, 0x0d, 0xa8, 0xca,
		0x80, 0x55, 0x19, 0xc0, 0x2a, 0x04, 0x5a, 0x26, 0x7e, 0x8b, 0xd8, 0xfa, 0xc8, 0x8f, 0x65, 0x56,
		0x73, 0x62, 0xf4, 0x03, 0xa1, 0x11, 0x6c, 0xc3, 0x6a, 0xea, 0x68, 0x04, 0x22, 0x5b, 0xaa, 0xcd,
		0xae, 0xe3, 0x5e, 0x9a, 0xb6, 0x5e, 0x6f, 0x5c, 0xd4, 0xcf, 0x5a, 0xba, 0x5b, 0x6f, 0x36, 0x6d,
		0xdc, 0xbf, 0xa4, 0x93, 0xef, 0x99, 0xfe, 0xd1, 0x32, 0x9b, 0x6e, 0xb7, 0x61, 0x75, 0x74, 0xd7,
		0x3a, 0x77, 0xbb, 0x76, 0x03, 0xe2, 0xa6, 0x13, 0x37, 0x23, 0x68, 0xa8, 0x04, 0x0f, 0x35, 0x52,
		0x4f, 0x19, 0x98, 0x28, 0xd0, 0xf2, 0x94, 0xca, 0x5d, 0x29, 0xc8, 0x60, 0x1b, 0xe6, 0xdb, 0x30,
		0xf9, 0x77, 0xbd, 0xd9, 0x36, 0x4c, 0xb7, 0x63, 0x5b, 0x17, 0xc6, 0x99, 0xe1, 0xe8, 0x4d, 0xec,
		0x03, 0xff, 0x3e, 0xe8, 0xb6, 0xed, 0x1a, 0xe6, 0xc4, 0x0a, 0x5c, 0xdb, 0xba, 0x74, 0x0c, 0xf3,
		0x9d, 0x7b, 0x01, 0x60, 0x52, 0xb1, 0x13, 0x17, 0x4d, 0xbb, 0xeb, 0x3a, 0x96, 0xe5, 0xb6, 0x2c,
		0xf3, 0x1d, 0x36, 0x80, 0x7f, 0x03, 0x4c, 0x2b, 0x31, 0x01, 0xdd, 0x75, 0xac, 0x09, 0x3c, 0x61,
		0x0b, 0xf8, 0xb7, 0xa0, 0x63, 0xd9, 0x90, 0xbb, 0x02, 0xb9, 0xdb, 0xfa, 0xff, 0xd1, 0x1b, 0x0e,
		0xd4, 0x5f, 0xf1, 0x36, 0x4c, 0xbc, 0xf0, 0x24, 0x2f, 0x70, 0xcf, 0xeb, 0x46, 0x4b, 0x6f, 0xba,
		0x1d, 0xab, 0x65, 0x34, 0x3e, 0x2a, 0xd8, 0x09, 0xd6, 0x15, 0xaf, 0x90, 0xe3, 0xef, 0x68, 0x98,
		0x9d, 0x3f, 0x79, 0xab, 0x0e, 0xa7, 0xf3, 0x27, 0x71, 0x45, 0x61, 0x73, 0xfe, 0x04, 0xad, 0x2c,
		0x3c, 0xce, 0x9f, 0xa8, 0x79, 0xc3, 0xe0, 0xfc, 0xc9, 0x57, 0x69, 0xb8, 0x9b, 0x3f, 0x71, 0xab,
		0x0e, 0x6b, 0x73, 0x20, 0xf1, 0xcb, 0x4e, 0xcb, 0x68, 0xd4, 0x9d, 0xe9, 0xb1, 0x82, 0xde, 0xed,
		0xba, 0xb6, 0xde, 0x69, 0x7d, 0xc4, 0x11, 0x4f, 0x2a, 0x76, 0xa1, 0x59, 0xc7, 0x11, 0x83, 0x42,
		0xf1, 0xeb, 0xcd, 0xfa, 0x24, 0x1a, 0x7f, 0x6f, 0x97, 0x2b, 0xc7, 0xd8, 0x87, 0x34, 0xec, 0xc3,
		0x49, 0x05, 0xfb, 0x90, 0x82, 0x7d, 0xa8, 0x1c, 0xd6, 0xb0, 0x0f, 0x29, 0xd8, 0x87, 0x5a, 0x15,
		0x14, 0x1f, 0x62, 0xbd, 0x4c, 0x45, 0x19, 0xf9, 0x15, 0xb3, 0x9a, 0x68, 0x02, 0xf2, 0xe6, 0x8d,
		0x1a, 0x20, 0x6f, 0xde, 0xe8, 0x00, 0xf2, 0x66, 0x8d, 0x02, 0xf2, 0x29, 0xee, 0x7f, 0x5d, 0xea,
		0x5d, 0x07, 0x9c, 0x48, 0x4a, 0xf6, 0xa1, 0x59, 0x47, 0x99, 0x99, 0xd2, 0x0d, 0xd0, 0x9b, 0x75,
		0x1b, 0xbc, 0x48, 0xba, 0x76, 0x02, 0xcc, 0x48, 0x4a, 0x76, 0x02, 0xdc, 0x48, 0x5a, 0x76, 0x02,
		0xec, 0x08, 0xe2, 0xbe, 0xcc, 0xc5, 0x1b, 0x79, 0x16, 0xb4, 0x9a, 0xb8, 0x02, 0x12, 0x07, 0x47,
		0xb2, 0xeb, 0x71, 0x02, 0x24, 0x0e, 0x9e, 0x44, 0xb2, 0xc0, 0xf5, 0xc6, 0x85, 0x85, 0x62, 0x11,
		0xb5, 0x82, 0x37, 0xad, 0xa9, 0xec, 0x11, 0xe6, 0xc2, 0x6c, 0x33, 0xa0, 0x3d, 0xb9, 0x91, 0x2e,
		0xf8, 0x62, 0xc5, 0xa2, 0x07, 0x30, 0xc2, 0x74, 0x33, 0xa5, 0x3f, 0x39, 0x90, 0xef, 0x07, 0xc7,
		0x45, 0xcc, 0xa8, 0x0a, 0x1c, 0x1f, 0x0a, 0xbf, 0x5d, 0x6f, 0x9d, 0x5b, 0x76, 0x5b, 0x6f, 0xba,
		0xff, 0xba, 0xd4, 0xed, 0x8f, 0xe0, 0xab, 0xf9, 0x77, 0xe0, 0xb2, 0xe5, 0x18, 0x9d, 0x96, 0xee,
		0x1a, 0xa6, 0x73, 0xee, 0x76, 0xeb, 0x8e, 0xd1, 0x3d, 0xff, 0x88, 0xdd, 0x50, 0xb4, 0x1b, 0xa6,
		0xe5, 0xea, 0xb6, 0x6d, 0xe1, 0x58, 0x59, 0x89, 0xe8, 0xbb, 0x97, 0x8d, 0x8b, 0x89, 0x1d, 0xe8,
		0xf6, 0x79, 0xbd, 0xa1, 0x63, 0x0f, 0x94, 0xed, 0x81, 0x33, 0xbd, 0x89, 0x6c, 0x3a, 0x36, 0x5a,
		0x07, 0x20, 0xb2, 0xcb, 0x5c, 0x70, 0x91, 0x3f, 0x49, 0xa7, 0x21, 0x88, 0xc8, 0x9d, 0xd4, 0xf9,
		0x83, 0x85, 0x3c, 0x8a, 0x58, 0x55, 0x50, 0x90, 0x5b, 0x59, 0x2b, 0x71, 0xfe, 0xb9, 0x92, 0x36,
		0x58, 0xe1, 0x14, 0x88, 0x5f, 0x61, 0xaa, 0x87, 0x00, 0x77, 0x57, 0x6c, 0x18, 0x21, 0x80, 0x7c,
		0x21, 0x5f, 0x58, 0x6d, 0xdd, 0xad, 0xbf, 0xd3, 0x4d, 0x67, 0x51, 0xc1, 0xd1, 0x34, 0xba, 0x0d,
		0xeb, 0xbd, 0x6e, 0x7f, 0x04, 0x67, 0x9c, 0xce, 0x0d, 0xc1, 0x31, 0x1b, 0xcc, 0x7c, 0x07, 0xb4,
		0x2a, 0xf7, 0x52, 0x47, 0x64, 0x9a, 0xd2, 0x2d, 0x01, 0xc0, 0xc2, 0xd4, 0x77, 0x42, 0xaf, 0x76,
		0x5f, 0xee, 0x86, 0xf9, 0x5e, 0xb7, 0xbb, 0xba, 0x6b, 0xea, 0xc6, 0xbb, 0x8b, 0x33, 0xcb, 0x76,
		0xeb, 0xcd, 0xf7, 0xba, 0xed, 0x18, 0x5d, 0xbd, 0x3d, 0xd9, 0x0b, 0x80, 0x6b, 0x8a, 0x36, 0x03,
		0xb0, 0x0a, 0xf3, 0xce, 0xb8, 0x46, 0xe5, 0x50, 0xe2, 0x5d, 0xab, 0x65, 0x34, 0x0c, 0xa7, 0xee,
		0x18, 0x96, 0x09, 0x3c, 0x4d, 0xd1, 0x5e, 0x00, 0x4e, 0x61, 0xdc, 0xd9, 0x56, 0xa8, 0xdd, 0x17,
		0x78, 0xdb, 0x3a, 0x33, 0x5a, 0xba, 0xdb, 0xb1, 0xf5, 0x73, 0xe3, 0x03, 0x62, 0x53, 0x85, 0x58,
		0xfa, 0xbb, 0x9d, 0x00, 0x92, 0xc2, 0xb0, 0xb3, 0xac, 0x4e, 0x79, 0x13, 0x37, 0x42, 0xd2, 0x94,
		0xc0, 0x28, 0xe2, 0x51, 0x98, 0xf5, 0xae, 0x68, 0x53, 0x0e, 0xa4, 0x7d, 0xd9, 0x72, 0x8c, 0x46,
		0xbd, 0xeb, 0xb8, 0x2d, 0xa3, 0xeb, 0xe8, 0xa6, 0x6e, 0xbb, 0x4d, 0xcb, 0xc4, 0x60, 0xf1, 0x74,
		0xec, 0x02, 0xe0, 0x13, 0x06, 0x9d, 0x55, 0x55, 0xca, 0xa5, 0xa8, 0x93, 0x8a, 0x7f, 0x80, 0x67,
		0x3a, 0xb6, 0x01, 0xe8, 0x09, 0x93, 0xce, 0xac, 0x2e, 0xe5, 0x52, 0xd6, 0xb6, 0xde, 0xb1, 0x6c,
		0xb0, 0xa0, 0x69, 0xd9, 0x07, 0x00, 0x28, 0x8c, 0x3a, 0xbb, 0xca, 0xb4, 0xfb, 0xc2, 0x36, 0x9b,
		0x4d, 0xdd, 0x35, 0xcc, 0x73, 0xcb, 0x6e, 0x4f, 0x09, 0x12, 0x5b, 0xef, 0x76, 0x2c, 0xb3, 0x8b,
		0xf4, 0x9d, 0x79, 0x1f, 0xac, 0x4d, 0xfb, 0x60, 0xeb, 0xe7, 0x97, 0x5d, 0xce, 0x71, 0xed, 0x0a,
		0x94, 0x3f, 0xf5, 0x9b, 0xd0, 0xbd, 0x6c, 0x34, 0xf4, 0x6e, 0x17, 0x9b, 0xa0, 0x72, 0x13, 0x2e,
		0xcd, 0xbf, 0x4c, 0xeb, 0xdf, 0x26, 0x62, 0x09, 0xb8, 0xb7, 0x27, 0x2b, 0x13, 0xea, 0x77, 0x53,
		0x60, 0xd1, 0xa8, 0xdb, 0x85, 0x39, 0xef, 0x94, 0x26, 0xe5, 0x48, 0xd2, 0x28, 0x8a, 0x50, 0x8f,
		0x9b, 0xa8, 0x87, 0x80, 0x31, 0xef, 0x80, 0x22, 0xe5, 0x40, 0xd0, 0x8f, 0x73, 0x17, 0x1c, 0xe6,
		0xa5, 0x66, 0x13, 0x8c, 0xce, 0xfb, 0x6a, 0x72, 0x89, 0x12, 0x49, 0xbc, 0xca, 0x3d, 0xa8, 0x61,
		0x0f, 0xd4, 0xee, 0x81, 0x59, 0x6f, 0x23, 0x78, 0x80, 0x4f, 0xcb, 0x20, 0x9c, 0xe6, 0x59, 0xd6,
		0x35, 0xc8, 0x7a, 0x17, 0xe1, 0x31, 0x87, 0x62, 0x56, 0x77, 0xb0, 0x95, 0x67, 0x61, 0xb3, 0x1f,
		0x60, 0xe5, 0x59, 0xd8, 0xec, 0x07, 0x55, 0xbb, 0x2f, 0xec, 0x4e, 0xbd, 0xf1, 0x97, 0xee, 0xb8,
		0x8e, 0x65, 0xb9, 0x67, 0xc6, 0x3b, 0x64, 0xd4, 0x2a, 0x85, 0x0f, 0x06, 0x12, 0xe6, 0x9b, 0x31,
		0x0d, 0xca, 0x83, 0x84, 0xed, 0x7a, 0xdb, 0xed, 0xd8, 0xd6, 0x59, 0x4b, 0x6f, 0x03, 0x1f, 0x15,
		0xca, 0x5e, 0xb7, 0x6d, 0xf7, 0xa2, 0x69, 0xbb, 0xe7, 0x86, 0xde, 0x42, 0xd9, 0x16, 0xbf, 0xf8,
		0x3f, 0x38, 0x89, 0xf8, 0x1b, 0x17, 0x75, 0xc3, 0x4c, 0x10, 0xa7, 0x65, 0x99, 0xef, 0xb0, 0x0f,
		0xaa, 0xf6, 0x61, 0x86, 0xf9, 0xd8, 0x00, 0xee, 0x0d, 0x30, 0xcc, 0x86, 0xd5, 0xee, 0xb4, 0x74,
		0x47, 0xbf, 0xb7, 0x07, 0xec, 0x02, 0xf7, 0x2e, 0x58, 0x1d, 0x07, 0x26, 0xa0, 0x4a, 0xf8, 0x5d,
		0xdb, 0xbd, 0xec, 0x74, 0xf4, 0xa9, 0x3f, 0xd6, 0x6d, 0x1c, 0x3b, 0xb1, 0xef, 0xc0, 0x44, 0xf5,
		0xdb, 0x75, 0xf3, 0xe3, 0xdc, 0x1d, 0xa0, 0x84, 0x5a, 0xdd, 0x16, 0x58, 0x1d, 0x07, 0xe2, 0x67,
		0x17, 0xff, 0xa5, 0x69, 0xeb, 0x0d, 0xeb, 0x9d, 0x69, 0xfc, 0xaf, 0xde, 0x9c, 0x9e, 0xe4, 0x58,
		0x1d, 0x07, 0xdb, 0xa0, 0x74, 0x1b, 0x4c, 0x7d, 0x16, 0x9b, 0x7e, 0xec, 0x60, 0x44, 0xa9, 0xea,
		0xad, 0xf8, 0xa0, 0x74, 0x2f, 0x40, 0x29, 0x66, 0x4b, 0xb7, 0xd2, 0x45, 0xba, 0xe4, 0x4e, 0xcc,
		0x8a, 0xc9, 0x95, 0xbc, 0xca, 0x9b, 0x3d, 0x83, 0xcc, 0x9b, 0xa0, 0xd5, 0x92, 0x25, 0x79, 0x93,
		0xb6, 0x12, 0x52, 0x24, 0x6f, 0x42, 0x56, 0x47, 0x7e, 0xe4, 0x4d, 0xd2, 0x0a, 0x49, 0x8e, 0xdc,
		0x8a, 0x9a, 0x97, 0xcc, 0xc8, 0x9b, 0x98, 0x15, 0x93, 0x16, 0xb9, 0x16, 0xb7, 0x1a, 0x72, 0x22,
		0xe7, 0x22, 0xff, 0x00, 0x99, 0x53, 0xc8, 0xdc, 0xd6, 0x9b, 0x86, 0xad, 0x37, 0xd0, 0x71, 0x41,
		0x91, 0xd8, 0x51, 0xaa, 0x07, 0x93, 0xcd, 0x8c, 0xee, 0xe4, 0x41, 0xb6, 0xe6, 0x65, 0xfb, 0x4c,
		0xb7, 0x0d, 0x13, 0x25, 0xcc, 0x2a, 0x25, 0xdf, 0x6e, 0xd7, 0x4d, 0x94, 0xe6, 0x31, 0x89, 0xdd,
		0x9c, 0x89, 0xdd, 0xd6, 0xbb, 0x97, 0x2d, 0x9c, 0x7c, 0x32, 0x4b, 0xbd, 0xab, 0xff, 0xcb, 0x35,
		0x2f, 0xdb, 0x13, 0xe9, 0xeb, 0x0e, 0xe2, 0x00, 0xf8, 0xaa, 0x4c, 0x20, 0x66, 0x3e, 0xc4, 0xab,
		0x0a, 0x19, 0xf3, 0x25, 0x5d, 0x45, 0x08, 0x98, 0x03, 0x21, 0x5b, 0x97, 0x8e, 0x8e, 0xd6, 0x8a,
		0x4a, 0x3d, 0xfd, 0xba, 0x2d, 0x40, 0xd2, 0x0f, 0x53, 0xce, 0xa4, 0x1e, 0xe5, 0x46, 0xce, 0x68,
		0xaa, 0xa8, 0x1a, 0x31, 0xd1, 0x52, 0x11, 0x86, 0x9c, 0x79, 0x35, 0xda, 0x7d, 0x31, 0x3b, 0x46,
		0x5b, 0x77, 0xf5, 0x0f, 0x0d, 0x5d, 0x6f, 0xea, 0x4d, 0x20, 0xa5, 0x42, 0xd9, 0x9f, 0xdb, 0xf5,
		0x77, 0x49, 0x54, 0x60, 0xeb, 0xf5, 0x6e, 0x57, 0x6f, 0x9f, 0xb5, 0x3e, 0x82, 0xca, 0xe3, 0xde,
		0x84, 0x0b, 0xab, 0xe3, 0xb6, 0x8c, 0xb6, 0x01, 0x22, 0x0f, 0x18, 0x9a, 0x45, 0x3b, 0xce, 0x9b,
		0xb0, 0x15, 0xd8, 0x2b, 0x8f, 0x9d, 0xd2, 0xdb, 0x27, 0xed, 0xf7, 0x20, 0x56, 0xc4, 0xa2, 0xf8,
		0x11, 0x87, 0x9e, 0x36, 0x0e, 0xa2, 0xd8, 0xfb, 0x32, 0x98, 0x28, 0x06, 0xbd, 0x3a, 0x16, 0x43,
		0x71, 0x2d, 0x42, 0x11, 0xf4, 0x04, 0x5b, 0xb0, 0xc2, 0x67, 0x63, 0xf7, 0x71, 0xf7, 0x79, 0xa3,
		0x50, 0xad, 0x56, 0x0f, 0x4e, 0x0b, 0x46, 0x10, 0x8b, 0x30, 0x10, 0x71, 0xa1, 0x31, 0x0c, 0xe2,
		0x70, 0x38, 0x28, 0xb4, 0x45, 0x14, 0x79, 0x37, 0xa2, 0xd0, 0x09, 0x87, 0xf1, 0xb0, 0x37, 0x1c,
		0x14, 0x5e, 0x1b, 0x8d, 0x76, 0xe7, 0x5b, 0x6d, 0xef, 0x73, 0x70, 0xff, 0xa0, 0xeb, 0x61, 0x78,
		0xff, 0xce, 0xc5, 0x6f, 0xbe, 0x17, 0x61, 0xe4, 0x0f, 0x83, 0x42, 0xad, 0xf0, 0xda, 0x78, 0xfc,
		0x8e, 0xee, 0x48, 0xf4, 0xfc, 0x6b, 0xbf, 0xe7, 0xc5, 0xfe, 0x30, 0x78, 0xcb, 0x18, 0x7e, 0x16,
		0xbb, 0xc3, 0x71, 0xd8, 0xe3, 0x51, 0x9e, 0x07, 0xeb, 0xfe, 0x25, 0x7e, 0x7e, 0x1f, 0x86, 0xfd,
		0x89, 0xb8, 0xef, 0x75, 0x8a, 0x39, 0xec, 0xbe, 0xf0, 0xa2, 0x7a, 0x78, 0x33, 0xbe, 0x15, 0x41,
		0x5c, 0x3c, 0x2d, 0xc4, 0xe1, 0x58, 0x30, 0x7f, 0x80, 0xa5, 0xd5, 0xd5, 0x2b, 0xdd, 0x8e, 0x79,
		0x0f, 0xfa, 0x55, 0x68, 0xfd, 0x13, 0xdd, 0xe7, 0x27, 0xf4, 0x4b, 0xc5, 0xf8, 0xe7, 0x88, 0x1e,
		0x4c, 0x16, 0x40, 0x9d, 0xac, 0x46, 0xec, 0x65, 0xff, 0xf2, 0x83, 0x09, 0x4a, 0xed, 0x13, 0x2f,
		0xd3, 0x18, 0x06, 0xd7, 0xfe, 0x0d, 0xc3, 0x42, 0x9d, 0x50, 0x5c, 0xfb, 0x3f, 0x78, 0xa2, 0x85,
		0xf9, 0x3e, 0x0d, 0x7b, 0xda, 0xe8, 0xef, 0x58, 0xbb, 0xf5, 0xe2, 0xde, 0x57, 0x06, 0x90, 0xe7,
		0x76, 0x6a, 0xcb, 0xce, 0x6c, 0x34, 0x15, 0x2f, 0x8f, 0x23, 0x51, 0xe6, 0xc1, 0x1e, 0x78, 0xae,
		0x07, 0xbb, 0x8b, 0x98, 0xfd, 0xb7, 0x72, 0x73, 0x38, 0xf0, 0xf1, 0x81, 0xed, 0xf9, 0x7d, 0x11,
		0xc4, 0x7e, 0xfc, 0x33, 0x14, 0xd7, 0x1c, 0xa6, 0x37, 0x83, 0xcb, 0xf2, 0x21, 0xc3, 0x5a, 0xc6,
		0xec, 0xab, 0x9d, 0x79, 0x11, 0xa3, 0xb1, 0x2f, 0xb2, 0xf0, 0x8f, 0x1d, 0x2e, 0xa2, 0x58, 0x05,
		0x41, 0xac, 0x88, 0xdb, 0x68, 0xe8, 0xb6, 0x63, 0x9c, 0x1b, 0x8d, 0xe9, 0x69, 0x47, 0xa7, 0xee,
		0x5c, 0x3c, 0x3c, 0x30, 0x06, 0x8f, 0x44, 0x2a, 0xeb, 0xe5, 0xb3, 0x26, 0x88, 0x5a, 0x9e, 0xa8,
		0x9b, 0x7a, 0xd7, 0x31, 0xcc, 0xa9, 0xa0, 0x2f, 0x4d, 0x5b, 0xaf, 0x37, 0x2e, 0xea, 0x67, 0x2d,
		0x1c, 0xe3, 0xc9, 0x14, 0xf1, 0x65, 0xa7, 0x35, 0xd1, 0x65, 0x3d, 0x99, 0x62, 0xa2, 0x77, 0xbb,
		0x6e, 0xc3, 0x32, 0xcf, 0x8d, 0x59, 0xe3, 0x7c, 0x48, 0x9a, 0x52, 0xd2, 0xb6, 0xfe, 0xaf, 0x4b,
		0xbd, 0x0b, 0x70, 0x96, 0x28, 0x64, 0xbd, 0x71, 0x61, 0xb9, 0xb6, 0xde, 0xc1, 0xd1, 0x09, 0x81,
		0x54, 0xa1, 0xad, 0xb2, 0xe5, 0xfa, 0xc1, 0x71, 0xa1, 0xb1, 0xc4, 0x92, 0x85, 0xd6, 0x4a, 0x96,
		0xed, 0x79, 0xdb, 0xe8, 0xbc, 0xaf, 0x41, 0xa2, 0xf2, 0x24, 0x7a, 0x61, 0xb5, 0x75, 0xb7, 0xfe,
		0x4e, 0x37, 0x9d, 0x45, 0x6c, 0xd0, 0x34, 0xba, 0x0d, 0xeb, 0xbd, 0x6e, 0x7f, 0x04, 0x36, 0x30,
		0x4b, 0x1b, 0x78, 0x21, 0x59, 0xde, 0x46, 0xcb, 0xec, 0xbc, 0xaf, 0xb9, 0x2d, 0xab, 0x51, 0x77,
		0x2c, 0xdb, 0xbd, 0xec, 0x34, 0xeb, 0x0e, 0x72, 0x38, 0x99, 0x02, 0x36, 0xdf, 0xeb, 0x76, 0x57,
		0x77, 0x17, 0xc3, 0xc4, 0xc1, 0xfd, 0x70, 0x49, 0x1a, 0xcc, 0x0f, 0x8d, 0xa0, 0xdb, 0xd6, 0x99,
		0xd1, 0xd2, 0xdd, 0x8e, 0xad, 0x9f, 0x1b, 0x1f, 0xa0, 0xcf, 0x3c, 0x62, 0x86, 0x32, 0x13, 0x49,
		0xb9, 0xd3, 0x72, 0x1b, 0x96, 0xe9, 0xd8, 0x56, 0x0b, 0x62, 0x95, 0x28, 0xd6, 0xcb, 0x96, 0x63,
		0x34, 0xea, 0x5d, 0xc7, 0x6d, 0x19, 0x5d, 0x47, 0x37, 0x75, 0xdb, 0x6d, 0x5a, 0x26, 0x22, 0x0b,
		0x5a, 0x11, 0x27, 0xb3, 0x98, 0x21, 0x63, 0x52, 0x19, 0xdb, 0x7a, 0xc7, 0xb2, 0xe1, 0xe8, 0x48,
		0x84, 0xbc, 0xee, 0x3e, 0x2d, 0x24, 0x4d, 0x28, 0x69, 0x44, 0x15, 0x4c, 0x82, 0x76, 0x74, 0xbb,
		0x3d, 0x3b, 0x2d, 0x85, 0x9c, 0xe5, 0xc9, 0x19, 0x59, 0x35, 0x9b, 0x84, 0x01, 0x15, 0x44, 0x02,
		0x7e, 0x3c, 0x0f, 0x1f, 0x41, 0x1c, 0xb5, 0x84, 0x6d, 0xbd, 0xdb, 0xb1, 0xcc, 0x2e, 0xb2, 0x11,
		0x89, 0x42, 0x7e, 0x38, 0xaa, 0x1c, 0x92, 0x95, 0x29, 0x59, 0xbb, 0xde, 0xd6, 0x27, 0x41, 0xc4,
		0xac, 0x09, 0x37, 0x84, 0x2b, 0x4f, 0xb8, 0xf3, 0xb6, 0xbd, 0x90, 0xa9, 0x4c, 0x99, 0x2e, 0xba,
		0xc8, 0x41, 0xac, 0x12, 0xc5, 0x8a, 0xe4, 0x98, 0x43, 0xbe, 0x88, 0x73, 0x89, 0xc4, 0x0b, 0xa2,
		0x9d, 0x42, 0xac, 0x0f, 0x3a, 0x27, 0x40, 0xb0, 0xf2, 0x04, 0xfb, 0x5e, 0xb7, 0xbb, 0x86, 0x65,
		0x56, 0xdc, 0x55, 0x0e, 0x18, 0x6d, 0x29, 0xd2, 0xf5, 0x3d, 0xd0, 0x96, 0x22, 0x5b, 0x76, 0x86,
		0xb6, 0x14, 0x8c, 0x78, 0x86, 0xb6, 0x14, 0x68, 0x4b, 0x91, 0xf1, 0x55, 0x32, 0xdb, 0x96, 0xe2,
		0x55, 0x86, 0xbc, 0x5d, 0xb1, 0x1e, 0x04, 0xc3, 0x38, 0x51, 0x51, 0x52, 0x90, 0x2a, 0x46, 0xbd,
		0xaf, 0xe2, 0xd6, 0x1b, 0x79, 0xf1, 0xd7, 0x89, 0x35, 0x96, 0x86, 0x23, 0x11, 0xf4, 0x92, 0x56,
		0x11, 0x5a, 0x20, 0xe2, 0xef, 0xc3, 0xf0, 0x6f, 0xcd, 0x9f, 0x78, 0xda, 0xa0, 0x27, 0x4a, 0x8f,
		0x5f, 0x88, 0x56, 0x5e, 0x29, 0x8d, 0x86, 0x03, 0xbf, 0xf7, 0x53, 0xbb, 0x1e, 0x86, 0xdf, 0xbd,
		0xb0, 0xef, 0x07, 0x37, 0xd3, 0x57, 0x7c, 0x11, 0xcd, 0x7e, 0x54, 0x0a, 0xc7, 0x03, 0x11, 0x25,
		0x7f, 0x96, 0xfc, 0xd1, 0xb7, 0x5a, 0xc9, 0xef, 0xdd, 0x4e, 0xfe, 0x33, 0x5d, 0x93, 0x10, 0x09,
		0x8b, 0x51, 0x1c, 0x8e, 0x7b, 0x71, 0x30, 0xf3, 0x75, 0xd6, 0xe2, 0x7b, 0x9a, 0xd3, 0xef, 0x60,
		0xcc, 0xbe, 0x82, 0xfb, 0xe8, 0xdf, 0xd1, 0xe3, 0x17, 0xdc, 0x4e, 0xf2, 0x45, 0xce, 0x17, 0x5f,
		0x71, 0xfa, 0x82, 0x2f, 0xa2, 0xd9, 0x4f, 0x5c, 0x7b, 0xf2, 0x15, 0x93, 0x3f, 0x5d, 0x63, 0xf4,
		0xad, 0xe6, 0x1a, 0xc9, 0x57, 0x74, 0x67, 0x1d, 0x38, 0x5e, 0x65, 0x43, 0xb7, 0x09, 0xf4, 0xba,
		0x18, 0xc5, 0x5e, 0x4c, 0xe7, 0x73, 0x17, 0x71, 0xcc, 0x74, 0x19, 0x22, 0xbb, 0x9c, 0xf7, 0x1f,
		0x20, 0x7a, 0xfc, 0xa2, 0x4d, 0x4b, 0x85, 0x68, 0x01, 0x86, 0xf6, 0x2c, 0xdc, 0x6d, 0x59, 0xb8,
		0x82, 0x39, 0xf6, 0x36, 0x2c, 0xec, 0x91, 0x9a, 0x82, 0xb6, 0x2b, 0xd9, 0xf2, 0xca, 0x4d, 0x3f,
		0xa4, 0x35, 0x9d, 0xde, 0xb0, 0xcf, 0xd8, 0xdf, 0x2a, 0x59, 0x0d, 0xfd, 0xad, 0xd2, 0x06, 0xa0,
		0xaa, 0x80, 0x54, 0x55, 0x76, 0x8c, 0xfe, 0x56, 0xe8, 0x6f, 0xf5, 0x44, 0xb9, 0xa1, 0xbf, 0x95,
		0xc4, 0xb5, 0xd4, 0xf6, 0xb7, 0x62, 0x1c, 0x84, 0x90, 0xa3, 0xfe, 0x56, 0xcd, 0xae, 0xb3, 0xdc,
		0x00, 0x28, 0xb9, 0xb7, 0x8b, 0x83, 0x28, 0x3a, 0xf9, 0x9e, 0xe9, 0x1f, 0x2d, 0xb3, 0xe9, 0x76,
		0x1b, 0x56, 0x47, 0x77, 0xad, 0x73, 0xb7, 0x6b, 0x37, 0x20, 0x6e, 0x3a, 0x71, 0x63, 0x7a, 0x4a,
		0x7e, 0xc0, 0x44, 0x81, 0x96, 0xa7, 0x54, 0xee, 0x4a, 0x41, 0x06, 0xdb, 0x30, 0xdf, 0x86, 0xc9,
		0xbf, 0xeb, 0xcd, 0xb6, 0x61, 0xba, 0x1d, 0xdb, 0xba, 0x30, 0xce, 0x0c, 0x47, 0xc7, 0x00, 0x76,
		0x05, 0xfb, 0xa0, 0xdb, 0xb6, 0x6b, 0x98, 0x13, 0x2b, 0x48, 0x2e, 0xf4, 0x18, 0xe6, 0x3b, 0xf7,
		0x02, 0xc0, 0xa4, 0x62, 0x27, 0x2e, 0x9a, 0x76, 0x37, 0xa9, 0x32, 0x6f, 0x59, 0x9c, 0xe5, 0xa5,
		0xd8, 0x80, 0xf9, 0x06, 0x98, 0xd6, 0xf4, 0x4e, 0x9b, 0xeb, 0x58, 0x13, 0x78, 0xc2, 0x16, 0xf0,
		0x6f, 0x01, 0xef, 0x05, 0x64, 0xc8, 0x7d, 0x2e, 0x77, 0x5b, 0xff, 0x3f, 0x7a, 0xc3, 0x81, 0xfa,
		0x2b, 0xde, 0x86, 0x89, 0x17, 0x9e, 0xe4, 0x05, 0xee, 0x79, 0xdd, 0x68, 0xe9, 0x4d, 0xb7, 0x63,
		0xb5, 0x8c, 0xc6, 0x47, 0xcc, 0xf6, 0x43, 0x8e, 0x9f, 0xcd, 0x30, 0x3b, 0x7f, 0xf2, 0x56, 0x1d,
		0x4e, 0xe7, 0x4f, 0xe2, 0x8a, 0xc2, 0xe6, 0xfc, 0x09, 0x5a, 0x59, 0x78, 0x9c, 0x3f, 0x51, 0xa3,
		0x0f, 0xcf, 0x0e, 0x87, 0xbb, 0xf9, 0x13, 0xb7, 0xea, 0xb0, 0x36, 0x9f, 0x53, 0x1e, 0x3a, 0xad,
		0x8f, 0x38, 0xe2, 0x49, 0xc5, 0x2e, 0x34, 0xeb, 0x38, 0x62, 0x50, 0x28, 0x7e, 0xbd, 0x59, 0x9f,
		0x44, 0xe3, 0xef, 0xed, 0x72, 0xe5, 0x18, 0xfb, 0x90, 0x86, 0x7d, 0x38, 0xa9, 0x60, 0x1f, 0x52,
		0xb0, 0x0f, 0x95, 0xc3, 0x1a, 0xf6, 0x21, 0x05, 0xfb, 0x50, 0xab, 0x82, 0xe2, 0x43, 0xac, 0x97,
		0xa9, 0x28, 0x23, 0xbf, 0x62, 0x56, 0x13, 0x4d, 0x40, 0xde, 0xbc, 0x51, 0x03, 0xe4, 0xcd, 0x1b,
		0x1d, 0x40, 0xde, 0xac, 0x51, 0x40, 0x8e, 0xe7, 0x5e, 0x82, 0x13, 0x49, 0xc9, 0x3e, 0x34, 0xeb,
		0x28, 0x33, 0x53, 0xba, 0x01, 0x7a, 0xb3, 0x6e, 0x83, 0x17, 0x49, 0xd7, 0x4e, 0x80, 0x19, 0x49,
		0xc9, 0x4e, 0x80, 0x1b, 0x49, 0xcb, 0x4e, 0x80, 0x1d, 0x41, 0xdc, 0x97, 0xb9, 0x78, 0x23, 0xcf,
		0x82, 0x56, 0x13, 0x57, 0x40, 0xe2, 0xe0, 0x48, 0x76, 0x3d, 0x4e, 0x80, 0xc4, 0xc1, 0x93, 0x48,
		0x16, 0xf8, 0x6c, 0x5c, 0x3d, 0x8a, 0x45, 0x14, 0x0a, 0xde, 0xb4, 0xa6, 0xb2, 0x47, 0x98, 0x0b,
		0xb3, 0xcd, 0x80, 0xf6, 0xe4, 0x46, 0xba, 0xe0, 0x8b, 0x15, 0x8b, 0x1e, 0xc0, 0x08, 0xd3, 0xcd,
		0x94, 0xfe, 0xe4, 0x40, 0xbe, 0x1f, 0x1c, 0x17, 0x31, 0xa3, 0x2a, 0x70, 0x7c, 0x28, 0xfc, 0x76,
		0xbd, 0x75, 0x6e, 0xd9, 0x6d, 0xbd, 0xc9, 0x3d, 0x59, 0x51, 0x81, 0xba, 0xa7, 0x74, 0x07, 0x2e,
		0x5b, 0x8e, 0xd1, 0x69, 0xe9, 0xae, 0x61, 0x3a, 0xe7, 0x6e, 0xb7, 0xee, 0x18, 0xdd, 0xf3, 0x8f,
		0xd8, 0x0d, 0x45, 0xbb, 0x61, 0x5a, 0xae, 0x6e, 0xdb, 0x16, 0x8e, 0x95, 0x95, 0x88, 0xbe, 0x7b,
		0xd9, 0xb8, 0x98, 0xd8, 0x81, 0x6e, 0x9f, 0xd7, 0x1b, 0x3a, 0xf6, 0x40, 0xd9, 0x1e, 0x38, 0xd3,
		0x9b, 0xc8, 0xa6, 0x63, 0xa3, 0x75, 0x00, 0x22, 0xbb, 0xcc, 0x05, 0x17, 0xf9, 0x93, 0x74, 0x1a,
		0x82, 0x88, 0xdc, 0x49, 0x9d, 0x3f, 0x58, 0xc8, 0xa3, 0x88, 0x55, 0x05, 0x05, 0xb9, 0x95, 0xb5,
		0x12, 0xe7, 0x9f, 0x2b, 0x69, 0x83, 0x15, 0x4e, 0x81, 0xf8, 0x15, 0xa6, 0x7a, 0x08, 0x70, 0x77,
		0xc5, 0x86, 0x11, 0x02, 0xc8, 0x17, 0xf2, 0x85, 0xd5, 0xd6, 0xdd, 0xfa, 0x3b, 0xdd, 0x74, 0x16,
		0x15, 0x1c, 0x4d, 0xa3, 0xdb, 0xb0, 0xde, 0xeb, 0xf6, 0x47, 0x70, 0xc6, 0xe9, 0xdc, 0x10, 0x1c,
		0xb3, 0xc1, 0xcc, 0x77, 0x40, 0xab, 0x72, 0x2f, 0x75, 0x44, 0xa6, 0x29, 0xdd, 0x12, 0x00, 0x2c,
		0x4c, 0x7d, 0x27, 0xf4, 0x6a, 0xf7, 0xe5, 0x6e, 0x98, 0xef, 0x75, 0xbb, 0xab, 0xbb, 0xa6, 0x6e,
		0xbc, 0xbb, 0x38, 0xb3, 0x6c, 0xb7, 0xde, 0x7c, 0xaf, 0xdb, 0x8e, 0xd1, 0xd5, 0xdb, 0x93, 0xbd,
		0x00, 0xb8, 0xa6, 0x68, 0x33, 0x00, 0xab, 0x30, 0xef, 0x8c, 0x6b, 0x54, 0x0e, 0x25, 0xde, 0xb5,
		0x5a, 0x46, 0xc3, 0x70, 0xea, 0x8e, 0x61, 0x99, 0xc0, 0xd3, 0x14, 0xed, 0x05, 0xe0, 0x14, 0xc6,
		0x9d, 0x6d, 0x85, 0xda, 0x7d, 0x81, 0xb7, 0xad, 0x33, 0xa3, 0xa5, 0xbb, 0x1d, 0x5b, 0x3f, 0x37,
		0x3e, 0x20, 0x36, 0x55, 0x88, 0xa5, 0xbf, 0xdb, 0x09, 0x20, 0x29, 0x0c, 0x3b, 0xcb, 0xea, 0x94,
		0x37, 0x71, 0x23, 0x24, 0x4d, 0x09, 0x8c, 0x22, 0x1e, 0x85, 0x59, 0xef, 0x8a, 0x36, 0xe5, 0x40,
		0xda, 0x97, 0x2d, 0xc7, 0x68, 0xd4, 0xbb, 0x8e, 0xdb, 0x32, 0xba, 0x8e, 0x6e, 0xea, 0xb6, 0xdb,
		0xb4, 0x4c, 0x0c, 0x16, 0x4f, 0xc7, 0x2e, 0x00, 0x3e, 0x61, 0xd0, 0x59, 0x55, 0xa5, 0x5c, 0x8a,
		0x3a, 0xa9, 0xf8, 0x07, 0x78, 0xa6, 0x63, 0x1b, 0x80, 0x9e, 0x30, 0xe9, 0xcc, 0xea, 0x52, 0x2e,
		0x65, 0x6d, 0xeb, 0x1d, 0xcb, 0x06, 0x0b, 0x9a, 0x96, 0x7d, 0x00, 0x80, 0xc2, 0xa8, 0xb3, 0xab,
		0x4c, 0xbb, 0x2f, 0x6c, 0xb3, 0xd9, 0xd4, 0x5d, 0xc3, 0x3c, 0xb7, 0xec, 0xf6, 0x94, 0x20, 0xb1,
		0xf5, 0x6e, 0xc7, 0x32, 0xbb, 0x48, 0xdf, 0x99, 0xf7, 0xc1, 0xda, 0xb4, 0x0f, 0xb6, 0x7e, 0x7e,
		0xd9, 0xe5, 0x1c, 0xd7, 0xae, 0x40, 0xf9, 0x53, 0xbf, 0x09, 0xdd, 0xcb, 0x46, 0x43, 0xef, 0x76,
		0xb1, 0x09, 0x2a, 0x37, 0xe1, 0xd2, 0xfc, 0xcb, 0xb4, 0xfe, 0x6d, 0x22, 0x96, 0x80, 0x7b, 0x7b,
		0xb2, 0x32, 0xa1, 0x7e, 0x37, 0x05, 0x16, 0x8d, 0xba, 0x5d, 0x98, 0xf3, 0x4e, 0x69, 0x52, 0x8e,
		0x24, 0x8d, 0xa2, 0x08, 0xf5, 0xb8, 0x89, 0x7a, 0x08, 0x18, 0xf3, 0x0e, 0x28, 0x52, 0x0e, 0x04,
		0xfd, 0x38, 0x77, 0xc1, 0x61, 0x5e, 0x6a, 0x36, 0xc1, 0xe8, 0xbc, 0xaf, 0x26, 0x97, 0x28, 0x91,
		0xc4, 0xab, 0xdc, 0x83, 0x1a, 0xf6, 0x40, 0xed, 0x1e, 0x98, 0xf5, 0x36, 0x82, 0x07, 0xf8, 0xb4,
		0x0c, 0xc2, 0x69, 0x9e, 0x65, 0x5d, 0x83, 0xac, 0x77, 0x11, 0x1e, 0x73, 0x28, 0x66, 0x75, 0x07,
		0x5b, 0x79, 0x16, 0x36, 0xfb, 0x01, 0x56, 0x9e, 0x85, 0xcd, 0x7e, 0x50, 0xb5, 0xfb, 0xc2, 0xee,
		0xd4, 0x1b, 0x7f, 0xe9, 0x8e, 0xeb, 0x58, 0x96, 0x7b, 0x66, 0xbc, 0x43, 0x46, 0xad, 0x52, 0xf8,
		0x60, 0x20, 0x61, 0xbe, 0x19, 0xd3, 0xa0, 0x3c, 0x48, 0xd8, 0xae, 0xb7, 0xdd, 0x8e, 0x6d, 0x9d,
		0xb5, 0xf4, 0x36, 0xf0, 0x51, 0xa1, 0xec, 0x75, 0xdb, 0x76, 0x2f, 0x9a, 0xb6, 0x7b, 0x6e, 0xe8,
		0x2d, 0x94, 0x6d, 0xf1, 0x8b, 0xff, 0x83, 0x93, 0x88, 0xbf, 0x71, 0x51, 0x37, 0xcc, 0x04, 0x71,
		0x5a, 0x96, 0xf9, 0x0e, 0xfb, 0xa0, 0x6a, 0x1f, 0x66, 0x98, 0x8f, 0x0d, 0xe0, 0xde, 0x00, 0xc3,
		0x6c, 0x58, 0xed, 0x4e, 0x4b, 0x77, 0xf4, 0x7b, 0x7b, 0xc0, 0x2e, 0x70, 0xef, 0x82, 0xd5, 0x71,
		0x60, 0x02, 0xaa, 0x84, 0xdf, 0xb5, 0xdd, 0xcb, 0x4e, 0x47, 0x9f, 0xfa, 0x63, 0xdd, 0xc6, 0xb1,
		0x13, 0xfb, 0x0e, 0x4c, 0x54, 0xbf, 0x5d, 0x37, 0x3f, 0xce, 0xdd, 0x01, 0x4a, 0xa8, 0xd5, 0x6d,
		0x81, 0xd5, 0x71, 0x20, 0x7e, 0x76, 0xf1, 0x5f, 0x9a, 0xb6, 0xde, 0xb0, 0xde, 0x99, 0xc6, 0xff,
		0xea, 0xcd, 0xe9, 0x49, 0x8e, 0xd5, 0x71, 0xb0, 0x0d, 0x4a, 0xb7, 0xc1, 0xd4, 0x67, 0xb1, 0xe9,
		0xc7, 0x0e, 0x46, 0x94, 0xaa, 0xde, 0x8a, 0x0f, 0x4a, 0xf7, 0x02, 0x94, 0x62, 0xb6, 0x74, 0x2b,
		0x5d, 0xa4, 0x4b, 0xee, 0xc4, 0xac, 0x98, 0x5c, 0xc9, 0xab, 0xbc, 0xd9, 0x33, 0xc8, 0xbc, 0x09,
		0x5a, 0x2d, 0x59, 0x92, 0x37, 0x69, 0x2b, 0x21, 0x45, 0xf2, 0x26, 0x64, 0x75, 0xe4, 0x47, 0xde,
		0x24, 0xad, 0x90, 0xe4, 0xc8, 0xad, 0xa8, 0x79, 0xc9, 0x8c, 0xbc, 0x89, 0x59, 0x31, 0x69, 0x91,
		0x6b, 0x71, 0xab, 0x21, 0x27, 0x72, 0x2e, 0xf2, 0x0f, 0x90, 0x39, 0x85, 0xcc, 0x6d, 0xbd, 0x69,
		0xd8, 0x7a, 0x03, 0x1d, 0x17, 0x14, 0x89, 0x1d, 0xa5, 0x7a, 0x30, 0xd9, 0xcc, 0xe8, 0x4e, 0x1e,
		0x64, 0x6b, 0x5e, 0xb6, 0xcf, 0x74, 0xdb, 0x30, 0x51, 0xc2, 0xac, 0x52, 0xf2, 0xed, 0x76, 0xdd,
		0x44, 0x69, 0x1e, 0x93, 0xd8, 0xcd, 0x99, 0xd8, 0x6d, 0xbd, 0x7b, 0xd9, 0xc2, 0xc9, 0x27, 0xb3,
		0xd4, 0xbb, 0xfa, 0xbf, 0x5c, 0xf3, 0xb2, 0x3d, 0x91, 0xbe, 0xee, 0x20, 0x0e, 0x80, 0xaf, 0xca,
		0x04, 0x62, 0xe6, 0x43, 0xbc, 0xaa, 0x90, 0x31, 0x5f, 0xd2, 0x55, 0x84, 0x80, 0x39, 0x10, 0xb2,
		0x75, 0xe9, 0xe8, 0x68, 0xad, 0xa8, 0xd4, 0xd3, 0xaf, 0xdb, 0x02, 0x24, 0xfd, 0x30, 0xe5, 0x4c,
		0xea, 0x51, 0x6e, 0xe4, 0x8c, 0xa6, 0x8a, 0xaa, 0x11, 0x13, 0x2d, 0x15, 0x61, 0xc8, 0x99, 0x57,
		0xa3, 0xdd, 0x17, 0xb3, 0x63, 0xb4, 0x75, 0x57, 0xff, 0xd0, 0xd0, 0xf5, 0xa6, 0xde, 0x04, 0x52,
		0x2a, 0x94, 0xfd, 0xb9, 0x5d, 0x7f, 0x97, 0x44, 0x05, 0xb6, 0x5e, 0xef, 0x76, 0xf5, 0xf6, 0x59,
		0xeb, 0x23, 0xa8, 0x3c, 0xee, 0x4d, 0xb8, 0xb0, 0x3a, 0x6e, 0xcb, 0x68, 0x1b, 0x20, 0xf2, 0x80,
		0xa1, 0x59, 0xb4, 0xe3, 0xbc, 0x09, 0x5b, 0x81, 0xbd, 0xf2, 0xd8, 0x29, 0xbd, 0x7d, 0xd2, 0x7e,
		0x0f, 0x62, 0x45, 0x2c, 0x8a, 0x1f, 0x71, 0xe8, 0x69, 0xe3, 0x20, 0x8a, 0xbd, 0x2f, 0x83, 0x89,
		0x62, 0xd0, 0xab, 0x63, 0x31, 0x14, 0xd7, 0x22, 0x14, 0x41, 0x4f, 0xb0, 0x05, 0x2b, 0x7c, 0x36,
		0x76, 0x1f, 0x77, 0x9f, 0x37, 0x0a, 0xd5, 0x6a, 0xf5, 0xe0, 0xb4, 0x60, 0x04, 0xb1, 0x08, 0x03,
		0x11, 0x17, 0x1a, 0xc3, 0x20, 0x0e, 0x87, 0x83, 0x42, 0x5b, 0x44, 0x91, 0x77, 0x23, 0x0a, 0x9d,
		0x70, 0x18, 0x0f, 0x7b, 0xc3, 0x41, 0xe1, 0xb5, 0xd1, 0x68, 0x77, 0xbe, 0xd5, 0xf6, 0x3e, 0x07,
		0xf7, 0x0f, 0xba, 0x1e, 0x86, 0xf7, 0xef, 0x5c, 0xfc, 0xe6, 0x7b, 0x11, 0x46, 0xfe, 0x30, 0x28,
		0xd4, 0x0a, 0xaf, 0x8d, 0xc7, 0xef, 0xe8, 0x8e, 0x44, 0xcf, 0xbf, 0xf6, 0x7b, 0x5e, 0xec, 0x0f,
		0x83, 0xb7, 0x8c, 0xe1, 0x67, 0xb1, 0x3b, 0x1c, 0x87, 0x3d, 0x1e, 0xe5, 0x79, 0xb0, 0xee, 0x5f,
		0xe2, 0xe7, 0xf7, 0x61, 0xd8, 0x9f, 0x88, 0xfb, 0x5e, 0xa7, 0x98, 0xc3, 0xee, 0x0b, 0x2f, 0xaa,
		0x87, 0x37, 0xe3, 0x5b, 0x11, 0xc4, 0xc5, 0xd3, 0x42, 0x1c, 0x8e, 0x05, 0xf3, 0x07, 0x58, 0x5a,
		0x5d, 0xbd, 0xd2, 0xed, 0x98, 0xf7, 0xa0, 0x5f, 0x85, 0xd6, 0x3f, 0xd1, 0x7d, 0x7e, 0x42, 0xbf,
		0x54, 0x8c, 0x7f, 0x8e, 0xe8, 0xc1, 0x64, 0x01, 0xd4, 0xc9, 0x6a, 0xc4, 0x5e, 0xf6, 0x2f, 0x3f,
		0x98, 0xa0, 0xd4, 0x3e, 0xf1, 0x32, 0x8d, 0x61, 0x70, 0xed, 0xdf, 0x30, 0x2c, 0xd4, 0x09, 0xc5,
		0xb5, 0xff, 0x83, 0x27, 0x5a, 0x98, 0xef, 0xd3, 0xb0, 0xa7, 0x8d, 0xfe, 0x8e, 0xb5, 0x5b, 0x2f,
		0xee, 0x7d, 0x65, 0x00, 0x79, 0x6e, 0xa7, 0xb6, 0xec, 0xcc, 0x46, 0x53, 0xf1, 0xf2, 0x38, 0x12,
		0x65, 0x1e, 0xec, 0x81, 0xe7, 0x7a, 0xb0, 0xbb, 0x88, 0xd9, 0x7f, 0x2b, 0x37, 0x87, 0x03, 0x1f,
		0x1f, 0xd8, 0x9e, 0xdf, 0x17, 0x41, 0xec, 0xc7, 0x3f, 0x43, 0x71, 0xcd, 0x61, 0x7a, 0x33, 0xb8,
		0x2c, 0x1f, 0x32, 0xac, 0x65, 0xcc, 0xbe, 0xda, 0x99, 0x17, 0x31, 0x1a, 0xfb, 0x22, 0x0b, 0xff,
		0xd8, 0xe1, 0x22, 0x8a, 0x55, 0x10, 0xc4, 0x8a, 0xb8, 0x8d, 0x86, 0x6e, 0x3b, 0xc6, 0xb9, 0xd1,
		0x98, 0x9e, 0x76, 0x74, 0xea, 0xce, 0xc5, 0xc3, 0x03, 0x63, 0xf0, 0x48, 0xa4, 0xb2, 0x5e, 0x3e,
		0x6b, 0x82, 0xa8, 0xe5, 0x89, 0xba, 0xa9, 0x77, 0x1d, 0xc3, 0x9c, 0x0a, 0xfa, 0xd2, 0xb4, 0xf5,
		0x7a, 0xe3, 0xa2, 0x7e, 0xd6, 0xc2, 0x31, 0x9e, 0x4c, 0x11, 0x5f, 0x76, 0x5a, 0x13, 0x5d, 0xd6,
		0x93, 0x29, 0x26, 0x7a, 0xb7, 0xeb, 0x36, 0x2c, 0xf3, 0xdc, 0x98, 0x35, 0xce, 0x87, 0xa4, 0x29,
		0x25, 0x6d, 0xeb, 0xff, 0xba, 0xd4, 0xbb, 0x00, 0x67, 0x89, 0x42, 0xd6, 0x1b, 0x17, 0x96, 0x6b,
		0xeb, 0x1d, 0x1c, 0x9d, 0x10, 0x48, 0x15, 0xda, 0x2a, 0x5b, 0xae, 0x1f, 0x1c, 0x17, 0x1a, 0x4b,
		0x2c, 0x59, 0x68, 0xad, 0x64, 0xd9, 0x9e, 0xb7, 0x8d, 0xce, 0xfb, 0x1a, 0x24, 0x2a, 0x4f, 0xa2,
		0x17, 0x56, 0x5b, 0x77, 0xeb, 0xef, 0x74, 0xd3, 0x59, 0xc4, 0x06, 0x4d, 0xa3, 0xdb, 0xb0, 0xde,
		0xeb, 0xf6, 0x47, 0x60, 0x03, 0xb3, 0xb4, 0x81, 0x17, 0x92, 0xe5, 0x6d, 0xb4, 0xcc, 0xce, 0xfb,
		0x9a, 0xdb, 0xb2, 0x1a, 0x75, 0xc7, 0xb2, 0xdd, 0xcb, 0x4e, 0xb3, 0xee, 0x20, 0x87, 0x93, 0x29,
		0x60, 0xf3, 0xbd, 0x6e, 0x77, 0x75, 0x77, 0x31, 0x4c, 0x1c, 0xdc, 0x0f, 0x97, 0xa4, 0xc1, 0xfc,
		0xd0, 0x08, 0xba, 0x6d, 0x9d, 0x19, 0x2d, 0xdd, 0xed, 0xd8, 0xfa, 0xb9, 0xf1, 0x01, 0xfa, 0xcc,
		0x23, 0x66, 0x28, 0x33, 0x91, 0x94, 0x3b, 0x2d, 0xb7, 0x61, 0x99, 0x8e, 0x6d, 0xb5, 0x20, 0x56,
		0x89, 0x62, 0xbd, 0x6c, 0x39, 0x46, 0xa3, 0xde, 0x75, 0xdc, 0x96, 0xd1, 0x75, 0x74, 0x53, 0xb7,
		0xdd, 0xa6, 0x65, 0x22, 0xb2, 0xa0, 0x15, 0x71, 0x32, 0x8b, 0x19, 0x32, 0x26, 0x95, 0xb1, 0xad,
		0x77, 0x2c, 0x1b, 0x8e, 0x8e, 0x44, 0xc8, 0xeb, 0xee, 0xd3, 0x42, 0xd2, 0x84, 0x92, 0x46, 0x54,
		0xc1, 0x24, 0x68, 0x47, 0xb7, 0xdb, 0xb3, 0xd3, 0x52, 0xc8, 0x59, 0x9e, 0x9c, 0x91, 0x55, 0xb3,
		0x49, 0x18, 0x50, 0x41, 0x24, 0xe0, 0xc7, 0xf3, 0xf0, 0x11, 0xc4, 0x51, 0x4b, 0xd8, 0xd6, 0xbb,
		0x1d, 0xcb, 0xec, 0x22, 0x1b, 0x91, 0x28, 0xe4, 0x87, 0xa3, 0xca, 0x21, 0x59, 0x99, 0x92, 0xb5,
		0xeb, 0x6d, 0x7d, 0x12, 0x44, 0xcc, 0x9a, 0x70, 0x43, 0xb8, 0xf2, 0x84, 0x3b, 0x6f, 0xdb, 0x0b,
		0x99, 0xca, 0x94, 0xe9, 0xa2, 0x8b, 0x1c, 0xc4, 0x2a, 0x51, 0xac, 0x48, 0x8e, 0x39, 0xe4, 0x8b,
		0x38, 0x97, 0x48, 0xbc, 0x20, 0xda, 0x29, 0xc4, 0xfa, 0xa0, 0x73, 0x02, 0x04, 0x2b, 0x4f, 0xb0,
		0xef, 0x75, 0xbb, 0x6b, 0x58, 0x66, 0xc5, 0x5d, 0xe5, 0x80, 0xd1, 0x96, 0x22, 0x5d, 0xdf, 0x03,
		0x6d, 0x29, 0xb2, 0x65, 0x67, 0x68, 0x4b, 0xc1, 0x88, 0x67, 0x68, 0x4b, 0x81, 0xb6, 0x14, 0x19,
		0x5f, 0x25, 0xb3, 0x6d, 0x29, 0x5e, 0x65, 0xc8, 0xdb, 0x15, 0xeb, 0x41, 0x30, 0x8c, 0x13, 0x15,
		0x25, 0x05, 0xa9, 0x62, 0xd4, 0xfb, 0x2a, 0x6e, 0xbd, 0x91, 0x17, 0x7f, 0x9d, 0x58, 0x63, 0x69,
		0x38, 0x12, 0x41, 0x2f, 0x69, 0x15, 0xa1, 0x05, 0x22, 0xfe, 0x3e, 0x0c, 0xff, 0xd6, 0xfc, 0x89,
		0xa7, 0x0d, 0x7a, 0xa2, 0xf4, 0xf8, 0x85, 0x68, 0xe5, 0x95, 0xd2, 0x68, 0x38, 0xf0, 0x7b, 0x3f,
		0xb5, 0xeb, 0x61, 0xf8, 0xdd, 0x0b, 0xfb, 0x7e, 0x70, 0x33, 0x7d, 0xc5, 0x17, 0xd1, 0xec, 0x47,
		0xa5, 0x70, 0x3c, 0x10, 0x51, 0xf2, 0x67, 0xc9, 0x1f, 0x7d, 0xab, 0x95, 0xfc, 0xde, 0xed, 0xe4,
		0x3f, 0x51, 0xec, 0xc5, 0x94, 0x40, 0x58, 0x8c, 0xe2, 0x70, 0xdc, 0x8b, 0x83, 0x99, 0xab, 0xb3,
		0x16, 0x5f, 0xd3, 0x9c, 0x7e, 0x05, 0x63, 0xf6, 0x0d, 0xdc, 0x47, 0xff, 0x8e, 0x1e, 0xbf, 0xe0,
		0x76, 0x92, 0xef, 0x71, 0xbe, 0xf8, 0x86, 0xd3, 0x17, 0x7c, 0x11, 0xcd, 0x7e, 0xe2, 0xda, 0x93,
		0x6f, 0x98, 0xfc, 0xe9, 0x1a, 0xa3, 0x6f, 0x35, 0xd7, 0x48, 0xbe, 0xa1, 0xdb, 0x4d, 0xbe, 0xe1,
		0xab, 0x6c, 0x68, 0xb6, 0xdc, 0x27, 0x4a, 0xb6, 0x11, 0x6a, 0xdb, 0x48, 0x89, 0x4d, 0x10, 0x58,
		0x83, 0x72, 0x2b, 0x90, 0xab, 0xff, 0xf2, 0xb4, 0x54, 0xa2, 0x86, 0x16, 0xa7, 0x50, 0x26, 0x5b,
		0x31, 0x17, 0x51, 0x3a, 0x05, 0x52, 0x2e, 0xba, 0x6a, 0x48, 0x7e, 0xec, 0xa2, 0xe9, 0x50, 0x45,
		0xf2, 0x83, 0x09, 0x9b, 0x0c, 0x71, 0x35, 0x15, 0xa2, 0x4e, 0x41, 0xd8, 0x9a, 0x06, 0xb1, 0xe5,
		0x13, 0x8c, 0x4d, 0x81, 0xd2, 0xed, 0xff, 0x9a, 0x7e, 0x48, 0xa3, 0xfa, 0x7d, 0x11, 0xc5, 0x7e,
		0x90, 0x78, 0x56, 0xcd, 0xeb, 0xf7, 0x43, 0x11, 0x45, 0x74, 0xfa, 0x39, 0xb7, 0xb3, 0x75, 0x8b,
		0x12, 0x29, 0x10, 0x6d, 0xaf, 0x35, 0xf2, 0x1e, 0x6b, 0x1c, 0xbd, 0xd5, 0xb8, 0x7b, 0xaa, 0x71,
		0x31, 0x31, 0xec, 0x3d, 0xd4, 0xd8, 0x69, 0x16, 0x05, 0x3d, 0xd3, 0xb2, 0x95, 0x52, 0x93, 0xf7,
		0x46, 0xbb, 0xef, 0x89, 0x36, 0xfa, 0x56, 0xd3, 0xc8, 0xb5, 0x6c, 0x11, 0xb5, 0x1d, 0x13, 0xae,
		0xd1, 0xf1, 0xe2, 0x58, 0x84, 0x01, 0x39, 0xef, 0x5d, 0x7c, 0xfd, 0xfa, 0xd3, 0xbe, 0x76, 0xe2,
		0x69, 0xd7, 0x75, 0xed, 0xfc, 0xea, 0x9f, 0xf2, 0x9b, 0xea, 0xdd, 0xe9, 0xde, 0x3f, 0x47, 0x77,
		0x8f, 0x5f, 0xfc, 0xb5, 0xee, 0xd7, 0xca, 0x6f, 0x8e, 0xee, 0x4e, 0x37, 0xfc, 0xa4, 0x76, 0x77,
		0xfa, 0xc4, 0x67, 0x1c, 0xde, 0xbd, 0x5e, 0xf9, 0xd5, 0xc9, 0xeb, 0x95, 0x4d, 0x6f, 0xa8, 0x6e,
		0x78, 0xc3, 0xc1, 0xa6, 0x37, 0x1c, 0x6c, 0x78, 0xc3, 0xc6, 0x8f, 0x54, 0xd9, 0xf0, 0x86, 0xc3,
		0xbb, 0x5f, 0x2b, 0xbf, 0xff, 0x7a, 0xfd, 0xaf, 0xd6, 0xee, 0xf6, 0x7e, 0x6d, 0xfa, 0xd9, 0xd1,
		0xdd, 0xaf, 0xd3, 0xbd, 0xbd, 0xd2, 0xeb, 0x72, 0xe5, 0xd3, 0xbe, 0x76, 0x7c, 0xf5, 0xab, 0xfc,
		0x69, 0x5f, 0x2b, 0x5f, 0x4d, 0x7e, 0xf3, 0xea, 0xd7, 0xa7, 0xb2, 0x76, 0x32, 0xff, 0xeb, 0xe4,
		0xcf, 0x3d, 0x3a, 0x18, 0xb9, 0xa2, 0xd4, 0x5f, 0xab, 0x6b, 0x7c, 0x60, 0x53, 0xe2, 0xff, 0x40,
		0x8b, 0x53, 0xae, 0xc5, 0xff, 0x45, 0xa8, 0xc6, 0x59, 0x21, 0xf7, 0xde, 0xb0, 0x64, 0x0e, 0x33,
		0x07, 0xa8, 0x45, 0x22, 0x56, 0x92, 0x44, 0x2c, 0xaf, 0x8f, 0x7c, 0x02, 0xf9, 0x04, 0xf2, 0x09,
		0xe4, 0x13, 0x19, 0xcd, 0x27, 0x06, 0xc2, 0xbb, 0xa6, 0xed, 0xaf, 0xbc, 0xc8, 0x25, 0x8e, 0x68,
		0x73, 0x89, 0xd9, 0x89, 0x4a, 0x6f, 0x82, 0xca, 0xd1, 0x69, 0x5f, 0x5c, 0xfb, 0x81, 0xe8, 0x27,
		0xff, 0x58, 0xbc, 0xb8, 0x94, 0x3c, 0xfd, 0xf6, 0x07, 0x8b, 0xd7, 0x93, 0xe3, 0x0c, 0xf8, 0xde,
		0xc4, 0xf7, 0x5d, 0x0f, 0x86, 0xdf, 0xb5, 0x81, 0xf7, 0x45, 0x0c, 0x78, 0x7d, 0xee, 0xd2, 0xba,
		0xf0, 0xb5, 0xf0, 0xb5, 0xf0, 0xb5, 0xf0, 0xb5, 0x59, 0xe6, 0xee, 0xc8, 0xe1, 0x6c, 0x19, 0xd2,
		0x28, 0x5d, 0xae, 0xed, 0x05, 0x37, 0xf4, 0x45, 0xab, 0x0c, 0x15, 0xb8, 0x6d, 0x3f, 0xe0, 0x1b,
		0xc1, 0x90, 0x8c, 0x43, 0xa0, 0x9f, 0x95, 0xb3, 0x58, 0xef, 0x3c, 0xf4, 0x7a, 0x13, 0x37, 0xda,
		0xf4, 0x6f, 0xfc, 0x38, 0x62, 0x5c, 0xd8, 0x14, 0x37, 0x5e, 0xec, 0x7f, 0x9b, 0x7c, 0xd7, 0x6b,
		0x6f, 0x10, 0x09, 0xfa, 0xd2, 0x73, 0x86, 0xb1, 0x1d, 0x6d, 0xef, 0x07, 0xbf, 0xaa, 0x94, 0xf7,
		0xab, 0xc7, 0x87, 0x47, 0x87, 0x50, 0x98, 0x4c, 0xb8, 0x29, 0xfa, 0xa7, 0xe7, 0x9a, 0x0c, 0x8c,
		0x7a, 0x23, 0x86, 0xf4, 0x63, 0xb2, 0x0a, 0x92, 0x0d, 0x24, 0x1b, 0x48, 0x36, 0x90, 0x6c, 0x64,
		0x34, 0xd9, 0x20, 0xc4, 0xb0, 0x65, 0x1c, 0x3b, 0x44, 0x86, 0x81, 0x0c, 0x03, 0x19, 0x46, 0xb6,
		0x33, 0x8c, 0xda, 0x01, 0x74, 0x05, 0xc9, 0x05, 0x92, 0x8b, 0xa8, 0x37, 0x62, 0xaa, 0x29, 0x98,
		0xaf, 0x84, 0x24, 0x03, 0x49, 0x06, 0x92, 0x0c, 0x24, 0x19, 0x48, 0x32, 0x90, 0x64, 0x20, 0xc9,
		0x40, 0xe0, 0x88, 0x24, 0x03, 0xba, 0x82, 0x24, 0x23, 0x5d, 0xee, 0xb4, 0xe5, 0x47, 0x71, 0x3d,
		0x8e, 0x43, 0x5a, 0x97, 0xda, 0xf6, 0x03, 0x7d, 0x20, 0x26, 0x61, 0x0d, 0xb1, 0xca, 0x4e, 0xac,
		0x7f, 0x69, 0xa5, 0xf2, 0x71, 0xb5, 0x5a, 0x3b, 0xaa, 0x56, 0xf7, 0x8f, 0x0e, 0x8e, 0xf6, 0x4f,
		0x0e, 0x0f, 0xcb, 0xb5, 0x32, 0xa5, 0xbb, 0xb5, 0xc2, 0xbe, 0x08, 0x45, 0xff, 0xec, 0x67, 0xf1,
		0xb4, 0x10, 0x8c, 0x07, 0x03, 0x8e, 0xa5, 0x2e, 0x23, 0x11, 0x92, 0xda, 0x64, 0x36, 0xd2, 0xdb,
		0xaf, 0xc3, 0x91, 0x36, 0xf0, 0x6f, 0x7d, 0x86, 0xfc, 0xf6, 0x7e, 0x29, 0x24, 0xb8, 0x48, 0x70,
		0x91, 0xe0, 0x22, 0xc1, 0xcd, 0x68, 0x82, 0x3b, 0xf6, 0x83, 0xf8, 0x18, 0x19, 0x2e, 0x32, 0x5c,
		0x64, 0x2d, 0xc8, 0x70, 0xff, 0xa4, 0x2a, 0x95, 0x43, 0x14, 0xe9, 0x21, 0xc5, 0x25, 0x4d, 0x71,
		0x33, 0x91, 0x68, 0x0c, 0x44, 0x70, 0x93, 0x5c, 0xc7, 0x22, 0xce, 0x32, 0x66, 0xeb, 0x20, 0xc5,
		0x40, 0x8a, 0x81, 0x14, 0x03, 0x29, 0x46, 0x86, 0x53, 0x8c, 0x72, 0x8d, 0x21, 0xc7, 0xa8, 0x21,
		0xc7, 0x40, 0x8e, 0x81, 0x1c, 0x23, 0xdb, 0x39, 0x46, 0xed, 0xf0, 0xf0, 0x00, 0x59, 0x06, 0xb2,
		0x0c, 0xd2, 0x2c, 0x83, 0xc8, 0xa7, 0x32, 0x8e, 0x57, 0x61, 0x1c, 0xab, 0xc2, 0xe0, 0x94, 0x96,
		0xc7, 0xa8, 0x1c, 0x9d, 0x94, 0x4f, 0x57, 0xc7, 0x52, 0x7c, 0x0e, 0x26, 0x3f, 0x3b, 0xae, 0xec,
		0xef, 0xaf, 0xf9, 0xe1, 0x9b, 0x95, 0xa1, 0x15, 0xfc, 0xe3, 0x51, 0xb8, 0xc7, 0xa2, 0xa8, 0x1c,
		0x87, 0xa2, 0x6c, 0x0c, 0xca, 0xca, 0xf8, 0x13, 0x12, 0x65, 0x01, 0x1a, 0x83, 0xf3, 0x59, 0xd1,
		0xbc, 0xd1, 0x4c, 0x7d, 0xe8, 0x59, 0x9f, 0xc5, 0x4a, 0xe0, 0x7d, 0xc0, 0xfb, 0x80, 0xf7, 0x01,
		0xef, 0x93, 0x51, 0xde, 0xc7, 0x1f, 0x69, 0x73, 0x28, 0xd3, 0xe2, 0xc9, 0xaa, 0x0c, 0x2d, 0xd8,
		0x4e, 0x08, 0xd7, 0x98, 0x49, 0x6e, 0x67, 0x82, 0x6d, 0xea, 0xa3, 0xff, 0xc7, 0x9b, 0xc3, 0x90,
		0xd5, 0x33, 0xd1, 0x74, 0x7c, 0x9b, 0x75, 0xcf, 0xc5, 0x30, 0xd2, 0x76, 0x2b, 0x9c, 0xcc, 0x3e,
		0xf3, 0x90, 0x43, 0x55, 0xbc, 0x8c, 0x3a, 0x7e, 0x86, 0x18, 0xf5, 0xd7, 0xab, 0x14, 0x23, 0xbd,
		0xb7, 0xa2, 0x52, 0x95, 0xc3, 0x2a, 0x94, 0x8a, 0x4b, 0xa9, 0x30, 0x3d, 0x53, 0xbd, 0xe9, 0x31,
		0x3a, 0x76, 0xbf, 0x2f, 0x82, 0xd8, 0x8f, 0x7f, 0xd2, 0xb6, 0xbd, 0x5d, 0x89, 0xbd, 0x38, 0xfc,
		0xbb, 0x31, 0xfb, 0x6a, 0x67, 0x5e, 0xc4, 0x48, 0xb5, 0xcd, 0x05, 0x6b, 0x74, 0xdc, 0x8e, 0x6d,
		0x39, 0x56, 0xc3, 0x6a, 0x71, 0x31, 0x6d, 0x09, 0x5e, 0x46, 0x6c, 0x11, 0x4d, 0x41, 0xdd, 0x98,
		0x7a, 0xa3, 0xe3, 0xd6, 0x2f, 0x9d, 0x0b, 0x4c, 0xfe, 0x97, 0x2a, 0xd2, 0x77, 0xb6, 0x0e, 0x89,
		0x4a, 0x95, 0xa8, 0xd1, 0x68, 0x77, 0x20, 0x52, 0xb9, 0x22, 0x7d, 0x07, 0x91, 0xca, 0x16, 0xa9,
		0xe9, 0x1a, 0x90, 0xa9, 0x5c, 0x99, 0xb6, 0x2a, 0x0e, 0x44, 0x2a, 0x39, 0x9c, 0x32, 0xda, 0x90,
		0xa8, 0x54, 0x89, 0xda, 0xdd, 0xf7, 0x50, 0x52, 0xb9, 0x22, 0x75, 0x1a, 0x90, 0xa8, 0x5c, 0x89,
		0x5e, 0x36, 0x39, 0x25, 0xca, 0xb2, 0xd2, 0x15, 0xaa, 0x06, 0x58, 0x25, 0x93, 0x8d, 0xaa, 0x81,
		0x28, 0x39, 0xd7, 0xe5, 0x1b, 0x08, 0xfd, 0x68, 0x3d, 0x54, 0x10, 0xac, 0x5d, 0x00, 0x15, 0x04,
		0x5b, 0xec, 0x3d, 0x2a, 0x08, 0x32, 0x82, 0xbd, 0x98, 0x05, 0xfd, 0x3c, 0x38, 0xc3, 0x2c, 0x68,
		0x4c, 0xd1, 0xc5, 0x2c, 0xe8, 0x4d, 0xfa, 0x8b, 0x59, 0xd0, 0xd0, 0x62, 0xcc, 0x82, 0xe6, 0xcd,
		0x17, 0x58, 0xc7, 0x40, 0x6f, 0x5e, 0x1a, 0x59, 0x04, 0xb2, 0x08, 0x64, 0x11, 0xc8, 0x22, 0x32,
		0x9a, 0x45, 0x60, 0x02, 0x34, 0x26, 0x40, 0xff, 0xd1, 0xe3, 0x72, 0x0e, 0x7f, 0x5e, 0x5d, 0x12,
		0x1e, 0x16, 0x1e, 0x16, 0x1e, 0x16, 0x1e, 0x36, 0xcb, 0x3c, 0x1d, 0xe6, 0x3e, 0x3f, 0xeb, 0x7f,
		0x68, 0xf5, 0xb2, 0xdd, 0x7a, 0x68, 0xf5, 0x22, 0x55, 0x55, 0x30, 0xf7, 0x79, 0x87, 0x14, 0x06,
		0x85, 0x02, 0xb4, 0x69, 0xc8, 0xab, 0x14, 0x9b, 0x77, 0xb1, 0x1e, 0x04, 0xc3, 0x38, 0xe9, 0x64,
		0x41, 0x62, 0xd1, 0xc5, 0xa8, 0xf7, 0x55, 0xdc, 0x7a, 0xa3, 0x45, 0x36, 0x3a, 0x12, 0x41, 0x2f,
		0x49, 0x04, 0xb4, 0x40, 0xc4, 0xdf, 0x87, 0xe1, 0xdf, 0x9a, 0x1f, 0x44, 0xb1, 0x17, 0xf4, 0x44,
		0xe9, 0xf1, 0x0b, 0xd1, 0xca, 0x2b, 0xa5, 0xd1, 0x70, 0xe0, 0xf7, 0x7e, 0x6a, 0xd7, 0xc3, 0xf0,
		0xbb, 0x17, 0xf6, 0xfd, 0xe0, 0x66, 0xfa, 0x8a, 0x2f, 0xa2, 0xd9, 0x8f, 0x4a, 0xe1, 0xff, 0xcf,
		0xde, 0xfb, 0xf7, 0xb4, 0x91, 0x2d, 0xf9, 0xff, 0xff, 0xe7, 0x51, 0xb4, 0xac, 0x8f, 0x94, 0x19,
		0x69, 0x3a, 0x01, 0xe2, 0xc0, 0x24, 0xd2, 0xe8, 0x2b, 0x42, 0xc8, 0x5c, 0xef, 0x12, 0x62, 0x01,
		0xc9, 0xde, 0xd1, 0x84, 0x45, 0x8d, 0x7d, 0x80, 0xd6, 0x35, 0x6d, 0x6f, 0xbb, 0x4d, 0x88, 0xee,
		0xcd, 0x73, 0xff, 0xca, 0xbf, 0x1a, 0x1b, 0x1b, 0x82, 0xed, 0x53, 0x75, 0x4e, 0xb7, 0x5f, 0xd6,
		0xea, 0xee, 0x4c, 0x66, 0xc6, 0xe5, 0x3e, 0x5d, 0xf5, 0xae, 0x77, 0xd5, 0xa9, 0x1f, 0xbd, 0x96,
		0xe9, 0x0e, 0xfe, 0xf7, 0x65, 0x9f, 0x67, 0xbc, 0xec, 0x66, 0x51, 0x26, 0xd1, 0x4b, 0x5c, 0xe9,
		0x66, 0x69, 0xaf, 0x91, 0x25, 0x23, 0x4e, 0xf3, 0x29, 0x7f, 0xae, 0xc3, 0xe1, 0x6f, 0xae, 0x8d,
		0x7e, 0xf2, 0xd9, 0xbd, 0xbf, 0xef, 0xde, 0xff, 0x83, 0xb3, 0xfa, 0xe0, 0x87, 0x7f, 0xc8, 0x1f,
		0x69, 0xf8, 0x07, 0xb1, 0xe9, 0x8e, 0xfe, 0xc9, 0xd9, 0x51, 0xff, 0x91, 0x06, 0xff, 0x7b, 0x56,
		0xeb, 0xdc, 0x6c, 0x9f, 0x1d, 0x0f, 0x1e, 0xe9, 0x99, 0x9f, 0x3a, 0x6a, 0xe7, 0x9b, 0x2c, 0x69,
		0xb9, 0x94, 0x76, 0xbb, 0xd6, 0x6a, 0x8b, 0xfa, 0xec, 0x4e, 0x8f, 0xed, 0x68, 0xf0, 0xea, 0xfa,
		0x66, 0x41, 0xd7, 0x2a, 0xad, 0x2d, 0x6b, 0xfa, 0x75, 0x97, 0x88, 0xdc, 0xb2, 0xf4, 0x9a, 0xf3,
		0x7c, 0xa3, 0xa5, 0xaf, 0xb3, 0x9d, 0xc8, 0x91, 0x48, 0xdc, 0x48, 0x27, 0x6a, 0xa4, 0x12, 0x33,
		0xe2, 0x89, 0x18, 0xf1, 0xc4, 0x8b, 0x42, 0xa2, 0xc5, 0x2f, 0x1f, 0xf3, 0x3e, 0xb6, 0xbb, 0x0a,
		0xab, 0xd2, 0x18, 0xdb, 0x97, 0x65, 0xd5, 0x1a, 0x9b, 0xc4, 0xe8, 0xfb, 0x2d, 0xbf, 0x76, 0xbb,
		0x20, 0x23, 0x06, 0x36, 0x92, 0xa0, 0xa3, 0x05, 0x3e, 0xd2, 0x20, 0xa4, 0x06, 0x46, 0x6a, 0xa0,
		0xa4, 0x08, 0x4e, 0xc5, 0x08, 0xfb, 0x6c, 0x83, 0x56, 0xfe, 0xc5, 0x4d, 0xd3, 0xcd, 0xe2, 0x64,
		0x40, 0xb9, 0xc3, 0xeb, 0xa8, 0xa1, 0xb0, 0x3b, 0xfc, 0x9e, 0x40, 0x2e, 0xc7, 0xb4, 0xe1, 0x4e,
		0x1b, 0xf6, 0xb4, 0xe0, 0x4f, 0x1d, 0x06, 0xd5, 0xe1, 0xd0, 0x01, 0x2c, 0xca, 0xe6, 0x05, 0x8b,
		0x7f, 0x39, 0x76, 0x1d, 0x35, 0x84, 0xfb, 0x71, 0x82, 0xd2, 0x15, 0xb1, 0x4f, 0x96, 0xa7, 0xde,
		0xaf, 0x7a, 0xdd, 0xfa, 0xf1, 0xeb, 0xbf, 0x5f, 0xff, 0xa0, 0x8a, 0xfa, 0xe7, 0xd2, 0xfe, 0xf7,
		0xe7, 0xc7, 0x48, 0x19, 0xaf, 0x48, 0x51, 0xd1, 0x3d, 0x0a, 0x13, 0x5e, 0x47, 0xdd, 0x7f, 0xa9,
		0x13, 0xa7, 0xa1, 0x54, 0xd8, 0x13, 0xec, 0x09, 0xf6, 0x04, 0x7b, 0x82, 0x3d, 0xc1, 0x9e, 0x60,
		0x4f, 0xb0, 0xa7, 0x02, 0xb0, 0x27, 0x93, 0x5d, 0x99, 0x34, 0x93, 0x84, 0x98, 0x1c, 0x5e, 0xee,
		0x44, 0xc1, 0x93, 0xe0, 0x49, 0xf0, 0x24, 0x78, 0x52, 0x41, 0x79, 0x52, 0x0e, 0x64, 0xac, 0x5a,
		0x78, 0xea, 0x47, 0x79, 0xd5, 0x82, 0xe8, 0x0a, 0xd4, 0xfb, 0x6f, 0x67, 0x9b, 0x5d, 0x0b, 0xcb,
		0x3f, 0x98, 0xd3, 0x5d, 0x0b, 0x9b, 0xaf, 0x5f, 0x6d, 0x33, 0x19, 0x5f, 0xe9, 0xb3, 0x36, 0xeb,
		0x16, 0x14, 0xb7, 0xaa, 0xa2, 0x56, 0x2c, 0x5c, 0xf0, 0xc1, 0xf8, 0x58, 0xb8, 0x60, 0x43, 0x96,
		0xdb, 0x85, 0x0b, 0xfb, 0x27, 0xff, 0xd8, 0x3f, 0x3a, 0xf9, 0xab, 0xbe, 0xcf, 0xba, 0x05, 0xb1,
		0xa3, 0x3d, 0xdb, 0x3d, 0x62, 0xbc, 0xad, 0xc8, 0xc1, 0xd6, 0xea, 0x5f, 0xaa, 0x9c, 0xac, 0xd0,
		0xc9, 0x6e, 0x73, 0xb2, 0x12, 0x27, 0x7b, 0x70, 0xf0, 0x1e, 0x34, 0x10, 0x39, 0xd9, 0x8f, 0xf5,
		0x83, 0x63, 0x4e, 0x56, 0xe2, 0x64, 0x8f, 0x3e, 0xed, 0xb1, 0xe4, 0x46, 0xe4, 0x64, 0xbf, 0x1c,
		0xec, 0x1e, 0x32, 0xa8, 0xdd, 0xaf, 0xe7, 0xa0, 0xff, 0x5a, 0x70, 0x0c, 0x94, 0x4a, 0x81, 0xfb,
		0x84, 0x2c, 0x6e, 0x1d, 0xe7, 0x0a, 0xe0, 0xd6, 0x71, 0x85, 0x77, 0xcf, 0xad, 0x63, 0x41, 0x30,
		0x97, 0xea, 0xac, 0xc5, 0xe0, 0x8c, 0xea, 0xac, 0x95, 0x3d, 0x3c, 0xd5, 0x59, 0x30, 0x25, 0x6b,
		0x4c, 0x49, 0xa9, 0xac, 0xfd, 0xbe, 0x40, 0x38, 0x13, 0x9c, 0x09, 0xce, 0x04, 0x67, 0x82, 0x33,
		0xc1, 0x99, 0xe0, 0x4c, 0x70, 0x26, 0xaf, 0xbf, 0x91, 0xe9, 0x7e, 0x4f, 0x9e, 0x83, 0xd6, 0xda,
		0x7a, 0x29, 0x32, 0xc8, 0x26, 0x70, 0x36, 0x14, 0xed, 0x60, 0xeb, 0x6c, 0x44, 0xfb, 0x7c, 0x9d,
		0xed, 0x67, 0x75, 0xec, 0x5c, 0x94, 0x19, 0xb9, 0x19, 0x47, 0x12, 0x63, 0x1f, 0xc5, 0x47, 0x1c,
		0x6d, 0x31, 0xe2, 0x48, 0x9b, 0xd3, 0x33, 0xe2, 0xa8, 0xb4, 0xbe, 0x8f, 0x11, 0x47, 0xa4, 0x34,
		0x48, 0x69, 0x90, 0xd2, 0x20, 0xa5, 0x41, 0x4a, 0x83, 0x94, 0x06, 0x29, 0x0d, 0x52, 0x1a, 0xee,
		0x10, 0x86, 0x11, 0x47, 0xb0, 0x27, 0xd8, 0x13, 0xec, 0x09, 0xf6, 0x04, 0x7b, 0x82, 0x3d, 0xc1,
		0x9e, 0x60, 0x4f, 0x0b, 0x9d, 0x3c, 0x23, 0x8e, 0xe0, 0x49, 0xf0, 0x24, 0x78, 0x12, 0x3c, 0x69,
		0x09, 0x20, 0x63, 0xc4, 0xd1, 0x53, 0x3f, 0x8c, 0x38, 0x5a, 0x4d, 0x14, 0x23, 0x8e, 0x6c, 0x0a,
		0x65, 0xc4, 0x11, 0x23, 0x8e, 0xe4, 0xb4, 0x8a, 0x11, 0x47, 0x8c, 0x38, 0xf2, 0x25, 0x08, 0x55,
		0x32, 0x3e, 0x46, 0x1c, 0xd9, 0x90, 0xc5, 0x88, 0xa3, 0xf2, 0x10, 0x9b, 0x80, 0x11, 0x47, 0xaa,
		0x07, 0xcb, 0x88, 0x23, 0xc1, 0x93, 0x65, 0xc4, 0x91, 0xc8, 0xc9, 0x32, 0xe2, 0x48, 0xea, 0x64,
		0x19, 0x71, 0x24, 0x75, 0xb2, 0x8c, 0x38, 0x92, 0x3a, 0x59, 0x46, 0x1c, 0xf9, 0xf7, 0x1c, 0x8c,
		0x38, 0x62, 0xc4, 0xd1, 0x13, 0x23, 0x44, 0x6e, 0x1d, 0x9f, 0xf0, 0x36, 0xb8, 0x75, 0x5c, 0x51,
		0x20, 0xb7, 0x8e, 0x7e, 0x31, 0x09, 0xaa, 0xb3, 0x96, 0x82, 0x1c, 0xaa, 0xb3, 0x56, 0x3c, 0x40,
		0xaa, 0xb3, 0xd6, 0x8c, 0x29, 0x31, 0xe2, 0x08, 0xce, 0x04, 0x67, 0x82, 0x33, 0xc1, 0x99, 0xe0,
		0x4c, 0x70, 0x26, 0x38, 0x53, 0x49, 0x38, 0x13, 0x23, 0x8e, 0x9c, 0x8d, 0x38, 0x92, 0x98, 0x63,
		0x13, 0xb8, 0x9c, 0x70, 0x74, 0x3c, 0x78, 0x20, 0x5f, 0x07, 0x1c, 0x3d, 0xf3, 0x48, 0xc3, 0xa5,
		0x34, 0xdb, 0xad, 0x46, 0x57, 0xac, 0xce, 0x90, 0x72, 0xa2, 0xc3, 0x76, 0xb4, 0x77, 0x75, 0x5d,
		0xb3, 0xa0, 0x67, 0x95, 0xae, 0xf9, 0xbf, 0x9e, 0x49, 0x1a, 0x26, 0x8c, 0x9b, 0xd6, 0x94, 0xec,
		0x2e, 0x4e, 0x9d, 0xf8, 0x72, 0x4b, 0x36, 0x61, 0x37, 0x26, 0xb5, 0x1e, 0x83, 0x4a, 0xc4, 0x9c,
		0x53, 0x31, 0xa6, 0xcd, 0x72, 0x3a, 0xa9, 0x60, 0x52, 0x3c, 0x78, 0x14, 0x0f, 0x16, 0x67, 0x82,
		0xc3, 0x8b, 0x4a, 0x49, 0x7d, 0x8c, 0xf5, 0x28, 0x2f, 0xd7, 0xd6, 0x96, 0x89, 0x2e, 0xec, 0x96,
		0x7f, 0xe6, 0x11, 0xdc, 0x8e, 0xc5, 0xef, 0xac, 0x8f, 0xdc, 0xe0, 0x8b, 0x17, 0xa3, 0x71, 0x92,
		0x2f, 0x27, 0x51, 0xab, 0x4c, 0x48, 0x6f, 0x75, 0xe0, 0xa2, 0xc8, 0xa0, 0x45, 0xcb, 0x03, 0x16,
		0xad, 0x0f, 0x56, 0x04, 0xdd, 0x41, 0xf7, 0x42, 0xa1, 0xbb, 0xed, 0x11, 0x88, 0x95, 0x41, 0x86,
		0xd4, 0x34, 0xc3, 0x76, 0x23, 0x33, 0x83, 0x0e, 0x16, 0xa1, 0xf1, 0xad, 0xf7, 0xe4, 0xc8, 0xcc,
		0x71, 0xdd, 0x90, 0x9a, 0xe3, 0xba, 0x51, 0xd0, 0x39, 0xae, 0x17, 0x0c, 0x70, 0x75, 0x08, 0x4b,
		0x1a, 0xf0, 0x54, 0x8c, 0x94, 0x9e, 0xd8, 0xd5, 0x43, 0xae, 0xed, 0x8d, 0x76, 0x2f, 0xc9, 0x4c,
		0xba, 0x5d, 0x95, 0xd0, 0xf8, 0x11, 0xbc, 0x08, 0xdc, 0x33, 0x08, 0x77, 0x18, 0x0b, 0xde, 0xf5,
		0x68, 0x74, 0x10, 0xe7, 0xbd, 0x9d, 0xc2, 0x6d, 0x95, 0xea, 0x7d, 0x9c, 0x7a, 0x7d, 0x9b, 0x82,
		0xa5, 0xdc, 0x2a, 0xed, 0xbe, 0x77, 0x4d, 0xe3, 0xbf, 0x57, 0xab, 0xdb, 0x3b, 0xd5, 0xea, 0xc6,
		0xce, 0xab, 0x9d, 0x8d, 0x37, 0xaf, 0x5f, 0x6f, 0x6e, 0x4b, 0x37, 0x07, 0x96, 0x59, 0x2b, 0x0a,
		0x72, 0x51, 0x75, 0xba, 0x06, 0x7b, 0x13, 0xc6, 0xcc, 0xb8, 0xf3, 0x2f, 0x0d, 0xfe, 0x3d, 0x90,
		0x02, 0xfb, 0x86, 0x7d, 0xc3, 0xbe, 0x61, 0xdf, 0xb0, 0x6f, 0xd8, 0x37, 0xec, 0x1b, 0xf6, 0x0d,
		0xfb, 0x86, 0x7d, 0xaf, 0x29, 0xfb, 0x96, 0x28, 0x97, 0x98, 0x71, 0x8f, 0xf6, 0xcb, 0x26, 0xe0,
		0xde, 0x70, 0x6f, 0xb8, 0x37, 0xdc, 0x7b, 0x34, 0x78, 0xf3, 0xd5, 0x96, 0x20, 0xf1, 0xde, 0x81,
		0x78, 0x43, 0xbc, 0x21, 0xde, 0x6e, 0x88, 0x77, 0x75, 0xeb, 0x4d, 0xf5, 0xcd, 0xf6, 0xce, 0xd6,
		0x1b, 0xe8, 0x36, 0x74, 0xdb, 0x11, 0xdd, 0xa6, 0x86, 0x5e, 0xb6, 0x86, 0xde, 0x76, 0x4b, 0x88,
		0x9b, 0x32, 0x7a, 0x8b, 0x7d, 0x20, 0x7e, 0xd4, 0x57, 0x66, 0x69, 0x94, 0x74, 0x3b, 0xed, 0x34,
		0xb3, 0x5f, 0x63, 0x79, 0xf7, 0xd5, 0x9e, 0xd7, 0x59, 0x16, 0xa5, 0x8a, 0x5e, 0xa0, 0x53, 0x9b,
		0x72, 0xcb, 0x27, 0x47, 0x75, 0xf6, 0x3b, 0xad, 0x4b, 0x5e, 0x75, 0xd9, 0x18, 0xdb, 0x97, 0x50,
		0xc2, 0x69, 0xf4, 0xfd, 0x05, 0xdb, 0x96, 0xbf, 0xc1, 0xb6, 0x7c, 0x52, 0x4e, 0x05, 0x00, 0xa7,
		0x62, 0x64, 0x9e, 0xc4, 0xb6, 0xe5, 0x9f, 0xf7, 0xe2, 0x56, 0x16, 0x27, 0x61, 0xd3, 0x64, 0x51,
		0xdc, 0x92, 0x1f, 0x8e, 0x73, 0x4f, 0x1e, 0xb3, 0x71, 0xb4, 0xc1, 0x4e, 0x1b, 0xf4, 0xb4, 0xc0,
		0x4f, 0x1d, 0x04, 0xd5, 0xc1, 0xd0, 0x01, 0x28, 0x0a, 0x67, 0x5d, 0x8a, 0xbf, 0xc5, 0x2c, 0xe9,
		0x5d, 0x9b, 0x74, 0x98, 0xc0, 0x50, 0x98, 0x8d, 0x53, 0x15, 0x94, 0xb1, 0x9f, 0xf4, 0xae, 0xe5,
		0x8d, 0xf3, 0xa4, 0x7d, 0x9c, 0xa5, 0x71, 0x72, 0xa9, 0xb2, 0x9a, 0xa3, 0xb2, 0xd1, 0x7f, 0x47,
		0x27, 0x7b, 0xf5, 0xb3, 0xda, 0x61, 0xed, 0xa4, 0xb6, 0x7b, 0xa0, 0xb1, 0xec, 0x64, 0x73, 0x2c,
		0x73, 0xff, 0xf8, 0x64, 0xf7, 0xdd, 0x41, 0xed, 0xf8, 0x1f, 0xfb, 0xef, 0x35, 0xe4, 0x6e, 0xf5,
		0xe5, 0x7e, 0x38, 0xda, 0xfd, 0xf3, 0xe3, 0xfe, 0xe1, 0x49, 0xa5, 0xc8, 0x8b, 0x70, 0x2a, 0x27,
		0xed, 0x5a, 0x92, 0xe9, 0x68, 0x48, 0x7e, 0x60, 0xd6, 0xba, 0x50, 0x1f, 0x7f, 0xb2, 0x7b, 0x7a,
		0x61, 0x3d, 0xfe, 0x7a, 0x50, 0xea, 0xd8, 0x02, 0xde, 0x06, 0x1b, 0x05, 0x9d, 0xf6, 0x5d, 0x2c,
		0x1f, 0x64, 0x6e, 0xb3, 0x34, 0x0a, 0x7b, 0x49, 0x37, 0x8b, 0xce, 0x5b, 0xc2, 0xde, 0xe8, 0xdb,
		0x95, 0x49, 0xca, 0xb4, 0x7d, 0xf2, 0xc5, 0x8b, 0x97, 0xc3, 0xf0, 0x20, 0xbc, 0x6e, 0x37, 0x4d,
		0xf0, 0x47, 0xf0, 0xfc, 0xdd, 0xe7, 0xda, 0xc1, 0x49, 0xed, 0xf0, 0xb9, 0x06, 0x90, 0x2a, 0xf1,
		0xd4, 0x79, 0x7c, 0x75, 0xf0, 0x22, 0x95, 0x36, 0x47, 0x69, 0xb3, 0xd6, 0xb9, 0xec, 0xf5, 0x91,
		0x37, 0x2d, 0xbf, 0xf5, 0x40, 0x41, 0x97, 0xde, 0x9b, 0x6e, 0x23, 0x8d, 0x3b, 0x62, 0xe3, 0xcf,
		0x1e, 0x35, 0xa3, 0x93, 0xab, 0xb8, 0x1b, 0xb4, 0x4c, 0x74, 0x11, 0xc4, 0xdd, 0xa0, 0x9d, 0xb4,
		0xbe, 0x07, 0x37, 0x51, 0x2b, 0x6e, 0x06, 0x7d, 0x2d, 0x0b, 0xb2, 0x2b, 0x13, 0x0c, 0xce, 0xfc,
		0xa2, 0x9d, 0x06, 0xc3, 0x7e, 0x92, 0x6e, 0xff, 0xdf, 0xeb, 0x76, 0x4c, 0x23, 0xbe, 0x88, 0x4d,
		0x33, 0xc8, 0xda, 0x5f, 0x93, 0x73, 0x13, 0x8c, 0x02, 0xf6, 0x17, 0x5a, 0x7a, 0xa9, 0x6c, 0x7e,
		0xf7, 0x4d, 0xb0, 0x39, 0xf1, 0xc6, 0x14, 0x97, 0x6d, 0xba, 0xb2, 0xc6, 0x19, 0x8b, 0xb4, 0xac,
		0x34, 0x25, 0x59, 0x2c, 0xc9, 0x86, 0x14, 0xd9, 0xdf, 0x2b, 0x31, 0xf7, 0xbb, 0x69, 0xba, 0x59,
		0x9c, 0x0c, 0x62, 0xf3, 0xd0, 0xea, 0xc5, 0xef, 0x83, 0x80, 0x3b, 0x23, 0x91, 0xec, 0xe6, 0x5c,
		0x01, 0x64, 0x37, 0xad, 0xb8, 0x2a, 0xb2, 0x9b, 0x6b, 0x19, 0x59, 0xea, 0x65, 0x37, 0xfb, 0x18,
		0x16, 0x26, 0xbd, 0xeb, 0x30, 0x1d, 0x14, 0xf8, 0x2a, 0x24, 0x38, 0xdf, 0x08, 0xca, 0x18, 0x9d,
		0x5b, 0x69, 0xa2, 0xe4, 0xee, 0x30, 0x91, 0xaa, 0xb8, 0xbf, 0xf9, 0x77, 0x05, 0x59, 0x5a, 0xc3,
		0xc5, 0x73, 0x81, 0xbf, 0x6c, 0xfc, 0x7b, 0xe3, 0xb7, 0xea, 0x8f, 0xbf, 0x37, 0xc2, 0x37, 0xa7,
		0xff, 0xe9, 0xff, 0xf5, 0xab, 0x1f, 0x7f, 0x6f, 0x86, 0x6f, 0x4e, 0xef, 0xfe, 0x60, 0x6b, 0xe2,
		0x0f, 0xfe, 0xbd, 0xf5, 0xe3, 0x3f, 0x1b, 0xff, 0xdf, 0xc4, 0xdf, 0xbf, 0xfa, 0xf1, 0x9f, 0xbf,
		0x37, 0xc3, 0xd7, 0xa3, 0xbf, 0xab, 0xfe, 0xf8, 0xcf, 0xf6, 0xdf, 0x1b, 0x61, 0xf5, 0xee, 0x1f,
		0x6e, 0xbf, 0x9e, 0xf8, 0xfb, 0xad, 0xfe, 0xdf, 0xf7, 0xff, 0x60, 0x6b, 0xf4, 0xf5, 0xdb, 0xaf,
		0x5f, 0xbf, 0xfa, 0x7b, 0x23, 0x7c, 0x7d, 0xfa, 0xeb, 0xd7, 0xaf, 0x2f, 0xbe, 0x7e, 0x7d, 0xe1,
		0xc9, 0x8f, 0x91, 0xa7, 0xed, 0xa7, 0x1a, 0xaa, 0xa4, 0x39, 0xac, 0x3e, 0x97, 0xfa, 0xbf, 0xbf,
		0xa0, 0x51, 0xb3, 0x3f, 0xe6, 0xd7, 0xff, 0x57, 0x61, 0xfb, 0xbf, 0x27, 0x8e, 0x63, 0xec, 0xd6,
		0xcf, 0x4d, 0xaa, 0xe8, 0x3d, 0xb6, 0x15, 0x44, 0xc9, 0x36, 0x22, 0xe9, 0xbf, 0xb2, 0xfc, 0xc1,
		0x34, 0x1a, 0x95, 0x66, 0x84, 0x2a, 0x35, 0x2e, 0xcd, 0xc8, 0xd5, 0x6e, 0x5e, 0x99, 0x35, 0x14,
		0xad, 0x66, 0x16, 0x65, 0x8c, 0x99, 0x56, 0x29, 0x85, 0xc6, 0xa7, 0x07, 0x55, 0xaa, 0xef, 0x18,
		0x5e, 0xa3, 0x56, 0x5a, 0x6a, 0x55, 0x92, 0x2c, 0x2c, 0x0e, 0xfe, 0x69, 0x0e, 0x5e, 0xa7, 0x2a,
		0x69, 0x26, 0x3c, 0xac, 0x2a, 0xc8, 0x52, 0xa9, 0x52, 0xba, 0x4b, 0x19, 0x68, 0x56, 0x2b, 0xe5,
		0x52, 0x07, 0x55, 0x4b, 0xbb, 0x87, 0x7f, 0x29, 0x5d, 0x9e, 0xfc, 0xa6, 0x75, 0x96, 0x5a, 0x45,
		0x3d, 0x77, 0x99, 0xc4, 0xc3, 0xbf, 0xc4, 0xeb, 0x5d, 0xf4, 0xd0, 0x8f, 0x3b, 0x28, 0xd9, 0xdf,
		0xab, 0x71, 0x07, 0x15, 0x76, 0x8d, 0x83, 0x7b, 0xa8, 0x81, 0x54, 0xee, 0xa2, 0xe6, 0x27, 0x89,
		0xb8, 0x8b, 0x5a, 0xfe, 0xdd, 0x73, 0x17, 0x55, 0x10, 0x1c, 0x2e, 0xfe, 0x5d, 0x94, 0xfd, 0x7d,
		0x45, 0x0f, 0xf2, 0xd8, 0x1d, 0xd9, 0x0d, 0xb4, 0xa3, 0x91, 0x04, 0x8d, 0x3e, 0x2a, 0x77, 0xdf,
		0x36, 0xcd, 0x45, 0x9c, 0x98, 0xe6, 0xe0, 0x6f, 0xf2, 0x3f, 0x1c, 0x83, 0xf6, 0xec, 0x9f, 0xe4,
		0x7f, 0x30, 0x98, 0x07, 0xb0, 0xd6, 0x9e, 0x35, 0x2f, 0x1b, 0xd4, 0x70, 0xa8, 0x77, 0xc2, 0xf0,
		0xa3, 0xf8, 0x51, 0xfc, 0x28, 0x7e, 0xb4, 0xa0, 0x7e, 0x94, 0x8e, 0x35, 0x9f, 0x73, 0x40, 0xc3,
		0xdc, 0xcf, 0xfe, 0x3f, 0xeb, 0x07, 0xb5, 0xbd, 0xda, 0x89, 0x5a, 0xbb, 0xda, 0xa8, 0xe8, 0x9e,
		0xae, 0xb1, 0x27, 0x8a, 0x1a, 0x9f, 0x97, 0x4e, 0xfb, 0x56, 0xae, 0x0e, 0xf4, 0x6e, 0x15, 0x91,
		0xa9, 0x9a, 0xdb, 0x4e, 0x2b, 0x6e, 0xc4, 0x59, 0x38, 0x66, 0x91, 0x7d, 0xc7, 0xa7, 0x44, 0x5c,
		0x1f, 0x91, 0x0d, 0x8f, 0x85, 0xc7, 0xc2, 0x63, 0xe1, 0xb1, 0xf0, 0x58, 0x78, 0xac, 0x10, 0x8f,
		0xdd, 0x3d, 0xfc, 0x4b, 0x8d, 0xc2, 0xee, 0x1e, 0x1c, 0x40, 0x5f, 0x9f, 0x8a, 0x62, 0x07, 0x07,
		0x4a, 0xd4, 0x55, 0xe3, 0x06, 0x96, 0x89, 0x03, 0x63, 0x9e, 0xc9, 0xc4, 0x81, 0x65, 0xbd, 0xc9,
		0x6c, 0x1f, 0xfa, 0x38, 0xe8, 0x62, 0xe4, 0x40, 0x71, 0xe9, 0xda, 0x5c, 0xda, 0xf6, 0xd8, 0xab,
		0x66, 0xe6, 0xc0, 0xaa, 0x86, 0x64, 0xa7, 0x7d, 0x7c, 0x1c, 0xb6, 0x32, 0x74, 0xa0, 0x94, 0xf6,
		0x18, 0xc8, 0x0c, 0x1d, 0xb8, 0xd3, 0x1a, 0x2a, 0xbe, 0x9c, 0x7e, 0xfb, 0x29, 0xd9, 0xbe, 0x2c,
		0xcc, 0x1a, 0x9d, 0xf0, 0xa2, 0x15, 0x5d, 0x76, 0x15, 0xb3, 0x7c, 0x77, 0x32, 0xc9, 0xee, 0xcd,
		0x15, 0x40, 0x76, 0xcf, 0x8a, 0xbf, 0x22, 0xbb, 0xb7, 0x96, 0x11, 0xa6, 0x5e, 0x76, 0x2f, 0x6e,
		0x9a, 0x24, 0x8b, 0xb3, 0xef, 0x4a, 0x15, 0x5f, 0x82, 0xad, 0x48, 0x95, 0xda, 0xe8, 0x51, 0xde,
		0x45, 0x5d, 0x05, 0x23, 0xcd, 0x79, 0xf8, 0x5e, 0xfd, 0xec, 0xc3, 0xc1, 0xee, 0x9f, 0xc7, 0xd2,
		0x46, 0x3a, 0xe8, 0xe8, 0xea, 0xaa, 0xf4, 0x5c, 0x6a, 0x87, 0x32, 0x7b, 0xf5, 0xb3, 0xdd, 0xbd,
		0xff, 0x2e, 0x45, 0x50, 0xe8, 0xe0, 0xe8, 0xf6, 0xfe, 0xe7, 0x88, 0xa3, 0x5b, 0xee, 0xe8, 0xf6,
		0xf7, 0xf6, 0x39, 0xba, 0x25, 0x31, 0x4f, 0xba, 0x8a, 0xa5, 0xbc, 0x47, 0x57, 0x3f, 0xfe, 0x07,
		0x47, 0xb7, 0xdc, 0xd1, 0x1d, 0x1d, 0x9f, 0x70, 0x74, 0xcb, 0x1d, 0xdd, 0xf1, 0x5f, 0x18, 0xec,
		0x92, 0x47, 0xf7, 0xf9, 0xe8, 0xcf, 0x4a, 0xc1, 0x73, 0x50, 0xa7, 0x44, 0x56, 0x83, 0xd7, 0x7a,
		0x10, 0x77, 0xb3, 0xdd, 0x2c, 0x4b, 0x65, 0xa3, 0xab, 0x8f, 0x71, 0xb2, 0xdf, 0x32, 0xfd, 0x08,
		0x57, 0x78, 0xfc, 0x41, 0xe5, 0x63, 0x74, 0x3b, 0x21, 0x69, 0xf3, 0xf7, 0x6a, 0x75, 0x7b, 0xa7,
		0x5a, 0xdd, 0xd8, 0x79, 0xb5, 0xb3, 0xf1, 0xe6, 0xf5, 0xeb, 0xcd, 0x6d, 0xd1, 0x88, 0xeb, 0x53,
		0xda, 0x34, 0xa9, 0x69, 0xbe, 0xfb, 0x5e, 0x79, 0x1b, 0x24, 0xbd, 0x56, 0x4b, 0x43, 0xd4, 0xe7,
		0xae, 0x49, 0x45, 0xe7, 0x3a, 0x70, 0x6b, 0xec, 0x0d, 0x10, 0x73, 0x6b, 0xcc, 0xad, 0x31, 0xb7,
		0xc6, 0x56, 0xd9, 0x0c, 0xb7, 0xc6, 0x4b, 0x18, 0x21, 0xb7, 0xc6, 0xdc, 0x1a, 0xab, 0x4b, 0xe0,
		0xd6, 0x58, 0xe2, 0xd6, 0xb8, 0x3b, 0x40, 0x12, 0xa5, 0x31, 0xf5, 0x93, 0xc2, 0xb8, 0x27, 0x9e,
		0x2b, 0x80, 0x7b, 0x62, 0x2b, 0x1e, 0x8a, 0x7b, 0xe2, 0xb5, 0xcc, 0x66, 0x30, 0xa1, 0x7e, 0xa5,
		0x73, 0x63, 0x42, 0xfd, 0xd2, 0x6f, 0x87, 0x09, 0xf5, 0x4c, 0xa8, 0xb7, 0x45, 0x47, 0x99, 0x50,
		0xcf, 0x84, 0xfa, 0x42, 0x84, 0x38, 0x4a, 0x69, 0x22, 0x26, 0xd4, 0x5b, 0x10, 0xc5, 0x84, 0x7a,
		0x9b, 0x42, 0x99, 0x50, 0xcf, 0x84, 0x7a, 0x21, 0x95, 0x62, 0x42, 0x3d, 0x13, 0xea, 0x71, 0xf0,
		0x52, 0x0e, 0x9e, 0x09, 0xf5, 0xb6, 0x52, 0x06, 0x4c, 0xa8, 0xb7, 0x78, 0x96, 0x4c, 0xa8, 0xf7,
		0x58, 0x02, 0x37, 0x4f, 0xc2, 0x37, 0x4f, 0x3a, 0xc3, 0xe9, 0xef, 0x0b, 0xe4, 0x06, 0x6a, 0x7e,
		0x6a, 0x88, 0x1b, 0xa8, 0xe5, 0xdf, 0x3d, 0x37, 0x50, 0x05, 0x41, 0x5f, 0xe6, 0xd2, 0x2f, 0xc0,
		0x5e, 0x99, 0x4b, 0xef, 0xf5, 0x37, 0x5a, 0xd6, 0xe5, 0xca, 0x6e, 0x92, 0xb4, 0xb3, 0x48, 0xac,
		0x20, 0xaf, 0xd2, 0x6d, 0x5c, 0x99, 0xeb, 0xa8, 0x93, 0xbf, 0xf8, 0x8e, 0x49, 0x1a, 0x03, 0xaf,
		0x16, 0x26, 0x26, 0xfb, 0xd6, 0x4e, 0xff, 0x15, 0xc6, 0x49, 0x37, 0x8b, 0x92, 0x86, 0x79, 0x79,
		0xff, 0x0f, 0xba, 0x33, 0x7f, 0xf2, 0xb2, 0xd3, 0x6e, 0xc5, 0x8d, 0xef, 0xe1, 0x45, 0x3b, 0xfd,
		0x16, 0xa5, 0xcd, 0x38, 0xb9, 0x1c, 0xfe, 0x49, 0x6c, 0xba, 0xa3, 0x7f, 0xf4, 0x32, 0xed, 0xb5,
		0x4c, 0x77, 0xf0, 0xbf, 0x2f, 0xb3, 0x34, 0x4a, 0xba, 0x7d, 0xd5, 0x79, 0x39, 0x94, 0x58, 0x91,
		0x20, 0x36, 0x59, 0xda, 0x6b, 0x64, 0xc9, 0xc8, 0x4c, 0x3f, 0xe5, 0x4f, 0x77, 0x38, 0xfc, 0xe5,
		0xb5, 0xd1, 0x0f, 0x3f, 0xbb, 0xf7, 0xf7, 0xdd, 0xfb, 0x7f, 0x70, 0x56, 0x1f, 0xfc, 0xfc, 0x0f,
		0xf9, 0x83, 0x0d, 0xff, 0x20, 0x36, 0xdd, 0xd1, 0x3f, 0x39, 0x3b, 0xea, 0x3f, 0xd8, 0xe0, 0x7f,
		0xcf, 0x4e, 0xc6, 0x0f, 0x76, 0x36, 0x22, 0x08, 0xcf, 0xfc, 0xd4, 0x57, 0x8b, 0xba, 0x5a, 0xe9,
		0x66, 0x51, 0x66, 0x1f, 0x6c, 0x27, 0x2e, 0x91, 0xfb, 0x5f, 0x6f, 0xd9, 0xb6, 0xc6, 0x90, 0x6a,
		0xf9, 0x6b, 0x73, 0x56, 0xb8, 0x65, 0xf9, 0x8b, 0x05, 0xd9, 0xa0, 0x16, 0x0b, 0x94, 0x66, 0x7f,
		0x6a, 0xac, 0x4f, 0x8d, 0xed, 0x29, 0xb2, 0x3c, 0xbf, 0x3d, 0xe1, 0xfb, 0x58, 0xa6, 0x31, 0xaa,
		0x72, 0xde, 0x8b, 0x5b, 0x59, 0x9c, 0x8c, 0xa6, 0x63, 0xcb, 0xc7, 0xbe, 0xf7, 0xe4, 0x11, 0xfa,
		0x12, 0xfa, 0x12, 0xfa, 0x12, 0xfa, 0x16, 0x34, 0xf4, 0x65, 0x04, 0xf7, 0xa2, 0xaf, 0x46, 0x7f,
		0x04, 0xf7, 0xc9, 0x5e, 0xfd, 0xac, 0x76, 0x58, 0x3b, 0xa9, 0xed, 0x1e, 0xa8, 0x8d, 0xe2, 0x1e,
		0x8c, 0x30, 0x39, 0x3e, 0xd9, 0x7d, 0x77, 0x50, 0x3b, 0xfe, 0xc7, 0xfe, 0x7b, 0x0d, 0xb9, 0x5b,
		0x7d, 0xb9, 0x1f, 0x8e, 0x76, 0xff, 0xfc, 0xb8, 0x7f, 0x78, 0xc2, 0x1c, 0xf0, 0x27, 0x8a, 0xca,
		0x0f, 0xcc, 0x7a, 0xc0, 0x32, 0xff, 0xc9, 0xee, 0xe9, 0x85, 0xce, 0x08, 0xf2, 0x49, 0x0b, 0x60,
		0x14, 0xb9, 0x8e, 0x0f, 0xa2, 0xa9, 0x7c, 0x79, 0xaf, 0x3a, 0xdb, 0x69, 0x3c, 0xda, 0x36, 0x45,
		0x4f, 0x79, 0x71, 0x59, 0xeb, 0x5c, 0xf6, 0xfa, 0xc8, 0x9b, 0xa6, 0xa5, 0x7c, 0x55, 0x33, 0xb2,
		0xd3, 0x1c, 0x3c, 0x0a, 0xd8, 0xe9, 0x28, 0x2f, 0xa5, 0x35, 0x06, 0x32, 0x1d, 0xe5, 0xb9, 0xd2,
		0x50, 0xd6, 0xe3, 0xf4, 0xdb, 0x4f, 0xd7, 0x7a, 0x3d, 0x76, 0x37, 0x8b, 0x93, 0x41, 0x6c, 0xae,
		0xd4, 0x55, 0x3e, 0x23, 0x91, 0xec, 0xe6, 0x5c, 0x01, 0x64, 0x37, 0xad, 0xb8, 0x2a, 0xb2, 0x9b,
		0x6b, 0x19, 0x59, 0xd2, 0x5a, 0xbe, 0xd2, 0xb9, 0xd1, 0x5a, 0xbe, 0xf4, 0xdb, 0xa1, 0xb5, 0x9c,
		0xd6, 0x72, 0x5b, 0xc4, 0x94, 0xd6, 0x72, 0x5a, 0xcb, 0x0b, 0x11, 0xec, 0x28, 0xa5, 0x8b, 0x68,
		0x2d, 0xb7, 0x20, 0x8a, 0xd6, 0x72, 0x9b, 0x42, 0x69, 0x2d, 0xa7, 0xb5, 0x5c, 0x48, 0xa5, 0x68,
		0x2d, 0xa7, 0xb5, 0x1c, 0x07, 0x2f, 0xe5, 0xe0, 0x69, 0x2d, 0xb7, 0x95, 0x32, 0xa0, 0xb5, 0xdc,
		0xe2, 0x59, 0xd2, 0x5a, 0xee, 0xb1, 0x04, 0xee, 0xa0, 0x34, 0xee, 0xa0, 0x74, 0xfa, 0xcb, 0xe7,
		0x4a, 0xe5, 0x2e, 0x6a, 0x7e, 0x92, 0x88, 0xbb, 0xa8, 0xe5, 0xdf, 0x3d, 0x77, 0x51, 0x05, 0xc1,
		0x61, 0x9a, 0xcc, 0x17, 0xe0, 0xb1, 0x34, 0x99, 0x17, 0xc2, 0xb3, 0xe6, 0x65, 0x83, 0x1a, 0x0e,
		0xf5, 0x4e, 0x18, 0x7e, 0x14, 0x3f, 0x8a, 0x1f, 0xc5, 0x8f, 0x16, 0xd4, 0x8f, 0xd2, 0xb1, 0xe6,
		0x73, 0x0e, 0x68, 0x98, 0xfb, 0x19, 0xef, 0x55, 0x53, 0x6b, 0x57, 0x1b, 0x15, 0xdd, 0xd3, 0x35,
		0xf6, 0x44, 0x51, 0xe3, 0xf3, 0xd2, 0x69, 0xdf, 0xca, 0xd5, 0x81, 0xde, 0xad, 0x22, 0x32, 0xd5,
		0xf1, 0x76, 0xb5, 0x70, 0xcc, 0x22, 0xfb, 0x8e, 0x4f, 0x89, 0xb8, 0x3e, 0x22, 0x1b, 0x1e, 0x0b,
		0x8f, 0x85, 0xc7, 0xc2, 0x63, 0xe1, 0xb1, 0xf0, 0x58, 0x21, 0x1e, 0xbb, 0x7b, 0xf8, 0x97, 0x1a,
		0x85, 0xdd, 0x3d, 0x38, 0x80, 0xbe, 0x3e, 0x15, 0xc5, 0x0e, 0x0e, 0x94, 0xa8, 0xab, 0xc6, 0x0d,
		0x2c, 0x13, 0x07, 0xc6, 0x3c, 0x93, 0x89, 0x03, 0xcb, 0x7a, 0x13, 0xd6, 0xd8, 0x6b, 0x88, 0x65,
		0x8d, 0x3d, 0x33, 0x07, 0x58, 0x63, 0x3f, 0xc7, 0x08, 0x19, 0x3a, 0xc0, 0x1a, 0x7b, 0x75, 0x09,
		0x54, 0x7c, 0x89, 0x66, 0xfb, 0xb2, 0x46, 0x27, 0xbc, 0x68, 0x45, 0x97, 0x5d, 0xc5, 0x2c, 0xdf,
		0x9d, 0x4c, 0xb2, 0x7b, 0x73, 0x05, 0x90, 0xdd, 0xb3, 0xe2, 0xaf, 0xc8, 0xee, 0xad, 0x65, 0x84,
		0xa9, 0x97, 0xdd, 0x8b, 0x9b, 0x26, 0xc9, 0xe2, 0xec, 0xbb, 0x52, 0xc5, 0x97, 0x60, 0x2b, 0x52,
		0xa5, 0x36, 0x7a, 0x94, 0x77, 0x51, 0x57, 0xc1, 0x48, 0x73, 0x1e, 0xbe, 0x57, 0x3f, 0xfb, 0x70,
		0xb0, 0xfb, 0xe7, 0xb1, 0xb4, 0x91, 0x0e, 0x3a, 0xba, 0xba, 0x2a, 0x3d, 0x97, 0xda, 0xa1, 0xcc,
		0x5e, 0xfd, 0x6c, 0x77, 0xef, 0xbf, 0x4b, 0x11, 0x14, 0x3a, 0x38, 0xba, 0xbd, 0xff, 0x39, 0xe2,
		0xe8, 0x96, 0x3b, 0xba, 0xfd, 0xbd, 0x7d, 0x8e, 0x6e, 0x49, 0xcc, 0x93, 0xae, 0x62, 0x29, 0xef,
		0xd1, 0xd5, 0x8f, 0xff, 0xc1, 0xd1, 0x2d, 0x77, 0x74, 0x47, 0xc7, 0x27, 0x1c, 0xdd, 0x72, 0x47,
		0x77, 0xfc, 0x17, 0x06, 0xbb, 0xe4, 0xd1, 0x7d, 0x3e, 0xfa, 0xb3, 0x52, 0xf0, 0x1c, 0xd4, 0x29,
		0x91, 0xd5, 0xe0, 0xb5, 0x1e, 0xc4, 0xdd, 0x6c, 0x37, 0xcb, 0x52, 0xd9, 0xe8, 0xea, 0x63, 0x9c,
		0xec, 0xb7, 0x4c, 0x3f, 0xc2, 0x15, 0x1e, 0x7f, 0x50, 0xf9, 0x18, 0xdd, 0x4e, 0x48, 0xda, 0xfc,
		0xbd, 0x5a, 0xdd, 0xde, 0xa9, 0x56, 0x37, 0x76, 0x5e, 0xed, 0x6c, 0xbc, 0x79, 0xfd, 0x7a, 0x73,
		0x5b, 0x34, 0xe2, 0xfa, 0x94, 0x36, 0x4d, 0x6a, 0x9a, 0xef, 0xbe, 0x57, 0xde, 0x06, 0x49, 0xaf,
		0xd5, 0xd2, 0x10, 0xf5, 0xb9, 0x6b, 0x52, 0xd1, 0xb9, 0x0e, 0xdc, 0x1a, 0x7b, 0x03, 0xc4, 0xdc,
		0x1a, 0x73, 0x6b, 0xcc, 0xad, 0xb1, 0x55, 0x36, 0xc3, 0xad, 0xf1, 0x12, 0x46, 0xc8, 0xad, 0x31,
		0xb7, 0xc6, 0xea, 0x12, 0xb8, 0x35, 0x96, 0xb8, 0x35, 0xee, 0x0e, 0x90, 0x44, 0x69, 0x4c, 0xfd,
		0xa4, 0x30, 0xee, 0x89, 0xe7, 0x0a, 0xe0, 0x9e, 0xd8, 0x8a, 0x87, 0xe2, 0x9e, 0x78, 0x2d, 0xb3,
		0x19, 0x4c, 0xa8, 0x5f, 0xe9, 0xdc, 0x98, 0x50, 0xbf, 0xf4, 0xdb, 0x61, 0x42, 0x3d, 0x13, 0xea,
		0x6d, 0xd1, 0x51, 0x26, 0xd4, 0x33, 0xa1, 0xbe, 0x10, 0x21, 0x8e, 0x52, 0x9a, 0x88, 0x09, 0xf5,
		0x16, 0x44, 0x31, 0xa1, 0xde, 0xa6, 0x50, 0x26, 0xd4, 0x33, 0xa1, 0x5e, 0x48, 0xa5, 0x98, 0x50,
		0xcf, 0x84, 0x7a, 0x1c, 0xbc, 0x94, 0x83, 0x67, 0x42, 0xbd, 0xad, 0x94, 0x01, 0x13, 0xea, 0x2d,
		0x9e, 0x25, 0x13, 0xea, 0x3d, 0x96, 0xc0, 0xcd, 0x93, 0xf0, 0xcd, 0x93, 0xce, 0x70, 0xfa, 0xfb,
		0x02, 0xb9, 0x81, 0x9a, 0x9f, 0x1a, 0xe2, 0x06, 0x6a, 0xf9, 0x77, 0xcf, 0x0d, 0x54, 0x41, 0xd0,
		0x97, 0xb9, 0xf4, 0x0b, 0xb0, 0x57, 0xe6, 0xd2, 0x7b, 0xfd, 0x8d, 0x96, 0x75, 0xb9, 0xb2, 0x9b,
		0x24, 0xed, 0x2c, 0x12, 0x2b, 0xc8, 0xab, 0x74, 0x1b, 0x57, 0xe6, 0x3a, 0xea, 0xe4, 0x2f, 0xbe,
		0x63, 0x92, 0xc6, 0xc0, 0xab, 0x85, 0x89, 0xc9, 0xbe, 0xb5, 0xd3, 0x7f, 0x85, 0x71, 0xd2, 0xcd,
		0xa2, 0xa4, 0x61, 0x5e, 0xde, 0xff, 0x83, 0xee, 0xcc, 0x9f, 0xbc, 0xec, 0xb4, 0x5b, 0x71, 0xe3,
		0x7b, 0x78, 0xd1, 0x4e, 0xbf, 0x45, 0x69, 0x33, 0x4e, 0x2e, 0x87, 0x7f, 0x12, 0x9b, 0xee, 0xe8,
		0x1f, 0xbd, 0x4c, 0x7b, 0x2d, 0xd3, 0x1d, 0xfc, 0xef, 0xcb, 0x2c, 0x8d, 0x92, 0x6e, 0x5f, 0x75,
		0x5e, 0x76, 0xb3, 0x28, 0x93, 0xb8, 0xb7, 0xad, 0x74, 0xb3, 0xb4, 0xd7, 0xc8, 0x92, 0x91, 0x95,
		0x7e, 0xca, 0x1f, 0xee, 0x70, 0xf8, 0xc3, 0x6b, 0xa3, 0xdf, 0x7d, 0x76, 0xef, 0xef, 0xbb, 0xf7,
		0xff, 0xe0, 0xac, 0x3e, 0xf8, 0xf5, 0x1f, 0xf2, 0xe7, 0x1a, 0xfe, 0x41, 0x6c, 0xba, 0xa3, 0x7f,
		0x72, 0x76, 0xd4, 0x7f, 0xae, 0xc1, 0xff, 0x9e, 0x9d, 0x8c, 0x9f, 0xeb, 0xec, 0x78, 0xf0, 0x5c,
		0xcf, 0xfc, 0xd4, 0x56, 0x3b, 0xdf, 0x64, 0x49, 0xdf, 0xa5, 0xf4, 0xdc, 0x0b, 0xfd, 0xb6, 0xa8,
		0xd9, 0x8e, 0x35, 0xda, 0x8e, 0x2e, 0xaf, 0xae, 0x79, 0xab, 0x7d, 0xc3, 0x8a, 0x3a, 0xdb, 0x67,
		0x96, 0x83, 0x18, 0xc6, 0xfc, 0x5f, 0xcf, 0x24, 0x0d, 0x13, 0xc6, 0xcd, 0x15, 0xdf, 0xb0, 0xdd,
		0xce, 0x1f, 0xfb, 0x1d, 0x3e, 0x2a, 0x9d, 0x3c, 0x02, 0x1d, 0x3b, 0x02, 0x9d, 0x39, 0xab, 0xea,
		0x8e, 0x65, 0x9c, 0x73, 0x88, 0x6f, 0x16, 0x50, 0xcd, 0x09, 0x9a, 0xad, 0x86, 0x61, 0xcb, 0x23,
		0xcf, 0x72, 0xff, 0xe5, 0x92, 0xfa, 0x66, 0x4b, 0xcf, 0xdc, 0xe8, 0xd7, 0x0a, 0xaa, 0xa5, 0xad,
		0x52, 0xcb, 0x69, 0xd3, 0xe2, 0xba, 0xb0, 0x84, 0x1e, 0x54, 0x86, 0xb4, 0x7a, 0xd9, 0xd7, 0x3f,
		0x51, 0xc0, 0xb7, 0x3c, 0x3b, 0xcf, 0xc3, 0xd6, 0x25, 0xff, 0xf3, 0x3c, 0xc3, 0xb6, 0xb5, 0xe4,
		0x17, 0x58, 0xc8, 0xa0, 0x4d, 0x65, 0xc8, 0x56, 0x89, 0xf1, 0x6d, 0xa5, 0xbe, 0xac, 0xa7, 0xb6,
		0xac, 0xa7, 0xae, 0x66, 0x52, 0x53, 0x17, 0x95, 0x82, 0xe0, 0xe6, 0xfb, 0x78, 0x35, 0x12, 0x56,
		0x19, 0x41, 0x5c, 0xdc, 0x5c, 0xfd, 0x35, 0xdf, 0x15, 0x42, 0x8d, 0xbf, 0x72, 0x55, 0xe2, 0x6a,
		0x25, 0x1d, 0x6e, 0x2d, 0xed, 0x6d, 0x33, 0xbd, 0x6d, 0xcd, 0x48, 0xa5, 0xf2, 0xd4, 0x62, 0xf9,
		0x68, 0xb1, 0xbc, 0xb3, 0x4d, 0x23, 0xf6, 0x23, 0x70, 0xb3, 0x96, 0x10, 0xb6, 0x5f, 0xdc, 0x7e,
		0x57, 0xbc, 0xee, 0x8a, 0x9e, 0xae, 0xe0, 0xd7, 0x32, 0x1b, 0xe7, 0x9a, 0x9f, 0xe9, 0xe0, 0xdb,
		0x56, 0x7c, 0xd3, 0xef, 0xcd, 0x45, 0xd4, 0x6b, 0x65, 0x56, 0x6a, 0x2c, 0x2b, 0xf5, 0x77, 0x47,
		0x67, 0xf5, 0x4f, 0x07, 0xb5, 0xbd, 0x15, 0x4b, 0x1d, 0x4e, 0x81, 0x6f, 0xe0, 0x1b, 0xf8, 0xf6,
		0x08, 0xbe, 0xed, 0x56, 0xa0, 0xd9, 0xac, 0x30, 0xb3, 0x5b, 0x41, 0x26, 0x53, 0x21, 0x36, 0xac,
		0x00, 0x9b, 0x40, 0x47, 0x8b, 0x79, 0xee, 0xc1, 0x3a, 0x9f, 0x2f, 0x47, 0x1f, 0xce, 0x8e, 0xf7,
		0x0f, 0xf6, 0xf7, 0x4e, 0x6a, 0x9f, 0x0e, 0xad, 0x40, 0xb0, 0x25, 0x55, 0x9c, 0x38, 0x57, 0xdb,
		0xd5, 0x62, 0x93, 0xe7, 0x69, 0xb5, 0xb0, 0x64, 0xfe, 0x69, 0xbe, 0x0d, 0x36, 0xcb, 0x91, 0xd3,
		0x27, 0x2f, 0x27, 0x9a, 0x97, 0x5b, 0xf5, 0x8a, 0x56, 0x31, 0x2f, 0xb7, 0xc2, 0xad, 0xeb, 0x12,
		0x79, 0xb9, 0x67, 0x82, 0x5a, 0x33, 0xbe, 0x69, 0x5a, 0x36, 0x01, 0xb0, 0xda, 0xbd, 0xd2, 0xea,
		0xf7, 0x48, 0x22, 0xf7, 0x46, 0x16, 0xee, 0x89, 0x2c, 0xdc, 0x0b, 0x2d, 0xfa, 0x26, 0x57, 0xb4,
		0x7b, 0x6d, 0x7b, 0xaf, 0x2c, 0x95, 0x6e, 0x56, 0xb2, 0xf0, 0xc5, 0x6c, 0xfb, 0xe9, 0x16, 0xfa,
		0xb4, 0x7f, 0xf3, 0x89, 0x6f, 0x7e, 0xd9, 0x37, 0xae, 0xf6, 0xa6, 0x17, 0x78, 0xc5, 0x0a, 0xaf,
		0xf6, 0x69, 0xef, 0xf4, 0xe7, 0x6f, 0xe8, 0xf1, 0x7f, 0xe3, 0x27, 0xef, 0x6e, 0xd1, 0x77, 0x26,
		0xfd, 0xae, 0x9e, 0xf0, 0x8a, 0xe4, 0x5e, 0xcd, 0xe3, 0x6f, 0xe4, 0xe1, 0x73, 0x7e, 0xe4, 0x8c,
		0x2b, 0x9d, 0xb4, 0x9d, 0xb5, 0x1b, 0xed, 0xd6, 0xcf, 0xd7, 0xe1, 0xdc, 0x25, 0xbf, 0xf3, 0xff,
		0xe4, 0x27, 0xef, 0xee, 0x69, 0x37, 0x4d, 0x4f, 0xce, 0x7e, 0x2c, 0x92, 0xdd, 0x98, 0xcc, 0x5e,
		0x24, 0x26, 0xeb, 0xbf, 0xd0, 0xa7, 0xbc, 0xba, 0x05, 0x53, 0x14, 0x4b, 0xa7, 0x20, 0x96, 0x4e,
		0x31, 0xdc, 0x4f, 0x21, 0x8c, 0x9f, 0x4d, 0xd8, 0x0a, 0x9f, 0x7a, 0x07, 0x93, 0xeb, 0xc6, 0xd3,
		0x8f, 0xf0, 0xbe, 0x56, 0x3d, 0xf5, 0x04, 0x17, 0xbb, 0xc6, 0x5c, 0x38, 0xc5, 0xb6, 0x4c, 0x2a,
		0x6d, 0x39, 0xa5, 0x5b, 0x35, 0x3f, 0xb6, 0x72, 0x1e, 0x6c, 0xe5, 0x7c, 0xd7, 0xd2, 0x4a, 0x29,
		0xe3, 0xe6, 0x17, 0xbd, 0x30, 0xac, 0x9c, 0x5f, 0x76, 0x16, 0x3f, 0xf5, 0xf1, 0xbb, 0xee, 0xff,
		0xc7, 0x8b, 0xc6, 0x10, 0x4b, 0xdd, 0xc0, 0x2f, 0x9d, 0x25, 0x5e, 0x25, 0x2b, 0x3c, 0xa9, 0xd2,
		0x8b, 0x3f, 0xa9, 0x8d, 0xb4, 0xaf, 0xb5, 0x34, 0xaf, 0xb5, 0xb4, 0xee, 0x7d, 0x75, 0xef, 0x9f,
		0x8b, 0x67, 0x51, 0xea, 0xb2, 0x77, 0xe6, 0x95, 0xcb, 0x56, 0xfb, 0x3c, 0x6a, 0xad, 0x5e, 0xa1,
		0x32, 0xfa, 0x1e, 0xc7, 0x25, 0x2a, 0x1b, 0x7e, 0x94, 0xa8, 0x2c, 0x67, 0x38, 0xb6, 0x0c, 0xc8,
		0xba, 0x21, 0x59, 0x37, 0x28, 0xab, 0x86, 0xe5, 0x26, 0x89, 0xb8, 0x72, 0x91, 0x4a, 0x74, 0x11,
		0x87, 0xdd, 0xe8, 0x22, 0xee, 0xda, 0xbb, 0xb5, 0xbd, 0xfb, 0x4a, 0x3b, 0xb7, 0x9c, 0x9b, 0x25,
		0xbf, 0xe5, 0x5c, 0xcd, 0x4c, 0x6d, 0x9b, 0xab, 0x98, 0xd9, 0x8a, 0x99, 0xaf, 0x88, 0x19, 0x5b,
		0xba, 0x8b, 0x58, 0xb5, 0x78, 0x21, 0xb6, 0xd4, 0x08, 0x30, 0xb6, 0x49, 0x7b, 0xea, 0x71, 0xdf,
		0xda, 0x6d, 0x69, 0x87, 0x1d, 0xa3, 0xb7, 0x6e, 0xfc, 0x12, 0x20, 0x20, 0x07, 0x06, 0x52, 0xa0,
		0x20, 0x0e, 0x0e, 0xe2, 0x20, 0x21, 0x0a, 0x16, 0x76, 0x40, 0xc3, 0x12, 0x78, 0x58, 0x07, 0x91,
		0x3b, 0x30, 0x69, 0x36, 0xc3, 0x4e, 0x94, 0x5d, 0xd9, 0x5f, 0x65, 0x7d, 0x87, 0x2a, 0xb9, 0x08,
		0xcb, 0xaf, 0xdd, 0x2e, 0xbc, 0x88, 0xc1, 0x8c, 0x24, 0xdc, 0xc8, 0xc3, 0x8e, 0x34, 0xfc, 0xa8,
		0xc1, 0x90, 0x1a, 0x1c, 0xa9, 0xc0, 0x92, 0x5d, 0x78, 0xb2, 0x0c, 0x53, 0x62, 0x70, 0x95, 0x7f,
		0x71, 0x63, 0x6c, 0xa3, 0xc2, 0x13, 0x6d, 0x46, 0x72, 0x64, 0x07, 0xd9, 0x6c, 0x32, 0xc8, 0xc6,
		0x21, 0xb0, 0x69, 0x01, 0x9c, 0x3a, 0xd0, 0xa9, 0x03, 0x9e, 0x2a, 0xf0, 0xc9, 0x00, 0xa0, 0x10,
		0x10, 0x8a, 0x03, 0x62, 0x2e, 0xc0, 0xb4, 0xe2, 0xcb, 0xf8, 0xbc, 0x65, 0xc2, 0xa1, 0x6a, 0x85,
		0xa3, 0xc2, 0x0f, 0xb5, 0xe5, 0xf4, 0x0f, 0xc8, 0x17, 0x56, 0x38, 0xd9, 0x89, 0x60, 0x6a, 0x80,
		0xaa, 0x09, 0xac, 0xfa, 0x00, 0xab, 0x0d, 0xb4, 0xce, 0x00, 0xd7, 0x19, 0xf0, 0x3a, 0x01, 0x60,
		0x59, 0x20, 0x16, 0x06, 0xe4, 0xfc, 0xc4, 0xc4, 0xa7, 0x8a, 0xcd, 0xd8, 0x9b, 0xfc, 0x74, 0xb1,
		0x19, 0x9e, 0xb9, 0xa3, 0xb3, 0x42, 0x25, 0x9f, 0x36, 0x96, 0x76, 0xda, 0xad, 0xb7, 0x69, 0xbb,
		0x97, 0xc5, 0xc9, 0xe5, 0xc8, 0x13, 0xe4, 0x7f, 0x3c, 0x2a, 0x8b, 0x1a, 0xcc, 0x22, 0x8b, 0xb3,
		0xb8, 0x9d, 0x74, 0x1f, 0xfe, 0x47, 0xf9, 0x3f, 0x91, 0x9b, 0x40, 0x26, 0xaf, 0xc5, 0x82, 0x1a,
		0x5c, 0x49, 0x4d, 0xc3, 0x0c, 0x67, 0x7b, 0x2b, 0xb9, 0xf9, 0xb1, 0x40, 0x61, 0xab, 0xb4, 0xd9,
		0xf0, 0xf7, 0x53, 0x61, 0x83, 0x72, 0x61, 0x59, 0xed, 0x3a, 0x85, 0x07, 0xc1, 0x83, 0xe0, 0x41,
		0xf0, 0x20, 0x78, 0xd0, 0x5d, 0xf1, 0x5b, 0xbb, 0xdd, 0x32, 0x91, 0xea, 0xae, 0x80, 0xcd, 0x42,
		0xbf, 0x22, 0xc5, 0xb5, 0xfe, 0x13, 0x04, 0xe3, 0xc2, 0xa4, 0x26, 0x69, 0x94, 0x72, 0xbf, 0xd1,
		0x58, 0x13, 0x8f, 0x3e, 0xec, 0x05, 0x3b, 0x6f, 0x36, 0x37, 0x83, 0x30, 0xd8, 0x6d, 0xde, 0x98,
		0x34, 0x8b, 0xbb, 0x83, 0x2e, 0xa7, 0xa0, 0x7d, 0x11, 0x7c, 0xec, 0xb5, 0xb2, 0xb8, 0xd3, 0x32,
		0x41, 0x9f, 0xdf, 0x76, 0x83, 0x38, 0x09, 0xde, 0xfd, 0x59, 0xd7, 0x5c, 0xcd, 0xed, 0x60, 0x21,
		0xf9, 0x7d, 0xa7, 0x71, 0xa7, 0x04, 0xca, 0xbb, 0x6b, 0x5c, 0xae, 0x25, 0x9f, 0xf1, 0x23, 0x8b,
		0x6b, 0x09, 0xab, 0x76, 0x16, 0xa5, 0xc9, 0x84, 0x78, 0x33, 0x2a, 0xd8, 0x35, 0x49, 0x53, 0x2f,
		0xbe, 0x1b, 0x48, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23,
		0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x23, 0xb8, 0x93, 0x08, 0xee,
		0xc2, 0x6b, 0x85, 0x9d, 0xc8, 0x53, 0x01, 0xde, 0x40, 0x22, 0x41, 0x0b, 0x41, 0x0b, 0x41, 0x0b,
		0x41, 0x0b, 0x41, 0x4b, 0x6e, 0x6f, 0xbd, 0x38, 0xc9, 0x7e, 0x57, 0x0c, 0x59, 0x14, 0x76, 0xd1,
		0x57, 0x8e, 0xa2, 0xe4, 0xb2, 0x94, 0xfc, 0xfe, 0x63, 0x9c, 0xe8, 0xf3, 0xe6, 0x2f, 0x51, 0xab,
		0x67, 0x1c, 0x2c, 0xf1, 0xff, 0x90, 0x46, 0x8d, 0x2c, 0x6e, 0x27, 0xef, 0xe3, 0xcb, 0xd8, 0xd6,
		0x1a, 0xa8, 0xc5, 0x4c, 0xc4, 0x5c, 0x46, 0xd9, 0xb0, 0xd2, 0x68, 0xf5, 0xad, 0x4b, 0x1e, 0xa1,
		0xcc, 0xb4, 0x4a, 0x45, 0xb7, 0xee, 0x54, 0x6a, 0xeb, 0xf5, 0x6b, 0x94, 0x8a, 0x90, 0x6a, 0x3d,
		0x42, 0xaa, 0x42, 0xf5, 0x6e, 0x08, 0x2f, 0x6d, 0xbd, 0x0b, 0x06, 0xed, 0x8e, 0x1f, 0x1c, 0x4f,
		0xda, 0xcb, 0xff, 0xea, 0xe5, 0xf9, 0x65, 0xe7, 0xe5, 0x70, 0xb8, 0xce, 0xcb, 0x7c, 0xbe, 0x47,
		0xfe, 0x57, 0x2f, 0xf3, 0x76, 0xdd, 0x97, 0xa2, 0xcd, 0x6f, 0x81, 0xdd, 0x31, 0x87, 0xe3, 0xa7,
		0xcc, 0xff, 0xea, 0xec, 0xdd, 0x65, 0xe7, 0xec, 0xcf, 0xc1, 0x53, 0x9e, 0xed, 0x5e, 0xc4, 0xc7,
		0xfd, 0x87, 0x1c, 0xff, 0xc5, 0xd9, 0x6e, 0xb3, 0x39, 0x48, 0xe2, 0x9c, 0x8d, 0xe2, 0xc6, 0xa2,
		0x2c, 0x35, 0x16, 0x59, 0xa6, 0xbb, 0xca, 0x3a, 0xb1, 0xa7, 0xe7, 0x1b, 0x84, 0x96, 0x01, 0x07,
		0x9a, 0x7d, 0x94, 0x5b, 0xf4, 0x51, 0xfa, 0x93, 0x44, 0xa0, 0x8f, 0x72, 0x8d, 0x7d, 0x31, 0x7d,
		0x94, 0x92, 0x40, 0x4a, 0xb6, 0xd6, 0x67, 0x80, 0xd5, 0x06, 0x5a, 0x67, 0x80, 0xeb, 0x0c, 0x78,
		0x9d, 0x00, 0xb0, 0x4e, 0xb8, 0x48, 0x1f, 0xa5, 0x05, 0x9e, 0x49, 0x1f, 0xa5, 0xcb, 0xa4, 0x01,
		0x7d, 0x94, 0x8b, 0xd3, 0x25, 0x4a, 0x6d, 0xe1, 0x41, 0xf0, 0x20, 0x78, 0x10, 0x3c, 0xa8, 0xb4,
		0x3c, 0x88, 0x52, 0xdb, 0x45, 0x43, 0x7c, 0x4a, 0x6d, 0x65, 0x34, 0x91, 0x52, 0xdb, 0xc7, 0x9d,
		0x06, 0xa5, 0xb6, 0x94, 0xda, 0x72, 0x2f, 0xec, 0x28, 0xc4, 0xa3, 0x8f, 0x92, 0xe0, 0x8e, 0xe0,
		0x8e, 0xe0, 0x8e, 0xe0, 0x8e, 0xe0, 0x8e, 0xe0, 0x8e, 0xe0, 0x8e, 0xe0, 0x8e, 0xe0, 0x8e, 0xe0,
		0x8e, 0xe0, 0x8e, 0xe0, 0xae, 0x24, 0xc1, 0x1d, 0x7d, 0x94, 0x04, 0x2d, 0x04, 0x2d, 0x04, 0x2d,
		0x04, 0x2d, 0xae, 0x83, 0x16, 0xfa, 0x28, 0x0b, 0xc4, 0xef, 0xe9, 0xa3, 0xd4, 0xfc, 0x01, 0xf4,
		0x51, 0x4a, 0xab, 0x14, 0x7d, 0x94, 0xf4, 0x51, 0xae, 0x4d, 0x48, 0x45, 0x1f, 0xe5, 0xbc, 0x60,
		0xd0, 0x97, 0x3e, 0x4a, 0xc9, 0xde, 0xb7, 0xc0, 0x8b, 0x36, 0xca, 0xe3, 0xc1, 0x13, 0x16, 0xa5,
		0x8b, 0xd2, 0xeb, 0x95, 0x99, 0xc2, 0xd6, 0xe1, 0x8d, 0x55, 0x54, 0x44, 0x7a, 0x59, 0xdd, 0xda,
		0x81, 0x5d, 0x0b, 0xb0, 0xa7, 0xa7, 0x16, 0x75, 0x34, 0xdf, 0x11, 0x1f, 0x8e, 0x8e, 0x59, 0x6a,
		0x69, 0xf4, 0x94, 0x18, 0x99, 0xc5, 0xd1, 0x1b, 0x2c, 0x8e, 0x66, 0x71, 0xb4, 0x87, 0xc9, 0x2e,
		0x16, 0x47, 0xcb, 0x25, 0xab, 0x14, 0xda, 0xc6, 0x24, 0xdb, 0xc4, 0xf2, 0xb6, 0xb0, 0x17, 0x2f,
		0x46, 0xe3, 0x39, 0x5e, 0x4e, 0x23, 0xe5, 0x3a, 0x78, 0xa0, 0x4e, 0xa7, 0xf5, 0x5d, 0xaa, 0x21,
		0xfb, 0xce, 0x01, 0x4d, 0x4a, 0x91, 0xf1, 0x3f, 0x9b, 0xf8, 0x9f, 0x29, 0xff, 0x93, 0x76, 0xda,
		0x2d, 0x1c, 0x90, 0x87, 0x0e, 0x68, 0xf0, 0x62, 0xd6, 0xcc, 0x03, 0x49, 0x4d, 0x98, 0xa8, 0x34,
		0xc6, 0x56, 0x2a, 0x3c, 0x71, 0x47, 0x74, 0x7a, 0x93, 0xda, 0xc8, 0x9d, 0x8d, 0x72, 0x8c, 0xdc,
		0x11, 0x82, 0x36, 0x2d, 0x88, 0x53, 0x87, 0x3a, 0x75, 0xc8, 0xd3, 0x85, 0x3e, 0xb9, 0xe4, 0x56,
		0x50, 0xe4, 0xa1, 0x3b, 0xcd, 0x61, 0x27, 0x43, 0x68, 0x6e, 0x3b, 0xed, 0x34, 0x53, 0x9f, 0xb9,
		0x33, 0x5f, 0x7c, 0x99, 0xba, 0x37, 0x8e, 0xf6, 0xff, 0x6b, 0x7f, 0xef, 0xe4, 0xec, 0xe8, 0xd3,
		0xe7, 0x93, 0x7d, 0x9a, 0x38, 0x3c, 0xf0, 0x43, 0x9a, 0xfe, 0xc8, 0x81, 0x5f, 0xd2, 0xf6, 0x4f,
		0xce, 0xfc, 0x94, 0x33, 0x7f, 0xe5, 0xc6, 0x6f, 0xc9, 0xfa, 0x2f, 0x61, 0x3f, 0x26, 0x9f, 0x64,
		0xfa, 0xa9, 0x87, 0x19, 0x4d, 0xe6, 0xc9, 0xfa, 0x3f, 0x40, 0xb1, 0xa5, 0xa3, 0xaa, 0x20, 0x6b,
		0x3f, 0xe9, 0x5d, 0xeb, 0xd9, 0xf9, 0x49, 0xfb, 0x38, 0x4b, 0xe3, 0xe4, 0x52, 0xb5, 0xce, 0xa4,
		0xb2, 0xd1, 0x7f, 0x97, 0xbb, 0x7b, 0x7b, 0xfb, 0xf5, 0xb1, 0x2f, 0x55, 0xac, 0xaa, 0xd9, 0x1c,
		0xd4, 0xd7, 0xab, 0x39, 0x72, 0x25, 0x63, 0x9c, 0x78, 0xa3, 0xb5, 0x01, 0x88, 0x29, 0xbe, 0xce,
		0xa9, 0x37, 0xa9, 0x5a, 0xb6, 0x33, 0xfd, 0x1e, 0xdf, 0x06, 0x9b, 0x25, 0x29, 0xa4, 0xf9, 0x41,
		0x6f, 0xc2, 0x83, 0xc1, 0x4d, 0x7c, 0xed, 0x34, 0xb8, 0x99, 0x16, 0x4f, 0x70, 0x43, 0x70, 0x43,
		0x70, 0x43, 0x70, 0x43, 0x70, 0x43, 0x70, 0x43, 0x70, 0x43, 0x70, 0x43, 0x70, 0x43, 0x70, 0x43,
		0x70, 0x53, 0xd2, 0xe0, 0x86, 0x2e, 0x81, 0x39, 0x72, 0x5c, 0xd7, 0x43, 0x4f, 0x94, 0x19, 0x95,
		0x79, 0xe1, 0x52, 0xff, 0x31, 0xeb, 0x83, 0xa7, 0x64, 0xe7, 0x12, 0x3b, 0x97, 0x16, 0x88, 0x4d,
		0xb7, 0x28, 0x00, 0xf1, 0x28, 0x06, 0xa5, 0x00, 0x64, 0x9d, 0x7d, 0x32, 0x05, 0x20, 0x12, 0x87,
		0x4a, 0x8e, 0x74, 0x05, 0xff, 0x43, 0x8e, 0xd4, 0x6b, 0xbf, 0xa4, 0xed, 0x9f, 0x9c, 0xf9, 0x29,
		0x67, 0xfe, 0xca, 0x8d, 0xdf, 0x52, 0x8a, 0x85, 0xc9, 0x91, 0xda, 0x25, 0xeb, 0xe4, 0x48, 0xed,
		0x48, 0x25, 0x47, 0x2a, 0xf9, 0x46, 0xc9, 0x91, 0x16, 0x1a, 0xb5, 0x03, 0x0a, 0x40, 0x1e, 0x0d,
		0x6e, 0x28, 0x00, 0x21, 0xb8, 0x21, 0xb8, 0x21, 0xb8, 0x21, 0xb8, 0x21, 0xb8, 0x21, 0xb8, 0x21,
		0xb8, 0x21, 0xb8, 0x21, 0xb8, 0x21, 0xb8, 0x21, 0xb8, 0x91, 0x0f, 0x6e, 0x28, 0x00, 0x99, 0x23,
		0xc7, 0xa7, 0x02, 0x90, 0xf2, 0x4e, 0x8a, 0x9c, 0xa8, 0xff, 0x60, 0x58, 0x64, 0x51, 0x6c, 0xc4,
		0x27, 0xdb, 0x28, 0xd5, 0xbc, 0xc8, 0x3b, 0x6b, 0x58, 0x87, 0x81, 0x5d, 0x42, 0x13, 0x6f, 0x64,
		0x27, 0xdd, 0x30, 0xa4, 0x6b, 0x7e, 0x4e, 0x85, 0x21, 0x91, 0x7e, 0xa4, 0x48, 0x18, 0x12, 0x29,
		0x37, 0xa2, 0x4b, 0x76, 0xc6, 0xed, 0x8c, 0x55, 0x49, 0xce, 0xba, 0xbd, 0x0f, 0x67, 0x1b, 0x0c,
		0xec, 0x72, 0x08, 0x73, 0x5a, 0x70, 0xa7, 0x0e, 0x7b, 0xea, 0xf0, 0xa7, 0x0a, 0x83, 0xc5, 0x0c,
		0xa0, 0xc5, 0x13, 0xc0, 0xb9, 0xbd, 0xc4, 0x4d, 0x93, 0x64, 0x71, 0xf6, 0x5d, 0x66, 0x9e, 0xee,
		0x0c, 0x23, 0x13, 0x5c, 0xec, 0x52, 0xa9, 0x8d, 0x1e, 0xe5, 0x5d, 0xd4, 0x35, 0x7a, 0x77, 0xb3,
		0xbb, 0x1f, 0x6a, 0x67, 0xc7, 0xfd, 0xff, 0x39, 0xf9, 0xab, 0x2e, 0x9d, 0x6e, 0x1d, 0x6e, 0xc8,
		0xe9, 0xaa, 0x5c, 0xc9, 0x2a, 0xe5, 0xc9, 0xc7, 0xc7, 0x58, 0xab, 0x7f, 0xa9, 0x9e, 0x7d, 0x38,
		0xf8, 0xf4, 0x3f, 0xc7, 0xf5, 0xfd, 0x3d, 0x85, 0xfb, 0xa1, 0xdf, 0x4a, 0x79, 0x80, 0x07, 0xbb,
		0xef, 0xf6, 0x0f, 0xf6, 0xdf, 0x9f, 0x7d, 0x3e, 0xac, 0xed, 0xed, 0x1e, 0x9f, 0x70, 0x8e, 0x4b,
		0x9e, 0x23, 0xe7, 0xb7, 0xca, 0xf9, 0x6d, 0xa3, 0x87, 0x96, 0xce, 0x91, 0xf3, 0x5b, 0xfa, 0xfc,
		0x0e, 0xb6, 0xbe, 0xd4, 0x0f, 0xcf, 0xf6, 0xbf, 0xd4, 0x0f, 0x39, 0xbd, 0x65, 0x4f, 0xef, 0x4b,
		0xfd, 0xe0, 0x98, 0xd3, 0x5b, 0xe2, 0xf4, 0x5e, 0xf5, 0x4f, 0x6f, 0xe0, 0x49, 0x3e, 0x7e, 0x3e,
		0x38, 0xc1, 0x86, 0x57, 0x3f, 0x47, 0x90, 0x70, 0xf5, 0x53, 0xdc, 0x46, 0x1b, 0x2d, 0x9d, 0x23,
		0xda, 0xb8, 0xfc, 0x29, 0xd6, 0x0e, 0xff, 0xfb, 0xf8, 0x64, 0x57, 0xa3, 0x3a, 0xa8, 0xc4, 0x87,
		0x77, 0x76, 0x5c, 0xff, 0xc0, 0x01, 0xae, 0x72, 0x80, 0x10, 0xc3, 0xa5, 0x0e, 0xf0, 0xf8, 0xe8,
		0x64, 0xff, 0xac, 0xfe, 0xe9, 0xa0, 0xb6, 0xf7, 0xd7, 0xc0, 0x31, 0x73, 0x86, 0x2b, 0x9f, 0xe1,
		0x36, 0x67, 0xb8, 0xf8, 0x19, 0x7e, 0xa9, 0x1f, 0xea, 0x26, 0x0c, 0x65, 0x9b, 0x52, 0x8a, 0x76,
		0xef, 0x51, 0x88, 0x59, 0x3d, 0x26, 0x89, 0xce, 0x5b, 0xa6, 0x29, 0x7f, 0x0b, 0x3c, 0x16, 0x24,
		0x35, 0xbb, 0x43, 0xa1, 0x13, 0xab, 0x32, 0x58, 0x3b, 0x2f, 0x63, 0x47, 0xa7, 0xdc, 0x8b, 0xcf,
		0x15, 0xc0, 0xbd, 0xf8, 0x52, 0x6f, 0x9d, 0x7b, 0x71, 0xff, 0xfd, 0x43, 0xe1, 0xef, 0xc5, 0xcf,
		0xdb, 0xed, 0x96, 0x89, 0x12, 0x8d, 0x3b, 0xf1, 0xcd, 0x75, 0x1e, 0xa7, 0x67, 0x92, 0x66, 0xd8,
		0x68, 0x5f, 0x5f, 0xf7, 0x92, 0x38, 0x1b, 0xf5, 0x9d, 0xc9, 0x0f, 0xd7, 0x9b, 0x23, 0x14, 0x17,
		0x85, 0x8b, 0xc2, 0x45, 0xe1, 0xa2, 0x0a, 0xe4, 0xa2, 0x54, 0x10, 0x2c, 0x50, 0x6a, 0xd3, 0xd5,
		0x69, 0xcf, 0xd5, 0x6d, 0xcb, 0x1d, 0xb6, 0xe3, 0x1e, 0x9f, 0xec, 0x1e, 0xbe, 0xdf, 0x3d, 0x7a,
		0xaf, 0xd1, 0x4f, 0x3d, 0x68, 0xc1, 0xdd, 0xff, 0xe7, 0xc9, 0xfe, 0xe1, 0xfb, 0x7d, 0x15, 0x81,
		0x5b, 0x83, 0xa4, 0xea, 0xee, 0xd1, 0x9f, 0x1a, 0x9d, 0xc6, 0x95, 0x57, 0x7d, 0x69, 0xef, 0x3e,
		0x9d, 0xfc, 0x43, 0x43, 0x58, 0xb5, 0x2f, 0xec, 0xf0, 0xd3, 0xa1, 0xf0, 0x45, 0x85, 0xf8, 0x2c,
		0x01, 0xb5, 0xb6, 0xe5, 0xe1, 0x9b, 0x79, 0x1b, 0xbc, 0xd2, 0x68, 0xe6, 0x1f, 0xeb, 0xb8, 0xd8,
		0x18, 0xe3, 0x29, 0x71, 0x43, 0x0d, 0x17, 0x9b, 0x68, 0x3c, 0x0d, 0xef, 0x7d, 0x95, 0x7b, 0x1b,
		0x68, 0x8c, 0x44, 0xc8, 0xa1, 0xe9, 0x6d, 0xb0, 0x41, 0x63, 0xb4, 0x02, 0x39, 0x38, 0x88, 0xbb,
		0xd9, 0x6e, 0x96, 0x09, 0x8f, 0xe2, 0xfd, 0x18, 0x27, 0xfb, 0x2d, 0xd3, 0xa7, 0x67, 0x5d, 0xd9,
		0xa9, 0x01, 0x95, 0x8f, 0xd1, 0xed, 0x84, 0xa4, 0xcd, 0xdf, 0xab, 0xd5, 0xed, 0x9d, 0x6a, 0x75,
		0x63, 0xe7, 0xd5, 0xce, 0xc6, 0x9b, 0xd7, 0xaf, 0x37, 0xb7, 0x45, 0xeb, 0xbd, 0x3f, 0xa5, 0x4d,
		0x93, 0x9a, 0xe6, 0xbb, 0xef, 0x95, 0xb7, 0x41, 0xd2, 0x6b, 0xb5, 0x34, 0x44, 0x7d, 0xee, 0x9a,
		0xfe, 0xcb, 0x1b, 0x24, 0x4b, 0x69, 0x83, 0xb6, 0x11, 0x48, 0x94, 0xbb, 0x0d, 0x5a, 0x6c, 0x2d,
		0x84, 0xb3, 0x06, 0x68, 0x89, 0x15, 0x10, 0x7e, 0xf6, 0x3e, 0x5f, 0xa6, 0x51, 0xc3, 0x5c, 0xf4,
		0x5a, 0x61, 0x6a, 0xba, 0x59, 0x94, 0x66, 0x72, 0x5d, 0xd0, 0x33, 0x92, 0xe8, 0x87, 0xa6, 0x1f,
		0xda, 0x79, 0x76, 0x89, 0x7e, 0x68, 0x3d, 0x37, 0x28, 0xd6, 0x0f, 0x2d, 0x34, 0xc0, 0x61, 0x4e,
		0x32, 0x4a, 0x70, 0xff, 0x91, 0xda, 0xc6, 0x1a, 0xd2, 0xe8, 0x1e, 0x00, 0x9c, 0x3a, 0xd0, 0xa9,
		0x03, 0x9e, 0x2a, 0xf0, 0x15, 0x33, 0x52, 0x16, 0xdf, 0x57, 0x23, 0x5d, 0x1c, 0x34, 0x63, 0x97,
		0xb2, 0x45, 0x42, 0x77, 0x07, 0xa7, 0x39, 0xb6, 0x59, 0xb0, 0x68, 0x68, 0xfc, 0x61, 0x5e, 0xb3,
		0x77, 0xae, 0x46, 0xdf, 0xe5, 0x68, 0xbb, 0x1e, 0x67, 0x2e, 0xc8, 0x99, 0x2b, 0x72, 0xe2, 0x92,
		0x64, 0x5d, 0x93, 0xb0, 0x8b, 0xca, 0x4f, 0x4c, 0x7f, 0x5a, 0xb3, 0x7c, 0x71, 0xd2, 0x0c, 0xf3,
		0xde, 0xe4, 0x7e, 0x40, 0x81, 0xf5, 0xac, 0xc9, 0xe0, 0xd4, 0xfb, 0xf9, 0xae, 0x12, 0x6f, 0xcf,
		0xfd, 0x73, 0xf4, 0xa8, 0x47, 0xc3, 0x27, 0x65, 0x83, 0x2e, 0x1b, 0x74, 0x17, 0x20, 0x8b, 0x5b,
		0xe4, 0x23, 0xc8, 0x47, 0x90, 0x8f, 0x20, 0x1f, 0x41, 0x3e, 0x82, 0x7c, 0x04, 0xf9, 0x08, 0xf2,
		0x11, 0xe4, 0x23, 0xc8, 0x47, 0x90, 0x8f, 0x20, 0x1f, 0x41, 0x3e, 0x42, 0x34, 0x1f, 0x51, 0xda,
		0x65, 0x2e, 0xf7, 0xd3, 0x11, 0x2c, 0x74, 0x29, 0x8a, 0xad, 0xf8, 0x66, 0x23, 0x65, 0xaa, 0x69,
		0xbc, 0x67, 0x15, 0xeb, 0x50, 0xdc, 0x18, 0x77, 0x6e, 0xaa, 0x61, 0x2b, 0x3a, 0x37, 0x2d, 0xd3,
		0x0c, 0x7b, 0x49, 0xdc, 0x88, 0xba, 0x82, 0x05, 0x8e, 0x73, 0xa5, 0x51, 0xe4, 0x48, 0x91, 0xa3,
		0xf3, 0x40, 0x87, 0x22, 0x47, 0x3d, 0x0f, 0x29, 0x56, 0xe4, 0x38, 0xd4, 0x90, 0xb0, 0x15, 0x5f,
		0xc7, 0x99, 0xfc, 0xcd, 0xc2, 0x94, 0x34, 0x0a, 0x1e, 0x5d, 0x65, 0x7d, 0xb8, 0x60, 0x28, 0x5e,
		0x56, 0x87, 0x0b, 0x06, 0x75, 0x70, 0xcc, 0x05, 0x08, 0x57, 0x82, 0xcf, 0x98, 0xa5, 0xf8, 0x9d,
		0xbe, 0x02, 0x50, 0xaa, 0x01, 0xa6, 0x26, 0x70, 0xea, 0x03, 0xa8, 0x36, 0x90, 0x3a, 0x03, 0x54,
		0x67, 0xc0, 0xea, 0x04, 0x60, 0xe5, 0xb3, 0xa5, 0x81, 0x42, 0xba, 0x5c, 0x1a, 0x78, 0x73, 0x41,
		0xd7, 0xd1, 0x6d, 0x38, 0xd4, 0xc2, 0xc1, 0x0a, 0x27, 0xe5, 0x81, 0xa9, 0x53, 0xd2, 0x95, 0x94,
		0x51, 0xe7, 0x2e, 0x53, 0x1d, 0xa4, 0x5d, 0x80, 0xb5, 0x3b, 0xd0, 0x76, 0x05, 0xde, 0xce, 0x41,
		0xdc, 0x39, 0x98, 0x3b, 0x05, 0x75, 0x1d, 0x70, 0x57, 0x02, 0xf9, 0xfc, 0x24, 0xd5, 0xee, 0x46,
		0x67, 0xec, 0xb5, 0x17, 0x27, 0xd9, 0xab, 0x2d, 0x4d, 0x7b, 0x1d, 0xa1, 0xef, 0x8e, 0xa2, 0xc8,
		0xa3, 0x28, 0xb9, 0x34, 0x2a, 0xa5, 0x3e, 0x93, 0x1f, 0x5d, 0x3c, 0x0a, 0x46, 0x23, 0x56, 0xd4,
		0x81, 0x30, 0x17, 0x3e, 0xd8, 0x02, 0xa9, 0xe7, 0xe6, 0x66, 0xe4, 0x7f, 0x48, 0xa3, 0x46, 0x16,
		0xb7, 0x93, 0xf7, 0xf1, 0x65, 0x2c, 0x3d, 0x62, 0xe6, 0x71, 0xdb, 0x32, 0x97, 0x51, 0x16, 0xdf,
		0x18, 0xd1, 0x89, 0x2c, 0x1e, 0xc0, 0xd6, 0xb4, 0xea, 0x45, 0xb7, 0xee, 0x55, 0xaf, 0xba, 0xf5,
		0xa6, 0xfa, 0x66, 0x7b, 0x67, 0xeb, 0xcd, 0x6b, 0x74, 0xd0, 0xb5, 0x0e, 0x3e, 0x2b, 0xa7, 0xb4,
		0xd3, 0x67, 0xe5, 0x78, 0x1e, 0x05, 0x8c, 0xe8, 0xf3, 0xe2, 0x1b, 0x93, 0x64, 0x61, 0x66, 0xa2,
		0xb4, 0xd9, 0xfe, 0x96, 0xe8, 0x87, 0x97, 0x33, 0xbf, 0x40, 0x89, 0xd0, 0x69, 0x96, 0x17, 0xe7,
		0x42, 0x15, 0xca, 0x8c, 0x73, 0x2b, 0x20, 0x54, 0x27, 0x54, 0x27, 0x54, 0x27, 0x54, 0x27, 0x54,
		0x57, 0xb3, 0x57, 0xbd, 0x72, 0xe6, 0xfb, 0xf0, 0x2b, 0x5c, 0xd6, 0x5c, 0x2e, 0xd2, 0xf3, 0x2d,
		0x4a, 0x93, 0x38, 0xb9, 0x0c, 0xb3, 0xab, 0xd4, 0x74, 0xaf, 0xda, 0xad, 0x66, 0xd8, 0x69, 0x64,
		0xfa, 0xcc, 0x67, 0xfe, 0xcf, 0xc0, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0xb6, 0x5e,
		0x08, 0x6a, 0xd2, 0x86, 0x49, 0xb2, 0xe8, 0xd2, 0x38, 0xf0, 0xdc, 0xaf, 0xc9, 0xb2, 0xdb, 0x7f,
		0x50, 0xb2, 0xec, 0x64, 0x38, 0xd7, 0x39, 0xcb, 0xbe, 0xb9, 0x81, 0xf2, 0x91, 0x5e, 0x97, 0xf9,
		0x94, 0x26, 0xbd, 0x5e, 0xe8, 0xe2, 0x33, 0xa5, 0x06, 0xdb, 0x5c, 0x9e, 0xe3, 0x26, 0xc2, 0x79,
		0x7d, 0x60, 0x2f, 0x27, 0xfb, 0x29, 0x5e, 0xaa, 0x54, 0x0d, 0x07, 0x2e, 0x9b, 0x0d, 0x6b, 0x9d,
		0x9b, 0xea, 0xc1, 0xf0, 0x08, 0x3e, 0x0f, 0x4f, 0xe0, 0x6c, 0x18, 0xe5, 0x1e, 0xf4, 0x0f, 0x40,
		0x74, 0x40, 0x98, 0xbc, 0xcd, 0xfc, 0x10, 0xed, 0x99, 0x96, 0x1c, 0x1c, 0x36, 0x13, 0x4e, 0x48,
		0xf7, 0x80, 0x07, 0x2e, 0xca, 0xd7, 0xb7, 0x28, 0x5f, 0x2f, 0x4e, 0x7e, 0x86, 0xf2, 0x75, 0xca,
		0xd7, 0x7f, 0x7a, 0x62, 0x94, 0xaf, 0x4b, 0x83, 0x33, 0xc9, 0xf5, 0x22, 0x83, 0xb6, 0x2b, 0xf0,
		0x76, 0x0e, 0xe2, 0xce, 0xc1, 0xdc, 0x29, 0xa8, 0xeb, 0x06, 0xd4, 0x94, 0xaf, 0x8b, 0xa1, 0x2f,
		0xe5, 0xeb, 0x02, 0x0f, 0x4a, 0x62, 0x9d, 0xdc, 0x26, 0xe5, 0xeb, 0x94, 0xaf, 0x93, 0x5f, 0x17,
		0xfb, 0x50, 0xbe, 0xfe, 0x74, 0x25, 0x9c, 0xcc, 0x00, 0x87, 0xe6, 0xb6, 0x61, 0x4c, 0x53, 0x61,
		0x12, 0xf6, 0x0c, 0xc7, 0x99, 0xff, 0x33, 0x08, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09,
		0x36, 0xd5, 0xec, 0x95, 0x02, 0xec, 0xa2, 0xb8, 0x6d, 0xba, 0xce, 0xe8, 0x3a, 0x83, 0xf4, 0x40,
		0x7a, 0x20, 0x3d, 0x90, 0x1e, 0x48, 0x0f, 0xa4, 0xa7, 0xfc, 0xa4, 0x87, 0xae, 0x33, 0xdc, 0x36,
		0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xd3, 0x75, 0x26, 0xfe, 0xe1, 0x72, 0x5c, 0x57, 0x3e,
		0x17, 0x93, 0xca, 0xd0, 0x35, 0xad, 0x7a, 0x74, 0x9d, 0xa1, 0x7c, 0x01, 0xb7, 0xe2, 0xfe, 0x47,
		0x9a, 0x74, 0x9d, 0x2d, 0x20, 0xcf, 0xfb, 0xae, 0x33, 0x8d, 0x5e, 0x9f, 0xc0, 0xe3, 0xa6, 0x33,
		0xc1, 0x35, 0x90, 0xf2, 0x16, 0xc3, 0x4a, 0xd5, 0x22, 0xda, 0x5c, 0x19, 0xb7, 0xab, 0x3e, 0x6e,
		0x65, 0x85, 0x59, 0xb3, 0xfa, 0x9b, 0xec, 0x86, 0xb6, 0x30, 0x35, 0x0d, 0x13, 0xdf, 0x08, 0x56,
		0x78, 0xcd, 0xaf, 0xe8, 0xca, 0xc5, 0xb2, 0xb3, 0x6d, 0xae, 0x00, 0x76, 0xb6, 0x2d, 0xf5, 0xd6,
		0xd9, 0xd9, 0xb6, 0xb6, 0xbe, 0x9c, 0x9d, 0x6d, 0x1e, 0x02, 0xa5, 0x1a, 0x60, 0x6a, 0x02, 0xa7,
		0x3e, 0x80, 0x6a, 0x03, 0xa9, 0x33, 0x40, 0x75, 0x06, 0xac, 0x4e, 0x00, 0xb6, 0x1c, 0x09, 0x0c,
		0x9a, 0xde, 0xa5, 0xc1, 0x99, 0xbb, 0xfd, 0x22, 0x83, 0xb6, 0x2b, 0xf0, 0x76, 0x0e, 0xe2, 0xce,
		0xc1, 0xdc, 0x29, 0xa8, 0xeb, 0x80, 0xbb, 0x12, 0xc8, 0xe7, 0x27, 0x49, 0xd3, 0xbb, 0xa8, 0x48,
		0xee, 0xf5, 0x35, 0x84, 0x73, 0xaf, 0x3f, 0xb6, 0x2d, 0xee, 0xf5, 0x1d, 0xa9, 0x1e, 0x4d, 0xef,
		0xfe, 0xe8, 0x20, 0xd7, 0xfb, 0x5e, 0x3f, 0x0f, 0xdd, 0x73, 0xa2, 0xd1, 0x3b, 0xdd, 0x73, 0x84,
		0xea, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x96, 0xec, 0x95, 0xee, 0xb9, 0x42, 0x90,
		0x1e, 0xba, 0xe7, 0x70, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x4d, 0xf7, 0x9c, 0xf8,
		0x87, 0x2c, 0xbb, 0xae, 0x7c, 0x32, 0x9c, 0xca, 0xd0, 0x35, 0xad, 0x7a, 0x74, 0xcf, 0xa1, 0x7c,
		0x01, 0xe9, 0x75, 0xff, 0x23, 0x4d, 0xba, 0xe7, 0x16, 0x90, 0xe7, 0x7b, 0x27, 0x4f, 0xde, 0x58,
		0xb1, 0xf6, 0xcb, 0xdb, 0x8e, 0x46, 0x07, 0xc1, 0x12, 0xb7, 0x47, 0x5e, 0x1c, 0x4b, 0xdc, 0x56,
		0x4d, 0xe4, 0xb0, 0xc4, 0xad, 0x40, 0x09, 0x1b, 0xea, 0xd9, 0xa9, 0x67, 0xff, 0xe9, 0x89, 0x51,
		0xcf, 0x2e, 0x0d, 0xce, 0x64, 0xdb, 0x8b, 0x0c, 0xda, 0xae, 0xc0, 0xdb, 0x39, 0x88, 0x3b, 0x07,
		0x73, 0xa7, 0xa0, 0xae, 0x1b, 0x61, 0x53, 0xcf, 0x2e, 0x86, 0xbe, 0xd4, 0xb3, 0x0b, 0x3c, 0x28,
		0x99, 0x76, 0x92, 0x9d, 0xd4, 0xb3, 0x53, 0xcf, 0x4e, 0xc2, 0x5d, 0xec, 0x43, 0x3d, 0xfb, 0xd3,
		0x95, 0x90, 0x25, 0x6e, 0x04, 0x9b, 0x04, 0x9b, 0x04, 0x9b, 0x04, 0x9b, 0x04, 0x9b, 0x54, 0x64,
		0x17, 0xc9, 0x6d, 0xd3, 0x86, 0x46, 0x1b, 0x1a, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40,
		0x7a, 0x20, 0x3d, 0xe5, 0x27, 0x3d, 0xb4, 0xa1, 0xe1, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36,
		0x6e, 0x9b, 0x36, 0x34, 0xf1, 0x0f, 0x97, 0xe3, 0xba, 0xf2, 0xb9, 0x98, 0x54, 0x86, 0xae, 0x69,
		0xd5, 0xa3, 0x0d, 0x0d, 0xe5, 0x0b, 0xb8, 0x15, 0xf7, 0x3f, 0xd2, 0xa4, 0x0d, 0x6d, 0x01, 0x79,
		0xc5, 0x69, 0x43, 0x5b, 0xf3, 0x6d, 0x6e, 0x79, 0x17, 0x1a, 0x5b, 0xdd, 0xb4, 0x8c, 0x92, 0xad,
		0x6e, 0x4a, 0x4b, 0xb6, 0x0a, 0x60, 0x76, 0x85, 0x59, 0xf3, 0xf6, 0xcc, 0x63, 0xc3, 0xaa, 0x98,
		0xdb, 0x2c, 0x8d, 0xc2, 0x5e, 0xff, 0x4d, 0x9d, 0xb7, 0x64, 0xb2, 0x02, 0x95, 0x6f, 0x57, 0x26,
		0x11, 0x8b, 0x85, 0x15, 0x96, 0xa8, 0xbd, 0x78, 0x91, 0x5b, 0x66, 0xd8, 0xb7, 0x86, 0xe0, 0x8f,
		0xe0, 0xf9, 0x30, 0x03, 0x15, 0x66, 0xdf, 0x3b, 0xa6, 0xfb, 0xb6, 0x56, 0xff, 0x52, 0x3d, 0x3b,
		0xd8, 0x7d, 0xb7, 0x7f, 0xb0, 0xff, 0xfe, 0xec, 0xf3, 0x61, 0x6d, 0x6f, 0xf7, 0xf8, 0xe4, 0x79,
		0xc9, 0x96, 0xae, 0x0d, 0x5e, 0x62, 0x99, 0x57, 0xae, 0x2d, 0xf9, 0x96, 0x0b, 0xd9, 0x1d, 0xfe,
		0xde, 0x74, 0x1b, 0x69, 0xdc, 0x51, 0x21, 0xb5, 0xb9, 0x19, 0xd5, 0x92, 0x46, 0xab, 0xd7, 0x34,
		0x41, 0x76, 0x15, 0x77, 0x83, 0x46, 0x3b, 0xc9, 0xa2, 0x38, 0x31, 0x69, 0x70, 0xd1, 0x4e, 0x83,
		0x5a, 0xfd, 0xa6, 0x1a, 0x8c, 0x20, 0x3f, 0x18, 0x61, 0x7e, 0xd0, 0xed, 0x98, 0x46, 0x7c, 0x11,
		0x37, 0xbe, 0x8e, 0xdc, 0x4e, 0x2f, 0x1d, 0x3a, 0x7e, 0x61, 0x9d, 0x50, 0xcc, 0xf0, 0x4f, 0xda,
		0x57, 0x73, 0xe2, 0x95, 0x28, 0x50, 0x6a, 0x17, 0xe9, 0xfc, 0x29, 0x73, 0xb3, 0xa5, 0x0d, 0xd0,
		0x6e, 0xd1, 0x6f, 0x3d, 0xf5, 0x9a, 0xbd, 0x08, 0x87, 0x03, 0x3e, 0x86, 0x01, 0x02, 0xe0, 0xe0,
		0x11, 0xd1, 0xb7, 0x6b, 0xce, 0xf6, 0xcc, 0xc1, 0xa2, 0xe2, 0x56, 0x06, 0x6f, 0x75, 0xfc, 0x36,
		0x6d, 0xab, 0x6d, 0xee, 0x6d, 0xa7, 0xa4, 0x58, 0x36, 0x3b, 0x99, 0x41, 0x2c, 0x62, 0xa5, 0x0b,
		0x92, 0x25, 0x0a, 0xf2, 0xa5, 0x08, 0xd2, 0x84, 0x44, 0xad, 0xb4, 0x40, 0x8d, 0x73, 0xa8, 0x94,
		0x0a, 0xf8, 0x1d, 0xd6, 0x4b, 0x0d, 0x3a, 0x91, 0xde, 0x94, 0xac, 0xb3, 0x21, 0x99, 0x15, 0xf2,
		0x3e, 0x00, 0x9b, 0xcb, 0x6c, 0x06, 0x2b, 0xe4, 0x7d, 0x8d, 0x60, 0x8a, 0xba, 0x42, 0xde, 0xdc,
		0x66, 0x26, 0x69, 0x9a, 0x66, 0x98, 0x98, 0xdb, 0x2c, 0xbc, 0x6a, 0x77, 0xc2, 0x3e, 0x8b, 0x6e,
		0xc6, 0x89, 0xe2, 0x5a, 0xf9, 0x47, 0x7e, 0x83, 0xf4, 0x60, 0x2d, 0xc5, 0x1e, 0x1f, 0x8d, 0xde,
		0x9e, 0x53, 0x9d, 0x51, 0x86, 0x1b, 0xac, 0xe6, 0xf7, 0xd8, 0x31, 0xb9, 0x48, 0x09, 0x06, 0x8c,
		0x32, 0x64, 0x94, 0xe1, 0x53, 0x4e, 0x4c, 0xad, 0x88, 0xd7, 0x41, 0xcf, 0x8d, 0x52, 0xaf, 0x4d,
		0x41, 0x27, 0xfb, 0x9a, 0xa4, 0x19, 0x36, 0x87, 0xfe, 0x36, 0x4c, 0xdb, 0x3d, 0xd5, 0x31, 0xbf,
		0xb3, 0xb2, 0x21, 0x16, 0x10, 0x0b, 0x88, 0x05, 0xc4, 0x02, 0x62, 0x01, 0xb1, 0x80, 0x58, 0x88,
		0x13, 0x0b, 0xaa, 0x35, 0xe7, 0x51, 0x22, 0x0f, 0xae, 0x69, 0xc7, 0x55, 0x9a, 0xe2, 0xbb, 0x39,
		0x9c, 0xde, 0xd6, 0x8e, 0xeb, 0x31, 0x25, 0x17, 0x6f, 0x08, 0x94, 0x60, 0x0a, 0xdc, 0xca, 0x4d,
		0x56, 0xe3, 0xca, 0x5f, 0x87, 0x4c, 0x49, 0xe3, 0x52, 0xc4, 0x15, 0x55, 0xe4, 0x52, 0xa4, 0x78,
		0x54, 0x90, 0x4b, 0x91, 0x87, 0x83, 0x6b, 0xe9, 0x4b, 0x11, 0xe1, 0xdb, 0xe2, 0x19, 0xb3, 0x54,
		0x59, 0x8c, 0xa5, 0xbe, 0x87, 0x88, 0x18, 0x9b, 0x18, 0x9b, 0x18, 0xbb, 0x4c, 0x31, 0x36, 0x7b,
		0x88, 0xa4, 0xc1, 0x99, 0x71, 0x4b, 0x45, 0x06, 0x6d, 0x57, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83,
		0xb9, 0x53, 0x50, 0xd7, 0x01, 0x77, 0x25, 0x90, 0xcf, 0x4f, 0x92, 0x3d, 0x44, 0xa2, 0x22, 0x19,
		0xb5, 0xa4, 0x21, 0x9c, 0x51, 0x4b, 0x63, 0xdb, 0x62, 0xd4, 0x92, 0x23, 0xd5, 0x63, 0x0f, 0x91,
		0x3f, 0x3a, 0xc8, 0xc4, 0x25, 0xaf, 0x9f, 0x87, 0x85, 0x06, 0xa2, 0xd1, 0x3b, 0x0b, 0x0d, 0x08,
		0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x2d, 0xd9, 0x2b, 0x0b, 0x0d, 0x0a, 0x41,
		0x7a, 0x58, 0x68, 0x80, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0x16, 0x1a, 0x88,
		0x7f, 0xc8, 0xb2, 0xeb, 0xca, 0x27, 0xc3, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0xc7, 0x42, 0x03, 0x94,
		0x2f, 0x20, 0xbd, 0xee, 0x7f, 0xa4, 0xc9, 0x42, 0x83, 0x05, 0xe4, 0xf9, 0xd4, 0x9d, 0x33, 0xd9,
		0x47, 0xf1, 0x52, 0xa5, 0x5a, 0x38, 0xf0, 0xa5, 0x65, 0x67, 0x62, 0x84, 0xba, 0x68, 0xfb, 0x8e,
		0xbc, 0x91, 0x88, 0x76, 0xd7, 0x0f, 0x76, 0x39, 0xe8, 0x35, 0xd4, 0x2b, 0xac, 0xd0, 0x50, 0xaf,
		0x57, 0xdf, 0xa2, 0x5e, 0xbd, 0x38, 0x09, 0x19, 0xea, 0xd5, 0xa9, 0x57, 0xff, 0xe9, 0x89, 0x51,
		0xaf, 0x2e, 0x0d, 0xce, 0x64, 0xd3, 0x8b, 0x0c, 0xda, 0xae, 0xc0, 0xdb, 0x39, 0x88, 0x3b, 0x07,
		0x73, 0xa7, 0xa0, 0xae, 0x1b, 0x41, 0x53, 0xaf, 0x2e, 0x86, 0xbe, 0xd4, 0xab, 0x0b, 0x3c, 0x28,
		0x99, 0x74, 0x92, 0x99, 0xd4, 0xab, 0x53, 0xaf, 0x4e, 0x42, 0x5d, 0xec, 0x43, 0xbd, 0xfa, 0xd3,
		0x95, 0x70, 0x6a, 0x7d, 0xa6, 0xb9, 0x6d, 0x18, 0xd3, 0x34, 0x4d, 0x27, 0x45, 0xeb, 0x73, 0x7e,
		0x06, 0xc1, 0x26, 0xc1, 0x26, 0xc1, 0x26, 0xc1, 0x26, 0xc1, 0xa6, 0x9a, 0xbd, 0x52, 0x71, 0x5d,
		0x14, 0xb7, 0x4d, 0x9b, 0x19, 0x6d, 0x66, 0x90, 0x1e, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9,
		0x81, 0xf4, 0x94, 0x9f, 0xf4, 0xd0, 0x66, 0x86, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8,
		0x6d, 0xda, 0xcc, 0xc4, 0x3f, 0x5c, 0x8e, 0xeb, 0xca, 0xe7, 0x62, 0x52, 0x19, 0xba, 0xa6, 0x55,
		0x8f, 0x36, 0x33, 0x94, 0x2f, 0xe0, 0x56, 0xdc, 0xff, 0x48, 0x93, 0x36, 0xb3, 0x05, 0xe4, 0x79,
		0xdb, 0x66, 0xa6, 0xd1, 0xe3, 0x13, 0xf8, 0xd8, 0x65, 0x76, 0x3c, 0x78, 0x70, 0x36, 0xad, 0xc9,
		0x1b, 0xdd, 0x5a, 0x6e, 0x5a, 0x53, 0xd8, 0x89, 0xe5, 0xa3, 0x59, 0xb1, 0x74, 0x6d, 0x54, 0x3c,
		0x95, 0x9a, 0x86, 0x89, 0x6f, 0x04, 0x6b, 0xb8, 0xe6, 0xd7, 0x6c, 0xe5, 0x62, 0x59, 0xc3, 0x36,
		0x57, 0x00, 0x6b, 0xd8, 0x96, 0x7a, 0xeb, 0xac, 0x61, 0x5b, 0x5b, 0xe7, 0xcd, 0x1a, 0x36, 0x0f,
		0x81, 0x52, 0x0d, 0x30, 0x35, 0x81, 0x53, 0x1f, 0x40, 0xb5, 0x81, 0xd4, 0x19, 0xa0, 0x3a, 0x03,
		0x56, 0x27, 0x00, 0x5b, 0x8e, 0x14, 0x05, 0x6d, 0xed, 0xd2, 0xe0, 0xcc, 0xed, 0x7d, 0x91, 0x41,
		0xdb, 0x15, 0x78, 0x3b, 0x07, 0x71, 0xe7, 0x60, 0xee, 0x14, 0xd4, 0x75, 0xc0, 0x5d, 0x09, 0xe4,
		0xf3, 0x93, 0xa4, 0xad, 0x5d, 0x54, 0x24, 0x37, 0xf7, 0x1a, 0xc2, 0xb9, 0xb9, 0x1f, 0xdb, 0x16,
		0x37, 0xf7, 0x8e, 0x54, 0x8f, 0xb6, 0x76, 0x7f, 0x74, 0x90, 0x0b, 0x7c, 0xaf, 0x9f, 0x87, 0xfe,
		0x38, 0xd1, 0xe8, 0x9d, 0xfe, 0x38, 0x42, 0x75, 0x42, 0x75, 0x42, 0x75, 0x42, 0x75, 0x42, 0x75,
		0x4b, 0xf6, 0x4a, 0x7f, 0x5c, 0x21, 0x48, 0x0f, 0xfd, 0x71, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x1b,
		0xb7, 0x8d, 0xdb, 0xa6, 0x3f, 0x4e, 0xfc, 0x43, 0x96, 0x5d, 0x57, 0x3e, 0x19, 0x4e, 0x65, 0xe8,
		0x9a, 0x56, 0x3d, 0xfa, 0xe3, 0x50, 0xbe, 0x80, 0xf4, 0xba, 0xff, 0x91, 0x26, 0xfd, 0x71, 0x0b,
		0xc8, 0xf3, 0xb5, 0x75, 0x27, 0x6f, 0xa8, 0x58, 0xdf, 0x7d, 0x6c, 0x47, 0xa3, 0x13, 0x60, 0x2f,
		0xdb, 0x23, 0x6f, 0x8c, 0xbd, 0x6c, 0xab, 0x66, 0x6e, 0xd8, 0xcb, 0x56, 0xa0, 0x0c, 0x0d, 0x05,
		0xec, 0x14, 0xb0, 0xff, 0xf4, 0xc4, 0x28, 0x60, 0x97, 0x06, 0x67, 0xd2, 0xeb, 0x45, 0x06, 0x6d,
		0x57, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x0d, 0xa9, 0x29, 0x60, 0x17,
		0x43, 0x5f, 0x0a, 0xd8, 0x05, 0x1e, 0x94, 0xd4, 0x3a, 0xd9, 0x4d, 0x0a, 0xd8, 0x29, 0x60, 0x27,
		0xc3, 0x2e, 0xf6, 0xa1, 0x80, 0xfd, 0xe9, 0x4a, 0xc8, 0x5e, 0x36, 0x82, 0x4d, 0x82, 0x4d, 0x82,
		0x4d, 0x82, 0x4d, 0x82, 0x4d, 0x4a, 0xb0, 0x8b, 0xe4, 0xb6, 0xe9, 0x3b, 0xa3, 0xef, 0x0c, 0xd2,
		0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0x20, 0x3d, 0x90, 0x9e, 0xf2, 0x93, 0x1e, 0xfa, 0xce, 0x70,
		0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x4d, 0xdf, 0x99, 0xf8, 0x87, 0xcb, 0x71, 0x5d,
		0xf9, 0x5c, 0x4c, 0x2a, 0x43, 0xd7, 0xb4, 0xea, 0xd1, 0x77, 0x86, 0xf2, 0x05, 0xdc, 0x8a, 0xfb,
		0x1f, 0x69, 0xd2, 0x77, 0xb6, 0x80, 0x3c, 0xff, 0xfb, 0xce, 0xd6, 0x75, 0x41, 0x5b, 0xde, 0x76,
		0xc6, 0xa2, 0x36, 0x2d, 0x2b, 0x5c, 0xfb, 0x45, 0x6d, 0xd2, 0xeb, 0xb3, 0x7c, 0xb6, 0xb3, 0x75,
		0xde, 0xdc, 0x26, 0xdb, 0xbf, 0xa9, 0xd2, 0xb7, 0xa9, 0xb6, 0x99, 0x6d, 0x8b, 0xcd, 0x6c, 0x4f,
		0x90, 0xc4, 0x66, 0xb6, 0x22, 0x66, 0x22, 0xd9, 0xcc, 0x36, 0x25, 0xc0, 0xdc, 0x66, 0x26, 0x69,
		0x9a, 0x66, 0x98, 0x98, 0xdb, 0x2c, 0xbc, 0x6a, 0x77, 0xc2, 0xbe, 0xaf, 0x6a, 0xc6, 0x89, 0xe2,
		0xb6, 0xb6, 0x47, 0x7e, 0x83, 0x74, 0xfb, 0xaa, 0x62, 0x25, 0x8d, 0x46, 0x05, 0xcd, 0xa9, 0xce,
		0xc0, 0x80, 0x0d, 0x36, 0xde, 0x79, 0xec, 0x98, 0xb4, 0x1d, 0x94, 0x33, 0x47, 0xe5, 0xcc, 0x61,
		0x39, 0x71, 0x5c, 0xe5, 0x48, 0xfe, 0xa8, 0x5d, 0x95, 0x39, 0xa8, 0x6c, 0x51, 0xaa, 0x68, 0x29,
		0xe8, 0xfc, 0x1c, 0x93, 0x34, 0xc3, 0xe6, 0xd0, 0xdf, 0x86, 0x69, 0xbb, 0xa7, 0x3a, 0x4c, 0x67,
		0x56, 0x36, 0xc4, 0x02, 0x62, 0x01, 0xb1, 0x80, 0x58, 0x40, 0x2c, 0x20, 0x16, 0x10, 0x0b, 0x71,
		0x62, 0xc1, 0x15, 0xc9, 0x3c, 0x4a, 0xe4, 0xd1, 0x15, 0x89, 0xf4, 0x15, 0xa4, 0x17, 0x57, 0x22,
		0x82, 0xd7, 0x8c, 0x02, 0x97, 0x20, 0xcf, 0x3c, 0xb6, 0x95, 0x8a, 0xb9, 0xcd, 0xd2, 0x28, 0xec,
		0xf5, 0x5f, 0xca, 0x79, 0x4b, 0x06, 0x78, 0x2b, 0xdf, 0xae, 0x4c, 0x22, 0xc6, 0xa0, 0x15, 0xae,
		0x20, 0x5e, 0xbc, 0xc8, 0x8d, 0x2d, 0xec, 0x2b, 0x7e, 0xf0, 0x47, 0xf0, 0x7c, 0xe8, 0xcc, 0xc3,
		0xec, 0x7b, 0xc7, 0x74, 0xdf, 0xd6, 0xea, 0x5f, 0xaa, 0x67, 0x9f, 0x0f, 0x6b, 0x7b, 0xbb, 0xc7,
		0x27, 0xcf, 0x4b, 0x76, 0x55, 0x31, 0x78, 0x79, 0x65, 0xbe, 0xa8, 0x58, 0xf0, 0xed, 0x16, 0x32,
		0x68, 0x7f, 0x6f, 0xba, 0x8d, 0x34, 0xee, 0xa8, 0xd4, 0xea, 0xe4, 0x66, 0x53, 0x4b, 0x1a, 0xad,
		0x5e, 0xd3, 0x04, 0xd9, 0x55, 0xdc, 0x0d, 0x1a, 0xed, 0x24, 0x8b, 0xe2, 0xc4, 0xa4, 0xc1, 0x45,
		0x3b, 0x0d, 0x6a, 0xf5, 0x9b, 0x6a, 0x30, 0x42, 0xf3, 0xa0, 0xdb, 0x31, 0x8d, 0xf8, 0x22, 0x6e,
		0x7c, 0x1d, 0x79, 0x92, 0x5e, 0x3a, 0xf4, 0xd9, 0xc2, 0x3a, 0xa0, 0x18, 0xfc, 0x4c, 0xda, 0x53,
		0x73, 0xe2, 0x55, 0x28, 0x30, 0x4e, 0x17, 0x91, 0xcf, 0x94, 0x79, 0xad, 0xaa, 0x05, 0x30, 0x65,
		0xd1, 0x6f, 0x3d, 0xf5, 0x9a, 0x9d, 0x08, 0x33, 0x78, 0x9f, 0x98, 0x7b, 0x45, 0xa4, 0x56, 0xc6,
		0x39, 0x57, 0xb7, 0x6b, 0xbf, 0xf6, 0xf4, 0xdf, 0xa2, 0xa6, 0x56, 0xe2, 0xce, 0xcd, 0x76, 0xd8,
		0x8a, 0xce, 0x4d, 0xcb, 0x34, 0xf3, 0xd7, 0x69, 0x5b, 0x5f, 0x73, 0xb7, 0x3a, 0x57, 0x9a, 0x65,
		0xbb, 0x93, 0x29, 0x50, 0x12, 0x4b, 0xdb, 0x4a, 0xa6, 0x69, 0xe5, 0xd3, 0xb2, 0xd2, 0x4c, 0x44,
		0x2d, 0xed, 0xaa, 0x46, 0x36, 0x54, 0xd2, 0xaa, 0x7e, 0xc7, 0xed, 0x52, 0x05, 0x45, 0x53, 0xe3,
		0xeb, 0xe4, 0xcb, 0x2c, 0xa7, 0xa4, 0x15, 0xbc, 0xda, 0x72, 0x83, 0x6a, 0x4b, 0x3f, 0x53, 0x18,
		0x54, 0x5b, 0xfa, 0x1a, 0xce, 0x14, 0xb5, 0xda, 0xb2, 0x31, 0xb6, 0x79, 0xa5, 0x54, 0x8a, 0xca,
		0x42, 0x2b, 0xf5, 0x35, 0x42, 0x5c, 0xde, 0x17, 0x24, 0x7f, 0x15, 0x70, 0x79, 0xcf, 0xe5, 0xbd,
		0x0f, 0xc0, 0x9b, 0x0b, 0x62, 0x8d, 0x90, 0xb0, 0x38, 0xa6, 0x25, 0x95, 0x09, 0xbc, 0x9d, 0x83,
		0xb8, 0x73, 0x30, 0x77, 0x0a, 0xea, 0x3a, 0xe0, 0xae, 0x04, 0xf2, 0xf9, 0x49, 0xb2, 0x46, 0x48,
		0x54, 0x24, 0x93, 0x92, 0x34, 0x84, 0x33, 0x29, 0x69, 0x6c, 0x5b, 0x4c, 0x4a, 0x72, 0xa4, 0x7a,
		0xac, 0x11, 0xf2, 0x47, 0x07, 0x19, 0x98, 0xe4, 0xf5, 0xf3, 0xb0, 0x8f, 0x40, 0x34, 0x7a, 0x67,
		0x1f, 0x01, 0xa1, 0x3a, 0xa1, 0x3a, 0xa1, 0x3a, 0xa1, 0x3a, 0xa1, 0xba, 0x25, 0x7b, 0x65, 0x1f,
		0x41, 0x21, 0x48, 0x0f, 0xfb, 0x08, 0x70, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0xcd,
		0x3e, 0x02, 0xf1, 0x0f, 0x59, 0x76, 0x5d, 0xf9, 0x64, 0x38, 0x95, 0xa1, 0x6b, 0x5a, 0xf5, 0xd8,
		0x47, 0x80, 0xf2, 0x05, 0xa4, 0xd7, 0xfd, 0x8f, 0x34, 0xd9, 0x47, 0xb0, 0x80, 0x3c, 0xf7, 0xcd,
		0x83, 0x33, 0x7d, 0x60, 0x53, 0x13, 0xd2, 0x5f, 0xaa, 0x54, 0x0d, 0x07, 0x8e, 0x1b, 0x0d, 0xb7,
		0x0f, 0x86, 0x47, 0x30, 0x67, 0x5c, 0xfa, 0xd9, 0x28, 0xc4, 0x66, 0x8a, 0xdf, 0x9c, 0x17, 0x16,
		0xa9, 0x0e, 0xee, 0x53, 0x58, 0x8c, 0xa1, 0x5e, 0xbe, 0xbe, 0x45, 0xf9, 0x7a, 0x71, 0xf2, 0x33,
		0x94, 0xaf, 0x53, 0xbe, 0xfe, 0xd3, 0x13, 0xa3, 0x7c, 0x5d, 0x1a, 0x9c, 0x49, 0xae, 0x17, 0x19,
		0xb4, 0x5d, 0x81, 0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0xa0, 0xa6, 0x7c,
		0x5d, 0x0c, 0x7d, 0x29, 0x5f, 0x17, 0x78, 0x50, 0x12, 0xeb, 0xe4, 0x36, 0x29, 0x5f, 0xa7, 0x7c,
		0x9d, 0xfc, 0xba, 0xd8, 0x87, 0xf2, 0xf5, 0xa7, 0x2b, 0xe1, 0xd4, 0x8e, 0x4c, 0x73, 0xdb, 0x30,
		0xa6, 0x69, 0x9a, 0x4e, 0x6a, 0xd8, 0xe7, 0xfc, 0x0c, 0x82, 0x4d, 0x82, 0x4d, 0x82, 0x4d, 0x82,
		0x4d, 0x82, 0x4d, 0x35, 0x7b, 0xa5, 0x00, 0xbb, 0x28, 0x6e, 0x9b, 0xae, 0x33, 0xba, 0xce, 0x20,
		0x3d, 0x90, 0x1e, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x29, 0x3f, 0xe9, 0xa1, 0xeb, 0x0c,
		0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0x74, 0x9d, 0x89, 0x7f, 0xb8, 0x1c, 0xd7,
		0x95, 0xcf, 0xc5, 0xa4, 0x32, 0x74, 0x4d, 0xab, 0x1e, 0x5d, 0x67, 0x28, 0x5f, 0xc0, 0xad, 0xb8,
		0xff, 0x91, 0x26, 0x5d, 0x67, 0x0b, 0xc8, 0xf3, 0xbe, 0xeb, 0x4c, 0xa3, 0xd7, 0x27, 0xf0, 0xb8,
		0xe9, 0x4c, 0x70, 0x39, 0xb5, 0xbc, 0xc5, 0xb0, 0xe0, 0xbd, 0x88, 0x36, 0x57, 0xd2, 0x7d, 0xef,
		0x8f, 0x58, 0x59, 0x61, 0x96, 0xbf, 0xff, 0x26, 0xbb, 0xa1, 0x2d, 0x4c, 0x4d, 0xc3, 0xc4, 0x37,
		0x82, 0x15, 0x5e, 0xf3, 0x2b, 0xba, 0x72, 0xb1, 0xec, 0x6c, 0x9b, 0x2b, 0x80, 0x9d, 0x6d, 0x4b,
		0xbd, 0x75, 0x76, 0xb6, 0xad, 0xad, 0x2f, 0x67, 0x67, 0x9b, 0x87, 0x40, 0xa9, 0x06, 0x98, 0x9a,
		0xc0, 0xa9, 0x0f, 0xa0, 0xda, 0x40, 0xea, 0x0c, 0x50, 0x9d, 0x01, 0xab, 0x13, 0x80, 0x2d, 0x47,
		0x02, 0x83, 0xa6, 0x77, 0x69, 0x70, 0xe6, 0x6e, 0xbf, 0xc8, 0xa0, 0xed, 0x0a, 0xbc, 0x9d, 0x83,
		0xb8, 0x73, 0x30, 0x77, 0x0a, 0xea, 0x3a, 0xe0, 0xae, 0x04, 0xf2, 0xf9, 0x49, 0xd2, 0xf4, 0x2e,
		0x2a, 0x92, 0x7b, 0x7d, 0x0d, 0xe1, 0xdc, 0xeb, 0x8f, 0x6d, 0x8b, 0x7b, 0x7d, 0x47, 0xaa, 0x47,
		0xd3, 0xbb, 0x3f, 0x3a, 0xc8, 0xf5, 0xbe, 0xd7, 0xcf, 0x43, 0xf7, 0x9c, 0x68, 0xf4, 0x4e, 0xf7,
		0x1c, 0xa1, 0x3a, 0xa1, 0x3a, 0xa1, 0x3a, 0xa1, 0x3a, 0xa1, 0xba, 0x25, 0x7b, 0xa5, 0x7b, 0xae,
		0x10, 0xa4, 0x87, 0xee, 0x39, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xd3, 0x3d,
		0x27, 0xfe, 0x21, 0xcb, 0xae, 0x2b, 0x9f, 0x0c, 0xa7, 0x32, 0x74, 0x4d, 0xab, 0x1e, 0xdd, 0x73,
		0x28, 0x5f, 0x40, 0x7a, 0xdd, 0xff, 0x48, 0x93, 0xee, 0xb9, 0x05, 0xe4, 0xf9, 0xde, 0xc9, 0x93,
		0x37, 0x56, 0xac, 0xfd, 0xf2, 0xb6, 0xa3, 0xd1, 0x41, 0xb0, 0xc4, 0xed, 0x91, 0x17, 0xc7, 0x12,
		0xb7, 0x55, 0x13, 0x39, 0x2c, 0x71, 0x2b, 0x50, 0xc2, 0x86, 0x7a, 0x76, 0xea, 0xd9, 0x7f, 0x7a,
		0x62, 0xd4, 0xb3, 0x4b, 0x83, 0x33, 0xd9, 0xf6, 0x22, 0x83, 0xb6, 0x2b, 0xf0, 0x76, 0x0e, 0xe2,
		0xce, 0xc1, 0xdc, 0x29, 0xa8, 0xeb, 0x46, 0xd8, 0xd4, 0xb3, 0x8b, 0xa1, 0x2f, 0xf5, 0xec, 0x02,
		0x0f, 0x4a, 0xa6, 0x9d, 0x64, 0x27, 0xf5, 0xec, 0xd4, 0xb3, 0x93, 0x70, 0x17, 0xfb, 0x50, 0xcf,
		0xfe, 0x74, 0x25, 0x64, 0x89, 0x1b, 0xc1, 0x26, 0xc1, 0x26, 0xc1, 0x26, 0xc1, 0x26, 0xc1, 0x26,
		0x15, 0xd9, 0x45, 0x72, 0xdb, 0xb4, 0xa1, 0xd1, 0x86, 0x06, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0x20,
		0x3d, 0x90, 0x1e, 0x48, 0x4f, 0xf9, 0x49, 0x0f, 0x6d, 0x68, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x1b,
		0xb7, 0x8d, 0xdb, 0xa6, 0x0d, 0x4d, 0xfc, 0xc3, 0xe5, 0xb8, 0xae, 0x7c, 0x2e, 0x26, 0x95, 0xa1,
		0x6b, 0x5a, 0xf5, 0x68, 0x43, 0x43, 0xf9, 0x02, 0x6e, 0xc5, 0xfd, 0x8f, 0x34, 0x69, 0x43, 0x5b,
		0x40, 0x5e, 0x71, 0xda, 0xd0, 0xd6, 0x7c, 0x9b, 0x5b, 0xde, 0x85, 0xc6, 0x56, 0x37, 0x2d, 0xa3,
		0x64, 0xab, 0x9b, 0xd2, 0x92, 0xad, 0x02, 0x98, 0x5d, 0x61, 0xd6, 0xbc, 0x3d, 0xf3, 0xd8, 0xb0,
		0x2a, 0xe6, 0x36, 0x4b, 0xa3, 0xb0, 0xd7, 0x7f, 0x53, 0xe7, 0x2d, 0x99, 0xac, 0x40, 0xe5, 0xdb,
		0x95, 0x49, 0xc4, 0x62, 0x61, 0x85, 0x25, 0x6a, 0x2f, 0x5e, 0xe4, 0x96, 0x19, 0xf6, 0xad, 0x21,
		0xf8, 0x23, 0x78, 0x3e, 0xcc, 0x40, 0x85, 0xd9, 0xf7, 0x8e, 0xe9, 0xbe, 0xad, 0xd5, 0xbf, 0x6c,
		0x9f, 0x1d, 0xec, 0xbe, 0xdb, 0x3f, 0xd8, 0x7f, 0x7f, 0xf6, 0xf9, 0xb0, 0xb6, 0xb7, 0x7b, 0x7c,
		0xf2, 0xbc, 0x64, 0x4b, 0xd7, 0x06, 0x2f, 0xb1, 0xcc, 0x2b, 0xd7, 0x96, 0x7c, 0xcb, 0x85, 0xec,
		0x0e, 0x7f, 0x6f, 0xba, 0x8d, 0x34, 0xee, 0xa8, 0x90, 0xda, 0xdc, 0x8c, 0x6a, 0x49, 0xa3, 0xd5,
		0x6b, 0x9a, 0x20, 0xbb, 0x8a, 0xbb, 0x41, 0xa3, 0x9d, 0x64, 0x51, 0x9c, 0x98, 0x34, 0xb8, 0x68,
		0xa7, 0x41, 0xad, 0x7e, 0xb3, 0x1d, 0x8c, 0x20, 0x3f, 0x18, 0x61, 0x7e, 0xd0, 0xed, 0x98, 0x46,
		0x7c, 0x11, 0x37, 0xbe, 0x8e, 0xdc, 0x4e, 0x2f, 0x1d, 0x3a, 0x7e, 0x61, 0x9d, 0x50, 0xcc, 0xf0,
		0x4f, 0xda, 0x57, 0x73, 0xe2, 0x95, 0x28, 0x50, 0x6a, 0x17, 0xe9, 0xfc, 0x29, 0x73, 0xb3, 0xa5,
		0x0d, 0xd0, 0x6e, 0xd1, 0x6f, 0x3d, 0xf5, 0x9a, 0xbd, 0x08, 0x87, 0x03, 0x3e, 0x86, 0x01, 0x02,
		0xe0, 0xe0, 0x11, 0xd1, 0xb7, 0x6b, 0xce, 0xf6, 0xcc, 0xc1, 0xa2, 0xe2, 0x56, 0x06, 0x6f, 0x75,
		0xfc, 0x36, 0x6d, 0xab, 0x6d, 0xee, 0x6d, 0xa7, 0xa4, 0x58, 0x36, 0x3b, 0x99, 0x41, 0x2c, 0x62,
		0xa5, 0x0b, 0x92, 0x25, 0x0a, 0xf2, 0xa5, 0x08, 0xd2, 0x84, 0x44, 0xad, 0xb4, 0x40, 0x8d, 0x73,
		0xa8, 0x94, 0x0a, 0xf8, 0x1d, 0xd6, 0x4b, 0x0d, 0x3a, 0x91, 0xde, 0x94, 0xac, 0xb3, 0x21, 0x99,
		0x15, 0xf2, 0x3e, 0x00, 0x9b, 0xcb, 0x6c, 0x06, 0x2b, 0xe4, 0x7d, 0x8d, 0x60, 0x8a, 0xba, 0x42,
		0xbe, 0x6b, 0x92, 0x66, 0xd8, 0x1c, 0xb6, 0xba, 0x84, 0x69, 0xbb, 0xa7, 0x3a, 0x7d, 0x6f, 0x56,
		0xb6, 0xf4, 0x20, 0x2d, 0xc5, 0x9e, 0x1e, 0x8d, 0x5e, 0x9e, 0x53, 0x9d, 0xd1, 0x85, 0x1b, 0xac,
		0xe2, 0xf7, 0xd8, 0x11, 0xb9, 0x48, 0x01, 0x06, 0x8c, 0x2e, 0x64, 0x74, 0xe1, 0x53, 0x4e, 0x4c,
		0xad, 0x68, 0xd7, 0x41, 0x8f, 0x8d, 0x52, 0x6f, 0x0d, 0x45, 0x14, 0x23, 0xe3, 0x5b, 0xa3, 0x22,
		0x8a, 0x71, 0xf1, 0x84, 0xf8, 0xc8, 0x6c, 0xa7, 0x49, 0xd4, 0x71, 0x99, 0x84, 0xe4, 0x3c, 0x6c,
		0x81, 0xca, 0x08, 0x81, 0x64, 0xd9, 0x64, 0x91, 0x8c, 0x7c, 0x96, 0x62, 0x4a, 0x1a, 0xb9, 0x0a,
		0x72, 0x15, 0xe4, 0x2a, 0xc8, 0x55, 0xf8, 0x9f, 0xab, 0x10, 0x4e, 0xe2, 0xce, 0x98, 0xa5, 0xca,
		0xbe, 0x0a, 0xf5, 0xf5, 0x00, 0xc4, 0xd8, 0xc4, 0xd8, 0xc4, 0xd8, 0x65, 0x8a, 0xb1, 0x59, 0x0f,
		0x20, 0x0d, 0xce, 0x4c, 0x41, 0x28, 0x32, 0x68, 0xbb, 0x02, 0x6f, 0xe7, 0x20, 0xee, 0x1c, 0xcc,
		0x9d, 0x82, 0xba, 0x0e, 0xb8, 0x2b, 0x81, 0x7c, 0x7e, 0x92, 0xac, 0x07, 0x10, 0x15, 0xc9, 0x04,
		0x04, 0x0d, 0xe1, 0x4c, 0x40, 0x18, 0xdb, 0x16, 0x13, 0x10, 0x1c, 0xa9, 0x1e, 0xeb, 0x01, 0xfc,
		0xd1, 0x41, 0x06, 0x21, 0x78, 0xfd, 0x3c, 0xcc, 0x19, 0x16, 0x8d, 0xde, 0x99, 0x33, 0x4c, 0xa8,
		0x4e, 0xa8, 0x4e, 0xa8, 0x4e, 0xa8, 0x4e, 0xa8, 0x6e, 0xc9, 0x5e, 0x99, 0x33, 0x5c, 0x08, 0xd2,
		0xc3, 0x9c, 0x61, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0x33, 0x67, 0x58, 0xfc,
		0x43, 0x96, 0x5d, 0x57, 0x3e, 0x19, 0x4e, 0x65, 0xe8, 0x9a, 0x56, 0x3d, 0xe6, 0x0c, 0xa3, 0x7c,
		0x01, 0xe9, 0x75, 0xff, 0x23, 0x4d, 0xe6, 0x0c, 0x2f, 0x20, 0xcf, 0xa7, 0xee, 0x9c, 0xc9, 0x3e,
		0x8a, 0x97, 0x2a, 0xd5, 0xc2, 0x81, 0x2f, 0x2d, 0x3b, 0x13, 0x93, 0x4d, 0x45, 0xdb, 0x77, 0xe4,
		0x8d, 0xe4, 0x87, 0x68, 0x73, 0x55, 0xa4, 0xda, 0x50, 0xaf, 0x30, 0xd9, 0x5a, 0xbd, 0x5e, 0x7d,
		0x8b, 0x7a, 0xf5, 0xe2, 0x24, 0x64, 0xa8, 0x57, 0xa7, 0x5e, 0xfd, 0xa7, 0x27, 0x46, 0xbd, 0xba,
		0x34, 0x38, 0x93, 0x4d, 0x2f, 0x32, 0x68, 0xbb, 0x02, 0x6f, 0xe7, 0x20, 0xee, 0x1c, 0xcc, 0x9d,
		0x82, 0xba, 0x6e, 0x04, 0x4d, 0xbd, 0xba, 0x18, 0xfa, 0x52, 0xaf, 0x2e, 0xf0, 0xa0, 0x64, 0xd2,
		0x49, 0x66, 0x52, 0xaf, 0x4e, 0xbd, 0x3a, 0x09, 0x75, 0xb1, 0x0f, 0xf5, 0xea, 0x4f, 0x57, 0xc2,
		0xa9, 0xad, 0x56, 0xe6, 0xb6, 0x61, 0x4c, 0xd3, 0x34, 0x9d, 0x14, 0xad, 0xcf, 0xf9, 0x19, 0x04,
		0x9b, 0x04, 0x9b, 0x04, 0x9b, 0x04, 0x9b, 0x04, 0x9b, 0x6a, 0xf6, 0x4a, 0xc5, 0x75, 0x51, 0xdc,
		0x36, 0x6d, 0x66, 0xb4, 0x99, 0x41, 0x7a, 0x20, 0x3d, 0x90, 0x1e, 0x48, 0x0f, 0xa4, 0x07, 0xd2,
		0x53, 0x7e, 0xd2, 0x43, 0x9b, 0x19, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0x69,
		0x33, 0x13, 0xff, 0x70, 0x39, 0xae, 0x2b, 0x9f, 0x8b, 0x49, 0x65, 0xe8, 0x9a, 0x56, 0x3d, 0xda,
		0xcc, 0x50, 0xbe, 0x80, 0x5b, 0x71, 0xff, 0x23, 0x4d, 0xda, 0xcc, 0x16, 0x90, 0xe7, 0x6d, 0x9b,
		0x99, 0x46, 0x8f, 0x4f, 0xe0, 0x63, 0x97, 0xd9, 0xf1, 0xe0, 0xc1, 0xd9, 0xb4, 0x26, 0x6f, 0x74,
		0x6b, 0xb9, 0x69, 0x4d, 0x61, 0x27, 0x96, 0x8f, 0x66, 0xc5, 0xd2, 0xb5, 0x51, 0xf1, 0x54, 0x6a,
		0x1a, 0x26, 0xbe, 0x11, 0xac, 0xe1, 0x9a, 0x5f, 0xb3, 0x95, 0x8b, 0x65, 0x0d, 0xdb, 0x5c, 0x01,
		0xac, 0x61, 0x5b, 0xea, 0xad, 0xb3, 0x86, 0x6d, 0x6d, 0x9d, 0x37, 0x6b, 0xd8, 0x3c, 0x04, 0x4a,
		0x35, 0xc0, 0xd4, 0x04, 0x4e, 0x7d, 0x00, 0xd5, 0x06, 0x52, 0x67, 0x80, 0xea, 0x0c, 0x58, 0x9d,
		0x00, 0x6c, 0x39, 0x52, 0x14, 0xb4, 0xb5, 0x4b, 0x83, 0x33, 0xb7, 0xf7, 0x45, 0x06, 0x6d, 0x57,
		0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x01, 0x77, 0x25, 0x90, 0xcf, 0x4f,
		0x92, 0xb6, 0x76, 0x51, 0x91, 0xdc, 0xdc, 0x6b, 0x08, 0xe7, 0xe6, 0x7e, 0x6c, 0x5b, 0xdc, 0xdc,
		0x3b, 0x52, 0x3d, 0xda, 0xda, 0xfd, 0xd1, 0x41, 0x2e, 0xf0, 0xbd, 0x7e, 0x1e, 0xfa, 0xe3, 0x44,
		0xa3, 0x77, 0xfa, 0xe3, 0x08, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x2d, 0xd9,
		0x2b, 0xfd, 0x71, 0x85, 0x20, 0x3d, 0xf4, 0xc7, 0xe1, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36,
		0x6e, 0x9b, 0xfe, 0x38, 0xf1, 0x0f, 0x59, 0x76, 0x5d, 0xf9, 0x64, 0x38, 0x95, 0xa1, 0x6b, 0x5a,
		0xf5, 0xe8, 0x8f, 0x43, 0xf9, 0x02, 0xd2, 0xeb, 0xfe, 0x47, 0x9a, 0xf4, 0xc7, 0x2d, 0x20, 0xcf,
		0xd7, 0xd6, 0x9d, 0xbc, 0xa1, 0x62, 0x7d, 0xf7, 0xb1, 0x1d, 0x8d, 0x4e, 0x80, 0xbd, 0x6c, 0x8f,
		0xbc, 0x31, 0xf6, 0xb2, 0xad, 0x9a, 0xb9, 0x61, 0x2f, 0x5b, 0x81, 0x32, 0x34, 0x14, 0xb0, 0x53,
		0xc0, 0xfe, 0xd3, 0x13, 0xa3, 0x80, 0x5d, 0x1a, 0x9c, 0x49, 0xaf, 0x17, 0x19, 0xb4, 0x5d, 0x81,
		0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0xa4, 0xa6, 0x80, 0x5d, 0x0c, 0x7d,
		0x29, 0x60, 0x17, 0x78, 0x50, 0x52, 0xeb, 0x64, 0x37, 0x29, 0x60, 0xa7, 0x80, 0x9d, 0x0c, 0xbb,
		0xd8, 0x87, 0x02, 0xf6, 0xa7, 0x2b, 0x21, 0x7b, 0xd9, 0x08, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09,
		0x36, 0x09, 0x36, 0x29, 0xc1, 0x2e, 0x92, 0xdb, 0xa6, 0xef, 0x8c, 0xbe, 0x33, 0x48, 0x0f, 0xa4,
		0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0xca, 0x4f, 0x7a, 0xe8, 0x3b, 0xc3, 0x6d, 0xe3,
		0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x7d, 0x67, 0xe2, 0x1f, 0x2e, 0xc7, 0x75, 0xe5, 0x73,
		0x31, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0xdf, 0x19, 0xca, 0x17, 0x70, 0x2b, 0xee, 0x7f, 0xa4,
		0x49, 0xdf, 0xd9, 0x02, 0xf2, 0xfc, 0xef, 0x3b, 0x5b, 0xd7, 0x05, 0x6d, 0x79, 0xdb, 0x19, 0x8b,
		0xda, 0xb4, 0xac, 0x70, 0xed, 0x17, 0xb5, 0x49, 0xaf, 0xcf, 0xf2, 0xd9, 0xce, 0xd6, 0x79, 0x73,
		0x9b, 0x6c, 0xff, 0xa6, 0x4a, 0xdf, 0xa6, 0xda, 0x66, 0xb6, 0x2d, 0x36, 0xb3, 0x3d, 0x41, 0x12,
		0x9b, 0xd9, 0x8a, 0x98, 0x89, 0x64, 0x33, 0xdb, 0x34, 0x2c, 0x9a, 0xa4, 0x19, 0x36, 0x87, 0x05,
		0x25, 0x61, 0xda, 0xee, 0xa9, 0xf6, 0xb8, 0xcf, 0xca, 0x96, 0x6e, 0x57, 0x55, 0xac, 0x9c, 0xd1,
		0xa8, 0x98, 0x39, 0xd5, 0x19, 0x10, 0xb0, 0xc1, 0x86, 0x3b, 0x8f, 0x1d, 0x91, 0xb6, 0x43, 0x72,
		0xe6, 0x98, 0x9c, 0x39, 0x28, 0x27, 0x8e, 0xaa, 0x1c, 0xc9, 0x1e, 0xb5, 0xab, 0x31, 0x07, 0x95,
		0x2c, 0x4a, 0x15, 0x2c, 0x64, 0x2e, 0xd6, 0x37, 0x73, 0x21, 0x9d, 0x19, 0xf4, 0x22, 0x53, 0x21,
		0x98, 0xfd, 0x13, 0xc8, 0x4d, 0x3c, 0xf3, 0xd8, 0x56, 0x2a, 0xe6, 0x36, 0x4b, 0xa3, 0xb0, 0xd7,
		0x7f, 0x29, 0xe7, 0x2d, 0x19, 0xe0, 0xad, 0x7c, 0xbb, 0x32, 0x89, 0x18, 0x83, 0x56, 0xc8, 0x0c,
		0xbc, 0x78, 0x91, 0x1b, 0x5b, 0xd8, 0x57, 0xfc, 0xe0, 0x8f, 0xe0, 0xf9, 0xd0, 0x99, 0x87, 0xd9,
		0xf7, 0x8e, 0xe9, 0xbe, 0xad, 0xd5, 0xbf, 0x6c, 0x9f, 0x7d, 0x3e, 0xac, 0xed, 0xed, 0x1e, 0x9f,
		0x3c, 0x2f, 0x59, 0x06, 0x61, 0xf0, 0xf2, 0xca, 0x9c, 0x3f, 0x58, 0xf0, 0xed, 0x16, 0x72, 0x16,
		0xdd, 0x7b, 0xd3, 0x6d, 0xa4, 0x71, 0x47, 0xe5, 0x0a, 0x2d, 0x37, 0x9b, 0x5a, 0xd2, 0x68, 0xf5,
		0x9a, 0x26, 0xc8, 0xae, 0xe2, 0x6e, 0xd0, 0x68, 0x27, 0x59, 0x14, 0x27, 0x26, 0x0d, 0x2e, 0xda,
		0x69, 0x50, 0xab, 0xdf, 0x6c, 0x07, 0x23, 0x34, 0x0f, 0xba, 0x1d, 0xd3, 0x88, 0x2f, 0xe2, 0xc6,
		0xd7, 0x91, 0x27, 0xe9, 0xa5, 0x43, 0x9f, 0x2d, 0xac, 0x03, 0x8a, 0xc1, 0xcf, 0xa4, 0x3d, 0x35,
		0x27, 0x5e, 0x85, 0x02, 0xe3, 0x74, 0x11, 0xf9, 0x4c, 0x99, 0xd7, 0xaa, 0x5a, 0x00, 0x53, 0x16,
		0xfd, 0xd6, 0x53, 0xaf, 0xd9, 0x89, 0x30, 0x83, 0xf7, 0x89, 0xb9, 0x57, 0x44, 0xae, 0xb0, 0x9c,
		0x73, 0x75, 0xbb, 0xf6, 0x6b, 0x4f, 0xff, 0x2d, 0x6a, 0x6a, 0xa5, 0xb5, 0x75, 0xd3, 0x49, 0x42,
		0x73, 0xd3, 0xb1, 0xaf, 0xa5, 0xb9, 0x33, 0x9d, 0x90, 0x61, 0xd9, 0xc6, 0x64, 0xee, 0x08, 0xc5,
		0x52, 0xb4, 0x92, 0x29, 0x59, 0xf9, 0x14, 0xac, 0x34, 0xeb, 0x50, 0x4b, 0xb1, 0xaa, 0x11, 0x0b,
		0x95, 0x14, 0xaa, 0xdf, 0x31, 0xba, 0xd4, 0x9d, 0xde, 0xd4, 0x04, 0x19, 0xf9, 0x4a, 0x87, 0x29,
		0x69, 0x05, 0x2f, 0x78, 0xd8, 0xa0, 0xe0, 0xc1, 0xcf, 0x74, 0x05, 0x05, 0x0f, 0xbe, 0x86, 0x2e,
		0x45, 0x2d, 0x78, 0x68, 0x8c, 0x6d, 0x5e, 0x29, 0x6d, 0xa2, 0xb2, 0x53, 0x42, 0x7d, 0x92, 0x3f,
		0x17, 0xf5, 0x05, 0xc9, 0x55, 0x05, 0x5c, 0xd4, 0x73, 0x51, 0xef, 0x03, 0xf0, 0xe6, 0x82, 0x98,
		0xe4, 0x2f, 0x2c, 0x8e, 0x81, 0x05, 0x65, 0x02, 0x6f, 0xe7, 0x20, 0xee, 0x1c, 0xcc, 0x9d, 0x82,
		0xba, 0x0e, 0xb8, 0x2b, 0x81, 0x7c, 0x7e, 0x92, 0x4c, 0xf2, 0x17, 0x15, 0xc9, 0xb0, 0x02, 0x0d,
		0xe1, 0x0c, 0x2b, 0x18, 0xdb, 0x16, 0xc3, 0x0a, 0x1c, 0xa9, 0x1e, 0x93, 0xfc, 0xfd, 0xd1, 0x41,
		0x66, 0x16, 0x78, 0xfd, 0x3c, 0x8c, 0x04, 0x16, 0x8d, 0xde, 0x19, 0x09, 0x4c, 0xa8, 0x4e, 0xa8,
		0x4e, 0xa8, 0x4e, 0xa8, 0x4e, 0xa8, 0x6e, 0xc9, 0x5e, 0x19, 0x09, 0x5c, 0x08, 0xd2, 0xc3, 0x48,
		0x60, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0x33, 0x12, 0x58, 0xfc, 0x43, 0x96,
		0x5d, 0x57, 0x3e, 0x19, 0x4e, 0x65, 0xe8, 0x9a, 0x56, 0x3d, 0x46, 0x02, 0xa3, 0x7c, 0x01, 0xe9,
		0x75, 0xff, 0x23, 0x4d, 0x46, 0x02, 0x2f, 0x20, 0xcf, 0x71, 0xa3, 0xe0, 0x5d, 0xf7, 0xd7, 0xd4,
		0x68, 0xd2, 0x97, 0x2a, 0xb5, 0xc2, 0x81, 0xcb, 0x56, 0xc2, 0x83, 0xad, 0x2f, 0x9d, 0x64, 0xff,
		0xa6, 0x93, 0x4c, 0x8e, 0x27, 0x3d, 0x1b, 0xc5, 0xd3, 0x45, 0xed, 0x0d, 0x16, 0x1d, 0xcf, 0x12,
		0xa9, 0x4e, 0xe4, 0x53, 0x18, 0x44, 0xad, 0x5e, 0xab, 0xbe, 0x45, 0xad, 0x7a, 0x71, 0x92, 0x31,
		0xd4, 0xaa, 0x53, 0xab, 0xfe, 0xd3, 0x13, 0xa3, 0x56, 0x5d, 0x1a, 0x9c, 0xc9, 0xa4, 0x17, 0x19,
		0xb4, 0x5d, 0x81, 0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0x7a, 0xa6, 0x56,
		0x5d, 0x0c, 0x7d, 0xa9, 0x55, 0x17, 0x78, 0x50, 0xb2, 0xe8, 0x24, 0x32, 0xa9, 0x55, 0xa7, 0x56,
		0x9d, 0x64, 0xba, 0xd8, 0x87, 0x5a, 0xf5, 0xa7, 0x2b, 0xe1, 0xd4, 0x4e, 0x2a, 0x73, 0xdb, 0x30,
		0xa6, 0x69, 0x9a, 0x4e, 0x0a, 0xd6, 0xe7, 0xfc, 0x0c, 0x82, 0x4d, 0x82, 0x4d, 0x82, 0x4d, 0x82,
		0x4d, 0x82, 0x4d, 0x35, 0x7b, 0xa5, 0xda, 0xba, 0x28, 0x6e, 0x9b, 0x16, 0x33, 0x5a, 0xcc, 0x20,
		0x3d, 0x90, 0x1e, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x29, 0x3f, 0xe9, 0xa1, 0xc5, 0x0c,
		0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb4, 0x98, 0x89, 0x7f, 0xb8, 0x1c, 0xd7,
		0x95, 0xcf, 0xc5, 0xa4, 0x32, 0x74, 0x4d, 0xab, 0x1e, 0x2d, 0x66, 0x28, 0x5f, 0xc0, 0xad, 0xb8,
		0xff, 0x91, 0x26, 0x2d, 0x66, 0x0b, 0xc8, 0xf3, 0xb4, 0xc5, 0x4c, 0xa3, 0xc3, 0x27, 0xf0, 0xaf,
		0xc3, 0x4c, 0x70, 0xc5, 0xb4, 0xbc, 0x79, 0xb0, 0xa6, 0xbd, 0x38, 0x06, 0x56, 0xc6, 0x5d, 0xed,
		0x73, 0x4d, 0xaa, 0x30, 0xfb, 0xda, 0x7f, 0x93, 0x5d, 0xb4, 0x16, 0xa6, 0xa6, 0x61, 0xe2, 0x1b,
		0xc1, 0xda, 0xad, 0xf9, 0xb5, 0x5a, 0xb9, 0x58, 0x56, 0xaf, 0xcd, 0x15, 0xc0, 0xea, 0xb5, 0xa5,
		0xde, 0x3a, 0xab, 0xd7, 0xd6, 0xd6, 0x71, 0xb3, 0x7a, 0xcd, 0x43, 0xa0, 0x54, 0x03, 0x4c, 0x4d,
		0xe0, 0xd4, 0x07, 0x50, 0x6d, 0x20, 0x75, 0x06, 0xa8, 0xce, 0x80, 0xd5, 0x09, 0xc0, 0x96, 0x23,
		0x35, 0x41, 0x3b, 0xbb, 0x34, 0x38, 0x73, 0x6b, 0x5f, 0x64, 0xd0, 0x76, 0x05, 0xde, 0xce, 0x41,
		0xdc, 0x39, 0x98, 0x3b, 0x05, 0x75, 0x1d, 0x70, 0x57, 0x02, 0xf9, 0xfc, 0x24, 0x69, 0x67, 0x17,
		0x15, 0xc9, 0x8d, 0xbd, 0x86, 0x70, 0x6e, 0xec, 0xc7, 0xb6, 0xc5, 0x8d, 0xbd, 0x23, 0xd5, 0xa3,
		0x9d, 0xdd, 0x1f, 0x1d, 0xe4, 0xe2, 0xde, 0xeb, 0xe7, 0xa1, 0x2f, 0x4e, 0x34, 0x7a, 0xa7, 0x2f,
		0x8e, 0x50, 0x9d, 0x50, 0x9d, 0x50, 0x9d, 0x50, 0x9d, 0x50, 0xdd, 0x92, 0xbd, 0xd2, 0x17, 0x57,
		0x08, 0xd2, 0x43, 0x5f, 0x1c, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0xe9, 0x8b,
		0x13, 0xff, 0x90, 0x65, 0xd7, 0x95, 0x4f, 0x86, 0x53, 0x19, 0xba, 0xa6, 0x55, 0x8f, 0xbe, 0x38,
		0x94, 0x2f, 0x20, 0xbd, 0xee, 0x7f, 0xa4, 0x49, 0x5f, 0xdc, 0x02, 0xf2, 0xfc, 0x6c, 0xdb, 0xc9,
		0xdb, 0x29, 0xd6, 0x75, 0x07, 0xdb, 0xd1, 0xe8, 0xf9, 0xd9, 0xc5, 0xf6, 0xc8, 0xfb, 0x62, 0x17,
		0xdb, 0xaa, 0x59, 0x1b, 0x76, 0xb1, 0x15, 0x28, 0x3b, 0x43, 0xf1, 0x3a, 0xc5, 0xeb, 0x3f, 0x3d,
		0x31, 0x8a, 0xd7, 0xa5, 0xc1, 0x99, 0xd4, 0x7a, 0x91, 0x41, 0xdb, 0x15, 0x78, 0x3b, 0x07, 0x71,
		0xe7, 0x60, 0xee, 0x14, 0xd4, 0x75, 0xc3, 0x69, 0x8a, 0xd7, 0xc5, 0xd0, 0x97, 0xe2, 0x75, 0x81,
		0x07, 0x25, 0xad, 0x4e, 0x66, 0x93, 0xe2, 0x75, 0x8a, 0xd7, 0xc9, 0xae, 0x8b, 0x7d, 0x28, 0x5e,
		0x7f, 0xba, 0x12, 0xb2, 0x8b, 0x8d, 0x60, 0x93, 0x60, 0x93, 0x60, 0x93, 0x60, 0x93, 0x60, 0x93,
		0xf2, 0xeb, 0x22, 0xb9, 0x6d, 0x7a, 0xce, 0xe8, 0x39, 0x83, 0xf4, 0x40, 0x7a, 0x20, 0x3d, 0x90,
		0x1e, 0x48, 0x0f, 0xa4, 0xa7, 0xfc, 0xa4, 0x87, 0x9e, 0x33, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x8d,
		0xdb, 0xc6, 0x6d, 0xd3, 0x73, 0x26, 0xfe, 0xe1, 0x72, 0x5c, 0x57, 0x3e, 0x17, 0x93, 0xca, 0xd0,
		0x35, 0xad, 0x7a, 0xf4, 0x9c, 0xa1, 0x7c, 0x01, 0xb7, 0xe2, 0xfe, 0x47, 0x9a, 0xf4, 0x9c, 0x2d,
		0x20, 0xcf, 0xf7, 0x9e, 0xb3, 0xf5, 0x5c, 0xca, 0x96, 0xb7, 0x9c, 0xb1, 0x9c, 0x4d, 0xcb, 0x02,
		0xd7, 0x7c, 0x39, 0x9b, 0xf4, 0xd2, 0x2c, 0x7f, 0x6d, 0xac, 0x30, 0xdb, 0xda, 0x9e, 0x79, 0x6c,
		0x45, 0x15, 0x73, 0x9b, 0xa5, 0x51, 0xd8, 0xeb, 0xbf, 0xa0, 0xf3, 0x96, 0x4c, 0xbc, 0x5f, 0xf9,
		0x76, 0x65, 0x12, 0xb1, 0x28, 0x57, 0x61, 0x17, 0xda, 0x8b, 0x17, 0xb9, 0x19, 0x86, 0x7d, 0x23,
		0x08, 0xfe, 0x08, 0x9e, 0x0f, 0x73, 0x4b, 0x61, 0xf6, 0xbd, 0x63, 0xba, 0x6f, 0x0f, 0xb6, 0xbe,
		0xd4, 0x0f, 0xcf, 0xf6, 0xbf, 0xd4, 0x0f, 0x9f, 0x97, 0x6c, 0x63, 0xda, 0xe0, 0xd5, 0x95, 0x79,
		0x5f, 0xda, 0x42, 0xef, 0xb6, 0x90, 0x3d, 0xde, 0xef, 0x4d, 0xb7, 0x91, 0xc6, 0x1d, 0x15, 0x6a,
		0x9a, 0x9b, 0x4c, 0x2d, 0x69, 0xb4, 0x7a, 0x4d, 0x13, 0x64, 0x57, 0x71, 0x37, 0x68, 0xb4, 0x93,
		0x2c, 0x8a, 0x13, 0x93, 0x06, 0x17, 0xed, 0x34, 0x78, 0xf7, 0x67, 0x3d, 0xe8, 0x1f, 0x67, 0xd0,
		0xed, 0x98, 0x46, 0x7c, 0x11, 0x37, 0xbe, 0x8e, 0xbc, 0x49, 0x2f, 0x1d, 0x7a, 0x71, 0xe1, 0xb7,
		0xaf, 0x98, 0x9b, 0x9f, 0xb4, 0xa4, 0xe6, 0xc4, 0x6b, 0x50, 0xa0, 0xc5, 0x2e, 0x12, 0xf1, 0x53,
		0x86, 0xb5, 0x8a, 0x06, 0xc0, 0x9b, 0x45, 0xbf, 0xf5, 0xd4, 0x6b, 0x46, 0x22, 0xcc, 0xe7, 0xfd,
		0xe1, 0xf1, 0x02, 0x30, 0xe0, 0x9e, 0xa9, 0xdb, 0xb5, 0x5d, 0x7b, 0xba, 0x6f, 0x51, 0x4b, 0x2b,
		0xc3, 0x57, 0x78, 0xd3, 0x69, 0xd9, 0x6f, 0xda, 0xcf, 0x1d, 0xe8, 0x84, 0x0c, 0xcb, 0xf6, 0x25,
		0x33, 0x1f, 0x45, 0xac, 0xa2, 0x40, 0xb2, 0x72, 0x40, 0xbe, 0x42, 0x40, 0x9a, 0x6d, 0xa8, 0xdd,
		0xf8, 0xab, 0x11, 0x0a, 0x95, 0x1b, 0x7c, 0xbf, 0x63, 0x72, 0xa9, 0xf9, 0x23, 0x53, 0xdd, 0x58,
		0xba, 0xbb, 0xdd, 0x59, 0xe9, 0xae, 0x0e, 0x6e, 0x7a, 0x20, 0xe7, 0x32, 0x41, 0xc1, 0x4a, 0x77,
		0x5f, 0xc3, 0x16, 0x56, 0xba, 0x3f, 0xcd, 0x2c, 0x59, 0xe9, 0xee, 0x29, 0x70, 0xea, 0x03, 0xa8,
		0x8b, 0x1c, 0x55, 0xc0, 0x54, 0x3c, 0xa6, 0xe2, 0xf9, 0x00, 0xbc, 0xb9, 0x20, 0xa6, 0xe2, 0x09,
		0x8b, 0xa3, 0xf8, 0xbf, 0x4c, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x01,
		0x77, 0x25, 0x90, 0xcf, 0x4f, 0x92, 0xa9, 0x78, 0xa2, 0x22, 0x29, 0xfc, 0xd7, 0x10, 0x4e, 0xe1,
		0xff, 0xd8, 0xb6, 0x28, 0xfc, 0x77, 0xa4, 0x7a, 0x4c, 0xc5, 0xf3, 0x47, 0x07, 0xa9, 0xff, 0xf7,
		0xfa, 0x79, 0x18, 0xaf, 0x23, 0x1a, 0xbd, 0x33, 0x5e, 0x87, 0x50, 0x9d, 0x50, 0x9d, 0x50, 0x9d,
		0x50, 0x9d, 0x50, 0xdd, 0x92, 0xbd, 0x32, 0x5e, 0xa7, 0x10, 0xa4, 0x87, 0xf1, 0x3a, 0xb8, 0x6d,
		0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0x66, 0xbc, 0x8e, 0xf8, 0x87, 0x2c, 0xbb, 0xae, 0x7c,
		0x32, 0x9c, 0xca, 0xd0, 0x35, 0xad, 0x7a, 0x8c, 0xd7, 0x41, 0xf9, 0x02, 0xd2, 0xeb, 0xfe, 0x47,
		0x9a, 0x8c, 0xd7, 0x59, 0x40, 0x9e, 0x17, 0x4d, 0x82, 0x37, 0x9d, 0xc1, 0x7f, 0x71, 0xd7, 0x45,
		0xb1, 0x2e, 0x9b, 0xdc, 0xbf, 0x74, 0x06, 0xff, 0x7a, 0x3e, 0xf2, 0x83, 0x0d, 0xee, 0x8f, 0xbc,
		0x27, 0x36, 0xb8, 0xaf, 0x9a, 0xa4, 0x61, 0x83, 0x7b, 0x81, 0x92, 0x31, 0xd4, 0xaa, 0x53, 0xab,
		0xfe, 0xd3, 0x13, 0xa3, 0x56, 0x5d, 0x1a, 0x9c, 0xc9, 0xa4, 0x17, 0x19, 0xb4, 0x5d, 0x81, 0xb7,
		0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0x7a, 0xa6, 0x56, 0x5d, 0x0c, 0x7d, 0xa9,
		0x55, 0x17, 0x78, 0x50, 0xb2, 0xe8, 0x24, 0x32, 0xa9, 0x55, 0xa7, 0x56, 0x9d, 0x64, 0xba, 0xd8,
		0x87, 0x5a, 0xf5, 0xa7, 0x2b, 0x21, 0x1b, 0xdc, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36,
		0x09, 0x36, 0xa9, 0xb6, 0x2e, 0x92, 0xdb, 0xa6, 0xc5, 0x8c, 0x16, 0x33, 0x48, 0x0f, 0xa4, 0x07,
		0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0xca, 0x4f, 0x7a, 0x68, 0x31, 0xc3, 0x6d, 0xe3, 0xb6,
		0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x2d, 0x66, 0xe2, 0x1f, 0x2e, 0xc7, 0x75, 0xe5, 0x73, 0x31,
		0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0x8b, 0x19, 0xca, 0x17, 0x70, 0x2b, 0xee, 0x7f, 0xa4, 0x49,
		0x8b, 0xd9, 0x02, 0xf2, 0x3c, 0x6d, 0x31, 0x5b, 0x8f, 0xc5, 0xed, 0x33, 0x1d, 0x66, 0x2c, 0x6c,
		0xd7, 0x32, 0xb8, 0xf5, 0x5a, 0xd8, 0x3e, 0x63, 0x60, 0xa5, 0xdd, 0xd3, 0x7e, 0xdf, 0xa4, 0x0a,
		0xb3, 0x9f, 0xfd, 0x37, 0xd9, 0x45, 0x6b, 0x77, 0x1b, 0xfa, 0x55, 0x37, 0xae, 0xdd, 0x89, 0x65,
		0xf5, 0xda, 0x5c, 0x01, 0xac, 0x5e, 0x5b, 0xea, 0xad, 0xb3, 0x7a, 0x6d, 0x6d, 0x1d, 0x37, 0xab,
		0xd7, 0x3c, 0x04, 0x4a, 0x35, 0xc0, 0xd4, 0x04, 0x4e, 0x7d, 0x00, 0xd5, 0x06, 0x52, 0x67, 0x80,
		0xea, 0x0c, 0x58, 0x9d, 0x00, 0x6c, 0x39, 0x52, 0x13, 0xb4, 0xb3, 0x4b, 0x83, 0x33, 0xb7, 0xf6,
		0x45, 0x06, 0x6d, 0x57, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x01, 0x77,
		0x25, 0x90, 0xcf, 0x4f, 0x92, 0x76, 0x76, 0x51, 0x91, 0xdc, 0xd8, 0x6b, 0x08, 0xe7, 0xc6, 0x7e,
		0x6c, 0x5b, 0xdc, 0xd8, 0x3b, 0x52, 0x3d, 0xda, 0xd9, 0xfd, 0xd1, 0x41, 0x2e, 0xee, 0xbd, 0x7e,
		0x1e, 0xfa, 0xe2, 0x44, 0xa3, 0x77, 0xfa, 0xe2, 0x08, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5,
		0x09, 0xd5, 0x2d, 0xd9, 0x2b, 0x7d, 0x71, 0x85, 0x20, 0x3d, 0xf4, 0xc5, 0xe1, 0xb6, 0x71, 0xdb,
		0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x9b, 0xbe, 0x38, 0xf1, 0x0f, 0x59, 0x76, 0x5d, 0xf9, 0x64, 0x38,
		0x95, 0xa1, 0x6b, 0x5a, 0xf5, 0xe8, 0x8b, 0x43, 0xf9, 0x02, 0xd2, 0xeb, 0xfe, 0x47, 0x9a, 0xf4,
		0xc5, 0x2d, 0x20, 0xcf, 0xcf, 0xb6, 0x9d, 0xbc, 0x9d, 0x62, 0x5d, 0x77, 0xb0, 0x1d, 0x8d, 0x9e,
		0x9f, 0x5d, 0x6c, 0x8f, 0xbc, 0x2f, 0x76, 0xb1, 0xad, 0x9a, 0xb5, 0x61, 0x17, 0x5b, 0x81, 0xb2,
		0x33, 0x14, 0xaf, 0x53, 0xbc, 0xfe, 0xd3, 0x13, 0xa3, 0x78, 0x5d, 0x1a, 0x9c, 0x49, 0xad, 0x17,
		0x19, 0xb4, 0x5d, 0x81, 0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0x9c, 0xa6,
		0x78, 0x5d, 0x0c, 0x7d, 0x29, 0x5e, 0x17, 0x78, 0x50, 0xd2, 0xea, 0x64, 0x36, 0x29, 0x5e, 0xa7,
		0x78, 0x9d, 0xec, 0xba, 0xd8, 0x87, 0xe2, 0xf5, 0xa7, 0x2b, 0x21, 0xbb, 0xd8, 0x08, 0x36, 0x09,
		0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x29, 0xbf, 0x2e, 0x92, 0xdb, 0xa6, 0xe7, 0x8c, 0x9e,
		0x33, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0xca, 0x4f, 0x7a, 0xe8,
		0x39, 0xc3, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x3d, 0x67, 0xe2, 0x1f, 0x2e,
		0xc7, 0x75, 0xe5, 0x73, 0x31, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0xcf, 0x19, 0xca, 0x17, 0x70,
		0x2b, 0xee, 0x7f, 0xa4, 0x49, 0xcf, 0xd9, 0x02, 0xf2, 0x7c, 0xef, 0x39, 0x5b, 0xcf, 0xa5, 0x6c,
		0x79, 0xcb, 0x19, 0xcb, 0xd9, 0xb4, 0x2c, 0x70, 0xcd, 0x97, 0xb3, 0x49, 0x2f, 0xcd, 0xf2, 0xd7,
		0xc6, 0x0a, 0xb3, 0xad, 0xed, 0x99, 0xc7, 0x56, 0x54, 0x31, 0xb7, 0x59, 0x1a, 0x85, 0xbd, 0xfe,
		0x0b, 0x3a, 0x6f, 0xc9, 0xc4, 0xfb, 0x95, 0x6f, 0x57, 0x26, 0x11, 0x8b, 0x72, 0x15, 0x76, 0xa1,
		0xbd, 0x78, 0x91, 0x9b, 0x61, 0xd8, 0x37, 0x82, 0xe0, 0x8f, 0xe0, 0xf9, 0x30, 0xb7, 0x14, 0x66,
		0xdf, 0x3b, 0xa6, 0xfb, 0xf6, 0x60, 0xeb, 0x4b, 0xfd, 0xf0, 0xec, 0x4b, 0xfd, 0xe0, 0xf8, 0x79,
		0xc9, 0x36, 0xa6, 0x0d, 0x5e, 0x5d, 0x99, 0xf7, 0xa5, 0x2d, 0xf4, 0x6e, 0x0b, 0xd9, 0xe3, 0xfd,
		0xde, 0x74, 0x1b, 0x69, 0xdc, 0x51, 0xa1, 0xa6, 0xb9, 0xc9, 0xd4, 0x92, 0x46, 0xab, 0xd7, 0x34,
		0x41, 0x76, 0x15, 0x77, 0x83, 0x46, 0x3b, 0xc9, 0xa2, 0x38, 0x31, 0x69, 0x70, 0xd1, 0x4e, 0x83,
		0x77, 0x7f, 0xd6, 0xc3, 0x6e, 0x7c, 0x99, 0x44, 0xad, 0x96, 0x69, 0x06, 0xfd, 0x83, 0x0d, 0xba,
		0x1d, 0xd3, 0x88, 0x2f, 0xe2, 0xc6, 0xd7, 0x91, 0x5f, 0xe9, 0xa5, 0x43, 0x7f, 0x2e, 0xac, 0x07,
		0x8a, 0x59, 0xfa, 0x49, 0x9b, 0x6a, 0x4e, 0xbc, 0x10, 0x05, 0x82, 0xec, 0x22, 0x25, 0x3f, 0x65,
		0x62, 0x76, 0x74, 0x01, 0x2e, 0x2d, 0xfa, 0xad, 0xa7, 0x5e, 0xb3, 0x14, 0x61, 0x8e, 0xef, 0x0f,
		0xb7, 0x17, 0x00, 0x04, 0xf7, 0xec, 0xdd, 0xae, 0xed, 0xda, 0xd3, 0x7d, 0x8b, 0x5a, 0x5a, 0x69,
		0xbd, 0xea, 0xbf, 0xc2, 0xb8, 0x73, 0x53, 0x0d, 0xaf, 0x7b, 0xad, 0x2c, 0x6e, 0x44, 0x5d, 0xfb,
		0x25, 0x0c, 0xb9, 0x7b, 0x9d, 0x2b, 0xcd, 0xb2, 0xcd, 0xc9, 0xcc, 0x51, 0x11, 0xab, 0x3c, 0x90,
		0xac, 0x30, 0x90, 0xaf, 0x24, 0x90, 0xe6, 0x22, 0x6a, 0x95, 0x01, 0x6a, 0x74, 0x43, 0xe5, 0xa6,
		0xdf, 0xef, 0xd8, 0x5d, 0x6a, 0x4e, 0xc9, 0x54, 0xd7, 0x96, 0xee, 0x0e, 0x78, 0x56, 0xbf, 0xab,
		0x83, 0x9b, 0x1e, 0xc8, 0xb9, 0x4c, 0x64, 0xb0, 0xfa, 0xdd, 0xd7, 0x50, 0x86, 0xd5, 0xef, 0x4f,
		0x33, 0x4b, 0x56, 0xbf, 0x7b, 0x0a, 0x9c, 0xfa, 0x00, 0xea, 0x22, 0x83, 0x15, 0x30, 0x3d, 0x8f,
		0xe9, 0x79, 0x3e, 0x00, 0x6f, 0x2e, 0x88, 0xe9, 0x79, 0xc2, 0xe2, 0x68, 0x12, 0x28, 0x13, 0x78,
		0x3b, 0x07, 0x71, 0xe7, 0x60, 0xee, 0x14, 0xd4, 0x75, 0xc0, 0x5d, 0x09, 0xe4, 0xf3, 0x93, 0x64,
		0x7a, 0x9e, 0xa8, 0x48, 0x1a, 0x04, 0x34, 0x84, 0xd3, 0x20, 0x30, 0xb6, 0x2d, 0x1a, 0x04, 0x1c,
		0xa9, 0x1e, 0xd3, 0xf3, 0xfc, 0xd1, 0x41, 0xfa, 0x04, 0xbc, 0x7e, 0x1e, 0xc6, 0xf0, 0x88, 0x46,
		0xef, 0x8c, 0xe1, 0x21, 0x54, 0x27, 0x54, 0x27, 0x54, 0x27, 0x54, 0x27, 0x54, 0xb7, 0x64, 0xaf,
		0x8c, 0xe1, 0x29, 0x04, 0xe9, 0x61, 0x0c, 0x0f, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xe3,
		0xb6, 0x19, 0xc3, 0x23, 0xfe, 0x21, 0xcb, 0xae, 0x2b, 0x9f, 0x0c, 0xa7, 0x32, 0x74, 0x4d, 0xab,
		0x1e, 0x63, 0x78, 0x50, 0xbe, 0x80, 0xf4, 0xba, 0xff, 0x91, 0x26, 0x63, 0x78, 0x16, 0x90, 0xe7,
		0xba, 0x71, 0x70, 0x4e, 0x1f, 0xd8, 0xd4, 0x78, 0x90, 0x75, 0xd8, 0xfd, 0xfe, 0xea, 0x4b, 0x27,
		0xa9, 0x75, 0x6e, 0xaa, 0x1f, 0xc7, 0x27, 0x30, 0x39, 0x2d, 0x84, 0xe5, 0xef, 0x8f, 0xbc, 0x30,
		0x96, 0xbf, 0xaf, 0x9a, 0xb7, 0x61, 0xf9, 0x7b, 0x81, 0xf2, 0x33, 0x94, 0xaf, 0x53, 0xbe, 0xfe,
		0xd3, 0x13, 0xa3, 0x7c, 0x5d, 0x1a, 0x9c, 0x49, 0xae, 0x17, 0x19, 0xb4, 0x5d, 0x81, 0xb7, 0x73,
		0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0xa0, 0xa6, 0x7c, 0x5d, 0x0c, 0x7d, 0x29, 0x5f,
		0x17, 0x78, 0x50, 0x12, 0xeb, 0xe4, 0x36, 0x29, 0x5f, 0xa7, 0x7c, 0x9d, 0xfc, 0xba, 0xd8, 0x87,
		0xf2, 0xf5, 0xa7, 0x2b, 0x21, 0xcb, 0xdf, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09,
		0x36, 0x29, 0xc0, 0x2e, 0x92, 0xdb, 0xa6, 0xeb, 0x8c, 0xae, 0x33, 0x48, 0x0f, 0xa4, 0x07, 0xd2,
		0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0xca, 0x4f, 0x7a, 0xe8, 0x3a, 0xc3, 0x6d, 0xe3, 0xb6, 0x71,
		0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x5d, 0x67, 0xe2, 0x1f, 0x2e, 0xc7, 0x75, 0xe5, 0x73, 0x31, 0xa9,
		0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0xd7, 0x19, 0xca, 0x17, 0x70, 0x2b, 0xee, 0x7f, 0xa4, 0x49, 0xd7,
		0xd9, 0x02, 0xf2, 0xbc, 0xef, 0x3a, 0x2b, 0xff, 0xf6, 0xf7, 0xc7, 0x9b, 0xce, 0x58, 0xff, 0xae,
		0x65, 0x83, 0x6b, 0xb3, 0xfe, 0xfd, 0x67, 0x36, 0x57, 0xca, 0xfd, 0xef, 0x8f, 0x5a, 0x59, 0x61,
		0x16, 0xc0, 0xff, 0x26, 0xbb, 0xa1, 0x2d, 0x4c, 0xc7, 0x1b, 0xf1, 0x55, 0x57, 0xb5, 0xdd, 0x89,
		0x65, 0x67, 0xdb, 0x5c, 0x01, 0xec, 0x6c, 0x5b, 0xea, 0xad, 0xb3, 0xb3, 0x6d, 0x6d, 0x7d, 0x39,
		0x3b, 0xdb, 0x3c, 0x04, 0x4a, 0x35, 0xc0, 0xd4, 0x04, 0x4e, 0x7d, 0x00, 0xd5, 0x06, 0x52, 0x67,
		0x80, 0xea, 0x0c, 0x58, 0x9d, 0x00, 0x6c, 0x39, 0x12, 0x18, 0x34, 0xbd, 0x4b, 0x83, 0x33, 0x77,
		0xfb, 0x45, 0x06, 0x6d, 0x57, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x01,
		0x77, 0x25, 0x90, 0xcf, 0x4f, 0x92, 0xa6, 0x77, 0x51, 0x91, 0xdc, 0xeb, 0x6b, 0x08, 0xe7, 0x5e,
		0x7f, 0x6c, 0x5b, 0xdc, 0xeb, 0x3b, 0x52, 0x3d, 0x9a, 0xde, 0xfd, 0xd1, 0x41, 0xae, 0xf7, 0xbd,
		0x7e, 0x1e, 0xba, 0xe7, 0x44, 0xa3, 0x77, 0xba, 0xe7, 0x08, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09,
		0xd5, 0x09, 0xd5, 0x2d, 0xd9, 0x2b, 0xdd, 0x73, 0x85, 0x20, 0x3d, 0x74, 0xcf, 0xe1, 0xb6, 0x71,
		0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x9b, 0xee, 0x39, 0xf1, 0x0f, 0x59, 0x76, 0x5d, 0xf9, 0x64,
		0x38, 0x95, 0xa1, 0x6b, 0x5a, 0xf5, 0xe8, 0x9e, 0x43, 0xf9, 0x02, 0xd2, 0xeb, 0xfe, 0x47, 0x9a,
		0x74, 0xcf, 0x2d, 0x20, 0xcf, 0xf7, 0x4e, 0x9e, 0xbc, 0xb1, 0x62, 0xed, 0x97, 0xb7, 0x1d, 0x8d,
		0x0e, 0x82, 0x25, 0x6e, 0x8f, 0xbc, 0x38, 0x96, 0xb8, 0xad, 0x9a, 0xc8, 0x61, 0x89, 0x5b, 0x81,
		0x12, 0x36, 0xd4, 0xb3, 0x53, 0xcf, 0xfe, 0xd3, 0x13, 0xa3, 0x9e, 0x5d, 0x1a, 0x9c, 0xc9, 0xb6,
		0x17, 0x19, 0xb4, 0x5d, 0x81, 0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0xc2,
		0xa6, 0x9e, 0x5d, 0x0c, 0x7d, 0xa9, 0x67, 0x17, 0x78, 0x50, 0x32, 0xed, 0x24, 0x3b, 0xa9, 0x67,
		0xa7, 0x9e, 0x9d, 0x84, 0xbb, 0xd8, 0x87, 0x7a, 0xf6, 0xa7, 0x2b, 0x21, 0x4b, 0xdc, 0x08, 0x36,
		0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0xa9, 0xc8, 0x2e, 0x92, 0xdb, 0xa6, 0x0d, 0x8d,
		0x36, 0x34, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0xca, 0x4f, 0x7a,
		0x68, 0x43, 0xc3, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x6d, 0x68, 0xe2, 0x1f,
		0x2e, 0xc7, 0x75, 0xe5, 0x73, 0x31, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0x1b, 0x1a, 0xca, 0x17,
		0x70, 0x2b, 0xee, 0x7f, 0xa4, 0x49, 0x1b, 0xda, 0x02, 0xf2, 0x8a, 0xd3, 0x86, 0xb6, 0xe6, 0xdb,
		0xdc, 0xf2, 0x2e, 0x34, 0xb6, 0xba, 0x69, 0x19, 0x25, 0x5b, 0xdd, 0x94, 0x96, 0x6c, 0x15, 0xc0,
		0xec, 0x0a, 0xb3, 0xe6, 0xed, 0x99, 0xc7, 0x86, 0x55, 0x31, 0xb7, 0x59, 0x1a, 0x85, 0xbd, 0xfe,
		0x9b, 0x3a, 0x6f, 0xc9, 0x64, 0x05, 0x2a, 0xdf, 0xae, 0x4c, 0x22, 0x16, 0x0b, 0x2b, 0x2c, 0x51,
		0x7b, 0xf1, 0x22, 0xb7, 0xcc, 0xb0, 0x6f, 0x0d, 0xc1, 0x1f, 0xc1, 0xf3, 0x61, 0x06, 0x2a, 0xcc,
		0xbe, 0x77, 0x4c, 0xf7, 0xed, 0xc1, 0xab, 0x2f, 0xf5, 0xc3, 0xb3, 0x5a, 0xfd, 0x4b, 0xf5, 0xec,
		0xe3, 0xe7, 0x83, 0x93, 0xda, 0xde, 0xee, 0xf1, 0xc9, 0xf3, 0x92, 0x2d, 0x5d, 0x1b, 0xbc, 0xc4,
		0x32, 0xaf, 0x5c, 0x5b, 0xf2, 0x2d, 0x17, 0xb2, 0x3b, 0xfc, 0xbd, 0xe9, 0x36, 0xd2, 0xb8, 0xa3,
		0x42, 0x6a, 0x73, 0x33, 0xaa, 0x25, 0x8d, 0x56, 0xaf, 0x69, 0x82, 0xec, 0x2a, 0xee, 0x06, 0x8d,
		0x76, 0x92, 0x45, 0x71, 0x62, 0xd2, 0xe0, 0xa2, 0x9d, 0x06, 0xb9, 0x93, 0x0b, 0x6a, 0xf5, 0x9b,
		0xed, 0x60, 0x70, 0xd2, 0x41, 0xb7, 0x63, 0x1a, 0xf1, 0x45, 0xdc, 0xf8, 0x3a, 0x72, 0x3b, 0xbd,
		0x74, 0xe8, 0xf8, 0x85, 0x75, 0x42, 0x31, 0xc3, 0x3f, 0x69, 0x5f, 0xcd, 0x89, 0x57, 0xa2, 0x40,
		0xa9, 0x5d, 0xa4, 0xf3, 0xa7, 0xcc, 0xcd, 0x96, 0x36, 0x40, 0xbb, 0x45, 0xbf, 0xf5, 0xd4, 0x6b,
		0xf6, 0x22, 0x1c, 0x0e, 0xf8, 0x18, 0x06, 0x08, 0x80, 0x83, 0x47, 0x44, 0xdf, 0xae, 0x39, 0xdb,
		0x33, 0x07, 0x8b, 0x8a, 0x5b, 0x99, 0x78, 0xab, 0xbd, 0x64, 0xf8, 0xd4, 0xb6, 0x95, 0x37, 0xf7,
		0xb9, 0x73, 0x64, 0x59, 0x36, 0x41, 0x99, 0xa1, 0x2c, 0x62, 0x65, 0x0c, 0x92, 0xe5, 0x0a, 0xf2,
		0x65, 0x09, 0xd2, 0xe4, 0x44, 0xad, 0xcc, 0x40, 0x8d, 0x7f, 0xa8, 0x94, 0x0d, 0xf8, 0x1d, 0xe2,
		0x4b, 0x0d, 0x3d, 0x99, 0x6a, 0x01, 0xd3, 0xdd, 0x31, 0xcf, 0x6a, 0x79, 0x75, 0x70, 0xd3, 0x03,
		0x39, 0x97, 0x59, 0x0e, 0x56, 0xcb, 0xfb, 0x1a, 0xd9, 0xb0, 0x5a, 0xfe, 0x69, 0x66, 0xc9, 0x6a,
		0x79, 0x4f, 0x81, 0x53, 0x1f, 0x40, 0x5d, 0xa4, 0xb4, 0x02, 0x46, 0xf1, 0x31, 0x8a, 0xcf, 0x07,
		0xe0, 0xcd, 0x05, 0x31, 0x8a, 0x4f, 0x58, 0x1c, 0x1d, 0x07, 0x65, 0x02, 0x6f, 0xe7, 0x20, 0xee,
		0x1c, 0xcc, 0x9d, 0x82, 0xba, 0x0e, 0xb8, 0x2b, 0x81, 0x7c, 0x7e, 0x92, 0x8c, 0xe2, 0x13, 0x15,
		0x49, 0xb7, 0x81, 0x86, 0x70, 0xba, 0x0d, 0xc6, 0xb6, 0x45, 0xb7, 0x81, 0x23, 0xd5, 0x63, 0x14,
		0x9f, 0x3f, 0x3a, 0x48, 0xd3, 0x81, 0xd7, 0xcf, 0xc3, 0x4c, 0x1f, 0xd1, 0xe8, 0x9d, 0x99, 0x3e,
		0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x96, 0xec, 0x95, 0x99, 0x3e, 0x85,
		0x20, 0x3d, 0xcc, 0xf4, 0xc1, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x33, 0x7d,
		0xc4, 0x3f, 0x64, 0xd9, 0x75, 0xe5, 0x93, 0xe1, 0x54, 0x86, 0xae, 0x69, 0xd5, 0x63, 0xa6, 0x0f,
		0xca, 0x17, 0x90, 0x5e, 0xf7, 0x3f, 0xd2, 0x64, 0xa6, 0xcf, 0x02, 0xf2, 0xfc, 0xe9, 0x23, 0x1c,
		0x75, 0x81, 0x4d, 0x0d, 0x13, 0x59, 0xa7, 0x7d, 0xf2, 0x9f, 0x93, 0x99, 0x81, 0x22, 0x6c, 0x91,
		0x7f, 0xe4, 0x75, 0xb1, 0x45, 0x7e, 0xd5, 0x9c, 0x0d, 0x5b, 0xe4, 0x0b, 0x94, 0x9b, 0xa1, 0x74,
		0x9d, 0xd2, 0xf5, 0x9f, 0x9e, 0x18, 0xa5, 0xeb, 0xd2, 0xe0, 0x4c, 0x62, 0xbd, 0xc8, 0xa0, 0xed,
		0x0a, 0xbc, 0x9d, 0x83, 0xb8, 0x73, 0x30, 0x77, 0x0a, 0xea, 0xba, 0xc1, 0x34, 0xa5, 0xeb, 0x62,
		0xe8, 0x4b, 0xe9, 0xba, 0xc0, 0x83, 0x92, 0x54, 0x27, 0xaf, 0x49, 0xe9, 0x3a, 0xa5, 0xeb, 0xe4,
		0xd6, 0xc5, 0x3e, 0x94, 0xae, 0x3f, 0x5d, 0x09, 0xd9, 0x22, 0x4f, 0xb0, 0x49, 0xb0, 0x49, 0xb0,
		0x49, 0xb0, 0x49, 0xb0, 0x49, 0xf1, 0x75, 0x91, 0xdc, 0x36, 0x1d, 0x67, 0x74, 0x9c, 0x41, 0x7a,
		0x20, 0x3d, 0x90, 0x1e, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x53, 0x7e, 0xd2, 0x43, 0xc7, 0x19, 0x6e,
		0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0xe9, 0x38, 0x13, 0xff, 0x70, 0x39, 0xae, 0x2b,
		0x9f, 0x8b, 0x49, 0x65, 0xe8, 0x9a, 0x56, 0x3d, 0x3a, 0xce, 0x50, 0xbe, 0x80, 0x5b, 0x71, 0xff,
		0x23, 0x4d, 0x3a, 0xce, 0x16, 0x90, 0xe7, 0x79, 0xc7, 0xd9, 0xfa, 0xac, 0x8e, 0x9f, 0xd7, 0x70,
		0xc6, 0xc2, 0x78, 0x2d, 0xfb, 0x5b, 0xc3, 0x85, 0xf1, 0xf3, 0xec, 0xad, 0xd4, 0x5b, 0xe2, 0xe7,
		0x58, 0x58, 0x61, 0x76, 0xc3, 0xff, 0x26, 0xbb, 0x95, 0x2d, 0x4c, 0xc7, 0xcb, 0xf2, 0x55, 0xd7,
		0xb3, 0xdd, 0x89, 0x65, 0x4f, 0xdb, 0x5c, 0x01, 0xec, 0x69, 0x5b, 0xea, 0xad, 0xb3, 0xa7, 0x6d,
		0x6d, 0xfd, 0x38, 0x7b, 0xda, 0x3c, 0x04, 0x4a, 0x35, 0xc0, 0xd4, 0x04, 0x4e, 0x7d, 0x00, 0xd5,
		0x06, 0x52, 0x67, 0x80, 0xea, 0x0c, 0x58, 0x9d, 0x00, 0x6c, 0x39, 0x12, 0x17, 0x34, 0xbb, 0x4b,
		0x83, 0x33, 0x77, 0xfa, 0x45, 0x06, 0x6d, 0x57, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53,
		0x50, 0xd7, 0x01, 0x77, 0x25, 0x90, 0xcf, 0x4f, 0x92, 0x66, 0x77, 0x51, 0x91, 0xdc, 0xe7, 0x6b,
		0x08, 0xe7, 0x3e, 0x7f, 0x6c, 0x5b, 0xdc, 0xe7, 0x3b, 0x52, 0x3d, 0x9a, 0xdd, 0xfd, 0xd1, 0x41,
		0xae, 0xf5, 0xbd, 0x7e, 0x1e, 0xba, 0xe6, 0x44, 0xa3, 0x77, 0xba, 0xe6, 0x08, 0xd5, 0x09, 0xd5,
		0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x2d, 0xd9, 0x2b, 0x5d, 0x73, 0x85, 0x20, 0x3d, 0x74, 0xcd,
		0xe1, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x9b, 0xae, 0x39, 0xf1, 0x0f, 0x59, 0x76,
		0x5d, 0xf9, 0x64, 0x38, 0x95, 0xa1, 0x6b, 0x5a, 0xf5, 0xe8, 0x9a, 0x43, 0xf9, 0x02, 0xd2, 0xeb,
		0xfe, 0x47, 0x9a, 0x74, 0xcd, 0x2d, 0x20, 0xcf, 0xef, 0x2e, 0x9e, 0xbc, 0xad, 0x62, 0xcd, 0x17,
		0xb6, 0x1d, 0x8d, 0x8e, 0x81, 0xc5, 0x6d, 0x8f, 0xbc, 0x36, 0x16, 0xb7, 0xad, 0x9a, 0xc4, 0x61,
		0x71, 0x5b, 0x81, 0x92, 0x35, 0xd4, 0xb2, 0x53, 0xcb, 0xfe, 0xd3, 0x13, 0xa3, 0x96, 0x5d, 0x1a,
		0x9c, 0xc9, 0xb4, 0x17, 0x19, 0xb4, 0x5d, 0x81, 0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41,
		0x5d, 0x37, 0xba, 0xa6, 0x96, 0x5d, 0x0c, 0x7d, 0xa9, 0x65, 0x17, 0x78, 0x50, 0xb2, 0xec, 0x24,
		0x3a, 0xa9, 0x65, 0xa7, 0x96, 0x9d, 0x64, 0xbb, 0xd8, 0x87, 0x5a, 0xf6, 0xa7, 0x2b, 0x21, 0x8b,
		0xdb, 0x08, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0xa9, 0xc6, 0x2e, 0x92, 0xdb,
		0xa6, 0x05, 0x8d, 0x16, 0x34, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a,
		0xca, 0x4f, 0x7a, 0x68, 0x41, 0xc3, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x2d,
		0x68, 0xe2, 0x1f, 0x2e, 0xc7, 0x75, 0xe5, 0x73, 0x31, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0x0b,
		0x1a, 0xca, 0x17, 0x70, 0x2b, 0xee, 0x7f, 0xa4, 0x49, 0x0b, 0xda, 0x02, 0xf2, 0x8a, 0xd2, 0x82,
		0xb6, 0xd6, 0x1b, 0xdc, 0xf2, 0x0e, 0x34, 0x36, 0xb9, 0x69, 0x19, 0x24, 0x9b, 0xdc, 0x54, 0x56,
		0x6b, 0x79, 0x6f, 0x72, 0x85, 0x59, 0xed, 0xf6, 0xcc, 0x63, 0xa3, 0xaa, 0x98, 0xdb, 0x2c, 0x8d,
		0xc2, 0x5e, 0xff, 0x3d, 0x9d, 0xb7, 0x64, 0xb2, 0x01, 0x95, 0x6f, 0x57, 0x26, 0x11, 0x8b, 0x81,
		0x15, 0x16, 0xa7, 0xbd, 0x78, 0x91, 0x5b, 0x65, 0xd8, 0xb7, 0x85, 0xe0, 0x8f, 0xe0, 0xf9, 0x30,
		0xf3, 0x14, 0x66, 0xdf, 0x3b, 0xa6, 0xfb, 0xf6, 0xe0, 0xd5, 0x97, 0xfa, 0xe1, 0x59, 0xad, 0xfe,
		0xa5, 0x7a, 0xf6, 0xf9, 0xb0, 0xb6, 0xb7, 0x7b, 0x7c, 0xf2, 0xbc, 0x64, 0x6b, 0xd6, 0x06, 0xaf,
		0xb0, 0xcc, 0x4b, 0xd6, 0x96, 0x7a, 0xc7, 0x85, 0xec, 0x08, 0x7f, 0x6f, 0xba, 0x8d, 0x34, 0xee,
		0xa8, 0x10, 0xd9, 0xdc, 0x84, 0x6a, 0x49, 0xa3, 0xd5, 0x6b, 0x9a, 0x20, 0xbb, 0x8a, 0xbb, 0x41,
		0xa3, 0x9d, 0x64, 0x51, 0x9c, 0x98, 0x34, 0xb8, 0x68, 0xa7, 0x41, 0xad, 0x7e, 0x53, 0x0d, 0x46,
		0x38, 0x1f, 0x0c, 0x4e, 0x39, 0xe8, 0x76, 0x4c, 0x23, 0xbe, 0x88, 0x1b, 0x5f, 0x47, 0xee, 0xa6,
		0x97, 0x0e, 0xdd, 0xbd, 0xb0, 0x3e, 0x28, 0xe6, 0xf4, 0x27, 0x6d, 0xab, 0x39, 0xf1, 0x42, 0x14,
		0x68, 0xb4, 0x8b, 0x04, 0xfe, 0x94, 0xa9, 0xd9, 0xd1, 0x05, 0xa8, 0xb6, 0xe8, 0xb7, 0x9e, 0x7a,
		0xcd, 0x5a, 0x84, 0x43, 0x00, 0xff, 0xa8, 0xbf, 0x00, 0x30, 0x78, 0x43, 0xee, 0xed, 0x9a, 0xb2,
		0x3d, 0x53, 0xb0, 0xa8, 0xb4, 0x95, 0xfc, 0x8d, 0x6e, 0x87, 0xd7, 0xbd, 0x56, 0x36, 0x7c, 0x6e,
		0xdb, 0xaa, 0x9b, 0x7b, 0xdb, 0xb9, 0xd2, 0x2c, 0x9b, 0xa0, 0xcc, 0x10, 0x16, 0xb1, 0xb2, 0x05,
		0xc9, 0xf2, 0x04, 0xf9, 0x32, 0x04, 0x69, 0x6a, 0xa2, 0x56, 0x56, 0xa0, 0xc6, 0x3e, 0x54, 0xca,
		0x04, 0xfc, 0x0e, 0xed, 0xa5, 0x86, 0x9c, 0x4c, 0xb5, 0x7c, 0xe9, 0xee, 0x93, 0x67, 0x8d, 0xbc,
		0x3a, 0xb8, 0xe9, 0x81, 0x9c, 0xcb, 0xfc, 0x06, 0x6b, 0xe4, 0x7d, 0x8d, 0x6c, 0x58, 0x23, 0xff,
		0x34, 0xb3, 0x64, 0x8d, 0xbc, 0xa7, 0xc0, 0xa9, 0x0f, 0xa0, 0x2e, 0x12, 0x5a, 0x01, 0xa3, 0xf7,
		0x18, 0xbd, 0xe7, 0x03, 0xf0, 0xe6, 0x82, 0x18, 0xbd, 0x27, 0x2c, 0x8e, 0x0e, 0x83, 0x32, 0x81,
		0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x07, 0xdc, 0x95, 0x40, 0x3e, 0x3f, 0x49,
		0x46, 0xef, 0x89, 0x8a, 0xa4, 0xbb, 0x40, 0x43, 0x38, 0xdd, 0x05, 0x63, 0xdb, 0xa2, 0xbb, 0xc0,
		0x91, 0xea, 0x31, 0x7a, 0xcf, 0x1f, 0x1d, 0xa4, 0xc9, 0xc0, 0xeb, 0xe7, 0x61, 0x86, 0x8f, 0x68,
		0xf4, 0xce, 0x0c, 0x1f, 0x42, 0x75, 0x42, 0x75, 0x42, 0x75, 0x42, 0x75, 0x42, 0x75, 0x4b, 0xf6,
		0xca, 0x0c, 0x9f, 0x42, 0x90, 0x1e, 0x66, 0xf8, 0xe0, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36,
		0x6e, 0x9b, 0x19, 0x3e, 0xe2, 0x1f, 0xb2, 0xec, 0xba, 0xf2, 0xc9, 0x70, 0x2a, 0x43, 0xd7, 0xb4,
		0xea, 0x31, 0xc3, 0x07, 0xe5, 0x0b, 0x48, 0xaf, 0xfb, 0x1f, 0x69, 0x32, 0xc3, 0x67, 0x01, 0x79,
		0xbe, 0xf4, 0x11, 0x4e, 0xf4, 0x81, 0x4d, 0x0d, 0x11, 0x59, 0xa3, 0xfd, 0xf1, 0xdb, 0x1f, 0xc7,
		0x27, 0x30, 0x39, 0x4c, 0x84, 0xcd, 0xf1, 0x8f, 0xbc, 0x30, 0x36, 0xc7, 0xaf, 0x9a, 0xb7, 0x61,
		0x73, 0x7c, 0x81, 0xf2, 0x33, 0x94, 0xaf, 0x53, 0xbe, 0xfe, 0xd3, 0x13, 0xa3, 0x7c, 0x5d, 0x1a,
		0x9c, 0x49, 0xae, 0x17, 0x19, 0xb4, 0x5d, 0x81, 0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41,
		0x5d, 0x37, 0xa0, 0xa6, 0x7c, 0x5d, 0x0c, 0x7d, 0x29, 0x5f, 0x17, 0x78, 0x50, 0x12, 0xeb, 0xe4,
		0x36, 0x29, 0x5f, 0xa7, 0x7c, 0x9d, 0xfc, 0xba, 0xd8, 0x87, 0xf2, 0xf5, 0xa7, 0x2b, 0x21, 0x9b,
		0xe3, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09, 0x36, 0x29, 0xc0, 0x2e, 0x92, 0xdb,
		0xa6, 0xeb, 0x8c, 0xae, 0x33, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a,
		0xca, 0x4f, 0x7a, 0xe8, 0x3a, 0xc3, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x5d,
		0x67, 0xe2, 0x1f, 0x2e, 0xc7, 0x75, 0xe5, 0x73, 0x31, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0xd7,
		0x19, 0xca, 0x17, 0x70, 0x2b, 0xee, 0x7f, 0xa4, 0x49, 0xd7, 0xd9, 0x02, 0xf2, 0xbc, 0xef, 0x3a,
		0x5b, 0x9b, 0x95, 0xf1, 0x0f, 0x34, 0x9d, 0xb1, 0x2c, 0x5e, 0xcb, 0x06, 0xd7, 0x6e, 0x59, 0xfc,
		0x43, 0x36, 0x57, 0xe6, 0x2d, 0xf1, 0xf3, 0xad, 0xac, 0x30, 0xfb, 0xe1, 0x7f, 0x93, 0xdd, 0xd0,
		0x16, 0xa6, 0xe3, 0x85, 0xf9, 0xaa, 0xab, 0xda, 0xee, 0xc4, 0xb2, 0xb3, 0x6d, 0xae, 0x00, 0x76,
		0xb6, 0x2d, 0xf5, 0xd6, 0xd9, 0xd9, 0xb6, 0xb6, 0xbe, 0x9c, 0x9d, 0x6d, 0x1e, 0x02, 0xa5, 0x1a,
		0x60, 0x6a, 0x02, 0xa7, 0x3e, 0x80, 0x6a, 0x03, 0xa9, 0x33, 0x40, 0x75, 0x06, 0xac, 0x4e, 0x00,
		0xb6, 0x1c, 0x09, 0x0c, 0x9a, 0xde, 0xa5, 0xc1, 0x99, 0xbb, 0xfd, 0x22, 0x83, 0xb6, 0x2b, 0xf0,
		0x76, 0x0e, 0xe2, 0xce, 0xc1, 0xdc, 0x29, 0xa8, 0xeb, 0x80, 0xbb, 0x12, 0xc8, 0xe7, 0x27, 0x49,
		0xd3, 0xbb, 0xa8, 0x48, 0xee, 0xf5, 0x35, 0x84, 0x73, 0xaf, 0x3f, 0xb6, 0x2d, 0xee, 0xf5, 0x1d,
		0xa9, 0x1e, 0x4d, 0xef, 0xfe, 0xe8, 0x20, 0xd7, 0xfb, 0x5e, 0x3f, 0x0f, 0xdd, 0x73, 0xa2, 0xd1,
		0x3b, 0xdd, 0x73, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x96, 0xec, 0x95,
		0xee, 0xb9, 0x42, 0x90, 0x1e, 0xba, 0xe7, 0x70, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x1b, 0xb7,
		0x4d, 0xf7, 0x9c, 0xf8, 0x87, 0x2c, 0xbb, 0xae, 0x7c, 0x32, 0x9c, 0xca, 0xd0, 0x35, 0xad, 0x7a,
		0x74, 0xcf, 0xa1, 0x7c, 0x01, 0xe9, 0x75, 0xff, 0x23, 0x4d, 0xba, 0xe7, 0x16, 0x90, 0xe7, 0x7b,
		0x27, 0x4f, 0xde, 0x58, 0xb1, 0xf6, 0xcb, 0xdb, 0x8e, 0x46, 0x07, 0xc1, 0x12, 0xb7, 0x47, 0x5e,
		0x1c, 0x4b, 0xdc, 0x56, 0x4d, 0xe4, 0xb0, 0xc4, 0xad, 0x40, 0x09, 0x1b, 0xea, 0xd9, 0xa9, 0x67,
		0xff, 0xe9, 0x89, 0x51, 0xcf, 0x2e, 0x0d, 0xce, 0x64, 0xdb, 0x8b, 0x0c, 0xda, 0xae, 0xc0, 0xdb,
		0x39, 0x88, 0x3b, 0x07, 0x73, 0xa7, 0xa0, 0xae, 0x1b, 0x61, 0x53, 0xcf, 0x2e, 0x86, 0xbe, 0xd4,
		0xb3, 0x0b, 0x3c, 0x28, 0x99, 0x76, 0x92, 0x9d, 0xd4, 0xb3, 0x53, 0xcf, 0x4e, 0xc2, 0x5d, 0xec,
		0x43, 0x3d, 0xfb, 0xd3, 0x95, 0x90, 0x25, 0x6e, 0x04, 0x9b, 0x04, 0x9b, 0x04, 0x9b, 0x04, 0x9b,
		0x04, 0x9b, 0x54, 0x64, 0x17, 0xc9, 0x6d, 0xd3, 0x86, 0x46, 0x1b, 0x1a, 0xa4, 0x07, 0xd2, 0x03,
		0xe9, 0x81, 0xf4, 0x40, 0x7a, 0x20, 0x3d, 0xe5, 0x27, 0x3d, 0xb4, 0xa1, 0xe1, 0xb6, 0x71, 0xdb,
		0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x9b, 0x36, 0x34, 0xf1, 0x0f, 0x97, 0xe3, 0xba, 0xf2, 0xb9, 0x98,
		0x54, 0x86, 0xae, 0x69, 0xd5, 0xa3, 0x0d, 0x0d, 0xe5, 0x0b, 0xb8, 0x15, 0xf7, 0x3f, 0xd2, 0xa4,
		0x0d, 0x6d, 0x01, 0x79, 0xc5, 0x69, 0x43, 0x5b, 0xf3, 0x6d, 0x6e, 0x79, 0x17, 0x1a, 0x5b, 0xdd,
		0xb4, 0x8c, 0x92, 0xad, 0x6e, 0x4a, 0x4b, 0xb6, 0x0a, 0x60, 0x76, 0x85, 0x59, 0xf3, 0xf6, 0xcc,
		0x63, 0xc3, 0xaa, 0x98, 0xdb, 0x2c, 0x8d, 0xc2, 0x5e, 0xff, 0x4d, 0x9d, 0xb7, 0x64, 0xb2, 0x02,
		0x95, 0x6f, 0x57, 0x26, 0x11, 0x8b, 0x85, 0x15, 0x96, 0xa8, 0xbd, 0x78, 0x91, 0x5b, 0x66, 0xd8,
		0xb7, 0x86, 0xe0, 0x8f, 0xe0, 0xf9, 0x30, 0x03, 0x15, 0x66, 0xdf, 0x3b, 0xa6, 0xfb, 0xf6, 0xe0,
		0xd5, 0x97, 0xfa, 0xe1, 0x59, 0xad, 0xfe, 0x65, 0xfb, 0xec, 0xe3, 0xe7, 0x83, 0x93, 0xda, 0xde,
		0xee, 0xf1, 0xc9, 0xf3, 0x92, 0x2d, 0x5d, 0x1b, 0xbc, 0xc4, 0x32, 0xaf, 0x5c, 0x5b, 0xf2, 0x2d,
		0x17, 0xb2, 0x3b, 0xfc, 0xbd, 0xe9, 0x36, 0xd2, 0xb8, 0xa3, 0x42, 0x6a, 0x73, 0x33, 0xaa, 0x25,
		0x8d, 0x56, 0xaf, 0x69, 0x82, 0xec, 0x2a, 0xee, 0x06, 0x8d, 0x76, 0x92, 0x45, 0x71, 0x62, 0xd2,
		0xe0, 0xa2, 0x9d, 0x06, 0xb9, 0x93, 0x0b, 0x6a, 0xf5, 0x9b, 0xed, 0x60, 0x70, 0xd2, 0x41, 0xb7,
		0x63, 0x1a, 0xf1, 0x45, 0xdc, 0xf8, 0x3a, 0x72, 0x3b, 0xbd, 0x74, 0xe8, 0xf8, 0x85, 0x75, 0x42,
		0x31, 0xc3, 0x3f, 0x69, 0x5f, 0xcd, 0x89, 0x57, 0xa2, 0x40, 0xa9, 0x5d, 0xa4, 0xf3, 0xa7, 0xcc,
		0xcd, 0x96, 0x36, 0x40, 0xbb, 0x45, 0xbf, 0xf5, 0xd4, 0x6b, 0xf6, 0x22, 0x1c, 0x0e, 0xf8, 0x18,
		0x06, 0x08, 0x80, 0x83, 0x47, 0x44, 0xdf, 0xae, 0x39, 0xdb, 0x33, 0x07, 0x8b, 0x8a, 0x5b, 0x99,
		0x78, 0xab, 0xbd, 0x64, 0xf8, 0xd4, 0xb6, 0x95, 0x37, 0xf7, 0xb9, 0x73, 0x64, 0x59, 0x36, 0x41,
		0x99, 0xa1, 0x2c, 0x62, 0x65, 0x0c, 0x92, 0xe5, 0x0a, 0xf2, 0x65, 0x09, 0xd2, 0xe4, 0x44, 0xad,
		0xcc, 0x40, 0x8d, 0x7f, 0xa8, 0x94, 0x0d, 0xf8, 0x1d, 0xe2, 0x4b, 0x0d, 0x3d, 0x99, 0x6a, 0x01,
		0xd3, 0xdd, 0x31, 0xcf, 0x6a, 0x79, 0x75, 0x70, 0xd3, 0x03, 0x39, 0x97, 0x59, 0x0e, 0x56, 0xcb,
		0xfb, 0x1a, 0xd9, 0xb0, 0x5a, 0xfe, 0x69, 0x66, 0xc9, 0x6a, 0x79, 0x4f, 0x81, 0x53, 0x1f, 0x40,
		0x5d, 0xa4, 0xb4, 0x02, 0x46, 0xf1, 0x31, 0x8a, 0xcf, 0x07, 0xe0, 0xcd, 0x05, 0x31, 0x8a, 0x4f,
		0x58, 0x1c, 0x1d, 0x07, 0x65, 0x02, 0x6f, 0xe7, 0x20, 0xee, 0x1c, 0xcc, 0x9d, 0x82, 0xba, 0x0e,
		0xb8, 0x2b, 0x81, 0x7c, 0x7e, 0x92, 0x8c, 0xe2, 0x13, 0x15, 0x49, 0xb7, 0x81, 0x86, 0x70, 0xba,
		0x0d, 0xc6, 0xb6, 0x45, 0xb7, 0x81, 0x23, 0xd5, 0x63, 0x14, 0x9f, 0x3f, 0x3a, 0x48, 0xd3, 0x81,
		0xd7, 0xcf, 0xc3, 0x4c, 0x1f, 0xd1, 0xe8, 0x9d, 0x99, 0x3e, 0x84, 0xea, 0x84, 0xea, 0x84, 0xea,
		0x84, 0xea, 0x84, 0xea, 0x96, 0xec, 0x95, 0x99, 0x3e, 0x85, 0x20, 0x3d, 0xcc, 0xf4, 0xc1, 0x6d,
		0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x33, 0x7d, 0xc4, 0x3f, 0x64, 0xd9, 0x75, 0xe5,
		0x93, 0xe1, 0x54, 0x86, 0xae, 0x69, 0xd5, 0x63, 0xa6, 0x0f, 0xca, 0x17, 0x90, 0x5e, 0xf7, 0x3f,
		0xd2, 0x64, 0xa6, 0xcf, 0x02, 0xf2, 0xfc, 0xe9, 0x23, 0x1c, 0x75, 0x81, 0x4d, 0x0d, 0x13, 0x59,
		0xa7, 0x7d, 0xf2, 0x9f, 0x93, 0x99, 0x81, 0x22, 0x6c, 0x91, 0x7f, 0xe4, 0x75, 0xb1, 0x45, 0x7e,
		0xd5, 0x9c, 0x0d, 0x5b, 0xe4, 0x0b, 0x94, 0x9b, 0xa1, 0x74, 0x9d, 0xd2, 0xf5, 0x9f, 0x9e, 0x18,
		0xa5, 0xeb, 0xd2, 0xe0, 0x4c, 0x62, 0xbd, 0xc8, 0xa0, 0xed, 0x0a, 0xbc, 0x9d, 0x83, 0xb8, 0x73,
		0x30, 0x77, 0x0a, 0xea, 0xba, 0xc1, 0x34, 0xa5, 0xeb, 0x62, 0xe8, 0x4b, 0xe9, 0xba, 0xc0, 0x83,
		0x92, 0x54, 0x27, 0xaf, 0x49, 0xe9, 0x3a, 0xa5, 0xeb, 0xe4, 0xd6, 0xc5, 0x3e, 0x94, 0xae, 0x3f,
		0x5d, 0x09, 0xd9, 0x22, 0x4f, 0xb0, 0x49, 0xb0, 0x49, 0xb0, 0x49, 0xb0, 0x49, 0xb0, 0x49, 0xf1,
		0x75, 0x91, 0xdc, 0x36, 0x1d, 0x67, 0x74, 0x9c, 0x41, 0x7a, 0x20, 0x3d, 0x90, 0x1e, 0x48, 0x0f,
		0xa4, 0x07, 0xd2, 0x53, 0x7e, 0xd2, 0x43, 0xc7, 0x19, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d,
		0xe3, 0xb6, 0xe9, 0x38, 0x13, 0xff, 0x70, 0x39, 0xae, 0x2b, 0x9f, 0x8b, 0x49, 0x65, 0xe8, 0x9a,
		0x56, 0x3d, 0x3a, 0xce, 0x50, 0xbe, 0x80, 0x5b, 0x71, 0xff, 0x23, 0x4d, 0x3a, 0xce, 0x16, 0x90,
		0xe7, 0x79, 0xc7, 0xd9, 0xfa, 0xac, 0x8e, 0x9f, 0xd7, 0x70, 0xc6, 0xc2, 0x78, 0x2d, 0xfb, 0x5b,
		0xc3, 0x85, 0xf1, 0xf3, 0xec, 0xad, 0xd4, 0x5b, 0xe2, 0xe7, 0x58, 0x58, 0x61, 0x76, 0xc3, 0xff,
		0x26, 0xbb, 0x95, 0x2d, 0x4c, 0xc7, 0xcb, 0xf2, 0x55, 0xd7, 0xb3, 0xdd, 0x89, 0x65, 0x4f, 0xdb,
		0x5c, 0x01, 0xec, 0x69, 0x5b, 0xea, 0xad, 0xb3, 0xa7, 0x6d, 0x6d, 0xfd, 0x38, 0x7b, 0xda, 0x3c,
		0x04, 0x4a, 0x35, 0xc0, 0xd4, 0x04, 0x4e, 0x7d, 0x00, 0xd5, 0x06, 0x52, 0x67, 0x80, 0xea, 0x0c,
		0x58, 0x9d, 0x00, 0x6c, 0x39, 0x12, 0x17, 0x34, 0xbb, 0x4b, 0x83, 0x33, 0x77, 0xfa, 0x45, 0x06,
		0x6d, 0x57, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x01, 0x77, 0x25, 0x90,
		0xcf, 0x4f, 0x92, 0x66, 0x77, 0x51, 0x91, 0xdc, 0xe7, 0x6b, 0x08, 0xe7, 0x3e, 0x7f, 0x6c, 0x5b,
		0xdc, 0xe7, 0x3b, 0x52, 0x3d, 0x9a, 0xdd, 0xfd, 0xd1, 0x41, 0xae, 0xf5, 0xbd, 0x7e, 0x1e, 0xba,
		0xe6, 0x44, 0xa3, 0x77, 0xba, 0xe6, 0x08, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5,
		0x2d, 0xd9, 0x2b, 0x5d, 0x73, 0x85, 0x20, 0x3d, 0x74, 0xcd, 0xe1, 0xb6, 0x71, 0xdb, 0xb8, 0x6d,
		0xdc, 0x36, 0x6e, 0x9b, 0xae, 0x39, 0xf1, 0x0f, 0x59, 0x76, 0x5d, 0xf9, 0x64, 0x38, 0x95, 0xa1,
		0x6b, 0x5a, 0xf5, 0xe8, 0x9a, 0x43, 0xf9, 0x02, 0xd2, 0xeb, 0xfe, 0x47, 0x9a, 0x74, 0xcd, 0x2d,
		0x20, 0xcf, 0xef, 0x2e, 0x9e, 0xbc, 0xad, 0x62, 0xcd, 0x17, 0xb6, 0x1d, 0x8d, 0x8e, 0x81, 0xc5,
		0x6d, 0x8f, 0xbc, 0x36, 0x16, 0xb7, 0xad, 0x9a, 0xc4, 0x61, 0x71, 0x5b, 0x81, 0x92, 0x35, 0xd4,
		0xb2, 0x53, 0xcb, 0xfe, 0xd3, 0x13, 0xa3, 0x96, 0x5d, 0x1a, 0x9c, 0xc9, 0xb4, 0x17, 0x19, 0xb4,
		0x5d, 0x81, 0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0xba, 0xa6, 0x96, 0x5d,
		0x0c, 0x7d, 0xa9, 0x65, 0x17, 0x78, 0x50, 0xb2, 0xec, 0x24, 0x3a, 0xa9, 0x65, 0xa7, 0x96, 0x9d,
		0x64, 0xbb, 0xd8, 0x87, 0x5a, 0xf6, 0xa7, 0x2b, 0x21, 0x8b, 0xdb, 0x08, 0x36, 0x09, 0x36, 0x09,
		0x36, 0x09, 0x36, 0x09, 0x36, 0xa9, 0xc6, 0x2e, 0x92, 0xdb, 0xa6, 0x05, 0x8d, 0x16, 0x34, 0x48,
		0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0xca, 0x4f, 0x7a, 0x68, 0x41, 0xc3,
		0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0x2d, 0x68, 0xe2, 0x1f, 0x2e, 0xc7, 0x75,
		0xe5, 0x73, 0x31, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0x0b, 0x1a, 0xca, 0x17, 0x70, 0x2b, 0xee,
		0x7f, 0xa4, 0x49, 0x0b, 0xda, 0x02, 0xf2, 0x8a, 0xd2, 0x82, 0xb6, 0xd6, 0x1b, 0xdc, 0xf2, 0x0e,
		0x34, 0x36, 0xb9, 0x69, 0x19, 0x24, 0x9b, 0xdc, 0x54, 0x56, 0x6b, 0x79, 0x6f, 0x72, 0x85, 0x59,
		0xed, 0xf6, 0xcc, 0x63, 0xa3, 0xaa, 0x98, 0xdb, 0x2c, 0x8d, 0xc2, 0x5e, 0xff, 0x3d, 0x9d, 0xb7,
		0x64, 0xb2, 0x01, 0x95, 0x6f, 0x57, 0x26, 0x11, 0x8b, 0x81, 0x15, 0x16, 0xa7, 0xbd, 0x78, 0x91,
		0x5b, 0x65, 0xd8, 0xb7, 0x85, 0xe0, 0x8f, 0xe0, 0xf9, 0x30, 0xf3, 0x14, 0x66, 0xdf, 0x3b, 0xa6,
		0xfb, 0xf6, 0xe0, 0xd5, 0x97, 0xfa, 0xe1, 0x59, 0xad, 0xfe, 0x65, 0xfb, 0xec, 0xf3, 0x61, 0x6d,
		0x6f, 0xf7, 0xf8, 0xe4, 0x79, 0xc9, 0xd6, 0xac, 0x0d, 0x5e, 0x61, 0x99, 0x97, 0xac, 0x2d, 0xf5,
		0x8e, 0x0b, 0xd9, 0x11, 0xfe, 0xde, 0x74, 0x1b, 0x69, 0xdc, 0x51, 0x21, 0xb2, 0xb9, 0x09, 0xd5,
		0x92, 0x46, 0xab, 0xd7, 0x34, 0x41, 0x76, 0x15, 0x77, 0x83, 0x46, 0x3b, 0xc9, 0xa2, 0x38, 0x31,
		0x69, 0x70, 0xd1, 0x4e, 0x83, 0x91, 0x73, 0x0b, 0x6a, 0xf5, 0x9b, 0xed, 0x60, 0x70, 0xca, 0x41,
		0xb7, 0x63, 0x1a, 0xf1, 0x45, 0xdc, 0xf8, 0x3a, 0x72, 0x37, 0xbd, 0x74, 0xe8, 0xee, 0x85, 0xf5,
		0x41, 0x31, 0xa7, 0x3f, 0x69, 0x5b, 0xcd, 0x89, 0x17, 0xa2, 0x40, 0xa3, 0x5d, 0x24, 0xf0, 0xa7,
		0x4c, 0xcd, 0x8e, 0x2e, 0x40, 0xb5, 0x45, 0xbf, 0xf5, 0xd4, 0x6b, 0xd6, 0x22, 0x1c, 0x02, 0xf8,
		0x47, 0xfd, 0x05, 0x80, 0xc1, 0x1b, 0x72, 0x6f, 0xd7, 0x94, 0xed, 0x99, 0x82, 0x45, 0xa5, 0xad,
		0xa4, 0xed, 0x5e, 0x66, 0xc2, 0xae, 0x69, 0x99, 0x41, 0xae, 0x36, 0x6c, 0x0f, 0xe0, 0xde, 0xfe,
		0x48, 0x80, 0xdc, 0xe1, 0x3e, 0x24, 0xd0, 0xb2, 0x21, 0xca, 0x8c, 0x62, 0x11, 0x2b, 0x5e, 0x90,
		0x2c, 0x52, 0x90, 0x2f, 0x46, 0x90, 0x26, 0x28, 0x6a, 0xc5, 0x05, 0x6a, 0x1c, 0x44, 0xa5, 0x58,
		0xc0, 0xef, 0x00, 0x5f, 0x6a, 0xd4, 0x89, 0xf4, 0x9e, 0x64, 0x9d, 0xfd, 0xc8, 0x2c, 0x90, 0xf7,
		0x01, 0xd8, 0x5c, 0x66, 0x36, 0x58, 0x20, 0xef, 0x6b, 0x4c, 0x53, 0xd4, 0x05, 0xf2, 0x51, 0xf3,
		0xc6, 0xa4, 0x59, 0xdc, 0x35, 0x61, 0x9c, 0x44, 0x8d, 0x2c, 0xbe, 0x31, 0xe1, 0x80, 0x8d, 0x75,
		0xf5, 0xd2, 0x2d, 0x0f, 0xff, 0x04, 0xe9, 0xc1, 0x5a, 0x8a, 0x3d, 0x3e, 0x1a, 0xbd, 0x3d, 0xa7,
		0x3a, 0xa3, 0x0c, 0x37, 0x58, 0xcb, 0xef, 0xb1, 0x5b, 0x72, 0x91, 0x20, 0x0c, 0x18, 0x65, 0xc8,
		0x28, 0xc3, 0xa7, 0x9c, 0x98, 0x5a, 0x11, 0xaf, 0x83, 0x9e, 0x1b, 0xa5, 0x5e, 0x9b, 0x62, 0x4e,
		0xf6, 0x8d, 0x5a, 0xdf, 0xa2, 0xef, 0xdd, 0xb0, 0xd1, 0xbe, 0xee, 0x44, 0xa9, 0x09, 0xaf, 0x15,
		0x86, 0x7f, 0xdc, 0xf1, 0x8b, 0x59, 0xd9, 0x10, 0x0b, 0x88, 0x05, 0xc4, 0x02, 0x62, 0x01, 0xb1,
		0x80, 0x58, 0x40, 0x2c, 0x8a, 0x4c, 0x2c, 0x4c, 0x12, 0x9d, 0xb7, 0x4c, 0x18, 0xc5, 0x97, 0x1d,
		0x3d, 0x46, 0x31, 0x29, 0x14, 0x2a, 0x01, 0x95, 0x80, 0x4a, 0x40, 0x25, 0xa0, 0x12, 0x50, 0x09,
		0xa8, 0x44, 0xa1, 0xa9, 0xc4, 0x6d, 0x66, 0xd2, 0x24, 0x6a, 0xe5, 0x99, 0x82, 0xc1, 0x2d, 0x44,
		0x1a, 0xc6, 0x8a, 0xb9, 0x8a, 0x47, 0x7e, 0x43, 0x99, 0x88, 0x46, 0x1f, 0x00, 0xe1, 0x19, 0xf0,
		0x0c, 0x78, 0x06, 0x3c, 0x03, 0x9e, 0x01, 0xcf, 0x58, 0x2b, 0x9e, 0x11, 0x5f, 0x26, 0xed, 0xd4,
		0x84, 0x51, 0x37, 0xec, 0x44, 0xd9, 0x55, 0xd8, 0x32, 0xc9, 0xe5, 0xa0, 0x74, 0x5b, 0x89, 0x62,
		0xcc, 0x17, 0x4f, 0x1a, 0x03, 0x7a, 0x01, 0xbd, 0x80, 0x5e, 0x40, 0x2f, 0xa0, 0x17, 0xd0, 0x8b,
		0x12, 0xd0, 0x8b, 0xc4, 0xdc, 0x66, 0xe1, 0x55, 0xbb, 0x13, 0xc6, 0x97, 0x9d, 0xf0, 0xda, 0x64,
		0x69, 0xdc, 0x50, 0xe7, 0x18, 0xf3, 0x7e, 0x03, 0x44, 0x03, 0xa2, 0x01, 0xd1, 0x80, 0x68, 0x40,
		0x34, 0x20, 0x1a, 0x10, 0x0d, 0x71, 0xa2, 0xc1, 0xb0, 0xac, 0x39, 0x72, 0x1c, 0x77, 0xcc, 0x3f,
		0xd0, 0xee, 0xfc, 0x52, 0xb4, 0x79, 0x30, 0x70, 0xd9, 0x45, 0x7f, 0xd4, 0x7f, 0xe2, 0xe3, 0xf1,
		0x03, 0x7f, 0x1a, 0x3e, 0xef, 0xd9, 0x88, 0x14, 0x14, 0x65, 0x34, 0x96, 0xc8, 0x54, 0x83, 0x28,
		0x33, 0xf2, 0x5d, 0xa9, 0x92, 0x53, 0x0f, 0xd5, 0x9a, 0x52, 0xb7, 0x68, 0x4a, 0xf5, 0x87, 0x21,
		0xd2, 0x94, 0xba, 0xc6, 0x6e, 0x9a, 0xa6, 0x54, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x90, 0xc0,
		0x20, 0x81, 0x41, 0x02, 0x83, 0x04, 0x06, 0x4d, 0xa9, 0x4b, 0xf0, 0x0b, 0x9a, 0x52, 0x21, 0x16,
		0x10, 0x0b, 0x88, 0x05, 0xc4, 0x02, 0x62, 0x01, 0xb1, 0x28, 0x17, 0xb1, 0xa0, 0x29, 0x15, 0x2a,
		0x01, 0x95, 0x80, 0x4a, 0x40, 0x25, 0xa0, 0x12, 0x50, 0x09, 0xa8, 0xc4, 0x2a, 0x54, 0x82, 0xa6,
		0x54, 0x9a, 0x52, 0xe1, 0x19, 0xf0, 0x0c, 0x78, 0x06, 0x3c, 0x03, 0x9e, 0x01, 0xcf, 0x10, 0x3a,
		0x1b, 0x9a, 0x52, 0x49, 0x63, 0x40, 0x2f, 0xa0, 0x17, 0xd0, 0x0b, 0xe8, 0x05, 0xf4, 0x02, 0x7a,
		0x21, 0x43, 0x2f, 0x68, 0x4a, 0x85, 0x68, 0x40, 0x34, 0x20, 0x1a, 0x10, 0x0d, 0x88, 0x06, 0x44,
		0x63, 0x6d, 0x89, 0x06, 0x4d, 0xa9, 0x73, 0xe4, 0x78, 0xda, 0x94, 0x2a, 0xd9, 0x3b, 0x18, 0xf8,
		0xd7, 0x93, 0x7a, 0x3c, 0x78, 0xdc, 0xa2, 0xb4, 0xa4, 0xb2, 0xf7, 0xdc, 0x3b, 0x83, 0x29, 0xd3,
		0xf2, 0xf3, 0xb9, 0x26, 0xb2, 0x0e, 0x1b, 0xd0, 0xbb, 0x69, 0x66, 0xc2, 0x4e, 0xbb, 0x15, 0x37,
		0xbe, 0x87, 0x71, 0xe7, 0xa6, 0x2a, 0xb7, 0xfa, 0x7c, 0x46, 0x12, 0x3b, 0xcf, 0xd9, 0x79, 0xee,
		0x3c, 0xf4, 0x61, 0xe7, 0xb9, 0x9e, 0x9b, 0x14, 0xdb, 0x79, 0x3e, 0xd4, 0x90, 0xb0, 0x15, 0x5f,
		0xc7, 0x99, 0xfc, 0x8c, 0x89, 0x29, 0x69, 0xec, 0x3f, 0x77, 0x95, 0x07, 0x62, 0xd4, 0x44, 0xf1,
		0xf2, 0x3c, 0x8c, 0x9a, 0x50, 0x07, 0xc7, 0x5c, 0x40, 0x63, 0x6c, 0xf3, 0x4a, 0x97, 0x10, 0xe2,
		0x33, 0x9e, 0x14, 0x80, 0x52, 0x0d, 0x30, 0x35, 0x81, 0x53, 0x1f, 0x40, 0xb5, 0x81, 0xd4, 0x19,
		0xa0, 0x3a, 0x03, 0x56, 0x27, 0x00, 0x2b, 0x9f, 0x3f, 0x0d, 0x14, 0x12, 0xe8, 0xd2, 0xc0, 0x9b,
		0x0b, 0xba, 0x8e, 0x6e, 0xc3, 0xa1, 0x16, 0x2a, 0x8c, 0xf7, 0x99, 0x31, 0xf2, 0x29, 0xe9, 0x4a,
		0xca, 0xa8, 0x73, 0xbb, 0xa9, 0x0e, 0xd2, 0x2e, 0xc0, 0xda, 0x1d, 0x68, 0xbb, 0x02, 0x6f, 0xe7,
		0x20, 0xee, 0x1c, 0xcc, 0x9d, 0x82, 0xba, 0x0e, 0xb8, 0x2b, 0x81, 0x7c, 0x7e, 0x92, 0x6a, 0xb7,
		0xa5, 0x33, 0xf6, 0xda, 0x8b, 0x93, 0xec, 0xd5, 0x96, 0xa6, 0xbd, 0x8e, 0xd0, 0x77, 0x47, 0x51,
		0xe4, 0x51, 0x94, 0x5c, 0x1a, 0x95, 0xe2, 0x9f, 0xc9, 0x8f, 0x2e, 0x1e, 0x0d, 0x1e, 0xf4, 0x63,
		0x9c, 0xa8, 0x03, 0x61, 0x2e, 0xfc, 0x4b, 0xd4, 0xea, 0x19, 0x3d, 0x37, 0x37, 0x23, 0xff, 0x43,
		0x1a, 0x0d, 0xae, 0x49, 0xde, 0xc7, 0x97, 0x71, 0xd6, 0x75, 0xf8, 0x43, 0x0e, 0xcd, 0x65, 0x94,
		0xc5, 0x37, 0xfd, 0xb3, 0x18, 0xd4, 0x82, 0xa9, 0xff, 0x8a, 0x1f, 0xbf, 0x39, 0x50, 0xbd, 0xe8,
		0xd6, 0xbd, 0xea, 0x55, 0xb7, 0xde, 0x54, 0xdf, 0x6c, 0xef, 0x6c, 0xbd, 0x79, 0x8d, 0x0e, 0xba,
		0xd6, 0xc1, 0x67, 0xe5, 0x94, 0x76, 0xfa, 0xac, 0x1c, 0xcf, 0xa3, 0x80, 0x11, 0x7d, 0x5e, 0x7c,
		0x63, 0x92, 0x2c, 0xcc, 0x4c, 0x94, 0x36, 0xdb, 0xdf, 0x12, 0xfd, 0xf0, 0x72, 0xe6, 0x17, 0x28,
		0x11, 0x3a, 0xcd, 0x82, 0xe3, 0x5c, 0xa8, 0x42, 0xe1, 0x71, 0x6e, 0x05, 0x84, 0xea, 0x84, 0xea,
		0x84, 0xea, 0x84, 0xea, 0x84, 0xea, 0x6a, 0xf6, 0xaa, 0x57, 0xe0, 0x7c, 0x1f, 0x7e, 0x85, 0x0b,
		0x9d, 0xcb, 0x45, 0x7a, 0xbe, 0x45, 0x69, 0x12, 0x27, 0x97, 0x61, 0x76, 0x95, 0x9a, 0xee, 0x55,
		0xbb, 0xd5, 0x0c, 0x3b, 0x8d, 0x4c, 0x9f, 0xf9, 0xcc, 0xff, 0x19, 0xb8, 0x6d, 0xdc, 0x36, 0x6e,
		0x1b, 0xb7, 0x8d, 0xdb, 0xd6, 0x0b, 0x41, 0x4d, 0xda, 0x30, 0x49, 0x16, 0x5d, 0x1a, 0x07, 0x9e,
		0xfb, 0x35, 0x59, 0x76, 0xfb, 0x0f, 0x4a, 0x96, 0x9d, 0x0c, 0xe7, 0x3a, 0x67, 0xd9, 0x37, 0x37,
		0x50, 0x3e, 0xd2, 0xeb, 0x32, 0x9f, 0xd2, 0xa4, 0xd7, 0x0b, 0x5d, 0x7c, 0xa6, 0xd4, 0x72, 0x9b,
		0xcb, 0x73, 0xdc, 0x49, 0x78, 0xbf, 0x07, 0xec, 0xe5, 0x64, 0x2f, 0xc5, 0x4b, 0x95, 0x8a, 0xe1,
		0xc0, 0x65, 0x9b, 0xe1, 0x71, 0x9a, 0x99, 0xfa, 0xe0, 0xf1, 0x6b, 0x9d, 0x9b, 0xea, 0xd9, 0x30,
		0xba, 0x3d, 0xe8, 0x3f, 0xbc, 0xe8, 0x8a, 0x58, 0x79, 0x5b, 0xf9, 0x21, 0xda, 0x36, 0x2d, 0xb9,
		0x3a, 0x76, 0x26, 0x8c, 0x90, 0x6e, 0x03, 0x0f, 0x5c, 0x94, 0xad, 0x6f, 0x51, 0xb6, 0x5e, 0x9c,
		0xbc, 0x0c, 0x65, 0xeb, 0x94, 0xad, 0xff, 0xf4, 0xc4, 0x28, 0x5b, 0x97, 0x06, 0x67, 0x92, 0xea,
		0x45, 0x06, 0x6d, 0x57, 0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x0d, 0xa4,
		0x29, 0x5b, 0x17, 0x43, 0x5f, 0xca, 0xd6, 0x05, 0x1e, 0x94, 0x84, 0x3a, 0x39, 0x4d, 0xca, 0xd6,
		0x29, 0x5b, 0x27, 0xaf, 0x2e, 0xf6, 0xa1, 0x6c, 0xfd, 0xe9, 0x4a, 0x38, 0x99, 0xfd, 0x0d, 0xcd,
		0x6d, 0xc3, 0x98, 0xa6, 0xc2, 0x66, 0xf2, 0x19, 0x8e, 0x33, 0xff, 0x67, 0x10, 0x6c, 0x12, 0x6c,
		0x12, 0x6c, 0x12, 0x6c, 0x12, 0x6c, 0xaa, 0xd9, 0x2b, 0x85, 0xd7, 0x45, 0x71, 0xdb, 0x74, 0x9b,
		0xd1, 0x6d, 0x06, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0x20, 0x3d, 0x90, 0x1e, 0x48, 0x4f, 0xf9, 0x49,
		0x0f, 0xdd, 0x66, 0xb8, 0x6d, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xa6, 0xdb, 0x4c, 0xfc,
		0xc3, 0xe5, 0xb8, 0xae, 0x7c, 0x2e, 0x26, 0x95, 0xa1, 0x6b, 0x5a, 0xf5, 0xe8, 0x36, 0x43, 0xf9,
		0x02, 0x6e, 0xc5, 0xfd, 0x8f, 0x34, 0xe9, 0x36, 0x5b, 0x40, 0x9e, 0xd7, 0xdd, 0x66, 0x1a, 0x7d,
		0x3e, 0x81, 0xa7, 0xcd, 0x66, 0x82, 0xbb, 0x1f, 0xe5, 0x2d, 0x85, 0xa5, 0xaa, 0x45, 0xb3, 0xb5,
		0x32, 0x2e, 0x55, 0x7d, 0xd8, 0xba, 0x0a, 0xb3, 0x53, 0xf5, 0x37, 0xd9, 0x4d, 0x6c, 0x61, 0x6a,
		0x1a, 0x26, 0xbe, 0x11, 0xac, 0xe8, 0x9a, 0x5f, 0xc1, 0x95, 0x8b, 0x65, 0x37, 0xdb, 0x5c, 0x01,
		0xec, 0x66, 0x5b, 0xea, 0xad, 0xb3, 0x9b, 0x6d, 0x6d, 0x7d, 0x38, 0xbb, 0xd9, 0x3c, 0x04, 0x4a,
		0x35, 0xc0, 0xd4, 0x04, 0x4e, 0x7d, 0x00, 0xd5, 0x06, 0x52, 0x67, 0x80, 0xea, 0x0c, 0x58, 0x9d,
		0x00, 0x6c, 0x39, 0x12, 0x16, 0x34, 0xb9, 0x4b, 0x83, 0x33, 0x77, 0xf9, 0x45, 0x06, 0x6d, 0x57,
		0xe0, 0xed, 0x1c, 0xc4, 0x9d, 0x83, 0xb9, 0x53, 0x50, 0xd7, 0x01, 0x77, 0x25, 0x90, 0xcf, 0x4f,
		0x92, 0x26, 0x77, 0x51, 0x91, 0xdc, 0xe3, 0x6b, 0x08, 0xe7, 0x1e, 0x7f, 0x6c, 0x5b, 0xdc, 0xe3,
		0x3b, 0x52, 0x3d, 0x9a, 0xdc, 0xfd, 0xd1, 0x41, 0xae, 0xf3, 0xbd, 0x7e, 0x1e, 0xba, 0xe5, 0x44,
		0xa3, 0x77, 0xba, 0xe5, 0x08, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x09, 0xd5, 0x2d, 0xd9,
		0x2b, 0xdd, 0x72, 0x85, 0x20, 0x3d, 0x74, 0xcb, 0xe1, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36,
		0x6e, 0x9b, 0x6e, 0x39, 0xf1, 0x0f, 0x59, 0x76, 0x5d, 0xf9, 0x64, 0x38, 0x95, 0xa1, 0x6b, 0x5a,
		0xf5, 0xe8, 0x96, 0x43, 0xf9, 0x02, 0xd2, 0xeb, 0xfe, 0x47, 0x9a, 0x74, 0xcb, 0x2d, 0x20, 0xcf,
		0xe7, 0x0e, 0x9e, 0xbc, 0xa9, 0x62, 0xad, 0x97, 0xb4, 0x1d, 0x8d, 0x0e, 0x81, 0x65, 0x6d, 0x8f,
		0xbc, 0x34, 0x96, 0xb5, 0xad, 0x9a, 0xc0, 0x61, 0x59, 0x5b, 0x81, 0x12, 0x35, 0xd4, 0xb1, 0x53,
		0xc7, 0xfe, 0xd3, 0x13, 0xa3, 0x8e, 0x5d, 0x1a, 0x9c, 0xc9, 0xb2, 0x17, 0x19, 0xb4, 0x5d, 0x81,
		0xb7, 0x73, 0x10, 0x77, 0x0e, 0xe6, 0x4e, 0x41, 0x5d, 0x37, 0xb2, 0xa6, 0x8e, 0x5d, 0x0c, 0x7d,
		0xa9, 0x63, 0x17, 0x78, 0x50, 0x32, 0xec, 0x24, 0x39, 0xa9, 0x63, 0xa7, 0x8e, 0x9d, 0x44, 0xbb,
		0xd8, 0x87, 0x3a, 0xf6, 0xa7, 0x2b, 0x21, 0xcb, 0xda, 0x08, 0x36, 0x09, 0x36, 0x09, 0x36, 0x09,
		0x36, 0x09, 0x36, 0xa9, 0xc4, 0x2e, 0x92, 0xdb, 0xa6, 0xfd, 0x8c, 0xf6, 0x33, 0x48, 0x0f, 0xa4,
		0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x40, 0x7a, 0xca, 0x4f, 0x7a, 0x68, 0x3f, 0xc3, 0x6d, 0xe3,
		0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xdc, 0x36, 0xed, 0x67, 0xe2, 0x1f, 0x2e, 0xc7, 0x75, 0xe5, 0x73,
		0x31, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0xfb, 0x19, 0xca, 0x17, 0x70, 0x2b, 0xee, 0x7f, 0xa4,
		0x49, 0xfb, 0xd9, 0x02, 0xf2, 0x8a, 0xd1, 0x7e, 0xb6, 0xc6, 0x5b, 0xdb, 0xf2, 0xee, 0x33, 0xb6,
		0xb7, 0x69, 0x19, 0x23, 0xdb, 0xdb, 0x14, 0x16, 0x6a, 0x79, 0x6e, 0x6e, 0x85, 0x59, 0xe7, 0xf6,
		0xcc, 0x63, 0x83, 0xaa, 0x98, 0xdb, 0x2c, 0x8d, 0xc2, 0x5e, 0xff, 0x2d, 0x9d, 0xb7, 0x64, 0xb2,
		0x00, 0x95, 0x6f, 0x57, 0x26, 0x11, 0x8b, 0x7d, 0x15, 0x96, 0xa5, 0xbd, 0x78, 0x91, 0x5b, 0x64,
		0xd8, 0xb7, 0x84, 0xe0, 0x8f, 0xe0, 0xf9, 0x30, 0xe3, 0x14, 0x66, 0xdf, 0x3b, 0xa6, 0xfb, 0xf6,
		0xf8, 0xe8, 0x64, 0xff, 0xac, 0xfe, 0xe9, 0xa0, 0xb6, 0xf7, 0xd7, 0x59, 0xad, 0xfe, 0xa5, 0xfa,
		0xbc, 0x64, 0x8b, 0xd5, 0x06, 0x2f, 0xb0, 0xcc, 0x6b, 0xd5, 0x96, 0x78, 0xc3, 0x85, 0xec, 0x02,
		0x7f, 0x6f, 0xba, 0x8d, 0x34, 0xee, 0xa8, 0x90, 0xd7, 0xdc, 0x7c, 0x3e, 0x25, 0xad, 0xef, 0x41,
		0x9c, 0x34, 0x5a, 0xbd, 0xa6, 0x09, 0xb2, 0xab, 0xb8, 0x1b, 0x34, 0xda, 0x49, 0x16, 0xc5, 0x89,
		0x49, 0x83, 0xbe, 0x66, 0x05, 0xd9, 0x95, 0x09, 0xa2, 0x66, 0x33, 0x35, 0xdd, 0x6e, 0x70, 0x11,
		0x5d, 0xc7, 0xfd, 0x7f, 0xbd, 0xfb, 0x35, 0xe9, 0x76, 0x4c, 0x23, 0xbe, 0x88, 0x4d, 0x33, 0xc8,
		0xda, 0xc1, 0xb9, 0x09, 0x8e, 0x8f, 0xc2, 0x93, 0xfd, 0x60, 0xe8, 0x14, 0x82, 0xe3, 0xdd, 0x0f,
		0xb5, 0xe0, 0xa2, 0x9d, 0x0e, 0xfe, 0xe3, 0x5a, 0xfd, 0xa6, 0x1a, 0xf4, 0x92, 0xb8, 0x11, 0x75,
		0xb3, 0xaf, 0xc9, 0xf4, 0x57, 0xbd, 0x90, 0x56, 0x5c, 0xc5, 0x1b, 0x80, 0x49, 0x9b, 0x6c, 0x4e,
		0xbc, 0x4a, 0x05, 0xda, 0xed, 0x22, 0xdd, 0x3f, 0x65, 0xa2, 0xae, 0xb5, 0x08, 0x5a, 0x2f, 0xfa,
		0xad, 0xa7, 0x5e, 0xb3, 0x24, 0xe1, 0x70, 0xc3, 0xb7, 0x30, 0x43, 0x00, 0x50, 0x3c, 0x09, 0x24,
		0xec, 0x9a, 0xb1, 0x3d, 0x33, 0xb0, 0xa8, 0xb0, 0x95, 0x7b, 0x6f, 0x73, 0xdb, 0xba, 0xca, 0xde,
		0x4d, 0x79, 0xb9, 0x2f, 0xc9, 0xb2, 0xd9, 0xc9, 0x0c, 0x78, 0x11, 0x2b, 0x89, 0x90, 0x2c, 0x7d,
		0x90, 0x2f, 0x71, 0x90, 0x26, 0x32, 0x6a, 0x25, 0x0b, 0x6a, 0x5c, 0x45, 0xa5, 0x04, 0xc1, 0xef,
		0xf4, 0x81, 0xd4, 0x00, 0x95, 0xa9, 0x76, 0x32, 0xdd, 0x3d, 0xf5, 0xac, 0xa7, 0x57, 0x07, 0x37,
		0x3d, 0x90, 0x73, 0x99, 0x45, 0x61, 0x3d, 0xbd, 0xaf, 0xd1, 0x0c, 0xeb, 0xe9, 0x9f, 0x66, 0x96,
		0xac, 0xa7, 0xf7, 0x14, 0x38, 0xf5, 0x01, 0xd4, 0x45, 0xfa, 0x2b, 0x60, 0xac, 0x1f, 0x63, 0xfd,
		0x7c, 0x00, 0xde, 0x5c, 0x10, 0x63, 0xfd, 0x84, 0xc5, 0xd1, 0xbd, 0x50, 0x26, 0xf0, 0x76, 0x0e,
		0xe2, 0xce, 0xc1, 0xdc, 0x29, 0xa8, 0xeb, 0x80, 0xbb, 0x12, 0xc8, 0xe7, 0x27, 0xc9, 0x58, 0x3f,
		0x51, 0x91, 0x74, 0x2e, 0x68, 0x08, 0xa7, 0x73, 0x61, 0x6c, 0x5b, 0x74, 0x2e, 0x38, 0x52, 0x3d,
		0xc6, 0xfa, 0xf9, 0xa3, 0x83, 0x34, 0x30, 0x78, 0xfd, 0x3c, 0xcc, 0x07, 0x12, 0x8d, 0xde, 0x99,
		0x0f, 0x44, 0xa8, 0x4e, 0xa8, 0x4e, 0xa8, 0x4e, 0xa8, 0x4e, 0xa8, 0x6e, 0xc9, 0x5e, 0x99, 0x0f,
		0x54, 0x08, 0xd2, 0xc3, 0x7c, 0x20, 0xdc, 0x36, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0x33,
		0x1f, 0x48, 0xfc, 0x43, 0x96, 0x5d, 0x57, 0x3e, 0x19, 0x4e, 0x65, 0xe8, 0x9a, 0x56, 0x3d, 0xe6,
		0x03, 0xa1, 0x7c, 0x01, 0xe9, 0x75, 0xff, 0x23, 0x4d, 0xe6, 0x03, 0x2d, 0x20, 0xcf, 0xaf, 0xde,
		0xc1, 0xed, 0xa9, 0x11, 0x25, 0xeb, 0xb6, 0x95, 0x7e, 0x7b, 0x72, 0x50, 0x09, 0xdb, 0xe8, 0x1f,
		0x79, 0x59, 0x6c, 0xa3, 0x5f, 0x35, 0x5f, 0xc3, 0x36, 0xfa, 0x02, 0xe5, 0x65, 0x28, 0x5b, 0xa7,
		0x6c, 0xfd, 0xa7, 0x27, 0x46, 0xd9, 0xba, 0x34, 0x38, 0x93, 0x54, 0x2f, 0x32, 0x68, 0xbb, 0x02,
		0x6f, 0xe7, 0x20, 0xee, 0x1c, 0xcc, 0x9d, 0x82, 0xba, 0x6e, 0x20, 0x4d, 0xd9, 0xba, 0x18, 0xfa,
		0x52, 0xb6, 0x2e, 0xf0, 0xa0, 0x24, 0xd4, 0xc9, 0x69, 0x52, 0xb6, 0x4e, 0xd9, 0x3a, 0x79, 0x75,
		0xb1, 0x0f, 0x65, 0xeb, 0x4f, 0x57, 0x42, 0xb6, 0xd1, 0x13, 0x6c, 0x12, 0x6c, 0x12, 0x6c, 0x12,
		0x6c, 0x12, 0x6c, 0x52, 0x78, 0x5d, 0x24, 0xb7, 0x4d, 0xb7, 0x19, 0xdd, 0x66, 0x90, 0x1e, 0x48,
		0x0f, 0xa4, 0x07, 0xd2, 0x03, 0xe9, 0x81, 0xf4, 0x94, 0x9f, 0xf4, 0xd0, 0x6d, 0x86, 0xdb, 0xc6,
		0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0xb8, 0x6d, 0xba, 0xcd, 0xc4, 0x3f, 0x5c, 0x8e, 0xeb, 0xca, 0xe7,
		0x62, 0x52, 0x19, 0xba, 0xa6, 0x55, 0x8f, 0x6e, 0x33, 0x94, 0x2f, 0xe0, 0x56, 0xdc, 0xff, 0x48,
		0x93, 0x6e, 0xb3, 0x05, 0xe4, 0x79, 0xdd, 0x6d, 0xb6, 0x5e, 0x4b, 0xe8, 0xa7, 0x9b, 0xcd, 0x58,
		0x3e, 0xaf, 0x65, 0x7b, 0x6b, 0xba, 0x7c, 0x7e, 0xda, 0xd6, 0x4a, 0xbf, 0x73, 0x7e, 0xca, 0xba,
		0x0a, 0xb3, 0x6b, 0xfe, 0x37, 0xd9, 0x4d, 0x6c, 0x61, 0x3a, 0x5e, 0xbe, 0xaf, 0xba, 0x92, 0xed,
		0x4e, 0x2c, 0xbb, 0xd9, 0xe6, 0x0a, 0x60, 0x37, 0xdb, 0x52, 0x6f, 0x9d, 0xdd, 0x6c, 0x6b, 0xeb,
		0xc3, 0xd9, 0xcd, 0xe6, 0x21, 0x50, 0xaa, 0x01, 0xa6, 0x26, 0x70, 0xea, 0x03, 0xa8, 0x36, 0x90,
		0x3a, 0x03, 0x54, 0x67, 0xc0, 0xea, 0x04, 0x60, 0xcb, 0x91, 0xb0, 0xa0, 0xc9, 0x5d, 0x1a, 0x9c,
		0xb9, 0xcb, 0x2f, 0x32, 0x68, 0xbb, 0x02, 0x6f, 0xe7, 0x20, 0xee, 0x1c, 0xcc, 0x9d, 0x82, 0xba,
		0x0e, 0xb8, 0x2b, 0x81, 0x7c, 0x7e, 0x92, 0x34, 0xb9, 0x8b, 0x8a, 0xe4, 0x1e, 0x5f, 0x43, 0x38,
		0xf7, 0xf8, 0x63, 0xdb, 0xe2, 0x1e, 0xdf, 0x91, 0xea, 0xd1, 0xe4, 0xee, 0x8f, 0x0e, 0x72, 0x9d,
		0xef, 0xf5, 0xf3, 0xd0, 0x2d, 0x27, 0x1a, 0xbd, 0xd3, 0x2d, 0x47, 0xa8, 0x4e, 0xa8, 0x4e, 0xa8,
		0x4e, 0xa8, 0x4e, 0xa8, 0x6e, 0xc9, 0x5e, 0xe9, 0x96, 0x2b, 0x04, 0xe9, 0xa1, 0x5b, 0x0e, 0xb7,
		0x8d, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0x71, 0xdb, 0x74, 0xcb, 0x89, 0x7f, 0xc8, 0xb2, 0xeb, 0xca,
		0x27, 0xc3, 0xa9, 0x0c, 0x5d, 0xd3, 0xaa, 0x47, 0xb7, 0x1c, 0xca, 0x17, 0x90, 0x5e, 0xf7, 0x3f,
		0xd2, 0xa4, 0x5b, 0x6e, 0x01, 0x79, 0x3e, 0x77, 0xf0, 0xe4, 0x4d, 0x15, 0x6b, 0xbd, 0xa4, 0xed,
		0x68, 0x74, 0x08, 0x2c, 0x6b, 0x7b, 0xe4, 0xa5, 0xb1, 0xac, 0x6d, 0xd5, 0x04, 0x0e, 0xcb, 0xda,
		0x0a, 0x94, 0xa8, 0xa1, 0x8e, 0x9d, 0x3a, 0xf6, 0x9f, 0x9e, 0x18, 0x75, 0xec, 0xd2, 0xe0, 0x4c,
		0x96, 0xbd, 0xc8, 0xa0, 0xed, 0x0a, 0xbc, 0x9d, 0x83, 0xb8, 0x73, 0x30, 0x77, 0x0a, 0xea, 0xba,
		0x91, 0x35, 0x75, 0xec, 0x62, 0xe8, 0x4b, 0x1d, 0xbb, 0xc0, 0x83, 0x92, 0x61, 0x27, 0xc9, 0x49,
		0x1d, 0x3b, 0x75, 0xec, 0x24, 0xda, 0xc5, 0x3e, 0xd4, 0xb1, 0x3f, 0x5d, 0x09, 0x59, 0xd6, 0x46,
		0xb0, 0x49, 0xb0, 0x49, 0xb0, 0x49, 0xb0, 0x49, 0xb0, 0x49, 0x25, 0x76, 0x91, 0xdc, 0x36, 0xed,
		0x67, 0xb4, 0x9f, 0x41, 0x7a, 0x20, 0x3d, 0x90, 0x1e, 0x48, 0x0f, 0xa4, 0x07, 0xd2, 0x53, 0x7e,
		0xd2, 0x43, 0xfb, 0x19, 0x6e, 0x1b, 0xb7, 0x8d, 0xdb, 0xc6, 0x6d, 0xe3, 0xb6, 0x69, 0x3f, 0x13,
		0xff, 0x70, 0x39, 0xae, 0x2b, 0x9f, 0x8b, 0x49, 0x65, 0xe8, 0x9a, 0x56, 0x3d, 0xda, 0xcf, 0x50,
		0xbe, 0x80, 0x5b, 0x71, 0xff, 0x23, 0x4d, 0xda, 0xcf, 0x16, 0x90, 0x57, 0x8c, 0xf6, 0xb3, 0x35,
		0xde, 0xda, 0x96, 0x77, 0x9f, 0xb1, 0xbd, 0x4d, 0xcb, 0x18, 0xd9, 0xde, 0xa6, 0xb0, 0x50, 0xcb,
		0x73, 0x73, 0x2b, 0xcc, 0x3a, 0xb7, 0x67, 0x1e, 0x1b, 0x54, 0xc5, 0xdc, 0x66, 0x69, 0x14, 0xf6,
		0xfa, 0x6f, 0xe9, 0xbc, 0x25, 0x93, 0x05, 0xa8, 0x7c, 0xbb, 0x32, 0x89, 0x58, 0xec, 0xab, 0xb0,
		0x2c, 0xed, 0xc5, 0x8b, 0xdc, 0x22, 0xc3, 0xbe, 0x25, 0x04, 0x7f, 0x04, 0xcf, 0x87, 0x19, 0xa7,
		0x30, 0xfb, 0xde, 0x31, 0xdd, 0xb7, 0xc7, 0x47, 0x27, 0xfb, 0x67, 0xf5, 0x4f, 0x07, 0xb5, 0xbd,
		0xbf, 0xce, 0x6a, 0xf5, 0x2f, 0xdb, 0xcf, 0x4b, 0xb6, 0x58, 0x6d, 0xf0, 0x02, 0xcb, 0xbc, 0x56,
		0x6d, 0x89, 0x37, 0x5c, 0xc8, 0x2e, 0xf0, 0xf7, 0xa6, 0xdb, 0x48, 0xe3, 0x8e, 0x0a, 0x79, 0xcd,
		0xcd, 0xe7, 0x53, 0xd2, 0xfa, 0x1e, 0xc4, 0x49, 0xa3, 0xd5, 0x6b, 0x9a, 0x20, 0xbb, 0x8a, 0xbb,
		0x41, 0xa3, 0x9d, 0x64, 0x51, 0x9c, 0x98, 0x34, 0xe8, 0x6b, 0x56, 0x90, 0x5d, 0x99, 0x20, 0x6a,
		0x36, 0x53, 0xd3, 0xed, 0x06, 0x17, 0xd1, 0x75, 0xdc, 0xff, 0xd7, 0xbb, 0x5f, 0x93, 0x6e, 0xc7,
		0x34, 0xe2, 0x8b, 0xd8, 0x34, 0x83, 0xac, 0x1d, 0x9c, 0x9b, 0xe0, 0xf8, 0x28, 0x3c, 0xd9, 0x0f,
		0x86, 0x4e, 0x21, 0x38, 0xde, 0xfd, 0x50, 0x0b, 0x2e, 0xda, 0xe9, 0xe0, 0x3f, 0xae, 0xd5, 0x6f,
		0xb6, 0x83, 0x5e, 0x12, 0x37, 0xa2, 0x6e, 0xf6, 0x35, 0x99, 0xfe, 0xaa, 0x17, 0xd2, 0x8a, 0xab,
		0x78, 0x03, 0x30, 0x69, 0x93, 0xcd, 0x89, 0x57, 0xa9, 0x40, 0xbb, 0x5d, 0xa4, 0xfb, 0xa7, 0x4c,
		0xd4, 0xb5, 0x16, 0x41, 0xeb, 0x45, 0xbf, 0xf5, 0xd4, 0x6b, 0x96, 0x24, 0x1c, 0x6e, 0xf8, 0x16,
		0x66, 0x08, 0x00, 0x8a, 0x27, 0x81, 0x84, 0x5d, 0x33, 0xb6, 0x67, 0x06, 0x16, 0x15, 0x56, 0x68,
		0xd4, 0x8b, 0xe8, 0x68, 0x17, 0xa1, 0x51, 0x2e, 0x62, 0xa3, 0x5b, 0x24, 0x8b, 0x1c, 0xe4, 0x8b,
		0x19, 0xa4, 0x29, 0x8b, 0x5a, 0x71, 0x82, 0x1a, 0x2b, 0x51, 0x29, 0x36, 0xf0, 0x3b, 0x51, 0x20,
		0x35, 0x2a, 0xa5, 0x32, 0x15, 0x78, 0xc9, 0xaf, 0xa4, 0x9f, 0x16, 0x27, 0xbb, 0x8a, 0x7e, 0x83,
		0x55, 0xf4, 0x0e, 0x61, 0xce, 0x65, 0xc6, 0x84, 0x55, 0xf4, 0xbe, 0x46, 0x2e, 0x42, 0x16, 0x23,
		0x5e, 0x43, 0x95, 0xdb, 0x4b, 0xdc, 0x34, 0x49, 0x16, 0x67, 0xdf, 0x53, 0x73, 0x21, 0x69, 0x34,
		0x63, 0x46, 0x26, 0x58, 0x25, 0x55, 0xa9, 0x8d, 0x1e, 0xe5, 0x5d, 0xd4, 0x55, 0x9c, 0x4d, 0xb8,
		0xfb, 0xa1, 0x76, 0xd6, 0x0f, 0xfc, 0xcf, 0x4e, 0xfe, 0xaa, 0xef, 0x4b, 0x9b, 0xe8, 0xa0, 0x2e,
		0xa4, 0xab, 0x52, 0xf9, 0xa5, 0x5c, 0x44, 0x5d, 0xab, 0x7f, 0xa9, 0x9e, 0x7d, 0x38, 0xf8, 0xf4,
		0x3f, 0xc7, 0xf5, 0xfd, 0xbd, 0x4a, 0x19, 0xca, 0xd3, 0x5d, 0x1c, 0xe0, 0xc1, 0xee, 0xbb, 0xfd,
		0x83, 0xfd, 0xf7, 0x67, 0x9f, 0x0f, 0x6b, 0x7b, 0xbb, 0xc7, 0x27, 0x9c, 0xe3, 0x92, 0xe7, 0xc8,
		0xf9, 0xad, 0x72, 0x7e, 0xdb, 0xe8, 0xa1, 0xa5, 0x73, 0xe4, 0xfc, 0x96, 0x3e, 0xbf, 0x83, 0xad,
		0x2f, 0xf5, 0xc3, 0xb3, 0xfd, 0x2f, 0xf5, 0x43, 0x4e, 0x6f, 0xd9, 0xd3, 0xfb, 0x52, 0x3f, 0x38,
		0xe6, 0xf4, 0x96, 0x38, 0xbd, 0x57, 0xfd, 0xd3, 0x1b, 0x78, 0x92, 0x8f, 0x9f, 0x0f, 0x4e, 0xb0,
		0xe1, 0xd5, 0xcf, 0x11, 0x24, 0x5c, 0xfd, 0x14, 0xb7, 0xd1, 0x46, 0x4b, 0xe7, 0x88, 0x36, 0x2e,
		0x7f, 0x8a, 0xb5, 0xc3, 0xff, 0x3e, 0x3e, 0xd9, 0x3d, 0xd9, 0xe7, 0xf0, 0x56, 0x38, 0xbc, 0xb3,
		0xe3, 0xfa, 0x07, 0x0e, 0x70, 0x95, 0x03, 0x84, 0x18, 0x2e, 0x75, 0x80, 0xf7, 0x4a, 0xd7, 0xaa,
		0x9c, 0xe1, 0xca, 0x67, 0xb8, 0xcd, 0x19, 0x2e, 0x7e, 0x86, 0x5f, 0xea, 0x87, 0xba, 0x09, 0x43,
		0x51, 0x09, 0xa7, 0x6b, 0x5f, 0xb1, 0x25, 0xa0, 0xa1, 0x15, 0x93, 0x44, 0xe7, 0x2d, 0xc1, 0xe9,
		0xa5, 0xb9, 0x32, 0x8e, 0x05, 0x09, 0xdd, 0x06, 0x69, 0x8c, 0x38, 0x93, 0x1c, 0x69, 0x76, 0xca,
		0xbd, 0xf8, 0x5c, 0x01, 0xdc, 0x8b, 0x2f, 0xf5, 0xd6, 0xb9, 0x17, 0xf7, 0xdf, 0x3f, 0x14, 0xfe,
		0x5e, 0x5c, 0x7e, 0x04, 0x98, 0xf0, 0xc8, 0xaf, 0x62, 0xb8, 0xe8, 0xae, 0x49, 0x9a, 0x61, 0xa3,
		0x7d, 0x7d, 0xdd, 0x4b, 0xe2, 0xec, 0xfb, 0xa0, 0x3d, 0x46, 0xde, 0x5d, 0xcf, 0x13, 0x8a, 0x8b,
		0xc2, 0x45, 0xe1, 0xa2, 0x70, 0x51, 0x05, 0x72, 0x51, 0x2a, 0x08, 0x36, 0xe5, 0xa9, 0xaa, 0x82,
		0x32, 0xf6, 0x93, 0xde, 0xb5, 0xbc, 0x65, 0x9e, 0xb4, 0x8f, 0xb3, 0x34, 0x4e, 0x2e, 0x75, 0x1a,
		0xec, 0x36, 0x06, 0xd9, 0x9e, 0x93, 0xdd, 0xc3, 0xf7, 0xbb, 0x47, 0xef, 0x35, 0xfa, 0xea, 0x36,
		0xfb, 0x02, 0xf7, 0xff, 0x79, 0xb2, 0x7f, 0xf8, 0x7e, 0x5f, 0x45, 0xe0, 0xd6, 0x20, 0xa9, 0xba,
		0x7b, 0xf4, 0xe7, 0xbe, 0x86, 0xb4, 0x57, 0x7d, 0x69, 0xef, 0x3e, 0x9d, 0xfc, 0x43, 0x43, 0x58,
		0xb5, 0x2f, 0xec, 0xf0, 0xd3, 0xa1, 0xf0, 0x45, 0x85, 0xf4, 0x80, 0x99, 0x93, 0x76, 0x2d, 0xd1,
		0x19, 0x8a, 0x3a, 0x7c, 0x33, 0x6f, 0x83, 0x57, 0x0a, 0x2f, 0x27, 0xd7, 0x71, 0xf1, 0x85, 0xcd,
		0x03, 0x71, 0x43, 0x0d, 0x17, 0xdf, 0xd9, 0x3c, 0x84, 0xf7, 0xbe, 0xca, 0xbd, 0x0d, 0xaa, 0x1a,
		0x4b, 0x94, 0xc7, 0xd0, 0xf4, 0x36, 0xd8, 0xa0, 0x23, 0x55, 0x81, 0x1c, 0x1c, 0xc4, 0xdd, 0x6c,
		0x37, 0xcb, 0x64, 0xd7, 0x04, 0x57, 0x3e, 0xc6, 0xc9, 0x7e, 0xcb, 0xf4, 0xe9, 0x99, 0xf0, 0xe0,
		0xb6, 0xca, 0xc7, 0xe8, 0x76, 0x42, 0xd2, 0xe6, 0xef, 0xd5, 0xea, 0xf6, 0x4e, 0xb5, 0xba, 0xb1,
		0xf3, 0x6a, 0x67, 0xe3, 0xcd, 0xeb, 0xd7, 0x9b, 0xdb, 0xa2, 0xf5, 0xde, 0x9f, 0xd2, 0xa6, 0x49,
		0x4d, 0xf3, 0xdd, 0xf7, 0xca, 0xdb, 0x20, 0xe9, 0xb5, 0x5a, 0x1a, 0xa2, 0x3e, 0x77, 0x4d, 0x2a,
		0x3a, 0x89, 0xae, 0x18, 0x61, 0x7b, 0xd6, 0xce, 0xa2, 0x56, 0xd8, 0x89, 0xb2, 0xab, 0xae, 0x7c,
		0xb8, 0x3e, 0x29, 0x8c, 0x30, 0x9d, 0x30, 0x9d, 0x30, 0x9d, 0x30, 0xbd, 0x40, 0x61, 0xba, 0xf8,
		0xba, 0x66, 0x85, 0xf5, 0xcc, 0x4a, 0x13, 0xa7, 0x15, 0x62, 0x14, 0xcd, 0x89, 0xd2, 0xda, 0x13,
		0xa4, 0x9d, 0x0d, 0xed, 0xd5, 0x1f, 0xd2, 0xab, 0xb1, 0x5e, 0x44, 0x73, 0x02, 0xb4, 0xb3, 0x75,
		0xc8, 0xeb, 0xa4, 0x33, 0x05, 0x0d, 0x71, 0x4f, 0x09, 0x34, 0x06, 0xec, 0xcc, 0xe8, 0xc5, 0x1a,
		0x63, 0x79, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b,
		0x84, 0x1b, 0x84, 0x1b, 0xe8, 0x0c, 0xe1, 0x86, 0x27, 0xe1, 0x06, 0x33, 0x5e, 0x1d, 0xce, 0x78,
		0x15, 0x5a, 0xd0, 0xe2, 0x6e, 0xb0, 0xab, 0xfd, 0x6d, 0x2b, 0x7e, 0xce, 0x73, 0xed, 0x75, 0x4d,
		0x78, 0xdd, 0x6b, 0x65, 0x71, 0xa7, 0x65, 0x84, 0x6e, 0xf0, 0xee, 0xb8, 0xe8, 0xac, 0xac, 0x82,
		0x4d, 0x7a, 0xdd, 0x60, 0xd2, 0xab, 0x5e, 0xa4, 0xcc, 0xa4, 0xd7, 0x12, 0x3a, 0x42, 0xb1, 0x49,
		0xaf, 0x8d, 0xb1, 0x8d, 0x0a, 0xa7, 0x04, 0x47, 0x72, 0x64, 0x53, 0x81, 0x9b, 0xa4, 0x02, 0x1d,
		0x02, 0x9b, 0x16, 0xc0, 0xa9, 0x03, 0x9d, 0x3a, 0xe0, 0xa9, 0x02, 0x9f, 0x6c, 0x2c, 0x24, 0x95,
		0x0a, 0x94, 0x02, 0xc4, 0x5c, 0x80, 0x74, 0xdb, 0xf3, 0x8c, 0x5d, 0xca, 0xb6, 0x3f, 0xdf, 0x1d,
		0x9c, 0x42, 0x1b, 0x74, 0x2e, 0x4c, 0xb0, 0x1d, 0x3a, 0x0f, 0xb4, 0x85, 0xcf, 0x4b, 0xf6, 0x96,
		0x49, 0xcd, 0xc5, 0x68, 0xba, 0x1a, 0x7d, 0x97, 0xa3, 0xed, 0x7a, 0x9c, 0xb9, 0x20, 0x67, 0xae,
		0xc8, 0x89, 0x4b, 0x92, 0x4f, 0xd3, 0x05, 0x1a, 0xbd, 0x23, 0xd2, 0xb7, 0x56, 0x33, 0xf6, 0x26,
		0xdf, 0x76, 0x3d, 0xc3, 0xbc, 0x37, 0xe9, 0x7c, 0x50, 0x60, 0x3d, 0x6b, 0xb2, 0x62, 0x77, 0x36,
		0xe3, 0xf5, 0x52, 0x34, 0x7e, 0x0c, 0x5c, 0xe6, 0x4c, 0x3f, 0x77, 0xcd, 0xc7, 0xd1, 0xb3, 0xd6,
		0xfb, 0x8f, 0x7a, 0x36, 0xa2, 0x02, 0xeb, 0x3c, 0x72, 0xa8, 0xef, 0x55, 0xe4, 0xe7, 0x0d, 0xc9,
		0x71, 0x12, 0x12, 0x12, 0x24, 0x24, 0x48, 0x48, 0x90, 0x90, 0xb0, 0x29, 0x40, 0x38, 0x53, 0x3b,
		0x63, 0x96, 0xe2, 0x1e, 0x57, 0x01, 0x28, 0x09, 0xaf, 0x09, 0xaf, 0x09, 0xaf, 0xcb, 0x1d, 0x5e,
		0x4b, 0x03, 0x6f, 0x2e, 0x28, 0x6a, 0xb5, 0xda, 0xdf, 0xee, 0xe2, 0x92, 0xa8, 0xab, 0x67, 0x07,
		0xf9, 0xa2, 0xc4, 0x99, 0x9f, 0xa0, 0xa4, 0x96, 0x9a, 0x59, 0xe3, 0x5c, 0xa8, 0x42, 0xf6, 0x78,
		0xfc, 0x39, 0x55, 0x3a, 0x47, 0x9d, 0x6c, 0xb2, 0xba, 0xdb, 0x73, 0xe1, 0xfe, 0xdc, 0xb9, 0x41,
		0x57, 0xee, 0xd0, 0xb9, 0x5b, 0x74, 0xee, 0x1e, 0x9d, 0xba, 0x49, 0x1d, 0x77, 0xa9, 0xe4, 0x36,
		0xf3, 0x93, 0x54, 0xcb, 0x4e, 0xcf, 0xd8, 0xab, 0x5e, 0x96, 0x7a, 0x26, 0xda, 0xd8, 0x7c, 0x56,
		0x0e, 0x45, 0xd1, 0xa8, 0xa8, 0xbf, 0x8e, 0x6e, 0xe3, 0xeb, 0xde, 0xb5, 0xf0, 0x9c, 0x92, 0x07,
		0xb5, 0x64, 0x5a, 0x7c, 0x99, 0xe9, 0xce, 0x26, 0x54, 0x07, 0xaa, 0x03, 0xd5, 0x81, 0xea, 0x40,
		0x75, 0xca, 0x46, 0x75, 0xc4, 0xdb, 0x49, 0x1f, 0x42, 0xdf, 0x1d, 0x45, 0x91, 0x3a, 0xed, 0xa6,
		0xf7, 0x3f, 0xba, 0x78, 0x14, 0x68, 0xb7, 0xa3, 0xce, 0x08, 0x57, 0x6e, 0x4f, 0x9d, 0x91, 0xef,
		0xaa, 0xf5, 0x70, 0xd6, 0xb6, 0xb4, 0x5b, 0x11, 0x1d, 0xc1, 0xd6, 0xb4, 0xea, 0x45, 0xb7, 0xee,
		0x55, 0x4f, 0xbb, 0xdd, 0x15, 0x1d, 0x74, 0xec, 0xa0, 0xf5, 0xa5, 0x9d, 0x96, 0x25, 0x40, 0x2f,
		0xf4, 0xd5, 0x8a, 0x52, 0xb9, 0x59, 0x2e, 0xcf, 0xbf, 0xb2, 0x33, 0xd3, 0xff, 0x2f, 0x54, 0x6e,
		0xc2, 0x03, 0xaf, 0x6a, 0xd0, 0xf6, 0xcf, 0x2f, 0x3b, 0xa2, 0x85, 0x68, 0xf2, 0x06, 0x22, 0x68,
		0x1c, 0x95, 0x56, 0x9c, 0xfc, 0x2b, 0x3c, 0x8f, 0x92, 0xe6, 0xb7, 0xb8, 0x99, 0x5d, 0x85, 0xe6,
		0x36, 0xbb, 0xdb, 0x84, 0xa3, 0x57, 0xa1, 0xf1, 0xe8, 0xaf, 0xa0, 0x6e, 0xc3, 0xd7, 0x6c, 0x0e,
		0x75, 0x1b, 0xe5, 0xcb, 0xd6, 0x50, 0xb7, 0xb1, 0xf0, 0x89, 0xa9, 0xd5, 0x6d, 0x28, 0x15, 0xce,
		0xcd, 0x98, 0xb7, 0x1a, 0x6d, 0x50, 0x04, 0x64, 0x75, 0x60, 0x76, 0x01, 0xd0, 0xee, 0x80, 0xda,
		0x15, 0x60, 0x3b, 0x07, 0x6e, 0xe7, 0x00, 0xee, 0x14, 0xc8, 0x75, 0xe3, 0x6b, 0xad, 0x74, 0xbb,
		0x16, 0xc0, 0xe7, 0x02, 0xb5, 0x5a, 0xb6, 0x1f, 0xc4, 0x09, 0x9d, 0x16, 0xee, 0x87, 0xa0, 0x5f,
		0x39, 0x09, 0xa6, 0xee, 0x02, 0x5c, 0xba, 0x02, 0xf7, 0x2e, 0xc1, 0xb5, 0x6b, 0xf0, 0xc6, 0x45,
		0x78, 0xe3, 0x2a, 0xbc, 0x70, 0x19, 0xba, 0xae, 0x43, 0xd9, 0x85, 0xe4, 0x27, 0xac, 0x7e, 0x73,
		0x3b, 0x63, 0xef, 0xfa, 0xc5, 0x6a, 0x33, 0xcc, 0x7e, 0xb3, 0xa4, 0xb9, 0xfe, 0x72, 0xb1, 0x1e,
		0xe5, 0x9c, 0x79, 0x2e, 0xd7, 0xd3, 0xdc, 0xf9, 0x63, 0x39, 0xca, 0x97, 0xaa, 0x11, 0x72, 0xe0,
		0x5f, 0x82, 0xfd, 0x20, 0x4e, 0xfe, 0xf5, 0x6e, 0x7c, 0x36, 0xfb, 0xb7, 0xd9, 0xde, 0xf8, 0x64,
		0x54, 0x52, 0xef, 0x7a, 0xf6, 0xf7, 0x43, 0xe5, 0xea, 0x24, 0xca, 0x8c, 0x7e, 0x92, 0x47, 0x6a,
		0x84, 0xab, 0x57, 0x39, 0x9e, 0x2d, 0x72, 0x3c, 0xe4, 0x78, 0xc8, 0xf1, 0xc0, 0x76, 0xc8, 0xf1,
		0x90, 0xe3, 0x21, 0xc7, 0x43, 0x8e, 0x87, 0x1c, 0x0f, 0x39, 0x1e, 0x72, 0x3c, 0xe4, 0x78, 0xc8,
		0xf1, 0x90, 0xe3, 0xf9, 0x49, 0x8e, 0x47, 0x33, 0x40, 0x2e, 0x54, 0x8a, 0x47, 0x60, 0x57, 0x8a,
		0xc3, 0x0c, 0x0f, 0x75, 0xce, 0xe5, 0xb6, 0xe3, 0xf5, 0xab, 0x7e, 0x7e, 0xd0, 0x72, 0x29, 0x88,
		0x9e, 0xf7, 0xea, 0x34, 0xb2, 0xaf, 0xaa, 0x59, 0x57, 0xf5, 0x12, 0xe7, 0x2d, 0x4a, 0x9c, 0x8b,
		0x13, 0x32, 0x53, 0xe2, 0x4c, 0x89, 0xf3, 0x4f, 0x4f, 0x8c, 0xd1, 0x74, 0x0a, 0x3f, 0x80, 0xd1,
		0x74, 0x56, 0xdd, 0x1d, 0xf3, 0x5a, 0x8a, 0xec, 0x06, 0x5d, 0xb9, 0x43, 0xe7, 0x6e, 0xd1, 0xb9,
		0x7b, 0x74, 0xea, 0x26, 0xcb, 0x99, 0x66, 0x63, 0x34, 0x5d, 0x91, 0x33, 0x42, 0x8c, 0xa6, 0x2b,
		0x0f, 0xdd, 0x61, 0x34, 0x1d, 0x54, 0x07, 0xaa, 0x03, 0xd5, 0x81, 0xea, 0x94, 0x8e, 0xea, 0x30,
		0x9a, 0x4e, 0xec, 0xc3, 0x68, 0x3a, 0x5d, 0xf9, 0x8c, 0x05, 0x53, 0x86, 0xad, 0x69, 0xd5, 0x63,
		0x34, 0x1d, 0x3a, 0xa8, 0xee, 0xa0, 0xf5, 0xa5, 0x31, 0x9a, 0xce, 0x03, 0x04, 0xa2, 0x64, 0x63,
		0x58, 0xb2, 0xa1, 0x55, 0x5d, 0xe5, 0x59, 0x6d, 0x86, 0x42, 0xed, 0x14, 0x2b, 0x87, 0x55, 0x0d,
		0xcd, 0x53, 0x03, 0x5b, 0x8b, 0x85, 0xc3, 0xfb, 0x62, 0x81, 0x7b, 0x31, 0xd6, 0x0d, 0xc7, 0x2a,
		0xeb, 0x86, 0x63, 0xd6, 0x0d, 0x3f, 0x28, 0x80, 0x75, 0xc3, 0x4b, 0xbd, 0x75, 0xd6, 0x0d, 0xaf,
		0xad, 0x5b, 0x66, 0xdd, 0xb0, 0x87, 0x40, 0xa9, 0x06, 0x98, 0x9a, 0xc0, 0xa9, 0x0f, 0xa0, 0xda,
		0x40, 0xea, 0x0c, 0x50, 0x9d, 0x01, 0xab, 0x13, 0x80, 0x2d, 0x47, 0xe2, 0x41, 0xad, 0xa6, 0x93,
		0xe2, 0x06, 0x9d, 0x0f, 0xc5, 0x0d, 0x85, 0x70, 0x75, 0x2e, 0x5c, 0x9e, 0x3b, 0xd7, 0xe7, 0xca,
		0x05, 0x3a, 0x77, 0x85, 0xce, 0x5d, 0xa2, 0x53, 0xd7, 0xa8, 0xe3, 0x22, 0x95, 0x5c, 0x65, 0x7e,
		0x92, 0x14, 0x37, 0x88, 0x8a, 0xa4, 0xb8, 0x41, 0x43, 0x38, 0xc5, 0x0d, 0x63, 0xdb, 0xa2, 0xb8,
		0xc1, 0x91, 0xea, 0x51, 0xdc, 0xe0, 0x8f, 0x0e, 0x52, 0xdc, 0xe0, 0xf5, 0xf3, 0x50, 0xdc, 0xb0,
		0x88, 0x3c, 0xff, 0xee, 0x5e, 0xe3, 0x35, 0xdd, 0xbb, 0x57, 0x63, 0xef, 0xde, 0x63, 0xef, 0x89,
		0xbd, 0x7b, 0x5c, 0x60, 0x14, 0x28, 0x8b, 0xc3, 0x05, 0x46, 0x29, 0xb3, 0x34, 0x5c, 0x60, 0x3c,
		0x49, 0x10, 0x7b, 0xf7, 0x0a, 0x0c, 0xcc, 0x2e, 0x00, 0xda, 0x1d, 0x50, 0xbb, 0x02, 0x6c, 0xe7,
		0xc0, 0xed, 0x1c, 0xc0, 0x9d, 0x02, 0xb9, 0x6e, 0x7c, 0xcd, 0x4c, 0x76, 0x29, 0x9c, 0x60, 0x26,
		0x7b, 0x59, 0x5d, 0x81, 0x7b, 0x97, 0xe0, 0xda, 0x35, 0x78, 0xe3, 0x22, 0xbc, 0x71, 0x15, 0x5e,
		0xb8, 0x0c, 0x5d, 0xd7, 0xa1, 0xec, 0x42, 0xf2, 0x13, 0x66, 0x26, 0x3b, 0x33, 0xd9, 0x0b, 0xc2,
		0x7a, 0x98, 0xc9, 0x3e, 0x95, 0x3b, 0x67, 0xef, 0xde, 0x23, 0x09, 0x76, 0xf6, 0xee, 0xd9, 0x7c,
		0xb3, 0xec, 0xdd, 0x93, 0x22, 0xf8, 0xec, 0xdd, 0x23, 0xc7, 0x43, 0x8e, 0x07, 0xb6, 0x43, 0x8e,
		0x87, 0x1c, 0x0f, 0x39, 0x1e, 0x72, 0x3c, 0xe4, 0x78, 0xc8, 0xf1, 0x90, 0xe3, 0x21, 0xc7, 0x43,
		0x8e, 0x87, 0x1c, 0x0f, 0x7b, 0xf7, 0x96, 0x4c, 0xf1, 0xb0, 0x77, 0xcf, 0x17, 0xbb, 0xa6, 0xce,
		0xf9, 0xe7, 0x76, 0xbc, 0x7e, 0xd5, 0xcf, 0xec, 0xdd, 0x5b, 0xe8, 0xd5, 0xb1, 0x77, 0x6f, 0xd5,
		0x10, 0x9b, 0xbd, 0x7b, 0x05, 0x0a, 0x99, 0x29, 0x71, 0xa6, 0xc4, 0xf9, 0xa7, 0x27, 0xc6, 0x8c,
		0x16, 0xc9, 0xc3, 0x65, 0x46, 0x8b, 0x2d, 0x17, 0xc7, 0x8c, 0x96, 0x22, 0xbb, 0x3e, 0x57, 0x2e,
		0xd0, 0xb9, 0x2b, 0x74, 0xee, 0x12, 0x9d, 0xba, 0xc6, 0x72, 0xa6, 0xd6, 0x98, 0xd1, 0x22, 0x2a,
		0x92, 0x19, 0x2d, 0x1a, 0xc2, 0x99, 0xd1, 0x32, 0xb6, 0x2d, 0x66, 0xb4, 0x38, 0x52, 0x3d, 0x66,
		0xb4, 0xf8, 0xa3, 0x83, 0xcc, 0x68, 0xf1, 0xfa, 0x79, 0xb8, 0xbb, 0x58, 0x44, 0x9e, 0xa7, 0x77,
		0x17, 0xeb, 0xb7, 0x80, 0xa6, 0xc6, 0x02, 0x1a, 0x4d, 0x83, 0x5b, 0xe3, 0x05, 0x34, 0xf1, 0xba,
		0x2c, 0xa0, 0xa9, 0xad, 0xf9, 0x02, 0x1a, 0xd9, 0x5b, 0x3c, 0x95, 0xdb, 0x3b, 0xb5, 0x15, 0x34,
		0x5b, 0xac, 0xa0, 0x79, 0x82, 0x24, 0x56, 0xd0, 0x14, 0x31, 0xc5, 0xc8, 0x0a, 0x9a, 0x29, 0x01,
		0x5a, 0x3d, 0x07, 0xca, 0x3d, 0x06, 0xaa, 0x37, 0x68, 0x95, 0x41, 0xec, 0x2d, 0xcb, 0x54, 0x4f,
		0x75, 0x0a, 0x42, 0x36, 0x98, 0x79, 0xe7, 0xb1, 0xcb, 0xd1, 0x76, 0x3d, 0xce, 0x5c, 0x90, 0x33,
		0x57, 0xe4, 0xc4, 0x25, 0x95, 0x23, 0x59, 0xa3, 0x76, 0xbb, 0xe5, 0xa0, 0xa7, 0x41, 0xa9, 0x87,
		0x81, 0x74, 0xc4, 0xba, 0xa7, 0x23, 0xa4, 0x53, 0x7d, 0xfe, 0xe4, 0x23, 0x04, 0xb3, 0x7b, 0x02,
		0x09, 0x89, 0x67, 0x1e, 0x9b, 0x8d, 0xb4, 0xb9, 0xf8, 0x67, 0x26, 0x15, 0x91, 0xfc, 0x90, 0x1f,
		0x86, 0x61, 0xd7, 0x24, 0xec, 0x29, 0xae, 0x9d, 0x6f, 0xb2, 0xa4, 0xfa, 0x7d, 0x42, 0xda, 0x7f,
		0x4d, 0x63, 0x1d, 0x09, 0x07, 0xef, 0xcd, 0xd2, 0x77, 0x1f, 0xc4, 0xdd, 0x6c, 0x37, 0xcb, 0xec,
		0x06, 0xde, 0x95, 0x8f, 0x71, 0xb2, 0xdf, 0x32, 0x7d, 0x4a, 0x69, 0xf9, 0xc2, 0xb8, 0xf2, 0x31,
		0xba, 0x9d, 0xf8, 0xe6, 0xcd, 0xdf, 0xab, 0xd5, 0xed, 0x9d, 0x6a, 0x75, 0x63, 0xe7, 0xd5, 0xce,
		0xc6, 0x9b, 0xd7, 0xaf, 0x37, 0xb7, 0x37, 0x2d, 0x5e, 0x93, 0x57, 0x3e, 0xa5, 0x4d, 0x93, 0x9a,
		0xe6, 0xbb, 0xfe, 0xf1, 0x27, 0xbd, 0x56, 0x4b, 0xe2, 0xab, 0x3f, 0x77, 0x4d, 0x6a, 0xf5, 0x46,
		0xdb, 0x96, 0xd6, 0x09, 0x01, 0xad, 0x63, 0x80, 0xb5, 0x88, 0xa6, 0xae, 0x50, 0xd4, 0x0e, 0x68,
		0xae, 0x0e, 0x71, 0xab, 0x7d, 0xc3, 0x8a, 0x6a, 0x6a, 0x5b, 0x3d, 0xdd, 0xa8, 0xa5, 0x05, 0x6d,
		0xd4, 0xd6, 0xc2, 0xd5, 0xb4, 0x6f, 0x79, 0x9d, 0x59, 0x41, 0x5f, 0x2a, 0x51, 0xa7, 0xd3, 0xfa,
		0x1e, 0x76, 0xda, 0xad, 0xb8, 0xb1, 0xfa, 0x56, 0x8f, 0x3c, 0x22, 0x9f, 0xfa, 0xd6, 0x15, 0xb5,
		0xd9, 0xce, 0x65, 0x97, 0xb5, 0x8c, 0xa3, 0xcd, 0x8c, 0xe2, 0x64, 0xc6, 0x30, 0xed, 0xb4, 0x5b,
		0x36, 0x74, 0xde, 0x72, 0x4a, 0x50, 0x2c, 0xe5, 0x27, 0x96, 0xd2, 0xbb, 0x9f, 0xb2, 0x1b, 0x1c,
		0x6c, 0xc1, 0x11, 0xdd, 0xd6, 0xf5, 0x8f, 0xed, 0x3d, 0x11, 0x32, 0x7b, 0x20, 0x2c, 0xdf, 0x6f,
		0x5b, 0xbf, 0x6c, 0x90, 0xb8, 0x54, 0x10, 0x80, 0x02, 0x29, 0x48, 0x10, 0x87, 0x06, 0x71, 0x88,
		0x90, 0x85, 0x0a, 0x3f, 0x23, 0x65, 0xdb, 0x37, 0xc8, 0x95, 0xe6, 0xf0, 0x66, 0x35, 0x34, 0xb7,
		0x9d, 0x76, 0x9a, 0xd9, 0xa2, 0x10, 0x0f, 0xda, 0xc5, 0x7c, 0x71, 0x96, 0xf5, 0x41, 0xf2, 0xb6,
		0xb8, 0x72, 0xb4, 0xff, 0x5f, 0xfb, 0x7b, 0x27, 0x67, 0x47, 0x9f, 0x3e, 0x9f, 0xec, 0xdb, 0xcd,
		0xee, 0x58, 0xbe, 0x14, 0x16, 0xba, 0x04, 0x16, 0xbb, 0xf4, 0x95, 0xbc, 0xe4, 0x15, 0xc4, 0x65,
		0x69, 0x7c, 0x56, 0xc3, 0x69, 0x35, 0xbc, 0xd6, 0xc1, 0x6d, 0xfb, 0x39, 0xd3, 0x40, 0x20, 0xd9,
		0x2f, 0x76, 0xcd, 0x3a, 0x83, 0xb8, 0x43, 0xa8, 0x0d, 0xb3, 0xbe, 0x40, 0x01, 0xed, 0x1f, 0x93,
		0xbd, 0xaa, 0xc0, 0x77, 0xef, 0x27, 0xbd, 0x6b, 0x39, 0xbb, 0x3a, 0x69, 0x1f, 0x67, 0x69, 0x9c,
		0xc8, 0xae, 0x5d, 0xab, 0x6c, 0xf4, 0xdf, 0xc5, 0xee, 0xde, 0xde, 0x7e, 0x7d, 0xec, 0x3b, 0x04,
		0xaf, 0x05, 0x37, 0xfb, 0xc2, 0xe4, 0x1c, 0x95, 0x90, 0x31, 0x4c, 0xbc, 0x91, 0xda, 0x00, 0x14,
		0x04, 0x5f, 0xc7, 0xd4, 0x9b, 0x10, 0xad, 0x5f, 0x9a, 0x7e, 0x0f, 0x6f, 0x83, 0xcd, 0xf5, 0xbc,
		0x24, 0x7d, 0xe6, 0xa1, 0xd2, 0xe5, 0xd8, 0x18, 0x5f, 0xab, 0x92, 0xdf, 0x69, 0x71, 0x90, 0x5f,
		0xc8, 0x2f, 0xe4, 0x17, 0xf2, 0x0b, 0xf9, 0x85, 0xfc, 0x42, 0x7e, 0x21, 0xbf, 0x90, 0x5f, 0xc8,
		0xaf, 0xec, 0x37, 0x51, 0x40, 0x33, 0x51, 0xa9, 0x30, 0x71, 0xc7, 0x6d, 0x7f, 0xcb, 0x9b, 0x5a,
		0xed, 0x42, 0xff, 0x29, 0xea, 0x83, 0x87, 0xb0, 0xba, 0x90, 0xcd, 0x42, 0x0d, 0x8d, 0x95, 0x02,
		0x10, 0x9b, 0xcd, 0xbe, 0x22, 0xcd, 0xbd, 0x62, 0x97, 0x9d, 0x5b, 0x5c, 0x76, 0x16, 0x29, 0x8e,
		0xe0, 0xb2, 0x93, 0xcb, 0x4e, 0x2e, 0x3b, 0xc9, 0xf7, 0x90, 0xef, 0x21, 0xdf, 0x43, 0xbe, 0x87,
		0x7c, 0x0f, 0xf9, 0x1e, 0xf2, 0x3d, 0xe4, 0x7b, 0xc8, 0xf7, 0xb8, 0x57, 0x3a, 0x2e, 0x3b, 0x21,
		0xbf, 0x90, 0x5f, 0xc8, 0x2f, 0xe4, 0x17, 0xf2, 0x0b, 0xf9, 0x85, 0xfc, 0x42, 0x7e, 0x21, 0xbf,
		0x9e, 0x93, 0x5f, 0x2e, 0x3b, 0x25, 0x2f, 0x3b, 0x6d, 0x0f, 0x27, 0x72, 0x71, 0xd7, 0x69, 0x71,
		0xec, 0x10, 0xe3, 0x02, 0xfc, 0xd0, 0xcb, 0x22, 0x4d, 0x0c, 0xb8, 0xd3, 0xc4, 0x22, 0x0e, 0x0d,
		0xe8, 0x9f, 0x89, 0x69, 0x9a, 0xd4, 0x8e, 0xd2, 0x4c, 0x35, 0x11, 0xdf, 0x7d, 0x2d, 0x63, 0x03,
		0x9e, 0x12, 0xa9, 0xda, 0x19, 0x34, 0xca, 0xd4, 0x00, 0x91, 0x41, 0x9f, 0x0c, 0x0d, 0xf8, 0xa9,
		0xbd, 0x33, 0x34, 0xc0, 0x2b, 0x20, 0x90, 0xce, 0x54, 0x95, 0xaf, 0x8c, 0xc6, 0xea, 0x44, 0xe0,
		0x92, 0x57, 0xd1, 0xc4, 0x4d, 0x93, 0x64, 0xf1, 0x45, 0x6c, 0x52, 0xb9, 0xdb, 0x83, 0x09, 0x19,
		0xe4, 0xca, 0x35, 0x72, 0xe5, 0x32, 0xa3, 0xce, 0x49, 0x95, 0x7b, 0x05, 0x4c, 0x42, 0x19, 0x9f,
		0xc2, 0x65, 0xca, 0xa3, 0x6e, 0x98, 0xf4, 0xae, 0xcf, 0xad, 0x83, 0x4b, 0x20, 0xbb, 0x2b, 0x57,
		0x78, 0x27, 0xae, 0x60, 0x12, 0x56, 0x63, 0xc7, 0xad, 0xd6, 0x2e, 0x5b, 0xf5, 0x7d, 0xa1, 0x7a,
		0x7b, 0x41, 0x05, 0x97, 0x0a, 0xa8, 0xec, 0x9a, 0x55, 0xdf, 0x29, 0x5b, 0x66, 0x5d, 0x28, 0xc8,
		0xed, 0xc5, 0xe9, 0x1a, 0x94, 0xee, 0x5c, 0x9b, 0xbe, 0xb3, 0x0a, 0xa3, 0xae, 0x1c, 0xe1, 0xbe,
		0x13, 0x01, 0xdf, 0x86, 0x6f, 0xc3, 0xb7, 0xe1, 0xdb, 0xf0, 0x6d, 0xf8, 0x36, 0x7c, 0x1b, 0xbe,
		0x0d, 0xdf, 0x86, 0x6f, 0xcb, 0xf1, 0x6d, 0xcb, 0xbe, 0x4c, 0x64, 0xdb, 0xcb, 0x24, 0xac, 0xca,
		0x6c, 0x7d, 0x99, 0xb4, 0x5a, 0xb5, 0xed, 0x2f, 0xb9, 0x50, 0xb9, 0x2d, 0x30, 0xb3, 0x22, 0xac,
		0x6f, 0x83, 0x11, 0x88, 0xdc, 0xa8, 0x3b, 0xb3, 0x5c, 0xdf, 0x33, 0x55, 0x12, 0x52, 0xdc, 0x29,
		0x1b, 0x7b, 0x93, 0x8f, 0xc1, 0x9c, 0x8d, 0xa7, 0xb2, 0x7f, 0xe6, 0x6c, 0xf8, 0x9a, 0x36, 0xa0,
		0x3e, 0xc0, 0x49, 0x5a, 0x80, 0xfa, 0x80, 0x95, 0x4d, 0x81, 0xfa, 0x00, 0x41, 0xc0, 0x91, 0x07,
		0x1e, 0x69, 0x00, 0x52, 0x03, 0x22, 0x35, 0x40, 0x52, 0x01, 0x26, 0x99, 0xa8, 0x91, 0x7c, 0xe5,
		0x3c, 0x80, 0x21, 0x5f, 0x39, 0x1d, 0x58, 0x93, 0xaf, 0x2c, 0x40, 0x8e, 0x8a, 0x7c, 0x25, 0xba,
		0x20, 0xe2, 0x23, 0xe4, 0xbe, 0x95, 0xfa, 0x00, 0x2b, 0x2e, 0x91, 0xfa, 0x00, 0xf8, 0x36, 0x7c,
		0x1b, 0xbe, 0x0d, 0xdf, 0x86, 0x6f, 0xc3, 0xb7, 0xe1, 0xdb, 0xf0, 0x6d, 0xf8, 0xb6, 0x06, 0xdf,
		0xa6, 0x3e, 0xe0, 0xbe, 0xd5, 0x52, 0x1f, 0xe0, 0x3a, 0x72, 0xa3, 0x3e, 0x40, 0xb4, 0x3e, 0xa0,
		0xa8, 0x83, 0x69, 0xa6, 0xcb, 0x03, 0x18, 0x4d, 0x23, 0xa5, 0xa2, 0xee, 0x54, 0xb3, 0x40, 0xb3,
		0x69, 0xa6, 0x94, 0xb1, 0xa8, 0xd3, 0x69, 0x2c, 0x8c, 0xab, 0xb0, 0x3b, 0xa6, 0x82, 0x79, 0x34,
		0x2e, 0xb3, 0x4d, 0xcc, 0xa3, 0xf1, 0x00, 0xcc, 0xad, 0xcd, 0xa3, 0xb1, 0x98, 0xad, 0x9e, 0x48,
		0x24, 0x59, 0xae, 0x33, 0xdb, 0x60, 0x0e, 0x8d, 0x8d, 0x6f, 0xa6, 0xce, 0x4c, 0x13, 0x20, 0xfc,
		0x0c, 0x54, 0x3e, 0x46, 0x49, 0x33, 0xca, 0xda, 0xe9, 0x77, 0x8b, 0xe5, 0x9b, 0xd6, 0x53, 0xd3,
		0xa2, 0x29, 0x69, 0x81, 0x54, 0xb4, 0x50, 0x0a, 0x5a, 0x26, 0x37, 0x22, 0x77, 0xed, 0x24, 0x9c,
		0x6a, 0x56, 0x4b, 0x2b, 0xca, 0xa7, 0x13, 0x7f, 0xc8, 0x24, 0xa5, 0xe4, 0x5f, 0xad, 0x74, 0x0a,
		0xb9, 0x4c, 0xef, 0xd8, 0xd3, 0xc4, 0xd9, 0x69, 0x89, 0x7a, 0x25, 0xd2, 0x76, 0x2f, 0x33, 0x69,
		0x18, 0x37, 0xed, 0x93, 0xd8, 0xbb, 0xaf, 0x86, 0xcb, 0xc2, 0x65, 0xe1, 0xb2, 0x1e, 0x72, 0x59,
		0x39, 0xde, 0xd9, 0x6c, 0x67, 0x99, 0x69, 0x86, 0xff, 0xd7, 0x8b, 0x9a, 0x02, 0xcc, 0x73, 0xf3,
		0x77, 0x8b, 0xdf, 0x59, 0x8f, 0xb2, 0xcc, 0xa4, 0x89, 0x75, 0xf2, 0x59, 0xf9, 0xe5, 0xef, 0x8d,
		0xf0, 0xcd, 0xe9, 0x7f, 0xfe, 0xde, 0x0c, 0xdf, 0x9c, 0x0e, 0xff, 0x72, 0x73, 0xf0, 0xff, 0xfe,
		0xbd, 0xf5, 0xe3, 0x3f, 0x5b, 0x7f, 0x6f, 0x84, 0xd5, 0xd1, 0x9f, 0x6e, 0xbd, 0xfe, 0x7b, 0x23,
		0x7c, 0x7d, 0xfa, 0xeb, 0x2f, 0x5f, 0xbf, 0xbe, 0x58, 0xf4, 0xbf, 0xf9, 0xf5, 0xdf, 0xaf, 0x7e,
		0xd8, 0xd3, 0xce, 0x53, 0x9b, 0xc7, 0xfa, 0xe9, 0xb8, 0xf6, 0x4f, 0xb1, 0xb3, 0xfd, 0xdf, 0x5f,
		0xb4, 0x4e, 0xf7, 0xd7, 0xff, 0x57, 0xf1, 0x8d, 0x39, 0x58, 0xb2, 0x7e, 0x73, 0x9b, 0xa5, 0x51,
		0xd8, 0x4b, 0xba, 0x59, 0x74, 0xde, 0xb2, 0x8c, 0x03, 0xa9, 0xb9, 0x30, 0xa9, 0x49, 0x1a, 0x85,
		0x88, 0xe9, 0xc6, 0xa0, 0x75, 0xf4, 0x61, 0xaf, 0xba, 0xb5, 0xb3, 0x19, 0x84, 0xc1, 0x6e, 0xf0,
		0xae, 0x9d, 0x36, 0x4d, 0x1a, 0xfc, 0x19, 0x65, 0xe6, 0x5b, 0xf4, 0x3d, 0x18, 0xdf, 0x4d, 0x04,
		0xd5, 0xe0, 0x97, 0x77, 0x7f, 0xd6, 0xc3, 0xea, 0xaf, 0xbf, 0x7d, 0x4d, 0x8e, 0xcd, 0x80, 0x69,
		0x07, 0xd5, 0x17, 0x5b, 0x05, 0x2f, 0x72, 0xbc, 0x7b, 0x5d, 0x65, 0xaa, 0x73, 0x5c, 0xe5, 0x7d,
		0x12, 0xcd, 0x68, 0x47, 0x33, 0xdc, 0xed, 0xae, 0x70, 0xb7, 0x6b, 0x65, 0x10, 0x81, 0xe6, 0xa5,
		0xee, 0xaa, 0x23, 0x07, 0xdc, 0xdc, 0xe6, 0x8e, 0x77, 0xd3, 0x0d, 0x62, 0xdb, 0xb0, 0x19, 0x0f,
		0x1f, 0xd7, 0xde, 0xed, 0xee, 0x03, 0xdf, 0xcf, 0x6d, 0xaf, 0x5e, 0x80, 0xcc, 0x6d, 0x2f, 0xb7,
		0xbd, 0x0f, 0x7f, 0x11, 0xdb, 0x47, 0xc8, 0x94, 0x91, 0x29, 0x5b, 0xbf, 0x4c, 0x99, 0xf5, 0xe9,
		0x22, 0xe6, 0x36, 0x33, 0x69, 0x12, 0xb5, 0x6c, 0x53, 0x89, 0x07, 0xed, 0xe2, 0x21, 0x81, 0xf4,
		0x41, 0xd2, 0x07, 0xe9, 0x0c, 0xa2, 0xdc, 0xe6, 0x07, 0xe8, 0x83, 0x94, 0xd1, 0xf7, 0x5e, 0x9c,
		0x64, 0xbf, 0x0b, 0xf6, 0x40, 0xbe, 0xa6, 0x07, 0xf2, 0xee, 0x87, 0xab, 0xf6, 0x40, 0x6e, 0xd2,
		0xf7, 0xe6, 0x87, 0x15, 0x4f, 0xab, 0x80, 0x66, 0x0f, 0xe4, 0xd6, 0x6b, 0x9a, 0x1f, 0xfd, 0x70,
		0x0c, 0x72, 0xdf, 0xba, 0x0e, 0xc3, 0x46, 0xe2, 0x44, 0x99, 0x80, 0x3f, 0x24, 0x10, 0x02, 0x0e,
		0x01, 0x87, 0x80, 0x43, 0xc0, 0x21, 0xe0, 0x10, 0x70, 0x08, 0x38, 0x04, 0x1c, 0x02, 0x0e, 0x01,
		0x3f, 0x65, 0x66, 0xc4, 0x53, 0xa8, 0x44, 0x09, 0x66, 0x46, 0xcc, 0xbf, 0xf1, 0x2f, 0xee, 0x72,
		0x89, 0xf7, 0xc3, 0xe7, 0x39, 0xea, 0x3f, 0xce, 0xfb, 0xd1, 0xd3, 0xb0, 0x63, 0xe2, 0xa9, 0xc4,
		0x8d, 0x1d, 0x13, 0xbe, 0x46, 0x7c, 0xdc, 0x02, 0x3b, 0x89, 0xe8, 0xb8, 0x05, 0xb6, 0x6b, 0x17,
		0xdc, 0x02, 0x93, 0x84, 0x22, 0x09, 0x45, 0x12, 0x8a, 0x24, 0x14, 0x49, 0x28, 0x92, 0x50, 0x24,
		0xa1, 0x48, 0x42, 0x91, 0x84, 0x2a, 0x5c, 0x12, 0x8a, 0x5b, 0x60, 0x08, 0x38, 0x04, 0x1c, 0x02,
		0x0e, 0x01, 0x87, 0x80, 0x43, 0xc0, 0xe1, 0x5e, 0x10, 0x70, 0x94, 0x00, 0x02, 0xae, 0x48, 0xc0,
		0xb9, 0x05, 0xd6, 0xb9, 0x05, 0x2e, 0xea, 0x0a, 0x81, 0xb9, 0x97, 0xc0, 0x6c, 0x12, 0x90, 0x52,
		0x59, 0x0f, 0x54, 0xb5, 0x40, 0xd3, 0x27, 0xe6, 0x29, 0x67, 0x21, 0x67, 0x51, 0x7c, 0x4f, 0xa2,
		0xeb, 0xb8, 0x11, 0x26, 0x26, 0xbe, 0xbc, 0x3a, 0x6f, 0xa7, 0xe1, 0x30, 0x34, 0x34, 0x5d, 0x8b,
		0xe3, 0x28, 0x1e, 0x14, 0xc1, 0x44, 0x0a, 0xbd, 0x74, 0x03, 0x13, 0x29, 0x98, 0x48, 0xb1, 0x30,
		0x0c, 0xd8, 0xaf, 0x4d, 0x7a, 0x48, 0x10, 0x33, 0x2b, 0xfc, 0xcb, 0x4c, 0x52, 0xad, 0xe4, 0x24,
		0xf3, 0x58, 0xf2, 0x6a, 0x25, 0xcb, 0xc3, 0x6f, 0x66, 0xcc, 0xc0, 0x7a, 0xd1, 0xab, 0x00, 0xb0,
		0x88, 0x01, 0x8c, 0x24, 0xd0, 0xc8, 0x03, 0x8e, 0x34, 0xf0, 0xa8, 0x01, 0x90, 0x1a, 0x10, 0xa9,
		0x00, 0x92, 0x4c, 0x6e, 0xca, 0xf6, 0x55, 0x88, 0x6d, 0xa0, 0xca, 0xbf, 0xb8, 0x63, 0x4c, 0x1a,
		0x5e, 0xa6, 0xed, 0x5e, 0x47, 0x4e, 0x21, 0xc7, 0x26, 0x35, 0x21, 0x4b, 0x48, 0x51, 0x64, 0xee,
		0x74, 0xc5, 0x01, 0x4d, 0x03, 0xd8, 0xf4, 0x00, 0x4e, 0x0b, 0xe8, 0xd4, 0x01, 0x4f, 0x1d, 0xf8,
		0x54, 0x01, 0x50, 0x06, 0x08, 0x85, 0x00, 0x31, 0x3f, 0x19, 0xb1, 0x3b, 0xe2, 0x19, 0x7b, 0x69,
		0x99, 0xe8, 0x22, 0x35, 0x17, 0x92, 0x06, 0x33, 0xe6, 0x61, 0x3b, 0x82, 0x32, 0xea, 0xa3, 0x14,
		0xe8, 0x8b, 0x17, 0x2f, 0x27, 0xff, 0xef, 0x0e, 0x9b, 0xbb, 0x13, 0x7f, 0x3d, 0x6a, 0xb2, 0x9a,
		0xf8, 0x93, 0x70, 0x90, 0x7c, 0x2c, 0xc8, 0xed, 0x90, 0xc4, 0x0a, 0xa4, 0x8e, 0x2c, 0x44, 0xdf,
		0x39, 0x4b, 0x51, 0xea, 0x86, 0xa3, 0xc4, 0x51, 0xe2, 0x28, 0x71, 0x94, 0x12, 0xf6, 0x12, 0x77,
		0x42, 0x71, 0xed, 0xca, 0x5d, 0xe5, 0x1b, 0x41, 0x19, 0xa3, 0x23, 0xfb, 0x5b, 0x54, 0x65, 0x65,
		0x4d, 0xfe, 0xde, 0x8b, 0xb9, 0xa9, 0x86, 0x2a, 0x86, 0x1f, 0x08, 0x6d, 0x22, 0x7a, 0x8c, 0xd5,
		0x88, 0x6c, 0xd1, 0x79, 0x50, 0xa0, 0xd6, 0x6e, 0x9d, 0x97, 0xf9, 0x7f, 0xb4, 0x35, 0xfa, 0xa7,
		0xaf, 0xfe, 0xde, 0x08, 0xb7, 0x4e, 0x7f, 0xad, 0x88, 0x3f, 0xe7, 0xa9, 0xc6, 0x7b, 0x93, 0x5c,
		0x81, 0xf4, 0xa0, 0x54, 0xbd, 0xd5, 0x48, 0x0f, 0xbe, 0x3e, 0x9b, 0x3b, 0x93, 0x1e, 0x7c, 0x81,
		0xa2, 0x12, 0x7e, 0xfc, 0x56, 0x22, 0x5c, 0xdc, 0x06, 0x17, 0x2d, 0xe1, 0xe2, 0x40, 0xe1, 0xa3,
		0xf0, 0x62, 0x37, 0xfc, 0x70, 0xfa, 0xef, 0xcd, 0xdf, 0xaa, 0x3f, 0xde, 0xfe, 0xfa, 0xef, 0x9d,
		0x1f, 0xf7, 0xff, 0xf0, 0x3f, 0xf3, 0xfe, 0xb5, 0xcd, 0xdf, 0x76, 0x7e, 0xbc, 0x7d, 0xe0, 0x9f,
		0x6c, 0xff, 0x78, 0xfb, 0xc4, 0xef, 0x78, 0xfd, 0xe3, 0x97, 0x99, 0x7f, 0xb5, 0xff, 0xe7, 0x5b,
		0x0f, 0xfd, 0x07, 0xd5, 0x07, 0xfe, 0x83, 0x57, 0x0f, 0xfd, 0x07, 0xaf, 0x1e, 0xf8, 0x0f, 0x1e,
		0xfc, 0x49, 0x5b, 0x0f, 0xfc, 0x07, 0xaf, 0x7f, 0xfc, 0x67, 0xe6, 0xdf, 0xff, 0x65, 0xfe, 0xbf,
		0xba, 0xfd, 0xe3, 0xd7, 0xff, 0x3c, 0xf4, 0xcf, 0x76, 0x7e, 0xfc, 0xe7, 0xed, 0xaf, 0xbf, 0xbe,
		0xfc, 0x65, 0xb3, 0x8f, 0x42, 0xbf, 0x0f, 0x61, 0x69, 0xf3, 0x74, 0x06, 0xad, 0x06, 0xff, 0x8b,
		0xdf, 0x58, 0xdd, 0x6f, 0xa0, 0xdd, 0xde, 0x6a, 0x77, 0xf1, 0xbd, 0xea, 0xb3, 0x62, 0xfd, 0xee,
		0x1f, 0x6b, 0x76, 0x11, 0x27, 0x54, 0x4a, 0x9d, 0x7f, 0xbf, 0x6a, 0x9d, 0xea, 0x43, 0xb5, 0x8b,
		0x0f, 0xfd, 0x93, 0x97, 0x22, 0xe5, 0x07, 0x81, 0x66, 0x65, 0xeb, 0xf0, 0xc1, 0x0e, 0x47, 0xcf,
		0x55, 0x1f, 0x3d, 0xf0, 0xfc, 0x3f, 0xb7, 0x3a, 0x94, 0xcb, 0xbe, 0x7a, 0xdb, 0x6c, 0xf2, 0x15,
		0xca, 0x6a, 0xcb, 0x66, 0xb3, 0x69, 0xe1, 0xd5, 0xcc, 0x56, 0x53, 0xb7, 0xe2, 0x65, 0x36, 0x7a,
		0xdd, 0x5b, 0x78, 0xe5, 0xae, 0x65, 0x25, 0xaf, 0x63, 0x27, 0xaf, 0x61, 0xc7, 0x77, 0xac, 0x43,
		0x9d, 0x5f, 0x03, 0x67, 0x63, 0x77, 0x32, 0xe4, 0x8c, 0x46, 0xd8, 0x6e, 0x09, 0x0b, 0x34, 0x4a,
		0x24, 0xb7, 0x70, 0x35, 0xb8, 0x1a, 0x5c, 0xcd, 0x0a, 0x27, 0x40, 0x89, 0xa4, 0x43, 0xce, 0x2c,
		0xce, 0x9d, 0x35, 0x80, 0x4d, 0x0f, 0xe0, 0xb4, 0x80, 0x4e, 0x1d, 0xf0, 0xd4, 0x81, 0x4f, 0x15,
		0x00, 0x65, 0x93, 0x74, 0x94, 0x48, 0xba, 0xe5, 0xe4, 0xf3, 0xb8, 0x39, 0x25, 0x92, 0xfe, 0x24,
		0x93, 0x74, 0x92, 0x4a, 0x38, 0x4a, 0x1c, 0x25, 0x8e, 0x12, 0x47, 0x29, 0x6a, 0x2f, 0x94, 0x48,
		0x2e, 0xf2, 0xa1, 0x44, 0xd2, 0x12, 0xab, 0xa1, 0x44, 0xd2, 0xf2, 0x87, 0x12, 0x49, 0x4a, 0x24,
		0xf5, 0x1d, 0x95, 0x1b, 0x5c, 0xa4, 0x44, 0xd2, 0x16, 0x2e, 0x52, 0x44, 0x46, 0x89, 0x24, 0x25,
		0x92, 0x68, 0x37, 0x25, 0x92, 0x1e, 0x05, 0x95, 0x01, 0x25, 0x92, 0xb6, 0x12, 0x0c, 0x6b, 0x5d,
		0x22, 0x29, 0x51, 0x7d, 0x10, 0x78, 0x5b, 0x21, 0x69, 0x71, 0x62, 0xad, 0x7d, 0xe5, 0xf6, 0x6b,
		0xd6, 0xd8, 0x7f, 0x9b, 0xef, 0xf6, 0xc7, 0x49, 0x1e, 0xc4, 0xdd, 0x6c, 0x37, 0xcb, 0x2c, 0x4f,
		0x31, 0xfb, 0x18, 0x27, 0xfb, 0x2d, 0x73, 0x6d, 0x12, 0xdb, 0x43, 0xcd, 0x2b, 0x1f, 0xa3, 0xdb,
		0x89, 0x6f, 0xde, 0xfc, 0xbd, 0x5a, 0xdd, 0xde, 0xa9, 0x56, 0x37, 0x76, 0x5e, 0xed, 0x6c, 0xbc,
		0x79, 0xfd, 0x7a, 0x73, 0x7b, 0xd3, 0xe2, 0xc8, 0xf6, 0xca, 0xa7, 0xb4, 0x69, 0x52, 0xd3, 0x7c,
		0xd7, 0x3f, 0xf7, 0xa4, 0xd7, 0x6a, 0x49, 0x7c, 0xf5, 0xe7, 0xae, 0x49, 0xad, 0x4e, 0x63, 0x67,
		0xe6, 0xf7, 0x0a, 0xe8, 0x5b, 0xc4, 0x41, 0xe0, 0x8b, 0xe0, 0x2d, 0xb3, 0xc1, 0x0b, 0x3f, 0x1b,
		0x5c, 0x68, 0x5e, 0xb4, 0x07, 0x2a, 0x5b, 0xc4, 0x09, 0xe1, 0x97, 0x69, 0xd4, 0x30, 0x17, 0xbd,
		0x56, 0x98, 0x9a, 0x6e, 0x16, 0xa5, 0x99, 0xbd, 0xc1, 0xe0, 0x33, 0xdf, 0xcc, 0x3c, 0xf0, 0x9f,
		0x9e, 0x19, 0xf3, 0xc0, 0x99, 0x07, 0xfe, 0xf0, 0x13, 0x59, 0x9b, 0x07, 0x6e, 0x79, 0x48, 0xaf,
		0xcc, 0x70, 0x5e, 0xa6, 0x7d, 0x33, 0xed, 0x9b, 0x69, 0xdf, 0x56, 0x43, 0x22, 0xeb, 0xd3, 0xbe,
		0x4d, 0x12, 0x9d, 0xb7, 0x4c, 0x53, 0xae, 0x95, 0x65, 0x2c, 0x80, 0xbe, 0x49, 0x9a, 0x59, 0x9c,
		0x41, 0x90, 0x1a, 0x14, 0xa9, 0x40, 0x92, 0xfd, 0x34, 0x63, 0x50, 0xc8, 0xbe, 0xc9, 0xf3, 0x76,
		0xbb, 0x65, 0xa2, 0x44, 0xb2, 0x6f, 0x72, 0x73, 0x0d, 0x7a, 0x19, 0xaf, 0x4c, 0xab, 0x63, 0xd2,
		0xb0, 0x9d, 0xb4, 0xbe, 0xcb, 0xb9, 0x81, 0x49, 0x21, 0xb8, 0x02, 0x5c, 0x01, 0xae, 0x00, 0x57,
		0x80, 0x2b, 0xf0, 0xcd, 0x15, 0x8c, 0x12, 0x7d, 0x61, 0x16, 0x5f, 0x0b, 0x76, 0xb7, 0x4f, 0x49,
		0xc1, 0x19, 0xe0, 0x0c, 0x70, 0x06, 0x38, 0x03, 0x8b, 0xfa, 0xde, 0x8b, 0x93, 0x6c, 0x73, 0x5b,
		0xd0, 0x17, 0x6c, 0x0b, 0x7c, 0xf5, 0x51, 0x94, 0x5c, 0xca, 0xf5, 0xa1, 0x08, 0x36, 0x04, 0x7d,
		0x8c, 0x13, 0xbd, 0x85, 0xf8, 0x1b, 0xac, 0xc3, 0xf7, 0xc3, 0x8c, 0xa7, 0x55, 0x20, 0xba, 0xd5,
		0x53, 0x81, 0xea, 0xc6, 0x9b, 0x6d, 0xb4, 0xc0, 0x0b, 0xd7, 0x20, 0xf7, 0xad, 0xa7, 0xeb, 0x31,
		0x43, 0xaa, 0x65, 0x86, 0x1b, 0xd6, 0xbb, 0xc2, 0x8c, 0x7b, 0x56, 0x14, 0xb4, 0x1b, 0xda, 0x0d,
		0xed, 0x86, 0x76, 0x43, 0xbb, 0xa1, 0xdd, 0xd0, 0x6e, 0x68, 0xf7, 0x4f, 0x55, 0x60, 0xfb, 0xf5,
		0xeb, 0x57, 0xaf, 0x51, 0x03, 0x78, 0xb7, 0x1b, 0xde, 0x4d, 0x63, 0x82, 0xe5, 0x2a, 0xee, 0xfb,
		0xc5, 0xbd, 0xf6, 0x07, 0xe3, 0x6b, 0xd5, 0x72, 0xff, 0x39, 0x7a, 0x92, 0xa3, 0xe1, 0x83, 0x58,
		0x1d, 0x79, 0x6f, 0xa1, 0xcf, 0xc0, 0x4a, 0x51, 0xbc, 0xcd, 0x69, 0xc3, 0x22, 0x53, 0x86, 0xc5,
		0x6a, 0x3d, 0xb7, 0xa8, 0xf5, 0x2c, 0x50, 0x64, 0x47, 0xad, 0x27, 0xb5, 0x9e, 0xd4, 0x7a, 0x92,
		0x5c, 0x22, 0xb9, 0x44, 0x72, 0xc9, 0xaa, 0xbe, 0x53, 0xe0, 0x63, 0xe5, 0x59, 0xa9, 0xf5, 0xc4,
		0x15, 0xe0, 0x0a, 0x70, 0x05, 0xb8, 0x82, 0xb5, 0x77, 0x05, 0xd4, 0x7a, 0xe2, 0x0c, 0x70, 0x06,
		0x38, 0x83, 0x62, 0x3b, 0x03, 0x2e, 0x9d, 0x67, 0x3e, 0x5c, 0x3a, 0x3f, 0x4d, 0x0e, 0x97, 0xce,
		0x4b, 0xa9, 0x00, 0xb5, 0x9e, 0x45, 0xd1, 0x02, 0xee, 0x9c, 0xbd, 0x21, 0xdb, 0xd4, 0x7a, 0x42,
		0xbb, 0xa1, 0xdd, 0xd0, 0x6e, 0x68, 0x37, 0xb4, 0x1b, 0xda, 0x0d, 0xed, 0xf6, 0x9b, 0x76, 0x53,
		0xeb, 0x09, 0xef, 0x76, 0xc8, 0xbb, 0xa9, 0xf5, 0x94, 0xae, 0xf5, 0xb4, 0x3d, 0xe1, 0xdf, 0x55,
		0xa9, 0xa7, 0xc5, 0xd9, 0xfd, 0x4c, 0x94, 0xf6, 0x47, 0x3f, 0x0b, 0x34, 0x48, 0xfa, 0x9e, 0x46,
		0x16, 0x71, 0x80, 0xf4, 0x20, 0x55, 0x10, 0x76, 0x4d, 0xcb, 0x0c, 0x1c, 0x72, 0xd8, 0xee, 0xf4,
		0xff, 0x5f, 0xd7, 0xde, 0x1c, 0xe9, 0x87, 0x04, 0x30, 0x4e, 0x5a, 0x2f, 0xaf, 0xc0, 0x38, 0x69,
		0xc6, 0x49, 0x3f, 0xfc, 0x45, 0x8c, 0x93, 0xf6, 0x34, 0xd1, 0x48, 0x8b, 0x81, 0x7e, 0x22, 0x91,
		0x16, 0x83, 0xe5, 0xbf, 0x30, 0x6a, 0xde, 0x98, 0x34, 0x8b, 0xbb, 0x26, 0x8c, 0x93, 0x7e, 0x7c,
		0x7f, 0x33, 0xbe, 0x89, 0x90, 0xbb, 0xef, 0x78, 0x58, 0xa4, 0x65, 0xb5, 0x78, 0x6f, 0x2e, 0xa2,
		0x5e, 0x2b, 0x13, 0x49, 0x20, 0x56, 0x06, 0x29, 0x09, 0xbb, 0x79, 0xea, 0x53, 0xee, 0x7d, 0xb8,
		0xf7, 0x71, 0x06, 0xd3, 0x6a, 0x70, 0xad, 0x02, 0xdb, 0x32, 0x59, 0x38, 0x6a, 0x6f, 0xe7, 0xb0,
		0xbb, 0x75, 0xa8, 0xbd, 0x8d, 0x5a, 0xdf, 0xa2, 0xef, 0xdd, 0xb0, 0xd1, 0xbe, 0xee, 0x44, 0xa9,
		0x09, 0xaf, 0x25, 0x9b, 0xf2, 0xe6, 0xc8, 0xc2, 0x31, 0xe2, 0x18, 0x71, 0x8c, 0x38, 0x46, 0x1c,
		0x23, 0x8e, 0xd1, 0x2f, 0xc7, 0x38, 0xec, 0x20, 0x0f, 0xa3, 0xf8, 0xb2, 0x23, 0xdd, 0xa6, 0x3e,
		0x14, 0x82, 0x2b, 0xc4, 0x15, 0xe2, 0x0a, 0x71, 0x85, 0xb8, 0x42, 0x5c, 0xa1, 0x67, 0xae, 0xf0,
		0x36, 0x33, 0x69, 0x12, 0xb5, 0xf2, 0xc8, 0x6d, 0x90, 0xd5, 0x4c, 0xc3, 0x58, 0x72, 0x80, 0xcb,
		0xc3, 0x32, 0x8b, 0xe4, 0x28, 0xfb, 0x00, 0x82, 0x9f, 0xc4, 0x4f, 0xe2, 0x27, 0xf1, 0x93, 0xf8,
		0xc9, 0x92, 0xfb, 0xc9, 0xf8, 0x32, 0x69, 0xa7, 0x26, 0x8c, 0xba, 0x61, 0x27, 0xca, 0xae, 0xc2,
		0x96, 0x49, 0x2e, 0x07, 0x35, 0x6b, 0x42, 0x2e, 0x72, 0xbe, 0x38, 0xc2, 0x48, 0xdc, 0x23, 0xee,
		0x11, 0xf7, 0x88, 0x7b, 0xc4, 0x3d, 0x7a, 0xe9, 0x1e, 0x13, 0x73, 0x9b, 0x85, 0x57, 0xed, 0x4e,
		0x18, 0x5f, 0x76, 0xc2, 0x6b, 0x93, 0xa5, 0x71, 0x43, 0xdc, 0x47, 0xce, 0x93, 0x89, 0xa3, 0xc4,
		0x51, 0xe2, 0x28, 0x71, 0x94, 0x38, 0x4a, 0x1c, 0xa5, 0x2f, 0xdf, 0x44, 0xab, 0xe0, 0x5d, 0x2b,
		0xd6, 0x03, 0xbd, 0x3a, 0xc5, 0xdd, 0x0e, 0x71, 0xd4, 0x7f, 0xa0, 0xe3, 0xf1, 0xf3, 0x7c, 0x1a,
		0x3e, 0x0e, 0x3b, 0x22, 0x9e, 0x0a, 0x2e, 0xec, 0x88, 0xf0, 0x95, 0x95, 0xd0, 0xc0, 0xe1, 0x84,
		0x75, 0xd0, 0xc0, 0x61, 0xdb, 0x32, 0x68, 0xe0, 0x20, 0x58, 0x24, 0x58, 0x24, 0x58, 0x24, 0x58,
		0x24, 0x58, 0x14, 0x0d, 0x16, 0x69, 0xe0, 0xc0, 0x31, 0xe2, 0x18, 0x71, 0x8c, 0x38, 0x46, 0x1c,
		0x23, 0x8e, 0x51, 0xc6, 0x31, 0xd2, 0xc0, 0x81, 0x2b, 0xc4, 0x15, 0xe2, 0x0a, 0x71, 0x85, 0xb8,
		0xc2, 0x75, 0x77, 0x85, 0x34, 0x70, 0x2c, 0xfb, 0xe5, 0x34, 0x70, 0xe0, 0x27, 0xf1, 0x93, 0xf8,
		0x49, 0xfc, 0x24, 0x0d, 0x1c, 0xb6, 0xdf, 0x1a, 0x0d, 0x1c, 0xb8, 0x47, 0xdc, 0x23, 0xee, 0x11,
		0xf7, 0x88, 0x7b, 0x2c, 0x90, 0x7b, 0xa4, 0x81, 0x03, 0x47, 0x89, 0xa3, 0xc4, 0x51, 0xe2, 0x28,
		0x71, 0x94, 0x25, 0x72, 0x94, 0x34, 0x70, 0x28, 0x35, 0x70, 0x14, 0x75, 0xe5, 0xd3, 0xfc, 0xfe,
		0x0d, 0x16, 0x3f, 0x49, 0x29, 0xad, 0x0f, 0xca, 0x5a, 0xa0, 0xfd, 0x4f, 0x73, 0xd5, 0xb3, 0x88,
		0x5b, 0xa0, 0xec, 0xf4, 0x0f, 0x59, 0xed, 0x1b, 0xb2, 0xbe, 0xe1, 0x69, 0x8b, 0x0d, 0x4f, 0x1e,
		0x90, 0x59, 0x36, 0x3c, 0x2d, 0x10, 0x1e, 0xdb, 0xda, 0xf0, 0x14, 0x75, 0xed, 0xf7, 0x06, 0x46,
		0x5d, 0xcb, 0x8d, 0x81, 0x1b, 0x6c, 0x76, 0xf2, 0x38, 0xca, 0xa5, 0x31, 0xb0, 0x40, 0xa1, 0xcc,
		0xc7, 0x28, 0x69, 0x46, 0x59, 0x3b, 0xfd, 0x6e, 0xb1, 0xdf, 0xd6, 0x7a, 0x24, 0x3c, 0x81, 0x24,
		0x61, 0xd2, 0xbb, 0x3e, 0x37, 0xa9, 0x4d, 0x33, 0x18, 0x81, 0xca, 0x8e, 0xc5, 0xaf, 0x94, 0xd9,
		0x20, 0x2f, 0x90, 0x5a, 0x90, 0xdc, 0x18, 0x2f, 0xbd, 0x29, 0x5e, 0x6d, 0x35, 0xb8, 0xfc, 0x4a,
		0x70, 0x81, 0x8d, 0xf0, 0xa2, 0x9b, 0xe0, 0xf3, 0x57, 0x5b, 0xdd, 0x7a, 0x53, 0x7d, 0xb3, 0xbd,
		0xb3, 0xf5, 0xe6, 0x35, 0xef, 0x58, 0x37, 0x7b, 0x69, 0xed, 0xdb, 0x4e, 0x4b, 0x34, 0xdc, 0xc2,
		0x7e, 0xe5, 0xe4, 0xf4, 0x72, 0x62, 0x8b, 0x05, 0x92, 0x70, 0x59, 0xb8, 0x2c, 0x5c, 0xd6, 0x2a,
		0x97, 0x95, 0xe3, 0x9d, 0xcd, 0x76, 0x96, 0x99, 0x66, 0xf8, 0x7f, 0xbd, 0xa8, 0x29, 0xc0, 0x3c,
		0x37, 0x7f, 0xb7, 0xf8, 0x9d, 0xf5, 0x28, 0xcb, 0x4c, 0x9a, 0x58, 0x27, 0x9f, 0x95, 0x5f, 0xfe,
		0xde, 0x08, 0xdf, 0x9c, 0xfe, 0xe7, 0xef, 0xcd, 0xf0, 0xcd, 0xe9, 0xf0, 0x2f, 0x37, 0x07, 0xff,
		0xef, 0xdf, 0x5b, 0x3f, 0xfe, 0xb3, 0xf5, 0xf7, 0x46, 0x58, 0x1d, 0xfd, 0xe9, 0xd6, 0xeb, 0xbf,
		0x37, 0xc2, 0xd7, 0xa7, 0xbf, 0xfe, 0xf2, 0xf5, 0xeb, 0x8b, 0x45, 0xff, 0x9b, 0x5f, 0xff, 0xfd,
		0xea, 0x87, 0x3d, 0xed, 0x3c, 0xb5, 0x79, 0xac, 0x9f, 0x8e, 0x6b, 0xff, 0x14, 0x3b, 0xdb, 0xff,
		0xfd, 0x45, 0xeb, 0x74, 0x7f, 0xfd, 0x7f, 0x15, 0xdf, 0x98, 0x83, 0x25, 0xeb, 0x37, 0xb7, 0x59,
		0x1a, 0x85, 0xbd, 0xa4, 0x9b, 0x45, 0xe7, 0x2d, 0xcb, 0x38, 0x90, 0x9a, 0x0b, 0x93, 0x9a, 0xa4,
		0x51, 0x88, 0x98, 0x6e, 0x0c, 0x5a, 0x47, 0x1f, 0xf6, 0xaa, 0x5b, 0x3b, 0x9b, 0x41, 0x18, 0xec,
		0x06, 0xef, 0xda, 0x69, 0xd3, 0xa4, 0xc1, 0x9f, 0x51, 0x66, 0xbe, 0x45, 0xdf, 0x83, 0xf1, 0x0d,
		0x45, 0x50, 0x0d, 0x7e, 0x79, 0xf7, 0x67, 0x3d, 0xac, 0xfe, 0xfa, 0xdb, 0xd7, 0xe4, 0x78, 0x78,
		0x37, 0x11, 0x54, 0x5f, 0x6c, 0x15, 0xbc, 0xa6, 0xe2, 0xee, 0x75, 0x95, 0xa9, 0xac, 0x62, 0x95,
		0xf7, 0x49, 0x34, 0x53, 0xc0, 0x68, 0x26, 0x6b, 0x67, 0x51, 0x6b, 0x50, 0x7d, 0x2e, 0x90, 0x94,
		0x9f, 0xfc, 0x72, 0x22, 0x1a, 0x22, 0x1a, 0x22, 0x9a, 0xb5, 0x8a, 0x68, 0x7a, 0x71, 0x92, 0xbd,
		0xda, 0x22, 0x8d, 0x6e, 0xe7, 0x87, 0x92, 0x46, 0x7f, 0x92, 0xee, 0x91, 0x46, 0x7f, 0xe0, 0xd5,
		0x92, 0x46, 0x87, 0x78, 0xfa, 0x47, 0x3c, 0x07, 0xec, 0xc0, 0xc8, 0x71, 0xcf, 0xf1, 0xf7, 0x43,
		0x3f, 0xa1, 0x9f, 0xd0, 0x4f, 0xe8, 0x27, 0xf4, 0x13, 0xfa, 0x09, 0xfd, 0x84, 0x7e, 0x42, 0x3f,
		0x0b, 0x4c, 0x3f, 0xe9, 0x71, 0x59, 0xb2, 0xc7, 0xc5, 0x56, 0xe3, 0x95, 0x56, 0x47, 0x8b, 0x85,
		0xd6, 0x2a, 0x37, 0x1d, 0x2c, 0xbd, 0xae, 0x09, 0xaf, 0x7b, 0xad, 0x2c, 0xee, 0xb4, 0x8c, 0xa5,
		0xec, 0xfa, 0x1d, 0xaf, 0x99, 0xfd, 0x6e, 0xcf, 0x7a, 0x5b, 0x36, 0xe8, 0x6d, 0xf1, 0x20, 0x5a,
		0xa1, 0xb7, 0xe5, 0xe9, 0x4f, 0x64, 0xad, 0xb7, 0xa5, 0x31, 0xb6, 0x01, 0xcb, 0xe9, 0x0c, 0xab,
		0x3b, 0xcf, 0xc4, 0x96, 0x5f, 0x91, 0xc6, 0x20, 0x8d, 0xb1, 0x9e, 0x69, 0x0c, 0xeb, 0xcb, 0xaf,
		0x86, 0x73, 0xc5, 0x9b, 0xd2, 0x83, 0xcb, 0xd9, 0xdf, 0xc1, 0x10, 0x1d, 0x86, 0xe8, 0x38, 0x83,
		0x60, 0x35, 0x28, 0x56, 0x81, 0x64, 0xa1, 0x04, 0x06, 0x43, 0x74, 0x66, 0x99, 0x1b, 0x43, 0x74,
		0x1c, 0xe4, 0x6a, 0x9c, 0xe4, 0x6c, 0x66, 0xc3, 0xfd, 0xe2, 0x2e, 0x40, 0xfe, 0xdc, 0x35, 0x1f,
		0x47, 0x8f, 0x52, 0xef, 0x3f, 0x49, 0x09, 0x77, 0x1f, 0x9b, 0x73, 0x8b, 0xdb, 0x66, 0xee, 0xc8,
		0x9a, 0x3d, 0xff, 0x49, 0xf0, 0x47, 0xf0, 0x47, 0xf0, 0xe7, 0x77, 0xf0, 0x67, 0x39, 0x8b, 0x24,
		0x9b, 0x4d, 0x12, 0x02, 0x16, 0x42, 0x1f, 0x42, 0x1f, 0x42, 0x1f, 0xcb, 0xc9, 0x19, 0xcb, 0x40,
		0x95, 0x7f, 0x71, 0xd4, 0x6a, 0xb5, 0xbf, 0xdd, 0xd1, 0xd4, 0xa8, 0x2b, 0xa7, 0x97, 0x77, 0xab,
		0x68, 0xef, 0x8b, 0x14, 0x52, 0x1b, 0xc9, 0x8c, 0x96, 0x64, 0x66, 0x4b, 0x28, 0xc3, 0x25, 0x9c,
		0xe9, 0x12, 0x87, 0x7d, 0x0d, 0xf8, 0xd7, 0x73, 0x03, 0x5a, 0xee, 0x40, 0xdd, 0x2d, 0xa8, 0xbb,
		0x07, 0x55, 0x37, 0x21, 0xe3, 0x2e, 0x84, 0xdc, 0x86, 0x7c, 0xe6, 0x4c, 0x31, 0x83, 0x26, 0x9c,
		0x49, 0x93, 0x7b, 0xb1, 0x12, 0x95, 0x7f, 0xd7, 0xd1, 0x6d, 0x7c, 0xdd, 0xbb, 0xb6, 0xdc, 0xff,
		0xf9, 0xe0, 0x5b, 0x9d, 0x16, 0x57, 0x64, 0x77, 0xbd, 0x89, 0xab, 0xc6, 0x55, 0xe3, 0xaa, 0x71,
		0xd5, 0xb8, 0x6a, 0xeb, 0x6d, 0x16, 0x0f, 0xa1, 0xd7, 0x8e, 0xa0, 0x08, 0x99, 0x36, 0x8c, 0xfb,
		0x1f, 0x59, 0x7b, 0x0f, 0xa4, 0xdb, 0x34, 0x66, 0x84, 0x09, 0xb7, 0x6d, 0xcc, 0xc8, 0xd3, 0x2a,
		0xf1, 0x9f, 0xd5, 0x75, 0xe9, 0x92, 0x7f, 0x25, 0x58, 0x98, 0x56, 0x95, 0xe8, 0x56, 0x5f, 0x55,
		0xa4, 0xdb, 0x40, 0xd6, 0x59, 0x67, 0x9e, 0x15, 0xf3, 0xdb, 0x4f, 0x8b, 0x12, 0x80, 0x79, 0x9d,
		0xda, 0x15, 0x2a, 0x75, 0xc8, 0xbf, 0xdf, 0x71, 0xc9, 0x83, 0xe9, 0xff, 0x63, 0x91, 0x6b, 0xab,
		0xc0, 0x65, 0xfd, 0xc3, 0xfe, 0xf9, 0x65, 0xc7, 0x6a, 0x11, 0x84, 0x7d, 0x65, 0xb5, 0xb9, 0x3f,
		0xb2, 0x15, 0x27, 0xff, 0x0a, 0xcf, 0xa3, 0xa4, 0xf9, 0x2d, 0x6e, 0x66, 0x57, 0xa1, 0xb9, 0xcd,
		0xc2, 0x46, 0xfb, 0xfa, 0xba, 0x97, 0xc4, 0xd9, 0x77, 0xb9, 0xdb, 0xce, 0x47, 0xa5, 0x72, 0x07,
		0xca, 0x1d, 0xa8, 0xf3, 0x08, 0x9a, 0x3b, 0x50, 0x3d, 0x47, 0x29, 0x76, 0x07, 0x2a, 0x54, 0xb4,
		0x31, 0x63, 0x4e, 0x62, 0x5e, 0x50, 0x10, 0xc0, 0xc4, 0x81, 0x4c, 0x03, 0xd0, 0xf4, 0x80, 0x4d,
		0x0b, 0xe0, 0xd4, 0x81, 0x4e, 0x1d, 0xf0, 0x54, 0x81, 0x4f, 0x36, 0x56, 0x92, 0x4a, 0x15, 0x4a,
		0x01, 0x62, 0x2e, 0x40, 0xaa, 0x95, 0xe9, 0x41, 0xbb, 0x94, 0x69, 0x6d, 0x7a, 0x08, 0x2a, 0x85,
		0x13, 0x0a, 0xe2, 0x90, 0xa9, 0x09, 0x9d, 0xfa, 0x10, 0xaa, 0x0d, 0xa5, 0xce, 0x20, 0xd5, 0x19,
		0xb4, 0x3a, 0x81, 0x58, 0xa5, 0xa4, 0x97, 0xb0, 0xc5, 0x89, 0xdf, 0xd2, 0xcc, 0xd8, 0x9b, 0x7c,
		0x61, 0xc5, 0x0c, 0x93, 0xdc, 0x2c, 0x68, 0x5e, 0xb2, 0x58, 0x5e, 0x5c, 0x38, 0xff, 0xe7, 0x55,
		0x1e, 0xf0, 0xb1, 0x84, 0xce, 0x4b, 0xd1, 0xf0, 0xc8, 0x7d, 0xb2, 0xf0, 0x20, 0x4e, 0xfe, 0xf5,
		0x6e, 0xfc, 0xe8, 0xfb, 0xb7, 0xd9, 0xde, 0xf8, 0xc1, 0x45, 0xd2, 0x88, 0x72, 0xb6, 0xf0, 0x43,
		0x24, 0x8b, 0x6b, 0x63, 0x6f, 0xf4, 0x4f, 0x31, 0xd4, 0xf6, 0xfa, 0x7a, 0x27, 0xf1, 0xf7, 0x16,
		0xf1, 0x37, 0xf1, 0x37, 0xf1, 0x37, 0xf1, 0x37, 0xf1, 0x37, 0xf1, 0x37, 0xf1, 0x37, 0xf1, 0x37,
		0xf1, 0x37, 0xf1, 0x37, 0xf1, 0x37, 0xf1, 0xf7, 0xaa, 0xf1, 0xb7, 0x64, 0x74, 0xe4, 0x73, 0xf8,
		0x6d, 0x61, 0x56, 0xad, 0x62, 0xf4, 0x4d, 0x2d, 0x9b, 0xc7, 0x36, 0x54, 0xba, 0x0a, 0xb7, 0x07,
		0xad, 0x66, 0x1d, 0x8a, 0xde, 0x64, 0xb2, 0x52, 0xa2, 0xd9, 0x28, 0xf1, 0x32, 0xb6, 0x2d, 0xca,
		0xd8, 0xf4, 0x42, 0x23, 0xca, 0xd8, 0x4a, 0xe8, 0x23, 0x19, 0xe5, 0xb1, 0xcc, 0xa1, 0x31, 0xca,
		0xc3, 0x41, 0x26, 0x8d, 0xa2, 0x3f, 0x2f, 0x33, 0x65, 0x5c, 0x3a, 0xac, 0x71, 0xba, 0x82, 0x51,
		0x1e, 0x2e, 0xa3, 0x6f, 0x46, 0x79, 0xf8, 0xe3, 0xae, 0x19, 0xe5, 0x81, 0xab, 0xc6, 0x55, 0xe3,
		0xaa, 0x71, 0xd5, 0x8c, 0xf2, 0x78, 0xfa, 0x87, 0x51, 0x1e, 0xab, 0xc9, 0x63, 0x94, 0x87, 0x55,
		0x55, 0x61, 0x94, 0x47, 0xb9, 0x74, 0x86, 0x51, 0x1e, 0xb2, 0x01, 0x18, 0xd7, 0x9f, 0x8e, 0xaf,
		0x3f, 0xa5, 0xaa, 0x04, 0xdc, 0xde, 0x73, 0x0a, 0xd4, 0x00, 0xb0, 0x9a, 0xa7, 0x70, 0xca, 0x5d,
		0x86, 0xc5, 0x3c, 0xfb, 0xd6, 0x02, 0x30, 0x3f, 0xd6, 0xf2, 0xc4, 0x22, 0x6b, 0x79, 0x62, 0xd6,
		0xf2, 0xf8, 0x99, 0xa8, 0x61, 0x2d, 0x8f, 0x93, 0x44, 0x0b, 0x6b, 0x79, 0x56, 0x32, 0x03, 0xd6,
		0xf2, 0x50, 0xcb, 0xe3, 0x1a, 0x80, 0xd4, 0x80, 0x48, 0x05, 0x90, 0x8a, 0x11, 0xf0, 0x89, 0xd5,
		0xf2, 0x70, 0x29, 0xb8, 0xa4, 0x10, 0x2e, 0x05, 0x35, 0xa0, 0x5e, 0x03, 0xf2, 0xf5, 0xa0, 0x5f,
		0xcb, 0x05, 0xa8, 0xbb, 0x02, 0x75, 0x97, 0xa0, 0xea, 0x1a, 0xe4, 0xb2, 0x8c, 0x01, 0x97, 0x82,
		0x8b, 0xa0, 0x17, 0x97, 0x82, 0x4f, 0x78, 0x10, 0x2e, 0x05, 0x45, 0x74, 0x9d, 0x4b, 0x41, 0x4b,
		0xaa, 0xc2, 0xa5, 0x60, 0x50, 0x2c, 0x07, 0x25, 0xff, 0xed, 0x5c, 0x0a, 0x5a, 0xa1, 0x42, 0xe5,
		0xbe, 0x14, 0x8c, 0xcb, 0x39, 0xdf, 0xbf, 0xc6, 0x7c, 0x7f, 0xe6, 0xfb, 0x3b, 0x8c, 0xb0, 0x49,
		0xa6, 0x7a, 0x11, 0x41, 0x93, 0x4c, 0xd5, 0x73, 0x94, 0xcc, 0xf7, 0x77, 0x00, 0x60, 0xe2, 0x40,
		0xa6, 0x01, 0x68, 0x7a, 0xc0, 0xa6, 0x05, 0x70, 0xea, 0x40, 0xa7, 0x0e, 0x78, 0xaa, 0xc0, 0x27,
		0x1b, 0x2b, 0x31, 0x5f, 0xf0, 0xa9, 0x76, 0xc9, 0x7c, 0x41, 0x5f, 0xa1, 0x53, 0x1f, 0x42, 0xb5,
		0xa1, 0xd4, 0x19, 0xa4, 0x3a, 0x83, 0x56, 0x27, 0x10, 0xab, 0x94, 0xf4, 0x62, 0xbe, 0xe0, 0xea,
		0x4c, 0x92, 0xf9, 0x82, 0x1a, 0x5e, 0x7c, 0x4d, 0xe6, 0x0b, 0xc6, 0x6b, 0x3c, 0xdf, 0xbf, 0xc6,
		0x7c, 0xff, 0x9f, 0xbd, 0x18, 0xe6, 0xfb, 0x3f, 0x95, 0x4c, 0x32, 0xdf, 0x9f, 0xf8, 0x9b, 0xf8,
		0x9b, 0xf8, 0x9b, 0xf8, 0x9b, 0xf8, 0x9b, 0xf8, 0x9b, 0xf8, 0x9b, 0xf8, 0x9b, 0xf8, 0x9b, 0xf8,
		0x9b, 0xf8, 0x7b, 0xe5, 0xf8, 0xbb, 0xb4, 0xf3, 0xfd, 0x6b, 0xcc, 0xf7, 0xd7, 0xb1, 0xa9, 0xb5,
		0xa8, 0x65, 0x5b, 0x97, 0xf9, 0xfe, 0x35, 0xe6, 0xfb, 0x33, 0xdf, 0x5f, 0x3a, 0xfb, 0x44, 0x19,
		0x9b, 0x17, 0xa1, 0x10, 0x65, 0x6c, 0x7a, 0x3e, 0x92, 0x9e, 0xe0, 0x45, 0x0e, 0x8b, 0x9e, 0x60,
		0xe5, 0xec, 0x19, 0x85, 0x7e, 0x5e, 0x66, 0xc7, 0xb8, 0x68, 0x58, 0xe3, 0x14, 0x05, 0x3d, 0xc1,
		0x0b, 0x89, 0xa0, 0x27, 0x78, 0x19, 0x61, 0xf4, 0x04, 0x8b, 0x81, 0x0d, 0x3d, 0xc1, 0xe8, 0x8c,
		0x17, 0x0e, 0x4a, 0xfe, 0xdb, 0xe9, 0x09, 0xb6, 0x42, 0x85, 0xd6, 0x20, 0x8f, 0x5a, 0xba, 0x41,
		0xc1, 0x35, 0x06, 0x05, 0xfb, 0xa0, 0xe4, 0x3e, 0x28, 0x77, 0x19, 0x06, 0x05, 0xd7, 0x4a, 0x36,
		0x28, 0xd8, 0x6e, 0x36, 0x5f, 0x24, 0x8b, 0x2f, 0x36, 0x2a, 0x78, 0x8b, 0x51, 0xc1, 0x05, 0x4a,
		0xc5, 0x30, 0x2a, 0xd8, 0xe3, 0x51, 0xc1, 0x52, 0x35, 0x99, 0xc2, 0x35, 0x98, 0xa2, 0x99, 0x74,
		0x89, 0xcd, 0xb8, 0xa7, 0x32, 0x17, 0xa3, 0x1b, 0xcc, 0xf7, 0xe0, 0x62, 0xd4, 0x23, 0x28, 0x56,
		0x81, 0xe4, 0x62, 0x04, 0xbd, 0x62, 0x59, 0x6e, 0x85, 0x1a, 0x4e, 0xa1, 0x9a, 0x4d, 0x42, 0xbf,
		0x42, 0x85, 0x7e, 0xb6, 0x53, 0x1a, 0xce, 0x62, 0x3f, 0x8b, 0x59, 0x0c, 0x0b, 0xc1, 0xdf, 0x33,
		0x87, 0x2a, 0x6b, 0x5b, 0x55, 0x1d, 0xab, 0x68, 0xc5, 0x4a, 0x20, 0xed, 0x44, 0x29, 0x57, 0x53,
		0xc7, 0xe5, 0x95, 0x68, 0xb9, 0xff, 0x72, 0x49, 0xb5, 0xb3, 0xa5, 0x6e, 0x9a, 0x6a, 0xb6, 0x82,
		0x4e, 0x29, 0xe9, 0xd2, 0x72, 0xaa, 0xb3, 0xf8, 0x8b, 0x5f, 0xe2, 0xa5, 0x57, 0x12, 0x13, 0x5f,
		0x5e, 0x9d, 0xb7, 0xd3, 0xe5, 0x2b, 0xb6, 0x72, 0x7a, 0x73, 0xf7, 0x55, 0x4b, 0x2a, 0xdf, 0x6a,
		0xe9, 0xa7, 0x95, 0x63, 0x21, 0x1b, 0x31, 0x8f, 0xbd, 0xd8, 0xc6, 0x56, 0x0c, 0x63, 0x3d, 0x56,
		0xb1, 0x1e, 0x93, 0x58, 0x8d, 0x3d, 0x74, 0xe1, 0x72, 0xd5, 0xf4, 0x4e, 0x6e, 0x33, 0xab, 0xbf,
		0xe6, 0xfb, 0x56, 0xb8, 0xea, 0x5b, 0xb6, 0x93, 0x0b, 0xb6, 0x96, 0xa0, 0xb0, 0x99, 0x90, 0xb0,
		0x9f, 0x80, 0xb0, 0x9d, 0x70, 0x10, 0x4b, 0x30, 0x88, 0x25, 0x14, 0x44, 0x12, 0x08, 0x6e, 0xa9,
		0xb7, 0xad, 0xdc, 0x6d, 0x25, 0xba, 0x88, 0xc3, 0x6e, 0x74, 0x11, 0x77, 0xed, 0x5f, 0xff, 0xdc,
		0x7d, 0x35, 0xdb, 0x22, 0xfd, 0xcb, 0x47, 0x72, 0x05, 0xe4, 0x24, 0xdf, 0x58, 0xf2, 0x2b, 0xa0,
		0xb1, 0xcd, 0xcb, 0xdd, 0x01, 0xe5, 0x12, 0x18, 0x72, 0xce, 0x25, 0x88, 0x33, 0x10, 0x52, 0x03,
		0x23, 0x15, 0x50, 0xb2, 0x0b, 0x4e, 0x96, 0x41, 0x4a, 0x0c, 0xac, 0xee, 0x40, 0xab, 0xd9, 0xd4,
		0xea, 0x0c, 0xbb, 0x13, 0xc5, 0xa8, 0x73, 0x6d, 0x58, 0xd3, 0x83, 0x37, 0x2d, 0x98, 0x53, 0x87,
		0x3b, 0x75, 0xd8, 0x53, 0x85, 0x3f, 0x19, 0x18, 0x14, 0x82, 0x43, 0x71, 0x58, 0xcc, 0x05, 0x08,
		0xef, 0x80, 0x98, 0x31, 0x4b, 0xf1, 0x61, 0xa7, 0x0a, 0x40, 0xa9, 0x06, 0x98, 0x9a, 0xc0, 0xa9,
		0x0f, 0xa0, 0xda, 0x40, 0xea, 0x0c, 0x50, 0x9d, 0x01, 0xab, 0x13, 0x80, 0x95, 0x05, 0x5a, 0x61,
		0xc0, 0x55, 0x03, 0xde, 0x5c, 0x90, 0x69, 0xc5, 0x97, 0xf1, 0x79, 0xcb, 0x84, 0x43, 0x55, 0x0c,
		0x3b, 0xed, 0x56, 0xdc, 0xf8, 0xae, 0x67, 0x0c, 0x79, 0xf9, 0xe5, 0xfc, 0xdf, 0xa1, 0xa4, 0xa0,
		0x3a, 0x93, 0x31, 0xd5, 0x81, 0xdb, 0x05, 0x80, 0xbb, 0x03, 0x72, 0x57, 0x80, 0xee, 0x1c, 0xd8,
		0x9d, 0x03, 0xbc, 0x53, 0xa0, 0xd7, 0x01, 0x7c, 0x25, 0xe0, 0xcf, 0x4f, 0x52, 0x6d, 0xd2, 0xe6,
		0x8c, 0xbd, 0xb6, 0x4c, 0x74, 0x91, 0x9a, 0x0b, 0x4d, 0x83, 0x1d, 0xf3, 0xe5, 0x1d, 0x45, 0x99,
		0xf5, 0xbc, 0x46, 0xa7, 0x11, 0xa6, 0x9d, 0x76, 0xeb, 0x6d, 0xda, 0xee, 0x65, 0x71, 0x72, 0x39,
		0xf2, 0x3c, 0xf9, 0x1f, 0x0f, 0xff, 0x36, 0x6c, 0x9a, 0x8b, 0x38, 0x89, 0xb3, 0xb8, 0x9d, 0x74,
		0x1f, 0xfe, 0x47, 0xf9, 0x3f, 0x19, 0x54, 0xd6, 0x3c, 0x2b, 0x87, 0xd6, 0x6b, 0xb4, 0xd1, 0xa7,
		0xa6, 0x61, 0x86, 0x6d, 0xde, 0xca, 0xb4, 0x63, 0x2c, 0x58, 0xc9, 0xaa, 0x35, 0xe6, 0x2a, 0xcd,
		0x08, 0x15, 0xe8, 0x12, 0x79, 0xe8, 0x73, 0x0a, 0x5f, 0x83, 0xaf, 0xc1, 0xd7, 0xe0, 0x6b, 0xf0,
		0x35, 0x35, 0x7b, 0xd5, 0x9b, 0x90, 0x3e, 0xc3, 0xd7, 0x36, 0x4b, 0xf5, 0x0a, 0xcd, 0x6d, 0x96,
		0x46, 0x61, 0x2f, 0xe9, 0x66, 0xd1, 0x79, 0x4b, 0xf9, 0x65, 0xa6, 0xe6, 0xc2, 0xa4, 0x26, 0x69,
		0x18, 0x55, 0x6a, 0x10, 0xa8, 0xcc, 0xd3, 0x7a, 0x50, 0x73, 0x8f, 0x3e, 0xec, 0x05, 0x3b, 0x6f,
		0x36, 0x37, 0x83, 0x30, 0xd8, 0x6d, 0xde, 0x98, 0x34, 0x8b, 0xbb, 0xa6, 0x8f, 0x46, 0x41, 0xfb,
		0x22, 0x18, 0xf7, 0x20, 0x04, 0x83, 0x26, 0x84, 0x20, 0x4e, 0x82, 0x77, 0x7f, 0xd6, 0x95, 0xf1,
		0xd9, 0xa5, 0x73, 0x9a, 0xe7, 0xa4, 0xee, 0x94, 0xe4, 0x37, 0x37, 0xbf, 0xc5, 0xb5, 0xbf, 0x9a,
		0xeb, 0xb7, 0x16, 0xd7, 0x22, 0xf5, 0xdf, 0xfc, 0xe3, 0x59, 0x39, 0xa5, 0x9d, 0x12, 0xe2, 0x3e,
		0x59, 0x65, 0xbb, 0x26, 0x69, 0xea, 0xc7, 0xb7, 0x03, 0xa9, 0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7,
		0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7,
		0x04, 0xb7, 0x04, 0xb7, 0x04, 0xb7, 0xf6, 0x82, 0xdb, 0xf0, 0x5a, 0x73, 0x16, 0xfa, 0x64, 0x80,
		0x3b, 0x90, 0x4c, 0x70, 0x46, 0x70, 0x46, 0x70, 0x46, 0x70, 0x46, 0x70, 0xa6, 0x66, 0xaf, 0xbd,
		0x38, 0xc9, 0x7e, 0x77, 0x10, 0x9a, 0xbd, 0x56, 0x14, 0xa9, 0xb3, 0xd4, 0xc6, 0x83, 0xb8, 0x45,
		0x73, 0xe9, 0xcd, 0x8c, 0x70, 0xe5, 0x25, 0x38, 0x33, 0xf2, 0x5d, 0x2d, 0x38, 0x99, 0x35, 0x2d,
		0xed, 0x85, 0x27, 0x8e, 0x50, 0x6b, 0x5a, 0xf5, 0xa2, 0x5b, 0xf7, 0xaa, 0xb7, 0xf5, 0xfa, 0x35,
		0xca, 0xe7, 0x5a, 0xf9, 0x08, 0x25, 0xfd, 0x0e, 0x25, 0x0b, 0xdd, 0x53, 0x25, 0xbc, 0xdd, 0x67,
		0x36, 0x28, 0xd6, 0x98, 0x05, 0x99, 0x0f, 0x1f, 0xcc, 0xff, 0xea, 0x65, 0x3e, 0x1b, 0x29, 0xff,
		0xab, 0x97, 0xf9, 0x68, 0x80, 0x97, 0x2a, 0x0d, 0xb0, 0x81, 0xc6, 0x8c, 0xc9, 0xc3, 0xf1, 0x93,
		0xe7, 0x7f, 0x75, 0xb6, 0x7b, 0x11, 0x1f, 0xf7, 0x1f, 0x7c, 0xfc, 0x17, 0x67, 0xbb, 0xcd, 0xe6,
		0x70, 0xb2, 0xee, 0x28, 0x8e, 0x2e, 0xe8, 0x76, 0x2f, 0x41, 0xcb, 0x10, 0xda, 0xb6, 0xfe, 0x70,
		0xbe, 0x46, 0x68, 0xfd, 0xd4, 0xbc, 0x38, 0x41, 0xad, 0xff, 0x7a, 0x8b, 0xfe, 0xeb, 0xe2, 0x24,
		0x61, 0xe8, 0xbf, 0xa6, 0xff, 0xfa, 0xa7, 0x27, 0x46, 0xff, 0x35, 0xfd, 0xd7, 0xc5, 0x04, 0x70,
		0x77, 0x40, 0xee, 0x0a, 0xd0, 0x9d, 0x03, 0xbb, 0x73, 0x80, 0x77, 0x0a, 0xf4, 0xba, 0xe1, 0x34,
		0xfd, 0xd7, 0x82, 0x7c, 0x99, 0xfe, 0x6b, 0x1f, 0x93, 0x2e, 0xf4, 0x5f, 0xdb, 0xa3, 0x75, 0x94,
		0xa8, 0xc3, 0xd7, 0xe0, 0x6b, 0xf0, 0x35, 0xf8, 0x1a, 0x7c, 0xcd, 0x92, 0xbd, 0x52, 0xa2, 0x6e,
		0x2b, 0x15, 0x42, 0x89, 0xba, 0xae, 0xe6, 0x52, 0xa2, 0xbe, 0x98, 0x93, 0xa2, 0x44, 0x7d, 0x9e,
		0xdf, 0xa2, 0x44, 0xdd, 0x99, 0x34, 0x4a, 0xd4, 0x9f, 0xae, 0xb2, 0xf4, 0x5f, 0x13, 0xdc, 0x12,
		0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x12,
		0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x12, 0xdc, 0x96, 0x22, 0xb8, 0xa5, 0xff, 0x9a, 0xe0, 0x8c, 0xe0,
		0x8c, 0xe0, 0x8c, 0xe0, 0x6c, 0x5d, 0x82, 0x33, 0xfa, 0xaf, 0x4b, 0x14, 0xb7, 0xd0, 0x7f, 0x4d,
		0x0b, 0x2c, 0xfd, 0xd7, 0x28, 0x1f, 0xfd, 0xd7, 0x84, 0x92, 0x6e, 0x24, 0xd0, 0x7f, 0xad, 0xd0,
		0x7f, 0xad, 0xd1, 0xff, 0x1a, 0x78, 0xd7, 0x7e, 0x7d, 0x3c, 0x78, 0xea, 0xa2, 0x76, 0x5f, 0x17,
		0x6a, 0x65, 0xb7, 0x92, 0x95, 0x79, 0x69, 0x5d, 0x15, 0xd1, 0x3e, 0x79, 0x7f, 0xec, 0x49, 0xc6,
		0x92, 0xec, 0xeb, 0xb9, 0x80, 0x8e, 0x57, 0xc6, 0x6f, 0x3d, 0x1c, 0xbd, 0x0a, 0x19, 0x15, 0xcf,
		0x63, 0xec, 0x69, 0x71, 0x42, 0x36, 0x2b, 0x9b, 0xd4, 0x14, 0x4f, 0x62, 0x6a, 0x24, 0x2d, 0xf5,
		0x92, 0x94, 0x5a, 0x49, 0x49, 0xf5, 0x24, 0xa4, 0x7a, 0xd2, 0x51, 0x35, 0xc9, 0x58, 0x2c, 0x2f,
		0x2d, 0x9e, 0x34, 0x54, 0x6c, 0x27, 0xd5, 0x68, 0x1f, 0xcd, 0xdb, 0x45, 0x5f, 0xbc, 0x18, 0x8d,
		0x30, 0x7a, 0x39, 0x8d, 0xcc, 0xeb, 0xec, 0x11, 0x3b, 0x9d, 0xd6, 0x77, 0xe9, 0xc1, 0x11, 0x77,
		0x0e, 0x71, 0x52, 0x9a, 0xac, 0x3f, 0xdc, 0xc4, 0x1f, 0x3e, 0xc9, 0x1f, 0xa6, 0x9d, 0x76, 0x0b,
		0x87, 0x58, 0x40, 0x87, 0x38, 0x78, 0x71, 0x78, 0xc4, 0x40, 0x63, 0xe2, 0x4e, 0xa5, 0x31, 0xb6,
		0x7a, 0xa5, 0x49, 0x67, 0x2a, 0x93, 0xf6, 0xd4, 0x47, 0x9d, 0x6d, 0x94, 0x73, 0xd4, 0x99, 0x30,
		0x84, 0x6a, 0x43, 0xa9, 0x33, 0x48, 0x75, 0x06, 0xad, 0x6e, 0x20, 0x56, 0x16, 0x6a, 0x85, 0x21,
		0x57, 0x0d, 0x7a, 0x73, 0x41, 0xcd, 0x61, 0x87, 0x52, 0x68, 0x6e, 0x3b, 0xed, 0x34, 0x73, 0x36,
		0xeb, 0x6c, 0xfe, 0xcf, 0x28, 0x73, 0x97, 0xd6, 0xd1, 0xfe, 0x7f, 0xed, 0xef, 0x9d, 0x9c, 0x1d,
		0x7d, 0xfa, 0x7c, 0xb2, 0x4f, 0xb3, 0x56, 0x01, 0xfc, 0xa0, 0x0b, 0x7f, 0xe8, 0xd0, 0x2f, 0xba,
		0xf2, 0x8f, 0xce, 0xfd, 0xa4, 0x73, 0x7f, 0xe9, 0xd6, 0x6f, 0xea, 0xf8, 0x4f, 0x25, 0x3f, 0x9a,
		0x1f, 0xa5, 0xbb, 0x8a, 0xc0, 0xb1, 0x67, 0x1b, 0x4d, 0x46, 0xcb, 0xfa, 0x3f, 0xc4, 0x41, 0xeb,
		0x56, 0x55, 0x51, 0xe6, 0x7e, 0xd2, 0xbb, 0xd6, 0xc7, 0x8b, 0x93, 0xf6, 0x71, 0x96, 0xc6, 0xc9,
		0xa5, 0x93, 0xba, 0xa9, 0xca, 0x46, 0xff, 0x5d, 0xef, 0xee, 0xed, 0xed, 0xd7, 0xc7, 0x3e, 0xdd,
		0x41, 0xd5, 0xd8, 0xe6, 0xa0, 0x3f, 0x46, 0x9d, 0x58, 0x28, 0x1b, 0xf3, 0xc4, 0x1b, 0xaf, 0x0d,
		0xc0, 0xd1, 0xc1, 0xeb, 0x9e, 0x7a, 0xd3, 0x4e, 0xca, 0xd3, 0xa6, 0xdf, 0xf3, 0xdb, 0x60, 0xb3,
		0xa4, 0x85, 0x62, 0x3f, 0xe8, 0x39, 0x5a, 0x38, 0x98, 0x8b, 0xaf, 0xbd, 0x08, 0xe6, 0xa6, 0x7f,
		0x06, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1,
		0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0xdc, 0x7c, 0x95, 0x70, 0x7c, 0x23,
		0xe7, 0xe4, 0x26, 0x8e, 0x68, 0x83, 0x68, 0x83, 0x68, 0x83, 0x68, 0x83, 0x68, 0x83, 0xb5, 0x43,
		0x85, 0x5b, 0x3b, 0xa4, 0xa4, 0x8f, 0x07, 0x71, 0x37, 0xdb, 0xcd, 0xb2, 0x54, 0x57, 0x27, 0x3f,
		0xc6, 0xc9, 0x7e, 0x6b, 0x30, 0x67, 0x4d, 0xb9, 0x1d, 0xbf, 0xf2, 0x31, 0xba, 0x9d, 0x90, 0xbc,
		0xf9, 0x7b, 0xb5, 0xba, 0xbd, 0x53, 0xad, 0x6e, 0xec, 0xbc, 0xda, 0xd9, 0x78, 0xf3, 0xfa, 0xf5,
		0xe6, 0xf6, 0xa6, 0xe6, 0xec, 0x93, 0x4f, 0x69, 0xd3, 0xa4, 0xa6, 0xf9, 0xee, 0xbb, 0xbe, 0x53,
		0xcb, 0x47, 0xcc, 0x74, 0x4d, 0xaa, 0xed, 0xcf, 0x1c, 0x0e, 0x45, 0x9c, 0x74, 0xe6, 0xed, 0xe1,
		0xe9, 0x87, 0xe7, 0xdf, 0x5d, 0x04, 0xe4, 0x3e, 0x4c, 0x43, 0x9c, 0x72, 0xec, 0x03, 0x4d, 0x28,
		0x6b, 0xa4, 0xe8, 0xc2, 0xa8, 0x3f, 0xf7, 0x0f, 0x74, 0xf8, 0x6a, 0x09, 0x54, 0x9f, 0x7c, 0x7c,
		0x8e, 0x6f, 0x1b, 0x9d, 0xdc, 0x32, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8,
		0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8, 0x12, 0xa8,
		0x7a, 0x29, 0x81, 0x39, 0x8a, 0x72, 0x93, 0xde, 0x26, 0x86, 0x8f, 0xbc, 0x54, 0x69, 0xb0, 0x0f,
		0xbc, 0x99, 0xfd, 0xd6, 0x7f, 0xf4, 0xfa, 0xe0, 0xc9, 0xcf, 0x46, 0x11, 0x7a, 0x51, 0xe7, 0x29,
		0x8a, 0x4e, 0xe9, 0x8b, 0x32, 0xa3, 0x37, 0xe3, 0x41, 0x63, 0x9a, 0xa7, 0xfa, 0x88, 0x87, 0x2d,
		0x46, 0x3c, 0x14, 0x88, 0x15, 0x32, 0xe2, 0x81, 0x11, 0x0f, 0x3f, 0x3f, 0x32, 0x46, 0x3c, 0xd0,
		0x15, 0x64, 0xfb, 0x43, 0x57, 0x50, 0xe1, 0xfc, 0xa1, 0x43, 0xbf, 0xe8, 0x3a, 0x6b, 0xc2, 0xf5,
		0x07, 0xd7, 0x1f, 0xf6, 0x8e, 0x92, 0xae, 0x20, 0xba, 0x82, 0x44, 0xa5, 0xd3, 0x15, 0x44, 0x57,
		0x90, 0xee, 0x4f, 0xa0, 0x2b, 0xa8, 0x50, 0x52, 0x18, 0xf1, 0x40, 0x30, 0x47, 0x30, 0x47, 0x30,
		0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30, 0x47, 0x30,
		0x47, 0x30, 0x47, 0x30, 0x37, 0x57, 0x25, 0x18, 0xf1, 0x40, 0xb4, 0x41, 0xb4, 0x41, 0xb4, 0x41,
		0xb4, 0xb1, 0xae, 0xd1, 0x06, 0x9d, 0x33, 0x74, 0xce, 0xcc, 0x1e, 0x17, 0x9d, 0x33, 0x74, 0xce,
		0xd0, 0x39, 0x43, 0xe7, 0x0c, 0x9d, 0x33, 0xd6, 0x8d, 0x9a, 0x11, 0x0f, 0xcb, 0x1c, 0x1f, 0x23,
		0x1e, 0x08, 0x54, 0x09, 0x54, 0x09, 0x54, 0x09, 0x54, 0x09, 0x54, 0x09, 0x54, 0x09, 0x54, 0x09,
		0x54, 0x09, 0x54, 0x09, 0x54, 0x09, 0x54, 0x09, 0x54, 0x09, 0x54, 0x3d, 0x91, 0xc0, 0x88, 0x07,
		0x9d, 0x11, 0x0f, 0x1a, 0xfd, 0xf5, 0x81, 0x8f, 0x13, 0x1e, 0x8e, 0x07, 0x0f, 0x5e, 0xd4, 0x01,
		0x0f, 0xcf, 0x0a, 0x64, 0x73, 0x5a, 0xb6, 0xe6, 0xab, 0x8d, 0x55, 0x44, 0xa7, 0x71, 0x78, 0x65,
		0x55, 0x32, 0xf6, 0x64, 0x5f, 0xdb, 0x05, 0x34, 0xbd, 0xd2, 0x18, 0x67, 0xfc, 0x64, 0x34, 0x3c,
		0x27, 0xe9, 0xa2, 0x43, 0x79, 0x84, 0x47, 0xa1, 0x88, 0xa7, 0x45, 0x35, 0xd2, 0xa0, 0x93, 0x69,
		0xcf, 0xf3, 0xcb, 0x8e, 0xa4, 0x79, 0x2b, 0x05, 0x47, 0xea, 0x59, 0x4d, 0xf5, 0x80, 0xe7, 0x7e,
		0xd6, 0xb2, 0xff, 0xde, 0xf0, 0xce, 0x81, 0xc6, 0xe0, 0x92, 0xca, 0xd8, 0x29, 0x86, 0x23, 0x37,
		0xa5, 0x34, 0x39, 0x6a, 0x5a, 0xac, 0xce, 0x04, 0xa9, 0x0d, 0xad, 0x09, 0x52, 0x1b, 0xe5, 0x9c,
		0x20, 0x25, 0x0b, 0xa7, 0xae, 0x72, 0x4e, 0x0c, 0x90, 0x12, 0x85, 0xdb, 0x72, 0x24, 0x24, 0xd4,
		0xee, 0x82, 0xee, 0xae, 0xe1, 0x9b, 0x26, 0xc9, 0xe2, 0xec, 0xbb, 0xce, 0x3d, 0x50, 0xce, 0x2c,
		0x15, 0x72, 0xea, 0x95, 0xda, 0xe8, 0xd1, 0xde, 0x45, 0x5d, 0xa3, 0x5f, 0xdf, 0xb0, 0xfb, 0xa1,
		0x76, 0x76, 0xdc, 0xff, 0x9f, 0x93, 0xbf, 0xea, 0x5a, 0x8d, 0x48, 0x95, 0x2f, 0x51, 0xab, 0x67,
		0xba, 0xaa, 0x4d, 0xd4, 0x8e, 0x6e, 0x29, 0x6a, 0xf5, 0x2f, 0xd5, 0xb3, 0x0f, 0x07, 0x9f, 0xfe,
		0xe7, 0xb8, 0xbe, 0xbf, 0x57, 0x29, 0x63, 0xda, 0xd8, 0xe5, 0xc1, 0x1e, 0xec, 0xbe, 0xdb, 0x3f,
		0xd8, 0x7f, 0x7f, 0xf6, 0xf9, 0xb0, 0xb6, 0xb7, 0x7b, 0x7c, 0xc2, 0xf9, 0x5a, 0x3e, 0x5f, 0xce,
		0x55, 0xe2, 0x5c, 0xb7, 0xd1, 0x5b, 0xe1, 0xf3, 0xe5, 0x5c, 0xad, 0x9f, 0xeb, 0xc1, 0xd6, 0x97,
		0xfa, 0xe1, 0xd9, 0xfe, 0x97, 0xfa, 0x21, 0xa7, 0x6a, 0xfb, 0x54, 0xbf, 0xd4, 0x0f, 0x8e, 0x39,
		0x55, 0x8b, 0xa7, 0xfa, 0xaa, 0x7f, 0xaa, 0x03, 0x0f, 0xf6, 0xf1, 0xf3, 0xc1, 0x09, 0x58, 0x20,
		0x77, 0xbe, 0x20, 0xad, 0xdc, 0xe9, 0x6e, 0xa3, 0xbd, 0xc2, 0xe7, 0x8b, 0xf6, 0xda, 0x3f, 0xdd,
		0xda, 0xe1, 0x7f, 0x1f, 0x9f, 0xec, 0x6a, 0xce, 0x13, 0x59, 0xa3, 0x43, 0x3d, 0x3b, 0xae, 0x7f,
		0xe0, 0x60, 0x25, 0x0e, 0x16, 0x62, 0x6b, 0xf5, 0x60, 0x8f, 0x8f, 0x4e, 0xf6, 0xcf, 0xea, 0x9f,
		0x0e, 0x6a, 0x7b, 0x7f, 0x0d, 0x88, 0x02, 0x67, 0x2b, 0x76, 0xb6, 0xdb, 0x9c, 0xad, 0xbd, 0xb3,
		0xfd, 0x52, 0x3f, 0x74, 0x93, 0xb0, 0xd5, 0x19, 0xeb, 0x59, 0xf4, 0x7b, 0xad, 0x42, 0x6e, 0xa1,
		0x32, 0x49, 0x74, 0xde, 0x32, 0x4d, 0xbd, 0x6a, 0x82, 0xb1, 0x40, 0xea, 0x08, 0x16, 0x12, 0x44,
		0x1d, 0x81, 0x55, 0xed, 0xa0, 0x8e, 0x80, 0x3a, 0x82, 0x9f, 0x9c, 0x98, 0x7e, 0x1d, 0xc1, 0x79,
		0xbb, 0xdd, 0x32, 0x51, 0xa2, 0x59, 0x43, 0xb0, 0x89, 0x4b, 0x9c, 0x39, 0x9b, 0xae, 0x49, 0x9a,
		0x61, 0xa3, 0x7d, 0x7d, 0xdd, 0x4b, 0xe2, 0x6c, 0x34, 0xe9, 0x56, 0x6f, 0x4d, 0xe3, 0x1c, 0xe1,
		0xb8, 0x4a, 0x5c, 0x25, 0xae, 0x12, 0x57, 0x89, 0xab, 0x9c, 0xe8, 0xdd, 0x50, 0x44, 0xc8, 0x40,
		0x79, 0x00, 0xb9, 0xee, 0xe0, 0x71, 0x37, 0x03, 0xc7, 0x87, 0x83, 0xc6, 0x8f, 0x4f, 0x76, 0x0f,
		0xdf, 0xef, 0x1e, 0xbd, 0xd7, 0x1c, 0x9f, 0x31, 0x18, 0x2e, 0xbe, 0xff, 0xcf, 0x93, 0xfd, 0xc3,
		0xf7, 0xfb, 0xaa, 0x82, 0xb7, 0x06, 0x49, 0xdd, 0xdd, 0xa3, 0x3f, 0x35, 0x67, 0xaa, 0x57, 0x5e,
		0xf5, 0xa5, 0xbe, 0xfb, 0x74, 0xf2, 0x0f, 0x4d, 0xa1, 0xd5, 0xbe, 0xd0, 0xc3, 0x4f, 0x87, 0xfb,
		0xe5, 0x1a, 0xeb, 0xa1, 0x3f, 0xa8, 0x7d, 0xf8, 0xe6, 0xde, 0x06, 0xaf, 0x34, 0xd7, 0x1e, 0x8c,
		0x6d, 0x43, 0x7c, 0x91, 0xf7, 0x94, 0xd8, 0xa1, 0x65, 0x88, 0xef, 0xf4, 0x9e, 0x76, 0x27, 0x7d,
		0x15, 0x7d, 0x1b, 0x68, 0x2e, 0x95, 0xc8, 0x21, 0xef, 0x6d, 0xb0, 0xc1, 0x00, 0x03, 0x0f, 0xc8,
		0x8b, 0xea, 0xac, 0x1e, 0xfd, 0x19, 0x3d, 0x5e, 0xcc, 0xe6, 0x99, 0x9a, 0xc9, 0x93, 0xf4, 0x5a,
		0x2d, 0x4d, 0x91, 0xa3, 0x89, 0x21, 0x17, 0x51, 0xab, 0x6b, 0x18, 0x53, 0x20, 0x6f, 0x59, 0xeb,
		0x38, 0xa6, 0x40, 0xb4, 0x97, 0x3c, 0xf0, 0x65, 0x40, 0xc1, 0x28, 0x85, 0xb3, 0xc6, 0xb3, 0x09,
		0x2e, 0xd3, 0xa8, 0x61, 0x2e, 0x7a, 0xad, 0x30, 0x35, 0xdd, 0x2c, 0x4a, 0x33, 0xf9, 0x29, 0x05,
		0x33, 0x12, 0x99, 0x57, 0x30, 0x57, 0x00, 0xf3, 0x0a, 0x96, 0x7a, 0xeb, 0xcc, 0x2b, 0x58, 0x5b,
		0x37, 0x2d, 0x3e, 0xaf, 0x40, 0x78, 0x90, 0xcb, 0x8c, 0x59, 0x8a, 0x3b, 0x61, 0x05, 0xa0, 0x54,
		0x03, 0x4c, 0x4d, 0xe0, 0xd4, 0x07, 0x50, 0x6d, 0x20, 0x75, 0x06, 0xa8, 0xce, 0x80, 0xd5, 0x09,
		0xc0, 0x96, 0x23, 0xe3, 0x20, 0x0d, 0xbc, 0xb9, 0x20, 0xad, 0xe2, 0xae, 0x19, 0xfb, 0xd6, 0x29,
		0xf2, 0xba, 0x3b, 0x50, 0x17, 0x8b, 0xcf, 0x07, 0xf9, 0x04, 0x36, 0x9e, 0x17, 0xc0, 0xc5, 0xb9,
		0x70, 0x75, 0xee, 0x5c, 0x9e, 0x2b, 0xd7, 0xe7, 0xdc, 0x05, 0x3a, 0x77, 0x85, 0x4e, 0x5d, 0xa2,
		0x8e, 0x6b, 0x54, 0x72, 0x91, 0xf9, 0x49, 0xba, 0x5b, 0xec, 0xa0, 0x57, 0x8c, 0x37, 0x13, 0x59,
		0x6c, 0x72, 0x2f, 0xe4, 0x01, 0x4b, 0x5b, 0xe3, 0xc1, 0xd6, 0xf7, 0x73, 0x8e, 0x2f, 0x55, 0x22,
		0xeb, 0xc0, 0x97, 0x34, 0xf7, 0x9f, 0xa3, 0xc7, 0x3f, 0x1a, 0x3e, 0xbd, 0x68, 0xda, 0x5b, 0xde,
		0x56, 0x44, 0x4b, 0x65, 0x07, 0xb3, 0xbf, 0xf5, 0x8a, 0x63, 0x15, 0x66, 0xac, 0xab, 0xe7, 0x77,
		0xb6, 0xc8, 0xef, 0x90, 0xdf, 0x21, 0xbf, 0x43, 0x7e, 0x67, 0x71, 0x41, 0x51, 0xf3, 0xc6, 0xa4,
		0x59, 0xdc, 0x75, 0x91, 0xe2, 0x99, 0x90, 0x4d, 0x76, 0x82, 0xec, 0x04, 0xd9, 0x09, 0xb2, 0x13,
		0x64, 0x27, 0xc8, 0x4e, 0x14, 0x28, 0x3b, 0xf1, 0x1b, 0x17, 0x30, 0xd6, 0x18, 0x0f, 0x17, 0x30,
		0x50, 0x1c, 0x28, 0x0e, 0x14, 0x07, 0x8a, 0x03, 0xc5, 0x81, 0xe2, 0xac, 0x13, 0xc5, 0x49, 0x4d,
		0xc3, 0xc4, 0x37, 0x2e, 0x38, 0x4e, 0x2e, 0x19, 0xe7, 0x8c, 0x73, 0xc6, 0x39, 0xe3, 0x9c, 0x71,
		0xce, 0x38, 0xe7, 0x02, 0x39, 0x67, 0xaa, 0x23, 0x16, 0x90, 0xe7, 0x73, 0x75, 0xc4, 0x5a, 0xad,
		0xfe, 0xbe, 0x5f, 0x1c, 0xc1, 0xfa, 0x6f, 0x2d, 0xdb, 0x5b, 0xc7, 0xbe, 0x5a, 0xa5, 0xee, 0x47,
		0x5f, 0xad, 0x6b, 0x9d, 0x5b, 0x6d, 0xe3, 0xce, 0x4d, 0x35, 0x6c, 0x45, 0xe7, 0xa6, 0x65, 0x9a,
		0x61, 0x2f, 0x89, 0x1b, 0x51, 0x57, 0xa1, 0xdd, 0x76, 0xae, 0x54, 0x5a, 0x6e, 0x5d, 0x05, 0x8c,
		0xb4, 0xdc, 0x16, 0x2f, 0xe0, 0xa3, 0xe5, 0xf6, 0xc1, 0x93, 0x11, 0x6f, 0xb9, 0x1d, 0x6a, 0x54,
		0xd8, 0x8a, 0xaf, 0xe3, 0x4c, 0xaf, 0x2e, 0x73, 0x4a, 0x2a, 0xed, 0xb7, 0xbe, 0x66, 0xdd, 0x28,
		0xcf, 0x2c, 0x5f, 0x56, 0x8d, 0xf2, 0x4c, 0xef, 0x40, 0x38, 0x17, 0xa4, 0x34, 0xff, 0x60, 0xc6,
		0xbc, 0xd5, 0xba, 0x35, 0x14, 0x01, 0x59, 0x1d, 0x98, 0x5d, 0x00, 0xb4, 0x3b, 0xa0, 0x76, 0x05,
		0xd8, 0xce, 0x81, 0xdb, 0x39, 0x80, 0x3b, 0x05, 0x72, 0x1d, 0x40, 0x57, 0x02, 0x76, 0x75, 0x80,
		0xcf, 0x05, 0x5e, 0x47, 0xb7, 0xe1, 0x50, 0x6b, 0x4d, 0x57, 0xdf, 0x74, 0xc6, 0x60, 0x31, 0xf5,
		0x2b, 0x94, 0x95, 0x57, 0xf7, 0x6e, 0xdc, 0x99, 0x33, 0x70, 0xe9, 0x14, 0xdc, 0x3b, 0x07, 0xd7,
		0x4e, 0xc2, 0x1b, 0x67, 0xe1, 0x8d, 0xd3, 0xf0, 0xc2, 0x79, 0xe8, 0x3a, 0x11, 0x65, 0x67, 0x92,
		0x9f, 0xb0, 0xfa, 0x5d, 0xfb, 0x8c, 0xbd, 0xf7, 0xe2, 0x24, 0x7b, 0xb5, 0xe5, 0xc2, 0xde, 0x47,
		0xe8, 0xbe, 0xe3, 0x40, 0xf4, 0x51, 0x94, 0x5c, 0x1a, 0xd5, 0xba, 0xf2, 0xc9, 0x8f, 0x1b, 0x7c,
		0x0b, 0x46, 0x83, 0xa2, 0x9d, 0x01, 0x6c, 0xfe, 0x23, 0xbe, 0x44, 0xad, 0x9e, 0xd1, 0x77, 0xaf,
		0x33, 0xbf, 0xe3, 0x43, 0x1a, 0x35, 0xb2, 0xb8, 0x9d, 0xbc, 0x8f, 0x2f, 0x63, 0xad, 0xc1, 0xd9,
		0x8f, 0xdb, 0xa4, 0xb9, 0x8c, 0xb2, 0xf8, 0xc6, 0xa8, 0xcc, 0x95, 0xf6, 0x08, 0x06, 0xa7, 0x55,
		0x34, 0xba, 0xf5, 0x47, 0x45, 0xab, 0x5b, 0x6f, 0xaa, 0x6f, 0xb6, 0x77, 0xb6, 0xde, 0xbc, 0x46,
		0x57, 0x7d, 0xd5, 0xd5, 0x67, 0xeb, 0x21, 0xf5, 0xf4, 0x59, 0x39, 0x9f, 0x4f, 0x11, 0x6b, 0xfa,
		0xbc, 0xfe, 0xc6, 0x24, 0x59, 0x98, 0x99, 0x28, 0x6d, 0xb6, 0xbf, 0x25, 0xee, 0xc2, 0xea, 0x99,
		0x5f, 0xa2, 0x4c, 0x3c, 0x5d, 0xf4, 0xd6, 0xe5, 0xc2, 0x15, 0x7b, 0xec, 0x72, 0xeb, 0x21, 0x75,
		0x41, 0xea, 0x82, 0xd4, 0x05, 0xa9, 0x0b, 0x52, 0x17, 0xa5, 0x49, 0x5d, 0xe8, 0xb7, 0x0b, 0xdc,
		0x87, 0x77, 0xa5, 0xb6, 0x81, 0x72, 0x93, 0xb2, 0x6f, 0x51, 0x9a, 0xc4, 0xc9, 0x65, 0x98, 0x5d,
		0xa5, 0xa6, 0x7b, 0xd5, 0x6e, 0x35, 0xc3, 0x4e, 0x23, 0x73, 0xc7, 0xcc, 0xe6, 0xff, 0x1c, 0xe8,
		0x03, 0xf4, 0x01, 0xfa, 0x00, 0x7d, 0x80, 0x3e, 0x94, 0x86, 0x3e, 0x74, 0x4c, 0xda, 0x30, 0x49,
		0x16, 0x5d, 0x1a, 0x87, 0x0c, 0xe2, 0x35, 0xb7, 0x1f, 0x7a, 0x0f, 0xce, 0xed, 0xc7, 0xc4, 0xef,
		0x20, 0xa3, 0xec, 0x09, 0x14, 0x4e, 0xab, 0xa8, 0x4f, 0xb7, 0x1f, 0x9b, 0x1b, 0x28, 0xa9, 0xb7,
		0x4a, 0xca, 0xb5, 0x47, 0xb1, 0x23, 0xec, 0x52, 0x15, 0x47, 0x2a, 0x37, 0xee, 0xe7, 0x72, 0x3d,
		0x6a, 0x2a, 0x9e, 0xd7, 0xe3, 0xf9, 0x72, 0xb2, 0x87, 0xe9, 0xa5, 0x6a, 0x05, 0x7d, 0xe0, 0x4b,
		0xf3, 0x71, 0xad, 0x73, 0x53, 0x3d, 0x18, 0x1e, 0xcb, 0xe7, 0xe1, 0xa9, 0x9c, 0x0d, 0xa3, 0xfd,
		0x83, 0xfe, 0xa1, 0xa8, 0xac, 0x41, 0xd0, 0xb3, 0xb9, 0x1f, 0x2a, 0xf3, 0x1a, 0x34, 0xd6, 0x23,
		0xcc, 0x84, 0x4b, 0x5a, 0xf3, 0x28, 0x02, 0x97, 0xed, 0x1f, 0x5b, 0xb4, 0x7f, 0x94, 0x27, 0xbf,
		0x45, 0xfb, 0x07, 0xed, 0x1f, 0xd6, 0x4e, 0x92, 0xf6, 0x0f, 0xda, 0x3f, 0xca, 0xe7, 0x14, 0xdc,
		0x3b, 0x07, 0xd7, 0x4e, 0xc2, 0x1b, 0x67, 0xe1, 0x8d, 0xd3, 0xf0, 0xc2, 0x79, 0xb8, 0x49, 0x38,
		0xd0, 0xfe, 0xa1, 0x8e, 0xee, 0xb4, 0x7f, 0x28, 0x3e, 0x38, 0x17, 0x20, 0x13, 0xbf, 0x83, 0xdc,
		0xb2, 0x27, 0x30, 0x38, 0xad, 0xa2, 0xb4, 0x7f, 0xa0, 0xab, 0xde, 0x12, 0x04, 0x77, 0x52, 0x69,
		0xff, 0x58, 0x5d, 0x69, 0x27, 0xb3, 0xf1, 0xa1, 0xb9, 0x6d, 0x18, 0xd3, 0x54, 0x5c, 0x31, 0x30,
		0xc3, 0xbd, 0xe6, 0xff, 0x1c, 0x82, 0x6c, 0x82, 0x6c, 0x82, 0x6c, 0x82, 0x6c, 0x82, 0xec, 0xd2,
		0x04, 0xd9, 0x34, 0x2a, 0x94, 0x85, 0x3e, 0xd0, 0x3d, 0x1a, 0xd0, 0x3d, 0x0a, 0x29, 0x83, 0x94,
		0x41, 0xca, 0x20, 0x65, 0x90, 0x32, 0x48, 0x19, 0xa4, 0xcc, 0x31, 0x29, 0xa3, 0x7b, 0x14, 0xfa,
		0x00, 0x7d, 0x80, 0x3e, 0x40, 0x1f, 0xa0, 0x0f, 0xaa, 0x21, 0x38, 0xdd, 0xa3, 0x2e, 0x6c, 0x8b,
		0xe2, 0x09, 0x8a, 0x27, 0xe6, 0xdb, 0x25, 0xc5, 0x13, 0x74, 0x8f, 0xa2, 0xa4, 0x5e, 0xb2, 0x03,
		0x77, 0x52, 0xe9, 0x1e, 0x2d, 0x00, 0x94, 0xd1, 0x3d, 0xfa, 0x94, 0xee, 0x51, 0xcd, 0xfe, 0xbb,
		0xa0, 0x20, 0xcd, 0xa3, 0x0a, 0x6b, 0xa2, 0xf5, 0x2c, 0x8e, 0xd5, 0xed, 0x65, 0xb5, 0xdd, 0x75,
		0xd9, 0xe2, 0xfe, 0xb8, 0xb5, 0x16, 0x76, 0x9d, 0xfb, 0x6f, 0x3a, 0x9b, 0x55, 0xc3, 0xd4, 0x34,
		0x4c, 0x7c, 0xa3, 0x50, 0x91, 0x38, 0xbf, 0x02, 0x31, 0x17, 0xcf, 0xae, 0xd5, 0x85, 0x04, 0xb1,
		0x6b, 0xd5, 0xaa, 0x76, 0xb0, 0x6b, 0x95, 0x5d, 0xab, 0x3f, 0x39, 0x31, 0x76, 0xad, 0x16, 0x10,
		0x90, 0xd5, 0x81, 0xd9, 0x05, 0x40, 0xbb, 0x03, 0x6a, 0x57, 0x80, 0xed, 0x1c, 0xb8, 0x9d, 0x03,
		0xb8, 0x53, 0x20, 0x2f, 0x67, 0x42, 0x88, 0x61, 0x1b, 0x0c, 0xdb, 0x28, 0x9f, 0x53, 0x70, 0xef,
		0x1c, 0x5c, 0x3b, 0x09, 0x6f, 0x9c, 0x85, 0x37, 0x4e, 0xc3, 0x0b, 0xe7, 0xa1, 0xeb, 0x44, 0x94,
		0x9d, 0x49, 0x7e, 0xc2, 0x0c, 0xdb, 0x60, 0xd8, 0x86, 0xe6, 0x83, 0x53, 0x2f, 0x32, 0xf1, 0x3b,
		0xb8, 0x8a, 0xf7, 0x04, 0x06, 0xa7, 0x55, 0x94, 0x61, 0x1b, 0xe8, 0xaa, 0xb7, 0x04, 0xc1, 0x9d,
		0x54, 0x86, 0x6d, 0xac, 0xae, 0xb4, 0x74, 0xcb, 0xe6, 0xd9, 0x0c, 0xba, 0x65, 0x49, 0x5d, 0x90,
		0xba, 0x20, 0x75, 0x41, 0xea, 0x82, 0xd4, 0x45, 0x41, 0x53, 0x17, 0x74, 0xcb, 0x96, 0x82, 0x94,
		0xd1, 0x2d, 0x0b, 0x7d, 0x80, 0x3e, 0x40, 0x1f, 0xa0, 0x0f, 0xd0, 0x07, 0xd5, 0x10, 0x9c, 0x6e,
		0x59, 0x17, 0xb6, 0xc5, 0xed, 0x07, 0xb7, 0x1f, 0xf3, 0xed, 0x92, 0xdb, 0x0f, 0xba, 0x65, 0x51,
		0x52, 0x2f, 0xd9, 0x81, 0x3b, 0xa9, 0x74, 0xcb, 0x16, 0x00, 0xca, 0xe8, 0x96, 0x7d, 0x42, 0xc7,
		0x5d, 0xde, 0xcc, 0xc4, 0xd2, 0xd5, 0x39, 0x9d, 0x78, 0x47, 0xa3, 0xc3, 0x61, 0xf9, 0xea, 0x12,
		0x2f, 0x97, 0xe5, 0xab, 0x52, 0x89, 0x30, 0x96, 0xaf, 0x96, 0x28, 0xe1, 0x45, 0x3f, 0x08, 0xfd,
		0x20, 0xd6, 0x4e, 0x92, 0x7e, 0x10, 0xfa, 0x41, 0xca, 0xe7, 0x14, 0xdc, 0x3b, 0x07, 0xd7, 0x4e,
		0xc2, 0x1b, 0x67, 0xe1, 0x8d, 0xd3, 0xf0, 0xc2, 0x79, 0xb8, 0xc9, 0x40, 0xd0, 0x0f, 0xa2, 0x8e,
		0xee, 0xf4, 0x83, 0x28, 0x3e, 0x38, 0x37, 0x22, 0x13, 0xbf, 0x83, 0x64, 0xb3, 0x27, 0x30, 0x38,
		0xad, 0xa2, 0xf4, 0x83, 0xa0, 0xab, 0xde, 0x12, 0x04, 0x77, 0x52, 0xe9, 0x07, 0x59, 0x5d, 0x69,
		0x59, 0xbe, 0x4a, 0x90, 0x4d, 0x90, 0x4d, 0x90, 0x4d, 0x90, 0x4d, 0x90, 0xad, 0x69, 0xef, 0x74,
		0x2e, 0x94, 0x85, 0x3e, 0xd0, 0x4e, 0x1a, 0xd0, 0x4e, 0x0a, 0x29, 0x83, 0x94, 0x41, 0xca, 0x20,
		0x65, 0x90, 0x32, 0x48, 0x19, 0xa4, 0xcc, 0x31, 0x29, 0xa3, 0x9d, 0x14, 0xfa, 0x00, 0x7d, 0x80,
		0x3e, 0x40, 0x1f, 0xa0, 0x0f, 0xaa, 0x21, 0x38, 0xed, 0xa4, 0x2e, 0x6c, 0x8b, 0xe2, 0x09, 0x8a,
		0x27, 0xe6, 0xdb, 0x25, 0xc5, 0x13, 0xb4, 0x93, 0xa2, 0xa4, 0x5e, 0xb2, 0x03, 0x77, 0x52, 0x69,
		0x27, 0x2d, 0x00, 0x94, 0xd1, 0x4e, 0xba, 0x50, 0x3b, 0x29, 0x5b, 0x58, 0x1f, 0xee, 0x26, 0x65,
		0x1b, 0xab, 0x2f, 0xc6, 0xcd, 0x36, 0xd6, 0xa7, 0x18, 0x33, 0x6b, 0x59, 0x27, 0xcd, 0xb7, 0xb0,
		0xeb, 0x59, 0x9f, 0x15, 0xc8, 0x40, 0x2b, 0xe6, 0x36, 0x4b, 0xa3, 0xb0, 0xd7, 0x7f, 0xab, 0xe7,
		0x2d, 0xd9, 0x2c, 0x4a, 0xe5, 0xdb, 0x95, 0x49, 0xc4, 0x73, 0x05, 0x8a, 0x4b, 0x4f, 0x5f, 0xbc,
		0xc8, 0xad, 0x3c, 0xec, 0x5b, 0x54, 0xf0, 0x47, 0xf0, 0x7c, 0x98, 0xe1, 0x0b, 0xb3, 0xef, 0x1d,
		0xd3, 0x7d, 0x5b, 0xab, 0x7f, 0xa9, 0x9e, 0x1d, 0xec, 0xbe, 0xdb, 0x3f, 0xd8, 0x7f, 0x7f, 0xf6,
		0xf9, 0xb0, 0xb6, 0xb7, 0x7b, 0x7c, 0xf2, 0xbc, 0xe4, 0x4b, 0x52, 0x07, 0x2f, 0x79, 0x9d, 0x56,
		0xa4, 0x2e, 0xa9, 0x05, 0xa5, 0x98, 0x3e, 0xf1, 0xde, 0x74, 0x1b, 0x69, 0xdc, 0x51, 0x25, 0xeb,
		0xb9, 0xf9, 0xd5, 0x92, 0x46, 0xab, 0xd7, 0x34, 0x41, 0x76, 0x15, 0x77, 0x83, 0x46, 0x3b, 0xc9,
		0xa2, 0x38, 0x31, 0x69, 0x70, 0xd1, 0x4e, 0x83, 0x5a, 0xfd, 0xa6, 0x1a, 0x8c, 0x5c, 0x4c, 0x30,
		0xf2, 0x31, 0x41, 0xb7, 0x63, 0x1a, 0xf1, 0x45, 0xdc, 0xf8, 0x3a, 0x72, 0x79, 0xbd, 0x74, 0x48,
		0x48, 0x94, 0x74, 0xc6, 0xc1, 0xcd, 0xcc, 0xa4, 0x5d, 0x36, 0x27, 0x5e, 0x95, 0x62, 0xb8, 0xe0,
		0xf2, 0x1a, 0x66, 0xca, 0x4c, 0x6d, 0x69, 0x0b, 0xe1, 0x84, 0xd3, 0x6f, 0x3f, 0x2d, 0x14, 0xbb,
		0x52, 0x0a, 0x7b, 0x7c, 0x0f, 0x77, 0x04, 0x01, 0xc7, 0xd3, 0x80, 0x46, 0x06, 0x26, 0xec, 0x9b,
		0x95, 0x80, 0xe2, 0x57, 0x06, 0x1a, 0x30, 0x7e, 0xf3, 0x52, 0x6a, 0x9f, 0xb3, 0x80, 0x29, 0x69,
		0x42, 0x66, 0x2c, 0x3b, 0x80, 0x4a, 0xbc, 0x54, 0x46, 0xa3, 0x24, 0x46, 0xaf, 0xf4, 0x45, 0x8b,
		0x48, 0xa9, 0x97, 0xb2, 0xa8, 0x73, 0x25, 0xd5, 0xd2, 0x94, 0x62, 0xa5, 0x45, 0xa4, 0x07, 0x3c,
		0x55, 0x1a, 0x63, 0x9b, 0x17, 0x56, 0xe2, 0xb1, 0x59, 0xaa, 0x8c, 0x9d, 0x54, 0x9a, 0xd4, 0xa7,
		0x56, 0x5b, 0xa8, 0x59, 0x4b, 0xa8, 0x5f, 0x3b, 0xe8, 0x32, 0x4b, 0xa4, 0x5a, 0x1b, 0xe8, 0x47,
		0x9e, 0x48, 0xab, 0xf6, 0xaf, 0xd8, 0x17, 0x45, 0x5a, 0x93, 0xf5, 0x2a, 0xe6, 0x36, 0x33, 0x49,
		0xd3, 0x34, 0xc3, 0xc4, 0xdc, 0x66, 0xe1, 0x55, 0xbb, 0x13, 0xf6, 0x23, 0x87, 0x66, 0x9c, 0x5c,
		0xea, 0x67, 0xb2, 0x1e, 0xf9, 0x2d, 0x5a, 0x03, 0x0d, 0x1d, 0xf4, 0xf0, 0x69, 0xf6, 0xee, 0x9d,
		0xea, 0x8e, 0xaa, 0xdd, 0xd0, 0x1e, 0x55, 0xbb, 0xc1, 0xa8, 0xda, 0xe2, 0x3b, 0x48, 0xe7, 0x8e,
		0xd2, 0xb9, 0xc3, 0x74, 0xea, 0x38, 0x75, 0x1c, 0xa8, 0x92, 0x23, 0xcd, 0x4f, 0x52, 0xbd, 0x38,
		0xde, 0x61, 0x4f, 0x9d, 0x72, 0x2f, 0x5d, 0x49, 0x26, 0xc8, 0x9b, 0xa4, 0x19, 0x36, 0x87, 0xfe,
		0x3f, 0x4c, 0xdb, 0x3d, 0x27, 0xe3, 0xe4, 0x67, 0x7f, 0x03, 0xc4, 0x07, 0xe2, 0x03, 0xf1, 0x81,
		0xf8, 0x40, 0x7c, 0x20, 0x3e, 0x10, 0x9f, 0xb5, 0x23, 0x3e, 0x54, 0x3b, 0x2f, 0x42, 0xe1, 0x3c,
		0xbb, 0xfe, 0x1f, 0x57, 0x39, 0xab, 0xed, 0xba, 0xf2, 0xa6, 0x0a, 0x60, 0x5c, 0xcf, 0xac, 0xb1,
		0xc8, 0x4a, 0xb0, 0x84, 0x59, 0xf0, 0xf6, 0x76, 0xb2, 0xf2, 0x5d, 0xef, 0xfa, 0x6b, 0x4a, 0x2a,
		0x97, 0x60, 0xbe, 0x52, 0x5f, 0x2e, 0xc1, 0xca, 0x47, 0x6d, 0xb9, 0x04, 0x5b, 0x3c, 0x29, 0xa1,
		0x75, 0x09, 0xa6, 0x54, 0x85, 0x30, 0x63, 0xde, 0xaa, 0x4b, 0x30, 0x9d, 0xed, 0x0f, 0x24, 0x37,
		0x41, 0x6e, 0x82, 0xdc, 0x04, 0xb9, 0x09, 0x77, 0x00, 0x9f, 0x0b, 0x64, 0x7f, 0x20, 0x63, 0xf0,
		0x82, 0xf2, 0x3b, 0x07, 0xd7, 0x4e, 0xc2, 0x1b, 0x67, 0xe1, 0x8d, 0xd3, 0xf0, 0xc2, 0x79, 0xe8,
		0x3a, 0x11, 0x65, 0x67, 0x92, 0x9f, 0x30, 0xfb, 0x03, 0xd9, 0x1f, 0xa8, 0xf9, 0xe0, 0x8c, 0xc0,
		0x9b, 0xf8, 0x1d, 0x4c, 0x17, 0xf3, 0x04, 0x06, 0xa7, 0x55, 0x94, 0xfd, 0x81, 0xe8, 0xaa, 0xb7,
		0x04, 0xc1, 0x9d, 0x54, 0xf6, 0x07, 0xae, 0xae, 0xb4, 0x2c, 0x00, 0xca, 0xb3, 0x19, 0x2c, 0x00,
		0x22, 0x75, 0x41, 0xea, 0x82, 0xd4, 0x05, 0xa9, 0x0b, 0x52, 0x17, 0x05, 0x4d, 0x5d, 0xb0, 0x00,
		0xa8, 0x14, 0xa4, 0x8c, 0x05, 0x40, 0xd0, 0x07, 0xe8, 0x03, 0xf4, 0x01, 0xfa, 0x00, 0x7d, 0x50,
		0x0d, 0xc1, 0x59, 0x00, 0xe4, 0xc2, 0xb6, 0xb8, 0xfd, 0xe0, 0xf6, 0x63, 0xbe, 0x5d, 0x72, 0xfb,
		0xc1, 0x02, 0x20, 0x94, 0xd4, 0x4b, 0x76, 0xe0, 0x4e, 0x2a, 0x0b, 0x80, 0x0a, 0x00, 0x65, 0x2c,
		0x00, 0xba, 0xd7, 0x45, 0x37, 0xd9, 0xbb, 0xf4, 0x52, 0xb5, 0x72, 0x3e, 0xf0, 0xb1, 0xb5, 0x6e,
		0x62, 0x55, 0x88, 0x4a, 0x9b, 0x9d, 0x9e, 0x91, 0xa9, 0x4c, 0xfb, 0x18, 0xec, 0x44, 0xd2, 0x1f,
		0xf0, 0xa1, 0xb8, 0xa6, 0xca, 0x59, 0xbf, 0xc7, 0x16, 0xfd, 0x1e, 0xe5, 0x49, 0x68, 0xd1, 0xef,
		0x41, 0xbf, 0x87, 0xb5, 0x93, 0xa4, 0xdf, 0x83, 0x7e, 0x8f, 0xf2, 0x39, 0x05, 0xf7, 0xce, 0xc1,
		0xb5, 0x93, 0xf0, 0xc6, 0x59, 0x78, 0xe3, 0x34, 0xbc, 0x70, 0x1e, 0x6e, 0x32, 0x0c, 0xf4, 0x7b,
		0xa8, 0xa3, 0x3b, 0xfd, 0x1e, 0x8a, 0x0f, 0xce, 0x8d, 0xc7, 0xc4, 0xef, 0x20, 0x99, 0xec, 0x09,
		0x0c, 0x4e, 0xab, 0x28, 0xfd, 0x1e, 0xe8, 0xaa, 0xb7, 0x04, 0xc1, 0x9d, 0x54, 0xfa, 0x3d, 0x56,
		0x57, 0xda, 0xa9, 0x95, 0xdd, 0xe6, 0xb6, 0x61, 0x4c, 0xd3, 0x34, 0x9d, 0x36, 0x7d, 0xcc, 0xf9,
		0x39, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0xa5, 0x09, 0xb2, 0xe9, 0x4c,
		0x28, 0x0b, 0x7d, 0xa0, 0x5d, 0x34, 0xa0, 0x5d, 0x14, 0x52, 0x06, 0x29, 0x83, 0x94, 0x41, 0xca,
		0x20, 0x65, 0x90, 0x32, 0x48, 0x99, 0x63, 0x52, 0x46, 0xbb, 0x28, 0xf4, 0x01, 0xfa, 0x00, 0x7d,
		0x80, 0x3e, 0x40, 0x1f, 0x54, 0x43, 0x70, 0xda, 0x45, 0x5d, 0xd8, 0x16, 0xc5, 0x13, 0x14, 0x4f,
		0xcc, 0xb7, 0x4b, 0x8a, 0x27, 0x68, 0x17, 0x45, 0x49, 0xbd, 0x64, 0x07, 0xee, 0xa4, 0xd2, 0x2e,
		0x5a, 0x00, 0x28, 0xa3, 0x5d, 0xf4, 0xb1, 0x76, 0x51, 0xcd, 0xbe, 0xbb, 0xc0, 0xf7, 0x6e, 0xd1,
		0xe3, 0xc1, 0x61, 0xb0, 0x21, 0xd5, 0xbd, 0xf1, 0xb2, 0x21, 0x75, 0x8e, 0xb1, 0xae, 0xe3, 0x9e,
		0xd4, 0x09, 0xf3, 0x64, 0x59, 0xea, 0xec, 0xeb, 0x9a, 0x2a, 0xf2, 0x4b, 0x4d, 0xc3, 0xc4, 0x37,
		0x0a, 0x35, 0x87, 0xf3, 0x6b, 0x0c, 0x73, 0xf1, 0xac, 0x4f, 0x5d, 0x48, 0x10, 0xeb, 0x53, 0xad,
		0x6a, 0x07, 0xeb, 0x53, 0x59, 0x9f, 0xfa, 0x93, 0x13, 0x63, 0x7d, 0x6a, 0x01, 0x01, 0x59, 0x1d,
		0x98, 0x5d, 0x00, 0xb4, 0x3b, 0xa0, 0x76, 0x05, 0xd8, 0xce, 0x81, 0xdb, 0x39, 0x80, 0x3b, 0x05,
		0xf2, 0x72, 0xa6, 0x7c, 0x18, 0xa7, 0xc1, 0x38, 0x8d, 0xf2, 0x39, 0x05, 0xf7, 0xce, 0xc1, 0xb5,
		0x93, 0xf0, 0xc6, 0x59, 0x78, 0xe3, 0x34, 0xbc, 0x70, 0x1e, 0xba, 0x4e, 0x44, 0xd9, 0x99, 0xe4,
		0x27, 0xcc, 0x38, 0x0d, 0xc6, 0x69, 0x68, 0x3e, 0x38, 0x15, 0x21, 0x13, 0xbf, 0x83, 0xcb, 0x76,
		0x4f, 0x60, 0x70, 0x5a, 0x45, 0x19, 0xa7, 0x81, 0xae, 0x7a, 0x4b, 0x10, 0xdc, 0x49, 0x65, 0x9c,
		0xc6, 0xea, 0x4a, 0x4b, 0x3f, 0x6c, 0x9e, 0xcd, 0xa0, 0x1f, 0x96, 0xd4, 0x05, 0xa9, 0x0b, 0x52,
		0x17, 0xa4, 0x2e, 0x48, 0x5d, 0x14, 0x34, 0x75, 0x41, 0x3f, 0x6c, 0x29, 0x48, 0x19, 0xfd, 0xb0,
		0xd0, 0x07, 0xe8, 0x03, 0xf4, 0x01, 0xfa, 0x00, 0x7d, 0x50, 0x0d, 0xc1, 0xe9, 0x87, 0x75, 0x61,
		0x5b, 0xdc, 0x7e, 0x70, 0xfb, 0x31, 0xdf, 0x2e, 0xb9, 0xfd, 0xa0, 0x1f, 0x16, 0x25, 0xf5, 0x92,
		0x1d, 0xb8, 0x93, 0x4a, 0x3f, 0x6c, 0x01, 0xa0, 0x8c, 0x7e, 0xd8, 0x47, 0x5a, 0xec, 0xf2, 0x26,
		0x26, 0xf6, 0xa8, 0x4e, 0xb6, 0xde, 0x1d, 0x8d, 0x4e, 0x85, 0x7d, 0xaa, 0x4b, 0xbc, 0x55, 0xf6,
		0xa9, 0x4a, 0x65, 0xbe, 0xd8, 0xa7, 0x5a, 0xa2, 0x0c, 0x17, 0x0d, 0x20, 0x34, 0x80, 0x58, 0x3b,
		0x49, 0x1a, 0x40, 0x68, 0x00, 0x29, 0x9f, 0x53, 0x70, 0xef, 0x1c, 0x5c, 0x3b, 0x09, 0x6f, 0x9c,
		0x85, 0x37, 0x4e, 0xc3, 0x0b, 0xe7, 0xe1, 0x26, 0xe5, 0x40, 0x03, 0x88, 0x3a, 0xba, 0xd3, 0x00,
		0xa2, 0xf8, 0xe0, 0x5c, 0x81, 0x4c, 0xfc, 0x0e, 0xb2, 0xcb, 0x9e, 0xc0, 0xe0, 0xb4, 0x8a, 0xd2,
		0x00, 0x82, 0xae, 0x7a, 0x4b, 0x10, 0xdc, 0x49, 0xa5, 0x01, 0x64, 0x75, 0xa5, 0x65, 0x9f, 0x2a,
		0x41, 0x36, 0x41, 0x36, 0x41, 0x36, 0x41, 0x36, 0x41, 0xb6, 0xa6, 0xbd, 0xd3, 0xaa, 0x50, 0x16,
		0xfa, 0x40, 0xff, 0x68, 0x40, 0xff, 0x28, 0xa4, 0x0c, 0x52, 0x06, 0x29, 0x83, 0x94, 0x41, 0xca,
		0x20, 0x65, 0x90, 0x32, 0xc7, 0xa4, 0x8c, 0xfe, 0x51, 0xe8, 0x03, 0xf4, 0x01, 0xfa, 0x00, 0x7d,
		0x80, 0x3e, 0xa8, 0x86, 0xe0, 0xf4, 0x8f, 0xba, 0xb0, 0x2d, 0x8a, 0x27, 0x28, 0x9e, 0x98, 0x6f,
		0x97, 0x14, 0x4f, 0xd0, 0x3f, 0x8a, 0x92, 0x7a, 0xc9, 0x0e, 0xdc, 0x49, 0xa5, 0x7f, 0xb4, 0x00,
		0x50, 0x46, 0xff, 0xe8, 0x93, 0xfa, 0x47, 0x59, 0xac, 0x3a, 0xa7, 0x7d, 0x94, 0x05, 0xab, 0xbe,
		0x58, 0x33, 0x0b, 0x56, 0x1f, 0xb3, 0xde, 0x35, 0xdf, 0xb4, 0x3a, 0xb6, 0x57, 0x36, 0xae, 0xce,
		0x7b, 0x6d, 0x1a, 0xfd, 0xdc, 0xaa, 0x7d, 0xdc, 0xea, 0x1b, 0x55, 0xb7, 0xd8, 0xa8, 0xba, 0x82,
		0x44, 0x36, 0xaa, 0x8a, 0x33, 0x5c, 0x36, 0xaa, 0x2e, 0x78, 0x62, 0x6a, 0x1b, 0x55, 0xcd, 0x6d,
		0x66, 0x92, 0xa6, 0x69, 0x86, 0x89, 0xb9, 0xcd, 0xc2, 0xab, 0x76, 0x27, 0xec, 0xfb, 0xcd, 0x66,
		0x9c, 0x38, 0xd8, 0xb2, 0xfa, 0xc8, 0x6f, 0xd1, 0x6a, 0x73, 0x77, 0x50, 0xd9, 0xa5, 0x59, 0xd1,
		0x75, 0xaa, 0x3b, 0xc0, 0x64, 0x83, 0x0d, 0xb6, 0x05, 0x76, 0x8c, 0xae, 0x1c, 0xa4, 0x73, 0x47,
		0xe9, 0xdc, 0x61, 0x3a, 0x75, 0x9c, 0xe5, 0x4c, 0xb2, 0xa9, 0x5f, 0x99, 0x3a, 0xac, 0xb4, 0x52,
		0xae, 0xb0, 0x2a, 0xc9, 0x5c, 0x31, 0x93, 0x34, 0xc3, 0xe6, 0xd0, 0xff, 0x87, 0x69, 0xbb, 0xe7,
		0x64, 0xc8, 0xd8, 0xec, 0x6f, 0x80, 0xf8, 0x40, 0x7c, 0x20, 0x3e, 0x10, 0x1f, 0x88, 0x0f, 0xc4,
		0x07, 0xe2, 0xb3, 0x76, 0xc4, 0x87, 0x2b, 0xb1, 0x45, 0x28, 0x9c, 0xa7, 0x57, 0x62, 0x5a, 0x57,
		0xd7, 0xde, 0x5d, 0x81, 0x29, 0x5c, 0x4f, 0x0b, 0x5e, 0x7a, 0x3d, 0x2b, 0x90, 0xcd, 0x55, 0xcc,
		0x6d, 0x96, 0x46, 0x61, 0xaf, 0xff, 0x02, 0xcf, 0x5b, 0xb2, 0x80, 0x5f, 0xf9, 0x76, 0x65, 0x12,
		0xf1, 0x48, 0x41, 0xf1, 0xaa, 0xe9, 0xc5, 0x8b, 0xdc, 0x70, 0xc3, 0xbe, 0xf1, 0x04, 0x7f, 0x04,
		0xcf, 0x87, 0xa4, 0x23, 0xcc, 0xbe, 0x77, 0x4c, 0xf7, 0x6d, 0xad, 0xfe, 0xa5, 0x7a, 0xf6, 0xf9,
		0xb0, 0xb6, 0xb7, 0x7b, 0x7c, 0xf2, 0xbc, 0xe4, 0x57, 0x52, 0x83, 0x97, 0xbb, 0x4e, 0x17, 0x52,
		0x0b, 0xbe, 0xfd, 0x52, 0x24, 0x3b, 0xde, 0x9b, 0x6e, 0x23, 0x8d, 0x3b, 0xaa, 0x35, 0x67, 0xb9,
		0xb9, 0xd5, 0x92, 0x46, 0xab, 0xd7, 0x34, 0x41, 0x76, 0x15, 0x77, 0x83, 0x46, 0x3b, 0xc9, 0xa2,
		0x38, 0x31, 0x69, 0x70, 0xd1, 0x4e, 0x83, 0x5a, 0xfd, 0xa6, 0x1a, 0x8c, 0xbc, 0x47, 0xd0, 0xed,
		0x98, 0x46, 0x7c, 0x11, 0x37, 0xbe, 0x8e, 0xbc, 0x58, 0x2f, 0x1d, 0x72, 0x09, 0x25, 0x1d, 0x71,
		0x10, 0xfc, 0x4d, 0xda, 0x61, 0x73, 0xe2, 0x15, 0x29, 0x32, 0x68, 0x97, 0x91, 0xdf, 0x94, 0x59,
		0xae, 0xaa, 0x25, 0x44, 0x00, 0x4e, 0xbf, 0xfd, 0xb4, 0x50, 0xec, 0x49, 0x29, 0x52, 0xf1, 0x35,
		0x42, 0xa9, 0x88, 0xd6, 0x77, 0x79, 0x15, 0x93, 0xc8, 0xe0, 0x82, 0x7d, 0x3b, 0x12, 0xd0, 0xf4,
		0x4a, 0xfc, 0xff, 0xb3, 0xf7, 0xb7, 0xbd, 0x6d, 0x5b, 0xcf, 0xda, 0x37, 0xfc, 0x3e, 0x9f, 0x82,
		0x10, 0x36, 0xd0, 0x16, 0x28, 0xe3, 0x87, 0xf8, 0xa1, 0x31, 0xd0, 0x17, 0x8a, 0xad, 0x24, 0xda,
		0xdb, 0x96, 0x75, 0x4b, 0x72, 0xfe, 0xed, 0xdd, 0x7a, 0x0b, 0xb4, 0xb4, 0xec, 0xf0, 0xda, 0x32,
		0xa5, 0x8b, 0xa4, 0xdc, 0x04, 0x6d, 0xbe, 0xfb, 0x05, 0xc9, 0x12, 0x2d, 0xc5, 0x72, 0x63, 0xc7,
		0x5c, 0x33, 0x8b, 0xd4, 0x2f, 0x38, 0x71, 0x6e, 0xff, 0xd3, 0x58, 0x4b, 0x5c, 0x9c, 0x35, 0x73,
		0xcc, 0xb1, 0xe6, 0x98, 0x19, 0xdd, 0xec, 0xf9, 0x83, 0xe0, 0xc2, 0x0c, 0x4c, 0x3f, 0x7b, 0xf5,
		0xb6, 0xec, 0x3d, 0x0b, 0xf7, 0x2b, 0x57, 0xb5, 0x74, 0x8e, 0xed, 0x16, 0xde, 0x59, 0xa7, 0xdb,
		0x25, 0xe8, 0x75, 0x39, 0x3a, 0x5d, 0x0a, 0x41, 0x89, 0xd3, 0xe5, 0xe2, 0x20, 0x49, 0x94, 0x0e,
		0x2f, 0x16, 0xef, 0x61, 0xbb, 0x50, 0x6e, 0xa9, 0x4d, 0xa9, 0x5c, 0x99, 0xf2, 0xd2, 0xaa, 0x25,
		0xab, 0x56, 0xde, 0xa4, 0x5a, 0xb9, 0x98, 0xd4, 0x10, 0xd5, 0xca, 0x45, 0x4d, 0xf3, 0xca, 0x52,
		0xad, 0xdc, 0x9b, 0xfb, 0x10, 0x61, 0xca, 0x4a, 0x74, 0x78, 0xa5, 0xda, 0xf8, 0x3f, 0x8a, 0x48,
		0x4a, 0xe0, 0xb0, 0xd5, 0x1d, 0xb7, 0xba, 0x03, 0x57, 0x75, 0xe4, 0x32, 0x0e, 0x5d, 0xc8, 0xb1,
		0x8b, 0x3b, 0xf8, 0x6c, 0x41, 0xc6, 0xff, 0xd1, 0xc5, 0xce, 0x2b, 0x7f, 0x70, 0xd0, 0x0e, 0x12,
		0xce, 0x04, 0x0b, 0x67, 0x82, 0x86, 0x13, 0xc1, 0x43, 0x36, 0x88, 0x08, 0x07, 0x93, 0x6c, 0x87,
		0x19, 0xff, 0xc7, 0xf8, 0x3f, 0xc9, 0x07, 0xa7, 0x83, 0xdd, 0xc2, 0xf7, 0xa0, 0x39, 0x98, 0x23,
		0x6e, 0x70, 0xd9, 0x44, 0x19, 0xff, 0x87, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0x65, 0xfc, 0xdf,
		0xf3, 0x8d, 0x96, 0xf9, 0x3d, 0x19, 0x9b, 0xc1, 0xfc, 0x1e, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b,
		0xa8, 0x0b, 0xa8, 0x8b, 0x82, 0x52, 0x17, 0xcc, 0xef, 0x29, 0x05, 0x28, 0x63, 0x7e, 0x0f, 0xf0,
		0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0xe6, 0xf7, 0x68, 0x9c, 0x2d,
		0x6e, 0x3f, 0xb8, 0xfd, 0x58, 0x7d, 0x2e, 0xb9, 0xfd, 0x60, 0x7e, 0x0f, 0x46, 0xea, 0x24, 0x3a,
		0xd0, 0x5b, 0x95, 0xf9, 0x3d, 0x05, 0x70, 0x65, 0xcc, 0xef, 0x99, 0x8a, 0x89, 0xef, 0x69, 0x3c,
		0x97, 0x26, 0x81, 0x6c, 0x88, 0x56, 0xd0, 0x7b, 0x0e, 0x09, 0x8f, 0xf7, 0x8e, 0x6f, 0xb7, 0x65,
		0xc5, 0x58, 0x90, 0xee, 0x8c, 0x72, 0xa0, 0x4b, 0xeb, 0x13, 0x5e, 0x6a, 0xa0, 0xd2, 0x98, 0x55,
		0x70, 0xf8, 0x94, 0x9a, 0xfc, 0x63, 0x1b, 0xf9, 0x47, 0x79, 0xf8, 0x2d, 0xe4, 0x1f, 0xc8, 0x3f,
		0x72, 0xdb, 0x49, 0xe4, 0x1f, 0xc8, 0x3f, 0xca, 0x17, 0x14, 0xf4, 0x83, 0x83, 0x76, 0x90, 0x70,
		0x26, 0x58, 0x38, 0x13, 0x34, 0x9c, 0x08, 0x1e, 0x3a, 0x84, 0x03, 0xf2, 0x0f, 0x71, 0xef, 0x8e,
		0xfc, 0x43, 0xf0, 0xc1, 0xb9, 0x00, 0x59, 0xf8, 0x1e, 0x70, 0xcb, 0x8e, 0xb8, 0xc1, 0x65, 0x13,
		0x45, 0xfe, 0x81, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0x45, 0xfe, 0xf1, 0x7c, 0xa3, 0x5d, 0x9a,
		0xcb, 0x6d, 0x3e, 0xf5, 0x8c, 0xe9, 0x9b, 0xbe, 0xaa, 0x06, 0x64, 0xc5, 0xd7, 0x21, 0xc9, 0x26,
		0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x2e, 0x4d, 0x92, 0x8d, 0x50, 0xa1, 0x2c, 0xf0, 0x01,
		0xf5, 0xa8, 0x87, 0x7a, 0x14, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32,
		0x40, 0x99, 0x32, 0x28, 0x43, 0x3d, 0x0a, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07,
		0xd1, 0x14, 0x1c, 0xf5, 0xa8, 0xc6, 0xd9, 0xa2, 0x78, 0x82, 0xe2, 0x89, 0xd5, 0xe7, 0x92, 0xe2,
		0x09, 0xd4, 0xa3, 0x18, 0xa9, 0x93, 0xe8, 0x40, 0x6f, 0x55, 0xd4, 0xa3, 0x05, 0x70, 0x65, 0xa8,
		0x47, 0x1f, 0xa3, 0x1e, 0x95, 0xd4, 0xdf, 0x79, 0x05, 0x11, 0x8f, 0xb6, 0xa7, 0x7b, 0xc2, 0x98,
		0x6b, 0xfd, 0xb3, 0x2c, 0x7d, 0x86, 0x0b, 0x75, 0x76, 0x2b, 0x22, 0xaa, 0x60, 0xd7, 0x4f, 0x6b,
		0xa5, 0xa0, 0x63, 0xdc, 0x2d, 0x9e, 0x9c, 0xe5, 0x12, 0xc0, 0xd8, 0xf4, 0x4c, 0x78, 0x23, 0x50,
		0x91, 0xb8, 0xba, 0x02, 0x31, 0x5b, 0x9e, 0x59, 0xab, 0x4f, 0x5a, 0x88, 0x59, 0xab, 0xb9, 0x5a,
		0x07, 0xb3, 0x56, 0x99, 0xb5, 0xfa, 0x8d, 0x1d, 0x63, 0xd6, 0x6a, 0x01, 0x1d, 0xb2, 0xb8, 0x63,
		0xd6, 0x70, 0xd0, 0x7a, 0x8e, 0x5a, 0xcb, 0x61, 0xab, 0x3b, 0x6e, 0x75, 0x07, 0xae, 0xea, 0xc8,
		0xcb, 0x49, 0x08, 0xd1, 0x6c, 0x83, 0x66, 0x1b, 0xe5, 0x0b, 0x0a, 0xfa, 0xc1, 0x41, 0x3b, 0x48,
		0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a, 0x4e, 0x04, 0x0f, 0xd9, 0x20, 0x22, 0x1c, 0x4c, 0xb2, 0x1d,
		0xa6, 0xd9, 0x06, 0xcd, 0x36, 0x24, 0x1f, 0x9c, 0x7a, 0x91, 0x85, 0xef, 0xc1, 0x55, 0xbc, 0x23,
		0x6e, 0x70, 0xd9, 0x44, 0x69, 0xb6, 0x81, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0xa5, 0xd9, 0xc6,
		0xf3, 0x8d, 0x16, 0xb5, 0x6c, 0xc6, 0x66, 0xa0, 0x96, 0x85, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80,
		0xba, 0x80, 0xba, 0x28, 0x28, 0x75, 0x81, 0x5a, 0xb6, 0x14, 0xa0, 0x0c, 0xb5, 0x2c, 0xf0, 0x01,
		0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0xd4, 0xb2, 0x1a, 0x67, 0x8b, 0xdb,
		0x0f, 0x6e, 0x3f, 0x56, 0x9f, 0x4b, 0x6e, 0x3f, 0x50, 0xcb, 0x62, 0xa4, 0x4e, 0xa2, 0x03, 0xbd,
		0x55, 0x51, 0xcb, 0x16, 0xc0, 0x95, 0xa1, 0x96, 0x7d, 0x84, 0xe2, 0x2e, 0x13, 0x33, 0x31, 0x74,
		0x75, 0x85, 0x12, 0xaf, 0x35, 0xdb, 0x1c, 0x86, 0xaf, 0x7e, 0xc7, 0xcb, 0x65, 0xf8, 0xaa, 0x2d,
		0x22, 0x8c, 0xe1, 0xab, 0x25, 0x22, 0xbc, 0xd0, 0x83, 0xa0, 0x07, 0xc9, 0x6d, 0x27, 0xd1, 0x83,
		0xa0, 0x07, 0x29, 0x5f, 0x50, 0xd0, 0x0f, 0x0e, 0xda, 0x41, 0xc2, 0x99, 0x60, 0xe1, 0x4c, 0xd0,
		0x70, 0x22, 0x78, 0xe8, 0x30, 0x10, 0xe8, 0x41, 0xc4, 0xbd, 0x3b, 0x7a, 0x10, 0xc1, 0x07, 0xe7,
		0x46, 0x64, 0xe1, 0x7b, 0x40, 0x36, 0x3b, 0xe2, 0x06, 0x97, 0x4d, 0x14, 0x3d, 0x08, 0xb6, 0xea,
		0x2c, 0x40, 0xd0, 0x5b, 0x15, 0x3d, 0xc8, 0xf3, 0x8d, 0x96, 0xe1, 0xab, 0x24, 0xd9, 0x24, 0xd9,
		0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9, 0x92, 0xe7, 0x1d, 0xe5, 0x42, 0x59, 0xe0, 0x03, 0x72, 0x52,
		0x0f, 0x39, 0x29, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32,
		0x65, 0x50, 0x86, 0x9c, 0x14, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa2, 0x29,
		0x38, 0x72, 0x52, 0x8d, 0xb3, 0x45, 0xf1, 0x04, 0xc5, 0x13, 0xab, 0xcf, 0x25, 0xc5, 0x13, 0xc8,
		0x49, 0x31, 0x52, 0x27, 0xd1, 0x81, 0xde, 0xaa, 0xc8, 0x49, 0x0b, 0xe0, 0xca, 0x90, 0x93, 0x3e,
		0x49, 0x4e, 0xca, 0x14, 0xd6, 0x87, 0xd5, 0xa4, 0x4c, 0x63, 0x75, 0xe5, 0x70, 0x33, 0x8d, 0xf5,
		0x31, 0x87, 0x99, 0xb1, 0xac, 0x8b, 0xc7, 0xb7, 0xb0, 0xe3, 0x59, 0x5f, 0x14, 0xe8, 0x80, 0x56,
		0xcc, 0xa7, 0x34, 0x0e, 0xfc, 0xf1, 0xe4, 0xad, 0x5e, 0x0c, 0xec, 0xb2, 0x28, 0x95, 0xbf, 0x3e,
		0x9a, 0xc8, 0x3a, 0x57, 0x20, 0x38, 0xf4, 0xf4, 0xe5, 0xcb, 0xec, 0x94, 0xfb, 0x93, 0x13, 0xe5,
		0xfd, 0xea, 0xfd, 0x70, 0xcb, 0xf0, 0xf9, 0xe9, 0xe7, 0x91, 0x49, 0x0e, 0xea, 0xcd, 0x0f, 0x7b,
		0xdd, 0xe3, 0xea, 0x9b, 0xda, 0x71, 0xed, 0xa8, 0x7b, 0xd6, 0xa8, 0x1f, 0x56, 0xdb, 0x9d, 0x1f,
		0x4a, 0x3e, 0x24, 0x75, 0xfa, 0x92, 0xd7, 0x69, 0x44, 0xea, 0x77, 0x5a, 0x41, 0x29, 0xba, 0x4f,
		0x1c, 0x99, 0xa4, 0x17, 0x87, 0x23, 0x51, 0xb0, 0x9e, 0x1d, 0xbf, 0x7a, 0xd4, 0x1b, 0x8c, 0xfb,
		0xc6, 0x4b, 0x3f, 0x86, 0x89, 0xd7, 0x1b, 0x46, 0x69, 0x10, 0x46, 0x26, 0xf6, 0x2e, 0x87, 0xb1,
		0x57, 0x6f, 0xde, 0xec, 0x79, 0xb3, 0x10, 0xe3, 0xcd, 0x62, 0x8c, 0x97, 0x8c, 0x4c, 0x2f, 0xbc,
		0x0c, 0x7b, 0x7f, 0xce, 0x42, 0xde, 0x38, 0xbe, 0x05, 0x24, 0x42, 0x36, 0xa3, 0x70, 0x33, 0xb3,
		0x78, 0x2e, 0xfb, 0x0b, 0xaf, 0x4a, 0x30, 0x5d, 0xd0, 0xbc, 0x86, 0x59, 0x3a, 0xa6, 0x79, 0x59,
		0x0b, 0xe9, 0x84, 0xea, 0xa7, 0x9f, 0x17, 0x0a, 0x5d, 0x09, 0xa5, 0x3d, 0xae, 0xa7, 0x3b, 0x16,
		0x1d, 0x8e, 0xa3, 0x09, 0x8d, 0x1d, 0x37, 0x91, 0xff, 0xb1, 0xb2, 0x60, 0xf8, 0x95, 0xa9, 0x05,
		0xcc, 0xdf, 0xbc, 0x2d, 0xb3, 0xcf, 0x50, 0xc0, 0xd2, 0x6a, 0x96, 0x8e, 0xb1, 0xdd, 0x06, 0x54,
		0xd6, 0x4b, 0x65, 0x24, 0x4a, 0x62, 0xe4, 0x4a, 0x5f, 0xa4, 0x80, 0x94, 0x78, 0x29, 0x8b, 0x38,
		0x56, 0x12, 0x2d, 0x4d, 0x29, 0x16, 0x2d, 0x62, 0xbb, 0xc1, 0x53, 0xa5, 0x37, 0x3f, 0xf3, 0x96,
		0x8d, 0x78, 0x7e, 0x2c, 0x45, 0xda, 0x4e, 0x0a, 0x75, 0xea, 0x13, 0xab, 0x2d, 0x94, 0xac, 0x25,
		0x94, 0xaf, 0x1d, 0xd4, 0x64, 0x89, 0x44, 0x6b, 0x03, 0xdd, 0xe0, 0x89, 0xa4, 0x6a, 0xff, 0x8a,
		0x7d, 0x51, 0x24, 0xd5, 0x59, 0xaf, 0x92, 0x98, 0xa8, 0xef, 0xf7, 0x6f, 0xa5, 0x6b, 0x7e, 0x3c,
		0x1c, 0xab, 0x74, 0x51, 0xbd, 0xff, 0x1d, 0xa4, 0x1a, 0x18, 0x2a, 0x68, 0xf6, 0x24, 0xb5, 0x7a,
		0xe7, 0xb2, 0xad, 0x69, 0x37, 0xa5, 0x5b, 0xd3, 0x6e, 0xd2, 0x9a, 0xb6, 0xf8, 0x01, 0x51, 0x3d,
		0x30, 0xaa, 0x07, 0x48, 0xd5, 0x40, 0x29, 0x13, 0x30, 0x85, 0x02, 0x67, 0xb6, 0x93, 0xe2, 0xc5,
		0xf0, 0x8a, 0x1a, 0x3a, 0x61, 0xed, 0x1c, 0x45, 0x3e, 0xdf, 0x38, 0xc4, 0x6b, 0x5e, 0xe4, 0x33,
		0x2f, 0xee, 0x11, 0x1b, 0xf1, 0xe0, 0x0c, 0xf9, 0x3d, 0x2f, 0xe3, 0x91, 0x98, 0xdf, 0x60, 0xb1,
		0x72, 0xc7, 0x22, 0x69, 0xb9, 0x58, 0xf0, 0x25, 0xc7, 0xfa, 0x2c, 0xad, 0x0a, 0xf7, 0x03, 0xf7,
		0x03, 0xf7, 0x03, 0xf7, 0x03, 0xf7, 0x23, 0x44, 0xbe, 0xdf, 0x3b, 0xde, 0xa2, 0xb3, 0x9f, 0xd4,
		0xc6, 0xe6, 0xc0, 0x4d, 0xc0, 0x4d, 0xc0, 0x4d, 0xc0, 0x4d, 0xe8, 0x39, 0xf8, 0x6c, 0x41, 0xc6,
		0xe6, 0xd0, 0xfd, 0xc5, 0x2b, 0x7f, 0x70, 0xd0, 0x0e, 0x12, 0xce, 0x04, 0x0b, 0x67, 0x82, 0x86,
		0x13, 0xc1, 0x43, 0x36, 0x88, 0x08, 0x07, 0x93, 0x6c, 0x87, 0x19, 0x9b, 0xc3, 0xd8, 0x1c, 0xc9,
		0x07, 0xa7, 0xf3, 0xcb, 0xc2, 0xf7, 0xa0, 0xa9, 0x86, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0x19, 0x9b,
		0x83, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0x65, 0x6c, 0xce, 0xf3, 0x8d, 0x96, 0xbe, 0xf7, 0x19,
		0x9b, 0x41, 0xdf, 0x7b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x8b, 0x82, 0x52,
		0x17, 0xf4, 0xbd, 0x2f, 0x05, 0x28, 0xa3, 0xef, 0x3d, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e,
		0x00, 0x1f, 0x44, 0x53, 0x70, 0xfa, 0xde, 0x6b, 0x9c, 0x2d, 0x6e, 0x3f, 0xb8, 0xfd, 0x58, 0x7d,
		0x2e, 0xb9, 0xfd, 0xa0, 0xef, 0x3d, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x95, 0xbe, 0xf7, 0x05,
		0x70, 0x65, 0xf4, 0xbd, 0xff, 0x4a, 0x45, 0xb7, 0xa8, 0x5d, 0xda, 0x10, 0xad, 0x9c, 0xf7, 0x5c,
		0x94, 0xd6, 0x2d, 0x74, 0xc8, 0x16, 0x91, 0xd9, 0xc9, 0x1d, 0xb2, 0x2f, 0x22, 0x42, 0xc9, 0x40,
		0xa5, 0xc1, 0x87, 0xe0, 0x74, 0x06, 0x35, 0xbd, 0xc7, 0x36, 0x7a, 0x8f, 0xf2, 0x10, 0x5a, 0xe8,
		0x3d, 0xd0, 0x7b, 0xe4, 0xb6, 0x93, 0xe8, 0x3d, 0xd0, 0x7b, 0x94, 0x2f, 0x28, 0xe8, 0x07, 0x07,
		0xed, 0x20, 0xe1, 0x4c, 0xb0, 0x70, 0x26, 0x68, 0x38, 0x11, 0x3c, 0x74, 0x18, 0x06, 0xf4, 0x1e,
		0xe2, 0xde, 0x1d, 0xbd, 0x87, 0xe0, 0x83, 0x73, 0xe3, 0xb1, 0xf0, 0x3d, 0x20, 0x93, 0x1d, 0x71,
		0x83, 0xcb, 0x26, 0x8a, 0xde, 0x03, 0x5b, 0x75, 0x16, 0x20, 0xe8, 0xad, 0x8a, 0xde, 0xe3, 0xf9,
		0x46, 0xbb, 0x34, 0xa9, 0xd2, 0x7c, 0xea, 0x19, 0xd3, 0x37, 0x7d, 0x55, 0xd1, 0xc7, 0x8a, 0xaf,
		0x43, 0x92, 0x4d, 0x92, 0x4d, 0x92, 0x4d, 0x92, 0x4d, 0x92, 0x5d, 0x9a, 0x24, 0x1b, 0x65, 0x42,
		0x59, 0xe0, 0x03, 0x72, 0x51, 0x0f, 0xb9, 0x28, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01,
		0xca, 0x00, 0x65, 0x80, 0x32, 0x65, 0x50, 0x86, 0x5c, 0x14, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00,
		0x1f, 0x80, 0x0f, 0xa2, 0x29, 0x38, 0x72, 0x51, 0x8d, 0xb3, 0x45, 0xf1, 0x04, 0xc5, 0x13, 0xab,
		0xcf, 0x25, 0xc5, 0x13, 0xc8, 0x45, 0x31, 0x52, 0x27, 0xd1, 0x81, 0xde, 0xaa, 0xc8, 0x45, 0x0b,
		0xe0, 0xca, 0x90, 0x8b, 0xfe, 0x9b, 0x5c, 0x54, 0x52, 0x77, 0xe7, 0xb9, 0xae, 0x16, 0x6d, 0x4f,
		0x37, 0x83, 0x09, 0xa9, 0xfa, 0x87, 0x97, 0x09, 0xa9, 0x2b, 0x0e, 0xeb, 0x3a, 0xce, 0x49, 0x5d,
		0x38, 0x9e, 0x0c, 0x4b, 0xbd, 0xff, 0xba, 0x96, 0x8a, 0xfc, 0x62, 0xd3, 0x33, 0xe1, 0x8d, 0x40,
		0xcd, 0xe1, 0xea, 0x1a, 0xc3, 0x6c, 0x79, 0xc6, 0xa7, 0x3e, 0x69, 0x21, 0xc6, 0xa7, 0xe6, 0x6a,
		0x1d, 0x8c, 0x4f, 0x65, 0x7c, 0xea, 0x37, 0x76, 0x8c, 0xf1, 0xa9, 0x05, 0x74, 0xc8, 0xe2, 0x8e,
		0x59, 0xc3, 0x41, 0xeb, 0x39, 0x6a, 0x2d, 0x87, 0xad, 0xee, 0xb8, 0xd5, 0x1d, 0xb8, 0xaa, 0x23,
		0x2f, 0x27, 0xe5, 0x43, 0x3b, 0x0d, 0xda, 0x69, 0x94, 0x2f, 0x28, 0xe8, 0x07, 0x07, 0xed, 0x20,
		0xe1, 0x4c, 0xb0, 0x70, 0x26, 0x68, 0x38, 0x11, 0x3c, 0x64, 0x83, 0x88, 0x70, 0x30, 0xc9, 0x76,
		0x98, 0x76, 0x1a, 0xb4, 0xd3, 0x90, 0x7c, 0x70, 0x2a, 0x42, 0x16, 0xbe, 0x07, 0x97, 0xed, 0x8e,
		0xb8, 0xc1, 0x65, 0x13, 0xa5, 0x9d, 0x06, 0xb6, 0xea, 0x2c, 0x40, 0xd0, 0x5b, 0x95, 0x76, 0x1a,
		0xcf, 0x37, 0x5a, 0xf4, 0xb0, 0x19, 0x9b, 0x81, 0x1e, 0x16, 0xea, 0x02, 0xea, 0x02, 0xea, 0x02,
		0xea, 0x02, 0xea, 0xa2, 0xa0, 0xd4, 0x05, 0x7a, 0xd8, 0x52, 0x80, 0x32, 0xf4, 0xb0, 0xc0, 0x07,
		0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x4d, 0xc1, 0xd1, 0xc3, 0x6a, 0x9c, 0x2d, 0x6e,
		0x3f, 0xb8, 0xfd, 0x58, 0x7d, 0x2e, 0xb9, 0xfd, 0x40, 0x0f, 0x8b, 0x91, 0x3a, 0x89, 0x0e, 0xf4,
		0x56, 0x45, 0x0f, 0x5b, 0x00, 0x57, 0x86, 0x1e, 0xf6, 0x5f, 0x24, 0x76, 0x99, 0x88, 0x89, 0x39,
		0xaa, 0x8b, 0xd2, 0xbb, 0xd6, 0x6c, 0x57, 0x98, 0xa7, 0xfa, 0x1d, 0x6f, 0x95, 0x79, 0xaa, 0xb6,
		0x98, 0x2f, 0xe6, 0xa9, 0x96, 0x88, 0xe1, 0x42, 0x00, 0x82, 0x00, 0x24, 0xb7, 0x9d, 0x44, 0x00,
		0x82, 0x00, 0xa4, 0x7c, 0x41, 0x41, 0x3f, 0x38, 0x68, 0x07, 0x09, 0x67, 0x82, 0x85, 0x33, 0x41,
		0xc3, 0x89, 0xe0, 0xa1, 0x43, 0x39, 0x20, 0x00, 0x11, 0xf7, 0xee, 0x08, 0x40, 0x04, 0x1f, 0x9c,
		0x2b, 0x90, 0x85, 0xef, 0x01, 0xbb, 0xec, 0x88, 0x1b, 0x5c, 0x36, 0x51, 0x04, 0x20, 0xd8, 0xaa,
		0xb3, 0x00, 0x41, 0x6f, 0x55, 0x04, 0x20, 0xcf, 0x37, 0x5a, 0xe6, 0xa9, 0x92, 0x64, 0x93, 0x64,
		0x93, 0x64, 0x93, 0x64, 0x93, 0x64, 0x4b, 0x9e, 0x77, 0xa4, 0x0a, 0x65, 0x81, 0x0f, 0xe8, 0x47,
		0x3d, 0xf4, 0xa3, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca,
		0x94, 0x41, 0x19, 0xfa, 0x51, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0xa6,
		0xe0, 0xe8, 0x47, 0x35, 0xce, 0x16, 0xc5, 0x13, 0x14, 0x4f, 0xac, 0x3e, 0x97, 0x14, 0x4f, 0xa0,
		0x1f, 0xc5, 0x48, 0x9d, 0x44, 0x07, 0x7a, 0xab, 0xa2, 0x1f, 0x2d, 0x80, 0x2b, 0x43, 0x3f, 0xfa,
		0x28, 0xfd, 0x28, 0x83, 0x55, 0x57, 0xc8, 0x47, 0x19, 0xb0, 0xea, 0xca, 0x69, 0x66, 0xc0, 0xea,
		0xbf, 0x9d, 0xde, 0x35, 0x9f, 0xb4, 0x3a, 0x3f, 0xaf, 0x4c, 0x5c, 0x5d, 0xf5, 0xda, 0x24, 0xf4,
		0xdc, 0xa2, 0x3a, 0x6e, 0xf1, 0x89, 0xaa, 0xdb, 0x4c, 0x54, 0x7d, 0xc6, 0x8a, 0x4c, 0x54, 0xb5,
		0x8e, 0x70, 0x99, 0xa8, 0xfa, 0xc4, 0x1d, 0x13, 0x9b, 0xa8, 0x9a, 0x98, 0xa8, 0xef, 0xf7, 0x6f,
		0x0b, 0x9a, 0xfc, 0x78, 0x38, 0x56, 0xe9, 0xad, 0x71, 0xff, 0x3b, 0x48, 0xc9, 0xda, 0x15, 0x2a,
		0xb9, 0x24, 0x2b, 0xb8, 0xce, 0x65, 0x1b, 0x96, 0x6c, 0x32, 0xb1, 0xb6, 0xc0, 0x81, 0x50, 0x2b,
		0x20, 0xaa, 0x07, 0x46, 0xf5, 0x00, 0xa9, 0x1a, 0x28, 0xcb, 0x49, 0xaa, 0x89, 0x5f, 0x91, 0x2a,
		0x56, 0x56, 0x09, 0x57, 0x54, 0xc1, 0x04, 0xc1, 0x04, 0x3d, 0x86, 0x09, 0x92, 0x62, 0x6c, 0x9d,
		0x63, 0x7e, 0x04, 0x58, 0x59, 0x8b, 0x5c, 0xcf, 0x8b, 0x02, 0x9d, 0xb9, 0x8a, 0xf9, 0x94, 0xc6,
		0x81, 0x3f, 0x9e, 0xbc, 0xc0, 0x8b, 0x81, 0x5d, 0x87, 0x5f, 0xf9, 0xeb, 0xa3, 0x89, 0xac, 0x67,
		0x0a, 0x82, 0x0c, 0xcb, 0xcb, 0x97, 0xd9, 0xc1, 0xf5, 0x27, 0x87, 0xc7, 0xfb, 0xd5, 0xfb, 0xe1,
		0x16, 0x74, 0xf8, 0xe9, 0xe7, 0x91, 0x49, 0x0e, 0xea, 0xcd, 0x0f, 0x7b, 0xdd, 0xb3, 0x46, 0xfd,
		0xb0, 0xda, 0xee, 0xfc, 0x50, 0x72, 0x26, 0x66, 0xfa, 0x72, 0xd7, 0x89, 0x87, 0x79, 0xe2, 0xdb,
		0x2f, 0x45, 0xef, 0xd0, 0x23, 0x93, 0xf4, 0xe2, 0x70, 0x24, 0x7a, 0xd5, 0x9a, 0x1d, 0xb7, 0x7a,
		0xd4, 0x1b, 0x8c, 0xfb, 0xc6, 0x4b, 0x3f, 0x86, 0x89, 0xd7, 0x1b, 0x46, 0x69, 0x10, 0x46, 0x26,
		0xf6, 0x2e, 0x87, 0xb1, 0x57, 0x6f, 0xde, 0xec, 0x79, 0xb3, 0xe8, 0xe1, 0x25, 0x23, 0xd3, 0x0b,
		0x2f, 0xc3, 0xde, 0x9f, 0xb3, 0x28, 0x36, 0x8e, 0x6f, 0xb1, 0x84, 0x90, 0x8d, 0x28, 0x24, 0x7f,
		0x8b, 0xe7, 0xb0, 0xbf, 0xf0, 0x8a, 0x04, 0x11, 0xb4, 0x66, 0xe6, 0xb7, 0x74, 0x2c, 0x9f, 0x6b,
		0x25, 0x64, 0x00, 0xaa, 0x9f, 0x7e, 0x5e, 0x28, 0xf4, 0x24, 0x94, 0xa9, 0xb8, 0x9a, 0xa1, 0x54,
		0xac, 0x5e, 0x6b, 0x3a, 0x95, 0x93, 0xd8, 0xf1, 0x0b, 0xf9, 0x9f, 0x23, 0x0b, 0x96, 0x5e, 0x19,
		0x6c, 0xdf, 0x8c, 0x22, 0xdf, 0xdc, 0x8c, 0xec, 0x59, 0x79, 0x16, 0xe4, 0x17, 0xd6, 0xb2, 0x74,
		0x66, 0xed, 0xde, 0x2d, 0x5b, 0xa7, 0xd6, 0x25, 0xa8, 0x74, 0x39, 0xea, 0x5c, 0x0a, 0x2d, 0x89,
		0x53, 0xe3, 0xe2, 0x80, 0x48, 0x94, 0xfa, 0x2e, 0x16, 0xc7, 0x61, 0xfb, 0x2e, 0x78, 0xa9, 0x13,
		0x97, 0x5c, 0x25, 0xce, 0xd2, 0xaa, 0x25, 0x2b, 0xc8, 0xd9, 0xa4, 0x20, 0xa7, 0x98, 0x34, 0x10,
		0x05, 0x39, 0x45, 0x4d, 0xe9, 0xca, 0x52, 0x90, 0xd3, 0x9b, 0xfb, 0x10, 0x61, 0x7a, 0x4a, 0x74,
		0x3e, 0x93, 0xda, 0x84, 0x1b, 0x0a, 0x46, 0x4a, 0xe0, 0xb0, 0xd5, 0x1d, 0xb7, 0xba, 0x03, 0x57,
		0x75, 0xe4, 0x32, 0x0e, 0x5d, 0xc8, 0xb1, 0x8b, 0x3b, 0xf8, 0x6c, 0x41, 0x26, 0xdc, 0xd0, 0xa8,
		0xc5, 0x2b, 0x7f, 0x70, 0xd0, 0x0e, 0x12, 0xce, 0x04, 0x0b, 0x67, 0x82, 0x86, 0x13, 0xc1, 0x43,
		0x36, 0x88, 0x08, 0x07, 0x93, 0x6c, 0x87, 0x99, 0x70, 0xc3, 0x84, 0x1b, 0xc9, 0x07, 0xa7, 0x49,
		0xcb, 0xc2, 0xf7, 0xa0, 0xff, 0x85, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0x99, 0x70, 0x83, 0xad, 0x3a,
		0x0b, 0x10, 0xf4, 0x56, 0x65, 0xc2, 0xcd, 0xf3, 0x8d, 0x96, 0x16, 0xf5, 0x19, 0x9b, 0x41, 0x8b,
		0x7a, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x8b, 0x82, 0x52, 0x17, 0xb4, 0xa8,
		0x2f, 0x05, 0x28, 0xa3, 0x45, 0x3d, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44,
		0x53, 0x70, 0x5a, 0xd4, 0x6b, 0x9c, 0x2d, 0x6e, 0x3f, 0xb8, 0xfd, 0x58, 0x7d, 0x2e, 0xb9, 0xfd,
		0xa0, 0x45, 0x3d, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x95, 0x16, 0xf5, 0x05, 0x70, 0x65, 0xb4,
		0xa8, 0x0f, 0x37, 0xee, 0x94, 0x9d, 0x4b, 0x2d, 0xae, 0x37, 0x44, 0xeb, 0xe6, 0x3d, 0x57, 0xa4,
		0xc5, 0xc7, 0xdb, 0x1f, 0x46, 0x51, 0xed, 0x66, 0x14, 0x2d, 0xb6, 0xb9, 0xee, 0xce, 0xf8, 0x85,
		0xb2, 0xf4, 0x20, 0x10, 0x69, 0x5d, 0x15, 0xa8, 0x74, 0x5c, 0x15, 0x1c, 0xa6, 0xa0, 0xa6, 0xf5,
		0xd8, 0x46, 0xeb, 0x51, 0x1e, 0x32, 0x0b, 0xad, 0x07, 0x5a, 0x8f, 0xdc, 0x76, 0x12, 0xad, 0x07,
		0x5a, 0x8f, 0xf2, 0x05, 0x05, 0xfd, 0xe0, 0xa0, 0x1d, 0x24, 0x9c, 0x09, 0x16, 0xce, 0x04, 0x0d,
		0x27, 0x82, 0x87, 0x0e, 0xbb, 0x80, 0xd6, 0x43, 0xdc, 0xbb, 0xa3, 0xf5, 0x10, 0x7c, 0x70, 0x6e,
		0x3b, 0x16, 0xbe, 0x07, 0x44, 0xb2, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0xd1, 0x7a, 0x60, 0xab, 0xce,
		0x02, 0x04, 0xbd, 0x55, 0xd1, 0x7a, 0x3c, 0xdf, 0x68, 0x97, 0xe6, 0x4c, 0x9a, 0x4f, 0x3d, 0x63,
		0xfa, 0xa6, 0xaf, 0x2a, 0xf8, 0x58, 0xf1, 0x75, 0x48, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2,
		0x49, 0xb2, 0x4b, 0x93, 0x64, 0xa3, 0x4a, 0x28, 0x0b, 0x7c, 0x40, 0x2a, 0xea, 0x21, 0x15, 0x05,
		0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0xa6, 0x0c, 0xca, 0x90,
		0x8a, 0x02, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x41, 0x34, 0x05, 0x47, 0x2a, 0xaa,
		0x71, 0xb6, 0x28, 0x9e, 0xa0, 0x78, 0x62, 0xf5, 0xb9, 0xa4, 0x78, 0x02, 0xa9, 0x28, 0x46, 0xea,
		0x24, 0x3a, 0xd0, 0x5b, 0x15, 0xa9, 0x68, 0x01, 0x5c, 0x19, 0x52, 0xd1, 0x87, 0xa5, 0xa2, 0x92,
		0xaa, 0x3b, 0xcf, 0x6d, 0xa5, 0x68, 0x7b, 0xba, 0x15, 0x0c, 0xab, 0xd6, 0x3f, 0xb8, 0xd2, 0x07,
		0xb6, 0x00, 0x07, 0xb5, 0x22, 0x22, 0xfc, 0x75, 0xf4, 0x68, 0x56, 0x0a, 0x3a, 0x79, 0xdd, 0xe2,
		0x31, 0x59, 0x2e, 0xee, 0x8b, 0x4d, 0xcf, 0x84, 0x37, 0x02, 0xb5, 0x86, 0xab, 0x6b, 0x0b, 0xb3,
		0xe5, 0x19, 0x99, 0xfa, 0xa4, 0x85, 0x18, 0x99, 0x9a, 0xab, 0x75, 0x30, 0x32, 0x95, 0x91, 0xa9,
		0xdf, 0xd8, 0x31, 0x46, 0xa6, 0x16, 0xd0, 0x21, 0x8b, 0x3b, 0x66, 0x0d, 0x07, 0xad, 0xe7, 0xa8,
		0xb5, 0x1c, 0xb6, 0xba, 0xe3, 0x56, 0x77, 0xe0, 0xaa, 0x8e, 0xbc, 0x9c, 0x54, 0x0f, 0x6d, 0x34,
		0x68, 0xa3, 0x51, 0xbe, 0xa0, 0xa0, 0x1f, 0x1c, 0xb4, 0x83, 0x84, 0x33, 0xc1, 0xc2, 0x99, 0xa0,
		0xe1, 0x44, 0xf0, 0x90, 0x0d, 0x22, 0xc2, 0xc1, 0x24, 0xdb, 0x61, 0xda, 0x68, 0xd0, 0x46, 0x43,
		0xf2, 0xc1, 0xa9, 0x04, 0x59, 0xf8, 0x1e, 0x5c, 0xb2, 0x3b, 0xe2, 0x06, 0x97, 0x4d, 0x94, 0x36,
		0x1a, 0xd8, 0xaa, 0xb3, 0x00, 0x41, 0x6f, 0x55, 0xda, 0x68, 0x3c, 0xdf, 0x68, 0xd1, 0xc1, 0x66,
		0x6c, 0x06, 0x3a, 0x58, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x8b, 0x82, 0x52,
		0x17, 0xe8, 0x60, 0x4b, 0x01, 0xca, 0xd0, 0xc1, 0x02, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03,
		0xf0, 0x41, 0x34, 0x05, 0x47, 0x07, 0xab, 0x71, 0xb6, 0xb8, 0xfd, 0xe0, 0xf6, 0x63, 0xf5, 0xb9,
		0xe4, 0xf6, 0x03, 0x1d, 0x2c, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x15, 0x1d, 0x6c, 0x01, 0x5c,
		0x19, 0x3a, 0xd8, 0x07, 0xe5, 0x75, 0x99, 0x84, 0x89, 0xd9, 0xa9, 0x77, 0xb2, 0xbb, 0xd6, 0x6c,
		0x4f, 0x98, 0xa1, 0xfa, 0x1d, 0xef, 0x94, 0x19, 0xaa, 0xb6, 0x58, 0x2f, 0x66, 0xa8, 0x96, 0x88,
		0xdd, 0x42, 0xfc, 0x81, 0xf8, 0x23, 0xb7, 0x9d, 0x44, 0xfc, 0x81, 0xf8, 0xa3, 0x7c, 0x41, 0x41,
		0x3f, 0x38, 0x68, 0x07, 0x09, 0x67, 0x82, 0x85, 0x33, 0x41, 0xc3, 0x89, 0xe0, 0xa1, 0x43, 0x37,
		0x20, 0xfe, 0x10, 0xf7, 0xee, 0x88, 0x3f, 0x04, 0x1f, 0x9c, 0xeb, 0x8f, 0x85, 0xef, 0x01, 0xb3,
		0xec, 0x88, 0x1b, 0x5c, 0x36, 0x51, 0xc4, 0x1f, 0xd8, 0xaa, 0xb3, 0x00, 0x41, 0x6f, 0x55, 0xc4,
		0x1f, 0xcf, 0x37, 0x5a, 0x66, 0xa8, 0x92, 0x64, 0x93, 0x64, 0x93, 0x64, 0x93, 0x64, 0x93, 0x64,
		0x4b, 0x9e, 0x77, 0x64, 0x0a, 0x65, 0x81, 0x0f, 0x68, 0x47, 0x3d, 0xb4, 0xa3, 0x80, 0x32, 0x40,
		0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x94, 0x41, 0x19, 0xda, 0x51, 0xe0,
		0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0xa6, 0xe0, 0x68, 0x47, 0x35, 0xce, 0x16,
		0xc5, 0x13, 0x14, 0x4f, 0xac, 0x3e, 0x97, 0x14, 0x4f, 0xa0, 0x1d, 0xc5, 0x48, 0x9d, 0x44, 0x07,
		0x7a, 0xab, 0xa2, 0x1d, 0x2d, 0x80, 0x2b, 0x43, 0x3b, 0xfa, 0x08, 0xed, 0x28, 0xc3, 0x54, 0xef,
		0x49, 0x47, 0x19, 0xaa, 0xea, 0xca, 0x49, 0x66, 0xa8, 0xea, 0xc3, 0x27, 0x77, 0xad, 0xa7, 0xab,
		0xce, 0xcf, 0x6a, 0x61, 0xa7, 0xac, 0xbe, 0x28, 0xd0, 0x69, 0xac, 0x98, 0x4f, 0x69, 0x1c, 0xf8,
		0xe3, 0xc9, 0xcb, 0xbc, 0x18, 0xd8, 0xe5, 0x47, 0x2a, 0x7f, 0x7d, 0x34, 0x91, 0x75, 0x16, 0x40,
		0x70, 0x76, 0xe9, 0xcb, 0x97, 0xd9, 0x91, 0xf6, 0x27, 0x07, 0xc9, 0xfb, 0xd5, 0xfb, 0xe1, 0x96,
		0xbb, 0xf3, 0xd3, 0xcf, 0x23, 0x93, 0x1c, 0x1c, 0x6f, 0x7f, 0x68, 0x36, 0xba, 0xb5, 0x0f, 0xcd,
		0xc6, 0x0f, 0x25, 0x9f, 0x70, 0x3a, 0x7d, 0xb5, 0xeb, 0x34, 0xdf, 0xf4, 0x49, 0xef, 0xbe, 0x14,
		0x3d, 0x24, 0x8e, 0x4c, 0xd2, 0x8b, 0xc3, 0x91, 0x28, 0xe4, 0xce, 0x8e, 0x5a, 0x3d, 0xea, 0x0d,
		0xc6, 0x7d, 0xe3, 0xa5, 0x1f, 0xc3, 0xc4, 0xeb, 0x0d, 0xa3, 0x34, 0x08, 0x23, 0x13, 0x7b, 0x97,
		0xc3, 0xd8, 0x7b, 0xf3, 0xae, 0xe9, 0x4d, 0xb6, 0xd9, 0x4b, 0x46, 0xa6, 0x17, 0x5e, 0x86, 0xbd,
		0x3f, 0x67, 0x91, 0x6c, 0x1c, 0xdf, 0xa2, 0x0b, 0x21, 0xeb, 0x50, 0xb8, 0x53, 0x59, 0x3c, 0x81,
		0xfd, 0x85, 0xd7, 0x23, 0x08, 0xf9, 0x35, 0x2f, 0x50, 0x96, 0x0e, 0xe4, 0x73, 0x2c, 0x84, 0x7c,
		0x40, 0xf5, 0xd3, 0xcf, 0x0b, 0x85, 0x98, 0x84, 0xf2, 0x16, 0x37, 0xf3, 0x15, 0x8b, 0xae, 0xc5,
		0xad, 0x8c, 0xc4, 0x8e, 0x4f, 0xc8, 0xff, 0x0c, 0x59, 0xb0, 0xf2, 0xca, 0xed, 0xeb, 0xbe, 0x19,
		0x0d, 0xec, 0x35, 0x11, 0xc9, 0x02, 0xfb, 0xc2, 0x5a, 0x96, 0xce, 0xab, 0xdd, 0xbe, 0x50, 0xd6,
		0x2b, 0x58, 0x24, 0x2a, 0x55, 0xe4, 0x2a, 0x52, 0xa4, 0x50, 0x92, 0x78, 0x85, 0x89, 0x38, 0x10,
		0x12, 0xad, 0x18, 0x29, 0x16, 0xa7, 0x61, 0xbb, 0xef, 0xd2, 0x92, 0x0a, 0xd3, 0xbe, 0x29, 0xaf,
		0xd2, 0x7e, 0xda, 0xb6, 0x66, 0x99, 0x66, 0x7a, 0x62, 0xe5, 0x7f, 0x92, 0xe5, 0x7e, 0xf2, 0xe5,
		0x7d, 0x9a, 0xc4, 0x8f, 0x68, 0xf9, 0x9e, 0x1b, 0xd4, 0x8f, 0x54, 0x79, 0x5e, 0xb1, 0xaf, 0x77,
		0xa4, 0x9a, 0xdf, 0x55, 0x7a, 0x73, 0x1f, 0x22, 0x4c, 0x49, 0x89, 0x76, 0xe6, 0x55, 0xeb, 0x6e,
		0xba, 0x49, 0x77, 0xd3, 0xe2, 0x3b, 0x6c, 0x75, 0xc7, 0xad, 0xee, 0xc0, 0x55, 0x1d, 0xb9, 0x8c,
		0x43, 0x17, 0x72, 0xec, 0xe2, 0x0e, 0x3e, 0x5b, 0x90, 0xee, 0xa6, 0x88, 0x74, 0xbc, 0xf2, 0x07,
		0x07, 0xed, 0x20, 0xe1, 0x4c, 0xb0, 0x70, 0x26, 0x68, 0x38, 0x11, 0x3c, 0x64, 0x83, 0x88, 0x70,
		0x30, 0xc9, 0x76, 0x98, 0xee, 0xa6, 0x74, 0x37, 0x95, 0x7c, 0x70, 0x04, 0x3a, 0x0b, 0xdf, 0x03,
		0xed, 0x83, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0xe9, 0x6e, 0x8a, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56,
		0xa5, 0xbb, 0xe9, 0xf3, 0x8d, 0x96, 0xf6, 0x64, 0x19, 0x9b, 0x41, 0x7b, 0x32, 0xa8, 0x0b, 0xa8,
		0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x8b, 0x82, 0x52, 0x17, 0xb4, 0x27, 0x2b, 0x05, 0x28, 0xa3,
		0x3d, 0x19, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0xda, 0x93,
		0x69, 0x9c, 0x2d, 0x6e, 0x3f, 0xb8, 0xfd, 0x58, 0x7d, 0x2e, 0xb9, 0xfd, 0xa0, 0x3d, 0x19, 0x46,
		0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x95, 0xf6, 0x64, 0x05, 0x70, 0x65, 0xb4, 0x27, 0x9b, 0x8b, 0x86,
		0x6f, 0x46, 0xd3, 0xdf, 0xbe, 0x53, 0x2e, 0x6d, 0x88, 0xd6, 0xcd, 0x7b, 0x4e, 0x09, 0x8b, 0x3f,
		0x8c, 0xa6, 0xbf, 0x9a, 0xb5, 0x3a, 0xea, 0xce, 0xf8, 0x85, 0xb2, 0xf4, 0x1f, 0x10, 0x69, 0x5b,
		0x15, 0xa4, 0x46, 0x5e, 0xec, 0x21, 0xd9, 0x4a, 0x4f, 0x4d, 0xeb, 0xb1, 0x8d, 0xd6, 0xa3, 0x3c,
		0x64, 0x16, 0x5a, 0x0f, 0xb4, 0x1e, 0xb9, 0xed, 0x24, 0x5a, 0x0f, 0xb4, 0x1e, 0xe5, 0x0b, 0x0a,
		0xfa, 0xc1, 0x41, 0x3b, 0x48, 0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a, 0x4e, 0x04, 0x0f, 0x1d, 0x76,
		0x01, 0xad, 0x87, 0xb8, 0x77, 0x47, 0xeb, 0x21, 0xf8, 0xe0, 0xdc, 0x76, 0x2c, 0x7c, 0x0f, 0x88,
		0x64, 0x47, 0xdc, 0xe0, 0xb2, 0x89, 0xa2, 0xf5, 0xc0, 0x56, 0x9d, 0x05, 0x08, 0x7a, 0xab, 0xa2,
		0xf5, 0x78, 0xbe, 0xd1, 0x2e, 0x4d, 0x1a, 0x30, 0x9f, 0x7a, 0xc6, 0xf4, 0x4d, 0x5f, 0x55, 0xf0,
		0xb1, 0xe2, 0xeb, 0x90, 0x64, 0x93, 0x64, 0x93, 0x64, 0x93, 0x64, 0x93, 0x64, 0x97, 0x26, 0xc9,
		0x46, 0x95, 0x50, 0x16, 0xf8, 0x80, 0x54, 0xd4, 0x43, 0x2a, 0x0a, 0x28, 0x03, 0x94, 0x01, 0xca,
		0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x4c, 0x19, 0x94, 0x21, 0x15, 0x05, 0x3e, 0x00, 0x1f,
		0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x83, 0x68, 0x0a, 0x8e, 0x54, 0x54, 0xe3, 0x6c, 0x51, 0x3c, 0x41,
		0xf1, 0xc4, 0xea, 0x73, 0x49, 0xf1, 0x04, 0x52, 0x51, 0x8c, 0xd4, 0x49, 0x74, 0xa0, 0xb7, 0x2a,
		0x52, 0xd1, 0x02, 0xb8, 0x32, 0xa4, 0xa2, 0x0f, 0x4b, 0x45, 0x25, 0x55, 0x77, 0x9e, 0xdb, 0x4a,
		0xd1, 0xf6, 0x74, 0x2b, 0x18, 0x54, 0xad, 0x7f, 0x70, 0xa5, 0x0f, 0x6c, 0x01, 0x0e, 0x6a, 0x45,
		0x44, 0xf8, 0xeb, 0xe8, 0xd1, 0xac, 0x14, 0x74, 0xea, 0xba, 0xc5, 0x63, 0xb2, 0x5c, 0xdc, 0x17,
		0x9b, 0x9e, 0x09, 0x6f, 0x04, 0x6a, 0x0d, 0x57, 0xd7, 0x16, 0x66, 0xcb, 0x33, 0x32, 0xf5, 0x49,
		0x0b, 0x31, 0x32, 0x35, 0x57, 0xeb, 0x60, 0x64, 0x2a, 0x23, 0x53, 0xbf, 0xb1, 0x63, 0x8c, 0x4c,
		0x2d, 0xa0, 0x43, 0x16, 0x77, 0xcc, 0x1a, 0x0e, 0x5a, 0xcf, 0x51, 0x6b, 0x39, 0x6c, 0x75, 0xc7,
		0xad, 0xee, 0xc0, 0x55, 0x1d, 0x79, 0x39, 0xa9, 0x1e, 0xda, 0x68, 0xd0, 0x46, 0xa3, 0x7c, 0x41,
		0x41, 0x3f, 0x38, 0x68, 0x07, 0x09, 0x67, 0x82, 0x85, 0x33, 0x41, 0xc3, 0x89, 0xe0, 0x21, 0x1b,
		0x44, 0x84, 0x83, 0x49, 0xb6, 0xc3, 0xb4, 0xd1, 0xa0, 0x8d, 0x86, 0xe4, 0x83, 0x53, 0x09, 0xb2,
		0xf0, 0x3d, 0xb8, 0x64, 0x77, 0xc4, 0x0d, 0x2e, 0x9b, 0x28, 0x6d, 0x34, 0xb0, 0x55, 0x67, 0x01,
		0x82, 0xde, 0xaa, 0xb4, 0xd1, 0x78, 0xbe, 0xd1, 0xa2, 0x83, 0xcd, 0xd8, 0x0c, 0x74, 0xb0, 0x50,
		0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x05, 0xa5, 0x2e, 0xd0, 0xc1, 0x96, 0x02,
		0x94, 0xa1, 0x83, 0x05, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x83, 0x68, 0x0a, 0x8e,
		0x0e, 0x56, 0xe3, 0x6c, 0x71, 0xfb, 0xc1, 0xed, 0xc7, 0xea, 0x73, 0xc9, 0xed, 0x07, 0x3a, 0x58,
		0x8c, 0xd4, 0x49, 0x74, 0xa0, 0xb7, 0x2a, 0x3a, 0xd8, 0x02, 0xb8, 0x32, 0x74, 0xb0, 0x0f, 0xca,
		0xeb, 0x32, 0x09, 0x13, 0xb3, 0x53, 0xef, 0x64, 0x77, 0xad, 0xd9, 0x9e, 0x30, 0x43, 0xf5, 0x3b,
		0xde, 0x29, 0x33, 0x54, 0x6d, 0xb1, 0x5e, 0xcc, 0x50, 0x2d, 0x11, 0xbb, 0x85, 0xf8, 0x03, 0xf1,
		0x47, 0x6e, 0x3b, 0x89, 0xf8, 0x03, 0xf1, 0x47, 0xf9, 0x82, 0x82, 0x7e, 0x70, 0xd0, 0x0e, 0x12,
		0xce, 0x04, 0x0b, 0x67, 0x82, 0x86, 0x13, 0xc1, 0x43, 0x87, 0x6e, 0x40, 0xfc, 0x21, 0xee, 0xdd,
		0x11, 0x7f, 0x08, 0x3e, 0x38, 0xd7, 0x1f, 0x0b, 0xdf, 0x03, 0x66, 0xd9, 0x11, 0x37, 0xb8, 0x6c,
		0xa2, 0x88, 0x3f, 0xb0, 0x55, 0x67, 0x01, 0x82, 0xde, 0xaa, 0x88, 0x3f, 0x9e, 0x6f, 0xb4, 0xcc,
		0x50, 0x25, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x96, 0x3c, 0xef, 0xc8, 0x14,
		0xca, 0x02, 0x1f, 0xd0, 0x8e, 0x7a, 0x68, 0x47, 0x01, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c,
		0x50, 0x06, 0x28, 0x03, 0x94, 0x29, 0x83, 0x32, 0xb4, 0xa3, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01,
		0xf8, 0x00, 0x7c, 0x10, 0x4d, 0xc1, 0xd1, 0x8e, 0x6a, 0x9c, 0x2d, 0x8a, 0x27, 0x28, 0x9e, 0x58,
		0x7d, 0x2e, 0x29, 0x9e, 0x40, 0x3b, 0x8a, 0x91, 0x3a, 0x89, 0x0e, 0xf4, 0x56, 0x45, 0x3b, 0x5a,
		0x00, 0x57, 0x86, 0x76, 0xf4, 0x11, 0xda, 0x51, 0x86, 0xa9, 0xde, 0x93, 0x8e, 0x32, 0x54, 0xd5,
		0x95, 0x93, 0xcc, 0x50, 0xd5, 0x87, 0x4f, 0xee, 0x5a, 0x4f, 0x57, 0x9d, 0x9f, 0xd5, 0xc2, 0x4e,
		0x59, 0x7d, 0x51, 0xa0, 0xd3, 0x58, 0x31, 0x9f, 0xd2, 0x38, 0xf0, 0xc7, 0x93, 0x97, 0x79, 0x31,
		0xb0, 0xcb, 0x8f, 0x54, 0xfe, 0xfa, 0x68, 0x22, 0xeb, 0x2c, 0x80, 0xe0, 0xec, 0xd2, 0x97, 0x2f,
		0xb3, 0x23, 0xed, 0x4f, 0x0e, 0x92, 0xf7, 0xab, 0xf7, 0xc3, 0x2d, 0x77, 0xe7, 0xa7, 0x9f, 0x47,
		0x26, 0x39, 0x38, 0xde, 0xfe, 0xd0, 0x6c, 0x74, 0x3f, 0x34, 0x8f, 0xdb, 0x3f, 0x94, 0x7c, 0xc2,
		0xe9, 0xf4, 0xd5, 0xae, 0xd3, 0x7c, 0xd3, 0x27, 0xbd, 0xfb, 0x52, 0xf4, 0x90, 0x38, 0x32, 0x49,
		0x2f, 0x0e, 0x47, 0xa2, 0x90, 0x3b, 0x3b, 0x6a, 0xf5, 0xa8, 0x37, 0x18, 0xf7, 0x8d, 0x97, 0x7e,
		0x0c, 0x13, 0xaf, 0x37, 0x8c, 0xd2, 0x20, 0x8c, 0x4c, 0xec, 0x5d, 0x0e, 0x63, 0xef, 0xcd, 0xbb,
		0xa6, 0x9f, 0x84, 0x57, 0x51, 0x30, 0x18, 0x98, 0xbe, 0x37, 0xd9, 0x70, 0x2f, 0x19, 0x99, 0x5e,
		0x78, 0x19, 0xf6, 0xfe, 0x9c, 0xc5, 0xb4, 0x71, 0x7c, 0x8b, 0x33, 0x84, 0xec, 0x44, 0xe1, 0x76,
		0x65, 0xf1, 0x2c, 0xf6, 0x17, 0x5e, 0x94, 0x20, 0xf8, 0xd7, 0xbc, 0x4a, 0x59, 0x3a, 0x9a, 0xf9,
		0xd8, 0x0a, 0x39, 0x82, 0xea, 0xa7, 0x9f, 0x17, 0x0a, 0x45, 0x09, 0xe5, 0x32, 0x6e, 0xe6, 0x30,
		0x16, 0x9d, 0x8c, 0x5b, 0x59, 0x8a, 0x1d, 0x9f, 0x90, 0xff, 0x19, 0xb2, 0x60, 0xe5, 0x95, 0xc1,
		0xab, 0xc9, 0xeb, 0x0e, 0x47, 0x37, 0x3b, 0xfe, 0xf5, 0x78, 0x90, 0x86, 0xbd, 0x20, 0xb1, 0x57,
		0x32, 0x93, 0x85, 0xfd, 0x95, 0xab, 0x5a, 0x3a, 0xc3, 0x76, 0xfb, 0x47, 0x59, 0xaf, 0x74, 0x91,
		0xa8, 0x68, 0x91, 0xab, 0x5c, 0x91, 0xc2, 0x50, 0xe2, 0x95, 0x28, 0xe2, 0x30, 0x49, 0xb4, 0xb2,
		0xa4, 0x58, 0xdc, 0x87, 0xed, 0xfe, 0x4c, 0x4b, 0x6a, 0x4d, 0xfb, 0xa6, 0xbc, 0x4a, 0x23, 0x6a,
		0xdb, 0x9a, 0x65, 0x9a, 0xee, 0x89, 0x95, 0x09, 0x4a, 0x96, 0x05, 0xca, 0x97, 0x01, 0x6a, 0x12,
		0x44, 0xa2, 0x65, 0x7e, 0x6e, 0x50, 0x44, 0x52, 0x65, 0x7c, 0xc5, 0xbe, 0x06, 0x92, 0x6a, 0x92,
		0x57, 0xe9, 0xcd, 0x7d, 0x88, 0x30, 0x75, 0x25, 0xda, 0xc1, 0x57, 0xad, 0x0b, 0xea, 0x26, 0x5d,
		0x50, 0x8b, 0xef, 0xb0, 0xd5, 0x1d, 0xb7, 0xba, 0x03, 0x57, 0x75, 0xe4, 0x32, 0x0e, 0x5d, 0xc8,
		0xb1, 0x8b, 0x3b, 0xf8, 0x6c, 0x41, 0xba, 0xa0, 0x22, 0xe6, 0xf1, 0xca, 0x1f, 0x1c, 0xb4, 0x83,
		0x84, 0x33, 0xc1, 0xc2, 0x99, 0xa0, 0xe1, 0x44, 0xf0, 0x90, 0x0d, 0x22, 0xc2, 0xc1, 0x24, 0xdb,
		0x61, 0xba, 0xa0, 0xd2, 0x05, 0x55, 0xf2, 0xc1, 0x11, 0xf2, 0x2c, 0x7c, 0x0f, 0x34, 0x12, 0x8e,
		0xb8, 0xc1, 0x65, 0x13, 0xa5, 0x0b, 0x2a, 0xb6, 0xea, 0x2c, 0x40, 0xd0, 0x5b, 0x95, 0x2e, 0xa8,
		0xcf, 0x37, 0x5a, 0xda, 0x98, 0x65, 0x6c, 0x06, 0x6d, 0xcc, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e,
		0xa0, 0x2e, 0xa0, 0x2e, 0x0a, 0x4a, 0x5d, 0xd0, 0xc6, 0xac, 0x14, 0xa0, 0x8c, 0x36, 0x66, 0xc0,
		0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x4d, 0xc1, 0x69, 0x63, 0xa6, 0x71, 0xb6,
		0xb8, 0xfd, 0xe0, 0xf6, 0x63, 0xf5, 0xb9, 0xe4, 0xf6, 0x83, 0x36, 0x66, 0x18, 0xa9, 0x93, 0xe8,
		0x40, 0x6f, 0x55, 0xda, 0x98, 0x15, 0xc0, 0x95, 0xd1, 0xc6, 0x2c, 0xdc, 0x58, 0xa5, 0xf1, 0x5c,
		0x6a, 0x8b, 0xb4, 0x21, 0x5a, 0x41, 0xef, 0x39, 0x23, 0x3b, 0x7e, 0xf5, 0x61, 0x14, 0xd5, 0x47,
		0x37, 0x3b, 0x27, 0xf3, 0x5d, 0x59, 0xec, 0x92, 0xd4, 0x9d, 0x51, 0x0e, 0x65, 0x69, 0x53, 0x20,
		0xd2, 0xf1, 0x2a, 0x48, 0x8d, 0xbc, 0xfe, 0x43, 0xb2, 0x0b, 0x9f, 0x9a, 0xfc, 0x63, 0x1b, 0xf9,
		0x47, 0x79, 0xf8, 0x2d, 0xe4, 0x1f, 0xc8, 0x3f, 0x72, 0xdb, 0x49, 0xe4, 0x1f, 0xc8, 0x3f, 0xca,
		0x17, 0x14, 0xf4, 0x83, 0x83, 0x76, 0x90, 0x70, 0x26, 0x58, 0x38, 0x13, 0x34, 0x9c, 0x08, 0x1e,
		0x3a, 0x84, 0x03, 0xf2, 0x0f, 0x71, 0xef, 0x8e, 0xfc, 0x43, 0xf0, 0xc1, 0xb9, 0x00, 0x59, 0xf8,
		0x1e, 0x70, 0xcb, 0x8e, 0xb8, 0xc1, 0x65, 0x13, 0x45, 0xfe, 0x81, 0xad, 0x3a, 0x0b, 0x10, 0xf4,
		0x56, 0x45, 0xfe, 0xf1, 0x7c, 0xa3, 0x5d, 0x1a, 0x52, 0x60, 0x3e, 0xf5, 0x8c, 0xe9, 0x9b, 0xbe,
		0xaa, 0x06, 0x64, 0xc5, 0xd7, 0x21, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x2e,
		0x4d, 0x92, 0x8d, 0x50, 0xa1, 0x2c, 0xf0, 0x01, 0xf5, 0xa8, 0x87, 0x7a, 0x14, 0x50, 0x06, 0x28,
		0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x99, 0x32, 0x28, 0x43, 0x3d, 0x0a, 0x7c,
		0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x14, 0x1c, 0xf5, 0xa8, 0xc6, 0xd9, 0xa2,
		0x78, 0x82, 0xe2, 0x89, 0xd5, 0xe7, 0x92, 0xe2, 0x09, 0xd4, 0xa3, 0x18, 0xa9, 0x93, 0xe8, 0x40,
		0x6f, 0x55, 0xd4, 0xa3, 0x05, 0x70, 0x65, 0xa8, 0x47, 0x1f, 0xa3, 0x1e, 0x95, 0xd4, 0xdf, 0x79,
		0x05, 0x11, 0x8f, 0xb6, 0xa7, 0x7b, 0xc2, 0x88, 0x6b, 0xfd, 0xb3, 0x2c, 0x7d, 0x86, 0x0b, 0x75,
		0x76, 0x2b, 0x22, 0xaa, 0x60, 0xd7, 0x4f, 0x6b, 0xa5, 0xa0, 0x23, 0xdc, 0x2d, 0x9e, 0x9c, 0xe5,
		0x12, 0xc0, 0xd8, 0xf4, 0x4c, 0x78, 0x23, 0x50, 0x91, 0xb8, 0xba, 0x02, 0x31, 0x5b, 0x9e, 0x59,
		0xab, 0x4f, 0x5a, 0x88, 0x59, 0xab, 0xb9, 0x5a, 0x07, 0xb3, 0x56, 0x99, 0xb5, 0xfa, 0x8d, 0x1d,
		0x63, 0xd6, 0x6a, 0x01, 0x1d, 0xb2, 0xb8, 0x63, 0xd6, 0x70, 0xd0, 0x7a, 0x8e, 0x5a, 0xcb, 0x61,
		0xab, 0x3b, 0x6e, 0x75, 0x07, 0xae, 0xea, 0xc8, 0xcb, 0x49, 0x08, 0xd1, 0x6c, 0x83, 0x66, 0x1b,
		0xe5, 0x0b, 0x0a, 0xfa, 0xc1, 0x41, 0x3b, 0x48, 0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a, 0x4e, 0x04,
		0x0f, 0xd9, 0x20, 0x22, 0x1c, 0x4c, 0xb2, 0x1d, 0xa6, 0xd9, 0x06, 0xcd, 0x36, 0x24, 0x1f, 0x9c,
		0x7a, 0x91, 0x85, 0xef, 0xc1, 0x55, 0xbc, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0x69, 0xb6, 0x81, 0xad,
		0x3a, 0x0b, 0x10, 0xf4, 0x56, 0xa5, 0xd9, 0xc6, 0xf3, 0x8d, 0x16, 0xb5, 0x6c, 0xc6, 0x66, 0xa0,
		0x96, 0x85, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x28, 0x28, 0x75, 0x81, 0x5a,
		0xb6, 0x14, 0xa0, 0x0c, 0xb5, 0x2c, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44,
		0x53, 0x70, 0xd4, 0xb2, 0x1a, 0x67, 0x8b, 0xdb, 0x0f, 0x6e, 0x3f, 0x56, 0x9f, 0x4b, 0x6e, 0x3f,
		0x50, 0xcb, 0x62, 0xa4, 0x4e, 0xa2, 0x03, 0xbd, 0x55, 0x51, 0xcb, 0x16, 0xc0, 0x95, 0xa1, 0x96,
		0x7d, 0x84, 0xe2, 0x2e, 0x13, 0x33, 0x31, 0x74, 0x75, 0x85, 0x12, 0xaf, 0x35, 0xdb, 0x1c, 0x86,
		0xaf, 0x7e, 0xc7, 0xcb, 0x65, 0xf8, 0xaa, 0x2d, 0x22, 0x8c, 0xe1, 0xab, 0x25, 0x22, 0xbc, 0xd0,
		0x83, 0xa0, 0x07, 0xc9, 0x6d, 0x27, 0xd1, 0x83, 0xa0, 0x07, 0x29, 0x5f, 0x50, 0xd0, 0x0f, 0x0e,
		0xda, 0x41, 0xc2, 0x99, 0x60, 0xe1, 0x4c, 0xd0, 0x70, 0x22, 0x78, 0xe8, 0x30, 0x10, 0xe8, 0x41,
		0xc4, 0xbd, 0x3b, 0x7a, 0x10, 0xc1, 0x07, 0xe7, 0x46, 0x64, 0xe1, 0x7b, 0x40, 0x36, 0x3b, 0xe2,
		0x06, 0x97, 0x4d, 0x14, 0x3d, 0x08, 0xb6, 0xea, 0x2c, 0x40, 0xd0, 0x5b, 0x15, 0x3d, 0xc8, 0xf3,
		0x8d, 0x96, 0xe1, 0xab, 0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9, 0x92, 0xe7,
		0x1d, 0xe5, 0x42, 0x59, 0xe0, 0x03, 0x72, 0x52, 0x0f, 0x39, 0x29, 0xa0, 0x0c, 0x50, 0x06, 0x28,
		0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x65, 0x50, 0x86, 0x9c, 0x14, 0xf8, 0x00, 0x7c,
		0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa2, 0x29, 0x38, 0x72, 0x52, 0x8d, 0xb3, 0x45, 0xf1, 0x04,
		0xc5, 0x13, 0xab, 0xcf, 0x25, 0xc5, 0x13, 0xc8, 0x49, 0x31, 0x52, 0x27, 0xd1, 0x81, 0xde, 0xaa,
		0xc8, 0x49, 0x0b, 0xe0, 0xca, 0x90, 0x93, 0x3e, 0x49, 0x4e, 0xca, 0x14, 0xd6, 0x87, 0xd5, 0xa4,
		0x4c, 0x63, 0x75, 0xe5, 0x70, 0x33, 0x8d, 0xf5, 0x31, 0x87, 0x99, 0xb1, 0xac, 0x8b, 0xc7, 0xb7,
		0xb0, 0xe3, 0x59, 0x5f, 0x14, 0xe8, 0x80, 0x56, 0xcc, 0xa7, 0x34, 0x0e, 0xfc, 0xf1, 0xe4, 0xad,
		0x5e, 0x0c, 0xec, 0xb2, 0x28, 0x95, 0xbf, 0x3e, 0x9a, 0xc8, 0x3a, 0x57, 0x20, 0x38, 0xf4, 0xf4,
		0xe5, 0xcb, 0xec, 0x94, 0xfb, 0x93, 0x13, 0xe5, 0xfd, 0xea, 0xfd, 0x70, 0xcb, 0xf0, 0xf9, 0xe9,
		0xe7, 0x91, 0x49, 0x0e, 0x8e, 0x5f, 0x7d, 0x68, 0x36, 0xba, 0xf5, 0xe6, 0x87, 0x9d, 0xee, 0xc9,
		0xd9, 0x71, 0xa7, 0x7e, 0x58, 0x6d, 0x77, 0x7e, 0x28, 0xf9, 0x90, 0xd4, 0xe9, 0x4b, 0x5e, 0xa7,
		0x11, 0xa9, 0xdf, 0x69, 0x05, 0xa5, 0xe8, 0x3e, 0x71, 0x64, 0x92, 0x5e, 0x1c, 0x8e, 0x44, 0xc1,
		0x7a, 0x76, 0xfc, 0xea, 0x51, 0x6f, 0x30, 0xee, 0x1b, 0x2f, 0xfd, 0x18, 0x26, 0x5e, 0x6f, 0x18,
		0xa5, 0x41, 0x18, 0x99, 0xd8, 0xbb, 0x1c, 0xc6, 0x5e, 0x16, 0x68, 0xbd, 0x7a, 0xf3, 0x66, 0xcf,
		0x9b, 0xbe, 0x01, 0x2f, 0x19, 0x99, 0x5e, 0x78, 0x19, 0xf6, 0xfe, 0x9c, 0x85, 0xbc, 0x71, 0x7c,
		0x0b, 0x48, 0x84, 0x6c, 0x46, 0xe1, 0x66, 0x66, 0xf1, 0x5c, 0xf6, 0x17, 0x5e, 0x95, 0x60, 0xba,
		0xa0, 0x79, 0x0d, 0xb3, 0x74, 0x4c, 0xf3, 0xb2, 0x16, 0xd2, 0x09, 0xd5, 0x4f, 0x3f, 0x2f, 0x14,
		0xba, 0x12, 0x4a, 0x7b, 0x5c, 0x4f, 0x77, 0x2c, 0x3a, 0x1c, 0x47, 0x13, 0x1a, 0x3b, 0x6e, 0x22,
		0xff, 0x63, 0x65, 0xc1, 0xf0, 0x2b, 0x0b, 0x16, 0x30, 0x8e, 0x6e, 0x77, 0xc3, 0x96, 0xf1, 0x67,
		0x58, 0x60, 0xc5, 0x9a, 0x96, 0x8e, 0xb4, 0xdd, 0x66, 0x54, 0xd6, 0xcb, 0x66, 0x24, 0xca, 0x63,
		0xe4, 0xca, 0x60, 0xa4, 0x40, 0x95, 0x78, 0x59, 0x8b, 0x38, 0x6e, 0x12, 0x2d, 0x53, 0x29, 0x16,
		0x45, 0x62, 0xbb, 0xd9, 0xd3, 0x92, 0xf4, 0xd3, 0xbe, 0x29, 0xaf, 0x12, 0x9c, 0xda, 0xb6, 0x66,
		0x99, 0x0e, 0x7e, 0x62, 0x35, 0x87, 0x92, 0x35, 0x86, 0xf2, 0x35, 0x85, 0x9a, 0xec, 0x91, 0x68,
		0xcd, 0xa0, 0x1b, 0xfc, 0x91, 0x54, 0x4d, 0x60, 0xb1, 0x2f, 0x90, 0xa4, 0x3a, 0xee, 0x55, 0x7a,
		0x73, 0x1f, 0x22, 0xcc, 0x66, 0x89, 0xf6, 0x05, 0x56, 0x6b, 0xa9, 0xba, 0x49, 0x4b, 0xd5, 0xe2,
		0x3b, 0x6c, 0x75, 0xc7, 0xad, 0xee, 0xc0, 0x55, 0x1d, 0xb9, 0x8c, 0x43, 0x17, 0x72, 0xec, 0xe2,
		0x0e, 0x3e, 0x5b, 0x90, 0x96, 0xaa, 0x28, 0x83, 0xbc, 0xf2, 0x07, 0x07, 0xed, 0x20, 0xe1, 0x4c,
		0xb0, 0x70, 0x26, 0x68, 0x38, 0x11, 0x3c, 0x64, 0x83, 0x88, 0x70, 0x30, 0xc9, 0x76, 0x98, 0x96,
		0xaa, 0xb4, 0x54, 0x95, 0x7c, 0x70, 0x54, 0x41, 0x0b, 0xdf, 0x03, 0xc1, 0x85, 0x23, 0x6e, 0x70,
		0xd9, 0x44, 0x69, 0xa9, 0x8a, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0xa5, 0xa5, 0xea, 0xf3, 0x8d,
		0x96, 0x9e, 0x68, 0x19, 0x9b, 0x41, 0x4f, 0x34, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b,
		0xa8, 0x8b, 0x82, 0x52, 0x17, 0xf4, 0x44, 0x2b, 0x05, 0x28, 0xa3, 0x27, 0x1a, 0xf0, 0x01, 0xf8,
		0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0x7a, 0xa2, 0x69, 0x9c, 0x2d, 0x6e, 0x3f,
		0xb8, 0xfd, 0x58, 0x7d, 0x2e, 0xb9, 0xfd, 0xa0, 0x27, 0x1a, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b,
		0x95, 0x9e, 0x68, 0x05, 0x70, 0x65, 0xf4, 0x44, 0x5b, 0xd2, 0x15, 0xcf, 0x14, 0x9e, 0x4b, 0x4d,
		0x94, 0x36, 0x44, 0xeb, 0xe7, 0x3d, 0xe7, 0x94, 0xc7, 0x67, 0xd1, 0xbd, 0x46, 0x4a, 0xdd, 0x19,
		0xdd, 0x50, 0x96, 0x8e, 0x05, 0x22, 0xdd, 0xb1, 0x82, 0xd4, 0xc8, 0x6b, 0x3f, 0x24, 0x9b, 0xf8,
		0xa9, 0x49, 0x3f, 0xb6, 0x91, 0x7e, 0x94, 0x87, 0xdb, 0x42, 0xfa, 0x81, 0xf4, 0x23, 0xb7, 0x9d,
		0x44, 0xfa, 0x81, 0xf4, 0xa3, 0x7c, 0x41, 0x41, 0x3f, 0x38, 0x68, 0x07, 0x09, 0x67, 0x82, 0x85,
		0x33, 0x41, 0xc3, 0x89, 0xe0, 0xa1, 0x43, 0x36, 0x20, 0xfd, 0x10, 0xf7, 0xee, 0x48, 0x3f, 0x04,
		0x1f, 0x9c, 0xcb, 0x8f, 0x85, 0xef, 0x01, 0xaf, 0xec, 0x88, 0x1b, 0x5c, 0x36, 0x51, 0xa4, 0x1f,
		0xd8, 0xaa, 0xb3, 0x00, 0x41, 0x6f, 0x55, 0xa4, 0x1f, 0xcf, 0x37, 0xda, 0xa5, 0x81, 0x06, 0xe6,
		0x53, 0xcf, 0x98, 0xbe, 0xe9, 0xab, 0xea, 0x3f, 0x56, 0x7c, 0x1d, 0x92, 0x6c, 0x92, 0x6c, 0x92,
		0x6c, 0x92, 0x6c, 0x92, 0xec, 0xd2, 0x24, 0xd9, 0x88, 0x14, 0xca, 0x02, 0x1f, 0x50, 0x8e, 0x7a,
		0x28, 0x47, 0x01, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x29,
		0x83, 0x32, 0x94, 0xa3, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x4d, 0xc1,
		0x51, 0x8e, 0x6a, 0x9c, 0x2d, 0x8a, 0x27, 0x28, 0x9e, 0x58, 0x7d, 0x2e, 0x29, 0x9e, 0x40, 0x39,
		0x8a, 0x91, 0x3a, 0x89, 0x0e, 0xf4, 0x56, 0x45, 0x39, 0x5a, 0x00, 0x57, 0x86, 0x72, 0xf4, 0xdb,
		0xca, 0x51, 0x49, 0xf5, 0x9d, 0x57, 0x08, 0xe1, 0x68, 0x7b, 0xba, 0x23, 0x4c, 0xba, 0xd6, 0x3f,
		0xc7, 0xd2, 0xe7, 0xb7, 0x40, 0xe7, 0xb6, 0x22, 0xa2, 0x07, 0x76, 0xfb, 0xa4, 0x56, 0x0a, 0x3a,
		0xc5, 0xdd, 0xe2, 0xa9, 0x59, 0x2e, 0xfd, 0x8b, 0x4d, 0xcf, 0x84, 0x37, 0x02, 0x95, 0x88, 0xab,
		0x2b, 0x0f, 0xb3, 0xe5, 0x99, 0xaf, 0xfa, 0xa4, 0x85, 0x98, 0xaf, 0x9a, 0xab, 0x75, 0x30, 0x5f,
		0x95, 0xf9, 0xaa, 0xdf, 0xd8, 0x31, 0xe6, 0xab, 0x16, 0xd0, 0x21, 0x8b, 0x3b, 0x66, 0x0d, 0x07,
		0xad, 0xe7, 0xa8, 0xb5, 0x1c, 0xb6, 0xba, 0xe3, 0x56, 0x77, 0xe0, 0xaa, 0x8e, 0xbc, 0x9c, 0x44,
		0x10, 0x4d, 0x36, 0x68, 0xb2, 0x51, 0xbe, 0xa0, 0xa0, 0x1f, 0x1c, 0xb4, 0x83, 0x84, 0x33, 0xc1,
		0xc2, 0x99, 0xa0, 0xe1, 0x44, 0xf0, 0x90, 0x0d, 0x22, 0xc2, 0xc1, 0x24, 0xdb, 0x61, 0x9a, 0x6c,
		0xd0, 0x64, 0x43, 0xf2, 0xc1, 0xa9, 0x13, 0x59, 0xf8, 0x1e, 0x5c, 0xc1, 0x3b, 0xe2, 0x06, 0x97,
		0x4d, 0x94, 0x26, 0x1b, 0xd8, 0xaa, 0xb3, 0x00, 0x41, 0x6f, 0x55, 0x9a, 0x6c, 0x3c, 0xdf, 0x68,
		0x51, 0xc9, 0x66, 0x6c, 0x06, 0x2a, 0x59, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8,
		0x8b, 0x82, 0x52, 0x17, 0xa8, 0x64, 0x4b, 0x01, 0xca, 0x50, 0xc9, 0x02, 0x1f, 0x80, 0x0f, 0xc0,
		0x07, 0xe0, 0x03, 0xf0, 0x41, 0x34, 0x05, 0x47, 0x25, 0xab, 0x71, 0xb6, 0xb8, 0xfd, 0xe0, 0xf6,
		0x63, 0xf5, 0xb9, 0xe4, 0xf6, 0x03, 0x95, 0x2c, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x15, 0x95,
		0x6c, 0x01, 0x5c, 0x19, 0x2a, 0xd9, 0x6f, 0xaa, 0xed, 0x32, 0x29, 0x13, 0x83, 0x56, 0xef, 0xa9,
		0xf0, 0x5a, 0xb3, 0xad, 0x61, 0xe0, 0xea, 0x77, 0xbc, 0x5a, 0x06, 0xae, 0xda, 0x22, 0xc1, 0x18,
		0xb8, 0x5a, 0x22, 0xb2, 0x0b, 0x2d, 0x08, 0x5a, 0x90, 0xdc, 0x76, 0x12, 0x2d, 0x08, 0x5a, 0x90,
		0xf2, 0x05, 0x05, 0xfd, 0xe0, 0xa0, 0x1d, 0x24, 0x9c, 0x09, 0x16, 0xce, 0x04, 0x0d, 0x27, 0x82,
		0x87, 0x0e, 0xfb, 0x80, 0x16, 0x44, 0xdc, 0xbb, 0xa3, 0x05, 0x11, 0x7c, 0x70, 0x6e, 0x43, 0x16,
		0xbe, 0x07, 0x44, 0xb3, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0xd1, 0x82, 0x60, 0xab, 0xce, 0x02, 0x04,
		0xbd, 0x55, 0xd1, 0x82, 0x3c, 0xdf, 0x68, 0x19, 0xb8, 0x4a, 0x92, 0x4d, 0x92, 0x4d, 0x92, 0x4d,
		0x92, 0x4d, 0x92, 0x2d, 0x79, 0xde, 0x51, 0x2d, 0x94, 0x05, 0x3e, 0x20, 0x25, 0xf5, 0x90, 0x92,
		0x02, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x53, 0x06, 0x65,
		0x48, 0x49, 0x81, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x20, 0x9a, 0x82, 0x23, 0x25,
		0xd5, 0x38, 0x5b, 0x14, 0x4f, 0x50, 0x3c, 0xb1, 0xfa, 0x5c, 0x52, 0x3c, 0x81, 0x94, 0x14, 0x23,
		0x75, 0x12, 0x1d, 0xe8, 0xad, 0x8a, 0x94, 0xb4, 0x00, 0xae, 0x0c, 0x29, 0xe9, 0x13, 0xa4, 0xa4,
		0x4c, 0x5e, 0x7d, 0x48, 0x49, 0xca, 0x04, 0x56, 0x57, 0x0e, 0x36, 0x13, 0x58, 0xbf, 0x7d, 0x90,
		0x19, 0xc5, 0x7a, 0x77, 0x74, 0x0b, 0x3b, 0x92, 0xf5, 0x45, 0x81, 0x0e, 0x67, 0xc5, 0x7c, 0x4a,
		0xe3, 0xc0, 0x1f, 0x4f, 0xde, 0xe9, 0xc5, 0xc0, 0x2e, 0x7b, 0x52, 0xf9, 0xeb, 0xa3, 0x89, 0xac,
		0x73, 0x04, 0x82, 0x83, 0x4e, 0x5f, 0xbe, 0xcc, 0x4e, 0xb8, 0x3f, 0x39, 0x4f, 0xde, 0xaf, 0xde,
		0x0f, 0xb7, 0xcc, 0x9e, 0x9f, 0x7e, 0x1e, 0x99, 0xe4, 0xe0, 0xf8, 0xd5, 0x87, 0x66, 0xa3, 0x5b,
		0x6f, 0x7e, 0xd8, 0xe9, 0x9e, 0x35, 0xea, 0x87, 0xd5, 0x76, 0xe7, 0x87, 0x92, 0x8f, 0x45, 0x9d,
		0xbe, 0xe2, 0x75, 0x1a, 0x8a, 0xfa, 0x5d, 0x36, 0x50, 0x8a, 0x8e, 0x13, 0x47, 0x26, 0xe9, 0xc5,
		0xe1, 0x48, 0x14, 0xa0, 0x67, 0x47, 0xaf, 0x1e, 0xf5, 0x06, 0xe3, 0xbe, 0xf1, 0xd2, 0x8f, 0x61,
		0xe2, 0xf5, 0x86, 0x51, 0x1a, 0x84, 0x91, 0x89, 0xbd, 0xcb, 0x61, 0xec, 0xd5, 0x9b, 0x37, 0x3b,
		0xde, 0x2c, 0xae, 0x78, 0xd3, 0xdd, 0xf7, 0x92, 0x91, 0xe9, 0x85, 0x97, 0x61, 0xef, 0xcf, 0x59,
		0xa8, 0x1b, 0xc7, 0xb7, 0x30, 0x44, 0xc8, 0x5e, 0x14, 0xee, 0x62, 0x16, 0xcf, 0x64, 0x7f, 0xe1,
		0x45, 0x09, 0xa6, 0x08, 0x9a, 0x17, 0x2f, 0x4b, 0x47, 0x34, 0x1f, 0x5b, 0x21, 0x85, 0x50, 0xfd,
		0xf4, 0xf3, 0x42, 0xa1, 0x2a, 0xa1, 0x54, 0xc7, 0xed, 0x14, 0xc7, 0xa2, 0xb3, 0x71, 0x32, 0x89,
		0xb1, 0xe3, 0x22, 0xf2, 0x3f, 0x52, 0x16, 0x8c, 0xbe, 0x92, 0xbd, 0xfd, 0x3d, 0xff, 0x7a, 0x3c,
		0x48, 0x6f, 0xf7, 0xc3, 0x96, 0xe9, 0x67, 0x28, 0x60, 0xe5, 0xaa, 0x96, 0x8e, 0xb4, 0xdd, 0xe6,
		0x53, 0xd6, 0xcb, 0x64, 0x24, 0xca, 0x61, 0xe4, 0xca, 0x5e, 0xa4, 0x20, 0x95, 0x78, 0x19, 0x8b,
		0x38, 0x6a, 0x12, 0x2d, 0x4b, 0x29, 0x16, 0x35, 0x62, 0xbb, 0xb9, 0xd3, 0x92, 0xd4, 0xd3, 0xbe,
		0x29, 0xaf, 0x12, 0x98, 0xda, 0xb6, 0x66, 0x99, 0x8e, 0x7d, 0x62, 0x35, 0x86, 0x92, 0x35, 0x85,
		0xf2, 0x35, 0x84, 0x9a, 0xbc, 0x91, 0x68, 0x8d, 0xa0, 0x1b, 0xcc, 0x91, 0x54, 0x0d, 0x60, 0xb1,
		0x2f, 0x8d, 0xa4, 0x3a, 0xec, 0x55, 0x7a, 0x73, 0x1f, 0x22, 0xcc, 0x64, 0x89, 0x76, 0x01, 0x56,
		0x6b, 0xa1, 0xba, 0x49, 0x0b, 0xd5, 0xe2, 0x3b, 0x6c, 0x75, 0xc7, 0xad, 0xee, 0xc0, 0x55, 0x1d,
		0xb9, 0x8c, 0x43, 0x17, 0x72, 0xec, 0xe2, 0x0e, 0x3e, 0x5b, 0x90, 0x16, 0xaa, 0x28, 0x81, 0xbc,
		0xf2, 0x07, 0x07, 0xed, 0x20, 0xe1, 0x4c, 0xb0, 0x70, 0x26, 0x68, 0x38, 0x11, 0x3c, 0x64, 0x83,
		0x88, 0x70, 0x30, 0xc9, 0x76, 0x98, 0x16, 0xaa, 0xb4, 0x50, 0x95, 0x7c, 0x70, 0x54, 0x40, 0x0b,
		0xdf, 0x03, 0x81, 0x85, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0x69, 0xa1, 0x8a, 0xad, 0x3a, 0x0b, 0x10,
		0xf4, 0x56, 0xa5, 0x85, 0xea, 0xf3, 0x8d, 0x96, 0x1e, 0x68, 0x19, 0x9b, 0x41, 0x0f, 0x34, 0xa8,
		0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x8b, 0x82, 0x52, 0x17, 0xf4, 0x40, 0x2b, 0x05,
		0x28, 0xa3, 0x07, 0x1a, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70,
		0x7a, 0xa0, 0x69, 0x9c, 0x2d, 0x6e, 0x3f, 0xb8, 0xfd, 0x58, 0x7d, 0x2e, 0xb9, 0xfd, 0xa0, 0x07,
		0x1a, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x95, 0x1e, 0x68, 0x05, 0x70, 0x65, 0xf4, 0x40, 0x5b,
		0xd0, 0x15, 0x2f, 0x68, 0x3c, 0x97, 0x9a, 0x27, 0x6d, 0x88, 0x56, 0xd0, 0x7b, 0xae, 0xa9, 0x8f,
		0xf7, 0x4e, 0xe6, 0xbb, 0xb2, 0xd8, 0x44, 0xa9, 0x3b, 0xa3, 0x1c, 0xca, 0xd2, 0xb5, 0x40, 0xa4,
		0x2f, 0x56, 0x90, 0x1a, 0x79, 0xfd, 0x87, 0x64, 0xeb, 0x3e, 0x35, 0xf9, 0xc7, 0x36, 0xf2, 0x8f,
		0xf2, 0xf0, 0x5b, 0xc8, 0x3f, 0x90, 0x7f, 0xe4, 0xb6, 0x93, 0xc8, 0x3f, 0x90, 0x7f, 0x94, 0x2f,
		0x28, 0xe8, 0x07, 0x07, 0xed, 0x20, 0xe1, 0x4c, 0xb0, 0x70, 0x26, 0x68, 0x38, 0x11, 0x3c, 0x74,
		0x08, 0x07, 0xe4, 0x1f, 0xe2, 0xde, 0x1d, 0xf9, 0x87, 0xe0, 0x83, 0x73, 0x01, 0xb2, 0xf0, 0x3d,
		0xe0, 0x96, 0x1d, 0x71, 0x83, 0xcb, 0x26, 0x8a, 0xfc, 0x03, 0x5b, 0x75, 0x16, 0x20, 0xe8, 0xad,
		0x8a, 0xfc, 0xe3, 0xf9, 0x46, 0xbb, 0x34, 0xca, 0xc0, 0x7c, 0xea, 0x19, 0xd3, 0x37, 0x7d, 0x55,
		0x0d, 0xc8, 0x8a, 0xaf, 0x43, 0x92, 0x4d, 0x92, 0x4d, 0x92, 0x4d, 0x92, 0x4d, 0x92, 0x5d, 0x9a,
		0x24, 0x1b, 0xa1, 0x42, 0x59, 0xe0, 0x03, 0xea, 0x51, 0x0f, 0xf5, 0x28, 0xa0, 0x0c, 0x50, 0x06,
		0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x65, 0x50, 0x86, 0x7a, 0x14, 0xf8, 0x00,
		0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa2, 0x29, 0x38, 0xea, 0x51, 0x8d, 0xb3, 0x45, 0xf1,
		0x04, 0xc5, 0x13, 0xab, 0xcf, 0x25, 0xc5, 0x13, 0xa8, 0x47, 0x31, 0x52, 0x27, 0xd1, 0x81, 0xde,
		0xaa, 0xa8, 0x47, 0x0b, 0xe0, 0xca, 0x50, 0x8f, 0x3e, 0x46, 0x3d, 0x2a, 0xa9, 0xbf, 0xf3, 0x0a,
		0x22, 0x1e, 0x6d, 0x4f, 0xf7, 0x84, 0x89, 0xd7, 0xfa, 0x67, 0x59, 0xfa, 0x0c, 0x17, 0xea, 0xec,
		0x56, 0x44, 0x54, 0xc1, 0xae, 0x9f, 0xd6, 0x4a, 0x41, 0x27, 0xba, 0x5b, 0x3c, 0x39, 0xcb, 0x25,
		0x80, 0xb1, 0xe9, 0x99, 0xf0, 0x46, 0xa0, 0x22, 0x71, 0x75, 0x05, 0x62, 0xb6, 0x3c, 0xb3, 0x56,
		0x9f, 0xb4, 0x10, 0xb3, 0x56, 0x73, 0xb5, 0x0e, 0x66, 0xad, 0x32, 0x6b, 0xf5, 0x1b, 0x3b, 0xc6,
		0xac, 0xd5, 0x02, 0x3a, 0x64, 0x71, 0xc7, 0xac, 0xe1, 0xa0, 0xf5, 0x1c, 0xb5, 0x96, 0xc3, 0x56,
		0x77, 0xdc, 0xea, 0x0e, 0x5c, 0xd5, 0x91, 0x97, 0x93, 0x10, 0xa2, 0xd9, 0x06, 0xcd, 0x36, 0xca,
		0x17, 0x14, 0xf4, 0x83, 0x83, 0x76, 0x90, 0x70, 0x26, 0x58, 0x38, 0x13, 0x34, 0x9c, 0x08, 0x1e,
		0xb2, 0x41, 0x44, 0x38, 0x98, 0x64, 0x3b, 0x4c, 0xb3, 0x0d, 0x9a, 0x6d, 0x48, 0x3e, 0x38, 0xf5,
		0x22, 0x0b, 0xdf, 0x83, 0xab, 0x78, 0x47, 0xdc, 0xe0, 0xb2, 0x89, 0xd2, 0x6c, 0x03, 0x5b, 0x75,
		0x16, 0x20, 0xe8, 0xad, 0x4a, 0xb3, 0x8d, 0xe7, 0x1b, 0x2d, 0x6a, 0xd9, 0x8c, 0xcd, 0x40, 0x2d,
		0x0b, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x51, 0x50, 0xea, 0x02, 0xb5, 0x6c,
		0x29, 0x40, 0x19, 0x6a, 0x59, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0xa6,
		0xe0, 0xa8, 0x65, 0x35, 0xce, 0x16, 0xb7, 0x1f, 0xdc, 0x7e, 0xac, 0x3e, 0x97, 0xdc, 0x7e, 0xa0,
		0x96, 0xc5, 0x48, 0x9d, 0x44, 0x07, 0x7a, 0xab, 0xa2, 0x96, 0x2d, 0x80, 0x2b, 0x43, 0x2d, 0xfb,
		0x08, 0xc5, 0x5d, 0x26, 0x66, 0x62, 0xe8, 0xea, 0x0a, 0x25, 0x5e, 0x6b, 0xb6, 0x39, 0x0c, 0x5f,
		0xfd, 0x8e, 0x97, 0xcb, 0xf0, 0x55, 0x5b, 0x44, 0x18, 0xc3, 0x57, 0x4b, 0x44, 0x78, 0xa1, 0x07,
		0x41, 0x0f, 0x92, 0xdb, 0x4e, 0xa2, 0x07, 0x41, 0x0f, 0x52, 0xbe, 0xa0, 0xa0, 0x1f, 0x1c, 0xb4,
		0x83, 0x84, 0x33, 0xc1, 0xc2, 0x99, 0xa0, 0xe1, 0x44, 0xf0, 0xd0, 0x61, 0x20, 0xd0, 0x83, 0x88,
		0x7b, 0x77, 0xf4, 0x20, 0x82, 0x0f, 0xce, 0x8d, 0xc8, 0xc2, 0xf7, 0x80, 0x6c, 0x76, 0xc4, 0x0d,
		0x2e, 0x9b, 0x28, 0x7a, 0x10, 0x6c, 0xd5, 0x59, 0x80, 0xa0, 0xb7, 0x2a, 0x7a, 0x90, 0xe7, 0x1b,
		0x2d, 0xc3, 0x57, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x25, 0xcf, 0x3b,
		0xca, 0x85, 0xb2, 0xc0, 0x07, 0xe4, 0xa4, 0x1e, 0x72, 0x52, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06,
		0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0xca, 0xa0, 0x0c, 0x39, 0x29, 0xf0, 0x01, 0xf8, 0x00,
		0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0xe4, 0xa4, 0x1a, 0x67, 0x8b, 0xe2, 0x09, 0x8a,
		0x27, 0x56, 0x9f, 0x4b, 0x8a, 0x27, 0x90, 0x93, 0x62, 0xa4, 0x4e, 0xa2, 0x03, 0xbd, 0x55, 0x91,
		0x93, 0x16, 0xc0, 0x95, 0x21, 0x27, 0x7d, 0x92, 0x9c, 0x94, 0x29, 0xac, 0x0f, 0xab, 0x49, 0x99,
		0xc6, 0xea, 0xca, 0xe1, 0x66, 0x1a, 0xeb, 0x63, 0x0e, 0x33, 0x63, 0x59, 0x17, 0x8f, 0x6f, 0x61,
		0xc7, 0xb3, 0xbe, 0x28, 0xd0, 0x01, 0xad, 0x98, 0x4f, 0x69, 0x1c, 0xf8, 0xe3, 0xc9, 0x5b, 0xbd,
		0x18, 0xd8, 0x65, 0x51, 0x2a, 0x7f, 0x7d, 0x34, 0x91, 0x75, 0xae, 0x40, 0x70, 0xe8, 0xe9, 0xcb,
		0x97, 0xd9, 0x29, 0xf7, 0x27, 0x27, 0xca, 0xfb, 0xd5, 0xfb, 0xe1, 0x96, 0xe1, 0xf3, 0xd3, 0xcf,
		0x23, 0x93, 0x1c, 0x1c, 0xbf, 0xfa, 0xd0, 0x6c, 0x74, 0xeb, 0xcd, 0x0f, 0x7b, 0xdd, 0x93, 0xb3,
		0xe3, 0x4e, 0xfd, 0xb0, 0xda, 0xee, 0xfc, 0x50, 0xf2, 0x21, 0xa9, 0xd3, 0x97, 0xbc, 0x4e, 0x23,
		0x52, 0xbf, 0xd3, 0x0a, 0x4a, 0xd1, 0x7d, 0xe2, 0xc8, 0x24, 0xbd, 0x38, 0x1c, 0x89, 0x82, 0xf5,
		0xec, 0xf8, 0xd5, 0xa3, 0xde, 0x60, 0xdc, 0x37, 0x5e, 0xfa, 0x31, 0x4c, 0xbc, 0xde, 0x30, 0x4a,
		0x83, 0x30, 0x32, 0xb1, 0x77, 0x39, 0x8c, 0xbd, 0x2c, 0xd0, 0x7a, 0xf5, 0xe6, 0xcd, 0x9e, 0x37,
		0x7d, 0x03, 0x5e, 0x32, 0x32, 0xbd, 0xf0, 0x32, 0xec, 0xfd, 0x39, 0x0b, 0x79, 0xe3, 0xf8, 0x16,
		0x90, 0x08, 0xd9, 0x8c, 0xc2, 0xcd, 0xcc, 0xe2, 0xb9, 0xec, 0x2f, 0xbc, 0x2a, 0xc1, 0x74, 0x41,
		0xf3, 0x1a, 0x66, 0xe9, 0x98, 0xe6, 0x65, 0x2d, 0xa4, 0x13, 0xaa, 0x9f, 0x7e, 0x5e, 0x28, 0x74,
		0x25, 0x94, 0xf6, 0xb8, 0x9e, 0xee, 0x58, 0x74, 0x38, 0x8e, 0x26, 0x34, 0x76, 0xdc, 0x44, 0xfe,
		0xc7, 0xca, 0x82, 0xe1, 0x57, 0x16, 0x2c, 0x60, 0x1c, 0xdd, 0xee, 0x86, 0x2d, 0xe3, 0xcf, 0xb0,
		0xc0, 0x8a, 0x35, 0x2d, 0x1d, 0x69, 0xbb, 0xcd, 0xa8, 0xac, 0x97, 0xcd, 0x48, 0x94, 0xc7, 0xc8,
		0x95, 0xc1, 0x48, 0x81, 0x2a, 0xf1, 0xb2, 0x16, 0x71, 0xdc, 0x24, 0x5a, 0xa6, 0x52, 0x2c, 0x8a,
		0xc4, 0x76, 0xb3, 0xa7, 0x25, 0xe9, 0xa7, 0x7d, 0x53, 0x5e, 0x25, 0x38, 0xb5, 0x6d, 0xcd, 0x32,
		0x1d, 0xfc, 0xc4, 0x6a, 0x0e, 0x25, 0x6b, 0x0c, 0xe5, 0x6b, 0x0a, 0x35, 0xd9, 0x23, 0xd1, 0x9a,
		0x41, 0x37, 0xf8, 0x23, 0xa9, 0x9a, 0xc0, 0x62, 0x5f, 0x20, 0x49, 0x75, 0xdc, 0xab, 0xf4, 0xe6,
		0x3e, 0x44, 0x98, 0xcd, 0x12, 0xed, 0x0b, 0xac, 0xd6, 0x52, 0x75, 0x93, 0x96, 0xaa, 0xc5, 0x77,
		0xd8, 0xea, 0x8e, 0x5b, 0xdd, 0x81, 0xab, 0x3a, 0x72, 0x19, 0x87, 0x2e, 0xe4, 0xd8, 0xc5, 0x1d,
		0x7c, 0xb6, 0x20, 0x2d, 0x55, 0x51, 0x06, 0x79, 0xe5, 0x0f, 0x0e, 0xda, 0x41, 0xc2, 0x99, 0x60,
		0xe1, 0x4c, 0xd0, 0x70, 0x22, 0x78, 0xc8, 0x06, 0x11, 0xe1, 0x60, 0x92, 0xed, 0x30, 0x2d, 0x55,
		0x69, 0xa9, 0x2a, 0xf9, 0xe0, 0xa8, 0x82, 0x16, 0xbe, 0x07, 0x82, 0x0b, 0x47, 0xdc, 0xe0, 0xb2,
		0x89, 0xd2, 0x52, 0x15, 0x5b, 0x75, 0x16, 0x20, 0xe8, 0xad, 0x4a, 0x4b, 0xd5, 0xe7, 0x1b, 0x2d,
		0x3d, 0xd1, 0x32, 0x36, 0x83, 0x9e, 0x68, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50,
		0x17, 0x05, 0xa5, 0x2e, 0xe8, 0x89, 0x56, 0x0a, 0x50, 0x46, 0x4f, 0x34, 0xe0, 0x03, 0xf0, 0x01,
		0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0xa6, 0xe0, 0xf4, 0x44, 0xd3, 0x38, 0x5b, 0xdc, 0x7e, 0x70,
		0xfb, 0xb1, 0xfa, 0x5c, 0x72, 0xfb, 0x41, 0x4f, 0x34, 0x8c, 0xd4, 0x49, 0x74, 0xa0, 0xb7, 0x2a,
		0x3d, 0xd1, 0x0a, 0xe0, 0xca, 0xe8, 0x89, 0xb6, 0xa4, 0x2b, 0x9e, 0x29, 0x3c, 0x97, 0x9a, 0x28,
		0x6d, 0x88, 0xd6, 0xcf, 0x7b, 0xce, 0x29, 0x8f, 0xcf, 0xa2, 0x7b, 0x8d, 0x94, 0xba, 0x33, 0xba,
		0xa1, 0x2c, 0x1d, 0x0b, 0x44, 0xba, 0x63, 0x05, 0xa9, 0x91, 0xd7, 0x7e, 0x48, 0x36, 0xf1, 0x53,
		0x93, 0x7e, 0x6c, 0x23, 0xfd, 0x28, 0x0f, 0xb7, 0x85, 0xf4, 0x03, 0xe9, 0x47, 0x6e, 0x3b, 0x89,
		0xf4, 0x03, 0xe9, 0x47, 0xf9, 0x82, 0x82, 0x7e, 0x70, 0xd0, 0x0e, 0x12, 0xce, 0x04, 0x0b, 0x67,
		0x82, 0x86, 0x13, 0xc1, 0x43, 0x87, 0x6c, 0x40, 0xfa, 0x21, 0xee, 0xdd, 0x91, 0x7e, 0x08, 0x3e,
		0x38, 0x97, 0x1f, 0x0b, 0xdf, 0x03, 0x5e, 0xd9, 0x11, 0x37, 0xb8, 0x6c, 0xa2, 0x48, 0x3f, 0xb0,
		0x55, 0x67, 0x01, 0x82, 0xde, 0xaa, 0x48, 0x3f, 0x9e, 0x6f, 0xb4, 0x4b, 0x03, 0x0d, 0xcc, 0xa7,
		0x9e, 0x31, 0x7d, 0xd3, 0x57, 0xd5, 0x7f, 0xac, 0xf8, 0x3a, 0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9,
		0x24, 0xd9, 0x24, 0xd9, 0xa5, 0x49, 0xb2, 0x11, 0x29, 0x94, 0x05, 0x3e, 0xa0, 0x1c, 0xf5, 0x50,
		0x8e, 0x02, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x53, 0x06,
		0x65, 0x28, 0x47, 0x81, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x20, 0x9a, 0x82, 0xa3,
		0x1c, 0xd5, 0x38, 0x5b, 0x14, 0x4f, 0x50, 0x3c, 0xb1, 0xfa, 0x5c, 0x52, 0x3c, 0x81, 0x72, 0x14,
		0x23, 0x75, 0x12, 0x1d, 0xe8, 0xad, 0x8a, 0x72, 0xb4, 0x00, 0xae, 0x0c, 0xe5, 0xe8, 0xb7, 0x95,
		0xa3, 0x92, 0xea, 0x3b, 0xaf, 0x10, 0xc2, 0xd1, 0xf6, 0x74, 0x47, 0x98, 0x74, 0xad, 0x7f, 0x8e,
		0xa5, 0xcf, 0x6f, 0x81, 0xce, 0x6d, 0x45, 0x44, 0x0f, 0xec, 0xf6, 0x49, 0xad, 0x14, 0x74, 0x8a,
		0xbb, 0xc5, 0x53, 0xb3, 0x5c, 0xfa, 0x17, 0x9b, 0x9e, 0x09, 0x6f, 0x04, 0x2a, 0x11, 0x57, 0x57,
		0x1e, 0x66, 0xcb, 0x33, 0x5f, 0xf5, 0x49, 0x0b, 0x31, 0x5f, 0x35, 0x57, 0xeb, 0x60, 0xbe, 0x2a,
		0xf3, 0x55, 0xbf, 0xb1, 0x63, 0xcc, 0x57, 0x2d, 0xa0, 0x43, 0x16, 0x77, 0xcc, 0x1a, 0x0e, 0x5a,
		0xcf, 0x51, 0x6b, 0x39, 0x6c, 0x75, 0xc7, 0xad, 0xee, 0xc0, 0x55, 0x1d, 0x79, 0x39, 0x89, 0x20,
		0x9a, 0x6c, 0xd0, 0x64, 0xa3, 0x7c, 0x41, 0x41, 0x3f, 0x38, 0x68, 0x07, 0x09, 0x67, 0x82, 0x85,
		0x33, 0x41, 0xc3, 0x89, 0xe0, 0x21, 0x1b, 0x44, 0x84, 0x83, 0x49, 0xb6, 0xc3, 0x34, 0xd9, 0xa0,
		0xc9, 0x86, 0xe4, 0x83, 0x53, 0x27, 0xb2, 0xf0, 0x3d, 0xb8, 0x82, 0x77, 0xc4, 0x0d, 0x2e, 0x9b,
		0x28, 0x4d, 0x36, 0xb0, 0x55, 0x67, 0x01, 0x82, 0xde, 0xaa, 0x34, 0xd9, 0x78, 0xbe, 0xd1, 0xa2,
		0x92, 0xcd, 0xd8, 0x0c, 0x54, 0xb2, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17,
		0x05, 0xa5, 0x2e, 0x50, 0xc9, 0x96, 0x02, 0x94, 0xa1, 0x92, 0x05, 0x3e, 0x00, 0x1f, 0x80, 0x0f,
		0xc0, 0x07, 0xe0, 0x83, 0x68, 0x0a, 0x8e, 0x4a, 0x56, 0xe3, 0x6c, 0x71, 0xfb, 0xc1, 0xed, 0xc7,
		0xea, 0x73, 0xc9, 0xed, 0x07, 0x2a, 0x59, 0x8c, 0xd4, 0x49, 0x74, 0xa0, 0xb7, 0x2a, 0x2a, 0xd9,
		0x02, 0xb8, 0x32, 0x54, 0xb2, 0xdf, 0x54, 0xdb, 0x65, 0x52, 0x26, 0x06, 0xad, 0xde, 0x53, 0xe1,
		0xb5, 0x66, 0x5b, 0xc3, 0xc0, 0xd5, 0xef, 0x78, 0xb5, 0x0c, 0x5c, 0xb5, 0x45, 0x82, 0x31, 0x70,
		0xb5, 0x44, 0x64, 0x17, 0x5a, 0x10, 0xb4, 0x20, 0xb9, 0xed, 0x24, 0x5a, 0x10, 0xb4, 0x20, 0xe5,
		0x0b, 0x0a, 0xfa, 0xc1, 0x41, 0x3b, 0x48, 0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a, 0x4e, 0x04, 0x0f,
		0x1d, 0xf6, 0x01, 0x2d, 0x88, 0xb8, 0x77, 0x47, 0x0b, 0x22, 0xf8, 0xe0, 0xdc, 0x86, 0x2c, 0x7c,
		0x0f, 0x88, 0x66, 0x47, 0xdc, 0xe0, 0xb2, 0x89, 0xa2, 0x05, 0xc1, 0x56, 0x9d, 0x05, 0x08, 0x7a,
		0xab, 0xa2, 0x05, 0x79, 0xbe, 0xd1, 0x32, 0x70, 0x95, 0x24, 0x9b, 0x24, 0x9b, 0x24, 0x9b, 0x24,
		0x9b, 0x24, 0x5b, 0xf2, 0xbc, 0xa3, 0x5a, 0x28, 0x0b, 0x7c, 0x40, 0x4a, 0xea, 0x21, 0x25, 0x05,
		0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0xa6, 0x0c, 0xca, 0x90,
		0x92, 0x02, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x41, 0x34, 0x05, 0x47, 0x4a, 0xaa,
		0x71, 0xb6, 0x28, 0x9e, 0xa0, 0x78, 0x62, 0xf5, 0xb9, 0xa4, 0x78, 0x02, 0x29, 0x29, 0x46, 0xea,
		0x24, 0x3a, 0xd0, 0x5b, 0x15, 0x29, 0x69, 0x01, 0x5c, 0x19, 0x52, 0xd2, 0x27, 0x48, 0x49, 0x99,
		0xbc, 0xfa, 0x90, 0x92, 0x94, 0x09, 0xac, 0xae, 0x1c, 0x6c, 0x26, 0xb0, 0x7e, 0xfb, 0x20, 0x33,
		0x8a, 0xf5, 0xee, 0xe8, 0x16, 0x76, 0x24, 0xeb, 0x8b, 0x02, 0x1d, 0xce, 0x8a, 0xf9, 0x94, 0xc6,
		0x81, 0x3f, 0x9e, 0xbc, 0xd3, 0x8b, 0x81, 0x5d, 0xf6, 0xa4, 0xf2, 0xd7, 0x47, 0x13, 0x59, 0xe7,
		0x08, 0x04, 0x07, 0x9d, 0xbe, 0x7c, 0x99, 0x9d, 0x70, 0x7f, 0x72, 0x9e, 0xbc, 0x5f, 0xbd, 0x1f,
		0x6e, 0x99, 0x3d, 0x3f, 0xfd, 0x3c, 0x32, 0xc9, 0xc1, 0xf1, 0xab, 0x0f, 0xcd, 0x46, 0xb7, 0xde,
		0xfc, 0xb0, 0xd7, 0x3d, 0x6b, 0xd4, 0x0f, 0xab, 0xed, 0xce, 0x0f, 0x25, 0x1f, 0x8b, 0x3a, 0x7d,
		0xc5, 0xeb, 0x34, 0x14, 0xf5, 0xbb, 0x6c, 0xa0, 0x14, 0x1d, 0x27, 0x8e, 0x4c, 0xd2, 0x8b, 0xc3,
		0x91, 0x28, 0x40, 0xcf, 0x8e, 0x5e, 0x3d, 0xea, 0x0d, 0xc6, 0x7d, 0xe3, 0xa5, 0x1f, 0xc3, 0xc4,
		0xeb, 0x0d, 0xa3, 0x34, 0x08, 0x23, 0x13, 0x7b, 0x97, 0xc3, 0xd8, 0x9b, 0x05, 0x58, 0xaf, 0xde,
		0xbc, 0xd9, 0xf3, 0xa6, 0xbb, 0xef, 0x25, 0x23, 0xd3, 0x0b, 0x2f, 0xc3, 0xde, 0x9f, 0xb3, 0x50,
		0x37, 0x8e, 0x6f, 0x61, 0x88, 0x90, 0xbd, 0x28, 0xdc, 0xc5, 0x2c, 0x9e, 0xc9, 0xfe, 0xc2, 0x8b,
		0x12, 0x4c, 0x11, 0x34, 0x2f, 0x5e, 0x96, 0x8e, 0x68, 0x3e, 0xb6, 0x42, 0x0a, 0xa1, 0xfa, 0xe9,
		0xe7, 0x85, 0x42, 0x55, 0x42, 0xa9, 0x8e, 0xdb, 0x29, 0x8e, 0x45, 0x67, 0xe3, 0x64, 0x12, 0x63,
		0xc7, 0x45, 0xe4, 0x7f, 0xa4, 0x2c, 0x18, 0x7d, 0x25, 0x89, 0x53, 0xe3, 0x8f, 0x86, 0x83, 0xb0,
		0xf7, 0x79, 0x62, 0x03, 0x3b, 0xd6, 0xcc, 0xfe, 0xae, 0xf3, 0xd4, 0xd7, 0x2b, 0x5a, 0x3a, 0xca,
		0x76, 0x9b, 0x4e, 0x59, 0x2f, 0x8f, 0x91, 0x28, 0x83, 0x91, 0x2b, 0x77, 0x91, 0x82, 0x52, 0xe2,
		0xe5, 0x2b, 0xe2, 0x68, 0x49, 0xb4, 0x1c, 0xa5, 0x58, 0x94, 0x88, 0xed, 0xa6, 0x4e, 0x4b, 0x12,
		0x4f, 0xfb, 0xa6, 0xbc, 0x4a, 0x58, 0x6a, 0xdb, 0x9a, 0x65, 0x3a, 0xf5, 0x89, 0xd5, 0x16, 0x4a,
		0xd6, 0x12, 0xca, 0xd7, 0x0e, 0x6a, 0xf2, 0x45, 0xa2, 0xb5, 0x81, 0x6e, 0x30, 0x46, 0x52, 0xb5,
		0x7f, 0xc5, 0xbe, 0x2c, 0x92, 0xea, 0xac, 0x57, 0xe9, 0xcd, 0x7d, 0x88, 0x30, 0x83, 0x25, 0xda,
		0xfd, 0x57, 0xad, 0x75, 0xea, 0x26, 0xad, 0x53, 0x8b, 0xef, 0xb0, 0xd5, 0x1d, 0xb7, 0xba, 0x03,
		0x57, 0x75, 0xe4, 0x32, 0x0e, 0x5d, 0xc8, 0xb1, 0x8b, 0x3b, 0xf8, 0x6c, 0x41, 0x5a, 0xa7, 0xa2,
		0x00, 0xf2, 0xca, 0x1f, 0x1c, 0xb4, 0x83, 0x84, 0x33, 0xc1, 0xc2, 0x99, 0xa0, 0xe1, 0x44, 0xf0,
		0x90, 0x0d, 0x22, 0xc2, 0xc1, 0x24, 0xdb, 0x61, 0x5a, 0xa7, 0xd2, 0x3a, 0x55, 0xf2, 0xc1, 0x51,
		0xff, 0x2c, 0x7c, 0x0f, 0x84, 0x15, 0x8e, 0xb8, 0xc1, 0x65, 0x13, 0xa5, 0x75, 0x2a, 0xb6, 0xea,
		0x2c, 0x40, 0xd0, 0x5b, 0x95, 0xd6, 0xa9, 0xcf, 0x37, 0x5a, 0x7a, 0x9f, 0x65, 0x6c, 0x06, 0xbd,
		0xcf, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0x0a, 0x4a, 0x5d, 0xd0, 0xfb,
		0xac, 0x14, 0xa0, 0x8c, 0xde, 0x67, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10,
		0x4d, 0xc1, 0xe9, 0x7d, 0xa6, 0x71, 0xb6, 0xb8, 0xfd, 0xe0, 0xf6, 0x63, 0xf5, 0xb9, 0xe4, 0xf6,
		0x83, 0xde, 0x67, 0x18, 0xa9, 0x93, 0xe8, 0x40, 0x6f, 0x55, 0x7a, 0x9f, 0x15, 0xc0, 0x95, 0xd1,
		0xfb, 0x2c, 0xdc, 0xf8, 0x5a, 0xdf, 0xb9, 0xd4, 0x30, 0x69, 0x43, 0xb4, 0x7a, 0xde, 0x73, 0x45,
		0x71, 0xdc, 0x8e, 0x53, 0xd3, 0x9c, 0x6e, 0x49, 0x7d, 0x74, 0xb3, 0xb3, 0xd8, 0x34, 0xa9, 0x3b,
		0xa3, 0x1a, 0xca, 0xd2, 0xa5, 0x40, 0xa4, 0x0f, 0x56, 0x90, 0x1a, 0x79, 0xdd, 0x87, 0x64, 0xab,
		0x3e, 0x35, 0xd9, 0xc7, 0x36, 0xb2, 0x8f, 0xf2, 0xf0, 0x5a, 0xc8, 0x3e, 0x90, 0x7d, 0xe4, 0xb6,
		0x93, 0xc8, 0x3e, 0x90, 0x7d, 0x94, 0x2f, 0x28, 0xe8, 0x07, 0x07, 0xed, 0x20, 0xe1, 0x4c, 0xb0,
		0x70, 0x26, 0x68, 0x38, 0x11, 0x3c, 0x74, 0x88, 0x06, 0x64, 0x1f, 0xe2, 0xde, 0x1d, 0xd9, 0x87,
		0xe0, 0x83, 0x73, 0xf1, 0xb1, 0xf0, 0x3d, 0xe0, 0x94, 0x1d, 0x71, 0x83, 0xcb, 0x26, 0x8a, 0xec,
		0x03, 0x5b, 0x75, 0x16, 0x20, 0xe8, 0xad, 0x8a, 0xec, 0xe3, 0xf9, 0x46, 0xbb, 0x34, 0xba, 0xc0,
		0x7c, 0xea, 0x19, 0xd3, 0x37, 0x7d, 0x55, 0xed, 0xc7, 0x8a, 0xaf, 0x43, 0x92, 0x4d, 0x92, 0x4d,
		0x92, 0x4d, 0x92, 0x4d, 0x92, 0x5d, 0x9a, 0x24, 0x1b, 0x81, 0x42, 0x59, 0xe0, 0x03, 0xaa, 0x51,
		0x0f, 0xd5, 0x28, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32,
		0x65, 0x50, 0x86, 0x6a, 0x14, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa2, 0x29,
		0x38, 0xaa, 0x51, 0x8d, 0xb3, 0x45, 0xf1, 0x04, 0xc5, 0x13, 0xab, 0xcf, 0x25, 0xc5, 0x13, 0xa8,
		0x46, 0x31, 0x52, 0x27, 0xd1, 0x81, 0xde, 0xaa, 0xa8, 0x46, 0x0b, 0xe0, 0xca, 0x50, 0x8d, 0x7e,
		0x4b, 0x35, 0x2a, 0xa9, 0xbd, 0xf3, 0x0a, 0x20, 0x1a, 0x6d, 0x4f, 0xf7, 0x83, 0xc9, 0xd6, 0xfa,
		0x67, 0x58, 0xfa, 0xec, 0x16, 0xe6, 0xcc, 0x56, 0x44, 0x94, 0xc0, 0x2e, 0x9f, 0xd2, 0x4a, 0x41,
		0x27, 0xb6, 0x5b, 0x3c, 0x31, 0xcb, 0x25, 0x7f, 0xb1, 0xe9, 0x99, 0xf0, 0x46, 0xa0, 0x02, 0x71,
		0x75, 0xc5, 0x61, 0xb6, 0x3c, 0x33, 0x55, 0x9f, 0xb4, 0x10, 0x33, 0x55, 0x73, 0xb5, 0x0e, 0x66,
		0xaa, 0x32, 0x53, 0xf5, 0x1b, 0x3b, 0xc6, 0x4c, 0xd5, 0x02, 0x3a, 0x64, 0x71, 0xc7, 0xac, 0xe1,
		0xa0, 0xf5, 0x1c, 0xb5, 0x96, 0xc3, 0x56, 0x77, 0xdc, 0xea, 0x0e, 0x5c, 0xd5, 0x91, 0x97, 0x93,
		0x00, 0xa2, 0xb9, 0x06, 0xcd, 0x35, 0xca, 0x17, 0x14, 0xf4, 0x83, 0x83, 0x76, 0x90, 0x70, 0x26,
		0x58, 0x38, 0x13, 0x34, 0x9c, 0x08, 0x1e, 0xb2, 0x41, 0x44, 0x38, 0x98, 0x64, 0x3b, 0x4c, 0x73,
		0x0d, 0x9a, 0x6b, 0x48, 0x3e, 0x38, 0xf5, 0x21, 0x0b, 0xdf, 0x83, 0xab, 0x77, 0x47, 0xdc, 0xe0,
		0xb2, 0x89, 0xd2, 0x5c, 0x03, 0x5b, 0x75, 0x16, 0x20, 0xe8, 0xad, 0x4a, 0x73, 0x8d, 0xe7, 0x1b,
		0x2d, 0xea, 0xd8, 0x8c, 0xcd, 0x40, 0x1d, 0x0b, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01,
		0x75, 0x51, 0x50, 0xea, 0x02, 0x75, 0x6c, 0x29, 0x40, 0x19, 0xea, 0x58, 0xe0, 0x03, 0xf0, 0x01,
		0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0xa6, 0xe0, 0xa8, 0x63, 0x35, 0xce, 0x16, 0xb7, 0x1f, 0xdc,
		0x7e, 0xac, 0x3e, 0x97, 0xdc, 0x7e, 0xa0, 0x8e, 0xc5, 0x48, 0x9d, 0x44, 0x07, 0x7a, 0xab, 0xa2,
		0x8e, 0x2d, 0x80, 0x2b, 0x43, 0x1d, 0xfb, 0x0d, 0xa5, 0x5d, 0x26, 0x64, 0x62, 0xb8, 0xea, 0x57,
		0x0a, 0xbc, 0xd6, 0x6c, 0x63, 0x18, 0xb2, 0xfa, 0x1d, 0x2f, 0x96, 0x21, 0xab, 0xb6, 0x08, 0x30,
		0x86, 0xac, 0x96, 0x88, 0xe8, 0x42, 0x07, 0x82, 0x0e, 0x24, 0xb7, 0x9d, 0x44, 0x07, 0x82, 0x0e,
		0xa4, 0x7c, 0x41, 0x41, 0x3f, 0x38, 0x68, 0x07, 0x09, 0x67, 0x82, 0x85, 0x33, 0x41, 0xc3, 0x89,
		0xe0, 0xa1, 0xc3, 0x3c, 0xa0, 0x03, 0x11, 0xf7, 0xee, 0xe8, 0x40, 0x04, 0x1f, 0x9c, 0x9b, 0x90,
		0x85, 0xef, 0x01, 0xc9, 0xec, 0x88, 0x1b, 0x5c, 0x36, 0x51, 0x74, 0x20, 0xd8, 0xaa, 0xb3, 0x00,
		0x41, 0x6f, 0x55, 0x74, 0x20, 0xcf, 0x37, 0x5a, 0x86, 0xac, 0x92, 0x64, 0x93, 0x64, 0x93, 0x64,
		0x93, 0x64, 0x93, 0x64, 0x4b, 0x9e, 0x77, 0x14, 0x0b, 0x65, 0x81, 0x0f, 0xc8, 0x48, 0x3d, 0x64,
		0xa4, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x94, 0x41,
		0x19, 0x32, 0x52, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0xa6, 0xe0, 0xc8,
		0x48, 0x35, 0xce, 0x16, 0xc5, 0x13, 0x14, 0x4f, 0xac, 0x3e, 0x97, 0x14, 0x4f, 0x20, 0x23, 0xc5,
		0x48, 0x9d, 0x44, 0x07, 0x7a, 0xab, 0x22, 0x23, 0x2d, 0x80, 0x2b, 0x43, 0x46, 0xfa, 0x68, 0x19,
		0x29, 0xd3, 0x56, 0x57, 0xab, 0x48, 0x99, 0xba, 0xea, 0xca, 0xa1, 0x66, 0xea, 0xea, 0xb7, 0x0e,
		0x31, 0xe3, 0x57, 0xe7, 0xc7, 0xb6, 0xb0, 0x63, 0x58, 0x5f, 0x14, 0xe8, 0x60, 0x56, 0xcc, 0xa7,
		0x34, 0x0e, 0xfc, 0xf1, 0xe4, 0x8d, 0x5e, 0x0c, 0xec, 0xb2, 0x26, 0x95, 0xbf, 0x3e, 0x9a, 0xc8,
		0x3a, 0x37, 0x20, 0x38, 0xdc, 0xf4, 0xe5, 0xcb, 0xec, 0x74, 0xfb, 0x93, 0xd3, 0xe4, 0xfd, 0xea,
		0xfd, 0x70, 0xcb, 0xe8, 0xf9, 0xe9, 0xe7, 0x91, 0x49, 0x0e, 0xda, 0xad, 0x4e, 0xad, 0xdb, 0x3c,
		0x3d, 0xae, 0x1f, 0xfe, 0xde, 0xad, 0x37, 0x3f, 0xec, 0xfc, 0x50, 0xf2, 0x41, 0xa8, 0xd3, 0x17,
		0xbc, 0x4e, 0x63, 0x50, 0xbf, 0xc3, 0x02, 0x4a, 0xd1, 0x65, 0xe2, 0xc8, 0x24, 0xbd, 0x38, 0x1c,
		0x89, 0x82, 0xf2, 0xec, 0xd8, 0x9d, 0x46, 0x83, 0xcf, 0x5e, 0x18, 0xf5, 0x06, 0xe3, 0xbe, 0xf1,
		0xd2, 0x8f, 0x61, 0xe2, 0xf5, 0x86, 0x51, 0x1a, 0x84, 0x91, 0x89, 0xbd, 0x89, 0x05, 0x7a, 0xe9,
		0x47, 0xe3, 0x05, 0xfd, 0x7e, 0x6c, 0x92, 0xc4, 0xbb, 0x0c, 0xae, 0xc3, 0xc9, 0x3f, 0x4f, 0xfe,
		0x8c, 0x92, 0x91, 0xe9, 0x85, 0x97, 0xa1, 0xe9, 0x7b, 0xe9, 0xd0, 0xbb, 0x30, 0x5e, 0xbb, 0xe5,
		0x77, 0x6a, 0xde, 0x6d, 0x10, 0xf2, 0xda, 0xd5, 0xb7, 0x75, 0xef, 0x72, 0x18, 0x4f, 0x7f, 0xb9,
		0xde, 0xbc, 0xd9, 0xf1, 0xc6, 0x51, 0xd8, 0x0b, 0x92, 0xf4, 0xcf, 0x68, 0xf9, 0xa3, 0x5e, 0x4a,
		0x19, 0xb8, 0xc2, 0xcd, 0xcd, 0xe2, 0x59, 0xee, 0x2f, 0xbc, 0x62, 0xc1, 0x94, 0x42, 0xf3, 0x9a,
		0x66, 0xe9, 0x68, 0x6b, 0x5b, 0x19, 0xe9, 0x8a, 0xea, 0xa7, 0x9f, 0x17, 0x0a, 0xc5, 0x09, 0xa5,
		0x55, 0x2e, 0xa7, 0x53, 0x16, 0x9d, 0x94, 0x83, 0x09, 0x93, 0x1d, 0xf7, 0x90, 0xff, 0x71, 0xb2,
		0x60, 0xf0, 0x95, 0xaf, 0xde, 0xfc, 0x9e, 0x35, 0x93, 0xbf, 0xeb, 0x6e, 0xf5, 0xf5, 0x8a, 0x96,
		0x8e, 0xb1, 0xdd, 0xc6, 0x56, 0xd6, 0x4b, 0x70, 0x24, 0x4a, 0x6d, 0xe4, 0x4a, 0x6a, 0xa4, 0x00,
		0x98, 0x78, 0x89, 0x8c, 0x38, 0xc6, 0x12, 0x2d, 0x79, 0x29, 0x16, 0xfd, 0x62, 0xbb, 0x71, 0xd4,
		0x92, 0x8c, 0xd4, 0xbe, 0x29, 0xaf, 0x12, 0xaf, 0xda, 0xb6, 0x66, 0x99, 0x6e, 0x80, 0x62, 0xf5,
		0x8b, 0x92, 0xf5, 0x8a, 0xf2, 0xf5, 0x89, 0x9a, 0xec, 0x94, 0x68, 0xfd, 0xa1, 0x1b, 0xfc, 0x94,
		0x54, 0x7d, 0x61, 0xb1, 0x2f, 0xa5, 0xa4, 0xba, 0xf7, 0x55, 0x7a, 0x73, 0x1f, 0x22, 0xcc, 0x98,
		0x89, 0xf6, 0x17, 0x56, 0x6b, 0xcf, 0xba, 0x49, 0x7b, 0xd6, 0xe2, 0x3b, 0x6c, 0x75, 0xc7, 0xad,
		0xee, 0xc0, 0x55, 0x1d, 0xb9, 0x8c, 0x43, 0x17, 0x72, 0xec, 0xe2, 0x0e, 0x3e, 0x5b, 0x90, 0xf6,
		0xac, 0xa8, 0x8c, 0xbc, 0xf2, 0x07, 0x07, 0xed, 0x20, 0xe1, 0x4c, 0xb0, 0x70, 0x26, 0x68, 0x38,
		0x11, 0x3c, 0x64, 0x83, 0x88, 0x70, 0x30, 0xc9, 0x76, 0x98, 0xf6, 0xac, 0xb4, 0x67, 0x95, 0x7c,
		0x70, 0x14, 0x46, 0x0b, 0xdf, 0x03, 0xf1, 0x86, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0x69, 0xcf, 0x8a,
		0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0xa5, 0x3d, 0xeb, 0xf3, 0x8d, 0x96, 0xfe, 0x6a, 0x19, 0x9b,
		0x41, 0x7f, 0x35, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x8b, 0x82, 0x52, 0x17,
		0xf4, 0x57, 0x2b, 0x05, 0x28, 0xa3, 0xbf, 0x1a, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00,
		0x1f, 0x44, 0x53, 0x70, 0xfa, 0xab, 0x69, 0x9c, 0x2d, 0x6e, 0x3f, 0xb8, 0xfd, 0x58, 0x7d, 0x2e,
		0xb9, 0xfd, 0xa0, 0xbf, 0x1a, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x95, 0xfe, 0x6a, 0x05, 0x70,
		0x65, 0xf4, 0x57, 0xbb, 0xa7, 0x25, 0xde, 0x5b, 0x6a, 0xcd, 0xb4, 0x21, 0x5a, 0x3d, 0xef, 0x39,
		0xa9, 0x37, 0xde, 0x5b, 0x6c, 0xd0, 0xd4, 0x9d, 0x51, 0x0d, 0x65, 0xe9, 0x50, 0x20, 0xd2, 0x71,
		0x2b, 0x48, 0x8d, 0xbc, 0xee, 0x43, 0xb2, 0x21, 0xa0, 0x9a, 0xec, 0x63, 0x1b, 0xd9, 0x47, 0x79,
		0x78, 0x2d, 0x64, 0x1f, 0xc8, 0x3e, 0x72, 0xdb, 0x49, 0x64, 0x1f, 0xc8, 0x3e, 0xca, 0x17, 0x14,
		0xf4, 0x83, 0x83, 0x76, 0x90, 0x70, 0x26, 0x58, 0x38, 0x13, 0x34, 0x9c, 0x08, 0x1e, 0x3a, 0x44,
		0x03, 0xb2, 0x0f, 0x71, 0xef, 0x8e, 0xec, 0x43, 0xf0, 0xc1, 0xb9, 0xf8, 0x58, 0xf8, 0x1e, 0x70,
		0xca, 0x8e, 0xb8, 0xc1, 0x65, 0x13, 0x45, 0xf6, 0x81, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0x45,
		0xf6, 0xf1, 0x7c, 0xa3, 0x5d, 0x1a, 0x92, 0x60, 0x3e, 0xf5, 0x8c, 0xe9, 0x9b, 0xbe, 0xaa, 0xf6,
		0x63, 0xc5, 0xd7, 0x21, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x2e, 0x4d, 0x92,
		0x8d, 0x40, 0xa1, 0x2c, 0xf0, 0x01, 0xd5, 0xa8, 0x87, 0x6a, 0x14, 0x50, 0x06, 0x28, 0x03, 0x94,
		0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x99, 0x32, 0x28, 0x43, 0x35, 0x0a, 0x7c, 0x00, 0x3e,
		0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x14, 0x1c, 0xd5, 0xa8, 0xc6, 0xd9, 0xa2, 0x78, 0x82,
		0xe2, 0x89, 0xd5, 0xe7, 0x92, 0xe2, 0x09, 0x54, 0xa3, 0x18, 0xa9, 0x93, 0xe8, 0x40, 0x6f, 0x55,
		0x54, 0xa3, 0x05, 0x70, 0x65, 0xa8, 0x46, 0xbf, 0xa5, 0x1a, 0x95, 0xd4, 0xde, 0x79, 0x05, 0x10,
		0x8d, 0xb6, 0xa7, 0xfb, 0xc1, 0x54, 0x6b, 0xfd, 0x33, 0x2c, 0x7d, 0x76, 0x0b, 0x73, 0x66, 0x2b,
		0x22, 0x4a, 0x60, 0x97, 0x4f, 0x69, 0xa5, 0xa0, 0xd3, 0xda, 0x2d, 0x9e, 0x98, 0xe5, 0x92, 0xbf,
		0xd8, 0xf4, 0x4c, 0x78, 0x23, 0x50, 0x81, 0xb8, 0xba, 0xe2, 0x30, 0x5b, 0x9e, 0x99, 0xaa, 0x4f,
		0x5a, 0x88, 0x99, 0xaa, 0xb9, 0x5a, 0x07, 0x33, 0x55, 0x99, 0xa9, 0xfa, 0x8d, 0x1d, 0x63, 0xa6,
		0x6a, 0x01, 0x1d, 0xb2, 0xb8, 0x63, 0xd6, 0x70, 0xd0, 0x7a, 0x8e, 0x5a, 0xcb, 0x61, 0xab, 0x3b,
		0x6e, 0x75, 0x07, 0xae, 0xea, 0xc8, 0xcb, 0x49, 0x00, 0xd1, 0x5c, 0x83, 0xe6, 0x1a, 0xe5, 0x0b,
		0x0a, 0xfa, 0xc1, 0x41, 0x3b, 0x48, 0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a, 0x4e, 0x04, 0x0f, 0xd9,
		0x20, 0x22, 0x1c, 0x4c, 0xb2, 0x1d, 0xa6, 0xb9, 0x06, 0xcd, 0x35, 0x24, 0x1f, 0x9c, 0xfa, 0x90,
		0x85, 0xef, 0xc1, 0xd5, 0xbb, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0x69, 0xae, 0x81, 0xad, 0x3a, 0x0b,
		0x10, 0xf4, 0x56, 0xa5, 0xb9, 0xc6, 0xf3, 0x8d, 0x16, 0x75, 0x6c, 0xc6, 0x66, 0xa0, 0x8e, 0x85,
		0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x28, 0x28, 0x75, 0x81, 0x3a, 0xb6, 0x14,
		0xa0, 0x0c, 0x75, 0x2c, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70,
		0xd4, 0xb1, 0x1a, 0x67, 0x8b, 0xdb, 0x0f, 0x6e, 0x3f, 0x56, 0x9f, 0x4b, 0x6e, 0x3f, 0x50, 0xc7,
		0x62, 0xa4, 0x4e, 0xa2, 0x03, 0xbd, 0x55, 0x51, 0xc7, 0x16, 0xc0, 0x95, 0xa1, 0x8e, 0xfd, 0x86,
		0xd2, 0x2e, 0x13, 0x32, 0x31, 0x5c, 0xf5, 0x2b, 0x05, 0x5e, 0x6b, 0xb6, 0x31, 0x0c, 0x59, 0xfd,
		0x8e, 0x17, 0xcb, 0x90, 0x55, 0x5b, 0x04, 0x18, 0x43, 0x56, 0x4b, 0x44, 0x74, 0xa1, 0x03, 0x41,
		0x07, 0x92, 0xdb, 0x4e, 0xa2, 0x03, 0x41, 0x07, 0x52, 0xbe, 0xa0, 0xa0, 0x1f, 0x1c, 0xb4, 0x83,
		0x84, 0x33, 0xc1, 0xc2, 0x99, 0xa0, 0xe1, 0x44, 0xf0, 0xd0, 0x61, 0x1e, 0xd0, 0x81, 0x88, 0x7b,
		0x77, 0x74, 0x20, 0x82, 0x0f, 0xce, 0x4d, 0xc8, 0xc2, 0xf7, 0x80, 0x64, 0x76, 0xc4, 0x0d, 0x2e,
		0x9b, 0x28, 0x3a, 0x10, 0x6c, 0xd5, 0x59, 0x80, 0xa0, 0xb7, 0x2a, 0x3a, 0x90, 0xe7, 0x1b, 0x2d,
		0x43, 0x56, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x25, 0xcf, 0x3b, 0x8a,
		0x85, 0xb2, 0xc0, 0x07, 0x64, 0xa4, 0x1e, 0x32, 0x52, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28,
		0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0xca, 0xa0, 0x0c, 0x19, 0x29, 0xf0, 0x01, 0xf8, 0x00, 0x7c,
		0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0x64, 0xa4, 0x1a, 0x67, 0x8b, 0xe2, 0x09, 0x8a, 0x27,
		0x56, 0x9f, 0x4b, 0x8a, 0x27, 0x90, 0x91, 0x62, 0xa4, 0x4e, 0xa2, 0x03, 0xbd, 0x55, 0x91, 0x91,
		0x16, 0xc0, 0x95, 0x21, 0x23, 0x7d, 0xb4, 0x8c, 0x94, 0x69, 0xab, 0xab, 0x55, 0xa4, 0x4c, 0x5d,
		0x75, 0xe5, 0x50, 0x33, 0x75, 0xf5, 0x5b, 0x87, 0x98, 0xf1, 0xab, 0xf3, 0x63, 0x5b, 0xd8, 0x31,
		0xac, 0x2f, 0x0a, 0x74, 0x30, 0x2b, 0xe6, 0x53, 0x1a, 0x07, 0xfe, 0x78, 0xf2, 0x46, 0x2f, 0x06,
		0x76, 0x59, 0x93, 0xca, 0x5f, 0x1f, 0x4d, 0x64, 0x9d, 0x1b, 0x10, 0x1c, 0x6e, 0xfa, 0xf2, 0x65,
		0x76, 0xba, 0xfd, 0xc9, 0x69, 0xf2, 0x7e, 0xf5, 0x7e, 0xb8, 0x65, 0xf4, 0xfc, 0xf4, 0xf3, 0xc8,
		0x24, 0x07, 0xed, 0x56, 0xa7, 0xd6, 0x6d, 0x9e, 0x1e, 0xd7, 0x0f, 0x7f, 0xef, 0xd6, 0x9b, 0x1f,
		0xf6, 0x7e, 0x28, 0xf9, 0x20, 0xd4, 0xe9, 0x0b, 0x5e, 0xa7, 0x31, 0xa8, 0xdf, 0x61, 0x01, 0xa5,
		0xe8, 0x32, 0x71, 0x64, 0x92, 0x5e, 0x1c, 0x8e, 0x44, 0x41, 0x79, 0x76, 0xec, 0x4e, 0xa3, 0xc1,
		0x67, 0x2f, 0x8c, 0x7a, 0x83, 0x71, 0xdf, 0x78, 0xe9, 0xc7, 0x30, 0xf1, 0x7a, 0xc3, 0x28, 0x0d,
		0xc2, 0xc8, 0xc4, 0xde, 0xc4, 0x02, 0xbd, 0xf4, 0xa3, 0xf1, 0x82, 0x7e, 0x3f, 0x36, 0x49, 0xe2,
		0x5d, 0x06, 0xd7, 0xe1, 0xe4, 0x9f, 0x27, 0x7f, 0x46, 0xc9, 0xc8, 0xf4, 0xc2, 0xcb, 0xd0, 0xf4,
		0xbd, 0x74, 0xe8, 0x5d, 0x18, 0xaf, 0xdd, 0xf2, 0x3b, 0x35, 0xef, 0x36, 0x08, 0x79, 0xed, 0xea,
		0xdb, 0xba, 0x77, 0x39, 0x8c, 0xa7, 0xbf, 0x5c, 0x6f, 0xde, 0xec, 0x79, 0xe3, 0x28, 0xec, 0x05,
		0x49, 0xfa, 0x67, 0xb4, 0xfc, 0x51, 0x2f, 0xa5, 0x0c, 0x5c, 0xe1, 0xe6, 0x66, 0xf1, 0x2c, 0xf7,
		0x17, 0x5e, 0xb1, 0x60, 0x4a, 0xa1, 0x79, 0x4d, 0xb3, 0x74, 0xb4, 0xb5, 0xad, 0x8c, 0x74, 0x45,
		0xf5, 0xd3, 0xcf, 0x0b, 0x85, 0xe2, 0x84, 0xd2, 0x2a, 0x97, 0xd3, 0x29, 0x8b, 0x4e, 0xca, 0xc1,
		0x84, 0xc9, 0x8e, 0x7b, 0xc8, 0xff, 0x38, 0x59, 0x30, 0x78, 0xcb, 0x2d, 0xae, 0x44, 0x5a, 0x5a,
		0x59, 0x6e, 0x61, 0x65, 0xbd, 0x65, 0x95, 0x44, 0x51, 0x8d, 0x5c, 0xf1, 0x8c, 0x14, 0xd4, 0x12,
		0x2f, 0x86, 0x11, 0x47, 0x53, 0xa2, 0xc5, 0x2d, 0xc5, 0x22, 0x5a, 0x6c, 0xb7, 0x88, 0xaa, 0x04,
		0xbd, 0xd9, 0xe5, 0xa1, 0x65, 0x23, 0x9e, 0x1f, 0xcb, 0xd9, 0x7a, 0x96, 0x0d, 0x4a, 0xa6, 0x5a,
		0x51, 0xac, 0x3a, 0x51, 0xb2, 0x1a, 0x51, 0xbe, 0xfa, 0x50, 0x93, 0x7b, 0x12, 0xad, 0x2e, 0x74,
		0x83, 0x7d, 0x92, 0xaa, 0x1e, 0x2c, 0xf6, 0x95, 0x93, 0x58, 0x35, 0xa0, 0x82, 0x78, 0x40, 0x48,
		0x2c, 0x60, 0xf1, 0xb2, 0xc4, 0x22, 0xaa, 0x5b, 0x62, 0x66, 0x05, 0xe3, 0xe2, 0xd2, 0xb2, 0x84,
		0x47, 0xc2, 0x23, 0xe1, 0x91, 0xf0, 0x48, 0x78, 0xcc, 0xce, 0x5b, 0xd8, 0x37, 0x51, 0x1a, 0xa6,
		0x9f, 0x63, 0x73, 0x29, 0x19, 0x22, 0x05, 0xca, 0xe1, 0x2b, 0xf5, 0xd9, 0xa3, 0xbd, 0x09, 0x12,
		0x85, 0x26, 0xec, 0xd5, 0xb7, 0xf5, 0x6e, 0x7b, 0xf2, 0xff, 0x75, 0x7e, 0x6f, 0xd6, 0xa4, 0x8e,
		0xfa, 0xb4, 0xa0, 0x37, 0x11, 0x2d, 0xf9, 0x57, 0x52, 0xef, 0xd5, 0x9b, 0x1f, 0x76, 0xba, 0x6f,
		0x8f, 0x4f, 0xff, 0xd3, 0x6e, 0xd6, 0x0e, 0x2b, 0x65, 0xd4, 0x4b, 0x6a, 0x6e, 0xec, 0x71, 0xf5,
		0x4d, 0xed, 0xb8, 0x76, 0xd4, 0x3d, 0x6b, 0xd4, 0x0f, 0xab, 0xed, 0x0e, 0xfb, 0x9b, 0xf3, 0xfe,
		0xb2, 0xaf, 0x36, 0xf6, 0x75, 0x0f, 0xbb, 0xb5, 0xbc, 0xbf, 0xec, 0x6b, 0xee, 0xfb, 0x7a, 0xbc,
		0xfd, 0xa1, 0xd9, 0xe8, 0xd6, 0x3e, 0x34, 0x1b, 0xec, 0x6a, 0xde, 0xbb, 0xfa, 0xa1, 0x79, 0xdc,
		0x66, 0x57, 0x73, 0xdc, 0xd5, 0x57, 0x93, 0x5d, 0x9d, 0x46, 0xb0, 0x93, 0xb3, 0xe3, 0x0e, 0xbe,
		0xc0, 0xde, 0xfe, 0xe2, 0x69, 0xed, 0xed, 0xee, 0x1e, 0xd6, 0x6b, 0x79, 0x7f, 0xb1, 0xde, 0xfc,
		0x77, 0xb7, 0xde, 0xf8, 0x9f, 0x76, 0xa7, 0xda, 0xa9, 0xb1, 0xa9, 0x16, 0x36, 0xb5, 0xdb, 0x6e,
		0xbe, 0x65, 0x63, 0x6d, 0x6c, 0x2c, 0xc0, 0x36, 0xd7, 0x8d, 0xfd, 0x4a, 0xc3, 0xb0, 0xc3, 0xde,
		0x5a, 0xdb, 0xdb, 0x3d, 0xf6, 0x36, 0xbf, 0xbd, 0xfd, 0xd0, 0x6c, 0xe8, 0x10, 0xb6, 0x22, 0x2b,
		0x9d, 0x53, 0xba, 0x2f, 0x6f, 0xd9, 0x15, 0x13, 0x05, 0x17, 0x03, 0x81, 0xb1, 0x10, 0x99, 0x11,
		0xcf, 0x17, 0xa4, 0x8e, 0xe0, 0x49, 0x0b, 0x51, 0x47, 0x90, 0xab, 0x75, 0x50, 0x47, 0x40, 0x1d,
		0xc1, 0x37, 0x76, 0x8c, 0x32, 0xbb, 0x35, 0x0d, 0x89, 0x62, 0x63, 0x88, 0xbf, 0x1a, 0x8d, 0x64,
		0x7d, 0xe4, 0xb0, 0xd0, 0x9c, 0x79, 0x82, 0x22, 0x41, 0x91, 0xa0, 0x58, 0xce, 0xa0, 0x28, 0x35,
		0x17, 0xbe, 0x32, 0xd5, 0xd4, 0x0e, 0x06, 0x82, 0x03, 0xeb, 0xee, 0xca, 0xf9, 0xb2, 0xa5, 0x85,
		0xcc, 0x50, 0xb6, 0x81, 0xb9, 0x78, 0xe3, 0x72, 0x8d, 0x86, 0xe5, 0x7a, 0x8d, 0xca, 0xb5, 0x1a,
		0x94, 0xab, 0x37, 0x26, 0x57, 0x6f, 0x48, 0xae, 0xda, 0x88, 0xbc, 0x5c, 0x2d, 0x2a, 0xc5, 0x1b,
		0x8e, 0xeb, 0x4d, 0x68, 0x57, 0x98, 0xcc, 0xae, 0xd4, 0x54, 0x5c, 0xa1, 0x7d, 0xbc, 0x66, 0x13,
		0x71, 0xed, 0xe6, 0xe1, 0xce, 0xf4, 0x63, 0xd6, 0xef, 0xc3, 0xac, 0xd0, 0x24, 0x5c, 0xb5, 0x39,
		0xb8, 0x33, 0x13, 0xd5, 0xb1, 0x41, 0xe1, 0x00, 0x2d, 0xbf, 0xda, 0x79, 0x59, 0xfa, 0x6a, 0x09,
		0x30, 0x2a, 0x59, 0x4f, 0x5a, 0xf1, 0x9c, 0x52, 0xb0, 0x1b, 0x2e, 0x29, 0x25, 0x29, 0x25, 0x29,
		0x25, 0x29, 0x25, 0x29, 0x25, 0x29, 0x25, 0x29, 0x25, 0x29, 0x25, 0x29, 0x25, 0x29, 0x25, 0x36,
		0x48, 0x4a, 0x49, 0x4a, 0x69, 0x33, 0xa5, 0xf4, 0x47, 0xf1, 0xbc, 0x7b, 0xaf, 0x5e, 0x76, 0xb9,
		0xf8, 0x25, 0x48, 0x34, 0x49, 0x34, 0x49, 0x34, 0x49, 0x34, 0x49, 0x34, 0x49, 0x34, 0x49, 0x34,
		0x49, 0x34, 0x01, 0xf9, 0x24, 0x9a, 0x24, 0x9a, 0x24, 0x9a, 0x24, 0x9a, 0xc5, 0x4c, 0x34, 0x93,
		0x5b, 0x70, 0x28, 0x9c, 0x59, 0x4e, 0x57, 0x25, 0x95, 0x24, 0x95, 0x24, 0x95, 0x24, 0x95, 0x24,
		0x95, 0x24, 0x95, 0x24, 0x95, 0x24, 0x95, 0x04, 0xc6, 0x93, 0x4a, 0x92, 0x4a, 0x92, 0x4a, 0x92,
		0x4a, 0x16, 0x6d, 0x05, 0xdb, 0xf2, 0x50, 0xa1, 0xb1, 0xad, 0x77, 0x49, 0xb1, 0x43, 0xe3, 0x5b,
		0xd3, 0x20, 0x9d, 0x7c, 0x84, 0x88, 0x92, 0xdf, 0x73, 0x66, 0x88, 0xeb, 0xe4, 0xa9, 0xbb, 0xcd,
		0xf9, 0x53, 0xd3, 0x4d, 0x62, 0x15, 0x6f, 0xd3, 0xf7, 0x7b, 0xc3, 0xeb, 0xeb, 0x71, 0x14, 0xa6,
		0x9f, 0xa7, 0x53, 0xf4, 0xe5, 0x1a, 0x4b, 0xac, 0x5a, 0x9c, 0xc6, 0x4b, 0xae, 0xb2, 0x36, 0xf4,
		0x98, 0x28, 0x1f, 0x2b, 0x43, 0x8f, 0x09, 0x77, 0x59, 0x97, 0xec, 0xbc, 0x89, 0x7a, 0xc8, 0x45,
		0x2f, 0xb9, 0xb5, 0x23, 0xb0, 0x56, 0x2d, 0x1a, 0x5f, 0xcb, 0x9d, 0xf0, 0xce, 0xb0, 0x9d, 0xc6,
		0x61, 0x74, 0x25, 0xcb, 0x9b, 0x6d, 0x4e, 0x7b, 0x8f, 0x76, 0xaa, 0x8d, 0xa3, 0x6a, 0xeb, 0x48,
		0x92, 0x36, 0xdb, 0x9a, 0x2c, 0x5c, 0xfb, 0xad, 0x53, 0x6b, 0x1c, 0xd5, 0x44, 0x17, 0xde, 0x9e,
		0xb6, 0x08, 0xae, 0xb6, 0xde, 0xd5, 0x24, 0x57, 0x7d, 0x35, 0x59, 0xf5, 0xcd, 0x69, 0xe7, 0xbd,
		0xe4, 0xa2, 0x3b, 0x93, 0x45, 0x1b, 0xa7, 0x0d, 0xa1, 0xb6, 0xdd, 0x62, 0xec, 0xf2, 0xb0, 0x2e,
		0x78, 0xa5, 0x37, 0x5d, 0x72, 0xfa, 0xe6, 0x0e, 0xbc, 0x57, 0x82, 0x2f, 0x2f, 0x3b, 0x1b, 0xd6,
		0xfb, 0x8e, 0x2d, 0x2d, 0x7b, 0x7b, 0x32, 0x0e, 0xbc, 0x6d, 0xc1, 0x35, 0xa7, 0x26, 0x7a, 0xe0,
		0xed, 0x48, 0xde, 0xb2, 0xcd, 0x5d, 0xde, 0x81, 0xb7, 0x09, 0x03, 0xe2, 0x00, 0x78, 0x39, 0x0e,
		0x93, 0xb4, 0x9a, 0xa6, 0x42, 0x5d, 0xb2, 0x4e, 0xc2, 0xa8, 0x36, 0x30, 0x13, 0x78, 0x29, 0x44,
		0x6a, 0x56, 0x4e, 0x82, 0x4f, 0x0b, 0x2b, 0x6e, 0xfd, 0xb2, 0xb3, 0xb3, 0xb7, 0xbf, 0xb3, 0xb3,
		0xb9, 0xff, 0x6a, 0x7f, 0xf3, 0xf5, 0xee, 0xee, 0xd6, 0x9e, 0xc8, 0x54, 0xca, 0xd3, 0xb8, 0x6f,
		0x62, 0xd3, 0x7f, 0xf3, 0xb9, 0x72, 0xe0, 0x45, 0xe3, 0xc1, 0x40, 0x72, 0xc9, 0xb3, 0xc4, 0xc4,
		0x22, 0xec, 0xad, 0x45, 0xba, 0xe3, 0x45, 0x81, 0x4e, 0x96, 0x14, 0xa7, 0xe8, 0x1c, 0x97, 0x58,
		0xb1, 0x49, 0x4a, 0xb9, 0x42, 0x1d, 0xda, 0x41, 0x74, 0xf9, 0x1b, 0xb8, 0x05, 0xe3, 0xae, 0x8c,
		0x13, 0xe3, 0x5f, 0x8f, 0x07, 0x69, 0x38, 0x1a, 0x18, 0x7f, 0x62, 0x77, 0xf6, 0x3a, 0xce, 0xde,
		0xd5, 0x15, 0xdc, 0x5f, 0xd3, 0xd2, 0xb1, 0xb5, 0xdb, 0x6b, 0xd6, 0x3a, 0xff, 0x27, 0xc1, 0xfb,
		0xc9, 0xf1, 0x7d, 0x52, 0x3c, 0x9f, 0x38, 0xbf, 0x27, 0xce, 0xeb, 0x89, 0xf2, 0x79, 0xc5, 0x0a,
		0xd4, 0xb6, 0x7b, 0xc3, 0x56, 0x7a, 0xf3, 0x33, 0x2f, 0x74, 0x7b, 0x32, 0x5b, 0x8f, 0xa6, 0xdc,
		0xae, 0x39, 0x4e, 0x79, 0x07, 0x2a, 0xed, 0x48, 0xd5, 0x1c, 0xaa, 0x9a, 0x63, 0x55, 0x71, 0xb0,
		0xe5, 0xe0, 0x1c, 0xc4, 0x9a, 0x72, 0x4b, 0x0d, 0x0b, 0xba, 0x77, 0xbe, 0x65, 0x86, 0x06, 0xdd,
		0x6d, 0xa8, 0xb9, 0x0c, 0xc6, 0x83, 0x54, 0xb4, 0x34, 0xb5, 0x32, 0x65, 0x14, 0x64, 0x18, 0xee,
		0x73, 0x14, 0x1d, 0x45, 0x0b, 0x75, 0x7a, 0x21, 0x4f, 0x2b, 0xf4, 0xa9, 0x87, 0x40, 0xf5, 0x50,
		0xa8, 0x1a, 0x12, 0x65, 0x42, 0xa3, 0x50, 0x88, 0xcc, 0x76, 0x52, 0x4f, 0xd1, 0x21, 0x37, 0xdc,
		0xe9, 0x5e, 0x66, 0xb1, 0xc5, 0xcd, 0x90, 0x03, 0x28, 0x6d, 0x8d, 0x6b, 0x63, 0xef, 0xb3, 0x8e,
		0x1b, 0x22, 0xb9, 0xb5, 0xe7, 0x0a, 0xd7, 0x7d, 0x96, 0x98, 0x93, 0xd9, 0xf3, 0x37, 0x27, 0x8f,
		0xdf, 0x9d, 0x41, 0x15, 0xea, 0x65, 0xef, 0xe7, 0x18, 0x93, 0xe8, 0x26, 0x37, 0x8d, 0xd4, 0x3e,
		0x86, 0x82, 0xe0, 0x81, 0xe0, 0x81, 0xe0, 0x81, 0xe0, 0x29, 0x02, 0xc1, 0x23, 0xc4, 0xb0, 0xdf,
		0x3b, 0xde, 0x62, 0x68, 0x40, 0xd0, 0x21, 0x43, 0x4b, 0x40, 0x4b, 0x40, 0x4b, 0x40, 0x4b, 0xb8,
		0xe4, 0xe0, 0xb3, 0x05, 0x83, 0xc1, 0x60, 0xf8, 0xd7, 0x5d, 0x4e, 0x16, 0x24, 0xf2, 0xe7, 0x67,
		0xee, 0x31, 0xee, 0x7f, 0x15, 0x61, 0x33, 0xd6, 0x60, 0xfb, 0xb3, 0xc5, 0x05, 0x59, 0xff, 0xf9,
		0x9f, 0x73, 0xe1, 0xfd, 0x95, 0xbd, 0x05, 0x50, 0x0b, 0xbb, 0x9a, 0xe1, 0x57, 0x3f, 0x0c, 0x6b,
		0x87, 0x63, 0x67, 0xc2, 0xb2, 0x33, 0xe1, 0xd9, 0x89, 0x30, 0x2d, 0x1b, 0xae, 0x85, 0xc3, 0x76,
		0xb6, 0xc3, 0xe2, 0xb7, 0x0a, 0xf7, 0xce, 0xbb, 0xfc, 0xed, 0xc2, 0xbd, 0x6c, 0x6a, 0xab, 0xa4,
		0x9d, 0x45, 0xca, 0x85, 0x34, 0x85, 0x6f, 0x21, 0xb2, 0x75, 0xdd, 0xbe, 0x8d, 0x30, 0x93, 0xdf,
		0x16, 0x25, 0x21, 0x3c, 0x67, 0xaf, 0x26, 0x6a, 0x17, 0x57, 0x23, 0x91, 0xfb, 0x09, 0xb9, 0x03,
		0x26, 0xd2, 0x9f, 0x75, 0x2a, 0x67, 0x90, 0x6f, 0xd0, 0x6a, 0x59, 0x2a, 0xe2, 0x04, 0x71, 0xb6,
		0x0d, 0x71, 0x06, 0x71, 0x06, 0x71, 0x06, 0x9c, 0x81, 0x38, 0x83, 0x38, 0x83, 0x38, 0x83, 0x38,
		0x83, 0x38, 0x83, 0x38, 0x83, 0x38, 0x83, 0x38, 0x83, 0x38, 0x83, 0x38, 0x83, 0x38, 0xd3, 0x26,
		0xce, 0x24, 0x39, 0x08, 0xc7, 0x79, 0x33, 0x8b, 0x4d, 0x2d, 0x14, 0x68, 0x33, 0xea, 0xed, 0x4b,
		0x75, 0x50, 0xd7, 0xb6, 0xda, 0xbe, 0x66, 0x1d, 0xba, 0x15, 0xb4, 0x37, 0xb5, 0x08, 0x67, 0x2d,
		0xca, 0x55, 0x8b, 0x57, 0xdb, 0x6f, 0x53, 0x6d, 0x5f, 0x9c, 0xa4, 0x97, 0x6a, 0x7b, 0xaa, 0xed,
		0xbf, 0xb9, 0x63, 0xb4, 0x53, 0xc8, 0x7b, 0x43, 0x69, 0xa7, 0x90, 0x67, 0x68, 0xa3, 0x9d, 0x42,
		0x91, 0x43, 0x9e, 0x56, 0xe8, 0x53, 0x0f, 0x81, 0xea, 0xa1, 0x50, 0x35, 0x24, 0x96, 0x93, 0x14,
		0xa3, 0x9d, 0x02, 0xf4, 0x0e, 0xf4, 0x8e, 0x03, 0xf4, 0x8e, 0x14, 0x05, 0xeb, 0x26, 0xbf, 0x23,
		0xc0, 0xba, 0xd2, 0x8d, 0x5b, 0xf4, 0xd8, 0xb9, 0x7d, 0xdc, 0xca, 0xde, 0x9a, 0xfb, 0xeb, 0x03,
		0x56, 0x98, 0x2e, 0xdd, 0x2f, 0x1c, 0x3e, 0x42, 0x13, 0xe0, 0x3d, 0x2d, 0xdb, 0x9a, 0xd9, 0x95,
		0x3f, 0x7d, 0xc7, 0x39, 0xaf, 0x61, 0x75, 0xfc, 0x84, 0xfd, 0x71, 0x13, 0x2a, 0xe3, 0x25, 0x04,
		0xc6, 0x49, 0x08, 0x8c, 0x8f, 0xc8, 0xdb, 0x5a, 0x2d, 0x3b, 0x7a, 0x87, 0x1c, 0xbc, 0x05, 0x6f,
		0xee, 0x82, 0x17, 0xcf, 0xd7, 0x69, 0xe7, 0xe7, 0x5a, 0xf3, 0xf9, 0xa4, 0x9c, 0xcc, 0xdd, 0x96,
		0x99, 0xeb, 0x9b, 0x77, 0x8e, 0x56, 0xad, 0x69, 0xcd, 0xf9, 0x58, 0xf1, 0xf3, 0x6d, 0x2e, 0x07,
		0x7b, 0xab, 0x04, 0xa3, 0xd1, 0xe0, 0xb3, 0x3f, 0x1a, 0x0e, 0xc2, 0xde, 0xe7, 0xdc, 0xac, 0xed,
		0xae, 0x1c, 0x7c, 0xf1, 0xd3, 0x73, 0x3a, 0x1d, 0xf9, 0x5e, 0xa6, 0xe6, 0xce, 0x28, 0xdb, 0x60,
		0x8c, 0x17, 0x19, 0xe1, 0x78, 0x34, 0x1c, 0xe4, 0x79, 0x8e, 0x2c, 0x51, 0xbe, 0xd6, 0x29, 0x5d,
		0xeb, 0x94, 0xed, 0xd7, 0x94, 0xec, 0x74, 0xe3, 0x4b, 0x1a, 0x71, 0xf2, 0xbe, 0x5e, 0xb4, 0xd5,
		0xb4, 0xcb, 0x6e, 0x73, 0x2e, 0x4b, 0x75, 0x1a, 0xd6, 0x2e, 0xad, 0x6c, 0x5e, 0x4e, 0x59, 0x74,
		0x39, 0xb6, 0x5d, 0x8f, 0x98, 0x0b, 0x12, 0x73, 0x45, 0x32, 0x2e, 0xa9, 0x18, 0x8c, 0x85, 0xad,
		0x4a, 0x88, 0x4a, 0xff, 0xb6, 0x22, 0xc0, 0x37, 0x9f, 0x46, 0xc3, 0x38, 0xcd, 0x1b, 0x12, 0x3d,
		0x78, 0xbe, 0x56, 0x2f, 0x6b, 0x6b, 0x1c, 0x92, 0x40, 0xd5, 0x43, 0xa5, 0x55, 0xfb, 0xef, 0xda,
		0x61, 0xa7, 0xdb, 0x3a, 0x3d, 0xeb, 0x58, 0x9a, 0x8e, 0x7c, 0x6e, 0x77, 0x3e, 0xdc, 0x26, 0xf3,
		0xe1, 0x34, 0xe3, 0x82, 0x54, 0x7c, 0x10, 0x8f, 0x13, 0xe2, 0xf1, 0x42, 0x36, 0x6e, 0xd8, 0x89,
		0x1f, 0x96, 0xe2, 0x48, 0xb6, 0x35, 0xd6, 0xcb, 0x05, 0xee, 0x79, 0xfa, 0x5b, 0x17, 0xef, 0xa7,
		0x93, 0x85, 0x2d, 0x9e, 0x9e, 0x39, 0x98, 0xb5, 0x38, 0xfa, 0xbb, 0x52, 0x8b, 0xc6, 0xd7, 0xf6,
		0xcf, 0x67, 0x67, 0xd8, 0x4e, 0xe3, 0x30, 0x92, 0xe9, 0x01, 0x5c, 0xd9, 0x9c, 0xbc, 0xab, 0xea,
		0xe1, 0x61, 0xad, 0x39, 0x8f, 0x61, 0x02, 0x57, 0xd8, 0x5b, 0x93, 0x45, 0xed, 0x07, 0x4e, 0xcb,
		0x87, 0x69, 0xe1, 0x8d, 0xd5, 0xa7, 0xce, 0x46, 0xe0, 0x75, 0x2d, 0xbd, 0x29, 0x99, 0x79, 0xe3,
		0x4b, 0xef, 0xe9, 0xc0, 0xdb, 0xe2, 0x92, 0xdf, 0xea, 0xa7, 0xda, 0x98, 0x73, 0x3c, 0xf7, 0xc5,
		0xe1, 0xb5, 0x0a, 0xd8, 0x5f, 0x5e, 0x16, 0xb0, 0x0f, 0xd8, 0x07, 0xec, 0x03, 0xf6, 0x01, 0xfb,
		0x80, 0x7d, 0xc0, 0x3e, 0x60, 0x1f, 0xb0, 0x0f, 0xd8, 0x07, 0xec, 0xe7, 0xf7, 0x0a, 0x85, 0x19,
		0x7d, 0x11, 0x26, 0x1f, 0xf4, 0x0a, 0x7a, 0x05, 0xbd, 0x82, 0x5e, 0xed, 0x9c, 0x98, 0x81, 0x09,
		0x2e, 0x63, 0x73, 0x29, 0x81, 0x58, 0xf7, 0x2d, 0xae, 0xd1, 0xcc, 0x4a, 0x1d, 0x6f, 0x0d, 0xe9,
		0x20, 0x1e, 0x8e, 0xd3, 0x30, 0xba, 0x9a, 0xf9, 0xe6, 0xec, 0xaf, 0x67, 0x20, 0xbd, 0x6f, 0x2e,
		0xc3, 0x28, 0x4c, 0xc3, 0x61, 0x94, 0x3c, 0xfc, 0x9f, 0xb2, 0xff, 0x32, 0x2d, 0x3d, 0x2c, 0x94,
		0xfd, 0x58, 0x2d, 0xc4, 0xcf, 0x56, 0xb1, 0x5e, 0x90, 0x7f, 0xb7, 0x92, 0x42, 0x61, 0x7e, 0xb6,
		0xf8, 0x62, 0x81, 0xbe, 0x50, 0xaf, 0x9a, 0x71, 0x62, 0x62, 0xdb, 0xfe, 0x5e, 0x50, 0x01, 0xbe,
		0x18, 0xcc, 0x86, 0xb7, 0xbb, 0xe9, 0x5f, 0x7c, 0x96, 0x48, 0xc0, 0x34, 0xd4, 0xde, 0x4b, 0x81,
		0x6d, 0xfa, 0x26, 0x69, 0xfe, 0xf4, 0xf0, 0xa1, 0x9a, 0x49, 0x52, 0x26, 0xaf, 0x66, 0x8d, 0x13,
		0x17, 0xe1, 0xdb, 0x09, 0x91, 0x5b, 0x09, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12,
		0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0xcd, 0xc4, 0x05,
		0xc9, 0xbf, 0x86, 0x26, 0x7a, 0x41, 0x19, 0x6b, 0x6f, 0xca, 0xa3, 0x8a, 0x4a, 0x7a, 0xf2, 0x64,
		0xcd, 0xe9, 0x83, 0x59, 0x19, 0xd9, 0x98, 0xa3, 0xea, 0x3f, 0x57, 0x39, 0xba, 0x8d, 0xb6, 0xd5,
		0x56, 0xdb, 0x54, 0x5b, 0x97, 0x3b, 0x6e, 0x23, 0x77, 0x14, 0x44, 0x28, 0xc8, 0x1d, 0xcb, 0x18,
		0xff, 0x90, 0x3b, 0x3e, 0x67, 0xf3, 0xa8, 0x80, 0x7e, 0x84, 0xff, 0x87, 0x8a, 0x55, 0x8d, 0x0b,
		0xd2, 0x19, 0x2c, 0x54, 0x6c, 0x11, 0x12, 0x56, 0x2a, 0xa0, 0xbf, 0x13, 0xcc, 0x52, 0x01, 0xfd,
		0xb4, 0xd5, 0xa8, 0x80, 0xce, 0xe3, 0x8d, 0x51, 0x01, 0xed, 0x3e, 0xfd, 0x87, 0xdc, 0x11, 0xb9,
		0x23, 0x60, 0x1f, 0xb0, 0x0f, 0xd8, 0x07, 0xec, 0x03, 0xf6, 0x01, 0xfb, 0x80, 0x7d, 0xc0, 0x3e,
		0x60, 0x1f, 0xb0, 0x5f, 0x36, 0xb0, 0x8f, 0xdc, 0x11, 0xf4, 0x0a, 0x7a, 0x05, 0xbd, 0x82, 0x5e,
		0x1f, 0x7b, 0x62, 0xa8, 0x1a, 0xa6, 0x6a, 0xf8, 0x7b, 0x57, 0xa1, 0x6a, 0xd8, 0xd6, 0xa9, 0xa4,
		0x6a, 0xb8, 0xa0, 0x41, 0xcd, 0xa3, 0x6a, 0xf8, 0x89, 0x87, 0x0a, 0xb9, 0x23, 0x72, 0x47, 0x12,
		0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12, 0x17, 0x12,
		0x17, 0x12, 0x17, 0x12, 0x17, 0xe4, 0x8e, 0xb9, 0x7e, 0xbe, 0x13, 0x72, 0x47, 0x1b, 0x62, 0x36,
		0xcf, 0x01, 0xb5, 0x63, 0x7b, 0xfa, 0x5c, 0x8c, 0x38, 0xd6, 0xb3, 0x73, 0x27, 0xec, 0xbb, 0xe8,
		0x53, 0x8e, 0xef, 0x2c, 0xba, 0x54, 0x83, 0x8e, 0x13, 0x7f, 0x62, 0x16, 0xfe, 0x70, 0x34, 0x4d,
		0x1c, 0x2c, 0xcc, 0x3a, 0xfe, 0x6a, 0x01, 0xc6, 0x1d, 0xe7, 0x41, 0x08, 0x5d, 0x5c, 0x8d, 0x98,
		0x76, 0xac, 0x30, 0xed, 0x78, 0xb2, 0xef, 0x0c, 0x3b, 0x7e, 0xdc, 0x07, 0x32, 0xec, 0xd8, 0xa2,
		0x83, 0xb1, 0xe9, 0x68, 0xec, 0x3b, 0x1c, 0xa9, 0x7c, 0xbd, 0xfc, 0xe2, 0xff, 0x5c, 0x1d, 0x52,
		0x31, 0x92, 0x41, 0x6b, 0xda, 0xff, 0x60, 0x30, 0x18, 0xfe, 0xe5, 0x0f, 0xff, 0x8a, 0xfc, 0x20,
		0xb1, 0x7f, 0xcf, 0xb6, 0xb4, 0x5a, 0x91, 0xc5, 0x3f, 0x9b, 0x28, 0x7e, 0x04, 0x1c, 0xbd, 0x84,
		0xc3, 0x97, 0x73, 0xfc, 0x52, 0x01, 0x40, 0x3c, 0x10, 0x88, 0x07, 0x04, 0xd1, 0xc0, 0x60, 0x8f,
		0x7f, 0xf4, 0x4a, 0x71, 0xf1, 0x38, 0x0e, 0xa3, 0xf4, 0x17, 0x81, 0x6b, 0x47, 0x9b, 0x37, 0x43,
		0xad, 0x20, 0xba, 0x32, 0x56, 0x23, 0xc6, 0xe4, 0x8f, 0xc0, 0xfd, 0xcc, 0x49, 0x18, 0x89, 0x5c,
		0x04, 0x4d, 0x17, 0xfb, 0x10, 0x0c, 0xc6, 0x46, 0x46, 0x8c, 0x32, 0x5d, 0xef, 0x6d, 0x1c, 0xf4,
		0xd2, 0x70, 0x18, 0x1d, 0x85, 0x57, 0xa1, 0xed, 0x9b, 0xca, 0x65, 0x53, 0x37, 0x57, 0x41, 0x1a,
		0xde, 0x4c, 0x9e, 0xf5, 0x32, 0x18, 0x24, 0xc6, 0xfa, 0xaa, 0x5f, 0x04, 0x2e, 0xb7, 0x4e, 0x82,
		0x4f, 0xf2, 0xa6, 0xb2, 0xbd, 0xbb, 0x8b, 0xb1, 0x14, 0x22, 0x30, 0xd9, 0xff, 0xf4, 0xf3, 0x75,
		0xee, 0xc2, 0x10, 0x26, 0xc1, 0xc5, 0xc0, 0xf8, 0x23, 0x63, 0x62, 0x3f, 0x48, 0xfc, 0xcb, 0x70,
		0x90, 0x9a, 0x58, 0xa0, 0x0d, 0xc3, 0xea, 0x75, 0x8b, 0x9c, 0x8a, 0x4d, 0x0f, 0x19, 0xe9, 0x18,
		0xe9, 0x18, 0xe9, 0x18, 0xe9, 0x18, 0xe9, 0xd8, 0xc5, 0x70, 0x38, 0x30, 0x41, 0x24, 0x51, 0x07,
		0xba, 0xb5, 0xc6, 0x01, 0x3c, 0x36, 0xa3, 0x41, 0xd0, 0xcb, 0x02, 0xa9, 0xfd, 0xc8, 0xfd, 0xf5,
		0x82, 0x84, 0x6c, 0x42, 0x36, 0x21, 0x9b, 0x90, 0x4d, 0xc8, 0x26, 0x64, 0x97, 0x30, 0x64, 0x53,
		0x9a, 0xab, 0x51, 0xba, 0xb8, 0x5c, 0xb7, 0x56, 0xb2, 0x61, 0x24, 0x49, 0x33, 0x48, 0x3f, 0x9e,
		0xde, 0x3e, 0x1a, 0xe3, 0x48, 0xf2, 0x72, 0x5e, 0x8c, 0x23, 0xa1, 0x20, 0xc9, 0x11, 0x14, 0x45,
		0x41, 0x92, 0x5c, 0x08, 0xa4, 0x20, 0xc9, 0xad, 0x94, 0x9a, 0x82, 0x24, 0xd2, 0x69, 0xd2, 0x69,
		0xd2, 0x69, 0xd2, 0x69, 0x0a, 0x92, 0x1e, 0xfd, 0x87, 0x82, 0xa4, 0xe7, 0xad, 0x47, 0x41, 0x52,
		0xae, 0xa6, 0x42, 0x41, 0x52, 0x49, 0x8c, 0x85, 0x82, 0x24, 0xab, 0xdf, 0x97, 0x82, 0x24, 0xa7,
		0x53, 0x31, 0x6e, 0x37, 0x49, 0xc7, 0x48, 0xc7, 0x48, 0xc7, 0x48, 0xc7, 0xb8, 0xdd, 0x94, 0x0b,
		0xe0, 0x14, 0x24, 0x11, 0xb2, 0x09, 0xd9, 0x84, 0x6c, 0x42, 0x36, 0x21, 0x9b, 0x90, 0x4d, 0x41,
		0x52, 0xae, 0x9f, 0xef, 0x4a, 0x41, 0x52, 0xa9, 0xda, 0x05, 0x2e, 0xd5, 0x23, 0xd1, 0x30, 0x50,
		0xdb, 0xd8, 0x5d, 0x31, 0xf2, 0xa2, 0xf7, 0x0c, 0x5c, 0x34, 0xeb, 0x32, 0x75, 0x0d, 0xcc, 0xb9,
		0xb5, 0x97, 0x9d, 0x96, 0x5e, 0xf4, 0x08, 0xa4, 0x47, 0x20, 0x3d, 0x02, 0x73, 0x0d, 0x37, 0xb9,
		0xf7, 0x08, 0x0c, 0xc6, 0xe9, 0x47, 0x7f, 0x14, 0x24, 0xc9, 0xcc, 0x04, 0x2c, 0x15, 0xe6, 0x2e,
		0x2f, 0x63, 0xa7, 0x40, 0x77, 0x93, 0x8e, 0x81, 0x14, 0xe8, 0x3a, 0xc8, 0x26, 0x50, 0xa0, 0x6b,
		0x8f, 0x2d, 0xb8, 0x23, 0x80, 0xe7, 0x93, 0x59, 0xec, 0xf8, 0x98, 0x25, 0x38, 0xf3, 0xcb, 0x1a,
		0x08, 0x35, 0xfa, 0x26, 0xe9, 0xc5, 0xe1, 0xc8, 0x4a, 0x16, 0xbf, 0x30, 0x9d, 0xff, 0x6e, 0x11,
		0x62, 0x02, 0x31, 0x81, 0x98, 0x40, 0x4c, 0xc8, 0xd1, 0xde, 0x93, 0x34, 0x0e, 0xa3, 0x2b, 0x22,
		0xc1, 0xf3, 0x9e, 0xd5, 0x44, 0xc1, 0xc5, 0xc0, 0x58, 0xcc, 0x0d, 0xe6, 0x0b, 0xe4, 0x2d, 0x0a,
		0xb2, 0x78, 0x57, 0x5b, 0x99, 0x78, 0x86, 0x7c, 0x0f, 0xec, 0x39, 0x01, 0x90, 0x00, 0x48, 0x00,
		0x24, 0x00, 0xe6, 0x68, 0xef, 0xf6, 0xae, 0x4e, 0x2d, 0x5d, 0x99, 0xba, 0x19, 0x01, 0x07, 0xc3,
		0x5e, 0x30, 0xb0, 0x51, 0xc6, 0x74, 0x37, 0x2f, 0x75, 0xbe, 0x02, 0x41, 0x80, 0x20, 0x40, 0x10,
		0x20, 0x08, 0xe4, 0x68, 0xef, 0x41, 0xe2, 0x47, 0xe3, 0xeb, 0x0b, 0x2b, 0x3a, 0x86, 0xb9, 0x83,
		0xb1, 0x30, 0x84, 0xd9, 0xb2, 0xea, 0xd0, 0xee, 0x00, 0x63, 0xfb, 0xb5, 0x77, 0x42, 0xea, 0x42,
		0x71, 0xa1, 0x98, 0x9c, 0x40, 0xec, 0x8b, 0xdd, 0xc9, 0xd2, 0x72, 0x26, 0xb0, 0xb3, 0xfd, 0x7a,
		0xe7, 0xf5, 0xde, 0xfe, 0xf6, 0xeb, 0x5d, 0x6c, 0xc1, 0x89, 0x18, 0x61, 0xef, 0x53, 0xcf, 0xd7,
		0x00, 0x6d, 0xcf, 0x4b, 0x91, 0xfc, 0xa0, 0xdf, 0x8f, 0x4d, 0x62, 0x11, 0x75, 0xdf, 0x5b, 0x09,
		0xf4, 0x0d, 0xfa, 0x06, 0x7d, 0x83, 0xbe, 0x73, 0xb4, 0xf7, 0x70, 0x64, 0xc9, 0xbb, 0x2c, 0xb1,
		0x30, 0xaf, 0x2d, 0x7c, 0xf6, 0x6c, 0x6f, 0x0a, 0x07, 0xbf, 0xef, 0x76, 0xfe, 0x66, 0xc7, 0xe2,
		0xde, 0xdf, 0x7b, 0x07, 0xbf, 0x58, 0x5c, 0xa3, 0x19, 0xa4, 0xa9, 0x89, 0x23, 0xeb, 0x3d, 0x58,
		0x2a, 0x3f, 0xfe, 0xb1, 0xe9, 0xbf, 0x3e, 0xff, 0xe7, 0x8f, 0x2d, 0xff, 0xf5, 0xf9, 0xed, 0x8f,
		0x5b, 0xd3, 0xff, 0xf3, 0xf7, 0xf6, 0x97, 0x7f, 0xb6, 0xff, 0xd8, 0xf4, 0x77, 0x66, 0x7f, 0xbb,
		0xbd, 0xfb, 0xc7, 0xa6, 0xbf, 0x7b, 0xfe, 0xd3, 0x8f, 0x7f, 0xfe, 0xf9, 0xf2, 0xa9, 0xbf, 0xf3,
		0xd3, 0xdf, 0xaf, 0xbe, 0xd8, 0x93, 0xd1, 0x9c, 0xdb, 0x7c, 0x0d, 0xa7, 0xed, 0xfa, 0x6f, 0x62,
		0xef, 0xe2, 0x7f, 0x7f, 0x94, 0x7a, 0x1b, 0x3f, 0xfd, 0x57, 0xa5, 0x68, 0x7d, 0x2c, 0x7e, 0x2e,
		0xb0, 0x5b, 0xda, 0xc3, 0x2d, 0x3d, 0xd5, 0x2d, 0x4d, 0xad, 0x3a, 0xf0, 0x2f, 0xab, 0xfe, 0xdb,
		0xf3, 0xbf, 0xb7, 0x7e, 0xde, 0xf9, 0x72, 0xf0, 0xd3, 0xdf, 0xfb, 0x5f, 0xbe, 0xfe, 0xcb, 0x7f,
		0x56, 0xfd, 0xb3, 0xad, 0x9f, 0xf7, 0xbf, 0x1c, 0x3c, 0xf0, 0x5f, 0xf6, 0xbe, 0x1c, 0x3c, 0xf2,
		0x33, 0x76, 0xbf, 0xfc, 0x78, 0xef, 0x9f, 0x4e, 0xfe, 0x7e, 0xfb, 0xa1, 0x5f, 0xd8, 0x79, 0xe0,
		0x17, 0x5e, 0x3d, 0xf4, 0x0b, 0xaf, 0x1e, 0xf8, 0x85, 0x07, 0xbf, 0xd2, 0xf6, 0x03, 0xbf, 0xb0,
		0xfb, 0xe5, 0x9f, 0x7b, 0xff, 0xfe, 0xc7, 0xd5, 0xff, 0x74, 0xef, 0xcb, 0x4f, 0xff, 0x3c, 0xf4,
		0xdf, 0xf6, 0xbf, 0xfc, 0x73, 0xf0, 0xd3, 0x4f, 0x38, 0xea, 0x47, 0x3b, 0x6a, 0xcc, 0x53, 0xde,
		0x3c, 0x8b, 0x17, 0xb8, 0xe0, 0x84, 0x9e, 0xc3, 0x09, 0x8d, 0x86, 0x71, 0x2a, 0x40, 0x08, 0x4d,
		0x97, 0x29, 0x52, 0x3d, 0xd2, 0xd6, 0xfe, 0x6b, 0xca, 0x91, 0xe0, 0xc2, 0xe0, 0xc2, 0xe0, 0xc2,
		0xdc, 0xe5, 0xc2, 0x26, 0x5e, 0xd5, 0xfe, 0x5d, 0xf4, 0x1e, 0x77, 0xd1, 0x77, 0x5f, 0x9c, 0xbb,
		0xe8, 0x67, 0x19, 0x2e, 0x77, 0xd1, 0x4f, 0x34, 0x81, 0xbd, 0xdd, 0xdd, 0x57, 0x5c, 0x43, 0xbb,
		0x93, 0x1c, 0x90, 0x72, 0x7c, 0xef, 0x4b, 0xb7, 0xd5, 0xba, 0xee, 0x2e, 0x1a, 0x5a, 0x69, 0x55,
		0x07, 0xd0, 0x06, 0x68, 0x03, 0xb4, 0x29, 0xf9, 0xa4, 0xe4, 0x13, 0x98, 0x0d, 0xbe, 0x2a, 0x2b,
		0xcc, 0xa6, 0xe4, 0x13, 0xac, 0x5d, 0x36, 0xac, 0x7d, 0x15, 0x0f, 0xc7, 0x23, 0xcb, 0x70, 0xfb,
		0x76, 0x0d, 0x10, 0x37, 0x88, 0x1b, 0xc4, 0x0d, 0xe2, 0xce, 0xd1, 0xde, 0x07, 0x26, 0xb8, 0x8c,
		0xcd, 0xa5, 0xcd, 0x1a, 0x4f, 0x1b, 0x80, 0xbb, 0x39, 0xeb, 0x2f, 0xfa, 0xf2, 0xe5, 0x46, 0xf6,
		0xff, 0xee, 0x1c, 0x65, 0xb2, 0xf0, 0xf3, 0xc2, 0x8f, 0xfe, 0xb4, 0x85, 0xe7, 0xba, 0x84, 0xa5,
		0xd4, 0x86, 0xed, 0x2c, 0x47, 0xa5, 0xe9, 0x12, 0x04, 0x25, 0x82, 0x12, 0x41, 0x89, 0xa0, 0x54,
		0x00, 0xe7, 0xb2, 0x14, 0x96, 0x76, 0x2c, 0x7c, 0x76, 0x2d, 0x1a, 0x5f, 0xdb, 0x3b, 0x4c, 0x9d,
		0x61, 0xfb, 0xb6, 0x31, 0x94, 0xd5, 0xf1, 0x05, 0x9b, 0x93, 0x37, 0x50, 0x6f, 0x74, 0x6a, 0xad,
		0x46, 0xf5, 0xd8, 0x66, 0xa1, 0xef, 0xd6, 0x64, 0xa1, 0xda, 0x6f, 0xb3, 0x85, 0x8a, 0x35, 0x44,
		0x62, 0x58, 0x8f, 0x52, 0xbb, 0xaf, 0x21, 0xdb, 0x98, 0xdc, 0xda, 0x50, 0xaf, 0x5c, 0x26, 0x7b,
		0xd1, 0x07, 0xde, 0xe6, 0x7a, 0x0e, 0x91, 0x70, 0x12, 0xc1, 0xc5, 0xe6, 0x7a, 0x78, 0x63, 0xfc,
		0x51, 0x1c, 0xde, 0x04, 0xa9, 0xb1, 0x7a, 0x9d, 0x77, 0x7f, 0x29, 0x10, 0x1d, 0x88, 0x0e, 0x44,
		0x07, 0xa2, 0xb3, 0xe9, 0x64, 0x66, 0x73, 0x3a, 0x6c, 0x02, 0x3c, 0x0b, 0x57, 0x0c, 0x95, 0x7a,
		0xdf, 0x44, 0x69, 0x98, 0x7e, 0x7e, 0x13, 0x24, 0xc6, 0xfe, 0x70, 0xc0, 0x56, 0xed, 0xe4, 0xf4,
		0x43, 0xad, 0xdb, 0x6c, 0xd5, 0x3f, 0x54, 0x3b, 0xb5, 0x6e, 0xb5, 0xdd, 0x3d, 0x6d, 0x76, 0xea,
		0xa7, 0x0d, 0x5b, 0x47, 0x6e, 0x7a, 0x4b, 0x93, 0x58, 0xd5, 0x9d, 0x58, 0xbe, 0x67, 0x9a, 0xef,
		0xdc, 0xc2, 0x96, 0xcd, 0x36, 0xb1, 0x7a, 0x7c, 0x5c, 0x29, 0xe2, 0xfd, 0x9c, 0xc6, 0x86, 0x35,
		0x8f, 0xab, 0x87, 0xb6, 0x77, 0xcc, 0xce, 0x98, 0x48, 0xc0, 0xe6, 0xf7, 0x80, 0xcd, 0xe1, 0x38,
		0x35, 0xfe, 0xe5, 0x20, 0x18, 0xf9, 0xfd, 0xe0, 0x7a, 0x64, 0x23, 0xc3, 0x5c, 0x6a, 0x77, 0xff,
		0xd5, 0x5a, 0x45, 0x92, 0xab, 0x58, 0x18, 0x71, 0x8a, 0x60, 0x05, 0xb8, 0x0d, 0xdc, 0x06, 0x6e,
		0xe7, 0x69, 0xef, 0xf4, 0xcf, 0xcd, 0xe5, 0x59, 0x13, 0x13, 0xf5, 0xfd, 0xde, 0xf0, 0xfa, 0x7a,
		0x1c, 0x85, 0xe9, 0x67, 0x7b, 0x41, 0xf1, 0xab, 0x75, 0x8a, 0x14, 0x10, 0x1b, 0xa7, 0x8d, 0x1a,
		0xf1, 0x90, 0x78, 0x48, 0x3c, 0x24, 0x1e, 0xba, 0x1b, 0x0f, 0x33, 0xdf, 0xca, 0xad, 0xe2, 0xfd,
		0xdd, 0x97, 0xbb, 0x55, 0x6c, 0x77, 0xaa, 0x8d, 0xa3, 0x6a, 0xeb, 0x48, 0xe4, 0x56, 0xb1, 0x71,
		0x54, 0xb3, 0xba, 0xd0, 0xf6, 0x64, 0xa1, 0xe3, 0x6a, 0xeb, 0x5d, 0xcd, 0xe6, 0x2a, 0xaf, 0x26,
		0xab, 0xbc, 0x39, 0xed, 0xbc, 0xb7, 0xb9, 0xc8, 0xce, 0x64, 0x91, 0xfc, 0x23, 0xb9, 0x65, 0x76,
		0x4c, 0xe2, 0x16, 0x76, 0xba, 0xf3, 0x07, 0xde, 0xab, 0x9f, 0xed, 0x5e, 0xf4, 0x4e, 0x6d, 0xd5,
		0xee, 0x45, 0xef, 0xad, 0xa5, 0x1e, 0x78, 0xdb, 0x16, 0xd7, 0x98, 0x9a, 0xd0, 0x81, 0xb7, 0x63,
		0x71, 0x89, 0xcc, 0x85, 0xac, 0xed, 0x7d, 0x75, 0xce, 0xc1, 0xd7, 0x7c, 0x4a, 0xe3, 0xc0, 0x1f,
		0x47, 0x49, 0x1a, 0x5c, 0x0c, 0x2c, 0x85, 0xe1, 0x24, 0x0d, 0xd2, 0x71, 0x52, 0xe4, 0x9e, 0x9c,
		0x7d, 0x33, 0x8a, 0x4d, 0x2f, 0x48, 0x4d, 0xdf, 0xa6, 0x1f, 0xb6, 0x0c, 0x9e, 0x57, 0x81, 0xe8,
		0xd9, 0xab, 0xb1, 0x2c, 0x8e, 0x91, 0x02, 0xd3, 0x2b, 0x41, 0xf5, 0xc2, 0xbb, 0x43, 0x94, 0xb3,
		0x76, 0xac, 0x8d, 0xe5, 0x3a, 0xe8, 0x55, 0x8b, 0x41, 0x60, 0x40, 0x60, 0x40, 0x60, 0x40, 0x60,
		0x40, 0x60, 0x40, 0x60, 0x40, 0x60, 0x40, 0x60, 0x40, 0x60, 0x40, 0x60, 0x40, 0x60, 0xd8, 0x0a,
		0xbe, 0xc7, 0x61, 0x92, 0x56, 0xd3, 0x34, 0xb6, 0x13, 0x80, 0x4f, 0xc2, 0xa8, 0x36, 0x30, 0x13,
		0x78, 0x63, 0xa9, 0x89, 0x44, 0xe5, 0x24, 0xf8, 0xb4, 0xb0, 0xc2, 0xd6, 0x2f, 0x3b, 0x3b, 0x7b,
		0xfb, 0x3b, 0x3b, 0x9b, 0xfb, 0xaf, 0xf6, 0x37, 0x5f, 0xef, 0xee, 0x6e, 0xed, 0x59, 0xa9, 0x63,
		0x3d, 0x8d, 0xfb, 0x26, 0x36, 0xfd, 0x37, 0x9f, 0x2b, 0x07, 0x5e, 0x34, 0x1e, 0x0c, 0x6c, 0x2e,
		0x71, 0x96, 0x98, 0xd8, 0x4a, 0x57, 0x8c, 0x1c, 0xd3, 0xcf, 0x17, 0x0e, 0x59, 0x76, 0xa5, 0x1a,
		0x45, 0xc3, 0x34, 0x98, 0x96, 0x47, 0xe7, 0x69, 0xd3, 0x95, 0xa4, 0xf7, 0xd1, 0x5c, 0x07, 0xa3,
		0x99, 0x74, 0x7a, 0x63, 0x38, 0x32, 0x51, 0x6f, 0x9a, 0x04, 0xfa, 0x91, 0x49, 0xff, 0x1a, 0xc6,
		0xff, 0xe7, 0x87, 0x51, 0x92, 0x06, 0x51, 0xcf, 0x6c, 0x7c, 0xfd, 0x17, 0xc9, 0xbd, 0xbf, 0xd9,
		0x18, 0xc5, 0xc3, 0x74, 0xd8, 0x1b, 0x0e, 0x92, 0xec, 0xa7, 0x8d, 0x8b, 0xab, 0xd1, 0xc6, 0xbc,
		0x15, 0x75, 0x92, 0xfd, 0xb4, 0x71, 0xbb, 0x48, 0x25, 0xcf, 0x14, 0x3f, 0x8d, 0xc7, 0xbd, 0x34,
		0x9a, 0x81, 0xe3, 0xd3, 0xec, 0x41, 0x1a, 0xb7, 0x5f, 0xb2, 0x3e, 0xfb, 0x8e, 0xdd, 0xaf, 0xfe,
		0x77, 0xf2, 0xf5, 0x5f, 0x74, 0x9b, 0xf3, 0x87, 0xc8, 0x7e, 0xea, 0xbe, 0xb9, 0x1a, 0x75, 0x1b,
		0xf3, 0x87, 0xc8, 0x7e, 0xea, 0xce, 0xd2, 0xe5, 0x17, 0x6e, 0x98, 0x5b, 0x0e, 0xa6, 0x56, 0x31,
		0x17, 0x57, 0x23, 0xff, 0x7a, 0x3c, 0x48, 0xc3, 0x8f, 0xc3, 0xfc, 0xfa, 0x97, 0x64, 0x29, 0xcb,
		0xf2, 0xc7, 0xe7, 0x74, 0x34, 0xe6, 0x59, 0x4a, 0x4e, 0x1f, 0x97, 0x37, 0x07, 0x62, 0x83, 0xfb,
		0xb0, 0xc7, 0x79, 0xd8, 0xe2, 0x3a, 0xac, 0x73, 0x1c, 0xd6, 0xb9, 0x0d, 0xab, 0x9c, 0x86, 0x5b,
		0xc1, 0xe6, 0x28, 0xcc, 0x17, 0x39, 0x55, 0x7a, 0xf3, 0x33, 0x65, 0x89, 0x71, 0xcd, 0x3d, 0x9a,
		0x58, 0x70, 0x2c, 0xd6, 0x1c, 0x8c, 0x4d, 0x47, 0x63, 0xdf, 0xe1, 0xd8, 0x76, 0x3c, 0x62, 0x0e,
		0x48, 0xcc, 0x11, 0x89, 0x38, 0xa4, 0x62, 0xe4, 0x79, 0x79, 0x3b, 0xaa, 0x3b, 0x1c, 0x14, 0x05,
		0x17, 0x03, 0xd3, 0xb7, 0x2f, 0xe7, 0x9b, 0x2f, 0x64, 0xc9, 0x44, 0x6c, 0xd6, 0xf9, 0x66, 0x8b,
		0x58, 0x10, 0xc0, 0xcc, 0xff, 0x58, 0x9a, 0xab, 0x65, 0xe9, 0xfe, 0xcc, 0xba, 0x8b, 0x97, 0x70,
		0xf5, 0x72, 0x2e, 0x5f, 0xca, 0xf5, 0x8b, 0x87, 0x00, 0xf1, 0x50, 0x20, 0x1a, 0x12, 0xec, 0x91,
		0x8a, 0x9e, 0x4d, 0x5e, 0xdd, 0xd6, 0x7d, 0xdc, 0xbd, 0xf3, 0x62, 0x4f, 0x68, 0x73, 0x0f, 0x99,
		0x6e, 0x15, 0x85, 0x2d, 0xb6, 0x80, 0x17, 0xe7, 0x34, 0x82, 0x9f, 0xa6, 0x03, 0xfb, 0x71, 0x7a,
		0x69, 0x35, 0x82, 0x12, 0x41, 0x89, 0xa0, 0x44, 0x50, 0x2a, 0x50, 0x50, 0x1a, 0x87, 0x51, 0xfa,
		0x8b, 0x40, 0x48, 0xb2, 0xd8, 0xc3, 0xdd, 0xf2, 0x44, 0x85, 0xf9, 0x1f, 0xbb, 0xc7, 0xdd, 0x93,
		0x9a, 0xb0, 0x90, 0x2d, 0x26, 0x34, 0x69, 0x21, 0x5b, 0x4f, 0xba, 0xcb, 0xfe, 0x9d, 0xa9, 0x4b,
		0x75, 0xdb, 0xb7, 0xec, 0x15, 0x96, 0x4d, 0x45, 0x60, 0x12, 0xc3, 0x3d, 0x53, 0xd9, 0xde, 0xdd,
		0xc5, 0x58, 0x0a, 0x11, 0x98, 0xec, 0x7f, 0xfa, 0x39, 0x05, 0x29, 0x79, 0x40, 0x20, 0x3b, 0xd7,
		0xf7, 0xd9, 0xe7, 0x6b, 0x5d, 0xe3, 0x2f, 0x5d, 0xe8, 0x6e, 0x58, 0xb9, 0x86, 0xf1, 0x94, 0x2e,
		0xf7, 0x6b, 0x17, 0x57, 0xa3, 0x93, 0xd9, 0x93, 0xe5, 0x7a, 0xd3, 0x9f, 0xbf, 0xc5, 0xe6, 0xaa,
		0x94, 0x48, 0x83, 0xd4, 0xa6, 0x36, 0x62, 0xfa, 0xf1, 0x05, 0xbb, 0xa8, 0xdb, 0xe6, 0xa2, 0x4e,
		0x2e, 0x31, 0xe6, 0xa2, 0xae, 0x84, 0xf1, 0x8f, 0x8b, 0xba, 0x6f, 0x6d, 0x10, 0x17, 0x75, 0xff,
		0xe6, 0xda, 0xe1, 0x44, 0x35, 0x5d, 0xbe, 0x94, 0xeb, 0x17, 0x0f, 0x01, 0xe2, 0xa1, 0x40, 0x34,
		0x24, 0xd8, 0x4d, 0x0e, 0xb9, 0xa8, 0x7b, 0x02, 0x32, 0xe5, 0xa2, 0x8e, 0x8b, 0x3a, 0x82, 0x12,
		0x41, 0x89, 0xa0, 0x44, 0x50, 0xfa, 0xf7, 0xf3, 0xc2, 0x45, 0xdd, 0x63, 0xff, 0x70, 0x51, 0xf7,
		0xbc, 0xf5, 0xb8, 0xa8, 0xcb, 0xd5, 0x54, 0xb8, 0xa8, 0x2b, 0x89, 0xb1, 0x70, 0x51, 0x67, 0x37,
		0xc5, 0xe0, 0xa2, 0x4e, 0xfd, 0xa2, 0xce, 0xc6, 0x2d, 0x8c, 0xe7, 0xc2, 0x3d, 0x5d, 0x7b, 0xfa,
		0x60, 0x28, 0xca, 0xf5, 0x2c, 0xdd, 0x0d, 0x0b, 0x2f, 0xb8, 0xb0, 0x7c, 0xd1, 0xa6, 0x4b, 0x25,
		0x2f, 0x9f, 0x5e, 0xa2, 0xf8, 0x17, 0x97, 0x7d, 0x0b, 0xda, 0xf2, 0xbb, 0xcf, 0x46, 0x58, 0x9e,
		0x0b, 0x6d, 0x73, 0xd9, 0x47, 0x58, 0xae, 0x21, 0x2c, 0xbf, 0xec, 0x23, 0x2c, 0x7f, 0xe4, 0x07,
		0x22, 0x2c, 0xb7, 0xe8, 0x60, 0x6c, 0x3a, 0x1a, 0xfb, 0x0e, 0xc7, 0xb6, 0xe3, 0x11, 0x73, 0x40,
		0x62, 0x8e, 0x48, 0xc4, 0x21, 0x15, 0x23, 0x0d, 0xa4, 0x5e, 0xe5, 0x71, 0x2e, 0x8c, 0x2b, 0x30,
		0x4d, 0xd7, 0x26, 0xe5, 0xe2, 0xc4, 0x5d, 0x9d, 0xb8, 0xcb, 0x13, 0x75, 0x7d, 0x76, 0xb9, 0x40,
		0xea, 0x32, 0x9e, 0x80, 0xc0, 0xb6, 0x20, 0x4d, 0xdd, 0xa5, 0x92, 0xf4, 0x29, 0xa5, 0x8c, 0x52,
		0x28, 0x99, 0xb4, 0x61, 0xfa, 0x5c, 0x6f, 0x2e, 0xfb, 0xe8, 0x1a, 0xf2, 0xf2, 0x59, 0xe8, 0x1a,
		0xc8, 0x13, 0xc9, 0x13, 0xc9, 0x13, 0xc9, 0x13, 0xc9, 0x13, 0xc9, 0x13, 0xc9, 0x13, 0xc9, 0x13,
		0xc9, 0x13, 0xc9, 0x13, 0xd7, 0x2f, 0x4f, 0x2c, 0x55, 0x65, 0x4d, 0x96, 0x26, 0x52, 0x56, 0xa3,
		0x6d, 0xe3, 0x0e, 0xd8, 0x76, 0xd1, 0x6b, 0x6a, 0xe6, 0xd6, 0x5c, 0xaa, 0x82, 0x9a, 0x38, 0x1e,
		0xc6, 0xfe, 0xc7, 0x20, 0xea, 0x0f, 0xf2, 0x9c, 0x76, 0x76, 0x97, 0x1d, 0x2c, 0x7f, 0x3e, 0x85,
		0x35, 0xb9, 0x80, 0x7c, 0x26, 0x36, 0x78, 0x4c, 0x6c, 0xc8, 0x35, 0xea, 0x50, 0x58, 0xe3, 0x51,
		0x58, 0x23, 0xe4, 0x70, 0xa4, 0xd8, 0x04, 0x1a, 0xc1, 0x94, 0x30, 0x05, 0xb4, 0x46, 0x98, 0xa6,
		0xb1, 0x09, 0x52, 0x3f, 0x48, 0xfc, 0xbf, 0xc2, 0xf4, 0x63, 0x3f, 0x0e, 0xfe, 0xb2, 0x4f, 0x9d,
		0xde, 0x5f, 0x92, 0xe6, 0x30, 0x2b, 0xff, 0xd0, 0x1c, 0x46, 0xdc, 0xfd, 0xcb, 0x85, 0x01, 0xa9,
		0x70, 0x20, 0x1e, 0x16, 0xc4, 0xc3, 0x83, 0x68, 0x98, 0xb0, 0xc7, 0x41, 0x7a, 0x90, 0xcb, 0x4f,
		0x43, 0xab, 0x5b, 0x85, 0x7a, 0x05, 0xe6, 0x53, 0x1a, 0x07, 0xfe, 0x38, 0x4a, 0xd2, 0xe0, 0x62,
		0x60, 0xf9, 0x65, 0xc4, 0xe6, 0xd2, 0xc4, 0x26, 0xea, 0x95, 0xa2, 0x99, 0xc0, 0xdc, 0xb2, 0xfa,
		0x71, 0x70, 0x99, 0xfa, 0xa1, 0x49, 0x2f, 0xfd, 0xb0, 0x1f, 0xfb, 0xcb, 0x14, 0x8b, 0xbf, 0xb5,
		0x57, 0x11, 0x50, 0xab, 0x0b, 0xf9, 0xea, 0x55, 0x3e, 0xfb, 0xee, 0x9d, 0x0a, 0x29, 0xc8, 0xa5,
		0xdd, 0xf7, 0x4a, 0x37, 0xfe, 0xcd, 0x97, 0x8e, 0xae, 0xfd, 0x21, 0xf0, 0xc8, 0xd5, 0x5b, 0x1e,
		0xb6, 0x58, 0xd6, 0xab, 0xb7, 0xa5, 0x83, 0x54, 0xb2, 0x32, 0xcd, 0xc9, 0xb3, 0xbd, 0x9f, 0x3d,
		0x1a, 0xa5, 0x9a, 0x79, 0xc5, 0x5f, 0x4a, 0x35, 0x61, 0x1e, 0x1d, 0x49, 0x31, 0x61, 0x1e, 0xe5,
		0x22, 0xa0, 0xbd, 0x52, 0xcd, 0x38, 0x1e, 0x46, 0x66, 0x38, 0x4e, 0xfc, 0xf1, 0xa8, 0x1f, 0xa4,
		0xc6, 0xbf, 0x36, 0x49, 0x12, 0x5c, 0x99, 0x44, 0xa0, 0x78, 0xf3, 0xc1, 0xa5, 0x61, 0xdc, 0x60,
		0xdc, 0x60, 0xdc, 0x60, 0xdc, 0x0a, 0xc4, 0xb8, 0x8d, 0xc3, 0x28, 0x7d, 0xb5, 0x2d, 0x40, 0xb8,
		0xed, 0xd3, 0xfa, 0xf2, 0xdb, 0x0f, 0x42, 0xeb, 0x4b, 0x2b, 0xb6, 0x4e, 0xeb, 0xcb, 0x9c, 0x4c,
		0x65, 0x67, 0xfb, 0xf5, 0xce, 0xeb, 0xbd, 0xfd, 0xed, 0xd7, 0x74, 0xc0, 0x2c, 0x0e, 0x97, 0xe7,
		0xc1, 0x14, 0x5a, 0x6a, 0xb2, 0x4f, 0xf9, 0xc3, 0x33, 0x17, 0xa1, 0xfc, 0x81, 0x64, 0x8c, 0x64,
		0x8c, 0x64, 0x8c, 0x64, 0x8c, 0xf2, 0x87, 0x7f, 0xfb, 0xd6, 0x94, 0x3f, 0x3c, 0xd3, 0xb2, 0x28,
		0x7f, 0xa0, 0xfc, 0x81, 0xf2, 0x87, 0xf2, 0x25, 0x35, 0x94, 0x3f, 0xe8, 0x97, 0x3f, 0x94, 0x4a,
		0x7d, 0xbc, 0x54, 0xfd, 0x80, 0x02, 0x59, 0xdb, 0xd6, 0x1d, 0xb1, 0xf1, 0xa2, 0xab, 0x90, 0x17,
		0xad, 0xba, 0x4c, 0x4a, 0xe4, 0xab, 0x38, 0xe8, 0x99, 0xcb, 0xf1, 0xc0, 0x8f, 0x4d, 0x92, 0x06,
		0x71, 0x9a, 0xbf, 0x16, 0xf9, 0xde, 0x0a, 0xa8, 0x91, 0xdd, 0xa3, 0x45, 0x50, 0x23, 0xab, 0xd0,
		0x1a, 0xa8, 0x91, 0x9f, 0x75, 0x0c, 0x50, 0x23, 0x53, 0x13, 0xa8, 0xed, 0x80, 0xc4, 0x13, 0x76,
		0x6a, 0x02, 0x69, 0xdf, 0xf8, 0x48, 0x17, 0xc6, 0x15, 0x93, 0xa6, 0x6b, 0x93, 0xa6, 0x2d, 0xb9,
		0x62, 0x2a, 0x00, 0x37, 0xc8, 0x15, 0xd3, 0x13, 0x10, 0xd8, 0xd6, 0x1a, 0x57, 0x86, 0x7c, 0x34,
		0x83, 0x91, 0x89, 0xfd, 0x61, 0x34, 0xf8, 0x6c, 0x3f, 0x1c, 0x2d, 0x2e, 0x46, 0x48, 0x22, 0x24,
		0x11, 0x92, 0x08, 0x49, 0x84, 0x24, 0x42, 0xd2, 0xf2, 0x1e, 0xcc, 0x08, 0x5c, 0x3f, 0x0d, 0xaf,
		0x8d, 0xfd, 0x98, 0xb4, 0xb4, 0x1a, 0x41, 0x89, 0xa0, 0x44, 0x50, 0x22, 0x28, 0x15, 0x28, 0x28,
		0x8d, 0xc3, 0x28, 0xb5, 0x5a, 0x16, 0x35, 0xf7, 0x5e, 0x7b, 0xe8, 0xa2, 0xbe, 0xfd, 0x20, 0xe8,
		0xa2, 0xac, 0xd8, 0x3a, 0xba, 0xa8, 0x9c, 0x4c, 0x65, 0x67, 0xf3, 0xf5, 0x1e, 0xd6, 0x52, 0x88,
		0xd0, 0x64, 0xff, 0xd3, 0xd7, 0x59, 0x11, 0x95, 0xa4, 0xc1, 0xc0, 0xf8, 0xf1, 0x70, 0x9c, 0x9a,
		0x44, 0x28, 0xd3, 0xb8, 0xbf, 0x24, 0xe9, 0x06, 0xe9, 0x06, 0xe9, 0x06, 0xe9, 0x06, 0xe9, 0x06,
		0xe9, 0x06, 0xe9, 0x06, 0xe9, 0x46, 0xe9, 0xd2, 0x8d, 0xbd, 0xdd, 0xdd, 0x57, 0x74, 0x60, 0x20,
		0xdf, 0x28, 0x58, 0xbe, 0x81, 0x58, 0x49, 0x41, 0xc8, 0xf1, 0x75, 0x01, 0x7f, 0xb9, 0xba, 0xb5,
		0xbe, 0x9b, 0x3d, 0x5d, 0xeb, 0xf6, 0xe1, 0xe8, 0xd7, 0x9a, 0x63, 0x56, 0x4d, 0xbf, 0x56, 0x6a,
		0xb3, 0x5d, 0xc8, 0x8c, 0xa9, 0xcd, 0x96, 0x8b, 0x82, 0xd4, 0x66, 0x3f, 0xce, 0x85, 0x41, 0x02,
		0x6a, 0xba, 0x36, 0x29, 0x17, 0x27, 0xee, 0xea, 0xc4, 0x5d, 0x9e, 0xa8, 0xeb, 0xb3, 0x9b, 0x0a,
		0x51, 0x08, 0xf7, 0x04, 0x04, 0x46, 0x6d, 0x36, 0xb5, 0xd9, 0x84, 0x24, 0x42, 0x12, 0x21, 0x89,
		0x90, 0x44, 0x48, 0x52, 0x0f, 0x49, 0x83, 0x61, 0x2f, 0xc8, 0x18, 0xba, 0x30, 0xba, 0xb2, 0x1f,
		0x97, 0xee, 0xad, 0x48, 0x70, 0x22, 0x38, 0x11, 0x9c, 0x08, 0x4e, 0x04, 0x27, 0x82, 0xd3, 0xf2,
		0x1e, 0x5c, 0x0f, 0xfb, 0x02, 0x65, 0x7c, 0xd3, 0x55, 0x08, 0x42, 0x04, 0x21, 0x82, 0x10, 0x41,
		0xa8, 0x40, 0x41, 0xc8, 0x44, 0xe3, 0x6b, 0x13, 0xdf, 0x16, 0x0e, 0x08, 0x04, 0xa2, 0x1d, 0x8b,
		0x6b, 0xd4, 0xa2, 0xf1, 0xb5, 0xfd, 0x63, 0xd9, 0x19, 0xb6, 0xd3, 0xd8, 0x66, 0x8e, 0xb3, 0xb4,
		0xda, 0xe6, 0xe4, 0x1d, 0xbd, 0xaf, 0x1d, 0x37, 0x6b, 0xad, 0xee, 0x69, 0xe3, 0xf8, 0x77, 0x89,
		0x46, 0xd7, 0x5b, 0x93, 0x35, 0xdf, 0xd4, 0x8f, 0xab, 0x9d, 0x5a, 0xab, 0x7a, 0x2c, 0xb1, 0xe2,
		0xf6, 0x64, 0xc5, 0x56, 0xed, 0xe4, 0xb4, 0x53, 0xeb, 0xde, 0x3e, 0xac, 0xdd, 0xde, 0xce, 0x96,
		0x2b, 0xeb, 0x2a, 0x9d, 0x61, 0x3d, 0x4a, 0x65, 0x0c, 0xe4, 0xee, 0x3d, 0xe5, 0x5e, 0x98, 0xb0,
		0x3a, 0x48, 0x2c, 0xd8, 0xa2, 0x48, 0x31, 0xdd, 0x57, 0x76, 0x71, 0xe0, 0x6d, 0x17, 0xb4, 0xce,
		0xed, 0xcb, 0x1a, 0x63, 0xf0, 0x91, 0x31, 0xb1, 0x2f, 0xab, 0xe0, 0xbf, 0xbf, 0x24, 0xe8, 0x1c,
		0x74, 0x0e, 0x3a, 0x07, 0x9d, 0x17, 0x08, 0x9d, 0xa3, 0xab, 0x79, 0xf4, 0x1f, 0x74, 0x35, 0xcf,
		0x5b, 0x0f, 0x5d, 0x4d, 0xae, 0xa6, 0x82, 0x8c, 0xbf, 0x2c, 0xd6, 0x82, 0xac, 0xa6, 0xd0, 0xe9,
		0x86, 0xc8, 0x75, 0xf4, 0xd7, 0x0b, 0x92, 0x6a, 0x90, 0x6a, 0x90, 0x6a, 0x90, 0x6a, 0x14, 0x28,
		0xd5, 0xe0, 0x36, 0x5a, 0x24, 0x34, 0xd1, 0xc6, 0x92, 0xa0, 0x44, 0x50, 0x22, 0x28, 0x11, 0x94,
		0x1e, 0x73, 0x5e, 0xe0, 0xbf, 0x1e, 0xfd, 0x07, 0xfe, 0x0b, 0x46, 0x43, 0xd5, 0x2d, 0x2c, 0x9b,
		0x0a, 0xfc, 0x57, 0x59, 0xac, 0x05, 0xfe, 0xab, 0x70, 0x49, 0x06, 0x6d, 0x2c, 0x49, 0x37, 0x48,
		0x37, 0x48, 0x37, 0x48, 0x37, 0x48, 0x37, 0x48, 0x37, 0x48, 0x37, 0x48, 0x37, 0x6c, 0x98, 0x0a,
		0x6d, 0x2c, 0xc9, 0x37, 0x0a, 0x98, 0x6f, 0xd0, 0xc6, 0xd2, 0x85, 0x36, 0x96, 0x36, 0x1a, 0x14,
		0x7a, 0x8e, 0x74, 0xb1, 0x6c, 0x4f, 0x9f, 0xcd, 0xd5, 0x26, 0x96, 0x2f, 0x1c, 0xb2, 0x7b, 0x5b,
		0xf6, 0xee, 0x8c, 0x9d, 0x57, 0x72, 0x6d, 0x19, 0xaa, 0x6d, 0xd9, 0xf9, 0xd8, 0xf4, 0xf3, 0x2d,
		0x30, 0x07, 0xeb, 0xab, 0x0c, 0x86, 0x57, 0x57, 0x61, 0x74, 0xe5, 0x0f, 0x47, 0x13, 0xeb, 0x4b,
		0x72, 0x33, 0xbf, 0x85, 0x16, 0x1d, 0xcb, 0x0b, 0xe4, 0x74, 0x62, 0xf2, 0x6d, 0xc2, 0x9a, 0x3b,
		0xdf, 0x63, 0x83, 0xdf, 0xb1, 0xc7, 0xe7, 0xd8, 0xe2, 0x6f, 0xac, 0xf3, 0x35, 0xd6, 0xf9, 0x19,
		0xab, 0x7c, 0x8c, 0x5b, 0x31, 0x28, 0xef, 0xa6, 0xa9, 0x95, 0xde, 0xfc, 0x4c, 0x59, 0x6a, 0xee,
		0x6c, 0xa5, 0x05, 0xb8, 0xf5, 0xee, 0xce, 0x9b, 0x74, 0x77, 0xb6, 0xef, 0x78, 0xc4, 0x1c, 0x90,
		0x98, 0x23, 0x12, 0x71, 0x48, 0xc5, 0x48, 0x0e, 0xad, 0x75, 0x77, 0x1e, 0x0c, 0x27, 0xb8, 0xf8,
		0x16, 0xf3, 0xf9, 0xd3, 0xcc, 0xcc, 0xef, 0x7d, 0x0c, 0xa2, 0x2b, 0x93, 0x48, 0x74, 0x32, 0x7b,
		0x70, 0x6d, 0x4b, 0x86, 0x74, 0x64, 0x2e, 0x83, 0xf1, 0x20, 0xb5, 0x4a, 0x11, 0x57, 0x26, 0x07,
		0xc1, 0xce, 0x05, 0xc6, 0x39, 0x17, 0x8b, 0xd2, 0xf1, 0x40, 0x2e, 0x2e, 0x48, 0xc5, 0x07, 0xf1,
		0x38, 0x21, 0x1e, 0x2f, 0x44, 0xe3, 0x86, 0x3d, 0xba, 0xd2, 0xa3, 0xb8, 0xfe, 0x69, 0xf0, 0x75,
		0x0b, 0x1e, 0xda, 0x5d, 0x5e, 0x4e, 0x9d, 0x9f, 0xfb, 0x8a, 0x94, 0x29, 0xd7, 0x34, 0xa5, 0xe3,
		0xdb, 0x87, 0x3b, 0xbd, 0x7d, 0x36, 0x86, 0x29, 0xe5, 0xe5, 0xbd, 0x18, 0xa6, 0x44, 0xba, 0x4d,
		0xba, 0x4d, 0xba, 0x4d, 0xba, 0x4d, 0xba, 0x4d, 0xba, 0x4d, 0xba, 0x4d, 0xba, 0x4d, 0xba, 0x4d,
		0xba, 0x4d, 0xba, 0x4d, 0xba, 0xfd, 0xd4, 0x74, 0xbb, 0x4c, 0x55, 0x5f, 0x5f, 0x65, 0xdb, 0x14,
		0x7d, 0x69, 0x5b, 0xbb, 0x2b, 0x56, 0x5e, 0xf0, 0x9a, 0xaf, 0x65, 0xbb, 0x2e, 0x53, 0xc9, 0x57,
		0x96, 0xf7, 0x04, 0xfd, 0x7e, 0x6c, 0x12, 0x0b, 0x35, 0x5f, 0xf7, 0x56, 0xc8, 0xb7, 0xe8, 0x6b,
		0x93, 0xa2, 0x2f, 0x87, 0xc1, 0x3e, 0x45, 0x5f, 0x05, 0x8a, 0x41, 0xb9, 0x83, 0xf1, 0x3b, 0x86,
		0xc5, 0x04, 0x97, 0xb1, 0xb9, 0xcc, 0xd3, 0x60, 0xe7, 0x60, 0x7b, 0x3f, 0xc7, 0xcf, 0x6c, 0xce,
		0xc2, 0xe4, 0xcb, 0x97, 0xb3, 0x4b, 0x90, 0x8d, 0x7b, 0xce, 0xab, 0x44, 0xae, 0x7f, 0x2a, 0xcc,
		0xf6, 0x63, 0x73, 0x39, 0x30, 0xbd, 0x74, 0x18, 0xe7, 0xef, 0xf9, 0xbf, 0x5e, 0x80, 0x6a, 0x5f,
		0x1c, 0x3f, 0x8e, 0xdf, 0x41, 0xc7, 0x4f, 0xb5, 0xaf, 0x47, 0xb5, 0xaf, 0x90, 0xc3, 0xb1, 0xed,
		0x78, 0xc4, 0x1c, 0x90, 0x98, 0x23, 0x12, 0x71, 0x48, 0xc5, 0xe0, 0x04, 0xad, 0x5d, 0x3f, 0x7e,
		0x05, 0x55, 0xfc, 0xde, 0x20, 0x34, 0x16, 0xc7, 0x35, 0x3d, 0x04, 0x91, 0xe6, 0xeb, 0x16, 0xf9,
		0xda, 0x71, 0x2a, 0x09, 0xe7, 0xde, 0x51, 0x20, 0x00, 0x48, 0x04, 0x02, 0xb9, 0x80, 0x20, 0x15,
		0x18, 0xc4, 0x03, 0x84, 0x78, 0xa0, 0x10, 0x0d, 0x18, 0x76, 0x02, 0x87, 0xa5, 0x00, 0x62, 0x8f,
		0xea, 0x78, 0xf0, 0xbc, 0x70, 0xef, 0x28, 0xf1, 0x52, 0x57, 0x04, 0xd2, 0x71, 0x92, 0x9a, 0xd8,
		0x0f, 0xfb, 0x1a, 0x41, 0x3c, 0x5b, 0x9b, 0x80, 0x45, 0xc0, 0x22, 0x60, 0x11, 0xb0, 0x0a, 0x14,
		0xb0, 0xe2, 0x45, 0x07, 0xe6, 0xa7, 0x93, 0x75, 0x05, 0x62, 0xd7, 0x6b, 0x8b, 0x6b, 0xcc, 0xf6,
		0xae, 0xf0, 0xcd, 0xef, 0x16, 0x5b, 0x12, 0xbe, 0xda, 0x96, 0x18, 0xc2, 0x3c, 0x7b, 0x3b, 0xfb,
		0x12, 0x23, 0x7d, 0x45, 0x5a, 0x14, 0xca, 0xbd, 0xad, 0xec, 0xc1, 0x24, 0x5b, 0x16, 0x66, 0x8b,
		0x0a, 0xb7, 0x2e, 0xcc, 0xd6, 0xd5, 0xea, 0x49, 0x77, 0x77, 0x46, 0xa4, 0x7b, 0xd3, 0x59, 0x76,
		0xfc, 0xab, 0x4d, 0x4a, 0xb0, 0xb5, 0xe1, 0x3d, 0x93, 0xda, 0xd9, 0x7e, 0xbd, 0xf3, 0x7a, 0x6f,
		0x7f, 0xfb, 0xf5, 0x2e, 0xb6, 0x25, 0x65, 0x5b, 0x2f, 0xca, 0xb1, 0xca, 0x79, 0x91, 0x27, 0xf8,
		0x0b, 0x06, 0xf8, 0x70, 0x74, 0xb3, 0x93, 0x73, 0xb9, 0xd4, 0xa3, 0x40, 0xd8, 0x2f, 0x02, 0x6b,
		0x35, 0x83, 0x34, 0x35, 0x71, 0x24, 0x16, 0xe9, 0x2b, 0x3f, 0xfe, 0xb1, 0xe9, 0xbf, 0x3e, 0xff,
		0xe7, 0x8f, 0x2d, 0xff, 0xf5, 0xf9, 0xed, 0x8f, 0x5b, 0xd3, 0xff, 0xf3, 0xf7, 0xf6, 0x97, 0x7f,
		0xb6, 0xff, 0xd8, 0xf4, 0x77, 0x66, 0x7f, 0xbb, 0xbd, 0xfb, 0xc7, 0xa6, 0xbf, 0x7b, 0xfe, 0xd3,
		0x8f, 0x7f, 0xfe, 0xf9, 0xf2, 0xa9, 0xbf, 0xf3, 0xd3, 0xdf, 0xaf, 0xbe, 0x54, 0xec, 0x1f, 0x1f,
		0x89, 0xd7, 0x73, 0xda, 0xae, 0xff, 0x26, 0xfe, 0x8e, 0xfe, 0xf7, 0x47, 0xa9, 0xb7, 0xf4, 0xd3,
		0x7f, 0x55, 0x8a, 0xee, 0xe6, 0x68, 0x57, 0x8b, 0x6e, 0x41, 0xa1, 0xa2, 0xfb, 0x2b, 0x96, 0xb3,
		0x5c, 0x6d, 0x02, 0x5a, 0x93, 0x87, 0x6b, 0xcd, 0x9f, 0x8d, 0x36, 0x01, 0x79, 0x21, 0x19, 0xda,
		0x04, 0x50, 0xa7, 0xf3, 0xad, 0xb7, 0x49, 0x9d, 0x4e, 0xe9, 0x62, 0x20, 0x75, 0x3a, 0xcf, 0xdb,
		0x3e, 0xea, 0x74, 0xfe, 0xcd, 0xf1, 0x73, 0xed, 0xa9, 0x19, 0x10, 0xa4, 0x02, 0x83, 0x78, 0x80,
		0x10, 0x0f, 0x14, 0xa2, 0x01, 0xc3, 0x6e, 0xfa, 0x48, 0x9d, 0xce, 0x13, 0x70, 0x2b, 0x75, 0x3a,
		0xd4, 0xe9, 0x10, 0xb0, 0x08, 0x58, 0x04, 0x2c, 0x02, 0xd6, 0x33, 0xbc, 0x19, 0x75, 0x3a, 0xdf,
		0xf3, 0x87, 0x3a, 0x9d, 0xe7, 0x2d, 0x45, 0x9d, 0x4e, 0x9e, 0x8b, 0x52, 0xa7, 0x43, 0x9d, 0x8e,
		0x25, 0x93, 0xa2, 0x4e, 0x87, 0x3a, 0x9d, 0xef, 0xfc, 0x43, 0x9d, 0xce, 0xe3, 0x02, 0x3c, 0x75,
		0x3a, 0x39, 0x2e, 0x48, 0x9d, 0xce, 0x93, 0x5e, 0x0f, 0x75, 0x3a, 0xae, 0xbb, 0x39, 0xea, 0x74,
		0xa8, 0xd3, 0x71, 0xa0, 0x4e, 0xa7, 0x4c, 0xfd, 0x45, 0xbf, 0x2a, 0xd3, 0xa1, 0xbf, 0xa8, 0xb6,
		0xb5, 0xbb, 0x62, 0xe5, 0x05, 0xef, 0x2f, 0xba, 0x6c, 0xd7, 0x65, 0x6a, 0x32, 0x97, 0x6f, 0x7d,
		0x99, 0x95, 0xba, 0x32, 0x6b, 0x0d, 0xe5, 0xb6, 0x69, 0x28, 0x97, 0x67, 0xf2, 0x43, 0x43, 0xb9,
		0xc2, 0x44, 0x9b, 0xdc, 0x1b, 0xca, 0x05, 0xe3, 0xf4, 0xa3, 0x3f, 0x0a, 0x92, 0x64, 0x66, 0x02,
		0x96, 0xca, 0x55, 0x97, 0x97, 0xb1, 0x53, 0xb6, 0xba, 0x49, 0x7b, 0x39, 0xca, 0x56, 0x1d, 0x72,
		0x4b, 0x22, 0xee, 0xa9, 0x18, 0x29, 0xa1, 0xb5, 0xcb, 0xdb, 0xa5, 0x12, 0x94, 0x30, 0xba, 0xb2,
		0xe5, 0x63, 0x96, 0x59, 0xc2, 0x35, 0x90, 0x2f, 0xf4, 0x4d, 0xd2, 0x8b, 0xc3, 0x91, 0x95, 0x2c,
		0x3e, 0x7b, 0x69, 0x8b, 0x8b, 0x10, 0x13, 0x88, 0x09, 0xc4, 0x04, 0x62, 0x42, 0xae, 0xb9, 0x6c,
		0x1c, 0x46, 0x57, 0x44, 0x82, 0x67, 0x46, 0x82, 0xcf, 0x51, 0x70, 0x1d, 0xf6, 0x82, 0xc1, 0xe0,
		0xb3, 0x7f, 0xcb, 0xd7, 0x8c, 0x63, 0x63, 0x31, 0x55, 0x78, 0x60, 0xbd, 0xbc, 0x85, 0x34, 0x16,
		0x95, 0x20, 0x36, 0x14, 0x20, 0xe7, 0xc4, 0x47, 0xe2, 0x23, 0xf1, 0x91, 0xf8, 0x98, 0xa3, 0xbd,
		0xdb, 0x53, 0x66, 0x58, 0x52, 0x64, 0xb8, 0x19, 0x20, 0x4d, 0x14, 0x5c, 0x0c, 0x6c, 0x46, 0xc4,
		0xf9, 0x02, 0x45, 0x0a, 0x81, 0xf9, 0xcf, 0x48, 0x26, 0x02, 0x12, 0x01, 0x89, 0x80, 0x44, 0x40,
		0x22, 0xa0, 0x7b, 0x11, 0x30, 0x49, 0x83, 0x8b, 0x41, 0x98, 0x7c, 0x34, 0x7d, 0x3f, 0x8d, 0x83,
		0x28, 0x09, 0x6f, 0xc7, 0x79, 0xda, 0x8b, 0x88, 0x0f, 0x2c, 0x48, 0x88, 0x20, 0x44, 0x10, 0x22,
		0x08, 0x11, 0x39, 0xda, 0x7b, 0x6f, 0x38, 0x8e, 0x52, 0x13, 0xef, 0xed, 0x58, 0x0c, 0x12, 0x16,
		0xca, 0xce, 0x2d, 0xcb, 0xc9, 0x2c, 0xca, 0x30, 0x25, 0xe4, 0x62, 0x52, 0xf2, 0x30, 0x71, 0xc9,
		0x8e, 0x9c, 0x44, 0xc7, 0xa2, 0xd8, 0x44, 0x44, 0xde, 0x95, 0x99, 0xc0, 0xd6, 0x2f, 0x3b, 0x3b,
		0x7b, 0xfb, 0x3b, 0x3b, 0x9b, 0xfb, 0xaf, 0xf6, 0x37, 0x5f, 0xef, 0xee, 0x6e, 0xed, 0x6d, 0xed,
		0x62, 0x15, 0x4e, 0x44, 0x0b, 0x7b, 0x9f, 0x7a, 0xee, 0x74, 0x54, 0x33, 0x9f, 0xd2, 0x38, 0xf0,
		0xc7, 0xd1, 0x14, 0xe5, 0x5a, 0x8a, 0x6f, 0xb1, 0xb9, 0x34, 0xb1, 0x89, 0x7a, 0x85, 0x8c, 0x11,
		0xf3, 0xe0, 0xdc, 0x7a, 0x7b, 0xe8, 0xed, 0x6c, 0xef, 0xbf, 0xf2, 0x7c, 0xef, 0xc8, 0x5c, 0x86,
		0xd1, 0x6d, 0x1a, 0xe0, 0x0d, 0x2f, 0xbd, 0x93, 0x20, 0x0a, 0xae, 0x4c, 0xdf, 0x3b, 0xbd, 0xf8,
		0x7f, 0x4c, 0x2f, 0x4d, 0xbc, 0xcb, 0x61, 0xec, 0xbd, 0x79, 0xd7, 0xf4, 0x77, 0x4a, 0xd6, 0x07,
		0xe3, 0xee, 0x35, 0x96, 0xb9, 0x15, 0xc6, 0xf7, 0xbc, 0x67, 0x7c, 0xdc, 0x1a, 0x30, 0x0f, 0x83,
		0x20, 0x49, 0xfd, 0x05, 0x36, 0xc0, 0x1e, 0xe5, 0x70, 0x6f, 0x25, 0xb8, 0x06, 0xb8, 0x06, 0xb8,
		0x06, 0xb8, 0x86, 0x1c, 0xed, 0x3d, 0x0d, 0xaf, 0x4d, 0x1a, 0xf6, 0xfe, 0x2f, 0x29, 0x1c, 0xdb,
		0x70, 0x16, 0xdd, 0x26, 0x32, 0x95, 0x28, 0x88, 0x86, 0x89, 0xe9, 0x0d, 0xa3, 0xbe, 0x0d, 0xe1,
		0x3e, 0xac, 0x06, 0xac, 0x06, 0xac, 0x06, 0xac, 0x06, 0xac, 0xc6, 0x7a, 0x23, 0xfe, 0x5b, 0x4c,
		0xe5, 0x0f, 0xc2, 0xeb, 0x30, 0xf5, 0xcd, 0xa7, 0x9e, 0x31, 0x7d, 0xeb, 0xd8, 0x7f, 0xf5, 0x9a,
		0x64, 0x01, 0x64, 0x01, 0x64, 0x01, 0x64, 0x01, 0x64, 0x01, 0x64, 0x01, 0x64, 0x01, 0x64, 0x01,
		0x64, 0x01, 0x64, 0x01, 0x64, 0x01, 0xf6, 0xb3, 0x80, 0x61, 0x2f, 0x18, 0xf8, 0x81, 0xc5, 0x12,
		0xc3, 0x6c, 0x05, 0x10, 0x3e, 0x08, 0x1f, 0x84, 0x0f, 0xc2, 0xcf, 0xd1, 0xde, 0x83, 0xc4, 0x8f,
		0xc6, 0xd7, 0x17, 0x26, 0xb6, 0x88, 0xef, 0xf7, 0xc1, 0xdd, 0xe0, 0x6e, 0x70, 0xb7, 0x0e, 0xee,
		0x96, 0x6a, 0x11, 0x0f, 0xda, 0x06, 0x6d, 0x0b, 0xa0, 0xed, 0x6b, 0x93, 0x24, 0xc1, 0x95, 0xb1,
		0x88, 0xb6, 0xb3, 0x15, 0x0a, 0x36, 0xd1, 0x18, 0xb4, 0x0d, 0xda, 0x06, 0x6d, 0x3f, 0x67, 0x07,
		0xec, 0x4d, 0x34, 0x36, 0x3d, 0x13, 0xde, 0x18, 0x89, 0xf1, 0x87, 0xf3, 0x95, 0xec, 0x0e, 0x3b,
		0xdc, 0x62, 0xd8, 0xa1, 0xa2, 0x73, 0x93, 0x72, 0x72, 0xe2, 0xce, 0x4e, 0xdc, 0xe9, 0x89, 0x3a,
		0x3f, 0xcb, 0x70, 0xd2, 0xd6, 0x9c, 0x72, 0x4b, 0x4e, 0xf1, 0xee, 0xb8, 0x9c, 0x76, 0xea, 0x6f,
		0xeb, 0x87, 0xd5, 0x4e, 0xfd, 0xb4, 0x61, 0xdf, 0x94, 0xe7, 0x87, 0x73, 0x69, 0x55, 0xcb, 0xc6,
		0x65, 0x77, 0x42, 0xac, 0x98, 0xf3, 0x94, 0x74, 0xa2, 0xf2, 0xce, 0x54, 0xda, 0xa9, 0xaa, 0x39,
		0x57, 0x35, 0x27, 0xab, 0xe2, 0x6c, 0xed, 0x3a, 0x5d, 0x01, 0xb6, 0xc8, 0x13, 0x99, 0x38, 0x7b,
		0xef, 0xbc, 0x8d, 0xc3, 0x28, 0xdd, 0xdb, 0x11, 0x1c, 0x78, 0xf6, 0x0b, 0x73, 0x4d, 0xbf, 0xff,
		0xc1, 0x98, 0x6b, 0x2a, 0xf9, 0x05, 0x98, 0x6b, 0x6a, 0xdb, 0xa4, 0xe4, 0x8b, 0x45, 0xb0, 0x32,
		0xa1, 0x50, 0x29, 0xb7, 0x4a, 0x51, 0x47, 0xff, 0xd9, 0xbc, 0x7a, 0x3a, 0x6b, 0x1e, 0x55, 0x3b,
		0x35, 0xb9, 0x34, 0x6b, 0xb6, 0x1e, 0x09, 0x16, 0x09, 0x16, 0x09, 0x16, 0x09, 0x16, 0x09, 0x16,
		0x09, 0x16, 0x09, 0x16, 0x09, 0x16, 0x09, 0x16, 0x09, 0x16, 0x09, 0x16, 0x09, 0x56, 0xf9, 0x12,
		0xac, 0xa9, 0x3e, 0x37, 0x1a, 0xa6, 0xe1, 0x65, 0xd8, 0x9b, 0x8e, 0x62, 0xf6, 0x4d, 0x1c, 0x0f,
		0x63, 0xbf, 0x37, 0xec, 0x1b, 0xb9, 0xb4, 0xeb, 0x5f, 0xbf, 0x05, 0xc9, 0x18, 0xc9, 0x18, 0xc9,
		0x18, 0xc9, 0x18, 0xc9, 0x58, 0x76, 0xde, 0xc2, 0xbe, 0x89, 0xd2, 0x30, 0xfd, 0x1c, 0x9b, 0x4b,
		0xc1, 0x8c, 0x4c, 0x02, 0x72, 0x55, 0xea, 0xb3, 0x47, 0x7b, 0x13, 0x24, 0x82, 0xc7, 0x7c, 0xbe,
		0xb1, 0x6f, 0xde, 0x35, 0xbb, 0xb5, 0x56, 0xeb, 0xb4, 0xd5, 0x3d, 0x3c, 0x3d, 0xaa, 0x49, 0x9d,
		0xf5, 0x29, 0xca, 0x4d, 0xc4, 0xf2, 0x50, 0xd9, 0x5c, 0x74, 0x69, 0x7f, 0x0f, 0x6b, 0xd5, 0x76,
		0xad, 0x52, 0xc6, 0xfc, 0x48, 0x69, 0x43, 0xdf, 0xd6, 0x1b, 0xf5, 0x4e, 0xad, 0xdb, 0xee, 0x54,
		0x3b, 0xb5, 0xee, 0x49, 0xf5, 0xf0, 0x7d, 0xbd, 0x51, 0xbb, 0xb5, 0x60, 0x76, 0x39, 0xbf, 0x5d,
		0x7e, 0x7f, 0x7a, 0x7c, 0xd4, 0xed, 0xd4, 0x4f, 0x6a, 0xad, 0x6e, 0xed, 0xb7, 0x66, 0xbd, 0x55,
		0x3b, 0x62, 0x77, 0xf3, 0xdb, 0xdd, 0x93, 0x5a, 0xbb, 0x5d, 0x7d, 0x57, 0xeb, 0xbe, 0xaf, 0x55,
		0x8f, 0x26, 0x3b, 0x8c, 0xf5, 0xe6, 0xbb, 0xbf, 0xa7, 0xcd, 0x5a, 0xa3, 0x3b, 0xdf, 0x64, 0x76,
		0x37, 0xe7, 0xdd, 0x6d, 0x9d, 0x9e, 0x75, 0x6a, 0xdd, 0x56, 0xed, 0x6d, 0xab, 0xd6, 0x7e, 0xcf,
		0x36, 0xdb, 0xda, 0xe6, 0xdb, 0x9b, 0x59, 0xb5, 0xfd, 0x15, 0x59, 0xe9, 0xbc, 0xe8, 0x89, 0x56,
		0xa9, 0x28, 0xb0, 0x64, 0x7c, 0xe1, 0x06, 0x0b, 0x36, 0xff, 0x22, 0x10, 0x61, 0x4f, 0x5a, 0x08,
		0x22, 0x2c, 0x57, 0xeb, 0x80, 0x08, 0x83, 0x08, 0xfb, 0xc6, 0x8e, 0x41, 0x84, 0xe5, 0xb8, 0x96,
		0x2b, 0x44, 0x58, 0xfb, 0xec, 0x0d, 0x5c, 0x98, 0x8d, 0x2d, 0xae, 0x1e, 0x9d, 0xd4, 0x1b, 0xf5,
		0x76, 0xa7, 0x55, 0xed, 0xd4, 0x3f, 0x4c, 0x32, 0x88, 0x76, 0xad, 0x43, 0xc6, 0x60, 0x6d, 0x7f,
		0xdb, 0xef, 0xcf, 0x3a, 0x47, 0xa7, 0xff, 0x69, 0xb0, 0xc5, 0x39, 0x6e, 0x71, 0xa7, 0xd3, 0xaa,
		0xbf, 0x99, 0xe4, 0xbf, 0x6f, 0x8f, 0xab, 0xef, 0xda, 0x64, 0xbd, 0xf6, 0x36, 0xf8, 0xb8, 0xd6,
		0x78, 0xd7, 0x79, 0xcf, 0x0e, 0xe7, 0x1e, 0xe8, 0xaa, 0x47, 0xdd, 0x49, 0xb0, 0xab, 0x1f, 0xd5,
		0x1a, 0x9d, 0xfa, 0xdb, 0x7a, 0x8d, 0xdd, 0xcd, 0x79, 0x77, 0xe7, 0x94, 0xcd, 0xad, 0x05, 0xb3,
		0xbb, 0x76, 0x76, 0xb7, 0xf3, 0x7b, 0x93, 0x8b, 0xb5, 0x9c, 0xf7, 0xb6, 0x59, 0xab, 0xb5, 0xba,
		0xd5, 0x36, 0xdb, 0x9a, 0xdf, 0xb6, 0x4e, 0x2f, 0x80, 0x85, 0x73, 0x0a, 0xcd, 0xdc, 0x42, 0x67,
		0xbb, 0x1d, 0xcb, 0x35, 0x14, 0xcc, 0xdb, 0xcd, 0x7d, 0x97, 0xcf, 0x41, 0xd6, 0x77, 0xeb, 0x0f,
		0x4f, 0x1b, 0x8d, 0xda, 0x61, 0xa7, 0x7e, 0xda, 0xe8, 0xb6, 0x6a, 0xff, 0x5d, 0x3b, 0xec, 0x48,
		0x5e, 0xda, 0xaf, 0xf7, 0xb6, 0x77, 0x0f, 0x4f, 0x8f, 0x8f, 0xeb, 0xed, 0xdb, 0xad, 0x6f, 0x9f,
		0x1e, 0x9f, 0x4d, 0xbb, 0xd6, 0xb0, 0xf9, 0xd6, 0x37, 0xff, 0xa4, 0xfa, 0x5b, 0xb7, 0x71, 0x76,
		0xd2, 0x6d, 0xb6, 0x6a, 0x6f, 0xeb, 0xbf, 0xd5, 0xda, 0xdd, 0x56, 0xad, 0x7a, 0xf8, 0x1e, 0xc3,
		0x97, 0xd8, 0xfb, 0xd3, 0xce, 0xfb, 0x5a, 0xab, 0x7b, 0x78, 0xda, 0x78, 0x5b, 0x7f, 0xd7, 0x3d,
		0x7c, 0x5f, 0x6d, 0xbc, 0xab, 0xb1, 0xed, 0x02, 0xdb, 0x7e, 0xd6, 0xe9, 0x9e, 0xbe, 0x9d, 0xfa,
		0x99, 0xb3, 0xd6, 0x61, 0xad, 0xcd, 0x9e, 0xdb, 0xdf, 0xf3, 0x69, 0x5e, 0x74, 0x54, 0x9b, 0x19,
		0xfb, 0x59, 0x4b, 0xc5, 0xc1, 0x88, 0xae, 0x78, 0x4e, 0x0a, 0x68, 0x03, 0x98, 0x35, 0x4e, 0x3b,
		0xdd, 0xf6, 0xef, 0x8d, 0xc3, 0xf7, 0xad, 0xd3, 0x46, 0xfd, 0xff, 0x4f, 0x55, 0x65, 0x69, 0xf0,
		0xef, 0x7a, 0x6c, 0xaf, 0x32, 0xce, 0x5d, 0xd3, 0xea, 0x76, 0xc8, 0x23, 0xe1, 0xb7, 0xd0, 0xaa,
		0x1d, 0xd6, 0xea, 0x1f, 0x6a, 0xdd, 0xb3, 0x46, 0xed, 0xb7, 0xe6, 0xd4, 0x91, 0xdc, 0x95, 0x61,
		0xb6, 0x3b, 0xd5, 0x37, 0xc7, 0xf5, 0x36, 0x39, 0x86, 0xf6, 0x9b, 0x38, 0x6d, 0xd6, 0x1a, 0x53,
		0x3c, 0xd6, 0x3a, 0xe1, 0x4d, 0xa8, 0xbf, 0x89, 0x76, 0xad, 0xd1, 0x01, 0x13, 0x13, 0xe8, 0x1e,
		0x6b, 0x4e, 0xf5, 0xc6, 0x87, 0xea, 0x71, 0x9d, 0xbb, 0x52, 0xfb, 0x3b, 0xdc, 0xa8, 0x75, 0xfe,
		0x73, 0xda, 0xfa, 0x9f, 0xee, 0xdb, 0x7a, 0xed, 0x18, 0x40, 0x6c, 0x65, 0x83, 0x7f, 0xeb, 0x74,
		0xdf, 0x9f, 0x36, 0xbb, 0x59, 0xed, 0x0a, 0xbb, 0x9c, 0xff, 0x2e, 0x9f, 0xb6, 0xea, 0xef, 0xea,
		0x0d, 0xf6, 0xd8, 0xc6, 0x1e, 0x9f, 0x54, 0x8f, 0xdf, 0x9e, 0xb6, 0x4e, 0x6a, 0x47, 0xdd, 0x6a,
		0xbb, 0xdb, 0xac, 0xe2, 0x87, 0x2d, 0x6d, 0xee, 0x5d, 0x6d, 0x5b, 0xbd, 0x4d, 0xe5, 0x6b, 0xae,
		0x7b, 0xac, 0x7d, 0x0d, 0xb4, 0x76, 0xa2, 0x65, 0x48, 0x09, 0xe1, 0xfd, 0xd7, 0xac, 0x2c, 0x5c,
		0xdf, 0xb4, 0x57, 0xaf, 0xe2, 0x70, 0x7d, 0xf7, 0xdc, 0x89, 0xfb, 0x12, 0x28, 0x86, 0xc2, 0x07,
		0xac, 0x7a, 0xbb, 0x5d, 0x6f, 0xbc, 0xeb, 0xfe, 0xa7, 0x76, 0x7c, 0xdc, 0xfd, 0x9f, 0xc6, 0xe9,
		0x7f, 0xc8, 0x1e, 0xac, 0xec, 0xf3, 0x52, 0xb7, 0x0d, 0x60, 0x81, 0x42, 0x80, 0xd2, 0x92, 0x73,
		0xac, 0x37, 0x2c, 0x10, 0x2f, 0x96, 0x5f, 0xdf, 0xed, 0x3e, 0x6b, 0x54, 0x0f, 0x0f, 0x6b, 0xcd,
		0x4e, 0xf5, 0xcd, 0x71, 0xad, 0x9b, 0xf5, 0xa6, 0x62, 0xe7, 0x25, 0x76, 0xbe, 0x7d, 0xd6, 0x6c,
		0x9e, 0xb6, 0x3a, 0xb5, 0xa3, 0xee, 0x61, 0xb5, 0x59, 0x7d, 0x53, 0x3f, 0xae, 0x77, 0x7e, 0x67,
		0xe7, 0x65, 0x77, 0xfe, 0xb4, 0x39, 0x41, 0xc3, 0xd5, 0xe3, 0x6e, 0xb3, 0xda, 0xaa, 0x9e, 0xd4,
		0x3a, 0x38, 0x79, 0xe9, 0x37, 0xf0, 0xa1, 0xd6, 0x9a, 0x96, 0xbd, 0x34, 0xce, 0x4e, 0xde, 0xa8,
		0xec, 0x3e, 0x69, 0x48, 0x61, 0xe1, 0xf1, 0xec, 0xec, 0xde, 0xd1, 0xbf, 0x68, 0x9a, 0xf3, 0xde,
		0x63, 0xcd, 0x52, 0xf4, 0x35, 0xd8, 0x5e, 0xb5, 0x92, 0xf3, 0xf2, 0xef, 0xad, 0x66, 0x69, 0xf9,
		0x1a, 0xf4, 0xaa, 0x74, 0xac, 0x92, 0x6f, 0xad, 0x77, 0x5c, 0xa5, 0x62, 0x6f, 0xed, 0x77, 0x5c,
		0xb6, 0x32, 0x6f, 0xdd, 0xda, 0xdf, 0xc2, 0x77, 0x0a, 0x6f, 0xbf, 0x76, 0xe1, 0x20, 0x09, 0x59,
		0xd1, 0x0f, 0xb0, 0x36, 0x99, 0xb8, 0x0e, 0x3b, 0xdc, 0xaa, 0x1d, 0x9e, 0xbe, 0x9b, 0xde, 0xd8,
		0x72, 0xfd, 0x66, 0x7d, 0xb3, 0xdb, 0xcd, 0xda, 0x61, 0xfd, 0x6d, 0xfd, 0x90, 0x5d, 0xcd, 0x75,
		0x57, 0x55, 0x79, 0xef, 0xf5, 0xda, 0x61, 0x4d, 0x7e, 0x7b, 0xbd, 0x76, 0x5a, 0x8b, 0xc7, 0x5e,
		0xbb, 0x79, 0x0d, 0x24, 0x06, 0xc2, 0xfb, 0xaf, 0xdc, 0x9a, 0x55, 0xc1, 0xd0, 0x9d, 0xdb, 0x78,
		0x9d, 0x96, 0xad, 0xeb, 0xbb, 0xf3, 0xca, 0x12, 0x2f, 0x36, 0x5e, 0x53, 0xfa, 0xc5, 0xee, 0xeb,
		0x49, 0xc2, 0xd6, 0x77, 0xef, 0x15, 0xa5, 0x62, 0x6c, 0xba, 0x9e, 0x84, 0x6c, 0x8d, 0xf7, 0xde,
		0x89, 0x2a, 0xf2, 0xf5, 0xdd, 0x7f, 0xfd, 0xf2, 0x99, 0xf5, 0xdd, 0x7b, 0x87, 0x78, 0xdc, 0xec,
		0x25, 0x94, 0xf5, 0xda, 0x85, 0x79, 0x8b, 0xaa, 0x9f, 0x2e, 0x3b, 0x6f, 0x31, 0x0d, 0xaf, 0x55,
		0xc7, 0x2c, 0x4e, 0xd7, 0x67, 0xba, 0xe2, 0x93, 0x16, 0x62, 0xba, 0x62, 0xae, 0xd6, 0xc1, 0x74,
		0x45, 0xa6, 0x2b, 0x7e, 0x63, 0xc7, 0xe4, 0xa7, 0x2b, 0x4e, 0xfc, 0x62, 0x1a, 0xf6, 0xfe, 0x2f,
		0xd9, 0xdb, 0x11, 0x9c, 0xae, 0xf8, 0x8b, 0xc0, 0x52, 0x67, 0x51, 0x98, 0x26, 0x93, 0x47, 0x8c,
		0x82, 0x68, 0x98, 0x98, 0xde, 0x30, 0xea, 0x27, 0x12, 0x8f, 0xd8, 0x0a, 0xa2, 0x2b, 0x23, 0x76,
		0x1d, 0x21, 0x87, 0x97, 0x2b, 0x27, 0x61, 0x24, 0xe6, 0x2d, 0xb3, 0x45, 0xa7, 0xb7, 0x3b, 0xf6,
		0x63, 0xdd, 0xbd, 0x75, 0xdf, 0xc6, 0x41, 0x6f, 0x02, 0x1c, 0x8e, 0xc2, 0xab, 0x5b, 0x33, 0x92,
		0xfe, 0x02, 0x0d, 0x73, 0x15, 0xa4, 0xe1, 0xcd, 0xe4, 0xd9, 0x2f, 0x83, 0x41, 0x62, 0xca, 0x78,
		0x6f, 0x59, 0x39, 0x09, 0x3e, 0xe9, 0x99, 0xd4, 0xd6, 0x2f, 0x3b, 0x3b, 0x7b, 0xfb, 0x3b, 0x3b,
		0x9b, 0xfb, 0xaf, 0xf6, 0x37, 0x5f, 0xef, 0xee, 0x6e, 0xed, 0x49, 0x0c, 0x7d, 0xc5, 0xca, 0x04,
		0xb3, 0x3f, 0xfb, 0xab, 0x9c, 0x17, 0x35, 0xfb, 0x7b, 0x51, 0x20, 0xdf, 0x51, 0xa9, 0x46, 0xd1,
		0x30, 0x9d, 0x26, 0x72, 0x56, 0xdd, 0x45, 0x25, 0xe9, 0x7d, 0x34, 0xd7, 0xc1, 0x28, 0x48, 0x3f,
		0x4e, 0x80, 0xc3, 0xc6, 0x70, 0x64, 0xa2, 0xde, 0x34, 0xdb, 0xf2, 0x23, 0x93, 0xfe, 0x35, 0x8c,
		0xff, 0xcf, 0x0f, 0xa3, 0x24, 0x0d, 0xa2, 0x9e, 0xd9, 0xf8, 0xfa, 0x2f, 0x92, 0x7b, 0x7f, 0xb3,
		0x31, 0x8a, 0x87, 0xe9, 0xb0, 0x37, 0x1c, 0x24, 0xd9, 0x4f, 0x1b, 0x17, 0x57, 0xa3, 0x8d, 0xc8,
		0x84, 0x57, 0x1f, 0x2f, 0x86, 0x71, 0x92, 0xfd, 0xb4, 0x91, 0xa4, 0x41, 0x6a, 0x36, 0xae, 0x4d,
		0x92, 0x04, 0x57, 0x26, 0xd9, 0x88, 0x4d, 0xcf, 0x84, 0x37, 0xa6, 0x6f, 0x11, 0xae, 0x54, 0x92,
		0x34, 0x1e, 0xf7, 0xd2, 0x68, 0xce, 0x39, 0x66, 0x4f, 0xda, 0xb8, 0x7d, 0x8a, 0xfa, 0xec, 0x21,
		0xba, 0x5f, 0xfd, 0xef, 0xe4, 0xeb, 0xbf, 0xe8, 0x36, 0xe7, 0x4f, 0x99, 0xfd, 0xd4, 0x7d, 0x73,
		0x35, 0xea, 0x36, 0xe6, 0x4f, 0x99, 0xfd, 0xd4, 0x6d, 0x4f, 0x9e, 0xb2, 0x7b, 0x32, 0x7b, 0xca,
		0x6e, 0x6b, 0xfe, 0x94, 0x2f, 0x8a, 0x61, 0xe0, 0x16, 0x8c, 0xbb, 0x92, 0xdc, 0xa6, 0x47, 0x76,
		0x4c, 0x3a, 0x03, 0xf9, 0xd3, 0x55, 0x2c, 0x1d, 0xcd, 0xf9, 0xbc, 0x74, 0x4b, 0x1f, 0x6f, 0x9b,
		0xec, 0x90, 0x20, 0x39, 0xe4, 0xc8, 0x0d, 0x29, 0x52, 0x43, 0x9c, 0xcc, 0x10, 0x27, 0x31, 0x44,
		0xc9, 0x8b, 0x62, 0x05, 0xe3, 0xa3, 0x30, 0xb6, 0x7c, 0x5c, 0x4e, 0x3b, 0xf5, 0xb7, 0xf5, 0xc3,
		0xea, 0x74, 0xd4, 0x86, 0x18, 0x67, 0xbc, 0xb4, 0x2a, 0x4c, 0xb1, 0x6b, 0x4e, 0x54, 0xde, 0x99,
		0x4a, 0x3b, 0x55, 0x35, 0xe7, 0xaa, 0xe6, 0x64, 0x55, 0x9c, 0xad, 0x4c, 0x6e, 0x58, 0x3e, 0xa6,
		0x78, 0x1c, 0x46, 0x69, 0xe9, 0x48, 0x62, 0xc8, 0x5a, 0x1b, 0xcc, 0x1a, 0x64, 0xad, 0x18, 0x8d,
		0x06, 0x59, 0x8b, 0x95, 0x79, 0xc5, 0x0e, 0x95, 0x72, 0xab, 0x9c, 0x53, 0xaa, 0x73, 0xcf, 0xa8,
		0x6e, 0x45, 0x5c, 0x72, 0x69, 0xd6, 0x6c, 0x3d, 0x12, 0x2c, 0x12, 0x2c, 0x12, 0x2c, 0x12, 0x2c,
		0x12, 0x2c, 0x12, 0x2c, 0x12, 0x2c, 0x12, 0x2c, 0x12, 0x2c, 0x12, 0x2c, 0x12, 0x2c, 0x12, 0xac,
		0xf2, 0x25, 0x58, 0xf7, 0xb5, 0x08, 0x26, 0x8e, 0x87, 0xb1, 0xdf, 0x1b, 0xf6, 0x55, 0x15, 0x11,
		0x0b, 0xdf, 0x82, 0x64, 0x8c, 0x64, 0x8c, 0x64, 0x8c, 0x64, 0x8c, 0x64, 0x2c, 0x3b, 0x6f, 0x61,
		0xdf, 0x44, 0x69, 0x98, 0x7e, 0x8e, 0xcd, 0xa5, 0x60, 0x46, 0x26, 0x01, 0xb9, 0x2a, 0xf5, 0xd9,
		0xa3, 0xbd, 0x09, 0x12, 0xc1, 0x63, 0x9e, 0xcd, 0x11, 0x7a, 0xd7, 0xbc, 0x95, 0x33, 0x77, 0x05,
		0x9b, 0x45, 0x69, 0x34, 0x89, 0x52, 0x6a, 0xca, 0x75, 0x58, 0xab, 0xb6, 0xe9, 0x36, 0x99, 0xe3,
		0x86, 0xbe, 0xad, 0x37, 0xea, 0x9d, 0x5a, 0xb7, 0xdd, 0x99, 0xf6, 0x3a, 0xab, 0x1e, 0xbe, 0xaf,
		0x37, 0x98, 0x67, 0x91, 0xfb, 0x2e, 0x67, 0x5d, 0x69, 0x5b, 0xdd, 0xda, 0x6f, 0xcd, 0x3a, 0x43,
		0x01, 0x72, 0xdd, 0xdd, 0xaf, 0x26, 0x19, 0x63, 0xbd, 0x39, 0xef, 0xef, 0xd2, 0x40, 0x48, 0x76,
		0x37, 0xe7, 0xdd, 0x5d, 0xee, 0x3f, 0xcf, 0x36, 0x5b, 0xda, 0xe6, 0xaf, 0xda, 0x79, 0x4a, 0xef,
		0x2f, 0xed, 0x40, 0x54, 0x3f, 0x5d, 0x83, 0x02, 0x4b, 0xc6, 0x17, 0x6e, 0xb0, 0x60, 0xf3, 0x2f,
		0x02, 0x11, 0xf6, 0xa4, 0x85, 0x20, 0xc2, 0x72, 0xb5, 0x0e, 0x88, 0x30, 0x88, 0xb0, 0x6f, 0xec,
		0x18, 0x44, 0x58, 0x8e, 0x6b, 0xb9, 0x42, 0x84, 0xc9, 0x36, 0x4e, 0x5f, 0x23, 0x2e, 0xac, 0x7a,
		0x74, 0x52, 0x6f, 0xd4, 0xdb, 0x9d, 0x56, 0xb5, 0x53, 0xff, 0x30, 0xc9, 0x20, 0xda, 0x35, 0x06,
		0x83, 0xd9, 0xdb, 0xdf, 0xf6, 0xfb, 0xb3, 0xce, 0xd1, 0xe9, 0x7f, 0x1a, 0x6c, 0x71, 0x8e, 0x5b,
		0xac, 0xdb, 0xe3, 0x7f, 0x9d, 0x36, 0x58, 0xa7, 0x97, 0x7f, 0xf9, 0x77, 0xf8, 0x4d, 0xf5, 0xa8,
		0x3b, 0x09, 0x76, 0xf5, 0xa3, 0x5a, 0xa3, 0x53, 0x7f, 0x5b, 0x67, 0x08, 0x4b, 0xde, 0xbb, 0xab,
		0x35, 0x19, 0x70, 0xbd, 0x76, 0xb7, 0xf3, 0x7b, 0x93, 0x8b, 0xb5, 0x9c, 0xf7, 0x76, 0x3a, 0x0b,
		0xba, 0xca, 0x78, 0xed, 0x1c, 0xb7, 0x75, 0x7a, 0x01, 0xcc, 0x30, 0xa6, 0xf5, 0xca, 0x35, 0x14,
		0xcc, 0xdb, 0xcd, 0x7d, 0x97, 0xcf, 0x41, 0xd6, 0x77, 0xeb, 0x0f, 0x4f, 0x1b, 0x8d, 0xda, 0x61,
		0xa7, 0x7e, 0xda, 0xe8, 0xb6, 0x6a, 0xff, 0x3d, 0x9d, 0xc3, 0xcd, 0xb6, 0xcb, 0x6c, 0x7b, 0xf7,
		0xf0, 0xf4, 0xf8, 0xb8, 0xde, 0xbe, 0xdd, 0xfa, 0xf6, 0xe9, 0xf1, 0xd9, 0xb4, 0x6b, 0x0d, 0x9b,
		0x6f, 0x7d, 0xf3, 0x4f, 0xaa, 0xbf, 0x75, 0x1b, 0x67, 0x27, 0xdd, 0x66, 0xab, 0xf6, 0xb6, 0xfe,
		0x5b, 0xad, 0xdd, 0x6d, 0xd5, 0xaa, 0x87, 0xef, 0x31, 0x7c, 0x89, 0xbd, 0x3f, 0xed, 0xbc, 0xaf,
		0xb5, 0xba, 0x87, 0xa7, 0x8d, 0xb7, 0xf5, 0x77, 0xdd, 0xc3, 0xf7, 0xd5, 0xc6, 0x3b, 0xe6, 0xd1,
		0x48, 0x6c, 0xfb, 0x59, 0xa7, 0x7b, 0xfa, 0x76, 0xea, 0x67, 0xce, 0x5a, 0x87, 0xb5, 0x36, 0x7b,
		0x6e, 0x7f, 0xcf, 0xa7, 0x79, 0xd1, 0x51, 0x6d, 0x66, 0xec, 0x67, 0x2d, 0x15, 0x07, 0xc3, 0xbc,
		0xff, 0xa2, 0xa6, 0x80, 0x77, 0xc0, 0xac, 0x71, 0xda, 0xe9, 0xb6, 0x7f, 0x6f, 0x1c, 0xbe, 0x6f,
		0x9d, 0x4e, 0x87, 0x1a, 0x91, 0x69, 0x97, 0x04, 0xff, 0xae, 0xc7, 0xf6, 0x2a, 0xe3, 0xdc, 0x35,
		0xad, 0x6e, 0x87, 0x3c, 0x12, 0x7e, 0x0b, 0xad, 0xda, 0x61, 0xad, 0xfe, 0xa1, 0xd6, 0x3d, 0x6b,
		0xd4, 0x7e, 0x6b, 0x4e, 0x1d, 0xc9, 0x5d, 0x19, 0x66, 0xbb, 0x53, 0x7d, 0x73, 0x5c, 0x6f, 0x93,
		0x63, 0x68, 0xbf, 0x89, 0xd3, 0x66, 0xad, 0x31, 0xc5, 0x63, 0xad, 0x13, 0xde, 0x84, 0xfa, 0x9b,
		0x68, 0xd7, 0x1a, 0x1d, 0x30, 0x31, 0x81, 0xee, 0xb1, 0xe6, 0x34, 0x1f, 0xa1, 0xcd, 0x5d, 0xa9,
		0xed, 0x1d, 0x56, 0x9a, 0xcd, 0xbf, 0x4e, 0x1b, 0xac, 0x37, 0x83, 0x7f, 0x7d, 0x76, 0x59, 0x6f,
		0xd6, 0xfe, 0x1a, 0xe8, 0x11, 0xf5, 0x66, 0xea, 0xaf, 0xd5, 0xe6, 0x2a, 0xcd, 0xce, 0x5f, 0x87,
		0x3d, 0xd6, 0xbe, 0x06, 0x5a, 0x3b, 0xd1, 0x32, 0xa4, 0x84, 0xf0, 0xfe, 0x6b, 0x56, 0x16, 0xae,
		0x6f, 0xda, 0xab, 0x57, 0x71, 0xb8, 0xbe, 0x7b, 0xee, 0xc4, 0x7d, 0x09, 0x14, 0x43, 0xe1, 0x03,
		0x56, 0xbd, 0xdd, 0xae, 0x37, 0xde, 0x75, 0xff, 0x53, 0x3b, 0x3e, 0xee, 0xfe, 0x4f, 0xe3, 0xf4,
		0x3f, 0x64, 0x0f, 0x56, 0xf6, 0x79, 0xa9, 0xdb, 0x06, 0xb0, 0x40, 0x21, 0x40, 0x69, 0xc9, 0x39,
		0xd6, 0x1b, 0x16, 0x88, 0x17, 0xcb, 0xaf, 0xef, 0x76, 0x9f, 0x35, 0xaa, 0x87, 0x87, 0xb5, 0x66,
		0xa7, 0xfa, 0xe6, 0xb8, 0xd6, 0xcd, 0x7a, 0x53, 0xb1, 0xf3, 0x12, 0x3b, 0xdf, 0x3e, 0x6b, 0x36,
		0x4f, 0x5b, 0x9d, 0xda, 0x51, 0xf7, 0xb0, 0xda, 0xac, 0xbe, 0xa9, 0x1f, 0xd7, 0x3b, 0xbf, 0xb3,
		0xf3, 0xb2, 0x3b, 0x7f, 0xda, 0x9c, 0xa0, 0xe1, 0xea, 0x71, 0xb7, 0x59, 0x6d, 0x55, 0x4f, 0x6a,
		0x1d, 0x9c, 0xbc, 0xf4, 0x1b, 0xf8, 0x50, 0x6b, 0x4d, 0xcb, 0x5e, 0x1a, 0x67, 0x27, 0x6f, 0x54,
		0x76, 0x9f, 0x34, 0xa4, 0xb0, 0xf0, 0x78, 0x76, 0x76, 0xef, 0xe8, 0x5f, 0x34, 0xcd, 0x79, 0xef,
		0xb1, 0x66, 0x29, 0xfa, 0x1a, 0x6c, 0xaf, 0x5a, 0xc9, 0x79, 0xf9, 0xf7, 0x56, 0xb3, 0xb4, 0x7c,
		0x0d, 0x7a, 0x55, 0x3a, 0x56, 0xc9, 0xb7, 0xd6, 0x3b, 0xae, 0x52, 0xb1, 0xb7, 0xf6, 0x3b, 0x2e,
		0x5b, 0x99, 0xb7, 0x6e, 0xed, 0x6f, 0xe1, 0x3b, 0x85, 0xb7, 0x5f, 0xbb, 0x70, 0x90, 0x84, 0xac,
		0xe8, 0x07, 0x58, 0x9b, 0x4c, 0x5c, 0x87, 0x1d, 0x6e, 0xd5, 0x0e, 0x4f, 0xdf, 0x4d, 0x6f, 0x6c,
		0xb9, 0x7e, 0xb3, 0xbe, 0xd9, 0xed, 0x66, 0xed, 0xb0, 0xfe, 0xb6, 0x7e, 0xc8, 0xae, 0xe6, 0xba,
		0xab, 0xaa, 0xbc, 0xf7, 0x7a, 0xed, 0xb0, 0x26, 0xbf, 0xbd, 0x5e, 0x3b, 0xad, 0xc5, 0x63, 0xaf,
		0xdd, 0xbc, 0x06, 0x12, 0x03, 0xe1, 0xfd, 0x57, 0x6e, 0xcd, 0xaa, 0x60, 0xe8, 0xce, 0x6d, 0xbc,
		0x4e, 0xcb, 0xd6, 0xf5, 0xdd, 0x79, 0x65, 0x89, 0x17, 0x1b, 0xaf, 0x29, 0xfd, 0x62, 0xf7, 0xf5,
		0x24, 0x61, 0xeb, 0xbb, 0xf7, 0x8a, 0x52, 0x31, 0x36, 0x5d, 0x4f, 0x42, 0xb6, 0xc6, 0x7b, 0xef,
		0x44, 0x15, 0xf9, 0xfa, 0xee, 0xbf, 0x7e, 0xf9, 0xcc, 0xfa, 0xee, 0xbd, 0x43, 0x3c, 0x6e, 0xf6,
		0x12, 0xca, 0x7a, 0xed, 0xc2, 0xbc, 0x45, 0xd5, 0x4f, 0x97, 0x9d, 0xb7, 0x98, 0x86, 0xd7, 0xaa,
		0x63, 0x16, 0xa7, 0xeb, 0x33, 0x5d, 0xf1, 0x49, 0x0b, 0x31, 0x5d, 0x31, 0x57, 0xeb, 0x60, 0xba,
		0x22, 0xd3, 0x15, 0xbf, 0xb1, 0x63, 0xf2, 0xd3, 0x15, 0x27, 0x7e, 0x31, 0x0d, 0x7b, 0xff, 0x97,
		0xec, 0xed, 0x08, 0x4e, 0x57, 0xfc, 0x45, 0x60, 0xa9, 0xb3, 0x28, 0x4c, 0x93, 0xc9, 0x23, 0x46,
		0x41, 0x34, 0x4c, 0x4c, 0x6f, 0x18, 0xf5, 0x13, 0x89, 0x47, 0x6c, 0x05, 0xd1, 0x95, 0x11, 0xbb,
		0x8e, 0x90, 0xc3, 0xcb, 0x95, 0x93, 0x30, 0x12, 0xf3, 0x96, 0xd9, 0xa2, 0xd3, 0xdb, 0x1d, 0xfb,
		0xb1, 0xee, 0xde, 0xba, 0x6f, 0xe3, 0xa0, 0x37, 0x01, 0x0e, 0x47, 0xe1, 0xd5, 0xad, 0x19, 0x49,
		0x7f, 0x81, 0x86, 0xb9, 0x0a, 0xd2, 0xf0, 0x66, 0xf2, 0xec, 0x97, 0xc1, 0x20, 0x31, 0x65, 0xbc,
		0xb7, 0xac, 0x9c, 0x04, 0x9f, 0xf4, 0x4c, 0x6a, 0xeb, 0x97, 0x9d, 0x9d, 0xbd, 0xfd, 0x9d, 0x9d,
		0xcd, 0xfd, 0x57, 0xfb, 0x9b, 0xaf, 0x77, 0x77, 0xb7, 0xf6, 0x24, 0x86, 0xbe, 0x62, 0x65, 0x82,
		0xd9, 0x9f, 0xfd, 0x55, 0xce, 0x8b, 0x9a, 0xfd, 0xbd, 0x28, 0x90, 0xef, 0xa8, 0x54, 0xa3, 0x68,
		0x98, 0x4e, 0x13, 0x39, 0xab, 0xee, 0xa2, 0x92, 0xf4, 0x3e, 0x9a, 0xeb, 0x60, 0x14, 0xa4, 0x1f,
		0x27, 0xc0, 0x61, 0x63, 0x38, 0x32, 0x51, 0x6f, 0x9a, 0x6d, 0xf9, 0x91, 0x49, 0xff, 0x1a, 0xc6,
		0xff, 0xe7, 0x87, 0x51, 0x92, 0x06, 0x51, 0xcf, 0x6c, 0x7c, 0xfd, 0x17, 0xc9, 0xbd, 0xbf, 0xd9,
		0x18, 0xc5, 0xc3, 0x74, 0xd8, 0x1b, 0x0e, 0x92, 0xec, 0xa7, 0x8d, 0x8b, 0xab, 0xd1, 0x46, 0x64,
		0xc2, 0xab, 0x8f, 0x17, 0xc3, 0x38, 0xc9, 0x7e, 0xda, 0x48, 0xd2, 0x20, 0x35, 0x1b, 0xd7, 0x26,
		0x49, 0x82, 0x2b, 0x93, 0x6c, 0x24, 0x13, 0xd0, 0x6c, 0x31, 0x3d, 0x4f, 0xd2, 0x78, 0xdc, 0x4b,
		0xa3, 0x39, 0xdf, 0x98, 0x3d, 0x65, 0xe3, 0xf6, 0x09, 0xea, 0xb3, 0x07, 0xe8, 0x7e, 0xf5, 0xbf,
		0x93, 0xaf, 0xff, 0xa2, 0xdb, 0x9c, 0x3f, 0x61, 0xf6, 0x53, 0xf7, 0xcd, 0xd5, 0xa8, 0xdb, 0x98,
		0x3f, 0x61, 0xf6, 0x53, 0xb7, 0x3d, 0x79, 0xc2, 0xee, 0xc9, 0xec, 0x09, 0xbb, 0xed, 0xc9, 0x13,
		0xbe, 0x28, 0x86, 0x61, 0xe7, 0xfb, 0x89, 0x39, 0x1f, 0x11, 0xdb, 0x47, 0xc3, 0x91, 0x23, 0x61,
		0xe1, 0x34, 0xe8, 0x9f, 0x82, 0x7c, 0x0f, 0x40, 0x7e, 0x66, 0x9a, 0xa3, 0x89, 0x56, 0xe6, 0xef,
		0xd3, 0x0f, 0xfa, 0xfd, 0xd8, 0x24, 0x49, 0xee, 0x46, 0x9a, 0x65, 0xb2, 0xf7, 0x56, 0xca, 0xf9,
		0xa0, 0xd9, 0x61, 0xf7, 0xac, 0xb1, 0x79, 0x36, 0xd9, 0x3b, 0xfb, 0x6c, 0x9d, 0x6d, 0x76, 0x4e,
		0x8c, 0x8d, 0x13, 0x63, 0xdf, 0x44, 0xd8, 0x36, 0xb7, 0x43, 0xa1, 0x35, 0xf6, 0x2c, 0xb3, 0xf7,
		0x70, 0x64, 0xc9, 0xbb, 0x2c, 0x7a, 0x98, 0xad, 0xd7, 0x16, 0x3e, 0x7b, 0xb6, 0x37, 0x76, 0x48,
		0x29, 0x8b, 0x88, 0xfc, 0x6e, 0xe7, 0x6f, 0x76, 0x2c, 0xee, 0xfd, 0xbd, 0x77, 0x60, 0x91, 0xa1,
		0xac, 0x34, 0x83, 0x34, 0x35, 0x71, 0x64, 0x9d, 0x23, 0xac, 0xfc, 0xf8, 0xc7, 0xa6, 0xff, 0xfa,
		0xfc, 0x9f, 0x3f, 0xb6, 0xfc, 0xd7, 0xe7, 0xb7, 0x3f, 0x6e, 0x4d, 0xff, 0xcf, 0xdf, 0xdb, 0x5f,
		0xfe, 0xd9, 0xfe, 0x63, 0xd3, 0xdf, 0x99, 0xfd, 0xed, 0xf6, 0xee, 0x1f, 0x9b, 0xfe, 0xee, 0xf9,
		0x4f, 0x3f, 0xfe, 0xf9, 0xe7, 0xcb, 0xa7, 0xfe, 0xce, 0x4f, 0x7f, 0xbf, 0xfa, 0x62, 0x8f, 0xd6,
		0x3f, 0xb7, 0xf9, 0x1a, 0x4e, 0xdb, 0xf5, 0xdf, 0xc4, 0xde, 0xc5, 0xff, 0xfe, 0x28, 0xf5, 0x36,
		0x7e, 0xfa, 0x2f, 0x8b, 0xef, 0xa3, 0x48, 0xb4, 0x81, 0x8c, 0x5b, 0xda, 0xc3, 0x2d, 0x3d, 0xd5,
		0x2d, 0x4d, 0xad, 0x3a, 0xf0, 0x2f, 0xab, 0xfe, 0xdb, 0xf3, 0xbf, 0xb7, 0x7e, 0xde, 0xf9, 0x72,
		0xf0, 0xd3, 0xdf, 0xfb, 0x5f, 0xbe, 0xfe, 0xcb, 0x7f, 0x56, 0xfd, 0xb3, 0xad, 0x9f, 0xf7, 0xbf,
		0x1c, 0x3c, 0xf0, 0x5f, 0xf6, 0xbe, 0x1c, 0x3c, 0xf2, 0x33, 0x76, 0xbf, 0xfc, 0x78, 0xef, 0x9f,
		0x4e, 0xfe, 0x7e, 0xfb, 0xa1, 0x5f, 0xd8, 0x79, 0xe0, 0x17, 0x5e, 0x3d, 0xf4, 0x0b, 0xaf, 0x1e,
		0xf8, 0x85, 0x07, 0xbf, 0xd2, 0xf6, 0x03, 0xbf, 0xb0, 0xfb, 0xe5, 0x9f, 0x7b, 0xff, 0xfe, 0xc7,
		0xd5, 0xff, 0x74, 0xef, 0xcb, 0x4f, 0xff, 0x3c, 0xf4, 0xdf, 0xf6, 0xbf, 0xfc, 0x73, 0xf0, 0xd3,
		0x4f, 0x38, 0xea, 0x47, 0x3b, 0x6a, 0xcc, 0x53, 0xde, 0x3c, 0x8b, 0x17, 0xb8, 0x5e, 0xb8, 0xfd,
		0x3d, 0x1d, 0xe7, 0x84, 0x46, 0xc3, 0x38, 0x15, 0x20, 0x84, 0xa6, 0xcb, 0xe4, 0x9c, 0x6b, 0x1e,
		0x99, 0xcb, 0x60, 0x3c, 0x48, 0xad, 0xb8, 0xa3, 0xca, 0xd6, 0xfe, 0xeb, 0x7c, 0x4f, 0xc2, 0x39,
		0x5c, 0x18, 0x5c, 0x18, 0x5c, 0x18, 0x5c, 0x58, 0x8e, 0xf6, 0x3e, 0xf1, 0xaa, 0x7e, 0x34, 0xbe,
		0xbe, 0x30, 0xb1, 0x45, 0x32, 0x6c, 0xcf, 0xc2, 0x47, 0xdb, 0xad, 0xd0, 0xb2, 0x98, 0x75, 0x4a,
		0x54, 0x60, 0x49, 0x55, 0x5c, 0x89, 0xd7, 0xbe, 0xc8, 0xd5, 0xba, 0xd8, 0xac, 0xac, 0x97, 0xa8,
		0x98, 0xca, 0x4c, 0x60, 0x6f, 0x77, 0xf7, 0xd5, 0x2e, 0x66, 0xe0, 0x4c, 0x72, 0x40, 0xca, 0xf1,
		0xbd, 0x2f, 0x7d, 0x64, 0x4c, 0xec, 0x07, 0x16, 0x6f, 0x9f, 0xe7, 0x0b, 0x00, 0xb4, 0x01, 0xda,
		0x00, 0x6d, 0x80, 0x76, 0x8e, 0xf6, 0x1e, 0x24, 0xf6, 0x61, 0xf6, 0x3e, 0x30, 0x1b, 0x98, 0x0d,
		0xcc, 0xd6, 0x81, 0xd9, 0x3b, 0xdb, 0xaf, 0x77, 0x5e, 0xef, 0xed, 0x6f, 0xbf, 0x06, 0x6b, 0x83,
		0xb5, 0x4b, 0x82, 0xb5, 0xaf, 0xe2, 0xe1, 0x78, 0x64, 0x19, 0x6e, 0xdf, 0xae, 0x01, 0xe2, 0x06,
		0x71, 0x83, 0xb8, 0x41, 0xdc, 0x39, 0xda, 0xfb, 0xc0, 0x04, 0x97, 0xb1, 0xb9, 0xb4, 0x59, 0xe3,
		0x69, 0x03, 0x70, 0x37, 0x67, 0x22, 0x8d, 0x97, 0x2f, 0x37, 0xb2, 0xff, 0x77, 0xe7, 0x28, 0x93,
		0x85, 0x9f, 0x17, 0x7e, 0xf4, 0xa7, 0x02, 0x88, 0x75, 0x09, 0x4b, 0xa9, 0x0d, 0xdb, 0x59, 0x8e,
		0x4a, 0xd3, 0x25, 0x08, 0x4a, 0x04, 0x25, 0x82, 0x12, 0x41, 0xa9, 0x00, 0xce, 0x65, 0x29, 0x2c,
		0xed, 0x58, 0xf8, 0xec, 0x5a, 0x34, 0xbe, 0xb6, 0x77, 0x98, 0x3a, 0xc3, 0x76, 0x1a, 0x87, 0xd1,
		0x95, 0x5d, 0x61, 0xf0, 0xe6, 0x6d, 0x17, 0xd6, 0x4e, 0xad, 0xd5, 0xa8, 0x1e, 0xdb, 0x2c, 0xf4,
		0xdd, 0x9a, 0x2c, 0x54, 0xfb, 0x6d, 0xb6, 0x50, 0xa1, 0x44, 0xda, 0x9d, 0x61, 0x3d, 0x4a, 0xed,
		0xbe, 0x86, 0x6c, 0x63, 0x0e, 0xbc, 0x2d, 0x8b, 0x2f, 0x21, 0x7b, 0xd1, 0x07, 0xde, 0xe6, 0x7a,
		0x8a, 0x94, 0x9d, 0x44, 0x70, 0xff, 0xef, 0xd8, 0xdc, 0x76, 0xfa, 0xb7, 0x04, 0xdf, 0x66, 0x9f,
		0x6f, 0x07, 0xbb, 0x6d, 0x81, 0xdd, 0xc0, 0x6e, 0x60, 0x37, 0x17, 0xb1, 0xdb, 0x51, 0x18, 0xdb,
		0x31, 0xf7, 0x30, 0x1a, 0x8d, 0xed, 0x45, 0xc4, 0x3b, 0x11, 0xd2, 0x74, 0x19, 0x4b, 0xe6, 0x61,
		0xb7, 0xa9, 0xa5, 0xf5, 0x66, 0x96, 0x12, 0x4d, 0x2c, 0xe5, 0x9a, 0x57, 0x4a, 0x35, 0xad, 0x14,
		0x6f, 0x56, 0x29, 0xde, 0xa4, 0x52, 0xb4, 0x39, 0x65, 0xb1, 0x9a, 0x2d, 0x59, 0x6f, 0x42, 0x99,
		0x9d, 0x97, 0x71, 0x18, 0xa5, 0xaf, 0xb6, 0x05, 0x74, 0x93, 0xfb, 0x16, 0x97, 0x90, 0xe9, 0xf7,
		0x28, 0xd0, 0x12, 0x54, 0xb2, 0xbf, 0xa3, 0x74, 0x5f, 0x47, 0xb5, 0x4e, 0x7b, 0xf2, 0x1d, 0xf6,
		0x04, 0xfa, 0x37, 0x8a, 0xf6, 0x6d, 0x14, 0x2f, 0x93, 0x58, 0x47, 0x9b, 0x29, 0x68, 0x17, 0xc3,
		0xa2, 0xa8, 0x3a, 0x2d, 0x9c, 0xc9, 0xca, 0x70, 0x9c, 0x8a, 0x64, 0x17, 0xb3, 0x75, 0x48, 0x2f,
		0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f,
		0xb0, 0x19, 0xd2, 0x0b, 0x47, 0xd2, 0x0b, 0x3a, 0x54, 0xab, 0x75, 0xa8, 0xb6, 0x72, 0x69, 0xec,
		0xa9, 0xf6, 0xa7, 0xfe, 0xff, 0xdd, 0x3e, 0xd2, 0x1a, 0x54, 0x14, 0xc4, 0xe6, 0x7a, 0x78, 0x63,
		0xfc, 0x51, 0x1c, 0xde, 0x04, 0xa9, 0xb1, 0x2a, 0x10, 0xbe, 0xbf, 0x14, 0x35, 0xa2, 0xd4, 0x19,
		0xa8, 0x67, 0xc8, 0xd4, 0x19, 0xc8, 0x05, 0x42, 0xfb, 0x35, 0xa2, 0xf7, 0x9c, 0x8c, 0x3f, 0x1c,
		0x4d, 0x03, 0xaf, 0xc5, 0x92, 0x51, 0x0b, 0x70, 0xb9, 0x52, 0xef, 0x9b, 0x28, 0x0d, 0xd3, 0xcf,
		0x6f, 0x82, 0xc4, 0xd8, 0x67, 0x38, 0x5b, 0xb5, 0x93, 0xd3, 0x0f, 0xb5, 0x6e, 0xb3, 0x55, 0xff,
		0x50, 0xed, 0xd4, 0xba, 0xd5, 0x76, 0xf7, 0x76, 0x04, 0xb3, 0xad, 0x23, 0x37, 0xcd, 0x38, 0x12,
		0xab, 0x39, 0xbd, 0xd0, 0x9c, 0xd5, 0x85, 0x2d, 0x9b, 0x6d, 0x62, 0xf5, 0xf8, 0xb8, 0x52, 0x44,
		0xc5, 0xaf, 0xc6, 0x86, 0x35, 0x8f, 0xab, 0x87, 0xb6, 0x77, 0xec, 0x45, 0x31, 0xf2, 0xa2, 0x75,
		0x28, 0x5f, 0x8d, 0x87, 0xe3, 0xd4, 0xf8, 0x97, 0x83, 0x60, 0xe4, 0xf7, 0x83, 0xeb, 0x91, 0x8d,
		0x9a, 0xf5, 0xbb, 0x40, 0x70, 0x7f, 0xad, 0x22, 0x35, 0xc0, 0x9c, 0xd2, 0x12, 0xb4, 0xc0, 0x04,
		0x6e, 0x03, 0xb7, 0x81, 0xdb, 0xee, 0xc2, 0xed, 0x8b, 0xe1, 0x70, 0x60, 0x02, 0xab, 0xe8, 0x7a,
		0x6b, 0x0d, 0x02, 0x63, 0x62, 0xa2, 0xbe, 0xdf, 0x1b, 0x5e, 0x5f, 0x8f, 0xa3, 0x30, 0xfd, 0x6c,
		0x2f, 0x28, 0x7e, 0xb5, 0x4e, 0x91, 0x02, 0x62, 0xe3, 0xb4, 0x51, 0x23, 0x1e, 0x12, 0x0f, 0x89,
		0x87, 0xc4, 0x43, 0x77, 0xe3, 0x61, 0xe6, 0x5b, 0xd1, 0x29, 0xdf, 0xdf, 0x7d, 0x39, 0x9d, 0x72,
		0xbb, 0x53, 0x6d, 0x1c, 0x55, 0x5b, 0x47, 0x22, 0x3a, 0xe5, 0xc6, 0x51, 0xcd, 0xea, 0x42, 0xdb,
		0x93, 0x85, 0x8e, 0xab, 0xad, 0x77, 0x35, 0x9b, 0xab, 0xbc, 0x9a, 0xac, 0xf2, 0xe6, 0xb4, 0xf3,
		0xde, 0xe6, 0x22, 0x3b, 0x93, 0x45, 0xf2, 0x8f, 0xe4, 0x96, 0xd9, 0x31, 0x09, 0x5d, 0xf7, 0x74,
		0xe7, 0x0f, 0xbc, 0x57, 0x3f, 0xdb, 0x95, 0x8e, 0x4f, 0x6d, 0xd5, 0xae, 0x74, 0xfc, 0xd6, 0x52,
		0x0f, 0xbc, 0x6d, 0x8b, 0x6b, 0x4c, 0x4d, 0xe8, 0xc0, 0xdb, 0xb1, 0x59, 0x08, 0x3a, 0x77, 0x21,
		0x6b, 0xab, 0x80, 0xcf, 0x39, 0xf8, 0x9a, 0x4f, 0x69, 0x1c, 0xf8, 0xe3, 0x28, 0x49, 0x83, 0x8b,
		0x81, 0xa5, 0x30, 0x9c, 0xa4, 0x41, 0x3a, 0x4e, 0x8a, 0x3c, 0xe5, 0xb3, 0x6f, 0x46, 0xb1, 0xe9,
		0x05, 0xa9, 0xe9, 0x97, 0xac, 0xca, 0x79, 0xf6, 0x6a, 0xca, 0x5c, 0xe5, 0xbc, 0xf0, 0xee, 0x68,
		0xf3, 0xb9, 0x76, 0xac, 0x8d, 0xe5, 0xce, 0x6a, 0xab, 0x16, 0x83, 0xc0, 0x80, 0xc0, 0x80, 0xc0,
		0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0,
		0xb0, 0x15, 0x7c, 0x8f, 0xc3, 0x24, 0xad, 0xa6, 0xa9, 0xa5, 0x4e, 0x59, 0x27, 0x61, 0x54, 0x1b,
		0x98, 0x09, 0xbc, 0xb1, 0x24, 0x84, 0xaa, 0x9c, 0x04, 0x9f, 0x16, 0x56, 0xd8, 0xfa, 0x65, 0x67,
		0x67, 0x6f, 0x7f, 0x67, 0x67, 0x73, 0xff, 0xd5, 0xfe, 0xe6, 0xeb, 0xdd, 0xdd, 0xad, 0x3d, 0x2b,
		0x75, 0xac, 0xa7, 0x71, 0xdf, 0xc4, 0xa6, 0xff, 0xe6, 0x73, 0xe5, 0xc0, 0x8b, 0xc6, 0x83, 0x81,
		0xcd, 0x25, 0xce, 0x12, 0x13, 0x5b, 0x51, 0x74, 0xb9, 0x9a, 0x7e, 0x26, 0x49, 0x38, 0x8c, 0xfc,
		0xa9, 0x0a, 0xc7, 0x66, 0xe2, 0xb9, 0xb8, 0x0c, 0x29, 0x27, 0x29, 0x27, 0x29, 0x27, 0x29, 0x67,
		0x8e, 0xf6, 0x6e, 0xa2, 0xf1, 0xb5, 0x89, 0x03, 0xdb, 0x2a, 0x0d, 0xf2, 0xcd, 0x7f, 0xc9, 0x37,
		0xeb, 0x47, 0xc7, 0x35, 0xeb, 0xb9, 0xe6, 0xe1, 0x69, 0xa3, 0x51, 0x3b, 0xec, 0x58, 0x4f, 0x35,
		0xab, 0x87, 0x9d, 0xfa, 0x07, 0xfb, 0xb9, 0xe6, 0x69, 0xb3, 0xd6, 0x68, 0xd7, 0x1a, 0x1d, 0xeb,
		0xf9, 0xe6, 0x64, 0xa1, 0xc3, 0xd3, 0xc6, 0xdb, 0x7a, 0xeb, 0xc4, 0xe6, 0x5a, 0xbb, 0x53, 0x3e,
		0xa0, 0xdd, 0xa9, 0xbe, 0x39, 0xae, 0xb7, 0xdf, 0xd7, 0x8e, 0x48, 0x71, 0xbf, 0x0e, 0x06, 0xb7,
		0x76, 0x65, 0x37, 0x33, 0x9c, 0x1f, 0x12, 0xbb, 0x39, 0xee, 0xe2, 0x6b, 0x3e, 0xf0, 0x76, 0x6d,
		0x76, 0x92, 0x9f, 0x78, 0x16, 0xab, 0x9d, 0x1d, 0x96, 0xce, 0x87, 0xdd, 0x9c, 0x3a, 0x3b, 0xf2,
		0x07, 0xde, 0x2b, 0xda, 0xe2, 0xbb, 0x93, 0x09, 0x8d, 0x47, 0xa3, 0x61, 0x9c, 0x9a, 0xbe, 0xdf,
		0x0b, 0x46, 0xc1, 0x45, 0x38, 0x08, 0xd3, 0xd0, 0x66, 0x9b, 0xfc, 0x07, 0xd6, 0x23, 0x37, 0x22,
		0x37, 0x22, 0x37, 0x22, 0x37, 0xca, 0xd1, 0xde, 0xc3, 0x99, 0x0c, 0xdc, 0xf2, 0x2c, 0xbe, 0xe2,
		0x2b, 0xd8, 0xdf, 0xbc, 0x6b, 0x76, 0x0f, 0xab, 0xcd, 0xea, 0x9b, 0xfa, 0x71, 0xbd, 0xf3, 0x3b,
		0xba, 0xf5, 0x6f, 0xed, 0x57, 0xf5, 0xe8, 0xa8, 0xdb, 0xac, 0x76, 0xde, 0xb7, 0xd1, 0xaa, 0xff,
		0xcb, 0x26, 0xb5, 0x1b, 0xaf, 0xb6, 0xd9, 0xa0, 0x87, 0x37, 0x68, 0x7e, 0x23, 0xd7, 0x6d, 0xd4,
		0x7e, 0xeb, 0xbc, 0x3f, 0x6d, 0x76, 0x27, 0x40, 0xfc, 0xa8, 0xde, 0x78, 0xc7, 0xa6, 0x3d, 0xbc,
		0x69, 0xef, 0x5a, 0xd5, 0xc3, 0xda, 0xdb, 0xb3, 0xe3, 0x6e, 0x6b, 0x92, 0x85, 0xb5, 0x3a, 0xec,
		0xd5, 0xc3, 0x7b, 0x75, 0xd2, 0x7c, 0xf3, 0xae, 0xc9, 0x06, 0x3d, 0xbc, 0x41, 0xad, 0xd3, 0xb3,
		0x4e, 0xad, 0xdb, 0xaa, 0xbd, 0x6d, 0xd5, 0xda, 0xef, 0xe9, 0xa2, 0xc1, 0x0d, 0x32, 0x37, 0xc8,
		0xcf, 0x58, 0xa2, 0x08, 0x37, 0xc8, 0x2f, 0x1c, 0xb2, 0x6c, 0x5b, 0x9d, 0x2d, 0x75, 0x3b, 0x5a,
		0x56, 0xf2, 0xa4, 0xa6, 0x94, 0x5a, 0x58, 0xe6, 0x13, 0x0a, 0x9e, 0x6f, 0x6c, 0x39, 0x18, 0x5a,
		0x25, 0x0d, 0xaf, 0x4d, 0x9c, 0x1f, 0x9d, 0x97, 0xc5, 0xce, 0xd9, 0xe7, 0xe6, 0x74, 0x14, 0xf2,
		0x9d, 0x72, 0x99, 0x3b, 0x4d, 0x67, 0x83, 0x9e, 0xb3, 0x47, 0xcb, 0xd9, 0xa2, 0xe3, 0xac, 0xd3,
		0x70, 0xd6, 0xe9, 0x37, 0xab, 0xb4, 0x9b, 0x5b, 0xc1, 0x25, 0xef, 0xa9, 0x94, 0x95, 0xde, 0xfc,
		0x4c, 0x59, 0xba, 0x17, 0x98, 0x7d, 0x3e, 0xe3, 0x73, 0xb9, 0x07, 0x50, 0x73, 0x40, 0x62, 0x8e,
		0x48, 0xc4, 0x21, 0x15, 0x23, 0xaf, 0xb3, 0x36, 0x3e, 0xb7, 0x37, 0x8c, 0x22, 0xd3, 0x4b, 0xfd,
		0xd8, 0xa4, 0xf1, 0x67, 0xfb, 0x24, 0xfa, 0xf2, 0x72, 0x96, 0xcc, 0xc5, 0x66, 0x97, 0xa8, 0x6c,
		0x91, 0x57, 0x9b, 0x76, 0xb8, 0x90, 0x73, 0x86, 0x80, 0x49, 0xfb, 0x7c, 0x39, 0xdf, 0x2f, 0x15,
		0x03, 0xc4, 0x63, 0x81, 0x78, 0x4c, 0x10, 0x8d, 0x0d, 0x76, 0x62, 0x84, 0xa5, 0x58, 0x91, 0xed,
		0x8c, 0xec, 0x10, 0xb0, 0xad, 0x3d, 0x81, 0x21, 0x60, 0x7b, 0x0c, 0x01, 0xfb, 0xf6, 0x83, 0x30,
		0x04, 0xcc, 0x8a, 0xad, 0x33, 0x04, 0x2c, 0x27, 0x53, 0xd9, 0xdb, 0xdd, 0x7d, 0xc5, 0xfc, 0xaf,
		0x62, 0xc4, 0x26, 0xfb, 0x9f, 0xbe, 0xce, 0xe3, 0x85, 0x3f, 0x0e, 0x07, 0x7d, 0x3f, 0x0d, 0xaf,
		0x05, 0xaa, 0x97, 0xee, 0x96, 0x2a, 0x72, 0xd2, 0xf5, 0x9a, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b,
		0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0xcb,
		0x95, 0xa4, 0xcb, 0x52, 0x4c, 0x15, 0xe8, 0xeb, 0x9b, 0xad, 0x15, 0x9b, 0x4b, 0x13, 0x9b, 0xa8,
		0x57, 0x8a, 0xa0, 0x94, 0x95, 0xf0, 0xbe, 0x3d, 0xf4, 0x76, 0xb6, 0xf7, 0xb7, 0x3c, 0xdf, 0xab,
		0x7a, 0x6f, 0x86, 0x71, 0xdf, 0xc4, 0xde, 0xbb, 0x20, 0x35, 0x7f, 0x05, 0x9f, 0xbd, 0x79, 0xad,
		0x97, 0xb7, 0xf3, 0xb3, 0xd7, 0x36, 0xbd, 0x97, 0xde, 0xd6, 0x66, 0x45, 0xc0, 0x09, 0x0a, 0x61,
		0xf1, 0x55, 0x98, 0xfc, 0xee, 0x15, 0x0b, 0xb9, 0x25, 0x69, 0x78, 0xbe, 0x12, 0xa6, 0x3f, 0xd5,
		0x06, 0xf0, 0x9d, 0x10, 0x56, 0xf7, 0x0c, 0xea, 0xff, 0x8c, 0x19, 0x05, 0x83, 0xf0, 0xc6, 0xf8,
		0x61, 0x94, 0x9a, 0xf8, 0x26, 0x18, 0xd8, 0x67, 0xae, 0x56, 0xac, 0x49, 0xdd, 0x00, 0x14, 0x16,
		0x14, 0x16, 0x14, 0x16, 0x14, 0x16, 0x14, 0x16, 0x14, 0x16, 0x14, 0x16, 0x9c, 0x04, 0x14, 0x16,
		0xe6, 0x42, 0x1a, 0xb6, 0x2e, 0x69, 0xd8, 0x75, 0x18, 0x85, 0xd7, 0xe3, 0x6b, 0x3f, 0xe8, 0xdf,
		0x98, 0x38, 0x0d, 0x93, 0xa9, 0x60, 0x56, 0x30, 0x25, 0xfb, 0xc6, 0xfa, 0xa4, 0x67, 0xa4, 0x67,
		0xa4, 0x67, 0xa4, 0x67, 0xa4, 0x67, 0xa4, 0x67, 0xa4, 0x67, 0xa4, 0x67, 0xe0, 0x6d, 0xd2, 0x33,
		0xcc, 0x85, 0xf4, 0xcc, 0xdd, 0x98, 0x4a, 0x85, 0xc1, 0x33, 0xa1, 0xc2, 0x13, 0x6e, 0x97, 0xbd,
		0xd7, 0x2f, 0xb7, 0x5f, 0x6e, 0xbd, 0xdc, 0xa2, 0xca, 0xa0, 0xd8, 0x10, 0x7d, 0x25, 0x54, 0xff,
		0x1e, 0x3b, 0xc0, 0x87, 0x42, 0x71, 0xad, 0xf0, 0x92, 0x49, 0x1a, 0xc4, 0xa9, 0x90, 0x3a, 0x66,
		0x69, 0x35, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a,
		0x98, 0x1a, 0x98, 0x1a, 0xcc, 0x85, 0x2c, 0x43, 0x3f, 0xcb, 0x70, 0xba, 0x41, 0x9b, 0xa5, 0x36,
		0xc5, 0xd9, 0xe7, 0x6b, 0xb5, 0x2b, 0xbe, 0xed, 0x60, 0xbb, 0x61, 0xa5, 0xef, 0xa4, 0xa7, 0xd4,
		0xbe, 0xb8, 0x33, 0x7d, 0xa6, 0xee, 0x2c, 0x63, 0x5a, 0x87, 0xe9, 0x65, 0x96, 0xe7, 0x37, 0x5b,
		0x9c, 0xdb, 0x6c, 0xad, 0x27, 0xe9, 0x36, 0x3d, 0x49, 0xe5, 0xd2, 0x61, 0x7a, 0x92, 0x96, 0x30,
		0xe4, 0xd1, 0x93, 0xf4, 0x29, 0x9b, 0x45, 0xf1, 0xda, 0x83, 0x3e, 0x1e, 0x4a, 0x54, 0xd3, 0xf7,
		0x4b, 0xc5, 0x00, 0xf1, 0x58, 0x20, 0x1e, 0x13, 0x44, 0x63, 0x83, 0xdd, 0xc4, 0x10, 0x4a, 0xf4,
		0xd1, 0xde, 0x0b, 0x4a, 0xf4, 0x31, 0x3c, 0x17, 0x94, 0x68, 0x29, 0x38, 0x2e, 0x28, 0x51, 0xcc,
		0x45, 0x3b, 0x36, 0xd9, 0xff, 0x74, 0x7a, 0x92, 0xd2, 0x93, 0xf4, 0xd1, 0x8b, 0xd0, 0x93, 0x94,
		0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b, 0xa4, 0x8b,
		0xa4, 0x8b, 0xa4, 0xcb, 0x99, 0xa4, 0x0b, 0xc5, 0x90, 0x5b, 0x41, 0x89, 0x9e, 0xa4, 0xab, 0x30,
		0x39, 0x6a, 0x21, 0x7a, 0x92, 0x42, 0x58, 0x7d, 0x97, 0x41, 0xd1, 0x93, 0xf4, 0xd9, 0x8b, 0x50,
		0x37, 0x00, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05,
		0x85, 0x05, 0x85, 0x05, 0x85, 0x45, 0x1a, 0xf6, 0x14, 0x23, 0xa1, 0x27, 0x29, 0xe9, 0x19, 0xe9,
		0x19, 0xe9, 0x19, 0xe9, 0x19, 0xe9, 0x19, 0xe9, 0x19, 0xe9, 0x19, 0xe9, 0x19, 0xe9, 0x19, 0xe9,
		0x19, 0xe9, 0x59, 0xf9, 0xd3, 0x33, 0x2a, 0x0c, 0xdc, 0x0a, 0x4a, 0xf4, 0x24, 0x7d, 0x08, 0x97,
		0x53, 0x65, 0x40, 0x4f, 0x52, 0x28, 0xae, 0xef, 0x36, 0xaa, 0xc8, 0x5c, 0x0d, 0xd3, 0x30, 0x48,
		0x4d, 0xdf, 0x17, 0x54, 0xc9, 0xac, 0x5c, 0x15, 0xe6, 0x06, 0xe6, 0x06, 0xe6, 0x06, 0xe6, 0x06,
		0xe6, 0x06, 0xe6, 0x06, 0xe6, 0x06, 0xe6, 0x06, 0xe6, 0x06, 0x73, 0x21, 0xeb, 0x28, 0x65, 0xd6,
		0xc1, 0x24, 0x04, 0xb2, 0x0c, 0xb2, 0x0c, 0xb2, 0x0c, 0xb2, 0x0c, 0xb2, 0x0c, 0xb2, 0x0c, 0xb2,
		0x0c, 0xb2, 0x0c, 0xb2, 0x0c, 0xb2, 0x8c, 0xb5, 0xce, 0x32, 0x98, 0x84, 0xa0, 0x37, 0x09, 0xc1,
		0x46, 0xb3, 0x7b, 0x4f, 0x77, 0x10, 0x42, 0x7b, 0xfa, 0x48, 0xae, 0xce, 0x41, 0x78, 0xe1, 0x90,
		0x91, 0xdb, 0x32, 0x6e, 0x65, 0xa3, 0xae, 0xe4, 0x3a, 0x6b, 0x42, 0xc9, 0x8c, 0xf3, 0x31, 0xe0,
		0xe7, 0x9b, 0x5b, 0x0e, 0xa6, 0x56, 0x49, 0xe3, 0x20, 0x4a, 0x46, 0xc3, 0x38, 0xcd, 0xcd, 0xca,
		0xb2, 0x04, 0xe9, 0xee, 0xa3, 0x73, 0x3a, 0x12, 0xf9, 0x0e, 0xea, 0xc8, 0x9d, 0xbd, 0xb1, 0xc1,
		0xd6, 0xd8, 0x63, 0x67, 0x6c, 0xb1, 0x31, 0xd6, 0xd9, 0x17, 0xeb, 0x6c, 0x8b, 0x55, 0x76, 0xc5,
		0xad, 0x20, 0x93, 0xf7, 0x60, 0x8d, 0x4a, 0x6f, 0x7e, 0xa6, 0x2c, 0x0d, 0x00, 0xb2, 0x32, 0x1d,
		0xca, 0xfa, 0x04, 0xa0, 0x4d, 0x26, 0x00, 0xd9, 0x77, 0x3c, 0x62, 0x0e, 0x48, 0xcc, 0x11, 0x89,
		0x38, 0xa4, 0x62, 0xa4, 0x7a, 0xd6, 0x26, 0x00, 0x0d, 0x86, 0xbd, 0x60, 0xe0, 0x07, 0xfd, 0x7e,
		0x6c, 0x92, 0xc4, 0xfe, 0xa5, 0xd7, 0xf2, 0x72, 0xdc, 0x7a, 0x49, 0xbb, 0x37, 0x39, 0x37, 0x27,
		0xe5, 0xee, 0xc4, 0xdd, 0x9e, 0xb8, 0xfb, 0x13, 0x75, 0x83, 0x76, 0xb9, 0xbf, 0x12, 0xdc, 0x7a,
		0x45, 0xe1, 0x30, 0x12, 0xb8, 0xf4, 0xda, 0x7a, 0x6d, 0x71, 0x8d, 0xd9, 0x76, 0x95, 0x46, 0x7f,
		0x12, 0x8e, 0x2c, 0x87, 0x14, 0xe9, 0x37, 0x24, 0xfb, 0xa6, 0xe4, 0xde, 0xd8, 0x8a, 0x37, 0x77,
		0xb3, 0x23, 0xf8, 0xee, 0xee, 0xbd, 0xc3, 0x5f, 0x04, 0xd7, 0x6c, 0x06, 0x69, 0x6a, 0xe2, 0x48,
		0xec, 0x75, 0x66, 0x0b, 0xff, 0xf8, 0xc7, 0xa6, 0xff, 0xfa, 0xfc, 0x9f, 0x3f, 0xb6, 0xfc, 0xd7,
		0xe7, 0xb7, 0x3f, 0x6e, 0x4d, 0xff, 0xcf, 0xdf, 0xdb, 0x5f, 0xfe, 0xd9, 0xfe, 0x63, 0xd3, 0xdf,
		0x99, 0xfd, 0xed, 0xf6, 0xee, 0x1f, 0x9b, 0xfe, 0xee, 0xf9, 0x4f, 0x3f, 0xfe, 0xf9, 0xe7, 0xcb,
		0xa7, 0xfe, 0xce, 0x4f, 0x7f, 0xbf, 0xfa, 0x52, 0x11, 0x7b, 0xac, 0x73, 0xc9, 0xd7, 0x76, 0xda,
		0xae, 0xff, 0xa6, 0xf6, 0xee, 0xfe, 0xf7, 0x47, 0xa9, 0xb7, 0xf7, 0xd3, 0x7f, 0x09, 0xbe, 0x3f,
		0x91, 0x95, 0xbe, 0xfc, 0x5c, 0x62, 0xb7, 0xb9, 0x87, 0xdb, 0xb4, 0xed, 0x36, 0xa7, 0xa7, 0x28,
		0xf0, 0x2f, 0xab, 0xfe, 0xdb, 0xf3, 0xbf, 0xb7, 0x7e, 0xde, 0xf9, 0x72, 0xf0, 0xd3, 0xdf, 0xfb,
		0x5f, 0xbe, 0xfe, 0xcb, 0x7f, 0x56, 0xfd, 0xb3, 0xad, 0x9f, 0xf7, 0xbf, 0x1c, 0x3c, 0xf0, 0x5f,
		0xf6, 0xbe, 0x1c, 0x3c, 0xf2, 0x33, 0x76, 0xbf, 0xfc, 0x78, 0xef, 0x9f, 0x4e, 0xfe, 0x7e, 0xfb,
		0xa1, 0x5f, 0xd8, 0x79, 0xe0, 0x17, 0x5e, 0x3d, 0xf4, 0x0b, 0xaf, 0x1e, 0xf8, 0x85, 0x07, 0xbf,
		0xd2, 0xf6, 0x03, 0xbf, 0xb0, 0xfb, 0xe5, 0x9f, 0x7b, 0xff, 0xfe, 0xc7, 0xd5, 0xff, 0x74, 0xef,
		0xcb, 0x4f, 0xff, 0x3c, 0xf4, 0xdf, 0xf6, 0xbf, 0xfc, 0x73, 0xf0, 0xd3, 0x4f, 0x04, 0x12, 0x6b,
		0x81, 0x04, 0x73, 0x96, 0x37, 0xe7, 0xf2, 0x05, 0xd6, 0x17, 0xc5, 0x7e, 0x0e, 0xcb, 0xc0, 0x40,
		0x30, 0xf3, 0x4d, 0xd2, 0x38, 0x8c, 0xae, 0x24, 0xb3, 0xde, 0x5f, 0x28, 0x39, 0xb3, 0xfa, 0x7d,
		0xad, 0x74, 0x8c, 0x4c, 0xc7, 0x7e, 0x3f, 0x4c, 0x7a, 0xc3, 0x1b, 0x23, 0x31, 0xe6, 0x7f, 0x79,
		0xb9, 0x22, 0xf7, 0x83, 0x9c, 0x56, 0x71, 0xd2, 0x12, 0x72, 0xe1, 0xe3, 0xb9, 0xfc, 0x78, 0xd2,
		0x4a, 0x5c, 0x7e, 0xe4, 0xb5, 0x20, 0x97, 0x1f, 0x0f, 0xed, 0x8c, 0xdc, 0xe5, 0xc7, 0xc5, 0x70,
		0x38, 0x30, 0x81, 0xc8, 0xf5, 0xc7, 0xd6, 0x1a, 0x87, 0xeb, 0x51, 0x90, 0x24, 0xe1, 0x8d, 0xf1,
		0xaf, 0x87, 0x7d, 0x01, 0x1d, 0xea, 0xd2, 0x6a, 0x04, 0x6b, 0x82, 0x35, 0xc1, 0x9a, 0x60, 0x4d,
		0xb0, 0x26, 0x58, 0x13, 0xac, 0x1f, 0xb3, 0x07, 0x69, 0x6f, 0xe4, 0x5f, 0x4b, 0x94, 0xce, 0xcd,
		0x17, 0x22, 0x14, 0x11, 0x8a, 0x08, 0x45, 0x84, 0xa2, 0x02, 0x85, 0x22, 0x5a, 0x45, 0x3c, 0xfa,
		0x0f, 0xad, 0x22, 0x9e, 0xb7, 0x1e, 0xad, 0x22, 0x72, 0x35, 0x15, 0x5a, 0x45, 0x94, 0xc6, 0x5c,
		0xb8, 0xb7, 0xb3, 0x9b, 0x5b, 0xd0, 0x2a, 0x42, 0x43, 0x55, 0x3f, 0xd7, 0x58, 0x6f, 0x58, 0x51,
		0x46, 0x7a, 0x5a, 0x3a, 0xfb, 0xf9, 0x63, 0x75, 0x67, 0x79, 0x93, 0xab, 0x2d, 0x23, 0x72, 0x6d,
		0x67, 0x10, 0xa4, 0xc6, 0x9e, 0x72, 0xd6, 0x46, 0x37, 0x11, 0xeb, 0xc2, 0xd9, 0x6d, 0x84, 0xb3,
		0x72, 0x49, 0x31, 0xc2, 0xd9, 0x12, 0x06, 0x3e, 0x84, 0xb3, 0x4f, 0x77, 0x67, 0x70, 0x80, 0x9a,
		0x6e, 0x4e, 0xca, 0xdd, 0x89, 0xbb, 0x3d, 0x71, 0xf7, 0x27, 0xea, 0x06, 0xed, 0x66, 0x42, 0x08,
		0x67, 0x1f, 0x8d, 0xc5, 0x10, 0xce, 0x3e, 0xfe, 0xa5, 0x20, 0x9c, 0x2d, 0xc8, 0x1b, 0x5b, 0xf1,
		0xe6, 0x10, 0xce, 0x5a, 0x5f, 0x18, 0xe1, 0xec, 0xb3, 0x5e, 0x1b, 0xc2, 0xd9, 0xfc, 0xdf, 0x1f,
		0xc2, 0xd9, 0xe7, 0xba, 0x4d, 0x84, 0xb3, 0xd6, 0xdd, 0x26, 0x4a, 0x43, 0x84, 0xb3, 0x65, 0x0b,
		0x24, 0x98, 0x33, 0xc2, 0x59, 0x47, 0xc9, 0x01, 0xb9, 0xe7, 0x40, 0x38, 0xfb, 0x8c, 0xd0, 0xcf,
		0x05, 0xbc, 0xd5, 0xef, 0x6b, 0xa3, 0xb8, 0xf7, 0x96, 0x75, 0xcf, 0xb5, 0x3d, 0xf8, 0x83, 0x16,
		0xb9, 0xb0, 0x16, 0xf4, 0xfe, 0x6a, 0x1c, 0x00, 0xbd, 0xff, 0x3d, 0x6f, 0x1d, 0x7a, 0xdf, 0x79,
		0x3f, 0x5b, 0x7c, 0x7a, 0x7f, 0xe2, 0xb7, 0xfc, 0x68, 0x7c, 0x7d, 0x61, 0x62, 0xea, 0x7c, 0xdd,
		0x80, 0x3a, 0xd4, 0xf9, 0x5a, 0x31, 0x78, 0xea, 0x7c, 0x73, 0x32, 0x15, 0xea, 0x7c, 0x8b, 0x97,
		0x62, 0x92, 0x66, 0xd0, 0x9f, 0xe7, 0x71, 0x8b, 0x21, 0xf9, 0x27, 0x09, 0x23, 0x09, 0x23, 0x09,
		0x23, 0x09, 0x43, 0xf2, 0x5f, 0xb2, 0x70, 0x4d, 0x7f, 0x1e, 0x82, 0x35, 0xc1, 0x9a, 0x60, 0x4d,
		0xb0, 0x26, 0x58, 0x13, 0xac, 0x1d, 0x0f, 0xd6, 0xb1, 0xb9, 0x1e, 0xa6, 0x46, 0x4e, 0xa8, 0xf3,
		0xd5, 0x7a, 0x04, 0x26, 0x02, 0x13, 0x81, 0x89, 0xc0, 0x54, 0xa0, 0xc0, 0x24, 0x22, 0x0a, 0x41,
		0xae, 0xf3, 0x5d, 0x6f, 0x46, 0x54, 0xf4, 0x21, 0x59, 0xb5, 0x2c, 0x5e, 0xad, 0x5c, 0x22, 0x71,
		0xc7, 0xb9, 0xc4, 0xeb, 0xd1, 0xa8, 0xc1, 0x2d, 0x99, 0x88, 0x83, 0xda, 0xcc, 0x47, 0xbb, 0xb9,
		0x3d, 0xdc, 0x5c, 0x5e, 0x6e, 0x8e, 0xea, 0xf5, 0xd2, 0x8a, 0x31, 0x4a, 0xef, 0xf8, 0x31, 0xdb,
		0x52, 0x8a, 0x2e, 0xce, 0xa9, 0x51, 0x29, 0x2a, 0x8f, 0x26, 0x53, 0x0b, 0xbf, 0xb8, 0x18, 0x0c,
		0x1a, 0x0c, 0x1a, 0x0c, 0x1a, 0x0c, 0x5a, 0x81, 0x18, 0x34, 0x8a, 0xe1, 0x9d, 0xcb, 0x2d, 0x29,
		0x86, 0xb7, 0x62, 0xf0, 0x14, 0xc3, 0xe7, 0x64, 0x2a, 0x14, 0xc3, 0x17, 0x2b, 0x15, 0x20, 0xd1,
		0xf0, 0x18, 0xa8, 0x43, 0x82, 0x41, 0x82, 0x41, 0x82, 0x41, 0x82, 0x21, 0x9e, 0x60, 0x30, 0x50,
		0x87, 0xdc, 0x02, 0xb0, 0x48, 0x6e, 0x41, 0x6e, 0x41, 0x6e, 0x51, 0xda, 0xdc, 0x82, 0x81, 0x3a,
		0xaa, 0x03, 0x75, 0x6c, 0x0c, 0x4c, 0xf1, 0xd4, 0xe7, 0xe9, 0xb4, 0xa7, 0x4f, 0xe5, 0xea, 0x38,
		0x9d, 0x17, 0x0e, 0x99, 0xba, 0x2d, 0x13, 0xd7, 0x37, 0xed, 0x4a, 0xae, 0x53, 0x8b, 0xf4, 0x8c,
		0x39, 0x1f, 0x33, 0x7e, 0xbe, 0xd1, 0xe5, 0x60, 0x70, 0x95, 0x71, 0x62, 0xfc, 0xeb, 0xf1, 0x20,
		0x0d, 0x47, 0x03, 0xe3, 0x4f, 0x6c, 0x23, 0x3f, 0x02, 0xe8, 0x2e, 0x6b, 0xba, 0xbf, 0x46, 0x4e,
		0x47, 0x25, 0xdf, 0x39, 0x50, 0xb9, 0x73, 0x3b, 0x36, 0xb8, 0x1c, 0x7b, 0xdc, 0x8d, 0x2d, 0xae,
		0xc6, 0x3a, 0x37, 0x63, 0x9d, 0x8b, 0xb1, 0xca, 0xbd, 0xb8, 0x15, 0x7c, 0xf2, 0x9e, 0xdb, 0x54,
		0xe9, 0xcd, 0xcf, 0x94, 0xa5, 0xf9, 0x72, 0x56, 0xe6, 0x0f, 0x5a, 0x1f, 0x30, 0xb7, 0xc9, 0x80,
		0x39, 0xfb, 0x8e, 0x47, 0xcc, 0x01, 0x89, 0x39, 0x22, 0x11, 0x87, 0x54, 0x8c, 0x44, 0xd0, 0xda,
		0x80, 0x39, 0x13, 0x05, 0x17, 0x03, 0xd3, 0xb7, 0x7f, 0x0f, 0x36, 0x5f, 0x88, 0xde, 0x12, 0xab,
		0xf9, 0x12, 0xee, 0x07, 0xa5, 0x5d, 0xbd, 0x9c, 0xcb, 0x97, 0x72, 0xfd, 0xe2, 0x21, 0x40, 0x3c,
		0x14, 0x88, 0x86, 0x04, 0x7b, 0xac, 0xa3, 0x47, 0x6f, 0x89, 0xa7, 0x21, 0xd3, 0x2d, 0xe8, 0x64,
		0x77, 0xb9, 0x36, 0x75, 0xce, 0xed, 0x3e, 0xe5, 0x52, 0xae, 0x41, 0xed, 0x67, 0x89, 0x39, 0x99,
		0x3d, 0x5e, 0x73, 0xf2, 0x74, 0x6b, 0x34, 0xaf, 0xdd, 0x4c, 0x3c, 0xbb, 0xb5, 0x74, 0xda, 0xe4,
		0x1f, 0xef, 0x49, 0xa6, 0x49, 0xa6, 0x49, 0xa6, 0xd7, 0x33, 0x99, 0xb6, 0xc4, 0xfe, 0xc9, 0xb0,
		0x80, 0x96, 0x1d, 0x18, 0x29, 0x23, 0x29, 0x23, 0x29, 0xa3, 0x9b, 0x29, 0xa3, 0x2d, 0x87, 0x98,
		0x2d, 0x10, 0x0c, 0x06, 0xc3, 0xbf, 0xee, 0x20, 0x7a, 0x90, 0xd8, 0xb7, 0xe7, 0xf9, 0x09, 0xbd,
		0xbf, 0xb4, 0x65, 0x33, 0x93, 0x60, 0x22, 0xb3, 0xc5, 0x2c, 0x32, 0x92, 0xf3, 0x3f, 0x96, 0xdb,
		0x3f, 0x58, 0x66, 0x28, 0xc5, 0xc2, 0x8e, 0x64, 0xf8, 0x91, 0x0f, 0x43, 0xd2, 0xe1, 0x48, 0x2d,
		0x2c, 0xa9, 0x85, 0x27, 0x95, 0x30, 0x65, 0x37, 0x5c, 0x59, 0x0e, 0x5b, 0xd9, 0x8e, 0x59, 0x67,
		0x3c, 0xef, 0x9d, 0x37, 0xfb, 0xcc, 0xe7, 0x3d, 0x34, 0xbe, 0x55, 0xd0, 0x42, 0xe0, 0x62, 0x21,
		0x21, 0xcb, 0x0c, 0x69, 0xb6, 0x8e, 0x43, 0x4c, 0xa9, 0x99, 0xfc, 0x53, 0xab, 0x19, 0xa5, 0xe7,
		0x0a, 0x6d, 0x5a, 0xbb, 0xb8, 0x1a, 0x59, 0xe1, 0x4e, 0xed, 0x19, 0xfb, 0x17, 0x2b, 0x0c, 0x76,
		0x90, 0x0a, 0x8c, 0x94, 0xb0, 0x55, 0xda, 0x2d, 0x4a, 0x52, 0x6c, 0x43, 0x52, 0x40, 0x52, 0x40,
		0x52, 0x40, 0x52, 0x40, 0x52, 0x40, 0x52, 0x40, 0x52, 0x40, 0x52, 0x40, 0x52, 0x40, 0x52, 0x40,
		0x52, 0x40, 0x52, 0x40, 0x52, 0x88, 0x93, 0x14, 0x36, 0x13, 0x4a, 0xb7, 0x38, 0x0a, 0x0b, 0xfa,
		0x61, 0x8b, 0x14, 0x05, 0x35, 0x8f, 0xee, 0x1c, 0x92, 0xb2, 0x56, 0x3c, 0xd6, 0x72, 0x87, 0x18,
		0x6e, 0xd6, 0x3b, 0xda, 0xe1, 0xe6, 0xac, 0x72, 0x72, 0xd6, 0x2b, 0x1e, 0xb7, 0xa9, 0x78, 0x94,
		0x4b, 0x6e, 0xa8, 0x78, 0x2c, 0x61, 0x10, 0x44, 0x3e, 0xe8, 0x00, 0x1f, 0x86, 0x7c, 0x50, 0x9c,
		0xef, 0xe2, 0x9a, 0xa5, 0x10, 0x7c, 0x16, 0xd7, 0x2c, 0xee, 0x90, 0x0b, 0xc8, 0x07, 0x49, 0xa5,
		0x49, 0xa5, 0xcb, 0xd4, 0x96, 0xee, 0x5e, 0x2e, 0x4d, 0x77, 0x3a, 0x6d, 0x93, 0x77, 0xc8, 0xd4,
		0x0b, 0xde, 0xa6, 0xee, 0x6b, 0xe3, 0x76, 0xa6, 0x5b, 0xdd, 0x0b, 0x45, 0xf3, 0x9d, 0x00, 0xb8,
		0xc9, 0x1b, 0x98, 0xbf, 0xf6, 0x9c, 0xc6, 0x9c, 0x56, 0x8e, 0xc3, 0x24, 0xad, 0xa6, 0x69, 0x3e,
		0xb9, 0x64, 0xe5, 0x24, 0x8c, 0x6a, 0x03, 0x33, 0x41, 0x61, 0x39, 0x75, 0xf0, 0xad, 0x9c, 0x04,
		0x9f, 0x16, 0x3e, 0x71, 0xeb, 0x97, 0x9d, 0x9d, 0xbd, 0xfd, 0x9d, 0x9d, 0xcd, 0xfd, 0x57, 0xfb,
		0x9b, 0xaf, 0x77, 0x77, 0xb7, 0xf6, 0xb6, 0x72, 0xe8, 0x4f, 0x5c, 0x39, 0x8d, 0xfb, 0x26, 0x36,
		0xfd, 0x37, 0x93, 0x1d, 0x8e, 0xc6, 0x83, 0x41, 0x9e, 0x1f, 0x79, 0x96, 0x98, 0x38, 0x97, 0xd6,
		0xc2, 0xcf, 0x35, 0xa0, 0x9c, 0xfd, 0x9e, 0x96, 0xbf, 0xcb, 0xc1, 0xb9, 0x29, 0x38, 0xb5, 0xe7,
		0xf9, 0xb0, 0xef, 0xf7, 0x3c, 0xdf, 0xf7, 0x9b, 0xdf, 0x69, 0x6a, 0x79, 0x99, 0x98, 0xb0, 0x69,
		0x3d, 0xc3, 0xa2, 0xe4, 0x2c, 0xe9, 0xfb, 0x0c, 0xe8, 0xe9, 0xaf, 0xff, 0x3b, 0x5e, 0x7d, 0x65,
		0x64, 0x4c, 0xec, 0x5f, 0xc5, 0xc3, 0xf1, 0xe8, 0xfb, 0xeb, 0xeb, 0xee, 0x46, 0xe0, 0x2d, 0x7c,
		0xd8, 0x77, 0x9a, 0xe1, 0xf3, 0x2e, 0x2f, 0x9e, 0xcd, 0x60, 0xe5, 0xc1, 0x50, 0xe5, 0xc7, 0x40,
		0xe5, 0xc5, 0x30, 0xe5, 0xce, 0x20, 0xe5, 0xce, 0x10, 0xe5, 0xca, 0x00, 0xc9, 0x3a, 0xce, 0xe7,
		0x92, 0xf9, 0x0b, 0xa7, 0xe6, 0xf9, 0x2f, 0xfa, 0xfe, 0x49, 0x7c, 0xee, 0x9b, 0xce, 0xe7, 0x36,
		0x31, 0x37, 0x6a, 0x39, 0x4f, 0x0a, 0x39, 0x7f, 0xaa, 0x38, 0x6f, 0x4a, 0xd8, 0x1a, 0xf5, 0x6b,
		0x8d, 0xe2, 0xb5, 0x42, 0xe5, 0xea, 0x66, 0x6f, 0x79, 0xdd, 0xd6, 0x55, 0x82, 0xcb, 0xd0, 0x4f,
		0x82, 0xcb, 0xd0, 0x42, 0x97, 0xf3, 0xbb, 0x8f, 0xa6, 0xb9, 0xb9, 0x3b, 0xee, 0xc0, 0x96, 0x5b,
		0xb0, 0xee, 0x1e, 0xac, 0xbb, 0x09, 0xab, 0xee, 0xc2, 0x4d, 0xee, 0x32, 0xf7, 0xe6, 0xe6, 0xf3,
		0x33, 0x6f, 0xaf, 0x3c, 0x29, 0x5b, 0x81, 0x9e, 0x6c, 0x54, 0x28, 0xa9, 0x39, 0x21, 0x31, 0x67,
		0x24, 0xe2, 0x94, 0xf2, 0x75, 0x4e, 0x39, 0x3b, 0x29, 0x6b, 0xce, 0xea, 0xce, 0x69, 0xf5, 0xfb,
		0x39, 0x4f, 0x7a, 0x79, 0xd8, 0x7b, 0x65, 0x4b, 0xd1, 0x99, 0x4d, 0xda, 0xad, 0xc9, 0xb9, 0x37,
		0x29, 0x37, 0x27, 0xee, 0xee, 0xc4, 0xdd, 0x9e, 0xa8, 0xfb, 0xb3, 0xe3, 0x06, 0x2d, 0xb9, 0x43,
		0xeb, 0x6e, 0x31, 0x5b, 0xc0, 0x72, 0xcb, 0xca, 0x7b, 0xc7, 0xd2, 0x7a, 0xa3, 0x11, 0x01, 0x47,
		0x29, 0xe6, 0x30, 0x25, 0x1d, 0xa7, 0xbc, 0x03, 0x95, 0x76, 0xa4, 0x6a, 0x0e, 0x55, 0xcd, 0xb1,
		0xaa, 0x38, 0x58, 0xbb, 0x8e, 0xd6, 0xb2, 0xc3, 0x15, 0x73, 0xbc, 0xd9, 0x42, 0x66, 0x10, 0x5e,
		0x85, 0x17, 0x03, 0xe3, 0xdf, 0x9a, 0xa2, 0x3f, 0x1a, 0x0e, 0xc2, 0xde, 0x67, 0xb9, 0xc3, 0x90,
		0x15, 0xd8, 0xaf, 0xfe, 0x1e, 0x42, 0x06, 0x2a, 0xd3, 0x5f, 0x41, 0xdc, 0x71, 0x6b, 0x38, 0x70,
		0x3d, 0x47, 0xae, 0xe5, 0xd0, 0xd5, 0x1d, 0xbb, 0xba, 0x83, 0x57, 0x75, 0xf4, 0x32, 0x0e, 0x5f,
		0xc8, 0xf1, 0x67, 0x3b, 0x29, 0xd6, 0xaf, 0xe1, 0xde, 0x79, 0x1d, 0x98, 0xe0, 0x32, 0x36, 0x97,
		0x92, 0x07, 0x76, 0x8e, 0x97, 0xf7, 0x05, 0xd7, 0x6c, 0x66, 0x15, 0x3b, 0x3d, 0x3f, 0x1e, 0x0d,
		0x07, 0x07, 0xf1, 0x70, 0x9c, 0x86, 0xd1, 0xd5, 0x2c, 0xf2, 0x64, 0x7f, 0x7d, 0xfb, 0x3f, 0xfd,
		0xbe, 0xb9, 0x0c, 0xa3, 0x30, 0x0d, 0x87, 0x51, 0xf2, 0xf0, 0x7f, 0xca, 0xfe, 0xcb, 0xb4, 0xc8,
		0xe6, 0x45, 0x39, 0xac, 0x5e, 0xc0, 0xe2, 0x2b, 0xb1, 0xe9, 0x99, 0xf0, 0xc6, 0xc8, 0xc3, 0x8e,
		0xf9, 0xc2, 0x42, 0xa7, 0x5a, 0xb2, 0xef, 0x55, 0xb6, 0xa8, 0x40, 0xff, 0xab, 0xf9, 0x9f, 0x73,
		0xf0, 0x1a, 0x78, 0x0d, 0xbc, 0x06, 0x5e, 0x03, 0xaf, 0x89, 0x9d, 0x57, 0xb9, 0x3e, 0x5b, 0xf7,
		0xf0, 0xda, 0x56, 0xa9, 0x5e, 0xa1, 0xf9, 0x94, 0xc6, 0x81, 0x3f, 0x8e, 0x92, 0x34, 0xb8, 0x18,
		0x08, 0xbf, 0xcc, 0xd8, 0x5c, 0x9a, 0xd8, 0x44, 0x53, 0x2f, 0xf8, 0x87, 0xa8, 0x0f, 0x90, 0xf5,
		0xb9, 0x4b, 0x96, 0xdb, 0x7a, 0x7b, 0xe8, 0xed, 0xbf, 0xde, 0xda, 0xf2, 0x7c, 0xaf, 0xda, 0xbf,
		0x31, 0x71, 0x1a, 0x26, 0x53, 0xf5, 0x8c, 0x37, 0xbc, 0xf4, 0xe6, 0xaa, 0x2a, 0x6f, 0x2a, 0xab,
		0xf2, 0xc2, 0xc8, 0x7b, 0xf3, 0xae, 0x29, 0xec, 0x9f, 0x35, 0x83, 0xd3, 0xaa, 0x20, 0x75, 0x67,
		0x24, 0x3f, 0xeb, 0x7c, 0x17, 0xed, 0x78, 0xb5, 0x32, 0x6e, 0x3d, 0xdd, 0x8a, 0xc4, 0xbf, 0xf3,
		0x97, 0x17, 0xe5, 0x5c, 0xed, 0x9c, 0x14, 0xf7, 0xd1, 0x26, 0x9b, 0x98, 0xa8, 0x2f, 0x9f, 0xdf,
		0x4e, 0x57, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9,
		0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0x25, 0xb9, 0xcd, 0x2f,
		0xb9, 0xf5, 0xaf, 0x83, 0x4f, 0x3a, 0x09, 0xee, 0x74, 0x65, 0x92, 0x33, 0x92, 0x33, 0x92, 0x33,
		0x92, 0x33, 0x92, 0x33, 0xb1, 0xf3, 0x3a, 0x0e, 0xa3, 0xf4, 0x17, 0x85, 0xd4, 0x6c, 0x57, 0x70,
		0xc9, 0x56, 0x10, 0x5d, 0xad, 0x45, 0xde, 0x72, 0x12, 0x46, 0x7a, 0x79, 0xc0, 0x87, 0x60, 0x30,
		0x36, 0x72, 0x51, 0xee, 0xde, 0xfa, 0x6f, 0xe3, 0xa0, 0x97, 0x86, 0xc3, 0xe8, 0x28, 0xbc, 0x0a,
		0xf3, 0x6a, 0x07, 0xf8, 0x7d, 0x47, 0xcb, 0x5c, 0x05, 0xe9, 0x6d, 0x25, 0xdc, 0xf3, 0xbb, 0xf0,
		0x39, 0xec, 0xb5, 0x96, 0x4d, 0x2f, 0xf8, 0xa4, 0x6f, 0x7a, 0xdb, 0xbb, 0xbb, 0x18, 0x9f, 0xb6,
		0xf1, 0x91, 0x4a, 0xba, 0x9d, 0x4a, 0x16, 0x5a, 0x53, 0x25, 0x34, 0xb7, 0xee, 0x2e, 0x29, 0x96,
		0xe8, 0x0c, 0xb9, 0xd0, 0x82, 0x70, 0xe1, 0xe7, 0x8d, 0xac, 0x3f, 0x52, 0xf6, 0xd3, 0x46, 0xd6,
		0x1e, 0x60, 0x43, 0x44, 0x04, 0xeb, 0x49, 0xb4, 0x9c, 0x6c, 0x1a, 0x13, 0xbf, 0x9b, 0x3e, 0xfc,
		0xdd, 0x8f, 0xdd, 0xea, 0x65, 0xd8, 0x9e, 0x3c, 0xfa, 0xfc, 0x87, 0x6e, 0xb5, 0xdf, 0xbf, 0xed,
		0x3c, 0x6e, 0x73, 0xf6, 0xbe, 0xfd, 0x33, 0xf2, 0xc5, 0xea, 0xe8, 0x41, 0x9b, 0x33, 0xf9, 0xef,
		0xb3, 0x36, 0x96, 0x47, 0x29, 0x7a, 0x1a, 0x2a, 0xec, 0x6d, 0x54, 0xd8, 0xc5, 0xa1, 0x62, 0x50,
		0x61, 0xa3, 0xc2, 0xfe, 0xe6, 0x8e, 0xa1, 0xc2, 0x46, 0x85, 0x5d, 0x4c, 0x07, 0xae, 0xe7, 0xc8,
		0xb5, 0x1c, 0xba, 0xba, 0x63, 0x57, 0x77, 0xf0, 0xaa, 0x8e, 0x5e, 0x36, 0xa9, 0x46, 0x85, 0x6d,
		0x11, 0x2f, 0xa3, 0xc2, 0x76, 0x91, 0x7a, 0x41, 0x85, 0x9d, 0x1f, 0xac, 0xa3, 0x50, 0x1d, 0xbc,
		0x06, 0x5e, 0x03, 0xaf, 0x81, 0xd7, 0xc0, 0x6b, 0x39, 0x9d, 0x57, 0x0a, 0xd5, 0xf3, 0xa2, 0x42,
		0x28, 0x54, 0x97, 0xb5, 0x5c, 0x0a, 0xd5, 0x9f, 0x16, 0xa4, 0x28, 0x54, 0x5f, 0x15, 0xb7, 0x28,
		0x54, 0x57, 0x5b, 0x8d, 0x42, 0xf5, 0xc7, 0x9b, 0x2c, 0x2a, 0x6c, 0x92, 0x5b, 0x92, 0x5b, 0x92,
		0x5b, 0x92, 0x5b, 0x92, 0x5b, 0x92, 0x5b, 0x92, 0x5b, 0x92, 0x5b, 0x92, 0x5b, 0x92, 0x5b, 0x92,
		0x5b, 0x92, 0x5b, 0x92, 0xdb, 0x52, 0x24, 0xb7, 0xa8, 0xb0, 0x49, 0xce, 0x48, 0xce, 0x48, 0xce,
		0x48, 0xce, 0xd6, 0x25, 0x39, 0x43, 0x85, 0x5d, 0xa2, 0xbc, 0x05, 0x15, 0x36, 0x42, 0x58, 0x54,
		0xd8, 0x18, 0x1f, 0x2a, 0x6c, 0x52, 0x49, 0x9d, 0x15, 0x50, 0x61, 0x0b, 0xa9, 0xb0, 0x25, 0x34,
		0xb0, 0x9e, 0x83, 0x22, 0xec, 0xf6, 0xf4, 0xb9, 0x8b, 0xaa, 0xc1, 0x2e, 0xd4, 0xf8, 0x6e, 0xa1,
		0xb3, 0xe6, 0xec, 0x19, 0xab, 0x58, 0x55, 0xcc, 0xbb, 0x74, 0xaa, 0xec, 0x9c, 0xa7, 0xfc, 0xad,
		0xdd, 0x82, 0xa5, 0x57, 0xe6, 0xef, 0xdd, 0x9f, 0xbd, 0x0c, 0x3b, 0x86, 0x9e, 0xe5, 0xdb, 0xcb,
		0xcb, 0x59, 0x3a, 0xb9, 0x76, 0x09, 0x4e, 0xeb, 0x84, 0xa6, 0x04, 0x81, 0x29, 0x47, 0x58, 0x4a,
		0x11, 0x94, 0xe2, 0x84, 0xa4, 0x38, 0x01, 0x29, 0x4a, 0x38, 0x16, 0x2b, 0x56, 0x5b, 0x27, 0x10,
		0x05, 0xa5, 0xa5, 0x12, 0x52, 0xd2, 0x4c, 0x3a, 0xfa, 0xf2, 0xe5, 0xac, 0xa1, 0xd1, 0xc6, 0xb2,
		0x67, 0x5e, 0xe7, 0x88, 0x38, 0x1a, 0x0d, 0x3e, 0xdb, 0x6e, 0x22, 0x71, 0x17, 0x10, 0x17, 0x57,
		0xb3, 0x1b, 0x0f, 0xb7, 0x88, 0x87, 0x8f, 0x8a, 0x87, 0xf1, 0x68, 0x38, 0x20, 0x20, 0x16, 0x30,
		0x20, 0x4e, 0x5f, 0x1c, 0x11, 0xd1, 0x93, 0xe8, 0xbe, 0x53, 0xe9, 0xcd, 0x4f, 0xbd, 0x50, 0xd7,
		0x33, 0x91, 0xbe, 0x7b, 0xe2, 0x6d, 0xcf, 0x36, 0xcb, 0xd9, 0xf6, 0xcc, 0xb2, 0x0b, 0x95, 0x76,
		0xa5, 0x6a, 0x2e, 0x55, 0xcd, 0xb5, 0xea, 0xb8, 0x58, 0xbb, 0xae, 0xd6, 0xb2, 0xcb, 0x15, 0x73,
		0xbd, 0xd9, 0x42, 0xfd, 0x5b, 0xb5, 0x92, 0x6f, 0x3e, 0x8d, 0x86, 0x71, 0xaa, 0xd6, 0xf7, 0x6c,
		0xf5, 0xd7, 0x28, 0xb3, 0x62, 0xab, 0x55, 0xfb, 0xef, 0xda, 0x61, 0xa7, 0xdb, 0x3a, 0x3d, 0xeb,
		0xd4, 0x10, 0x6e, 0x15, 0x20, 0x0e, 0x6a, 0xc4, 0x43, 0xc5, 0xb8, 0xa8, 0x15, 0x1f, 0xd5, 0xe3,
		0xa4, 0x7a, 0xbc, 0xd4, 0x8d, 0x9b, 0x32, 0xf1, 0x53, 0x28, 0x8e, 0x66, 0x5b, 0xa9, 0x57, 0x1d,
		0x38, 0x8f, 0x6c, 0xb3, 0x2e, 0x69, 0xe9, 0xe4, 0x8b, 0x28, 0xc8, 0xb8, 0x76, 0x04, 0xd7, 0xac,
		0x45, 0xe3, 0x6b, 0x79, 0x7f, 0xd1, 0x19, 0xb6, 0xd3, 0x38, 0x8c, 0xae, 0x54, 0x6a, 0xa8, 0x2a,
		0x9b, 0x93, 0x77, 0x5d, 0x3d, 0x3c, 0xac, 0x35, 0xe7, 0x31, 0x5d, 0xa1, 0x82, 0x6c, 0x6b, 0xaa,
		0x95, 0x11, 0x07, 0x16, 0xc2, 0x87, 0x79, 0xe1, 0x8d, 0xd7, 0xa7, 0xce, 0x51, 0xe1, 0x75, 0x2f,
		0xbd, 0x69, 0x95, 0x52, 0xb5, 0xe5, 0xf7, 0x7c, 0xe0, 0x6d, 0x95, 0xb4, 0x68, 0xec, 0x0b, 0xfa,
		0xa3, 0x27, 0x27, 0x73, 0xe1, 0xb5, 0x13, 0xc9, 0xdc, 0xf2, 0xd7, 0x20, 0x99, 0x23, 0x99, 0x23,
		0x99, 0x23, 0x99, 0x23, 0x99, 0x23, 0x99, 0x23, 0x99, 0x23, 0x99, 0x23, 0x99, 0x23, 0x99, 0x23,
		0x99, 0x23, 0x99, 0x23, 0x99, 0x5b, 0x6d, 0x12, 0xca, 0x37, 0x72, 0x2a, 0x37, 0x71, 0x64, 0x1b,
		0x64, 0x1b, 0x64, 0x1b, 0x64, 0x1b, 0x64, 0x1b, 0x8c, 0x20, 0x2a, 0xdc, 0x08, 0x22, 0x21, 0x7b,
		0x3c, 0x0e, 0x93, 0xb4, 0x9a, 0xa6, 0xb1, 0xac, 0x4d, 0x9e, 0x84, 0x51, 0x6d, 0x30, 0xed, 0xb9,
		0x26, 0x2c, 0xcd, 0xaf, 0x9c, 0x04, 0x9f, 0x16, 0x56, 0xde, 0xfa, 0x65, 0x67, 0x67, 0x6f, 0x7f,
		0x67, 0x67, 0x73, 0xff, 0xd5, 0xfe, 0xe6, 0xeb, 0xdd, 0xdd, 0xad, 0xbd, 0x2d, 0xc9, 0x3e, 0x28,
		0xa7, 0x71, 0xdf, 0xc4, 0xa6, 0xff, 0xe6, 0xb3, 0x7c, 0x50, 0xcb, 0xda, 0xcd, 0x24, 0x26, 0x96,
		0x8e, 0x67, 0x8a, 0x0d, 0x12, 0x17, 0x83, 0xf9, 0xf0, 0x76, 0xf7, 0xfd, 0x8b, 0xcf, 0x1a, 0x09,
		0xb9, 0x0b, 0x9d, 0x11, 0x97, 0x02, 0xfb, 0xd4, 0x12, 0xca, 0x9a, 0x29, 0x6a, 0x1c, 0xea, 0xb3,
		0xc9, 0x86, 0xde, 0xbe, 0x5a, 0x12, 0xd5, 0x47, 0x6f, 0x9f, 0xf2, 0x6d, 0xa3, 0xca, 0x2d, 0x23,
		0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a,
		0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a, 0x89, 0x2a, 0x89, 0xaa, 0x93, 0x2b, 0xd0, 0x53, 0xd1, 0x6e,
		0xbf, 0xb7, 0x85, 0x06, 0x24, 0x1b, 0x22, 0x22, 0x7b, 0xcf, 0xa1, 0x0e, 0x70, 0x93, 0x87, 0x6f,
		0x4e, 0x9f, 0xbd, 0x3b, 0xcb, 0xd3, 0x8b, 0xda, 0x5b, 0xd1, 0x6a, 0xb7, 0xbe, 0x20, 0x35, 0x72,
		0x9d, 0x1e, 0x24, 0x7a, 0x7b, 0x8a, 0x37, 0x7a, 0xd8, 0xa6, 0xd1, 0x43, 0x81, 0xb0, 0x21, 0x8d,
		0x1e, 0x68, 0xf4, 0xf0, 0xed, 0x2d, 0xa3, 0xd1, 0x03, 0xda, 0xa0, 0xbc, 0xff, 0xa0, 0x0d, 0x2a,
		0x5c, 0x3c, 0x54, 0x8c, 0x8b, 0xda, 0xdc, 0x09, 0x97, 0x20, 0x5c, 0x82, 0xe4, 0xb7, 0x95, 0x68,
		0x83, 0xd0, 0x06, 0x59, 0x5d, 0x1d, 0x6d, 0x10, 0xda, 0x20, 0xd9, 0xaf, 0x80, 0x36, 0xa8, 0x50,
		0xab, 0xd0, 0xe8, 0x81, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e,
		0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x8e, 0x64, 0x6e, 0xa5, 0x49,
		0xd0, 0xe8, 0x81, 0x6c, 0x83, 0x6c, 0x83, 0x6c, 0x83, 0x6c, 0x63, 0x5d, 0xb3, 0x0d, 0xf4, 0x33,
		0xe8, 0x67, 0xee, 0x6f, 0x17, 0xfa, 0x19, 0xf4, 0x33, 0xe8, 0x67, 0xd0, 0xcf, 0xa0, 0x9f, 0xc9,
		0xfd, 0x50, 0xd3, 0xe8, 0xe1, 0x7b, 0xb6, 0x8f, 0x46, 0x0f, 0x24, 0xaa, 0x24, 0xaa, 0x24, 0xaa,
		0x24, 0xaa, 0x24, 0xaa, 0x24, 0xaa, 0x24, 0xaa, 0x24, 0xaa, 0x24, 0xaa, 0x24, 0xaa, 0x24, 0xaa,
		0x24, 0xaa, 0x24, 0xaa, 0x8e, 0xac, 0x40, 0xa3, 0x07, 0xb9, 0x46, 0x0f, 0x12, 0x1a, 0x7b, 0xcf,
		0xcd, 0x3e, 0x0f, 0xed, 0xe9, 0xa3, 0x17, 0xb5, 0xcd, 0xc3, 0x8b, 0x02, 0x9d, 0x3c, 0xa9, 0x13,
		0xe7, 0xf2, 0x49, 0xab, 0x58, 0xed, 0xcb, 0xe1, 0xd8, 0xd9, 0xb2, 0x73, 0xaa, 0xf2, 0xb7, 0x79,
		0x0b, 0xf6, 0x5e, 0xe9, 0xcd, 0xd9, 0x3f, 0x3b, 0x76, 0x9e, 0x01, 0x76, 0xab, 0x2d, 0x7a, 0x2c,
		0xb7, 0x45, 0xb1, 0x4e, 0x91, 0x4a, 0x50, 0xa2, 0x8b, 0x14, 0xe8, 0xc5, 0xd5, 0xc8, 0xe6, 0x01,
		0x17, 0x4a, 0x94, 0xc4, 0x19, 0x4e, 0xf1, 0xe4, 0xe7, 0x6b, 0x06, 0x73, 0xf2, 0xde, 0x88, 0xd1,
		0x9e, 0x44, 0x13, 0x93, 0xca, 0x3c, 0x2c, 0xfa, 0xb3, 0x40, 0x25, 0xd4, 0x45, 0x6a, 0x79, 0x59,
		0x99, 0x6e, 0x52, 0x9b, 0x52, 0xdd, 0xa4, 0x36, 0xcb, 0xd9, 0x4d, 0xca, 0xae, 0x3b, 0xd5, 0xe2,
		0x9f, 0x68, 0x26, 0x65, 0xd5, 0xdd, 0x96, 0x83, 0x9c, 0x10, 0xbb, 0x17, 0xba, 0xbb, 0x92, 0xef,
		0x9b, 0x28, 0x0d, 0xd3, 0xcf, 0x32, 0x77, 0x42, 0x19, 0xb2, 0x14, 0xe0, 0xd7, 0x2b, 0xf5, 0xd9,
		0xa3, 0xbd, 0x09, 0x12, 0x23, 0x5f, 0xeb, 0x50, 0x7d, 0x5b, 0xef, 0xb6, 0x27, 0xff, 0x5f, 0xe7,
		0xf7, 0xa6, 0x94, 0x28, 0xa9, 0xf2, 0x21, 0x18, 0x8c, 0x4d, 0x22, 0x2a, 0xa8, 0x56, 0xba, 0xb1,
		0xa8, 0x37, 0x3f, 0xec, 0x74, 0xdf, 0x1e, 0x9f, 0xfe, 0xa7, 0xdd, 0xac, 0x1d, 0x56, 0xca, 0x48,
		0x21, 0x6b, 0x6e, 0xec, 0x71, 0xf5, 0x4d, 0xed, 0xb8, 0x76, 0xd4, 0x3d, 0x6b, 0xd4, 0x0f, 0xab,
		0xed, 0x0e, 0xfb, 0x9b, 0xf3, 0xfe, 0xb2, 0xaf, 0x36, 0xf6, 0x75, 0x0f, 0xbb, 0xb5, 0xbc, 0xbf,
		0xec, 0x6b, 0xee, 0xfb, 0x7a, 0xbc, 0xfd, 0xa1, 0xd9, 0xe8, 0xd6, 0x3e, 0x34, 0x1b, 0xec, 0x6a,
		0xde, 0xbb, 0xfa, 0xa1, 0x79, 0xdc, 0x66, 0x57, 0x73, 0xdc, 0xd5, 0x57, 0x93, 0x5d, 0x9d, 0x46,
		0xb0, 0x93, 0xb3, 0xe3, 0x0e, 0xbe, 0xc0, 0xde, 0xfe, 0xe2, 0x69, 0xed, 0xed, 0xee, 0x1e, 0xd6,
		0x6b, 0x79, 0x7f, 0xb1, 0xde, 0xfc, 0x77, 0xb7, 0xde, 0xf8, 0x9f, 0x76, 0xa7, 0x2a, 0xd9, 0x5b,
		0x64, 0x8d, 0x36, 0xb5, 0xdb, 0x6e, 0xbe, 0x65, 0x63, 0x6d, 0x6c, 0x2c, 0xc0, 0x36, 0xd7, 0x8d,
		0x6d, 0xb7, 0x3a, 0xb5, 0x6e, 0xf3, 0xf4, 0xb8, 0x7e, 0xf8, 0xfb, 0x14, 0x28, 0xb0, 0xb7, 0xd6,
		0xf6, 0x76, 0x8f, 0xbd, 0xcd, 0x6f, 0x6f, 0x3f, 0x34, 0x1b, 0x3a, 0x84, 0xad, 0x4c, 0x8b, 0xcf,
		0xa2, 0xdf, 0x6b, 0x15, 0x72, 0x22, 0x95, 0x89, 0x82, 0x8b, 0x81, 0xe9, 0xcb, 0x55, 0x13, 0xcc,
		0x17, 0xa4, 0x8e, 0xe0, 0x49, 0x0b, 0x51, 0x47, 0x90, 0xab, 0x75, 0x50, 0x47, 0x40, 0x1d, 0xc1,
		0x37, 0x76, 0x4c, 0xbe, 0x8e, 0xe0, 0x62, 0x38, 0x1c, 0x98, 0x20, 0x92, 0xac, 0x21, 0xd8, 0x22,
		0x24, 0xde, 0xdb, 0x9b, 0xc4, 0x44, 0x7d, 0xbf, 0x37, 0xbc, 0xbe, 0x1e, 0x47, 0x61, 0x3a, 0xeb,
		0x7a, 0x2b, 0x37, 0xb2, 0x71, 0xc5, 0xe2, 0x84, 0x4a, 0x42, 0x25, 0xa1, 0x92, 0x50, 0x49, 0xa8,
		0x5c, 0xd0, 0x6e, 0x08, 0x7a, 0x48, 0x4f, 0xb8, 0x19, 0xb9, 0x6c, 0x13, 0x72, 0x9d, 0xe6, 0xe3,
		0xb7, 0x4d, 0xc7, 0xdb, 0x9d, 0x6a, 0xe3, 0xa8, 0xda, 0x3a, 0x92, 0x6c, 0xa5, 0x31, 0x6d, 0x34,
		0x5e, 0xfb, 0xad, 0x53, 0x6b, 0x1c, 0xd5, 0x44, 0x17, 0xde, 0x9e, 0x92, 0xba, 0xd5, 0xd6, 0x3b,
		0xc9, 0xfe, 0xea, 0x95, 0x57, 0x93, 0x55, 0xdf, 0x9c, 0x76, 0xde, 0x4b, 0x2e, 0xba, 0x33, 0x59,
		0xb4, 0x71, 0xda, 0xa8, 0x95, 0xab, 0xc5, 0x87, 0x7c, 0xd3, 0xf6, 0xdb, 0x37, 0x77, 0xe0, 0xbd,
		0x92, 0x1c, 0x81, 0x30, 0x3f, 0x1b, 0xd6, 0x87, 0x7a, 0x2f, 0x2d, 0x7b, 0x7b, 0x32, 0xac, 0xcf,
		0xf7, 0x5e, 0x0e, 0x27, 0x13, 0x13, 0x3d, 0xf0, 0x24, 0x07, 0x4c, 0x64, 0x2e, 0xef, 0xc0, 0xdb,
		0xa4, 0x99, 0x81, 0x03, 0xe0, 0x45, 0xb4, 0x6f, 0x8f, 0x7c, 0xbf, 0x1e, 0x27, 0xfa, 0xf4, 0x2c,
		0xf5, 0xe7, 0x89, 0xc6, 0x83, 0x81, 0xe4, 0x92, 0xb3, 0xee, 0x21, 0x97, 0xc1, 0x20, 0x31, 0x34,
		0x2b, 0xb0, 0x7f, 0xb2, 0xd6, 0xb5, 0x59, 0x81, 0x55, 0x3d, 0xb9, 0xe7, 0x4e, 0x9b, 0x82, 0x19,
		0x91, 0xb3, 0xc6, 0x1d, 0x0a, 0xae, 0xe2, 0xa0, 0x67, 0x2e, 0xc7, 0x03, 0x3f, 0x36, 0x49, 0x1a,
		0xc4, 0xa9, 0xfd, 0x5e, 0x05, 0xf7, 0x56, 0xa4, 0x6b, 0xc1, 0xca, 0x05, 0xe8, 0x5a, 0xf0, 0x5d,
		0x6f, 0x9d, 0xae, 0x05, 0x6b, 0x1b, 0xac, 0xad, 0x77, 0x2d, 0xb0, 0xdc, 0xce, 0xe5, 0xde, 0xb1,
		0xb4, 0x1e, 0x86, 0x05, 0x1c, 0xa5, 0x98, 0xc3, 0x94, 0x74, 0x9c, 0xf2, 0x0e, 0x54, 0xda, 0x91,
		0xaa, 0x39, 0x54, 0x35, 0xc7, 0xaa, 0xe2, 0x60, 0xcb, 0xc1, 0x3b, 0xd8, 0x76, 0xbc, 0xd9, 0x42,
		0x52, 0x25, 0x5e, 0xf7, 0xce, 0xb7, 0x4c, 0xa9, 0xd7, 0xdd, 0x86, 0x6a, 0x8c, 0x42, 0x9f, 0xb2,
		0x0a, 0xcc, 0x40, 0x2f, 0x40, 0x88, 0xd3, 0x08, 0x75, 0x7a, 0x21, 0x4f, 0x2b, 0xf4, 0xa9, 0x87,
		0x40, 0xf5, 0x50, 0xa8, 0x1a, 0x12, 0x65, 0x42, 0xa3, 0x50, 0x88, 0xcc, 0x76, 0x52, 0x6f, 0xd4,
		0x83, 0x5c, 0x49, 0xde, 0xbd, 0xcc, 0x62, 0x8b, 0xdb, 0x21, 0x07, 0x50, 0xda, 0x9a, 0xb7, 0xba,
		0xfe, 0x9a, 0x77, 0xdc, 0x10, 0xc9, 0xae, 0x3d, 0x77, 0xc8, 0xee, 0x77, 0xb3, 0x0d, 0x68, 0xdd,
		0x3e, 0xbf, 0x55, 0xf2, 0xdb, 0xfe, 0x89, 0xb1, 0x5a, 0x36, 0x3b, 0xed, 0x06, 0x2e, 0x57, 0x28,
		0x2b, 0xd0, 0x77, 0x5d, 0x9c, 0xe5, 0xd9, 0x86, 0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81,
		0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81, 0xe5, 0x81,
		0xe5, 0x81, 0xe5, 0x11, 0x64, 0x79, 0xd6, 0x6c, 0xa8, 0xd9, 0xd7, 0x24, 0x0f, 0x83, 0xcd, 0xa4,
		0x4e, 0xe0, 0xba, 0xd6, 0x0a, 0x0b, 0xd5, 0x73, 0xba, 0x7b, 0xc6, 0xd6, 0xb9, 0x7c, 0x38, 0x1c,
		0xdd, 0xec, 0xf8, 0x83, 0xe0, 0xc2, 0x0c, 0x4c, 0xdf, 0x1f, 0x47, 0x61, 0x2f, 0x48, 0x04, 0x4a,
		0x88, 0x57, 0xae, 0x4a, 0x19, 0xb1, 0x56, 0xf2, 0x48, 0x19, 0x71, 0xf1, 0x92, 0x3f, 0xca, 0x88,
		0xd5, 0x78, 0xce, 0x99, 0x45, 0xf9, 0x83, 0xf0, 0x3a, 0x4c, 0xe5, 0x6e, 0x99, 0x96, 0x56, 0xa5,
		0xa4, 0xd8, 0x55, 0x06, 0x8e, 0xcb, 0xa6, 0xf2, 0x31, 0x6c, 0x5c, 0x36, 0x39, 0xe7, 0x84, 0xb3,
		0x85, 0x84, 0x34, 0x1d, 0xf7, 0x8e, 0xb7, 0x58, 0xf5, 0x89, 0xa0, 0x43, 0x16, 0x77, 0xcc, 0x1a,
		0x0e, 0x5a, 0xcf, 0x51, 0x6b, 0x39, 0x6c, 0x75, 0xc7, 0xad, 0xee, 0xc0, 0x55, 0x1d, 0xb9, 0x8c,
		0x43, 0x17, 0x72, 0xec, 0xe2, 0x0e, 0x3e, 0x5b, 0xf0, 0x3a, 0xf8, 0xe4, 0xdf, 0x5a, 0xed, 0x74,
		0x24, 0xa2, 0x52, 0xe3, 0xeb, 0xa5, 0x6f, 0x21, 0x6c, 0xbc, 0xb2, 0xf7, 0xe4, 0x6a, 0xc1, 0x40,
		0x33, 0x28, 0xe8, 0x07, 0x07, 0xed, 0x20, 0xe1, 0x4c, 0xb0, 0x70, 0x26, 0x68, 0x38, 0x11, 0x3c,
		0x64, 0x83, 0x88, 0x70, 0x30, 0xc9, 0x76, 0x58, 0xfc, 0xde, 0xfd, 0xde, 0x79, 0x1f, 0x87, 0x51,
		0xfa, 0x6a, 0x5b, 0xe3, 0xbc, 0xcf, 0xbc, 0xfb, 0xbe, 0xc2, 0xd2, 0xad, 0x20, 0xba, 0x32, 0xa2,
		0x65, 0x6c, 0x8b, 0x7f, 0x74, 0xfc, 0x9b, 0x37, 0x6b, 0x81, 0xa5, 0xe6, 0x60, 0xb3, 0x2f, 0x31,
		0x9d, 0xf2, 0x2c, 0x1f, 0x5e, 0xef, 0x7d, 0x8f, 0xb7, 0x71, 0xd0, 0x4b, 0xc3, 0x61, 0x74, 0x14,
		0x5e, 0x85, 0x52, 0x2d, 0xc1, 0xfe, 0xfd, 0x4c, 0x9a, 0xab, 0x20, 0x0d, 0x6f, 0x8c, 0x48, 0xc7,
		0x2c, 0x87, 0xdc, 0xe0, 0xb2, 0x89, 0x06, 0x9f, 0xdc, 0x31, 0xd1, 0x9d, 0xed, 0xd7, 0x3b, 0xaf,
		0xf7, 0xf6, 0xb7, 0x5f, 0xef, 0x62, 0xab, 0xae, 0xda, 0xea, 0x8b, 0xf5, 0x58, 0xf5, 0xfc, 0x45,
		0x39, 0x9f, 0x4f, 0xd0, 0xd7, 0x4c, 0x70, 0xfd, 0x8d, 0x89, 0x52, 0x3f, 0x35, 0x41, 0xdc, 0x1f,
		0xfe, 0x15, 0xe9, 0xa5, 0xd5, 0xf7, 0xbe, 0x89, 0x30, 0xf0, 0xd4, 0x28, 0xe5, 0xcf, 0x16, 0x17,
		0x2c, 0xe9, 0xcf, 0x4e, 0x0f, 0xd4, 0x05, 0xd4, 0x05, 0xd4, 0x05, 0xd4, 0x05, 0xd4, 0x45, 0x69,
		0xa8, 0x0b, 0x79, 0xe9, 0xc0, 0xd7, 0xee, 0x5d, 0x48, 0x42, 0x50, 0x6e, 0x50, 0xf6, 0x57, 0x10,
		0x47, 0x61, 0x74, 0xe5, 0xa7, 0x1f, 0x63, 0x93, 0x7c, 0x1c, 0x0e, 0xfa, 0xfe, 0xa8, 0x97, 0xea,
		0x21, 0xb3, 0xd5, 0x5f, 0x07, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa5, 0x81,
		0x0f, 0x23, 0x13, 0xf7, 0x4c, 0x94, 0x06, 0x57, 0x46, 0x11, 0x41, 0xec, 0x72, 0xfb, 0x21, 0xf7,
		0xe0, 0xdc, 0x7e, 0x2c, 0x7c, 0x0f, 0x18, 0x65, 0x47, 0x5c, 0xe1, 0xb2, 0x89, 0xba, 0x74, 0xfb,
		0xb1, 0xb5, 0x89, 0x91, 0x3a, 0x6b, 0xa4, 0x5c, 0x7b, 0x14, 0x3b, 0xc3, 0x2e, 0x55, 0x71, 0xa4,
		0xb0, 0x88, 0x3f, 0x5b, 0xd7, 0x31, 0x69, 0xf1, 0x2a, 0x9d, 0xe7, 0xc6, 0xa2, 0x8e, 0x69, 0x43,
		0xb4, 0x8a, 0xde, 0x73, 0x47, 0x82, 0x5c, 0x1f, 0xdd, 0xec, 0x1c, 0xdf, 0x6e, 0xcc, 0xd9, 0xed,
		0xbe, 0x74, 0x6f, 0x73, 0xfe, 0xe3, 0xc9, 0xb6, 0x88, 0xb4, 0x76, 0x94, 0x3b, 0x79, 0x5f, 0x44,
		0xba, 0x37, 0x48, 0xb4, 0x7c, 0xbc, 0x97, 0x34, 0x49, 0x75, 0xa7, 0xf0, 0x34, 0x45, 0x20, 0xdb,
		0x88, 0x40, 0xca, 0xc3, 0x72, 0x21, 0x02, 0x41, 0x04, 0x92, 0xdb, 0x4e, 0x22, 0x02, 0x41, 0x04,
		0x52, 0xbe, 0xa0, 0xa0, 0x1f, 0x1c, 0xb4, 0x83, 0x84, 0x33, 0xc1, 0xc2, 0x99, 0xa0, 0xe1, 0x44,
		0xf0, 0xd0, 0xa1, 0x1d, 0x10, 0x81, 0x88, 0x7b, 0x77, 0x44, 0x20, 0x82, 0x0f, 0xce, 0x35, 0xc8,
		0xc2, 0xf7, 0x80, 0x61, 0x76, 0xc4, 0x0d, 0x2e, 0x9b, 0x28, 0x22, 0x10, 0x6c, 0xd5, 0x59, 0x80,
		0xa0, 0xb7, 0x2a, 0x22, 0x90, 0xe7, 0x1b, 0xed, 0x22, 0x1f, 0xef, 0x9b, 0x4f, 0x3d, 0x63, 0xfa,
		0x82, 0xb3, 0x1b, 0xee, 0x61, 0xaf, 0xd5, 0x5f, 0x87, 0x24, 0x9b, 0x24, 0x9b, 0x24, 0x9b, 0x24,
		0x9b, 0x24, 0xbb, 0x34, 0x49, 0x36, 0x72, 0x85, 0xb2, 0xc0, 0x07, 0x34, 0xa4, 0x1e, 0x1a, 0x52,
		0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0xca, 0xa0, 0x0c,
		0x0d, 0x29, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0x34, 0xa4,
		0x1a, 0x67, 0x8b, 0xe2, 0x09, 0x8a, 0x27, 0x56, 0x9f, 0x4b, 0x8a, 0x27, 0xd0, 0x90, 0x62, 0xa4,
		0x4e, 0xa2, 0x03, 0xbd, 0x55, 0xd1, 0x90, 0x16, 0xc0, 0x95, 0xa1, 0x21, 0x7d, 0xac, 0x86, 0x54,
		0x52, 0x83, 0xe7, 0x15, 0x46, 0x42, 0x2a, 0x30, 0x38, 0x5a, 0xee, 0xdc, 0x31, 0xd2, 0xbd, 0xcc,
		0x27, 0x78, 0x7d, 0xa6, 0xbb, 0xff, 0xfb, 0x99, 0x2d, 0xec, 0x98, 0xf7, 0x9f, 0x65, 0x66, 0xad,
		0xfa, 0xb1, 0xe9, 0x99, 0xf0, 0x46, 0xa0, 0x3a, 0x71, 0x75, 0x35, 0x62, 0xb6, 0x3c, 0xd3, 0x57,
		0x9f, 0xb4, 0x10, 0xd3, 0x57, 0x73, 0xb5, 0x0e, 0xa6, 0xaf, 0x32, 0x7d, 0xf5, 0x1b, 0x3b, 0xc6,
		0xf4, 0xd5, 0x02, 0x3a, 0x64, 0x71, 0xc7, 0xac, 0xe1, 0xa0, 0xf5, 0x1c, 0xb5, 0x96, 0xc3, 0x56,
		0x77, 0xdc, 0xea, 0x0e, 0x5c, 0xd5, 0x91, 0x97, 0x93, 0x1c, 0xa2, 0xf1, 0x06, 0x8d, 0x37, 0xca,
		0x17, 0x14, 0xf4, 0x83, 0x83, 0x76, 0x90, 0x70, 0x26, 0x58, 0x38, 0x13, 0x34, 0x9c, 0x08, 0x1e,
		0xb2, 0x41, 0x44, 0x38, 0x98, 0x64, 0x3b, 0x4c, 0xe3, 0x0d, 0x1a, 0x6f, 0x48, 0x3e, 0x38, 0xb5,
		0x23, 0x0b, 0xdf, 0x83, 0x6b, 0x79, 0x47, 0xdc, 0xe0, 0xb2, 0x89, 0xd2, 0x78, 0x03, 0x5b, 0x75,
		0x16, 0x20, 0xe8, 0xad, 0x4a, 0xe3, 0x8d, 0xe7, 0x1b, 0x2d, 0xca, 0xd9, 0x8c, 0xcd, 0x40, 0x39,
		0x0b, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x51, 0x50, 0xea, 0x02, 0xe5, 0x6c,
		0x29, 0x40, 0x19, 0xca, 0x59, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0xa6,
		0xe0, 0x28, 0x67, 0x35, 0xce, 0x16, 0xb7, 0x1f, 0xdc, 0x7e, 0xac, 0x3e, 0x97, 0xdc, 0x7e, 0xa0,
		0x9c, 0xc5, 0x48, 0x9d, 0x44, 0x07, 0x7a, 0xab, 0xa2, 0x9c, 0x2d, 0x80, 0x2b, 0x43, 0x39, 0xfb,
		0x48, 0xdd, 0x5d, 0x26, 0x68, 0x62, 0x0c, 0xeb, 0x4a, 0x3d, 0x5e, 0x6b, 0xb6, 0x3d, 0x8c, 0x63,
		0xfd, 0x8e, 0xd7, 0xcb, 0x38, 0x56, 0x5b, 0x74, 0x18, 0xe3, 0x58, 0x4b, 0x44, 0x7b, 0xa1, 0x0a,
		0x41, 0x15, 0x92, 0xdb, 0x4e, 0xa2, 0x0a, 0x41, 0x15, 0x52, 0xbe, 0xa0, 0xa0, 0x1f, 0x1c, 0xb4,
		0x83, 0x84, 0x33, 0xc1, 0xc2, 0x99, 0xa0, 0xe1, 0x44, 0xf0, 0xd0, 0xe1, 0x21, 0x50, 0x85, 0x88,
		0x7b, 0x77, 0x54, 0x21, 0x82, 0x0f, 0xce, 0xbd, 0xc8, 0xc2, 0xf7, 0x80, 0x72, 0x76, 0xc4, 0x0d,
		0x2e, 0x9b, 0x28, 0xaa, 0x10, 0x6c, 0xd5, 0x59, 0x80, 0xa0, 0xb7, 0x2a, 0xaa, 0x90, 0xe7, 0x1b,
		0x2d, 0xe3, 0x58, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x49, 0xb2, 0x25, 0xcf, 0x3b,
		0xfa, 0x85, 0xb2, 0xc0, 0x07, 0x44, 0xa5, 0x1e, 0xa2, 0x52, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06,
		0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0xca, 0xa0, 0x0c, 0x51, 0x29, 0xf0, 0x01, 0xf8, 0x00,
		0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x53, 0x70, 0x44, 0xa5, 0x1a, 0x67, 0x8b, 0xe2, 0x09, 0x8a,
		0x27, 0x56, 0x9f, 0x4b, 0x8a, 0x27, 0x10, 0x95, 0x62, 0xa4, 0x4e, 0xa2, 0x03, 0xbd, 0x55, 0x11,
		0x95, 0x16, 0xc0, 0x95, 0x21, 0x2a, 0x7d, 0xb2, 0xa8, 0x94, 0xb9, 0xac, 0xff, 0xa6, 0x29, 0x65,
		0x3e, 0xab, 0x2b, 0x47, 0x9c, 0xf9, 0xac, 0x8f, 0x3d, 0xd2, 0x0c, 0x6a, 0x5d, 0x3e, 0xc4, 0x85,
		0x1d, 0xd8, 0xfa, 0xa2, 0x40, 0xc7, 0xb4, 0x62, 0x3e, 0xa5, 0x71, 0xe0, 0x8f, 0x27, 0xef, 0xf5,
		0x62, 0x60, 0x97, 0x51, 0xa9, 0xfc, 0xf5, 0xd1, 0x44, 0xd6, 0x79, 0x03, 0xc1, 0x31, 0xa8, 0x2f,
		0x5f, 0x66, 0xe7, 0xdc, 0x9f, 0x9c, 0x29, 0xef, 0x57, 0xef, 0x87, 0x5b, 0xb6, 0xcf, 0x4f, 0x3f,
		0x8f, 0x4c, 0x72, 0x50, 0x6f, 0x7e, 0xd8, 0xe9, 0x1e, 0x57, 0xdf, 0xd4, 0x8e, 0x6b, 0x47, 0xdd,
		0xb3, 0x46, 0xfd, 0xb0, 0xda, 0xee, 0xfc, 0x50, 0xf2, 0xb1, 0xa9, 0xd3, 0x97, 0xbc, 0x4e, 0x43,
		0x53, 0xbf, 0xd3, 0x0a, 0x4a, 0xd1, 0x89, 0xe2, 0xc8, 0x24, 0xbd, 0x38, 0x1c, 0x89, 0x02, 0xf7,
		0xec, 0xf8, 0xd5, 0xa3, 0xde, 0x60, 0xdc, 0x37, 0x5e, 0xfa, 0x31, 0x4c, 0xbc, 0xde, 0x30, 0x4a,
		0x83, 0x30, 0x32, 0xb1, 0x77, 0x39, 0x8c, 0xbd, 0x7a, 0xf3, 0x66, 0xc7, 0x9b, 0x85, 0x18, 0x6f,
		0x16, 0x63, 0xbc, 0x64, 0x64, 0x7a, 0xe1, 0x65, 0xd8, 0xfb, 0x73, 0x16, 0xf4, 0xc6, 0xf1, 0x2d,
		0x2c, 0x11, 0xb2, 0x19, 0x85, 0x5b, 0x9a, 0xc5, 0x73, 0xd9, 0x5f, 0x78, 0x55, 0x82, 0x69, 0x83,
		0xe6, 0x95, 0xcc, 0xd2, 0x31, 0xcd, 0xcb, 0x5a, 0x48, 0x2a, 0x54, 0x3f, 0xfd, 0xbc, 0x50, 0xe8,
		0x4a, 0x28, 0xf9, 0x29, 0x42, 0xd2, 0x63, 0xd1, 0xe9, 0x38, 0x9b, 0xd6, 0xd8, 0x71, 0x16, 0xf9,
		0x1f, 0x2e, 0x0b, 0xe6, 0x5f, 0x99, 0xda, 0xc0, 0xfc, 0xdd, 0xdb, 0x32, 0xfe, 0x0c, 0x0b, 0x2c,
		0xad, 0x66, 0xe9, 0x30, 0xdb, 0x6d, 0x49, 0x65, 0xbd, 0x78, 0x46, 0xa2, 0x48, 0x46, 0xae, 0x18,
		0x46, 0x0a, 0x4e, 0x89, 0x17, 0xb7, 0x88, 0x23, 0x26, 0xd1, 0x62, 0x95, 0x62, 0x91, 0x23, 0xb6,
		0x5b, 0x3e, 0x55, 0x7a, 0xf3, 0x33, 0x6f, 0xd9, 0x88, 0xe7, 0xc7, 0x52, 0xa4, 0x15, 0xa5, 0x50,
		0xef, 0x3e, 0xb1, 0x6a, 0x43, 0xc9, 0xea, 0x42, 0xf9, 0x6a, 0x42, 0x4d, 0xae, 0x48, 0xb4, 0x5a,
		0xd0, 0x0d, 0xb6, 0x48, 0xaa, 0x1a, 0xb0, 0xd8, 0x97, 0x46, 0x52, 0xbd, 0xf6, 0x2a, 0xe6, 0x53,
		0x6a, 0xa2, 0xbe, 0xe9, 0xfb, 0x91, 0xf9, 0x94, 0xfa, 0x1f, 0x87, 0x23, 0x7f, 0x92, 0x3b, 0xf4,
		0xc3, 0xe8, 0x4a, 0x9e, 0xcf, 0xfa, 0x97, 0xef, 0x22, 0xd5, 0xe2, 0x50, 0x41, 0xd5, 0x27, 0xa9,
		0xe6, 0x3b, 0x97, 0x6d, 0x5e, 0xbb, 0x29, 0xdd, 0xbc, 0x76, 0x93, 0xe6, 0xb5, 0xc5, 0x0f, 0x90,
		0xea, 0x81, 0x52, 0x3d, 0x60, 0xaa, 0x06, 0x4e, 0x99, 0x00, 0x2a, 0x14, 0x48, 0xb3, 0x9d, 0x14,
		0x2f, 0x97, 0x57, 0x54, 0xd9, 0x09, 0xab, 0xeb, 0x4a, 0xd2, 0x53, 0xde, 0x44, 0x7d, 0xbf, 0x7f,
		0x1b, 0xff, 0xfd, 0x78, 0x38, 0x56, 0x69, 0x30, 0x7f, 0xff, 0x3b, 0x00, 0x7c, 0x00, 0x3e, 0x00,
		0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x59, 0x3b, 0xe0, 0x43, 0xe5, 0xf3, 0x53, 0x20,
		0x9c, 0x83, 0x45, 0x00, 0xf3, 0x8a, 0x67, 0xb1, 0x19, 0x58, 0x0e, 0xd5, 0x02, 0xcc, 0x6b, 0x9b,
		0x25, 0x06, 0x5c, 0x59, 0x2c, 0x67, 0xb6, 0x78, 0x87, 0xbb, 0x58, 0x07, 0x2f, 0x77, 0x09, 0xb6,
		0xb4, 0x2a, 0x57, 0x61, 0xae, 0x02, 0x60, 0xae, 0xc2, 0xca, 0x07, 0x70, 0xb9, 0x0a, 0x7b, 0x3a,
		0x35, 0x21, 0x75, 0x15, 0x26, 0x54, 0x8b, 0x70, 0xef, 0x78, 0x8b, 0x8e, 0xc7, 0x54, 0x9b, 0x2b,
		0x08, 0x43, 0x01, 0x43, 0x01, 0x43, 0x01, 0x43, 0xa1, 0xe7, 0xe0, 0xb3, 0x05, 0x99, 0x2b, 0x48,
		0x7b, 0x3c, 0xaf, 0xfc, 0xc1, 0x41, 0x3b, 0x48, 0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a, 0x4e, 0x04,
		0x0f, 0xd9, 0x20, 0x22, 0x1c, 0x4c, 0xb2, 0x1d, 0x66, 0xae, 0x20, 0x73, 0x05, 0x25, 0x1f, 0x9c,
		0xd6, 0x78, 0x0b, 0xdf, 0x83, 0xae, 0x63, 0x8e, 0xb8, 0xc1, 0x65, 0x13, 0x65, 0xae, 0x20, 0xb6,
		0xea, 0x2c, 0x40, 0xd0, 0x5b, 0x95, 0xb9, 0x82, 0xcf, 0x37, 0x5a, 0x06, 0x03, 0x65, 0x6c, 0x06,
		0x83, 0x81, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0x0a, 0x4a, 0x5d, 0x30,
		0x18, 0xa8, 0x14, 0xa0, 0x8c, 0xc1, 0x40, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c,
		0x10, 0x4d, 0xc1, 0x19, 0x0c, 0xa4, 0x71, 0xb6, 0xb8, 0xfd, 0xe0, 0xf6, 0x63, 0xf5, 0xb9, 0xe4,
		0xf6, 0x83, 0xc1, 0x40, 0x18, 0xa9, 0x93, 0xe8, 0x40, 0x6f, 0x55, 0x06, 0x03, 0x15, 0xc0, 0x95,
		0x31, 0x18, 0x68, 0x85, 0x96, 0x6e, 0x51, 0xbf, 0xb4, 0x21, 0x5a, 0x3d, 0xef, 0xb9, 0x29, 0xb0,
		0x5b, 0x18, 0x1e, 0x22, 0x22, 0xb6, 0x93, 0x3b, 0x6a, 0x22, 0x9d, 0x3f, 0xa6, 0xb3, 0x92, 0xe4,
		0x9b, 0x7d, 0x08, 0x0e, 0xb0, 0x52, 0x53, 0x7d, 0x6c, 0xa3, 0xfa, 0x28, 0x0f, 0xad, 0x85, 0xea,
		0x03, 0xd5, 0x47, 0x6e, 0x3b, 0x89, 0xea, 0x03, 0xd5, 0x47, 0xf9, 0x82, 0x82, 0x7e, 0x70, 0xd0,
		0x0e, 0x12, 0xce, 0x04, 0x0b, 0x67, 0x82, 0x86, 0x13, 0xc1, 0x43, 0x87, 0x67, 0x40, 0xf5, 0x21,
		0xee, 0xdd, 0x51, 0x7d, 0x08, 0x3e, 0x38, 0xf7, 0x1e, 0x0b, 0xdf, 0x03, 0x4a, 0xd9, 0x11, 0x37,
		0xb8, 0x6c, 0xa2, 0xa8, 0x3e, 0xb0, 0x55, 0x67, 0x01, 0x82, 0xde, 0xaa, 0xa8, 0x3e, 0x9e, 0x6f,
		0xb4, 0x4b, 0x63, 0xbc, 0xcd, 0xa7, 0x9e, 0x31, 0x7d, 0xd3, 0x57, 0x95, 0x7e, 0xac, 0xf8, 0x3a,
		0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9, 0x24, 0xd9, 0xa5, 0x49, 0xb2, 0xd1, 0x27, 0x94,
		0x05, 0x3e, 0x20, 0x1a, 0xf5, 0x10, 0x8d, 0x02, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0,
		0x0c, 0x50, 0x06, 0x28, 0x53, 0x06, 0x65, 0x88, 0x46, 0x81, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0,
		0x01, 0xf8, 0x20, 0x9a, 0x82, 0x23, 0x1a, 0xd5, 0x38, 0x5b, 0x14, 0x4f, 0x50, 0x3c, 0xb1, 0xfa,
		0x5c, 0x52, 0x3c, 0x81, 0x68, 0x14, 0x23, 0x75, 0x12, 0x1d, 0xe8, 0xad, 0x8a, 0x68, 0xb4, 0x00,
		0xae, 0x0c, 0xd1, 0xe8, 0xb7, 0x44, 0xa3, 0x92, 0xda, 0x3b, 0xcf, 0x7d, 0xcd, 0x68, 0x7b, 0xba,
		0x1d, 0xcc, 0x4c, 0xd5, 0x3f, 0xc2, 0xcc, 0x4c, 0x7d, 0xe0, 0xc8, 0xae, 0xe7, 0xe4, 0xd4, 0x85,
		0x43, 0xca, 0xf8, 0xd4, 0xfb, 0x2f, 0x6c, 0xa9, 0xe0, 0x2f, 0x36, 0x3d, 0x13, 0xde, 0x08, 0xd4,
		0x1f, 0xae, 0xae, 0x37, 0xcc, 0x96, 0x67, 0xa0, 0xea, 0x93, 0x16, 0x62, 0xa0, 0x6a, 0xae, 0xd6,
		0xc1, 0x40, 0x55, 0x06, 0xaa, 0x7e, 0x63, 0xc7, 0x18, 0xa8, 0x5a, 0x40, 0x87, 0x2c, 0xee, 0x98,
		0x35, 0x1c, 0xb4, 0x9e, 0xa3, 0xd6, 0x72, 0xd8, 0xea, 0x8e, 0x5b, 0xdd, 0x81, 0xab, 0x3a, 0xf2,
		0x72, 0xd2, 0x3f, 0xb4, 0xd6, 0xa0, 0xb5, 0x46, 0xf9, 0x82, 0x82, 0x7e, 0x70, 0xd0, 0x0e, 0x12,
		0xce, 0x04, 0x0b, 0x67, 0x82, 0x86, 0x13, 0xc1, 0x43, 0x36, 0x88, 0x08, 0x07, 0x93, 0x6c, 0x87,
		0x69, 0xad, 0x41, 0x6b, 0x0d, 0xc9, 0x07, 0xa7, 0x3a, 0x64, 0xe1, 0x7b, 0x70, 0xf1, 0xee, 0x88,
		0x1b, 0x5c, 0x36, 0x51, 0x5a, 0x6b, 0x60, 0xab, 0xce, 0x02, 0x04, 0xbd, 0x55, 0x69, 0xad, 0xf1,
		0x7c, 0xa3, 0x45, 0x1b, 0x9b, 0xb1, 0x19, 0x68, 0x63, 0xa1, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0,
		0x2e, 0xa0, 0x2e, 0x0a, 0x4a, 0x5d, 0xa0, 0x8d, 0x2d, 0x05, 0x28, 0x43, 0x1b, 0x0b, 0x7c, 0x00,
		0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x14, 0x1c, 0x6d, 0xac, 0xc6, 0xd9, 0xe2, 0xf6,
		0x83, 0xdb, 0x8f, 0xd5, 0xe7, 0x92, 0xdb, 0x0f, 0xb4, 0xb1, 0x18, 0xa9, 0x93, 0xe8, 0x40, 0x6f,
		0x55, 0xb4, 0xb1, 0x05, 0x70, 0x65, 0x68, 0x63, 0xbf, 0x21, 0xb4, 0xcb, 0x84, 0x4c, 0x4c, 0x56,
		0x5d, 0x16, 0xe0, 0xb5, 0x66, 0xfb, 0xc2, 0x84, 0xd5, 0xef, 0x78, 0xaf, 0x4c, 0x58, 0xb5, 0xc5,
		0x7f, 0x31, 0x61, 0xb5, 0x44, 0x3c, 0x17, 0x32, 0x10, 0x64, 0x20, 0xb9, 0xed, 0x24, 0x32, 0x10,
		0x64, 0x20, 0xe5, 0x0b, 0x0a, 0xfa, 0xc1, 0x41, 0x3b, 0x48, 0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a,
		0x4e, 0x04, 0x0f, 0x1d, 0xe2, 0x01, 0x19, 0x88, 0xb8, 0x77, 0x47, 0x06, 0x22, 0xf8, 0xe0, 0x5c,
		0x84, 0x2c, 0x7c, 0x0f, 0x38, 0x66, 0x47, 0xdc, 0xe0, 0xb2, 0x89, 0x22, 0x03, 0xc1, 0x56, 0x9d,
		0x05, 0x08, 0x7a, 0xab, 0x22, 0x03, 0x79, 0xbe, 0xd1, 0x32, 0x61, 0x95, 0x24, 0x9b, 0x24, 0x9b,
		0x24, 0x9b, 0x24, 0x9b, 0x24, 0x5b, 0xf2, 0xbc, 0x23, 0x58, 0x28, 0x0b, 0x7c, 0x40, 0x45, 0xea,
		0xa1, 0x22, 0x05, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0xa6,
		0x0c, 0xca, 0x50, 0x91, 0x02, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x41, 0x34, 0x05,
		0x47, 0x45, 0xaa, 0x71, 0xb6, 0x28, 0x9e, 0xa0, 0x78, 0x62, 0xf5, 0xb9, 0xa4, 0x78, 0x02, 0x15,
		0x29, 0x46, 0xea, 0x24, 0x3a, 0xd0, 0x5b, 0x15, 0x15, 0x69, 0x01, 0x5c, 0x19, 0x2a, 0xd2, 0x47,
		0xab, 0x48, 0x19, 0xb5, 0xba, 0x52, 0x44, 0xca, 0xc8, 0x55, 0x57, 0xce, 0x34, 0x23, 0x57, 0xbf,
		0x75, 0x86, 0xd7, 0x7e, 0xf6, 0xea, 0xfc, 0xd4, 0x32, 0x83, 0x75, 0xd5, 0x8b, 0x93, 0xd0, 0x76,
		0x8b, 0x6a, 0xba, 0xc5, 0x67, 0xac, 0x6e, 0x33, 0x63, 0xf5, 0x19, 0x2b, 0x32, 0x63, 0xd5, 0x3a,
		0xda, 0x65, 0xc6, 0xea, 0x13, 0x77, 0x4c, 0x6c, 0xc6, 0xaa, 0xf9, 0x94, 0x9a, 0xa8, 0x6f, 0xfa,
		0x7e, 0x64, 0x3e, 0xa5, 0xfe, 0xc7, 0xe1, 0xc8, 0x9f, 0x44, 0xce, 0x7e, 0x18, 0x29, 0xcc, 0x5d,
		0xfd, 0x97, 0xef, 0x22, 0x25, 0x79, 0x57, 0xa8, 0xf2, 0x92, 0xac, 0xee, 0x3a, 0x97, 0x6d, 0x66,
		0xb2, 0xc9, 0x4c, 0xdb, 0x02, 0x07, 0x46, 0xad, 0x00, 0xa9, 0x1e, 0x28, 0xd5, 0x03, 0xa6, 0x6a,
		0xe0, 0x2c, 0x27, 0xe1, 0x26, 0x7e, 0x7d, 0xaa, 0x58, 0x75, 0x25, 0x5c, 0x6d, 0x55, 0x92, 0x1e,
		0x63, 0x26, 0xea, 0xfb, 0xfd, 0xdb, 0xf8, 0xef, 0xc7, 0xc3, 0xb1, 0x4a, 0xc3, 0xb1, 0xfb, 0xdf,
		0x01, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0xcf, 0xda, 0x01,
		0x1f, 0x2e, 0xc6, 0x9e, 0x02, 0xe1, 0x1c, 0xbe, 0x18, 0x93, 0xba, 0xc6, 0x76, 0xf0, 0x22, 0x4c,
		0xe0, 0xaa, 0xda, 0xe2, 0xd5, 0xd7, 0x8b, 0x02, 0x9d, 0xbc, 0x8a, 0xf9, 0x94, 0xc6, 0x81, 0x3f,
		0x9e, 0xbc, 0xc2, 0x8b, 0x81, 0x5d, 0xb7, 0x5f, 0xf9, 0xeb, 0xa3, 0x89, 0xac, 0xe7, 0x0b, 0x82,
		0x17, 0x4e, 0x2f, 0x5f, 0x66, 0x47, 0xd7, 0x9f, 0x1c, 0x1f, 0xef, 0x57, 0xef, 0x87, 0x5b, 0xe8,
		0xe1, 0xa7, 0x9f, 0x47, 0x26, 0x39, 0xa8, 0x37, 0x3f, 0xec, 0x74, 0xcf, 0x1a, 0xf5, 0xc3, 0x6a,
		0xbb, 0xf3, 0x43, 0xc9, 0x2f, 0xa6, 0xa6, 0x2f, 0x77, 0x9d, 0xae, 0xa5, 0x9e, 0xf8, 0xf6, 0x4b,
		0x41, 0x79, 0x1c, 0x99, 0xa4, 0x17, 0x87, 0x23, 0xd1, 0x2a, 0xb4, 0xec, 0xb8, 0xd5, 0xa3, 0xde,
		0x60, 0xdc, 0x37, 0x5e, 0xfa, 0x31, 0x4c, 0xbc, 0xde, 0x30, 0x4a, 0x83, 0x30, 0x32, 0xb1, 0x77,
		0x39, 0x8c, 0xbd, 0x7a, 0xf3, 0x66, 0xc7, 0x9b, 0x45, 0x0f, 0x2f, 0x19, 0x99, 0x5e, 0x78, 0x19,
		0xf6, 0xfe, 0x9c, 0xc5, 0xb1, 0x71, 0x7c, 0x8b, 0x28, 0x84, 0x6c, 0x44, 0x21, 0x05, 0x5c, 0x3c,
		0x87, 0xfd, 0x85, 0x57, 0x24, 0x88, 0xa3, 0x35, 0xf3, 0xbf, 0xa5, 0x63, 0xf9, 0x5c, 0x2b, 0x21,
		0x0f, 0x50, 0xfd, 0xf4, 0xf3, 0x42, 0xa1, 0x27, 0xa1, 0x7c, 0xc5, 0xe5, 0x3c, 0xa5, 0x62, 0xb5,
		0xd2, 0xcb, 0xb1, 0xcc, 0xc4, 0x8e, 0x77, 0xc8, 0xff, 0x34, 0x59, 0xb0, 0xf7, 0x4a, 0x38, 0xba,
		0xd9, 0xf3, 0x07, 0xc1, 0x85, 0x19, 0x98, 0x7e, 0xf6, 0xf2, 0x6d, 0x59, 0x7d, 0x16, 0xf4, 0x57,
		0xae, 0x6a, 0xe9, 0x34, 0xdb, 0x2d, 0xc2, 0xb3, 0x4e, 0xbd, 0x4b, 0x50, 0xed, 0x72, 0xd4, 0xba,
		0x14, 0x8e, 0x12, 0xa7, 0xce, 0xc5, 0xa1, 0x92, 0x28, 0x35, 0x5e, 0x2c, 0xf6, 0xc3, 0x76, 0xd1,
		0xdc, 0x52, 0xfb, 0x52, 0xb9, 0x92, 0xe5, 0xa5, 0x55, 0x4b, 0x56, 0xb9, 0xbc, 0x49, 0xe5, 0x72,
		0x31, 0x09, 0x22, 0x2a, 0x97, 0x8b, 0x9a, 0xec, 0x95, 0xa5, 0x72, 0xb9, 0x37, 0xf7, 0x21, 0xc2,
		0xc4, 0x95, 0xe8, 0x58, 0x4b, 0xb5, 0xb1, 0x80, 0x14, 0x94, 0x94, 0xc0, 0x61, 0xab, 0x3b, 0x6e,
		0x75, 0x07, 0xae, 0xea, 0xc8, 0x65, 0x1c, 0xba, 0x90, 0x63, 0x17, 0x77, 0xf0, 0xd9, 0x82, 0x8c,
		0x05, 0xa4, 0xbb, 0x9d, 0x57, 0xfe, 0xe0, 0xa0, 0x1d, 0x24, 0x9c, 0x09, 0x16, 0xce, 0x04, 0x0d,
		0x27, 0x82, 0x87, 0x6c, 0x10, 0x11, 0x0e, 0x26, 0xd9, 0x0e, 0x33, 0x16, 0x90, 0xb1, 0x80, 0x92,
		0x0f, 0x4e, 0x67, 0xbb, 0x85, 0xef, 0x41, 0xd3, 0x30, 0x47, 0xdc, 0xe0, 0xb2, 0x89, 0x32, 0x16,
		0x10, 0x5b, 0x75, 0x16, 0x20, 0xe8, 0xad, 0xca, 0x58, 0xc0, 0xe7, 0x1b, 0x2d, 0x73, 0x7d, 0x32,
		0x36, 0x83, 0xb9, 0x3e, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x05, 0xa5,
		0x2e, 0x98, 0xeb, 0x53, 0x0a, 0x50, 0xc6, 0x5c, 0x1f, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c,
		0x00, 0x3e, 0x88, 0xa6, 0xe0, 0xcc, 0xf5, 0xd1, 0x38, 0x5b, 0xdc, 0x7e, 0x70, 0xfb, 0xb1, 0xfa,
		0x5c, 0x72, 0xfb, 0xc1, 0x5c, 0x1f, 0x8c, 0xd4, 0x49, 0x74, 0xa0, 0xb7, 0x2a, 0x73, 0x7d, 0x0a,
		0xe0, 0xca, 0x98, 0xeb, 0x93, 0x49, 0x8a, 0xef, 0xe9, 0x3c, 0x97, 0x66, 0x83, 0x6c, 0x88, 0x56,
		0xd1, 0x7b, 0x4e, 0xc9, 0x8f, 0xf7, 0x8e, 0x6f, 0x37, 0x66, 0xc5, 0xa0, 0x90, 0xee, 0x8c, 0x78,
		0xa0, 0x6f, 0xeb, 0x13, 0x5e, 0x6b, 0xa0, 0xd2, 0xaa, 0x55, 0x70, 0x2c, 0x95, 0x9a, 0x08, 0x64,
		0x1b, 0x11, 0x48, 0x79, 0x58, 0x2e, 0x44, 0x20, 0x88, 0x40, 0x72, 0xdb, 0x49, 0x44, 0x20, 0x88,
		0x40, 0xca, 0x17, 0x14, 0xf4, 0x83, 0x83, 0x76, 0x90, 0x70, 0x26, 0x58, 0x38, 0x13, 0x34, 0x9c,
		0x08, 0x1e, 0x3a, 0xb4, 0x03, 0x22, 0x10, 0x71, 0xef, 0x8e, 0x08, 0x44, 0xf0, 0xc1, 0xb9, 0x06,
		0x59, 0xf8, 0x1e, 0x30, 0xcc, 0x8e, 0xb8, 0xc1, 0x65, 0x13, 0x45, 0x04, 0x82, 0xad, 0x3a, 0x0b,
		0x10, 0xf4, 0x56, 0x45, 0x04, 0xf2, 0x7c, 0xa3, 0x5d, 0x9a, 0xd5, 0x6d, 0x3e, 0xf5, 0x8c, 0xe9,
		0x9b, 0xbe, 0xaa, 0x12, 0x64, 0xc5, 0xd7, 0x21, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26, 0xc9, 0x26,
		0xc9, 0x2e, 0x4d, 0x92, 0x8d, 0x5c, 0xa1, 0x2c, 0xf0, 0x01, 0x0d, 0xa9, 0x87, 0x86, 0x14, 0x50,
		0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x99, 0x32, 0x28, 0x43, 0x43,
		0x0a, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x14, 0x1c, 0x0d, 0xa9, 0xc6,
		0xd9, 0xa2, 0x78, 0x82, 0xe2, 0x89, 0xd5, 0xe7, 0x92, 0xe2, 0x09, 0x34, 0xa4, 0x18, 0xa9, 0x93,
		0xe8, 0x40, 0x6f, 0x55, 0x34, 0xa4, 0x05, 0x70, 0x65, 0x68, 0x48, 0x1f, 0xab, 0x21, 0x95, 0xd4,
		0xe0, 0x79, 0x85, 0x91, 0x90, 0xb6, 0xa7, 0xbb, 0xc2, 0xe0, 0x6b, 0xfd, 0x13, 0x2d, 0x7d, 0x92,
		0x0b, 0x77, 0x82, 0x2b, 0x22, 0xfa, 0x60, 0xf7, 0xcf, 0x6c, 0xa5, 0xa0, 0xe3, 0xdd, 0x2d, 0x9e,
		0x9f, 0xe5, 0x72, 0xc0, 0xd8, 0xf4, 0x4c, 0x78, 0x23, 0x50, 0x9d, 0xb8, 0xba, 0x1a, 0x31, 0x5b,
		0x9e, 0xe9, 0xab, 0x4f, 0x5a, 0x88, 0xe9, 0xab, 0xb9, 0x5a, 0x07, 0xd3, 0x57, 0x99, 0xbe, 0xfa,
		0x8d, 0x1d, 0x63, 0xfa, 0x6a, 0x01, 0x1d, 0xb2, 0xb8, 0x63, 0xd6, 0x70, 0xd0, 0x7a, 0x8e, 0x5a,
		0xcb, 0x61, 0xab, 0x3b, 0x6e, 0x75, 0x07, 0xae, 0xea, 0xc8, 0xcb, 0x49, 0x0e, 0xd1, 0x78, 0x83,
		0xc6, 0x1b, 0xe5, 0x0b, 0x0a, 0xfa, 0xc1, 0x41, 0x3b, 0x48, 0x38, 0x13, 0x2c, 0x9c, 0x09, 0x1a,
		0x4e, 0x04, 0x0f, 0xd9, 0x20, 0x22, 0x1c, 0x4c, 0xb2, 0x1d, 0xa6, 0xf1, 0x06, 0x8d, 0x37, 0x24,
		0x1f, 0x9c, 0xda, 0x91, 0x85, 0xef, 0xc1, 0xb5, 0xbc, 0x23, 0x6e, 0x70, 0xd9, 0x44, 0x69, 0xbc,
		0x81, 0xad, 0x3a, 0x0b, 0x10, 0xf4, 0x56, 0xa5, 0xf1, 0xc6, 0xf3, 0x8d, 0x16, 0xe5, 0x6c, 0xc6,
		0x66, 0xa0, 0x9c, 0x85, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x28, 0x28, 0x75,
		0x81, 0x72, 0xb6, 0x14, 0xa0, 0x0c, 0xe5, 0x2c, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00,
		0x1f, 0x44, 0x53, 0x70, 0x94, 0xb3, 0x1a, 0x67, 0x8b, 0xdb, 0x0f, 0x6e, 0x3f, 0x56, 0x9f, 0x4b,
		0x6e, 0x3f, 0x50, 0xce, 0x62, 0xa4, 0x4e, 0xa2, 0x03, 0xbd, 0x55, 0x51, 0xce, 0x16, 0xc0, 0x95,
		0xa1, 0x9c, 0x7d, 0xa4, 0xee, 0x2e, 0x13, 0x34, 0x31, 0x86, 0x75, 0xa5, 0x1e, 0xaf, 0x35, 0xdb,
		0x1e, 0xc6, 0xb1, 0x7e, 0xc7, 0xeb, 0x65, 0x1c, 0xab, 0x2d, 0x3a, 0x8c, 0x71, 0xac, 0x25, 0xa2,
		0xbd, 0x50, 0x85, 0xa0, 0x0a, 0xc9, 0x6d, 0x27, 0x51, 0x85, 0xa0, 0x0a, 0x29, 0x5f, 0x50, 0xd0,
		0x0f, 0x0e, 0xda, 0x41, 0xe2, 0xff, 0x63, 0xef, 0xed, 0x7f, 0xda, 0xc6, 0xb6, 0x3d, 0xee, 0xdf,
		0xfb, 0x57, 0x58, 0xd6, 0x95, 0xa6, 0x95, 0xc6, 0xe5, 0x2d, 0xc0, 0x50, 0xe9, 0xfc, 0x40, 0xa7,
		0xcc, 0xdc, 0x3c, 0x0f, 0x05, 0x04, 0x6d, 0x9f, 0x73, 0xd5, 0xe1, 0x44, 0x26, 0xd9, 0x80, 0xcf,
		0x04, 0x27, 0xb2, 0x1d, 0x0a, 0x9a, 0xf2, 0xbf, 0x3f, 0xca, 0x9b, 0x49, 0x48, 0x68, 0x09, 0xf1,
		0x5e, 0x7b, 0xd9, 0x7c, 0xd0, 0xd5, 0x2d, 0x87, 0x69, 0xd9, 0x3b, 0xf6, 0x7a, 0xf9, 0xae, 0xef,
		0x7a, 0x53, 0xe3, 0x2c, 0xd4, 0x38, 0x0d, 0x15, 0xce, 0xc3, 0x0d, 0x0f, 0x41, 0x57, 0x88, 0xb8,
		0x75, 0xa7, 0x2b, 0x44, 0xf0, 0x83, 0x93, 0x17, 0x99, 0xb8, 0x07, 0x94, 0xb3, 0x12, 0x33, 0x38,
		0x2d, 0xa2, 0x74, 0x85, 0x20, 0xab, 0x6a, 0x01, 0x82, 0xbb, 0x53, 0xe9, 0x0a, 0x59, 0x5e, 0x68,
		0x59, 0xc7, 0x4a, 0x90, 0x4d, 0x90, 0x4d, 0x90, 0x4d, 0x90, 0x4d, 0x90, 0x2d, 0xa9, 0xef, 0xf4,
		0x2f, 0x54, 0x05, 0x3e, 0xd0, 0x54, 0xea, 0xd1, 0x54, 0x0a, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00,
		0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0xcc, 0x31, 0x28, 0xa3, 0xa9, 0x14, 0xf8, 0x00, 0x7c, 0x00,
		0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa2, 0x21, 0x38, 0x4d, 0xa5, 0x2e, 0x74, 0x8b, 0xe2, 0x09, 0x8a,
		0x27, 0xe6, 0xeb, 0x25, 0xc5, 0x13, 0x34, 0x95, 0x22, 0xa4, 0x2a, 0xd1, 0x81, 0xbb, 0x53, 0x69,
		0x2a, 0x2d, 0x81, 0x29, 0xa3, 0xa9, 0x74, 0xe1, 0xa6, 0x52, 0xf6, 0xb2, 0xfe, 0xa8, 0xa7, 0x94,
		0xfd, 0xac, 0x5a, 0x54, 0x9c, 0xfd, 0xac, 0x4f, 0x55, 0x69, 0x16, 0xb5, 0x4e, 0x2b, 0x71, 0x69,
		0x17, 0xb6, 0xbe, 0x2a, 0x91, 0x9a, 0xfa, 0xe6, 0x26, 0x4b, 0xc2, 0xa0, 0xd7, 0x7f, 0xaf, 0x67,
		0x6d, 0xbb, 0x8c, 0x8a, 0xff, 0xed, 0xd2, 0xc4, 0xd6, 0x79, 0x03, 0xc1, 0x35, 0xa8, 0x6f, 0xdf,
		0xe6, 0x7a, 0x1e, 0xf4, 0x75, 0xca, 0xfb, 0x97, 0xf7, 0xcb, 0x90, 0xed, 0x0b, 0xb2, 0xdb, 0xae,
		0x49, 0xdf, 0xd5, 0x8f, 0xbe, 0x6c, 0x35, 0xf6, 0x77, 0xdf, 0xef, 0xed, 0xef, 0x7d, 0x68, 0x7c,
		0x3e, 0xa8, 0xff, 0xbe, 0x7b, 0xf2, 0xe9, 0x97, 0x8a, 0xaf, 0x4d, 0x1d, 0xbc, 0xe4, 0x97, 0xb4,
		0x34, 0xf5, 0x99, 0x52, 0x50, 0x89, 0x49, 0x14, 0x1f, 0x4c, 0xda, 0x4c, 0xa2, 0xae, 0x28, 0x70,
		0xcf, 0xd5, 0xaf, 0x1e, 0x37, 0xdb, 0xbd, 0x96, 0xf1, 0xb2, 0xcb, 0x28, 0xf5, 0x9a, 0x9d, 0x38,
		0x0b, 0xa3, 0xd8, 0x24, 0xde, 0x79, 0x27, 0xf1, 0xea, 0x47, 0xd7, 0x5b, 0xde, 0xc8, 0xc5, 0x78,
		0x23, 0x1f, 0xe3, 0xa5, 0x5d, 0xd3, 0x8c, 0xce, 0xa3, 0xe6, 0x5f, 0x23, 0xa7, 0xd7, 0x4b, 0x86,
		0xb0, 0x44, 0x48, 0x66, 0x1c, 0x64, 0x69, 0x26, 0xf5, 0xb2, 0x35, 0xf1, 0xaa, 0x04, 0xc3, 0x06,
		0x97, 0x29, 0x99, 0x29, 0x35, 0x2d, 0x4a, 0x5a, 0x08, 0x2a, 0x9c, 0xfe, 0xf6, 0xd3, 0x52, 0xa1,
		0x2b, 0xa1, 0xe0, 0xa7, 0x0c, 0x41, 0x8f, 0x45, 0xa3, 0xa3, 0x36, 0xac, 0xb1, 0x63, 0x2c, 0x8a,
		0x57, 0x2e, 0x0b, 0xe2, 0xef, 0x0f, 0x64, 0x60, 0xfc, 0xee, 0x6d, 0x09, 0x7f, 0x8e, 0x05, 0xa6,
		0x4e, 0xb3, 0xa4, 0xcc, 0x76, 0x47, 0x52, 0x59, 0x2f, 0x9e, 0x91, 0x28, 0x92, 0x91, 0x2b, 0x86,
		0x91, 0x82, 0x53, 0xe2, 0xc5, 0x2d, 0xe2, 0x88, 0x49, 0xb4, 0x58, 0xa5, 0x5c, 0xe4, 0x88, 0xed,
		0x91, 0x4f, 0x7e, 0x73, 0xac, 0xf3, 0x96, 0x85, 0x78, 0xac, 0x96, 0x22, 0xa3, 0x28, 0x85, 0x66,
		0xf7, 0x89, 0x55, 0x1b, 0x4a, 0x56, 0x17, 0xca, 0x57, 0x13, 0xba, 0xe4, 0x8a, 0x44, 0xab, 0x05,
		0x75, 0xb0, 0x45, 0x52, 0xd5, 0x80, 0xe5, 0x4e, 0x1a, 0x49, 0xcd, 0xda, 0xf3, 0x53, 0x13, 0xb7,
		0x82, 0xd6, 0xb0, 0x99, 0x2d, 0x48, 0x3a, 0x3d, 0x27, 0x73, 0x55, 0x67, 0xef, 0x20, 0x35, 0xd2,
		0xd0, 0x41, 0x17, 0x9f, 0x64, 0xf7, 0xde, 0xa9, 0xec, 0xb0, 0xda, 0x55, 0xe9, 0x61, 0xb5, 0xab,
		0x0c, 0xab, 0x2d, 0xbf, 0x43, 0x74, 0xee, 0x18, 0x9d, 0x3b, 0x48, 0xa7, 0x8e, 0x52, 0xc6, 0x61,
		0x0a, 0x39, 0xce, 0xfc, 0x49, 0x8a, 0x97, 0xc7, 0x3b, 0xec, 0xaa, 0x13, 0xee, 0xa6, 0xa3, 0xe0,
		0xe7, 0x27, 0x4a, 0x4c, 0xc1, 0x4f, 0x5e, 0xe8, 0x23, 0xb6, 0xfa, 0x41, 0x11, 0x05, 0x3e, 0x2e,
		0xe9, 0x91, 0xd8, 0xeb, 0x60, 0xb1, 0x8a, 0xc7, 0x22, 0x75, 0x39, 0x59, 0xfe, 0x25, 0xc7, 0xfd,
		0x4c, 0x9d, 0x0a, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x24, 0x44, 0xc1, 0xcf,
		0xa8, 0xb7, 0xe8, 0x56, 0x28, 0x67, 0xeb, 0x74, 0x60, 0x28, 0x60, 0x28, 0x60, 0x28, 0x60, 0x28,
		0xdc, 0x19, 0xf8, 0xfc, 0x40, 0xd6, 0xe9, 0x30, 0x15, 0xc6, 0xab, 0xbe, 0x73, 0x70, 0xed, 0x24,
		0xd4, 0x38, 0x0b, 0x35, 0x4e, 0x43, 0x85, 0xf3, 0x90, 0x75, 0x22, 0xc2, 0xce, 0x24, 0x7f, 0xc2,
		0xac, 0xd3, 0x61, 0x9d, 0x8e, 0xe4, 0x07, 0x67, 0x22, 0xcc, 0xc4, 0x3d, 0x18, 0xb6, 0xa1, 0xc4,
		0x0c, 0x4e, 0x8b, 0x28, 0xeb, 0x74, 0x90, 0x55, 0xb5, 0x00, 0xc1, 0xdd, 0xa9, 0xac, 0xd3, 0x59,
		0x5e, 0x68, 0x99, 0x87, 0x9f, 0xb3, 0x19, 0xcc, 0xc3, 0x87, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80,
		0xba, 0x80, 0xba, 0x28, 0x29, 0x75, 0xc1, 0x3c, 0xfc, 0x4a, 0x80, 0x32, 0xe6, 0xe1, 0x03, 0x1f,
		0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x41, 0x34, 0x04, 0x67, 0x1e, 0xbe, 0x0b, 0xdd, 0x22,
		0xfb, 0x41, 0xf6, 0x63, 0xbe, 0x5e, 0x92, 0xfd, 0x60, 0x1e, 0x3e, 0x42, 0xaa, 0x12, 0x1d, 0xb8,
		0x3b, 0x95, 0x79, 0xf8, 0x25, 0x30, 0x65, 0xcc, 0xc3, 0x9f, 0xd3, 0x4b, 0x37, 0xd9, 0xbf, 0xb4,
		0x22, 0x5a, 0x3d, 0xef, 0xe9, 0x6c, 0xb0, 0x9b, 0x98, 0x99, 0x2d, 0xd2, 0x6c, 0x27, 0xa7, 0x6a,
		0x77, 0x22, 0x0d, 0x93, 0xa1, 0x93, 0x61, 0x1f, 0x82, 0x7b, 0x1b, 0x9c, 0x75, 0x7d, 0xac, 0xd3,
		0xf5, 0x51, 0x1d, 0x5a, 0x8b, 0xae, 0x0f, 0xba, 0x3e, 0x0a, 0x7b, 0x92, 0x74, 0x7d, 0xd0, 0xf5,
		0x51, 0x3d, 0xa7, 0xe0, 0xde, 0x39, 0xb8, 0x76, 0x12, 0x6a, 0x9c, 0x85, 0x1a, 0xa7, 0xa1, 0xc2,
		0x79, 0xb8, 0xe1, 0x19, 0xe8, 0xfa, 0x10, 0xb7, 0xee, 0x74, 0x7d, 0x08, 0x7e, 0x70, 0xf2, 0x1e,
		0x13, 0xf7, 0x80, 0x52, 0x56, 0x62, 0x06, 0xa7, 0x45, 0x94, 0xae, 0x0f, 0x64, 0x55, 0x2d, 0x40,
		0x70, 0x77, 0x2a, 0x5d, 0x1f, 0xcb, 0x0b, 0xed, 0xd4, 0xf6, 0x4a, 0x73, 0xd3, 0x34, 0xa6, 0x65,
		0x5a, 0x4e, 0x5b, 0x3f, 0xe6, 0x5c, 0x87, 0x20, 0x9b, 0x20, 0x9b, 0x20, 0x9b, 0x20, 0x9b, 0x20,
		0xbb, 0x32, 0x41, 0x36, 0xfd, 0x09, 0x55, 0x81, 0x0f, 0x34, 0x8d, 0x7a, 0x34, 0x8d, 0x02, 0xca,
		0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x73, 0x0c, 0xca, 0x68, 0x1a,
		0x05, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x83, 0x68, 0x08, 0x4e, 0xd3, 0xa8, 0x0b,
		0xdd, 0xa2, 0x78, 0x82, 0xe2, 0x89, 0xf9, 0x7a, 0x49, 0xf1, 0x04, 0x4d, 0xa3, 0x08, 0xa9, 0x4a,
		0x74, 0xe0, 0xee, 0x54, 0x9a, 0x46, 0x4b, 0x60, 0xca, 0x68, 0x1a, 0xfd, 0x59, 0xd3, 0xa8, 0x64,
		0xef, 0x9d, 0xa7, 0xbf, 0x67, 0xf4, 0x64, 0xf0, 0x38, 0xd8, 0x99, 0xea, 0x5e, 0x85, 0xd9, 0x99,
		0xfa, 0x88, 0xca, 0xbe, 0xcc, 0xcd, 0xa9, 0x13, 0x4a, 0xca, 0xfa, 0xd4, 0xd9, 0x17, 0x36, 0x55,
		0xf0, 0x97, 0x98, 0xa6, 0x89, 0xae, 0x05, 0xea, 0x0f, 0xe7, 0xd7, 0x1b, 0xe6, 0xc7, 0xb3, 0x50,
		0x75, 0xa1, 0x83, 0x58, 0xa8, 0x5a, 0xa8, 0x74, 0xb0, 0x50, 0x95, 0x85, 0xaa, 0x3f, 0x79, 0x62,
		0x2c, 0x54, 0x2d, 0xa1, 0x41, 0x16, 0x37, 0xcc, 0x2e, 0x0c, 0xb4, 0x3b, 0x43, 0xed, 0xca, 0x60,
		0x3b, 0x37, 0xdc, 0xce, 0x0d, 0xb8, 0x53, 0x43, 0x5e, 0x4d, 0xfa, 0x87, 0xd1, 0x1a, 0x8c, 0xd6,
		0xa8, 0x9e, 0x53, 0x70, 0xef, 0x1c, 0x5c, 0x3b, 0x09, 0x35, 0xce, 0x42, 0x8d, 0xd3, 0x50, 0xe1,
		0x3c, 0x64, 0x9d, 0x88, 0xb0, 0x33, 0xc9, 0x9f, 0x30, 0xa3, 0x35, 0x18, 0xad, 0x21, 0xf9, 0xc1,
		0xa9, 0x0e, 0x99, 0xb8, 0x07, 0x89, 0x77, 0x25, 0x66, 0x70, 0x5a, 0x44, 0x19, 0xad, 0x81, 0xac,
		0xaa, 0x05, 0x08, 0xee, 0x4e, 0x65, 0xb4, 0xc6, 0xf2, 0x42, 0x4b, 0x6f, 0x6c, 0xce, 0x66, 0xd0,
		0x1b, 0x0b, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x51, 0x52, 0xea, 0x82, 0xde,
		0xd8, 0x4a, 0x80, 0x32, 0x7a, 0x63, 0x81, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x20,
		0x1a, 0x82, 0xd3, 0x1b, 0xeb, 0x42, 0xb7, 0xc8, 0x7e, 0x90, 0xfd, 0x98, 0xaf, 0x97, 0x64, 0x3f,
		0xe8, 0x8d, 0x45, 0x48, 0x55, 0xa2, 0x03, 0x77, 0xa7, 0xd2, 0x1b, 0x5b, 0x02, 0x53, 0x46, 0x6f,
		0xec, 0x4f, 0x1a, 0xed, 0xf2, 0x46, 0x26, 0x36, 0xab, 0x4e, 0x37, 0xe0, 0x1d, 0x8f, 0x9e, 0x0b,
		0x1b, 0x56, 0x9f, 0xf1, 0x5e, 0xd9, 0xb0, 0x6a, 0x8b, 0xff, 0x62, 0xc3, 0x6a, 0x85, 0x78, 0x2e,
		0xda, 0x40, 0x68, 0x03, 0x29, 0xec, 0x49, 0xd2, 0x06, 0x42, 0x1b, 0x48, 0xf5, 0x9c, 0x82, 0x7b,
		0xe7, 0xe0, 0xda, 0x49, 0xa8, 0x71, 0x16, 0x6a, 0x9c, 0x86, 0x0a, 0xe7, 0xe1, 0x86, 0x78, 0xa0,
		0x0d, 0x44, 0xdc, 0xba, 0xd3, 0x06, 0x22, 0xf8, 0xc1, 0x49, 0x84, 0x4c, 0xdc, 0x03, 0x8e, 0x59,
		0x89, 0x19, 0x9c, 0x16, 0x51, 0xda, 0x40, 0x90, 0x55, 0xb5, 0x00, 0xc1, 0xdd, 0xa9, 0xb4, 0x81,
		0x2c, 0x2f, 0xb4, 0x6c, 0x58, 0x25, 0xc8, 0x26, 0xc8, 0x26, 0xc8, 0x26, 0xc8, 0x26, 0xc8, 0x96,
		0xd4, 0x77, 0x1a, 0x16, 0xaa, 0x02, 0x1f, 0xe8, 0x22, 0xf5, 0xe8, 0x22, 0x05, 0x94, 0x01, 0xca,
		0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0xe6, 0x18, 0x94, 0xd1, 0x45, 0x0a, 0x7c,
		0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x10, 0x9c, 0x2e, 0x52, 0x17, 0xba, 0x45,
		0xf1, 0x04, 0xc5, 0x13, 0xf3, 0xf5, 0x92, 0xe2, 0x09, 0xba, 0x48, 0x11, 0x52, 0x95, 0xe8, 0xc0,
		0xdd, 0xa9, 0x74, 0x91, 0x96, 0xc0, 0x94, 0xd1, 0x45, 0xfa, 0xe4, 0x2e, 0x52, 0x56, 0xad, 0xce,
		0x6d, 0x22, 0x65, 0xe5, 0xaa, 0x16, 0x9d, 0x66, 0xe5, 0xea, 0xcf, 0x74, 0xf8, 0xc5, 0xef, 0x5e,
		0x1d, 0x6b, 0x2d, 0x3b, 0x58, 0xe7, 0xbd, 0x38, 0x89, 0xde, 0x6e, 0xd1, 0x9e, 0x6e, 0xf1, 0x1d,
		0xab, 0xeb, 0xec, 0x58, 0x5d, 0xe2, 0x44, 0x76, 0xac, 0x5a, 0x47, 0xbb, 0xec, 0x58, 0x5d, 0xf0,
		0x89, 0x89, 0xed, 0x58, 0x4d, 0x4d, 0xdc, 0x0a, 0x5a, 0xc3, 0xe2, 0xa6, 0x20, 0xe9, 0xf4, 0x9c,
		0xcc, 0xd9, 0x98, 0xbd, 0x83, 0x54, 0x8b, 0xbb, 0x83, 0xaa, 0x2e, 0xc9, 0x6a, 0xae, 0x53, 0xd9,
		0xe1, 0x25, 0xab, 0xec, 0xb0, 0x2d, 0xb1, 0x23, 0x74, 0xe5, 0x10, 0x9d, 0x3b, 0x46, 0xe7, 0x0e,
		0xd2, 0xa9, 0xa3, 0xac, 0x26, 0xc1, 0x26, 0x9e, 0x2e, 0x75, 0x58, 0x65, 0x25, 0x5c, 0x5d, 0x05,
		0x1f, 0x04, 0x1f, 0xf4, 0x54, 0x3e, 0x48, 0x8a, 0xbd, 0x55, 0xc8, 0xff, 0x08, 0x30, 0xb4, 0x16,
		0x19, 0x9f, 0x57, 0x25, 0xd2, 0x3c, 0xdf, 0xdc, 0x64, 0x49, 0x18, 0xf4, 0xfa, 0xaf, 0xf0, 0xac,
		0x6d, 0xd7, 0xec, 0xfb, 0xdf, 0x2e, 0x4d, 0x6c, 0x3d, 0x5e, 0x10, 0xe4, 0x59, 0xde, 0xbe, 0xcd,
		0x55, 0x37, 0xe8, 0xab, 0x8f, 0xf7, 0x2f, 0xef, 0x97, 0x21, 0xf4, 0x08, 0xb2, 0xdb, 0xae, 0x49,
		0xdf, 0xd5, 0x8f, 0xbe, 0x6c, 0x35, 0x3e, 0x1f, 0xd4, 0x7f, 0xdf, 0x3d, 0xf9, 0xf4, 0x4b, 0xc5,
		0xf9, 0x98, 0xc1, 0xcb, 0x7d, 0x49, 0x6c, 0xcc, 0x82, 0x6f, 0xbf, 0x12, 0xd3, 0x44, 0x3f, 0x98,
		0xb4, 0x99, 0x44, 0x5d, 0xd1, 0xe4, 0x6b, 0xae, 0x6e, 0xf5, 0xb8, 0xd9, 0xee, 0xb5, 0x8c, 0x97,
		0x5d, 0x46, 0xa9, 0xd7, 0xec, 0xc4, 0x59, 0x18, 0xc5, 0x26, 0xf1, 0xce, 0x3b, 0x89, 0x57, 0x3f,
		0xba, 0xde, 0xf2, 0x46, 0xde, 0xc3, 0x4b, 0xbb, 0xa6, 0x19, 0x9d, 0x47, 0xcd, 0xbf, 0x46, 0x7e,
		0xac, 0x97, 0x0c, 0x11, 0x85, 0x90, 0x8c, 0x38, 0x08, 0x01, 0x27, 0xf5, 0xb0, 0x35, 0xf1, 0x8a,
		0x04, 0x71, 0xb4, 0xcb, 0xf8, 0x6f, 0x4a, 0x2d, 0x97, 0x95, 0x12, 0xe2, 0x00, 0xa7, 0xbf, 0xfd,
		0xb4, 0x54, 0xe8, 0x49, 0x28, 0x5e, 0xd1, 0x1c, 0xa7, 0xf8, 0x56, 0x13, 0x9c, 0xca, 0x22, 0x13,
		0x3b, 0xd6, 0xa1, 0x78, 0x6d, 0xb2, 0x20, 0xef, 0x7e, 0x7b, 0xfd, 0xba, 0x1b, 0x07, 0xe6, 0xba,
		0x6b, 0x4f, 0xd6, 0x73, 0x57, 0x3f, 0x71, 0x96, 0x25, 0xcd, 0xb5, 0x9b, 0x67, 0xb6, 0x4e, 0xb3,
		0x4b, 0xd0, 0xea, 0x72, 0x34, 0xba, 0x14, 0x66, 0x12, 0xa7, 0xc9, 0xc5, 0x61, 0x91, 0x28, 0x0d,
		0x5e, 0x2e, 0xa6, 0xc3, 0x76, 0x5e, 0x78, 0x6a, 0x42, 0x97, 0x5c, 0x55, 0xce, 0xd4, 0xa9, 0x15,
		0x2b, 0xce, 0x59, 0xa5, 0x38, 0xa7, 0x9c, 0x64, 0x10, 0xc5, 0x39, 0x65, 0x0d, 0xec, 0xaa, 0x52,
		0x9c, 0xd3, 0x1c, 0xdb, 0x10, 0x61, 0x92, 0x4a, 0x74, 0x73, 0x93, 0xb3, 0xcd, 0x37, 0x14, 0x8f,
		0x54, 0xc0, 0x60, 0x3b, 0x37, 0xdc, 0xce, 0x0d, 0xb8, 0x53, 0x43, 0x2e, 0x63, 0xd0, 0x85, 0x0c,
		0xbb, 0xb8, 0x81, 0xcf, 0x0f, 0x64, 0xf3, 0x0d, 0x03, 0x5c, 0xbc, 0xea, 0x3b, 0x07, 0xd7, 0x4e,
		0x42, 0x8d, 0xb3, 0x50, 0xe3, 0x34, 0x54, 0x38, 0x0f, 0x59, 0x27, 0x22, 0xec, 0x4c, 0xf2, 0x27,
		0xcc, 0xe6, 0x1b, 0x36, 0xdf, 0x48, 0x7e, 0x70, 0x86, 0xb7, 0x4c, 0xdc, 0x83, 0xb9, 0x18, 0x4a,
		0xcc, 0xe0, 0xb4, 0x88, 0xb2, 0xf9, 0x06, 0x59, 0x55, 0x0b, 0x10, 0xdc, 0x9d, 0xca, 0xe6, 0x9b,
		0xe5, 0x85, 0x96, 0xd1, 0xf5, 0x39, 0x9b, 0xc1, 0xe8, 0x7a, 0xa8, 0x0b, 0xa8, 0x0b, 0xa8, 0x0b,
		0xa8, 0x0b, 0xa8, 0x8b, 0x92, 0x52, 0x17, 0x8c, 0xae, 0xaf, 0x04, 0x28, 0x63, 0x74, 0x3d, 0xf0,
		0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x43, 0x70, 0x46, 0xd7, 0xbb, 0xd0, 0x2d,
		0xb2, 0x1f, 0x64, 0x3f, 0xe6, 0xeb, 0x25, 0xd9, 0x0f, 0x46, 0xd7, 0x23, 0xa4, 0x2a, 0xd1, 0x81,
		0xbb, 0x53, 0x19, 0x5d, 0x5f, 0x02, 0x53, 0xc6, 0xe8, 0xfa, 0x61, 0xfb, 0xf0, 0x7d, 0x77, 0xe7,
		0xd4, 0xd0, 0xeb, 0x15, 0xd1, 0xda, 0x79, 0x4f, 0x4f, 0x83, 0xf1, 0xfe, 0xfa, 0x97, 0x6e, 0xbc,
		0x77, 0xdd, 0x8d, 0x27, 0x07, 0x5f, 0x37, 0x46, 0x2c, 0x43, 0x55, 0xe6, 0x11, 0x88, 0x0c, 0xb2,
		0x0a, 0x9d, 0xcc, 0x60, 0x15, 0x5c, 0xb3, 0xe0, 0xac, 0xe3, 0x63, 0x9d, 0x8e, 0x8f, 0xea, 0x50,
		0x5a, 0x74, 0x7c, 0xd0, 0xf1, 0x51, 0xd8, 0x93, 0xa4, 0xe3, 0x83, 0x8e, 0x8f, 0xea, 0x39, 0x05,
		0xf7, 0xce, 0xc1, 0xb5, 0x93, 0x50, 0xe3, 0x2c, 0xd4, 0x38, 0x0d, 0x15, 0xce, 0xc3, 0x0d, 0xc7,
		0x40, 0xc7, 0x87, 0xb8, 0x75, 0xa7, 0xe3, 0x43, 0xf0, 0x83, 0x93, 0xf3, 0x98, 0xb8, 0x07, 0x74,
		0xb2, 0x12, 0x33, 0x38, 0x2d, 0xa2, 0x74, 0x7c, 0x20, 0xab, 0x6a, 0x01, 0x82, 0xbb, 0x53, 0xe9,
		0xf8, 0x58, 0x5e, 0x68, 0xa7, 0x76, 0x4f, 0x9a, 0x9b, 0xa6, 0x31, 0x2d, 0xd3, 0x72, 0xda, 0xf6,
		0x31, 0xe7, 0x3a, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x95, 0x09, 0xb2,
		0xe9, 0x4d, 0xa8, 0x0a, 0x7c, 0xa0, 0x61, 0xd4, 0xa3, 0x61, 0x14, 0x50, 0x06, 0x28, 0x03, 0x94,
		0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x99, 0x63, 0x50, 0x46, 0xc3, 0x28, 0xf0, 0x01, 0xf8,
		0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x43, 0x70, 0x1a, 0x46, 0x5d, 0xe8, 0x16, 0xc5, 0x13,
		0x14, 0x4f, 0xcc, 0xd7, 0x4b, 0x8a, 0x27, 0x68, 0x18, 0x45, 0x48, 0x55, 0xa2, 0x03, 0x77, 0xa7,
		0xd2, 0x30, 0x5a, 0x02, 0x53, 0x46, 0xc3, 0xe8, 0x8f, 0x1b, 0x46, 0x25, 0x3b, 0xef, 0x3c, 0xed,
		0xfd, 0xa2, 0x27, 0x83, 0x87, 0xc1, 0xfa, 0x6a, 0xf7, 0xea, 0x2b, 0xad, 0xb6, 0x25, 0x51, 0x57,
		0x5f, 0xa4, 0x05, 0x58, 0xad, 0x82, 0xfa, 0x25, 0xdd, 0xc8, 0x6e, 0x51, 0x59, 0xa6, 0x0b, 0xfd,
		0x12, 0xd3, 0x34, 0xd1, 0xb5, 0x40, 0xdd, 0xe1, 0xfc, 0x3a, 0xc3, 0xfc, 0x78, 0x96, 0xa8, 0x2e,
		0x74, 0x10, 0x4b, 0x54, 0x0b, 0x95, 0x0e, 0x96, 0xa8, 0xb2, 0x44, 0xf5, 0x27, 0x4f, 0x8c, 0x25,
		0xaa, 0x25, 0x34, 0xc8, 0xe2, 0x86, 0xd9, 0x85, 0x81, 0x76, 0x67, 0xa8, 0x5d, 0x19, 0x6c, 0xe7,
		0x86, 0xdb, 0xb9, 0x01, 0x77, 0x6a, 0xc8, 0xab, 0x49, 0xfb, 0x30, 0x52, 0x83, 0x91, 0x1a, 0xd5,
		0x73, 0x0a, 0xee, 0x9d, 0x83, 0x6b, 0x27, 0xa1, 0xc6, 0x59, 0xa8, 0x71, 0x1a, 0x2a, 0x9c, 0x87,
		0xac, 0x13, 0x11, 0x76, 0x26, 0xf9, 0x13, 0x66, 0xa4, 0x06, 0x23, 0x35, 0x24, 0x3f, 0x38, 0x55,
		0x21, 0x13, 0xf7, 0x20, 0xe1, 0xae, 0xc4, 0x0c, 0x4e, 0x8b, 0x28, 0x23, 0x35, 0x90, 0x55, 0xb5,
		0x00, 0xc1, 0xdd, 0xa9, 0x8c, 0xd4, 0x58, 0x5e, 0x68, 0xe9, 0x89, 0xcd, 0xd9, 0x0c, 0x7a, 0x62,
		0xa1, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0x4a, 0x4a, 0x5d, 0xd0, 0x13, 0x5b,
		0x09, 0x50, 0x46, 0x4f, 0x2c, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x43,
		0x70, 0x7a, 0x62, 0x5d, 0xe8, 0x16, 0xd9, 0x0f, 0xb2, 0x1f, 0xf3, 0xf5, 0x92, 0xec, 0x07, 0x3d,
		0xb1, 0x08, 0xa9, 0x4a, 0x74, 0xe0, 0xee, 0x54, 0x7a, 0x62, 0x4b, 0x60, 0xca, 0xe8, 0x89, 0xfd,
		0x61, 0x93, 0x5d, 0xde, 0xc6, 0xc4, 0x36, 0xd5, 0xc9, 0xe6, 0xbb, 0xe3, 0xd1, 0x53, 0x61, 0xab,
		0xea, 0x33, 0xde, 0x2a, 0x5b, 0x55, 0x6d, 0x71, 0x5f, 0x6c, 0x55, 0xad, 0x10, 0xc7, 0x45, 0x0b,
		0x08, 0x2d, 0x20, 0x85, 0x3d, 0x49, 0x5a, 0x40, 0x68, 0x01, 0xa9, 0x9e, 0x53, 0x70, 0xef, 0x1c,
		0x5c, 0x3b, 0x09, 0x35, 0xce, 0x42, 0x8d, 0xd3, 0x50, 0xe1, 0x3c, 0xdc, 0x90, 0x0e, 0xb4, 0x80,
		0x88, 0x5b, 0x77, 0x5a, 0x40, 0x04, 0x3f, 0x38, 0x49, 0x90, 0x89, 0x7b, 0xc0, 0x2f, 0x2b, 0x31,
		0x83, 0xd3, 0x22, 0x4a, 0x0b, 0x08, 0xb2, 0xaa, 0x16, 0x20, 0xb8, 0x3b, 0x95, 0x16, 0x90, 0xe5,
		0x85, 0x96, 0xad, 0xaa, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x92, 0xfa,
		0x4e, 0xb3, 0x42, 0x55, 0xe0, 0x03, 0x1d, 0xa4, 0x1e, 0x1d, 0xa4, 0x80, 0x32, 0x40, 0x19, 0xa0,
		0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x1c, 0x83, 0x32, 0x3a, 0x48, 0x81, 0x0f, 0xc0,
		0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x20, 0x1a, 0x82, 0xd3, 0x41, 0xea, 0x42, 0xb7, 0x28, 0x9e,
		0xa0, 0x78, 0x62, 0xbe, 0x5e, 0x52, 0x3c, 0x41, 0x07, 0x29, 0x42, 0xaa, 0x12, 0x1d, 0xb8, 0x3b,
		0x95, 0x0e, 0xd2, 0x12, 0x98, 0x32, 0x3a, 0x48, 0x9f, 0xd8, 0x41, 0xca, 0x7a, 0xd5, 0x39, 0x0d,
		0xa4, 0xac, 0x59, 0xd5, 0xa2, 0xcf, 0xac, 0x59, 0xfd, 0xb1, 0xfe, 0xbe, 0xf0, 0x7d, 0xab, 0x63,
		0x8d, 0x2d, 0xed, 0xde, 0xd5, 0x57, 0x25, 0xd2, 0x49, 0xdf, 0xdc, 0x64, 0x49, 0x18, 0xf4, 0xfa,
		0xaf, 0xf3, 0xac, 0x6d, 0x97, 0x2b, 0xf1, 0xbf, 0x5d, 0x9a, 0xd8, 0x3a, 0x23, 0x20, 0xb8, 0xcd,
		0xf4, 0xed, 0xdb, 0x5c, 0xa9, 0x83, 0xbe, 0x2a, 0x79, 0xff, 0xf2, 0x7e, 0x19, 0xf2, 0x78, 0x41,
		0x76, 0xdb, 0x35, 0xe9, 0xbb, 0xfd, 0xf5, 0x2f, 0x47, 0x07, 0x8d, 0xbd, 0x2f, 0x47, 0x07, 0xbf,
		0x54, 0x7c, 0xe7, 0xe9, 0xe0, 0xd5, 0xbe, 0xa4, 0x8d, 0xa7, 0x0b, 0xbd, 0xfb, 0x4a, 0xcc, 0x93,
		0xf8, 0x60, 0xd2, 0x66, 0x12, 0x75, 0x45, 0xe1, 0x77, 0xae, 0x6a, 0xf5, 0xb8, 0xd9, 0xee, 0xb5,
		0x8c, 0x97, 0x5d, 0x46, 0xa9, 0xd7, 0xec, 0xc4, 0x59, 0x18, 0xc5, 0x26, 0xf1, 0xce, 0x3b, 0x89,
		0xf7, 0xfe, 0xcf, 0x23, 0xaf, 0xff, 0x98, 0xbd, 0xb4, 0x6b, 0x9a, 0xd1, 0x79, 0xd4, 0xfc, 0x6b,
		0xe4, 0xcb, 0x7a, 0xc9, 0x10, 0x63, 0x08, 0x49, 0x87, 0x83, 0xfc, 0xca, 0xa4, 0x06, 0xb6, 0x26,
		0x5e, 0x8f, 0x20, 0xf4, 0x77, 0x99, 0x4c, 0x99, 0x52, 0xc8, 0x65, 0x24, 0x84, 0xa8, 0xc0, 0xe9,
		0x6f, 0x3f, 0x2d, 0x15, 0x62, 0x12, 0x8a, 0x5e, 0xf4, 0x46, 0x2d, 0x16, 0xcd, 0x8b, 0xb6, 0xb8,
		0xc4, 0x8e, 0x65, 0x28, 0x5e, 0x93, 0x2c, 0xc8, 0xba, 0x3f, 0x7c, 0xe1, 0xd7, 0xdd, 0xb6, 0xbd,
		0xb1, 0x22, 0xb9, 0x7b, 0x9f, 0x38, 0xcb, 0x92, 0xd6, 0xda, 0x9d, 0x14, 0x65, 0xbd, 0xa6, 0x45,
		0xa2, 0x76, 0x45, 0xae, 0x46, 0x45, 0x0a, 0x2b, 0x89, 0xd7, 0x9c, 0x88, 0xc3, 0x21, 0xd1, 0x1a,
		0x92, 0x72, 0x31, 0x1b, 0xb6, 0x27, 0x31, 0x4d, 0xf5, 0x65, 0xda, 0x17, 0xe5, 0x79, 0xdd, 0xa0,
		0xb6, 0xa5, 0x59, 0x66, 0xbc, 0x9e, 0x58, 0x41, 0xa0, 0x64, 0x01, 0xa0, 0x7c, 0xc1, 0x9f, 0x4b,
		0xfa, 0x47, 0xb4, 0xa0, 0x4f, 0x07, 0x01, 0x24, 0x55, 0xb0, 0x57, 0xee, 0x54, 0x8f, 0xd4, 0x38,
		0x3c, 0xbf, 0x39, 0xb6, 0x21, 0xc2, 0xc4, 0x94, 0xe8, 0xb4, 0x5e, 0x67, 0xf3, 0x4e, 0x57, 0x99,
		0x77, 0x5a, 0x7e, 0x83, 0xed, 0xdc, 0x70, 0x3b, 0x37, 0xe0, 0x4e, 0x0d, 0xb9, 0x8c, 0x41, 0x17,
		0x32, 0xec, 0xe2, 0x06, 0x3e, 0x3f, 0x90, 0x79, 0xa7, 0xb4, 0xed, 0x78, 0xd5, 0x77, 0x0e, 0xae,
		0x9d, 0x84, 0x1a, 0x67, 0xa1, 0xc6, 0x69, 0xa8, 0x70, 0x1e, 0xb2, 0x4e, 0x44, 0xd8, 0x99, 0xe4,
		0x4f, 0x98, 0x79, 0xa7, 0xcc, 0x3b, 0x95, 0xfc, 0xe0, 0xb4, 0xec, 0x4c, 0xdc, 0x83, 0x6e, 0x08,
		0x25, 0x66, 0x70, 0x5a, 0x44, 0x99, 0x77, 0x8a, 0xac, 0xaa, 0x05, 0x08, 0xee, 0x4e, 0x65, 0xde,
		0xe9, 0xf2, 0x42, 0xcb, 0xc0, 0xb2, 0x9c, 0xcd, 0x60, 0x60, 0x19, 0xd4, 0x05, 0xd4, 0x05, 0xd4,
		0x05, 0xd4, 0x05, 0xd4, 0x45, 0x49, 0xa9, 0x0b, 0x06, 0x96, 0x55, 0x02, 0x94, 0x31, 0xb0, 0x0c,
		0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa2, 0x21, 0x38, 0x03, 0xcb, 0x5c, 0xe8,
		0x16, 0xd9, 0x0f, 0xb2, 0x1f, 0xf3, 0xf5, 0x92, 0xec, 0x07, 0x03, 0xcb, 0x10, 0x52, 0x95, 0xe8,
		0xc0, 0xdd, 0xa9, 0x0c, 0x2c, 0x2b, 0x81, 0x29, 0x63, 0x60, 0xd9, 0x64, 0xeb, 0xf0, 0x75, 0x77,
		0xf0, 0x1b, 0xee, 0xbb, 0x97, 0x56, 0x44, 0x6b, 0xe7, 0x3d, 0x65, 0xed, 0xc5, 0x5f, 0xba, 0x83,
		0x7f, 0x9c, 0x8f, 0x3d, 0x6a, 0x8c, 0x58, 0x86, 0xaa, 0xcc, 0x22, 0x10, 0x19, 0x62, 0x15, 0x66,
		0x46, 0xbe, 0xe5, 0x43, 0x72, 0xbc, 0x9e, 0xb3, 0x8e, 0x8f, 0x75, 0x3a, 0x3e, 0xaa, 0x43, 0x69,
		0xd1, 0xf1, 0x41, 0xc7, 0x47, 0x61, 0x4f, 0x92, 0x8e, 0x0f, 0x3a, 0x3e, 0xaa, 0xe7, 0x14, 0xdc,
		0x3b, 0x07, 0xd7, 0x4e, 0x42, 0x8d, 0xb3, 0x50, 0xe3, 0x34, 0x54, 0x38, 0x0f, 0x37, 0x1c, 0x03,
		0x1d, 0x1f, 0xe2, 0xd6, 0x9d, 0x8e, 0x0f, 0xc1, 0x0f, 0x4e, 0xce, 0x63, 0xe2, 0x1e, 0xd0, 0xc9,
		0x4a, 0xcc, 0xe0, 0xb4, 0x88, 0xd2, 0xf1, 0x81, 0xac, 0xaa, 0x05, 0x08, 0xee, 0x4e, 0xa5, 0xe3,
		0x63, 0x79, 0xa1, 0x9d, 0xda, 0x3b, 0x60, 0x6e, 0x9a, 0xc6, 0xb4, 0x4c, 0xcb, 0x69, 0xdb, 0xc7,
		0x9c, 0xeb, 0x10, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x57, 0x26, 0xc8, 0xa6,
		0x37, 0xa1, 0x2a, 0xf0, 0x81, 0x86, 0x51, 0x8f, 0x86, 0x51, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06,
		0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x8e, 0x41, 0x19, 0x0d, 0xa3, 0xc0, 0x07, 0xe0, 0x03,
		0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x0d, 0xc1, 0x69, 0x18, 0x75, 0xa1, 0x5b, 0x14, 0x4f, 0x50,
		0x3c, 0x31, 0x5f, 0x2f, 0x29, 0x9e, 0xa0, 0x61, 0x14, 0x21, 0x55, 0x89, 0x0e, 0xdc, 0x9d, 0x4a,
		0xc3, 0x68, 0x09, 0x4c, 0x19, 0x0d, 0xa3, 0x3f, 0x6e, 0x18, 0x95, 0xec, 0xbc, 0xf3, 0xb4, 0xf7,
		0x8b, 0x9e, 0x0c, 0x1e, 0x06, 0xab, 0xab, 0xdd, 0xab, 0xaf, 0xb4, 0xda, 0x96, 0x44, 0x5d, 0x7d,
		0x91, 0x16, 0x60, 0xb5, 0x0a, 0xea, 0x97, 0x74, 0x1b, 0xbb, 0x45, 0x65, 0x99, 0x2e, 0xf4, 0x4b,
		0x4c, 0xd3, 0x44, 0xd7, 0x02, 0x75, 0x87, 0xf3, 0xeb, 0x0c, 0xf3, 0xe3, 0x59, 0xa2, 0xba, 0xd0,
		0x41, 0x2c, 0x51, 0x2d, 0x54, 0x3a, 0x58, 0xa2, 0xca, 0x12, 0xd5, 0x9f, 0x3c, 0x31, 0x96, 0xa8,
		0x96, 0xd0, 0x20, 0x8b, 0x1b, 0x66, 0x17, 0x06, 0xda, 0x9d, 0xa1, 0x76, 0x65, 0xb0, 0x9d, 0x1b,
		0x6e, 0xe7, 0x06, 0xdc, 0xa9, 0x21, 0xaf, 0x26, 0xed, 0xc3, 0x48, 0x0d, 0x46, 0x6a, 0x54, 0xcf,
		0x29, 0xb8, 0x77, 0x0e, 0xae, 0x9d, 0x84, 0x1a, 0x67, 0xa1, 0xc6, 0x69, 0xa8, 0x70, 0x1e, 0xb2,
		0x4e, 0x44, 0xd8, 0x99, 0xe4, 0x4f, 0x98, 0x91, 0x1a, 0x8c, 0xd4, 0x90, 0xfc, 0xe0, 0x54, 0x85,
		0x4c, 0xdc, 0x83, 0x84, 0xbb, 0x12, 0x33, 0x38, 0x2d, 0xa2, 0x8c, 0xd4, 0x40, 0x56, 0xd5, 0x02,
		0x04, 0x77, 0xa7, 0x32, 0x52, 0x63, 0x79, 0xa1, 0xa5, 0x27, 0x36, 0x67, 0x33, 0xe8, 0x89, 0x85,
		0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x28, 0x29, 0x75, 0x41, 0x4f, 0x6c, 0x25,
		0x40, 0x19, 0x3d, 0xb1, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x0d, 0xc1,
		0xe9, 0x89, 0x75, 0xa1, 0x5b, 0x64, 0x3f, 0xc8, 0x7e, 0xcc, 0xd7, 0x4b, 0xb2, 0x1f, 0xf4, 0xc4,
		0x22, 0xa4, 0x2a, 0xd1, 0x81, 0xbb, 0x53, 0xe9, 0x89, 0x2d, 0x81, 0x29, 0xa3, 0x27, 0xf6, 0x87,
		0x4d, 0x76, 0x79, 0x1b, 0x13, 0xdb, 0x54, 0x27, 0x9b, 0xef, 0x8e, 0x47, 0x4f, 0x85, 0xad, 0xaa,
		0xcf, 0x78, 0xab, 0x6c, 0x55, 0xb5, 0xc5, 0x7d, 0xb1, 0x55, 0xb5, 0x42, 0x1c, 0x17, 0x2d, 0x20,
		0xb4, 0x80, 0x14, 0xf6, 0x24, 0x69, 0x01, 0xa1, 0x05, 0xa4, 0x7a, 0x4e, 0xc1, 0xbd, 0x73, 0x70,
		0xed, 0x24, 0xd4, 0x38, 0x0b, 0x35, 0x4e, 0x43, 0x85, 0xf3, 0x70, 0x43, 0x3a, 0xd0, 0x02, 0x22,
		0x6e, 0xdd, 0x69, 0x01, 0x11, 0xfc, 0xe0, 0x24, 0x41, 0x26, 0xee, 0x01, 0xbf, 0xac, 0xc4, 0x0c,
		0x4e, 0x8b, 0x28, 0x2d, 0x20, 0xc8, 0xaa, 0x5a, 0x80, 0xe0, 0xee, 0x54, 0x5a, 0x40, 0x96, 0x17,
		0x5a, 0xb6, 0xaa, 0x12, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x4b, 0xea, 0x3b,
		0xcd, 0x0a, 0x55, 0x81, 0x0f, 0x74, 0x90, 0x7a, 0x74, 0x90, 0x02, 0xca, 0x00, 0x65, 0x80, 0x32,
		0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x73, 0x0c, 0xca, 0xe8, 0x20, 0x05, 0x3e, 0x00, 0x1f,
		0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x83, 0x68, 0x08, 0x4e, 0x07, 0xa9, 0x0b, 0xdd, 0xa2, 0x78, 0x82,
		0xe2, 0x89, 0xf9, 0x7a, 0x49, 0xf1, 0x04, 0x1d, 0xa4, 0x08, 0xa9, 0x4a, 0x74, 0xe0, 0xee, 0x54,
		0x3a, 0x48, 0x4b, 0x60, 0xca, 0xe8, 0x20, 0x7d, 0x62, 0x07, 0x29, 0xeb, 0x55, 0xe7, 0x34, 0x90,
		0xb2, 0x66, 0x55, 0x8b, 0x3e, 0xb3, 0x66, 0xf5, 0xc7, 0xfa, 0xfb, 0xc2, 0xf7, 0xad, 0x8e, 0x35,
		0xb6, 0xb4, 0x7b, 0x57, 0x5f, 0x95, 0x48, 0x27, 0x7d, 0x73, 0x93, 0x25, 0x61, 0xd0, 0xeb, 0xbf,
		0xce, 0xb3, 0xb6, 0x5d, 0xae, 0xc4, 0xff, 0x76, 0x69, 0x62, 0xeb, 0x8c, 0x80, 0xe0, 0x36, 0xd3,
		0xb7, 0x6f, 0x73, 0xa5, 0x0e, 0xfa, 0xaa, 0xe4, 0xfd, 0xcb, 0xfb, 0x65, 0xc8, 0xe3, 0x05, 0xd9,
		0x6d, 0xd7, 0xa4, 0xef, 0xf6, 0xd7, 0xbf, 0x1c, 0x1d, 0x34, 0xbe, 0x1c, 0xed, 0x9f, 0xfc, 0x52,
		0xf1, 0x9d, 0xa7, 0x83, 0x57, 0xfb, 0x92, 0x36, 0x9e, 0x2e, 0xf4, 0xee, 0x2b, 0x31, 0x4f, 0xe2,
		0x83, 0x49, 0x9b, 0x49, 0xd4, 0x15, 0x85, 0xdf, 0xb9, 0xaa, 0xd5, 0xe3, 0x66, 0xbb, 0xd7, 0x32,
		0x5e, 0x76, 0x19, 0xa5, 0x5e, 0xb3, 0x13, 0x67, 0x61, 0x14, 0x9b, 0xc4, 0x3b, 0xef, 0x24, 0xde,
		0xfb, 0x3f, 0x8f, 0x82, 0x34, 0xba, 0x88, 0xc3, 0x76, 0xdb, 0xb4, 0xbc, 0xfe, 0x03, 0xf7, 0xd2,
		0xae, 0x69, 0x46, 0xe7, 0x51, 0xf3, 0xaf, 0x91, 0x57, 0xeb, 0x25, 0x43, 0xb4, 0x21, 0x24, 0x27,
		0x0e, 0x32, 0x2d, 0x93, 0xba, 0xd8, 0x9a, 0x78, 0x51, 0x82, 0x41, 0x80, 0xcb, 0xb4, 0xca, 0x94,
		0x6a, 0x16, 0x23, 0x2b, 0x44, 0x0a, 0x4e, 0x7f, 0xfb, 0x69, 0xa9, 0x50, 0x94, 0x50, 0x44, 0xa3,
		0x37, 0x92, 0xb1, 0x68, 0x68, 0xb4, 0xc5, 0x2a, 0x76, 0x2c, 0x43, 0xf1, 0x9a, 0x64, 0x41, 0xd6,
		0xfd, 0xf6, 0x46, 0xff, 0x85, 0x47, 0xdd, 0xeb, 0x5a, 0x70, 0xd5, 0x6b, 0x67, 0x51, 0x33, 0x4c,
		0xed, 0x15, 0xd1, 0xe4, 0xce, 0x7f, 0xee, 0xa9, 0x96, 0x34, 0xd9, 0xee, 0x44, 0x29, 0xeb, 0xb5,
		0x2f, 0x12, 0x35, 0x2e, 0x72, 0xb5, 0x2c, 0x52, 0x48, 0x4a, 0xbc, 0x36, 0x45, 0x1c, 0x2c, 0x89,
		0xd6, 0x9a, 0x94, 0x8b, 0x01, 0xb1, 0x3d, 0xb1, 0x69, 0xaa, 0x7f, 0xd3, 0xbe, 0x28, 0xcf, 0xeb,
		0x1a, 0xb5, 0x2d, 0xcd, 0x32, 0x63, 0xf8, 0xc4, 0x0a, 0x07, 0x25, 0x0b, 0x05, 0xe5, 0x0b, 0x03,
		0x5d, 0xd2, 0x44, 0xa2, 0x85, 0x7f, 0x3a, 0x88, 0x22, 0xa9, 0xc2, 0xbe, 0x72, 0xa7, 0x84, 0xa4,
		0xc6, 0xe6, 0xf9, 0xcd, 0xb1, 0x0d, 0x11, 0x26, 0xb0, 0x44, 0xa7, 0xfa, 0x3a, 0x9b, 0x8b, 0xba,
		0xca, 0x5c, 0xd4, 0xf2, 0x1b, 0x6c, 0xe7, 0x86, 0xdb, 0xb9, 0x01, 0x77, 0x6a, 0xc8, 0x65, 0x0c,
		0xba, 0x90, 0x61, 0x17, 0x37, 0xf0, 0xf9, 0x81, 0xcc, 0x45, 0xa5, 0xbd, 0xc7, 0xab, 0xbe, 0x73,
		0x70, 0xed, 0x24, 0xd4, 0x38, 0x0b, 0x35, 0x4e, 0x43, 0x85, 0xf3, 0x90, 0x75, 0x22, 0xc2, 0xce,
		0x24, 0x7f, 0xc2, 0xcc, 0x45, 0x65, 0x2e, 0xaa, 0xe4, 0x07, 0xa7, 0xb5, 0x67, 0xe2, 0x1e, 0x74,
		0x4d, 0x28, 0x31, 0x83, 0xd3, 0x22, 0xca, 0x5c, 0x54, 0x64, 0x55, 0x2d, 0x40, 0x70, 0x77, 0x2a,
		0x73, 0x51, 0x97, 0x17, 0x5a, 0x06, 0x9b, 0xe5, 0x6c, 0x06, 0x83, 0xcd, 0xa0, 0x2e, 0xa0, 0x2e,
		0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0x4a, 0x4a, 0x5d, 0x30, 0xd8, 0xac, 0x12, 0xa0, 0x8c, 0xc1,
		0x66, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x0d, 0xc1, 0x19, 0x6c, 0xe6,
		0x42, 0xb7, 0xc8, 0x7e, 0x90, 0xfd, 0x98, 0xaf, 0x97, 0x64, 0x3f, 0x18, 0x6c, 0x86, 0x90, 0xaa,
		0x44, 0x07, 0xee, 0x4e, 0x65, 0xb0, 0x59, 0x09, 0x4c, 0x19, 0x83, 0xcd, 0x46, 0xed, 0xc4, 0x73,
		0xfa, 0x3c, 0xa7, 0x46, 0x24, 0xad, 0x88, 0x56, 0xd1, 0x7b, 0x8a, 0x9a, 0x8f, 0x37, 0xbe, 0x74,
		0xe3, 0x7a, 0xf7, 0xba, 0xf6, 0x71, 0xfc, 0x5c, 0x26, 0x27, 0x26, 0x35, 0x46, 0xc4, 0x43, 0x55,
		0x46, 0x16, 0x88, 0xcc, 0xbf, 0x0a, 0x33, 0x23, 0xdf, 0x05, 0x22, 0x39, 0x99, 0xcf, 0x59, 0x13,
		0xc8, 0x3a, 0x4d, 0x20, 0xd5, 0x61, 0xb9, 0x68, 0x02, 0xa1, 0x09, 0xa4, 0xb0, 0x27, 0x49, 0x13,
		0x08, 0x4d, 0x20, 0xd5, 0x73, 0x0a, 0xee, 0x9d, 0x83, 0x6b, 0x27, 0xa1, 0xc6, 0x59, 0xa8, 0x71,
		0x1a, 0x2a, 0x9c, 0x87, 0x1b, 0xda, 0x81, 0x26, 0x10, 0x71, 0xeb, 0x4e, 0x13, 0x88, 0xe0, 0x07,
		0x27, 0x0d, 0x32, 0x71, 0x0f, 0x18, 0x66, 0x25, 0x66, 0x70, 0x5a, 0x44, 0x69, 0x02, 0x41, 0x56,
		0xd5, 0x02, 0x04, 0x77, 0xa7, 0xd2, 0x04, 0xb2, 0xbc, 0xd0, 0x4e, 0xad, 0x2c, 0x30, 0x37, 0x4d,
		0x63, 0x5a, 0xa6, 0xe5, 0xb4, 0x13, 0x64, 0xce, 0x75, 0x08, 0xb2, 0x09, 0xb2, 0x09, 0xb2, 0x09,
		0xb2, 0x09, 0xb2, 0x2b, 0x13, 0x64, 0xd3, 0xae, 0x50, 0x15, 0xf8, 0x40, 0x0f, 0xa9, 0x47, 0x0f,
		0x29, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0xc7, 0xa0,
		0x8c, 0x1e, 0x52, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0x86, 0xe0, 0xf4,
		0x90, 0xba, 0xd0, 0x2d, 0x8a, 0x27, 0x28, 0x9e, 0x98, 0xaf, 0x97, 0x14, 0x4f, 0xd0, 0x43, 0x8a,
		0x90, 0xaa, 0x44, 0x07, 0xee, 0x4e, 0xa5, 0x87, 0xb4, 0x04, 0xa6, 0x8c, 0x1e, 0xd2, 0xa7, 0xf6,
		0x90, 0x4a, 0xf6, 0xe0, 0x79, 0xa5, 0x69, 0x21, 0x3d, 0x19, 0x3c, 0x15, 0x96, 0x5e, 0xbb, 0xd7,
		0x68, 0x69, 0x4d, 0x2e, 0x9d, 0x06, 0xfb, 0x22, 0xfd, 0xc1, 0xfa, 0x75, 0xd6, 0x2f, 0xe9, 0x6a,
		0x77, 0x8b, 0xfa, 0x33, 0x5d, 0x0e, 0x98, 0x98, 0xa6, 0x89, 0xae, 0x05, 0xaa, 0x13, 0xe7, 0x57,
		0x23, 0xe6, 0xc7, 0xb3, 0x7d, 0x75, 0xa1, 0x83, 0xd8, 0xbe, 0x5a, 0xa8, 0x74, 0xb0, 0x7d, 0x95,
		0xed, 0xab, 0x3f, 0x79, 0x62, 0x6c, 0x5f, 0x2d, 0xa1, 0x41, 0x16, 0x37, 0xcc, 0x2e, 0x0c, 0xb4,
		0x3b, 0x43, 0xed, 0xca, 0x60, 0x3b, 0x37, 0xdc, 0xce, 0x0d, 0xb8, 0x53, 0x43, 0x5e, 0x4d, 0x72,
		0x88, 0xc1, 0x1b, 0x0c, 0xde, 0xa8, 0x9e, 0x53, 0x70, 0xef, 0x1c, 0x5c, 0x3b, 0x09, 0x35, 0xce,
		0x42, 0x8d, 0xd3, 0x50, 0xe1, 0x3c, 0x64, 0x9d, 0x88, 0xb0, 0x33, 0xc9, 0x9f, 0x30, 0x83, 0x37,
		0x18, 0xbc, 0x21, 0xf9, 0xc1, 0xa9, 0x1d, 0x99, 0xb8, 0x07, 0x69, 0x79, 0x25, 0x66, 0x70, 0x5a,
		0x44, 0x19, 0xbc, 0x81, 0xac, 0xaa, 0x05, 0x08, 0xee, 0x4e, 0x65, 0xf0, 0xc6, 0xf2, 0x42, 0x4b,
		0xe7, 0x6c, 0xce, 0x66, 0xd0, 0x39, 0x0b, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75, 0x01, 0x75,
		0x51, 0x52, 0xea, 0x82, 0xce, 0xd9, 0x4a, 0x80, 0x32, 0x3a, 0x67, 0x81, 0x0f, 0xc0, 0x07, 0xe0,
		0x03, 0xf0, 0x01, 0xf8, 0x20, 0x1a, 0x82, 0xd3, 0x39, 0xeb, 0x42, 0xb7, 0xc8, 0x7e, 0x90, 0xfd,
		0x98, 0xaf, 0x97, 0x64, 0x3f, 0xe8, 0x9c, 0x45, 0x48, 0x55, 0xa2, 0x03, 0x77, 0xa7, 0xd2, 0x39,
		0x5b, 0x02, 0x53, 0x46, 0xe7, 0xec, 0x13, 0xfb, 0xee, 0xf2, 0x86, 0x26, 0xd6, 0xb0, 0xce, 0xed,
		0xc7, 0x3b, 0x1e, 0x3d, 0x1e, 0xd6, 0xb1, 0x3e, 0xe3, 0xf5, 0xb2, 0x8e, 0xd5, 0x16, 0x1d, 0xc6,
		0x3a, 0xd6, 0x0a, 0xd1, 0x5e, 0x74, 0x85, 0xd0, 0x15, 0x52, 0xd8, 0x93, 0xa4, 0x2b, 0x84, 0xae,
		0x90, 0xea, 0x39, 0x05, 0xf7, 0xce, 0xc1, 0xb5, 0x93, 0x50, 0xe3, 0x2c, 0xd4, 0x38, 0x0d, 0x15,
		0xce, 0xc3, 0x0d, 0x0f, 0x41, 0x57, 0x88, 0xb8, 0x75, 0xa7, 0x2b, 0x44, 0xf0, 0x83, 0x93, 0x17,
		0x99, 0xb8, 0x07, 0x94, 0xb3, 0x12, 0x33, 0x38, 0x2d, 0xa2, 0x74, 0x85, 0x20, 0xab, 0x6a, 0x01,
		0x82, 0xbb, 0x53, 0xe9, 0x0a, 0x59, 0x5e, 0x68, 0x59, 0xc7, 0x4a, 0x90, 0x4d, 0x90, 0x4d, 0x90,
		0x4d, 0x90, 0x4d, 0x90, 0x2d, 0xa9, 0xef, 0xf4, 0x2f, 0x54, 0x05, 0x3e, 0xd0, 0x54, 0xea, 0xd1,
		0x54, 0x0a, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0xcc, 0x31,
		0x28, 0xa3, 0xa9, 0x14, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xa2, 0x21, 0x38,
		0x4d, 0xa5, 0x2e, 0x74, 0x8b, 0xe2, 0x09, 0x8a, 0x27, 0xe6, 0xeb, 0x25, 0xc5, 0x13, 0x34, 0x95,
		0x22, 0xa4, 0x2a, 0xd1, 0x81, 0xbb, 0x53, 0x69, 0x2a, 0x2d, 0x81, 0x29, 0xa3, 0xa9, 0x74, 0xe1,
		0xa6, 0x52, 0xf6, 0xb2, 0xfe, 0xa8, 0xa7, 0x94, 0xfd, 0xac, 0x5a, 0x54, 0x9c, 0xfd, 0xac, 0x4f,
		0x55, 0x69, 0x16, 0xb5, 0x4e, 0x2b, 0x71, 0x69, 0x17, 0xb6, 0xbe, 0x2a, 0x91, 0x9a, 0xfa, 0xe6,
		0x26, 0x4b, 0xc2, 0xa0, 0xd7, 0x7f, 0xaf, 0x67, 0x6d, 0xbb, 0x8c, 0x8a, 0xff, 0xed, 0xd2, 0xc4,
		0xd6, 0x79, 0x03, 0xc1, 0x35, 0xa8, 0x6f, 0xdf, 0xe6, 0x7a, 0x1e, 0xf4, 0x75, 0xca, 0xfb, 0x97,
		0xf7, 0xcb, 0x90, 0xed, 0x0b, 0xb2, 0xdb, 0xae, 0x49, 0xdf, 0xed, 0x6f, 0x7c, 0x39, 0x3a, 0x68,
		0xd4, 0x8f, 0xbe, 0xd4, 0x1a, 0x1f, 0x3f, 0xef, 0x7f, 0xaa, 0xff, 0xbe, 0x7b, 0xf2, 0xe9, 0x97,
		0x8a, 0xaf, 0x4d, 0x1d, 0xbc, 0xe4, 0x97, 0xb4, 0x34, 0xf5, 0x99, 0x52, 0x50, 0x89, 0x49, 0x14,
		0x1f, 0x4c, 0xda, 0x4c, 0xa2, 0xae, 0x28, 0x70, 0xcf, 0xd5, 0xaf, 0x1e, 0x37, 0xdb, 0xbd, 0x96,
		0xf1, 0xb2, 0xcb, 0x28, 0xf5, 0x9a, 0x9d, 0x38, 0x0b, 0xa3, 0xd8, 0x24, 0xde, 0x79, 0x27, 0xf1,
		0x72, 0x57, 0xeb, 0xd5, 0x8f, 0xae, 0xb7, 0xbc, 0xc1, 0x1b, 0xf0, 0xd2, 0xae, 0x69, 0x46, 0xe7,
		0x51, 0xf3, 0xaf, 0x91, 0xd3, 0xeb, 0x25, 0x43, 0x58, 0x22, 0x24, 0x33, 0x0e, 0xb2, 0x34, 0x93,
		0x7a, 0xd9, 0x9a, 0x78, 0x55, 0x82, 0x61, 0x83, 0xcb, 0x94, 0xcc, 0x94, 0x9a, 0x16, 0x25, 0x2d,
		0x04, 0x15, 0x4e, 0x7f, 0xfb, 0x69, 0xa9, 0xd0, 0x95, 0x50, 0xf0, 0x53, 0x86, 0xa0, 0xc7, 0xa2,
		0xd1, 0x51, 0x1b, 0xd6, 0xd8, 0x31, 0x16, 0xc5, 0x2b, 0x97, 0x05, 0xf1, 0xf7, 0x27, 0x64, 0xa0,
		0x17, 0x0f, 0x9f, 0x86, 0x2d, 0x15, 0xc8, 0x11, 0xc1, 0x9c, 0x33, 0x2d, 0x29, 0xb6, 0xdd, 0xf1,
		0x54, 0xd6, 0x0b, 0x69, 0x24, 0x0a, 0x66, 0xe4, 0x0a, 0x63, 0xa4, 0xa0, 0x95, 0x78, 0xa1, 0x8b,
		0x38, 0x7a, 0x12, 0x2d, 0x5c, 0x29, 0x17, 0x51, 0x62, 0x7b, 0xfc, 0xd3, 0x54, 0x33, 0xa8, 0x7d,
		0x51, 0x9e, 0xd7, 0x82, 0x6a, 0x5b, 0x9a, 0x65, 0x66, 0xfa, 0x89, 0x55, 0x21, 0x4a, 0x56, 0x1d,
		0xca, 0x57, 0x19, 0xba, 0xe4, 0x90, 0x44, 0xab, 0x08, 0x75, 0xb0, 0x48, 0x52, 0x55, 0x82, 0xe5,
		0x4e, 0x26, 0x49, 0xcd, 0xe0, 0xf3, 0x9b, 0x63, 0x1b, 0x22, 0xcc, 0x69, 0x89, 0xce, 0x0a, 0x76,
		0x36, 0x64, 0x75, 0x95, 0x21, 0xab, 0xe5, 0x37, 0xd8, 0xce, 0x0d, 0xb7, 0x73, 0x03, 0xee, 0xd4,
		0x90, 0xcb, 0x18, 0x74, 0x21, 0xc3, 0x2e, 0x6e, 0xe0, 0xf3, 0x03, 0x19, 0xb2, 0x4a, 0xaf, 0x90,
		0x57, 0x7d, 0xe7, 0xe0, 0xda, 0x49, 0xa8, 0x71, 0x16, 0x6a, 0x9c, 0x86, 0x0a, 0xe7, 0x21, 0xeb,
		0x44, 0x84, 0x9d, 0x49, 0xfe, 0x84, 0x19, 0xb2, 0xca, 0x90, 0x55, 0xc9, 0x0f, 0x4e, 0x9f, 0xd0,
		0xc4, 0x3d, 0x68, 0xc1, 0x50, 0x62, 0x06, 0xa7, 0x45, 0x94, 0x21, 0xab, 0xc8, 0xaa, 0x5a, 0x80,
		0xe0, 0xee, 0x54, 0x86, 0xac, 0x2e, 0x2f, 0xb4, 0x4c, 0x49, 0xcb, 0xd9, 0x0c, 0xa6, 0xa4, 0x41,
		0x5d, 0x40, 0x5d, 0x40, 0x5d, 0x40, 0x5d, 0x40, 0x5d, 0x94, 0x94, 0xba, 0x60, 0x4a, 0x5a, 0x25,
		0x40, 0x19, 0x53, 0xd2, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x20, 0x1a, 0x82,
		0x33, 0x25, 0xcd, 0x85, 0x6e, 0x91, 0xfd, 0x20, 0xfb, 0x31, 0x5f, 0x2f, 0xc9, 0x7e, 0x30, 0x25,
		0x0d, 0x21, 0x55, 0x89, 0x0e, 0xdc, 0x9d, 0xca, 0x94, 0xb4, 0x12, 0x98, 0x32, 0xa6, 0xa4, 0xcd,
		0x74, 0x17, 0x8f, 0xba, 0x3c, 0xa7, 0x06, 0x2a, 0xad, 0x88, 0xd6, 0xd0, 0x7b, 0x0a, 0xfb, 0x8f,
		0x3f, 0xc7, 0x33, 0x43, 0x95, 0x1a, 0x23, 0xd2, 0xa1, 0x2a, 0xd3, 0x0b, 0x44, 0x66, 0x65, 0x85,
		0x99, 0x91, 0xef, 0x00, 0x91, 0x1c, 0xec, 0xe7, 0xac, 0x01, 0x64, 0x9d, 0x06, 0x90, 0xea, 0x30,
		0x5c, 0x34, 0x80, 0xd0, 0x00, 0x52, 0xd8, 0x93, 0xa4, 0x01, 0x84, 0x06, 0x90, 0xea, 0x39, 0x05,
		0xf7, 0xce, 0xc1, 0xb5, 0x93, 0x50, 0xe3, 0x2c, 0xd4, 0x38, 0x0d, 0x15, 0xce, 0xc3, 0x0d, 0xe5,
		0x40, 0x03, 0x88, 0xb8, 0x75, 0xa7, 0x01, 0x44, 0xf0, 0x83, 0x93, 0x02, 0x99, 0xb8, 0x07, 0xec,
		0xb2, 0x12, 0x33, 0x38, 0x2d, 0xa2, 0x34, 0x80, 0x20, 0xab, 0x6a, 0x01, 0x82, 0xbb, 0x53, 0x69,
		0x00, 0x59, 0x5e, 0x68, 0xa7, 0xd6, 0x1b, 0x98, 0x9b, 0xa6, 0x31, 0x2d, 0xd3, 0x72, 0xda, 0x05,
		0x32, 0xe7, 0x3a, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x95, 0x09, 0xb2,
		0x69, 0x55, 0xa8, 0x0a, 0x7c, 0xa0, 0x7f, 0xd4, 0xa3, 0x7f, 0x14, 0x50, 0x06, 0x28, 0x03, 0x94,
		0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x99, 0x63, 0x50, 0x46, 0xff, 0x28, 0xf0, 0x01, 0xf8,
		0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x43, 0x70, 0xfa, 0x47, 0x5d, 0xe8, 0x16, 0xc5, 0x13,
		0x14, 0x4f, 0xcc, 0xd7, 0x4b, 0x8a, 0x27, 0xe8, 0x1f, 0x45, 0x48, 0x55, 0xa2, 0x03, 0x77, 0xa7,
		0xd2, 0x3f, 0x5a, 0x02, 0x53, 0x46, 0xff, 0xe8, 0xd3, 0xfa, 0x47, 0x25, 0x3b, 0xf0, 0xbc, 0x92,
		0xb4, 0x8f, 0x9e, 0x0c, 0x9e, 0x09, 0xbb, 0xaf, 0xdd, 0x6b, 0xb3, 0xb4, 0x16, 0x97, 0x4c, 0x7b,
		0x7d, 0x91, 0xce, 0x60, 0xed, 0xfa, 0xea, 0x97, 0x74, 0xbb, 0xbb, 0x45, 0xdd, 0x99, 0x2e, 0x03,
		0x4c, 0x4c, 0xd3, 0x44, 0xd7, 0x02, 0x55, 0x89, 0xf3, 0xab, 0x10, 0xf3, 0xe3, 0xd9, 0xb8, 0xba,
		0xd0, 0x41, 0x6c, 0x5c, 0x2d, 0x54, 0x3a, 0xd8, 0xb8, 0xca, 0xc6, 0xd5, 0x9f, 0x3c, 0x31, 0x36,
		0xae, 0x96, 0xd0, 0x20, 0x8b, 0x1b, 0x66, 0x17, 0x06, 0xda, 0x9d, 0xa1, 0x76, 0x65, 0xb0, 0x9d,
		0x1b, 0x6e, 0xe7, 0x06, 0xdc, 0xa9, 0x21, 0xaf, 0x26, 0x29, 0xc4, 0xc0, 0x0d, 0x06, 0x6e, 0x54,
		0xcf, 0x29, 0xb8, 0x77, 0x0e, 0xae, 0x9d, 0x84, 0x1a, 0x67, 0xa1, 0xc6, 0x69, 0xa8, 0x70, 0x1e,
		0xb2, 0x4e, 0x44, 0xd8, 0x99, 0xe4, 0x4f, 0x98, 0x81, 0x1b, 0x0c, 0xdc, 0x90, 0xfc, 0xe0, 0xd4,
		0x8c, 0x4c, 0xdc, 0x83, 0x74, 0xbc, 0x12, 0x33, 0x38, 0x2d, 0xa2, 0x0c, 0xdc, 0x40, 0x56, 0xd5,
		0x02, 0x04, 0x77, 0xa7, 0x32, 0x70, 0x63, 0x79, 0xa1, 0xa5, 0x63, 0x36, 0x67, 0x33, 0xe8, 0x98,
		0x85, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x28, 0x29, 0x75, 0x41, 0xc7, 0x6c,
		0x25, 0x40, 0x19, 0x1d, 0xb3, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x0d,
		0xc1, 0xe9, 0x98, 0x75, 0xa1, 0x5b, 0x64, 0x3f, 0xc8, 0x7e, 0xcc, 0xd7, 0x4b, 0xb2, 0x1f, 0x74,
		0xcc, 0x22, 0xa4, 0x2a, 0xd1, 0x81, 0xbb, 0x53, 0xe9, 0x98, 0x2d, 0x81, 0x29, 0xa3, 0x63, 0xf6,
		0x49, 0x3d, 0x77, 0x79, 0x3b, 0x13, 0xab, 0x57, 0xe7, 0xf4, 0xe2, 0x1d, 0x8f, 0x1e, 0x0e, 0x2b,
		0x58, 0x9f, 0xf1, 0x72, 0x59, 0xc1, 0x6a, 0x8b, 0x0a, 0x63, 0x05, 0x6b, 0x85, 0x28, 0x2f, 0x3a,
		0x42, 0xe8, 0x08, 0x29, 0xec, 0x49, 0xd2, 0x11, 0x42, 0x47, 0x48, 0xf5, 0x9c, 0x82, 0x7b, 0xe7,
		0xe0, 0xda, 0x49, 0xa8, 0x71, 0x16, 0x6a, 0x9c, 0x86, 0x0a, 0xe7, 0xe1, 0x86, 0x83, 0xa0, 0x23,
		0x44, 0xdc, 0xba, 0xd3, 0x11, 0x22, 0xf8, 0xc1, 0xc9, 0x89, 0x4c, 0xdc, 0x03, 0xba, 0x59, 0x89,
		0x19, 0x9c, 0x16, 0x51, 0x3a, 0x42, 0x90, 0x55, 0xb5, 0x00, 0xc1, 0xdd, 0xa9, 0x74, 0x84, 0x2c,
		0x2f, 0xb4, 0xac, 0x60, 0x25, 0xc8, 0x26, 0xc8, 0x26, 0xc8, 0x26, 0xc8, 0x26, 0xc8, 0x96, 0xd4,
		0x77, 0x7a, 0x17, 0xaa, 0x02, 0x1f, 0x68, 0x28, 0xf5, 0x68, 0x28, 0x05, 0x94, 0x01, 0xca, 0x00,
		0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0xe6, 0x18, 0x94, 0xd1, 0x50, 0x0a, 0x7c, 0x00,
		0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x10, 0x9c, 0x86, 0x52, 0x17, 0xba, 0x45, 0xf1,
		0x04, 0xc5, 0x13, 0xf3, 0xf5, 0x92, 0xe2, 0x09, 0x1a, 0x4a, 0x11, 0x52, 0x95, 0xe8, 0xc0, 0xdd,
		0xa9, 0x34, 0x94, 0x96, 0xc0, 0x94, 0xd1, 0x50, 0xba, 0x60, 0x43, 0x29, 0xbb, 0x58, 0x1f, 0xef,
		0x27, 0x65, 0x27, 0xab, 0x16, 0xf5, 0x66, 0x27, 0xeb, 0xd3, 0xd4, 0x99, 0xe5, 0xac, 0x93, 0x0a,
		0x5c, 0xda, 0x25, 0xad, 0xaf, 0x4a, 0xa4, 0xa2, 0xbe, 0xb9, 0xc9, 0x92, 0x30, 0xe8, 0xf5, 0xdf,
		0xea, 0x59, 0xdb, 0x2e, 0x93, 0xe2, 0x7f, 0xbb, 0x34, 0xb1, 0x75, 0xbe, 0x40, 0x70, 0xf5, 0xe9,
		0xdb, 0xb7, 0xb9, 0x8e, 0x07, 0x7d, 0x8d, 0xf2, 0xfe, 0xe5, 0xfd, 0x32, 0x64, 0xf9, 0x82, 0xec,
		0xb6, 0x6b, 0xd2, 0x77, 0xfb, 0x1b, 0x5f, 0x8e, 0x0e, 0x1a, 0xf5, 0xa3, 0x2f, 0xb5, 0xc6, 0xe7,
		0x83, 0xfa, 0xef, 0xbb, 0x27, 0x9f, 0x7e, 0xa9, 0xf8, 0xa2, 0xd4, 0xc1, 0x2b, 0x7e, 0x49, 0x6b,
		0x52, 0x9f, 0x25, 0x03, 0x95, 0x98, 0x3e, 0xf1, 0xc1, 0xa4, 0xcd, 0x24, 0xea, 0x8a, 0x82, 0xf5,
		0x5c, 0xf5, 0xea, 0x71, 0xb3, 0xdd, 0x6b, 0x19, 0x2f, 0xbb, 0x8c, 0x52, 0xaf, 0xd9, 0x89, 0xb3,
		0x30, 0x8a, 0x4d, 0xe2, 0x9d, 0x77, 0x12, 0xaf, 0x7e, 0x74, 0x5d, 0xf3, 0x46, 0x7e, 0xc5, 0x1b,
		0x3c, 0x7d, 0x2f, 0xed, 0x9a, 0x66, 0x74, 0x1e, 0x35, 0xff, 0x1a, 0x39, 0xbb, 0x5e, 0x32, 0x04,
		0x23, 0x42, 0xf2, 0xe2, 0x20, 0x2f, 0x33, 0xa9, 0x93, 0xad, 0x89, 0x17, 0x25, 0x18, 0x2a, 0xb8,
		0x4c, 0xc2, 0x4c, 0xa9, 0x68, 0x31, 0xb2, 0x42, 0x20, 0xe1, 0xf4, 0xb7, 0x9f, 0x96, 0x0a, 0x55,
		0x09, 0x05, 0x3c, 0xfa, 0x03, 0x1d, 0x8b, 0x06, 0x47, 0x69, 0x28, 0x63, 0xc7, 0x50, 0x14, 0xaf,
		0x58, 0x16, 0x44, 0xdf, 0xcf, 0xdf, 0xff, 0x56, 0x70, 0xd5, 0x6b, 0x67, 0xc3, 0xe7, 0x61, 0x4b,
		0x01, 0x72, 0x2c, 0x30, 0xf7, 0x54, 0x4b, 0x8a, 0x6d, 0x77, 0x1c, 0x95, 0xf5, 0xc2, 0x19, 0x89,
		0x02, 0x19, 0xb9, 0x42, 0x18, 0x29, 0x60, 0x25, 0x5e, 0xd8, 0x22, 0x8e, 0x9d, 0x44, 0x0b, 0x55,
		0xca, 0x45, 0x90, 0xd8, 0x1e, 0xf7, 0x34, 0xd5, 0xfc, 0x69, 0x5f, 0x94, 0xe7, 0xb5, 0x9c, 0xda,
		0x96, 0x66, 0x99, 0x19, 0x7e, 0x62, 0x55, 0x87, 0x92, 0x55, 0x86, 0xf2, 0x55, 0x85, 0x2e, 0xd9,
		0x23, 0xd1, 0xaa, 0x41, 0x1d, 0xfc, 0x91, 0x54, 0x55, 0x60, 0xb9, 0x13, 0x48, 0x52, 0x33, 0xf7,
		0xfc, 0xe6, 0xd8, 0x86, 0x08, 0xf3, 0x59, 0xa2, 0x93, 0x81, 0x9d, 0x0d, 0x55, 0x5d, 0x65, 0xa8,
		0x6a, 0xf9, 0x0d, 0xb6, 0x73, 0xc3, 0xed, 0xdc, 0x80, 0x3b, 0x35, 0xe4, 0x32, 0x06, 0x5d, 0xc8,
		0xb0, 0x8b, 0x1b, 0xf8, 0xfc, 0x40, 0x86, 0xaa, 0xd2, 0x1b, 0xe4, 0x55, 0xdf, 0x39, 0xb8, 0x76,
		0x12, 0x6a, 0x9c, 0x85, 0x1a, 0xa7, 0xa1, 0xc2, 0x79, 0xc8, 0x3a, 0x11, 0x61, 0x67, 0x92, 0x3f,
		0x61, 0x86, 0xaa, 0x32, 0x54, 0x55, 0xf2, 0x83, 0xd3, 0x17, 0x34, 0x71, 0x0f, 0x5a, 0x2e, 0x94,
		0x98, 0xc1, 0x69, 0x11, 0x65, 0xa8, 0x2a, 0xb2, 0xaa, 0x16, 0x20, 0xb8, 0x3b, 0x95, 0xa1, 0xaa,
		0xcb, 0x0b, 0x2d, 0x53, 0xd1, 0x72, 0x36, 0x83, 0xa9, 0x68, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17,
		0x50, 0x17, 0x50, 0x17, 0x25, 0xa5, 0x2e, 0x98, 0x8a, 0x56, 0x09, 0x50, 0xc6, 0x54, 0x34, 0xe0,
		0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0x86, 0xe0, 0x4c, 0x45, 0x73, 0xa1, 0x5b,
		0x64, 0x3f, 0xc8, 0x7e, 0xcc, 0xd7, 0x4b, 0xb2, 0x1f, 0x4c, 0x45, 0x43, 0x48, 0x55, 0xa2, 0x03,
		0x77, 0xa7, 0x32, 0x15, 0xad, 0x04, 0xa6, 0x8c, 0xa9, 0x68, 0x0f, 0xba, 0x8b, 0x27, 0xfa, 0x3c,
		0xa7, 0x06, 0x29, 0xad, 0x88, 0x56, 0xd1, 0x7b, 0xfa, 0x7a, 0x90, 0xb7, 0x3e, 0x8e, 0x9f, 0xcb,
		0xe4, 0x40, 0xa5, 0xc6, 0x88, 0x78, 0xa8, 0xca, 0x04, 0x03, 0x91, 0x29, 0x59, 0x61, 0x66, 0xe4,
		0xbb, 0x40, 0x24, 0xc7, 0xf9, 0x39, 0x6b, 0x02, 0x59, 0xa7, 0x09, 0xa4, 0x3a, 0x2c, 0x17, 0x4d,
		0x20, 0x34, 0x81, 0x14, 0xf6, 0x24, 0x69, 0x02, 0xa1, 0x09, 0xa4, 0x7a, 0x4e, 0xc1, 0xbd, 0x73,
		0x70, 0xed, 0x24, 0xd4, 0x38, 0x0b, 0x35, 0x4e, 0x43, 0x85, 0xf3, 0x70, 0x43, 0x3b, 0xd0, 0x04,
		0x22, 0x6e, 0xdd, 0x69, 0x02, 0x11, 0xfc, 0xe0, 0xa4, 0x41, 0x26, 0xee, 0x01, 0xc3, 0xac, 0xc4,
		0x0c, 0x4e, 0x8b, 0x28, 0x4d, 0x20, 0xc8, 0xaa, 0x5a, 0x80, 0xe0, 0xee, 0x54, 0x9a, 0x40, 0x96,
		0x17, 0xda, 0xa9, 0xc5, 0x06, 0xe6, 0xa6, 0x69, 0x4c, 0xcb, 0xb4, 0x9c, 0x76, 0x82, 0xcc, 0xb9,
		0x0e, 0x41, 0x36, 0x41, 0x36, 0x41, 0x36, 0x41, 0x36, 0x41, 0x76, 0x65, 0x82, 0x6c, 0xda, 0x15,
		0xaa, 0x02, 0x1f, 0xe8, 0x21, 0xf5, 0xe8, 0x21, 0x05, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32,
		0x40, 0x19, 0xa0, 0x0c, 0x50, 0xe6, 0x18, 0x94, 0xd1, 0x43, 0x0a, 0x7c, 0x00, 0x3e, 0x00, 0x1f,
		0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x10, 0x9c, 0x1e, 0x52, 0x17, 0xba, 0x45, 0xf1, 0x04, 0xc5, 0x13,
		0xf3, 0xf5, 0x92, 0xe2, 0x09, 0x7a, 0x48, 0x11, 0x52, 0x95, 0xe8, 0xc0, 0xdd, 0xa9, 0xf4, 0x90,
		0x96, 0xc0, 0x94, 0xd1, 0x43, 0xfa, 0xd4, 0x1e, 0x52, 0xc9, 0x1e, 0x3c, 0xaf, 0x34, 0x2d, 0xa4,
		0x27, 0x83, 0xa7, 0xc2, 0x0e, 0x6c, 0xf7, 0x1a, 0x2d, 0xad, 0xc9, 0xa5, 0xd3, 0x60, 0x5f, 0xa4,
		0x3f, 0x58, 0xbf, 0xce, 0xfa, 0x25, 0xdd, 0xf4, 0x6e, 0x51, 0x7f, 0xa6, 0xcb, 0x01, 0x13, 0xd3,
		0x34, 0xd1, 0xb5, 0x40, 0x75, 0xe2, 0xfc, 0x6a, 0xc4, 0xfc, 0x78, 0xb6, 0xaf, 0x2e, 0x74, 0x10,
		0xdb, 0x57, 0x0b, 0x95, 0x0e, 0xb6, 0xaf, 0xb2, 0x7d, 0xf5, 0x27, 0x4f, 0x8c, 0xed, 0xab, 0x25,
		0x34, 0xc8, 0xe2, 0x86, 0xd9, 0x85, 0x81, 0x76, 0x67, 0xa8, 0x5d, 0x19, 0x6c, 0xe7, 0x86, 0xdb,
		0xb9, 0x01, 0x77, 0x6a, 0xc8, 0xab, 0x49, 0x0e, 0x31, 0x78, 0x83, 0xc1, 0x1b, 0xd5, 0x73, 0x0a,
		0xee, 0x9d, 0x83, 0x6b, 0x27, 0xa1, 0xc6, 0x59, 0xa8, 0x71, 0x1a, 0x2a, 0x9c, 0x87, 0xac, 0x13,
		0x11, 0x76, 0x26, 0xf9, 0x13, 0x66, 0xf0, 0x06, 0x83, 0x37, 0x24, 0x3f, 0x38, 0xb5, 0x23, 0x13,
		0xf7, 0x20, 0x2d, 0xaf, 0xc4, 0x0c, 0x4e, 0x8b, 0x28, 0x83, 0x37, 0x90, 0x55, 0xb5, 0x00, 0xc1,
		0xdd, 0xa9, 0x0c, 0xde, 0x58, 0x5e, 0x68, 0xe9, 0x9c, 0xcd, 0xd9, 0x0c, 0x3a, 0x67, 0xa1, 0x2e,
		0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0x4a, 0x4a, 0x5d, 0xd0, 0x39, 0x5b, 0x09, 0x50,
		0x46, 0xe7, 0x2c, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x43, 0x70, 0x3a,
		0x67, 0x5d, 0xe8, 0x16, 0xd9, 0x0f, 0xb2, 0x1f, 0xf3, 0xf5, 0x92, 0xec, 0x07, 0x9d, 0xb3, 0x08,
		0xa9, 0x4a, 0x74, 0xe0, 0xee, 0x54, 0x3a, 0x67, 0x4b, 0x60, 0xca, 0xe8, 0x9c, 0x7d, 0x62, 0xdf,
		0x5d, 0xde, 0xd0, 0xc4, 0x1a, 0xd6, 0xb9, 0xfd, 0x78, 0xc7, 0xa3, 0xc7, 0xc3, 0x3a, 0xd6, 0x67,
		0xbc, 0x5e, 0xd6, 0xb1, 0xda, 0xa2, 0xc3, 0x58, 0xc7, 0x5a, 0x21, 0xda, 0x8b, 0xae, 0x10, 0xba,
		0x42, 0x0a, 0x7b, 0x92, 0x74, 0x85, 0xd0, 0x15, 0x52, 0x3d, 0xa7, 0xe0, 0xde, 0x39, 0xb8, 0x76,
		0x12, 0x6a, 0x9c, 0x85, 0x1a, 0xa7, 0xa1, 0xc2, 0x79, 0xb8, 0xe1, 0x21, 0xe8, 0x0a, 0x11, 0xb7,
		0xee, 0x74, 0x85, 0x08, 0x7e, 0x70, 0xf2, 0x22, 0x13, 0xf7, 0x80, 0x72, 0x56, 0x62, 0x06, 0xa7,
		0x45, 0x94, 0xae, 0x10, 0x64, 0x55, 0x2d, 0x40, 0x70, 0x77, 0x2a, 0x5d, 0x21, 0xcb, 0x0b, 0x2d,
		0xeb, 0x58, 0x09, 0xb2, 0x09, 0xb2, 0x09, 0xb2, 0x09, 0xb2, 0x09, 0xb2, 0x25, 0xf5, 0x9d, 0xfe,
		0x85, 0xaa, 0xc0, 0x07, 0x9a, 0x4a, 0x3d, 0x9a, 0x4a, 0x01, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0,
		0x0c, 0x50, 0x06, 0x28, 0x03, 0x94, 0x39, 0x06, 0x65, 0x34, 0x95, 0x02, 0x1f, 0x80, 0x0f, 0xc0,
		0x07, 0xe0, 0x03, 0xf0, 0x41, 0x34, 0x04, 0xa7, 0xa9, 0xd4, 0x85, 0x6e, 0x51, 0x3c, 0x41, 0xf1,
		0xc4, 0x7c, 0xbd, 0xa4, 0x78, 0x82, 0xa6, 0x52, 0x84, 0x54, 0x25, 0x3a, 0x70, 0x77, 0x2a, 0x4d,
		0xa5, 0x25, 0x30, 0x65, 0x34, 0x95, 0x2e, 0xdc, 0x54, 0xca, 0x5e, 0xd6, 0x1f, 0xf5, 0x94, 0xb2,
		0x9f, 0x55, 0x8b, 0x8a, 0xb3, 0x9f, 0xf5, 0xa9, 0x2a, 0xcd, 0xa2, 0xd6, 0x69, 0x25, 0x2e, 0xed,
		0xc2, 0xd6, 0x57, 0x25, 0x52, 0x53, 0xdf, 0xdc, 0x64, 0x49, 0x18, 0xf4, 0xfa, 0xef, 0xf5, 0xac,
		0x6d, 0x97, 0x51, 0xf1, 0xbf, 0x5d, 0x9a, 0xd8, 0x3a, 0x6f, 0x20, 0xb8, 0x06, 0xf5, 0xed, 0xdb,
		0x5c, 0xcf, 0x83, 0xbe, 0x4e, 0x79, 0xff, 0xf2, 0x7e, 0x19, 0xb2, 0x7d, 0x41, 0x76, 0xdb, 0x35,
		0xe9, 0xbb, 0xfd, 0x8d, 0x2f, 0x47, 0x07, 0x8d, 0xfa, 0xd1, 0x97, 0xad, 0xc6, 0xc7, 0xcf, 0xfb,
		0x9f, 0xea, 0xbf, 0xef, 0x9e, 0x7c, 0xfa, 0xa5, 0xe2, 0x6b, 0x53, 0x07, 0x2f, 0xf9, 0x25, 0x2d,
		0x4d, 0x7d, 0xa6, 0x14, 0x54, 0x62, 0x12, 0xc5, 0x07, 0x93, 0x36, 0x93, 0xa8, 0x2b, 0x0a, 0xdc,
		0x73, 0xf5, 0xab, 0xc7, 0xcd, 0x76, 0xaf, 0x65, 0xbc, 0xec, 0x32, 0x4a, 0xbd, 0x66, 0x27, 0xce,
		0xc2, 0x28, 0x36, 0x89, 0x77, 0xde, 0x49, 0xbc, 0xdc, 0xd5, 0x7a, 0xf5, 0xa3, 0xeb, 0x2d, 0x6f,
		0xf0, 0x06, 0xbc, 0xb4, 0x6b, 0x9a, 0xd1, 0x79, 0xd4, 0xfc, 0x6b, 0xe4, 0xf4, 0x7a, 0xc9, 0x10,
		0x96, 0x08, 0xc9, 0x8c, 0x83, 0x2c, 0xcd, 0xa4, 0x5e, 0xb6, 0x26, 0x5e, 0x95, 0x60, 0xd8, 0xe0,
		0x32, 0x25, 0x33, 0xa5, 0xa6, 0x45, 0x49, 0x0b, 0x41, 0x85, 0xd3, 0xdf, 0x7e, 0x5a, 0x2a, 0x74,
		0x25, 0x14, 0xfc, 0x94, 0x21, 0xe8, 0xb1, 0x68, 0x74, 0xd4, 0x86, 0x35, 0x76, 0x8c, 0x45, 0xf1,
		0xca, 0x65, 0x41, 0xfc, 0xfd, 0x09, 0x19, 0xe8, 0xc5, 0xc3, 0xa7, 0x61, 0x4b, 0x05, 0x72, 0x44,
		0x30, 0xe7, 0x4c, 0x4b, 0x8a, 0x6d, 0x77, 0x3c, 0x95, 0xf5, 0x42, 0x1a, 0x89, 0x82, 0x19, 0xb9,
		0xc2, 0x18, 0x29, 0x68, 0x25, 0x5e, 0xe8, 0x22, 0x8e, 0x9e, 0x44, 0x0b, 0x57, 0xca, 0x45, 0x94,
		0xd8, 0x1e, 0xff, 0x34, 0xd5, 0x0c, 0x6a, 0x5f, 0x94, 0xe7, 0xb5, 0xa0, 0xda, 0x96, 0x66, 0x99,
		0x99, 0x7e, 0x62, 0x55, 0x88, 0x92, 0x55, 0x87, 0xf2, 0x55, 0x86, 0x2e, 0x39, 0x24, 0xd1, 0x2a,
		0x42, 0x1d, 0x2c, 0x92, 0x54, 0x95, 0x60, 0xb9, 0x93, 0x49, 0x52, 0x33, 0xf8, 0xfc, 0xe6, 0xd8,
		0x86, 0x08, 0x73, 0x5a, 0xa2, 0xb3, 0x82, 0x9d, 0x0d, 0x59, 0x5d, 0x65, 0xc8, 0x6a, 0xf9, 0x0d,
		0xb6, 0x73, 0xc3, 0xed, 0xdc, 0x80, 0x3b, 0x35, 0xe4, 0x32, 0x06, 0x5d, 0xc8, 0xb0, 0x8b, 0x1b,
		0xf8, 0xfc, 0x40, 0x86, 0xac, 0xd2, 0x2b, 0xe4, 0x55, 0xdf, 0x39, 0xb8, 0x76, 0x12, 0x6a, 0x9c,
		0x85, 0x1a, 0xa7, 0xa1, 0xc2, 0x79, 0xc8, 0x3a, 0x11, 0x61, 0x67, 0x92, 0x3f, 0x61, 0x86, 0xac,
		0x32, 0x64, 0x55, 0xf2, 0x83, 0xd3, 0x27, 0x34, 0x71, 0x0f, 0x5a, 0x30, 0x94, 0x98, 0xc1, 0x69,
		0x11, 0x65, 0xc8, 0x2a, 0xb2, 0xaa, 0x16, 0x20, 0xb8, 0x3b, 0x95, 0x21, 0xab, 0xcb, 0x0b, 0x2d,
		0x53, 0xd2, 0x72, 0x36, 0x83, 0x29, 0x69, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50, 0x17, 0x50,
		0x17, 0x25, 0xa5, 0x2e, 0x98, 0x92, 0x56, 0x09, 0x50, 0xc6, 0x94, 0x34, 0xe0, 0x03, 0xf0, 0x01,
		0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x88, 0x86, 0xe0, 0x4c, 0x49, 0x73, 0xa1, 0x5b, 0x64, 0x3f, 0xc8,
		0x7e, 0xcc, 0xd7, 0x4b, 0xb2, 0x1f, 0x4c, 0x49, 0x43, 0x48, 0x55, 0xa2, 0x03, 0x77, 0xa7, 0x32,
		0x25, 0xad, 0x04, 0xa6, 0x8c, 0x29, 0x69, 0x33, 0xdd, 0xc5, 0xa3, 0x2e, 0xcf, 0xa9, 0x81, 0x4a,
		0x2b, 0xa2, 0x35, 0xf4, 0x9e, 0xc2, 0xfe, 0xe3, 0xcf, 0xf1, 0xcc, 0x50, 0xa5, 0xc6, 0x88, 0x74,
		0xa8, 0xca, 0xf4, 0x02, 0x91, 0x59, 0x59, 0x61, 0x66, 0xe4, 0x3b, 0x40, 0x24, 0x07, 0xfb, 0x39,
		0x6b, 0x00, 0x59, 0xa7, 0x01, 0xa4, 0x3a, 0x0c, 0x17, 0x0d, 0x20, 0x34, 0x80, 0x14, 0xf6, 0x24,
		0x69, 0x00, 0xa1, 0x01, 0xa4, 0x7a, 0x4e, 0xc1, 0xbd, 0x73, 0x70, 0xed, 0x24, 0xd4, 0x38, 0x0b,
		0x35, 0x4e, 0x43, 0x85, 0xf3, 0x70, 0x43, 0x39, 0xd0, 0x00, 0x22, 0x6e, 0xdd, 0x69, 0x00, 0x11,
		0xfc, 0xe0, 0xa4, 0x40, 0x26, 0xee, 0x01, 0xbb, 0xac, 0xc4, 0x0c, 0x4e, 0x8b, 0x28, 0x0d, 0x20,
		0xc8, 0xaa, 0x5a, 0x80, 0xe0, 0xee, 0x54, 0x1a, 0x40, 0x96, 0x17, 0xda, 0xa9, 0xf5, 0x06, 0xe6,
		0xa6, 0x69, 0x4c, 0xcb, 0xb4, 0x9c, 0x76, 0x81, 0xcc, 0xb9, 0x0e, 0x41, 0x36, 0x41, 0x36, 0x41,
		0x36, 0x41, 0x36, 0x41, 0x76, 0x65, 0x82, 0x6c, 0x5a, 0x15, 0xaa, 0x02, 0x1f, 0xe8, 0x1f, 0xf5,
		0xe8, 0x1f, 0x05, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0xe6,
		0x18, 0x94, 0xd1, 0x3f, 0x0a, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xd1, 0x10,
		0x9c, 0xfe, 0x51, 0x17, 0xba, 0x45, 0xf1, 0x04, 0xc5, 0x13, 0xf3, 0xf5, 0x92, 0xe2, 0x09, 0xfa,
		0x47, 0x11, 0x52, 0x95, 0xe8, 0xc0, 0xdd, 0xa9, 0xf4, 0x8f, 0x96, 0xc0, 0x94, 0xd1, 0x3f, 0xfa,
		0xb4, 0xfe, 0x51, 0xc9, 0x0e, 0x3c, 0xaf, 0x24, 0xed, 0xa3, 0x27, 0x83, 0x67, 0xc2, 0xee, 0x6b,
		0xf7, 0xda, 0x2c, 0xad, 0xc5, 0x25, 0xd3, 0x5e, 0x5f, 0xa4, 0x33, 0x58, 0xbb, 0xbe, 0xfa, 0x25,
		0xdd, 0xee, 0x6e, 0x51, 0x77, 0xa6, 0xcb, 0x00, 0x13, 0xd3, 0x34, 0xd1, 0xb5, 0x40, 0x55, 0xe2,
		0xfc, 0x2a, 0xc4, 0xfc, 0x78, 0x36, 0xae, 0x2e, 0x74, 0x10, 0x1b, 0x57, 0x0b, 0x95, 0x0e, 0x36,
		0xae, 0xb2, 0x71, 0xf5, 0x27, 0x4f, 0x8c, 0x8d, 0xab, 0x25, 0x34, 0xc8, 0xe2, 0x86, 0xd9, 0x85,
		0x81, 0x76, 0x67, 0xa8, 0x5d, 0x19, 0x6c, 0xe7, 0x86, 0xdb, 0xb9, 0x01, 0x77, 0x6a, 0xc8, 0xab,
		0x49, 0x0a, 0x31, 0x70, 0x83, 0x81, 0x1b, 0xd5, 0x73, 0x0a, 0xee, 0x9d, 0x83, 0x6b, 0x27, 0xa1,
		0xc6, 0x59, 0xa8, 0x71, 0x1a, 0x2a, 0x9c, 0x87, 0xac, 0x13, 0x11, 0x76, 0x26, 0xf9, 0x13, 0x66,
		0xe0, 0x06, 0x03, 0x37, 0x24, 0x3f, 0x38, 0x35, 0x23, 0x13, 0xf7, 0x20, 0x1d, 0xaf, 0xc4, 0x0c,
		0x4e, 0x8b, 0x28, 0x03, 0x37, 0x90, 0x55, 0xb5, 0x00, 0xc1, 0xdd, 0xa9, 0x0c, 0xdc, 0x58, 0x5e,
		0x68, 0xe9, 0x98, 0xcd, 0xd9, 0x0c, 0x3a, 0x66, 0xa1, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e, 0xa0, 0x2e,
		0xa0, 0x2e, 0x4a, 0x4a, 0x5d, 0xd0, 0x31, 0x5b, 0x09, 0x50, 0x46, 0xc7, 0x2c, 0xf0, 0x01, 0xf8,
		0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x44, 0x43, 0x70, 0x3a, 0x66, 0x5d, 0xe8, 0x16, 0xd9, 0x0f,
		0xb2, 0x1f, 0xf3, 0xf5, 0x92, 0xec, 0x07, 0x1d, 0xb3, 0x08, 0xa9, 0x4a, 0x74, 0xe0, 0xee, 0x54,
		0x3a, 0x66, 0x4b, 0x60, 0xca, 0xe8, 0x98, 0x7d, 0x52, 0xcf, 0x5d, 0xde, 0xce, 0xc4, 0xea, 0xd5,
		0x39, 0xbd, 0x78, 0xc7, 0xa3, 0x87, 0xc3, 0x0a, 0xd6, 0x67, 0xbc, 0x5c, 0x56, 0xb0, 0xda, 0xa2,
		0xc2, 0x58, 0xc1, 0x5a, 0x21, 0xca, 0x8b, 0x8e, 0x10, 0x3a, 0x42, 0x0a, 0x7b, 0x92, 0x74, 0x84,
		0xd0, 0x11, 0x52, 0x3d, 0xa7, 0xe0, 0xde, 0x39, 0xb8, 0x76, 0x12, 0x6a, 0x9c, 0x85, 0x1a, 0xa7,
		0xa1, 0xc2, 0x79, 0xb8, 0xe1, 0x20, 0xe8, 0x08, 0x11, 0xb7, 0xee, 0x74, 0x84, 0x08, 0x7e, 0x70,
		0x72, 0x22, 0x13, 0xf7, 0x80, 0x6e, 0x56, 0x62, 0x06, 0xa7, 0x45, 0x94, 0x8e, 0x10, 0x64, 0x55,
		0x2d, 0x40, 0x70, 0x77, 0x2a, 0x1d, 0x21, 0xcb, 0x0b, 0x2d, 0x2b, 0x58, 0x09, 0xb2, 0x09, 0xb2,
		0x09, 0xb2, 0x09, 0xb2, 0x09, 0xb2, 0x25, 0xf5, 0x9d, 0xde, 0x85, 0xaa, 0xc0, 0x07, 0x1a, 0x4a,
		0x3d, 0x1a, 0x4a, 0x01, 0x65, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94,
		0x39, 0x06, 0x65, 0x34, 0x94, 0x02, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x41, 0x34,
		0x04, 0xa7, 0xa1, 0xd4, 0x85, 0x6e, 0x51, 0x3c, 0x41, 0xf1, 0xc4, 0x7c, 0xbd, 0xa4, 0x78, 0x82,
		0x86, 0x52, 0x84, 0x54, 0x25, 0x3a, 0x70, 0x77, 0x2a, 0x0d, 0xa5, 0x25, 0x30, 0x65, 0x34, 0x94,
		0x2e, 0xd8, 0x50, 0xca, 0x2e, 0xd6, 0xc7, 0xfb, 0x49, 0xd9, 0xc9, 0xaa, 0x45, 0xbd, 0xd9, 0xc9,
		0xfa, 0x34, 0x75, 0x66, 0x39, 0xeb, 0xa4, 0x02, 0x97, 0x76, 0x49, 0xeb, 0xab, 0x12, 0xa9, 0xa8,
		0x6f, 0x6e, 0xb2, 0x24, 0x0c, 0x7a, 0xfd, 0xb7, 0x7a, 0xd6, 0xb6, 0xcb, 0xa4, 0xf8, 0xdf, 0x2e,
		0x4d, 0x6c, 0x9d, 0x2f, 0x10, 0x5c, 0x7d, 0xfa, 0xf6, 0x6d, 0xae, 0xe3, 0x41, 0x5f, 0xa3, 0xbc,
		0x7f, 0x79, 0xbf, 0x0c, 0x59, 0xbe, 0x20, 0xbb, 0xed, 0x9a, 0xf4, 0xdd, 0xfe, 0xc6, 0x97, 0xa3,
		0x83, 0x46, 0xfd, 0xe8, 0xcb, 0x56, 0xe3, 0xf3, 0x41, 0xfd, 0xf7, 0xdd, 0x93, 0x4f, 0xbf, 0x54,
		0x7c, 0x51, 0xea, 0xe0, 0x15, 0xbf, 0xa4, 0x35, 0xa9, 0xcf, 0x92, 0x81, 0x4a, 0x4c, 0x9f, 0xf8,
		0x60, 0xd2, 0x66, 0x12, 0x75, 0x45, 0xc1, 0x7a, 0xae, 0x7a, 0xf5, 0xb8, 0xd9, 0xee, 0xb5, 0x8c,
		0x97, 0x5d, 0x46, 0xa9, 0xd7, 0xec, 0xc4, 0x59, 0x18, 0xc5, 0x26, 0xf1, 0xce, 0x3b, 0x89, 0x37,
		0x72, 0xb1, 0x5e, 0xfd, 0xe8, 0x7a, 0xcb, 0x1b, 0x3c, 0x7d, 0x2f, 0xed, 0x9a, 0x66, 0x74, 0x1e,
		0x35, 0xff, 0x1a, 0x39, 0xbb, 0x5e, 0x32, 0x04, 0x23, 0x42, 0xf2, 0xe2, 0x20, 0x2f, 0x33, 0xa9,
		0x93, 0xad, 0x89, 0x17, 0x25, 0x18, 0x2a, 0xb8, 0x4c, 0xc2, 0x4c, 0xa9, 0x68, 0x31, 0xb2, 0x42,
		0x20, 0xe1, 0xf4, 0xb7, 0x9f, 0x96, 0x0a, 0x55, 0x09, 0x05, 0x3c, 0xfa, 0x03, 0x1d, 0x8b, 0x06,
		0x47, 0x69, 0x28, 0x63, 0xc7, 0x50, 0x14, 0xaf, 0x58, 0x16, 0x44, 0xdf, 0x4f, 0x93, 0xcc, 0x04,
		0xdd, 0x4e, 0x3b, 0x6a, 0xde, 0xf6, 0xa5, 0xa0, 0x66, 0x4d, 0xf8, 0xef, 0x67, 0x51, 0x3d, 0x3c,
		0xd1, 0x92, 0x42, 0xdb, 0x1d, 0x43, 0x65, 0xbd, 0x60, 0x46, 0xa2, 0x30, 0x46, 0xae, 0x00, 0x46,
		0x0a, 0x50, 0x89, 0x17, 0xb4, 0x88, 0x63, 0x26, 0xd1, 0x02, 0x95, 0x72, 0x11, 0x23, 0xb6, 0xc7,
		0x3c, 0x4d, 0x35, 0x7d, 0xda, 0x17, 0xe5, 0x79, 0xad, 0xa6, 0xb6, 0xa5, 0x59, 0x66, 0x76, 0x9f,
		0x58, 0xb5, 0xa1, 0x64, 0x75, 0xa1, 0x7c, 0x35, 0xa1, 0x4b, 0xd6, 0x48, 0xb4, 0x5a, 0x50, 0x07,
		0x6f, 0x24, 0x55, 0x0d, 0x58, 0xee, 0xc4, 0x91, 0xd4, 0xac, 0x3d, 0xbf, 0x39, 0xb6, 0x21, 0xc2,
		0x3c, 0x96, 0xe8, 0x44, 0x60, 0x67, 0xc3, 0x54, 0x57, 0x19, 0xa6, 0x5a, 0x7e, 0x83, 0xed, 0xdc,
		0x70, 0x3b, 0x37, 0xe0, 0x4e, 0x0d, 0xb9, 0x8c, 0x41, 0x17, 0x32, 0xec, 0xe2, 0x06, 0x3e, 0x3f,
		0x90, 0x61, 0xaa, 0xf4, 0x04, 0x79, 0xd5, 0x77, 0x0e, 0xae, 0x9d, 0x84, 0x1a, 0x67, 0xa1, 0xc6,
		0x69, 0xa8, 0x70, 0x1e, 0xb2, 0x4e, 0x44, 0xd8, 0x99, 0xe4, 0x4f, 0x98, 0x61, 0xaa, 0x0c, 0x53,
		0x95, 0xfc, 0xe0, 0xf4, 0x03, 0x4d, 0xdc, 0x83, 0x56, 0x0b, 0x25, 0x66, 0x70, 0x5a, 0x44, 0x19,
		0xa6, 0x8a, 0xac, 0xaa, 0x05, 0x08, 0xee, 0x4e, 0x65, 0x98, 0xea, 0xf2, 0x42, 0xcb, 0x34, 0xb4,
		0x9c, 0xcd, 0x60, 0x1a, 0x1a, 0xd4, 0x05, 0xd4, 0x05, 0xd4, 0x05, 0xd4, 0x05, 0xd4, 0x45, 0x49,
		0xa9, 0x0b, 0xa6, 0xa1, 0x55, 0x02, 0x94, 0x31, 0x0d, 0x0d, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00,
		0x1f, 0x80, 0x0f, 0xa2, 0x21, 0x38, 0xd3, 0xd0, 0x5c, 0xe8, 0x16, 0xd9, 0x0f, 0xb2, 0x1f, 0xf3,
		0xf5, 0x92, 0xec, 0x07, 0xd3, 0xd0, 0x10, 0x52, 0x95, 0xe8, 0xc0, 0xdd, 0xa9, 0x4c, 0x43, 0x2b,
		0x81, 0x29, 0x63, 0x1a, 0xda, 0xb0, 0xab, 0xf8, 0x61, 0x8f, 0xe7, 0xd4, 0xf0, 0xa4, 0x15, 0xd1,
		0x0a, 0x7a, 0x4f, 0x4f, 0xdf, 0xf1, 0x49, 0x92, 0x99, 0xa3, 0xc1, 0x43, 0xa9, 0x77, 0xaf, 0x6b,
		0x93, 0x03, 0x94, 0x1a, 0x23, 0xc2, 0xa1, 0x2a, 0x13, 0x0b, 0x44, 0xa6, 0x62, 0x85, 0x99, 0x91,
		0xef, 0xfe, 0x90, 0x1c, 0xdf, 0xe7, 0xac, 0xf9, 0x63, 0x9d, 0xe6, 0x8f, 0xea, 0xb0, 0x5b, 0x34,
		0x7f, 0xd0, 0xfc, 0x51, 0xd8, 0x93, 0xa4, 0xf9, 0x83, 0xe6, 0x8f, 0xea, 0x39, 0x05, 0xf7, 0xce,
		0xc1, 0xb5, 0x93, 0x50, 0xe3, 0x2c, 0xd4, 0x38, 0x0d, 0x15, 0xce, 0xc3, 0x0d, 0xdd, 0x40, 0xf3,
		0x87, 0xb8, 0x75, 0xa7, 0xf9, 0x43, 0xf0, 0x83, 0x93, 0xfe, 0x98, 0xb8, 0x07, 0xcc, 0xb2, 0x12,
		0x33, 0x38, 0x2d, 0xa2, 0x34, 0x7f, 0x20, 0xab, 0x6a, 0x01, 0x82, 0xbb, 0x53, 0x69, 0xfe, 0x58,
		0x5e, 0x68, 0xa7, 0x16, 0x19, 0x98, 0x9b, 0xa6, 0x31, 0x2d, 0xd3, 0x72, 0xda, 0x01, 0x32, 0xe7,
		0x3a, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x04, 0xd9, 0x95, 0x09, 0xb2, 0x69, 0x53,
		0xa8, 0x0a, 0x7c, 0xa0, 0x77, 0xd4, 0xa3, 0x77, 0x14, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca,
		0x00, 0x65, 0x80, 0x32, 0x40, 0x99, 0x63, 0x50, 0x46, 0xef, 0x28, 0xf0, 0x01, 0xf8, 0x00, 0x7c,
		0x00, 0x3e, 0x00, 0x1f, 0x44, 0x43, 0x70, 0x7a, 0x47, 0x5d, 0xe8, 0x16, 0xc5, 0x13, 0x14, 0x4f,
		0xcc, 0xd7, 0x4b, 0x8a, 0x27, 0xe8, 0x1d, 0x45, 0x48, 0x55, 0xa2, 0x03, 0x77, 0xa7, 0xd2, 0x3b,
		0x5a, 0x02, 0x53, 0x46, 0xef, 0xe8, 0x53, 0x7a, 0x47, 0x25, 0xfb, 0xef, 0xbc, 0x52, 0xb4, 0x8e,
		0x9e, 0x0c, 0x9e, 0x08, 0xbb, 0xae, 0xdd, 0x6b, 0xb2, 0xb4, 0x06, 0x97, 0x4a, 0x73, 0x7d, 0x91,
		0x9e, 0x60, 0xdd, 0xba, 0xea, 0x97, 0x74, 0x93, 0xbb, 0x45, 0xbd, 0x99, 0x2e, 0xff, 0x4b, 0x4c,
		0xd3, 0x44, 0xd7, 0x02, 0xd5, 0x88, 0xf3, 0xab, 0x0f, 0xf3, 0xe3, 0xd9, 0xb2, 0xba, 0xd0, 0x41,
		0x6c, 0x59, 0x2d, 0x54, 0x3a, 0xd8, 0xb2, 0xca, 0x96, 0xd5, 0x9f, 0x3c, 0x31, 0xb6, 0xac, 0x96,
		0xd0, 0x20, 0x8b, 0x1b, 0x66, 0x17, 0x06, 0xda, 0x9d, 0xa1, 0x76, 0x65, 0xb0, 0x9d, 0x1b, 0x6e,
		0xe7, 0x06, 0xdc, 0xa9, 0x21, 0xaf, 0x26, 0x19, 0xc4, 0xa0, 0x0d, 0x06, 0x6d, 0x54, 0xcf, 0x29,
		0xb8, 0x77, 0x0e, 0xae, 0x9d, 0x84, 0x1a, 0x67, 0xa1, 0xc6, 0x69, 0xa8, 0x70, 0x1e, 0xb2, 0x4e,
		0x44, 0xd8, 0x99, 0xe4, 0x4f, 0x98, 0x41, 0x1b, 0x0c, 0xda, 0x90, 0xfc, 0xe0, 0xd4, 0x8a, 0x4c,
		0xdc, 0x83, 0x34, 0xbc, 0x12, 0x33, 0x38, 0x2d, 0xa2, 0x0c, 0xda, 0x40, 0x56, 0xd5, 0x02, 0x04,
		0x77, 0xa7, 0x32, 0x68, 0x63, 0x79, 0xa1, 0xa5, 0x53, 0x36, 0x67, 0x33, 0xe8, 0x94, 0x85, 0xba,
		0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x80, 0xba, 0x28, 0x29, 0x75, 0x41, 0xa7, 0x6c, 0x25, 0x40,
		0x19, 0x9d, 0xb2, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x10, 0x0d, 0xc1, 0xe9,
		0x94, 0x75, 0xa1, 0x5b, 0x64, 0x3f, 0xc8, 0x7e, 0xcc, 0xd7, 0x4b, 0xb2, 0x1f, 0x74, 0xca, 0x22,
		0xa4, 0x2a, 0xd1, 0x81, 0xbb, 0x53, 0xe9, 0x94, 0x2d, 0x81, 0x29, 0xa3, 0x53, 0xf6, 0x09, 0xfd,
		0x76, 0x79, 0x33, 0x13, 0xeb, 0x56, 0x67, 0xfa, 0xf0, 0x8e, 0x47, 0x8f, 0x86, 0xb5, 0xab, 0xcf,
		0x78, 0xb5, 0xac, 0x5d, 0xb5, 0x45, 0x83, 0xb1, 0x76, 0xb5, 0x42, 0x74, 0x17, 0xdd, 0x20, 0x74,
		0x83, 0x14, 0xf6, 0x24, 0xe9, 0x06, 0xa1, 0x1b, 0xa4, 0x7a, 0x4e, 0xc1, 0xbd, 0x73, 0x70, 0xed,
		0x24, 0xd4, 0x38, 0x0b, 0x35, 0x4e, 0x43, 0x85, 0xf3, 0x70, 0xc3, 0x3f, 0xd0, 0x0d, 0x22, 0x6e,
		0xdd, 0xe9, 0x06, 0x11, 0xfc, 0xe0, 0xe4, 0x43, 0x26, 0xee, 0x01, 0xd5, 0xac, 0xc4, 0x0c, 0x4e,
		0x8b, 0x28, 0xdd, 0x20, 0xc8, 0xaa, 0x5a, 0x80, 0xe0, 0xee, 0x54, 0xba, 0x41, 0x96, 0x17, 0x5a,
		0xd6, 0xae, 0x12, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x13, 0x64, 0x4b, 0xea, 0x3b, 0x7d,
		0x0b, 0x55, 0x81, 0x0f, 0x34, 0x93, 0x7a, 0x34, 0x93, 0x02, 0xca, 0x00, 0x65, 0x80, 0x32, 0x40,
		0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x73, 0x0c, 0xca, 0x68, 0x26, 0x05, 0x3e, 0x00, 0x1f, 0x80,
		0x0f, 0xc0, 0x07, 0xe0, 0x83, 0x68, 0x08, 0x4e, 0x33, 0xa9, 0x0b, 0xdd, 0xa2, 0x78, 0x82, 0xe2,
		0x89, 0xf9, 0x7a, 0x49, 0xf1, 0x04, 0xcd, 0xa4, 0x08, 0xa9, 0x4a, 0x74, 0xe0, 0xee, 0x54, 0x9a,
		0x49, 0x4b, 0x60, 0xca, 0x68, 0x26, 0x5d, 0xa8, 0x99, 0x94, 0xfd, 0xab, 0x8f, 0xf5, 0x92, 0xb2,
		0x87, 0x55, 0x8b, 0x6a, 0xb3, 0x87, 0xf5, 0x29, 0xaa, 0xcc, 0x42, 0xd6, 0x7b, 0xe5, 0x2d, 0xed,
		0x62, 0xd6, 0x57, 0x25, 0x52, 0x4f, 0xdf, 0xdc, 0x64, 0x49, 0x18, 0xf4, 0xfa, 0xef, 0xf4, 0xac,
		0x6d, 0x97, 0x41, 0xf1, 0xbf, 0x5d, 0x9a, 0xd8, 0x3a, 0x4f, 0x20, 0xb8, 0xee, 0xf4, 0xed, 0xdb,
		0x5c, 0xbf, 0x83, 0xbe, 0x3e, 0x79, 0xff, 0xf2, 0x7e, 0x19, 0xb2, 0x7b, 0x41, 0x76, 0xdb, 0x35,
		0xe9, 0xbb, 0x93, 0xe3, 0x4f, 0x7b, 0x8d, 0xa3, 0xc3, 0xfd, 0xfa, 0xef, 0xff, 0xd7, 0xa8, 0x1f,
		0x7d, 0xa9, 0xfd, 0x52, 0xf1, 0xd5, 0xa8, 0x83, 0x17, 0xfc, 0x92, 0x16, 0xa3, 0x3e, 0x43, 0x02,
		0x2a, 0x31, 0x71, 0xe2, 0x83, 0x49, 0x9b, 0x49, 0xd4, 0x15, 0x05, 0xe8, 0xb9, 0xda, 0x1d, 0xc6,
		0xed, 0x5b, 0x2f, 0x8a, 0x9b, 0xed, 0x5e, 0xcb, 0x78, 0xd9, 0x65, 0x94, 0x7a, 0xcd, 0x4e, 0x9c,
		0x85, 0x51, 0x6c, 0x12, 0xaf, 0x2f, 0x81, 0x5e, 0x76, 0x69, 0xbc, 0xb0, 0xd5, 0x4a, 0x4c, 0x9a,
		0x7a, 0xe7, 0xe1, 0x55, 0xd4, 0xff, 0xeb, 0xe9, 0x5f, 0x71, 0xda, 0x35, 0xcd, 0xe8, 0x3c, 0x32,
		0x2d, 0x2f, 0xeb, 0x78, 0x67, 0xc6, 0x3b, 0x39, 0x0e, 0x3e, 0xed, 0x79, 0x43, 0x27, 0xe4, 0x9d,
		0xec, 0xfe, 0x51, 0xf7, 0xce, 0x3b, 0xc9, 0xe0, 0x1f, 0xd7, 0x8f, 0xae, 0x6b, 0x5e, 0x2f, 0x8e,
		0x9a, 0x61, 0x9a, 0xfd, 0x15, 0x4f, 0xff, 0xaa, 0xb7, 0x52, 0x02, 0xee, 0x20, 0x8b, 0x33, 0xa9,
		0xcb, 0xad, 0x89, 0x57, 0x2c, 0x18, 0x5a, 0xb8, 0x4c, 0xd9, 0x4c, 0xa9, 0xb6, 0x6b, 0x29, 0x23,
		0x68, 0x71, 0xfa, 0xdb, 0x4f, 0x4b, 0x85, 0xe2, 0x84, 0x82, 0x2b, 0xed, 0x41, 0x95, 0x45, 0x43,
		0xa5, 0x32, 0x6c, 0xb2, 0x63, 0x24, 0x8a, 0x57, 0x2a, 0x0b, 0x62, 0xef, 0x3f, 0x78, 0xf7, 0x5b,
		0xd6, 0x04, 0xff, 0x7e, 0xde, 0xd5, 0xc3, 0x13, 0x2d, 0x29, 0xb3, 0xdd, 0x51, 0x57, 0xd6, 0x8b,
		0x72, 0x24, 0x8a, 0x6f, 0xe4, 0x8a, 0x6c, 0xa4, 0x60, 0x98, 0x78, 0xd1, 0x8c, 0x38, 0xd2, 0x12,
		0x2d, 0x82, 0x29, 0x17, 0x09, 0x63, 0x7b, 0x94, 0xd4, 0x54, 0x63, 0xa9, 0x7d, 0x51, 0x9e, 0xd7,
		0xce, 0x6a, 0x5b, 0x9a, 0x65, 0xe6, 0x03, 0x8a, 0x55, 0x34, 0x4a, 0x56, 0x30, 0xca, 0x57, 0x2c,
		0xba, 0xe4, 0xa8, 0x44, 0x2b, 0x12, 0x75, 0xb0, 0x54, 0x52, 0x15, 0x87, 0xe5, 0x4e, 0x50, 0x49,
		0xcd, 0xf3, 0xf3, 0x9b, 0x63, 0x1b, 0x22, 0xcc, 0x9b, 0x89, 0xce, 0x1c, 0x76, 0x36, 0xb0, 0x75,
		0x95, 0x81, 0xad, 0xe5, 0x37, 0xd8, 0xce, 0x0d, 0xb7, 0x73, 0x03, 0xee, 0xd4, 0x90, 0xcb, 0x18,
		0x74, 0x21, 0xc3, 0x2e, 0x6e, 0xe0, 0xf3, 0x03, 0x19, 0xd8, 0x4a, 0xdf, 0x91, 0x57, 0x7d, 0xe7,
		0xe0, 0xda, 0x49, 0xa8, 0x71, 0x16, 0x6a, 0x9c, 0x86, 0x0a, 0xe7, 0x21, 0xeb, 0x44, 0x84, 0x9d,
		0x49, 0xfe, 0x84, 0x19, 0xd8, 0xca, 0xc0, 0x56, 0xc9, 0x0f, 0x4e, 0xcf, 0xd1, 0xc4, 0x3d, 0x68,
		0xe7, 0x50, 0x62, 0x06, 0xa7, 0x45, 0x94, 0x81, 0xad, 0xc8, 0xaa, 0x5a, 0x80, 0xe0, 0xee, 0x54,
		0x06, 0xb6, 0x2e, 0x2f, 0xb4, 0x4c, 0x5c, 0xcb, 0xd9, 0x0c, 0x26, 0xae, 0x41, 0x5d, 0x40, 0x5d,
		0x40, 0x5d, 0x40, 0x5d, 0x40, 0x5d, 0x94, 0x94, 0xba, 0x60, 0xe2, 0x5a, 0x25, 0x40, 0x19, 0x13,
		0xd7, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8, 0x20, 0x1a, 0x82, 0x33, 0x71, 0xcd,
		0x85, 0x6e, 0x91, 0xfd, 0x20, 0xfb, 0x31, 0x5f, 0x2f, 0xc9, 0x7e, 0x30, 0x71, 0x0d, 0x21, 0x55,
		0x89, 0x0e, 0xdc, 0x9d, 0xca, 0xc4, 0xb5, 0x12, 0x98, 0x32, 0x26, 0xae, 0xcd, 0xed, 0x28, 0xde,
		0x9a, 0x1a, 0xd3, 0xb4, 0x22, 0x5a, 0x41, 0xef, 0x29, 0xed, 0x3a, 0xde, 0x9a, 0x1c, 0xd6, 0xd4,
		0x18, 0x11, 0x0e, 0x55, 0x99, 0x56, 0x20, 0x32, 0x7f, 0x2b, 0xcc, 0x8c, 0x7c, 0xf7, 0x87, 0xe4,
		0x90, 0x40, 0x67, 0xcd, 0x1f, 0xeb, 0x34, 0x7f, 0x54, 0x87, 0xdd, 0xa2, 0xf9, 0x83, 0xe6, 0x8f,
		0xc2, 0x9e, 0x24, 0xcd, 0x1f, 0x34, 0x7f, 0x54, 0xcf, 0x29, 0xb8, 0x77, 0x0e, 0xae, 0x9d, 0x84,
		0x1a, 0x67, 0xa1, 0xc6, 0x69, 0xa8, 0x70, 0x1e, 0x6e, 0xe8, 0x06, 0x9a, 0x3f, 0xc4, 0xad, 0x3b,
		0xcd, 0x1f, 0x82, 0x1f, 0x9c, 0xf4, 0xc7, 0xc4, 0x3d, 0x60, 0x96, 0x95, 0x98, 0xc1, 0x69, 0x11,
		0xa5, 0xf9, 0x03, 0x59, 0x55, 0x0b, 0x10, 0xdc, 0x9d, 0x4a, 0xf3, 0xc7, 0xf2, 0x42, 0x3b, 0xb5,
		0x32, 0xc1, 0xdc, 0x34, 0x8d, 0x69, 0x99, 0x96, 0xd3, 0x0e, 0x90, 0x39, 0xd7, 0x21, 0xc8, 0x26,
		0xc8, 0x26, 0xc8, 0x26, 0xc8, 0x26, 0xc8, 0xae, 0x4c, 0x90, 0x4d, 0x9b, 0x42, 0x55, 0xe0, 0x03,
		0xbd, 0xa3, 0x1e, 0xbd, 0xa3, 0x80, 0x32, 0x40, 0x19, 0xa0, 0x0c, 0x50, 0x06, 0x28, 0x03, 0x94,
		0x01, 0xca, 0x1c, 0x83, 0x32, 0x7a, 0x47, 0x81, 0x0f, 0xc0, 0x07, 0xe0, 0x03, 0xf0, 0x01, 0xf8,
		0x20, 0x1a, 0x82, 0xd3, 0x3b, 0xea, 0x42, 0xb7, 0x28, 0x9e, 0xa0, 0x78, 0x62, 0xbe, 0x5e, 0x52,
		0x3c, 0x41, 0xef, 0x28, 0x42, 0xaa, 0x12, 0x1d, 0xb8, 0x3b, 0x95, 0xde, 0xd1, 0x12, 0x98, 0x32,
		0x7a, 0x47, 0x9f, 0xd2, 0x3b, 0x2a, 0xd9, 0x7f, 0xe7, 0x95, 0xa2, 0x75, 0xf4, 0x64, 0xf0, 0x44,
		0xd8, 0x73, 0xed, 0x5e, 0x93, 0xa5, 0x35, 0xb8, 0x54, 0x9a, 0xeb, 0x8b, 0xf4, 0x04, 0xeb, 0xd6,
		0x55, 0xbf, 0xa4, 0x5b, 0xdc, 0x2d, 0xea, 0xcd, 0x74, 0xf9, 0x5f, 0x62, 0x9a, 0x26, 0xba, 0x16,
		0xa8, 0x46, 0x9c, 0x5f, 0x7d, 0x98, 0x1f, 0xcf, 0x96, 0xd5, 0x85, 0x0e, 0x62, 0xcb, 0x6a, 0xa1,
		0xd2, 0xc1, 0x96, 0x55, 0xb6, 0xac, 0xfe, 0xe4, 0x89, 0xb1, 0x65, 0xb5, 0x84, 0x06, 0x59, 0xdc,
		0x30, 0xbb, 0x30, 0xd0, 0xee, 0x0c, 0xb5, 0x2b, 0x83, 0xed, 0xdc, 0x70, 0x3b, 0x37, 0xe0, 0x4e,
		0x0d, 0x79, 0x35, 0xc9, 0x20, 0x06, 0x6d, 0x30, 0x68, 0xa3, 0x7a, 0x4e, 0xc1, 0xbd, 0x73, 0x70,
		0xed, 0x24, 0xd4, 0x38, 0x0b, 0x35, 0x4e, 0x43, 0x85, 0xf3, 0x90, 0x75, 0x22, 0xc2, 0xce, 0x24,
		0x7f, 0xc2, 0x0c, 0xda, 0x60, 0xd0, 0x86, 0xe4, 0x07, 0xa7, 0x56, 0x64, 0xe2, 0x1e, 0xa4, 0xe1,
		0x95, 0x98, 0xc1, 0x69, 0x11, 0x65, 0xd0, 0x06, 0xb2, 0xaa, 0x16, 0x20, 0xb8, 0x3b, 0x95, 0x41,
		0x1b, 0xcb, 0x0b, 0x2d, 0x9d, 0xb2, 0x39, 0x9b, 0x41, 0xa7, 0x2c, 0xd4, 0x05, 0xd4, 0x05, 0xd4,
		0x05, 0xd4, 0x05, 0xd4, 0x45, 0x49, 0xa9, 0x0b, 0x3a, 0x65, 0x2b, 0x01, 0xca, 0xe8, 0x94, 0x05,
		0x3e, 0x00, 0x1f, 0x80, 0x0f, 0xc0, 0x07, 0xe0, 0x83, 0x68, 0x08, 0x4e, 0xa7, 0xac, 0x0b, 0xdd,
		0x22, 0xfb, 0x41, 0xf6, 0x63, 0xbe, 0x5e, 0x92, 0xfd, 0xa0, 0x53, 0x16, 0x21, 0x55, 0x89, 0x0e,
		0xdc, 0x9d, 0x4a, 0xa7, 0x6c, 0x09, 0x4c, 0x19, 0x9d, 0xb2, 0x4f, 0xe8, 0xb7, 0xcb, 0x9b, 0x99,
		0x58, 0xb7, 0x3a, 0xd3, 0x87, 0x77, 0x3c, 0x7a, 0x34, 0xac, 0x5d, 0x7d, 0xc6, 0xab, 0x65, 0xed,
		0xaa, 0x2d, 0x1a, 0x8c, 0xb5, 0xab, 0x15, 0xa2, 0xbb, 0xe8, 0x06, 0xa1, 0x1b, 0xa4, 0xb0, 0x27,
		0x49, 0x37, 0x08, 0xdd, 0x20, 0xd5, 0x73, 0x0a, 0xee, 0x9d, 0x83, 0x6b, 0x27, 0xa1, 0xc6, 0x59,
		0xa8, 0x71, 0x1a, 0x2a, 0x9c, 0x87, 0x1b, 0xfe, 0x81, 0x6e, 0x10, 0x71, 0xeb, 0x4e, 0x37, 0x88,
		0xe0, 0x07, 0x27, 0x1f, 0x32, 0x71, 0x0f, 0xa8, 0x66, 0x25, 0x66, 0x70, 0x5a, 0x44, 0xe9, 0x06,
		0x41, 0x56, 0xd5, 0x02, 0x04, 0x77, 0xa7, 0xd2, 0x0d, 0xb2, 0xbc, 0xd0, 0xb2, 0x76, 0x95, 0x20,
		0x9b, 0x20, 0x9b, 0x20, 0x9b, 0x20, 0x9b, 0x20, 0x5b, 0x52, 0xdf, 0xe9, 0x5b, 0xa8, 0x0a, 0x7c,
		0xa0, 0x99, 0xd4, 0xa3, 0x99, 0x14, 0x50, 0x06, 0x28, 0x03, 0x94, 0x01, 0xca, 0x00, 0x65, 0x80,
		0x32, 0x40, 0x99, 0x63, 0x50, 0x46, 0x33, 0x29, 0xf0, 0x01, 0xf8, 0x00, 0x7c, 0x00, 0x3e, 0x00,
		0x1f, 0x44, 0x43, 0x70, 0x9a, 0x49, 0x5d, 0xe8, 0x16, 0xc5, 0x13, 0x14, 0x4f, 0xcc, 0xd7, 0x4b,
		0x8a, 0x27, 0x68, 0x26, 0x45, 0x48, 0x55, 0xa2, 0x03, 0x77, 0xa7, 0xd2, 0x4c, 0x5a, 0x02, 0x53,
		0x46, 0x33, 0xe9, 0x42, 0xcd, 0xa4, 0xec, 0x5f, 0x7d, 0xac, 0x97, 0x94, 0x3d, 0xac, 0x5a, 0x54,
		0x9b, 0x3d, 0xac, 0x4f, 0x51, 0x65, 0x16, 0xb2, 0xde, 0x2b, 0x6f, 0x69, 0x17, 0xb3, 0xbe, 0x2a,
		0x91, 0x7a, 0xfa, 0xe6, 0x26, 0x4b, 0xc2, 0xa0, 0xd7, 0x7f, 0xa7, 0x67, 0x6d, 0xbb, 0x0c, 0x8a,
		0xff, 0xed, 0xd2, 0xc4, 0xd6, 0x79, 0x02, 0xc1, 0x75, 0xa7, 0x6f, 0xdf, 0xe6, 0xfa, 0x1d, 0xf4,
		0xf5, 0xc9, 0xfb, 0x97, 0xf7, 0xcb, 0x90, 0xdd, 0x0b, 0xb2, 0xdb, 0xae, 0x49, 0xdf, 0x9d, 0x1c,
		0x7f, 0xda, 0x6b, 0x1c, 0x1d, 0xee, 0xd7, 0x7f, 0xff, 0xbf, 0x46, 0xfd, 0xe8, 0xcb, 0xd6, 0x2f,
		0x15, 0x5f, 0x8d, 0x3a, 0x78, 0xc1, 0x2f, 0x69, 0x31, 0xea, 0x33, 0x24, 0xa0, 0x12, 0x13, 0x27,
		0x3e, 0x98, 0xb4, 0x99, 0x44, 0x5d, 0x51, 0x80, 0x9e, 0xab, 0xdd, 0x61, 0xdc, 0xbe, 0xf5, 0xa2,
		0xb8, 0xd9, 0xee, 0xb5, 0x8c, 0x97, 0x5d, 0x46, 0xa9, 0xd7, 0xec, 0xc4, 0x59, 0x18, 0xc5, 0x26,
		0xf1, 0xfa, 0x12, 0xe8, 0x65, 0x97, 0xc6, 0x0b, 0x5b, 0xad, 0xc4, 0xa4, 0xa9, 0x77, 0x1e, 0x5e,
		0x45, 0xfd, 0xbf, 0x9e, 0xfe, 0x15, 0xa7, 0x5d, 0xd3, 0x8c, 0xce, 0x23, 0xd3, 0xf2, 0xb2, 0x8e,
		0x77, 0x66, 0xbc, 0x93, 0xe3, 0xe0, 0xd3, 0x9e, 0x37, 0x74, 0x42, 0xde, 0xc9, 0xee, 0x1f, 0x75,
		0xef, 0xbc, 0x93, 0x0c, 0xfe, 0x71, 0xfd, 0xe8, 0x7a, 0xcb, 0xeb, 0xc5, 0x51, 0x33, 0x4c, 0xb3,
		0xbf, 0xe2, 0xe9, 0x5f, 0xf5, 0x56, 0x4a, 0xc0, 0x1d, 0x64, 0x71, 0x26, 0x75, 0xb9, 0x35, 0xf1,
		0x8a, 0x05, 0x43, 0x0b, 0x97, 0x29, 0x9b, 0x29, 0xd5, 0x76, 0x2d, 0x65, 0x04, 0x2d, 0x4e, 0x7f,
		0xfb, 0x69, 0xa9, 0x50, 0x9c, 0x50, 0x70, 0xa5, 0x3d, 0xa8, 0xb2, 0x68, 0xa8, 0x54, 0x86, 0x4d,
		0x76, 0x8c, 0x44, 0xf1, 0x4a, 0x65, 0x41, 0xec, 0x2d, 0x0f, 0xbd, 0x12, 0x19, 0x72, 0x65, 0x79,
		0xa8, 0x95, 0xf5, 0x21, 0x56, 0x12, 0x65, 0x36, 0x72, 0xe5, 0x34, 0x52, 0x80, 0x4b, 0xbc, 0x3c,
		0x46, 0x1c, 0x53, 0x89, 0x96, 0xbb, 0x94, 0x8b, 0x6e, 0xb1, 0x3d, 0x34, 0xca, 0x9f, 0x0a, 0x47,
		0xed, 0xcb, 0xf2, 0x58, 0x3b, 0xa7, 0x8f, 0xb5, 0x2c, 0x5e, 0x32, 0xd5, 0x8c, 0x62, 0xd5, 0x8b,
		0x92, 0xd5, 0x8a, 0xf2, 0xd5, 0x89, 0x2e, 0xf9, 0x28, 0xd1, 0xea, 0x43, 0x1d, 0x8c, 0x94, 0x54,
		0x75, 0x61, 0xb9, 0x93, 0x51, 0x62, 0xd5, 0x82, 0xb9, 0xbe, 0x45, 0x2d, 0x13, 0x67, 0x51, 0x76,
		0x9b, 0x98, 0x73, 0x09, 0xa5, 0x1b, 0x23, 0x4b, 0x81, 0x7a, 0x40, 0xbf, 0x3e, 0xfa, 0x68, 0xef,
		0xc3, 0xd4, 0xc1, 0x14, 0xda, 0xdd, 0x3f, 0xea, 0x8d, 0x93, 0xfe, 0xff, 0xfb, 0xf4, 0x7f, 0x47,
		0x7b, 0x52, 0xaa, 0x3e, 0xa8, 0x68, 0x4a, 0x45, 0x6b, 0x1e, 0x1d, 0xb5, 0x2f, 0xd4, 0x8f, 0xbe,
		0xd4, 0x1a, 0x7f, 0xec, 0x1f, 0xfe, 0x7f, 0x27, 0x47, 0x7b, 0xbf, 0xfb, 0x55, 0x6c, 0x18, 0x71,
		0xf9, 0x60, 0xf7, 0x77, 0xdf, 0xef, 0xed, 0xef, 0x7d, 0x68, 0x7c, 0x3e, 0xa8, 0xff, 0xbe, 0x7b,
		0xf2, 0x89, 0xe7, 0x5b, 0xf0, 0xf3, 0xe5, 0xb9, 0xda, 0x78, 0xae, 0x5b, 0xc8, 0xad, 0xe5, 0xe7,
		0xcb, 0x73, 0x2d, 0xfc, 0xb9, 0xee, 0xaf, 0x7f, 0x39, 0x3a, 0x68, 0xec, 0x7d, 0x39, 0x3a, 0xe0,
		0xa9, 0x16, 0xfd, 0x54, 0xbf, 0x1c, 0xed, 0x9f, 0xf0, 0x54, 0x0b, 0x7c, 0xaa, 0x1b, 0xfd, 0xa7,
		0x3a, 0xf0, 0x60, 0x1f, 0x3f, 0xef, 0x7f, 0xc2, 0x16, 0xd8, 0x7b, 0xbe, 0x58, 0x5a, 0x7b, 0x4f,
		0x77, 0x0b, 0xe9, 0xb5, 0xfc, 0x7c, 0x91, 0xde, 0xe2, 0x9f, 0x6e, 0xfd, 0xe0, 0xff, 0x3d, 0xf9,
		0xb4, 0xfb, 0x69, 0x8f, 0x87, 0x6a, 0xe1, 0xa1, 0x36, 0x4e, 0x8e, 0xfe, 0xe0, 0xc1, 0xda, 0x78,
		0xb0, 0x00, 0xdb, 0x42, 0x1f, 0xec, 0x83, 0xc2, 0xcd, 0x1a, 0xcf, 0xd6, 0xda, 0xb3, 0xdd, 0xe2,
		0xd9, 0x16, 0xf7, 0x6c, 0xbf, 0x1c, 0x1d, 0xb8, 0x21, 0x6c, 0x45, 0x4e, 0x3a, 0xa5, 0x5e, 0x51,
		0x5e, 0xb2, 0x7d, 0x13, 0x87, 0x67, 0x6d, 0x81, 0xb9, 0xd8, 0xb9, 0x10, 0x8f, 0x0f, 0xa4, 0x8e,
		0x60, 0xa1, 0x83, 0xa8, 0x23, 0x28, 0x54, 0x3a, 0xa8, 0x23, 0xa0, 0x8e, 0xe0, 0x27, 0x4f, 0x4c,
		0xbe, 0x8e, 0x40, 0x6e, 0x48, 0xa1, 0xd0, 0x50, 0xc2, 0x72, 0xba, 0xc4, 0xd4, 0xc4, 0xad, 0xa0,
		0xd9, 0xb9, 0xba, 0xea, 0xc5, 0x51, 0x76, 0x3b, 0x68, 0xf6, 0x92, 0x73, 0x8f, 0xf3, 0x0e, 0xc7,
		0x55, 0xe2, 0x2a, 0x71, 0x95, 0xb8, 0x4a, 0x5c, 0x65, 0xae, 0x6f, 0xa2, 0x16, 0x72, 0xca, 0x63,
		0xd6, 0x04, 0xce, 0xda, 0x8b, 0x7b, 0x57, 0x72, 0x1a, 0xfe, 0xa9, 0x73, 0x92, 0x25, 0x51, 0x7c,
		0x21, 0xdb, 0x8e, 0xba, 0x3a, 0x60, 0x8b, 0x3e, 0xed, 0x1e, 0x7c, 0xd8, 0x3d, 0xfe, 0x20, 0xd9,
		0x85, 0xba, 0xd6, 0x3f, 0x78, 0xef, 0xdf, 0x9f, 0xf6, 0x0e, 0x3e, 0xec, 0x89, 0x1e, 0xbc, 0x3e,
		0x20, 0x75, 0x77, 0x8f, 0xff, 0xdc, 0x93, 0x3c, 0x75, 0xa3, 0x7f, 0xea, 0xfb, 0xc3, 0x4f, 0xff,
		0x2b, 0x79, 0x68, 0xad, 0x7f, 0xe8, 0xc1, 0xe1, 0x81, 0x50, 0xa2, 0x45, 0x6a, 0x74, 0xd5, 0xa7,
		0x4e, 0x3d, 0x96, 0x1d, 0x37, 0x3d, 0x7c, 0x73, 0xef, 0xbc, 0x0d, 0xc1, 0x97, 0x97, 0xeb, 0x86,
		0xb5, 0xee, 0xb5, 0xb9, 0xc7, 0x0e, 0x35, 0xc3, 0x5a, 0x43, 0xdb, 0x7c, 0x77, 0xd2, 0x17, 0xd1,
		0x77, 0x5e, 0x4d, 0xf0, 0xc8, 0xdc, 0xe4, 0xbd, 0xf3, 0x56, 0xe9, 0x03, 0x57, 0x00, 0x5e, 0xf6,
		0xa3, 0x34, 0xdb, 0xcd, 0x32, 0x99, 0x85, 0xff, 0xfe, 0xc7, 0x28, 0xde, 0x6b, 0x9b, 0x3e, 0xbc,
		0x14, 0x1a, 0x51, 0xe9, 0x7f, 0x0c, 0x6f, 0x26, 0x4e, 0x5c, 0xfb, 0xad, 0x56, 0xdb, 0xda, 0xae,
		0xd5, 0x56, 0xb7, 0x37, 0xb6, 0x57, 0x77, 0x36, 0x37, 0xd7, 0xb6, 0x44, 0xfa, 0x08, 0x0e, 0x93,
		0x96, 0x49, 0x4c, 0xeb, 0xfd, 0xad, 0xff, 0xce, 0x8b, 0x7b, 0xed, 0xb6, 0xe4, 0x91, 0x9f, 0x53,
		0x93, 0x88, 0xcc, 0xe0, 0x64, 0xee, 0xd4, 0x28, 0x80, 0x7a, 0xa1, 0x13, 0x0b, 0x2c, 0x8f, 0x6a,
		0xd4, 0x32, 0xa6, 0xc0, 0xde, 0xdc, 0xc5, 0x72, 0x4c, 0x27, 0xe8, 0xa5, 0x26, 0xb8, 0xea, 0xb5,
		0xb3, 0xa8, 0xdb, 0x36, 0x41, 0x5f, 0xfa, 0x52, 0xfb, 0xa3, 0x0a, 0xe6, 0x9c, 0x59, 0xf2, 0xb9,
		0x05, 0xab, 0xcc, 0x2d, 0x78, 0x0a, 0x5a, 0x64, 0x6e, 0x41, 0x09, 0x59, 0x3d, 0xe6, 0x16, 0x4c,
		0x1d, 0xd0, 0x1c, 0xeb, 0xbc, 0x50, 0x0e, 0x65, 0x74, 0x9e, 0x4c, 0xda, 0x64, 0x8d, 0xb4, 0x89,
		0x62, 0x03, 0x2a, 0x6d, 0x48, 0x9d, 0x19, 0x54, 0x67, 0x86, 0xd5, 0x89, 0x81, 0xad, 0x06, 0xf3,
		0x60, 0xdb, 0xf0, 0xe6, 0x07, 0x49, 0x15, 0x79, 0xcd, 0xe8, 0xb7, 0x4c, 0xb1, 0xd7, 0xfd, 0x03,
		0x75, 0xb0, 0xa9, 0x58, 0x72, 0x43, 0xb1, 0xd0, 0x66, 0x62, 0xe1, 0x95, 0x82, 0xe2, 0xab, 0x04,
		0x5d, 0xac, 0x10, 0x74, 0xb7, 0x3a, 0xd0, 0xd5, 0xca, 0x40, 0xe7, 0xab, 0x02, 0x9d, 0xaf, 0x08,
		0x74, 0xba, 0x1a, 0xb0, 0x5a, 0x4b, 0x63, 0xc4, 0x57, 0x00, 0x3a, 0xdc, 0x1c, 0x2c, 0xbc, 0x31,
		0x98, 0xfc, 0xd0, 0x4f, 0x94, 0xf8, 0x65, 0x2f, 0x37, 0x99, 0x65, 0x1e, 0x57, 0x44, 0xe2, 0x6b,
		0x4f, 0x0f, 0xe3, 0xfd, 0x39, 0x35, 0x1f, 0x47, 0x4f, 0xe0, 0xa8, 0xff, 0x00, 0x1a, 0x23, 0xc0,
		0x42, 0xed, 0xec, 0x6c, 0xa4, 0xd1, 0xf7, 0x71, 0x72, 0xbd, 0x24, 0xf6, 0x91, 0x14, 0x34, 0x0f,
		0x34, 0x0f, 0x34, 0x0f, 0x34, 0x4f, 0x19, 0x68, 0x1e, 0x21, 0x9e, 0x7d, 0x46, 0xbd, 0xc5, 0xf0,
		0x80, 0xa0, 0x41, 0x86, 0x9c, 0x80, 0x9c, 0x80, 0x9c, 0x80, 0x9c, 0xd0, 0x64, 0xe0, 0xf3, 0x03,
		0xc3, 0x76, 0xbb, 0xf3, 0xed, 0x3e, 0x2a, 0x0b, 0x53, 0x79, 0xfd, 0xc9, 0x87, 0xc3, 0xcf, 0x5c,
		0x45, 0x58, 0x8c, 0x5d, 0x70, 0xfe, 0xf9, 0xe1, 0x82, 0xdc, 0xff, 0xf8, 0xeb, 0x54, 0xf8, 0xf9,
		0xca, 0xe6, 0x02, 0x9c, 0xb9, 0x5d, 0x97, 0xee, 0xd7, 0xbd, 0x1b, 0x76, 0xed, 0x8e, 0xd5, 0xb8,
		0x65, 0x35, 0xee, 0x59, 0x85, 0x9b, 0x96, 0x75, 0xd7, 0xc2, 0x6e, 0x3b, 0x7f, 0xc2, 0xe2, 0xb9,
		0x85, 0x19, 0x7d, 0x97, 0xcf, 0x31, 0xcc, 0x44, 0x53, 0x6b, 0xaf, 0xaa, 0x29, 0x50, 0x82, 0xc2,
		0xe4, 0x5f, 0x85, 0x37, 0xd1, 0x55, 0xef, 0xca, 0x72, 0x4d, 0xf0, 0x4f, 0xa5, 0x69, 0xfa, 0x1a,
		0x2f, 0x09, 0x8e, 0xad, 0x01, 0xc5, 0x80, 0x62, 0x40, 0x31, 0xa0, 0x18, 0x50, 0x0c, 0x28, 0xf6,
		0x3c, 0x7d, 0xef, 0x45, 0x71, 0xb6, 0xb1, 0xee, 0x10, 0x89, 0x6d, 0x3b, 0x38, 0xfa, 0x38, 0x8c,
		0x2f, 0x8c, 0x13, 0x97, 0xed, 0x89, 0x4f, 0xd3, 0x9c, 0xfa, 0xe0, 0x1f, 0xa3, 0xd8, 0x99, 0x81,
		0xcd, 0x2f, 0x31, 0x58, 0x38, 0x25, 0xef, 0x5e, 0x67, 0xee, 0xf1, 0x47, 0x12, 0x36, 0xb3, 0xa8,
		0x13, 0x7f, 0x88, 0x2e, 0x22, 0xa9, 0xee, 0xe4, 0x1f, 0xeb, 0xa4, 0xb9, 0x08, 0xb3, 0xe8, 0xda,
		0x88, 0x34, 0xef, 0x2a, 0x32, 0x83, 0xd3, 0x22, 0x1a, 0xde, 0xe8, 0x11, 0xd1, 0xda, 0xfa, 0x4e,
		0x6d, 0x67, 0x6b, 0x7b, 0x7d, 0x67, 0x13, 0x59, 0xd5, 0x2a, 0xab, 0xaf, 0x5e, 0xc6, 0xa9, 0xa7,
		0x55, 0x25, 0x2c, 0x2a, 0x95, 0x1a, 0x13, 0x2e, 0x9e, 0xcc, 0xcf, 0xd5, 0x5f, 0x44, 0x69, 0xfa,
		0xbf, 0x41, 0xb4, 0x72, 0xc2, 0x53, 0x5c, 0x51, 0xb9, 0x77, 0x76, 0xd1, 0x15, 0x29, 0xab, 0x94,
		0x53, 0x33, 0x01, 0x15, 0xf3, 0xdb, 0x51, 0xfc, 0x77, 0x70, 0x16, 0xc6, 0xad, 0x6f, 0x51, 0x2b,
		0xbb, 0x0c, 0xcc, 0x4d, 0x76, 0x3f, 0x3b, 0x54, 0xbe, 0x0e, 0xe8, 0x87, 0xb7, 0xa1, 0x3a, 0xa8,
		0xac, 0x9c, 0x18, 0xd5, 0x41, 0x54, 0x07, 0x51, 0x1d, 0xf4, 0xec, 0x27, 0x29, 0x5e, 0x1d, 0x24,
		0x5c, 0x06, 0x3a, 0x63, 0x26, 0xc4, 0x41, 0x8d, 0x03, 0xc3, 0xef, 0xcc, 0x01, 0xb8, 0x74, 0x04,
		0xee, 0x1d, 0x82, 0x6b, 0xc7, 0xa0, 0xc6, 0x41, 0xa8, 0x71, 0x14, 0x2a, 0x1c, 0x86, 0x1b, 0x16,
		0x42, 0x3a, 0x39, 0x22, 0xed, 0x48, 0xf2, 0x83, 0xa5, 0xc7, 0x47, 0x3c, 0x6a, 0x6f, 0x64, 0xc7,
		0x49, 0x3c, 0xe6, 0x62, 0x1c, 0x51, 0x8d, 0xce, 0x5c, 0x8d, 0x06, 0x97, 0xa3, 0xc7, 0xf5, 0x68,
		0x71, 0x41, 0xea, 0x5c, 0x91, 0x3a, 0x97, 0xa4, 0xca, 0x35, 0xb9, 0x71, 0x51, 0x8e, 0x5c, 0x55,
		0xfe, 0xe4, 0x9d, 0xe5, 0xf3, 0x67, 0xec, 0x85, 0xbb, 0x12, 0xcb, 0x99, 0x08, 0x65, 0xed, 0x85,
		0x64, 0x68, 0xaa, 0x8d, 0xc6, 0x1c, 0x65, 0x36, 0xf2, 0xf3, 0x4b, 0x92, 0xe1, 0xf8, 0x11, 0x27,
		0xbc, 0xe2, 0x84, 0x29, 0xf0, 0xb4, 0xa7, 0x41, 0xf6, 0xa3, 0xf8, 0xef, 0xf7, 0xe3, 0x27, 0xb6,
		0x77, 0x93, 0xfd, 0x3e, 0x7e, 0x5e, 0xa2, 0x09, 0x12, 0x79, 0x2d, 0xbe, 0x13, 0x4d, 0x83, 0x85,
		0x99, 0x71, 0x47, 0x91, 0xd9, 0x1e, 0x15, 0xae, 0x92, 0x21, 0x5b, 0x87, 0x21, 0x83, 0x21, 0x83,
		0x21, 0x83, 0x21, 0x83, 0x21, 0x83, 0x21, 0x83, 0x21, 0x83, 0x21, 0x83, 0x21, 0x83, 0x21, 0x83,
		0x21, 0x83, 0x21, 0x83, 0x21, 0x83, 0x21, 0x83, 0x21, 0x9b, 0xcb, 0x90, 0xb9, 0x20, 0x0a, 0x4a,
		0x4c, 0x90, 0x59, 0xdc, 0x4d, 0xa6, 0x80, 0x1f, 0xa3, 0x33, 0x00, 0xab, 0x20, 0x58, 0x4b, 0x5d,
		0x5e, 0x3b, 0x40, 0x0b, 0xc1, 0x22, 0x2f, 0x58, 0x92, 0x09, 0x77, 0xc2, 0x80, 0x3b, 0x6b, 0x0a,
		0x58, 0xa7, 0x29, 0xa0, 0x3a, 0xb4, 0x02, 0x4d, 0x01, 0x34, 0x05, 0x14, 0xf6, 0x24, 0x19, 0x19,
		0xca, 0xc8, 0x50, 0xb1, 0x2f, 0xe6, 0x54, 0x55, 0xce, 0xfd, 0xba, 0x77, 0xc3, 0xae, 0xdd, 0xb1,
		0x1a, 0xb7, 0xac, 0xc6, 0x3d, 0xab, 0x70, 0xd3, 0x2f, 0x83, 0xda, 0x64, 0x64, 0x28, 0x23, 0x43,
		0x0b, 0x79, 0x96, 0x8c, 0x0c, 0x65, 0x64, 0x28, 0x50, 0x0c, 0x28, 0x06, 0x14, 0x03, 0x8a, 0x01,
		0xc5, 0xca, 0x09, 0xc5, 0x18, 0x19, 0x2a, 0xfe, 0xc5, 0xc8, 0x50, 0x46, 0x86, 0xce, 0xd7, 0x49,
		0x46, 0x86, 0x32, 0x32, 0x14, 0x59, 0xd5, 0x0c, 0x10, 0xdc, 0x9d, 0xca, 0xc8, 0xd0, 0x12, 0x58,
		0x34, 0x0a, 0x83, 0x7e, 0x5c, 0x18, 0x24, 0x5d, 0x11, 0xa8, 0xba, 0x02, 0x48, 0xb0, 0xde, 0xef,
		0x8e, 0x2d, 0xc7, 0x9a, 0xd4, 0xb6, 0x24, 0xea, 0xea, 0x8b, 0x54, 0x70, 0xa9, 0x55, 0x50, 0xbb,
		0xaa, 0x69, 0x4f, 0x61, 0x2c, 0x2a, 0x8b, 0x1f, 0xf5, 0x9f, 0x8b, 0x6d, 0x15, 0xc9, 0xc9, 0x89,
		0xc8, 0xbe, 0x10, 0x0a, 0x95, 0xd7, 0x89, 0x91, 0xca, 0x92, 0x24, 0xb2, 0x3c, 0x69, 0x2c, 0x4d,
		0x12, 0x3b, 0x23, 0x85, 0x9d, 0x91, 0xc0, 0x4e, 0x48, 0xdf, 0x72, 0x83, 0x07, 0xa9, 0x72, 0x38,
		0xe9, 0xd9, 0xb8, 0x6e, 0x66, 0xe2, 0x32, 0x04, 0xbd, 0x0a, 0x86, 0xda, 0x95, 0xc1, 0x76, 0x6e,
		0xb8, 0x9d, 0x1b, 0x70, 0xa7, 0x86, 0xbc, 0x9a, 0xa4, 0x8e, 0x78, 0xbd, 0x33, 0x85, 0x35, 0x14,
		0xd6, 0x08, 0xb8, 0x58, 0x0a, 0x6b, 0xaa, 0xec, 0x7a, 0x5d, 0xbb, 0x60, 0x35, 0xae, 0x58, 0x8d,
		0x4b, 0x56, 0xe1, 0x9a, 0x65, 0x5d, 0xb4, 0xb0, 0xab, 0xce, 0x9f, 0x30, 0x85, 0x35, 0x14, 0xd6,
		0x48, 0x7e, 0x70, 0x0a, 0x6b, 0x26, 0xee, 0x41, 0xb1, 0x82, 0x12, 0x33, 0x38, 0x2d, 0xa2, 0x14,
		0xd6, 0x20, 0xab, 0x6a, 0x01, 0x82, 0xbb, 0x53, 0x29, 0xac, 0x29, 0x03, 0x07, 0x43, 0x61, 0xcd,
		0x63, 0x99, 0xfa, 0x88, 0x5d, 0xbc, 0x13, 0x89, 0xfb, 0x3a, 0xbb, 0x78, 0x9f, 0xf3, 0x36, 0xd9,
		0xc5, 0xfb, 0x48, 0x14, 0x45, 0x1a, 0xaa, 0x0a, 0x5c, 0x18, 0x69, 0x28, 0xd2, 0x50, 0xa5, 0x87,
		0x40, 0xec, 0xe2, 0xad, 0xa0, 0xe1, 0x77, 0xe6, 0x00, 0x5c, 0x3a, 0x02, 0xf7, 0x0e, 0xc1, 0xb5,
		0x63, 0x50, 0xe3, 0x20, 0xd4, 0x38, 0x0a, 0x15, 0x0e, 0xc3, 0x0d, 0x0b, 0xc1, 0xa6, 0x11, 0x69,
		0x7b, 0xc3, 0xa6, 0x11, 0x36, 0x8d, 0xb0, 0x69, 0x44, 0xa9, 0x2b, 0x52, 0xe7, 0x92, 0x54, 0xb9,
		0x26, 0x37, 0x2e, 0xca, 0x91, 0xab, 0xca, 0x9f, 0x3c, 0x9b, 0x46, 0xe6, 0x44, 0x28, 0x6c, 0x1a,
		0xa9, 0x02, 0x1a, 0x63, 0xd3, 0xc8, 0x93, 0x32, 0x1c, 0xec, 0xe2, 0x5d, 0x38, 0x0d, 0xc2, 0x2e,
		0x5e, 0x89, 0xf7, 0xcf, 0x2e, 0x5e, 0xe9, 0xb0, 0x85, 0x5d, 0xbc, 0x30, 0x64, 0x30, 0x64, 0x30,
		0x64, 0x30, 0x64, 0x30, 0x64, 0x30, 0x64, 0x30, 0x64, 0x30, 0x64, 0x30, 0x64, 0x30, 0x64, 0x30,
		0x64, 0x30, 0x64, 0x30, 0x64, 0x30, 0x64, 0xec, 0xe2, 0x2d, 0x80, 0x20, 0x63, 0x17, 0x6f, 0x59,
		0xac, 0x04, 0x9d, 0x01, 0xcf, 0xb7, 0x0a, 0xf4, 0x0b, 0xfc, 0xc4, 0x0e, 0xd0, 0x42, 0xb0, 0xc8,
		0x0b, 0x66, 0x17, 0xaf, 0x2d, 0x1a, 0x82, 0x5d, 0xbc, 0x15, 0xa2, 0x15, 0x68, 0x0a, 0xa0, 0x29,
		0xa0, 0xb0, 0x27, 0xc9, 0x6c, 0x2a, 0x66, 0x53, 0x59, 0xfd, 0x62, 0x36, 0x55, 0xe5, 0x5c, 0xae,
		0x7b, 0xd7, 0xeb, 0xda, 0x05, 0xab, 0x71, 0xc5, 0x6a, 0x5c, 0xb2, 0x0a, 0xd7, 0xfc, 0x32, 0xe8,
		0x4c, 0x66, 0x53, 0x31, 0x9b, 0x4a, 0xf2, 0x83, 0x33, 0x9b, 0x6a, 0xe2, 0x1e, 0xcc, 0xfb, 0x51,
		0x62, 0x06, 0xa7, 0x45, 0x94, 0xd9, 0x54, 0xc8, 0xaa, 0x5a, 0x80, 0xe0, 0xee, 0x54, 0x66, 0x53,
		0x95, 0x81, 0x83, 0x21, 0x03, 0xf5, 0xc3, 0x0c, 0x14, 0x4b, 0xdf, 0x26, 0x52, 0x4d, 0x2c, 0x7d,
		0xd3, 0xa2, 0xbe, 0x2c, 0x7d, 0x9b, 0xab, 0xae, 0x2f, 0x78, 0xe9, 0x5b, 0x9d, 0xa5, 0x6f, 0x8f,
		0xbc, 0x2e, 0x89, 0xcc, 0xae, 0x68, 0x46, 0x57, 0x7c, 0xed, 0xdb, 0x3a, 0x6b, 0xdf, 0x96, 0x38,
		0x91, 0xb5, 0x6f, 0xd6, 0x31, 0x2c, 0x6b, 0xdf, 0x16, 0x7c, 0x62, 0x62, 0x6b, 0xdf, 0xa4, 0x7b,
		0x82, 0x1c, 0xf5, 0x00, 0x39, 0xc9, 0xaa, 0xfa, 0x03, 0x1e, 0x43, 0x06, 0x8f, 0x9f, 0xca, 0x16,
		0x29, 0xad, 0x32, 0xb9, 0xb4, 0xc4, 0x2e, 0xcf, 0x95, 0xeb, 0x73, 0xee, 0x02, 0x9d, 0xbb, 0x42,
		0xa7, 0x2e, 0xb1, 0x9a, 0x04, 0x99, 0x78, 0xc6, 0xd3, 0x61, 0x2f, 0x92, 0x70, 0xef, 0x11, 0x24,
		0x0f, 0x24, 0xcf, 0x62, 0x24, 0x8f, 0x14, 0x1d, 0xab, 0x95, 0xe5, 0x11, 0x60, 0x60, 0x2d, 0xd2,
		0x3c, 0xaf, 0x4a, 0xa4, 0x84, 0x52, 0xca, 0xa7, 0x5f, 0xe9, 0x7c, 0xab, 0xec, 0x9c, 0x46, 0x35,
		0xb3, 0xa3, 0x60, 0xc5, 0x8b, 0x7f, 0xb1, 0xbf, 0xb1, 0x60, 0x45, 0xea, 0x83, 0xf0, 0xfe, 0x4b,
		0x1d, 0x4b, 0x56, 0x30, 0x78, 0xcb, 0x05, 0x9f, 0xb1, 0x1f, 0xa5, 0xd9, 0x6e, 0x96, 0xd9, 0x21,
		0x33, 0xfc, 0x8f, 0x51, 0xbc, 0xd7, 0x36, 0x7d, 0x18, 0x6d, 0xa9, 0x80, 0xc1, 0xff, 0x18, 0xde,
		0x4c, 0x9c, 0xb0, 0xf6, 0x5b, 0xad, 0xb6, 0xb5, 0x5d, 0xab, 0xad, 0x6e, 0x6f, 0x6c, 0xaf, 0xee,
		0x6c, 0x6e, 0xae, 0x6d, 0xad, 0x59, 0x28, 0xe3, 0xf0, 0x0f, 0x93, 0x96, 0x49, 0x4c, 0xeb, 0x7d,
		0xff, 0xf5, 0xc4, 0xbd, 0x76, 0xdb, 0xe6, 0x11, 0x9f, 0x53, 0x93, 0x58, 0xa9, 0xb8, 0x28, 0x5a,
		0x5a, 0x2d, 0x9b, 0x7b, 0x65, 0x66, 0xde, 0x82, 0x4d, 0xd7, 0x61, 0xcb, 0x8b, 0x35, 0xdd, 0xc5,
		0x19, 0xd8, 0x62, 0x7e, 0x53, 0x41, 0x42, 0x6f, 0x4b, 0xd8, 0x75, 0x08, 0x79, 0x81, 0xb2, 0xed,
		0x56, 0xa6, 0x8b, 0x91, 0xe5, 0xe5, 0x25, 0xaf, 0x00, 0xa9, 0xf3, 0xc3, 0x6e, 0xb7, 0x7d, 0x1b,
		0x74, 0x3b, 0xed, 0xa8, 0x59, 0xdc, 0x4e, 0xae, 0x9c, 0x29, 0x99, 0xfa, 0xed, 0x05, 0xe9, 0x48,
		0xb1, 0x49, 0xd6, 0xc2, 0x99, 0x66, 0x1b, 0x4c, 0xf2, 0x24, 0x53, 0x9c, 0x74, 0x3b, 0xed, 0x22,
		0x35, 0xc9, 0x12, 0x15, 0x6c, 0x9d, 0xea, 0xb5, 0x4e, 0xe5, 0x3e, 0xa4, 0x6a, 0x07, 0x0f, 0xbe,
		0xa2, 0x7e, 0xa7, 0xe8, 0xb4, 0xa3, 0xad, 0x2d, 0x4f, 0x76, 0xb7, 0x38, 0x59, 0xaa, 0xdf, 0xb0,
		0x96, 0xcc, 0xb2, 0x99, 0xb4, 0xb2, 0x68, 0x72, 0x6c, 0x9b, 0x1e, 0x31, 0x13, 0x24, 0x66, 0x8a,
		0x64, 0x4c, 0x52, 0x39, 0xd8, 0x0b, 0x5b, 0x15, 0x12, 0x7e, 0x6b, 0x58, 0x29, 0x10, 0x98, 0x9b,
		0x6e, 0x27, 0xc9, 0x8a, 0x86, 0x44, 0x8f, 0xea, 0xd7, 0xfc, 0x63, 0x2d, 0xc9, 0x8f, 0x44, 0x35,
		0x84, 0x7f, 0xbc, 0xf7, 0xff, 0xec, 0xfd, 0xfe, 0xa9, 0x71, 0x7c, 0xf8, 0xf9, 0xd3, 0x9e, 0x1d,
		0xc6, 0xce, 0x52, 0xd1, 0x83, 0xe5, 0x22, 0x07, 0xeb, 0x45, 0x0d, 0x12, 0x45, 0x0c, 0x02, 0x7e,
		0x41, 0xca, 0x3f, 0x88, 0xfb, 0x09, 0x71, 0x7f, 0x21, 0xeb, 0x37, 0xec, 0xf8, 0x0f, 0x4b, 0x7e,
		0x24, 0x7f, 0x34, 0xd6, 0xcb, 0x08, 0x66, 0x2c, 0xfd, 0xd0, 0xc4, 0x07, 0x59, 0xff, 0x60, 0x8b,
		0xda, 0x33, 0x06, 0xb3, 0x35, 0x8b, 0x67, 0xec, 0xc5, 0xbd, 0x2b, 0xfb, 0xfa, 0xf9, 0xa9, 0x73,
		0x92, 0x25, 0x51, 0x2c, 0xb3, 0x34, 0xd6, 0x5f, 0xed, 0xbf, 0xab, 0xdd, 0xdf, 0x7f, 0xdf, 0x3b,
		0x1a, 0xfb, 0x30, 0x81, 0xb4, 0xf6, 0x5a, 0xff, 0x50, 0xfb, 0x8e, 0xd3, 0xb2, 0x32, 0x4d, 0xbc,
		0xb1, 0xfa, 0xc0, 0xd8, 0x08, 0xbc, 0xae, 0xa9, 0x37, 0x25, 0x52, 0x2f, 0x38, 0xfd, 0x9e, 0xde,
		0x79, 0x6b, 0xa4, 0xfd, 0xad, 0xfe, 0x56, 0x0b, 0xc2, 0x9a, 0xdb, 0xe2, 0xe8, 0xca, 0x09, 0xd8,
		0x9f, 0x3e, 0x16, 0xb0, 0x0f, 0xd8, 0x07, 0xec, 0x03, 0xf6, 0x01, 0xfb, 0x80, 0x7d, 0xc0, 0x3e,
		0x60, 0x1f, 0xb0, 0x0f, 0xd8, 0x07, 0xec, 0x17, 0xf7, 0x0a, 0x85, 0x19, 0x7d, 0x11, 0x26, 0x1f,
		0xf4, 0x0a, 0x7a, 0x05, 0xbd, 0x82, 0x5e, 0xed, 0x68, 0x4c, 0xdb, 0x84, 0xe7, 0x89, 0x39, 0x97,
		0x40, 0xac, 0x16, 0xa7, 0x76, 0xfa, 0x47, 0x79, 0xc1, 0xe3, 0x50, 0x90, 0xde, 0x25, 0x9d, 0x5e,
		0x16, 0xc5, 0x17, 0x23, 0xdb, 0x9c, 0xff, 0x78, 0x04, 0xd2, 0x5b, 0xe6, 0x3c, 0x8a, 0xa3, 0x2c,
		0xea, 0xc4, 0xe9, 0xe3, 0xff, 0x29, 0xff, 0x2f, 0x83, 0xe2, 0xc3, 0x52, 0xc9, 0x8f, 0xd5, 0xa2,
		0xfc, 0xfc, 0x14, 0xeb, 0xc5, 0xf9, 0xf7, 0x27, 0x39, 0x28, 0xd2, 0xcf, 0x0f, 0x9f, 0x2c, 0xd6,
		0x17, 0x9a, 0x61, 0xd3, 0x4b, 0x4d, 0x62, 0xdb, 0xde, 0x0b, 0x76, 0x86, 0x4f, 0x3a, 0xb3, 0xce,
		0xf0, 0x69, 0x06, 0x67, 0x12, 0xeb, 0x83, 0x9c, 0x74, 0x81, 0x4f, 0x39, 0xb6, 0xc1, 0x9b, 0x64,
		0x28, 0xd4, 0xe3, 0x4a, 0x35, 0x6a, 0x4f, 0xe9, 0xbf, 0x9a, 0x17, 0x1c, 0xb8, 0x08, 0x67, 0x27,
		0x44, 0xb2, 0x12, 0x04, 0x2e, 0x04, 0x2e, 0x04, 0x2e, 0x04, 0x2e, 0x04, 0x2e, 0x04, 0x2e, 0x04,
		0x2e, 0x04, 0x2e, 0x04, 0x2e, 0x04, 0x2e, 0x04, 0x2e, 0x2e, 0x03, 0x17, 0xda, 0xff, 0x5d, 0x75,
		0x46, 0x4f, 0x74, 0xc7, 0xae, 0x58, 0xe9, 0x68, 0xf3, 0xdc, 0xf5, 0x4a, 0xf7, 0x3f, 0xdb, 0xd1,
		0xe0, 0xa3, 0x35, 0x46, 0x31, 0x99, 0xd6, 0x09, 0x00, 0x85, 0xb6, 0xa5, 0xdb, 0x18, 0x6a, 0x6d,
		0x75, 0x88, 0xb5, 0xf5, 0xa6, 0xc7, 0x75, 0x9a, 0x1e, 0x05, 0x71, 0x0a, 0x4d, 0x8f, 0x55, 0xf4,
		0x82, 0x34, 0x3d, 0x2e, 0xf3, 0xf0, 0xa8, 0x83, 0x7e, 0x82, 0xfd, 0x87, 0x90, 0x75, 0xea, 0x17,
		0xa4, 0xe3, 0x58, 0x08, 0xd9, 0x32, 0x84, 0xad, 0xd4, 0x41, 0x3f, 0x13, 0xcc, 0x52, 0x07, 0xbd,
		0xd8, 0x69, 0xd4, 0x41, 0x17, 0xf1, 0xc6, 0xa8, 0x83, 0xd6, 0x4f, 0x02, 0xd2, 0xf4, 0x48, 0xd3,
		0x23, 0x60, 0x1f, 0xb0, 0x0f, 0xd8, 0x07, 0xec, 0x03, 0xf6, 0x01, 0xfb, 0x80, 0x7d, 0xc0, 0x3e,
		0x60, 0x1f, 0xb0, 0x5f, 0x35, 0xb0, 0x4f, 0xd3, 0x23, 0xe8, 0x15, 0xf4, 0x0a, 0x7a, 0x05, 0xbd,
		0x3e, 0x55, 0x63, 0xa8, 0x1d, 0xa6, 0x76, 0xf8, 0xb9, 0xa7, 0x50, 0x3b, 0x6c, 0x4b, 0x2b, 0xa9,
		0x1d, 0x2e, 0xa9, 0x53, 0xf3, 0xa8, 0x1d, 0x5e, 0x50, 0xa9, 0x68, 0x7a, 0xa4, 0xe9, 0x91, 0xc0,
		0x85, 0xc0, 0x85, 0xc0, 0x85, 0xc0, 0x85, 0xc0, 0x85, 0xc0, 0x85, 0xc0, 0x85, 0xc0, 0x85, 0xc0,
		0x85, 0xc0, 0x85, 0xc0, 0x85, 0xa6, 0xc7, 0x42, 0x7f, 0xbf, 0x9a, 0xa6, 0x47, 0x1b, 0x0d, 0x6d,
		0x9e, 0x8a, 0x9e, 0xc7, 0x93, 0xc1, 0x27, 0x63, 0xe9, 0xb1, 0x3b, 0x69, 0x57, 0x23, 0xe5, 0xe5,
		0xdf, 0x7b, 0x7c, 0x2f, 0xd7, 0x95, 0x5a, 0x7d, 0x9c, 0x06, 0x7d, 0xe1, 0x08, 0x3a, 0xdd, 0x41,
		0x10, 0x61, 0x61, 0xfb, 0xf1, 0x83, 0x03, 0x58, 0x80, 0x5c, 0x04, 0x39, 0x74, 0x76, 0xd1, 0x65,
		0xff, 0xb1, 0x83, 0xfd, 0xc7, 0xfd, 0xe7, 0xce, 0xfa, 0xe3, 0xa7, 0xfd, 0x42, 0xd6, 0x1f, 0x5b,
		0x34, 0x30, 0x36, 0x0d, 0x8d, 0x7d, 0x83, 0x23, 0x15, 0xbb, 0x57, 0x7f, 0x10, 0x40, 0xa1, 0x06,
		0xa9, 0x1c, 0x81, 0xa1, 0xb5, 0x39, 0x00, 0x61, 0xbb, 0xdd, 0xf9, 0x16, 0x74, 0xbe, 0xc5, 0x41,
		0x98, 0xda, 0xcf, 0xb9, 0x4d, 0x9d, 0x56, 0xe6, 0x46, 0xa0, 0x55, 0xba, 0x7f, 0x04, 0x0c, 0xbd,
		0x84, 0xc1, 0x97, 0x33, 0xfc, 0x52, 0x0e, 0x40, 0xdc, 0x11, 0x88, 0x3b, 0x04, 0x51, 0xc7, 0x60,
		0x8f, 0x8b, 0xf4, 0x2a, 0x91, 0x84, 0xec, 0x45, 0x71, 0xf6, 0x9b, 0x40, 0x0a, 0xd2, 0x66, 0x96,
		0xe8, 0x38, 0x8c, 0x2f, 0x8c, 0x55, 0x8f, 0xd1, 0xff, 0x12, 0xc8, 0xd5, 0x7c, 0x8c, 0x62, 0x91,
		0xa4, 0xd0, 0xe0, 0xb0, 0x2f, 0x61, 0xbb, 0x67, 0x64, 0x1a, 0x53, 0x06, 0xe7, 0xfd, 0x91, 0x84,
		0xcd, 0x2c, 0xea, 0xc4, 0x1f, 0xa2, 0x8b, 0xc8, 0x76, 0xd6, 0x72, 0x5a, 0xd4, 0xcd, 0x45, 0x98,
		0x45, 0xd7, 0xfd, 0xcf, 0x7a, 0x1e, 0xb6, 0x53, 0x63, 0xfd, 0xd4, 0x3b, 0x81, 0x44, 0xd7, 0xc7,
		0xf0, 0x46, 0x5e, 0x54, 0xd6, 0x37, 0x37, 0x11, 0x96, 0x52, 0x38, 0x26, 0xfb, 0xbf, 0xfd, 0xf4,
		0x25, 0x4f, 0x64, 0x88, 0xd2, 0xf0, 0xac, 0x6d, 0x82, 0x41, 0xe6, 0x20, 0x4c, 0x83, 0xf3, 0xa8,
		0x9d, 0x99, 0x44, 0x60, 0x24, 0xc3, 0xfc, 0x73, 0xcb, 0x1c, 0x8a, 0x0d, 0x94, 0x8c, 0x70, 0x8c,
		0x70, 0x8c, 0x70, 0x8c, 0x70, 0x8c, 0x70, 0xec, 0xac, 0xd3, 0x69, 0x9b, 0x30, 0x96, 0xa8, 0x09,
		0x5d, 0x7b, 0xc1, 0x0e, 0x3c, 0x31, 0xdd, 0x76, 0xd8, 0xcc, 0x1d, 0xa9, 0x7d, 0xcf, 0xfd, 0xf0,
		0x40, 0x5c, 0x36, 0x2e, 0x1b, 0x97, 0x8d, 0xcb, 0xc6, 0x65, 0xe3, 0xb2, 0x2b, 0xe8, 0xb2, 0x29,
		0xd3, 0x75, 0x55, 0xc0, 0x38, 0x5d, 0xbb, 0x56, 0xb9, 0xf5, 0x24, 0xe9, 0x51, 0x98, 0x5d, 0x1e,
		0x0e, 0x3f, 0x1c, 0x0b, 0x4a, 0x8a, 0x32, 0x61, 0x2c, 0x28, 0xa1, 0x2c, 0x49, 0x09, 0x96, 0xa2,
		0x2c, 0x49, 0xce, 0x11, 0x52, 0x96, 0xa4, 0x2b, 0xb0, 0xa6, 0x2c, 0x89, 0xa0, 0x9a, 0xa0, 0x9a,
		0xa0, 0x9a, 0xa0, 0x9a, 0xb2, 0xa4, 0x27, 0x7f, 0x51, 0x96, 0xb4, 0xdc, 0x79, 0x94, 0x25, 0x15,
		0x2a, 0x2a, 0x94, 0x25, 0x55, 0x44, 0x58, 0x28, 0x4b, 0xb2, 0x7a, 0x5f, 0xca, 0x92, 0x54, 0x87,
		0x62, 0xe4, 0x38, 0x09, 0xc7, 0x08, 0xc7, 0x08, 0xc7, 0x08, 0xc7, 0xc8, 0x71, 0xca, 0x39, 0x70,
		0xca, 0x92, 0x70, 0xd9, 0xb8, 0x6c, 0x5c, 0x36, 0x2e, 0x1b, 0x97, 0x8d, 0xcb, 0xa6, 0x2c, 0xa9,
		0xd0, 0xdf, 0xaf, 0xa9, 0x2c, 0xa9, 0x62, 0x03, 0x04, 0xa7, 0xaa, 0x92, 0x18, 0x21, 0xe8, 0x5a,
		0xe4, 0x35, 0x89, 0x7a, 0xf9, 0xa7, 0x08, 0x4e, 0x0a, 0x77, 0x95, 0xe6, 0x08, 0x16, 0x3c, 0xec,
		0xcb, 0xce, 0x90, 0x2f, 0xa6, 0x06, 0x32, 0x35, 0x90, 0xa9, 0x81, 0x85, 0x3a, 0x9d, 0xc2, 0xa7,
		0x06, 0x86, 0xbd, 0xec, 0x32, 0xe8, 0x86, 0x69, 0x3a, 0x12, 0x01, 0x4b, 0x45, 0xba, 0xd3, 0xc7,
		0xd8, 0x29, 0xd6, 0x5d, 0x65, 0x86, 0x20, 0xc5, 0xba, 0x0a, 0x99, 0x05, 0x8a, 0x75, 0xed, 0x31,
		0x07, 0xf7, 0x64, 0xf0, 0x78, 0x6f, 0x8b, 0x1d, 0x1b, 0x33, 0x05, 0x67, 0x7e, 0x7b, 0x01, 0x4d,
		0x1b, 0x2d, 0x93, 0x36, 0x93, 0xa8, 0x6b, 0x25, 0xa2, 0x9f, 0xd8, 0xdd, 0x7f, 0x7f, 0x08, 0x3e,
		0x01, 0x9f, 0x80, 0x4f, 0xc0, 0x27, 0x14, 0x28, 0xef, 0x69, 0x96, 0x44, 0xf1, 0x05, 0x9e, 0x60,
		0xb9, 0xcf, 0xda, 0xee, 0x34, 0xc3, 0xb6, 0x8d, 0x84, 0xee, 0xfd, 0x2e, 0xb9, 0xf1, 0x09, 0xf8,
		0x00, 0x7c, 0x00, 0x3e, 0x00, 0x1f, 0x50, 0x24, 0xf1, 0x90, 0x06, 0x71, 0xef, 0xea, 0xcc, 0x4a,
		0x45, 0xe7, 0xd8, 0xc0, 0x58, 0x58, 0x50, 0x69, 0xb9, 0xff, 0xc2, 0xee, 0x72, 0x47, 0xfb, 0x55,
		0x08, 0x42, 0x7d, 0x16, 0xe2, 0x25, 0xf3, 0x72, 0xa5, 0xf2, 0x77, 0x76, 0xb7, 0x6e, 0xca, 0x89,
		0x40, 0x6d, 0x7d, 0xa7, 0xb6, 0xb3, 0xb5, 0xbd, 0xbe, 0xb3, 0x89, 0x2c, 0xa8, 0xf0, 0x11, 0xf6,
		0x7e, 0xeb, 0xe9, 0x0b, 0x40, 0xdb, 0xb6, 0xaa, 0x27, 0x73, 0x87, 0x68, 0xa7, 0x5a, 0x12, 0xac,
		0x0d, 0xd6, 0x06, 0x6b, 0x83, 0xb5, 0xc1, 0xda, 0x60, 0x6d, 0xf0, 0x15, 0x58, 0x1b, 0x59, 0x00,
		0x6b, 0x97, 0x03, 0x6b, 0x0f, 0x0a, 0x1f, 0x83, 0x51, 0x5d, 0xa2, 0x4d, 0xcc, 0x3d, 0x71, 0x10,
		0xd8, 0x1b, 0xec, 0x0d, 0xf6, 0x06, 0x7b, 0x17, 0x28, 0xef, 0xe4, 0x3a, 0x0b, 0xf3, 0x08, 0x99,
		0x8d, 0x97, 0x35, 0xed, 0x0b, 0x06, 0x47, 0xe0, 0x05, 0xf0, 0x02, 0x78, 0x01, 0xbc, 0x40, 0x09,
		0x8c, 0xcb, 0x94, 0x23, 0xa8, 0x59, 0xf8, 0xdd, 0x7b, 0x71, 0xef, 0xca, 0x9e, 0x32, 0x7d, 0xea,
		0x9c, 0x0c, 0xdd, 0xa3, 0xd5, 0xe6, 0xd5, 0xd5, 0xfe, 0x1b, 0xa8, 0x1f, 0x7c, 0xda, 0x3b, 0x3e,
		0xd8, 0xdd, 0xb7, 0xd9, 0xba, 0xba, 0xd6, 0x3f, 0x68, 0xef, 0xdf, 0xa3, 0x83, 0xca, 0xd5, 0x42,
		0xdc, 0xa9, 0x0f, 0x2c, 0x80, 0xc5, 0xd7, 0x90, 0x3f, 0x98, 0xc2, 0xc7, 0x77, 0x4f, 0x1d, 0x93,
		0xbf, 0xe8, 0x77, 0xde, 0xea, 0xcb, 0x6c, 0x21, 0x56, 0x89, 0xe0, 0x12, 0x73, 0xd5, 0xb9, 0x36,
		0x41, 0x37, 0x89, 0xae, 0xc3, 0xcc, 0x58, 0xcd, 0xa4, 0xcd, 0x1e, 0x05, 0xa2, 0x03, 0xd1, 0x81,
		0xe8, 0x40, 0x74, 0x36, 0x8d, 0xcc, 0xa8, 0x37, 0xdb, 0x26, 0xc0, 0xb3, 0xc0, 0xee, 0xfb, 0xf5,
		0x96, 0x89, 0xb3, 0x28, 0xbb, 0x7d, 0x1f, 0xa6, 0xc6, 0xfe, 0x68, 0xa8, 0xe3, 0xbd, 0x8f, 0x87,
		0x5f, 0xf6, 0x1a, 0x47, 0xc7, 0xf5, 0x2f, 0xbb, 0x9f, 0xf6, 0x1a, 0xbb, 0x27, 0x8d, 0xc3, 0xa3,
		0x4f, 0xf5, 0xc3, 0x03, 0x5b, 0x2a, 0x37, 0x48, 0x90, 0xa4, 0x56, 0x47, 0x44, 0x59, 0x4e, 0xf1,
		0x8c, 0x9f, 0xdc, 0xc4, 0x23, 0x1b, 0x3d, 0xc4, 0xdd, 0xfd, 0x7d, 0xbf, 0x8c, 0xa9, 0x31, 0x17,
		0x0f, 0xec, 0x68, 0x7f, 0xf7, 0x77, 0xdb, 0x4f, 0xcc, 0xce, 0x90, 0x30, 0xc0, 0xe6, 0x73, 0xc0,
		0x66, 0xa7, 0x97, 0x99, 0xe0, 0xbc, 0x1d, 0x76, 0x83, 0x56, 0x78, 0xd5, 0xb5, 0x11, 0x61, 0x4e,
		0x35, 0x38, 0x3e, 0x38, 0xab, 0xe8, 0x8d, 0x2a, 0x16, 0x07, 0xdd, 0xd9, 0x18, 0x70, 0x77, 0x0a,
		0xdc, 0x06, 0x6e, 0x03, 0xb7, 0x81, 0xdb, 0x05, 0xca, 0xbb, 0xbd, 0xc1, 0x73, 0x96, 0x06, 0xce,
		0x29, 0x5d, 0xf9, 0x67, 0xe2, 0x56, 0xd0, 0xec, 0x5c, 0x5d, 0xf5, 0xe2, 0x28, 0xbb, 0xb5, 0xb8,
		0xfb, 0x6f, 0xfa, 0x9c, 0x32, 0x39, 0xc4, 0x83, 0xc3, 0x83, 0x3d, 0xfc, 0x21, 0xfe, 0x10, 0x7f,
		0x88, 0x3f, 0xd4, 0xeb, 0x0f, 0x73, 0xdb, 0x4a, 0x56, 0x71, 0xf6, 0xe9, 0xcb, 0x65, 0x15, 0x4f,
		0x3e, 0xed, 0x1e, 0x7c, 0xd8, 0x3d, 0xfe, 0x20, 0x92, 0x55, 0x3c, 0xf8, 0xb0, 0x67, 0xf5, 0xa0,
		0xf5, 0xfe, 0x41, 0xfb, 0xbb, 0xc7, 0x7f, 0xee, 0xd9, 0x3c, 0x65, 0xa3, 0x7f, 0xca, 0xfb, 0xc3,
		0x4f, 0xff, 0x6b, 0xf3, 0x90, 0x5a, 0xff, 0x90, 0xe2, 0x3d, 0xb9, 0x65, 0x76, 0x4c, 0x22, 0x0b,
		0x3b, 0x78, 0xf2, 0xef, 0xbc, 0x8d, 0x5f, 0xed, 0x26, 0x7a, 0x07, 0xb2, 0x6a, 0x37, 0xd1, 0x3b,
		0x94, 0xd4, 0xc2, 0x57, 0x36, 0xcf, 0x82, 0xc1, 0x77, 0x5e, 0xcd, 0xe6, 0x80, 0xf8, 0xb1, 0x09,
		0x79, 0xb1, 0xf9, 0xea, 0x82, 0x9d, 0xaf, 0xb9, 0xc9, 0x92, 0x30, 0xe8, 0xc5, 0x69, 0x16, 0x9e,
		0xb5, 0x2d, 0xb9, 0xe1, 0x34, 0x0b, 0xb3, 0x5e, 0x5a, 0xc6, 0xd6, 0xa4, 0xfb, 0x11, 0x5f, 0xdd,
		0xc4, 0x34, 0xc3, 0xcc, 0xb4, 0x2a, 0xb6, 0xfd, 0x60, 0xf4, 0x6a, 0xaa, 0xbc, 0xfd, 0x60, 0xe2,
		0xdd, 0xd1, 0x0f, 0xf3, 0xe2, 0x58, 0x1b, 0xcb, 0x75, 0xd0, 0xf3, 0x0e, 0x83, 0xc0, 0x80, 0xc0,
		0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0,
		0x80, 0xc0, 0xb0, 0xe5, 0x7c, 0xf7, 0xa3, 0x34, 0xdb, 0xcd, 0x32, 0x3b, 0x3b, 0xb6, 0xfd, 0x8f,
		0x51, 0xbc, 0xd7, 0x36, 0x7d, 0x78, 0x63, 0x69, 0x7e, 0x83, 0xff, 0x31, 0xbc, 0x99, 0x38, 0x61,
		0xed, 0xb7, 0x5a, 0x6d, 0x6b, 0xbb, 0x56, 0x5b, 0xdd, 0xde, 0xd8, 0x5e, 0xdd, 0xd9, 0xdc, 0x5c,
		0xdb, 0xb2, 0x52, 0xc7, 0x7a, 0x98, 0xb4, 0x4c, 0x62, 0x5a, 0xef, 0x6f, 0xfd, 0x77, 0x5e, 0xdc,
		0x6b, 0xb7, 0x6d, 0x1e, 0xf1, 0x39, 0x1d, 0x2c, 0x40, 0x2f, 0x7e, 0x20, 0x05, 0x2b, 0xb9, 0x16,
		0x0c, 0x8c, 0x1d, 0xae, 0xe4, 0x2a, 0x74, 0x23, 0x93, 0xe7, 0x6c, 0x13, 0xd7, 0x28, 0x68, 0xae,
		0xd0, 0x0a, 0x2e, 0x73, 0x76, 0xd1, 0x0d, 0xae, 0x7a, 0xed, 0x2c, 0xba, 0xec, 0x74, 0x8b, 0xdf,
		0xc4, 0x35, 0xfd, 0xeb, 0x59, 0xc8, 0xa5, 0x8f, 0xf9, 0x60, 0x21, 0x97, 0x13, 0x66, 0xa3, 0xe2,
		0x0b, 0xb9, 0x0a, 0xde, 0xec, 0x37, 0x87, 0x10, 0x29, 0xd8, 0x9f, 0x58, 0x30, 0x2c, 0xd6, 0x0c,
		0x8c, 0x4d, 0x43, 0x63, 0xdf, 0xe0, 0xd8, 0x36, 0x3c, 0x62, 0x06, 0x48, 0xcc, 0x10, 0x89, 0x18,
		0xa4, 0x72, 0x44, 0x7b, 0x45, 0x1b, 0xaa, 0x7b, 0x1c, 0x14, 0x87, 0x67, 0x6d, 0xd3, 0xb2, 0xdf,
		0xd4, 0x37, 0x3e, 0xc8, 0x92, 0x88, 0xd8, 0xac, 0xf6, 0xcd, 0x0f, 0xb1, 0xd0, 0x06, 0x33, 0xfe,
		0x3a, 0xb5, 0xf4, 0x5c, 0xec, 0x64, 0xd1, 0xac, 0x9b, 0x78, 0x09, 0x53, 0x2f, 0x67, 0xf2, 0xa5,
		0x4c, 0xbf, 0xb8, 0x0b, 0x10, 0x77, 0x05, 0xa2, 0x2e, 0xc1, 0x1e, 0xb5, 0xe8, 0xd9, 0x64, 0xd7,
		0x6d, 0x65, 0xe5, 0x66, 0xf4, 0xc5, 0x5e, 0xbb, 0xcd, 0x0c, 0x32, 0x5d, 0x2b, 0x0b, 0x67, 0x6c,
		0x01, 0x2f, 0x8e, 0x69, 0x84, 0x20, 0xcb, 0xda, 0xf6, 0xfd, 0xf4, 0xd4, 0x69, 0x38, 0x25, 0x9c,
		0x12, 0x4e, 0x09, 0xa7, 0x54, 0x22, 0xa7, 0xd4, 0x8b, 0xe2, 0xec, 0x37, 0x01, 0x97, 0x64, 0x71,
		0x88, 0xba, 0xe5, 0x95, 0x06, 0xe3, 0x2f, 0xbb, 0xea, 0xee, 0x49, 0xad, 0x38, 0xc8, 0x0f, 0x13,
		0x5a, 0x75, 0x90, 0x9f, 0x27, 0x3d, 0xe6, 0xfe, 0x5e, 0xd4, 0xa5, 0xc6, 0xdd, 0x5b, 0xb6, 0x0a,
		0xd3, 0xa2, 0x22, 0xb0, 0x0a, 0x61, 0x46, 0x54, 0xd6, 0x37, 0x37, 0x11, 0x96, 0x52, 0x38, 0x26,
		0xfb, 0xbf, 0xfd, 0x94, 0xb2, 0x94, 0x22, 0x20, 0x90, 0x9d, 0x24, 0x7e, 0xfe, 0xfb, 0x5d, 0x26,
		0xf3, 0xa7, 0x92, 0xba, 0x2b, 0x56, 0x52, 0x31, 0x9e, 0xb3, 0x14, 0xff, 0xde, 0xd9, 0x45, 0xf7,
		0xe3, 0xe8, 0xb3, 0x15, 0x9a, 0xef, 0x2f, 0x5e, 0x6e, 0x0b, 0xed, 0x9a, 0xc8, 0xc2, 0xcc, 0x66,
		0x9f, 0xc4, 0xe0, 0xd7, 0x97, 0x2c, 0x5d, 0xb7, 0x4e, 0xba, 0x4e, 0x2e, 0x3c, 0x26, 0x5d, 0x57,
		0x41, 0x2f, 0x48, 0xba, 0xee, 0x67, 0x0f, 0x88, 0x74, 0xdd, 0x8f, 0x4c, 0x3b, 0xcc, 0xa8, 0x4b,
		0x93, 0x2f, 0x65, 0xfa, 0xc5, 0x5d, 0x80, 0xb8, 0x2b, 0x10, 0x75, 0x09, 0x76, 0x43, 0x44, 0xd2,
		0x75, 0x0b, 0x20, 0x53, 0xd2, 0x75, 0xa4, 0xeb, 0x70, 0x4a, 0x38, 0x25, 0x9c, 0x12, 0x4e, 0xe9,
		0xc7, 0xfa, 0x42, 0xba, 0xee, 0xa9, 0x5f, 0xa4, 0xeb, 0x96, 0x3b, 0x8f, 0x74, 0x5d, 0xa1, 0xa2,
		0x42, 0xba, 0xae, 0x22, 0xc2, 0x42, 0xba, 0xce, 0x6e, 0x88, 0x41, 0xba, 0x4e, 0x45, 0xba, 0xce,
		0x46, 0x26, 0xc6, 0xd3, 0x91, 0xad, 0x3b, 0x19, 0x7c, 0x34, 0x7a, 0xcc, 0xdd, 0xc9, 0xbb, 0x1e,
		0x39, 0x2f, 0x7d, 0xab, 0xf9, 0xa4, 0x64, 0x57, 0xaa, 0xe1, 0x7c, 0x90, 0x50, 0x09, 0xce, 0xce,
		0x5b, 0x16, 0xba, 0xcd, 0xef, 0x7f, 0x37, 0xad, 0xe6, 0x85, 0x50, 0x38, 0xe7, 0x2d, 0x5a, 0xcd,
		0x5d, 0xb4, 0x9a, 0x9f, 0xb7, 0x68, 0x35, 0x7f, 0xe2, 0x2f, 0xa4, 0xd5, 0xdc, 0xa2, 0x81, 0xb1,
		0x69, 0x68, 0xec, 0x1b, 0x1c, 0xdb, 0x86, 0x47, 0xcc, 0x00, 0x89, 0x19, 0x22, 0x11, 0x83, 0x54,
		0x8e, 0x90, 0x90, 0xda, 0x95, 0xa7, 0x99, 0x30, 0xd2, 0x61, 0x2e, 0x4d, 0x9b, 0x94, 0x89, 0x13,
		0x37, 0x75, 0xe2, 0x26, 0x4f, 0xd4, 0xf4, 0xd9, 0xe5, 0x05, 0xa9, 0xd1, 0x58, 0x00, 0x81, 0xad,
		0x41, 0xa0, 0xea, 0x25, 0x94, 0x74, 0x10, 0x4b, 0x39, 0xad, 0x50, 0xb9, 0x66, 0x87, 0xc1, 0x27,
		0x7b, 0x7f, 0xde, 0xa2, 0xd3, 0xa1, 0x28, 0xcb, 0x45, 0xa7, 0x03, 0xd1, 0x22, 0xd1, 0x22, 0xd1,
		0x22, 0xd1, 0x22, 0xd1, 0x22, 0xd1, 0x22, 0xd1, 0x22, 0xd1, 0x22, 0xd1, 0x22, 0xd1, 0xe2, 0xcb,
		0x8c, 0x16, 0x2b, 0x56, 0x6b, 0x93, 0x07, 0x8b, 0x14, 0xda, 0xb8, 0x96, 0x74, 0x25, 0x12, 0x5e,
		0xfe, 0x2a, 0x9b, 0xb1, 0x4c, 0x57, 0xaa, 0xc4, 0x26, 0x49, 0x3a, 0x49, 0x70, 0x19, 0xc6, 0xad,
		0x76, 0x91, 0x7b, 0xd1, 0xee, 0x23, 0x85, 0xe9, 0xdf, 0x4f, 0xa9, 0x4d, 0x21, 0x80, 0x9f, 0xad,
		0x0e, 0x1e, 0x5b, 0x1d, 0x0a, 0xf5, 0x3d, 0x94, 0xda, 0x78, 0x94, 0xda, 0x08, 0x19, 0x1c, 0x29,
		0x66, 0x81, 0x31, 0x31, 0x15, 0x0c, 0x07, 0xad, 0x91, 0xa7, 0x59, 0x62, 0xc2, 0x2c, 0x08, 0xd3,
		0xe0, 0x5b, 0x94, 0x5d, 0xb6, 0x92, 0xf0, 0x9b, 0x7d, 0x1a, 0x75, 0xf6, 0x48, 0x46, 0xc7, 0xcc,
		0xfd, 0x62, 0x74, 0x8c, 0xb8, 0xf9, 0x97, 0x73, 0x03, 0x52, 0xee, 0x40, 0xdc, 0x2d, 0x88, 0xbb,
		0x07, 0x51, 0x37, 0x61, 0x8f, 0x8f, 0xf4, 0x20, 0x9a, 0x17, 0x43, 0xab, 0x6b, 0xa5, 0x7a, 0x05,
		0xe6, 0x26, 0x4b, 0xc2, 0xa0, 0x17, 0xa7, 0x59, 0x78, 0xd6, 0xb6, 0xfc, 0x32, 0x12, 0x73, 0x6e,
		0x12, 0x13, 0x37, 0x2b, 0x31, 0x6a, 0x60, 0x2c, 0x59, 0xad, 0x24, 0x3c, 0xcf, 0x82, 0xc8, 0x64,
		0xe7, 0x41, 0xd4, 0x4a, 0x82, 0x69, 0x8a, 0x25, 0x58, 0xdb, 0xf2, 0x05, 0x7a, 0xd9, 0x85, 0x6c,
		0xf5, 0x3c, 0x9b, 0x7d, 0xff, 0x4e, 0x85, 0xfa, 0xcb, 0xa5, 0xcd, 0xf7, 0x5c, 0x33, 0xfe, 0xd3,
		0x97, 0x4e, 0xd7, 0xfb, 0x63, 0xe0, 0x91, 0x34, 0x5c, 0x11, 0xb2, 0x58, 0xe5, 0x34, 0xdc, 0x94,
		0x32, 0x55, 0xae, 0x70, 0xb3, 0xff, 0xe9, 0xfe, 0x77, 0xf4, 0xe1, 0x28, 0xde, 0x2c, 0xca, 0x0b,
		0x53, 0xbc, 0x09, 0xff, 0xa8, 0x24, 0xd0, 0x84, 0x7f, 0x94, 0xf3, 0x83, 0xf0, 0x8f, 0xcf, 0x79,
		0x68, 0xf0, 0x8f, 0x3f, 0x32, 0xf7, 0xf0, 0x8f, 0x2e, 0xdd, 0x80, 0x74, 0x4c, 0x0b, 0xff, 0x58,
		0x82, 0xc0, 0x11, 0xfe, 0x71, 0x01, 0xb4, 0x0a, 0xff, 0xf8, 0xd8, 0x59, 0xf0, 0x8f, 0xe5, 0xb6,
		0xd5, 0xf3, 0x6c, 0x36, 0xfc, 0x23, 0xfc, 0xe3, 0x42, 0xe0, 0x11, 0xfe, 0xb1, 0x08, 0x59, 0x7c,
		0x39, 0xfc, 0x63, 0xc5, 0x5a, 0x01, 0xa6, 0xe8, 0x47, 0xda, 0x01, 0x5c, 0x4b, 0xbc, 0x22, 0x49,
		0x2f, 0x7f, 0x4b, 0xc0, 0xa4, 0x6c, 0x57, 0xa9, 0x2d, 0xe0, 0x22, 0x09, 0x9b, 0xe6, 0xbc, 0xd7,
		0x0e, 0x12, 0x93, 0x66, 0x61, 0x92, 0x15, 0xdf, 0x18, 0x30, 0x73, 0x02, 0xad, 0x01, 0xfa, 0x28,
		0x12, 0x5a, 0x03, 0x9c, 0x50, 0x1c, 0xb4, 0x06, 0x2c, 0xa5, 0x06, 0xb4, 0x06, 0x90, 0x9a, 0x73,
		0x6d, 0x80, 0xc4, 0x83, 0x77, 0x52, 0x73, 0xcc, 0x55, 0x79, 0xa2, 0x09, 0x23, 0xdd, 0xe4, 0xd2,
		0xb4, 0x49, 0x53, 0x98, 0xa4, 0x9b, 0x4a, 0xc0, 0x13, 0x92, 0x6e, 0x5a, 0x00, 0x81, 0xbd, 0xe4,
		0x4d, 0xa9, 0x97, 0xa6, 0xdd, 0x35, 0x49, 0xd0, 0x89, 0xdb, 0xb7, 0xf6, 0xdd, 0xd1, 0xe4, 0x61,
		0xb8, 0x24, 0x5c, 0x12, 0x2e, 0x09, 0x97, 0x84, 0x4b, 0xc2, 0x25, 0x4d, 0x3f, 0x83, 0x11, 0x81,
		0x1b, 0x64, 0xd1, 0x95, 0xb1, 0xef, 0x93, 0xa6, 0x4e, 0xc3, 0x29, 0xe1, 0x94, 0x70, 0x4a, 0x38,
		0xa5, 0x12, 0x39, 0xa5, 0x5e, 0x14, 0x67, 0x56, 0x4b, 0xa4, 0xc6, 0xd6, 0x6b, 0x8b, 0xed, 0xdd,
		0x3f, 0xff, 0x20, 0x6c, 0xef, 0xb6, 0x22, 0xeb, 0x6c, 0xef, 0x2e, 0x48, 0x54, 0x6a, 0xab, 0x3b,
		0x5b, 0x48, 0x4b, 0x29, 0x5c, 0x93, 0xfd, 0xdf, 0x7e, 0xfa, 0x82, 0x83, 0x8c, 0x34, 0x0b, 0xdb,
		0x26, 0x48, 0x3a, 0xbd, 0xcc, 0xa4, 0x42, 0x91, 0xc6, 0xec, 0x91, 0x84, 0x1b, 0x84, 0x1b, 0x84,
		0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x84, 0x1b, 0x95, 0x0b, 0x37, 0xb6, 0x36,
		0x37, 0x37, 0x36, 0x11, 0x17, 0xe2, 0x8d, 0x72, 0xc5, 0x1b, 0x34, 0x2e, 0x39, 0x6a, 0xe7, 0x78,
		0x58, 0xc4, 0x5f, 0xb5, 0xd1, 0x49, 0x7f, 0x8e, 0x3e, 0xdf, 0xf1, 0xf0, 0xe3, 0x31, 0x3c, 0xa9,
		0xc0, 0xd8, 0x9a, 0xe1, 0x49, 0x54, 0x68, 0x6b, 0x88, 0x8f, 0xa9, 0xd0, 0x96, 0xf3, 0x85, 0x54,
		0x68, 0x3f, 0xcd, 0x84, 0x41, 0x05, 0xba, 0x34, 0x6d, 0x52, 0x26, 0x4e, 0xdc, 0xd4, 0x89, 0x9b,
		0x3c, 0x51, 0xd3, 0x67, 0x37, 0x20, 0xa2, 0x1c, 0x6e, 0x01, 0x04, 0x46, 0x85, 0x36, 0x15, 0xda,
		0xb8, 0x24, 0x5c, 0x12, 0x2e, 0x09, 0x97, 0x84, 0x4b, 0x72, 0xee, 0x92, 0xa8, 0xd0, 0xc6, 0x29,
		0xe1, 0x94, 0x70, 0x4a, 0x38, 0xa5, 0xa7, 0xe8, 0x0b, 0x25, 0x13, 0x4f, 0xfe, 0xa2, 0x64, 0x62,
		0xb9, 0xf3, 0x28, 0x99, 0x28, 0x54, 0x54, 0xa8, 0xd0, 0xae, 0x8a, 0xb4, 0x50, 0x31, 0x51, 0xba,
		0x20, 0x83, 0x0a, 0x6d, 0xc2, 0x0d, 0xc2, 0x0d, 0xc2, 0x0d, 0xc2, 0x0d, 0xc2, 0x0d, 0xc2, 0x0d,
		0xc2, 0x0d, 0xc2, 0x0d, 0x1b, 0xa2, 0x42, 0x85, 0x36, 0xf1, 0x46, 0x09, 0xe3, 0x0d, 0x2a, 0xb4,
		0xb5, 0x54, 0x68, 0x57, 0x6b, 0xb9, 0xc4, 0xc3, 0x02, 0x6d, 0xd6, 0x4b, 0xb8, 0x96, 0x7a, 0x55,
		0xd2, 0x5e, 0xfa, 0x05, 0x13, 0x0f, 0xe4, 0xbb, 0x4a, 0x2b, 0x26, 0xda, 0x9d, 0x8b, 0x8b, 0x28,
		0xbe, 0x08, 0x3a, 0xdd, 0xbe, 0x0c, 0xa6, 0xc5, 0x6f, 0x98, 0x78, 0x78, 0x00, 0x0b, 0x26, 0xf4,
		0x71, 0x3b, 0x2c, 0x98, 0x70, 0xc2, 0xcd, 0xb0, 0x60, 0x62, 0x29, 0x35, 0x60, 0xc1, 0x04, 0xed,
		0x4b, 0xae, 0x0d, 0x90, 0x98, 0x21, 0x12, 0x31, 0x48, 0xe5, 0x08, 0x14, 0xad, 0xb5, 0x2f, 0xb5,
		0x3b, 0x7d, 0x74, 0x1c, 0x5d, 0x5c, 0x9e, 0x75, 0x92, 0x60, 0x10, 0xa1, 0x05, 0xcd, 0xcb, 0x30,
		0xbe, 0x30, 0xa9, 0xfd, 0x24, 0xda, 0x0f, 0xce, 0x2e, 0xf3, 0x36, 0xf8, 0xbe, 0x22, 0xb0, 0x0c,
		0x5e, 0xc0, 0x0f, 0x48, 0xf8, 0x03, 0x39, 0xbf, 0x20, 0xe5, 0x1f, 0xc4, 0xfd, 0x84, 0xb8, 0xbf,
		0x10, 0xf5, 0x1b, 0xf6, 0xa8, 0x4b, 0x8f, 0x42, 0xfb, 0xc5, 0xe0, 0xeb, 0x1a, 0x9c, 0xb4, 0x5e,
		0x76, 0x4e, 0x05, 0x4b, 0xf7, 0x80, 0x98, 0xa9, 0xda, 0xd0, 0x90, 0xfd, 0xe1, 0xc7, 0x3b, 0x1c,
		0x7e, 0x3a, 0x66, 0x86, 0x14, 0x65, 0xc3, 0x98, 0x19, 0x42, 0xd0, 0x4d, 0xd0, 0x4d, 0xd0, 0x4d,
		0xd0, 0x4d, 0xd0, 0x4d, 0xd0, 0x4d, 0xd0, 0x4d, 0xd0, 0x4d, 0xd0, 0x4d, 0xd0, 0x4d, 0xd0, 0x4d,
		0xd0, 0xfd, 0x9c, 0xa0, 0xbb, 0x5a, 0x75, 0x60, 0x0f, 0x62, 0x6e, 0xca, 0xc0, 0x5c, 0xcb, 0xbc,
		0x26, 0x59, 0x2f, 0x7d, 0x15, 0xd8, 0xb4, 0x74, 0x57, 0xa9, 0x08, 0xec, 0xfe, 0xa5, 0x05, 0xa3,
		0x67, 0x5a, 0x70, 0x11, 0xd8, 0xc3, 0x03, 0x8a, 0x2d, 0x02, 0x5b, 0xa5, 0x08, 0x4c, 0x31, 0xec,
		0xa7, 0x08, 0xac, 0x44, 0x7e, 0xa8, 0x70, 0x58, 0x7e, 0xcf, 0xb5, 0x98, 0xf0, 0x3c, 0x31, 0xe7,
		0x45, 0x0a, 0xec, 0x18, 0x76, 0x6f, 0x17, 0xf8, 0x3b, 0x8f, 0x46, 0xae, 0xf2, 0xed, 0xdb, 0x51,
		0x42, 0x64, 0xe5, 0xa1, 0xed, 0xaa, 0x90, 0xdd, 0x1f, 0xf4, 0x6c, 0x07, 0x89, 0x39, 0x6f, 0x9b,
		0x66, 0xd6, 0x49, 0x8a, 0xb7, 0xfb, 0x0f, 0x0f, 0xa0, 0xf8, 0x17, 0xbb, 0x8f, 0xdd, 0x57, 0x68,
		0xf7, 0x29, 0xfe, 0xf5, 0x28, 0xfe, 0x15, 0x32, 0x38, 0xb6, 0x0d, 0x8f, 0x98, 0x01, 0x12, 0x33,
		0x44, 0x22, 0x06, 0xa9, 0x1c, 0xe4, 0xa0, 0xb5, 0x3c, 0xe4, 0x03, 0xa8, 0x12, 0x34, 0xdb, 0xd1,
		0xf0, 0x41, 0xdb, 0x9e, 0xd3, 0x39, 0xff, 0xdc, 0x32, 0xe7, 0x1f, 0x07, 0xdd, 0xe2, 0x24, 0x20,
		0x05, 0x1c, 0x80, 0x84, 0x23, 0x90, 0x73, 0x08, 0x52, 0x8e, 0x41, 0xdc, 0x41, 0x88, 0x3b, 0x0a,
		0x51, 0x87, 0x61, 0xc7, 0x71, 0x58, 0x72, 0x20, 0xf6, 0x98, 0x8e, 0x47, 0xf5, 0x85, 0x04, 0xa4,
		0xc4, 0x4b, 0x9d, 0xe3, 0x48, 0x7b, 0x69, 0x66, 0x92, 0x20, 0x6a, 0xb9, 0x70, 0xe2, 0xf9, 0xd9,
		0x38, 0x2c, 0x1c, 0x16, 0x0e, 0x0b, 0x87, 0x55, 0x22, 0x87, 0x95, 0x4c, 0x1a, 0xb0, 0x20, 0xeb,
		0x9f, 0x2b, 0xe0, 0xbb, 0x76, 0x2c, 0x9e, 0x31, 0x7a, 0x76, 0xa5, 0x9f, 0x8b, 0x37, 0x39, 0xad,
		0x70, 0x63, 0xdd, 0x17, 0x18, 0xaf, 0x36, 0x7a, 0x3b, 0xdb, 0x02, 0x47, 0xc9, 0x4c, 0x2f, 0x94,
		0x7b, 0x5b, 0xf9, 0x07, 0x93, 0x9c, 0x66, 0x98, 0x1f, 0x2a, 0x3c, 0xd5, 0x30, 0x3f, 0xd7, 0xd5,
		0xb8, 0xba, 0x7b, 0x1d, 0x91, 0x1e, 0x5b, 0x67, 0xd9, 0xf0, 0xcf, 0x17, 0x29, 0xc1, 0xa9, 0x87,
		0x33, 0x22, 0x55, 0x5b, 0xdf, 0xa9, 0xed, 0x6c, 0x6d, 0xaf, 0xef, 0x6c, 0x22, 0x5b, 0x52, 0xb2,
		0xf5, 0xaa, 0x1a, 0xa7, 0x9c, 0xbe, 0x2a, 0xb1, 0x06, 0x0a, 0x3a, 0xf8, 0xa8, 0x7b, 0x5d, 0x0b,
		0xc2, 0x56, 0x2b, 0x31, 0x69, 0x2a, 0xe8, 0xe6, 0xd7, 0x7e, 0x13, 0x38, 0xeb, 0x28, 0xcc, 0x32,
		0x93, 0xc4, 0x62, 0x9e, 0xde, 0x7f, 0xfd, 0x75, 0x35, 0xd8, 0x39, 0xfd, 0xfe, 0x75, 0x2d, 0xd8,
		0x39, 0x1d, 0x7e, 0xbb, 0x36, 0xf8, 0xe3, 0x9f, 0xf5, 0xbb, 0xef, 0xeb, 0x5f, 0x57, 0x83, 0xda,
		0xe8, 0xa7, 0xeb, 0x9b, 0x5f, 0x57, 0x83, 0xcd, 0xd3, 0x37, 0xaf, 0xff, 0xfa, 0xeb, 0xed, 0xa2,
		0xff, 0xe6, 0xcd, 0x3f, 0x1b, 0x77, 0xbe, 0x7d, 0xf5, 0x91, 0x78, 0x3d, 0x87, 0x27, 0xf5, 0x7f,
		0x8b, 0xbf, 0xa3, 0xff, 0xbc, 0x96, 0x7a, 0x4b, 0x6f, 0xfe, 0xc7, 0x2f, 0xbb, 0x99, 0x63, 0x92,
		0x2d, 0x0d, 0x0c, 0x8e, 0x8a, 0xba, 0x1f, 0x30, 0x9d, 0x55, 0x9b, 0x1a, 0x70, 0xdc, 0xff, 0x78,
		0xc7, 0xe3, 0x4f, 0xc7, 0xd4, 0x80, 0xa2, 0xf0, 0x0c, 0x53, 0x03, 0xa8, 0xd6, 0xf9, 0xd9, 0xdb,
		0xa4, 0x5a, 0xa7, 0x72, 0x9e, 0x90, 0x6a, 0x9d, 0xe5, 0x1e, 0x1f, 0xd5, 0x3a, 0x3f, 0x32, 0xfc,
		0x24, 0x3f, 0x5d, 0x3a, 0x04, 0x29, 0xc7, 0x20, 0xee, 0x20, 0xc4, 0x1d, 0x85, 0xa8, 0xc3, 0xb0,
		0x1b, 0x44, 0x52, 0xad, 0xb3, 0x00, 0x6e, 0xa5, 0x5a, 0x87, 0x6a, 0x1d, 0x1c, 0x16, 0x0e, 0x0b,
		0x87, 0x85, 0xc3, 0x5a, 0xc2, 0x9a, 0x51, 0xad, 0xf3, 0x9c, 0x2f, 0xaa, 0x75, 0x96, 0x3b, 0x8a,
		0x6a, 0x9d, 0x22, 0x0f, 0xa5, 0x5a, 0x87, 0x6a, 0x1d, 0x4b, 0x22, 0x45, 0xb5, 0x0e, 0xd5, 0x3a,
		0xcf, 0xfc, 0xa2, 0x5a, 0xe7, 0x69, 0x0e, 0x9e, 0x6a, 0x9d, 0x02, 0x0f, 0xa4, 0x5a, 0x67, 0xa1,
		0xd7, 0x43, 0xb5, 0x8e, 0x76, 0x33, 0x47, 0xb5, 0x0e, 0xd5, 0x3a, 0x4a, 0xaa, 0x75, 0xaa, 0x35,
		0x6e, 0xf4, 0x41, 0xb1, 0x0e, 0xe3, 0x46, 0x5d, 0xcb, 0xbc, 0x26, 0x59, 0x2f, 0xfd, 0xb8, 0xd1,
		0x69, 0xe9, 0xae, 0xd2, 0xd8, 0xb9, 0x62, 0x6b, 0xcd, 0xac, 0xd4, 0x98, 0x59, 0x1b, 0x31, 0xb7,
		0xce, 0x88, 0xb9, 0x22, 0x03, 0x21, 0x46, 0xcc, 0x95, 0xc6, 0xe7, 0x14, 0x3e, 0x62, 0x2e, 0xec,
		0x65, 0x97, 0x41, 0x37, 0x4c, 0xd3, 0x91, 0x08, 0x58, 0x2a, 0x5d, 0x9d, 0x3e, 0xc6, 0x4e, 0x09,
		0xeb, 0x2a, 0x03, 0xe7, 0x28, 0x61, 0x55, 0x64, 0x96, 0x44, 0xcc, 0x53, 0x39, 0xc2, 0x43, 0x6b,
		0x89, 0xdc, 0xa9, 0x72, 0x94, 0x28, 0xbe, 0xb0, 0x65, 0x63, 0xa6, 0x19, 0xc3, 0x17, 0xd0, 0xca,
		0xd0, 0x32, 0x69, 0x33, 0x89, 0xba, 0x56, 0x22, 0xfa, 0xfc, 0xa5, 0x4d, 0x1e, 0x82, 0x4f, 0xc0,
		0x27, 0xe0, 0x13, 0xf0, 0x09, 0x85, 0xc6, 0xb2, 0x49, 0x14, 0x5f, 0xe0, 0x09, 0x96, 0xfb, 0xac,
		0xed, 0x4e, 0x33, 0x6c, 0x07, 0x61, 0x6a, 0xcf, 0x0d, 0xe4, 0x27, 0xe0, 0x03, 0xf0, 0x01, 0xf8,
		0x00, 0x7c, 0x40, 0x91, 0xc4, 0x43, 0x1a, 0xc4, 0xbd, 0xab, 0x33, 0x93, 0x58, 0x74, 0x03, 0x16,
		0x2a, 0x05, 0x2d, 0x57, 0x06, 0x5a, 0xac, 0xa8, 0x95, 0xa8, 0xfc, 0x93, 0xaa, 0xf4, 0x13, 0xaf,
		0xbe, 0x92, 0xab, 0xb6, 0xb2, 0x58, 0x37, 0x24, 0x52, 0xa9, 0x27, 0x5e, 0x99, 0x57, 0x65, 0x59,
		0x28, 0x49, 0x09, 0xc4, 0xe9, 0x0b, 0x40, 0xdb, 0x83, 0x5c, 0xac, 0x4d, 0xb0, 0x3d, 0x3e, 0x00,
		0xac, 0x0d, 0xd6, 0x06, 0x6b, 0x83, 0xb5, 0xc1, 0xda, 0x60, 0x6d, 0xb0, 0x36, 0x58, 0x1b, 0xac,
		0x0d, 0xd6, 0x7e, 0x89, 0x58, 0xdb, 0xc2, 0xc6, 0xee, 0xf9, 0x98, 0xbb, 0xf0, 0xcd, 0xdd, 0x60,
		0x6f, 0xb0, 0x37, 0xd8, 0x1b, 0xec, 0x4d, 0xae, 0xb3, 0x58, 0x8f, 0x90, 0xd9, 0x78, 0x59, 0xd3,
		0xbe, 0xc0, 0xc2, 0x80, 0x09, 0xbc, 0x00, 0x5e, 0x00, 0x2f, 0xf0, 0xc2, 0xbd, 0x80, 0x2d, 0xe3,
		0x32, 0xe5, 0x08, 0x6a, 0x16, 0x7e, 0xf7, 0x5e, 0xdc, 0xbb, 0xb2, 0xa7, 0x4c, 0x9f, 0x3a, 0x27,
		0x43, 0xf7, 0x68, 0x75, 0x96, 0xd0, 0x6a, 0xff, 0x0d, 0xd4, 0x0f, 0x3e, 0xed, 0x1d, 0x1f, 0xec,
		0xee, 0xdb, 0x1c, 0x1f, 0xb4, 0xd6, 0x3f, 0x68, 0xef, 0xdf, 0xa3, 0x83, 0xca, 0x35, 0xd1, 0xa9,
		0x53, 0xb7, 0x38, 0x61, 0x76, 0x28, 0x4a, 0xe3, 0x07, 0x53, 0xf8, 0x50, 0xeb, 0xa9, 0x63, 0xf2,
		0x17, 0xfd, 0xce, 0x5b, 0x7d, 0x99, 0x2d, 0xc4, 0x2a, 0x11, 0x5c, 0x62, 0xae, 0x3a, 0xd7, 0x26,
		0xe8, 0x26, 0xd1, 0x75, 0x98, 0x19, 0xab, 0x99, 0xb4, 0xd9, 0xa3, 0x40, 0x74, 0x20, 0x3a, 0x10,
		0x1d, 0x88, 0xce, 0xa6, 0x91, 0x09, 0x3a, 0x36, 0xfa, 0x25, 0xa6, 0x00, 0x9e, 0x05, 0x76, 0xdf,
		0xaf, 0xb7, 0x4c, 0x9c, 0x45, 0xd9, 0xed, 0xfb, 0x30, 0x35, 0xf6, 0x87, 0xd3, 0x1e, 0xef, 0x7d,
		0x3c, 0xfc, 0xb2, 0xd7, 0x38, 0x3a, 0xae, 0x7f, 0xd9, 0xfd, 0xb4, 0xd7, 0xd8, 0x3d, 0x69, 0x1c,
		0x1e, 0x7d, 0xaa, 0x1f, 0x1e, 0xd8, 0x52, 0xb9, 0x41, 0x82, 0x24, 0xb5, 0x3a, 0x3a, 0xc6, 0x72,
		0x8a, 0x67, 0xfc, 0xe4, 0x26, 0x1e, 0xd9, 0xe8, 0x21, 0xee, 0xee, 0xef, 0xfb, 0x65, 0x4c, 0x8d,
		0xb9, 0x78, 0x60, 0x47, 0xfb, 0xbb, 0xbf, 0xdb, 0x7e, 0x62, 0x76, 0x96, 0x0c, 0x00, 0x36, 0x9f,
		0x03, 0x36, 0x07, 0xd3, 0x32, 0xce, 0xdb, 0x61, 0x37, 0x68, 0x85, 0x57, 0x5d, 0x1b, 0x11, 0xe6,
		0x83, 0x79, 0xdb, 0x53, 0x67, 0x15, 0xbd, 0x67, 0xc4, 0xe2, 0xa2, 0x0c, 0x1b, 0x0b, 0x32, 0x4e,
		0x81, 0xdb, 0xc0, 0x6d, 0xe0, 0x36, 0x70, 0xbb, 0x40, 0x79, 0xb7, 0xb7, 0xb8, 0xc2, 0xd2, 0xc2,
		0x0a, 0xa5, 0x8b, 0xf0, 0x4c, 0xdc, 0x0a, 0x9a, 0x9d, 0xab, 0xab, 0x5e, 0x1c, 0x65, 0xb7, 0x16,
		0x37, 0xe2, 0x4d, 0x9f, 0x53, 0x26, 0x87, 0x78, 0x70, 0x78, 0xb0, 0x87, 0x3f, 0xc4, 0x1f, 0xe2,
		0x0f, 0xf1, 0x87, 0x7a, 0xfd, 0x61, 0x6e, 0x5b, 0xc9, 0x2a, 0xce, 0x3e, 0x7d, 0xb9, 0xac, 0xe2,
		0xc9, 0xa7, 0xdd, 0x83, 0x0f, 0xbb, 0xc7, 0x1f, 0x44, 0xb2, 0x8a, 0x07, 0x1f, 0xf6, 0xac, 0x1e,
		0xb4, 0xde, 0x3f, 0x68, 0x7f, 0xf7, 0xf8, 0xcf, 0x3d, 0x9b, 0xa7, 0x6c, 0xf4, 0x4f, 0x79, 0x7f,
		0xf8, 0xe9, 0x7f, 0x6d, 0x1e, 0x52, 0xeb, 0x1f, 0x52, 0xbc, 0x27, 0xb7, 0xcc, 0x8e, 0x49, 0x64,
		0x61, 0x07, 0x4f, 0xfe, 0x9d, 0xb7, 0xf1, 0xab, 0xdd, 0x44, 0xef, 0x40, 0x56, 0xed, 0x26, 0x7a,
		0x87, 0x92, 0x5a, 0xf8, 0x22, 0xe3, 0x59, 0x30, 0xf8, 0xce, 0xab, 0xd9, 0xdc, 0xd7, 0x35, 0x36,
		0x21, 0x2f, 0x36, 0x5f, 0x5d, 0xb0, 0xf3, 0x35, 0x37, 0x59, 0x12, 0x06, 0xbd, 0x38, 0xcd, 0xc2,
		0xb3, 0xb6, 0x25, 0x37, 0x9c, 0x66, 0x61, 0xd6, 0x4b, 0xcb, 0xd8, 0x9a, 0x74, 0x3f, 0xe2, 0xab,
		0x9b, 0x98, 0x66, 0x98, 0x99, 0x56, 0xc5, 0x96, 0xd1, 0x8d, 0x5e, 0x4d, 0x95, 0x97, 0xd1, 0x4d,
		0xbc, 0x3b, 0xfa, 0x61, 0x5e, 0x1c, 0x6b, 0x63, 0xb9, 0x0e, 0x7a, 0xde, 0x61, 0x10, 0x18, 0x10,
		0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10, 0x18, 0x10,
		0x18, 0x10, 0x18, 0xb6, 0x9c, 0xef, 0x7e, 0x94, 0x66, 0xbb, 0x59, 0x96, 0xd8, 0x71, 0xc0, 0x1f,
		0xa3, 0x78, 0xaf, 0x6d, 0xfa, 0xf0, 0xc6, 0xd2, 0xfc, 0x06, 0xff, 0x63, 0x78, 0x33, 0x71, 0xc2,
		0xda, 0x6f, 0xb5, 0xda, 0xd6, 0x76, 0xad, 0xb6, 0xba, 0xbd, 0xb1, 0xbd, 0xba, 0xb3, 0xb9, 0xb9,
		0xb6, 0x65, 0xa5, 0x8e, 0xf5, 0x30, 0x69, 0x99, 0xc4, 0xb4, 0xde, 0xdf, 0xfa, 0xef, 0xbc, 0xb8,
		0xd7, 0x6e, 0xdb, 0x3c, 0xe2, 0x73, 0x6a, 0x12, 0x2b, 0x03, 0x29, 0x74, 0x86, 0x9f, 0x59, 0x27,
		0x0b, 0xdb, 0x41, 0x37, 0xcc, 0x2e, 0x2d, 0x36, 0x6d, 0x4c, 0x1e, 0x42, 0xb8, 0x49, 0xb8, 0x49,
		0xb8, 0x49, 0xb8, 0x59, 0xa0, 0xbc, 0xf7, 0xa2, 0x38, 0xdb, 0x58, 0x67, 0xfe, 0xd9, 0xc4, 0x17,
		0xf3, 0xcf, 0x9e, 0x76, 0x0e, 0xf3, 0xcf, 0x9e, 0x09, 0x02, 0x99, 0x7f, 0x56, 0x26, 0x59, 0x20,
		0xdf, 0xa3, 0x0d, 0x70, 0x0f, 0xd0, 0x8d, 0xb1, 0x8f, 0xb9, 0xc7, 0xe7, 0x00, 0xbb, 0x81, 0xdd,
		0xc0, 0x6e, 0x60, 0x37, 0xb0, 0x1b, 0xd8, 0x0d, 0xec, 0x06, 0x76, 0x03, 0xbb, 0x81, 0xdd, 0xea,
		0x61, 0xb7, 0xaa, 0x2d, 0xe0, 0xbb, 0x71, 0xdc, 0xc9, 0xc2, 0xc2, 0x77, 0xb3, 0xfa, 0x69, 0xf3,
		0xd2, 0x5c, 0x85, 0xdd, 0x30, 0xbb, 0xec, 0x3b, 0xd5, 0x95, 0x4e, 0xd7, 0xc4, 0xcd, 0x01, 0x0c,
		0x0e, 0x62, 0x93, 0x7d, 0xeb, 0x24, 0x7f, 0x07, 0x51, 0x9c, 0x66, 0x61, 0xdc, 0x34, 0x2b, 0x0f,
		0x7f, 0x90, 0xce, 0xfc, 0x64, 0xa5, 0x9b, 0x74, 0xb2, 0x4e, 0xb3, 0xd3, 0x4e, 0xf3, 0xef, 0x56,
		0xce, 0x2e, 0xba, 0x2b, 0xf7, 0xc3, 0x90, 0xd3, 0x89, 0xef, 0x57, 0xd2, 0x2c, 0xcc, 0x8a, 0xac,
		0xcf, 0xf0, 0xd3, 0x2c, 0xe9, 0x35, 0xb3, 0xd1, 0x60, 0x67, 0xff, 0x30, 0xff, 0x2c, 0x07, 0xc3,
		0x7b, 0xd6, 0x47, 0xd7, 0x6c, 0x3c, 0xf8, 0xdf, 0xe9, 0xc3, 0x1f, 0x34, 0x8e, 0xc6, 0x9f, 0x23,
		0xff, 0xae, 0xf1, 0xfe, 0xa2, 0xdb, 0x38, 0x32, 0x26, 0xf9, 0x73, 0xf0, 0x31, 0xee, 0xbf, 0x6d,
		0x9c, 0x0c, 0x3e, 0xc5, 0x2b, 0x1d, 0x22, 0x57, 0x80, 0xb8, 0xf9, 0x59, 0x74, 0x65, 0x92, 0xe2,
		0x62, 0xc3, 0xfb, 0x98, 0x70, 0xf8, 0x7b, 0x0b, 0x52, 0x88, 0x71, 0x0d, 0x4e, 0x41, 0xbf, 0xae,
		0xe8, 0xd8, 0xcf, 0x46, 0xcc, 0x67, 0x2f, 0xd6, 0xb3, 0x15, 0xe3, 0x59, 0x8f, 0xed, 0xac, 0xc7,
		0x74, 0x56, 0x63, 0x39, 0x5d, 0x2e, 0xe6, 0x43, 0x54, 0x6c, 0x5d, 0x80, 0xdf, 0x1c, 0xeb, 0x94,
		0x25, 0x92, 0x69, 0xf4, 0xfb, 0xed, 0x90, 0x4b, 0x6b, 0x90, 0x4b, 0x90, 0x4b, 0x90, 0x4b, 0x1a,
		0xc9, 0xa5, 0xa2, 0x0d, 0xd5, 0xa4, 0xc1, 0x8a, 0x4d, 0x33, 0x0b, 0x12, 0x93, 0x25, 0xb7, 0xf6,
		0x47, 0xd6, 0x4d, 0x1f, 0x67, 0x49, 0x5c, 0x6c, 0x4e, 0xb4, 0xc8, 0x0f, 0xd9, 0x58, 0xb5, 0x53,
		0x4c, 0x7a, 0x6a, 0xe9, 0xa1, 0xd8, 0x49, 0x20, 0x58, 0xb7, 0xf5, 0x12, 0x36, 0x5f, 0xce, 0xf6,
		0x4b, 0xf9, 0x00, 0x71, 0x5f, 0x20, 0xee, 0x13, 0x44, 0x7d, 0x83, 0x65, 0x7e, 0xc9, 0x56, 0xf9,
		0xb8, 0xad, 0x84, 0xc4, 0x8c, 0xbe, 0xf4, 0xa2, 0x38, 0x5b, 0xdb, 0xb2, 0xa9, 0x2f, 0x23, 0xeb,
		0xb5, 0x65, 0xf1, 0x08, 0xbb, 0x89, 0x8a, 0xf1, 0x97, 0x5d, 0x7d, 0xf7, 0xa4, 0x12, 0x17, 0xf9,
		0x61, 0x42, 0x09, 0x8c, 0xfc, 0x3c, 0x69, 0xf2, 0xfa, 0x5e, 0xd6, 0xa5, 0x48, 0x6c, 0xcb, 0x66,
		0x61, 0x5a, 0x54, 0x04, 0x12, 0x1c, 0x33, 0xa2, 0xb2, 0xb5, 0xb9, 0xb9, 0xb1, 0x89, 0xb8, 0x94,
		0xc2, 0x37, 0xd9, 0xff, 0xed, 0xa7, 0x65, 0xe9, 0x72, 0xb1, 0xc0, 0x04, 0x5c, 0x76, 0xda, 0xad,
		0x20, 0x8b, 0xae, 0x04, 0x66, 0x85, 0xdf, 0x1f, 0x55, 0xe6, 0xa0, 0x6b, 0x87, 0xa0, 0x8b, 0xa0,
		0x8b, 0xa0, 0x8b, 0xa0, 0x8b, 0xa0, 0x8b, 0xa0, 0x8b, 0xa0, 0x8b, 0xa0, 0x8b, 0xa0, 0x8b, 0xa0,
		0x8b, 0xa0, 0x4b, 0x4b, 0xd0, 0x65, 0xc9, 0xa7, 0x0a, 0xcc, 0x20, 0xcc, 0xcf, 0x4a, 0xcc, 0xb9,
		0x49, 0x4c, 0xdc, 0xac, 0x84, 0x53, 0xca, 0x17, 0x45, 0xfd, 0xf1, 0xbb, 0x57, 0x5b, 0xdf, 0x5e,
		0xf3, 0x02, 0x6f, 0xd7, 0x7b, 0xdf, 0x49, 0x5a, 0x26, 0xf1, 0xfe, 0x0c, 0x33, 0xf3, 0x2d, 0xbc,
		0xf5, 0xc6, 0xd5, 0x5e, 0x5e, 0xed, 0x57, 0xef, 0xc4, 0x34, 0xdf, 0x7a, 0x6b, 0xab, 0xbe, 0x80,
		0x11, 0x14, 0xc2, 0xe2, 0xf3, 0x30, 0xf9, 0xfd, 0x2b, 0x16, 0x32, 0x4b, 0xd2, 0xf0, 0x7c, 0x2e,
		0x4c, 0x5f, 0x54, 0x06, 0xb0, 0x9d, 0x10, 0x56, 0x33, 0x02, 0xf5, 0xb7, 0x31, 0xdd, 0xb0, 0x1d,
		0x5d, 0x9b, 0x20, 0x8a, 0x33, 0x93, 0x5c, 0x87, 0x6d, 0xfb, 0xcc, 0xd5, 0x9c, 0x33, 0xa9, 0x1b,
		0x80, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0x93,
		0x80, 0xc2, 0x42, 0x5c, 0x08, 0xc3, 0x5e, 0x4a, 0x18, 0x76, 0x15, 0xc5, 0xd1, 0x55, 0xef, 0x2a,
		0x08, 0x5b, 0xd7, 0x26, 0xc9, 0xa2, 0x74, 0x30, 0x1e, 0x52, 0x30, 0x24, 0xfb, 0xc9, 0xf9, 0x84,
		0x67, 0x84, 0x67, 0x84, 0x67, 0x84, 0x67, 0x84, 0x67, 0x84, 0x67, 0x84, 0x67, 0x84, 0x67, 0xe0,
		0x6d, 0xc2, 0x33, 0xc4, 0x85, 0xf0, 0x4c, 0xaf, 0x4f, 0xa5, 0xc2, 0x60, 0x49, 0xa8, 0xb0, 0x40,
		0x76, 0xd9, 0xdb, 0x79, 0xbb, 0xfe, 0x76, 0xed, 0xed, 0x1a, 0x55, 0x06, 0xe5, 0x86, 0xe8, 0x73,
		0xa1, 0xfa, 0x73, 0xe4, 0x00, 0x1b, 0x0a, 0xc5, 0x35, 0xc7, 0x4a, 0xa6, 0x59, 0x98, 0x64, 0x42,
		0xdd, 0x31, 0x53, 0xa7, 0xc1, 0xd4, 0xc0, 0xd4, 0xc0, 0xd4, 0xc0, 0xd4, 0xc0, 0xd4, 0xc0, 0xd4,
		0xc0, 0xd4, 0xc0, 0xd4, 0xc0, 0xd4, 0x20, 0x2e, 0x44, 0x19, 0xee, 0xa3, 0x0c, 0xd5, 0x03, 0xda,
		0x2c, 0x0d, 0x2b, 0xce, 0x7f, 0xbf, 0xcb, 0xa1, 0xc5, 0xc3, 0x29, 0xb6, 0x2b, 0x56, 0x66, 0x4f,
		0x7a, 0xce, 0x86, 0x18, 0x7f, 0x1a, 0x7c, 0xaa, 0xc6, 0x28, 0x6e, 0x7a, 0x01, 0x8b, 0x70, 0x86,
		0xb3, 0xa7, 0xad, 0x8d, 0x26, 0x2d, 0x7a, 0xb4, 0xb5, 0x27, 0x31, 0x99, 0x74, 0x9d, 0xc9, 0xa4,
		0x72, 0x41, 0x31, 0x93, 0x49, 0x2b, 0xe8, 0xf8, 0x98, 0x4c, 0xba, 0xc8, 0xc3, 0xa2, 0x84, 0xed,
		0x51, 0x1b, 0x0f, 0x31, 0xea, 0xd2, 0xf6, 0x4b, 0xf9, 0x00, 0x71, 0x5f, 0x20, 0xee, 0x13, 0x44,
		0x7d, 0x83, 0xdd, 0xf0, 0x10, 0x62, 0xf4, 0xc9, 0xd6, 0x0b, 0x62, 0xf4, 0x29, 0x6c, 0x17, 0xc4,
		0x68, 0x25, 0x98, 0x2e, 0x88, 0x51, 0xc4, 0xc5, 0xb5, 0x6f, 0xb2, 0xff, 0xdb, 0x99, 0x4c, 0xca,
		0x64, 0xd2, 0x27, 0x1f, 0xc2, 0x64, 0x52, 0x82, 0x2e, 0x82, 0x2e, 0x82, 0x2e, 0x82, 0x2e, 0x82,
		0x2e, 0x82, 0x2e, 0x82, 0x2e, 0x82, 0x2e, 0x82, 0x2e, 0x82, 0x2e, 0x35, 0x41, 0x17, 0x7d, 0x43,
		0xba, 0x9c, 0x12, 0x93, 0x49, 0xe7, 0x61, 0x72, 0x7a, 0x86, 0x98, 0x4c, 0x0a, 0x61, 0xf5, 0x2c,
		0x81, 0x62, 0x32, 0xe9, 0xd2, 0x87, 0x50, 0x37, 0x00, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85,
		0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x05, 0x85, 0x45, 0x18, 0xb6, 0x88,
		0x90, 0x30, 0x99, 0x94, 0xf0, 0x8c, 0xf0, 0x8c, 0xf0, 0x8c, 0xf0, 0x8c, 0xf0, 0x8c, 0xf0, 0x8c,
		0xf0, 0x8c, 0xf0, 0x8c, 0xf0, 0x8c, 0xf0, 0x8c, 0xf0, 0xac, 0xfa, 0xe1, 0x19, 0x15, 0x06, 0xba,
		0x9c, 0x12, 0x93, 0x49, 0x1f, 0xc3, 0xe5, 0x54, 0x19, 0x30, 0x99, 0x14, 0x8a, 0x6b, 0x09, 0x2b,
		0xc9, 0x64, 0x52, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98,
		0x1a, 0x98, 0x1a, 0x98, 0x1a, 0x98, 0x9a, 0x17, 0x1c, 0x65, 0x30, 0x99, 0xd4, 0xed, 0x64, 0x52,
		0x1b, 0xa3, 0x27, 0x3d, 0xd7, 0x83, 0x49, 0x4f, 0x06, 0x1f, 0x4a, 0xeb, 0x5c, 0xd2, 0x57, 0x8a,
		0x44, 0xdd, 0x96, 0x88, 0x2b, 0x10, 0x6d, 0xbf, 0xd0, 0xf9, 0xaf, 0xce, 0x84, 0xb9, 0x18, 0x31,
		0x5e, 0x5e, 0xe8, 0x0a, 0x10, 0x38, 0x3f, 0x4b, 0xc2, 0x38, 0xed, 0x76, 0x92, 0xac, 0x30, 0x59,
		0xcb, 0x83, 0xa5, 0xfb, 0x5f, 0x5d, 0x90, 0x62, 0x14, 0x3b, 0x3e, 0xb7, 0x70, 0x26, 0xc7, 0x06,
		0x73, 0x63, 0x8f, 0xa9, 0xb1, 0xc5, 0xcc, 0x58, 0x67, 0x62, 0xac, 0x33, 0x2f, 0x56, 0x99, 0x16,
		0x5d, 0xae, 0xa6, 0xe8, 0x71, 0xb7, 0x7e, 0x73, 0xac, 0x53, 0x96, 0xc6, 0x72, 0x5b, 0x99, 0xda,
		0x6e, 0x7d, 0x2e, 0xf7, 0x2a, 0x73, 0xb9, 0xed, 0x1b, 0x1e, 0x31, 0x03, 0x24, 0x66, 0x88, 0x44,
		0x0c, 0x52, 0x39, 0xc2, 0x3e, 0x6b, 0x73, 0xb9, 0xdb, 0x9d, 0x66, 0xd8, 0x0e, 0xc2, 0x56, 0x2b,
		0x31, 0x69, 0x6a, 0x3f, 0x01, 0x36, 0x7d, 0x1c, 0x19, 0x30, 0x69, 0xf3, 0x26, 0x67, 0xe6, 0xa4,
		0xcc, 0x9d, 0xb8, 0xd9, 0x13, 0x37, 0x7f, 0xa2, 0x66, 0xd0, 0x2e, 0x0f, 0x58, 0x81, 0x0c, 0x58,
		0x1c, 0x75, 0x62, 0x81, 0x04, 0xd8, 0xda, 0x8e, 0xc5, 0x33, 0x46, 0x8f, 0xab, 0x32, 0x55, 0x61,
		0x51, 0xd7, 0xb2, 0x4b, 0x91, 0x7e, 0x43, 0xb2, 0x6f, 0x4a, 0xee, 0x8d, 0xcd, 0x79, 0x73, 0xd7,
		0x35, 0xc1, 0x77, 0x37, 0xf3, 0x0e, 0x7f, 0x13, 0x3c, 0xf3, 0x28, 0xcc, 0x32, 0x93, 0xc4, 0x62,
		0xaf, 0x33, 0x3f, 0xf8, 0xf5, 0xd7, 0xd5, 0x60, 0xe7, 0xf4, 0xfb, 0xd7, 0xb5, 0x60, 0xe7, 0x74,
		0xf8, 0xed, 0xda, 0xe0, 0x8f, 0x7f, 0xd6, 0xef, 0xbe, 0xaf, 0x7f, 0x5d, 0x0d, 0x6a, 0xa3, 0x9f,
		0xae, 0x6f, 0x7e, 0x5d, 0x0d, 0x36, 0x4f, 0xdf, 0xbc, 0xfe, 0xeb, 0xaf, 0xb7, 0x8b, 0xfe, 0x9b,
		0x37, 0xff, 0x6c, 0xdc, 0xf9, 0x62, 0x1f, 0xeb, 0x54, 0xf2, 0xb5, 0x1d, 0x9e, 0xd4, 0xff, 0xed,
		0xec, 0xdd, 0xfd, 0xe7, 0xb5, 0xd4, 0xdb, 0x7b, 0xf3, 0x3f, 0x82, 0xef, 0x4f, 0xe4, 0xa4, 0xbb,
		0x5f, 0x2b, 0x6c, 0x36, 0xb7, 0x30, 0x9b, 0xb6, 0xcd, 0xe6, 0x40, 0x8b, 0xc2, 0xe0, 0x7c, 0x37,
		0xf8, 0xe3, 0xf4, 0x9f, 0xb5, 0x5f, 0x6b, 0x77, 0xef, 0xde, 0xfc, 0xb3, 0x7d, 0xf7, 0xf0, 0x87,
		0xdf, 0xe7, 0xfd, 0xb5, 0xb5, 0x5f, 0xb7, 0xef, 0xde, 0x3d, 0xf2, 0x5f, 0xb6, 0xee, 0xde, 0x3d,
		0xf1, 0x77, 0x6c, 0xde, 0xbd, 0x9e, 0xf9, 0xab, 0xfd, 0x9f, 0xaf, 0x3f, 0xf6, 0x0f, 0x6a, 0x8f,
		0xfc, 0x83, 0x8d, 0xc7, 0xfe, 0xc1, 0xc6, 0x23, 0xff, 0xe0, 0xd1, 0x2b, 0xad, 0x3f, 0xf2, 0x0f,
		0x36, 0xef, 0xbe, 0xcf, 0xfc, 0xfd, 0xd7, 0xf3, 0xff, 0xea, 0xd6, 0xdd, 0x9b, 0xef, 0x8f, 0xfd,
		0xb7, 0xed, 0xbb, 0xef, 0xef, 0xde, 0xbc, 0xc1, 0x91, 0x58, 0x73, 0x24, 0x88, 0xb3, 0xbc, 0x38,
		0x57, 0xcf, 0xb1, 0xbe, 0x2a, 0xf7, 0xe7, 0xb0, 0x0c, 0x0c, 0x04, 0x23, 0xdf, 0x34, 0x4b, 0xa2,
		0xf8, 0x42, 0x32, 0xea, 0xfd, 0x8d, 0xf2, 0x33, 0xab, 0xf7, 0xb5, 0x32, 0xc7, 0x25, 0xeb, 0x05,
		0xad, 0x28, 0x6d, 0x76, 0xae, 0x8d, 0xc4, 0xf2, 0xcd, 0xe9, 0xe3, 0xca, 0x3c, 0xa5, 0x65, 0x50,
		0xd1, 0xc9, 0xa0, 0x96, 0x89, 0x5f, 0x4f, 0xf2, 0x63, 0xa1, 0x93, 0x48, 0x7e, 0x14, 0x75, 0x20,
		0xc9, 0x8f, 0xc7, 0x9e, 0x8c, 0x5c, 0xf2, 0xe3, 0xac, 0xd3, 0x69, 0x9b, 0x50, 0x24, 0xfd, 0xb1,
		0xf6, 0x82, 0xdd, 0x75, 0x37, 0x4c, 0xd3, 0xe8, 0xda, 0x04, 0x57, 0x9d, 0x96, 0x40, 0x4f, 0xea,
		0xd4, 0x69, 0x38, 0x6b, 0x9c, 0x35, 0xce, 0x1a, 0x67, 0x8d, 0xb3, 0xc6, 0x59, 0xe3, 0xac, 0x9f,
		0xf2, 0x0c, 0xb2, 0x66, 0x37, 0xb8, 0x92, 0x28, 0x9d, 0x1b, 0x1f, 0x84, 0x2b, 0xc2, 0x15, 0xe1,
		0x8a, 0x70, 0x45, 0x25, 0x72, 0x45, 0x8c, 0x8d, 0x78, 0xf2, 0x17, 0x63, 0x23, 0x96, 0x3b, 0x8f,
		0xb1, 0x11, 0x85, 0x8a, 0x0a, 0x63, 0x23, 0x2a, 0x23, 0x2e, 0xe4, 0xed, 0xec, 0xc6, 0x16, 0x8c,
		0x8d, 0x70, 0xd5, 0x5b, 0x3f, 0xee, 0xb3, 0x5e, 0xb1, 0xd2, 0x1d, 0xe9, 0xb9, 0xeb, 0xb6, 0x1f,
		0x7f, 0xb0, 0xc6, 0x28, 0x7a, 0xd2, 0x3a, 0x3e, 0xa2, 0xd0, 0xb1, 0x06, 0x61, 0x66, 0xec, 0xf5,
		0xcf, 0xda, 0x98, 0x2d, 0x62, 0xbd, 0x7d, 0x76, 0x9d, 0xf6, 0x59, 0xb9, 0xd0, 0x98, 0xf6, 0xd9,
		0x0a, 0xba, 0x3f, 0xda, 0x67, 0x17, 0x37, 0x67, 0x30, 0x81, 0x2e, 0xcd, 0x9c, 0x94, 0xb9, 0x13,
		0x37, 0x7b, 0xe2, 0xe6, 0x4f, 0xd4, 0x0c, 0xda, 0x8d, 0x87, 0x68, 0x9f, 0x7d, 0x32, 0x16, 0xa3,
		0x7d, 0xf6, 0xe9, 0x2f, 0x85, 0xf6, 0xd9, 0x92, 0xbc, 0xb1, 0x39, 0x6f, 0x8e, 0xf6, 0x59, 0xeb,
		0x07, 0xd3, 0x3e, 0xbb, 0xd4, 0x6b, 0xa3, 0x7d, 0xb6, 0xf8, 0xf7, 0x47, 0xfb, 0xec, 0xb2, 0x66,
		0x93, 0xf6, 0x59, 0xeb, 0x66, 0x93, 0x7e, 0x43, 0xda, 0x67, 0xab, 0xe6, 0x48, 0x10, 0x67, 0xda,
		0x67, 0x95, 0x92, 0x03, 0x72, 0x9f, 0x83, 0xf6, 0xd9, 0x25, 0x5c, 0x3f, 0x69, 0x78, 0xab, 0xf7,
		0xa5, 0x7d, 0xf6, 0x69, 0x87, 0xd1, 0x91, 0xf3, 0x43, 0x3d, 0x25, 0xf9, 0xf1, 0x04, 0x41, 0x25,
		0xf9, 0xf1, 0xec, 0x03, 0x49, 0x7e, 0x68, 0x41, 0x1d, 0x74, 0xe4, 0x54, 0xcd, 0x5d, 0xd3, 0x3e,
		0x8b, 0xb3, 0xc6, 0x59, 0xe3, 0xac, 0x71, 0xd6, 0x38, 0x6b, 0x9c, 0xb5, 0x72, 0x67, 0x4d, 0xfb,
		0x2c, 0xae, 0x08, 0x57, 0x84, 0x2b, 0xc2, 0x15, 0x3d, 0xae, 0x2f, 0xb4, 0xcf, 0x3e, 0xf9, 0x8b,
		0xf6, 0xd9, 0xe5, 0xce, 0xa3, 0x7d, 0xb6, 0x50, 0x51, 0xa1, 0x7d, 0xb6, 0x32, 0xe2, 0x42, 0xde,
		0xce, 0x6e, 0x6c, 0x41, 0xfb, 0xac, 0xf3, 0xf6, 0xd9, 0x8a, 0x2d, 0x5e, 0xcf, 0xbb, 0x67, 0xd9,
		0xbd, 0xee, 0x5a, 0xd0, 0x75, 0x08, 0x78, 0xf9, 0xd7, 0xaf, 0xe7, 0x9f, 0xa4, 0x42, 0x1b, 0xd8,
		0x7b, 0xa9, 0x09, 0xae, 0x7a, 0xed, 0x2c, 0xea, 0xb6, 0x4d, 0xd0, 0x97, 0x90, 0xb4, 0xf8, 0x55,
		0xec, 0x73, 0xce, 0x60, 0x27, 0xbb, 0x3e, 0x1e, 0x87, 0x9d, 0xec, 0x4e, 0x78, 0x18, 0x76, 0xb2,
		0x2f, 0xa5, 0x06, 0xec, 0x64, 0x67, 0xa8, 0x84, 0x6b, 0x03, 0x24, 0x66, 0x88, 0x44, 0x0c, 0x52,
		0x39, 0x82, 0x42, 0x6b, 0x43, 0x25, 0x4c, 0x1c, 0x9e, 0xb5, 0x4d, 0xcb, 0x7e, 0x4e, 0x6c, 0x7c,
		0x10, 0x65, 0x2b, 0xf3, 0xb9, 0x13, 0x72, 0x85, 0xd2, 0xa6, 0x5e, 0xce, 0xe4, 0x4b, 0x99, 0x7e,
		0x71, 0x17, 0x20, 0xee, 0x0a, 0x44, 0x5d, 0x82, 0x3d, 0x06, 0xd2, 0xa3, 0x6c, 0x65, 0x31, 0x64,
		0xba, 0x06, 0xb5, 0xac, 0x97, 0x71, 0x53, 0xc1, 0xbc, 0xcd, 0xd2, 0x2e, 0x55, 0x1b, 0xd1, 0xf8,
		0x39, 0x35, 0x1f, 0x47, 0x1f, 0xf0, 0xa8, 0xff, 0xf9, 0x5e, 0xd0, 0xa4, 0x46, 0xd3, 0xb7, 0xef,
		0xd6, 0x82, 0x6a, 0x53, 0xbc, 0xd7, 0x27, 0xa4, 0x26, 0xa4, 0x26, 0xa4, 0x7e, 0x99, 0x21, 0xb5,
		0x25, 0x0e, 0x50, 0x86, 0x0b, 0xb4, 0x6c, 0xc0, 0x08, 0x1c, 0x09, 0x1c, 0x09, 0x1c, 0x75, 0x06,
		0x8e, 0xb6, 0x0c, 0x62, 0x7e, 0x40, 0xd8, 0x6e, 0x77, 0xbe, 0xdd, 0x83, 0xf4, 0x30, 0xb5, 0x2f,
		0xcf, 0x63, 0x0d, 0x9d, 0x3d, 0xda, 0xb2, 0x98, 0x49, 0xf0, 0x91, 0xf9, 0x61, 0x16, 0x79, 0xc9,
		0xf1, 0x97, 0xe5, 0xe9, 0x3b, 0x96, 0x79, 0x4a, 0x31, 0xb7, 0x23, 0xe9, 0x7e, 0xe4, 0xdd, 0x90,
		0xb4, 0x3b, 0x72, 0xe6, 0x96, 0x9c, 0xb9, 0x27, 0x27, 0x6e, 0xca, 0xae, 0xbb, 0xb2, 0xec, 0xb6,
		0xf2, 0x27, 0x66, 0x9d, 0xf7, 0x9c, 0xd1, 0x37, 0xfb, 0xfc, 0xe7, 0x0c, 0x1a, 0x5f, 0x2b, 0x69,
		0x69, 0xb0, 0xc5, 0x97, 0xef, 0x5f, 0x85, 0x37, 0xd1, 0x55, 0xef, 0xaa, 0xe0, 0x7a, 0xae, 0x9f,
		0xbe, 0xfd, 0xe9, 0x63, 0xab, 0x04, 0x27, 0xd6, 0x80, 0x12, 0x40, 0x09, 0xa0, 0x04, 0x50, 0x02,
		0x28, 0x21, 0xa5, 0x6f, 0xbd, 0x28, 0xce, 0x36, 0xd6, 0x05, 0x91, 0xc4, 0xb6, 0xc0, 0x51, 0x32,
		0x6d, 0x98, 0xe3, 0x2f, 0xc1, 0xd9, 0xce, 0x92, 0x6d, 0x99, 0xf9, 0xa1, 0xc2, 0xed, 0x99, 0xf9,
		0xb9, 0xae, 0xfa, 0xee, 0xee, 0x75, 0x44, 0xba, 0xff, 0x4e, 0xc8, 0xcc, 0x4c, 0x8b, 0x94, 0x60,
		0xfb, 0xe6, 0x8c, 0x48, 0xd5, 0xd6, 0x77, 0x6a, 0x3b, 0x5b, 0xdb, 0xeb, 0x3b, 0x9b, 0xc8, 0x96,
		0x94, 0x6c, 0x31, 0xfd, 0xd7, 0x6d, 0x40, 0x5a, 0x2a, 0x6a, 0xde, 0x72, 0xe1, 0x4e, 0x7e, 0x8e,
		0xb2, 0x02, 0x1e, 0xd3, 0xff, 0xeb, 0x56, 0xd3, 0x9c, 0x9e, 0x9e, 0x6a, 0x9e, 0xbd, 0xb3, 0x8b,
		0xae, 0x95, 0x92, 0x1e, 0x7b, 0x22, 0x6f, 0x63, 0x48, 0x53, 0x3b, 0x8a, 0xff, 0x0e, 0xce, 0xc2,
		0xb8, 0xf5, 0x2d, 0x6a, 0x65, 0x97, 0x81, 0xb9, 0xc9, 0x82, 0x66, 0xe7, 0xea, 0xaa, 0x17, 0x47,
		0x99, 0xc0, 0x3c, 0xe4, 0x1f, 0x9e, 0x4e, 0xa6, 0xdd, 0x15, 0x3f, 0x41, 0xa6, 0xbd, 0x7c, 0xfc,
		0x03, 0x99, 0xf6, 0x47, 0x9f, 0x8c, 0xf5, 0x4c, 0xbb, 0xe5, 0x12, 0xa4, 0x19, 0xb5, 0xb4, 0xee,
		0xa3, 0x05, 0x0c, 0xa5, 0x98, 0xc1, 0x94, 0x34, 0x9c, 0xf2, 0x06, 0x54, 0xda, 0x90, 0x3a, 0x33,
		0xa8, 0xce, 0x0c, 0xab, 0x13, 0x03, 0x2b, 0x13, 0x51, 0xda, 0x26, 0x76, 0x6d, 0x1b, 0xde, 0xfc,
		0x20, 0xdb, 0x6d, 0x95, 0x8f, 0xea, 0xb7, 0xdd, 0x36, 0xcb, 0xc7, 0x4c, 0xb2, 0xd4, 0x28, 0x2e,
		0x29, 0xd3, 0xec, 0xc2, 0x44, 0xbb, 0x33, 0xd5, 0xae, 0x4c, 0xb6, 0x73, 0xd3, 0xed, 0xdc, 0x84,
		0x3b, 0x35, 0xe5, 0x32, 0x26, 0x5d, 0xc8, 0xb4, 0xe7, 0x4f, 0x52, 0x2c, 0x77, 0x37, 0xa3, 0xaf,
		0x72, 0xe5, 0x40, 0x33, 0x88, 0x78, 0xad, 0x22, 0x6c, 0x72, 0xb9, 0xd1, 0x85, 0x10, 0x4b, 0x9b,
		0x9f, 0xa7, 0x91, 0xad, 0xfd, 0x11, 0x81, 0xb6, 0x22, 0x12, 0x26, 0x7a, 0xca, 0x28, 0xdd, 0xfd,
		0x28, 0xfe, 0xfb, 0xfd, 0xf8, 0x81, 0xec, 0xdd, 0x64, 0xbf, 0x8f, 0x1f, 0x87, 0x55, 0xb2, 0xd7,
		0xbe, 0x46, 0xdd, 0x59, 0x65, 0xe4, 0xc3, 0xcc, 0xc8, 0xd1, 0x17, 0xb6, 0x86, 0x51, 0x3a, 0x65,
		0x2f, 0xd6, 0x61, 0x2f, 0x60, 0x2f, 0x60, 0x2f, 0x60, 0x2f, 0x60, 0x2f, 0x60, 0x2f, 0x60, 0x2f,
		0x60, 0x2f, 0x60, 0x2f, 0x60, 0x2f, 0x60, 0x2f, 0x40, 0x17, 0xb0, 0x17, 0xcf, 0x63, 0x2f, 0x24,
		0xa2, 0xc4, 0xf2, 0x90, 0x17, 0x16, 0x16, 0x1d, 0x08, 0x72, 0x17, 0x54, 0x7f, 0x56, 0x40, 0x23,
		0x5f, 0x48, 0x4d, 0xe8, 0xa3, 0x3a, 0xf8, 0x92, 0xcb, 0x44, 0xed, 0x32, 0x84, 0x22, 0xcc, 0xa0,
		0x58, 0xe1, 0xe7, 0x3a, 0x85, 0x9f, 0x7a, 0xc2, 0x47, 0x0a, 0x3f, 0x5f, 0xb0, 0x27, 0x67, 0xc4,
		0x52, 0x91, 0x0f, 0x93, 0x11, 0x4b, 0x0a, 0xd9, 0x4e, 0xca, 0x67, 0x4b, 0xc9, 0x66, 0x92, 0x80,
		0x22, 0x01, 0xa5, 0x87, 0x9d, 0x64, 0xc4, 0x92, 0xaa, 0x97, 0xcf, 0x88, 0xa5, 0xa2, 0x0f, 0x63,
		0xc4, 0x12, 0x50, 0x02, 0x28, 0x01, 0x94, 0x00, 0x4a, 0x88, 0xe9, 0x1b, 0x23, 0x96, 0x96, 0xfe,
		0x62, 0xc4, 0x92, 0x9d, 0x73, 0x19, 0xb1, 0x24, 0x22, 0x52, 0x8c, 0x58, 0x62, 0xc4, 0x52, 0x09,
		0x4f, 0x61, 0xc4, 0x92, 0x80, 0xc5, 0x78, 0xd1, 0x49, 0x76, 0xdb, 0x95, 0x2d, 0x9a, 0xb2, 0xe9,
		0x16, 0xeb, 0x56, 0x58, 0x27, 0x58, 0x79, 0x55, 0xa9, 0xee, 0x32, 0xc1, 0xbd, 0xc2, 0x83, 0x56,
		0x9d, 0xab, 0x04, 0x23, 0xab, 0xab, 0x04, 0x23, 0x56, 0x09, 0xb2, 0x4a, 0x50, 0x05, 0x39, 0xc6,
		0x2a, 0x41, 0x39, 0x47, 0xc8, 0x2a, 0x41, 0x07, 0x06, 0xcc, 0xba, 0x21, 0x93, 0x30, 0x68, 0x72,
		0x86, 0x4d, 0xca, 0xc0, 0x89, 0x1b, 0x3a, 0x71, 0x83, 0x27, 0x6a, 0xf8, 0xca, 0x19, 0x4c, 0x5b,
		0xaf, 0x73, 0x23, 0x21, 0x5d, 0xf0, 0x61, 0x24, 0xa4, 0x35, 0xb8, 0x1a, 0x49, 0x97, 0x23, 0xef,
		0x7a, 0xa4, 0x5d, 0x90, 0x33, 0x57, 0xe4, 0xcc, 0x25, 0x39, 0x71, 0x4d, 0x76, 0x5d, 0x94, 0x65,
		0x57, 0x95, 0x3f, 0x31, 0x12, 0xd2, 0x85, 0x1c, 0x45, 0x42, 0xba, 0xc8, 0x43, 0x49, 0x48, 0x93,
		0x90, 0xb6, 0x24, 0x52, 0x24, 0xa4, 0x49, 0x48, 0x3f, 0x17, 0xcc, 0x93, 0x90, 0x16, 0x88, 0xa1,
		0x5f, 0x68, 0x42, 0x3a, 0x7a, 0x49, 0x3b, 0x7f, 0xea, 0xec, 0xfc, 0x61, 0xe7, 0x4f, 0x09, 0x79,
		0x0a, 0x28, 0xf1, 0x52, 0xf0, 0x10, 0x50, 0xe2, 0x7a, 0xdc, 0x39, 0x3b, 0x7f, 0x14, 0x1a, 0x4a,
		0x31, 0x83, 0x29, 0x69, 0x38, 0xe5, 0x0d, 0xa8, 0xb4, 0x21, 0x75, 0x66, 0x50, 0x9d, 0x19, 0x56,
		0x27, 0x06, 0x56, 0x26, 0xa2, 0x64, 0x6a, 0xee, 0xb2, 0xfa, 0xcd, 0xd4, 0xdc, 0xb2, 0x9a, 0x68,
		0x77, 0xa6, 0xda, 0x95, 0xc9, 0x76, 0x6e, 0xba, 0x9d, 0x9b, 0x70, 0xa7, 0xa6, 0x5c, 0xc6, 0xa4,
		0x0b, 0x99, 0xf6, 0xfc, 0x49, 0x32, 0x35, 0xb7, 0xc4, 0x82, 0xc2, 0xd4, 0xdc, 0x45, 0xce, 0xd3,
		0xc8, 0xd6, 0xb2, 0xf3, 0xe7, 0x21, 0xa5, 0xcb, 0xce, 0x9f, 0xe7, 0xbc, 0x3e, 0x76, 0xfe, 0x2c,
		0x0b, 0x91, 0xd9, 0xf9, 0x03, 0x7b, 0x01, 0x7b, 0x01, 0x7b, 0x01, 0x7b, 0x01, 0x7b, 0x01, 0x7b,
		0x01, 0x7b, 0x01, 0x7b, 0x01, 0x7b, 0x01, 0x7b, 0x01, 0xba, 0x80, 0xbd, 0x78, 0x26, 0x7b, 0xf1,
		0xc2, 0x76, 0xfe, 0xd4, 0xd9, 0xf9, 0xa3, 0x43, 0x43, 0x5f, 0x74, 0xf5, 0xe7, 0xcb, 0xde, 0xf9,
		0x53, 0x67, 0xe7, 0x8f, 0x13, 0x86, 0x90, 0x9d, 0x3f, 0x4a, 0xc2, 0x4b, 0x0a, 0x3f, 0xcb, 0x17,
		0x1e, 0x52, 0xf8, 0xe9, 0x8c, 0xc1, 0x63, 0x16, 0x42, 0xd1, 0x87, 0x31, 0x0b, 0x41, 0x13, 0xb3,
		0x49, 0xd2, 0xa9, 0x12, 0xcc, 0x25, 0x49, 0xa7, 0xf2, 0xd0, 0x42, 0xcc, 0x42, 0x28, 0xe4, 0x28,
		0x66, 0x21, 0x14, 0x79, 0x28, 0xb3, 0x10, 0x98, 0x85, 0x60, 0x49, 0xa4, 0x98, 0x85, 0xc0, 0x2c,
		0x84, 0xe7, 0x82, 0x79, 0xd8, 0x70, 0x81, 0x18, 0xfa, 0x25, 0xb3, 0xe1, 0x2f, 0x64, 0x38, 0x7f,
		0x9d, 0xe1, 0xfc, 0x65, 0x52, 0x19, 0x8d, 0xaa, 0x52, 0xdd, 0xe1, 0xfc, 0xf5, 0x17, 0x32, 0x9c,
		0xdf, 0x4e, 0x86, 0xc7, 0x6a, 0x66, 0xc7, 0xfa, 0x78, 0xfe, 0x75, 0xc6, 0xf3, 0xcb, 0xd1, 0x65,
		0x8c, 0xe7, 0xaf, 0xa0, 0x2b, 0xb4, 0x36, 0x9e, 0xdf, 0x76, 0xcd, 0xb4, 0x50, 0x8d, 0xb4, 0x48,
		0x76, 0xc5, 0x1f, 0xc4, 0x97, 0x76, 0xb0, 0xdd, 0xa9, 0xdd, 0x64, 0xfd, 0x2a, 0x53, 0x9a, 0x1c,
		0x9a, 0x7c, 0x29, 0xd3, 0x2f, 0xee, 0x02, 0xc4, 0x5d, 0x81, 0xa8, 0x4b, 0x28, 0x27, 0xd1, 0x60,
		0x3d, 0xf3, 0x21, 0x58, 0x7b, 0x6d, 0xb9, 0xd6, 0x9a, 0x80, 0xba, 0xd2, 0x01, 0xb5, 0x2d, 0xda,
		0x49, 0x49, 0x44, 0x6d, 0x81, 0x69, 0x2a, 0x30, 0xa4, 0x7e, 0xa5, 0x48, 0x01, 0x6c, 0x09, 0xbe,
		0x32, 0x81, 0xf7, 0x0b, 0xa5, 0x31, 0x14, 0x88, 0x78, 0x31, 0xc2, 0xbd, 0xbc, 0x28, 0x2e, 0xf7,
		0x1b, 0x96, 0x14, 0xe2, 0x3e, 0x98, 0x1b, 0x00, 0xb9, 0xfc, 0xd5, 0x07, 0x83, 0xd7, 0xb2, 0xe4,
		0x6f, 0xdd, 0x8f, 0xd2, 0x6c, 0x37, 0xcb, 0x8a, 0x09, 0x2b, 0xfd, 0x8f, 0x51, 0xbc, 0xd7, 0x36,
		0x7d, 0x40, 0x56, 0x50, 0x0a, 0xd0, 0xff, 0x18, 0xde, 0x4c, 0xfc, 0xc6, 0xb5, 0xdf, 0x6a, 0xb5,
		0xad, 0xed, 0x5a, 0x6d, 0x75, 0x7b, 0x63, 0x7b, 0x75, 0x67, 0x73, 0x73, 0x6d, 0x6b, 0xad, 0x80,
		0x44, 0xa7, 0x7f, 0x98, 0xb4, 0x4c, 0x62, 0x5a, 0xef, 0xfb, 0x0f, 0x38, 0xee, 0xb5, 0xdb, 0x45,
		0xfe, 0xca, 0xcf, 0xa9, 0x49, 0x0a, 0xc9, 0x49, 0x2e, 0x2b, 0x3f, 0x05, 0x1b, 0x3f, 0x97, 0x46,
		0xaf, 0x00, 0x0b, 0xe7, 0xc4, 0xb2, 0x2d, 0x67, 0xc8, 0x9e, 0x6f, 0x7e, 0x9e, 0xf7, 0x2f, 0x9f,
		0x29, 0x70, 0x45, 0x09, 0x9a, 0xb8, 0x80, 0x2d, 0x21, 0x55, 0x82, 0xd2, 0xf4, 0x3c, 0x19, 0x5a,
		0x5c, 0x02, 0x9e, 0xf1, 0xf6, 0xfd, 0x24, 0x3a, 0x7b, 0xf6, 0x2b, 0xcf, 0xc3, 0xc9, 0xfe, 0x2f,
		0x79, 0xa6, 0xe4, 0x2d, 0x97, 0xc0, 0x58, 0x3a, 0x51, 0x51, 0x04, 0x4b, 0x35, 0xc9, 0x42, 0x25,
		0xd1, 0xd9, 0x92, 0x4c, 0x54, 0x51, 0x4c, 0x53, 0xe1, 0x4c, 0x52, 0xe1, 0x4c, 0xd1, 0x43, 0x26,
		0x68, 0xfc, 0xec, 0x4a, 0x62, 0x33, 0x97, 0x25, 0xf6, 0xfd, 0xf0, 0x3c, 0x0a, 0xd2, 0xf0, 0x3c,
		0x5a, 0xbe, 0x6d, 0x22, 0x97, 0xc0, 0xfb, 0x5f, 0xb9, 0x2c, 0x72, 0x2d, 0x24, 0xaf, 0x58, 0x58,
		0x1e, 0xb1, 0x48, 0x32, 0xb9, 0x58, 0x75, 0xb5, 0x45, 0x10, 0x5b, 0x23, 0x82, 0xad, 0x11, 0xbe,
		0x85, 0xab, 0xb3, 0x8e, 0x18, 0xae, 0xa8, 0xfc, 0x5d, 0xae, 0x9b, 0xc5, 0x89, 0xc8, 0x43, 0xad,
		0x2f, 0x4a, 0x42, 0x8a, 0x2d, 0x2a, 0x28, 0x3c, 0xd3, 0x64, 0x23, 0xb3, 0x64, 0xc7, 0x28, 0xd8,
		0x32, 0x0e, 0xd6, 0x8d, 0x84, 0x75, 0x63, 0x61, 0xdd, 0x68, 0xe8, 0x64, 0x33, 0x8b, 0x2e, 0x06,
		0xc8, 0x55, 0x3f, 0x18, 0xc5, 0x31, 0x96, 0x6a, 0x97, 0xa6, 0x8f, 0xb1, 0x53, 0xc3, 0xb4, 0x6a,
		0xab, 0x86, 0x69, 0xb5, 0x9c, 0x35, 0x4c, 0xc5, 0x9b, 0x21, 0xdb, 0xe6, 0x48, 0xcc, 0x2c, 0x89,
		0x99, 0x27, 0x31, 0x33, 0x55, 0xac, 0xb9, 0x2a, 0xd8, 0x6c, 0xe5, 0x4f, 0xc1, 0x5a, 0x82, 0xfa,
		0x7e, 0x1d, 0x9a, 0x09, 0xcf, 0x13, 0x73, 0x6e, 0x43, 0xe8, 0xc7, 0xa8, 0xc6, 0x42, 0xf3, 0x9d,
		0x7f, 0x34, 0x62, 0xbc, 0xde, 0xbe, 0x1d, 0xa6, 0x2e, 0x57, 0xa6, 0x0d, 0xe6, 0x0b, 0x28, 0x9e,
		0x8d, 0xba, 0xd7, 0xb5, 0x20, 0x4d, 0x32, 0x13, 0x74, 0x3b, 0xed, 0xa8, 0x79, 0x6b, 0xcf, 0x17,
		0xcd, 0x9c, 0x54, 0xb2, 0x92, 0x5a, 0xdc, 0x11, 0xee, 0x08, 0x77, 0xa4, 0x11, 0x4d, 0xe7, 0xbf,
		0xb8, 0x3d, 0x7c, 0xa6, 0x02, 0xdb, 0x3f, 0x47, 0x07, 0xb1, 0xe8, 0x53, 0xda, 0xb4, 0xc9, 0x9a,
		0x38, 0x29, 0x53, 0x27, 0x6e, 0xf2, 0xc4, 0x4d, 0x9f, 0xb8, 0x09, 0xb4, 0x63, 0x0a, 0x2d, 0x99,
		0x44, 0xeb, 0xa6, 0x31, 0x3f, 0x20, 0xe9, 0xf4, 0x32, 0x23, 0x38, 0xf0, 0x69, 0x74, 0x1e, 0x0b,
		0x3f, 0xb5, 0x19, 0x50, 0x37, 0x86, 0x54, 0xda, 0xa0, 0x3a, 0x33, 0xac, 0xce, 0x0c, 0xac, 0x33,
		0x43, 0x6b, 0xd7, 0xe0, 0x5a, 0x36, 0xbc, 0x62, 0x06, 0x78, 0xda, 0x10, 0xcb, 0x2f, 0xce, 0x18,
		0x1e, 0x2b, 0xbb, 0x36, 0x63, 0x8d, 0xb5, 0x19, 0x25, 0x37, 0xd7, 0xae, 0xcc, 0xb6, 0x73, 0xf3,
		0xed, 0xdc, 0x8c, 0x3b, 0x37, 0xe7, 0x32, 0x66, 0x5d, 0xc8, 0xbc, 0x8b, 0x9b, 0xf9, 0xfc, 0xc0,
		0x66, 0xa7, 0xdd, 0x49, 0xe4, 0xf5, 0xe6, 0x7e, 0xef, 0x7e, 0xff, 0x78, 0x61, 0x91, 0x95, 0xdd,
		0x9a, 0xe4, 0xcc, 0x0d, 0xb8, 0x74, 0x07, 0x3a, 0xdc, 0x82, 0x6b, 0xf7, 0xa0, 0xc6, 0x4d, 0xa8,
		0x71, 0x17, 0x6a, 0xdc, 0x86, 0xac, 0xfb, 0x10, 0x76, 0x23, 0xf9, 0x53, 0x16, 0xdf, 0xc6, 0x34,
		0xa3, 0xf7, 0xf6, 0x12, 0xb0, 0x4f, 0x46, 0xf9, 0xdb, 0x0e, 0xce, 0x9e, 0x49, 0xe0, 0x0e, 0x1d,
		0xdd, 0xab, 0x6a, 0x8a, 0xb6, 0xe4, 0x6c, 0x4d, 0x13, 0xb7, 0xba, 0x9d, 0x68, 0x60, 0x38, 0x1c,
		0x61, 0x96, 0xfc, 0x06, 0xc0, 0x16, 0x60, 0x0b, 0xb0, 0x05, 0xd8, 0x02, 0x6c, 0x01, 0xb6, 0x54,
		0x14, 0xb6, 0xe4, 0xbe, 0x0e, 0xe4, 0xb2, 0xf4, 0xc3, 0xed, 0x86, 0xd9, 0x65, 0x10, 0xb5, 0xdc,
		0x01, 0x97, 0xf1, 0x05, 0xc0, 0x2d, 0xe0, 0x16, 0x70, 0x0b, 0xb8, 0x05, 0xdc, 0x02, 0x6e, 0xa9,
		0x28, 0x6e, 0x19, 0xbb, 0x3a, 0x60, 0xcb, 0xd2, 0xcf, 0xd6, 0xee, 0xa2, 0xd2, 0x9f, 0x4a, 0xb4,
		0xd4, 0xd2, 0xea, 0xb9, 0xb2, 0x0c, 0x64, 0x01, 0xb2, 0x00, 0x59, 0x80, 0x2c, 0xd5, 0x85, 0x2c,
		0xd2, 0x05, 0x07, 0xf9, 0xc1, 0x61, 0x96, 0x25, 0x41, 0x14, 0xb7, 0xcc, 0x8d, 0x3b, 0xa5, 0xcb,
		0xdb, 0x91, 0xef, 0xef, 0xe2, 0x48, 0xd8, 0xdd, 0xc4, 0xc8, 0xce, 0x1d, 0x8f, 0x06, 0x07, 0xa4,
		0xcb, 0x11, 0x69, 0x71, 0x48, 0xea, 0x1c, 0x93, 0x3a, 0x07, 0xa5, 0xce, 0x51, 0xb9, 0x71, 0x58,
		0x8e, 0x1c, 0x97, 0xfb, 0x98, 0x5b, 0x51, 0xec, 0xad, 0x21, 0x06, 0x9f, 0x17, 0x8b, 0xcf, 0xfd,
		0xbf, 0x81, 0xb3, 0x4d, 0x4d, 0x96, 0xe6, 0xdf, 0x8d, 0x62, 0xf6, 0xa1, 0x03, 0x7e, 0xf5, 0x32,
		0x54, 0xc6, 0x81, 0xba, 0x38, 0xaa, 0xf5, 0x9c, 0xd1, 0x13, 0x17, 0x35, 0x9f, 0x00, 0x2d, 0x80,
		0x16, 0x40, 0x0b, 0xa0, 0x05, 0xd0, 0xaa, 0x00, 0xd0, 0x12, 0xdb, 0xaf, 0xff, 0x33, 0x2f, 0xe2,
		0x12, 0x66, 0xc9, 0xee, 0xe3, 0x7f, 0xec, 0xcb, 0xad, 0xcd, 0xf4, 0x5c, 0xed, 0xef, 0x7f, 0xf4,
		0x32, 0x8e, 0xf6, 0xfa, 0x3f, 0x7a, 0x1f, 0xd7, 0x3b, 0xd9, 0x1f, 0xd7, 0x65, 0x57, 0xbb, 0xda,
		0x95, 0x99, 0xd5, 0x69, 0x51, 0x0e, 0x6f, 0xf4, 0x89, 0x72, 0x6d, 0x7d, 0xa7, 0xb6, 0xb3, 0xb5,
		0xbd, 0xbe, 0xb3, 0x89, 0x4c, 0x97, 0x4d, 0xa6, 0x5f, 0xbd, 0xcc, 0xd3, 0x4f, 0x21, 0x11, 0x2c,
		0x92, 0x08, 0x57, 0x57, 0xbd, 0x38, 0xca, 0x6e, 0xb5, 0x24, 0x6f, 0x1e, 0x5e, 0x08, 0x62, 0x01,
		0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x61, 0x41, 0xbb, 0x41, 0x06, 0xc7, 0x7b,
		0x4a, 0x06, 0x67, 0xec, 0x71, 0x23, 0x93, 0xe6, 0xdf, 0xdf, 0x92, 0xc4, 0x91, 0x79, 0x39, 0xce,
		0xfa, 0x5f, 0x67, 0xb4, 0xc5, 0x51, 0x1f, 0x2c, 0x88, 0x0b, 0xc4, 0x05, 0xe2, 0x02, 0x71, 0x81,
		0xb8, 0x2a, 0x80, 0xb8, 0xa2, 0x6e, 0x10, 0xb6, 0x5a, 0x89, 0x49, 0x53, 0x0d, 0xa0, 0x6b, 0xc7,
		0xe1, 0x1d, 0x46, 0xef, 0xe4, 0xc5, 0xa7, 0x73, 0xa6, 0xd6, 0x32, 0xb8, 0x97, 0x8d, 0x19, 0x19,
		0xf9, 0x4d, 0xc1, 0x5d, 0x8e, 0xc2, 0x2c, 0x33, 0x49, 0xec, 0x5c, 0x5c, 0xf2, 0x0b, 0xbd, 0xfe,
		0xba, 0x1a, 0xec, 0x9c, 0x7e, 0xff, 0xba, 0x16, 0xec, 0x9c, 0x0e, 0xbf, 0x5d, 0x1b, 0xfc, 0xf1,
		0xcf, 0xfa, 0xdd, 0xf7, 0xf5, 0xaf, 0xab, 0x41, 0x6d, 0xf4, 0xd3, 0xf5, 0xcd, 0xaf, 0xab, 0xc1,
		0xe6, 0xe9, 0x9b, 0xd7, 0x7f, 0xfd, 0xf5, 0x76, 0xd1, 0x7f, 0xf3, 0xe6, 0x9f, 0x8d, 0x3b, 0xdf,
		0xf9, 0xc7, 0x3d, 0xd5, 0xf0, 0xfa, 0x0f, 0x4f, 0xea, 0xff, 0x56, 0x27, 0x03, 0xff, 0x79, 0x2d,
		0x25, 0x05, 0x6f, 0xfe, 0x47, 0x81, 0x1c, 0xb8, 0x4d, 0xad, 0xfc, 0x8a, 0x9b, 0xc8, 0xdd, 0xc4,
		0x16, 0x6e, 0xa2, 0x2c, 0x6e, 0x62, 0xa0, 0xed, 0x61, 0x70, 0xbe, 0x1b, 0xfc, 0x71, 0xfa, 0xcf,
		0xda, 0xaf, 0xb5, 0xbb, 0x77, 0x6f, 0xfe, 0xd9, 0xbe, 0x7b, 0xf8, 0xc3, 0xef, 0xf3, 0xfe, 0xda,
		0xda, 0xaf, 0xdb, 0x77, 0xef, 0x1e, 0xf9, 0x2f, 0x5b, 0x77, 0xef, 0x9e, 0xf8, 0x3b, 0x36, 0xef,
		0x5e, 0xcf, 0xfc, 0xd5, 0xfe, 0xcf, 0xd7, 0x1f, 0xfb, 0x07, 0xb5, 0x47, 0xfe, 0xc1, 0xc6, 0x63,
		0xff, 0x60, 0xe3, 0x91, 0x7f, 0xf0, 0xe8, 0x95, 0xd6, 0x1f, 0xf9, 0x07, 0x9b, 0x77, 0xdf, 0x67,
		0xfe, 0xfe, 0xeb, 0xf9, 0x7f, 0x75, 0xeb, 0xee, 0xcd, 0xf7, 0xc7, 0xfe, 0xdb, 0xf6, 0xdd, 0xf7,
		0x77, 0x6f, 0xde, 0xe0, 0x38, 0xd5, 0x3b, 0x4e, 0xd4, 0x42, 0x5e, 0x2d, 0x00, 0x12, 0xd4, 0x68,
		0x54, 0x0f, 0xaa, 0xf9, 0xe6, 0x26, 0x0b, 0xd4, 0xd5, 0x69, 0xcc, 0xbb, 0x14, 0x99, 0x03, 0x37,
		0x7e, 0x90, 0xcc, 0xc1, 0x83, 0xdb, 0x90, 0x39, 0x78, 0xe4, 0x42, 0x64, 0x0e, 0x54, 0x7a, 0x50,
		0x32, 0x07, 0xd4, 0x6a, 0x78, 0x4f, 0xa9, 0xd5, 0x98, 0xf4, 0xba, 0x91, 0x49, 0xa7, 0xfe, 0x37,
		0x35, 0x1b, 0x42, 0x2f, 0x29, 0x8a, 0xaf, 0xc3, 0x76, 0xd4, 0x0a, 0x12, 0x13, 0xa6, 0x9d, 0xd8,
		0x3d, 0x14, 0x7b, 0x70, 0x1f, 0x50, 0x18, 0x28, 0x0c, 0x14, 0x06, 0x0a, 0x03, 0x85, 0x81, 0xc2,
		0x16, 0xf5, 0x24, 0x2d, 0x13, 0x67, 0x51, 0x76, 0xab, 0x04, 0x89, 0x39, 0x6c, 0x51, 0xf3, 0xeb,
		0xa3, 0x47, 0xf1, 0x3e, 0x4c, 0x15, 0x98, 0xb0, 0xf1, 0x0b, 0xaa, 0x1f, 0x7c, 0xd9, 0xdd, 0xaf,
		0x7f, 0x68, 0x1c, 0x1f, 0x7e, 0xfe, 0xb4, 0xd7, 0x38, 0xde, 0xdb, 0x3d, 0x39, 0x3c, 0x70, 0x6d,
		0xcd, 0x06, 0x9d, 0x85, 0xa9, 0x0a, 0x02, 0x5e, 0x49, 0xaf, 0xe5, 0xc3, 0xb7, 0xb5, 0x7b, 0xd2,
		0xd8, 0x3f, 0x3c, 0x3c, 0xf2, 0xe9, 0x8a, 0x55, 0xfb, 0x8a, 0x7e, 0xdf, 0xff, 0x7c, 0xf2, 0x69,
		0xef, 0x98, 0xf7, 0xa4, 0xfd, 0x3d, 0x1d, 0x1e, 0xfc, 0xb1, 0xf7, 0x81, 0x37, 0xa4, 0xf7, 0x0d,
		0x1d, 0x1e, 0xd7, 0xff, 0xac, 0x1f, 0xec, 0x7e, 0x3a, 0x3c, 0xf6, 0x5f, 0x78, 0xc7, 0xf4, 0xe9,
		0x4b, 0xc3, 0xcf, 0x2f, 0x82, 0xfd, 0x69, 0x87, 0x69, 0x16, 0x5c, 0x75, 0x5a, 0xd1, 0x79, 0x64,
		0x5a, 0xee, 0xc9, 0x9f, 0xe9, 0xeb, 0xc0, 0xfd, 0xc0, 0xfd, 0xc0, 0xfd, 0xc0, 0xfd, 0xc0, 0xfd,
		0xc0, 0xfd, 0x2c, 0x68, 0x37, 0xb2, 0xe8, 0xca, 0x64, 0x51, 0xf3, 0xef, 0x74, 0xab, 0xa6, 0x80,
		0xfb, 0x71, 0x58, 0x70, 0xeb, 0x7f, 0x8e, 0x87, 0x83, 0x88, 0xfc, 0x38, 0x8c, 0x3b, 0xa9, 0x69,
		0x76, 0xe2, 0x96, 0xd3, 0x7e, 0x26, 0x66, 0xc3, 0x8d, 0x1e, 0x04, 0xb3, 0xe1, 0x7e, 0x70, 0x1f,
		0xe6, 0x68, 0x95, 0x28, 0x76, 0xd7, 0x39, 0x1b, 0x6e, 0xed, 0xb7, 0x5a, 0x6d, 0x6b, 0xbb, 0x56,
		0x5b, 0xdd, 0xde, 0xd8, 0x5e, 0xdd, 0xd9, 0xdc, 0x5c, 0xdb, 0x5a, 0x63, 0x4a, 0x5c, 0xe9, 0xa4,
		0x9b, 0x0a, 0x64, 0x38, 0x8f, 0x82, 0x85, 0xdc, 0xd5, 0xae, 0xdb, 0x19, 0x90, 0xea, 0x66, 0xe7,
		0x6d, 0x7e, 0x8d, 0x0f, 0xe6, 0x3c, 0xec, 0xb5, 0x33, 0xa7, 0x58, 0xcc, 0x5f, 0x75, 0x13, 0x9b,
		0x9d, 0xc2, 0x2d, 0x39, 0xb9, 0x00, 0xdc, 0xd2, 0xc3, 0xdb, 0xc0, 0x2d, 0x3d, 0x72, 0x21, 0xb8,
		0x25, 0x95, 0xe8, 0x04, 0x6e, 0x89, 0x11, 0xff, 0xd0, 0x38, 0xd0, 0x38, 0x04, 0xba, 0xd0, 0x38,
		0x12, 0xa2, 0xcc, 0x88, 0x7f, 0xc8, 0x1b, 0xc8, 0x1b, 0xc8, 0x9b, 0x91, 0x90, 0x8f, 0x9a, 0x83,
		0x3a, 0xbd, 0xcc, 0xb8, 0x27, 0x70, 0x26, 0x2f, 0x03, 0xa1, 0x00, 0xa1, 0x00, 0xa1, 0x00, 0xa1,
		0x00, 0xa1, 0x00, 0xa1, 0xb0, 0xa0, 0xdd, 0x38, 0xeb, 0x74, 0xda, 0x26, 0x8c, 0x35, 0x34, 0x29,
		0xad, 0xbd, 0x14, 0xe8, 0xf2, 0xaa, 0xc2, 0x22, 0xee, 0xef, 0xc6, 0x71, 0x27, 0x0b, 0xfb, 0x41,
		0x8a, 0x13, 0x01, 0xf7, 0xd3, 0xe6, 0xa5, 0xb9, 0x0a, 0xbb, 0xa3, 0xf6, 0xff, 0x95, 0x4e, 0xd7,
		0xc4, 0xcd, 0x01, 0x50, 0x08, 0x62, 0x93, 0x7d, 0xeb, 0x24, 0x7f, 0x07, 0x51, 0x9c, 0x66, 0x61,
		0xdc, 0x34, 0x2b, 0x0f, 0x7f, 0x90, 0xce, 0xfc, 0x64, 0xa5, 0x9b, 0x74, 0xb2, 0x4e, 0xb3, 0xd3,
		0x4e, 0xf3, 0xef, 0x56, 0xce, 0x2e, 0xba, 0x2b, 0x49, 0x74, 0xb6, 0x12, 0x9e, 0x47, 0x41, 0x1a,
		0x9e, 0x47, 0x69, 0xfe, 0xdd, 0xca, 0x60, 0x36, 0x6f, 0x9a, 0x64, 0x26, 0xe8, 0x76, 0xda, 0x51,
		0xf3, 0x76, 0xa5, 0x3d, 0x34, 0xad, 0x2b, 0x03, 0x98, 0x96, 0x0e, 0xff, 0x18, 0x0e, 0x17, 0x70,
		0xa0, 0x70, 0x7e, 0x9a, 0x25, 0xbd, 0x66, 0x16, 0x8f, 0x34, 0xff, 0x30, 0x7f, 0x32, 0x07, 0xc3,
		0x4f, 0x5d, 0x1f, 0x7d, 0xe8, 0xc6, 0x83, 0xff, 0x9d, 0x3e, 0xfc, 0x41, 0xe3, 0x68, 0xfc, 0x54,
		0xf2, 0xef, 0x1a, 0xef, 0x2f, 0xba, 0x8d, 0xe3, 0xe8, 0xac, 0xb1, 0x7b, 0x1e, 0x9d, 0xf4, 0x1f,
		0xca, 0xf8, 0x9b, 0x46, 0xbd, 0x7b, 0x5d, 0x3b, 0x49, 0x32, 0x73, 0x34, 0x78, 0x22, 0x8d, 0xfd,
		0x4e, 0xb3, 0xff, 0xd7, 0x8e, 0x07, 0x0f, 0x64, 0xf8, 0x47, 0xe3, 0x64, 0xf0, 0x40, 0x5e, 0x55,
		0x53, 0x07, 0x05, 0xf5, 0xcf, 0xef, 0xc5, 0x7f, 0xc7, 0x9d, 0x6f, 0x71, 0x10, 0x66, 0x59, 0x12,
		0x9d, 0xf5, 0x9f, 0xb0, 0xb8, 0x0e, 0xde, 0x33, 0xd5, 0xb3, 0x77, 0x11, 0xb6, 0x44, 0x63, 0xbf,
		0x22, 0x7c, 0xac, 0xab, 0xb0, 0xc4, 0x65, 0x38, 0xa2, 0x23, 0x0c, 0x71, 0x1d, 0x7e, 0xa8, 0x09,
		0x3b, 0xd4, 0x84, 0x1b, 0x6a, 0xc2, 0x8c, 0x6a, 0x63, 0xae, 0x0f, 0x51, 0xe2, 0x46, 0xed, 0x67,
		0x8c, 0xbc, 0x7b, 0x5e, 0x6c, 0xf6, 0x4a, 0x6e, 0xd9, 0xb1, 0x35, 0xd8, 0x31, 0xd8, 0x31, 0xd8,
		0x31, 0xd8, 0x31, 0xd8, 0x31, 0xed, 0xee, 0x2c, 0xbf, 0x40, 0xdf, 0x77, 0x04, 0x99, 0x6b, 0x8e,
		0x6e, 0xca, 0x82, 0xdd, 0x5f, 0xc9, 0xb1, 0x6a, 0xb8, 0x4d, 0xfa, 0xa8, 0x71, 0x6f, 0x9a, 0xdc,
		0x9c, 0x4e, 0x77, 0xa7, 0xcd, 0xed, 0xa9, 0x75, 0x7f, 0x6a, 0xdd, 0xa0, 0x5a, 0x77, 0xe8, 0xd6,
		0x2d, 0x3a, 0x76, 0x8f, 0xf9, 0x5b, 0xf9, 0xa4, 0xc1, 0x41, 0x79, 0xba, 0x66, 0x0f, 0xcf, 0x44,
		0x5f, 0xdb, 0x3a, 0xf6, 0x0d, 0x8d, 0x67, 0x11, 0x0f, 0x07, 0x0b, 0xdf, 0x3b, 0xf3, 0x17, 0x5a,
		0xa5, 0xe4, 0x50, 0x75, 0xfc, 0x61, 0xfa, 0x45, 0x0d, 0xb0, 0x73, 0x95, 0x0d, 0x52, 0xc4, 0x55,
		0x00, 0xea, 0x00, 0x75, 0x80, 0x3a, 0x40, 0x1d, 0xa0, 0xce, 0x3d, 0xf7, 0x31, 0xcd, 0x81, 0xb4,
		0x8d, 0xa2, 0x06, 0x93, 0x29, 0x2a, 0xa4, 0x7f, 0x33, 0x25, 0x8a, 0xa4, 0x83, 0x11, 0x51, 0xe7,
		0x44, 0x35, 0x3a, 0x53, 0xdd, 0x4e, 0x55, 0xab, 0x73, 0x55, 0xef, 0x64, 0xd5, 0x3b, 0x5b, 0xf5,
		0x4e, 0x57, 0x87, 0xf3, 0x55, 0xe2, 0x84, 0xf5, 0x31, 0x2c, 0x33, 0x76, 0xab, 0x17, 0xc5, 0xd9,
		0xda, 0x96, 0x26, 0x9b, 0x35, 0xf2, 0x82, 0x5b, 0x8a, 0xae, 0xa4, 0xa3, 0x4f, 0xf8, 0xe1, 0x97,
		0x2e, 0x9b, 0xee, 0x69, 0xeb, 0x23, 0x9e, 0xb9, 0x9c, 0xb2, 0xbe, 0xe2, 0x99, 0xfb, 0x69, 0xed,
		0xc9, 0x9c, 0xb5, 0x1d, 0xda, 0x7a, 0x34, 0x95, 0x9a, 0xfd, 0x69, 0xd5, 0x08, 0x6f, 0xf4, 0xab,
		0xc6, 0xd6, 0xe6, 0xe6, 0xc6, 0x26, 0xea, 0x51, 0x75, 0xf5, 0x78, 0xc5, 0x6d, 0xe6, 0x7d, 0x9d,
		0x82, 0x59, 0x27, 0xc4, 0xd8, 0xdc, 0x64, 0x49, 0x18, 0xf4, 0xe2, 0x34, 0x0b, 0xcf, 0xda, 0xca,
		0xd0, 0x6b, 0x62, 0xce, 0x4d, 0x62, 0xe2, 0x26, 0xa0, 0x6c, 0x01, 0xa8, 0x7f, 0xfc, 0xc7, 0xef,
		0x5e, 0x6d, 0x7d, 0x7b, 0xcd, 0x0b, 0xbc, 0x5d, 0xef, 0x7d, 0x27, 0x69, 0x99, 0xc4, 0xfb, 0x33,
		0xcc, 0xcc, 0xb7, 0xf0, 0xd6, 0x1b, 0xb7, 0xdf, 0x78, 0x35, 0xef, 0xf5, 0xfb, 0x3f, 0x8f, 0x82,
		0xda, 0x1b, 0x5f, 0xa1, 0x0f, 0x55, 0x4a, 0x67, 0xcc, 0xa3, 0x35, 0xee, 0x25, 0x54, 0xa9, 0x97,
		0xd2, 0xce, 0x70, 0xcc, 0x65, 0x3a, 0x16, 0x14, 0x61, 0x3c, 0x2f, 0x9e, 0xb7, 0x54, 0xcf, 0x43,
		0xc3, 0x00, 0x25, 0x3d, 0x35, 0xab, 0x33, 0x1e, 0x4c, 0x4b, 0xed, 0xea, 0xbd, 0xc1, 0x27, 0x63,
		0xf3, 0xc3, 0x0b, 0x91, 0xb1, 0xa9, 0x08, 0xc4, 0x21, 0x63, 0x53, 0x28, 0x8e, 0x21, 0x63, 0xa3,
		0x3d, 0xfa, 0xd5, 0x9d, 0xb1, 0xf9, 0x4d, 0x61, 0xc2, 0x66, 0x93, 0x84, 0x4d, 0xf9, 0xb8, 0x01,
		0x12, 0x36, 0x4b, 0xdc, 0x0f, 0x46, 0xba, 0x62, 0x56, 0x7f, 0x5a, 0x35, 0xca, 0x90, 0xb0, 0x59,
		0xdf, 0x24, 0x5d, 0x53, 0x79, 0xe5, 0x80, 0x34, 0x9a, 0xfb, 0x45, 0xba, 0x66, 0x52, 0x8c, 0x49,
		0xd7, 0x54, 0x04, 0x92, 0x91, 0xae, 0x71, 0xc0, 0x69, 0x90, 0xae, 0xb1, 0x41, 0x73, 0x90, 0xae,
		0xc1, 0xf3, 0x56, 0xf9, 0x79, 0xa8, 0x49, 0xd7, 0x5c, 0x8f, 0xc2, 0x01, 0x8d, 0xf9, 0x9a, 0xe1,
		0xdd, 0x48, 0xd8, 0xcc, 0xbb, 0x0e, 0x09, 0x9b, 0x05, 0xa4, 0x89, 0x84, 0xcd, 0x33, 0xc1, 0x0d,
		0x09, 0x9b, 0xa5, 0x91, 0x0c, 0x09, 0x1b, 0xed, 0xf1, 0xaf, 0xde, 0x84, 0xcd, 0x59, 0x14, 0x87,
		0xc9, 0xad, 0xc2, 0x8c, 0xcd, 0x8e, 0xa2, 0x2b, 0xed, 0x9b, 0xf8, 0x62, 0x30, 0xdc, 0x04, 0x7e,
		0xe0, 0x27, 0x4f, 0xaa, 0x14, 0x29, 0x9b, 0x35, 0x58, 0xe9, 0x25, 0x8d, 0x07, 0x29, 0x9b, 0x67,
		0xa8, 0x06, 0x3d, 0x36, 0xa8, 0x07, 0xe0, 0x4c, 0xf3, 0x6d, 0x48, 0xda, 0x4c, 0x8a, 0x31, 0x49,
		0x9b, 0x8a, 0x80, 0x32, 0x92, 0x36, 0x0e, 0x78, 0x0d, 0x92, 0x36, 0x36, 0xa8, 0x0e, 0x92, 0x36,
		0x78, 0xde, 0x2a, 0x3f, 0x0f, 0x0d, 0x49, 0x1b, 0x73, 0x93, 0x99, 0xb8, 0x65, 0x5a, 0xfa, 0x52,
		0x36, 0xf9, 0xcd, 0x48, 0xd8, 0xcc, 0xbb, 0x0e, 0x09, 0x9b, 0x05, 0x64, 0x89, 0x84, 0xcd, 0x33,
		0x81, 0x0d, 0x09, 0x9b, 0xa5, 0x51, 0x0c, 0x09, 0x1b, 0xed, 0xb1, 0xaf, 0xe2, 0x84, 0x8d, 0xf3,
		0x55, 0xc6, 0x8f, 0xb9, 0x41, 0x47, 0xab, 0x8d, 0xa1, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f,
		0x00, 0x1c, 0xd0, 0x27, 0xd0, 0x27, 0xd0, 0x27, 0xae, 0xf5, 0xad, 0xd3, 0xcd, 0xa2, 0x4e, 0x1c,
		0xb6, 0xf5, 0xd1, 0x27, 0xf9, 0xcd, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f,
		0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0xa0, 0x4f, 0x00, 0x1c,
		0xd0, 0x27, 0xd0, 0x27, 0xd0, 0x27, 0x2e, 0xf5, 0xad, 0x1b, 0x26, 0x59, 0xa4, 0x91, 0x3d, 0x19,
		0x5f, 0x0c, 0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04,
		0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04, 0xf2, 0x04, 0xc0, 0x01, 0x79, 0x02, 0x79, 0x02,
		0x79, 0xe2, 0x52, 0xdf, 0xb2, 0x24, 0x8c, 0xd3, 0x68, 0xd4, 0x7b, 0xae, 0x8c, 0x3f, 0x99, 0xb8,
		0x1b, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x14,
		0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0x0a, 0x80, 0x03, 0x0a, 0x05, 0x0a, 0xe5, 0x05,
		0x53, 0x28, 0xaf, 0x5e, 0x30, 0xf2, 0xf0, 0x77, 0xe3, 0xb8, 0x93, 0x85, 0x59, 0xd4, 0xd1, 0x31,
		0x42, 0xd5, 0x4f, 0x9b, 0x97, 0xe6, 0x2a, 0xec, 0x86, 0x83, 0xc9, 0xb7, 0xfe, 0x4a, 0xa7, 0x6b,
		0xe2, 0xe6, 0x80, 0xa2, 0x08, 0x62, 0x93, 0x7d, 0xeb, 0x24, 0x7f, 0x07, 0x51, 0x1f, 0x1d, 0xc5,
		0x4d, 0xb3, 0xf2, 0xf0, 0x07, 0xe9, 0xcc, 0x4f, 0x56, 0xba, 0x23, 0xfb, 0x94, 0xe6, 0xdf, 0xad,
		0x9c, 0x5d, 0x74, 0x57, 0x92, 0xe8, 0x6c, 0x25, 0x3c, 0x8f, 0x82, 0x34, 0x3c, 0x8f, 0xd2, 0xfc,
		0xbb, 0x95, 0xa8, 0x7b, 0x5d, 0x0b, 0xd2, 0x24, 0x33, 0x41, 0xb7, 0xd3, 0x8e, 0x9a, 0xb7, 0x2b,
		0xed, 0x61, 0xd0, 0xb5, 0x92, 0x74, 0x7a, 0x99, 0x49, 0x87, 0x7f, 0xac, 0xf4, 0xe2, 0xbf, 0xe3,
		0xce, 0xb7, 0x38, 0x08, 0xb3, 0x2c, 0x89, 0xce, 0x06, 0xff, 0x61, 0xe6, 0x47, 0x2b, 0x69, 0x16,
		0x66, 0x1a, 0xdc, 0x90, 0x9f, 0x66, 0x49, 0xaf, 0x99, 0xc5, 0x23, 0x38, 0x72, 0x98, 0x3f, 0xce,
		0x83, 0xe1, 0xa3, 0xaa, 0x8f, 0x9e, 0x54, 0xe3, 0xc1, 0xff, 0x4e, 0x1f, 0xfe, 0xa0, 0x31, 0x36,
		0xf5, 0x69, 0xfe, 0x5d, 0xe3, 0xfd, 0x45, 0xb7, 0x71, 0x1c, 0x9d, 0x35, 0x76, 0xcf, 0xa3, 0x93,
		0xfe, 0x93, 0x1c, 0x7f, 0xd3, 0xa8, 0x77, 0xaf, 0x6b, 0x27, 0x49, 0x66, 0x8e, 0x06, 0x8f, 0xb1,
		0xb1, 0xdf, 0x69, 0xf6, 0xff, 0xda, 0xf1, 0xe0, 0x29, 0x0e, 0xff, 0x68, 0x7c, 0x1e, 0x3e, 0xb2,
		0xdd, 0xfc, 0x21, 0xce, 0xfc, 0xa4, 0x71, 0x32, 0x78, 0x86, 0xaf, 0x5e, 0xa6, 0x6d, 0x70, 0x73,
		0xb2, 0x23, 0x6b, 0xd4, 0x07, 0x71, 0x1a, 0xb6, 0x99, 0xfb, 0xfb, 0x51, 0x9a, 0xf5, 0x05, 0xd0,
		0xa9, 0x2d, 0xf4, 0x3f, 0x46, 0xf1, 0x5e, 0xdb, 0xf4, 0xf1, 0x97, 0xe3, 0x81, 0xb3, 0xfe, 0xc7,
		0xf0, 0x66, 0xe2, 0x26, 0x6b, 0xbf, 0xd5, 0x6a, 0x5b, 0xdb, 0xb5, 0xda, 0xea, 0xf6, 0xc6, 0xf6,
		0xea, 0xce, 0xe6, 0xe6, 0xda, 0xd6, 0x9a, 0xc3, 0xb1, 0xbd, 0xfe, 0x61, 0x1f, 0x8a, 0x9a, 0xd6,
		0xfb, 0xbe, 0xe8, 0xc4, 0xbd, 0x76, 0x5b, 0xc3, 0x55, 0x3e, 0xa7, 0x26, 0x71, 0x3a, 0x81, 0xd7,
		0x95, 0x06, 0x2b, 0xc1, 0x11, 0x15, 0xc1, 0x0f, 0x0e, 0x91, 0x43, 0x89, 0x11, 0x83, 0x1b, 0xac,
		0x20, 0xef, 0xa9, 0x65, 0x4f, 0x14, 0xb6, 0x28, 0xae, 0x2d, 0x49, 0x29, 0x2d, 0x88, 0x03, 0x7b,
		0x51, 0x1e, 0x3b, 0x21, 0x6b, 0x16, 0xe4, 0x94, 0x53, 0xe6, 0x24, 0x21, 0xf5, 0x1f, 0x87, 0x00,
		0x7d, 0xbd, 0x0b, 0xa2, 0x96, 0x67, 0xe2, 0x56, 0xb7, 0x13, 0xc5, 0x99, 0xd7, 0xec, 0xb4, 0x3b,
		0x89, 0x90, 0x7c, 0xbb, 0xc1, 0xff, 0xee, 0xf0, 0xbe, 0x2a, 0x7c, 0xef, 0x10, 0xcf, 0x3b, 0xc4,
		0xef, 0x52, 0xea, 0xe5, 0xc8, 0xab, 0xea, 0xf7, 0xa6, 0x82, 0xae, 0x53, 0xab, 0xcb, 0x94, 0x71,
		0x90, 0xf6, 0xdd, 0x95, 0xdd, 0x13, 0x2c, 0x6b, 0xaa, 0xb4, 0x86, 0x6a, 0xd6, 0x4c, 0x01, 0x9d,
		0xd4, 0xa7, 0x8b, 0x76, 0xb5, 0xd0, 0x9e, 0x6e, 0xd8, 0xf9, 0xcd, 0x96, 0xb4, 0x4d, 0x4a, 0xcb,
		0x54, 0x6a, 0x97, 0x45, 0xb5, 0x52, 0xa4, 0x4e, 0x76, 0xf4, 0xa8, 0x78, 0x29, 0xb7, 0x20, 0xe1,
		0x7e, 0x6c, 0xa2, 0x8b, 0xcb, 0xb3, 0x4e, 0x92, 0x5a, 0x13, 0xee, 0xbc, 0xb2, 0xe9, 0xfe, 0x28,
		0x4b, 0x9a, 0x3a, 0xae, 0x10, 0xb4, 0xf4, 0xeb, 0x6d, 0x17, 0xbe, 0x4b, 0x14, 0xb2, 0xcb, 0x16,
		0xa6, 0x4b, 0x95, 0x82, 0x89, 0x17, 0x8e, 0x8b, 0xd7, 0x65, 0x89, 0x17, 0x76, 0x97, 0xcb, 0x47,
		0x7f, 0x88, 0xec, 0x12, 0x30, 0xb9, 0xed, 0xb2, 0x2f, 0xca, 0x0f, 0xad, 0xa5, 0x6d, 0x49, 0xb6,
		0x6b, 0x34, 0xc5, 0x8c, 0xa7, 0xa4, 0x11, 0x75, 0x63, 0x4c, 0xa5, 0x8d, 0xaa, 0x33, 0xe3, 0xea,
		0xcc, 0xc8, 0x3a, 0x33, 0xb6, 0xd5, 0xa0, 0x23, 0x6c, 0x1b, 0xe1, 0xfc, 0xa0, 0xb0, 0xf5, 0xdf,
		0xc1, 0x3b, 0x89, 0xe2, 0xa0, 0xdb, 0x49, 0x33, 0x39, 0x4d, 0x18, 0xeb, 0xfb, 0xc3, 0x0b, 0x48,
		0x25, 0x3c, 0x44, 0x4c, 0xb5, 0xb8, 0xc9, 0x76, 0x61, 0xba, 0xdd, 0x9a, 0x70, 0x57, 0xa6, 0xdc,
		0xb9, 0x49, 0x77, 0x6e, 0xda, 0x9d, 0x9b, 0x78, 0x19, 0x53, 0x2f, 0x64, 0xf2, 0xc5, 0x4d, 0x7f,
		0x7e, 0xe0, 0x88, 0xf5, 0x15, 0x57, 0x9c, 0xb1, 0xb9, 0x10, 0x63, 0x9d, 0x1d, 0x3a, 0x00, 0x67,
		0x8e, 0xc0, 0xa5, 0x43, 0xd0, 0xe1, 0x18, 0x5c, 0x3b, 0x08, 0x35, 0x8e, 0x42, 0x8d, 0xc3, 0x50,
		0xe3, 0x38, 0x64, 0x1d, 0x88, 0xb0, 0x23, 0x71, 0xe6, 0x50, 0xa6, 0x1d, 0x8b, 0x3b, 0x7d, 0x9b,
		0xf2, 0x2f, 0xae, 0x74, 0xcd, 0x8d, 0x9b, 0x71, 0xee, 0x6e, 0x34, 0xb8, 0x1d, 0x5d, 0xee, 0x47,
		0x8b, 0x1b, 0x52, 0xe7, 0x8e, 0xd4, 0xb9, 0x25, 0x75, 0xee, 0xc9, 0x8d, 0x9b, 0x72, 0xe4, 0xae,
		0x9c, 0xbb, 0xad, 0xfc, 0x02, 0xc3, 0xda, 0x57, 0xe7, 0x7a, 0x3a, 0xb6, 0x5e, 0x92, 0xa5, 0xb8,
		0x3f, 0x73, 0x67, 0x8e, 0xc7, 0x95, 0xa9, 0x99, 0x9b, 0xa6, 0x69, 0x5e, 0x9a, 0xce, 0x39, 0x69,
		0xda, 0x26, 0x98, 0xa8, 0x9d, 0x8b, 0xa6, 0x76, 0x3c, 0x89, 0xda, 0x39, 0x68, 0x2f, 0x7b, 0x74,
		0x84, 0x9a, 0x79, 0x67, 0xb9, 0xdd, 0x69, 0x9b, 0xf0, 0x3c, 0x31, 0xe7, 0x1a, 0x8c, 0xce, 0x38,
		0xea, 0xda, 0x56, 0x70, 0x97, 0xa3, 0x51, 0x15, 0xe2, 0xdb, 0xb7, 0xc3, 0xb9, 0x14, 0x2b, 0x43,
		0x47, 0xfe, 0x52, 0x27, 0x2b, 0x38, 0x8c, 0xbc, 0xc6, 0x5d, 0x4d, 0x7a, 0x30, 0x5d, 0x7e, 0x23,
		0x60, 0x1d, 0xb0, 0x0e, 0x58, 0x07, 0xac, 0x03, 0xd6, 0x01, 0xeb, 0x80, 0x75, 0xa5, 0x84, 0x75,
		0xb9, 0x2f, 0x07, 0xd9, 0x89, 0xbf, 0x8c, 0x51, 0xdf, 0xba, 0x1e, 0x60, 0x37, 0xbe, 0x10, 0xb8,
		0x0e, 0x5c, 0x07, 0xae, 0x03, 0xd7, 0x81, 0xeb, 0xc0, 0x75, 0xe0, 0xba, 0x52, 0xe2, 0xba, 0xb1,
		0x2b, 0x07, 0xd6, 0x89, 0xbf, 0x8b, 0xe1, 0x1c, 0x5f, 0x35, 0xa0, 0x4e, 0xc3, 0x58, 0x61, 0xc7,
		0x05, 0x45, 0x40, 0x3a, 0x20, 0x1d, 0x90, 0x0e, 0x48, 0x07, 0xa4, 0x73, 0x5f, 0xa0, 0x94, 0x5f,
		0x64, 0x30, 0xb8, 0x3b, 0x8a, 0x5b, 0xe6, 0x46, 0xdf, 0x0a, 0xc8, 0x89, 0xbb, 0xb1, 0x02, 0x52,
		0xb3, 0x23, 0xd5, 0xe8, 0x50, 0x75, 0x3b, 0x56, 0xad, 0x0e, 0x56, 0xbd, 0xa3, 0x55, 0xef, 0x70,
		0xd5, 0x3b, 0x5e, 0x1d, 0x0e, 0x58, 0x89, 0x23, 0xd6, 0xc7, 0xb1, 0x28, 0xe6, 0x5a, 0x34, 0x72,
		0x2e, 0xf3, 0xb8, 0x97, 0x1f, 0xfc, 0xdf, 0x00, 0x52, 0xa4, 0x26, 0x4b, 0xf3, 0xef, 0x46, 0x4c,
		0xcd, 0x10, 0x66, 0xb0, 0x58, 0x4b, 0x8b, 0x52, 0xfa, 0x67, 0x26, 0xcd, 0x82, 0xd1, 0x14, 0x3e,
		0x65, 0xb8, 0xf4, 0xfe, 0x6a, 0xc0, 0x52, 0x60, 0x29, 0xb0, 0x14, 0x58, 0x0a, 0x2c, 0x05, 0x96,
		0xbe, 0x30, 0x58, 0xca, 0x66, 0x72, 0x60, 0xdc, 0x13, 0xde, 0x89, 0x8e, 0x46, 0xc8, 0x19, 0xe9,
		0xd5, 0xd0, 0x10, 0x09, 0x7c, 0x03, 0xbe, 0x01, 0xdf, 0x80, 0x6f, 0xc0, 0x37, 0xe0, 0x9b, 0xb8,
		0xdd, 0xea, 0x45, 0x71, 0xb6, 0xb1, 0xae, 0x10, 0xbd, 0x69, 0xe2, 0x14, 0x8f, 0xc3, 0xf8, 0xa2,
		0xff, 0xb4, 0xbe, 0xaa, 0xb2, 0x01, 0xba, 0x6c, 0xba, 0x37, 0xda, 0x83, 0xa6, 0xce, 0xd9, 0xe4,
		0x97, 0xfb, 0x12, 0xb6, 0x7b, 0x46, 0x0f, 0x9c, 0x99, 0xb9, 0xdf, 0x1f, 0x49, 0xd8, 0xcc, 0xa2,
		0x4e, 0xfc, 0x21, 0xba, 0x88, 0x5c, 0xef, 0x8d, 0xfe, 0xb1, 0xed, 0x30, 0x17, 0x61, 0x16, 0x5d,
		0x1b, 0xa7, 0x6b, 0x92, 0x4b, 0x60, 0xf6, 0xa7, 0x55, 0x23, 0xbc, 0xd1, 0xaf, 0x1a, 0xb5, 0xf5,
		0x9d, 0xda, 0xce, 0xd6, 0xf6, 0xfa, 0xce, 0x26, 0x3a, 0x52, 0x75, 0x1d, 0x79, 0xc5, 0x6d, 0xe6,
		0x7d, 0x9d, 0x42, 0x1a, 0x69, 0xb1, 0xa1, 0x7e, 0xb3, 0x73, 0x75, 0xd5, 0x8b, 0xa3, 0xec, 0x56,
		0x6b, 0x65, 0xda, 0xc3, 0x0b, 0x42, 0x24, 0xcd, 0xbb, 0x0e, 0x44, 0xd2, 0x02, 0x22, 0x05, 0x91,
		0xb4, 0x90, 0xa4, 0x43, 0x24, 0x2d, 0x79, 0x41, 0x88, 0xa4, 0x12, 0x45, 0x14, 0x94, 0xa7, 0x3d,
		0xc3, 0x0d, 0x96, 0xb0, 0x3c, 0x6d, 0x8c, 0x2b, 0x22, 0x93, 0xe6, 0xdf, 0xdf, 0x52, 0xa1, 0xa6,
		0x13, 0xa5, 0xaa, 0x19, 0x09, 0x36, 0xa3, 0x93, 0x4a, 0x46, 0x83, 0x81, 0x4b, 0xc1, 0xa5, 0xe0,
		0x52, 0x70, 0x29, 0xb8, 0x14, 0x5c, 0x2a, 0x6e, 0xb7, 0xa2, 0x6e, 0x10, 0xb6, 0x5a, 0x89, 0x49,
		0x53, 0x8d, 0xd0, 0x74, 0x47, 0xd1, 0x9d, 0x46, 0xef, 0x90, 0x24, 0xe7, 0x93, 0x25, 0xeb, 0xba,
		0xa6, 0x50, 0xb6, 0x66, 0x64, 0xec, 0x37, 0x85, 0x77, 0x3b, 0x0a, 0xb3, 0xcc, 0x24, 0xb1, 0x3a,
		0x71, 0xcb, 0x2f, 0xf8, 0xfa, 0xeb, 0x6a, 0xb0, 0x73, 0xfa, 0xfd, 0xeb, 0x5a, 0xb0, 0x73, 0x3a,
		0xfc, 0x76, 0x6d, 0xf0, 0xc7, 0x3f, 0xeb, 0x77, 0xdf, 0xd7, 0xbf, 0xae, 0x06, 0xb5, 0xd1, 0x4f,
		0xd7, 0x37, 0xbf, 0xae, 0x06, 0x9b, 0xa7, 0x6f, 0x5e, 0xff, 0xf5, 0xd7, 0xdb, 0x45, 0xff, 0xcd,
		0x9b, 0x7f, 0x36, 0xee, 0x7c, 0x75, 0x1f, 0xff, 0x54, 0xa3, 0xb8, 0x1c, 0x9e, 0xd4, 0xff, 0xad,
		0x5e, 0x66, 0xfe, 0xf3, 0x5a, 0x4a, 0x6a, 0xde, 0xfc, 0x8f, 0x42, 0xb9, 0xd1, 0x95, 0x50, 0xfc,
		0x15, 0x37, 0xf6, 0x64, 0x37, 0xb6, 0x85, 0x1b, 0xab, 0xaa, 0x1b, 0x1b, 0x58, 0x97, 0x30, 0x38,
		0xdf, 0x0d, 0xfe, 0x38, 0xfd, 0x67, 0xed, 0xd7, 0xda, 0xdd, 0xbb, 0x37, 0xff, 0x6c, 0xdf, 0x3d,
		0xfc, 0xe1, 0xf7, 0x79, 0x7f, 0x6d, 0xed, 0xd7, 0xed, 0xbb, 0x77, 0x8f, 0xfc, 0x97, 0xad, 0xbb,
		0x77, 0x4f, 0xfc, 0x1d, 0x9b, 0x77, 0xaf, 0x67, 0xfe, 0x6a, 0xff, 0xe7, 0xeb, 0x8f, 0xfd, 0x83,
		0xda, 0x23, 0xff, 0x60, 0xe3, 0xb1, 0x7f, 0xb0, 0xf1, 0xc8, 0x3f, 0x78, 0xf4, 0x4a, 0xeb, 0x8f,
		0xfc, 0x83, 0xcd, 0xbb, 0xef, 0x33, 0x7f, 0xff, 0xf5, 0xfc, 0xbf, 0xba, 0x75, 0xf7, 0xe6, 0xfb,
		0x63, 0xff, 0x6d, 0xfb, 0xee, 0xfb, 0xbb, 0x37, 0x6f, 0x70, 0xec, 0x95, 0x73, 0xec, 0xa8, 0x91,
		0xbc, 0x1a, 0x01, 0x74, 0x4a, 0xc1, 0x43, 0x79, 0x54, 0x4e, 0x69, 0x82, 0x9e, 0xbe, 0xb9, 0xc9,
		0x02, 0xf5, 0xd5, 0x53, 0xf3, 0x2e, 0x49, 0xa6, 0x6a, 0xde, 0x75, 0xc8, 0x54, 0x2d, 0x20, 0x56,
		0x64, 0xaa, 0x16, 0x92, 0x74, 0x32, 0x55, 0x4b, 0x5e, 0x90, 0x4c, 0x55, 0x89, 0x08, 0x19, 0x2a,
		0xa8, 0x9e, 0xc3, 0xbd, 0x94, 0xaf, 0x82, 0x6a, 0x12, 0x5b, 0x44, 0x26, 0x9d, 0xfa, 0xdf, 0x54,
		0x52, 0x29, 0x45, 0xad, 0x51, 0x7c, 0x1d, 0xb6, 0xa3, 0x56, 0x90, 0x98, 0x30, 0xed, 0xc4, 0xfa,
		0x00, 0xeb, 0x83, 0xfb, 0x81, 0x55, 0xc1, 0xaa, 0x60, 0x55, 0xb0, 0x2a, 0x58, 0x15, 0xac, 0xfa,
		0xc2, 0xb0, 0x6a, 0xd4, 0x32, 0x71, 0x16, 0x65, 0xb7, 0x4a, 0xf1, 0xaa, 0xa2, 0xf6, 0x65, 0xbf,
		0x3e, 0x7a, 0x54, 0xef, 0xc3, 0x54, 0xa1, 0x49, 0x1d, 0xbf, 0xd0, 0xfa, 0xc1, 0x97, 0xdd, 0xfd,
		0xfa, 0x87, 0xc6, 0xf1, 0xe1, 0xe7, 0x4f, 0x7b, 0x8d, 0xe3, 0xbd, 0xdd, 0x93, 0xc3, 0x03, 0x6d,
		0xd6, 0x75, 0xd0, 0xa5, 0x9e, 0xaa, 0x4c, 0x13, 0x29, 0xed, 0xeb, 0x7f, 0xf8, 0x76, 0x77, 0x4f,
		0x1a, 0xfb, 0x87, 0x87, 0x47, 0x3e, 0x13, 0x1b, 0x2a, 0xf3, 0x4a, 0x7f, 0xdf, 0xff, 0x7c, 0xf2,
		0x69, 0xef, 0x98, 0xf7, 0x5a, 0xb5, 0xf7, 0x7a, 0x78, 0xf0, 0xc7, 0xde, 0x07, 0xde, 0x68, 0x75,
		0xde, 0xe8, 0xe1, 0x71, 0xfd, 0xcf, 0xfa, 0xc1, 0xee, 0xa7, 0xc3, 0x63, 0x9f, 0x69, 0x20, 0x3f,
		0xfc, 0x3a, 0x25, 0x1e, 0x51, 0x76, 0x0b, 0x0d, 0xec, 0x60, 0x3b, 0x4c, 0xb3, 0xe0, 0xaa, 0xd3,
		0x8a, 0xce, 0x23, 0xd3, 0xd2, 0x47, 0x0e, 0x4e, 0x5f, 0x0f, 0x6e, 0x70, 0xde, 0x75, 0xe0, 0x06,
		0x17, 0x10, 0x28, 0xb8, 0xc1, 0x85, 0x24, 0x1d, 0x6e, 0x70, 0xc9, 0x0b, 0xc2, 0x0d, 0x96, 0x08,
		0xff, 0x2a, 0xe6, 0x06, 0xb3, 0xe8, 0xca, 0x64, 0x51, 0xf3, 0xef, 0x74, 0xab, 0xa6, 0x90, 0x1b,
		0x54, 0xd4, 0x46, 0xe0, 0x7f, 0x8e, 0x87, 0x43, 0x0c, 0xfd, 0x38, 0x8c, 0x3b, 0xa9, 0x69, 0x76,
		0xe2, 0x96, 0xaa, 0x2e, 0x55, 0xe6, 0xde, 0x3e, 0xf1, 0x41, 0x31, 0xf7, 0x76, 0x89, 0xfb, 0x31,
		0xd3, 0xb3, 0xc2, 0xdc, 0x4c, 0x39, 0xe6, 0xde, 0xae, 0xfd, 0x56, 0xab, 0x6d, 0x6d, 0xd7, 0x6a,
		0xab, 0xdb, 0x1b, 0xdb, 0xab, 0x3b, 0x9b, 0x9b, 0x6b, 0x5b, 0x6b, 0x4c, 0xc0, 0xad, 0xbc, 0xb6,
		0xd0, 0xc7, 0x31, 0xf7, 0x8b, 0x3e, 0x0e, 0x35, 0xd6, 0xd4, 0xef, 0x86, 0xd9, 0x65, 0x10, 0x29,
		0x64, 0xbb, 0xc6, 0x17, 0x53, 0x12, 0x0d, 0x7d, 0x30, 0xe7, 0x61, 0xaf, 0x9d, 0xa9, 0xc2, 0xaa,
		0xfe, 0xaa, 0x8e, 0xd8, 0xf9, 0x14, 0x2e, 0x72, 0xde, 0x75, 0xe0, 0x22, 0x17, 0x50, 0x77, 0xb8,
		0xc8, 0x85, 0x24, 0x1d, 0x2e, 0x72, 0xc9, 0x0b, 0xc2, 0x45, 0x96, 0x28, 0xde, 0x63, 0xbd, 0xd5,
		0xe2, 0x5e, 0x90, 0xf5, 0x56, 0x3f, 0xfb, 0x82, 0xe6, 0x7b, 0x1e, 0x97, 0x01, 0xcd, 0x57, 0x79,
		0xe2, 0x02, 0x9a, 0xef, 0x79, 0xaa, 0xc1, 0x7a, 0xab, 0x97, 0xa3, 0x23, 0x90, 0x7b, 0xf3, 0xc9,
		0x00, 0xc8, 0x3d, 0x2d, 0x36, 0xd4, 0x1f, 0x35, 0x93, 0x76, 0x7a, 0x99, 0xd1, 0x47, 0xf0, 0x4d,
		0x5e, 0x0e, 0x02, 0x69, 0xde, 0x75, 0x20, 0x90, 0x16, 0x10, 0x27, 0x08, 0xa4, 0x85, 0x24, 0x1d,
		0x02, 0x69, 0xc9, 0x0b, 0x42, 0x20, 0x95, 0x28, 0x92, 0x50, 0x4c, 0x20, 0x9d, 0x75, 0x3a, 0x6d,
		0x13, 0xc6, 0x1a, 0x9b, 0x5c, 0xd7, 0x80, 0x72, 0x0a, 0x6e, 0xe0, 0x58, 0x85, 0xfc, 0xdd, 0x38,
		0xee, 0x64, 0x61, 0x3f, 0x68, 0x54, 0xa1, 0x40, 0x7e, 0xda, 0xbc, 0x34, 0x57, 0x61, 0x77, 0x34,
		0xa4, 0x67, 0xa5, 0xd3, 0x35, 0x71, 0x73, 0x00, 0x94, 0x82, 0xd8, 0x64, 0xdf, 0x3a, 0xc9, 0xdf,
		0x41, 0x14, 0xa7, 0x59, 0x18, 0x37, 0xcd, 0xca, 0xc3, 0x1f, 0xa4, 0x33, 0x3f, 0x59, 0xe9, 0x26,
		0x9d, 0xac, 0xd3, 0xec, 0xb4, 0xd3, 0xfc, 0xbb, 0x95, 0xb3, 0x8b, 0xee, 0x4a, 0x12, 0x9d, 0xad,
		0x84, 0xe7, 0x51, 0x90, 0x86, 0xe7, 0x51, 0x9a, 0x7f, 0xb7, 0x32, 0xd8, 0xc8, 0x90, 0x26, 0x99,
		0x09, 0xba, 0x9d, 0x76, 0xd4, 0xbc, 0x5d, 0x89, 0x4d, 0x74, 0x71, 0x79, 0xd6, 0x49, 0xd2, 0xfc,
		0xbb, 0x95, 0xb0, 0xf5, 0xdf, 0x81, 0x37, 0x88, 0xe2, 0xa0, 0xdb, 0x49, 0xb3, 0x95, 0x01, 0xc2,
		0x4d, 0x87, 0x7f, 0x0c, 0xe7, 0x02, 0x29, 0xd0, 0x75, 0x3f, 0xcd, 0x92, 0x5e, 0x33, 0x8b, 0x47,
		0x46, 0xe8, 0x30, 0x7f, 0x88, 0x07, 0xc3, 0x07, 0x54, 0x1f, 0x3d, 0x9f, 0xc6, 0x83, 0xff, 0x9d,
		0x3e, 0xfc, 0x41, 0xe3, 0x68, 0xfc, 0x00, 0xf3, 0xef, 0x1a, 0xef, 0x2f, 0xba, 0x8d, 0xe3, 0xe8,
		0xac, 0xb1, 0x7b, 0x1e, 0x9d, 0xf4, 0x9f, 0xdf, 0xf8, 0x9b, 0x46, 0xbd, 0x7b, 0x5d, 0x3b, 0x49,
		0x32, 0x73, 0x34, 0x78, 0x78, 0x8d, 0x83, 0xf1, 0xc3, 0xcb, 0xbf, 0x6b, 0xec, 0xb6, 0xfe, 0x7b,
		0x1c, 0x9d, 0xd5, 0xe3, 0xa3, 0x4e, 0x9a, 0x35, 0x8e, 0x07, 0x4f, 0x6e, 0xf8, 0x47, 0xe3, 0x64,
		0xf0, 0xe4, 0x5e, 0xbd, 0x4c, 0x3b, 0xe0, 0xd0, 0x06, 0xf8, 0xbd, 0xf8, 0xef, 0xb8, 0xf3, 0x2d,
		0x0e, 0xc2, 0x2c, 0x4b, 0xa2, 0xb3, 0xfe, 0x1b, 0x71, 0x6e, 0x07, 0xee, 0xb3, 0x2f, 0xb3, 0x77,
		0x73, 0x6c, 0x2d, 0xc7, 0xbe, 0xd3, 0xf1, 0x35, 0xb4, 0x84, 0x8e, 0x9a, 0x42, 0x46, 0x9d, 0xa1,
		0xa2, 0xb6, 0x10, 0x51, 0x6d, 0x68, 0xa8, 0x36, 0x24, 0x54, 0x1b, 0x0a, 0xbe, 0x6c, 0xdc, 0xfa,
		0x21, 0x4a, 0x74, 0x98, 0x9d, 0x19, 0x27, 0xa5, 0x8f, 0x8b, 0x9d, 0xbd, 0xa2, 0x2e, 0x46, 0x76,
		0x0d, 0x46, 0x56, 0xbd, 0x7b, 0xd5, 0xed, 0x66, 0xb5, 0xba, 0x5b, 0xf5, 0x6e, 0x57, 0xbd, 0xfb,
		0x55, 0xef, 0x86, 0xf5, 0x10, 0x59, 0x9e, 0x22, 0x46, 0x56, 0x8b, 0x7b, 0xce, 0x2f, 0xd4, 0xf7,
		0x7d, 0x41, 0xa6, 0x8d, 0x27, 0x9e, 0xb2, 0xa8, 0xf7, 0x57, 0x54, 0xa6, 0x7a, 0xba, 0x12, 0xa7,
		0x6a, 0xdd, 0xb5, 0x66, 0xb7, 0x5d, 0x0e, 0xf7, 0xad, 0xdd, 0x8d, 0x97, 0xc6, 0x9d, 0x97, 0xc6,
		0xad, 0x97, 0xc6, 0xbd, 0xeb, 0x72, 0xf3, 0xca, 0xdc, 0x7d, 0xfe, 0x16, 0x3f, 0x69, 0x74, 0xb0,
		0x9e, 0xee, 0x2d, 0x19, 0x33, 0xd1, 0xf0, 0xb6, 0xce, 0x4d, 0xa5, 0xe3, 0xad, 0x19, 0xc3, 0xe5,
		0x17, 0xf7, 0x60, 0x85, 0x4a, 0x49, 0xed, 0xaa, 0xe9, 0x0f, 0xf3, 0x92, 0x6a, 0x81, 0xaf, 0x96,
		0xb4, 0xe9, 0x5c, 0x6d, 0x04, 0xf4, 0x02, 0x7a, 0x01, 0xbd, 0x80, 0x5e, 0x40, 0x2f, 0x9e, 0x75,
		0xfe, 0x5b, 0xd4, 0xc6, 0x75, 0xe5, 0x17, 0x1b, 0x60, 0xb4, 0xb6, 0x51, 0xdc, 0x74, 0x38, 0x45,
		0x7d, 0xf5, 0x6f, 0xaa, 0x54, 0x51, 0x75, 0x32, 0x60, 0xea, 0x41, 0x41, 0x19, 0xc0, 0x41, 0xb9,
		0x40, 0x42, 0x59, 0xc0, 0x42, 0xe9, 0x40, 0x43, 0xe9, 0xc0, 0x43, 0xe9, 0x40, 0x84, 0x4e, 0x30,
		0xa1, 0x14, 0x54, 0xe4, 0x6f, 0x57, 0x2d, 0xa3, 0x36, 0x63, 0x37, 0x7b, 0x51, 0x9c, 0xad, 0x6d,
		0x69, 0xb6, 0x99, 0x23, 0x2f, 0xbe, 0xa5, 0xf8, 0x8a, 0x3a, 0x67, 0x69, 0x3c, 0xfc, 0xd2, 0xed,
		0x73, 0x3c, 0xed, 0xb3, 0x36, 0x66, 0x2e, 0xab, 0x7c, 0xf6, 0xc6, 0xcc, 0x7d, 0xcb, 0x32, 0x67,
		0x60, 0xd6, 0x56, 0x69, 0x9f, 0x3b, 0x50, 0x12, 0xb7, 0x34, 0xad, 0x6a, 0xe1, 0x4d, 0xf9, 0x54,
		0x6d, 0x6b, 0x73, 0x73, 0x63, 0x13, 0x75, 0x43, 0xdd, 0x4a, 0x80, 0x4d, 0xf5, 0xdf, 0xee, 0x14,
		0x4c, 0xbf, 0x80, 0x5a, 0x98, 0x9b, 0x2c, 0x09, 0x83, 0x5e, 0x9c, 0x66, 0xe1, 0x59, 0x5b, 0x39,
		0xba, 0x4f, 0xcc, 0xb9, 0x49, 0x4c, 0xdc, 0x04, 0x94, 0x16, 0x18, 0x2a, 0x1d, 0xff, 0xf1, 0xbb,
		0x57, 0x5b, 0xdf, 0x5e, 0xf3, 0x02, 0x6f, 0xd7, 0x7b, 0xdf, 0x49, 0x5a, 0x26, 0xf1, 0xfe, 0x0c,
		0x33, 0xf3, 0x2d, 0xbc, 0xf5, 0xc6, 0x7d, 0x96, 0x5e, 0xcd, 0x7b, 0xfd, 0xfe, 0xcf, 0xa3, 0xa0,
		0xf6, 0xc6, 0x2f, 0x01, 0x06, 0x28, 0x09, 0x1d, 0x75, 0x1f, 0x0a, 0xde, 0xd3, 0x52, 0xf7, 0x12,
		0x5e, 0x12, 0xaf, 0x5a, 0x36, 0x86, 0x2a, 0xbf, 0xf8, 0x24, 0x53, 0xb5, 0xa0, 0x0a, 0x80, 0x1c,
		0x40, 0x0e, 0x2f, 0xfa, 0x79, 0x69, 0x1c, 0xda, 0xa8, 0xb7, 0xa6, 0x7e, 0xc6, 0xe3, 0x6a, 0xad,
		0xad, 0xbf, 0x77, 0x48, 0x64, 0x18, 0x97, 0xba, 0x20, 0x19, 0xc6, 0x17, 0x0a, 0xe9, 0xc8, 0x30,
		0x8a, 0xe2, 0x36, 0x32, 0x8c, 0x55, 0x63, 0x23, 0xca, 0x95, 0x61, 0xfc, 0xad, 0x04, 0x09, 0xc6,
		0x4d, 0x12, 0x8c, 0xd5, 0xe7, 0x72, 0x48, 0x30, 0x5a, 0xbc, 0x2f, 0x19, 0x8f, 0x17, 0xee, 0x95,
		0xa6, 0x55, 0xad, 0x8c, 0x09, 0xc6, 0xf5, 0x4d, 0xd2, 0x8b, 0x28, 0x5b, 0x19, 0x80, 0xa9, 0xfe,
		0xdb, 0x91, 0x5e, 0x5c, 0x44, 0x2d, 0x48, 0x2f, 0xbe, 0x50, 0x48, 0x4a, 0x7a, 0x51, 0x4d, 0x20,
		0x48, 0x7a, 0x51, 0xfe, 0xe2, 0xa4, 0x17, 0xb9, 0x5d, 0x49, 0x90, 0x03, 0xe9, 0xc5, 0x27, 0xe8,
		0xf3, 0x20, 0x67, 0x77, 0x3d, 0x0a, 0xa7, 0xca, 0x90, 0x5f, 0x1c, 0xde, 0x95, 0x04, 0xe3, 0x73,
		0xae, 0x47, 0x82, 0xb1, 0x40, 0x69, 0x24, 0xc1, 0x68, 0x09, 0xcc, 0x91, 0x60, 0xb4, 0x8e, 0xdc,
		0x48, 0x30, 0x56, 0x8d, 0x8f, 0x28, 0x4f, 0x82, 0xf1, 0x2c, 0x8a, 0xc3, 0xe4, 0xb6, 0x04, 0x19,
		0xc6, 0x1d, 0xc5, 0x57, 0xdc, 0x37, 0xf1, 0xc5, 0x60, 0x58, 0x18, 0x7c, 0xce, 0x92, 0x4f, 0xb2,
		0x94, 0x29, 0xc6, 0x35, 0xb2, 0x1e, 0x96, 0x8d, 0x15, 0x29, 0x46, 0x0b, 0xaa, 0x46, 0x0f, 0x23,
		0xea, 0x56, 0x11, 0x75, 0x83, 0x2a, 0x7c, 0xd6, 0x17, 0x49, 0xc6, 0x45, 0xd4, 0x82, 0x24, 0xe3,
		0x0b, 0x05, 0xa5, 0x24, 0x19, 0xd5, 0xc4, 0x82, 0x24, 0x19, 0xe5, 0x2f, 0x4e, 0x92, 0x91, 0xdb,
		0x95, 0x04, 0x39, 0x90, 0x64, 0x7c, 0x1a, 0x8e, 0x31, 0x71, 0xcb, 0xb4, 0xf4, 0xa7, 0x18, 0xf3,
		0x9b, 0x92, 0x60, 0x7c, 0xce, 0xf5, 0x48, 0x30, 0x16, 0x28, 0x8b, 0x24, 0x18, 0x2d, 0x01, 0x39,
		0x12, 0x8c, 0xd6, 0x51, 0x1b, 0x09, 0xc6, 0xaa, 0x71, 0x11, 0x25, 0x4a, 0x30, 0x76, 0x3a, 0x6d,
		0x13, 0xc6, 0x25, 0xc8, 0x30, 0xae, 0xad, 0x21, 0x82, 0x8b, 0xc1, 0x48, 0xe8, 0xb0, 0xc2, 0xbf,
		0xa0, 0xc3, 0x40, 0x4f, 0xcf, 0x41, 0x51, 0xd0, 0x61, 0x2e, 0x80, 0x15, 0x74, 0x18, 0xb7, 0xf3,
		0xa0, 0xc3, 0xca, 0x8c, 0x65, 0xfc, 0x4e, 0x37, 0x8b, 0x3a, 0x71, 0xd8, 0xd6, 0x4f, 0x87, 0xe5,
		0x37, 0x85, 0x0e, 0x7b, 0xce, 0xf5, 0xa0, 0xc3, 0x8a, 0x94, 0x45, 0xe8, 0x30, 0x3b, 0x40, 0x0e,
		0x3a, 0xcc, 0x3a, 0x6a, 0x83, 0x0e, 0xab, 0x1a, 0x17, 0x01, 0x1d, 0x56, 0xbc, 0x1b, 0x87, 0x0e,
		0x5b, 0xe8, 0xa9, 0x41, 0x87, 0xd9, 0xf8, 0x82, 0x0e, 0x03, 0x3d, 0x3d, 0x07, 0x45, 0x41, 0x87,
		0xb9, 0x00, 0x56, 0xd0, 0x61, 0xdc, 0xce, 0x83, 0x0e, 0x2b, 0x33, 0x96, 0xf1, 0xbb, 0x61, 0x92,
		0x45, 0x65, 0x60, 0xc3, 0xc6, 0x17, 0x85, 0x0c, 0x7b, 0xce, 0xf5, 0x20, 0xc3, 0x0a, 0x14, 0x45,
		0xc8, 0x30, 0x4b, 0x30, 0x0e, 0x32, 0xcc, 0x3a, 0x66, 0x83, 0x0c, 0xab, 0x1a, 0x13, 0x01, 0x19,
		0x56, 0xbc, 0x1b, 0x87, 0x0c, 0x5b, 0xe8, 0xa9, 0x41, 0x86, 0xd9, 0xf8, 0x82, 0x0c, 0x03, 0x3d,
		0x3d, 0x07, 0x45, 0x41, 0x86, 0xb9, 0x00, 0x56, 0x90, 0x61, 0xdc, 0xce, 0x83, 0x0c, 0x2b, 0x33,
		0x96, 0xf1, 0xb3, 0x24, 0x8c, 0xd3, 0x68, 0x34, 0x0b, 0x45, 0x39, 0x1f, 0x36, 0x71, 0x57, 0x28,
		0xb1, 0xe7, 0x5c, 0x0f, 0x4a, 0xac, 0x40, 0x69, 0x84, 0x12, 0xb3, 0x04, 0xe6, 0xa0, 0xc4, 0xac,
		0x23, 0x37, 0x28, 0xb1, 0xaa, 0xf1, 0x11, 0x50, 0x62, 0xc5, 0xbb, 0x71, 0x28, 0xb1, 0x85, 0x9e,
		0x1a, 0x94, 0x98, 0x8d, 0x2f, 0x28, 0x31, 0xd0, 0xd3, 0x73, 0x50, 0x14, 0x94, 0x98, 0x0b, 0x60,
		0x05, 0x25, 0xc6, 0xed, 0x3c, 0x28, 0xb1, 0x92, 0xde, 0x48, 0x19, 0xb2, 0xf2, 0x77, 0xe3, 0xb8,
		0x93, 0x85, 0x59, 0xd4, 0xd1, 0x39, 0x32, 0xde, 0x4f, 0x9b, 0x97, 0xe6, 0x2a, 0xec, 0x86, 0x83,
		0xcd, 0x00, 0xfe, 0x4a, 0xa7, 0x6b, 0xe2, 0xe6, 0x80, 0x62, 0x0a, 0x62, 0x93, 0x7d, 0xeb, 0x24,
		0x7f, 0x07, 0x51, 0x1f, 0x0d, 0xc6, 0x4d, 0xb3, 0xf2, 0xf0, 0x07, 0xe9, 0xcc, 0x4f, 0x56, 0xba,
		0x23, 0xfb, 0x98, 0xe6, 0xdf, 0xad, 0x9c, 0x5d, 0x74, 0x57, 0x92, 0xe8, 0x6c, 0x25, 0x3c, 0x8f,
		0x82, 0x34, 0x3c, 0x8f, 0xd2, 0xfc, 0xbb, 0x95, 0xa8, 0x7b, 0x5d, 0x0b, 0xd2, 0x24, 0x33, 0x41,
		0xb7, 0xd3, 0x8e, 0x9a, 0xb7, 0x2b, 0xb1, 0x89, 0x2e, 0x2e, 0xcf, 0x3a, 0x49, 0x9a, 0x7f, 0xb7,
		0x12, 0xb6, 0xfe, 0x3b, 0x88, 0x73, 0xa3, 0x38, 0xe8, 0x76, 0xd2, 0x6c, 0x25, 0xe9, 0xf4, 0x32,
		0x93, 0x0e, 0xff, 0x58, 0xe9, 0xc5, 0x7f, 0xc7, 0x9d, 0x6f, 0x71, 0x10, 0x66, 0x59, 0x12, 0x9d,
		0x0d, 0xfe, 0xc3, 0xcc, 0x8f, 0x56, 0xd2, 0x2c, 0xcc, 0x34, 0x7a, 0x50, 0x3f, 0xcd, 0x92, 0x5e,
		0x33, 0x8b, 0x47, 0xc8, 0xeb, 0x30, 0x7f, 0xf2, 0x07, 0xc3, 0xa7, 0x5a, 0x1f, 0x3d, 0xd4, 0xc6,
		0x83, 0xff, 0x9d, 0x3e, 0xfc, 0x41, 0x63, 0xec, 0x95, 0xd2, 0xfc, 0xbb, 0xc6, 0xfb, 0x8b, 0x6e,
		0xe3, 0x38, 0x3a, 0x6b, 0xec, 0x9e, 0x47, 0x27, 0xfd, 0x87, 0x3e, 0xfe, 0xa6, 0x51, 0xef, 0x5e,
		0xd7, 0x4e, 0x92, 0xcc, 0x1c, 0x0d, 0x9e, 0x78, 0xe3, 0x60, 0xfc, 0xc4, 0xf3, 0xef, 0x1a, 0xbb,
		0xad, 0xff, 0x1e, 0x47, 0x67, 0xf5, 0xf8, 0xa8, 0x93, 0x66, 0x8d, 0xe3, 0xc1, 0xe3, 0x1e, 0xfe,
		0xd1, 0xf8, 0x3c, 0x7c, 0xb6, 0xbb, 0xf9, 0xd3, 0x9e, 0xf9, 0x49, 0xe3, 0x64, 0xf0, 0xb0, 0x5f,
		0x61, 0x9f, 0xf4, 0xde, 0x44, 0x89, 0x85, 0xec, 0x03, 0xdd, 0x7c, 0x43, 0x5b, 0x76, 0xdb, 0xd5,
		0xa2, 0xa2, 0xfe, 0x7e, 0x94, 0x66, 0x7d, 0x81, 0x56, 0x65, 0xaf, 0xfd, 0x8f, 0x51, 0xbc, 0xd7,
		0x36, 0x7d, 0x8c, 0xaa, 0x6c, 0x48, 0xbf, 0xff, 0x31, 0xbc, 0x99, 0xb8, 0xd9, 0xda, 0x6f, 0xb5,
		0xda, 0xd6, 0x76, 0xad, 0xb6, 0xba, 0xbd, 0xb1, 0xbd, 0xba, 0xb3, 0xb9, 0xb9, 0xb6, 0xb5, 0xa6,
		0x68, 0x15, 0x82, 0x7f, 0xd8, 0x87, 0xf3, 0xa6, 0xf5, 0xbe, 0x2f, 0x7a, 0x71, 0xaf, 0xdd, 0xd6,
		0x78, 0xb5, 0xcf, 0xa9, 0x49, 0x54, 0x6d, 0x35, 0xd0, 0x62, 0x31, 0x94, 0x62, 0xa9, 0xea, 0x63,
		0x28, 0x45, 0xe8, 0xa9, 0x8a, 0xa8, 0x49, 0x07, 0x5e, 0x72, 0x8f, 0x4e, 0xdc, 0xde, 0xc0, 0xb1,
		0x95, 0xd3, 0x66, 0xdd, 0xaa, 0x66, 0xd5, 0x14, 0xd8, 0xb0, 0x0a, 0xd8, 0x2e, 0xb7, 0xa6, 0xca,
		0x9d, 0x81, 0x70, 0x73, 0xb2, 0x23, 0x93, 0x34, 0x0e, 0xcd, 0xfa, 0xba, 0x1f, 0x44, 0x2d, 0xcf,
		0xc4, 0xad, 0x6e, 0x27, 0x8a, 0x33, 0xaf, 0xd9, 0x69, 0x77, 0x12, 0x47, 0x8a, 0xa4, 0x23, 0x2e,
		0xd3, 0x13, 0x87, 0xa9, 0x8e, 0xbb, 0x14, 0xc5, 0x59, 0x8a, 0xe2, 0x2a, 0x57, 0xea, 0xac, 0x04,
		0x59, 0x94, 0x1a, 0x51, 0x38, 0x84, 0x0f, 0xa5, 0x83, 0x0d, 0x6e, 0x40, 0x82, 0xbc, 0x8b, 0x96,
		0x3d, 0x51, 0xd8, 0x7a, 0xb8, 0xb6, 0x1a, 0x25, 0xb5, 0x16, 0x0e, 0xec, 0x44, 0x89, 0xec, 0x83,
		0xac, 0x65, 0x90, 0xd3, 0x4f, 0x99, 0x93, 0x84, 0x2c, 0x80, 0x2b, 0xcd, 0x2f, 0x9b, 0xc6, 0x0b,
		0xaa, 0x7a, 0x19, 0x54, 0x5c, 0x46, 0xb7, 0xed, 0x6b, 0x9a, 0x80, 0x96, 0xf9, 0x93, 0x92, 0x94,
		0xc8, 0x15, 0x27, 0xe6, 0x65, 0x9e, 0x0f, 0xce, 0x17, 0xb2, 0x2b, 0xe3, 0x9a, 0x6c, 0xa1, 0xe3,
		0xa4, 0x5b, 0xa5, 0x5c, 0xb4, 0x3e, 0xb9, 0x6d, 0x65, 0x72, 0x55, 0x5c, 0xeb, 0xbc, 0xd5, 0xc8,
		0x79, 0xa5, 0xab, 0xf3, 0x56, 0xa0, 0x6a, 0x21, 0x9e, 0x0f, 0x91, 0x2c, 0xad, 0xe8, 0x8f, 0x82,
		0x05, 0x71, 0xc5, 0x19, 0x9b, 0x0b, 0x27, 0xc1, 0x8a, 0xb0, 0x03, 0x70, 0xe6, 0x08, 0x5c, 0x3a,
		0x04, 0x1d, 0x8e, 0xc1, 0xb5, 0x83, 0x50, 0xe3, 0x28, 0xd4, 0x38, 0x0c, 0x35, 0x8e, 0xe3, 0x65,
		0x90, 0x67, 0xd2, 0x0e, 0x65, 0xda, 0xb1, 0xb8, 0xd3, 0xb7, 0x29, 0xff, 0xe2, 0x4a, 0xd7, 0xdc,
		0xb8, 0x19, 0xe7, 0xee, 0x46, 0x83, 0xdb, 0xd1, 0xe5, 0x7e, 0xb4, 0xb8, 0x21, 0x75, 0xee, 0x48,
		0x9d, 0x5b, 0x52, 0xe7, 0x9e, 0xdc, 0xb8, 0x29, 0x47, 0xee, 0xca, 0xb9, 0xdb, 0xca, 0x2f, 0x30,
		0xac, 0x30, 0x71, 0xae, 0xa7, 0x63, 0xeb, 0xe5, 0xb2, 0xe0, 0xe5, 0xa1, 0x3b, 0x73, 0x5c, 0xf3,
		0xaf, 0x66, 0xf2, 0x90, 0xa6, 0x09, 0x43, 0x3a, 0x27, 0x09, 0x69, 0xeb, 0x79, 0x57, 0x3b, 0x19,
		0x48, 0x6d, 0xc3, 0xba, 0xda, 0x49, 0x3f, 0x2f, 0xbb, 0x44, 0x5b, 0xcd, 0x84, 0x9e, 0xdc, 0xee,
		0xb4, 0x4d, 0x78, 0x9e, 0x98, 0x73, 0x0d, 0x46, 0x67, 0x1c, 0x75, 0x6d, 0x2b, 0xb8, 0xcb, 0xd1,
		0x28, 0x87, 0xfc, 0xf6, 0xed, 0xb0, 0xfd, 0x77, 0x65, 0xe8, 0xc8, 0x5f, 0x6a, 0xf1, 0xb2, 0xc3,
		0xc8, 0x6b, 0x5c, 0x3b, 0xac, 0x07, 0xd3, 0xe5, 0x37, 0x02, 0xd6, 0x01, 0xeb, 0x80, 0x75, 0xc0,
		0x3a, 0x60, 0x1d, 0xb0, 0x0e, 0x58, 0x57, 0x4a, 0x58, 0x97, 0xfb, 0x72, 0x90, 0x9d, 0xf8, 0xcb,
		0x18, 0x75, 0x87, 0xe9, 0x01, 0x76, 0xe3, 0x0b, 0x81, 0xeb, 0xc0, 0x75, 0xe0, 0x3a, 0x70, 0x1d,
		0xb8, 0x0e, 0x5c, 0x07, 0xae, 0x2b, 0x25, 0xae, 0x1b, 0xbb, 0x72, 0x60, 0x9d, 0xf8, 0xbb, 0x18,
		0x8e, 0x4b, 0x54, 0x03, 0xea, 0x34, 0x4c, 0x6f, 0x74, 0x5c, 0x50, 0x04, 0xa4, 0x03, 0xd2, 0x01,
		0xe9, 0x80, 0x74, 0x40, 0x3a, 0xf7, 0x05, 0x4a, 0xf9, 0x45, 0x06, 0x63, 0x4b, 0xa3, 0xb8, 0x65,
		0xf4, 0xac, 0xba, 0xba, 0xef, 0xee, 0xbb, 0xbf, 0x9b, 0x96, 0x59, 0xaf, 0xaa, 0x96, 0xaa, 0xa9,
		0x5b, 0xa2, 0xa6, 0x71, 0x69, 0x9a, 0xee, 0x25, 0x69, 0x5a, 0xd7, 0x7a, 0xa8, 0x5f, 0x82, 0xa6,
		0x7e, 0x47, 0x87, 0xfa, 0x25, 0x67, 0x4c, 0xf1, 0x56, 0xc9, 0xb1, 0x28, 0xe6, 0x5a, 0x34, 0x72,
		0x2e, 0xf3, 0xb8, 0x97, 0x1f, 0xfc, 0xdf, 0x00, 0x52, 0xa4, 0x26, 0x4b, 0xf3, 0xef, 0x46, 0x4c,
		0xcd, 0x10, 0x66, 0x30, 0xc0, 0x56, 0x8b, 0x52, 0x2a, 0xa9, 0xa0, 0x9f, 0xd1, 0x46, 0x0d, 0x95,
		0xf4, 0xc0, 0x51, 0xe0, 0x28, 0x70, 0x14, 0x38, 0x0a, 0x1c, 0x05, 0x8e, 0x8a, 0xdb, 0xad, 0x5e,
		0x14, 0x67, 0x1b, 0xeb, 0x0a, 0xd1, 0xa8, 0x26, 0x30, 0x7a, 0x1c, 0xc6, 0x17, 0xfa, 0xf6, 0xb9,
		0x2a, 0x5c, 0xdb, 0xf6, 0x31, 0x8a, 0xd5, 0xae, 0x34, 0xf5, 0xbf, 0x84, 0xed, 0x9e, 0xd1, 0xb5,
		0xa5, 0x68, 0xea, 0x7e, 0x7f, 0x24, 0x61, 0x33, 0x8b, 0x3a, 0xf1, 0x87, 0xe8, 0x22, 0xd2, 0xb6,
		0x4e, 0x69, 0xda, 0x76, 0x98, 0x8b, 0x30, 0x8b, 0xae, 0x8d, 0xaa, 0x6d, 0x40, 0x0a, 0xcd, 0xfe,
		0xb4, 0x6a, 0x84, 0x37, 0xfa, 0x55, 0xa3, 0xb6, 0xbe, 0x53, 0xdb, 0xd9, 0xda, 0x5e, 0xdf, 0xd9,
		0x44, 0x47, 0xaa, 0xae, 0x23, 0x6c, 0x43, 0x9c, 0xfb, 0x75, 0x0a, 0x69, 0xa4, 0xc5, 0x86, 0xfa,
		0xcd, 0xce, 0xd5, 0x55, 0x2f, 0x8e, 0xb2, 0x5b, 0xad, 0x29, 0xcd, 0x87, 0x17, 0x84, 0x48, 0x9a,
		0x77, 0x1d, 0x88, 0xa4, 0x05, 0x44, 0x0a, 0x22, 0x69, 0x21, 0x49, 0x87, 0x48, 0x5a, 0xf2, 0x82,
		0x10, 0x49, 0x25, 0x8a, 0x28, 0xc8, 0x6b, 0x3e, 0xc3, 0x0d, 0x96, 0x30, 0xaf, 0x39, 0xc6, 0x15,
		0x91, 0x49, 0xf3, 0xef, 0x6f, 0x49, 0x6d, 0xea, 0x44, 0xa9, 0x6a, 0x66, 0x49, 0xcc, 0xe8, 0xa4,
		0x92, 0x99, 0x12, 0xe0, 0x52, 0x70, 0x29, 0xb8, 0x14, 0x5c, 0x0a, 0x2e, 0x05, 0x97, 0x8a, 0xdb,
		0xad, 0xa8, 0x1b, 0x84, 0xad, 0x56, 0x62, 0xd2, 0x54, 0x23, 0x34, 0xdd, 0x51, 0x74, 0xa7, 0xd1,
		0x3b, 0x24, 0xc9, 0xf9, 0x64, 0xc9, 0xba, 0xae, 0x29, 0x94, 0xad, 0x19, 0x19, 0xfb, 0x4d, 0xe1,
		0xdd, 0x8e, 0xc2, 0x2c, 0x33, 0x49, 0xac, 0x4e, 0xdc, 0xf2, 0x0b, 0xbe, 0xfe, 0xba, 0x1a, 0xec,
		0x9c, 0x7e, 0xff, 0xba, 0x16, 0xec, 0x9c, 0x0e, 0xbf, 0x5d, 0x1b, 0xfc, 0xf1, 0xcf, 0xfa, 0xdd,
		0xf7, 0xf5, 0xaf, 0xab, 0x41, 0x6d, 0xf4, 0xd3, 0xf5, 0xcd, 0xaf, 0xab, 0xc1, 0xe6, 0xe9, 0x9b,
		0xd7, 0x7f, 0xfd, 0xf5, 0x76, 0xd1, 0x7f, 0xf3, 0xe6, 0x9f, 0x8d, 0x3b, 0x5f, 0xdd, 0xc7, 0x3f,
		0xd5, 0x28, 0x2e, 0x87, 0x27, 0xf5, 0x7f, 0xab, 0x97, 0x99, 0xff, 0xbc, 0x96, 0x92, 0x9a, 0x37,
		0xff, 0xa3, 0x50, 0x6e, 0x74, 0x25, 0x14, 0x7f, 0xc5, 0x8d, 0x3d, 0xd9, 0x8d, 0x6d, 0xe1, 0xc6,
		0xaa, 0xea, 0xc6, 0x06, 0xd6, 0x25, 0x0c, 0xce, 0x77, 0x83, 0x3f, 0x4e, 0xff, 0x59, 0xfb, 0xb5,
		0x76, 0xf7, 0xee, 0xcd, 0x3f, 0xdb, 0x77, 0x0f, 0x7f, 0xf8, 0x7d, 0xde, 0x5f, 0x5b, 0xfb, 0x75,
		0xfb, 0xee, 0xdd, 0x23, 0xff, 0x65, 0xeb, 0xee, 0xdd, 0x13, 0x7f, 0xc7, 0xe6, 0xdd, 0xeb, 0x99,
		0xbf, 0xda, 0xff, 0xf9, 0xfa, 0x63, 0xff, 0xa0, 0xf6, 0xc8, 0x3f, 0xd8, 0x78, 0xec, 0x1f, 0x6c,
		0x3c, 0xf2, 0x0f, 0x1e, 0xbd, 0xd2, 0xfa, 0x23, 0xff, 0x60, 0xf3, 0xee, 0xfb, 0xcc, 0xdf, 0x7f,
		0x3d, 0xff, 0xaf, 0x6e, 0xdd, 0xbd, 0xf9, 0xfe, 0xd8, 0x7f, 0xdb, 0xbe, 0xfb, 0xfe, 0xee, 0xcd,
		0x1b, 0x1c, 0x7b, 0xe5, 0x1c, 0x3b, 0x6a, 0x24, 0xaf, 0x46, 0x00, 0x9d, 0x52, 0xf0, 0x50, 0x1e,
		0x95, 0x53, 0x9a, 0xa0, 0xa7, 0x6f, 0x6e, 0xb2, 0x40, 0x7d, 0xf5, 0xd4, 0xbc, 0x4b, 0x92, 0xa9,
		0x9a, 0x77, 0x1d, 0x32, 0x55, 0x0b, 0x88, 0x15, 0x99, 0xaa, 0x85, 0x24, 0x9d, 0x4c, 0xd5, 0x92,
		0x17, 0x24, 0x53, 0x55, 0x22, 0x42, 0x86, 0x0a, 0xaa, 0xe7, 0x70, 0x2f, 0xe5, 0xab, 0xa0, 0x9a,
		0xc4, 0x16, 0x91, 0x49, 0xa7, 0xfe, 0x37, 0x95, 0x54, 0x4a, 0x51, 0x6b, 0x14, 0x5f, 0x87, 0xed,
		0xa8, 0x15, 0x24, 0x26, 0x4c, 0x3b, 0xb1, 0x3e, 0xc0, 0xfa, 0xe0, 0x7e, 0x60, 0x55, 0xb0, 0x2a,
		0x58, 0x15, 0xac, 0x0a, 0x56, 0x05, 0xab, 0xbe, 0x30, 0xac, 0x1a, 0xb5, 0x4c, 0x9c, 0x45, 0xd9,
		0xad, 0x52, 0xbc, 0xaa, 0xa8, 0x7d, 0xd9, 0xaf, 0x8f, 0x1e, 0xd5, 0xfb, 0x30, 0x55, 0x68, 0x52,
		0xc7, 0x2f, 0xb4, 0x7e, 0xf0, 0x65, 0x77, 0xbf, 0xfe, 0xa1, 0x71, 0x7c, 0xf8, 0xf9, 0xd3, 0x5e,
		0xe3, 0x78, 0x6f, 0xf7, 0xe4, 0xf0, 0x40, 0x9b, 0x75, 0x1d, 0x74, 0xa9, 0xa7, 0x2a, 0xd3, 0x44,
		0x4a, 0xfb, 0xfa, 0x1f, 0xbe, 0xdd, 0xdd, 0x93, 0xc6, 0xfe, 0xe1, 0xe1, 0x91, 0xcf, 0xc4, 0x86,
		0xca, 0xbc, 0xd2, 0xdf, 0xf7, 0x3f, 0x9f, 0x7c, 0xda, 0x3b, 0xe6, 0xbd, 0x56, 0xed, 0xbd, 0x1e,
		0x1e, 0xfc, 0xb1, 0xf7, 0x81, 0x37, 0x5a, 0x9d, 0x37, 0x7a, 0x78, 0x5c, 0xff, 0xb3, 0x7e, 0xb0,
		0xfb, 0xe9, 0xf0, 0xd8, 0x67, 0x1a, 0xc8, 0x0f, 0xbf, 0x4e, 0x89, 0x47, 0x94, 0xdd, 0x42, 0x03,
		0x3b, 0xd8, 0x0e, 0xd3, 0x2c, 0xb8, 0xea, 0xb4, 0xa2, 0xf3, 0xc8, 0xb4, 0xf4, 0x91, 0x83, 0xd3,
		0xd7, 0x83, 0x1b, 0x9c, 0x77, 0x1d, 0xb8, 0xc1, 0x05, 0x04, 0x0a, 0x6e, 0x70, 0x21, 0x49, 0x87,
		0x1b, 0x5c, 0xf2, 0x82, 0x70, 0x83, 0x25, 0xc2, 0xbf, 0x8a, 0xb9, 0xc1, 0x2c, 0xba, 0x32, 0x59,
		0xd4, 0xfc, 0x3b, 0xdd, 0xaa, 0x29, 0xe4, 0x06, 0x15, 0xb5, 0x11, 0xf8, 0x9f, 0xe3, 0xe1, 0x10,
		0x43, 0x3f, 0x0e, 0xe3, 0x4e, 0x6a, 0x9a, 0x9d, 0xb8, 0xa5, 0xaa, 0x4b, 0x95, 0xb9, 0xb7, 0x4f,
		0x7c, 0x50, 0xcc, 0xbd, 0x5d, 0xe2, 0x7e, 0xcc, 0xf4, 0xac, 0x30, 0x37, 0x53, 0x8e, 0xb9, 0xb7,
		0x6b, 0xbf, 0xd5, 0x6a, 0x5b, 0xdb, 0xb5, 0xda, 0xea, 0xf6, 0xc6, 0xf6, 0xea, 0xce, 0xe6, 0xe6,
		0xda, 0xd6, 0x1a, 0x13, 0x70, 0x2b, 0xaf, 0x2d, 0xf4, 0x71, 0xcc, 0xfd, 0xa2, 0x8f, 0x43, 0x8d,
		0x35, 0xf5, 0xc7, 0x1b, 0xc7, 0xd5, 0xb1, 0x5d, 0xe3, 0x8b, 0x29, 0x89, 0x86, 0x3e, 0x98, 0xf3,
		0xb0, 0xd7, 0xce, 0x54, 0x61, 0x55, 0x7f, 0x55, 0x47, 0xec, 0x7c, 0x0a, 0x17, 0x39, 0xef, 0x3a,
		0x70, 0x91, 0x0b, 0xa8, 0x3b, 0x5c, 0xe4, 0x42, 0x92, 0x0e, 0x17, 0xb9, 0xe4, 0x05, 0xe1, 0x22,
		0x4b, 0x14, 0xef, 0xb1, 0xde, 0x6a, 0x71, 0x2f, 0xc8, 0x7a, 0xab, 0x9f, 0x7d, 0x41, 0xf3, 0x3d,
		0x8f, 0xcb, 0x80, 0xe6, 0xab, 0x3c, 0x71, 0x01, 0xcd, 0xf7, 0x3c, 0xd5, 0x60, 0xbd, 0xd5, 0xcb,
		0xd1, 0x11, 0xc8, 0xbd, 0xf9, 0x64, 0x00, 0xe4, 0x9e, 0x16, 0x1b, 0xea, 0x8f, 0x9a, 0x49, 0x3b,
		0xbd, 0xcc, 0xe8, 0x23, 0xf8, 0x26, 0x2f, 0x07, 0x81, 0x34, 0xef, 0x3a, 0x10, 0x48, 0x0b, 0x88,
		0x13, 0x04, 0xd2, 0x42, 0x92, 0x0e, 0x81, 0xb4, 0xe4, 0x05, 0x21, 0x90, 0x4a, 0x14, 0x49, 0x28,
		0x26, 0x90, 0xce, 0x3a, 0x9d, 0xb6, 0x09, 0x63, 0x8d, 0x4d, 0xae, 0x6b, 0x40, 0x39, 0x05, 0x37,
		0x70, 0xac, 0x42, 0xfe, 0x6e, 0x1c, 0x77, 0xb2, 0xb0, 0x1f, 0x34, 0xaa, 0x50, 0x20, 0x3f, 0x6d,
		0x5e, 0x9a, 0xab, 0xb0, 0x3b, 0x1a, 0xd2, 0xb3, 0xd2, 0xe9, 0x9a, 0xb8, 0x39, 0x00, 0x4a, 0x41,
		0x6c, 0xb2, 0x6f, 0x9d, 0xe4, 0xef, 0x20, 0x8a, 0xd3, 0x2c, 0x8c, 0x9b, 0x66, 0xe5, 0xe1, 0x0f,
		0xd2, 0x99, 0x9f, 0xac, 0x74, 0x93, 0x4e, 0xd6, 0x69, 0x76, 0xda, 0x69, 0xfe, 0xdd, 0xca, 0xd9,
		0x45, 0x77, 0x25, 0x89, 0xce, 0x56, 0xc2, 0xf3, 0x28, 0x48, 0xc3, 0xf3, 0x28, 0xcd, 0xbf, 0x5b,
		0x19, 0x6c, 0x64, 0x48, 0x93, 0xcc, 0x04, 0xdd, 0x4e, 0x3b, 0x6a, 0xde, 0xae, 0xc4, 0x26, 0xba,
		0xb8, 0x3c, 0xeb, 0x24, 0x69, 0xfe, 0xdd, 0x4a, 0xd8, 0xfa, 0xef, 0xc0, 0x1b, 0x44, 0x71, 0xd0,
		0x4d, 0xcc, 0xca, 0x00, 0xe0, 0xa6, 0xc3, 0x3f, 0x86, 0x63, 0x81, 0x14, 0xa8, 0xba, 0x9f, 0x66,
		0x49, 0xaf, 0x99, 0xc5, 0x23, 0x1b, 0x74, 0x98, 0x3f, 0xc3, 0x83, 0xe1, 0xf3, 0xa9, 0x8f, 0x1e,
		0x4f, 0xe3, 0xc1, 0xff, 0x4e, 0x1f, 0xfe, 0xa0, 0x71, 0x34, 0x7e, 0x7e, 0xf9, 0x77, 0x8d, 0xf7,
		0x17, 0xdd, 0xc6, 0x71, 0x74, 0xd6, 0xd8, 0x3d, 0x8f, 0x4e, 0xfa, 0x8f, 0x6f, 0xfc, 0x4d, 0xa3,
		0xde, 0xbd, 0xae, 0x9d, 0x24, 0x99, 0x39, 0x1a, 0x3c, 0xbb, 0xc6, 0xc1, 0xf8, 0xd9, 0xe5, 0xdf,
		0x35, 0x76, 0x5b, 0xff, 0x3d, 0x8e, 0xce, 0xea, 0xf1, 0x51, 0x62, 0x1a, 0xc7, 0x83, 0x07, 0x37,
		0xfc, 0xa3, 0x71, 0x32, 0x78, 0x70, 0xaf, 0x5e, 0xa6, 0x15, 0x70, 0x68, 0x01, 0xfc, 0x5e, 0xfc,
		0x77, 0xdc, 0xf9, 0x16, 0x07, 0x61, 0x96, 0x25, 0xd1, 0x59, 0xff, 0x8d, 0x38, 0xb7, 0x02, 0xf7,
		0xb9, 0x97, 0xd9, 0xbb, 0x39, 0xb6, 0x95, 0x63, 0xcf, 0xe9, 0xf8, 0x1a, 0x5a, 0x02, 0x47, 0x4d,
		0x01, 0xa3, 0xce, 0x40, 0x51, 0x5b, 0x80, 0xa8, 0x36, 0x30, 0x54, 0x1b, 0x10, 0xaa, 0x0d, 0x04,
		0x5f, 0x36, 0x6a, 0xfd, 0x10, 0x25, 0x3a, 0xcc, 0xce, 0x8c, 0x93, 0xd2, 0xc7, 0xc4, 0xce, 0x5e,
		0x51, 0x17, 0x1f, 0xbb, 0x06, 0x1f, 0xab, 0xde, 0xbd, 0xea, 0x76, 0xb3, 0x5a, 0xdd, 0xad, 0x7a,
		0xb7, 0xab, 0xde, 0xfd, 0xaa, 0x77, 0xc3, 0x7a, 0x68, 0x2c, 0x4f, 0x11, 0x1f, 0xab, 0xc5, 0x3d,
		0xe7, 0x17, 0xea, 0xfb, 0xbe, 0x20, 0xd3, 0xc6, 0x12, 0x4f, 0x59, 0xd4, 0xfb, 0x2b, 0x2a, 0x53,
		0x3d, 0x5d, 0x69, 0x53, 0xb5, 0xee, 0x5a, 0xb3, 0xdb, 0x2e, 0x87, 0xfb, 0xd6, 0xee, 0xc6, 0x4b,
		0xe3, 0xce, 0x4b, 0xe3, 0xd6, 0x4b, 0xe3, 0xde, 0x75, 0xb9, 0x79, 0x65, 0xee, 0x3e, 0x7f, 0x8b,
		0x9f, 0x34, 0x3a, 0x58, 0x4f, 0xf7, 0x8e, 0x8c, 0x99, 0x68, 0x78, 0x5b, 0xe7, 0x9e, 0xd2, 0xf1,
		0xce, 0x8c, 0xe1, 0xea, 0x8b, 0x7b, 0xb0, 0x42, 0x9d, 0xa4, 0x76, 0xd5, 0xf4, 0x87, 0x69, 0x49,
		0xb5, 0xc0, 0x57, 0x4b, 0xd6, 0x74, 0xae, 0x36, 0x02, 0x7a, 0x01, 0xbd, 0x80, 0x5e, 0x40, 0x2f,
		0xa0, 0x17, 0xcf, 0x3a, 0xff, 0x2d, 0x6a, 0xe3, 0xba, 0xf2, 0x8b, 0x0d, 0x30, 0x5a, 0xdb, 0x28,
		0x6e, 0x39, 0x9c, 0xa2, 0xbe, 0xfa, 0x37, 0x55, 0xaa, 0xa8, 0x3a, 0x19, 0x30, 0xf5, 0xa0, 0xa0,
		0x0c, 0xe0, 0xa0, 0x5c, 0x20, 0xa1, 0x2c, 0x60, 0xa1, 0x74, 0xa0, 0xa1, 0x74, 0xe0, 0xa1, 0x74,
		0x20, 0x42, 0x27, 0x98, 0x50, 0x0a, 0x2a, 0xf2, 0xb7, 0xab, 0x96, 0x51, 0x9b, 0xb1, 0x9b, 0xbd,
		0x28, 0xce, 0xd6, 0xb6, 0x34, 0xdb, 0xcc, 0x91, 0x17, 0xdf, 0x52, 0x7c, 0x45, 0x9d, 0x93, 0x34,
		0x1e, 0x7e, 0xe9, 0xf6, 0x39, 0x9e, 0xf6, 0x49, 0x1b, 0x33, 0x97, 0x55, 0x3e, 0x79, 0x63, 0xe6,
		0xbe, 0x65, 0x99, 0x32, 0x30, 0x6b, 0xab, 0xb4, 0x4f, 0x1d, 0x28, 0x89, 0x5b, 0x9a, 0x56, 0xb5,
		0xf0, 0xa6, 0x7c, 0xaa, 0xb6, 0xb5, 0xb9, 0xb9, 0xb1, 0x89, 0xba, 0xa1, 0x6e, 0x25, 0xc0, 0xa6,
		0xfa, 0x6f, 0x77, 0x0a, 0xa6, 0x5f, 0x40, 0x2d, 0xcc, 0x4d, 0x96, 0x84, 0x41, 0x2f, 0x4e, 0xb3,
		0xf0, 0xac, 0xad, 0x1c, 0xdd, 0x27, 0xe6, 0xdc, 0x24, 0x26, 0x6e, 0x02, 0x4a, 0x0b, 0x0c, 0x95,
		0x8e, 0xff, 0xf8, 0xdd, 0xab, 0xad, 0x6f, 0xaf, 0x79, 0x81, 0xb7, 0xeb, 0xbd, 0xef, 0x24, 0x2d,
		0x93, 0x78, 0x7f, 0x86, 0x99, 0xf9, 0x16, 0xde, 0x7a, 0xe3, 0x36, 0x4b, 0xaf, 0xe6, 0xbd, 0x7e,
		0xff, 0xe7, 0x51, 0x50, 0x7b, 0xe3, 0x97, 0x00, 0x03, 0x94, 0x84, 0x8e, 0xba, 0x0f, 0x05, 0xef,
		0x69, 0xa9, 0x7b, 0x09, 0x2f, 0x89, 0x57, 0x2d, 0x1b, 0x43, 0x95, 0x5f, 0x7c, 0x92, 0xa9, 0x5a,
		0x50, 0x05, 0x40, 0x0e, 0x20, 0x87, 0x17, 0xfd, 0xbc, 0x34, 0x8e, 0x6c, 0xd4, 0x5b, 0x53, 0x3f,
		0xe3, 0x71, 0xb5, 0xd6, 0xd6, 0xdf, 0x3b, 0x24, 0x32, 0x8c, 0x4b, 0x5d, 0x90, 0x0c, 0xe3, 0x0b,
		0x85, 0x74, 0x64, 0x18, 0x45, 0x71, 0x1b, 0x19, 0xc6, 0xaa, 0xb1, 0x11, 0xe5, 0xca, 0x30, 0xfe,
		0x56, 0x82, 0x04, 0xe3, 0x26, 0x09, 0xc6, 0xea, 0x73, 0x39, 0x24, 0x18, 0x2d, 0xde, 0x97, 0x8c,
		0xc7, 0x0b, 0xf7, 0x4a, 0xd3, 0xaa, 0x56, 0xc6, 0x04, 0xe3, 0xfa, 0x26, 0xe9, 0x45, 0x94, 0xad,
		0x0c, 0xc0, 0x54, 0xff, 0xed, 0x48, 0x2f, 0x2e, 0xa2, 0x16, 0xa4, 0x17, 0x5f, 0x28, 0x24, 0x25,
		0xbd, 0xa8, 0x26, 0x10, 0x24, 0xbd, 0x28, 0x7f, 0x71, 0xd2, 0x8b, 0xdc, 0xae, 0x24, 0xc8, 0x81,
		0xf4, 0xe2, 0x13, 0xf4, 0x79, 0x90, 0xb3, 0xbb, 0x1e, 0x85, 0x53, 0x65, 0xc8, 0x2f, 0x0e, 0xef,
		0x4a, 0x82, 0xf1, 0x39, 0xd7, 0x23, 0xc1, 0x58, 0xa0, 0x34, 0x92, 0x60, 0xb4, 0x04, 0xe6, 0x48,
		0x30, 0x5a, 0x47, 0x6e, 0x24, 0x18, 0xab, 0xc6, 0x47, 0x94, 0x27, 0xc1, 0x78, 0x16, 0xc5, 0x61,
		0x72, 0x5b, 0x82, 0x0c, 0xe3, 0x8e, 0xe2, 0x2b, 0xee, 0x9b, 0xf8, 0x62, 0x30, 0x2c, 0x0c, 0x3e,
		0x67, 0xc9, 0x27, 0x59, 0xca, 0x14, 0xe3, 0x1a, 0x59, 0x0f, 0xcb, 0xc6, 0x8a, 0x14, 0xa3, 0x05,
		0x55, 0xa3, 0x87, 0x11, 0x75, 0xab, 0x88, 0xba, 0x41, 0x15, 0x3e, 0xeb, 0x8b, 0x24, 0xe3, 0x22,
		0x6a, 0x41, 0x92, 0xf1, 0x85, 0x82, 0x52, 0x92, 0x8c, 0x6a, 0x62, 0x41, 0x92, 0x8c, 0xf2, 0x17,
		0x27, 0xc9, 0xc8, 0xed, 0x4a, 0x82, 0x1c, 0x48, 0x32, 0x3e, 0x0d, 0xc7, 0x98, 0xb8, 0x65, 0x5a,
		0xfa, 0x53, 0x8c, 0xf9, 0x4d, 0x49, 0x30, 0x3e, 0xe7, 0x7a, 0x24, 0x18, 0x0b, 0x94, 0x45, 0x12,
		0x8c, 0x96, 0x80, 0x1c, 0x09, 0x46, 0xeb, 0xa8, 0x8d, 0x04, 0x63, 0xd5, 0xb8, 0x88, 0x12, 0x25,
		0x18, 0x3b, 0x9d, 0xb6, 0x09, 0xe3, 0x12, 0x64, 0x18, 0xd7, 0xd6, 0x10, 0xc1, 0xc5, 0x60, 0x24,
		0x74, 0x58, 0xe1, 0x5f, 0xd0, 0x61, 0xa0, 0xa7, 0xe7, 0xa0, 0x28, 0xe8, 0x30, 0x17, 0xc0, 0x0a,
		0x3a, 0x8c, 0xdb, 0x79, 0xd0, 0x61, 0x65, 0xc6, 0x32, 0x7e, 0xa7, 0x9b, 0x45, 0x9d, 0x38, 0x6c,
		0xeb, 0xa7, 0xc3, 0xf2, 0x9b, 0x42, 0x87, 0x3d, 0xe7, 0x7a, 0xd0, 0x61, 0x45, 0xca, 0x22, 0x74,
		0x98, 0x1d, 0x20, 0x07, 0x1d, 0x66, 0x1d, 0xb5, 0x41, 0x87, 0x55, 0x8d, 0x8b, 0x80, 0x0e, 0x2b,
		0xde, 0x8d, 0x43, 0x87, 0x2d, 0xf4, 0xd4, 0xa0, 0xc3, 0x6c, 0x7c, 0x41, 0x87, 0x81, 0x9e, 0x9e,
		0x83, 0xa2, 0xa0, 0xc3, 0x5c, 0x00, 0x2b, 0xe8, 0x30, 0x6e, 0xe7, 0x41, 0x87, 0x95, 0x19, 0xcb,
		0xf8, 0xdd, 0x30, 0xc9, 0xa2, 0x32, 0xb0, 0x61, 0xe3, 0x8b, 0x42, 0x86, 0x3d, 0xe7, 0x7a, 0x90,
		0x61, 0x05, 0x8a, 0x22, 0x64, 0x98, 0x25, 0x18, 0x07, 0x19, 0x66, 0x1d, 0xb3, 0x41, 0x86, 0x55,
		0x8d, 0x89, 0x80, 0x0c, 0x2b, 0xde, 0x8d, 0x43, 0x86, 0x2d, 0xf4, 0xd4, 0x20, 0xc3, 0x6c, 0x7c,
		0x41, 0x86, 0x81, 0x9e, 0x9e, 0x83, 0xa2, 0x20, 0xc3, 0x5c, 0x00, 0x2b, 0xc8, 0x30, 0x6e, 0xe7,
		0x41, 0x86, 0x95, 0x19, 0xcb, 0xf8, 0x59, 0x12, 0xc6, 0x69, 0x34, 0x9a, 0x85, 0xa2, 0x9c, 0x0f,
		0x9b, 0xb8, 0x2b, 0x94, 0xd8, 0x73, 0xae, 0x07, 0x25, 0x56, 0xa0, 0x34, 0x42, 0x89, 0x59, 0x02,
		0x73, 0x50, 0x62, 0xd6, 0x91, 0x1b, 0x94, 0x58, 0xd5, 0xf8, 0x08, 0x28, 0xb1, 0xe2, 0xdd, 0x38,
		0x94, 0xd8, 0x42, 0x4f, 0x0d, 0x4a, 0xcc, 0xc6, 0x17, 0x94, 0x18, 0xe8, 0xe9, 0x39, 0x28, 0x0a,
		0x4a, 0xcc, 0x05, 0xb0, 0x82, 0x12, 0xe3, 0x76, 0x1e, 0x94, 0x58, 0x49, 0x6f, 0xa4, 0x0c, 0x59,
		0xf9, 0xbb, 0x71, 0xdc, 0xc9, 0xc2, 0x2c, 0xea, 0xe8, 0x1c, 0x19, 0xef, 0xa7, 0xcd, 0x4b, 0x73,
		0x15, 0x76, 0xc3, 0xc1, 0x66, 0x00, 0x7f, 0xa5, 0xd3, 0x35, 0x71, 0x73, 0x40, 0x31, 0x05, 0xb1,
		0xc9, 0xbe, 0x75, 0x92, 0xbf, 0x83, 0xa8, 0x8f, 0x06, 0xe3, 0xa6, 0x59, 0x79, 0xf8, 0x83, 0x74,
		0xe6, 0x27, 0x2b, 0xdd, 0x91, 0x7d, 0x4c, 0xf3, 0xef, 0x56, 0xce, 0x2e, 0xba, 0x2b, 0x49, 0x74,
		0xb6, 0x12, 0x9e, 0x47, 0x41, 0x1a, 0x9e, 0x47, 0x69, 0xfe, 0xdd, 0x4a, 0xd4, 0xbd, 0xae, 0x05,
		0x69, 0x92, 0x99, 0xa0, 0xdb, 0x69, 0x47, 0xcd, 0xdb, 0x95, 0xd8, 0x44, 0x17, 0x97, 0x67, 0x9d,
		0x24, 0xcd, 0xbf, 0x5b, 0x09, 0x5b, 0xff, 0x1d, 0xc4, 0xb9, 0x51, 0x1c, 0x74, 0x13, 0xb3, 0x92,
		0x74, 0x7a, 0x99, 0x49, 0x87, 0x7f, 0xac, 0xf4, 0xe2, 0xbf, 0xe3, 0xce, 0xb7, 0x38, 0x08, 0xb3,
		0x2c, 0x89, 0xce, 0x06, 0xff, 0x61, 0xe6, 0x47, 0x2b, 0x69, 0x16, 0x66, 0x1a, 0x1d, 0xa8, 0x9f,
		0x66, 0x49, 0xaf, 0x99, 0xc5, 0x23, 0xe0, 0x75, 0x98, 0x3f, 0xf8, 0x83, 0xe1, 0x43, 0xad, 0x8f,
		0x9e, 0x69, 0xe3, 0xc1, 0xff, 0x4e, 0x1f, 0xfe, 0xa0, 0x31, 0x76, 0x4a, 0x69, 0xfe, 0x5d, 0xe3,
		0xfd, 0x45, 0xb7, 0x71, 0x1c, 0x9d, 0x35, 0x76, 0xcf, 0xa3, 0x93, 0xfe, 0x33, 0x1f, 0x7f, 0xd3,
		0xa8, 0x77, 0xaf, 0x6b, 0x27, 0x49, 0x66, 0x8e, 0x06, 0x0f, 0xbc, 0x71, 0x30, 0x7e, 0xe0, 0xf9,
		0x77, 0x8d, 0xdd, 0xd6, 0x7f, 0x8f, 0xa3, 0xb3, 0x7a, 0x7c, 0x94, 0x98, 0xc6, 0xf1, 0xe0, 0x69,
		0x0f, 0xff, 0x68, 0x7c, 0x1e, 0x3e, 0xda, 0xdd, 0xfc, 0x61, 0xcf, 0xfc, 0xa4, 0x71, 0x32, 0x78,
		0xd6, 0xaf, 0xb0, 0x4e, 0x7a, 0x6f, 0xa2, 0xc4, 0x3e, 0xf6, 0x61, 0x6e, 0xbe, 0x9f, 0x2d, 0xbb,
		0xed, 0x6a, 0xd1, 0x50, 0x7f, 0x3f, 0x4a, 0xb3, 0xbe, 0x40, 0xab, 0xb2, 0xd6, 0xfe, 0xc7, 0x28,
		0xde, 0x6b, 0x9b, 0x3e, 0x42, 0x55, 0x36, 0xa2, 0xdf, 0xff, 0x18, 0xde, 0x4c, 0xdc, 0x6c, 0xed,
		0xb7, 0x5a, 0x6d, 0x6b, 0xbb, 0x56, 0x5b, 0xdd, 0xde, 0xd8, 0x5e, 0xdd, 0xd9, 0xdc, 0x5c, 0xdb,
		0x5a, 0x53, 0xb4, 0x08, 0xc1, 0x3f, 0xec, 0x83, 0x79, 0xd3, 0x7a, 0xdf, 0x17, 0xbd, 0xb8, 0xd7,
		0x6e, 0x6b, 0xbc, 0xda, 0xe7, 0xd4, 0x24, 0xaa, 0x76, 0x1a, 0x68, 0xb1, 0x18, 0x4a, 0x91, 0x54,
		0xe5, 0x11, 0x94, 0x22, 0xec, 0x54, 0x41, 0xcc, 0xa4, 0x03, 0x2d, 0xb9, 0xc7, 0x26, 0x6e, 0x6f,
		0xe0, 0xd8, 0xc6, 0x69, 0xb3, 0x6d, 0x15, 0xb3, 0x69, 0x0a, 0x2c, 0x58, 0xf9, 0x2d, 0x97, 0x5b,
		0x43, 0xe5, 0xce, 0x3c, 0xb8, 0x39, 0xd9, 0x91, 0x41, 0x1a, 0x87, 0x65, 0x7d, 0xcd, 0x0f, 0xa2,
		0x96, 0x67, 0xe2, 0x56, 0xb7, 0x13, 0xc5, 0x99, 0xd7, 0xec, 0xb4, 0x3b, 0x89, 0x23, 0x3d, 0xd2,
		0x11, 0x93, 0xe9, 0x89, 0xc1, 0x54, 0xc7, 0x5c, 0x8a, 0x62, 0x2c, 0x45, 0x31, 0x95, 0x2b, 0x75,
		0x56, 0x82, 0x2b, 0xca, 0x8c, 0x27, 0x1c, 0x82, 0x87, 0xb2, 0x81, 0x06, 0x37, 0x10, 0x41, 0xde,
		0x41, 0xcb, 0x9e, 0x28, 0x6c, 0x3b, 0x5c, 0xdb, 0x8c, 0x72, 0xda, 0x0a, 0x07, 0x56, 0xa2, 0x3c,
		0xd6, 0x41, 0xd6, 0x2e, 0xc8, 0x69, 0xa7, 0xcc, 0x49, 0x42, 0xfa, 0xef, 0x4a, 0xef, 0x4b, 0xa6,
		0xef, 0x82, 0x8a, 0x5e, 0x02, 0x05, 0x97, 0xd1, 0x6c, 0xfb, 0x7a, 0x26, 0xa0, 0x63, 0xfe, 0x58,
		0x8e, 0x3a, 0xbd, 0x2c, 0xe8, 0x76, 0xd2, 0x4c, 0x4c, 0xcb, 0xf2, 0xe2, 0xce, 0x99, 0x1b, 0x08,
		0x59, 0x96, 0x71, 0x2d, 0xb6, 0xd0, 0x71, 0xd2, 0x2d, 0x52, 0x2e, 0x5a, 0x9e, 0xdc, 0xb6, 0x30,
		0xb9, 0x2a, 0xaa, 0x75, 0xde, 0x62, 0xe4, 0xbc, 0xc2, 0xd5, 0x79, 0x0b, 0x50, 0xb5, 0x30, 0xcf,
		0x87, 0x48, 0x96, 0x54, 0xf4, 0x47, 0xd1, 0x82, 0xb8, 0xe2, 0x8c, 0xcd, 0x85, 0x93, 0x68, 0x45,
		0xd8, 0x01, 0x38, 0x73, 0x04, 0x2e, 0x1d, 0x82, 0x0e, 0xc7, 0xe0, 0xda, 0x41, 0xa8, 0x71, 0x14,
		0x6a, 0x1c, 0x86, 0x1a, 0xc7, 0xf1, 0x32, 0xc8, 0x33, 0x69, 0x87, 0x32, 0xed, 0x58, 0xdc, 0xe9,
		0xdb, 0x94, 0x7f, 0x71, 0xa5, 0x6b, 0x6e, 0xdc, 0x8c, 0x73, 0x77, 0xa3, 0xc1, 0xed, 0xe8, 0x72,
		0x3f, 0x5a, 0xdc, 0x90, 0x3a, 0x77, 0xa4, 0xce, 0x2d, 0xa9, 0x73, 0x4f, 0x6e, 0xdc, 0x94, 0x23,
		0x77, 0xe5, 0xdc, 0x6d, 0xe5, 0x17, 0x18, 0xd6, 0x97, 0x38, 0xd7, 0xd3, 0xb1, 0xf5, 0x72, 0x59,
		0xee, 0xf2, 0xd0, 0x9d, 0x39, 0xae, 0xf6, 0x57, 0x33, 0x71, 0x48, 0xd3, 0x64, 0x21, 0x9d, 0x13,
		0x84, 0xb4, 0xf5, 0xba, 0xab, 0x9d, 0x08, 0xa4, 0xb6, 0x51, 0x5d, 0xed, 0x84, 0x9f, 0x97, 0x5d,
		0x9e, 0xad, 0x66, 0x32, 0x4f, 0x6e, 0x77, 0xda, 0x26, 0x3c, 0x4f, 0xcc, 0xb9, 0x06, 0xa3, 0x33,
		0x8e, 0xba, 0xb6, 0x15, 0xdc, 0xe5, 0x68, 0x94, 0x45, 0x7e, 0xfb, 0x76, 0xd8, 0xf7, 0xbb, 0x32,
		0x74, 0xe4, 0x2f, 0xb5, 0x74, 0xd9, 0x61, 0xe4, 0x35, 0xae, 0x1c, 0xd6, 0x83, 0xe9, 0xf2, 0x1b,
		0x01, 0xeb, 0x80, 0x75, 0xc0, 0x3a, 0x60, 0x1d, 0xb0, 0x0e, 0x58, 0x07, 0xac, 0x2b, 0x25, 0xac,
		0xcb, 0x7d, 0x39, 0xc8, 0x4e, 0xfc, 0x65, 0x8c, 0x7a, 0xc3, 0xf4, 0x00, 0xbb, 0xf1, 0x85, 0xc0,
		0x75, 0xe0, 0x3a, 0x70, 0x1d, 0xb8, 0x0e, 0x5c, 0x07, 0xae, 0x03, 0xd7, 0x95, 0x12, 0xd7, 0x8d,
		0x5d, 0x39, 0xb0, 0x4e, 0xfc, 0x5d, 0x0c, 0xe7, 0x24, 0xaa, 0x01, 0x75, 0x1a, 0xc6, 0x36, 0x3a,
		0x2e, 0x28, 0x02, 0xd2, 0x01, 0xe9, 0x80, 0x74, 0x40, 0x3a, 0x20, 0x9d, 0xfb, 0x02, 0xa5, 0xfc,
		0x22, 0x83, 0x81, 0xa5, 0x51, 0xdc, 0x32, 0x7a, 0x56, 0x5c, 0xdd, 0xf7, 0xf7, 0xdd, 0xdf, 0x4d,
		0xcb, 0x94, 0x57, 0x55, 0xcb, 0xd4, 0xd4, 0x2d, 0x4f, 0xd3, 0xb8, 0x2c, 0x4d, 0xf7, 0x72, 0x34,
		0xad, 0xeb, 0x3c, 0xd4, 0x2f, 0x3f, 0x53, 0xbf, 0x9b, 0x43, 0xfd, 0x72, 0x33, 0xe6, 0x77, 0xab,
		0xe4, 0x58, 0x14, 0x73, 0x2d, 0x1a, 0x39, 0x97, 0x79, 0xdc, 0xcb, 0x0f, 0xfe, 0x6f, 0x00, 0x29,
		0x52, 0x93, 0xa5, 0xf9, 0x77, 0x23, 0xa6, 0x66, 0x08, 0x33, 0x18, 0x5e, 0xab, 0x45, 0x29, 0x95,
		0x54, 0xd0, 0xcf, 0x68, 0xa3, 0x86, 0x4a, 0x7a, 0xe0, 0x28, 0x70, 0x14, 0x38, 0x0a, 0x1c, 0x05,
		0x8e, 0x02, 0x47, 0xc5, 0xed, 0x56, 0x2f, 0x8a, 0xb3, 0x8d, 0x75, 0x85, 0x68, 0x54, 0x13, 0x18,
		0x3d, 0x0e, 0xe3, 0x0b, 0x7d, 0x7b, 0x5c, 0x15, 0xae, 0x6b, 0xfb, 0x18, 0xc5, 0x6a, 0x57, 0x99,
		0xfa, 0x5f, 0xc2, 0x76, 0xcf, 0xe8, 0xda, 0x4f, 0x34, 0x75, 0xbf, 0x3f, 0x92, 0xb0, 0x99, 0x45,
		0x9d, 0xf8, 0x43, 0x74, 0x11, 0x69, 0x5b, 0xa4, 0x34, 0x6d, 0x3b, 0xcc, 0x45, 0x98, 0x45, 0xd7,
		0x46, 0xd5, 0x1e, 0x20, 0x85, 0x66, 0x7f, 0x5a, 0x35, 0xc2, 0x1b, 0xfd, 0xaa, 0x51, 0x5b, 0xdf,
		0xa9, 0xed, 0x6c, 0x6d, 0xaf, 0xef, 0x6c, 0xa2, 0x23, 0x55, 0xd7, 0x11, 0xf6, 0x20, 0xce, 0xfd,
		0x3a, 0x85, 0x34, 0xd2, 0x62, 0x43, 0xfd, 0x66, 0xe7, 0xea, 0xaa, 0x17, 0x47, 0xd9, 0xad, 0xd6,
		0x94, 0xe6, 0xc3, 0x0b, 0x42, 0x24, 0xcd, 0xbb, 0x0e, 0x44, 0xd2, 0x02, 0x22, 0x05, 0x91, 0xb4,
		0x90, 0xa4, 0x43, 0x24, 0x2d, 0x79, 0x41, 0x88, 0xa4, 0x12, 0x45, 0x14, 0xe4, 0x35, 0x9f, 0xe1,
		0x06, 0x4b, 0x98, 0xd7, 0x1c, 0xe3, 0x8a, 0xc8, 0xa4, 0xf9, 0xf7, 0xb7, 0xa4, 0x36, 0x75, 0xa2,
		0x54, 0x35, 0xb3, 0x24, 0x66, 0x74, 0x52, 0xc9, 0x4c, 0x09, 0x70, 0x29, 0xb8, 0x14, 0x5c, 0x0a,
		0x2e, 0x05, 0x97, 0x82, 0x4b, 0xc5, 0xed, 0x56, 0xd4, 0x0d, 0xc2, 0x56, 0x2b, 0x31, 0x69, 0xaa,
		0x11, 0x9a, 0xee, 0x28, 0xba, 0xd3, 0xe8, 0x1d, 0x92, 0xe4, 0x7c, 0xb2, 0x64, 0x5d, 0xd7, 0x14,
		0xca, 0xd6, 0x8c, 0x8c, 0xfd, 0xa6, 0xf0, 0x6e, 0x47, 0x61, 0x96, 0x99, 0x24, 0x56, 0x27, 0x6e,
		0xf9, 0x05, 0x5f, 0x7f, 0x5d, 0x0d, 0x76, 0x4e, 0xbf, 0x7f, 0x5d, 0x0b, 0x76, 0x4e, 0x87, 0xdf,
		0xae, 0x0d, 0xfe, 0xf8, 0x67, 0xfd, 0xee, 0xfb, 0xfa, 0xd7, 0xd5, 0xa0, 0x36, 0xfa, 0xe9, 0xfa,
		0xe6, 0xd7, 0xd5, 0x60, 0xf3, 0xf4, 0xcd, 0xeb, 0xbf, 0xfe, 0x7a, 0xbb, 0xe8, 0xbf, 0x79, 0xf3,
		0xcf, 0xc6, 0x9d, 0xaf, 0xee, 0xe3, 0x9f, 0x6a, 0x14, 0x97, 0xc3, 0x93, 0xfa, 0xbf, 0xd5, 0xcb,
		0xcc, 0x7f, 0x5e, 0x4b, 0x49, 0xcd, 0x9b, 0xff, 0x51, 0x28, 0x37, 0xba, 0x12, 0x8a, 0xbf, 0xe2,
		0xc6, 0x9e, 0xec, 0xc6, 0xb6, 0x70, 0x63, 0x55, 0x75, 0x63, 0x03, 0xeb, 0x12, 0x06, 0xe7, 0xbb,
		0xc1, 0x1f, 0xa7, 0xff, 0xac, 0xfd, 0x5a, 0xbb, 0x7b, 0xf7, 0xe6, 0x9f, 0xed, 0xbb, 0x87, 0x3f,
		0xfc, 0x3e, 0xef, 0xaf, 0xad, 0xfd, 0xba, 0x7d, 0xf7, 0xee, 0x91, 0xff, 0xb2, 0x75, 0xf7, 0xee,
		0x89, 0xbf, 0x63, 0xf3, 0xee, 0xf5, 0xcc, 0x5f, 0xed, 0xff, 0x7c, 0xfd, 0xb1, 0x7f, 0x50, 0x7b,
		0xe4, 0x1f, 0x6c, 0x3c, 0xf6, 0x0f, 0x36, 0x1e, 0xf9, 0x07, 0x8f, 0x5e, 0x69, 0xfd, 0x91, 0x7f,
		0xb0, 0x79, 0xf7, 0x7d, 0xe6, 0xef, 0xbf, 0x9e, 0xff, 0x57, 0xb7, 0xee, 0xde, 0x7c, 0x7f, 0xec,
		0xbf, 0x6d, 0xdf, 0x7d, 0x7f, 0xf7, 0xe6, 0x0d, 0x8e, 0xbd, 0x72, 0x8e, 0x1d, 0x35, 0x92, 0x57,
		0x23, 0x80, 0x4e, 0x29, 0x78, 0x28, 0x8f, 0xca, 0x29, 0x4d, 0xd0, 0xd3, 0x37, 0x37, 0x59, 0xa0,
		0xbe, 0x7a, 0x6a, 0xde, 0x25, 0xc9, 0x54, 0xcd, 0xbb, 0x0e, 0x99, 0xaa, 0x05, 0xc4, 0x8a, 0x4c,
		0xd5, 0x42, 0x92, 0x4e, 0xa6, 0x6a, 0xc9, 0x0b, 0x92, 0xa9, 0x2a, 0x11, 0x21, 0x43, 0x05, 0xd5,
		0x73, 0xb8, 0x97, 0xf2, 0x55, 0x50, 0x4d, 0x62, 0x8b, 0xc8, 0xa4, 0x53, 0xff, 0x9b, 0x4a, 0x2a,
		0xa5, 0xa8, 0x35, 0x8a, 0xaf, 0xc3, 0x76, 0xd4, 0x0a, 0x12, 0x13, 0xa6, 0x9d, 0x58, 0x1f, 0x60,
		0x7d, 0x70, 0x3f, 0xb0, 0x2a, 0x58, 0x15, 0xac, 0x0a, 0x56, 0x05, 0xab, 0x82, 0x55, 0x5f, 0x18,
		0x56, 0x8d, 0x5a, 0x26, 0xce, 0xa2, 0xec, 0x56, 0x29, 0x5e, 0x55, 0xd4, 0xbe, 0xec, 0xd7, 0x47,
		0x8f, 0xea, 0x7d, 0x98, 0x2a, 0x34, 0xa9, 0xe3, 0x17, 0x5a, 0x3f, 0xf8, 0xb2, 0xbb, 0x5f, 0xff,
		0xd0, 0x38, 0x3e, 0xfc, 0xfc, 0xff, 0xb3, 0xf7, 0xb6, 0x3d, 0x6d, 0x2b, 0xdd, 0xf7, 0xf0, 0xfb,
		0x7e, 0x8a, 0xc8, 0xba, 0xa4, 0x1f, 0x48, 0xc7, 0x35, 0x09, 0x79, 0x28, 0x95, 0xee, 0x17, 0xa1,
		0xd0, 0x2a, 0x12, 0x25, 0x28, 0x94, 0xa3, 0xeb, 0x2f, 0xca, 0x65, 0x4d, 0x92, 0x09, 0x9d, 0x36,
		0x8c, 0x2d, 0x7b, 0x42, 0x41, 0x2d, 0xdf, 0xfd, 0x56, 0x9e, 0x0c, 0x24, 0xe1, 0x9c, 0x26, 0xc4,
		0x9e, 0xe5, 0x64, 0x45, 0x47, 0x8a, 0x31, 0xa4, 0xd9, 0x67, 0x3c, 0x7b, 0xaf, 0xb5, 0xd7, 0x9e,
		0xd9, 0xf3, 0xe5, 0xd8, 0x6f, 0x1d, 0xd7, 0xcf, 0x9b, 0xa7, 0x68, 0xd1, 0x75, 0xb4, 0x4b, 0x3d,
		0x86, 0x2c, 0x13, 0x81, 0xee, 0xeb, 0x9f, 0x7d, 0xba, 0xf5, 0x73, 0xff, 0xa4, 0xd9, 0x3c, 0x73,
		0xd8, 0xb1, 0x61, 0x63, 0x1e, 0xe9, 0x87, 0x93, 0x8b, 0xf3, 0x2f, 0xc7, 0x2d, 0x3e, 0xd7, 0x4d,
		0x7b, 0xae, 0xcd, 0xd3, 0x8f, 0xc7, 0x47, 0x7c, 0xa2, 0x9b, 0xf3, 0x44, 0x9b, 0xad, 0xc6, 0xa7,
		0xc6, 0x69, 0xfd, 0x4b, 0xb3, 0xe5, 0xb0, 0x1b, 0xc8, 0x3f, 0xbe, 0xae, 0x98, 0x8f, 0x80, 0x59,
		0x81, 0xa0, 0x0e, 0xf6, 0x45, 0x6c, 0xdc, 0x9b, 0xa0, 0xab, 0x7a, 0x4a, 0x76, 0xf1, 0xc4, 0xc1,
		0xe7, 0xe6, 0x51, 0x1b, 0x5c, 0x64, 0x0e, 0xb5, 0xc1, 0x25, 0x26, 0x14, 0xb5, 0xc1, 0xa5, 0x66,
		0x3a, 0xb5, 0xc1, 0x57, 0x1a, 0x48, 0x6d, 0x30, 0x47, 0xfc, 0x17, 0x58, 0x1b, 0x34, 0xea, 0x46,
		0x1a, 0xd5, 0xf9, 0x11, 0x57, 0xcb, 0x80, 0xda, 0x20, 0xd0, 0x36, 0x02, 0xe7, 0x42, 0x8f, 0x9b,
		0x18, 0x3a, 0x5a, 0xe8, 0x20, 0x96, 0x9d, 0x40, 0x77, 0xa1, 0x76, 0xa9, 0xb2, 0xef, 0xed, 0x1f,
		0x0e, 0x14, 0xfb, 0xde, 0xbe, 0xc2, 0x3e, 0xf6, 0xf4, 0xdc, 0x60, 0x6d, 0x26, 0x1f, 0x7d, 0x6f,
		0x8b, 0xef, 0xca, 0xe5, 0x6a, 0xad, 0x5c, 0xde, 0xab, 0xed, 0xd7, 0xf6, 0x0e, 0x2a, 0x95, 0x62,
		0xb5, 0xc8, 0x0e, 0xb8, 0x1b, 0xef, 0x2d, 0xdc, 0xc7, 0xb1, 0xf0, 0xc5, 0x7d, 0x1c, 0x30, 0xd1,
		0xd4, 0x99, 0x9e, 0x38, 0x0e, 0xa7, 0x76, 0x4d, 0x0d, 0x03, 0xc9, 0x86, 0x8e, 0x64, 0x4f, 0x0c,
		0xfa, 0x06, 0x8a, 0xab, 0x3a, 0x7b, 0x18, 0xb9, 0xf3, 0x15, 0xb5, 0xc8, 0x45, 0xe6, 0x50, 0x8b,
		0x5c, 0xc2, 0xdd, 0xa9, 0x45, 0x2e, 0x35, 0xd3, 0xa9, 0x45, 0xbe, 0xd2, 0x40, 0x6a, 0x91, 0x39,
		0xca, 0xf7, 0x78, 0xbc, 0xd5, 0xf2, 0x28, 0xc8, 0xe3, 0xad, 0xfe, 0xed, 0x45, 0x99, 0x6f, 0x35,
		0x2d, 0x83, 0x32, 0xdf, 0xc6, 0x0b, 0x17, 0x94, 0xf9, 0x56, 0x73, 0x0d, 0x1e, 0x6f, 0xb5, 0x3d,
		0x3e, 0x42, 0x71, 0x6f, 0xb1, 0x18, 0x40, 0x71, 0x0f, 0x25, 0x86, 0x3a, 0x93, 0xcd, 0xa4, 0xc1,
		0xc0, 0x48, 0x3c, 0x81, 0xef, 0xa9, 0x71, 0x14, 0x90, 0x16, 0x99, 0x43, 0x01, 0x69, 0x89, 0xe9,
		0x44, 0x01, 0x69, 0xa9, 0x99, 0x4e, 0x01, 0xe9, 0x95, 0x06, 0x52, 0x40, 0xca, 0x51, 0x26, 0x01,
		0x2c, 0x20, 0xb5, 0x83, 0xa0, 0x2f, 0x85, 0x46, 0xdc, 0xe4, 0x5a, 0x24, 0x95, 0x03, 0xb0, 0xc0,
		0xb2, 0x0b, 0x39, 0x75, 0xad, 0x03, 0x23, 0x86, 0x49, 0x23, 0x84, 0x03, 0x39, 0x71, 0xe7, 0x9b,
		0xbc, 0x11, 0xe1, 0xa4, 0x49, 0x8f, 0x17, 0x84, 0x52, 0x77, 0x46, 0x44, 0xc9, 0xd5, 0xd2, 0xfc,
		0x0c, 0xa2, 0x1f, 0xae, 0xd2, 0xb1, 0x11, 0xba, 0x23, 0xbd, 0xd9, 0x1b, 0xf1, 0xdc, 0x1d, 0x2f,
		0x8c, 0x02, 0x13, 0x74, 0x82, 0x7e, 0x9c, 0x5c, 0x79, 0xed, 0xeb, 0xd0, 0x8b, 0x54, 0xdb, 0x13,
		0x3d, 0xe5, 0xc6, 0xa2, 0xa7, 0xe2, 0xe4, 0xca, 0x1b, 0x9d, 0xc8, 0x10, 0x47, 0x46, 0xba, 0x61,
		0xd0, 0x57, 0x9d, 0x7b, 0x4f, 0x4b, 0x75, 0xfd, 0xad, 0x1d, 0x44, 0x71, 0x72, 0xe5, 0x89, 0xee,
		0xf7, 0x11, 0x1a, 0x04, 0x03, 0xe3, 0x86, 0x41, 0x6c, 0xbc, 0x11, 0xc5, 0x8d, 0xc7, 0x6f, 0xe3,
		0xc6, 0x40, 0x00, 0xce, 0xee, 0xc4, 0x26, 0x1a, 0x74, 0x8c, 0x9e, 0x44, 0xa1, 0x66, 0x32, 0x8a,
		0xa7, 0xe3, 0x11, 0x6a, 0x4c, 0x06, 0xc8, 0x9f, 0xf9, 0x39, 0x9e, 0xbd, 0xe1, 0x9f, 0x4d, 0x47,
		0x30, 0xb9, 0xf2, 0x0f, 0xaf, 0x43, 0xbf, 0xa5, 0xda, 0x7e, 0xbd, 0xa7, 0xce, 0x87, 0x03, 0x38,
		0xbd, 0xf0, 0x1b, 0xe1, 0x6d, 0xf9, 0x3c, 0x32, 0xf2, 0x6c, 0x34, 0x7a, 0xfe, 0xe9, 0x74, 0xf4,
		0x92, 0x2b, 0xbf, 0xde, 0xfd, 0xde, 0x52, 0xed, 0xe6, 0xc0, 0x9c, 0x05, 0xb1, 0xf1, 0x5b, 0xa3,
		0xa1, 0x1b, 0xbf, 0xf9, 0xe7, 0xa3, 0xa1, 0x7b, 0xb3, 0x9d, 0x91, 0xc0, 0x62, 0x14, 0x70, 0x06,
		0xfa, 0x87, 0x0e, 0x7e, 0x6a, 0x57, 0x18, 0x13, 0xa9, 0xf6, 0xf0, 0x89, 0x58, 0x8f, 0x04, 0x8f,
		0xf5, 0x97, 0x79, 0xdb, 0x2c, 0xc7, 0xcb, 0x29, 0x7a, 0x5a, 0x36, 0x03, 0x25, 0x79, 0x44, 0x4a,
		0x1a, 0x31, 0x93, 0x45, 0xb4, 0x24, 0x11, 0x36, 0x39, 0x84, 0x4d, 0x0a, 0x61, 0x93, 0xc1, 0xed,
		0x66, 0xae, 0x47, 0x2a, 0xc2, 0x08, 0x3b, 0x73, 0x20, 0x85, 0xa7, 0xc6, 0xce, 0x9b, 0x88, 0xa5,
		0xc9, 0x16, 0xa9, 0xc9, 0xc2, 0xc3, 0x2b, 0x36, 0xcc, 0xa2, 0xc2, 0x2d, 0x3c, 0xec, 0xc2, 0xc3,
		0x2f, 0x3c, 0x0c, 0xe3, 0x48, 0x59, 0x05, 0x20, 0x4d, 0x16, 0x05, 0x9e, 0x13, 0x83, 0x86, 0xd8,
		0xe7, 0x1a, 0x34, 0xa5, 0xf8, 0x59, 0x44, 0x7d, 0x34, 0x11, 0xcc, 0xf5, 0xb0, 0x4a, 0xa7, 0xb0,
		0x70, 0x8d, 0x0c, 0xdb, 0xf9, 0x80, 0x6f, 0x74, 0x18, 0xcf, 0x0d, 0x9c, 0xe7, 0x06, 0xd6, 0x73,
		0x03, 0xef, 0x58, 0x30, 0x0f, 0x06, 0xf7, 0xc9, 0x53, 0xfc, 0x82, 0x08, 0xb0, 0x05, 0xec, 0x73,
		0x32, 0xe6, 0xb2, 0xe1, 0x1a, 0xe6, 0x59, 0xa5, 0xd3, 0x73, 0x33, 0xc6, 0xc7, 0x5f, 0x3c, 0x92,
		0x15, 0xae, 0x95, 0x44, 0x77, 0x4d, 0x67, 0x5c, 0x98, 0x84, 0x25, 0xbe, 0x28, 0x75, 0xd3, 0x85,
		0xde, 0x48, 0xd2, 0x4b, 0xd2, 0x4b, 0xd2, 0x4b, 0xd2, 0x4b, 0xd2, 0x4b, 0x64, 0x5d, 0xfc, 0x14,
		0xd1, 0xb4, 0xae, 0xc4, 0xb0, 0x11, 0x47, 0xeb, 0x4b, 0xe0, 0x6d, 0x87, 0xcf, 0xa4, 0xaf, 0xa1,
		0xa5, 0xa0, 0x8e, 0x8a, 0xa9, 0x80, 0xc1, 0x93, 0x82, 0x3c, 0x90, 0x83, 0x7c, 0x91, 0x84, 0xbc,
		0x90, 0x85, 0xdc, 0x91, 0x86, 0xdc, 0x91, 0x87, 0xdc, 0x91, 0x08, 0x4c, 0x32, 0x01, 0x4a, 0x2a,
		0x92, 0xa7, 0x0b, 0xab, 0xa8, 0xcd, 0xc5, 0xcd, 0x81, 0xd2, 0xa6, 0x58, 0x45, 0x8e, 0x99, 0x13,
		0x14, 0xaf, 0x02, 0x9b, 0x88, 0xd9, 0x4d, 0x63, 0xf6, 0x85, 0x8d, 0x39, 0x05, 0xf4, 0x6e, 0x1b,
		0x73, 0xc6, 0x82, 0x77, 0xdf, 0x98, 0xb3, 0x37, 0x2f, 0x9d, 0x06, 0xe6, 0x63, 0x15, 0x7a, 0xe7,
		0x81, 0x9c, 0xc0, 0xd2, 0x73, 0x57, 0x13, 0x77, 0xf9, 0x73, 0xb5, 0x6a, 0xa5, 0xb2, 0x5f, 0xa1,
		0xbb, 0xd1, 0xdd, 0x72, 0xc0, 0x4d, 0xf1, 0xad, 0xbb, 0x22, 0xa7, 0x5f, 0xc2, 0x2d, 0xe4, 0x9d,
		0x89, 0x84, 0x3b, 0xd0, 0xb1, 0x11, 0xed, 0x3e, 0x38, 0xbb, 0x8f, 0x64, 0x4f, 0x46, 0x52, 0x77,
		0x48, 0x4a, 0xd7, 0x98, 0x2a, 0xb5, 0x3e, 0x7e, 0x28, 0x94, 0x4b, 0xb5, 0x62, 0xc1, 0x2d, 0xd4,
		0x0b, 0x87, 0x41, 0xd4, 0x95, 0x51, 0xe1, 0x93, 0x30, 0xf2, 0xa7, 0xb8, 0x2f, 0x4c, 0x37, 0x5a,
		0x16, 0xca, 0x85, 0x9d, 0xc3, 0x4f, 0x67, 0x6e, 0x79, 0xd7, 0xc9, 0x01, 0x07, 0xc8, 0x89, 0x1c,
		0xf5, 0x98, 0x0a, 0x3e, 0xca, 0x52, 0x8f, 0x33, 0x3c, 0x27, 0xa8, 0x9a, 0x37, 0x85, 0x2a, 0x31,
		0xfc, 0xa9, 0x52, 0xb5, 0xa4, 0x0b, 0x90, 0x39, 0x90, 0x39, 0x6c, 0xf5, 0x78, 0x21, 0xb6, 0x6d,
		0xc4, 0x5d, 0x53, 0x3f, 0x87, 0xb8, 0xa8, 0x6b, 0xeb, 0x1f, 0x01, 0x89, 0x15, 0xc6, 0x57, 0x19,
		0xc8, 0x0a, 0xe3, 0x96, 0x52, 0x3a, 0x56, 0x18, 0x33, 0xe5, 0x6d, 0xac, 0x30, 0x6e, 0x9a, 0x1a,
		0x91, 0xaf, 0x0a, 0xe3, 0xbb, 0x1c, 0x14, 0x18, 0x2b, 0x2c, 0x30, 0x6e, 0xbe, 0x96, 0xc3, 0x02,
		0x63, 0x8a, 0xf6, 0xb2, 0xe2, 0xb1, 0xe5, 0xa8, 0xf4, 0xdc, 0xd5, 0xf2, 0x58, 0x60, 0x2c, 0x55,
		0x58, 0x5e, 0xa4, 0xb3, 0xe5, 0x81, 0x98, 0xe2, 0x5b, 0xc7, 0xf2, 0xe2, 0x32, 0x6e, 0xc1, 0xf2,
		0xe2, 0x96, 0x52, 0x52, 0x96, 0x17, 0x61, 0x12, 0x41, 0x96, 0x17, 0xb3, 0x37, 0x9c, 0xe5, 0x45,
		0x5a, 0x97, 0x13, 0xe6, 0xc0, 0xf2, 0xe2, 0x1f, 0xf8, 0xf3, 0xa8, 0x66, 0x77, 0x3b, 0x49, 0xa7,
		0xf2, 0x50, 0x5f, 0x1c, 0xdb, 0xca, 0x02, 0xe3, 0x2a, 0xe6, 0xb1, 0xc0, 0xb8, 0xc6, 0xd9, 0xc8,
		0x02, 0x63, 0x4a, 0x64, 0x8e, 0x05, 0xc6, 0xd4, 0x99, 0x1b, 0x0b, 0x8c, 0x9b, 0xa6, 0x47, 0xe4,
		0xa7, 0xc0, 0xd8, 0x56, 0x5a, 0x44, 0xf7, 0x39, 0xa8, 0x30, 0x1e, 0x00, 0x9b, 0x78, 0x22, 0xf5,
		0xf5, 0xa8, 0x59, 0x18, 0xf5, 0x9c, 0x57, 0x8e, 0x64, 0x2e, 0x4b, 0x8c, 0x45, 0x56, 0x3d, 0x52,
		0x0e, 0x56, 0x2c, 0x31, 0xa6, 0xe0, 0x6a, 0xdc, 0xc3, 0x48, 0x77, 0xdb, 0x10, 0x77, 0xa3, 0x54,
		0xb8, 0xd2, 0x8b, 0x45, 0xc6, 0x65, 0xdc, 0x82, 0x45, 0xc6, 0x2d, 0x25, 0xa5, 0x2c, 0x32, 0xc2,
		0xe4, 0x82, 0x2c, 0x32, 0x66, 0x6f, 0x38, 0x8b, 0x8c, 0xb4, 0x2e, 0x27, 0xcc, 0x81, 0x45, 0xc6,
		0x3f, 0xe3, 0x31, 0x52, 0x77, 0x65, 0x17, 0xbf, 0xc4, 0x98, 0x58, 0xca, 0x02, 0xe3, 0x2a, 0xe6,
		0xb1, 0xc0, 0xb8, 0xc6, 0xb9, 0xc8, 0x02, 0x63, 0x4a, 0x44, 0x8e, 0x05, 0xc6, 0xd4, 0x59, 0x1b,
		0x0b, 0x8c, 0x9b, 0xa6, 0x45, 0xe4, 0xa8, 0xc0, 0x18, 0x04, 0x7d, 0x29, 0x74, 0x0e, 0x2a, 0x8c,
		0xc5, 0x22, 0xa7, 0xe0, 0x72, 0x34, 0x92, 0x72, 0xd8, 0xda, 0x5f, 0x94, 0xc3, 0xc8, 0x9e, 0x56,
		0x61, 0x51, 0x94, 0xc3, 0x6c, 0x10, 0x2b, 0xca, 0x61, 0xb4, 0xae, 0x40, 0x39, 0x2c, 0xcf, 0x5c,
		0xc6, 0x09, 0x42, 0xa3, 0x02, 0x2d, 0xfa, 0xf8, 0x72, 0x58, 0x62, 0x29, 0xe5, 0xb0, 0x55, 0xcc,
		0xa3, 0x1c, 0xb6, 0xce, 0xb9, 0x48, 0x39, 0x2c, 0x1d, 0x22, 0x47, 0x39, 0x2c, 0x75, 0xd6, 0x46,
		0x39, 0x6c, 0xd3, 0xb4, 0x08, 0xca, 0x61, 0xeb, 0x87, 0x71, 0xca, 0x61, 0x4b, 0x8d, 0x1a, 0xe5,
		0xb0, 0x34, 0x5e, 0x94, 0xc3, 0xc8, 0x9e, 0x56, 0x61, 0x51, 0x94, 0xc3, 0x6c, 0x10, 0x2b, 0xca,
		0x61, 0xb4, 0xae, 0x40, 0x39, 0x2c, 0xcf, 0x5c, 0xc6, 0x09, 0x45, 0x64, 0x54, 0x1e, 0xd4, 0xb0,
		0xa9, 0xa1, 0x14, 0xc3, 0x56, 0x31, 0x8f, 0x62, 0xd8, 0x1a, 0xa7, 0x22, 0xc5, 0xb0, 0x94, 0x68,
		0x1c, 0xc5, 0xb0, 0xd4, 0x39, 0x1b, 0xc5, 0xb0, 0x4d, 0x53, 0x22, 0x28, 0x86, 0xad, 0x1f, 0xc6,
		0x29, 0x86, 0x2d, 0x35, 0x6a, 0x14, 0xc3, 0xd2, 0x78, 0x51, 0x0c, 0x23, 0x7b, 0x5a, 0x85, 0x45,
		0x51, 0x0c, 0xb3, 0x41, 0xac, 0x28, 0x86, 0xd1, 0xba, 0x02, 0xc5, 0xb0, 0x3c, 0x73, 0x19, 0xc7,
		0x44, 0x42, 0xc7, 0x6a, 0xd2, 0x0b, 0x05, 0x5c, 0x0f, 0x7b, 0x62, 0x2b, 0x25, 0xb1, 0x55, 0xcc,
		0xa3, 0x24, 0xb6, 0xc6, 0xd9, 0x48, 0x49, 0x2c, 0x25, 0x32, 0x47, 0x49, 0x2c, 0x75, 0xe6, 0x46,
		0x49, 0x6c, 0xd3, 0xf4, 0x08, 0x4a, 0x62, 0xeb, 0x87, 0x71, 0x4a, 0x62, 0x4b, 0x8d, 0x1a, 0x25,
		0xb1, 0x34, 0x5e, 0x94, 0xc4, 0xc8, 0x9e, 0x56, 0x61, 0x51, 0x94, 0xc4, 0x6c, 0x10, 0x2b, 0x4a,
		0x62, 0xb4, 0xae, 0x40, 0x49, 0x2c, 0xa7, 0x16, 0x81, 0x31, 0x2b, 0xa7, 0xae, 0x75, 0x60, 0x84,
		0x51, 0x01, 0x66, 0xcb, 0x78, 0x27, 0xee, 0x7c, 0x93, 0x37, 0x22, 0x14, 0xa3, 0x93, 0x01, 0x1c,
		0x2f, 0x08, 0xa5, 0xee, 0x8c, 0x24, 0x26, 0x57, 0x4b, 0xf3, 0x33, 0x88, 0x7e, 0xb8, 0x6a, 0xc8,
		0x06, 0x75, 0x47, 0x7a, 0xb3, 0x37, 0xe2, 0xb9, 0x3b, 0x5e, 0x38, 0x89, 0x8f, 0x71, 0x72, 0xe5,
		0xb5, 0xaf, 0x43, 0x2f, 0x52, 0x6d, 0x4f, 0xf4, 0x94, 0x1b, 0x8b, 0x9e, 0x8a, 0x93, 0x2b, 0x4f,
		0x85, 0xb7, 0x65, 0x37, 0x8e, 0x8c, 0x74, 0xc3, 0xa0, 0xaf, 0x3a, 0xf7, 0x9e, 0x96, 0xea, 0xfa,
		0x5b, 0x3b, 0x88, 0xe2, 0xe4, 0xca, 0x13, 0xdd, 0xef, 0xa3, 0x3c, 0x37, 0x18, 0x18, 0x37, 0x0c,
		0x62, 0xe3, 0x45, 0xc1, 0xc0, 0xc8, 0x78, 0xfc, 0xe6, 0x0d, 0xf4, 0x0f, 0x1d, 0xfc, 0xd4, 0xae,
		0x30, 0x26, 0x52, 0xed, 0xd1, 0x2f, 0xe6, 0x6e, 0x79, 0xb1, 0x11, 0x06, 0x11, 0x42, 0x9d, 0xd8,
		0x44, 0x83, 0x8e, 0xd1, 0x13, 0xea, 0xd5, 0x4c, 0x86, 0xfe, 0x74, 0x3c, 0xac, 0x8d, 0xc9, 0xa8,
		0xfa, 0x33, 0x3f, 0xc7, 0xb3, 0x37, 0xfc, 0x29, 0x2c, 0xc5, 0xc9, 0x95, 0x7f, 0x78, 0x1d, 0xfa,
		0x2d, 0xd5, 0xf6, 0xeb, 0x3d, 0x75, 0x3e, 0x1c, 0xf5, 0xe9, 0x85, 0xdf, 0x08, 0x6f, 0xcb, 0xe7,
		0x91, 0x91, 0x67, 0xa3, 0x21, 0xf7, 0x4f, 0xa7, 0x43, 0x9e, 0x5c, 0xf9, 0xf5, 0xee, 0xf7, 0x96,
		0x6a, 0x37, 0x07, 0xe6, 0x2c, 0x88, 0x8d, 0xdf, 0x1a, 0x8d, 0xf7, 0xf8, 0xcd, 0xbf, 0x18, 0x0f,
		0x6e, 0x3d, 0x19, 0xee, 0xb9, 0x3b, 0xfe, 0xf9, 0x68, 0xb4, 0xdf, 0x30, 0x42, 0xe1, 0x5a, 0x02,
		0x12, 0x23, 0x87, 0x54, 0x37, 0x39, 0xa3, 0xcd, 0xdc, 0x87, 0x28, 0x3e, 0xea, 0x9c, 0xa8, 0xd8,
		0x0c, 0x27, 0x34, 0x54, 0xc4, 0x76, 0x3e, 0x2b, 0x7d, 0xdc, 0x97, 0x43, 0x96, 0x0a, 0xd6, 0xa6,
		0xdf, 0xf9, 0x2c, 0xee, 0x9e, 0x58, 0x56, 0x7c, 0x57, 0x2e, 0x57, 0x6b, 0xe5, 0xf2, 0x5e, 0x6d,
		0xbf, 0xb6, 0x77, 0x50, 0xa9, 0x14, 0xab, 0x45, 0xa0, 0xc3, 0x10, 0x9c, 0xe6, 0x90, 0xd0, 0xcb,
		0xee, 0xe1, 0x70, 0xea, 0xe9, 0x41, 0xbf, 0x8f, 0x68, 0xda, 0x45, 0x2c, 0x23, 0xa8, 0x73, 0x0d,
		0x50, 0x22, 0x06, 0x28, 0x9b, 0xda, 0x02, 0x16, 0x05, 0xc4, 0x9f, 0x36, 0x92, 0x37, 0x61, 0x30,
		0x26, 0xfb, 0xfc, 0xc4, 0xae, 0x05, 0x96, 0xe3, 0x1c, 0x5a, 0x7c, 0xdb, 0xb8, 0xb8, 0x06, 0x10,
		0xc5, 0x36, 0x21, 0x7a, 0xd9, 0x0d, 0x56, 0xf6, 0x42, 0x84, 0x9d, 0x6f, 0xb6, 0x14, 0x94, 0xa6,
		0xe9, 0xd9, 0xd0, 0xfb, 0x5d, 0xd5, 0x2d, 0x48, 0xdd, 0x0d, 0x03, 0xa5, 0x4d, 0xa1, 0x13, 0xf4,
		0x83, 0xc8, 0x92, 0x27, 0x61, 0xe4, 0x66, 0x38, 0xb9, 0x18, 0x74, 0xee, 0x05, 0x94, 0x6b, 0x01,
		0xe5, 0x56, 0xb6, 0xdc, 0x19, 0x84, 0x5b, 0xe4, 0x9b, 0x53, 0x58, 0x24, 0x10, 0xf9, 0x23, 0x0e,
		0x76, 0x68, 0x42, 0xf6, 0x20, 0x9d, 0xed, 0x37, 0x66, 0x1c, 0x3f, 0x6c, 0xc7, 0x8d, 0xbc, 0xc6,
		0x0b, 0x0b, 0x91, 0x22, 0x4f, 0x11, 0x22, 0xdb, 0xd8, 0x90, 0x9d, 0x87, 0x66, 0xf3, 0x4d, 0x19,
		0xc5, 0x00, 0x5b, 0xbe, 0x9f, 0x3b, 0x9f, 0xcf, 0xd0, 0xd9, 0x73, 0xe1, 0xe4, 0xd9, 0x78, 0x77,
		0xfa, 0xbe, 0x96, 0x81, 0x9f, 0x39, 0xcf, 0xe6, 0x52, 0x94, 0xdd, 0x4a, 0xc5, 0x64, 0xcd, 0xe7,
		0xac, 0x01, 0x19, 0xc5, 0x96, 0xe9, 0x0a, 0xed, 0x8c, 0xbe, 0x2e, 0xeb, 0x8d, 0x53, 0x36, 0x36,
		0x42, 0xd9, 0xdd, 0xd8, 0x64, 0x6b, 0xa9, 0xad, 0xf5, 0x8d, 0x47, 0xd6, 0xd7, 0xbd, 0x5a, 0xdf,
		0x18, 0xb4, 0x59, 0xac, 0xe7, 0x48, 0x65, 0x2b, 0x2f, 0x3a, 0x93, 0x8c, 0x21, 0x73, 0xc7, 0x99,
		0x86, 0x0b, 0x2b, 0x19, 0x4b, 0xc6, 0x00, 0x60, 0x0d, 0x08, 0x6c, 0x02, 0x02, 0x06, 0x30, 0xd8,
		0x06, 0x08, 0x18, 0xa0, 0x80, 0x01, 0x0c, 0x18, 0xe0, 0xd8, 0x0e, 0x09, 0x2d, 0x6b, 0x40, 0x79,
		0x0e, 0x2c, 0xf6, 0xfc, 0xed, 0x19, 0xbe, 0xd8, 0xf2, 0x35, 0x3b, 0x30, 0x63, 0x1d, 0x6e, 0x10,
		0x60, 0x07, 0x0b, 0x7e, 0x50, 0x60, 0x08, 0x0e, 0x8e, 0xe0, 0x60, 0x09, 0x0e, 0x9e, 0xec, 0xc0,
		0x94, 0x25, 0xb8, 0xb2, 0x0e, 0x5b, 0x89, 0x01, 0xe3, 0x95, 0x26, 0xd6, 0xfd, 0x74, 0x1a, 0xbd,
		0x6c, 0x2e, 0x7c, 0x99, 0x85, 0x33, 0xcb, 0xeb, 0xff, 0x61, 0xfa, 0x10, 0x21, 0xf5, 0x1b, 0xc2,
		0xec, 0x2b, 0x84, 0xb6, 0x03, 0x1e, 0xb6, 0x4f, 0x10, 0xec, 0xf6, 0x75, 0xd8, 0xbe, 0x3f, 0xdb,
		0xbd, 0x58, 0x1b, 0xa6, 0x5f, 0x4f, 0x12, 0x77, 0xfa, 0x52, 0xf4, 0x22, 0xd9, 0x43, 0x08, 0x3a,
		0xd3, 0xac, 0xab, 0x06, 0x60, 0xcb, 0xd9, 0xa4, 0x8e, 0xfc, 0xf6, 0xed, 0x78, 0x2f, 0xb0, 0x37,
		0x06, 0xf2, 0x6d, 0x5d, 0xc4, 0x6c, 0x31, 0xf3, 0x9a, 0xae, 0x21, 0xc6, 0xe1, 0x74, 0x89, 0x45,
		0xa4, 0x75, 0xa4, 0x75, 0xa4, 0x75, 0xa4, 0x75, 0xa4, 0x75, 0xa4, 0x75, 0xa4, 0x75, 0xb9, 0xa4,
		0x75, 0x09, 0x96, 0x93, 0xd9, 0x65, 0xfe, 0x30, 0x26, 0xbb, 0xc4, 0x70, 0x88, 0xdd, 0xd4, 0x20,
		0xf2, 0x3a, 0xf2, 0x3a, 0xf2, 0x3a, 0xf2, 0x3a, 0xf2, 0x3a, 0xf2, 0x3a, 0xf2, 0xba, 0x5c, 0xf2,
		0xba, 0x29, 0x94, 0x93, 0xd6, 0x65, 0xfe, 0x2c, 0xc6, 0xbd, 0x13, 0x61, 0x48, 0x1d, 0x42, 0x2b,
		0x47, 0xcb, 0x0b, 0x8a, 0x48, 0xe9, 0x48, 0xe9, 0x48, 0xe9, 0x48, 0xe9, 0x48, 0xe9, 0xec, 0x2f,
		0x50, 0x4a, 0x0c, 0x19, 0xb5, 0x30, 0x55, 0xba, 0x2b, 0x71, 0x0e, 0xbe, 0x7a, 0xdc, 0xde, 0xf7,
		0x68, 0x1b, 0x4a, 0xdf, 0x57, 0xa8, 0x23, 0xd6, 0xe0, 0x8e, 0x54, 0x43, 0x3c, 0x42, 0x0d, 0xfb,
		0xc8, 0x34, 0xd4, 0x43, 0x3e, 0xe0, 0x8f, 0x44, 0x83, 0x3f, 0xb1, 0x03, 0xfe, 0xc8, 0x33, 0x76,
		0xf4, 0x86, 0xd4, 0x58, 0x80, 0xb5, 0x16, 0x44, 0xcd, 0x65, 0x91, 0xf6, 0xf2, 0x0f, 0xff, 0x8d,
		0x28, 0x45, 0x2c, 0x4d, 0x9c, 0x5c, 0x4d, 0x94, 0x9a, 0x31, 0xcd, 0x60, 0x2b, 0x5b, 0x14, 0xa7,
		0x04, 0x59, 0x41, 0x3f, 0xe7, 0x8d, 0x08, 0x2b, 0xe9, 0x49, 0x47, 0x49, 0x47, 0x49, 0x47, 0x49,
		0x47, 0x49, 0x47, 0x49, 0x47, 0x33, 0x8f, 0x5b, 0x03, 0xa5, 0xcd, 0x7e, 0x09, 0x90, 0x8d, 0x22,
		0x91, 0xd1, 0x96, 0xd0, 0xd7, 0x78, 0xa7, 0xbb, 0x02, 0x1e, 0xe2, 0xf6, 0x59, 0x69, 0xd8, 0x03,
		0x4e, 0x9d, 0xbf, 0x45, 0x7f, 0x20, 0xb1, 0x4e, 0x2c, 0x7a, 0x66, 0xdf, 0xc7, 0x48, 0x74, 0x8c,
		0x0a, 0xf4, 0x91, 0xba, 0x56, 0x68, 0x47, 0x2b, 0x3d, 0x8f, 0x1d, 0xf2, 0x5a, 0x18, 0x75, 0x2b,
		0xa1, 0x4e, 0x06, 0x02, 0x0c, 0xfb, 0xcf, 0x5d, 0x43, 0xdc, 0xe1, 0xbb, 0x46, 0xb9, 0x74, 0x50,
		0x3e, 0xa8, 0xd6, 0x4a, 0x07, 0x15, 0xfa, 0xc8, 0xa6, 0xfb, 0x08, 0x4f, 0x46, 0x5c, 0xf8, 0xba,
		0xa2, 0x68, 0x84, 0x12, 0x43, 0x9d, 0x4e, 0x70, 0x73, 0x33, 0xd0, 0xca, 0xdc, 0xa3, 0x96, 0x34,
		0x67, 0x0d, 0xa4, 0x90, 0xb4, 0xc8, 0x1c, 0x0a, 0x49, 0x4b, 0x4c, 0x29, 0x0a, 0x49, 0x4b, 0xcd,
		0x74, 0x0a, 0x49, 0xaf, 0x34, 0x90, 0x42, 0x52, 0x8e, 0x32, 0x0a, 0xd6, 0x35, 0x57, 0x80, 0xc1,
		0x1c, 0xd6, 0x35, 0xa7, 0xbc, 0x42, 0xc9, 0x38, 0xb9, 0xbe, 0x67, 0x69, 0x13, 0x93, 0xa5, 0xc2,
		0xf4, 0x92, 0x98, 0xf3, 0x49, 0x90, 0x9e, 0x12, 0xe4, 0xa5, 0xe4, 0xa5, 0xe4, 0xa5, 0xe4, 0xa5,
		0xe4, 0xa5, 0xe4, 0xa5, 0x99, 0xc7, 0x2d, 0x15, 0xba, 0xa2, 0xdb, 0x8d, 0x64, 0x1c, 0x23, 0x52,
		0xd3, 0x03, 0x20, 0x9b, 0x26, 0xcf, 0x90, 0x45, 0xce, 0x3f, 0x9e, 0x59, 0xb7, 0x65, 0xc0, 0xb9,
		0x35, 0x37, 0xc7, 0xde, 0x01, 0xda, 0x76, 0x26, 0x8c, 0x91, 0x91, 0x86, 0x9b, 0x6e, 0x89, 0x81,
		0x3b, 0x97, 0x7b, 0xee, 0xc1, 0xd5, 0xef, 0xcb, 0xa2, 0x7b, 0x70, 0x35, 0xbe, 0x2c, 0x8e, 0xde,
		0x7e, 0x95, 0x1e, 0x7e, 0x97, 0x2e, 0xf7, 0xdc, 0xf2, 0xe4, 0x6e, 0xa9, 0x72, 0xb9, 0xe7, 0x56,
		0xae, 0x76, 0x77, 0xbe, 0x7e, 0x7d, 0xbb, 0xec, 0x67, 0x76, 0x7f, 0xed, 0x3f, 0x38, 0x70, 0xff,
		0xfb, 0x57, 0x88, 0xd3, 0xa5, 0x79, 0xde, 0xf8, 0x2f, 0xfc, 0x9c, 0xf9, 0xdf, 0x4e, 0x56, 0xb3,
		0x66, 0xf7, 0x3f, 0x80, 0xf3, 0x06, 0xab, 0xa0, 0xf8, 0x17, 0x61, 0xec, 0x8f, 0x61, 0xac, 0x4a,
		0x18, 0xdb, 0x54, 0x18, 0x1b, 0x45, 0x17, 0xe1, 0xf6, 0xea, 0xee, 0xc7, 0xab, 0x5f, 0xc5, 0xbf,
		0xca, 0x0f, 0xef, 0x77, 0x7f, 0xd5, 0x1e, 0x66, 0x6f, 0xfe, 0x5e, 0xf4, 0x67, 0xc5, 0xbf, 0x6a,
		0x0f, 0xef, 0x5f, 0xf8, 0x4d, 0xf5, 0xe1, 0xfd, 0x1f, 0xfe, 0x1b, 0x95, 0x87, 0x9d, 0xb9, 0x3f,
		0x1d, 0xde, 0x2f, 0xbd, 0xf4, 0x81, 0xf2, 0x0b, 0x1f, 0xd8, 0x7f, 0xe9, 0x03, 0xfb, 0x2f, 0x7c,
		0xe0, 0x45, 0x93, 0x4a, 0x2f, 0x7c, 0xa0, 0xf2, 0xf0, 0x7b, 0xee, 0xef, 0x77, 0x16, 0xff, 0x69,
		0xf5, 0x61, 0xf7, 0xf7, 0x4b, 0xbf, 0xab, 0x3d, 0xfc, 0x7e, 0xbf, 0xbb, 0x4b, 0x60, 0xdf, 0x38,
		0x60, 0xa7, 0x1b, 0x65, 0xef, 0x46, 0x24, 0x3a, 0xb9, 0xd0, 0xa1, 0x0a, 0x5c, 0x39, 0x85, 0x44,
		0x3d, 0x1d, 0x79, 0x67, 0x5c, 0xf8, 0xd5, 0x53, 0x8b, 0x8c, 0x64, 0xa5, 0x6a, 0x91, 0x39, 0xac,
		0x54, 0x2d, 0x31, 0xad, 0x58, 0xa9, 0x5a, 0x6a, 0xa6, 0xb3, 0x52, 0xf5, 0x4a, 0x03, 0x59, 0xa9,
		0xca, 0x91, 0x20, 0xc3, 0x15, 0x54, 0xab, 0x68, 0x2f, 0xf9, 0x5b, 0x41, 0xf5, 0x94, 0x5b, 0x28,
		0x19, 0x3f, 0xfb, 0x99, 0x2b, 0xa9, 0x40, 0x59, 0xab, 0xd2, 0xb7, 0xa2, 0xaf, 0xba, 0x6e, 0x24,
		0x45, 0x1c, 0x68, 0x3c, 0xc2, 0x3a, 0x63, 0x1f, 0xb9, 0x2a, 0xb9, 0x2a, 0xb9, 0x2a, 0xb9, 0x2a,
		0xb9, 0x2a, 0xb9, 0xea, 0x96, 0x71, 0x55, 0xd5, 0x95, 0xda, 0x28, 0x73, 0x0f, 0xca, 0x57, 0x81,
		0xb6, 0x2f, 0x3b, 0x8d, 0xc9, 0x50, 0x1d, 0x8a, 0x18, 0x30, 0xa4, 0x4e, 0x1f, 0x68, 0xe3, 0xf4,
		0xef, 0xfa, 0x49, 0xe3, 0xc8, 0x6f, 0x35, 0x2f, 0xbe, 0x1c, 0xfb, 0xad, 0xe3, 0xfa, 0x79, 0xf3,
		0x14, 0x2d, 0xba, 0x8e, 0x76, 0xa9, 0xc7, 0x90, 0x65, 0x22, 0xd0, 0x7d, 0xfd, 0xb3, 0x4f, 0xb7,
		0x7e, 0xee, 0x9f, 0x34, 0x9b, 0x67, 0x0e, 0x3b, 0x36, 0x6c, 0xcc, 0x23, 0xfd, 0x70, 0x72, 0x71,
		0xfe, 0xe5, 0xb8, 0xc5, 0xe7, 0xba, 0x69, 0xcf, 0xb5, 0x79, 0xfa, 0xf1, 0xf8, 0x88, 0x4f, 0x74,
		0x73, 0x9e, 0x68, 0xb3, 0xd5, 0xf8, 0xd4, 0x38, 0xad, 0x7f, 0x69, 0xb6, 0x1c, 0x76, 0x03, 0xf9,
		0xc7, 0xd7, 0x15, 0xf3, 0x11, 0x30, 0x2b, 0x10, 0xd4, 0xc1, 0xbe, 0x88, 0x8d, 0x7b, 0x13, 0x74,
		0x55, 0x4f, 0xc9, 0x2e, 0x9e, 0x38, 0xf8, 0xdc, 0x3c, 0x6a, 0x83, 0x8b, 0xcc, 0xa1, 0x36, 0xb8,
		0xc4, 0x84, 0xa2, 0x36, 0xb8, 0xd4, 0x4c, 0xa7, 0x36, 0xf8, 0x4a, 0x03, 0xa9, 0x0d, 0xe6, 0x88,
		0xff, 0x02, 0x6b, 0x83, 0x46, 0xdd, 0x48, 0xa3, 0x3a, 0x3f, 0xe2, 0x6a, 0x19, 0x50, 0x1b, 0x04,
		0xda, 0x46, 0xe0, 0x5c, 0xe8, 0x71, 0x13, 0x43, 0x47, 0x0b, 0x1d, 0xc4, 0xb2, 0x13, 0xe8, 0x2e,
		0xd4, 0x2e, 0x55, 0xf6, 0xbd, 0xfd, 0xc3, 0x81, 0x62, 0xdf, 0xdb, 0x57, 0xd8, 0xc7, 0x9e, 0x9e,
		0x1b, 0xac, 0xcd, 0xe4, 0xa3, 0xef, 0x6d, 0xf1, 0x5d, 0xb9, 0x5c, 0xad, 0x95, 0xcb, 0x7b, 0xb5,
		0xfd, 0xda, 0xde, 0x41, 0xa5, 0x52, 0xac, 0x16, 0xd9, 0x01, 0x77, 0xe3, 0xbd, 0x85, 0xfb, 0x38,
		0x16, 0xbe, 0xb8, 0x8f, 0x03, 0x26, 0x9a, 0x3a, 0xd3, 0x13, 0xc7, 0xe1, 0xd4, 0xae, 0xa9, 0x61,
		0x20, 0xd9, 0xd0, 0x91, 0xec, 0x89, 0x41, 0xdf, 0x40, 0x71, 0x55, 0x67, 0x0f, 0x23, 0x77, 0xbe,
		0xa2, 0x16, 0xb9, 0xc8, 0x1c, 0x6a, 0x91, 0x4b, 0xb8, 0x3b, 0xb5, 0xc8, 0xa5, 0x66, 0x3a, 0xb5,
		0xc8, 0x57, 0x1a, 0x48, 0x2d, 0x32, 0x47, 0xf9, 0x1e, 0x8f, 0xb7, 0x5a, 0x1e, 0x05, 0x79, 0xbc,
		0xd5, 0xbf, 0xbd, 0x28, 0xf3, 0xad, 0xa6, 0x65, 0x50, 0xe6, 0xdb, 0x78, 0xe1, 0x82, 0x32, 0xdf,
		0x6a, 0xae, 0xc1, 0xe3, 0xad, 0xb6, 0xc7, 0x47, 0x28, 0xee, 0x2d, 0x16, 0x03, 0x28, 0xee, 0xa1,
		0xc4, 0x50, 0x67, 0xb2, 0x99, 0x34, 0x18, 0x18, 0x89, 0x27, 0xf0, 0x3d, 0x35, 0x8e, 0x02, 0xd2,
		0x22, 0x73, 0x28, 0x20, 0x2d, 0x31, 0x9d, 0x28, 0x20, 0x2d, 0x35, 0xd3, 0x29, 0x20, 0xbd, 0xd2,
		0x40, 0x0a, 0x48, 0x39, 0xca, 0x24, 0x80, 0x05, 0xa4, 0x76, 0x10, 0xf4, 0xa5, 0xd0, 0x88, 0x9b,
		0x5c, 0x8b, 0xa4, 0x72, 0x00, 0x16, 0x58, 0x76, 0x21, 0xa7, 0xae, 0x75, 0x60, 0xc4, 0x30, 0x69,
		0x84, 0x70, 0x20, 0x27, 0xee, 0x7c, 0x93, 0x37, 0x22, 0x9c, 0x34, 0xe9, 0xf1, 0x82, 0x50, 0xea,
		0xce, 0x88, 0x28, 0xb9, 0x5a, 0x9a, 0x9f, 0x41, 0xf4, 0xc3, 0x55, 0x3a, 0x36, 0x42, 0x77, 0xa4,
		0x37, 0x7b, 0x23, 0x9e, 0xbb, 0xe3, 0x85, 0x51, 0x60, 0x82, 0x4e, 0xd0, 0x8f, 0x93, 0x2b, 0xaf,
		0x7d, 0x1d, 0x7a, 0x91, 0x6a, 0x7b, 0xa2, 0xa7, 0xdc, 0x58, 0xf4, 0x54, 0x9c, 0x5c, 0x79, 0xa3,
		0x13, 0x19, 0xe2, 0xc8, 0x48, 0x37, 0x0c, 0xfa, 0xaa, 0x73, 0xef, 0x69, 0xa9, 0xae, 0xbf, 0xb5,
		0x83, 0x28, 0x4e, 0xae, 0x3c, 0xd1, 0xfd, 0x3e, 0x42, 0x83, 0x60, 0x60, 0xdc, 0x30, 0x92, 0xde,
		0x88, 0xe1, 0xc6, 0xe3, 0xb7, 0x71, 0x5f, 0x20, 0x00, 0x5f, 0x77, 0x62, 0x13, 0x0d, 0x3a, 0x46,
		0x4f, 0x82, 0x50, 0x33, 0x19, 0xc4, 0xd3, 0xf1, 0x00, 0x35, 0x26, 0xe3, 0xe3, 0xcf, 0xfc, 0x1c,
		0xcf, 0xde, 0xf0, 0xcf, 0xa6, 0x03, 0x98, 0x5c, 0xf9, 0x87, 0xd7, 0xa1, 0xdf, 0x52, 0x6d, 0xbf,
		0xde, 0x53, 0xe7, 0xc3, 0xf1, 0x9b, 0x5e, 0xf8, 0x8d, 0xf0, 0xb6, 0x7c, 0x1e, 0x19, 0x79, 0x36,
		0x1a, 0x3c, 0xff, 0x74, 0x3a, 0x78, 0xc9, 0x95, 0x5f, 0xef, 0x7e, 0x6f, 0xa9, 0x76, 0x73, 0x60,
		0xce, 0x22, 0xe9, 0xb7, 0x46, 0x23, 0x37, 0x7e, 0xf3, 0xcf, 0x47, 0x23, 0xf7, 0x66, 0x3b, 0xe3,
		0x80, 0xc5, 0x18, 0xe0, 0x0c, 0xf4, 0x0f, 0x1d, 0xfc, 0xd4, 0xae, 0x30, 0x26, 0x52, 0xed, 0xe1,
		0x13, 0xb1, 0x1e, 0x07, 0x1e, 0xab, 0x2f, 0xf3, 0xb6, 0x59, 0x8e, 0x96, 0x53, 0xec, 0xb4, 0x6c,
		0x06, 0x4a, 0xea, 0x88, 0x94, 0x32, 0x62, 0xa6, 0x8a, 0x68, 0x29, 0x22, 0x6c, 0x6a, 0x08, 0x9b,
		0x12, 0xc2, 0xa6, 0x82, 0xdb, 0xcd, 0x5b, 0x8f, 0x54, 0x84, 0x11, 0x76, 0xe6, 0x40, 0x0a, 0x4f,
		0x8b, 0x9d, 0x37, 0x11, 0x4b, 0x91, 0x2d, 0x52, 0x91, 0x85, 0x87, 0x57, 0x6c, 0x98, 0x45, 0x85,
		0x5b, 0x78, 0xd8, 0x85, 0x87, 0x5f, 0x78, 0x18, 0xc6, 0x11, 0xb2, 0x0a, 0x40, 0x8a, 0x2c, 0x0a,
		0x3c, 0x27, 0x06, 0x0d, 0xb1, 0xcf, 0x35, 0x68, 0x3a, 0xf1, 0xb3, 0x88, 0xfa, 0x68, 0x22, 0x98,
		0xeb, 0x61, 0x15, 0x4e, 0x61, 0xe1, 0x1a, 0x19, 0xb6, 0xf3, 0x01, 0xdf, 0xe8, 0x30, 0x9e, 0x1b,
		0x38, 0xcf, 0x0d, 0xac, 0xe7, 0x06, 0xde, 0xb1, 0x60, 0x1e, 0x0c, 0xee, 0x93, 0xa7, 0xf8, 0x05,
		0x11, 0x60, 0x0b, 0xd8, 0xa7, 0x64, 0xcc, 0x65, 0xc3, 0x35, 0xcc, 0x93, 0x4a, 0xa7, 0xa7, 0x66,
		0x8c, 0x0f, 0xbf, 0x78, 0x24, 0x2b, 0x5c, 0x29, 0x89, 0xee, 0x9a, 0xce, 0xb8, 0x2e, 0x09, 0x4b,
		0x7c, 0x51, 0xca, 0xa6, 0x0b, 0xbd, 0x91, 0xa4, 0x97, 0xa4, 0x97, 0xa4, 0x97, 0xa4, 0x97, 0xa4,
		0x97, 0xc8, 0xba, 0xf8, 0x29, 0xa2, 0x69, 0x5d, 0x89, 0x61, 0x23, 0x8e, 0xd6, 0x97, 0xc0, 0x9b,
		0x0e, 0x9f, 0x49, 0x5f, 0x43, 0x4b, 0x41, 0x1d, 0x15, 0x53, 0x01, 0x83, 0x27, 0x05, 0x79, 0x20,
		0x07, 0xf9, 0x22, 0x09, 0x79, 0x21, 0x0b, 0xb9, 0x23, 0x0d, 0xb9, 0x23, 0x0f, 0xb9, 0x23, 0x11,
		0x98, 0x64, 0x02, 0x94, 0x54, 0x24, 0x4f, 0x17, 0x56, 0x51, 0x9b, 0x8b, 0x9b, 0x03, 0xa5, 0x4d,
		0xb1, 0x8a, 0x1c, 0x33, 0x27, 0x28, 0x5e, 0x05, 0x36, 0x11, 0xb3, 0x97, 0xc6, 0xec, 0x0b, 0x1b,
		0x73, 0x0a, 0xe8, 0xbd, 0x36, 0xe6, 0x8c, 0x05, 0xef, 0xbd, 0x31, 0x67, 0x6f, 0x5e, 0xfa, 0x0c,
		0xcc, 0xc7, 0x2a, 0xf4, 0xbe, 0x03, 0x39, 0x81, 0xa5, 0xe7, 0xae, 0x26, 0xee, 0xf2, 0xe7, 0x6a,
		0xd5, 0x4a, 0x65, 0xbf, 0x42, 0x77, 0xa3, 0xbb, 0xe5, 0x80, 0x9b, 0xe2, 0x5b, 0x77, 0x45, 0x4e,
		0xbf, 0x84, 0x5b, 0xc8, 0x3b, 0x13, 0x09, 0x77, 0xa0, 0x63, 0x23, 0xda, 0x7d, 0x70, 0x76, 0x1f,
		0xc9, 0x9e, 0x8c, 0xa4, 0xee, 0x90, 0x94, 0xae, 0x31, 0x55, 0x6a, 0x7d, 0xfc, 0x50, 0x28, 0x97,
		0x6a, 0xc5, 0x82, 0x5b, 0xa8, 0x17, 0x0e, 0x83, 0xa8, 0x2b, 0xa3, 0xc2, 0x27, 0x61, 0xe4, 0x4f,
		0x71, 0x5f, 0x98, 0xee, 0xb3, 0x2c, 0x94, 0x0b, 0x3b, 0x87, 0x9f, 0xce, 0xdc, 0xf2, 0xae, 0x93,
		0x03, 0x0e, 0x90, 0x13, 0x39, 0xea, 0x31, 0x15, 0x7c, 0x94, 0xa5, 0x1e, 0x67, 0x78, 0x4e, 0x50,
		0x35, 0x6f, 0x0a, 0x55, 0x62, 0xf8, 0x53, 0xa5, 0x6a, 0x49, 0x17, 0x20, 0x73, 0x20, 0x73, 0xd8,
		0xea, 0xf1, 0x42, 0x6c, 0xda, 0x88, 0xbb, 0xa6, 0x7e, 0x0e, 0x71, 0x51, 0xd7, 0xd6, 0x3f, 0x02,
		0x12, 0x2b, 0x8c, 0xaf, 0x32, 0x90, 0x15, 0xc6, 0x2d, 0xa5, 0x74, 0xac, 0x30, 0x66, 0xca, 0xdb,
		0x58, 0x61, 0xdc, 0x34, 0x35, 0x22, 0x5f, 0x15, 0xc6, 0x77, 0x39, 0x28, 0x30, 0x56, 0x58, 0x60,
		0xdc, 0x7c, 0x2d, 0x87, 0x05, 0xc6, 0x14, 0xed, 0x65, 0xc5, 0x63, 0xcb, 0x51, 0xe9, 0xb9, 0xab,
		0xe5, 0xb1, 0xc0, 0x58, 0xaa, 0xb0, 0xbc, 0x48, 0x67, 0xcb, 0x03, 0x31, 0xc5, 0xb7, 0x8e, 0xe5,
		0xc5, 0x65, 0xdc, 0x82, 0xe5, 0xc5, 0x2d, 0xa5, 0xa4, 0x2c, 0x2f, 0xc2, 0x24, 0x82, 0x2c, 0x2f,
		0x66, 0x6f, 0x38, 0xcb, 0x8b, 0xb4, 0x2e, 0x27, 0xcc, 0x81, 0xe5, 0xc5, 0x3f, 0xf0, 0xe7, 0x51,
		0xcd, 0xee, 0x76, 0x92, 0x4e, 0xe5, 0xa1, 0xbe, 0x38, 0xb6, 0x95, 0x05, 0xc6, 0x55, 0xcc, 0x63,
		0x81, 0x71, 0x8d, 0xb3, 0x91, 0x05, 0xc6, 0x94, 0xc8, 0x1c, 0x0b, 0x8c, 0xa9, 0x33, 0x37, 0x16,
		0x18, 0x37, 0x4d, 0x8f, 0xc8, 0x4f, 0x81, 0xb1, 0xad, 0xb4, 0x88, 0xee, 0x73, 0x50, 0x61, 0x3c,
		0x00, 0x36, 0xf1, 0x44, 0xea, 0xeb, 0x51, 0xb3, 0x30, 0xea, 0x39, 0xaf, 0x1c, 0xc9, 0x5c, 0x96,
		0x18, 0x8b, 0xac, 0x7a, 0xa4, 0x1c, 0xac, 0x58, 0x62, 0x4c, 0xc1, 0xd5, 0xb8, 0x87, 0x91, 0xee,
		0xb6, 0x21, 0xee, 0x46, 0xa9, 0x70, 0xa5, 0x17, 0x8b, 0x8c, 0xcb, 0xb8, 0x05, 0x8b, 0x8c, 0x5b,
		0x4a, 0x4a, 0x59, 0x64, 0x84, 0xc9, 0x05, 0x59, 0x64, 0xcc, 0xde, 0x70, 0x16, 0x19, 0x69, 0x5d,
		0x4e, 0x98, 0x03, 0x8b, 0x8c, 0x7f, 0xc6, 0x63, 0xa4, 0xee, 0xca, 0x2e, 0x7e, 0x89, 0x31, 0xb1,
		0x94, 0x05, 0xc6, 0x55, 0xcc, 0x63, 0x81, 0x71, 0x8d, 0x73, 0x91, 0x05, 0xc6, 0x94, 0x88, 0x1c,
		0x0b, 0x8c, 0xa9, 0xb3, 0x36, 0x16, 0x18, 0x37, 0x4d, 0x8b, 0xc8, 0x51, 0x81, 0x31, 0x08, 0xfa,
		0x52, 0xe8, 0x1c, 0x54, 0x18, 0x8b, 0x45, 0x4e, 0xc1, 0xe5, 0x68, 0x24, 0xe5, 0xb0, 0xb5, 0xbf,
		0x28, 0x87, 0x91, 0x3d, 0xad, 0xc2, 0xa2, 0x28, 0x87, 0xd9, 0x20, 0x56, 0x94, 0xc3, 0x68, 0x5d,
		0x81, 0x72, 0x58, 0x9e, 0xb9, 0x8c, 0x13, 0x84, 0x46, 0x05, 0x5a, 0xf4, 0xf1, 0xe5, 0xb0, 0xc4,
		0x52, 0xca, 0x61, 0xab, 0x98, 0x47, 0x39, 0x6c, 0x9d, 0x73, 0x91, 0x72, 0x58, 0x3a, 0x44, 0x8e,
		0x72, 0x58, 0xea, 0xac, 0x8d, 0x72, 0xd8, 0xa6, 0x69, 0x11, 0x94, 0xc3, 0xd6, 0x0f, 0xe3, 0x94,
		0xc3, 0x96, 0x1a, 0x35, 0xca, 0x61, 0x69, 0xbc, 0x28, 0x87, 0x91, 0x3d, 0xad, 0xc2, 0xa2, 0x28,
		0x87, 0xd9, 0x20, 0x56, 0x94, 0xc3, 0x68, 0x5d, 0x81, 0x72, 0x58, 0x9e, 0xb9, 0x8c, 0x13, 0x8a,
		0xc8, 0xa8, 0x3c, 0xa8, 0x61, 0x53, 0x43, 0x29, 0x86, 0xad, 0x62, 0x1e, 0xc5, 0xb0, 0x35, 0x4e,
		0x45, 0x8a, 0x61, 0x29, 0xd1, 0x38, 0x8a, 0x61, 0xa9, 0x73, 0x36, 0x8a, 0x61, 0x9b, 0xa6, 0x44,
		0x50, 0x0c, 0x5b, 0x3f, 0x8c, 0x53, 0x0c, 0x5b, 0x6a, 0xd4, 0x28, 0x86, 0xa5, 0xf1, 0xa2, 0x18,
		0x46, 0xf6, 0xb4, 0x0a, 0x8b, 0xa2, 0x18, 0x66, 0x83, 0x58, 0x51, 0x0c, 0xa3, 0x75, 0x05, 0x8a,
		0x61, 0x79, 0xe6, 0x32, 0x8e, 0x89, 0x84, 0x8e, 0xd5, 0xa4, 0x17, 0x0a, 0xb8, 0x1e, 0xf6, 0xc4,
		0x56, 0x4a, 0x62, 0xab, 0x98, 0x47, 0x49, 0x6c, 0x8d, 0xb3, 0x91, 0x92, 0x58, 0x4a, 0x64, 0x8e,
		0x92, 0x58, 0xea, 0xcc, 0x8d, 0x92, 0xd8, 0xa6, 0xe9, 0x11, 0x94, 0xc4, 0xd6, 0x0f, 0xe3, 0x94,
		0xc4, 0x96, 0x1a, 0x35, 0x4a, 0x62, 0x69, 0xbc, 0x28, 0x89, 0x91, 0x3d, 0xad, 0xc2, 0xa2, 0x28,
		0x89, 0xd9, 0x20, 0x56, 0x94, 0xc4, 0x68, 0x5d, 0x81, 0x92, 0x58, 0x4e, 0x2d, 0x02, 0x63, 0x56,
		0x4e, 0x5d, 0xeb, 0xc0, 0x08, 0xa3, 0x02, 0xcc, 0x96, 0xf1, 0x4e, 0xdc, 0xf9, 0x26, 0x6f, 0x44,
		0x28, 0x46, 0x27, 0x03, 0x38, 0x5e, 0x10, 0x4a, 0xdd, 0x19, 0x49, 0x4c, 0xae, 0x96, 0xe6, 0x67,
		0x10, 0xfd, 0x70, 0xd5, 0x90, 0x0d, 0xea, 0x8e, 0xf4, 0x66, 0x6f, 0xc4, 0x73, 0x77, 0xbc, 0x70,
		0x12, 0x1f, 0xe3, 0xe4, 0xca, 0x6b, 0x5f, 0x87, 0x5e, 0xa4, 0xda, 0x9e, 0xe8, 0x29, 0x37, 0x16,
		0x3d, 0x15, 0x27, 0x57, 0x9e, 0x0a, 0x6f, 0xcb, 0x6e, 0x1c, 0x19, 0xe9, 0x86, 0x41, 0x5f, 0x75,
		0xee, 0x3d, 0x2d, 0xd5, 0xf5, 0xb7, 0x76, 0x10, 0xc5, 0xc9, 0x95, 0x27, 0xba, 0xdf, 0x47, 0x79,
		0x6e, 0x30, 0x30, 0x6e, 0x18, 0x49, 0x2f, 0x0a, 0x06, 0x46, 0xc6, 0xe3, 0x37, 0x6f, 0xa0, 0x7f,
		0xe8, 0xe0, 0xa7, 0x76, 0x85, 0x31, 0x91, 0x6a, 0x8f, 0x7e, 0x31, 0x77, 0xcb, 0x8b, 0x8d, 0x30,
		0x88, 0x08, 0xea, 0xc4, 0x26, 0x1a, 0x74, 0x8c, 0x9e, 0x30, 0xaf, 0x66, 0x32, 0xf2, 0xa7, 0xe3,
		0x51, 0x6d, 0x4c, 0x06, 0xd5, 0x9f, 0xf9, 0x39, 0x9e, 0xbd, 0xe1, 0x4f, 0x51, 0x29, 0x4e, 0xae,
		0xfc, 0xc3, 0xeb, 0xd0, 0x6f, 0xa9, 0xb6, 0x5f, 0xef, 0xa9, 0xf3, 0xe1, 0xa0, 0x4f, 0x2f, 0xfc,
		0x46, 0x78, 0x5b, 0x3e, 0x8f, 0x8c, 0x3c, 0x1b, 0x8d, 0xb8, 0x7f, 0x3a, 0x1d, 0xf1, 0xe4, 0xca,
		0xaf, 0x77, 0xbf, 0xb7, 0x54, 0xbb, 0x39, 0x30, 0x67, 0x91, 0xf4, 0x5b, 0xa3, 0xe1, 0x1e, 0xbf,
		0xf9, 0x17, 0xe3, 0xb1, 0xad, 0x27, 0xa3, 0x3d, 0x77, 0xc7, 0x3f, 0x1f, 0x0d, 0xf6, 0x1b, 0xc6,
		0x27, 0x5c, 0x4b, 0x40, 0x22, 0xe4, 0x90, 0xe8, 0x26, 0x27, 0xb4, 0x99, 0xfb, 0x10, 0xc5, 0x45,
		0x9d, 0x13, 0x15, 0x9b, 0xe1, 0x84, 0x86, 0x8a, 0xd7, 0xce, 0x67, 0xa5, 0x8f, 0xfb, 0x72, 0xc8,
		0x51, 0xc1, 0x9a, 0xf4, 0x3b, 0x9f, 0xc5, 0xdd, 0x13, 0xcb, 0x8a, 0xef, 0xca, 0xe5, 0x6a, 0xad,
		0x5c, 0xde, 0xab, 0xed, 0xd7, 0xf6, 0x0e, 0x2a, 0x95, 0x62, 0xb5, 0x08, 0x74, 0x14, 0x82, 0xd3,
		0x1c, 0xd2, 0x79, 0xd9, 0x3d, 0x1c, 0x4e, 0x3d, 0x3d, 0xe8, 0xf7, 0x11, 0x4d, 0xbb, 0x88, 0x65,
		0x04, 0x75, 0xaa, 0x01, 0x4a, 0xc4, 0x00, 0xe5, 0x52, 0x9b, 0xcf, 0xa1, 0x80, 0xd8, 0xd3, 0x26,
		0xb2, 0x26, 0x0c, 0xbe, 0x64, 0x9f, 0x9d, 0xd8, 0xb5, 0xc0, 0x72, 0x94, 0x43, 0x8b, 0x6e, 0x9b,
		0x16, 0xd5, 0x00, 0x62, 0xd8, 0x06, 0xc4, 0x2e, 0xbb, 0xa1, 0xca, 0x5e, 0x80, 0xb0, 0xf3, 0xcd,
		0x96, 0x42, 0xd2, 0x34, 0x35, 0x1b, 0xfa, 0xbe, 0xab, 0xba, 0x05, 0xa9, 0xbb, 0x61, 0xa0, 0xb4,
		0x29, 0x74, 0x82, 0x7e, 0x10, 0x59, 0x72, 0x24, 0x8c, 0xbc, 0x0c, 0x27, 0x0f, 0x83, 0xce, 0xbb,
		0x80, 0xf2, 0x2c, 0xa0, 0xbc, 0xca, 0x96, 0x3b, 0x83, 0x30, 0x8b, 0x5c, 0x33, 0x0a, 0x8b, 0xf4,
		0x21, 0x77, 0xb4, 0xc1, 0x0e, 0x49, 0xc8, 0x1e, 0xa2, 0xb3, 0xfd, 0xc6, 0x8c, 0xa3, 0x87, 0xed,
		0xa8, 0x91, 0xd3, 0x68, 0x61, 0x21, 0x4e, 0xe4, 0x28, 0x3e, 0x64, 0x1b, 0x19, 0xb2, 0xf3, 0xcf,
		0x6c, 0xbe, 0x29, 0xa3, 0x08, 0x60, 0xcb, 0xf3, 0xf3, 0xe6, 0xf1, 0x19, 0xba, 0x7a, 0x1e, 0x5c,
		0x3c, 0x1b, 0xdf, 0x4e, 0xdf, 0xd3, 0x32, 0xf0, 0x32, 0x67, 0x3a, 0xa5, 0x5c, 0xd1, 0xed, 0x46,
		0x32, 0x8e, 0x33, 0xf3, 0xb3, 0x64, 0xa1, 0xe7, 0x9c, 0x05, 0x19, 0xc5, 0x96, 0x6c, 0xb7, 0x57,
		0x65, 0xbe, 0x5d, 0xca, 0xc6, 0xf6, 0x27, 0xbb, 0xdb, 0x99, 0x6c, 0x2d, 0xb0, 0xb5, 0xbe, 0xdd,
		0xc8, 0xfa, 0x6a, 0x57, 0xeb, 0xdb, 0x81, 0x36, 0x8b, 0xf5, 0x64, 0xbe, 0xfd, 0x26, 0xf1, 0xdb,
		0xbe, 0x14, 0xbd, 0x48, 0xf6, 0xb2, 0x74, 0xda, 0xe9, 0xf6, 0x98, 0x5a, 0x86, 0xdf, 0x79, 0x36,
		0x21, 0x76, 0x6f, 0xdf, 0x8e, 0xd7, 0xe4, 0x79, 0x73, 0x18, 0x44, 0x06, 0xb1, 0x04, 0x21, 0x14,
		0x46, 0x66, 0x4f, 0x1b, 0xb2, 0x5c, 0x4c, 0x99, 0x4c, 0x52, 0x72, 0x05, 0x72, 0x05, 0x72, 0x05,
		0x72, 0x05, 0x1c, 0xae, 0x70, 0xa4, 0xb2, 0x2d, 0x43, 0xda, 0x4b, 0x18, 0x51, 0x12, 0x47, 0x4b,
		0x09, 0xa4, 0x35, 0x70, 0xb0, 0x09, 0x12, 0x18, 0x60, 0x61, 0x1b, 0x34, 0x60, 0xc0, 0x03, 0x06,
		0x44, 0x60, 0xc0, 0x24, 0x5b, 0x50, 0xc9, 0x18, 0x5c, 0xec, 0x25, 0xa4, 0x73, 0x7e, 0xaf, 0x42,
		0x4b, 0x51, 0xfe, 0x19, 0xfd, 0x3f, 0xb0, 0xf0, 0xdd, 0x93, 0xb1, 0xb7, 0xd3, 0x57, 0xc0, 0xe2,
		0x12, 0x8d, 0xc7, 0x27, 0x7f, 0x5b, 0xb6, 0xf8, 0xec, 0xe7, 0xe6, 0xc0, 0x3b, 0x8b, 0x36, 0x9c,
		0x09, 0x63, 0x64, 0xa4, 0xad, 0xb7, 0x99, 0x70, 0x76, 0x2e, 0xf7, 0xdc, 0x83, 0xab, 0xdf, 0x97,
		0x45, 0xf7, 0xe0, 0x6a, 0x7c, 0x59, 0x1c, 0xbd, 0xfd, 0x2a, 0x3d, 0xfc, 0x2e, 0x5d, 0xee, 0xb9,
		0xe5, 0xc9, 0xdd, 0x52, 0xe5, 0x72, 0xcf, 0xad, 0x5c, 0xed, 0xee, 0x7c, 0xfd, 0xfa, 0x76, 0xd9,
		0xcf, 0xec, 0xfe, 0xda, 0x7f, 0xb0, 0xb7, 0xc8, 0xf3, 0xca, 0xe6, 0x63, 0x6e, 0x9e, 0x37, 0xfe,
		0x0b, 0xf3, 0xac, 0xff, 0xb7, 0x93, 0xd5, 0xd3, 0xde, 0xfd, 0x8f, 0xc5, 0xe7, 0xbd, 0x4d, 0xeb,
		0xf0, 0x30, 0xc2, 0x7a, 0x95, 0x61, 0x1d, 0x2d, 0xac, 0x8f, 0xbc, 0x56, 0xb8, 0xbd, 0xba, 0xfb,
		0xf1, 0xea, 0x57, 0xf1, 0xaf, 0xf2, 0xc3, 0xfb, 0xdd, 0x5f, 0xb5, 0x87, 0xd9, 0x9b, 0xbf, 0x17,
		0xfd, 0x59, 0xf1, 0xaf, 0xda, 0xc3, 0xfb, 0x17, 0x7e, 0x53, 0x7d, 0x78, 0xff, 0x87, 0xff, 0x46,
		0xe5, 0x61, 0x67, 0xee, 0x4f, 0x87, 0xf7, 0x4b, 0x2f, 0x7d, 0xa0, 0xfc, 0xc2, 0x07, 0xf6, 0x5f,
		0xfa, 0xc0, 0xfe, 0x0b, 0x1f, 0x78, 0xd1, 0xa4, 0xd2, 0x0b, 0x1f, 0xa8, 0x3c, 0xfc, 0x9e, 0xfb,
		0xfb, 0x9d, 0xc5, 0x7f, 0x5a, 0x7d, 0xd8, 0xfd, 0xfd, 0xd2, 0xef, 0x6a, 0x0f, 0xbf, 0xdf, 0xef,
		0xee, 0x12, 0xe8, 0x60, 0x80, 0x8e, 0xd3, 0x3f, 0xfb, 0xe9, 0xbf, 0x7d, 0xc0, 0xff, 0x66, 0xb3,
		0xff, 0x3f, 0xb9, 0xe0, 0x71, 0x45, 0x3d, 0x8b, 0x0b, 0x1e, 0x17, 0x2e, 0x78, 0xcc, 0xba, 0x75,
		0x0e, 0xea, 0x32, 0xc7, 0x0c, 0xbb, 0xda, 0x64, 0xb0, 0x3a, 0xe1, 0x4d, 0x8e, 0x5d, 0x76, 0xba,
		0x35, 0x31, 0xe3, 0x2a, 0x54, 0xb6, 0x9b, 0x0f, 0xb3, 0xdf, 0x64, 0x08, 0xb1, 0x99, 0xd0, 0xc2,
		0xa6, 0x41, 0x0b, 0x9b, 0x03, 0xd3, 0x76, 0x90, 0x8c, 0xb1, 0x0c, 0x1d, 0xc3, 0x9c, 0x4c, 0xd6,
		0x62, 0x21, 0xa2, 0x56, 0xba, 0x78, 0x95, 0x1e, 0x8a, 0xa4, 0xf3, 0x2f, 0xa7, 0xe4, 0x76, 0x59,
		0xb9, 0x1b, 0xa8, 0x9b, 0xa5, 0xe8, 0x5d, 0x58, 0x5e, 0x95, 0x8e, 0x33, 0xad, 0x7f, 0xaa, 0xaf,
		0xf7, 0x5f, 0x5c, 0xb3, 0xd3, 0x64, 0xd1, 0x5e, 0xde, 0xf9, 0xf9, 0x4d, 0xa6, 0xa7, 0x6a, 0xa5,
		0xe8, 0xe0, 0x53, 0x89, 0xfe, 0xed, 0xdb, 0xc4, 0xf1, 0xdc, 0xe1, 0xe4, 0x2f, 0xfc, 0x7f, 0x85,
		0xff, 0x0b, 0x3a, 0x6e, 0xfb, 0x3a, 0x34, 0xef, 0xcf, 0x5b, 0x5f, 0x8e, 0xfd, 0xb3, 0xe6, 0x49,
		0xe3, 0xc3, 0xff, 0xf3, 0x1b, 0x67, 0x7f, 0x97, 0xff, 0x2f, 0x4d, 0xff, 0xcb, 0x68, 0xd9, 0xcd,
		0xd3, 0xe5, 0x35, 0xa3, 0x67, 0x97, 0x32, 0x3f, 0xca, 0x7a, 0x11, 0xcd, 0xb3, 0xc5, 0x32, 0xcb,
		0x3d, 0xdc, 0x37, 0x39, 0xe4, 0xa0, 0xce, 0x91, 0x8c, 0x3b, 0x91, 0x0a, 0x33, 0x21, 0xa0, 0x89,
		0xd3, 0x34, 0x74, 0xa7, 0x3f, 0xe8, 0xca, 0x82, 0xf9, 0xa6, 0xe2, 0x42, 0x27, 0xd0, 0x46, 0x28,
		0x2d, 0xa3, 0x42, 0xa0, 0xfb, 0xf7, 0x85, 0x5e, 0x10, 0x15, 0xcc, 0x37, 0x59, 0x68, 0x9c, 0xdd,
		0x96, 0x0b, 0xf5, 0x8f, 0x8d, 0xbf, 0x0a, 0xe7, 0x2d, 0xf7, 0xcb, 0x71, 0x61, 0x1c, 0xe2, 0xbf,
		0xea, 0xf3, 0xfa, 0xc7, 0xc6, 0xdb, 0xb4, 0x67, 0x5d, 0x86, 0x6b, 0xd8, 0x9e, 0x3a, 0x54, 0xf7,
		0xc9, 0xc3, 0xc8, 0x80, 0x08, 0xdb, 0x58, 0xa0, 0xf6, 0xcc, 0xbf, 0x5e, 0x3f, 0x0f, 0x48, 0x9a,
		0x53, 0xfd, 0x57, 0xaf, 0xa0, 0xf9, 0x49, 0xca, 0x64, 0x1e, 0x8a, 0xc4, 0xa7, 0x10, 0x0f, 0x10,
		0x28, 0xfb, 0x7a, 0x1d, 0x78, 0x7d, 0x0e, 0xb0, 0xc6, 0xa9, 0x3a, 0x5e, 0x9c, 0x37, 0xd0, 0xaa,
		0x23, 0x62, 0xb3, 0xf6, 0x89, 0xfa, 0x7c, 0x09, 0xe0, 0xf4, 0x5b, 0xd6, 0xec, 0x68, 0xe9, 0xec,
		0xec, 0x4a, 0x6d, 0x91, 0x7e, 0x9a, 0x8b, 0xf0, 0xb3, 0x59, 0x64, 0x9f, 0x36, 0x01, 0xc9, 0x6c,
		0x91, 0x7c, 0x66, 0x1c, 0x23, 0xb3, 0x45, 0xee, 0xd8, 0x29, 0x7b, 0x5a, 0x3b, 0x9d, 0x9c, 0xfe,
		0x78, 0x4c, 0xd3, 0x9b, 0x91, 0xc9, 0xee, 0xea, 0xc9, 0x17, 0xa5, 0x34, 0x4d, 0xd2, 0xdd, 0xa4,
		0xfa, 0x18, 0xd2, 0x4a, 0x29, 0x7d, 0x41, 0x06, 0xfb, 0x8b, 0xb2, 0xdd, 0x47, 0x64, 0x43, 0xb8,
		0xc8, 0x64, 0x5f, 0x90, 0x5d, 0xe9, 0x22, 0x8b, 0x7d, 0x3e, 0xf9, 0x92, 0xfe, 0xd3, 0xde, 0x04,
		0xea, 0x4c, 0x3a, 0xca, 0x65, 0xa6, 0xa2, 0x64, 0xd2, 0xc1, 0x2e, 0xa3, 0x5d, 0xfd, 0x99, 0x6d,
		0xd8, 0xcc, 0x72, 0x83, 0xa6, 0x9d, 0x0d, 0x99, 0x59, 0x6f, 0xc0, 0xb4, 0xb6, 0xe1, 0xd2, 0xda,
		0x06, 0x4b, 0x6b, 0x1b, 0x2a, 0xf3, 0xbd, 0x16, 0x28, 0xab, 0x5d, 0xf8, 0xe3, 0xc0, 0x98, 0x7d,
		0xb3, 0x95, 0x2c, 0x1b, 0x0f, 0xb3, 0xd9, 0xca, 0xa6, 0x84, 0x6b, 0x5b, 0x61, 0xdb, 0x7a, 0xf8,
		0xb6, 0x1e, 0xc6, 0xad, 0x87, 0xf3, 0x6c, 0xc2, 0x7a, 0x46, 0xe1, 0x3d, 0xf3, 0x30, 0x9f, 0x7c,
		0x61, 0x10, 0xa9, 0x6b, 0xa5, 0xed, 0xb5, 0x58, 0x99, 0x7c, 0x3f, 0x1b, 0xab, 0x6c, 0x1a, 0x20,
		0x60, 0x00, 0x83, 0x6d, 0x80, 0x80, 0x01, 0x0a, 0x18, 0xc0, 0x80, 0x01, 0x8e, 0x6c, 0x01, 0x24,
		0x63, 0x20, 0x49, 0x46, 0xd9, 0x7e, 0x63, 0x95, 0xec, 0x3b, 0x7e, 0xce, 0xf1, 0xfc, 0x9a, 0x85,
		0xef, 0x9e, 0xeb, 0x00, 0x3a, 0x41, 0xba, 0x4d, 0xdd, 0x24, 0x97, 0x21, 0xd9, 0x9f, 0x9c, 0xd5,
		0x65, 0x8f, 0xb4, 0x4c, 0x0d, 0x20, 0x6b, 0x21, 0x6b, 0x21, 0x6b, 0x21, 0x6b, 0x21, 0x6b, 0x21,
		0x6b, 0xd9, 0x50, 0xd6, 0x32, 0x85, 0x3a, 0xd2, 0x96, 0xd7, 0xd3, 0x16, 0x3b, 0x70, 0xf6, 0xc8,
		0x5a, 0xac, 0x08, 0x94, 0x24, 0x2d, 0x24, 0x2d, 0x24, 0x2d, 0x24, 0x2d, 0x24, 0x2d, 0x24, 0x2d,
		0x99, 0x91, 0x96, 0xb1, 0xdb, 0x93, 0xb3, 0xbc, 0x7a, 0x68, 0xb3, 0x3d, 0x7a, 0x65, 0x6e, 0x42,
		0x67, 0xdd, 0x94, 0xa7, 0x90, 0xfd, 0xea, 0x00, 0x32, 0x16, 0x32, 0x16, 0x32, 0x16, 0x32, 0x16,
		0x1b, 0x8c, 0x25, 0xeb, 0xd5, 0x06, 0xc9, 0x17, 0x0b, 0x63, 0x22, 0x57, 0xe9, 0xae, 0xbc, 0xb3,
		0xe7, 0x74, 0xd3, 0xd0, 0xf3, 0xc4, 0x16, 0x4b, 0x93, 0xdd, 0x4e, 0x8a, 0x6c, 0x1d, 0x78, 0x10,
		0x00, 0x08, 0x0b, 0x88, 0x50, 0x00, 0x09, 0x0e, 0x98, 0xe0, 0x00, 0x0a, 0x0e, 0xa8, 0xec, 0x00,
		0x96, 0x25, 0xe0, 0xb2, 0x9f, 0x72, 0x03, 0xa5, 0xde, 0x08, 0x29, 0xf8, 0xa2, 0x54, 0x7c, 0xe1,
		0x7f, 0x23, 0xb0, 0x8d, 0xa5, 0x89, 0x93, 0xab, 0x49, 0xca, 0x3e, 0x06, 0xe0, 0x2d, 0xe9, 0x94,
		0x6c, 0xc1, 0x5d, 0x9c, 0x4e, 0x70, 0x73, 0x33, 0xd0, 0xca, 0xdc, 0xa3, 0xf0, 0xae, 0x59, 0x83,
		0x48, 0xbe, 0x48, 0xbe, 0x48, 0xbe, 0x48, 0xbe, 0x48, 0xbe, 0x48, 0xbe, 0x48, 0xbe, 0xd2, 0x20,
		0x5f, 0x53, 0xc4, 0x55, 0x32, 0x4e, 0xae, 0xef, 0xc9, 0xbf, 0xb2, 0x79, 0x38, 0xf2, 0xce, 0xb8,
		0x70, 0x1c, 0x6c, 0x91, 0x51, 0xe4, 0x61, 0xe4, 0x61, 0xe4, 0x61, 0xe4, 0x61, 0xe4, 0x61, 0xe4,
		0x61, 0xe4, 0x61, 0x69, 0xf0, 0xb0, 0xa7, 0xa8, 0x3b, 0xe4, 0x62, 0xcf, 0x50, 0x98, 0x7c, 0x2c,
		0x9b, 0x87, 0xa4, 0xf4, 0xad, 0xe8, 0xab, 0xae, 0x1b, 0x49, 0x11, 0x07, 0xda, 0x3e, 0x15, 0x9b,
		0xb1, 0x87, 0x2c, 0x8c, 0x2c, 0x8c, 0x2c, 0x8c, 0x2c, 0x8c, 0x2c, 0x8c, 0x2c, 0x6c, 0x59, 0x24,
		0xe9, 0x4a, 0x6d, 0x94, 0xb9, 0x07, 0x61, 0x62, 0x15, 0x8b, 0x36, 0x34, 0x26, 0x43, 0x71, 0x28,
		0x62, 0x80, 0x10, 0x96, 0x9c, 0xe0, 0x70, 0xfa, 0x77, 0xfd, 0xa4, 0x71, 0xe4, 0xb7, 0x9a, 0x17,
		0x5f, 0x8e, 0xfd, 0xd6, 0x71, 0xfd, 0xbc, 0x79, 0x6a, 0x3b, 0x9a, 0xfd, 0x2d, 0xfa, 0x83, 0x51,
		0xff, 0x45, 0xbb, 0x47, 0x24, 0x17, 0xac, 0x9e, 0x1d, 0xff, 0x8f, 0x4f, 0xab, 0x7e, 0xee, 0x9f,
		0x34, 0x9b, 0x67, 0x8e, 0x75, 0xeb, 0x1e, 0xfe, 0xe2, 0x23, 0x5a, 0xfc, 0x88, 0x3e, 0x9c, 0x5c,
		0x9c, 0x7f, 0x39, 0x6e, 0xf1, 0x39, 0xa1, 0x3f, 0xa7, 0xe6, 0xe9, 0xc7, 0xe3, 0x23, 0x3e, 0x21,
		0xdc, 0x27, 0xd4, 0x6c, 0x35, 0x3e, 0x35, 0x4e, 0xeb, 0x5f, 0x9a, 0x2d, 0x80, 0xa7, 0x64, 0xd5,
		0x82, 0xab, 0x6d, 0xe3, 0xcf, 0x5b, 0xa1, 0xfe, 0xf4, 0x45, 0x6c, 0xdc, 0x9b, 0xa0, 0xab, 0x7a,
		0x4a, 0x76, 0xed, 0x8b, 0x3f, 0xcf, 0xcd, 0xa1, 0xf6, 0x43, 0xed, 0x87, 0xda, 0x0f, 0xb5, 0x1f,
		0x6a, 0x3f, 0xd4, 0x7e, 0x96, 0x8c, 0x1b, 0x46, 0xdd, 0x48, 0xa3, 0x3a, 0x3f, 0xe2, 0x6a, 0x19,
		0x40, 0xfb, 0x79, 0x67, 0xd1, 0x84, 0x0b, 0xad, 0x46, 0xe7, 0xfb, 0x3b, 0x5a, 0xe8, 0x20, 0x96,
		0x9d, 0x40, 0x77, 0x63, 0x9b, 0x43, 0xd2, 0x12, 0xfa, 0x5a, 0x5a, 0xd7, 0x57, 0xec, 0xa7, 0x1b,
		0xce, 0x67, 0xa5, 0xad, 0x23, 0x4a, 0x62, 0xcc, 0x48, 0xf6, 0xb2, 0xc7, 0x39, 0xe6, 0xec, 0xf9,
		0x18, 0x89, 0x8e, 0x51, 0x81, 0x3e, 0x52, 0xd7, 0xe3, 0xe9, 0x8b, 0x62, 0xd8, 0xa9, 0xbc, 0x16,
		0x46, 0xdd, 0x0e, 0xc7, 0xaa, 0x27, 0xfa, 0xb1, 0x64, 0xee, 0x3e, 0x9c, 0xca, 0xe2, 0x0e, 0x6f,
		0x2a, 0x17, 0xdf, 0x95, 0xcb, 0xd5, 0x5a, 0xb9, 0xbc, 0x57, 0xdb, 0xaf, 0xed, 0x1d, 0x54, 0x2a,
		0xc5, 0xaa, 0x4d, 0x09, 0x9e, 0xb3, 0x3b, 0x87, 0x9a, 0x87, 0xbd, 0x6f, 0xbf, 0xa2, 0xe6, 0x91,
		0xda, 0x24, 0xb7, 0xd4, 0xea, 0x7f, 0x3e, 0xb7, 0xb5, 0xd1, 0xf2, 0x9f, 0x2a, 0x07, 0x55, 0x0e,
		0xaa, 0x1c, 0x54, 0x39, 0xa8, 0x72, 0x6c, 0x80, 0xca, 0x31, 0xd0, 0xca, 0xda, 0x12, 0xc9, 0xa7,
		0x20, 0x52, 0x3c, 0xb0, 0x68, 0xc3, 0xe4, 0x71, 0x6c, 0xbd, 0x9e, 0xf0, 0x78, 0x86, 0xbb, 0x2b,
		0xba, 0xdd, 0x48, 0xc6, 0xb1, 0x03, 0x90, 0x1a, 0x02, 0xcc, 0x10, 0xac, 0x99, 0x82, 0x33, 0x63,
		0x16, 0xcc, 0x9c, 0xdb, 0x32, 0xd0, 0xdc, 0x99, 0x9b, 0x43, 0xef, 0x80, 0x6c, 0x3a, 0x13, 0xc6,
		0xc8, 0x48, 0xc3, 0x4c, 0xa7, 0xc4, 0xb0, 0x9d, 0xcb, 0x3d, 0xf7, 0xe0, 0xea, 0xf7, 0x65, 0xd1,
		0x3d, 0xb8, 0x1a, 0x5f, 0x16, 0x47, 0x6f, 0xbf, 0x4a, 0x0f, 0xbf, 0x4b, 0x97, 0x7b, 0x6e, 0x79,
		0x72, 0xb7, 0x54, 0xb9, 0xdc, 0x73, 0x2b, 0x57, 0xbb, 0x3b, 0x5f, 0xbf, 0xbe, 0x5d, 0xf6, 0x33,
		0xbb, 0xbf, 0xf6, 0x1f, 0x1c, 0x98, 0xff, 0xed, 0x2b, 0xa4, 0x69, 0xd1, 0x3c, 0x6f, 0xfc, 0x17,
		0x76, 0x6e, 0xfc, 0x6f, 0x27, 0xab, 0xd9, 0xb1, 0xfb, 0x1f, 0xa0, 0xf9, 0x01, 0x61, 0xc9, 0xc3,
		0x5f, 0x84, 0x9d, 0x17, 0x61, 0xa7, 0x4a, 0xd8, 0xc9, 0x3b, 0xec, 0x8c, 0xa2, 0x84, 0x70, 0x7b,
		0x75, 0xf7, 0xe3, 0xd5, 0xaf, 0xe2, 0x5f, 0xe5, 0x87, 0xf7, 0xbb, 0xbf, 0x6a, 0x0f, 0xb3, 0x37,
		0x7f, 0x2f, 0xfa, 0xb3, 0xe2, 0x5f, 0xb5, 0x87, 0xf7, 0x2f, 0xfc, 0xa6, 0xfa, 0xf0, 0xfe, 0x0f,
		0xff, 0x8d, 0xca, 0xc3, 0xce, 0xdc, 0x9f, 0x0e, 0xef, 0x97, 0x5e, 0xfa, 0x40, 0xf9, 0x85, 0x0f,
		0xec, 0xbf, 0xf4, 0x81, 0xfd, 0x17, 0x3e, 0xf0, 0xa2, 0x49, 0xa5, 0x17, 0x3e, 0x50, 0x79, 0xf8,
		0x3d, 0xf7, 0xf7, 0x3b, 0x8b, 0xff, 0xb4, 0xfa, 0xb0, 0xfb, 0xfb, 0xa5, 0xdf, 0xd5, 0x1e, 0x7e,
		0xbf, 0xdf, 0xdd, 0x25, 0x10, 0xe7, 0x16, 0x88, 0xe9, 0x2e, 0xd9, 0xbb, 0x0b, 0x89, 0x09, 0x84,
		0x78, 0x87, 0x33, 0x0e, 0x96, 0x89, 0x19, 0x92, 0x72, 0x04, 0xb1, 0x61, 0x6e, 0x8e, 0x7f, 0x01,
		0x54, 0xed, 0xb1, 0x36, 0xd0, 0xcd, 0x3d, 0xb8, 0xc6, 0xe9, 0xf9, 0x97, 0xfa, 0xc9, 0x89, 0x7f,
		0xd6, 0x6a, 0x7e, 0x69, 0x7e, 0x68, 0x9e, 0xf8, 0x5f, 0xfe, 0xdf, 0xd9, 0x31, 0x08, 0x95, 0x46,
		0xda, 0x51, 0x87, 0x97, 0x04, 0x3d, 0x7b, 0x8c, 0x87, 0x9f, 0xce, 0x70, 0xc0, 0xe9, 0xe1, 0x2f,
		0x3e, 0xae, 0x7f, 0x7e, 0x5c, 0x47, 0x8d, 0xd6, 0xf1, 0x87, 0x2f, 0x27, 0xff, 0xcf, 0xff, 0xd0,
		0x3c, 0x3d, 0x3d, 0xfe, 0xf0, 0x05, 0x61, 0x27, 0x17, 0x9f, 0xde, 0x9f, 0x3e, 0xbd, 0x4f, 0xad,
		0xc6, 0x61, 0x83, 0x0f, 0x2c, 0x3f, 0x0f, 0xac, 0xf1, 0xe9, 0x33, 0xc3, 0x63, 0x9e, 0x9e, 0xd7,
		0x79, 0xe3, 0x9c, 0xcf, 0x2b, 0x3f, 0xcf, 0xeb, 0xa4, 0xf9, 0xa1, 0x7e, 0xc2, 0x07, 0x96, 0xb3,
		0x07, 0xe6, 0xd7, 0x3f, 0x7d, 0x6a, 0x1d, 0x7f, 0xaa, 0x7f, 0x39, 0xe6, 0xa3, 0xcb, 0xcf, 0xa3,
		0x6b, 0x9e, 0x9f, 0x7d, 0xe4, 0xf3, 0xca, 0xd7, 0xf3, 0xda, 0xe7, 0x03, 0xcb, 0xcf, 0x03, 0x3b,
		0xfb, 0x70, 0x4c, 0xb2, 0x98, 0xa7, 0xe7, 0xd5, 0xf8, 0xcc, 0xc7, 0x95, 0x9f, 0xc7, 0x75, 0xfe,
		0xa5, 0xfe, 0xa5, 0xf1, 0x01, 0xe8, 0x89, 0x41, 0x58, 0x72, 0xc5, 0xed, 0x52, 0x5b, 0x35, 0xf2,
		0xdb, 0xb1, 0x5d, 0x2a, 0x14, 0xe6, 0x9b, 0xab, 0x00, 0x9a, 0xc3, 0x4c, 0x0d, 0xb1, 0xb4, 0xec,
		0xff, 0x48, 0xf6, 0xc4, 0xa0, 0x6f, 0xac, 0x16, 0x32, 0x9c, 0x3d, 0x3b, 0x31, 0xf7, 0x8a, 0x9b,
		0xd4, 0xac, 0x18, 0xc0, 0x4d, 0x6a, 0xb3, 0xd6, 0x70, 0x93, 0xda, 0x0b, 0x06, 0x71, 0x93, 0x1a,
		0x24, 0x3b, 0xe1, 0x26, 0xb5, 0x81, 0xd2, 0x66, 0xbf, 0x04, 0xb0, 0x4b, 0xad, 0xc6, 0xae, 0x37,
		0xec, 0x7a, 0xf3, 0xcc, 0x18, 0x76, 0xbd, 0xf9, 0x53, 0x5f, 0x66, 0xd7, 0x9b, 0x05, 0x53, 0x19,
		0xb1, 0xeb, 0x4d, 0xb9, 0x74, 0x50, 0x3e, 0xa8, 0xd6, 0x4a, 0x07, 0xec, 0x75, 0x93, 0xbb, 0x39,
		0x4d, 0xf1, 0x86, 0xe2, 0xcd, 0xba, 0xc5, 0x1b, 0xbb, 0x09, 0xe4, 0xa3, 0x76, 0x63, 0x33, 0x47,
		0xa2, 0x8c, 0x40, 0x19, 0x81, 0x32, 0x02, 0x65, 0x04, 0xca, 0x08, 0x39, 0x96, 0x11, 0x46, 0xcd,
		0x29, 0xac, 0xfb, 0x08, 0xc2, 0xa6, 0x60, 0x98, 0x4d, 0xc0, 0x99, 0xf5, 0x9a, 0xf0, 0x92, 0x0f,
		0x95, 0x26, 0xbf, 0xdd, 0xbf, 0xdc, 0x73, 0x4b, 0x57, 0x16, 0xf7, 0xbe, 0x5e, 0xd9, 0x7c, 0xfe,
		0x48, 0x7b, 0x5b, 0x33, 0x6c, 0x2a, 0xf1, 0xe2, 0x34, 0xb0, 0xb9, 0xa9, 0x93, 0xd9, 0x4b, 0x7a,
		0x53, 0x6b, 0x72, 0x12, 0x6c, 0x30, 0x30, 0xd2, 0x7e, 0x0a, 0xf3, 0xd4, 0x18, 0xe6, 0x31, 0xcc,
		0x63, 0x98, 0xc7, 0x30, 0x8f, 0x61, 0x1e, 0xc3, 0x3c, 0x66, 0xc9, 0xb8, 0xd1, 0x0e, 0x82, 0xbe,
		0x14, 0x10, 0x5d, 0x3b, 0x8b, 0xdb, 0x42, 0x5d, 0xde, 0x6c, 0xf0, 0x14, 0x77, 0xea, 0x5a, 0x07,
		0x46, 0x18, 0x65, 0xe9, 0xf0, 0x7e, 0x27, 0xee, 0x7c, 0x93, 0x37, 0x22, 0x14, 0xe6, 0xdb, 0x70,
		0x7a, 0x7b, 0x41, 0x28, 0x75, 0x67, 0x44, 0x14, 0x5c, 0x2d, 0xcd, 0xcf, 0x20, 0xfa, 0xe1, 0x2a,
		0x1d, 0x1b, 0xa1, 0x3b, 0xd2, 0x9b, 0xbd, 0x11, 0xcf, 0xdd, 0xf1, 0xc2, 0x28, 0x30, 0x41, 0x27,
		0xe8, 0xc7, 0xc9, 0x95, 0xd7, 0xbe, 0x0e, 0xbd, 0x48, 0xb5, 0x3d, 0xd1, 0x53, 0x6e, 0x2c, 0x7a,
		0x2a, 0x4e, 0xae, 0xbc, 0x91, 0x28, 0x30, 0xd0, 0xaa, 0x23, 0x62, 0xe3, 0xf5, 0xc7, 0x61, 0xd5,
		0x1b, 0x51, 0xb4, 0x78, 0xfc, 0xe6, 0xc5, 0x46, 0x58, 0xe1, 0x6b, 0x4e, 0x6c, 0xa2, 0x41, 0xc7,
		0xe8, 0xe9, 0x06, 0x92, 0x64, 0x54, 0x4e, 0xc7, 0xff, 0xc7, 0x8d, 0xc9, 0xff, 0xb0, 0x3f, 0xf3,
		0x73, 0x3c, 0x7b, 0xc3, 0x3f, 0x9b, 0x8e, 0x48, 0x72, 0xe5, 0x1f, 0x5e, 0x87, 0x7e, 0x4b, 0xb5,
		0xfd, 0x7a, 0x4f, 0x9d, 0x0f, 0x07, 0x64, 0x7a, 0xe1, 0x37, 0xc2, 0xdb, 0xf2, 0xc5, 0x78, 0x38,
		0xfc, 0x93, 0xa0, 0x33, 0xfc, 0x9b, 0xd6, 0x68, 0x34, 0xc6, 0x6f, 0xfe, 0xf9, 0x68, 0x34, 0xde,
		0x6c, 0xa6, 0xf3, 0x65, 0xe8, 0x78, 0xce, 0x40, 0xff, 0xd0, 0xc1, 0x4f, 0xed, 0x0a, 0x63, 0x22,
		0xd5, 0x1e, 0x8e, 0x70, 0xe6, 0xce, 0xf7, 0xa4, 0x0b, 0xf4, 0x9c, 0x2d, 0x19, 0x87, 0xa0, 0x29,
		0xa0, 0x64, 0xfc, 0xb5, 0xb6, 0xf2, 0x11, 0x9b, 0x79, 0x08, 0x46, 0xfe, 0x61, 0x3b, 0xef, 0x80,
		0xc9, 0x37, 0x60, 0xf2, 0x0c, 0x98, 0xfc, 0x62, 0xb3, 0xc9, 0xd6, 0x91, 0x8a, 0xec, 0xb8, 0xfd,
		0x5c, 0x90, 0xb7, 0x2f, 0x88, 0xcd, 0x9b, 0x64, 0x57, 0x16, 0x2b, 0x52, 0x16, 0xa3, 0x2c, 0x46,
		0x59, 0x8c, 0xb2, 0x18, 0x65, 0x31, 0x74, 0x38, 0x4b, 0x0c, 0x18, 0x62, 0x87, 0x6b, 0x6c, 0x8b,
		0x73, 0xcf, 0x22, 0xd8, 0xa3, 0x49, 0x96, 0x5d, 0xc3, 0x6e, 0xb5, 0x07, 0x06, 0xde, 0x90, 0x60,
		0x0e, 0x13, 0xee, 0xd0, 0x60, 0x0f, 0x16, 0xfe, 0x60, 0x61, 0x10, 0x16, 0x0e, 0xed, 0xc2, 0xa2,
		0x65, 0x78, 0x4c, 0x9e, 0xca, 0x17, 0x04, 0x80, 0x7a, 0x16, 0x77, 0xfa, 0x52, 0xf4, 0xc0, 0xda,
		0x34, 0xd7, 0x00, 0x6c, 0x39, 0x9b, 0x54, 0x21, 0xde, 0xbe, 0x1d, 0x0b, 0xff, 0xde, 0x23, 0x98,
		0x6f, 0xe9, 0xe6, 0x0a, 0x8b, 0xae, 0xe3, 0x8c, 0x6b, 0x2f, 0x30, 0xc4, 0xce, 0x56, 0x29, 0x08,
		0x48, 0xab, 0x20, 0xa9, 0x23, 0xa9, 0x23, 0xa9, 0x23, 0xa9, 0x23, 0xa9, 0xb3, 0xaf, 0x7d, 0x3c,
		0xd7, 0x40, 0xfa, 0x52, 0xe3, 0x9d, 0x2b, 0x91, 0x58, 0x06, 0xe2, 0x48, 0x18, 0x8a, 0x08, 0x1c,
		0x88, 0x22, 0x82, 0x29, 0x36, 0xa8, 0xa2, 0x82, 0x2b, 0x3c, 0xc8, 0xc2, 0x83, 0x2d, 0x3c, 0xe8,
		0x62, 0x80, 0x2f, 0x08, 0x08, 0xe3, 0x29, 0x2c, 0x73, 0x71, 0x6b, 0xa0, 0xb4, 0x29, 0x56, 0x01,
		0xcf, 0x25, 0xad, 0x02, 0x99, 0x84, 0xd1, 0xde, 0x68, 0xf6, 0x85, 0x15, 0xd3, 0x0b, 0x68, 0xed,
		0x8f, 0xe6, 0x8c, 0x03, 0x6b, 0x87, 0x34, 0x67, 0x1f, 0x6a, 0x2b, 0x99, 0xf9, 0xd8, 0x81, 0xd6,
		0x5a, 0x06, 0x34, 0xec, 0x3f, 0x77, 0x0d, 0x71, 0x87, 0xef, 0x1a, 0xd5, 0x4a, 0x65, 0xbf, 0x42,
		0xf7, 0xd8, 0x74, 0xf7, 0x78, 0x43, 0x6b, 0x16, 0xbd, 0x78, 0x92, 0xfe, 0xd3, 0x69, 0x2c, 0xef,
		0x4c, 0x24, 0xdc, 0x81, 0x8e, 0x8d, 0x68, 0xf7, 0xc1, 0xd8, 0x6b, 0x24, 0x7b, 0x32, 0x92, 0xba,
		0x43, 0x52, 0xb6, 0x04, 0xd5, 0x6f, 0x7d, 0xfc, 0x50, 0x28, 0x97, 0x6a, 0xc5, 0x82, 0x5b, 0xa8,
		0x17, 0x0e, 0x83, 0xa8, 0x2b, 0xa3, 0xc2, 0x27, 0x61, 0xe4, 0x4f, 0x71, 0x5f, 0x98, 0xee, 0xbd,
		0x29, 0x94, 0x0b, 0x3b, 0x87, 0x9f, 0xce, 0xdc, 0xf2, 0xae, 0x03, 0x88, 0xa1, 0xa0, 0x72, 0xc6,
		0x22, 0x59, 0xe3, 0x71, 0x86, 0x82, 0xa2, 0x14, 0xba, 0xc2, 0xb1, 0x50, 0xe9, 0x58, 0x72, 0x0a,
		0x13, 0x79, 0x89, 0xbc, 0xb9, 0x1a, 0x0f, 0x84, 0xbe, 0xaf, 0x38, 0x6b, 0x56, 0xe7, 0x10, 0x0c,
		0x65, 0xed, 0xea, 0x63, 0xc0, 0x67, 0xc5, 0xe6, 0x1f, 0x0d, 0x62, 0xc5, 0x66, 0x43, 0x28, 0x0e,
		0x2b, 0x36, 0x6b, 0xe5, 0x31, 0xac, 0xd8, 0xa0, 0x67, 0xbf, 0xd8, 0x15, 0x9b, 0x77, 0x80, 0x05,
		0x9b, 0x0a, 0x0b, 0x36, 0xf9, 0xd3, 0x06, 0x58, 0xb0, 0x79, 0x85, 0x7d, 0x54, 0xa4, 0x37, 0x2c,
		0xea, 0x3f, 0x77, 0x8d, 0x3c, 0x14, 0x6c, 0x4a, 0x15, 0x96, 0x6b, 0x36, 0xde, 0x39, 0x28, 0x1a,
		0x2d, 0x7c, 0xb1, 0x5c, 0xf3, 0x74, 0x1a, 0xb3, 0x5c, 0xb3, 0x21, 0x94, 0x8c, 0xe5, 0x1a, 0x0b,
		0x9a, 0x06, 0xcb, 0x35, 0x69, 0xc8, 0x1c, 0x2c, 0xd7, 0x10, 0x79, 0x37, 0x79, 0x3c, 0x60, 0xca,
		0x35, 0xb7, 0x93, 0x74, 0x00, 0xb1, 0x5e, 0x33, 0xb6, 0x8d, 0x05, 0x9b, 0x45, 0xe6, 0xb0, 0x60,
		0xb3, 0xc4, 0x6c, 0x62, 0xc1, 0x66, 0x45, 0x72, 0xc3, 0x82, 0xcd, 0xab, 0x99, 0x0c, 0x0b, 0x36,
		0xe8, 0xf9, 0x2f, 0x6e, 0xc1, 0xa6, 0xad, 0xb4, 0x88, 0xee, 0x01, 0x2b, 0x36, 0x07, 0x40, 0x26,
		0x9d, 0x48, 0x7d, 0x3d, 0x6a, 0x6e, 0x42, 0x7d, 0xe0, 0x5f, 0x46, 0x2a, 0x17, 0x25, 0x9b, 0x22,
		0x55, 0xe9, 0x57, 0x06, 0x0f, 0x96, 0x6c, 0x56, 0x70, 0x0d, 0xee, 0xb1, 0xa1, 0x7b, 0x90, 0x9c,
		0x21, 0x5b, 0xc3, 0xa2, 0xcd, 0xd3, 0x69, 0xcc, 0xa2, 0xcd, 0x86, 0x90, 0x32, 0x16, 0x6d, 0x2c,
		0xe8, 0x1a, 0x2c, 0xda, 0xa4, 0x21, 0x75, 0xb0, 0x68, 0x43, 0xe4, 0xdd, 0xe4, 0xf1, 0x40, 0x28,
		0xda, 0xc8, 0x3b, 0x23, 0x75, 0x57, 0x76, 0xf1, 0x4a, 0x36, 0x89, 0x65, 0x2c, 0xd8, 0x2c, 0x32,
		0x87, 0x05, 0x9b, 0x25, 0xe6, 0x12, 0x0b, 0x36, 0x2b, 0x12, 0x1b, 0x16, 0x6c, 0x5e, 0xcd, 0x62,
		0x58, 0xb0, 0x41, 0xcf, 0x7d, 0x81, 0x0b, 0x36, 0xd6, 0xcf, 0x30, 0x7e, 0x09, 0x06, 0x2d, 0x9d,
		0x69, 0x4c, 0xf9, 0x84, 0xf2, 0x09, 0xe5, 0x13, 0xca, 0x27, 0x24, 0x1c, 0x94, 0x4f, 0x28, 0x9f,
		0x50, 0x3e, 0xb1, 0xed, 0x6f, 0x41, 0x68, 0x54, 0xa0, 0x45, 0x1f, 0x4f, 0x3e, 0x49, 0x2c, 0xa3,
		0x7c, 0x42, 0xf9, 0x84, 0xf2, 0x09, 0xe5, 0x13, 0xca, 0x27, 0x94, 0x4f, 0x28, 0x9f, 0x50, 0x3e,
		0xa1, 0x7c, 0x42, 0xf9, 0x84, 0xf2, 0x09, 0xe5, 0x13, 0x12, 0x0e, 0xca, 0x27, 0x94, 0x4f, 0x28,
		0x9f, 0xd8, 0xf4, 0xb7, 0x50, 0x44, 0x46, 0x21, 0xaa, 0x27, 0x53, 0xc3, 0x28, 0x9e, 0x50, 0x3c,
		0xa1, 0x78, 0x42, 0xf1, 0x84, 0xe2, 0x09, 0xc5, 0x13, 0x8a, 0x27, 0x14, 0x4f, 0x28, 0x9e, 0x50,
		0x3c, 0xa1, 0x78, 0x42, 0xf1, 0x84, 0x84, 0x83, 0xe2, 0x09, 0xc5, 0x13, 0x8a, 0x27, 0x36, 0xfd,
		0xcd, 0x44, 0x42, 0xc7, 0x6a, 0xb2, 0xf7, 0x1c, 0x4c, 0x3f, 0x79, 0x62, 0x1b, 0x25, 0x14, 0x4a,
		0x28, 0x94, 0x50, 0x28, 0xa1, 0x50, 0x42, 0xa1, 0x84, 0x42, 0x09, 0x85, 0x12, 0x0a, 0x25, 0x14,
		0x4a, 0x28, 0x94, 0x50, 0x28, 0xa1, 0x90, 0x70, 0x50, 0x42, 0xa1, 0x84, 0xb2, 0xc5, 0x12, 0xca,
		0x9b, 0x2d, 0x66, 0x1e, 0x4e, 0x5d, 0xeb, 0xc0, 0x08, 0xa3, 0x02, 0x8c, 0x16, 0xaa, 0x4e, 0xdc,
		0xf9, 0x26, 0x6f, 0x44, 0x28, 0x46, 0x9d, 0x6f, 0x1d, 0x2f, 0x08, 0xa5, 0xee, 0x8c, 0x24, 0x0a,
		0x57, 0x4b, 0xf3, 0x33, 0x88, 0x7e, 0xb8, 0x6a, 0xc8, 0x8e, 0x74, 0x47, 0x7a, 0xb3, 0x37, 0xe2,
		0xb9, 0x3b, 0x5e, 0x38, 0x89, 0x4f, 0x71, 0x72, 0xe5, 0xb5, 0xaf, 0x43, 0x2f, 0x52, 0x6d, 0x4f,
		0xf4, 0x94, 0x1b, 0x8b, 0x9e, 0x8a, 0x93, 0x2b, 0x4f, 0x85, 0xb7, 0x65, 0x77, 0xa0, 0x55, 0x47,
		0xc4, 0xc6, 0xeb, 0x8f, 0x13, 0x2e, 0x2f, 0x0a, 0x06, 0x46, 0xc6, 0xe3, 0x37, 0x6f, 0xa0, 0x7f,
		0xe8, 0xe0, 0xa7, 0x76, 0x85, 0x31, 0x91, 0x6a, 0x8f, 0x7e, 0x31, 0x77, 0xcb, 0x8b, 0x8d, 0x30,
		0x08, 0x10, 0xe4, 0xc4, 0x26, 0x1a, 0x74, 0x8c, 0x9e, 0x50, 0x91, 0x66, 0x32, 0x94, 0xa7, 0xe3,
		0x61, 0x6a, 0x4c, 0x46, 0xc9, 0x9f, 0xf9, 0x39, 0x9e, 0xbd, 0xe1, 0x4f, 0xc3, 0x7c, 0x9c, 0x5c,
		0xf9, 0x87, 0xd7, 0xa1, 0xdf, 0x52, 0x6d, 0xbf, 0xde, 0x53, 0xe7, 0xc3, 0x51, 0x9c, 0x5e, 0xf8,
		0x8d, 0xf0, 0xb6, 0x7c, 0x31, 0x1e, 0x43, 0xff, 0x24, 0xe8, 0x0c, 0xff, 0xa6, 0x35, 0x1a, 0xc2,
		0xf1, 0x9b, 0x7f, 0x31, 0x1e, 0xaf, 0x7a, 0x32, 0x82, 0x73, 0x77, 0xfc, 0xf3, 0xd1, 0x00, 0xbe,
		0xd9, 0xce, 0xa0, 0x60, 0xe7, 0x9b, 0x2d, 0x85, 0xa1, 0x21, 0x7b, 0x43, 0x38, 0xc6, 0xdc, 0x39,
		0x51, 0xb1, 0x19, 0x4e, 0x40, 0xab, 0x41, 0xd0, 0xf9, 0xac, 0xf4, 0x71, 0x5f, 0x0e, 0x89, 0x97,
		0xe5, 0x4e, 0xb3, 0xce, 0x67, 0x71, 0xf7, 0xc4, 0x92, 0xe2, 0xbb, 0x72, 0xb9, 0x5a, 0x2b, 0x97,
		0xf7, 0x6a, 0xfb, 0xb5, 0xbd, 0x83, 0x4a, 0xa5, 0x58, 0x2d, 0x5a, 0xec, 0xd7, 0xeb, 0x34, 0x87,
		0x1c, 0x54, 0x76, 0x0f, 0x87, 0x53, 0x47, 0x0f, 0xfa, 0x7d, 0x04, 0x53, 0x2e, 0x62, 0x19, 0x59,
		0x6d, 0xbd, 0x6b, 0xcb, 0x83, 0x41, 0x08, 0xc4, 0x06, 0x10, 0x07, 0x8b, 0x94, 0x21, 0xaf, 0x54,
		0xc1, 0x0e, 0x49, 0xc8, 0x1e, 0xa2, 0xb3, 0xfd, 0xc6, 0x8c, 0x43, 0x89, 0xed, 0x10, 0x92, 0xbb,
		0xd0, 0x61, 0x21, 0x50, 0xe4, 0x24, 0x40, 0x64, 0x1b, 0x0f, 0xb2, 0xf3, 0xca, 0x6c, 0xbe, 0x29,
		0x23, 0xbf, 0x9f, 0x92, 0xfe, 0x71, 0x51, 0xb8, 0x10, 0x44, 0xea, 0x5a, 0xe9, 0xc2, 0xd0, 0xfd,
		0x5c, 0x95, 0x55, 0x97, 0x55, 0x3b, 0x84, 0xdf, 0x1e, 0xc1, 0x87, 0x22, 0xf4, 0x16, 0x09, 0xbc,
		0x45, 0xc2, 0x9e, 0x95, 0x77, 0x59, 0x42, 0x53, 0x6c, 0x14, 0xcd, 0x10, 0x32, 0x21, 0xa1, 0x32,
		0x1b, 0x60, 0x4c, 0x1f, 0xa6, 0xd2, 0xfd, 0x86, 0x94, 0x5d, 0x34, 0x6b, 0xd7, 0x44, 0x75, 0xc9,
		0x0c, 0x9c, 0x11, 0xcc, 0x09, 0xd3, 0x75, 0xbf, 0xf4, 0x9c, 0x22, 0x45, 0x87, 0x70, 0xc6, 0x65,
		0x92, 0xb4, 0xfd, 0x20, 0x59, 0x89, 0x91, 0x45, 0x55, 0x26, 0x59, 0xd5, 0x94, 0xf2, 0xd7, 0x24,
		0x8b, 0x76, 0x4b, 0x29, 0x7f, 0x51, 0x86, 0x8b, 0x71, 0xed, 0x2c, 0xb2, 0xcd, 0x7a, 0x79, 0x8b,
		0xb5, 0x45, 0xb1, 0xd6, 0xd6, 0x9e, 0x58, 0x5b, 0xc4, 0x4a, 0xaa, 0x90, 0x6b, 0xaa, 0x90, 0x55,
		0x15, 0x1d, 0x86, 0x29, 0x64, 0x50, 0xf5, 0x4e, 0x91, 0x28, 0xbc, 0xc9, 0x91, 0x93, 0x65, 0xe5,
		0x5c, 0x70, 0x4e, 0xe5, 0xa4, 0x4a, 0xe7, 0x20, 0xdc, 0x28, 0x1d, 0x07, 0x5a, 0xff, 0xf4, 0x4e,
		0x61, 0x6a, 0x3b, 0x5a, 0xaa, 0xeb, 0x6f, 0xed, 0x20, 0x8a, 0x53, 0x9b, 0xd5, 0x09, 0x49, 0x7b,
		0xfc, 0xaa, 0x94, 0x5c, 0x34, 0x5d, 0x26, 0x9d, 0x3a, 0x83, 0xce, 0x82, 0x39, 0x67, 0xcb, 0x98,
		0xb3, 0x62, 0xca, 0x99, 0x33, 0xe4, 0xcc, 0x99, 0x71, 0xe6, 0x8c, 0x38, 0x5f, 0xe0, 0x7c, 0xa4,
		0xd2, 0x2d, 0xca, 0x24, 0xb1, 0x2b, 0x3b, 0xed, 0x21, 0xf9, 0xc6, 0x0d, 0x93, 0x1f, 0xf6, 0x28,
		0x3f, 0x50, 0x7e, 0xa0, 0xfc, 0xb0, 0x81, 0xf2, 0x43, 0xda, 0x41, 0x38, 0xf9, 0x22, 0xd1, 0xfd,
		0x3e, 0x7a, 0x26, 0x4a, 0xbb, 0x61, 0x10, 0x9b, 0xec, 0x3c, 0x61, 0xea, 0xef, 0xb3, 0x06, 0x64,
		0xb5, 0x06, 0x22, 0x93, 0x50, 0x9d, 0x79, 0xc8, 0xb6, 0x11, 0xba, 0xed, 0x86, 0x70, 0x5b, 0xa1,
		0xdc, 0x7a, 0x48, 0xb7, 0x1e, 0xda, 0xad, 0x87, 0xf8, 0x6c, 0x42, 0x7d, 0x46, 0x21, 0x3f, 0xf3,
		0xd0, 0x9f, 0x7c, 0xe1, 0xa4, 0x28, 0x9c, 0xb9, 0xe3, 0x4c, 0xc3, 0x45, 0x66, 0x45, 0x69, 0x8b,
		0x00, 0x90, 0x99, 0xf0, 0x81, 0x04, 0x08, 0x18, 0xc0, 0x60, 0x1b, 0x20, 0x60, 0x80, 0x02, 0x06,
		0x30, 0x60, 0x80, 0x23, 0x5b, 0x00, 0xc9, 0x18, 0x48, 0xac, 0x01, 0xca, 0x73, 0x60, 0xb1, 0xe7,
		0x6f, 0xcf, 0xf0, 0xc5, 0x96, 0xaf, 0xd9, 0x81, 0x19, 0x6b, 0x79, 0x07, 0x12, 0xec, 0x60, 0xc1,
		0x0f, 0x0a, 0x0c, 0xc1, 0xc1, 0x11, 0x1c, 0x2c, 0xc1, 0xc1, 0x93, 0x1d, 0x98, 0xb2, 0x04, 0x57,
		0xd6, 0x61, 0x2b, 0x31, 0x60, 0xba, 0x23, 0xc6, 0xba, 0xa7, 0x3e, 0x1e, 0x46, 0x93, 0xe5, 0x16,
		0x9d, 0x7f, 0x83, 0x34, 0xcb, 0x0d, 0x4b, 0x61, 0x3a, 0xa7, 0x22, 0x75, 0x4c, 0xc5, 0xec, 0x94,
		0x8a, 0xd6, 0xc3, 0x0c, 0xb6, 0x33, 0x2a, 0x6c, 0x83, 0x32, 0xd8, 0x4e, 0xa8, 0xdb, 0xdd, 0x3c,
		0x0a, 0xa6, 0xe3, 0x69, 0x12, 0x77, 0xfa, 0x52, 0xf4, 0x22, 0xd9, 0x43, 0x08, 0x3a, 0xd3, 0xcc,
		0xab, 0x06, 0x60, 0xcb, 0xd9, 0x64, 0x09, 0xe2, 0xdb, 0xb7, 0xe3, 0x75, 0xb5, 0xde, 0x14, 0xca,
		0xb7, 0xb5, 0xc9, 0x92, 0xc5, 0xfc, 0x2b, 0xc4, 0x80, 0xeb, 0x47, 0x56, 0x07, 0x91, 0x7c, 0x91,
		0xd4, 0x91, 0xd4, 0x91, 0xd4, 0x91, 0xd4, 0x91, 0xd4, 0x91, 0xd4, 0x91, 0xd4, 0xad, 0x48, 0xea,
		0xc6, 0x61, 0x87, 0x9c, 0x2e, 0xf3, 0x47, 0x91, 0xcd, 0x5e, 0xe6, 0x3f, 0x76, 0x18, 0x84, 0x0e,
		0xb4, 0x96, 0x2b, 0x4f, 0x64, 0x74, 0x64, 0x74, 0x64, 0x74, 0x64, 0x74, 0x64, 0x74, 0xf6, 0x2b,
		0x59, 0x89, 0x21, 0xa3, 0x36, 0xcf, 0x4a, 0x77, 0xe5, 0x1d, 0xde, 0x49, 0x81, 0x4f, 0x6c, 0xe3,
		0x49, 0x81, 0xc8, 0x40, 0x8a, 0x08, 0xa8, 0xd8, 0xc0, 0x8a, 0x0a, 0xb0, 0xf0, 0x40, 0x0b, 0x0f,
		0xb8, 0xf0, 0xc0, 0x8b, 0x01, 0xc0, 0x20, 0x40, 0x8c, 0x27, 0xb1, 0x00, 0x4b, 0x2d, 0x88, 0x92,
		0xcb, 0x22, 0xe9, 0xe5, 0x1f, 0xfe, 0x1b, 0x51, 0x8a, 0x58, 0x9a, 0x38, 0xb9, 0x9a, 0x08, 0x35,
		0x63, 0x9a, 0xc1, 0xf3, 0x97, 0x50, 0x9c, 0xd2, 0x69, 0xcb, 0xd8, 0xb8, 0x93, 0x3e, 0x2d, 0x60,
		0xbc, 0xf4, 0xd1, 0x34, 0xd2, 0x52, 0xd2, 0x52, 0xd2, 0x52, 0xd2, 0x52, 0xd2, 0x52, 0xd2, 0xd2,
		0x2d, 0xa3, 0xa5, 0x3c, 0xc0, 0x9a, 0x34, 0xee, 0x0f, 0x9e, 0x49, 0x27, 0xb8, 0xb9, 0x19, 0x68,
		0x65, 0xee, 0x51, 0x45, 0xc6, 0x59, 0x03, 0x49, 0xe9, 0x48, 0xe9, 0x48, 0xe9, 0x48, 0xe9, 0x48,
		0xe9, 0x48, 0xe9, 0xb6, 0x8c, 0xd2, 0x51, 0x69, 0xfc, 0x33, 0xe8, 0xf9, 0x23, 0xa5, 0x71, 0xca,
		0x2b, 0x94, 0x8c, 0x93, 0xeb, 0x7b, 0x8a, 0x8d, 0x98, 0x2c, 0x55, 0xde, 0x19, 0x17, 0x9e, 0xa9,
		0x2e, 0x32, 0x92, 0x6c, 0x95, 0x6c, 0x95, 0x6c, 0x95, 0x6c, 0x95, 0x6c, 0x95, 0x6c, 0x95, 0x6c,
		0x95, 0x6c, 0x75, 0x55, 0xb6, 0xfa, 0x94, 0x5b, 0x0c, 0x19, 0xeb, 0x33, 0xae, 0x41, 0xd6, 0x8a,
		0xc9, 0x5a, 0x95, 0xbe, 0x15, 0x7d, 0xd5, 0x75, 0x23, 0x29, 0x62, 0xcb, 0x67, 0xfd, 0x2f, 0xf4,
		0xd0, 0x19, 0xfb, 0xc8, 0x55, 0xc9, 0x55, 0xc9, 0x55, 0xc9, 0x55, 0xc9, 0x55, 0xc9, 0x55, 0xb7,
		0x8c, 0xab, 0xaa, 0xae, 0xd4, 0x46, 0x99, 0x7b, 0x50, 0xbe, 0x5a, 0x01, 0xb2, 0xa9, 0x31, 0x19,
		0xaa, 0x43, 0x11, 0x03, 0x86, 0xd4, 0xe9, 0x03, 0x6d, 0x9c, 0xfe, 0x5d, 0x3f, 0x69, 0x1c, 0xf9,
		0xad, 0xe6, 0xc5, 0x97, 0x63, 0xbf, 0x75, 0x5c, 0x3f, 0x6f, 0x9e, 0xa2, 0x45, 0xd7, 0xbf, 0x45,
		0x7f, 0x30, 0x6a, 0xe2, 0x7d, 0x09, 0x65, 0xd7, 0xf0, 0xf5, 0x0b, 0xce, 0xa2, 0x85, 0x4f, 0xb7,
		0x7e, 0xee, 0x9f, 0x34, 0x9b, 0x67, 0x0e, 0x9c, 0xb5, 0x0f, 0x7f, 0xf1, 0x91, 0xae, 0xf6, 0x48,
		0x3f, 0x9c, 0x5c, 0x9c, 0x7f, 0x39, 0x6e, 0xf1, 0xb9, 0x6e, 0xda, 0x73, 0x6d, 0x9e, 0x7e, 0x3c,
		0x3e, 0xe2, 0x13, 0xdd, 0x9c, 0x27, 0xda, 0x6c, 0x35, 0x3e, 0x35, 0x4e, 0xeb, 0x5f, 0x9a, 0x2d,
		0xc0, 0xa7, 0x0a, 0x65, 0xd1, 0x15, 0xf3, 0x11, 0x30, 0x2b, 0x10, 0xd4, 0xc1, 0xbe, 0x88, 0x8d,
		0x7b, 0x13, 0x74, 0x55, 0x4f, 0xc9, 0x2e, 0x9e, 0x38, 0xf8, 0xdc, 0x3c, 0x6a, 0x83, 0x8b, 0xcc,
		0xa1, 0x36, 0xb8, 0xc4, 0x84, 0xa2, 0x36, 0xb8, 0xd4, 0x4c, 0xa7, 0x36, 0xf8, 0x4a, 0x03, 0xa9,
		0x0d, 0xe6, 0x88, 0xff, 0x02, 0x6b, 0x83, 0x46, 0xdd, 0x48, 0xa3, 0x3a, 0x3f, 0xe2, 0x6a, 0x19,
		0x50, 0x1b, 0x7c, 0x07, 0x64, 0xd2, 0x85, 0x56, 0x26, 0x1e, 0x1d, 0xde, 0x2c, 0x74, 0x10, 0xcb,
		0x4e, 0xa0, 0xbb, 0x31, 0xd2, 0x90, 0xb5, 0x84, 0xbe, 0x96, 0x70, 0x7a, 0x1b, 0x5e, 0xba, 0xe7,
		0x7c, 0x56, 0x1a, 0x0e, 0x11, 0x13, 0xe3, 0x46, 0xb2, 0x29, 0x0e, 0xe7, 0x9a, 0xb3, 0xef, 0x63,
		0x24, 0x3a, 0x46, 0x05, 0xfa, 0x48, 0x5d, 0x8f, 0xdd, 0x01, 0xd5, 0xd0, 0x53, 0x79, 0x2d, 0x8c,
		0xba, 0x1d, 0x8e, 0x65, 0x4f, 0xf4, 0x63, 0x49, 0x6d, 0xe6, 0x4f, 0x5c, 0x43, 0xdc, 0xe1, 0xbb,
		0x46, 0xf1, 0x5d, 0xb9, 0x5c, 0xad, 0x95, 0xcb, 0x7b, 0xb5, 0xfd, 0xda, 0xde, 0x41, 0xa5, 0x52,
		0xac, 0x22, 0x95, 0x90, 0xe8, 0x2d, 0x1b, 0xcc, 0x27, 0xf1, 0xac, 0xb9, 0xa2, 0xe6, 0x85, 0x12,
		0x4d, 0x61, 0xce, 0xe7, 0x9a, 0x23, 0xf9, 0x18, 0xe7, 0x74, 0xcd, 0x92, 0x7b, 0xea, 0x5c, 0x2f,
		0x18, 0x44, 0x9d, 0x6b, 0x59, 0xeb, 0xa8, 0x73, 0xad, 0x68, 0x20, 0x75, 0xae, 0x8d, 0x60, 0x02,
		0xd4, 0xb9, 0xfe, 0x2d, 0x6e, 0x0d, 0x94, 0x36, 0xfb, 0x25, 0x40, 0x89, 0xab, 0x46, 0x09, 0xe9,
		0x5f, 0x5e, 0x94, 0x90, 0x56, 0xcb, 0x93, 0x29, 0x21, 0x6d, 0x7c, 0x52, 0x4c, 0x09, 0x69, 0x35,
		0xd7, 0x28, 0x97, 0x0e, 0xca, 0x07, 0xd5, 0x5a, 0xe9, 0x80, 0xc2, 0xd1, 0xc6, 0xfb, 0x08, 0x85,
		0xa3, 0x85, 0xaf, 0x2b, 0x12, 0xd7, 0x27, 0xd3, 0x58, 0xde, 0x99, 0x48, 0xb8, 0x03, 0x1d, 0x1b,
		0xd1, 0xee, 0x83, 0x51, 0xd8, 0x48, 0xf6, 0x64, 0x24, 0x75, 0x87, 0xcc, 0x6c, 0x09, 0xbe, 0xdf,
		0x8d, 0x44, 0xcf, 0xb8, 0x4a, 0x9a, 0x9e, 0xab, 0xba, 0x91, 0x2b, 0xba, 0xdd, 0x51, 0xcf, 0xe4,
		0xb8, 0xe0, 0x16, 0xea, 0xdd, 0x5b, 0x19, 0x19, 0x15, 0xcb, 0x61, 0x5e, 0x59, 0x08, 0x7a, 0x85,
		0xcf, 0x83, 0xbe, 0x51, 0x61, 0x5f, 0x16, 0xce, 0x86, 0x7f, 0xf1, 0x55, 0x2b, 0x5d, 0x38, 0xfc,
		0x74, 0xe6, 0x00, 0x82, 0x2b, 0xa8, 0xce, 0xb1, 0x48, 0xef, 0x78, 0x9c, 0xb5, 0xa0, 0xc8, 0x85,
		0x2e, 0x7d, 0x2c, 0x94, 0x40, 0xd6, 0x30, 0xad, 0x89, 0xd0, 0x44, 0xe8, 0x5c, 0x8d, 0x07, 0x44,
		0x69, 0x07, 0x4b, 0x92, 0xc7, 0x3a, 0xab, 0xfb, 0x31, 0xfc, 0xb3, 0xb0, 0xf3, 0x8f, 0x06, 0xb1,
		0xb0, 0xb3, 0x21, 0x84, 0x87, 0x85, 0x9d, 0xb5, 0xb2, 0x1a, 0x16, 0x76, 0xd0, 0xf3, 0x63, 0xe0,
		0xe6, 0x06, 0xe1, 0x6d, 0xd9, 0x85, 0xf3, 0xc1, 0xa4, 0xb9, 0xc1, 0x3b, 0xac, 0x66, 0x5c, 0x46,
		0x46, 0x1a, 0x4e, 0x46, 0x70, 0x76, 0x2e, 0xf7, 0xdc, 0x83, 0xab, 0xdf, 0x97, 0x45, 0xf7, 0xe0,
		0x6a, 0x7c, 0x59, 0x1c, 0xbd, 0xfd, 0x2a, 0x3d, 0xfc, 0x2e, 0x5d, 0xee, 0xb9, 0xe5, 0xc9, 0xdd,
		0x52, 0xe5, 0x72, 0xcf, 0xad, 0x5c, 0xed, 0xee, 0x7c, 0xfd, 0xfa, 0x76, 0xd9, 0xcf, 0xec, 0xfe,
		0xda, 0x7f, 0xf0, 0x92, 0x0f, 0x95, 0x26, 0xbf, 0xdd, 0xbf, 0xdc, 0x73, 0x4b, 0x57, 0xbb, 0x38,
		0x61, 0xe7, 0x0a, 0x69, 0xbe, 0x34, 0xcf, 0x1b, 0xff, 0x85, 0x9d, 0x34, 0xff, 0xdb, 0xb1, 0x3e,
		0x6d, 0x76, 0xff, 0xe3, 0x30, 0x5b, 0x64, 0xb6, 0x38, 0x37, 0x35, 0x27, 0x8d, 0xe7, 0x82, 0x81,
		0x91, 0x78, 0x29, 0xe3, 0x53, 0xe3, 0x98, 0x37, 0x32, 0x6f, 0x64, 0xde, 0xc8, 0xbc, 0x91, 0x79,
		0x23, 0xf3, 0xc6, 0x2d, 0xcb, 0x1b, 0x79, 0x82, 0x1c, 0x3e, 0x95, 0x7b, 0xb3, 0xc5, 0x2e, 0xe4,
		0xd4, 0xb5, 0x0e, 0x8c, 0x30, 0x0a, 0xa4, 0xb7, 0xb2, 0x13, 0x77, 0xbe, 0xc9, 0x1b, 0x31, 0x39,
		0x13, 0xd9, 0xf1, 0x82, 0x50, 0xea, 0xce, 0x88, 0x28, 0xb9, 0x5a, 0x9a, 0x9f, 0x41, 0xf4, 0xc3,
		0x55, 0x3a, 0x36, 0x42, 0x77, 0xa4, 0x37, 0x7b, 0x23, 0x9e, 0xbb, 0xe3, 0x85, 0x51, 0x60, 0x82,
		0x4e, 0xd0, 0x8f, 0x93, 0x2b, 0xaf, 0x7d, 0x1d, 0x7a, 0x91, 0x6a, 0x7b, 0xa2, 0xa7, 0xdc, 0x58,
		0xf4, 0x54, 0x9c, 0x5c, 0x79, 0x23, 0x91, 0x67, 0xa0, 0x55, 0x47, 0xc4, 0xc6, 0xd3, 0x52, 0x5d,
		0x7f, 0x6b, 0x07, 0x51, 0x9c, 0x5c, 0x79, 0xa2, 0xfb, 0x7d, 0x84, 0x04, 0x4a, 0xbb, 0x61, 0x10,
		0x1b, 0x6f, 0xc4, 0x6e, 0xe3, 0xf1, 0xdb, 0xb8, 0x7f, 0x38, 0x80, 0x9f, 0x3b, 0xb1, 0x89, 0x06,
		0x1d, 0xa3, 0x27, 0x01, 0xa8, 0x99, 0x0c, 0xe0, 0xe9, 0x78, 0x70, 0x1a, 0x93, 0xb1, 0xf1, 0x67,
		0x7e, 0x8e, 0x67, 0x6f, 0xf8, 0x67, 0xd3, 0xc1, 0x4b, 0xae, 0xfc, 0xc3, 0xeb, 0xd0, 0x6f, 0xa9,
		0xb6, 0x5f, 0xef, 0xa9, 0xf3, 0xe1, 0xd8, 0x4d, 0x2f, 0xfc, 0x46, 0x78, 0x5b, 0xbe, 0x18, 0x8f,
		0x9c, 0x7f, 0x3a, 0x1d, 0xb9, 0xe4, 0xca, 0xaf, 0x77, 0xbf, 0xb7, 0x54, 0xbb, 0xa1, 0xcf, 0x82,
		0xd8, 0xf8, 0xad, 0xd1, 0xb0, 0x8d, 0xdf, 0xfc, 0xf3, 0xd1, 0xb0, 0xbd, 0xd9, 0xce, 0x00, 0x60,
		0xd1, 0xf9, 0x9d, 0x81, 0xfe, 0xa1, 0x83, 0x9f, 0xda, 0x15, 0xc6, 0x44, 0xaa, 0x3d, 0x7c, 0x22,
		0xd6, 0x03, 0xc0, 0xe3, 0x32, 0xfa, 0x79, 0xdb, 0x2c, 0x87, 0xc9, 0x29, 0x68, 0x5a, 0x36, 0x03,
		0x25, 0x67, 0x44, 0xca, 0x15, 0x31, 0x73, 0x44, 0xb4, 0xdc, 0x10, 0x36, 0x27, 0x84, 0xcd, 0x05,
		0x61, 0x73, 0xc0, 0xed, 0x26, 0xac, 0x47, 0x2a, 0xc2, 0x08, 0x3b, 0x73, 0x20, 0x85, 0x27, 0xc2,
		0xce, 0x9b, 0x88, 0x25, 0xc5, 0x16, 0x29, 0xc5, 0xc2, 0xc3, 0x2b, 0x36, 0xcc, 0xa2, 0xc2, 0x2d,
		0x3c, 0xec, 0xc2, 0xc3, 0x2f, 0x3c, 0x0c, 0xe3, 0x28, 0x58, 0x05, 0x20, 0x29, 0x16, 0x05, 0x9e,
		0x13, 0x83, 0x86, 0xd8, 0xe7, 0x1a, 0x34, 0x81, 0xf8, 0x59, 0x44, 0x7d, 0x34, 0x11, 0xcc, 0xf5,
		0xb0, 0x2a, 0xa6, 0xb0, 0x70, 0x8d, 0x0c, 0xdb, 0xf9, 0x80, 0x6f, 0x74, 0x18, 0xcf, 0x0d, 0x9c,
		0xe7, 0x06, 0xd6, 0x73, 0x03, 0xef, 0x58, 0x30, 0x0f, 0x06, 0xf7, 0xc9, 0x53, 0xfc, 0x82, 0x08,
		0xb0, 0x05, 0xec, 0xa3, 0x74, 0xe7, 0xb2, 0xe1, 0x1a, 0xa0, 0x6d, 0x4f, 0x8e, 0xd6, 0x1d, 0x9f,
		0x90, 0xfb, 0x48, 0x56, 0xb8, 0xa1, 0x0e, 0xdd, 0x35, 0x9d, 0x71, 0x51, 0x12, 0x96, 0xf8, 0xa2,
		0xd4, 0x4c, 0x17, 0x7a, 0x23, 0x49, 0x2f, 0x49, 0x2f, 0x49, 0x2f, 0x49, 0x2f, 0x49, 0x2f, 0x91,
		0x75, 0xf1, 0x53, 0x44, 0xd3, 0xba, 0x12, 0xc3, 0x46, 0x1c, 0xad, 0x2f, 0x81, 0xbb, 0xc7, 0x3d,
		0x93, 0xbe, 0x86, 0x96, 0x82, 0x3a, 0x2a, 0xa6, 0x02, 0x06, 0x4f, 0x0a, 0xf2, 0x40, 0x0e, 0xf2,
		0x45, 0x12, 0xf2, 0x42, 0x16, 0x72, 0x47, 0x1a, 0x72, 0x47, 0x1e, 0x72, 0x47, 0x22, 0x30, 0xc9,
		0x04, 0x28, 0xa9, 0x48, 0x9e, 0x2e, 0xac, 0xa2, 0x36, 0x17, 0x37, 0x07, 0x4a, 0x9b, 0x62, 0x15,
		0x39, 0x66, 0x4e, 0x50, 0xbc, 0x0a, 0x6c, 0x22, 0x66, 0x53, 0xe4, 0xd9, 0x17, 0x36, 0xe6, 0x14,
		0xd0, 0x9b, 0x26, 0xcf, 0x19, 0x0b, 0xde, 0x44, 0x79, 0xce, 0xde, 0xbc, 0x34, 0x8c, 0x9d, 0x8f,
		0x55, 0xe8, 0x0d, 0x64, 0x73, 0x02, 0x4b, 0xcf, 0x5d, 0x4d, 0xdc, 0xe5, 0xcf, 0xd5, 0xaa, 0x95,
		0xca, 0x7e, 0x85, 0xee, 0x46, 0x77, 0xcb, 0x01, 0x37, 0xc5, 0xb7, 0xee, 0x8a, 0x9c, 0x7e, 0x09,
		0xb7, 0x00, 0xee, 0xff, 0x3c, 0x67, 0x2b, 0x6e, 0x3f, 0xe8, 0x1c, 0x92, 0xd2, 0x69, 0xaa, 0xd4,
		0xfa, 0xf8, 0xa1, 0x50, 0x2e, 0xd5, 0x8a, 0x05, 0xb7, 0x50, 0x2f, 0x1c, 0x06, 0x51, 0x57, 0x46,
		0x85, 0x4f, 0xc2, 0xc8, 0x9f, 0xe2, 0xbe, 0x30, 0xdd, 0x64, 0x59, 0x28, 0x17, 0x76, 0x0e, 0x3f,
		0x9d, 0xb9, 0xe5, 0x5d, 0x27, 0x07, 0x1c, 0x20, 0x27, 0x72, 0xd4, 0x63, 0x2a, 0x98, 0x9f, 0xde,
		0xd1, 0x73, 0xb6, 0xe7, 0x4d, 0xa1, 0x4a, 0x0c, 0x7f, 0xaa, 0x54, 0x2d, 0xe9, 0x02, 0x64, 0x0e,
		0x64, 0x0e, 0x5b, 0x3d, 0x5e, 0x88, 0xa7, 0xef, 0xe0, 0xae, 0xa9, 0x9f, 0x43, 0x5c, 0xd4, 0xb5,
		0xf5, 0x8f, 0x80, 0xc4, 0x0a, 0xe3, 0xab, 0x0c, 0x64, 0x85, 0x71, 0x4b, 0x29, 0x1d, 0x2b, 0x8c,
		0x99, 0xf2, 0x36, 0x56, 0x18, 0x37, 0x4d, 0x8d, 0xc8, 0x57, 0x85, 0xf1, 0x5d, 0x0e, 0x0a, 0x8c,
		0x15, 0x16, 0x18, 0x37, 0x5f, 0xcb, 0x61, 0x81, 0x31, 0x45, 0x7b, 0x59, 0xf1, 0xd8, 0x72, 0x54,
		0x7a, 0xee, 0x6a, 0x79, 0x2c, 0x30, 0x96, 0x2a, 0x2c, 0x2f, 0xd2, 0xd9, 0xf2, 0x40, 0x4c, 0xf1,
		0xad, 0x63, 0x79, 0x71, 0x19, 0xb7, 0x60, 0x79, 0x71, 0x4b, 0x29, 0x29, 0xcb, 0x8b, 0x30, 0x89,
		0x20, 0xcb, 0x8b, 0xd9, 0x1b, 0xce, 0xf2, 0x22, 0xad, 0xcb, 0x09, 0x73, 0x60, 0x79, 0xf1, 0x0f,
		0xfc, 0x79, 0x54, 0xb3, 0xbb, 0x9d, 0xa4, 0x53, 0x79, 0xa8, 0x2f, 0x8e, 0x6d, 0x65, 0x81, 0x71,
		0x15, 0xf3, 0x58, 0x60, 0x5c, 0xe3, 0x6c, 0x64, 0x81, 0x31, 0x25, 0x32, 0xc7, 0x02, 0x63, 0xea,
		0xcc, 0x8d, 0x05, 0xc6, 0x4d, 0xd3, 0x23, 0xf2, 0x53, 0x60, 0x6c, 0x2b, 0x2d, 0xa2, 0xfb, 0x1c,
		0x54, 0x18, 0x0f, 0x80, 0x4d, 0x3c, 0x91, 0xfa, 0x7a, 0xd4, 0x2c, 0x8c, 0x7a, 0xce, 0x2b, 0x47,
		0x32, 0x97, 0x25, 0xc6, 0x22, 0xab, 0x1e, 0x29, 0x07, 0x2b, 0x96, 0x18, 0x53, 0x70, 0x35, 0xee,
		0x61, 0xa4, 0xbb, 0x6d, 0x88, 0xbb, 0x51, 0x2a, 0x5c, 0xe9, 0xc5, 0x22, 0xe3, 0x32, 0x6e, 0xc1,
		0x22, 0xe3, 0x96, 0x92, 0x52, 0x16, 0x19, 0x61, 0x72, 0x41, 0x16, 0x19, 0xb3, 0x37, 0x9c, 0x45,
		0x46, 0x5a, 0x97, 0x13, 0xe6, 0xc0, 0x22, 0xe3, 0x9f, 0xf1, 0x18, 0xa9, 0xbb, 0xb2, 0x8b, 0x5f,
		0x62, 0x4c, 0x2c, 0x65, 0x81, 0x71, 0x15, 0xf3, 0x58, 0x60, 0x5c, 0xe3, 0x5c, 0x64, 0x81, 0x31,
		0x25, 0x22, 0xc7, 0x02, 0x63, 0xea, 0xac, 0x8d, 0x05, 0xc6, 0x4d, 0xd3, 0x22, 0x72, 0x54, 0x60,
		0x0c, 0x82, 0xbe, 0x14, 0x3a, 0x07, 0x15, 0xc6, 0x62, 0x91, 0x53, 0x70, 0x39, 0x1a, 0x49, 0x39,
		0x6c, 0xed, 0x2f, 0xca, 0x61, 0x64, 0x4f, 0xab, 0xb0, 0x28, 0xca, 0x61, 0x36, 0x88, 0x15, 0xe5,
		0x30, 0x5a, 0x57, 0xa0, 0x1c, 0x96, 0x67, 0x2e, 0xe3, 0x04, 0xa1, 0x51, 0x81, 0x16, 0x7d, 0x7c,
		0x39, 0x2c, 0xb1, 0x94, 0x72, 0xd8, 0x2a, 0xe6, 0x51, 0x0e, 0x5b, 0xe7, 0x5c, 0xa4, 0x1c, 0x96,
		0x0e, 0x91, 0xa3, 0x1c, 0x96, 0x3a, 0x6b, 0xa3, 0x1c, 0xb6, 0x69, 0x5a, 0x04, 0xe5, 0xb0, 0xf5,
		0xc3, 0x38, 0xe5, 0xb0, 0xa5, 0x46, 0x8d, 0x72, 0x58, 0x1a, 0x2f, 0xca, 0x61, 0x64, 0x4f, 0xab,
		0xb0, 0x28, 0xca, 0x61, 0x36, 0x88, 0x15, 0xe5, 0x30, 0x5a, 0x57, 0xa0, 0x1c, 0x96, 0x67, 0x2e,
		0xe3, 0x84, 0x22, 0x32, 0x2a, 0x0f, 0x6a, 0xd8, 0xd4, 0x50, 0x8a, 0x61, 0xab, 0x98, 0x47, 0x31,
		0x6c, 0x8d, 0x53, 0x91, 0x62, 0x58, 0x4a, 0x34, 0x8e, 0x62, 0x58, 0xea, 0x9c, 0x8d, 0x62, 0xd8,
		0xa6, 0x29, 0x11, 0x14, 0xc3, 0xd6, 0x0f, 0xe3, 0x14, 0xc3, 0x96, 0x1a, 0x35, 0x8a, 0x61, 0x69,
		0xbc, 0x28, 0x86, 0x91, 0x3d, 0xad, 0xc2, 0xa2, 0x28, 0x86, 0xd9, 0x20, 0x56, 0x14, 0xc3, 0x68,
		0x5d, 0x81, 0x62, 0x58, 0x9e, 0xb9, 0x8c, 0x63, 0x22, 0xa1, 0x63, 0x35, 0xe9, 0x85, 0x02, 0xae,
		0x87, 0x3d, 0xb1, 0x95, 0x92, 0xd8, 0x2a, 0xe6, 0x51, 0x12, 0x5b, 0xe3, 0x6c, 0xa4, 0x24, 0x96,
		0x12, 0x99, 0xa3, 0x24, 0x96, 0x3a, 0x73, 0xa3, 0x24, 0xb6, 0x69, 0x7a, 0x04, 0x25, 0xb1, 0xf5,
		0xc3, 0x38, 0x25, 0xb1, 0xa5, 0x46, 0x8d, 0x92, 0x58, 0x1a, 0x2f, 0x4a, 0x62, 0x64, 0x4f, 0xab,
		0xb0, 0x28, 0x4a, 0x62, 0x36, 0x88, 0x15, 0x25, 0x31, 0x5a, 0x57, 0xa0, 0x24, 0x96, 0x53, 0x8b,
		0xc0, 0x98, 0x95, 0x53, 0xd7, 0x3a, 0x30, 0xc2, 0xa8, 0x00, 0xb3, 0x65, 0xbc, 0x13, 0x77, 0xbe,
		0xc9, 0x1b, 0x11, 0x8a, 0xd1, 0xc9, 0x00, 0x8e, 0x17, 0x84, 0x52, 0x77, 0x46, 0x12, 0x93, 0xab,
		0xa5, 0xf9, 0x19, 0x44, 0x3f, 0x5c, 0x35, 0x64, 0x83, 0xba, 0x23, 0xbd, 0xd9, 0x1b, 0xf1, 0xdc,
		0x1d, 0x2f, 0x9c, 0xc4, 0xc7, 0x38, 0xb9, 0xf2, 0xda, 0xd7, 0xa1, 0x17, 0xa9, 0xb6, 0x27, 0x7a,
		0xca, 0x8d, 0x45, 0x4f, 0xc5, 0xc9, 0x95, 0xa7, 0xc2, 0xdb, 0xb2, 0x3b, 0xd0, 0xaa, 0x23, 0x62,
		0xe3, 0x69, 0xa9, 0xae, 0xbf, 0xb5, 0x83, 0x28, 0x4e, 0xae, 0x3c, 0xd1, 0xfd, 0x3e, 0xca, 0x71,
		0x95, 0x76, 0xc3, 0x20, 0x36, 0x5e, 0x14, 0x0c, 0x8c, 0x8c, 0xc7, 0x6f, 0xde, 0x40, 0xff, 0xd0,
		0xc1, 0x4f, 0xed, 0x0a, 0x63, 0x22, 0xd5, 0x1e, 0xfd, 0x62, 0xee, 0x96, 0x17, 0x1b, 0x61, 0x10,
		0xd1, 0xd3, 0x89, 0x4d, 0x34, 0xe8, 0x18, 0x3d, 0x61, 0x5d, 0xcd, 0x64, 0xd4, 0x4f, 0xc7, 0x23,
		0xda, 0x98, 0x0c, 0xa8, 0x3f, 0xf3, 0x73, 0x3c, 0x7b, 0xc3, 0x9f, 0x22, 0x52, 0x9c, 0x5c, 0xf9,
		0x87, 0xd7, 0xa1, 0xdf, 0x52, 0x6d, 0xbf, 0xde, 0x53, 0xe7, 0xc3, 0x01, 0x9f, 0x5e, 0xf8, 0x8d,
		0xf0, 0xb6, 0x7c, 0x31, 0x1e, 0x6e, 0xff, 0x74, 0x3a, 0xdc, 0xc9, 0x95, 0x5f, 0xef, 0x7e, 0x6f,
		0xa9, 0x76, 0x43, 0x9f, 0x05, 0xb1, 0xf1, 0x5b, 0xa3, 0xb1, 0x1e, 0xbf, 0xf9, 0x17, 0xe3, 0x81,
		0xad, 0x27, 0x43, 0x3d, 0x77, 0xc7, 0x3f, 0x1f, 0x8d, 0xf4, 0x1b, 0x06, 0x26, 0x5c, 0x4b, 0x40,
		0x42, 0xe3, 0x90, 0xe1, 0x26, 0x47, 0xb3, 0x99, 0xfb, 0x10, 0xc5, 0x3f, 0x9d, 0x13, 0x15, 0x9b,
		0xe1, 0x84, 0x86, 0x0a, 0xd4, 0xce, 0x67, 0xa5, 0x8f, 0xfb, 0x72, 0x48, 0x4e, 0xc1, 0xba, 0xf3,
		0x3b, 0x9f, 0xc5, 0xdd, 0x13, 0xcb, 0x8a, 0xef, 0xca, 0xe5, 0x6a, 0xad, 0x5c, 0xde, 0xab, 0xed,
		0xd7, 0xf6, 0x0e, 0x2a, 0x95, 0x62, 0xb5, 0x08, 0x74, 0x06, 0x82, 0xd3, 0x1c, 0xf2, 0x78, 0xd9,
		0x3d, 0x1c, 0x4e, 0x3d, 0x3d, 0xe8, 0xf7, 0x11, 0x4d, 0xbb, 0x88, 0x65, 0x04, 0x75, 0x9c, 0x01,
		0x4a, 0xc4, 0x00, 0x25, 0x51, 0x9b, 0x4d, 0x9e, 0x80, 0x68, 0xd3, 0xc6, 0xd1, 0x25, 0x0c, 0xa2,
		0x64, 0x9f, 0x96, 0xd8, 0xb5, 0xc0, 0x72, 0x78, 0x43, 0x0b, 0x6b, 0x9b, 0x14, 0xce, 0x00, 0x82,
		0x57, 0xde, 0x83, 0x96, 0xdd, 0x18, 0x65, 0x2f, 0x32, 0xd8, 0xf9, 0x66, 0x4b, 0xb1, 0x68, 0x9a,
		0x8c, 0x8d, 0x17, 0x6c, 0x14, 0x86, 0xbe, 0xef, 0x2a, 0x5b, 0xad, 0xec, 0x31, 0x32, 0x30, 0x9c,
		0x8c, 0x0b, 0x3a, 0xc3, 0x02, 0xca, 0xa8, 0x80, 0x32, 0x28, 0x5b, 0x6e, 0x0c, 0x42, 0x25, 0x72,
		0x4b, 0x21, 0x2c, 0xf2, 0x85, 0x7c, 0xf1, 0x04, 0x3b, 0xac, 0x20, 0x7b, 0x4c, 0xce, 0xf6, 0x1b,
		0x33, 0x0e, 0x1b, 0xb6, 0xc3, 0x45, 0x0e, 0xc3, 0x84, 0x85, 0x00, 0x91, 0x97, 0xc0, 0x90, 0x6d,
		0x48, 0xc8, 0xce, 0x31, 0x33, 0x74, 0x4a, 0x67, 0x5c, 0xa8, 0xcc, 0xda, 0x17, 0x93, 0x65, 0x5f,
		0x36, 0xea, 0xa4, 0xc9, 0x12, 0xcd, 0x8c, 0xbf, 0x36, 0xd9, 0x41, 0x51, 0xca, 0xf8, 0x8b, 0x2d,
		0xee, 0x8c, 0xc0, 0xd8, 0xf1, 0x60, 0x7b, 0x2d, 0x1e, 0xcc, 0x0e, 0x05, 0x98, 0x85, 0x72, 0x30,
		0x3b, 0x0a, 0x48, 0xb7, 0x48, 0xb7, 0xc6, 0x74, 0xcb, 0xd6, 0x92, 0x1d, 0x7c, 0xb6, 0x65, 0x61,
		0x89, 0x4d, 0x86, 0x64, 0xeb, 0xcd, 0x06, 0x39, 0xbe, 0x2d, 0x87, 0xcf, 0x93, 0xa3, 0x3b, 0x99,
		0xb2, 0x6b, 0x6c, 0xd7, 0xce, 0xc6, 0xa9, 0xd3, 0x77, 0xb1, 0x0c, 0xdc, 0xcb, 0x79, 0x3a, 0x8d,
		0xa2, 0xec, 0xb8, 0x64, 0xc2, 0xa0, 0x67, 0xbe, 0x3f, 0xa3, 0x80, 0x92, 0x6d, 0xae, 0x94, 0xf9,
		0x2e, 0x73, 0x1b, 0xb9, 0x91, 0xdd, 0x9c, 0xc8, 0x56, 0x2e, 0x64, 0x3d, 0x07, 0xb2, 0x9e, 0xfb,
		0x58, 0xcf, 0x79, 0x36, 0x8b, 0xea, 0x1c, 0xa9, 0x6c, 0xcb, 0xb5, 0xce, 0x44, 0x8f, 0xb5, 0xa6,
		0x95, 0x59, 0xd1, 0x83, 0x29, 0x96, 0x51, 0x2c, 0xa3, 0x58, 0x46, 0xb1, 0x6c, 0x0b, 0xc4, 0xb2,
		0xac, 0x01, 0xe5, 0x39, 0xb0, 0xd8, 0xf3, 0xb7, 0x67, 0xf8, 0x62, 0xcb, 0xd7, 0xec, 0xc0, 0x8c,
		0xb5, 0xbc, 0x03, 0x09, 0x76, 0xb0, 0xe0, 0x07, 0x05, 0x86, 0xe0, 0xe0, 0x08, 0x0e, 0x96, 0xe0,
		0xe0, 0xc9, 0x0e, 0x4c, 0x59, 0x82, 0x2b, 0xeb, 0xb0, 0x95, 0x18, 0x30, 0x5d, 0xbb, 0x6b, 0xdd,
		0x53, 0x1f, 0xcf, 0x3e, 0xb1, 0xb9, 0x98, 0x78, 0x16, 0xd2, 0x2c, 0xef, 0x9c, 0x84, 0x69, 0xdc,
		0x88, 0xd4, 0xa0, 0x11, 0xb3, 0x11, 0x23, 0x5a, 0xcb, 0x20, 0xd8, 0xc6, 0x8a, 0xb0, 0xfd, 0x7e,
		0x60, 0x1b, 0x25, 0x6e, 0xf7, 0x7e, 0x37, 0x98, 0x06, 0x87, 0x49, 0xdc, 0xe9, 0x4b, 0xd1, 0x8b,
		0x64, 0x0f, 0x21, 0xe8, 0x4c, 0x33, 0xaf, 0x1a, 0x80, 0x2d, 0x67, 0x93, 0x02, 0xf2, 0xdb, 0xb7,
		0xe3, 0xe5, 0x18, 0xde, 0x14, 0xca, 0xb7, 0x75, 0x4b, 0x98, 0xc5, 0xfc, 0x2b, 0xc4, 0x80, 0xeb,
		0x47, 0x56, 0x07, 0x91, 0x7c, 0x91, 0xd4, 0x91, 0xd4, 0x91, 0xd4, 0x91, 0xd4, 0x91, 0xd4, 0x91,
		0xd4, 0x91, 0xd4, 0xad, 0x48, 0xea, 0xc6, 0x61, 0x87, 0x9c, 0x2e, 0xf3, 0x47, 0x61, 0x67, 0xb7,
		0xcf, 0x8b, 0x0e, 0x83, 0xd0, 0x25, 0xd1, 0x72, 0xe5, 0x89, 0x8c, 0x8e, 0x8c, 0x8e, 0x8c, 0x8e,
		0x8c, 0x8e, 0x8c, 0xce, 0x7e, 0x25, 0x2b, 0x31, 0x64, 0xd4, 0x21, 0x54, 0xe9, 0xae, 0xc4, 0x39,
		0x4e, 0xea, 0x71, 0x19, 0xf8, 0xa3, 0x6d, 0x28, 0x6d, 0x55, 0xa1, 0x0e, 0x2e, 0x83, 0x3b, 0xa8,
		0x0c, 0xf1, 0x60, 0x32, 0xec, 0x83, 0xc8, 0x50, 0x8f, 0xce, 0x80, 0x3f, 0x68, 0x0c, 0xfe, 0x1c,
		0x0c, 0xf8, 0x83, 0xc4, 0xd8, 0x30, 0x1b, 0x52, 0x62, 0x01, 0x96, 0x5a, 0x10, 0x25, 0x97, 0x45,
		0xd2, 0xcb, 0x3f, 0xfc, 0x37, 0xa2, 0x14, 0xb1, 0x34, 0x71, 0x72, 0x35, 0x11, 0x6a, 0xc6, 0x34,
		0x83, 0x2d, 0x63, 0x51, 0x9c, 0xd2, 0xe9, 0x04, 0x37, 0x37, 0x03, 0xad, 0xcc, 0x3d, 0x2a, 0x3b,
		0x9d, 0x35, 0x90, 0x14, 0x95, 0x14, 0x95, 0x14, 0x95, 0x14, 0x95, 0x14, 0x95, 0x14, 0x95, 0x14,
		0x95, 0x14, 0x75, 0x55, 0x8a, 0x3a, 0xe5, 0x15, 0x4a, 0xc6, 0xc9, 0xf5, 0x3d, 0x59, 0x2a, 0x26,
		0x4b, 0x95, 0x77, 0xc6, 0x85, 0x67, 0xaa, 0x8b, 0x8c, 0x24, 0x5b, 0x25, 0x5b, 0x25, 0x5b, 0x25,
		0x5b, 0x25, 0x5b, 0x25, 0x5b, 0x25, 0x5b, 0x25, 0x5b, 0x5d, 0x95, 0xad, 0x3e, 0xe5, 0x16, 0x43,
		0xc6, 0xfa, 0x8c, 0x6b, 0x90, 0xb5, 0x62, 0xb2, 0x56, 0xa5, 0x6f, 0x45, 0x5f, 0x75, 0xdd, 0x48,
		0x8a, 0x18, 0xe8, 0xbc, 0xbf, 0xc4, 0x43, 0x67, 0xec, 0x23, 0x57, 0x25, 0x57, 0x25, 0x57, 0x25,
		0x57, 0x25, 0x57, 0x25, 0x57, 0xdd, 0x32, 0xae, 0xaa, 0xba, 0x52, 0x1b, 0x65, 0xee, 0x41, 0xf9,
		0x2a, 0xd2, 0xe9, 0xd3, 0x8d, 0xc9, 0x50, 0x1d, 0x8a, 0x18, 0x30, 0xa4, 0x4e, 0x1f, 0x68, 0xe3,
		0xf4, 0xef, 0xfa, 0x49, 0xe3, 0xc8, 0x6f, 0x35, 0x2f, 0xbe, 0x1c, 0xfb, 0xad, 0xe3, 0xfa, 0x79,
		0xf3, 0x14, 0x2d, 0xba, 0xfe, 0x2d, 0xfa, 0x83, 0x51, 0xf7, 0xc7, 0x4b, 0x28, 0xbb, 0x86, 0xaf,
		0x5f, 0x70, 0x16, 0x2d, 0x7c, 0xba, 0xf5, 0x73, 0xff, 0xa4, 0xd9, 0x3c, 0x73, 0xe0, 0xac, 0x7d,
		0xf8, 0x8b, 0x8f, 0x74, 0xb5, 0x47, 0xfa, 0xe1, 0xe4, 0xe2, 0xfc, 0xcb, 0x71, 0x8b, 0xcf, 0x75,
		0xd3, 0x9e, 0x6b, 0xf3, 0xf4, 0xe3, 0xf1, 0x11, 0x9f, 0xe8, 0xe6, 0x3c, 0xd1, 0x66, 0xab, 0xf1,
		0xa9, 0x71, 0x5a, 0xff, 0xd2, 0x6c, 0x01, 0x3e, 0x55, 0x28, 0x8b, 0xae, 0x98, 0x8f, 0x80, 0x59,
		0x81, 0xa0, 0x0e, 0xf6, 0x45, 0x6c, 0xdc, 0x9b, 0xa0, 0xab, 0x7a, 0x4a, 0x76, 0xf1, 0xc4, 0xc1,
		0xe7, 0xe6, 0x51, 0x1b, 0x5c, 0x64, 0x0e, 0xb5, 0xc1, 0x25, 0x26, 0x14, 0xb5, 0xc1, 0xa5, 0x66,
		0x3a, 0xb5, 0xc1, 0x57, 0x1a, 0x48, 0x6d, 0x30, 0x47, 0xfc, 0x17, 0x58, 0x1b, 0x34, 0xea, 0x46,
		0x1a, 0xd5, 0xf9, 0x11, 0x57, 0xcb, 0x80, 0xda, 0xe0, 0x3b, 0x20, 0x93, 0x2e, 0xb4, 0x32, 0xf1,
		0x70, 0xc8, 0xb4, 0xd0, 0x41, 0x2c, 0x3b, 0x81, 0xee, 0xc6, 0x48, 0x43, 0xd6, 0x12, 0xfa, 0x5a,
		0xc2, 0xe9, 0x6d, 0x78, 0xe9, 0x9e, 0xf3, 0x59, 0x69, 0x38, 0x44, 0x4c, 0x8c, 0x1b, 0xc9, 0xa6,
		0x38, 0x9c, 0x6b, 0xce, 0xbe, 0x8f, 0x91, 0xe8, 0x18, 0x15, 0xe8, 0x23, 0x75, 0x3d, 0x76, 0x07,
		0x54, 0x43, 0x4f, 0xe5, 0xb5, 0x30, 0xea, 0x76, 0x38, 0x96, 0x3d, 0xd1, 0x8f, 0x25, 0xb5, 0x99,
		0x3f, 0x71, 0x0d, 0x71, 0x87, 0xef, 0x1a, 0xc5, 0x77, 0xe5, 0x72, 0xb5, 0x56, 0x2e, 0xef, 0xd5,
		0xf6, 0x6b, 0x7b, 0x07, 0x95, 0x4a, 0xb1, 0x8a, 0x54, 0x42, 0xa2, 0xb7, 0x6c, 0x30, 0x9f, 0xc4,
		0xb3, 0xe6, 0x8a, 0x9a, 0x17, 0x4a, 0x34, 0x85, 0x39, 0xd8, 0x61, 0x8e, 0xe4, 0x63, 0x1c, 0xf0,
		0x30, 0x4b, 0xee, 0xa9, 0x73, 0xbd, 0x60, 0x10, 0x75, 0xae, 0x65, 0xad, 0xa3, 0xce, 0xb5, 0xa2,
		0x81, 0xd4, 0xb9, 0x36, 0x82, 0x09, 0x50, 0xe7, 0xfa, 0xb7, 0xb8, 0x35, 0x50, 0xda, 0xec, 0x97,
		0x00, 0x25, 0xae, 0x1a, 0x25, 0xa4, 0x7f, 0x79, 0x51, 0x42, 0x5a, 0x2d, 0x4f, 0xa6, 0x84, 0xb4,
		0xf1, 0x49, 0x31, 0x25, 0xa4, 0xd5, 0x5c, 0xa3, 0x5c, 0x3a, 0x28, 0x1f, 0x54, 0x6b, 0xa5, 0x03,
		0x0a, 0x47, 0x1b, 0xef, 0x23, 0x14, 0x8e, 0x16, 0xbe, 0xae, 0x48, 0x5c, 0x9f, 0x4c, 0x63, 0x79,
		0x67, 0x22, 0xe1, 0x0e, 0x74, 0x6c, 0x44, 0xbb, 0x0f, 0x46, 0x61, 0x23, 0xd9, 0x93, 0x91, 0xd4,
		0x1d, 0x32, 0xb3, 0x25, 0xf8, 0x7e, 0x37, 0x12, 0x3d, 0xe3, 0x2a, 0x69, 0x7a, 0xae, 0xea, 0x46,
		0xae, 0xe8, 0x76, 0xdd, 0x50, 0x98, 0x6f, 0x71, 0xc1, 0x2d, 0xd4, 0xbb, 0xb7, 0x32, 0x32, 0x2a,
		0x96, 0xc3, 0xbc, 0xb2, 0x10, 0xf4, 0x0a, 0x9f, 0x07, 0x7d, 0xa3, 0xc2, 0xbe, 0x2c, 0x9c, 0x0d,
		0xff, 0xe2, 0xab, 0x56, 0xba, 0x70, 0xf8, 0xe9, 0xcc, 0x01, 0x04, 0x57, 0x50, 0x9d, 0x63, 0x91,
		0xde, 0xf1, 0x38, 0x6b, 0x41, 0x91, 0x0b, 0x5d, 0xfa, 0x58, 0x28, 0x81, 0xac, 0x61, 0x5a, 0x13,
		0xa1, 0x89, 0xd0, 0xb9, 0x1a, 0x0f, 0x88, 0xd2, 0x0e, 0x96, 0x24, 0x8f, 0x75, 0xc8, 0xe3, 0x63,
		0xf8, 0x67, 0x61, 0xe7, 0x1f, 0x0d, 0x62, 0x61, 0x67, 0x43, 0x08, 0x0f, 0x0b, 0x3b, 0x6b, 0x65,
		0x35, 0x2c, 0xec, 0xa0, 0xe7, 0xc7, 0xc0, 0xcd, 0x0d, 0xc2, 0xdb, 0xb2, 0x0b, 0xe7, 0x83, 0x49,
		0x73, 0x83, 0x77, 0x58, 0xcd, 0xb8, 0x8c, 0x8c, 0x34, 0x9c, 0x8c, 0xe0, 0xec, 0x5c, 0xee, 0xb9,
		0x07, 0x57, 0xbf, 0x2f, 0x8b, 0xee, 0xc1, 0xd5, 0xf8, 0xb2, 0x38, 0x7a, 0xfb, 0x55, 0x7a, 0xf8,
		0x5d, 0xba, 0xdc, 0x73, 0xcb, 0x93, 0xbb, 0xa5, 0xca, 0xe5, 0x9e, 0x5b, 0xb9, 0xda, 0xdd, 0xf9,
		0xfa, 0xf5, 0xed, 0xb2, 0x9f, 0xd9, 0xfd, 0xb5, 0xff, 0xe0, 0x25, 0x1f, 0x2a, 0x4d, 0x7e, 0xbb,
		0x7f, 0xb9, 0xe7, 0x96, 0xae, 0x76, 0x71, 0xc2, 0xce, 0x15, 0xd2, 0x7c, 0x69, 0x9e, 0x37, 0xfe,
		0x0b, 0x3b, 0x69, 0xfe, 0xb7, 0x63, 0x7d, 0xda, 0xec, 0xfe, 0xc7, 0x61, 0xb6, 0xc8, 0x6c, 0x71,
		0x6e, 0x6a, 0x4e, 0x1a, 0xcf, 0x05, 0x03, 0x23, 0xf1, 0x52, 0xc6, 0xa7, 0xc6, 0x31, 0x6f, 0x64,
		0xde, 0xc8, 0xbc, 0x91, 0x79, 0x23, 0xf3, 0x46, 0xe6, 0x8d, 0x5b, 0x96, 0x37, 0xb6, 0x83, 0xa0,
		0x2f, 0x85, 0x46, 0xcc, 0x19, 0x8b, 0xa4, 0x72, 0x00, 0x16, 0xd8, 0x3e, 0xdd, 0xb9, 0xae, 0x75,
		0x60, 0x84, 0x51, 0x20, 0xbd, 0x95, 0x9d, 0xb8, 0xf3, 0x4d, 0xde, 0x88, 0x70, 0xd2, 0xd0, 0xdb,
		0x0b, 0x42, 0xa9, 0x3b, 0x23, 0xa2, 0xe4, 0x6a, 0x69, 0x7e, 0x06, 0xd1, 0x0f, 0x57, 0xe9, 0xd8,
		0x08, 0xdd, 0x91, 0xde, 0xec, 0x8d, 0x78, 0xee, 0x8e, 0x17, 0x46, 0x81, 0x09, 0x3a, 0x41, 0x3f,
		0x4e, 0xae, 0xbc, 0xf6, 0x75, 0xe8, 0x45, 0xaa, 0xed, 0x89, 0x9e, 0x72, 0x63, 0xd1, 0x53, 0x71,
		0x72, 0xe5, 0x8d, 0x44, 0x9e, 0x81, 0x56, 0x1d, 0x11, 0x1b, 0x4f, 0x4b, 0x75, 0xfd, 0xad, 0x1d,
		0x44, 0x71, 0x72, 0xe5, 0x89, 0xee, 0xf7, 0x11, 0x12, 0x28, 0xed, 0x86, 0x91, 0xf4, 0x46, 0xe4,
		0x36, 0x1e, 0xbf, 0x8d, 0xdb, 0x87, 0x23, 0x1c, 0x83, 0x1f, 0x9b, 0x68, 0xd0, 0x31, 0x7a, 0x12,
		0x7f, 0x9a, 0xc9, 0xf8, 0x9d, 0x8e, 0xc7, 0xa6, 0x31, 0x19, 0x1a, 0x7f, 0xe6, 0xe7, 0x78, 0xf6,
		0x86, 0x7f, 0x36, 0x1d, 0xbb, 0xe4, 0xca, 0x3f, 0xbc, 0x0e, 0xfd, 0x96, 0x6a, 0xfb, 0xf5, 0x9e,
		0x3a, 0x1f, 0x0e, 0xdd, 0xf4, 0xc2, 0x6f, 0x84, 0xb7, 0xe5, 0x8b, 0xf1, 0xc0, 0xf9, 0xa7, 0xd3,
		0x81, 0x4b, 0xae, 0xfc, 0x7a, 0xf7, 0x7b, 0x4b, 0xb5, 0x1b, 0xfa, 0x2c, 0x92, 0x7e, 0x6b, 0x34,
		0x6a, 0xe3, 0x37, 0xff, 0x7c, 0x34, 0x6a, 0x6f, 0xb6, 0xd3, 0xfd, 0x2d, 0xba, 0xbe, 0x33, 0xd0,
		0x3f, 0x74, 0xf0, 0x53, 0xbb, 0xc2, 0x98, 0x48, 0xb5, 0x87, 0x4f, 0xc4, 0xba, 0xfb, 0x3f, 0x2e,
		0xa2, 0x9f, 0xb7, 0xcd, 0x72, 0x90, 0x9c, 0x42, 0xa6, 0x65, 0x33, 0x50, 0x32, 0x46, 0xa4, 0x4c,
		0x11, 0x33, 0x43, 0x44, 0xcb, 0x0c, 0x61, 0x33, 0x42, 0xd8, 0x4c, 0x10, 0x36, 0x03, 0xdc, 0x6e,
		0xba, 0x7a, 0xa4, 0x22, 0x8c, 0xb0, 0x33, 0x07, 0x52, 0x78, 0x12, 0xec, 0xbc, 0x89, 0x58, 0x42,
		0x6c, 0x91, 0x42, 0x2c, 0x3c, 0xbc, 0x62, 0xc3, 0x2c, 0x2a, 0xdc, 0xc2, 0xc3, 0x2e, 0x3c, 0xfc,
		0xc2, 0xc3, 0x30, 0x8e, 0x7e, 0x55, 0x00, 0x12, 0x62, 0x51, 0xe0, 0x39, 0x31, 0x68, 0x88, 0x7d,
		0xae, 0x41, 0x93, 0x87, 0x9f, 0x45, 0xd4, 0x47, 0x13, 0xc1, 0x5c, 0x0f, 0xab, 0x5e, 0x0a, 0x0b,
		0xd7, 0xc8, 0xb0, 0x9d, 0x0f, 0xf8, 0x46, 0x87, 0xf1, 0xdc, 0xc0, 0x79, 0x6e, 0x60, 0x3d, 0x37,
		0xf0, 0x8e, 0x05, 0xf3, 0x60, 0x70, 0x9f, 0x3c, 0xc5, 0x2f, 0x88, 0x00, 0x5b, 0xc0, 0x3e, 0x48,
		0x77, 0x2e, 0x1b, 0xae, 0x01, 0xda, 0xf6, 0xe4, 0x60, 0xdd, 0xf1, 0xf9, 0xb8, 0x8f, 0x64, 0x85,
		0xdb, 0xe9, 0xd0, 0x5d, 0xd3, 0x19, 0xd7, 0x24, 0x61, 0x89, 0x2f, 0x4a, 0xc9, 0x74, 0xa1, 0x37,
		0x92, 0xf4, 0x92, 0xf4, 0x92, 0xf4, 0x92, 0xf4, 0x92, 0xf4, 0x12, 0x59, 0x17, 0x3f, 0x45, 0x34,
		0xad, 0x2b, 0x31, 0x6c, 0xc4, 0xd1, 0xfa, 0x12, 0xb8, 0x77, 0xdc, 0x33, 0xe9, 0x6b, 0x68, 0x29,
		0xa8, 0xa3, 0x62, 0x2a, 0x60, 0xf0, 0xa4, 0x20, 0x0f, 0xe4, 0x20, 0x5f, 0x24, 0x21, 0x2f, 0x64,
		0x21, 0x77, 0xa4, 0x21, 0x77, 0xe4, 0x21, 0x77, 0x24, 0x02, 0x93, 0x4c, 0x80, 0x92, 0x8a, 0xe4,
		0xe9, 0xc2, 0x2a, 0x6a, 0x73, 0x71, 0x73, 0xa0, 0xb4, 0x29, 0x56, 0x91, 0x63, 0xe6, 0x04, 0xc5,
		0xab, 0xc0, 0x26, 0x62, 0xb6, 0x44, 0x9e, 0x7d, 0x61, 0x63, 0x4e, 0x01, 0xbd, 0x65, 0xf2, 0x9c,
		0xb1, 0xe0, 0x2d, 0x94, 0xe7, 0xec, 0xcd, 0x4b, 0xbb, 0xd8, 0xf9, 0x58, 0x85, 0xde, 0x3e, 0x36,
		0x27, 0xb0, 0xf4, 0xdc, 0xd5, 0xc4, 0x5d, 0xfe, 0x5c, 0xad, 0x5a, 0xa9, 0xec, 0x57, 0xe8, 0x6e,
		0x74, 0xb7, 0x1c, 0x70, 0x53, 0x7c, 0xeb, 0xae, 0xc8, 0xe9, 0x97, 0x70, 0x0b, 0xe0, 0xee, 0xcf,
		0x73, 0xb6, 0xe2, 0x76, 0x83, 0xce, 0x21, 0x29, 0x9d, 0xa6, 0x4a, 0xad, 0x8f, 0x1f, 0x0a, 0xe5,
		0x52, 0xad, 0x58, 0x70, 0x0b, 0xf5, 0xc2, 0x61, 0x10, 0x75, 0x65, 0x54, 0xf8, 0x24, 0x8c, 0xfc,
		0x29, 0xee, 0x0b, 0xd3, 0x3d, 0x96, 0x85, 0x72, 0x61, 0xe7, 0xf0, 0xd3, 0x99, 0x5b, 0xde, 0x75,
		0x72, 0xc0, 0x01, 0x72, 0x22, 0x47, 0x3d, 0xa6, 0x82, 0xf9, 0xe9, 0x1c, 0x3d, 0x67, 0x7b, 0xde,
		0x14, 0xaa, 0xc4, 0xf0, 0xa7, 0x4a, 0xd5, 0x92, 0x2e, 0x40, 0xe6, 0x40, 0xe6, 0xb0, 0xd5, 0xe3,
		0x85, 0x78, 0xf6, 0x0e, 0xee, 0x9a, 0xfa, 0x39, 0xc4, 0x45, 0x5d, 0x5b, 0xff, 0x08, 0x48, 0xac,
		0x30, 0xbe, 0xca, 0x40, 0x56, 0x18, 0xb7, 0x94, 0xd2, 0xb1, 0xc2, 0x98, 0x29, 0x6f, 0x63, 0x85,
		0x71, 0xd3, 0xd4, 0x88, 0x7c, 0x55, 0x18, 0xdf, 0xe5, 0xa0, 0xc0, 0x58, 0x61, 0x81, 0x71, 0xf3,
		0xb5, 0x1c, 0x16, 0x18, 0x53, 0xb4, 0x97, 0x15, 0x8f, 0x2d, 0x47, 0xa5, 0xe7, 0xae, 0x96, 0xc7,
		0x02, 0x63, 0xa9, 0xc2, 0xf2, 0x22, 0x9d, 0x2d, 0x0f, 0xc4, 0x14, 0xdf, 0x3a, 0x96, 0x17, 0x97,
		0x71, 0x0b, 0x96, 0x17, 0xb7, 0x94, 0x92, 0xb2, 0xbc, 0x08, 0x93, 0x08, 0xb2, 0xbc, 0x98, 0xbd,
		0xe1, 0x2c, 0x2f, 0xd2, 0xba, 0x9c, 0x30, 0x07, 0x96, 0x17, 0xff, 0xc0, 0x9f, 0x47, 0x35, 0xbb,
		0xdb, 0x49, 0x3a, 0x95, 0x87, 0xfa, 0xe2, 0xd8, 0x56, 0x16, 0x18, 0x57, 0x31, 0x8f, 0x05, 0xc6,
		0x35, 0xce, 0x46, 0x16, 0x18, 0x53, 0x22, 0x73, 0x2c, 0x30, 0xa6, 0xce, 0xdc, 0x58, 0x60, 0xdc,
		0x34, 0x3d, 0x22, 0x3f, 0x05, 0xc6, 0xb6, 0xd2, 0x22, 0xba, 0xcf, 0x41, 0x85, 0xf1, 0x00, 0xd8,
		0xc4, 0x13, 0xa9, 0xaf, 0x47, 0xcd, 0xc2, 0xa8, 0xe7, 0xbc, 0x72, 0x24, 0x73, 0x59, 0x62, 0x2c,
		0xb2, 0xea, 0x91, 0x72, 0xb0, 0x62, 0x89, 0x31, 0x05, 0x57, 0xe3, 0x1e, 0x46, 0xba, 0xdb, 0x86,
		0xb8, 0x1b, 0xa5, 0xc2, 0x95, 0x5e, 0x2c, 0x32, 0x2e, 0xe3, 0x16, 0x2c, 0x32, 0x6e, 0x29, 0x29,
		0x65, 0x91, 0x11, 0x26, 0x17, 0x64, 0x91, 0x31, 0x7b, 0xc3, 0x59, 0x64, 0xa4, 0x75, 0x39, 0x61,
		0x0e, 0x2c, 0x32, 0xfe, 0x19, 0x8f, 0x91, 0xba, 0x2b, 0xbb, 0xf8, 0x25, 0xc6, 0xc4, 0x52, 0x16,
		0x18, 0x57, 0x31, 0x8f, 0x05, 0xc6, 0x35, 0xce, 0x45, 0x16, 0x18, 0x53, 0x22, 0x72, 0x2c, 0x30,
		0xa6, 0xce, 0xda, 0x58, 0x60, 0xdc, 0x34, 0x2d, 0x22, 0x47, 0x05, 0xc6, 0x20, 0xe8, 0x4b, 0xa1,
		0x73, 0x50, 0x61, 0x2c, 0x16, 0x39, 0x05, 0x97, 0xa3, 0x91, 0x94, 0xc3, 0xd6, 0xfe, 0xa2, 0x1c,
		0x46, 0xf6, 0xb4, 0x0a, 0x8b, 0xa2, 0x1c, 0x66, 0x83, 0x58, 0x51, 0x0e, 0xa3, 0x75, 0x05, 0xca,
		0x61, 0x79, 0xe6, 0x32, 0x4e, 0x10, 0x1a, 0x15, 0x68, 0xd1, 0xc7, 0x97, 0xc3, 0x12, 0x4b, 0x29,
		0x87, 0xad, 0x62, 0x1e, 0xe5, 0xb0, 0x75, 0xce, 0x45, 0xca, 0x61, 0xe9, 0x10, 0x39, 0xca, 0x61,
		0xa9, 0xb3, 0x36, 0xca, 0x61, 0x9b, 0xa6, 0x45, 0x50, 0x0e, 0x5b, 0x3f, 0x8c, 0x53, 0x0e, 0x5b,
		0x6a, 0xd4, 0x28, 0x87, 0xa5, 0xf1, 0xa2, 0x1c, 0x46, 0xf6, 0xb4, 0x0a, 0x8b, 0xa2, 0x1c, 0x66,
		0x83, 0x58, 0x51, 0x0e, 0xa3, 0x75, 0x05, 0xca, 0x61, 0x79, 0xe6, 0x32, 0x4e, 0x28, 0x22, 0xa3,
		0xf2, 0xa0, 0x86, 0x4d, 0x0d, 0xa5, 0x18, 0xb6, 0x8a, 0x79, 0x14, 0xc3, 0xd6, 0x38, 0x15, 0x29,
		0x86, 0xa5, 0x44, 0xe3, 0x28, 0x86, 0xa5, 0xce, 0xd9, 0x28, 0x86, 0x6d, 0x9a, 0x12, 0x41, 0x31,
		0x6c, 0xfd, 0x30, 0x4e, 0x31, 0x6c, 0xa9, 0x51, 0xa3, 0x18, 0x96, 0xc6, 0x8b, 0x62, 0x18, 0xd9,
		0xd3, 0x2a, 0x2c, 0x8a, 0x62, 0x98, 0x0d, 0x62, 0x45, 0x31, 0x8c, 0xd6, 0x15, 0x28, 0x86, 0xe5,
		0x99, 0xcb, 0x38, 0x26, 0x12, 0x3a, 0x56, 0x93, 0x5e, 0x28, 0xe0, 0x7a, 0xd8, 0x13, 0x5b, 0x29,
		0x89, 0xad, 0x62, 0x1e, 0x25, 0xb1, 0x35, 0xce, 0x46, 0x4a, 0x62, 0x29, 0x91, 0x39, 0x4a, 0x62,
		0xa9, 0x33, 0x37, 0x4a, 0x62, 0x9b, 0xa6, 0x47, 0x50, 0x12, 0x5b, 0x3f, 0x8c, 0x53, 0x12, 0x5b,
		0x6a, 0xd4, 0x28, 0x89, 0xa5, 0xf1, 0xa2, 0x24, 0x46, 0xf6, 0xb4, 0x0a, 0x8b, 0xa2, 0x24, 0x66,
		0x83, 0x58, 0x51, 0x12, 0xa3, 0x75, 0x05, 0x4a, 0x62, 0x39, 0xb5, 0x08, 0x8c, 0x59, 0x39, 0x75,
		0xad, 0x03, 0x23, 0x8c, 0x0a, 0x30, 0x5b, 0xc6, 0x3b, 0x71, 0xe7, 0x9b, 0xbc, 0x11, 0xa1, 0x18,
		0x9d, 0x0c, 0xe0, 0x78, 0x41, 0x28, 0x75, 0x67, 0x24, 0x31, 0xb9, 0x5a, 0x9a, 0x9f, 0x41, 0xf4,
		0xc3, 0x55, 0x43, 0x36, 0xa8, 0x3b, 0xd2, 0x9b, 0xbd, 0x11, 0xcf, 0xdd, 0xf1, 0xc2, 0x49, 0x7c,
		0x8c, 0x93, 0x2b, 0xaf, 0x7d, 0x1d, 0x7a, 0x91, 0x6a, 0x7b, 0xa2, 0xa7, 0xdc, 0x58, 0xf4, 0x54,
		0x9c, 0x5c, 0x79, 0x2a, 0xbc, 0x2d, 0xbb, 0x03, 0xad, 0x3a, 0x22, 0x36, 0x9e, 0x96, 0xea, 0xfa,
		0x5b, 0x3b, 0x88, 0xe2, 0xe4, 0xca, 0x13, 0xdd, 0xef, 0xa3, 0x1c, 0x57, 0x69, 0x37, 0x8c, 0xa4,
		0x17, 0x05, 0x03, 0x23, 0xe3, 0xf1, 0x9b, 0x37, 0xd0, 0x3f, 0x74, 0xf0, 0x53, 0xbb, 0xc2, 0x98,
		0x48, 0xb5, 0x47, 0xbf, 0x98, 0xbb, 0xe5, 0xc5, 0x46, 0x18, 0x44, 0xf0, 0x74, 0x62, 0x13, 0x0d,
		0x3a, 0x46, 0x4f, 0x48, 0x57, 0x33, 0x19, 0xf4, 0xd3, 0xf1, 0x80, 0x36, 0x26, 0xe3, 0xe9, 0xcf,
		0xfc, 0x1c, 0xcf, 0xde, 0xf0, 0xa7, 0x80, 0x14, 0x27, 0x57, 0xfe, 0xe1, 0x75, 0xe8, 0xb7, 0x54,
		0xdb, 0xaf, 0xf7, 0xd4, 0xf9, 0x70, 0xbc, 0xa7, 0x17, 0x7e, 0x23, 0xbc, 0x2d, 0x5f, 0x8c, 0x47,
		0xdb, 0x3f, 0x9d, 0x8e, 0x76, 0x72, 0xe5, 0xd7, 0xbb, 0xdf, 0x5b, 0xaa, 0xdd, 0xd0, 0x67, 0x91,
		0xf4, 0x5b, 0xa3, 0xa1, 0x1e, 0xbf, 0xf9, 0x17, 0xe3, 0x71, 0xad, 0x27, 0x23, 0x3d, 0x77, 0xc7,
		0x3f, 0x1f, 0x0d, 0xf4, 0x1b, 0x86, 0x25, 0x5c, 0x4b, 0x40, 0x02, 0xe3, 0x90, 0xdf, 0x26, 0x07,
		0xb3, 0x99, 0xfb, 0x10, 0xc5, 0x3d, 0x9d, 0x13, 0x15, 0x9b, 0xe1, 0x84, 0x86, 0x0a, 0xd3, 0xce,
		0x67, 0xa5, 0x8f, 0xfb, 0x72, 0x48, 0x4d, 0xc1, 0x7a, 0xf3, 0x3b, 0x9f, 0xc5, 0xdd, 0x13, 0xcb,
		0x8a, 0xef, 0xca, 0xe5, 0x6a, 0xad, 0x5c, 0xde, 0xab, 0xed, 0xd7, 0xf6, 0x0e, 0x2a, 0x95, 0x62,
		0xb5, 0x08, 0x74, 0x02, 0x82, 0xd3, 0x1c, 0xb2, 0x78, 0xd9, 0x3d, 0x1c, 0x4e, 0x3d, 0x3d, 0xe8,
		0xf7, 0x11, 0x4d, 0xbb, 0x88, 0x65, 0x04, 0x75, 0x98, 0x01, 0x4a, 0xc4, 0x00, 0xa5, 0x50, 0x1b,
		0x4d, 0x9d, 0x80, 0x48, 0xd3, 0xa6, 0x91, 0x25, 0x0c, 0x9a, 0x64, 0x9f, 0x94, 0xd8, 0xb5, 0xc0,
		0x72, 0x70, 0x43, 0x0b, 0x6a, 0x1b, 0x14, 0xcc, 0x00, 0x42, 0x57, 0xce, 0x43, 0x96, 0xdd, 0x08,
		0x65, 0x2f, 0x2e, 0xd8, 0xf9, 0x66, 0x4b, 0x91, 0x68, 0x9a, 0x88, 0x8d, 0x97, 0x6a, 0x14, 0x86,
		0x9e, 0xef, 0x2a, 0x5b, 0x4d, 0xec, 0x31, 0xb2, 0x2f, 0x9c, 0x6c, 0x0b, 0x3a, 0xbb, 0x02, 0xca,
		0xa6, 0x80, 0xb2, 0x27, 0x5b, 0x6e, 0x0c, 0x42, 0x24, 0xf2, 0x4a, 0x20, 0x2c, 0xb2, 0x85, 0x5c,
		0xb1, 0x04, 0x3b, 0x9c, 0x20, 0x7b, 0x44, 0xce, 0xf6, 0x1b, 0x33, 0x0e, 0x1a, 0xb6, 0x83, 0x45,
		0xfe, 0x82, 0x84, 0x85, 0xf0, 0x90, 0x93, 0xb0, 0x90, 0x6d, 0x40, 0xc8, 0xce, 0x2d, 0x33, 0x74,
		0x49, 0x67, 0x5c, 0x9f, 0xcc, 0xda, 0x13, 0x93, 0xc5, 0x5e, 0x36, 0xca, 0xa3, 0xc9, 0xc2, 0xcc,
		0x8c, 0xbf, 0x36, 0xd9, 0x37, 0x51, 0xca, 0xf8, 0x8b, 0x2d, 0xee, 0x87, 0xc0, 0xd8, 0xe7, 0x60,
		0x7b, 0x05, 0x1e, 0xcc, 0xbe, 0x04, 0x98, 0xe5, 0x71, 0x30, 0xfb, 0x08, 0x48, 0xb6, 0x48, 0xb6,
		0x46, 0x64, 0xcb, 0xd6, 0x42, 0x1d, 0x78, 0xae, 0x65, 0x61, 0x61, 0x4d, 0x86, 0x54, 0xeb, 0xcd,
		0x06, 0xb9, 0xbd, 0x2d, 0x77, 0xcf, 0x91, 0x9b, 0x3b, 0x99, 0x52, 0x6b, 0x68, 0xc7, 0xce, 0xc6,
		0xa5, 0xd3, 0x77, 0xb0, 0x0c, 0x9c, 0xcb, 0x99, 0x4e, 0xa2, 0x60, 0x60, 0xdc, 0x30, 0x88, 0x4d,
		0x66, 0xee, 0x95, 0xf0, 0xe7, 0x39, 0x0b, 0x32, 0x0a, 0x29, 0xd9, 0xe6, 0x4a, 0x99, 0xef, 0x2d,
		0xb7, 0x91, 0x1b, 0xd9, 0xcd, 0x89, 0x6c, 0xe5, 0x42, 0xd6, 0x73, 0x20, 0xeb, 0xb9, 0x8f, 0xf5,
		0x9c, 0x67, 0xb3, 0xc8, 0xce, 0x91, 0xca, 0xb6, 0x54, 0xeb, 0x4c, 0xe4, 0x58, 0x6b, 0x5a, 0x99,
		0x15, 0x39, 0x98, 0x62, 0x19, 0xc5, 0x32, 0x8a, 0x65, 0x14, 0xcb, 0xb6, 0x40, 0x2c, 0xcb, 0x1a,
		0x50, 0x9e, 0x03, 0x8b, 0x3d, 0x7f, 0x7b, 0x86, 0x2f, 0xb6, 0x7c, 0xcd, 0x0e, 0xcc, 0x58, 0xcb,
		0x3b, 0x90, 0x60, 0x07, 0x0b, 0x7e, 0x50, 0x60, 0x08, 0x0e, 0x8e, 0xe0, 0x60, 0x09, 0x0e, 0x9e,
		0xec, 0xc0, 0x94, 0x25, 0xb8, 0xb2, 0x0e, 0x5b, 0x89, 0x01, 0xd3, 0x75, 0xbb, 0xd6, 0x3d, 0xf5,
		0xf1, 0xc4, 0x13, 0x9b, 0x0b, 0x89, 0x67, 0x21, 0xcd, 0xf2, 0x8e, 0x49, 0x98, 0x76, 0x8d, 0x48,
		0x6d, 0x19, 0x31, 0xdb, 0x2f, 0xa2, 0x35, 0x0a, 0x82, 0x6d, 0xa7, 0x08, 0xdb, 0xe5, 0x07, 0xb6,
		0x3d, 0xe2, 0x76, 0xef, 0x74, 0x83, 0x69, 0x6b, 0x98, 0xc4, 0x9d, 0xbe, 0x14, 0xbd, 0x48, 0xf6,
		0x10, 0x82, 0xce, 0x34, 0xf3, 0xaa, 0x01, 0xd8, 0x72, 0x36, 0x29, 0x21, 0xbf, 0x7d, 0x3b, 0x5e,
		0x8f, 0xe1, 0x4d, 0xa1, 0x7c, 0x5b, 0xb7, 0x83, 0x59, 0xcc, 0xbf, 0x42, 0x0c, 0xb8, 0x7e, 0x64,
		0x75, 0x10, 0xc9, 0x17, 0x49, 0x1d, 0x49, 0x1d, 0x49, 0x1d, 0x49, 0x1d, 0x49, 0x1d, 0x49, 0x1d,
		0x49, 0xdd, 0x8a, 0xa4, 0x6e, 0x1c, 0x76, 0xc8, 0xe9, 0x32, 0x7f, 0x14, 0x76, 0x76, 0xfb, 0xbc,
		0xe8, 0x30, 0x08, 0xcd, 0x11, 0x2d, 0x57, 0x9e, 0xc8, 0xe8, 0xc8, 0xe8, 0xc8, 0xe8, 0xc8, 0xe8,
		0xc8, 0xe8, 0xec, 0x57, 0xb2, 0x12, 0x43, 0x46, 0x9d, 0x41, 0x95, 0xee, 0x4a, 0x9c, 0x43, 0xa4,
		0x1e, 0x17, 0x82, 0x3f, 0xda, 0x86, 0xd2, 0x4e, 0x15, 0xea, 0xb8, 0x32, 0xb8, 0xe3, 0xc9, 0x10,
		0x8f, 0x23, 0xc3, 0x3e, 0x7e, 0x0c, 0xf5, 0xc0, 0x0c, 0xf8, 0xe3, 0xc5, 0xe0, 0x4f, 0xbf, 0x80,
		0x3f, 0x3e, 0x8c, 0x8d, 0xb2, 0x21, 0x25, 0x16, 0x60, 0xa9, 0x05, 0x51, 0x72, 0x59, 0x24, 0xbd,
		0xfc, 0xc3, 0x7f, 0x23, 0x4a, 0x11, 0x4b, 0x13, 0x27, 0x57, 0x13, 0xa1, 0x66, 0x4c, 0x33, 0xd8,
		0x2c, 0x16, 0xc5, 0x29, 0x9d, 0x4e, 0x70, 0x73, 0x33, 0xd0, 0xca, 0xdc, 0xa3, 0xb2, 0xd3, 0x59,
		0x03, 0x49, 0x51, 0x49, 0x51, 0x49, 0x51, 0x49, 0x51, 0x49, 0x51, 0x49, 0x51, 0x49, 0x51, 0x49,
		0x51, 0x57, 0xa5, 0xa8, 0x53, 0x5e, 0xa1, 0x64, 0x9c, 0x5c, 0xdf, 0x93, 0xa5, 0x62, 0xb2, 0x54,
		0x79, 0x67, 0x5c, 0x78, 0xa6, 0xba, 0xc8, 0x48, 0xb2, 0x55, 0xb2, 0x55, 0xb2, 0x55, 0xb2, 0x55,
		0xb2, 0x55, 0xb2, 0x55, 0xb2, 0x55, 0xb2, 0xd5, 0x55, 0xd9, 0xea, 0x53, 0x6e, 0x31, 0x64, 0xac,
		0xcf, 0xb8, 0x06, 0x59, 0x2b, 0x26, 0x6b, 0x55, 0xfa, 0x56, 0xf4, 0x55, 0xd7, 0x8d, 0xa4, 0x88,
		0x81, 0xce, 0xf9, 0x4b, 0x3c, 0x74, 0xc6, 0x3e, 0x72, 0x55, 0x72, 0x55, 0x72, 0x55, 0x72, 0x55,
		0x72, 0x55, 0x72, 0xd5, 0x2d, 0xe3, 0xaa, 0xaa, 0x2b, 0xb5, 0x51, 0xe6, 0x1e, 0x94, 0xaf, 0x22,
		0x9d, 0x3a, 0xdd, 0x98, 0x0c, 0xd5, 0xa1, 0x88, 0x01, 0x43, 0xea, 0xf4, 0x81, 0x36, 0x4e, 0xff,
		0xae, 0x9f, 0x34, 0x8e, 0xfc, 0x56, 0xf3, 0xe2, 0xcb, 0xb1, 0xdf, 0x3a, 0xae, 0x9f, 0x37, 0x4f,
		0xd1, 0xa2, 0xeb, 0xdf, 0xa2, 0x3f, 0x18, 0x75, 0x7f, 0xbc, 0x84, 0xb2, 0x6b, 0xf8, 0xfa, 0x05,
		0x67, 0xd1, 0xc2, 0xa7, 0x5b, 0x3f, 0xf7, 0x4f, 0x9a, 0xcd, 0x33, 0x07, 0xce, 0xda, 0x87, 0xbf,
		0xf8, 0x48, 0x57, 0x7b, 0xa4, 0x1f, 0x4e, 0x2e, 0xce, 0xbf, 0x1c, 0xb7, 0xf8, 0x5c, 0x37, 0xed,
		0xb9, 0x36, 0x4f, 0x3f, 0x1e, 0x1f, 0xf1, 0x89, 0x6e, 0xce, 0x13, 0x6d, 0xb6, 0x1a, 0x9f, 0x1a,
		0xa7, 0xf5, 0x2f, 0xcd, 0x16, 0xe0, 0x53, 0x85, 0xb2, 0xe8, 0x8a, 0xf9, 0x08, 0x98, 0x15, 0x08,
		0xea, 0x60, 0x5f, 0xc4, 0xc6, 0xbd, 0x09, 0xba, 0xaa, 0xa7, 0x64, 0x17, 0x4f, 0x1c, 0x7c, 0x6e,
		0x1e, 0xb5, 0xc1, 0x45, 0xe6, 0x50, 0x1b, 0x5c, 0x62, 0x42, 0x51, 0x1b, 0x5c, 0x6a, 0xa6, 0x53,
		0x1b, 0x7c, 0xa5, 0x81, 0xd4, 0x06, 0x73, 0xc4, 0x7f, 0x81, 0xb5, 0x41, 0xa3, 0x6e, 0xa4, 0x51,
		0x9d, 0x1f, 0x71, 0xb5, 0x0c, 0xa8, 0x0d, 0xbe, 0x03, 0x32, 0xe9, 0x42, 0x2b, 0x13, 0x0f, 0x87,
		0x4c, 0x0b, 0x1d, 0xc4, 0xb2, 0x13, 0xe8, 0x6e, 0x8c, 0x34, 0x64, 0x2d, 0xa1, 0xaf, 0x25, 0x9c,
		0xde, 0x86, 0x97, 0xee, 0x39, 0x9f, 0x95, 0x86, 0x43, 0xc4, 0xc4, 0xb8, 0x91, 0x6c, 0x8a, 0xc3,
		0xb9, 0xe6, 0xec, 0xfb, 0x18, 0x89, 0x8e, 0x51, 0x81, 0x3e, 0x52, 0xd7, 0x63, 0x77, 0x40, 0x35,
		0xf4, 0x54, 0x5e, 0x0b, 0xa3, 0x6e, 0x87, 0x63, 0xd9, 0x13, 0xfd, 0x58, 0x52, 0x9b, 0xf9, 0x13,
		0xd7, 0x10, 0x77, 0xf8, 0xae, 0x51, 0x7c, 0x57, 0x2e, 0x57, 0x6b, 0xe5, 0xf2, 0x5e, 0x6d, 0xbf,
		0xb6, 0x77, 0x50, 0xa9, 0x14, 0xab, 0x48, 0x25, 0x24, 0x7a, 0xcb, 0x06, 0xf3, 0x49, 0x3c, 0x6b,
		0xae, 0xa8, 0x79, 0xa1, 0x44, 0x53, 0x98, 0x83, 0x1d, 0xe6, 0x48, 0x3e, 0xc6, 0x01, 0x0f, 0xb3,
		0xe4, 0x9e, 0x3a, 0xd7, 0x0b, 0x06, 0x51, 0xe7, 0x5a, 0xd6, 0x3a, 0xea, 0x5c, 0x2b, 0x1a, 0x48,
		0x9d, 0x6b, 0x23, 0x98, 0x00, 0x75, 0xae, 0x7f, 0x8b, 0x5b, 0x03, 0xa5, 0xcd, 0x7e, 0x09, 0x50,
		0xe2, 0xaa, 0x51, 0x42, 0xfa, 0x97, 0x17, 0x25, 0xa4, 0xd5, 0xf2, 0x64, 0x4a, 0x48, 0x1b, 0x9f,
		0x14, 0x53, 0x42, 0x5a, 0xcd, 0x35, 0xca, 0xa5, 0x83, 0xf2, 0x41, 0xb5, 0x56, 0x3a, 0xa0, 0x70,
		0xb4, 0xf1, 0x3e, 0x42, 0xe1, 0x68, 0xe1, 0xeb, 0x8a, 0xc4, 0xf5, 0xc9, 0x34, 0x96, 0x77, 0x26,
		0x12, 0xee, 0x40, 0xc7, 0x46, 0xb4, 0xfb, 0x60, 0x14, 0x36, 0x92, 0x3d, 0x19, 0x49, 0xdd, 0x21,
		0x33, 0x5b, 0x82, 0xef, 0x77, 0x23, 0xd1, 0x33, 0xae, 0x92, 0xa6, 0xe7, 0xaa, 0x6e, 0xe4, 0x8a,
		0x6e, 0xd7, 0x0d, 0x85, 0xf9, 0x16, 0x17, 0xdc, 0x42, 0xbd, 0x7b, 0x2b, 0x23, 0xa3, 0x62, 0x39,
		0xcc, 0x2b, 0x0b, 0x41, 0xaf, 0xf0, 0x79, 0xd0, 0x37, 0x2a, 0xec, 0xcb, 0xc2, 0xd9, 0xf0, 0x2f,
		0xbe, 0x6a, 0xa5, 0x0b, 0x87, 0x9f, 0xce, 0x1c, 0x40, 0x70, 0x05, 0xd5, 0x39, 0x16, 0xe9, 0x1d,
		0x8f, 0xb3, 0x16, 0x14, 0xb9, 0xd0, 0xa5, 0x8f, 0x85, 0x12, 0xc8, 0x1a, 0xa6, 0x35, 0x11, 0x9a,
		0x08, 0x9d, 0xab, 0xf1, 0x80, 0x28, 0xed, 0x60, 0x49, 0xf2, 0x58, 0x87, 0x3c, 0x3e, 0x86, 0x7f,
		0x16, 0x76, 0xfe, 0xd1, 0x20, 0x16, 0x76, 0x36, 0x84, 0xf0, 0xb0, 0xb0, 0xb3, 0x56, 0x56, 0xc3,
		0xc2, 0x0e, 0x7a, 0x7e, 0x0c, 0xdc, 0xdc, 0x20, 0xbc, 0x2d, 0xbb, 0x70, 0x3e, 0x98, 0x34, 0x37,
		0x78, 0x87, 0xd5, 0x8c, 0xcb, 0xc8, 0x48, 0xc3, 0xc9, 0x08, 0xce, 0xce, 0xe5, 0x9e, 0x7b, 0x70,
		0xf5, 0xfb, 0xb2, 0xe8, 0x1e, 0x5c, 0x8d, 0x2f, 0x8b, 0xa3, 0xb7, 0x5f, 0xa5, 0x87, 0xdf, 0xa5,
		0xcb, 0x3d, 0xb7, 0x3c, 0xb9, 0x5b, 0xaa, 0x5c, 0xee, 0xb9, 0x95, 0xab, 0xdd, 0x9d, 0xaf, 0x5f,
		0xdf, 0x2e, 0xfb, 0x99, 0xdd, 0x5f, 0xfb, 0x0f, 0x5e, 0xf2, 0xa1, 0xd2, 0xe4, 0xb7, 0xfb, 0x97,
		0x7b, 0x6e, 0xe9, 0x6a, 0x17, 0x27, 0xec, 0x5c, 0x21, 0xcd, 0x97, 0xe6, 0x79, 0xe3, 0xbf, 0xb0,
		0x93, 0xe6, 0x7f, 0x3b, 0xd6, 0xa7, 0xcd, 0xee, 0x7f, 0x1c, 0x66, 0x8b, 0xcc, 0x16, 0xe7, 0xa6,
		0xe6, 0xa4, 0xf1, 0x5c, 0x30, 0x30, 0x12, 0x2f, 0x65, 0x7c, 0x6a, 0x1c, 0xf3, 0x46, 0xe6, 0x8d,
		0xcc, 0x1b, 0x99, 0x37, 0x32, 0x6f, 0x64, 0xde, 0xb8, 0x65, 0x79, 0x63, 0x3b, 0x08, 0xfa, 0x52,
		0x68, 0xc4, 0x9c, 0xb1, 0x48, 0x2a, 0x07, 0x60, 0x81, 0xed, 0xd3, 0x9d, 0xeb, 0x5a, 0x07, 0x46,
		0x18, 0x05, 0xd2, 0x5b, 0xd9, 0x89, 0x3b, 0xdf, 0xe4, 0x8d, 0x08, 0x27, 0x0d, 0xbd, 0xbd, 0x20,
		0x94, 0xba, 0x33, 0x22, 0x4a, 0xae, 0x96, 0xe6, 0x67, 0x10, 0xfd, 0x70, 0x95, 0x8e, 0x8d, 0xd0,
		0x1d, 0xe9, 0xcd, 0xde, 0x88, 0xe7, 0xee, 0x78, 0x61, 0x14, 0x98, 0xa0, 0x13, 0xf4, 0xe3, 0xe4,
		0xca, 0x6b, 0x5f, 0x87, 0x5e, 0xa4, 0xda, 0x9e, 0xe8, 0x29, 0x37, 0x16, 0x3d, 0x15, 0x27, 0x57,
		0xde, 0x48, 0xe4, 0x19, 0x68, 0xd5, 0x11, 0xb1, 0xf1, 0xb4, 0x54, 0xd7, 0xdf, 0xda, 0x41, 0x14,
		0x27, 0x57, 0x9e, 0xe8, 0x7e, 0x1f, 0x21, 0x41, 0x30, 0x30, 0x6e, 0x18, 0xc4, 0xc6, 0x1b, 0xd1,
		0xdb, 0x78, 0xfc, 0x36, 0x6e, 0x20, 0x8e, 0x70, 0x10, 0x7e, 0x6c, 0xa2, 0x41, 0xc7, 0xe8, 0x49,
		0x04, 0x6a, 0x26, 0x23, 0x78, 0x3a, 0x1e, 0x9d, 0xc6, 0x64, 0x70, 0xfc, 0x99, 0x9f, 0xe3, 0xd9,
		0x1b, 0xfe, 0xd9, 0x74, 0xf4, 0x92, 0x2b, 0xff, 0xf0, 0x3a, 0xf4, 0x5b, 0xaa, 0xed, 0xd7, 0x7b,
		0xea, 0x7c, 0x38, 0x78, 0xd3, 0x0b, 0xbf, 0x11, 0xde, 0x96, 0x2f, 0xc6, 0x43, 0xe7, 0x9f, 0x4e,
		0x87, 0x2e, 0xb9, 0xf2, 0xeb, 0xdd, 0xef, 0x2d, 0xd5, 0x6e, 0x0e, 0xcc, 0x59, 0x10, 0x1b, 0xbf,
		0x35, 0x1a, 0xb7, 0xf1, 0x9b, 0x7f, 0x3e, 0x1a, 0xb7, 0x37, 0xdb, 0x19, 0x02, 0x2c, 0xba, 0xbf,
		0x33, 0xd0, 0x3f, 0x74, 0xf0, 0x53, 0xbb, 0xc2, 0x98, 0x48, 0xb5, 0x87, 0x4f, 0xc4, 0x7a, 0x08,
		0x78, 0x5c, 0x48, 0x3f, 0x6f, 0x9b, 0xe5, 0x40, 0x39, 0x85, 0x4d, 0xcb, 0x66, 0xa0, 0x64, 0x8d,
		0x48, 0xd9, 0x22, 0x66, 0x96, 0x88, 0x96, 0x1d, 0xc2, 0x66, 0x85, 0xb0, 0xd9, 0x20, 0x6c, 0x16,
		0xb8, 0xdd, 0x94, 0xf5, 0x48, 0x45, 0x18, 0x61, 0x67, 0x0e, 0xa4, 0xf0, 0x64, 0xd8, 0x79, 0x13,
		0xb1, 0xc4, 0xd8, 0x22, 0xc5, 0x58, 0x78, 0x78, 0xc5, 0x86, 0x59, 0x54, 0xb8, 0x85, 0x87, 0x5d,
		0x78, 0xf8, 0x85, 0x87, 0x61, 0x1c, 0x0d, 0xab, 0x00, 0x24, 0xc6, 0xa2, 0xc0, 0x73, 0x62, 0xd0,
		0x10, 0xfb, 0x5c, 0x83, 0x26, 0x11, 0x3f, 0x8b, 0xa8, 0x8f, 0x26, 0x82, 0xb9, 0x1e, 0x56, 0xcd,
		0x14, 0x16, 0xae, 0x91, 0x61, 0x3b, 0x1f, 0xf0, 0x8d, 0x0e, 0xe3, 0xb9, 0x81, 0xf3, 0xdc, 0xc0,
		0x7a, 0x6e, 0xe0, 0x1d, 0x0b, 0xe6, 0xc1, 0xe0, 0x3e, 0x79, 0x8a, 0x5f, 0x10, 0x01, 0xb6, 0x80,
		0x7d, 0x98, 0xee, 0x5c, 0x36, 0x5c, 0x03, 0xb4, 0xed, 0xc9, 0xe1, 0xba, 0xe3, 0x33, 0x72, 0x1f,
		0xc9, 0x0a, 0xb7, 0xd4, 0xa1, 0xbb, 0xa6, 0x33, 0xae, 0x4a, 0xc2, 0x12, 0x5f, 0x94, 0xa2, 0xe9,
		0x42, 0x6f, 0x24, 0xe9, 0x25, 0xe9, 0x25, 0xe9, 0x25, 0xe9, 0x25, 0xe9, 0x25, 0xb2, 0x2e, 0x7e,
		0x8a, 0x68, 0x5a, 0x57, 0x62, 0xd8, 0x88, 0xa3, 0xf5, 0x25, 0x70, 0xff, 0xb8, 0x67, 0xd2, 0xd7,
		0xd0, 0x52, 0x50, 0x47, 0xc5, 0x54, 0xc0, 0xe0, 0x49, 0x41, 0x1e, 0xc8, 0x41, 0xbe, 0x48, 0x42,
		0x5e, 0xc8, 0x42, 0xee, 0x48, 0x43, 0xee, 0xc8, 0x43, 0xee, 0x48, 0x04, 0x26, 0x99, 0x00, 0x25,
		0x15, 0xc9, 0xd3, 0x85, 0x55, 0xd4, 0xe6, 0xe2, 0xe6, 0x40, 0x69, 0x53, 0xac, 0x22, 0xc7, 0xcc,
		0x09, 0x8a, 0x57, 0x81, 0x4d, 0xc4, 0x6c, 0x8b, 0x3c, 0xfb, 0xc2, 0xc6, 0x9c, 0x02, 0x7a, 0xdb,
		0xe4, 0x39, 0x63, 0xc1, 0xdb, 0x28, 0xcf, 0xd9, 0x9b, 0x97, 0x96, 0xb1, 0xf3, 0xb1, 0x0a, 0xbd,
		0x85, 0x6c, 0x4e, 0x60, 0xe9, 0xb9, 0xab, 0x89, 0xbb, 0xfc, 0xb9, 0x5a, 0xb5, 0x52, 0xd9, 0xaf,
		0xd0, 0xdd, 0xe8, 0x6e, 0x39, 0xe0, 0xa6, 0xf8, 0xd6, 0x5d, 0x91, 0xd3, 0x2f, 0xe1, 0x16, 0xc0,
		0x1d, 0xa0, 0xe7, 0x6c, 0xc5, 0xed, 0x08, 0x9d, 0x43, 0x52, 0x3a, 0x4d, 0x95, 0x5a, 0x1f, 0x3f,
		0x14, 0xca, 0xa5, 0x5a, 0xb1, 0xe0, 0x16, 0xea, 0x85, 0xc3, 0x20, 0xea, 0xca, 0xa8, 0xf0, 0x49,
		0x18, 0xf9, 0x53, 0xdc, 0x17, 0xa6, 0xbb, 0x2c, 0x0b, 0xe5, 0xc2, 0xce, 0xe1, 0xa7, 0x33, 0xb7,
		0xbc, 0xeb, 0xe4, 0x80, 0x03, 0xe4, 0x44, 0x8e, 0x7a, 0x4c, 0x05, 0xf3, 0xd3, 0x3d, 0x7a, 0xce,
		0xf6, 0xbc, 0x29, 0x54, 0x89, 0xe1, 0x4f, 0x95, 0xaa, 0x25, 0x5d, 0x80, 0xcc, 0x81, 0xcc, 0x61,
		0xab, 0xc7, 0x0b, 0xf1, 0xfc, 0x1d, 0xdc, 0x35, 0xf5, 0x73, 0x88, 0x8b, 0xba, 0xb6, 0xfe, 0x11,
		0x90, 0x58, 0x61, 0x7c, 0x95, 0x81, 0xac, 0x30, 0x6e, 0x29, 0xa5, 0x63, 0x85, 0x31, 0x53, 0xde,
		0xc6, 0x0a, 0xe3, 0xa6, 0xa9, 0x11, 0xf9, 0xaa, 0x30, 0xbe, 0xcb, 0x41, 0x81, 0xb1, 0xc2, 0x02,
		0xe3, 0xe6, 0x6b, 0x39, 0x2c, 0x30, 0xa6, 0x68, 0x2f, 0x2b, 0x1e, 0x5b, 0x8e, 0x4a, 0xcf, 0x5d,
		0x2d, 0x8f, 0x05, 0xc6, 0x52, 0x85, 0xe5, 0x45, 0x3a, 0x5b, 0x1e, 0x88, 0x29, 0xbe, 0x75, 0x2c,
		0x2f, 0x2e, 0xe3, 0x16, 0x2c, 0x2f, 0x6e, 0x29, 0x25, 0x65, 0x79, 0x11, 0x26, 0x11, 0x64, 0x79,
		0x31, 0x7b, 0xc3, 0x59, 0x5e, 0xa4, 0x75, 0x39, 0x61, 0x0e, 0x2c, 0x2f, 0xfe, 0x81, 0x3f, 0x8f,
		0x6a, 0x76, 0xb7, 0x93, 0x74, 0x2a, 0x0f, 0xf5, 0xc5, 0xb1, 0xad, 0x2c, 0x30, 0xae, 0x62, 0x1e,
		0x0b, 0x8c, 0x6b, 0x9c, 0x8d, 0x2c, 0x30, 0xa6, 0x44, 0xe6, 0x58, 0x60, 0x4c, 0x9d, 0xb9, 0xb1,
		0xc0, 0xb8, 0x69, 0x7a, 0x44, 0x7e, 0x0a, 0x8c, 0x6d, 0xa5, 0x45, 0x74, 0x9f, 0x83, 0x0a, 0xe3,
		0x01, 0xb0, 0x89, 0x27, 0x52, 0x5f, 0x8f, 0x9a, 0x85, 0x51, 0xcf, 0x79, 0xe5, 0x48, 0xe6, 0xb2,
		0xc4, 0x58, 0x64, 0xd5, 0x23, 0xe5, 0x60, 0xc5, 0x12, 0x63, 0x0a, 0xae, 0xc6, 0x3d, 0x8c, 0x74,
		0xb7, 0x0d, 0x71, 0x37, 0x4a, 0x85, 0x2b, 0xbd, 0x58, 0x64, 0x5c, 0xc6, 0x2d, 0x58, 0x64, 0xdc,
		0x52, 0x52, 0xca, 0x22, 0x23, 0x4c, 0x2e, 0xc8, 0x22, 0x63, 0xf6, 0x86, 0xb3, 0xc8, 0x48, 0xeb,
		0x72, 0xc2, 0x1c, 0x58, 0x64, 0xfc, 0x33, 0x1e, 0x23, 0x75, 0x57, 0x76, 0xf1, 0x4b, 0x8c, 0x89,
		0xa5, 0x2c, 0x30, 0xae, 0x62, 0x1e, 0x0b, 0x8c, 0x6b, 0x9c, 0x8b, 0x2c, 0x30, 0xa6, 0x44, 0xe4,
		0x58, 0x60, 0x4c, 0x9d, 0xb5, 0xb1, 0xc0, 0xb8, 0x69, 0x5a, 0x44, 0x8e, 0x0a, 0x8c, 0x41, 0xd0,
		0x97, 0x42, 0xe7, 0xa0, 0xc2, 0x58, 0x2c, 0x72, 0x0a, 0x2e, 0x47, 0x23, 0x29, 0x87, 0xad, 0xfd,
		0x45, 0x39, 0x8c, 0xec, 0x69, 0x15, 0x16, 0x45, 0x39, 0xcc, 0x06, 0xb1, 0xa2, 0x1c, 0x46, 0xeb,
		0x0a, 0x94, 0xc3, 0xf2, 0xcc, 0x65, 0x9c, 0x20, 0x34, 0x2a, 0xd0, 0xa2, 0x8f, 0x2f, 0x87, 0x25,
		0x96, 0x52, 0x0e, 0x5b, 0xc5, 0x3c, 0xca, 0x61, 0xeb, 0x9c, 0x8b, 0x94, 0xc3, 0xd2, 0x21, 0x72,
		0x94, 0xc3, 0x52, 0x67, 0x6d, 0x94, 0xc3, 0x36, 0x4d, 0x8b, 0xa0, 0x1c, 0xb6, 0x7e, 0x18, 0xa7,
		0x1c, 0xb6, 0xd4, 0xa8, 0x51, 0x0e, 0x4b, 0xe3, 0x45, 0x39, 0x8c, 0xec, 0x69, 0x15, 0x16, 0x45,
		0x39, 0xcc, 0x06, 0xb1, 0xa2, 0x1c, 0x46, 0xeb, 0x0a, 0x94, 0xc3, 0xf2, 0xcc, 0x65, 0x9c, 0x50,
		0x44, 0x46, 0xe5, 0x41, 0x0d, 0x9b, 0x1a, 0x4a, 0x31, 0x6c, 0x15, 0xf3, 0x28, 0x86, 0xad, 0x71,
		0x2a, 0x52, 0x0c, 0x4b, 0x89, 0xc6, 0x51, 0x0c, 0x4b, 0x9d, 0xb3, 0x51, 0x0c, 0xdb, 0x34, 0x25,
		0x82, 0x62, 0xd8, 0xfa, 0x61, 0x9c, 0x62, 0xd8, 0x52, 0xa3, 0x46, 0x31, 0x2c, 0x8d, 0x17, 0xc5,
		0x30, 0xb2, 0xa7, 0x55, 0x58, 0x14, 0xc5, 0x30, 0x1b, 0xc4, 0x8a, 0x62, 0x18, 0xad, 0x2b, 0x50,
		0x0c, 0xcb, 0x33, 0x97, 0x71, 0x4c, 0x24, 0x74, 0xac, 0x26, 0xbd, 0x50, 0xc0, 0xf5, 0xb0, 0x27,
		0xb6, 0x52, 0x12, 0x5b, 0xc5, 0x3c, 0x4a, 0x62, 0x6b, 0x9c, 0x8d, 0x94, 0xc4, 0x52, 0x22, 0x73,
		0x94, 0xc4, 0x52, 0x67, 0x6e, 0x94, 0xc4, 0x36, 0x4d, 0x8f, 0xa0, 0x24, 0xb6, 0x7e, 0x18, 0xa7,
		0x24, 0xb6, 0xd4, 0xa8, 0x51, 0x12, 0x4b, 0xe3, 0x45, 0x49, 0x8c, 0xec, 0x69, 0x15, 0x16, 0x45,
		0x49, 0xcc, 0x06, 0xb1, 0xa2, 0x24, 0x46, 0xeb, 0x0a, 0x94, 0xc4, 0x72, 0x6a, 0x11, 0x18, 0xb3,
		0x72, 0xea, 0x5a, 0x07, 0x46, 0x18, 0x15, 0x60, 0xb6, 0x8c, 0x77, 0xe2, 0xce, 0x37, 0x79, 0x23,
		0x42, 0x31, 0x3a, 0x19, 0xc0, 0xf1, 0x82, 0x50, 0xea, 0xce, 0x48, 0x62, 0x72, 0xb5, 0x34, 0x3f,
		0x83, 0xe8, 0x87, 0xab, 0x86, 0x6c, 0x50, 0x77, 0xa4, 0x37, 0x7b, 0x23, 0x9e, 0xbb, 0xe3, 0x85,
		0x93, 0xf8, 0x18, 0x27, 0x57, 0x5e, 0xfb, 0x3a, 0xf4, 0x22, 0xd5, 0xf6, 0x44, 0x4f, 0xb9, 0xb1,
		0xe8, 0xa9, 0x38, 0xb9, 0xf2, 0x54, 0x78, 0x5b, 0x76, 0x07, 0x5a, 0x75, 0x44, 0x6c, 0x3c, 0x2d,
		0xd5, 0xf5, 0xb7, 0x76, 0x10, 0xc5, 0xc9, 0x95, 0x27, 0xba, 0xdf, 0x47, 0x39, 0x6e, 0x30, 0x30,
		0x6e, 0x18, 0xc4, 0xc6, 0x8b, 0x82, 0x81, 0x91, 0xf1, 0xf8, 0xcd, 0x1b, 0xe8, 0x1f, 0x3a, 0xf8,
		0xa9, 0x5d, 0x61, 0x4c, 0xa4, 0xda, 0xa3, 0x5f, 0xcc, 0xdd, 0xf2, 0x62, 0x23, 0x0c, 0x22, 0x7c,
		0x3a, 0xb1, 0x89, 0x06, 0x1d, 0xa3, 0x27, 0xb4, 0xab, 0x99, 0x0c, 0xfb, 0xe9, 0x78, 0x48, 0x1b,
		0x93, 0x11, 0xf5, 0x67, 0x7e, 0x8e, 0x67, 0x6f, 0xf8, 0x53, 0x48, 0x8a, 0x93, 0x2b, 0xff, 0xf0,
		0x3a, 0xf4, 0x5b, 0xaa, 0xed, 0xd7, 0x7b, 0xea, 0x7c, 0x38, 0xe2, 0xd3, 0x0b, 0xbf, 0x11, 0xde,
		0x96, 0x2f, 0xc6, 0xe3, 0xed, 0x9f, 0x4e, 0xc7, 0x3b, 0xb9, 0xf2, 0xeb, 0xdd, 0xef, 0x2d, 0xd5,
		0x6e, 0x0e, 0xcc, 0x59, 0x10, 0x1b, 0xbf, 0x35, 0x1a, 0xec, 0xf1, 0x9b, 0x7f, 0x31, 0x1e, 0xd9,
		0x7a, 0x32, 0xd6, 0x73, 0x77, 0xfc, 0xf3, 0xd1, 0x50, 0xbf, 0x61, 0x68, 0xc2, 0xb5, 0x04, 0x24,
		0x38, 0x0e, 0x39, 0x6e, 0x72, 0x38, 0x9b, 0xb9, 0x0f, 0x51, 0x1c, 0xd4, 0x39, 0x51, 0xb1, 0x19,
		0x4e, 0x68, 0xa8, 0x50, 0xed, 0x7c, 0x56, 0xfa, 0xb8, 0x2f, 0x87, 0xf4, 0x14, 0xac, 0x3f, 0xbf,
		0xf3, 0x59, 0xdc, 0x3d, 0xb1, 0xac, 0xf8, 0xae, 0x5c, 0xae, 0xd6, 0xca, 0xe5, 0xbd, 0xda, 0x7e,
		0x6d, 0xef, 0xa0, 0x52, 0x29, 0x56, 0x8b, 0x40, 0xa7, 0x20, 0x38, 0xcd, 0x21, 0x93, 0x97, 0xdd,
		0xc3, 0xe1, 0xd4, 0xd3, 0x83, 0x7e, 0x1f, 0xd1, 0xb4, 0x8b, 0x58, 0x46, 0x50, 0x07, 0x1a, 0xa0,
		0x44, 0x0c, 0x50, 0x1a, 0xb5, 0xe1, 0xf4, 0x09, 0x88, 0x38, 0x6d, 0x1e, 0x61, 0xc2, 0xa0, 0x4a,
		0xf6, 0x89, 0x89, 0x5d, 0x0b, 0x2c, 0x07, 0x38, 0xb4, 0xc0, 0xb6, 0x51, 0x01, 0x0d, 0x20, 0x7c,
		0xe5, 0x3e, 0x6c, 0xd9, 0x8d, 0x52, 0xf6, 0x62, 0x83, 0x9d, 0x6f, 0xb6, 0x14, 0x8d, 0xa6, 0x09,
		0xd9, 0x78, 0xd9, 0x46, 0x61, 0xe8, 0xfd, 0xae, 0xb2, 0xd5, 0xd0, 0x1e, 0x23, 0x0b, 0xc3, 0xc9,
		0xba, 0xa0, 0xb3, 0x2c, 0xa0, 0xac, 0x0a, 0x28, 0x8b, 0xb2, 0xe5, 0xc6, 0x20, 0x64, 0x22, 0xbf,
		0x24, 0xc2, 0x22, 0x63, 0xc8, 0x19, 0x53, 0xb0, 0xc3, 0x0b, 0xb2, 0x47, 0xe5, 0x6c, 0xbf, 0x31,
		0xe3, 0xc0, 0x61, 0x3b, 0x60, 0xe4, 0x31, 0x50, 0x58, 0x08, 0x11, 0xb9, 0x09, 0x0d, 0xd9, 0x06,
		0x85, 0xec, 0x5c, 0x33, 0x43, 0xb7, 0x74, 0xc6, 0x15, 0xcb, 0xac, 0xbd, 0x31, 0x59, 0x00, 0x66,
		0xa3, 0x60, 0x9a, 0x2c, 0xd6, 0xcc, 0xf8, 0x6b, 0x93, 0xbd, 0x14, 0xa5, 0x8c, 0xbf, 0xd8, 0xe2,
		0x1e, 0x09, 0x8c, 0xbd, 0x0f, 0xb6, 0x57, 0xe5, 0xc1, 0xec, 0x55, 0x80, 0x59, 0x32, 0x07, 0xb3,
		0xb7, 0x80, 0x84, 0x8b, 0x84, 0x6b, 0x42, 0xb8, 0x6c, 0x2d, 0xde, 0xc9, 0x01, 0xdf, 0xb2, 0xb0,
		0xd8, 0x26, 0x43, 0xba, 0xf5, 0x66, 0x83, 0x5c, 0xdf, 0x96, 0xcb, 0xe7, 0xca, 0xd5, 0x9d, 0x4c,
		0x09, 0x36, 0xb8, 0x73, 0x67, 0xe3, 0xd6, 0xe9, 0x3b, 0x59, 0x06, 0x0e, 0xe6, 0x3c, 0x9b, 0x48,
		0x51, 0x76, 0x84, 0x32, 0xa1, 0xd1, 0xb3, 0x06, 0x64, 0x14, 0x54, 0xb2, 0xcd, 0x98, 0x32, 0xdf,
		0x75, 0x6e, 0x23, 0x43, 0xb2, 0x9b, 0x19, 0xd9, 0xca, 0x88, 0xac, 0x67, 0x42, 0xd6, 0x33, 0x20,
		0xeb, 0x99, 0xcf, 0x66, 0xd1, 0x9d, 0x23, 0x95, 0x6d, 0xe1, 0xd6, 0x99, 0xc8, 0xb2, 0xd6, 0x14,
		0x33, 0x2b, 0xb2, 0x30, 0x25, 0x33, 0x4a, 0x66, 0x94, 0xcc, 0x28, 0x99, 0x6d, 0x81, 0x64, 0x96,
		0x35, 0xa0, 0x3c, 0x07, 0x16, 0x7b, 0xfe, 0xf6, 0x0c, 0x5f, 0x6c, 0xf9, 0x9a, 0x1d, 0x98, 0xb1,
		0x96, 0x77, 0x20, 0xc1, 0x0e, 0x16, 0xfc, 0xa0, 0xc0, 0x10, 0x1c, 0x1c, 0xc1, 0xc1, 0x12, 0x1c,
		0x3c, 0xd9, 0x81, 0x29, 0x4b, 0x70, 0x65, 0x1d, 0xb6, 0x12, 0x03, 0xa6, 0xab, 0x78, 0xad, 0x7b,
		0xea, 0xe3, 0x59, 0x28, 0x36, 0x97, 0x15, 0xcf, 0x42, 0x9a, 0xe5, 0x7d, 0x94, 0x30, 0x8d, 0x1c,
		0x91, 0x1a, 0x36, 0x62, 0x36, 0x66, 0x44, 0x6b, 0x21, 0x04, 0xdb, 0x68, 0x11, 0xb6, 0xff, 0x0f,
		0x6c, 0xe3, 0xc4, 0xed, 0xde, 0xfb, 0x06, 0xd3, 0xf0, 0x30, 0x89, 0x3b, 0x7d, 0x29, 0x7a, 0x91,
		0xec, 0x21, 0x04, 0x9d, 0x69, 0xe6, 0x55, 0x03, 0xb0, 0xe5, 0x6c, 0x52, 0x44, 0x7e, 0xfb, 0x76,
		0xbc, 0x26, 0xc3, 0x9b, 0x42, 0xf9, 0xb6, 0x6e, 0x0e, 0xb3, 0x98, 0x7f, 0x85, 0x18, 0x70, 0xfd,
		0xc8, 0xea, 0x20, 0x92, 0x2f, 0x92, 0x3a, 0x92, 0x3a, 0x92, 0x3a, 0x92, 0x3a, 0x92, 0x3a, 0x92,
		0x3a, 0x92, 0xba, 0x15, 0x49, 0xdd, 0x38, 0xec, 0x90, 0xd3, 0x65, 0xfe, 0x28, 0xec, 0xec, 0xf9,
		0x79, 0xd1, 0x61, 0x10, 0x9a, 0x26, 0x5a, 0xae, 0x3c, 0x91, 0xd1, 0x91, 0xd1, 0x91, 0xd1, 0x91,
		0xd1, 0x91, 0xd1, 0xd9, 0xaf, 0x64, 0x25, 0x86, 0x8c, 0xfa, 0x85, 0x2a, 0xdd, 0x95, 0x38, 0xc7,
		0x4b, 0x3d, 0xae, 0x03, 0x7f, 0xb4, 0x0d, 0xa5, 0xc9, 0x2a, 0xd4, 0x41, 0x66, 0x70, 0x07, 0x97,
		0x21, 0x1e, 0x54, 0x86, 0x7d, 0x30, 0x19, 0xea, 0x51, 0x1a, 0xf0, 0x07, 0x8f, 0xc1, 0x9f, 0x8b,
		0x01, 0x7f, 0xb0, 0x18, 0xdb, 0x67, 0x43, 0x4a, 0x2c, 0xc0, 0x52, 0x0b, 0xa2, 0xe4, 0xb2, 0x48,
		0x7a, 0xf9, 0x87, 0xff, 0x46, 0x94, 0x22, 0x96, 0x26, 0x4e, 0xae, 0x26, 0x42, 0xcd, 0x98, 0x66,
		0xb0, 0x7d, 0x2c, 0x8a, 0x53, 0x3a, 0x9d, 0xe0, 0xe6, 0x66, 0xa0, 0x95, 0xb9, 0x47, 0x65, 0xa7,
		0xb3, 0x06, 0x92, 0xa2, 0x92, 0xa2, 0x92, 0xa2, 0x92, 0xa2, 0x92, 0xa2, 0x92, 0xa2, 0x92, 0xa2,
		0x92, 0xa2, 0xae, 0x4a, 0x51, 0xa7, 0xbc, 0x42, 0xc9, 0x38, 0xb9, 0xbe, 0x27, 0x4b, 0xc5, 0x64,
		0xa9, 0xf2, 0xce, 0xb8, 0xf0, 0x4c, 0x75, 0x91, 0x91, 0x64, 0xab, 0x64, 0xab, 0x64, 0xab, 0x64,
		0xab, 0x64, 0xab, 0x64, 0xab, 0x64, 0xab, 0x64, 0xab, 0xab, 0xb2, 0xd5, 0xa7, 0xdc, 0x62, 0xc8,
		0x58, 0x9f, 0x71, 0x0d, 0xb2, 0x56, 0x4c, 0xd6, 0xaa, 0xf4, 0xad, 0xe8, 0xab, 0xae, 0x1b, 0x49,
		0x11, 0x03, 0x9d, 0xfe, 0x97, 0x78, 0xe8, 0x8c, 0x7d, 0xe4, 0xaa, 0xe4, 0xaa, 0xe4, 0xaa, 0xe4,
		0xaa, 0xe4, 0xaa, 0xe4, 0xaa, 0x5b, 0xc6, 0x55, 0x55, 0x57, 0x6a, 0xa3, 0xcc, 0x3d, 0x28, 0x5f,
		0x45, 0x3a, 0x8b, 0xba, 0x31, 0x19, 0xaa, 0x43, 0x11, 0x03, 0x86, 0xd4, 0xe9, 0x03, 0x6d, 0x9c,
		0xfe, 0x5d, 0x3f, 0x69, 0x1c, 0xf9, 0xad, 0xe6, 0xc5, 0x97, 0x63, 0xbf, 0x75, 0x5c, 0x3f, 0x6f,
		0x9e, 0xa2, 0x45, 0xd7, 0xbf, 0x45, 0x7f, 0x30, 0xea, 0xfe, 0x78, 0x09, 0x65, 0xd7, 0xf0, 0xf5,
		0x0b, 0xce, 0xa2, 0x85, 0x4f, 0xb7, 0x7e, 0xee, 0x9f, 0x34, 0x9b, 0x67, 0x0e, 0x9c, 0xb5, 0x0f,
		0x7f, 0xf1, 0x91, 0xae, 0xf6, 0x48, 0x3f, 0x9c, 0x5c, 0x9c, 0x7f, 0x39, 0x6e, 0xf1, 0xb9, 0x6e,
		0xda, 0x73, 0x6d, 0x9e, 0x7e, 0x3c, 0x3e, 0xe2, 0x13, 0xdd, 0x9c, 0x27, 0xda, 0x6c, 0x35, 0x3e,
		0x35, 0x4e, 0xeb, 0x5f, 0x9a, 0x2d, 0xc0, 0xa7, 0x0a, 0x65, 0xd1, 0x15, 0xf3, 0x11, 0x30, 0x2b,
		0x10, 0xd4, 0xc1, 0xbe, 0x88, 0x8d, 0x7b, 0x13, 0x74, 0x55, 0x4f, 0xc9, 0x2e, 0x9e, 0x38, 0xf8,
		0xdc, 0x3c, 0x6a, 0x83, 0x8b, 0xcc, 0xa1, 0x36, 0xb8, 0xc4, 0x84, 0xa2, 0x36, 0xb8, 0xd4, 0x4c,
		0xa7, 0x36, 0xf8, 0x4a, 0x03, 0xa9, 0x0d, 0xe6, 0x88, 0xff, 0x02, 0x6b, 0x83, 0x46, 0xdd, 0x48,
		0xa3, 0x3a, 0x3f, 0xe2, 0x6a, 0x19, 0x50, 0x1b, 0x7c, 0x07, 0x64, 0xd2, 0x85, 0x56, 0x26, 0x1e,
		0x0e, 0x99, 0x16, 0x3a, 0x88, 0x65, 0x27, 0xd0, 0xdd, 0x18, 0x69, 0xc8, 0x5a, 0x42, 0x5f, 0x4b,
		0x38, 0xbd, 0x0d, 0x2f, 0xdd, 0x73, 0x3e, 0x2b, 0x0d, 0x87, 0x88, 0x89, 0x71, 0x23, 0xd9, 0x14,
		0x87, 0x73, 0xcd, 0xd9, 0xf7, 0x31, 0x12, 0x1d, 0xa3, 0x02, 0x7d, 0xa4, 0xae, 0xc7, 0xee, 0x80,
		0x6a, 0xe8, 0xa9, 0xbc, 0x16, 0x46, 0xdd, 0x0e, 0xc7, 0xb2, 0x27, 0xfa, 0xb1, 0xa4, 0x36, 0xf3,
		0x27, 0xae, 0x21, 0xee, 0xf0, 0x5d, 0xa3, 0xf8, 0xae, 0x5c, 0xae, 0xd6, 0xca, 0xe5, 0xbd, 0xda,
		0x7e, 0x6d, 0xef, 0xa0, 0x52, 0x29, 0x56, 0x91, 0x4a, 0x48, 0xf4, 0x96, 0x0d, 0xe6, 0x93, 0x78,
		0xd6, 0x5c, 0x51, 0xf3, 0x42, 0x89, 0xa6, 0x30, 0x07, 0x3b, 0xcc, 0x91, 0x7c, 0x8c, 0x03, 0x1e,
		0x66, 0xc9, 0x3d, 0x75, 0xae, 0x17, 0x0c, 0xa2, 0xce, 0xb5, 0xac, 0x75, 0xd4, 0xb9, 0x56, 0x34,
		0x90, 0x3a, 0xd7, 0x46, 0x30, 0x01, 0xea, 0x5c, 0xff, 0x16, 0xb7, 0x06, 0x4a, 0x9b, 0xfd, 0x12,
		0xa0, 0xc4, 0x55, 0xa3, 0x84, 0xf4, 0x2f, 0x2f, 0x4a, 0x48, 0xab, 0xe5, 0xc9, 0x94, 0x90, 0x36,
		0x3e, 0x29, 0xa6, 0x84, 0xb4, 0x9a, 0x6b, 0x94, 0x4b, 0x07, 0xe5, 0x83, 0x6a, 0xad, 0x74, 0x40,
		0xe1, 0x68, 0xe3, 0x7d, 0x84, 0xc2, 0xd1, 0xc2, 0xd7, 0x15, 0x89, 0xeb, 0x93, 0x69, 0x2c, 0xef,
		0x4c, 0x24, 0xdc, 0x81, 0x8e, 0x8d, 0x68, 0xf7, 0xc1, 0x28, 0x6c, 0x24, 0x7b, 0x32, 0x92, 0xba,
		0x43, 0x66, 0xb6, 0x04, 0xdf, 0xef, 0x46, 0xa2, 0x67, 0x5c, 0x25, 0x4d, 0xcf, 0x55, 0xdd, 0xc8,
		0x15, 0xdd, 0xae, 0x1b, 0x0a, 0xf3, 0x2d, 0x2e, 0xb8, 0x85, 0x7a, 0xf7, 0x56, 0x46, 0x46, 0xc5,
		0x72, 0x98, 0x57, 0x16, 0x82, 0x5e, 0xe1, 0xf3, 0xa0, 0x6f, 0x54, 0xd8, 0x97, 0x85, 0xb3, 0xe1,
		0x5f, 0x7c, 0xd5, 0x4a, 0x17, 0x0e, 0x3f, 0x9d, 0x39, 0x80, 0xe0, 0x0a, 0xaa, 0x73, 0x2c, 0xd2,
		0x3b, 0x1e, 0x67, 0x2d, 0x28, 0x72, 0xa1, 0x4b, 0x1f, 0x0b, 0x25, 0x90, 0x35, 0x4c, 0x6b, 0x22,
		0x34, 0x11, 0x3a, 0x57, 0xe3, 0x01, 0x51, 0xda, 0xc1, 0x92, 0xe4, 0xb1, 0x0e, 0x79, 0x7c, 0x0c,
		0xff, 0x2c, 0xec, 0xfc, 0xa3, 0x41, 0x2c, 0xec, 0x6c, 0x08, 0xe1, 0x61, 0x61, 0x67, 0xad, 0xac,
		0x86, 0x85, 0x1d, 0xf4, 0xfc, 0x18, 0xb8, 0xb9, 0x41, 0x78, 0x5b, 0x76, 0xe1, 0x7c, 0x30, 0x69,
		0x6e, 0xf0, 0x0e, 0xab, 0x19, 0x97, 0x91, 0x91, 0x86, 0x93, 0x11, 0x9c, 0x9d, 0xcb, 0x3d, 0xf7,
		0xe0, 0xea, 0xf7, 0x65, 0xd1, 0x3d, 0xb8, 0x1a, 0x5f, 0x16, 0x47, 0x6f, 0xbf, 0x4a, 0x0f, 0xbf,
		0x4b, 0x97, 0x7b, 0x6e, 0x79, 0x72, 0xb7, 0x54, 0xb9, 0xdc, 0x73, 0x2b, 0x57, 0xbb, 0x3b, 0x5f,
		0xbf, 0xbe, 0x5d, 0xf6, 0x33, 0xbb, 0xbf, 0xf6, 0x1f, 0xbc, 0xe4, 0x43, 0xa5, 0xc9, 0x6f, 0xf7,
		0x2f, 0xf7, 0xdc, 0xd2, 0xd5, 0x2e, 0x4e, 0xd8, 0xb9, 0x42, 0x9a, 0x2f, 0xcd, 0xf3, 0xc6, 0x7f,
		0x61, 0x27, 0xcd, 0xff, 0x76, 0xac, 0x4f, 0x9b, 0xdd, 0xff, 0x38, 0xcc, 0x16, 0x99, 0x2d, 0xce,
		0x4d, 0xcd, 0x49, 0xe3, 0xb9, 0x60, 0x60, 0x24, 0x5e, 0xca, 0xf8, 0xd4, 0x38, 0xe6, 0x8d, 0xcc,
		0x1b, 0x99, 0x37, 0x32, 0x6f, 0x64, 0xde, 0xc8, 0xbc, 0x71, 0xcb, 0xf2, 0xc6, 0x76, 0x10, 0xf4,
		0xa5, 0xd0, 0x88, 0x39, 0x63, 0x91, 0x54, 0x0e, 0xc0, 0x02, 0xdb, 0xa7, 0x3b, 0xd7, 0xb5, 0x0e,
		0x8c, 0x30, 0x0a, 0xa4, 0xb7, 0xb2, 0x13, 0x77, 0xbe, 0xc9, 0x1b, 0x11, 0x4e, 0x1a, 0x7a, 0x7b,
		0x41, 0x28, 0x75, 0x67, 0x44, 0x94, 0x5c, 0x2d, 0xcd, 0xcf, 0x20, 0xfa, 0xe1, 0x2a, 0x1d, 0x1b,
		0xa1, 0x3b, 0xd2, 0x9b, 0xbd, 0x11, 0xcf, 0xdd, 0xf1, 0xc2, 0x28, 0x30, 0x41, 0x27, 0xe8, 0xc7,
		0xc9, 0x95, 0xd7, 0xbe, 0x0e, 0xbd, 0x48, 0xb5, 0x3d, 0xd1, 0x53, 0x6e, 0x2c, 0x7a, 0x2a, 0x4e,
		0xae, 0xbc, 0x91, 0xc8, 0x33, 0xd0, 0xaa, 0x23, 0x62, 0xe3, 0x69, 0xa9, 0xae, 0xbf, 0xb5, 0x83,
		0x28, 0x4e, 0xae, 0x3c, 0xd1, 0xfd, 0x3e, 0x42, 0x82, 0x60, 0x60, 0xdc, 0x30, 0x92, 0xde, 0x88,
		0xdd, 0xc6, 0xe3, 0xb7, 0x71, 0xff, 0x70, 0x84, 0x73, 0xf0, 0x63, 0x13, 0x0d, 0x3a, 0x46, 0x4f,
		0x02, 0x50, 0x33, 0x19, 0xc0, 0xd3, 0xf1, 0xe0, 0x34, 0x26, 0x63, 0xe3, 0xcf, 0xfc, 0x1c, 0xcf,
		0xde, 0xf0, 0xcf, 0xa6, 0x83, 0x97, 0x5c, 0xf9, 0x87, 0xd7, 0xa1, 0xdf, 0x52, 0x6d, 0xbf, 0xde,
		0x53, 0xe7, 0xc3, 0xb1, 0x9b, 0x5e, 0xf8, 0x8d, 0xf0, 0xb6, 0x7c, 0x31, 0x1e, 0x39, 0xff, 0x74,
		0x3a, 0x72, 0xc9, 0x95, 0x5f, 0xef, 0x7e, 0x6f, 0xa9, 0x76, 0x73, 0x60, 0xce, 0x22, 0xe9, 0xb7,
		0x46, 0xc3, 0x36, 0x7e, 0xf3, 0xcf, 0x47, 0xc3, 0xf6, 0x66, 0x3b, 0x03, 0x80, 0x45, 0xe7, 0x77,
		0x06, 0xfa, 0x87, 0x0e, 0x7e, 0x6a, 0x57, 0x18, 0x13, 0xa9, 0xf6, 0xf0, 0x89, 0x58, 0x0f, 0x00,
		0x8f, 0xcb, 0xe8, 0xe7, 0x6d, 0xb3, 0x1c, 0x26, 0xa7, 0xa0, 0x69, 0xd9, 0x0c, 0x94, 0x9c, 0x11,
		0x29, 0x57, 0xc4, 0xcc, 0x11, 0xd1, 0x72, 0x43, 0xd8, 0x9c, 0x10, 0x36, 0x17, 0x84, 0xcd, 0x01,
		0xb7, 0x9b, 0xb0, 0x1e, 0xa9, 0x08, 0x23, 0xec, 0xcc, 0x81, 0x14, 0x9e, 0x08, 0x3b, 0x6f, 0x22,
		0x96, 0x14, 0x5b, 0xa4, 0x14, 0x0b, 0x0f, 0xaf, 0xd8, 0x30, 0x8b, 0x0a, 0xb7, 0xf0, 0xb0, 0x0b,
		0x0f, 0xbf, 0xf0, 0x30, 0x8c, 0xa3, 0x60, 0x15, 0x80, 0xa4, 0x58, 0x14, 0x78, 0x4e, 0x0c, 0x1a,
		0x62, 0x9f, 0x6b, 0xd0, 0x04, 0xe2, 0x67, 0x11, 0xf5, 0xd1, 0x44, 0x30, 0xd7, 0xc3, 0xaa, 0x98,
		0xc2, 0xc2, 0x35, 0x32, 0x6c, 0xe7, 0x03, 0xbe, 0xd1, 0x61, 0x3c, 0x37, 0x70, 0x9e, 0x1b, 0x58,
		0xcf, 0x0d, 0xbc, 0x63, 0xc1, 0x3c, 0x18, 0xdc, 0x27, 0x4f, 0xf1, 0x0b, 0x22, 0xc0, 0x16, 0xb0,
		0x8f, 0xd2, 0x9d, 0xcb, 0x86, 0x6b, 0x80, 0xb6, 0x3d, 0x39, 0x5a, 0x77, 0x7c, 0x42, 0xee, 0x23,
		0x59, 0xe1, 0x86, 0x3a, 0x74, 0xd7, 0x74, 0xc6, 0x45, 0x49, 0x58, 0xe2, 0x8b, 0x52, 0x33, 0x5d,
		0xe8, 0x8d, 0x24, 0xbd, 0x24, 0xbd, 0x24, 0xbd, 0x24, 0xbd, 0x24, 0xbd, 0x44, 0xd6, 0xc5, 0x4f,
		0x11, 0x4d, 0xeb, 0x4a, 0x0c, 0x1b, 0x71, 0xb4, 0xbe, 0x04, 0xee, 0x1e, 0xf7, 0x4c, 0xfa, 0x1a,
		0x5a, 0x0a, 0xea, 0xa8, 0x98, 0x0a, 0x18, 0x3c, 0x29, 0xc8, 0x03, 0x39, 0xc8, 0x17, 0x49, 0xc8,
		0x0b, 0x59, 0xc8, 0x1d, 0x69, 0xc8, 0x1d, 0x79, 0xc8, 0x1d, 0x89, 0xc0, 0x24, 0x13, 0xa0, 0xa4,
		0x22, 0x79, 0xba, 0xb0, 0x8a, 0xda, 0x5c, 0xdc, 0x1c, 0x28, 0x6d, 0x8a, 0x55, 0xe4, 0x98, 0x39,
		0x41, 0xf1, 0x2a, 0xb0, 0x89, 0x98, 0x4d, 0x91, 0x67, 0x5f, 0xd8, 0x98, 0x53, 0x40, 0x6f, 0x9a,
		0x3c, 0x67, 0x2c, 0x78, 0x13, 0xe5, 0x39, 0x7b, 0xf3, 0xd2, 0x30, 0x76, 0x3e, 0x56, 0xa1, 0x37,
		0x90, 0xcd, 0x09, 0x2c, 0x3d, 0x77, 0x35, 0x71, 0x97, 0x3f, 0x57, 0xab, 0x56, 0x2a, 0xfb, 0x15,
		0xba, 0x1b, 0xdd, 0x2d, 0x07, 0xdc, 0x14, 0xdf, 0xba, 0x2b, 0x72, 0xfa, 0x25, 0xdc, 0x02, 0xb8,
		0xff, 0xf3, 0x9c, 0xad, 0xb8, 0xfd, 0xa0, 0x73, 0x48, 0x4a, 0xa7, 0xa9, 0x52, 0xeb, 0xe3, 0x87,
		0x42, 0xb9, 0x54, 0x2b, 0x16, 0xdc, 0x42, 0xbd, 0x70, 0x18, 0x44, 0x5d, 0x19, 0x15, 0x3e, 0x09,
		0x23, 0x7f, 0x8a, 0xfb, 0xc2, 0x74, 0x93, 0x65, 0xa1, 0x5c, 0xd8, 0x39, 0xfc, 0x74, 0xe6, 0x96,
		0x77, 0x9d, 0x1c, 0x70, 0x80, 0x9c, 0xc8, 0x51, 0x8f, 0xa9, 0x60, 0x7e, 0x7a, 0x47, 0xcf, 0xd9,
		0x9e, 0x37, 0x85, 0x2a, 0x31, 0xfc, 0xa9, 0x52, 0xb5, 0xa4, 0x0b, 0x90, 0x39, 0x90, 0x39, 0x6c,
		0xf5, 0x78, 0x21, 0x9e, 0xbe, 0x83, 0xbb, 0xa6, 0x7e, 0x0e, 0x71, 0x51, 0xd7, 0xd6, 0x3f, 0x02,
		0x12, 0x2b, 0x8c, 0xaf, 0x32, 0x90, 0x15, 0xc6, 0x2d, 0xa5, 0x74, 0xac, 0x30, 0x66, 0xca, 0xdb,
		0x58, 0x61, 0xdc, 0x34, 0x35, 0x22, 0x5f, 0x15, 0xc6, 0x77, 0x39, 0x28, 0x30, 0x56, 0x58, 0x60,
		0xdc, 0x7c, 0x2d, 0x87, 0x05, 0xc6, 0x14, 0xed, 0x65, 0xc5, 0x63, 0xcb, 0x51, 0xe9, 0xb9, 0xab,
		0xe5, 0xb1, 0xc0, 0x58, 0xaa, 0xb0, 0xbc, 0x48, 0x67, 0xcb, 0x03, 0x31, 0xc5, 0xb7, 0x8e, 0xe5,
		0xc5, 0x65, 0xdc, 0x82, 0xe5, 0xc5, 0x2d, 0xa5, 0xa4, 0x2c, 0x2f, 0xc2, 0x24, 0x82, 0x2c, 0x2f,
		0x66, 0x6f, 0x38, 0xcb, 0x8b, 0xb4, 0x2e, 0x27, 0xcc, 0x81, 0xe5, 0xc5, 0x3f, 0xf0, 0xe7, 0x51,
		0xcd, 0xee, 0x76, 0x92, 0x4e, 0xe5, 0xa1, 0xbe, 0x38, 0xb6, 0x95, 0x05, 0xc6, 0x55, 0xcc, 0x63,
		0x81, 0x71, 0x8d, 0xb3, 0x91, 0x05, 0xc6, 0x94, 0xc8, 0x1c, 0x0b, 0x8c, 0xa9, 0x33, 0x37, 0x16,
		0x18, 0x37, 0x4d, 0x8f, 0xc8, 0x4f, 0x81, 0xb1, 0xad, 0xb4, 0x88, 0xee, 0x73, 0x50, 0x61, 0x3c,
		0x00, 0x36, 0xf1, 0x44, 0xea, 0xeb, 0x51, 0xb3, 0x30, 0xea, 0x39, 0xaf, 0x1c, 0xc9, 0x5c, 0x96,
		0x18, 0x8b, 0xac, 0x7a, 0xa4, 0x1c, 0xac, 0x58, 0x62, 0x4c, 0xc1, 0xd5, 0xb8, 0x87, 0x91, 0xee,
		0xb6, 0x21, 0xee, 0x46, 0xa9, 0x70, 0xa5, 0x17, 0x8b, 0x8c, 0xcb, 0xb8, 0x05, 0x8b, 0x8c, 0x5b,
		0x4a, 0x4a, 0x59, 0x64, 0x84, 0xc9, 0x05, 0x59, 0x64, 0xcc, 0xde, 0x70, 0x16, 0x19, 0x69, 0x5d,
		0x4e, 0x98, 0x03, 0x8b, 0x8c, 0x7f, 0xc6, 0x63, 0xa4, 0xee, 0xca, 0x2e, 0x7e, 0x89, 0x31, 0xb1,
		0x94, 0x05, 0xc6, 0x55, 0xcc, 0x63, 0x81, 0x71, 0x8d, 0x73, 0x91, 0x05, 0xc6, 0x94, 0x88, 0x1c,
		0x0b, 0x8c, 0xa9, 0xb3, 0x36, 0x16, 0x18, 0x37, 0x4d, 0x8b, 0xc8, 0x51, 0x81, 0x31, 0x08, 0xfa,
		0x52, 0xe8, 0x1c, 0x54, 0x18, 0x8b, 0x45, 0x4e, 0xc1, 0xe5, 0x68, 0x24, 0xe5, 0xb0, 0xb5, 0xbf,
		0x28, 0x87, 0x91, 0x3d, 0xad, 0xc2, 0xa2, 0x28, 0x87, 0xd9, 0x20, 0x56, 0x94, 0xc3, 0x68, 0x5d,
		0x81, 0x72, 0x58, 0x9e, 0xb9, 0x8c, 0x13, 0x84, 0x46, 0x05, 0x5a, 0xf4, 0xf1, 0xe5, 0xb0, 0xc4,
		0x52, 0xca, 0x61, 0xab, 0x98, 0x47, 0x39, 0x6c, 0x9d, 0x73, 0x91, 0x72, 0x58, 0x3a, 0x44, 0x8e,
		0x72, 0x58, 0xea, 0xac, 0x8d, 0x72, 0xd8, 0xa6, 0x69, 0x11, 0x94, 0xc3, 0xd6, 0x0f, 0xe3, 0x94,
		0xc3, 0x96, 0x1a, 0x35, 0xca, 0x61, 0x69, 0xbc, 0x28, 0x87, 0x91, 0x3d, 0xad, 0xc2, 0xa2, 0x28,
		0x87, 0xd9, 0x20, 0x56, 0x94, 0xc3, 0x68, 0x5d, 0x81, 0x72, 0x58, 0x9e, 0xb9, 0x8c, 0x13, 0x8a,
		0xc8, 0xa8, 0x3c, 0xa8, 0x61, 0x53, 0x43, 0x29, 0x86, 0xad, 0x62, 0x1e, 0xc5, 0xb0, 0x35, 0x4e,
		0x45, 0x8a, 0x61, 0x29, 0xd1, 0x38, 0x8a, 0x61, 0xa9, 0x73, 0x36, 0x8a, 0x61, 0x9b, 0xa6, 0x44,
		0x50, 0x0c, 0x5b, 0x3f, 0x8c, 0x53, 0x0c, 0x5b, 0x6a, 0xd4, 0x28, 0x86, 0xa5, 0xf1, 0xa2, 0x18,
		0x46, 0xf6, 0xb4, 0x0a, 0x8b, 0xa2, 0x18, 0x66, 0x83, 0x58, 0x51, 0x0c, 0xa3, 0x75, 0x05, 0x8a,
		0x61, 0x79, 0xe6, 0x32, 0x8e, 0x89, 0x84, 0x8e, 0xd5, 0xa4, 0x17, 0x0a, 0xb8, 0x1e, 0xf6, 0xc4,
		0x56, 0x4a, 0x62, 0xab, 0x98, 0x47, 0x49, 0x6c, 0x8d, 0xb3, 0x91, 0x92, 0x58, 0x4a, 0x64, 0x8e,
		0x92, 0x58, 0xea, 0xcc, 0x8d, 0x92, 0xd8, 0xa6, 0xe9, 0x11, 0x94, 0xc4, 0xd6, 0x0f, 0xe3, 0x94,
		0xc4, 0x96, 0x1a, 0x35, 0x4a, 0x62, 0x69, 0xbc, 0x28, 0x89, 0x91, 0x3d, 0xad, 0xc2, 0xa2, 0x28,
		0x89, 0xd9, 0x20, 0x56, 0x94, 0xc4, 0x68, 0x5d, 0x81, 0x92, 0x58, 0x4e, 0x2d, 0x02, 0x63, 0x56,
		0x4e, 0x5d, 0xeb, 0xc0, 0x08, 0xa3, 0x02, 0xcc, 0x96, 0xf1, 0x4e, 0xdc, 0xf9, 0x26, 0x6f, 0x44,
		0x28, 0x46, 0x27, 0x03, 0x38, 0x5e, 0x10, 0x4a, 0xdd, 0x19, 0x49, 0x4c, 0xae, 0x96, 0xe6, 0x67,
		0x10, 0xfd, 0x70, 0xd5, 0x90, 0x0d, 0xea, 0x8e, 0xf4, 0x66, 0x6f, 0xc4, 0x73, 0x77, 0xbc, 0x70,
		0x12, 0x1f, 0xe3, 0xe4, 0xca, 0x6b, 0x5f, 0x87, 0x5e, 0xa4, 0xda, 0x9e, 0xe8, 0x29, 0x37, 0x16,
		0x3d, 0x15, 0x27, 0x57, 0x9e, 0x0a, 0x6f, 0xcb, 0xee, 0x40, 0xab, 0x8e, 0x88, 0x8d, 0xa7, 0xa5,
		0xba, 0xfe, 0xd6, 0x0e, 0xa2, 0x38, 0xb9, 0xf2, 0x44, 0xf7, 0xfb, 0x28, 0xc7, 0x0d, 0x06, 0xc6,
		0x0d, 0x23, 0xe9, 0x45, 0xc1, 0xc0, 0xc8, 0x78, 0xfc, 0xe6, 0x0d, 0xf4, 0x0f, 0x1d, 0xfc, 0xd4,
		0xae, 0x30, 0x26, 0x52, 0xed, 0xd1, 0x2f, 0xe6, 0x6e, 0x79, 0xb1, 0x11, 0x06, 0x11, 0x3d, 0x9d,
		0xd8, 0x44, 0x83, 0x8e, 0xd1, 0x13, 0xd6, 0xd5, 0x4c, 0x46, 0xfd, 0x74, 0x3c, 0xa2, 0x8d, 0xc9,
		0x80, 0xfa, 0x33, 0x3f, 0xc7, 0xb3, 0x37, 0xfc, 0x29, 0x22, 0xc5, 0xc9, 0x95, 0x7f, 0x78, 0x1d,
		0xfa, 0x2d, 0xd5, 0xf6, 0xeb, 0x3d, 0x75, 0x3e, 0x1c, 0xf0, 0xe9, 0x85, 0xdf, 0x08, 0x6f, 0xcb,
		0x17, 0xe3, 0xe1, 0xf6, 0x4f, 0xa7, 0xc3, 0x9d, 0x5c, 0xf9, 0xf5, 0xee, 0xf7, 0x96, 0x6a, 0x37,
		0x07, 0xe6, 0x2c, 0x92, 0x7e, 0x6b, 0x34, 0xd6, 0xe3, 0x37, 0xff, 0x62, 0x3c, 0xb0, 0xf5, 0x64,
		0xa8, 0xe7, 0xee, 0xf8, 0xe7, 0xa3, 0x91, 0x7e, 0xc3, 0xc0, 0x84, 0x6b, 0x09, 0x48, 0x68, 0x1c,
		0x32, 0xdc, 0xe4, 0x68, 0x36, 0x73, 0x1f, 0xa2, 0xf8, 0xa7, 0x73, 0xa2, 0x62, 0x33, 0x9c, 0xd0,
		0x50, 0x81, 0xda, 0xf9, 0xac, 0xf4, 0x71, 0x5f, 0x0e, 0xc9, 0x29, 0x58, 0x77, 0x7e, 0xe7, 0xb3,
		0xb8, 0x7b, 0x62, 0x59, 0xf1, 0x5d, 0xb9, 0x5c, 0xad, 0x95, 0xcb, 0x7b, 0xb5, 0xfd, 0xda, 0xde,
		0x41, 0xa5, 0x52, 0xac, 0x16, 0x81, 0xce, 0x40, 0x70, 0x9a, 0x43, 0x1e, 0x2f, 0xbb, 0x87, 0xc3,
		0xa9, 0xa7, 0x07, 0xfd, 0x3e, 0xa2, 0x69, 0x17, 0xb1, 0x8c, 0xa0, 0x8e, 0x33, 0x40, 0x89, 0x18,
		0xa0, 0x24, 0x6a, 0xb3, 0xc9, 0x13, 0x10, 0x6d, 0xda, 0x38, 0xba, 0x84, 0x41, 0x94, 0xec, 0xd3,
		0x12, 0xbb, 0x16, 0x58, 0x0e, 0x6f, 0x68, 0x61, 0x6d, 0x93, 0xc2, 0x19, 0x40, 0xf0, 0xca, 0x7b,
		0xd0, 0xb2, 0x1b, 0xa3, 0xec, 0x45, 0x06, 0x3b, 0xdf, 0x6c, 0x29, 0x16, 0x4d, 0x93, 0xb1, 0xf1,
		0x82, 0x8d, 0xc2, 0xd0, 0xf7, 0x5d, 0x65, 0xab, 0x95, 0x3d, 0x46, 0x06, 0x86, 0x93, 0x71, 0x41,
		0x67, 0x58, 0x40, 0x19, 0x15, 0x50, 0x06, 0x65, 0xcb, 0x8d, 0x41, 0xa8, 0x44, 0x6e, 0x29, 0x84,
		0x45, 0xbe, 0x90, 0x2f, 0x9e, 0x60, 0x87, 0x15, 0x64, 0x8f, 0xc9, 0xd9, 0x7e, 0x63, 0xc6, 0x61,
		0xc3, 0x76, 0xb8, 0xc8, 0x61, 0x98, 0xb0, 0x10, 0x20, 0xf2, 0x12, 0x18, 0xb2, 0x0d, 0x09, 0xd9,
		0x39, 0x66, 0x86, 0x4e, 0xe9, 0x8c, 0x0b, 0x95, 0x59, 0xfb, 0x62, 0xb2, 0xec, 0xcb, 0x46, 0x9d,
		0x34, 0x59, 0xa2, 0x99, 0xf1, 0xd7, 0x26, 0x3b, 0x28, 0x4a, 0x19, 0x7f, 0xb1, 0xc5, 0x9d, 0x11,
		0x18, 0x3b, 0x1e, 0x6c, 0xaf, 0xc5, 0x83, 0xd9, 0xa1, 0x00, 0xb3, 0x50, 0x0e, 0x66, 0x47, 0x01,
		0xe9, 0x16, 0xe9, 0xd6, 0x98, 0x6e, 0xd9, 0x5a, 0xb2, 0x83, 0xcf, 0xb6, 0x2c, 0x2c, 0xb1, 0xc9,
		0x90, 0x6c, 0xbd, 0xd9, 0x20, 0xc7, 0xb7, 0xe5, 0xf0, 0x79, 0x72, 0x74, 0x27, 0x53, 0x76, 0x8d,
		0xed, 0xda, 0xd9, 0x38, 0x75, 0xfa, 0x2e, 0x96, 0x81, 0x7b, 0x39, 0xd3, 0xf9, 0xe4, 0x8a, 0x6e,
		0x37, 0x92, 0x71, 0x9c, 0x99, 0x83, 0x25, 0x1c, 0x7a, 0xce, 0x82, 0x8c, 0x82, 0x4a, 0xb6, 0x3b,
		0xd3, 0x33, 0xdf, 0x69, 0x6e, 0x23, 0x3f, 0xb2, 0x9b, 0x17, 0xd9, 0xca, 0x87, 0xac, 0xe7, 0x41,
		0xd6, 0xf3, 0x1f, 0xeb, 0x79, 0xcf, 0x66, 0xd1, 0x9d, 0xcc, 0x77, 0x2e, 0x27, 0x7e, 0xdb, 0x97,
		0xa2, 0x17, 0xc9, 0x5e, 0x96, 0x4e, 0x3b, 0x95, 0xad, 0x6a, 0x19, 0x7e, 0xe7, 0xd9, 0x84, 0xd1,
		0xbd, 0x7d, 0x3b, 0xce, 0x8f, 0xbc, 0x39, 0x0c, 0x22, 0x83, 0x58, 0x82, 0x0d, 0x66, 0xa9, 0xb5,
		0x5a, 0xd1, 0x58, 0x33, 0xd6, 0x56, 0xc9, 0x15, 0xc8, 0x15, 0xc8, 0x15, 0xc8, 0x15, 0xfe, 0x64,
		0x34, 0x8f, 0x54, 0xb6, 0xcb, 0xbb, 0xec, 0x25, 0x8c, 0x28, 0x89, 0xa3, 0xa5, 0x04, 0xd2, 0x1a,
		0x38, 0xd8, 0x04, 0x09, 0x0c, 0xb0, 0xb0, 0x0d, 0x1a, 0x30, 0xe0, 0x01, 0x03, 0x22, 0x30, 0x60,
		0x92, 0x2d, 0xa8, 0x64, 0x0c, 0x2e, 0xf6, 0x12, 0xd2, 0x39, 0xbf, 0x57, 0xa1, 0xa5, 0x28, 0xff,
		0x8c, 0xfe, 0x1f, 0x58, 0xf8, 0xee, 0xc9, 0xd8, 0xdb, 0x69, 0xc9, 0x64, 0x71, 0xe9, 0xeb, 0xe3,
		0x93, 0xbf, 0x2d, 0x5b, 0x7c, 0xf6, 0x73, 0x73, 0xe0, 0x9d, 0x45, 0x1b, 0xce, 0x84, 0x31, 0x32,
		0xd2, 0xd6, 0x3b, 0x74, 0x39, 0x3b, 0x97, 0x7b, 0xee, 0xc1, 0xd5, 0xef, 0xcb, 0xa2, 0x7b, 0x70,
		0x35, 0xbe, 0x2c, 0x8e, 0xde, 0x7e, 0x95, 0x1e, 0x7e, 0x97, 0x2e, 0xf7, 0xdc, 0xf2, 0xe4, 0x6e,
		0xa9, 0x72, 0xb9, 0xe7, 0x56, 0xae, 0x76, 0x77, 0xbe, 0x7e, 0x7d, 0xbb, 0xec, 0x67, 0x76, 0x7f,
		0xed, 0x3f, 0xd8, 0xdb, 0x34, 0x73, 0x65, 0xf3, 0x31, 0x37, 0xcf, 0x1b, 0xff, 0x85, 0x79, 0xd6,
		0xff, 0xdb, 0xc9, 0xea, 0x69, 0xef, 0xfe, 0xc7, 0xe2, 0xf3, 0xde, 0xa6, 0xfd, 0x0d, 0x18, 0x61,
		0xbd, 0xca, 0xb0, 0x8e, 0x16, 0xd6, 0x47, 0x5e, 0x2b, 0xdc, 0x5e, 0xdd, 0xfd, 0x78, 0xf5, 0xab,
		0xf8, 0x57, 0xf9, 0xe1, 0xfd, 0xee, 0xaf, 0xda, 0xc3, 0xec, 0xcd, 0xdf, 0x8b, 0xfe, 0xac, 0xf8,
		0x57, 0xed, 0xe1, 0xfd, 0x0b, 0xbf, 0xa9, 0x3e, 0xbc, 0xff, 0xc3, 0x7f, 0xa3, 0xf2, 0xb0, 0x33,
		0xf7, 0xa7, 0xc3, 0xfb, 0xa5, 0x97, 0x3e, 0x50, 0x7e, 0xe1, 0x03, 0xfb, 0x2f, 0x7d, 0x60, 0xff,
		0x85, 0x0f, 0xbc, 0x68, 0x52, 0xe9, 0x85, 0x0f, 0x54, 0x1e, 0x7e, 0xcf, 0xfd, 0xfd, 0xce, 0xe2,
		0x3f, 0xad, 0x3e, 0xec, 0xfe, 0x7e, 0xe9, 0x77, 0xb5, 0x87, 0xdf, 0xef, 0x77, 0x77, 0x09, 0x74,
		0x30, 0x40, 0xc7, 0xe9, 0x9f, 0xfd, 0xf4, 0xdf, 0x3e, 0xe0, 0x7f, 0xb3, 0xd9, 0xff, 0x9f, 0x5c,
		0xe9, 0xb8, 0xa2, 0x9e, 0xc5, 0x95, 0x8e, 0x73, 0x2b, 0x1d, 0xb3, 0x5e, 0xc2, 0x0c, 0xb9, 0xbe,
		0x31, 0xc3, 0xd5, 0xca, 0x19, 0x2c, 0x4b, 0x78, 0x93, 0x63, 0x5f, 0x9d, 0xf6, 0x78, 0xc8, 0xb8,
		0xfc, 0x94, 0x6d, 0x37, 0x87, 0xec, 0xbb, 0x36, 0x40, 0x74, 0x67, 0xb0, 0xd0, 0x85, 0xc1, 0x42,
		0xb7, 0x85, 0xb4, 0x1d, 0x24, 0x63, 0x10, 0x43, 0x06, 0x2f, 0x27, 0x93, 0x05, 0x58, 0x70, 0x70,
		0x95, 0x2e, 0x50, 0xa5, 0x07, 0x1f, 0xe9, 0xfc, 0xcb, 0x29, 0xf9, 0x5b, 0x56, 0x7e, 0x06, 0xe8,
		0x5f, 0x29, 0xba, 0x15, 0x90, 0x3b, 0xa5, 0xe3, 0x45, 0xeb, 0x9f, 0xe3, 0xeb, 0xfd, 0x17, 0xd7,
		0xec, 0x2d, 0x59, 0x1c, 0xc2, 0xe3, 0xfc, 0xfc, 0x26, 0xd3, 0x13, 0xb0, 0x52, 0xf4, 0xec, 0xa9,
		0x1a, 0xff, 0xf6, 0x6d, 0xe2, 0x71, 0xee, 0x70, 0xe6, 0x17, 0xfe, 0xbf, 0xc2, 0xff, 0x05, 0x1d,
		0xb7, 0x7d, 0x1d, 0x9a, 0xf7, 0x8d, 0xb3, 0xbf, 0xcb, 0xfe, 0xc5, 0x69, 0xe3, 0x43, 0xfd, 0xfc,
		0xcb, 0xff, 0xa5, 0xe9, 0x78, 0x19, 0xad, 0xae, 0x79, 0xba, 0x8a, 0x66, 0xf4, 0xdc, 0x52, 0x66,
		0x43, 0x59, 0xaf, 0x95, 0x79, 0xb6, 0x26, 0xe6, 0xcf, 0x1f, 0xec, 0x9b, 0x1c, 0xb2, 0x4d, 0xe7,
		0x48, 0xc6, 0x9d, 0x48, 0x85, 0x99, 0x50, 0xcd, 0xc4, 0x59, 0x1a, 0xba, 0xd3, 0x1f, 0x74, 0x65,
		0xc1, 0x7c, 0x53, 0x71, 0xa1, 0x13, 0x68, 0x23, 0x94, 0x96, 0x51, 0xa1, 0x17, 0x44, 0x85, 0xc6,
		0xd9, 0x6d, 0xb9, 0x30, 0x41, 0xab, 0x42, 0xab, 0x71, 0x98, 0xf6, 0xdc, 0xca, 0x70, 0x41, 0xda,
		0x53, 0xb7, 0xe9, 0x3e, 0x19, 0xf6, 0x0c, 0x08, 0xae, 0x8d, 0xd5, 0x66, 0xcf, 0xbc, 0x68, 0x99,
		0x27, 0x4e, 0xe6, 0x9b, 0xea, 0xbf, 0x7a, 0x05, 0xcd, 0x35, 0x52, 0x66, 0xe4, 0x30, 0x4c, 0x3c,
		0x05, 0xaf, 0xb7, 0xce, 0xbb, 0xd7, 0xeb, 0xb9, 0xeb, 0x9b, 0xf9, 0x6b, 0x9c, 0xa3, 0xe3, 0x55,
		0x17, 0x71, 0x64, 0xa4, 0x1b, 0x06, 0x7d, 0xd5, 0xb9, 0x5f, 0xfb, 0x2c, 0x7d, 0xbe, 0xbe, 0xe3,
		0xe9, 0x37, 0xad, 0xd9, 0xd3, 0xd2, 0xd9, 0x91, 0x95, 0xda, 0xe2, 0xfa, 0x34, 0x17, 0xcf, 0x67,
		0xb3, 0x38, 0x3e, 0x6d, 0xae, 0x91, 0xd9, 0xe2, 0xf6, 0xcc, 0xe8, 0x44, 0x66, 0x8b, 0xd3, 0xb1,
		0xf3, 0xef, 0xb4, 0x76, 0x28, 0x39, 0xfd, 0xf1, 0x98, 0xa6, 0x37, 0x23, 0x93, 0x5d, 0xd1, 0x93,
		0x2f, 0x4a, 0x69, 0x9a, 0xa4, 0xbb, 0xb9, 0x34, 0xf5, 0xfd, 0x42, 0x59, 0xec, 0x0b, 0xca, 0x76,
		0xff, 0x8f, 0x0d, 0x25, 0x22, 0x93, 0xfd, 0x3c, 0x76, 0xb5, 0x88, 0x2c, 0xf6, 0xe7, 0xe4, 0x4b,
		0xc0, 0x4f, 0x7b, 0xf3, 0xa6, 0x33, 0x69, 0xb6, 0x9b, 0x99, 0x34, 0x92, 0x49, 0x73, 0xdf, 0x8c,
		0x76, 0xe3, 0x67, 0xb6, 0xd1, 0x32, 0xcb, 0x8d, 0x95, 0x76, 0x36, 0x52, 0x66, 0xbd, 0x71, 0xd2,
		0xda, 0x46, 0x49, 0x6b, 0x1b, 0x23, 0xad, 0x6d, 0x84, 0xcc, 0xf7, 0x52, 0x9e, 0xac, 0x76, 0xcf,
		0x8f, 0x03, 0x63, 0xf6, 0x4d, 0x52, 0xb2, 0x3c, 0x8c, 0x81, 0x4d, 0x52, 0x36, 0x25, 0x5c, 0xdb,
		0x0a, 0xdb, 0xd6, 0xc3, 0xb7, 0xf5, 0x30, 0x6e, 0x3d, 0x9c, 0x67, 0x13, 0xd6, 0x33, 0x0a, 0xef,
		0x99, 0x87, 0xf9, 0xe4, 0x0b, 0x3b, 0x41, 0x3f, 0x88, 0xec, 0x75, 0x46, 0x19, 0x7f, 0x3d, 0xdb,
		0xa1, 0x6c, 0x1a, 0x1c, 0x60, 0xc0, 0x82, 0x6d, 0x78, 0x80, 0x81, 0x09, 0x18, 0xb8, 0x80, 0x81,
		0x8d, 0x6c, 0xe1, 0x23, 0x63, 0x18, 0x49, 0x46, 0xd9, 0x7e, 0x3b, 0x94, 0xec, 0xfb, 0x74, 0xce,
		0xb1, 0xfc, 0x9a, 0x85, 0xef, 0x9e, 0xeb, 0xdb, 0x39, 0x06, 0x3a, 0x1e, 0x98, 0xf4, 0xea, 0x91,
		0x95, 0xba, 0x1b, 0x06, 0x6a, 0x14, 0x38, 0x2c, 0x71, 0x96, 0xc4, 0x02, 0xd2, 0x16, 0xd2, 0x16,
		0xd2, 0x16, 0xd2, 0x16, 0xd2, 0x16, 0xd2, 0x96, 0x0d, 0xa5, 0x2d, 0x09, 0xd6, 0x91, 0xb9, 0xbc,
		0x7a, 0x70, 0xa7, 0x67, 0xac, 0x5b, 0x23, 0x2e, 0x76, 0x0e, 0x79, 0x27, 0x6f, 0x21, 0x6f, 0x21,
		0x6f, 0x21, 0x6f, 0x21, 0x6f, 0x21, 0x6f, 0xc9, 0x8c, 0xb7, 0x4c, 0xa1, 0x8e, 0xb4, 0xe5, 0xd5,
		0x63, 0xcb, 0x13, 0xaa, 0x49, 0x59, 0x48, 0x59, 0x48, 0x59, 0x48, 0x59, 0x36, 0x91, 0xb2, 0x64,
		0xbd, 0xe0, 0x20, 0xf9, 0x62, 0x61, 0x4c, 0xe4, 0x2a, 0xdd, 0x95, 0x77, 0xf6, 0x9c, 0x6e, 0x1a,
		0x7a, 0x9e, 0xd8, 0x62, 0x69, 0xb2, 0xdb, 0xc9, 0x91, 0xad, 0x03, 0x0f, 0x02, 0x00, 0x61, 0x01,
		0x11, 0x0a, 0x20, 0xc1, 0x01, 0x13, 0x1c, 0x40, 0xc1, 0x01, 0x95, 0x1d, 0xc0, 0xb2, 0x04, 0x5c,
		0xf6, 0x73, 0x6e, 0xa0, 0xdc, 0x1b, 0x21, 0x07, 0x5f, 0x94, 0x8b, 0x2f, 0xfc, 0x6f, 0x04, 0xb6,
		0xb1, 0x34, 0x71, 0x72, 0x35, 0xc9, 0xd9, 0xc7, 0x00, 0xbc, 0x25, 0x4d, 0x8e, 0x2d, 0xb8, 0x8b,
		0xa5, 0xb5, 0x9e, 0x73, 0x7e, 0x62, 0x63, 0xcd, 0x27, 0x89, 0x16, 0x89, 0x16, 0x89, 0x16, 0x89,
		0x16, 0x89, 0xd6, 0x06, 0x10, 0xad, 0x81, 0xd2, 0x66, 0xbf, 0x04, 0xc0, 0xb3, 0x6c, 0xd2, 0xac,
		0x96, 0xd0, 0xd7, 0xd2, 0xfa, 0x51, 0x24, 0x76, 0x63, 0x66, 0x61, 0xd2, 0xff, 0xdb, 0x7a, 0xf0,
		0x4e, 0x8c, 0xf9, 0x5b, 0xf4, 0x07, 0xd2, 0x1e, 0xbc, 0xcf, 0xd9, 0xf3, 0x31, 0x12, 0x1d, 0xa3,
		0x02, 0x7d, 0xa4, 0xae, 0x55, 0x56, 0xfd, 0xd1, 0xff, 0xcc, 0x97, 0xe5, 0xb5, 0x30, 0xea, 0x56,
		0x66, 0xd2, 0x46, 0x1c, 0x38, 0xac, 0x3e, 0x9f, 0xca, 0xe2, 0x0e, 0x6f, 0x2a, 0x97, 0x4b, 0x07,
		0xe5, 0x83, 0x6a, 0xad, 0x74, 0x50, 0xe1, 0x9c, 0xce, 0xdb, 0x9c, 0x7e, 0xb3, 0x9d, 0xdf, 0x7e,
		0x45, 0x11, 0x21, 0x45, 0x11, 0xe1, 0xe6, 0x66, 0xa0, 0x95, 0xb9, 0x47, 0x29, 0xde, 0xcc, 0x1a,
		0x44, 0x61, 0x81, 0xc2, 0x02, 0x85, 0x05, 0x0a, 0x0b, 0x14, 0x16, 0x28, 0x2c, 0x2c, 0x19, 0x37,
		0x58, 0xc1, 0x29, 0xfc, 0x49, 0x05, 0x67, 0x8a, 0xb8, 0x4a, 0xc6, 0xc9, 0xf5, 0x3d, 0x8b, 0x38,
		0xd9, 0x3c, 0x1c, 0x6b, 0xfb, 0x5f, 0xe7, 0xbc, 0xc5, 0xd2, 0x3e, 0x58, 0x32, 0x2e, 0x32, 0x2e,
		0x32, 0x2e, 0x32, 0x2e, 0x32, 0xae, 0x0d, 0x60, 0x5c, 0x2a, 0xcc, 0xe8, 0x50, 0xd2, 0x3f, 0x22,
		0x5d, 0x07, 0x16, 0x6d, 0x98, 0x3c, 0x93, 0xad, 0x2f, 0xe7, 0x3c, 0x39, 0x96, 0xa1, 0x0c, 0x30,
		0x37, 0xe6, 0xe6, 0xc8, 0x3b, 0x00, 0x5b, 0xce, 0x84, 0x31, 0x32, 0xd2, 0xd6, 0xa7, 0x4b, 0x62,
		0xd0, 0xe8, 0x40, 0xfe, 0xab, 0xdf, 0x97, 0x45, 0xf7, 0xe0, 0x6a, 0x7c, 0x59, 0x1c, 0xbd, 0xfd,
		0x2a, 0x3d, 0xfc, 0x2e, 0x5d, 0xee, 0xb9, 0xe5, 0xc9, 0xdd, 0x52, 0xe5, 0x72, 0xcf, 0xad, 0x5c,
		0xed, 0xee, 0x7c, 0xfd, 0xfa, 0x76, 0xd9, 0xcf, 0xec, 0xfe, 0xda, 0x7f, 0x70, 0xac, 0xff, 0xef,
		0x5e, 0x21, 0x3c, 0xfe, 0xe6, 0x79, 0xe3, 0xbf, 0x70, 0x73, 0xe0, 0x7f, 0x3b, 0x59, 0xcd, 0x82,
		0xdd, 0xff, 0x00, 0xcc, 0x03, 0xbb, 0xa5, 0x95, 0xbf, 0x08, 0x13, 0x4f, 0x4e, 0xef, 0x21, 0x4c,
		0xe4, 0x04, 0x26, 0x46, 0xde, 0x2e, 0xdc, 0x5e, 0xdd, 0xfd, 0x78, 0xf5, 0xab, 0xf8, 0x57, 0xf9,
		0xe1, 0xfd, 0xee, 0xaf, 0xda, 0xc3, 0xec, 0xcd, 0xdf, 0x8b, 0xfe, 0xac, 0xf8, 0x57, 0xed, 0xe1,
		0xfd, 0x0b, 0xbf, 0xa9, 0x3e, 0xbc, 0xff, 0xc3, 0x7f, 0xa3, 0xf2, 0xb0, 0x33, 0xf7, 0xa7, 0xc3,
		0xfb, 0xa5, 0x97, 0x3e, 0x50, 0x7e, 0xe1, 0x03, 0xfb, 0x2f, 0x7d, 0x60, 0xff, 0x85, 0x0f, 0xbc,
		0x68, 0x52, 0xe9, 0x85, 0x0f, 0x54, 0x1e, 0x7e, 0xcf, 0xfd, 0xfd, 0xce, 0xe2, 0x3f, 0xad, 0x3e,
		0xec, 0xfe, 0x7e, 0xe9, 0x77, 0xb5, 0x87, 0xdf, 0xef, 0x77, 0x77, 0x09, 0x9c, 0xf0, 0xc0, 0x49,
		0xb7, 0xc8, 0xde, 0x2d, 0x48, 0x24, 0xb8, 0x46, 0x63, 0xf3, 0xa8, 0x9a, 0x23, 0xef, 0x8c, 0x0b,
		0xb7, 0x4e, 0x63, 0x91, 0x51, 0xac, 0x1c, 0xd8, 0xc1, 0x41, 0x56, 0x0e, 0x66, 0xac, 0x61, 0xe5,
		0xe0, 0x05, 0x83, 0x58, 0x39, 0x80, 0x44, 0x50, 0x56, 0x0e, 0xb8, 0x56, 0xa3, 0xf0, 0x27, 0x6b,
		0x35, 0x9e, 0xa2, 0xae, 0x92, 0xf1, 0xb3, 0x9f, 0xb9, 0x66, 0x23, 0xa3, 0x87, 0xa4, 0xf4, 0xad,
		0xe8, 0xab, 0xae, 0x1b, 0x49, 0x11, 0x07, 0xda, 0x3e, 0x15, 0x9b, 0xb1, 0x87, 0x2c, 0x8c, 0x2c,
		0x8c, 0x2c, 0x8c, 0x2c, 0x8c, 0x2c, 0x8c, 0x2c, 0x6c, 0x59, 0x24, 0xe9, 0x4a, 0x6d, 0x94, 0xb9,
		0x07, 0x61, 0x62, 0x16, 0xb7, 0xa8, 0x39, 0x8d, 0xc9, 0x50, 0x1c, 0x8a, 0x18, 0x20, 0x84, 0x4d,
		0x1f, 0x50, 0xe3, 0xf4, 0xef, 0xfa, 0x49, 0xe3, 0xc8, 0x6f, 0x35, 0x2f, 0xbe, 0x1c, 0xfb, 0xad,
		0xe3, 0xfa, 0x79, 0xf3, 0xd4, 0x76, 0x34, 0x1b, 0xed, 0x2c, 0x8c, 0x21, 0x04, 0x78, 0x90, 0xbd,
		0x96, 0xb3, 0x4f, 0xab, 0x7e, 0xee, 0x9f, 0x34, 0x9b, 0x67, 0x0e, 0x77, 0xc5, 0xc2, 0x3e, 0xa2,
		0x0f, 0x27, 0x17, 0xe7, 0x5f, 0x8e, 0x5b, 0x7c, 0x4e, 0xe8, 0xcf, 0xa9, 0x79, 0xfa, 0xf1, 0xf8,
		0x88, 0x4f, 0x08, 0xf7, 0x09, 0x35, 0x5b, 0x8d, 0x4f, 0x8d, 0xd3, 0xfa, 0x97, 0x66, 0xcb, 0xd9,
		0xf2, 0x1d, 0xd3, 0x57, 0xdb, 0xc6, 0x9f, 0xb7, 0x42, 0xfd, 0xe9, 0x8b, 0xd8, 0xb8, 0x37, 0x41,
		0x57, 0xf5, 0x94, 0xec, 0xda, 0x17, 0x7f, 0x9e, 0x9b, 0x43, 0xed, 0x87, 0xda, 0x0f, 0xb5, 0x1f,
		0x6a, 0x3f, 0xd4, 0x7e, 0xa8, 0xfd, 0x2c, 0x19, 0x37, 0x8c, 0xba, 0x91, 0x46, 0x75, 0x7e, 0xc4,
		0xd5, 0x32, 0x80, 0xf6, 0x63, 0x71, 0xc1, 0xad, 0x73, 0xa1, 0xc7, 0x8d, 0x88, 0x1c, 0x2d, 0x74,
		0x10, 0xcb, 0x4e, 0xa0, 0xbb, 0x56, 0xf7, 0x33, 0xb1, 0x37, 0xdc, 0x64, 0x20, 0xd8, 0x1b, 0xee,
		0x1f, 0xec, 0x61, 0x1f, 0xad, 0x1c, 0xe5, 0xee, 0x98, 0xbd, 0xe1, 0x8a, 0xef, 0xca, 0xe5, 0x6a,
		0xad, 0x5c, 0xde, 0xab, 0xed, 0xd7, 0xf6, 0x0e, 0x2a, 0x95, 0x62, 0xb5, 0xc8, 0x2e, 0x71, 0xb9,
		0x9b, 0xdd, 0x5c, 0x81, 0x4c, 0xcd, 0x63, 0xcd, 0x93, 0xdc, 0xd6, 0x59, 0xb7, 0x73, 0x24, 0xd5,
		0xce, 0x99, 0xb7, 0x89, 0x19, 0x47, 0xb2, 0x27, 0x06, 0x7d, 0x63, 0x95, 0x8b, 0x39, 0x7b, 0x76,
		0x72, 0xb3, 0x2b, 0x6a, 0x4b, 0x56, 0x0c, 0xa0, 0xb6, 0x34, 0x6b, 0x0d, 0xb5, 0xa5, 0x17, 0x0c,
		0xa2, 0xb6, 0x04, 0xc9, 0x4e, 0xa8, 0x2d, 0xb1, 0xc5, 0x3f, 0x65, 0x1c, 0xca, 0x38, 0x4c, 0x74,
		0x29, 0xe3, 0x64, 0x31, 0x95, 0xd9, 0xe2, 0x9f, 0xe2, 0x0d, 0xc5, 0x1b, 0x8a, 0x37, 0x93, 0x49,
		0x3e, 0xd9, 0x1c, 0x14, 0x0c, 0x8c, 0xb4, 0x2f, 0xe0, 0x3c, 0x35, 0x86, 0x82, 0x02, 0x05, 0x05,
		0x0a, 0x0a, 0x14, 0x14, 0x28, 0x28, 0x50, 0x50, 0x58, 0x32, 0x6e, 0xb4, 0x83, 0xa0, 0x2f, 0x85,
		0x46, 0xd8, 0xa4, 0x54, 0xdc, 0x16, 0xea, 0xf2, 0x66, 0x83, 0xa7, 0xb8, 0x53, 0xd7, 0x3a, 0x30,
		0x62, 0x98, 0xa4, 0x58, 0x99, 0xe0, 0x4e, 0xdc, 0xf9, 0x26, 0x6f, 0x44, 0x38, 0xd9, 0xfe, 0xef,
		0x05, 0xa1, 0xd4, 0x9d, 0x11, 0x51, 0x70, 0xb5, 0x34, 0x3f, 0x83, 0xe8, 0x87, 0xab, 0x74, 0x6c,
		0x84, 0xee, 0x48, 0x6f, 0xf6, 0x46, 0x3c, 0x77, 0xc7, 0x0b, 0xa3, 0xc0, 0x04, 0x9d, 0xa0, 0x1f,
		0x27, 0x57, 0x5e, 0xfb, 0x3a, 0xf4, 0x22, 0xd5, 0xf6, 0x44, 0x4f, 0xb9, 0xb1, 0xe8, 0xa9, 0x38,
		0xb9, 0xf2, 0x46, 0x4d, 0x17, 0xe3, 0xc8, 0x48, 0x37, 0x0c, 0xfa, 0xaa, 0x73, 0xef, 0xf5, 0xc7,
		0xa1, 0xd5, 0x1b, 0xd1, 0xb4, 0x78, 0xfc, 0x36, 0x6e, 0x2e, 0x60, 0xc1, 0xe1, 0x9c, 0xd8, 0x44,
		0x83, 0x8e, 0xd1, 0x13, 0xcf, 0x6f, 0x26, 0x23, 0x73, 0x3a, 0xfe, 0xbf, 0x6e, 0x4c, 0xfe, 0xa7,
		0xfd, 0x99, 0x9f, 0xe3, 0xd9, 0x1b, 0xfe, 0xd9, 0x74, 0x54, 0x92, 0x2b, 0xff, 0xf0, 0x3a, 0xf4,
		0x5b, 0xaa, 0xed, 0xd7, 0x7b, 0xea, 0x7c, 0x38, 0x28, 0xd3, 0x0b, 0xbf, 0x11, 0xde, 0x56, 0xcf,
		0x23, 0x23, 0xcf, 0x46, 0x23, 0xe2, 0x9f, 0x04, 0x9d, 0xe1, 0x9f, 0xb5, 0x46, 0x03, 0x32, 0x7e,
		0xf3, 0xcf, 0x47, 0x03, 0xf2, 0x66, 0x33, 0x7d, 0x30, 0x43, 0xff, 0x73, 0x06, 0xfa, 0x87, 0x0e,
		0x7e, 0x6a, 0x57, 0x18, 0x13, 0xa9, 0xf6, 0x70, 0x84, 0x33, 0xf7, 0xc1, 0x47, 0xa5, 0x7a, 0xde,
		0x96, 0x8c, 0x23, 0xd1, 0x14, 0x57, 0x32, 0xfe, 0x5a, 0x5b, 0x69, 0x89, 0xcd, 0x74, 0x04, 0x23,
		0x0d, 0xb1, 0x9d, 0x7e, 0xc0, 0xa4, 0x1d, 0x30, 0xe9, 0x06, 0x4c, 0x9a, 0xb1, 0xd9, 0x9c, 0xeb,
		0x48, 0x45, 0x76, 0xdc, 0x7e, 0x2e, 0xc8, 0xdb, 0xd7, 0xc5, 0xe6, 0x4d, 0xb2, 0xab, 0x8e, 0x15,
		0xa9, 0x8e, 0x51, 0x1d, 0xa3, 0x3a, 0x46, 0x75, 0x8c, 0xea, 0x18, 0x3a, 0x9c, 0x25, 0x06, 0x0c,
		0xb1, 0xc3, 0x35, 0xb6, 0x35, 0xba, 0x67, 0x11, 0xec, 0xd1, 0x24, 0xcb, 0xae, 0x61, 0xb7, 0xe8,
		0x03, 0x03, 0x6f, 0x48, 0x30, 0x87, 0x09, 0x77, 0x68, 0xb0, 0x07, 0x0b, 0x7f, 0xb0, 0x30, 0x08,
		0x0b, 0x87, 0x76, 0x61, 0xd1, 0x32, 0x3c, 0x26, 0x4f, 0xe5, 0x0b, 0x02, 0x40, 0x15, 0xb0, 0x7a,
		0x0f, 0xcf, 0x65, 0x5f, 0x35, 0x8c, 0xf3, 0x86, 0xa6, 0xbd, 0x88, 0xc7, 0x8d, 0x85, 0x1f, 0xc1,
		0x7c, 0x4b, 0x57, 0x29, 0x59, 0x74, 0x1d, 0x67, 0x5c, 0x7e, 0x81, 0x21, 0x76, 0xb6, 0xaa, 0x41,
		0x40, 0x5a, 0x05, 0x49, 0x1d, 0x49, 0x1d, 0x49, 0x1d, 0x49, 0x1d, 0x49, 0x9d, 0x7d, 0xed, 0xe3,
		0xb9, 0x06, 0xd2, 0x97, 0x40, 0x1b, 0x4c, 0x9e, 0x49, 0x21, 0x43, 0xcb, 0x40, 0x1c, 0x09, 0x43,
		0x11, 0x81, 0x03, 0x51, 0x44, 0x30, 0xc5, 0x06, 0x55, 0x54, 0x70, 0x85, 0x07, 0x59, 0x78, 0xb0,
		0x85, 0x07, 0x5d, 0x0c, 0xf0, 0x05, 0x01, 0x61, 0x3c, 0x85, 0x65, 0x2e, 0x6e, 0x0d, 0x94, 0x36,
		0xc5, 0x2a, 0x52, 0xcc, 0x9a, 0xa0, 0x60, 0x15, 0xc8, 0x24, 0x8c, 0x7d, 0xc2, 0xb3, 0x2f, 0xac,
		0x98, 0x5e, 0x40, 0xdb, 0x47, 0x3c, 0x67, 0x1c, 0xd8, 0xbe, 0xe2, 0x39, 0xfb, 0x50, 0xf7, 0x64,
		0xce, 0xc7, 0x0e, 0xb4, 0x3d, 0x9a, 0xa0, 0x61, 0xff, 0xb9, 0x6b, 0x88, 0x3b, 0x7c, 0xd7, 0xa8,
		0x56, 0x2a, 0xfb, 0x15, 0xba, 0xc7, 0xa6, 0xbb, 0xc7, 0x1b, 0x5a, 0xb3, 0xe8, 0x75, 0x45, 0xce,
		0xfa, 0x64, 0x1a, 0xcb, 0x3b, 0x13, 0x09, 0x77, 0xa0, 0x63, 0x23, 0xda, 0x7d, 0x30, 0xf6, 0x1a,
		0xc9, 0x9e, 0x8c, 0xa4, 0xee, 0x90, 0x94, 0x2d, 0x41, 0xf5, 0x5b, 0x1f, 0x3f, 0x14, 0xca, 0xa5,
		0x5a, 0xb1, 0xe0, 0x16, 0xea, 0x85, 0xc3, 0x20, 0xea, 0xca, 0xa8, 0xf0, 0x49, 0x18, 0xf9, 0x53,
		0xdc, 0x17, 0xa6, 0xdb, 0x6f, 0x0a, 0xe5, 0xc2, 0xce, 0xe1, 0xa7, 0x33, 0xb7, 0xbc, 0xeb, 0x00,
		0x62, 0x28, 0xa8, 0x9c, 0xb1, 0x48, 0xd6, 0x78, 0x9c, 0xa1, 0xa0, 0x28, 0x85, 0xae, 0x70, 0x2c,
		0x54, 0x3a, 0x96, 0x9c, 0xc2, 0x44, 0x5e, 0x22, 0x6f, 0xae, 0xc6, 0x03, 0xa1, 0x81, 0x12, 0xce,
		0x9a, 0xd5, 0x39, 0x04, 0x43, 0x59, 0xbb, 0xfa, 0x18, 0xf0, 0x59, 0xb1, 0xf9, 0x47, 0x83, 0x58,
		0xb1, 0xd9, 0x10, 0x8a, 0xc3, 0x8a, 0xcd, 0x5a, 0x79, 0x0c, 0x2b, 0x36, 0xe8, 0xd9, 0x2f, 0x76,
		0xc5, 0xe6, 0x1d, 0x60, 0xc1, 0xa6, 0xc2, 0x82, 0x4d, 0xfe, 0xb4, 0x01, 0x16, 0x6c, 0x5e, 0x61,
		0x1f, 0x15, 0xe9, 0x0d, 0x8b, 0xfa, 0xcf, 0x5d, 0x23, 0x0f, 0x05, 0x9b, 0x52, 0x85, 0xe5, 0x9a,
		0x8d, 0x77, 0x0e, 0x8a, 0x46, 0x0b, 0x5f, 0x2c, 0xd7, 0x3c, 0x9d, 0xc6, 0x2c, 0xd7, 0x6c, 0x08,
		0x25, 0x63, 0xb9, 0xc6, 0x82, 0xa6, 0xc1, 0x72, 0x4d, 0x1a, 0x32, 0x07, 0xcb, 0x35, 0x44, 0xde,
		0x4d, 0x1e, 0x0f, 0x98, 0x72, 0xcd, 0xed, 0x24, 0x1d, 0x40, 0xac, 0xd7, 0x8c, 0x6d, 0x63, 0xc1,
		0x66, 0x91, 0x39, 0x2c, 0xd8, 0x2c, 0x31, 0x9b, 0x58, 0xb0, 0x59, 0x91, 0xdc, 0xb0, 0x60, 0xf3,
		0x6a, 0x26, 0xc3, 0x82, 0x0d, 0x7a, 0xfe, 0x8b, 0x5b, 0xb0, 0x69, 0x2b, 0x2d, 0xa2, 0x7b, 0xc0,
		0x8a, 0xcd, 0x01, 0x90, 0x49, 0x27, 0x52, 0x5f, 0x8f, 0x9a, 0x9b, 0x50, 0x1f, 0xf8, 0x97, 0x91,
		0xca, 0x45, 0xc9, 0xa6, 0x48, 0x55, 0xfa, 0x95, 0xc1, 0x83, 0x25, 0x9b, 0x15, 0x5c, 0x83, 0x7b,
		0x6c, 0xe8, 0x1e, 0x24, 0x67, 0xc8, 0xd6, 0xb0, 0x68, 0xf3, 0x74, 0x1a, 0xb3, 0x68, 0xb3, 0x21,
		0xa4, 0x8c, 0x45, 0x1b, 0x0b, 0xba, 0x06, 0x8b, 0x36, 0x69, 0x48, 0x1d, 0x2c, 0xda, 0x10, 0x79,
		0x37, 0x79, 0x3c, 0x10, 0x8a, 0x36, 0xf2, 0xce, 0x48, 0xdd, 0x95, 0x5d, 0xbc, 0x92, 0x4d, 0x62,
		0x19, 0x0b, 0x36, 0x8b, 0xcc, 0x61, 0xc1, 0x66, 0x89, 0xb9, 0xc4, 0x82, 0xcd, 0x8a, 0xc4, 0x86,
		0x05, 0x9b, 0x57, 0xb3, 0x18, 0x16, 0x6c, 0xd0, 0x73, 0x5f, 0xe0, 0x82, 0x8d, 0xf5, 0xa3, 0x8c,
		0x5f, 0x82, 0x41, 0x4b, 0x47, 0x1b, 0x53, 0x3e, 0xa1, 0x7c, 0x42, 0xf9, 0x84, 0xf2, 0x09, 0x09,
		0x07, 0xe5, 0x13, 0xca, 0x27, 0x94, 0x4f, 0x6c, 0xfb, 0x5b, 0x10, 0x1a, 0x15, 0x68, 0xd1, 0xc7,
		0x93, 0x4f, 0x12, 0xcb, 0x28, 0x9f, 0x50, 0x3e, 0xa1, 0x7c, 0x42, 0xf9, 0x84, 0xf2, 0x09, 0xe5,
		0x13, 0xca, 0x27, 0x94, 0x4f, 0x28, 0x9f, 0x50, 0x3e, 0xa1, 0x7c, 0x42, 0xf9, 0x84, 0x84, 0x83,
		0xf2, 0x09, 0xe5, 0x13, 0xca, 0x27, 0x36, 0xfd, 0x2d, 0x14, 0x91, 0x51, 0x88, 0xea, 0xc9, 0xd4,
		0x30, 0x8a, 0x27, 0x14, 0x4f, 0x28, 0x9e, 0x50, 0x3c, 0xa1, 0x78, 0x42, 0xf1, 0x84, 0xe2, 0x09,
		0xc5, 0x13, 0x8a, 0x27, 0x14, 0x4f, 0x28, 0x9e, 0x50, 0x3c, 0x21, 0xe1, 0xa0, 0x78, 0x42, 0xf1,
		0x84, 0xe2, 0x89, 0x4d, 0x7f, 0x33, 0x91, 0xd0, 0xb1, 0x9a, 0xec, 0x3d, 0x07, 0xd3, 0x4f, 0x9e,
		0xd8, 0x46, 0x09, 0x85, 0x12, 0x0a, 0x25, 0x14, 0x4a, 0x28, 0x94, 0x50, 0x28, 0xa1, 0x50, 0x42,
		0xa1, 0x84, 0x42, 0x09, 0x85, 0x12, 0x0a, 0x25, 0x14, 0x4a, 0x28, 0x24, 0x1c, 0x94, 0x50, 0x28,
		0xa1, 0x6c, 0xb1, 0x84, 0xf2, 0x66, 0x8b, 0x99, 0x87, 0x53, 0xd7, 0x3a, 0x30, 0xc2, 0xa8, 0x00,
		0xa3, 0x85, 0xaa, 0x13, 0x77, 0xbe, 0xc9, 0x1b, 0x11, 0x8a, 0x51, 0xe7, 0x5b, 0xc7, 0x0b, 0x42,
		0xa9, 0x3b, 0x23, 0x89, 0xc2, 0xd5, 0xd2, 0xfc, 0x0c, 0xa2, 0x1f, 0xae, 0x1a, 0xb2, 0x23, 0xdd,
		0x91, 0xde, 0xec, 0x8d, 0x78, 0xee, 0x8e, 0x17, 0x4e, 0xe2, 0x53, 0x9c, 0x5c, 0x79, 0xed, 0xeb,
		0xd0, 0x8b, 0x54, 0xdb, 0x13, 0x3d, 0xe5, 0xc6, 0xa2, 0xa7, 0xe2, 0xe4, 0xca, 0x53, 0xe1, 0x6d,
		0xd5, 0x8d, 0x23, 0x23, 0xdd, 0x30, 0xe8, 0xab, 0xce, 0xbd, 0xd7, 0x1f, 0x27, 0x5d, 0x5e, 0x14,
		0x0c, 0x8c, 0x8c, 0xc7, 0x6f, 0xde, 0x40, 0xff, 0xd0, 0xc1, 0x4f, 0xed, 0x0a, 0x63, 0x22, 0xd5,
		0x1e, 0xfd, 0x62, 0xee, 0x96, 0x17, 0x1b, 0x61, 0x10, 0x60, 0xc8, 0x89, 0x4d, 0x34, 0xe8, 0x18,
		0x3d, 0xa1, 0x23, 0xcd, 0x64, 0x38, 0x4f, 0xc7, 0x43, 0xd5, 0x98, 0x8c, 0x94, 0x3f, 0xf3, 0x73,
		0x3c, 0x7b, 0xc3, 0x9f, 0x86, 0xfa, 0x38, 0xb9, 0xf2, 0x0f, 0xaf, 0x43, 0xbf, 0xa5, 0xda, 0x7e,
		0xbd, 0xa7, 0xce, 0x87, 0x23, 0x39, 0xbd, 0xf0, 0x1b, 0xe1, 0x6d, 0xf5, 0x3c, 0x32, 0xf2, 0x6c,
		0x34, 0x8c, 0xfe, 0x49, 0xd0, 0x19, 0xfe, 0x59, 0x6b, 0x34, 0x8a, 0xe3, 0x37, 0xff, 0x62, 0x3c,
		0x64, 0xf5, 0x64, 0x10, 0xe7, 0xee, 0xf8, 0xe7, 0xa3, 0x31, 0x7c, 0xb3, 0x9d, 0xb1, 0xc1, 0xce,
		0x37, 0x5b, 0x8a, 0x46, 0x43, 0x12, 0x87, 0x70, 0x9a, 0xb9, 0x73, 0xa2, 0x62, 0x33, 0x9c, 0x80,
		0x56, 0x63, 0xa1, 0xf3, 0x59, 0xe9, 0xe3, 0xbe, 0x1c, 0xf2, 0x2f, 0xcb, 0x0d, 0x67, 0x9d, 0xcf,
		0xe2, 0xee, 0x89, 0x25, 0xc5, 0x77, 0xe5, 0x72, 0xb5, 0x56, 0x2e, 0xef, 0xd5, 0xf6, 0x6b, 0x7b,
		0x07, 0x95, 0x4a, 0xb1, 0x5a, 0xb4, 0xd8, 0xb6, 0xd7, 0x69, 0x0e, 0xa9, 0xa8, 0xec, 0x1e, 0x0e,
		0xa7, 0x8e, 0x1e, 0xf4, 0xfb, 0x08, 0xa6, 0x5c, 0xc4, 0x32, 0xb2, 0xda, 0x81, 0xd7, 0x96, 0x07,
		0x83, 0xf0, 0x88, 0x0d, 0xe1, 0x0f, 0x16, 0x99, 0x43, 0x8e, 0x19, 0x83, 0x1d, 0xae, 0x90, 0x3d,
		0x52, 0x67, 0xfb, 0x8d, 0x19, 0x47, 0x14, 0xdb, 0x91, 0x24, 0x97, 0x11, 0xc4, 0x42, 0xbc, 0xc8,
		0x4f, 0x9c, 0xc8, 0x36, 0x2c, 0x64, 0xe7, 0x9c, 0xd9, 0x7c, 0x53, 0x46, 0xee, 0x3f, 0x4d, 0x01,
		0x86, 0x7e, 0xe7, 0xaa, 0x6e, 0x41, 0xea, 0x6e, 0x18, 0x28, 0x6d, 0x0a, 0x9d, 0xa0, 0x1f, 0x44,
		0x19, 0xcd, 0x6f, 0x3b, 0xfc, 0xdf, 0x1e, 0xdf, 0x87, 0xe2, 0xf7, 0x16, 0xf9, 0xbc, 0x45, 0xfe,
		0x9e, 0x95, 0x7b, 0x59, 0x42, 0x55, 0x7c, 0x34, 0xcd, 0x10, 0x3a, 0x51, 0x21, 0x33, 0x1b, 0x80,
		0x4c, 0x1f, 0xae, 0xd2, 0xfd, 0x86, 0x94, 0x3d, 0x35, 0x6b, 0x0f, 0x45, 0xf6, 0xcc, 0x0c, 0x7c,
		0x12, 0xcf, 0x17, 0xd3, 0xf5, 0xc2, 0xf4, 0x7c, 0x23, 0x9d, 0x7f, 0x39, 0x25, 0x6f, 0xcb, 0xca,
		0xcb, 0x20, 0xbd, 0x2b, 0x45, 0xb7, 0x02, 0x72, 0xa7, 0x74, 0xfc, 0x68, 0xfd, 0xb3, 0x3c, 0x85,
		0x19, 0xee, 0x68, 0xa9, 0xae, 0xbf, 0xb5, 0x83, 0x28, 0x4e, 0x6d, 0x72, 0x27, 0x2b, 0x9b, 0x1e,
		0xbf, 0x2a, 0x25, 0x4f, 0x9d, 0xae, 0x10, 0x4c, 0xe9, 0x9f, 0x4f, 0x7b, 0xe1, 0x7b, 0x16, 0x0b,
		0xd9, 0xb3, 0x5d, 0x98, 0x9e, 0xd5, 0x52, 0xb0, 0xcc, 0x17, 0x8e, 0x67, 0xbe, 0x2e, 0x2b, 0xf3,
		0x85, 0xdd, 0xf9, 0xc2, 0xe8, 0x23, 0x95, 0xae, 0x00, 0x93, 0xc4, 0xae, 0xf4, 0xa7, 0xf2, 0x6c,
		0xb4, 0x4c, 0x7b, 0x26, 0xa7, 0x1b, 0x34, 0x33, 0x0b, 0x9e, 0x59, 0x06, 0x51, 0x3b, 0xc1, 0x34,
		0xeb, 0xa0, 0x6a, 0x2d, 0xb8, 0x5a, 0x0b, 0xb2, 0xd6, 0x82, 0xed, 0x66, 0xc8, 0x11, 0x69, 0x07,
		0xe1, 0xe4, 0x8b, 0x44, 0xf7, 0xfb, 0xe8, 0x99, 0x28, 0xed, 0x86, 0x41, 0x6c, 0xb2, 0xf3, 0x84,
		0xa9, 0xbf, 0xcf, 0x1a, 0x90, 0x55, 0xc1, 0x23, 0x93, 0x50, 0x9d, 0x79, 0xc8, 0xb6, 0x11, 0xba,
		0xed, 0x86, 0x70, 0x5b, 0xa1, 0xdc, 0x7a, 0x48, 0xb7, 0x1e, 0xda, 0xad, 0x87, 0xf8, 0x6c, 0x42,
		0x7d, 0x46, 0x21, 0x3f, 0xf3, 0xd0, 0x9f, 0x7c, 0xe1, 0x44, 0xf5, 0xcd, 0xdc, 0x71, 0xa6, 0xe1,
		0x22, 0x33, 0xd5, 0xd9, 0x22, 0x00, 0x58, 0x03, 0x02, 0x9b, 0x80, 0x80, 0x01, 0x0c, 0xb6, 0x01,
		0x02, 0x06, 0x28, 0x60, 0x00, 0x03, 0x06, 0x38, 0xb2, 0x05, 0x90, 0x8c, 0x81, 0xc4, 0x1a, 0xa0,
		0x3c, 0x07, 0x16, 0x7b, 0xfe, 0xf6, 0x0c, 0x5f, 0x6c, 0xf9, 0x9a, 0x1d, 0x98, 0xb1, 0x0e, 0x37,
		0x08, 0xb0, 0x83, 0x05, 0x3f, 0x28, 0x30, 0x04, 0x07, 0x47, 0x70, 0xb0, 0x04, 0x07, 0x4f, 0x76,
		0x60, 0xca, 0x12, 0x5c, 0x59, 0x87, 0xad, 0xc4, 0x80, 0xf1, 0xda, 0x57, 0xeb, 0x7e, 0x3a, 0x8d,
		0x5e, 0x59, 0x2e, 0xc5, 0xfd, 0x37, 0x38, 0xb3, 0xdc, 0xae, 0x0c, 0xa6, 0x6f, 0x1a, 0x52, 0xbf,
		0x34, 0xcc, 0x3e, 0x69, 0x68, 0x1d, 0x4c, 0x60, 0xfb, 0xa2, 0xc1, 0xb6, 0x27, 0x81, 0xed, 0x83,
		0xb6, 0xdd, 0xad, 0x23, 0x60, 0xfa, 0x9d, 0x25, 0x71, 0xa7, 0x2f, 0x45, 0x2f, 0x92, 0x3d, 0x84,
		0xa0, 0x33, 0xcd, 0xba, 0x6a, 0x00, 0xb6, 0x9c, 0x4d, 0x56, 0x21, 0xbe, 0x7d, 0x3b, 0xee, 0x4b,
		0xe1, 0x8d, 0x81, 0x7c, 0x5b, 0x3b, 0x2b, 0x58, 0xcc, 0xbc, 0xa6, 0xbb, 0x9a, 0x70, 0x38, 0x5d,
		0x62, 0x11, 0x69, 0x1d, 0x69, 0x1d, 0x69, 0x1d, 0x69, 0x1d, 0x69, 0x1d, 0x69, 0x1d, 0x69, 0x5d,
		0x2e, 0x69, 0x5d, 0x82, 0xe5, 0x64, 0x76, 0x99, 0x3f, 0x8c, 0xc9, 0xbe, 0x75, 0x1c, 0x62, 0x37,
		0x35, 0x88, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc, 0x2e,
		0x97, 0xbc, 0x6e, 0x0a, 0xe5, 0xa4, 0x75, 0x99, 0x3f, 0x8b, 0x71, 0x1f, 0x5f, 0x18, 0x52, 0x87,
		0xd0, 0x56, 0xd8, 0xf2, 0x82, 0x22, 0x52, 0x3a, 0x52, 0x3a, 0x52, 0x3a, 0x52, 0x3a, 0x52, 0x3a,
		0xfb, 0x0b, 0x94, 0x12, 0x43, 0x46, 0x8d, 0xbb, 0x95, 0xee, 0xca, 0x3b, 0xbc, 0x23, 0x20, 0x9f,
		0xd8, 0xc6, 0x23, 0x20, 0x91, 0x81, 0x14, 0x11, 0x50, 0xb1, 0x81, 0x15, 0x15, 0x60, 0xe1, 0x81,
		0x16, 0x1e, 0x70, 0xe1, 0x81, 0x17, 0x03, 0x80, 0x41, 0x80, 0x18, 0x4f, 0x63, 0x01, 0xd6, 0x5a,
		0x10, 0x35, 0x97, 0x45, 0xda, 0xcb, 0x3f, 0xfc, 0x37, 0xa2, 0x14, 0xb1, 0x34, 0x71, 0x72, 0x35,
		0x51, 0x6a, 0xc6, 0x34, 0x83, 0x07, 0x6b, 0xa1, 0x38, 0xa5, 0xd3, 0x96, 0xb1, 0x71, 0x27, 0x5d,
		0xf8, 0xc0, 0x78, 0xe9, 0xa3, 0x69, 0xa4, 0xa5, 0xa4, 0xa5, 0xa4, 0xa5, 0xa4, 0xa5, 0xa4, 0xa5,
		0xa4, 0xa5, 0x5b, 0x46, 0x4b, 0x79, 0x32, 0x39, 0x69, 0xdc, 0x1f, 0x3c, 0x13, 0x8c, 0x8d, 0x90,
		0x73, 0xb3, 0x17, 0x61, 0x43, 0x24, 0xe9, 0x1b, 0xe9, 0x1b, 0xe9, 0x1b, 0xe9, 0x1b, 0xe9, 0x1b,
		0xe9, 0x5b, 0xe6, 0x71, 0x6b, 0xa0, 0xb4, 0xd9, 0x2f, 0x01, 0xb2, 0x37, 0x24, 0x4d, 0xb1, 0x25,
		0xf4, 0xf5, 0x70, 0xb4, 0x2e, 0xa1, 0x62, 0x00, 0x56, 0x4c, 0x2f, 0x4c, 0xce, 0x41, 0x83, 0x03,
		0x9b, 0xc4, 0xb8, 0xbf, 0x45, 0x7f, 0x20, 0x71, 0xe8, 0xcc, 0x9c, 0x7d, 0x1f, 0x23, 0xd1, 0x31,
		0x2a, 0xd0, 0x47, 0xea, 0x5a, 0xd9, 0x3e, 0x37, 0xfa, 0x9f, 0x63, 0x87, 0xbc, 0x16, 0x46, 0xdd,
		0x4a, 0xab, 0xc7, 0x24, 0xe7, 0x20, 0xec, 0x3f, 0x77, 0x0d, 0x71, 0x87, 0xef, 0x1a, 0xe5, 0xd2,
		0x41, 0xf9, 0xa0, 0x5a, 0x2b, 0x1d, 0x54, 0xe8, 0x23, 0x9b, 0xee, 0x23, 0x6f, 0x68, 0xcd, 0xa2,
		0xd7, 0x15, 0x45, 0x23, 0x94, 0x18, 0xea, 0x74, 0x82, 0x9b, 0x9b, 0x81, 0x56, 0xe6, 0x1e, 0x75,
		0x65, 0xda, 0xac, 0x81, 0x14, 0x92, 0x16, 0x99, 0x43, 0x21, 0x69, 0x89, 0x29, 0x45, 0x21, 0x69,
		0xa9, 0x99, 0x4e, 0x21, 0xe9, 0x95, 0x06, 0x52, 0x48, 0xca, 0x51, 0x46, 0xc1, 0xe5, 0x69, 0x2b,
		0xc0, 0x60, 0x0e, 0x97, 0xa7, 0x4d, 0x79, 0x85, 0x92, 0x71, 0x72, 0x7d, 0xcf, 0x15, 0x6a, 0x98,
		0x2c, 0x15, 0xa6, 0x25, 0xd8, 0x9c, 0x4f, 0x82, 0xb4, 0x06, 0x23, 0x2f, 0x25, 0x2f, 0x25, 0x2f,
		0x25, 0x2f, 0x25, 0x2f, 0x25, 0x2f, 0xcd, 0x3c, 0x6e, 0xa9, 0xd0, 0x15, 0xdd, 0x6e, 0x24, 0xe3,
		0x18, 0x91, 0x9a, 0x1e, 0x00, 0xd9, 0x34, 0x79, 0x86, 0x2c, 0x72, 0xfe, 0xf1, 0xcc, 0xba, 0x2d,
		0x03, 0xce, 0xad, 0xb9, 0x39, 0xf6, 0x0e, 0xd0, 0xb6, 0x33, 0x61, 0x8c, 0x8c, 0x34, 0xdc, 0x74,
		0x4b, 0x0c, 0xdc, 0xb9, 0xdc, 0x73, 0x0f, 0xae, 0x7e, 0x5f, 0x16, 0xdd, 0x83, 0xab, 0xf1, 0x65,
		0x71, 0xf4, 0xf6, 0xab, 0xf4, 0xf0, 0xbb, 0x74, 0xb9, 0xe7, 0x96, 0x27, 0x77, 0x4b, 0x95, 0xcb,
		0x3d, 0xb7, 0x72, 0xb5, 0xbb, 0xf3, 0xf5, 0xeb, 0xdb, 0x65, 0x3f, 0xb3, 0xfb, 0x6b, 0xff, 0xc1,
		0x81, 0xfb, 0xdf, 0xbf, 0x42, 0x9c, 0x2e, 0xcd, 0xf3, 0xc6, 0x7f, 0xe1, 0xe7, 0xcc, 0xff, 0x76,
		0xb2, 0x9a, 0x35, 0xbb, 0xff, 0x01, 0x9c, 0x37, 0x58, 0x05, 0xc5, 0xbf, 0x08, 0x63, 0x7f, 0x0c,
		0x63, 0x55, 0xc2, 0xd8, 0xa6, 0xc2, 0xd8, 0x28, 0xba, 0x08, 0xb7, 0x57, 0x77, 0x3f, 0x5e, 0xfd,
		0x2a, 0xfe, 0x55, 0x7e, 0x78, 0xbf, 0xfb, 0xab, 0xf6, 0x30, 0x7b, 0xf3, 0xf7, 0xa2, 0x3f, 0x2b,
		0xfe, 0x55, 0x7b, 0x78, 0xff, 0xc2, 0x6f, 0xaa, 0x0f, 0xef, 0xff, 0xf0, 0xdf, 0xa8, 0x3c, 0xec,
		0xcc, 0xfd, 0xe9, 0xf0, 0x7e, 0xe9, 0xa5, 0x0f, 0x94, 0x5f, 0xf8, 0xc0, 0xfe, 0x4b, 0x1f, 0xd8,
		0x7f, 0xe1, 0x03, 0x2f, 0x9a, 0x54, 0x7a, 0xe1, 0x03, 0x95, 0x87, 0xdf, 0x73, 0x7f, 0xbf, 0xb3,
		0xf8, 0x4f, 0xab, 0x0f, 0xbb, 0xbf, 0x5f, 0xfa, 0x5d, 0xed, 0xe1, 0xf7, 0xfb, 0xdd, 0x5d, 0x02,
		0xfb, 0xc6, 0x01, 0x3b, 0xdd, 0x28, 0x7b, 0x37, 0x22, 0xd1, 0xc9, 0x85, 0x0e, 0x55, 0xe0, 0xca,
		0x29, 0x24, 0xea, 0xe9, 0xc8, 0x3b, 0xe3, 0xc2, 0xaf, 0x9e, 0x5a, 0x64, 0x24, 0x2b, 0x55, 0x8b,
		0xcc, 0x61, 0xa5, 0x6a, 0x89, 0x69, 0xc5, 0x4a, 0xd5, 0x52, 0x33, 0x9d, 0x95, 0xaa, 0x57, 0x1a,
		0xc8, 0x4a, 0x55, 0x8e, 0x04, 0x19, 0xae, 0xa0, 0x5a, 0x45, 0x7b, 0xc9, 0xdf, 0x0a, 0xaa, 0xa7,
		0xdc, 0x42, 0xc9, 0xf8, 0xd9, 0xcf, 0x5c, 0x49, 0x05, 0xca, 0x5a, 0x95, 0xbe, 0x15, 0x7d, 0xd5,
		0x75, 0x23, 0x29, 0xe2, 0x40, 0xe3, 0x11, 0xd6, 0x19, 0xfb, 0xc8, 0x55, 0xc9, 0x55, 0xc9, 0x55,
		0xc9, 0x55, 0xc9, 0x55, 0xc9, 0x55, 0xb7, 0x8c, 0xab, 0xaa, 0xae, 0xd4, 0x46, 0x99, 0x7b, 0x50,
		0xbe, 0x0a, 0xb4, 0x7d, 0xd9, 0x69, 0x4c, 0x86, 0xea, 0x50, 0xc4, 0x80, 0x21, 0x75, 0xfa, 0x40,
		0x1b, 0xa7, 0x7f, 0xd7, 0x4f, 0x1a, 0x47, 0x7e, 0xab, 0x79, 0xf1, 0xe5, 0xd8, 0x6f, 0x1d, 0xd7,
		0xcf, 0x9b, 0xa7, 0x68, 0xd1, 0x75, 0xb4, 0x4b, 0x3d, 0x86, 0x2c, 0x13, 0x81, 0xee, 0xeb, 0x9f,
		0x7d, 0xba, 0xf5, 0x73, 0xff, 0xa4, 0xd9, 0x3c, 0x73, 0xd8, 0xb1, 0x61, 0x63, 0x1e, 0xe9, 0x87,
		0x93, 0x8b, 0xf3, 0x2f, 0xc7, 0x2d, 0x3e, 0xd7, 0x4d, 0x7b, 0xae, 0xcd, 0xd3, 0x8f, 0xc7, 0x47,
		0x7c, 0xa2, 0x9b, 0xf3, 0x44, 0x9b, 0xad, 0xc6, 0xa7, 0xc6, 0x69, 0xfd, 0x4b, 0xb3, 0xe5, 0xb0,
		0x1b, 0xc8, 0x3f, 0xbe, 0xae, 0x98, 0x8f, 0x80, 0x59, 0x81, 0xa0, 0x0e, 0xf6, 0x45, 0x6c, 0xdc,
		0x9b, 0xa0, 0xab, 0x7a, 0x4a, 0x76, 0xf1, 0xc4, 0xc1, 0xe7, 0xe6, 0x51, 0x1b, 0x5c, 0x64, 0x0e,
		0xb5, 0xc1, 0x25, 0x26, 0x14, 0xb5, 0xc1, 0xa5, 0x66, 0x3a, 0xb5, 0xc1, 0x57, 0x1a, 0x48, 0x6d,
		0x30, 0x47, 0xfc, 0x17, 0x58, 0x1b, 0x34, 0xea, 0x46, 0x1a, 0xd5, 0xf9, 0x11, 0x57, 0xcb, 0x80,
		0xda, 0x20, 0xd0, 0x36, 0x02, 0xe7, 0x42, 0x8f, 0x9b, 0x18, 0x3a, 0x5a, 0xe8, 0x20, 0x96, 0x9d,
		0x40, 0x77, 0xa1, 0x76, 0xa9, 0xb2, 0xef, 0xed, 0x1f, 0x0e, 0x14, 0xfb, 0xde, 0xbe, 0xc2, 0x3e,
		0xf6, 0xf4, 0xdc, 0x60, 0x6d, 0x26, 0x1f, 0x7d, 0x6f, 0x8b, 0xef, 0xca, 0xe5, 0x6a, 0xad, 0x5c,
		0xde, 0xab, 0xed, 0xd7, 0xf6, 0x0e, 0x2a, 0x95, 0x62, 0xb5, 0xc8, 0x0e, 0xb8, 0x1b, 0xef, 0x2d,
		0xdc, 0xc7, 0xb1, 0xf0, 0xc5, 0x7d, 0x1c, 0x30, 0xd1, 0xd4, 0x09, 0x85, 0xf9, 0xe6, 0x2a, 0x40,
		0xb5, 0x6b, 0x6a, 0x18, 0x48, 0x36, 0x74, 0x24, 0x7b, 0x62, 0xd0, 0x37, 0x50, 0x5c, 0xd5, 0xd9,
		0xc3, 0xc8, 0x9d, 0xaf, 0xa8, 0x45, 0x2e, 0x32, 0x87, 0x5a, 0xe4, 0x12, 0xee, 0x4e, 0x2d, 0x72,
		0xa9, 0x99, 0x4e, 0x2d, 0xf2, 0x95, 0x06, 0x52, 0x8b, 0xcc, 0x51, 0xbe, 0xc7, 0xe3, 0xad, 0x96,
		0x47, 0x41, 0x1e, 0x6f, 0xf5, 0x6f, 0x2f, 0xca, 0x7c, 0xab, 0x69, 0x19, 0x94, 0xf9, 0x36, 0x5e,
		0xb8, 0xa0, 0xcc, 0xb7, 0x9a, 0x6b, 0xf0, 0x78, 0xab, 0xed, 0xf1, 0x11, 0x8a, 0x7b, 0x8b, 0xc5,
		0x00, 0x8a, 0x7b, 0x28, 0x31, 0xd4, 0x99, 0x6c, 0x26, 0x0d, 0x06, 0x46, 0xe2, 0x09, 0x7c, 0x4f,
		0x8d, 0xa3, 0x80, 0xb4, 0xc8, 0x1c, 0x0a, 0x48, 0x4b, 0x4c, 0x27, 0x0a, 0x48, 0x4b, 0xcd, 0x74,
		0x0a, 0x48, 0xaf, 0x34, 0x90, 0x02, 0x52, 0x8e, 0x32, 0x09, 0x60, 0x01, 0xa9, 0x1d, 0x04, 0x7d,
		0x29, 0x34, 0xe2, 0x26, 0xd7, 0x22, 0xa9, 0x1c, 0x80, 0x05, 0x96, 0x5d, 0xc8, 0xa9, 0x6b, 0x1d,
		0x18, 0x31, 0x4c, 0x1a, 0x21, 0x1c, 0xc8, 0x89, 0x3b, 0xdf, 0xe4, 0x8d, 0x08, 0x27, 0x4d, 0x7a,
		0xbc, 0x20, 0x94, 0xba, 0x33, 0x22, 0x4a, 0xae, 0x96, 0xe6, 0x67, 0x10, 0xfd, 0x70, 0x95, 0x8e,
		0x8d, 0xd0, 0x1d, 0xe9, 0xcd, 0xde, 0x88, 0xe7, 0xee, 0x78, 0x61, 0x14, 0x98, 0xa0, 0x13, 0xf4,
		0xe3, 0xe4, 0xca, 0x6b, 0x5f, 0x87, 0x5e, 0xa4, 0xda, 0x9e, 0xe8, 0x29, 0x37, 0x16, 0x3d, 0x15,
		0x27, 0x57, 0xde, 0xa8, 0x95, 0x75, 0x1c, 0x19, 0xe9, 0x86, 0x41, 0x5f, 0x75, 0xee, 0x3d, 0x2d,
		0xd5, 0xf5, 0xb7, 0x76, 0x10, 0xc5, 0xc9, 0x95, 0x27, 0xba, 0xdf, 0x47, 0x68, 0xa0, 0xb4, 0x1b,
		0x06, 0xb1, 0xf1, 0x46, 0x0c, 0x37, 0x1e, 0xbf, 0x8d, 0xfb, 0x02, 0x01, 0xf8, 0xba, 0x13, 0x9b,
		0x68, 0xd0, 0x31, 0x7a, 0x12, 0x84, 0x9a, 0xc9, 0x20, 0x9e, 0x8e, 0x07, 0xa8, 0x31, 0x19, 0x1f,
		0x7f, 0xe6, 0xe7, 0x78, 0xf6, 0x86, 0x7f, 0x36, 0x1d, 0xc0, 0xe4, 0xca, 0x3f, 0xbc, 0x0e, 0xfd,
		0x96, 0x6a, 0xfb, 0xf5, 0x9e, 0x3a, 0x1f, 0x8e, 0xdf, 0xf4, 0xc2, 0x6f, 0x84, 0xb7, 0xd5, 0xf3,
		0xc8, 0xc8, 0xb3, 0xd1, 0xe0, 0xf9, 0xa7, 0xd3, 0xc1, 0x4b, 0xae, 0xfc, 0x7a, 0xf7, 0x7b, 0x4b,
		0xb5, 0x1b, 0xfa, 0x2c, 0x88, 0x8d, 0xdf, 0x1a, 0x8d, 0xdc, 0xf8, 0xcd, 0x3f, 0x1f, 0x8d, 0xdc,
		0x9b, 0xed, 0x8c, 0x03, 0x16, 0x63, 0x80, 0x33, 0xd0, 0x3f, 0x74, 0xf0, 0x53, 0xbb, 0xc2, 0x98,
		0x48, 0xb5, 0x87, 0x4f, 0xc4, 0x7a, 0x1c, 0x78, 0xac, 0xbe, 0xcc, 0xdb, 0x66, 0x39, 0x5a, 0x4e,
		0xb1, 0xd3, 0xb2, 0x19, 0x28, 0xa9, 0x23, 0x52, 0xca, 0x88, 0x99, 0x2a, 0xa2, 0xa5, 0x88, 0xb0,
		0xa9, 0x21, 0x6c, 0x4a, 0x08, 0x9b, 0x0a, 0x6e, 0x37, 0x6f, 0x3d, 0x52, 0x11, 0x46, 0xd8, 0x99,
		0x03, 0x29, 0x3c, 0x2d, 0x76, 0xde, 0x44, 0x2c, 0x45, 0xb6, 0x48, 0x45, 0x16, 0x1e, 0x5e, 0xb1,
		0x61, 0x16, 0x15, 0x6e, 0xe1, 0x61, 0x17, 0x1e, 0x7e, 0xe1, 0x61, 0x18, 0x47, 0xc8, 0x2a, 0x00,
		0x29, 0xb2, 0x28, 0xf0, 0x9c, 0x18, 0x34, 0xc4, 0x3e, 0xd7, 0xa0, 0xe9, 0xc4, 0xcf, 0x22, 0xea,
		0xa3, 0x89, 0x60, 0xae, 0x87, 0x55, 0x38, 0x85, 0x85, 0x6b, 0x64, 0xd8, 0xce, 0x07, 0x7c, 0xa3,
		0xc3, 0x78, 0x6e, 0xe0, 0x3c, 0x37, 0xb0, 0x9e, 0x1b, 0x78, 0xc7, 0x82, 0x79, 0x30, 0xb8, 0x4f,
		0x9e, 0xe2, 0x17, 0x44, 0x80, 0x2d, 0x60, 0x9f, 0x92, 0x31, 0x97, 0x0d, 0xd7, 0x30, 0x4f, 0x2a,
		0x9d, 0x9e, 0x9a, 0x31, 0x3e, 0xfc, 0xe2, 0x91, 0xac, 0x70, 0xa5, 0x24, 0xba, 0x6b, 0x3a, 0xe3,
		0xba, 0x24, 0x2c, 0xf1, 0x45, 0x29, 0x9b, 0x2e, 0xf4, 0x46, 0x92, 0x5e, 0x92, 0x5e, 0x92, 0x5e,
		0x92, 0x5e, 0x92, 0x5e, 0x22, 0xeb, 0xe2, 0xa7, 0x88, 0xa6, 0x75, 0x25, 0x86, 0x8d, 0x38, 0x5a,
		0x5f, 0x02, 0x6f, 0x3a, 0x7c, 0x26, 0x7d, 0x0d, 0x2d, 0x05, 0x75, 0x54, 0x4c, 0x05, 0x0c, 0x9e,
		0x14, 0xe4, 0x81, 0x1c, 0xe4, 0x8b, 0x24, 0xe4, 0x85, 0x2c, 0xe4, 0x8e, 0x34, 0xe4, 0x8e, 0x3c,
		0xe4, 0x8e, 0x44, 0x60, 0x92, 0x09, 0x50, 0x52, 0x91, 0x3c, 0x5d, 0x58, 0x45, 0x6d, 0x2e, 0x6e,
		0x0e, 0x94, 0x36, 0xc5, 0x2a, 0x72, 0xcc, 0x9c, 0xa0, 0x78, 0x15, 0xd8, 0x44, 0xcc, 0x5e, 0x1a,
		0xb3, 0x2f, 0x6c, 0xcc, 0x29, 0xa0, 0xf7, 0xda, 0x98, 0x33, 0x16, 0xbc, 0xf7, 0xc6, 0x9c, 0xbd,
		0x79, 0xe9, 0x33, 0x30, 0x1f, 0xab, 0xd0, 0xfb, 0x0e, 0xe4, 0x04, 0x96, 0x9e, 0xbb, 0x9a, 0xb8,
		0xcb, 0x9f, 0xab, 0x55, 0x2b, 0x95, 0xfd, 0x0a, 0xdd, 0x8d, 0xee, 0x96, 0x03, 0x6e, 0x8a, 0x6f,
		0xdd, 0x15, 0x39, 0xfd, 0x12, 0x6e, 0x21, 0xef, 0x4c, 0x24, 0xdc, 0x81, 0x8e, 0x8d, 0x68, 0xf7,
		0xc1, 0xd9, 0x7d, 0x24, 0x7b, 0x32, 0x92, 0xba, 0x43, 0x52, 0xba, 0xc6, 0x54, 0xa9, 0xf5, 0xf1,
		0x43, 0xa1, 0x5c, 0xaa, 0x15, 0x0b, 0x6e, 0xa1, 0x5e, 0x38, 0x0c, 0xa2, 0xae, 0x8c, 0x0a, 0x9f,
		0x84, 0x91, 0x3f, 0xc5, 0x7d, 0x61, 0xba, 0xcf, 0xb2, 0x50, 0x2e, 0xec, 0x1c, 0x7e, 0x3a, 0x73,
		0xcb, 0xbb, 0x4e, 0x0e, 0x38, 0x40, 0x4e, 0xe4, 0xa8, 0xc7, 0x54, 0xf0, 0x51, 0x96, 0x7a, 0x9c,
		0xe1, 0x39, 0x41, 0xd5, 0xbc, 0x29, 0x54, 0x89, 0xe1, 0x4f, 0x95, 0xaa, 0x25, 0x5d, 0x80, 0xcc,
		0x81, 0xcc, 0x61, 0xab, 0xc7, 0x0b, 0xb1, 0x69, 0x23, 0xee, 0x9a, 0xfa, 0x39, 0xc4, 0x45, 0x5d,
		0x5b, 0xff, 0x08, 0x48, 0xac, 0x30, 0xbe, 0xca, 0x40, 0x56, 0x18, 0xb7, 0x94, 0xd2, 0xb1, 0xc2,
		0x98, 0x29, 0x6f, 0x63, 0x85, 0x71, 0xd3, 0xd4, 0x88, 0x7c, 0x55, 0x18, 0xdf, 0xe5, 0xa0, 0xc0,
		0x58, 0x61, 0x81, 0x71, 0xf3, 0xb5, 0x1c, 0x16, 0x18, 0x53, 0xb4, 0x97, 0x15, 0x8f, 0x2d, 0x47,
		0xa5, 0xe7, 0xae, 0x96, 0xc7, 0x02, 0x63, 0xa9, 0xc2, 0xf2, 0x22, 0x9d, 0x2d, 0x0f, 0xc4, 0x14,
		0xdf, 0x3a, 0x96, 0x17, 0x97, 0x71, 0x0b, 0x96, 0x17, 0xb7, 0x94, 0x92, 0xb2, 0xbc, 0x08, 0x93,
		0x08, 0xb2, 0xbc, 0x98, 0xbd, 0xe1, 0x2c, 0x2f, 0xd2, 0xba, 0x9c, 0x30, 0x07, 0x96, 0x17, 0xff,
		0xc0, 0x9f, 0x47, 0x35, 0xbb, 0xdb, 0x49, 0x3a, 0x95, 0x87, 0xfa, 0xe2, 0xd8, 0x56, 0x16, 0x18,
		0x57, 0x31, 0x8f, 0x05, 0xc6, 0x35, 0xce, 0x46, 0x16, 0x18, 0x53, 0x22, 0x73, 0x2c, 0x30, 0xa6,
		0xce, 0xdc, 0x58, 0x60, 0xdc, 0x34, 0x3d, 0x22, 0x3f, 0x05, 0xc6, 0xb6, 0xd2, 0x22, 0xba, 0xcf,
		0x41, 0x85, 0xf1, 0x00, 0xd8, 0xc4, 0x13, 0xa9, 0xaf, 0x47, 0xcd, 0xc2, 0xa8, 0xe7, 0xbc, 0x72,
		0x24, 0x73, 0x59, 0x62, 0x2c, 0xb2, 0xea, 0x91, 0x72, 0xb0, 0x62, 0x89, 0x31, 0x05, 0x57, 0xe3,
		0x1e, 0x46, 0xba, 0xdb, 0x86, 0xb8, 0x1b, 0xa5, 0xc2, 0x95, 0x5e, 0x2c, 0x32, 0x2e, 0xe3, 0x16,
		0x2c, 0x32, 0x6e, 0x29, 0x29, 0x65, 0x91, 0x11, 0x26, 0x17, 0x64, 0x91, 0x31, 0x7b, 0xc3, 0x59,
		0x64, 0xa4, 0x75, 0x39, 0x61, 0x0e, 0x2c, 0x32, 0xfe, 0x19, 0x8f, 0x91, 0xba, 0x2b, 0xbb, 0xf8,
		0x25, 0xc6, 0xc4, 0x52, 0x16, 0x18, 0x57, 0x31, 0x8f, 0x05, 0xc6, 0x35, 0xce, 0x45, 0x16, 0x18,
		0x53, 0x22, 0x72, 0x2c, 0x30, 0xa6, 0xce, 0xda, 0x58, 0x60, 0xdc, 0x34, 0x2d, 0x22, 0x47, 0x05,
		0xc6, 0x20, 0xe8, 0x4b, 0xa1, 0x73, 0x50, 0x61, 0x2c, 0x16, 0x39, 0x05, 0x97, 0xa3, 0x91, 0x94,
		0xc3, 0xd6, 0xfe, 0xa2, 0x1c, 0x46, 0xf6, 0xb4, 0x0a, 0x8b, 0xa2, 0x1c, 0x66, 0x83, 0x58, 0x51,
		0x0e, 0xa3, 0x75, 0x05, 0xca, 0x61, 0x79, 0xe6, 0x32, 0x4e, 0x10, 0x1a, 0x15, 0x68, 0xd1, 0xc7,
		0x97, 0xc3, 0x12, 0x4b, 0x29, 0x87, 0xad, 0x62, 0x1e, 0xe5, 0xb0, 0x75, 0xce, 0x45, 0xca, 0x61,
		0xe9, 0x10, 0x39, 0xca, 0x61, 0xa9, 0xb3, 0x36, 0xca, 0x61, 0x9b, 0xa6, 0x45, 0x50, 0x0e, 0x5b,
		0x3f, 0x8c, 0x53, 0x0e, 0x5b, 0x6a, 0xd4, 0x28, 0x87, 0xa5, 0xf1, 0xa2, 0x1c, 0x46, 0xf6, 0xb4,
		0x0a, 0x8b, 0xa2, 0x1c, 0x66, 0x83, 0x58, 0x51, 0x0e, 0xa3, 0x75, 0x05, 0xca, 0x61, 0x79, 0xe6,
		0x32, 0x4e, 0x28, 0x22, 0xa3, 0xf2, 0xa0, 0x86, 0x4d, 0x0d, 0xa5, 0x18, 0xb6, 0x8a, 0x79, 0x14,
		0xc3, 0xd6, 0x38, 0x15, 0x29, 0x86, 0xa5, 0x44, 0xe3, 0x28, 0x86, 0xa5, 0xce, 0xd9, 0x28, 0x86,
		0x6d, 0x9a, 0x12, 0x41, 0x31, 0x6c, 0xfd, 0x30, 0x4e, 0x31, 0x6c, 0xa9, 0x51, 0xa3, 0x18, 0x96,
		0xc6, 0x8b, 0x62, 0x18, 0xd9, 0xd3, 0x2a, 0x2c, 0x8a, 0x62, 0x98, 0x0d, 0x62, 0x45, 0x31, 0x8c,
		0xd6, 0x15, 0x28, 0x86, 0xe5, 0x99, 0xcb, 0x38, 0x26, 0x12, 0x3a, 0x56, 0x93, 0x5e, 0x28, 0xe0,
		0x7a, 0xd8, 0x13, 0x5b, 0x29, 0x89, 0xad, 0x62, 0x1e, 0x25, 0xb1, 0x35, 0xce, 0x46, 0x4a, 0x62,
		0x29, 0x91, 0x39, 0x4a, 0x62, 0xa9, 0x33, 0x37, 0x4a, 0x62, 0x9b, 0xa6, 0x47, 0x50, 0x12, 0x5b,
		0x3f, 0x8c, 0x53, 0x12, 0x5b, 0x6a, 0xd4, 0x28, 0x89, 0xa5, 0xf1, 0xa2, 0x24, 0x46, 0xf6, 0xb4,
		0x0a, 0x8b, 0xa2, 0x24, 0x66, 0x83, 0x58, 0x51, 0x12, 0xa3, 0x75, 0x05, 0x4a, 0x62, 0x39, 0xb5,
		0x08, 0x8c, 0x59, 0x39, 0x75, 0xad, 0x03, 0x23, 0x8c, 0x0a, 0x30, 0x5b, 0xc6, 0x3b, 0x71, 0xe7,
		0x9b, 0xbc, 0x11, 0xa1, 0x18, 0x9d, 0x0c, 0xe0, 0x78, 0x41, 0x28, 0x75, 0x67, 0x24, 0x31, 0xb9,
		0x5a, 0x9a, 0x9f, 0x41, 0xf4, 0xc3, 0x55, 0x43, 0x36, 0xa8, 0x3b, 0xd2, 0x9b, 0xbd, 0x11, 0xcf,
		0xdd, 0xf1, 0xc2, 0x49, 0x7c, 0x8c, 0x93, 0x2b, 0xaf, 0x7d, 0x1d, 0x7a, 0x91, 0x6a, 0x7b, 0xa2,
		0xa7, 0xdc, 0x58, 0xf4, 0x54, 0x9c, 0x5c, 0x79, 0x2a, 0xbc, 0xad, 0xba, 0x71, 0x64, 0xa4, 0x1b,
		0x06, 0x7d, 0xd5, 0xb9, 0xf7, 0xb4, 0x54, 0xd7, 0xdf, 0xda, 0x41, 0x14, 0x27, 0x57, 0x9e, 0xe8,
		0x7e, 0x1f, 0xe5, 0xb9, 0x4a, 0xbb, 0x61, 0x10, 0x1b, 0x2f, 0x0a, 0x06, 0x46, 0xc6, 0xe3, 0x37,
		0x6f, 0xa0, 0x7f, 0xe8, 0xe0, 0xa7, 0x76, 0x85, 0x31, 0x91, 0x6a, 0x8f, 0x7e, 0x31, 0x77, 0xcb,
		0x8b, 0x8d, 0x30, 0x88, 0x08, 0xea, 0xc4, 0x26, 0x1a, 0x74, 0x8c, 0x9e, 0x30, 0xaf, 0x66, 0x32,
		0xf2, 0xa7, 0xe3, 0x51, 0x6d, 0x4c, 0x06, 0xd5, 0x9f, 0xf9, 0x39, 0x9e, 0xbd, 0xe1, 0x4f, 0x51,
		0x29, 0x4e, 0xae, 0xfc, 0xc3, 0xeb, 0xd0, 0x6f, 0xa9, 0xb6, 0x5f, 0xef, 0xa9, 0xf3, 0xe1, 0xa0,
		0x4f, 0x2f, 0xfc, 0x46, 0x78, 0x5b, 0x3d, 0x8f, 0x8c, 0x3c, 0x1b, 0x8d, 0xb8, 0x7f, 0x3a, 0x1d,
		0xf1, 0xe4, 0xca, 0xaf, 0x77, 0xbf, 0xb7, 0x54, 0xbb, 0xa1, 0xcf, 0x82, 0xd8, 0xf8, 0xad, 0xd1,
		0x70, 0x8f, 0xdf, 0xfc, 0x8b, 0xf1, 0xd8, 0xd6, 0x93, 0xd1, 0x9e, 0xbb, 0xe3, 0x9f, 0x8f, 0x06,
		0xfb, 0x0d, 0xe3, 0x13, 0xae, 0x25, 0x20, 0x11, 0x72, 0x48, 0x74, 0x93, 0x13, 0xda, 0xcc, 0x7d,
		0x88, 0xe2, 0xa2, 0xce, 0x89, 0x8a, 0xcd, 0x70, 0x42, 0x43, 0xc5, 0x6b, 0xe7, 0xb3, 0xd2, 0xc7,
		0x7d, 0x39, 0xe4, 0xa8, 0x60, 0x4d, 0xfa, 0x9d, 0xcf, 0xe2, 0xee, 0x89, 0x65, 0xc5, 0x77, 0xe5,
		0x72, 0xb5, 0x56, 0x2e, 0xef, 0xd5, 0xf6, 0x6b, 0x7b, 0x07, 0x95, 0x4a, 0xb1, 0x5a, 0x04, 0x3a,
		0x0a, 0xc1, 0x69, 0x0e, 0xe9, 0xbc, 0xec, 0x1e, 0x0e, 0xa7, 0x9e, 0x1e, 0xf4, 0xfb, 0x88, 0xa6,
		0x5d, 0xc4, 0x32, 0x82, 0x3a, 0xd5, 0x00, 0x25, 0x62, 0x80, 0x72, 0xa9, 0xcd, 0xe7, 0x50, 0x40,
		0xec, 0x69, 0x13, 0x59, 0x13, 0x06, 0x5f, 0xb2, 0xcf, 0x4e, 0xec, 0x5a, 0x60, 0x39, 0xca, 0xa1,
		0x45, 0xb7, 0x4d, 0x8b, 0x6a, 0x00, 0x31, 0x6c, 0x03, 0x62, 0x97, 0xdd, 0x50, 0x65, 0x2f, 0x40,
		0xd8, 0xf9, 0x66, 0x4b, 0x21, 0x69, 0x9a, 0x9a, 0x0d, 0x7d, 0xdf, 0x55, 0xdd, 0x82, 0xd4, 0xdd,
		0x30, 0x50, 0xda, 0x14, 0x3a, 0x41, 0x3f, 0x88, 0x2c, 0x39, 0x12, 0x46, 0x5e, 0x86, 0x93, 0x87,
		0x41, 0xe7, 0x5d, 0x40, 0x79, 0x16, 0x50, 0x5e, 0x65, 0xcb, 0x9d, 0x41, 0x98, 0x45, 0xae, 0x19,
		0x85, 0x45, 0xfa, 0x90, 0x3b, 0xda, 0x60, 0x87, 0x24, 0x64, 0x0f, 0xd1, 0xd9, 0x7e, 0x63, 0xc6,
		0xd1, 0xc3, 0x76, 0xd4, 0xc8, 0x69, 0xb4, 0xb0, 0x10, 0x27, 0x72, 0x14, 0x1f, 0xb2, 0x8d, 0x0c,
		0xd9, 0xf9, 0x67, 0x36, 0xdf, 0x94, 0x51, 0x04, 0xb0, 0xe5, 0xf9, 0x79, 0xf3, 0xf8, 0x0c, 0x5d,
		0x3d, 0x0f, 0x2e, 0x9e, 0x8d, 0x6f, 0xa7, 0xef, 0x69, 0x19, 0x78, 0x99, 0xf3, 0x74, 0x26, 0x45,
		0xd9, 0x2d, 0x4e, 0x4c, 0x96, 0x79, 0xce, 0x7c, 0x7f, 0x46, 0x71, 0x65, 0xba, 0x26, 0x3b, 0xa3,
		0xaf, 0xcb, 0x7a, 0xab, 0x94, 0x8d, 0xad, 0x4f, 0x76, 0xb7, 0x32, 0xd9, 0x5a, 0x5c, 0x6b, 0x7d,
		0xab, 0x91, 0xf5, 0x95, 0xae, 0xd6, 0xb7, 0x02, 0x6d, 0x16, 0xe3, 0x39, 0x52, 0xd9, 0xca, 0x8a,
		0xce, 0x24, 0x59, 0xc8, 0xdc, 0x71, 0xa6, 0xe1, 0xc2, 0x4a, 0xb2, 0x92, 0x31, 0x00, 0x58, 0x03,
		0x02, 0x9b, 0x80, 0x80, 0x01, 0x0c, 0xb6, 0x01, 0x02, 0x06, 0x28, 0x60, 0x00, 0x03, 0x06, 0x38,
		0xb6, 0x43, 0x3c, 0xcb, 0x1a, 0x50, 0x9e, 0x03, 0x8b, 0x3d, 0x7f, 0x7b, 0x86, 0x2f, 0xb6, 0x7c,
		0xcd, 0x0e, 0xcc, 0x58, 0x87, 0x1b, 0x04, 0xd8, 0xc1, 0x82, 0x1f, 0x14, 0x18, 0x82, 0x83, 0x23,
		0x38, 0x58, 0x82, 0x83, 0x27, 0x3b, 0x30, 0x65, 0x09, 0xae, 0xac, 0xc3, 0x56, 0x62, 0xc0, 0x78,
		0x85, 0x89, 0x75, 0x3f, 0x9d, 0x46, 0x2f, 0x9b, 0x0b, 0x5e, 0x66, 0xe1, 0xcc, 0xf2, 0x9a, 0x7f,
		0x98, 0xce, 0x43, 0x48, 0x1d, 0x86, 0x30, 0x3b, 0x09, 0xa1, 0xed, 0x79, 0x87, 0xed, 0x0c, 0x04,
		0xbb, 0x61, 0x1d, 0xb6, 0xd3, 0xcf, 0x76, 0x2f, 0xd1, 0x86, 0xe9, 0xd0, 0x93, 0xc4, 0x9d, 0xbe,
		0x14, 0xbd, 0x48, 0xf6, 0x10, 0x82, 0xce, 0x34, 0xeb, 0xaa, 0x01, 0xd8, 0x72, 0x36, 0xa9, 0x21,
		0xbf, 0x7d, 0x3b, 0xde, 0xfe, 0xeb, 0x8d, 0x81, 0x7c, 0x5b, 0x17, 0x2f, 0x5b, 0xcc, 0xbc, 0xa6,
		0x6b, 0x87, 0x71, 0x38, 0x5d, 0x62, 0x11, 0x69, 0x1d, 0x69, 0x1d, 0x69, 0x1d, 0x69, 0x1d, 0x69,
		0x1d, 0x69, 0x1d, 0x69, 0x5d, 0x2e, 0x69, 0x5d, 0x82, 0xe5, 0x64, 0x76, 0x99, 0x3f, 0x8c, 0xc9,
		0xee, 0x30, 0x1c, 0x62, 0x37, 0x35, 0x88, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc, 0x8e, 0xbc,
		0x8e, 0xbc, 0x8e, 0xbc, 0x2e, 0x97, 0xbc, 0x6e, 0x0a, 0xe5, 0xa4, 0x75, 0x99, 0x3f, 0x8b, 0x71,
		0xbb, 0x44, 0x18, 0x52, 0x87, 0xd0, 0xbd, 0xd1, 0xf2, 0x82, 0x22, 0x52, 0x3a, 0x52, 0x3a, 0x52,
		0x3a, 0x52, 0x3a, 0x52, 0x3a, 0xfb, 0x0b, 0x94, 0x12, 0x43, 0x46, 0x6d, 0x4b, 0x95, 0xee, 0x4a,
		0x9c, 0xa3, 0xae, 0x1e, 0x77, 0xf7, 0x3d, 0xda, 0x86, 0xd2, 0xeb, 0x15, 0xea, 0x50, 0x35, 0xb8,
		0x43, 0xd4, 0x10, 0x0f, 0x4d, 0xc3, 0x3e, 0x24, 0x0d, 0xf5, 0x58, 0x0f, 0xf8, 0x43, 0xd0, 0xe0,
		0xcf, 0xe8, 0x80, 0x3f, 0xe4, 0x8c, 0x5d, 0xbc, 0x21, 0x35, 0x16, 0x60, 0xad, 0x05, 0x51, 0x73,
		0x59, 0xa4, 0xbd, 0xfc, 0xc3, 0x7f, 0x23, 0x4a, 0x11, 0x4b, 0x13, 0x27, 0x57, 0x13, 0xa5, 0x66,
		0x4c, 0x33, 0xd8, 0xc0, 0x16, 0xc5, 0x29, 0x41, 0x56, 0xd0, 0xcf, 0x79, 0x23, 0xc2, 0x4a, 0x7a,
		0xd2, 0x51, 0xd2, 0x51, 0xd2, 0x51, 0xd2, 0x51, 0xd2, 0x51, 0xd2, 0xd1, 0xcc, 0xe3, 0xd6, 0x40,
		0x69, 0xb3, 0x5f, 0x02, 0x64, 0xa3, 0x48, 0x64, 0xb4, 0x25, 0xf4, 0x35, 0xde, 0x79, 0xae, 0x80,
		0xc7, 0xb6, 0x7d, 0x56, 0x1a, 0xf6, 0x48, 0x53, 0xe7, 0x6f, 0xd1, 0x1f, 0x48, 0xac, 0x53, 0x8a,
		0x9e, 0xd9, 0xf7, 0x31, 0x12, 0x1d, 0xa3, 0x02, 0x7d, 0xa4, 0xae, 0x15, 0xda, 0x71, 0x4a, 0xcf,
		0x63, 0x87, 0xbc, 0x16, 0x46, 0xdd, 0x4a, 0xa8, 0xd3, 0x80, 0x00, 0xc3, 0xfe, 0x73, 0xd7, 0x10,
		0x77, 0xf8, 0xae, 0x51, 0x2e, 0x1d, 0x94, 0x0f, 0xaa, 0xb5, 0xd2, 0x41, 0x85, 0x3e, 0xb2, 0xe9,
		0x3e, 0xc2, 0xd3, 0x10, 0x17, 0xbe, 0xae, 0x28, 0x1a, 0xa1, 0xc4, 0x50, 0xa7, 0x13, 0xdc, 0xdc,
		0x0c, 0xb4, 0x32, 0xf7, 0xa8, 0x25, 0xcd, 0x59, 0x03, 0x29, 0x24, 0x2d, 0x32, 0x87, 0x42, 0xd2,
		0x12, 0x53, 0x8a, 0x42, 0xd2, 0x52, 0x33, 0x9d, 0x42, 0xd2, 0x2b, 0x0d, 0xa4, 0x90, 0x94, 0xa3,
		0x8c, 0x82, 0x75, 0xcd, 0x15, 0x60, 0x30, 0x87, 0x75, 0xcd, 0x29, 0xaf, 0x50, 0x32, 0x4e, 0xae,
		0xef, 0x59, 0xda, 0xc4, 0x64, 0xa9, 0x30, 0xbd, 0x24, 0xe6, 0x7c, 0x12, 0xa4, 0xa7, 0x04, 0x79,
		0x29, 0x79, 0x29, 0x79, 0x29, 0x79, 0x29, 0x79, 0x29, 0x79, 0x69, 0xe6, 0x71, 0x4b, 0x85, 0xae,
		0xe8, 0x76, 0x23, 0x19, 0xc7, 0x88, 0xd4, 0xf4, 0x00, 0xc8, 0xa6, 0xc9, 0x33, 0x64, 0x91, 0xf3,
		0x8f, 0x67, 0xd6, 0x6d, 0x19, 0x70, 0x6e, 0xcd, 0xcd, 0xb1, 0x77, 0x80, 0xb6, 0x9d, 0x09, 0x63,
		0x64, 0xa4, 0xe1, 0xa6, 0x5b, 0x62, 0xe0, 0xce, 0xe5, 0x9e, 0x7b, 0x70, 0xf5, 0xfb, 0xb2, 0xe8,
		0x1e, 0x5c, 0x8d, 0x2f, 0x8b, 0xa3, 0xb7, 0x5f, 0xa5, 0x87, 0xdf, 0xa5, 0xcb, 0x3d, 0xb7, 0x3c,
		0xb9, 0x5b, 0xaa, 0x5c, 0xee, 0xb9, 0x95, 0xab, 0xdd, 0x9d, 0xaf, 0x5f, 0xdf, 0x2e, 0xfb, 0x99,
		0xdd, 0x5f, 0xfb, 0x0f, 0x0e, 0xdc, 0xff, 0xfe, 0x15, 0xe2, 0x74, 0x69, 0x9e, 0x37, 0xfe, 0x0b,
		0x3f, 0x67, 0xfe, 0xb7, 0x93, 0xd5, 0xac, 0xd9, 0xfd, 0x0f, 0xe0, 0xbc, 0xc1, 0x2a, 0x28, 0xfe,
		0x45, 0x18, 0xfb, 0x63, 0x18, 0xab, 0x12, 0xc6, 0x36, 0x15, 0xc6, 0x46, 0xd1, 0x45, 0xb8, 0xbd,
		0xba, 0xfb, 0xf1, 0xea, 0x57, 0xf1, 0xaf, 0xf2, 0xc3, 0xfb, 0xdd, 0x5f, 0xb5, 0x87, 0xd9, 0x9b,
		0xbf, 0x17, 0xfd, 0x59, 0xf1, 0xaf, 0xda, 0xc3, 0xfb, 0x17, 0x7e, 0x53, 0x7d, 0x78, 0xff, 0x87,
		0xff, 0x46, 0xe5, 0xe1, 0xff, 0x67, 0xef, 0x7d, 0x7b, 0xd3, 0x56, 0xbe, 0x2e, 0xd0, 0xf7, 0xfd,
		0x14, 0x96, 0xf5, 0x93, 0x9e, 0xe4, 0xaa, 0xae, 0x03, 0xe1, 0x4f, 0x13, 0xe9, 0x79, 0x41, 0x9a,
		0xb4, 0x42, 0x37, 0x0d, 0x88, 0x24, 0xbd, 0xbf, 0x47, 0x39, 0x39, 0xd6, 0x00, 0x43, 0x32, 0x2d,
		0x19, 0x5b, 0xf6, 0x90, 0x26, 0x6a, 0xf8, 0xee, 0x57, 0x18, 0x30, 0x09, 0x86, 0x73, 0x0a, 0xc5,
		0x9e, 0x3d, 0xb0, 0xac, 0xea, 0xe0, 0x38, 0x10, 0xf6, 0x99, 0x99, 0xbd, 0xd7, 0x9a, 0xb5, 0x67,
		0xf6, 0xec, 0xa5, 0xde, 0x3a, 0x7a, 0x5e, 0x5c, 0xf6, 0x81, 0xd2, 0x92, 0x0f, 0x1c, 0x2e, 0xfb,
		0xc0, 0xe1, 0x92, 0x0f, 0x2c, 0x35, 0xa9, 0xb8, 0xe4, 0x03, 0xe5, 0xe1, 0x4b, 0xea, 0xfd, 0x7b,
		0x8b, 0xdf, 0x5a, 0x19, 0xee, 0xbf, 0x2c, 0xfb, 0x5d, 0x75, 0xf8, 0x72, 0xbc, 0xbf, 0x0f, 0x60,
		0xdf, 0x3a, 0x60, 0x87, 0x1b, 0xe5, 0xef, 0x46, 0x20, 0x3a, 0x46, 0xe8, 0x50, 0x16, 0x56, 0x4e,
		0x51, 0xa2, 0x9e, 0x36, 0x7f, 0x52, 0x0e, 0xf9, 0xd5, 0x53, 0x8b, 0x8c, 0x44, 0xa6, 0x6a, 0x91,
		0x39, 0xc8, 0x54, 0xad, 0x30, 0xac, 0x90, 0xa9, 0x5a, 0x69, 0xa4, 0x23, 0x53, 0xf5, 0x87, 0x06,
		0x22, 0x53, 0x65, 0x90, 0x20, 0x83, 0x15, 0x54, 0xeb, 0x68, 0x2f, 0xe6, 0xad, 0xa0, 0x7a, 0xcd,
		0x2d, 0x04, 0x8f, 0xde, 0xfc, 0x8c, 0x95, 0x54, 0x44, 0x59, 0xab, 0x90, 0x8f, 0xac, 0x2f, 0xba,
		0x4e, 0xc8, 0x59, 0xe4, 0x4b, 0x7a, 0x84, 0x75, 0xce, 0x3e, 0x70, 0x55, 0x70, 0x55, 0x70, 0x55,
		0x70, 0x55, 0x70, 0x55, 0x70, 0xd5, 0x1d, 0xe3, 0xaa, 0xa2, 0xcb, 0xa5, 0x12, 0xea, 0x99, 0x28,
		0x5f, 0x25, 0xb4, 0x7d, 0xd9, 0xae, 0x4f, 0x9a, 0xea, 0x84, 0x45, 0x04, 0x43, 0xea, 0xb4, 0x43,
		0xeb, 0x17, 0xdf, 0x6a, 0xe7, 0xf5, 0x53, 0xaf, 0xd5, 0xb8, 0xbe, 0x3a, 0xf3, 0x5a, 0x67, 0xb5,
		0xcb, 0xc6, 0x05, 0xb5, 0xe8, 0x1a, 0xef, 0x52, 0x8f, 0x48, 0xa6, 0x89, 0x88, 0xee, 0xeb, 0x9f,
		0xef, 0xdd, 0xda, 0xa5, 0x77, 0xde, 0x68, 0x34, 0x6d, 0x54, 0x6c, 0xd8, 0x9a, 0x2e, 0xfd, 0x74,
		0x7e, 0x7d, 0x79, 0x75, 0xd6, 0x42, 0xbf, 0x6e, 0x5b, 0xbf, 0x36, 0x2e, 0x3e, 0x9f, 0x9d, 0xa2,
		0x47, 0xb7, 0xa7, 0x47, 0x1b, 0xad, 0xfa, 0x97, 0xfa, 0x45, 0xed, 0xaa, 0xd1, 0xb2, 0x51, 0x0d,
		0xe4, 0x1f, 0xaf, 0x5b, 0xcc, 0x47, 0x88, 0x59, 0x41, 0x41, 0x1d, 0xec, 0xb3, 0x48, 0x39, 0x0f,
		0x7e, 0x57, 0xf4, 0x04, 0xef, 0xd2, 0x13, 0x07, 0xdf, 0x9a, 0x07, 0x6d, 0x70, 0x91, 0x39, 0xd0,
		0x06, 0x57, 0x18, 0x50, 0xd0, 0x06, 0x57, 0x1a, 0xe9, 0xd0, 0x06, 0xff, 0xd0, 0x40, 0x68, 0x83,
		0x06, 0xf1, 0x5f, 0xc2, 0xda, 0xa0, 0x12, 0x0f, 0x5c, 0x89, 0xce, 0x8f, 0xa8, 0x52, 0x22, 0xa8,
		0x0d, 0x12, 0xda, 0x46, 0x60, 0x5f, 0xcb, 0x71, 0x11, 0x43, 0x5b, 0x32, 0xe9, 0x47, 0xbc, 0xe3,
		0xcb, 0x2e, 0xa9, 0x5d, 0xaa, 0xa8, 0x7b, 0xfb, 0x9b, 0x0d, 0x85, 0xba, 0xb7, 0x7f, 0x60, 0x1f,
		0x6a, 0x7a, 0x6e, 0xb1, 0x36, 0x63, 0x46, 0xdd, 0xdb, 0xc2, 0xc7, 0x52, 0xa9, 0x52, 0x2d, 0x95,
		0x0e, 0xaa, 0x87, 0xd5, 0x83, 0xa3, 0x72, 0xb9, 0x50, 0x29, 0xa0, 0x02, 0xee, 0xd6, 0x7b, 0x0b,
		0xf6, 0x71, 0x2c, 0xbc, 0xb0, 0x8f, 0x83, 0x4c, 0x34, 0xb5, 0xa7, 0x27, 0x8e, 0x93, 0x53, 0xbb,
		0xa6, 0x86, 0x11, 0x99, 0x0d, 0x9d, 0xf2, 0x1e, 0x1b, 0xf4, 0x15, 0x29, 0xae, 0x6a, 0x1f, 0xd0,
		0x98, 0x3b, 0xdf, 0x42, 0x8b, 0x5c, 0x64, 0x0e, 0xb4, 0xc8, 0x15, 0xdc, 0x1d, 0x5a, 0xe4, 0x4a,
		0x23, 0x1d, 0x5a, 0xe4, 0x1f, 0x1a, 0x08, 0x2d, 0xd2, 0xa0, 0xf9, 0x1e, 0x8e, 0xb7, 0x5a, 0x1d,
		0x05, 0x71, 0xbc, 0xd5, 0xbf, 0x5d, 0x90, 0xf9, 0xd6, 0xd3, 0x32, 0x20, 0xf3, 0x6d, 0xbd, 0x70,
		0x01, 0x99, 0x6f, 0x3d, 0xd7, 0xc0, 0xf1, 0x56, 0xbb, 0xe3, 0x23, 0x10, 0xf7, 0x16, 0x8b, 0x01,
		0x10, 0xf7, 0xa8, 0xc4, 0x50, 0x7b, 0xb2, 0x99, 0xd4, 0x1f, 0x28, 0x4e, 0x4f, 0xe0, 0x7b, 0x6d,
		0x1c, 0x04, 0xa4, 0x45, 0xe6, 0x40, 0x40, 0x5a, 0x61, 0x38, 0x41, 0x40, 0x5a, 0x69, 0xa4, 0x43,
		0x40, 0xfa, 0x43, 0x03, 0x21, 0x20, 0x19, 0x34, 0x93, 0x20, 0x2c, 0x20, 0xb5, 0x7d, 0xbf, 0xcf,
		0x99, 0xa4, 0xb8, 0xc9, 0xb5, 0x00, 0x2a, 0x47, 0xc0, 0x02, 0xcd, 0x2e, 0x64, 0xd7, 0xa4, 0xf4,
		0x15, 0x1b, 0x4d, 0x1a, 0x49, 0x38, 0x90, 0x1d, 0x75, 0xee, 0xf9, 0x03, 0x0b, 0x26, 0x45, 0x7a,
		0x5c, 0x3f, 0xe0, 0xb2, 0x13, 0x13, 0x25, 0x47, 0x72, 0xf5, 0xd3, 0x0f, 0x7f, 0x38, 0x42, 0x46,
		0x8a, 0xc9, 0x0e, 0x77, 0xe7, 0x1f, 0x44, 0xa9, 0x27, 0x6e, 0x10, 0xfa, 0xca, 0xef, 0xf8, 0xfd,
		0x28, 0xb9, 0x73, 0xdb, 0x77, 0x81, 0x1b, 0x8a, 0xb6, 0xcb, 0x7a, 0xc2, 0x89, 0x58, 0x4f, 0x44,
		0xc9, 0x9d, 0x1b, 0x97, 0xb2, 0x8e, 0x42, 0xc5, 0x9d, 0xc0, 0xef, 0x8b, 0xce, 0xb3, 0x2b, 0xb9,
		0xb8, 0xbb, 0x6f, 0xfb, 0x61, 0x94, 0xdc, 0xb9, 0xac, 0xfb, 0x3d, 0x46, 0x03, 0x21, 0x9d, 0x20,
		0xe4, 0x6e, 0x4c, 0x70, 0xa3, 0xf1, 0xcb, 0xb8, 0x2c, 0x10, 0x01, 0x57, 0xb7, 0x23, 0x15, 0x0e,
		0x3a, 0x4a, 0x4e, 0x62, 0x50, 0x23, 0x69, 0xc3, 0x8b, 0x71, 0xfb, 0xd4, 0x27, 0xcd, 0xe3, 0xcd,
		0xfd, 0x1c, 0xcd, 0x3f, 0xf0, 0x9a, 0xd3, 0xf6, 0x4b, 0xee, 0xbc, 0x93, 0xbb, 0xc0, 0x6b, 0x89,
		0xb6, 0x57, 0xeb, 0x89, 0xcb, 0x51, 0xf3, 0x4d, 0x6f, 0xbc, 0x7a, 0xf0, 0x58, 0xb9, 0x0c, 0x15,
		0x6f, 0xc6, 0x6d, 0xe7, 0x5d, 0x4c, 0xdb, 0x2e, 0xb9, 0xf3, 0x6a, 0xdd, 0xef, 0x2d, 0xd1, 0xae,
		0xcb, 0x66, 0xc8, 0xbd, 0x56, 0xdc, 0x70, 0xe3, 0x17, 0xef, 0x32, 0x6e, 0xb8, 0x77, 0xbb, 0x19,
		0x05, 0x34, 0x46, 0x00, 0x7b, 0x20, 0x7f, 0x48, 0xff, 0xa7, 0x74, 0x98, 0x52, 0xa1, 0x68, 0x8f,
		0x7a, 0x44, 0x7b, 0x14, 0x98, 0xe5, 0x5e, 0xd2, 0xb6, 0x69, 0x8e, 0x95, 0x53, 0xe4, 0xd4, 0x6c,
		0x06, 0x95, 0x89, 0x23, 0xa5, 0x09, 0x23, 0xcd, 0x89, 0x22, 0xb5, 0x09, 0x22, 0xd9, 0x89, 0x21,
		0xd9, 0x09, 0x21, 0xd9, 0x89, 0xe0, 0x6e, 0xb3, 0xd6, 0x53, 0x11, 0xd2, 0x08, 0x3b, 0x29, 0x90,
		0xa2, 0xa7, 0xc4, 0xa6, 0x4d, 0xa4, 0xa5, 0xc7, 0x16, 0xa0, 0xc7, 0x92, 0x87, 0x57, 0xda, 0x30,
		0x4b, 0x15, 0x6e, 0xc9, 0xc3, 0x2e, 0x79, 0xf8, 0x25, 0x0f, 0xc3, 0x74, 0x64, 0x2c, 0x8b, 0x90,
		0x1e, 0x4b, 0x05, 0x9e, 0x13, 0x83, 0x46, 0xd8, 0xe7, 0x28, 0x6a, 0x2a, 0xf1, 0x9b, 0x88, 0x3a,
		0x33, 0x91, 0x98, 0xeb, 0xd1, 0x4a, 0x9b, 0x92, 0x85, 0x6b, 0xca, 0xb0, 0x6d, 0x06, 0x7c, 0x53,
		0x87, 0x71, 0x63, 0xe0, 0xdc, 0x18, 0x58, 0x37, 0x06, 0xde, 0x69, 0xc1, 0x3c, 0x31, 0xb8, 0x4f,
		0x7a, 0xf1, 0x8a, 0x22, 0xc0, 0x5a, 0xb4, 0xcf, 0xc8, 0x48, 0xcd, 0x86, 0xab, 0x34, 0xcf, 0x29,
		0x9d, 0x9e, 0x99, 0x31, 0x3e, 0xfa, 0x62, 0x46, 0x56, 0xb0, 0x4e, 0x92, 0xba, 0x6b, 0xda, 0xe3,
		0xb4, 0x24, 0x59, 0xe2, 0x4b, 0x25, 0x6b, 0xba, 0xd0, 0x1b, 0x41, 0x7a, 0x41, 0x7a, 0x41, 0x7a,
		0x41, 0x7a, 0x41, 0x7a, 0x81, 0xac, 0x8b, 0x7b, 0x91, 0x9a, 0xd6, 0x95, 0x18, 0x16, 0x73, 0xb4,
		0x3e, 0x27, 0xbc, 0xe5, 0xf0, 0x8d, 0xf4, 0x35, 0xb2, 0x94, 0xa8, 0xa3, 0xd2, 0x54, 0xc0, 0xc8,
		0x93, 0x02, 0x13, 0xc8, 0x81, 0x59, 0x24, 0xc1, 0x14, 0xb2, 0x60, 0x1c, 0x69, 0x30, 0x8e, 0x3c,
		0x18, 0x47, 0x22, 0x68, 0x92, 0x09, 0xa2, 0xa4, 0x22, 0xe9, 0x5d, 0xb2, 0x8a, 0x5a, 0x2a, 0x6e,
		0x0e, 0x84, 0x54, 0x85, 0x0a, 0xe5, 0x98, 0x39, 0x41, 0xf1, 0x0a, 0x61, 0x13, 0x69, 0x56, 0xd2,
		0x98, 0xbf, 0x68, 0x63, 0x8e, 0x45, 0xbd, 0xd2, 0x46, 0xca, 0x58, 0xe2, 0x95, 0x37, 0x52, 0xf6,
		0x9a, 0x52, 0x65, 0x20, 0x1d, 0xab, 0xa8, 0x57, 0x1d, 0x30, 0x04, 0x96, 0xde, 0xba, 0x1a, 0x7b,
		0x32, 0xcf, 0xd5, 0x2a, 0xe5, 0xf2, 0x61, 0x19, 0xee, 0x06, 0x77, 0x33, 0x80, 0x9b, 0xd2, 0xb7,
		0xee, 0x16, 0x9c, 0x7e, 0x05, 0xb7, 0xe0, 0x4f, 0x2a, 0x64, 0xce, 0x40, 0x46, 0x8a, 0xb5, 0xfb,
		0xc4, 0xd9, 0x7d, 0xc8, 0x7b, 0x3c, 0xe4, 0xb2, 0x03, 0x52, 0xba, 0xc1, 0xa9, 0x52, 0xeb, 0xf3,
		0x27, 0xab, 0x54, 0xac, 0x16, 0x2c, 0xc7, 0xaa, 0x59, 0x27, 0x7e, 0xd8, 0xe5, 0xa1, 0xf5, 0x85,
		0x29, 0xfe, 0x93, 0x3d, 0x5b, 0xd3, 0x6d, 0x96, 0x56, 0xc9, 0xda, 0x3b, 0xf9, 0xd2, 0x74, 0x4a,
		0xfb, 0xb6, 0x01, 0x1c, 0xc0, 0x10, 0x39, 0x6a, 0x36, 0x15, 0x9c, 0xc9, 0x52, 0xb3, 0x11, 0x6e,
		0x08, 0xaa, 0x9a, 0xa6, 0x50, 0x25, 0x86, 0xbf, 0x56, 0xaa, 0x56, 0x74, 0x01, 0x30, 0x07, 0x30,
		0x87, 0x9d, 0x6e, 0x2f, 0x8a, 0x25, 0x1b, 0xe9, 0xae, 0xa9, 0x4f, 0x21, 0x2e, 0xd5, 0xb5, 0xf5,
		0x33, 0x40, 0x42, 0x86, 0xf1, 0x8f, 0x0c, 0x44, 0x86, 0x71, 0x47, 0x29, 0x1d, 0x32, 0x8c, 0xb9,
		0xf2, 0x36, 0x64, 0x18, 0xb7, 0x4d, 0x8d, 0x30, 0x2b, 0xc3, 0xf8, 0xd1, 0x80, 0x04, 0x63, 0x19,
		0x09, 0xc6, 0xed, 0xd7, 0x72, 0x90, 0x60, 0xcc, 0xd0, 0x5e, 0x64, 0x3c, 0x76, 0x1c, 0x95, 0xde,
		0xba, 0x9a, 0x89, 0x09, 0xc6, 0x62, 0x19, 0xe9, 0x45, 0x38, 0x9b, 0x09, 0xc4, 0x94, 0xbe, 0x75,
		0x48, 0x2f, 0xae, 0xe2, 0x16, 0x48, 0x2f, 0xee, 0x28, 0x25, 0x45, 0x7a, 0x91, 0xcc, 0x44, 0x10,
		0xe9, 0xc5, 0xfc, 0x0d, 0x47, 0x7a, 0x11, 0xd6, 0x19, 0xc2, 0x1c, 0x90, 0x5e, 0xfc, 0x0d, 0x7f,
		0x8e, 0x73, 0x76, 0x8f, 0x93, 0xe9, 0x94, 0x09, 0xf9, 0xc5, 0xb1, 0xad, 0x48, 0x30, 0xae, 0x63,
		0x1e, 0x12, 0x8c, 0x1b, 0x1c, 0x8d, 0x48, 0x30, 0x66, 0x44, 0xe6, 0x90, 0x60, 0xcc, 0x9c, 0xb9,
		0x21, 0xc1, 0xb8, 0x6d, 0x7a, 0x84, 0x39, 0x09, 0xc6, 0xb6, 0x90, 0x2c, 0x7c, 0x36, 0x20, 0xc3,
		0x78, 0x44, 0xd8, 0xc4, 0x73, 0x2e, 0xef, 0xe2, 0x62, 0x61, 0xd0, 0x73, 0xfe, 0xb0, 0x25, 0x8d,
		0x4c, 0x31, 0x16, 0x90, 0xf5, 0xc8, 0x38, 0x58, 0x21, 0xc5, 0x98, 0x81, 0xab, 0x61, 0x0f, 0x23,
		0xdc, 0x6d, 0x4b, 0xdc, 0x0d, 0x52, 0xe1, 0x5a, 0x17, 0x92, 0x8c, 0xab, 0xb8, 0x05, 0x92, 0x8c,
		0x3b, 0x4a, 0x4a, 0x91, 0x64, 0x24, 0x33, 0x17, 0x44, 0x92, 0x31, 0x7f, 0xc3, 0x91, 0x64, 0x84,
		0x75, 0x86, 0x30, 0x07, 0x24, 0x19, 0x7f, 0x8f, 0xc7, 0x70, 0xd9, 0xe5, 0x5d, 0xfa, 0x29, 0xc6,
		0xc4, 0x52, 0x24, 0x18, 0xd7, 0x31, 0x0f, 0x09, 0xc6, 0x0d, 0x8e, 0x45, 0x24, 0x18, 0x33, 0x22,
		0x72, 0x48, 0x30, 0x66, 0xce, 0xda, 0x90, 0x60, 0xdc, 0x36, 0x2d, 0xc2, 0xa0, 0x04, 0xa3, 0xef,
		0xf7, 0x39, 0x93, 0x06, 0x64, 0x18, 0x0b, 0x05, 0x0c, 0xc1, 0xd5, 0x68, 0x24, 0xe4, 0xb0, 0x8d,
		0x5f, 0x90, 0xc3, 0xc0, 0x9e, 0xd6, 0x61, 0x51, 0x90, 0xc3, 0x74, 0x10, 0x2b, 0xc8, 0x61, 0xb0,
		0xce, 0x82, 0x1c, 0x66, 0x32, 0x97, 0xb1, 0xfd, 0x40, 0x09, 0x5f, 0xb2, 0x3e, 0x7d, 0x39, 0x2c,
		0xb1, 0x14, 0x72, 0xd8, 0x3a, 0xe6, 0x41, 0x0e, 0xdb, 0xe4, 0x58, 0x84, 0x1c, 0x96, 0x0d, 0x91,
		0x83, 0x1c, 0x96, 0x39, 0x6b, 0x83, 0x1c, 0xb6, 0x6d, 0x5a, 0x04, 0xe4, 0xb0, 0xcd, 0xc3, 0x38,
		0xe4, 0xb0, 0x95, 0x5a, 0x0d, 0x72, 0x58, 0x16, 0x17, 0xe4, 0x30, 0xb0, 0xa7, 0x75, 0x58, 0x14,
		0xe4, 0x30, 0x1d, 0xc4, 0x0a, 0x72, 0x18, 0xac, 0xb3, 0x20, 0x87, 0x99, 0xcc, 0x65, 0xec, 0x80,
		0x85, 0x4a, 0x98, 0xa0, 0x86, 0x4d, 0x0d, 0x85, 0x18, 0xb6, 0x8e, 0x79, 0x10, 0xc3, 0x36, 0x38,
		0x14, 0x21, 0x86, 0x65, 0x44, 0xe3, 0x20, 0x86, 0x65, 0xce, 0xd9, 0x20, 0x86, 0x6d, 0x9b, 0x12,
		0x01, 0x31, 0x6c, 0xf3, 0x30, 0x0e, 0x31, 0x6c, 0xa5, 0x56, 0x83, 0x18, 0x96, 0xc5, 0x05, 0x31,
		0x0c, 0xec, 0x69, 0x1d, 0x16, 0x05, 0x31, 0x4c, 0x07, 0xb1, 0x82, 0x18, 0x06, 0xeb, 0x2c, 0x88,
		0x61, 0x26, 0x73, 0x19, 0x5b, 0x85, 0x4c, 0x46, 0x62, 0x52, 0x0b, 0x85, 0xb8, 0x1e, 0xf6, 0xca,
		0x56, 0x48, 0x62, 0xeb, 0x98, 0x07, 0x49, 0x6c, 0x83, 0xa3, 0x11, 0x92, 0x58, 0x46, 0x64, 0x0e,
		0x92, 0x58, 0xe6, 0xcc, 0x0d, 0x92, 0xd8, 0xb6, 0xe9, 0x11, 0x90, 0xc4, 0x36, 0x0f, 0xe3, 0x90,
		0xc4, 0x56, 0x6a, 0x35, 0x48, 0x62, 0x59, 0x5c, 0x90, 0xc4, 0xc0, 0x9e, 0xd6, 0x61, 0x51, 0x90,
		0xc4, 0x74, 0x10, 0x2b, 0x48, 0x62, 0xb0, 0xce, 0x82, 0x24, 0x66, 0xa8, 0x45, 0xc4, 0x98, 0x95,
		0x5d, 0x93, 0xd2, 0x57, 0x4c, 0x09, 0x9f, 0x66, 0xc9, 0x78, 0x3b, 0xea, 0xdc, 0xf3, 0x07, 0x16,
		0xb0, 0xf8, 0x64, 0x00, 0xdb, 0xf5, 0x03, 0x2e, 0x3b, 0xb1, 0xc4, 0xe4, 0x48, 0xae, 0x7e, 0xfa,
		0xe1, 0x0f, 0x47, 0x8c, 0xd8, 0xa0, 0xec, 0x70, 0x77, 0xfe, 0x41, 0x94, 0x7a, 0xe2, 0x06, 0x93,
		0xf8, 0x18, 0x25, 0x77, 0x6e, 0xfb, 0x2e, 0x70, 0x43, 0xd1, 0x76, 0x59, 0x4f, 0x38, 0x11, 0xeb,
		0x89, 0x28, 0xb9, 0x73, 0x45, 0xf0, 0x58, 0x71, 0xa2, 0x50, 0x71, 0x27, 0xf0, 0xfb, 0xa2, 0xf3,
		0xec, 0x4a, 0x2e, 0xee, 0xee, 0xdb, 0x7e, 0x18, 0x25, 0x77, 0x2e, 0xeb, 0x7e, 0x8f, 0xe7, 0xb9,
		0x42, 0x3a, 0x41, 0xc8, 0xdd, 0xd0, 0x1f, 0x28, 0x1e, 0x8d, 0x5f, 0xdc, 0x81, 0xfc, 0x21, 0xfd,
		0x9f, 0xd2, 0x61, 0x4a, 0x85, 0xa2, 0x1d, 0xff, 0x22, 0xf5, 0xc8, 0x8d, 0x14, 0x53, 0x14, 0x01,
		0xd4, 0x8e, 0x54, 0x38, 0xe8, 0x28, 0x39, 0x21, 0x5e, 0x8d, 0xa4, 0xe1, 0x2f, 0xc6, 0x8d, 0x5a,
		0x9f, 0xb4, 0xa9, 0x37, 0xf7, 0x73, 0x34, 0xff, 0xc0, 0x9b, 0x82, 0x52, 0x94, 0xdc, 0x79, 0x27,
		0x77, 0x81, 0xd7, 0x12, 0x6d, 0xaf, 0xd6, 0x13, 0x97, 0xa3, 0x36, 0x9f, 0xde, 0x78, 0xf5, 0xe0,
		0xb1, 0x72, 0x19, 0x2a, 0xde, 0x8c, 0x1b, 0xdc, 0xbb, 0x98, 0x36, 0x78, 0x72, 0xe7, 0xd5, 0xba,
		0xdf, 0x5b, 0xa2, 0x5d, 0x97, 0xcd, 0x90, 0x7b, 0xad, 0xb8, 0xb5, 0xc7, 0x2f, 0xde, 0xf5, 0xb8,
		0x69, 0x6b, 0x49, 0x63, 0xa7, 0x9e, 0x78, 0x97, 0x71, 0x5b, 0xbf, 0x43, 0x74, 0xa2, 0x6b, 0x09,
		0x91, 0xf8, 0x38, 0xa2, 0xb9, 0xc9, 0xf9, 0x6c, 0xea, 0x39, 0xa0, 0xe2, 0xa1, 0xf6, 0xb9, 0x88,
		0xd4, 0x68, 0x40, 0x93, 0x8a, 0xd6, 0xf6, 0x57, 0x21, 0xcf, 0xfa, 0x7c, 0xc4, 0x50, 0x89, 0x95,
		0xe8, 0xb7, 0xbf, 0xb2, 0xa7, 0x57, 0x96, 0x15, 0x3e, 0x96, 0x4a, 0x95, 0x6a, 0xa9, 0x74, 0x50,
		0x3d, 0xac, 0x1e, 0x1c, 0x95, 0xcb, 0x85, 0x4a, 0x81, 0xd0, 0x41, 0x08, 0x76, 0x63, 0x44, 0xe6,
		0x79, 0xf7, 0x64, 0x34, 0xf4, 0xe4, 0xa0, 0xdf, 0xa7, 0x68, 0xda, 0x75, 0xc4, 0x43, 0x52, 0x67,
		0x1a, 0x50, 0x89, 0x18, 0x44, 0x99, 0xd4, 0xd6, 0x33, 0x28, 0x42, 0xdc, 0x69, 0x0b, 0x39, 0x13,
		0x0d, 0xb6, 0xa4, 0x9f, 0x9b, 0xe8, 0xb5, 0x40, 0x73, 0x8c, 0xa3, 0x16, 0xdb, 0xb6, 0x2c, 0xa6,
		0x11, 0x88, 0x60, 0xe6, 0x47, 0x2e, 0xbd, 0x81, 0x4a, 0x5f, 0x78, 0xd0, 0xf3, 0xcd, 0x9a, 0x02,
		0xd2, 0x74, 0x5a, 0x36, 0xf2, 0x7c, 0x47, 0x74, 0x2d, 0x2e, 0xbb, 0x81, 0x2f, 0xa4, 0xb2, 0x3a,
		0x7e, 0xdf, 0x0f, 0x35, 0xf9, 0x11, 0x8d, 0x39, 0x19, 0x9d, 0x39, 0x18, 0xe9, 0x39, 0x17, 0xa1,
		0x39, 0x16, 0xa1, 0x39, 0x95, 0x2e, 0x77, 0x26, 0xc2, 0x2b, 0x4c, 0xe6, 0x13, 0x1a, 0xc9, 0x83,
		0x69, 0xa4, 0x41, 0x0f, 0x45, 0xc8, 0x1f, 0xa0, 0xf3, 0xfd, 0xc6, 0x9c, 0x63, 0x87, 0xee, 0x98,
		0x61, 0x66, 0xac, 0xd0, 0x10, 0x25, 0xcc, 0x89, 0x0e, 0xf9, 0xc6, 0x85, 0xfc, 0xbc, 0x33, 0x9f,
		0x6f, 0xca, 0xc9, 0xff, 0x75, 0xf9, 0xbd, 0x61, 0xfe, 0x9e, 0xa3, 0xa3, 0x1b, 0xe0, 0xe0, 0xf9,
		0x78, 0x76, 0xf6, 0x7e, 0x96, 0x83, 0x8f, 0xd9, 0xd3, 0x71, 0xe4, 0x0f, 0x94, 0x13, 0xf8, 0x91,
		0xca, 0xcd, 0xcb, 0x92, 0xc5, 0x9d, 0x29, 0x0b, 0x72, 0x8a, 0x2c, 0xd3, 0xb5, 0xd8, 0x39, 0x7d,
		0x5d, 0xde, 0x5b, 0xa4, 0x74, 0x6c, 0x79, 0xd2, 0xbb, 0x85, 0x49, 0xd7, 0xa2, 0x5a, 0xed, 0x5b,
		0x8c, 0xb4, 0xaf, 0x70, 0xd5, 0xbe, 0x05, 0x68, 0xbb, 0x38, 0xcf, 0xa9, 0xc8, 0x57, 0x54, 0xb4,
		0x27, 0xb3, 0x85, 0xdc, 0x1d, 0x67, 0x1a, 0x2e, 0xb4, 0xcc, 0x56, 0x72, 0x06, 0x00, 0x6d, 0x40,
		0xa0, 0x13, 0x10, 0x68, 0x00, 0x83, 0x6e, 0x80, 0x20, 0x03, 0x14, 0x64, 0x00, 0x83, 0x0c, 0x70,
		0xec, 0x86, 0x78, 0x96, 0x37, 0xa0, 0xbc, 0x05, 0x16, 0x7d, 0xfe, 0xf6, 0x06, 0x5f, 0x74, 0xf9,
		0x9a, 0x1e, 0x98, 0xd1, 0x0e, 0x37, 0x14, 0x60, 0x87, 0x16, 0xfc, 0x50, 0x81, 0x21, 0x72, 0x70,
		0x44, 0x0e, 0x96, 0xc8, 0xc1, 0x93, 0x1e, 0x98, 0xd2, 0x04, 0x57, 0xda, 0x61, 0x2b, 0x31, 0x60,
		0xbc, 0xbe, 0x44, 0xbb, 0x9f, 0x4e, 0xa3, 0x97, 0xce, 0xe5, 0x2e, 0xf3, 0x70, 0xa6, 0x79, 0xb5,
		0x3f, 0x99, 0x8a, 0x43, 0x94, 0x2a, 0x0b, 0xd1, 0xac, 0x20, 0x44, 0x6d, 0xaf, 0x3b, 0xd9, 0x8a,
		0x40, 0x64, 0x37, 0xaa, 0x93, 0xad, 0xf0, 0xb3, 0xdb, 0xcb, 0xb3, 0xc9, 0x54, 0xe6, 0x49, 0xe2,
		0x4e, 0x9f, 0xb3, 0x5e, 0xc8, 0x7b, 0x14, 0x82, 0xce, 0x74, 0xd6, 0x55, 0x25, 0x60, 0x4b, 0x73,
		0x92, 0x45, 0xfe, 0xf0, 0x61, 0xbc, 0xef, 0xd7, 0x1d, 0x03, 0xf9, 0xae, 0x2e, 0x5d, 0xd6, 0x38,
		0xf3, 0x9a, 0xae, 0x1c, 0xa6, 0xc3, 0xe9, 0x12, 0x8b, 0x40, 0xeb, 0x40, 0xeb, 0x40, 0xeb, 0x40,
		0xeb, 0x40, 0xeb, 0x40, 0xeb, 0x40, 0xeb, 0x8c, 0xa4, 0x75, 0x09, 0x96, 0x83, 0xd9, 0xe5, 0xde,
		0x19, 0x93, 0xbd, 0x61, 0x74, 0x88, 0xdd, 0xd4, 0x20, 0xf0, 0x3a, 0xf0, 0x3a, 0xf0, 0x3a, 0xf0,
		0x3a, 0xf0, 0x3a, 0xf0, 0x3a, 0xf0, 0x3a, 0x23, 0x79, 0xdd, 0x14, 0xca, 0x41, 0xeb, 0x72, 0xef,
		0x8b, 0x71, 0x9d, 0x44, 0x32, 0xa4, 0x8e, 0x42, 0xd9, 0x46, 0xcd, 0x0b, 0x8a, 0x40, 0xe9, 0x40,
		0xe9, 0x40, 0xe9, 0x40, 0xe9, 0x40, 0xe9, 0xf4, 0x2f, 0x50, 0x4a, 0x0c, 0x89, 0x0b, 0x96, 0x0a,
		0xd9, 0xe5, 0x74, 0x8e, 0xb8, 0x9a, 0xed, 0xef, 0x9b, 0xd9, 0x46, 0xa5, 0xca, 0x2b, 0xa9, 0xc3,
		0xd4, 0xc8, 0x1d, 0x9e, 0x46, 0xf1, 0xb0, 0x34, 0xda, 0x87, 0xa3, 0x51, 0x3d, 0xce, 0x83, 0xfc,
		0xe1, 0x67, 0xe4, 0xcf, 0xe6, 0x20, 0x7f, 0xb8, 0x19, 0xea, 0x77, 0x93, 0xd4, 0x58, 0x08, 0x6b,
		0x2d, 0x14, 0x35, 0x97, 0x45, 0xda, 0xcb, 0x3f, 0xfc, 0x8b, 0x29, 0x45, 0xc4, 0x55, 0x94, 0xdc,
		0x4d, 0x94, 0x9a, 0x31, 0xcd, 0x40, 0xf1, 0x5a, 0x2a, 0x4e, 0x49, 0x64, 0x05, 0x7d, 0xca, 0x1b,
		0x29, 0xac, 0xa4, 0x07, 0x1d, 0x05, 0x1d, 0x05, 0x1d, 0x05, 0x1d, 0x05, 0x1d, 0x05, 0x1d, 0xcd,
		0x3d, 0x6e, 0x0d, 0x84, 0x54, 0x87, 0x45, 0x82, 0x6c, 0x94, 0x12, 0x19, 0x6d, 0x31, 0x79, 0x47,
		0xef, 0x1c, 0x57, 0x82, 0xc7, 0xb5, 0x7d, 0x15, 0x92, 0xec, 0x51, 0xa6, 0xf6, 0x37, 0xd6, 0x1f,
		0x70, 0x5a, 0xe7, 0x13, 0xbd, 0xb1, 0xef, 0x73, 0xc8, 0x3a, 0x4a, 0xf8, 0xf2, 0x54, 0xdc, 0x09,
		0x6a, 0x07, 0x29, 0xbd, 0x8d, 0x1d, 0xfc, 0x8e, 0x29, 0xf1, 0xc8, 0x49, 0x9d, 0x03, 0x44, 0x30,
		0xec, 0xbf, 0x75, 0x0d, 0xf6, 0x44, 0xdf, 0x35, 0x4a, 0xc5, 0xa3, 0xd2, 0x51, 0xa5, 0x5a, 0x3c,
		0x2a, 0xc3, 0x47, 0xb6, 0xdd, 0x47, 0x70, 0x0e, 0xe2, 0xc2, 0xeb, 0x16, 0xa2, 0x11, 0x95, 0x18,
		0x6a, 0x77, 0xfc, 0x87, 0x87, 0x81, 0x14, 0xea, 0x99, 0x6a, 0x4a, 0x73, 0xde, 0x40, 0x08, 0x49,
		0x8b, 0xcc, 0x81, 0x90, 0xb4, 0xc2, 0x90, 0x82, 0x90, 0xb4, 0xd2, 0x48, 0x87, 0x90, 0xf4, 0x87,
		0x06, 0x42, 0x48, 0x32, 0x68, 0x46, 0x81, 0xbc, 0xe6, 0x1a, 0x30, 0x68, 0x60, 0x5e, 0x73, 0xca,
		0x2b, 0x04, 0x8f, 0x92, 0xfb, 0x67, 0xa4, 0x36, 0x69, 0xb2, 0x54, 0x32, 0xb5, 0x24, 0x52, 0x3e,
		0x49, 0xa4, 0xa6, 0x04, 0x78, 0x29, 0x78, 0x29, 0x78, 0x29, 0x78, 0x29, 0x78, 0x29, 0x78, 0x69,
		0xee, 0x71, 0x4b, 0x04, 0x0e, 0xeb, 0x76, 0x43, 0x1e, 0x45, 0x14, 0xa9, 0xe9, 0x11, 0x21, 0x9b,
		0x26, 0x7d, 0x88, 0x24, 0xe7, 0x6f, 0x8f, 0xac, 0xc7, 0x12, 0xc1, 0xb1, 0x95, 0x1a, 0x63, 0x1f,
		0x09, 0xda, 0xd6, 0x64, 0x4a, 0xf1, 0x50, 0x92, 0x1b, 0x6e, 0x89, 0x81, 0x7b, 0x37, 0x07, 0xce,
		0xd1, 0xed, 0xcb, 0x4d, 0xc1, 0x39, 0xba, 0x1d, 0xdf, 0x16, 0xe2, 0x97, 0x5f, 0xc5, 0xe1, 0x4b,
		0xf1, 0xe6, 0xc0, 0x29, 0x4d, 0x9e, 0x16, 0xcb, 0x37, 0x07, 0x4e, 0xf9, 0x76, 0x7f, 0xef, 0xaf,
		0xbf, 0x3e, 0xac, 0xfa, 0x99, 0xfd, 0x5f, 0x87, 0x43, 0x9b, 0xdc, 0xff, 0xfe, 0x2d, 0xc5, 0xe1,
		0xd2, 0xb8, 0xac, 0xff, 0x97, 0xfc, 0x98, 0xf9, 0x7b, 0x2f, 0xaf, 0x51, 0xb3, 0xff, 0x1f, 0x82,
		0xe3, 0x86, 0x56, 0x42, 0xf1, 0x3d, 0x60, 0xec, 0xb7, 0x61, 0xac, 0x02, 0x18, 0xdb, 0x56, 0x18,
		0x8b, 0xa3, 0x0b, 0x73, 0x7a, 0x35, 0xe7, 0xf3, 0xed, 0xaf, 0xc2, 0xfb, 0xd2, 0xf0, 0x78, 0xff,
		0x57, 0x75, 0x38, 0xff, 0xf0, 0x65, 0xd1, 0xdb, 0x0a, 0xef, 0xab, 0xc3, 0xe3, 0x25, 0xbf, 0xa9,
		0x0c, 0x8f, 0x7f, 0xf3, 0x6f, 0x94, 0x87, 0x7b, 0xa9, 0xb7, 0x8e, 0x9e, 0x17, 0x97, 0x7d, 0xa0,
		0xb4, 0xe4, 0x03, 0x87, 0xcb, 0x3e, 0x70, 0xb8, 0xe4, 0x03, 0x4b, 0x4d, 0x2a, 0x2e, 0xf9, 0x40,
		0x79, 0xf8, 0x92, 0x7a, 0xff, 0xde, 0xe2, 0xb7, 0x56, 0x86, 0xfb, 0x2f, 0xcb, 0x7e, 0x57, 0x1d,
		0xbe, 0x1c, 0xef, 0xef, 0x03, 0xd8, 0xb7, 0x0e, 0xd8, 0xe1, 0x46, 0xf9, 0xbb, 0x11, 0x88, 0x8e,
		0x11, 0x3a, 0x94, 0x85, 0x95, 0x53, 0x94, 0xa8, 0xa7, 0xcd, 0x9f, 0x94, 0x43, 0x7e, 0xf5, 0xd4,
		0x22, 0x23, 0x91, 0xa9, 0x5a, 0x64, 0x0e, 0x32, 0x55, 0x2b, 0x0c, 0x2b, 0x64, 0xaa, 0x56, 0x1a,
		0xe9, 0xc8, 0x54, 0xfd, 0xa1, 0x81, 0xc8, 0x54, 0x19, 0x24, 0xc8, 0x60, 0x05, 0xd5, 0x3a, 0xda,
		0x8b, 0x79, 0x2b, 0xa8, 0x5e, 0x73, 0x0b, 0xc1, 0xa3, 0x37, 0x3f, 0x63, 0x25, 0x15, 0x51, 0xd6,
		0x2a, 0xe4, 0x23, 0xeb, 0x8b, 0xae, 0x13, 0x72, 0x16, 0xf9, 0x92, 0x1e, 0x61, 0x9d, 0xb3, 0x0f,
		0x5c, 0x15, 0x5c, 0x15, 0x5c, 0x15, 0x5c, 0x15, 0x5c, 0x15, 0x5c, 0x75, 0xc7, 0xb8, 0xaa, 0xe8,
		0x72, 0xa9, 0x84, 0x7a, 0x26, 0xca, 0x57, 0x09, 0x6d, 0x5f, 0xb6, 0xeb, 0x93, 0xa6, 0x3a, 0x61,
		0x11, 0xc1, 0x90, 0x3a, 0xed, 0xd0, 0xfa, 0xc5, 0xb7, 0xda, 0x79, 0xfd, 0xd4, 0x6b, 0x35, 0xae,
		0xaf, 0xce, 0xbc, 0xd6, 0x59, 0xed, 0xb2, 0x71, 0x41, 0x2d, 0xba, 0xc6, 0xbb, 0xd4, 0x23, 0x92,
		0x69, 0x22, 0xa2, 0xfb, 0xfa, 0xe7, 0x7b, 0xb7, 0x76, 0xe9, 0x9d, 0x37, 0x1a, 0x4d, 0x1b, 0x15,
		0x1b, 0xb6, 0xa6, 0x4b, 0x3f, 0x9d, 0x5f, 0x5f, 0x5e, 0x9d, 0xb5, 0xd0, 0xaf, 0xdb, 0xd6, 0xaf,
		0x8d, 0x8b, 0xcf, 0x67, 0xa7, 0xe8, 0xd1, 0xed, 0xe9, 0xd1, 0x46, 0xab, 0xfe, 0xa5, 0x7e, 0x51,
		0xbb, 0x6a, 0xb4, 0x6c, 0x54, 0x03, 0xf9, 0xc7, 0xeb, 0x16, 0xf3, 0x11, 0x62, 0x56, 0x50, 0x50,
		0x07, 0xfb, 0x2c, 0x52, 0xce, 0x83, 0xdf, 0x15, 0x3d, 0xc1, 0xbb, 0xf4, 0xc4, 0xc1, 0xb7, 0xe6,
		0x41, 0x1b, 0x5c, 0x64, 0x0e, 0xb4, 0xc1, 0x15, 0x06, 0x14, 0xb4, 0xc1, 0x95, 0x46, 0x3a, 0xb4,
		0xc1, 0x3f, 0x34, 0x10, 0xda, 0xa0, 0x41, 0xfc, 0x97, 0xb0, 0x36, 0xa8, 0xc4, 0x03, 0x57, 0xa2,
		0xf3, 0x23, 0xaa, 0x94, 0x08, 0x6a, 0x83, 0x84, 0xb6, 0x11, 0xd8, 0xd7, 0x72, 0x5c, 0xc4, 0xd0,
		0x96, 0x4c, 0xfa, 0x11, 0xef, 0xf8, 0xb2, 0x4b, 0x6a, 0x97, 0x2a, 0xea, 0xde, 0xfe, 0x66, 0x43,
		0xa1, 0xee, 0xed, 0x1f, 0xd8, 0x87, 0x9a, 0x9e, 0x5b, 0xac, 0xcd, 0x98, 0x51, 0xf7, 0xb6, 0xf0,
		0xb1, 0x54, 0xaa, 0x54, 0x4b, 0xa5, 0x83, 0xea, 0x61, 0xf5, 0xe0, 0xa8, 0x5c, 0x2e, 0x54, 0x0a,
		0xa8, 0x80, 0xbb, 0xf5, 0xde, 0x82, 0x7d, 0x1c, 0x0b, 0x2f, 0xec, 0xe3, 0x20, 0x13, 0x4d, 0xed,
		0xe9, 0x89, 0xe3, 0xe4, 0xd4, 0xae, 0xa9, 0x61, 0x44, 0x66, 0x43, 0xa7, 0xbc, 0xc7, 0x06, 0x7d,
		0x45, 0x8a, 0xab, 0xda, 0x07, 0x34, 0xe6, 0xce, 0xb7, 0xd0, 0x22, 0x17, 0x99, 0x03, 0x2d, 0x72,
		0x05, 0x77, 0x87, 0x16, 0xb9, 0xd2, 0x48, 0x87, 0x16, 0xf9, 0x87, 0x06, 0x42, 0x8b, 0x34, 0x68,
		0xbe, 0x87, 0xe3, 0xad, 0x56, 0x47, 0x41, 0x1c, 0x6f, 0xf5, 0x6f, 0x17, 0x64, 0xbe, 0xf5, 0xb4,
		0x0c, 0xc8, 0x7c, 0x5b, 0x2f, 0x5c, 0x40, 0xe6, 0x5b, 0xcf, 0x35, 0x70, 0xbc, 0xd5, 0xee, 0xf8,
		0x08, 0xc4, 0xbd, 0xc5, 0x62, 0x00, 0xc4, 0x3d, 0x2a, 0x31, 0xd4, 0x9e, 0x6c, 0x26, 0xf5, 0x07,
		0x8a, 0xd3, 0x13, 0xf8, 0x5e, 0x1b, 0x07, 0x01, 0x69, 0x91, 0x39, 0x10, 0x90, 0x56, 0x18, 0x4e,
		0x10, 0x90, 0x56, 0x1a, 0xe9, 0x10, 0x90, 0xfe, 0xd0, 0x40, 0x08, 0x48, 0x06, 0xcd, 0x24, 0x08,
		0x0b, 0x48, 0x6d, 0xdf, 0xef, 0x73, 0x26, 0x29, 0x6e, 0x72, 0x2d, 0x80, 0xca, 0x11, 0xb0, 0x40,
		0xb3, 0x0b, 0xd9, 0x35, 0x29, 0x7d, 0xc5, 0x46, 0x93, 0x46, 0x12, 0x0e, 0x64, 0x47, 0x9d, 0x7b,
		0xfe, 0xc0, 0x82, 0x49, 0x91, 0x1e, 0xd7, 0x0f, 0xb8, 0xec, 0xc4, 0x44, 0xc9, 0x91, 0x5c, 0xfd,
		0xf4, 0xc3, 0x1f, 0x8e, 0x90, 0x91, 0x62, 0xb2, 0xc3, 0xdd, 0xf9, 0x07, 0x51, 0xea, 0x89, 0x1b,
		0x84, 0xbe, 0xf2, 0x3b, 0x7e, 0x3f, 0x4a, 0xee, 0xdc, 0xf6, 0x5d, 0xe0, 0x86, 0xa2, 0xed, 0xb2,
		0x9e, 0x70, 0x22, 0xd6, 0x13, 0x51, 0x72, 0xe7, 0xc6, 0xa5, 0xac, 0xa3, 0x50, 0x71, 0x27, 0xf0,
		0xfb, 0xa2, 0xf3, 0xec, 0x4a, 0x2e, 0xee, 0xee, 0xdb, 0x7e, 0x18, 0x25, 0x77, 0x2e, 0xeb, 0x7e,
		0x8f, 0xd1, 0xc0, 0x1f, 0x28, 0x27, 0xf0, 0x23, 0xe5, 0xc6, 0x14, 0x37, 0x1a, 0xbf, 0x8c, 0x0b,
		0x03, 0x11, 0x70, 0x76, 0x3b, 0x52, 0xe1, 0xa0, 0xa3, 0xe4, 0x24, 0x0a, 0x35, 0x92, 0x56, 0xbc,
		0x18, 0xb7, 0x50, 0x7d, 0xd2, 0x40, 0xde, 0xdc, 0xcf, 0xd1, 0xfc, 0x03, 0xaf, 0x39, 0x6d, 0xc1,
		0xe4, 0xce, 0x3b, 0xb9, 0x0b, 0xbc, 0x96, 0x68, 0x7b, 0xb5, 0x9e, 0xb8, 0x1c, 0x35, 0xe0, 0xf4,
		0xc6, 0xab, 0x07, 0x8f, 0x95, 0xcb, 0x50, 0xf1, 0x66, 0xdc, 0x7a, 0xde, 0xc5, 0xb4, 0xf5, 0x92,
		0x3b, 0xaf, 0xd6, 0xfd, 0xde, 0x12, 0xed, 0xc6, 0x40, 0x35, 0xfd, 0x48, 0x79, 0xad, 0xb8, 0xe9,
		0xc6, 0x2f, 0xde, 0x65, 0xdc, 0x74, 0xef, 0x76, 0x33, 0x12, 0x68, 0x8c, 0x02, 0xf6, 0x40, 0xfe,
		0x90, 0xfe, 0x4f, 0xe9, 0x30, 0xa5, 0x42, 0xd1, 0x1e, 0xf5, 0x88, 0xf6, 0x48, 0x30, 0xcb, 0xbf,
		0xa4, 0x6d, 0xd3, 0x1c, 0x2f, 0xa7, 0xe8, 0xa9, 0xd9, 0x0c, 0x2a, 0x93, 0x47, 0x4a, 0x93, 0x46,
		0x9a, 0x93, 0x45, 0x6a, 0x93, 0x44, 0xb2, 0x93, 0x43, 0xb2, 0x93, 0x42, 0xb2, 0x93, 0xc1, 0xdd,
		0x66, 0xae, 0xa7, 0x22, 0xa4, 0x11, 0x76, 0x52, 0x20, 0x45, 0x4f, 0x8d, 0x4d, 0x9b, 0x48, 0x4b,
		0x93, 0x2d, 0x40, 0x93, 0x25, 0x0f, 0xaf, 0xb4, 0x61, 0x96, 0x2a, 0xdc, 0x92, 0x87, 0x5d, 0xf2,
		0xf0, 0x4b, 0x1e, 0x86, 0xe9, 0x48, 0x59, 0x16, 0x21, 0x4d, 0x96, 0x0a, 0x3c, 0x27, 0x06, 0x8d,
		0xb0, 0xcf, 0x51, 0xd4, 0x94, 0xe2, 0x37, 0x11, 0x75, 0x66, 0x22, 0x31, 0xd7, 0xa3, 0x95, 0x3a,
		0x25, 0x0b, 0xd7, 0x94, 0x61, 0xdb, 0x0c, 0xf8, 0xa6, 0x0e, 0xe3, 0xc6, 0xc0, 0xb9, 0x31, 0xb0,
		0x6e, 0x0c, 0xbc, 0xd3, 0x82, 0x79, 0x62, 0x70, 0x9f, 0xf4, 0xe2, 0x15, 0x45, 0x80, 0xb5, 0x68,
		0x9f, 0x93, 0x91, 0x9a, 0x0d, 0x57, 0x69, 0x9e, 0x55, 0x3a, 0x3d, 0x37, 0x63, 0x7c, 0xfc, 0xc5,
		0x8c, 0xac, 0x60, 0xad, 0x24, 0x75, 0xd7, 0xb4, 0xc7, 0x89, 0x49, 0xb2, 0xc4, 0x97, 0x4a, 0xde,
		0x74, 0xa1, 0x37, 0x82, 0xf4, 0x82, 0xf4, 0x82, 0xf4, 0x82, 0xf4, 0x82, 0xf4, 0x02, 0x59, 0x17,
		0xf7, 0x22, 0x35, 0xad, 0x2b, 0x31, 0x2c, 0xe6, 0x68, 0x7d, 0x4e, 0x78, 0xdb, 0xe1, 0x1b, 0xe9,
		0x6b, 0x64, 0x29, 0x51, 0x47, 0xa5, 0xa9, 0x80, 0x91, 0x27, 0x05, 0x26, 0x90, 0x03, 0xb3, 0x48,
		0x82, 0x29, 0x64, 0xc1, 0x38, 0xd2, 0x60, 0x1c, 0x79, 0x30, 0x8e, 0x44, 0xd0, 0x24, 0x13, 0x44,
		0x49, 0x45, 0xd2, 0xbb, 0x64, 0x15, 0xb5, 0x54, 0xdc, 0x1c, 0x08, 0xa9, 0x0a, 0x15, 0xca, 0x31,
		0x73, 0x82, 0xe2, 0x15, 0xc2, 0x26, 0xd2, 0xac, 0xa6, 0x31, 0x7f, 0xd1, 0xc6, 0x1c, 0x8b, 0x7a,
		0xb5, 0x8d, 0x94, 0xb1, 0xc4, 0xab, 0x6f, 0xa4, 0xec, 0x35, 0xa5, 0xd2, 0x40, 0x3a, 0x56, 0x51,
		0xaf, 0x3c, 0x60, 0x08, 0x2c, 0xbd, 0x75, 0x35, 0xf6, 0x64, 0x9e, 0xab, 0x55, 0xca, 0xe5, 0xc3,
		0x32, 0xdc, 0x0d, 0xee, 0x66, 0x00, 0x37, 0xa5, 0x6f, 0xdd, 0x2d, 0x38, 0xfd, 0x0a, 0x6e, 0xc1,
		0x9f, 0x54, 0xc8, 0x9c, 0x81, 0x8c, 0x14, 0x6b, 0xf7, 0x89, 0xb3, 0xfb, 0x90, 0xf7, 0x78, 0xc8,
		0x65, 0x07, 0xa4, 0x74, 0x83, 0x53, 0xa5, 0xd6, 0xe7, 0x4f, 0x56, 0xa9, 0x58, 0x2d, 0x58, 0x8e,
		0x55, 0xb3, 0x4e, 0xfc, 0xb0, 0xcb, 0x43, 0xeb, 0x0b, 0x53, 0xfc, 0x27, 0x7b, 0xb6, 0xa6, 0x1b,
		0x2d, 0xad, 0x92, 0xb5, 0x77, 0xf2, 0xa5, 0xe9, 0x94, 0xf6, 0x6d, 0x03, 0x38, 0x80, 0x21, 0x72,
		0xd4, 0x6c, 0x2a, 0x38, 0x93, 0xa5, 0x66, 0x23, 0xdc, 0x10, 0x54, 0x35, 0x4d, 0xa1, 0x4a, 0x0c,
		0x7f, 0xad, 0x54, 0xad, 0xe8, 0x02, 0x60, 0x0e, 0x60, 0x0e, 0x3b, 0xdd, 0x5e, 0x14, 0xcb, 0x36,
		0xd2, 0x5d, 0x53, 0x9f, 0x42, 0x5c, 0xaa, 0x6b, 0xeb, 0x67, 0x80, 0x84, 0x0c, 0xe3, 0x1f, 0x19,
		0x88, 0x0c, 0xe3, 0x8e, 0x52, 0x3a, 0x64, 0x18, 0x73, 0xe5, 0x6d, 0xc8, 0x30, 0x6e, 0x9b, 0x1a,
		0x61, 0x56, 0x86, 0xf1, 0xa3, 0x01, 0x09, 0xc6, 0x32, 0x12, 0x8c, 0xdb, 0xaf, 0xe5, 0x20, 0xc1,
		0x98, 0xa1, 0xbd, 0xc8, 0x78, 0xec, 0x38, 0x2a, 0xbd, 0x75, 0x35, 0x13, 0x13, 0x8c, 0xc5, 0x32,
		0xd2, 0x8b, 0x70, 0x36, 0x13, 0x88, 0x29, 0x7d, 0xeb, 0x90, 0x5e, 0x5c, 0xc5, 0x2d, 0x90, 0x5e,
		0xdc, 0x51, 0x4a, 0x8a, 0xf4, 0x22, 0x99, 0x89, 0x20, 0xd2, 0x8b, 0xf9, 0x1b, 0x8e, 0xf4, 0x22,
		0xac, 0x33, 0x84, 0x39, 0x20, 0xbd, 0xf8, 0x1b, 0xfe, 0x1c, 0xe7, 0xec, 0x1e, 0x27, 0xd3, 0x29,
		0x13, 0xf2, 0x8b, 0x63, 0x5b, 0x91, 0x60, 0x5c, 0xc7, 0x3c, 0x24, 0x18, 0x37, 0x38, 0x1a, 0x91,
		0x60, 0xcc, 0x88, 0xcc, 0x21, 0xc1, 0x98, 0x39, 0x73, 0x43, 0x82, 0x71, 0xdb, 0xf4, 0x08, 0x73,
		0x12, 0x8c, 0x6d, 0x21, 0x59, 0xf8, 0x6c, 0x40, 0x86, 0xf1, 0x88, 0xb0, 0x89, 0xe7, 0x5c, 0xde,
		0xc5, 0xc5, 0xc2, 0xa0, 0xe7, 0xfc, 0x61, 0x4b, 0x1a, 0x99, 0x62, 0x2c, 0x20, 0xeb, 0x91, 0x71,
		0xb0, 0x42, 0x8a, 0x31, 0x03, 0x57, 0xc3, 0x1e, 0x46, 0xb8, 0xdb, 0x96, 0xb8, 0x1b, 0xa4, 0xc2,
		0xb5, 0x2e, 0x24, 0x19, 0x57, 0x71, 0x0b, 0x24, 0x19, 0x77, 0x94, 0x94, 0x22, 0xc9, 0x48, 0x66,
		0x2e, 0x88, 0x24, 0x63, 0xfe, 0x86, 0x23, 0xc9, 0x08, 0xeb, 0x0c, 0x61, 0x0e, 0x48, 0x32, 0xfe,
		0x1e, 0x8f, 0xe1, 0xb2, 0xcb, 0xbb, 0xf4, 0x53, 0x8c, 0x89, 0xa5, 0x48, 0x30, 0xae, 0x63, 0x1e,
		0x12, 0x8c, 0x1b, 0x1c, 0x8b, 0x48, 0x30, 0x66, 0x44, 0xe4, 0x90, 0x60, 0xcc, 0x9c, 0xb5, 0x21,
		0xc1, 0xb8, 0x6d, 0x5a, 0x84, 0x41, 0x09, 0x46, 0xdf, 0xef, 0x73, 0x26, 0x0d, 0xc8, 0x30, 0x16,
		0x0a, 0x18, 0x82, 0xab, 0xd1, 0x48, 0xc8, 0x61, 0x1b, 0xbf, 0x20, 0x87, 0x81, 0x3d, 0xad, 0xc3,
		0xa2, 0x20, 0x87, 0xe9, 0x20, 0x56, 0x90, 0xc3, 0x60, 0x9d, 0x05, 0x39, 0xcc, 0x64, 0x2e, 0x63,
		0xfb, 0x81, 0x12, 0xbe, 0x64, 0x7d, 0xfa, 0x72, 0x58, 0x62, 0x29, 0xe4, 0xb0, 0x75, 0xcc, 0x83,
		0x1c, 0xb6, 0xc9, 0xb1, 0x08, 0x39, 0x2c, 0x1b, 0x22, 0x07, 0x39, 0x2c, 0x73, 0xd6, 0x06, 0x39,
		0x6c, 0xdb, 0xb4, 0x08, 0xc8, 0x61, 0x9b, 0x87, 0x71, 0xc8, 0x61, 0x2b, 0xb5, 0x1a, 0xe4, 0xb0,
		0x2c, 0x2e, 0xc8, 0x61, 0x60, 0x4f, 0xeb, 0xb0, 0x28, 0xc8, 0x61, 0x3a, 0x88, 0x15, 0xe4, 0x30,
		0x58, 0x67, 0x41, 0x0e, 0x33, 0x99, 0xcb, 0xd8, 0x01, 0x0b, 0x95, 0x30, 0x41, 0x0d, 0x9b, 0x1a,
		0x0a, 0x31, 0x6c, 0x1d, 0xf3, 0x20, 0x86, 0x6d, 0x70, 0x28, 0x42, 0x0c, 0xcb, 0x88, 0xc6, 0x41,
		0x0c, 0xcb, 0x9c, 0xb3, 0x41, 0x0c, 0xdb, 0x36, 0x25, 0x02, 0x62, 0xd8, 0xe6, 0x61, 0x1c, 0x62,
		0xd8, 0x4a, 0xad, 0x06, 0x31, 0x2c, 0x8b, 0x0b, 0x62, 0x18, 0xd8, 0xd3, 0x3a, 0x2c, 0x0a, 0x62,
		0x98, 0x0e, 0x62, 0x05, 0x31, 0x0c, 0xd6, 0x59, 0x10, 0xc3, 0x4c, 0xe6, 0x32, 0xb6, 0x0a, 0x99,
		0x8c, 0xc4, 0xa4, 0x16, 0x0a, 0x71, 0x3d, 0xec, 0x95, 0xad, 0x90, 0xc4, 0xd6, 0x31, 0x0f, 0x92,
		0xd8, 0x06, 0x47, 0x23, 0x24, 0xb1, 0x8c, 0xc8, 0x1c, 0x24, 0xb1, 0xcc, 0x99, 0x1b, 0x24, 0xb1,
		0x6d, 0xd3, 0x23, 0x20, 0x89, 0x6d, 0x1e, 0xc6, 0x21, 0x89, 0xad, 0xd4, 0x6a, 0x90, 0xc4, 0xb2,
		0xb8, 0x20, 0x89, 0x81, 0x3d, 0xad, 0xc3, 0xa2, 0x20, 0x89, 0xe9, 0x20, 0x56, 0x90, 0xc4, 0x60,
		0x9d, 0x05, 0x49, 0xcc, 0x50, 0x8b, 0x88, 0x31, 0x2b, 0xbb, 0x26, 0xa5, 0xaf, 0x98, 0x12, 0x3e,
		0xcd, 0x92, 0xf1, 0x76, 0xd4, 0xb9, 0xe7, 0x0f, 0x2c, 0x60, 0xf1, 0xc9, 0x00, 0xb6, 0xeb, 0x07,
		0x5c, 0x76, 0x62, 0x89, 0xc9, 0x91, 0x5c, 0xfd, 0xf4, 0xc3, 0x1f, 0x8e, 0x18, 0xb1, 0x41, 0xd9,
		0xe1, 0xee, 0xfc, 0x83, 0x28, 0xf5, 0xc4, 0x0d, 0x26, 0xf1, 0x31, 0x4a, 0xee, 0xdc, 0xf6, 0x5d,
		0xe0, 0x86, 0xa2, 0xed, 0xb2, 0x9e, 0x70, 0x22, 0xd6, 0x13, 0x51, 0x72, 0xe7, 0x8a, 0xe0, 0xb1,
		0xe2, 0x44, 0xa1, 0xe2, 0x4e, 0xe0, 0xf7, 0x45, 0xe7, 0xd9, 0x95, 0x5c, 0xdc, 0xdd, 0xb7, 0xfd,
		0x30, 0x4a, 0xee, 0x5c, 0xd6, 0xfd, 0x1e, 0xcf, 0x73, 0xfd, 0x81, 0x72, 0x02, 0x3f, 0x52, 0x6e,
		0xe8, 0x0f, 0x14, 0x8f, 0xc6, 0x2f, 0xee, 0x40, 0xfe, 0x90, 0xfe, 0x4f, 0xe9, 0x30, 0xa5, 0x42,
		0xd1, 0x8e, 0x7f, 0x91, 0x7a, 0xe4, 0x46, 0x8a, 0x29, 0x8a, 0x10, 0x6a, 0x47, 0x2a, 0x1c, 0x74,
		0x94, 0x9c, 0x50, 0xaf, 0x46, 0xd2, 0xf4, 0x17, 0xe3, 0x66, 0xad, 0x4f, 0x5a, 0xd5, 0x9b, 0xfb,
		0x39, 0x9a, 0x7f, 0xe0, 0x4d, 0x61, 0x29, 0x4a, 0xee, 0xbc, 0x93, 0xbb, 0xc0, 0x6b, 0x89, 0xb6,
		0x57, 0xeb, 0x89, 0xcb, 0x51, 0xab, 0x4f, 0x6f, 0xbc, 0x7a, 0xf0, 0x58, 0xb9, 0x0c, 0x15, 0x6f,
		0xc6, 0x4d, 0xee, 0x5d, 0x4c, 0x9b, 0x3c, 0xb9, 0xf3, 0x6a, 0xdd, 0xef, 0x2d, 0xd1, 0x6e, 0x0c,
		0x54, 0xd3, 0x8f, 0x94, 0xd7, 0x8a, 0xdb, 0x7b, 0xfc, 0xe2, 0x5d, 0x8f, 0x1b, 0xb7, 0x96, 0x34,
		0x77, 0xea, 0x89, 0x77, 0x19, 0xb7, 0xf6, 0x3b, 0x44, 0x28, 0xba, 0x96, 0x10, 0x89, 0x91, 0x23,
		0xaa, 0x9b, 0x9c, 0xd1, 0xa6, 0x9e, 0x03, 0x2a, 0x3e, 0x6a, 0x9f, 0x8b, 0x48, 0x8d, 0x06, 0x34,
		0xa9, 0x88, 0x6d, 0x7f, 0x15, 0xf2, 0xac, 0xcf, 0x47, 0x2c, 0x95, 0x58, 0x99, 0x7e, 0xfb, 0x2b,
		0x7b, 0x7a, 0x65, 0x59, 0xe1, 0x63, 0xa9, 0x54, 0xa9, 0x96, 0x4a, 0x07, 0xd5, 0xc3, 0xea, 0xc1,
		0x51, 0xb9, 0x5c, 0xa8, 0x14, 0x08, 0x1d, 0x86, 0x60, 0x37, 0x46, 0x84, 0x9e, 0x77, 0x4f, 0x46,
		0x43, 0x4f, 0x0e, 0xfa, 0x7d, 0x8a, 0xa6, 0x5d, 0x47, 0x3c, 0x24, 0x75, 0xae, 0x01, 0x95, 0x88,
		0x41, 0x94, 0x4d, 0xed, 0x00, 0x8b, 0x22, 0xc4, 0x9f, 0xb6, 0x92, 0x37, 0xd1, 0x60, 0x4c, 0xfa,
		0xf9, 0x89, 0x5e, 0x0b, 0x34, 0xc7, 0x39, 0x6a, 0xf1, 0x6d, 0xeb, 0xe2, 0x1a, 0x81, 0x28, 0xb6,
		0x0d, 0xd1, 0x4b, 0x6f, 0xb0, 0xd2, 0x17, 0x22, 0xf4, 0x7c, 0xb3, 0xa6, 0xa0, 0x34, 0x9d, 0x9e,
		0x8d, 0xbc, 0xdf, 0x11, 0x5d, 0x8b, 0xcb, 0x6e, 0xe0, 0x0b, 0xa9, 0xac, 0x8e, 0xdf, 0xf7, 0x43,
		0x4d, 0x9e, 0x44, 0x63, 0x6e, 0x46, 0x67, 0x2e, 0x46, 0x7a, 0xee, 0x45, 0x68, 0xae, 0x45, 0x68,
		0x6e, 0xa5, 0xcb, 0x9d, 0x89, 0x70, 0x0b, 0xb3, 0x39, 0x85, 0x46, 0x02, 0x61, 0x1e, 0x71, 0xd0,
		0x43, 0x13, 0xf2, 0x07, 0xe9, 0x7c, 0xbf, 0x31, 0xe7, 0xf8, 0xa1, 0x3b, 0x6e, 0x98, 0x1a, 0x2f,
		0x34, 0x44, 0x0a, 0x93, 0x22, 0x44, 0xbe, 0xb1, 0x21, 0x3f, 0x0f, 0xcd, 0xe7, 0x9b, 0x72, 0x8a,
		0x01, 0xba, 0x7c, 0xdf, 0x38, 0x9f, 0xcf, 0xd1, 0xd9, 0x8d, 0x70, 0xf2, 0x7c, 0xbc, 0x3b, 0x7b,
		0x5f, 0xcb, 0xc1, 0xcf, 0xec, 0x37, 0x63, 0x29, 0xcc, 0x6f, 0xa5, 0x62, 0xb2, 0xe6, 0x73, 0xde,
		0x80, 0x9c, 0x62, 0xcb, 0x74, 0x85, 0x76, 0x4e, 0x5f, 0x97, 0xf7, 0xc6, 0x29, 0x1d, 0x1b, 0xa1,
		0xf4, 0x6e, 0x6c, 0xd2, 0xb5, 0xd4, 0x56, 0xfb, 0xc6, 0x23, 0xed, 0xeb, 0x5e, 0xb5, 0x6f, 0x0c,
		0xda, 0x2e, 0xd6, 0x73, 0x2a, 0xf2, 0x95, 0x17, 0xed, 0xc9, 0x8c, 0x21, 0x77, 0xc7, 0x99, 0x86,
		0x0b, 0x2d, 0x33, 0x96, 0x9c, 0x01, 0x40, 0x1b, 0x10, 0xe8, 0x04, 0x04, 0x1a, 0xc0, 0xa0, 0x1b,
		0x20, 0xc8, 0x00, 0x05, 0x19, 0xc0, 0x20, 0x03, 0x1c, 0xbb, 0x21, 0xa1, 0xe5, 0x0d, 0x28, 0x6f,
		0x81, 0x45, 0x9f, 0xbf, 0xbd, 0xc1, 0x17, 0x5d, 0xbe, 0xa6, 0x07, 0x66, 0xb4, 0xc3, 0x0d, 0x05,
		0xd8, 0xa1, 0x05, 0x3f, 0x54, 0x60, 0x88, 0x1c, 0x1c, 0x91, 0x83, 0x25, 0x72, 0xf0, 0xa4, 0x07,
		0xa6, 0x34, 0xc1, 0x95, 0x76, 0xd8, 0x4a, 0x0c, 0x18, 0xaf, 0x34, 0xd1, 0xee, 0xa7, 0xd3, 0xe8,
		0xa5, 0x73, 0xe1, 0xcb, 0x3c, 0x9c, 0x69, 0x5e, 0xff, 0x4f, 0xa6, 0x0e, 0x11, 0xa5, 0x7a, 0x43,
		0x34, 0xeb, 0x0a, 0x51, 0xdb, 0x01, 0x4f, 0xb6, 0x4e, 0x10, 0xd9, 0xed, 0xeb, 0x64, 0xeb, 0xfe,
		0xec, 0xf6, 0x62, 0x6d, 0x32, 0xf5, 0x7a, 0x92, 0xb8, 0xd3, 0xe7, 0xac, 0x17, 0xf2, 0x1e, 0x85,
		0xa0, 0x33, 0x9d, 0x75, 0x55, 0x09, 0xd8, 0xd2, 0x9c, 0xe4, 0x91, 0x3f, 0x7c, 0x18, 0xef, 0x05,
		0x76, 0xc7, 0x40, 0xbe, 0xab, 0x8b, 0x98, 0x35, 0xce, 0xbc, 0xa6, 0x6b, 0x88, 0xe9, 0x70, 0xba,
		0xc4, 0x22, 0xd0, 0x3a, 0xd0, 0x3a, 0xd0, 0x3a, 0xd0, 0x3a, 0xd0, 0x3a, 0xd0, 0x3a, 0xd0, 0x3a,
		0x23, 0x69, 0x5d, 0x82, 0xe5, 0x60, 0x76, 0xb9, 0x77, 0xc6, 0x64, 0x97, 0x18, 0x1d, 0x62, 0x37,
		0x35, 0x08, 0xbc, 0x0e, 0xbc, 0x0e, 0xbc, 0x0e, 0xbc, 0x0e, 0xbc, 0x0e, 0xbc, 0x0e, 0xbc, 0xce,
		0x48, 0x5e, 0x37, 0x85, 0x72, 0xd0, 0xba, 0xdc, 0xfb, 0x62, 0x5c, 0x3b, 0x91, 0x0c, 0xa9, 0xa3,
		0x50, 0xca, 0x51, 0xf3, 0x82, 0x22, 0x50, 0x3a, 0x50, 0x3a, 0x50, 0x3a, 0x50, 0x3a, 0x50, 0x3a,
		0xfd, 0x0b, 0x94, 0x12, 0x43, 0xe2, 0x12, 0xa6, 0x42, 0x76, 0x39, 0x9d, 0x83, 0xaf, 0x66, 0xdb,
		0xfb, 0x66, 0xb6, 0x51, 0xa9, 0xfb, 0x4a, 0xea, 0x88, 0x35, 0x72, 0x47, 0xaa, 0x51, 0x3c, 0x42,
		0x8d, 0xf6, 0x91, 0x69, 0x54, 0x0f, 0xf9, 0x20, 0x7f, 0x24, 0x1a, 0xf9, 0x13, 0x3b, 0xc8, 0x1f,
		0x79, 0x86, 0x8a, 0xde, 0x24, 0x35, 0x16, 0xc2, 0x5a, 0x0b, 0x45, 0xcd, 0x65, 0x91, 0xf6, 0xf2,
		0x0f, 0xff, 0x62, 0x4a, 0x11, 0x71, 0x15, 0x25, 0x77, 0x13, 0xa5, 0x66, 0x4c, 0x33, 0x50, 0xca,
		0x96, 0x8a, 0x53, 0x12, 0x59, 0x41, 0x9f, 0xf2, 0x46, 0x0a, 0x2b, 0xe9, 0x41, 0x47, 0x41, 0x47,
		0x41, 0x47, 0x41, 0x47, 0x41, 0x47, 0x41, 0x47, 0x73, 0x8f, 0x5b, 0x03, 0x21, 0xd5, 0x61, 0x91,
		0x20, 0x1b, 0xa5, 0x44, 0x46, 0x5b, 0x4c, 0xde, 0xd1, 0x3b, 0xdd, 0x95, 0xe0, 0x21, 0x6e, 0x5f,
		0x85, 0x24, 0x7b, 0xc0, 0xa9, 0xfd, 0x8d, 0xf5, 0x07, 0x9c, 0xd6, 0x89, 0x45, 0x6f, 0xec, 0xfb,
		0x1c, 0xb2, 0x8e, 0x12, 0xbe, 0x3c, 0x15, 0x77, 0x82, 0xda, 0xd1, 0x4a, 0x6f, 0x63, 0x07, 0xbf,
		0x63, 0x4a, 0x3c, 0x72, 0x52, 0x27, 0x03, 0x11, 0x0c, 0xfb, 0x6f, 0x5d, 0x83, 0x3d, 0xd1, 0x77,
		0x8d, 0x52, 0xf1, 0xa8, 0x74, 0x54, 0xa9, 0x16, 0x8f, 0xca, 0xf0, 0x91, 0x6d, 0xf7, 0x11, 0x9c,
		0x8c, 0xb8, 0xf0, 0xba, 0x85, 0x68, 0x44, 0x25, 0x86, 0xda, 0x1d, 0xff, 0xe1, 0x61, 0x20, 0x85,
		0x7a, 0xa6, 0x9a, 0xd2, 0x9c, 0x37, 0x10, 0x42, 0xd2, 0x22, 0x73, 0x20, 0x24, 0xad, 0x30, 0xa4,
		0x20, 0x24, 0xad, 0x34, 0xd2, 0x21, 0x24, 0xfd, 0xa1, 0x81, 0x10, 0x92, 0x0c, 0x9a, 0x51, 0x20,
		0xaf, 0xb9, 0x06, 0x0c, 0x1a, 0x98, 0xd7, 0x9c, 0xf2, 0x0a, 0xc1, 0xa3, 0xe4, 0xfe, 0x19, 0xa9,
		0x4d, 0x9a, 0x2c, 0x95, 0x4c, 0x2d, 0x89, 0x94, 0x4f, 0x12, 0xa9, 0x29, 0x01, 0x5e, 0x0a, 0x5e,
		0x0a, 0x5e, 0x0a, 0x5e, 0x0a, 0x5e, 0x0a, 0x5e, 0x9a, 0x7b, 0xdc, 0x12, 0x81, 0xc3, 0xba, 0xdd,
		0x90, 0x47, 0x11, 0x45, 0x6a, 0x7a, 0x44, 0xc8, 0xa6, 0x49, 0x1f, 0x22, 0xc9, 0xf9, 0xdb, 0x23,
		0xeb, 0xb1, 0x44, 0x70, 0x6c, 0xa5, 0xc6, 0xd8, 0x47, 0x82, 0xb6, 0x35, 0x99, 0x52, 0x3c, 0x94,
		0xe4, 0x86, 0x5b, 0x62, 0xe0, 0xde, 0xcd, 0x81, 0x73, 0x74, 0xfb, 0x72, 0x53, 0x70, 0x8e, 0x6e,
		0xc7, 0xb7, 0x85, 0xf8, 0xe5, 0x57, 0x71, 0xf8, 0x52, 0xbc, 0x39, 0x70, 0x4a, 0x93, 0xa7, 0xc5,
		0xf2, 0xcd, 0x81, 0x53, 0xbe, 0xdd, 0xdf, 0xfb, 0xeb, 0xaf, 0x0f, 0xab, 0x7e, 0x66, 0xff, 0xd7,
		0xe1, 0xd0, 0x26, 0xf7, 0xbf, 0x7f, 0x4b, 0x71, 0xb8, 0x34, 0x2e, 0xeb, 0xff, 0x25, 0x3f, 0x66,
		0xfe, 0xde, 0xcb, 0x6b, 0xd4, 0xec, 0xff, 0x87, 0xe0, 0xb8, 0xa1, 0x95, 0x50, 0x7c, 0x0f, 0x18,
		0xfb, 0x6d, 0x18, 0xab, 0x00, 0xc6, 0xb6, 0x15, 0xc6, 0xe2, 0xe8, 0xc2, 0x9c, 0x5e, 0xcd, 0xf9,
		0x7c, 0xfb, 0xab, 0xf0, 0xbe, 0x34, 0x3c, 0xde, 0xff, 0x55, 0x1d, 0xce, 0x3f, 0x7c, 0x59, 0xf4,
		0xb6, 0xc2, 0xfb, 0xea, 0xf0, 0x78, 0xc9, 0x6f, 0x2a, 0xc3, 0xe3, 0xdf, 0xfc, 0x1b, 0xe5, 0xe1,
		0x5e, 0xea, 0xad, 0xa3, 0xe7, 0xc5, 0x65, 0x1f, 0x28, 0x2d, 0xf9, 0xc0, 0xe1, 0xb2, 0x0f, 0x1c,
		0x2e, 0xf9, 0xc0, 0x52, 0x93, 0x8a, 0x4b, 0x3e, 0x50, 0x1e, 0xbe, 0xa4, 0xde, 0xbf, 0xb7, 0xf8,
		0xad, 0x95, 0xe1, 0xfe, 0xcb, 0xb2, 0xdf, 0x55, 0x87, 0x2f, 0xc7, 0xfb, 0xfb, 0x00, 0xf6, 0xad,
		0x03, 0x76, 0xb8, 0x51, 0xfe, 0x6e, 0x04, 0xa2, 0x63, 0x84, 0x0e, 0x65, 0x61, 0xe5, 0x14, 0x25,
		0xea, 0x69, 0xf3, 0x27, 0xe5, 0x90, 0x5f, 0x3d, 0xb5, 0xc8, 0x48, 0x64, 0xaa, 0x16, 0x99, 0x83,
		0x4c, 0xd5, 0x0a, 0xc3, 0x0a, 0x99, 0xaa, 0x95, 0x46, 0x3a, 0x32, 0x55, 0x7f, 0x68, 0x20, 0x32,
		0x55, 0x06, 0x09, 0x32, 0x58, 0x41, 0xb5, 0x8e, 0xf6, 0x62, 0xde, 0x0a, 0xaa, 0xd7, 0xdc, 0x42,
		0xf0, 0xe8, 0xcd, 0xcf, 0x58, 0x49, 0x45, 0x94, 0xb5, 0x0a, 0xf9, 0xc8, 0xfa, 0xa2, 0xeb, 0x84,
		0x9c, 0x45, 0xbe, 0xa4, 0x47, 0x58, 0xe7, 0xec, 0x03, 0x57, 0x05, 0x57, 0x05, 0x57, 0x05, 0x57,
		0x05, 0x57, 0x05, 0x57, 0xdd, 0x31, 0xae, 0x2a, 0xba, 0x5c, 0x2a, 0xa1, 0x9e, 0x89, 0xf2, 0x55,
		0x42, 0xdb, 0x97, 0xed, 0xfa, 0xa4, 0xa9, 0x4e, 0x58, 0x44, 0x30, 0xa4, 0x4e, 0x3b, 0xb4, 0x7e,
		0xf1, 0xad, 0x76, 0x5e, 0x3f, 0xf5, 0x5a, 0x8d, 0xeb, 0xab, 0x33, 0xaf, 0x75, 0x56, 0xbb, 0x6c,
		0x5c, 0x50, 0x8b, 0xae, 0xf1, 0x2e, 0xf5, 0x88, 0x64, 0x9a, 0x88, 0xe8, 0xbe, 0xfe, 0xf9, 0xde,
		0xad, 0x5d, 0x7a, 0xe7, 0x8d, 0x46, 0xd3, 0x46, 0xc5, 0x86, 0xad, 0xe9, 0xd2, 0x4f, 0xe7, 0xd7,
		0x97, 0x57, 0x67, 0x2d, 0xf4, 0xeb, 0xb6, 0xf5, 0x6b, 0xe3, 0xe2, 0xf3, 0xd9, 0x29, 0x7a, 0x74,
		0x7b, 0x7a, 0xb4, 0xd1, 0xaa, 0x7f, 0xa9, 0x5f, 0xd4, 0xae, 0x1a, 0x2d, 0x1b, 0xd5, 0x40, 0xfe,
		0xf1, 0xba, 0xc5, 0x7c, 0x84, 0x98, 0x15, 0x14, 0xd4, 0xc1, 0x3e, 0x8b, 0x94, 0xf3, 0xe0, 0x77,
		0x45, 0x4f, 0xf0, 0x2e, 0x3d, 0x71, 0xf0, 0xad, 0x79, 0xd0, 0x06, 0x17, 0x99, 0x03, 0x6d, 0x70,
		0x85, 0x01, 0x05, 0x6d, 0x70, 0xa5, 0x91, 0x0e, 0x6d, 0xf0, 0x0f, 0x0d, 0x84, 0x36, 0x68, 0x10,
		0xff, 0x25, 0xac, 0x0d, 0x2a, 0xf1, 0xc0, 0x95, 0xe8, 0xfc, 0x88, 0x2a, 0x25, 0x82, 0xda, 0x20,
		0xa1, 0x6d, 0x04, 0xf6, 0xb5, 0x1c, 0x17, 0x31, 0xb4, 0x25, 0x93, 0x7e, 0xc4, 0x3b, 0xbe, 0xec,
		0x92, 0xda, 0xa5, 0x8a, 0xba, 0xb7, 0xbf, 0xd9, 0x50, 0xa8, 0x7b, 0xfb, 0x07, 0xf6, 0xa1, 0xa6,
		0xe7, 0x16, 0x6b, 0x33, 0x66, 0xd4, 0xbd, 0x2d, 0x7c, 0x2c, 0x95, 0x2a, 0xd5, 0x52, 0xe9, 0xa0,
		0x7a, 0x58, 0x3d, 0x38, 0x2a, 0x97, 0x0b, 0x95, 0x02, 0x2a, 0xe0, 0x6e, 0xbd, 0xb7, 0x60, 0x1f,
		0xc7, 0xc2, 0x0b, 0xfb, 0x38, 0xc8, 0x44, 0x53, 0x7b, 0x7a, 0xe2, 0x38, 0x39, 0xb5, 0x6b, 0x6a,
		0x18, 0x91, 0xd9, 0xd0, 0x29, 0xef, 0xb1, 0x41, 0x5f, 0x91, 0xe2, 0xaa, 0xf6, 0x01, 0x8d, 0xb9,
		0xf3, 0x2d, 0xb4, 0xc8, 0x45, 0xe6, 0x40, 0x8b, 0x5c, 0xc1, 0xdd, 0xa1, 0x45, 0xae, 0x34, 0xd2,
		0xa1, 0x45, 0xfe, 0xa1, 0x81, 0xd0, 0x22, 0x0d, 0x9a, 0xef, 0xe1, 0x78, 0xab, 0xd5, 0x51, 0x10,
		0xc7, 0x5b, 0xfd, 0xdb, 0x05, 0x99, 0x6f, 0x3d, 0x2d, 0x03, 0x32, 0xdf, 0xd6, 0x0b, 0x17, 0x90,
		0xf9, 0xd6, 0x73, 0x0d, 0x1c, 0x6f, 0xb5, 0x3b, 0x3e, 0x02, 0x71, 0x6f, 0xb1, 0x18, 0x00, 0x71,
		0x8f, 0x4a, 0x0c, 0xb5, 0x27, 0x9b, 0x49, 0xfd, 0x81, 0xe2, 0xf4, 0x04, 0xbe, 0xd7, 0xc6, 0x41,
		0x40, 0x5a, 0x64, 0x0e, 0x04, 0xa4, 0x15, 0x86, 0x13, 0x04, 0xa4, 0x95, 0x46, 0x3a, 0x04, 0xa4,
		0x3f, 0x34, 0x10, 0x02, 0x92, 0x41, 0x33, 0x09, 0xc2, 0x02, 0x52, 0xdb, 0xf7, 0xfb, 0x9c, 0x49,
		0x8a, 0x9b, 0x5c, 0x0b, 0xa0, 0x72, 0x04, 0x2c, 0xd0, 0xec, 0x42, 0x76, 0x4d, 0x4a, 0x5f, 0xb1,
		0xd1, 0xa4, 0x91, 0x84, 0x03, 0xd9, 0x51, 0xe7, 0x9e, 0x3f, 0xb0, 0x60, 0x52, 0xa4, 0xc7, 0xf5,
		0x03, 0x2e, 0x3b, 0x31, 0x51, 0x72, 0x24, 0x57, 0x3f, 0xfd, 0xf0, 0x87, 0x23, 0x64, 0xa4, 0x98,
		0xec, 0x70, 0x77, 0xfe, 0x41, 0x94, 0x7a, 0xe2, 0x06, 0xa1, 0xaf, 0xfc, 0x8e, 0xdf, 0x8f, 0x92,
		0x3b, 0xb7, 0x7d, 0x17, 0xb8, 0xa1, 0x68, 0xbb, 0xac, 0x27, 0x9c, 0x88, 0xf5, 0x44, 0x94, 0xdc,
		0xb9, 0x71, 0x29, 0xeb, 0x28, 0x54, 0xdc, 0x09, 0xfc, 0xbe, 0xe8, 0x3c, 0xbb, 0x92, 0x8b, 0xbb,
		0xfb, 0xb6, 0x1f, 0x46, 0xc9, 0x9d, 0xcb, 0xba, 0xdf, 0x63, 0x34, 0xf0, 0x07, 0xca, 0x09, 0x42,
		0xee, 0xc6, 0x0c, 0x37, 0x1a, 0xbf, 0x8c, 0xeb, 0x02, 0x11, 0xf0, 0x75, 0x3b, 0x52, 0xe1, 0xa0,
		0xa3, 0xe4, 0x24, 0x08, 0x35, 0x92, 0x46, 0xbc, 0x18, 0x37, 0x50, 0x7d, 0xd2, 0x3e, 0xde, 0xdc,
		0xcf, 0xd1, 0xfc, 0x03, 0xaf, 0x39, 0x6d, 0xc0, 0xe4, 0xce, 0x3b, 0xb9, 0x0b, 0xbc, 0x96, 0x68,
		0x7b, 0xb5, 0x9e, 0xb8, 0x1c, 0xb5, 0xdf, 0xf4, 0xc6, 0xab, 0x07, 0x8f, 0x95, 0xcb, 0x50, 0xf1,
		0x66, 0xdc, 0x78, 0xde, 0xc5, 0xb4, 0xf1, 0x92, 0x3b, 0xaf, 0xd6, 0xfd, 0xde, 0x12, 0xed, 0xc6,
		0x40, 0x35, 0x43, 0xee, 0xb5, 0xe2, 0x96, 0x1b, 0xbf, 0x78, 0x97, 0x71, 0xcb, 0xbd, 0xdb, 0xcd,
		0x38, 0xa0, 0x31, 0x06, 0xd8, 0x03, 0xf9, 0x43, 0xfa, 0x3f, 0xa5, 0xc3, 0x94, 0x0a, 0x45, 0x7b,
		0xd4, 0x23, 0xda, 0xe3, 0xc0, 0x2c, 0xfb, 0x92, 0xb6, 0x4d, 0x73, 0xb4, 0x9c, 0x62, 0xa7, 0x66,
		0x33, 0xa8, 0x4c, 0x1d, 0x29, 0x4d, 0x19, 0x69, 0x4e, 0x15, 0xa9, 0x4d, 0x11, 0xc9, 0x4e, 0x0d,
		0xc9, 0x4e, 0x09, 0xc9, 0x4e, 0x05, 0x77, 0x9b, 0xb7, 0x9e, 0x8a, 0x90, 0x46, 0xd8, 0x49, 0x81,
		0x14, 0x3d, 0x2d, 0x36, 0x6d, 0x22, 0x2d, 0x45, 0xb6, 0x00, 0x45, 0x96, 0x3c, 0xbc, 0xd2, 0x86,
		0x59, 0xaa, 0x70, 0x4b, 0x1e, 0x76, 0xc9, 0xc3, 0x2f, 0x79, 0x18, 0xa6, 0x23, 0x64, 0x59, 0x84,
		0x14, 0x59, 0x2a, 0xf0, 0x9c, 0x18, 0x34, 0xc2, 0x3e, 0x47, 0x51, 0xd3, 0x89, 0xdf, 0x44, 0xd4,
		0x99, 0x89, 0xc4, 0x5c, 0x8f, 0x56, 0xe2, 0x94, 0x2c, 0x5c, 0x53, 0x86, 0x6d, 0x33, 0xe0, 0x9b,
		0x3a, 0x8c, 0x1b, 0x03, 0xe7, 0xc6, 0xc0, 0xba, 0x31, 0xf0, 0x4e, 0x0b, 0xe6, 0x89, 0xc1, 0x7d,
		0xd2, 0x8b, 0x57, 0x14, 0x01, 0xd6, 0xa2, 0x7d, 0x4a, 0x46, 0x6a, 0x36, 0x5c, 0xa5, 0x79, 0x52,
		0xe9, 0xf4, 0xd4, 0x8c, 0xf1, 0xe1, 0x17, 0x33, 0xb2, 0x82, 0x95, 0x92, 0xd4, 0x5d, 0xd3, 0x1e,
		0xe7, 0x25, 0xc9, 0x12, 0x5f, 0x2a, 0x69, 0xd3, 0x85, 0xde, 0x08, 0xd2, 0x0b, 0xd2, 0x0b, 0xd2,
		0x0b, 0xd2, 0x0b, 0xd2, 0x0b, 0x64, 0x5d, 0xdc, 0x8b, 0xd4, 0xb4, 0xae, 0xc4, 0xb0, 0x98, 0xa3,
		0xf5, 0x39, 0xe1, 0x4d, 0x87, 0x6f, 0xa4, 0xaf, 0x91, 0xa5, 0x44, 0x1d, 0x95, 0xa6, 0x02, 0x46,
		0x9e, 0x14, 0x98, 0x40, 0x0e, 0xcc, 0x22, 0x09, 0xa6, 0x90, 0x05, 0xe3, 0x48, 0x83, 0x71, 0xe4,
		0xc1, 0x38, 0x12, 0x41, 0x93, 0x4c, 0x10, 0x25, 0x15, 0x49, 0xef, 0x92, 0x55, 0xd4, 0x52, 0x71,
		0x73, 0x20, 0xa4, 0x2a, 0x54, 0x28, 0xc7, 0xcc, 0x09, 0x8a, 0x57, 0x08, 0x9b, 0x48, 0xb3, 0x96,
		0xc6, 0xfc, 0x45, 0x1b, 0x73, 0x2c, 0xea, 0xb5, 0x36, 0x52, 0xc6, 0x12, 0xaf, 0xbd, 0x91, 0xb2,
		0xd7, 0x94, 0x3a, 0x03, 0xe9, 0x58, 0x45, 0xbd, 0xee, 0x80, 0x21, 0xb0, 0xf4, 0xd6, 0xd5, 0xd8,
		0x93, 0x79, 0xae, 0x56, 0x29, 0x97, 0x0f, 0xcb, 0x70, 0x37, 0xb8, 0x9b, 0x01, 0xdc, 0x94, 0xbe,
		0x75, 0xb7, 0xe0, 0xf4, 0x2b, 0xb8, 0x05, 0x7f, 0x52, 0x21, 0x73, 0x06, 0x32, 0x52, 0xac, 0xdd,
		0x27, 0xce, 0xee, 0x43, 0xde, 0xe3, 0x21, 0x97, 0x1d, 0x90, 0xd2, 0x0d, 0x4e, 0x95, 0x5a, 0x9f,
		0x3f, 0x59, 0xa5, 0x62, 0xb5, 0x60, 0x39, 0x56, 0xcd, 0x3a, 0xf1, 0xc3, 0x2e, 0x0f, 0xad, 0x2f,
		0x4c, 0xf1, 0x9f, 0xec, 0xd9, 0x9a, 0xee, 0xb3, 0xb4, 0x4a, 0xd6, 0xde, 0xc9, 0x97, 0xa6, 0x53,
		0xda, 0xb7, 0x0d, 0xe0, 0x00, 0x86, 0xc8, 0x51, 0xb3, 0xa9, 0xe0, 0x4c, 0x96, 0x9a, 0x8d, 0x70,
		0x43, 0x50, 0xd5, 0x34, 0x85, 0x2a, 0x31, 0xfc, 0xb5, 0x52, 0xb5, 0xa2, 0x0b, 0x80, 0x39, 0x80,
		0x39, 0xec, 0x74, 0x7b, 0x51, 0x2c, 0xda, 0x48, 0x77, 0x4d, 0x7d, 0x0a, 0x71, 0xa9, 0xae, 0xad,
		0x9f, 0x01, 0x12, 0x32, 0x8c, 0x7f, 0x64, 0x20, 0x32, 0x8c, 0x3b, 0x4a, 0xe9, 0x90, 0x61, 0xcc,
		0x95, 0xb7, 0x21, 0xc3, 0xb8, 0x6d, 0x6a, 0x84, 0x59, 0x19, 0xc6, 0x8f, 0x06, 0x24, 0x18, 0xcb,
		0x48, 0x30, 0x6e, 0xbf, 0x96, 0x83, 0x04, 0x63, 0x86, 0xf6, 0x22, 0xe3, 0xb1, 0xe3, 0xa8, 0xf4,
		0xd6, 0xd5, 0x4c, 0x4c, 0x30, 0x16, 0xcb, 0x48, 0x2f, 0xc2, 0xd9, 0x4c, 0x20, 0xa6, 0xf4, 0xad,
		0x43, 0x7a, 0x71, 0x15, 0xb7, 0x40, 0x7a, 0x71, 0x47, 0x29, 0x29, 0xd2, 0x8b, 0x64, 0x26, 0x82,
		0x48, 0x2f, 0xe6, 0x6f, 0x38, 0xd2, 0x8b, 0xb0, 0xce, 0x10, 0xe6, 0x80, 0xf4, 0xe2, 0x6f, 0xf8,
		0x73, 0x9c, 0xb3, 0x7b, 0x9c, 0x4c, 0xa7, 0x4c, 0xc8, 0x2f, 0x8e, 0x6d, 0x45, 0x82, 0x71, 0x1d,
		0xf3, 0x90, 0x60, 0xdc, 0xe0, 0x68, 0x44, 0x82, 0x31, 0x23, 0x32, 0x87, 0x04, 0x63, 0xe6, 0xcc,
		0x0d, 0x09, 0xc6, 0x6d, 0xd3, 0x23, 0xcc, 0x49, 0x30, 0xb6, 0x85, 0x64, 0xe1, 0xb3, 0x01, 0x19,
		0xc6, 0x23, 0xc2, 0x26, 0x9e, 0x73, 0x79, 0x17, 0x17, 0x0b, 0x83, 0x9e, 0xf3, 0x87, 0x2d, 0x69,
		0x64, 0x8a, 0xb1, 0x80, 0xac, 0x47, 0xc6, 0xc1, 0x0a, 0x29, 0xc6, 0x0c, 0x5c, 0x0d, 0x7b, 0x18,
		0xe1, 0x6e, 0x5b, 0xe2, 0x6e, 0x90, 0x0a, 0xd7, 0xba, 0x90, 0x64, 0x5c, 0xc5, 0x2d, 0x90, 0x64,
		0xdc, 0x51, 0x52, 0x8a, 0x24, 0x23, 0x99, 0xb9, 0x20, 0x92, 0x8c, 0xf9, 0x1b, 0x8e, 0x24, 0x23,
		0xac, 0x33, 0x84, 0x39, 0x20, 0xc9, 0xf8, 0x7b, 0x3c, 0x86, 0xcb, 0x2e, 0xef, 0xd2, 0x4f, 0x31,
		0x26, 0x96, 0x22, 0xc1, 0xb8, 0x8e, 0x79, 0x48, 0x30, 0x6e, 0x70, 0x2c, 0x22, 0xc1, 0x98, 0x11,
		0x91, 0x43, 0x82, 0x31, 0x73, 0xd6, 0x86, 0x04, 0xe3, 0xb6, 0x69, 0x11, 0x06, 0x25, 0x18, 0x7d,
		0xbf, 0xcf, 0x99, 0x34, 0x20, 0xc3, 0x58, 0x28, 0x60, 0x08, 0xae, 0x46, 0x23, 0x21, 0x87, 0x6d,
		0xfc, 0x82, 0x1c, 0x06, 0xf6, 0xb4, 0x0e, 0x8b, 0x82, 0x1c, 0xa6, 0x83, 0x58, 0x41, 0x0e, 0x83,
		0x75, 0x16, 0xe4, 0x30, 0x93, 0xb9, 0x8c, 0xed, 0x07, 0x4a, 0xf8, 0x92, 0xf5, 0xe9, 0xcb, 0x61,
		0x89, 0xa5, 0x90, 0xc3, 0xd6, 0x31, 0x0f, 0x72, 0xd8, 0x26, 0xc7, 0x22, 0xe4, 0xb0, 0x6c, 0x88,
		0x1c, 0xe4, 0xb0, 0xcc, 0x59, 0x1b, 0xe4, 0xb0, 0x6d, 0xd3, 0x22, 0x20, 0x87, 0x6d, 0x1e, 0xc6,
		0x21, 0x87, 0xad, 0xd4, 0x6a, 0x90, 0xc3, 0xb2, 0xb8, 0x20, 0x87, 0x81, 0x3d, 0xad, 0xc3, 0xa2,
		0x20, 0x87, 0xe9, 0x20, 0x56, 0x90, 0xc3, 0x60, 0x9d, 0x05, 0x39, 0xcc, 0x64, 0x2e, 0x63, 0x07,
		0x2c, 0x54, 0xc2, 0x04, 0x35, 0x6c, 0x6a, 0x28, 0xc4, 0xb0, 0x75, 0xcc, 0x83, 0x18, 0xb6, 0xc1,
		0xa1, 0x08, 0x31, 0x2c, 0x23, 0x1a, 0x07, 0x31, 0x2c, 0x73, 0xce, 0x06, 0x31, 0x6c, 0xdb, 0x94,
		0x08, 0x88, 0x61, 0x9b, 0x87, 0x71, 0x88, 0x61, 0x2b, 0xb5, 0x1a, 0xc4, 0xb0, 0x2c, 0x2e, 0x88,
		0x61, 0x60, 0x4f, 0xeb, 0xb0, 0x28, 0x88, 0x61, 0x3a, 0x88, 0x15, 0xc4, 0x30, 0x58, 0x67, 0x41,
		0x0c, 0x33, 0x99, 0xcb, 0xd8, 0x2a, 0x64, 0x32, 0x12, 0x93, 0x5a, 0x28, 0xc4, 0xf5, 0xb0, 0x57,
		0xb6, 0x42, 0x12, 0x5b, 0xc7, 0x3c, 0x48, 0x62, 0x1b, 0x1c, 0x8d, 0x90, 0xc4, 0x32, 0x22, 0x73,
		0x90, 0xc4, 0x32, 0x67, 0x6e, 0x90, 0xc4, 0xb6, 0x4d, 0x8f, 0x80, 0x24, 0xb6, 0x79, 0x18, 0x87,
		0x24, 0xb6, 0x52, 0xab, 0x41, 0x12, 0xcb, 0xe2, 0x82, 0x24, 0x06, 0xf6, 0xb4, 0x0e, 0x8b, 0x82,
		0x24, 0xa6, 0x83, 0x58, 0x41, 0x12, 0x83, 0x75, 0x16, 0x24, 0x31, 0x43, 0x2d, 0x22, 0xc6, 0xac,
		0xec, 0x9a, 0x94, 0xbe, 0x62, 0x4a, 0xf8, 0x34, 0x4b, 0xc6, 0xdb, 0x51, 0xe7, 0x9e, 0x3f, 0xb0,
		0x80, 0xc5, 0x27, 0x03, 0xd8, 0xae, 0x1f, 0x70, 0xd9, 0x89, 0x25, 0x26, 0x47, 0x72, 0xf5, 0xd3,
		0x0f, 0x7f, 0x38, 0x62, 0xc4, 0x06, 0x65, 0x87, 0xbb, 0xf3, 0x0f, 0xa2, 0xd4, 0x13, 0x37, 0x98,
		0xc4, 0xc7, 0x28, 0xb9, 0x73, 0xdb, 0x77, 0x81, 0x1b, 0x8a, 0xb6, 0xcb, 0x7a, 0xc2, 0x89, 0x58,
		0x4f, 0x44, 0xc9, 0x9d, 0x2b, 0x82, 0xc7, 0x8a, 0x13, 0x85, 0x8a, 0x3b, 0x81, 0xdf, 0x17, 0x9d,
		0x67, 0x57, 0x72, 0x71, 0x77, 0xdf, 0xf6, 0xc3, 0x28, 0xb9, 0x73, 0x59, 0xf7, 0x7b, 0x3c, 0xcf,
		0xf5, 0x07, 0xca, 0x09, 0x42, 0xee, 0x86, 0xfe, 0x40, 0xf1, 0x68, 0xfc, 0xe2, 0x0e, 0xe4, 0x0f,
		0xe9, 0xff, 0x94, 0x0e, 0x53, 0x2a, 0x14, 0xed, 0xf8, 0x17, 0xa9, 0x47, 0x6e, 0xa4, 0x98, 0xa2,
		0x88, 0xa0, 0x76, 0xa4, 0xc2, 0x41, 0x47, 0xc9, 0x09, 0xf3, 0x6a, 0x24, 0x2d, 0x7f, 0x31, 0x6e,
		0xd5, 0xfa, 0xa4, 0x51, 0xbd, 0xb9, 0x9f, 0xa3, 0xf9, 0x07, 0xde, 0x14, 0x95, 0xa2, 0xe4, 0xce,
		0x3b, 0xb9, 0x0b, 0xbc, 0x96, 0x68, 0x7b, 0xb5, 0x9e, 0xb8, 0x1c, 0x35, 0xfa, 0xf4, 0xc6, 0xab,
		0x07, 0x8f, 0x95, 0xcb, 0x50, 0xf1, 0x66, 0xdc, 0xe2, 0xde, 0xc5, 0xb4, 0xc5, 0x93, 0x3b, 0xaf,
		0xd6, 0xfd, 0xde, 0x12, 0xed, 0xc6, 0x40, 0x35, 0x43, 0xee, 0xb5, 0xe2, 0xe6, 0x1e, 0xbf, 0x78,
		0xd7, 0xe3, 0xb6, 0xad, 0x25, 0xad, 0x9d, 0x7a, 0xe2, 0x5d, 0xc6, 0x8d, 0xfd, 0x0e, 0xf1, 0x89,
		0xae, 0x25, 0x44, 0x22, 0xe4, 0x88, 0xe8, 0x26, 0x27, 0xb4, 0xa9, 0xe7, 0x80, 0x8a, 0x8b, 0xda,
		0xe7, 0x22, 0x52, 0xa3, 0x01, 0x4d, 0x2a, 0x5e, 0xdb, 0x5f, 0x85, 0x3c, 0xeb, 0xf3, 0x11, 0x47,
		0x25, 0x56, 0xa4, 0xdf, 0xfe, 0xca, 0x9e, 0x5e, 0x59, 0x56, 0xf8, 0x58, 0x2a, 0x55, 0xaa, 0xa5,
		0xd2, 0x41, 0xf5, 0xb0, 0x7a, 0x70, 0x54, 0x2e, 0x17, 0x2a, 0x05, 0x42, 0x47, 0x21, 0xd8, 0x8d,
		0x11, 0x9d, 0xe7, 0xdd, 0x93, 0xd1, 0xd0, 0x93, 0x83, 0x7e, 0x9f, 0xa2, 0x69, 0xd7, 0x11, 0x0f,
		0x49, 0x9d, 0x6a, 0x40, 0x25, 0x62, 0x10, 0xe5, 0x52, 0xdb, 0xcf, 0xa1, 0x08, 0xb1, 0xa7, 0x6d,
		0x64, 0x4d, 0x34, 0xf8, 0x92, 0x7e, 0x76, 0xa2, 0xd7, 0x02, 0xcd, 0x51, 0x8e, 0x5a, 0x74, 0xdb,
		0xb6, 0xa8, 0x46, 0x20, 0x86, 0x6d, 0x41, 0xec, 0xd2, 0x1b, 0xaa, 0xf4, 0x05, 0x08, 0x3d, 0xdf,
		0xac, 0x29, 0x24, 0x4d, 0xa7, 0x66, 0x23, 0xdf, 0x77, 0x44, 0xd7, 0xe2, 0xb2, 0x1b, 0xf8, 0x42,
		0x2a, 0xab, 0xe3, 0xf7, 0xfd, 0x50, 0x93, 0x23, 0xd1, 0x98, 0x97, 0xd1, 0x99, 0x87, 0x91, 0x9e,
		0x77, 0x11, 0x9a, 0x67, 0x11, 0x9a, 0x57, 0xe9, 0x72, 0x67, 0x22, 0xcc, 0xc2, 0x68, 0x46, 0xa1,
		0x91, 0x3e, 0x18, 0x47, 0x1b, 0xf4, 0x90, 0x84, 0xfc, 0x21, 0x3a, 0xdf, 0x6f, 0xcc, 0x39, 0x7a,
		0xe8, 0x8e, 0x1a, 0x86, 0x46, 0x0b, 0x0d, 0x71, 0xc2, 0xa0, 0xf8, 0x90, 0x6f, 0x64, 0xc8, 0xcf,
		0x3f, 0xf3, 0xf9, 0xa6, 0x9c, 0x22, 0x80, 0x2e, 0xcf, 0x37, 0xcd, 0xe3, 0x73, 0x74, 0x75, 0x13,
		0x5c, 0x3c, 0x1f, 0xdf, 0xce, 0xde, 0xd3, 0x72, 0xf0, 0x32, 0x7b, 0x3a, 0xa4, 0x1c, 0xd6, 0xed,
		0x86, 0x3c, 0x8a, 0x72, 0xf3, 0xb3, 0x64, 0xa1, 0x67, 0xca, 0x82, 0x9c, 0x62, 0x4b, 0xbe, 0xdb,
		0xab, 0x72, 0xdf, 0x2e, 0xa5, 0x63, 0xfb, 0x93, 0xde, 0xed, 0x4c, 0xba, 0x16, 0xd8, 0x6a, 0xdf,
		0x6e, 0xa4, 0x7d, 0xb5, 0xab, 0xf6, 0xed, 0x40, 0xdb, 0xc5, 0x7a, 0x72, 0xdf, 0x7e, 0x93, 0xf8,
		0x6d, 0x9f, 0xb3, 0x5e, 0xc8, 0x7b, 0x79, 0x3a, 0xed, 0x74, 0x7b, 0x4c, 0x35, 0xc7, 0xef, 0x6c,
		0x4e, 0x88, 0xdd, 0x87, 0x0f, 0xe3, 0x35, 0x79, 0x6e, 0x0a, 0x83, 0xc0, 0x20, 0x56, 0x20, 0x84,
		0x4c, 0xf1, 0xfc, 0x69, 0x43, 0x9e, 0x8b, 0x29, 0x93, 0x41, 0x0a, 0xae, 0x00, 0xae, 0x00, 0xae,
		0x00, 0xae, 0x40, 0x87, 0x2b, 0x9c, 0x8a, 0x7c, 0xd3, 0x90, 0xfa, 0x26, 0x8c, 0x54, 0x26, 0x8e,
		0x9a, 0x26, 0x90, 0xda, 0xc0, 0x41, 0x27, 0x48, 0xd0, 0x00, 0x0b, 0xdd, 0xa0, 0x41, 0x06, 0x3c,
		0xc8, 0x80, 0x08, 0x19, 0x30, 0xc9, 0x17, 0x54, 0x72, 0x06, 0x17, 0x7d, 0x13, 0xd2, 0x94, 0xdf,
		0x8b, 0x40, 0x53, 0x94, 0x7f, 0x43, 0xff, 0x8f, 0x34, 0x7c, 0xf7, 0xa4, 0xed, 0xf5, 0xd4, 0x15,
		0xd0, 0xb8, 0x44, 0x63, 0xd6, 0xf3, 0x8f, 0x25, 0x8d, 0x7d, 0x9f, 0x1a, 0x03, 0x1f, 0x35, 0xda,
		0xd0, 0x64, 0x4a, 0xf1, 0x50, 0x6a, 0x2f, 0x33, 0x61, 0xef, 0xdd, 0x1c, 0x38, 0x47, 0xb7, 0x2f,
		0x37, 0x05, 0xe7, 0xe8, 0x76, 0x7c, 0x5b, 0x88, 0x5f, 0x7e, 0x15, 0x87, 0x2f, 0xc5, 0x9b, 0x03,
		0xa7, 0x34, 0x79, 0x5a, 0x2c, 0xdf, 0x1c, 0x38, 0xe5, 0xdb, 0xfd, 0xbd, 0xbf, 0xfe, 0xfa, 0xb0,
		0xea, 0x67, 0xf6, 0x7f, 0x1d, 0x0e, 0xf5, 0x2d, 0xf2, 0xbc, 0xd5, 0xd9, 0xcd, 0x8d, 0xcb, 0xfa,
		0x7f, 0xc9, 0xf4, 0xf5, 0xdf, 0x7b, 0x79, 0xf5, 0xf6, 0xfe, 0x7f, 0x34, 0xf6, 0xf7, 0x2e, 0xad,
		0xc3, 0xa3, 0x11, 0xd6, 0x2b, 0x08, 0xeb, 0xd4, 0xc2, 0x7a, 0xec, 0xb5, 0xcc, 0xe9, 0xd5, 0x9c,
		0xcf, 0xb7, 0xbf, 0x0a, 0xef, 0x4b, 0xc3, 0xe3, 0xfd, 0x5f, 0xd5, 0xe1, 0xfc, 0xc3, 0x97, 0x45,
		0x6f, 0x2b, 0xbc, 0xaf, 0x0e, 0x8f, 0x97, 0xfc, 0xa6, 0x32, 0x3c, 0xfe, 0xcd, 0xbf, 0x51, 0x1e,
		0xee, 0xa5, 0xde, 0x3a, 0x7a, 0x5e, 0x5c, 0xf6, 0x81, 0xd2, 0x92, 0x0f, 0x1c, 0x2e, 0xfb, 0xc0,
		0xe1, 0x92, 0x0f, 0x2c, 0x35, 0xa9, 0xb8, 0xe4, 0x03, 0xe5, 0xe1, 0x4b, 0xea, 0xfd, 0x7b, 0x8b,
		0xdf, 0x5a, 0x19, 0xee, 0xbf, 0x2c, 0xfb, 0x5d, 0x75, 0xf8, 0x72, 0xbc, 0xbf, 0x0f, 0xa0, 0x23,
		0x03, 0x74, 0x18, 0xfe, 0xf9, 0x0f, 0xff, 0xdd, 0x03, 0xfe, 0x77, 0xdb, 0xfd, 0xff, 0x89, 0x05,
		0x8f, 0x6b, 0xea, 0x59, 0x58, 0xf0, 0xb8, 0x70, 0xc1, 0x63, 0xde, 0xa5, 0x73, 0xa8, 0x2e, 0x73,
		0xcc, 0xb1, 0xaa, 0x4d, 0x0e, 0xab, 0x13, 0xde, 0x19, 0xec, 0xb2, 0xd3, 0xad, 0x89, 0x39, 0x67,
		0xa1, 0xf2, 0xdd, 0x7c, 0x98, 0xff, 0x26, 0x43, 0x12, 0x9b, 0x09, 0x35, 0x6c, 0x1a, 0xd4, 0xb0,
		0x39, 0x30, 0x6b, 0x07, 0xc9, 0x19, 0xcb, 0xa8, 0x63, 0x98, 0x9d, 0xcb, 0x5a, 0x2c, 0x8a, 0xa8,
		0x95, 0x2d, 0x5e, 0x65, 0x87, 0x22, 0xd9, 0xfc, 0xe5, 0x8c, 0xdc, 0x2e, 0x2f, 0x77, 0x23, 0xea,
		0x66, 0x19, 0x7a, 0x17, 0x2d, 0xaf, 0xca, 0xc6, 0x99, 0x36, 0x3f, 0xd4, 0x37, 0xfb, 0x17, 0x37,
		0xec, 0x34, 0x79, 0x94, 0x97, 0xb7, 0x7f, 0xde, 0xf3, 0xec, 0x54, 0xad, 0x0c, 0x1d, 0x7c, 0x2a,
		0xd1, 0x7f, 0xf8, 0x90, 0x38, 0x9e, 0x33, 0x1a, 0xfc, 0xd6, 0xff, 0x5a, 0xff, 0xe3, 0x77, 0x9c,
		0xf6, 0x5d, 0xa0, 0x8e, 0x2f, 0x5b, 0x57, 0x67, 0x5e, 0xb3, 0x71, 0x5e, 0xff, 0xf4, 0x7f, 0x5e,
		0xbd, 0xf9, 0xad, 0xf2, 0x3f, 0x59, 0xfa, 0x5f, 0x4e, 0xcb, 0x6e, 0x5e, 0x2f, 0xaf, 0x89, 0xfb,
		0x2e, 0x63, 0x7e, 0x94, 0xf7, 0x22, 0x9a, 0x37, 0x8b, 0x65, 0x56, 0xeb, 0xdc, 0x77, 0x06, 0x72,
		0x50, 0xfb, 0x94, 0x47, 0x9d, 0x50, 0x04, 0xb9, 0x10, 0xd0, 0xc4, 0x69, 0xea, 0xb2, 0xd3, 0x1f,
		0x74, 0xb9, 0xa5, 0xee, 0x45, 0x64, 0x75, 0x7c, 0xa9, 0x98, 0x90, 0x3c, 0xb4, 0x7c, 0xd9, 0x7f,
		0xb6, 0x7a, 0x7e, 0x68, 0xa9, 0x7b, 0x6e, 0xd5, 0x9b, 0x8f, 0x15, 0xab, 0xf6, 0xb9, 0xfe, 0xde,
		0xba, 0x6c, 0x39, 0x57, 0x67, 0xd6, 0x38, 0xc4, 0xff, 0x25, 0x2f, 0x6b, 0x9f, 0xeb, 0x1f, 0xb2,
		0x1e, 0x75, 0x39, 0xae, 0x61, 0x7b, 0xed, 0x50, 0xdd, 0x57, 0x9d, 0x91, 0x03, 0x11, 0xd6, 0xb1,
		0x40, 0xed, 0x8d, 0x7f, 0xfd, 0xf9, 0x38, 0x00, 0x69, 0xce, 0xf4, 0xaf, 0xde, 0x92, 0xe6, 0x27,
		0x19, 0x93, 0x79, 0x52, 0x24, 0x3e, 0x83, 0x78, 0x40, 0x81, 0xb2, 0x6f, 0xd6, 0x81, 0x37, 0xe7,
		0x00, 0x1b, 0x1c, 0xaa, 0xe3, 0x55, 0x1c, 0x03, 0x29, 0x3a, 0x2c, 0x52, 0x1b, 0x1f, 0xa8, 0x6f,
		0xd7, 0x8a, 0x4c, 0xbf, 0x65, 0xc3, 0x8e, 0x96, 0xcd, 0xce, 0xae, 0xcc, 0x16, 0xe9, 0x67, 0xb9,
		0x08, 0x3f, 0x9f, 0x45, 0xf6, 0x59, 0x13, 0x90, 0xdc, 0x16, 0xc9, 0xe7, 0xc6, 0x31, 0x72, 0x5b,
		0xe4, 0x4e, 0x7b, 0xca, 0x9e, 0xd5, 0x4e, 0x27, 0xbb, 0x3f, 0x6e, 0xd3, 0xec, 0x46, 0x64, 0xb2,
		0xbb, 0x7a, 0xf2, 0x45, 0x19, 0x0d, 0x93, 0x6c, 0x37, 0xa9, 0xce, 0x42, 0x5a, 0x31, 0xa3, 0x2f,
		0xc8, 0x61, 0x7f, 0x51, 0xbe, 0xfb, 0x88, 0x74, 0x08, 0x17, 0xb9, 0xec, 0x0b, 0xd2, 0x2b, 0x5d,
		0xe4, 0xb1, 0xcf, 0xc7, 0x2c, 0xe9, 0x3f, 0xeb, 0x4d, 0xa0, 0xf6, 0xa4, 0xa2, 0x5c, 0x6e, 0x2a,
		0x4a, 0x2e, 0x15, 0xec, 0x72, 0xda, 0xd5, 0x9f, 0xdb, 0x86, 0xcd, 0x3c, 0x37, 0x68, 0xea, 0xd9,
		0x90, 0x99, 0xf7, 0x06, 0x4c, 0x6d, 0x1b, 0x2e, 0xb5, 0x6d, 0xb0, 0xd4, 0xb6, 0xa1, 0xd2, 0xec,
		0xb5, 0x40, 0x79, 0xed, 0xc2, 0x1f, 0x07, 0xc6, 0xfc, 0x8b, 0xad, 0xe4, 0x59, 0x78, 0x18, 0xc5,
		0x56, 0xb6, 0x25, 0x5c, 0xeb, 0x0a, 0xdb, 0xda, 0xc3, 0xb7, 0xf6, 0x30, 0xae, 0x3d, 0x9c, 0xe7,
		0x13, 0xd6, 0x73, 0x0a, 0xef, 0xb9, 0x87, 0xf9, 0xe4, 0x0b, 0xfd, 0x50, 0xdc, 0x09, 0xa9, 0xaf,
		0xc4, 0xca, 0xe4, 0xfb, 0x51, 0x58, 0x65, 0xdb, 0x00, 0x81, 0x06, 0x30, 0xe8, 0x06, 0x08, 0x32,
		0x40, 0x41, 0x06, 0x30, 0xc8, 0x00, 0x47, 0xbe, 0x00, 0x92, 0x33, 0x90, 0x24, 0xad, 0xac, 0xbf,
		0xb0, 0x4a, 0xfe, 0x15, 0x3f, 0x53, 0x3c, 0xbf, 0xaa, 0xe1, 0xbb, 0x53, 0x15, 0x40, 0x27, 0x48,
		0xb7, 0xad, 0x9b, 0xe4, 0x72, 0x24, 0xfb, 0x93, 0xb3, 0xba, 0xf4, 0x91, 0x96, 0xa9, 0x01, 0x60,
		0x2d, 0x60, 0x2d, 0x60, 0x2d, 0x60, 0x2d, 0x60, 0x2d, 0x60, 0x2d, 0x5b, 0xca, 0x5a, 0xa6, 0x50,
		0x07, 0xda, 0xf2, 0xe7, 0xb4, 0x45, 0x0f, 0x9c, 0xcd, 0x58, 0x8b, 0x16, 0x81, 0x12, 0xa4, 0x05,
		0xa4, 0x05, 0xa4, 0x05, 0xa4, 0x05, 0xa4, 0x05, 0xa4, 0x25, 0x37, 0xd2, 0x32, 0x76, 0x7b, 0x70,
		0x96, 0x3f, 0x6e, 0xda, 0x7c, 0x8f, 0x5e, 0x49, 0x0d, 0xe8, 0xbc, 0x8b, 0xf2, 0x58, 0xf9, 0xaf,
		0x0e, 0x00, 0x63, 0x01, 0x63, 0x01, 0x63, 0x01, 0x63, 0xd1, 0xc1, 0x58, 0xf2, 0x5e, 0x6d, 0x90,
		0x7c, 0x31, 0x53, 0x2a, 0x74, 0x84, 0xec, 0xf2, 0x27, 0x7d, 0x4e, 0x37, 0x0d, 0x3d, 0xaf, 0x6c,
		0xd1, 0x34, 0xd8, 0xf5, 0x4c, 0x91, 0xb5, 0x03, 0x0f, 0x05, 0x00, 0xa2, 0x05, 0x44, 0x54, 0x00,
		0x89, 0x1c, 0x30, 0x91, 0x03, 0x28, 0x72, 0x40, 0xa5, 0x07, 0xb0, 0x34, 0x01, 0x97, 0xfe, 0x29,
		0x37, 0xa1, 0xa9, 0x37, 0x85, 0x29, 0xf8, 0xa2, 0xa9, 0xf8, 0xc2, 0x7f, 0x31, 0xd8, 0x46, 0x5c,
		0x45, 0xc9, 0xdd, 0x64, 0xca, 0x3e, 0x06, 0xe0, 0x1d, 0xa9, 0x94, 0xac, 0xc1, 0x5d, 0xec, 0x8e,
		0xff, 0xf0, 0x30, 0x90, 0x42, 0x3d, 0x53, 0xe1, 0x5d, 0xf3, 0x06, 0x81, 0x7c, 0x81, 0x7c, 0x81,
		0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x65, 0x41, 0xbe, 0xa6, 0x88, 0x2b, 0x78,
		0x94, 0xdc, 0x3f, 0x83, 0x7f, 0xe5, 0xd3, 0x39, 0xfc, 0x49, 0x39, 0xe4, 0x38, 0xd8, 0x22, 0xa3,
		0xc0, 0xc3, 0xc0, 0xc3, 0xc0, 0xc3, 0xc0, 0xc3, 0xc0, 0xc3, 0xc0, 0xc3, 0xc0, 0xc3, 0xb2, 0xe0,
		0x61, 0xaf, 0x51, 0x77, 0xc4, 0xc5, 0xde, 0xa0, 0x30, 0xf8, 0x58, 0x3e, 0x9d, 0x24, 0xe4, 0x23,
		0xeb, 0x8b, 0xae, 0x13, 0x72, 0x16, 0xf9, 0x52, 0x3f, 0x15, 0x9b, 0xb3, 0x07, 0x2c, 0x0c, 0x2c,
		0x0c, 0x2c, 0x0c, 0x2c, 0x0c, 0x2c, 0x0c, 0x2c, 0x6c, 0x55, 0x24, 0xe9, 0x72, 0xa9, 0x84, 0x7a,
		0x26, 0xc2, 0xc4, 0xca, 0x1a, 0x6d, 0xa8, 0x4f, 0x9a, 0xe2, 0x84, 0x45, 0x04, 0x42, 0x58, 0x72,
		0x82, 0xc3, 0xc5, 0xb7, 0xda, 0x79, 0xfd, 0xd4, 0x6b, 0x35, 0xae, 0xaf, 0xce, 0xbc, 0xd6, 0x59,
		0xed, 0xb2, 0x71, 0xa1, 0x3b, 0x9a, 0x7d, 0x63, 0xfd, 0x41, 0x5c, 0x7f, 0x51, 0xef, 0x11, 0xc9,
		0x96, 0xd6, 0xb3, 0xe3, 0xff, 0xb1, 0xb7, 0x6a, 0x97, 0xde, 0x79, 0xa3, 0xd1, 0xb4, 0xb5, 0x5b,
		0x37, 0x7c, 0x8f, 0x2e, 0x5a, 0xdc, 0x45, 0x9f, 0xce, 0xaf, 0x2f, 0xaf, 0xce, 0x5a, 0xe8, 0x27,
		0xea, 0xfd, 0xd4, 0xb8, 0xf8, 0x7c, 0x76, 0x8a, 0x1e, 0xa2, 0xdb, 0x43, 0x8d, 0x56, 0xfd, 0x4b,
		0xfd, 0xa2, 0x76, 0xd5, 0x68, 0x11, 0xe8, 0x25, 0xad, 0x16, 0xdc, 0xee, 0x1a, 0x7f, 0xde, 0x09,
		0xf5, 0xa7, 0xcf, 0x22, 0xe5, 0x3c, 0xf8, 0x5d, 0xd1, 0x13, 0xbc, 0xab, 0x5f, 0xfc, 0x79, 0x6b,
		0x0e, 0xb4, 0x1f, 0x68, 0x3f, 0xd0, 0x7e, 0xa0, 0xfd, 0x40, 0xfb, 0x81, 0xf6, 0xb3, 0x62, 0xdc,
		0x50, 0xe2, 0x81, 0x2b, 0xd1, 0xf9, 0x11, 0x55, 0x4a, 0x04, 0xb4, 0x9f, 0x8f, 0x1a, 0x4d, 0xb8,
		0x96, 0x22, 0x3e, 0xdf, 0xdf, 0x96, 0x4c, 0xfa, 0x11, 0xef, 0xf8, 0xb2, 0x1b, 0xe9, 0x6c, 0x92,
		0x16, 0x93, 0x77, 0x5c, 0xbb, 0xbe, 0xa2, 0x7f, 0xba, 0x61, 0x7f, 0x15, 0x52, 0x3b, 0xa2, 0x24,
		0xc6, 0xc4, 0xb2, 0x97, 0x3e, 0xce, 0x91, 0xb2, 0xe7, 0x73, 0xc8, 0x3a, 0x4a, 0xf8, 0xf2, 0x54,
		0xdc, 0x8d, 0x87, 0x2f, 0x15, 0xc3, 0x2e, 0xf8, 0x1d, 0x53, 0xe2, 0x71, 0xd4, 0x56, 0x3d, 0xd6,
		0x8f, 0x38, 0xe6, 0xee, 0xa3, 0xa1, 0xcc, 0x9e, 0xe8, 0x0d, 0xe5, 0xc2, 0xc7, 0x52, 0xa9, 0x52,
		0x2d, 0x95, 0x0e, 0xaa, 0x87, 0xd5, 0x83, 0xa3, 0x72, 0xb9, 0x50, 0xd1, 0x29, 0xc1, 0x63, 0x74,
		0x1b, 0xa8, 0x79, 0xe8, 0xfb, 0xf6, 0x5b, 0x68, 0x1e, 0x99, 0x0d, 0x72, 0x4d, 0xa5, 0xfe, 0xd3,
		0x73, 0x5b, 0x1d, 0x25, 0xff, 0xa1, 0x72, 0x40, 0xe5, 0x80, 0xca, 0x01, 0x95, 0x03, 0x2a, 0xc7,
		0x16, 0xa8, 0x1c, 0x03, 0x29, 0xb4, 0x2d, 0x91, 0x7c, 0x0d, 0x22, 0x85, 0x23, 0x8d, 0x36, 0x4c,
		0xba, 0x63, 0xe7, 0xf5, 0x84, 0xd9, 0x19, 0xee, 0x0e, 0xeb, 0x76, 0x43, 0x1e, 0x45, 0x36, 0x81,
		0xa9, 0x21, 0x81, 0x11, 0x42, 0x6b, 0xa4, 0xd0, 0x19, 0x31, 0x0b, 0x46, 0xce, 0x63, 0x89, 0xd0,
		0xd8, 0x49, 0x8d, 0xa1, 0x8f, 0x84, 0x6c, 0x6a, 0x32, 0xa5, 0x78, 0x28, 0xc9, 0x0c, 0xa7, 0xc4,
		0xb0, 0xbd, 0x9b, 0x03, 0xe7, 0xe8, 0xf6, 0xe5, 0xa6, 0xe0, 0x1c, 0xdd, 0x8e, 0x6f, 0x0b, 0xf1,
		0xcb, 0xaf, 0xe2, 0xf0, 0xa5, 0x78, 0x73, 0xe0, 0x94, 0x26, 0x4f, 0x8b, 0xe5, 0x9b, 0x03, 0xa7,
		0x7c, 0xbb, 0xbf, 0xf7, 0xd7, 0x5f, 0x1f, 0x56, 0xfd, 0xcc, 0xfe, 0xaf, 0xc3, 0xa1, 0x4d, 0xe6,
		0x7f, 0xfb, 0x96, 0xd2, 0xb0, 0x68, 0x5c, 0xd6, 0xff, 0x4b, 0x76, 0x6c, 0xfc, 0xbd, 0x97, 0xd7,
		0xe8, 0xd8, 0xff, 0x0f, 0xa1, 0xf1, 0x41, 0xc2, 0x92, 0xe1, 0x7b, 0xc0, 0xce, 0x52, 0xd8, 0xa9,
		0x00, 0x76, 0x4c, 0x87, 0x9d, 0x38, 0x4a, 0x30, 0xa7, 0x57, 0x73, 0x3e, 0xdf, 0xfe, 0x2a, 0xbc,
		0x2f, 0x0d, 0x8f, 0xf7, 0x7f, 0x55, 0x87, 0xf3, 0x0f, 0x5f, 0x16, 0xbd, 0xad, 0xf0, 0xbe, 0x3a,
		0x3c, 0x5e, 0xf2, 0x9b, 0xca, 0xf0, 0xf8, 0x37, 0xff, 0x46, 0x79, 0xb8, 0x97, 0x7a, 0xeb, 0xe8,
		0x79, 0x71, 0xd9, 0x07, 0x4a, 0x4b, 0x3e, 0x70, 0xb8, 0xec, 0x03, 0x87, 0x4b, 0x3e, 0xb0, 0xd4,
		0xa4, 0xe2, 0x92, 0x0f, 0x94, 0x87, 0x2f, 0xa9, 0xf7, 0xef, 0x2d, 0x7e, 0x6b, 0x65, 0xb8, 0xff,
		0xb2, 0xec, 0x77, 0xd5, 0xe1, 0xcb, 0xf1, 0xfe, 0x3e, 0x80, 0xd8, 0x58, 0x20, 0x86, 0xbb, 0xe4,
		0xef, 0x2e, 0x20, 0x26, 0x24, 0xc4, 0x3b, 0x3a, 0xed, 0xa0, 0x99, 0x98, 0x51, 0x52, 0x8e, 0x48,
		0x6c, 0x98, 0x4b, 0xf1, 0x2f, 0x02, 0x59, 0x7b, 0x5a, 0x1b, 0xe8, 0x52, 0x1d, 0x57, 0xbf, 0xb8,
		0xbc, 0xaa, 0x9d, 0x9f, 0x7b, 0xcd, 0x56, 0xe3, 0xaa, 0xf1, 0xa9, 0x71, 0xee, 0x5d, 0xfd, 0x5f,
		0xf3, 0x8c, 0x08, 0x95, 0xa6, 0xb4, 0xa3, 0x8e, 0xde, 0x24, 0xe8, 0x4d, 0x37, 0x9e, 0x7c, 0x69,
		0xd2, 0x01, 0xa7, 0xe1, 0x7b, 0x74, 0xd7, 0x3f, 0x77, 0xd7, 0x69, 0xbd, 0x75, 0xf6, 0xe9, 0xea,
		0xfc, 0xff, 0xbc, 0x4f, 0x8d, 0x8b, 0x8b, 0xb3, 0x4f, 0x57, 0x14, 0x76, 0x72, 0xa1, 0xf7, 0x7e,
		0xb7, 0xf7, 0xbe, 0xb4, 0xea, 0x27, 0x75, 0x74, 0x98, 0x39, 0x1d, 0x56, 0xff, 0xf2, 0x15, 0xe1,
		0xd1, 0xa4, 0xfe, 0xba, 0xac, 0x5f, 0xa2, 0xbf, 0xcc, 0xe9, 0xaf, 0xf3, 0xc6, 0xa7, 0xda, 0x39,
		0x3a, 0xcc, 0xb0, 0x0e, 0xf3, 0x6a, 0x5f, 0xbe, 0xb4, 0xce, 0xbe, 0xd4, 0xae, 0xce, 0xd0, 0x75,
		0xe6, 0x74, 0x5d, 0xe3, 0xb2, 0xf9, 0x19, 0xfd, 0x65, 0x56, 0x7f, 0x1d, 0xa2, 0xc3, 0xcc, 0xe9,
		0xb0, 0xe6, 0xa7, 0x33, 0x90, 0x45, 0x93, 0xfa, 0xab, 0xfe, 0x15, 0xdd, 0x65, 0x4e, 0x77, 0x5d,
		0x5e, 0xd5, 0xae, 0xea, 0x9f, 0x08, 0xf5, 0x18, 0x09, 0x4b, 0x6e, 0xb1, 0x5d, 0x6a, 0xa7, 0x5a,
		0x7e, 0x37, 0xb6, 0x4b, 0x05, 0x4c, 0xdd, 0x3b, 0x82, 0x40, 0x71, 0x98, 0xa9, 0x21, 0x9a, 0x96,
		0xfd, 0x9f, 0xf2, 0x1e, 0x1b, 0xf4, 0x95, 0xd6, 0x44, 0x86, 0x7d, 0xa0, 0x27, 0xe6, 0xde, 0x62,
		0x93, 0x9a, 0x16, 0x03, 0xb0, 0x49, 0x6d, 0xde, 0x1a, 0x6c, 0x52, 0x5b, 0x62, 0x10, 0x36, 0xa9,
		0x91, 0x64, 0x27, 0xd8, 0xa4, 0x36, 0x10, 0x52, 0x1d, 0x16, 0x09, 0xec, 0x52, 0xab, 0xa2, 0xea,
		0x0d, 0xaa, 0xde, 0xbc, 0x31, 0x06, 0x55, 0x6f, 0x7e, 0xd7, 0x97, 0x51, 0xf5, 0x66, 0xc1, 0x50,
		0xa6, 0x58, 0xf5, 0xa6, 0x54, 0x3c, 0x2a, 0x1d, 0x55, 0xaa, 0xc5, 0x23, 0xd4, 0xba, 0x31, 0x6e,
		0x4c, 0x43, 0xbc, 0x81, 0x78, 0xb3, 0x69, 0xf1, 0x46, 0xef, 0x04, 0x72, 0xa6, 0xdd, 0xe8, 0x9c,
		0x23, 0x41, 0x46, 0x80, 0x8c, 0x00, 0x19, 0x01, 0x32, 0x02, 0x64, 0x04, 0x83, 0x65, 0x84, 0x78,
		0x97, 0xb0, 0x76, 0x1f, 0xa1, 0xb0, 0x29, 0x98, 0xcc, 0x26, 0x60, 0x6c, 0xfa, 0xd5, 0xb6, 0x8b,
		0xd1, 0xdd, 0x2b, 0x14, 0x6f, 0x0e, 0x9c, 0x8f, 0xe3, 0x5a, 0x0c, 0x85, 0xdb, 0x54, 0x89, 0x86,
		0xf8, 0xbf, 0x1a, 0xf7, 0x06, 0xdf, 0xea, 0xf4, 0x0f, 0x4a, 0x7b, 0x7f, 0xb1, 0xd7, 0x97, 0xbc,
		0x97, 0x68, 0xdc, 0x12, 0x8c, 0xb9, 0x6f, 0x76, 0x8e, 0x37, 0x39, 0x47, 0xd8, 0x1f, 0x28, 0xae,
		0x7f, 0x02, 0xfc, 0xda, 0x18, 0xcc, 0x82, 0x31, 0x0b, 0xc6, 0x2c, 0x18, 0xb3, 0x60, 0xcc, 0x82,
		0x31, 0x0b, 0x5e, 0x31, 0x6e, 0xb4, 0x7d, 0xbf, 0xcf, 0x19, 0x89, 0x9a, 0xaf, 0x85, 0x5d, 0xa1,
		0x2e, 0xef, 0xb6, 0x78, 0x88, 0xdb, 0x35, 0x29, 0x7d, 0xc5, 0x94, 0xf0, 0xf5, 0xa4, 0xe5, 0xed,
		0xa8, 0x73, 0xcf, 0x1f, 0x58, 0xc0, 0xd4, 0xfd, 0x68, 0x78, 0xbb, 0x7e, 0xc0, 0x65, 0x27, 0x26,
		0x0a, 0x8e, 0xe4, 0xea, 0xa7, 0x1f, 0xfe, 0x70, 0x84, 0x8c, 0x14, 0x93, 0x1d, 0xee, 0xce, 0x3f,
		0x88, 0x52, 0x4f, 0xdc, 0x20, 0xf4, 0x95, 0xdf, 0xf1, 0xfb, 0x51, 0x72, 0xe7, 0xb6, 0xef, 0x02,
		0x37, 0x14, 0x6d, 0x97, 0xf5, 0x84, 0x13, 0xb1, 0x9e, 0x88, 0x92, 0x3b, 0x37, 0x96, 0x94, 0x06,
		0x52, 0x74, 0x58, 0xa4, 0xdc, 0xfe, 0x38, 0xac, 0xba, 0x31, 0x45, 0x8b, 0xc6, 0x2f, 0x6e, 0xa4,
		0x98, 0x16, 0xbe, 0x66, 0x47, 0x2a, 0x1c, 0x74, 0x94, 0x9c, 0x6e, 0x3f, 0x4a, 0x5a, 0xe5, 0x62,
		0xfc, 0x7f, 0x5c, 0x9f, 0xfc, 0x0f, 0x7b, 0x73, 0x3f, 0x47, 0xf3, 0x0f, 0xbc, 0xe6, 0xb4, 0x45,
		0x92, 0x3b, 0xef, 0xe4, 0x2e, 0xf0, 0x5a, 0xa2, 0xed, 0xd5, 0x7a, 0xe2, 0x72, 0xd4, 0x20, 0xd3,
		0x1b, 0xaf, 0x1e, 0x3c, 0x56, 0xae, 0xc7, 0xcd, 0xe1, 0x9d, 0xfb, 0x9d, 0xd1, 0x7b, 0x5a, 0x71,
		0x6b, 0x8c, 0x5f, 0xbc, 0xcb, 0xb8, 0x35, 0xde, 0x6d, 0xa7, 0xf3, 0xe5, 0xe8, 0x78, 0xf6, 0x40,
		0xfe, 0x90, 0xfe, 0x4f, 0xe9, 0x30, 0xa5, 0x42, 0xd1, 0x1e, 0xb5, 0x70, 0xee, 0xce, 0xf7, 0xaa,
		0x86, 0x78, 0xca, 0x96, 0x9c, 0x43, 0xd0, 0x14, 0x50, 0x72, 0xfe, 0x5a, 0x5d, 0xf3, 0x11, 0x9d,
		0xf3, 0x10, 0x1a, 0xf3, 0x0f, 0xdd, 0xf3, 0x0e, 0x32, 0xf3, 0x0d, 0x32, 0xf3, 0x0c, 0x32, 0xf3,
		0x8b, 0xed, 0x26, 0x5b, 0xa7, 0x22, 0xd4, 0xe3, 0xf6, 0xa9, 0x20, 0xaf, 0x5f, 0x10, 0x4b, 0x9b,
		0xa4, 0x57, 0x16, 0x2b, 0x40, 0x16, 0x83, 0x2c, 0x06, 0x59, 0x0c, 0xb2, 0x18, 0x64, 0x31, 0xea,
		0x70, 0x96, 0x18, 0x30, 0xc2, 0x0e, 0x47, 0xe9, 0x16, 0xe7, 0xde, 0x44, 0xb0, 0x99, 0x49, 0x9a,
		0x5d, 0x43, 0x6f, 0xb6, 0x87, 0x0c, 0xbc, 0x51, 0x82, 0x39, 0x9a, 0x70, 0x47, 0x0d, 0xf6, 0xc8,
		0xc2, 0x1f, 0x59, 0x18, 0x24, 0x0b, 0x87, 0x7a, 0x61, 0x51, 0x33, 0x3c, 0x26, 0xbd, 0x72, 0x45,
		0x01, 0xa0, 0xde, 0xc4, 0x9d, 0x3e, 0x67, 0x3d, 0x62, 0x45, 0xbe, 0xab, 0x04, 0x6c, 0x69, 0x4e,
		0xb2, 0x10, 0x1f, 0x3e, 0x8c, 0x85, 0x7f, 0x77, 0x06, 0xe6, 0x3b, 0xba, 0x35, 0x47, 0xa3, 0xeb,
		0xd8, 0xe3, 0xdc, 0x0b, 0x19, 0x62, 0xa7, 0x2b, 0x15, 0x44, 0x48, 0xab, 0x00, 0xa9, 0x03, 0xa9,
		0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0xd3, 0xaf, 0x7d, 0xbc, 0xd5, 0x40, 0xfa, 0x5c, 0xd2, 0x3b,
		0x95, 0x24, 0xb1, 0x8c, 0x88, 0x23, 0xd1, 0x50, 0x44, 0xc8, 0x81, 0x28, 0x45, 0x30, 0xa5, 0x0d,
		0xaa, 0x54, 0xc1, 0x95, 0x3c, 0xc8, 0x92, 0x07, 0x5b, 0xf2, 0xa0, 0x4b, 0x03, 0x7c, 0x89, 0x80,
		0x30, 0x3d, 0x85, 0x25, 0x15, 0xb7, 0x06, 0x42, 0xaa, 0x42, 0x85, 0xe0, 0xa9, 0xb6, 0x15, 0x42,
		0x26, 0xd1, 0x28, 0x8e, 0x35, 0x7f, 0xd1, 0x8a, 0xe9, 0x16, 0xb5, 0xe2, 0x59, 0x29, 0xe3, 0x88,
		0x15, 0xd3, 0x4a, 0xd9, 0x47, 0xb5, 0x10, 0x51, 0x3a, 0x76, 0x50, 0x2b, 0x4c, 0x44, 0x34, 0xec,
		0xbf, 0x75, 0x0d, 0xf6, 0x44, 0xdf, 0x35, 0x2a, 0xe5, 0xf2, 0x61, 0x19, 0xee, 0xb1, 0xed, 0xee,
		0xf1, 0x0e, 0xd6, 0x2c, 0xba, 0x6e, 0xc1, 0x59, 0x5f, 0x0d, 0x63, 0xfe, 0xa4, 0x42, 0xe6, 0x0c,
		0x64, 0xa4, 0x58, 0xbb, 0x4f, 0x8c, 0xbd, 0x86, 0xbc, 0xc7, 0x43, 0x2e, 0x3b, 0x20, 0x65, 0x2b,
		0x50, 0xfd, 0xd6, 0xe7, 0x4f, 0x56, 0xa9, 0x58, 0x2d, 0x58, 0x8e, 0x55, 0xb3, 0x4e, 0xfc, 0xb0,
		0xcb, 0x43, 0xeb, 0x0b, 0x53, 0xfc, 0x27, 0x7b, 0xb6, 0xa6, 0x7b, 0x6f, 0xac, 0x92, 0xb5, 0x77,
		0xf2, 0xa5, 0xe9, 0x94, 0xf6, 0x6d, 0x82, 0x18, 0x4a, 0x54, 0xce, 0x58, 0x24, 0x6b, 0xcc, 0x46,
		0x28, 0x51, 0x94, 0xa2, 0xae, 0x70, 0x2c, 0x54, 0x3a, 0x56, 0x1c, 0xc2, 0x40, 0x5e, 0x20, 0xaf,
		0x51, 0xed, 0x41, 0xa1, 0x6a, 0x30, 0x9d, 0x35, 0xab, 0x29, 0x04, 0xa3, 0xb2, 0x76, 0x75, 0x16,
		0xf0, 0x91, 0xb1, 0xf9, 0x47, 0x83, 0x90, 0xb1, 0xd9, 0x12, 0x8a, 0x83, 0x8c, 0xcd, 0x46, 0x79,
		0x0c, 0x32, 0x36, 0xd4, 0x67, 0xbf, 0xb4, 0x33, 0x36, 0x1f, 0x09, 0x26, 0x6c, 0xca, 0x48, 0xd8,
		0x98, 0xa7, 0x0d, 0x20, 0x61, 0xf3, 0x07, 0xf6, 0x41, 0x91, 0xde, 0xb2, 0xa8, 0xff, 0xd6, 0x35,
		0x4c, 0x48, 0xd8, 0x14, 0xcb, 0x48, 0xd7, 0x6c, 0xbd, 0x73, 0x40, 0x34, 0x5a, 0x78, 0x21, 0x5d,
		0xf3, 0x7a, 0x18, 0x23, 0x5d, 0xb3, 0x25, 0x94, 0x0c, 0xe9, 0x1a, 0x0d, 0x9a, 0x06, 0xd2, 0x35,
		0x59, 0xc8, 0x1c, 0x48, 0xd7, 0x00, 0x79, 0xb7, 0xb9, 0x3d, 0xc8, 0xa4, 0x6b, 0x1e, 0x27, 0xd3,
		0x01, 0x8a, 0xf9, 0x9a, 0xb1, 0x6d, 0x48, 0xd8, 0x2c, 0x32, 0x07, 0x09, 0x9b, 0x15, 0x46, 0x13,
		0x12, 0x36, 0x6b, 0x92, 0x1b, 0x24, 0x6c, 0xfe, 0x98, 0xc9, 0x20, 0x61, 0x43, 0x7d, 0xfe, 0x4b,
		0x37, 0x61, 0xd3, 0x16, 0x92, 0x85, 0xcf, 0x04, 0x33, 0x36, 0x47, 0x84, 0x4c, 0x3a, 0xe7, 0xf2,
		0x2e, 0x2e, 0x6e, 0x02, 0x7d, 0xe0, 0x5f, 0x5a, 0xca, 0x88, 0x94, 0x4d, 0x01, 0xaa, 0xf4, 0x1f,
		0x06, 0x0f, 0xa4, 0x6c, 0xd6, 0x70, 0x0d, 0xec, 0xb1, 0x81, 0x7b, 0x80, 0x9c, 0x51, 0xb6, 0x06,
		0x49, 0x9b, 0xd7, 0xc3, 0x18, 0x49, 0x9b, 0x2d, 0x21, 0x65, 0x48, 0xda, 0x68, 0xd0, 0x35, 0x90,
		0xb4, 0xc9, 0x42, 0xea, 0x40, 0xd2, 0x06, 0xc8, 0xbb, 0xcd, 0xed, 0x41, 0x21, 0x69, 0xc3, 0x9f,
		0x14, 0x97, 0x5d, 0xde, 0xa5, 0x97, 0xb2, 0x49, 0x2c, 0x43, 0xc2, 0x66, 0x91, 0x39, 0x48, 0xd8,
		0xac, 0x30, 0x96, 0x90, 0xb0, 0x59, 0x93, 0xd8, 0x20, 0x61, 0xf3, 0xc7, 0x2c, 0x06, 0x09, 0x1b,
		0xea, 0x73, 0x5f, 0xc2, 0x09, 0x1b, 0xed, 0x67, 0x18, 0x2f, 0x83, 0x41, 0x4d, 0x67, 0x1a, 0x43,
		0x3e, 0x81, 0x7c, 0x02, 0xf9, 0x04, 0xf2, 0x09, 0x08, 0x07, 0xe4, 0x13, 0xc8, 0x27, 0x90, 0x4f,
		0x74, 0xfb, 0x9b, 0x1f, 0x28, 0xe1, 0x4b, 0xd6, 0xa7, 0x27, 0x9f, 0x24, 0x96, 0x41, 0x3e, 0x81,
		0x7c, 0x02, 0xf9, 0x04, 0xf2, 0x09, 0xe4, 0x13, 0xc8, 0x27, 0x90, 0x4f, 0x20, 0x9f, 0x40, 0x3e,
		0x81, 0x7c, 0x02, 0xf9, 0x04, 0xf2, 0x09, 0x08, 0x07, 0xe4, 0x13, 0xc8, 0x27, 0x90, 0x4f, 0x74,
		0xfa, 0x5b, 0xc0, 0x42, 0x25, 0x28, 0xaa, 0x27, 0x53, 0xc3, 0x20, 0x9e, 0x40, 0x3c, 0x81, 0x78,
		0x02, 0xf1, 0x04, 0xe2, 0x09, 0xc4, 0x13, 0x88, 0x27, 0x10, 0x4f, 0x20, 0x9e, 0x40, 0x3c, 0x81,
		0x78, 0x02, 0xf1, 0x04, 0x84, 0x03, 0xe2, 0x09, 0xc4, 0x13, 0x88, 0x27, 0x3a, 0xfd, 0x4d, 0x85,
		0x4c, 0x46, 0x62, 0xb2, 0xf7, 0x9c, 0x98, 0x7e, 0xf2, 0xca, 0x36, 0x48, 0x28, 0x90, 0x50, 0x20,
		0xa1, 0x40, 0x42, 0x81, 0x84, 0x02, 0x09, 0x05, 0x12, 0x0a, 0x24, 0x14, 0x48, 0x28, 0x90, 0x50,
		0x20, 0xa1, 0x40, 0x42, 0x01, 0xe1, 0x80, 0x84, 0x02, 0x09, 0x65, 0x87, 0x25, 0x94, 0x77, 0x3b,
		0xcc, 0x3c, 0xec, 0x9a, 0x94, 0xbe, 0x62, 0x4a, 0xf8, 0x34, 0x4a, 0xa8, 0xda, 0x51, 0xe7, 0x9e,
		0x3f, 0xb0, 0x80, 0xc5, 0x95, 0x6f, 0x6d, 0xd7, 0x0f, 0xb8, 0xec, 0xc4, 0x12, 0x85, 0x23, 0xb9,
		0xfa, 0xe9, 0x87, 0x3f, 0x1c, 0x31, 0x62, 0x47, 0xb2, 0xc3, 0xdd, 0xf9, 0x07, 0x51, 0xea, 0x89,
		0x1b, 0x4c, 0xe2, 0x53, 0x94, 0xdc, 0xb9, 0xed, 0xbb, 0xc0, 0x0d, 0x45, 0xdb, 0x65, 0x3d, 0xe1,
		0x44, 0xac, 0x27, 0xa2, 0xe4, 0xce, 0x15, 0xc1, 0x63, 0xc5, 0x19, 0x48, 0xd1, 0x61, 0x91, 0x72,
		0xfb, 0xe3, 0x09, 0x97, 0x1b, 0xfa, 0x03, 0xc5, 0xa3, 0xf1, 0x8b, 0x3b, 0x90, 0x3f, 0xa4, 0xff,
		0x53, 0x3a, 0x4c, 0xa9, 0x50, 0xb4, 0xe3, 0x5f, 0xa4, 0x1e, 0xb9, 0x91, 0x62, 0x8a, 0x02, 0x04,
		0xd9, 0x91, 0x0a, 0x07, 0x1d, 0x25, 0x27, 0x54, 0xa4, 0x91, 0x34, 0xe5, 0xc5, 0xb8, 0x99, 0xea,
		0x93, 0x56, 0xf2, 0xe6, 0x7e, 0x8e, 0xe6, 0x1f, 0x78, 0xd3, 0x30, 0x1f, 0x25, 0x77, 0xde, 0xc9,
		0x5d, 0xe0, 0xb5, 0x44, 0xdb, 0xab, 0xf5, 0xc4, 0xe5, 0xa8, 0x15, 0xa7, 0x37, 0x5e, 0x3d, 0x78,
		0xac, 0x5c, 0x8f, 0xdb, 0xd0, 0x3b, 0xf7, 0x3b, 0xa3, 0xf7, 0xb4, 0xe2, 0x26, 0x1c, 0xbf, 0x78,
		0xd7, 0xe3, 0xf6, 0xaa, 0x25, 0x2d, 0x98, 0x7a, 0xe2, 0x5d, 0xc6, 0x0d, 0xf8, 0x6e, 0x37, 0x83,
		0x82, 0x9e, 0x6f, 0xd6, 0x14, 0x86, 0x46, 0xec, 0x8d, 0xc2, 0x31, 0xe6, 0xf6, 0xb9, 0x88, 0xd4,
		0x68, 0x00, 0x6a, 0x0d, 0x82, 0xf6, 0x57, 0x21, 0xcf, 0xfa, 0x7c, 0x44, 0xbc, 0x34, 0x57, 0x9a,
		0xb5, 0xbf, 0xb2, 0xa7, 0x57, 0x96, 0x14, 0x3e, 0x96, 0x4a, 0x95, 0x6a, 0xa9, 0x74, 0x50, 0x3d,
		0xac, 0x1e, 0x1c, 0x95, 0xcb, 0x85, 0x4a, 0x41, 0x63, 0xbd, 0x5e, 0xbb, 0x31, 0xe2, 0xa0, 0xbc,
		0x7b, 0x32, 0x1a, 0x3a, 0x72, 0xd0, 0xef, 0x53, 0x30, 0xe5, 0x3a, 0xe2, 0xa1, 0xd6, 0xd2, 0xbb,
		0xba, 0x3c, 0x98, 0x08, 0x81, 0xd8, 0x02, 0xe2, 0xa0, 0x91, 0x32, 0x98, 0x4a, 0x15, 0xf4, 0x90,
		0x84, 0xfc, 0x21, 0x3a, 0xdf, 0x6f, 0xcc, 0x39, 0x94, 0xe8, 0x0e, 0x21, 0xc6, 0x85, 0x0e, 0x0d,
		0x81, 0xc2, 0x90, 0x00, 0x91, 0x6f, 0x3c, 0xc8, 0xcf, 0x2b, 0xf3, 0xf9, 0xa6, 0x9c, 0xfc, 0x7e,
		0x4a, 0xfa, 0xc7, 0x49, 0x61, 0xcb, 0x0f, 0xc5, 0x9d, 0x90, 0xd6, 0xc8, 0xfd, 0x1c, 0x91, 0x57,
		0x95, 0x55, 0x3d, 0x84, 0x5f, 0x1f, 0xc1, 0x27, 0x45, 0xe8, 0x35, 0x12, 0x78, 0x8d, 0x84, 0x3d,
		0x2f, 0xef, 0xd2, 0x84, 0xa6, 0xb4, 0x51, 0x34, 0x47, 0xc8, 0x24, 0x09, 0x95, 0xf9, 0x00, 0x63,
		0xf6, 0x30, 0x95, 0xed, 0x37, 0x64, 0xec, 0xa2, 0x79, 0xbb, 0x26, 0x55, 0x97, 0xcc, 0xc1, 0x19,
		0x89, 0x39, 0x61, 0xb6, 0xee, 0x97, 0x9d, 0x53, 0x64, 0xe8, 0x10, 0xf6, 0x38, 0x4d, 0x92, 0xb5,
		0x1f, 0x24, 0x2b, 0x31, 0xf2, 0xc8, 0xca, 0x24, 0xab, 0x9a, 0x32, 0xfe, 0x9a, 0x64, 0xd1, 0x6e,
		0x31, 0xe3, 0x2f, 0xca, 0x71, 0x31, 0xae, 0x9e, 0x45, 0xb6, 0x79, 0x2f, 0x6f, 0xd1, 0xb6, 0x28,
		0x56, 0xdb, 0xda, 0x13, 0x6d, 0x8b, 0x58, 0x41, 0x15, 0x8c, 0xa6, 0x0a, 0x79, 0x65, 0xd1, 0xc9,
		0x30, 0x85, 0x1c, 0xb2, 0xde, 0x19, 0x12, 0x85, 0x77, 0x06, 0x39, 0x59, 0x5e, 0xce, 0x45, 0xce,
		0xa9, 0xec, 0x4c, 0xe9, 0x1c, 0x09, 0x37, 0xca, 0xc6, 0x81, 0x36, 0x3f, 0xbc, 0x33, 0x18, 0xda,
		0xb6, 0xe4, 0xe2, 0xee, 0xbe, 0xed, 0x87, 0x51, 0x66, 0xa3, 0x3a, 0x21, 0x69, 0xb3, 0xaf, 0xca,
		0xc8, 0x45, 0xb3, 0x65, 0xd2, 0x99, 0x33, 0xe8, 0x3c, 0x98, 0x73, 0xbe, 0x8c, 0x39, 0x2f, 0xa6,
		0x9c, 0x3b, 0x43, 0xce, 0x9d, 0x19, 0xe7, 0xce, 0x88, 0xcd, 0x02, 0xe7, 0x53, 0x91, 0x6d, 0x52,
		0x26, 0x89, 0x5d, 0xf9, 0x69, 0x0f, 0xc9, 0x37, 0x6e, 0x99, 0xfc, 0x70, 0x00, 0xf9, 0x01, 0xf2,
		0x03, 0xe4, 0x87, 0x2d, 0x94, 0x1f, 0xb2, 0x0e, 0xc2, 0xc9, 0x17, 0xb1, 0xee, 0xf7, 0xb8, 0x4f,
		0x84, 0x74, 0x02, 0x3f, 0x52, 0xf9, 0x79, 0xc2, 0xd4, 0xdf, 0xe7, 0x0d, 0xc8, 0x6b, 0x0d, 0x44,
		0x2e, 0xa1, 0x3a, 0xf7, 0x90, 0xad, 0x23, 0x74, 0xeb, 0x0d, 0xe1, 0xba, 0x42, 0xb9, 0xf6, 0x90,
		0xae, 0x3d, 0xb4, 0x6b, 0x0f, 0xf1, 0xf9, 0x84, 0xfa, 0x9c, 0x42, 0x7e, 0xee, 0xa1, 0x3f, 0xf9,
		0xc2, 0x49, 0x52, 0x38, 0x77, 0xc7, 0x99, 0x86, 0x8b, 0xdc, 0x92, 0xd2, 0x1a, 0x01, 0x20, 0x37,
		0xe1, 0x83, 0x12, 0x20, 0xd0, 0x00, 0x06, 0xdd, 0x00, 0x41, 0x06, 0x28, 0xc8, 0x00, 0x06, 0x19,
		0xe0, 0xc8, 0x17, 0x40, 0x72, 0x06, 0x12, 0x6d, 0x80, 0xf2, 0x16, 0x58, 0xf4, 0xf9, 0xdb, 0x1b,
		0x7c, 0xd1, 0xe5, 0x6b, 0x7a, 0x60, 0x46, 0xdb, 0xbc, 0x83, 0x12, 0xec, 0xd0, 0x82, 0x1f, 0x2a,
		0x30, 0x44, 0x0e, 0x8e, 0xc8, 0xc1, 0x12, 0x39, 0x78, 0xd2, 0x03, 0x53, 0x9a, 0xe0, 0x4a, 0x3b,
		0x6c, 0x25, 0x06, 0x4c, 0x77, 0xc4, 0x68, 0xf7, 0xd4, 0xd9, 0x61, 0x34, 0x79, 0x6e, 0xd1, 0xf9,
		0x37, 0x48, 0xd3, 0x5c, 0xb0, 0x94, 0x4c, 0xe5, 0x54, 0x4a, 0x15, 0x53, 0x69, 0x56, 0x4a, 0xa5,
		0x56, 0xc3, 0x8c, 0x6c, 0x65, 0x54, 0xb2, 0x05, 0xca, 0xc8, 0x56, 0x42, 0xdd, 0xed, 0xe2, 0x51,
		0x64, 0x2a, 0x9e, 0x26, 0x71, 0xa7, 0xcf, 0x59, 0x2f, 0xe4, 0x3d, 0x0a, 0x41, 0x67, 0x3a, 0xf3,
		0xaa, 0x12, 0xb0, 0xa5, 0x39, 0x59, 0x82, 0xf8, 0xe1, 0xc3, 0x78, 0x5d, 0xad, 0x3b, 0x85, 0xf2,
		0x5d, 0x2d, 0xb2, 0xa4, 0x71, 0xfe, 0x15, 0xd0, 0x80, 0xeb, 0x19, 0xab, 0x23, 0x31, 0xf9, 0x02,
		0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x5b, 0x93, 0xd4,
		0x8d, 0xc3, 0x0e, 0x38, 0x5d, 0xee, 0x5d, 0x91, 0xcf, 0x5e, 0xe6, 0xdf, 0x76, 0x18, 0x0a, 0x15,
		0x68, 0x35, 0x67, 0x9e, 0xc0, 0xe8, 0xc0, 0xe8, 0xc0, 0xe8, 0xc0, 0xe8, 0xc0, 0xe8, 0xf4, 0x67,
		0xb2, 0x12, 0x43, 0xe2, 0x32, 0xcf, 0x42, 0x76, 0xf9, 0x13, 0xbd, 0x93, 0x02, 0x5f, 0xd9, 0x86,
		0x93, 0x02, 0x29, 0x03, 0x29, 0x45, 0x40, 0xa5, 0x0d, 0xac, 0x54, 0x01, 0x96, 0x3c, 0xd0, 0x92,
		0x07, 0x5c, 0xf2, 0xc0, 0x4b, 0x03, 0x80, 0x89, 0x00, 0x31, 0x3d, 0x89, 0x85, 0xb0, 0xd4, 0x42,
		0x51, 0x72, 0x59, 0x24, 0xbd, 0xfc, 0xc3, 0xbf, 0x98, 0x52, 0x44, 0x5c, 0x45, 0xc9, 0xdd, 0x44,
		0xa8, 0x19, 0xd3, 0x0c, 0x9c, 0xbf, 0x44, 0xc5, 0x29, 0xed, 0x36, 0x8f, 0x94, 0x33, 0xa9, 0xd3,
		0x42, 0x8c, 0x97, 0xce, 0x4c, 0x03, 0x2d, 0x05, 0x2d, 0x05, 0x2d, 0x05, 0x2d, 0x05, 0x2d, 0x05,
		0x2d, 0xdd, 0x31, 0x5a, 0x8a, 0x03, 0xac, 0x41, 0xe3, 0x7e, 0xa3, 0x4f, 0x3a, 0xfe, 0xc3, 0xc3,
		0x40, 0x0a, 0xf5, 0x4c, 0x55, 0x64, 0x9c, 0x37, 0x10, 0x94, 0x0e, 0x94, 0x0e, 0x94, 0x0e, 0x94,
		0x0e, 0x94, 0x0e, 0x94, 0x6e, 0xc7, 0x28, 0x1d, 0x94, 0xc6, 0xdf, 0x83, 0x9e, 0xdf, 0x52, 0x1a,
		0xa7, 0xbc, 0x42, 0xf0, 0x28, 0xb9, 0x7f, 0x86, 0xd8, 0x48, 0x93, 0xa5, 0xf2, 0x27, 0xe5, 0x90,
		0x67, 0xaa, 0x8b, 0x8c, 0x04, 0x5b, 0x05, 0x5b, 0x05, 0x5b, 0x05, 0x5b, 0x05, 0x5b, 0x05, 0x5b,
		0x05, 0x5b, 0x05, 0x5b, 0x5d, 0x97, 0xad, 0xbe, 0xe6, 0x16, 0x23, 0xc6, 0xfa, 0x86, 0x6b, 0x80,
		0xb5, 0xd2, 0x64, 0xad, 0x42, 0x3e, 0xb2, 0xbe, 0xe8, 0x3a, 0x21, 0x67, 0x91, 0xe6, 0xb3, 0xfe,
		0x17, 0x7a, 0xe8, 0x9c, 0x7d, 0xe0, 0xaa, 0xe0, 0xaa, 0xe0, 0xaa, 0xe0, 0xaa, 0xe0, 0xaa, 0xe0,
		0xaa, 0x3b, 0xc6, 0x55, 0x45, 0x97, 0x4b, 0x25, 0xd4, 0x33, 0x51, 0xbe, 0x5a, 0x26, 0x64, 0x53,
		0x7d, 0xd2, 0x54, 0x27, 0x2c, 0x22, 0x18, 0x52, 0xa7, 0x1d, 0x5a, 0xbf, 0xf8, 0x56, 0x3b, 0xaf,
		0x9f, 0x7a, 0xad, 0xc6, 0xf5, 0xd5, 0x99, 0xd7, 0x3a, 0xab, 0x5d, 0x36, 0x2e, 0xa8, 0x45, 0xd7,
		0x6f, 0xac, 0x3f, 0x88, 0x8b, 0x78, 0xdf, 0x90, 0xb2, 0x6b, 0x74, 0xfd, 0x22, 0x67, 0xd1, 0xc2,
		0xde, 0xad, 0x5d, 0x7a, 0xe7, 0x8d, 0x46, 0xd3, 0x26, 0x67, 0xed, 0xf0, 0x3d, 0xba, 0x74, 0xbd,
		0x2e, 0xfd, 0x74, 0x7e, 0x7d, 0x79, 0x75, 0xd6, 0x42, 0xbf, 0x6e, 0x5b, 0xbf, 0x36, 0x2e, 0x3e,
		0x9f, 0x9d, 0xa2, 0x47, 0xb7, 0xa7, 0x47, 0x1b, 0xad, 0xfa, 0x97, 0xfa, 0x45, 0xed, 0xaa, 0xd1,
		0x22, 0xd8, 0xab, 0xa4, 0x2c, 0xba, 0xc5, 0x7c, 0x84, 0x98, 0x15, 0x14, 0xd4, 0xc1, 0x3e, 0x8b,
		0x94, 0xf3, 0xe0, 0x77, 0x45, 0x4f, 0xf0, 0x2e, 0x3d, 0x71, 0xf0, 0xad, 0x79, 0xd0, 0x06, 0x17,
		0x99, 0x03, 0x6d, 0x70, 0x85, 0x01, 0x05, 0x6d, 0x70, 0xa5, 0x91, 0x0e, 0x6d, 0xf0, 0x0f, 0x0d,
		0x84, 0x36, 0x68, 0x10, 0xff, 0x25, 0xac, 0x0d, 0x2a, 0xf1, 0xc0, 0x95, 0xe8, 0xfc, 0x88, 0x2a,
		0x25, 0x82, 0xda, 0xe0, 0x47, 0x42, 0x26, 0x5d, 0x4b, 0xa1, 0xa2, 0xf8, 0xf0, 0x66, 0x26, 0xfd,
		0x88, 0x77, 0x7c, 0xd9, 0x8d, 0x28, 0x35, 0x59, 0x8b, 0xc9, 0x3b, 0x4e, 0x4e, 0x6f, 0xa3, 0x37,
		0xdd, 0xb3, 0xbf, 0x0a, 0x49, 0x0e, 0x11, 0x13, 0xe3, 0x62, 0xd9, 0x94, 0x0e, 0xe7, 0x4a, 0xd9,
		0xf7, 0x39, 0x64, 0x1d, 0x25, 0x7c, 0x79, 0x2a, 0xee, 0xc6, 0xee, 0x40, 0xd5, 0xd0, 0x0b, 0x7e,
		0xc7, 0x94, 0x78, 0x1c, 0xb5, 0x65, 0x8f, 0xf5, 0x23, 0x0e, 0x6d, 0xe6, 0x77, 0x5c, 0x83, 0x3d,
		0xd1, 0x77, 0x8d, 0xc2, 0xc7, 0x52, 0xa9, 0x52, 0x2d, 0x95, 0x0e, 0xaa, 0x87, 0xd5, 0x83, 0xa3,
		0x72, 0xb9, 0x50, 0xa1, 0x94, 0x42, 0x82, 0xb7, 0x6c, 0x31, 0x9f, 0xa4, 0x67, 0xcd, 0x2d, 0x34,
		0x2f, 0x2a, 0xd1, 0x94, 0xcc, 0xf9, 0x5c, 0x29, 0x92, 0x4f, 0xe3, 0x9c, 0xae, 0x79, 0x72, 0x0f,
		0x9d, 0x6b, 0x89, 0x41, 0xd0, 0xb9, 0x56, 0xb5, 0x0e, 0x3a, 0xd7, 0x9a, 0x06, 0x42, 0xe7, 0xda,
		0x0a, 0x26, 0x00, 0x9d, 0xeb, 0xdf, 0xe2, 0xd6, 0x40, 0x48, 0x75, 0x58, 0x24, 0x28, 0x71, 0x55,
		0x21, 0x21, 0xfd, 0xcb, 0x05, 0x09, 0x69, 0xbd, 0x79, 0x32, 0x24, 0xa4, 0xad, 0x9f, 0x14, 0x43,
		0x42, 0x5a, 0xcf, 0x35, 0x4a, 0xc5, 0xa3, 0xd2, 0x51, 0xa5, 0x5a, 0x3c, 0x82, 0x70, 0xb4, 0xf5,
		0x3e, 0x02, 0xe1, 0x68, 0xe1, 0x75, 0x0b, 0xe2, 0xfa, 0x6a, 0x18, 0xf3, 0x27, 0x15, 0x32, 0x67,
		0x20, 0x23, 0xc5, 0xda, 0x7d, 0x62, 0x14, 0x36, 0xe4, 0x3d, 0x1e, 0x72, 0xd9, 0x01, 0x33, 0x5b,
		0x81, 0xef, 0x77, 0x43, 0xd6, 0x53, 0x8e, 0xe0, 0xaa, 0xe7, 0x88, 0x6e, 0xe8, 0xb0, 0x6e, 0x37,
		0xae, 0x99, 0x1c, 0x59, 0x8e, 0x55, 0xeb, 0x3e, 0xf2, 0x50, 0x89, 0x88, 0x8f, 0xe6, 0x95, 0x96,
		0xdf, 0xb3, 0xbe, 0x0e, 0xfa, 0x4a, 0x04, 0x7d, 0x6e, 0x35, 0x47, 0xef, 0xf8, 0x4b, 0x0a, 0x69,
		0x9d, 0x7c, 0x69, 0xda, 0x04, 0xc1, 0x95, 0xa8, 0xce, 0xb1, 0x48, 0xef, 0x98, 0x8d, 0x5a, 0xa2,
		0xc8, 0x45, 0x5d, 0xfa, 0x58, 0x28, 0x81, 0x6c, 0x60, 0x58, 0x03, 0xa1, 0x81, 0xd0, 0x46, 0xb5,
		0x07, 0x89, 0xd4, 0x0e, 0x2d, 0x49, 0x9e, 0xd6, 0x59, 0xdd, 0xb3, 0xf0, 0x8f, 0xc4, 0xce, 0x3f,
		0x1a, 0x84, 0xc4, 0xce, 0x96, 0x10, 0x1e, 0x24, 0x76, 0x36, 0xca, 0x6a, 0x90, 0xd8, 0xa1, 0x3e,
		0x3f, 0x26, 0x5c, 0xdc, 0x20, 0x78, 0xac, 0x38, 0xe4, 0x7c, 0x30, 0x29, 0x6e, 0xf0, 0x91, 0x56,
		0x31, 0x2e, 0xc5, 0x43, 0x49, 0x4e, 0x46, 0xb0, 0xf7, 0xf6, 0x6e, 0x0e, 0x9c, 0x23, 0xe6, 0xf4,
		0x6a, 0xce, 0xe7, 0xdb, 0x5f, 0x85, 0xf7, 0xa5, 0xe1, 0xf1, 0xfe, 0xaf, 0xea, 0x70, 0xfe, 0xe1,
		0xcb, 0xa2, 0xb7, 0x15, 0xde, 0x57, 0x87, 0xc7, 0x4b, 0x7e, 0x53, 0x19, 0x1e, 0xff, 0xe6, 0xdf,
		0x28, 0x0f, 0xf7, 0x52, 0x6f, 0x1d, 0x3d, 0x2f, 0x2e, 0xfb, 0x40, 0x69, 0xc9, 0x07, 0x0e, 0x97,
		0x7d, 0xe0, 0x70, 0xc9, 0x07, 0x96, 0x9a, 0x54, 0x5c, 0xf2, 0x81, 0xf2, 0xf0, 0x25, 0xf5, 0xfe,
		0xbd, 0xc5, 0x6f, 0xad, 0x0c, 0xf7, 0x5f, 0x96, 0xfd, 0xae, 0x3a, 0x7c, 0x39, 0xde, 0xdf, 0x77,
		0xf7, 0x0a, 0xc5, 0x9b, 0x03, 0xe7, 0xe3, 0xed, 0x4b, 0xe1, 0xe6, 0xc0, 0x29, 0xdc, 0x8e, 0xde,
		0x79, 0xfb, 0x72, 0x53, 0x70, 0x8e, 0xa6, 0xb7, 0xa3, 0xff, 0xee, 0xd3, 0x09, 0xcb, 0xb7, 0x94,
		0xfc, 0xa9, 0x71, 0x59, 0xff, 0x2f, 0x59, 0xa7, 0xfa, 0x1b, 0x5e, 0x45, 0xdc, 0xab, 0xfe, 0x63,
		0x43, 0x6b, 0x80, 0xd6, 0x90, 0x72, 0xdc, 0x49, 0xd9, 0x42, 0x7f, 0xa0, 0x38, 0x3d, 0xc1, 0xe1,
		0xb5, 0x71, 0x50, 0x1d, 0xa0, 0x3a, 0x40, 0x75, 0x80, 0xea, 0x00, 0xd5, 0x01, 0xaa, 0xc3, 0x8e,
		0xa9, 0x0e, 0x38, 0x7f, 0x90, 0x3e, 0x95, 0x7b, 0xb7, 0xc3, 0x2e, 0x64, 0xd7, 0xa4, 0xf4, 0x15,
		0x53, 0x82, 0x48, 0x65, 0x6e, 0x3b, 0xea, 0xdc, 0xf3, 0x07, 0x36, 0x39, 0x51, 0xdb, 0x76, 0xfd,
		0x80, 0xcb, 0x4e, 0x4c, 0x94, 0x1c, 0xc9, 0xd5, 0x4f, 0x3f, 0xfc, 0xe1, 0x08, 0x19, 0x29, 0x26,
		0x3b, 0xdc, 0x9d, 0x7f, 0x10, 0xa5, 0x9e, 0xb8, 0x41, 0xe8, 0x2b, 0xbf, 0xe3, 0xf7, 0xa3, 0xe4,
		0xce, 0x6d, 0xdf, 0x05, 0x6e, 0x28, 0xda, 0x2e, 0xeb, 0x09, 0x27, 0x62, 0x3d, 0x11, 0x25, 0x77,
		0x6e, 0x2c, 0x11, 0x0e, 0xa4, 0xe8, 0xb0, 0x48, 0xb9, 0x92, 0x8b, 0xbb, 0xfb, 0xb6, 0x1f, 0x46,
		0xc9, 0x9d, 0xcb, 0xba, 0xdf, 0x63, 0x24, 0x10, 0xd2, 0x09, 0xfc, 0x48, 0xb9, 0x31, 0xbb, 0x8d,
		0xc6, 0x2f, 0xe3, 0xea, 0xf3, 0x04, 0xfc, 0xdc, 0x8e, 0x54, 0x38, 0xe8, 0x28, 0x39, 0x09, 0x40,
		0x8d, 0xa4, 0x01, 0x2f, 0xc6, 0x8d, 0x53, 0x9f, 0xb4, 0x8d, 0x37, 0xf7, 0x73, 0x34, 0xff, 0xc0,
		0x6b, 0x4e, 0x1b, 0x2f, 0xb9, 0xf3, 0x4e, 0xee, 0x02, 0xaf, 0x25, 0xda, 0x5e, 0xad, 0x27, 0x2e,
		0x47, 0x6d, 0x37, 0xbd, 0xf1, 0xea, 0xc1, 0x63, 0xe5, 0x7a, 0xdc, 0x72, 0xde, 0xc5, 0xb4, 0xe5,
		0x92, 0x3b, 0xaf, 0xd6, 0xfd, 0xde, 0x12, 0xed, 0xba, 0x6c, 0xfa, 0x91, 0xf2, 0x5a, 0x71, 0xb3,
		0x8d, 0x5f, 0xbc, 0xcb, 0xb8, 0xd9, 0xde, 0xed, 0x66, 0x00, 0xd0, 0xe8, 0xfc, 0xf6, 0x40, 0xfe,
		0x90, 0xfe, 0x4f, 0xe9, 0x30, 0xa5, 0x42, 0xd1, 0x1e, 0xf5, 0x88, 0xf6, 0x00, 0x30, 0xdb, 0x84,
		0x91, 0xb6, 0x4d, 0x73, 0x98, 0x9c, 0x82, 0xa6, 0x66, 0x33, 0xa8, 0xcc, 0x19, 0x29, 0xcd, 0x15,
		0x69, 0xce, 0x11, 0xa9, 0xcd, 0x0d, 0xc9, 0xce, 0x09, 0xc9, 0xce, 0x05, 0xc9, 0xce, 0x01, 0x77,
		0x9b, 0xb0, 0x9e, 0x8a, 0x90, 0x46, 0xd8, 0x49, 0x81, 0x14, 0x3d, 0x11, 0x36, 0x6d, 0x22, 0x2d,
		0x29, 0xb6, 0x00, 0x29, 0x96, 0x3c, 0xbc, 0xd2, 0x86, 0x59, 0xaa, 0x70, 0x4b, 0x1e, 0x76, 0xc9,
		0xc3, 0x2f, 0x79, 0x18, 0xa6, 0xa3, 0x60, 0x59, 0x84, 0xa4, 0x58, 0x2a, 0xf0, 0x9c, 0x18, 0x34,
		0xc2, 0x3e, 0x47, 0x51, 0x13, 0x88, 0xdf, 0x44, 0xd4, 0x99, 0x89, 0xc4, 0x5c, 0x8f, 0x56, 0xc6,
		0x94, 0x2c, 0x5c, 0x53, 0x86, 0x6d, 0x33, 0xe0, 0x9b, 0x3a, 0x8c, 0x1b, 0x03, 0xe7, 0xc6, 0xc0,
		0xba, 0x31, 0xf0, 0x4e, 0x0b, 0xe6, 0x89, 0xc1, 0x7d, 0xd2, 0x8b, 0x57, 0x14, 0x01, 0xd6, 0xa2,
		0x7d, 0x10, 0x73, 0x6a, 0x36, 0x5c, 0x25, 0x68, 0xdb, 0xab, 0x83, 0x99, 0xc7, 0xe7, 0x2b, 0xcf,
		0xc8, 0x0a, 0xb6, 0x63, 0x52, 0x77, 0x4d, 0x7b, 0x9c, 0x94, 0x24, 0x4b, 0x7c, 0xa9, 0xe4, 0x4c,
		0x17, 0x7a, 0x23, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x90, 0x75, 0x71,
		0x2f, 0x52, 0xd3, 0xba, 0x12, 0xc3, 0x62, 0x8e, 0xd6, 0xe7, 0x84, 0x6b, 0x0f, 0xbe, 0x91, 0xbe,
		0x46, 0x96, 0x12, 0x75, 0x54, 0x9a, 0x0a, 0x18, 0x79, 0x52, 0x60, 0x02, 0x39, 0x30, 0x8b, 0x24,
		0x98, 0x42, 0x16, 0x8c, 0x23, 0x0d, 0xc6, 0x91, 0x07, 0xe3, 0x48, 0x04, 0x4d, 0x32, 0x41, 0x94,
		0x54, 0x24, 0xbd, 0x4b, 0x56, 0x51, 0x4b, 0xc5, 0xcd, 0x81, 0x90, 0xaa, 0x50, 0xa1, 0x1c, 0x33,
		0x27, 0x28, 0x5e, 0x21, 0x6c, 0x22, 0xcd, 0x92, 0xda, 0xf3, 0x17, 0x6d, 0xcc, 0xb1, 0xa8, 0x97,
		0xdc, 0x4e, 0x19, 0x4b, 0xbc, 0x04, 0x77, 0xca, 0x5e, 0x53, 0xca, 0x0d, 0xa7, 0x63, 0x15, 0xf5,
		0xf2, 0xc3, 0x86, 0xc0, 0xd2, 0x5b, 0x57, 0x63, 0x4f, 0xe6, 0xb9, 0x5a, 0xa5, 0x5c, 0x3e, 0x2c,
		0xc3, 0xdd, 0xe0, 0x6e, 0x06, 0x70, 0x53, 0xfa, 0xd6, 0xdd, 0x82, 0xd3, 0xaf, 0xe0, 0x16, 0x84,
		0xab, 0x87, 0xa7, 0x6c, 0xa5, 0x5b, 0x4d, 0xdc, 0x40, 0x52, 0x3a, 0x9d, 0x2a, 0xb5, 0x3e, 0x7f,
		0xb2, 0x4a, 0xc5, 0x6a, 0xc1, 0x72, 0xac, 0x9a, 0x75, 0xe2, 0x87, 0x5d, 0x1e, 0x5a, 0x5f, 0x98,
		0xe2, 0x3f, 0xd9, 0xb3, 0x35, 0xdd, 0x64, 0x69, 0x95, 0xac, 0xbd, 0x93, 0x2f, 0x4d, 0xa7, 0xb4,
		0x6f, 0x1b, 0xc0, 0x01, 0x0c, 0x91, 0xa3, 0x66, 0x53, 0x41, 0x73, 0x2a, 0x8f, 0xa7, 0x6c, 0x37,
		0x4d, 0xa1, 0x4a, 0x0c, 0x7f, 0xad, 0x54, 0xad, 0xe8, 0x02, 0x60, 0x0e, 0x60, 0x0e, 0x3b, 0xdd,
		0x5e, 0x14, 0xcf, 0x6e, 0xa2, 0xbb, 0xa6, 0x3e, 0x85, 0xb8, 0x54, 0xd7, 0xd6, 0xcf, 0x00, 0x09,
		0x19, 0xc6, 0x3f, 0x32, 0x10, 0x19, 0xc6, 0x1d, 0xa5, 0x74, 0xc8, 0x30, 0xe6, 0xca, 0xdb, 0x90,
		0x61, 0xdc, 0x36, 0x35, 0xc2, 0xac, 0x0c, 0xe3, 0x47, 0x03, 0x12, 0x8c, 0x65, 0x24, 0x18, 0xb7,
		0x5f, 0xcb, 0x41, 0x82, 0x31, 0x43, 0x7b, 0x91, 0xf1, 0xd8, 0x71, 0x54, 0x7a, 0xeb, 0x6a, 0x26,
		0x26, 0x18, 0x8b, 0x65, 0xa4, 0x17, 0xe1, 0x6c, 0x26, 0x10, 0x53, 0xfa, 0xd6, 0x21, 0xbd, 0xb8,
		0x8a, 0x5b, 0x20, 0xbd, 0xb8, 0xa3, 0x94, 0x14, 0xe9, 0x45, 0x32, 0x13, 0x41, 0xa4, 0x17, 0xf3,
		0x37, 0x1c, 0xe9, 0x45, 0x58, 0x67, 0x08, 0x73, 0x40, 0x7a, 0xf1, 0x37, 0xfc, 0x39, 0xce, 0xd9,
		0x3d, 0x4e, 0xa6, 0x53, 0x26, 0xe4, 0x17, 0xc7, 0xb6, 0x22, 0xc1, 0xb8, 0x8e, 0x79, 0x48, 0x30,
		0x6e, 0x70, 0x34, 0x22, 0xc1, 0x98, 0x11, 0x99, 0x43, 0x82, 0x31, 0x73, 0xe6, 0x86, 0x04, 0xe3,
		0xb6, 0xe9, 0x11, 0xe6, 0x24, 0x18, 0xdb, 0x42, 0xb2, 0xf0, 0xd9, 0x80, 0x0c, 0xe3, 0x11, 0x61,
		0x13, 0xcf, 0xb9, 0xbc, 0x8b, 0x8b, 0x85, 0x41, 0xcf, 0xf9, 0xc3, 0x96, 0x34, 0x32, 0xc5, 0x58,
		0x40, 0xd6, 0x23, 0xe3, 0x60, 0x85, 0x14, 0x63, 0x06, 0xae, 0x86, 0x3d, 0x8c, 0x70, 0xb7, 0x2d,
		0x71, 0x37, 0x48, 0x85, 0x6b, 0x5d, 0x48, 0x32, 0xae, 0xe2, 0x16, 0x48, 0x32, 0xee, 0x28, 0x29,
		0x45, 0x92, 0x91, 0xcc, 0x5c, 0x10, 0x49, 0xc6, 0xfc, 0x0d, 0x47, 0x92, 0x11, 0xd6, 0x19, 0xc2,
		0x1c, 0x90, 0x64, 0xfc, 0x3d, 0x1e, 0xc3, 0x65, 0x97, 0x77, 0xe9, 0xa7, 0x18, 0x13, 0x4b, 0x91,
		0x60, 0x5c, 0xc7, 0x3c, 0x24, 0x18, 0x37, 0x38, 0x16, 0x91, 0x60, 0xcc, 0x88, 0xc8, 0x21, 0xc1,
		0x98, 0x39, 0x6b, 0x43, 0x82, 0x71, 0xdb, 0xb4, 0x08, 0x83, 0x12, 0x8c, 0xbe, 0xdf, 0xe7, 0x4c,
		0x1a, 0x90, 0x61, 0x2c, 0x14, 0x30, 0x04, 0x57, 0xa3, 0x91, 0x90, 0xc3, 0x36, 0x7e, 0x41, 0x0e,
		0x03, 0x7b, 0x5a, 0x87, 0x45, 0x41, 0x0e, 0xd3, 0x41, 0xac, 0x20, 0x87, 0xc1, 0x3a, 0x0b, 0x72,
		0x98, 0xc9, 0x5c, 0xc6, 0xf6, 0x03, 0x25, 0x7c, 0xc9, 0xfa, 0xf4, 0xe5, 0xb0, 0xc4, 0x52, 0xc8,
		0x61, 0xeb, 0x98, 0x07, 0x39, 0x6c, 0x93, 0x63, 0x11, 0x72, 0x58, 0x36, 0x44, 0x0e, 0x72, 0x58,
		0xe6, 0xac, 0x0d, 0x72, 0xd8, 0xb6, 0x69, 0x11, 0x90, 0xc3, 0x36, 0x0f, 0xe3, 0x90, 0xc3, 0x56,
		0x6a, 0x35, 0xc8, 0x61, 0x59, 0x5c, 0x90, 0xc3, 0xc0, 0x9e, 0xd6, 0x61, 0x51, 0x90, 0xc3, 0x74,
		0x10, 0x2b, 0xc8, 0x61, 0xb0, 0xce, 0x82, 0x1c, 0x66, 0x32, 0x97, 0xb1, 0x03, 0x16, 0x2a, 0x61,
		0x82, 0x1a, 0x36, 0x35, 0x14, 0x62, 0xd8, 0x3a, 0xe6, 0x41, 0x0c, 0xdb, 0xe0, 0x50, 0x84, 0x18,
		0x96, 0x11, 0x8d, 0x83, 0x18, 0x96, 0x39, 0x67, 0x83, 0x18, 0xb6, 0x6d, 0x4a, 0x04, 0xc4, 0xb0,
		0xcd, 0xc3, 0x38, 0xc4, 0xb0, 0x95, 0x5a, 0x0d, 0x62, 0x58, 0x16, 0x17, 0xc4, 0x30, 0xb0, 0xa7,
		0x75, 0x58, 0x14, 0xc4, 0x30, 0x1d, 0xc4, 0x0a, 0x62, 0x18, 0xac, 0xb3, 0x20, 0x86, 0x99, 0xcc,
		0x65, 0x6c, 0x15, 0x32, 0x19, 0x89, 0x49, 0x2d, 0x14, 0xe2, 0x7a, 0xd8, 0x2b, 0x5b, 0x21, 0x89,
		0xad, 0x63, 0x1e, 0x24, 0xb1, 0x0d, 0x8e, 0x46, 0x48, 0x62, 0x19, 0x91, 0x39, 0x48, 0x62, 0x99,
		0x33, 0x37, 0x48, 0x62, 0xdb, 0xa6, 0x47, 0x40, 0x12, 0xdb, 0x3c, 0x8c, 0x43, 0x12, 0x5b, 0xa9,
		0xd5, 0x20, 0x89, 0x65, 0x71, 0x41, 0x12, 0x03, 0x7b, 0x5a, 0x87, 0x45, 0x41, 0x12, 0xd3, 0x41,
		0xac, 0x20, 0x89, 0xc1, 0x3a, 0x0b, 0x92, 0x98, 0xa1, 0x16, 0x11, 0x63, 0x56, 0x76, 0x4d, 0x4a,
		0x5f, 0x31, 0x25, 0x7c, 0x9a, 0x25, 0xe3, 0xed, 0xa8, 0x73, 0xcf, 0x1f, 0x58, 0xc0, 0xe2, 0x93,
		0x01, 0x6c, 0xd7, 0x0f, 0xb8, 0xec, 0xc4, 0x12, 0x93, 0x23, 0xb9, 0xfa, 0xe9, 0x87, 0x3f, 0x1c,
		0x31, 0x62, 0x83, 0xb2, 0xc3, 0xdd, 0xf9, 0x07, 0x51, 0xea, 0x89, 0x1b, 0x4c, 0xe2, 0x63, 0x94,
		0xdc, 0xb9, 0xed, 0xbb, 0xc0, 0x0d, 0x45, 0xdb, 0x65, 0x3d, 0xe1, 0x44, 0xac, 0x27, 0xa2, 0xe4,
		0xce, 0x15, 0xc1, 0x63, 0xc5, 0x19, 0x48, 0xd1, 0x61, 0x91, 0x72, 0x25, 0x17, 0x77, 0xf7, 0x6d,
		0x3f, 0x8c, 0x92, 0x3b, 0x97, 0x75, 0xbf, 0xc7, 0x73, 0x5c, 0x21, 0x9d, 0xc0, 0x8f, 0x94, 0x1b,
		0xfa, 0x03, 0xc5, 0xa3, 0xf1, 0x8b, 0x3b, 0x90, 0x3f, 0xa4, 0xff, 0x53, 0x3a, 0x4c, 0xa9, 0x50,
		0xb4, 0xe3, 0x5f, 0xa4, 0x1e, 0xb9, 0x91, 0x62, 0x8a, 0x22, 0x7a, 0xda, 0x91, 0x0a, 0x07, 0x1d,
		0x25, 0x27, 0xac, 0xab, 0x91, 0xb4, 0xfa, 0xc5, 0xb8, 0x45, 0xeb, 0x93, 0x06, 0xf5, 0xe6, 0x7e,
		0x8e, 0xe6, 0x1f, 0x78, 0x53, 0x44, 0x8a, 0x92, 0x3b, 0xef, 0xe4, 0x2e, 0xf0, 0x5a, 0xa2, 0xed,
		0xd5, 0x7a, 0xe2, 0x72, 0xd4, 0xe0, 0xd3, 0x1b, 0xaf, 0x1e, 0x3c, 0x56, 0xae, 0xc7, 0xcd, 0xed,
		0x5d, 0x4c, 0x9b, 0x3b, 0xb9, 0xf3, 0x6a, 0xdd, 0xef, 0x2d, 0xd1, 0xae, 0xcb, 0xa6, 0x1f, 0x29,
		0xaf, 0x15, 0xb7, 0xf5, 0xf8, 0xc5, 0xbb, 0x1e, 0x37, 0x6c, 0x2d, 0x69, 0xea, 0xd4, 0x13, 0xef,
		0x32, 0x6e, 0xe9, 0x77, 0x08, 0x4c, 0x74, 0x2d, 0x21, 0x12, 0x1a, 0x47, 0x0c, 0x37, 0x39, 0x9a,
		0x4d, 0x3d, 0x07, 0x54, 0xfc, 0xd3, 0x3e, 0x17, 0x91, 0x1a, 0x0d, 0x68, 0x52, 0x81, 0xda, 0xfe,
		0x2a, 0xe4, 0x59, 0x9f, 0x8f, 0xc8, 0x29, 0xb1, 0xea, 0xfc, 0xf6, 0x57, 0xf6, 0xf4, 0xca, 0xb2,
		0xc2, 0xc7, 0x52, 0xa9, 0x52, 0x2d, 0x95, 0x0e, 0xaa, 0x87, 0xd5, 0x83, 0xa3, 0x72, 0xb9, 0x50,
		0x29, 0x10, 0x3a, 0x03, 0xc1, 0x6e, 0x8c, 0x78, 0x3c, 0xef, 0x9e, 0x8c, 0x86, 0x9e, 0x1c, 0xf4,
		0xfb, 0x14, 0x4d, 0xbb, 0x8e, 0x78, 0x48, 0xea, 0x38, 0x03, 0x2a, 0x11, 0x83, 0x28, 0x89, 0xda,
		0x6e, 0xf2, 0x44, 0x88, 0x36, 0x6d, 0x1d, 0x5d, 0xa2, 0x41, 0x94, 0xf4, 0xd3, 0x12, 0xbd, 0x16,
		0x68, 0x0e, 0x6f, 0xd4, 0xc2, 0xda, 0x36, 0x85, 0x33, 0x02, 0xc1, 0xcb, 0xf4, 0xa0, 0xa5, 0x37,
		0x46, 0xe9, 0x8b, 0x0c, 0x7a, 0xbe, 0x59, 0x53, 0x2c, 0x9a, 0x4e, 0xc6, 0xc6, 0x0b, 0x36, 0xac,
		0x91, 0xef, 0x3b, 0x42, 0x57, 0x29, 0x7b, 0x1a, 0x33, 0x30, 0x3a, 0x33, 0x2e, 0xd2, 0x33, 0x2c,
		0x42, 0x33, 0x2a, 0x42, 0x33, 0x28, 0x5d, 0x6e, 0x4c, 0x84, 0x4a, 0x18, 0x4b, 0x21, 0x34, 0xf2,
		0x05, 0xb3, 0x78, 0x82, 0x1e, 0x56, 0x90, 0x3f, 0x26, 0xe7, 0xfb, 0x8d, 0x39, 0x87, 0x0d, 0xdd,
		0xe1, 0xc2, 0xc0, 0x30, 0xa1, 0x21, 0x40, 0x98, 0x12, 0x18, 0xf2, 0x0d, 0x09, 0xf9, 0x39, 0x66,
		0x3e, 0xdf, 0x94, 0x93, 0xeb, 0xeb, 0x72, 0x79, 0x93, 0x5c, 0x3d, 0x47, 0x1f, 0x27, 0xef, 0xdb,
		0xf9, 0x38, 0x75, 0xf6, 0x2e, 0x96, 0x83, 0x7b, 0xd9, 0xaf, 0x87, 0x51, 0x98, 0xdf, 0x52, 0xc3,
		0x64, 0xd1, 0xe6, 0xdc, 0xf7, 0xe7, 0x14, 0x50, 0xa6, 0x2b, 0xac, 0x73, 0xfa, 0xba, 0xbc, 0x37,
		0x3e, 0xe9, 0xd8, 0xc8, 0xa4, 0x77, 0x63, 0x92, 0xae, 0xa5, 0xb2, 0xda, 0x37, 0x0e, 0x69, 0x5f,
		0xb7, 0xaa, 0x7d, 0x63, 0xcf, 0x76, 0x51, 0x9d, 0x53, 0x91, 0xaf, 0x82, 0x68, 0x4f, 0xa6, 0x08,
		0xb9, 0x3b, 0xce, 0x34, 0x5c, 0x68, 0x99, 0xa2, 0xe4, 0x0c, 0x00, 0x69, 0x20, 0x28, 0xe6, 0xfc,
		0xc5, 0x1a, 0x77, 0xb6, 0xd2, 0xd8, 0xb1, 0xaa, 0x7b, 0x2f, 0x05, 0x99, 0x1d, 0xa6, 0x64, 0x36,
		0x3a, 0x90, 0xd9, 0x11, 0xba, 0xdd, 0x72, 0x59, 0xde, 0x80, 0xf2, 0x16, 0x58, 0xf4, 0xf9, 0xdb,
		0x1b, 0x7c, 0xd1, 0xe5, 0x6b, 0x7a, 0x60, 0x46, 0xdb, 0xbc, 0x83, 0x12, 0xec, 0xd0, 0x82, 0x1f,
		0x2a, 0x30, 0x44, 0x0e, 0x8e, 0xc8, 0xc1, 0x12, 0x39, 0x78, 0xd2, 0x03, 0x53, 0x9a, 0xe0, 0x4a,
		0x3b, 0x6c, 0x25, 0x06, 0x4c, 0x97, 0x93, 0x68, 0xf7, 0xd4, 0x59, 0x39, 0x6e, 0x9d, 0xeb, 0x5b,
		0xe6, 0x21, 0x4d, 0xf3, 0x62, 0x7e, 0x32, 0xb5, 0x84, 0x28, 0xd5, 0x0c, 0xa2, 0x59, 0x1b, 0x88,
		0xda, 0x2e, 0x76, 0xb2, 0xb5, 0x7e, 0xc8, 0x6e, 0x41, 0x27, 0x5b, 0xbb, 0x67, 0xb7, 0x97, 0x60,
		0x93, 0xa9, 0xb9, 0x93, 0xc4, 0x9d, 0x3e, 0x67, 0xbd, 0x90, 0xf7, 0x28, 0x04, 0x9d, 0xe9, 0xcc,
		0xab, 0x4a, 0xc0, 0x96, 0xe6, 0x24, 0x81, 0xfc, 0xe1, 0xc3, 0x78, 0x53, 0xaf, 0x3b, 0x85, 0xf2,
		0x5d, 0x5d, 0xa5, 0xac, 0x71, 0xfe, 0x15, 0xd0, 0x80, 0xeb, 0x19, 0xab, 0x23, 0x31, 0xf9, 0x02,
		0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x03, 0xa9, 0x5b, 0x93, 0xd4,
		0x8d, 0xc3, 0x0e, 0x38, 0x5d, 0xee, 0x5d, 0x31, 0xae, 0x94, 0x43, 0x86, 0xd2, 0x51, 0x28, 0xdc,
		0xa3, 0x39, 0xf3, 0x04, 0x46, 0x07, 0x46, 0x07, 0x46, 0x07, 0x46, 0x07, 0x46, 0xa7, 0x3f, 0x93,
		0x95, 0x18, 0x12, 0x17, 0xad, 0x12, 0xb2, 0xcb, 0xe9, 0x9c, 0x70, 0x30, 0x5b, 0x06, 0x3e, 0xb3,
		0x8d, 0x4a, 0xa5, 0x2f, 0x52, 0x67, 0x69, 0x90, 0x3b, 0x3b, 0x83, 0xe2, 0x59, 0x19, 0xb4, 0xcf,
		0xc6, 0xa0, 0x5a, 0xcd, 0x99, 0xfc, 0xd9, 0x17, 0xe4, 0x4b, 0x33, 0x93, 0x3f, 0xdb, 0x02, 0x35,
		0x1c, 0x49, 0x4a, 0x2c, 0x84, 0xa5, 0x16, 0x8a, 0x92, 0xcb, 0x22, 0xe9, 0xe5, 0x1f, 0xfe, 0xc5,
		0x94, 0x22, 0xe2, 0x2a, 0x4a, 0xee, 0x26, 0x42, 0xcd, 0x98, 0x66, 0xa0, 0x8a, 0x19, 0x15, 0xa7,
		0xb4, 0x3b, 0xfe, 0xc3, 0xc3, 0x40, 0x0a, 0xf5, 0x4c, 0x95, 0x9d, 0xce, 0x1b, 0x08, 0x8a, 0x0a,
		0x8a, 0x0a, 0x8a, 0x0a, 0x8a, 0x0a, 0x8a, 0x0a, 0x8a, 0x0a, 0x8a, 0x0a, 0x8a, 0xba, 0x2e, 0x45,
		0x9d, 0xf2, 0x0a, 0xc1, 0xa3, 0xe4, 0xfe, 0x19, 0x2c, 0x95, 0x26, 0x4b, 0xe5, 0x4f, 0xca, 0x21,
		0xcf, 0x54, 0x17, 0x19, 0x09, 0xb6, 0x0a, 0xb6, 0x0a, 0xb6, 0x0a, 0xb6, 0x0a, 0xb6, 0x0a, 0xb6,
		0x0a, 0xb6, 0x0a, 0xb6, 0xba, 0x2e, 0x5b, 0x7d, 0xcd, 0x2d, 0x46, 0x8c, 0xf5, 0x0d, 0xd7, 0x00,
		0x6b, 0xa5, 0xc9, 0x5a, 0x85, 0x7c, 0x64, 0x7d, 0xd1, 0x75, 0x42, 0xce, 0x22, 0x42, 0x47, 0xd0,
		0x24, 0x1e, 0x3a, 0x67, 0x1f, 0xb8, 0x2a, 0xb8, 0x2a, 0xb8, 0x2a, 0xb8, 0x2a, 0xb8, 0x2a, 0xb8,
		0xea, 0x8e, 0x71, 0x55, 0xd1, 0xe5, 0x52, 0x09, 0xf5, 0x4c, 0x94, 0xaf, 0x52, 0x3a, 0x10, 0xb1,
		0x3e, 0x69, 0xaa, 0x13, 0x16, 0x11, 0x0c, 0xa9, 0xd3, 0x0e, 0xad, 0x5f, 0x7c, 0xab, 0x9d, 0xd7,
		0x4f, 0xbd, 0x56, 0xe3, 0xfa, 0xea, 0xcc, 0x6b, 0x9d, 0xd5, 0x2e, 0x1b, 0x17, 0xd4, 0xa2, 0xeb,
		0x37, 0xd6, 0x1f, 0xc4, 0xd5, 0x1f, 0x6f, 0xc8, 0x9d, 0x33, 0xfc, 0x8b, 0xe4, 0x19, 0xe6, 0xa9,
		0xde, 0xad, 0x5d, 0x7a, 0xe7, 0x8d, 0x46, 0x93, 0xde, 0x59, 0xfa, 0xc3, 0xf7, 0xe8, 0xd2, 0xf5,
		0xba, 0xf4, 0xd3, 0xf9, 0xf5, 0xe5, 0xd5, 0x59, 0x0b, 0xfd, 0xba, 0x6d, 0xfd, 0xda, 0xb8, 0xf8,
		0x7c, 0x76, 0x8a, 0x1e, 0xdd, 0x9e, 0x1e, 0x6d, 0xb4, 0xea, 0x5f, 0xea, 0x17, 0xb5, 0xab, 0x46,
		0x8b, 0x60, 0xaf, 0x92, 0xb2, 0xe8, 0x16, 0xf3, 0x11, 0x62, 0x56, 0x50, 0x50, 0x07, 0xfb, 0x2c,
		0x52, 0xce, 0x83, 0xdf, 0x15, 0x3d, 0xc1, 0xbb, 0xf4, 0xc4, 0xc1, 0xb7, 0xe6, 0x41, 0x1b, 0x5c,
		0x64, 0x0e, 0xb4, 0xc1, 0x15, 0x06, 0x14, 0xb4, 0xc1, 0x95, 0x46, 0x3a, 0xb4, 0xc1, 0x3f, 0x34,
		0x10, 0xda, 0xa0, 0x41, 0xfc, 0x97, 0xb0, 0x36, 0xa8, 0xc4, 0x03, 0x57, 0xa2, 0xf3, 0x23, 0xaa,
		0x94, 0x08, 0x6a, 0x83, 0x1f, 0x09, 0x99, 0x74, 0x2d, 0x45, 0x7c, 0xe0, 0xb0, 0x2d, 0x99, 0xf4,
		0x23, 0xde, 0xf1, 0x65, 0x37, 0xa2, 0xd4, 0x64, 0x2d, 0x26, 0xef, 0x38, 0x39, 0xbd, 0x8d, 0xde,
		0x74, 0xcf, 0xfe, 0x2a, 0x24, 0x39, 0x44, 0x4c, 0x8c, 0x8b, 0x65, 0x53, 0x3a, 0x9c, 0x2b, 0x65,
		0xdf, 0xe7, 0x90, 0x75, 0x94, 0xf0, 0xe5, 0xa9, 0xb8, 0x13, 0xba, 0x4f, 0x02, 0xff, 0xe7, 0x00,
		0xc7, 0xef, 0x98, 0x12, 0x8f, 0x5c, 0xeb, 0xc1, 0xd7, 0x86, 0x69, 0x33, 0xf6, 0x57, 0xf6, 0x44,
		0xdf, 0x35, 0x68, 0x9d, 0xf8, 0x0e, 0x6f, 0xd9, 0x21, 0x3e, 0x49, 0xcf, 0x9a, 0x5b, 0x68, 0x5e,
		0x54, 0xa2, 0x29, 0x99, 0x83, 0x1d, 0x52, 0x24, 0x9f, 0xc6, 0x01, 0x0f, 0xf3, 0xe4, 0x1e, 0x3a,
		0xd7, 0x12, 0x83, 0xa0, 0x73, 0xad, 0x6a, 0x1d, 0x74, 0xae, 0x35, 0x0d, 0x84, 0xce, 0xb5, 0x15,
		0x4c, 0x00, 0x3a, 0xd7, 0xbf, 0xc5, 0xad, 0x81, 0x90, 0xea, 0xb0, 0x48, 0x50, 0xe2, 0xaa, 0x42,
		0x42, 0xfa, 0x97, 0x0b, 0x12, 0xd2, 0x7a, 0xf3, 0x64, 0x48, 0x48, 0x5b, 0x3f, 0x29, 0x86, 0x84,
		0xb4, 0x9e, 0x6b, 0x94, 0x8a, 0x47, 0xa5, 0xa3, 0x4a, 0xb5, 0x78, 0x04, 0xe1, 0x68, 0xeb, 0x7d,
		0x04, 0xc2, 0xd1, 0xc2, 0xeb, 0x16, 0xc4, 0xf5, 0xd5, 0x30, 0xe6, 0x4f, 0x2a, 0x64, 0xce, 0x40,
		0x46, 0x8a, 0xb5, 0xfb, 0xc4, 0x28, 0x6c, 0xc8, 0x7b, 0x3c, 0xe4, 0xb2, 0x03, 0x66, 0xb6, 0x02,
		0xdf, 0xef, 0x86, 0xac, 0xa7, 0x1c, 0xc1, 0x55, 0xcf, 0x11, 0xdd, 0xd0, 0x61, 0xdd, 0xae, 0x13,
		0x30, 0x75, 0x1f, 0x59, 0x8e, 0x55, 0xeb, 0x3e, 0xf2, 0x50, 0x89, 0x88, 0x8f, 0xe6, 0x95, 0x96,
		0xdf, 0xb3, 0xbe, 0x0e, 0xfa, 0x4a, 0x04, 0x7d, 0x6e, 0x35, 0x47, 0xef, 0xf8, 0x4b, 0x0a, 0x69,
		0x9d, 0x7c, 0x69, 0xda, 0x04, 0xc1, 0x95, 0xa8, 0xce, 0xb1, 0x48, 0xef, 0x98, 0x8d, 0x5a, 0xa2,
		0xc8, 0x45, 0x5d, 0xfa, 0x58, 0x28, 0x81, 0x6c, 0x60, 0x58, 0x03, 0xa1, 0x81, 0xd0, 0x46, 0xb5,
		0x07, 0x89, 0xd4, 0x0e, 0x2d, 0x49, 0x9e, 0xd6, 0x21, 0x8f, 0xb3, 0xf0, 0x8f, 0xc4, 0xce, 0x3f,
		0x1a, 0x84, 0xc4, 0xce, 0x96, 0x10, 0x1e, 0x24, 0x76, 0x36, 0xca, 0x6a, 0x90, 0xd8, 0xa1, 0x3e,
		0x3f, 0x26, 0x5c, 0xdc, 0x20, 0x78, 0xac, 0x38, 0xe4, 0x7c, 0x30, 0x29, 0x6e, 0xf0, 0x91, 0x56,
		0x31, 0x2e, 0xc5, 0x43, 0x49, 0x4e, 0x46, 0xb0, 0xf7, 0xf6, 0x6e, 0x0e, 0x9c, 0x23, 0xe6, 0xf4,
		0x6a, 0xce, 0xe7, 0xdb, 0x5f, 0x85, 0xf7, 0xa5, 0xe1, 0xf1, 0xfe, 0xaf, 0xea, 0x70, 0xfe, 0xe1,
		0xcb, 0xa2, 0xb7, 0x15, 0xde, 0x57, 0x87, 0xc7, 0x4b, 0x7e, 0x53, 0x19, 0x1e, 0xff, 0xe6, 0xdf,
		0x28, 0x0f, 0xf7, 0x52, 0x6f, 0x1d, 0x3d, 0x2f, 0x2e, 0xfb, 0x40, 0x69, 0xc9, 0x07, 0x0e, 0x97,
		0x7d, 0xe0, 0x70, 0xc9, 0x07, 0x96, 0x9a, 0x54, 0x5c, 0xf2, 0x81, 0xf2, 0xf0, 0x25, 0xf5, 0xfe,
		0xbd, 0xc5, 0x6f, 0xad, 0x0c, 0xf7, 0x5f, 0x96, 0xfd, 0xae, 0x3a, 0x7c, 0x39, 0xde, 0xdf, 0x77,
		0xf7, 0x0a, 0xc5, 0x9b, 0x03, 0xe7, 0xe3, 0xed, 0x4b, 0xe1, 0xe6, 0xc0, 0x29, 0xdc, 0x8e, 0xde,
		0x79, 0xfb, 0x72, 0x53, 0x70, 0x8e, 0xa6, 0xb7, 0xa3, 0xff, 0xee, 0xd3, 0x09, 0xcb, 0xb7, 0x94,
		0xfc, 0xa9, 0x71, 0x59, 0xff, 0x2f, 0x59, 0xa7, 0xfa, 0x1b, 0x5e, 0x45, 0xdc, 0xab, 0xfe, 0x63,
		0x43, 0x6b, 0x80, 0xd6, 0x90, 0x72, 0xdc, 0x49, 0xd9, 0x42, 0x7f, 0xa0, 0x38, 0x3d, 0xc1, 0xe1,
		0xb5, 0x71, 0x50, 0x1d, 0xa0, 0x3a, 0x40, 0x75, 0x80, 0xea, 0x00, 0xd5, 0x01, 0xaa, 0xc3, 0x8e,
		0xa9, 0x0e, 0x6d, 0xdf, 0xef, 0x73, 0x26, 0x29, 0x2a, 0x0e, 0x05, 0x50, 0x39, 0x02, 0x16, 0xe8,
		0x3e, 0x1b, 0xbc, 0x26, 0xa5, 0xaf, 0x98, 0x12, 0x44, 0x2a, 0x73, 0xdb, 0x51, 0xe7, 0x9e, 0x3f,
		0xb0, 0x60, 0x52, 0x0e, 0xde, 0xf5, 0x03, 0x2e, 0x3b, 0x31, 0x51, 0x72, 0x24, 0x57, 0x3f, 0xfd,
		0xf0, 0x87, 0x23, 0x64, 0xa4, 0x98, 0xec, 0x70, 0x77, 0xfe, 0x41, 0x94, 0x7a, 0xe2, 0x06, 0xa1,
		0xaf, 0xfc, 0x8e, 0xdf, 0x8f, 0x92, 0x3b, 0xb7, 0x7d, 0x17, 0xb8, 0xa1, 0x68, 0xbb, 0xac, 0x27,
		0x9c, 0x88, 0xf5, 0x44, 0x94, 0xdc, 0xb9, 0xb1, 0x44, 0x38, 0x90, 0xa2, 0xc3, 0x22, 0xe5, 0x4a,
		0x2e, 0xee, 0xee, 0xdb, 0x7e, 0x18, 0x25, 0x77, 0x2e, 0xeb, 0x7e, 0x8f, 0x91, 0x40, 0x48, 0x27,
		0x08, 0xb9, 0x1b, 0x93, 0xdb, 0x68, 0xfc, 0x32, 0x2e, 0x3e, 0x4f, 0xc0, 0xcd, 0xed, 0x48, 0x85,
		0x83, 0x8e, 0x92, 0x93, 0xf8, 0xd3, 0x48, 0xda, 0xef, 0x62, 0xdc, 0x36, 0xf5, 0x49, 0xd3, 0x78,
		0x73, 0x3f, 0x47, 0xf3, 0x0f, 0xbc, 0xe6, 0xb4, 0xed, 0x92, 0x3b, 0xef, 0xe4, 0x2e, 0xf0, 0x5a,
		0xa2, 0xed, 0xd5, 0x7a, 0xe2, 0x72, 0xd4, 0x74, 0xd3, 0x1b, 0xaf, 0x1e, 0x3c, 0x56, 0xae, 0xc7,
		0x0d, 0xe7, 0x5d, 0x4c, 0x1b, 0x2e, 0xb9, 0xf3, 0x6a, 0xdd, 0xef, 0x2d, 0xd1, 0xae, 0xcb, 0x66,
		0xc8, 0xbd, 0x56, 0xdc, 0x6a, 0xe3, 0x17, 0xef, 0x32, 0x6e, 0xb5, 0x77, 0xbb, 0xe9, 0xfe, 0x1a,
		0x5d, 0xdf, 0x1e, 0xc8, 0x1f, 0xd2, 0xff, 0x29, 0x1d, 0xa6, 0x54, 0x28, 0xda, 0xa3, 0x1e, 0xd1,
		0xee, 0xfe, 0xb3, 0x2d, 0x18, 0x69, 0xdb, 0x34, 0x07, 0xc9, 0x29, 0x64, 0x6a, 0x36, 0x83, 0xca,
		0x8c, 0x91, 0xd2, 0x4c, 0x91, 0xe6, 0x0c, 0x91, 0xda, 0xcc, 0x90, 0xec, 0x8c, 0x90, 0xec, 0x4c,
		0x90, 0xec, 0x0c, 0x70, 0xb7, 0xe9, 0xea, 0xa9, 0x08, 0x69, 0x84, 0x9d, 0x14, 0x48, 0xd1, 0x93,
		0x60, 0xd3, 0x26, 0xd2, 0x12, 0x62, 0x0b, 0x10, 0x62, 0xc9, 0xc3, 0x2b, 0x6d, 0x98, 0xa5, 0x0a,
		0xb7, 0xe4, 0x61, 0x97, 0x3c, 0xfc, 0x92, 0x87, 0x61, 0x3a, 0xfa, 0x95, 0x45, 0x48, 0x88, 0xa5,
		0x02, 0xcf, 0x89, 0x41, 0x23, 0xec, 0x73, 0x14, 0x35, 0x79, 0xf8, 0x4d, 0x44, 0x9d, 0x99, 0x48,
		0xcc, 0xf5, 0x68, 0xe5, 0x4b, 0xc9, 0xc2, 0x35, 0x65, 0xd8, 0x36, 0x03, 0xbe, 0xa9, 0xc3, 0xb8,
		0x31, 0x70, 0x6e, 0x0c, 0xac, 0x1b, 0x03, 0xef, 0xb4, 0x60, 0x9e, 0x18, 0xdc, 0x27, 0xbd, 0x78,
		0x45, 0x11, 0x60, 0x2d, 0xda, 0xc7, 0x30, 0xa7, 0x66, 0xc3, 0x55, 0x82, 0xb6, 0xbd, 0x3a, 0x96,
		0x79, 0x7c, 0xba, 0xf2, 0x8c, 0xac, 0x60, 0x33, 0x26, 0x75, 0xd7, 0xb4, 0xc7, 0x39, 0x49, 0xb2,
		0xc4, 0x97, 0x4a, 0xca, 0x74, 0xa1, 0x37, 0x82, 0xf4, 0x82, 0xf4, 0x82, 0xf4, 0x82, 0xf4, 0x82,
		0xf4, 0x02, 0x59, 0x17, 0xf7, 0x22, 0x35, 0xad, 0x2b, 0x31, 0x2c, 0xe6, 0x68, 0x7d, 0x4e, 0xb8,
		0xf2, 0xe0, 0x1b, 0xe9, 0x6b, 0x64, 0x29, 0x51, 0x47, 0xa5, 0xa9, 0x80, 0x91, 0x27, 0x05, 0x26,
		0x90, 0x03, 0xb3, 0x48, 0x82, 0x29, 0x64, 0xc1, 0x38, 0xd2, 0x60, 0x1c, 0x79, 0x30, 0x8e, 0x44,
		0xd0, 0x24, 0x13, 0x44, 0x49, 0x45, 0xd2, 0xbb, 0x64, 0x15, 0xb5, 0x54, 0xdc, 0x1c, 0x08, 0xa9,
		0x0a, 0x15, 0xca, 0x31, 0x73, 0x82, 0xe2, 0x15, 0xc2, 0x26, 0xd2, 0x2c, 0xa8, 0x3d, 0x7f, 0xd1,
		0xc6, 0x1c, 0x8b, 0x7a, 0xc1, 0xed, 0x94, 0xb1, 0xc4, 0x0b, 0x70, 0xa7, 0xec, 0x35, 0xa5, 0xd8,
		0x70, 0x3a, 0x56, 0x51, 0x2f, 0x3e, 0x6c, 0x08, 0x2c, 0xbd, 0x75, 0x35, 0xf6, 0x64, 0x9e, 0xab,
		0x55, 0xca, 0xe5, 0xc3, 0x32, 0xdc, 0x0d, 0xee, 0x66, 0x00, 0x37, 0xa5, 0x6f, 0xdd, 0x2d, 0x38,
		0xfd, 0x0a, 0x6e, 0x41, 0xb8, 0x76, 0x78, 0xca, 0x56, 0xba, 0xb5, 0xc4, 0x0d, 0x24, 0xa5, 0xd3,
		0xa9, 0x52, 0xeb, 0xf3, 0x27, 0xab, 0x54, 0xac, 0x16, 0x2c, 0xc7, 0xaa, 0x59, 0x27, 0x7e, 0xd8,
		0xe5, 0xa1, 0xf5, 0x85, 0x29, 0xfe, 0x93, 0x3d, 0x5b, 0xd3, 0x3d, 0x96, 0x56, 0xc9, 0xda, 0x3b,
		0xf9, 0xd2, 0x74, 0x4a, 0xfb, 0xb6, 0x01, 0x1c, 0xc0, 0x10, 0x39, 0x6a, 0x36, 0x15, 0x34, 0xa7,
		0xee, 0x78, 0xca, 0x76, 0xd3, 0x14, 0xaa, 0xc4, 0xf0, 0xd7, 0x4a, 0xd5, 0x8a, 0x2e, 0x00, 0xe6,
		0x00, 0xe6, 0xb0, 0xd3, 0xed, 0x45, 0xf1, 0xe4, 0x26, 0xba, 0x6b, 0xea, 0x53, 0x88, 0x4b, 0x75,
		0x6d, 0xfd, 0x0c, 0x90, 0x90, 0x61, 0xfc, 0x23, 0x03, 0x91, 0x61, 0xdc, 0x51, 0x4a, 0x87, 0x0c,
		0x63, 0xae, 0xbc, 0x0d, 0x19, 0xc6, 0x6d, 0x53, 0x23, 0xcc, 0xca, 0x30, 0x7e, 0x34, 0x20, 0xc1,
		0x58, 0x46, 0x82, 0x71, 0xfb, 0xb5, 0x1c, 0x24, 0x18, 0x33, 0xb4, 0x17, 0x19, 0x8f, 0x1d, 0x47,
		0xa5, 0xb7, 0xae, 0x66, 0x62, 0x82, 0xb1, 0x58, 0x46, 0x7a, 0x11, 0xce, 0x66, 0x02, 0x31, 0xa5,
		0x6f, 0x1d, 0xd2, 0x8b, 0xab, 0xb8, 0x05, 0xd2, 0x8b, 0x3b, 0x4a, 0x49, 0x91, 0x5e, 0x24, 0x33,
		0x11, 0x44, 0x7a, 0x31, 0x7f, 0xc3, 0x91, 0x5e, 0x84, 0x75, 0x86, 0x30, 0x07, 0xa4, 0x17, 0x7f,
		0xc3, 0x9f, 0xe3, 0x9c, 0xdd, 0xe3, 0x64, 0x3a, 0x65, 0x42, 0x7e, 0x71, 0x6c, 0x2b, 0x12, 0x8c,
		0xeb, 0x98, 0x87, 0x04, 0xe3, 0x06, 0x47, 0x23, 0x12, 0x8c, 0x19, 0x91, 0x39, 0x24, 0x18, 0x33,
		0x67, 0x6e, 0x48, 0x30, 0x6e, 0x9b, 0x1e, 0x61, 0x4e, 0x82, 0xb1, 0x2d, 0x24, 0x0b, 0x9f, 0x0d,
		0xc8, 0x30, 0x1e, 0x11, 0x36, 0xf1, 0x9c, 0xcb, 0xbb, 0xb8, 0x58, 0x18, 0xf4, 0x9c, 0x3f, 0x6c,
		0x49, 0x23, 0x53, 0x8c, 0x05, 0x64, 0x3d, 0x32, 0x0e, 0x56, 0x48, 0x31, 0x66, 0xe0, 0x6a, 0xd8,
		0xc3, 0x08, 0x77, 0xdb, 0x12, 0x77, 0x83, 0x54, 0xb8, 0xd6, 0x85, 0x24, 0xe3, 0x2a, 0x6e, 0x81,
		0x24, 0xe3, 0x8e, 0x92, 0x52, 0x24, 0x19, 0xc9, 0xcc, 0x05, 0x91, 0x64, 0xcc, 0xdf, 0x70, 0x24,
		0x19, 0x61, 0x9d, 0x21, 0xcc, 0x01, 0x49, 0xc6, 0xdf, 0xe3, 0x31, 0x5c, 0x76, 0x79, 0x97, 0x7e,
		0x8a, 0x31, 0xb1, 0x14, 0x09, 0xc6, 0x75, 0xcc, 0x43, 0x82, 0x71, 0x83, 0x63, 0x11, 0x09, 0xc6,
		0x8c, 0x88, 0x1c, 0x12, 0x8c, 0x99, 0xb3, 0x36, 0x24, 0x18, 0xb7, 0x4d, 0x8b, 0x30, 0x28, 0xc1,
		0xe8, 0xfb, 0x7d, 0xce, 0xa4, 0x01, 0x19, 0xc6, 0x42, 0x01, 0x43, 0x70, 0x35, 0x1a, 0x09, 0x39,
		0x6c, 0xe3, 0x17, 0xe4, 0x30, 0xb0, 0xa7, 0x75, 0x58, 0x14, 0xe4, 0x30, 0x1d, 0xc4, 0x0a, 0x72,
		0x18, 0xac, 0xb3, 0x20, 0x87, 0x99, 0xcc, 0x65, 0x6c, 0x3f, 0x50, 0xc2, 0x97, 0xac, 0x4f, 0x5f,
		0x0e, 0x4b, 0x2c, 0x85, 0x1c, 0xb6, 0x8e, 0x79, 0x90, 0xc3, 0x36, 0x39, 0x16, 0x21, 0x87, 0x65,
		0x43, 0xe4, 0x20, 0x87, 0x65, 0xce, 0xda, 0x20, 0x87, 0x6d, 0x9b, 0x16, 0x01, 0x39, 0x6c, 0xf3,
		0x30, 0x0e, 0x39, 0x6c, 0xa5, 0x56, 0x83, 0x1c, 0x96, 0xc5, 0x05, 0x39, 0x0c, 0xec, 0x69, 0x1d,
		0x16, 0x05, 0x39, 0x4c, 0x07, 0xb1, 0x82, 0x1c, 0x06, 0xeb, 0x2c, 0xc8, 0x61, 0x26, 0x73, 0x19,
		0x3b, 0x60, 0xa1, 0x12, 0x26, 0xa8, 0x61, 0x53, 0x43, 0x21, 0x86, 0xad, 0x63, 0x1e, 0xc4, 0xb0,
		0x0d, 0x0e, 0x45, 0x88, 0x61, 0x19, 0xd1, 0x38, 0x88, 0x61, 0x99, 0x73, 0x36, 0x88, 0x61, 0xdb,
		0xa6, 0x44, 0x40, 0x0c, 0xdb, 0x3c, 0x8c, 0x43, 0x0c, 0x5b, 0xa9, 0xd5, 0x20, 0x86, 0x65, 0x71,
		0x41, 0x0c, 0x03, 0x7b, 0x5a, 0x87, 0x45, 0x41, 0x0c, 0xd3, 0x41, 0xac, 0x20, 0x86, 0xc1, 0x3a,
		0x0b, 0x62, 0x98, 0xc9, 0x5c, 0xc6, 0x56, 0x21, 0x93, 0x91, 0x98, 0xd4, 0x42, 0x21, 0xae, 0x87,
		0xbd, 0xb2, 0x15, 0x92, 0xd8, 0x3a, 0xe6, 0x41, 0x12, 0xdb, 0xe0, 0x68, 0x84, 0x24, 0x96, 0x11,
		0x99, 0x83, 0x24, 0x96, 0x39, 0x73, 0x83, 0x24, 0xb6, 0x6d, 0x7a, 0x04, 0x24, 0xb1, 0xcd, 0xc3,
		0x38, 0x24, 0xb1, 0x95, 0x5a, 0x0d, 0x92, 0x58, 0x16, 0x17, 0x24, 0x31, 0xb0, 0xa7, 0x75, 0x58,
		0x14, 0x24, 0x31, 0x1d, 0xc4, 0x0a, 0x92, 0x18, 0xac, 0xb3, 0x20, 0x89, 0x19, 0x6a, 0x11, 0x31,
		0x66, 0x65, 0xd7, 0xa4, 0xf4, 0x15, 0x53, 0xc2, 0xa7, 0x59, 0x32, 0xde, 0x8e, 0x3a, 0xf7, 0xfc,
		0x81, 0x05, 0x2c, 0x3e, 0x19, 0xc0, 0x76, 0xfd, 0x80, 0xcb, 0x4e, 0x2c, 0x31, 0x39, 0x92, 0xab,
		0x9f, 0x7e, 0xf8, 0xc3, 0x11, 0x23, 0x36, 0x28, 0x3b, 0xdc, 0x9d, 0x7f, 0x10, 0xa5, 0x9e, 0xb8,
		0xc1, 0x24, 0x3e, 0x46, 0xc9, 0x9d, 0xdb, 0xbe, 0x0b, 0xdc, 0x50, 0xb4, 0x5d, 0xd6, 0x13, 0x4e,
		0xc4, 0x7a, 0x22, 0x4a, 0xee, 0x5c, 0x11, 0x3c, 0x56, 0x9c, 0x81, 0x14, 0x1d, 0x16, 0x29, 0x57,
		0x72, 0x71, 0x77, 0xdf, 0xf6, 0xc3, 0x28, 0xb9, 0x73, 0x59, 0xf7, 0x7b, 0x3c, 0xc7, 0x15, 0xd2,
		0x09, 0x42, 0xee, 0x86, 0xfe, 0x40, 0xf1, 0x68, 0xfc, 0xe2, 0x0e, 0xe4, 0x0f, 0xe9, 0xff, 0x94,
		0x0e, 0x53, 0x2a, 0x14, 0xed, 0xf8, 0x17, 0xa9, 0x47, 0x6e, 0xa4, 0x98, 0xa2, 0x08, 0x9e, 0x76,
		0xa4, 0xc2, 0x41, 0x47, 0xc9, 0x09, 0xe9, 0x6a, 0x24, 0x8d, 0x7e, 0x31, 0x6e, 0xd0, 0xfa, 0xa4,
		0x3d, 0xbd, 0xb9, 0x9f, 0xa3, 0xf9, 0x07, 0xde, 0x14, 0x90, 0xa2, 0xe4, 0xce, 0x3b, 0xb9, 0x0b,
		0xbc, 0x96, 0x68, 0x7b, 0xb5, 0x9e, 0xb8, 0x1c, 0xb5, 0xf7, 0xf4, 0xc6, 0xab, 0x07, 0x8f, 0x95,
		0xeb, 0x71, 0x6b, 0x7b, 0x17, 0xd3, 0xd6, 0x4e, 0xee, 0xbc, 0x5a, 0xf7, 0x7b, 0x4b, 0xb4, 0xeb,
		0xb2, 0x19, 0x72, 0xaf, 0x15, 0x37, 0xf5, 0xf8, 0xc5, 0xbb, 0x1e, 0xb7, 0x6b, 0x2d, 0x69, 0xe9,
		0xd4, 0x13, 0xef, 0x32, 0x6e, 0xe8, 0x77, 0x08, 0x4b, 0x74, 0x2d, 0x21, 0x12, 0x18, 0x47, 0xfc,
		0x36, 0x39, 0x98, 0x4d, 0x3d, 0x07, 0x54, 0xdc, 0xd3, 0x3e, 0x17, 0x91, 0x1a, 0x0d, 0x68, 0x52,
		0x61, 0xda, 0xfe, 0x2a, 0xe4, 0x59, 0x9f, 0x8f, 0xa8, 0x29, 0xb1, 0xda, 0xfc, 0xf6, 0x57, 0xf6,
		0xf4, 0xca, 0xb2, 0xc2, 0xc7, 0x52, 0xa9, 0x52, 0x2d, 0x95, 0x0e, 0xaa, 0x87, 0xd5, 0x83, 0xa3,
		0x72, 0xb9, 0x50, 0x29, 0x10, 0x3a, 0x01, 0xc1, 0x6e, 0x8c, 0x58, 0x3c, 0xef, 0x9e, 0x8c, 0x86,
		0x9e, 0x1c, 0xf4, 0xfb, 0x14, 0x4d, 0xbb, 0x8e, 0x78, 0x48, 0xea, 0x30, 0x03, 0x2a, 0x11, 0x83,
		0x28, 0x85, 0xda, 0x6a, 0xea, 0x44, 0x88, 0x34, 0x6d, 0x1b, 0x59, 0xa2, 0x41, 0x93, 0xf4, 0x93,
		0x12, 0xbd, 0x16, 0x68, 0x0e, 0x6e, 0xd4, 0x82, 0xda, 0x16, 0x05, 0x33, 0x02, 0xa1, 0xcb, 0xf0,
		0x90, 0xa5, 0x37, 0x42, 0xe9, 0x8b, 0x0b, 0x7a, 0xbe, 0x59, 0x53, 0x24, 0x9a, 0x4e, 0xc4, 0xc6,
		0x4b, 0x35, 0xac, 0x91, 0xe7, 0x3b, 0x42, 0x57, 0x11, 0x7b, 0x1a, 0xb3, 0x2f, 0x3a, 0xb3, 0x2d,
		0xd2, 0xb3, 0x2b, 0x42, 0xb3, 0x29, 0x42, 0xb3, 0x27, 0x5d, 0x6e, 0x4c, 0x84, 0x48, 0x98, 0x4a,
		0x20, 0x34, 0xb2, 0x05, 0xa3, 0x58, 0x82, 0x1e, 0x4e, 0x90, 0x3f, 0x22, 0xe7, 0xfb, 0x8d, 0x39,
		0x07, 0x0d, 0xdd, 0xc1, 0xc2, 0xbc, 0x20, 0xa1, 0x21, 0x3c, 0x18, 0x12, 0x16, 0xf2, 0x0d, 0x08,
		0xf9, 0xb9, 0x65, 0x3e, 0xdf, 0x94, 0x93, 0xe3, 0xeb, 0x72, 0x78, 0x83, 0x1c, 0x3d, 0x47, 0x0f,
		0xa7, 0xee, 0xd9, 0xf9, 0xb8, 0x74, 0xf6, 0x0e, 0x96, 0x83, 0x73, 0xd9, 0xd3, 0x41, 0xe4, 0x0f,
		0x94, 0x13, 0xf8, 0x91, 0xca, 0xcd, 0xbd, 0x92, 0xa5, 0x9a, 0x29, 0x0b, 0x72, 0x0a, 0x29, 0xd3,
		0x95, 0xd5, 0x39, 0x7d, 0x5d, 0xde, 0x1b, 0x9e, 0x74, 0x6c, 0x60, 0xd2, 0xbb, 0x21, 0x49, 0xd7,
		0x12, 0x59, 0xed, 0x1b, 0x86, 0xb4, 0xaf, 0x57, 0xd5, 0xbe, 0xa1, 0x67, 0xbb, 0xc8, 0xce, 0xa9,
		0xc8, 0x57, 0x3f, 0xb4, 0x27, 0x73, 0x84, 0xdc, 0x1d, 0x67, 0x1a, 0x2e, 0xb4, 0xcc, 0x51, 0x72,
		0x06, 0x80, 0x34, 0x10, 0x14, 0x73, 0xfe, 0x62, 0x8d, 0x3b, 0x5a, 0x69, 0xec, 0x54, 0xd5, 0xbd,
		0x87, 0x82, 0xcc, 0xce, 0x52, 0x32, 0x1b, 0x1c, 0xc8, 0xec, 0x04, 0xdd, 0x6e, 0xb9, 0x2c, 0x6f,
		0x40, 0x79, 0x0b, 0x2c, 0xfa, 0xfc, 0xed, 0x0d, 0xbe, 0xe8, 0xf2, 0x35, 0x3d, 0x30, 0xa3, 0x6d,
		0xde, 0x41, 0x09, 0x76, 0x68, 0xc1, 0x0f, 0x15, 0x18, 0x22, 0x07, 0x47, 0xe4, 0x60, 0x89, 0x1c,
		0x3c, 0xe9, 0x81, 0x29, 0x4d, 0x70, 0xa5, 0x1d, 0xb6, 0x12, 0x03, 0xa6, 0x8b, 0x49, 0xb4, 0x7b,
		0xea, 0xac, 0x0c, 0xb7, 0xce, 0xd5, 0x2d, 0xf3, 0x90, 0xa6, 0x79, 0x19, 0x3f, 0x99, 0x1a, 0x42,
		0x94, 0x6a, 0x05, 0xd1, 0xac, 0x09, 0x44, 0x6d, 0xf7, 0x3a, 0xd9, 0x1a, 0x3f, 0x64, 0xb7, 0x9e,
		0x93, 0xad, 0xd9, 0xb3, 0xdb, 0xcb, 0xaf, 0xc9, 0xd4, 0xda, 0x49, 0xe2, 0x4e, 0x9f, 0xb3, 0x5e,
		0xc8, 0x7b, 0x14, 0x82, 0xce, 0x74, 0xe6, 0x55, 0x25, 0x60, 0x4b, 0x73, 0x92, 0x42, 0xfe, 0xf0,
		0x61, 0xbc, 0x9b, 0xd7, 0x9d, 0x42, 0xf9, 0xae, 0xae, 0x51, 0xd6, 0x38, 0xff, 0x0a, 0x68, 0xc0,
		0xf5, 0x8c, 0xd5, 0x91, 0x98, 0x7c, 0x81, 0xd4, 0x81, 0xd4, 0x81, 0xd4, 0x81, 0xd4, 0x81, 0xd4,
		0x81, 0xd4, 0x81, 0xd4, 0xad, 0x49, 0xea, 0xc6, 0x61, 0x07, 0x9c, 0x2e, 0xf7, 0xae, 0x18, 0x97,
		0xc8, 0x21, 0x43, 0xe9, 0x28, 0x54, 0xec, 0xd1, 0x9c, 0x79, 0x02, 0xa3, 0x03, 0xa3, 0x03, 0xa3,
		0x03, 0xa3, 0x03, 0xa3, 0xd3, 0x9f, 0xc9, 0x4a, 0x0c, 0x89, 0xcb, 0x55, 0x09, 0xd9, 0xe5, 0x74,
		0x4e, 0x36, 0x98, 0x2d, 0x04, 0x9f, 0xd9, 0x46, 0xa5, 0xc6, 0x17, 0xa9, 0x33, 0x34, 0xc8, 0x9d,
		0x99, 0x41, 0xf1, 0x8c, 0x0c, 0xda, 0x67, 0x62, 0x50, 0xad, 0xe2, 0x4c, 0xfe, 0xcc, 0x0b, 0xf2,
		0x25, 0x99, 0xc9, 0x9f, 0x69, 0x81, 0xea, 0x8d, 0x24, 0x25, 0x16, 0xc2, 0x52, 0x0b, 0x45, 0xc9,
		0x65, 0x91, 0xf4, 0xf2, 0x0f, 0xff, 0x62, 0x4a, 0x11, 0x71, 0x15, 0x25, 0x77, 0x13, 0xa1, 0x66,
		0x4c, 0x33, 0x50, 0xc1, 0x8c, 0x8a, 0x53, 0xda, 0x1d, 0xff, 0xe1, 0x61, 0x20, 0x85, 0x7a, 0xa6,
		0xca, 0x4e, 0xe7, 0x0d, 0x04, 0x45, 0x05, 0x45, 0x05, 0x45, 0x05, 0x45, 0x05, 0x45, 0x05, 0x45,
		0x05, 0x45, 0x05, 0x45, 0x5d, 0x97, 0xa2, 0x4e, 0x79, 0x85, 0xe0, 0x51, 0x72, 0xff, 0x0c, 0x96,
		0x4a, 0x93, 0xa5, 0xf2, 0x27, 0xe5, 0x90, 0x67, 0xaa, 0x8b, 0x8c, 0x04, 0x5b, 0x05, 0x5b, 0x05,
		0x5b, 0x05, 0x5b, 0x05, 0x5b, 0x05, 0x5b, 0x05, 0x5b, 0x05, 0x5b, 0x5d, 0x97, 0xad, 0xbe, 0xe6,
		0x16, 0x23, 0xc6, 0xfa, 0x86, 0x6b, 0x80, 0xb5, 0xd2, 0x64, 0xad, 0x42, 0x3e, 0xb2, 0xbe, 0xe8,
		0x3a, 0x21, 0x67, 0x11, 0xa1, 0xc3, 0x67, 0x12, 0x0f, 0x9d, 0xb3, 0x0f, 0x5c, 0x15, 0x5c, 0x15,
		0x5c, 0x15, 0x5c, 0x15, 0x5c, 0x15, 0x5c, 0x75, 0xc7, 0xb8, 0xaa, 0xe8, 0x72, 0xa9, 0x84, 0x7a,
		0x26, 0xca, 0x57, 0x29, 0x1d, 0x85, 0x58, 0x9f, 0x34, 0xd5, 0x09, 0x8b, 0x08, 0x86, 0xd4, 0x69,
		0x87, 0xd6, 0x2f, 0xbe, 0xd5, 0xce, 0xeb, 0xa7, 0x5e, 0xab, 0x71, 0x7d, 0x75, 0xe6, 0xb5, 0xce,
		0x6a, 0x97, 0x8d, 0x0b, 0x6a, 0xd1, 0xf5, 0x1b, 0xeb, 0x0f, 0xe2, 0xea, 0x8f, 0x37, 0xe4, 0x0e,
		0x18, 0xfe, 0x45, 0xf2, 0xec, 0xf2, 0x54, 0xef, 0xd6, 0x2e, 0xbd, 0xf3, 0x46, 0xa3, 0x49, 0xef,
		0x0c, 0xfd, 0xe1, 0x7b, 0x74, 0xe9, 0x7a, 0x5d, 0xfa, 0xe9, 0xfc, 0xfa, 0xf2, 0xea, 0xac, 0x85,
		0x7e, 0xdd, 0xb6, 0x7e, 0x6d, 0x5c, 0x7c, 0x3e, 0x3b, 0x45, 0x8f, 0x6e, 0x4f, 0x8f, 0x36, 0x5a,
		0xf5, 0x2f, 0xf5, 0x8b, 0xda, 0x55, 0xa3, 0x45, 0xb0, 0x57, 0x49, 0x59, 0x74, 0x8b, 0xf9, 0x08,
		0x31, 0x2b, 0x28, 0xa8, 0x83, 0x7d, 0x16, 0x29, 0xe7, 0xc1, 0xef, 0x8a, 0x9e, 0xe0, 0x5d, 0x7a,
		0xe2, 0xe0, 0x5b, 0xf3, 0xa0, 0x0d, 0x2e, 0x32, 0x07, 0xda, 0xe0, 0x0a, 0x03, 0x0a, 0xda, 0xe0,
		0x4a, 0x23, 0x1d, 0xda, 0xe0, 0x1f, 0x1a, 0x08, 0x6d, 0xd0, 0x20, 0xfe, 0x4b, 0x58, 0x1b, 0x54,
		0xe2, 0x81, 0x2b, 0xd1, 0xf9, 0x11, 0x55, 0x4a, 0x04, 0xb5, 0xc1, 0x8f, 0x84, 0x4c, 0xba, 0x96,
		0x22, 0x3e, 0x6e, 0xd8, 0x96, 0x4c, 0xfa, 0x11, 0xef, 0xf8, 0xb2, 0x1b, 0x51, 0x6a, 0xb2, 0x16,
		0x93, 0x77, 0x9c, 0x9c, 0xde, 0x46, 0x6f, 0xba, 0x67, 0x7f, 0x15, 0x92, 0x1c, 0x22, 0x26, 0xc6,
		0xc5, 0xb2, 0x29, 0x1d, 0xce, 0x95, 0xb2, 0xef, 0x73, 0xc8, 0x3a, 0x4a, 0xf8, 0xf2, 0x54, 0xdc,
		0x09, 0xdd, 0xe7, 0x80, 0xff, 0x73, 0x80, 0xe3, 0x77, 0x4c, 0x89, 0x47, 0xae, 0xf5, 0xd8, 0x6b,
		0xc3, 0xb4, 0x19, 0xfb, 0x2b, 0x7b, 0xa2, 0xef, 0x1a, 0xb4, 0xce, 0x7b, 0x87, 0xb7, 0xec, 0x10,
		0x9f, 0xa4, 0x67, 0xcd, 0x2d, 0x34, 0x2f, 0x2a, 0xd1, 0x94, 0xcc, 0xc1, 0x0e, 0x29, 0x92, 0x4f,
		0xe3, 0x80, 0x87, 0x79, 0x72, 0x0f, 0x9d, 0x6b, 0x89, 0x41, 0xd0, 0xb9, 0x56, 0xb5, 0x0e, 0x3a,
		0xd7, 0x9a, 0x06, 0x42, 0xe7, 0xda, 0x0a, 0x26, 0x00, 0x9d, 0xeb, 0xdf, 0xe2, 0xd6, 0x40, 0x48,
		0x75, 0x58, 0x24, 0x28, 0x71, 0x55, 0x21, 0x21, 0xfd, 0xcb, 0x05, 0x09, 0x69, 0xbd, 0x79, 0x32,
		0x24, 0xa4, 0xad, 0x9f, 0x14, 0x43, 0x42, 0x5a, 0xcf, 0x35, 0x4a, 0xc5, 0xa3, 0xd2, 0x51, 0xa5,
		0x5a, 0x3c, 0x82, 0x70, 0xb4, 0xf5, 0x3e, 0x02, 0xe1, 0x68, 0xe1, 0x75, 0x0b, 0xe2, 0xfa, 0x6a,
		0x18, 0xf3, 0x27, 0x15, 0x32, 0x67, 0x20, 0x23, 0xc5, 0xda, 0x7d, 0x62, 0x14, 0x36, 0xe4, 0x3d,
		0x1e, 0x72, 0xd9, 0x01, 0x33, 0x5b, 0x81, 0xef, 0x77, 0x43, 0xd6, 0x53, 0x8e, 0xe0, 0xaa, 0xe7,
		0x88, 0x6e, 0xe8, 0xb0, 0x6e, 0xd7, 0x09, 0x98, 0xba, 0x8f, 0x2c, 0xc7, 0xaa, 0x75, 0x1f, 0x79,
		0xa8, 0x44, 0xc4, 0x47, 0xf3, 0x4a, 0xcb, 0xef, 0x59, 0x5f, 0x07, 0x7d, 0x25, 0x82, 0x3e, 0xb7,
		0x9a, 0xa3, 0x77, 0xfc, 0x25, 0x85, 0xb4, 0x4e, 0xbe, 0x34, 0x6d, 0x82, 0xe0, 0x4a, 0x54, 0xe7,
		0x58, 0xa4, 0x77, 0xcc, 0x46, 0x2d, 0x51, 0xe4, 0xa2, 0x2e, 0x7d, 0x2c, 0x94, 0x40, 0x36, 0x30,
		0xac, 0x81, 0xd0, 0x40, 0x68, 0xa3, 0xda, 0x83, 0x44, 0x6a, 0x87, 0x96, 0x24, 0x4f, 0xeb, 0x90,
		0xc7, 0x59, 0xf8, 0x47, 0x62, 0xe7, 0x1f, 0x0d, 0x42, 0x62, 0x67, 0x4b, 0x08, 0x0f, 0x12, 0x3b,
		0x1b, 0x65, 0x35, 0x48, 0xec, 0x50, 0x9f, 0x1f, 0x13, 0x2e, 0x6e, 0x10, 0x3c, 0x56, 0x1c, 0x72,
		0x3e, 0x98, 0x14, 0x37, 0xf8, 0x48, 0xab, 0x18, 0x97, 0xe2, 0xa1, 0x24, 0x27, 0x23, 0xd8, 0x7b,
		0x7b, 0x37, 0x07, 0xce, 0x11, 0x73, 0x7a, 0x35, 0xe7, 0xf3, 0xed, 0xaf, 0xc2, 0xfb, 0xd2, 0xf0,
		0x78, 0xff, 0x57, 0x75, 0x38, 0xff, 0xf0, 0x65, 0xd1, 0xdb, 0x0a, 0xef, 0xab, 0xc3, 0xe3, 0x25,
		0xbf, 0xa9, 0x0c, 0x8f, 0x7f, 0xf3, 0x6f, 0x94, 0x87, 0x7b, 0xa9, 0xb7, 0x8e, 0x9e, 0x17, 0x97,
		0x7d, 0xa0, 0xb4, 0xe4, 0x03, 0x87, 0xcb, 0x3e, 0x70, 0xb8, 0xe4, 0x03, 0x4b, 0x4d, 0x2a, 0x2e,
		0xf9, 0x40, 0x79, 0xf8, 0x92, 0x7a, 0xff, 0xde, 0xe2, 0xb7, 0x56, 0x86, 0xfb, 0x2f, 0xcb, 0x7e,
		0x57, 0x1d, 0xbe, 0x1c, 0xef, 0xef, 0xbb, 0x7b, 0x85, 0xe2, 0xcd, 0x81, 0xf3, 0xf1, 0xf6, 0xa5,
		0x70, 0x73, 0xe0, 0x14, 0x6e, 0x47, 0xef, 0xbc, 0x7d, 0xb9, 0x29, 0x38, 0x47, 0xd3, 0xdb, 0xd1,
		0x7f, 0xf7, 0xe9, 0x84, 0xe5, 0x5b, 0x4a, 0xfe, 0xd4, 0xb8, 0xac, 0xff, 0x97, 0xac, 0x53, 0xfd,
		0x0d, 0xaf, 0x22, 0xee, 0x55, 0xff, 0xb1, 0xa1, 0x35, 0x40, 0x6b, 0x48, 0x39, 0xee, 0xa4, 0x6c,
		0xa1, 0x3f, 0x50, 0x9c, 0x9e, 0xe0, 0xf0, 0xda, 0x38, 0xa8, 0x0e, 0x50, 0x1d, 0xa0, 0x3a, 0x40,
		0x75, 0x80, 0xea, 0x00, 0xd5, 0x61, 0xc7, 0x54, 0x87, 0xb6, 0xef, 0xf7, 0x39, 0x93, 0x14, 0x15,
		0x87, 0x02, 0xa8, 0x1c, 0x01, 0x0b, 0x74, 0x9f, 0x0d, 0x5e, 0x93, 0xd2, 0x57, 0x4c, 0x09, 0x22,
		0x95, 0xb9, 0xed, 0xa8, 0x73, 0xcf, 0x1f, 0x58, 0x30, 0x29, 0x07, 0xef, 0xfa, 0x01, 0x97, 0x9d,
		0x98, 0x28, 0x39, 0x92, 0xab, 0x9f, 0x7e, 0xf8, 0xc3, 0x11, 0x32, 0x52, 0x4c, 0x76, 0xb8, 0x3b,
		0xff, 0x20, 0x4a, 0x3d, 0x71, 0x83, 0xd0, 0x57, 0x7e, 0xc7, 0xef, 0x47, 0xc9, 0x9d, 0xdb, 0xbe,
		0x0b, 0xdc, 0x50, 0xb4, 0x5d, 0xd6, 0x13, 0x4e, 0xc4, 0x7a, 0x22, 0x4a, 0xee, 0xdc, 0x58, 0x22,
		0x1c, 0x48, 0xd1, 0x61, 0x91, 0x72, 0x25, 0x17, 0x77, 0xf7, 0x6d, 0x3f, 0x8c, 0x92, 0x3b, 0x97,
		0x75, 0xbf, 0xc7, 0x48, 0xe0, 0x0f, 0x94, 0x13, 0xf8, 0x91, 0x72, 0x63, 0x7a, 0x1b, 0x8d, 0x5f,
		0xc6, 0xe5, 0xe7, 0x09, 0x38, 0xba, 0x1d, 0xa9, 0x70, 0xd0, 0x51, 0x72, 0x12, 0x81, 0x1a, 0x49,
		0x0b, 0x5e, 0x8c, 0x5b, 0xa7, 0x3e, 0x69, 0x1c, 0x6f, 0xee, 0xe7, 0x68, 0xfe, 0x81, 0xd7, 0x9c,
		0xb6, 0x5e, 0x72, 0xe7, 0x9d, 0xdc, 0x05, 0x5e, 0x4b, 0xb4, 0xbd, 0x5a, 0x4f, 0x5c, 0x8e, 0x1a,
		0x6f, 0x7a, 0xe3, 0xd5, 0x83, 0xc7, 0xca, 0xf5, 0xb8, 0xe9, 0xbc, 0x8b, 0x69, 0xd3, 0x25, 0x77,
		0x5e, 0xad, 0xfb, 0xbd, 0x25, 0xda, 0x8d, 0x81, 0x6a, 0xfa, 0x91, 0xf2, 0x5a, 0x71, 0xbb, 0x8d,
		0x5f, 0xbc, 0xcb, 0xb8, 0xdd, 0xde, 0xed, 0x66, 0x08, 0xd0, 0xe8, 0xfe, 0xf6, 0x40, 0xfe, 0x90,
		0xfe, 0x4f, 0xe9, 0x30, 0xa5, 0x42, 0xd1, 0x1e, 0xf5, 0x88, 0xf6, 0x10, 0x30, 0xdb, 0x86, 0x91,
		0xb6, 0x4d, 0x73, 0xa0, 0x9c, 0xc2, 0xa6, 0x66, 0x33, 0xa8, 0xcc, 0x1a, 0x29, 0xcd, 0x16, 0x69,
		0xce, 0x12, 0xa9, 0xcd, 0x0e, 0xc9, 0xce, 0x0a, 0xc9, 0xce, 0x06, 0xc9, 0xce, 0x02, 0x77, 0x9b,
		0xb2, 0x9e, 0x8a, 0x90, 0x46, 0xd8, 0x49, 0x81, 0x14, 0x3d, 0x19, 0x36, 0x6d, 0x22, 0x2d, 0x31,
		0xb6, 0x00, 0x31, 0x96, 0x3c, 0xbc, 0xd2, 0x86, 0x59, 0xaa, 0x70, 0x4b, 0x1e, 0x76, 0xc9, 0xc3,
		0x2f, 0x79, 0x18, 0xa6, 0xa3, 0x61, 0x59, 0x84, 0xc4, 0x58, 0x2a, 0xf0, 0x9c, 0x18, 0x34, 0xc2,
		0x3e, 0x47, 0x51, 0x93, 0x88, 0xdf, 0x44, 0xd4, 0x99, 0x89, 0xc4, 0x5c, 0x8f, 0x56, 0xce, 0x94,
		0x2c, 0x5c, 0x53, 0x86, 0x6d, 0x33, 0xe0, 0x9b, 0x3a, 0x8c, 0x1b, 0x03, 0xe7, 0xc6, 0xc0, 0xba,
		0x31, 0xf0, 0x4e, 0x0b, 0xe6, 0x89, 0xc1, 0x7d, 0xd2, 0x8b, 0x57, 0x14, 0x01, 0xd6, 0xa2, 0x7d,
		0x14, 0x73, 0x6a, 0x36, 0x5c, 0x25, 0x68, 0xdb, 0xab, 0xa3, 0x99, 0xc7, 0x27, 0x2c, 0xcf, 0xc8,
		0x0a, 0x36, 0x64, 0x52, 0x77, 0x4d, 0x7b, 0x9c, 0x95, 0x24, 0x4b, 0x7c, 0xa9, 0x24, 0x4d, 0x17,
		0x7a, 0x23, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x48, 0x2f, 0x90, 0x75, 0x71, 0x2f,
		0x52, 0xd3, 0xba, 0x12, 0xc3, 0x62, 0x8e, 0xd6, 0xe7, 0x84, 0xab, 0x0f, 0xbe, 0x91, 0xbe, 0x46,
		0x96, 0x12, 0x75, 0x54, 0x9a, 0x0a, 0x18, 0x79, 0x52, 0x60, 0x02, 0x39, 0x30, 0x8b, 0x24, 0x98,
		0x42, 0x16, 0x8c, 0x23, 0x0d, 0xc6, 0x91, 0x07, 0xe3, 0x48, 0x04, 0x4d, 0x32, 0x41, 0x94, 0x54,
		0x24, 0xbd, 0x4b, 0x56, 0x51, 0x4b, 0xc5, 0xcd, 0x81, 0x90, 0xaa, 0x50, 0xa1, 0x1c, 0x33, 0x27,
		0x28, 0x5e, 0x21, 0x6c, 0x22, 0xcd, 0xa2, 0xda, 0xf3, 0x17, 0x6d, 0xcc, 0xb1, 0xa8, 0x17, 0xdd,
		0x4e, 0x19, 0x4b, 0xbc, 0x08, 0x77, 0xca, 0x5e, 0x53, 0x0a, 0x0e, 0xa7, 0x63, 0x15, 0xf5, 0x02,
		0xc4, 0x86, 0xc0, 0xd2, 0x5b, 0x57, 0x63, 0x4f, 0xe6, 0xb9, 0x5a, 0xa5, 0x5c, 0x3e, 0x2c, 0xc3,
		0xdd, 0xe0, 0x6e, 0x06, 0x70, 0x53, 0xfa, 0xd6, 0xdd, 0x82, 0xd3, 0xaf, 0xe0, 0x16, 0x84, 0xeb,
		0x87, 0xa7, 0x6c, 0xa5, 0x5b, 0x4f, 0xdc, 0x40, 0x52, 0x3a, 0x9d, 0x2a, 0xb5, 0x3e, 0x7f, 0xb2,
		0x4a, 0xc5, 0x6a, 0xc1, 0x72, 0xac, 0x9a, 0x75, 0xe2, 0x87, 0x5d, 0x1e, 0x5a, 0x5f, 0x98, 0xe2,
		0x3f, 0xd9, 0xb3, 0x35, 0xdd, 0x65, 0x69, 0x95, 0xac, 0xbd, 0x93, 0x2f, 0x4d, 0xa7, 0xb4, 0x6f,
		0x1b, 0xc0, 0x01, 0x0c, 0x91, 0xa3, 0x66, 0x53, 0x41, 0x73, 0x6a, 0x8f, 0xa7, 0x6c, 0x37, 0x4d,
		0xa1, 0x4a, 0x0c, 0x7f, 0xad, 0x54, 0xad, 0xe8, 0x02, 0x60, 0x0e, 0x60, 0x0e, 0x3b, 0xdd, 0x5e,
		0x14, 0x4f, 0x6f, 0xa2, 0xbb, 0xa6, 0x3e, 0x85, 0xb8, 0x54, 0xd7, 0xd6, 0xcf, 0x00, 0x09, 0x19,
		0xc6, 0x3f, 0x32, 0x10, 0x19, 0xc6, 0x1d, 0xa5, 0x74, 0xc8, 0x30, 0xe6, 0xca, 0xdb, 0x90, 0x61,
		0xdc, 0x36, 0x35, 0xc2, 0xac, 0x0c, 0xe3, 0x47, 0x03, 0x12, 0x8c, 0x65, 0x24, 0x18, 0xb7, 0x5f,
		0xcb, 0x41, 0x82, 0x31, 0x43, 0x7b, 0x91, 0xf1, 0xd8, 0x71, 0x54, 0x7a, 0xeb, 0x6a, 0x26, 0x26,
		0x18, 0x8b, 0x65, 0xa4, 0x17, 0xe1, 0x6c, 0x26, 0x10, 0x53, 0xfa, 0xd6, 0x21, 0xbd, 0xb8, 0x8a,
		0x5b, 0x20, 0xbd, 0xb8, 0xa3, 0x94, 0x14, 0xe9, 0x45, 0x32, 0x13, 0x41, 0xa4, 0x17, 0xf3, 0x37,
		0x1c, 0xe9, 0x45, 0x58, 0x67, 0x08, 0x73, 0x40, 0x7a, 0xf1, 0x37, 0xfc, 0x39, 0xce, 0xd9, 0x3d,
		0x4e, 0xa6, 0x53, 0x26, 0xe4, 0x17, 0xc7, 0xb6, 0x22, 0xc1, 0xb8, 0x8e, 0x79, 0x48, 0x30, 0x6e,
		0x70, 0x34, 0x22, 0xc1, 0x98, 0x11, 0x99, 0x43, 0x82, 0x31, 0x73, 0xe6, 0x86, 0x04, 0xe3, 0xb6,
		0xe9, 0x11, 0xe6, 0x24, 0x18, 0xdb, 0x42, 0xb2, 0xf0, 0xd9, 0x80, 0x0c, 0xe3, 0x11, 0x61, 0x13,
		0xcf, 0xb9, 0xbc, 0x8b, 0x8b, 0x85, 0x41, 0xcf, 0xf9, 0xc3, 0x96, 0x34, 0x32, 0xc5, 0x58, 0x40,
		0xd6, 0x23, 0xe3, 0x60, 0x85, 0x14, 0x63, 0x06, 0xae, 0x86, 0x3d, 0x8c, 0x70, 0xb7, 0x2d, 0x71,
		0x37, 0x48, 0x85, 0x6b, 0x5d, 0x48, 0x32, 0xae, 0xe2, 0x16, 0x48, 0x32, 0xee, 0x28, 0x29, 0x45,
		0x92, 0x91, 0xcc, 0x5c, 0x10, 0x49, 0xc6, 0xfc, 0x0d, 0x47, 0x92, 0x11, 0xd6, 0x19, 0xc2, 0x1c,
		0x90, 0x64, 0xfc, 0x3d, 0x1e, 0xc3, 0x65, 0x97, 0x77, 0xe9, 0xa7, 0x18, 0x13, 0x4b, 0x91, 0x60,
		0x5c, 0xc7, 0x3c, 0x24, 0x18, 0x37, 0x38, 0x16, 0x91, 0x60, 0xcc, 0x88, 0xc8, 0x21, 0xc1, 0x98,
		0x39, 0x6b, 0x43, 0x82, 0x71, 0xdb, 0xb4, 0x08, 0x83, 0x12, 0x8c, 0xbe, 0xdf, 0xe7, 0x4c, 0x1a,
		0x90, 0x61, 0x2c, 0x14, 0x30, 0x04, 0x57, 0xa3, 0x91, 0x90, 0xc3, 0x36, 0x7e, 0x41, 0x0e, 0x03,
		0x7b, 0x5a, 0x87, 0x45, 0x41, 0x0e, 0xd3, 0x41, 0xac, 0x20, 0x87, 0xc1, 0x3a, 0x0b, 0x72, 0x98,
		0xc9, 0x5c, 0xc6, 0xf6, 0x03, 0x25, 0x7c, 0xc9, 0xfa, 0xf4, 0xe5, 0xb0, 0xc4, 0x52, 0xc8, 0x61,
		0xeb, 0x98, 0x07, 0x39, 0x6c, 0x93, 0x63, 0x11, 0x72, 0x58, 0x36, 0x44, 0x0e, 0x72, 0x58, 0xe6,
		0xac, 0x0d, 0x72, 0xd8, 0xb6, 0x69, 0x11, 0x90, 0xc3, 0x36, 0x0f, 0xe3, 0x90, 0xc3, 0x56, 0x6a,
		0x35, 0xc8, 0x61, 0x59, 0x5c, 0x90, 0xc3, 0xc0, 0x9e, 0xd6, 0x61, 0x51, 0x90, 0xc3, 0x74, 0x10,
		0x2b, 0xc8, 0x61, 0xb0, 0xce, 0x82, 0x1c, 0x66, 0x32, 0x97, 0xb1, 0x03, 0x16, 0x2a, 0x61, 0x82,
		0x1a, 0x36, 0x35, 0x14, 0x62, 0xd8, 0x3a, 0xe6, 0x41, 0x0c, 0xdb, 0xe0, 0x50, 0x84, 0x18, 0x96,
		0x11, 0x8d, 0x83, 0x18, 0x96, 0x39, 0x67, 0x83, 0x18, 0xb6, 0x6d, 0x4a, 0x04, 0xc4, 0xb0, 0xcd,
		0xc3, 0x38, 0xc4, 0xb0, 0x95, 0x5a, 0x0d, 0x62, 0x58, 0x16, 0x17, 0xc4, 0x30, 0xb0, 0xa7, 0x75,
		0x58, 0x14, 0xc4, 0x30, 0x1d, 0xc4, 0x0a, 0x62, 0x18, 0xac, 0xb3, 0x20, 0x86, 0x99, 0xcc, 0x65,
		0x6c, 0x15, 0x32, 0x19, 0x89, 0x49, 0x2d, 0x14, 0xe2, 0x7a, 0xd8, 0x2b, 0x5b, 0x21, 0x89, 0xad,
		0x63, 0x1e, 0x24, 0xb1, 0x0d, 0x8e, 0x46, 0x48, 0x62, 0x19, 0x91, 0x39, 0x48, 0x62, 0x99, 0x33,
		0x37, 0x48, 0x62, 0xdb, 0xa6, 0x47, 0x40, 0x12, 0xdb, 0x3c, 0x8c, 0x43, 0x12, 0x5b, 0xa9, 0xd5,
		0x20, 0x89, 0x65, 0x71, 0x41, 0x12, 0x03, 0x7b, 0x5a, 0x87, 0x45, 0x41, 0x12, 0xd3, 0x41, 0xac,
		0x20, 0x89, 0xc1, 0x3a, 0x0b, 0x92, 0x98, 0xa1, 0x16, 0x11, 0x63, 0x56, 0x76, 0x4d, 0x4a, 0x5f,
		0x31, 0x25, 0x7c, 0x9a, 0x25, 0xe3, 0xed, 0xa8, 0x73, 0xcf, 0x1f, 0x58, 0xc0, 0xe2, 0x93, 0x01,
		0x6c, 0xd7, 0x0f, 0xb8, 0xec, 0xc4, 0x12, 0x93, 0x23, 0xb9, 0xfa, 0xe9, 0x87, 0x3f, 0x1c, 0x31,
		0x62, 0x83, 0xb2, 0xc3, 0xdd, 0xf9, 0x07, 0x51, 0xea, 0x89, 0x1b, 0x4c, 0xe2, 0x63, 0x94, 0xdc,
		0xb9, 0xed, 0xbb, 0xc0, 0x0d, 0x45, 0xdb, 0x65, 0x3d, 0xe1, 0x44, 0xac, 0x27, 0xa2, 0xe4, 0xce,
		0x15, 0xc1, 0x63, 0xc5, 0x19, 0x48, 0xd1, 0x61, 0x91, 0x72, 0x25, 0x17, 0x77, 0xf7, 0x6d, 0x3f,
		0x8c, 0x92, 0x3b, 0x97, 0x75, 0xbf, 0xc7, 0x73, 0x5c, 0x7f, 0xa0, 0x9c, 0xc0, 0x8f, 0x94, 0x1b,
		0xfa, 0x03, 0xc5, 0xa3, 0xf1, 0x8b, 0x3b, 0x90, 0x3f, 0xa4, 0xff, 0x53, 0x3a, 0x4c, 0xa9, 0x50,
		0xb4, 0xe3, 0x5f, 0xa4, 0x1e, 0xb9, 0x91, 0x62, 0x8a, 0x22, 0x7c, 0xda, 0x91, 0x0a, 0x07, 0x1d,
		0x25, 0x27, 0xb4, 0xab, 0x91, 0x34, 0xfb, 0xc5, 0xb8, 0x49, 0xeb, 0x93, 0x16, 0xf5, 0xe6, 0x7e,
		0x8e, 0xe6, 0x1f, 0x78, 0x53, 0x48, 0x8a, 0x92, 0x3b, 0xef, 0xe4, 0x2e, 0xf0, 0x5a, 0xa2, 0xed,
		0xd5, 0x7a, 0xe2, 0x72, 0xd4, 0xe2, 0xd3, 0x1b, 0xaf, 0x1e, 0x3c, 0x56, 0xae, 0xc7, 0xed, 0xed,
		0x5d, 0x4c, 0xdb, 0x3b, 0xb9, 0xf3, 0x6a, 0xdd, 0xef, 0x2d, 0xd1, 0x6e, 0x0c, 0x54, 0xd3, 0x8f,
		0x94, 0xd7, 0x8a, 0x1b, 0x7b, 0xfc, 0xe2, 0x5d, 0x8f, 0x5b, 0xb6, 0x96, 0xb4, 0x75, 0xea, 0x89,
		0x77, 0x19, 0x37, 0xf5, 0x3b, 0x84, 0x26, 0xba, 0x96, 0x10, 0x09, 0x8e, 0x23, 0x8e, 0x9b, 0x1c,
		0xce, 0xa6, 0x9e, 0x03, 0x2a, 0x0e, 0x6a, 0x9f, 0x8b, 0x48, 0x8d, 0x06, 0x34, 0xa9, 0x50, 0x6d,
		0x7f, 0x15, 0xf2, 0xac, 0xcf, 0x47, 0xf4, 0x94, 0x58, 0x7d, 0x7e, 0xfb, 0x2b, 0x7b, 0x7a, 0x65,
		0x59, 0xe1, 0x63, 0xa9, 0x54, 0xa9, 0x96, 0x4a, 0x07, 0xd5, 0xc3, 0xea, 0xc1, 0x51, 0xb9, 0x5c,
		0xa8, 0x14, 0x08, 0x9d, 0x82, 0x60, 0x37, 0x46, 0x4c, 0x9e, 0x77, 0x4f, 0x46, 0x43, 0x4f, 0x0e,
		0xfa, 0x7d, 0x8a, 0xa6, 0x5d, 0x47, 0x3c, 0x24, 0x75, 0xa0, 0x01, 0x95, 0x88, 0x41, 0x94, 0x46,
		0x6d, 0x39, 0x7d, 0x22, 0x44, 0x9c, 0xb6, 0x8f, 0x30, 0xd1, 0xa0, 0x4a, 0xfa, 0x89, 0x89, 0x5e,
		0x0b, 0x34, 0x07, 0x38, 0x6a, 0x81, 0x6d, 0xab, 0x02, 0x1a, 0x81, 0xf0, 0x65, 0x7c, 0xd8, 0xd2,
		0x1b, 0xa5, 0xf4, 0xc5, 0x06, 0x3d, 0xdf, 0xac, 0x29, 0x1a, 0x4d, 0x27, 0x64, 0xe3, 0x65, 0x1b,
		0xd6, 0xc8, 0xfb, 0x1d, 0xa1, 0xab, 0xa0, 0x3d, 0x8d, 0x59, 0x18, 0x9d, 0x59, 0x17, 0xe9, 0x59,
		0x16, 0xa1, 0x59, 0x15, 0xa1, 0x59, 0x94, 0x2e, 0x37, 0x26, 0x42, 0x26, 0xcc, 0x25, 0x11, 0x1a,
		0x19, 0x83, 0x61, 0x4c, 0x41, 0x0f, 0x2f, 0xc8, 0x1f, 0x95, 0xf3, 0xfd, 0xc6, 0x9c, 0x03, 0x87,
		0xee, 0x80, 0x61, 0x62, 0xa0, 0xd0, 0x10, 0x22, 0x8c, 0x09, 0x0d, 0xf9, 0x06, 0x85, 0xfc, 0x5c,
		0x33, 0x9f, 0x6f, 0xca, 0xc9, 0xf9, 0x75, 0x39, 0xbd, 0x51, 0xce, 0x9e, 0xa3, 0x97, 0xd3, 0xf7,
		0xee, 0x7c, 0xdc, 0x3a, 0x7b, 0x27, 0xcb, 0xc1, 0xc1, 0xec, 0x37, 0x03, 0x29, 0xcc, 0x6f, 0xdd,
		0x61, 0xb2, 0x82, 0x73, 0xde, 0x80, 0x9c, 0x82, 0xca, 0x74, 0xbd, 0x75, 0x4e, 0x5f, 0x97, 0xf7,
		0x36, 0x28, 0x1d, 0xdb, 0x9a, 0xf4, 0x6e, 0x53, 0xd2, 0xb5, 0x70, 0x56, 0xfb, 0x36, 0x22, 0xed,
		0xab, 0x58, 0xb5, 0x6f, 0xf3, 0xd9, 0x2e, 0xba, 0x73, 0x2a, 0xf2, 0x55, 0x12, 0xed, 0xc9, 0x3c,
		0x21, 0x77, 0xc7, 0x99, 0x86, 0x0b, 0x2d, 0xf3, 0x94, 0x9c, 0x01, 0x20, 0x0d, 0x04, 0xc5, 0x9c,
		0xbf, 0x58, 0xe3, 0x3e, 0x57, 0x1a, 0xfb, 0x57, 0x75, 0xef, 0xac, 0x20, 0xb3, 0xdf, 0x94, 0xcc,
		0xb6, 0x07, 0x32, 0xfb, 0x43, 0xb7, 0x5b, 0x34, 0xcb, 0x1b, 0x50, 0xde, 0x02, 0x8b, 0x3e, 0x7f,
		0x7b, 0x83, 0x2f, 0xba, 0x7c, 0x4d, 0x0f, 0xcc, 0x68, 0x9b, 0x77, 0x50, 0x82, 0x1d, 0x5a, 0xf0,
		0x43, 0x05, 0x86, 0xc8, 0xc1, 0x11, 0x39, 0x58, 0x22, 0x07, 0x4f, 0x7a, 0x60, 0x4a, 0x13, 0x5c,
		0x69, 0x87, 0xad, 0xc4, 0x80, 0xe9, 0xb2, 0x12, 0xed, 0x9e, 0x3a, 0x2b, 0xce, 0xad, 0x73, 0x9d,
		0xcb, 0x3c, 0xa4, 0x69, 0x5e, 0xd8, 0x4f, 0xa6, 0xb2, 0x10, 0xa5, 0x0a, 0x42, 0x34, 0x2b, 0x05,
		0x51, 0xdb, 0xd3, 0x4e, 0xb6, 0xf2, 0x0f, 0xd9, 0x0d, 0xe9, 0x64, 0x2b, 0xf9, 0xec, 0xf6, 0x62,
		0x6c, 0x32, 0x15, 0x78, 0x92, 0xb8, 0xd3, 0xe7, 0xac, 0x17, 0xf2, 0x1e, 0x85, 0xa0, 0x33, 0x9d,
		0x79, 0x55, 0x09, 0xd8, 0xd2, 0x9c, 0x24, 0x91, 0x3f, 0x7c, 0x18, 0xef, 0xf0, 0x75, 0xa7, 0x50,
		0xbe, 0xab, 0xab, 0x95, 0x35, 0xce, 0xbf, 0x02, 0x1a, 0x70, 0x3d, 0x63, 0x75, 0x24, 0x26, 0x5f,
		0x20, 0x75, 0x20, 0x75, 0x20, 0x75, 0x20, 0x75, 0x20, 0x75, 0x20, 0x75, 0x20, 0x75, 0x6b, 0x92,
		0xba, 0x71, 0xd8, 0x01, 0xa7, 0xcb, 0xbd, 0x2b, 0xc6, 0x65, 0x73, 0xc8, 0x50, 0x3a, 0x0a, 0x55,
		0x7c, 0x34, 0x67, 0x9e, 0xc0, 0xe8, 0xc0, 0xe8, 0xc0, 0xe8, 0xc0, 0xe8, 0xc0, 0xe8, 0xf4, 0x67,
		0xb2, 0x12, 0x43, 0xe2, 0x02, 0x56, 0x42, 0x76, 0x39, 0x9d, 0xf3, 0x0e, 0x66, 0xeb, 0xc0, 0x67,
		0xb6, 0x51, 0xa9, 0xfa, 0x45, 0xea, 0x64, 0x0d, 0x72, 0x27, 0x69, 0x50, 0x3c, 0x39, 0x83, 0xf6,
		0x49, 0x19, 0x54, 0x6b, 0x3b, 0x93, 0x3f, 0x09, 0x83, 0x7c, 0xa1, 0x66, 0xf2, 0x27, 0x5d, 0xa0,
		0x9e, 0x23, 0x49, 0x89, 0x85, 0xb0, 0xd4, 0x42, 0x51, 0x72, 0x59, 0x24, 0xbd, 0xfc, 0xc3, 0xbf,
		0x98, 0x52, 0x44, 0x5c, 0x45, 0xc9, 0xdd, 0x44, 0xa8, 0x19, 0xd3, 0x0c, 0xd4, 0x33, 0xa3, 0xe2,
		0x94, 0x76, 0xc7, 0x7f, 0x78, 0x18, 0x48, 0xa1, 0x9e, 0xa9, 0xb2, 0xd3, 0x79, 0x03, 0x41, 0x51,
		0x41, 0x51, 0x41, 0x51, 0x41, 0x51, 0x41, 0x51, 0x41, 0x51, 0x41, 0x51, 0x41, 0x51, 0xd7, 0xa5,
		0xa8, 0x53, 0x5e, 0x21, 0x78, 0x94, 0xdc, 0x3f, 0x83, 0xa5, 0xd2, 0x64, 0xa9, 0xfc, 0x49, 0x39,
		0xe4, 0x99, 0xea, 0x22, 0x23, 0xc1, 0x56, 0xc1, 0x56, 0xc1, 0x56, 0xc1, 0x56, 0xc1, 0x56, 0xc1,
		0x56, 0xc1, 0x56, 0xc1, 0x56, 0xd7, 0x65, 0xab, 0xaf, 0xb9, 0xc5, 0x88, 0xb1, 0xbe, 0xe1, 0x1a,
		0x60, 0xad, 0x34, 0x59, 0xab, 0x90, 0x8f, 0xac, 0x2f, 0xba, 0x4e, 0xc8, 0x59, 0x44, 0xe8, 0x38,
		0x9a, 0xc4, 0x43, 0xe7, 0xec, 0x03, 0x57, 0x05, 0x57, 0x05, 0x57, 0x05, 0x57, 0x05, 0x57, 0x05,
		0x57, 0xdd, 0x31, 0xae, 0x2a, 0xba, 0x5c, 0x2a, 0xa1, 0x9e, 0x89, 0xf2, 0x55, 0x4a, 0x87, 0x23,
		0xd6, 0x27, 0x4d, 0x75, 0xc2, 0x22, 0x82, 0x21, 0x75, 0xda, 0xa1, 0xf5, 0x8b, 0x6f, 0xb5, 0xf3,
		0xfa, 0xa9, 0xd7, 0x6a, 0x5c, 0x5f, 0x9d, 0x79, 0xad, 0xb3, 0xda, 0x65, 0xe3, 0x82, 0x5a, 0x74,
		0xfd, 0xc6, 0xfa, 0x83, 0xb8, 0xfa, 0xe3, 0x0d, 0xb9, 0x43, 0x87, 0x7f, 0x91, 0x3c, 0xd1, 0x3c,
		0xd5, 0xbb, 0xb5, 0x4b, 0xef, 0xbc, 0xd1, 0x68, 0xd2, 0x3b, 0x59, 0x7f, 0xf8, 0x1e, 0x5d, 0xba,
		0x5e, 0x97, 0x7e, 0x3a, 0xbf, 0xbe, 0xbc, 0x3a, 0x6b, 0xa1, 0x5f, 0xb7, 0xad, 0x5f, 0x1b, 0x17,
		0x9f, 0xcf, 0x4e, 0xd1, 0xa3, 0xdb, 0xd3, 0xa3, 0x8d, 0x56, 0xfd, 0x4b, 0xfd, 0xa2, 0x76, 0xd5,
		0x68, 0x11, 0xec, 0x55, 0x52, 0x16, 0xdd, 0x62, 0x3e, 0x42, 0xcc, 0x0a, 0x0a, 0xea, 0x60, 0x9f,
		0x45, 0xca, 0x79, 0xf0, 0xbb, 0xa2, 0x27, 0x78, 0x97, 0x9e, 0x38, 0xf8, 0xd6, 0x3c, 0x68, 0x83,
		0x8b, 0xcc, 0x81, 0x36, 0xb8, 0xc2, 0x80, 0x82, 0x36, 0xb8, 0xd2, 0x48, 0x87, 0x36, 0xf8, 0x87,
		0x06, 0x42, 0x1b, 0x34, 0x88, 0xff, 0x12, 0xd6, 0x06, 0x95, 0x78, 0xe0, 0x4a, 0x74, 0x7e, 0x44,
		0x95, 0x12, 0x41, 0x6d, 0xf0, 0x23, 0x21, 0x93, 0xae, 0xa5, 0x88, 0x0f, 0x1e, 0xb6, 0x25, 0x93,
		0x7e, 0xc4, 0x3b, 0xbe, 0xec, 0x46, 0x94, 0x9a, 0xac, 0xc5, 0xe4, 0x1d, 0x27, 0xa7, 0xb7, 0xd1,
		0x9b, 0xee, 0xd9, 0x5f, 0x85, 0x24, 0x87, 0x88, 0x89, 0x71, 0xb1, 0x6c, 0x4a, 0x87, 0x73, 0xa5,
		0xec, 0xfb, 0x1c, 0xb2, 0x8e, 0x12, 0xbe, 0x3c, 0x15, 0x77, 0x42, 0xf7, 0x89, 0xe0, 0xff, 0x1c,
		0xe0, 0xf8, 0x1d, 0x53, 0xe2, 0x91, 0x6b, 0x3d, 0x00, 0xdb, 0x30, 0x6d, 0xc6, 0xfe, 0xca, 0x9e,
		0xe8, 0xbb, 0x06, 0xad, 0x93, 0xdf, 0xe1, 0x2d, 0x3b, 0xc4, 0x27, 0xe9, 0x59, 0x73, 0x0b, 0xcd,
		0x8b, 0x4a, 0x34, 0x25, 0x73, 0xb0, 0x43, 0x8a, 0xe4, 0xd3, 0x38, 0xe0, 0x61, 0x9e, 0xdc, 0x43,
		0xe7, 0x5a, 0x62, 0x10, 0x74, 0xae, 0x55, 0xad, 0x83, 0xce, 0xb5, 0xa6, 0x81, 0xd0, 0xb9, 0xb6,
		0x82, 0x09, 0x40, 0xe7, 0xfa, 0xb7, 0xb8, 0x35, 0x10, 0x52, 0x1d, 0x16, 0x09, 0x4a, 0x5c, 0x55,
		0x48, 0x48, 0xff, 0x72, 0x41, 0x42, 0x5a, 0x6f, 0x9e, 0x0c, 0x09, 0x69, 0xeb, 0x27, 0xc5, 0x90,
		0x90, 0xd6, 0x73, 0x8d, 0x52, 0xf1, 0xa8, 0x74, 0x54, 0xa9, 0x16, 0x8f, 0x20, 0x1c, 0x6d, 0xbd,
		0x8f, 0x40, 0x38, 0x5a, 0x78, 0xdd, 0x82, 0xb8, 0xbe, 0x1a, 0xc6, 0xfc, 0x49, 0x85, 0xcc, 0x19,
		0xc8, 0x48, 0xb1, 0x76, 0x9f, 0x18, 0x85, 0x0d, 0x79, 0x8f, 0x87, 0x5c, 0x76, 0xc0, 0xcc, 0x56,
		0xe0, 0xfb, 0xdd, 0x90, 0xf5, 0x94, 0x23, 0xb8, 0xea, 0x39, 0xa2, 0x1b, 0x3a, 0xac, 0xdb, 0x75,
		0x02, 0xa6, 0xee, 0x23, 0xcb, 0xb1, 0x6a, 0xdd, 0x47, 0x1e, 0x2a, 0x11, 0xf1, 0xd1, 0xbc, 0xd2,
		0xf2, 0x7b, 0xd6, 0xd7, 0x41, 0x5f, 0x89, 0xa0, 0xcf, 0xad, 0xe6, 0xe8, 0x1d, 0x7f, 0x49, 0x21,
		0xad, 0x93, 0x2f, 0x4d, 0x9b, 0x20, 0xb8, 0x12, 0xd5, 0x39, 0x16, 0xe9, 0x1d, 0xb3, 0x51, 0x4b,
		0x14, 0xb9, 0xa8, 0x4b, 0x1f, 0x0b, 0x25, 0x90, 0x0d, 0x0c, 0x6b, 0x20, 0x34, 0x10, 0xda, 0xa8,
		0xf6, 0x20, 0x91, 0xda, 0xa1, 0x25, 0xc9, 0xd3, 0x3a, 0xe4, 0x71, 0x16, 0xfe, 0x91, 0xd8, 0xf9,
		0x47, 0x83, 0x90, 0xd8, 0xd9, 0x12, 0xc2, 0x83, 0xc4, 0xce, 0x46, 0x59, 0x0d, 0x12, 0x3b, 0xd4,
		0xe7, 0xc7, 0x84, 0x8b, 0x1b, 0x04, 0x8f, 0x15, 0x87, 0x9c, 0x0f, 0x26, 0xc5, 0x0d, 0x3e, 0xd2,
		0x2a, 0xc6, 0xa5, 0x78, 0x28, 0xc9, 0xc9, 0x08, 0xf6, 0xde, 0xde, 0xcd, 0x81, 0x73, 0xc4, 0x9c,
		0x5e, 0xcd, 0xf9, 0x7c, 0xfb, 0xab, 0xf0, 0xbe, 0x34, 0x3c, 0xde, 0xff, 0x55, 0x1d, 0xce, 0x3f,
		0x7c, 0x59, 0xf4, 0xb6, 0xc2, 0xfb, 0xea, 0xf0, 0x78, 0xc9, 0x6f, 0x2a, 0xc3, 0xe3, 0xdf, 0xfc,
		0x1b, 0xe5, 0xe1, 0x5e, 0xea, 0xad, 0xa3, 0xe7, 0xc5, 0x65, 0x1f, 0x28, 0x2d, 0xf9, 0xc0, 0xe1,
		0xb2, 0x0f, 0x1c, 0x2e, 0xf9, 0xc0, 0x52, 0x93, 0x8a, 0x4b, 0x3e, 0x50, 0x1e, 0xbe, 0xa4, 0xde,
		0xbf, 0xb7, 0xf8, 0xad, 0x95, 0xe1, 0xfe, 0xcb, 0xb2, 0xdf, 0x55, 0x87, 0x2f, 0xc7, 0xfb, 0xfb,
		0xee, 0x5e, 0xa1, 0x78, 0x73, 0xe0, 0x7c, 0xbc, 0x7d, 0x29, 0xdc, 0x1c, 0x38, 0x85, 0xdb, 0xd1,
		0x3b, 0x6f, 0x5f, 0x6e, 0x0a, 0xce, 0xd1, 0xf4, 0x76, 0xf4, 0xdf, 0x7d, 0x3a, 0x61, 0xf9, 0x96,
		0x92, 0x3f, 0x35, 0x2e, 0xeb, 0xff, 0x25, 0xeb, 0x54, 0x7f, 0xc3, 0xab, 0x88, 0x7b, 0xd5, 0x7f,
		0x6c, 0x68, 0x0d, 0xd0, 0x1a, 0x52, 0x8e, 0x3b, 0x29, 0x5b, 0xe8, 0x0f, 0x14, 0xa7, 0x27, 0x38,
		0xbc, 0x36, 0x0e, 0xaa, 0x03, 0x54, 0x07, 0xa8, 0x0e, 0x50, 0x1d, 0xa0, 0x3a, 0x40, 0x75, 0xd8,
		0x31, 0xd5, 0xa1, 0xed, 0xfb, 0x7d, 0xce, 0x24, 0x45, 0xc5, 0xa1, 0x00, 0x2a, 0x47, 0xc0, 0x02,
		0xdd, 0x67, 0x83, 0xd7, 0xa4, 0xf4, 0x15, 0x53, 0x82, 0x48, 0x65, 0x6e, 0x3b, 0xea, 0xdc, 0xf3,
		0x07, 0x16, 0x4c, 0xca, 0xc1, 0xbb, 0x7e, 0xc0, 0x65, 0x27, 0x26, 0x4a, 0x8e, 0xe4, 0xea, 0xa7,
		0x1f, 0xfe, 0x70, 0x84, 0x8c, 0x14, 0x93, 0x1d, 0xee, 0xce, 0x3f, 0x88, 0x52, 0x4f, 0xdc, 0x20,
		0xf4, 0x95, 0xdf, 0xf1, 0xfb, 0x51, 0x72, 0xe7, 0xb6, 0xef, 0x02, 0x37, 0x14, 0x6d, 0x97, 0xf5,
		0x84, 0x13, 0xb1, 0x9e, 0x88, 0x92, 0x3b, 0x37, 0x96, 0x08, 0x07, 0x52, 0x74, 0x58, 0xa4, 0x5c,
		0xc9, 0xc5, 0xdd, 0x7d, 0xdb, 0x0f, 0xa3, 0xe4, 0xce, 0x65, 0xdd, 0xef, 0x31, 0x12, 0xf8, 0x03,
		0xe5, 0x04, 0x21, 0x77, 0x63, 0x76, 0x1b, 0x8d, 0x5f, 0xc6, 0xd5, 0xe7, 0x09, 0xf8, 0xb9, 0x1d,
		0xa9, 0x70, 0xd0, 0x51, 0x72, 0x12, 0x80, 0x1a, 0x49, 0x03, 0x5e, 0x8c, 0x1b, 0xa7, 0x3e, 0x69,
		0x1b, 0x6f, 0xee, 0xe7, 0x68, 0xfe, 0x81, 0xd7, 0x9c, 0x36, 0x5e, 0x72, 0xe7, 0x9d, 0xdc, 0x05,
		0x5e, 0x4b, 0xb4, 0xbd, 0x5a, 0x4f, 0x5c, 0x8e, 0xda, 0x6e, 0x7a, 0xe3, 0xd5, 0x83, 0xc7, 0xca,
		0xf5, 0xb8, 0xe5, 0xbc, 0x8b, 0x69, 0xcb, 0x25, 0x77, 0x5e, 0xad, 0xfb, 0xbd, 0x25, 0xda, 0x8d,
		0x81, 0x6a, 0x86, 0xdc, 0x6b, 0xc5, 0xcd, 0x36, 0x7e, 0xf1, 0x2e, 0xe3, 0x66, 0x7b, 0xb7, 0x9b,
		0x01, 0x40, 0xa3, 0xf3, 0xdb, 0x03, 0xf9, 0x43, 0xfa, 0x3f, 0xa5, 0xc3, 0x94, 0x0a, 0x45, 0x7b,
		0xd4, 0x23, 0xda, 0x03, 0xc0, 0x6c, 0x13, 0x46, 0xda, 0x36, 0xcd, 0x61, 0x72, 0x0a, 0x9a, 0x9a,
		0xcd, 0xa0, 0x32, 0x67, 0xa4, 0x34, 0x57, 0xa4, 0x39, 0x47, 0xa4, 0x36, 0x37, 0x24, 0x3b, 0x27,
		0x24, 0x3b, 0x17, 0x24, 0x3b, 0x07, 0xdc, 0x6d, 0xc2, 0x7a, 0x2a, 0x42, 0x1a, 0x61, 0x27, 0x05,
		0x52, 0xf4, 0x44, 0xd8, 0xb4, 0x89, 0xb4, 0xa4, 0xd8, 0x02, 0xa4, 0x58, 0xf2, 0xf0, 0x4a, 0x1b,
		0x66, 0xa9, 0xc2, 0x2d, 0x79, 0xd8, 0x25, 0x0f, 0xbf, 0xe4, 0x61, 0x98, 0x8e, 0x82, 0x65, 0x11,
		0x92, 0x62, 0xa9, 0xc0, 0x73, 0x62, 0xd0, 0x08, 0xfb, 0x1c, 0x45, 0x4d, 0x20, 0x7e, 0x13, 0x51,
		0x67, 0x26, 0x12, 0x73, 0x3d, 0x5a, 0x19, 0x53, 0xb2, 0x70, 0x4d, 0x19, 0xb6, 0xcd, 0x80, 0x6f,
		0xea, 0x30, 0x6e, 0x0c, 0x9c, 0x1b, 0x03, 0xeb, 0xc6, 0xc0, 0x3b, 0x2d, 0x98, 0x27, 0x06, 0xf7,
		0x49, 0x2f, 0x5e, 0x51, 0x04, 0x58, 0x8b, 0xf6, 0x41, 0xcc, 0xa9, 0xd9, 0x70, 0x95, 0xa0, 0x6d,
		0xaf, 0x0e, 0x66, 0x1e, 0x9f, 0xaf, 0x3c, 0x23, 0x2b, 0xd8, 0x8e, 0x49, 0xdd, 0x35, 0xed, 0x71,
		0x52, 0x92, 0x2c, 0xf1, 0xa5, 0x92, 0x33, 0x5d, 0xe8, 0x8d, 0x20, 0xbd, 0x20, 0xbd, 0x20, 0xbd,
		0x20, 0xbd, 0x20, 0xbd, 0x40, 0xd6, 0xc5, 0xbd, 0x48, 0x4d, 0xeb, 0x4a, 0x0c, 0x8b, 0x39, 0x5a,
		0x9f, 0x13, 0xae, 0x3d, 0xf8, 0x46, 0xfa, 0x1a, 0x59, 0x4a, 0xd4, 0x51, 0x69, 0x2a, 0x60, 0xe4,
		0x49, 0x81, 0x09, 0xe4, 0xc0, 0x2c, 0x92, 0x60, 0x0a, 0x59, 0x30, 0x8e, 0x34, 0x18, 0x47, 0x1e,
		0x8c, 0x23, 0x11, 0x34, 0xc9, 0x04, 0x51, 0x52, 0x91, 0xf4, 0x2e, 0x59, 0x45, 0x2d, 0x15, 0x37,
		0x07, 0x42, 0xaa, 0x42, 0x85, 0x72, 0xcc, 0x9c, 0xa0, 0x78, 0x85, 0xb0, 0x89, 0x34, 0x4b, 0x6a,
		0xcf, 0x5f, 0xb4, 0x31, 0xc7, 0xa2, 0x5e, 0x72, 0x3b, 0x65, 0x2c, 0xf1, 0x12, 0xdc, 0x29, 0x7b,
		0x4d, 0x29, 0x37, 0x9c, 0x8e, 0x55, 0xd4, 0xcb, 0x0f, 0x1b, 0x02, 0x4b, 0x6f, 0x5d, 0x8d, 0x3d,
		0x99, 0xe7, 0x6a, 0x95, 0x72, 0xf9, 0xb0, 0x0c, 0x77, 0x83, 0xbb, 0x19, 0xc0, 0x4d, 0xe9, 0x5b,
		0x77, 0x0b, 0x4e, 0xbf, 0x82, 0x5b, 0x10, 0xae, 0x1e, 0x9e, 0xb2, 0x95, 0x6e, 0x35, 0x71, 0x03,
		0x49, 0xe9, 0x74, 0xaa, 0xd4, 0xfa, 0xfc, 0xc9, 0x2a, 0x15, 0xab, 0x05, 0xcb, 0xb1, 0x6a, 0xd6,
		0x89, 0x1f, 0x76, 0x79, 0x68, 0x7d, 0x61, 0x8a, 0xff, 0x64, 0xcf, 0xd6, 0x74, 0x93, 0xa5, 0x55,
		0xb2, 0xf6, 0x4e, 0xbe, 0x34, 0x9d, 0xd2, 0xbe, 0x6d, 0x00, 0x07, 0x30, 0x44, 0x8e, 0x9a, 0x4d,
		0x05, 0xcd, 0xa9, 0x3c, 0x9e, 0xb2, 0xdd, 0x34, 0x85, 0x2a, 0x31, 0xfc, 0xb5, 0x52, 0xb5, 0xa2,
		0x0b, 0x80, 0x39, 0x80, 0x39, 0xec, 0x74, 0x7b, 0x51, 0x3c, 0xbb, 0x89, 0xee, 0x9a, 0xfa, 0x14,
		0xe2, 0x52, 0x5d, 0x5b, 0x3f, 0x03, 0x24, 0x64, 0x18, 0xff, 0xc8, 0x40, 0x64, 0x18, 0x77, 0x94,
		0xd2, 0x21, 0xc3, 0x98, 0x2b, 0x6f, 0x43, 0x86, 0x71, 0xdb, 0xd4, 0x08, 0xb3, 0x32, 0x8c, 0x1f,
		0x0d, 0x48, 0x30, 0x96, 0x91, 0x60, 0xdc, 0x7e, 0x2d, 0x07, 0x09, 0xc6, 0x0c, 0xed, 0x45, 0xc6,
		0x63, 0xc7, 0x51, 0xe9, 0xad, 0xab, 0x99, 0x98, 0x60, 0x2c, 0x96, 0x91, 0x5e, 0x84, 0xb3, 0x99,
		0x40, 0x4c, 0xe9, 0x5b, 0x87, 0xf4, 0xe2, 0x2a, 0x6e, 0x81, 0xf4, 0xe2, 0x8e, 0x52, 0x52, 0xa4,
		0x17, 0xc9, 0x4c, 0x04, 0x91, 0x5e, 0xcc, 0xdf, 0x70, 0xa4, 0x17, 0x61, 0x9d, 0x21, 0xcc, 0x01,
		0xe9, 0xc5, 0xdf, 0xf0, 0xe7, 0x38, 0x67, 0xf7, 0x38, 0x99, 0x4e, 0x99, 0x90, 0x5f, 0x1c, 0xdb,
		0x8a, 0x04, 0xe3, 0x3a, 0xe6, 0x21, 0xc1, 0xb8, 0xc1, 0xd1, 0x88, 0x04, 0x63, 0x46, 0x64, 0x0e,
		0x09, 0xc6, 0xcc, 0x99, 0x1b, 0x12, 0x8c, 0xdb, 0xa6, 0x47, 0x98, 0x93, 0x60, 0x6c, 0x0b, 0xc9,
		0xc2, 0x67, 0x03, 0x32, 0x8c, 0x47, 0x84, 0x4d, 0x3c, 0xe7, 0xf2, 0x2e, 0x2e, 0x16, 0x06, 0x3d,
		0xe7, 0x0f, 0x5b, 0xd2, 0xc8, 0x14, 0x63, 0x01, 0x59, 0x8f, 0x8c, 0x83, 0x15, 0x52, 0x8c, 0x19,
		0xb8, 0x1a, 0xf6, 0x30, 0xc2, 0xdd, 0xb6, 0xc4, 0xdd, 0x20, 0x15, 0xae, 0x75, 0x21, 0xc9, 0xb8,
		0x8a, 0x5b, 0x20, 0xc9, 0xb8, 0xa3, 0xa4, 0x14, 0x49, 0x46, 0x32, 0x73, 0x41, 0x24, 0x19, 0xf3,
		0x37, 0x1c, 0x49, 0x46, 0x58, 0x67, 0x08, 0x73, 0x40, 0x92, 0xf1, 0xf7, 0x78, 0x0c, 0x97, 0x5d,
		0xde, 0xa5, 0x9f, 0x62, 0x4c, 0x2c, 0x45, 0x82, 0x71, 0x1d, 0xf3, 0x90, 0x60, 0xdc, 0xe0, 0x58,
		0x44, 0x82, 0x31, 0x23, 0x22, 0x87, 0x04, 0x63, 0xe6, 0xac, 0x0d, 0x09, 0xc6, 0x6d, 0xd3, 0x22,
		0x0c, 0x4a, 0x30, 0xfa, 0x7e, 0x9f, 0x33, 0x69, 0x40, 0x86, 0xb1, 0x50, 0xc0, 0x10, 0x5c, 0x8d,
		0x46, 0x42, 0x0e, 0xdb, 0xf8, 0x05, 0x39, 0x0c, 0xec, 0x69, 0x1d, 0x16, 0x05, 0x39, 0x4c, 0x07,
		0xb1, 0x82, 0x1c, 0x06, 0xeb, 0x2c, 0xc8, 0x61, 0x26, 0x73, 0x19, 0xdb, 0x0f, 0x94, 0xf0, 0x25,
		0xeb, 0xd3, 0x97, 0xc3, 0x12, 0x4b, 0x21, 0x87, 0xad, 0x63, 0x1e, 0xe4, 0xb0, 0x4d, 0x8e, 0x45,
		0xc8, 0x61, 0xd9, 0x10, 0x39, 0xc8, 0x61, 0x99, 0xb3, 0x36, 0xc8, 0x61, 0xdb, 0xa6, 0x45, 0x40,
		0x0e, 0xdb, 0x3c, 0x8c, 0x43, 0x0e, 0x5b, 0xa9, 0xd5, 0x20, 0x87, 0x65, 0x71, 0x41, 0x0e, 0x03,
		0x7b, 0x5a, 0x87, 0x45, 0x41, 0x0e, 0xd3, 0x41, 0xac, 0x20, 0x87, 0xc1, 0x3a, 0x0b, 0x72, 0x98,
		0xc9, 0x5c, 0xc6, 0x0e, 0x58, 0xa8, 0x84, 0x09, 0x6a, 0xd8, 0xd4, 0x50, 0x88, 0x61, 0xeb, 0x98,
		0x07, 0x31, 0x6c, 0x83, 0x43, 0x11, 0x62, 0x58, 0x46, 0x34, 0x0e, 0x62, 0x58, 0xe6, 0x9c, 0x0d,
		0x62, 0xd8, 0xb6, 0x29, 0x11, 0x10, 0xc3, 0x36, 0x0f, 0xe3, 0x10, 0xc3, 0x56, 0x6a, 0x35, 0x88,
		0x61, 0x59, 0x5c, 0x10, 0xc3, 0xc0, 0x9e, 0xd6, 0x61, 0x51, 0x10, 0xc3, 0x74, 0x10, 0x2b, 0x88,
		0x61, 0xb0, 0xce, 0x82, 0x18, 0x66, 0x32, 0x97, 0xb1, 0x55, 0xc8, 0x64, 0x24, 0x26, 0xb5, 0x50,
		0x88, 0xeb, 0x61, 0xaf, 0x6c, 0x85, 0x24, 0xb6, 0x8e, 0x79, 0x90, 0xc4, 0x36, 0x38, 0x1a, 0x21,
		0x89, 0x65, 0x44, 0xe6, 0x20, 0x89, 0x65, 0xce, 0xdc, 0x20, 0x89, 0x6d, 0x9b, 0x1e, 0x01, 0x49,
		0x6c, 0xf3, 0x30, 0x0e, 0x49, 0x6c, 0xa5, 0x56, 0x83, 0x24, 0x96, 0xc5, 0x05, 0x49, 0x0c, 0xec,
		0x69, 0x1d, 0x16, 0x05, 0x49, 0x4c, 0x07, 0xb1, 0x82, 0x24, 0x06, 0xeb, 0x2c, 0x48, 0x62, 0x86,
		0x5a, 0x44, 0x8c, 0x59, 0xd9, 0x35, 0x29, 0x7d, 0xc5, 0x94, 0xf0, 0x69, 0x96, 0x8c, 0xb7, 0xa3,
		0xce, 0x3d, 0x7f, 0x60, 0x01, 0x8b, 0x4f, 0x06, 0xb0, 0x5d, 0x3f, 0xe0, 0xb2, 0x13, 0x4b, 0x4c,
		0x8e, 0xe4, 0xea, 0xa7, 0x1f, 0xfe, 0x70, 0xc4, 0x88, 0x0d, 0xca, 0x0e, 0x77, 0xe7, 0x1f, 0x44,
		0xa9, 0x27, 0x6e, 0x30, 0x89, 0x8f, 0x51, 0x72, 0xe7, 0xb6, 0xef, 0x02, 0x37, 0x14, 0x6d, 0x97,
		0xf5, 0x84, 0x13, 0xb1, 0x9e, 0x88, 0x92, 0x3b, 0x57, 0x04, 0x8f, 0x15, 0x67, 0x20, 0x45, 0x87,
		0x45, 0xca, 0x95, 0x5c, 0xdc, 0xdd, 0xb7, 0xfd, 0x30, 0x4a, 0xee, 0x5c, 0xd6, 0xfd, 0x1e, 0xcf,
		0x71, 0xfd, 0x81, 0x72, 0x82, 0x90, 0xbb, 0xa1, 0x3f, 0x50, 0x3c, 0x1a, 0xbf, 0xb8, 0x03, 0xf9,
		0x43, 0xfa, 0x3f, 0xa5, 0xc3, 0x94, 0x0a, 0x45, 0x3b, 0xfe, 0x45, 0xea, 0x91, 0x1b, 0x29, 0xa6,
		0x28, 0xa2, 0xa7, 0x1d, 0xa9, 0x70, 0xd0, 0x51, 0x72, 0xc2, 0xba, 0x1a, 0x49, 0xab, 0x5f, 0x8c,
		0x5b, 0xb4, 0x3e, 0x69, 0x50, 0x6f, 0xee, 0xe7, 0x68, 0xfe, 0x81, 0x37, 0x45, 0xa4, 0x28, 0xb9,
		0xf3, 0x4e, 0xee, 0x02, 0xaf, 0x25, 0xda, 0x5e, 0xad, 0x27, 0x2e, 0x47, 0x0d, 0x3e, 0xbd, 0xf1,
		0xea, 0xc1, 0x63, 0xe5, 0x7a, 0xdc, 0xdc, 0xde, 0xc5, 0xb4, 0xb9, 0x93, 0x3b, 0xaf, 0xd6, 0xfd,
		0xde, 0x12, 0xed, 0xc6, 0x40, 0x35, 0x43, 0xee, 0xb5, 0xe2, 0xb6, 0x1e, 0xbf, 0x78, 0xd7, 0xe3,
		0x86, 0xad, 0x25, 0x4d, 0x9d, 0x7a, 0xe2, 0x5d, 0xc6, 0x2d, 0xfd, 0x0e, 0x81, 0x89, 0xae, 0x25,
		0x44, 0x42, 0xe3, 0x88, 0xe1, 0x26, 0x47, 0xb3, 0xa9, 0xe7, 0x80, 0x8a, 0x7f, 0xda, 0xe7, 0x22,
		0x52, 0xa3, 0x01, 0x4d, 0x2a, 0x50, 0xdb, 0x5f, 0x85, 0x3c, 0xeb, 0xf3, 0x11, 0x39, 0x25, 0x56,
		0x9d, 0xdf, 0xfe, 0xca, 0x9e, 0x5e, 0x59, 0x56, 0xf8, 0x58, 0x2a, 0x55, 0xaa, 0xa5, 0xd2, 0x41,
		0xf5, 0xb0, 0x7a, 0x70, 0x54, 0x2e, 0x17, 0x2a, 0x05, 0x42, 0x67, 0x20, 0xd8, 0x8d, 0x11, 0x8f,
		0xe7, 0xdd, 0x93, 0xd1, 0xd0, 0x93, 0x83, 0x7e, 0x9f, 0xa2, 0x69, 0xd7, 0x11, 0x0f, 0x49, 0x1d,
		0x67, 0x40, 0x25, 0x62, 0x10, 0x25, 0x51, 0xdb, 0x4d, 0x9e, 0x08, 0xd1, 0xa6, 0xad, 0xa3, 0x4b,
		0x34, 0x88, 0x92, 0x7e, 0x5a, 0xa2, 0xd7, 0x02, 0xcd, 0xe1, 0x8d, 0x5a, 0x58, 0xdb, 0xa6, 0x70,
		0x46, 0x20, 0x78, 0x99, 0x1e, 0xb4, 0xf4, 0xc6, 0x28, 0x7d, 0x91, 0x41, 0xcf, 0x37, 0x6b, 0x8a,
		0x45, 0xd3, 0xc9, 0xd8, 0x78, 0xc1, 0x86, 0x35, 0xf2, 0x7d, 0x47, 0xe8, 0x2a, 0x65, 0x4f, 0x63,
		0x06, 0x46, 0x67, 0xc6, 0x45, 0x7a, 0x86, 0x45, 0x68, 0x46, 0x45, 0x68, 0x06, 0xa5, 0xcb, 0x8d,
		0x89, 0x50, 0x09, 0x63, 0x29, 0x84, 0x46, 0xbe, 0x60, 0x16, 0x4f, 0xd0, 0xc3, 0x0a, 0xf2, 0xc7,
		0xe4, 0x7c, 0xbf, 0x31, 0xe7, 0xb0, 0xa1, 0x3b, 0x5c, 0x18, 0x18, 0x26, 0x34, 0x04, 0x08, 0x53,
		0x02, 0x43, 0xbe, 0x21, 0x21, 0x3f, 0xc7, 0xcc, 0xe7, 0x9b, 0x72, 0x72, 0x7d, 0x5d, 0x2e, 0x6f,
		0x92, 0xab, 0xe7, 0xe8, 0xe3, 0xe4, 0x7d, 0x3b, 0x1f, 0xa7, 0xce, 0xde, 0xc5, 0x72, 0x70, 0x2f,
		0x7b, 0x3a, 0x9e, 0x1c, 0xd6, 0xed, 0x86, 0x3c, 0x8a, 0x72, 0x73, 0xb0, 0x64, 0xd9, 0x66, 0xca,
		0x82, 0x9c, 0x82, 0x4a, 0xbe, 0x9b, 0xa5, 0x72, 0xdf, 0xfc, 0xa4, 0x63, 0x33, 0x93, 0xde, 0xcd,
		0x49, 0xba, 0x96, 0xcb, 0x6a, 0xdf, 0x3c, 0xa4, 0x7d, 0xed, 0xaa, 0xf6, 0xcd, 0x3d, 0xdb, 0x45,
		0x77, 0x72, 0xdf, 0x4c, 0x93, 0xf8, 0x6d, 0x9f, 0xb3, 0x5e, 0xc8, 0x7b, 0x79, 0x3a, 0xed, 0x74,
		0xb3, 0x4b, 0x35, 0xc7, 0xef, 0x6c, 0x4e, 0x18, 0xdd, 0x87, 0x0f, 0xe3, 0x55, 0x76, 0x6e, 0x0a,
		0x83, 0xc0, 0x20, 0x56, 0x60, 0x83, 0x4c, 0xf1, 0xfc, 0x69, 0x43, 0x9e, 0xcb, 0x23, 0x93, 0x41,
		0x0a, 0xae, 0x00, 0xae, 0x00, 0xae, 0x00, 0xae, 0x40, 0x87, 0x2b, 0x9c, 0x8a, 0x7c, 0x33, 0x8e,
		0xfa, 0x26, 0x8c, 0x54, 0x26, 0x8e, 0x9a, 0x26, 0x90, 0xda, 0xc0, 0x41, 0x27, 0x48, 0xd0, 0x00,
		0x0b, 0xdd, 0xa0, 0x41, 0x06, 0x3c, 0xc8, 0x80, 0x08, 0x19, 0x30, 0xc9, 0x17, 0x54, 0x72, 0x06,
		0x17, 0x7d, 0x13, 0xd2, 0x94, 0xdf, 0x8b, 0x40, 0x53, 0x94, 0x7f, 0x43, 0xff, 0x8f, 0x34, 0x7c,
		0xf7, 0xa4, 0xed, 0xf5, 0x54, 0x09, 0xd0, 0xb8, 0x1a, 0x63, 0xd6, 0xf3, 0x8f, 0x25, 0x8d, 0x7d,
		0x9f, 0x1a, 0x03, 0x1f, 0x35, 0xda, 0xd0, 0x64, 0x4a, 0xf1, 0x50, 0x6a, 0x2f, 0x1a, 0x61, 0xef,
		0xdd, 0x1c, 0x38, 0x47, 0xb7, 0x2f, 0x37, 0x05, 0xe7, 0xe8, 0x76, 0x7c, 0x5b, 0x88, 0x5f, 0x7e,
		0x15, 0x87, 0x2f, 0xc5, 0x9b, 0x03, 0xa7, 0x34, 0x79, 0x5a, 0x2c, 0xdf, 0x1c, 0x38, 0xe5, 0xdb,
		0xfd, 0xbd, 0xbf, 0xfe, 0xfa, 0xb0, 0xea, 0x67, 0xf6, 0x7f, 0x1d, 0x0e, 0xf5, 0xad, 0xe3, 0xbc,
		0xd5, 0xd9, 0xcd, 0x8d, 0xcb, 0xfa, 0x7f, 0xc9, 0xf4, 0xf5, 0xdf, 0x7b, 0x79, 0xf5, 0xf6, 0xfe,
		0x7f, 0x34, 0xf6, 0xf7, 0x2e, 0x2d, 0xb9, 0xa3, 0x11, 0xd6, 0x2b, 0x08, 0xeb, 0xd4, 0xc2, 0x7a,
		0xec, 0xb5, 0xcc, 0xe9, 0xd5, 0x9c, 0xcf, 0xb7, 0xbf, 0x0a, 0xef, 0x4b, 0xc3, 0xe3, 0xfd, 0x5f,
		0xd5, 0xe1, 0xfc, 0xc3, 0x97, 0x45, 0x6f, 0x2b, 0xbc, 0xaf, 0x0e, 0x8f, 0x97, 0xfc, 0xa6, 0x32,
		0x3c, 0xfe, 0xcd, 0xbf, 0x51, 0x1e, 0xee, 0xa5, 0xde, 0x3a, 0x7a, 0x5e, 0x5c, 0xf6, 0x81, 0xd2,
		0x92, 0x0f, 0x1c, 0x2e, 0xfb, 0xc0, 0xe1, 0x92, 0x0f, 0x2c, 0x35, 0xa9, 0xb8, 0xe4, 0x03, 0xe5,
		0xe1, 0x4b, 0xea, 0xfd, 0x7b, 0x8b, 0xdf, 0x5a, 0x19, 0xee, 0xbf, 0x2c, 0xfb, 0x5d, 0x75, 0xf8,
		0x72, 0xbc, 0xbf, 0x0f, 0xa0, 0x23, 0x03, 0x74, 0x18, 0xfe, 0xf9, 0x0f, 0xff, 0xdd, 0x03, 0xfe,
		0x77, 0xdb, 0xfd, 0xff, 0x89, 0x95, 0x8e, 0x6b, 0xea, 0x59, 0x58, 0xe9, 0x98, 0x5a, 0xe9, 0x98,
		0x77, 0x21, 0x1c, 0x92, 0xeb, 0x1b, 0x73, 0xac, 0x51, 0x93, 0xc3, 0xb2, 0x84, 0x77, 0x06, 0xfb,
		0xea, 0x74, 0xdb, 0x61, 0xce, 0xe9, 0xa7, 0x7c, 0x37, 0x18, 0xe6, 0xbf, 0x91, 0x90, 0xc4, 0x86,
		0x41, 0x0d, 0x1b, 0x03, 0x35, 0x6c, 0x00, 0xcc, 0xda, 0x41, 0x72, 0x06, 0x31, 0xca, 0xe0, 0x65,
		0xe7, 0xb2, 0x00, 0x8b, 0x1c, 0x5c, 0x65, 0x0b, 0x54, 0xd9, 0xc1, 0x47, 0x36, 0x7f, 0x39, 0x23,
		0x7f, 0xcb, 0xcb, 0xcf, 0x08, 0xfa, 0x57, 0x86, 0x6e, 0x45, 0xc8, 0x9d, 0xb2, 0xf1, 0xa2, 0xcd,
		0x8f, 0xf1, 0xcd, 0xfe, 0xc5, 0x0d, 0x7b, 0x4b, 0x1e, 0x75, 0xe1, 0xed, 0x9f, 0xf7, 0x3c, 0x3b,
		0x01, 0x2b, 0x43, 0xcf, 0x9e, 0xaa, 0xf1, 0x1f, 0x3e, 0x24, 0x1e, 0xe7, 0x8c, 0x46, 0xbe, 0xf5,
		0xbf, 0xd6, 0xff, 0xf8, 0x1d, 0xa7, 0x7d, 0x17, 0xa8, 0xe3, 0x7a, 0xf3, 0x5b, 0xc5, 0xbb, 0xbe,
		0xa8, 0x7f, 0xaa, 0x5d, 0x5e, 0xfd, 0x4f, 0x96, 0x8e, 0x97, 0xd3, 0xea, 0x9a, 0xd7, 0xab, 0x68,
		0xe2, 0x7e, 0xcb, 0x98, 0x0d, 0xe5, 0xbd, 0x56, 0xe6, 0xcd, 0x9a, 0x98, 0xdf, 0xef, 0xd8, 0x77,
		0x06, 0xb2, 0x4d, 0xfb, 0x94, 0x47, 0x9d, 0x50, 0x04, 0xb9, 0x50, 0xcd, 0xc4, 0x59, 0xea, 0xb2,
		0xd3, 0x1f, 0x74, 0xb9, 0xa5, 0xee, 0x45, 0x64, 0x75, 0x7c, 0xa9, 0x98, 0x90, 0x3c, 0xb4, 0x7a,
		0x7e, 0x68, 0xd5, 0x9b, 0x8f, 0x15, 0x6b, 0x82, 0x56, 0x56, 0xab, 0x7e, 0x92, 0xf5, 0xd8, 0xca,
		0x71, 0x41, 0xda, 0x6b, 0xb7, 0xe9, 0xbe, 0x6a, 0xf6, 0x1c, 0x08, 0xae, 0x8e, 0xd5, 0x66, 0x6f,
		0xbc, 0x68, 0x95, 0x1e, 0x07, 0xf3, 0xcd, 0xf4, 0xaf, 0xde, 0x92, 0xe6, 0x1a, 0x19, 0x33, 0x72,
		0x32, 0x4c, 0x3c, 0x03, 0xaf, 0xd7, 0xce, 0xbb, 0x37, 0xeb, 0xb9, 0x9b, 0x1b, 0xf9, 0x1b, 0x1c,
		0xa3, 0x76, 0xbf, 0xf8, 0x18, 0x48, 0x87, 0x3f, 0x06, 0x9b, 0x1f, 0x9f, 0xb3, 0x3d, 0x84, 0xb3,
		0xef, 0xd8, 0xb0, 0x77, 0x65, 0xb3, 0x0b, 0x2b, 0xb3, 0x05, 0xf5, 0x59, 0x2e, 0x98, 0xcf, 0x67,
		0x41, 0x7c, 0xd6, 0xfc, 0x22, 0xb7, 0x05, 0xed, 0xb9, 0x51, 0x88, 0xdc, 0x16, 0xa4, 0xd3, 0x9e,
		0x73, 0x67, 0xb5, 0x2b, 0xc9, 0xee, 0x8f, 0xdb, 0x34, 0xbb, 0x11, 0x99, 0x44, 0xb1, 0xc9, 0x17,
		0x65, 0x34, 0x4c, 0xb2, 0xdd, 0x50, 0x3a, 0x0b, 0x69, 0xc5, 0x8c, 0xbe, 0x20, 0x87, 0xbd, 0x40,
		0xf9, 0xee, 0xf9, 0xd1, 0xa1, 0x3e, 0xe4, 0xb2, 0x87, 0x47, 0xaf, 0xfe, 0x90, 0xc7, 0x9e, 0x1c,
		0xb3, 0x44, 0xfb, 0xac, 0x37, 0x6c, 0xda, 0x93, 0x9a, 0x6f, 0xb9, 0xc9, 0x21, 0xb9, 0xd4, 0x98,
		0xcb, 0x69, 0x07, 0x7e, 0x6e, 0x9b, 0x2b, 0xf3, 0xdc, 0x4c, 0xa9, 0x67, 0xf3, 0x64, 0xde, 0x9b,
		0x25, 0xb5, 0x6d, 0x8e, 0xd4, 0xb6, 0x19, 0x52, 0xdb, 0xe6, 0x47, 0xb3, 0x97, 0xef, 0xe4, 0xb5,
		0x63, 0x7e, 0x1c, 0x18, 0x9d, 0xae, 0x88, 0x94, 0x90, 0x77, 0x03, 0x11, 0xdd, 0xf3, 0x30, 0xff,
		0x32, 0x29, 0x8b, 0x8c, 0x40, 0xd1, 0x14, 0xd3, 0x42, 0xb8, 0xde, 0x50, 0xae, 0x2b, 0xa4, 0x6b,
		0x0f, 0xed, 0xda, 0x43, 0xbc, 0xf6, 0x50, 0x9f, 0x4f, 0xc8, 0xcf, 0x29, 0xf4, 0xe7, 0x0e, 0x01,
		0x24, 0xa0, 0x80, 0x10, 0x24, 0xcc, 0x43, 0x03, 0x4a, 0xa7, 0x6c, 0x3b, 0x64, 0xe8, 0x86, 0x0e,
		0x32, 0x10, 0x42, 0x06, 0x4a, 0xc8, 0x40, 0x4a, 0xbe, 0xd0, 0x92, 0x33, 0xc4, 0x24, 0xad, 0xac,
		0xbf, 0x74, 0x4a, 0xfe, 0x35, 0x3d, 0x53, 0x33, 0x80, 0xaa, 0x86, 0xef, 0x4e, 0xd5, 0xf8, 0x5c,
		0x04, 0x7b, 0x5b, 0x3d, 0xf4, 0x72, 0x58, 0xf8, 0xf8, 0xef, 0xc4, 0x87, 0xf7, 0x78, 0xc8, 0x65,
		0x67, 0xa7, 0x4b, 0xd8, 0xb4, 0x3e, 0x7f, 0xaa, 0x96, 0x0e, 0x8b, 0xc7, 0xd6, 0xc9, 0x97, 0xa6,
		0xf5, 0xb5, 0x79, 0x7e, 0xe9, 0x9c, 0xb0, 0x88, 0x77, 0xad, 0x33, 0x75, 0xcf, 0x43, 0xc9, 0x95,
		0xf5, 0xad, 0x79, 0xa1, 0xb3, 0x06, 0x82, 0x66, 0x6c, 0x5e, 0x84, 0xd1, 0xb3, 0x71, 0xa3, 0xf9,
		0x9c, 0x4b, 0x2a, 0x70, 0xbd, 0x10, 0xb6, 0x7f, 0x6b, 0x60, 0xed, 0xda, 0x61, 0x84, 0xd8, 0x59,
		0x6d, 0x1e, 0x5e, 0xe5, 0x5c, 0x44, 0x3a, 0x15, 0xa1, 0xf3, 0xde, 0x62, 0x6c, 0xe5, 0xaf, 0x8f,
		0x62, 0x12, 0x8c, 0x49, 0x30, 0x26, 0xc1, 0x98, 0x04, 0xeb, 0x98, 0x89, 0xe4, 0xad, 0xb7, 0xce,
		0xa6, 0x1f, 0x04, 0x74, 0xd7, 0x54, 0x0c, 0xd2, 0xaf, 0xbf, 0xce, 0x43, 0x90, 0xa6, 0x73, 0x82,
		0xb5, 0x41, 0x11, 0x05, 0x48, 0xa2, 0x05, 0x4d, 0x94, 0xe7, 0x82, 0x5a, 0xa1, 0xca, 0x8c, 0x89,
		0xa0, 0x4e, 0xe8, 0xd2, 0x3c, 0xdd, 0xd3, 0x14, 0x39, 0xb4, 0xe9, 0xba, 0x84, 0xe1, 0xc4, 0xd2,
		0x5c, 0x2b, 0x7b, 0xbe, 0x73, 0xf4, 0xd6, 0x13, 0xd4, 0x1b, 0x40, 0xe7, 0xa6, 0xb7, 0xa1, 0x90,
		0x77, 0x9a, 0x23, 0xa8, 0x45, 0xa4, 0xdc, 0xea, 0x0c, 0xfc, 0x89, 0x14, 0x9e, 0x4c, 0x0c, 0x4a,
		0xd5, 0x4c, 0x1e, 0x17, 0x72, 0xbc, 0x29, 0x38, 0xe5, 0xc9, 0xcf, 0xa5, 0xe1, 0x4b, 0x65, 0x56,
		0x3c, 0xf9, 0xd7, 0xe1, 0xf0, 0xa5, 0x52, 0x7e, 0xf5, 0x73, 0x71, 0xf4, 0xf3, 0xe8, 0x41, 0x71,
		0x52, 0x5d, 0xb9, 0x52, 0x2e, 0x1f, 0x8e, 0xeb, 0x2b, 0x1f, 0x2f, 0xfa, 0xe3, 0x1f, 0xe3, 0x3f,
		0x7e, 0x38, 0xf9, 0xf9, 0x68, 0xf8, 0x52, 0xba, 0x39, 0x28, 0x4c, 0x7e, 0xfa, 0x38, 0x7c, 0x29,
		0x15, 0x6f, 0x0e, 0x9c, 0x8f, 0x93, 0x9f, 0xab, 0xa3, 0x9f, 0x8f, 0x6e, 0x0e, 0x92, 0xb7, 0x57,
		0xe2, 0x07, 0xa5, 0x57, 0x6f, 0x29, 0x8f, 0x9f, 0x1c, 0xc5, 0xdf, 0x98, 0x18, 0x1c, 0x3f, 0x1a,
		0x59, 0x5d, 0x99, 0x59, 0x3d, 0x7e, 0x56, 0x9d, 0x7d, 0x5b, 0x31, 0x79, 0xf6, 0xea, 0x3b, 0x93,
		0x47, 0xe3, 0xbf, 0xa8, 0xb1, 0x48, 0xea, 0xf4, 0xba, 0xa5, 0x30, 0x6c, 0x29, 0x15, 0x4d, 0x4d,
		0xac, 0x5a, 0x50, 0x25, 0x1c, 0xa3, 0xf7, 0xcd, 0xe8, 0xd5, 0x59, 0xe4, 0x34, 0x19, 0xbf, 0x5a,
		0x2d, 0x18, 0xbe, 0x07, 0x20, 0x03, 0x90, 0x4d, 0x06, 0xe4, 0x8c, 0x0e, 0x3e, 0x38, 0xce, 0x32,
		0x76, 0x02, 0x35, 0x8d, 0x42, 0x4d, 0x13, 0x87, 0x18, 0xa0, 0x0d, 0xd0, 0x06, 0x68, 0x33, 0x7e,
		0xae, 0x69, 0x18, 0xa1, 0x06, 0x6a, 0x02, 0x35, 0x31, 0x7a, 0x01, 0xc8, 0x8b, 0x01, 0x19, 0x07,
		0x8a, 0x6c, 0xd5, 0x37, 0xe6, 0xbd, 0x64, 0x41, 0xd3, 0x41, 0x1c, 0xc9, 0xf7, 0xeb, 0xac, 0xf4,
		0x36, 0xab, 0xe0, 0xe5, 0x4e, 0xca, 0xe0, 0x8c, 0x17, 0xcf, 0x47, 0x8b, 0xd6, 0xd0, 0xbb, 0x3a,
		0xd6, 0xce, 0x59, 0xda, 0x0a, 0xc6, 0x9d, 0x17, 0xbf, 0x05, 0xf2, 0xec, 0x31, 0x90, 0xde, 0xb9,
		0xdf, 0x19, 0xbd, 0xa3, 0x15, 0xb7, 0xcc, 0xf8, 0xe5, 0xf4, 0x75, 0xc3, 0xe4, 0x79, 0x64, 0x47,
		0xfe, 0x3e, 0x99, 0xe7, 0xe2, 0x50, 0xf5, 0x1c, 0x70, 0xa7, 0x27, 0x1e, 0xb9, 0x23, 0x02, 0x27,
		0xd0, 0xb3, 0x64, 0x23, 0x99, 0xdf, 0x2c, 0x32, 0x06, 0x0b, 0x47, 0xb3, 0x65, 0xa1, 0x58, 0x38,
		0x8a, 0x85, 0xa3, 0x63, 0x43, 0xb0, 0x70, 0x74, 0xa7, 0x58, 0x98, 0xb6, 0x85, 0xa3, 0xb3, 0x28,
		0x1f, 0x53, 0x1e, 0xfd, 0x8b, 0x46, 0xe7, 0x0d, 0xd2, 0xbb, 0x60, 0xb4, 0x80, 0x05, 0xa3, 0x58,
		0x30, 0x4a, 0x02, 0x9a, 0xc8, 0x41, 0x14, 0x39, 0xa8, 0x22, 0x07, 0x59, 0x7a, 0x25, 0x1a, 0x5d,
		0x0b, 0x46, 0x75, 0x41, 0x59, 0x62, 0x00, 0x9f, 0x6c, 0x0a, 0x75, 0x14, 0xbb, 0xd3, 0xef, 0xae,
		0xd3, 0x20, 0xf6, 0xc6, 0x2a, 0xcd, 0x0e, 0xa2, 0x77, 0x37, 0x04, 0x19, 0x90, 0xa3, 0x04, 0x76,
		0x34, 0x41, 0x8f, 0x1a, 0xf8, 0x91, 0x05, 0x41, 0xb2, 0x60, 0x48, 0x16, 0x14, 0xf5, 0x82, 0xa3,
		0x66, 0x90, 0x4c, 0x7a, 0x45, 0xfb, 0xee, 0x8a, 0x54, 0xdc, 0xd1, 0x57, 0x45, 0x67, 0xe9, 0x1c,
		0xac, 0x4a, 0x63, 0x5d, 0xc3, 0xdb, 0x2a, 0x3b, 0x6f, 0xf0, 0x7c, 0xa7, 0xc7, 0x30, 0x81, 0xf2,
		0x3b, 0x29, 0x9b, 0xf4, 0x97, 0xe3, 0x99, 0xbf, 0x68, 0x00, 0xa7, 0x65, 0x50, 0xb9, 0x1e, 0xea,
		0x24, 0x64, 0x11, 0x19, 0xa1, 0x52, 0xce, 0xc7, 0x18, 0x5e, 0xb2, 0x90, 0x9f, 0xd0, 0x2e, 0xf7,
		0x43, 0x8b, 0xc1, 0x10, 0x41, 0x01, 0xda, 0x61, 0xee, 0xa8, 0x70, 0x58, 0x39, 0xb6, 0xea, 0x4d,
		0x6b, 0x3c, 0xd3, 0xb3, 0x6a, 0xdd, 0x47, 0x1e, 0x2a, 0x11, 0xc5, 0xa7, 0xf0, 0x5b, 0x42, 0xbe,
		0x19, 0x59, 0xd6, 0xde, 0xd9, 0xb7, 0xe6, 0xc5, 0x3e, 0x22, 0x1f, 0x22, 0x9f, 0x8e, 0xc8, 0xb7,
		0xd6, 0x58, 0x45, 0x30, 0x24, 0x66, 0xc5, 0xae, 0x2e, 0x0a, 0xd4, 0x08, 0x43, 0xb6, 0xbe, 0x45,
		0x33, 0x4b, 0xb1, 0x47, 0xd7, 0xd2, 0x99, 0x65, 0x73, 0x69, 0x48, 0xbe, 0xd3, 0xf9, 0x3c, 0x24,
		0x5f, 0xb3, 0x38, 0x07, 0x24, 0xdf, 0x3f, 0x22, 0x16, 0x90, 0x7c, 0x89, 0x4c, 0x94, 0x20, 0xf9,
		0xfe, 0x06, 0x4c, 0xd1, 0x94, 0x7c, 0x67, 0x60, 0x0e, 0xbd, 0x17, 0x7a, 0x2f, 0x84, 0x10, 0x90,
		0x12, 0x08, 0x21, 0x10, 0x42, 0x20, 0x84, 0x40, 0x08, 0xa1, 0x2a, 0x84, 0x38, 0x7d, 0x2e, 0xef,
		0x62, 0x16, 0x43, 0x4d, 0x0f, 0x99, 0x5a, 0x06, 0x59, 0x04, 0xb2, 0x08, 0x64, 0x11, 0xc8, 0x22,
		0x90, 0x45, 0x20, 0x8b, 0x40, 0x16, 0x31, 0x5b, 0x16, 0x99, 0x62, 0x3a, 0xd4, 0x11, 0xa8, 0x23,
		0x50, 0x47, 0xc0, 0x4d, 0xa0, 0x8e, 0x40, 0x1d, 0x81, 0x3a, 0x02, 0x75, 0x84, 0x98, 0x3a, 0x12,
		0x30, 0x75, 0x1f, 0xd1, 0x91, 0x44, 0xc6, 0xe6, 0xd0, 0xd0, 0x41, 0x0a, 0xd0, 0x41, 0xa0, 0x83,
		0x40, 0x07, 0x81, 0x0e, 0x02, 0x1d, 0x44, 0x57, 0xaf, 0xe8, 0xde, 0x3e, 0xff, 0x06, 0x26, 0xe9,
		0xb8, 0xf7, 0x6b, 0xb4, 0xa4, 0xe2, 0xd9, 0x34, 0x40, 0x93, 0x1c, 0x78, 0x52, 0x04, 0x51, 0xda,
		0x60, 0x6a, 0xd2, 0x04, 0x9e, 0x14, 0xb8, 0x9a, 0x39, 0x7b, 0xa7, 0x04, 0xb6, 0xc4, 0x26, 0xe4,
		0x44, 0x22, 0x17, 0x15, 0x10, 0x9e, 0x81, 0x31, 0xe7, 0xa1, 0x23, 0x02, 0x7a, 0x91, 0x21, 0xc1,
		0xe5, 0x89, 0x81, 0xc4, 0xdc, 0x8e, 0x46, 0x7e, 0x9f, 0x3c, 0x54, 0x53, 0x86, 0x6c, 0x33, 0xa0,
		0x9b, 0x3a, 0x84, 0x1b, 0x03, 0xe5, 0xc6, 0x40, 0xba, 0x31, 0xd0, 0x4e, 0x0b, 0xe2, 0x89, 0x41,
		0x7d, 0xd2, 0x8b, 0x64, 0xd6, 0x1f, 0x2c, 0x8d, 0x7b, 0x74, 0xd6, 0x23, 0x2c, 0x9d, 0x09, 0x57,
		0x09, 0xda, 0x96, 0x5a, 0xaf, 0x30, 0xa5, 0x2a, 0xef, 0xe0, 0x9c, 0xc4, 0x1d, 0x73, 0xcc, 0x2a,
		0x03, 0xa6, 0xee, 0x1d, 0xd1, 0x25, 0xce, 0x7d, 0xa7, 0x56, 0x82, 0x00, 0x83, 0x00, 0x83, 0x00,
		0x83, 0x00, 0x83, 0x00, 0x83, 0x00, 0x83, 0x00, 0x83, 0x00, 0x53, 0x25, 0xc0, 0x53, 0xbe, 0x02,
		0x16, 0x4c, 0x9e, 0x05, 0x47, 0x31, 0xa2, 0x3a, 0xac, 0xdb, 0x0d, 0x79, 0x14, 0x39, 0x3d, 0xf6,
		0x20, 0xfa, 0xcf, 0x74, 0xe9, 0xf0, 0x62, 0x73, 0xc1, 0x8b, 0xc1, 0x8b, 0xc1, 0x8b, 0xc1, 0x8b,
		0xc1, 0x8b, 0xc1, 0x8b, 0xc1, 0x8b, 0xc1, 0x8b, 0x09, 0xf2, 0xe2, 0xc5, 0xc4, 0x05, 0x04, 0xd9,
		0x14, 0x82, 0xbc, 0xe0, 0xd0, 0x5e, 0xf2, 0x2c, 0x79, 0x91, 0xcd, 0xa0, 0xca, 0xa0, 0xca, 0xa0,
		0xca, 0xa0, 0xca, 0xa0, 0xca, 0xa0, 0xca, 0xa0, 0xca, 0xa0, 0xca, 0x74, 0xa9, 0xf2, 0x22, 0xf6,
		0x02, 0xbe, 0x4c, 0x9f, 0x2f, 0x8f, 0xfa, 0x90, 0x30, 0x35, 0x8e, 0xcd, 0xa3, 0xc9, 0x82, 0x0b,
		0x60, 0xc1, 0x60, 0xc1, 0x60, 0xc1, 0x60, 0xc1, 0x60, 0xc1, 0x40, 0xd6, 0xc5, 0xbd, 0x48, 0x6d,
		0xf3, 0x50, 0x62, 0x18, 0x9b, 0x96, 0x88, 0xe9, 0x3a, 0xca, 0x77, 0x02, 0xce, 0x43, 0xba, 0xc1,
		0x65, 0x1a, 0xa2, 0x17, 0xd8, 0x4c, 0xd4, 0x79, 0x69, 0xca, 0x64, 0xe4, 0x89, 0x82, 0x09, 0x84,
		0xc1, 0x2c, 0xe2, 0x60, 0x0a, 0x81, 0x30, 0x8e, 0x48, 0x18, 0x47, 0x28, 0x8c, 0x23, 0x16, 0x34,
		0x09, 0x06, 0x51, 0xa2, 0x91, 0xf4, 0x2e, 0x59, 0xd9, 0x2d, 0x15, 0x37, 0x45, 0x30, 0xcd, 0xae,
		0x52, 0x8e, 0x9b, 0xd3, 0xa9, 0xfe, 0x11, 0x61, 0x1b, 0x27, 0x7d, 0x7e, 0x43, 0x3a, 0xee, 0xd0,
		0xc6, 0x9d, 0xb9, 0x91, 0xf9, 0x58, 0x32, 0x60, 0x6c, 0xa6, 0xc6, 0xe8, 0x47, 0x03, 0x6c, 0x6d,
		0x32, 0xa5, 0x78, 0x28, 0xc9, 0x0f, 0xd7, 0xc4, 0xe0, 0xbd, 0x9b, 0x03, 0xe7, 0xe8, 0xf6, 0xe5,
		0xa6, 0xe0, 0x1c, 0xdd, 0x8e, 0x6f, 0x0b, 0xf1, 0xcb, 0xaf, 0xe2, 0xf0, 0xa5, 0x78, 0x73, 0xe0,
		0x94, 0x26, 0x4f, 0x8b, 0xe5, 0x9b, 0x03, 0xa7, 0x7c, 0xbb, 0xbf, 0xf7, 0xd7, 0x5f, 0x1f, 0x56,
		0xfd, 0xcc, 0xfe, 0xaf, 0xc3, 0xa1, 0x4d, 0xbe, 0x39, 0x6e, 0x4d, 0x18, 0x5e, 0x8d, 0xcb, 0xfa,
		0x7f, 0x8d, 0x1b, 0x63, 0x7f, 0xef, 0xe5, 0x35, 0xca, 0xf6, 0xff, 0x63, 0xc0, 0x38, 0x23, 0x6d,
		0xe1, 0xf0, 0x3d, 0x60, 0x76, 0x63, 0x30, 0x5b, 0x01, 0xcc, 0x02, 0x66, 0xc7, 0x30, 0x1b, 0x47,
		0x33, 0xe6, 0xf4, 0x6a, 0xce, 0xe7, 0xdb, 0x5f, 0x85, 0xf7, 0xa5, 0xe1, 0xf1, 0xfe, 0xaf, 0xea,
		0x70, 0xfe, 0xe1, 0xcb, 0xa2, 0xb7, 0x15, 0xde, 0x57, 0x87, 0xc7, 0x4b, 0x7e, 0x53, 0x19, 0x1e,
		0xff, 0xe6, 0xdf, 0x28, 0x0f, 0xf7, 0x52, 0x6f, 0x1d, 0x3d, 0x2f, 0x2e, 0xfb, 0x40, 0x69, 0xc9,
		0x07, 0x0e, 0x97, 0x7d, 0xe0, 0x70, 0xc9, 0x07, 0x96, 0x9a, 0x54, 0x5c, 0xf2, 0x81, 0xf2, 0xf0,
		0x25, 0xf5, 0xfe, 0xbd, 0xc5, 0x6f, 0xad, 0x0c, 0xf7, 0x5f, 0x96, 0xfd, 0xae, 0x3a, 0x7c, 0x39,
		0xde, 0xdf, 0x07, 0xf1, 0xd8, 0x79, 0xe2, 0x01, 0xb7, 0xcb, 0xdf, 0xed, 0x40, 0xc4, 0xb6, 0x52,
		0x17, 0xa4, 0xdb, 0x6e, 0x54, 0x15, 0xcb, 0x73, 0x11, 0xa9, 0x9a, 0x52, 0x21, 0x6d, 0xd5, 0xf2,
		0xab, 0x90, 0x67, 0xfd, 0xf8, 0x3c, 0x8d, 0x88, 0x6e, 0xde, 0x6c, 0x6c, 0x29, 0x7b, 0x7a, 0x65,
		0x69, 0xe1, 0x63, 0xa9, 0x54, 0xa9, 0x96, 0x4a, 0x07, 0xd5, 0xc3, 0xea, 0xc1, 0x51, 0xb9, 0x5c,
		0xa8, 0x14, 0xca, 0x84, 0x8d, 0x6f, 0x84, 0x5d, 0x1e, 0xf2, 0xee, 0xc9, 0xb3, 0x7d, 0x6c, 0xc9,
		0x41, 0xbf, 0x6f, 0x82, 0xa9, 0xd7, 0x51, 0x9c, 0x3c, 0xef, 0xb1, 0x7e, 0xc4, 0xdf, 0x21, 0x52,
		0x1a, 0x1a, 0x8b, 0x6c, 0xa6, 0x54, 0xe8, 0x08, 0xd9, 0xe5, 0x4f, 0x06, 0xac, 0x84, 0x98, 0xd9,
		0x8a, 0x15, 0x10, 0xeb, 0x98, 0x87, 0x15, 0x10, 0x1b, 0x1c, 0x8d, 0x58, 0x01, 0xb1, 0x51, 0xcf,
		0xc1, 0x0a, 0x88, 0x8c, 0x0d, 0xc6, 0x0a, 0x88, 0x6d, 0x9e, 0x4f, 0x98, 0xb3, 0x02, 0x82, 0xee,
		0x06, 0xa4, 0x79, 0x18, 0xa7, 0xb8, 0x11, 0x69, 0x06, 0x95, 0xb3, 0x0d, 0x49, 0xff, 0xfa, 0x2f,
		0x26, 0x4e, 0x11, 0x57, 0x51, 0x72, 0x37, 0x3d, 0xb8, 0x36, 0x26, 0x53, 0xa0, 0xef, 0xc6, 0xd2,
		0xf7, 0x36, 0xeb, 0xfc, 0x18, 0x04, 0xf4, 0xa9, 0xfb, 0xc4, 0x4e, 0xd0, 0x76, 0xd0, 0x76, 0xd0,
		0x76, 0xd0, 0x76, 0xd0, 0x76, 0xd0, 0x76, 0xd0, 0x76, 0xa3, 0x68, 0x7b, 0xdb, 0xf7, 0xfb, 0x9c,
		0x49, 0x13, 0x68, 0x7b, 0x01, 0x84, 0xd6, 0x5c, 0x42, 0xcb, 0x23, 0x45, 0xea, 0xdc, 0xcd, 0xe5,
		0x0e, 0x31, 0xb5, 0x14, 0xa4, 0x16, 0xa4, 0x16, 0xa4, 0x16, 0xa4, 0x16, 0xa4, 0x16, 0xa4, 0x16,
		0xa4, 0x16, 0xa4, 0x16, 0xa4, 0x16, 0x4e, 0xf1, 0xb6, 0x0f, 0x3b, 0xfe, 0xc3, 0xc3, 0x40, 0x0a,
		0xf5, 0x6c, 0xca, 0x4a, 0x8b, 0x79, 0x83, 0x41, 0x71, 0x41, 0x71, 0x41, 0x71, 0x41, 0x71, 0x41,
		0x71, 0x41, 0x71, 0x41, 0x71, 0xb1, 0xdc, 0x22, 0x1b, 0x8a, 0xbb, 0x2d, 0xcb, 0x2d, 0xa6, 0xec,
		0x49, 0xf0, 0x28, 0xb9, 0x7f, 0xc6, 0x8a, 0x8b, 0xed, 0xe0, 0xf2, 0x3c, 0x12, 0xf4, 0xf9, 0xfb,
		0xc8, 0x48, 0x70, 0x76, 0x70, 0x76, 0x70, 0x76, 0x70, 0x76, 0x70, 0x76, 0x70, 0x76, 0x70, 0x76,
		0xa3, 0x38, 0x3b, 0x5d, 0xf8, 0xb6, 0x0c, 0x29, 0x09, 0x62, 0x9f, 0x73, 0x79, 0x17, 0x33, 0x76,
		0xd4, 0x87, 0xfb, 0xc3, 0x96, 0xfc, 0x2a, 0x24, 0x79, 0x6c, 0x4c, 0x8c, 0xfd, 0xc6, 0xfa, 0x83,
		0x91, 0x0b, 0x15, 0x0f, 0xde, 0x9b, 0x61, 0xf0, 0xe7, 0x90, 0x75, 0x94, 0xf0, 0xe5, 0xa9, 0xb8,
		0x13, 0xd4, 0x37, 0x59, 0xbf, 0x8d, 0x55, 0xfc, 0x8e, 0x29, 0xf1, 0xc8, 0x49, 0xef, 0x01, 0x36,
		0x00, 0x96, 0xde, 0xfa, 0x1a, 0x7b, 0x82, 0xaf, 0xc1, 0xd7, 0xcc, 0xf7, 0x35, 0xd4, 0x50, 0x59,
		0xeb, 0xba, 0xa5, 0xad, 0x80, 0x1a, 0x51, 0xe6, 0xc9, 0x7e, 0x55, 0x7d, 0xe8, 0xff, 0xb1, 0xd1,
		0xd5, 0xeb, 0x74, 0xb5, 0x49, 0x65, 0xbd, 0xec, 0xbf, 0x5f, 0x77, 0x38, 0xe1, 0x02, 0x53, 0xb7,
		0x50, 0xfd, 0x4d, 0x25, 0x6a, 0x36, 0x7f, 0x52, 0x8e, 0x71, 0xab, 0x78, 0x16, 0x19, 0x8d, 0xac,
		0xc0, 0x3a, 0xe6, 0x21, 0x2b, 0xb0, 0xc1, 0x61, 0x89, 0xac, 0xc0, 0x46, 0x3d, 0x07, 0x59, 0x81,
		0x8c, 0x0d, 0x46, 0x56, 0x60, 0x8b, 0xe5, 0x17, 0xac, 0xe4, 0xc9, 0x00, 0xc6, 0xb7, 0x66, 0x25,
		0xcf, 0x6b, 0x06, 0x25, 0x78, 0xf4, 0xe6, 0x67, 0xac, 0xe8, 0xd9, 0x12, 0x6e, 0x7f, 0xc7, 0x14,
		0xff, 0xc9, 0x9e, 0x9d, 0x57, 0x47, 0x33, 0x91, 0xa7, 0xf6, 0x0b, 0x6c, 0x06, 0xb3, 0x07, 0xb3,
		0x07, 0xb3, 0x07, 0xb3, 0x07, 0xb3, 0x07, 0xb3, 0x07, 0xb3, 0x37, 0xed, 0x50, 0x48, 0xf2, 0x1e,
		0x8e, 0x33, 0x21, 0x37, 0x75, 0x99, 0x76, 0x26, 0xa4, 0x11, 0xe0, 0x63, 0xe1, 0xac, 0xaa, 0x8c,
		0x0d, 0xce, 0xeb, 0xb0, 0x3e, 0x37, 0xf9, 0x50, 0x71, 0xf2, 0xdb, 0xc3, 0x9b, 0x03, 0xa7, 0x78,
		0x8b, 0x23, 0x9b, 0x36, 0x33, 0xee, 0x70, 0x56, 0xe4, 0x7a, 0xc3, 0x0f, 0x67, 0x17, 0x6d, 0x29,
		0x51, 0x34, 0x13, 0x97, 0x2b, 0xc0, 0x65, 0xe0, 0x32, 0xce, 0x90, 0xd4, 0x79, 0x98, 0x9d, 0xbb,
		0x57, 0x18, 0xa1, 0xc8, 0xc7, 0x31, 0xac, 0x14, 0x6e, 0x53, 0x68, 0x13, 0xff, 0x17, 0xbc, 0x05,
		0xbc, 0x05, 0xde, 0x49, 0xd6, 0x3b, 0xc1, 0xea, 0xb6, 0x52, 0x94, 0xb4, 0xb0, 0xe0, 0xd2, 0x64,
		0x5e, 0x6e, 0x0b, 0xf9, 0xc8, 0xfa, 0xa2, 0xeb, 0x84, 0x9c, 0x45, 0xbe, 0xa4, 0x9f, 0x90, 0x9d,
		0xb3, 0x17, 0xc9, 0xd8, 0x75, 0xcc, 0x43, 0x32, 0x76, 0x83, 0x23, 0x12, 0xc9, 0xd8, 0x8d, 0x7a,
		0x0e, 0x92, 0xb1, 0x19, 0x1b, 0x8c, 0x64, 0xec, 0x16, 0x6b, 0x6c, 0x26, 0x25, 0x63, 0xbb, 0x5c,
		0x2a, 0xa1, 0x9e, 0x0d, 0x59, 0x6a, 0x49, 0xf9, 0x5c, 0xeb, 0xfa, 0xa4, 0x29, 0x4f, 0x58, 0x64,
		0x40, 0x88, 0x9f, 0x0e, 0x80, 0xfa, 0xc5, 0xb7, 0xda, 0x79, 0xfd, 0xd4, 0x6b, 0x35, 0xae, 0xaf,
		0xce, 0xbc, 0xd6, 0x59, 0xed, 0xb2, 0x71, 0x41, 0x3d, 0xda, 0xc7, 0x7b, 0xb1, 0x23, 0x23, 0x74,
		0x11, 0x43, 0x76, 0xb7, 0xcf, 0x8f, 0x86, 0xda, 0xa5, 0x77, 0xde, 0x68, 0x34, 0x6d, 0xd4, 0x39,
		0xd8, 0xd9, 0x21, 0xf0, 0xe9, 0xfc, 0xfa, 0xf2, 0xea, 0xac, 0x85, 0x71, 0xb0, 0xeb, 0xe3, 0xa0,
		0x71, 0xf1, 0xf9, 0xec, 0x14, 0x23, 0x60, 0x77, 0x47, 0x40, 0xa3, 0x55, 0xff, 0x52, 0xbf, 0xa8,
		0x5d, 0x35, 0x5a, 0x36, 0x6a, 0x71, 0xfc, 0xd1, 0x75, 0x8b, 0xf9, 0x9d, 0xe1, 0x56, 0x51, 0x54,
		0x8f, 0xfb, 0xac, 0xcd, 0xfb, 0xf4, 0x45, 0xe3, 0xb1, 0x99, 0xd0, 0x8a, 0xd7, 0x31, 0x0f, 0x5a,
		0xf1, 0x06, 0x07, 0x22, 0xb4, 0xe2, 0x8d, 0x7a, 0x0e, 0xb4, 0xe2, 0x8c, 0x0d, 0x86, 0x56, 0xbc,
		0xc5, 0xf3, 0x03, 0x83, 0xb4, 0xe2, 0x48, 0x85, 0x42, 0xde, 0x19, 0x51, 0xab, 0x17, 0x23, 0x70,
		0x85, 0x56, 0xe3, 0x4f, 0x2a, 0x64, 0xce, 0x40, 0x46, 0x8a, 0xb5, 0xfb, 0xc4, 0xc7, 0x62, 0xc8,
		0x7b, 0x3c, 0xe4, 0xb2, 0x83, 0x8d, 0x4f, 0x1b, 0x74, 0xec, 0xd6, 0xe7, 0x4f, 0xd5, 0xd2, 0x61,
		0xf1, 0xd8, 0x3a, 0xf9, 0xd2, 0xb4, 0xbe, 0x36, 0xcf, 0x2f, 0x9d, 0x13, 0x16, 0xf1, 0xae, 0x75,
		0xa6, 0xee, 0x79, 0x28, 0xb9, 0xb2, 0xbe, 0x35, 0x2f, 0x4c, 0x58, 0x79, 0x6d, 0x08, 0x65, 0x5a,
		0x44, 0x9d, 0x66, 0xe3, 0xda, 0x90, 0x2a, 0xad, 0xa6, 0xb1, 0xa8, 0x85, 0x6c, 0xea, 0xb7, 0x06,
		0x3e, 0x34, 0xaf, 0x2d, 0xb5, 0x0e, 0x2b, 0x26, 0x8d, 0xe5, 0x2d, 0x63, 0x31, 0xa9, 0x68, 0x88,
		0xe8, 0x55, 0x84, 0xea, 0xb5, 0x96, 0x79, 0x50, 0xbd, 0x36, 0x38, 0x12, 0xa1, 0x7a, 0x65, 0x44,
		0xdd, 0xa0, 0x7a, 0x65, 0xce, 0xd3, 0xa0, 0x7a, 0x6d, 0x9b, 0xe6, 0x00, 0xd5, 0x6b, 0xe3, 0x28,
		0x0e, 0xd5, 0x6b, 0xa5, 0x56, 0x83, 0xea, 0x95, 0xc5, 0x05, 0xd5, 0x0b, 0x94, 0xe9, 0xf7, 0xa9,
		0x13, 0x54, 0x2f, 0x1d, 0x6c, 0x0a, 0xaa, 0xd7, 0x2e, 0x5b, 0x07, 0xd5, 0xcb, 0x58, 0xde, 0x62,
		0xf7, 0x59, 0xa4, 0x9c, 0x07, 0xbf, 0x2b, 0x7a, 0x82, 0x77, 0x4d, 0x10, 0xbf, 0x5e, 0x9b, 0x0b,
		0x0d, 0x6c, 0x1d, 0xf3, 0xa0, 0x81, 0x6d, 0x70, 0x40, 0x42, 0x03, 0xcb, 0x88, 0xc8, 0x41, 0x03,
		0xcb, 0x9c, 0xb5, 0x41, 0x03, 0xdb, 0x36, 0x05, 0xc2, 0x1c, 0x0d, 0x4c, 0x89, 0x07, 0xae, 0x44,
		0xe7, 0x47, 0x54, 0x29, 0x19, 0x20, 0x84, 0x51, 0x3e, 0xa9, 0xfd, 0x5a, 0x8e, 0x0f, 0xe3, 0xb5,
		0x25, 0x93, 0x7e, 0xc4, 0x3b, 0xbe, 0xec, 0x46, 0x94, 0x9b, 0xb4, 0xc5, 0xe4, 0x1d, 0x54, 0xa7,
		0x0d, 0x34, 0xa4, 0x91, 0x07, 0xcb, 0xe3, 0xac, 0xeb, 0xac, 0x03, 0x2c, 0xce, 0x95, 0xcf, 0xc0,
		0xd5, 0x4c, 0x3c, 0x57, 0xbe, 0xf0, 0xb1, 0x54, 0xaa, 0x54, 0x4b, 0xa5, 0x83, 0xea, 0x61, 0xf5,
		0xe0, 0xa8, 0x5c, 0x2e, 0x54, 0x28, 0x17, 0xbb, 0x80, 0xf7, 0x81, 0x5f, 0x1b, 0x64, 0x1d, 0x34,
		0x4f, 0x63, 0xa3, 0xbb, 0xfd, 0x30, 0xe8, 0x2b, 0x11, 0x8c, 0x8f, 0x31, 0x24, 0xae, 0x77, 0xce,
		0x4c, 0x85, 0xd6, 0xb9, 0x8e, 0x79, 0xd0, 0x3a, 0x37, 0x38, 0x18, 0xa1, 0x75, 0x6e, 0xd4, 0x73,
		0xa0, 0x75, 0x66, 0x6c, 0x30, 0xb4, 0xce, 0x2d, 0x9e, 0x9f, 0x19, 0xa4, 0x75, 0xb6, 0x7d, 0xbf,
		0xcf, 0x99, 0x34, 0x61, 0xc1, 0x5f, 0x01, 0xb4, 0xd6, 0x58, 0x5a, 0x1b, 0x70, 0x1e, 0x3a, 0x22,
		0xa0, 0x4f, 0x6a, 0xa7, 0x86, 0x82, 0xd2, 0x82, 0xd2, 0x82, 0xd2, 0x82, 0xd2, 0x82, 0xd2, 0x82,
		0xd2, 0x82, 0xd2, 0x9a, 0x76, 0xe2, 0x32, 0xeb, 0x76, 0x43, 0x1e, 0x45, 0x38, 0x72, 0x79, 0x23,
		0x7d, 0x8e, 0x6c, 0xf8, 0xc6, 0x46, 0xe6, 0x63, 0xc9, 0x80, 0xb1, 0x99, 0x1a, 0xa3, 0x38, 0xdb,
		0x31, 0x03, 0x83, 0xf3, 0x3a, 0xf4, 0x16, 0x47, 0x14, 0x6e, 0x64, 0x78, 0xe1, 0x68, 0xe5, 0x7f,
		0x1c, 0x65, 0x38, 0x6b, 0x6f, 0x4b, 0x89, 0x9f, 0x99, 0x30, 0x5b, 0x01, 0xcc, 0x02, 0x66, 0x2d,
		0x1c, 0xa1, 0xac, 0xf3, 0x90, 0x56, 0x10, 0x8f, 0x9d, 0x27, 0x1e, 0x70, 0xbb, 0xfc, 0xdd, 0x0e,
		0x44, 0x6c, 0x2b, 0x75, 0x41, 0x0b, 0x0b, 0xfb, 0x4c, 0xa6, 0xd2, 0xe3, 0xc4, 0x62, 0xc0, 0xd4,
		0xbd, 0x23, 0xba, 0x86, 0xa4, 0x41, 0xa7, 0xd6, 0x22, 0x17, 0xba, 0x8e, 0x79, 0xc8, 0x85, 0x6e,
		0x70, 0x3c, 0x22, 0x17, 0xba, 0x51, 0xcf, 0x41, 0x2e, 0x34, 0x63, 0x83, 0x91, 0x0b, 0xdd, 0x62,
		0x49, 0xcc, 0xa0, 0x5c, 0xe8, 0x40, 0x48, 0x75, 0x58, 0x34, 0x20, 0x0f, 0x5a, 0xc5, 0xae, 0xe0,
		0x3f, 0xbc, 0xb0, 0x2b, 0x78, 0xb3, 0xc6, 0x62, 0x57, 0x70, 0x5e, 0xb1, 0x0a, 0xbb, 0x82, 0x33,
		0x70, 0x35, 0x13, 0x77, 0x05, 0x97, 0x8a, 0x47, 0xa5, 0xa3, 0x4a, 0xb5, 0x78, 0x84, 0xbd, 0xc0,
		0xf0, 0x39, 0x13, 0x08, 0x2a, 0x7d, 0xeb, 0x20, 0x19, 0x1a, 0x1b, 0xd3, 0xed, 0x28, 0x96, 0x13,
		0xa6, 0x99, 0x6c, 0xa7, 0xc7, 0x1e, 0x44, 0xff, 0x99, 0xbe, 0x76, 0xb8, 0xd8, 0x6c, 0x88, 0x88,
		0xeb, 0x98, 0x07, 0x11, 0x71, 0x83, 0x03, 0x13, 0x22, 0xe2, 0x46, 0x3d, 0x07, 0x22, 0x62, 0xc6,
		0x06, 0x43, 0x44, 0xdc, 0xe2, 0xd9, 0x9a, 0x49, 0x1b, 0x2a, 0xba, 0x5c, 0x2a, 0xa1, 0x9e, 0x43,
		0xde, 0x33, 0x61, 0x47, 0x05, 0xe1, 0xc9, 0xa3, 0x5d, 0x9f, 0x34, 0xe5, 0x09, 0x8b, 0x0c, 0x08,
		0xf1, 0xd3, 0x01, 0x50, 0xfb, 0x5c, 0xf7, 0x2e, 0x47, 0xff, 0xb9, 0xfa, 0xbf, 0xe6, 0x19, 0xf5,
		0x30, 0x1f, 0x8b, 0x09, 0x91, 0x11, 0x4b, 0xa5, 0x0c, 0x91, 0x67, 0xa6, 0xc3, 0xa0, 0xde, 0xfc,
		0x56, 0xf2, 0x3e, 0x9f, 0x37, 0xfe, 0xbf, 0xcb, 0xe6, 0xd9, 0x27, 0x1b, 0x32, 0xdd, 0x6e, 0x0e,
		0x80, 0xf3, 0xda, 0xc9, 0xd9, 0xf9, 0xd9, 0xa9, 0x77, 0x7d, 0x51, 0xff, 0x54, 0xbb, 0xbc, 0xc2,
		0x38, 0xd8, 0xd1, 0x71, 0x80, 0xfe, 0xdf, 0xe5, 0xfe, 0xaf, 0x20, 0x0e, 0x60, 0x1c, 0xc4, 0xe3,
		0x00, 0xfd, 0xbf, 0xb3, 0xfd, 0x7f, 0x5e, 0xfc, 0xd6, 0xbc, 0xf0, 0xce, 0xcc, 0x38, 0x40, 0x0b,
		0xbd, 0x9f, 0x49, 0xef, 0x7f, 0x6b, 0x9e, 0x5f, 0xa2, 0xf7, 0x77, 0xb0, 0xf7, 0x0f, 0x47, 0xbd,
		0x1f, 0x33, 0xc1, 0xaf, 0xd7, 0xe7, 0x57, 0xc0, 0x00, 0x8c, 0x03, 0x30, 0x01, 0x8c, 0x82, 0x0a,
		0xa2, 0x01, 0xc6, 0x01, 0xe6, 0x05, 0x3b, 0x3e, 0x0a, 0xea, 0x17, 0xff, 0xef, 0xe5, 0x55, 0xed,
		0xea, 0x0c, 0x9d, 0xbf, 0xc3, 0x9d, 0xef, 0x5d, 0x36, 0x3f, 0x63, 0x00, 0xec, 0xf2, 0x00, 0x80,
		0x30, 0xb0, 0x93, 0x03, 0xe0, 0xb2, 0x75, 0x75, 0xe6, 0x35, 0x1b, 0xe7, 0xf5, 0x4f, 0xff, 0x17,
		0x4f, 0x0c, 0x30, 0x06, 0x76, 0x7e, 0x0c, 0x54, 0x30, 0x06, 0x76, 0x6f, 0x0c, 0x7c, 0x6b, 0x5e,
		0x98, 0xb5, 0x60, 0x80, 0xb4, 0x85, 0xb7, 0x58, 0xf7, 0x67, 0xb8, 0x55, 0x84, 0xf7, 0x18, 0x84,
		0xfe, 0x40, 0x71, 0xa7, 0x2b, 0x22, 0x25, 0xe4, 0xdd, 0x40, 0x44, 0xf7, 0x3c, 0x34, 0x66, 0xa3,
		0xc1, 0x22, 0xdb, 0xb1, 0xdb, 0x60, 0x1d, 0xf3, 0xb0, 0xdb, 0x60, 0x83, 0xa3, 0x13, 0xbb, 0x0d,
		0x36, 0xea, 0x39, 0xd8, 0x6d, 0x90, 0xb1, 0xc1, 0xd8, 0x6d, 0xb0, 0xc5, 0xb3, 0x08, 0x83, 0x76,
		0x1b, 0x98, 0x03, 0xe7, 0x16, 0xce, 0x71, 0xd8, 0xa9, 0xc9, 0xed, 0x8c, 0x78, 0xaa, 0x50, 0xc8,
		0x3b, 0x94, 0x96, 0xde, 0x30, 0xb9, 0x33, 0xfe, 0x04, 0x87, 0x71, 0xb1, 0xd8, 0x9b, 0x82, 0x53,
		0x9e, 0xfc, 0x5c, 0x1a, 0xbe, 0x54, 0x66, 0x05, 0xf3, 0x7f, 0x1d, 0x0e, 0x5f, 0x2a, 0xe5, 0x57,
		0x3f, 0x17, 0x47, 0x3f, 0x8f, 0x1e, 0x14, 0x27, 0x15, 0xf5, 0x2b, 0xe5, 0xf2, 0xe1, 0xff, 0xcf,
		0xde, 0xdf, 0xf6, 0xa6, 0xad, 0x7c, 0x6d, 0xe3, 0xf0, 0xfb, 0x7e, 0x0a, 0x64, 0x6d, 0xe9, 0x0a,
		0x97, 0xea, 0xf2, 0x0c, 0x21, 0xd2, 0xfd, 0x22, 0x69, 0x92, 0x2a, 0x3a, 0xf3, 0xc0, 0x1d, 0xd2,
		0x9c, 0xbf, 0x9f, 0x52, 0x36, 0x9a, 0xc0, 0x40, 0xe6, 0x2a, 0x19, 0x23, 0x7b, 0x48, 0x1b, 0x25,
		0x7c, 0xf7, 0xbf, 0x6c, 0xc0, 0x90, 0x00, 0x7b, 0x27, 0x29, 0xb6, 0xd7, 0xc2, 0x07, 0xaa, 0x1a,
		0x30, 0x36, 0x2c, 0x3c, 0xeb, 0xe1, 0x58, 0xc7, 0x5a, 0x33, 0x33, 0x59, 0x53, 0x7f, 0x6f, 0xd5,
		0x87, 0xef, 0x06, 0x1f, 0x5e, 0x9a, 0xbe, 0xae, 0x8f, 0x9f, 0xcb, 0x37, 0xf9, 0xc2, 0xf4, 0xd5,
		0xee, 0xf8, 0xb9, 0x5c, 0xbc, 0xc9, 0xdb, 0xbb, 0xd3, 0xd7, 0x35, 0xff, 0x75, 0xfd, 0x26, 0x1f,
		0x9e, 0x5e, 0x0d, 0x0e, 0x94, 0x17, 0x4e, 0xa9, 0x4c, 0x8e, 0xd4, 0x83, 0x6f, 0x0c, 0x05, 0x9e,
		0x2c, 0xc2, 0x71, 0x93, 0xb7, 0xab, 0x73, 0xa9, 0xa7, 0x0b, 0x73, 0xcc, 0xbf, 0xad, 0x18, 0x1e,
		0x5b, 0xf8, 0xce, 0xf0, 0xd0, 0xe4, 0x13, 0xb1, 0x00, 0xf4, 0x66, 0xcc, 0x62, 0x5b, 0x76, 0x9e,
		0x80, 0x75, 0xbc, 0xb0, 0x0e, 0x2c, 0xd4, 0xbc, 0xa5, 0x58, 0x1b, 0x80, 0x06, 0x80, 0x26, 0x83,
		0x2d, 0xa9, 0xfe, 0x61, 0xb3, 0xa0, 0xbd, 0x28, 0x63, 0x03, 0x50, 0x07, 0x50, 0x07, 0x73, 0x15,
		0x06, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x20, 0xce, 0x75, 0x30, 0x4b, 0xb8, 0x80, 0x3a,
		0x80, 0x3a, 0x62, 0xe4, 0x3a, 0x60, 0x1d, 0x00, 0x34, 0x1b, 0x04, 0x34, 0x58, 0x61, 0x96, 0xf9,
		0xfd, 0xa2, 0xd8, 0xfd, 0xf5, 0x20, 0x06, 0xaa, 0x3b, 0x69, 0xa0, 0xa2, 0xdf, 0xee, 0xb5, 0x28,
		0x2c, 0xfa, 0xbb, 0x3e, 0x22, 0x1e, 0xfa, 0xbb, 0x36, 0xa8, 0x8e, 0xe8, 0xef, 0xda, 0xa8, 0xe5,
		0xa0, 0xbf, 0x2b, 0x62, 0x81, 0xd1, 0xdf, 0xb5, 0xc5, 0xc4, 0x12, 0xa3, 0xfe, 0xae, 0x5b, 0xc7,
		0x19, 0x48, 0xa1, 0x39, 0xf4, 0x74, 0x15, 0x00, 0x6d, 0x19, 0x4a, 0x44, 0xcc, 0x44, 0xad, 0x7d,
		0xad, 0x1d, 0x23, 0x8c, 0x72, 0x68, 0x6e, 0x7e, 0x65, 0x79, 0x9d, 0x3b, 0x79, 0x2f, 0x86, 0xc2,
		0xdc, 0xf9, 0xe6, 0x99, 0x73, 0x86, 0x52, 0x77, 0x02, 0xa0, 0x68, 0x6b, 0x69, 0x7e, 0x39, 0xee,
		0x4f, 0x5b, 0x69, 0xcf, 0x08, 0xdd, 0x91, 0xb9, 0xd7, 0x07, 0xbc, 0xa5, 0x23, 0xb9, 0xa1, 0xeb,
		0x18, 0xa7, 0xe3, 0x0c, 0xbc, 0xf0, 0x59, 0xee, 0xb6, 0x3f, 0xcc, 0xb9, 0xea, 0x36, 0x27, 0x7a,
		0xca, 0xf6, 0x44, 0x4f, 0x79, 0xe1, 0xb3, 0xdc, 0xa0, 0xf8, 0x30, 0xd4, 0xb6, 0x7c, 0x18, 0xea,
		0xdc, 0x60, 0x12, 0x94, 0x72, 0x01, 0xc0, 0xf7, 0x72, 0x2b, 0xda, 0x40, 0x73, 0xe6, 0x71, 0x28,
		0xed, 0x9e, 0x7a, 0x90, 0xb6, 0x1a, 0xda, 0x13, 0x98, 0xb0, 0x70, 0x2c, 0xb8, 0x22, 0xe7, 0xff,
		0x0e, 0x2f, 0xf8, 0x3f, 0xe7, 0x19, 0x41, 0x32, 0x55, 0xb0, 0x3c, 0xe3, 0x8e, 0x3a, 0x46, 0x4f,
		0x1d, 0xe2, 0x45, 0x78, 0xc3, 0xcf, 0x27, 0x37, 0xf3, 0x64, 0x7a, 0x2f, 0xdb, 0xaf, 0x5e, 0x7b,
		0xaf, 0x0f, 0xb4, 0x1b, 0xb3, 0x9b, 0x1d, 0x3e, 0x6b, 0x1f, 0xf4, 0x87, 0xed, 0x4b, 0x75, 0xdb,
		0xde, 0xef, 0xa9, 0xa6, 0x7f, 0xaf, 0x67, 0x4f, 0xda, 0xa7, 0xc5, 0xeb, 0xa1, 0x3e, 0x7a, 0x18,
		0xea, 0xf6, 0xa9, 0xd3, 0xf1, 0xcf, 0xb8, 0x0c, 0x6e, 0xf4, 0xe4, 0xcf, 0xe1, 0xe2, 0x7d, 0x6e,
		0xfb, 0xc1, 0xe4, 0x58, 0x3d, 0xc8, 0x93, 0xe1, 0x04, 0x90, 0x87, 0x07, 0x82, 0x73, 0xdb, 0x0d,
		0xff, 0x16, 0x07, 0xff, 0xb7, 0x9b, 0xc1, 0x2d, 0xfe, 0x04, 0x67, 0x44, 0xdc, 0x11, 0x59, 0x23,
		0xfd, 0x53, 0x3b, 0xbf, 0xb4, 0x2d, 0x8c, 0x71, 0xd5, 0xad, 0x3f, 0xf0, 0xe4, 0x9c, 0xd1, 0x7c,
		0xd3, 0xca, 0x65, 0x59, 0x89, 0xb9, 0xf4, 0x19, 0x40, 0x20, 0x26, 0x16, 0xd5, 0xfc, 0x9e, 0x72,
		0x5e, 0xcf, 0x23, 0x9f, 0xa7, 0x9e, 0xc7, 0xb3, 0xc9, 0xdf, 0xd9, 0xe4, 0xed, 0x6c, 0xf2, 0x75,
		0x80, 0xff, 0x7f, 0x1a, 0xc5, 0x43, 0x45, 0x73, 0x22, 0xf5, 0x72, 0x90, 0xa5, 0x5f, 0x00, 0x58,
		0x16, 0x99, 0x76, 0x19, 0xa0, 0x80, 0x32, 0xc0, 0xd6, 0xc1, 0x05, 0x5e, 0xb0, 0x81, 0x0b, 0x7c,
		0x60, 0x07, 0x23, 0xd8, 0xc1, 0x09, 0x76, 0xb0, 0x82, 0x26, 0xbc, 0x20, 0x0a, 0x33, 0xc8, 0xc3,
		0x8d, 0x50, 0x40, 0x3f, 0x76, 0xdb, 0x86, 0x7a, 0xb1, 0xe2, 0x85, 0x87, 0x9f, 0x8b, 0x4c, 0xdc,
		0xb4, 0x69, 0x77, 0x1f, 0xb0, 0x81, 0x1f, 0x9c, 0x60, 0x08, 0x4f, 0x38, 0xc2, 0x0d, 0x96, 0xb0,
		0x85, 0x27, 0x6c, 0x61, 0x0a, 0x5b, 0xb8, 0x42, 0x1b, 0xb6, 0x10, 0x87, 0x2f, 0xe1, 0xa8, 0x5f,
		0x71, 0x00, 0x08, 0x2f, 0xfc, 0xee, 0x40, 0x8a, 0x1e, 0xed, 0xfd, 0x71, 0x97, 0xd8, 0x89, 0x1a,
		0x8f, 0x79, 0x32, 0x41, 0x55, 0xfa, 0xcb, 0x97, 0x49, 0x35, 0x37, 0x37, 0x07, 0x63, 0x68, 0xd7,
		0xde, 0x36, 0xd3, 0xb7, 0x26, 0x05, 0x7b, 0x36, 0x89, 0x01, 0xd5, 0xfe, 0x82, 0x95, 0xd6, 0x8e,
		0xa4, 0x00, 0x49, 0x01, 0x92, 0x02, 0x24, 0x05, 0x48, 0x0a, 0x80, 0x0a, 0x78, 0x26, 0x05, 0xd4,
		0xb9, 0xcd, 0x50, 0xd0, 0x00, 0xa3, 0x0e, 0xa4, 0xe6, 0xe3, 0xc2, 0x5e, 0x50, 0x9d, 0xbe, 0xe4,
		0x4c, 0x1c, 0x01, 0x0f, 0xc6, 0x93, 0x1d, 0xc8, 0xe1, 0x08, 0x76, 0x78, 0x83, 0x1e, 0xae, 0xe0,
		0x87, 0x3d, 0x08, 0x62, 0x0f, 0x86, 0xd8, 0x83, 0x22, 0x1e, 0xe0, 0x88, 0x09, 0x48, 0x0a, 0xb5,
		0x81, 0x0d, 0x83, 0xba, 0xe4, 0xb7, 0x47, 0x4a, 0x9b, 0x42, 0x95, 0x93, 0xcf, 0x9e, 0xa2, 0x90,
		0x2a, 0x23, 0x91, 0x2f, 0x85, 0xee, 0x4b, 0x36, 0x2b, 0xac, 0xcc, 0x1e, 0xbc, 0x62, 0x62, 0x70,
		0xa3, 0xcf, 0x94, 0x66, 0x17, 0xcc, 0x43, 0xe1, 0xaf, 0xc5, 0x60, 0x24, 0xf9, 0xc0, 0xd5, 0x25,
		0xf9, 0x8f, 0x5d, 0xd1, 0x31, 0xca, 0xd1, 0x87, 0xaa, 0xaf, 0x8c, 0xc7, 0xf8, 0x87, 0x9c, 0xcb,
		0xbe, 0x30, 0xea, 0xc1, 0x1f, 0x8b, 0x9e, 0x18, 0x78, 0x92, 0xdd, 0xaf, 0x18, 0x7f, 0x66, 0x68,
		0xba, 0xe2, 0x37, 0x7f, 0xd3, 0xad, 0x56, 0x2a, 0xa5, 0x0a, 0xcc, 0x17, 0xe6, 0x9b, 0x02, 0x6c,
		0xce, 0x4f, 0xda, 0x16, 0x72, 0x9e, 0x0d, 0x9a, 0x99, 0xfc, 0x6d, 0x5c, 0x61, 0x8f, 0xb4, 0x67,
		0xc4, 0xed, 0x80, 0x59, 0xf6, 0xe3, 0xca, 0x9e, 0x74, 0xa5, 0xee, 0x00, 0x94, 0xc7, 0x98, 0x6a,
		0x5e, 0x1e, 0x7f, 0xcd, 0x94, 0x8b, 0xb5, 0x42, 0xc6, 0xce, 0xec, 0x67, 0x0e, 0x1c, 0xb7, 0x2b,
		0xdd, 0xcc, 0x37, 0x61, 0xe4, 0x2f, 0xf1, 0x98, 0x99, 0x4d, 0xa8, 0xcf, 0x94, 0x33, 0x3b, 0x07,
		0xdf, 0x1a, 0x76, 0x39, 0x6b, 0x31, 0xc4, 0x30, 0x4c, 0xe9, 0xc4, 0x79, 0x6a, 0x3d, 0xa7, 0x15,
		0xe7, 0x16, 0xc2, 0x14, 0x05, 0x70, 0x67, 0x18, 0xc3, 0x1f, 0xb2, 0xc8, 0x34, 0xbe, 0xd3, 0x84,
		0x80, 0x7c, 0x20, 0x2d, 0x27, 0xe4, 0x83, 0x5d, 0xeb, 0x37, 0xe0, 0x2f, 0xf8, 0xcc, 0xf9, 0x59,
		0x42, 0x08, 0x5c, 0xe6, 0xfe, 0xcc, 0x03, 0x26, 0x2a, 0xe2, 0x91, 0x0a, 0x8c, 0x8a, 0x38, 0x20,
		0xec, 0xbb, 0xa1, 0x2b, 0x2a, 0xe2, 0x89, 0xe3, 0x54, 0x54, 0xc4, 0x53, 0x8c, 0x40, 0x32, 0xfc,
		0x2b, 0xe2, 0xbb, 0x0c, 0x0b, 0xe2, 0x15, 0x14, 0xc4, 0x23, 0x7e, 0xa0, 0x20, 0x1e, 0xaf, 0xf0,
		0x28, 0x88, 0x53, 0x71, 0x8d, 0x28, 0x88, 0x27, 0x60, 0xba, 0xdb, 0x50, 0x10, 0x2f, 0x56, 0x50,
		0x0e, 0x87, 0xf1, 0xa6, 0x01, 0x98, 0xf3, 0x93, 0x16, 0xe5, 0xf0, 0x4d, 0x9a, 0x19, 0xca, 0xe1,
		0x80, 0xe4, 0xef, 0xca, 0x33, 0x51, 0x0e, 0x27, 0x9f, 0x58, 0xa3, 0x1c, 0x4e, 0xef, 0x87, 0xa0,
		0x1c, 0x0e, 0x69, 0x53, 0x82, 0x7c, 0x50, 0x0e, 0xdf, 0x80, 0xbf, 0x08, 0x6a, 0xca, 0x0f, 0xd3,
		0x74, 0x94, 0x63, 0x3d, 0x7c, 0x22, 0x3b, 0x0a, 0xe2, 0x51, 0x88, 0x8b, 0x82, 0x78, 0x8c, 0xda,
		0x8c, 0x82, 0x78, 0x42, 0xe0, 0x15, 0x05, 0xf1, 0xc4, 0x91, 0x2a, 0x0a, 0xe2, 0x29, 0xc6, 0x20,
		0x19, 0xde, 0x05, 0xf1, 0x5b, 0xa5, 0x85, 0xfb, 0xc8, 0xb0, 0x22, 0x5e, 0x67, 0x24, 0xf2, 0xa9,
		0xd4, 0xfd, 0x60, 0xf1, 0x4d, 0xf0, 0x6f, 0x11, 0xdf, 0xe9, 0xad, 0x28, 0x89, 0x17, 0x50, 0x55,
		0x4b, 0xd8, 0x39, 0xa2, 0x24, 0x9e, 0x80, 0xe9, 0x62, 0x8e, 0x38, 0xcc, 0x17, 0xe6, 0x9b, 0x01,
		0x35, 0x1c, 0xd9, 0x03, 0x45, 0xf1, 0x4d, 0x9a, 0x19, 0x8a, 0xe2, 0x00, 0xe5, 0xef, 0xca, 0x35,
		0x51, 0x14, 0x27, 0x9f, 0x5b, 0xa3, 0x28, 0x4e, 0xef, 0x87, 0xa0, 0x28, 0x0e, 0x69, 0x53, 0x82,
		0x7c, 0x50, 0x14, 0xdf, 0x0c, 0x2e, 0x93, 0xba, 0x2b, 0xbb, 0xfc, 0x4a, 0xe2, 0xa1, 0xe4, 0x28,
		0x88, 0x47, 0x21, 0x2e, 0x0a, 0xe2, 0x31, 0xea, 0x32, 0x0a, 0xe2, 0x09, 0x01, 0x57, 0x14, 0xc4,
		0x13, 0x47, 0xa9, 0x28, 0x88, 0xa7, 0x18, 0x7f, 0x64, 0x98, 0x17, 0xc4, 0x1d, 0x67, 0x20, 0x85,
		0x66, 0x58, 0x11, 0x2f, 0x14, 0xa0, 0xc2, 0x9b, 0x85, 0xd1, 0xa0, 0x37, 0x63, 0x7f, 0x80, 0xde,
		0x04, 0x3a, 0x8c, 0x03, 0x25, 0x82, 0xde, 0xa4, 0x08, 0x1c, 0x41, 0x6f, 0x42, 0xda, 0x8f, 0x3c,
		0x40, 0x6f, 0xa6, 0x06, 0x9b, 0x59, 0xce, 0xd0, 0x28, 0x47, 0x8b, 0x01, 0x3f, 0x7a, 0x33, 0x94,
		0x1c, 0xf4, 0x66, 0x14, 0xe2, 0x82, 0xde, 0x8c, 0x53, 0x97, 0x41, 0x6f, 0x26, 0x03, 0x5c, 0x41,
		0x6f, 0x26, 0x8e, 0x52, 0x41, 0x6f, 0xa6, 0x18, 0x7f, 0x64, 0x40, 0x6f, 0x26, 0x03, 0x43, 0x40,
		0x6f, 0x6e, 0xf4, 0xae, 0x82, 0xde, 0x4c, 0xe2, 0x01, 0x7a, 0x13, 0xe8, 0x30, 0x0e, 0x94, 0x08,
		0x7a, 0x93, 0x22, 0x70, 0x04, 0xbd, 0x09, 0x69, 0x3f, 0xf2, 0x00, 0xbd, 0x99, 0x1a, 0x6c, 0x66,
		0x0d, 0x85, 0x6b, 0x14, 0x47, 0x76, 0x73, 0x26, 0x38, 0xc8, 0xcd, 0x28, 0xc4, 0x05, 0xb9, 0x19,
		0xa3, 0x2a, 0x83, 0xdc, 0x4c, 0x08, 0xb6, 0x82, 0xdc, 0x4c, 0x1c, 0xa3, 0x82, 0xdc, 0x4c, 0x31,
		0xfa, 0xc8, 0x80, 0xdc, 0x4c, 0x06, 0x86, 0x80, 0xdc, 0xdc, 0xe8, 0x5d, 0x05, 0xb9, 0x99, 0xc4,
		0x03, 0xe4, 0x26, 0xd0, 0x61, 0x1c, 0x28, 0x11, 0xe4, 0x26, 0x45, 0xe0, 0x08, 0x72, 0x13, 0xd2,
		0x7e, 0xe4, 0x01, 0x72, 0x33, 0x35, 0xd8, 0xcc, 0x32, 0xae, 0xd0, 0x9e, 0x9a, 0xae, 0xcd, 0xc5,
		0x8c, 0xdf, 0x5c, 0x90, 0x1d, 0x14, 0x67, 0x14, 0xe2, 0x82, 0xe2, 0x8c, 0x51, 0x9b, 0x41, 0x71,
		0x26, 0x04, 0x5e, 0x41, 0x71, 0x26, 0x8e, 0x54, 0x41, 0x71, 0xa6, 0x18, 0x83, 0x64, 0x40, 0x71,
		0x26, 0x03, 0x43, 0x40, 0x71, 0x6e, 0xf4, 0xae, 0x82, 0xe2, 0x4c, 0xe2, 0x01, 0x8a, 0x13, 0xe8,
		0x30, 0x0e, 0x94, 0x08, 0x8a, 0x93, 0x22, 0x70, 0x04, 0xc5, 0x09, 0x69, 0x3f, 0xf2, 0x00, 0xc5,
		0x99, 0x06, 0x09, 0x89, 0x23, 0x47, 0x6b, 0x5f, 0x6b, 0xc7, 0x08, 0xa3, 0x1c, 0x1e, 0x5b, 0xe4,
		0x58, 0x5e, 0xe7, 0x4e, 0xde, 0x8b, 0xa1, 0x08, 0x76, 0x4e, 0xb2, 0x72, 0xce, 0x50, 0xea, 0x4e,
		0x40, 0x11, 0xda, 0x5a, 0x9a, 0x5f, 0x8e, 0xfb, 0xd3, 0x56, 0x3e, 0xfa, 0xd5, 0x1d, 0x99, 0x7b,
		0x7d, 0xc0, 0x5b, 0x3a, 0x92, 0x1b, 0x4e, 0xfd, 0xb3, 0x17, 0x3e, 0xcb, 0xdd, 0xf6, 0x87, 0x39,
		0x57, 0xdd, 0xe6, 0x44, 0x4f, 0xd9, 0x9e, 0xe8, 0x29, 0x2f, 0x7c, 0x96, 0x1b, 0x14, 0x1f, 0x86,
		0xda, 0x96, 0x0f, 0x43, 0x9d, 0x1b, 0x4c, 0xe8, 0x82, 0x9c, 0xeb, 0x8c, 0x8c, 0xf4, 0x26, 0x7f,
		0xec, 0xae, 0xf2, 0x8c, 0xd2, 0xfd, 0x91, 0xf2, 0xee, 0xa4, 0x9b, 0x33, 0x8f, 0x43, 0x69, 0xf7,
		0xd4, 0x83, 0xb4, 0xd5, 0xd0, 0x9e, 0x10, 0x3c, 0x0b, 0xc7, 0x82, 0x2b, 0x72, 0xfe, 0xef, 0xf0,
		0x82, 0xff, 0x73, 0x23, 0xfd, 0x53, 0x3b, 0xbf, 0xb4, 0x2d, 0x8c, 0x71, 0xd5, 0x6d, 0xf0, 0xa9,
		0x4b, 0x87, 0x72, 0x9e, 0x11, 0x86, 0x43, 0xf4, 0xb7, 0x3c, 0xe3, 0x8e, 0x3a, 0x46, 0x4f, 0x51,
		0xe6, 0x45, 0x38, 0x4a, 0xe7, 0x93, 0x11, 0x38, 0x99, 0x0e, 0x40, 0xfb, 0xd5, 0x6b, 0xef, 0xf5,
		0x81, 0xf6, 0x2c, 0x82, 0x7a, 0xe1, 0xb3, 0xf6, 0x41, 0x7f, 0xd8, 0xbe, 0x54, 0xb7, 0xed, 0xfd,
		0x9e, 0x6a, 0xfa, 0x03, 0x34, 0x7b, 0xd2, 0x3e, 0x2d, 0x5e, 0x0f, 0xf5, 0xd1, 0xc3, 0x50, 0xb7,
		0x4f, 0x9d, 0x8e, 0x7f, 0xc6, 0x65, 0x30, 0x3a, 0x93, 0x3f, 0x87, 0x8b, 0x83, 0xd3, 0xf6, 0x73,
		0xfd, 0x63, 0xf5, 0x20, 0x4f, 0x86, 0x13, 0xbe, 0x36, 0x3c, 0x10, 0x9c, 0xdb, 0x6e, 0xf8, 0xe3,
		0x12, 0xfc, 0xdf, 0xfe, 0x3e, 0x19, 0x84, 0xfd, 0x70, 0x58, 0x96, 0x8e, 0xb4, 0x9b, 0xc1, 0xa8,
		0x7c, 0x82, 0x93, 0xdc, 0x1e, 0xc9, 0x88, 0xba, 0x6d, 0x3f, 0x1b, 0x08, 0xb7, 0x09, 0xf6, 0x9d,
		0x09, 0x51, 0x5f, 0x60, 0x9d, 0x2a, 0xcf, 0xf8, 0x06, 0x42, 0x3a, 0xa8, 0x58, 0x67, 0x4a, 0x1f,
		0x0d, 0xa4, 0x0f, 0xe4, 0x89, 0xef, 0x6c, 0x64, 0x9d, 0x89, 0xdf, 0x0b, 0x92, 0x16, 0x76, 0xcb,
		0xe5, 0x6a, 0xad, 0x5c, 0xce, 0xd7, 0x4a, 0xb5, 0x7c, 0xbd, 0x52, 0x29, 0x54, 0x0b, 0x84, 0xf7,
		0x97, 0xb2, 0x2e, 0xfc, 0x9c, 0x48, 0x76, 0x0f, 0x7c, 0xd5, 0xd5, 0xa3, 0xc1, 0x80, 0x83, 0xa8,
		0xdf, 0x3d, 0xe9, 0x92, 0xde, 0x2a, 0x8a, 0xaa, 0x87, 0x62, 0x02, 0x28, 0xd3, 0x0d, 0x24, 0x09,
		0x43, 0xc8, 0x54, 0x41, 0x47, 0x9a, 0xa0, 0x91, 0x1e, 0x24, 0xa3, 0x25, 0x11, 0x31, 0xd7, 0x4b,
		0xdd, 0xe5, 0xa6, 0xc9, 0xd5, 0x12, 0x74, 0xac, 0xdb, 0xec, 0x50, 0x69, 0xf9, 0x4f, 0x3a, 0x5e,
		0x8a, 0x86, 0x24, 0x44, 0xfc, 0xe4, 0x2c, 0x69, 0x1e, 0x4a, 0xe9, 0xda, 0x6a, 0x98, 0x09, 0xfe,
		0xfa, 0xf6, 0x6b, 0xab, 0x6e, 0xc6, 0x0b, 0xca, 0x83, 0xf6, 0x0a, 0x67, 0x30, 0x7b, 0x4b, 0x74,
		0xbb, 0xae, 0xf4, 0x3c, 0xbb, 0x27, 0xee, 0xd5, 0x80, 0xca, 0xa6, 0xf8, 0x34, 0x13, 0x6c, 0xba,
		0x09, 0x35, 0xab, 0x04, 0x9a, 0x70, 0xc2, 0x4c, 0x38, 0x41, 0xa6, 0xe2, 0x6d, 0x88, 0xa2, 0xb1,
		0xad, 0x45, 0x61, 0x84, 0x20, 0xd7, 0xf6, 0x40, 0x2d, 0x1a, 0xc0, 0x2a, 0x79, 0x18, 0x93, 0xac,
		0x04, 0x09, 0xbb, 0x34, 0x6a, 0xae, 0x6c, 0x1b, 0x5d, 0x18, 0x01, 0xef, 0xb5, 0x15, 0x5e, 0x2b,
		0x59, 0x87, 0x95, 0x9c, 0x9b, 0x48, 0xd0, 0x45, 0x58, 0x93, 0x6e, 0x84, 0xa4, 0x3d, 0x43, 0xd8,
		0xcb, 0x4a, 0xa1, 0x39, 0x22, 0xec, 0x6b, 0x4f, 0x58, 0x0c, 0x2a, 0xd3, 0xe6, 0x28, 0x4d, 0x87,
		0xa3, 0x39, 0xcd, 0x8d, 0x5a, 0x83, 0x32, 0xd9, 0x69, 0x69, 0x64, 0xbb, 0x87, 0xc9, 0x4e, 0x23,
		0x4b, 0x37, 0x78, 0x3d, 0x54, 0x34, 0xc8, 0x31, 0x4b, 0x9a, 0x3b, 0xe9, 0x6a, 0x69, 0x6c, 0x23,
		0xfa, 0x74, 0xcc, 0x3c, 0xdc, 0x5e, 0x7d, 0x51, 0x3a, 0x2a, 0x84, 0x2d, 0xa9, 0x39, 0xea, 0xe4,
		0xe6, 0xa0, 0x53, 0x9c, 0x63, 0x4e, 0x7b, 0x0e, 0x39, 0xd5, 0x59, 0x40, 0xe4, 0xe7, 0x80, 0x93,
		0x9f, 0xb2, 0x43, 0x7e, 0x0e, 0x37, 0x4a, 0x71, 0x8b, 0xa3, 0x45, 0x6e, 0x8e, 0x35, 0xe5, 0x38,
		0xb8, 0x18, 0x0b, 0x6b, 0x84, 0x44, 0xba, 0x14, 0xba, 0x4f, 0x6f, 0x96, 0x2e, 0xc1, 0xc6, 0x97,
		0x33, 0x45, 0xb7, 0x09, 0xd2, 0xba, 0x16, 0x83, 0x91, 0xa4, 0xdb, 0xf6, 0x6c, 0x1d, 0xbb, 0xa2,
		0x63, 0x94, 0xa3, 0x0f, 0x55, 0x5f, 0x51, 0xee, 0xcf, 0xb6, 0xce, 0x65, 0x5f, 0x4c, 0x57, 0xaf,
		0xa2, 0xd9, 0x2e, 0x4c, 0xb0, 0x55, 0xd8, 0x3a, 0x13, 0xbf, 0xe9, 0x9b, 0x46, 0xb9, 0x58, 0x2f,
		0xd7, 0xab, 0xb5, 0x62, 0xbd, 0x02, 0x1b, 0xd9, 0x76, 0x1b, 0x41, 0x27, 0xd9, 0xca, 0x47, 0x0b,
		0x85, 0x60, 0x2a, 0x3e, 0xd4, 0x0a, 0x4b, 0x89, 0xf4, 0x58, 0xa4, 0xb9, 0x68, 0xa0, 0x90, 0x56,
		0x89, 0x03, 0x0a, 0xe9, 0x1d, 0xca, 0x04, 0x0a, 0xe9, 0x5d, 0x9a, 0x0e, 0x0a, 0xe9, 0x0f, 0x05,
		0x04, 0x85, 0xc4, 0x28, 0x8b, 0x20, 0x4c, 0x21, 0x51, 0x0b, 0x82, 0x8b, 0x81, 0xb0, 0x50, 0x27,
		0x24, 0xd3, 0x74, 0x08, 0xc1, 0x1f, 0xbd, 0x59, 0xb1, 0x1e, 0xca, 0x36, 0xd9, 0x35, 0x62, 0x43,
		0x15, 0xdb, 0x25, 0x28, 0x5b, 0x43, 0x18, 0x23, 0x5d, 0x4d, 0x76, 0x4d, 0x41, 0x6b, 0xe7, 0x26,
		0x6f, 0xd7, 0x5b, 0xcf, 0x37, 0x05, 0xbb, 0xde, 0x9a, 0x3c, 0x2d, 0x04, 0x7f, 0x9e, 0x8a, 0xe3,
		0xe7, 0xe2, 0x4d, 0xde, 0x2e, 0x4f, 0x8f, 0x16, 0x2b, 0x37, 0x79, 0xbb, 0xd2, 0xca, 0xee, 0xfc,
		0xf8, 0xf1, 0xe5, 0xbd, 0xd7, 0x64, 0x9f, 0x4a, 0xe3, 0x5c, 0x78, 0x51, 0x71, 0xfa, 0x6e, 0xe9,
		0x26, 0x6f, 0x17, 0x5b, 0x04, 0x57, 0x24, 0x6b, 0x51, 0xd4, 0xa3, 0x8b, 0xe6, 0xc9, 0x7f, 0xc8,
		0x2b, 0xd3, 0xdf, 0x3b, 0x89, 0xab, 0x53, 0xf6, 0x2f, 0x82, 0x0a, 0x85, 0xe9, 0xc3, 0x5c, 0xe3,
		0x5e, 0x15, 0x71, 0x6f, 0x4b, 0xe3, 0x5e, 0xe0, 0x40, 0x84, 0xdd, 0xdb, 0xb7, 0x8f, 0x5b, 0x4f,
		0x85, 0xcf, 0xe5, 0xf1, 0x5e, 0xf6, 0xa9, 0x36, 0x7e, 0x7d, 0xf0, 0x79, 0xd5, 0x69, 0x85, 0xcf,
		0xb5, 0xf1, 0xde, 0x9a, 0x77, 0xaa, 0xe3, 0xbd, 0x37, 0x7e, 0x46, 0x65, 0xbc, 0xb3, 0x74, 0xaa,
		0x7f, 0xbc, 0xb8, 0xee, 0x82, 0xf2, 0x9a, 0x0b, 0x4a, 0xeb, 0x2e, 0x28, 0xad, 0xb9, 0x60, 0xad,
		0x48, 0xc5, 0x35, 0x17, 0x54, 0xc6, 0xcf, 0x4b, 0xe7, 0xef, 0xac, 0x3e, 0xb5, 0x3a, 0xce, 0x3e,
		0xaf, 0x7b, 0xaf, 0x36, 0x7e, 0xde, 0xcb, 0x66, 0x73, 0x3b, 0x05, 0xdf, 0xab, 0xef, 0x4e, 0xdc,
		0x7c, 0xa1, 0xb5, 0xe4, 0xfd, 0x83, 0xff, 0x81, 0x0b, 0xb6, 0x0f, 0x17, 0xc0, 0xda, 0xc8, 0x5a,
		0x1b, 0x50, 0x13, 0x0b, 0x12, 0x2c, 0x83, 0x92, 0x18, 0x25, 0x1c, 0x3b, 0xa7, 0xdc, 0xec, 0x81,
		0xd4, 0xfd, 0x60, 0x5e, 0x20, 0xd5, 0xca, 0xd8, 0x4c, 0x42, 0x14, 0xc8, 0x56, 0x89, 0x83, 0x02,
		0xd9, 0x3b, 0x74, 0x0a, 0x05, 0xb2, 0x77, 0x69, 0x3a, 0x0a, 0x64, 0x7f, 0x28, 0x20, 0x0a, 0x64,
		0x8c, 0x78, 0x1d, 0xc2, 0x05, 0x32, 0xcf, 0xb8, 0x4a, 0x53, 0xec, 0xae, 0x2e, 0xec, 0x02, 0xd3,
		0x11, 0x90, 0x00, 0xeb, 0x5d, 0xbc, 0x94, 0x67, 0xbb, 0xd6, 0xbb, 0xa0, 0xb2, 0x79, 0x01, 0xf7,
		0xf5, 0x2e, 0x08, 0x6c, 0x37, 0x90, 0xe0, 0x7a, 0x17, 0x9f, 0x52, 0xe4, 0x98, 0x66, 0x2b, 0x17,
		0x2e, 0xce, 0x4d, 0xca, 0xbc, 0x4e, 0x28, 0x33, 0x49, 0xb7, 0x9d, 0xd0, 0x58, 0x8b, 0x90, 0xce,
		0xda, 0x83, 0xa4, 0xd7, 0x1a, 0x24, 0xb4, 0xb6, 0x20, 0xa1, 0xb5, 0x04, 0x93, 0xb2, 0x6f, 0x42,
		0xfb, 0x75, 0x12, 0xda, 0x7f, 0x93, 0xd0, 0x52, 0x31, 0x97, 0xc7, 0x5f, 0xeb, 0x85, 0x52, 0x75,
		0x2f, 0x73, 0xd2, 0xc8, 0x4c, 0x82, 0x71, 0x66, 0xbf, 0xfb, 0x20, 0x5d, 0xa3, 0xbc, 0xc0, 0xc0,
		0x33, 0x4a, 0x67, 0x8e, 0xa6, 0xde, 0x39, 0x73, 0xdd, 0x38, 0xcf, 0xec, 0x1c, 0x5d, 0x37, 0xce,
		0xb3, 0x58, 0x57, 0xe6, 0x1f, 0x69, 0x18, 0x6a, 0x1b, 0x59, 0xf2, 0x58, 0x5a, 0xe6, 0xa3, 0xba,
		0x98, 0xf6, 0xa4, 0x32, 0xb1, 0x6f, 0x6f, 0xa5, 0x2a, 0x96, 0x11, 0x49, 0x9e, 0xb7, 0x2b, 0x69,
		0xb6, 0x12, 0x5d, 0xde, 0x8f, 0x73, 0x9a, 0x9c, 0x8c, 0xdb, 0x8b, 0xdf, 0xd9, 0xc4, 0xfb, 0x8d,
		0x31, 0x3b, 0x97, 0xa4, 0x9d, 0x0a, 0x6f, 0x67, 0x92, 0x80, 0xf3, 0x60, 0xe7, 0x34, 0xe2, 0x75,
		0x13, 0xf1, 0x19, 0x6b, 0x8c, 0x86, 0x6a, 0x4d, 0x54, 0xcf, 0x19, 0xb9, 0x76, 0x48, 0x54, 0x79,
		0xb2, 0x3f, 0x85, 0xad, 0xf1, 0x1a, 0x6d, 0x98, 0xb8, 0xfd, 0x83, 0x4c, 0x31, 0xbb, 0xb0, 0x64,
		0x56, 0x84, 0x4d, 0xac, 0xa1, 0x22, 0xc9, 0xc6, 0x09, 0x1a, 0x0d, 0x12, 0x49, 0x67, 0xde, 0x64,
		0x1a, 0x1e, 0xc8, 0xa4, 0xd5, 0x64, 0x1a, 0x18, 0xb6, 0x1b, 0xac, 0x25, 0xb5, 0xe2, 0xea, 0x82,
		0xb3, 0x9f, 0x24, 0x4d, 0x89, 0x59, 0xde, 0x72, 0xf4, 0x49, 0x32, 0x8b, 0x4b, 0x78, 0x31, 0xf2,
		0xc4, 0x7b, 0xfa, 0x28, 0xf4, 0xf0, 0xd1, 0xea, 0xd9, 0xa3, 0x42, 0x0a, 0x93, 0xeb, 0xc9, 0x23,
		0xc7, 0x00, 0x93, 0xeb, 0xb9, 0x4b, 0x57, 0xe1, 0x3d, 0xe9, 0xc5, 0xc3, 0x2d, 0xe9, 0x29, 0x3a,
		0x3b, 0x6b, 0xf8, 0xc2, 0xd0, 0xd8, 0x57, 0x23, 0x8f, 0x7d, 0x35, 0xc8, 0x84, 0x36, 0x9a, 0x21,
		0x8e, 0x5a, 0xa8, 0x23, 0x1b, 0xf2, 0xc8, 0x86, 0x3e, 0xb2, 0x21, 0x30, 0xd9, 0x50, 0x98, 0x70,
		0x48, 0x0c, 0x47, 0x85, 0x4c, 0x7b, 0x79, 0xe8, 0x77, 0x06, 0x52, 0xf4, 0x5c, 0xd9, 0xa3, 0xe0,
		0x74, 0x66, 0x19, 0x17, 0x81, 0xe5, 0xba, 0xad, 0xc6, 0xb4, 0x6a, 0xf1, 0xe5, 0xcb, 0xa4, 0xf5,
		0x36, 0xe7, 0x87, 0xf1, 0x54, 0xab, 0x2e, 0xa1, 0x76, 0xab, 0x50, 0x26, 0x3a, 0x6d, 0x57, 0xb3,
		0x07, 0xc1, 0x89, 0x23, 0x97, 0xc7, 0x5f, 0x6b, 0xe5, 0x52, 0x71, 0x2f, 0x73, 0xf0, 0xad, 0x91,
		0x39, 0x6b, 0x9c, 0x36, 0xed, 0x03, 0xe1, 0xc9, 0xee, 0x8b, 0x76, 0x17, 0x4c, 0x85, 0x7b, 0x17,
		0x06, 0xa1, 0xd6, 0x83, 0x45, 0x1e, 0x8e, 0xac, 0x84, 0x25, 0x6f, 0x52, 0x4c, 0xcc, 0x93, 0xa3,
		0x14, 0x05, 0xe0, 0xe6, 0xe0, 0xe6, 0xe0, 0xe6, 0xe0, 0xe6, 0xb6, 0x5f, 0x8a, 0x16, 0xf6, 0x44,
		0x8e, 0xdd, 0x6a, 0x1c, 0x57, 0xf5, 0x95, 0x16, 0x46, 0xe9, 0xfe, 0xa4, 0xf6, 0xe7, 0xda, 0x6a,
		0x48, 0x87, 0xc9, 0x5d, 0x2d, 0x1e, 0xb8, 0x5d, 0x70, 0xbb, 0xff, 0xa6, 0x38, 0xe0, 0x76, 0xdf,
		0x06, 0x38, 0xc0, 0xed, 0xbe, 0x1b, 0x5d, 0x80, 0xdb, 0x25, 0x92, 0x1a, 0x81, 0xdb, 0x7d, 0x43,
		0x98, 0xa2, 0xc9, 0xed, 0xae, 0x0e, 0xec, 0x60, 0x7b, 0xc1, 0xf6, 0x82, 0x06, 0x01, 0x0d, 0x02,
		0x1a, 0x04, 0x34, 0x08, 0x68, 0x10, 0xd0, 0x20, 0xb1, 0xd3, 0x20, 0x8e, 0x0f, 0x43, 0xa8, 0xac,
		0xcd, 0xba, 0xc4, 0x82, 0xbc, 0x90, 0x0e, 0x24, 0x08, 0x48, 0x10, 0x90, 0x20, 0x20, 0x41, 0x40,
		0x82, 0x80, 0x04, 0x01, 0x09, 0xc2, 0x9a, 0x04, 0x79, 0x11, 0xd7, 0xc1, 0x81, 0x80, 0x03, 0x01,
		0x07, 0x02, 0x0e, 0x04, 0x1c, 0x08, 0x38, 0x10, 0x70, 0x20, 0xe0, 0x40, 0x62, 0xb3, 0x9a, 0xa1,
		0x30, 0x77, 0x1e, 0x1d, 0xd2, 0x63, 0x22, 0x0e, 0x0d, 0x96, 0xa3, 0x00, 0x96, 0x03, 0x2c, 0x07,
		0x58, 0x0e, 0xb0, 0x1c, 0x60, 0x39, 0x92, 0x1a, 0x95, 0xa4, 0x67, 0xb8, 0xbf, 0x08, 0x93, 0xf4,
		0xb6, 0x6d, 0x0b, 0xa4, 0xa2, 0xb5, 0x55, 0x5b, 0x01, 0x5b, 0xb5, 0x91, 0x0f, 0xa2, 0xb4, 0x83,
		0x29, 0xa7, 0x6c, 0x1d, 0x5b, 0xb5, 0x6d, 0x55, 0xb0, 0x25, 0x96, 0x90, 0x13, 0xf1, 0x5c, 0x54,
		0x82, 0xf0, 0x3c, 0x18, 0x4b, 0x1a, 0x13, 0x16, 0xd6, 0xc7, 0x65, 0x49, 0x61, 0xca, 0xc2, 0xba,
		0x10, 0x9d, 0x27, 0x26, 0x16, 0xb5, 0x50, 0x4d, 0x39, 0x64, 0xf3, 0x08, 0xdd, 0xd4, 0x43, 0x38,
		0x9b, 0x50, 0xce, 0x26, 0xa4, 0xb3, 0x09, 0xed, 0xb4, 0x42, 0x3c, 0xb1, 0x50, 0x1f, 0x8e, 0x22,
		0xb9, 0xdd, 0x59, 0x97, 0xfc, 0x1e, 0x9d, 0x6e, 0x83, 0xb5, 0x99, 0x70, 0x8d, 0xa0, 0x6c, 0x4b,
		0xdd, 0x08, 0x33, 0xa8, 0xf2, 0x09, 0xc6, 0x49, 0xdc, 0x30, 0x27, 0xa8, 0x72, 0x28, 0xcc, 0x9d,
		0xad, 0xba, 0xc4, 0xb1, 0xef, 0x4c, 0x4a, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
		0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0xaa, 0x00, 0x78, 0x86, 0x57, 0x80, 0x82, 0xc9, 0xa3,
		0x60, 0x2f, 0x88, 0xa8, 0xb6, 0xe8, 0x76, 0x5d, 0xe9, 0x79, 0x76, 0x4f, 0xdc, 0xab, 0xc1, 0x23,
		0x5d, 0x38, 0xbc, 0x5a, 0x5c, 0xe0, 0x62, 0xe0, 0x62, 0xe0, 0x62, 0xe0, 0x62, 0xe0, 0x62, 0xe0,
		0x62, 0xe0, 0x62, 0xe0, 0x62, 0x82, 0xb8, 0x78, 0x35, 0x70, 0x01, 0x40, 0xe6, 0x02, 0x90, 0x57,
		0x6c, 0xbf, 0x4b, 0x1e, 0x25, 0xaf, 0x92, 0x19, 0x50, 0x19, 0x50, 0x19, 0x50, 0x19, 0x50, 0x19,
		0x50, 0x19, 0x50, 0x19, 0x50, 0x19, 0x50, 0x99, 0x2e, 0x54, 0x5e, 0x85, 0x5e, 0x80, 0x97, 0xe9,
		0xe3, 0x65, 0x7f, 0x0c, 0x09, 0x43, 0xe3, 0x40, 0x3c, 0x9a, 0x28, 0xb8, 0x00, 0x14, 0x0c, 0x14,
		0x0c, 0x14, 0x0c, 0x14, 0x0c, 0x14, 0x8c, 0xc8, 0xba, 0x7a, 0x14, 0xa9, 0x4d, 0x1e, 0x0a, 0x05,
		0x13, 0xdd, 0x07, 0xe9, 0x1a, 0xe5, 0xc9, 0xae, 0x6d, 0x1c, 0x7b, 0x28, 0xa5, 0x4b, 0xd7, 0xb9,
		0xcc, 0x5c, 0xf4, 0x0a, 0x99, 0x89, 0x1a, 0x2f, 0x4d, 0x9a, 0x8c, 0x3c, 0x50, 0xe0, 0x00, 0x18,
		0x78, 0x01, 0x07, 0x2e, 0x00, 0x82, 0x1d, 0x90, 0x60, 0x07, 0x28, 0xd8, 0x01, 0x0b, 0x9a, 0x00,
		0x83, 0x28, 0xd0, 0x08, 0x47, 0x97, 0x2c, 0xed, 0xb6, 0xe4, 0x37, 0xd5, 0x70, 0x56, 0x5d, 0xa5,
		0xec, 0x37, 0x67, 0xa9, 0x7e, 0x9d, 0xb0, 0x8c, 0xd3, 0x31, 0xbf, 0x21, 0xed, 0x77, 0x68, 0xc7,
		0x9d, 0x57, 0x9a, 0xf9, 0x50, 0x66, 0xa0, 0x9b, 0x4b, 0x3a, 0xba, 0xcb, 0x40, 0xd6, 0x86, 0x30,
		0x46, 0xba, 0x9a, 0xbc, 0xba, 0x86, 0x02, 0xef, 0xdc, 0xe4, 0xed, 0x7a, 0xeb, 0xf9, 0xa6, 0x60,
		0xd7, 0x5b, 0x93, 0xa7, 0x85, 0xe0, 0xcf, 0x53, 0x71, 0xfc, 0x5c, 0xbc, 0xc9, 0xdb, 0xe5, 0xe9,
		0xd1, 0x62, 0xe5, 0x26, 0x6f, 0x57, 0x5a, 0xd9, 0x9d, 0x1f, 0x3f, 0xbe, 0xbc, 0xf7, 0x9a, 0xec,
		0x53, 0x69, 0x6c, 0x91, 0xbf, 0x1d, 0x2d, 0x0e, 0xea, 0x75, 0xd1, 0x3c, 0xf9, 0x0f, 0x3b, 0x1d,
		0xfb, 0x7b, 0x27, 0x2e, 0x2d, 0xcb, 0xfe, 0xc5, 0x40, 0xcf, 0x48, 0x4b, 0x38, 0xfe, 0x8c, 0x30,
		0xbb, 0xb1, 0x30, 0x5b, 0x45, 0x98, 0x45, 0x98, 0x9d, 0x84, 0xd9, 0xc0, 0x9b, 0x09, 0xbb, 0xb7,
		0x6f, 0x1f, 0xb7, 0x9e, 0x0a, 0x9f, 0xcb, 0xe3, 0xbd, 0xec, 0x53, 0x6d, 0xfc, 0xfa, 0xe0, 0xf3,
		0xaa, 0xd3, 0x0a, 0x9f, 0x6b, 0xe3, 0xbd, 0x35, 0xef, 0x54, 0xc7, 0x7b, 0x6f, 0xfc, 0x8c, 0xca,
		0x78, 0x67, 0xe9, 0x54, 0xff, 0x78, 0x71, 0xdd, 0x05, 0xe5, 0x35, 0x17, 0x94, 0xd6, 0x5d, 0x50,
		0x5a, 0x73, 0xc1, 0x5a, 0x91, 0x8a, 0x6b, 0x2e, 0xa8, 0x8c, 0x9f, 0x97, 0xce, 0xdf, 0x59, 0x7d,
		0x6a, 0x75, 0x9c, 0x7d, 0x5e, 0xf7, 0x5e, 0x6d, 0xfc, 0xbc, 0x97, 0xcd, 0x02, 0x78, 0xa4, 0x1e,
		0x78, 0xc0, 0xec, 0xe2, 0x37, 0x3b, 0x00, 0xb1, 0xad, 0xe4, 0x05, 0xe9, 0xde, 0x37, 0xaa, 0x8c,
		0xe5, 0xa9, 0xf2, 0xcc, 0xbe, 0x31, 0x2e, 0x6d, 0xd6, 0xf2, 0x4c, 0xe9, 0xa3, 0x81, 0xbc, 0x97,
		0xda, 0x78, 0x74, 0xeb, 0x66, 0x13, 0x49, 0xc5, 0xef, 0x05, 0x49, 0x0b, 0xbb, 0xe5, 0x72, 0xb5,
		0x56, 0x2e, 0xe7, 0x6b, 0xa5, 0x5a, 0xbe, 0x5e, 0xa9, 0x14, 0xaa, 0x85, 0x0a, 0x61, 0xe1, 0x2f,
		0xdc, 0xae, 0x74, 0x65, 0xf7, 0xe0, 0xd1, 0xda, 0xcb, 0xe8, 0xd1, 0x60, 0xc0, 0x41, 0xd4, 0xef,
		0x5e, 0x50, 0x3c, 0xef, 0x89, 0x81, 0x27, 0x3f, 0xc1, 0x53, 0x32, 0xf5, 0x45, 0x96, 0x30, 0xc6,
		0xb5, 0x95, 0xee, 0xca, 0xdf, 0x0c, 0x3a, 0x21, 0xe6, 0xb2, 0xa2, 0x03, 0xe2, 0x23, 0xe2, 0xa1,
		0x03, 0x62, 0x83, 0xda, 0x88, 0x0e, 0x88, 0x8d, 0x5a, 0x0e, 0x3a, 0x20, 0x22, 0x16, 0x18, 0x1d,
		0x10, 0xdb, 0x9c, 0x4f, 0xf0, 0xe9, 0x80, 0xa0, 0x3b, 0x01, 0xe9, 0x75, 0x18, 0xa7, 0x38, 0x11,
		0x69, 0x1e, 0x2a, 0xe7, 0x13, 0x92, 0xfe, 0xf5, 0x5f, 0x00, 0x9c, 0x3c, 0x69, 0xbc, 0xf0, 0xd9,
		0x74, 0x12, 0xd3, 0x04, 0x4c, 0x01, 0xbe, 0xb3, 0x85, 0xef, 0xb7, 0xa2, 0xf3, 0x73, 0x34, 0xa4,
		0x0f, 0xdd, 0xa7, 0x72, 0x02, 0xb6, 0x03, 0xb6, 0x03, 0xb6, 0x03, 0xb6, 0x03, 0xb6, 0x03, 0xb6,
		0x03, 0xb6, 0xb3, 0x82, 0xed, 0xb7, 0x8e, 0x33, 0x90, 0x42, 0x73, 0x80, 0xed, 0x05, 0x00, 0x5a,
		0xbe, 0x80, 0x56, 0x7a, 0x86, 0xd4, 0xbe, 0x9b, 0xeb, 0x0d, 0x62, 0x26, 0x29, 0x40, 0x2d, 0x40,
		0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x8c,
		0xe2, 0xe5, 0x18, 0x76, 0x9c, 0xfb, 0xfb, 0x91, 0x56, 0xe6, 0x91, 0x4b, 0xa7, 0xc5, 0x6b, 0x81,
		0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0x01, 0x71, 0xd1, 0x6e,
		0x11, 0x0d, 0xc4, 0xdd, 0x96, 0x76, 0x8b, 0x19, 0x7a, 0x52, 0xd2, 0x0b, 0x9f, 0x3f, 0xa2, 0xe3,
		0x62, 0x3b, 0xb0, 0xbc, 0xfc, 0x6d, 0x6c, 0x76, 0x78, 0x7e, 0x95, 0xd0, 0xc0, 0xf4, 0xc0, 0xf4,
		0xc0, 0xf4, 0xc0, 0xf4, 0xc0, 0xf4, 0xc0, 0xf4, 0xc0, 0xf4, 0xc0, 0xf4, 0xc0, 0xf4, 0xff, 0xf4,
		0x6f, 0x11, 0x41, 0xf9, 0xb8, 0xfe, 0x05, 0xa2, 0x02, 0xb6, 0xdf, 0x0e, 0x6c, 0xaf, 0xf4, 0x83,
		0x18, 0xa8, 0xae, 0xed, 0x4a, 0xe1, 0x39, 0x9a, 0x3e, 0xac, 0x7f, 0x25, 0x2f, 0x10, 0x3d, 0x10,
		0x3d, 0x10, 0x3d, 0x10, 0x3d, 0x10, 0x3d, 0x10, 0x3d, 0x10, 0x3d, 0xaf, 0x65, 0xa1, 0xbb, 0x52,
		0x1b, 0x65, 0x1e, 0x99, 0xa0, 0x7a, 0xca, 0x8b, 0xa9, 0x9c, 0x4c, 0x6f, 0xe5, 0x81, 0xf0, 0x18,
		0xb8, 0xf8, 0x99, 0x02, 0x9c, 0x9c, 0x5f, 0xef, 0x9f, 0x9e, 0x1c, 0xb6, 0x2f, 0x2f, 0xbe, 0x5f,
		0x1d, 0xb5, 0x2f, 0x8f, 0xf6, 0x9b, 0x17, 0xe7, 0xd4, 0xbd, 0xfd, 0xb5, 0x18, 0x8c, 0xa4, 0xc7,
		0x62, 0xdd, 0xb7, 0x27, 0x1e, 0x2b, 0xd3, 0xbd, 0xd6, 0x86, 0xfd, 0x66, 0xfb, 0xf4, 0xe2, 0xa2,
		0x41, 0x7f, 0xd1, 0xb4, 0xf1, 0x67, 0xa8, 0x40, 0x34, 0x2a, 0xf0, 0xf5, 0xf4, 0x7b, 0xf3, 0xea,
		0xe8, 0x12, 0x7a, 0x90, 0x76, 0x3d, 0xb8, 0x38, 0x3f, 0x3e, 0x3a, 0x84, 0x06, 0xa4, 0x57, 0x03,
		0x2e, 0x2e, 0x4f, 0xbe, 0x9d, 0x9c, 0xef, 0x5f, 0x5d, 0x5c, 0x32, 0xd0, 0x02, 0xd2, 0x12, 0xb6,
		0x90, 0xdf, 0x31, 0x97, 0x8a, 0x22, 0x7b, 0x3c, 0x10, 0xb7, 0x72, 0x40, 0x9f, 0x34, 0x9e, 0x88,
		0x09, 0xae, 0xf8, 0x23, 0xe2, 0x81, 0x2b, 0xde, 0xa0, 0x22, 0x82, 0x2b, 0xde, 0xa8, 0xe5, 0x80,
		0x2b, 0x8e, 0x58, 0x60, 0x70, 0xc5, 0x5b, 0x9c, 0x1f, 0x30, 0xe2, 0x8a, 0x3d, 0xe3, 0x2a, 0xdd,
		0xe7, 0x40, 0x13, 0xef, 0x42, 0x03, 0xdf, 0x71, 0xd7, 0xe4, 0x6f, 0xe3, 0x0a, 0x7b, 0xa4, 0x3d,
		0x23, 0x6e, 0x07, 0xc4, 0x75, 0xd1, 0x95, 0x3d, 0xe9, 0x4a, 0xdd, 0xc1, 0x0e, 0x8c, 0x1b, 0x34,
		0xec, 0xcb, 0xe3, 0xaf, 0xb5, 0x72, 0xa9, 0xb8, 0x97, 0x39, 0xf8, 0xd6, 0xc8, 0x9c, 0x35, 0x4e,
		0x9b, 0xf6, 0x81, 0xf0, 0x64, 0x37, 0x73, 0x64, 0xee, 0xa4, 0xab, 0xa5, 0xc9, 0x5c, 0x37, 0xce,
		0x39, 0x6c, 0x19, 0xc5, 0x04, 0x32, 0xad, 0x82, 0x4e, 0x73, 0xbd, 0xfe, 0xcc, 0x43, 0x76, 0x6e,
		0x28, 0x6a, 0x25, 0x9a, 0x7a, 0x93, 0xe2, 0x83, 0xf3, 0xda, 0x52, 0xe9, 0x5a, 0xe0, 0xbc, 0xb8,
		0xe2, 0x96, 0x09, 0x99, 0x54, 0x64, 0x42, 0x7a, 0x15, 0xc1, 0x7a, 0x7d, 0x48, 0x3c, 0xb0, 0x5e,
		0x1b, 0xd4, 0x44, 0xb0, 0x5e, 0x11, 0x41, 0x37, 0xb0, 0x5e, 0x91, 0xe3, 0x34, 0xb0, 0x5e, 0xdb,
		0xc6, 0x39, 0x80, 0xf5, 0xda, 0x78, 0x14, 0x07, 0xeb, 0xf5, 0xae, 0xbb, 0x06, 0xd6, 0x2b, 0x8a,
		0x07, 0x58, 0x2f, 0x40, 0xa6, 0xb7, 0x43, 0x27, 0xb0, 0x5e, 0x49, 0xa0, 0x29, 0xb0, 0x5e, 0x69,
		0x96, 0x0e, 0xac, 0x17, 0x5b, 0xdc, 0x62, 0x0d, 0x84, 0x67, 0xec, 0x7b, 0xa7, 0xab, 0x7a, 0x4a,
		0x76, 0x39, 0x90, 0x5f, 0x8b, 0xe2, 0x82, 0x03, 0xfb, 0x88, 0x78, 0xe0, 0xc0, 0x36, 0xa8, 0x90,
		0xe0, 0xc0, 0x22, 0x02, 0x72, 0xe0, 0xc0, 0x22, 0x47, 0x6d, 0xe0, 0xc0, 0xb6, 0x8d, 0x81, 0xe0,
		0xc3, 0x81, 0x19, 0x75, 0x2f, 0x8d, 0xea, 0xfc, 0xf4, 0xaa, 0x65, 0x06, 0x44, 0xd8, 0x2e, 0x61,
		0x11, 0xbf, 0x6b, 0x65, 0x3c, 0xff, 0x96, 0x6a, 0xa1, 0x1d, 0x4f, 0x76, 0x1c, 0xdd, 0xf5, 0x28,
		0xdf, 0xd2, 0x4b, 0xa1, 0xfb, 0x60, 0x9d, 0x36, 0x70, 0x23, 0xcf, 0x94, 0xe6, 0x43, 0xd1, 0x04,
		0x13, 0xac, 0xe9, 0x62, 0xce, 0x25, 0x79, 0x8f, 0x5d, 0xd1, 0x31, 0xca, 0xd1, 0x87, 0xaa, 0x3f,
		0x31, 0x2f, 0x2e, 0x82, 0x9f, 0xcb, 0xbe, 0x30, 0xea, 0xc1, 0xbf, 0xd7, 0x3d, 0x31, 0xf0, 0x24,
		0x66, 0x59, 0x6e, 0xc2, 0xd4, 0xc4, 0x6f, 0x7e, 0xa6, 0x56, 0xd8, 0x2d, 0x97, 0xab, 0xb5, 0x72,
		0x39, 0x5f, 0x2b, 0xd5, 0xf2, 0xf5, 0x4a, 0xa5, 0x50, 0xa5, 0xbc, 0xd8, 0x05, 0xac, 0x0f, 0xf8,
		0x9a, 0x91, 0x74, 0xe0, 0x3c, 0xd9, 0x7a, 0x77, 0xeb, 0x7e, 0x34, 0x30, 0x8a, 0xc7, 0xce, 0x9c,
		0x73, 0x51, 0xc1, 0x75, 0x7e, 0x44, 0x3c, 0x70, 0x9d, 0x1b, 0x54, 0x46, 0x70, 0x9d, 0x1b, 0xb5,
		0x1c, 0x70, 0x9d, 0x11, 0x0b, 0x0c, 0xae, 0x73, 0x8b, 0xf3, 0x33, 0x6c, 0xcd, 0x19, 0x41, 0x18,
		0xc7, 0xd6, 0x9c, 0x8c, 0x61, 0xed, 0x50, 0x4a, 0xd7, 0x56, 0x43, 0xfa, 0xa0, 0x76, 0x26, 0x28,
		0x20, 0x2d, 0x20, 0x2d, 0x20, 0x2d, 0x20, 0x2d, 0x20, 0x2d, 0x20, 0x2d, 0x20, 0x2d, 0xaf, 0x45,
		0xbe, 0x87, 0xb6, 0xe8, 0x76, 0x5d, 0xe9, 0x79, 0x1c, 0x50, 0x6d, 0x9d, 0xb0, 0x8c, 0xd3, 0x31,
		0x47, 0x35, 0x7c, 0x63, 0x9a, 0xf9, 0x50, 0x66, 0xa0, 0x9b, 0x4b, 0x3a, 0xba, 0xcb, 0x40, 0xd6,
		0x86, 0x30, 0x46, 0xba, 0x9a, 0xc5, 0x32, 0xe9, 0x81, 0xc0, 0x3b, 0x37, 0x79, 0xbb, 0xde, 0x7a,
		0xbe, 0x29, 0xd8, 0xf5, 0xd6, 0xe4, 0x69, 0x21, 0xf8, 0xf3, 0x54, 0x1c, 0x3f, 0x17, 0x6f, 0xf2,
		0x76, 0x79, 0x7a, 0xb4, 0x58, 0xb9, 0xc9, 0xdb, 0x95, 0x56, 0x76, 0xe7, 0xc7, 0x8f, 0x2f, 0xef,
		0xbd, 0x26, 0xfb, 0x54, 0x1a, 0xd3, 0x9f, 0xdb, 0xd0, 0xe2, 0xa0, 0x5e, 0x17, 0xcd, 0x93, 0xff,
		0xb0, 0xd3, 0xb1, 0xbf, 0x77, 0xe2, 0xd2, 0xb2, 0xec, 0x5f, 0x0c, 0xf4, 0x8c, 0x76, 0x3d, 0xf9,
		0x33, 0xc2, 0xec, 0xc6, 0xc2, 0x6c, 0x15, 0x61, 0x16, 0x61, 0x76, 0x12, 0x66, 0x03, 0x6f, 0x26,
		0xec, 0xde, 0xbe, 0x7d, 0xdc, 0x7a, 0x2a, 0x7c, 0x2e, 0x8f, 0xf7, 0xb2, 0x4f, 0xb5, 0xf1, 0xeb,
		0x83, 0xcf, 0xab, 0x4e, 0x2b, 0x7c, 0xae, 0x8d, 0xf7, 0xd6, 0xbc, 0x53, 0x1d, 0xef, 0xbd, 0xf1,
		0x33, 0x2a, 0xe3, 0x9d, 0xa5, 0x53, 0xfd, 0xe3, 0xc5, 0x75, 0x17, 0x94, 0xd7, 0x5c, 0x50, 0x5a,
		0x77, 0x41, 0x69, 0xcd, 0x05, 0x6b, 0x45, 0x2a, 0xae, 0xb9, 0xa0, 0x32, 0x7e, 0x5e, 0x3a, 0x7f,
		0x67, 0xf5, 0xa9, 0xd5, 0x71, 0xf6, 0x79, 0xdd, 0x7b, 0xb5, 0xf1, 0xf3, 0x5e, 0x36, 0x0b, 0xe0,
		0x91, 0x7a, 0xe0, 0x01, 0xb3, 0x8b, 0xdf, 0xec, 0x00, 0xc4, 0xb6, 0x92, 0x17, 0xcc, 0xa0, 0xb1,
		0x8f, 0x33, 0x94, 0x9e, 0x14, 0x16, 0x87, 0xc2, 0xdc, 0xd9, 0xaa, 0xcb, 0xa4, 0x0c, 0x3a, 0x93,
		0x16, 0xb5, 0xd0, 0x8f, 0x88, 0x87, 0x5a, 0xe8, 0x06, 0xf5, 0x11, 0xb5, 0xd0, 0x8d, 0x5a, 0x0e,
		0x6a, 0xa1, 0x11, 0x0b, 0x8c, 0x5a, 0xe8, 0x16, 0x53, 0x62, 0x8c, 0x6a, 0xa1, 0x23, 0xa5, 0x4d,
		0xa9, 0xc8, 0xa0, 0x0e, 0x5a, 0xc3, 0xac, 0xe0, 0x3f, 0x7c, 0x60, 0x56, 0xf0, 0x66, 0x85, 0xc5,
		0xac, 0xe0, 0xb8, 0x7c, 0x15, 0x66, 0x05, 0x47, 0x60, 0x6a, 0x1c, 0x67, 0x05, 0x97, 0x8b, 0xf5,
		0x72, 0xbd, 0x5a, 0x2b, 0xd6, 0x31, 0x17, 0x18, 0x36, 0xc7, 0x01, 0xa0, 0xd2, 0x97, 0x0e, 0x94,
		0x21, 0x5b, 0x9f, 0x6e, 0x79, 0x01, 0x9d, 0x30, 0xab, 0x64, 0xdb, 0x3d, 0x71, 0xaf, 0x06, 0x8f,
		0xf4, 0xb9, 0xc3, 0xd5, 0x62, 0x83, 0x44, 0xfc, 0x88, 0x78, 0x20, 0x11, 0x37, 0xa8, 0x98, 0x20,
		0x11, 0x37, 0x6a, 0x39, 0x20, 0x11, 0x23, 0x16, 0x18, 0x24, 0xe2, 0x16, 0x67, 0x6b, 0x9c, 0x26,
		0x54, 0x74, 0xa5, 0x36, 0xca, 0x3c, 0xba, 0xb2, 0xc7, 0x61, 0x46, 0x05, 0xe1, 0xe4, 0xd1, 0x3a,
		0x99, 0xde, 0xca, 0x03, 0xe1, 0x31, 0x70, 0xf1, 0x33, 0x05, 0xd8, 0x3f, 0x3e, 0x69, 0x37, 0xfd,
		0xff, 0xae, 0xfe, 0xdb, 0x38, 0xa2, 0xee, 0xe6, 0x03, 0x32, 0xc1, 0x63, 0xd1, 0x2a, 0xc5, 0x84,
		0x9e, 0x99, 0xa9, 0xc1, 0x49, 0xe3, 0xba, 0xdc, 0x3e, 0x3e, 0xbd, 0xf8, 0xdf, 0x66, 0xe3, 0xe8,
		0xab, 0x05, 0x9a, 0x2e, 0x9d, 0x0a, 0x70, 0xba, 0x7f, 0x70, 0x74, 0x7a, 0x74, 0xd8, 0xfe, 0x7e,
		0x7e, 0xf2, 0x75, 0xbf, 0x79, 0x05, 0x3d, 0x48, 0xa9, 0x1e, 0x60, 0xfc, 0xd3, 0x3c, 0xfe, 0x55,
		0xf8, 0x01, 0xe8, 0x41, 0xa0, 0x07, 0x18, 0xff, 0xd4, 0x8e, 0xff, 0x69, 0xf1, 0xba, 0x71, 0xde,
		0x3e, 0xe2, 0xb1, 0x81, 0x16, 0x46, 0x3f, 0x92, 0xd1, 0xbf, 0x6e, 0x9c, 0x36, 0x31, 0xfa, 0x29,
		0x1c, 0xfd, 0x92, 0x3f, 0xfa, 0x01, 0x12, 0x3c, 0xfb, 0x7e, 0x7a, 0x85, 0x18, 0x00, 0x3d, 0x00,
		0x12, 0x80, 0x16, 0x54, 0xe1, 0x0d, 0xa0, 0x07, 0xc8, 0x0b, 0x52, 0xae, 0x05, 0x27, 0xe7, 0xff,
		0xd3, 0xbc, 0xda, 0xbf, 0x3a, 0xc2, 0xe0, 0xa7, 0x78, 0xf0, 0xdb, 0xcd, 0xc6, 0x31, 0x14, 0x20,
		0xcd, 0x0a, 0x00, 0x62, 0x20, 0x95, 0x0a, 0xd0, 0xbc, 0xbc, 0x3a, 0x6a, 0x37, 0x2e, 0x4e, 0x4f,
		0xbe, 0xfe, 0x37, 0x48, 0x0c, 0xa0, 0x03, 0xa9, 0xd7, 0x81, 0x2a, 0x74, 0x20, 0x7d, 0x3a, 0x70,
		0xdd, 0x38, 0xe7, 0xd5, 0x30, 0x40, 0x5a, 0xc2, 0x16, 0xfa, 0xfe, 0x98, 0x4b, 0x45, 0x78, 0x8e,
		0x81, 0xeb, 0x8c, 0x8c, 0xb4, 0xbb, 0xca, 0x33, 0x4a, 0xf7, 0x47, 0xca, 0xbb, 0x93, 0x2e, 0x9b,
		0x89, 0x06, 0xab, 0x64, 0xc7, 0x6c, 0x83, 0x8f, 0x88, 0x87, 0xd9, 0x06, 0x1b, 0xd4, 0x4e, 0xcc,
		0x36, 0xd8, 0xa8, 0xe5, 0x60, 0xb6, 0x41, 0xc4, 0x02, 0x63, 0xb6, 0xc1, 0x16, 0x67, 0x11, 0x8c,
		0x66, 0x1b, 0xf0, 0x09, 0xe7, 0x19, 0xec, 0xe3, 0x90, 0xaa, 0xe4, 0x76, 0x0e, 0x3c, 0x8d, 0xab,
		0x74, 0x1f, 0x4b, 0x4b, 0x6f, 0x18, 0xdc, 0xb1, 0xdf, 0xc1, 0x61, 0xb2, 0x58, 0xec, 0x4d, 0xc1,
		0xae, 0x4c, 0x5f, 0x97, 0xc7, 0xcf, 0xd5, 0xf9, 0x82, 0xf9, 0x4f, 0xa5, 0xf1, 0x73, 0xb5, 0xb2,
		0xf0, 0xba, 0xe8, 0xbf, 0xf6, 0x0f, 0x14, 0xa7, 0x2b, 0xea, 0x57, 0x2b, 0x95, 0xd2, 0x64, 0x4d,
		0xfd, 0xbd, 0x55, 0x1f, 0xbe, 0x1b, 0x7c, 0x78, 0x69, 0xfa, 0xba, 0x3e, 0x7e, 0x2e, 0xdf, 0xe4,
		0x0b, 0xd3, 0x57, 0xbb, 0xe3, 0xe7, 0x72, 0xf1, 0x26, 0x6f, 0xef, 0x4e, 0x5f, 0xd7, 0xfc, 0xd7,
		0xf5, 0x9b, 0x7c, 0x78, 0x7a, 0x35, 0x38, 0x50, 0x5e, 0x38, 0xa5, 0x32, 0x39, 0x52, 0x0f, 0xbe,
		0x31, 0x14, 0x78, 0xb2, 0x08, 0xc7, 0x4d, 0xde, 0xae, 0xce, 0xa5, 0x9e, 0x2e, 0xcc, 0x31, 0xff,
		0xb6, 0x62, 0x78, 0x6c, 0xe1, 0x3b, 0xc3, 0x43, 0x93, 0x4f, 0xc4, 0x02, 0xd0, 0x9b, 0x31, 0x8b,
		0x6d, 0xd9, 0x79, 0x02, 0xd6, 0xf1, 0xc2, 0x3a, 0xb0, 0x50, 0xf3, 0x96, 0x62, 0x6d, 0x00, 0x1a,
		0x00, 0x9a, 0x0c, 0xb6, 0xa4, 0xfa, 0x87, 0xcd, 0x82, 0xf6, 0xa2, 0x8c, 0x0d, 0x40, 0x1d, 0x40,
		0x1d, 0xcc, 0x55, 0x18, 0xd0, 0x00, 0xd0, 0x00, 0xd0, 0x00, 0xd0, 0x80, 0x38, 0xd7, 0xc1, 0x2c,
		0xe1, 0x02, 0xea, 0x00, 0xea, 0x88, 0x91, 0xeb, 0x80, 0x75, 0x00, 0xd0, 0x6c, 0x10, 0xd0, 0x60,
		0x85, 0x59, 0xe6, 0xf7, 0x8b, 0x62, 0xf7, 0xd7, 0x83, 0x18, 0xa8, 0xee, 0xa4, 0x81, 0x8a, 0x7e,
		0xbb, 0xd7, 0xa2, 0xb0, 0xe8, 0xef, 0xfa, 0x88, 0x78, 0xe8, 0xef, 0xda, 0xa0, 0x3a, 0xa2, 0xbf,
		0x6b, 0xa3, 0x96, 0x83, 0xfe, 0xae, 0x88, 0x05, 0x46, 0x7f, 0xd7, 0x16, 0x13, 0x4b, 0x8c, 0xfa,
		0xbb, 0x6e, 0x1d, 0x67, 0x20, 0x85, 0xe6, 0xd0, 0xd3, 0x55, 0x00, 0xb4, 0x65, 0x28, 0x11, 0x31,
		0x13, 0xb5, 0xf6, 0xb5, 0x76, 0x8c, 0x30, 0xca, 0xa1, 0xb9, 0xf9, 0x95, 0xe5, 0x75, 0xee, 0xe4,
		0xbd, 0x18, 0x0a, 0x73, 0xe7, 0x9b, 0x67, 0xce, 0x19, 0x4a, 0xdd, 0x09, 0x80, 0xa2, 0xad, 0xa5,
		0xf9, 0xe5, 0xb8, 0x3f, 0x6d, 0xa5, 0x3d, 0x23, 0x74, 0x47, 0xe6, 0x5e, 0x1f, 0xf0, 0x96, 0x8e,
		0xe4, 0x86, 0xae, 0x63, 0x9c, 0x8e, 0x33, 0xf0, 0xc2, 0x67, 0xb9, 0xdb, 0xfe, 0x30, 0xe7, 0xaa,
		0xdb, 0x9c, 0xe8, 0x29, 0xdb, 0x13, 0x3d, 0xe5, 0x85, 0xcf, 0x72, 0x83, 0xe2, 0xc3, 0x50, 0xdb,
		0xf2, 0x61, 0xa8, 0x73, 0x83, 0x49, 0x50, 0xca, 0x05, 0x00, 0xdf, 0xcb, 0xad, 0x68, 0x03, 0xcd,
		0x99, 0xc7, 0xa1, 0xb4, 0x7b, 0xce, 0xc8, 0xb5, 0xa5, 0xb9, 0x93, 0xae, 0x96, 0xc6, 0xf6, 0x64,
		0xdf, 0x0f, 0x6a, 0x0b, 0x6f, 0x05, 0x17, 0xe6, 0xfc, 0x9f, 0xe3, 0x05, 0xff, 0xe7, 0x3c, 0x23,
		0x48, 0x66, 0x0c, 0x96, 0x67, 0xdc, 0x51, 0xc7, 0xe8, 0xa9, 0x5f, 0xbc, 0x08, 0xef, 0xfb, 0xf9,
		0xe4, 0x9e, 0x9e, 0x4c, 0x6f, 0x69, 0xfb, 0xd5, 0x6b, 0xef, 0xf5, 0x81, 0x76, 0x63, 0x76, 0xcf,
		0xc3, 0x67, 0xed, 0x83, 0xfe, 0xb0, 0x7d, 0xa9, 0x6e, 0xdb, 0xfb, 0x3d, 0xd5, 0xf4, 0x6f, 0xf9,
		0xec, 0x49, 0xfb, 0xb4, 0x78, 0x3d, 0xd4, 0x47, 0x0f, 0x43, 0xdd, 0x3e, 0x75, 0x3a, 0xfe, 0x19,
		0x97, 0xc1, 0xfd, 0x9e, 0xfc, 0x39, 0x5c, 0xbc, 0xdd, 0x6d, 0x3f, 0xa6, 0x1c, 0x3b, 0x23, 0xf7,
		0x68, 0x7a, 0xb3, 0x9b, 0x93, 0x7b, 0x1d, 0x1e, 0x0f, 0x2e, 0x69, 0x37, 0xfc, 0x3b, 0x1d, 0xfc,
		0xdf, 0x6e, 0x06, 0x77, 0xfa, 0x13, 0x5c, 0x13, 0x71, 0xb7, 0x64, 0x8d, 0xf4, 0x4f, 0xed, 0xfc,
		0xd2, 0xb6, 0x30, 0xc6, 0x55, 0xb7, 0xfe, 0xf8, 0x93, 0x73, 0x4d, 0xf3, 0x2d, 0x2c, 0x97, 0x65,
		0x25, 0xe6, 0xe0, 0x67, 0x70, 0x81, 0x98, 0x58, 0x54, 0xb3, 0x7d, 0xca, 0x59, 0x3e, 0x8f, 0xec,
		0x9e, 0x7a, 0x56, 0xcf, 0x26, 0x9b, 0x67, 0x93, 0xc5, 0xb3, 0xc9, 0xde, 0x91, 0x0a, 0xfc, 0xd3,
		0x28, 0x1e, 0x2a, 0x9a, 0xd3, 0xaa, 0x97, 0x83, 0x2c, 0xfd, 0x72, 0xc0, 0xb2, 0xc8, 0xb4, 0x8b,
		0x02, 0x05, 0x14, 0x05, 0xb6, 0x0e, 0x2e, 0xf0, 0x82, 0x0d, 0x5c, 0xe0, 0x03, 0x3b, 0x18, 0xc1,
		0x0e, 0x4e, 0xb0, 0x83, 0x15, 0x34, 0xe1, 0x05, 0x51, 0x98, 0x41, 0x1e, 0x6e, 0x84, 0x02, 0xfa,
		0xb1, 0xdb, 0x36, 0xd4, 0x4b, 0x17, 0x2f, 0x3c, 0xfc, 0x5c, 0x64, 0xe2, 0xa6, 0x4d, 0xbb, 0x17,
		0x81, 0x0d, 0xfc, 0xe0, 0x04, 0x43, 0x78, 0xc2, 0x11, 0x6e, 0xb0, 0x84, 0x2d, 0x3c, 0x61, 0x0b,
		0x53, 0xd8, 0xc2, 0x15, 0xda, 0xb0, 0x85, 0x38, 0x7c, 0x09, 0x47, 0xfd, 0x8a, 0x03, 0x40, 0x78,
		0xe1, 0x77, 0x07, 0x52, 0xf4, 0x68, 0xef, 0x96, 0xbb, 0xc4, 0x4e, 0xd4, 0x78, 0xcc, 0x9a, 0x09,
		0x6a, 0xd4, 0x5f, 0xbe, 0x4c, 0x8a, 0xba, 0xb9, 0x39, 0x18, 0x43, 0xf3, 0xf6, 0xb6, 0x99, 0xbe,
		0x35, 0xa9, 0xdb, 0xb3, 0x49, 0x0c, 0xa8, 0xb6, 0x19, 0xac, 0xb4, 0x76, 0x24, 0x05, 0x48, 0x0a,
		0x90, 0x14, 0x20, 0x29, 0x40, 0x52, 0x00, 0x54, 0xc0, 0x33, 0x29, 0xa0, 0xce, 0x6d, 0x86, 0x82,
		0x06, 0x18, 0x75, 0x20, 0x35, 0x1f, 0x17, 0xf6, 0x82, 0xea, 0xf4, 0x25, 0x67, 0xe2, 0x08, 0x78,
		0x30, 0x9e, 0xec, 0x40, 0x0e, 0x47, 0xb0, 0xc3, 0x1b, 0xf4, 0x70, 0x05, 0x3f, 0xec, 0x41, 0x10,
		0x7b, 0x30, 0xc4, 0x1e, 0x14, 0xf1, 0x00, 0x47, 0x4c, 0x40, 0x52, 0xa8, 0x0d, 0x6c, 0x18, 0xd4,
		0x25, 0xbf, 0x3d, 0x52, 0xda, 0x14, 0xaa, 0x9c, 0x7c, 0xf6, 0x14, 0x85, 0x54, 0x19, 0x89, 0x7c,
		0x29, 0x74, 0x5f, 0xb2, 0x59, 0x6f, 0x65, 0xf6, 0xe0, 0x15, 0x13, 0x83, 0x1b, 0x7d, 0xa6, 0x34,
		0xbb, 0x60, 0x1e, 0x0a, 0x7f, 0x2d, 0x06, 0x23, 0xc9, 0x07, 0xae, 0x2e, 0xc9, 0x7f, 0xec, 0x8a,
		0x8e, 0x51, 0x8e, 0x3e, 0x54, 0x7d, 0x65, 0x3c, 0xc6, 0x3f, 0xe4, 0x5c, 0xf6, 0x85, 0x51, 0x0f,
		0xfe, 0x58, 0xf4, 0xc4, 0xc0, 0x93, 0xec, 0x7e, 0xc5, 0xf8, 0x33, 0x43, 0xd3, 0x15, 0xbf, 0xf9,
		0x9b, 0x6e, 0xb5, 0x52, 0x29, 0x55, 0x60, 0xbe, 0x30, 0xdf, 0x14, 0x60, 0x73, 0x7e, 0xd2, 0xb6,
		0x90, 0xf3, 0x6c, 0xd0, 0xcc, 0xe4, 0x6f, 0xe3, 0x0a, 0x7b, 0xa4, 0x3d, 0x23, 0x6e, 0x07, 0xcc,
		0xb2, 0x1f, 0x57, 0xf6, 0xa4, 0x2b, 0x75, 0x07, 0xa0, 0x3c, 0xc6, 0x54, 0xf3, 0xf2, 0xf8, 0x6b,
		0xa6, 0x5c, 0xac, 0x15, 0x32, 0x76, 0x66, 0x3f, 0x73, 0xe0, 0xb8, 0x5d, 0xe9, 0x66, 0xbe, 0x09,
		0x23, 0x7f, 0x89, 0xc7, 0xcc, 0x6c, 0x5e, 0x7d, 0xa6, 0x9c, 0xd9, 0x39, 0xf8, 0xd6, 0xb0, 0xcb,
		0x59, 0x8b, 0x21, 0x86, 0x61, 0x4a, 0x27, 0xce, 0x53, 0xeb, 0x39, 0xad, 0x38, 0xb7, 0x10, 0xa6,
		0x28, 0x80, 0x3b, 0xc3, 0x18, 0xfe, 0x90, 0x45, 0xa6, 0xf1, 0x9d, 0x26, 0x04, 0xe4, 0x03, 0x69,
		0x39, 0x21, 0x1f, 0xec, 0x61, 0xbf, 0x01, 0x7f, 0xc1, 0x67, 0xce, 0xcf, 0x12, 0x42, 0xe0, 0x32,
		0xf7, 0x67, 0x1e, 0x30, 0x51, 0x11, 0x8f, 0x54, 0x60, 0x54, 0xc4, 0x01, 0x61, 0xdf, 0x0d, 0x5d,
		0x51, 0x11, 0x4f, 0x1c, 0xa7, 0xa2, 0x22, 0x9e, 0x62, 0x04, 0x92, 0xe1, 0x5f, 0x11, 0xdf, 0x65,
		0x58, 0x10, 0xaf, 0xa0, 0x20, 0x1e, 0xf1, 0x03, 0x05, 0xf1, 0x78, 0x85, 0x47, 0x41, 0x9c, 0x8a,
		0x6b, 0x44, 0x41, 0x3c, 0x01, 0xd3, 0xdd, 0x86, 0x82, 0x78, 0xb1, 0x82, 0x72, 0x38, 0x8c, 0x37,
		0x0d, 0xc0, 0x9c, 0x9f, 0xb4, 0x28, 0x87, 0x6f, 0xd2, 0xcc, 0x50, 0x0e, 0x07, 0x24, 0x7f, 0x57,
		0x9e, 0x89, 0x72, 0x38, 0xf9, 0xc4, 0x1a, 0xe5, 0x70, 0x7a, 0x3f, 0x04, 0xe5, 0x70, 0x48, 0x9b,
		0x12, 0xe4, 0x83, 0x72, 0xf8, 0x06, 0xfc, 0x45, 0x50, 0x53, 0x7e, 0x98, 0xa6, 0xa3, 0x1c, 0xeb,
		0xe1, 0x13, 0xd9, 0x51, 0x10, 0x8f, 0x42, 0x5c, 0x14, 0xc4, 0x63, 0xd4, 0x66, 0x14, 0xc4, 0x13,
		0x02, 0xaf, 0x28, 0x88, 0x27, 0x8e, 0x54, 0x51, 0x10, 0x4f, 0x31, 0x06, 0xc9, 0xf0, 0x2e, 0x88,
		0xdf, 0x2a, 0x2d, 0xdc, 0x47, 0x86, 0x15, 0xf1, 0x3a, 0x23, 0x91, 0x4f, 0xa5, 0xee, 0x07, 0x8b,
		0x6f, 0x82, 0x7f, 0x8b, 0xf8, 0x4e, 0x6f, 0x45, 0x49, 0xbc, 0x80, 0xaa, 0x5a, 0xc2, 0xce, 0x11,
		0x25, 0xf1, 0x04, 0x4c, 0x17, 0x73, 0xc4, 0x61, 0xbe, 0x30, 0xdf, 0x0c, 0xa8, 0xe1, 0xc8, 0x1e,
		0x28, 0x8a, 0x6f, 0xd2, 0xcc, 0x50, 0x14, 0x07, 0x28, 0x7f, 0x57, 0xae, 0x89, 0xa2, 0x38, 0xf9,
		0xdc, 0x1a, 0x45, 0x71, 0x7a, 0x3f, 0x04, 0x45, 0x71, 0x48, 0x9b, 0x12, 0xe4, 0x83, 0xa2, 0xf8,
		0x66, 0x70, 0x99, 0xd4, 0x5d, 0xd9, 0xe5, 0x57, 0x12, 0x0f, 0x25, 0x47, 0x41, 0x3c, 0x0a, 0x71,
		0x51, 0x10, 0x8f, 0x51, 0x97, 0x51, 0x10, 0x4f, 0x08, 0xb8, 0xa2, 0x20, 0x9e, 0x38, 0x4a, 0x45,
		0x41, 0x3c, 0xc5, 0xf8, 0x23, 0xc3, 0xbc, 0x20, 0xee, 0x38, 0x03, 0x29, 0x34, 0xc3, 0x8a, 0x78,
		0xa1, 0x00, 0x15, 0xde, 0x2c, 0x8c, 0x06, 0xbd, 0x19, 0xfb, 0x03, 0xf4, 0x26, 0xd0, 0x61, 0x1c,
		0x28, 0x11, 0xf4, 0x26, 0x45, 0xe0, 0x08, 0x7a, 0x13, 0xd2, 0x7e, 0xe4, 0x01, 0x7a, 0x33, 0x35,
		0xd8, 0xcc, 0x72, 0x86, 0x46, 0x39, 0x5a, 0x0c, 0xf8, 0xd1, 0x9b, 0xa1, 0xe4, 0xa0, 0x37, 0xa3,
		0x10, 0x17, 0xf4, 0x66, 0x9c, 0xba, 0x0c, 0x7a, 0x33, 0x19, 0xe0, 0x0a, 0x7a, 0x33, 0x71, 0x94,
		0x0a, 0x7a, 0x33, 0xc5, 0xf8, 0x23, 0x03, 0x7a, 0x33, 0x19, 0x18, 0x02, 0x7a, 0x73, 0xa3, 0x77,
		0x15, 0xf4, 0x66, 0x12, 0x0f, 0xd0, 0x9b, 0x40, 0x87, 0x71, 0xa0, 0x44, 0xd0, 0x9b, 0x14, 0x81,
		0x23, 0xe8, 0x4d, 0x48, 0xfb, 0x91, 0x07, 0xe8, 0xcd, 0xd4, 0x60, 0x33, 0x6b, 0x28, 0x5c, 0xa3,
		0x38, 0xb2, 0x9b, 0x33, 0xc1, 0x41, 0x6e, 0x46, 0x21, 0x2e, 0xc8, 0xcd, 0x18, 0x55, 0x19, 0xe4,
		0x66, 0x42, 0xb0, 0x15, 0xe4, 0x66, 0xe2, 0x18, 0x15, 0xe4, 0x66, 0x8a, 0xd1, 0x47, 0x06, 0xe4,
		0x66, 0x32, 0x30, 0x04, 0xe4, 0xe6, 0x46, 0xef, 0x2a, 0xc8, 0xcd, 0x24, 0x1e, 0x20, 0x37, 0x81,
		0x0e, 0xe3, 0x40, 0x89, 0x20, 0x37, 0x29, 0x02, 0x47, 0x90, 0x9b, 0x90, 0xf6, 0x23, 0x0f, 0x90,
		0x9b, 0xa9, 0xc1, 0x66, 0x96, 0x71, 0x85, 0xf6, 0xd4, 0x74, 0x6d, 0x2e, 0x66, 0xfc, 0xe6, 0x82,
		0xec, 0xa0, 0x38, 0xa3, 0x10, 0x17, 0x14, 0x67, 0x8c, 0xda, 0x0c, 0x8a, 0x33, 0x21, 0xf0, 0x0a,
		0x8a, 0x33, 0x71, 0xa4, 0x0a, 0x8a, 0x33, 0xc5, 0x18, 0x24, 0x03, 0x8a, 0x33, 0x19, 0x18, 0x02,
		0x8a, 0x73, 0xa3, 0x77, 0x15, 0x14, 0x67, 0x12, 0x0f, 0x50, 0x9c, 0x40, 0x87, 0x71, 0xa0, 0x44,
		0x50, 0x9c, 0x14, 0x81, 0x23, 0x28, 0x4e, 0x48, 0xfb, 0x91, 0x07, 0x28, 0xce, 0x34, 0x48, 0x48,
		0x1c, 0x39, 0x5a, 0xfb, 0x5a, 0x3b, 0x46, 0x18, 0xe5, 0xf0, 0xd8, 0x22, 0xc7, 0xf2, 0x3a, 0x77,
		0xf2, 0x5e, 0x0c, 0x45, 0xb0, 0x73, 0x92, 0x95, 0x73, 0x86, 0x52, 0x77, 0x02, 0x8a, 0xd0, 0xd6,
		0xd2, 0xfc, 0x72, 0xdc, 0x9f, 0xb6, 0xf2, 0xd1, 0xaf, 0xee, 0xc8, 0xdc, 0xeb, 0x03, 0xde, 0xd2,
		0x91, 0xdc, 0x70, 0xea, 0x9f, 0xbd, 0xf0, 0x59, 0xee, 0xb6, 0x3f, 0xcc, 0xb9, 0xea, 0x36, 0x27,
		0x7a, 0xca, 0xf6, 0x44, 0x4f, 0x79, 0xe1, 0xb3, 0xdc, 0xa0, 0xf8, 0x30, 0xd4, 0xb6, 0x7c, 0x18,
		0xea, 0xdc, 0x60, 0x42, 0x17, 0xe4, 0x5c, 0x67, 0x64, 0xa4, 0x37, 0xf9, 0x63, 0x77, 0x95, 0x67,
		0x94, 0xee, 0x8f, 0x94, 0x77, 0x27, 0xdd, 0x9c, 0x79, 0x1c, 0x4a, 0xbb, 0xe7, 0x8c, 0x5c, 0x5b,
		0x9a, 0x3b, 0xe9, 0x6a, 0x69, 0x6c, 0x4f, 0xf6, 0xfd, 0xa8, 0xb1, 0xf0, 0x56, 0x70, 0x61, 0xce,
		0xff, 0x39, 0x5e, 0xf0, 0x7f, 0x6e, 0xa4, 0x7f, 0x6a, 0xe7, 0x97, 0xb6, 0x85, 0x31, 0xae, 0xba,
		0x0d, 0x3e, 0x7c, 0xe9, 0x50, 0xce, 0x33, 0xc2, 0x70, 0x00, 0x01, 0x96, 0x67, 0xdc, 0x51, 0xc7,
		0xe8, 0x29, 0xd8, 0xbc, 0x08, 0x07, 0xeb, 0x7c, 0x32, 0x10, 0x27, 0xd3, 0x71, 0x68, 0xbf, 0x7a,
		0xed, 0xbd, 0x3e, 0xd0, 0x9e, 0x05, 0x52, 0x2f, 0x7c, 0xd6, 0x3e, 0xe8, 0x0f, 0xdb, 0x97, 0xea,
		0xb6, 0xbd, 0xdf, 0x53, 0x4d, 0x7f, 0x9c, 0x66, 0x4f, 0xda, 0xa7, 0xc5, 0xeb, 0xa1, 0x3e, 0x7a,
		0x18, 0xea, 0xf6, 0xa9, 0xd3, 0xf1, 0xcf, 0xb8, 0x0c, 0x06, 0x69, 0xf2, 0xe7, 0x70, 0x71, 0x8c,
		0xda, 0x7e, 0xca, 0x7f, 0xec, 0x8c, 0xdc, 0xa3, 0xe9, 0x08, 0x35, 0x27, 0x03, 0x14, 0x1e, 0x0f,
		0x2e, 0x69, 0x37, 0xfc, 0xe1, 0x09, 0xfe, 0x6f, 0x7f, 0x9f, 0x8c, 0xc5, 0x7e, 0x38, 0x3a, 0x4b,
		0x47, 0xda, 0xcd, 0x60, 0x70, 0x3e, 0xc1, 0x65, 0x6e, 0x8f, 0x64, 0x44, 0x9d, 0xb8, 0x9f, 0x1b,
		0x84, 0x9b, 0x06, 0xfb, 0x3e, 0x85, 0xa8, 0x4b, 0xb0, 0x4e, 0x95, 0x67, 0x7c, 0x03, 0x21, 0x1d,
		0x62, 0xac, 0x33, 0xa5, 0x8f, 0x06, 0xd2, 0xb7, 0x7f, 0xe2, 0xfb, 0x1c, 0x59, 0x67, 0xe2, 0xf7,
		0x82, 0xa4, 0x85, 0xdd, 0x72, 0xb9, 0x5a, 0x2b, 0x97, 0xf3, 0xb5, 0x52, 0x2d, 0x5f, 0xaf, 0x54,
		0x0a, 0xd5, 0x02, 0xe1, 0xdd, 0xa6, 0xac, 0x0b, 0x3f, 0x43, 0x92, 0xdd, 0x03, 0x5f, 0x75, 0xf5,
		0x68, 0x30, 0xe0, 0x20, 0xea, 0x77, 0x4f, 0xba, 0xa4, 0x37, 0x8e, 0xa2, 0xea, 0xa1, 0x98, 0xc0,
		0x4b, 0xc0, 0xca, 0x11, 0x69, 0x40, 0x99, 0x46, 0x20, 0x49, 0x13, 0x42, 0xd2, 0x03, 0x68, 0xb4,
		0x24, 0x22, 0xe6, 0x88, 0xa9, 0x3b, 0xe0, 0x14, 0x3a, 0x5e, 0x82, 0x6e, 0x36, 0x05, 0xee, 0x95,
		0x96, 0x37, 0xa5, 0xe3, 0xb3, 0x68, 0x48, 0x42, 0xc4, 0x6b, 0xce, 0x12, 0xea, 0xa1, 0x94, 0xae,
		0xad, 0x86, 0x99, 0xe0, 0xaf, 0x6f, 0xc6, 0xb6, 0xea, 0x66, 0xbc, 0xa0, 0x90, 0x68, 0xaf, 0x70,
		0x0d, 0xb3, 0xb7, 0x44, 0xb7, 0xeb, 0x4a, 0xcf, 0xb3, 0x7b, 0xe2, 0x5e, 0x0d, 0xa8, 0x6c, 0x9f,
		0x4f, 0x33, 0xf9, 0xa6, 0x9b, 0x6c, 0xb3, 0x4a, 0xae, 0x09, 0x27, 0xd3, 0x84, 0x93, 0x67, 0x2a,
		0xde, 0x86, 0x28, 0x36, 0xdb, 0x76, 0x4c, 0x46, 0x08, 0x80, 0x6d, 0x1d, 0xf0, 0xa2, 0x01, 0xb3,
		0x92, 0x07, 0x35, 0xc9, 0x4a, 0x90, 0xb0, 0x83, 0xa3, 0xe6, 0xd8, 0xb6, 0xd8, 0xa1, 0x11, 0xf0,
		0x65, 0xdb, 0xe4, 0xc3, 0x92, 0x75, 0x5f, 0xc9, 0x39, 0x8d, 0x04, 0x1d, 0x86, 0x35, 0x69, 0x66,
		0x48, 0xda, 0x4f, 0x84, 0x1d, 0xb1, 0x14, 0x7a, 0x2b, 0xc2, 0xee, 0xf8, 0x84, 0xc5, 0xa0, 0x32,
		0xf9, 0x8e, 0xd2, 0xa4, 0x3a, 0x9a, 0x93, 0xe5, 0xa8, 0xb5, 0x39, 0x93, 0x9d, 0xdc, 0x46, 0xb6,
		0x07, 0x99, 0xec, 0x64, 0xb4, 0x74, 0x43, 0xd9, 0x43, 0x45, 0x83, 0x38, 0xb3, 0xa4, 0xa7, 0xe8,
		0x58, 0x77, 0xb8, 0x37, 0xbb, 0xa7, 0xa8, 0xd8, 0x35, 0xad, 0x79, 0xed, 0xe4, 0xe6, 0xad, 0x53,
		0x9c, 0x97, 0x4e, 0x7b, 0xde, 0x39, 0xd5, 0x99, 0x43, 0xe4, 0xe7, 0x8d, 0x93, 0x9f, 0xe6, 0x43,
		0x7e, 0xde, 0x37, 0x8a, 0x72, 0x8b, 0xa3, 0x45, 0x6e, 0x5e, 0x36, 0xc1, 0xf0, 0xf7, 0x22, 0x6b,
		0xdc, 0x25, 0x24, 0xd3, 0xa9, 0xd4, 0xfd, 0x80, 0x76, 0xa3, 0x35, 0xa5, 0x97, 0x60, 0x27, 0xcc,
		0x99, 0xa2, 0xdb, 0x23, 0x69, 0x5d, 0x8b, 0xc1, 0xc8, 0x57, 0xf9, 0x22, 0xd1, 0xb6, 0x68, 0xeb,
		0xd8, 0x15, 0x1d, 0xa3, 0x1c, 0x7d, 0xa8, 0xfa, 0x8a, 0x72, 0xff, 0xb6, 0x75, 0x2e, 0xfb, 0x62,
		0xba, 0xd6, 0x15, 0xcd, 0x76, 0x62, 0x82, 0xad, 0xc4, 0xd6, 0x99, 0xf8, 0x0d, 0xdb, 0x80, 0x6d,
		0x00, 0x98, 0x11, 0x95, 0xa6, 0x45, 0x08, 0x71, 0x34, 0x84, 0x31, 0xd2, 0xd5, 0xe4, 0x20, 0x87,
		0x75, 0x93, 0xb7, 0xeb, 0xc2, 0xee, 0xed, 0xdb, 0xc7, 0xad, 0xff, 0x6b, 0x61, 0xe8, 0x56, 0x0d,
		0xdd, 0x45, 0xf3, 0xe4, 0x3f, 0x64, 0xc7, 0xef, 0xef, 0xc5, 0x01, 0xfc, 0x8b, 0xd0, 0x08, 0xa2,
		0xe7, 0x82, 0x0a, 0x70, 0xb1, 0x1c, 0x57, 0xf5, 0x95, 0x16, 0x46, 0xe9, 0xfe, 0xa4, 0x4c, 0xef,
		0xda, 0x6a, 0x48, 0x8f, 0xb7, 0x5d, 0x2d, 0x26, 0x98, 0xdc, 0x55, 0xe2, 0x80, 0xc9, 0x7d, 0x8f,
		0x62, 0x81, 0xc9, 0x7d, 0x8f, 0xa6, 0x83, 0xc9, 0xfd, 0x43, 0x01, 0xc1, 0xe4, 0x32, 0x4a, 0xe9,
		0x09, 0x33, 0xb9, 0x6a, 0x68, 0x93, 0xb3, 0xc0, 0x90, 0xcf, 0xad, 0x13, 0x92, 0x69, 0x3a, 0x84,
		0x60, 0x73, 0xdf, 0xac, 0x58, 0x0f, 0x65, 0x9b, 0xec, 0xf2, 0xce, 0x14, 0x4b, 0x06, 0xe4, 0x13,
		0xf9, 0x50, 0xc0, 0x1d, 0x3f, 0x21, 0x6c, 0x3d, 0xdf, 0x14, 0xec, 0x7a, 0x6b, 0xf2, 0xb4, 0x10,
		0xfc, 0x79, 0x2a, 0x8e, 0x9f, 0x8b, 0x37, 0x79, 0xbb, 0x3c, 0x3d, 0x5a, 0xac, 0xdc, 0xe4, 0xed,
		0x4a, 0x2b, 0xbb, 0xf3, 0xe3, 0xc7, 0x97, 0xf7, 0x5e, 0x93, 0x7d, 0x2a, 0x8d, 0x73, 0xe1, 0x45,
		0xc5, 0xe9, 0xbb, 0xa5, 0x9b, 0xbc, 0x5d, 0x6c, 0x11, 0x5c, 0x4c, 0xb0, 0x45, 0x51, 0x8f, 0x28,
		0xb3, 0x0a, 0x73, 0x76, 0x61, 0x27, 0x71, 0x75, 0xca, 0xfe, 0x45, 0x50, 0xa1, 0x30, 0xbb, 0x9f,
		0x6b, 0xdc, 0xab, 0x22, 0xee, 0x6d, 0x69, 0xdc, 0xdb, 0x59, 0x60, 0x42, 0x9f, 0x0a, 0x9f, 0xcb,
		0xe3, 0xbd, 0xec, 0x53, 0x6d, 0xfc, 0xfa, 0xe0, 0xf3, 0xaa, 0xd3, 0x0a, 0x9f, 0x6b, 0xe3, 0xbd,
		0x35, 0xef, 0x54, 0xc7, 0x7b, 0x6f, 0xfc, 0x8c, 0xca, 0x78, 0x67, 0xe9, 0x54, 0xff, 0x78, 0x71,
		0xdd, 0x05, 0xe5, 0x35, 0x17, 0x94, 0xd6, 0x5d, 0x50, 0x5a, 0x73, 0xc1, 0x5a, 0x91, 0x8a, 0x6b,
		0x2e, 0xa8, 0x8c, 0x9f, 0x97, 0xce, 0xdf, 0x59, 0x7d, 0x6a, 0x75, 0x9c, 0x7d, 0x5e, 0xf7, 0x5e,
		0x6d, 0xfc, 0xbc, 0x97, 0xcd, 0xe6, 0x76, 0x0a, 0xbe, 0x57, 0xdf, 0x9d, 0xb8, 0xf9, 0x42, 0x6b,
		0xc9, 0xfb, 0x07, 0xff, 0x03, 0x17, 0x6c, 0x1f, 0x2e, 0x80, 0xb5, 0x91, 0xb5, 0x36, 0xa0, 0x26,
		0x16, 0x24, 0x58, 0x06, 0xa5, 0x32, 0x4a, 0x38, 0x36, 0xac, 0x41, 0x39, 0xae, 0xad, 0x86, 0xf6,
		0x60, 0xd6, 0x27, 0x48, 0xb4, 0x52, 0xf6, 0x42, 0x4a, 0x14, 0xca, 0x56, 0x89, 0x83, 0x42, 0xd9,
		0x7b, 0xf4, 0x0a, 0x85, 0xb2, 0xf7, 0x68, 0x3a, 0x0a, 0x65, 0x7f, 0x28, 0x20, 0x0a, 0x65, 0x8c,
		0xf8, 0x1d, 0xc2, 0x85, 0xb2, 0x91, 0xd2, 0xa6, 0x54, 0x24, 0x58, 0x25, 0xab, 0x11, 0x12, 0xe9,
		0x52, 0xe8, 0x3e, 0xaa, 0x64, 0x6f, 0xb8, 0x51, 0x2c, 0xe6, 0x3c, 0xa0, 0xad, 0xfb, 0x4f, 0x7d,
		0x07, 0xa6, 0x3c, 0x7c, 0xc0, 0x34, 0x38, 0x4c, 0x79, 0x28, 0x17, 0xeb, 0xe5, 0x7a, 0xb5, 0x56,
		0xac, 0x57, 0x60, 0x23, 0xdb, 0x6e, 0x23, 0xa0, 0x94, 0x56, 0x3e, 0x40, 0x29, 0x51, 0x90, 0x00,
		0x2b, 0xde, 0xbd, 0x94, 0x67, 0x2b, 0x57, 0xbc, 0xa3, 0xb2, 0xed, 0xd9, 0x96, 0xac, 0x78, 0x47,
		0x60, 0xa3, 0xb2, 0x04, 0x57, 0xbc, 0xfb, 0x94, 0x22, 0x37, 0x35, 0x5b, 0xd7, 0x5c, 0x7a, 0x2a,
		0xb3, 0x72, 0xea, 0x47, 0x86, 0x10, 0xcd, 0x4d, 0x63, 0xc1, 0x72, 0x3a, 0x0b, 0x94, 0x93, 0x5e,
		0x90, 0x9c, 0xd0, 0x02, 0xe4, 0x84, 0x16, 0x1c, 0x4f, 0xca, 0xcc, 0x09, 0x6d, 0xff, 0x4f, 0x68,
		0x3b, 0x7f, 0x42, 0x6b, 0x46, 0x5e, 0x1e, 0x7f, 0xad, 0x95, 0x4b, 0xc5, 0xbd, 0xcc, 0xc1, 0xb7,
		0x46, 0xe6, 0xac, 0x71, 0xda, 0xb4, 0x0f, 0x84, 0x27, 0xbb, 0x99, 0x59, 0xa0, 0xce, 0x5c, 0x37,
		0xce, 0xb1, 0x9a, 0xe4, 0xca, 0xf8, 0x45, 0x75, 0x13, 0x7c, 0x1e, 0x0b, 0x4a, 0xbe, 0x49, 0xf1,
		0xd2, 0x9e, 0x43, 0x7e, 0x4a, 0x17, 0x87, 0x90, 0x54, 0x94, 0x22, 0x92, 0x2b, 0x6f, 0x65, 0x8e,
		0x6c, 0x25, 0xba, 0x90, 0xf7, 0x16, 0x64, 0xc5, 0xc9, 0x38, 0xc1, 0xf8, 0x5d, 0x4f, 0xbc, 0xdf,
		0x18, 0xb3, 0xab, 0x49, 0xda, 0xc5, 0x6c, 0x85, 0x6b, 0x49, 0xc0, 0x95, 0x70, 0x75, 0x21, 0xf1,
		0x3a, 0x8d, 0xf8, 0x4c, 0x37, 0x46, 0xb3, 0xb5, 0x02, 0x45, 0x74, 0xb4, 0x9c, 0xeb, 0xa1, 0x18,
		0x19, 0xc7, 0xd7, 0xd6, 0x8e, 0xf3, 0x20, 0xdd, 0xc7, 0xd8, 0x0d, 0x39, 0x4c, 0xda, 0xfe, 0x55,
		0xb2, 0x98, 0x9d, 0x5b, 0x32, 0x9b, 0x43, 0x24, 0xd6, 0xde, 0x99, 0x64, 0x1b, 0x27, 0x8d, 0x76,
		0xcd, 0xa4, 0xd3, 0x71, 0x32, 0xed, 0x97, 0x64, 0x72, 0x6d, 0x32, 0xed, 0x94, 0xdb, 0x0d, 0xe3,
		0x92, 0xda, 0x7c, 0x61, 0xee, 0xf2, 0x27, 0x49, 0x55, 0x62, 0x86, 0xb7, 0x14, 0x82, 0x92, 0x4c,
		0xf2, 0x12, 0xde, 0x95, 0x28, 0xf1, 0xf9, 0x05, 0x14, 0xe6, 0x13, 0xd0, 0x9a, 0x3f, 0x40, 0x85,
		0x27, 0x26, 0x37, 0x3f, 0x80, 0x1c, 0x29, 0x4c, 0xae, 0xff, 0x3f, 0x5d, 0xf5, 0xf7, 0xa4, 0x77,
		0x11, 0x22, 0xb1, 0x7b, 0x10, 0xa1, 0x6d, 0x13, 0x88, 0x4c, 0x9d, 0xc3, 0x06, 0x7b, 0xe4, 0x43,
		0x1c, 0xb5, 0x50, 0x47, 0x36, 0xe4, 0x91, 0x0d, 0x7d, 0x64, 0x43, 0x60, 0xb2, 0xa1, 0x30, 0xe1,
		0x90, 0x18, 0x8e, 0x0a, 0x99, 0xa9, 0x6e, 0xa1, 0xdf, 0x19, 0x48, 0xd1, 0x73, 0x65, 0x8f, 0x82,
		0xd3, 0x99, 0x65, 0x5c, 0x04, 0x26, 0xb7, 0x59, 0x8d, 0x69, 0x35, 0xe3, 0xcb, 0x97, 0x49, 0x23,
		0x6e, 0xce, 0x0f, 0xe3, 0xa9, 0x56, 0x5d, 0x42, 0xed, 0x56, 0xa1, 0x4c, 0x74, 0xda, 0xae, 0x66,
		0x0f, 0x82, 0x93, 0x58, 0x99, 0xb4, 0x61, 0x51, 0xc5, 0x1e, 0xab, 0x30, 0x08, 0xb5, 0xb6, 0x2c,
		0xf2, 0x70, 0x64, 0x25, 0x2c, 0xe1, 0xd1, 0xa6, 0x45, 0x03, 0xb8, 0x10, 0x89, 0x02, 0x70, 0x73,
		0x70, 0x73, 0x70, 0x73, 0x70, 0x73, 0xdb, 0x2f, 0x45, 0x2b, 0xad, 0x53, 0xc5, 0x12, 0x2c, 0xb0,
		0x84, 0x2d, 0x27, 0x46, 0xf4, 0x09, 0x11, 0xb8, 0x8b, 0x52, 0x81, 0xc9, 0x05, 0x93, 0xfb, 0x2f,
		0xfa, 0x02, 0x26, 0xf7, 0x8d, 0xf0, 0x02, 0x4c, 0xee, 0xbb, 0xb1, 0x04, 0x98, 0x5c, 0x22, 0x89,
		0x10, 0x98, 0xdc, 0x37, 0x84, 0x29, 0xa2, 0x4c, 0xee, 0x62, 0x3c, 0x07, 0xa5, 0x0b, 0x4a, 0x17,
		0x5c, 0x07, 0xb8, 0x0e, 0x70, 0x1d, 0xe0, 0x3a, 0xd2, 0x19, 0x05, 0xe0, 0xe6, 0xe0, 0xe6, 0xe0,
		0xe6, 0xe0, 0xe6, 0xb6, 0x5f, 0x0a, 0x50, 0xba, 0xf1, 0x5b, 0xcd, 0x50, 0x98, 0x3b, 0x8f, 0x0e,
		0x97, 0x3b, 0x11, 0x87, 0x06, 0x89, 0x5b, 0x00, 0x89, 0x3b, 0xcd, 0xd0, 0x41, 0xe2, 0xf2, 0x02,
		0x16, 0x20, 0x71, 0xff, 0x08, 0x3d, 0x80, 0xc4, 0x25, 0x92, 0xfa, 0x24, 0x3e, 0x53, 0xe5, 0x45,
		0x98, 0xa4, 0xb7, 0x1d, 0x54, 0x20, 0x15, 0xad, 0xed, 0x9f, 0x0a, 0xd8, 0xfe, 0x89, 0x7c, 0x10,
		0xa5, 0x1d, 0x4c, 0x39, 0x65, 0xeb, 0xd8, 0xfe, 0x69, 0xab, 0x82, 0x2d, 0xb1, 0x84, 0x9c, 0x88,
		0xe7, 0xa2, 0x12, 0x84, 0xe7, 0xc1, 0x58, 0x06, 0xcb, 0x44, 0xd3, 0xf3, 0x0c, 0x61, 0x5c, 0x9e,
		0x0a, 0x48, 0xcc, 0xec, 0x68, 0xed, 0xd0, 0x48, 0x36, 0x54, 0x53, 0x0e, 0xd9, 0x3c, 0x42, 0x37,
		0xf5, 0x10, 0xce, 0x26, 0x94, 0xb3, 0x09, 0xe9, 0x6c, 0x42, 0x3b, 0xad, 0x10, 0x4f, 0x2c, 0xd4,
		0x87, 0xa3, 0x48, 0x6e, 0xc7, 0xc7, 0x25, 0xbf, 0x47, 0xa7, 0x99, 0x6a, 0x6d, 0x26, 0x5c, 0x23,
		0x28, 0xdb, 0x52, 0xb3, 0xd5, 0x0c, 0xaa, 0x60, 0x3f, 0x2d, 0xea, 0x86, 0x39, 0x41, 0x95, 0x43,
		0x61, 0xee, 0x6c, 0xd5, 0x25, 0x8e, 0x7d, 0x67, 0x52, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03,
		0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x53, 0x05, 0xc0, 0x33, 0xbc, 0x02, 0x14,
		0x4c, 0x1e, 0x05, 0x7b, 0x41, 0x44, 0xb5, 0x45, 0xb7, 0xeb, 0x4a, 0xcf, 0xb3, 0x7b, 0xe2, 0x5e,
		0x0d, 0x1e, 0xe9, 0xc2, 0xe1, 0xd5, 0xe2, 0x02, 0x17, 0x03, 0x17, 0x03, 0x17, 0x03, 0x17, 0x03,
		0x17, 0x03, 0x17, 0x03, 0x17, 0x03, 0x17, 0x13, 0xc4, 0xc5, 0xab, 0x81, 0x0b, 0x00, 0x32, 0x17,
		0x80, 0xbc, 0x62, 0x7b, 0x2d, 0xf2, 0x28, 0x79, 0x95, 0xcc, 0x80, 0xca, 0x80, 0xca, 0x80, 0xca,
		0x80, 0xca, 0x80, 0xca, 0x80, 0xca, 0x80, 0xca, 0x80, 0xca, 0x74, 0xa1, 0xf2, 0x2a, 0xf4, 0x02,
		0xbc, 0x4c, 0x1f, 0x2f, 0xfb, 0x63, 0x48, 0x18, 0x1a, 0x07, 0xe2, 0xd1, 0x44, 0xc1, 0x05, 0xa0,
		0x60, 0xa0, 0x60, 0xa0, 0x60, 0xa0, 0x60, 0xa0, 0x60, 0x44, 0xd6, 0xd5, 0xa3, 0x48, 0x6d, 0xf2,
		0x50, 0x28, 0x98, 0xe8, 0x3e, 0x48, 0xd7, 0x28, 0x4f, 0x76, 0x6d, 0xe3, 0xd8, 0x43, 0x29, 0x5d,
		0xba, 0xce, 0x65, 0xe6, 0xa2, 0x57, 0xc8, 0x4c, 0xd4, 0x78, 0x69, 0xd2, 0x64, 0xe4, 0x81, 0x02,
		0x07, 0xc0, 0xc0, 0x0b, 0x38, 0x70, 0x01, 0x10, 0xec, 0x80, 0x04, 0x3b, 0x40, 0xc1, 0x0e, 0x58,
		0xd0, 0x04, 0x18, 0x44, 0x81, 0x46, 0x38, 0xba, 0x64, 0x69, 0xb7, 0x25, 0xbf, 0xa9, 0x86, 0xb3,
		0xea, 0x2a, 0x65, 0xbf, 0x39, 0x4b, 0xf5, 0xeb, 0x84, 0x65, 0x9c, 0x8e, 0xf9, 0x0d, 0x69, 0xbf,
		0x43, 0x3b, 0xee, 0xbc, 0xd2, 0xcc, 0x87, 0x32, 0x03, 0xdd, 0x5c, 0xd2, 0xd1, 0x5d, 0x06, 0xb2,
		0x36, 0x84, 0x31, 0xd2, 0xd5, 0xe4, 0xd5, 0x35, 0x14, 0x78, 0xe7, 0x26, 0x6f, 0xd7, 0x5b, 0xcf,
		0x37, 0x05, 0xbb, 0xde, 0x9a, 0x3c, 0x2d, 0x04, 0x7f, 0x9e, 0x8a, 0xe3, 0xe7, 0xe2, 0x4d, 0xde,
		0x2e, 0x4f, 0x8f, 0x16, 0x2b, 0x37, 0x79, 0xbb, 0xd2, 0xca, 0xee, 0xfc, 0xf8, 0xf1, 0xe5, 0xbd,
		0xd7, 0x64, 0x9f, 0x4a, 0x63, 0x8b, 0xfc, 0xed, 0x68, 0x71, 0x50, 0xaf, 0x8b, 0xe6, 0xc9, 0x7f,
		0xd8, 0xe9, 0xd8, 0xdf, 0x3b, 0x71, 0x69, 0x59, 0xf6, 0x2f, 0x06, 0x7a, 0x46, 0x5a, 0xc2, 0xf1,
		0x67, 0x84, 0xd9, 0x8d, 0x85, 0xd9, 0x2a, 0xc2, 0x2c, 0xc2, 0xec, 0x24, 0xcc, 0x06, 0xde, 0x4c,
		0xd8, 0xbd, 0x7d, 0xfb, 0xb8, 0xf5, 0x54, 0xf8, 0x5c, 0x1e, 0xef, 0x65, 0x9f, 0x6a, 0xe3, 0xd7,
		0x07, 0x9f, 0x57, 0x9d, 0x56, 0xf8, 0x5c, 0x1b, 0xef, 0xad, 0x79, 0xa7, 0x3a, 0xde, 0x7b, 0xe3,
		0x67, 0x54, 0xc6, 0x3b, 0x4b, 0xa7, 0xfa, 0xc7, 0x8b, 0xeb, 0x2e, 0x28, 0xaf, 0xb9, 0xa0, 0xb4,
		0xee, 0x82, 0xd2, 0x9a, 0x0b, 0xd6, 0x8a, 0x54, 0x5c, 0x73, 0x41, 0x65, 0xfc, 0xbc, 0x74, 0xfe,
		0xce, 0xea, 0x53, 0xab, 0xe3, 0xec, 0xf3, 0xba, 0xf7, 0x6a, 0xe3, 0xe7, 0xbd, 0x6c, 0x16, 0xc0,
		0x23, 0xf5, 0xc0, 0x03, 0x66, 0x17, 0xbf, 0xd9, 0x01, 0x88, 0x6d, 0x25, 0x2f, 0x48, 0xf7, 0xbe,
		0x51, 0x65, 0x2c, 0x4f, 0x95, 0x67, 0xf6, 0x8d, 0x71, 0x69, 0xb3, 0x96, 0x67, 0x4a, 0x1f, 0x0d,
		0xe4, 0xbd, 0xd4, 0xc6, 0xa3, 0x5b, 0x37, 0x9b, 0x48, 0x2a, 0x7e, 0x2f, 0x48, 0x5a, 0xd8, 0x2d,
		0x97, 0xab, 0xb5, 0x72, 0x39, 0x5f, 0x2b, 0xd5, 0xf2, 0xf5, 0x4a, 0xa5, 0x50, 0x2d, 0x54, 0x08,
		0x0b, 0x7f, 0xe1, 0x76, 0xa5, 0x2b, 0xbb, 0x07, 0x8f, 0xd6, 0x5e, 0x46, 0x8f, 0x06, 0x03, 0x0e,
		0xa2, 0x7e, 0xf7, 0x82, 0xe2, 0x79, 0x4f, 0x0c, 0x3c, 0xf9, 0x09, 0x9e, 0x92, 0xa9, 0x2f, 0xb2,
		0x84, 0x31, 0xae, 0xad, 0x74, 0x57, 0xfe, 0x66, 0xd0, 0x09, 0x31, 0x97, 0x15, 0x1d, 0x10, 0x1f,
		0x11, 0x0f, 0x1d, 0x10, 0x1b, 0xd4, 0x46, 0x74, 0x40, 0x6c, 0xd4, 0x72, 0xd0, 0x01, 0x11, 0xb1,
		0xc0, 0xe8, 0x80, 0xd8, 0xe6, 0x7c, 0x82, 0x4f, 0x07, 0x04, 0xdd, 0x09, 0x48, 0xaf, 0xc3, 0x38,
		0xc5, 0x89, 0x48, 0xf3, 0x50, 0x39, 0x9f, 0x90, 0xf4, 0xaf, 0xff, 0x02, 0xe0, 0xe4, 0x49, 0xe3,
		0x85, 0xcf, 0xa6, 0x93, 0x98, 0x26, 0x60, 0x0a, 0xf0, 0x9d, 0x2d, 0x7c, 0xbf, 0x15, 0x9d, 0x9f,
		0xa3, 0x21, 0x7d, 0xe8, 0x3e, 0x95, 0x13, 0xb0, 0x1d, 0xb0, 0x1d, 0xb0, 0x1d, 0xb0, 0x1d, 0xb0,
		0x1d, 0xb0, 0x1d, 0xb0, 0x9d, 0x15, 0x6c, 0xbf, 0x75, 0x9c, 0x81, 0x14, 0x9a, 0x03, 0x6c, 0x2f,
		0x00, 0xd0, 0xf2, 0x05, 0xb4, 0xd2, 0x33, 0xa4, 0xf6, 0xdd, 0x5c, 0x6f, 0x10, 0x33, 0x49, 0x01,
		0x6a, 0x01, 0x6a, 0x01, 0x6a, 0x01, 0x6a, 0x01, 0x6a, 0x01, 0x6a, 0x01, 0x6a, 0x01, 0x6a, 0x01,
		0x6a, 0x61, 0x14, 0x2f, 0xc7, 0xb0, 0xe3, 0xdc, 0xdf, 0x8f, 0xb4, 0x32, 0x8f, 0x5c, 0x3a, 0x2d,
		0x5e, 0x0b, 0x0c, 0x88, 0x0b, 0x88, 0x0b, 0x88, 0x0b, 0x88, 0x0b, 0x88, 0x0b, 0x88, 0x0b, 0x88,
		0x8b, 0x76, 0x8b, 0x68, 0x20, 0xee, 0xb6, 0xb4, 0x5b, 0xcc, 0xd0, 0x93, 0x92, 0x5e, 0xf8, 0xfc,
		0x11, 0x1d, 0x17, 0xdb, 0x81, 0xe5, 0xe5, 0x6f, 0x63, 0xb3, 0xc3, 0xf3, 0xab, 0x84, 0x06, 0xa6,
		0x07, 0xa6, 0x07, 0xa6, 0x07, 0xa6, 0x07, 0xa6, 0x07, 0xa6, 0x07, 0xa6, 0x07, 0xa6, 0x07, 0xa6,
		0xff, 0xa7, 0x7f, 0x8b, 0x08, 0xca, 0xc7, 0xf5, 0x2f, 0x10, 0x15, 0xb0, 0xfd, 0x76, 0x60, 0x7b,
		0xa5, 0x1f, 0xc4, 0x40, 0x75, 0x6d, 0x57, 0x0a, 0xcf, 0xd1, 0xf4, 0x61, 0xfd, 0x2b, 0x79, 0x81,
		0xe8, 0x81, 0xe8, 0x81, 0xe8, 0x81, 0xe8, 0x81, 0xe8, 0x81, 0xe8, 0x81, 0xe8, 0x79, 0x2d, 0x0b,
		0xdd, 0x95, 0xda, 0x28, 0xf3, 0xc8, 0x04, 0xd5, 0x53, 0x5e, 0x4c, 0xe5, 0x64, 0x7a, 0x2b, 0x0f,
		0x84, 0xc7, 0xc0, 0xc5, 0xcf, 0x14, 0xe0, 0xe4, 0xfc, 0x7a, 0xff, 0xf4, 0xe4, 0xb0, 0x7d, 0x79,
		0xf1, 0xfd, 0xea, 0xa8, 0x7d, 0x79, 0xb4, 0xdf, 0xbc, 0x38, 0xa7, 0xee, 0xed, 0xaf, 0xc5, 0x60,
		0x24, 0x3d, 0x16, 0xeb, 0xbe, 0x3d, 0xf1, 0x58, 0x99, 0xee, 0xb5, 0x36, 0xec, 0x37, 0xdb, 0xa7,
		0x17, 0x17, 0x0d, 0xfa, 0x8b, 0xa6, 0x8d, 0x3f, 0x43, 0x05, 0xa2, 0x51, 0x81, 0xaf, 0xa7, 0xdf,
		0x9b, 0x57, 0x47, 0x97, 0xd0, 0x83, 0xb4, 0xeb, 0xc1, 0xc5, 0xf9, 0xf1, 0xd1, 0x21, 0x34, 0x20,
		0xbd, 0x1a, 0x70, 0x71, 0x79, 0xf2, 0xed, 0xe4, 0x7c, 0xff, 0xea, 0xe2, 0x92, 0x81, 0x16, 0x90,
		0x96, 0xb0, 0x85, 0xfc, 0x8e, 0xb9, 0x54, 0x14, 0xd9, 0xe3, 0x81, 0xb8, 0x95, 0x03, 0xfa, 0xa4,
		0xf1, 0x44, 0x4c, 0x70, 0xc5, 0x1f, 0x11, 0x0f, 0x5c, 0xf1, 0x06, 0x15, 0x11, 0x5c, 0xf1, 0x46,
		0x2d, 0x07, 0x5c, 0x71, 0xc4, 0x02, 0x83, 0x2b, 0xde, 0xe2, 0xfc, 0x80, 0x11, 0x57, 0xec, 0x19,
		0x57, 0xe9, 0x3e, 0x07, 0x9a, 0x78, 0x17, 0x1a, 0xf8, 0x8e, 0xbb, 0x26, 0x7f, 0x1b, 0x57, 0xd8,
		0x23, 0xed, 0x19, 0x71, 0x3b, 0x20, 0xae, 0x8b, 0xae, 0xec, 0x49, 0x57, 0xea, 0x0e, 0x76, 0x60,
		0xdc, 0xa0, 0x61, 0x5f, 0x1e, 0x7f, 0xad, 0x95, 0x4b, 0xc5, 0xbd, 0xcc, 0xc1, 0xb7, 0x46, 0xe6,
		0xac, 0x71, 0xda, 0xb4, 0x0f, 0x84, 0x27, 0xbb, 0x99, 0x23, 0x73, 0x27, 0x5d, 0x2d, 0x4d, 0xe6,
		0xba, 0x71, 0xce, 0x61, 0xcb, 0x28, 0x26, 0x90, 0x69, 0x15, 0x74, 0x9a, 0xeb, 0xf5, 0x67, 0x1e,
		0xb2, 0x73, 0x43, 0x51, 0x2b, 0xd1, 0xd4, 0x9b, 0x14, 0x1f, 0x9c, 0xd7, 0x96, 0x4a, 0xd7, 0x02,
		0xe7, 0xc5, 0x15, 0xb7, 0x4c, 0xc8, 0xa4, 0x22, 0x13, 0xd2, 0xab, 0x08, 0xd6, 0xeb, 0x43, 0xe2,
		0x81, 0xf5, 0xda, 0xa0, 0x26, 0x82, 0xf5, 0x8a, 0x08, 0xba, 0x81, 0xf5, 0x8a, 0x1c, 0xa7, 0x81,
		0xf5, 0xda, 0x36, 0xce, 0x01, 0xac, 0xd7, 0xc6, 0xa3, 0x38, 0x58, 0xaf, 0x77, 0xdd, 0x35, 0xb0,
		0x5e, 0x51, 0x3c, 0xc0, 0x7a, 0x01, 0x32, 0xbd, 0x1d, 0x3a, 0x81, 0xf5, 0x4a, 0x02, 0x4d, 0x81,
		0xf5, 0x4a, 0xb3, 0x74, 0x60, 0xbd, 0xd8, 0xe2, 0x16, 0x6b, 0x20, 0x3c, 0x63, 0xdf, 0x3b, 0x5d,
		0xd5, 0x53, 0xb2, 0xcb, 0x81, 0xfc, 0x5a, 0x14, 0x17, 0x1c, 0xd8, 0x47, 0xc4, 0x03, 0x07, 0xb6,
		0x41, 0x85, 0x04, 0x07, 0x16, 0x11, 0x90, 0x03, 0x07, 0x16, 0x39, 0x6a, 0x03, 0x07, 0xb6, 0x6d,
		0x0c, 0x04, 0x1f, 0x0e, 0xcc, 0xa8, 0x7b, 0x69, 0x54, 0xe7, 0xa7, 0x57, 0x2d, 0x33, 0x20, 0xc2,
		0x76, 0x09, 0x8b, 0xf8, 0x5d, 0x2b, 0xe3, 0xf9, 0xb7, 0x54, 0x0b, 0xed, 0x78, 0xb2, 0xe3, 0xe8,
		0xae, 0x47, 0xf9, 0x96, 0x5e, 0x0a, 0xdd, 0x07, 0xeb, 0xb4, 0x81, 0x1b, 0x79, 0xa6, 0x34, 0x1f,
		0x8a, 0x26, 0x98, 0x60, 0x4d, 0x17, 0x73, 0x2e, 0xc9, 0x7b, 0xec, 0x8a, 0x8e, 0x51, 0x8e, 0x3e,
		0x54, 0xfd, 0x89, 0x79, 0x71, 0x11, 0xfc, 0x5c, 0xf6, 0x85, 0x51, 0x0f, 0xfe, 0xbd, 0xee, 0x89,
		0x81, 0x27, 0x31, 0xcb, 0x72, 0x13, 0xa6, 0x26, 0x7e, 0xf3, 0x33, 0xb5, 0xc2, 0x6e, 0xb9, 0x5c,
		0xad, 0x95, 0xcb, 0xf9, 0x5a, 0xa9, 0x96, 0xaf, 0x57, 0x2a, 0x85, 0x2a, 0xe5, 0xc5, 0x2e, 0x60,
		0x7d, 0xc0, 0xd7, 0x8c, 0xa4, 0x03, 0xe7, 0xc9, 0xd6, 0xbb, 0x5b, 0xf7, 0xa3, 0x81, 0x51, 0x3c,
		0x76, 0xe6, 0x9c, 0x8b, 0x0a, 0xae, 0xf3, 0x23, 0xe2, 0x81, 0xeb, 0xdc, 0xa0, 0x32, 0x82, 0xeb,
		0xdc, 0xa8, 0xe5, 0x80, 0xeb, 0x8c, 0x58, 0x60, 0x70, 0x9d, 0x5b, 0x9c, 0x9f, 0x61, 0x6b, 0xce,
		0x08, 0xc2, 0x38, 0xb6, 0xe6, 0x64, 0x0c, 0x6b, 0x87, 0x52, 0xba, 0xb6, 0x1a, 0xd2, 0x07, 0xb5,
		0x33, 0x41, 0x01, 0x69, 0x01, 0x69, 0x01, 0x69, 0x01, 0x69, 0x01, 0x69, 0x01, 0x69, 0x01, 0x69,
		0x79, 0x2d, 0xf2, 0x3d, 0xb4, 0x45, 0xb7, 0xeb, 0x4a, 0xcf, 0xe3, 0x80, 0x6a, 0xeb, 0x84, 0x65,
		0x9c, 0x8e, 0x39, 0xaa, 0xe1, 0x1b, 0xd3, 0xcc, 0x87, 0x32, 0x03, 0xdd, 0x5c, 0xd2, 0xd1, 0x5d,
		0x06, 0xb2, 0x36, 0x84, 0x31, 0xd2, 0xd5, 0x2c, 0x96, 0x49, 0x0f, 0x04, 0xde, 0xb9, 0xc9, 0xdb,
		0xf5, 0xd6, 0xf3, 0x4d, 0xc1, 0xae, 0xb7, 0x26, 0x4f, 0x0b, 0xc1, 0x9f, 0xa7, 0xe2, 0xf8, 0xb9,
		0x78, 0x93, 0xb7, 0xcb, 0xd3, 0xa3, 0xc5, 0xca, 0x4d, 0xde, 0xae, 0xb4, 0xb2, 0x3b, 0x3f, 0x7e,
		0x7c, 0x79, 0xef, 0x35, 0xd9, 0xa7, 0xd2, 0x98, 0xfe, 0xdc, 0x86, 0x16, 0x07, 0xf5, 0xba, 0x68,
		0x9e, 0xfc, 0x87, 0x9d, 0x8e, 0xfd, 0xbd, 0x13, 0x97, 0x96, 0x65, 0xff, 0x62, 0xa0, 0x67, 0xb4,
		0xeb, 0xc9, 0x9f, 0x11, 0x66, 0x37, 0x16, 0x66, 0xab, 0x08, 0xb3, 0x08, 0xb3, 0x93, 0x30, 0x1b,
		0x78, 0x33, 0x61, 0xf7, 0xf6, 0xed, 0xe3, 0xd6, 0x53, 0xe1, 0x73, 0x79, 0xbc, 0x97, 0x7d, 0xaa,
		0x8d, 0x5f, 0x1f, 0x7c, 0x5e, 0x75, 0x5a, 0xe1, 0x73, 0x6d, 0xbc, 0xb7, 0xe6, 0x9d, 0xea, 0x78,
		0xef, 0x8d, 0x9f, 0x51, 0x19, 0xef, 0x2c, 0x9d, 0xea, 0x1f, 0x2f, 0xae, 0xbb, 0xa0, 0xbc, 0xe6,
		0x82, 0xd2, 0xba, 0x0b, 0x4a, 0x6b, 0x2e, 0x58, 0x2b, 0x52, 0x71, 0xcd, 0x05, 0x95, 0xf1, 0xf3,
		0xd2, 0xf9, 0x3b, 0xab, 0x4f, 0xad, 0x8e, 0xb3, 0xcf, 0xeb, 0xde, 0xab, 0x8d, 0x9f, 0xf7, 0xb2,
		0x59, 0x00, 0x8f, 0xd4, 0x03, 0x0f, 0x98, 0x5d, 0xfc, 0x66, 0x07, 0x20, 0xb6, 0x95, 0xbc, 0x60,
		0x06, 0x8d, 0x7d, 0x9c, 0xa1, 0xf4, 0xa4, 0xb0, 0x38, 0x14, 0xe6, 0xce, 0x56, 0x5d, 0x26, 0x65,
		0xd0, 0x99, 0xb4, 0xa8, 0x85, 0x7e, 0x44, 0x3c, 0xd4, 0x42, 0x37, 0xa8, 0x8f, 0xa8, 0x85, 0x6e,
		0xd4, 0x72, 0x50, 0x0b, 0x8d, 0x58, 0x60, 0xd4, 0x42, 0xb7, 0x98, 0x12, 0x63, 0x54, 0x0b, 0x1d,
		0x29, 0x6d, 0x4a, 0x45, 0x06, 0x75, 0xd0, 0x1a, 0x66, 0x05, 0xff, 0xe1, 0x03, 0xb3, 0x82, 0x37,
		0x2b, 0x2c, 0x66, 0x05, 0xc7, 0xe5, 0xab, 0x30, 0x2b, 0x38, 0x02, 0x53, 0xe3, 0x38, 0x2b, 0xb8,
		0x5c, 0xac, 0x97, 0xeb, 0xd5, 0x5a, 0xb1, 0x8e, 0xb9, 0xc0, 0xb0, 0x39, 0x0e, 0x00, 0x95, 0xbe,
		0x74, 0xa0, 0x0c, 0xd9, 0xfa, 0x74, 0xcb, 0x0b, 0xe8, 0x84, 0x59, 0x25, 0xdb, 0xee, 0x89, 0x7b,
		0x35, 0x78, 0xa4, 0xcf, 0x1d, 0xae, 0x16, 0x1b, 0x24, 0xe2, 0x47, 0xc4, 0x03, 0x89, 0xb8, 0x41,
		0xc5, 0x04, 0x89, 0xb8, 0x51, 0xcb, 0x01, 0x89, 0x18, 0xb1, 0xc0, 0x20, 0x11, 0xb7, 0x38, 0x5b,
		0xe3, 0x34, 0xa1, 0xa2, 0x2b, 0xb5, 0x51, 0xe6, 0xd1, 0x95, 0x3d, 0x0e, 0x33, 0x2a, 0x08, 0x27,
		0x8f, 0xd6, 0xc9, 0xf4, 0x56, 0x1e, 0x08, 0x8f, 0x81, 0x8b, 0x9f, 0x29, 0xc0, 0xfe, 0xf1, 0x49,
		0xbb, 0xe9, 0xff, 0x77, 0xf5, 0xdf, 0xc6, 0x11, 0x75, 0x37, 0x1f, 0x90, 0x09, 0x1e, 0x8b, 0x56,
		0x29, 0x26, 0xf4, 0xcc, 0x4c, 0x0d, 0x4e, 0x1a, 0xd7, 0xe5, 0xf6, 0xf1, 0xe9, 0xc5, 0xff, 0x36,
		0x1b, 0x47, 0x5f, 0x2d, 0xd0, 0x74, 0xe9, 0x54, 0x80, 0xd3, 0xfd, 0x83, 0xa3, 0xd3, 0xa3, 0xc3,
		0xf6, 0xf7, 0xf3, 0x93, 0xaf, 0xfb, 0xcd, 0x2b, 0xe8, 0x41, 0x4a, 0xf5, 0x00, 0xe3, 0x9f, 0xe6,
		0xf1, 0xaf, 0xc2, 0x0f, 0x40, 0x0f, 0x02, 0x3d, 0xc0, 0xf8, 0xa7, 0x76, 0xfc, 0x4f, 0x8b, 0xd7,
		0x8d, 0xf3, 0xf6, 0x11, 0x8f, 0x0d, 0xb4, 0x30, 0xfa, 0x91, 0x8c, 0xfe, 0x75, 0xe3, 0xb4, 0x89,
		0xd1, 0x4f, 0xe1, 0xe8, 0x97, 0xfc, 0xd1, 0x0f, 0x90, 0xe0, 0xd9, 0xf7, 0xd3, 0x2b, 0xc4, 0x00,
		0xe8, 0x01, 0x90, 0x00, 0xb4, 0xa0, 0x0a, 0x6f, 0x00, 0x3d, 0x40, 0x5e, 0x90, 0x72, 0x2d, 0x38,
		0x39, 0xff, 0x9f, 0xe6, 0xd5, 0xfe, 0xd5, 0x11, 0x06, 0x3f, 0xc5, 0x83, 0xdf, 0x6e, 0x36, 0x8e,
		0xa1, 0x00, 0x69, 0x56, 0x00, 0x10, 0x03, 0xa9, 0x54, 0x80, 0xe6, 0xe5, 0xd5, 0x51, 0xbb, 0x71,
		0x71, 0x7a, 0xf2, 0xf5, 0xbf, 0x41, 0x62, 0x00, 0x1d, 0x48, 0xbd, 0x0e, 0x54, 0xa1, 0x03, 0xe9,
		0xd3, 0x81, 0xeb, 0xc6, 0x39, 0xaf, 0x86, 0x01, 0xd2, 0x12, 0xb6, 0xd0, 0xf7, 0xc7, 0x5c, 0x2a,
		0xc2, 0x73, 0x0c, 0x5c, 0x67, 0x64, 0xa4, 0xdd, 0x55, 0x9e, 0x51, 0xba, 0x3f, 0x52, 0xde, 0x9d,
		0x74, 0xd9, 0x4c, 0x34, 0x58, 0x25, 0x3b, 0x66, 0x1b, 0x7c, 0x44, 0x3c, 0xcc, 0x36, 0xd8, 0xa0,
		0x76, 0x62, 0xb6, 0xc1, 0x46, 0x2d, 0x07, 0xb3, 0x0d, 0x22, 0x16, 0x18, 0xb3, 0x0d, 0xb6, 0x38,
		0x8b, 0x60, 0x34, 0xdb, 0x80, 0x4f, 0x38, 0xcf, 0x60, 0x1f, 0x87, 0x54, 0x25, 0xb7, 0x73, 0xe0,
		0x69, 0x5c, 0xa5, 0xfb, 0x58, 0x5a, 0x7a, 0xc3, 0xe0, 0x8e, 0xfd, 0x0e, 0x0e, 0x93, 0xc5, 0x62,
		0x6f, 0x0a, 0x76, 0x65, 0xfa, 0xba, 0x3c, 0x7e, 0xae, 0xce, 0x17, 0xcc, 0x7f, 0x2a, 0x8d, 0x9f,
		0xab, 0x95, 0x85, 0xd7, 0x45, 0xff, 0xb5, 0x7f, 0xa0, 0x38, 0x5d, 0x51, 0xbf, 0x5a, 0xa9, 0x94,
		0x26, 0x6b, 0xea, 0xef, 0xad, 0xfa, 0xf0, 0xdd, 0xe0, 0xc3, 0x4b, 0xd3, 0xd7, 0xf5, 0xf1, 0x73,
		0xf9, 0x26, 0x5f, 0x98, 0xbe, 0xda, 0x1d, 0x3f, 0x97, 0x8b, 0x37, 0x79, 0x7b, 0x77, 0xfa, 0xba,
		0xe6, 0xbf, 0xae, 0xdf, 0xe4, 0xc3, 0xd3, 0xab, 0xc1, 0x81, 0xf2, 0xc2, 0x29, 0x95, 0xc9, 0x91,
		0x7a, 0xf0, 0x8d, 0xa1, 0xc0, 0x93, 0x45, 0x38, 0x6e, 0xf2, 0x76, 0x75, 0x2e, 0xf5, 0x74, 0x61,
		0x8e, 0xf9, 0xb7, 0x15, 0xc3, 0x63, 0x0b, 0xdf, 0x19, 0x1e, 0x9a, 0x7c, 0x22, 0x16, 0x80, 0xde,
		0x8c, 0x59, 0x6c, 0xcb, 0xce, 0x13, 0xb0, 0x8e, 0x17, 0xd6, 0x81, 0x85, 0x9a, 0xb7, 0x14, 0x6b,
		0x03, 0xd0, 0x00, 0xd0, 0x64, 0xb0, 0x25, 0xd5, 0x3f, 0x6c, 0x16, 0xb4, 0x17, 0x65, 0x6c, 0x00,
		0xea, 0x00, 0xea, 0x60, 0xae, 0xc2, 0x80, 0x06, 0x80, 0x06, 0x80, 0x06, 0x80, 0x06, 0xc4, 0xb9,
		0x0e, 0x66, 0x09, 0x17, 0x50, 0x07, 0x50, 0x47, 0x8c, 0x5c, 0x07, 0xac, 0x03, 0x80, 0x66, 0x83,
		0x80, 0x06, 0x2b, 0xcc, 0x32, 0xbf, 0x5f, 0x14, 0xbb, 0xbf, 0x1e, 0xc4, 0x40, 0x75, 0x27, 0x0d,
		0x54, 0xf4, 0xdb, 0xbd, 0x16, 0x85, 0x45, 0x7f, 0xd7, 0x47, 0xc4, 0x43, 0x7f, 0xd7, 0x06, 0xd5,
		0x11, 0xfd, 0x5d, 0x1b, 0xb5, 0x1c, 0xf4, 0x77, 0x45, 0x2c, 0x30, 0xfa, 0xbb, 0xb6, 0x98, 0x58,
		0x62, 0xd4, 0xdf, 0x75, 0xeb, 0x38, 0x03, 0x29, 0x34, 0x87, 0x9e, 0xae, 0x02, 0xa0, 0x2d, 0x43,
		0x89, 0x88, 0x99, 0xa8, 0xb5, 0xaf, 0xb5, 0x63, 0x84, 0x51, 0x0e, 0xcd, 0xcd, 0xaf, 0x2c, 0xaf,
		0x73, 0x27, 0xef, 0xc5, 0x50, 0x98, 0x3b, 0xdf, 0x3c, 0x73, 0xce, 0x50, 0xea, 0x4e, 0x00, 0x14,
		0x6d, 0x2d, 0xcd, 0x2f, 0xc7, 0xfd, 0x69, 0x2b, 0xed, 0x19, 0xa1, 0x3b, 0x32, 0xf7, 0xfa, 0x80,
		0xb7, 0x74, 0x24, 0x37, 0x74, 0x1d, 0xe3, 0x74, 0x9c, 0x81, 0x17, 0x3e, 0xcb, 0xdd, 0xf6, 0x87,
		0x39, 0x57, 0xdd, 0xe6, 0x44, 0x4f, 0xd9, 0x9e, 0xe8, 0x29, 0x2f, 0x7c, 0x96, 0x1b, 0x14, 0x1f,
		0x86, 0xda, 0x96, 0x0f, 0x43, 0x9d, 0x1b, 0x4c, 0x82, 0x52, 0x2e, 0x00, 0xf8, 0x5e, 0x6e, 0x45,
		0x1b, 0x68, 0xce, 0x3c, 0x0e, 0xa5, 0xed, 0x68, 0x69, 0x4b, 0x73, 0x27, 0x5d, 0x2d, 0x8d, 0x2d,
		0x46, 0xc6, 0xf1, 0x4f, 0xea, 0x38, 0x0f, 0xd2, 0x7d, 0x9c, 0x9f, 0x10, 0x5c, 0x9d, 0xf3, 0x7f,
		0x93, 0x17, 0xfc, 0x9f, 0xf3, 0x8c, 0x20, 0x99, 0x36, 0x58, 0x9e, 0x71, 0x47, 0x1d, 0xa3, 0xa7,
		0xce, 0xf1, 0x22, 0xbc, 0xf9, 0xe7, 0x93, 0x1b, 0x7b, 0x32, 0xbd, 0xaf, 0xed, 0x57, 0xaf, 0xbd,
		0xd7, 0x07, 0xda, 0x8d, 0xd9, 0x8d, 0x0f, 0x9f, 0xb5, 0x0f, 0xfa, 0xc3, 0xf6, 0xa5, 0xba, 0x6d,
		0xef, 0xf7, 0x54, 0xd3, 0xbf, 0xef, 0xb3, 0x27, 0xed, 0xd3, 0xe2, 0xf5, 0x50, 0x1f, 0x3d, 0x0c,
		0x75, 0xfb, 0xd4, 0xe9, 0xf8, 0x67, 0x5c, 0x06, 0x37, 0x7d, 0xf2, 0xe7, 0x70, 0xf1, 0x9e, 0xb7,
		0xfd, 0xc0, 0x72, 0xa1, 0xe5, 0xd1, 0xf4, 0x8e, 0xef, 0x8f, 0x8c, 0x73, 0x38, 0xbb, 0xdf, 0xb3,
		0x37, 0x83, 0xcb, 0xda, 0x0d, 0xff, 0x6e, 0x07, 0xff, 0xb7, 0x9b, 0xc1, 0xdd, 0xfe, 0x04, 0x1f,
		0x45, 0xdc, 0x3f, 0x59, 0x23, 0xfd, 0x53, 0x3b, 0xbf, 0xb4, 0x2d, 0x8c, 0x71, 0xd5, 0xad, 0xaf,
		0x03, 0xe4, 0x7c, 0xd4, 0x7c, 0x2f, 0xcb, 0x65, 0x59, 0x89, 0x79, 0xfa, 0x19, 0x6e, 0x20, 0x26,
		0x16, 0xd5, 0xb4, 0x9f, 0x72, 0xba, 0xcf, 0x23, 0xcd, 0xa7, 0x9e, 0xde, 0xb3, 0x49, 0xeb, 0xd9,
		0xa4, 0xf3, 0x6c, 0xd2, 0x78, 0xe4, 0x04, 0xff, 0x34, 0x8a, 0x87, 0x8a, 0xe6, 0xfc, 0xea, 0xe5,
		0x20, 0x4b, 0xbf, 0x2e, 0xb0, 0x2c, 0x32, 0xed, 0xea, 0x40, 0x01, 0xd5, 0x81, 0xad, 0x83, 0x0b,
		0xbc, 0x60, 0x03, 0x17, 0xf8, 0xc0, 0x0e, 0x46, 0xb0, 0x83, 0x13, 0xec, 0x60, 0x05, 0x4d, 0x78,
		0x41, 0x14, 0x66, 0x90, 0x87, 0x1b, 0xa1, 0x80, 0x7e, 0xec, 0xb6, 0x0d, 0xf5, 0x1a, 0xc6, 0x0b,
		0x0f, 0x3f, 0x17, 0x99, 0xb8, 0x69, 0xd3, 0x6e, 0x4a, 0x60, 0x03, 0x3f, 0x38, 0xc1, 0x10, 0x9e,
		0x70, 0x84, 0x1b, 0x2c, 0x61, 0x0b, 0x4f, 0xd8, 0xc2, 0x14, 0xb6, 0x70, 0x85, 0x36, 0x6c, 0x21,
		0x0e, 0x5f, 0xc2, 0x51, 0xbf, 0xe2, 0x00, 0x10, 0x5e, 0xf8, 0xdd, 0x81, 0x14, 0x3d, 0xda, 0xdb,
		0xe6, 0x2e, 0xb1, 0x13, 0x35, 0x1e, 0xd3, 0x67, 0x82, 0x62, 0xf5, 0x97, 0x2f, 0x93, 0xc2, 0x6e,
		0x6e, 0x0e, 0xc6, 0xd0, 0xc5, 0xbd, 0x6d, 0xa6, 0x6f, 0x4d, 0x6a, 0xf7, 0x6c, 0x12, 0x03, 0xaa,
		0xad, 0x06, 0x2b, 0xad, 0x1d, 0x49, 0x01, 0x92, 0x02, 0x24, 0x05, 0x48, 0x0a, 0x90, 0x14, 0x00,
		0x15, 0xf0, 0x4c, 0x0a, 0xa8, 0x73, 0x9b, 0xa1, 0xa0, 0x01, 0x46, 0x1d, 0x48, 0xcd, 0xc7, 0x85,
		0xbd, 0xa0, 0x3a, 0x7d, 0xc9, 0x99, 0x38, 0x02, 0x1e, 0x8c, 0x27, 0x3b, 0x90, 0xc3, 0x11, 0xec,
		0xf0, 0x06, 0x3d, 0x5c, 0xc1, 0x0f, 0x7b, 0x10, 0xc4, 0x1e, 0x0c, 0xb1, 0x07, 0x45, 0x3c, 0xc0,
		0x11, 0x13, 0x90, 0x14, 0x6a, 0x03, 0x1b, 0x06, 0x75, 0xc9, 0x6f, 0x8f, 0x94, 0x36, 0x85, 0x2a,
		0x27, 0x9f, 0x3d, 0x45, 0x21, 0x55, 0x46, 0x22, 0x5f, 0x0a, 0xdd, 0x97, 0x6c, 0x16, 0x5e, 0x99,
		0x3d, 0x78, 0xc5, 0xc4, 0xe0, 0x46, 0x9f, 0x29, 0xcd, 0x2e, 0x98, 0x87, 0xc2, 0x5f, 0x8b, 0xc1,
		0x48, 0xf2, 0x81, 0xab, 0x4b, 0xf2, 0x1f, 0xbb, 0xa2, 0x63, 0x94, 0xa3, 0x0f, 0x55, 0x5f, 0x19,
		0x8f, 0xf1, 0x0f, 0x39, 0x97, 0x7d, 0x61, 0xd4, 0x83, 0x3f, 0x16, 0x3d, 0x31, 0xf0, 0x24, 0xbb,
		0x5f, 0x31, 0xfe, 0xcc, 0xd0, 0x74, 0xc5, 0x6f, 0xfe, 0xa6, 0x5b, 0xad, 0x54, 0x4a, 0x15, 0x98,
		0x2f, 0xcc, 0x37, 0x05, 0xd8, 0x9c, 0x9f, 0xb4, 0x2d, 0xe4, 0x3c, 0x1b, 0x34, 0x33, 0xf9, 0xdb,
		0xb8, 0xc2, 0x1e, 0x69, 0xcf, 0x88, 0xdb, 0x01, 0xb3, 0xec, 0xc7, 0x95, 0x3d, 0xe9, 0x4a, 0xdd,
		0x01, 0x28, 0x8f, 0x31, 0xd5, 0xbc, 0x3c, 0xfe, 0x9a, 0x29, 0x17, 0x6b, 0x85, 0x8c, 0x9d, 0xd9,
		0xcf, 0x1c, 0x38, 0x6e, 0x57, 0xba, 0x99, 0x6f, 0xc2, 0xc8, 0x5f, 0xe2, 0x31, 0x33, 0x9b, 0x5b,
		0x9f, 0x29, 0x67, 0x76, 0x0e, 0xbe, 0x35, 0xec, 0x72, 0xd6, 0x62, 0x88, 0x61, 0x98, 0xd2, 0x89,
		0xf3, 0xd4, 0x7a, 0x4e, 0x2b, 0xce, 0x2d, 0x84, 0x29, 0x0a, 0xe0, 0xce, 0x30, 0x86, 0x3f, 0x64,
		0x91, 0x69, 0x7c, 0xa7, 0x09, 0x01, 0xf9, 0x40, 0x5a, 0x4e, 0xc8, 0x07, 0x9b, 0xd9, 0x6f, 0xc0,
		0x5f, 0xf0, 0x99, 0xf3, 0xb3, 0x84, 0x10, 0xb8, 0xcc, 0xfd, 0x99, 0x07, 0x4c, 0x54, 0xc4, 0x23,
		0x15, 0x18, 0x15, 0x71, 0x40, 0xd8, 0x77, 0x43, 0x57, 0x54, 0xc4, 0x13, 0xc7, 0xa9, 0xa8, 0x88,
		0xa7, 0x18, 0x81, 0x64, 0xf8, 0x57, 0xc4, 0x77, 0x19, 0x16, 0xc4, 0x2b, 0x28, 0x88, 0x47, 0xfc,
		0x40, 0x41, 0x3c, 0x5e, 0xe1, 0x51, 0x10, 0xa7, 0xe2, 0x1a, 0x51, 0x10, 0x4f, 0xc0, 0x74, 0xb7,
		0xa1, 0x20, 0x5e, 0xac, 0xa0, 0x1c, 0x0e, 0xe3, 0x4d, 0x03, 0x30, 0xe7, 0x27, 0x2d, 0xca, 0xe1,
		0x9b, 0x34, 0x33, 0x94, 0xc3, 0x01, 0xc9, 0xdf, 0x95, 0x67, 0xa2, 0x1c, 0x4e, 0x3e, 0xb1, 0x46,
		0x39, 0x9c, 0xde, 0x0f, 0x41, 0x39, 0x1c, 0xd2, 0xa6, 0x04, 0xf9, 0xa0, 0x1c, 0xbe, 0x01, 0x7f,
		0x11, 0xd4, 0x94, 0x1f, 0xa6, 0xe9, 0x28, 0xc7, 0x7a, 0xf8, 0x44, 0x76, 0x14, 0xc4, 0xa3, 0x10,
		0x17, 0x05, 0xf1, 0x18, 0xb5, 0x19, 0x05, 0xf1, 0x84, 0xc0, 0x2b, 0x0a, 0xe2, 0x89, 0x23, 0x55,
		0x14, 0xc4, 0x53, 0x8c, 0x41, 0x32, 0xbc, 0x0b, 0xe2, 0xb7, 0x4a, 0x0b, 0xf7, 0x91, 0x61, 0x45,
		0xbc, 0xce, 0x48, 0xe4, 0x53, 0xa9, 0xfb, 0xc1, 0xe2, 0x9b, 0xe0, 0xdf, 0x22, 0xbe, 0xd3, 0x5b,
		0x51, 0x12, 0x2f, 0xa0, 0xaa, 0x96, 0xb0, 0x73, 0x44, 0x49, 0x3c, 0x01, 0xd3, 0xc5, 0x1c, 0x71,
		0x98, 0x2f, 0xcc, 0x37, 0x03, 0x6a, 0x38, 0xb2, 0x07, 0x8a, 0xe2, 0x9b, 0x34, 0x33, 0x14, 0xc5,
		0x01, 0xca, 0xdf, 0x95, 0x6b, 0xa2, 0x28, 0x4e, 0x3e, 0xb7, 0x46, 0x51, 0x9c, 0xde, 0x0f, 0x41,
		0x51, 0x1c, 0xd2, 0xa6, 0x04, 0xf9, 0xa0, 0x28, 0xbe, 0x19, 0x5c, 0x26, 0x75, 0x57, 0x76, 0xf9,
		0x95, 0xc4, 0x43, 0xc9, 0x51, 0x10, 0x8f, 0x42, 0x5c, 0x14, 0xc4, 0x63, 0xd4, 0x65, 0x14, 0xc4,
		0x13, 0x02, 0xae, 0x28, 0x88, 0x27, 0x8e, 0x52, 0x51, 0x10, 0x4f, 0x31, 0xfe, 0xc8, 0x30, 0x2f,
		0x88, 0x3b, 0xce, 0x40, 0x0a, 0xcd, 0xb0, 0x22, 0x5e, 0x28, 0x40, 0x85, 0x37, 0x0b, 0xa3, 0x41,
		0x6f, 0xc6, 0xfe, 0x00, 0xbd, 0x09, 0x74, 0x18, 0x07, 0x4a, 0x04, 0xbd, 0x49, 0x11, 0x38, 0x82,
		0xde, 0x84, 0xb4, 0x1f, 0x79, 0x80, 0xde, 0x4c, 0x0d, 0x36, 0xb3, 0x9c, 0xa1, 0x51, 0x8e, 0x16,
		0x03, 0x7e, 0xf4, 0x66, 0x28, 0x39, 0xe8, 0xcd, 0x28, 0xc4, 0x05, 0xbd, 0x19, 0xa7, 0x2e, 0x83,
		0xde, 0x4c, 0x06, 0xb8, 0x82, 0xde, 0x4c, 0x1c, 0xa5, 0x82, 0xde, 0x4c, 0x31, 0xfe, 0xc8, 0x80,
		0xde, 0x4c, 0x06, 0x86, 0x80, 0xde, 0xdc, 0xe8, 0x5d, 0x05, 0xbd, 0x99, 0xc4, 0x03, 0xf4, 0x26,
		0xd0, 0x61, 0x1c, 0x28, 0x11, 0xf4, 0x26, 0x45, 0xe0, 0x08, 0x7a, 0x13, 0xd2, 0x7e, 0xe4, 0x01,
		0x7a, 0x33, 0x35, 0xd8, 0xcc, 0x1a, 0x0a, 0xd7, 0x28, 0x8e, 0xec, 0xe6, 0x4c, 0x70, 0x90, 0x9b,
		0x51, 0x88, 0x0b, 0x72, 0x33, 0x46, 0x55, 0x06, 0xb9, 0x99, 0x10, 0x6c, 0x05, 0xb9, 0x99, 0x38,
		0x46, 0x05, 0xb9, 0x99, 0x62, 0xf4, 0x91, 0x01, 0xb9, 0x99, 0x0c, 0x0c, 0x01, 0xb9, 0xb9, 0xd1,
		0xbb, 0x0a, 0x72, 0x33, 0x89, 0x07, 0xc8, 0x4d, 0xa0, 0xc3, 0x38, 0x50, 0x22, 0xc8, 0x4d, 0x8a,
		0xc0, 0x11, 0xe4, 0x26, 0xa4, 0xfd, 0xc8, 0x03, 0xe4, 0x66, 0x6a, 0xb0, 0x99, 0x65, 0x5c, 0xa1,
		0x3d, 0x35, 0x5d, 0x9b, 0x8b, 0x19, 0xbf, 0xb9, 0x20, 0x3b, 0x28, 0xce, 0x28, 0xc4, 0x05, 0xc5,
		0x19, 0xa3, 0x36, 0x83, 0xe2, 0x4c, 0x08, 0xbc, 0x82, 0xe2, 0x4c, 0x1c, 0xa9, 0x82, 0xe2, 0x4c,
		0x31, 0x06, 0xc9, 0x80, 0xe2, 0x4c, 0x06, 0x86, 0x80, 0xe2, 0xdc, 0xe8, 0x5d, 0x05, 0xc5, 0x99,
		0xc4, 0x03, 0x14, 0x27, 0xd0, 0x61, 0x1c, 0x28, 0x11, 0x14, 0x27, 0x45, 0xe0, 0x08, 0x8a, 0x13,
		0xd2, 0x7e, 0xe4, 0x01, 0x8a, 0x33, 0x0d, 0x12, 0x12, 0x47, 0x8e, 0xd6, 0xbe, 0xd6, 0x8e, 0x11,
		0x46, 0x39, 0x3c, 0xb6, 0xc8, 0xb1, 0xbc, 0xce, 0x9d, 0xbc, 0x17, 0x43, 0x11, 0xec, 0x9c, 0x64,
		0xe5, 0x9c, 0xa1, 0xd4, 0x9d, 0x80, 0x22, 0xb4, 0xb5, 0x34, 0xbf, 0x1c, 0xf7, 0xa7, 0xad, 0x7c,
		0xf4, 0xab, 0x3b, 0x32, 0xf7, 0xfa, 0x80, 0xb7, 0x74, 0x24, 0x37, 0x9c, 0xfa, 0x67, 0x2f, 0x7c,
		0x96, 0xbb, 0xed, 0x0f, 0x73, 0xae, 0xba, 0xcd, 0x89, 0x9e, 0xb2, 0x3d, 0xd1, 0x53, 0x5e, 0xf8,
		0x2c, 0x37, 0x28, 0x3e, 0x0c, 0xb5, 0x2d, 0x1f, 0x86, 0x3a, 0x37, 0x98, 0xd0, 0x05, 0x39, 0xd7,
		0x19, 0x19, 0xe9, 0x4d, 0xfe, 0xd8, 0x5d, 0xe5, 0x19, 0xa5, 0xfb, 0x23, 0xe5, 0xdd, 0x49, 0x37,
		0x67, 0x1e, 0x87, 0xd2, 0x76, 0xb4, 0xb4, 0xa5, 0xb9, 0x93, 0xae, 0x96, 0xc6, 0x16, 0x23, 0xe3,
		0xf8, 0x27, 0x75, 0x9c, 0x07, 0xe9, 0x3e, 0xce, 0x4f, 0x08, 0xae, 0xce, 0xf9, 0xbf, 0xc9, 0x0b,
		0xfe, 0xcf, 0x8d, 0xf4, 0x4f, 0xed, 0xfc, 0xd2, 0xb6, 0x30, 0xc6, 0x55, 0xb7, 0xc1, 0x37, 0x2c,
		0x1d, 0xca, 0x79, 0x46, 0x18, 0x0e, 0x48, 0xc0, 0xf2, 0x8c, 0x3b, 0xea, 0x18, 0x3d, 0x45, 0x9c,
		0x17, 0xe1, 0x88, 0x9d, 0x4f, 0x46, 0xe3, 0x64, 0x3a, 0x18, 0xed, 0x57, 0xaf, 0xbd, 0xd7, 0x07,
		0xda, 0xb3, 0x68, 0xea, 0x85, 0xcf, 0xda, 0x07, 0xfd, 0x61, 0xfb, 0x52, 0xdd, 0xb6, 0xf7, 0x7b,
		0xaa, 0xe9, 0x0f, 0xd6, 0xec, 0x49, 0xfb, 0xb4, 0x78, 0x3d, 0xd4, 0x47, 0x0f, 0x43, 0xdd, 0x3e,
		0x75, 0x3a, 0xfe, 0x19, 0x97, 0xc1, 0x48, 0x4d, 0xfe, 0x1c, 0x2e, 0x0e, 0x54, 0xdb, 0xcf, 0xfb,
		0x2f, 0xb4, 0x3c, 0x9a, 0x0e, 0xd3, 0xfe, 0xc8, 0x38, 0x87, 0xb3, 0x41, 0x9a, 0xbd, 0x19, 0x5c,
		0xd6, 0x6e, 0xf8, 0x43, 0x14, 0xfc, 0xdf, 0xfe, 0x3e, 0x19, 0x8f, 0xfd, 0x70, 0x84, 0x96, 0x8e,
		0xb4, 0x9b, 0xc1, 0x00, 0x7d, 0x82, 0xef, 0xdc, 0x1e, 0xc9, 0x88, 0x7a, 0x73, 0x3f, 0x49, 0x08,
		0x77, 0x0f, 0xf6, 0xdd, 0x0a, 0x51, 0xb7, 0x60, 0x9d, 0x2a, 0xcf, 0xf8, 0x06, 0x42, 0x3a, 0xd6,
		0x58, 0x67, 0x4a, 0x1f, 0x0d, 0xa4, 0x8f, 0xef, 0x89, 0x6f, 0x78, 0x64, 0x9d, 0x89, 0xdf, 0x0b,
		0x92, 0x16, 0x76, 0xcb, 0xe5, 0x6a, 0xad, 0x5c, 0xce, 0xd7, 0x4a, 0xb5, 0x7c, 0xbd, 0x52, 0x29,
		0x54, 0x0b, 0x84, 0xb7, 0x9d, 0xb2, 0x2e, 0xfc, 0x54, 0x49, 0x76, 0x0f, 0x7c, 0xd5, 0xd5, 0xa3,
		0xc1, 0x80, 0x83, 0xa8, 0xdf, 0x3d, 0xe9, 0x92, 0xde, 0x41, 0x8a, 0xaa, 0x87, 0x62, 0x82, 0x33,
		0x81, 0x2f, 0x67, 0x87, 0x08, 0x23, 0xcb, 0xb4, 0x22, 0x4a, 0x9a, 0x58, 0x92, 0x1e, 0x52, 0xa3,
		0x25, 0x11, 0x31, 0x8f, 0x4c, 0xdd, 0x13, 0xa7, 0xd5, 0x03, 0x13, 0xf4, 0xb7, 0x29, 0xf1, 0xb3,
		0xb4, 0xdc, 0x2a, 0x1d, 0xe7, 0x45, 0x43, 0x12, 0x22, 0xee, 0x73, 0x96, 0x62, 0x0f, 0xa5, 0x74,
		0x6d, 0x35, 0xcc, 0x04, 0x7f, 0x7d, 0x53, 0xb6, 0x55, 0x37, 0xe3, 0x05, 0x35, 0x46, 0x7b, 0x85,
		0x8f, 0x98, 0xbd, 0x25, 0xba, 0x5d, 0x57, 0x7a, 0x9e, 0xdd, 0x13, 0xf7, 0x6a, 0x40, 0x65, 0x67,
		0x7d, 0x9a, 0xe9, 0x38, 0xdd, 0xf4, 0x9b, 0x55, 0xba, 0x4d, 0x38, 0xbd, 0x26, 0x9c, 0x4e, 0x53,
		0xf1, 0x36, 0x44, 0x41, 0x5a, 0x2a, 0xc0, 0x19, 0x21, 0x24, 0xb6, 0x95, 0x08, 0x8c, 0x06, 0xde,
		0x4a, 0x1e, 0xdd, 0x24, 0x2b, 0x41, 0xc2, 0x9e, 0x8e, 0x9a, 0x87, 0xdb, 0x76, 0xcf, 0x46, 0xc0,
		0xa9, 0x6d, 0x9b, 0x33, 0x4b, 0xd6, 0x8f, 0x25, 0xe7, 0x3d, 0x12, 0xf4, 0x1c, 0xd6, 0xa4, 0xe9,
		0x21, 0x69, 0x87, 0x11, 0xb6, 0xcf, 0x52, 0xe8, 0xc1, 0x08, 0x5b, 0xe9, 0x13, 0x16, 0x83, 0xca,
		0x4c, 0x3d, 0x4a, 0x33, 0xf0, 0x68, 0xce, 0xac, 0xa3, 0xd6, 0x13, 0x4d, 0x76, 0x26, 0x1c, 0xd9,
		0x86, 0x65, 0xb2, 0x33, 0xd7, 0xd2, 0x8d, 0x69, 0x0f, 0x15, 0x0d, 0x2a, 0xcd, 0x92, 0x9e, 0xa2,
		0x63, 0xdd, 0xe1, 0x46, 0xee, 0x9e, 0xa2, 0x62, 0xd7, 0xb4, 0x26, 0xc1, 0x93, 0x9b, 0xe4, 0x4e,
		0x71, 0x12, 0x3b, 0xed, 0x49, 0xea, 0x54, 0xa7, 0x19, 0x91, 0x9f, 0x64, 0x4e, 0x7e, 0x4e, 0x10,
		0xf9, 0x49, 0xe2, 0x28, 0xd3, 0x2d, 0x8e, 0x16, 0xb9, 0x49, 0xdc, 0x04, 0xc3, 0xdf, 0x8b, 0xac,
		0x71, 0x97, 0x90, 0x4c, 0xa7, 0x52, 0xf7, 0x03, 0xfe, 0x8d, 0xd6, 0xfc, 0x5f, 0x82, 0x4d, 0x32,
		0x67, 0x8a, 0x6e, 0x1f, 0xa5, 0x75, 0x2d, 0x06, 0x23, 0x5f, 0xe5, 0x8b, 0x44, 0x5b, 0xa7, 0xad,
		0x63, 0x57, 0x74, 0x8c, 0x72, 0xf4, 0xa1, 0xea, 0x2b, 0xca, 0x3d, 0xde, 0xd6, 0xb9, 0xec, 0x8b,
		0xe9, 0xc2, 0x58, 0x34, 0x5b, 0x8e, 0x09, 0xb6, 0x1b, 0x5b, 0x67, 0xe2, 0x37, 0x6c, 0x03, 0xb6,
		0x01, 0x60, 0x46, 0x54, 0x9a, 0x16, 0x21, 0xc4, 0xd1, 0x10, 0xc6, 0x48, 0x57, 0x93, 0x83, 0x1c,
		0xd6, 0x4d, 0xde, 0xae, 0x0b, 0xbb, 0xb7, 0x6f, 0x1f, 0xb7, 0xfe, 0xaf, 0x85, 0xa1, 0x5b, 0x35,
		0x74, 0x17, 0xcd, 0x93, 0xff, 0x90, 0x1d, 0xbf, 0xbf, 0x17, 0x07, 0xf0, 0x2f, 0x42, 0x23, 0x88,
		0xe6, 0x0b, 0x2a, 0xc0, 0xc5, 0x0a, 0xeb, 0xf7, 0x46, 0xf4, 0x09, 0xd2, 0xb5, 0x8b, 0xd2, 0x81,
		0xb7, 0x5d, 0x25, 0x0e, 0x78, 0xdb, 0x77, 0xe8, 0x13, 0x78, 0xdb, 0x77, 0x69, 0x3a, 0x78, 0xdb,
		0x3f, 0x14, 0x10, 0xbc, 0x2d, 0xa3, 0x04, 0x9e, 0x32, 0x6f, 0x4b, 0x2f, 0x0e, 0x2e, 0xc6, 0xc2,
		0x1a, 0x21, 0x91, 0x2e, 0x85, 0xee, 0x4b, 0xd0, 0xb7, 0xff, 0x7e, 0xa3, 0x58, 0xd0, 0xb7, 0x60,
		0xa8, 0xfe, 0xd4, 0x83, 0x80, 0xbd, 0xfd, 0x80, 0x69, 0x70, 0x60, 0x6f, 0xcb, 0xc5, 0x7a, 0xb9,
		0x5e, 0xad, 0x15, 0xeb, 0x15, 0xd8, 0xc8, 0xb6, 0xdb, 0x08, 0x58, 0xdc, 0x95, 0x0f, 0x10, 0x49,
		0x14, 0x24, 0xc0, 0x2c, 0x9e, 0x97, 0xf2, 0x6c, 0xef, 0x2c, 0x1e, 0x2a, 0xcb, 0x3d, 0x6e, 0xd1,
		0x2c, 0x1e, 0x02, 0x0b, 0x34, 0x26, 0x38, 0x8b, 0xe7, 0x53, 0x8a, 0xfc, 0xd5, 0x6c, 0xf5, 0x06,
		0xe9, 0xa9, 0x0c, 0x81, 0x7c, 0x9e, 0xc6, 0xc2, 0x0b, 0x74, 0x16, 0x5a, 0x20, 0xbd, 0xb0, 0x02,
		0xa1, 0x85, 0x14, 0x08, 0x2d, 0x9c, 0x90, 0x94, 0x21, 0x13, 0xda, 0xe1, 0x84, 0xd0, 0x8e, 0x25,
		0x84, 0x66, 0xba, 0x5d, 0x1e, 0x7f, 0xad, 0x95, 0x4b, 0xc5, 0xbd, 0xcc, 0xc1, 0xb7, 0x46, 0xe6,
		0xac, 0x71, 0xda, 0xb4, 0x0f, 0x84, 0x27, 0xbb, 0x99, 0x59, 0x3c, 0xce, 0x5c, 0x37, 0xce, 0x31,
		0x07, 0x6e, 0x65, 0x84, 0xa2, 0xba, 0xcf, 0x07, 0x8f, 0x69, 0x70, 0x6f, 0x52, 0xbc, 0xb4, 0xa7,
		0x8b, 0x9f, 0xd2, 0x45, 0x17, 0x24, 0x15, 0xa5, 0x88, 0xa4, 0xc5, 0xdb, 0x9b, 0x0e, 0x5b, 0x89,
		0xae, 0x41, 0xb0, 0x25, 0x09, 0x70, 0x32, 0xde, 0x30, 0x7e, 0x1f, 0x14, 0xef, 0x37, 0xc6, 0xec,
		0x73, 0x92, 0xf6, 0x35, 0x5b, 0xe4, 0x63, 0x12, 0x70, 0x2a, 0xac, 0x9d, 0x49, 0xbc, 0xfe, 0x23,
		0x3e, 0x2b, 0x8e, 0xd1, 0x82, 0xad, 0x40, 0x27, 0xcd, 0x9d, 0x2b, 0xa5, 0xad, 0x74, 0x67, 0x30,
		0xf2, 0xd4, 0x83, 0xb4, 0xef, 0x47, 0x03, 0xa3, 0x3a, 0xc2, 0x33, 0x76, 0xa2, 0x2d, 0xa2, 0xf3,
		0x5d, 0xee, 0xdf, 0x21, 0x64, 0xcc, 0xde, 0x2f, 0x99, 0xc5, 0x6f, 0x12, 0xeb, 0xfc, 0x4c, 0xb2,
		0xc3, 0x93, 0x46, 0x27, 0x67, 0xd2, 0x89, 0x3b, 0x99, 0xce, 0x4c, 0x32, 0x59, 0x39, 0x99, 0x4e,
		0xcb, 0xed, 0xc6, 0x79, 0x49, 0x2d, 0x2e, 0xb3, 0xe8, 0xfd, 0x27, 0xb9, 0x57, 0x62, 0xa6, 0xb7,
		0x22, 0x1e, 0x25, 0x99, 0x0d, 0x26, 0xbc, 0xf2, 0x5a, 0xe2, 0xd3, 0x0f, 0x28, 0x4c, 0x37, 0xa0,
		0x35, 0xbd, 0x80, 0x0a, 0xab, 0x4c, 0x6e, 0xfa, 0x00, 0x39, 0x0a, 0x99, 0xdc, 0xf4, 0x80, 0x74,
		0xd5, 0xe3, 0x93, 0x5e, 0x29, 0x8d, 0xd6, 0xdc, 0x3b, 0x8a, 0x73, 0x0d, 0x88, 0xcc, 0xb5, 0xc3,
		0xb2, 0xa2, 0xe4, 0x83, 0x1e, 0xb5, 0xe0, 0x47, 0x36, 0x08, 0x92, 0x0d, 0x86, 0x64, 0x83, 0x62,
		0xb2, 0xc1, 0x31, 0xe1, 0x20, 0x19, 0x8e, 0x0a, 0x99, 0xb9, 0x71, 0xa1, 0xdf, 0x19, 0x48, 0xd1,
		0x73, 0x65, 0x8f, 0x82, 0xd3, 0x99, 0xe5, 0x60, 0x04, 0xe6, 0xc1, 0x59, 0x8d, 0x69, 0x11, 0xe4,
		0xcb, 0x97, 0x49, 0xbb, 0x6e, 0xee, 0x45, 0x3c, 0x4f, 0xb5, 0x0e, 0x13, 0xea, 0xdb, 0x0a, 0x65,
		0xa2, 0xd3, 0xbf, 0x35, 0x7b, 0x10, 0x9c, 0xfe, 0xca, 0xa4, 0x9f, 0x8b, 0x2a, 0x08, 0x59, 0x05,
		0x46, 0xa8, 0xf5, 0x77, 0x91, 0xc7, 0x25, 0x2b, 0xf1, 0x09, 0x8f, 0x7e, 0x2f, 0x1a, 0x08, 0x86,
		0x48, 0x14, 0x80, 0x9b, 0x83, 0x9b, 0x83, 0x9b, 0x83, 0x9b, 0xdb, 0x7e, 0x29, 0x5a, 0xd8, 0x1b,
		0x2a, 0x76, 0xab, 0x71, 0x5c, 0xd5, 0x57, 0x5a, 0x18, 0xa5, 0xfb, 0x93, 0xb2, 0xa0, 0x6b, 0xab,
		0x21, 0x1d, 0x6e, 0x77, 0xb5, 0x78, 0x20, 0x79, 0x41, 0xf2, 0xfe, 0x9b, 0xe2, 0x80, 0xe4, 0x7d,
		0x1b, 0xe0, 0x00, 0xc9, 0xfb, 0x6e, 0x74, 0x01, 0x92, 0x97, 0x48, 0x6a, 0x04, 0x92, 0xf7, 0x0d,
		0x61, 0x8a, 0x26, 0xc9, 0xbb, 0x3a, 0xb0, 0x83, 0xed, 0x05, 0xdb, 0x0b, 0x1a, 0x04, 0x34, 0x08,
		0x68, 0x10, 0xd0, 0x20, 0xa0, 0x41, 0x40, 0x83, 0xc4, 0x4e, 0x83, 0x38, 0x3e, 0x0c, 0xb1, 0x07,
		0xb3, 0x2d, 0xb5, 0x88, 0xb1, 0x20, 0x2f, 0xa4, 0x03, 0x09, 0x02, 0x12, 0x04, 0x24, 0x08, 0x48,
		0x10, 0x90, 0x20, 0x20, 0x41, 0x40, 0x82, 0xb0, 0x26, 0x41, 0x5e, 0xc4, 0x75, 0x70, 0x20, 0xe0,
		0x40, 0xc0, 0x81, 0x80, 0x03, 0x01, 0x07, 0x02, 0x0e, 0x04, 0x1c, 0x08, 0x38, 0x90, 0xd8, 0xac,
		0x66, 0x28, 0xcc, 0x9d, 0x47, 0x87, 0xf4, 0x98, 0x88, 0x43, 0x83, 0xe5, 0x28, 0x80, 0xe5, 0x00,
		0xcb, 0x01, 0x96, 0x03, 0x2c, 0x07, 0x58, 0x8e, 0xa4, 0x46, 0x25, 0xe9, 0xc9, 0xef, 0x2f, 0xc2,
		0x24, 0xbd, 0x8d, 0x67, 0x03, 0xa9, 0x68, 0x6d, 0x38, 0x5b, 0xc0, 0x86, 0xb3, 0xe4, 0x83, 0x28,
		0xed, 0x60, 0xca, 0x29, 0x5b, 0xc7, 0x86, 0xb3, 0x5b, 0x15, 0x6c, 0x89, 0x25, 0xe4, 0x44, 0x3c,
		0x17, 0x95, 0x20, 0x3c, 0x0f, 0xc6, 0x92, 0xc6, 0x84, 0x85, 0xf5, 0x71, 0x59, 0x52, 0x98, 0xb2,
		0xb0, 0x2e, 0x44, 0x13, 0xdb, 0xe0, 0x90, 0x5c, 0xa8, 0xa6, 0x1c, 0xb2, 0x79, 0x84, 0x6e, 0xea,
		0x21, 0x9c, 0x4d, 0x28, 0x67, 0x13, 0xd2, 0xd9, 0x84, 0x76, 0x5a, 0x21, 0x9e, 0x58, 0xa8, 0x0f,
		0x47, 0x91, 0xdc, 0x1e, 0xf3, 0x4b, 0x7e, 0x8f, 0x4e, 0xb7, 0xc1, 0xda, 0x4c, 0xb8, 0x46, 0x50,
		0xb6, 0xa5, 0x6e, 0x84, 0x19, 0x54, 0xc1, 0xde, 0xbd, 0xd4, 0x0d, 0x73, 0x82, 0x2a, 0x87, 0xc2,
		0xdc, 0xd9, 0xaa, 0x4b, 0x1c, 0xfb, 0xce, 0xa4, 0x04, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
		0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0xa6, 0x0a, 0x80, 0x67, 0x78, 0x05, 0x28, 0x98,
		0x3c, 0x0a, 0xf6, 0x82, 0x88, 0x6a, 0x8b, 0x6e, 0xd7, 0x95, 0x9e, 0x67, 0xf7, 0xc4, 0xbd, 0x1a,
		0x3c, 0xd2, 0x85, 0xc3, 0xab, 0xc5, 0x05, 0x2e, 0x06, 0x2e, 0x06, 0x2e, 0x06, 0x2e, 0x06, 0x2e,
		0x06, 0x2e, 0x06, 0x2e, 0x06, 0x2e, 0x26, 0x88, 0x8b, 0x57, 0x03, 0x17, 0x00, 0x64, 0x2e, 0x00,
		0x79, 0xc5, 0xb6, 0xbe, 0xe4, 0x51, 0xf2, 0x2a, 0x99, 0x01, 0x95, 0x01, 0x95, 0x01, 0x95, 0x01,
		0x95, 0x01, 0x95, 0x01, 0x95, 0x01, 0x95, 0x01, 0x95, 0xe9, 0x42, 0xe5, 0x55, 0xe8, 0x05, 0x78,
		0x99, 0x3e, 0x5e, 0xf6, 0xc7, 0x90, 0x30, 0x34, 0x0e, 0xc4, 0xa3, 0x89, 0x82, 0x0b, 0x40, 0xc1,
		0x40, 0xc1, 0x40, 0xc1, 0x40, 0xc1, 0x40, 0xc1, 0x88, 0xac, 0xab, 0x47, 0x91, 0xda, 0xe4, 0xa1,
		0x50, 0x30, 0xd1, 0x7d, 0x90, 0xae, 0x51, 0x9e, 0xec, 0xda, 0xc6, 0xb1, 0x87, 0x52, 0xba, 0x74,
		0x9d, 0xcb, 0xcc, 0x45, 0xaf, 0x90, 0x99, 0xa8, 0xf1, 0xd2, 0xa4, 0xc9, 0xc8, 0x03, 0x05, 0x0e,
		0x80, 0x81, 0x17, 0x70, 0xe0, 0x02, 0x20, 0xd8, 0x01, 0x09, 0x76, 0x80, 0x82, 0x1d, 0xb0, 0xa0,
		0x09, 0x30, 0x88, 0x02, 0x8d, 0x70, 0x74, 0xc9, 0xd2, 0x6e, 0x4b, 0x7e, 0x53, 0x0d, 0x67, 0xd5,
		0x55, 0xca, 0x7e, 0x73, 0x96, 0xea, 0xd7, 0x09, 0xcb, 0x38, 0x1d, 0xf3, 0x1b, 0xd2, 0x7e, 0x87,
		0x76, 0xdc, 0x79, 0xa5, 0x99, 0x0f, 0x65, 0x06, 0xba, 0xb9, 0xa4, 0xa3, 0xbb, 0x0c, 0x64, 0x6d,
		0x08, 0x63, 0xa4, 0xab, 0xc9, 0xab, 0x6b, 0x28, 0xf0, 0xce, 0x4d, 0xde, 0xae, 0xb7, 0x9e, 0x6f,
		0x0a, 0x76, 0xbd, 0x35, 0x79, 0x5a, 0x08, 0xfe, 0x3c, 0x15, 0xc7, 0xcf, 0xc5, 0x9b, 0xbc, 0x5d,
		0x9e, 0x1e, 0x2d, 0x56, 0x6e, 0xf2, 0x76, 0xa5, 0x95, 0xdd, 0xf9, 0xf1, 0xe3, 0xcb, 0x7b, 0xaf,
		0xc9, 0x3e, 0x95, 0xc6, 0x16, 0xf9, 0xdb, 0xd1, 0xe2, 0xa0, 0x5e, 0x17, 0xcd, 0x93, 0xff, 0xb0,
		0xd3, 0xb1, 0xbf, 0x77, 0xe2, 0xd2, 0xb2, 0xec, 0x5f, 0x0c, 0xf4, 0x8c, 0xb4, 0x84, 0xe3, 0xcf,
		0x08, 0xb3, 0x1b, 0x0b, 0xb3, 0x55, 0x84, 0x59, 0x84, 0xd9, 0x49, 0x98, 0x0d, 0xbc, 0x99, 0xb0,
		0x7b, 0xfb, 0xf6, 0x71, 0xeb, 0xa9, 0xf0, 0xb9, 0x3c, 0xde, 0xcb, 0x3e, 0xd5, 0xc6, 0xaf, 0x0f,
		0x3e, 0xaf, 0x3a, 0xad, 0xf0, 0xb9, 0x36, 0xde, 0x5b, 0xf3, 0x4e, 0x75, 0xbc, 0xf7, 0xc6, 0xcf,
		0xa8, 0x8c, 0x77, 0x96, 0x4e, 0xf5, 0x8f, 0x17, 0xd7, 0x5d, 0x50, 0x5e, 0x73, 0x41, 0x69, 0xdd,
		0x05, 0xa5, 0x35, 0x17, 0xac, 0x15, 0xa9, 0xb8, 0xe6, 0x82, 0xca, 0xf8, 0x79, 0xe9, 0xfc, 0x9d,
		0xd5, 0xa7, 0x56, 0xc7, 0xd9, 0xe7, 0x75, 0xef, 0xd5, 0xc6, 0xcf, 0x7b, 0xd9, 0x2c, 0x80, 0x47,
		0xea, 0x81, 0x07, 0xcc, 0x2e, 0x7e, 0xb3, 0x03, 0x10, 0xdb, 0x4a, 0x5e, 0x90, 0xee, 0x7d, 0xa3,
		0xca, 0x58, 0x9e, 0x2a, 0xcf, 0xec, 0x1b, 0xe3, 0xd2, 0x66, 0x2d, 0xcf, 0x94, 0x3e, 0x1a, 0xc8,
		0x7b, 0xa9, 0x8d, 0x47, 0xb7, 0x6e, 0x36, 0x91, 0x54, 0xfc, 0x5e, 0x90, 0xb4, 0xb0, 0x5b, 0x2e,
		0x57, 0x6b, 0xe5, 0x72, 0xbe, 0x56, 0xaa, 0xe5, 0xeb, 0x95, 0x4a, 0xa1, 0x5a, 0xa8, 0x10, 0x16,
		0xfe, 0xc2, 0xed, 0x4a, 0x57, 0x76, 0x0f, 0x1e, 0xad, 0xbd, 0x8c, 0x1e, 0x0d, 0x06, 0x1c, 0x44,
		0xfd, 0xee, 0x05, 0xc5, 0xf3, 0x9e, 0x18, 0x78, 0xf2, 0x13, 0x3c, 0x25, 0x53, 0x5f, 0x64, 0x09,
		0x63, 0x5c, 0x5b, 0xe9, 0xae, 0xfc, 0xcd, 0xa0, 0x13, 0x62, 0x2e, 0x2b, 0x3a, 0x20, 0x3e, 0x22,
		0x1e, 0x3a, 0x20, 0x36, 0xa8, 0x8d, 0xe8, 0x80, 0xd8, 0xa8, 0xe5, 0xa0, 0x03, 0x22, 0x62, 0x81,
		0xd1, 0x01, 0xb1, 0xcd, 0xf9, 0x04, 0x9f, 0x0e, 0x08, 0xba, 0x13, 0x90, 0x5e, 0x87, 0x71, 0x8a,
		0x13, 0x91, 0xe6, 0xa1, 0x72, 0x3e, 0x21, 0xe9, 0x5f, 0xff, 0x05, 0xc0, 0xc9, 0x93, 0xc6, 0x0b,
		0x9f, 0x4d, 0x27, 0x31, 0x4d, 0xc0, 0x14, 0xe0, 0x3b, 0x5b, 0xf8, 0x7e, 0x2b, 0x3a, 0x3f, 0x47,
		0x43, 0xfa, 0xd0, 0x7d, 0x2a, 0x27, 0x60, 0x3b, 0x60, 0x3b, 0x60, 0x3b, 0x60, 0x3b, 0x60, 0x3b,
		0x60, 0x3b, 0x60, 0x3b, 0x2b, 0xd8, 0x7e, 0xeb, 0x38, 0x03, 0x29, 0x34, 0x07, 0xd8, 0x5e, 0x00,
		0xa0, 0xe5, 0x0b, 0x68, 0xa5, 0x67, 0x48, 0xed, 0xbb, 0xb9, 0xde, 0x20, 0x66, 0x92, 0x02, 0xd4,
		0x02, 0xd4, 0x02, 0xd4, 0x02, 0xd4, 0x02, 0xd4, 0x02, 0xd4, 0x02, 0xd4, 0x02, 0xd4, 0x02, 0xd4,
		0xc2, 0x28, 0x5e, 0x8e, 0x61, 0xc7, 0xb9, 0xbf, 0x1f, 0x69, 0x65, 0x1e, 0xb9, 0x74, 0x5a, 0xbc,
		0x16, 0x18, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17, 0x10, 0x17,
		0xed, 0x16, 0xd1, 0x40, 0xdc, 0x6d, 0x69, 0xb7, 0x98, 0xa1, 0x27, 0x25, 0xbd, 0xf0, 0xf9, 0x23,
		0x3a, 0x2e, 0xb6, 0x03, 0xcb, 0xcb, 0xdf, 0xc6, 0x66, 0x87, 0xe7, 0x57, 0x09, 0x0d, 0x4c, 0x0f,
		0x4c, 0x0f, 0x4c, 0x0f, 0x4c, 0x0f, 0x4c, 0x0f, 0x4c, 0x0f, 0x4c, 0x0f, 0x4c, 0x0f, 0x4c, 0xff,
		0x4f, 0xff, 0x16, 0x11, 0x94, 0x8f, 0xeb, 0x5f, 0x20, 0x2a, 0x60, 0xfb, 0xed, 0xc0, 0xf6, 0x4a,
		0x3f, 0x88, 0x81, 0xea, 0xda, 0xae, 0x14, 0x9e, 0xa3, 0xe9, 0xc3, 0xfa, 0x57, 0xf2, 0x02, 0xd1,
		0x03, 0xd1, 0x03, 0xd1, 0x03, 0xd1, 0x03, 0xd1, 0x03, 0xd1, 0x03, 0xd1, 0xf3, 0x5a, 0x16, 0xba,
		0x2b, 0xb5, 0x51, 0xe6, 0x91, 0x09, 0xaa, 0xa7, 0xbc, 0x98, 0xca, 0xc9, 0xf4, 0x56, 0x1e, 0x08,
		0x8f, 0x81, 0x8b, 0x9f, 0x29, 0xc0, 0xc9, 0xf9, 0xf5, 0xfe, 0xe9, 0xc9, 0x61, 0xfb, 0xf2, 0xe2,
		0xfb, 0xd5, 0x51, 0xfb, 0xf2, 0x68, 0xbf, 0x79, 0x71, 0x4e, 0xdd, 0xdb, 0x5f, 0x8b, 0xc1, 0x48,
		0x7a, 0x2c, 0xd6, 0x7d, 0x7b, 0xe2, 0xb1, 0x32, 0xdd, 0x6b, 0x6d, 0xd8, 0x6f, 0xb6, 0x4f, 0x2f,
		0x2e, 0x1a, 0xf4, 0x17, 0x4d, 0x1b, 0x7f, 0x86, 0x0a, 0x44, 0xa3, 0x02, 0x5f, 0x4f, 0xbf, 0x37,
		0xaf, 0x8e, 0x2e, 0xa1, 0x07, 0x69, 0xd7, 0x83, 0x8b, 0xf3, 0xe3, 0xa3, 0x43, 0x68, 0x40, 0x7a,
		0x35, 0xe0, 0xe2, 0xf2, 0xe4, 0xdb, 0xc9, 0xf9, 0xfe, 0xd5, 0xc5, 0x25, 0x03, 0x2d, 0x20, 0x2d,
		0x61, 0x0b, 0xf9, 0x1d, 0x73, 0xa9, 0x28, 0xb2, 0xc7, 0x03, 0x71, 0x2b, 0x07, 0xf4, 0x49, 0xe3,
		0x89, 0x98, 0xe0, 0x8a, 0x3f, 0x22, 0x1e, 0xb8, 0xe2, 0x0d, 0x2a, 0x22, 0xb8, 0xe2, 0x8d, 0x5a,
		0x0e, 0xb8, 0xe2, 0x88, 0x05, 0x06, 0x57, 0xbc, 0xc5, 0xf9, 0x01, 0x23, 0xae, 0xd8, 0x33, 0xae,
		0xd2, 0x7d, 0x0e, 0x34, 0xf1, 0x2e, 0x34, 0xf0, 0x1d, 0x77, 0x4d, 0xfe, 0x36, 0xae, 0xb0, 0x47,
		0xda, 0x33, 0xe2, 0x76, 0x40, 0x5c, 0x17, 0x5d, 0xd9, 0x93, 0xae, 0xd4, 0x1d, 0xec, 0xc0, 0xb8,
		0x41, 0xc3, 0xbe, 0x3c, 0xfe, 0x5a, 0x2b, 0x97, 0x8a, 0x7b, 0x99, 0x83, 0x6f, 0x8d, 0xcc, 0x59,
		0xe3, 0xb4, 0x69, 0x1f, 0x08, 0x4f, 0x76, 0x33, 0x47, 0xe6, 0x4e, 0xba, 0x5a, 0x9a, 0xcc, 0x75,
		0xe3, 0x9c, 0xc3, 0x96, 0x51, 0x4c, 0x20, 0xd3, 0x2a, 0xe8, 0x34, 0xd7, 0xeb, 0xcf, 0x3c, 0x64,
		0xe7, 0x86, 0xa2, 0x56, 0xa2, 0xa9, 0x37, 0x29, 0x3e, 0x38, 0xaf, 0x2d, 0x95, 0xae, 0x05, 0xce,
		0x8b, 0x2b, 0x6e, 0x99, 0x90, 0x49, 0x45, 0x26, 0xa4, 0x57, 0x11, 0xac, 0xd7, 0x87, 0xc4, 0x03,
		0xeb, 0xb5, 0x41, 0x4d, 0x04, 0xeb, 0x15, 0x11, 0x74, 0x03, 0xeb, 0x15, 0x39, 0x4e, 0x03, 0xeb,
		0xb5, 0x6d, 0x9c, 0x03, 0x58, 0xaf, 0x8d, 0x47, 0x71, 0xb0, 0x5e, 0xef, 0xba, 0x6b, 0x60, 0xbd,
		0xa2, 0x78, 0x80, 0xf5, 0x02, 0x64, 0x7a, 0x3b, 0x74, 0x02, 0xeb, 0x95, 0x04, 0x9a, 0x02, 0xeb,
		0x95, 0x66, 0xe9, 0xc0, 0x7a, 0xb1, 0xc5, 0x2d, 0xd6, 0x40, 0x78, 0xc6, 0xbe, 0x77, 0xba, 0xaa,
		0xa7, 0x64, 0x97, 0x03, 0xf9, 0xb5, 0x28, 0x2e, 0x38, 0xb0, 0x8f, 0x88, 0x07, 0x0e, 0x6c, 0x83,
		0x0a, 0x09, 0x0e, 0x2c, 0x22, 0x20, 0x07, 0x0e, 0x2c, 0x72, 0xd4, 0x06, 0x0e, 0x6c, 0xdb, 0x18,
		0x08, 0x3e, 0x1c, 0x98, 0x51, 0xf7, 0xd2, 0xa8, 0xce, 0x4f, 0xaf, 0x5a, 0x66, 0x40, 0x84, 0xed,
		0x12, 0x16, 0xf1, 0xbb, 0x56, 0xc6, 0xf3, 0x6f, 0xa9, 0x16, 0xda, 0xf1, 0x64, 0xc7, 0xd1, 0x5d,
		0x8f, 0xf2, 0x2d, 0xbd, 0x14, 0xba, 0x0f, 0xd6, 0x69, 0x03, 0x37, 0xf2, 0x4c, 0x69, 0x3e, 0x14,
		0x4d, 0x30, 0xc1, 0x9a, 0x2e, 0xe6, 0x5c, 0x92, 0xf7, 0xd8, 0x15, 0x1d, 0xa3, 0x1c, 0x7d, 0xa8,
		0xfa, 0x13, 0xf3, 0xe2, 0x22, 0xf8, 0xb9, 0xec, 0x0b, 0xa3, 0x1e, 0xfc, 0x7b, 0xdd, 0x13, 0x03,
		0x4f, 0x62, 0x96, 0xe5, 0x26, 0x4c, 0x4d, 0xfc, 0xe6, 0x67, 0x6a, 0x85, 0xdd, 0x72, 0xb9, 0x5a,
		0x2b, 0x97, 0xf3, 0xb5, 0x52, 0x2d, 0x5f, 0xaf, 0x54, 0x0a, 0x55, 0xca, 0x8b, 0x5d, 0xc0, 0xfa,
		0x80, 0xaf, 0x19, 0x49, 0x07, 0xce, 0x93, 0xad, 0x77, 0xb7, 0xee, 0x47, 0x03, 0xa3, 0x78, 0xec,
		0xcc, 0x39, 0x17, 0x15, 0x5c, 0xe7, 0x47, 0xc4, 0x03, 0xd7, 0xb9, 0x41, 0x65, 0x04, 0xd7, 0xb9,
		0x51, 0xcb, 0x01, 0xd7, 0x19, 0xb1, 0xc0, 0xe0, 0x3a, 0xb7, 0x38, 0x3f, 0xc3, 0xd6, 0x9c, 0x11,
		0x84, 0x71, 0x6c, 0xcd, 0xc9, 0x18, 0xd6, 0x0e, 0xa5, 0x74, 0x6d, 0x35, 0xa4, 0x0f, 0x6a, 0x67,
		0x82, 0x02, 0xd2, 0x02, 0xd2, 0x02, 0xd2, 0x02, 0xd2, 0x02, 0xd2, 0x02, 0xd2, 0x02, 0xd2, 0xf2,
		0x5a, 0xe4, 0x7b, 0x68, 0x8b, 0x6e, 0xd7, 0x95, 0x9e, 0xc7, 0x01, 0xd5, 0xd6, 0x09, 0xcb, 0x38,
		0x1d, 0x73, 0x54, 0xc3, 0x37, 0xa6, 0x99, 0x0f, 0x65, 0x06, 0xba, 0xb9, 0xa4, 0xa3, 0xbb, 0x0c,
		0x64, 0x6d, 0x08, 0x63, 0xa4, 0xab, 0x59, 0x2c, 0x93, 0x1e, 0x08, 0xbc, 0x73, 0x93, 0xb7, 0xeb,
		0xad, 0xe7, 0x9b, 0x82, 0x5d, 0x6f, 0x4d, 0x9e, 0x16, 0x82, 0x3f, 0x4f, 0xc5, 0xf1, 0x73, 0xf1,
		0x26, 0x6f, 0x97, 0xa7, 0x47, 0x8b, 0x95, 0x9b, 0xbc, 0x5d, 0x69, 0x65, 0x77, 0x7e, 0xfc, 0xf8,
		0xf2, 0xde, 0x6b, 0xb2, 0x4f, 0xa5, 0x31, 0xfd, 0xb9, 0x0d, 0x2d, 0x0e, 0xea, 0x75, 0xd1, 0x3c,
		0xf9, 0x0f, 0x3b, 0x1d, 0xfb, 0x7b, 0x27, 0x2e, 0x2d, 0xcb, 0xfe, 0xc5, 0x40, 0xcf, 0x68, 0xd7,
		0x93, 0x3f, 0x23, 0xcc, 0x6e, 0x2c, 0xcc, 0x56, 0x11, 0x66, 0x11, 0x66, 0x27, 0x61, 0x36, 0xf0,
		0x66, 0xc2, 0xee, 0xed, 0xdb, 0xc7, 0xad, 0xa7, 0xc2, 0xe7, 0xf2, 0x78, 0x2f, 0xfb, 0x54, 0x1b,
		0xbf, 0x3e, 0xf8, 0xbc, 0xea, 0xb4, 0xc2, 0xe7, 0xda, 0x78, 0x6f, 0xcd, 0x3b, 0xd5, 0xf1, 0xde,
		0x1b, 0x3f, 0xa3, 0x32, 0xde, 0x59, 0x3a, 0xd5, 0x3f, 0x5e, 0x5c, 0x77, 0x41, 0x79, 0xcd, 0x05,
		0xa5, 0x75, 0x17, 0x94, 0xd6, 0x5c, 0xb0, 0x56, 0xa4, 0xe2, 0x9a, 0x0b, 0x2a, 0xe3, 0xe7, 0xa5,
		0xf3, 0x77, 0x56, 0x9f, 0x5a, 0x1d, 0x67, 0x9f, 0xd7, 0xbd, 0x57, 0x1b, 0x3f, 0xef, 0x65, 0xb3,
		0x00, 0x1e, 0xa9, 0x07, 0x1e, 0x30, 0xbb, 0xf8, 0xcd, 0x0e, 0x40, 0x6c, 0x2b, 0x79, 0xc1, 0x0c,
		0x1a, 0xfb, 0x38, 0x43, 0xe9, 0x49, 0x61, 0x71, 0x28, 0xcc, 0x9d, 0xad, 0xba, 0x4c, 0xca, 0xa0,
		0x33, 0x69, 0x51, 0x0b, 0xfd, 0x88, 0x78, 0xa8, 0x85, 0x6e, 0x50, 0x1f, 0x51, 0x0b, 0xdd, 0xa8,
		0xe5, 0xa0, 0x16, 0x1a, 0xb1, 0xc0, 0xa8, 0x85, 0x6e, 0x31, 0x25, 0xc6, 0xa8, 0x16, 0x3a, 0x52,
		0xda, 0x94, 0x8a, 0x0c, 0xea, 0xa0, 0x35, 0xcc, 0x0a, 0xfe, 0xc3, 0x07, 0x66, 0x05, 0x6f, 0x56,
		0x58, 0xcc, 0x0a, 0x8e, 0xcb, 0x57, 0x61, 0x56, 0x70, 0x04, 0xa6, 0xc6, 0x71, 0x56, 0x70, 0xb9,
		0x58, 0x2f, 0xd7, 0xab, 0xb5, 0x62, 0x1d, 0x73, 0x81, 0x61, 0x73, 0x1c, 0x00, 0x2a, 0x7d, 0xe9,
		0x40, 0x19, 0xb2, 0xf5, 0xe9, 0x96, 0x17, 0xd0, 0x09, 0xb3, 0x4a, 0xb6, 0xdd, 0x13, 0xf7, 0x6a,
		0xf0, 0x48, 0x9f, 0x3b, 0x5c, 0x2d, 0x36, 0x48, 0xc4, 0x8f, 0x88, 0x07, 0x12, 0x71, 0x83, 0x8a,
		0x09, 0x12, 0x71, 0xa3, 0x96, 0x03, 0x12, 0x31, 0x62, 0x81, 0x41, 0x22, 0x6e, 0x71, 0xb6, 0xc6,
		0x69, 0x42, 0x45, 0x57, 0x6a, 0xa3, 0xcc, 0xa3, 0x2b, 0x7b, 0x1c, 0x66, 0x54, 0x10, 0x4e, 0x1e,
		0xad, 0x93, 0xe9, 0xad, 0x3c, 0x10, 0x1e, 0x03, 0x17, 0x3f, 0x53, 0x80, 0xfd, 0xe3, 0x93, 0x76,
		0xd3, 0xff, 0xef, 0xea, 0xbf, 0x8d, 0x23, 0xea, 0x6e, 0x3e, 0x20, 0x13, 0x3c, 0x16, 0xad, 0x52,
		0x4c, 0xe8, 0x99, 0x99, 0x1a, 0x9c, 0x34, 0xae, 0xcb, 0xed, 0xe3, 0xd3, 0x8b, 0xff, 0x6d, 0x36,
		0x8e, 0xbe, 0x5a, 0xa0, 0xe9, 0xd2, 0xa9, 0x00, 0xa7, 0xfb, 0x07, 0x47, 0xa7, 0x47, 0x87, 0xed,
		0xef, 0xe7, 0x27, 0x5f, 0xf7, 0x9b, 0x57, 0xd0, 0x83, 0x94, 0xea, 0x01, 0xc6, 0x3f, 0xcd, 0xe3,
		0x5f, 0x85, 0x1f, 0x80, 0x1e, 0x04, 0x7a, 0x80, 0xf1, 0x4f, 0xed, 0xf8, 0x9f, 0x16, 0xaf, 0x1b,
		0xe7, 0xed, 0x23, 0x1e, 0x1b, 0x68, 0x61, 0xf4, 0x23, 0x19, 0xfd, 0xeb, 0xc6, 0x69, 0x13, 0xa3,
		0x9f, 0xc2, 0xd1, 0x2f, 0xf9, 0xa3, 0x1f, 0x20, 0xc1, 0xb3, 0xef, 0xa7, 0x57, 0x88, 0x01, 0xd0,
		0x03, 0x20, 0x01, 0x68, 0x41, 0x15, 0xde, 0x00, 0x7a, 0x80, 0xbc, 0x20, 0xe5, 0x5a, 0x70, 0x72,
		0xfe, 0x3f, 0xcd, 0xab, 0xfd, 0xab, 0x23, 0x0c, 0x7e, 0x8a, 0x07, 0xbf, 0xdd, 0x6c, 0x1c, 0x43,
		0x01, 0xd2, 0xac, 0x00, 0x20, 0x06, 0x52, 0xa9, 0x00, 0xcd, 0xcb, 0xab, 0xa3, 0x76, 0xe3, 0xe2,
		0xf4, 0xe4, 0xeb, 0x7f, 0x83, 0xc4, 0x00, 0x3a, 0x90, 0x7a, 0x1d, 0xa8, 0x42, 0x07, 0xd2, 0xa7,
		0x03, 0xd7, 0x8d, 0x73, 0x5e, 0x0d, 0x03, 0xa4, 0x25, 0x6c, 0xa1, 0xef, 0x8f, 0xb9, 0x54, 0x84,
		0xe7, 0x18, 0xb8, 0xce, 0xc8, 0x48, 0xbb, 0xab, 0x3c, 0xa3, 0x74, 0x7f, 0xa4, 0xbc, 0x3b, 0xe9,
		0xb2, 0x99, 0x68, 0xb0, 0x4a, 0x76, 0xcc, 0x36, 0xf8, 0x88, 0x78, 0x98, 0x6d, 0xb0, 0x41, 0xed,
		0xc4, 0x6c, 0x83, 0x8d, 0x5a, 0x0e, 0x66, 0x1b, 0x44, 0x2c, 0x30, 0x66, 0x1b, 0x6c, 0x71, 0x16,
		0xc1, 0x68, 0xb6, 0x01, 0x9f, 0x70, 0x9e, 0xc1, 0x3e, 0x0e, 0xa9, 0x4a, 0x6e, 0xe7, 0xc0, 0xd3,
		0xb8, 0x4a, 0xf7, 0xb1, 0xb4, 0xf4, 0x86, 0xc1, 0x1d, 0xfb, 0x1d, 0x1c, 0x26, 0x8b, 0xc5, 0xde,
		0x14, 0xec, 0xca, 0xf4, 0x75, 0x79, 0xfc, 0x5c, 0x9d, 0x2f, 0x98, 0xff, 0x54, 0x1a, 0x3f, 0x57,
		0x2b, 0x0b, 0xaf, 0x8b, 0xfe, 0x6b, 0xff, 0x40, 0x71, 0xba, 0xa2, 0x7e, 0xb5, 0x52, 0x29, 0x4d,
		0xd6, 0xd4, 0xdf, 0x5b, 0xf5, 0xe1, 0xbb, 0xc1, 0x87, 0x97, 0xa6, 0xaf, 0xeb, 0xe3, 0xe7, 0xf2,
		0x4d, 0xbe, 0x30, 0x7d, 0xb5, 0x3b, 0x7e, 0x2e, 0x17, 0x6f, 0xf2, 0xf6, 0xee, 0xf4, 0x75, 0xcd,
		0x7f, 0x5d, 0xbf, 0xc9, 0x87, 0xa7, 0x57, 0x83, 0x03, 0xe5, 0x85, 0x53, 0x2a, 0x93, 0x23, 0xf5,
		0xe0, 0x1b, 0x43, 0x81, 0x27, 0x8b, 0x70, 0xdc, 0xe4, 0xed, 0xea, 0x5c, 0xea, 0xe9, 0xc2, 0x1c,
		0xf3, 0x6f, 0x2b, 0x86, 0xc7, 0x16, 0xbe, 0x33, 0x3c, 0x34, 0xf9, 0x44, 0x2c, 0x00, 0xbd, 0x19,
		0xb3, 0xd8, 0x96, 0x9d, 0x27, 0x60, 0x1d, 0x2f, 0xac, 0x03, 0x0b, 0x35, 0x6f, 0x29, 0xd6, 0x06,
		0xa0, 0x01, 0xa0, 0xc9, 0x60, 0x4b, 0xaa, 0x7f, 0xd8, 0x2c, 0x68, 0x2f, 0xca, 0xd8, 0x00, 0xd4,
		0x01, 0xd4, 0xc1, 0x5c, 0x85, 0x01, 0x0d, 0x00, 0x0d, 0x00, 0x0d, 0x00, 0x0d, 0x88, 0x73, 0x1d,
		0xcc, 0x12, 0x2e, 0xa0, 0x0e, 0xa0, 0x8e, 0x18, 0xb9, 0x0e, 0x58, 0x07, 0x00, 0xcd, 0x06, 0x01,
		0x0d, 0x56, 0x98, 0x65, 0x7e, 0xbf, 0x28, 0x76, 0x7f, 0x3d, 0x88, 0x81, 0xea, 0x4e, 0x1a, 0xa8,
		0xe8, 0xb7, 0x7b, 0x2d, 0x0a, 0x8b, 0xfe, 0xae, 0x8f, 0x88, 0x87, 0xfe, 0xae, 0x0d, 0xaa, 0x23,
		0xfa, 0xbb, 0x36, 0x6a, 0x39, 0xe8, 0xef, 0x8a, 0x58, 0x60, 0xf4, 0x77, 0x6d, 0x31, 0xb1, 0xc4,
		0xa8, 0xbf, 0xeb, 0xd6, 0x71, 0x06, 0x52, 0x68, 0x0e, 0x3d, 0x5d, 0x05, 0x40, 0x5b, 0x86, 0x12,
		0x11, 0x33, 0x51, 0x6b, 0x5f, 0x6b, 0xc7, 0x08, 0xa3, 0x1c, 0x9a, 0x9b, 0x5f, 0x59, 0x5e, 0xe7,
		0x4e, 0xde, 0x8b, 0xa1, 0x30, 0x77, 0xbe, 0x79, 0xe6, 0x9c, 0xa1, 0xd4, 0x9d, 0x00, 0x28, 0xda,
		0x5a, 0x9a, 0x5f, 0x8e, 0xfb, 0xd3, 0x56, 0xda, 0x33, 0x42, 0x77, 0x64, 0xee, 0xf5, 0x01, 0x6f,
		0xe9, 0x48, 0x6e, 0xe8, 0x3a, 0xc6, 0xe9, 0x38, 0x03, 0x2f, 0x7c, 0x96, 0xbb, 0xed, 0x0f, 0x73,
		0xae, 0xba, 0xcd, 0x89, 0x9e, 0xb2, 0x3d, 0xd1, 0x53, 0x5e, 0xf8, 0x2c, 0x37, 0x28, 0x3e, 0x0c,
		0xb5, 0x2d, 0x1f, 0x86, 0x3a, 0x37, 0x98, 0x04, 0xa5, 0x5c, 0x00, 0xf0, 0xbd, 0xdc, 0x8a, 0x36,
		0xd0, 0x9c, 0x79, 0x1c, 0x4a, 0xdb, 0xdc, 0xb9, 0x52, 0xda, 0x4a, 0x77, 0x06, 0x23, 0x4f, 0x3d,
		0x48, 0xfb, 0x7e, 0x34, 0x30, 0xaa, 0x23, 0x3c, 0x63, 0x4b, 0x73, 0x27, 0x5d, 0x2d, 0x8d, 0x6d,
		0x44, 0x7f, 0xf1, 0xdc, 0xe0, 0xa3, 0x72, 0xfe, 0x0f, 0xf4, 0x82, 0xff, 0x73, 0x9e, 0x11, 0x24,
		0x73, 0x08, 0xcb, 0x33, 0xee, 0xa8, 0x63, 0xf4, 0xd4, 0x53, 0x5e, 0x84, 0x23, 0x71, 0x3e, 0xb9,
		0xcb, 0x27, 0xd3, 0x9b, 0xdc, 0x7e, 0xf5, 0xda, 0x7b, 0x7d, 0xa0, 0xdd, 0x98, 0x8d, 0x42, 0xf8,
		0xac, 0x7d, 0xd0, 0x1f, 0xb6, 0x2f, 0xd5, 0x6d, 0x7b, 0xbf, 0xa7, 0x9a, 0xfe, 0x20, 0xcc, 0x9e,
		0xb4, 0x4f, 0x8b, 0xd7, 0x43, 0x7d, 0xf4, 0x30, 0xd4, 0xed, 0x53, 0xa7, 0xe3, 0x9f, 0x71, 0x19,
		0x8c, 0xc0, 0xe4, 0xcf, 0xe1, 0xe2, 0x00, 0xb4, 0xfd, 0x28, 0x73, 0xe5, 0xdf, 0xd3, 0x93, 0xd9,
		0xed, 0x3f, 0x9b, 0xdd, 0xfd, 0xa3, 0xe9, 0xcd, 0xbf, 0x12, 0xfd, 0xf9, 0x69, 0xc1, 0x47, 0xb4,
		0x1b, 0xfe, 0x9d, 0x0f, 0xfe, 0x6f, 0x37, 0x83, 0x3b, 0xff, 0x09, 0xce, 0x8b, 0xb8, 0xe3, 0xb2,
		0x46, 0xfa, 0xa7, 0x76, 0x7e, 0x69, 0x5b, 0x18, 0xe3, 0xaa, 0x5b, 0x5f, 0x1f, 0xc8, 0x39, 0xaf,
		0xf9, 0x26, 0x97, 0xcb, 0xb2, 0x12, 0x0b, 0x01, 0x33, 0x40, 0x41, 0x4c, 0x2c, 0xaa, 0x7c, 0x00,
		0x65, 0x1e, 0x80, 0x47, 0xfe, 0x4f, 0x3d, 0xef, 0x67, 0x93, 0xef, 0xb3, 0xc9, 0xf3, 0xd9, 0xe4,
		0xf7, 0x48, 0x16, 0xfe, 0x69, 0x14, 0x0f, 0x15, 0xcd, 0x89, 0xd7, 0xcb, 0x41, 0x96, 0x7e, 0xc1,
		0x60, 0x59, 0x64, 0xda, 0x65, 0x83, 0x02, 0xca, 0x06, 0x5b, 0x07, 0x17, 0x78, 0xc1, 0x06, 0x2e,
		0xf0, 0x81, 0x1d, 0x8c, 0x60, 0x07, 0x27, 0xd8, 0xc1, 0x0a, 0x9a, 0xf0, 0x82, 0x28, 0xcc, 0x20,
		0x0f, 0x37, 0x42, 0x01, 0xfd, 0xd8, 0x6d, 0x1b, 0xea, 0xc5, 0x8d, 0x17, 0x1e, 0x7e, 0x2e, 0x32,
		0x71, 0xd3, 0xa6, 0xdd, 0xad, 0xc0, 0x06, 0x7e, 0x70, 0x82, 0x21, 0x3c, 0xe1, 0x08, 0x37, 0x58,
		0xc2, 0x16, 0x9e, 0xb0, 0x85, 0x29, 0x6c, 0xe1, 0x0a, 0x6d, 0xd8, 0x42, 0x1c, 0xbe, 0x84, 0xa3,
		0x7e, 0xc5, 0x01, 0x20, 0xbc, 0xf0, 0xbb, 0x03, 0x29, 0x7a, 0xb4, 0xf7, 0xd3, 0x5d, 0x62, 0x27,
		0x6a, 0x3c, 0xe6, 0xd5, 0x04, 0x55, 0xec, 0x2f, 0x5f, 0x26, 0x45, 0xde, 0xdc, 0x1c, 0x8c, 0xa1,
		0xbd, 0x7b, 0xdb, 0x4c, 0xdf, 0x9a, 0xd4, 0xf1, 0xd9, 0x24, 0x06, 0x54, 0xdb, 0x0e, 0x56, 0x5a,
		0x3b, 0x92, 0x02, 0x24, 0x05, 0x48, 0x0a, 0x90, 0x14, 0x20, 0x29, 0x00, 0x2a, 0xe0, 0x99, 0x14,
		0x50, 0xe7, 0x36, 0x43, 0x41, 0x03, 0x8c, 0x3a, 0x90, 0x9a, 0x8f, 0x0b, 0x7b, 0x41, 0x75, 0xfa,
		0x92, 0x33, 0x71, 0x04, 0x3c, 0x18, 0x4f, 0x76, 0x20, 0x87, 0x23, 0xd8, 0xe1, 0x0d, 0x7a, 0xb8,
		0x82, 0x1f, 0xf6, 0x20, 0x88, 0x3d, 0x18, 0x62, 0x0f, 0x8a, 0x78, 0x80, 0x23, 0x26, 0x20, 0x29,
		0xd4, 0x06, 0x36, 0x0c, 0xea, 0x92, 0xdf, 0x1e, 0x29, 0x6d, 0x0a, 0x55, 0x4e, 0x3e, 0x7b, 0x8a,
		0x42, 0xaa, 0x8c, 0x44, 0xbe, 0x14, 0xba, 0x2f, 0xd9, 0xac, 0xc8, 0x32, 0x7b, 0xf0, 0x8a, 0x89,
		0xc1, 0x8d, 0x3e, 0x53, 0x9a, 0x5d, 0x30, 0x0f, 0x85, 0xbf, 0x16, 0x83, 0x91, 0xe4, 0x03, 0x57,
		0x97, 0xe4, 0x3f, 0x76, 0x45, 0xc7, 0x28, 0x47, 0x1f, 0xaa, 0xbe, 0x32, 0x1e, 0xe3, 0x1f, 0x72,
		0x2e, 0xfb, 0xc2, 0xa8, 0x07, 0x7f, 0x2c, 0x7a, 0x62, 0xe0, 0x49, 0x76, 0xbf, 0x62, 0xfc, 0x99,
		0xa1, 0xe9, 0x8a, 0xdf, 0xfc, 0x4d, 0xb7, 0x5a, 0xa9, 0x94, 0x2a, 0x30, 0x5f, 0x98, 0x6f, 0x0a,
		0xb0, 0x39, 0x3f, 0x69, 0x5b, 0xc8, 0x79, 0x36, 0x68, 0x66, 0xf2, 0xb7, 0x71, 0x85, 0x3d, 0xd2,
		0x9e, 0x11, 0xb7, 0x03, 0x66, 0xd9, 0x8f, 0x2b, 0x7b, 0xd2, 0x95, 0xba, 0x03, 0x50, 0x1e, 0x63,
		0xaa, 0x79, 0x79, 0xfc, 0x35, 0x53, 0x2e, 0xd6, 0x0a, 0x19, 0x3b, 0xb3, 0x9f, 0x39, 0x70, 0xdc,
		0xae, 0x74, 0x33, 0xdf, 0x84, 0x91, 0xbf, 0xc4, 0x63, 0x66, 0x36, 0xcf, 0x3e, 0x53, 0xce, 0xec,
		0x1c, 0x7c, 0x6b, 0xd8, 0xe5, 0xac, 0xc5, 0x10, 0xc3, 0x30, 0xa5, 0x13, 0xe7, 0xa9, 0xf5, 0x9c,
		0x56, 0x9c, 0x5b, 0x08, 0x53, 0x14, 0xc0, 0x9d, 0x61, 0x0c, 0x7f, 0xc8, 0x22, 0xd3, 0xf8, 0x4e,
		0x13, 0x02, 0xf2, 0x81, 0xb4, 0x9c, 0x90, 0x0f, 0x76, 0xb9, 0xdf, 0x80, 0xbf, 0xe0, 0x33, 0xe7,
		0x67, 0x09, 0x21, 0x70, 0x99, 0xfb, 0x33, 0x0f, 0x98, 0xa8, 0x88, 0x47, 0x2a, 0x30, 0x2a, 0xe2,
		0x80, 0xb0, 0xef, 0x86, 0xae, 0xa8, 0x88, 0x27, 0x8e, 0x53, 0x51, 0x11, 0x4f, 0x31, 0x02, 0xc9,
		0xf0, 0xaf, 0x88, 0xef, 0x32, 0x2c, 0x88, 0x57, 0x50, 0x10, 0x8f, 0xf8, 0x81, 0x82, 0x78, 0xbc,
		0xc2, 0xa3, 0x20, 0x4e, 0xc5, 0x35, 0xa2, 0x20, 0x9e, 0x80, 0xe9, 0x6e, 0x43, 0x41, 0xbc, 0x58,
		0x41, 0x39, 0x1c, 0xc6, 0x9b, 0x06, 0x60, 0xce, 0x4f, 0x5a, 0x94, 0xc3, 0x37, 0x69, 0x66, 0x28,
		0x87, 0x03, 0x92, 0xbf, 0x2b, 0xcf, 0x44, 0x39, 0x9c, 0x7c, 0x62, 0x8d, 0x72, 0x38, 0xbd, 0x1f,
		0x82, 0x72, 0x38, 0xa4, 0x4d, 0x09, 0xf2, 0x41, 0x39, 0x7c, 0x03, 0xfe, 0x22, 0xa8, 0x29, 0x3f,
		0x4c, 0xd3, 0x51, 0x8e, 0xf5, 0xf0, 0x89, 0xec, 0x28, 0x88, 0x47, 0x21, 0x2e, 0x0a, 0xe2, 0x31,
		0x6a, 0x33, 0x0a, 0xe2, 0x09, 0x81, 0x57, 0x14, 0xc4, 0x13, 0x47, 0xaa, 0x28, 0x88, 0xa7, 0x18,
		0x83, 0x64, 0x78, 0x17, 0xc4, 0x6f, 0x95, 0x16, 0xee, 0x23, 0xc3, 0x8a, 0x78, 0x9d, 0x91, 0xc8,
		0xa7, 0x52, 0xf7, 0x83, 0xc5, 0x37, 0xc1, 0xbf, 0x45, 0x7c, 0xa7, 0xb7, 0xa2, 0x24, 0x5e, 0x40,
		0x55, 0x2d, 0x61, 0xe7, 0x88, 0x92, 0x78, 0x02, 0xa6, 0x8b, 0x39, 0xe2, 0x30, 0x5f, 0x98, 0x6f,
		0x06, 0xd4, 0x70, 0x64, 0x0f, 0x14, 0xc5, 0x37, 0x69, 0x66, 0x28, 0x8a, 0x03, 0x94, 0xbf, 0x2b,
		0xd7, 0x44, 0x51, 0x9c, 0x7c, 0x6e, 0x8d, 0xa2, 0x38, 0xbd, 0x1f, 0x82, 0xa2, 0x38, 0xa4, 0x4d,
		0x09, 0xf2, 0x41, 0x51, 0x7c, 0x33, 0xb8, 0x4c, 0xea, 0xae, 0xec, 0xf2, 0x2b, 0x89, 0x87, 0x92,
		0xa3, 0x20, 0x1e, 0x85, 0xb8, 0x28, 0x88, 0xc7, 0xa8, 0xcb, 0x28, 0x88, 0x27, 0x04, 0x5c, 0x51,
		0x10, 0x4f, 0x1c, 0xa5, 0xa2, 0x20, 0x9e, 0x62, 0xfc, 0x91, 0x61, 0x5e, 0x10, 0x77, 0x9c, 0x81,
		0x14, 0x9a, 0x61, 0x45, 0xbc, 0x50, 0x80, 0x0a, 0x6f, 0x16, 0x46, 0x83, 0xde, 0x8c, 0xfd, 0x01,
		0x7a, 0x13, 0xe8, 0x30, 0x0e, 0x94, 0x08, 0x7a, 0x93, 0x22, 0x70, 0x04, 0xbd, 0x09, 0x69, 0x3f,
		0xf2, 0x00, 0xbd, 0x99, 0x1a, 0x6c, 0x66, 0x39, 0x43, 0xa3, 0x1c, 0x2d, 0x06, 0xfc, 0xe8, 0xcd,
		0x50, 0x72, 0xd0, 0x9b, 0x51, 0x88, 0x0b, 0x7a, 0x33, 0x4e, 0x5d, 0x06, 0xbd, 0x99, 0x0c, 0x70,
		0x05, 0xbd, 0x99, 0x38, 0x4a, 0x05, 0xbd, 0x99, 0x62, 0xfc, 0x91, 0x01, 0xbd, 0x99, 0x0c, 0x0c,
		0x01, 0xbd, 0xb9, 0xd1, 0xbb, 0x0a, 0x7a, 0x33, 0x89, 0x07, 0xe8, 0x4d, 0xa0, 0xc3, 0x38, 0x50,
		0x22, 0xe8, 0x4d, 0x8a, 0xc0, 0x11, 0xf4, 0x26, 0xa4, 0xfd, 0xc8, 0x03, 0xf4, 0x66, 0x6a, 0xb0,
		0x99, 0x35, 0x14, 0xae, 0x51, 0x1c, 0xd9, 0xcd, 0x99, 0xe0, 0x20, 0x37, 0xa3, 0x10, 0x17, 0xe4,
		0x66, 0x8c, 0xaa, 0x0c, 0x72, 0x33, 0x21, 0xd8, 0x0a, 0x72, 0x33, 0x71, 0x8c, 0x0a, 0x72, 0x33,
		0xc5, 0xe8, 0x23, 0x03, 0x72, 0x33, 0x19, 0x18, 0x02, 0x72, 0x73, 0xa3, 0x77, 0x15, 0xe4, 0x66,
		0x12, 0x0f, 0x90, 0x9b, 0x40, 0x87, 0x71, 0xa0, 0x44, 0x90, 0x9b, 0x14, 0x81, 0x23, 0xc8, 0x4d,
		0x48, 0xfb, 0x91, 0x07, 0xc8, 0xcd, 0xd4, 0x60, 0x33, 0xcb, 0xb8, 0x42, 0x7b, 0x6a, 0xba, 0x36,
		0x17, 0x33, 0x7e, 0x73, 0x41, 0x76, 0x50, 0x9c, 0x51, 0x88, 0x0b, 0x8a, 0x33, 0x46, 0x6d, 0x06,
		0xc5, 0x99, 0x10, 0x78, 0x05, 0xc5, 0x99, 0x38, 0x52, 0x05, 0xc5, 0x99, 0x62, 0x0c, 0x92, 0x01,
		0xc5, 0x99, 0x0c, 0x0c, 0x01, 0xc5, 0xb9, 0xd1, 0xbb, 0x0a, 0x8a, 0x33, 0x89, 0x07, 0x28, 0x4e,
		0xa0, 0xc3, 0x38, 0x50, 0x22, 0x28, 0x4e, 0x8a, 0xc0, 0x11, 0x14, 0x27, 0xa4, 0xfd, 0xc8, 0x03,
		0x14, 0x67, 0x1a, 0x24, 0x24, 0x8e, 0x1c, 0xad, 0x7d, 0xad, 0x1d, 0x23, 0x8c, 0x72, 0x78, 0x6c,
		0x91, 0x63, 0x79, 0x9d, 0x3b, 0x79, 0x2f, 0x86, 0x22, 0xd8, 0x39, 0xc9, 0xca, 0x39, 0x43, 0xa9,
		0x3b, 0x01, 0x45, 0x68, 0x6b, 0x69, 0x7e, 0x39, 0xee, 0x4f, 0x5b, 0xf9, 0xe8, 0x57, 0x77, 0x64,
		0xee, 0xf5, 0x01, 0x6f, 0xe9, 0x48, 0x6e, 0x38, 0xf5, 0xcf, 0x5e, 0xf8, 0x2c, 0x77, 0xdb, 0x1f,
		0xe6, 0x5c, 0x75, 0x9b, 0x13, 0x3d, 0x65, 0x7b, 0xa2, 0xa7, 0xbc, 0xf0, 0x59, 0x6e, 0x50, 0x7c,
		0x18, 0x6a, 0x5b, 0x3e, 0x0c, 0x75, 0x6e, 0x30, 0xa1, 0x0b, 0x72, 0xae, 0x33, 0x32, 0xd2, 0x9b,
		0xfc, 0xb1, 0xbb, 0xca, 0x33, 0x4a, 0xf7, 0x47, 0xca, 0xbb, 0x93, 0x6e, 0xce, 0x3c, 0x0e, 0xa5,
		0x6d, 0xee, 0x5c, 0x29, 0x6d, 0xa5, 0x3b, 0x83, 0x91, 0xa7, 0x1e, 0xa4, 0x7d, 0x3f, 0x1a, 0x18,
		0xd5, 0x11, 0x9e, 0xb1, 0xa5, 0xb9, 0x93, 0xae, 0x96, 0xc6, 0x36, 0xa2, 0xbf, 0x78, 0x6e, 0xf0,
		0x51, 0x39, 0xff, 0x07, 0x7a, 0xc1, 0xff, 0xb9, 0x91, 0xfe, 0xa9, 0x9d, 0x5f, 0xda, 0x16, 0xc6,
		0xb8, 0xea, 0x36, 0xf8, 0xba, 0xa5, 0x43, 0x39, 0xcf, 0x08, 0xc3, 0x01, 0x16, 0x58, 0x9e, 0x71,
		0x47, 0x1d, 0xa3, 0xa7, 0xf0, 0xf3, 0x22, 0x1c, 0xbe, 0xf3, 0xc9, 0xd0, 0x9c, 0x4c, 0x47, 0xa6,
		0xfd, 0xea, 0xb5, 0xf7, 0xfa, 0x40, 0x7b, 0x16, 0x5a, 0xbd, 0xf0, 0x59, 0xfb, 0xa0, 0x3f, 0x6c,
		0x5f, 0xaa, 0xdb, 0xf6, 0x7e, 0x4f, 0x35, 0xfd, 0x91, 0x9b, 0x3d, 0x69, 0x9f, 0x16, 0xaf, 0x87,
		0xfa, 0xe8, 0x61, 0xa8, 0xdb, 0xa7, 0x4e, 0xc7, 0x3f, 0xe3, 0x32, 0x18, 0xb6, 0xc9, 0x9f, 0xc3,
		0xc5, 0x51, 0x6b, 0x5f, 0x3d, 0x0e, 0xe5, 0x95, 0x3f, 0x10, 0x27, 0xb3, 0x31, 0x3b, 0x9b, 0x0d,
		0xd9, 0xd1, 0x74, 0xc4, 0xae, 0x44, 0x7f, 0x7e, 0x5a, 0xf0, 0x11, 0xed, 0x86, 0x3f, 0x5c, 0xc1,
		0xff, 0xed, 0xef, 0x93, 0xb1, 0xd9, 0x0f, 0x47, 0x6b, 0xe9, 0x48, 0xbb, 0x19, 0x0c, 0xd6, 0x27,
		0x38, 0xd5, 0xed, 0x91, 0x8c, 0xa8, 0x9b, 0xf7, 0xb3, 0x87, 0x70, 0x5b, 0x61, 0xdf, 0xc9, 0x10,
		0x75, 0x11, 0xd6, 0xa9, 0xf2, 0x8c, 0x6f, 0x20, 0xa4, 0x83, 0x90, 0x75, 0xa6, 0xf4, 0xd1, 0x40,
		0xfa, 0xc0, 0x9f, 0xf8, 0x4e, 0x48, 0xd6, 0x99, 0xf8, 0xbd, 0x20, 0x69, 0x61, 0xb7, 0x5c, 0xae,
		0xd6, 0xca, 0xe5, 0x7c, 0xad, 0x54, 0xcb, 0xd7, 0x2b, 0x95, 0x42, 0xb5, 0x40, 0x78, 0x3f, 0x2a,
		0xeb, 0xc2, 0xcf, 0xa1, 0x64, 0xf7, 0xc0, 0x57, 0x5d, 0x3d, 0x1a, 0x0c, 0x38, 0x88, 0xfa, 0xdd,
		0x93, 0x2e, 0xe9, 0xad, 0xa5, 0xa8, 0x7a, 0x28, 0x26, 0x00, 0x14, 0xc0, 0x73, 0x25, 0xf0, 0x24,
		0x0c, 0x39, 0x01, 0x35, 0xa9, 0x82, 0x4c, 0x7a, 0x10, 0x8e, 0x96, 0x44, 0xc4, 0x5c, 0x35, 0x75,
		0x17, 0x0d, 0xd7, 0x6c, 0xa4, 0x47, 0xd0, 0x11, 0xa7, 0xd0, 0x01, 0xd3, 0xf2, 0xb7, 0x74, 0xbc,
		0x1a, 0x0d, 0x49, 0x88, 0xf8, 0xd5, 0x59, 0x52, 0x3e, 0x94, 0xd2, 0xb5, 0xd5, 0x30, 0x13, 0xfc,
		0xf5, 0xcd, 0xda, 0x56, 0xdd, 0x8c, 0x17, 0x94, 0x2b, 0xed, 0x15, 0xce, 0x63, 0xf6, 0x96, 0xe8,
		0x76, 0x5d, 0xe9, 0x79, 0x76, 0x4f, 0xdc, 0xab, 0x01, 0x95, 0x4d, 0xfa, 0x69, 0x26, 0xf0, 0x74,
		0x13, 0x76, 0x56, 0x09, 0x3a, 0xe1, 0x84, 0x9c, 0x70, 0x02, 0x4e, 0xc5, 0xdb, 0x10, 0x45, 0x6f,
		0xe9, 0x43, 0x6d, 0x84, 0x20, 0xda, 0xd6, 0x43, 0x33, 0x1a, 0x40, 0x2c, 0x79, 0xd8, 0x93, 0xac,
		0x04, 0x09, 0xbb, 0x40, 0x6a, 0xae, 0x2f, 0x55, 0x2e, 0x8f, 0x80, 0xb7, 0xdb, 0x66, 0x2f, 0x97,
		0xac, 0x83, 0x4b, 0xce, 0xad, 0x24, 0xe8, 0x52, 0xac, 0x49, 0x93, 0x45, 0xd2, 0x9e, 0x24, 0xec,
		0xdd, 0xa5, 0xd0, 0xf3, 0x11, 0xf6, 0xf1, 0x27, 0x2c, 0x06, 0x95, 0x69, 0x82, 0x94, 0xa6, 0xff,
		0xd1, 0x9c, 0xd6, 0x47, 0xad, 0x21, 0x9b, 0xec, 0x34, 0x3c, 0xb2, 0xdd, 0xd2, 0x64, 0xa7, 0xcd,
		0xa5, 0x1b, 0xec, 0x1e, 0x2a, 0x1a, 0xe4, 0x9b, 0xb5, 0x08, 0x0e, 0xe9, 0x98, 0x79, 0xb8, 0x9d,
		0xfc, 0xa2, 0x74, 0x54, 0x08, 0x61, 0x52, 0x73, 0xf2, 0xc9, 0xcd, 0xb9, 0xa7, 0x38, 0xa7, 0x9e,
		0xf6, 0x9c, 0x79, 0xaa, 0xb3, 0x9e, 0xc8, 0xcf, 0x79, 0x27, 0x3f, 0x45, 0x89, 0xfc, 0x9c, 0x75,
		0x94, 0xfa, 0x16, 0x47, 0x8b, 0xdc, 0x9c, 0x72, 0xca, 0x71, 0x70, 0x31, 0x16, 0xd6, 0x08, 0x89,
		0x74, 0x29, 0x74, 0x9f, 0xde, 0xac, 0x64, 0x82, 0x8d, 0x38, 0x67, 0x8a, 0x6e, 0x13, 0xa7, 0x75,
		0x2d, 0x06, 0x23, 0x49, 0xb7, 0x6d, 0xdb, 0x3a, 0x76, 0x45, 0xc7, 0x28, 0x47, 0x1f, 0xaa, 0xbe,
		0xa2, 0xdc, 0x5f, 0x6e, 0x9d, 0xcb, 0xbe, 0x98, 0xae, 0xd6, 0x45, 0xb3, 0xdd, 0x99, 0x60, 0xab,
		0xb3, 0x75, 0x26, 0x7e, 0xd3, 0x37, 0x8d, 0x72, 0xb1, 0x5e, 0xae, 0x57, 0x6b, 0xc5, 0x7a, 0x05,
		0x36, 0xb2, 0xed, 0x36, 0x82, 0x4e, 0xb5, 0x95, 0x8f, 0x16, 0x0a, 0xc7, 0x54, 0x7c, 0xa8, 0xe5,
		0xb8, 0xaa, 0xaf, 0xb4, 0x30, 0x4a, 0xf7, 0x27, 0x95, 0x45, 0xd7, 0x56, 0x43, 0x7a, 0x8c, 0xd2,
		0x6a, 0x31, 0x41, 0x2d, 0xad, 0x12, 0x07, 0xd4, 0xd2, 0x7b, 0x14, 0x0b, 0xd4, 0xd2, 0x7b, 0x34,
		0x1d, 0xd4, 0xd2, 0x1f, 0x0a, 0x08, 0x6a, 0x89, 0x51, 0x76, 0x41, 0x98, 0x5a, 0x52, 0x43, 0x9b,
		0x9c, 0x05, 0x86, 0x8d, 0x0a, 0x75, 0x42, 0x32, 0x4d, 0x87, 0x10, 0xbc, 0xd2, 0x9b, 0x15, 0xeb,
		0xa1, 0x6c, 0x93, 0x5d, 0x2b, 0x37, 0x54, 0xb1, 0x5d, 0x82, 0xb2, 0x35, 0x84, 0x31, 0xd2, 0xd5,
		0x64, 0xd7, 0x56, 0xb4, 0x76, 0x6e, 0xf2, 0x76, 0xbd, 0xf5, 0x7c, 0x53, 0xb0, 0xeb, 0xad, 0xc9,
		0xd3, 0x42, 0xf0, 0xe7, 0xa9, 0x38, 0x7e, 0x2e, 0xde, 0xe4, 0xed, 0xf2, 0xf4, 0x68, 0xb1, 0x72,
		0x93, 0xb7, 0x2b, 0xad, 0xec, 0xce, 0x8f, 0x1f, 0x5f, 0xde, 0x7b, 0x4d, 0xf6, 0xa9, 0x34, 0xce,
		0x85, 0x17, 0x15, 0xa7, 0xef, 0x96, 0x6e, 0xf2, 0x76, 0xb1, 0x45, 0x70, 0x65, 0xb6, 0x16, 0x45,
		0x3d, 0xba, 0x68, 0x9e, 0xfc, 0x87, 0xbc, 0x32, 0xfd, 0xbd, 0x93, 0xb8, 0x3a, 0x65, 0xff, 0x22,
		0xa8, 0x50, 0x98, 0xe6, 0xcc, 0x35, 0xee, 0x55, 0x11, 0xf7, 0xb6, 0x34, 0xee, 0x05, 0x0e, 0x44,
		0xd8, 0xbd, 0x7d, 0xfb, 0xb8, 0xf5, 0x54, 0xf8, 0x5c, 0x1e, 0xef, 0x65, 0x9f, 0x6a, 0xe3, 0xd7,
		0x07, 0x9f, 0x57, 0x9d, 0x56, 0xf8, 0x5c, 0x1b, 0xef, 0xad, 0x79, 0xa7, 0x3a, 0xde, 0x7b, 0xe3,
		0x67, 0x54, 0xc6, 0x3b, 0x4b, 0xa7, 0xfa, 0xc7, 0x8b, 0xeb, 0x2e, 0x28, 0xaf, 0xb9, 0xa0, 0xb4,
		0xee, 0x82, 0xd2, 0x9a, 0x0b, 0xd6, 0x8a, 0x54, 0x5c, 0x73, 0x41, 0x65, 0xfc, 0xbc, 0x74, 0xfe,
		0xce, 0xea, 0x53, 0xab, 0xe3, 0xec, 0xf3, 0xba, 0xf7, 0x6a, 0xe3, 0xe7, 0xbd, 0x6c, 0x36, 0xb7,
		0x53, 0xf0, 0xbd, 0xfa, 0xee, 0xc4, 0xcd, 0x17, 0x5a, 0x4b, 0xde, 0x3f, 0xf8, 0x1f, 0xb8, 0x60,
		0xfb, 0x70, 0x01, 0xac, 0x8d, 0xac, 0xb5, 0x01, 0x35, 0xb1, 0x20, 0xc1, 0xe8, 0xdc, 0x17, 0x2a,
		0x74, 0x1c, 0xe1, 0xad, 0x17, 0x08, 0x6f, 0xad, 0x40, 0x18, 0x74, 0x5f, 0x1e, 0x7f, 0xad, 0x95,
		0x4b, 0xc5, 0xbd, 0xcc, 0xc1, 0xb7, 0x46, 0xe6, 0xac, 0x71, 0xda, 0xb4, 0x0f, 0x84, 0x27, 0xbb,
		0x99, 0xd9, 0xcc, 0xbc, 0xcc, 0x75, 0xe3, 0x9c, 0x22, 0x1a, 0x27, 0xbe, 0xe1, 0x01, 0xa7, 0x0d,
		0x0d, 0xd8, 0x6c, 0x58, 0xf0, 0x7a, 0x43, 0x82, 0x7f, 0x57, 0x5c, 0x34, 0xa4, 0x20, 0xca, 0xb2,
		0xba, 0x1f, 0x94, 0x1a, 0x52, 0x1c, 0xd7, 0x56, 0x43, 0x7b, 0x20, 0x75, 0x3f, 0x98, 0xc9, 0x4f,
		0xb4, 0x1f, 0xe5, 0x85, 0x94, 0x68, 0x47, 0x59, 0x25, 0x0e, 0xda, 0x51, 0xde, 0xa3, 0x57, 0x68,
		0x47, 0xf9, 0x18, 0xcc, 0x41, 0x3b, 0xca, 0x1f, 0x63, 0x1a, 0xb4, 0xa3, 0x50, 0xcf, 0x7f, 0xe9,
		0xb6, 0xa3, 0x8c, 0x94, 0x36, 0xa5, 0x22, 0xe6, 0x38, 0xfd, 0xa3, 0x48, 0x98, 0xe3, 0xf4, 0xc6,
		0x1b, 0x85, 0x39, 0x4e, 0x7f, 0x20, 0x1f, 0xe6, 0x6f, 0x6c, 0x99, 0xdb, 0x7f, 0x69, 0x1a, 0x98,
		0xe3, 0x04, 0x1b, 0x01, 0x89, 0x43, 0x5e, 0x1a, 0x50, 0x4a, 0x14, 0x24, 0xc0, 0xe2, 0x98, 0x2f,
		0xe5, 0x49, 0xc9, 0xe2, 0x98, 0x54, 0x76, 0x6a, 0xdc, 0xd2, 0xc5, 0x31, 0x09, 0xec, 0xad, 0x98,
		0xe0, 0xe2, 0x98, 0x9f, 0x52, 0xe4, 0xc8, 0x66, 0xdb, 0x28, 0x2c, 0x9a, 0x5b, 0x66, 0xe5, 0x5c,
		0xcc, 0x0c, 0x21, 0x46, 0x9c, 0xc6, 0x46, 0x09, 0x74, 0x36, 0x46, 0x20, 0xbd, 0x11, 0x02, 0xa1,
		0x8d, 0x0f, 0x08, 0x6d, 0x74, 0x90, 0x94, 0xbd, 0x13, 0xea, 0xb0, 0x21, 0xd4, 0x51, 0x43, 0x68,
		0x9d, 0x59, 0x26, 0x1d, 0x33, 0x94, 0x57, 0xa0, 0xa5, 0xd6, 0x11, 0xc3, 0x63, 0x11, 0x5a, 0x1e,
		0x1d, 0x2f, 0xe3, 0x94, 0xa2, 0xd2, 0x56, 0xaa, 0xa2, 0x14, 0x91, 0xb4, 0x3a, 0x25, 0xe9, 0xb4,
		0x95, 0xe8, 0x76, 0x00, 0x5b, 0x98, 0x40, 0x27, 0xe3, 0x26, 0xe3, 0x77, 0x4e, 0xf1, 0x7e, 0x63,
		0xcc, 0xce, 0x28, 0x69, 0x27, 0xb4, 0x9d, 0xce, 0x27, 0x01, 0x5f, 0xb3, 0x25, 0x3e, 0x26, 0x5e,
		0xa7, 0x12, 0x9f, 0x69, 0xc7, 0x68, 0xd6, 0xd6, 0x44, 0x51, 0x7f, 0x39, 0xf6, 0xbd, 0xe8, 0xd8,
		0x6a, 0x68, 0x8b, 0xee, 0x83, 0x74, 0x8d, 0xf2, 0xe4, 0x14, 0x04, 0xc7, 0x6b, 0xe5, 0x61, 0xce,
		0xf7, 0xcf, 0x62, 0xc5, 0xec, 0xf6, 0x92, 0xd9, 0x8c, 0x26, 0xb1, 0x2e, 0xd2, 0x24, 0xbb, 0x45,
		0x69, 0x74, 0x85, 0x26, 0x9d, 0xca, 0x93, 0xe9, 0xf2, 0x24, 0x93, 0xa7, 0x93, 0xe9, 0xda, 0xdc,
		0x6e, 0x80, 0x97, 0xd4, 0x66, 0x2f, 0x73, 0x7f, 0x3f, 0x49, 0xbf, 0x12, 0x33, 0xbc, 0xa5, 0xf8,
		0x93, 0x64, 0x3a, 0x98, 0xf0, 0x2e, 0x68, 0x89, 0x4f, 0x63, 0xa0, 0x30, 0x6d, 0x81, 0xd6, 0x34,
		0x05, 0x2a, 0x1c, 0x33, 0xb9, 0x69, 0x08, 0xe4, 0x08, 0x65, 0x72, 0xd3, 0x0c, 0xd2, 0x55, 0xc4,
		0x4f, 0x7a, 0xd7, 0x32, 0x5a, 0xbb, 0x95, 0x51, 0xdc, 0x9d, 0x85, 0xc8, 0x9c, 0x3d, 0x6c, 0xf1,
		0x49, 0x3e, 0xe8, 0x51, 0x0b, 0x7e, 0x64, 0x83, 0x20, 0xd9, 0x60, 0x48, 0x36, 0x28, 0x26, 0x1b,
		0x1c, 0x13, 0x0e, 0x92, 0xe1, 0xa8, 0x90, 0x99, 0x63, 0x17, 0xfa, 0x9d, 0x81, 0x14, 0x3d, 0x57,
		0xf6, 0x28, 0x38, 0x9d, 0x59, 0x0e, 0x46, 0x60, 0x56, 0x9d, 0xd5, 0x98, 0x56, 0x3e, 0xbe, 0x7c,
		0x99, 0xf4, 0xfb, 0xe6, 0x5e, 0xc4, 0xf3, 0x54, 0xeb, 0x30, 0xc1, 0x75, 0x92, 0x08, 0xae, 0x8f,
		0x44, 0x70, 0x1a, 0x2d, 0xb3, 0xf5, 0x90, 0x38, 0x2c, 0x0c, 0x40, 0x75, 0xfd, 0x23, 0x5e, 0x6b,
		0x03, 0xf0, 0x5a, 0xef, 0x08, 0xab, 0x06, 0xc0, 0xcd, 0xc1, 0xcd, 0xc1, 0xcd, 0xc1, 0xcd, 0xa5,
		0x42, 0x8a, 0x56, 0x5a, 0xa7, 0xa2, 0x25, 0x58, 0x7b, 0xa1, 0xb3, 0x36, 0xdb, 0xe2, 0x96, 0x48,
		0x24, 0x16, 0x62, 0x03, 0x99, 0xfb, 0x3a, 0x53, 0x07, 0x99, 0xcb, 0x0b, 0x60, 0x80, 0xcc, 0xfd,
		0x23, 0x14, 0x01, 0x32, 0x97, 0x48, 0x0a, 0x04, 0x32, 0xf7, 0x0d, 0x61, 0x8a, 0x26, 0x99, 0x3b,
		0x0f, 0xe6, 0x60, 0x72, 0xc1, 0xe4, 0x82, 0xe2, 0x00, 0xc5, 0x01, 0x8a, 0x03, 0x14, 0x07, 0x28,
		0x0e, 0x50, 0x1c, 0x71, 0x52, 0x1c, 0x43, 0x1a, 0x99, 0x2b, 0xb9, 0x5d, 0x9f, 0x41, 0x71, 0x80,
		0xe2, 0x00, 0xc5, 0x01, 0x8a, 0x03, 0x14, 0x07, 0x28, 0x0e, 0x50, 0x1c, 0x1f, 0xa7, 0x38, 0xa6,
		0x9e, 0x07, 0x14, 0x07, 0x28, 0x0e, 0x50, 0x1c, 0xa0, 0x38, 0x40, 0x71, 0x80, 0xe2, 0x00, 0xc5,
		0x01, 0x8a, 0x23, 0x36, 0xab, 0xb9, 0x17, 0x1d, 0x5b, 0x74, 0xbb, 0xae, 0xf4, 0x3c, 0x3a, 0x24,
		0xc7, 0xa2, 0x50, 0xa0, 0x39, 0x40, 0x73, 0x80, 0xe6, 0x00, 0xcd, 0x01, 0x9a, 0x03, 0x34, 0x07,
		0x68, 0x0e, 0x96, 0x34, 0xc7, 0x62, 0x38, 0x07, 0xd1, 0x01, 0xa2, 0x03, 0x44, 0x07, 0x88, 0x0e,
		0x10, 0x1d, 0x20, 0x3a, 0xd2, 0x19, 0x05, 0xe0, 0xe6, 0xe0, 0xe6, 0xe0, 0xe6, 0xe0, 0xe6, 0xb6,
		0x5f, 0x0a, 0xf0, 0xb9, 0xf1, 0x5b, 0x8d, 0x9f, 0x6b, 0x51, 0x9b, 0x96, 0xb7, 0x20, 0x13, 0xd8,
		0x5c, 0xb0, 0xb9, 0xff, 0xa2, 0x2d, 0x60, 0x73, 0xdf, 0x08, 0x2d, 0xc0, 0xe6, 0xbe, 0x1b, 0x47,
		0x80, 0xcd, 0x25, 0x92, 0x04, 0x81, 0xcd, 0x7d, 0x43, 0x98, 0xa2, 0xcb, 0xe6, 0x62, 0x62, 0x1e,
		0xc8, 0x5c, 0xb0, 0x1c, 0x60, 0x39, 0xc0, 0x72, 0x80, 0xe5, 0x48, 0x58, 0x0a, 0x90, 0xb9, 0x70,
		0x73, 0x70, 0x73, 0x70, 0x73, 0x5b, 0xee, 0xe6, 0x40, 0xe6, 0xa6, 0x2f, 0xc0, 0x58, 0x43, 0x61,
		0xee, 0x08, 0xb5, 0xe5, 0x4e, 0xc4, 0xa1, 0x41, 0xe1, 0x16, 0x40, 0xe1, 0x4e, 0xf3, 0x73, 0x50,
		0xb8, 0xbc, 0x80, 0x05, 0x28, 0xdc, 0x3f, 0x42, 0x0f, 0xa0, 0x70, 0x89, 0xa4, 0x3e, 0x89, 0x6f,
		0x2a, 0xf5, 0x22, 0x4c, 0xd2, 0x31, 0xef, 0xc5, 0x68, 0x49, 0xc5, 0xb2, 0x69, 0x04, 0x4d, 0x72,
		0xc1, 0x93, 0x62, 0x10, 0xa5, 0x1d, 0x4c, 0x39, 0x65, 0xeb, 0xa4, 0x82, 0x2b, 0xcf, 0x54, 0x9d,
		0x52, 0xb0, 0x25, 0x96, 0x90, 0x13, 0xf1, 0x5c, 0x54, 0x82, 0xf0, 0x3c, 0x18, 0x4b, 0xe9, 0xda,
		0x6a, 0x48, 0xcf, 0x33, 0x84, 0x71, 0x79, 0x2a, 0x20, 0x31, 0xb3, 0xa3, 0xd1, 0x9a, 0x44, 0x3e,
		0x54, 0x53, 0x0e, 0xd9, 0x3c, 0x42, 0x37, 0xf5, 0x10, 0xce, 0x26, 0x94, 0xb3, 0x09, 0xe9, 0x6c,
		0x42, 0x3b, 0xad, 0x10, 0x4f, 0x2c, 0xd4, 0x87, 0xa3, 0x48, 0xa6, 0x75, 0x6a, 0xad, 0xdf, 0xa3,
		0xd3, 0x4a, 0xb5, 0x36, 0x13, 0xae, 0x11, 0x94, 0x6d, 0xa9, 0xd5, 0x6a, 0x06, 0x55, 0x3e, 0xc1,
		0x38, 0x89, 0x1b, 0xe6, 0x04, 0x55, 0x0e, 0x85, 0xb9, 0xb3, 0x55, 0x97, 0x38, 0xf6, 0x9d, 0x49,
		0x09, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00,
		0x4c, 0x15, 0x00, 0xcf, 0xf0, 0x0a, 0x50, 0x30, 0x79, 0x14, 0xec, 0x05, 0x11, 0x75, 0xb6, 0xd8,
		0x8f, 0xdd, 0x13, 0xf7, 0x6a, 0xf0, 0x48, 0x17, 0x0e, 0xaf, 0x16, 0x17, 0xb8, 0x18, 0xb8, 0x18,
		0xb8, 0x18, 0xb8, 0x18, 0xb8, 0x18, 0xb8, 0x18, 0xb8, 0x18, 0xb8, 0x98, 0x20, 0x2e, 0x5e, 0x0d,
		0x5c, 0x00, 0x90, 0xb9, 0x00, 0x64, 0xd7, 0x19, 0x19, 0x69, 0x77, 0x95, 0x67, 0x94, 0xee, 0x8f,
		0x94, 0x77, 0x27, 0x5d, 0xf2, 0x28, 0x79, 0x95, 0xcc, 0x80, 0xca, 0x80, 0xca, 0x80, 0xca, 0x80,
		0xca, 0x80, 0xca, 0x80, 0xca, 0x80, 0xca, 0x80, 0xca, 0x74, 0xa1, 0xf2, 0x2a, 0xf4, 0x02, 0xbc,
		0x4c, 0x1f, 0x2f, 0xfb, 0x63, 0x48, 0x18, 0x1a, 0x07, 0xe2, 0xd1, 0x44, 0xc1, 0x05, 0xa0, 0x60,
		0xa0, 0x60, 0xa0, 0x60, 0xa0, 0x60, 0xa0, 0x60, 0x44, 0xd6, 0xd5, 0xa3, 0x48, 0x6d, 0xf2, 0x50,
		0x28, 0x98, 0xe8, 0x3e, 0x48, 0xd7, 0x28, 0x4f, 0x76, 0x6d, 0xe3, 0xd8, 0x43, 0x29, 0x5d, 0xba,
		0xce, 0x65, 0xe6, 0xa2, 0x57, 0xc8, 0x4c, 0xd4, 0x78, 0x69, 0xd2, 0x64, 0xe4, 0x81, 0x02, 0x07,
		0xc0, 0xc0, 0x0b, 0x38, 0x70, 0x01, 0x10, 0xec, 0x80, 0x04, 0x3b, 0x40, 0xc1, 0x0e, 0x58, 0xd0,
		0x04, 0x18, 0x44, 0x81, 0x46, 0x38, 0xba, 0x64, 0x69, 0xb7, 0x25, 0xbf, 0xa9, 0x86, 0x44, 0x76,
		0xa0, 0x7d, 0x53, 0xaa, 0x5f, 0x27, 0x2c, 0xe3, 0x74, 0xcc, 0x6f, 0x48, 0xfb, 0x1d, 0xda, 0x71,
		0xe7, 0x95, 0x66, 0x3e, 0x94, 0x19, 0xe8, 0xe6, 0x92, 0x8e, 0xee, 0x32, 0x90, 0xb5, 0x21, 0x8c,
		0x91, 0xae, 0x26, 0xaf, 0xae, 0xa1, 0xc0, 0x3b, 0x37, 0x79, 0xbb, 0xde, 0x7a, 0xbe, 0x29, 0xd8,
		0xf5, 0xd6, 0xe4, 0x69, 0x21, 0xf8, 0xf3, 0x54, 0x1c, 0x3f, 0x17, 0x6f, 0xf2, 0x76, 0x79, 0x7a,
		0xb4, 0x58, 0xb9, 0xc9, 0xdb, 0x95, 0x56, 0x76, 0xe7, 0xc7, 0x8f, 0x2f, 0xef, 0xbd, 0x26, 0xfb,
		0x54, 0x1a, 0x5b, 0xe4, 0x6f, 0x47, 0x8b, 0x83, 0x7a, 0x5d, 0x34, 0x4f, 0xfe, 0xc3, 0x4e, 0xc7,
		0xfe, 0xde, 0x89, 0x4b, 0xcb, 0xb2, 0x7f, 0x31, 0xd0, 0x33, 0xd2, 0x12, 0x8e, 0x3f, 0x23, 0xcc,
		0x6e, 0x2c, 0xcc, 0x56, 0x11, 0x66, 0x11, 0x66, 0x27, 0x61, 0x36, 0xf0, 0x66, 0xc2, 0xee, 0xed,
		0xdb, 0xc7, 0xad, 0xa7, 0xc2, 0xe7, 0xf2, 0x78, 0x2f, 0xfb, 0x54, 0x1b, 0xbf, 0x3e, 0xf8, 0xbc,
		0xea, 0xb4, 0xc2, 0xe7, 0xda, 0x78, 0x6f, 0xcd, 0x3b, 0xd5, 0xf1, 0xde, 0x1b, 0x3f, 0xa3, 0x32,
		0xde, 0x59, 0x3a, 0xd5, 0x3f, 0x5e, 0x5c, 0x77, 0x41, 0x79, 0xcd, 0x05, 0xa5, 0x75, 0x17, 0x94,
		0xd6, 0x5c, 0xb0, 0x56, 0xa4, 0xe2, 0x9a, 0x0b, 0x2a, 0xe3, 0xe7, 0xa5, 0xf3, 0x77, 0x56, 0x9f,
		0x5a, 0x1d, 0x67, 0x9f, 0xd7, 0xbd, 0x57, 0x1b, 0x3f, 0xef, 0x65, 0xb3, 0x00, 0x1e, 0xa9, 0x07,
		0x1e, 0x30, 0xbb, 0xf8, 0xcd, 0x0e, 0x40, 0x6c, 0x2b, 0x79, 0x41, 0xba, 0xf7, 0x8d, 0x2a, 0x63,
		0x79, 0xaa, 0x3c, 0xb3, 0x6f, 0x8c, 0x4b, 0x9b, 0xb5, 0x3c, 0x53, 0xfa, 0x68, 0x20, 0xef, 0xa5,
		0x36, 0x1e, 0xdd, 0xba, 0xd9, 0x44, 0x52, 0xf1, 0x7b, 0x41, 0xd2, 0xc2, 0x6e, 0xb9, 0x5c, 0xad,
		0x95, 0xcb, 0xf9, 0x5a, 0xa9, 0x96, 0xaf, 0x57, 0x2a, 0x85, 0x6a, 0xa1, 0x42, 0x58, 0xf8, 0x0b,
		0xb7, 0x2b, 0x5d, 0xd9, 0x3d, 0x78, 0xb4, 0xf6, 0x32, 0x7a, 0x34, 0x18, 0x70, 0x10, 0xf5, 0xbb,
		0x17, 0x14, 0xcf, 0x7b, 0x62, 0xe0, 0xc9, 0x4f, 0xf0, 0x94, 0x4c, 0x7d, 0x91, 0x25, 0x8c, 0x71,
		0x6d, 0xa5, 0xbb, 0xf2, 0x37, 0x83, 0x4e, 0x88, 0xb9, 0xac, 0xe8, 0x80, 0xf8, 0x88, 0x78, 0xe8,
		0x80, 0xd8, 0xa0, 0x36, 0xa2, 0x03, 0x62, 0xa3, 0x96, 0x83, 0x0e, 0x88, 0x88, 0x05, 0x46, 0x07,
		0xc4, 0x36, 0xe7, 0x13, 0x7c, 0x3a, 0x20, 0xe8, 0x4e, 0x40, 0x7a, 0x1d, 0xc6, 0x29, 0x4e, 0x44,
		0x9a, 0x87, 0xca, 0xf9, 0x84, 0xa4, 0x7f, 0xfd, 0x17, 0x00, 0x27, 0x4f, 0x1a, 0x2f, 0x7c, 0x36,
		0x9d, 0xc4, 0x34, 0x01, 0x53, 0x80, 0xef, 0x6c, 0xe1, 0xfb, 0xad, 0xe8, 0xfc, 0x1c, 0x0d, 0xe9,
		0x43, 0xf7, 0xa9, 0x9c, 0x80, 0xed, 0x80, 0xed, 0x80, 0xed, 0x80, 0xed, 0x80, 0xed, 0x80, 0xed,
		0x80, 0xed, 0xac, 0x60, 0xfb, 0xad, 0xe3, 0x0c, 0xa4, 0xd0, 0x1c, 0x60, 0x7b, 0x01, 0x80, 0x96,
		0x2f, 0xa0, 0x95, 0x9e, 0x21, 0xb5, 0xef, 0xe6, 0x7a, 0x83, 0x98, 0x49, 0x0a, 0x50, 0x0b, 0x50,
		0x0b, 0x50, 0x0b, 0x50, 0x0b, 0x50, 0x0b, 0x50, 0x0b, 0x50, 0x0b, 0x50, 0x0b, 0x50, 0x0b, 0xa3,
		0x78, 0x39, 0x86, 0x1d, 0xe7, 0xfe, 0x7e, 0xa4, 0x95, 0x79, 0xe4, 0xd2, 0x69, 0xf1, 0x5a, 0x60,
		0x40, 0x5c, 0x40, 0x5c, 0x40, 0x5c, 0x40, 0x5c, 0x40, 0x5c, 0x40, 0x5c, 0x40, 0x5c, 0xb4, 0x5b,
		0x44, 0x03, 0x71, 0xb7, 0xa5, 0xdd, 0x62, 0x86, 0x9e, 0x94, 0xf4, 0xc2, 0xe7, 0x8f, 0xe8, 0xb8,
		0xd8, 0x0e, 0x2c, 0x2f, 0x3d, 0x45, 0x1f, 0xbf, 0xfb, 0x42, 0x02, 0xb3, 0x03, 0xb3, 0x03, 0xb3,
		0x03, 0xb3, 0x03, 0xb3, 0x03, 0xb3, 0x03, 0xb3, 0xb3, 0xc2, 0xec, 0x74, 0xc3, 0x77, 0x86, 0xc9,
		0x92, 0x20, 0xd6, 0xa9, 0xd4, 0xfd, 0x00, 0xb1, 0x63, 0x7d, 0xb8, 0x3f, 0xbc, 0x93, 0x67, 0x4a,
		0x93, 0x8f, 0x8d, 0xa1, 0xb0, 0xd7, 0x62, 0x30, 0xf2, 0x4d, 0xa8, 0x98, 0xff, 0xcc, 0x43, 0xe0,
		0x63, 0x57, 0x74, 0x8c, 0x72, 0xf4, 0xa1, 0xea, 0x2b, 0xea, 0x93, 0xac, 0x5f, 0xfa, 0x2a, 0xd9,
		0x17, 0x46, 0x3d, 0x48, 0xd2, 0x73, 0x80, 0x19, 0x84, 0xa5, 0x97, 0xb6, 0x26, 0x7e, 0xc3, 0xd6,
		0x60, 0x6b, 0xfc, 0x6d, 0x0d, 0x6b, 0xa8, 0x7c, 0xe8, 0xd1, 0xa2, 0xcd, 0x80, 0xb2, 0x58, 0xe6,
		0xc9, 0x5a, 0x58, 0x7d, 0xe8, 0xff, 0x5a, 0x18, 0xea, 0x8f, 0x0c, 0x35, 0xa7, 0x65, 0xbd, 0xac,
		0xbf, 0x17, 0x07, 0x9c, 0xf0, 0x02, 0x53, 0x2d, 0xb0, 0xfe, 0x5c, 0x81, 0x9a, 0x25, 0x7f, 0x1b,
		0x9b, 0x5d, 0x17, 0xcf, 0x2a, 0xa1, 0x51, 0x15, 0xf8, 0x88, 0x78, 0xa8, 0x0a, 0x6c, 0x50, 0x2d,
		0x51, 0x15, 0xd8, 0xa8, 0xe5, 0xa0, 0x2a, 0x10, 0xb1, 0xc0, 0xa8, 0x0a, 0x6c, 0x31, 0xfd, 0x82,
		0x4e, 0x9e, 0x08, 0xc2, 0xf8, 0xd6, 0x74, 0xf2, 0x2c, 0x22, 0x28, 0x25, 0xbd, 0x17, 0xaf, 0xd1,
		0xd1, 0xb3, 0x25, 0xd8, 0x5e, 0xe9, 0x07, 0x31, 0x50, 0x5d, 0xdb, 0x95, 0xc2, 0x73, 0x34, 0x7d,
		0x58, 0xff, 0x4a, 0x5e, 0x20, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x20, 0x7a,
		0x20, 0x7a, 0x5e, 0x9b, 0x41, 0x76, 0xa5, 0x36, 0xca, 0x3c, 0x32, 0x41, 0xf5, 0x94, 0x97, 0x50,
		0x3f, 0x99, 0xde, 0xca, 0x03, 0xe1, 0x31, 0x70, 0xf1, 0x33, 0x05, 0x38, 0x39, 0xbf, 0xde, 0x3f,
		0x3d, 0x39, 0x6c, 0x5f, 0x5e, 0x7c, 0xbf, 0x3a, 0x6a, 0x5f, 0x1e, 0xed, 0x37, 0x2f, 0xce, 0xa9,
		0x7b, 0xfb, 0xa0, 0xec, 0xef, 0xb1, 0xd8, 0xed, 0x85, 0x49, 0x23, 0xc5, 0x6b, 0x6d, 0xd8, 0x6f,
		0xb6, 0x4f, 0x2f, 0x2e, 0x1a, 0x16, 0x5a, 0x6a, 0x52, 0xab, 0x02, 0x5f, 0x4f, 0xbf, 0x37, 0xaf,
		0x8e, 0x2e, 0xa1, 0x07, 0x69, 0xd7, 0x83, 0x8b, 0xf3, 0xe3, 0xa3, 0x43, 0x68, 0x40, 0x7a, 0x35,
		0xe0, 0xe2, 0xf2, 0xe4, 0xdb, 0xc9, 0xf9, 0xfe, 0xd5, 0xc5, 0xa5, 0x85, 0xb6, 0xaf, 0x3f, 0x7a,
		0xb4, 0x90, 0xdf, 0x31, 0x97, 0x8a, 0x22, 0x7b, 0x3c, 0x10, 0xb7, 0x72, 0x40, 0x9f, 0x34, 0x9e,
		0x88, 0x09, 0xae, 0xf8, 0x23, 0xe2, 0x81, 0x2b, 0xde, 0xa0, 0x22, 0x82, 0x2b, 0xde, 0xa8, 0xe5,
		0x80, 0x2b, 0x8e, 0x58, 0x60, 0x70, 0xc5, 0x5b, 0x9c, 0x1f, 0x30, 0xe2, 0x8a, 0x3d, 0xe3, 0x2a,
		0xdd, 0x67, 0x31, 0x2d, 0x14, 0x1a, 0xf8, 0x8e, 0xbb, 0x26, 0x7f, 0x1b, 0x57, 0xd8, 0x23, 0xed,
		0x19, 0x71, 0x3b, 0x20, 0xae, 0x8b, 0xae, 0xec, 0x49, 0x57, 0xea, 0x20, 0x30, 0x62, 0x5e, 0xed,
		0x86, 0x0c, 0xfb, 0xf2, 0xf8, 0x6b, 0xad, 0x5c, 0x2a, 0xee, 0x65, 0x0e, 0xbe, 0x35, 0x32, 0x67,
		0x8d, 0xd3, 0xa6, 0x7d, 0x20, 0x3c, 0xd9, 0xcd, 0x1c, 0x99, 0x3b, 0xe9, 0x6a, 0x69, 0x32, 0xd7,
		0x0d, 0xea, 0x35, 0x01, 0x4e, 0x90, 0x69, 0x15, 0x74, 0x9a, 0xeb, 0x35, 0x93, 0x09, 0x81, 0xdc,
		0x50, 0xd4, 0x4a, 0x34, 0xf5, 0x26, 0xc5, 0x07, 0xe7, 0xb5, 0xa5, 0xd2, 0x61, 0x36, 0x14, 0x5b,
		0xdc, 0x32, 0x21, 0x93, 0x8a, 0x4c, 0x48, 0xaf, 0x22, 0x58, 0xaf, 0x0f, 0x89, 0x07, 0xd6, 0x6b,
		0x83, 0x9a, 0x08, 0xd6, 0x2b, 0x22, 0xe8, 0x06, 0xd6, 0x2b, 0x72, 0x9c, 0x06, 0xd6, 0x6b, 0xdb,
		0x38, 0x07, 0xb0, 0x5e, 0x1b, 0x8f, 0xe2, 0x60, 0xbd, 0xde, 0x75, 0xd7, 0xc0, 0x7a, 0x45, 0xf1,
		0x00, 0xeb, 0x05, 0xc8, 0xf4, 0x76, 0xe8, 0x04, 0xd6, 0x2b, 0x09, 0x34, 0x05, 0xd6, 0x2b, 0xcd,
		0xd2, 0x81, 0xf5, 0x62, 0x8b, 0x5b, 0xac, 0x81, 0xf0, 0x8c, 0x7d, 0xef, 0x74, 0x55, 0x4f, 0xc9,
		0x2e, 0x07, 0xf2, 0x6b, 0x51, 0x5c, 0x70, 0x60, 0x1f, 0x11, 0x0f, 0x1c, 0xd8, 0x06, 0x15, 0x12,
		0x1c, 0x58, 0x44, 0x40, 0x0e, 0x1c, 0x58, 0xe4, 0xa8, 0x0d, 0x1c, 0xd8, 0xb6, 0x31, 0x10, 0x7c,
		0x38, 0x30, 0xa3, 0xee, 0xa5, 0x51, 0x9d, 0x9f, 0x5e, 0xb5, 0xcc, 0x80, 0x08, 0xa3, 0xbc, 0x29,
		0xc0, 0x77, 0x3d, 0x59, 0xf7, 0xd9, 0xd2, 0x42, 0x3b, 0x9e, 0xec, 0x38, 0xba, 0xeb, 0x51, 0xbe,
		0xa5, 0x97, 0x42, 0xf7, 0xc1, 0x3a, 0x6d, 0xe0, 0x46, 0xb2, 0xdc, 0xc3, 0x00, 0xcb, 0xaa, 0x47,
		0xed, 0x60, 0xb1, 0x85, 0x41, 0x04, 0xa6, 0xc6, 0x71, 0x0b, 0x83, 0xc2, 0x6e, 0xb9, 0x5c, 0xad,
		0x95, 0xcb, 0xf9, 0x5a, 0xa9, 0x96, 0xaf, 0x57, 0x2a, 0x85, 0x2a, 0xe5, 0xc5, 0x2e, 0x60, 0x7d,
		0xc0, 0xd7, 0x8c, 0xa4, 0x03, 0xe7, 0xc9, 0xd6, 0xbb, 0x5b, 0xf7, 0xa3, 0x81, 0x51, 0xc3, 0xc9,
		0x8a, 0x99, 0xc4, 0xf9, 0xce, 0xb9, 0xa8, 0xe0, 0x3a, 0x3f, 0x22, 0x1e, 0xb8, 0xce, 0x0d, 0x2a,
		0x23, 0xb8, 0xce, 0x8d, 0x5a, 0x0e, 0xb8, 0xce, 0x88, 0x05, 0x06, 0xd7, 0xb9, 0xc5, 0xf9, 0x19,
		0x23, 0xae, 0xf3, 0xd6, 0x71, 0x06, 0x52, 0x68, 0x0e, 0x0d, 0x7f, 0x05, 0xc0, 0x5a, 0xb6, 0xb0,
		0x76, 0x28, 0xa5, 0x6b, 0xab, 0x21, 0x7d, 0x50, 0x3b, 0x13, 0x14, 0x90, 0x16, 0x90, 0x16, 0x90,
		0x16, 0x90, 0x16, 0x90, 0x16, 0x90, 0x16, 0x90, 0x96, 0xd7, 0x22, 0xdf, 0x43, 0x5b, 0x74, 0xbb,
		0xae, 0xf4, 0x3c, 0x0e, 0xa8, 0xb6, 0x4e, 0x58, 0xc6, 0xe9, 0x98, 0xa3, 0x1a, 0xbe, 0x31, 0xcd,
		0x7c, 0x28, 0x33, 0xd0, 0xcd, 0x25, 0x1d, 0xdd, 0x65, 0x20, 0x2b, 0x97, 0xdd, 0x73, 0x43, 0x81,
		0x77, 0x6e, 0xf2, 0x76, 0xbd, 0xf5, 0x7c, 0x53, 0xb0, 0xeb, 0xad, 0xc9, 0xd3, 0x42, 0xf0, 0xe7,
		0xa9, 0x38, 0x7e, 0x2e, 0xde, 0xe4, 0xed, 0xf2, 0xf4, 0x68, 0xb1, 0x72, 0x93, 0xb7, 0x2b, 0xad,
		0xec, 0xce, 0x8f, 0x1f, 0x5f, 0xde, 0x7b, 0x4d, 0xf6, 0xa9, 0x34, 0xa6, 0x3f, 0xb7, 0xa1, 0xc5,
		0x41, 0xbd, 0x38, 0xed, 0xd0, 0x1c, 0x4a, 0xfd, 0xf7, 0x4e, 0x5c, 0x5a, 0x96, 0xfd, 0x8b, 0x81,
		0x9e, 0xd1, 0xae, 0x27, 0x7f, 0x46, 0x98, 0xdd, 0x58, 0x98, 0xad, 0x22, 0xcc, 0x22, 0xcc, 0x4e,
		0xc2, 0xec, 0xce, 0xc2, 0x6e, 0xf5, 0x4f, 0x85, 0xcf, 0xe5, 0xf1, 0x5e, 0xf6, 0xa9, 0x36, 0x7e,
		0x7d, 0xf0, 0x79, 0xd5, 0x69, 0x85, 0xcf, 0xb5, 0xf1, 0xde, 0x9a, 0x77, 0xaa, 0xe3, 0xbd, 0x37,
		0x7e, 0x46, 0x65, 0xbc, 0xb3, 0x74, 0xaa, 0x7f, 0xbc, 0xb8, 0xee, 0x82, 0xf2, 0x9a, 0x0b, 0x4a,
		0xeb, 0x2e, 0x28, 0xad, 0xb9, 0x60, 0xad, 0x48, 0xc5, 0x35, 0x17, 0x54, 0xc6, 0xcf, 0x4b, 0xe7,
		0xef, 0xac, 0x3e, 0xb5, 0x3a, 0xce, 0x3e, 0xaf, 0x7b, 0xaf, 0x36, 0x7e, 0xde, 0xcb, 0x66, 0x01,
		0x3c, 0x52, 0x0f, 0x3c, 0x60, 0x76, 0xf1, 0x9b, 0x1d, 0x80, 0xd8, 0x56, 0xf2, 0x82, 0x19, 0x34,
		0xf6, 0x71, 0x86, 0xd2, 0x93, 0xc2, 0xe2, 0x50, 0x98, 0x3b, 0x5b, 0x75, 0x99, 0x94, 0x41, 0x67,
		0xd2, 0xa2, 0x16, 0xfa, 0x11, 0xf1, 0x50, 0x0b, 0xdd, 0xa0, 0x3e, 0xa2, 0x16, 0xba, 0x51, 0xcb,
		0x41, 0x2d, 0x34, 0x62, 0x81, 0x51, 0x0b, 0xdd, 0x62, 0x4a, 0x8c, 0x51, 0x2d, 0x74, 0xa4, 0xb4,
		0x29, 0x15, 0x19, 0xd4, 0x41, 0x6b, 0x98, 0x15, 0xfc, 0x87, 0x0f, 0xcc, 0x0a, 0xde, 0xac, 0xb0,
		0x98, 0x15, 0x1c, 0x97, 0xaf, 0xc2, 0xac, 0xe0, 0x08, 0x4c, 0x8d, 0xe3, 0xac, 0xe0, 0x72, 0xb1,
		0x5e, 0xae, 0x57, 0x6b, 0xc5, 0x3a, 0xe6, 0x02, 0xc3, 0xe6, 0x38, 0x00, 0x54, 0xfa, 0xd2, 0x81,
		0x32, 0x64, 0xeb, 0xd3, 0x2d, 0x2f, 0xa0, 0x13, 0x66, 0x95, 0x6c, 0xbb, 0x27, 0xee, 0xd5, 0xe0,
		0x91, 0x3e, 0x77, 0xb8, 0x5a, 0x6c, 0x90, 0x88, 0x1f, 0x11, 0x0f, 0x24, 0xe2, 0x06, 0x15, 0x13,
		0x24, 0xe2, 0x46, 0x2d, 0x07, 0x24, 0x62, 0xc4, 0x02, 0x83, 0x44, 0xdc, 0xe2, 0x6c, 0x8d, 0xd3,
		0x84, 0x8a, 0xae, 0xd4, 0x46, 0x99, 0x47, 0x57, 0xf6, 0x38, 0xcc, 0xa8, 0x20, 0x9c, 0x3c, 0x5a,
		0x27, 0xd3, 0x5b, 0x79, 0x20, 0x3c, 0x06, 0x2e, 0x7e, 0xa6, 0x00, 0xfb, 0xc7, 0x27, 0xed, 0xa6,
		0xff, 0xdf, 0xd5, 0x7f, 0x1b, 0x47, 0xd4, 0xdd, 0x7c, 0x40, 0x26, 0x78, 0x2c, 0x5a, 0xa5, 0x98,
		0xd0, 0x33, 0x33, 0x35, 0x38, 0x69, 0x5c, 0x97, 0xdb, 0xc7, 0xa7, 0x17, 0xff, 0xdb, 0x6c, 0x1c,
		0x7d, 0xb5, 0x40, 0xd3, 0xa5, 0x53, 0x01, 0x4e, 0xf7, 0x0f, 0x8e, 0x4e, 0x8f, 0x0e, 0xdb, 0xdf,
		0xcf, 0x4f, 0xbe, 0xee, 0x37, 0xaf, 0xa0, 0x07, 0x29, 0xd5, 0x03, 0x8c, 0x7f, 0x9a, 0xc7, 0xbf,
		0x0a, 0x3f, 0x00, 0x3d, 0x08, 0xf4, 0x00, 0xe3, 0x9f, 0xda, 0xf1, 0x3f, 0x2d, 0x5e, 0x37, 0xce,
		0xdb, 0x47, 0x3c, 0x36, 0xd0, 0xc2, 0xe8, 0x47, 0x32, 0xfa, 0xd7, 0x8d, 0xd3, 0x26, 0x46, 0x3f,
		0x85, 0xa3, 0x5f, 0xf2, 0x47, 0x3f, 0x40, 0x82, 0x67, 0xdf, 0x4f, 0xaf, 0x10, 0x03, 0xa0, 0x07,
		0x40, 0x02, 0xd0, 0x82, 0x2a, 0xbc, 0x01, 0xf4, 0x00, 0x79, 0x41, 0xca, 0xb5, 0xe0, 0xe4, 0xfc,
		0x7f, 0x9a, 0x57, 0xfb, 0x57, 0x47, 0x18, 0xfc, 0x14, 0x0f, 0x7e, 0xbb, 0xd9, 0x38, 0x86, 0x02,
		0xa4, 0x59, 0x01, 0x40, 0x0c, 0xa4, 0x52, 0x01, 0x9a, 0x97, 0x57, 0x47, 0xed, 0xc6, 0xc5, 0xe9,
		0xc9, 0xd7, 0xff, 0x06, 0x89, 0x01, 0x74, 0x20, 0xf5, 0x3a, 0x50, 0x85, 0x0e, 0xa4, 0x4f, 0x07,
		0xae, 0x1b, 0xe7, 0xbc, 0x1a, 0x06, 0x48, 0x4b, 0xd8, 0x42, 0xdf, 0x1f, 0x73, 0xa9, 0x08, 0xcf,
		0x31, 0x70, 0x9d, 0x91, 0x91, 0x76, 0x57, 0x79, 0x46, 0xe9, 0xfe, 0x48, 0x79, 0x77, 0xd2, 0x65,
		0x33, 0xd1, 0x60, 0x95, 0xec, 0x98, 0x6d, 0xf0, 0x11, 0xf1, 0x30, 0xdb, 0x60, 0x83, 0xda, 0x89,
		0xd9, 0x06, 0x1b, 0xb5, 0x1c, 0xcc, 0x36, 0x88, 0x58, 0x60, 0xcc, 0x36, 0xd8, 0xe2, 0x2c, 0x82,
		0xd1, 0x6c, 0x03, 0x3e, 0xe1, 0x3c, 0x83, 0x7d, 0x1c, 0x52, 0x95, 0xdc, 0xce, 0x81, 0xa7, 0x71,
		0x95, 0xee, 0x63, 0x69, 0xe9, 0x0d, 0x83, 0x3b, 0xf6, 0x3b, 0x38, 0x4c, 0x16, 0x8b, 0xbd, 0x29,
		0xd8, 0x95, 0xe9, 0xeb, 0xf2, 0xf8, 0xb9, 0x3a, 0x5f, 0x30, 0xff, 0xa9, 0x34, 0x7e, 0xae, 0x56,
		0x16, 0x5e, 0x17, 0xfd, 0xd7, 0xfe, 0x81, 0xe2, 0x74, 0x45, 0xfd, 0x6a, 0xa5, 0x52, 0x9a, 0xac,
		0xa9, 0xbf, 0xb7, 0xea, 0xc3, 0x77, 0x83, 0x0f, 0x2f, 0x4d, 0x5f, 0xd7, 0xc7, 0xcf, 0xe5, 0x9b,
		0x7c, 0x61, 0xfa, 0x6a, 0x77, 0xfc, 0x5c, 0x2e, 0xde, 0xe4, 0xed, 0xdd, 0xe9, 0xeb, 0x9a, 0xff,
		0xba, 0x7e, 0x93, 0x0f, 0x4f, 0xaf, 0x06, 0x07, 0xca, 0x0b, 0xa7, 0x54, 0x26, 0x47, 0xea, 0xc1,
		0x37, 0x86, 0x02, 0x4f, 0x16, 0xe1, 0xb8, 0xc9, 0xdb, 0xd5, 0xb9, 0xd4, 0xd3, 0x85, 0x39, 0xe6,
		0xdf, 0x56, 0x0c, 0x8f, 0x2d, 0x7c, 0x67, 0x78, 0x68, 0xf2, 0x89, 0x58, 0x00, 0x7a, 0x33, 0x66,
		0xb1, 0x2d, 0x3b, 0x4f, 0xc0, 0x3a, 0x5e, 0x58, 0x07, 0x16, 0x6a, 0xde, 0x52, 0xac, 0x0d, 0x40,
		0x03, 0x40, 0x93, 0xc1, 0x96, 0x54, 0xff, 0xb0, 0x59, 0xd0, 0x5e, 0x94, 0xb1, 0x01, 0xa8, 0x03,
		0xa8, 0x83, 0xb9, 0x0a, 0x03, 0x1a, 0x00, 0x1a, 0x00, 0x1a, 0x00, 0x1a, 0x10, 0xe7, 0x3a, 0x98,
		0x25, 0x5c, 0x40, 0x1d, 0x40, 0x1d, 0x31, 0x72, 0x1d, 0xb0, 0x0e, 0x00, 0x9a, 0x0d, 0x02, 0x1a,
		0xac, 0x30, 0xcb, 0xfc, 0x7e, 0x51, 0xec, 0xfe, 0x7a, 0x10, 0x03, 0xd5, 0x9d, 0x34, 0x50, 0xd1,
		0x6f, 0xf7, 0x5a, 0x14, 0x16, 0xfd, 0x5d, 0x1f, 0x11, 0x0f, 0xfd, 0x5d, 0x1b, 0x54, 0x47, 0xf4,
		0x77, 0x6d, 0xd4, 0x72, 0xd0, 0xdf, 0x15, 0xb1, 0xc0, 0xe8, 0xef, 0xda, 0x62, 0x62, 0x89, 0x51,
		0x7f, 0xd7, 0xad, 0xe3, 0x0c, 0xa4, 0xd0, 0x1c, 0x7a, 0xba, 0x0a, 0x80, 0xb6, 0x0c, 0x25, 0x22,
		0x66, 0xa2, 0xd6, 0xbe, 0xd6, 0x8e, 0x11, 0x46, 0x39, 0x34, 0x37, 0xbf, 0xb2, 0xbc, 0xce, 0x9d,
		0xbc, 0x17, 0x43, 0x61, 0xee, 0x7c, 0xf3, 0xcc, 0x39, 0x43, 0xa9, 0x3b, 0x01, 0x50, 0xb4, 0xb5,
		0x34, 0xbf, 0x1c, 0xf7, 0xa7, 0xad, 0xb4, 0x67, 0x84, 0xee, 0xc8, 0xdc, 0xeb, 0x03, 0xde, 0xd2,
		0x91, 0xdc, 0xd0, 0x75, 0x8c, 0xd3, 0x71, 0x06, 0x5e, 0xf8, 0x2c, 0x77, 0xdb, 0x1f, 0xe6, 0x5c,
		0x75, 0x9b, 0x13, 0x3d, 0x65, 0x7b, 0xa2, 0xa7, 0xbc, 0xf0, 0x59, 0x6e, 0x50, 0x7c, 0x18, 0x6a,
		0x5b, 0x3e, 0x0c, 0x75, 0x6e, 0x30, 0x09, 0x4a, 0xb9, 0x00, 0xe0, 0x7b, 0xb9, 0x15, 0x6d, 0xa0,
		0x39, 0xf3, 0x38, 0x94, 0xb6, 0xf9, 0xe5, 0xd8, 0xf7, 0xa2, 0x63, 0xab, 0xa1, 0x2d, 0xba, 0x0f,
		0xd2, 0x35, 0xca, 0x93, 0x7e, 0x5c, 0x9b, 0xbf, 0x1b, 0x5c, 0x9a, 0xf3, 0x7f, 0x90, 0x17, 0xfc,
		0x9f, 0xf3, 0x8c, 0x20, 0x99, 0x33, 0x58, 0x9e, 0x71, 0x47, 0x1d, 0xa3, 0xa7, 0x9e, 0xf1, 0x22,
		0xbc, 0xf3, 0xe7, 0x93, 0xbb, 0x7a, 0x32, 0xbd, 0xa9, 0xed, 0x57, 0xaf, 0xbd, 0xd7, 0x07, 0xda,
		0x8d, 0xd9, 0x5d, 0x0f, 0x9f, 0xb5, 0x0f, 0xfa, 0xc3, 0xf6, 0xa5, 0xba, 0x6d, 0xef, 0xf7, 0x54,
		0xd3, 0xbf, 0xe9, 0xb3, 0x27, 0xed, 0xd3, 0xe2, 0xf5, 0x50, 0x1f, 0x3d, 0x0c, 0x75, 0xfb, 0xd4,
		0xe9, 0xf8, 0x67, 0x5c, 0x06, 0x77, 0x7c, 0xf2, 0xe7, 0x70, 0xf1, 0x86, 0xb7, 0xfd, 0xa8, 0x72,
		0xf5, 0xcb, 0x39, 0x13, 0x9d, 0x93, 0xe1, 0xfe, 0xe2, 0xcd, 0x9e, 0xbd, 0x13, 0x5c, 0xd3, 0x6e,
		0xf8, 0xb7, 0x3a, 0xf8, 0xbf, 0xdd, 0x0c, 0x6e, 0xf5, 0x27, 0x78, 0x27, 0xe2, 0x9e, 0xc9, 0x1a,
		0xe9, 0x9f, 0xda, 0xf9, 0xa5, 0x6d, 0x61, 0x8c, 0xab, 0x6e, 0x7d, 0x05, 0x20, 0xe7, 0x9d, 0xe6,
		0xbb, 0x58, 0x2e, 0xcb, 0x4a, 0xcc, 0xc7, 0xcf, 0x10, 0x03, 0x31, 0xb1, 0xa8, 0x26, 0xfc, 0x94,
		0x13, 0x7d, 0x1e, 0x09, 0x3e, 0xf5, 0xc4, 0x9e, 0x4d, 0x42, 0xcf, 0x26, 0x91, 0x67, 0x93, 0xc0,
		0x23, 0x1b, 0xf8, 0xa7, 0x51, 0x3c, 0x54, 0x34, 0x67, 0x56, 0x2f, 0x07, 0x59, 0xfa, 0x15, 0x81,
		0x65, 0x91, 0x69, 0xd7, 0x05, 0x0a, 0xa8, 0x0b, 0x6c, 0x1d, 0x5c, 0xe0, 0x05, 0x1b, 0xb8, 0xc0,
		0x07, 0x76, 0x30, 0x82, 0x1d, 0x9c, 0x60, 0x07, 0x2b, 0x68, 0xc2, 0x0b, 0xa2, 0x30, 0x83, 0x3c,
		0xdc, 0x08, 0x05, 0xf4, 0x63, 0xb7, 0x6d, 0xa8, 0x57, 0x2f, 0x5e, 0x78, 0xf8, 0xb9, 0xc8, 0xc4,
		0x4d, 0x9b, 0x76, 0x3b, 0x02, 0x1b, 0xf8, 0xc1, 0x09, 0x86, 0xf0, 0x84, 0x23, 0xdc, 0x60, 0x09,
		0x5b, 0x78, 0xc2, 0x16, 0xa6, 0xb0, 0x85, 0x2b, 0xb4, 0x61, 0x0b, 0x71, 0xf8, 0x12, 0x8e, 0xfa,
		0x15, 0x07, 0x80, 0xf0, 0xc2, 0xef, 0x0e, 0xa4, 0xe8, 0xd1, 0xde, 0x30, 0x77, 0x89, 0x9d, 0xa8,
		0xf1, 0x98, 0x38, 0x13, 0x94, 0xa9, 0xbf, 0x7c, 0x99, 0x54, 0x75, 0x73, 0x73, 0x30, 0x86, 0xfe,
		0xed, 0x6d, 0x33, 0x7d, 0x6b, 0x52, 0xb8, 0x67, 0x93, 0x18, 0x50, 0xed, 0x33, 0x58, 0x69, 0xed,
		0x48, 0x0a, 0x90, 0x14, 0x20, 0x29, 0x40, 0x52, 0x80, 0xa4, 0x00, 0xa8, 0x80, 0x67, 0x52, 0x40,
		0x9d, 0xdb, 0x0c, 0x05, 0x0d, 0x30, 0xea, 0x40, 0x6a, 0x3e, 0x2e, 0xec, 0x05, 0xd5, 0xe9, 0x4b,
		0xce, 0xc4, 0x11, 0xf0, 0x60, 0x3c, 0xd9, 0x81, 0x1c, 0x8e, 0x60, 0x87, 0x37, 0xe8, 0xe1, 0x0a,
		0x7e, 0xd8, 0x83, 0x20, 0xf6, 0x60, 0x88, 0x3d, 0x28, 0xe2, 0x01, 0x8e, 0x98, 0x80, 0xa4, 0x50,
		0x1b, 0xd8, 0x30, 0xa8, 0x4b, 0x7e, 0x7b, 0xa4, 0xb4, 0x29, 0x54, 0x39, 0xf9, 0xec, 0x29, 0x0a,
		0xa9, 0x32, 0x12, 0xf9, 0x52, 0xe8, 0xbe, 0x64, 0xb3, 0xe4, 0xca, 0xec, 0xc1, 0x2b, 0x26, 0x06,
		0x37, 0xfa, 0x4c, 0x69, 0x76, 0xc1, 0x3c, 0x14, 0xfe, 0x5a, 0x0c, 0x46, 0x92, 0x0f, 0x5c, 0x5d,
		0x92, 0xff, 0xd8, 0x15, 0x1d, 0xa3, 0x1c, 0x7d, 0xa8, 0xfa, 0xca, 0x78, 0x8c, 0x7f, 0xc8, 0xb9,
		0xec, 0x0b, 0xa3, 0x1e, 0xfc, 0xb1, 0xe8, 0x89, 0x81, 0x27, 0xd9, 0xfd, 0x8a, 0xf1, 0x67, 0x86,
		0xa6, 0x2b, 0x7e, 0xf3, 0x37, 0xdd, 0x6a, 0xa5, 0x52, 0xaa, 0xc0, 0x7c, 0x61, 0xbe, 0x29, 0xc0,
		0xe6, 0xfc, 0xa4, 0x6d, 0x21, 0xe7, 0xd9, 0xa0, 0x99, 0xc9, 0xdf, 0xc6, 0x15, 0xf6, 0x48, 0x7b,
		0x46, 0xdc, 0x0e, 0x98, 0x65, 0x3f, 0xae, 0xec, 0x49, 0x57, 0xea, 0x0e, 0x40, 0x79, 0x8c, 0xa9,
		0xe6, 0xe5, 0xf1, 0xd7, 0x4c, 0xb9, 0x58, 0x2b, 0x64, 0xec, 0xcc, 0x7e, 0xe6, 0xc0, 0x71, 0xbb,
		0xd2, 0xcd, 0x7c, 0x13, 0x46, 0xfe, 0x12, 0x8f, 0x99, 0xd9, 0xc4, 0xfa, 0x4c, 0x39, 0xb3, 0x73,
		0xf0, 0xad, 0x61, 0x97, 0xb3, 0x16, 0x43, 0x0c, 0xc3, 0x94, 0x4e, 0x9c, 0xa7, 0xd6, 0x73, 0x5a,
		0x71, 0x6e, 0x21, 0x4c, 0x51, 0x00, 0x77, 0x86, 0x31, 0xfc, 0x21, 0x8b, 0x4c, 0xe3, 0x3b, 0x4d,
		0x08, 0xc8, 0x07, 0xd2, 0x72, 0x42, 0x3e, 0xd8, 0xc6, 0x7e, 0x03, 0xfe, 0x82, 0xcf, 0x9c, 0x9f,
		0x25, 0x84, 0xc0, 0x65, 0xee, 0xcf, 0x3c, 0x60, 0xa2, 0x22, 0x1e, 0xa9, 0xc0, 0xa8, 0x88, 0x03,
		0xc2, 0xbe, 0x1b, 0xba, 0xa2, 0x22, 0x9e, 0x38, 0x4e, 0x45, 0x45, 0x3c, 0xc5, 0x08, 0x24, 0xc3,
		0xbf, 0x22, 0xbe, 0xcb, 0xb0, 0x20, 0x5e, 0x41, 0x41, 0x3c, 0xe2, 0x07, 0x0a, 0xe2, 0xf1, 0x0a,
		0x8f, 0x82, 0x38, 0x15, 0xd7, 0x88, 0x82, 0x78, 0x02, 0xa6, 0xbb, 0x0d, 0x05, 0xf1, 0x62, 0x05,
		0xe5, 0x70, 0x18, 0x6f, 0x1a, 0x80, 0x39, 0x3f, 0x69, 0x51, 0x0e, 0xdf, 0xa4, 0x99, 0xa1, 0x1c,
		0x0e, 0x48, 0xfe, 0xae, 0x3c, 0x13, 0xe5, 0x70, 0xf2, 0x89, 0x35, 0xca, 0xe1, 0xf4, 0x7e, 0x08,
		0xca, 0xe1, 0x90, 0x36, 0x25, 0xc8, 0x07, 0xe5, 0xf0, 0x0d, 0xf8, 0x8b, 0xa0, 0xa6, 0xfc, 0x30,
		0x4d, 0x47, 0x39, 0xd6, 0xc3, 0x27, 0xb2, 0xa3, 0x20, 0x1e, 0x85, 0xb8, 0x28, 0x88, 0xc7, 0xa8,
		0xcd, 0x28, 0x88, 0x27, 0x04, 0x5e, 0x51, 0x10, 0x4f, 0x1c, 0xa9, 0xa2, 0x20, 0x9e, 0x62, 0x0c,
		0x92, 0xe1, 0x5d, 0x10, 0xbf, 0x55, 0x5a, 0xb8, 0x8f, 0x0c, 0x2b, 0xe2, 0x75, 0x46, 0x22, 0x9f,
		0x4a, 0xdd, 0x0f, 0x16, 0xdf, 0x04, 0xff, 0x16, 0xf1, 0x9d, 0xde, 0x8a, 0x92, 0x78, 0x01, 0x55,
		0xb5, 0x84, 0x9d, 0x23, 0x4a, 0xe2, 0x09, 0x98, 0x2e, 0xe6, 0x88, 0xc3, 0x7c, 0x61, 0xbe, 0x19,
		0x50, 0xc3, 0x91, 0x3d, 0x50, 0x14, 0xdf, 0xa4, 0x99, 0xa1, 0x28, 0x0e, 0x50, 0xfe, 0xae, 0x5c,
		0x13, 0x45, 0x71, 0xf2, 0xb9, 0x35, 0x8a, 0xe2, 0xf4, 0x7e, 0x08, 0x8a, 0xe2, 0x90, 0x36, 0x25,
		0xc8, 0x07, 0x45, 0xf1, 0xcd, 0xe0, 0x32, 0xa9, 0xbb, 0xb2, 0xcb, 0xaf, 0x24, 0x1e, 0x4a, 0x8e,
		0x82, 0x78, 0x14, 0xe2, 0xa2, 0x20, 0x1e, 0xa3, 0x2e, 0xa3, 0x20, 0x9e, 0x10, 0x70, 0x45, 0x41,
		0x3c, 0x71, 0x94, 0x8a, 0x82, 0x78, 0x8a, 0xf1, 0x47, 0x86, 0x79, 0x41, 0xdc, 0x71, 0x06, 0x52,
		0x68, 0x86, 0x15, 0xf1, 0x42, 0x01, 0x2a, 0xbc, 0x59, 0x18, 0x0d, 0x7a, 0x33, 0xf6, 0x07, 0xe8,
		0x4d, 0xa0, 0xc3, 0x38, 0x50, 0x22, 0xe8, 0x4d, 0x8a, 0xc0, 0x11, 0xf4, 0x26, 0xa4, 0xfd, 0xc8,
		0x03, 0xf4, 0x66, 0x6a, 0xb0, 0x99, 0xe5, 0x0c, 0x8d, 0x72, 0xb4, 0x18, 0xf0, 0xa3, 0x37, 0x43,
		0xc9, 0x41, 0x6f, 0x46, 0x21, 0x2e, 0xe8, 0xcd, 0x38, 0x75, 0x19, 0xf4, 0x66, 0x32, 0xc0, 0x15,
		0xf4, 0x66, 0xe2, 0x28, 0x15, 0xf4, 0x66, 0x8a, 0xf1, 0x47, 0x06, 0xf4, 0x66, 0x32, 0x30, 0x04,
		0xf4, 0xe6, 0x46, 0xef, 0x2a, 0xe8, 0xcd, 0x24, 0x1e, 0xa0, 0x37, 0x81, 0x0e, 0xe3, 0x40, 0x89,
		0xa0, 0x37, 0x29, 0x02, 0x47, 0xd0, 0x9b, 0x90, 0xf6, 0x23, 0x0f, 0xd0, 0x9b, 0xa9, 0xc1, 0x66,
		0xd6, 0x50, 0xb8, 0x46, 0x71, 0x64, 0x37, 0x67, 0x82, 0x83, 0xdc, 0x8c, 0x42, 0x5c, 0x90, 0x9b,
		0x31, 0xaa, 0x32, 0xc8, 0xcd, 0x84, 0x60, 0x2b, 0xc8, 0xcd, 0xc4, 0x31, 0x2a, 0xc8, 0xcd, 0x14,
		0xa3, 0x8f, 0x0c, 0xc8, 0xcd, 0x64, 0x60, 0x08, 0xc8, 0xcd, 0x8d, 0xde, 0x55, 0x90, 0x9b, 0x49,
		0x3c, 0x40, 0x6e, 0x02, 0x1d, 0xc6, 0x81, 0x12, 0x41, 0x6e, 0x52, 0x04, 0x8e, 0x20, 0x37, 0x21,
		0xed, 0x47, 0x1e, 0x20, 0x37, 0x53, 0x83, 0xcd, 0x2c, 0xe3, 0x0a, 0xed, 0xa9, 0xe9, 0xda, 0x5c,
		0xcc, 0xf8, 0xcd, 0x05, 0xd9, 0x41, 0x71, 0x46, 0x21, 0x2e, 0x28, 0xce, 0x18, 0xb5, 0x19, 0x14,
		0x67, 0x42, 0xe0, 0x15, 0x14, 0x67, 0xe2, 0x48, 0x15, 0x14, 0x67, 0x8a, 0x31, 0x48, 0x06, 0x14,
		0x67, 0x32, 0x30, 0x04, 0x14, 0xe7, 0x46, 0xef, 0x2a, 0x28, 0xce, 0x24, 0x1e, 0xa0, 0x38, 0x81,
		0x0e, 0xe3, 0x40, 0x89, 0xa0, 0x38, 0x29, 0x02, 0x47, 0x50, 0x9c, 0x90, 0xf6, 0x23, 0x0f, 0x50,
		0x9c, 0x69, 0x90, 0x90, 0x38, 0x72, 0xb4, 0xf6, 0xb5, 0x76, 0x8c, 0x30, 0xca, 0xe1, 0xb1, 0x45,
		0x8e, 0xe5, 0x75, 0xee, 0xe4, 0xbd, 0x18, 0x8a, 0x60, 0xe7, 0x24, 0x2b, 0xe7, 0x0c, 0xa5, 0xee,
		0x04, 0x14, 0xa1, 0xad, 0xa5, 0xf9, 0xe5, 0xb8, 0x3f, 0x6d, 0xe5, 0xa3, 0x5f, 0xdd, 0x91, 0xb9,
		0xd7, 0x07, 0xbc, 0xa5, 0x23, 0xb9, 0xe1, 0xd4, 0x3f, 0x7b, 0xe1, 0xb3, 0xdc, 0x6d, 0x7f, 0x98,
		0x73, 0xd5, 0x6d, 0x4e, 0xf4, 0x94, 0xed, 0x89, 0x9e, 0xf2, 0xc2, 0x67, 0xb9, 0x41, 0xf1, 0x61,
		0xa8, 0x6d, 0xf9, 0x30, 0xd4, 0xb9, 0xc1, 0x84, 0x2e, 0xc8, 0xb9, 0xce, 0xc8, 0x48, 0x6f, 0xf2,
		0xc7, 0xee, 0x2a, 0xcf, 0x28, 0xdd, 0x1f, 0x29, 0xef, 0x4e, 0xba, 0x39, 0xf3, 0x38, 0x94, 0xb6,
		0xf9, 0xe5, 0xd8, 0xf7, 0xa2, 0x63, 0xab, 0xa1, 0x2d, 0xba, 0x0f, 0xd2, 0x35, 0xca, 0x93, 0x7e,
		0xe0, 0x98, 0xbf, 0x1b, 0x5c, 0x9a, 0xf3, 0x7f, 0x90, 0x17, 0xfc, 0x9f, 0x1b, 0xe9, 0x9f, 0xda,
		0xf9, 0xa5, 0x6d, 0x61, 0x8c, 0xab, 0x6e, 0x83, 0x8f, 0x5f, 0x3a, 0x94, 0xf3, 0x8c, 0x30, 0x1c,
		0x60, 0x80, 0xe5, 0x19, 0x77, 0xd4, 0x31, 0x7a, 0x0a, 0x37, 0x2f, 0xc2, 0xe1, 0x3a, 0x9f, 0x0c,
		0xc5, 0xc9, 0x74, 0x24, 0xda, 0xaf, 0x5e, 0x7b, 0xaf, 0x0f, 0xb4, 0x67, 0xa1, 0xd4, 0x0b, 0x9f,
		0xb5, 0x0f, 0xfa, 0xc3, 0xf6, 0xa5, 0xba, 0x6d, 0xef, 0xf7, 0x54, 0xd3, 0x1f, 0xa9, 0xd9, 0x93,
		0xf6, 0x69, 0xf1, 0x7a, 0xa8, 0x8f, 0x1e, 0x86, 0xba, 0x7d, 0xea, 0x74, 0xfc, 0x33, 0x2e, 0x83,
		0x61, 0x9a, 0xfc, 0x39, 0x5c, 0x1c, 0xa5, 0xb6, 0x9f, 0xf4, 0x5f, 0xfd, 0x72, 0xce, 0x44, 0xe7,
		0x64, 0xb8, 0xbf, 0x38, 0x42, 0xb3, 0x77, 0x82, 0x6b, 0xda, 0x0d, 0x7f, 0x7c, 0x82, 0xff, 0xdb,
		0xdf, 0x27, 0x83, 0xb1, 0x1f, 0x0e, 0xcf, 0xd2, 0x91, 0x76, 0x33, 0x18, 0x9d, 0x4f, 0xf0, 0x9a,
		0xdb, 0x23, 0x19, 0x51, 0x3f, 0xee, 0xa7, 0x07, 0xe1, 0xbe, 0xc1, 0xbe, 0x4f, 0x21, 0xea, 0x13,
		0xac, 0x53, 0xe5, 0x19, 0xdf, 0x40, 0x48, 0x47, 0x19, 0xeb, 0x4c, 0xe9, 0xa3, 0x41, 0x60, 0xfe,
		0xc4, 0xb7, 0x3a, 0xb2, 0xce, 0xc4, 0xef, 0x05, 0x49, 0x0b, 0xbb, 0xe5, 0x72, 0xb5, 0x56, 0x2e,
		0xe7, 0x6b, 0xa5, 0x5a, 0xbe, 0x5e, 0xa9, 0x14, 0xaa, 0x05, 0xc2, 0x1b, 0x4e, 0x59, 0x17, 0x7e,
		0x92, 0x24, 0xbb, 0x07, 0xbe, 0xea, 0xea, 0xd1, 0x60, 0xc0, 0x41, 0xd4, 0xef, 0x9e, 0x74, 0x49,
		0xef, 0x1d, 0x45, 0xd5, 0x43, 0x31, 0x41, 0x98, 0x40, 0x96, 0xc1, 0x21, 0xc2, 0x98, 0x32, 0x95,
		0x58, 0x92, 0x26, 0x8a, 0xa4, 0x87, 0xd1, 0x68, 0x49, 0x44, 0xcc, 0x17, 0x53, 0xf7, 0xc1, 0xa9,
		0xf4, 0xbd, 0x04, 0x3d, 0x6d, 0x1a, 0x3c, 0x2c, 0x2d, 0x87, 0x4a, 0xc7, 0x6d, 0xd1, 0x90, 0x84,
		0x88, 0xe3, 0x9c, 0xa5, 0xd5, 0x43, 0x29, 0x5d, 0x5b, 0x0d, 0x33, 0xc1, 0x5f, 0xdf, 0x8e, 0x6d,
		0xd5, 0xcd, 0x78, 0x41, 0x45, 0xd1, 0x5e, 0xe1, 0x1d, 0x66, 0x6f, 0x89, 0x6e, 0xd7, 0x95, 0x9e,
		0x67, 0xf7, 0xc4, 0xbd, 0x1a, 0x50, 0xd9, 0x47, 0x9f, 0x66, 0x0a, 0x4e, 0x37, 0xe5, 0x66, 0x95,
		0x62, 0x13, 0x4e, 0xa9, 0x09, 0xa7, 0xd0, 0x54, 0xbc, 0x0d, 0x51, 0x78, 0xb6, 0xfd, 0xb0, 0x8c,
		0x10, 0x06, 0xdb, 0x3e, 0xec, 0x45, 0x03, 0x69, 0x25, 0x8f, 0x6b, 0x92, 0x95, 0x20, 0x61, 0x1f,
		0x47, 0xcd, 0xb7, 0x6d, 0xb5, 0x4f, 0x23, 0xe0, 0xce, 0xb6, 0xca, 0x8d, 0x25, 0xeb, 0xc1, 0x92,
		0xf3, 0x1b, 0x09, 0xfa, 0x0c, 0x6b, 0xd2, 0xd9, 0x90, 0xb4, 0xab, 0x08, 0x1b, 0x64, 0x29, 0x34,
		0x5a, 0x84, 0xcd, 0xf2, 0x09, 0x8b, 0x41, 0x65, 0x2e, 0x1e, 0xa5, 0x39, 0x76, 0x34, 0xe7, 0xce,
		0x51, 0xeb, 0x7a, 0x26, 0x3b, 0xd7, 0x8d, 0x6c, 0x4b, 0x32, 0xd9, 0xb9, 0x69, 0xe9, 0x46, 0xb3,
		0x87, 0x8a, 0x06, 0x7d, 0x66, 0x49, 0x73, 0x27, 0x5d, 0x2d, 0x8d, 0x6d, 0x44, 0x9f, 0x8e, 0x99,
		0x87, 0x7b, 0xb6, 0x2f, 0x4a, 0x47, 0x85, 0xd2, 0x25, 0x35, 0xf1, 0x9d, 0xdc, 0xc4, 0x76, 0x8a,
		0x13, 0xd7, 0x69, 0x4f, 0x4c, 0xa7, 0x3a, 0xb5, 0x88, 0xfc, 0xc4, 0x72, 0xf2, 0xf3, 0x80, 0xc8,
		0x4f, 0x0c, 0x47, 0xb1, 0x6e, 0x71, 0xb4, 0xc8, 0x4d, 0xdc, 0xa6, 0x1c, 0x07, 0x17, 0x63, 0x61,
		0x8d, 0x90, 0x48, 0x97, 0x42, 0xf7, 0xe9, 0x4d, 0xfd, 0x25, 0xd8, 0x2b, 0x73, 0xa6, 0xe8, 0x36,
		0x52, 0x5a, 0xd7, 0x62, 0x30, 0x92, 0x74, 0x5b, 0xa7, 0xad, 0x63, 0x57, 0x74, 0x8c, 0x72, 0xf4,
		0xa1, 0xea, 0x2b, 0xca, 0x3d, 0xde, 0xd6, 0xb9, 0xec, 0x8b, 0xe9, 0x92, 0x58, 0x34, 0x5b, 0x8e,
		0x09, 0xb6, 0x1b, 0x5b, 0x67, 0xe2, 0x37, 0x7d, 0xd3, 0x28, 0x17, 0xeb, 0xe5, 0x7a, 0xb5, 0x56,
		0xac, 0x57, 0x60, 0x23, 0xdb, 0x6e, 0x23, 0xe8, 0x35, 0x5b, 0xf9, 0x68, 0xa1, 0x32, 0x4c, 0xc5,
		0x87, 0x5a, 0x6a, 0x68, 0x0f, 0xa4, 0xee, 0x07, 0xe5, 0x50, 0x62, 0x2c, 0xd2, 0x5c, 0x34, 0x50,
		0x48, 0xab, 0xc4, 0x01, 0x85, 0xf4, 0x0e, 0x65, 0x02, 0x85, 0xf4, 0x2e, 0x4d, 0x07, 0x85, 0xf4,
		0x87, 0x02, 0x82, 0x42, 0x62, 0x94, 0x45, 0x10, 0xa6, 0x90, 0x46, 0x4a, 0x9b, 0x52, 0x11, 0xe4,
		0xd1, 0x3f, 0x8a, 0x04, 0xf2, 0xe8, 0xad, 0x19, 0x32, 0xc8, 0x23, 0x24, 0xc6, 0x70, 0xfb, 0x2b,
		0x4d, 0x03, 0xe4, 0x11, 0x6c, 0x04, 0x74, 0x0d, 0x79, 0x69, 0x40, 0x1e, 0x91, 0xf1, 0xa1, 0x96,
		0x1a, 0xda, 0x43, 0x5a, 0x39, 0xff, 0x22, 0x79, 0x44, 0xab, 0xd3, 0x10, 0xe4, 0xd1, 0x3f, 0x0b,
		0x04, 0xf2, 0xe8, 0xbd, 0xd2, 0x81, 0x3c, 0xfa, 0xa0, 0x80, 0x20, 0x8f, 0xb6, 0x02, 0x0d, 0x80,
		0x3c, 0xe2, 0x16, 0x04, 0x17, 0x03, 0x61, 0xa1, 0x4e, 0x48, 0xa6, 0xe9, 0x10, 0x82, 0x3f, 0x7a,
		0xb3, 0x62, 0x3d, 0x94, 0x6d, 0xb2, 0xbb, 0x16, 0x85, 0x2a, 0xb6, 0x4b, 0x50, 0xb6, 0x86, 0x30,
		0x46, 0xba, 0x9a, 0xec, 0x2e, 0x17, 0xd6, 0xce, 0x4d, 0xde, 0xae, 0xb7, 0x9e, 0x6f, 0x0a, 0x76,
		0xbd, 0x35, 0x79, 0x5a, 0x08, 0xfe, 0x3c, 0x15, 0xc7, 0xcf, 0xc5, 0x9b, 0xbc, 0x5d, 0x9e, 0x1e,
		0x2d, 0x56, 0x6e, 0xf2, 0x76, 0xa5, 0x95, 0xdd, 0xf9, 0xf1, 0xe3, 0xcb, 0x7b, 0xaf, 0xc9, 0x3e,
		0x95, 0xc6, 0xb9, 0xf0, 0xa2, 0xe2, 0xf4, 0xdd, 0xd2, 0x4d, 0xde, 0x2e, 0xb6, 0x08, 0xae, 0x91,
		0xdf, 0xa2, 0xa8, 0x47, 0x17, 0xcd, 0x93, 0xff, 0x90, 0x57, 0xa6, 0xbf, 0x77, 0x12, 0x57, 0xa7,
		0xec, 0x5f, 0x04, 0x15, 0x0a, 0xcb, 0xd5, 0x71, 0x8d, 0x7b, 0x55, 0xc4, 0xbd, 0x2d, 0x8d, 0x7b,
		0x81, 0x03, 0x11, 0x76, 0x6f, 0xdf, 0x3e, 0x6e, 0x3d, 0x15, 0x3e, 0x97, 0xc7, 0x7b, 0xd9, 0xa7,
		0xda, 0xf8, 0xf5, 0xc1, 0xe7, 0x55, 0xa7, 0x15, 0x3e, 0xd7, 0xc6, 0x7b, 0x6b, 0xde, 0xa9, 0x8e,
		0xf7, 0xde, 0xf8, 0x19, 0x95, 0xf1, 0xce, 0xd2, 0xa9, 0xfe, 0xf1, 0xe2, 0xba, 0x0b, 0xca, 0x6b,
		0x2e, 0x28, 0xad, 0xbb, 0xa0, 0xb4, 0xe6, 0x82, 0xb5, 0x22, 0x15, 0xd7, 0x5c, 0x50, 0x19, 0x3f,
		0x2f, 0x9d, 0xbf, 0xb3, 0xfa, 0xd4, 0xea, 0x38, 0xfb, 0xbc, 0xee, 0xbd, 0xda, 0xf8, 0x79, 0x2f,
		0x9b, 0xcd, 0xed, 0x14, 0x7c, 0xaf, 0xbe, 0x3b, 0x71, 0xf3, 0x85, 0xd6, 0x92, 0xf7, 0x0f, 0xfe,
		0x07, 0x2e, 0xd8, 0x3e, 0x5c, 0x00, 0x6b, 0x23, 0x6b, 0x6d, 0x40, 0x4d, 0x2c, 0x48, 0xb0, 0x0c,
		0x4a, 0x62, 0x94, 0x70, 0xac, 0x75, 0x2f, 0x3a, 0xb3, 0xf5, 0x3f, 0xe9, 0x15, 0xc5, 0x16, 0x85,
		0x43, 0x59, 0x6c, 0x95, 0x38, 0x28, 0x8b, 0xbd, 0x43, 0x9d, 0x50, 0x16, 0x7b, 0x97, 0xa6, 0xa3,
		0x2c, 0xf6, 0x87, 0x02, 0xa2, 0x2c, 0xc6, 0x88, 0xcd, 0x21, 0x5c, 0x16, 0xa3, 0x17, 0x06, 0xa9,
		0xb2, 0x37, 0x64, 0x59, 0x1b, 0x6b, 0x31, 0xbf, 0x79, 0x9d, 0x36, 0x15, 0xc7, 0xd9, 0xa7, 0xca,
		0x98, 0x8e, 0x5f, 0x68, 0x51, 0x1a, 0x50, 0xca, 0xf4, 0x80, 0xf5, 0xf7, 0xbf, 0x0f, 0x2b, 0xa1,
		0xbc, 0x14, 0x79, 0x17, 0xad, 0xbc, 0x8b, 0xea, 0x44, 0xd6, 0x05, 0xd9, 0x90, 0x75, 0x21, 0xeb,
		0x42, 0xd6, 0x85, 0xac, 0x0b, 0x59, 0x17, 0xb2, 0xae, 0x94, 0x65, 0x5d, 0x98, 0xc9, 0xfa, 0x06,
		0x91, 0x30, 0x93, 0xf5, 0x8d, 0x37, 0x0a, 0x33, 0x59, 0xff, 0x40, 0x3e, 0xcc, 0xd2, 0xdb, 0x32,
		0xb7, 0xff, 0xd2, 0x34, 0x30, 0x93, 0x15, 0x36, 0x42, 0xc9, 0x46, 0x50, 0xb6, 0x5f, 0xf9, 0x00,
		0x7d, 0x44, 0x41, 0x02, 0x6c, 0x90, 0xf5, 0x52, 0x9e, 0x2d, 0xdd, 0x20, 0x8b, 0xc2, 0x46, 0x3e,
		0x99, 0x2d, 0xda, 0x20, 0xab, 0x19, 0xdc, 0xcf, 0xb4, 0x6e, 0x90, 0xf5, 0x29, 0x45, 0x9e, 0x6a,
		0xb6, 0x19, 0xf2, 0xe2, 0x62, 0xe6, 0x99, 0x85, 0x12, 0x6a, 0x66, 0x4e, 0x6f, 0x67, 0xc2, 0x09,
		0x87, 0x99, 0xa4, 0x17, 0x6f, 0xa4, 0xb1, 0xdd, 0x31, 0x9d, 0xed, 0x8d, 0x49, 0x6f, 0x67, 0x4c,
		0x68, 0xfb, 0x62, 0x42, 0xdb, 0x15, 0x27, 0x65, 0xef, 0xf2, 0xb7, 0x71, 0x85, 0x3d, 0xf2, 0xe3,
		0xcc, 0xed, 0x20, 0x59, 0x32, 0xd1, 0x72, 0x65, 0x4f, 0xba, 0x52, 0x77, 0x92, 0xe7, 0xc4, 0x08,
		0xed, 0x35, 0x77, 0x79, 0xfc, 0xb5, 0x56, 0x2e, 0x15, 0xf7, 0x32, 0x07, 0xdf, 0x1a, 0x99, 0xb3,
		0xc6, 0x69, 0xd3, 0x3e, 0x10, 0x9e, 0xec, 0x66, 0x8e, 0xa6, 0x1e, 0x3a, 0x73, 0xdd, 0x38, 0xc7,
		0x2e, 0x74, 0x2b, 0x03, 0xd9, 0xac, 0x16, 0x34, 0xd7, 0x2b, 0x6c, 0x44, 0xf7, 0x2f, 0xf9, 0xc9,
		0x42, 0xf9, 0xe7, 0x4d, 0x8a, 0x97, 0xf6, 0x7c, 0xf2, 0x53, 0xba, 0xf8, 0x84, 0xa4, 0xa2, 0x14,
		0x91, 0xbc, 0x79, 0x4b, 0xf3, 0x65, 0x2b, 0xd1, 0x2d, 0x80, 0xb7, 0x21, 0x43, 0x4e, 0xc6, 0x0f,
		0xc6, 0xef, 0x7d, 0xe2, 0xfd, 0xc6, 0x98, 0xbd, 0x4d, 0xd2, 0x5e, 0x66, 0x5b, 0xbc, 0x4b, 0x02,
		0xee, 0x84, 0xaf, 0x1b, 0x89, 0xd7, 0x73, 0xc4, 0x67, 0xbf, 0xf1, 0x7c, 0x53, 0x4c, 0x1e, 0x62,
		0xc6, 0x8a, 0xad, 0x30, 0x85, 0x98, 0x94, 0x3d, 0x19, 0x86, 0x2b, 0x39, 0x46, 0x8b, 0x14, 0x83,
		0x95, 0x20, 0x63, 0x95, 0x20, 0x43, 0x15, 0x97, 0x6d, 0x25, 0x14, 0x75, 0xf9, 0x44, 0xdb, 0x18,
		0xe3, 0x29, 0xf5, 0x38, 0x1a, 0x4f, 0xb4, 0x8c, 0x3e, 0x76, 0x45, 0xfb, 0x0d, 0x11, 0x5b, 0x6e,
		0xdc, 0x16, 0x4b, 0xd3, 0x52, 0x63, 0xb0, 0x4a, 0x52, 0xd6, 0x18, 0xad, 0xe9, 0x45, 0x67, 0x10,
		0x11, 0x1a, 0x83, 0x35, 0xe9, 0x33, 0x88, 0xda, 0x06, 0xc2, 0x52, 0x40, 0x1c, 0x6d, 0x0d, 0xe1,
		0xc4, 0xd4, 0x88, 0xbf, 0x26, 0x9c, 0x05, 0x54, 0x8c, 0xf8, 0x8b, 0x62, 0x9c, 0xdd, 0x93, 0xcc,
		0xac, 0x9d, 0xb8, 0x2b, 0x2f, 0x89, 0xcd, 0xb2, 0x49, 0xac, 0x6c, 0x92, 0xd8, 0xac, 0x18, 0xc0,
		0x04, 0xc6, 0x30, 0x21, 0xae, 0x26, 0x34, 0x22, 0x28, 0x21, 0x86, 0x1e, 0xb1, 0x08, 0x41, 0xc2,
		0x27, 0x46, 0x06, 0x16, 0x97, 0x61, 0x11, 0x33, 0x28, 0x2b, 0x52, 0x20, 0x47, 0xc0, 0x84, 0xa2,
		0x31, 0x9e, 0xcd, 0xab, 0x76, 0x04, 0x6a, 0x6d, 0x69, 0xa9, 0xfa, 0x77, 0xb7, 0x8e, 0x1b, 0xdd,
		0x3a, 0x6a, 0x21, 0x38, 0x9b, 0x7f, 0x55, 0x44, 0xe6, 0x19, 0x2d, 0x82, 0x8e, 0x1c, 0x39, 0xc7,
		0x81, 0x98, 0xe3, 0x45, 0xca, 0x71, 0x21, 0xe4, 0xd8, 0x91, 0x71, 0xec, 0x88, 0x38, 0x76, 0x24,
		0xcc, 0x2b, 0x30, 0x1f, 0xaa, 0x68, 0xeb, 0x33, 0xa1, 0xef, 0x8a, 0x8f, 0x73, 0x08, 0xbf, 0x71,
		0xcb, 0x68, 0x87, 0x3c, 0x68, 0x07, 0xd0, 0x0e, 0xa0, 0x1d, 0xb6, 0x90, 0x76, 0x88, 0xda, 0x09,
		0x87, 0x5f, 0x24, 0xba, 0xff, 0x2f, 0x18, 0x13, 0xa5, 0xed, 0xa1, 0xe3, 0x99, 0xf8, 0x2c, 0x61,
		0x66, 0xef, 0xaf, 0x05, 0x88, 0xab, 0x19, 0x22, 0x16, 0x57, 0x1d, 0xbb, 0xcb, 0x4e, 0xc2, 0x75,
		0x27, 0xeb, 0xc2, 0x93, 0x72, 0xe5, 0x89, 0xbb, 0xf4, 0xc4, 0x5d, 0x7b, 0xe2, 0x2e, 0x3e, 0x1e,
		0x57, 0x1f, 0x93, 0xcb, 0x8f, 0x9b, 0x18, 0xa3, 0x4a, 0x94, 0x85, 0xcc, 0x46, 0xf8, 0x2c, 0x97,
		0x4c, 0x88, 0xa0, 0xc0, 0xa9, 0x9d, 0xcf, 0x6e, 0x46, 0xf8, 0xac, 0xbd, 0xdf, 0xfd, 0x7f, 0x97,
		0xea, 0xf6, 0x44, 0x37, 0xfc, 0x3b, 0xb1, 0x2d, 0x9d, 0x24, 0x9f, 0xe3, 0x05, 0x3a, 0xae, 0x4c,
		0x16, 0xe7, 0xb8, 0x12, 0x30, 0x07, 0x30, 0x07, 0x30, 0x07, 0x30, 0x07, 0x30, 0x07, 0x30, 0x67,
		0x15, 0xcc, 0x71, 0x25, 0x50, 0x4e, 0x80, 0x72, 0x5c, 0x09, 0x90, 0xf3, 0x7e, 0x90, 0xe3, 0x8c,
		0x4c, 0xc2, 0x74, 0x4e, 0x28, 0x01, 0x80, 0x0e, 0x80, 0x0e, 0x80, 0x0e, 0x80, 0x0e, 0x80, 0x0e,
		0x80, 0xce, 0x2b, 0xa0, 0x13, 0x73, 0x8c, 0x20, 0x0d, 0x75, 0x2e, 0x46, 0x06, 0x8c, 0xce, 0x1f,
		0x80, 0x9d, 0x24, 0x29, 0x9d, 0x99, 0x00, 0x80, 0x3a, 0x80, 0x3a, 0x80, 0x3a, 0x80, 0x3a, 0x80,
		0x3a, 0x80, 0x3a, 0xab, 0xa0, 0x0e, 0x48, 0x9d, 0x19, 0xd2, 0x01, 0xab, 0xf3, 0x9e, 0x91, 0x9c,
		0x69, 0x53, 0xec, 0xdb, 0x74, 0x2f, 0x35, 0x50, 0xc6, 0xbc, 0x09, 0x69, 0xcc, 0xbb, 0xbe, 0x01,
		0xea, 0x00, 0xea, 0x00, 0xea, 0x00, 0xea, 0xbc, 0xe5, 0x6e, 0xc6, 0xbe, 0x6b, 0x59, 0x68, 0xb7,
		0x03, 0x29, 0x7a, 0xae, 0xec, 0xc5, 0x69, 0xb4, 0xb3, 0x8c, 0x33, 0xc6, 0x7d, 0xc7, 0xac, 0xc6,
		0x14, 0xcd, 0x7d, 0xf9, 0x32, 0x99, 0x84, 0x9a, 0x5b, 0x8a, 0x41, 0x40, 0x10, 0xef, 0xc0, 0x82,
		0x71, 0xac, 0xf1, 0xb0, 0xa4, 0xaa, 0x71, 0x6e, 0x61, 0x01, 0x5a, 0x04, 0x58, 0x01, 0x58, 0x01,
		0x58, 0x81, 0x20, 0x56, 0x88, 0x6b, 0x32, 0x47, 0xf2, 0x09, 0x23, 0x95, 0xc4, 0x31, 0xa1, 0x04,
		0x32, 0xb1, 0xe0, 0x90, 0x64, 0x90, 0xa0, 0x11, 0x2c, 0x92, 0x0e, 0x1a, 0x64, 0x82, 0x07, 0x99,
		0x20, 0x42, 0x26, 0x98, 0xc4, 0x1b, 0x54, 0x62, 0x0e, 0x2e, 0xc9, 0x25, 0xa4, 0x4b, 0x76, 0x1f,
		0x2c, 0xa1, 0x9d, 0x84, 0x97, 0x7f, 0x01, 0xff, 0xeb, 0x09, 0x7c, 0xf7, 0xf4, 0xde, 0x27, 0xb3,
		0xdd, 0x4f, 0x82, 0x3b, 0x49, 0xcc, 0x47, 0xfe, 0xa1, 0x9c, 0xe0, 0xd8, 0x2f, 0xe9, 0xc0, 0x6e,
		0x82, 0x32, 0x34, 0x84, 0x31, 0xd2, 0xd5, 0x89, 0xef, 0xfe, 0x64, 0xed, 0xdc, 0xe4, 0xed, 0x7a,
		0xeb, 0xf9, 0xa6, 0x60, 0xd7, 0x5b, 0x93, 0xa7, 0x85, 0xe0, 0xcf, 0x53, 0x71, 0xfc, 0x5c, 0xbc,
		0xc9, 0xdb, 0xe5, 0xe9, 0xd1, 0x62, 0xe5, 0x26, 0x6f, 0x57, 0x5a, 0xd9, 0x9d, 0x1f, 0x3f, 0xbe,
		0xbc, 0xf7, 0x9a, 0xec, 0x53, 0x69, 0x9c, 0xdc, 0xf6, 0x39, 0xad, 0x24, 0x87, 0xf9, 0xa2, 0x79,
		0xf2, 0x1f, 0x32, 0x63, 0xfd, 0xf7, 0x4e, 0x5c, 0xa3, 0x9d, 0xfd, 0xcb, 0xc2, 0x76, 0x41, 0xe9,
		0x71, 0xeb, 0x55, 0xb8, 0x75, 0x6a, 0x6e, 0x3d, 0xb0, 0x5a, 0x61, 0xf7, 0xf6, 0xed, 0xe3, 0xd6,
		0x53, 0xe1, 0x73, 0x79, 0xbc, 0x97, 0x7d, 0xaa, 0x8d, 0x5f, 0x1f, 0x7c, 0x5e, 0x75, 0x5a, 0xe1,
		0x73, 0x6d, 0xbc, 0xb7, 0xe6, 0x9d, 0xea, 0x78, 0xef, 0x8d, 0x9f, 0x51, 0x19, 0xef, 0x2c, 0x9d,
		0xea, 0x1f, 0x2f, 0xae, 0xbb, 0xa0, 0xbc, 0xe6, 0x82, 0xd2, 0xba, 0x0b, 0x4a, 0x6b, 0x2e, 0x58,
		0x2b, 0x52, 0x71, 0xcd, 0x05, 0x95, 0xf1, 0xf3, 0xd2, 0xf9, 0x3b, 0xab, 0x4f, 0xad, 0x8e, 0xb3,
		0xcf, 0xeb, 0xde, 0xab, 0x8d, 0x9f, 0xf7, 0xb2, 0x59, 0x04, 0x3a, 0x32, 0x81, 0x0e, 0xea, 0x1f,
		0xbf, 0xfa, 0xa7, 0x2f, 0xf0, 0x7f, 0xda, 0xee, 0xdf, 0x89, 0x7d, 0x94, 0x3e, 0xc8, 0x67, 0xa1,
		0xcb, 0xf1, 0x55, 0x97, 0x63, 0x9c, 0x75, 0xde, 0x0c, 0xcd, 0xde, 0xc6, 0x18, 0x56, 0x8e, 0x8e,
		0xcf, 0x9a, 0x78, 0xaf, 0x9d, 0x36, 0xdd, 0xe7, 0x2c, 0xe6, 0xd2, 0x53, 0xbc, 0x9b, 0x9b, 0xc5,
		0xbf, 0xa9, 0x19, 0x89, 0xcd, 0xcc, 0x12, 0xd8, 0xc4, 0x2c, 0x81, 0xcd, 0xcb, 0xb0, 0xa7, 0x41,
		0x4c, 0x81, 0x2b, 0x05, 0x1b, 0x1b, 0x2c, 0x87, 0x2a, 0x6c, 0x6f, 0x10, 0x83, 0xad, 0xa5, 0x6d,
		0x7b, 0x83, 0xa8, 0xd7, 0xa3, 0x27, 0x65, 0x4a, 0x6c, 0xf6, 0x38, 0xf8, 0x44, 0xd8, 0x52, 0x2c,
		0xf9, 0xdb, 0xb8, 0xc2, 0x1e, 0xf9, 0x63, 0x72, 0x3b, 0x88, 0xa6, 0x74, 0x6d, 0xfd, 0xba, 0x93,
		0xd1, 0x91, 0x56, 0x31, 0xec, 0x2c, 0xf0, 0xe5, 0x4b, 0x68, 0x6d, 0xb6, 0xaf, 0xf7, 0x99, 0xff,
		0x5f, 0xe6, 0xff, 0x38, 0x1d, 0xfb, 0xb6, 0x3f, 0x34, 0x7b, 0xa7, 0xc5, 0xeb, 0xc6, 0x79, 0xfb,
		0xe8, 0xba, 0x71, 0xfe, 0x7f, 0xb6, 0x6c, 0xdb, 0x81, 0x60, 0xd4, 0xb6, 0x79, 0xd3, 0x81, 0xb7,
		0x0e, 0x2b, 0xcb, 0xfd, 0x04, 0x0f, 0xa5, 0xd7, 0x71, 0xd5, 0x30, 0x16, 0x78, 0x19, 0x1a, 0xca,
		0x89, 0xee, 0x0c, 0x46, 0x5d, 0x99, 0x31, 0x77, 0xca, 0xcb, 0x74, 0x1c, 0x6d, 0x84, 0xd2, 0xd2,
		0xcd, 0xf4, 0x1c, 0x37, 0x13, 0x44, 0xa9, 0x8c, 0x1f, 0xa5, 0x32, 0x93, 0x7d, 0x69, 0xcd, 0xe3,
		0x30, 0xf2, 0x9d, 0x2f, 0xe3, 0x6c, 0x43, 0x5b, 0x34, 0x9d, 0xee, 0xc2, 0xcd, 0x8f, 0x01, 0xdc,
		0x26, 0xd1, 0x63, 0xf6, 0xc2, 0x92, 0xde, 0x3f, 0xee, 0x40, 0xbf, 0x91, 0x7e, 0x6a, 0x8b, 0x34,
		0xe6, 0x88, 0x18, 0x95, 0x13, 0x41, 0xe3, 0x11, 0x58, 0x7e, 0xc2, 0xd8, 0x7b, 0xb3, 0x56, 0xbb,
		0x39, 0xad, 0xdf, 0xa0, 0x7e, 0x46, 0x34, 0x47, 0x2b, 0xd2, 0xb9, 0x58, 0x11, 0xcd, 0xb9, 0x8a,
		0x6c, 0x77, 0xb0, 0x28, 0xdb, 0xe3, 0xe3, 0x69, 0x7f, 0x8f, 0x1a, 0x57, 0xc4, 0xd6, 0xbe, 0x1e,
		0x1b, 0x74, 0x88, 0xad, 0xfd, 0x9c, 0x76, 0xb6, 0x1d, 0xd5, 0x1c, 0x24, 0xeb, 0x45, 0x22, 0x13,
		0xfd, 0xc6, 0x87, 0x2f, 0xbf, 0x2e, 0xda, 0xcd, 0x0f, 0xf3, 0x51, 0x6f, 0x7e, 0x98, 0xc7, 0xe6,
		0x87, 0x74, 0x59, 0x08, 0x6c, 0x7e, 0x48, 0x39, 0x71, 0x89, 0xc8, 0x72, 0x22, 0x9f, 0x45, 0x33,
		0x6f, 0xae, 0xed, 0x4a, 0x6d, 0x94, 0x79, 0x8c, 0x76, 0x29, 0x87, 0x10, 0xa1, 0x45, 0x58, 0x9c,
		0xb5, 0x4e, 0xa6, 0x3f, 0xe5, 0x40, 0x78, 0x32, 0x3e, 0xca, 0x67, 0xff, 0xf8, 0xa4, 0xdd, 0xf4,
		0xff, 0xbb, 0xfa, 0x6f, 0xe3, 0x28, 0x6a, 0x33, 0xbd, 0x16, 0x83, 0x91, 0xf4, 0x62, 0xe9, 0x7f,
		0x8c, 0x79, 0x8d, 0x86, 0x93, 0xc6, 0x75, 0xb9, 0x7d, 0x7c, 0x7a, 0xf1, 0xbf, 0xcd, 0xc6, 0xd1,
		0x57, 0x6b, 0x1b, 0x56, 0xbb, 0x48, 0xe2, 0x06, 0x9e, 0xee, 0x1f, 0x1c, 0x9d, 0x1e, 0x1d, 0xb6,
		0xbf, 0x9f, 0x9f, 0x7c, 0xdd, 0x6f, 0x5e, 0xe1, 0x3e, 0x7e, 0xf0, 0x3e, 0xe2, 0xfe, 0xfd, 0xc9,
		0xfd, 0xab, 0x42, 0x0f, 0x37, 0x74, 0x1f, 0x71, 0xff, 0x3e, 0x7c, 0xff, 0xe6, 0x05, 0x2c, 0xdc,
		0xbd, 0x8f, 0xde, 0xbd, 0xeb, 0xc6, 0x69, 0x13, 0x77, 0xef, 0x03, 0x77, 0xaf, 0xe4, 0xdf, 0xbd,
		0x20, 0x92, 0x9c, 0x7d, 0x3f, 0xbd, 0x82, 0x0d, 0xff, 0xf9, 0x7d, 0x84, 0x27, 0xfc, 0xf3, 0xbb,
		0x58, 0x85, 0x36, 0x6e, 0xe8, 0x3e, 0x42, 0x1b, 0x3f, 0x7e, 0x17, 0x4f, 0xce, 0xff, 0xa7, 0x79,
		0xb5, 0x7f, 0x75, 0x84, 0x9b, 0xf7, 0x07, 0x37, 0xaf, 0xdd, 0x6c, 0x1c, 0xe3, 0x06, 0xfe, 0xc9,
		0x0d, 0x04, 0x30, 0xfc, 0xd0, 0x0d, 0x6c, 0x5e, 0x5e, 0x1d, 0xb5, 0x1b, 0x17, 0xa7, 0x27, 0x5f,
		0xff, 0x1b, 0x04, 0x66, 0xdc, 0xc3, 0x3f, 0xbe, 0x87, 0x55, 0xdc, 0xc3, 0xf7, 0xdf, 0xc3, 0xeb,
		0xc6, 0x79, 0xbc, 0x84, 0x61, 0xa4, 0xdf, 0xd0, 0x4a, 0x7d, 0xc3, 0xd6, 0x18, 0x0d, 0x5b, 0x09,
		0x35, 0x6c, 0x45, 0x35, 0x6b, 0x36, 0x99, 0x5e, 0xad, 0x08, 0x26, 0xc0, 0x6e, 0xb0, 0x4f, 0xeb,
		0x13, 0x21, 0xe5, 0x9e, 0x4d, 0x50, 0x8d, 0xa2, 0x95, 0x21, 0x9a, 0x59, 0xa8, 0xd1, 0xcd, 0x36,
		0x8d, 0x75, 0x56, 0x69, 0x84, 0xb3, 0x47, 0x23, 0x9c, 0x25, 0xba, 0x29, 0xad, 0x8b, 0xc8, 0x95,
		0x26, 0xe9, 0x42, 0xad, 0x8d, 0xb6, 0x5f, 0xc6, 0xef, 0x34, 0x37, 0xe3, 0x2e, 0xff, 0xdc, 0xb9,
		0xfd, 0xd9, 0x27, 0xfc, 0xa1, 0x82, 0x6e, 0x5a, 0x31, 0x13, 0x50, 0xc8, 0x0d, 0xe8, 0x61, 0xac,
		0xfa, 0xf7, 0x67, 0x7a, 0xf7, 0x71, 0x6d, 0xf9, 0x03, 0x4d, 0xb1, 0x84, 0x31, 0xae, 0xed, 0x49,
		0xf3, 0xe7, 0x8b, 0x99, 0xcf, 0x7b, 0x09, 0xc3, 0x8f, 0xfc, 0x43, 0x0d, 0xde, 0x4c, 0x1b, 0xf4,
		0xc6, 0xfa, 0x02, 0x37, 0xd9, 0xff, 0x17, 0x4d, 0x9f, 0xdf, 0xa6, 0xfb, 0xf9, 0x22, 0xeb, 0xdb,
		0x8b, 0xac, 0x3f, 0x2f, 0xb2, 0x3e, 0xbc, 0x64, 0x7d, 0xf9, 0xa6, 0xda, 0x8c, 0x43, 0xdb, 0xdc,
		0x9c, 0x8a, 0xbc, 0xb6, 0xfa, 0x4d, 0x69, 0xc8, 0x66, 0xe7, 0x40, 0x6c, 0xbc, 0x39, 0x38, 0x8a,
		0x66, 0xe0, 0x68, 0x9b, 0x7f, 0xa3, 0x6a, 0xf6, 0x8d, 0xbc, 0xb9, 0x37, 0xf2, 0x66, 0xde, 0xc8,
		0x9b, 0x77, 0x69, 0xe5, 0xc9, 0x9b, 0x9e, 0xb3, 0x60, 0x89, 0x7e, 0xdf, 0x95, 0x7d, 0x61, 0x1c,
		0x37, 0xba, 0x79, 0x56, 0x0b, 0xdf, 0xc1, 0x6c, 0xb2, 0x55, 0x1e, 0x93, 0xad, 0xe2, 0x71, 0x44,
		0xb1, 0x39, 0xa4, 0xd8, 0x1c, 0x53, 0x6c, 0x0e, 0x6a, 0xf3, 0xd4, 0x60, 0x86, 0xd3, 0x64, 0xab,
		0x68, 0xf7, 0xf1, 0x8b, 0x65, 0xdf, 0xbe, 0x88, 0xf7, 0xe9, 0x8b, 0x6c, 0xee, 0x68, 0x1c, 0x6e,
		0x2d, 0x5e, 0xf7, 0x16, 0x97, 0x9b, 0x8b, 0xdd, 0xdd, 0xc5, 0xee, 0xf6, 0x62, 0x77, 0x7f, 0xd1,
		0xb8, 0xc1, 0x88, 0xdc, 0x61, 0xe4, 0x6e, 0x71, 0x8e, 0xef, 0x62, 0xda, 0xee, 0x6e, 0x0e, 0xf6,
		0xe2, 0x59, 0x5a, 0x34, 0x9e, 0x5d, 0xec, 0x62, 0xdb, 0xb5, 0x2e, 0xce, 0x5d, 0xea, 0x92, 0xd9,
		0x95, 0x2e, 0xee, 0x5d, 0xe8, 0x12, 0xdb, 0x75, 0x2e, 0xb1, 0x5d, 0xe6, 0x12, 0xdb, 0x55, 0x8e,
		0xf7, 0xda, 0xc8, 0xb1, 0xed, 0x12, 0x97, 0xd4, 0xde, 0x60, 0x71, 0x6e, 0x16, 0x13, 0xfb, 0xa6,
		0x30, 0x5b, 0xb4, 0xa7, 0x57, 0x2b, 0x8e, 0xe1, 0x49, 0x62, 0xeb, 0x92, 0x2d, 0xdb, 0x8b, 0xab,
		0xc5, 0x75, 0xbd, 0xb4, 0x08, 0xf3, 0x25, 0x11, 0x27, 0xc2, 0x04, 0xb8, 0x04, 0xb8, 0x04, 0xb8,
		0x04, 0xb8, 0x04, 0xb8, 0x5c, 0xe9, 0x1d, 0x6d, 0x3d, 0xba, 0xbf, 0x95, 0x6e, 0x8c, 0xc8, 0xb2,
		0x16, 0xc3, 0x57, 0x5d, 0x0a, 0xdd, 0x8f, 0x6f, 0x47, 0xe1, 0x18, 0xf7, 0x30, 0x3a, 0x53, 0x3a,
		0xf6, 0x4d, 0xaa, 0x27, 0x8b, 0xb7, 0x24, 0xb0, 0x19, 0xff, 0xb1, 0x2b, 0x3a, 0x46, 0x39, 0xfa,
		0x50, 0xf5, 0x55, 0x5c, 0xdb, 0xb4, 0xbc, 0x34, 0x13, 0xd9, 0x17, 0x46, 0x3d, 0xc8, 0x58, 0x76,
		0x2d, 0x89, 0xd1, 0xd3, 0xbc, 0x54, 0x29, 0xf1, 0x3b, 0x39, 0x95, 0x2a, 0x17, 0xeb, 0xe5, 0x7a,
		0xb5, 0x56, 0xac, 0x57, 0xa0, 0x5b, 0x71, 0xe9, 0xd6, 0x96, 0x6c, 0xb2, 0x85, 0xcc, 0x6a, 0x55,
		0x66, 0x55, 0x8e, 0x33, 0xb5, 0x2a, 0x23, 0xb7, 0x42, 0x6e, 0x85, 0xdc, 0x0a, 0xb9, 0x15, 0x72,
		0x2b, 0xe4, 0x56, 0xc8, 0xad, 0x90, 0x5b, 0x21, 0xb7, 0x42, 0x6e, 0x85, 0xdc, 0x0a, 0xb9, 0x55,
		0xb2, 0xb1, 0x3e, 0x86, 0x9d, 0xf1, 0x96, 0xbe, 0xd3, 0x95, 0x3d, 0xe9, 0x4a, 0xdd, 0xd9, 0xca,
		0xc8, 0x38, 0x83, 0x34, 0x97, 0xc7, 0x5f, 0x33, 0xd5, 0x5a, 0xbd, 0x94, 0xb1, 0x33, 0x07, 0xdf,
		0x1a, 0x99, 0xe6, 0x68, 0x38, 0x74, 0x5c, 0x13, 0xec, 0x16, 0x75, 0xec, 0x8c, 0x5c, 0xdb, 0xe9,
		0x18, 0x69, 0x32, 0xfb, 0xcd, 0xcc, 0x79, 0x00, 0x7c, 0x32, 0xcd, 0xa1, 0xe8, 0xc4, 0xba, 0xaf,
		0x79, 0xcc, 0xd9, 0xc7, 0xaa, 0x2c, 0x64, 0xae, 0x08, 0x31, 0x3b, 0xbd, 0xa4, 0x12, 0x92, 0x95,
		0x89, 0xc9, 0xc7, 0x34, 0x05, 0x7e, 0x9a, 0x96, 0x9f, 0x46, 0xdf, 0x6d, 0x66, 0x3b, 0xf7, 0x22,
		0x9e, 0x4d, 0xdc, 0x0e, 0x9f, 0xe5, 0xe6, 0xd3, 0xae, 0x72, 0x51, 0xce, 0x5e, 0xc8, 0xc4, 0x36,
		0x55, 0xdf, 0x18, 0xb7, 0x29, 0x8d, 0x37, 0x7b, 0xd2, 0xde, 0x0f, 0x7f, 0x60, 0x14, 0x4b, 0xed,
		0x44, 0xa7, 0xd8, 0x58, 0x5f, 0x2a, 0x79, 0x93, 0x60, 0xbb, 0xc8, 0xd4, 0x7a, 0x23, 0x48, 0xc3,
		0x8e, 0x80, 0xc2, 0xb3, 0xa7, 0x9a, 0x13, 0xd5, 0x5c, 0xd5, 0xe9, 0x17, 0x60, 0xa2, 0x2a, 0x26,
		0xaa, 0xbe, 0x35, 0x3f, 0xc0, 0x44, 0xd5, 0x2d, 0x0a, 0x7f, 0xd1, 0xed, 0x0a, 0xe8, 0xd9, 0x9e,
		0xec, 0x4f, 0x6f, 0x70, 0xd4, 0x5b, 0x02, 0xce, 0xbf, 0x8b, 0xf9, 0x94, 0x55, 0xec, 0x07, 0x48,
		0x8c, 0x28, 0xc1, 0x94, 0xd5, 0x94, 0xa7, 0xce, 0x91, 0x4f, 0x59, 0x55, 0xba, 0x2b, 0x7f, 0xc7,
		0xd7, 0xf3, 0x32, 0xf9, 0x3a, 0x74, 0xbd, 0x50, 0x73, 0x9f, 0xc9, 0xb8, 0xd1, 0xb8, 0xdd, 0x69,
		0x62, 0x6e, 0x35, 0x31, 0xf7, 0x9a, 0x98, 0x9b, 0x8d, 0x9e, 0x03, 0xcd, 0x6c, 0x65, 0xd7, 0xcb,
		0x40, 0x8a, 0x5e, 0xb4, 0x5b, 0xb2, 0x2e, 0xa1, 0xca, 0x5a, 0x3c, 0x33, 0x55, 0x03, 0x06, 0xea,
		0xcb, 0x97, 0x09, 0x3d, 0x9a, 0x9b, 0x04, 0x02, 0xb4, 0xa0, 0xae, 0xe0, 0xb5, 0xa2, 0x5c, 0x62,
		0x67, 0x49, 0xdf, 0xa2, 0x26, 0xab, 0x63, 0xc8, 0x5f, 0x96, 0x03, 0x72, 0x11, 0x01, 0x19, 0x01,
		0x19, 0x01, 0x79, 0x0b, 0x03, 0x72, 0xd4, 0xf9, 0x50, 0xcc, 0x79, 0x51, 0x22, 0xf9, 0x51, 0xcc,
		0x79, 0x52, 0xec, 0xf9, 0x52, 0x12, 0x6e, 0x3a, 0x59, 0x77, 0x9d, 0x94, 0xdb, 0x4e, 0xdc, 0x7d,
		0x27, 0xee, 0xc6, 0x13, 0x77, 0xe7, 0xf1, 0xb8, 0xf5, 0x98, 0xdc, 0x7b, 0xfc, 0x79, 0xd7, 0x92,
		0xdd, 0x8e, 0x94, 0x36, 0xa5, 0x62, 0x9c, 0x36, 0x1b, 0xdf, 0xd4, 0x83, 0xf0, 0x2b, 0xe3, 0x9d,
		0x82, 0x30, 0x7b, 0xc4, 0xeb, 0x93, 0x32, 0x49, 0x4d, 0x49, 0x08, 0xbf, 0x3c, 0xa1, 0xa9, 0x09,
		0xe1, 0xf7, 0x27, 0xdd, 0x46, 0x3e, 0xb7, 0xad, 0xa4, 0xda, 0xc9, 0x63, 0x76, 0x5b, 0x2f, 0x55,
		0x2f, 0x81, 0xa9, 0x0b, 0x4b, 0xaa, 0x97, 0xd4, 0x14, 0x06, 0xe8, 0x60, 0x42, 0x01, 0x3a, 0xfe,
		0x6f, 0x6b, 0x6d, 0x49, 0x2b, 0x70, 0x0c, 0x3e, 0xc2, 0xba, 0x97, 0xc1, 0x7c, 0xc6, 0xd8, 0xb3,
		0xca, 0xe9, 0xf7, 0x22, 0xad, 0x44, 0x5a, 0x89, 0xb4, 0x12, 0x69, 0x25, 0xd2, 0xca, 0xd8, 0xed,
		0x36, 0xce, 0xc9, 0xec, 0xc8, 0x2c, 0x91, 0x59, 0x02, 0xd5, 0x23, 0xb3, 0x44, 0x66, 0x89, 0xcc,
		0x12, 0x99, 0x25, 0x15, 0xec, 0x11, 0xc9, 0xc6, 0xe8, 0x6f, 0x09, 0x53, 0xd1, 0x6c, 0x9c, 0xfe,
		0x16, 0x2f, 0x15, 0xdb, 0xc6, 0xea, 0xff, 0x2a, 0x4c, 0x74, 0x1b, 0xaf, 0xbf, 0xfd, 0xab, 0x37,
		0xbe, 0x31, 0x7b, 0x3a, 0x38, 0x13, 0x13, 0x27, 0x66, 0x0f, 0xf1, 0x7a, 0xf0, 0xad, 0xe0, 0x4b,
		0xc0, 0x97, 0x80, 0x2f, 0x01, 0x5f, 0x02, 0xbe, 0x24, 0x09, 0xbe, 0x64, 0x28, 0xcc, 0xdd, 0x6c,
		0x62, 0x9d, 0x1d, 0xa3, 0x3f, 0x5e, 0xf4, 0xc9, 0x85, 0x72, 0x8c, 0xdf, 0x79, 0xa4, 0x47, 0xf7,
		0xf1, 0xfb, 0x8c, 0x2b, 0xa7, 0x69, 0x5c, 0xa5, 0xfb, 0x89, 0xa4, 0x94, 0x56, 0xde, 0x1f, 0xec,
		0xfd, 0x66, 0xbb, 0x79, 0xf4, 0xff, 0xb7, 0x12, 0x48, 0xa5, 0x0b, 0xe1, 0xd7, 0x5f, 0x25, 0xf1,
		0xf5, 0xc5, 0xe9, 0xd7, 0x7f, 0xbd, 0x38, 0x3f, 0x3e, 0x3a, 0xf4, 0x6f, 0xc2, 0xf7, 0xa3, 0xf3,
		0xaf, 0x47, 0x49, 0x88, 0x52, 0x7a, 0x2d, 0xca, 0x95, 0xf5, 0x69, 0x8b, 0x89, 0x14, 0xeb, 0xca,
		0x39, 0x89, 0x70, 0x6e, 0xf0, 0x3f, 0xc7, 0xa8, 0xe5, 0x01, 0x8f, 0xbc, 0x65, 0xfd, 0x5f, 0x05,
		0xb9, 0xb2, 0xf6, 0x32, 0xa5, 0x64, 0x64, 0xf0, 0x6d, 0x3f, 0x11, 0xfa, 0x66, 0x66, 0xf9, 0x7b,
		0x99, 0xc2, 0x96, 0x52, 0x28, 0xdb, 0xb2, 0x4e, 0x17, 0xef, 0xa6, 0xf5, 0x98, 0xd6, 0xbf, 0x0a,
		0xbf, 0x2f, 0xd1, 0x45, 0x7f, 0x26, 0xc0, 0x2d, 0x37, 0x5f, 0x14, 0x21, 0x17, 0xc7, 0x14, 0xa3,
		0x4c, 0x72, 0x4b, 0x02, 0x79, 0x0d, 0x61, 0xee, 0xda, 0xfb, 0x5e, 0x73, 0xf2, 0x73, 0xa3, 0x5c,
		0x1d, 0x2b, 0x7a, 0x73, 0xe0, 0x35, 0x3b, 0xfe, 0x7f, 0xe4, 0x63, 0xd4, 0x93, 0x26, 0xe2, 0xe1,
		0x6d, 0xe3, 0xe3, 0x69, 0x13, 0xe5, 0x65, 0x63, 0xe4, 0x61, 0x63, 0xe4, 0x5d, 0xb1, 0x6c, 0xe2,
		0x26, 0xc3, 0xc5, 0xf6, 0x2d, 0x9c, 0xf8, 0x2a, 0x40, 0x60, 0xe1, 0xc4, 0x8d, 0x90, 0x25, 0xbf,
		0x03, 0xff, 0xb5, 0xf9, 0x3e, 0x93, 0xe8, 0x57, 0x30, 0x73, 0x3a, 0xb6, 0xfc, 0x6d, 0xf6, 0x8c,
		0xf4, 0xdd, 0xb0, 0x71, 0x1f, 0x6d, 0x61, 0x9c, 0x7b, 0xd5, 0x89, 0x67, 0x49, 0xb3, 0xc0, 0x0d,
		0xc6, 0xb0, 0xa6, 0x19, 0xf5, 0x95, 0xcc, 0x36, 0xbc, 0xff, 0x73, 0x1c, 0x6b, 0xa6, 0xc7, 0xb0,
		0x46, 0x7a, 0x0c, 0xeb, 0x73, 0x5d, 0x1e, 0x7f, 0xcd, 0x94, 0x8b, 0xb5, 0x42, 0xc6, 0xce, 0xec,
		0x67, 0x0e, 0x1c, 0x3f, 0x4a, 0x67, 0xbe, 0x09, 0x23, 0x7f, 0x89, 0xc7, 0xcc, 0xcc, 0x99, 0x66,
		0xca, 0x99, 0x9d, 0x83, 0x6f, 0x0d, 0xbb, 0x9c, 0xfd, 0xa1, 0x3f, 0xb4, 0x12, 0xf6, 0xe4, 0xb2,
		0x4a, 0xbe, 0x5a, 0xf1, 0xbf, 0x66, 0x64, 0x1c, 0xed, 0xdc, 0x3b, 0x23, 0x2f, 0xd3, 0x7c, 0xf4,
		0x8c, 0xbc, 0xcf, 0x7c, 0x75, 0x74, 0x4f, 0x76, 0xa5, 0x1b, 0x04, 0x57, 0x2f, 0xf8, 0xac, 0x83,
		0x6f, 0x8d, 0x2d, 0x5b, 0x2f, 0x2c, 0xae, 0x85, 0xd4, 0x93, 0x5d, 0x32, 0x8c, 0xb0, 0x3a, 0x71,
		0x4b, 0xd2, 0x36, 0xfe, 0xa9, 0x2d, 0x2c, 0xbd, 0x9c, 0x2c, 0xac, 0xde, 0x9e, 0x75, 0x97, 0x03,
		0x0c, 0x9d, 0x8e, 0x35, 0x97, 0xcb, 0x91, 0x2f, 0xba, 0x5c, 0xc6, 0xaa, 0xcb, 0x58, 0x75, 0xf9,
		0x7d, 0x60, 0x02, 0xab, 0x2e, 0x6f, 0x51, 0xee, 0x1c, 0xe1, 0xaa, 0xcb, 0xe5, 0x38, 0x97, 0x5d,
		0x2e, 0x63, 0xdd, 0xe5, 0xc4, 0x5c, 0x5c, 0xbc, 0xae, 0x2e, 0xc9, 0x3c, 0x0a, 0xeb, 0x2e, 0x53,
		0x4e, 0x5a, 0xb0, 0xee, 0xf2, 0x9b, 0xac, 0x13, 0xeb, 0x2e, 0xd3, 0x74, 0x9f, 0xc9, 0xb8, 0xd1,
		0xb8, 0xdd, 0x69, 0x62, 0x6e, 0x35, 0x31, 0xf7, 0x9a, 0x98, 0x9b, 0x8d, 0xd6, 0xdd, 0x46, 0xec,
		0x76, 0xc3, 0xbb, 0x86, 0x75, 0x97, 0x37, 0xe5, 0xc2, 0xb0, 0xee, 0xf2, 0x9b, 0x79, 0x2d, 0xac,
		0xbb, 0xfc, 0xa7, 0x01, 0x19, 0xeb, 0x2e, 0x23, 0x20, 0x23, 0x20, 0x6f, 0x63, 0x40, 0xc6, 0xba,
		0xcb, 0xec, 0xf2, 0xa4, 0xd8, 0xf3, 0xa5, 0x24, 0xdc, 0x74, 0xb2, 0xee, 0x3a, 0x29, 0xb7, 0x9d,
		0xb8, 0xfb, 0x4e, 0xdc, 0x8d, 0x27, 0xee, 0xce, 0xe3, 0x71, 0xeb, 0x31, 0xb9, 0xf7, 0xf8, 0xf3,
		0xae, 0x25, 0xbb, 0xc5, 0xba, 0xcb, 0x91, 0x3d, 0xfe, 0x3f, 0xf6, 0xde, 0xbc, 0xb7, 0x6d, 0x64,
		0x59, 0x1b, 0xff, 0x3f, 0x9f, 0x82, 0x20, 0xce, 0x8b, 0x49, 0xf0, 0x86, 0xd6, 0x62, 0x49, 0x5e,
		0x2e, 0x0e, 0x2e, 0xbc, 0x28, 0xb9, 0xfa, 0x8d, 0xb7, 0x9f, 0xa5, 0xe4, 0xce, 0x20, 0xf1, 0x11,
		0x68, 0xa9, 0x25, 0xf3, 0x0e, 0x4d, 0xea, 0x92, 0x54, 0xc6, 0x3e, 0x89, 0xbf, 0xfb, 0x0b, 0x51,
		0x12, 0xad, 0xcd, 0x89, 0x6d, 0x75, 0x55, 0x77, 0x53, 0x8f, 0x71, 0x70, 0xc6, 0x56, 0x6c, 0x36,
		0xd9, 0xac, 0x7e, 0xaa, 0xea, 0xa9, 0x0d, 0xdd, 0xb1, 0x78, 0xd7, 0x47, 0x67, 0x22, 0x66, 0xd8,
		0x9a, 0x17, 0x3d, 0x74, 0xc7, 0x82, 0x0c, 0xb2, 0x2b, 0x68, 0xfe, 0xd5, 0xd0, 0x77, 0xf9, 0xf9,
		0x42, 0x88, 0xbe, 0xcb, 0x70, 0x2b, 0xe1, 0x56, 0xc2, 0xad, 0x84, 0x5b, 0xb9, 0x69, 0x6e, 0x25,
		0xfa, 0x2e, 0xc3, 0xb3, 0x84, 0x67, 0x09, 0xcf, 0x12, 0x9e, 0x25, 0x64, 0x10, 0x9e, 0xa5, 0x56,
		0x9e, 0x25, 0xfa, 0x2e, 0x53, 0xa1, 0x14, 0xfa, 0x2e, 0xa3, 0xef, 0xf2, 0xda, 0xfb, 0x87, 0xbe,
		0xcb, 0xe0, 0x4b, 0xc0, 0x97, 0x80, 0x2f, 0x01, 0x5f, 0xb2, 0x61, 0x7c, 0x09, 0xfa, 0x2e, 0xf3,
		0xbc, 0x63, 0xf4, 0x5d, 0x46, 0xdf, 0x65, 0xf4, 0x5d, 0xe6, 0xd4, 0x51, 0xe8, 0xbb, 0x3c, 0x77,
		0x0f, 0xe8, 0xbb, 0x6c, 0xba, 0x39, 0x82, 0xa4, 0xf5, 0x9f, 0x8b, 0xd9, 0x46, 0xf5, 0x5d, 0xae,
		0x4c, 0x3b, 0x69, 0x56, 0x36, 0xa6, 0xf3, 0x72, 0x65, 0xd2, 0x59, 0xb3, 0x82, 0xde, 0xcb, 0xdc,
		0x87, 0x0c, 0xbd, 0x97, 0x5f, 0xb3, 0x12, 0x7a, 0x2f, 0x1b, 0x22, 0xdd, 0x9b, 0xd1, 0x7b, 0x79,
		0x59, 0x65, 0xe4, 0xb0, 0xfb, 0xf2, 0xa2, 0x92, 0x40, 0xff, 0x65, 0x29, 0xa4, 0x09, 0xfa, 0x2f,
		0x3f, 0x73, 0x65, 0xf4, 0x5f, 0x5e, 0xf5, 0x85, 0xfe, 0xcb, 0x7c, 0xc2, 0x6f, 0x2d, 0xf6, 0x5f,
		0x7e, 0x71, 0x03, 0x5c, 0xb4, 0x46, 0x96, 0x71, 0xf6, 0x15, 0xb4, 0x46, 0x7e, 0xf9, 0x9b, 0x46,
		0xd7, 0x62, 0x74, 0x2d, 0x56, 0x6c, 0x90, 0xe6, 0xa8, 0x6d, 0x71, 0x65, 0x53, 0xfa, 0x16, 0xd3,
		0xf4, 0x6d, 0x20, 0xed, 0xcf, 0x40, 0x94, 0x00, 0x82, 0x8e, 0xc5, 0xca, 0x74, 0x3d, 0x3a, 0x16,
		0xe7, 0xd4, 0xdb, 0x24, 0x4b, 0x88, 0x60, 0xe8, 0xff, 0x46, 0xd9, 0xef, 0x8d, 0xa5, 0xbf, 0x9b,
		0x9e, 0x0a, 0x87, 0xa6, 0x5f, 0x1b, 0x69, 0x7f, 0x36, 0xf2, 0x16, 0xf9, 0x65, 0x28, 0x1c, 0x28,
		0x1c, 0x28, 0x1c, 0x09, 0xbb, 0x40, 0xd7, 0x22, 0xdf, 0xeb, 0x0f, 0x18, 0x7a, 0xe3, 0x7b, 0x64,
		0x89, 0xb7, 0xc4, 0x69, 0xd3, 0x68, 0x8a, 0x6f, 0x04, 0x83, 0x86, 0xa6, 0xf8, 0x3a, 0x73, 0x62,
		0x44, 0x27, 0x87, 0x3c, 0x2d, 0x79, 0xae, 0x1b, 0x58, 0xad, 0x42, 0x79, 0x66, 0x26, 0x28, 0xb6,
		0x4b, 0xb8, 0x04, 0x4f, 0x4d, 0x36, 0x43, 0x5e, 0x13, 0x67, 0xcd, 0x35, 0x77, 0x8d, 0xb5, 0xb2,
		0x7a, 0x56, 0xfe, 0xfa, 0x55, 0x8e, 0xaa, 0x31, 0xce, 0x1a, 0xe9, 0x4c, 0x54, 0xd4, 0x15, 0x39,
		0x6e, 0x92, 0xf4, 0x18, 0x9a, 0x55, 0x77, 0x65, 0x94, 0x8a, 0x65, 0x08, 0x63, 0x67, 0x6b, 0xd1,
		0x87, 0xb3, 0x19, 0x75, 0xd4, 0x6c, 0x78, 0x7b, 0x67, 0xbb, 0x54, 0xb2, 0x1c, 0xab, 0x75, 0x23,
		0xac, 0x83, 0x4e, 0x67, 0x78, 0x3b, 0xf4, 0xdd, 0x44, 0x74, 0xad, 0xc6, 0xc7, 0x0b, 0xeb, 0x54,
		0x24, 0x91, 0xd7, 0xb1, 0x0e, 0x92, 0x24, 0xf2, 0xae, 0x87, 0x89, 0x60, 0x98, 0xfd, 0xcb, 0x6d,
		0xa6, 0xaf, 0x32, 0xd7, 0xb9, 0x02, 0xde, 0xca, 0x2c, 0xf7, 0x95, 0x16, 0xfc, 0x6b, 0x65, 0x01,
		0x58, 0xca, 0x8b, 0xa5, 0x6f, 0x0c, 0x40, 0x67, 0x7b, 0x9c, 0x24, 0xe6, 0xb8, 0xfd, 0x7e, 0x34,
		0x52, 0xbd, 0x82, 0x81, 0xc4, 0x59, 0x5c, 0x11, 0x84, 0x0e, 0x08, 0x1d, 0x10, 0x3a, 0x20, 0x74,
		0x0c, 0x24, 0x74, 0xae, 0xc3, 0xd0, 0x17, 0x6e, 0xc0, 0xc0, 0xe8, 0x94, 0x4a, 0x1b, 0xac, 0xa4,
		0x3a, 0xfe, 0x30, 0x4e, 0x44, 0xe4, 0xf8, 0x5e, 0xcc, 0x30, 0x81, 0x77, 0x6e, 0x35, 0x28, 0x27,
		0x28, 0x27, 0x28, 0x27, 0x28, 0x27, 0x03, 0x95, 0x93, 0x37, 0xf8, 0x56, 0x71, 0xdc, 0x6e, 0x37,
		0x12, 0x71, 0xcc, 0xa1, 0xa1, 0x28, 0x83, 0x0e, 0x17, 0x6e, 0x92, 0x88, 0x28, 0x20, 0xa7, 0x74,
		0xec, 0xb7, 0x5f, 0x8a, 0xce, 0xde, 0xd5, 0x8f, 0x2f, 0x25, 0x67, 0xef, 0x6a, 0xfc, 0x6d, 0x29,
		0xfd, 0xcf, 0xf7, 0xf2, 0xc3, 0x8f, 0xf2, 0x97, 0xa2, 0x53, 0x99, 0x7c, 0x5a, 0xae, 0x7e, 0x29,
		0x3a, 0xd5, 0xab, 0x77, 0x6f, 0xbf, 0x7e, 0xdd, 0x7a, 0xe9, 0xdf, 0xbc, 0xfb, 0xbe, 0xfd, 0x40,
		0x77, 0x1c, 0xae, 0x28, 0x5f, 0xc3, 0x79, 0xb3, 0xf1, 0x07, 0xdb, 0xbb, 0xf8, 0xd7, 0x5b, 0xae,
		0xb7, 0xf1, 0xee, 0x1f, 0x36, 0x98, 0x5a, 0x0b, 0xb5, 0xc9, 0x92, 0x17, 0x47, 0x6d, 0xf2, 0x0b,
		0x9e, 0x00, 0x31, 0x82, 0x35, 0xf5, 0xfd, 0xe5, 0x87, 0x23, 0xab, 0x52, 0xa9, 0xd6, 0x26, 0x85,
		0x51, 0x97, 0xe1, 0x30, 0x11, 0xd6, 0xa5, 0xe8, 0xf9, 0x22, 0x8d, 0xe5, 0xed, 0x5b, 0x07, 0x81,
		0x75, 0xe0, 0x8f, 0xa0, 0x3b, 0x0d, 0xb1, 0x59, 0x49, 0x68, 0x7d, 0x18, 0xfa, 0xfe, 0xd7, 0xe0,
		0x54, 0xc4, 0x37, 0x56, 0x23, 0x48, 0xff, 0xc5, 0x4f, 0xff, 0xf6, 0x6d, 0xe3, 0xf0, 0xe3, 0xc5,
		0x3b, 0x44, 0x0f, 0xcc, 0xb6, 0xc4, 0x57, 0x5a, 0xe4, 0xf2, 0xa5, 0x04, 0x71, 0x05, 0x5e, 0xcd,
		0x6f, 0x04, 0x65, 0x43, 0x3b, 0xf0, 0x96, 0x65, 0xc0, 0x2d, 0x48, 0x1a, 0x90, 0x34, 0x20, 0x69,
		0x40, 0xd2, 0x90, 0x9e, 0x1b, 0xa4, 0x84, 0xea, 0x64, 0x4a, 0x23, 0x25, 0x94, 0x44, 0xd6, 0x91,
		0x12, 0x2a, 0x49, 0x54, 0x90, 0x12, 0x8a, 0x94, 0x50, 0xb8, 0x1b, 0x2b, 0x84, 0xc4, 0x0f, 0x3b,
		0xae, 0xef, 0x8c, 0x6c, 0x35, 0x7a, 0x9f, 0x63, 0x66, 0x2d, 0x38, 0x1e, 0x70, 0x3c, 0xe0, 0x78,
		0xc0, 0xf1, 0x30, 0xd4, 0xf1, 0xd8, 0x2e, 0x33, 0x38, 0x1e, 0x3b, 0x70, 0x3c, 0xe0, 0x78, 0xc0,
		0xf1, 0x30, 0xdb, 0xf1, 0xe0, 0x9e, 0xcf, 0x09, 0x77, 0x03, 0xee, 0x86, 0xc6, 0xee, 0xc6, 0xad,
		0xe8, 0xd2, 0xfb, 0x19, 0xa3, 0x45, 0xe0, 0x60, 0xc0, 0xc1, 0x80, 0x83, 0x01, 0x07, 0x03, 0x0e,
		0x06, 0x1c, 0x0c, 0x38, 0x18, 0x30, 0x16, 0xe1, 0x60, 0x40, 0x66, 0xe0, 0x60, 0xe4, 0xdf, 0xc1,
		0x08, 0xc4, 0x5d, 0xe2, 0xdc, 0x84, 0x0c, 0x3d, 0xf5, 0xb2, 0x95, 0xe0, 0x6a, 0xc0, 0xd5, 0x80,
		0xab, 0x01, 0x57, 0xc3, 0x40, 0x57, 0xc3, 0x1b, 0x70, 0xd6, 0xb9, 0xed, 0x11, 0xae, 0x31, 0xd9,
		0xb3, 0xdc, 0xd4, 0x24, 0x30, 0xd5, 0x20, 0x2e, 0xbd, 0xa3, 0x5d, 0x86, 0xb5, 0xb8, 0xea, 0xe0,
		0xb2, 0x05, 0xcd, 0xaf, 0x4d, 0xcc, 0x4c, 0x3b, 0x8e, 0xd7, 0xc3, 0x59, 0xab, 0x98, 0xad, 0x9a,
		0x8f, 0x9a, 0x45, 0x5a, 0x13, 0x9c, 0xc9, 0x99, 0xe5, 0x85, 0xb9, 0x1a, 0x60, 0x4e, 0x16, 0xcc,
		0xa5, 0xa7, 0xc1, 0x75, 0x7a, 0x07, 0xce, 0x87, 0xab, 0xef, 0xa5, 0xf7, 0x95, 0x87, 0xfd, 0x77,
		0xdf, 0x77, 0x1e, 0x16, 0x3f, 0xfc, 0xb1, 0xea, 0xd7, 0x4a, 0xef, 0x77, 0x1e, 0xf6, 0x9f, 0xf8,
		0x97, 0xda, 0xc3, 0xfe, 0x33, 0xaf, 0x51, 0x7d, 0x78, 0xbb, 0xf4, 0xab, 0xa3, 0xcf, 0xcb, 0x4f,
		0xfd, 0x41, 0xe5, 0x89, 0x3f, 0xd8, 0x7e, 0xea, 0x0f, 0xb6, 0x9f, 0xf8, 0x83, 0x27, 0x6f, 0xa9,
		0xfc, 0xc4, 0x1f, 0x54, 0x1f, 0x7e, 0x2c, 0xfd, 0xfe, 0xdb, 0xd5, 0xbf, 0x5a, 0x7b, 0x78, 0xf7,
		0xe3, 0xa9, 0x7f, 0xdb, 0x79, 0xf8, 0xb1, 0xff, 0xee, 0x1d, 0x80, 0x7f, 0x6d, 0xe0, 0x87, 0xd8,
		0xf2, 0x8b, 0xad, 0xf9, 0x8a, 0x10, 0x1c, 0x1a, 0x01, 0x87, 0x16, 0x46, 0x5e, 0x9f, 0x30, 0xea,
		0xf1, 0xc8, 0xda, 0x8c, 0xd7, 0x01, 0x7f, 0x06, 0xfe, 0x0c, 0xfc, 0x19, 0xf8, 0x33, 0x03, 0xf9,
		0xb3, 0xeb, 0xfe, 0xc0, 0x19, 0xa3, 0x98, 0x93, 0x4e, 0x2d, 0x4d, 0x46, 0x2b, 0x33, 0x30, 0x69,
		0x15, 0xc2, 0x35, 0xea, 0xc1, 0xf0, 0x96, 0xfe, 0x8c, 0xb6, 0xc2, 0x66, 0x12, 0x79, 0x41, 0x9f,
		0x25, 0x60, 0x6a, 0x17, 0x47, 0x2f, 0xab, 0xc1, 0xd3, 0xd6, 0xbb, 0x34, 0x5a, 0xab, 0xce, 0xb3,
		0x56, 0x39, 0x7d, 0xae, 0xb3, 0xa3, 0xf3, 0xd3, 0x8b, 0x93, 0x7a, 0xab, 0x6e, 0x9b, 0xcc, 0x3a,
		0xd8, 0xad, 0xb0, 0x11, 0x24, 0x3c, 0xf2, 0x30, 0x7a, 0x3d, 0xd2, 0xe7, 0xee, 0xad, 0x5c, 0xa9,
		0x91, 0xae, 0x54, 0xe4, 0x58, 0xe9, 0x51, 0x0c, 0xf6, 0xad, 0xb2, 0xa1, 0x66, 0xf7, 0xc3, 0xc6,
		0x9b, 0xdd, 0x6e, 0x12, 0x46, 0x8e, 0xd7, 0xe5, 0xb2, 0xbe, 0xa7, 0xcb, 0xc1, 0x08, 0x87, 0x11,
		0x0e, 0x23, 0x1c, 0x46, 0xb8, 0x81, 0x46, 0x38, 0xda, 0xb5, 0xbe, 0x62, 0x21, 0xb4, 0x6b, 0xfd,
		0xe9, 0x6b, 0x40, 0xbb, 0xd6, 0x97, 0xbf, 0x0f, 0x34, 0xcd, 0x7c, 0x62, 0x2d, 0x34, 0xcd, 0x44,
		0xd3, 0x4c, 0x34, 0xcd, 0x44, 0xd3, 0x4c, 0x0b, 0x11, 0x2b, 0xed, 0x07, 0xbd, 0x1f, 0x04, 0x41,
		0x98, 0xb8, 0x23, 0xd9, 0xa4, 0x99, 0xf7, 0x1e, 0x77, 0x6e, 0xc4, 0xad, 0x3b, 0x70, 0x93, 0x9b,
		0xd1, 0xf1, 0x28, 0x84, 0x03, 0x11, 0x74, 0x52, 0x27, 0xd6, 0x09, 0x44, 0xf2, 0x77, 0x18, 0xfd,
		0xe5, 0x78, 0x23, 0x9d, 0x14, 0x74, 0x44, 0x61, 0xf1, 0x83, 0x78, 0xe9, 0x93, 0xc2, 0x20, 0x0a,
		0x93, 0xb0, 0x13, 0xfa, 0x71, 0xf6, 0x5d, 0xe1, 0xba, 0x3f, 0x28, 0x44, 0xde, 0x75, 0x21, 0xe5,
		0xa3, 0x63, 0x91, 0xc4, 0xd9, 0x77, 0x85, 0x38, 0xa1, 0x99, 0x1a, 0x66, 0xc7, 0x49, 0x34, 0xec,
		0x24, 0xc1, 0x44, 0x33, 0x9c, 0x67, 0xcf, 0x74, 0x36, 0xbe, 0xdf, 0xc6, 0xe4, 0x76, 0xdb, 0x0b,
		0x3f, 0xc7, 0x8b, 0x1f, 0xb4, 0x2f, 0xa6, 0xcf, 0x93, 0x7d, 0xd7, 0x3e, 0xec, 0x0f, 0xda, 0x97,
		0xde, 0x75, 0xfb, 0x20, 0x49, 0xa2, 0xa6, 0x48, 0xe2, 0xe9, 0x37, 0xed, 0x66, 0xfa, 0x34, 0x6f,
		0xf4, 0x14, 0x4d, 0x89, 0x62, 0x69, 0x27, 0xc3, 0x20, 0x10, 0xbe, 0x23, 0x82, 0x8e, 0x3b, 0x88,
		0x87, 0x3e, 0x8d, 0x70, 0x66, 0x7a, 0x7d, 0xe5, 0x6a, 0x92, 0x0f, 0xd9, 0xd4, 0x93, 0x92, 0x7c,
		0xd9, 0x8c, 0x0d, 0x2a, 0x4b, 0xbe, 0x30, 0x21, 0x0b, 0xc4, 0xc3, 0xfe, 0x50, 0x1b, 0x3e, 0x6c,
		0x6c, 0x0f, 0x9b, 0x55, 0xc3, 0xc6, 0xee, 0xe8, 0xad, 0x0e, 0x8f, 0x3d, 0x9a, 0x81, 0x16, 0x13,
		0x98, 0x89, 0xe9, 0x69, 0xee, 0xe9, 0x42, 0xb4, 0x04, 0x77, 0x09, 0x04, 0xb7, 0x62, 0x88, 0xe3,
		0xf6, 0xf1, 0x40, 0x70, 0x1b, 0xe2, 0x1b, 0x51, 0x31, 0x48, 0x54, 0xd0, 0xb8, 0x00, 0x91, 0xf4,
		0x82, 0x3c, 0x8f, 0x94, 0xd4, 0x52, 0x4c, 0x0b, 0x98, 0x6c, 0xc0, 0xc9, 0x09, 0xa0, 0x6a, 0x80,
		0x54, 0x07, 0xd2, 0x8c, 0x05, 0x58, 0xf5, 0x62, 0xcc, 0x38, 0x80, 0x96, 0x89, 0xea, 0x22, 0x3e,
		0x79, 0xd4, 0x00, 0x3c, 0x43, 0x6f, 0x50, 0xce, 0x77, 0x7f, 0xf2, 0x94, 0x53, 0xd1, 0x35, 0x0a,
		0x61, 0x99, 0xdc, 0x55, 0xd7, 0x01, 0xa6, 0xd5, 0xc2, 0xb5, 0x2a, 0xd8, 0x56, 0x0e, 0xdf, 0xca,
		0x61, 0x5c, 0x39, 0x9c, 0xf3, 0xc0, 0x3a, 0x13, 0xbc, 0xb3, 0xc3, 0xfc, 0xa3, 0xdd, 0x4d, 0x9d,
		0xb9, 0xf2, 0x73, 0x2b, 0x9c, 0x36, 0x85, 0xfc, 0x67, 0xe0, 0x5f, 0x64, 0x5e, 0x96, 0xcb, 0x46,
		0xd7, 0x41, 0x19, 0xe8, 0xa1, 0x14, 0x54, 0x2b, 0x07, 0x6d, 0x94, 0x84, 0x36, 0xca, 0x42, 0x1b,
		0xa5, 0xc1, 0xab, 0x3c, 0x98, 0x95, 0x48, 0xb6, 0xcb, 0x2d, 0x15, 0xd8, 0x3e, 0x77, 0xee, 0xbd,
		0xae, 0x08, 0x12, 0x2f, 0xb9, 0xa7, 0x9b, 0x82, 0xf2, 0x2c, 0x3b, 0xbf, 0xaa, 0x60, 0xed, 0xc6,
		0xe4, 0xd1, 0x0f, 0xdd, 0x58, 0x21, 0xf4, 0x4c, 0x5f, 0x44, 0xeb, 0xd3, 0xd9, 0x59, 0xfd, 0xa4,
		0x5d, 0x3f, 0x3b, 0x3a, 0xb8, 0x68, 0x7e, 0x3a, 0x39, 0x68, 0x35, 0xce, 0xcf, 0xda, 0xad, 0x3f,
		0x2f, 0xea, 0xaa, 0xa0, 0x28, 0xed, 0xe8, 0x18, 0xb3, 0x15, 0xde, 0xaf, 0xfa, 0xfa, 0xae, 0x6c,
		0xe5, 0xb9, 0x57, 0xd3, 0xbc, 0x6c, 0xd5, 0xdb, 0x17, 0xe7, 0x27, 0x8d, 0xa3, 0x3f, 0xdb, 0xe3,
		0xd7, 0x64, 0x2b, 0xbb, 0xb1, 0x07, 0x25, 0x2b, 0x5f, 0xe5, 0x1d, 0xf7, 0xe1, 0x0c, 0xbd, 0xce,
		0x4a, 0xa0, 0x4d, 0x4f, 0x7a, 0x72, 0x5d, 0x95, 0x69, 0x4b, 0xab, 0x32, 0x52, 0x26, 0x1f, 0xc6,
		0x93, 0xff, 0x16, 0x38, 0xb9, 0x32, 0x4b, 0x59, 0xca, 0x53, 0x2b, 0x7d, 0xd8, 0xfa, 0xec, 0x46,
		0x4c, 0x3e, 0x8b, 0x27, 0xff, 0xa5, 0xc8, 0x8a, 0x52, 0x77, 0xb2, 0x38, 0x9a, 0x36, 0xc7, 0xc3,
		0xeb, 0xc4, 0xff, 0x16, 0x2b, 0xa0, 0x77, 0x27, 0x0b, 0xe7, 0x9c, 0xe0, 0x2d, 0x82, 0xe0, 0xcd,
		0x97, 0x0f, 0x0f, 0x82, 0x17, 0x04, 0xaf, 0xd4, 0xdd, 0x64, 0x27, 0x78, 0xc7, 0xc8, 0xab, 0x8e,
		0xe2, 0x9d, 0xac, 0xaf, 0x86, 0xe4, 0x2d, 0x81, 0xe4, 0xcd, 0xb9, 0x62, 0x50, 0xad, 0x20, 0xb4,
		0x51, 0x14, 0xda, 0x28, 0x0c, 0x6d, 0x14, 0x87, 0x22, 0x67, 0x9f, 0xf9, 0xe4, 0x73, 0x2b, 0x94,
		0x6c, 0xe1, 0x48, 0xdc, 0x86, 0x89, 0x70, 0x44, 0xd0, 0x1d, 0x84, 0x5e, 0x90, 0xc4, 0xea, 0x49,
		0xce, 0xa5, 0x3b, 0x52, 0x24, 0xf8, 0x6a, 0x94, 0x8f, 0x72, 0x25, 0xa4, 0x83, 0x32, 0xd2, 0x4b,
		0x29, 0xe9, 0xa2, 0x9c, 0xb4, 0x53, 0x52, 0xda, 0x29, 0x2b, 0xed, 0x94, 0x96, 0x1a, 0xe5, 0xa5,
		0x48, 0x89, 0x29, 0x57, 0x66, 0x4f, 0x29, 0x35, 0xf5, 0x27, 0xf6, 0x09, 0xdd, 0xa6, 0xfa, 0xdc,
		0xaa, 0x55, 0x71, 0xda, 0xa8, 0x3a, 0x9d, 0x54, 0x9e, 0x9e, 0xaa, 0x4f, 0x37, 0x15, 0xa8, 0xad,
		0x2a, 0xd4, 0x56, 0x25, 0x6a, 0xab, 0x1a, 0xd5, 0xaa, 0x48, 0xc5, 0xaa, 0x52, 0x1b, 0x95, 0x99,
		0xdd, 0x88, 0x36, 0x3a, 0x73, 0x09, 0x08, 0x35, 0x51, 0x9a, 0x8b, 0xca, 0xb3, 0xa8, 0xc9, 0xed,
		0xe8, 0xa2, 0x44, 0x75, 0x54, 0xa6, 0x7a, 0x2b, 0x55, 0x5d, 0x95, 0xab, 0xf6, 0x4a, 0x56, 0x7b,
		0x65, 0xab, 0xbd, 0xd2, 0xd5, 0x43, 0xf9, 0x6a, 0xa2, 0x84, 0xb3, 0xb7, 0xa5, 0x2c, 0xe3, 0xf6,
		0x97, 0xb8, 0xe5, 0x0b, 0xb7, 0xa7, 0x26, 0x0b, 0xf7, 0x97, 0x3e, 0xe4, 0x8e, 0x46, 0xf7, 0x74,
		0x31, 0x49, 0xfa, 0xda, 0xda, 0x1a, 0x67, 0x59, 0x15, 0x32, 0xdb, 0xe1, 0x0d, 0x4e, 0x9b, 0x26,
		0x27, 0x8d, 0xb9, 0x44, 0xf5, 0xd9, 0x47, 0x8c, 0x3b, 0x2d, 0xcf, 0x00, 0x82, 0x66, 0xd9, 0xc6,
		0x2c, 0xc3, 0xc6, 0x84, 0x8d, 0x09, 0x1b, 0x13, 0x36, 0x26, 0x6c, 0x4c, 0xc3, 0x09, 0x9f, 0xec,
		0x86, 0xdc, 0x58, 0x3f, 0x50, 0x98, 0x42, 0xa9, 0x1b, 0xeb, 0x86, 0x06, 0x7a, 0x91, 0x3f, 0xcb,
		0x0a, 0x5a, 0xb7, 0x1b, 0xd3, 0x50, 0x51, 0x9b, 0xa1, 0xb0, 0x75, 0x57, 0xdc, 0xc6, 0x28, 0x70,
		0x63, 0x14, 0xb9, 0x31, 0x0a, 0x5d, 0x2f, 0xc5, 0xae, 0x99, 0x82, 0xcf, 0xde, 0xa2, 0x76, 0x64,
		0xd2, 0x0a, 0xed, 0xea, 0x04, 0xc3, 0xdb, 0x6b, 0x11, 0xe9, 0x08, 0x7b, 0x13, 0x45, 0xbb, 0xa3,
		0xe1, 0xad, 0x5d, 0xba, 0x41, 0x5f, 0x28, 0xad, 0x7d, 0xfe, 0xd9, 0x97, 0x9e, 0x6a, 0x22, 0xdd,
		0xb8, 0x53, 0x2f, 0xd0, 0x56, 0x8f, 0x65, 0x37, 0x99, 0x96, 0xb6, 0xeb, 0x67, 0x49, 0x2d, 0xdd,
		0xe7, 0x87, 0xc8, 0x4d, 0xe7, 0x52, 0x1c, 0x7b, 0x7d, 0x2f, 0x4d, 0xdf, 0xd5, 0xfd, 0x86, 0xcf,
		0x44, 0x3f, 0x1d, 0x9c, 0x61, 0xef, 0x5b, 0x3d, 0xd7, 0x8f, 0x85, 0xb6, 0x77, 0xfb, 0xf0, 0x5e,
		0xe3, 0x23, 0xe4, 0xde, 0x99, 0x73, 0x84, 0x2a, 0xe5, 0xbd, 0xca, 0x5e, 0x6d, 0xa7, 0xbc, 0x57,
		0xc5, 0x59, 0xda, 0xd4, 0xb3, 0xf4, 0x06, 0x77, 0xf5, 0x9c, 0xaf, 0xab, 0x37, 0xd8, 0x1f, 0xcd,
		0xb1, 0x58, 0xbf, 0x14, 0xa9, 0x25, 0x8b, 0x5e, 0xb3, 0x54, 0xa9, 0x45, 0x63, 0x1e, 0xac, 0xd9,
		0x33, 0x6f, 0x0c, 0xac, 0xd9, 0xba, 0x77, 0x09, 0xd6, 0x4c, 0xd2, 0x8d, 0x82, 0x35, 0xcb, 0xb5,
		0xed, 0x01, 0xd6, 0xec, 0xa5, 0xb8, 0xe7, 0x0d, 0x18, 0x06, 0x38, 0xaf, 0xab, 0x69, 0x4b, 0x7b,
		0x1a, 0xde, 0xdb, 0xe4, 0xdd, 0x82, 0x36, 0x7b, 0xb5, 0xe4, 0xb1, 0x0c, 0x0f, 0x97, 0x26, 0x83,
		0xbb, 0x1a, 0xdf, 0x23, 0xd7, 0xc0, 0xec, 0xb5, 0x6f, 0xd4, 0xfc, 0xe1, 0xe7, 0x6b, 0xbb, 0xc6,
		0x3a, 0x8b, 0x11, 0xe7, 0xf0, 0xf5, 0xb5, 0xef, 0x36, 0x1f, 0xc3, 0xdb, 0xf3, 0x45, 0xb5, 0x68,
		0x6a, 0x88, 0x99, 0xa5, 0x16, 0x6b, 0x50, 0x8b, 0x9b, 0xa6, 0x16, 0x53, 0x54, 0x72, 0x9d, 0xde,
		0x81, 0xf3, 0xe1, 0xea, 0x7b, 0xe9, 0x7d, 0xe5, 0x61, 0xff, 0xdd, 0xf7, 0x9d, 0x87, 0xc5, 0x0f,
		0x7f, 0xac, 0xfa, 0xb5, 0xd2, 0xfb, 0x9d, 0x87, 0xfd, 0x27, 0xfe, 0xa5, 0xf6, 0xb0, 0xff, 0xcc,
		0x6b, 0x54, 0x1f, 0xde, 0x2e, 0xfd, 0xea, 0xe8, 0xf3, 0xf2, 0x53, 0x7f, 0x50, 0x79, 0xe2, 0x0f,
		0xb6, 0x9f, 0xfa, 0x83, 0xed, 0x27, 0xfe, 0xe0, 0xc9, 0x5b, 0x2a, 0x3f, 0xf1, 0x07, 0xd5, 0x87,
		0x1f, 0x4b, 0xbf, 0xff, 0x76, 0xf5, 0xaf, 0xd6, 0x1e, 0xde, 0xfd, 0x78, 0xea, 0xdf, 0x76, 0x1e,
		0x7e, 0xec, 0xbf, 0x7b, 0x07, 0x43, 0x61, 0x63, 0x0c, 0x05, 0x1c, 0x2f, 0xfe, 0xe3, 0x05, 0xc3,
		0xc9, 0x68, 0x3e, 0xcd, 0x42, 0x2c, 0x4f, 0xf3, 0x3b, 0xd1, 0xa5, 0x10, 0x40, 0x51, 0x7b, 0xfc,
		0x5f, 0xde, 0x97, 0xf6, 0xed, 0xf3, 0xc7, 0xbd, 0xc8, 0x27, 0xff, 0x2d, 0x2c, 0x76, 0x0d, 0x5c,
		0xfc, 0xa0, 0xa0, 0x53, 0x5d, 0x9f, 0xa5, 0x75, 0x3b, 0xfe, 0xf1, 0xc6, 0x4e, 0xfe, 0xdb, 0xbe,
		0x4c, 0xf7, 0xb1, 0x3e, 0xdd, 0xd7, 0x85, 0x9f, 0x39, 0x9b, 0xf7, 0xeb, 0x8f, 0x2b, 0x9b, 0xdd,
		0xc3, 0xe6, 0x77, 0x71, 0xaf, 0x51, 0xf2, 0x81, 0x7d, 0xe2, 0xc5, 0xc9, 0x48, 0xec, 0xf5, 0xe8,
		0xab, 0x73, 0xea, 0x05, 0x75, 0x5f, 0xdc, 0x8a, 0x40, 0x97, 0xbc, 0x32, 0xfb, 0xd4, 0xbd, 0x9b,
		0xb9, 0xa3, 0xd2, 0x6e, 0xa5, 0x52, 0xdb, 0xa9, 0x54, 0x8a, 0x3b, 0xdb, 0x3b, 0xc5, 0xbd, 0x6a,
		0xb5, 0x54, 0x2b, 0x69, 0x90, 0xad, 0x67, 0x9f, 0x47, 0x5d, 0x11, 0x89, 0xee, 0xe1, 0x48, 0xb2,
		0x82, 0xa1, 0xef, 0xeb, 0x74, 0x4b, 0x9f, 0x62, 0x11, 0x69, 0x91, 0x78, 0xa7, 0xfa, 0xe0, 0x6b,
		0x66, 0xc2, 0xe4, 0xcd, 0x74, 0xb1, 0xb5, 0x68, 0xd6, 0x90, 0x03, 0x63, 0x45, 0xad, 0x99, 0xf2,
		0x80, 0xee, 0xb3, 0x2c, 0xa2, 0x2a, 0xee, 0x92, 0xc8, 0x75, 0x86, 0x23, 0x81, 0xbb, 0xf6, 0xd5,
		0x26, 0x91, 0xd8, 0x7f, 0xdf, 0x08, 0xf5, 0x34, 0x9f, 0x46, 0xcd, 0x4c, 0xb3, 0x86, 0x3c, 0xc9,
		0xfd, 0x40, 0x58, 0xff, 0xb4, 0x7e, 0x0b, 0x3b, 0xce, 0x75, 0x7f, 0x10, 0x25, 0xfb, 0x93, 0xd1,
		0x96, 0x97, 0xf5, 0xd3, 0xf3, 0x56, 0xbd, 0x5d, 0x3f, 0x3b, 0xbe, 0x38, 0x6f, 0x9c, 0xb5, 0x7e,
		0x43, 0xcf, 0xd3, 0x95, 0x76, 0xf6, 0x34, 0x67, 0x30, 0x95, 0x2f, 0x74, 0x3c, 0xfd, 0x85, 0x79,
		0x32, 0x93, 0x11, 0xf8, 0x72, 0x01, 0x44, 0xaf, 0x26, 0xcb, 0xb2, 0x8f, 0x45, 0xdc, 0x89, 0xbc,
		0x81, 0x56, 0x2c, 0x55, 0x06, 0x2a, 0xe7, 0x81, 0x7f, 0x6f, 0xb9, 0xbe, 0x1f, 0xfe, 0x6d, 0x25,
		0x37, 0xc2, 0x1a, 0x5b, 0x4f, 0xd6, 0xd4, 0x7a, 0xb2, 0x92, 0xd0, 0xba, 0x16, 0x56, 0x3c, 0x10,
		0x1d, 0xaf, 0xe7, 0x89, 0xae, 0x35, 0x3a, 0x33, 0xa3, 0x5f, 0xfc, 0x1a, 0xc4, 0xc3, 0xeb, 0xd6,
		0xc9, 0x67, 0xcb, 0x8b, 0x67, 0xfe, 0x35, 0x09, 0xad, 0x6e, 0xfa, 0xb0, 0xd7, 0x4b, 0x57, 0x8a,
		0xb7, 0x74, 0x39, 0x6a, 0x1a, 0x66, 0x35, 0xcf, 0xa2, 0x52, 0x77, 0x46, 0x5a, 0x34, 0x22, 0xdc,
		0x74, 0x4e, 0x61, 0x9e, 0x03, 0x29, 0x46, 0x81, 0x06, 0x71, 0xa7, 0x03, 0x71, 0xa7, 0x6c, 0xf5,
		0xab, 0x8d, 0xf2, 0x0c, 0x34, 0xe1, 0x29, 0x4c, 0xe7, 0x27, 0x54, 0x8e, 0xe0, 0x31, 0x93, 0x87,
		0x50, 0x03, 0xb3, 0xfc, 0xb0, 0xa2, 0xe0, 0x60, 0xdb, 0xb1, 0xe8, 0x8f, 0xf4, 0xa6, 0xe3, 0x7b,
		0xb1, 0x0e, 0xd3, 0xcb, 0xe6, 0x6f, 0x07, 0xa3, 0xcb, 0x94, 0xdc, 0x00, 0x46, 0x97, 0x69, 0xea,
		0x31, 0x60, 0x74, 0xd9, 0x8b, 0x1c, 0x01, 0x8c, 0x2e, 0x63, 0x27, 0x3a, 0x54, 0x8f, 0x2e, 0x9b,
		0xd5, 0x1f, 0xfa, 0xcc, 0x2d, 0x9b, 0xbb, 0x2b, 0x0c, 0x2d, 0xc3, 0xd0, 0x32, 0x13, 0x94, 0x9e,
		0xae, 0x74, 0x19, 0x86, 0x96, 0x19, 0xaf, 0x14, 0x35, 0xe1, 0x8d, 0x30, 0xb4, 0x6c, 0x7c, 0x23,
		0x53, 0x2e, 0xc4, 0xf1, 0xba, 0xfa, 0x85, 0x27, 0x66, 0x6f, 0x0e, 0xa3, 0xcb, 0x74, 0x56, 0xa5,
		0x3a, 0xaa, 0x54, 0xbd, 0x55, 0xab, 0xae, 0x2a, 0x56, 0x7b, 0x55, 0xab, 0xbd, 0xca, 0xd5, 0x5e,
		0xf5, 0xea, 0xa1, 0x82, 0x35, 0x51, 0xc5, 0xd9, 0xdb, 0xc2, 0xe8, 0xb2, 0x57, 0x78, 0x92, 0x5a,
		0x8f, 0x2e, 0x9b, 0x35, 0x1f, 0x10, 0xad, 0xd5, 0xe5, 0xb0, 0x4d, 0x19, 0x91, 0x58, 0xc3, 0x01,
		0x66, 0xd3, 0x3b, 0xc3, 0x0c, 0x33, 0x18, 0x9b, 0x30, 0x36, 0x61, 0x6c, 0xc2, 0xd8, 0x84, 0xb1,
		0x99, 0x6b, 0xfe, 0x67, 0x51, 0x29, 0xeb, 0xdb, 0x98, 0x79, 0x7a, 0x83, 0x7a, 0xf6, 0x65, 0x2e,
		0xa1, 0x2f, 0xb3, 0xb1, 0x2a, 0xdb, 0x0c, 0xd5, 0xad, 0xbb, 0x0a, 0x37, 0x46, 0x95, 0x1b, 0xa3,
		0xd2, 0x8d, 0x51, 0xed, 0x7a, 0xa9, 0x78, 0xcd, 0x54, 0xbd, 0xb6, 0x2a, 0x3f, 0xbb, 0x31, 0x2f,
		0xe8, 0x0a, 0x7d, 0x47, 0xe2, 0xcc, 0x04, 0x83, 0x46, 0xb7, 0xa9, 0xe9, 0x11, 0xd5, 0x73, 0x3c,
		0x83, 0xf6, 0xe6, 0x80, 0x09, 0x66, 0x81, 0x59, 0xe6, 0x81, 0x29, 0x66, 0x82, 0x71, 0xe6, 0x82,
		0x71, 0x66, 0x83, 0x71, 0xe6, 0x83, 0x9e, 0x66, 0x84, 0xa6, 0xe6, 0x44, 0xf6, 0x76, 0xb5, 0x1d,
		0xf7, 0xb0, 0x84, 0x9b, 0xfa, 0x85, 0xb1, 0x9e, 0xf4, 0xe6, 0x77, 0xf4, 0x6e, 0x30, 0xbc, 0x18,
		0xe6, 0x1a, 0x19, 0x46, 0xe8, 0x2c, 0x69, 0xea, 0x31, 0xb6, 0xc7, 0xfd, 0xf5, 0xb4, 0x37, 0xc0,
		0x75, 0x6b, 0x03, 0xb8, 0xf2, 0xe4, 0xea, 0x6e, 0x80, 0x97, 0x61, 0x80, 0xc3, 0x00, 0x87, 0x01,
		0x0e, 0x03, 0x1c, 0x06, 0x78, 0x4e, 0x0c, 0x70, 0x5d, 0x79, 0xbd, 0xec, 0x06, 0xf5, 0xe6, 0xf7,
		0x96, 0xd0, 0x5d, 0x67, 0x9e, 0x6f, 0xd1, 0xdc, 0xd0, 0x7d, 0xc8, 0xb5, 0xee, 0xbc, 0x9f, 0x49,
		0xe6, 0x87, 0x99, 0x66, 0x88, 0x69, 0xe6, 0x88, 0xb1, 0x66, 0x89, 0xb1, 0xe6, 0x89, 0xb1, 0x66,
		0x8a, 0xde, 0xe6, 0x8a, 0xe6, 0x66, 0x4b, 0xf6, 0xd6, 0xb5, 0xe7, 0x0f, 0x97, 0x70, 0x77, 0xe8,
		0x05, 0x49, 0xad, 0x62, 0x02, 0xe6, 0x4e, 0xac, 0x84, 0x5d, 0x03, 0x6e, 0xf5, 0xd2, 0x0d, 0xfa,
		0x42, 0xfb, 0xb1, 0x4a, 0xd3, 0x2f, 0x33, 0x74, 0x98, 0x35, 0xe9, 0x5e, 0x6f, 0x8c, 0xd2, 0xcd,
		0x6e, 0xfa, 0xb3, 0xeb, 0x0f, 0x85, 0xfe, 0x66, 0xe3, 0xd2, 0x7d, 0x7f, 0x88, 0xdc, 0x4e, 0xe2,
		0x85, 0xc1, 0xb1, 0xd7, 0xf7, 0x74, 0x99, 0x16, 0xf0, 0x32, 0x8c, 0x13, 0x7d, 0x37, 0xf1, 0xbe,
		0x09, 0x2d, 0x9a, 0xe3, 0xe7, 0x48, 0xcd, 0xcd, 0x1f, 0x49, 0xf7, 0xce, 0xdc, 0x23, 0xa9, 0xe7,
		0xb4, 0x09, 0x9c, 0x52, 0x33, 0x4e, 0xe9, 0x1b, 0xdc, 0xa5, 0x8c, 0xaf, 0xab, 0x37, 0xd8, 0xbf,
		0x9c, 0x69, 0x09, 0xdb, 0x0f, 0x3b, 0xae, 0xef, 0x78, 0x41, 0x22, 0xa2, 0x9e, 0xab, 0x57, 0x43,
		0x8c, 0x5f, 0xba, 0x44, 0x2b, 0xee, 0x1d, 0x04, 0xaa, 0x8c, 0xdb, 0x04, 0x81, 0x4a, 0x28, 0xb5,
		0x20, 0x50, 0x49, 0x4f, 0x18, 0x08, 0x54, 0xe6, 0x1b, 0x07, 0x81, 0xba, 0x81, 0x9e, 0xa5, 0xa1,
		0x04, 0xea, 0x76, 0xd9, 0x20, 0x02, 0x75, 0x07, 0x04, 0xaa, 0xe4, 0x2f, 0x10, 0xa8, 0xb4, 0x37,
		0x0d, 0x02, 0x55, 0x15, 0xc6, 0x81, 0x40, 0x65, 0x38, 0x92, 0x26, 0x13, 0xa8, 0x95, 0xf2, 0x5e,
		0x65, 0xaf, 0xb6, 0x53, 0xde, 0x03, 0x6d, 0x8a, 0xb3, 0x99, 0x07, 0x03, 0xd9, 0x9c, 0xbb, 0xbc,
		0x82, 0xa3, 0xb1, 0xc6, 0xf1, 0xd1, 0x68, 0x3a, 0xeb, 0xb3, 0xef, 0x39, 0x12, 0x3d, 0x11, 0x89,
		0xa0, 0x03, 0xcb, 0x98, 0xd0, 0x9f, 0xeb, 0x46, 0x6e, 0x2f, 0x71, 0x3c, 0x91, 0xf4, 0x9c, 0x41,
		0x47, 0x38, 0xd3, 0x89, 0x03, 0x51, 0x38, 0x4c, 0xbc, 0xa0, 0x6f, 0x1b, 0x64, 0x58, 0x18, 0xc6,
		0xb1, 0x3d, 0xfa, 0xa9, 0x8f, 0x5c, 0xdb, 0xa3, 0xc4, 0x1b, 0xa6, 0x9d, 0x4d, 0xa5, 0xdd, 0xb2,
		0x07, 0x98, 0xa5, 0xdf, 0x7e, 0x71, 0x24, 0x60, 0x79, 0x6c, 0x9a, 0xe5, 0x61, 0x00, 0x83, 0xa4,
		0xc5, 0xc4, 0xf3, 0x1c, 0xab, 0xc9, 0xad, 0xad, 0x6c, 0x74, 0x75, 0xe3, 0xe2, 0x73, 0xa5, 0x7d,
		0x72, 0x7e, 0x74, 0x70, 0xd2, 0x6e, 0x9c, 0xb5, 0x3e, 0xb4, 0x1b, 0xc7, 0xbf, 0x59, 0x61, 0x64,
		0x4d, 0x7e, 0xe3, 0x9f, 0xa3, 0x7f, 0xaf, 0x2d, 0xfc, 0x3b, 0xd4, 0x28, 0xab, 0x1a, 0xd5, 0x68,
		0x3c, 0xfb, 0x66, 0x6a, 0xd0, 0x35, 0x4f, 0x0b, 0x78, 0x37, 0x82, 0xf7, 0xa3, 0xe3, 0x2c, 0xf9,
		0x17, 0xc3, 0xf0, 0x81, 0x95, 0x66, 0xab, 0x58, 0x59, 0xb6, 0x8a, 0xe5, 0x75, 0x45, 0x90, 0x78,
		0x3d, 0x4f, 0x44, 0x56, 0xc7, 0x0d, 0xac, 0x30, 0xf0, 0xef, 0x9f, 0x1a, 0xd3, 0x9d, 0x8a, 0x64,
		0xd8, 0x4b, 0x87, 0x7b, 0x4f, 0x8c, 0x3a, 0xcb, 0x8b, 0x2d, 0x37, 0xb0, 0x1a, 0x17, 0xdf, 0x2a,
		0x96, 0xdb, 0xed, 0x46, 0x22, 0x8e, 0xad, 0xbf, 0xbd, 0xe4, 0x66, 0x69, 0x99, 0xc6, 0xf1, 0xfb,
		0xaf, 0x41, 0x18, 0x8d, 0x7e, 0xb3, 0xf6, 0xab, 0xdf, 0xdc, 0x32, 0x0d, 0x7b, 0x0c, 0x85, 0x7c,
		0xcb, 0x88, 0xf9, 0xf7, 0x1b, 0xa3, 0x01, 0x96, 0xb4, 0x80, 0x21, 0x87, 0xd5, 0xa8, 0x4d, 0x7e,
		0x80, 0xf7, 0xb9, 0x69, 0xde, 0x27, 0xd2, 0x85, 0xf3, 0x66, 0x9b, 0x4d, 0x53, 0x6e, 0x07, 0xdf,
		0x2a, 0xce, 0x04, 0x9e, 0x8c, 0x4b, 0x17, 0x9e, 0xbd, 0x77, 0xa4, 0x0b, 0xcb, 0xb8, 0x4d, 0xa4,
		0x0b, 0x13, 0x4a, 0x2d, 0xd2, 0x85, 0x99, 0x8c, 0x70, 0xa4, 0x0b, 0xb3, 0xdb, 0xd9, 0x48, 0x17,
		0xde, 0x10, 0x3e, 0xc7, 0xc0, 0x74, 0x61, 0x83, 0xec, 0x84, 0x59, 0x5b, 0xa1, 0x64, 0x42, 0xdb,
		0x85, 0x0b, 0x37, 0x49, 0x44, 0x64, 0x4e, 0xd8, 0xc7, 0x7e, 0xfb, 0xa5, 0xe8, 0xec, 0x5d, 0xfd,
		0xf8, 0x52, 0x72, 0xf6, 0xae, 0xc6, 0xdf, 0x96, 0xd2, 0xff, 0x7c, 0x2f, 0x3f, 0xfc, 0x28, 0x7f,
		0x29, 0x3a, 0x95, 0xc9, 0xa7, 0xe5, 0xea, 0x97, 0xa2, 0x53, 0xbd, 0x7a, 0xf7, 0xf6, 0xeb, 0xd7,
		0xad, 0x97, 0xfe, 0xcd, 0xbb, 0xef, 0xdb, 0x0f, 0x36, 0x42, 0x8a, 0x32, 0xc4, 0xeb, 0xbc, 0xd9,
		0xf8, 0xc3, 0x38, 0x19, 0xfb, 0xd7, 0x5b, 0x2e, 0x29, 0x7b, 0xf7, 0x0f, 0x1b, 0xe4, 0x41, 0xae,
		0xd5, 0xad, 0x89, 0x49, 0x73, 0x48, 0x04, 0xa0, 0x35, 0x68, 0x56, 0x87, 0x36, 0x2f, 0xeb, 0xa7,
		0xe7, 0xad, 0x7a, 0xfb, 0xe0, 0xf8, 0xf8, 0x12, 0xc1, 0x7e, 0x5e, 0x87, 0x13, 0xc1, 0x7e, 0xc5,
		0xee, 0xe7, 0x33, 0x4e, 0x04, 0x02, 0xfa, 0x04, 0xef, 0x20, 0x57, 0x01, 0xfd, 0xb9, 0xa0, 0xde,
		0xcf, 0x63, 0x83, 0x33, 0xe1, 0xc0, 0xaf, 0xc1, 0xe3, 0x3f, 0x5f, 0xdf, 0xa7, 0xff, 0x38, 0xbe,
		0x9c, 0x1b, 0x74, 0xad, 0x48, 0xdc, 0x86, 0x89, 0x18, 0x5f, 0xf9, 0x31, 0xe2, 0x37, 0x59, 0x43,
		0xc4, 0x88, 0xd2, 0xab, 0xc1, 0x6b, 0x44, 0xe9, 0xf5, 0x82, 0x6f, 0x95, 0x27, 0x10, 0xa1, 0xf7,
		0x0d, 0xbe, 0x53, 0x84, 0xde, 0xf3, 0xba, 0x7f, 0x46, 0x84, 0xde, 0x6b, 0x06, 0x87, 0xde, 0x6b,
		0x08, 0xbd, 0x4b, 0xbd, 0x4d, 0x84, 0xde, 0x09, 0xa5, 0x16, 0xa1, 0x77, 0x26, 0xcb, 0x1a, 0xa1,
		0x77, 0x76, 0xe3, 0x19, 0xa1, 0xf7, 0x0d, 0x61, 0x5e, 0xcc, 0x0c, 0xbd, 0xd7, 0x10, 0x7a, 0x27,
		0xd2, 0xc3, 0xc6, 0x85, 0xde, 0xd3, 0x08, 0xa7, 0xeb, 0xf4, 0x0e, 0x9c, 0x0f, 0x57, 0xdf, 0x4b,
		0xef, 0x2b, 0x0f, 0xfb, 0xef, 0xbe, 0xef, 0x3c, 0x2c, 0x7e, 0xf8, 0x63, 0xd5, 0xaf, 0x95, 0xde,
		0xef, 0x3c, 0xec, 0x3f, 0xf1, 0x2f, 0xb5, 0x87, 0xfd, 0x67, 0x5e, 0xa3, 0xfa, 0xf0, 0x76, 0xe9,
		0x57, 0x47, 0x9f, 0x97, 0x9f, 0xfa, 0x83, 0xca, 0x13, 0x7f, 0xb0, 0xfd, 0xd4, 0x1f, 0x6c, 0x3f,
		0xf1, 0x07, 0x4f, 0xde, 0x52, 0xf9, 0x89, 0x3f, 0xa8, 0x3e, 0xfc, 0x58, 0xfa, 0xfd, 0xb7, 0xab,
		0x7f, 0xb5, 0xf6, 0xf0, 0xee, 0xc7, 0x53, 0xff, 0xb6, 0xf3, 0xf0, 0x63, 0xff, 0xdd, 0x3b, 0x24,
		0x23, 0x48, 0x39, 0x70, 0x26, 0x27, 0x23, 0xe0, 0xd8, 0xf1, 0x1f, 0x3b, 0x24, 0x67, 0xe4, 0xdc,
		0x20, 0x43, 0x72, 0x06, 0xf1, 0x97, 0xf1, 0xc9, 0x19, 0x35, 0x24, 0x67, 0xa8, 0xa6, 0x24, 0x90,
		0x9c, 0xa1, 0x98, 0xa0, 0x78, 0xc6, 0x89, 0x40, 0x72, 0x06, 0xc1, 0x3b, 0xc8, 0x5b, 0x72, 0x46,
		0xed, 0xe9, 0xd0, 0xb0, 0xd7, 0x5b, 0x11, 0x1a, 0xfe, 0x1a, 0x78, 0xb1, 0xf5, 0xac, 0xd0, 0x70,
		0x0d, 0xc9, 0x19, 0xfa, 0xe0, 0x35, 0x92, 0x33, 0xf4, 0x82, 0x6f, 0x95, 0x27, 0x10, 0xc9, 0x19,
		0x1b, 0x7c, 0xa7, 0x48, 0xce, 0xc8, 0xeb, 0xfe, 0xe9, 0x9c, 0x9c, 0x71, 0x3b, 0xf0, 0x63, 0xe7,
		0x3a, 0x34, 0x28, 0x25, 0x23, 0xbb, 0x63, 0x24, 0x62, 0xc8, 0xb8, 0x4d, 0x24, 0x62, 0x10, 0xca,
		0x2a, 0x12, 0x31, 0x98, 0xac, 0x68, 0x24, 0x62, 0xb0, 0x1b, 0xca, 0x48, 0xc4, 0xd8, 0x10, 0x96,
		0xc5, 0xc0, 0x44, 0x8c, 0xeb, 0x30, 0xf4, 0x85, 0x1b, 0x98, 0x94, 0x83, 0x51, 0x82, 0x88, 0xae,
		0xb1, 0x8b, 0x08, 0x4d, 0x11, 0x7f, 0x99, 0x1d, 0x9a, 0x3a, 0xbd, 0x38, 0x69, 0xb6, 0x9b, 0x68,
		0x0b, 0xce, 0x6d, 0x96, 0x21, 0x18, 0xa5, 0xd8, 0x48, 0x5b, 0x79, 0x06, 0x10, 0x7e, 0x22, 0xd8,
		0xf5, 0x5c, 0x84, 0x9f, 0x5a, 0x37, 0xc2, 0x1a, 0xc9, 0x89, 0x75, 0x18, 0x36, 0xad, 0x6b, 0x2f,
		0x79, 0x66, 0x55, 0xe2, 0xa4, 0x77, 0xf0, 0xb8, 0x59, 0x70, 0xfa, 0xf7, 0xbe, 0x7b, 0x2d, 0x7c,
		0x84, 0x94, 0xd4, 0xa0, 0x2e, 0x42, 0x4a, 0x7a, 0x81, 0xb0, 0xec, 0x53, 0x85, 0x30, 0xd1, 0x06,
		0xdf, 0x29, 0xc2, 0x44, 0x79, 0xdd, 0x3f, 0xed, 0xc3, 0x44, 0x49, 0xc7, 0xb0, 0x28, 0x51, 0xd2,
		0x41, 0x90, 0x48, 0xca, 0x6d, 0x22, 0x48, 0x44, 0x28, 0xaa, 0x08, 0x12, 0x31, 0xd9, 0xc5, 0x08,
		0x12, 0xb1, 0x9b, 0xbe, 0x08, 0x12, 0x6d, 0x08, 0x17, 0x62, 0x60, 0x90, 0x68, 0xe8, 0x05, 0xc9,
		0xae, 0x41, 0x21, 0xa2, 0xaa, 0x01, 0xb7, 0x7a, 0xe9, 0x06, 0x7d, 0x0c, 0x0f, 0x27, 0xd8, 0xd8,
		0x53, 0xcf, 0x40, 0x5a, 0xf1, 0xb3, 0xeb, 0x0f, 0x85, 0xfe, 0x56, 0xe3, 0xd2, 0x7d, 0x7f, 0x88,
		0xdc, 0x4e, 0xe2, 0x85, 0xc1, 0xb1, 0xd7, 0xf7, 0x92, 0xd8, 0xc0, 0x07, 0x38, 0x13, 0x7d, 0x37,
		0xf1, 0xbe, 0x8d, 0xf6, 0xbe, 0xe7, 0xfa, 0xb1, 0x00, 0xe3, 0x4f, 0x71, 0x24, 0xdd, 0x3b, 0x73,
		0x8f, 0xe4, 0x0e, 0x8e, 0x24, 0x8e, 0x64, 0x0e, 0xcc, 0x62, 0x73, 0xee, 0x12, 0xb5, 0xe7, 0xeb,
		0x1c, 0x1f, 0x24, 0xf8, 0xc0, 0x16, 0x5e, 0x74, 0xe0, 0x90, 0xe0, 0xa3, 0xc8, 0x1f, 0x45, 0x82,
		0x8f, 0xd2, 0x07, 0x40, 0x82, 0x8f, 0x8a, 0x5d, 0xcf, 0x57, 0x82, 0x4f, 0xeb, 0xc8, 0xba, 0xf6,
		0x92, 0xf8, 0xf9, 0xa9, 0x08, 0xde, 0x2d, 0x12, 0x7c, 0x74, 0x41, 0x5d, 0x24, 0xf8, 0xe8, 0x05,
		0xc2, 0xb2, 0x4f, 0x15, 0x12, 0x7c, 0xe0, 0xc9, 0xc2, 0x93, 0xcd, 0xdd, 0xfe, 0xe9, 0x9f, 0xe0,
		0x93, 0xf8, 0xa6, 0x65, 0xf8, 0x24, 0x3e, 0x52, 0x7c, 0xa4, 0xdc, 0x26, 0x52, 0x7c, 0x08, 0x65,
		0x15, 0x29, 0x3e, 0x4c, 0x96, 0x31, 0x52, 0x7c, 0xd8, 0x8d, 0x5f, 0xa4, 0xf8, 0x6c, 0x08, 0x1b,
		0x82, 0x14, 0x1f, 0x72, 0x23, 0x01, 0x29, 0x3e, 0xb2, 0xbf, 0x90, 0xe2, 0x43, 0x7b, 0xd3, 0x48,
		0xf1, 0x51, 0x05, 0x71, 0x48, 0xf1, 0x61, 0x38, 0x92, 0x26, 0xa7, 0xf8, 0x94, 0xab, 0x55, 0x1c,
		0x4a, 0x1c, 0xca, 0x1c, 0x18, 0xc6, 0xe6, 0xdc, 0x25, 0x92, 0x7c, 0xd6, 0x39, 0x3e, 0x48, 0xf2,
		0x81, 0x35, 0xbc, 0xe8, 0xc2, 0x21, 0xc9, 0x47, 0x91, 0x47, 0x8a, 0x24, 0x1f, 0xa5, 0x0f, 0x80,
		0x24, 0x1f, 0x15, 0xbb, 0x9e, 0xb3, 0x24, 0x9f, 0xd6, 0xc9, 0x7c, 0x2a, 0x82, 0x48, 0x96, 0x92,
		0x10, 0xac, 0x49, 0x93, 0x91, 0xaf, 0x01, 0x52, 0x7b, 0x34, 0xc0, 0x5a, 0xa4, 0xf6, 0xe8, 0x05,
		0xbd, 0x72, 0xce, 0x12, 0x12, 0x7a, 0xe0, 0xb5, 0xc2, 0x6b, 0xcd, 0xdd, 0xfe, 0xe9, 0x9c, 0xd0,
		0x33, 0x1e, 0x36, 0xe3, 0x78, 0x83, 0x6f, 0x95, 0x6c, 0x24, 0xb5, 0x31, 0xb9, 0x3d, 0xab, 0x6e,
		0x1e, 0x69, 0x3e, 0x32, 0x6e, 0x13, 0x69, 0x3e, 0x84, 0x62, 0x8b, 0x34, 0x1f, 0x26, 0x2b, 0x19,
		0x69, 0x3e, 0xec, 0x86, 0x30, 0xd2, 0x7c, 0x36, 0x84, 0x0f, 0x31, 0x30, 0xcd, 0xc7, 0x20, 0x3b,
		0x61, 0xd6, 0x56, 0x28, 0xed, 0x1a, 0x70, 0xaf, 0x17, 0x6e, 0x92, 0x88, 0xc8, 0x9c, 0x10, 0x87,
		0x9d, 0x4e, 0xc0, 0xbf, 0xfa, 0xf1, 0xa5, 0xe4, 0xec, 0x5d, 0x8d, 0xbf, 0x2d, 0xa5, 0xff, 0xf9,
		0x5e, 0x7e, 0xf8, 0x51, 0xfe, 0x52, 0x74, 0x2a, 0x93, 0x4f, 0xcb, 0xd5, 0x2f, 0x45, 0xa7, 0x7a,
		0xf5, 0xee, 0xed, 0xd7, 0xaf, 0x5b, 0x2f, 0xfd, 0x9b, 0x77, 0xdf, 0xb7, 0x1f, 0x0c, 0x98, 0x76,
		0x6f, 0x82, 0x78, 0x9d, 0x37, 0x1b, 0x7f, 0x18, 0x27, 0x63, 0xff, 0x7a, 0xcb, 0x25, 0x65, 0xef,
		0xfe, 0x61, 0x83, 0x3e, 0xc8, 0xb5, 0xba, 0x45, 0xd0, 0x9b, 0xf8, 0xcb, 0xec, 0xa0, 0x77, 0xe3,
		0xe2, 0x73, 0xa5, 0x7d, 0x76, 0x7e, 0x3c, 0x9e, 0x1d, 0x5f, 0x6f, 0x36, 0x7f, 0xb3, 0xc2, 0xc8,
		0x9a, 0xfc, 0xc2, 0x3f, 0x7f, 0xdb, 0xda, 0x2a, 0xa4, 0xbf, 0x31, 0xf9, 0xc7, 0x76, 0xe3, 0xec,
		0xb8, 0xfe, 0xc7, 0x6f, 0xb3, 0xbf, 0x91, 0xfe, 0xf3, 0x78, 0x08, 0x7d, 0xe3, 0xac, 0xf5, 0xa1,
		0xdd, 0x38, 0x9e, 0xbf, 0xc2, 0xcc, 0xbf, 0xcf, 0x0d, 0xa9, 0x47, 0x8c, 0x9d, 0xd3, 0xa3, 0x45,
		0x8c, 0x5d, 0xb1, 0x7f, 0xab, 0xc3, 0x91, 0x43, 0x48, 0x9f, 0xe0, 0x25, 0xe7, 0x22, 0xa4, 0x7f,
		0x10, 0x58, 0x8d, 0x8b, 0x6f, 0x95, 0x95, 0x03, 0xe9, 0xdd, 0x38, 0x0e, 0x3b, 0x9e, 0x9b, 0x88,
		0xae, 0xf5, 0xb7, 0x97, 0xdc, 0xcc, 0x05, 0x24, 0x45, 0x90, 0x44, 0xf7, 0x5f, 0x83, 0x2c, 0x50,
		0x99, 0x8a, 0x78, 0xd8, 0x4b, 0xbf, 0x6f, 0x36, 0x8e, 0xd3, 0xde, 0x03, 0x56, 0x10, 0x76, 0xb3,
		0x31, 0xf4, 0xef, 0x47, 0x82, 0xea, 0x06, 0x73, 0xe3, 0xef, 0xbf, 0x06, 0xe9, 0x75, 0xdd, 0xc0,
		0xf2, 0x82, 0xae, 0xb8, 0x43, 0x6a, 0x80, 0x1a, 0x15, 0x81, 0xd4, 0x00, 0xbd, 0x34, 0x86, 0x5e,
		0x67, 0x12, 0x29, 0x06, 0x1b, 0x7c, 0xa7, 0x48, 0x31, 0xc8, 0xeb, 0xfe, 0x99, 0x91, 0x62, 0x50,
		0x33, 0x39, 0xc5, 0xa0, 0x86, 0x14, 0x03, 0xa9, 0xb7, 0x89, 0x14, 0x03, 0x42, 0xb1, 0x45, 0x8a,
		0x01, 0x93, 0xb5, 0x8d, 0x14, 0x03, 0x76, 0x83, 0x1a, 0x29, 0x06, 0x1b, 0xc2, 0xcf, 0x98, 0x99,
		0x62, 0x50, 0x43, 0x8a, 0x01, 0x91, 0x1e, 0x36, 0x2e, 0xc5, 0x20, 0x8d, 0xe4, 0xba, 0x4e, 0xef,
		0xc0, 0xf9, 0x70, 0xf5, 0xbd, 0xf4, 0xbe, 0xf2, 0xb0, 0xff, 0xee, 0xfb, 0xce, 0xc3, 0xe2, 0x87,
		0x3f, 0x56, 0xfd, 0x5a, 0xe9, 0xfd, 0xce, 0xc3, 0xfe, 0x13, 0xff, 0x52, 0x7b, 0xd8, 0x7f, 0xe6,
		0x35, 0xaa, 0x0f, 0x6f, 0x97, 0x7e, 0x75, 0xf4, 0x79, 0xf9, 0xa9, 0x3f, 0xa8, 0x3c, 0xf1, 0x07,
		0xdb, 0x4f, 0xfd, 0xc1, 0xf6, 0x13, 0x7f, 0xf0, 0xe4, 0x2d, 0x95, 0x9f, 0xf8, 0x83, 0xea, 0xc3,
		0x8f, 0xa5, 0xdf, 0x7f, 0xbb, 0xfa, 0x57, 0x6b, 0x0f, 0xef, 0x7e, 0x3c, 0xf5, 0x6f, 0x3b, 0x0f,
		0x3f, 0xf6, 0xdf, 0xbd, 0x43, 0xd2, 0x85, 0x94, 0x03, 0x67, 0x72, 0xd2, 0x05, 0x8e, 0x1d, 0xff,
		0xb1, 0x43, 0x12, 0x4a, 0xce, 0x0d, 0x32, 0x24, 0xa1, 0x10, 0x7f, 0x19, 0x9f, 0x84, 0x52, 0xfb,
		0x49, 0x44, 0x3c, 0xfd, 0xe7, 0x9f, 0x86, 0xc3, 0x6b, 0xbf, 0x08, 0x87, 0xd7, 0x90, 0x81, 0xa2,
		0x9a, 0xf0, 0x40, 0x06, 0x8a, 0x62, 0xfa, 0x43, 0xf9, 0x79, 0x43, 0xfa, 0x09, 0xc1, 0x1b, 0xce,
		0x51, 0xfa, 0x49, 0x6d, 0x65, 0xa8, 0x7b, 0x66, 0xbe, 0x45, 0x1a, 0x91, 0x46, 0xee, 0x49, 0x0e,
		0x14, 0x83, 0x85, 0xdc, 0x13, 0xad, 0x75, 0x85, 0x46, 0x07, 0x12, 0x89, 0x27, 0x1b, 0x7c, 0xa7,
		0x48, 0x3c, 0xc9, 0xeb, 0xfe, 0xe9, 0x9c, 0x78, 0x12, 0x7b, 0x5d, 0x73, 0x12, 0x4d, 0x46, 0x37,
		0x8b, 0xc4, 0x12, 0x19, 0xb7, 0x89, 0xc4, 0x12, 0x42, 0x31, 0x45, 0x62, 0x09, 0x93, 0x29, 0x8d,
		0xc4, 0x12, 0x76, 0x6b, 0x19, 0x89, 0x25, 0x1b, 0xc2, 0xbc, 0x18, 0x98, 0x58, 0x12, 0x47, 0x4e,
		0xec, 0x75, 0x9d, 0x91, 0x2f, 0x66, 0x52, 0x5e, 0xc9, 0x9e, 0x01, 0xf7, 0x3a, 0x11, 0x06, 0x04,
		0x88, 0x88, 0x44, 0x37, 0x9d, 0xc0, 0x98, 0x76, 0xb8, 0x34, 0x29, 0x54, 0x63, 0x90, 0x04, 0x9b,
		0x29, 0xc9, 0xe6, 0x49, 0xf4, 0x92, 0x64, 0x0f, 0xbd, 0x20, 0xd9, 0x2e, 0x9b, 0xc8, 0x74, 0x4e,
		0xa4, 0x7b, 0xc7, 0xc0, 0x5b, 0x37, 0x6b, 0xb0, 0x98, 0xf9, 0xd2, 0x9e, 0x6d, 0xbc, 0x89, 0x83,
		0xc7, 0x96, 0x1e, 0x62, 0x3a, 0xf5, 0xa8, 0x54, 0x7b, 0x6f, 0xf6, 0x83, 0x98, 0x3e, 0x04, 0x69,
		0x19, 0x54, 0x4d, 0x1d, 0x8a, 0x64, 0x98, 0xf3, 0xf3, 0xf3, 0x33, 0x6e, 0xe0, 0x24, 0xb3, 0xa7,
		0xcf, 0x78, 0xb1, 0xb2, 0x5b, 0xdd, 0xa9, 0xe2, 0xa0, 0xe3, 0xa0, 0xd3, 0x1c, 0xf4, 0x37, 0xb8,
		0x6b, 0x8e, 0xaf, 0xab, 0x37, 0x80, 0x7f, 0x18, 0xa4, 0xcb, 0xee, 0x97, 0x08, 0x86, 0xb7, 0x22,
		0x72, 0x4d, 0xcd, 0x36, 0x99, 0x32, 0x0c, 0x15, 0x03, 0xef, 0xbd, 0x1e, 0x0c, 0x6f, 0x8d, 0x35,
		0x14, 0xec, 0x56, 0xd8, 0x4c, 0x22, 0x2f, 0xe8, 0x1b, 0x6d, 0xea, 0xd8, 0xc5, 0xd1, 0x19, 0x48,
		0x7b, 0x84, 0xd5, 0xff, 0xb8, 0x38, 0x69, 0x1c, 0x35, 0x5a, 0xed, 0xb3, 0x4f, 0x27, 0x27, 0xb6,
		0xc1, 0xe6, 0x67, 0x69, 0xf4, 0x48, 0x97, 0xe7, 0x9f, 0x5a, 0xf5, 0xcb, 0xf6, 0xc1, 0x49, 0xfd,
		0xb2, 0x65, 0xf2, 0xc3, 0x94, 0x27, 0xef, 0xa7, 0x96, 0x9f, 0xf7, 0xb3, 0x9d, 0x3e, 0xd2, 0x69,
		0x4e, 0x9e, 0x66, 0x67, 0xf4, 0x34, 0xf5, 0xb3, 0xd6, 0xe5, 0xf9, 0xc5, 0x9f, 0xed, 0x93, 0x83,
		0xc3, 0xfa, 0x49, 0xbb, 0x71, 0x76, 0xdc, 0x38, 0x3a, 0x68, 0x9d, 0x5f, 0x9a, 0xfc, 0x5c, 0xbb,
		0xa3, 0xe7, 0x3a, 0x3b, 0x1f, 0x3f, 0x92, 0xfd, 0x06, 0x3e, 0x34, 0xa7, 0x66, 0x69, 0xa4, 0xb1,
		0x64, 0x83, 0xd5, 0xca, 0x53, 0x07, 0xc2, 0x48, 0xb6, 0x38, 0x7b, 0xaa, 0x79, 0xd0, 0xda, 0xb7,
		0xb6, 0x4d, 0x7e, 0x96, 0x65, 0x9d, 0x6f, 0x34, 0x2b, 0xb0, 0x4a, 0x49, 0xee, 0x5b, 0x65, 0x83,
		0x1f, 0x28, 0x03, 0xdf, 0x7d, 0x6b, 0xd7, 0xe0, 0xc7, 0x98, 0xb3, 0xc4, 0xf6, 0xad, 0x12, 0xf8,
		0x0e, 0xdc, 0xb1, 0xc1, 0x77, 0x6b, 0x06, 0x8f, 0x64, 0x88, 0xe9, 0x63, 0x60, 0x22, 0x8a, 0x61,
		0xcd, 0x79, 0xb2, 0xfb, 0x37, 0xa8, 0x49, 0x4f, 0x76, 0xcf, 0xa6, 0xb5, 0x0d, 0xc9, 0x6e, 0x1c,
		0xdd, 0x43, 0xd0, 0xb4, 0xe7, 0x97, 0x8a, 0xc4, 0xa4, 0x83, 0x68, 0x62, 0x13, 0x9f, 0xec, 0xee,
		0xd1, 0xcc, 0x07, 0xcd, 0x7c, 0x72, 0x63, 0xd8, 0xa1, 0x08, 0x32, 0xa7, 0xfb, 0xa7, 0x73, 0x11,
		0x64, 0x62, 0x42, 0xa9, 0x43, 0x66, 0xa2, 0x1b, 0x50, 0xdf, 0x80, 0x32, 0x48, 0xd9, 0x16, 0x0a,
		0xca, 0x20, 0x89, 0xef, 0x1a, 0x65, 0x90, 0x4c, 0x37, 0x8e, 0x32, 0x48, 0xd8, 0x04, 0xe6, 0x50,
		0x79, 0x06, 0x96, 0x41, 0x9a, 0x95, 0xf2, 0x65, 0x52, 0x8a, 0x97, 0x59, 0x29, 0x5d, 0x66, 0xa6,
		0x70, 0x8d, 0xf3, 0x9b, 0x4e, 0x2f, 0x4e, 0x9a, 0xed, 0x66, 0xe3, 0xd8, 0x24, 0x0a, 0xfa, 0x31,
		0x97, 0xc9, 0xb0, 0x1b, 0xdf, 0xce, 0x92, 0xe4, 0x66, 0xfb, 0x24, 0x9a, 0xf4, 0x04, 0x95, 0x6c,
		0xeb, 0x4d, 0x7d, 0x82, 0x6a, 0xf6, 0x0e, 0xe6, 0xba, 0x4d, 0x9a, 0xf4, 0x08, 0xb5, 0x85, 0x47,
		0x98, 0x69, 0x88, 0x69, 0xd2, 0x63, 0xec, 0x64, 0xb2, 0x64, 0xec, 0x9b, 0xd8, 0x5d, 0x78, 0x84,
		0xd9, 0x37, 0x81, 0xf8, 0xae, 0x54, 0x0d, 0x6b, 0x5a, 0x2a, 0xdb, 0x2a, 0x8c, 0xd9, 0xb7, 0x0c,
		0xaa, 0xff, 0x7a, 0x0a, 0x61, 0xf6, 0xad, 0x9a, 0x69, 0x0f, 0x31, 0xa7, 0xab, 0x8c, 0x4a, 0xb7,
		0x5b, 0x85, 0x8f, 0x46, 0xe5, 0x3e, 0x3e, 0x85, 0x8e, 0x46, 0xe5, 0xa2, 0xad, 0xb0, 0x78, 0xf6,
		0xad, 0x8a, 0x69, 0xf7, 0xdf, 0x4c, 0x65, 0xc7, 0xa0, 0x4c, 0xc6, 0x47, 0xe7, 0xc4, 0x94, 0x74,
		0xbf, 0x07, 0x70, 0x54, 0x39, 0xbd, 0x3b, 0x3d, 0xef, 0x4c, 0x53, 0xf3, 0xcd, 0x3e, 0x08, 0x82,
		0x30, 0x71, 0xb5, 0xef, 0x1f, 0x6f, 0xc7, 0x9d, 0x1b, 0x71, 0xeb, 0x0e, 0xdc, 0xe4, 0x66, 0x64,
		0xc8, 0x17, 0xc2, 0x81, 0x08, 0x3a, 0x69, 0xa4, 0xca, 0x09, 0x44, 0xf2, 0x77, 0x18, 0xfd, 0xe5,
		0x78, 0x41, 0x9c, 0xb8, 0x41, 0x47, 0x14, 0x16, 0x3f, 0x88, 0x97, 0x3e, 0x29, 0x0c, 0xa2, 0x30,
		0x09, 0x3b, 0xa1, 0x1f, 0x67, 0xdf, 0x15, 0xae, 0xfb, 0x83, 0x42, 0xe4, 0x5d, 0x17, 0xdc, 0x24,
		0x89, 0x9c, 0x58, 0x24, 0x71, 0xf6, 0x5d, 0x21, 0x19, 0x06, 0x81, 0xf0, 0x1d, 0x11, 0x74, 0xdc,
		0x41, 0x3c, 0xf4, 0xd3, 0xdd, 0x9a, 0x7c, 0x18, 0x4f, 0xfe, 0x5b, 0x88, 0x87, 0xd7, 0x89, 0xff,
		0x2d, 0x9e, 0xfc, 0xb7, 0x30, 0x69, 0x8a, 0xed, 0xf8, 0x5e, 0x9c, 0xc4, 0x73, 0x3f, 0x4d, 0x7f,
		0xc8, 0x3e, 0x2d, 0xc4, 0x89, 0x9b, 0xe8, 0x1c, 0xbd, 0xb4, 0xe3, 0x24, 0x1a, 0x76, 0x92, 0x60,
		0xc2, 0xa5, 0x9e, 0x67, 0x5b, 0x7f, 0x36, 0xde, 0xd6, 0xc6, 0x64, 0x57, 0xdb, 0x0b, 0x3f, 0xc7,
		0x8b, 0x1f, 0xb4, 0x2f, 0xa6, 0xdb, 0x9e, 0x7d, 0xd7, 0x3e, 0xec, 0x0f, 0xda, 0x97, 0xde, 0x75,
		0xfb, 0x20, 0x49, 0xa2, 0xa6, 0x48, 0xe2, 0xe9, 0x37, 0xed, 0x56, 0xba, 0xaf, 0xf5, 0xd9, 0x3d,
		0x9f, 0x7c, 0x16, 0x4f, 0xfe, 0xdb, 0x6e, 0x8e, 0xf7, 0x7c, 0xf2, 0xdf, 0x76, 0x73, 0xbc, 0x9f,
		0x27, 0xa3, 0x2d, 0x9f, 0xfd, 0x61, 0xfa, 0x7d, 0xf6, 0x61, 0xbb, 0x99, 0xee, 0xf8, 0x1b, 0xa0,
		0x97, 0x79, 0x77, 0xa4, 0x19, 0x8e, 0xda, 0xbf, 0x8b, 0xfb, 0x34, 0x47, 0x38, 0xe8, 0x0a, 0xdd,
		0xc2, 0x8d, 0xf6, 0x48, 0xf8, 0x47, 0xc7, 0x49, 0x4b, 0x64, 0xb7, 0x4f, 0xbd, 0xa0, 0xee, 0x8b,
		0xf4, 0x60, 0xea, 0x99, 0x6d, 0x60, 0x9f, 0xba, 0x77, 0x33, 0x77, 0x58, 0xda, 0xad, 0x54, 0x6a,
		0x3b, 0x95, 0x4a, 0x71, 0x67, 0x7b, 0xa7, 0xb8, 0x57, 0xad, 0x96, 0x6a, 0x25, 0x0d, 0x39, 0x02,
		0xfb, 0x3c, 0xea, 0x8a, 0x48, 0x74, 0x0f, 0x47, 0x62, 0x19, 0x0c, 0x7d, 0x5f, 0xe7, 0x5b, 0xfc,
		0x14, 0x8b, 0x48, 0xcb, 0x76, 0x2e, 0xba, 0xa1, 0x8c, 0xe6, 0x56, 0x5a, 0x8e, 0xad, 0x33, 0x0d,
		0xed, 0xb2, 0xdc, 0xd9, 0x63, 0x7a, 0x59, 0x62, 0xfa, 0xd8, 0x3b, 0x7a, 0xdc, 0x89, 0x26, 0x58,
		0xa8, 0x2b, 0x06, 0xe6, 0x10, 0xfb, 0x34, 0xc2, 0xbc, 0xdc, 0x60, 0x9d, 0x1e, 0x18, 0xa7, 0x1e,
		0x51, 0x34, 0x40, 0x13, 0x7b, 0x4c, 0xb8, 0xe8, 0x02, 0x22, 0x8f, 0xbd, 0xfa, 0x35, 0xe2, 0x81,
		0xb2, 0x14, 0x34, 0x4d, 0x6e, 0x27, 0xcb, 0x4a, 0xd7, 0x24, 0x28, 0xa2, 0x63, 0xf6, 0xb9, 0xde,
		0x59, 0xe6, 0xba, 0x66, 0x93, 0x6b, 0x9f, 0x35, 0xae, 0x7d, 0x76, 0xb8, 0xf6, 0x59, 0xe0, 0xb0,
		0xa3, 0x67, 0xdf, 0xd6, 0xb1, 0xa7, 0x17, 0x21, 0x68, 0x4f, 0x6d, 0x5f, 0x47, 0xc3, 0xb9, 0x7b,
		0x8f, 0x4d, 0x20, 0x66, 0x6e, 0x52, 0x37, 0x0a, 0x5a, 0xcb, 0xc2, 0x32, 0x6d, 0x0b, 0xc9, 0x74,
		0x2e, 0x1c, 0x33, 0xa3, 0x50, 0x4c, 0xf7, 0xc2, 0x30, 0x63, 0x0a, 0xc1, 0x8c, 0x29, 0xfc, 0x32,
		0xa6, 0xd0, 0x0b, 0xc1, 0xca, 0x9f, 0xbd, 0x45, 0x6d, 0x0b, 0xb7, 0xe6, 0x46, 0x23, 0xd5, 0x2a,
		0x3a, 0x62, 0xde, 0x44, 0xcb, 0x6a, 0x98, 0x0b, 0xa9, 0xf9, 0x68, 0x23, 0x8d, 0x93, 0x8a, 0x4c,
		0x18, 0x4d, 0x94, 0x8d, 0x25, 0xd1, 0xbd, 0x1e, 0xdf, 0xb4, 0x81, 0x23, 0xe6, 0x0c, 0x14, 0xd1,
		0xb9, 0x4f, 0x88, 0x09, 0x93, 0x7f, 0x1e, 0x27, 0xfb, 0x18, 0x91, 0xc2, 0x81, 0x53, 0xb5, 0x81,
		0xa6, 0xa2, 0xbe, 0x77, 0x75, 0x85, 0xe8, 0xbc, 0xee, 0xa8, 0x6c, 0xff, 0x2d, 0xbc, 0xfe, 0x4d,
		0xa2, 0x2f, 0x7b, 0x36, 0xb9, 0x3f, 0x10, 0x67, 0xcf, 0xb9, 0x2d, 0x10, 0x67, 0x6b, 0x48, 0x1a,
		0x88, 0xb3, 0xb5, 0x4e, 0x04, 0x88, 0x33, 0xc9, 0x37, 0x0a, 0xe2, 0x2c, 0x07, 0x1e, 0x8f, 0x21,
		0xc4, 0x99, 0x96, 0x33, 0xc5, 0x35, 0x9e, 0x19, 0x0e, 0xe2, 0xec, 0xd5, 0x5e, 0x3f, 0x88, 0x33,
		0xb8, 0xf8, 0x20, 0xce, 0xd6, 0x3a, 0x42, 0x26, 0x11, 0x67, 0x95, 0xf2, 0x5e, 0x65, 0xaf, 0xb6,
		0x53, 0xde, 0x03, 0x5d, 0xb6, 0xb1, 0x67, 0x09, 0x74, 0xd9, 0xb3, 0xbe, 0x40, 0x97, 0xe9, 0x7c,
		0x27, 0x28, 0x66, 0xf9, 0xf9, 0x7d, 0xe5, 0xa8, 0x98, 0x45, 0xb3, 0xae, 0x0a, 0xe6, 0x57, 0xb2,
		0xe8, 0xd3, 0x34, 0x41, 0x83, 0x32, 0x96, 0x37, 0x1b, 0x8c, 0x62, 0x8f, 0x4d, 0x0f, 0x74, 0xc9,
		0x89, 0xd5, 0xab, 0xd5, 0x81, 0x7e, 0xad, 0x0d, 0x8c, 0x68, 0x65, 0xa0, 0x61, 0xeb, 0x02, 0x0d,
		0x5b, 0x15, 0xa8, 0x3e, 0xfb, 0x9a, 0x59, 0x2e, 0xf9, 0xb1, 0x58, 0x6c, 0x2d, 0x2a, 0x23, 0x8d,
		0xb6, 0x51, 0xd4, 0x5a, 0x27, 0xea, 0x6c, 0x02, 0x35, 0x2b, 0x2b, 0x42, 0x22, 0x5b, 0xdc, 0x25,
		0x91, 0xeb, 0x0c, 0x47, 0xa2, 0x76, 0xed, 0xab, 0x0d, 0xcb, 0xd8, 0x7f, 0xdf, 0x08, 0xf5, 0xe3,
		0x11, 0x35, 0x40, 0xe1, 0x69, 0x18, 0x6a, 0x6b, 0x6b, 0xec, 0x78, 0x15, 0x92, 0xfb, 0x81, 0xb0,
		0xfe, 0x69, 0xfd, 0x16, 0x76, 0x9c, 0xeb, 0xfe, 0x20, 0x4a, 0xf6, 0x9b, 0x97, 0xad, 0x7a, 0xbb,
		0x59, 0xff, 0x78, 0x5a, 0x3f, 0x6b, 0xb5, 0x4f, 0x1a, 0xcd, 0xd6, 0x6f, 0x3a, 0x00, 0x9e, 0x66,
		0x01, 0xf9, 0xd9, 0x00, 0x7c, 0x2a, 0x5a, 0x9a, 0xd0, 0x15, 0xba, 0x86, 0xdb, 0xe7, 0xc2, 0xeb,
		0x2f, 0x92, 0x3d, 0x34, 0x42, 0xb0, 0x2c, 0xfb, 0x58, 0xc4, 0x9d, 0xc8, 0x1b, 0x68, 0x45, 0x43,
		0x65, 0x50, 0x72, 0x1e, 0xf8, 0xf7, 0x96, 0xeb, 0xfb, 0xe1, 0xdf, 0x56, 0x72, 0x23, 0xac, 0x89,
		0xa9, 0x64, 0xa5, 0x86, 0x93, 0x95, 0x84, 0xd6, 0xb5, 0xb0, 0xe2, 0x81, 0xe8, 0x78, 0x3d, 0x4f,
		0x74, 0xad, 0xd1, 0x61, 0x19, 0xff, 0xda, 0xf0, 0xda, 0x69, 0x9d, 0x7c, 0xfe, 0x1a, 0x78, 0xb1,
		0x15, 0xf6, 0xd2, 0x8f, 0x22, 0xe1, 0x8b, 0x6f, 0x6e, 0x90, 0x58, 0x23, 0xb9, 0xd8, 0xd2, 0xe5,
		0x48, 0x69, 0x98, 0x0a, 0x34, 0x8b, 0x3e, 0xdd, 0x19, 0xd1, 0xd0, 0x88, 0x44, 0xd3, 0x39, 0xef,
		0x67, 0x0e, 0x8c, 0xa8, 0xa4, 0x17, 0xfc, 0x9b, 0x0e, 0xfc, 0x9b, 0xb2, 0xd5, 0xaf, 0x36, 0xca,
		0xd2, 0xd7, 0x84, 0x6b, 0x30, 0x9a, 0x63, 0x50, 0x88, 0xde, 0x26, 0xd2, 0x09, 0x6a, 0x00, 0x96,
		0x1f, 0x50, 0x14, 0x1c, 0x69, 0xc5, 0x7d, 0xb7, 0xb4, 0xe8, 0xb3, 0xa5, 0xb8, 0xaf, 0x96, 0xf2,
		0x3e, 0x5a, 0x3a, 0xd4, 0x10, 0xe8, 0x55, 0x2b, 0xa0, 0x8b, 0x23, 0xa0, 0x5d, 0xee, 0xbf, 0x76,
		0xb6, 0xbe, 0x76, 0xb9, 0xfc, 0x9b, 0x45, 0xfb, 0xaa, 0xee, 0x5b, 0x65, 0x5f, 0x7b, 0x41, 0xd7,
		0x0b, 0xfa, 0x4e, 0xac, 0x41, 0x9f, 0xaa, 0x0c, 0xc3, 0x66, 0x6f, 0x4a, 0x75, 0x56, 0x80, 0x16,
		0xe5, 0x74, 0xda, 0x94, 0xcf, 0xe9, 0x54, 0x2e, 0xa7, 0x67, 0x79, 0x9c, 0xce, 0xec, 0xbb, 0x56,
		0xe5, 0x6f, 0x66, 0xf0, 0xef, 0x3a, 0x95, 0xb7, 0x6d, 0x76, 0x7e, 0x96, 0x36, 0xe5, 0x6a, 0x8f,
		0x3e, 0x57, 0x34, 0xd2, 0x50, 0x4e, 0x32, 0xba, 0x31, 0x0d, 0x80, 0x67, 0xea, 0x85, 0xed, 0x69,
		0x70, 0x2f, 0x93, 0x97, 0xa5, 0x47, 0x0d, 0x9a, 0x86, 0xdd, 0x8c, 0x6f, 0x07, 0x7e, 0xec, 0xf8,
		0xee, 0xb5, 0xf0, 0x75, 0x0a, 0x44, 0x68, 0x24, 0x41, 0x7a, 0x4a, 0x92, 0x7e, 0x12, 0xb5, 0x24,
		0x59, 0xa8, 0x99, 0x7d, 0xc5, 0xad, 0xa1, 0x66, 0xf6, 0x95, 0x1b, 0x67, 0x54, 0xcd, 0x6c, 0xa9,
		0x86, 0x42, 0x3f, 0xc9, 0xa0, 0x83, 0xa2, 0x59, 0x09, 0x67, 0xc8, 0xa8, 0x6e, 0x73, 0xc5, 0xca,
		0x6e, 0x75, 0x07, 0x15, 0xb3, 0x1b, 0x7b, 0x90, 0x50, 0x31, 0xfb, 0xac, 0xaf, 0x2b, 0xb4, 0x9e,
		0x31, 0xd2, 0x7c, 0x16, 0xc1, 0xf0, 0x56, 0x44, 0xae, 0x66, 0x29, 0x62, 0x4b, 0x1e, 0x5a, 0x45,
		0xc3, 0x7b, 0xab, 0x07, 0xc3, 0x5b, 0x7d, 0xbb, 0x80, 0xb5, 0xc2, 0x66, 0x12, 0x79, 0x41, 0x5f,
		0xef, 0x89, 0xf0, 0xc5, 0x91, 0x0c, 0x36, 0x2e, 0x3e, 0x57, 0xda, 0xf5, 0x3f, 0x2e, 0x4e, 0x1a,
		0x47, 0x8d, 0x56, 0xfb, 0xec, 0xd3, 0xc9, 0x89, 0xce, 0x83, 0xd4, 0x4b, 0xa3, 0x5b, 0xbe, 0x3c,
		0xff, 0xd4, 0xaa, 0x5f, 0xb6, 0x0f, 0x4e, 0xea, 0x97, 0x2d, 0x9d, 0x6f, 0xb6, 0x3c, 0xd9, 0xdf,
		0x9a, 0x39, 0xfb, 0xbb, 0x9d, 0xde, 0xf2, 0xa9, 0x21, 0x77, 0xbb, 0x33, 0xba, 0xdb, 0xfa, 0x59,
		0xeb, 0xf2, 0xfc, 0xe2, 0xcf, 0xf6, 0xc9, 0xc1, 0x61, 0xfd, 0xa4, 0xdd, 0x38, 0x3b, 0x6e, 0x1c,
		0x1d, 0xb4, 0xce, 0x2f, 0x75, 0xbe, 0xef, 0xdd, 0xd1, 0x7d, 0x9f, 0x9d, 0x8f, 0x6f, 0x59, 0xd3,
		0x29, 0xfa, 0xef, 0x75, 0x45, 0xd6, 0x46, 0x90, 0xe8, 0x0d, 0xab, 0x4f, 0x09, 0xa4, 0x96, 0x6c,
		0x54, 0x76, 0xd7, 0xf3, 0x87, 0x7e, 0xdf, 0xda, 0xd6, 0xf9, 0x5e, 0x97, 0x75, 0x96, 0xd6, 0x5e,
		0xd7, 0x2a, 0x25, 0xa0, 0xcd, 0x20, 0xc6, 0xd5, 0x16, 0xea, 0x14, 0x9c, 0xb4, 0x9c, 0xd7, 0x91,
		0xdd, 0xe6, 0x9c, 0x25, 0xb0, 0x6f, 0x95, 0xe0, 0x2f, 0x1a, 0x78, 0x47, 0xfa, 0xdc, 0xcd, 0x15,
		0x3a, 0x2c, 0xe9, 0xe8, 0x37, 0x3f, 0x8e, 0x10, 0x1c, 0x7c, 0xab, 0x39, 0x6e, 0xb7, 0x1b, 0x89,
		0x38, 0xd6, 0x31, 0x94, 0xa9, 0x11, 0x54, 0xda, 0x17, 0x6e, 0x92, 0x88, 0x28, 0xd0, 0x2e, 0xce,
		0x64, 0xbf, 0x7d, 0xfb, 0xa5, 0xe8, 0xec, 0xb9, 0x4e, 0xef, 0xc0, 0xf9, 0x70, 0xf5, 0xbd, 0xf4,
		0xbe, 0xf2, 0xb0, 0xff, 0xee, 0xfb, 0xce, 0xc3, 0xe2, 0x87, 0x3f, 0x56, 0xfd, 0x5a, 0xe9, 0xfd,
		0xce, 0xc3, 0xfe, 0x13, 0xff, 0x52, 0x7b, 0xd8, 0x7f, 0xe6, 0x35, 0xaa, 0x0f, 0x6f, 0x97, 0x7e,
		0x75, 0xf4, 0x79, 0xf9, 0xa9, 0x3f, 0xa8, 0x3c, 0xf1, 0x07, 0xdb, 0x4f, 0xfd, 0xc1, 0xf6, 0x13,
		0x7f, 0xf0, 0xe4, 0x2d, 0x95, 0x9f, 0xf8, 0x83, 0xea, 0xc3, 0x8f, 0xa5, 0xdf, 0x7f, 0xbb, 0xfa,
		0x57, 0x6b, 0x0f, 0xef, 0x7e, 0x3c, 0xf5, 0x6f, 0x3b, 0x0f, 0x3f, 0xf6, 0xdf, 0xbd, 0xd3, 0xc7,
		0xd3, 0xb8, 0xd2, 0xe9, 0xa0, 0x9c, 0x37, 0x1b, 0x7f, 0x68, 0x7b, 0x5a, 0xfe, 0x85, 0xe3, 0xa2,
		0xea, 0xb8, 0xfc, 0xc3, 0x86, 0x61, 0xa2, 0x99, 0xa1, 0x76, 0xb5, 0xd1, 0x49, 0x89, 0x1a, 0xb5,
		0x6d, 0xc9, 0xee, 0x49, 0x8b, 0xf6, 0x2d, 0x1a, 0x9b, 0xac, 0x5b, 0x5b, 0x4f, 0x34, 0xd3, 0x38,
		0x6c, 0x9c, 0x1d, 0x37, 0xce, 0x3e, 0xb6, 0x9b, 0x8d, 0xe3, 0xdf, 0x74, 0xb2, 0x65, 0x35, 0x1d,
		0xb0, 0xa2, 0x69, 0x5f, 0x97, 0xec, 0xf6, 0x74, 0x1f, 0xa7, 0xb2, 0xd8, 0xe7, 0xe5, 0x19, 0x42,
		0x89, 0x39, 0x61, 0x2b, 0xb6, 0x51, 0xc7, 0x86, 0x2f, 0x4b, 0xa0, 0xb3, 0xd0, 0x3a, 0x63, 0x52,
		0xe1, 0x64, 0x35, 0x1b, 0xc7, 0xcf, 0x6b, 0x9c, 0xf1, 0xf8, 0xcf, 0xe3, 0x5f, 0x1f, 0xfd, 0xbb,
		0xce, 0xad, 0x60, 0x74, 0x07, 0x2f, 0xcb, 0x88, 0xd6, 0x30, 0xc6, 0x60, 0x99, 0xf5, 0x8b, 0x56,
		0x31, 0x84, 0xf2, 0x0e, 0xe2, 0x54, 0xe3, 0x3b, 0xd9, 0x78, 0xff, 0xe4, 0xcd, 0x06, 0x6a, 0x68,
		0xbb, 0x13, 0xfa, 0x61, 0x14, 0xeb, 0x53, 0x4f, 0x3c, 0xb9, 0x1f, 0x94, 0x12, 0xa3, 0x94, 0xf8,
		0x17, 0x92, 0x82, 0x52, 0xe2, 0x67, 0xda, 0x4b, 0x28, 0x25, 0x7e, 0xb1, 0x49, 0x84, 0x52, 0x62,
		0x4d, 0xbc, 0x47, 0x0d, 0x4b, 0x89, 0xb5, 0xa9, 0xda, 0xd3, 0xa8, 0x4a, 0x4f, 0xb3, 0xaa, 0x3c,
		0x8d, 0x98, 0x4c, 0x1d, 0xab, 0xee, 0x74, 0x9d, 0x4c, 0xa9, 0x7d, 0x2d, 0x90, 0xbe, 0xb5, 0x3f,
		0x3a, 0x91, 0x7c, 0x3a, 0x16, 0xc9, 0x69, 0x3f, 0x49, 0x12, 0xb2, 0x0f, 0xfa, 0xc4, 0x6c, 0xfa,
		0x04, 0x13, 0xb8, 0xe6, 0xd5, 0x3e, 0x26, 0x70, 0xbd, 0xfc, 0x26, 0x31, 0x81, 0xcb, 0x80, 0x93,
		0x86, 0x44, 0x0a, 0x73, 0xdc, 0x8f, 0x9f, 0x25, 0x52, 0xb4, 0x3e, 0x9d, 0x9d, 0xd5, 0x4f, 0xda,
		0x47, 0xe7, 0x27, 0xe7, 0x97, 0x48, 0xa2, 0x78, 0x8e, 0xbf, 0x8d, 0x24, 0x8a, 0xb5, 0x6e, 0xf0,
		0x57, 0x49, 0x14, 0xf3, 0x02, 0x09, 0xdf, 0x6a, 0xc5, 0x16, 0x9a, 0x96, 0x40, 0xe1, 0x7b, 0x71,
		0x62, 0x85, 0x3d, 0xab, 0x13, 0xfa, 0xe1, 0x30, 0x7a, 0xce, 0xe4, 0x91, 0xe9, 0xbf, 0xc5, 0xd9,
		0xdf, 0xb8, 0x71, 0x1c, 0x76, 0x3c, 0x37, 0x19, 0xfd, 0xba, 0x97, 0xdc, 0xa4, 0xbf, 0x3e, 0x1e,
		0x3c, 0x60, 0xcd, 0x4d, 0x25, 0xf8, 0x1a, 0xb8, 0x49, 0x12, 0x79, 0xd7, 0xc3, 0x04, 0xa9, 0x15,
		0xaf, 0x84, 0x35, 0xa4, 0x56, 0xc8, 0x45, 0x39, 0x1d, 0x4e, 0x02, 0x92, 0x2e, 0xc0, 0x1a, 0xe8,
		0xcb, 0x1a, 0x6c, 0x64, 0xd2, 0xc5, 0x20, 0x12, 0x3d, 0x11, 0x89, 0x40, 0x87, 0xb1, 0x0b, 0x53,
		0xa5, 0x3d, 0x73, 0x4f, 0x8a, 0xfd, 0xcb, 0x63, 0xd1, 0x73, 0x87, 0x7e, 0xa2, 0x85, 0x3b, 0x67,
		0x97, 0x8a, 0x45, 0xb5, 0x08, 0x7a, 0x85, 0x54, 0x18, 0xa4, 0xc2, 0xfc, 0xe2, 0xec, 0x22, 0x15,
		0xe6, 0x99, 0xf6, 0x2d, 0x52, 0x61, 0x5e, 0x6c, 0xc2, 0x22, 0x15, 0x46, 0x13, 0x1e, 0x00, 0xa9,
		0x30, 0xbf, 0xd6, 0x52, 0x48, 0x85, 0x59, 0xfc, 0x42, 0x2a, 0xcc, 0xcf, 0x6f, 0x0a, 0xa9, 0x30,
		0xaf, 0xc5, 0x00, 0xa4, 0xc2, 0x3c, 0x43, 0xe4, 0x91, 0x0a, 0x03, 0xd9, 0xdf, 0x18, 0x03, 0x49,
		0x9f, 0xbb, 0x40, 0xa7, 0x03, 0x04, 0xe8, 0xcd, 0x30, 0x8a, 0x7e, 0xd9, 0xe9, 0xe0, 0xe2, 0xb2,
		0xfe, 0xa1, 0x7e, 0x59, 0x3f, 0x3b, 0xaa, 0x23, 0x46, 0xff, 0x32, 0x67, 0x1f, 0x31, 0xfa, 0x35,
		0x5d, 0xff, 0x67, 0xc9, 0x24, 0xec, 0xbe, 0x15, 0xbb, 0x68, 0x62, 0x9f, 0x83, 0xc7, 0x00, 0xc0,
		0x8b, 0x62, 0x93, 0x0b, 0x7f, 0x8a, 0x60, 0x3d, 0x1b, 0xbe, 0x21, 0x58, 0x2f, 0x17, 0xee, 0xf4,
		0x39, 0x0f, 0x08, 0xd9, 0xc3, 0xbb, 0xd1, 0xd7, 0xbb, 0xd9, 0xc8, 0x90, 0x7d, 0xa2, 0x03, 0xf9,
		0x9e, 0xa9, 0x6e, 0x0d, 0xe6, 0xd8, 0x22, 0x30, 0xbc, 0x70, 0x23, 0x08, 0x0c, 0x1b, 0x66, 0x57,
		0x21, 0x30, 0xbc, 0x96, 0xb9, 0x84, 0xc0, 0xb0, 0x26, 0x9e, 0xa7, 0x86, 0x81, 0x61, 0xaf, 0x2b,
		0x82, 0xc4, 0x4b, 0xee, 0x23, 0xd1, 0xd3, 0x69, 0xdc, 0xba, 0x0e, 0x25, 0x6e, 0x8d, 0xc9, 0xd6,
		0x1c, 0xba, 0xb1, 0x46, 0x50, 0x38, 0x7d, 0x71, 0x93, 0x12, 0x8c, 0xfa, 0xd9, 0xd1, 0xc1, 0x45,
		0xf3, 0xd3, 0xc9, 0x41, 0xab, 0x71, 0x7e, 0xd6, 0x6e, 0x7e, 0x3a, 0x6c, 0x9d, 0x7c, 0x6e, 0xb7,
		0xfe, 0xbc, 0xa8, 0xeb, 0x82, 0x90, 0x69, 0x0c, 0x2b, 0xd6, 0xaa, 0xe1, 0xb8, 0xa6, 0x2c, 0xcf,
		0x62, 0x67, 0x52, 0x10, 0x76, 0x86, 0xbd, 0xbb, 0x47, 0xb2, 0x15, 0xaf, 0xce, 0xb0, 0x57, 0xd7,
		0xac, 0x7f, 0x3c, 0xad, 0x9f, 0xb5, 0xda, 0x27, 0x8d, 0x66, 0x0b, 0x2f, 0xcf, 0x9c, 0x97, 0x37,
		0x5b, 0x88, 0x88, 0xf7, 0x66, 0xdc, 0x7b, 0xbb, 0xac, 0x9f, 0x9e, 0xb7, 0xea, 0xed, 0xfa, 0xd9,
		0xf1, 0xc5, 0x79, 0xe3, 0x4c, 0xa7, 0x93, 0xa7, 0xc5, 0x9d, 0x5c, 0x6d, 0xba, 0xbb, 0xf6, 0x66,
		0xb3, 0x56, 0x56, 0x84, 0x1b, 0xf6, 0x41, 0x10, 0x84, 0x89, 0xab, 0x3c, 0x06, 0x6a, 0xc7, 0x9d,
		0x1b, 0x71, 0xeb, 0x0e, 0xdc, 0xe4, 0x66, 0x84, 0x11, 0x85, 0x70, 0x20, 0x82, 0x4e, 0x4a, 0x1a,
		0x3a, 0x81, 0x48, 0xfe, 0x0e, 0xa3, 0xbf, 0x1c, 0x2f, 0x88, 0x13, 0x37, 0xe8, 0x88, 0xc2, 0xe2,
		0x07, 0xf1, 0xd2, 0x27, 0x85, 0x41, 0x14, 0x26, 0x61, 0x27, 0xf4, 0xe3, 0xec, 0xbb, 0xc2, 0x75,
		0x7f, 0x50, 0x88, 0xbc, 0xeb, 0x82, 0x9b, 0x24, 0x91, 0x13, 0x8b, 0x24, 0xce, 0xbe, 0x2b, 0x8c,
		0x43, 0x3d, 0xce, 0x5c, 0xa8, 0x67, 0xf2, 0x61, 0x3c, 0xf9, 0x6f, 0x21, 0x1e, 0x5e, 0x27, 0xfe,
		0xb7, 0x78, 0xf2, 0xdf, 0x42, 0x9c, 0xb8, 0x89, 0x4a, 0x72, 0xd7, 0x8e, 0x93, 0x68, 0xd8, 0x49,
		0x82, 0x69, 0x94, 0x38, 0xdb, 0xae, 0xb3, 0xf1, 0x56, 0x34, 0x26, 0x3b, 0xd1, 0x5e, 0xf8, 0x39,
		0x5e, 0xfc, 0xa0, 0x7d, 0x31, 0xdd, 0xaa, 0xec, 0xbb, 0xf6, 0x61, 0x7f, 0xd0, 0xbe, 0xf4, 0xae,
		0xdb, 0x07, 0x49, 0x12, 0x35, 0x45, 0x12, 0x4f, 0xbf, 0x69, 0xb7, 0xd2, 0xbd, 0xa8, 0xcf, 0xee,
		0xd3, 0xe4, 0xb3, 0x78, 0xf2, 0xdf, 0x76, 0x73, 0xbc, 0x4f, 0x93, 0xff, 0xb6, 0x9b, 0xe9, 0x3e,
		0xbd, 0xd9, 0x8c, 0x73, 0xac, 0xe0, 0x0c, 0xab, 0x0d, 0x79, 0xe8, 0x10, 0xea, 0x50, 0x1c, 0xe2,
		0x50, 0x1e, 0xda, 0xd0, 0x21, 0xa4, 0xa1, 0x57, 0x28, 0x43, 0x97, 0x10, 0x86, 0x76, 0xa1, 0x0b,
		0xed, 0x42, 0x16, 0xda, 0x85, 0x2a, 0x36, 0xcb, 0xf6, 0x53, 0x1e, 0x92, 0xc8, 0x70, 0xc3, 0x17,
		0x6e, 0x4f, 0x6d, 0x18, 0x22, 0x0b, 0x3f, 0x28, 0xac, 0x4e, 0xb3, 0x2f, 0x26, 0xe6, 0xef, 0xd6,
		0xd6, 0xd8, 0xc0, 0x4c, 0x33, 0x3b, 0x37, 0xc6, 0x7a, 0x7a, 0x93, 0xe3, 0x33, 0x37, 0xd2, 0x05,
		0x8a, 0x0c, 0x25, 0xb5, 0x4d, 0x37, 0xd5, 0x37, 0xd9, 0xd4, 0xb2, 0xa9, 0xa6, 0x06, 0x4d, 0x34,
		0x35, 0x68, 0x9a, 0xc9, 0x7d, 0x08, 0x15, 0x93, 0x1d, 0x86, 0x91, 0x1c, 0x0a, 0xb4, 0xb1, 0x21,
		0xb4, 0x06, 0xaf, 0x4a, 0xe6, 0x53, 0x8c, 0x3c, 0x2b, 0x31, 0x9d, 0x7a, 0x55, 0xa7, 0xdd, 0x94,
		0x53, 0xce, 0x78, 0xbc, 0x75, 0x3f, 0xd6, 0x3c, 0xe7, 0x99, 0xfe, 0x74, 0x31, 0x9c, 0x2c, 0x5e,
		0xc2, 0x51, 0x05, 0xc1, 0xc8, 0x4c, 0x28, 0xb2, 0x13, 0x88, 0x2a, 0x08, 0x43, 0xb5, 0x04, 0xa1,
		0x2a, 0x42, 0x50, 0x39, 0x01, 0xa8, 0x9c, 0xf0, 0x53, 0x4e, 0xf0, 0xe5, 0xcb, 0xa2, 0x61, 0x27,
		0xec, 0x14, 0x12, 0x74, 0x2a, 0x08, 0x39, 0x95, 0x04, 0x1c, 0x83, 0x75, 0xf0, 0xc6, 0xe0, 0x33,
		0xc0, 0x48, 0xa0, 0xf1, 0x12, 0x66, 0xfc, 0x04, 0x99, 0x16, 0x84, 0x98, 0x02, 0x02, 0x4c, 0x01,
		0xe1, 0x45, 0x7d, 0x28, 0x98, 0x5d, 0x5c, 0xdd, 0x5d, 0x5b, 0x06, 0xf5, 0xa4, 0xab, 0x2b, 0x4b,
		0xab, 0xa4, 0xe8, 0x54, 0x07, 0xcd, 0x95, 0x89, 0xce, 0x1d, 0xd7, 0x79, 0xd3, 0xf6, 0x9c, 0x11,
		0x1e, 0x30, 0xed, 0x0e, 0x16, 0xcd, 0x89, 0x92, 0x2f, 0xef, 0x72, 0xaf, 0x28, 0xf9, 0xe4, 0x70,
		0xb4, 0x39, 0xb3, 0x67, 0x1b, 0xf5, 0xd3, 0x94, 0x9a, 0x11, 0x1e, 0xf5, 0xa9, 0x87, 0x75, 0xf9,
		0xe1, 0xa8, 0x5a, 0x2d, 0x95, 0xdf, 0x5b, 0xdd, 0xc8, 0xed, 0x25, 0x8e, 0x27, 0x92, 0x9e, 0xe3,
		0x75, 0x23, 0x67, 0xee, 0x38, 0x52, 0x9e, 0x3f, 0x26, 0x92, 0x64, 0x96, 0x14, 0xe1, 0x9a, 0x66,
		0xc0, 0xce, 0x83, 0xcc, 0xf1, 0x1e, 0xcf, 0x7b, 0xb3, 0xa6, 0x69, 0x58, 0xe9, 0x57, 0xbd, 0xd2,
		0x1a, 0xc7, 0x88, 0x35, 0xbf, 0x76, 0x1a, 0x9f, 0xe0, 0x44, 0x6a, 0xa3, 0xe1, 0xe5, 0x9e, 0x35,
		0x79, 0x27, 0x41, 0xce, 0x95, 0x24, 0x49, 0xfe, 0x94, 0x70, 0xf1, 0x82, 0xae, 0x90, 0xc5, 0x5b,
		0xd3, 0x30, 0x2b, 0x74, 0x0c, 0x0a, 0x2b, 0x53, 0x42, 0xc8, 0x88, 0x10, 0x32, 0x1f, 0xb2, 0xa4,
		0x8d, 0x08, 0x5f, 0x55, 0xe2, 0xaa, 0x44, 0x08, 0x55, 0x02, 0x9d, 0x72, 0x60, 0x72, 0x7d, 0x50,
		0x5b, 0xef, 0x0a, 0x6b, 0x0a, 0xa8, 0x6c, 0xc1, 0x54, 0x20, 0x90, 0x12, 0xe4, 0x90, 0x55, 0xfe,
		0xd6, 0x93, 0xbb, 0xd7, 0x4b, 0xcb, 0x1a, 0x92, 0x62, 0x77, 0xc2, 0xdb, 0xdb, 0x61, 0xe0, 0x25,
		0x5e, 0xda, 0xef, 0x64, 0x3d, 0x31, 0xc9, 0x5c, 0xc2, 0xd9, 0x8b, 0xae, 0x29, 0xc5, 0xd3, 0x60,
		0xda, 0x9a, 0x97, 0x91, 0x95, 0xab, 0x20, 0x33, 0x07, 0x81, 0x26, 0xb7, 0x40, 0xb6, 0x3b, 0x4c,
		0x96, 0x0b, 0x40, 0xe6, 0xdb, 0x92, 0xc5, 0xee, 0xd5, 0xe2, 0xf9, 0xb1, 0x27, 0xc7, 0xfa, 0xcc,
		0x4e, 0xe7, 0xbd, 0x3c, 0x19, 0x59, 0x3c, 0xf8, 0xf7, 0xb2, 0x64, 0x44, 0xce, 0xf1, 0x97, 0x0e,
		0x03, 0x14, 0x70, 0x40, 0x0b, 0x0b, 0xd4, 0x6c, 0x19, 0x79, 0xca, 0x10, 0x39, 0x15, 0x46, 0x9e,
		0xf2, 0xa3, 0x97, 0x97, 0x2c, 0x0b, 0x4e, 0xb2, 0x0b, 0x8e, 0xfd, 0x6d, 0xe9, 0x72, 0x95, 0x35,
		0xfd, 0x93, 0xe8, 0xce, 0x2f, 0xc2, 0x8b, 0xe4, 0xdc, 0x05, 0xb2, 0xcc, 0x48, 0xca, 0x0c, 0x48,
		0x9e, 0x4c, 0x47, 0x6a, 0xb2, 0x9e, 0x2d, 0x73, 0x91, 0x8d, 0x99, 0x67, 0xcb, 0x44, 0xd4, 0x3b,
		0x1c, 0x47, 0x96, 0x41, 0xc8, 0x90, 0x29, 0x48, 0x99, 0x11, 0xb8, 0x9c, 0xf9, 0x37, 0x06, 0x4a,
		0x5d, 0x99, 0x62, 0xa9, 0xd4, 0x92, 0x9b, 0x08, 0x3a, 0x85, 0x43, 0xd1, 0x29, 0x47, 0xb2, 0x3d,
		0xbb, 0xac, 0x70, 0xca, 0x50, 0x38, 0x50, 0x38, 0x50, 0x38, 0x1a, 0xda, 0xc7, 0x84, 0xee, 0x37,
		0x9b, 0x3b, 0xce, 0x64, 0x3f, 0x93, 0xdb, 0xd1, 0x1c, 0xf0, 0xc6, 0x0b, 0x73, 0x5c, 0x70, 0xc7,
		0x0e, 0x7b, 0xec, 0xf0, 0xc7, 0x0e, 0x83, 0x34, 0x70, 0x48, 0x04, 0x8b, 0xf4, 0xf6, 0xf8, 0xd2,
		0xb9, 0x19, 0x06, 0xb4, 0x23, 0xc8, 0x32, 0x9b, 0x6c, 0x8f, 0x70, 0x8d, 0xc9, 0x76, 0xd1, 0xf6,
		0x93, 0x67, 0xc8, 0xa3, 0x9f, 0xbe, 0x94, 0xeb, 0xfe, 0xc0, 0xf9, 0x5b, 0xf8, 0xbe, 0xf3, 0x57,
		0x10, 0xfe, 0x1d, 0x38, 0x99, 0xa2, 0x71, 0x98, 0xea, 0x5d, 0x39, 0x87, 0x2e, 0xa8, 0x19, 0xaa,
		0x90, 0x6d, 0xf5, 0xe1, 0xc7, 0x8b, 0xf6, 0x7f, 0xd7, 0x4f, 0x4e, 0xda, 0xbf, 0x9f, 0x9d, 0xff,
		0xf7, 0x59, 0xbb, 0xd9, 0x3a, 0x6e, 0x1f, 0x9d, 0x9f, 0x9e, 0x7e, 0x3a, 0x6b, 0xb4, 0xfe, 0xe4,
		0xaa, 0x2c, 0x56, 0x30, 0x10, 0x81, 0xb9, 0xe2, 0x75, 0xba, 0xdb, 0x1f, 0x2f, 0x0f, 0x8e, 0xea,
		0x1f, 0x3e, 0x9d, 0xb4, 0x9b, 0xff, 0xf5, 0xa9, 0x75, 0x7c, 0xfe, 0xdf, 0x67, 0x8c, 0x25, 0x9f,
		0xef, 0xf3, 0xbe, 0xb9, 0x67, 0xe7, 0x17, 0xf5, 0xfa, 0x25, 0x76, 0x54, 0xe6, 0x8e, 0xb6, 0x0f,
		0x8e, 0x3f, 0xd7, 0x2f, 0x5b, 0x8d, 0x66, 0x1d, 0xfb, 0x2a, 0x75, 0x5f, 0xeb, 0x7f, 0x5c, 0x9c,
		0x5f, 0xb6, 0xb0, 0xa9, 0x04, 0x9b, 0xda, 0x6e, 0x7e, 0x3a, 0x3c, 0x3a, 0x3f, 0xfb, 0x50, 0x3f,
		0xce, 0x5b, 0x41, 0xfd, 0x15, 0x8a, 0xa1, 0x35, 0xb2, 0x50, 0xe3, 0xa4, 0xab, 0xd0, 0x34, 0xdd,
		0x63, 0x58, 0x8b, 0xc5, 0xaf, 0xe0, 0x87, 0x8d, 0x47, 0xe7, 0xcf, 0x0b, 0x92, 0xed, 0xb2, 0x82,
		0xee, 0x0d, 0x9c, 0xcd, 0x1b, 0x2e, 0xdd, 0xa0, 0x2f, 0xd8, 0xa7, 0x8d, 0xa9, 0x69, 0xa9, 0xa9,
		0xae, 0xe5, 0x7b, 0xea, 0xc3, 0x28, 0x6c, 0x77, 0xfe, 0x21, 0x72, 0x3b, 0x89, 0x17, 0x06, 0xc7,
		0x5e, 0xdf, 0x53, 0xd5, 0x52, 0x74, 0x7c, 0xb6, 0x44, 0xdf, 0x4d, 0xbc, 0x6f, 0x42, 0x49, 0xe7,
		0x4c, 0x4b, 0xd1, 0xb8, 0x81, 0x53, 0xf7, 0x4e, 0xbd, 0xe8, 0x55, 0xca, 0x7b, 0x95, 0xbd, 0xda,
		0x4e, 0x79, 0xaf, 0x0a, 0x19, 0x54, 0x2d, 0x83, 0x39, 0xed, 0x84, 0x79, 0x95, 0xa7, 0xbe, 0x51,
		0x0a, 0x0c, 0x8e, 0x38, 0x89, 0xbc, 0xa0, 0xaf, 0xa2, 0x5d, 0xd4, 0x2e, 0x6f, 0xbb, 0xa8, 0x44,
		0x44, 0x01, 0xbb, 0xcd, 0x61, 0xbf, 0xad, 0x55, 0xab, 0xdb, 0x5f, 0x8a, 0x4e, 0xf5, 0xea, 0x47,
		0xad, 0x5a, 0xfd, 0x52, 0x74, 0xca, 0x57, 0x5f, 0x8a, 0xce, 0xde, 0xe8, 0xa7, 0x2f, 0x45, 0xa7,
		0x32, 0xfe, 0xe1, 0x7b, 0xf9, 0xe1, 0x47, 0x6d, 0xe6, 0xc7, 0xed, 0x87, 0x1f, 0x5f, 0x4a, 0x4e,
		0x75, 0xf2, 0x53, 0x25, 0xfd, 0x69, 0x6f, 0xf2, 0x53, 0xe9, 0xfd, 0xe8, 0x5f, 0x47, 0xdf, 0xbe,
		0xdb, 0xa7, 0xbc, 0x38, 0x9f, 0xa3, 0x7a, 0xc5, 0x29, 0x07, 0xe7, 0xcd, 0xc6, 0x1f, 0xca, 0x84,
		0xe1, 0x5f, 0xc6, 0x4a, 0xc3, 0x3f, 0xec, 0xbc, 0x01, 0xfa, 0x1b, 0xb3, 0x9f, 0x83, 0xee, 0xfe,
		0xaf, 0x8c, 0x0a, 0xcb, 0xb2, 0x74, 0x80, 0xe3, 0xeb, 0xfc, 0xa6, 0xb4, 0xe3, 0x1b, 0x63, 0xa7,
		0x37, 0xc6, 0x0e, 0x6f, 0x04, 0x7d, 0x7c, 0x08, 0xb2, 0xf6, 0x68, 0x8a, 0x09, 0x96, 0xac, 0x3d,
		0x8a, 0xa2, 0x82, 0x45, 0xc3, 0x0e, 0xc9, 0x51, 0xcf, 0x78, 0x11, 0x48, 0x8e, 0x5a, 0x6b, 0x41,
		0x24, 0x47, 0x69, 0xa5, 0x85, 0x19, 0x93, 0xa3, 0xbc, 0x20, 0xa9, 0x55, 0x18, 0xb2, 0xa3, 0x08,
		0xbd, 0x53, 0x26, 0xfe, 0x9b, 0xa7, 0x23, 0x2e, 0x5f, 0x7e, 0x10, 0x33, 0x9f, 0xad, 0x8c, 0x3b,
		0xe4, 0xe7, 0x0a, 0x1f, 0x78, 0x5a, 0x19, 0xf3, 0x8b, 0x8a, 0xba, 0x11, 0x62, 0x9b, 0x24, 0x3d,
		0x70, 0x74, 0x69, 0xdd, 0x0d, 0xb4, 0xdb, 0xe3, 0xe8, 0xc2, 0x33, 0xd3, 0xc3, 0x25, 0xfb, 0xfe,
		0x9e, 0x6c, 0x7c, 0x3c, 0x4b, 0x9f, 0x9e, 0xa3, 0xc7, 0x47, 0xca, 0xbe, 0xbf, 0xa7, 0x98, 0xf4,
		0x8e, 0xce, 0x7a, 0x8a, 0x19, 0x2b, 0x74, 0xd6, 0x53, 0xc8, 0x38, 0xa1, 0xb3, 0xde, 0xcf, 0x20,
		0xd4, 0xb4, 0xe6, 0x7a, 0x2b, 0x41, 0x13, 0x1d, 0xf6, 0x8c, 0xee, 0xb0, 0x27, 0xaf, 0x3f, 0x9b,
		0x0a, 0x31, 0x34, 0xb1, 0xcd, 0x9e, 0xb8, 0x4b, 0x1c, 0x92, 0x56, 0x7b, 0x8b, 0x17, 0x46, 0xbb,
		0xbd, 0x5f, 0x6e, 0x19, 0xda, 0xed, 0xa1, 0xdd, 0xde, 0xaf, 0x9f, 0x4a, 0x5a, 0xbb, 0xbd, 0xd9,
		0x13, 0x4a, 0xd0, 0x72, 0x6f, 0xfe, 0xf2, 0x68, 0xbb, 0xa7, 0x17, 0x3c, 0x50, 0xc1, 0x04, 0x39,
		0x5c, 0x90, 0xc3, 0x06, 0x39, 0x7c, 0xe8, 0xe9, 0x42, 0xa3, 0xed, 0x1e, 0xda, 0xee, 0xf1, 0xc1,
		0x0e, 0x35, 0xfc, 0xb0, 0xc1, 0x10, 0x1b, 0x1c, 0xb1, 0xc1, 0x92, 0x7c, 0xae, 0xd0, 0x42, 0xdb,
		0xbd, 0xd5, 0x56, 0x0c, 0xda, 0xee, 0xa1, 0xed, 0x1e, 0xda, 0xee, 0x41, 0xe1, 0x40, 0xe1, 0x58,
		0x9b, 0xdb, 0x76, 0x8f, 0xc6, 0x0d, 0x67, 0x75, 0xcb, 0x99, 0xec, 0x68, 0x72, 0x7b, 0x9a, 0x03,
		0xe6, 0x78, 0xe1, 0x8e, 0x0b, 0xf6, 0xd8, 0xe1, 0x8f, 0x1d, 0x06, 0xd9, 0xe1, 0x90, 0x06, 0x16,
		0x89, 0xe0, 0x91, 0xde, 0x2e, 0x5f, 0x3a, 0x37, 0xd7, 0xfd, 0x81, 0x33, 0x07, 0x66, 0x4e, 0x24,
		0x3a, 0xdf, 0xa8, 0x9b, 0x69, 0xa0, 0x29, 0x9f, 0x94, 0x57, 0x85, 0x96, 0x27, 0xda, 0xbf, 0xbd,
		0x15, 0x0e, 0x10, 0x2a, 0x90, 0x09, 0x17, 0xa6, 0xad, 0x39, 0xcd, 0x3a, 0x3c, 0x8c, 0x57, 0x98,
		0xfe, 0xf8, 0xa5, 0xe8, 0xec, 0x4e, 0x96, 0x99, 0x7c, 0xf4, 0xa5, 0xe8, 0x94, 0x1e, 0xd7, 0x1a,
		0x7f, 0xf8, 0xa5, 0xe8, 0xd4, 0x1e, 0x17, 0x4c, 0x3f, 0x4b, 0x2f, 0x93, 0xad, 0x3a, 0xfa, 0xe8,
		0xf1, 0x52, 0xdf, 0xab, 0xe9, 0x27, 0x5f, 0x8a, 0xce, 0xf6, 0xe4, 0x83, 0xda, 0xe8, 0x83, 0x99,
		0x5f, 0xd8, 0x79, 0xf8, 0x51, 0x99, 0x59, 0x68, 0x37, 0xbd, 0xef, 0xe9, 0x2f, 0xef, 0x2d, 0x3c,
		0xc5, 0x2e, 0x4a, 0x9d, 0xe9, 0x56, 0xff, 0x17, 0xc4, 0xee, 0x57, 0x62, 0x97, 0xbf, 0x9a, 0x6a,
		0x34, 0xc9, 0x80, 0x8a, 0x7a, 0x95, 0x8a, 0x7a, 0x3b, 0x3e, 0xb3, 0x8f, 0xe7, 0xe4, 0x47, 0x29,
		0xfd, 0xcf, 0xf8, 0xfb, 0xf2, 0x23, 0x42, 0xfc, 0x28, 0x57, 0xd3, 0xa3, 0xfa, 0xee, 0xeb, 0xd7,
		0xad, 0x77, 0xdf, 0xb7, 0x1f, 0x5e, 0xfe, 0x87, 0x68, 0x9a, 0x61, 0x9c, 0x26, 0xc9, 0x8b, 0x74,
		0x00, 0xf0, 0x01, 0xf8, 0x00, 0xfc, 0x14, 0xf0, 0xf3, 0x60, 0xbf, 0x41, 0x93, 0x18, 0xa7, 0x49,
		0x20, 0x76, 0x50, 0x51, 0x50, 0x51, 0x50, 0x51, 0xcf, 0x58, 0x38, 0x0a, 0x87, 0x89, 0xf8, 0xfa,
		0xd5, 0x49, 0xdc, 0xa8, 0x2f, 0x92, 0x7d, 0xd0, 0x19, 0x60, 0xd1, 0x14, 0x68, 0x2c, 0x48, 0x21,
		0x48, 0x35, 0x28, 0x30, 0x28, 0x30, 0x09, 0x0a, 0x0c, 0x1c, 0x1b, 0xf4, 0xcc, 0xb3, 0xf5, 0x0c,
		0x28, 0x37, 0xa8, 0x03, 0xa8, 0x83, 0x3c, 0xab, 0x03, 0x50, 0x21, 0xd0, 0x33, 0xea, 0xf5, 0x0c,
		0xa4, 0x10, 0x0a, 0x0c, 0x0a, 0x0c, 0x0a, 0xec, 0x05, 0x0a, 0x2c, 0x8c, 0xbc, 0xbe, 0x17, 0x80,
		0x0a, 0x01, 0x21, 0xa7, 0x52, 0x81, 0x41, 0x0a, 0x41, 0xc8, 0x41, 0x81, 0x41, 0x81, 0xad, 0xa1,
		0xc0, 0x40, 0xc8, 0x41, 0xcf, 0x3c, 0x5b, 0xcf, 0x80, 0x90, 0x83, 0x3a, 0x80, 0x3a, 0xc8, 0xb3,
		0x3a, 0x00, 0x15, 0x02, 0x3d, 0xa3, 0x5e, 0xcf, 0x40, 0x0a, 0xa1, 0xc0, 0xa0, 0xc0, 0xa0, 0xc0,
		0x9e, 0xb1, 0x70, 0x27, 0xf4, 0xc3, 0x68, 0x3f, 0x3d, 0x9e, 0xdf, 0xcb, 0x0f, 0xe0, 0xcc, 0xa0,
		0x63, 0x9e, 0xd0, 0x31, 0x79, 0x14, 0x14, 0xa8, 0x01, 0xa8, 0x01, 0xa8, 0x81, 0xd1, 0xc2, 0xbe,
		0x17, 0xfc, 0xe5, 0x5c, 0xbb, 0x41, 0xf7, 0x6f, 0xaf, 0x9b, 0xdc, 0x80, 0x11, 0xff, 0x25, 0x74,
		0xbc, 0xfd, 0xeb, 0xc7, 0xef, 0x3f, 0x4e, 0x7f, 0x7c, 0x7c, 0xf7, 0x9f, 0xd0, 0x36, 0x04, 0xda,
		0x86, 0x51, 0x1e, 0xff, 0x91, 0x33, 0x79, 0xc4, 0x94, 0x77, 0xcd, 0x9e, 0x83, 0x58, 0x29, 0x73,
		0xb6, 0x6a, 0xf2, 0x02, 0x37, 0xba, 0x67, 0x6c, 0xcd, 0xc4, 0xd1, 0x99, 0xe9, 0x44, 0x04, 0xfd,
		0xb4, 0x2b, 0x6e, 0xee, 0x7a, 0x33, 0x71, 0x0e, 0x76, 0xcd, 0x16, 0x9d, 0x4e, 0xed, 0x64, 0x34,
		0x9b, 0x2c, 0x95, 0xa3, 0x3a, 0x1f, 0x0f, 0x09, 0xf7, 0xc8, 0x4e, 0x66, 0xa3, 0xdf, 0xe2, 0x1e,
		0x00, 0x0b, 0x91, 0x52, 0x27, 0x52, 0x50, 0xec, 0x4a, 0xef, 0xff, 0xca, 0xa8, 0xb6, 0x9e, 0x24,
		0xc3, 0x30, 0x57, 0x69, 0x33, 0x9a, 0xe1, 0x98, 0xab, 0x40, 0x8e, 0x6d, 0x58, 0xe6, 0xd2, 0xe2,
		0x74, 0xc3, 0x33, 0x9f, 0x5e, 0x4a, 0xfa, 0x30, 0x4d, 0x2e, 0xc9, 0x13, 0x77, 0x49, 0xe4, 0x3a,
		0xc3, 0x20, 0x4e, 0xdc, 0x6b, 0x9f, 0xb8, 0xb5, 0x6c, 0x24, 0x7a, 0x22, 0x12, 0x41, 0x27, 0x57,
		0xcd, 0x57, 0x2f, 0x3f, 0x1c, 0x59, 0x95, 0xed, 0x5a, 0xd1, 0x72, 0xac, 0xc3, 0x8f, 0x17, 0x56,
		0xfd, 0x2e, 0x11, 0x41, 0x57, 0x74, 0xad, 0x99, 0xc1, 0x85, 0xd6, 0xe8, 0x68, 0x7b, 0xd7, 0xc3,
		0x84, 0xa5, 0x27, 0x2b, 0x53, 0x2b, 0xea, 0x47, 0x47, 0xe3, 0xb1, 0x25, 0xf5, 0xe3, 0x0b, 0x66,
		0x1a, 0xf2, 0xce, 0xdd, 0x9d, 0x3a, 0x5b, 0x78, 0xb6, 0x4b, 0xf5, 0xcb, 0x24, 0x00, 0x73, 0xe8,
		0x79, 0x35, 0xf6, 0x1b, 0x03, 0x90, 0x98, 0x68, 0x98, 0xd7, 0x12, 0x56, 0x51, 0x0c, 0xf5, 0x5a,
		0x24, 0x1c, 0x30, 0x94, 0xe0, 0x19, 0x2f, 0x02, 0x43, 0x09, 0x8c, 0x82, 0x7d, 0x0c, 0x25, 0xf8,
		0xe9, 0xee, 0xf0, 0x0d, 0x25, 0x18, 0x7a, 0x41, 0x52, 0xab, 0x30, 0xcc, 0x1f, 0x20, 0x24, 0x4a,
		0xec, 0x4b, 0x37, 0xe8, 0xe7, 0xc2, 0x04, 0xe6, 0x64, 0x47, 0x33, 0x0a, 0x8b, 0x89, 0x41, 0x52,
		0x46, 0x5d, 0xf1, 0x53, 0x56, 0x0c, 0xec, 0x27, 0x2b, 0xeb, 0x99, 0x89, 0x0a, 0x2f, 0xef, 0xb0,
		0xa9, 0xd2, 0x03, 0x77, 0x83, 0xd6, 0xdd, 0xd0, 0x7a, 0x6c, 0xdb, 0x41, 0x10, 0x84, 0x89, 0x3b,
		0x92, 0x74, 0x9a, 0xe9, 0x6d, 0x71, 0xe7, 0x46, 0xdc, 0xba, 0x83, 0xc9, 0xd0, 0xcd, 0x42, 0x38,
		0x10, 0x41, 0x27, 0x75, 0x04, 0x9c, 0x40, 0x24, 0x7f, 0x87, 0xd1, 0x5f, 0x8e, 0x17, 0xc4, 0x89,
		0x1b, 0x74, 0x44, 0x61, 0xf1, 0x83, 0x78, 0xe9, 0x93, 0xc2, 0x20, 0x0a, 0x93, 0xb0, 0x13, 0xfa,
		0x71, 0xf6, 0x5d, 0xe1, 0xba, 0x3f, 0x28, 0x44, 0xde, 0x75, 0x61, 0x76, 0x7e, 0x8e, 0x27, 0xe2,
		0xb9, 0x9f, 0xef, 0x0b, 0x14, 0xc3, 0x29, 0xc7, 0xcf, 0x97, 0x44, 0xc3, 0x4e, 0x12, 0x4c, 0xcc,
		0x9b, 0xf3, 0xec, 0xf1, 0xce, 0xc6, 0xb7, 0xde, 0x98, 0xdc, 0x79, 0x7b, 0xe1, 0xe7, 0x78, 0xf1,
		0x83, 0xf6, 0xc5, 0xf4, 0xd1, 0xb2, 0xef, 0xda, 0x87, 0xfd, 0x41, 0xfb, 0xd2, 0xbb, 0x6e, 0xd7,
		0xef, 0x92, 0x19, 0x2a, 0x62, 0xf6, 0xc7, 0xfb, 0x76, 0x33, 0x7d, 0x30, 0x5d, 0xa7, 0x97, 0x6a,
		0x35, 0xc1, 0xfb, 0x77, 0x71, 0x2f, 0xdb, 0x87, 0xa6, 0xe1, 0xfd, 0xe9, 0x78, 0x7e, 0x56, 0x5e,
		0x9f, 0x90, 0xc7, 0x27, 0xe4, 0xed, 0x65, 0x49, 0x1b, 0x11, 0xb0, 0x6a, 0x02, 0xa8, 0xb6, 0xd4,
		0xb9, 0xc4, 0x4a, 0x21, 0x54, 0x0e, 0x78, 0xae, 0x0f, 0x75, 0xeb, 0x5d, 0x61, 0x4d, 0xb1, 0x95,
		0x2d, 0xae, 0xca, 0xc4, 0x54, 0x82, 0x60, 0x2a, 0x10, 0xc8, 0xf5, 0x64, 0xf0, 0xf5, 0x92, 0xf3,
		0xba, 0xbf, 0x7c, 0xa5, 0xac, 0xc9, 0x92, 0x31, 0x36, 0xd9, 0x5a, 0x43, 0x96, 0x38, 0x64, 0xe8,
		0x75, 0x42, 0xf3, 0xf2, 0x57, 0xfe, 0xb2, 0xbf, 0x78, 0xa1, 0x70, 0xc8, 0x88, 0x5f, 0xdb, 0x7f,
		0xdf, 0x88, 0xd7, 0x67, 0x68, 0xaf, 0x21, 0x88, 0x53, 0x56, 0x73, 0xab, 0x30, 0x7e, 0xb9, 0x05,
		0xaf, 0x2b, 0x82, 0xc4, 0xeb, 0x79, 0x22, 0xb2, 0xfe, 0x69, 0xfd, 0x16, 0x76, 0x9c, 0x41, 0xe8,
		0xa7, 0xb3, 0x3c, 0xe3, 0xfd, 0xc3, 0x8f, 0x17, 0xbf, 0xad, 0x23, 0x50, 0x92, 0x62, 0x01, 0xb3,
		0x5c, 0x7f, 0xba, 0x6d, 0x6b, 0xea, 0x0d, 0xd9, 0x4c, 0xfe, 0x1c, 0x53, 0xff, 0xec, 0x7d, 0x7d,
		0xa3, 0x40, 0x6d, 0xda, 0xc7, 0x22, 0xee, 0x44, 0xde, 0x40, 0x8a, 0xce, 0xcc, 0x44, 0xa9, 0x11,
		0x74, 0xfc, 0x61, 0x57, 0xa4, 0x81, 0xe8, 0x81, 0x1b, 0xb9, 0xb7, 0x22, 0x11, 0x51, 0x6c, 0x85,
		0x81, 0x7f, 0x6f, 0x8d, 0xde, 0x97, 0x95, 0xdc, 0x08, 0x6b, 0x0a, 0x54, 0x5f, 0x03, 0x2f, 0xb6,
		0xc2, 0x9e, 0x35, 0xda, 0x89, 0xd1, 0x5f, 0xac, 0xfb, 0x32, 0x25, 0xc6, 0x9b, 0x66, 0xe5, 0xac,
		0x3b, 0xb3, 0x51, 0x12, 0xd4, 0x33, 0x45, 0xf0, 0x68, 0x4e, 0xec, 0xd6, 0x7b, 0x07, 0x66, 0xa9,
		0xf2, 0x37, 0xb4, 0xb4, 0xdb, 0x4b, 0xb5, 0xc1, 0x9a, 0x26, 0x02, 0x8b, 0x69, 0xf0, 0x0a, 0x19,
		0xa6, 0x36, 0x07, 0x5e, 0x26, 0x74, 0xcf, 0x7f, 0xe9, 0x2f, 0x78, 0x7d, 0x76, 0x67, 0x1a, 0xdf,
		0x7f, 0xd9, 0x6b, 0xcb, 0x90, 0x6f, 0xf2, 0xf7, 0x2f, 0x14, 0x98, 0x69, 0x89, 0xe2, 0x0b, 0xff,
		0xec, 0xb5, 0xc9, 0x08, 0xeb, 0x24, 0x19, 0xcc, 0x26, 0x0f, 0x04, 0x22, 0x19, 0x49, 0xd9, 0x6b,
		0x44, 0x69, 0x4d, 0x90, 0x96, 0x16, 0xec, 0x97, 0x86, 0xc3, 0x8b, 0xc1, 0xf9, 0xe9, 0xde, 0x68,
		0x66, 0xa8, 0x1e, 0x7b, 0xaf, 0x63, 0xf9, 0xec, 0xae, 0xe8, 0xb9, 0x43, 0x3f, 0x71, 0x6e, 0x45,
		0x12, 0x79, 0x9d, 0xd7, 0xbf, 0xb8, 0xa9, 0xf8, 0x2c, 0x5c, 0xef, 0x95, 0x9b, 0xbe, 0x5e, 0xb6,
		0xcf, 0xda, 0xd9, 0x3c, 0x32, 0xb2, 0x75, 0xe4, 0x1c, 0x28, 0x4a, 0x0b, 0x5b, 0x4a, 0x36, 0x0d,
		0xad, 0x8d, 0xbd, 0xce, 0x81, 0x53, 0x43, 0x23, 0xac, 0x9d, 0xad, 0x32, 0x97, 0x8d, 0xb2, 0x5d,
		0x5e, 0x47, 0x66, 0x26, 0xa7, 0x68, 0x67, 0x8d, 0x4b, 0xc8, 0xc9, 0x26, 0x91, 0x60, 0xb1, 0xcb,
		0xcc, 0x06, 0x91, 0x9d, 0xed, 0x41, 0x16, 0x8f, 0x97, 0x1f, 0x6f, 0x97, 0x10, 0x40, 0x90, 0x9a,
		0x6d, 0x91, 0xbd, 0x8a, 0xac, 0xc6, 0xbb, 0xba, 0x79, 0xef, 0x44, 0x91, 0x53, 0x76, 0xc5, 0x45,
		0xd1, 0xbd, 0xc2, 0x8e, 0x14, 0x81, 0x7b, 0xed, 0x8b, 0xee, 0xfa, 0xf6, 0xc8, 0xf4, 0x42, 0x30,
		0x44, 0x60, 0x88, 0xc0, 0x10, 0x79, 0x95, 0xdc, 0x5c, 0x87, 0xa1, 0x2f, 0xdc, 0x40, 0x82, 0x25,
		0x52, 0x2a, 0x69, 0x0c, 0x39, 0x8f, 0x34, 0xee, 0xfa, 0xa8, 0x33, 0x73, 0x2d, 0x00, 0x0f, 0x80,
		0x07, 0xc0, 0xb3, 0xc6, 0x29, 0x4a, 0xee, 0x23, 0xd1, 0x93, 0x01, 0x3e, 0x6b, 0x58, 0x96, 0x76,
		0x63, 0x72, 0x2b, 0x87, 0x6e, 0x2c, 0x24, 0xc6, 0x53, 0xce, 0x9a, 0xad, 0x83, 0x93, 0x93, 0xf6,
		0xc5, 0xe5, 0x79, 0xeb, 0xfc, 0xe8, 0xfc, 0xa4, 0xdd, 0xfa, 0xf3, 0xa2, 0xbe, 0xae, 0x38, 0xa6,
		0x16, 0x75, 0x2c, 0xa5, 0x02, 0x40, 0x92, 0x8d, 0x3f, 0x7d, 0xdc, 0xb5, 0x03, 0x10, 0x92, 0x3c,
		0x18, 0xc9, 0x8f, 0x75, 0xdc, 0xb8, 0xac, 0x1f, 0xb5, 0x4e, 0xfe, 0x6c, 0x1f, 0x9d, 0x9f, 0x9d,
		0xd5, 0x8f, 0x5a, 0xf5, 0xe3, 0x3c, 0x3e, 0xe5, 0xc7, 0xcb, 0xc6, 0x61, 0x23, 0x8f, 0x0f, 0xd6,
		0xf8, 0x78, 0x9a, 0x4b, 0xb1, 0x6c, 0x34, 0x1b, 0xcd, 0x3c, 0x3e, 0xd7, 0xc9, 0xf9, 0xd1, 0xc1,
		0x49, 0x6e, 0x1f, 0xac, 0x7d, 0xf0, 0xf1, 0xe3, 0x65, 0xfd, 0xe3, 0x41, 0xab, 0x9e, 0xc7, 0x47,
		0x3c, 0x6f, 0x5e, 0x7c, 0xc8, 0xeb, 0x73, 0x6d, 0xe7, 0xf1, 0xc1, 0x2e, 0x8e, 0xea, 0xb9, 0x04,
		0xc7, 0x8b, 0xc6, 0x69, 0x1e, 0x1f, 0xab, 0xd9, 0x3a, 0x68, 0x35, 0x8e, 0x6c, 0xc5, 0x94, 0xe4,
		0x95, 0xf6, 0x79, 0x22, 0xaf, 0xe1, 0x07, 0x26, 0xf9, 0x11, 0x6b, 0x32, 0x03, 0xe9, 0x55, 0x5e,
		0xe9, 0x59, 0x1d, 0x8f, 0x63, 0xab, 0x6b, 0x99, 0xf6, 0xf6, 0x71, 0xfd, 0xc3, 0xc1, 0xa7, 0x93,
		0xd6, 0xeb, 0x64, 0xe4, 0x0a, 0x6c, 0x06, 0xd8, 0x0c, 0xb0, 0x19, 0xaf, 0x92, 0x9b, 0xb5, 0x3b,
		0xa4, 0x3f, 0x76, 0x3c, 0xcf, 0x45, 0x6e, 0xb5, 0xf6, 0xd9, 0x74, 0xaf, 0xca, 0xf9, 0xb2, 0xa8,
		0x13, 0xea, 0x26, 0x58, 0xa8, 0x41, 0x4e, 0xdd, 0x1a, 0x84, 0xf9, 0xfa, 0x44, 0xf9, 0x2b, 0x55,
		0x0a, 0x72, 0xeb, 0x90, 0x5b, 0xf7, 0x52, 0xa0, 0x7a, 0xb5, 0x0a, 0xc8, 0xde, 0xbb, 0x2f, 0xdc,
		0xde, 0xeb, 0x48, 0xec, 0x0c, 0xf3, 0x5f, 0x91, 0xc4, 0x63, 0x5f, 0x4c, 0xb0, 0x71, 0x6b, 0x45,
		0xa9, 0x82, 0x16, 0x00, 0xd2, 0xbf, 0x1d, 0xac, 0x01, 0x1d, 0xa3, 0xbf, 0xde, 0x8c, 0x84, 0xdc,
		0x57, 0x3c, 0xea, 0x66, 0x20, 0x46, 0xba, 0x31, 0x79, 0x49, 0xc5, 0xed, 0xfb, 0xe1, 0xb5, 0xeb,
		0xaf, 0xef, 0x62, 0x4e, 0xae, 0xb3, 0x9e, 0xab, 0x56, 0xca, 0x89, 0xab, 0xf6, 0xca, 0xa3, 0x03,
		0x3f, 0xed, 0x75, 0x47, 0x4b, 0x8d, 0x93, 0xf6, 0xda, 0x23, 0xf7, 0x68, 0xb0, 0xc7, 0xb7, 0xf2,
		0xa2, 0xba, 0xa3, 0x8b, 0xad, 0xf9, 0x2e, 0xd6, 0x3b, 0x84, 0xd2, 0x0e, 0xa3, 0xcc, 0x43, 0x49,
		0x70, 0x38, 0x65, 0x1f, 0x52, 0xb2, 0xc3, 0x4a, 0x76, 0x68, 0x69, 0x0e, 0xef, 0x7a, 0x87, 0x78,
		0xcd, 0xc3, 0x2c, 0xed, 0x50, 0x67, 0x17, 0xba, 0x75, 0x07, 0x03, 0x2f, 0xe8, 0xc7, 0xf2, 0xe4,
		0x63, 0x2a, 0xc2, 0xd9, 0x95, 0x65, 0x35, 0x01, 0x92, 0x72, 0xec, 0xa5, 0x1f, 0x7f, 0x0a, 0x18,
		0x20, 0x84, 0x03, 0x2a, 0x58, 0x20, 0x87, 0x07, 0x72, 0x98, 0xa0, 0x85, 0x0b, 0x39, 0xb0, 0x21,
		0x09, 0x3e, 0xa4, 0xc3, 0xc8, 0x22, 0x9c, 0xc8, 0x17, 0xab, 0x05, 0x54, 0x91, 0x2d, 0x54, 0x72,
		0xc1, 0x85, 0x0c, 0x64, 0x28, 0xc1, 0x86, 0x01, 0x74, 0xa8, 0xc1, 0x87, 0x0d, 0x84, 0xd8, 0xc0,
		0x88, 0x07, 0x94, 0xe4, 0x82, 0x93, 0x64, 0x90, 0x22, 0x03, 0xab, 0xec, 0xc2, 0xaf, 0xac, 0x7f,
		0x7f, 0xf1, 0x81, 0x7a, 0x75, 0xcc, 0x44, 0x21, 0x84, 0x91, 0x43, 0x19, 0x07, 0xa4, 0x31, 0x42,
		0x1b, 0x17, 0xc4, 0xb1, 0x43, 0x1d, 0x3b, 0xe4, 0xf1, 0x42, 0x1f, 0x0d, 0x04, 0x12, 0x41, 0x21,
		0x39, 0x24, 0x3e, 0x72, 0x3f, 0x4c, 0x52, 0x9c, 0xd1, 0x43, 0xe3, 0xf5, 0x88, 0x25, 0x8a, 0x76,
		0x5e, 0x0a, 0x1b, 0x64, 0x72, 0x42, 0xa7, 0x02, 0x08, 0xe5, 0x86, 0x52, 0x65, 0x90, 0xaa, 0x0c,
		0x5a, 0xd5, 0x40, 0x2c, 0x2d, 0xd4, 0x12, 0x43, 0x6e, 0xb6, 0x65, 0xe4, 0x93, 0x57, 0x96, 0x4e,
		0x9c, 0x37, 0xf8, 0x56, 0x71, 0xdc, 0x6e, 0x37, 0x12, 0x71, 0xcc, 0x38, 0xc6, 0xba, 0xc4, 0x30,
		0xb9, 0xd6, 0xe6, 0x1e, 0xd6, 0x6f, 0xbf, 0x7d, 0x3b, 0x1e, 0x8e, 0xff, 0x38, 0x90, 0xfe, 0x47,
		0x29, 0xfd, 0xcf, 0xf8, 0xfb, 0xf2, 0xe3, 0x28, 0xfe, 0x1f, 0xe5, 0x6a, 0x3a, 0x13, 0xff, 0xdd,
		0xd7, 0xaf, 0x5b, 0xef, 0xbe, 0x6f, 0x3f, 0xbc, 0xfc, 0x0f, 0xdf, 0xfe, 0x9f, 0x2f, 0x5f, 0xbf,
		0x0e, 0xbe, 0x9f, 0x3d, 0x8c, 0xfe, 0xff, 0xe4, 0xe1, 0xea, 0xff, 0xbe, 0xfb, 0x4f, 0x1b, 0xd3,
		0x63, 0xf9, 0xcf, 0xad, 0x1d, 0xc7, 0xb7, 0x4e, 0xe4, 0x06, 0x7d, 0x11, 0x33, 0x5a, 0x34, 0x8f,
		0x6b, 0xc2, 0xaa, 0x81, 0x55, 0x03, 0xab, 0x06, 0x56, 0x0d, 0xac, 0x1a, 0x29, 0xe9, 0x7f, 0xaf,
		0x36, 0x68, 0x76, 0x78, 0x0c, 0x9a, 0x49, 0xea, 0x75, 0xc7, 0x71, 0x3b, 0xfe, 0xbe, 0xdb, 0xf1,
		0x67, 0xbe, 0x75, 0x62, 0x91, 0xc4, 0x0b, 0x3f, 0x4f, 0x7f, 0x9c, 0x64, 0x23, 0x4e, 0x7e, 0x4a,
		0xf3, 0xa4, 0x4d, 0x55, 0xe5, 0x46, 0x71, 0x29, 0xc4, 0xf3, 0x94, 0x1e, 0x8d, 0x10, 0xea, 0xd4,
		0xfc, 0x11, 0xce, 0x15, 0xc6, 0x79, 0x6e, 0x85, 0x38, 0xbe, 0x2d, 0x4c, 0x03, 0xf1, 0xd3, 0x6f,
		0x0a, 0xa4, 0x3c, 0xb4, 0x45, 0x9d, 0xe3, 0xdf, 0xe8, 0xdf, 0x0e, 0xda, 0x1f, 0xd3, 0xc7, 0x6b,
		0x37, 0xe3, 0xdb, 0xf6, 0xe9, 0xe4, 0xf1, 0xa6, 0xdf, 0xbc, 0xaa, 0x08, 0x40, 0x9d, 0x48, 0x53,
		0xcc, 0x34, 0x26, 0x66, 0xed, 0x78, 0xd8, 0x3a, 0x4c, 0x35, 0xd6, 0xca, 0x6e, 0x45, 0x40, 0xc3,
		0x4c, 0xbb, 0x14, 0xf3, 0x8c, 0x55, 0xd9, 0x9d, 0x1c, 0xf6, 0xe6, 0x8a, 0x32, 0x96, 0x09, 0x28,
		0x6f, 0xb2, 0xfa, 0x4b, 0x27, 0x2b, 0xd2, 0x6b, 0x3f, 0xa2, 0xc9, 0x94, 0x16, 0x67, 0x34, 0xbf,
		0x0c, 0xe5, 0x07, 0xe5, 0x07, 0xe5, 0xa7, 0x85, 0xf2, 0x43, 0x34, 0x5f, 0x43, 0x3f, 0x81, 0xcd,
		0x5f, 0xe0, 0x84, 0x4e, 0x05, 0x10, 0xca, 0x0d, 0xa5, 0xca, 0x20, 0x55, 0x19, 0xb4, 0xaa, 0x81,
		0x58, 0x5a, 0xa8, 0x25, 0x86, 0x5c, 0x3e, 0xbf, 0x63, 0xe9, 0xc4, 0x21, 0x9a, 0x2f, 0x71, 0x41,
		0x44, 0xf3, 0x35, 0x3d, 0xbb, 0x88, 0xe6, 0xc3, 0xaa, 0x81, 0x55, 0x03, 0xab, 0x06, 0x56, 0xcd,
		0x66, 0x58, 0x35, 0x88, 0xe6, 0x23, 0x9a, 0xaf, 0x05, 0x97, 0xb2, 0x39, 0xd1, 0x7c, 0x4a, 0x1a,
		0xda, 0x52, 0x1e, 0xcc, 0x6f, 0xa6, 0x4f, 0x67, 0x4a, 0x30, 0x43, 0xeb, 0xfa, 0xc9, 0xdf, 0xc5,
		0x3d, 0x19, 0x29, 0x67, 0x9f, 0x78, 0x71, 0x72, 0x90, 0x24, 0x44, 0x15, 0x9a, 0xa7, 0x5e, 0x50,
		0xf7, 0xc5, 0x48, 0xfb, 0xc7, 0x34, 0xa6, 0xaa, 0x7d, 0xea, 0xde, 0xcd, 0xac, 0x50, 0xda, 0xad,
		0x54, 0x6a, 0x3b, 0x95, 0x4a, 0x71, 0x67, 0x7b, 0xa7, 0xb8, 0x57, 0xad, 0x96, 0x6a, 0xa5, 0x2a,
		0xc1, 0xa2, 0xe7, 0x51, 0x57, 0x44, 0xa2, 0x7b, 0x38, 0x7a, 0x2f, 0xc1, 0xd0, 0xf7, 0x29, 0x97,
		0xf8, 0x14, 0xa7, 0xad, 0x28, 0xe5, 0x4c, 0xe5, 0xa3, 0x14, 0x53, 0x62, 0xe4, 0x56, 0x8f, 0xd8,
		0x36, 0x49, 0xc8, 0x53, 0x1d, 0x46, 0xcb, 0x45, 0xe7, 0x87, 0x9c, 0xb6, 0xda, 0x20, 0x12, 0x6b,
		0x75, 0xe2, 0x2c, 0xb3, 0x19, 0x8d, 0x0a, 0xf1, 0x95, 0x23, 0xb6, 0x0f, 0x86, 0x37, 0x92, 0x92,
		0x2c, 0x96, 0xec, 0xe2, 0x28, 0xa3, 0x43, 0x1a, 0xa3, 0xf4, 0xd9, 0x8a, 0xc6, 0xd9, 0xf2, 0xb6,
		0x1c, 0x94, 0x24, 0x54, 0xac, 0xc2, 0xb4, 0x4e, 0x1f, 0x4c, 0x26, 0x01, 0xb2, 0x75, 0x1e, 0x10,
		0x1a, 0x24, 0x22, 0xea, 0xb9, 0x9d, 0x35, 0xc8, 0xf8, 0xc7, 0xd0, 0xd8, 0xe3, 0xb5, 0xd0, 0xa7,
		0x15, 0x7d, 0x5a, 0x95, 0x91, 0xc4, 0x86, 0xf5, 0x69, 0xcd, 0x8e, 0x8d, 0xbc, 0x6e, 0xad, 0x8f,
		0x97, 0x44, 0xcf, 0x56, 0x86, 0x83, 0x2a, 0xfb, 0xc0, 0x92, 0x1d, 0x5c, 0xb2, 0x03, 0x4c, 0x73,
		0x90, 0xf5, 0x30, 0xb5, 0xa5, 0xf5, 0x6c, 0x95, 0xdc, 0xaf, 0x8c, 0xa6, 0x3f, 0x19, 0xfa, 0xb5,
		0xa2, 0x5f, 0xab, 0x85, 0x7e, 0xad, 0x72, 0x49, 0x24, 0xe9, 0xfd, 0x5a, 0x45, 0xe0, 0x5e, 0xfb,
		0xa2, 0x4b, 0xd7, 0xaf, 0x75, 0xba, 0x80, 0xec, 0x5e, 0x90, 0x12, 0xa6, 0xfd, 0x3d, 0x79, 0xf1,
		0x94, 0x23, 0x97, 0xcb, 0x6a, 0x5e, 0xd1, 0xf4, 0xab, 0x2d, 0xa2, 0x5f, 0x2d, 0xfa, 0xd5, 0xea,
		0x04, 0xc6, 0x3c, 0xa0, 0x2c, 0x17, 0x9c, 0x25, 0x83, 0x74, 0xb6, 0x05, 0x64, 0xd9, 0x37, 0x99,
		0xc4, 0x5f, 0x87, 0xa1, 0x2f, 0xdc, 0x80, 0x42, 0xe2, 0xa7, 0xd6, 0x5b, 0x49, 0xd7, 0xe0, 0x8e,
		0x44, 0xd3, 0xaa, 0xe7, 0xf9, 0x89, 0x88, 0x9c, 0xf1, 0xc9, 0x23, 0xc8, 0x26, 0xcd, 0xde, 0xd7,
		0xe2, 0x42, 0x50, 0x0a, 0x50, 0x0a, 0x50, 0x0a, 0x50, 0x0a, 0x52, 0x25, 0x7e, 0xed, 0x51, 0xba,
		0xbf, 0xd4, 0x09, 0xbb, 0x1b, 0xa0, 0x13, 0x32, 0xe6, 0xd3, 0xf1, 0x08, 0xbd, 0xa3, 0xb9, 0x55,
		0xa0, 0x0d, 0xa0, 0x0d, 0xa0, 0x0d, 0xa0, 0x0d, 0x4c, 0x41, 0x98, 0x8d, 0xd3, 0x09, 0xff, 0x3b,
		0x14, 0xd1, 0xbd, 0x93, 0xee, 0xe8, 0xb7, 0x35, 0x66, 0x91, 0xfe, 0xf2, 0x9d, 0x2d, 0xac, 0x03,
		0xbd, 0x00, 0xbd, 0x00, 0xbd, 0x00, 0xbd, 0x20, 0x57, 0x2f, 0xf4, 0x6f, 0x07, 0x19, 0xc4, 0x38,
		0xc9, 0x68, 0x3d, 0x3a, 0xed, 0x50, 0x23, 0xb8, 0xf4, 0xa7, 0xc0, 0x4b, 0x53, 0xf5, 0xed, 0x58,
		0x74, 0xc2, 0xa0, 0x4b, 0x51, 0x8f, 0x6b, 0x5f, 0xba, 0x41, 0x5f, 0x90, 0x55, 0xb1, 0x13, 0x56,
		0x25, 0x9d, 0x7a, 0x01, 0x7d, 0x4d, 0xf4, 0x67, 0xd7, 0x1f, 0x0a, 0xba, 0x1e, 0x55, 0xd9, 0x3a,
		0x1f, 0x22, 0xb7, 0x93, 0x78, 0x61, 0x70, 0xec, 0xf5, 0x3d, 0xaa, 0xfa, 0x8f, 0xf9, 0x33, 0x22,
		0xfa, 0x6e, 0xe2, 0x7d, 0x13, 0x24, 0xe5, 0x12, 0x84, 0xb0, 0x31, 0x2f, 0x02, 0xee, 0x1d, 0xa3,
		0x08, 0x14, 0xcb, 0x15, 0x48, 0x81, 0x16, 0xaa, 0x88, 0xee, 0xaa, 0x57, 0x1b, 0x60, 0xe2, 0x7f,
		0x13, 0x51, 0x4c, 0x51, 0x79, 0x94, 0xe9, 0xdd, 0xe9, 0x02, 0x30, 0xea, 0x61, 0xd4, 0xc3, 0xa8,
		0x87, 0x51, 0x2f, 0xdf, 0xa8, 0xa7, 0x41, 0x98, 0x59, 0x94, 0xa9, 0xc2, 0xd4, 0x86, 0xa9, 0x0d,
		0x53, 0x5b, 0x8d, 0xa9, 0xbd, 0x0d, 0x11, 0x80, 0x9d, 0xad, 0xc6, 0xce, 0x46, 0x3d, 0xb5, 0xb4,
		0x9a, 0xc3, 0xc7, 0x12, 0xb7, 0xc7, 0x6f, 0xe5, 0xcf, 0x65, 0xa1, 0x2f, 0x4c, 0x6c, 0x64, 0xcf,
		0xf1, 0xf8, 0xad, 0xd4, 0x01, 0x2c, 0x12, 0xea, 0xab, 0xdf, 0xcb, 0xa8, 0xb8, 0x18, 0x8e, 0x9e,
		0x2e, 0xa6, 0xa8, 0xb9, 0x98, 0x5c, 0x19, 0x55, 0x17, 0x1a, 0x3a, 0x7c, 0xa8, 0xba, 0x50, 0xe3,
		0xd0, 0xe5, 0xbc, 0xea, 0xe2, 0x7f, 0x87, 0x22, 0xf2, 0x28, 0x13, 0x4d, 0xa7, 0x0b, 0xd0, 0xb0,
		0x4c, 0x25, 0xb0, 0x4c, 0x60, 0x99, 0xc0, 0x32, 0xe9, 0xc9, 0x32, 0x51, 0x0d, 0x91, 0xb0, 0x23,
		0xd1, 0x11, 0xde, 0x37, 0x82, 0x5a, 0xb1, 0xa5, 0x23, 0x95, 0xad, 0x64, 0xf8, 0x6c, 0x1d, 0x0c,
		0x96, 0xd3, 0x01, 0xe6, 0xd8, 0xe1, 0x8e, 0x1d, 0xf6, 0x78, 0xe1, 0x8f, 0x98, 0x4e, 0x31, 0x76,
		0xb6, 0x0e, 0xe9, 0xd0, 0xb1, 0xa5, 0x73, 0x49, 0xdd, 0xf5, 0x95, 0x01, 0x28, 0x97, 0x01, 0xb3,
		0x8c, 0x1e, 0xf4, 0x06, 0x00, 0xa9, 0x32, 0x40, 0x55, 0x06, 0xac, 0x6a, 0x00, 0x96, 0x16, 0x68,
		0x89, 0x01, 0x97, 0x0d, 0x78, 0xb3, 0x85, 0xbe, 0x95, 0xf8, 0x24, 0x3f, 0xcb, 0xe6, 0x28, 0x71,
		0x89, 0x3c, 0xcf, 0x38, 0x10, 0x36, 0x1b, 0x56, 0x25, 0x34, 0x2b, 0x84, 0x68, 0x55, 0x50, 0xad,
		0x1c, 0xb2, 0x95, 0x43, 0xb7, 0x5a, 0x08, 0xe7, 0x81, 0x72, 0x26, 0x48, 0xcf, 0xb6, 0x92, 0x6d,
		0xbc, 0xc8, 0xd2, 0x89, 0x1d, 0x7a, 0x41, 0xb2, 0x5d, 0xe6, 0x3c, 0xb0, 0x13, 0xfc, 0xdd, 0x61,
		0x5c, 0x92, 0x36, 0x25, 0xe6, 0xa9, 0x2f, 0x5e, 0x40, 0xb2, 0xb8, 0x52, 0x68, 0x9e, 0x5c, 0x7c,
		0x9a, 0x57, 0x51, 0x7c, 0xaf, 0x66, 0x7d, 0xee, 0x7c, 0x8b, 0xa7, 0xcf, 0x16, 0x57, 0x1e, 0x86,
		0x62, 0xd8, 0x9a, 0x17, 0x3d, 0xf7, 0x4e, 0xbd, 0xe8, 0x55, 0xca, 0x7b, 0x95, 0xbd, 0xda, 0x4e,
		0x79, 0xaf, 0x0a, 0x19, 0x54, 0x2d, 0x83, 0x6f, 0xf2, 0xb9, 0xda, 0xd5, 0x9b, 0x7c, 0x3c, 0x0f,
		0x03, 0x46, 0xd8, 0xdf, 0xca, 0x0a, 0x1c, 0xc9, 0x32, 0x1c, 0x49, 0x38, 0x92, 0x70, 0x24, 0xe1,
		0x48, 0xc2, 0x91, 0x84, 0x23, 0x09, 0x47, 0x12, 0x8e, 0x24, 0x8c, 0x78, 0x38, 0x92, 0x70, 0x24,
		0xe1, 0x48, 0xc2, 0x91, 0x34, 0xd7, 0x91, 0xdc, 0x56, 0xe0, 0x48, 0x6e, 0xc3, 0x91, 0x84, 0x23,
		0x09, 0x47, 0x12, 0x8e, 0x24, 0x1c, 0x49, 0x38, 0x92, 0x70, 0x24, 0xe1, 0x48, 0xc2, 0x88, 0x87,
		0x23, 0x09, 0x47, 0x12, 0x8e, 0x24, 0x1c, 0x49, 0x03, 0x57, 0xa0, 0xce, 0xce, 0x25, 0xea, 0xa2,
		0xf0, 0xe4, 0x7a, 0x4a, 0xbb, 0x2b, 0x8c, 0x2b, 0xed, 0x0b, 0x93, 0xe2, 0xd8, 0xc2, 0xb4, 0xcc,
		0xac, 0xc0, 0x51, 0x4b, 0x61, 0xa9, 0x6c, 0xc7, 0x30, 0x7e, 0xf0, 0xf6, 0xff, 0x3f, 0x7e, 0xf0,
		0xf6, 0xe5, 0xe4, 0xc1, 0xdb, 0xcd, 0xf4, 0xc1, 0xdf, 0x98, 0x79, 0x3c, 0xcc, 0xaa, 0x3f, 0x62,
		0x3a, 0x68, 0x5a, 0x1e, 0x30, 0xca, 0xe2, 0x41, 0xcd, 0x8e, 0x94, 0x6d, 0x48, 0x8f, 0x21, 0x02,
		0x31, 0xb7, 0xe3, 0x31, 0x87, 0x41, 0x5c, 0x1c, 0x9c, 0xae, 0x82, 0xc2, 0xe0, 0x95, 0x0b, 0xa0,
		0x30, 0xf8, 0x75, 0xaf, 0x1d, 0x85, 0xc1, 0x9b, 0xab, 0x98, 0x51, 0x18, 0xac, 0x1d, 0x50, 0x2e,
		0x03, 0x26, 0x0a, 0x83, 0x4d, 0x00, 0x52, 0x65, 0x80, 0xaa, 0x0c, 0x58, 0xd5, 0x00, 0x6c, 0x3e,
		0xa8, 0x07, 0x14, 0x06, 0xcb, 0x84, 0x62, 0x84, 0xe1, 0x8d, 0x86, 0x68, 0x55, 0x50, 0xad, 0x1c,
		0xb2, 0x95, 0x43, 0xb7, 0x5a, 0x08, 0xe7, 0x81, 0x72, 0x26, 0x48, 0xcf, 0xb6, 0x12, 0x61, 0x78,
		0xd2, 0x25, 0x11, 0x86, 0xe7, 0x58, 0x1c, 0x61, 0xf8, 0xe9, 0xd9, 0x42, 0x18, 0x5e, 0x91, 0xe8,
		0x21, 0x0c, 0xaf, 0x8f, 0x0c, 0x22, 0x0c, 0xaf, 0xf5, 0xf3, 0xa0, 0x30, 0x18, 0x8e, 0x24, 0x1c,
		0x49, 0x38, 0x92, 0x70, 0x24, 0xe1, 0x48, 0xc2, 0x91, 0x84, 0x23, 0x09, 0x47, 0x12, 0x46, 0x3c,
		0x1c, 0x49, 0x38, 0x92, 0x70, 0x24, 0xe1, 0x48, 0xea, 0xe7, 0x48, 0xa2, 0x30, 0x18, 0x8e, 0x24,
		0x1c, 0x49, 0x38, 0x92, 0x70, 0x24, 0xe1, 0x48, 0xc2, 0x91, 0x84, 0x23, 0x09, 0x47, 0x12, 0x8e,
		0x24, 0x1c, 0x49, 0xc8, 0x20, 0x1c, 0x49, 0x14, 0x06, 0x6b, 0x81, 0x40, 0x1b, 0x5d, 0x18, 0x1c,
		0x8b, 0x20, 0xd9, 0xb8, 0xa2, 0xe0, 0xa6, 0x08, 0x12, 0x14, 0x04, 0xb3, 0x1d, 0xb4, 0x8d, 0x2c,
		0x08, 0x26, 0xac, 0xdd, 0xd4, 0xed, 0x28, 0x19, 0x53, 0x08, 0xac, 0xf5, 0x30, 0x63, 0xe2, 0x43,
		0xa2, 0xd3, 0xe1, 0xa0, 0x18, 0x20, 0xae, 0xc7, 0x79, 0x90, 0x7b, 0x14, 0xe4, 0x09, 0xac, 0x44,
		0x61, 0xb5, 0x23, 0x31, 0x08, 0xa3, 0x84, 0x70, 0xa2, 0xff, 0x74, 0x01, 0x4c, 0xf4, 0xc7, 0x44,
		0xff, 0x9f, 0xbc, 0x4e, 0x4c, 0xf4, 0xcf, 0x9f, 0x12, 0x24, 0x9b, 0xe8, 0x4f, 0x5b, 0x99, 0xce,
		0x52, 0x91, 0xce, 0xd6, 0xb2, 0xa3, 0x8c, 0x96, 0x1d, 0x1a, 0x00, 0x1c, 0x3b, 0xd0, 0xb1, 0x03,
		0x1e, 0x2f, 0xf0, 0x99, 0xe9, 0x3a, 0x93, 0xb7, 0xec, 0x60, 0xa8, 0x18, 0xe7, 0xab, 0x14, 0x67,
		0xca, 0xc7, 0x60, 0xcb, 0xc3, 0x40, 0xb3, 0x0e, 0xb3, 0xa1, 0x54, 0x19, 0xa4, 0xaa, 0x81, 0x56,
		0x7a, 0xde, 0xd3, 0x62, 0x08, 0x07, 0xb0, 0xe5, 0x4f, 0xf0, 0xe7, 0x4d, 0x30, 0xe6, 0x4b, 0x30,
		0xe7, 0x49, 0x30, 0x66, 0xbb, 0xa8, 0xc8, 0x8b, 0x50, 0x95, 0x0f, 0xa1, 0x3c, 0x06, 0xad, 0x2e,
		0xf6, 0xcc, 0x98, 0xf7, 0xa0, 0x24, 0xdf, 0x41, 0x79, 0x9e, 0xc3, 0x26, 0xcb, 0x56, 0x4e, 0xe2,
		0xfe, 0x57, 0xa6, 0x86, 0x4f, 0x09, 0x69, 0x01, 0x86, 0xca, 0x69, 0xbe, 0x8a, 0x69, 0x38, 0x54,
		0x70, 0xa8, 0xe0, 0x50, 0xc1, 0xa1, 0x82, 0x43, 0x05, 0x87, 0x0a, 0x0e, 0x15, 0x8c, 0x5e, 0x38,
		0x54, 0x70, 0xa8, 0xe0, 0x50, 0xc1, 0xa1, 0x62, 0x75, 0xa8, 0xb6, 0x19, 0x1d, 0xaa, 0x6d, 0x38,
		0x54, 0x70, 0xa8, 0xe0, 0x50, 0xc1, 0xa1, 0x82, 0x43, 0x05, 0x87, 0x0a, 0x0e, 0x15, 0x1c, 0x2a,
		0x38, 0x54, 0x70, 0xa8, 0xe0, 0x50, 0xc1, 0xa1, 0xe2, 0x76, 0xa8, 0x50, 0xe0, 0xb7, 0x62, 0x1d,
		0x1d, 0x6a, 0x98, 0x26, 0xd5, 0x29, 0xe4, 0x45, 0xb3, 0xaa, 0x2b, 0x9a, 0x2e, 0xc7, 0xcf, 0x49,
		0x59, 0x27, 0x8b, 0x12, 0xbf, 0xdc, 0x1e, 0x8f, 0x1c, 0x96, 0xf8, 0x4d, 0x0e, 0x84, 0xb6, 0x25,
		0x7e, 0x6f, 0x34, 0x12, 0x79, 0x2a, 0x51, 0xd7, 0x41, 0xc4, 0x25, 0x8a, 0xb6, 0x62, 0x91, 0x96,
		0x23, 0xca, 0xeb, 0x0b, 0x9e, 0x04, 0xa1, 0xb3, 0xb3, 0xf7, 0xe4, 0x78, 0x5d, 0x69, 0x22, 0x97,
		0xf1, 0x1f, 0x73, 0x57, 0x97, 0x74, 0x44, 0xe4, 0x32, 0xc1, 0xd2, 0x19, 0x5f, 0x0a, 0x66, 0x97,
		0x90, 0xc1, 0xa5, 0x62, 0x6a, 0xc9, 0x19, 0x59, 0x72, 0xe6, 0x95, 0x96, 0x61, 0xd5, 0x4b, 0xed,
		0x48, 0x67, 0x46, 0x33, 0x89, 0xf5, 0x85, 0xdb, 0x8b, 0x44, 0x4f, 0xa6, 0xc4, 0x4e, 0xeb, 0x39,
		0x25, 0x72, 0x9d, 0xf6, 0xc5, 0x44, 0x33, 0x6e, 0x6d, 0x15, 0xc6, 0x9a, 0xa4, 0x30, 0x07, 0x5d,
		0xb9, 0x04, 0xfc, 0xd1, 0x6b, 0x21, 0x44, 0x7c, 0x79, 0x6f, 0x5d, 0x72, 0x05, 0xaf, 0x79, 0x90,
		0xdf, 0x03, 0xe0, 0xab, 0x00, 0xfc, 0x5e, 0x5e, 0xe1, 0x5e, 0x76, 0x75, 0xac, 0xdd, 0x99, 0x9e,
		0x28, 0xa2, 0xd6, 0x26, 0x93, 0xeb, 0xa3, 0xb3, 0x09, 0x4b, 0x67, 0x93, 0x1e, 0xfa, 0x9a, 0x28,
		0x84, 0x21, 0x0e, 0x38, 0x32, 0x83, 0xf7, 0x23, 0xeb, 0x6a, 0x92, 0x19, 0x29, 0xf4, 0x9d, 0x4d,
		0x1e, 0x97, 0xa2, 0xed, 0x6e, 0x52, 0xa4, 0xee, 0x6e, 0x52, 0xcc, 0x49, 0x77, 0x93, 0x1e, 0x7a,
		0x9b, 0x68, 0x0c, 0x7a, 0x9c, 0xe0, 0x47, 0x03, 0x82, 0x44, 0x60, 0x48, 0xe7, 0xaa, 0x33, 0xba,
		0xee, 0x1c, 0xae, 0xfc, 0x93, 0xae, 0x7d, 0x21, 0x15, 0xa3, 0xfd, 0x19, 0x8e, 0x7a, 0xe1, 0x83,
		0xc9, 0xcf, 0x29, 0xab, 0x6c, 0x4a, 0xdc, 0x8e, 0x22, 0x5c, 0x34, 0xbc, 0x66, 0xd4, 0x8f, 0x73,
		0xab, 0x41, 0x45, 0x42, 0x45, 0x42, 0x45, 0x42, 0x45, 0x42, 0x45, 0x6a, 0xaa, 0x22, 0xbf, 0x3c,
		0xaa, 0xc8, 0x7f, 0x76, 0x86, 0x51, 0x24, 0x82, 0xe4, 0xed, 0xbb, 0xc2, 0xd6, 0xd6, 0x23, 0x5b,
		0x7e, 0x35, 0xf9, 0x93, 0x59, 0x5c, 0x8f, 0x57, 0x7c, 0x96, 0x5d, 0xb9, 0x2b, 0xee, 0x90, 0x25,
		0x23, 0xe3, 0x25, 0xd6, 0xef, 0xd2, 0x54, 0x4b, 0xf9, 0x59, 0xd9, 0xf4, 0x84, 0x4d, 0xd8, 0x71,
		0xc4, 0x5d, 0xb2, 0x9f, 0x08, 0x5f, 0xdc, 0x8a, 0x24, 0xba, 0x77, 0xc2, 0xc0, 0xe9, 0xdc, 0xa4,
		0x69, 0xe6, 0x2c, 0x24, 0x4e, 0x9a, 0x23, 0xca, 0xc0, 0xe2, 0xe8, 0x4e, 0xe0, 0x5c, 0x21, 0x71,
		0xeb, 0xb9, 0x59, 0x2d, 0x73, 0x71, 0xae, 0x02, 0x09, 0x3f, 0x6d, 0xa9, 0xcb, 0x74, 0xc9, 0xbe,
		0xbb, 0x14, 0xbd, 0xf6, 0xc4, 0xbe, 0xdd, 0x80, 0x16, 0xed, 0x34, 0xdd, 0x8e, 0x49, 0xbb, 0x1c,
		0x93, 0x07, 0x31, 0xca, 0x08, 0x62, 0xb0, 0x39, 0x2f, 0x08, 0x62, 0xe4, 0xcf, 0x2c, 0x43, 0x10,
		0x03, 0x0c, 0x0d, 0x18, 0x1a, 0x30, 0x34, 0x60, 0x68, 0xc0, 0xd0, 0x30, 0x30, 0x34, 0x08, 0x62,
		0x58, 0x08, 0x62, 0x40, 0x45, 0x42, 0x45, 0x42, 0x45, 0x42, 0x45, 0x42, 0x45, 0x22, 0x88, 0x61,
		0x96, 0xb7, 0xbc, 0x31, 0x8c, 0x31, 0x55, 0x19, 0xbc, 0x0e, 0x84, 0x31, 0x41, 0xe9, 0x3b, 0xea,
		0x7d, 0xcd, 0x94, 0x73, 0xf3, 0x8b, 0x7e, 0x67, 0x25, 0x3b, 0x4f, 0x75, 0x60, 0xb7, 0xe2, 0xf6,
		0x5a, 0x44, 0xf1, 0x8d, 0x37, 0x70, 0xfa, 0x51, 0x38, 0x1c, 0xc4, 0xf2, 0x6b, 0xc1, 0x96, 0x97,
		0x40, 0x3d, 0x98, 0x14, 0xdf, 0x06, 0x25, 0xc0, 0x3c, 0xde, 0xca, 0x26, 0x95, 0x00, 0x4b, 0xaf,
		0x09, 0x4b, 0x8f, 0x3c, 0x5d, 0x30, 0x75, 0x7c, 0x79, 0x04, 0x53, 0x31, 0xeb, 0x5a, 0x3d, 0x7d,
		0x82, 0x59, 0xd7, 0x8c, 0x2e, 0x22, 0x59, 0x40, 0x95, 0x06, 0xb0, 0x58, 0x80, 0x6b, 0x11, 0xc0,
		0xc0, 0x12, 0x2b, 0x05, 0x36, 0x2e, 0x80, 0x63, 0x07, 0x3a, 0x76, 0xc0, 0xe3, 0x05, 0x3e, 0x3a,
		0xd6, 0xcd, 0x02, 0x53, 0xfc, 0x32, 0x0b, 0x8c, 0x83, 0x29, 0xde, 0xda, 0x1a, 0xd3, 0x70, 0x85,
		0x31, 0x24, 0x6f, 0x72, 0xb8, 0x94, 0x24, 0xf1, 0x71, 0x49, 0x7e, 0x28, 0x7b, 0x7f, 0x12, 0xd9,
		0xee, 0xe4, 0x36, 0x3c, 0x54, 0x1f, 0x54, 0x1f, 0x54, 0x9f, 0x66, 0xbe, 0x00, 0x93, 0x4f, 0xc0,
		0xea, 0x1b, 0x30, 0xf9, 0x08, 0x6c, 0xbe, 0x02, 0x27, 0x70, 0x2a, 0x00, 0x50, 0x6e, 0x20, 0x55,
		0x06, 0xa8, 0xca, 0x80, 0x55, 0x0d, 0xc0, 0xd2, 0x02, 0x2d, 0x31, 0xe0, 0xf2, 0xf9, 0x1c, 0x4b,
		0x27, 0xce, 0x1b, 0x7c, 0xab, 0x38, 0x6e, 0xb7, 0x1b, 0x89, 0x38, 0x66, 0x1c, 0xa8, 0x53, 0xda,
		0x65, 0x58, 0xeb, 0xc2, 0x4d, 0x12, 0x11, 0x05, 0x6c, 0x33, 0x75, 0xec, 0xb7, 0x6f, 0xbf, 0x14,
		0x9d, 0xbd, 0xab, 0x1f, 0x5f, 0x4a, 0xce, 0xde, 0xd5, 0xf8, 0xdb, 0x52, 0xfa, 0x9f, 0xf1, 0xf7,
		0xe5, 0x2f, 0x45, 0xa7, 0x32, 0xfd, 0xbe, 0xfa, 0xa5, 0xe8, 0x54, 0xaf, 0xde, 0x7d, 0xfd, 0xba,
		0xf5, 0xee, 0xfb, 0xf6, 0xc3, 0xcb, 0xff, 0xf0, 0xed, 0xff, 0xf9, 0xf2, 0xf5, 0xeb, 0xe0, 0xfb,
		0xd9, 0xc3, 0xe8, 0xff, 0x4f, 0x1e, 0xae, 0xfe, 0xef, 0xbb, 0xff, 0xb4, 0x31, 0xbf, 0x82, 0xff,
		0xdc, 0xda, 0xe3, 0x16, 0xf3, 0x22, 0xe2, 0x33, 0x67, 0xb2, 0x15, 0x61, 0xd1, 0xc0, 0xa2, 0x81,
		0x45, 0x03, 0x8b, 0x06, 0x16, 0x0d, 0x2c, 0x1a, 0x58, 0x34, 0xb0, 0x68, 0x24, 0xbd, 0xf4, 0x98,
		0x89, 0x63, 0xcc, 0xf8, 0xeb, 0xf1, 0x7a, 0xb0, 0x66, 0x60, 0xcd, 0xc0, 0x9a, 0x81, 0x35, 0x03,
		0x6b, 0x06, 0xd6, 0x0c, 0xac, 0x99, 0xcd, 0xb2, 0x66, 0x30, 0x5f, 0x74, 0x95, 0x1d, 0xa6, 0xae,
		0xda, 0x64, 0xa9, 0xc6, 0x60, 0x9c, 0xcc, 0x91, 0xd7, 0x31, 0xa3, 0xa7, 0xd9, 0xe3, 0x7e, 0x4c,
		0x9f, 0xb6, 0x9d, 0xfe, 0x07, 0xc3, 0x46, 0xa5, 0x9a, 0x57, 0x64, 0xe9, 0xe5, 0x27, 0x5e, 0x9c,
		0x1c, 0x24, 0x09, 0x51, 0xfe, 0xea, 0xa9, 0x17, 0xd4, 0x7d, 0x31, 0x32, 0x94, 0x88, 0x46, 0x6e,
		0xdb, 0xa7, 0xee, 0xdd, 0xcc, 0x0a, 0xa5, 0xdd, 0x4a, 0xa5, 0xb6, 0x53, 0xa9, 0x14, 0x77, 0xb6,
		0x77, 0x8a, 0x7b, 0xd5, 0x6a, 0xa9, 0x56, 0x22, 0x18, 0x34, 0x6e, 0x9f, 0x47, 0x5d, 0x11, 0x89,
		0xee, 0xe1, 0xe8, 0xb5, 0x04, 0x43, 0xdf, 0xa7, 0x5c, 0xe2, 0x53, 0x9c, 0xd2, 0xe3, 0xf2, 0x67,
		0x86, 0xa3, 0x4e, 0x76, 0x5d, 0x44, 0xcf, 0x4f, 0xad, 0xec, 0x6a, 0x0c, 0x47, 0xbd, 0xac, 0x42,
		0xb9, 0xd7, 0x4a, 0xde, 0xcd, 0xaf, 0x99, 0x5d, 0x94, 0xf0, 0x3c, 0xd5, 0xcd, 0xca, 0x4d, 0x95,
		0x25, 0x49, 0x8d, 0x25, 0xab, 0x8f, 0x2d, 0xa3, 0x3e, 0xd6, 0x24, 0x26, 0x0f, 0xf5, 0xb1, 0x3a,
		0xd7, 0xc7, 0x8a, 0xc0, 0xbd, 0xf6, 0x45, 0x97, 0xae, 0x42, 0x76, 0xba, 0x80, 0xec, 0xfa, 0x3b,
		0xd1, 0x73, 0x87, 0x7e, 0x42, 0x42, 0x86, 0xd9, 0xa9, 0xe5, 0x6d, 0x6b, 0xdd, 0xd4, 0x9c, 0x26,
		0x3c, 0x63, 0xfe, 0xd4, 0x48, 0xd4, 0x08, 0xab, 0x05, 0x63, 0x1e, 0x50, 0x36, 0x83, 0xc4, 0x21,
		0x0b, 0x7f, 0x64, 0x12, 0x7f, 0x1d, 0x86, 0xbe, 0x70, 0x03, 0x0a, 0x89, 0x9f, 0x5a, 0x6f, 0xa5,
		0x0d, 0xe8, 0xb8, 0xdf, 0xf3, 0xfc, 0x44, 0x44, 0xce, 0xf8, 0xe4, 0x89, 0x98, 0x4e, 0x19, 0x2e,
		0x2e, 0x04, 0xa5, 0x00, 0xa5, 0x00, 0xa5, 0x00, 0xa5, 0x20, 0xd9, 0x89, 0x8f, 0xbc, 0xa0, 0x4f,
		0xa9, 0x13, 0x76, 0x37, 0x40, 0x27, 0x3c, 0x36, 0x90, 0xf3, 0x08, 0xbd, 0xa3, 0xb9, 0x55, 0xa0,
		0x0d, 0xa0, 0x0d, 0xa0, 0x0d, 0xa0, 0x0d, 0x4c, 0x41, 0x98, 0x8d, 0xd3, 0x09, 0xff, 0x3b, 0x14,
		0xd1, 0xbd, 0x23, 0xee, 0x06, 0x5e, 0x44, 0xe9, 0x25, 0xcc, 0x2f, 0x03, 0xad, 0x00, 0xad, 0x00,
		0xad, 0x00, 0xad, 0x20, 0x55, 0xe2, 0x13, 0xef, 0x56, 0x24, 0x5e, 0xe7, 0xaf, 0xb8, 0x56, 0x21,
		0x54, 0x0a, 0x04, 0x59, 0xb1, 0xf6, 0xa7, 0xc0, 0x4b, 0xf3, 0x7e, 0xec, 0xc0, 0x0d, 0xc2, 0x58,
		0x74, 0xc2, 0xa0, 0x4b, 0x91, 0xe9, 0x6b, 0x5f, 0xa6, 0x83, 0x5f, 0xa9, 0x72, 0x6d, 0x09, 0xd3,
		0x20, 0x4f, 0xbd, 0x80, 0xbe, 0x16, 0xe5, 0xb3, 0xeb, 0x0f, 0x05, 0x43, 0xd5, 0xc6, 0x87, 0xc8,
		0xed, 0x24, 0x5e, 0x18, 0x1c, 0x7b, 0x7d, 0x8f, 0x2a, 0xa1, 0x6c, 0xfe, 0x80, 0x88, 0xbe, 0x9b,
		0x78, 0xdf, 0x04, 0x49, 0xfe, 0x15, 0x21, 0x66, 0xcc, 0x8b, 0x80, 0x7b, 0xc7, 0x27, 0x02, 0x3c,
		0x09, 0x78, 0x9b, 0x22, 0x15, 0x86, 0x64, 0xcf, 0x5e, 0x6d, 0x8c, 0xb5, 0x9f, 0xfa, 0x4f, 0xdf,
		0x5c, 0x9f, 0xda, 0xdc, 0xcf, 0xd6, 0x81, 0xbd, 0x0f, 0x7b, 0x1f, 0xf6, 0x3e, 0xec, 0x7d, 0xb9,
		0x2c, 0x50, 0xff, 0x76, 0x90, 0x41, 0x8c, 0x93, 0x8c, 0xd6, 0xa3, 0x33, 0xfb, 0x6b, 0x94, 0x66,
		0x3f, 0x4c, 0x7e, 0xc5, 0x26, 0x7f, 0x09, 0xc6, 0xdd, 0xc6, 0x9b, 0xfc, 0xc5, 0x72, 0x05, 0x52,
		0x00, 0x13, 0xdf, 0x78, 0x13, 0xff, 0x9b, 0x88, 0x62, 0x8a, 0xea, 0xa5, 0x4c, 0xef, 0x4e, 0x17,
		0x80, 0x51, 0x0f, 0xa3, 0x1e, 0x46, 0x3d, 0x8c, 0x7a, 0xf9, 0x46, 0x3d, 0x0d, 0xc2, 0xcc, 0xa2,
		0x4c, 0x15, 0xa6, 0x36, 0x4c, 0x6d, 0x98, 0xda, 0x6a, 0x4c, 0xed, 0x6d, 0x88, 0x00, 0xec, 0x6c,
		0x35, 0x76, 0x36, 0x4a, 0xae, 0x69, 0x4b, 0xae, 0x65, 0x37, 0x87, 0x51, 0x54, 0x66, 0x2d, 0xb1,
		0xeb, 0x8b, 0x3e, 0xb5, 0xd5, 0x5e, 0xc7, 0x61, 0x18, 0x4d, 0xfc, 0xe4, 0x4a, 0x98, 0x50, 0xac,
		0xa1, 0x3b, 0x88, 0x0a, 0x6c, 0x35, 0xee, 0x5e, 0xce, 0x2b, 0xb0, 0x27, 0x20, 0x20, 0x19, 0x63,
		0x9e, 0xc2, 0x1a, 0xe9, 0xcd, 0x3d, 0x2c, 0x8e, 0x89, 0xc5, 0xe0, 0xa3, 0xc0, 0x47, 0x81, 0x8f,
		0xd2, 0x0b, 0xb8, 0xb2, 0x0b, 0x77, 0xa6, 0xa7, 0x94, 0x78, 0x6e, 0xe3, 0x64, 0x1d, 0xc3, 0x07,
		0x37, 0x62, 0x66, 0xb1, 0x0e, 0x10, 0xc7, 0x0e, 0x75, 0xec, 0x90, 0xc7, 0x0b, 0x7d, 0xc4, 0xa4,
		0x8b, 0xa9, 0x83, 0x1b, 0x31, 0x1a, 0x40, 0x63, 0xc8, 0xe4, 0x84, 0x4e, 0x05, 0x10, 0xca, 0x0d,
		0xa5, 0xca, 0x20, 0x55, 0x19, 0xb4, 0xaa, 0x81, 0x58, 0x5a, 0xa8, 0x25, 0x86, 0xdc, 0x6c, 0xcb,
		0x30, 0x1a, 0x40, 0x2a, 0x82, 0x61, 0x34, 0x80, 0xe4, 0x2f, 0x0c, 0x3a, 0xfa, 0x39, 0x53, 0xc5,
		0x68, 0xd3, 0xcc, 0xae, 0x0a, 0xcb, 0x06, 0x96, 0x0d, 0x2c, 0x1b, 0x58, 0x36, 0xb0, 0x6c, 0x60,
		0xd9, 0xc0, 0xb2, 0xd9, 0x2c, 0xcb, 0x06, 0x43, 0x8f, 0x56, 0xd9, 0x64, 0x6a, 0xf3, 0x57, 0x56,
		0x65, 0x2f, 0x14, 0xe6, 0x42, 0x8d, 0x05, 0x52, 0xda, 0xde, 0x52, 0x9b, 0xf7, 0xe2, 0x75, 0x96,
		0xc6, 0x68, 0x8c, 0x3f, 0x9e, 0xfc, 0x30, 0x31, 0xf4, 0x4c, 0x19, 0x89, 0x44, 0x32, 0xdc, 0x44,
		0xe6, 0xa0, 0x82, 0x9f, 0x3a, 0x09, 0xc2, 0xf4, 0xd0, 0x50, 0x19, 0xa1, 0x21, 0x8d, 0xac, 0x7e,
		0x84, 0x86, 0x36, 0x59, 0x7f, 0x23, 0x34, 0x04, 0x02, 0x05, 0x04, 0x0a, 0x08, 0x14, 0x10, 0x28,
		0x20, 0x50, 0x40, 0xa0, 0x80, 0x40, 0xc9, 0x03, 0x81, 0x82, 0xd0, 0x10, 0x2c, 0x1b, 0x58, 0x36,
		0xb0, 0x6c, 0x60, 0xd9, 0xc0, 0xb2, 0x81, 0x65, 0x03, 0xcb, 0x26, 0x3f, 0x96, 0x0d, 0x42, 0x43,
		0xab, 0x6c, 0x32, 0xed, 0x43, 0x43, 0x94, 0xac, 0xbd, 0xa5, 0x77, 0x64, 0x48, 0x62, 0xd5, 0x34,
		0xfd, 0x69, 0xa0, 0x0a, 0x0c, 0x91, 0x7b, 0x0c, 0x9c, 0x9e, 0x02, 0xb1, 0x87, 0x80, 0x0a, 0x22,
		0x3d, 0x3d, 0x00, 0x84, 0x89, 0x36, 0x59, 0x97, 0x93, 0x5b, 0xf4, 0xd9, 0x89, 0xf1, 0x85, 0xdb,
		0x8b, 0x44, 0x8f, 0xf2, 0xc4, 0x4c, 0x8d, 0xf7, 0x1d, 0xc2, 0x35, 0x2e, 0x26, 0xe6, 0xc8, 0xd6,
		0xd6, 0x24, 0x31, 0x64, 0xce, 0x24, 0x30, 0x46, 0x21, 0x6a, 0x5d, 0xe9, 0xfb, 0xbb, 0xb8, 0x27,
		0xd6, 0x79, 0xf6, 0x89, 0x17, 0x27, 0x07, 0x49, 0x42, 0x54, 0x51, 0x7c, 0xea, 0x05, 0x75, 0x5f,
		0x8c, 0x20, 0x87, 0xa8, 0x23, 0x95, 0x7d, 0xea, 0xde, 0xcd, 0xac, 0xc0, 0x33, 0xc2, 0xc2, 0x3e,
		0x8f, 0xba, 0x22, 0x12, 0xdd, 0xc3, 0xd1, 0xdb, 0x09, 0x86, 0xbe, 0x4f, 0xb9, 0xc4, 0xa7, 0x58,
		0x44, 0x24, 0x2d, 0xb6, 0x64, 0x0b, 0x2b, 0xb1, 0x37, 0xa4, 0xbf, 0x17, 0x64, 0x93, 0x18, 0xd7,
		0x9a, 0xfa, 0x3d, 0x36, 0x9a, 0x9d, 0xa9, 0x3b, 0x13, 0x3a, 0x9e, 0x85, 0x7c, 0xf4, 0x3f, 0x5b,
		0x96, 0x7a, 0x6d, 0x1a, 0xa2, 0xbd, 0x51, 0x28, 0xd0, 0x53, 0x4b, 0x44, 0xe2, 0x0c, 0x52, 0xb9,
		0x96, 0x87, 0x7c, 0x4b, 0x83, 0xc5, 0xb2, 0x20, 0xb0, 0x24, 0x08, 0x2c, 0x87, 0x75, 0x85, 0x47,
		0x32, 0x0a, 0x2a, 0x44, 0x3f, 0x5b, 0x4a, 0x57, 0x42, 0x05, 0xe0, 0xb6, 0x1e, 0x8a, 0xbd, 0x1e,
		0x7b, 0x5e, 0xf7, 0x97, 0xaf, 0x14, 0x38, 0x59, 0x82, 0xc6, 0x2e, 0x60, 0x6b, 0x88, 0x15, 0xa7,
		0x38, 0xbd, 0x4e, 0x88, 0x5e, 0x2e, 0x02, 0x2f, 0xfb, 0x8b, 0x17, 0x0a, 0x8b, 0x2d, 0xee, 0x92,
		0xc8, 0x75, 0x86, 0xa3, 0xc7, 0xbe, 0xf6, 0x5f, 0xc7, 0xf9, 0xd8, 0x7f, 0xdf, 0x88, 0xd7, 0x87,
		0x2b, 0xd7, 0x10, 0xcc, 0x29, 0x87, 0x94, 0x71, 0x2e, 0x5e, 0x57, 0x04, 0x89, 0xd7, 0xf3, 0x44,
		0x64, 0xfd, 0xd3, 0xfa, 0x2d, 0xec, 0x38, 0x83, 0x70, 0x3c, 0x15, 0x2a, 0xde, 0x6f, 0x7c, 0x3c,
		0xbd, 0xf8, 0x6d, 0x1d, 0xc9, 0x92, 0xc4, 0xbb, 0xce, 0xf2, 0xaa, 0xe9, 0xbe, 0xad, 0xa9, 0x4d,
		0x64, 0xb3, 0xa6, 0x73, 0xac, 0xe8, 0xf3, 0x37, 0xf6, 0x8d, 0x02, 0x6d, 0x6a, 0x1f, 0x8b, 0xb8,
		0x13, 0x79, 0x03, 0x29, 0xaa, 0x34, 0x13, 0xa6, 0x46, 0xd0, 0xf1, 0x87, 0x5d, 0x61, 0x8d, 0x9e,
		0xcb, 0x1a, 0x3f, 0xfe, 0x30, 0x4a, 0x51, 0xd4, 0x1a, 0xbd, 0x2f, 0x2b, 0xb9, 0x11, 0xd6, 0x14,
		0xb9, 0x2c, 0x2f, 0xb6, 0xc2, 0x9e, 0x35, 0xda, 0x88, 0xaf, 0xc1, 0xe8, 0x0f, 0xd6, 0x7d, 0x9b,
		0x12, 0xc9, 0xfd, 0x59, 0x41, 0xeb, 0xce, 0x6c, 0x94, 0x04, 0x9d, 0x4d, 0xc1, 0xd4, 0xcf, 0xc9,
		0xdd, 0x7a, 0xef, 0xc0, 0x2c, 0xe5, 0xfe, 0xe2, 0xbf, 0xba, 0x22, 0xd5, 0x07, 0x6b, 0x1a, 0x0d,
		0x3c, 0xc6, 0xc2, 0x2b, 0x84, 0x98, 0xdc, 0x32, 0x78, 0x99, 0xd8, 0x3d, 0xff, 0xb5, 0xbf, 0xe0,
		0x05, 0xda, 0x5e, 0xec, 0xbd, 0xbc, 0xd5, 0xee, 0x63, 0x52, 0xd5, 0xe8, 0xaf, 0x5f, 0x28, 0x2e,
		0xaf, 0xab, 0x21, 0x7c, 0x75, 0xd0, 0x77, 0x9d, 0x60, 0xee, 0x5c, 0x90, 0xf6, 0xe5, 0x8f, 0x2a,
		0x03, 0x9f, 0xa5, 0x05, 0x55, 0xa5, 0x41, 0xf0, 0x52, 0x10, 0x74, 0xb4, 0x31, 0x9a, 0x99, 0xa8,
		0xaf, 0xad, 0x59, 0xb3, 0xfb, 0x7e, 0x78, 0xbd, 0xc6, 0x84, 0xe3, 0x4c, 0x60, 0x26, 0xd7, 0x79,
		0xe5, 0x0e, 0xaf, 0x57, 0x66, 0xbb, 0x76, 0x7e, 0x84, 0x8c, 0xfc, 0x07, 0x09, 0x47, 0x87, 0xd2,
		0x8e, 0x96, 0x92, 0x9f, 0x40, 0x6b, 0x49, 0xbf, 0xfa, 0x68, 0xa9, 0xa1, 0x0e, 0xd6, 0x2d, 0x13,
		0xb5, 0xdd, 0x9e, 0xe7, 0xc4, 0x6e, 0xcf, 0x93, 0x67, 0x97, 0x67, 0x57, 0x5c, 0x97, 0xbb, 0x95,
		0x52, 0xf5, 0x2e, 0x2d, 0x6d, 0x49, 0x66, 0x7a, 0x92, 0xc4, 0x63, 0x4a, 0xe1, 0x91, 0x58, 0x94,
		0x69, 0x45, 0x64, 0xe9, 0x43, 0x72, 0x8f, 0xf1, 0xfa, 0x6e, 0x86, 0x0c, 0x0a, 0x5a, 0x56, 0x15,
		0xb8, 0xed, 0xf6, 0xe4, 0x4f, 0x8f, 0x71, 0x7b, 0x98, 0x13, 0xa3, 0x13, 0x04, 0x50, 0x41, 0x01,
		0x39, 0x24, 0x90, 0x43, 0x03, 0x2d, 0x44, 0xc8, 0x81, 0x0a, 0x49, 0x90, 0x21, 0x1d, 0x3a, 0xe6,
		0x2c, 0x85, 0x89, 0x57, 0x4e, 0x34, 0x22, 0x26, 0x5b, 0x01, 0xd3, 0x8a, 0x59, 0xa6, 0xc3, 0xc8,
		0x85, 0x1d, 0x6a, 0xf8, 0x61, 0x83, 0x21, 0x36, 0x38, 0xe2, 0x81, 0x25, 0xb9, 0xf0, 0x24, 0x19,
		0xa6, 0xb2, 0x2d, 0xa0, 0x9f, 0x56, 0x4c, 0x97, 0xc0, 0x4c, 0x99, 0xb8, 0xbc, 0x22, 0x61, 0x39,
		0x83, 0xc9, 0x0d, 0x18, 0x90, 0x4f, 0x34, 0xdb, 0x87, 0x76, 0xa6, 0x0f, 0xc6, 0x91, 0x41, 0xe1,
		0x40, 0xe1, 0x6c, 0xea, 0x38, 0x32, 0x32, 0x3b, 0x99, 0xcb, 0x5e, 0x26, 0xb6, 0x9b, 0xc9, 0xe1,
		0x8c, 0x03, 0xd6, 0x18, 0xe1, 0x8d, 0x0b, 0xe6, 0xd8, 0xe1, 0x8e, 0x1d, 0xf6, 0x78, 0xe1, 0x8f,
		0x06, 0x06, 0x89, 0xe0, 0x90, 0xde, 0x0e, 0x5f, 0x3a, 0x31, 0xe3, 0x54, 0xa5, 0xe4, 0x9e, 0xa9,
		0xa8, 0xb0, 0x4a, 0xb8, 0x46, 0x63, 0xf2, 0x28, 0x87, 0x6e, 0xcc, 0xd8, 0x51, 0xf3, 0xe0, 0x43,
		0xa3, 0xdd, 0xfa, 0xf3, 0xa2, 0x4e, 0x7d, 0x3c, 0x3f, 0xbb, 0xfe, 0x50, 0xc4, 0x2c, 0x6d, 0x4e,
		0x98, 0x9a, 0x25, 0x65, 0x29, 0x64, 0x17, 0x9f, 0x2b, 0x0c, 0x3d, 0x83, 0xde, 0xe7, 0x70, 0xdf,
		0x6a, 0xa6, 0xf7, 0x5a, 0xba, 0x32, 0x0d, 0xf0, 0x8d, 0xe8, 0xaa, 0x21, 0x02, 0xf7, 0xda, 0x17,
		0x5d, 0x7a, 0xdb, 0x77, 0xba, 0x10, 0x4c, 0x5f, 0x98, 0xbe, 0x30, 0x7d, 0x61, 0xfa, 0x1a, 0x65,
		0xfa, 0x5e, 0x87, 0xa1, 0x2f, 0xdc, 0x80, 0xc3, 0xec, 0x2d, 0x6d, 0xb0, 0x32, 0xba, 0x75, 0xef,
		0x1c, 0xd1, 0xb9, 0x1d, 0x38, 0x03, 0x37, 0xb9, 0x89, 0xe9, 0x75, 0xd2, 0xc2, 0x7a, 0x50, 0x4d,
		0x50, 0x4d, 0x50, 0x4d, 0x50, 0x4d, 0x46, 0xa9, 0xa6, 0xa1, 0x17, 0x24, 0xbb, 0x0c, 0x8a, 0x89,
		0x92, 0x8e, 0xb9, 0x74, 0x83, 0xbe, 0x20, 0xe7, 0x2b, 0x18, 0xba, 0xe8, 0x9e, 0x7a, 0x01, 0x5f,
		0x07, 0xe9, 0x94, 0xe6, 0xa1, 0x6f, 0xfc, 0x9d, 0xad, 0xf7, 0x21, 0x72, 0x3b, 0x89, 0x17, 0x06,
		0xc7, 0x5e, 0xdf, 0xa3, 0xea, 0xb3, 0xb4, 0x5a, 0xd4, 0x45, 0xdf, 0x4d, 0xbc, 0x6f, 0x82, 0xa4,
		0x3d, 0x91, 0x22, 0x02, 0xc8, 0x3e, 0x75, 0xef, 0xf8, 0x45, 0xa5, 0x5c, 0xad, 0x42, 0x58, 0x8c,
		0x50, 0x4c, 0xf4, 0x57, 0xbf, 0xda, 0x64, 0x47, 0x43, 0x24, 0x91, 0xd7, 0x61, 0x70, 0x30, 0xc6,
		0xeb, 0x50, 0x8d, 0x1c, 0x13, 0x3d, 0x77, 0xe8, 0x27, 0xa4, 0x8a, 0xd3, 0x2e, 0x15, 0x69, 0x6c,
		0xba, 0x2b, 0x78, 0x5b, 0xf0, 0xb6, 0xe0, 0x6d, 0xc1, 0xdb, 0x32, 0xce, 0xdb, 0xda, 0x2e, 0x33,
		0xb8, 0x5b, 0x3b, 0x70, 0xb7, 0xe0, 0x6e, 0xc1, 0xdd, 0x32, 0xdb, 0xdd, 0xaa, 0x94, 0xf7, 0x2a,
		0x7b, 0xb5, 0x9d, 0xf2, 0x1e, 0xbc, 0x2e, 0x78, 0x5d, 0xf0, 0xba, 0x62, 0xbe, 0x4c, 0xdb, 0x18,
		0xa9, 0xb6, 0x70, 0x33, 0xe0, 0x66, 0xc0, 0xcd, 0x30, 0xd3, 0xcd, 0x40, 0xaa, 0xed, 0x9a, 0x1b,
		0xd8, 0x44, 0xae, 0xed, 0xba, 0x5b, 0x78, 0xfa, 0xe9, 0xa4, 0xd5, 0x38, 0x3a, 0x68, 0xb6, 0x90,
		0x70, 0xfb, 0xf2, 0xcd, 0xfb, 0x74, 0xc6, 0xb5, 0x75, 0xc8, 0xb9, 0xa5, 0xb5, 0x83, 0x31, 0x0b,
		0x85, 0xb4, 0xe7, 0x64, 0xec, 0xc5, 0x85, 0x71, 0x17, 0xb8, 0xc2, 0xb4, 0x0f, 0x55, 0xc1, 0xed,
		0x15, 0x48, 0xca, 0x7c, 0x2d, 0xf2, 0x6e, 0x95, 0xb1, 0x17, 0xb7, 0x3f, 0xa6, 0x4f, 0xd3, 0x3e,
		0xe8, 0x79, 0x4d, 0xb7, 0xe7, 0xb5, 0x0f, 0x7a, 0xed, 0x89, 0x31, 0xbf, 0x01, 0xd5, 0xdf, 0xb7,
		0x43, 0x3f, 0xf1, 0x9c, 0x24, 0x1c, 0x84, 0x7e, 0xd8, 0xbf, 0xa7, 0xab, 0x02, 0x5f, 0x58, 0x07,
		0xd5, 0xe0, 0xa8, 0x06, 0x57, 0xef, 0xb3, 0xa1, 0x1a, 0x9c, 0x51, 0xf3, 0x91, 0x55, 0x83, 0x13,
		0x35, 0xb0, 0x58, 0x3a, 0x50, 0x64, 0x1a, 0x8e, 0x10, 0xc2, 0x40, 0x4f, 0x81, 0x9e, 0x02, 0x3d,
		0xa5, 0x2b, 0x3d, 0x45, 0x05, 0x89, 0xd9, 0x02, 0xe4, 0xf4, 0xfd, 0xd2, 0xd1, 0x24, 0x66, 0xf1,
		0x17, 0xe1, 0x92, 0x38, 0x5a, 0x46, 0x0e, 0x9b, 0x9c, 0xf0, 0xa9, 0x00, 0x46, 0xb9, 0xe1, 0x54,
		0x19, 0xac, 0x2a, 0x83, 0x57, 0x35, 0x30, 0xcb, 0xc3, 0x65, 0x11, 0x93, 0x8c, 0xf4, 0xd1, 0x81,
		0xa5, 0x13, 0xc7, 0x13, 0x25, 0x58, 0xb2, 0x29, 0x19, 0x92, 0x19, 0x78, 0xa3, 0x06, 0x4b, 0x1b,
		0xcb, 0x14, 0x3c, 0xc8, 0xd6, 0x65, 0x0c, 0x22, 0x4c, 0xbf, 0xbe, 0xb3, 0xad, 0x64, 0xf1, 0x37,
		0xf0, 0x60, 0x3a, 0xf2, 0x7a, 0xec, 0x67, 0x8d, 0x71, 0x3f, 0x59, 0x56, 0xba, 0x42, 0xf2, 0x10,
		0xbf, 0x3c, 0x33, 0x24, 0xe7, 0x2c, 0x09, 0x6f, 0x0c, 0xf3, 0x1e, 0xe6, 0x3d, 0xcc, 0x7b, 0x98,
		0xf7, 0x30, 0xef, 0x61, 0xde, 0x33, 0x1a, 0x4d, 0x4d, 0xd8, 0xf7, 0x54, 0x5b, 0xcb, 0x98, 0x34,
		0xb4, 0x39, 0x46, 0x3e, 0x5b, 0x32, 0x11, 0xec, 0x7c, 0x4d, 0xec, 0x7c, 0xa3, 0xe2, 0x0e, 0xc4,
		0x49, 0x48, 0x8f, 0x1e, 0x8a, 0xaa, 0x64, 0xa4, 0xf9, 0x6c, 0x93, 0x02, 0x69, 0xe4, 0xd6, 0x52,
		0x94, 0xa3, 0x74, 0x3a, 0x7a, 0xc6, 0xd6, 0xe4, 0x11, 0x49, 0x32, 0x96, 0xe8, 0x84, 0x9b, 0xa4,
		0x56, 0x25, 0x71, 0x13, 0x8e, 0x3a, 0x95, 0x74, 0x19, 0xc3, 0x93, 0x00, 0xca, 0x48, 0x02, 0xd0,
		0xc8, 0xad, 0x45, 0x12, 0xc0, 0x26, 0x2b, 0x63, 0x24, 0x01, 0xac, 0x0b, 0x97, 0x60, 0x09, 0xb5,
		0x86, 0x51, 0x6e, 0x38, 0x55, 0x06, 0xab, 0xca, 0xe0, 0x55, 0x0d, 0xcc, 0x32, 0xf9, 0x6c, 0x60,
		0x09, 0xe5, 0xd8, 0x94, 0x48, 0x02, 0x90, 0xbd, 0x2e, 0x92, 0x00, 0x8c, 0x3c, 0xf2, 0x7a, 0xec,
		0x27, 0x92, 0x00, 0x74, 0x53, 0x34, 0x46, 0x26, 0x01, 0x50, 0x4f, 0x03, 0x59, 0x12, 0x5d, 0xda,
		0xa9, 0x20, 0x30, 0xed, 0x61, 0xda, 0xc3, 0xb4, 0x87, 0x69, 0x6f, 0xa8, 0x69, 0x4f, 0x3f, 0x75,
		0x64, 0xc9, 0xac, 0x2f, 0x41, 0x29, 0x2e, 0xed, 0x0d, 0x32, 0xe3, 0xa0, 0x18, 0xa1, 0x18, 0xa1,
		0x18, 0xa1, 0x18, 0x75, 0x51, 0x8c, 0xe0, 0xbc, 0x88, 0x36, 0x16, 0x99, 0x71, 0x64, 0x5b, 0x8b,
		0xcc, 0x38, 0x82, 0x4d, 0x45, 0x66, 0x9c, 0x9e, 0x1a, 0x07, 0xc1, 0x78, 0x6b, 0x13, 0x33, 0xe3,
		0x28, 0xb3, 0x99, 0x2c, 0x2d, 0x12, 0xe3, 0x9a, 0xe9, 0x13, 0xa2, 0x77, 0x9d, 0xfe, 0x87, 0x43,
		0x97, 0x43, 0x91, 0x93, 0x1e, 0x76, 0x73, 0xc7, 0x60, 0x13, 0x5a, 0xd9, 0xd1, 0xb1, 0x3e, 0xe4,
		0x2c, 0x0f, 0x11, 0xab, 0x83, 0x06, 0x76, 0x6a, 0x58, 0x19, 0x34, 0xb0, 0xcb, 0xa3, 0xfa, 0x23,
		0x63, 0x4d, 0x32, 0x89, 0xf7, 0x85, 0xdb, 0xa3, 0x61, 0x48, 0x32, 0x46, 0x84, 0x60, 0x4a, 0x91,
		0x7d, 0x31, 0xd1, 0xd8, 0x5b, 0x5b, 0x93, 0x4a, 0x8b, 0xc2, 0x23, 0x4e, 0x6e, 0x82, 0xde, 0x21,
		0x29, 0x3c, 0x20, 0x2d, 0x38, 0x20, 0x6f, 0x98, 0x5a, 0x86, 0xbe, 0x81, 0xbe, 0x81, 0xbe, 0x59,
		0x6b, 0x0b, 0xc8, 0x1a, 0xa6, 0xf2, 0x0d, 0xf5, 0xc1, 0x4c, 0x1f, 0x65, 0xb0, 0xc6, 0x08, 0x6f,
		0x5c, 0x30, 0xc7, 0x0e, 0x77, 0xec, 0xb0, 0xc7, 0x0b, 0x7f, 0x74, 0x3c, 0x96, 0x85, 0x99, 0x3e,
		0x2f, 0xb7, 0xc5, 0xf2, 0x37, 0xd3, 0x07, 0x23, 0x7d, 0xd6, 0xdd, 0x41, 0x9e, 0xc4, 0xfb, 0xfc,
		0x4d, 0xf3, 0xe1, 0x49, 0xb0, 0xc7, 0x28, 0x1f, 0xda, 0xab, 0x52, 0xb4, 0x09, 0xa0, 0x4e, 0x98,
		0x67, 0x4a, 0x94, 0x87, 0xe9, 0x0b, 0xd3, 0x17, 0xa6, 0x2f, 0x4c, 0x5f, 0xa2, 0x13, 0x43, 0x9f,
		0xc8, 0x4e, 0x9c, 0xc0, 0x6e, 0x86, 0x32, 0xba, 0x75, 0xef, 0x1c, 0xd1, 0xb9, 0x1d, 0x38, 0x03,
		0x37, 0xb9, 0x89, 0xe9, 0x75, 0xd2, 0xc2, 0x7a, 0x50, 0x4d, 0x50, 0x4d, 0x50, 0x4d, 0x50, 0x4d,
		0x46, 0xa9, 0xa6, 0xa1, 0x17, 0x24, 0xbb, 0x0c, 0x8a, 0x89, 0x92, 0x8e, 0xb9, 0x74, 0x83, 0xbe,
		0x20, 0xe7, 0x2b, 0x18, 0xf2, 0xfb, 0x4f, 0xbd, 0x80, 0x2f, 0xe7, 0x3d, 0xa5, 0x79, 0xe8, 0x4b,
		0x92, 0xb2, 0xf5, 0x3e, 0x44, 0x6e, 0x27, 0xf1, 0xc2, 0xe0, 0xd8, 0xeb, 0x7b, 0x49, 0xcc, 0xb8,
		0xf0, 0x99, 0xe8, 0xbb, 0x89, 0xf7, 0x6d, 0xf4, 0xac, 0x3d, 0xd7, 0x8f, 0x45, 0x1e, 0x08, 0x20,
		0xfb, 0xd4, 0xbd, 0xe3, 0x17, 0x95, 0x72, 0xb5, 0x0a, 0x61, 0x31, 0x42, 0x31, 0xd1, 0x5f, 0xfd,
		0x6a, 0x93, 0x1d, 0x0d, 0x91, 0x44, 0x5e, 0x87, 0xc1, 0xc1, 0x18, 0xaf, 0x43, 0xd5, 0x2a, 0x4f,
		0xf4, 0xdc, 0xa1, 0x9f, 0x90, 0x2a, 0x4e, 0xbb, 0x54, 0xa4, 0xb1, 0xe9, 0xae, 0xe0, 0x6d, 0xc1,
		0xdb, 0x82, 0xb7, 0x05, 0x6f, 0xcb, 0x38, 0x6f, 0x6b, 0xbb, 0xcc, 0xe0, 0x6e, 0xed, 0xc0, 0xdd,
		0x82, 0xbb, 0x05, 0x77, 0xcb, 0x6c, 0x77, 0xab, 0x52, 0xde, 0xab, 0xec, 0xd5, 0x76, 0xca, 0x7b,
		0xf0, 0xba, 0xe0, 0x75, 0xc1, 0xeb, 0x8a, 0xf9, 0x32, 0x6d, 0x63, 0xa4, 0xda, 0xc2, 0xcd, 0x80,
		0x9b, 0x01, 0x37, 0xc3, 0x4c, 0x37, 0x03, 0xa9, 0xb6, 0x6b, 0x6e, 0x60, 0x13, 0xb9, 0xb6, 0xeb,
		0x6e, 0x21, 0x63, 0xbf, 0x9f, 0xfc, 0x25, 0xdc, 0xb2, 0xf5, 0xf5, 0x41, 0xce, 0x2d, 0xb1, 0x1d,
		0x8c, 0x16, 0x24, 0x2a, 0x5a, 0x90, 0x50, 0x35, 0xe2, 0x51, 0xd1, 0x79, 0x84, 0xa0, 0xe5, 0x8e,
		0xc4, 0xca, 0xef, 0x37, 0x1a, 0xc9, 0xf5, 0xc8, 0xbc, 0x9e, 0xad, 0x93, 0xb4, 0x64, 0xbb, 0x71,
		0xf6, 0x89, 0x17, 0x27, 0x07, 0x49, 0x22, 0xb7, 0x92, 0xd4, 0x3e, 0xf5, 0x82, 0xba, 0x2f, 0x46,
		0x56, 0xb3, 0x64, 0xce, 0xc5, 0x3e, 0x75, 0xef, 0x66, 0xae, 0x5c, 0xda, 0xad, 0x54, 0x6a, 0x3b,
		0x95, 0x4a, 0x71, 0x67, 0x7b, 0xa7, 0xb8, 0x57, 0xad, 0x96, 0x6a, 0x32, 0x4d, 0x37, 0xfb, 0x3c,
		0xea, 0x8a, 0x48, 0x74, 0x0f, 0x47, 0xef, 0x20, 0x18, 0xfa, 0x3e, 0xc5, 0xa5, 0x3f, 0xc5, 0x22,
		0x92, 0x4a, 0x12, 0xc9, 0x12, 0x3d, 0x22, 0x28, 0x55, 0x06, 0xa1, 0xb6, 0xd4, 0x96, 0x0e, 0xdc,
		0xa0, 0x29, 0x07, 0x2e, 0xd7, 0x07, 0xb7, 0xf5, 0xae, 0xb0, 0xa6, 0x6c, 0xca, 0x96, 0x49, 0x35,
		0xb2, 0x28, 0x41, 0x10, 0xb9, 0x05, 0x70, 0x3d, 0xe9, 0x7b, 0xbd, 0xcc, 0xac, 0x21, 0x2f, 0x76,
		0x67, 0xca, 0x18, 0xae, 0x27, 0x27, 0x99, 0x07, 0x23, 0x65, 0x48, 0xb0, 0xa4, 0xc6, 0x2a, 0xd2,
		0xe8, 0x50, 0x99, 0xb4, 0x27, 0x01, 0xbd, 0x29, 0x9b, 0xc6, 0x24, 0xa3, 0x2b, 0xc9, 0x68, 0x49,
		0x1a, 0xfa, 0x51, 0x2d, 0x8a, 0xcb, 0x6a, 0x5c, 0x62, 0xbb, 0xc3, 0xe4, 0x46, 0x04, 0x89, 0xd7,
		0x49, 0x55, 0x82, 0xd3, 0xb9, 0x11, 0x9d, 0xbf, 0xe4, 0xc9, 0x4a, 0xd6, 0xa4, 0x64, 0xd5, 0x2a,
		0x92, 0xde, 0x2e, 0x45, 0xc6, 0x9a, 0x3d, 0x92, 0x3e, 0x39, 0xf6, 0xc2, 0x95, 0x2c, 0x37, 0x46,
		0x6a, 0x70, 0x48, 0x7a, 0x30, 0x88, 0x22, 0xf8, 0x43, 0x18, 0xec, 0xa1, 0x0a, 0xee, 0x90, 0x07,
		0x73, 0xc8, 0x83, 0x37, 0xb4, 0xc1, 0x1a, 0xbd, 0xa8, 0x01, 0xe9, 0xc1, 0x17, 0xc2, 0xe2, 0x4e,
		0xc9, 0xc5, 0x9c, 0x12, 0xdc, 0x18, 0x09, 0xb6, 0x49, 0x27, 0x0e, 0x06, 0xce, 0xb8, 0x8a, 0xdf,
		0x09, 0x03, 0x67, 0x50, 0x1e, 0x38, 0xbe, 0x17, 0xfc, 0x15, 0xcb, 0xd7, 0x40, 0x4f, 0xae, 0x04,
		0x2d, 0x04, 0x2d, 0x04, 0x2d, 0x04, 0x2d, 0x04, 0x2d, 0xb4, 0xb1, 0x5a, 0xa8, 0xe7, 0xc6, 0x89,
		0xd3, 0xf3, 0xc3, 0xb0, 0xeb, 0x05, 0x7d, 0xf9, 0xaa, 0x67, 0xfe, 0xf2, 0xd0, 0x37, 0xd0, 0x37,
		0xd0, 0x37, 0xd0, 0x37, 0xd0, 0x37, 0x1b, 0xab, 0x6f, 0x6e, 0x84, 0xef, 0x87, 0xce, 0xc0, 0xed,
		0xd2, 0xe8, 0x9b, 0xf9, 0xcb, 0xeb, 0xac, 0x6f, 0x9a, 0xad, 0xcb, 0xc6, 0x51, 0x0b, 0x1a, 0x07,
		0x1a, 0x07, 0x1a, 0x07, 0x1a, 0x67, 0x6d, 0xac, 0x73, 0x92, 0xd1, 0x3a, 0x04, 0xca, 0xa7, 0x22,
		0xf1, 0x9a, 0xf5, 0x60, 0x78, 0x2b, 0xff, 0x38, 0xb4, 0xc2, 0x66, 0x12, 0xc9, 0xd4, 0x26, 0x73,
		0x57, 0x2f, 0xa6, 0xe9, 0xcf, 0x63, 0xb0, 0x26, 0xc8, 0x9f, 0x2b, 0x8d, 0x2e, 0x7f, 0x72, 0x7e,
		0xde, 0xa4, 0xc8, 0xac, 0xb6, 0xcb, 0x69, 0x9b, 0xe4, 0xe3, 0x83, 0x8b, 0x56, 0xe3, 0x33, 0xc9,
		0x02, 0xdb, 0xa3, 0x05, 0x8e, 0x1b, 0xcd, 0x83, 0xc3, 0x93, 0xba, 0xad, 0xf7, 0x78, 0x9d, 0xb0,
		0x91, 0xe2, 0x0d, 0x81, 0x88, 0x64, 0x1b, 0x2c, 0x7d, 0x30, 0xc9, 0xd8, 0xfc, 0x98, 0x6c, 0xef,
		0xbe, 0xb5, 0x4d, 0x70, 0xf5, 0xb1, 0xec, 0x49, 0x9f, 0xd5, 0x32, 0x6b, 0xe3, 0xec, 0x5b, 0xc5,
		0x7c, 0x67, 0x6b, 0x6a, 0x61, 0x59, 0x7b, 0x5e, 0xd7, 0x49, 0xfc, 0x6f, 0xf2, 0x6d, 0xea, 0xe9,
		0x85, 0x75, 0xb6, 0xa6, 0xd3, 0xfc, 0x47, 0x18, 0xd3, 0x30, 0xa6, 0x61, 0x4c, 0xc3, 0x98, 0xce,
		0x27, 0x7d, 0x23, 0x69, 0x0b, 0xc5, 0x5d, 0x12, 0xb9, 0xce, 0x30, 0x88, 0x13, 0xf7, 0xda, 0x97,
		0xbc, 0x99, 0x91, 0xe8, 0x89, 0x48, 0x04, 0x1d, 0xf9, 0xcd, 0x50, 0x08, 0xe7, 0xb2, 0x5d, 0x7e,
		0x38, 0xaa, 0xed, 0x96, 0xcb, 0xfb, 0x56, 0xa3, 0xe9, 0x34, 0x9a, 0x56, 0x3a, 0xd7, 0xd6, 0x99,
		0x26, 0xb8, 0x6e, 0x59, 0xad, 0x93, 0xcf, 0xd6, 0x8e, 0xe1, 0x43, 0xdb, 0x1e, 0xdf, 0x4b, 0x9e,
		0xe6, 0xb6, 0x3d, 0xeb, 0xc5, 0xe9, 0x5e, 0xc0, 0x26, 0xed, 0x6a, 0x57, 0x79, 0x32, 0x65, 0x27,
		0x2f, 0x91, 0xc0, 0x96, 0x9d, 0x5e, 0x59, 0x67, 0x63, 0xb6, 0x08, 0x43, 0x16, 0x86, 0x2c, 0x0c,
		0x59, 0x18, 0xb2, 0xaf, 0x91, 0xd8, 0x78, 0xcc, 0x85, 0x12, 0xd8, 0xb1, 0xbb, 0x1b, 0x63, 0xc7,
		0xc6, 0x89, 0x9b, 0x0c, 0x63, 0x93, 0x8c, 0xd8, 0xae, 0x18, 0x44, 0xa2, 0xe3, 0x26, 0x24, 0x03,
		0xa1, 0x38, 0x4d, 0xd5, 0xc9, 0xd6, 0xe7, 0xc9, 0x4e, 0x9d, 0x79, 0x37, 0xb0, 0x46, 0x0d, 0xb6,
		0x46, 0x1d, 0xaf, 0x4b, 0x67, 0x90, 0x8e, 0x2e, 0x0e, 0x7b, 0x0d, 0xf6, 0x1a, 0xec, 0xb5, 0x0d,
		0xb3, 0xd7, 0x86, 0x5e, 0x90, 0x94, 0x6a, 0x04, 0xf6, 0x5a, 0x4d, 0xe2, 0x25, 0x69, 0x3a, 0x1c,
		0x13, 0xd8, 0x43, 0x94, 0x1d, 0x8c, 0xa9, 0x3b, 0x16, 0xb3, 0x75, 0x9b, 0xa5, 0xef, 0x2e, 0x4b,
		0xd1, 0xed, 0x94, 0xb2, 0xe3, 0x70, 0xf6, 0x6a, 0x6b, 0xd5, 0xea, 0x76, 0x15, 0xaf, 0x77, 0xb3,
		0xad, 0x4e, 0x44, 0x5a, 0x68, 0x9c, 0xd4, 0x9f, 0x12, 0xf6, 0x08, 0xb1, 0x68, 0xe8, 0xba, 0xfe,
		0xfc, 0x8d, 0x01, 0x57, 0x0c, 0xf4, 0x66, 0x7d, 0xf1, 0x4d, 0xf8, 0x4e, 0xc7, 0x1d, 0xb8, 0xd7,
		0x9e, 0xef, 0x25, 0xf7, 0xf2, 0x5d, 0xda, 0xa5, 0x15, 0x74, 0x8e, 0xb5, 0x9c, 0xd4, 0x3f, 0xd7,
		0x4f, 0xda, 0xa5, 0x76, 0x19, 0x31, 0x17, 0xf8, 0xf0, 0xf0, 0xe1, 0xe1, 0xc3, 0xbf, 0x1e, 0xf1,
		0x90, 0x81, 0x4f, 0x98, 0x81, 0x3f, 0xc1, 0x69, 0xba, 0x14, 0xfc, 0xf4, 0xfa, 0x65, 0xb2, 0x24,
		0x7c, 0xc9, 0x7a, 0x86, 0xc8, 0xd1, 0xa6, 0xcc, 0x92, 0x9f, 0xbe, 0x41, 0x12, 0xbf, 0x77, 0x66,
		0x7f, 0x69, 0x92, 0xf0, 0xa7, 0xf2, 0xb1, 0x6f, 0x95, 0x90, 0xcb, 0x4e, 0x6e, 0xa4, 0xde, 0xba,
		0x77, 0x8e, 0xe8, 0xdc, 0x0e, 0x9c, 0x81, 0x9b, 0xdc, 0x10, 0x74, 0xc4, 0x59, 0xb8, 0x3e, 0x8c,
		0x36, 0x18, 0x6d, 0x30, 0xda, 0x36, 0xcc, 0x68, 0x93, 0x3d, 0xe8, 0x9f, 0x60, 0xb0, 0x3f, 0xe2,
		0x2e, 0x16, 0xe2, 0x2e, 0x0a, 0xcd, 0x41, 0x8b, 0x2d, 0xee, 0x42, 0x36, 0x48, 0x1f, 0x51, 0x17,
		0xf2, 0xab, 0x5d, 0xe5, 0xcb, 0xf0, 0xf4, 0x6e, 0x87, 0xb7, 0x8e, 0x1b, 0x09, 0xd7, 0x71, 0xbb,
		0xdd, 0x48, 0xc4, 0xb1, 0xa0, 0x31, 0x40, 0x57, 0xad, 0xa3, 0x33, 0x53, 0xba, 0x0d, 0x86, 0x14,
		0xc6, 0x36, 0x8c, 0x6d, 0x18, 0xdb, 0x30, 0xb6, 0x61, 0x6c, 0xc3, 0x1e, 0x83, 0xb1, 0x0d, 0x63,
		0x1b, 0xc6, 0xf6, 0x5a, 0x2f, 0x31, 0x10, 0x89, 0x7c, 0xcb, 0x7a, 0x74, 0x51, 0x98, 0x98, 0x30,
		0x31, 0x61, 0x62, 0x6e, 0x98, 0x89, 0x29, 0xef, 0xe0, 0x5b, 0x73, 0x55, 0x8f, 0x12, 0xaf, 0x79,
		0xe1, 0x26, 0x89, 0x88, 0x02, 0xe9, 0x36, 0xa6, 0xfd, 0xc5, 0x75, 0x7a, 0x07, 0xce, 0x87, 0xa2,
		0xb3, 0x77, 0xf5, 0xbd, 0xfc, 0xf0, 0xf6, 0xeb, 0xd7, 0xad, 0xd9, 0x4f, 0x2a, 0x0f, 0xef, 0xbe,
		0x6f, 0xbf, 0xdf, 0x7b, 0x58, 0xf8, 0xb8, 0xfc, 0x20, 0x4f, 0xc8, 0xae, 0x64, 0xee, 0xd2, 0x79,
		0xb3, 0xf1, 0x07, 0xd9, 0x56, 0xfd, 0xeb, 0x95, 0x7b, 0xf5, 0x0f, 0x3b, 0xa7, 0x69, 0xca, 0x18,
		0xe1, 0xfa, 0x93, 0xc5, 0x36, 0x7a, 0x84, 0x2b, 0x12, 0xd8, 0x17, 0x54, 0x4c, 0x23, 0x18, 0x61,
		0x52, 0x3a, 0xc7, 0xcd, 0xf5, 0xad, 0xf3, 0xa8, 0xef, 0x06, 0xde, 0xbf, 0xd3, 0x1f, 0xad, 0x5e,
		0x18, 0x59, 0xcd, 0xc4, 0x0d, 0xba, 0x6e, 0xd4, 0x9d, 0x7c, 0xf6, 0xde, 0x6a, 0x04, 0xbd, 0x30,
		0xba, 0x4d, 0x7f, 0xf8, 0x1a, 0x24, 0xa2, 0x73, 0x13, 0x84, 0x7e, 0xd8, 0xbf, 0xb7, 0x1c, 0xeb,
		0x7c, 0x20, 0x02, 0xab, 0x79, 0x1f, 0x27, 0xe2, 0x36, 0xb6, 0xd2, 0xcb, 0x76, 0xc2, 0x20, 0x10,
		0xa9, 0xf3, 0xe4, 0x4c, 0x86, 0x6c, 0x5a, 0xb1, 0x88, 0xbe, 0x79, 0x1d, 0xf1, 0x35, 0x38, 0x16,
		0x3d, 0x2f, 0xf0, 0xd2, 0x75, 0x1c, 0xab, 0xd1, 0x3c, 0x2f, 0x58, 0x8d, 0xfa, 0x91, 0xb5, 0xbb,
		0x5d, 0xd9, 0xdd, 0x2f, 0x17, 0x8b, 0xe5, 0x2d, 0xe4, 0xce, 0xab, 0x35, 0xe0, 0x56, 0x1a, 0x72,
		0xda, 0x0a, 0x0b, 0x7c, 0x65, 0x03, 0x7d, 0xe5, 0x41, 0xe8, 0xd1, 0x74, 0xf7, 0x9c, 0x5e, 0x18,
		0xdd, 0x3d, 0xc1, 0x0d, 0x80, 0x1b, 0x00, 0x37, 0x90, 0x4b, 0x6e, 0x00, 0xdd, 0x3d, 0x37, 0xd5,
		0x64, 0xbf, 0xfc, 0x70, 0x54, 0x2b, 0x6f, 0x97, 0xf7, 0xad, 0x8b, 0x61, 0xd4, 0x17, 0xd6, 0x79,
		0xe4, 0xf5, 0xbd, 0xc0, 0x4d, 0xc2, 0xc8, 0x6a, 0x74, 0x45, 0x90, 0x78, 0xbd, 0xc9, 0x5c, 0xe6,
		0xb4, 0x5d, 0xe4, 0xc8, 0x2e, 0x4b, 0x2b, 0x1d, 0xc7, 0xdd, 0x23, 0x4b, 0xdb, 0xb0, 0xac, 0x75,
		0xb4, 0xac, 0xd7, 0x7d, 0xa7, 0x30, 0x80, 0x0d, 0x34, 0x80, 0xff, 0x16, 0x5e, 0xff, 0x26, 0x11,
		0xdd, 0x34, 0x6f, 0x5f, 0xbe, 0x19, 0x3c, 0x7f, 0x79, 0x18, 0xc3, 0x30, 0x86, 0x61, 0x0c, 0xc3,
		0x18, 0x86, 0x31, 0xac, 0xc4, 0x18, 0x7e, 0xa3, 0xf6, 0x0a, 0x6b, 0xbe, 0x42, 0xfb, 0x20, 0x08,
		0xc2, 0x24, 0xb5, 0x40, 0xa4, 0xbc, 0x40, 0x3b, 0xee, 0xdc, 0x88, 0x5b, 0x77, 0xe0, 0x26, 0x37,
		0xa3, 0xd7, 0x57, 0x08, 0x07, 0x22, 0xe8, 0xa4, 0x10, 0xe9, 0x04, 0x63, 0xf2, 0xcf, 0x99, 0x76,
		0x11, 0x2c, 0x2c, 0x7e, 0x10, 0x2f, 0x7d, 0x52, 0x18, 0x44, 0x61, 0x12, 0x76, 0x42, 0x3f, 0xce,
		0xbe, 0x2b, 0x8c, 0xce, 0x51, 0xa1, 0xef, 0x87, 0xd7, 0xae, 0x5f, 0x18, 0x5f, 0x59, 0x82, 0x70,
		0xd8, 0x71, 0x12, 0x0d, 0x3b, 0x49, 0x30, 0x91, 0xba, 0xf3, 0xec, 0xae, 0x27, 0x8c, 0xe5, 0xb4,
		0x8d, 0x48, 0x7b, 0xe1, 0xe7, 0x78, 0xf1, 0x83, 0xf6, 0xc5, 0xf4, 0x8e, 0xb3, 0xef, 0xda, 0x8d,
		0xd8, 0x8b, 0xdb, 0x1f, 0xd3, 0x3b, 0x6e, 0x4f, 0xd4, 0xc5, 0x1b, 0x35, 0x02, 0xb3, 0x86, 0xb0,
		0xd8, 0xfd, 0xc8, 0xed, 0x88, 0xde, 0xd0, 0x77, 0x22, 0x11, 0x27, 0x6e, 0xb4, 0x7e, 0x36, 0x4c,
		0x76, 0xc6, 0x97, 0xae, 0xbc, 0xa6, 0x48, 0x4f, 0x0f, 0xf8, 0x9a, 0x97, 0x91, 0xa5, 0xd9, 0x65,
		0x6a, 0x74, 0x02, 0x4d, 0x2e, 0x5b, 0x83, 0x93, 0x69, 0x6e, 0x32, 0x8d, 0x4d, 0xa3, 0xa9, 0xd5,
		0xc2, 0xfa, 0xb1, 0x27, 0x27, 0x46, 0x6e, 0x77, 0xa6, 0xa7, 0x40, 0xb2, 0x0f, 0x23, 0x0d, 0xba,
		0x25, 0x1e, 0x79, 0x18, 0xf5, 0x30, 0xea, 0x61, 0xd4, 0xcb, 0x86, 0x90, 0xec, 0x82, 0x22, 0x70,
		0xaf, 0x7d, 0xd1, 0x95, 0x2f, 0x56, 0xd3, 0x93, 0x30, 0x5d, 0x40, 0xf2, 0x3b, 0xa7, 0x60, 0x46,
		0x28, 0x18, 0x12, 0xc9, 0x4c, 0x09, 0x11, 0x63, 0x42, 0x06, 0xb2, 0x94, 0x60, 0xcb, 0x00, 0xba,
		0xd4, 0xe0, 0xcb, 0x06, 0xc2, 0x6c, 0x60, 0xcc, 0x03, 0xca, 0x72, 0xc1, 0x59, 0x32, 0x48, 0xd3,
		0x31, 0x30, 0x0c, 0x4c, 0x0c, 0x11, 0x23, 0x23, 0xff, 0x85, 0x49, 0x7c, 0x59, 0xf6, 0x8d, 0xf0,
		0x07, 0x22, 0x72, 0xc2, 0xc0, 0xbf, 0xa7, 0x53, 0x84, 0xb3, 0x8b, 0x40, 0x19, 0x40, 0x19, 0x40,
		0x19, 0x40, 0x19, 0x6c, 0xb8, 0x32, 0x90, 0xbc, 0xc5, 0x84, 0xb9, 0x2b, 0xd9, 0x1a, 0x74, 0x39,
		0x2c, 0xd3, 0x2f, 0x1a, 0x50, 0xb1, 0x16, 0x72, 0x5a, 0xac, 0xea, 0x76, 0xb1, 0xb6, 0x6f, 0x5d,
		0x8e, 0xd9, 0x5d, 0xab, 0xe9, 0xf5, 0x03, 0xd7, 0xf7, 0x82, 0xfe, 0x63, 0xba, 0xc3, 0x7f, 0x58,
		0xe9, 0xaf, 0xed, 0xac, 0xfc, 0xb5, 0xaf, 0x41, 0xf6, 0x7b, 0x44, 0xe0, 0xc4, 0x81, 0xb4, 0xab,
		0x10, 0x97, 0x3a, 0xe3, 0x85, 0x1d, 0x7c, 0x57, 0x82, 0xb0, 0x5c, 0x09, 0x20, 0xbb, 0xef, 0x87,
		0x37, 0x66, 0x5c, 0xf5, 0x6a, 0x03, 0x8c, 0x64, 0x2f, 0x48, 0x44, 0xd4, 0x73, 0x3b, 0xc2, 0x49,
		0xbc, 0x5b, 0xe1, 0x88, 0xbb, 0x81, 0x17, 0xa5, 0x31, 0xca, 0x98, 0xce, 0x66, 0xfe, 0xc9, 0x9a,
		0x30, 0xa1, 0x61, 0x42, 0xc3, 0x84, 0x86, 0x09, 0x2d, 0x1b, 0x6f, 0x6a, 0x15, 0x42, 0x03, 0xba,
		0x42, 0x70, 0x69, 0x9a, 0xae, 0x43, 0x0c, 0xd6, 0x28, 0x65, 0x17, 0xa2, 0x6c, 0x91, 0x69, 0xcb,
		0x9a, 0xbd, 0x72, 0x79, 0x7b, 0x7b, 0xa7, 0x5c, 0xdc, 0xae, 0xed, 0x56, 0x2b, 0x3b, 0x3b, 0xd5,
		0xdd, 0xe2, 0x2e, 0xb1, 0xb9, 0xc5, 0xd5, 0xca, 0xe6, 0x51, 0x88, 0x1f, 0x5b, 0xda, 0x8c, 0x70,
		0x88, 0xce, 0x28, 0x23, 0x34, 0xf8, 0x29, 0xdb, 0x17, 0x3d, 0x43, 0x26, 0x76, 0x72, 0x2c, 0x13,
		0x34, 0x6d, 0x8e, 0x36, 0xdc, 0x52, 0x07, 0x83, 0x01, 0x06, 0x03, 0x0c, 0x06, 0x18, 0x0c, 0xe0,
		0xa2, 0x71, 0x0c, 0x46, 0xc4, 0x45, 0x5b, 0x44, 0xe0, 0x2a, 0xc0, 0x55, 0x80, 0xab, 0x00, 0x57,
		0x21, 0x57, 0xe2, 0xa5, 0xcf, 0x7d, 0x5f, 0xc4, 0x97, 0x1a, 0xc8, 0x0a, 0x45, 0x64, 0x45, 0x11,
		0x6e, 0xe8, 0xa6, 0x73, 0x13, 0x84, 0x73, 0xe4, 0xc1, 0x46, 0x80, 0x8d, 0x00, 0x1b, 0x01, 0x36,
		0x02, 0x6c, 0x04, 0xd8, 0x08, 0xb0, 0x11, 0xca, 0xd8, 0x88, 0x20, 0x0c, 0x9c, 0x81, 0xef, 0x06,
		0x81, 0xe8, 0x12, 0x67, 0x1e, 0x2f, 0xad, 0x04, 0x3e, 0x02, 0x7c, 0x04, 0xf8, 0x08, 0xf0, 0x11,
		0x52, 0x25, 0x1e, 0xe9, 0xc7, 0x30, 0x97, 0x5f, 0x60, 0x2e, 0xef, 0xfc, 0xc2, 0x58, 0x82, 0x19,
		0x6c, 0xaa, 0x19, 0xfc, 0xcb, 0x37, 0x6b, 0x9a, 0x79, 0xfb, 0x1e, 0x7e, 0x29, 0x0e, 0x24, 0xfc,
		0x52, 0xf8, 0xa5, 0x1b, 0xe1, 0x97, 0x4e, 0x1a, 0x3e, 0xa5, 0xa1, 0x6b, 0x3a, 0x9f, 0x74, 0x6e,
		0x15, 0x93, 0x7a, 0x43, 0x6c, 0x17, 0xd1, 0x18, 0x02, 0xce, 0x38, 0x9c, 0x71, 0x38, 0xe3, 0x3a,
		0x3b, 0xe3, 0x48, 0x0e, 0xe0, 0xb4, 0xb7, 0x91, 0x1c, 0xb0, 0x96, 0xcc, 0x22, 0x39, 0xe0, 0x85,
		0x22, 0x80, 0xe4, 0x00, 0x38, 0x1b, 0xaa, 0x75, 0x18, 0xd8, 0x4e, 0x90, 0x30, 0x20, 0x61, 0x40,
		0xc2, 0x80, 0x84, 0x91, 0x7b, 0x25, 0x59, 0x9d, 0x42, 0x25, 0xf7, 0x90, 0xcf, 0xae, 0xcb, 0xda,
		0x4b, 0x7e, 0xb1, 0x0b, 0x79, 0x41, 0x6a, 0x87, 0x62, 0x8b, 0xb3, 0xc9, 0xfc, 0xc7, 0xc9, 0xa3,
		0x4c, 0xce, 0xb6, 0x94, 0xa6, 0xf3, 0xf2, 0x24, 0xef, 0x41, 0x4a, 0xbb, 0x7e, 0x37, 0x11, 0xf2,
		0x9b, 0x52, 0x8f, 0x2f, 0xab, 0x79, 0x4f, 0xea, 0x32, 0x7a, 0x52, 0x9b, 0xc4, 0x7a, 0xa1, 0x27,
		0x35, 0x7a, 0x52, 0xa3, 0x27, 0x35, 0x42, 0x0f, 0x08, 0x3d, 0x28, 0x04, 0x61, 0x76, 0xe7, 0x0c,
		0xa1, 0x07, 0xe4, 0x01, 0xd2, 0x7a, 0x80, 0xe8, 0x49, 0x0d, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00,
		0x65, 0x80, 0xa4, 0xf0, 0x89, 0x2f, 0x83, 0x30, 0xc9, 0xf3, 0x24, 0x05, 0x61, 0x92, 0xa7, 0x11,
		0x17, 0x61, 0x12, 0x84, 0x49, 0x5e, 0xee, 0xdd, 0xa3, 0x27, 0x35, 0x09, 0x50, 0xa1, 0x27, 0x35,
		0x4c, 0x68, 0x98, 0xd0, 0x30, 0xa1, 0xb9, 0x4c, 0x68, 0xf4, 0xa4, 0x66, 0xb4, 0x46, 0xd1, 0x93,
		0x5a, 0xb2, 0x10, 0xa3, 0x27, 0xf5, 0xba, 0x32, 0x81, 0x9e, 0xd4, 0xb0, 0xd4, 0xc1, 0x60, 0x80,
		0xc1, 0x00, 0x83, 0x01, 0x06, 0x03, 0xb8, 0x98, 0x6f, 0x06, 0x03, 0x3d, 0xa9, 0xc1, 0x55, 0x80,
		0xab, 0x00, 0x57, 0x61, 0x2a, 0x57, 0x81, 0xb2, 0xd3, 0xdc, 0x92, 0x15, 0x28, 0x3b, 0xdd, 0x78,
		0x6e, 0x02, 0x65, 0xa7, 0xb0, 0xba, 0xc1, 0x46, 0x80, 0x8d, 0x00, 0x1b, 0x01, 0x36, 0x02, 0xb8,
		0x98, 0x47, 0x36, 0x02, 0x3d, 0xa9, 0xc1, 0x47, 0x80, 0x8f, 0x00, 0x1f, 0x91, 0x17, 0x3e, 0x02,
		0xe9, 0xc7, 0x30, 0x97, 0x5f, 0x60, 0x2e, 0xa3, 0x27, 0x75, 0x5e, 0xcd, 0x60, 0xf4, 0xa4, 0x86,
		0x5f, 0x8a, 0x03, 0x09, 0xbf, 0x14, 0x7e, 0xa9, 0x91, 0x7e, 0x29, 0x7a, 0x52, 0xff, 0xf4, 0xe2,
		0xe8, 0x49, 0x0d, 0x67, 0x1c, 0xce, 0x38, 0x9c, 0x71, 0xbd, 0x9d, 0x71, 0x24, 0x07, 0x70, 0xda,
		0xdb, 0x48, 0x0e, 0x58, 0x4b, 0x66, 0x91, 0x1c, 0xf0, 0x42, 0x11, 0x40, 0x72, 0x00, 0x9c, 0x0d,
		0xd5, 0x3a, 0x0c, 0x6c, 0x27, 0x48, 0x18, 0x90, 0x30, 0x20, 0x61, 0x40, 0xc2, 0xc8, 0xbd, 0x12,
		0x7a, 0x52, 0xff, 0xac, 0x27, 0xb5, 0xcc, 0x06, 0xc5, 0x96, 0xca, 0x96, 0xd4, 0xcd, 0xf4, 0x41,
		0x74, 0xe9, 0x48, 0xfd, 0x46, 0xa1, 0xc4, 0xca, 0x96, 0x54, 0xb5, 0x12, 0x6a, 0x4b, 0x69, 0xee,
		0xad, 0x44, 0x26, 0xd7, 0x93, 0xc6, 0xd7, 0xcb, 0xd0, 0x1a, 0xf2, 0x63, 0x7b, 0xfd, 0x81, 0x13,
		0xdf, 0x84, 0x51, 0xd2, 0x19, 0x26, 0xeb, 0xf7, 0xa1, 0x79, 0x2c, 0xe0, 0x9a, 0xbb, 0xec, 0x9a,
		0xf2, 0x2d, 0xa7, 0x0f, 0xba, 0x34, 0x06, 0x56, 0x26, 0xe3, 0x4a, 0xc0, 0xb0, 0xca, 0x36, 0x43,
		0xc9, 0x18, 0x54, 0x32, 0x9b, 0x92, 0x86, 0x21, 0x55, 0x8b, 0xf1, 0xb2, 0xfa, 0x96, 0xdb, 0x6e,
		0xcf, 0x93, 0x3f, 0xf6, 0x60, 0x74, 0x51, 0xcd, 0x87, 0x1e, 0x14, 0x31, 0xf4, 0x80, 0xc8, 0x07,
		0xc5, 0xd0, 0x03, 0xdd, 0x5d, 0x19, 0xe9, 0x43, 0x0f, 0xdc, 0x9e, 0xe7, 0x4c, 0xcc, 0x2b, 0xa2,
		0xf0, 0x76, 0xb6, 0x02, 0xa2, 0xbb, 0x88, 0xee, 0xaa, 0x83, 0x21, 0x76, 0xfe, 0x0b, 0xd1, 0x5d,
		0x8e, 0xe8, 0xae, 0x2f, 0xdc, 0x5e, 0x24, 0x7a, 0x94, 0xa9, 0xd6, 0x04, 0x9d, 0xb0, 0xec, 0x8b,
		0x89, 0x4b, 0xbe, 0xb5, 0x35, 0x99, 0x2d, 0x56, 0xc8, 0x60, 0x72, 0x03, 0xf2, 0xaa, 0x3a, 0x53,
		0x8c, 0x25, 0x52, 0x39, 0xd2, 0xc7, 0xb5, 0x11, 0xd8, 0xb3, 0x50, 0x38, 0x50, 0x38, 0x50, 0x38,
		0xb2, 0x15, 0x8e, 0x6c, 0xfb, 0x98, 0xde, 0x4e, 0xe6, 0xb2, 0x97, 0x89, 0xed, 0x66, 0x72, 0x38,
		0xe3, 0x80, 0x35, 0x46, 0x78, 0xe3, 0x82, 0x39, 0x76, 0xb8, 0x63, 0x87, 0x3d, 0x5e, 0xf8, 0xa3,
		0x81, 0x41, 0x22, 0x38, 0xa4, 0xb7, 0xc3, 0x97, 0x4e, 0x8c, 0xd7, 0x15, 0x41, 0xe2, 0x25, 0xf7,
		0x34, 0x36, 0xf9, 0x92, 0x2d, 0x46, 0x98, 0xfa, 0x65, 0x37, 0x26, 0x8f, 0x72, 0xe8, 0xc6, 0x0c,
		0xe7, 0x73, 0xba, 0x81, 0x07, 0x1f, 0x1a, 0xed, 0xd6, 0x9f, 0x17, 0x75, 0xea, 0xe3, 0x99, 0x26,
		0xd0, 0xc5, 0x64, 0xd9, 0x44, 0xb3, 0x5f, 0xdf, 0xc9, 0x57, 0x98, 0xdb, 0xc1, 0xc6, 0xc5, 0xe7,
		0x8a, 0x4d, 0xbe, 0xe4, 0xc3, 0xfb, 0x1c, 0xee, 0x5b, 0x8d, 0x61, 0xdf, 0x48, 0x57, 0xb8, 0xda,
		0xf8, 0x94, 0x20, 0x02, 0xb9, 0xb4, 0x83, 0x1b, 0x27, 0xa1, 0xd4, 0x20, 0x8f, 0xed, 0x39, 0x26,
		0x0b, 0xc1, 0xf4, 0x85, 0xe9, 0x0b, 0xd3, 0x17, 0xa6, 0x2f, 0x4c, 0xdf, 0x4d, 0x32, 0x7d, 0x2f,
		0x0e, 0x5a, 0xff, 0xd5, 0x6e, 0xd6, 0x5b, 0x9f, 0x2e, 0xda, 0x17, 0x97, 0xe7, 0xad, 0xf3, 0xa3,
		0xf3, 0x13, 0x58, 0xc1, 0x12, 0x36, 0xf3, 0xe4, 0xf8, 0x02, 0xf6, 0xf0, 0x5a, 0x3b, 0x78, 0xd9,
		0xfc, 0x8c, 0x2d, 0x5c, 0x6f, 0x0b, 0x9b, 0x97, 0xf0, 0x2d, 0xf2, 0xa1, 0x51, 0x4f, 0xbc, 0x38,
		0x39, 0x48, 0x92, 0x88, 0x56, 0xab, 0x9e, 0x7a, 0x41, 0xdd, 0x17, 0x23, 0xa3, 0x86, 0xb8, 0xe2,
		0xce, 0x3e, 0x75, 0xef, 0x66, 0x56, 0x2a, 0xed, 0x56, 0x2a, 0xb5, 0x9d, 0x4a, 0xa5, 0xb8, 0xb3,
		0xbd, 0x53, 0xdc, 0xab, 0x56, 0x4b, 0x35, 0x52, 0x4d, 0x7b, 0x1e, 0x75, 0x45, 0x24, 0xba, 0x87,
		0xf7, 0xf6, 0xbe, 0x15, 0x0c, 0x7d, 0x9f, 0x63, 0xa9, 0x4f, 0x71, 0x3a, 0xf1, 0x81, 0xae, 0xb4,
		0xf0, 0x61, 0xc3, 0xa2, 0x4e, 0x44, 0x05, 0x26, 0xd9, 0xf5, 0x59, 0xd3, 0xf8, 0xe7, 0x12, 0xbe,
		0x0b, 0x6e, 0xcf, 0x2b, 0x90, 0x84, 0xd3, 0x2d, 0xce, 0xf4, 0xfe, 0x46, 0x7f, 0xd0, 0x9c, 0x3e,
		0x52, 0xfb, 0xa0, 0xe7, 0xb5, 0x27, 0xae, 0xfa, 0x06, 0xe4, 0x5a, 0x8c, 0xcb, 0x84, 0xc8, 0x52,
		0x2d, 0x64, 0x57, 0x21, 0x59, 0x1c, 0x99, 0x16, 0x65, 0x64, 0x5a, 0x30, 0xf2, 0x30, 0xc8, 0xb4,
		0xc8, 0xa3, 0xce, 0x43, 0xa6, 0xc5, 0x73, 0x61, 0x0c, 0x74, 0xb3, 0x52, 0x78, 0xe3, 0x82, 0x39,
		0x76, 0xb8, 0x63, 0x87, 0x3d, 0x5e, 0xf8, 0x33, 0xd3, 0x39, 0x06, 0xdd, 0xfc, 0x8a, 0x35, 0x90,
		0x69, 0x61, 0x26, 0xbd, 0x87, 0x4c, 0x8b, 0x57, 0xef, 0x1b, 0x32, 0x2d, 0xb8, 0x01, 0x1f, 0x99,
		0x16, 0xc8, 0xb4, 0x80, 0xe9, 0x0b, 0xd3, 0x17, 0xa6, 0x2f, 0x4c, 0xdf, 0x4d, 0x37, 0x7d, 0x91,
		0x69, 0x41, 0xb3, 0x99, 0xc8, 0xb4, 0x58, 0x77, 0x07, 0x91, 0x69, 0xb1, 0xf6, 0x16, 0x22, 0xd3,
		0x22, 0x2f, 0x1a, 0x15, 0x99, 0x16, 0x12, 0x17, 0x47, 0xa6, 0x85, 0x82, 0x2b, 0x22, 0xd3, 0xe2,
		0x45, 0x99, 0x16, 0x14, 0xd1, 0x74, 0x4b, 0x69, 0xa2, 0x85, 0xc4, 0xe6, 0x9e, 0xf2, 0x25, 0x54,
		0xaf, 0xde, 0x4e, 0xbf, 0x8b, 0x7b, 0x82, 0xa8, 0x24, 0x8d, 0x12, 0xa1, 0x53, 0x1a, 0xac, 0x4a,
		0x82, 0x50, 0x29, 0x10, 0x2a, 0x01, 0xf4, 0x45, 0xfe, 0x19, 0x88, 0x9a, 0xd8, 0x12, 0x79, 0x11,
		0x36, 0xd1, 0x0d, 0xd9, 0xf8, 0x6e, 0xc8, 0x32, 0xfb, 0xe6, 0x2a, 0x93, 0x45, 0x23, 0xfb, 0x20,
		0x07, 0x89, 0x88, 0x1c, 0x5f, 0x7c, 0x13, 0xbe, 0x33, 0x88, 0xc2, 0x81, 0xdb, 0x4f, 0x45, 0xc8,
		0x19, 0x84, 0xbe, 0xd7, 0xf1, 0x84, 0xcc, 0xd6, 0xc8, 0xbf, 0x5a, 0x09, 0xdd, 0x92, 0x7f, 0xb9,
		0x87, 0xe8, 0x96, 0x8c, 0x6e, 0xc9, 0x3f, 0x7b, 0x24, 0x69, 0xdd, 0x92, 0xd3, 0x63, 0x5a, 0x72,
		0x92, 0x70, 0x7c, 0x60, 0xcb, 0xf2, 0x5b, 0x27, 0x2f, 0xad, 0x80, 0x3e, 0xca, 0x1a, 0xc1, 0x03,
		0x15, 0x4c, 0x90, 0xc3, 0x05, 0x39, 0x6c, 0xd0, 0xc2, 0x87, 0x9e, 0xbe, 0xb6, 0xf4, 0x3e, 0xca,
		0x68, 0x69, 0x49, 0x08, 0x31, 0x94, 0x50, 0xc3, 0x00, 0x39, 0xd4, 0xd0, 0xc3, 0x06, 0x41, 0x6c,
		0x50, 0xc4, 0x03, 0x49, 0xf2, 0x09, 0x45, 0xcb, 0xa4, 0x42, 0x8b, 0xee, 0x78, 0x36, 0xb8, 0xe3,
		0xdd, 0x0e, 0xc2, 0x28, 0x19, 0x7b, 0x2d, 0xf7, 0xf4, 0x99, 0x67, 0xab, 0x97, 0x25, 0x92, 0x1f,
		0xca, 0xf9, 0xe7, 0xd9, 0x22, 0x97, 0xf5, 0xff, 0xaf, 0x7e, 0xd4, 0x6a, 0x5f, 0x9e, 0x7f, 0x6a,
		0xd5, 0x69, 0x42, 0xaf, 0x57, 0x48, 0xd3, 0xe3, 0xd6, 0x07, 0xab, 0xf4, 0x42, 0x34, 0x08, 0x7d,
		0xa4, 0xe9, 0x69, 0xac, 0x2f, 0x9e, 0xd2, 0x1b, 0xe9, 0x8b, 0x43, 0x52, 0x81, 0xc5, 0x9b, 0xa6,
		0x37, 0x45, 0xfa, 0x31, 0xc4, 0x53, 0xe6, 0x1b, 0xcf, 0x19, 0xb3, 0x15, 0xc2, 0x35, 0xea, 0xc1,
		0xf0, 0x96, 0xfe, 0x7c, 0xb6, 0xc2, 0x66, 0x12, 0x79, 0x41, 0x9f, 0x7c, 0xa5, 0x74, 0xb5, 0x62,
		0x5a, 0x0c, 0x73, 0x74, 0x54, 0xbf, 0x98, 0xea, 0x30, 0xfa, 0xec, 0x28, 0xbb, 0x94, 0x4e, 0x83,
		0x25, 0x57, 0x9c, 0xc4, 0x87, 0x69, 0xe6, 0x8d, 0x35, 0x52, 0xb0, 0x61, 0x78, 0x5d, 0x73, 0x6f,
		0x8a, 0x7c, 0x16, 0xf9, 0xb2, 0x81, 0xb3, 0x6f, 0x95, 0x68, 0x5f, 0x15, 0x0a, 0x4b, 0x08, 0x5c,
		0x4f, 0x66, 0x23, 0x9f, 0xc5, 0xb8, 0x87, 0xf5, 0x0a, 0xeb, 0x15, 0xd6, 0x2b, 0xac, 0x57, 0x9a,
		0x13, 0x43, 0x37, 0x59, 0x6a, 0xc9, 0x62, 0xdd, 0x21, 0x5c, 0xe3, 0x22, 0x4b, 0x77, 0x18, 0x0b,
		0xd2, 0x7e, 0x14, 0x0e, 0x13, 0x2f, 0xe8, 0x4f, 0xb0, 0x39, 0xfb, 0x78, 0x62, 0xa4, 0x77, 0x45,
		0xcf, 0x0b, 0xbc, 0xc4, 0x0b, 0x83, 0xf8, 0xe9, 0x7f, 0xca, 0xfe, 0x45, 0xfe, 0xc0, 0x2a, 0x6a,
		0xf9, 0x41, 0x4a, 0xb5, 0xc4, 0xc5, 0x67, 0xb3, 0xe7, 0x98, 0x2a, 0x97, 0x86, 0xb1, 0x88, 0xa8,
		0xf1, 0x9e, 0x49, 0x91, 0x2d, 0x2a, 0xb3, 0x70, 0xbc, 0x9b, 0xce, 0xf5, 0x3d, 0x87, 0x03, 0xc6,
		0xad, 0xd4, 0x96, 0x14, 0x5b, 0xfa, 0x26, 0x4d, 0xf5, 0x24, 0x18, 0x8b, 0x07, 0x46, 0xaf, 0x06,
		0xb5, 0x03, 0x32, 0x84, 0x2f, 0x57, 0xb5, 0x03, 0xbf, 0xc8, 0x3d, 0x2b, 0x2c, 0x66, 0xa3, 0xe4,
		0xa1, 0x8b, 0xe3, 0xe8, 0x99, 0x4f, 0x46, 0x4f, 0x73, 0xf1, 0xf8, 0xc4, 0x17, 0x93, 0x07, 0x6e,
		0xa7, 0xff, 0x50, 0x6a, 0x85, 0xe9, 0x7f, 0xcb, 0xe8, 0xf0, 0x28, 0x4b, 0xe3, 0xa2, 0xc3, 0x23,
		0x12, 0x0f, 0x74, 0x71, 0xc9, 0x91, 0x78, 0xc0, 0xa8, 0x2f, 0x91, 0x78, 0xb0, 0xce, 0xe6, 0x21,
		0xf1, 0xe0, 0x19, 0xf8, 0x0f, 0xea, 0xf6, 0x79, 0x7a, 0x01, 0xd4, 0xad, 0x21, 0x5e, 0x2e, 0xa8,
		0xdb, 0xa7, 0xb7, 0x06, 0x89, 0x07, 0x6b, 0xac, 0x81, 0xc4, 0x03, 0x49, 0x8b, 0x22, 0xf1, 0xe0,
		0xd5, 0xd0, 0x86, 0xc4, 0x03, 0xbd, 0x70, 0x1a, 0x89, 0x07, 0xcb, 0xd0, 0x8f, 0xc4, 0x03, 0x58,
		0xaf, 0xb0, 0x5e, 0x61, 0xbd, 0x1a, 0x6c, 0xbd, 0x22, 0xf1, 0x00, 0x89, 0x07, 0xaf, 0x5d, 0x05,
		0x89, 0x07, 0x54, 0xa7, 0x12, 0x89, 0x07, 0x86, 0x2a, 0x35, 0x0b, 0x89, 0x07, 0x2f, 0x3c, 0x54,
		0x48, 0x3c, 0x40, 0xe2, 0x81, 0xc4, 0xc4, 0x03, 0xf3, 0x9b, 0x1a, 0xbe, 0x24, 0xef, 0x00, 0x0d,
		0x0f, 0x55, 0x9f, 0x0b, 0xcd, 0xcf, 0x83, 0x91, 0xfd, 0xe9, 0x5e, 0x70, 0x02, 0xb4, 0xe9, 0x5d,
		0xf7, 0x5e, 0x52, 0xd3, 0xa0, 0x72, 0xf6, 0xee, 0x4a, 0x44, 0x4d, 0x83, 0x66, 0x57, 0x40, 0xd3,
		0x20, 0x19, 0x94, 0x13, 0x9a, 0x06, 0x31, 0x59, 0xdb, 0x68, 0x1a, 0xb4, 0xc6, 0x05, 0xd1, 0x34,
		0x88, 0x10, 0x62, 0x28, 0xa1, 0x86, 0x01, 0x72, 0xb8, 0x48, 0x01, 0xe4, 0xee, 0xe5, 0xd1, 0xe5,
		0x44, 0xee, 0xde, 0x3a, 0x9b, 0x87, 0xdc, 0xbd, 0x67, 0xe0, 0x3f, 0xa2, 0x9f, 0xcf, 0xd3, 0x0b,
		0x88, 0x7e, 0x6a, 0xae, 0x2f, 0x9e, 0xd2, 0x1b, 0x88, 0x7e, 0x3e, 0x6e, 0x0d, 0x72, 0xf7, 0xd6,
		0x58, 0x03, 0xb9, 0x7b, 0x92, 0x16, 0x45, 0xee, 0xde, 0xab, 0xa1, 0x0d, 0xb9, 0x7b, 0x7a, 0xe1,
		0x34, 0x72, 0xf7, 0x96, 0xa1, 0x1f, 0xb9, 0x7b, 0xb0, 0x5e, 0x61, 0xbd, 0xc2, 0x7a, 0x35, 0xd8,
		0x7a, 0x45, 0xee, 0x1e, 0x72, 0xf7, 0x5e, 0xbb, 0x0a, 0x72, 0xf7, 0xa8, 0x4e, 0x25, 0x72, 0xf7,
		0x0c, 0x55, 0x6a, 0x16, 0x72, 0xf7, 0x5e, 0x78, 0xa8, 0x90, 0xbb, 0x87, 0xdc, 0xbd, 0x35, 0x73,
		0x95, 0x66, 0xb2, 0x51, 0x36, 0xa3, 0x69, 0x50, 0x79, 0x92, 0xba, 0x54, 0x42, 0xd3, 0x20, 0x59,
		0x1a, 0x17, 0x4d, 0x83, 0x90, 0x78, 0xa0, 0x8b, 0x4b, 0x8e, 0xc4, 0x03, 0x46, 0x7d, 0x89, 0xc4,
		0x83, 0x75, 0x36, 0x0f, 0x89, 0x07, 0xcf, 0xc0, 0x7f, 0x50, 0xb7, 0xcf, 0xd3, 0x0b, 0xa0, 0x6e,
		0x0d, 0xf1, 0x72, 0x41, 0xdd, 0x3e, 0xbd, 0x35, 0x48, 0x3c, 0x58, 0x63, 0x0d, 0x24, 0x1e, 0x48,
		0x5a, 0x14, 0x89, 0x07, 0xaf, 0x86, 0x36, 0x24, 0x1e, 0xe8, 0x85, 0xd3, 0x48, 0x3c, 0x58, 0x86,
		0x7e, 0x24, 0x1e, 0xc0, 0x7a, 0x85, 0xf5, 0x0a, 0xeb, 0xd5, 0x60, 0xeb, 0x15, 0x89, 0x07, 0x48,
		0x3c, 0x78, 0xed, 0x2a, 0x48, 0x3c, 0xa0, 0x3a, 0x95, 0x48, 0x3c, 0x30, 0x54, 0xa9, 0x59, 0x48,
		0x3c, 0x78, 0xe1, 0xa1, 0x42, 0xe2, 0x01, 0x12, 0x0f, 0x24, 0x26, 0x1e, 0x6c, 0x42, 0xd3, 0xa0,
		0xc7, 0xbc, 0x03, 0x34, 0x0d, 0x52, 0x7d, 0x2e, 0x34, 0x3f, 0x0f, 0x39, 0x6d, 0x1a, 0x94, 0x9d,
		0x00, 0x6d, 0x9a, 0x06, 0xbd, 0x51, 0x28, 0xe3, 0xb2, 0x65, 0x5b, 0x2f, 0x99, 0x96, 0x20, 0xc2,
		0x7a, 0x88, 0xee, 0x7a, 0xb2, 0xfa, 0x7a, 0x09, 0x5b, 0x43, 0xba, 0x6c, 0x3f, 0x1e, 0x38, 0xd7,
		0xde, 0xfa, 0x9c, 0xff, 0x23, 0xdf, 0x30, 0xb9, 0xe0, 0x9a, 0x12, 0x2f, 0x27, 0xa5, 0x4b, 0x1a,
		0xf9, 0x29, 0x93, 0xe4, 0x24, 0x48, 0xd1, 0x92, 0xed, 0xeb, 0x91, 0x91, 0x93, 0x64, 0xfe, 0x1a,
		0x4d, 0x8a, 0x95, 0x5a, 0xd4, 0x97, 0x95, 0x32, 0x65, 0xbb, 0x49, 0xe2, 0x76, 0x6e, 0x46, 0x3e,
		0xb9, 0x97, 0xc8, 0xef, 0x54, 0x37, 0x77, 0x75, 0x74, 0xa9, 0xd3, 0x08, 0x16, 0xa8, 0xa9, 0x20,
		0x74, 0xa9, 0x33, 0xc9, 0x41, 0x42, 0x97, 0x3a, 0x0b, 0x5d, 0xea, 0xb8, 0x20, 0x87, 0x8b, 0x85,
		0x46, 0xb2, 0x78, 0x1e, 0x39, 0x4e, 0xb2, 0x64, 0x71, 0xaf, 0x1f, 0x84, 0x91, 0x90, 0x6a, 0x07,
		0x3d, 0x79, 0xa8, 0x66, 0xd6, 0x32, 0x39, 0x2d, 0xbc, 0xe7, 0xfa, 0xb1, 0x40, 0x3e, 0x38, 0x03,
		0xd4, 0x73, 0x40, 0x3e, 0x23, 0xf4, 0x73, 0xa9, 0x00, 0x76, 0x55, 0xc0, 0xae, 0x12, 0x78, 0x55,
		0x03, 0x8d, 0x8a, 0x20, 0x52, 0x15, 0xd9, 0xd6, 0xf0, 0x65, 0xd4, 0x5c, 0x87, 0xa1, 0x2f, 0xdc,
		0x80, 0x23, 0xa3, 0xa6, 0xb4, 0xc1, 0xa9, 0x9e, 0xf1, 0x70, 0x30, 0x88, 0x44, 0x1c, 0xf3, 0x28,
		0xeb, 0xb9, 0xd5, 0xa0, 0xae, 0xa1, 0xae, 0xa1, 0xae, 0xa1, 0xae, 0xa1, 0xae, 0xa1, 0xae, 0x73,
		0xa9, 0xae, 0x91, 0xe0, 0xc4, 0x15, 0xfc, 0x9e, 0x84, 0x43, 0x0b, 0xb3, 0x41, 0x92, 0x1c, 0x34,
		0x4f, 0x39, 0x89, 0x07, 0x87, 0x5e, 0xd2, 0x3e, 0x98, 0x3c, 0xd5, 0xe8, 0x7b, 0xb4, 0x48, 0x91,
		0x65, 0x8a, 0xa2, 0x45, 0x0a, 0x58, 0x6f, 0x4d, 0x6c, 0x27, 0xb0, 0xde, 0x8c, 0x8a, 0x0f, 0xac,
		0x37, 0xdc, 0x68, 0xb8, 0xd1, 0x70, 0xa3, 0xe1, 0x46, 0xc3, 0x8d, 0x86, 0x1b, 0x6d, 0x80, 0x1b,
		0x0d, 0xd6, 0x1b, 0xea, 0x1a, 0xea, 0x1a, 0xea, 0x1a, 0xea, 0x1a, 0xea, 0x1a, 0xea, 0x5a, 0x7b,
		0x75, 0x0d, 0xd6, 0x5b, 0x29, 0xeb, 0x6d, 0x7c, 0xe5, 0xee, 0x0a, 0xd2, 0x1b, 0xf5, 0xb9, 0xaa,
		0x05, 0x5c, 0xbd, 0x60, 0x9b, 0x58, 0x82, 0xbb, 0x2c, 0xca, 0xda, 0x14, 0xda, 0x4a, 0xa8, 0x86,
		0x0b, 0xbf, 0x89, 0xc8, 0x0f, 0x5d, 0xa2, 0x7a, 0xa7, 0xb9, 0xab, 0xa3, 0xde, 0x49, 0x43, 0xe3,
		0x1e, 0xf5, 0x4e, 0x6a, 0x8c, 0x73, 0xd4, 0x3b, 0xad, 0x75, 0x10, 0x50, 0xef, 0x84, 0xc8, 0xaf,
		0x36, 0xfc, 0x01, 0x22, 0xbf, 0x8c, 0xce, 0x1f, 0x59, 0xe4, 0xd7, 0xed, 0x7e, 0x13, 0x51, 0xe2,
		0xc5, 0xc2, 0xb9, 0xf1, 0xfa, 0x37, 0xce, 0xad, 0x48, 0x22, 0xaf, 0x43, 0xcf, 0x2b, 0xaf, 0x5e,
		0x16, 0x04, 0xf3, 0xca, 0x2f, 0x10, 0xcc, 0xec, 0x8a, 0x80, 0x51, 0x21, 0x70, 0x29, 0x06, 0x76,
		0x05, 0xc1, 0xae, 0x28, 0x78, 0x15, 0x06, 0x1d, 0x0f, 0x69, 0x81, 0x60, 0x7e, 0x99, 0xe5, 0xba,
		0xd1, 0xf1, 0x60, 0x91, 0x30, 0x85, 0x82, 0x27, 0x0b, 0x41, 0x49, 0x43, 0x49, 0x43, 0x49, 0x43,
		0x49, 0x43, 0x49, 0x43, 0x49, 0x43, 0x49, 0xbf, 0x48, 0x49, 0x3b, 0x61, 0xe0, 0x5c, 0x87, 0x21,
		0x9f, 0xb2, 0xce, 0x16, 0x84, 0xd2, 0x86, 0xd2, 0x86, 0xd2, 0x86, 0xd2, 0x86, 0xd2, 0x86, 0xd2,
		0xce, 0xa5, 0xd2, 0x46, 0xea, 0x16, 0x77, 0x86, 0xcb, 0x6c, 0x96, 0x43, 0x7e, 0x0a, 0x96, 0xcf,
		0x27, 0x4f, 0xb5, 0x59, 0x05, 0xcb, 0x91, 0x18, 0x19, 0x8c, 0x49, 0xe4, 0xf5, 0xfb, 0x22, 0x8a,
		0xe9, 0x02, 0xd8, 0x0b, 0xeb, 0x20, 0x90, 0x8d, 0x40, 0xb6, 0x7a, 0x6b, 0x0a, 0x81, 0x6c, 0x46,
		0x55, 0x48, 0x16, 0xc8, 0x9e, 0x83, 0x16, 0x7a, 0x07, 0x7b, 0x7e, 0x39, 0x5a, 0x37, 0xb2, 0x04,
		0x37, 0x12, 0x6e, 0x24, 0xdc, 0xc8, 0xcd, 0x70, 0x23, 0xa9, 0x00, 0x32, 0x5b, 0x80, 0x28, 0x49,
		0xf1, 0xc9, 0x83, 0x49, 0xe6, 0x1a, 0x30, 0x42, 0x25, 0x1b, 0x64, 0x72, 0x42, 0xa7, 0x02, 0x08,
		0xe5, 0x86, 0x52, 0x65, 0x90, 0xaa, 0x0c, 0x5a, 0xd5, 0x40, 0x2c, 0x2d, 0xd4, 0x12, 0x43, 0x2e,
		0x1b, 0xf4, 0x66, 0x0b, 0x75, 0x85, 0xef, 0xde, 0xf3, 0x09, 0xff, 0xf4, 0x7c, 0x8f, 0x97, 0x65,
		0x92, 0x3f, 0xda, 0x10, 0x88, 0x32, 0x60, 0x56, 0x01, 0xd0, 0x0a, 0x81, 0x5a, 0x15, 0x60, 0x2b,
		0x07, 0x6e, 0xe5, 0x00, 0xae, 0x16, 0xc8, 0x79, 0x00, 0x9d, 0x09, 0xd8, 0xb3, 0xad, 0x24, 0x0f,
		0xd1, 0x3c, 0x79, 0x62, 0x87, 0x5e, 0x90, 0x94, 0x6a, 0x9c, 0x07, 0x76, 0x82, 0xbf, 0x35, 0xc6,
		0x25, 0x2f, 0xdd, 0xa0, 0x2f, 0x48, 0x73, 0x01, 0x56, 0x7d, 0xf1, 0x02, 0x52, 0xfa, 0xa0, 0xa7,
		0x5e, 0xc0, 0x8e, 0x84, 0xd9, 0xe2, 0x9f, 0x5d, 0x7f, 0x28, 0xf8, 0x14, 0xdd, 0xd2, 0xfa, 0x1f,
		0x22, 0xb7, 0x93, 0x78, 0x61, 0x70, 0xec, 0xf5, 0xbd, 0x24, 0x56, 0x78, 0x23, 0x67, 0xa2, 0xef,
		0x26, 0xde, 0xb7, 0xd1, 0x5e, 0xa4, 0x29, 0x22, 0xec, 0x77, 0xf1, 0xf0, 0x5e, 0x81, 0xe8, 0xb9,
		0x77, 0xea, 0x45, 0xaf, 0x56, 0xad, 0x6e, 0x57, 0x21, 0x7e, 0xaa, 0xc5, 0xef, 0x4d, 0x3e, 0x57,
		0xbb, 0x7a, 0x93, 0x8f, 0xe7, 0x61, 0x80, 0x07, 0xa6, 0xa8, 0xc7, 0x93, 0x66, 0x0d, 0x47, 0x14,
		0x04, 0x9e, 0x25, 0x3c, 0x4b, 0x78, 0x96, 0xf0, 0x2c, 0xe1, 0x59, 0xae, 0x3c, 0xb1, 0x5e, 0x57,
		0x04, 0x89, 0x97, 0xdc, 0x47, 0xa2, 0xa7, 0xc0, 0xbd, 0x2c, 0x31, 0x9a, 0x81, 0x76, 0x63, 0xf2,
		0xa8, 0x87, 0x6e, 0xac, 0x00, 0x2f, 0xa6, 0x1b, 0x7e, 0xfe, 0xb9, 0x7e, 0x79, 0x72, 0x7e, 0x70,
		0xdc, 0xbe, 0xac, 0x37, 0xeb, 0xad, 0x76, 0xeb, 0xb2, 0xf1, 0xf1, 0x63, 0xfd, 0xb2, 0xdd, 0xfa,
		0xf3, 0xa2, 0xce, 0x8d, 0x20, 0xa9, 0x3d, 0x1e, 0xb3, 0x7b, 0xdc, 0x6a, 0xbc, 0xee, 0xb9, 0x97,
		0xf0, 0xdf, 0x07, 0x8d, 0x56, 0xfb, 0xc3, 0xf9, 0x65, 0xfb, 0xf0, 0xe3, 0x85, 0xbd, 0x09, 0x8e,
		0x9f, 0x2e, 0xfb, 0xdd, 0xfc, 0xb3, 0xd9, 0xaa, 0x9f, 0xda, 0x39, 0x77, 0x76, 0xae, 0xf2, 0xa6,
		0x06, 0x11, 0xf9, 0xfb, 0xb9, 0x25, 0x44, 0x9b, 0xa0, 0xbd, 0xb4, 0x9e, 0xfa, 0x84, 0xed, 0xf9,
		0x4c, 0xdc, 0xf9, 0x1f, 0x0b, 0x2c, 0x29, 0x1b, 0x96, 0xe2, 0xec, 0xee, 0xcb, 0xd1, 0x23, 0xb7,
		0x26, 0x1b, 0x30, 0xf7, 0x13, 0x49, 0xe2, 0x37, 0xdf, 0x81, 0x21, 0x3c, 0x2c, 0xcc, 0x7c, 0x83,
		0x12, 0x9e, 0x81, 0x89, 0x5f, 0x40, 0x2a, 0x91, 0x99, 0xfc, 0x01, 0x52, 0x89, 0x90, 0x4a, 0xa4,
		0x11, 0x1f, 0x90, 0x9d, 0x38, 0x5f, 0xb8, 0x3d, 0x1e, 0x0e, 0x20, 0xf3, 0xfd, 0x77, 0x18, 0xd6,
		0xba, 0x98, 0xd8, 0x48, 0x5b, 0x5b, 0x13, 0xab, 0x64, 0xde, 0x54, 0x81, 0x8e, 0x5e, 0x65, 0x53,
		0x51, 0x4c, 0x9f, 0x7c, 0x52, 0xf0, 0xa8, 0xba, 0xb6, 0xaf, 0x14, 0x39, 0x2e, 0x9d, 0x5c, 0x86,
		0x4e, 0x86, 0x4e, 0x86, 0x4e, 0xce, 0x95, 0x4e, 0x46, 0x7a, 0xaf, 0x71, 0x4e, 0x12, 0xbb, 0xb3,
		0xa4, 0x02, 0xa0, 0x15, 0x02, 0xb5, 0x2a, 0xc0, 0x56, 0x0e, 0xdc, 0xca, 0x01, 0x5c, 0x2d, 0x90,
		0xf3, 0x00, 0x3a, 0x13, 0xb0, 0xf3, 0x3b, 0x5d, 0x4b, 0x27, 0x16, 0xe9, 0xbd, 0x64, 0x5f, 0x48,
		0xef, 0xe5, 0x5d, 0x1f, 0xf9, 0x95, 0xcc, 0xb0, 0x35, 0x2f, 0x7a, 0x48, 0xef, 0x85, 0xf8, 0x71,
		0xea, 0x66, 0xfe, 0xd5, 0x90, 0xde, 0xfb, 0x7c, 0x21, 0x44, 0x7a, 0x2f, 0x3c, 0x4b, 0x78, 0x96,
		0xf0, 0x2c, 0xe1, 0x59, 0x6e, 0xaa, 0x67, 0x89, 0xf4, 0x5e, 0xe6, 0x0d, 0x47, 0x7a, 0xaf, 0x85,
		0xf4, 0x5e, 0xa4, 0xf7, 0xe6, 0xda, 0xd9, 0x41, 0x7a, 0xaf, 0x5e, 0x2b, 0x20, 0xbd, 0x97, 0x35,
		0xbd, 0x97, 0x23, 0x63, 0xc3, 0xd2, 0x37, 0xbb, 0x97, 0x60, 0x24, 0x3f, 0xdf, 0x71, 0x31, 0xab,
		0x99, 0xe1, 0xef, 0xe2, 0x9e, 0xad, 0x59, 0xea, 0x89, 0x17, 0x27, 0x07, 0x49, 0x42, 0xdc, 0x3d,
		0xf1, 0xd4, 0x0b, 0xea, 0xbe, 0x18, 0xb9, 0x55, 0xc4, 0xe4, 0xa4, 0x7d, 0xea, 0xde, 0xcd, 0xac,
		0x54, 0xda, 0xad, 0x54, 0x6a, 0x3b, 0x95, 0x4a, 0x71, 0x67, 0x7b, 0xa7, 0xb8, 0x57, 0xad, 0x96,
		0x6a, 0x94, 0xb6, 0xb9, 0x7d, 0x1e, 0x75, 0x45, 0x24, 0xba, 0x87, 0xa3, 0xd7, 0x17, 0x0c, 0x7d,
		0x9f, 0x63, 0xa9, 0x4f, 0x71, 0xca, 0x71, 0xd1, 0xb1, 0xad, 0x54, 0x52, 0xce, 0xa4, 0x5e, 0x34,
		0x57, 0x2b, 0x36, 0x69, 0x4a, 0xa3, 0x86, 0x8a, 0xc4, 0xc6, 0x6c, 0x0c, 0xfd, 0x0f, 0x8f, 0x76,
		0x87, 0x26, 0x67, 0x33, 0x32, 0xe6, 0x8e, 0xc7, 0x26, 0x8c, 0xca, 0xa0, 0xc9, 0xae, 0x26, 0xcd,
		0xa6, 0x26, 0x1f, 0x8c, 0x51, 0xc6, 0x60, 0x8c, 0xd9, 0x25, 0x30, 0x18, 0xe3, 0xc5, 0x4a, 0x00,
		0x83, 0x31, 0xc8, 0x06, 0x63, 0xb8, 0xdd, 0x6f, 0x22, 0x4a, 0xbc, 0x58, 0x38, 0x37, 0x5e, 0xff,
		0xc6, 0xb9, 0x15, 0x49, 0xe4, 0x75, 0xe8, 0x07, 0x64, 0xac, 0x5e, 0x16, 0x73, 0x28, 0x57, 0x13,
		0x92, 0x98, 0x43, 0xc9, 0xad, 0x08, 0x18, 0x15, 0x02, 0x97, 0x62, 0x60, 0x57, 0x10, 0xec, 0x8a,
		0x82, 0x57, 0x61, 0x98, 0xc9, 0xb9, 0x61, 0x0e, 0xa5, 0x4a, 0x5f, 0x9b, 0x6e, 0x78, 0x34, 0xdb,
		0xd0, 0x68, 0x28, 0x69, 0x28, 0x69, 0x28, 0x69, 0x28, 0x69, 0x28, 0x69, 0x28, 0x69, 0x28, 0xe9,
		0x97, 0x29, 0x69, 0x27, 0x0c, 0x9c, 0xeb, 0x30, 0xe4, 0x53, 0xd6, 0xd9, 0x82, 0x50, 0xda, 0x50,
		0xda, 0x50, 0xda, 0x50, 0xda, 0x50, 0xda, 0x50, 0xda, 0xb9, 0x54, 0xda, 0x88, 0x62, 0x2b, 0x8d,
		0x62, 0x53, 0x25, 0x0d, 0xaa, 0x0c, 0x5e, 0x13, 0x64, 0x02, 0x4a, 0x0c, 0x5a, 0xbf, 0xd1, 0x48,
		0xd0, 0xa9, 0x04, 0x5c, 0xbd, 0x60, 0xdb, 0x52, 0x73, 0x03, 0x54, 0x89, 0xb2, 0x1c, 0x21, 0x5e,
		0x5f, 0xe4, 0xd6, 0xbb, 0xc2, 0x9a, 0xc2, 0x2a, 0x5b, 0x48, 0x95, 0x08, 0xa7, 0x04, 0x79, 0x64,
		0x96, 0xc3, 0xf5, 0x64, 0xef, 0xf5, 0x12, 0xb3, 0x86, 0xb4, 0xd8, 0xb7, 0x03, 0x3f, 0x5e, 0x5b,
		0x46, 0x32, 0x73, 0x2d, 0xbd, 0xda, 0x9a, 0xb2, 0x2b, 0x27, 0x47, 0x47, 0x9a, 0xe3, 0x28, 0xd3,
		0x41, 0x24, 0x70, 0x04, 0x65, 0x3b, 0x7c, 0x64, 0x8e, 0x1d, 0x99, 0x03, 0x47, 0xe3, 0xa8, 0xa9,
		0xc5, 0x6f, 0x59, 0x39, 0x30, 0xb6, 0xd7, 0x1f, 0x38, 0x7e, 0x77, 0xe0, 0xc4, 0xf7, 0x81, 0xbc,
		0x54, 0x97, 0xc7, 0x9a, 0xdc, 0xd9, 0xab, 0x4b, 0x7a, 0x9b, 0x72, 0x53, 0xf4, 0xa4, 0xf3, 0x47,
		0x14, 0x7c, 0x11, 0x21, 0x3f, 0x44, 0xc5, 0x07, 0x91, 0xf3, 0x3f, 0xe4, 0x7c, 0x0f, 0x2d, 0xbf,
		0xa3, 0x97, 0xcf, 0x22, 0x3b, 0xa5, 0xce, 0xee, 0x4c, 0x4f, 0x15, 0x51, 0xf2, 0x2f, 0xc9, 0xdc,
		0x0d, 0xf2, 0xec, 0xdf, 0x22, 0xb2, 0x7f, 0x19, 0xa0, 0x87, 0x0d, 0x82, 0xd8, 0xa0, 0x88, 0x07,
		0x92, 0xcc, 0xe0, 0x0f, 0xc9, 0xb2, 0x7f, 0x45, 0xe0, 0x5e, 0xfb, 0xa2, 0x4b, 0x1f, 0x8f, 0x9c,
		0x2e, 0x64, 0x72, 0x1c, 0x72, 0x24, 0xe3, 0x08, 0x43, 0x32, 0x60, 0x3c, 0x07, 0xd6, 0x33, 0x62,
		0x3e, 0x17, 0xf6, 0xb3, 0xeb, 0x00, 0x76, 0x5d, 0xc0, 0xab, 0x13, 0x68, 0x74, 0x03, 0x91, 0x8e,
		0xc8, 0xb6, 0x06, 0x61, 0x48, 0xe5, 0xaf, 0x40, 0xdc, 0x25, 0x91, 0xeb, 0x0c, 0x83, 0x38, 0x19,
		0x29, 0x3d, 0xda, 0x97, 0x11, 0x89, 0x9e, 0x88, 0x44, 0xd0, 0xa1, 0x6f, 0xbd, 0xcc, 0x38, 0x8b,
		0xe4, 0xf2, 0xc3, 0x51, 0xb5, 0x52, 0xd9, 0xde, 0xb7, 0x4e, 0x8e, 0x2f, 0xac, 0xc6, 0xc7, 0x0b,
		0xab, 0x79, 0x1f, 0x74, 0x6e, 0xa2, 0x30, 0xf0, 0xfe, 0x9d, 0xf2, 0xf7, 0x5b, 0x39, 0x9f, 0x52,
		0xf2, 0xf8, 0x52, 0x37, 0x69, 0x50, 0xc9, 0xaf, 0xdf, 0xba, 0xe9, 0x8d, 0x8c, 0xc8, 0xae, 0x7e,
		0xb5, 0xc1, 0xb9, 0x95, 0x83, 0x30, 0x4e, 0x9c, 0x58, 0xc4, 0xb1, 0x17, 0x06, 0xce, 0x70, 0xe0,
		0xd0, 0xce, 0x57, 0xc9, 0x30, 0x6a, 0xf5, 0xb2, 0x30, 0xe4, 0x61, 0xc8, 0xc3, 0x90, 0x87, 0x21,
		0x6f, 0x94, 0x21, 0x4f, 0x3e, 0x9f, 0x84, 0x61, 0x1e, 0x09, 0xd3, 0xfc, 0x11, 0x06, 0x23, 0x98,
		0x73, 0xbe, 0x08, 0xf7, 0x3c, 0x11, 0x65, 0x03, 0x1c, 0xf8, 0x07, 0x36, 0x70, 0x0c, 0x00, 0xe0,
		0x9c, 0x07, 0xa2, 0x62, 0xfe, 0xc7, 0x26, 0x89, 0x0b, 0x3c, 0x0f, 0x5a, 0xcf, 0x03, 0x09, 0xe2,
		0x5c, 0xa9, 0x8a, 0xb7, 0x03, 0x3f, 0x2e, 0xcc, 0x66, 0xc1, 0x14, 0x48, 0x22, 0xd7, 0x16, 0x67,
		0x2e, 0xe3, 0xe9, 0xc0, 0x8f, 0xdb, 0x8d, 0xfe, 0xe0, 0xa4, 0x3b, 0x68, 0xde, 0x07, 0x9d, 0xf6,
		0xc4, 0x63, 0x42, 0x47, 0xb3, 0x75, 0x6d, 0x4f, 0x74, 0x34, 0x43, 0x4e, 0x83, 0x2e, 0x6e, 0x30,
		0x72, 0x1a, 0x18, 0x55, 0x1e, 0x72, 0x1a, 0x7e, 0xb5, 0x41, 0xc8, 0x69, 0xf8, 0x09, 0xb6, 0x83,
		0x0a, 0x55, 0x8a, 0xf9, 0x5c, 0xd8, 0xcf, 0xae, 0x03, 0xd8, 0x75, 0x01, 0xaf, 0x4e, 0xa0, 0x75,
		0x08, 0x91, 0xd3, 0xf0, 0x02, 0xe3, 0x14, 0x39, 0x0d, 0x4f, 0xad, 0x85, 0x9c, 0x06, 0xc3, 0xd1,
		0x7a, 0x15, 0x6a, 0x23, 0xa7, 0x01, 0x39, 0x0d, 0x2f, 0x33, 0x20, 0x91, 0xd3, 0x80, 0x9c, 0x06,
		0x18, 0xf2, 0x30, 0xe4, 0x61, 0xc8, 0xc3, 0x90, 0x7f, 0xf1, 0x89, 0x41, 0x4e, 0x83, 0x4e, 0x46,
		0x30, 0x72, 0x1a, 0x48, 0x64, 0x1d, 0x39, 0x0d, 0x92, 0x44, 0x05, 0x39, 0x0d, 0xf0, 0x3c, 0x0c,
		0xf4, 0x3c, 0x90, 0xd3, 0xa0, 0x2e, 0xa7, 0xc1, 0xf8, 0x8e, 0x77, 0x8b, 0x29, 0x0d, 0x68, 0x77,
		0xa7, 0x5a, 0xb4, 0x15, 0x8b, 0xb4, 0x89, 0xbd, 0xee, 0x16, 0x84, 0x18, 0x8d, 0xee, 0x8c, 0x6f,
		0x74, 0x27, 0xa1, 0x5b, 0x1a, 0xbb, 0x04, 0x9a, 0xd8, 0xe3, 0x2e, 0x88, 0x23, 0x79, 0x2d, 0xee,
		0x46, 0x17, 0x43, 0x87, 0x3b, 0x46, 0x1a, 0x0f, 0x1d, 0xee, 0xd0, 0xe1, 0xee, 0x27, 0x17, 0x92,
		0xdc, 0x8a, 0x8a, 0xa6, 0x05, 0x15, 0xba, 0xda, 0xa1, 0xab, 0x9d, 0x85, 0xae, 0x76, 0x72, 0x5d,
		0x13, 0xe9, 0x5d, 0xed, 0xa8, 0xd2, 0x29, 0x89, 0xd3, 0x28, 0x49, 0xd3, 0x27, 0x29, 0x46, 0xd2,
		0x5c, 0xd1, 0xe4, 0xc0, 0x17, 0xd1, 0xd7, 0x0f, 0x39, 0xf0, 0x3a, 0x81, 0x31, 0x0f, 0x28, 0x9b,
		0x41, 0x91, 0x92, 0x85, 0x43, 0x19, 0xf2, 0x19, 0x89, 0xf2, 0x18, 0x41, 0x19, 0x6a, 0xcc, 0xcd,
		0x04, 0x71, 0x24, 0xbf, 0x96, 0x8f, 0x8d, 0xa9, 0x39, 0x8b, 0x23, 0xa9, 0x75, 0x7b, 0x12, 0x68,
		0x42, 0x29, 0x3c, 0x97, 0xcc, 0xfa, 0x3c, 0x92, 0xba, 0x3c, 0x32, 0x47, 0xaf, 0x0c, 0x47, 0x0f,
		0x8e, 0x1e, 0x1c, 0x3d, 0x38, 0x7a, 0x70, 0xf4, 0xe0, 0xe8, 0xc1, 0xd1, 0x83, 0xa3, 0x07, 0x47,
		0x0f, 0x8e, 0x1e, 0x1c, 0x3d, 0x39, 0x8e, 0x9e, 0xec, 0x04, 0x27, 0x56, 0x3f, 0x4f, 0x62, 0x32,
		0x13, 0xb2, 0x41, 0xd4, 0x0a, 0xa2, 0x49, 0xc9, 0x20, 0x67, 0x71, 0x64, 0x62, 0x2e, 0x48, 0x56,
		0x9b, 0xe9, 0x5c, 0xbb, 0x41, 0xf7, 0x6f, 0xaf, 0x9b, 0xbe, 0x5b, 0x49, 0xb9, 0x21, 0xab, 0x2e,
		0x8e, 0x5c, 0x11, 0x46, 0x13, 0x16, 0xb9, 0x22, 0xc8, 0x15, 0xf9, 0xc9, 0x85, 0x90, 0x2b, 0x02,
		0x0a, 0x11, 0x14, 0x22, 0x28, 0x44, 0x09, 0x17, 0xa4, 0xb0, 0x23, 0x18, 0xed, 0x0a, 0x50, 0x6b,
		0xa0, 0xd6, 0x40, 0xad, 0x81, 0x5a, 0x5b, 0x90, 0xf8, 0xa1, 0x17, 0x24, 0xdb, 0x65, 0x42, 0x66,
		0x6d, 0x87, 0xe0, 0xd2, 0xb4, 0xa5, 0xe3, 0x84, 0x05, 0xfc, 0x1c, 0xa5, 0xe2, 0x5c, 0x25, 0xe2,
		0xec, 0xb5, 0xbe, 0x7c, 0x35, 0xbe, 0x84, 0xa5, 0xe0, 0x2c, 0x25, 0xe0, 0x99, 0x08, 0x54, 0xca,
		0x7b, 0x95, 0xbd, 0xda, 0x4e, 0x79, 0xaf, 0x0a, 0x59, 0xd0, 0x42, 0x41, 0xd0, 0x5d, 0xf5, 0x0a,
		0x01, 0x8c, 0xe7, 0xd8, 0x14, 0x79, 0x08, 0x60, 0xac, 0x70, 0x0e, 0x0c, 0xce, 0x5c, 0xbb, 0x9c,
		0x3e, 0xcd, 0xe1, 0xf4, 0x61, 0x90, 0xc8, 0xf6, 0x5c, 0xeb, 0x0d, 0x89, 0x6c, 0x60, 0xa1, 0xc0,
		0x42, 0x81, 0x85, 0x02, 0x0b, 0x05, 0x16, 0x0a, 0x2c, 0x14, 0x58, 0x28, 0xb0, 0x50, 0x60, 0xa1,
		0xc0, 0x42, 0x81, 0x85, 0x02, 0x0b, 0x05, 0x16, 0x0a, 0x2c, 0x14, 0x58, 0x28, 0x6e, 0x16, 0xca,
		0xd8, 0xb4, 0xda, 0x15, 0x24, 0x14, 0xb2, 0x6c, 0xa9, 0xe4, 0x55, 0xb9, 0x9c, 0x9a, 0x94, 0x75,
		0xbb, 0x2c, 0x99, 0x26, 0x26, 0xe1, 0xc6, 0xa2, 0x3f, 0x72, 0xa2, 0x9c, 0x28, 0x1c, 0x26, 0x5e,
		0xd0, 0x97, 0x97, 0x80, 0xbb, 0x78, 0x61, 0x24, 0xdf, 0x3e, 0x87, 0x5e, 0x90, 0x93, 0x78, 0x8e,
		0xd4, 0xdb, 0x05, 0x72, 0x60, 0xdd, 0x04, 0x79, 0x0b, 0x89, 0xb7, 0xbf, 0x12, 0x5e, 0x24, 0xde,
		0xea, 0x06, 0x03, 0xd4, 0xdc, 0x62, 0xfe, 0x02, 0x1e, 0x32, 0x60, 0x42, 0x4f, 0xc7, 0x06, 0x75,
		0xfb, 0xf3, 0xc0, 0x82, 0xb0, 0x06, 0x21, 0xe0, 0x50, 0x03, 0x0f, 0x1b, 0x00, 0xb1, 0x01, 0x11,
		0x07, 0x20, 0xd1, 0x70, 0x4b, 0xa8, 0x59, 0x5f, 0x61, 0xb5, 0x68, 0x5b, 0xb3, 0x2e, 0x93, 0x00,
		0x8a, 0xfa, 0xd7, 0x74, 0xe8, 0x9f, 0x5e, 0x1d, 0xd0, 0x0f, 0xe8, 0x07, 0xf4, 0x03, 0xfa, 0xa5,
		0x49, 0xbb, 0x2f, 0xdc, 0x5e, 0x24, 0x7a, 0x94, 0xd0, 0x4f, 0x11, 0xcf, 0xbe, 0x98, 0xf0, 0xb1,
		0x5b, 0x5b, 0x85, 0xe5, 0xff, 0x2d, 0xf0, 0x6c, 0x85, 0x11, 0x72, 0xc6, 0xe9, 0xff, 0x4f, 0x52,
		0x4f, 0x0b, 0x7e, 0xd8, 0x71, 0x7d, 0xc7, 0xeb, 0xda, 0x1b, 0xa1, 0x95, 0x7c, 0x52, 0xad, 0xe4,
		0x43, 0x2b, 0x41, 0x2b, 0x41, 0x2b, 0x41, 0x2b, 0x41, 0x2b, 0xbd, 0x50, 0x2b, 0xf9, 0xa9, 0x56,
		0xf2, 0xcd, 0xd1, 0x4a, 0x48, 0x4c, 0x90, 0x1d, 0xf0, 0x5d, 0x14, 0x0a, 0x73, 0x4b, 0x63, 0x9a,
		0xe3, 0x27, 0xb9, 0x1c, 0x3f, 0x48, 0x0e, 0xcb, 0x62, 0x7a, 0xbe, 0xb8, 0x73, 0x5c, 0xbf, 0x1f,
		0x46, 0x5e, 0x72, 0x73, 0xeb, 0x5c, 0x7b, 0x41, 0xd7, 0x0b, 0xfa, 0xb1, 0xfc, 0xb0, 0xd1, 0x53,
		0x0b, 0x21, 0x8e, 0xa4, 0x9d, 0x15, 0x85, 0x38, 0x92, 0x0a, 0x2b, 0x29, 0xe7, 0x71, 0xa4, 0xd5,
		0xe7, 0x9f, 0xce, 0x85, 0x7b, 0x62, 0x3d, 0x1a, 0xa7, 0xae, 0x04, 0xa7, 0x0e, 0x4e, 0x1d, 0x9c,
		0x3a, 0xfd, 0x9c, 0x3a, 0xd9, 0x30, 0x96, 0x5d, 0x58, 0x72, 0x76, 0xcd, 0x93, 0x87, 0x49, 0xba,
		0xe9, 0xcc, 0x00, 0x5f, 0xe4, 0x30, 0xc6, 0x01, 0x67, 0x6c, 0xb0, 0xc6, 0x05, 0x6f, 0xec, 0x30,
		0xc7, 0x0e, 0x77, 0x9c, 0xb0, 0x47, 0x03, 0x7f, 0x44, 0x30, 0x48, 0x0e, 0x87, 0xd9, 0x02, 0x6e,
		0xf7, 0x9b, 0x88, 0x12, 0x2f, 0x26, 0x48, 0x18, 0x7a, 0xf2, 0x60, 0xce, 0xac, 0x49, 0x2c, 0x57,
		0x94, 0xb3, 0x40, 0x96, 0x0d, 0x66, 0xf9, 0xb3, 0x41, 0x16, 0xbf, 0xae, 0x88, 0xf7, 0x8b, 0x26,
		0xe4, 0xc1, 0xae, 0x66, 0x38, 0xd5, 0x0d, 0xbb, 0xda, 0xe1, 0x56, 0x3f, 0xca, 0xd4, 0x90, 0x32,
		0x75, 0xa4, 0x42, 0x2d, 0xd1, 0xaa, 0x27, 0x62, 0x35, 0x95, 0x6d, 0x18, 0x59, 0x48, 0xe6, 0xc9,
		0xd3, 0x46, 0x97, 0x33, 0xf6, 0xa4, 0xed, 0x5d, 0x7a, 0x63, 0xa6, 0x00, 0x50, 0x16, 0x47, 0x67,
		0xe4, 0x8d, 0xe3, 0x31, 0x1a, 0x12, 0x73, 0xab, 0x42, 0x35, 0x42, 0x35, 0x42, 0x35, 0x42, 0x35,
		0x42, 0x35, 0xce, 0x74, 0x88, 0xd9, 0x65, 0x54, 0x8c, 0x55, 0x86, 0xa5, 0x68, 0x1b, 0xc8, 0x2c,
		0x7e, 0xf1, 0xa0, 0x87, 0xc5, 0xd5, 0x60, 0x66, 0x69, 0xd1, 0x69, 0xb7, 0x91, 0x52, 0x79, 0xf7,
		0x3d, 0xef, 0xca, 0xdc, 0x6d, 0x47, 0x96, 0x0f, 0x09, 0x57, 0x1b, 0x12, 0x66, 0x9c, 0x99, 0x17,
		0x2a, 0xf7, 0x4e, 0x9d, 0x50, 0x95, 0xab, 0x55, 0x08, 0x15, 0x97, 0x50, 0xbd, 0xc9, 0xc7, 0x2a,
		0x57, 0x70, 0xad, 0x96, 0x84, 0xca, 0x8b, 0xbd, 0xd8, 0xf1, 0xc5, 0x37, 0xe1, 0xf3, 0x39, 0x56,
		0x33, 0x6b, 0xe6, 0x89, 0xa1, 0x3d, 0xa9, 0x7f, 0xae, 0x9f, 0xb4, 0x4b, 0xed, 0x32, 0x58, 0x5a,
		0xb8, 0xa2, 0x70, 0x45, 0xe1, 0x8a, 0xc2, 0x15, 0xe5, 0x39, 0x6d, 0xa9, 0x2a, 0x71, 0x92, 0xd1,
		0xba, 0x8c, 0x44, 0x6d, 0x85, 0x61, 0xad, 0x7a, 0x30, 0xbc, 0xe5, 0x3b, 0xdc, 0xad, 0xb0, 0x99,
		0x44, 0x14, 0x59, 0x78, 0x3f, 0x5d, 0xb5, 0x38, 0x7a, 0x85, 0x13, 0xdd, 0x69, 0x33, 0xba, 0x2f,
		0xa5, 0xc7, 0x75, 0xcb, 0x9c, 0xeb, 0x96, 0x67, 0x9e, 0x97, 0xda, 0x56, 0x60, 0x76, 0x0b, 0xed,
		0x56, 0xd8, 0x48, 0x91, 0x92, 0x51, 0x7c, 0xa6, 0x92, 0xc3, 0xea, 0x8f, 0xcd, 0xbc, 0x3f, 0x69,
		0xe3, 0x14, 0x5e, 0xb0, 0xee, 0x68, 0xd5, 0x52, 0x4e, 0x9c, 0xb2, 0x07, 0x38, 0x65, 0x4b, 0x6f,
		0x79, 0xe0, 0x46, 0x89, 0xd7, 0xf1, 0x06, 0x32, 0x47, 0x94, 0xfc, 0x52, 0x8b, 0xce, 0x2e, 0x8a,
		0xc4, 0x19, 0xb8, 0x64, 0x70, 0xc9, 0xe0, 0x92, 0xc1, 0x25, 0x83, 0x4b, 0xf6, 0xaa, 0xd3, 0x86,
		0xc4, 0x19, 0xc5, 0x57, 0xa6, 0x4a, 0x19, 0x26, 0x2a, 0x48, 0x5e, 0x5a, 0x47, 0x69, 0x81, 0xf2,
		0x13, 0xc5, 0xa9, 0x4f, 0x7c, 0x5e, 0x20, 0x2d, 0xca, 0xb0, 0x14, 0xd6, 0x37, 0x7f, 0xf0, 0xc5,
		0xdd, 0xc1, 0xf4, 0x71, 0x0f, 0x27, 0xbb, 0xb0, 0xf2, 0x53, 0xa9, 0xa5, 0xd0, 0xf4, 0x27, 0x84,
		0xe0, 0x74, 0xf0, 0x24, 0xa9, 0x71, 0x26, 0xa7, 0x11, 0x9b, 0x9d, 0x28, 0x07, 0xd2, 0xd1, 0xac,
		0x44, 0x39, 0xd0, 0xe6, 0xea, 0x76, 0x72, 0x33, 0x91, 0xa1, 0xf5, 0xcd, 0x92, 0x59, 0xb8, 0x43,
		0xb8, 0xc6, 0x4c, 0x2b, 0x9c, 0x49, 0x77, 0x9b, 0x39, 0x58, 0xde, 0x60, 0x65, 0x28, 0x77, 0xbc,
		0xee, 0x93, 0x72, 0x24, 0x7b, 0xbc, 0xcd, 0x4a, 0x09, 0xa2, 0x56, 0x7f, 0x65, 0xa8, 0x3f, 0xa8,
		0x3f, 0xa8, 0x3f, 0xe5, 0xea, 0x0f, 0xd5, 0xb0, 0xeb, 0x6d, 0x1f, 0x48, 0x7d, 0x8d, 0xbc, 0x2b,
		0x36, 0x2f, 0x8b, 0x53, 0xdd, 0xb0, 0xab, 0x1d, 0x6e, 0xf5, 0xa3, 0x4c, 0x0d, 0x29, 0x53, 0x47,
		0x2a, 0xd4, 0x12, 0xad, 0x7a, 0x22, 0x56, 0x53, 0x7c, 0xde, 0xda, 0xd2, 0x69, 0x03, 0xa9, 0xaf,
		0xc3, 0xcb, 0x47, 0x35, 0x2c, 0x54, 0x23, 0x54, 0x23, 0x54, 0x23, 0x54, 0xa3, 0x46, 0xaa, 0x11,
		0xd5, 0xb0, 0xeb, 0x7e, 0xa1, 0x1a, 0x96, 0x6a, 0x65, 0x54, 0xc3, 0xb2, 0x08, 0x15, 0xaa, 0x61,
		0x37, 0x44, 0xa8, 0x50, 0x0d, 0x9b, 0x5b, 0xd7, 0x0a, 0xd5, 0xb0, 0xd2, 0x16, 0x43, 0x35, 0x2c,
		0x5c, 0x51, 0xb8, 0xa2, 0x70, 0x45, 0xe1, 0x8a, 0xa2, 0x1a, 0x56, 0xd2, 0x5a, 0xa8, 0x86, 0xa5,
		0x5b, 0x17, 0xd5, 0xb0, 0x14, 0x12, 0x84, 0x6a, 0x58, 0x86, 0x75, 0x51, 0x0d, 0x9b, 0x6f, 0xa7,
		0x0c, 0xd5, 0xb0, 0x12, 0x17, 0x43, 0xe2, 0x0c, 0x5c, 0x32, 0xb8, 0x64, 0x70, 0xc9, 0xe0, 0x92,
		0x21, 0x71, 0x46, 0x4b, 0x43, 0x02, 0xd5, 0xb0, 0x2b, 0xd6, 0x31, 0xa9, 0x1a, 0x96, 0xb2, 0x26,
		0xc3, 0x32, 0xa3, 0x18, 0xb6, 0x99, 0x6e, 0x81, 0x29, 0xe5, 0x3f, 0x5a, 0x4f, 0xec, 0xfb, 0x5d,
		0xdc, 0x13, 0x67, 0x9f, 0xd9, 0x27, 0x5e, 0x9c, 0x1c, 0x24, 0x09, 0xd1, 0x64, 0xc0, 0x53, 0x2f,
		0xa8, 0xfb, 0x62, 0x24, 0x48, 0x44, 0x51, 0x52, 0xfb, 0xd4, 0xbd, 0x9b, 0x59, 0xa1, 0xb4, 0x5b,
		0xa9, 0xd4, 0x76, 0x2a, 0x95, 0xe2, 0xce, 0xf6, 0x4e, 0x71, 0xaf, 0x5a, 0x2d, 0xd5, 0x4a, 0x04,
		0xb1, 0x61, 0xfb, 0x3c, 0xea, 0x8a, 0x48, 0x74, 0x0f, 0x47, 0x6f, 0x27, 0x18, 0xfa, 0x3e, 0xe5,
		0x12, 0x9f, 0x62, 0x11, 0x91, 0x84, 0x79, 0x65, 0x0b, 0x2b, 0xb1, 0x3a, 0x30, 0x49, 0x0d, 0xd8,
		0x24, 0x45, 0x85, 0x9a, 0x03, 0xbf, 0x5c, 0xc8, 0x7f, 0xc8, 0xe9, 0x2c, 0x69, 0xa2, 0x53, 0xa2,
		0xe5, 0xe9, 0x90, 0x39, 0x86, 0x5d, 0x27, 0xf1, 0x97, 0x23, 0xe9, 0xeb, 0xcb, 0xa5, 0x04, 0x99,
		0x94, 0x5c, 0xab, 0x4c, 0x52, 0x9b, 0x2c, 0xb9, 0x16, 0x59, 0x7a, 0xed, 0x31, 0x05, 0x87, 0x45,
		0xc6, 0x55, 0x51, 0x71, 0x52, 0xe4, 0xdc, 0x13, 0x39, 0xc7, 0x44, 0xc9, 0x25, 0xe9, 0xa5, 0x83,
		0x64, 0xd7, 0xfa, 0xda, 0x22, 0x70, 0xaf, 0x7d, 0x82, 0xc2, 0xde, 0xec, 0x14, 0x4c, 0x17, 0x90,
		0xed, 0x5f, 0x91, 0x90, 0xe9, 0x64, 0xe4, 0x39, 0x25, 0x59, 0x4e, 0x4e, 0x8e, 0x53, 0x93, 0xe1,
		0x6c, 0xe4, 0x37, 0x1b, 0xd9, 0xcd, 0x41, 0x6e, 0xeb, 0xcd, 0x7f, 0x90, 0x91, 0xd5, 0x0c, 0xe4,
		0x34, 0x11, 0x19, 0x2d, 0xd1, 0x2f, 0x92, 0x69, 0x9d, 0x47, 0xfd, 0x6b, 0x3a, 0xf4, 0x4f, 0xaf,
		0x0e, 0xe8, 0x07, 0xf4, 0x03, 0xfa, 0x01, 0xfd, 0xd2, 0xa4, 0x9d, 0xae, 0x0d, 0x1b, 0x65, 0xfb,
		0xb5, 0xd9, 0xb6, 0x6b, 0xcb, 0xff, 0x5b, 0x24, 0x66, 0x46, 0xc8, 0x19, 0xa7, 0xff, 0x3f, 0xed,
		0xd1, 0xe6, 0x87, 0x1d, 0xd7, 0x97, 0xde, 0x9f, 0x4d, 0x57, 0xad, 0xe4, 0x93, 0x6a, 0x25, 0x1f,
		0x5a, 0x09, 0x5a, 0x09, 0x5a, 0x09, 0x5a, 0x09, 0x5a, 0xe9, 0x85, 0x5a, 0xc9, 0x4f, 0xb5, 0x92,
		0x6f, 0x8e, 0x56, 0x42, 0x0c, 0x89, 0x3a, 0x86, 0x24, 0x3b, 0x73, 0x46, 0x55, 0xc4, 0x48, 0x62,
		0xfa, 0x8b, 0x84, 0x08, 0xd1, 0x1b, 0x85, 0xf2, 0x2a, 0x5b, 0x4e, 0x95, 0xca, 0xa7, 0x2d, 0x25,
		0xd6, 0xa6, 0x42, 0x22, 0xd7, 0x93, 0xc5, 0xd7, 0x4b, 0xd0, 0x1a, 0xd2, 0x23, 0x29, 0x2a, 0x29,
		0x35, 0x1a, 0x29, 0x29, 0x0a, 0x29, 0x2d, 0xfa, 0x28, 0xd3, 0xf6, 0x9e, 0xb5, 0xb5, 0x47, 0x67,
		0x40, 0x86, 0xb0, 0x4b, 0xb6, 0xae, 0xc9, 0xac, 0x69, 0x32, 0xeb, 0x79, 0xd1, 0x5a, 0x4e, 0x37,
		0xd6, 0x70, 0x44, 0x97, 0x15, 0x39, 0xb4, 0xdd, 0x61, 0x72, 0x23, 0x82, 0xc4, 0xeb, 0xa4, 0xea,
		0xc1, 0xe9, 0xdc, 0x88, 0xce, 0x5f, 0xf2, 0xb3, 0x10, 0x56, 0xae, 0x22, 0x2b, 0x88, 0x4a, 0x50,
		0xb8, 0x64, 0x8f, 0xa4, 0x4f, 0x8e, 0xed, 0x70, 0x25, 0x37, 0xf7, 0xa2, 0x28, 0x3b, 0xf7, 0xa2,
		0x68, 0x46, 0xee, 0x85, 0x24, 0x34, 0xa4, 0xe6, 0x1c, 0xf2, 0x97, 0x7d, 0x21, 0x07, 0x2d, 0xf5,
		0xf4, 0xdf, 0xa4, 0xb3, 0x08, 0x84, 0xe1, 0x4c, 0xc9, 0x61, 0x4c, 0x3d, 0x92, 0xde, 0x3a, 0x71,
		0x30, 0x70, 0xc6, 0x39, 0x25, 0x4e, 0x18, 0x38, 0x83, 0xf2, 0xc0, 0xf1, 0xbd, 0xe0, 0xaf, 0x58,
		0xbe, 0x06, 0x7a, 0x72, 0x25, 0x68, 0x21, 0x68, 0x21, 0x68, 0x21, 0x68, 0x21, 0x68, 0xa1, 0x8d,
		0xd5, 0x42, 0x3d, 0x37, 0x4e, 0x9c, 0x9e, 0x1f, 0x86, 0x5d, 0x99, 0x8d, 0x76, 0x1e, 0x7b, 0x96,
		0xcf, 0x5d, 0x1e, 0xfa, 0x06, 0xfa, 0x06, 0xfa, 0x06, 0xfa, 0x06, 0xfa, 0x66, 0x63, 0xf5, 0xcd,
		0x8d, 0xf0, 0xfd, 0xd0, 0x19, 0xb8, 0x5d, 0x1a, 0x7d, 0x33, 0x7f, 0x79, 0x9d, 0xf5, 0x4d, 0xb3,
		0x75, 0xd9, 0x38, 0x6a, 0x41, 0xe3, 0x40, 0xe3, 0x40, 0xe3, 0x40, 0xe3, 0xac, 0x8d, 0x75, 0xb2,
		0xdb, 0x8d, 0x52, 0xb4, 0x15, 0xa5, 0x69, 0x1f, 0x4a, 0xdb, 0x26, 0x74, 0xdc, 0x0e, 0x74, 0x02,
		0xd6, 0x04, 0x39, 0x4b, 0xe3, 0xae, 0x9f, 0xe7, 0xe7, 0xcd, 0x3a, 0xc5, 0xd5, 0xd3, 0xde, 0x9e,
		0x07, 0xc7, 0x07, 0x17, 0xad, 0xc6, 0x67, 0x92, 0x05, 0xb6, 0x47, 0x0b, 0x1c, 0x37, 0x9a, 0x07,
		0x87, 0x27, 0x75, 0x5b, 0xef, 0xac, 0x39, 0xb2, 0x56, 0xa0, 0x8f, 0x1b, 0x4c, 0xd2, 0x7b, 0x33,
		0xdb, 0xde, 0x7d, 0x6b, 0x9b, 0xe0, 0xea, 0x63, 0xd9, 0x23, 0x19, 0xb2, 0x3c, 0x3d, 0x36, 0xfb,
		0x56, 0x31, 0xdf, 0x29, 0x75, 0x5a, 0x58, 0xd6, 0x9e, 0xd7, 0x75, 0x12, 0xff, 0x9b, 0x7c, 0x9b,
		0x7a, 0x7a, 0x61, 0x9d, 0xad, 0x69, 0x89, 0x4d, 0x35, 0x61, 0x4c, 0xc3, 0x98, 0x86, 0x31, 0x0d,
		0xfa, 0x46, 0x37, 0xfa, 0x46, 0xd2, 0x16, 0x8a, 0xbb, 0x24, 0x72, 0x9d, 0x61, 0x10, 0x27, 0xee,
		0xb5, 0x2f, 0x79, 0x33, 0x23, 0xd1, 0x13, 0x91, 0x08, 0x3a, 0xf2, 0x67, 0xd6, 0x11, 0x16, 0x3b,
		0x5c, 0x7e, 0x38, 0xaa, 0xed, 0x96, 0xcb, 0xfb, 0x56, 0xa3, 0xe9, 0x34, 0x9a, 0xd6, 0xe9, 0xd0,
		0x4f, 0x3c, 0x67, 0x9a, 0xe5, 0xba, 0x65, 0xb5, 0x4e, 0x3e, 0x5b, 0x3b, 0x86, 0x57, 0xfe, 0x3c,
		0xbe, 0x97, 0x3c, 0x15, 0xff, 0x3c, 0xeb, 0xc5, 0xe9, 0x5e, 0x1b, 0x24, 0xed, 0x6a, 0x57, 0x79,
		0x32, 0x65, 0x27, 0x2f, 0x91, 0xc0, 0x96, 0x9d, 0x5e, 0x59, 0x67, 0x63, 0xb6, 0x08, 0x43, 0x16,
		0x86, 0x2c, 0x0c, 0x59, 0x18, 0xb2, 0xaf, 0x91, 0xd8, 0x78, 0xcc, 0x85, 0x12, 0xd8, 0xb1, 0xbb,
		0x1b, 0x63, 0xc7, 0xc6, 0x89, 0x9b, 0x0c, 0x63, 0x93, 0x8c, 0xd8, 0xae, 0x18, 0x44, 0xa2, 0xe3,
		0x26, 0xd2, 0xdb, 0x93, 0x71, 0x9b, 0xaa, 0x93, 0xad, 0xcf, 0x93, 0x9d, 0x3a, 0xf3, 0x6e, 0x60,
		0x8d, 0x1a, 0x6c, 0x8d, 0x3a, 0x5e, 0x97, 0xce, 0x20, 0x95, 0xd7, 0x55, 0x1d, 0xf6, 0x1a, 0xec,
		0x35, 0xd8, 0x6b, 0xc6, 0xd8, 0x6b, 0x43, 0x2f, 0x48, 0x4a, 0x35, 0x02, 0x7b, 0xad, 0x26, 0xf1,
		0x92, 0x97, 0x6e, 0xd0, 0x37, 0x82, 0xd4, 0x3b, 0xf5, 0xe8, 0xe6, 0xc0, 0x64, 0xb3, 0xfe, 0x89,
		0xc6, 0x91, 0xb1, 0x4d, 0xf4, 0xa7, 0x9f, 0xdc, 0xff, 0x40, 0x33, 0x64, 0x83, 0xfe, 0xd5, 0xd6,
		0xaa, 0xd5, 0xed, 0x2a, 0x5e, 0xef, 0x66, 0x5b, 0x9d, 0x88, 0xb4, 0xd0, 0x38, 0xa9, 0x3f, 0x25,
		0xec, 0x11, 0x62, 0xd1, 0xd0, 0x75, 0xfd, 0xf9, 0x1b, 0x03, 0xae, 0x18, 0xe8, 0xcd, 0x8e, 0x87,
		0xd3, 0x77, 0xdc, 0x81, 0x7b, 0xed, 0xf9, 0x5e, 0x72, 0x2f, 0xdf, 0xa5, 0x5d, 0x5a, 0x41, 0xe7,
		0x58, 0x8b, 0xe4, 0xc1, 0xe7, 0x88, 0xb9, 0xc0, 0x87, 0x87, 0x0f, 0xbf, 0x69, 0x3e, 0xfc, 0x18,
		0xf1, 0x90, 0x81, 0x4f, 0x98, 0x81, 0x3f, 0xc1, 0x69, 0xba, 0x14, 0xfc, 0xf4, 0xfa, 0x65, 0xb2,
		0x24, 0x7c, 0xc9, 0x7a, 0x86, 0xc8, 0xd1, 0xa6, 0xcc, 0x92, 0x9f, 0xbe, 0x41, 0x9a, 0x11, 0x9c,
		0x8f, 0xfb, 0x4b, 0x93, 0x84, 0x3f, 0x95, 0x8f, 0x7d, 0xab, 0x84, 0x5c, 0x76, 0x72, 0x23, 0xf5,
		0xd6, 0xbd, 0x73, 0x44, 0xe7, 0x76, 0xe0, 0x0c, 0xdc, 0xe4, 0x86, 0xa0, 0x23, 0xce, 0xc2, 0xf5,
		0x61, 0xb4, 0xc1, 0x68, 0x83, 0xd1, 0xb6, 0x61, 0x46, 0xdb, 0xd0, 0x0b, 0x92, 0x5d, 0x02, 0x7b,
		0xad, 0x8a, 0xb8, 0x8b, 0xe4, 0x8b, 0x23, 0xee, 0xa2, 0xc8, 0x1c, 0xb4, 0xd8, 0xe2, 0x2e, 0xe5,
		0x2a, 0xa2, 0x2e, 0x7c, 0xa6, 0xa2, 0x05, 0x76, 0xf4, 0x69, 0xc3, 0xd3, 0xbb, 0x1d, 0xde, 0x3a,
		0x6e, 0x24, 0x5c, 0xc7, 0xed, 0x76, 0x23, 0x11, 0xc7, 0x82, 0xc6, 0x00, 0x5d, 0xb5, 0x8e, 0xce,
		0x4c, 0xe9, 0x36, 0x18, 0x52, 0x18, 0xdb, 0x30, 0xb6, 0x61, 0x6c, 0xc3, 0xd8, 0x86, 0xb1, 0x0d,
		0x7b, 0x0c, 0xc6, 0x36, 0x8c, 0x6d, 0x18, 0xdb, 0x6b, 0xbd, 0xc4, 0x40, 0x24, 0xf2, 0x2d, 0xeb,
		0xd1, 0x45, 0x61, 0x62, 0xc2, 0xc4, 0x84, 0x89, 0xb9, 0x61, 0x26, 0xa6, 0xbc, 0x83, 0x6f, 0xcd,
		0x55, 0x3d, 0x4a, 0xbc, 0xe6, 0x85, 0x9b, 0x24, 0x22, 0x0a, 0xa4, 0xdb, 0x98, 0xf6, 0x17, 0xd7,
		0xe9, 0x1d, 0x38, 0x1f, 0x8a, 0xce, 0xde, 0xd5, 0xf7, 0xf2, 0xc3, 0xdb, 0xaf, 0x5f, 0xb7, 0x66,
		0x3f, 0xa9, 0x3c, 0xbc, 0xfb, 0xbe, 0xfd, 0x7e, 0xef, 0x61, 0xe1, 0xe3, 0xf2, 0x83, 0x3c, 0x21,
		0xbb, 0x92, 0xb9, 0x4b, 0xe7, 0xcd, 0xc6, 0x1f, 0x64, 0x5b, 0xf5, 0xaf, 0x57, 0xee, 0xd5, 0x3f,
		0xec, 0x9c, 0xa6, 0x29, 0x9f, 0x78, 0x71, 0x72, 0x90, 0x24, 0x91, 0xdc, 0x53, 0x79, 0xea, 0x05,
		0x75, 0x5f, 0x8c, 0x40, 0x4d, 0xb2, 0x19, 0x38, 0x32, 0x91, 0x67, 0xae, 0x5c, 0xda, 0xad, 0x54,
		0x6a, 0x3b, 0x95, 0x4a, 0x71, 0x67, 0x7b, 0xa7, 0xb8, 0x57, 0xad, 0x96, 0x6a, 0x25, 0x99, 0x3e,
		0xe1, 0x79, 0xd4, 0x15, 0x91, 0xe8, 0x1e, 0xde, 0xdb, 0xfb, 0x56, 0x30, 0xf4, 0x7d, 0x8a, 0x4b,
		0x7f, 0x8a, 0x45, 0x24, 0xd5, 0x8e, 0x45, 0x02, 0xbb, 0x6c, 0x6f, 0x63, 0xa2, 0x62, 0x1a, 0xc1,
		0x08, 0x93, 0xd2, 0x39, 0x6e, 0xae, 0x6f, 0x9d, 0x47, 0x7d, 0x37, 0xf0, 0xfe, 0x9d, 0xfe, 0x68,
		0xf5, 0xc2, 0xc8, 0x6a, 0x26, 0x6e, 0xd0, 0x75, 0xa3, 0xee, 0xe4, 0xb3, 0xf7, 0x56, 0x23, 0xe8,
		0x85, 0xd1, 0x6d, 0xfa, 0xc3, 0xd7, 0x20, 0x11, 0x9d, 0x9b, 0x20, 0xf4, 0xc3, 0xfe, 0xbd, 0xe5,
		0x58, 0xe7, 0x03, 0x11, 0x58, 0xcd, 0xfb, 0x38, 0x11, 0xb7, 0xb1, 0x95, 0x5e, 0xb6, 0x13, 0x06,
		0x81, 0x48, 0x9d, 0x27, 0x67, 0x32, 0x69, 0xd3, 0x8a, 0x45, 0xf4, 0xcd, 0xeb, 0x88, 0xaf, 0xc1,
		0xb1, 0xe8, 0x79, 0x81, 0x97, 0xae, 0xe3, 0x58, 0x8d, 0xe6, 0x79, 0xc1, 0x6a, 0xd4, 0x8f, 0xac,
		0xdd, 0xed, 0xca, 0xee, 0x7e, 0xb9, 0x58, 0x2c, 0x6f, 0x21, 0x77, 0x5e, 0xad, 0x01, 0xb7, 0xd2,
		0x90, 0xd3, 0x56, 0x58, 0xe0, 0x2b, 0x1b, 0xe8, 0x2b, 0x0f, 0x42, 0x8f, 0xa6, 0xbb, 0xe7, 0xf4,
		0xc2, 0xe8, 0xee, 0x09, 0x6e, 0x00, 0xdc, 0x00, 0xb8, 0x81, 0x5c, 0x72, 0x03, 0xe8, 0xee, 0xb9,
		0xa9, 0x26, 0xfb, 0xe5, 0x87, 0xa3, 0x5a, 0x79, 0xbb, 0xbc, 0x6f, 0x5d, 0x0c, 0xa3, 0xbe, 0xb0,
		0xce, 0x23, 0xaf, 0xef, 0x05, 0x6e, 0x12, 0x46, 0x56, 0xa3, 0x2b, 0x82, 0xc4, 0xeb, 0x4d, 0xe6,
		0x32, 0xa7, 0xed, 0x22, 0x47, 0x76, 0x59, 0x5a, 0xe9, 0x38, 0xee, 0x1e, 0x59, 0xda, 0x86, 0x65,
		0xad, 0xa3, 0x65, 0xbd, 0xee, 0x3b, 0x85, 0x01, 0x6c, 0xa0, 0x01, 0xfc, 0xb7, 0xf0, 0xfa, 0x37,
		0x89, 0xe8, 0xa6, 0x79, 0xfb, 0xf2, 0xcd, 0xe0, 0xf9, 0xcb, 0xc3, 0x18, 0x86, 0x31, 0x0c, 0x63,
		0x18, 0xc6, 0x30, 0x8c, 0x61, 0x25, 0xc6, 0xf0, 0x1b, 0xb5, 0x57, 0x58, 0xf3, 0x15, 0xda, 0x07,
		0x41, 0x10, 0x26, 0xa9, 0x05, 0x22, 0xe5, 0x05, 0xda, 0x71, 0xe7, 0x46, 0xdc, 0xba, 0x03, 0x37,
		0xb9, 0x19, 0xbd, 0xbe, 0x42, 0x38, 0x10, 0x41, 0x27, 0x85, 0x48, 0x27, 0x18, 0x93, 0x7f, 0xce,
		0xb4, 0x8b, 0x60, 0x61, 0xf1, 0x83, 0x78, 0xe9, 0x93, 0xc2, 0x20, 0x0a, 0x93, 0xb0, 0x13, 0xfa,
		0x71, 0xf6, 0x5d, 0x61, 0x74, 0x8e, 0x0a, 0x7d, 0x3f, 0xbc, 0x76, 0xfd, 0x42, 0x9c, 0xb8, 0x89,
		0x0c, 0x73, 0xd1, 0x8e, 0x93, 0x68, 0xd8, 0x49, 0x82, 0x89, 0xd0, 0x9d, 0x67, 0x37, 0x3d, 0x21,
		0x2c, 0xa7, 0x5d, 0x44, 0xda, 0x0b, 0x3f, 0xc7, 0x8b, 0x1f, 0xb4, 0x2f, 0xa6, 0x37, 0x9c, 0x7d,
		0xd7, 0x6e, 0xc4, 0x5e, 0xdc, 0xfe, 0x98, 0xde, 0x70, 0xbb, 0x99, 0xde, 0xf0, 0x1b, 0x35, 0xe2,
		0xb2, 0x86, 0xa8, 0xd8, 0x89, 0x77, 0x2b, 0xa2, 0xf5, 0x73, 0xcb, 0xb3, 0x73, 0x3d, 0xb9, 0xde,
		0x9a, 0xc2, 0x3b, 0x3d, 0xca, 0x6b, 0x5e, 0x46, 0x96, 0x0e, 0x97, 0xa9, 0xbb, 0x09, 0x74, 0xb6,
		0x6c, 0x5d, 0x4d, 0xa6, 0xa3, 0xc9, 0x74, 0x33, 0x8d, 0x4e, 0x56, 0x0b, 0xe0, 0xc7, 0x9e, 0x9c,
		0x68, 0xb8, 0xdd, 0x99, 0x9e, 0x02, 0xc9, 0xde, 0xca, 0xe4, 0xba, 0x72, 0xcd, 0xf7, 0x12, 0xcc,
		0x77, 0x98, 0xef, 0x30, 0xdf, 0x25, 0xb9, 0xfe, 0x9e, 0xe4, 0x84, 0x1a, 0x3f, 0x1e, 0x38, 0xbe,
		0xd7, 0x13, 0x23, 0x2d, 0xef, 0x78, 0x41, 0x22, 0xa2, 0x6f, 0xae, 0x2f, 0x5f, 0xc8, 0xb2, 0x96,
		0x36, 0x2b, 0x97, 0x93, 0x2c, 0x0f, 0x14, 0xfc, 0x48, 0x76, 0xf1, 0x52, 0xb9, 0x58, 0x94, 0x4b,
		0xf5, 0x5d, 0x49, 0x7e, 0x7c, 0xb9, 0xb4, 0x09, 0x19, 0xfe, 0x52, 0xe2, 0x30, 0x03, 0x1e, 0x53,
		0xe3, 0x32, 0x1b, 0x3e, 0xb3, 0xe1, 0x34, 0x0f, 0x5e, 0xcb, 0xc5, 0x6d, 0xc9, 0xf8, 0x4d, 0x47,
		0xc3, 0x2c, 0x49, 0xbc, 0xf4, 0x06, 0xe0, 0x8b, 0xf8, 0x52, 0x23, 0xb8, 0x34, 0x4d, 0xad, 0xdc,
		0xf4, 0x8b, 0xe6, 0x80, 0x5a, 0xd4, 0xb5, 0x73, 0xd9, 0x22, 0xc4, 0x35, 0x74, 0xd9, 0x3a, 0x5c,
		0xe5, 0x56, 0x8f, 0x32, 0x4b, 0x5d, 0x76, 0x45, 0x74, 0x8c, 0xe7, 0x45, 0x80, 0xb0, 0xc6, 0x6e,
		0x49, 0x04, 0x08, 0x1b, 0x8a, 0x6f, 0x82, 0x18, 0xbc, 0x31, 0xe3, 0xaa, 0x57, 0xba, 0xf6, 0x84,
		0x7b, 0x2f, 0xd7, 0x01, 0x89, 0x44, 0x2f, 0x12, 0xf1, 0x0d, 0x93, 0xff, 0xb1, 0xb4, 0x1a, 0xec,
		0x6f, 0xd8, 0xdf, 0xb0, 0xbf, 0x61, 0x7f, 0xc3, 0xfe, 0x86, 0xfd, 0x0d, 0xfb, 0x1b, 0xf6, 0x37,
		0xec, 0x6f, 0xd8, 0xdf, 0x7a, 0xdb, 0xdf, 0x5a, 0xc5, 0x24, 0x24, 0xe7, 0xa5, 0x64, 0xd7, 0x65,
		0xcd, 0x4f, 0x19, 0x67, 0x39, 0x14, 0xa4, 0x46, 0x40, 0x2d, 0xce, 0x7c, 0x95, 0x56, 0xfa, 0x00,
		0xed, 0x89, 0x97, 0x90, 0xa7, 0xc9, 0x32, 0xf1, 0xc0, 0xe9, 0x8b, 0x40, 0x44, 0x72, 0x45, 0x6c,
		0xce, 0x25, 0x9c, 0xb9, 0x3e, 0x82, 0xdf, 0x1a, 0x3a, 0x7b, 0x08, 0x7e, 0xab, 0x71, 0xe6, 0x72,
		0x1e, 0xfc, 0x96, 0x9c, 0x47, 0xb3, 0x74, 0x10, 0xa4, 0x6b, 0x13, 0x02, 0x68, 0x01, 0xbf, 0x04,
		0x7e, 0x09, 0xfc, 0x92, 0x6c, 0x7e, 0x49, 0x36, 0x54, 0xcd, 0x59, 0x43, 0x3d, 0x2f, 0x8a, 0x13,
		0xe7, 0x6f, 0xd7, 0x4b, 0xe8, 0x18, 0xf3, 0x95, 0x66, 0xd2, 0xaa, 0x85, 0x89, 0x64, 0x88, 0x86,
		0x44, 0x27, 0x07, 0x3b, 0x0e, 0xd0, 0x63, 0x04, 0x3f, 0x2e, 0x10, 0x64, 0x07, 0x43, 0x76, 0x50,
		0xe4, 0x05, 0x47, 0x62, 0xa2, 0x85, 0xe8, 0xcc, 0x90, 0x91, 0xf2, 0x4b, 0x27, 0x66, 0xe8, 0x05,
		0x49, 0xad, 0x42, 0x79, 0x60, 0x26, 0xf8, 0xb5, 0x4b, 0xb8, 0x04, 0x2d, 0x59, 0x3f, 0xfd, 0xa2,
		0x3d, 0xf0, 0x16, 0x17, 0x79, 0x9f, 0x2d, 0xc6, 0x44, 0xe2, 0x67, 0xeb, 0x71, 0xb3, 0xb8, 0x8f,
		0xb2, 0xce, 0xc5, 0xe6, 0x12, 0xc3, 0xc2, 0xbc, 0xa8, 0x30, 0x90, 0xfc, 0x4b, 0xa2, 0x42, 0xdb,
		0x0c, 0x10, 0xd2, 0x43, 0xa8, 0xaa, 0xe8, 0xaf, 0x7e, 0x65, 0x48, 0x2c, 0x83, 0xa2, 0xad, 0xfc,
		0xc8, 0x27, 0xb8, 0x75, 0xef, 0x54, 0xb8, 0x22, 0xcb, 0xcb, 0xc2, 0x11, 0x81, 0x23, 0x02, 0x47,
		0x04, 0x8e, 0x08, 0x1c, 0x11, 0x38, 0x22, 0x70, 0x44, 0xe0, 0x88, 0xc0, 0x11, 0x81, 0xf4, 0xc0,
		0x11, 0xd9, 0x1c, 0x47, 0x24, 0x16, 0x9d, 0x30, 0xe8, 0xaa, 0xf0, 0x45, 0x56, 0xae, 0x0c, 0x77,
		0x04, 0xee, 0x08, 0xdc, 0x11, 0xb8, 0x23, 0x70, 0x47, 0xe0, 0x8e, 0xc0, 0x1d, 0x81, 0x3b, 0x02,
		0x77, 0x04, 0xd2, 0x03, 0x77, 0x44, 0x43, 0x77, 0x44, 0xeb, 0x3c, 0x32, 0xa2, 0xda, 0x8a, 0xec,
		0xfa, 0x2a, 0x6a, 0x2c, 0xe6, 0x13, 0xee, 0x0b, 0x24, 0x49, 0xb2, 0x96, 0x82, 0xd2, 0x8b, 0x93,
		0x78, 0xf0, 0x31, 0x7b, 0x2c, 0xa9, 0x85, 0x18, 0xf2, 0x65, 0xf5, 0x41, 0x6a, 0x85, 0x8b, 0x9b,
		0x08, 0xba, 0x24, 0x6a, 0x59, 0x9d, 0x63, 0x57, 0x99, 0xa1, 0x64, 0x39, 0xd4, 0x65, 0xe4, 0x50,
		0x33, 0xba, 0xc9, 0xc8, 0xa1, 0xce, 0xa3, 0xee, 0x23, 0xcb, 0xa1, 0x76, 0xbb, 0xee, 0x60, 0x64,
		0xc3, 0x39, 0xa9, 0x42, 0xa2, 0xe7, 0x08, 0x17, 0xd6, 0x03, 0x33, 0xc8, 0x0d, 0x71, 0x8c, 0x50,
		0xc7, 0x05, 0x79, 0xec, 0xd0, 0xc7, 0x0e, 0x81, 0xbc, 0x50, 0x48, 0xeb, 0x10, 0x99, 0xcf, 0x0c,
		0xce, 0x63, 0x98, 0x93, 0x8c, 0x16, 0xa6, 0xa7, 0x09, 0x4b, 0x15, 0xc2, 0x35, 0xea, 0xc1, 0xf0,
		0x96, 0xfe, 0x7c, 0xb6, 0xc2, 0x66, 0x12, 0x79, 0x41, 0x9f, 0x85, 0x9e, 0xb1, 0x8b, 0xa3, 0x77,
		0x75, 0xd2, 0x38, 0xab, 0x1f, 0x5c, 0xda, 0x0c, 0xb4, 0x53, 0x69, 0xb4, 0x5c, 0xfd, 0x8f, 0x8b,
		0xf3, 0xb3, 0xfa, 0x59, 0xab, 0x71, 0x70, 0x62, 0xbf, 0x31, 0x98, 0x48, 0xb3, 0x5b, 0x61, 0x23,
		0x45, 0x19, 0x86, 0xf7, 0x34, 0xbb, 0x67, 0xd2, 0xdd, 0x90, 0x95, 0x2b, 0x4e, 0x84, 0x62, 0xdf,
		0x2a, 0x1a, 0x4a, 0x28, 0x3d, 0x6c, 0x78, 0x7c, 0x1b, 0x55, 0x7f, 0xb0, 0x61, 0x61, 0xc3, 0xc2,
		0x86, 0x85, 0x0d, 0xfb, 0xda, 0x13, 0x83, 0xe8, 0xf6, 0xb3, 0xbf, 0x10, 0xdd, 0x5e, 0x6f, 0x3d,
		0x44, 0xb7, 0xa5, 0x8a, 0x0a, 0xa2, 0xdb, 0x88, 0x6e, 0x6b, 0x75, 0x75, 0x54, 0xfd, 0xa1, 0xea,
		0x0f, 0x8e, 0x08, 0x1c, 0x11, 0x38, 0x22, 0x70, 0x44, 0xe0, 0x88, 0xc0, 0x11, 0x81, 0x23, 0x02,
		0x47, 0x04, 0x8e, 0x08, 0x1c, 0x11, 0x38, 0x22, 0xcc, 0x8e, 0x08, 0xaa, 0xfe, 0xe0, 0x8e, 0xc0,
		0x1d, 0x81, 0x3b, 0x02, 0x77, 0x04, 0xee, 0x08, 0xdc, 0x11, 0xb8, 0x23, 0x70, 0x47, 0xe0, 0x8e,
		0xc0, 0x1d, 0x81, 0x3b, 0xc2, 0x7a, 0x45, 0x54, 0xfd, 0xbd, 0xb8, 0xea, 0x8f, 0xa2, 0xaa, 0xcb,
		0x52, 0x5e, 0xf4, 0xd7, 0x4c, 0x9f, 0x0a, 0x53, 0xc3, 0xd4, 0xc9, 0xb8, 0x06, 0xb2, 0x6d, 0xf0,
		0xf4, 0xb0, 0x39, 0x69, 0xce, 0xd3, 0x10, 0xb1, 0x78, 0xd0, 0x93, 0x3f, 0x39, 0x6c, 0x74, 0x51,
		0x8c, 0x0b, 0xd3, 0x90, 0xb0, 0xc1, 0xb8, 0x30, 0x35, 0x84, 0x0b, 0xc6, 0x85, 0xad, 0x75, 0x10,
		0x30, 0x2e, 0x0c, 0xa5, 0xee, 0xca, 0x21, 0x88, 0x0d, 0x8a, 0x78, 0x20, 0xc9, 0x0c, 0x87, 0x8f,
		0xac, 0xd4, 0x3d, 0x1e, 0xf4, 0x26, 0xf5, 0x3b, 0x7c, 0xc1, 0xb1, 0x15, 0x6b, 0x22, 0x2c, 0xc6,
		0x0d, 0x75, 0x8c, 0x90, 0xc7, 0x05, 0x7d, 0xec, 0x10, 0xc8, 0x0e, 0x85, 0xbc, 0x90, 0x48, 0xcb,
		0x06, 0x22, 0x2c, 0xf6, 0x6c, 0xfc, 0x42, 0x58, 0xec, 0x19, 0x0f, 0x82, 0xb0, 0x18, 0x89, 0xac,
		0x23, 0x2c, 0x26, 0x49, 0x54, 0x10, 0x16, 0x43, 0x58, 0xec, 0xc9, 0xaf, 0x4d, 0xce, 0xd2, 0x1b,
		0xb9, 0x03, 0x37, 0xa1, 0xdf, 0x65, 0xf6, 0x40, 0xe6, 0x97, 0x24, 0x32, 0x46, 0x8e, 0x45, 0xcf,
		0x1d, 0xfa, 0x09, 0xa9, 0x7e, 0xb5, 0xab, 0xc5, 0x62, 0x91, 0xc6, 0xfa, 0xbb, 0x82, 0x5f, 0x06,
		0xbf, 0x0c, 0x7e, 0x19, 0xfc, 0x32, 0xf8, 0x65, 0xf0, 0xcb, 0xe0, 0x97, 0xc1, 0x2f, 0x83, 0x5f,
		0x06, 0xe9, 0x81, 0x5f, 0xb6, 0x39, 0x7e, 0xd9, 0xa4, 0x86, 0x89, 0xd7, 0x33, 0x5b, 0x5c, 0x14,
		0x4e, 0x08, 0x9c, 0x10, 0x38, 0x21, 0x70, 0x42, 0xe0, 0x84, 0xc0, 0x09, 0x81, 0x13, 0x02, 0x27,
		0x04, 0x4e, 0x08, 0xa4, 0x07, 0x4e, 0x88, 0x86, 0x4e, 0x08, 0x6a, 0xa6, 0x98, 0xeb, 0x4a, 0xe2,
		0x41, 0x2f, 0x3f, 0xe3, 0xd1, 0x9a, 0x83, 0x1e, 0x86, 0xa2, 0x49, 0xf3, 0xa3, 0x31, 0x14, 0x0d,
		0x99, 0xe2, 0x9a, 0x78, 0xc2, 0xc8, 0x14, 0x67, 0x54, 0x73, 0x18, 0x8a, 0xf6, 0x1a, 0x48, 0x03,
		0x09, 0xa8, 0x14, 0xea, 0xb8, 0x20, 0x8f, 0x1d, 0xfa, 0xd8, 0x21, 0x90, 0x17, 0x0a, 0x69, 0x7d,
		0x1f, 0x0c, 0x45, 0x7b, 0xa5, 0x7d, 0x86, 0xa1, 0x68, 0x2f, 0x5b, 0x0d, 0x43, 0xd1, 0xd6, 0x7a,
		0x55, 0x18, 0x8a, 0xa6, 0x2f, 0x77, 0xf4, 0xb0, 0xe1, 0x01, 0x6c, 0xd4, 0x36, 0xc2, 0x72, 0x85,
		0xe5, 0x0a, 0xcb, 0x15, 0x96, 0xeb, 0xcb, 0x4e, 0x0c, 0xc2, 0xd7, 0xcf, 0xfe, 0x42, 0xf8, 0x7a,
		0xbd, 0xf5, 0x10, 0xbe, 0x96, 0x2a, 0x2a, 0x08, 0x5f, 0x23, 0x7c, 0xad, 0xd5, 0xd5, 0x51, 0xdb,
		0x88, 0xda, 0xc6, 0x57, 0x2f, 0x82, 0xda, 0x46, 0xf8, 0x65, 0xf0, 0xcb, 0xe0, 0x97, 0xc1, 0x2f,
		0x83, 0x5f, 0x06, 0xbf, 0x0c, 0x7e, 0x19, 0xfc, 0x32, 0xf8, 0x65, 0xf0, 0xcb, 0xe0, 0x97, 0x49,
		0xf0, 0xcb, 0x50, 0xdb, 0x08, 0x27, 0x04, 0x4e, 0x08, 0x9c, 0x10, 0x38, 0x21, 0x70, 0x42, 0xe0,
		0x84, 0xc0, 0x09, 0x81, 0x13, 0x02, 0x27, 0x04, 0x4e, 0x08, 0x9c, 0x10, 0x86, 0x2b, 0xa2, 0xb6,
		0xf1, 0x79, 0xb5, 0x8d, 0x79, 0x19, 0x02, 0xd7, 0x1c, 0xf4, 0x30, 0xfa, 0x4d, 0xb9, 0x38, 0xab,
		0x12, 0x63, 0x83, 0xe7, 0xbd, 0x35, 0x07, 0xbd, 0x5c, 0x4d, 0x79, 0x93, 0x5a, 0x74, 0x4b, 0x52,
		0x6c, 0x4b, 0x36, 0xe9, 0xad, 0x8c, 0x49, 0x6f, 0x26, 0x51, 0x2d, 0x98, 0xf4, 0xa6, 0xf3, 0xa4,
		0x37, 0x3f, 0x1e, 0x38, 0xbe, 0xd7, 0x13, 0x23, 0x90, 0xa7, 0x63, 0x90, 0xb3, 0x73, 0xb1, 0x7a,
		0x39, 0xd9, 0x95, 0xc3, 0x84, 0xf9, 0x3c, 0x76, 0xa9, 0x2c, 0x3b, 0x8f, 0xe7, 0x8a, 0xa6, 0xb9,
		0x41, 0x11, 0x63, 0xf0, 0xd0, 0xdc, 0x40, 0x27, 0x9c, 0xe6, 0xc1, 0x6b, 0x33, 0xfc, 0x5c, 0x32,
		0x8a, 0x7b, 0x8e, 0xda, 0x2e, 0xd5, 0x28, 0x04, 0x7e, 0x82, 0x2f, 0x35, 0x82, 0x4b, 0xd3, 0x52,
		0xd9, 0x84, 0x01, 0x05, 0x0e, 0xea, 0x9a, 0x8b, 0xb2, 0x66, 0x27, 0x1b, 0xf9, 0x48, 0x46, 0x42,
		0x6a, 0x9a, 0x85, 0x92, 0xce, 0x44, 0xa0, 0x56, 0xad, 0x6e, 0x57, 0x21, 0x06, 0x5a, 0xe8, 0x06,
		0xba, 0xab, 0x5e, 0x6d, 0x40, 0xfb, 0xb0, 0x91, 0x47, 0x10, 0x89, 0x5e, 0x24, 0xe2, 0x1b, 0x26,
		0xff, 0x63, 0x69, 0x35, 0xd8, 0xdf, 0xb0, 0xbf, 0x61, 0x7f, 0xc3, 0xfe, 0x86, 0xfd, 0x0d, 0xfb,
		0x1b, 0xf6, 0x37, 0xec, 0x6f, 0xd8, 0xdf, 0xb0, 0xbf, 0xf5, 0xb6, 0xbf, 0x11, 0xe4, 0xa6, 0x0a,
		0x72, 0x4b, 0xce, 0xd3, 0x60, 0x0f, 0x73, 0xcb, 0xcb, 0xcd, 0x90, 0x10, 0xe8, 0x7e, 0xa3, 0x50,
		0x3c, 0x65, 0x8b, 0xa5, 0x0a, 0x71, 0xb4, 0xa5, 0x64, 0x0a, 0x70, 0x0a, 0xe0, 0x7a, 0xa2, 0xf7,
		0x7a, 0x81, 0x59, 0x43, 0x58, 0xec, 0x24, 0x72, 0x83, 0x78, 0x10, 0x46, 0xeb, 0xf7, 0xfe, 0xcb,
		0x8c, 0xff, 0xc7, 0x4b, 0xae, 0x29, 0xc4, 0x72, 0x72, 0x28, 0xa4, 0x71, 0x07, 0x32, 0xb9, 0x02,
		0x02, 0x6e, 0x40, 0x36, 0x17, 0x40, 0xe6, 0xfb, 0x93, 0xf9, 0xfa, 0x34, 0xbe, 0xbd, 0x5a, 0x20,
		0x97, 0x95, 0xf3, 0x60, 0x77, 0xa6, 0xa7, 0x40, 0x72, 0xd6, 0x94, 0xd4, 0xc1, 0x15, 0x64, 0x69,
		0x53, 0x45, 0xa4, 0x4d, 0x99, 0x44, 0x0b, 0x22, 0x6d, 0x4a, 0xf7, 0xb4, 0xa9, 0xdb, 0x64, 0xe8,
		0xc4, 0xde, 0xbf, 0x05, 0x6d, 0xb4, 0x22, 0x5b, 0x05, 0x51, 0x0a, 0x44, 0x29, 0xd4, 0xc1, 0x11,
		0x1b, 0x2c, 0xf1, 0xc0, 0x13, 0x0d, 0x67, 0x84, 0x28, 0xc5, 0x12, 0xbe, 0x20, 0x4a, 0x31, 0x73,
		0xe3, 0x88, 0x52, 0xac, 0x25, 0xb3, 0x88, 0x52, 0xbc, 0x50, 0x04, 0x10, 0xa5, 0xd0, 0x47, 0x37,
		0xd0, 0x5d, 0x15, 0x51, 0x8a, 0x67, 0x99, 0x13, 0xb9, 0x88, 0x52, 0x4c, 0x79, 0x45, 0xf9, 0xc3,
		0x32, 0xf9, 0x88, 0xe2, 0xe9, 0x33, 0x48, 0x9d, 0x91, 0x89, 0xb2, 0x3c, 0xd5, 0xfc, 0x12, 0xca,
		0xf2, 0xc0, 0x2f, 0x81, 0x5f, 0x02, 0xbf, 0x04, 0x7e, 0x09, 0xfc, 0x12, 0xf8, 0x25, 0xf0, 0x4b,
		0xe0, 0x97, 0xc0, 0x2f, 0x81, 0x58, 0x00, 0xbf, 0x04, 0x31, 0x00, 0xbf, 0x04, 0x7e, 0xc9, 0x34,
		0x7e, 0xc9, 0xdc, 0x44, 0xd8, 0x8c, 0x5e, 0x42, 0x2e, 0x2c, 0x95, 0x70, 0x2a, 0x12, 0x4a, 0xa3,
		0xd2, 0x61, 0xb3, 0x9b, 0x56, 0x95, 0x11, 0xfb, 0x86, 0x51, 0xd0, 0x64, 0x09, 0x18, 0xab, 0x60,
		0xad, 0x21, 0x4e, 0x5c, 0x62, 0xf4, 0x3a, 0xe1, 0x79, 0xf9, 0xab, 0x7f, 0xc5, 0x6b, 0xb7, 0xd3,
		0xf2, 0xe9, 0x9e, 0xdb, 0x11, 0xf1, 0xab, 0x5f, 0x79, 0xe6, 0x26, 0xce, 0x5c, 0xeb, 0x95, 0x02,
		0xb8, 0x1e, 0xab, 0xbd, 0x36, 0xad, 0x24, 0x83, 0x3e, 0x92, 0x48, 0x13, 0xc9, 0xa2, 0x83, 0xa4,
		0xd3, 0x3e, 0xd2, 0xe9, 0x1d, 0xb9, 0x34, 0x0e, 0x2f, 0x68, 0xae, 0xcb, 0x1a, 0x3f, 0x1e, 0x1b,
		0x79, 0x95, 0x0b, 0x8f, 0x97, 0x44, 0xe5, 0x02, 0x23, 0x9f, 0x8b, 0xca, 0x05, 0x54, 0x2e, 0xfc,
		0xe4, 0x42, 0x6e, 0xcf, 0x73, 0x62, 0xb7, 0xe7, 0xc9, 0x0f, 0x2d, 0x67, 0x57, 0x46, 0xf5, 0x82,
		0x46, 0x70, 0x40, 0x05, 0x0b, 0xe4, 0xf0, 0x40, 0x0e, 0x13, 0xb4, 0x70, 0xa1, 0x27, 0xb5, 0x24,
		0x3d, 0xba, 0xec, 0xf6, 0xe8, 0x62, 0xca, 0x6e, 0x8f, 0x28, 0x92, 0x5c, 0x42, 0x24, 0x19, 0x91,
		0x64, 0x9d, 0x20, 0x88, 0x07, 0x8a, 0xe4, 0x42, 0x92, 0x64, 0x68, 0x22, 0x83, 0xa8, 0x39, 0xcb,
		0x67, 0x42, 0xb3, 0x10, 0x0f, 0x35, 0xcc, 0x56, 0xc2, 0x24, 0x43, 0x6e, 0x58, 0x63, 0x84, 0x37,
		0x2e, 0x98, 0x63, 0x87, 0x3b, 0x76, 0xd8, 0xe3, 0x85, 0x3f, 0x1a, 0x18, 0x24, 0x82, 0xc3, 0x6c,
		0x6b, 0xf8, 0x26, 0x19, 0xfa, 0xc2, 0xed, 0x45, 0xa2, 0xc7, 0x30, 0xca, 0xb0, 0xb4, 0x43, 0xb8,
		0xc6, 0xc5, 0x84, 0xf9, 0xdf, 0xda, 0x9a, 0x64, 0xb8, 0x17, 0x32, 0x58, 0xde, 0xe0, 0x21, 0xbf,
		0x92, 0x1b, 0x17, 0x3c, 0x29, 0x44, 0xd2, 0x8b, 0x0a, 0x18, 0xec, 0x78, 0x28, 0x40, 0x28, 0x40,
		0x28, 0x40, 0x5d, 0x15, 0x20, 0x95, 0x5f, 0xc0, 0xe7, 0x1f, 0x70, 0xfb, 0x09, 0x4c, 0xfe, 0x02,
		0x1b, 0x6c, 0x72, 0xc2, 0xa7, 0x02, 0x18, 0xe5, 0x86, 0x53, 0x65, 0xb0, 0xaa, 0x0c, 0x5e, 0xd5,
		0xc0, 0x2c, 0x2d, 0xdc, 0x12, 0xc3, 0x2e, 0x9f, 0xff, 0xb1, 0x74, 0xe2, 0xbc, 0xae, 0x08, 0x12,
		0x2f, 0xb9, 0xa7, 0xf5, 0x45, 0x96, 0x6c, 0x4a, 0x86, 0x39, 0xcc, 0x76, 0x63, 0xf2, 0x68, 0x87,
		0x6e, 0xcc, 0x78, 0xce, 0xa7, 0x1b, 0x7b, 0xf0, 0xa1, 0xd1, 0x6e, 0xfd, 0x79, 0x51, 0xe7, 0x3a,
		0xe6, 0x69, 0x8e, 0x77, 0x4c, 0x3e, 0x56, 0x7e, 0xf6, 0xeb, 0x3b, 0xdb, 0x4a, 0x73, 0x3b, 0xdb,
		0xb8, 0xf8, 0x5c, 0xb1, 0xd9, 0x96, 0x7e, 0x78, 0xbf, 0x01, 0xfb, 0x59, 0x63, 0xdc, 0x4f, 0x96,
		0x95, 0xae, 0x30, 0xf7, 0x9c, 0x5f, 0x9e, 0x6d, 0x11, 0xb8, 0xd7, 0xbe, 0xe8, 0xf2, 0xd9, 0xf6,
		0xd3, 0x05, 0x61, 0xda, 0xc3, 0xb4, 0x87, 0x69, 0x0f, 0xd3, 0x1e, 0xa6, 0xfd, 0xcc, 0x89, 0xbb,
		0x0e, 0x43, 0x5f, 0xb8, 0x01, 0xa7, 0x59, 0x5f, 0x82, 0x52, 0x5c, 0xda, 0x9b, 0x98, 0x9f, 0xf2,
		0x8a, 0xc1, 0x79, 0x41, 0x31, 0x42, 0x31, 0x42, 0x31, 0x42, 0x31, 0xae, 0x3a, 0x71, 0xe0, 0xbc,
		0x88, 0x36, 0xb6, 0x09, 0xd2, 0x8b, 0x6a, 0x6b, 0x4f, 0x3f, 0x9d, 0xb4, 0x1a, 0x47, 0x07, 0xcd,
		0x16, 0x98, 0x2f, 0x79, 0x9b, 0xfa, 0xe9, 0x8c, 0x7b, 0x4b, 0x41, 0x7e, 0xa9, 0xb5, 0xf3, 0x8d,
		0x0a, 0xc6, 0x13, 0xb5, 0xa8, 0x58, 0xf6, 0x50, 0x58, 0x8a, 0xb8, 0x1f, 0x6b, 0x86, 0x1f, 0xbf,
		0x2d, 0x4c, 0xcb, 0x99, 0x0a, 0x6e, 0xaf, 0x40, 0x9a, 0xcd, 0x64, 0xb1, 0x54, 0x81, 0x37, 0xb2,
		0x67, 0x7c, 0xfc, 0xb6, 0x7d, 0xd0, 0xf3, 0x9a, 0x6e, 0xcf, 0x6b, 0x1f, 0xf4, 0xa4, 0x76, 0x50,
		0xa5, 0x97, 0x6d, 0x8a, 0xd4, 0xb8, 0x98, 0x2f, 0x41, 0x3c, 0x46, 0x86, 0xb8, 0x72, 0x6f, 0x17,
		0x09, 0x72, 0x06, 0x7a, 0xb3, 0x48, 0x90, 0x53, 0xe8, 0xad, 0xe6, 0x3f, 0x43, 0x3c, 0x46, 0x8a,
		0xb8, 0xec, 0xce, 0xe3, 0x4f, 0xeb, 0x40, 0xc9, 0x6d, 0xc1, 0x56, 0x8a, 0x0f, 0xb5, 0xfe, 0x2b,
		0x43, 0xff, 0x41, 0xff, 0x41, 0xff, 0x69, 0xa1, 0xff, 0x90, 0x20, 0xae, 0xa9, 0xbb, 0xc0, 0xe6,
		0x36, 0x70, 0xc2, 0xa7, 0x02, 0x18, 0xe5, 0x86, 0x53, 0x65, 0xb0, 0xaa, 0x0c, 0x5e, 0xd5, 0xc0,
		0x2c, 0x2d, 0xdc, 0x12, 0xc3, 0x2e, 0x9f, 0xfb, 0xb1, 0x74, 0xe2, 0x10, 0x2c, 0x23, 0xda, 0x58,
		0xc4, 0xca, 0xa8, 0x76, 0x16, 0x09, 0xe2, 0xd2, 0xf7, 0x13, 0x09, 0xe2, 0xba, 0x29, 0x1a, 0x24,
		0x88, 0x3f, 0x47, 0x74, 0x91, 0x20, 0x0e, 0xd3, 0x1e, 0xa6, 0x3d, 0x4c, 0x7b, 0x98, 0xf6, 0x2b,
		0x4e, 0x1c, 0x12, 0xc4, 0xb5, 0x50, 0x8a, 0x48, 0x10, 0x87, 0x62, 0x84, 0x62, 0x84, 0x62, 0x84,
		0x62, 0xd4, 0x45, 0x31, 0x82, 0xf3, 0x22, 0xda, 0x58, 0x24, 0x88, 0x93, 0x6d, 0x2d, 0x12, 0xc4,
		0x09, 0x36, 0x15, 0x09, 0xe2, 0x7a, 0x6a, 0x1c, 0x04, 0xe3, 0xad, 0x0d, 0x4c, 0x10, 0xa7, 0x4c,
		0x66, 0xb2, 0xb4, 0xc8, 0x0f, 0x97, 0x38, 0x02, 0x91, 0x5e, 0xb2, 0xf5, 0xee, 0x70, 0xfe, 0xbb,
		0xb8, 0x9f, 0x4d, 0xee, 0xb0, 0xa8, 0x5c, 0x5e, 0xfb, 0xc4, 0x8b, 0x93, 0x83, 0x24, 0x21, 0xea,
		0xa7, 0x7e, 0xea, 0x05, 0x75, 0x5f, 0x8c, 0x3c, 0x06, 0xa2, 0x59, 0xba, 0xf6, 0xa9, 0x7b, 0x37,
		0xb3, 0x42, 0x69, 0xb7, 0x52, 0xa9, 0xed, 0x54, 0x2a, 0xc5, 0x9d, 0xed, 0x9d, 0xe2, 0x5e, 0xb5,
		0x5a, 0xaa, 0x51, 0x98, 0xa5, 0xf6, 0x79, 0xd4, 0x15, 0x91, 0xe8, 0x1e, 0x8e, 0xde, 0x51, 0x30,
		0xf4, 0x7d, 0xca, 0x25, 0x3e, 0xc5, 0x22, 0x22, 0x19, 0x0e, 0x2c, 0x5b, 0x64, 0x89, 0xe1, 0x5c,
		0x13, 0x18, 0xb7, 0x49, 0xb2, 0x69, 0xd5, 0x02, 0xb7, 0x8d, 0x91, 0xcb, 0xea, 0xe4, 0x5b, 0x07,
		0xb9, 0x36, 0x6a, 0xf2, 0xf2, 0xcf, 0x84, 0x59, 0x9b, 0xf9, 0xcb, 0x12, 0x66, 0xf4, 0xb9, 0xc3,
		0xe4, 0x46, 0x04, 0x89, 0xd7, 0x91, 0x2b, 0x73, 0x8f, 0x89, 0xa3, 0xf3, 0xd7, 0xc7, 0x44, 0xb6,
		0xb5, 0x77, 0x14, 0x13, 0xd9, 0x1e, 0x17, 0xc0, 0x44, 0x36, 0x8d, 0x27, 0xb2, 0x11, 0x4d, 0x78,
		0xa0, 0x9d, 0xec, 0x80, 0xc9, 0x6c, 0x2c, 0x90, 0x43, 0x0d, 0x3d, 0x6c, 0x10, 0xc4, 0x06, 0x45,
		0x3c, 0x90, 0x64, 0x06, 0x6f, 0x41, 0x37, 0x99, 0x6d, 0x98, 0xdc, 0x38, 0xb7, 0x61, 0x97, 0x63,
		0x34, 0x5b, 0xb6, 0x14, 0x2a, 0xef, 0xb9, 0x81, 0x8d, 0x11, 0xe0, 0xb8, 0x80, 0x8e, 0x1d, 0xf0,
		0xd8, 0x81, 0x8f, 0x17, 0x00, 0x69, 0x80, 0x90, 0x08, 0x10, 0xb3, 0xad, 0xe1, 0xab, 0xbc, 0xe7,
		0x09, 0xff, 0x73, 0x84, 0xfd, 0x79, 0xc3, 0xfd, 0x8f, 0xa5, 0x2d, 0x9f, 0x5a, 0xff, 0xd5, 0x3e,
		0x3d, 0x3f, 0xa6, 0x0e, 0xf3, 0x73, 0x86, 0xf7, 0x99, 0x33, 0x25, 0x4e, 0x8f, 0xab, 0x0c, 0x79,
		0x41, 0xef, 0xf3, 0xb6, 0x6d, 0xad, 0xfa, 0x1f, 0x2d, 0xd3, 0xf3, 0xa9, 0xae, 0x4c, 0x03, 0x7c,
		0x23, 0x1a, 0x6e, 0xa4, 0x36, 0xe9, 0xc0, 0x8d, 0xe3, 0x89, 0x05, 0xc1, 0x61, 0x02, 0x67, 0xcb,
		0xc1, 0x0c, 0x86, 0x19, 0x0c, 0x33, 0x18, 0x66, 0xb0, 0x51, 0x66, 0x70, 0x14, 0x0e, 0x13, 0x2f,
		0xe8, 0x53, 0xa3, 0xd8, 0x9c, 0x2d, 0xbc, 0xbb, 0xe9, 0x1a, 0x2a, 0xa1, 0x7c, 0xbd, 0xf3, 0xda,
		0x29, 0x5d, 0x0a, 0x9a, 0x09, 0x9a, 0x09, 0x9a, 0x09, 0x9a, 0x09, 0x04, 0xcd, 0xc6, 0x11, 0x34,
		0x0c, 0x75, 0x18, 0x39, 0x26, 0x68, 0x7e, 0xaf, 0xff, 0x79, 0xf4, 0x5f, 0x07, 0x8d, 0x33, 0xb0,
		0x34, 0x2f, 0xdf, 0xbb, 0x66, 0xe3, 0xf4, 0xe2, 0xa4, 0xde, 0xfe, 0xbd, 0xfe, 0x27, 0xb8, 0x1a,
		0x70, 0x35, 0xcb, 0x72, 0x42, 0xdd, 0x26, 0x84, 0xa9, 0x3d, 0x88, 0x7d, 0x2c, 0x7a, 0xee, 0xd0,
		0x4f, 0x48, 0xe1, 0xcf, 0x4e, 0xf3, 0x9a, 0x69, 0xce, 0xd1, 0x15, 0xbc, 0x03, 0x78, 0x07, 0xf0,
		0x0e, 0xe0, 0x1d, 0x18, 0xe5, 0x1d, 0xd0, 0xb7, 0x35, 0x21, 0x6e, 0x67, 0x62, 0x86, 0x92, 0xfe,
		0x4b, 0xdc, 0x77, 0x6e, 0x5c, 0x2f, 0xa0, 0xd7, 0xd2, 0xd9, 0x4a, 0x50, 0x47, 0x50, 0x47, 0x50,
		0x47, 0x50, 0x47, 0x46, 0xa9, 0xa3, 0x29, 0x7a, 0x39, 0x39, 0x1a, 0xe6, 0x51, 0x08, 0x3b, 0xce,
		0xf4, 0xb9, 0xf6, 0xa7, 0xdf, 0xc4, 0x2b, 0x3f, 0x9d, 0xfb, 0x70, 0x32, 0x01, 0x64, 0xf6, 0x23,
		0xa3, 0x06, 0x81, 0xa0, 0x7c, 0x54, 0x51, 0x99, 0xdd, 0x5c, 0xa5, 0x15, 0xdd, 0xa4, 0x38, 0x55,
		0xb5, 0x77, 0x73, 0x8f, 0x47, 0x32, 0x25, 0x4e, 0x62, 0x4d, 0xa9, 0xd4, 0x52, 0x47, 0x8a, 0x29,
		0x38, 0xa4, 0xd3, 0x6f, 0xc8, 0x8b, 0x68, 0xca, 0x28, 0xa2, 0x61, 0xb4, 0x06, 0x51, 0x44, 0x93,
		0x47, 0x55, 0x88, 0x22, 0x1a, 0xb8, 0xbd, 0x70, 0x7b, 0xe1, 0xf6, 0xc2, 0xed, 0x55, 0xe6, 0xf6,
		0x22, 0x47, 0x63, 0xcd, 0x0d, 0x44, 0x11, 0xcd, 0xda, 0x5b, 0x88, 0x22, 0x9a, 0x57, 0x6d, 0x1b,
		0x8a, 0x68, 0x14, 0x00, 0x3e, 0x8a, 0x68, 0x9e, 0x30, 0x81, 0x51, 0x44, 0x03, 0x33, 0x18, 0x66,
		0x30, 0xcc, 0x60, 0x33, 0xcd, 0x60, 0x14, 0xd1, 0x28, 0xd0, 0x50, 0x28, 0xa2, 0x81, 0x66, 0x82,
		0x66, 0x82, 0x66, 0x82, 0x66, 0x02, 0x41, 0x43, 0x4c, 0xd0, 0xa0, 0x88, 0x66, 0x9d, 0x2d, 0x44,
		0x11, 0xcd, 0xeb, 0xf7, 0x0e, 0x45, 0x34, 0xe0, 0x6a, 0x7e, 0x26, 0x27, 0x28, 0xa2, 0x79, 0xc1,
		0x22, 0x28, 0xa2, 0x81, 0x77, 0x00, 0xef, 0x00, 0xde, 0x01, 0xbc, 0x03, 0x14, 0xd1, 0x70, 0x2a,
		0x69, 0x14, 0xd1, 0x40, 0x1d, 0x41, 0x1d, 0x41, 0x1d, 0x41, 0x1d, 0x3d, 0x0f, 0xbd, 0x50, 0x44,
		0x83, 0x22, 0x1a, 0x4a, 0xd1, 0xde, 0xa0, 0x22, 0x1a, 0xaa, 0x69, 0x9a, 0x7a, 0xd4, 0xd0, 0x10,
		0x4c, 0xd2, 0xc4, 0x58, 0x36, 0x43, 0x45, 0x3d, 0x07, 0xc3, 0xd9, 0xe6, 0x9f, 0x27, 0x47, 0x33,
		0xda, 0xae, 0x7b, 0x5d, 0xf9, 0x83, 0xd9, 0x46, 0x17, 0xc5, 0x34, 0x36, 0x0d, 0xdd, 0x14, 0x4c,
		0x63, 0x53, 0xe3, 0x66, 0x60, 0x1a, 0xdb, 0x5a, 0x07, 0x01, 0xd3, 0xd8, 0x50, 0x48, 0xaa, 0x0d,
		0x13, 0x82, 0x42, 0x52, 0x46, 0x77, 0x90, 0xac, 0x90, 0xf4, 0xba, 0xd7, 0x75, 0x12, 0xff, 0x1b,
		0x3d, 0xef, 0x3b, 0x5d, 0x08, 0xb4, 0x2f, 0x37, 0xa8, 0x31, 0x82, 0x1b, 0x17, 0xc8, 0xb1, 0x83,
		0x1d, 0x3b, 0xe8, 0xf1, 0x82, 0x1f, 0x1d, 0xcb, 0x66, 0x21, 0x0a, 0xf9, 0x32, 0x2b, 0xac, 0x64,
		0xd4, 0x2b, 0x10, 0x77, 0x49, 0xe4, 0x3a, 0xc3, 0x20, 0x4e, 0xdc, 0x6b, 0x9f, 0xf8, 0x65, 0x44,
		0xa2, 0x27, 0x22, 0x11, 0xa4, 0xb0, 0x42, 0x9b, 0x81, 0x48, 0x9f, 0x41, 0x97, 0x49, 0xd6, 0xe5,
		0x87, 0xa3, 0x5a, 0xb9, 0xb4, 0xbd, 0x65, 0xb5, 0x4e, 0x3e, 0x5b, 0xa5, 0xca, 0xae, 0x4d, 0x9f,
		0x1f, 0xc8, 0x05, 0xce, 0xab, 0x40, 0xfa, 0xf1, 0x1d, 0xbe, 0xe7, 0x59, 0x9b, 0x1b, 0xaf, 0x57,
		0xe2, 0xf6, 0xd2, 0x4b, 0x36, 0x3c, 0x51, 0x92, 0x38, 0x89, 0x95, 0xf7, 0xf8, 0x55, 0x77, 0x77,
		0x8b, 0xfb, 0xd6, 0xa1, 0xd7, 0xf5, 0x22, 0xd1, 0x49, 0xbc, 0x30, 0x70, 0x7d, 0xeb, 0x43, 0x18,
		0xfd, 0xed, 0x46, 0x5d, 0x2f, 0xe8, 0x5b, 0xc7, 0x22, 0x19, 0x7f, 0x6c, 0xbd, 0x3d, 0xfc, 0x70,
		0xfc, 0x6e, 0x0b, 0x07, 0x34, 0x9f, 0x07, 0xf4, 0xa5, 0x62, 0x60, 0xfa, 0x11, 0x26, 0xbb, 0xfa,
		0x15, 0xe2, 0xbf, 0x32, 0xa4, 0x33, 0xbf, 0xf1, 0xdf, 0xeb, 0x5e, 0x37, 0x77, 0x9d, 0x13, 0x0f,
		0x7b, 0x5d, 0xb4, 0x4b, 0x94, 0xa5, 0x94, 0xd1, 0x2e, 0x11, 0x2c, 0xb7, 0x2e, 0xc4, 0x0f, 0x58,
		0x6e, 0x46, 0xa5, 0x07, 0x96, 0xfb, 0x79, 0x20, 0x06, 0x96, 0x5b, 0x29, 0xb8, 0x71, 0xfb, 0x69,
		0x60, 0xb9, 0x4d, 0xf0, 0x7d, 0xc0, 0x72, 0xbf, 0xc0, 0x0a, 0x03, 0xcb, 0xfd, 0xd4, 0x5a, 0x60,
		0xb9, 0x41, 0xa2, 0x19, 0x4b, 0xa2, 0x81, 0xe5, 0xd6, 0xf5, 0xf8, 0x81, 0xe5, 0xc6, 0x01, 0x05,
		0xcb, 0x2d, 0xef, 0x0b, 0x2c, 0xb7, 0x14, 0xe9, 0xcc, 0x37, 0xcb, 0x9d, 0xb3, 0xd2, 0xa6, 0xc3,
		0x5e, 0x17, 0xf5, 0x4c, 0xca, 0x85, 0x5b, 0xb1, 0x50, 0x9b, 0x5f, 0xc4, 0x74, 0xd8, 0xeb, 0xe6,
		0xa9, 0x72, 0xa9, 0xe3, 0x45, 0x9d, 0xa1, 0x97, 0x38, 0x9d, 0x70, 0x38, 0x7a, 0xc4, 0x58, 0x7e,
		0x19, 0xd3, 0xd2, 0x0a, 0xa8, 0x69, 0xd2, 0x90, 0x9d, 0x44, 0x4d, 0x93, 0x1a, 0x76, 0x31, 0xe7,
		0x35, 0x4d, 0x88, 0xf5, 0x2e, 0x03, 0x0c, 0x62, 0xbd, 0x9c, 0x8e, 0x3c, 0x62, 0xbd, 0x79, 0x74,
		0xfd, 0xe8, 0x46, 0xe3, 0x75, 0xff, 0xc7, 0xe9, 0xdc, 0xb8, 0x41, 0x5f, 0xc4, 0x0c, 0xbd, 0xd7,
		0x67, 0x16, 0x43, 0xcc, 0x97, 0x1b, 0xdc, 0x18, 0x41, 0x8e, 0x9b, 0xb5, 0x44, 0xcc, 0xd7, 0x04,
		0x26, 0xd0, 0xfc, 0x98, 0xef, 0xc4, 0xa7, 0xdb, 0x2e, 0x33, 0x44, 0x7d, 0x29, 0x9b, 0x59, 0x5d,
		0x8e, 0x30, 0x38, 0x0f, 0x21, 0xd3, 0x53, 0xc2, 0x26, 0x8c, 0x4b, 0x8b, 0xa5, 0x1d, 0xdd, 0xe9,
		0xb0, 0x7f, 0x69, 0xbd, 0x0f, 0x91, 0x9b, 0x86, 0x17, 0x8e, 0xbd, 0xbe, 0x97, 0xc4, 0x8c, 0x0b,
		0x9f, 0x89, 0xbe, 0x9b, 0x78, 0xdf, 0x46, 0xcf, 0x9a, 0xb6, 0x58, 0xce, 0x43, 0x9f, 0x77, 0xfb,
		0xd4, 0xbd, 0xe3, 0x17, 0x95, 0x4a, 0x79, 0xaf, 0xb2, 0x57, 0xdb, 0x29, 0xef, 0x55, 0x21, 0x33,
		0x46, 0xe8, 0x28, 0xfa, 0xab, 0x5f, 0x6d, 0xf2, 0x9c, 0xa7, 0xee, 0xff, 0x38, 0xc1, 0xf0, 0xf6,
		0x5a, 0x44, 0x3c, 0xce, 0xc6, 0x64, 0x2d, 0xf8, 0x1a, 0xf0, 0x35, 0xe0, 0x6b, 0xc0, 0xd7, 0x30,
		0xca, 0xd7, 0x18, 0x7a, 0x41, 0x02, 0x47, 0x03, 0x8e, 0x06, 0x8c, 0x46, 0x38, 0x1a, 0x70, 0x34,
		0xe0, 0x68, 0xc0, 0xd1, 0x78, 0x89, 0xa3, 0x31, 0x4c, 0x6e, 0x9c, 0x9e, 0xeb, 0xf9, 0x31, 0xd3,
		0x44, 0xd9, 0xf1, 0x5a, 0x70, 0x34, 0xe0, 0x68, 0xc0, 0xd1, 0x80, 0xa3, 0x61, 0x94, 0xa3, 0x81,
		0xa0, 0x06, 0x7c, 0x0d, 0xf8, 0x1a, 0xf0, 0x35, 0xe0, 0x6b, 0xc0, 0xd7, 0x80, 0xaf, 0xf1, 0x4a,
		0x5f, 0x23, 0xb9, 0x1f, 0x08, 0x56, 0x87, 0x63, 0x66, 0x41, 0x78, 0x1d, 0xf0, 0x3a, 0xe0, 0x75,
		0xc0, 0xeb, 0x80, 0xd7, 0x01, 0xaf, 0x03, 0x5e, 0x07, 0xbc, 0x0e, 0x78, 0x1d, 0x90, 0x19, 0x78,
		0x1d, 0x39, 0xf7, 0x3a, 0xbc, 0xae, 0xd3, 0xf3, 0x84, 0xdf, 0x75, 0x7c, 0x11, 0x38, 0xb7, 0x5e,
		0x7c, 0xeb, 0x26, 0x9d, 0x1b, 0x8e, 0x22, 0x8e, 0xa7, 0x16, 0x86, 0x17, 0x02, 0x2f, 0x04, 0x5e,
		0x08, 0xbc, 0x10, 0x78, 0x21, 0xf0, 0x42, 0xe0, 0x85, 0xc0, 0x0b, 0x81, 0x17, 0x02, 0x99, 0x81,
		0x17, 0x92, 0x77, 0x2f, 0x24, 0xf0, 0x12, 0xae, 0xb0, 0xc7, 0xcc, 0x5a, 0xf0, 0x35, 0xe0, 0x6b,
		0xc0, 0xd7, 0x80, 0xaf, 0x01, 0x5f, 0x03, 0xbe, 0x06, 0x7c, 0x0d, 0xf8, 0x1a, 0xf0, 0x35, 0x20,
		0x33, 0xf0, 0x35, 0x72, 0xee, 0x6b, 0xf8, 0x6e, 0xe0, 0x74, 0xbd, 0x98, 0xaf, 0x5d, 0xd5, 0xe2,
		0x82, 0xf0, 0x3a, 0xe0, 0x75, 0xc0, 0xeb, 0x80, 0xd7, 0x01, 0xaf, 0x03, 0x5e, 0x07, 0xbc, 0x0e,
		0x78, 0x1d, 0xf0, 0x3a, 0x20, 0x33, 0xf0, 0x3a, 0x72, 0xee, 0x75, 0xdc, 0xba, 0x77, 0x8e, 0x1b,
		0x09, 0xd7, 0x71, 0xbb, 0xdd, 0x48, 0xc4, 0x31, 0x6b, 0xae, 0xd5, 0xcf, 0x16, 0x87, 0x37, 0x02,
		0x6f, 0x04, 0xde, 0x08, 0xbc, 0x11, 0x78, 0x23, 0xf0, 0x46, 0xe0, 0x8d, 0xc0, 0x1b, 0x81, 0x37,
		0x02, 0x99, 0x81, 0x37, 0x92, 0x73, 0x6f, 0x24, 0x12, 0xff, 0x23, 0x3a, 0x89, 0xe8, 0x3a, 0x6e,
		0xf7, 0x7f, 0xe8, 0xdd, 0x8f, 0xb9, 0xd5, 0xe0, 0x6f, 0xc0, 0xdf, 0x80, 0xbf, 0x01, 0x7f, 0x03,
		0xfe, 0x06, 0xfc, 0x0d, 0xf8, 0x1b, 0xf0, 0x37, 0xe0, 0x6f, 0x40, 0x66, 0xe0, 0x6f, 0xe8, 0xe4,
		0x6f, 0x60, 0x78, 0xbd, 0x9a, 0x39, 0xdf, 0x8b, 0x13, 0x9f, 0xf3, 0x36, 0xc9, 0xfe, 0x68, 0xfc,
		0x7c, 0x47, 0x93, 0xc7, 0xc3, 0x54, 0x7b, 0xe5, 0x52, 0xaf, 0x93, 0xb4, 0x9b, 0x3f, 0xe2, 0x7e,
		0x41, 0xbe, 0x73, 0x35, 0xee, 0x7e, 0x4a, 0x7f, 0xc8, 0x1e, 0x72, 0x3f, 0xbe, 0x2e, 0x46, 0xdb,
		0x6b, 0xc8, 0xe9, 0x60, 0xb4, 0xbd, 0x1a, 0x4e, 0x26, 0xe7, 0xa3, 0xed, 0xa7, 0xb8, 0x9f, 0x50,
		0x90, 0x37, 0x8f, 0xc0, 0x32, 0xbb, 0x0a, 0xcd, 0xa0, 0xfb, 0x22, 0xd5, 0xa0, 0xfb, 0x22, 0x06,
		0xdd, 0x33, 0xc0, 0x10, 0x1b, 0x1c, 0xb1, 0xc1, 0x12, 0x0f, 0x3c, 0x99, 0xe1, 0x26, 0x92, 0x51,
		0xc3, 0x1c, 0x08, 0x33, 0x67, 0xcc, 0x54, 0x08, 0xae, 0x5d, 0x0f, 0x86, 0xb7, 0x74, 0x07, 0xaa,
		0x15, 0x36, 0x93, 0xc8, 0x0b, 0xfa, 0xb4, 0xd4, 0x7c, 0x71, 0xf4, 0x12, 0x2e, 0xce, 0x1b, 0x67,
		0xad, 0x76, 0xeb, 0xbc, 0x9d, 0x7e, 0x43, 0x49, 0xce, 0x97, 0x46, 0xcb, 0x1d, 0x5e, 0x9e, 0x1f,
		0x1c, 0x1f, 0x1d, 0x34, 0x5b, 0xb6, 0x59, 0x71, 0x92, 0xb0, 0x91, 0x82, 0x01, 0xe1, 0xdb, 0x78,
		0xdc, 0x19, 0x69, 0xf6, 0xf7, 0x6a, 0x5d, 0x36, 0xff, 0xc2, 0xf7, 0xad, 0xe2, 0x66, 0xb2, 0x6a,
		0x6f, 0x34, 0x94, 0x39, 0x5b, 0x04, 0xee, 0xb5, 0x2f, 0xba, 0x74, 0x56, 0xdd, 0x74, 0x01, 0xc9,
		0xca, 0xe2, 0x58, 0xf4, 0xdc, 0xa1, 0x9f, 0x90, 0xc4, 0xc5, 0xec, 0x94, 0x14, 0x97, 0x8b, 0x17,
		0x57, 0x30, 0x68, 0x61, 0xd0, 0xc2, 0xa0, 0x85, 0x41, 0x2b, 0x55, 0xe2, 0xaf, 0xc3, 0xd0, 0x17,
		0x6e, 0x40, 0x69, 0xcb, 0x96, 0x36, 0x40, 0x09, 0xde, 0x08, 0xdf, 0x0f, 0x9d, 0x81, 0xdb, 0xed,
		0x52, 0x98, 0xc0, 0xd9, 0xdb, 0x9a, 0x5f, 0x06, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x81,
		0x0e, 0x62, 0xc0, 0x73, 0xa8, 0xe4, 0x39, 0x9a, 0xad, 0xcb, 0xc6, 0x11, 0x3d, 0xbf, 0x71, 0x72,
		0x7e, 0xde, 0xac, 0x53, 0xae, 0x52, 0x1e, 0xad, 0x72, 0x70, 0x7c, 0x70, 0xd1, 0x6a, 0x7c, 0x26,
		0x5d, 0x68, 0x7b, 0xb4, 0xd0, 0x71, 0xa3, 0x79, 0x70, 0x78, 0x52, 0x07, 0x59, 0xb3, 0x88, 0x9e,
		0xd3, 0x17, 0xb0, 0x6f, 0x95, 0x09, 0xdf, 0xc1, 0x74, 0xfb, 0xf7, 0xad, 0x6d, 0xc2, 0x55, 0xc6,
		0x32, 0x4b, 0xcb, 0x3a, 0x4d, 0x8e, 0x1f, 0xd8, 0x26, 0x9d, 0x0c, 0xed, 0x2c, 0x95, 0xc4, 0xf1,
		0x08, 0x29, 0xa7, 0xb9, 0x55, 0x60, 0x66, 0xc3, 0xcc, 0x86, 0x99, 0x0d, 0x33, 0xdb, 0x14, 0x84,
		0x99, 0x33, 0xb0, 0x77, 0x37, 0x40, 0x27, 0x0c, 0xdc, 0x38, 0x1e, 0xe7, 0xa2, 0x13, 0xa9, 0x83,
		0xe9, 0x02, 0x88, 0x40, 0x40, 0x13, 0x42, 0x13, 0x42, 0x13, 0x42, 0x13, 0x4a, 0x94, 0xf8, 0x4d,
		0x8e, 0x40, 0xa0, 0xdc, 0x80, 0xb8, 0xdc, 0x40, 0x66, 0xa6, 0xb9, 0xa5, 0xb0, 0xc8, 0x60, 0xfc,
		0x1c, 0x39, 0xaa, 0x2d, 0x18, 0x27, 0x75, 0x38, 0xd7, 0xbd, 0xae, 0xfc, 0xfa, 0x82, 0x99, 0x6b,
		0xa3, 0xc6, 0x40, 0x86, 0x45, 0x22, 0x6f, 0x27, 0x2d, 0x94, 0x18, 0xbc, 0xc0, 0xe0, 0x18, 0xed,
		0x3b, 0x2a, 0x0c, 0x9e, 0x77, 0x41, 0xc9, 0xc5, 0x4a, 0x4b, 0xc7, 0x40, 0xba, 0x2a, 0x21, 0x00,
		0x96, 0xdc, 0xb8, 0x40, 0x72, 0x01, 0x07, 0x1e, 0x90, 0x96, 0x80, 0x64, 0x86, 0x03, 0x24, 0x1b,
		0xa8, 0x16, 0x2c, 0xa0, 0x2e, 0x7d, 0x23, 0x2e, 0x9a, 0xfc, 0x59, 0x62, 0x16, 0x87, 0x1c, 0xca,
		0x38, 0x20, 0x8d, 0x0f, 0xda, 0xb8, 0x20, 0x8e, 0x1d, 0xea, 0xd8, 0x21, 0x8f, 0x15, 0xfa, 0x68,
		0x20, 0x90, 0x08, 0x0a, 0xe9, 0x39, 0x21, 0x46, 0x6e, 0x88, 0x98, 0x23, 0xa2, 0x7b, 0xb1, 0x68,
		0xd4, 0xa2, 0x88, 0x4b, 0x7a, 0x64, 0x15, 0x0a, 0x24, 0xbe, 0x80, 0x42, 0x7a, 0xa9, 0x9e, 0x3e,
		0xda, 0x61, 0xaf, 0x2b, 0x95, 0x68, 0x92, 0x2f, 0xb1, 0x0f, 0x52, 0x89, 0x3c, 0x37, 0x21, 0x0c,
		0x19, 0x52, 0x74, 0xf1, 0x21, 0xf7, 0x16, 0xcb, 0xf0, 0x16, 0xe1, 0x2d, 0xc2, 0x5b, 0x84, 0xb7,
		0x08, 0x6f, 0x11, 0xde, 0x22, 0xbc, 0x45, 0x78, 0x8b, 0xf0, 0x16, 0xe1, 0x2d, 0xc2, 0x5b, 0x5c,
		0xd3, 0x5b, 0xcc, 0x59, 0x43, 0xcf, 0x47, 0x67, 0x11, 0xad, 0x3c, 0x55, 0x4b, 0xba, 0x1e, 0x12,
		0x6e, 0x7e, 0x7e, 0x4d, 0x26, 0xd3, 0x79, 0x4a, 0xb1, 0xe9, 0x47, 0x6e, 0x47, 0xf4, 0x86, 0xbe,
		0x13, 0x89, 0x38, 0x71, 0xa3, 0x44, 0x7e, 0xa2, 0xcd, 0xd2, 0x0a, 0x48, 0xb7, 0x91, 0x61, 0xf4,
		0xa3, 0xa5, 0x27, 0x93, 0x15, 0x8f, 0x96, 0x9e, 0x6b, 0x5c, 0x10, 0x09, 0x37, 0x0c, 0xbc, 0x03,
		0x6a, 0x0e, 0xf4, 0x20, 0x16, 0x50, 0x73, 0xc0, 0xe8, 0x16, 0x92, 0x91, 0xa8, 0x8f, 0x45, 0x77,
		0x89, 0x77, 0x2b, 0x1c, 0x71, 0x37, 0xf0, 0xa2, 0xd4, 0x28, 0x67, 0x98, 0xc6, 0xfd, 0x93, 0xb5,
		0x41, 0xb5, 0x72, 0x43, 0x1f, 0x23, 0x04, 0x72, 0x41, 0x21, 0x3b, 0x24, 0xb2, 0x43, 0x23, 0x2f,
		0x44, 0xd2, 0x71, 0x72, 0x56, 0x2e, 0xc8, 0x56, 0x2f, 0x48, 0x6a, 0x15, 0x06, 0xaa, 0xb5, 0x82,
		0xc1, 0x78, 0xbf, 0x7e, 0x10, 0x25, 0x83, 0xf1, 0xf6, 0xca, 0xe5, 0xed, 0xed, 0x9d, 0x72, 0x71,
		0xbb, 0xb6, 0x5b, 0xad, 0xec, 0xec, 0x54, 0x77, 0x8b, 0xbb, 0x1b, 0x34, 0xf6, 0x6c, 0x84, 0x73,
		0x98, 0x94, 0x27, 0x4f, 0x76, 0x76, 0x30, 0x32, 0xcf, 0x08, 0xcd, 0x45, 0x7f, 0xf5, 0x2b, 0xa3,
		0x34, 0xae, 0xb8, 0x4b, 0x22, 0xd7, 0x19, 0x06, 0x71, 0xe2, 0x5e, 0xfb, 0xc4, 0xba, 0x37, 0x12,
		0x3d, 0x11, 0x89, 0xa0, 0x93, 0x0b, 0x9d, 0x35, 0x35, 0x24, 0x2e, 0x3f, 0x1c, 0x59, 0xd5, 0xed,
		0x62, 0x6d, 0xdf, 0xba, 0x1c, 0xb3, 0xc8, 0x56, 0xd3, 0xeb, 0x07, 0xae, 0xef, 0x05, 0x7d, 0xab,
		0x17, 0x46, 0x56, 0xa3, 0xe9, 0x34, 0x9a, 0xff, 0x61, 0xa5, 0xbf, 0xb6, 0xb3, 0xf2, 0xd7, 0xbe,
		0x06, 0xd9, 0xef, 0xd9, 0x0c, 0x80, 0xc9, 0x64, 0xc8, 0xaf, 0x32, 0xe8, 0x1f, 0x05, 0x80, 0x09,
		0xb4, 0xb8, 0x6d, 0xfb, 0x95, 0x36, 0xbe, 0x5c, 0x09, 0x01, 0xee, 0xf2, 0xe2, 0xee, 0x1b, 0x03,
		0x90, 0x7c, 0x81, 0x9d, 0x89, 0xb8, 0xe9, 0xa0, 0x08, 0x1c, 0x10, 0x38, 0x20, 0x70, 0x40, 0xe0,
		0x80, 0xcc, 0xe2, 0x80, 0x86, 0x5e, 0x90, 0x94, 0x6a, 0x0c, 0x24, 0x50, 0xed, 0xff, 0xb1, 0xf7,
		0xae, 0xcd, 0x69, 0x2b, 0x4b, 0x1b, 0xe8, 0xf7, 0xfc, 0x0a, 0x95, 0x6a, 0xbf, 0xb5, 0xec, 0xbd,
		0x23, 0x73, 0x31, 0xe0, 0x98, 0x53, 0xbb, 0x56, 0x11, 0x43, 0x12, 0xbd, 0xc1, 0x40, 0x01, 0xce,
		0xce, 0x7a, 0x63, 0x96, 0x4a, 0x86, 0xc1, 0xd6, 0x8e, 0x2c, 0x71, 0xa4, 0xc1, 0x89, 0x4f, 0xe2,
		0xff, 0x7e, 0x0a, 0x01, 0x32, 0x18, 0xe3, 0x2b, 0x9a, 0xe9, 0x11, 0x8f, 0x3f, 0xc4, 0x84, 0xc4,
		0x9e, 0x66, 0xf4, 0x4c, 0x77, 0x3f, 0x3d, 0x7d, 0x41, 0x10, 0x88, 0x68, 0x10, 0x28, 0x0b, 0xda,
		0x8e, 0x98, 0xcf, 0xd3, 0xa0, 0x52, 0x2a, 0x16, 0xf7, 0x8b, 0x80, 0x0b, 0xd8, 0x06, 0xa2, 0x3c,
		0x88, 0xf2, 0x20, 0xca, 0x83, 0x28, 0x0f, 0xa2, 0x3c, 0x88, 0xf2, 0x08, 0xfa, 0x8d, 0xa8, 0x5c,
		0x79, 0x72, 0x5e, 0xff, 0xdd, 0xa4, 0xee, 0xd4, 0x75, 0x3b, 0xf8, 0x38, 0xfb, 0x80, 0x33, 0xfd,
		0x81, 0x9e, 0x07, 0x9b, 0xb2, 0xf1, 0xe8, 0x79, 0x80, 0x84, 0xdd, 0x67, 0xb8, 0x39, 0x48, 0xd8,
		0x4d, 0x8b, 0x35, 0x44, 0xc2, 0xee, 0x26, 0x55, 0x1d, 0x2e, 0x6b, 0xa4, 0xaa, 0x40, 0xd1, 0x0c,
		0x10, 0x97, 0x35, 0x2a, 0x50, 0x27, 0x24, 0xec, 0x3e, 0x55, 0x7d, 0x21, 0x61, 0xf7, 0x09, 0x1f,
		0x04, 0x09, 0xbb, 0x48, 0xd8, 0x7d, 0x31, 0x76, 0x90, 0xb0, 0x2b, 0x1a, 0x3b, 0xb8, 0xca, 0x79,
		0xe8, 0x0b, 0x57, 0x39, 0xeb, 0xd6, 0xc2, 0x55, 0x0e, 0xae, 0x72, 0x70, 0x95, 0x83, 0xab, 0x1c,
		0xa5, 0xf4, 0x2e, 0x12, 0x76, 0x1f, 0x0f, 0x07, 0x21, 0x61, 0x17, 0x31, 0x20, 0xc4, 0x80, 0x10,
		0x03, 0x52, 0x2c, 0x06, 0x84, 0x84, 0xdd, 0xad, 0x0f, 0x02, 0x21, 0x61, 0x17, 0x31, 0x9f, 0x27,
		0x42, 0x05, 0x09, 0xbb, 0x60, 0x1b, 0x88, 0xf2, 0x20, 0xca, 0x83, 0x28, 0x0f, 0xa2, 0x3c, 0x88,
		0xf2, 0x20, 0xca, 0x23, 0xf2, 0x37, 0x22, 0x61, 0xf7, 0xe5, 0x09, 0xbb, 0x29, 0x6b, 0x38, 0x7f,
		0x37, 0x5f, 0x17, 0x6d, 0xe7, 0x65, 0xa3, 0x9e, 0x12, 0xda, 0xd5, 0x6f, 0x3e, 0x7f, 0x07, 0xdf,
		0x69, 0x6a, 0x41, 0x7f, 0x1b, 0x34, 0x77, 0x06, 0x9b, 0x6f, 0x3f, 0xbf, 0xf4, 0xdb, 0x37, 0xdb,
		0x7a, 0x3e, 0x8b, 0xd6, 0xf3, 0x94, 0x9d, 0x72, 0xb4, 0x9e, 0x57, 0xc9, 0x0a, 0x6d, 0x3c, 0xbe,
		0x1d, 0x23, 0xd6, 0x65, 0xf6, 0x30, 0x60, 0xc3, 0x4d, 0x22, 0x76, 0x5e, 0x6f, 0xb2, 0xc1, 0xf4,
		0x26, 0xbd, 0x35, 0x33, 0x94, 0x7b, 0x7b, 0xb3, 0x62, 0xaa, 0xcc, 0x92, 0xea, 0x4a, 0xa5, 0xc2,
		0x9f, 0x3c, 0x96, 0x04, 0x35, 0xfe, 0xe6, 0x9e, 0xfa, 0xd6, 0x4f, 0x1b, 0x19, 0x42, 0xe1, 0xcb,
		0x50, 0xf8, 0x43, 0x4c, 0x1a, 0x79, 0xe2, 0x2f, 0xc4, 0xa4, 0x91, 0x04, 0xd5, 0x4b, 0x92, 0x6a,
		0x26, 0x71, 0x75, 0x93, 0xb4, 0xda, 0x11, 0xa6, 0x7e, 0x84, 0xa9, 0x21, 0x11, 0xea, 0x48, 0x8d,
		0x88, 0x60, 0xf2, 0x45, 0x8b, 0x02, 0x93, 0xd2, 0x90, 0x8e, 0x26, 0x5c, 0xa9, 0x09, 0x53, 0x6e,
		0xa2, 0x94, 0x9c, 0x70, 0x65, 0x27, 0x5c, 0xe9, 0x89, 0x54, 0x7e, 0xc9, 0x28, 0xc1, 0x84, 0x94,
		0x61, 0x72, 0x54, 0x5d, 0x20, 0x75, 0x17, 0x41, 0xe5, 0xd7, 0x52, 0xfb, 0x4c, 0x04, 0xa3, 0xf2,
		0x42, 0xc8, 0xfa, 0xce, 0x1b, 0xb3, 0xbf, 0x47, 0xc1, 0xe5, 0x2d, 0xce, 0xdb, 0x0e, 0xc7, 0x67,
		0x02, 0xed, 0xe3, 0xd2, 0x6a, 0x30, 0x91, 0x30, 0x91, 0x30, 0x91, 0x30, 0x91, 0x30, 0x91, 0x44,
		0x4d, 0xe4, 0xb7, 0x5b, 0x13, 0xf9, 0xef, 0xfe, 0x38, 0x08, 0x98, 0xc7, 0x77, 0x76, 0x33, 0x7b,
		0x7b, 0xb7, 0xd1, 0xf2, 0xde, 0xec, 0x47, 0x16, 0xf5, 0x7a, 0x78, 0xcf, 0x7b, 0xf1, 0x6f, 0x1e,
		0xb0, 0x9f, 0x3a, 0xf2, 0x67, 0x36, 0xf0, 0x10, 0x6b, 0x3f, 0xa3, 0xac, 0xdc, 0xcd, 0xa7, 0x37,
		0x26, 0x1f, 0xb0, 0xf1, 0xfb, 0x06, 0xfb, 0xc9, 0xcb, 0x9c, 0xb9, 0xec, 0x92, 0xf1, 0xe0, 0xda,
		0xf0, 0x3d, 0xa3, 0x7f, 0x11, 0x15, 0x11, 0x08, 0x09, 0xe2, 0x44, 0x69, 0xc5, 0x02, 0xa2, 0x38,
		0xd4, 0x03, 0x38, 0x3d, 0xa4, 0x74, 0x3d, 0x35, 0xc9, 0x65, 0xe9, 0x9e, 0x2b, 0x75, 0x0d, 0x18,
		0xe3, 0x57, 0x6d, 0x36, 0x44, 0xf7, 0xc5, 0x8d, 0x71, 0x1d, 0x74, 0x5f, 0xc4, 0x25, 0x06, 0x09,
		0xd2, 0x82, 0x4b, 0x0c, 0x61, 0x6e, 0x19, 0x2e, 0x31, 0x10, 0xa1, 0x41, 0x84, 0x06, 0x11, 0x1a,
		0x44, 0x68, 0x10, 0xa1, 0x11, 0x10, 0xa1, 0xc1, 0x25, 0x86, 0x86, 0x4b, 0x0c, 0x98, 0x48, 0x98,
		0x48, 0x98, 0x48, 0x98, 0x48, 0x98, 0x48, 0x5c, 0x62, 0xa8, 0xc5, 0x96, 0xb7, 0x26, 0x62, 0x9c,
		0xb2, 0x0a, 0xe0, 0xa5, 0x80, 0x31, 0xca, 0x7f, 0x65, 0xe3, 0x9d, 0x0c, 0xce, 0xd5, 0xaf, 0xfd,
		0x5d, 0x44, 0x76, 0x9a, 0xea, 0xc0, 0x5c, 0x76, 0xc5, 0xdc, 0x70, 0xf3, 0x05, 0x60, 0xb3, 0xdf,
		0x8b, 0xca, 0xaf, 0x8d, 0xb0, 0x18, 0x14, 0xfb, 0x8a, 0xe1, 0x25, 0xdb, 0x54, 0xec, 0xbb, 0xf1,
		0xea, 0xaf, 0xe8, 0xc8, 0x27, 0x77, 0x6d, 0x3a, 0xfd, 0xf5, 0xa8, 0xfd, 0xc2, 0xd0, 0x3a, 0xf9,
		0x81, 0x12, 0x0c, 0xad, 0x13, 0x48, 0x06, 0x13, 0xbb, 0x3a, 0xb5, 0x07, 0xff, 0xb5, 0xfb, 0xcc,
		0xeb, 0x3b, 0x4c, 0xc0, 0x94, 0xba, 0xc5, 0xc5, 0x92, 0x8d, 0x0d, 0xe7, 0x92, 0x8e, 0x0d, 0xe7,
		0xd1, 0x92, 0x9c, 0x80, 0xb2, 0x13, 0xae, 0xf4, 0x84, 0x2b, 0x3f, 0xb1, 0x4a, 0x30, 0xb9, 0x58,
		0x9b, 0x96, 0x60, 0x7c, 0x38, 0x29, 0xe5, 0xb8, 0xa2, 0x24, 0xaf, 0x93, 0x07, 0xf2, 0x5d, 0x55,
		0x79, 0x9d, 0x34, 0x90, 0x93, 0x55, 0x98, 0x89, 0x7b, 0x83, 0x32, 0x14, 0xa8, 0x04, 0x45, 0x2a,
		0x5a, 0xa1, 0x4a, 0x53, 0xac, 0xd2, 0x14, 0xac, 0x1c, 0x45, 0x9b, 0xac, 0xc2, 0x4d, 0x58, 0xf1,
		0x0a, 0x53, 0xc0, 0xf1, 0x42, 0xc9, 0x64, 0x25, 0x3f, 0x7a, 0xbe, 0x93, 0xba, 0xa1, 0x90, 0xa8,
		0x90, 0x85, 0x2b, 0x66, 0x19, 0x0a, 0x5a, 0xa2, 0xa2, 0x96, 0xa5, 0xb0, 0xa5, 0x2b, 0x6e, 0xe9,
		0x0a, 0x5c, 0xae, 0x22, 0x17, 0xa3, 0xd0, 0x05, 0x29, 0x76, 0xe1, 0x0a, 0x7e, 0xd5, 0xe3, 0x36,
		0xc4, 0xaa, 0xfc, 0xf5, 0x7e, 0xb8, 0x21, 0xd2, 0x08, 0xdc, 0x35, 0x06, 0x59, 0xc1, 0xcb, 0x8a,
		0x36, 0x0a, 0x32, 0x8d, 0x03, 0x01, 0x23, 0x21, 0xdb, 0x58, 0x90, 0x31, 0x1a, 0x64, 0x8c, 0x07,
		0x0d, 0x23, 0x22, 0xd6, 0x98, 0x08, 0x36, 0x2a, 0xf1, 0x16, 0x27, 0x9e, 0xde, 0xf7, 0xe8, 0x89,
		0x9f, 0x3c, 0x55, 0xe3, 0x36, 0x59, 0xc3, 0x1e, 0xfc, 0x57, 0x8a, 0xb6, 0x5f, 0x72, 0xff, 0x0b,
		0x12, 0xd6, 0xae, 0x79, 0xe3, 0x4b, 0x79, 0xca, 0xa7, 0xeb, 0x77, 0x78, 0xe0, 0x78, 0xe7, 0xd2,
		0x24, 0x88, 0xa4, 0xc8, 0x4e, 0x00, 0x71, 0xd2, 0x92, 0xa4, 0xf8, 0x22, 0x11, 0x72, 0x13, 0x11,
		0xaa, 0xcd, 0xff, 0x34, 0x64, 0x0a, 0x91, 0x9f, 0x08, 0x61, 0x36, 0xcc, 0xae, 0x4c, 0x21, 0xf6,
		0x27, 0x42, 0x7c, 0xa8, 0x98, 0xf5, 0x5a, 0x55, 0x97, 0x22, 0xc5, 0xcd, 0x5b, 0x59, 0x67, 0xc1,
		0x8c, 0x6c, 0x8e, 0xc4, 0x83, 0x10, 0x01, 0x50, 0x58, 0x1c, 0xe2, 0x5e, 0x11, 0x66, 0x4f, 0xbe,
		0xac, 0xed, 0x4b, 0x14, 0x22, 0x3a, 0x03, 0x89, 0x5d, 0xf8, 0x3d, 0x49, 0x84, 0x93, 0xd6, 0xc4,
		0x15, 0x97, 0x73, 0x00, 0xe0, 0xec, 0x6c, 0xf4, 0x51, 0x0a, 0x1c, 0xf5, 0xb7, 0x56, 0x06, 0x71,
		0x23, 0x00, 0xd7, 0x7d, 0x49, 0x54, 0x6b, 0x0b, 0x23, 0x03, 0x8b, 0xfb, 0xd9, 0xfd, 0xb2, 0xd6,
		0xad, 0x7f, 0xd1, 0xf2, 0x85, 0xec, 0x9e, 0x4c, 0x3b, 0x27, 0x99, 0xf7, 0xdd, 0xc7, 0xff, 0x44,
		0x8f, 0x09, 0x24, 0x4f, 0x05, 0xef, 0xa5, 0x84, 0xab, 0x28, 0x92, 0x26, 0xdb, 0xcd, 0x96, 0xd8,
		0x87, 0xde, 0x9b, 0x74, 0x7e, 0x3e, 0x81, 0x96, 0x68, 0x21, 0xaa, 0xc9, 0x65, 0x90, 0xef, 0x7b,
		0xa2, 0xab, 0x91, 0x1c, 0x08, 0xae, 0x26, 0xba, 0x30, 0x82, 0xab, 0x08, 0xae, 0x22, 0xb8, 0xba,
		0x5d, 0x7c, 0x43, 0x7e, 0x70, 0x35, 0xaa, 0x59, 0x90, 0xa1, 0xdf, 0x35, 0x84, 0x53, 0x89, 0x84,
		0x53, 0xeb, 0xb5, 0x2f, 0xb5, 0xba, 0x95, 0x93, 0x1e, 0x53, 0x9d, 0xca, 0x91, 0x97, 0x1e, 0x56,
		0x9d, 0xed, 0x87, 0x95, 0x47, 0x50, 0x53, 0xb0, 0x08, 0x73, 0x24, 0x0a, 0x77, 0xbe, 0xee, 0x93,
		0xc2, 0xca, 0x4b, 0x8e, 0x2b, 0xce, 0xcf, 0x43, 0x59, 0xcb, 0x21, 0xb8, 0x08, 0xf2, 0xf8, 0x54,
		0xf2, 0x18, 0x30, 0xdb, 0xb0, 0x07, 0x83, 0x80, 0x85, 0xa1, 0x44, 0xea, 0xb8, 0x28, 0x05, 0x88,
		0x23, 0x88, 0x23, 0x88, 0x23, 0x88, 0x23, 0x88, 0x63, 0x8a, 0x88, 0xa3, 0x44, 0x0d, 0xbf, 0x44,
		0x1d, 0xdf, 0x49, 0x58, 0xbb, 0x65, 0x73, 0xce, 0x02, 0x4f, 0xda, 0x05, 0x9d, 0xfe, 0x2d, 0x6b,
		0x1c, 0x56, 0x8c, 0x0f, 0xb6, 0x31, 0xec, 0xfd, 0xca, 0xdf, 0xec, 0x9c, 0x9e, 0xee, 0x2d, 0xbe,
		0x53, 0xb8, 0xd9, 0xfd, 0x95, 0x7d, 0xbb, 0x7f, 0x23, 0xfe, 0xd0, 0xf5, 0x64, 0x3c, 0x8c, 0x66,
		0xc7, 0xfc, 0x2a, 0xfd, 0x89, 0xfc, 0xfd, 0xb4, 0x47, 0xf2, 0x0f, 0x3d, 0xed, 0x37, 0x32, 0x82,
		0x15, 0x61, 0xdd, 0x09, 0x79, 0x85, 0xf3, 0x40, 0x8e, 0x32, 0x3c, 0x76, 0xbc, 0x9a, 0xcb, 0x26,
		0xb6, 0x2e, 0x94, 0x43, 0x5a, 0xf5, 0x63, 0xfb, 0xe7, 0x82, 0x04, 0xb9, 0x77, 0x85, 0x42, 0xe9,
		0xa0, 0x50, 0xc8, 0x1e, 0xec, 0x1f, 0x64, 0x0f, 0x8b, 0xc5, 0x5c, 0x29, 0x57, 0x94, 0x20, 0x54,
		0x33, 0x18, 0xb0, 0x80, 0x0d, 0xde, 0x5f, 0xeb, 0x65, 0xcd, 0x1b, 0xbb, 0xae, 0x4c, 0x11, 0x4e,
		0x42, 0x16, 0xcc, 0x27, 0xe7, 0x80, 0x5e, 0xbe, 0x7a, 0x5f, 0x07, 0x4e, 0x68, 0x84, 0xd7, 0x21,
		0x67, 0x97, 0x86, 0x33, 0x90, 0xc7, 0x2f, 0x97, 0xc5, 0x00, 0xc1, 0x04, 0xc1, 0x04, 0xc1, 0x04,
		0xc1, 0x04, 0xc1, 0x4c, 0x11, 0xc1, 0x94, 0xa5, 0xde, 0xc1, 0x2e, 0x97, 0x89, 0xcb, 0x0a, 0x93,
		0x59, 0x79, 0x03, 0x3c, 0x53, 0x12, 0xcf, 0x7c, 0xca, 0xc3, 0x49, 0x3f, 0xe3, 0x4c, 0xa5, 0x9f,
		0xed, 0xfa, 0x7d, 0xdb, 0x35, 0xd8, 0x4f, 0xce, 0xbc, 0x01, 0x1b, 0x18, 0x7d, 0x27, 0xe8, 0x8f,
		0x1d, 0x2e, 0xd5, 0xe7, 0x5e, 0x2f, 0x12, 0xfc, 0x6f, 0xf8, 0xdf, 0xf0, 0xbf, 0xe1, 0x7f, 0xc3,
		0xff, 0x4e, 0x91, 0xff, 0x2d, 0x5f, 0xd1, 0x2f, 0x2a, 0xfb, 0x03, 0x09, 0x4b, 0xb7, 0xa3, 0xc1,
		0xde, 0x5b, 0x58, 0x85, 0x75, 0xec, 0x78, 0xf2, 0xab, 0x9d, 0xbe, 0xd8, 0xee, 0x98, 0xc9, 0x4d,
		0x05, 0x8b, 0xe4, 0xf8, 0x10, 0xd8, 0x7d, 0xee, 0xf8, 0x5e, 0xd5, 0x39, 0x77, 0x64, 0x85, 0xf9,
		0x97, 0x0f, 0x28, 0x3b, 0xb7, 0xb9, 0x73, 0xc5, 0xa4, 0x44, 0xb5, 0x25, 0xea, 0xc4, 0x65, 0x88,
		0xda, 0x3f, 0xe9, 0x40, 0xb4, 0x90, 0x3f, 0x2c, 0x1c, 0x96, 0x0e, 0xf2, 0x87, 0x45, 0x60, 0x95,
		0x2a, 0x56, 0x51, 0x7f, 0x07, 0xee, 0xfd, 0x44, 0xd0, 0x5e, 0x8e, 0x5d, 0xee, 0x18, 0xdc, 0x1f,
		0xf9, 0xae, 0x7f, 0x7e, 0x2d, 0x8f, 0x70, 0xdf, 0x91, 0x03, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b,
		0x2c, 0x1b, 0x2c, 0x3b, 0x45, 0x2c, 0xfb, 0xcc, 0xf7, 0x5d, 0x66, 0x7b, 0x32, 0xef, 0xb8, 0x72,
		0x68, 0xe9, 0x92, 0xb0, 0x0c, 0x68, 0xe9, 0x32, 0x6b, 0xc6, 0x91, 0xcb, 0x1f, 0xee, 0x4d, 0x9b,
		0x71, 0xe4, 0x0f, 0xd1, 0xd2, 0x05, 0x2d, 0x5d, 0x9e, 0x6f, 0x08, 0x57, 0x51, 0x04, 0x4a, 0x09,
		0x4a, 0x49, 0x9e, 0x52, 0x7a, 0xcc, 0x39, 0xbf, 0x38, 0xf3, 0x83, 0x38, 0x98, 0x2e, 0xb7, 0xb3,
		0xcb, 0xfd, 0xe2, 0x80, 0x60, 0x82, 0x60, 0x82, 0x60, 0x82, 0x60, 0x82, 0x60, 0xa6, 0x88, 0x60,
		0xa2, 0xc1, 0x0b, 0x1a, 0xbc, 0xa0, 0xc1, 0xcb, 0x5c, 0x0e, 0x34, 0x78, 0x41, 0x83, 0x17, 0x34,
		0x78, 0x91, 0x46, 0x25, 0xd1, 0xe0, 0x65, 0x83, 0x54, 0x92, 0x54, 0x72, 0xf0, 0x83, 0x52, 0x81,
		0x58, 0x82, 0x58, 0x82, 0x58, 0x82, 0x58, 0x82, 0x58, 0xa6, 0x88, 0x58, 0x22, 0x3f, 0x18, 0xf9,
		0xc1, 0x12, 0xbf, 0x90, 0x1f, 0xbc, 0xf6, 0x80, 0x22, 0x3f, 0x18, 0xf9, 0xc1, 0xc0, 0x2a, 0x75,
		0x2e, 0xac, 0xe1, 0x32, 0x57, 0x75, 0x06, 0xee, 0x8c, 0xae, 0x0a, 0xf2, 0x7b, 0xad, 0xde, 0x2f,
		0x0e, 0x38, 0x37, 0x38, 0x37, 0x38, 0x37, 0x38, 0x37, 0x38, 0x77, 0x8a, 0x38, 0xb7, 0x44, 0x0d,
		0xaf, 0x6d, 0x7d, 0x5b, 0x9c, 0x9d, 0x6f, 0x59, 0xe3, 0xb0, 0xf7, 0xfb, 0x5b, 0xce, 0x38, 0xec,
		0x4d, 0x5f, 0xe6, 0xa2, 0x6f, 0xbf, 0xf2, 0x37, 0xbf, 0xf3, 0xdf, 0xb2, 0x46, 0x61, 0xf6, 0x6e,
		0xbe, 0xf8, 0x2d, 0x6b, 0x14, 0x7b, 0xbb, 0x3b, 0xa7, 0xa7, 0x7b, 0xcf, 0xfd, 0x99, 0xdd, 0x5f,
		0x68, 0xdb, 0x2a, 0x52, 0x8a, 0xbf, 0x77, 0x44, 0x3d, 0xd5, 0x5d, 0x34, 0xe2, 0x51, 0xde, 0xd9,
		0x2f, 0xd1, 0x72, 0xf6, 0x4b, 0x70, 0xf6, 0xe1, 0xec, 0xc3, 0xd9, 0x87, 0xb3, 0x0f, 0x67, 0x3f,
		0xa5, 0xce, 0x7e, 0x09, 0xce, 0xbe, 0x2c, 0x67, 0x3f, 0xf2, 0xf1, 0x6c, 0x63, 0x58, 0x31, 0x3e,
		0xf4, 0x7e, 0xe5, 0xde, 0x16, 0x6e, 0xca, 0xbb, 0xbf, 0x0e, 0x6e, 0xee, 0xbe, 0xf9, 0xfb, 0xbe,
		0xff, 0x96, 0x7b, 0x7b, 0x70, 0x53, 0x5e, 0xf3, 0x2f, 0xa5, 0x9b, 0xf2, 0x13, 0x7f, 0x47, 0xf1,
		0x66, 0x67, 0xe5, 0xbf, 0x4e, 0xde, 0xcf, 0xaf, 0xfb, 0x81, 0xc2, 0x9a, 0x1f, 0xd8, 0x5f, 0xf7,
		0x03, 0xfb, 0x6b, 0x7e, 0x60, 0xad, 0x48, 0xf9, 0x35, 0x3f, 0x50, 0xbc, 0xf9, 0xbd, 0xf2, 0xff,
		0x77, 0xee, 0xff, 0xaf, 0xa5, 0x9b, 0xdd, 0xdf, 0xeb, 0xfe, 0xed, 0xe0, 0xe6, 0x77, 0x79, 0x77,
		0x17, 0xf4, 0x47, 0x38, 0xfd, 0x01, 0xcc, 0xc5, 0xc3, 0x1c, 0x74, 0x50, 0x6d, 0x3a, 0x18, 0x7a,
		0x23, 0x9b, 0x00, 0x0d, 0x8c, 0xc4, 0x00, 0xfd, 0x03, 0xfd, 0x03, 0xfd, 0x03, 0xfd, 0x03, 0xfd,
		0x4b, 0x11, 0xfd, 0x93, 0xa0, 0xd9, 0xa5, 0xd3, 0xbe, 0x3a, 0xf3, 0xce, 0xf9, 0x05, 0x52, 0x2a,
		0x25, 0x09, 0x81, 0x94, 0xca, 0x75, 0x67, 0x12, 0x29, 0x95, 0xc4, 0x52, 0x2a, 0xf3, 0xc0, 0x28,
		0x59, 0x8c, 0x22, 0x95, 0x12, 0x74, 0xfa, 0xa9, 0x74, 0xda, 0x1d, 0x49, 0xad, 0x5a, 0x8c, 0x96,
		0x07, 0x7d, 0x06, 0x7d, 0x06, 0x7d, 0x06, 0x7d, 0x06, 0x7d, 0x4e, 0x11, 0x7d, 0x66, 0xde, 0xf8,
		0x92, 0x05, 0xf6, 0xc4, 0x45, 0x43, 0xe3, 0x1b, 0xa1, 0x8f, 0x9e, 0x4e, 0xe3, 0x1b, 0xb3, 0xf5,
		0xa5, 0x20, 0xbd, 0xeb, 0x8d, 0xd9, 0xfa, 0x52, 0x42, 0xa3, 0x19, 0xc1, 0x22, 0x44, 0x4f, 0x5e,
		0x6e, 0x97, 0x99, 0xe8, 0xb9, 0xa3, 0xb5, 0x4b, 0x3a, 0xec, 0x59, 0xdd, 0x09, 0x79, 0x85, 0xf3,
		0x40, 0x8e, 0x4d, 0x3b, 0x76, 0xbc, 0x85, 0x21, 0xff, 0x12, 0x40, 0xad, 0x1f, 0xdb, 0x3f, 0x17,
		0x24, 0xc8, 0xbd, 0x2b, 0x14, 0x4a, 0x07, 0x85, 0x42, 0xf6, 0x60, 0xff, 0x20, 0x7b, 0x58, 0x2c,
		0xe6, 0x4a, 0xb9, 0xa2, 0xcc, 0x19, 0xff, 0x7a, 0x59, 0xf3, 0xc6, 0xae, 0x2b, 0x53, 0x84, 0x93,
		0x90, 0x05, 0x52, 0x22, 0x2f, 0xe9, 0x8c, 0x0b, 0x8c, 0x02, 0xc7, 0x0f, 0x1c, 0x2e, 0x71, 0xf8,
		0x4a, 0x2c, 0x01, 0xa2, 0x03, 0x88, 0x0e, 0x20, 0x3a, 0x80, 0xe8, 0x00, 0xbc, 0xa9, 0x14, 0x45,
		0x07, 0xc6, 0x8e, 0xc7, 0xdf, 0x49, 0x8c, 0x0b, 0x14, 0xd1, 0xae, 0x48, 0xa8, 0xfb, 0x8c, 0xbb,
		0xf5, 0xb9, 0x1c, 0xb8, 0xb7, 0x24, 0x16, 0x2e, 0xd1, 0xc8, 0xdd, 0xad, 0xe7, 0xf2, 0x07, 0x00,
		0x29, 0x55, 0x90, 0xe2, 0x72, 0x1d, 0x24, 0xfa, 0x89, 0xa0, 0x0d, 0x58, 0xc8, 0xed, 0x80, 0x1b,
		0x21, 0xb7, 0xf9, 0x58, 0x62, 0xcd, 0xf2, 0x1d, 0x39, 0x40, 0xa8, 0x41, 0xa8, 0x41, 0xa8, 0x41,
		0xa8, 0x41, 0xa8, 0x53, 0x44, 0xa8, 0xb7, 0x6f, 0x8e, 0x69, 0xba, 0x5d, 0x86, 0xf1, 0x68, 0xe4,
		0x07, 0x9c, 0x80, 0xcf, 0x30, 0x13, 0x04, 0x4e, 0x03, 0x9c, 0x06, 0x38, 0x0d, 0x70, 0x1a, 0xe0,
		0x34, 0xc0, 0x69, 0x80, 0xd3, 0x40, 0xd7, 0x69, 0x90, 0xdb, 0x1d, 0x6d, 0x45, 0x12, 0xb8, 0x0d,
		0x70, 0x1b, 0xe0, 0x36, 0xc0, 0x6d, 0x80, 0xdb, 0x00, 0xb7, 0x01, 0x6e, 0x03, 0x2d, 0xb7, 0x21,
		0xbc, 0x0e, 0x39, 0xbb, 0x94, 0x3a, 0xb5, 0xf0, 0x56, 0x04, 0x38, 0x0a, 0x70, 0x14, 0xe0, 0x28,
		0xc0, 0x51, 0x80, 0xa3, 0x90, 0x22, 0x47, 0x41, 0x96, 0x7a, 0xd7, 0xb6, 0xbe, 0x7d, 0xea, 0xb7,
		0xac, 0x71, 0x58, 0x31, 0x3e, 0xd8, 0xc6, 0xb0, 0xf7, 0xab, 0x70, 0x73, 0x7a, 0xba, 0xf7, 0xc8,
		0x1b, 0x68, 0xfa, 0x29, 0x4e, 0x8a, 0xbf, 0x9f, 0xfb, 0x70, 0xd0, 0xaa, 0x52, 0x49, 0xff, 0x9a,
		0xfb, 0x23, 0xdf, 0xf5, 0xcf, 0x25, 0xd6, 0xd0, 0xc4, 0x12, 0xc0, 0xbb, 0x86, 0x77, 0x0d, 0xef,
		0x1a, 0xde, 0x35, 0xbc, 0xeb, 0x14, 0x79, 0xd7, 0xce, 0x80, 0x79, 0xdc, 0xe1, 0xd7, 0x01, 0x1b,
		0xca, 0xf4, 0xaf, 0x65, 0x94, 0xd2, 0x98, 0xb3, 0x8f, 0xfe, 0xde, 0x0e, 0x25, 0xea, 0x9d, 0xf9,
		0x83, 0xa8, 0x7c, 0x30, 0xad, 0xce, 0xe4, 0x8f, 0xee, 0x5f, 0xad, 0x9a, 0x2c, 0xdd, 0x13, 0x15,
		0x0f, 0x84, 0xd2, 0xbc, 0x5a, 0x4d, 0x6a, 0x89, 0xd1, 0xd2, 0xe3, 0x30, 0x5b, 0x5f, 0x0a, 0xd6,
		0xf1, 0x49, 0xbd, 0x6b, 0x1e, 0x55, 0x3a, 0x5d, 0x7d, 0x1b, 0xeb, 0x59, 0x28, 0x3d, 0x89, 0x93,
		0x06, 0x9e, 0x83, 0xfc, 0xe7, 0x50, 0xc2, 0x89, 0x20, 0xf3, 0x24, 0xe4, 0x9f, 0x08, 0x29, 0x2b,
		0xf7, 0xe0, 0x81, 0x6e, 0x14, 0x53, 0xe8, 0x89, 0x83, 0x9e, 0x38, 0x0f, 0x8a, 0x80, 0x9e, 0x38,
		0x1b, 0xdd, 0xd7, 0xf1, 0xc8, 0xe0, 0xce, 0x25, 0x0b, 0xb9, 0x7d, 0x39, 0x92, 0x17, 0xd3, 0x5b,
		0x92, 0x02, 0x71, 0xbd, 0x44, 0x17, 0x46, 0x5c, 0x0f, 0x71, 0x3d, 0xc4, 0xf5, 0xb6, 0xcb, 0xab,
		0x92, 0x1f, 0xd7, 0x9b, 0xa8, 0x77, 0xee, 0xf4, 0xbf, 0x87, 0xa5, 0x82, 0xc4, 0xb8, 0x9e, 0x8c,
		0x6b, 0xf3, 0x13, 0x6f, 0xda, 0x6d, 0x42, 0xf7, 0x6c, 0xcf, 0x0f, 0x59, 0xdf, 0xf7, 0x06, 0x52,
		0x14, 0x1f, 0x3a, 0xf5, 0xc8, 0xe4, 0xca, 0xe8, 0xd4, 0xb3, 0x4e, 0x41, 0xa0, 0x53, 0x0f, 0xb5,
		0x4e, 0x3d, 0x24, 0x48, 0x27, 0x50, 0x4b, 0xd0, 0x6f, 0x91, 0xb7, 0x6a, 0x6a, 0x73, 0x77, 0xde,
		0xa4, 0x48, 0xb7, 0xe9, 0x15, 0xcf, 0xf3, 0xf9, 0x74, 0x3c, 0x82, 0x48, 0x75, 0xa6, 0x87, 0xfd,
		0x0b, 0x76, 0x69, 0x8f, 0xec, 0x68, 0xcc, 0x9f, 0x9e, 0xf1, 0x47, 0xcc, 0xeb, 0x47, 0xfc, 0xda,
		0xf0, 0x18, 0xff, 0xe1, 0x07, 0xdf, 0x0d, 0xc7, 0x0b, 0xb9, 0xed, 0xf5, 0x59, 0xe6, 0xee, 0x1b,
		0xe1, 0xca, 0x3b, 0x99, 0x51, 0xe0, 0x73, 0xbf, 0xef, 0xbb, 0x61, 0xfc, 0x2a, 0x33, 0x21, 0x25,
		0x19, 0xc7, 0xe3, 0x2c, 0x18, 0xda, 0x93, 0x9f, 0x89, 0x5f, 0x66, 0x5c, 0x76, 0xc5, 0xdc, 0x70,
		0xfa, 0x2d, 0x63, 0x0f, 0xfe, 0x6b, 0xf7, 0x99, 0xd7, 0x77, 0x58, 0x18, 0xbf, 0xbe, 0xce, 0x84,
		0xdc, 0xe6, 0x4c, 0x17, 0x59, 0x04, 0xc1, 0x83, 0x71, 0x9f, 0x7b, 0x33, 0xd7, 0xbb, 0x19, 0xef,
		0x46, 0x63, 0xfa, 0x49, 0xcd, 0xd9, 0x07, 0xb5, 0xee, 0xfc, 0x3d, 0xbc, 0xfb, 0x86, 0xd5, 0x9a,
		0xef, 0x44, 0xfc, 0xca, 0x32, 0x43, 0x27, 0xb4, 0xcc, 0x78, 0x27, 0x6e, 0x5f, 0x5a, 0xf5, 0x68,
		0x27, 0xa6, 0xdf, 0xac, 0xca, 0xed, 0x4e, 0xc4, 0xaf, 0xaf, 0xad, 0x4e, 0xb4, 0x13, 0x6f, 0xd2,
		0x71, 0xb0, 0x04, 0x1c, 0x2a, 0x09, 0xe5, 0x2c, 0xd2, 0xf2, 0x9c, 0x05, 0x07, 0xe2, 0x84, 0x07,
		0xe0, 0x64, 0x04, 0xde, 0x24, 0x06, 0xdc, 0x64, 0x05, 0xda, 0xa4, 0x07, 0xd8, 0xa4, 0x07, 0xd6,
		0xe4, 0x06, 0xd4, 0xd2, 0xe5, 0xd0, 0x08, 0x0f, 0x9c, 0xc5, 0x27, 0xd6, 0x65, 0xf6, 0x50, 0x6c,
		0x12, 0x5c, 0x9c, 0xfc, 0x26, 0xb0, 0x51, 0xab, 0xde, 0x9a, 0xf9, 0x6c, 0x7b, 0x7b, 0x53, 0x37,
		0x29, 0x73, 0x6b, 0x76, 0xd2, 0xe2, 0x26, 0xbc, 0x51, 0xf8, 0x20, 0x4c, 0xb4, 0xa9, 0x48, 0x67,
		0x40, 0xec, 0xfd, 0xbf, 0xf8, 0xfb, 0x7e, 0x12, 0xf7, 0xfb, 0x12, 0xee, 0xf3, 0x25, 0xdc, 0xdf,
		0x27, 0x7d, 0x32, 0x04, 0x73, 0x5d, 0xda, 0x1c, 0x57, 0x17, 0xc1, 0x85, 0x88, 0xb2, 0xda, 0x64,
		0x0d, 0x55, 0x72, 0xe6, 0x23, 0x99, 0xdf, 0x9c, 0xd0, 0xb1, 0x13, 0x75, 0xdc, 0x28, 0x1e, 0xb3,
		0x04, 0x0f, 0x17, 0xb1, 0x43, 0x95, 0xcc, 0x51, 0xda, 0x3c, 0xd0, 0x13, 0x00, 0xb9, 0x6e, 0x0f,
		0x1d, 0x23, 0xb4, 0x87, 0x4e, 0x62, 0xf0, 0x8e, 0xa9, 0x45, 0xbc, 0x52, 0x42, 0x47, 0x75, 0xce,
		0x23, 0x12, 0xfa, 0xf5, 0x49, 0x07, 0x6e, 0x44, 0x04, 0x6a, 0x04, 0x06, 0x66, 0x44, 0x05, 0x62,
		0x84, 0x07, 0x5e, 0x84, 0x07, 0x5a, 0xc4, 0x06, 0x56, 0xd4, 0x32, 0xcf, 0x55, 0x27, 0x59, 0xca,
		0xa6, 0xdb, 0xc3, 0xe4, 0x11, 0x7c, 0xab, 0x20, 0x93, 0x86, 0x6e, 0xb2, 0x2a, 0x52, 0x98, 0xaa,
		0x14, 0xa9, 0x32, 0x25, 0xa8, 0x4e, 0xd1, 0x2a, 0x54, 0x9a, 0x2a, 0x95, 0xa6, 0x52, 0xe5, 0xa8,
		0xd6, 0x74, 0x84, 0xe6, 0x92, 0x56, 0xb9, 0x4b, 0x9e, 0xe9, 0x8c, 0x21, 0x08, 0xbe, 0x83, 0x8c,
		0x57, 0xc6, 0x15, 0xa4, 0x6a, 0x6a, 0x5a, 0xa2, 0xba, 0x96, 0xa5, 0xb6, 0xa5, 0xab, 0x6f, 0xe9,
		0x6a, 0x5c, 0xae, 0x3a, 0x17, 0xa3, 0xd6, 0x05, 0xa9, 0xf7, 0x78, 0x2b, 0x71, 0x05, 0x99, 0xb4,
		0x52, 0xbc, 0xbd, 0x82, 0x9c, 0xc6, 0xbe, 0x32, 0xb1, 0xd9, 0x41, 0xa6, 0xd2, 0x93, 0x77, 0xb1,
		0x3f, 0xb7, 0x65, 0x82, 0x5d, 0x84, 0xd9, 0xba, 0x62, 0x1d, 0x84, 0x1c, 0x1c, 0x04, 0x38, 0x08,
		0x70, 0x10, 0xe0, 0x20, 0x50, 0x70, 0x10, 0x44, 0xf1, 0x40, 0x79, 0x7c, 0x50, 0x36, 0x2f, 0x94,
		0xc4, 0x0f, 0xa5, 0x99, 0x01, 0x99, 0xe6, 0x80, 0x80, 0x59, 0x90, 0x6d, 0x1e, 0xc8, 0x98, 0x09,
		0x32, 0xe6, 0x82, 0x86, 0xd9, 0x10, 0x6b, 0x3e, 0x04, 0x9b, 0x11, 0x79, 0x7c, 0x73, 0xe5, 0xc4,
		0xa3, 0x07, 0x24, 0xa1, 0x1e, 0x90, 0x68, 0xff, 0x28, 0xf1, 0x6b, 0xa9, 0xe9, 0x20, 0x5a, 0xdc,
		0x49, 0xdd, 0xff, 0x12, 0x5a, 0xdb, 0xa5, 0xcc, 0xb0, 0xa6, 0xb2, 0xa1, 0x17, 0xf3, 0xec, 0x33,
		0x97, 0x49, 0x1c, 0x7f, 0x35, 0x17, 0x00, 0xd4, 0x0c, 0xd4, 0x0c, 0xd4, 0x0c, 0xd4, 0x0c, 0xd4,
		0x2c, 0x45, 0xd4, 0x0c, 0x53, 0x32, 0x53, 0xe1, 0x24, 0x5c, 0x32, 0x1e, 0x38, 0x7d, 0x79, 0x3e,
		0xc2, 0x6c, 0x7d, 0xc1, 0xc7, 0xa7, 0xca, 0x86, 0xf6, 0xd8, 0xe5, 0x52, 0xf8, 0xa4, 0x9e, 0xcb,
		0x8a, 0xd5, 0x86, 0x3d, 0xf8, 0x5f, 0xf0, 0xbf, 0xe0, 0x7f, 0xc1, 0xff, 0x82, 0xff, 0x95, 0x22,
		0xff, 0x6b, 0xec, 0x78, 0x7c, 0x3f, 0x2f, 0xd1, 0xfd, 0x3a, 0x40, 0xe7, 0x52, 0x71, 0x1f, 0x1c,
		0x9d, 0x4b, 0x17, 0xe4, 0x40, 0x0f, 0x48, 0x22, 0x6a, 0x70, 0x19, 0xa2, 0x94, 0x3a, 0x97, 0x16,
		0xf2, 0x87, 0x85, 0xc3, 0xd2, 0x41, 0xfe, 0x10, 0xfd, 0x4a, 0xc9, 0x62, 0x15, 0xfd, 0x4a, 0x11,
		0xa5, 0x78, 0x22, 0x68, 0x43, 0xf9, 0x89, 0x66, 0x21, 0x32, 0xcd, 0x40, 0xa7, 0x41, 0xa7, 0x41,
		0xa7, 0x41, 0xa7, 0xd3, 0x48, 0xa7, 0x91, 0x69, 0x46, 0x24, 0xd3, 0x0c, 0x93, 0x86, 0xc9, 0xa4,
		0x3a, 0x61, 0xa4, 0x2a, 0x81, 0x87, 0x80, 0x69, 0xaa, 0xe9, 0xb4, 0xb0, 0x28, 0x71, 0x7a, 0x99,
		0x33, 0xb6, 0xed, 0x73, 0x25, 0x66, 0x1d, 0xdb, 0x32, 0xf6, 0x30, 0x23, 0xb4, 0xe0, 0x55, 0xa3,
		0xd2, 0x23, 0x70, 0xe8, 0x74, 0xec, 0xa1, 0x63, 0x55, 0x86, 0xd6, 0x8c, 0xa2, 0xa2, 0x34, 0x9b,
		0x70, 0x1c, 0x45, 0x5a, 0xfc, 0x04, 0x1d, 0x5c, 0x52, 0x15, 0x1f, 0x41, 0x81, 0x36, 0x0a, 0xb4,
		0xd5, 0xf7, 0x5e, 0xd0, 0xc1, 0x25, 0x69, 0xa5, 0xb8, 0xd2, 0xc1, 0x25, 0x44, 0x0b, 0x97, 0x17,
		0xf8, 0x09, 0xec, 0x7c, 0x72, 0xe2, 0x8d, 0xc0, 0x1f, 0x73, 0xc7, 0x93, 0xd0, 0xcb, 0xe5, 0xae,
		0x00, 0x68, 0xea, 0x92, 0x06, 0x9f, 0x21, 0x0c, 0xe0, 0x31, 0x6c, 0xa1, 0xc7, 0x10, 0x06, 0xf0,
		0x17, 0x5e, 0xb6, 0x91, 0xe2, 0x1b, 0xba, 0xcc, 0x47, 0x59, 0x18, 0xa1, 0x33, 0x08, 0x25, 0xb6,
		0x75, 0x59, 0x96, 0x43, 0xce, 0x95, 0x7b, 0x0e, 0x57, 0xee, 0xe9, 0x35, 0x0f, 0xb2, 0xcd, 0x04,
		0x19, 0x73, 0x41, 0xc6, 0x6c, 0x50, 0x30, 0x1f, 0x62, 0xcd, 0x88, 0x60, 0x73, 0x22, 0xcd, 0xac,
		0xdc, 0x6f, 0x5e, 0xe4, 0xdf, 0x35, 0x2f, 0x8b, 0x23, 0x09, 0xed, 0x72, 0x8c, 0x8d, 0x74, 0xa3,
		0x43, 0xc1, 0xf8, 0x90, 0x31, 0x42, 0x54, 0x8c, 0x11, 0x39, 0xa3, 0x44, 0xce, 0x38, 0x51, 0x32,
		0x52, 0x72, 0x8c, 0x95, 0x24, 0xa3, 0x25, 0xdd, 0x78, 0xc5, 0x02, 0x08, 0xee, 0x6f, 0xfc, 0xa8,
		0xd2, 0x12, 0x7e, 0x0d, 0x4c, 0xd0, 0x8c, 0x91, 0x31, 0x67, 0x94, 0xcc, 0x1a, 0x39, 0xf3, 0x46,
		0xcd, 0xcc, 0x91, 0x35, 0x77, 0x64, 0xcd, 0x1e, 0x45, 0xf3, 0x27, 0xd7, 0x0c, 0x4a, 0x36, 0x87,
		0x64, 0xcc, 0x62, 0x2c, 0xc8, 0x79, 0xe0, 0x8f, 0x47, 0x74, 0x8e, 0xf6, 0x5c, 0xf7, 0x4d, 0xc5,
		0x22, 0x72, 0x7a, 0x64, 0xf6, 0x1f, 0x59, 0x2b, 0x54, 0x54, 0x0e, 0xa8, 0x93, 0x90, 0xa7, 0x47,
		0xe4, 0x39, 0xc9, 0xa9, 0xbd, 0x22, 0xef, 0xdc, 0x50, 0x74, 0x72, 0xc8, 0x3a, 0x3b, 0x54, 0x9d,
		0x1e, 0xf2, 0xce, 0x0f, 0x79, 0x27, 0x88, 0xb2, 0x33, 0x44, 0xc3, 0x29, 0x22, 0xe2, 0x1c, 0xc5,
		0x0f, 0x4a, 0x5a, 0x9d, 0xd9, 0xa3, 0xda, 0x4a, 0x5e, 0x3b, 0xbd, 0x47, 0x19, 0x7d, 0xee, 0x0d,
		0x80, 0x4c, 0x04, 0xc4, 0xba, 0xc7, 0x9c, 0xf3, 0x8b, 0x33, 0x3f, 0xa0, 0xe7, 0x5f, 0xc7, 0x92,
		0xc1, 0x75, 0x83, 0xeb, 0x06, 0xd7, 0x0d, 0xae, 0x1b, 0x5c, 0x37, 0xb8, 0x6e, 0x5b, 0xe1, 0xba,
		0x39, 0x23, 0xc3, 0x1e, 0x0c, 0x02, 0x16, 0x86, 0x14, 0xbd, 0xb7, 0x43, 0x42, 0x32, 0xcd, 0x9e,
		0xe1, 0x37, 0x52, 0x2a, 0x80, 0x96, 0x4a, 0xbf, 0x83, 0xac, 0xab, 0x02, 0x41, 0x6c, 0xad, 0x60,
		0xec, 0x1d, 0x41, 0xd9, 0x5a, 0x36, 0xe7, 0x2c, 0xf0, 0xc8, 0xc1, 0x2d, 0x16, 0x70, 0x67, 0xe7,
		0x5b, 0xd6, 0x38, 0xec, 0xfd, 0xfe, 0x96, 0x33, 0x0e, 0x7b, 0xd3, 0x97, 0xb9, 0xe8, 0xdb, 0xf4,
		0x75, 0xfe, 0x5b, 0xd6, 0x28, 0xcc, 0x5f, 0x17, 0xbf, 0x65, 0x8d, 0x62, 0x6f, 0xf7, 0xf4, 0x74,
		0x6f, 0xf7, 0xd7, 0xfe, 0xcd, 0xf3, 0x7f, 0x70, 0xe7, 0x7f, 0xbe, 0x9d, 0x9e, 0x8e, 0x7e, 0x35,
		0x6e, 0x26, 0x7f, 0xd6, 0x6f, 0x7a, 0xff, 0xda, 0xfd, 0x53, 0x27, 0xb7, 0x2b, 0x3d, 0x52, 0x12,
		0xdd, 0xbc, 0x85, 0x96, 0x7a, 0xb2, 0x96, 0x2a, 0x41, 0x4b, 0xa5, 0x56, 0x4b, 0x95, 0x7f, 0x4f,
		0x74, 0x89, 0x6d, 0x0c, 0x2b, 0xc6, 0x87, 0xde, 0xaf, 0xec, 0xdb, 0xc2, 0xcd, 0x6e, 0x79, 0x77,
		0xe7, 0xee, 0x7b, 0xe5, 0xdd, 0x5f, 0xd9, 0xb7, 0xc5, 0x9b, 0x9d, 0x9d, 0x7b, 0xfe, 0xe5, 0xcf,
		0xfb, 0x7e, 0xc7, 0xee, 0xef, 0x9d, 0x9d, 0x9d, 0x99, 0x7e, 0x5a, 0xd2, 0x59, 0xdf, 0xb2, 0xb9,
		0xde, 0x9f, 0xd1, 0xcb, 0xe9, 0x9f, 0xb1, 0xd6, 0x7b, 0xd2, 0x7f, 0xde, 0xbd, 0x57, 0xd7, 0xbd,
		0x25, 0x6b, 0x02, 0xfe, 0x2e, 0xf7, 0xfe, 0x55, 0xde, 0xfd, 0x55, 0xba, 0x99, 0xbf, 0x8e, 0xfe,
		0xdc, 0xfd, 0xbd, 0xb3, 0xf7, 0xcf, 0xd3, 0xd3, 0xbd, 0xbd, 0x7f, 0xee, 0x4e, 0x37, 0x6a, 0xf6,
		0xff, 0xfe, 0x39, 0xfd, 0xd7, 0x3f, 0xcb, 0xe5, 0x95, 0xb7, 0x76, 0x77, 0xfe, 0x67, 0x0f, 0x6a,
		0x5d, 0x11, 0x52, 0x45, 0x67, 0x5f, 0x10, 0x56, 0x9d, 0x1c, 0xc4, 0x51, 0xe0, 0x73, 0x16, 0xf5,
		0xe9, 0x35, 0x98, 0xeb, 0x9c, 0x3b, 0x67, 0x2e, 0xa3, 0x17, 0x61, 0xbd, 0x4f, 0x48, 0xe4, 0x33,
		0xac, 0x17, 0x8a, 0x07, 0x63, 0xa4, 0x33, 0xdc, 0xe7, 0x09, 0x21, 0x26, 0xbe, 0xce, 0x1b, 0x43,
		0x4c, 0xfc, 0xe9, 0x82, 0x21, 0x26, 0xfe, 0x42, 0x01, 0x11, 0x13, 0x57, 0xdd, 0x7d, 0x43, 0x4c,
		0xfc, 0x31, 0x6d, 0x85, 0x74, 0x06, 0xf8, 0xdd, 0x4f, 0x78, 0x26, 0xa1, 0x33, 0x30, 0x24, 0x16,
		0x82, 0xae, 0x85, 0xef, 0x4c, 0x2e, 0xb8, 0x6d, 0x70, 0xdb, 0xe0, 0xb6, 0xc1, 0x6d, 0x83, 0xdb,
		0x06, 0xb7, 0x6d, 0x2b, 0xdc, 0xb6, 0xb1, 0xe7, 0xf8, 0x1e, 0xb2, 0x18, 0x9e, 0xf4, 0xf8, 0x90,
		0xc5, 0xf0, 0x54, 0x67, 0x2a, 0x30, 0x26, 0xfe, 0x14, 0x9f, 0x6c, 0x1b, 0xe1, 0xeb, 0xc1, 0x43,
		0x82, 0xb2, 0x91, 0x84, 0x1a, 0x5d, 0xc8, 0xad, 0x40, 0xef, 0x72, 0xe4, 0x86, 0x86, 0x6b, 0x9f,
		0x31, 0x97, 0xe8, 0x15, 0x20, 0x75, 0x04, 0xaa, 0x81, 0x44, 0xfa, 0x88, 0x5c, 0xb5, 0xb4, 0xb2,
		0xc6, 0xf7, 0xbe, 0x14, 0x9d, 0x07, 0x0a, 0x88, 0x2a, 0x77, 0x3c, 0x70, 0xfa, 0xd0, 0x1a, 0x6f,
		0x2c, 0x85, 0xf1, 0xc3, 0xcf, 0x16, 0x7a, 0x3e, 0x0b, 0x36, 0x57, 0x7a, 0xab, 0x96, 0xe0, 0xd4,
		0x66, 0xc6, 0x3e, 0x5f, 0xc9, 0x51, 0x99, 0x31, 0xab, 0x28, 0x43, 0x7c, 0xda, 0x99, 0xb4, 0x7f,
		0x2a, 0x7c, 0x26, 0xb3, 0x85, 0x77, 0xc5, 0x83, 0x22, 0x0e, 0x26, 0x0e, 0xe6, 0xd3, 0x0e, 0xe6,
		0x1b, 0x48, 0xb9, 0x89, 0xaf, 0xde, 0x1b, 0xa8, 0xdf, 0x6d, 0xa0, 0x17, 0xcc, 0x1b, 0x5f, 0xb2,
		0x60, 0x3a, 0x27, 0x4d, 0x1d, 0x8e, 0x91, 0x2b, 0x28, 0x20, 0x6b, 0xcd, 0x1b, 0x5f, 0x2a, 0x63,
		0x78, 0xf5, 0xae, 0xdf, 0xe1, 0x81, 0xc8, 0x11, 0x1e, 0x1b, 0x91, 0x3a, 0x3b, 0xc1, 0xb0, 0xd9,
		0xfa, 0x52, 0xb0, 0x6a, 0x5f, 0x5b, 0x75, 0xf3, 0xc8, 0xec, 0x5a, 0x8d, 0x93, 0x7a, 0x5d, 0x57,
		0xc8, 0x3d, 0xcb, 0x4d, 0x3e, 0x42, 0xbb, 0x79, 0xd2, 0xad, 0xb5, 0xad, 0x4a, 0xbd, 0xd6, 0xee,
		0xaa, 0x24, 0x7c, 0x7e, 0xb6, 0xff, 0x25, 0x75, 0xf7, 0x7f, 0x3f, 0xfa, 0x08, 0xc7, 0x8a, 0x4a,
		0x7f, 0x30, 0x91, 0xbe, 0xd6, 0xe8, 0xb6, 0x9b, 0xad, 0xbf, 0xac, 0x7a, 0xe5, 0x7d, 0xad, 0x6e,
		0x99, 0x8d, 0xaa, 0x79, 0x54, 0xe9, 0x36, 0xdb, 0x2a, 0x7d, 0x8e, 0x77, 0x93, 0xcf, 0xd1, 0x68,
		0x4e, 0x3f, 0x82, 0xfe, 0x06, 0x1c, 0x70, 0x93, 0x9a, 0xdd, 0x8c, 0xee, 0x7a, 0x15, 0x52, 0xeb,
		0xeb, 0x00, 0xad, 0x44, 0x74, 0x31, 0xfe, 0x14, 0xcb, 0x4a, 0xa5, 0xac, 0xed, 0xab, 0x24, 0xfb,
		0xaa, 0x4d, 0x55, 0x8a, 0xc5, 0xde, 0x67, 0x94, 0xca, 0x5a, 0x5e, 0xa1, 0x0f, 0x10, 0x2b, 0xc3,
		0xb2, 0xf6, 0x4e, 0x21, 0xb1, 0x97, 0x3c, 0x99, 0xb2, 0x96, 0x03, 0x1f, 0xdf, 0x02, 0x09, 0xe9,
		0x4a, 0x47, 0x33, 0x8e, 0x41, 0xd4, 0x75, 0x50, 0xe0, 0xa2, 0x9e, 0x78, 0x0d, 0xf9, 0x4a, 0xa0,
		0x82, 0xb0, 0xea, 0x26, 0x5f, 0x53, 0x1e, 0x0b, 0xba, 0x5c, 0x2b, 0x9e, 0x9b, 0x56, 0x91, 0x1f,
		0xdc, 0xdc, 0x7d, 0xf3, 0xf7, 0x7d, 0xff, 0x2d, 0xf7, 0xf6, 0xe0, 0xa6, 0xbc, 0xe6, 0x5f, 0x4a,
		0x37, 0xe5, 0x27, 0xfe, 0x8e, 0xe2, 0xcd, 0xce, 0xca, 0x7f, 0x9d, 0xbc, 0x9f, 0x5f, 0xf7, 0x03,
		0x85, 0x35, 0x3f, 0xb0, 0xbf, 0xee, 0x07, 0xf6, 0xd7, 0xfc, 0xc0, 0x5a, 0x91, 0xf2, 0x6b, 0x7e,
		0xa0, 0x78, 0xf3, 0x7b, 0xe5, 0xff, 0xef, 0xdc, 0xff, 0x5f, 0x4b, 0x37, 0xbb, 0xbf, 0xd7, 0xfd,
		0xdb, 0xc1, 0xcd, 0xef, 0xf2, 0xee, 0x2e, 0x5d, 0x26, 0xd6, 0xa3, 0x7c, 0xb0, 0x9a, 0x1d, 0xf3,
		0xab, 0x32, 0xa7, 0xeb, 0x6f, 0x1c, 0x2f, 0x59, 0xc7, 0xeb, 0x1f, 0x3a, 0x1c, 0x27, 0xc5, 0x1d,
		0x4d, 0x34, 0x23, 0x52, 0xca, 0xa1, 0x54, 0xe4, 0xe2, 0x8b, 0xf2, 0x45, 0x17, 0xed, 0x8b, 0x2d,
		0x35, 0x2e, 0xb2, 0xa6, 0x17, 0x57, 0xd5, 0xbf, 0x1a, 0x95, 0x63, 0xf3, 0x48, 0x07, 0x47, 0x7d,
		0xd6, 0xf3, 0xa5, 0x1e, 0xce, 0x8e, 0x9f, 0x6b, 0x59, 0xcb, 0xc2, 0x8a, 0x2a, 0x28, 0x11, 0x7a,
		0x3f, 0x51, 0xdb, 0x8f, 0xed, 0x1e, 0xd9, 0x55, 0xf1, 0x3c, 0x9f, 0x4f, 0x5d, 0x15, 0x12, 0x93,
		0xbb, 0xc2, 0xfe, 0x05, 0xbb, 0xb4, 0x47, 0x36, 0xbf, 0x98, 0x58, 0xb1, 0x8c, 0x3f, 0x62, 0xde,
		0x74, 0xb6, 0xa4, 0xe1, 0x31, 0xfe, 0xc3, 0x0f, 0xbe, 0x1b, 0x8e, 0x17, 0x72, 0xdb, 0xeb, 0xb3,
		0xcc, 0xdd, 0x37, 0xc2, 0x95, 0x77, 0x32, 0xa3, 0xc0, 0xe7, 0x7e, 0xdf, 0x77, 0xc3, 0xf8, 0x55,
		0xc6, 0x09, 0x9d, 0x30, 0xe3, 0x78, 0x9c, 0x05, 0x43, 0x7b, 0xf2, 0x33, 0xf1, 0xcb, 0x8c, 0xcb,
		0xae, 0x98, 0x1b, 0x4e, 0xbf, 0x65, 0xec, 0xa1, 0x63, 0x84, 0xf6, 0xd0, 0xc9, 0xd8, 0xc3, 0x4c,
		0xc8, 0xce, 0x2f, 0x99, 0xc7, 0x8d, 0xc0, 0x1f, 0x73, 0xc7, 0x3b, 0xcf, 0x2c, 0x8d, 0x6c, 0x0e,
		0x97, 0xff, 0x9a, 0x21, 0x31, 0x09, 0x73, 0xba, 0x95, 0x3c, 0x18, 0xf7, 0xb9, 0x37, 0x73, 0x4a,
		0x9b, 0xf1, 0x4e, 0x36, 0xa6, 0xbb, 0x64, 0xce, 0x36, 0xc9, 0xba, 0xf3, 0xf7, 0xf0, 0xee, 0x1b,
		0x56, 0x6b, 0xbe, 0x8b, 0xf1, 0x2b, 0xcb, 0x0c, 0x9d, 0xd0, 0x32, 0xe3, 0x5d, 0xbc, 0x7d, 0x69,
		0xd5, 0xa3, 0x5d, 0x9c, 0x7e, 0xb3, 0x2a, 0x43, 0xa7, 0x63, 0x0f, 0x1d, 0xab, 0x32, 0xb4, 0x3a,
		0xd3, 0x4d, 0x6c, 0x4f, 0xf7, 0xd0, 0xaa, 0xcc, 0x37, 0xad, 0xe3, 0x0c, 0xc2, 0xa5, 0xbf, 0x59,
		0xb3, 0xda, 0xfe, 0x37, 0xdb, 0xa9, 0x14, 0x24, 0x2a, 0x04, 0x3a, 0x93, 0x3d, 0xa8, 0x4d, 0xf4,
		0x20, 0xd2, 0xfe, 0x02, 0x93, 0x65, 0x1f, 0xc2, 0x0a, 0x26, 0xcb, 0xae, 0x03, 0x2f, 0x26, 0xcb,
		0x3e, 0xd7, 0x2b, 0xc2, 0x64, 0x59, 0x5a, 0x6e, 0x2a, 0x99, 0x76, 0x15, 0xb1, 0xb6, 0x71, 0x99,
		0x3d, 0x0c, 0xd8, 0x90, 0x82, 0xbe, 0x99, 0x07, 0xf4, 0x08, 0x24, 0xb0, 0xe9, 0xad, 0x99, 0xe7,
		0xbe, 0xb7, 0x37, 0xf3, 0x84, 0x33, 0xb1, 0x09, 0x87, 0x43, 0x27, 0x9e, 0x02, 0xd0, 0xe8, 0x6d,
		0x46, 0xab, 0xa7, 0x19, 0x9c, 0x39, 0x38, 0x73, 0x70, 0xe6, 0xe0, 0xcc, 0xc1, 0x99, 0x83, 0x33,
		0x07, 0x67, 0xee, 0x79, 0xce, 0xdc, 0xcc, 0x80, 0xc3, 0x95, 0x13, 0xef, 0xca, 0x71, 0x9b, 0x33,
		0x42, 0x9e, 0x5c, 0x24, 0x0e, 0x0d, 0x47, 0x2e, 0x47, 0xc5, 0x91, 0xcb, 0xc3, 0x91, 0x83, 0x23,
		0x07, 0x47, 0x0e, 0x8e, 0xdc, 0x96, 0x38, 0x72, 0x55, 0x87, 0xc6, 0x10, 0x78, 0xdd, 0x76, 0x5d,
		0xbf, 0x6f, 0x73, 0x36, 0x30, 0x06, 0xd7, 0x9e, 0x7d, 0xe9, 0xf4, 0x8d, 0xc9, 0xdf, 0x5d, 0x7a,
		0x4d, 0xdd, 0xd7, 0x09, 0x8a, 0x2e, 0xef, 0x94, 0x23, 0x24, 0x14, 0x0d, 0x2c, 0x59, 0x43, 0x4b,
		0xd5, 0xe0, 0x92, 0x37, 0xbc, 0xe4, 0x0d, 0x30, 0x65, 0x43, 0x4c, 0xc3, 0x20, 0x13, 0x31, 0xcc,
		0xf4, 0x22, 0x2d, 0xab, 0xfc, 0x91, 0x64, 0x43, 0x6e, 0xf4, 0x7a, 0x7f, 0xea, 0x17, 0xe1, 0xf2,
		0x0b, 0xd2, 0x0d, 0xb7, 0xd1, 0xea, 0x3d, 0x3d, 0x88, 0x5b, 0x41, 0x1e, 0xf9, 0x86, 0xda, 0x0a,
		0x34, 0xd2, 0x56, 0xa4, 0x81, 0xb6, 0x02, 0x7d, 0x18, 0x55, 0x6a, 0x98, 0xad, 0x5c, 0xa3, 0x6c,
		0x65, 0xfb, 0xf0, 0xaa, 0xd7, 0x7f, 0x57, 0x81, 0x66, 0x68, 0x4a, 0x35, 0xc2, 0x56, 0xb3, 0x01,
		0x36, 0x0e, 0xdc, 0x96, 0x71, 0x68, 0xf5, 0xa4, 0x43, 0x43, 0xa8, 0x74, 0xb9, 0xf3, 0x6a, 0x34,
		0xb0, 0x56, 0xa1, 0x71, 0xb5, 0x1a, 0x0d, 0xab, 0xd5, 0x6a, 0x54, 0xad, 0x70, 0x83, 0x6a, 0x25,
		0x1b, 0x53, 0x2b, 0xdc, 0x90, 0x5a, 0xcd, 0x46, 0xd4, 0xaa, 0x37, 0xa0, 0x56, 0xa9, 0xf1, 0x34,
		0x71, 0x8e, 0xa5, 0x50, 0xa3, 0x69, 0xb5, 0x1b, 0x4c, 0xab, 0xd8, 0x58, 0x5a, 0xd9, 0x86, 0xd2,
		0xca, 0x36, 0x92, 0x56, 0xac, 0x81, 0xb4, 0x5a, 0x8d, 0xa3, 0xe9, 0xf2, 0xdb, 0x1b, 0x74, 0x1c,
		0x52, 0x30, 0x0e, 0x80, 0xbe, 0x7d, 0x4f, 0xe5, 0xfb, 0xc4, 0x1b, 0x40, 0x53, 0x6e, 0xfc, 0x4c,
		0xbe, 0xe1, 0x33, 0x1a, 0x3d, 0xa3, 0xd1, 0xf3, 0xad, 0x82, 0xa6, 0x78, 0x80, 0x54, 0x68, 0xec,
		0x8c, 0x86, 0xce, 0x68, 0xe8, 0x4c, 0xd7, 0xd1, 0x41, 0x6b, 0x45, 0x62, 0xfb, 0x41, 0xc0, 0xf5,
		0xd4, 0xcf, 0x03, 0x7f, 0x3c, 0xa2, 0x57, 0x08, 0x32, 0x15, 0x8b, 0x48, 0x9a, 0x70, 0x95, 0x0d,
		0xed, 0xb1, 0xcb, 0x49, 0x99, 0x1d, 0x3d, 0xba, 0x2b, 0xa7, 0xa1, 0xf3, 0x7a, 0x28, 0xcf, 0xb9,
		0x4f, 0x1c, 0x94, 0xe7, 0x3c, 0xe3, 0xc0, 0xa3, 0x3c, 0xe7, 0xa9, 0x20, 0x47, 0x79, 0xce, 0x2b,
		0x05, 0x44, 0x79, 0x8e, 0x1a, 0x21, 0x31, 0xc2, 0xe5, 0x39, 0x67, 0xbe, 0xef, 0x32, 0xdb, 0xa3,
		0x58, 0x9a, 0x93, 0x83, 0x73, 0x4d, 0xc6, 0xb9, 0x26, 0xd3, 0x30, 0x78, 0x05, 0xc0, 0x44, 0x1a,
		0x07, 0xc3, 0x75, 0x83, 0xeb, 0x06, 0xd7, 0x0d, 0xae, 0x1b, 0x5c, 0x37, 0xb8, 0x6e, 0x82, 0xb4,
		0x95, 0x33, 0x22, 0x78, 0x87, 0x89, 0xc2, 0xea, 0xa7, 0x7e, 0xd1, 0xbe, 0x1f, 0x2f, 0xe0, 0x7e,
		0xfc, 0x85, 0xfe, 0x8d, 0x1a, 0xf7, 0xe3, 0xbd, 0xdf, 0xdf, 0x72, 0xc6, 0x61, 0x6f, 0xfa, 0x32,
		0x17, 0x7d, 0x9b, 0xbe, 0xce, 0x7f, 0xcb, 0x1a, 0x85, 0xf9, 0xeb, 0xe2, 0xb7, 0xac, 0x51, 0xec,
		0xed, 0x9e, 0x9e, 0xee, 0xed, 0xfe, 0xda, 0xbf, 0x79, 0xfe, 0x0f, 0xee, 0xfc, 0xcf, 0xb7, 0xd3,
		0xd3, 0xd1, 0xaf, 0xc6, 0xcd, 0xe4, 0xcf, 0xfa, 0x4d, 0xef, 0x5f, 0xbb, 0x7f, 0xe2, 0x72, 0x4b,
		0x09, 0xbb, 0xa7, 0x86, 0x96, 0x42, 0x16, 0x4f, 0x7a, 0xb5, 0x54, 0x79, 0xe9, 0x4a, 0x3d, 0xfb,
		0xb6, 0x70, 0xb3, 0x5b, 0xde, 0xdd, 0xb9, 0xfb, 0x5e, 0x79, 0xf7, 0x57, 0xf6, 0x6d, 0xf1, 0x66,
		0x67, 0xe7, 0x9e, 0x7f, 0xf9, 0xf3, 0xbe, 0xdf, 0xb1, 0xfb, 0x7b, 0x67, 0x67, 0x67, 0xa6, 0x9f,
		0x96, 0x74, 0xd6, 0xb7, 0x6c, 0xae, 0xf7, 0x67, 0xf4, 0x72, 0xfa, 0x67, 0xac, 0xf5, 0x9e, 0xf4,
		0x9f, 0x77, 0xef, 0xd5, 0x75, 0x6f, 0xc9, 0x9a, 0x80, 0xbf, 0xcb, 0xbd, 0x7f, 0x95, 0x77, 0x7f,
		0x95, 0x6e, 0xe6, 0xaf, 0xa3, 0x3f, 0x77, 0x7f, 0xef, 0xec, 0xfd, 0xf3, 0xf4, 0x74, 0x6f, 0xef,
		0x9f, 0xbb, 0xd3, 0x8d, 0x9a, 0xfd, 0xbf, 0x7f, 0x4e, 0xff, 0xf5, 0xcf, 0x72, 0x79, 0xe5, 0xad,
		0xdd, 0x9d, 0xff, 0xd9, 0x83, 0x5a, 0x57, 0x84, 0x54, 0x69, 0xc8, 0x59, 0xa0, 0x64, 0x68, 0xf5,
		0x51, 0xe0, 0x73, 0x16, 0x15, 0xbb, 0x1b, 0xcc, 0x75, 0xce, 0x9d, 0x33, 0x97, 0xd1, 0x8b, 0xb0,
		0xde, 0x27, 0x24, 0xf2, 0x19, 0xd6, 0x0b, 0xc5, 0x83, 0x31, 0xd2, 0x19, 0xee, 0xf3, 0x84, 0x10,
		0x13, 0x5f, 0xe7, 0x8d, 0x21, 0x26, 0xfe, 0x74, 0xc1, 0x10, 0x13, 0x7f, 0xa1, 0x80, 0x88, 0x89,
		0xab, 0xee, 0xbe, 0x21, 0x26, 0xfe, 0x98, 0xb6, 0x42, 0x3a, 0x03, 0xfc, 0xee, 0x27, 0x3c, 0x13,
		0x22, 0xe3, 0xf2, 0x56, 0xe0, 0x4b, 0x62, 0x6c, 0x1e, 0xdc, 0x36, 0xb8, 0x6d, 0x70, 0xdb, 0xe0,
		0xb6, 0xc1, 0x6d, 0x83, 0xdb, 0x26, 0x48, 0x5b, 0x8d, 0x3d, 0x5a, 0xad, 0xd7, 0x90, 0xc5, 0xf0,
		0xd4, 0x2f, 0xc2, 0xf7, 0x83, 0x34, 0x27, 0x0f, 0x50, 0x86, 0x18, 0x6d, 0xa8, 0xd1, 0x85, 0xdc,
		0x0a, 0xf4, 0x48, 0x4f, 0x26, 0x50, 0x01, 0x81, 0x6a, 0x20, 0x91, 0x3e, 0x22, 0x57, 0x2d, 0x2d,
		0xf5, 0xc9, 0x05, 0x77, 0xd1, 0xa9, 0x42, 0x2f, 0x35, 0x35, 0x26, 0x19, 0xa8, 0x83, 0xd6, 0x78,
		0x63, 0x55, 0x9a, 0x6c, 0x10, 0x0b, 0xad, 0xda, 0x84, 0x83, 0x58, 0x70, 0x55, 0x1b, 0xaf, 0xdf,
		0x2a, 0x39, 0xd5, 0x1a, 0xb0, 0x13, 0x63, 0x88, 0x4f, 0x3b, 0x93, 0x0a, 0x4d, 0x40, 0x58, 0x3d,
		0x93, 0x2a, 0x4d, 0x42, 0xc0, 0xc1, 0x94, 0x7f, 0x30, 0xdf, 0x40, 0xca, 0x4d, 0x7c, 0xf5, 0xd0,
		0x14, 0x79, 0x2b, 0xe8, 0x85, 0x1a, 0x93, 0x14, 0x56, 0x18, 0x70, 0x41, 0x01, 0x59, 0x95, 0x98,
		0xac, 0x70, 0xcb, 0xdb, 0x55, 0x9a, 0xb0, 0x10, 0x4b, 0xad, 0xee, 0xa4, 0x85, 0xf8, 0x23, 0xa8,
		0x38, 0x71, 0x21, 0x16, 0x5e, 0xdd, 0xc9, 0x0b, 0xf1, 0x47, 0x50, 0x72, 0x02, 0x43, 0x2c, 0xbd,
		0xe2, 0x93, 0x18, 0xe2, 0xcf, 0xa1, 0xd0, 0x44, 0x06, 0xc5, 0x38, 0xa0, 0x42, 0x13, 0x1a, 0x6e,
		0x4d, 0xa7, 0xca, 0x93, 0x1a, 0xe2, 0x4f, 0xa1, 0xe0, 0xc4, 0x86, 0x5b, 0xd9, 0x15, 0x9d, 0xdc,
		0xb0, 0xf8, 0x01, 0x94, 0x9c, 0xe0, 0x70, 0xeb, 0xa1, 0x2b, 0x35, 0xc9, 0x21, 0x16, 0x5b, 0xa9,
		0x89, 0x0e, 0xea, 0xf0, 0x71, 0x4c, 0x7e, 0x4c, 0x53, 0x1c, 0x03, 0x93, 0x1f, 0x5f, 0x1a, 0xaf,
		0x20, 0x5e, 0x43, 0xbe, 0x12, 0xa8, 0x20, 0xac, 0xba, 0xc9, 0xd7, 0x94, 0xc7, 0x82, 0xa2, 0xb5,
		0x3d, 0x26, 0x44, 0xac, 0x28, 0x76, 0xca, 0x07, 0x4b, 0x85, 0x89, 0x11, 0xb1, 0xb4, 0x98, 0x1c,
		0x81, 0xc9, 0x11, 0xca, 0x38, 0x4e, 0xe8, 0x5a, 0xa1, 0x92, 0x63, 0x49, 0x38, 0xd9, 0x98, 0xf6,
		0xc5, 0x17, 0xe5, 0x8b, 0x2e, 0xda, 0x17, 0x5b, 0x6a, 0x5c, 0x64, 0x4d, 0x2f, 0xae, 0xaa, 0x7f,
		0x35, 0x2a, 0xc7, 0xe6, 0x91, 0x0e, 0x8e, 0xfa, 0xac, 0xe7, 0x4b, 0x3d, 0x9c, 0x1d, 0x3f, 0xd7,
		0xb2, 0x96, 0x85, 0x15, 0x55, 0x50, 0x22, 0xf4, 0x7e, 0xa2, 0xb6, 0x1f, 0x72, 0x25, 0x90, 0xac,
		0x0a, 0xf5, 0x8a, 0xe7, 0xf9, 0x7c, 0xea, 0xaa, 0x50, 0xd0, 0x7b, 0x7a, 0xd8, 0xbf, 0x60, 0x97,
		0xf6, 0xc8, 0xe6, 0x17, 0x13, 0x2b, 0x96, 0xf1, 0x47, 0xcc, 0xeb, 0x47, 0xb5, 0xde, 0x86, 0xc7,
		0xf8, 0x0f, 0x3f, 0xf8, 0x6e, 0x38, 0x5e, 0xc8, 0x6d, 0xaf, 0xcf, 0x32, 0x77, 0xdf, 0x08, 0x57,
		0xde, 0xc9, 0x8c, 0x02, 0x9f, 0xfb, 0x7d, 0xdf, 0x0d, 0xe3, 0x57, 0x19, 0x27, 0x74, 0xc2, 0x8c,
		0xe3, 0x71, 0x16, 0x0c, 0xed, 0xc9, 0xcf, 0xc4, 0x2f, 0x33, 0x2e, 0xbb, 0x62, 0x6e, 0x38, 0xfd,
		0x96, 0xb1, 0x87, 0x8e, 0x11, 0xda, 0x43, 0x27, 0x63, 0x0f, 0x33, 0x21, 0x3b, 0xbf, 0x64, 0x1e,
		0x37, 0x02, 0x7f, 0xcc, 0x1d, 0xef, 0x3c, 0x63, 0x0f, 0xfe, 0x6b, 0xf7, 0x99, 0xd7, 0xbf, 0x36,
		0x42, 0x67, 0x10, 0x2e, 0xff, 0x35, 0x13, 0x72, 0x9b, 0x53, 0xa8, 0x31, 0xd3, 0x43, 0x1e, 0x8c,
		0xfb, 0xdc, 0x9b, 0xf9, 0xa4, 0xcd, 0x78, 0x23, 0x1b, 0xd3, 0x4d, 0x32, 0x67, 0x7b, 0x64, 0xdd,
		0xf9, 0x7b, 0x78, 0xf7, 0x0d, 0xab, 0x35, 0xdf, 0xc4, 0xf8, 0x95, 0x65, 0x86, 0x4e, 0x68, 0x99,
		0xf1, 0x26, 0xde, 0xbe, 0xb4, 0xea, 0xd1, 0x26, 0x4e, 0xbf, 0x59, 0x95, 0xa1, 0xd3, 0xb1, 0x87,
		0x8e, 0x55, 0x19, 0x5a, 0x9d, 0xe9, 0x1e, 0xb6, 0xa7, 0x5b, 0x68, 0x55, 0xe6, 0x7b, 0xd6, 0x71,
		0x06, 0xe1, 0xd2, 0xdf, 0xac, 0x4e, 0xb4, 0x81, 0x6f, 0xb6, 0x53, 0x25, 0xc8, 0x59, 0x59, 0x92,
		0x12, 0xd2, 0x3f, 0xb3, 0xeb, 0xc5, 0xb1, 0x1d, 0x9a, 0xd4, 0x96, 0x17, 0x7a, 0xdd, 0x09, 0x79,
		0x85, 0x73, 0xb9, 0x73, 0x4d, 0xf4, 0x63, 0xc7, 0xab, 0xb9, 0x6c, 0x72, 0x56, 0x24, 0x27, 0x77,
		0xeb, 0xc7, 0xf6, 0xcf, 0x05, 0x49, 0x72, 0xef, 0x0a, 0x85, 0xd2, 0x41, 0xa1, 0x90, 0x3d, 0xd8,
		0x3f, 0xc8, 0x1e, 0x16, 0x8b, 0xb9, 0x52, 0x4e, 0x62, 0xea, 0xbc, 0xde, 0x0c, 0x06, 0x2c, 0x60,
		0x83, 0xf7, 0x13, 0x00, 0x79, 0x63, 0xd7, 0xa5, 0x20, 0xca, 0x49, 0xc8, 0x02, 0xa9, 0x59, 0xed,
		0xb2, 0xce, 0x31, 0x11, 0x27, 0x42, 0x79, 0xe7, 0x41, 0xa2, 0xdb, 0xa0, 0xaa, 0xbb, 0x20, 0xc7,
		0x51, 0x10, 0x6f, 0xa6, 0xc5, 0xae, 0x28, 0x58, 0x91, 0xc8, 0x56, 0x20, 0x0a, 0x2a, 0x0e, 0x09,
		0xaa, 0x42, 0x21, 0x15, 0x21, 0x56, 0x2b, 0x88, 0x3b, 0x9b, 0x02, 0xcf, 0xa5, 0x3e, 0x74, 0xd9,
		0x4f, 0xc3, 0x76, 0xcf, 0x7d, 0x63, 0xda, 0x0b, 0x6b, 0x0a, 0x3b, 0xd1, 0xc7, 0x33, 0xbe, 0x54,
		0xb9, 0x5f, 0x1c, 0xc1, 0x7a, 0x6a, 0x7e, 0x75, 0x22, 0x78, 0x59, 0x59, 0xdd, 0xee, 0x64, 0x76,
		0xb5, 0x93, 0xde, 0xbd, 0x4e, 0x76, 0x97, 0x3a, 0x32, 0xdd, 0xe8, 0xc8, 0x74, 0x9d, 0xa3, 0xd0,
		0x5d, 0x2e, 0xdd, 0x7e, 0x58, 0xd5, 0x91, 0x13, 0xfd, 0xb8, 0x57, 0xbb, 0xcb, 0x3b, 0x79, 0x0f,
		0xd9, 0x1c, 0x59, 0x87, 0x50, 0x8e, 0xe9, 0x91, 0x6e, 0x82, 0x28, 0x98, 0x22, 0x32, 0x26, 0x89,
		0x8a, 0x69, 0x22, 0x67, 0xa2, 0xc8, 0x99, 0x2a, 0x4a, 0x26, 0x4b, 0x5e, 0xd0, 0x42, 0x66, 0x4c,
		0x52, 0x96, 0x29, 0x8b, 0x05, 0xe8, 0xcf, 0x35, 0xa6, 0xe4, 0x33, 0x3a, 0x57, 0x5a, 0x33, 0x79,
		0x24, 0x9f, 0x07, 0xb9, 0x66, 0x8c, 0x8c, 0x39, 0xa3, 0x64, 0xd6, 0xc8, 0x99, 0x37, 0x6a, 0x66,
		0x8e, 0xac, 0xb9, 0x23, 0x6b, 0xf6, 0x28, 0x9a, 0x3f, 0xb9, 0x66, 0x50, 0xb2, 0x39, 0x24, 0x63,
		0x16, 0xef, 0x61, 0x7c, 0x14, 0x87, 0x6f, 0x2c, 0x49, 0x87, 0x11, 0x1c, 0x94, 0x4d, 0x28, 0x45,
		0x53, 0x4a, 0xd6, 0xa4, 0x52, 0x35, 0xad, 0xe4, 0x4d, 0x2c, 0x79, 0x53, 0x4b, 0xd9, 0xe4, 0xd2,
		0x30, 0xbd, 0x44, 0x4c, 0x70, 0xfc, 0xa0, 0x08, 0x8f, 0xe0, 0x70, 0x3c, 0xfe, 0x8e, 0xe0, 0x08,
		0x0e, 0x42, 0xbd, 0x5a, 0x89, 0xf6, 0xf9, 0x26, 0x58, 0x15, 0x47, 0xb9, 0x6f, 0xf7, 0x6d, 0x2f,
		0xe0, 0x3c, 0xd1, 0x6e, 0x0a, 0xca, 0xf4, 0xfb, 0xa5, 0xdf, 0xd7, 0x97, 0x60, 0xd5, 0x19, 0xe9,
		0x06, 0xda, 0xf1, 0xe1, 0xc8, 0x17, 0x8b, 0x38, 0x1c, 0x69, 0x3f, 0x1c, 0xa8, 0x92, 0xbb, 0xf7,
		0x0b, 0x55, 0x72, 0x64, 0x94, 0xe7, 0x9c, 0x10, 0x92, 0x0b, 0x16, 0xd1, 0x8a, 0x05, 0x23, 0x4c,
		0xf4, 0xb0, 0x40, 0x08, 0x13, 0x3d, 0x43, 0x30, 0x84, 0x89, 0x5e, 0x28, 0x20, 0xc2, 0x44, 0xaa,
		0x5b, 0x7f, 0x84, 0x89, 0x1e, 0xd3, 0x56, 0xce, 0xc8, 0x20, 0x77, 0xf8, 0x30, 0xad, 0xf5, 0xa9,
		0x5f, 0x84, 0x1b, 0x28, 0x39, 0xa3, 0xab, 0x82, 0x41, 0x52, 0xaf, 0x6b, 0xc4, 0x1b, 0x70, 0x92,
		0x6f, 0xbc, 0x39, 0x6b, 0xb8, 0xd9, 0xfb, 0xfd, 0x2d, 0x67, 0x1c, 0xf6, 0xa6, 0x2f, 0x73, 0xd1,
		0xb7, 0xe9, 0xeb, 0xfc, 0xb7, 0xac, 0x51, 0x98, 0xbf, 0x2e, 0x7e, 0xcb, 0x1a, 0xc5, 0xde, 0xee,
		0xe9, 0xe9, 0xde, 0xee, 0xaf, 0xfd, 0x9b, 0xe7, 0xff, 0x60, 0x66, 0xb6, 0xd8, 0xee, 0xef, 0x9d,
		0x6f, 0x39, 0x23, 0xdf, 0x9b, 0xff, 0x65, 0xff, 0x5b, 0xd6, 0xc8, 0xf7, 0x28, 0xb6, 0xa0, 0x44,
		0xcb, 0x37, 0x65, 0x35, 0x56, 0x09, 0x1a, 0x2b, 0xad, 0x1a, 0xab, 0xbc, 0xd4, 0x97, 0x33, 0xfb,
		0xb6, 0x70, 0xb3, 0x5b, 0xde, 0xdd, 0xb9, 0xfb, 0x5e, 0x79, 0xf7, 0x57, 0xf6, 0x6d, 0xf1, 0x66,
		0x67, 0xe7, 0x9e, 0x7f, 0xf9, 0xf3, 0xbe, 0xdf, 0xb1, 0xfb, 0x7b, 0x67, 0x67, 0x67, 0xa6, 0xab,
		0x96, 0xf4, 0xd7, 0xb7, 0x6c, 0xae, 0xf7, 0x67, 0xf4, 0x72, 0xfa, 0x67, 0xac, 0x01, 0x9f, 0xf4,
		0x9f, 0x77, 0x77, 0x77, 0x16, 0x15, 0xdf, 0xe4, 0xfb, 0xaf, 0xfc, 0xcd, 0xee, 0xef, 0x9d, 0x89,
		0xba, 0xcc, 0xc5, 0x4a, 0x30, 0x37, 0xf9, 0x25, 0xef, 0x26, 0xff, 0x9d, 0x68, 0xb3, 0xeb, 0x89,
		0xa9, 0xf8, 0xbb, 0xdc, 0xfb, 0x57, 0x79, 0xf7, 0x57, 0xe9, 0x66, 0xfe, 0x3a, 0xfa, 0x73, 0xf7,
		0xf7, 0xce, 0xde, 0x3f, 0x4f, 0x4f, 0xf7, 0xf6, 0xfe, 0xb9, 0x3b, 0xdd, 0xc4, 0xd9, 0xff, 0xfb,
		0xe7, 0xf4, 0x5f, 0xff, 0x2c, 0x97, 0x57, 0xde, 0xda, 0xdd, 0xc9, 0xec, 0xfd, 0x0b, 0x0a, 0x5f,
		0x09, 0xe6, 0xa5, 0x21, 0xee, 0x4a, 0xc9, 0x04, 0xeb, 0xb3, 0xb6, 0x3c, 0xe4, 0xe2, 0xae, 0x52,
		0xdb, 0x05, 0xad, 0xb3, 0xb1, 0x88, 0xbb, 0xae, 0xb3, 0xf3, 0x88, 0xbb, 0x3e, 0x5d, 0x30, 0xc4,
		0x5d, 0x5f, 0x28, 0x20, 0xe2, 0xae, 0xaa, 0x5b, 0x7f, 0xc4, 0x5d, 0x1f, 0xb5, 0x7b, 0x81, 0x31,
		0x31, 0x7d, 0x7c, 0x22, 0x20, 0x22, 0xaf, 0x4f, 0x79, 0x88, 0x88, 0xbc, 0x3e, 0x11, 0x5a, 0x97,
		0x23, 0x37, 0x34, 0x5c, 0xfb, 0x8c, 0xb9, 0x94, 0xc3, 0x18, 0x87, 0x04, 0x65, 0x23, 0x89, 0x34,
		0xba, 0x88, 0x5b, 0x41, 0xde, 0xd8, 0xf1, 0xf8, 0x7e, 0x5e, 0x81, 0xb9, 0x5b, 0x84, 0xc7, 0x84,
		0x12, 0x4d, 0x4a, 0x56, 0x07, 0x8d, 0xf1, 0x46, 0x52, 0x4e, 0x5a, 0x5e, 0x11, 0x36, 0x4e, 0x62,
		0x2e, 0x29, 0x32, 0x36, 0x58, 0x95, 0xb4, 0xcd, 0x55, 0x65, 0x45, 0x3d, 0x8d, 0x93, 0xa8, 0x33,
		0xfd, 0xf0, 0x59, 0x23, 0x9c, 0x03, 0xbd, 0xfe, 0xac, 0x65, 0x0b, 0xef, 0x8a, 0x07, 0x45, 0x1c,
		0x38, 0x1c, 0x38, 0x82, 0x1c, 0x5a, 0x3d, 0xe9, 0x30, 0x4c, 0x37, 0x5d, 0xee, 0x3c, 0xed, 0x19,
		0x68, 0x2b, 0x8c, 0xb2, 0x40, 0x58, 0x46, 0xd2, 0x33, 0xd1, 0x6e, 0xf9, 0xaf, 0x0a, 0xb3, 0xd1,
		0x62, 0x69, 0xa3, 0x19, 0x69, 0x66, 0xeb, 0x4b, 0xe1, 0xce, 0x1c, 0x7f, 0x05, 0xdc, 0xa5, 0xdc,
		0x44, 0xf4, 0xa5, 0x51, 0xf8, 0x0a, 0x08, 0x9d, 0x9f, 0xed, 0x77, 0x49, 0xbd, 0xfd, 0xde, 0x8f,
		0x44, 0x3f, 0x56, 0x4c, 0xea, 0x83, 0x89, 0xd4, 0xb5, 0x46, 0xb7, 0xdd, 0x6c, 0xfd, 0x65, 0xd5,
		0x2b, 0xef, 0x6b, 0x75, 0xcb, 0x6c, 0x54, 0xcd, 0xa3, 0x4a, 0xb7, 0xd9, 0x56, 0x41, 0xfe, 0x77,
		0x13, 0xf9, 0x1b, 0xcd, 0xa9, 0xe8, 0xfa, 0x1b, 0x70, 0xac, 0xd7, 0x68, 0x66, 0xea, 0x53, 0x0d,
		0x6f, 0x4d, 0xdd, 0x1a, 0xc0, 0x92, 0x8e, 0xba, 0xc5, 0xd2, 0x2f, 0x2b, 0x89, 0xb2, 0xb6, 0xaf,
		0x82, 0xcc, 0xab, 0x36, 0x50, 0x09, 0x76, 0x78, 0x9f, 0x31, 0x29, 0x6b, 0x79, 0x05, 0x04, 0x8f,
		0x95, 0x5a, 0x59, 0x7b, 0xa7, 0x80, 0xb8, 0x4b, 0x9e, 0x46, 0x59, 0xcb, 0x81, 0xdf, 0xa6, 0x48,
		0x32, 0xcc, 0x3c, 0x57, 0xca, 0xb4, 0x53, 0x4f, 0x80, 0xb7, 0x07, 0x83, 0x80, 0x85, 0x21, 0x32,
		0xe0, 0x9f, 0x27, 0x9b, 0x22, 0x35, 0x3b, 0xf3, 0xdc, 0xf5, 0xdc, 0x34, 0xd7, 0xfd, 0xe0, 0xe6,
		0xee, 0x9b, 0xbf, 0xef, 0xfb, 0x6f, 0xb9, 0xb7, 0x07, 0x37, 0xe5, 0x35, 0xff, 0x52, 0xba, 0x29,
		0x3f, 0xf1, 0x77, 0x14, 0x6f, 0x76, 0x56, 0xfe, 0xeb, 0xe4, 0xfd, 0xfc, 0xba, 0x1f, 0x28, 0xac,
		0xf9, 0x81, 0xfd, 0x75, 0x3f, 0xb0, 0xbf, 0xe6, 0x07, 0xd6, 0x8a, 0x94, 0x5f, 0xf3, 0x03, 0xc5,
		0x9b, 0xdf, 0x2b, 0xff, 0x7f, 0xe7, 0xfe, 0xff, 0x5a, 0xba, 0xd9, 0xfd, 0xbd, 0xee, 0xdf, 0x0e,
		0x6e, 0x7e, 0x97, 0x49, 0x56, 0x28, 0x51, 0x3c, 0x40, 0xcd, 0x8e, 0xf9, 0x95, 0xfc, 0x29, 0xfa,
		0x1b, 0xc7, 0x48, 0xd6, 0x31, 0xfa, 0x07, 0x0a, 0x3f, 0x54, 0x71, 0x04, 0x51, 0xf8, 0x41, 0x41,
		0x02, 0x8c, 0xa5, 0x5f, 0x96, 0x47, 0x85, 0x01, 0x91, 0xf7, 0x4e, 0xc8, 0xbb, 0xf7, 0xdd, 0x0c,
		0x89, 0x59, 0x10, 0x1a, 0xf9, 0x99, 0x92, 0x1f, 0x5c, 0xf6, 0xb3, 0xe2, 0x9e, 0xfb, 0xd3, 0xd2,
		0x95, 0x68, 0xf6, 0xec, 0xca, 0x5b, 0xd6, 0xac, 0xd0, 0x66, 0x5b, 0x07, 0xd6, 0x4b, 0x9c, 0x82,
		0x44, 0xaa, 0x85, 0x3c, 0xc5, 0xd6, 0xf1, 0x44, 0x6a, 0xd2, 0x30, 0x6d, 0xe5, 0x21, 0xbc, 0x60,
		0xda, 0xca, 0x3a, 0xf0, 0x62, 0xda, 0xca, 0x73, 0xbd, 0x26, 0x4c, 0x5b, 0xa1, 0xe5, 0xc6, 0x92,
		0xa9, 0x21, 0x8b, 0xb5, 0x8d, 0xcb, 0xec, 0x61, 0xc0, 0x86, 0x14, 0xf4, 0xcd, 0x3c, 0x24, 0x4b,
		0xe0, 0x6a, 0x57, 0x6f, 0xcd, 0x3c, 0xfb, 0xbd, 0xbd, 0x99, 0x6f, 0x9c, 0x59, 0x32, 0xe3, 0x70,
		0xee, 0x84, 0x3f, 0x11, 0x22, 0xcd, 0x5e, 0x69, 0x35, 0x79, 0x85, 0x43, 0x07, 0x87, 0x0e, 0x0e,
		0x1d, 0x1c, 0x3a, 0x38, 0x74, 0x70, 0xe8, 0xe0, 0xd0, 0x3d, 0xcf, 0xa1, 0x9b, 0xa9, 0x1c, 0xb8,
		0x72, 0xc2, 0x9f, 0x45, 0xc8, 0x6d, 0xce, 0xe8, 0x78, 0x72, 0x53, 0x71, 0x30, 0x07, 0x79, 0xc9,
		0x91, 0xcb, 0xc3, 0x91, 0x83, 0x23, 0x07, 0x47, 0x0e, 0x8e, 0xdc, 0x96, 0x38, 0x72, 0x98, 0x83,
		0xfc, 0x24, 0x15, 0x88, 0x39, 0xc8, 0xca, 0xc4, 0x42, 0x28, 0x9a, 0x52, 0xb2, 0x26, 0x95, 0xaa,
		0x69, 0x25, 0x6f, 0x62, 0xc9, 0x9b, 0x5a, 0xca, 0x26, 0x97, 0x86, 0xe9, 0x25, 0x62, 0x82, 0xe9,
		0xc5, 0x54, 0x56, 0xb4, 0x15, 0xe6, 0x20, 0x3f, 0x2e, 0x12, 0xe6, 0x20, 0x3f, 0x71, 0xa3, 0x30,
		0x07, 0xf9, 0x55, 0x12, 0x62, 0xd4, 0x6b, 0xca, 0xf4, 0xfe, 0xf2, 0xe1, 0xc0, 0x1c, 0x64, 0x1c,
		0x0e, 0xb8, 0x66, 0x74, 0xa5, 0x41, 0x59, 0x06, 0x19, 0xe5, 0x89, 0x39, 0xc8, 0xcf, 0xf1, 0x95,
		0x11, 0x26, 0x5a, 0x23, 0x10, 0xc2, 0x44, 0xcf, 0x10, 0x0c, 0x61, 0xa2, 0x17, 0x0a, 0x88, 0x30,
		0x91, 0xea, 0xd6, 0x1f, 0x61, 0xa2, 0xc7, 0xb4, 0x15, 0xe6, 0x20, 0x3f, 0xef, 0x11, 0x22, 0x54,
		0xf4, 0x64, 0x60, 0x61, 0x0e, 0xf2, 0x4b, 0xbd, 0x1b, 0xcc, 0x41, 0xc6, 0x1c, 0xe4, 0x94, 0x99,
		0x40, 0x35, 0x34, 0x16, 0xe6, 0x20, 0xa7, 0x56, 0x63, 0x61, 0x0e, 0xb2, 0x2c, 0x53, 0x81, 0x39,
		0xc8, 0x5b, 0xc8, 0xbc, 0x34, 0xc4, 0x5d, 0x29, 0x99, 0x60, 0xcc, 0x41, 0x7e, 0x8e, 0x8d, 0x45,
		0xdc, 0x75, 0x9d, 0x9d, 0x47, 0xdc, 0xf5, 0xe9, 0x82, 0x21, 0xee, 0xfa, 0x42, 0x01, 0x11, 0x77,
		0x55, 0xdd, 0xfa, 0x23, 0xee, 0xfa, 0xa8, 0xdd, 0xc3, 0x1c, 0xe4, 0x67, 0x3e, 0x44, 0x44, 0x5e,
		0x9f, 0x08, 0x2d, 0xcc, 0x41, 0x4e, 0x15, 0xd2, 0xe8, 0x22, 0x6e, 0x05, 0x79, 0x98, 0x83, 0xbc,
		0x01, 0x11, 0x31, 0x07, 0x79, 0x43, 0x1b, 0x89, 0x39, 0xc8, 0x49, 0x0a, 0x8c, 0xb1, 0xac, 0x5b,
		0xe6, 0x4c, 0x3f, 0x7c, 0xd6, 0x30, 0x07, 0x19, 0x07, 0x2e, 0x35, 0x07, 0x0e, 0x73, 0xa2, 0x5e,
		0xf4, 0x85, 0x39, 0xc8, 0xe9, 0x72, 0xe7, 0x31, 0x07, 0x79, 0x63, 0x32, 0x62, 0x0e, 0xf2, 0xe6,
		0xa5, 0xc5, 0x1c, 0x64, 0xb1, 0x42, 0x63, 0x0e, 0xb2, 0x60, 0xa9, 0x31, 0x07, 0x19, 0x1c, 0x2b,
		0xd6, 0xcc, 0x98, 0x83, 0x2c, 0x44, 0x7a, 0xcc, 0x41, 0x16, 0x2b, 0x38, 0xe6, 0x20, 0x0b, 0x10,
		0x17, 0x73, 0x90, 0x53, 0x2c, 0x19, 0xe6, 0x20, 0x2b, 0x65, 0xda, 0x31, 0x07, 0xf9, 0xd5, 0x44,
		0x1f, 0x19, 0xf0, 0x2f, 0x10, 0x10, 0x03, 0x5c, 0x31, 0x07, 0x39, 0x56, 0xd0, 0x98, 0x83, 0xfc,
		0x42, 0x29, 0x31, 0x07, 0x19, 0x73, 0x90, 0xc9, 0x3a, 0x3a, 0x28, 0xfc, 0x20, 0xb6, 0x1f, 0x98,
		0x83, 0x8c, 0x39, 0xc8, 0x89, 0xcd, 0x41, 0xa6, 0x30, 0x0a, 0x42, 0x4b, 0xc7, 0x18, 0xe4, 0x4e,
		0xb4, 0x95, 0xdb, 0x3a, 0x5d, 0xe5, 0xcd, 0x16, 0x29, 0x27, 0xfd, 0x33, 0xbb, 0xbe, 0x2d, 0x7c,
		0xd1, 0x08, 0xb4, 0x88, 0xd7, 0xeb, 0x4e, 0xc8, 0x2b, 0x9c, 0xcb, 0x6d, 0xe9, 0xaf, 0x1f, 0x3b,
		0x5e, 0xcd, 0x65, 0x93, 0x93, 0x23, 0x39, 0xb5, 0x48, 0x3f, 0xb6, 0x7f, 0x2e, 0x48, 0x92, 0x7b,
		0x57, 0x28, 0x94, 0x0e, 0x0a, 0x85, 0xec, 0xc1, 0xfe, 0x41, 0xf6, 0xb0, 0x58, 0xcc, 0x95, 0x72,
		0x12, 0x13, 0xb6, 0xf4, 0x66, 0x30, 0x60, 0x01, 0x1b, 0xbc, 0x9f, 0x80, 0xc8, 0x1b, 0xbb, 0x2e,
		0x05, 0x51, 0x4e, 0x42, 0x16, 0x48, 0xcd, 0xad, 0x92, 0x75, 0x96, 0x89, 0x38, 0x18, 0x29, 0x73,
		0x2c, 0x74, 0xa9, 0xd3, 0xb6, 0x14, 0x77, 0x25, 0xe4, 0x38, 0x11, 0xe2, 0x4d, 0xb8, 0xd8, 0x15,
		0x05, 0x2b, 0x18, 0xd9, 0x8a, 0x45, 0x5d, 0x85, 0x22, 0x41, 0x77, 0xa8, 0xa6, 0x33, 0xc4, 0x6a,
		0x08, 0x71, 0xe7, 0x54, 0xe0, 0x19, 0xd5, 0x17, 0x11, 0x27, 0xfa, 0x80, 0xde, 0xe9, 0x18, 0x2c,
		0x03, 0xf6, 0x92, 0x06, 0x30, 0x4a, 0x6b, 0x47, 0x21, 0xb3, 0xed, 0x84, 0xf4, 0xf6, 0x12, 0xb2,
		0xdb, 0x48, 0x90, 0x69, 0x17, 0x41, 0xa6, 0x2d, 0x04, 0x85, 0xf6, 0x0f, 0xe9, 0xf6, 0xbf, 0x64,
		0x0d, 0x38, 0x5c, 0xd0, 0xe9, 0xf2, 0xce, 0xdb, 0xaa, 0x7d, 0x91, 0x75, 0xe0, 0xe4, 0xce, 0xf9,
		0x95, 0xde, 0xfd, 0x88, 0x42, 0xb7, 0x23, 0x32, 0xdd, 0x8d, 0xa8, 0x74, 0x33, 0x22, 0xd7, 0xbd,
		0x88, 0x5c, 0xb7, 0x22, 0x4a, 0xdd, 0x89, 0xb6, 0xeb, 0x6e, 0x41, 0xf6, 0x5c, 0x5e, 0xbd, 0x3f,
		0xd7, 0x98, 0x44, 0xa6, 0xd5, 0xcf, 0xe4, 0xc1, 0xb8, 0x7a, 0x4a, 0xcd, 0xfc, 0x30, 0xae, 0x5e,
		0x01, 0x33, 0x47, 0xd6, 0xdc, 0x91, 0x35, 0x7b, 0x14, 0xcd, 0x9f, 0x5c, 0x33, 0x28, 0xd9, 0x1c,
		0x92, 0x31, 0x8b, 0xb1, 0x20, 0x51, 0x4f, 0x34, 0xc3, 0x1f, 0x71, 0xc7, 0xf7, 0x42, 0x7a, 0xad,
		0x70, 0x97, 0xc5, 0x43, 0x47, 0x5c, 0xca, 0x46, 0x94, 0xa2, 0x31, 0x25, 0x6b, 0x54, 0xa9, 0x1a,
		0x57, 0xf2, 0x46, 0x96, 0xbc, 0xb1, 0xa5, 0x6c, 0x74, 0x69, 0x18, 0x5f, 0x22, 0x46, 0x38, 0x7e,
		0x50, 0x74, 0x3b, 0xe2, 0xd2, 0xec, 0x36, 0x43, 0xb1, 0xbb, 0x0c, 0xcd, 0x6e, 0x32, 0xb4, 0xbb,
		0xc7, 0x4c, 0xbb, 0xc5, 0x34, 0x9a, 0x56, 0xeb, 0x53, 0x8b, 0x62, 0x6d, 0x63, 0xd4, 0x11, 0x66,
		0xb9, 0x14, 0x1e, 0x55, 0xb4, 0x0f, 0x82, 0x8d, 0x6a, 0x43, 0x0c, 0xfd, 0x6e, 0x43, 0x83, 0x1c,
		0x41, 0xb8, 0xcd, 0x0e, 0x42, 0x59, 0xcb, 0xa2, 0x84, 0x89, 0xb2, 0xd7, 0x80, 0xd9, 0x35, 0x98,
		0x19, 0x0e, 0xa6, 0x0e, 0xa6, 0x0e, 0xa6, 0x0e, 0xa6, 0x0e, 0xa6, 0x0e, 0xa6, 0x4e, 0x42, 0x5b,
		0x61, 0x66, 0xf8, 0xf3, 0x1e, 0x21, 0x26, 0xd7, 0x3c, 0x19, 0x58, 0x98, 0x19, 0xfe, 0x52, 0xef,
		0x06, 0x33, 0xc3, 0x31, 0x33, 0x3c, 0xa5, 0xc1, 0x1e, 0xcc, 0x0c, 0x87, 0xc6, 0x92, 0xa2, 0xb1,
		0x30, 0x33, 0x5c, 0x96, 0xa9, 0xc0, 0xcc, 0xf0, 0x2d, 0x64, 0x5e, 0x1a, 0x5a, 0x47, 0x51, 0x32,
		0xc1, 0x98, 0x19, 0xfe, 0x1c, 0x1b, 0x8b, 0xb8, 0xeb, 0x3a, 0x3b, 0x8f, 0xb8, 0xeb, 0xd3, 0x05,
		0x43, 0xdc, 0xf5, 0x85, 0x02, 0x22, 0xee, 0xaa, 0xba, 0xf5, 0x47, 0xdc, 0xf5, 0x51, 0xbb, 0x87,
		0x99, 0xe1, 0xcf, 0x7c, 0x88, 0x88, 0xbc, 0x3e, 0x11, 0x5a, 0x98, 0x19, 0x9e, 0x2a, 0xa4, 0xd1,
		0x45, 0xdc, 0x0a, 0xf2, 0x30, 0x33, 0x7c, 0x03, 0x22, 0x62, 0x66, 0xf8, 0x86, 0x36, 0x12, 0x33,
		0xc3, 0x93, 0x14, 0x18, 0x23, 0x8c, 0xb7, 0xcc, 0x99, 0x7e, 0xf8, 0xac, 0x61, 0x66, 0x38, 0x0e,
		0x5c, 0x6a, 0x0e, 0x1c, 0x66, 0xaa, 0xbd, 0xe8, 0x0b, 0x33, 0xc3, 0xd3, 0xe5, 0xce, 0x63, 0x66,
		0xf8, 0xc6, 0x64, 0xc4, 0xcc, 0xf0, 0xcd, 0x4b, 0x8b, 0x99, 0xe1, 0x62, 0x85, 0xc6, 0xcc, 0x70,
		0xc1, 0x52, 0x63, 0x66, 0x38, 0x38, 0x56, 0xac, 0x99, 0x31, 0x33, 0x5c, 0x88, 0xf4, 0x98, 0x19,
		0x2e, 0x56, 0x70, 0xcc, 0x0c, 0x17, 0x20, 0x2e, 0x66, 0x86, 0xa7, 0x58, 0x32, 0xcc, 0x0c, 0x57,
		0xca, 0xb4, 0x63, 0x66, 0xf8, 0xab, 0x89, 0x3e, 0x32, 0xe0, 0x5f, 0x20, 0x20, 0x86, 0x1d, 0x63,
		0x66, 0x78, 0xac, 0xa0, 0x31, 0x33, 0xfc, 0x85, 0x52, 0x62, 0x66, 0x38, 0x66, 0x86, 0x93, 0x75,
		0x74, 0x50, 0xf8, 0x41, 0x6c, 0x3f, 0x30, 0x33, 0x1c, 0x33, 0xc3, 0x9f, 0x37, 0x89, 0x6f, 0x71,
		0xa0, 0xe7, 0xc2, 0x7c, 0x70, 0x12, 0xcd, 0xf7, 0x35, 0xf2, 0x13, 0xfa, 0x16, 0xa6, 0x79, 0xde,
		0x0e, 0x04, 0x9f, 0x15, 0xd1, 0x6c, 0xeb, 0x44, 0x70, 0x89, 0x63, 0x66, 0x88, 0xf4, 0xfa, 0xa2,
		0xd5, 0xe3, 0x8b, 0x48, 0x8d, 0x19, 0x46, 0x58, 0x3c, 0x84, 0x14, 0x8c, 0xb0, 0x58, 0x07, 0x5e,
		0x8c, 0xb0, 0x78, 0xae, 0x17, 0x84, 0x11, 0x16, 0xb4, 0xdc, 0x52, 0x32, 0x35, 0x61, 0xb7, 0xc3,
		0x22, 0x98, 0x3d, 0x0c, 0xd8, 0x90, 0x82, 0xbe, 0x99, 0x87, 0x58, 0x09, 0x5c, 0xd5, 0xea, 0xad,
		0x99, 0xa7, 0xbe, 0xb7, 0x37, 0xf3, 0x7f, 0x67, 0x1e, 0x31, 0x5c, 0x39, 0x19, 0x6e, 0xbf, 0xcd,
		0x19, 0x1d, 0x4f, 0x6e, 0x2a, 0x0e, 0x66, 0x91, 0x2d, 0x39, 0x72, 0x79, 0x38, 0x72, 0x70, 0xe4,
		0xe0, 0xc8, 0xc1, 0x91, 0xdb, 0x12, 0x47, 0x0e, 0xb3, 0xc8, 0x9e, 0xe8, 0x5e, 0x62, 0x16, 0x99,
		0x32, 0xd1, 0x10, 0x8a, 0xc6, 0x94, 0xac, 0x51, 0xa5, 0x6a, 0x5c, 0xc9, 0x1b, 0x59, 0xf2, 0xc6,
		0x96, 0xb2, 0xd1, 0xa5, 0x61, 0x7c, 0x89, 0x18, 0x61, 0x7a, 0x51, 0x95, 0x15, 0x6d, 0x85, 0x59,
		0x64, 0x4f, 0x96, 0x09, 0xb3, 0xc8, 0x9e, 0x2f, 0x1d, 0x66, 0x91, 0xa5, 0x41, 0x7f, 0x2d, 0x80,
		0x0d, 0xb3, 0xc8, 0x5e, 0xa3, 0x74, 0x31, 0x8b, 0x4c, 0x09, 0xaf, 0x01, 0x3d, 0x71, 0x31, 0x8b,
		0x0c, 0x4c, 0x1d, 0x4c, 0x1d, 0x4c, 0x1d, 0x4c, 0x1d, 0x4c, 0x1d, 0x4c, 0x9d, 0x84, 0xb6, 0xc2,
		0x2c, 0xb2, 0xe7, 0x3d, 0x42, 0x74, 0xc4, 0x7d, 0x32, 0xb0, 0x30, 0x8b, 0xec, 0xa5, 0xde, 0x0d,
		0x66, 0x91, 0x61, 0x16, 0x59, 0x4a, 0x83, 0x3d, 0x98, 0x45, 0x06, 0x8d, 0x25, 0x45, 0x63, 0x61,
		0x16, 0x99, 0x2c, 0x53, 0x81, 0x59, 0x64, 0x5b, 0xc8, 0xbc, 0x34, 0x94, 0xa4, 0x52, 0x32, 0xc1,
		0x98, 0x45, 0xf6, 0x1c, 0x1b, 0x8b, 0xb8, 0xeb, 0x3a, 0x3b, 0x8f, 0xb8, 0xeb, 0xd3, 0x05, 0x43,
		0xdc, 0xf5, 0x85, 0x02, 0x22, 0xee, 0xaa, 0xba, 0xf5, 0x47, 0xdc, 0xf5, 0x51, 0xbb, 0x87, 0x59,
		0x64, 0xcf, 0x7c, 0x88, 0x88, 0xbc, 0x3e, 0x11, 0x5a, 0x98, 0x45, 0x96, 0x2a, 0xa4, 0xd1, 0x45,
		0xdc, 0x0a, 0xf2, 0x30, 0x8b, 0x6c, 0x03, 0x22, 0x62, 0x16, 0xd9, 0x86, 0x36, 0x12, 0xb3, 0xc8,
		0x92, 0x14, 0x18, 0xa3, 0x91, 0xb6, 0xcc, 0x99, 0x7e, 0xf8, 0xac, 0x61, 0x16, 0x19, 0x0e, 0x5c,
		0x6a, 0x0e, 0x1c, 0x7a, 0xb5, 0xbf, 0xe8, 0x0b, 0xb3, 0xc8, 0xd2, 0xe5, 0xce, 0x63, 0x16, 0xd9,
		0xc6, 0x64, 0xc4, 0x2c, 0xb2, 0xcd, 0x4b, 0x8b, 0x59, 0x64, 0x62, 0x85, 0xc6, 0x2c, 0x32, 0xc1,
		0x52, 0x63, 0x16, 0x19, 0x38, 0x56, 0xac, 0x99, 0x31, 0x8b, 0x4c, 0x88, 0xf4, 0x98, 0x45, 0x26,
		0x56, 0x70, 0xcc, 0x22, 0x13, 0x20, 0x2e, 0x66, 0x91, 0xa5, 0x58, 0x32, 0xcc, 0x22, 0x53, 0xca,
		0xb4, 0x63, 0x16, 0xd9, 0xab, 0x89, 0x3e, 0x32, 0xe0, 0x5f, 0x20, 0x20, 0x86, 0x28, 0x61, 0x16,
		0x59, 0xac, 0xa0, 0x31, 0x8b, 0xec, 0x85, 0x52, 0x62, 0x16, 0x19, 0x66, 0x91, 0x91, 0x75, 0x74,
		0x50, 0xf8, 0x41, 0x6c, 0x3f, 0x30, 0x8b, 0x0c, 0xb3, 0xc8, 0x36, 0x32, 0x8b, 0x8c, 0x42, 0xef,
		0x7d, 0x4d, 0xcd, 0x51, 0x64, 0x9d, 0x68, 0xeb, 0xb6, 0x75, 0x7c, 0xc5, 0x9b, 0x2d, 0x52, 0x3c,
		0xfa, 0x67, 0x76, 0x2d, 0xbd, 0xa8, 0x45, 0xaf, 0x3b, 0x21, 0xaf, 0x70, 0x2e, 0xb7, 0x4d, 0xba,
		0x7e, 0xec, 0x78, 0x35, 0x97, 0x4d, 0x0e, 0x87, 0xe4, 0x4c, 0x21, 0xfd, 0xd8, 0xfe, 0xb9, 0x20,
		0x49, 0xee, 0x5d, 0xa1, 0x50, 0x3a, 0x28, 0x14, 0xb2, 0x07, 0xfb, 0x07, 0xd9, 0xc3, 0x62, 0x31,
		0x57, 0xca, 0x49, 0xcc, 0xbf, 0xd2, 0x9b, 0xc1, 0x80, 0x05, 0x6c, 0xf0, 0x7e, 0x82, 0x1b, 0x6f,
		0xec, 0xba, 0x14, 0x44, 0x39, 0x09, 0x59, 0x20, 0x35, 0x55, 0x4a, 0xd6, 0xf1, 0x25, 0xe2, 0x2f,
		0x28, 0xec, 0x27, 0xe8, 0x52, 0xa7, 0x15, 0x29, 0xe6, 0x19, 0xc8, 0xf1, 0x09, 0xc4, 0x5b, 0x64,
		0xb1, 0x2b, 0x0a, 0x56, 0x1e, 0xb2, 0x95, 0x86, 0x6a, 0xca, 0x42, 0x82, 0x86, 0x50, 0x45, 0x33,
		0x88, 0xd5, 0x07, 0xe2, 0x4e, 0xa5, 0x98, 0x95, 0x04, 0x9d, 0x7b, 0x59, 0xe7, 0x5d, 0x85, 0x73,
		0x2e, 0xf0, 0x6c, 0x93, 0x3e, 0xd3, 0x62, 0x0e, 0x72, 0xf2, 0xc7, 0x4a, 0xc0, 0x91, 0x12, 0x3c,
		0x63, 0x52, 0xca, 0x2c, 0x49, 0xc1, 0x33, 0x23, 0x85, 0xcf, 0x86, 0x94, 0xd1, 0x94, 0x65, 0xb1,
		0xe9, 0xca, 0x44, 0x71, 0x89, 0x54, 0x3d, 0x92, 0xda, 0xaa, 0x48, 0x6f, 0x9b, 0x22, 0xbd, 0x2d,
		0xca, 0xdd, 0xb6, 0x27, 0xd1, 0x83, 0x87, 0x1b, 0xf3, 0xa2, 0xad, 0x14, 0x3d, 0x47, 0x51, 0x9f,
		0xf8, 0x0d, 0x33, 0x73, 0x2d, 0xf8, 0xdc, 0xcc, 0x55, 0x45, 0x2c, 0x81, 0x60, 0xd4, 0xca, 0xe9,
		0xe9, 0x25, 0xad, 0x77, 0x97, 0xcc, 0x1e, 0x5d, 0x12, 0xcd, 0x82, 0x6c, 0xf3, 0x40, 0xc6, 0x4c,
		0x90, 0x31, 0x17, 0x34, 0xcc, 0xc6, 0x76, 0x44, 0xc1, 0xa4, 0xf5, 0xb9, 0xba, 0xcd, 0x1d, 0x1d,
		0x30, 0x8f, 0x3b, 0xfc, 0x3a, 0x60, 0x43, 0x19, 0xa7, 0x7e, 0xee, 0xe3, 0x4b, 0xb8, 0x4c, 0xd2,
		0xcd, 0xd9, 0x47, 0x7f, 0x6f, 0x87, 0x12, 0xf5, 0xce, 0xfc, 0x41, 0x54, 0x3e, 0x98, 0x56, 0xf7,
		0xaf, 0x56, 0x4d, 0x96, 0xda, 0x89, 0x9a, 0x2b, 0x84, 0x52, 0x33, 0xf8, 0xe4, 0xe6, 0x9a, 0xc4,
		0x4f, 0xc2, 0x6c, 0x7d, 0x29, 0xc8, 0x4b, 0x3c, 0x90, 0x98, 0xfd, 0x43, 0x67, 0xff, 0x4b, 0xfa,
		0x96, 0xa5, 0x5e, 0xf4, 0xd2, 0x6e, 0x58, 0xdf, 0xa4, 0xf0, 0xfc, 0xe8, 0xcc, 0xb3, 0xcf, 0x5c,
		0x36, 0x90, 0xc7, 0xcd, 0xe6, 0x02, 0x80, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a,
		0xa5, 0x88, 0x9a, 0x9d, 0xf9, 0xbe, 0xcb, 0x6c, 0x4f, 0x26, 0x2d, 0xcb, 0xc1, 0x49, 0x78, 0xf5,
		0x5e, 0x5e, 0x32, 0x1e, 0x38, 0x7d, 0x79, 0x3e, 0xc2, 0x6c, 0x7d, 0xc1, 0xc7, 0xa7, 0xca, 0x86,
		0xf6, 0xd8, 0xe5, 0x52, 0xf8, 0xa4, 0x9e, 0xcb, 0x8a, 0xd5, 0x86, 0x3d, 0xf8, 0x5f, 0xf0, 0xbf,
		0xe0, 0x7f, 0xc1, 0xff, 0x82, 0xff, 0x95, 0x22, 0xff, 0x4b, 0x5a, 0x57, 0x74, 0x89, 0xdd, 0xce,
		0x25, 0x77, 0x31, 0x97, 0x5b, 0x79, 0x23, 0xbd, 0xdc, 0x31, 0xee, 0x70, 0x2c, 0xb9, 0x09, 0x14,
		0xb9, 0x9e, 0xc5, 0x74, 0x7a, 0x11, 0xdf, 0xc8, 0x2d, 0xc9, 0xa2, 0x03, 0xd1, 0x42, 0xfe, 0xb0,
		0x70, 0x58, 0x3a, 0xc8, 0x1f, 0x16, 0x81, 0x55, 0xaa, 0x58, 0xdd, 0x92, 0x4a, 0x99, 0x1e, 0xa2,
		0x14, 0xaf, 0x06, 0x6d, 0x28, 0x3f, 0xd1, 0x2c, 0x44, 0xa6, 0x19, 0xe8, 0x34, 0xe8, 0x34, 0xe8,
		0x34, 0xe8, 0x74, 0x1a, 0xe9, 0x34, 0x32, 0xcd, 0x88, 0x64, 0x9a, 0x75, 0x90, 0x6a, 0x46, 0x25,
		0xd5, 0xe9, 0xf8, 0xa4, 0xde, 0x35, 0x8f, 0x2a, 0x9d, 0x2e, 0xf2, 0xcd, 0xe4, 0x3d, 0x84, 0x93,
		0x86, 0xec, 0x47, 0x80, 0x94, 0x33, 0xb5, 0x79, 0x1a, 0x2a, 0xb5, 0x37, 0xc1, 0x40, 0x29, 0x56,
		0x6a, 0x0b, 0xee, 0xdf, 0x46, 0xad, 0x3e, 0x5b, 0x5c, 0x0f, 0x36, 0x01, 0x65, 0xd9, 0x6f, 0x14,
		0x3e, 0x9d, 0xf3, 0x1e, 0x69, 0xf3, 0x10, 0x89, 0x26, 0x2a, 0x58, 0x22, 0xb6, 0x2f, 0x9a, 0xf8,
		0xfe, 0x67, 0x24, 0xfa, 0x9c, 0x49, 0xe8, 0x67, 0x26, 0xa1, 0x6f, 0x59, 0xd2, 0x47, 0x44, 0xb0,
		0xe1, 0xa2, 0x68, 0xb0, 0x74, 0x21, 0xad, 0x27, 0x08, 0x99, 0xa8, 0x64, 0x8d, 0x53, 0x72, 0x26,
		0x23, 0x99, 0xdf, 0x9c, 0xd0, 0x09, 0x13, 0x75, 0xb2, 0xc8, 0x9d, 0xa8, 0x04, 0x8f, 0x13, 0xa1,
		0x63, 0x94, 0xcc, 0x19, 0xda, 0x3c, 0xc2, 0x13, 0x40, 0xb7, 0xde, 0x9f, 0xdf, 0xc1, 0x24, 0x83,
		0xea, 0x38, 0xc6, 0x30, 0x5b, 0x27, 0xa1, 0xf3, 0x99, 0x6c, 0xa7, 0x9c, 0xc4, 0x2f, 0xaa, 0x44,
		0x5c, 0x48, 0x09, 0xbc, 0x78, 0x12, 0x75, 0xc1, 0x24, 0xfc, 0x22, 0x49, 0xf8, 0x85, 0x91, 0xd8,
		0x8b, 0x21, 0xb5, 0x6c, 0x72, 0xd2, 0x9d, 0x68, 0x84, 0x15, 0x37, 0x0a, 0x2e, 0x66, 0x14, 0x5a,
		0x99, 0xa0, 0x47, 0xac, 0x2a, 0x59, 0x27, 0xb5, 0x97, 0x74, 0xe4, 0x41, 0x48, 0x76, 0x84, 0xb0,
		0x6c, 0x08, 0x91, 0xd9, 0x0f, 0x12, 0xb2, 0x1d, 0x44, 0x67, 0x37, 0x48, 0xcb, 0x66, 0x90, 0x96,
		0xbd, 0x20, 0x27, 0x5b, 0x41, 0xed, 0xe8, 0xa5, 0xb0, 0xec, 0x03, 0x09, 0xc5, 0x93, 0x82, 0x8a,
		0x25, 0x13, 0x8c, 0x45, 0x24, 0xe8, 0x0a, 0x47, 0x7c, 0xda, 0xf0, 0xc6, 0x97, 0x67, 0x2c, 0x10,
		0xe7, 0x49, 0x2c, 0xad, 0x0a, 0xf3, 0x08, 0xf3, 0x08, 0xf3, 0x08, 0xf3, 0x08, 0xf3, 0x28, 0x47,
		0x43, 0x2e, 0x6a, 0x49, 0x11, 0x77, 0x69, 0x62, 0x2b, 0xd8, 0x04, 0x26, 0x48, 0xc8, 0xa8, 0x50,
		0x8b, 0xcb, 0x7d, 0x72, 0x82, 0xf3, 0x55, 0x65, 0x57, 0xf5, 0xc8, 0xab, 0xe2, 0x11, 0x59, 0xf5,
		0x21, 0xa3, 0xa2, 0x2c, 0x86, 0x54, 0x1e, 0x90, 0x12, 0x05, 0xa9, 0x94, 0xa4, 0xf0, 0xf4, 0xc0,
		0xb0, 0x56, 0x40, 0x35, 0xb2, 0xc3, 0x70, 0x8a, 0x29, 0x41, 0xe4, 0x6a, 0xbe, 0x20, 0xc2, 0xb4,
		0xcf, 0xc3, 0x2e, 0x78, 0x28, 0x78, 0x28, 0x78, 0x28, 0x78, 0x28, 0x78, 0x28, 0xc2, 0xb4, 0xe4,
		0x9c, 0x88, 0xc0, 0xf1, 0x03, 0x87, 0x5f, 0x0b, 0xf4, 0x22, 0xe6, 0x2b, 0xc2, 0x2c, 0xc2, 0x2c,
		0xc2, 0x2c, 0xc2, 0x2c, 0xc2, 0x2c, 0xde, 0x69, 0x3d, 0xf6, 0x0e, 0x71, 0xd9, 0x57, 0x7c, 0x6d,
		0x4b, 0x5c, 0x36, 0x8b, 0x20, 0x9a, 0xa0, 0xaf, 0xad, 0x89, 0xcb, 0xe6, 0xf2, 0x07, 0x00, 0x95,
		0x28, 0x50, 0x21, 0x32, 0x2b, 0x97, 0x54, 0xa1, 0x0e, 0xe7, 0x9e, 0x75, 0xa8, 0xd4, 0xe1, 0x24,
		0x5a, 0x35, 0xa1, 0x11, 0xa9, 0xc2, 0x99, 0x51, 0xc7, 0x2d, 0x2e, 0xc2, 0xb9, 0x60, 0xae, 0xeb,
		0x1b, 0xf6, 0x98, 0x5f, 0x30, 0x8f, 0x3b, 0xfd, 0x64, 0x01, 0x1e, 0xfb, 0xd8, 0xf7, 0xae, 0x8a,
		0x02, 0x1d, 0x59, 0x51, 0x07, 0x14, 0xe8, 0x28, 0x18, 0x55, 0x40, 0x81, 0xce, 0xfa, 0xad, 0x49,
		0xbc, 0x40, 0x27, 0xe1, 0xda, 0xc5, 0x95, 0x83, 0x99, 0xb8, 0x35, 0xd6, 0xc4, 0x4d, 0xfd, 0x47,
		0xc0, 0x56, 0x2d, 0x55, 0x2a, 0x4d, 0xa5, 0x4a, 0x53, 0xad, 0x72, 0x54, 0xac, 0x18, 0xc6, 0x98,
		0x74, 0xc0, 0x56, 0xd4, 0x94, 0x7e, 0x7d, 0xe2, 0x3d, 0x1a, 0x97, 0xfe, 0x40, 0xe0, 0x01, 0x88,
		0xc7, 0xf2, 0xc7, 0x4b, 0x0b, 0xc2, 0xa1, 0xd8, 0x2e, 0xc9, 0xc2, 0xbb, 0x23, 0xcb, 0xe8, 0x8a,
		0x2c, 0xb1, 0x1b, 0xb2, 0xac, 0x2e, 0xc8, 0xd2, 0xbb, 0x1f, 0x4b, 0xef, 0x7a, 0x2c, 0xb7, 0xdb,
		0x71, 0xba, 0x7a, 0x15, 0x0a, 0xef, 0x6a, 0x2c, 0xb9, 0x9b, 0xb1, 0x8c, 0x2e, 0xc6, 0x72, 0xbb,
		0x17, 0xdf, 0xce, 0xc7, 0x3f, 0xe9, 0x7e, 0xb2, 0x8e, 0x9b, 0x55, 0xd1, 0x5d, 0x8b, 0x65, 0x76,
		0x2b, 0x96, 0xdc, 0x28, 0xfa, 0xb8, 0x5a, 0x94, 0xd0, 0x86, 0xfd, 0xed, 0xb6, 0x6d, 0x73, 0xb7,
		0xf6, 0xb5, 0x9b, 0xf6, 0x76, 0xf7, 0x3d, 0xdc, 0xa8, 0xd1, 0x3b, 0x07, 0x53, 0x0e, 0x31, 0xb2,
		0xc3, 0x70, 0xe6, 0x91, 0xc9, 0xa0, 0x30, 0xf1, 0xf2, 0xa0, 0x31, 0xa0, 0x31, 0xa0, 0x31, 0xa0,
		0x31, 0xa0, 0x31, 0x02, 0x4f, 0x6c, 0xe0, 0x8f, 0xb9, 0xe3, 0x9d, 0x8b, 0xd6, 0xc2, 0x4b, 0x5c,
		0xe6, 0x1d, 0x2c, 0xf6, 0xf3, 0x2c, 0x36, 0x17, 0x09, 0x97, 0x65, 0x6b, 0x1d, 0x2d, 0x0d, 0x4b,
		0x0d, 0x4b, 0x0d, 0x4b, 0x0d, 0x4b, 0x0d, 0x4b, 0x2d, 0xf0, 0xc4, 0x22, 0xe0, 0x28, 0x78, 0xc3,
		0xa3, 0x80, 0xa3, 0x84, 0x31, 0x69, 0x5b, 0x1c, 0x70, 0xfc, 0x5c, 0xfb, 0xeb, 0xe8, 0x53, 0xc5,
		0x6c, 0x20, 0xea, 0x98, 0xfc, 0x5e, 0x77, 0xcc, 0xe3, 0x56, 0xbd, 0x66, 0x7d, 0xae, 0xfd, 0x85,
		0xd8, 0xa3, 0x62, 0xb6, 0x2e, 0x15, 0x4c, 0x46, 0x54, 0x7b, 0xe9, 0x15, 0xe0, 0x8b, 0x69, 0x33,
		0x1d, 0x2f, 0x2b, 0xb2, 0x8f, 0x49, 0xbc, 0xa8, 0x80, 0x7e, 0x26, 0xf1, 0xe9, 0x02, 0x1b, 0x04,
		0x1b, 0x04, 0x1b, 0x04, 0x1b, 0x04, 0x1b, 0x14, 0x78, 0x62, 0xc5, 0xf5, 0x4d, 0x59, 0x61, 0x82,
		0x39, 0x38, 0x39, 0x4f, 0xde, 0xb3, 0xef, 0xec, 0xba, 0x7f, 0x61, 0x0b, 0xac, 0x0f, 0x8f, 0x01,
		0x12, 0xaf, 0x0c, 0xf3, 0x0c, 0xf3, 0x0c, 0xf3, 0x0c, 0xf3, 0x0c, 0xf3, 0x2c, 0x41, 0xfb, 0x1a,
		0x92, 0xa2, 0xb5, 0x02, 0x1b, 0x38, 0xe8, 0xad, 0xb8, 0x4c, 0xbc, 0x6f, 0xcc, 0x3f, 0x77, 0x79,
		0xfe, 0x22, 0xbc, 0xf7, 0xdd, 0xa5, 0x37, 0xa7, 0x65, 0x65, 0x4b, 0x6f, 0x45, 0xf5, 0xd8, 0x18,
		0x3b, 0x2d, 0xff, 0x28, 0x6d, 0xed, 0x4c, 0xdd, 0xfb, 0x8a, 0xc3, 0x33, 0x42, 0x0a, 0x20, 0x35,
		0x22, 0x6d, 0x09, 0x3e, 0x4d, 0x76, 0xa0, 0xb2, 0xb4, 0x01, 0x89, 0xb6, 0x2a, 0x48, 0xfe, 0xbc,
		0xdc, 0x24, 0xda, 0x47, 0xc2, 0xe6, 0x02, 0x7b, 0x30, 0x4f, 0x97, 0x4b, 0x59, 0x25, 0x6e, 0x1e,
		0x95, 0xb8, 0x0a, 0xb9, 0xec, 0xa8, 0xc4, 0x45, 0x25, 0xee, 0xe3, 0x5b, 0x86, 0x4a, 0x5c, 0xc4,
		0x5a, 0x10, 0x6b, 0x41, 0xac, 0x05, 0xb1, 0x16, 0xc4, 0x5a, 0x12, 0x3a, 0xb1, 0x48, 0x8c, 0x13,
		0xbc, 0xe1, 0xa8, 0xc4, 0x15, 0xbe, 0xe5, 0xa8, 0xc4, 0x15, 0xb2, 0xcd, 0xa8, 0xc4, 0x55, 0xd0,
		0xc0, 0xa1, 0x12, 0x77, 0x43, 0x14, 0x06, 0x95, 0xb8, 0xa0, 0x31, 0xa0, 0x31, 0xa0, 0x31, 0xa0,
		0x31, 0xa8, 0xc4, 0x85, 0xc5, 0x7e, 0x92, 0xc5, 0x46, 0x25, 0x2e, 0x2c, 0x35, 0x2c, 0x35, 0x2c,
		0x35, 0x2c, 0xf5, 0x16, 0x59, 0x6a, 0x04, 0x1c, 0x05, 0x6f, 0x38, 0x2a, 0x71, 0x85, 0x6f, 0x39,
		0x2a, 0x71, 0xc5, 0xed, 0x35, 0x2a, 0x71, 0x95, 0xb5, 0x75, 0xa8, 0xc4, 0x7d, 0x0d, 0xf0, 0x51,
		0x89, 0xbb, 0xd9, 0xd3, 0x05, 0x36, 0x08, 0x36, 0x08, 0x36, 0x08, 0x36, 0x08, 0x36, 0x28, 0xf0,
		0xc4, 0xa2, 0x12, 0x57, 0x09, 0x27, 0x07, 0x95, 0xb8, 0x30, 0xcf, 0x30, 0xcf, 0x30, 0xcf, 0x30,
		0xcf, 0xdb, 0x65, 0x9e, 0x51, 0x89, 0x8b, 0x4a, 0x5c, 0x21, 0x2b, 0xa0, 0x12, 0x57, 0x60, 0x25,
		0xae, 0x88, 0xfa, 0x47, 0x8d, 0x70, 0x21, 0x6e, 0x27, 0xfa, 0xfc, 0x98, 0xb9, 0x9f, 0xfc, 0xf9,
		0xdb, 0xba, 0x99, 0xfb, 0x02, 0xc7, 0xa2, 0x13, 0x3e, 0x61, 0xdb, 0x3c, 0x8e, 0x3f, 0xc2, 0x81,
		0xe1, 0x8d, 0x2f, 0xcf, 0x58, 0x90, 0xfc, 0x18, 0xfe, 0xa5, 0xd5, 0x92, 0x1d, 0xbf, 0x9f, 0xc5,
		0xf8, 0x7d, 0x0a, 0x14, 0x17, 0xe3, 0xf7, 0xd5, 0xa4, 0xa8, 0x6a, 0xd9, 0xed, 0xc4, 0x29, 0xe7,
		0x82, 0x06, 0xb3, 0x87, 0xc9, 0xb2, 0x4b, 0x11, 0x6c, 0x32, 0x66, 0x8f, 0x7b, 0x7b, 0xb3, 0x46,
		0x37, 0x99, 0x25, 0xd5, 0xbc, 0xc5, 0x06, 0x71, 0x64, 0xf7, 0xbf, 0x33, 0x6e, 0xf4, 0xfd, 0xf1,
		0xc4, 0x7f, 0x08, 0x93, 0xb7, 0x89, 0x77, 0x17, 0x4c, 0xd6, 0x2c, 0xe6, 0x60, 0x16, 0x61, 0x16,
		0x61, 0x16, 0xb7, 0xc3, 0x2c, 0x26, 0xdd, 0x90, 0x45, 0xef, 0x87, 0xde, 0x48, 0x5c, 0x23, 0xac,
		0x68, 0xb5, 0x94, 0xf5, 0xc1, 0xca, 0xa2, 0x0f, 0x96, 0x02, 0x6a, 0x54, 0x9a, 0x3a, 0x95, 0xa6,
		0x56, 0xe5, 0xa8, 0xd7, 0x64, 0xd5, 0x6c, 0xc2, 0xea, 0x56, 0x98, 0xda, 0x5d, 0x08, 0xa7, 0x89,
		0x68, 0x44, 0xb8, 0x72, 0xbe, 0x45, 0x05, 0xe4, 0x05, 0x2a, 0xe4, 0x55, 0xc5, 0x9c, 0x47, 0x86,
		0x43, 0x0a, 0x14, 0xb6, 0x74, 0xc5, 0x2d, 0x5d, 0x81, 0xcb, 0x55, 0xe4, 0x62, 0x14, 0xba, 0x20,
		0xc5, 0x2e, 0x5c, 0xc1, 0xc7, 0x0b, 0x0e, 0x02, 0x7f, 0x34, 0x12, 0x98, 0xb5, 0xbf, 0xa2, 0x29,
		0xe6, 0x02, 0x08, 0xc6, 0xac, 0xd8, 0xf4, 0x36, 0xe1, 0xde, 0x39, 0x05, 0x63, 0x40, 0xc0, 0x28,
		0xc8, 0x36, 0x0e, 0x64, 0x8c, 0x04, 0x19, 0x63, 0x41, 0xc3, 0x68, 0x88, 0x35, 0x1e, 0x82, 0x8d,
		0x48, 0xbc, 0xc5, 0xc2, 0xd3, 0xe5, 0x56, 0xe3, 0x2a, 0xd3, 0xd0, 0xf3, 0x7e, 0x5e, 0xc6, 0x99,
		0x9f, 0xa9, 0xf8, 0x03, 0x09, 0x4b, 0xb7, 0x6d, 0xef, 0x9c, 0x49, 0x29, 0xf8, 0xd5, 0xa4, 0x15,
		0xa2, 0x46, 0x1f, 0xfc, 0x58, 0x60, 0x6a, 0xfc, 0x5a, 0x21, 0xa2, 0x7a, 0x6b, 0xf1, 0x36, 0x76,
		0x45, 0x8e, 0x0f, 0x81, 0xdd, 0xe7, 0x8e, 0xef, 0x55, 0x9d, 0x73, 0x87, 0x87, 0x04, 0x04, 0x6a,
		0xb0, 0x73, 0x9b, 0x3b, 0x57, 0x93, 0xbd, 0x89, 0x0a, 0x0a, 0xa5, 0x49, 0x73, 0xf3, 0x56, 0x22,
		0x44, 0xed, 0x9f, 0x74, 0x20, 0x5a, 0xc8, 0x1f, 0x16, 0x0e, 0x4b, 0x07, 0xf9, 0xc3, 0x22, 0xb0,
		0x4a, 0x15, 0xab, 0x6f, 0xb6, 0x63, 0xd5, 0xde, 0x9b, 0x74, 0x7e, 0x3e, 0x81, 0xba, 0x46, 0x1f,
		0x05, 0x7e, 0x9f, 0x85, 0xa1, 0x4c, 0x3e, 0x7d, 0x2b, 0x02, 0x18, 0x35, 0x18, 0x35, 0x18, 0x35,
		0x18, 0x35, 0x18, 0x35, 0x18, 0x35, 0x18, 0x35, 0x18, 0x35, 0x18, 0x35, 0x18, 0x35, 0x18, 0x35,
		0xb0, 0x0a, 0x46, 0x0d, 0x46, 0xad, 0x0c, 0xa3, 0x0e, 0x58, 0x9f, 0x39, 0x57, 0x32, 0x09, 0x75,
		0x2c, 0x01, 0xf8, 0x34, 0xf8, 0x34, 0xf8, 0x34, 0xf8, 0x34, 0xf8, 0x34, 0xf8, 0x34, 0xf8, 0x34,
		0xf8, 0x34, 0xf8, 0x34, 0xf8, 0x34, 0xf8, 0x34, 0xb0, 0x0a, 0x3e, 0x0d, 0x3e, 0xad, 0x10, 0x9f,
		0xe6, 0x81, 0xed, 0x85, 0x97, 0x0e, 0x97, 0xc9, 0xa8, 0x63, 0x19, 0xc0, 0xa9, 0xc1, 0xa9, 0xc1,
		0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1,
		0xa9, 0x81, 0x55, 0x70, 0x6a, 0x70, 0x6a, 0x65, 0x38, 0x75, 0x38, 0x75, 0x68, 0x25, 0xb1, 0xe9,
		0x68, 0x75, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68,
		0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0x60, 0x15, 0x3c, 0x1a, 0x3c, 0x5a, 0x81, 0x95,
		0x44, 0xb5, 0x57, 0x13, 0x3c, 0xfd, 0xea, 0x36, 0x42, 0x40, 0x64, 0x2a, 0xcf, 0x9d, 0x8e, 0xf0,
		0x99, 0x7e, 0xe8, 0x8d, 0x32, 0x22, 0x9b, 0x6e, 0x6a, 0x44, 0x66, 0xf5, 0xb4, 0xa2, 0x8d, 0x38,
		0x9a, 0xed, 0x83, 0x75, 0x14, 0x7a, 0x23, 0x11, 0xd3, 0xb0, 0xc4, 0x9d, 0x2a, 0x4c, 0xa9, 0x4b,
		0xcb, 0xf9, 0xdc, 0x92, 0xf9, 0x74, 0xf7, 0x9c, 0x48, 0x65, 0x27, 0xd3, 0x25, 0x38, 0xdd, 0x81,
		0x85, 0x17, 0xe2, 0xda, 0xe2, 0x4f, 0x16, 0x43, 0x57, 0xfc, 0x67, 0x2d, 0x84, 0xae, 0xf8, 0x9b,
		0x85, 0x07, 0xba, 0xe2, 0xa3, 0x2b, 0xfe, 0x63, 0x5b, 0x86, 0xae, 0xf8, 0xca, 0x29, 0xe4, 0x55,
		0xc5, 0x8c, 0xae, 0xf8, 0x69, 0x50, 0xd8, 0xd2, 0x15, 0xb7, 0x74, 0x05, 0x2e, 0x57, 0x91, 0xa7,
		0x33, 0x6c, 0x83, 0xae, 0xf8, 0xa2, 0x4e, 0x2d, 0xf2, 0x3a, 0xb6, 0xc0, 0x28, 0xc8, 0x36, 0x0e,
		0x64, 0x8c, 0x04, 0x19, 0x63, 0x41, 0xc3, 0x68, 0x88, 0x35, 0x1e, 0x82, 0x8d, 0x48, 0xbc, 0xc5,
		0xc8, 0xeb, 0x40, 0x5e, 0x87, 0xe0, 0x0f, 0x8e, 0xbc, 0x8e, 0x05, 0x39, 0x70, 0x57, 0x4e, 0x44,
		0x13, 0x2e, 0x43, 0x14, 0x79, 0x1d, 0xc0, 0x2a, 0x59, 0x1f, 0x41, 0xde, 0xaa, 0xa8, 0x8f, 0x78,
		0x3d, 0x68, 0xd1, 0x15, 0x1f, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c,
		0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x2c, 0x05, 0x8c, 0x1a, 0x8c, 0x1a, 0x58, 0x05, 0xa3, 0x06, 0xa3,
		0x7e, 0x09, 0x68, 0xd1, 0x15, 0x1f, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a,
		0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x1c, 0x05, 0x7c, 0x1a, 0x7c, 0x1a, 0x58, 0x05, 0x9f, 0x06,
		0x9f, 0x7e, 0x09, 0x9f, 0x46, 0x57, 0x7c, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70,
		0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0xf0, 0x14, 0x70, 0x6a, 0x70, 0x6a, 0x60, 0x15, 0x9c,
		0x1a, 0x9c, 0xfa, 0x25, 0xa0, 0x45, 0x57, 0x7c, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68,
		0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0x70, 0x13, 0xf0, 0x68, 0xf0, 0x68, 0x60, 0x15,
		0x3c, 0x5a, 0x79, 0x1e, 0x8d, 0xae, 0xf8, 0x9b, 0x88, 0x10, 0x10, 0xed, 0xba, 0xcd, 0xc2, 0x0b,
		0x34, 0xc5, 0x0f, 0xad, 0x5a, 0x78, 0x81, 0x9e, 0xf8, 0x64, 0x4e, 0x2b, 0x7a, 0xe2, 0xdf, 0x9e,
		0xce, 0xed, 0x6c, 0x89, 0x5f, 0x0b, 0x2f, 0xd0, 0x11, 0x7f, 0xf5, 0x41, 0x39, 0x8e, 0xc0, 0x8e,
		0xf8, 0x93, 0xc5, 0xd0, 0x11, 0xff, 0x59, 0x0b, 0xa1, 0x23, 0xfe, 0x66, 0xe1, 0x81, 0x8e, 0xf8,
		0xe8, 0x88, 0xff, 0xd8, 0x96, 0xa1, 0x23, 0xbe, 0x72, 0x0a, 0x79, 0x55, 0x31, 0xa3, 0x23, 0x7e,
		0x1a, 0x14, 0xb6, 0x74, 0xc5, 0x2d, 0x5d, 0x81, 0xcb, 0x55, 0xe4, 0xe9, 0x0c, 0xd9, 0xa0, 0x23,
		0xbe, 0xa8, 0x53, 0x8b, 0x9c, 0x8e, 0x2d, 0x30, 0x0a, 0xb2, 0x8d, 0x03, 0x19, 0x23, 0x41, 0xc6,
		0x58, 0xd0, 0x30, 0x1a, 0x62, 0x8d, 0x87, 0x60, 0x23, 0x12, 0x6f, 0x31, 0x72, 0x3a, 0x90, 0xd3,
		0x21, 0xf8, 0x83, 0x23, 0xa7, 0x63, 0x41, 0x0e, 0xdc, 0x93, 0x13, 0xd1, 0x84, 0xcb, 0x10, 0x45,
		0x4e, 0x07, 0xb0, 0x4a, 0xd6, 0x47, 0x90, 0xb7, 0x2a, 0x6a, 0x23, 0x5e, 0x0f, 0x5a, 0x74, 0xc4,
		0x07, 0xa3, 0x06, 0xa3, 0x06, 0xa3, 0x06, 0xa3, 0x06, 0xa3, 0x06, 0xa3, 0x06, 0xa3, 0x06, 0xa3,
		0x06, 0x4b, 0x01, 0xa3, 0x06, 0xa3, 0x06, 0x56, 0xc1, 0xa8, 0xc1, 0xa8, 0x5f, 0x02, 0x5a, 0x74,
		0xc4, 0x07, 0x9f, 0x06, 0x9f, 0x06, 0x9f, 0x06, 0x9f, 0x06, 0x9f, 0x06, 0x9f, 0x06, 0x9f, 0x06,
		0x9f, 0x06, 0x47, 0x01, 0x9f, 0x06, 0x9f, 0x06, 0x56, 0xc1, 0xa7, 0xc1, 0xa7, 0x5f, 0xc2, 0xa7,
		0xd1, 0x11, 0x1f, 0x9c, 0x1a, 0x9c, 0x1a, 0x9c, 0x1a, 0x9c, 0x1a, 0x9c, 0x1a, 0x9c, 0x1a, 0x9c,
		0x1a, 0x9c, 0x1a, 0x3c, 0x05, 0x9c, 0x1a, 0x9c, 0x1a, 0x58, 0x05, 0xa7, 0x06, 0xa7, 0x7e, 0x09,
		0x68, 0xd1, 0x11, 0x1f, 0x3c, 0x1a, 0x3c, 0x1a, 0x3c, 0x1a, 0x3c, 0x1a, 0x3c, 0x1a, 0x3c, 0x1a,
		0x3c, 0x1a, 0x3c, 0x1a, 0xdc, 0x04, 0x3c, 0x1a, 0x3c, 0x1a, 0x58, 0x05, 0x8f, 0x56, 0x9e, 0x47,
		0xa3, 0x23, 0xfe, 0x26, 0x22, 0x04, 0x44, 0x7b, 0x6e, 0x3b, 0x0e, 0x3a, 0xe2, 0x07, 0xa1, 0x65,
		0x3a, 0xe8, 0x88, 0x4f, 0xe7, 0xb4, 0xa2, 0x23, 0xfe, 0xed, 0xe9, 0xdc, 0xce, 0x8e, 0xf8, 0xa6,
		0x83, 0x8e, 0xf8, 0xf7, 0x3c, 0x28, 0x27, 0x14, 0xd9, 0x11, 0x3f, 0x44, 0x47, 0xfc, 0x67, 0x2e,
		0x84, 0x8e, 0xf8, 0x9b, 0x85, 0x07, 0x3a, 0xe2, 0xa3, 0x23, 0xfe, 0x63, 0x5b, 0x86, 0x8e, 0xf8,
		0xca, 0x29, 0xe4, 0x55, 0xc5, 0x8c, 0x8e, 0xf8, 0x69, 0x50, 0xd8, 0xd2, 0x15, 0xb7, 0x74, 0x05,
		0x2e, 0x57, 0x91, 0xa7, 0x33, 0x64, 0x83, 0x8e, 0xf8, 0xa2, 0x4e, 0x2d, 0x72, 0x3a, 0xb6, 0xc0,
		0x28, 0xc8, 0x36, 0x0e, 0x64, 0x8c, 0x04, 0x19, 0x63, 0x41, 0xc3, 0x68, 0x88, 0x35, 0x1e, 0x82,
		0x8d, 0x48, 0xbc, 0xc5, 0xc8, 0xe9, 0x40, 0x4e, 0x87, 0xe0, 0x0f, 0x8e, 0x9c, 0x8e, 0x05, 0x39,
		0x70, 0x4f, 0x4e, 0x44, 0x13, 0x2e, 0x43, 0x14, 0x39, 0x1d, 0xc0, 0x2a, 0x59, 0x1f, 0x41, 0xde,
		0xaa, 0xa8, 0x8d, 0x78, 0x3d, 0x68, 0xd1, 0x11, 0x1f, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c,
		0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x2c, 0x05, 0x8c, 0x1a, 0x8c, 0x1a, 0x58,
		0x05, 0xa3, 0x06, 0xa3, 0x7e, 0x09, 0x68, 0xd1, 0x11, 0x1f, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a,
		0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x1c, 0x05, 0x7c, 0x1a, 0x7c, 0x1a,
		0x58, 0x05, 0x9f, 0x06, 0x9f, 0x7e, 0x09, 0x9f, 0x46, 0x47, 0x7c, 0x70, 0x6a, 0x70, 0x6a, 0x70,
		0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0xf0, 0x14, 0x70, 0x6a, 0x70,
		0x6a, 0x60, 0x15, 0x9c, 0x1a, 0x9c, 0xfa, 0x25, 0xa0, 0x45, 0x47, 0x7c, 0xf0, 0x68, 0xf0, 0x68,
		0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0x70, 0x13, 0xf0, 0x68,
		0xf0, 0x68, 0x60, 0x15, 0x3c, 0x5a, 0x79, 0x1e, 0x8d, 0x8e, 0xf8, 0x9b, 0x88, 0x10, 0x50, 0xed,
		0xb9, 0x1d, 0xa2, 0x23, 0x7e, 0x10, 0x5a, 0x66, 0x88, 0x8e, 0xf8, 0x74, 0x4e, 0x2b, 0x3a, 0xe2,
		0xdf, 0x9e, 0xce, 0x2d, 0xed, 0x88, 0x1f, 0xa2, 0x23, 0xfe, 0x3d, 0x0f, 0xca, 0x0d, 0x47, 0xe2,
		0x3a, 0xe2, 0x4f, 0x16, 0x43, 0x47, 0xfc, 0x67, 0x2d, 0x84, 0x8e, 0xf8, 0x9b, 0x85, 0x07, 0x3a,
		0xe2, 0xa3, 0x23, 0xfe, 0x63, 0x5b, 0x86, 0x8e, 0xf8, 0xca, 0x29, 0xe4, 0x55, 0xc5, 0x8c, 0x8e,
		0xf8, 0x69, 0x50, 0xd8, 0xd2, 0x15, 0xb7, 0x74, 0x05, 0x2e, 0x57, 0x91, 0xa7, 0x33, 0x64, 0x83,
		0x8e, 0xf8, 0xa2, 0x4e, 0x2d, 0x72, 0x3a, 0xb6, 0xc0, 0x28, 0xc8, 0x36, 0x0e, 0x64, 0x8c, 0x04,
		0x19, 0x63, 0x41, 0xc3, 0x68, 0x88, 0x35, 0x1e, 0x82, 0x8d, 0x48, 0xbc, 0xc5, 0xc8, 0xe9, 0x40,
		0x4e, 0x87, 0xe0, 0x0f, 0x8e, 0x9c, 0x8e, 0x05, 0x39, 0x70, 0x4f, 0x4e, 0x44, 0x13, 0x2e, 0x43,
		0x14, 0x39, 0x1d, 0xc0, 0x2a, 0x59, 0x1f, 0x41, 0xde, 0xaa, 0xa8, 0x8d, 0x78, 0x3d, 0x68, 0xd1,
		0x11, 0x1f, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a,
		0x8c, 0x1a, 0x2c, 0x05, 0x8c, 0x1a, 0x8c, 0x1a, 0x58, 0x05, 0xa3, 0x06, 0xa3, 0x7e, 0x09, 0x68,
		0xd1, 0x11, 0x1f, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c,
		0x1a, 0x7c, 0x1a, 0x1c, 0x05, 0x7c, 0x1a, 0x7c, 0x1a, 0x58, 0x05, 0x9f, 0x06, 0x9f, 0x7e, 0x09,
		0x9f, 0x46, 0x47, 0x7c, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a,
		0x70, 0x6a, 0x70, 0x6a, 0xf0, 0x14, 0x70, 0x6a, 0x70, 0x6a, 0x60, 0x15, 0x9c, 0x1a, 0x9c, 0xfa,
		0x25, 0xa0, 0x45, 0x47, 0x7c, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0,
		0x68, 0xf0, 0x68, 0xf0, 0x68, 0x70, 0x13, 0xf0, 0x68, 0xf0, 0x68, 0x60, 0x15, 0x3c, 0x5a, 0x79,
		0x1e, 0x8d, 0x8e, 0xf8, 0x9b, 0x88, 0x10, 0x10, 0xed, 0xb9, 0xed, 0x86, 0x23, 0x74, 0xc4, 0x0f,
		0xad, 0x7a, 0x38, 0x42, 0x47, 0x7c, 0x32, 0xa7, 0x15, 0x1d, 0xf1, 0x6f, 0x4f, 0xe7, 0x76, 0x76,
		0xc4, 0xaf, 0x87, 0x23, 0x74, 0xc4, 0x5f, 0x7d, 0x50, 0xa3, 0xd0, 0x13, 0xd8, 0x12, 0x3f, 0x5a,
		0x0d, 0x3d, 0xf1, 0x9f, 0xb5, 0x10, 0x7a, 0xe2, 0x6f, 0x16, 0x1e, 0xe8, 0x89, 0x8f, 0x9e, 0xf8,
		0x8f, 0x6d, 0x19, 0x7a, 0xe2, 0x2b, 0xa7, 0x90, 0x57, 0x15, 0x33, 0x7a, 0xe2, 0xa7, 0x41, 0x61,
		0x4b, 0x57, 0xdc, 0xd2, 0x15, 0xb8, 0x5c, 0x45, 0x9e, 0xce, 0xa0, 0x0d, 0x7a, 0xe2, 0x8b, 0x3a,
		0xb5, 0xc8, 0xea, 0xd8, 0x02, 0xa3, 0x20, 0xdb, 0x38, 0x90, 0x31, 0x12, 0x64, 0x8c, 0x05, 0x0d,
		0xa3, 0x21, 0xd6, 0x78, 0x08, 0x36, 0x22, 0xf1, 0x16, 0x23, 0xab, 0x03, 0x59, 0x1d, 0x82, 0x3f,
		0x38, 0xb2, 0x3a, 0x16, 0xe4, 0xc0, 0x4d, 0x39, 0x11, 0x4d, 0xb8, 0x0c, 0x51, 0x64, 0x75, 0x00,
		0xab, 0x64, 0x7d, 0x04, 0x79, 0xab, 0xa2, 0x3a, 0xe2, 0xf5, 0xa0, 0x45, 0x4f, 0x7c, 0x30, 0x6a,
		0x30, 0x6a, 0x30, 0x6a, 0x30, 0x6a, 0x30, 0x6a, 0x30, 0x6a, 0x30, 0x6a, 0x30, 0x6a, 0xb0, 0x14,
		0x30, 0x6a, 0x30, 0x6a, 0x60, 0x15, 0x8c, 0x1a, 0x8c, 0xfa, 0x25, 0xa0, 0x45, 0x4f, 0x7c, 0xf0,
		0x69, 0xf0, 0x69, 0xf0, 0x69, 0xf0, 0x69, 0xf0, 0x69, 0xf0, 0x69, 0xf0, 0x69, 0xf0, 0x69, 0x70,
		0x14, 0xf0, 0x69, 0xf0, 0x69, 0x60, 0x15, 0x7c, 0x1a, 0x7c, 0xfa, 0x25, 0x7c, 0x1a, 0x3d, 0xf1,
		0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9, 0xc1, 0xa9,
		0xc1, 0x53, 0xc0, 0xa9, 0xc1, 0xa9, 0x81, 0x55, 0x70, 0x6a, 0x70, 0xea, 0x97, 0x80, 0x16, 0x3d,
		0xf1, 0xc1, 0xa3, 0xc1, 0xa3, 0xc1, 0xa3, 0xc1, 0xa3, 0xc1, 0xa3, 0xc1, 0xa3, 0xc1, 0xa3, 0xc1,
		0xa3, 0xc1, 0x4d, 0xc0, 0xa3, 0xc1, 0xa3, 0x81, 0x55, 0xf0, 0x68, 0xe5, 0x79, 0x34, 0x7a, 0xe2,
		0x6f, 0x22, 0x42, 0x40, 0xb4, 0xeb, 0xf6, 0x28, 0xf4, 0xd0, 0x14, 0x3f, 0x08, 0xad, 0x56, 0xe8,
		0xa1, 0x2b, 0x3e, 0x9d, 0xf3, 0x8a, 0xae, 0xf8, 0x0b, 0xe7, 0x73, 0x3b, 0xdb, 0xe2, 0x4f, 0x4e,
		0x24, 0xfa, 0xe2, 0xaf, 0x3e, 0xa9, 0xb1, 0xf7, 0xdd, 0xf3, 0x7f, 0x78, 0xe2, 0x5a, 0xe3, 0xcf,
		0x17, 0x44, 0x77, 0xfc, 0x67, 0x2d, 0x84, 0xee, 0xf8, 0x9b, 0x85, 0x07, 0xba, 0xe3, 0xa3, 0x3b,
		0xfe, 0x63, 0x5b, 0x86, 0xee, 0xf8, 0xca, 0x29, 0xe4, 0x55, 0xc5, 0x8c, 0xee, 0xf8, 0x69, 0x50,
		0xd8, 0xd2, 0x15, 0xb7, 0x74, 0x05, 0x2e, 0x57, 0x91, 0xa7, 0x33, 0x7c, 0x83, 0xee, 0xf8, 0xa2,
		0x4e, 0x2d, 0xf2, 0x3b, 0xb6, 0xc0, 0x28, 0xc8, 0x36, 0x0e, 0x64, 0x8c, 0x04, 0x19, 0x63, 0x41,
		0xc3, 0x68, 0x88, 0x35, 0x1e, 0x82, 0x8d, 0x48, 0xbc, 0xc5, 0xc8, 0xef, 0x40, 0x7e, 0x87, 0xe0,
		0x0f, 0x8e, 0xfc, 0x8e, 0x05, 0x39, 0x70, 0x67, 0x4e, 0x44, 0x13, 0x2e, 0x43, 0x14, 0xf9, 0x1d,
		0xc0, 0x2a, 0x59, 0x1f, 0x41, 0xde, 0xaa, 0xa8, 0x93, 0x78, 0x3d, 0x68, 0xd1, 0x1d, 0x1f, 0x8c,
		0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x8c, 0x1a, 0x2c,
		0x05, 0x8c, 0x1a, 0x8c, 0x1a, 0x58, 0x05, 0xa3, 0x06, 0xa3, 0x7e, 0x09, 0x68, 0xd1, 0x1d, 0x1f,
		0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a, 0x7c, 0x1a,
		0x1c, 0x05, 0x7c, 0x1a, 0x7c, 0x1a, 0x58, 0x05, 0x9f, 0x06, 0x9f, 0x7e, 0x09, 0x9f, 0x46, 0x77,
		0x7c, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70, 0x6a, 0x70,
		0x6a, 0xf0, 0x14, 0x70, 0x6a, 0x70, 0x6a, 0x60, 0x15, 0x9c, 0x1a, 0x9c, 0xfa, 0x25, 0xa0, 0x45,
		0x77, 0x7c, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68, 0xf0, 0x68,
		0xf0, 0x68, 0x70, 0x13, 0xf0, 0x68, 0xf0, 0x68, 0x60, 0x15, 0x3c, 0x5a, 0x79, 0x1e, 0x8d, 0xee,
		0xf8, 0x9b, 0x88, 0x10, 0x10, 0xed, 0xbe, 0x3d, 0x6b, 0x7d, 0x8c, 0x06, 0xf9, 0xa1, 0x75, 0x32,
		0xdd, 0x0a, 0xf4, 0xc8, 0x27, 0x73, 0x6a, 0xd1, 0x23, 0x7f, 0xf9, 0x94, 0x6e, 0x67, 0x9b, 0xfc,
		0xd9, 0xb9, 0x54, 0xb6, 0x53, 0xfe, 0x1b, 0x85, 0x4e, 0x9e, 0xa8, 0x13, 0x47, 0xf5, 0xa4, 0x25,
		0x78, 0xc2, 0xe8, 0x9d, 0xac, 0x64, 0x4e, 0xd4, 0xe6, 0xf1, 0x9e, 0x00, 0xd6, 0x13, 0x6e, 0x6f,
		0x2e, 0xa4, 0x9d, 0x79, 0xc2, 0xed, 0xcb, 0x13, 0x6f, 0x57, 0x2e, 0xe2, 0x4e, 0x45, 0xe0, 0xdd,
		0x89, 0xa8, 0x3b, 0x12, 0xe1, 0x77, 0x21, 0xc2, 0xef, 0x3c, 0xc4, 0xde, 0x6d, 0xa8, 0x65, 0x9f,
		0x93, 0x6e, 0x0f, 0xae, 0x33, 0xcf, 0x3e, 0x73, 0x05, 0x54, 0x5b, 0xc7, 0x27, 0x73, 0xbe, 0x60,
		0xd2, 0x83, 0x33, 0xd8, 0xd0, 0x1e, 0xbb, 0x5c, 0xc8, 0xa5, 0x82, 0x1e, 0x45, 0xdc, 0x92, 0x75,
		0x58, 0x7b, 0x62, 0x86, 0x15, 0x65, 0x31, 0xac, 0x88, 0xb2, 0xd1, 0x11, 0x6d, 0x7c, 0xa4, 0x19,
		0x21, 0x69, 0xc6, 0x48, 0x8e, 0x51, 0x4a, 0x47, 0xf8, 0x46, 0xd8, 0x05, 0x7a, 0x7c, 0xe2, 0xce,
		0x7c, 0xdf, 0x65, 0xb6, 0x90, 0x40, 0xc9, 0xdc, 0xfb, 0xce, 0x61, 0x82, 0xdf, 0xca, 0xde, 0x44,
		0xdc, 0xda, 0xf0, 0xc6, 0x97, 0x67, 0x2c, 0x10, 0xe7, 0x49, 0x2c, 0xad, 0x0a, 0xf3, 0x08, 0xf3,
		0x08, 0xf3, 0x08, 0xf3, 0x08, 0xf3, 0x28, 0x47, 0x43, 0x2e, 0x6a, 0x49, 0x01, 0xc9, 0x19, 0x82,
		0x53, 0xc6, 0x04, 0xde, 0x1c, 0xcb, 0x48, 0x09, 0x8b, 0xf3, 0x6b, 0x72, 0x82, 0x53, 0x2e, 0x65,
		0xa7, 0xd1, 0xc8, 0x4b, 0x9b, 0x11, 0x59, 0xae, 0x20, 0x23, 0x85, 0x2b, 0x86, 0x54, 0x1e, 0x90,
		0x12, 0x05, 0xa9, 0x94, 0xe4, 0x30, 0xf4, 0xc0, 0xb0, 0x56, 0x40, 0x35, 0xb2, 0xc3, 0x70, 0x8a,
		0x29, 0x41, 0xe4, 0x6a, 0xbe, 0x20, 0xc2, 0xb4, 0xcf, 0xc3, 0x2e, 0x78, 0x28, 0x78, 0x28, 0x78,
		0x28, 0x78, 0x28, 0x78, 0x28, 0xc2, 0xb4, 0xe4, 0x9c, 0x88, 0xc0, 0xf1, 0x03, 0x87, 0x5f, 0x0b,
		0xf4, 0x22, 0xe6, 0x2b, 0xc2, 0x2c, 0xc2, 0x2c, 0xc2, 0x2c, 0xc2, 0x2c, 0xc2, 0x2c, 0x2e, 0x9c,
		0xb8, 0xb1, 0xe3, 0xf1, 0x77, 0x88, 0xcb, 0xbe, 0xe2, 0x6b, 0x5b, 0xe2, 0xb2, 0x59, 0x04, 0xd1,
		0x04, 0x7d, 0x6d, 0x4d, 0x5c, 0x36, 0x97, 0x3f, 0x00, 0xa8, 0x44, 0x81, 0x0a, 0x91, 0x59, 0xb9,
		0xa4, 0x0a, 0x35, 0x39, 0xf7, 0xac, 0x43, 0xa5, 0x26, 0x27, 0xe9, 0x5a, 0x54, 0x0a, 0x95, 0x38,
		0x09, 0x16, 0x99, 0xaa, 0x51, 0x80, 0xc3, 0x9d, 0x4b, 0x16, 0x84, 0xc9, 0x57, 0xe0, 0xcc, 0xd6,
		0x51, 0xbc, 0x04, 0x27, 0x8b, 0x12, 0x1c, 0x42, 0x71, 0x04, 0x94, 0xe0, 0x6c, 0xb3, 0x39, 0x4e,
		0xbc, 0x04, 0xa7, 0x3f, 0x3f, 0xf5, 0x82, 0x82, 0xb2, 0xb3, 0xf5, 0xc4, 0x84, 0x64, 0x73, 0x08,
		0xc9, 0x52, 0x56, 0xa1, 0xa2, 0x55, 0xa9, 0x34, 0x95, 0x2a, 0x4d, 0xb5, 0xca, 0x51, 0xb1, 0x62,
		0x38, 0x61, 0xd2, 0x21, 0xd9, 0xa4, 0x55, 0x6f, 0xbc, 0xd0, 0x05, 0x73, 0x5d, 0xdf, 0x88, 0xf8,
		0xc9, 0x95, 0xed, 0x8a, 0x3b, 0x05, 0xf3, 0x83, 0x7e, 0x67, 0x7d, 0x41, 0x88, 0x14, 0xdb, 0xd4,
		0x57, 0x78, 0x33, 0x5f, 0x19, 0x4d, 0x7c, 0x25, 0x36, 0xef, 0x95, 0xd5, 0xb4, 0x57, 0x7a, 0xb3,
		0x5e, 0xe9, 0x4d, 0x7a, 0xe5, 0x36, 0xe7, 0x4d, 0x57, 0xc3, 0x36, 0xe1, 0x4d, 0x78, 0x97, 0x6e,
		0xe3, 0x84, 0x76, 0xde, 0x95, 0xd0, 0x71, 0x57, 0x52, 0xa7, 0x5d, 0x09, 0x2d, 0x95, 0x65, 0x76,
		0xd6, 0x95, 0xdd, 0x51, 0x97, 0x4c, 0x77, 0x52, 0xf9, 0x5d, 0x49, 0x25, 0x74, 0xce, 0x95, 0xda,
		0x31, 0x97, 0x4c, 0xa7, 0x5c, 0x60, 0x50, 0xb0, 0x81, 0x16, 0xbf, 0x5a, 0x2f, 0x2d, 0x3d, 0x33,
		0xdf, 0x8a, 0x22, 0x98, 0x97, 0x63, 0x97, 0x3b, 0x23, 0xd7, 0x61, 0x81, 0x2c, 0x8a, 0xb9, 0x20,
		0x01, 0x48, 0x26, 0x48, 0x26, 0x48, 0x26, 0x48, 0x26, 0x48, 0xa6, 0x60, 0x92, 0xf9, 0x4e, 0x02,
		0xc7, 0x2c, 0x82, 0x63, 0x82, 0x63, 0xc2, 0xbf, 0x07, 0xc7, 0xdc, 0x24, 0xf4, 0xf2, 0x45, 0x90,
		0x4b, 0x90, 0x4b, 0x90, 0x4b, 0x79, 0x2b, 0x60, 0x20, 0x43, 0x32, 0x29, 0xa9, 0xd3, 0x2c, 0xc2,
		0x8c, 0x90, 0x4c, 0x19, 0x8d, 0x48, 0x8a, 0x6a, 0x37, 0xfa, 0xcc, 0xd6, 0x8c, 0x40, 0xa3, 0x7c,
		0xf6, 0x9e, 0x67, 0x94, 0x64, 0x0f, 0xf9, 0x15, 0xaa, 0x20, 0x62, 0x44, 0x8f, 0xf0, 0x2c, 0xad,
		0x3c, 0xb2, 0xb4, 0x14, 0x8a, 0xbe, 0x20, 0x4b, 0x0b, 0x59, 0x5a, 0x8f, 0x6f, 0x19, 0xb2, 0xb4,
		0x44, 0xa8, 0x68, 0x04, 0xd0, 0x95, 0x56, 0xdd, 0xb2, 0x54, 0xb8, 0x74, 0x55, 0x2e, 0x5d, 0xa5,
		0xcb, 0x55, 0xed, 0x62, 0x99, 0x33, 0xb2, 0xb4, 0x12, 0xd3, 0xbf, 0xc8, 0xd2, 0x4a, 0xe0, 0x83,
		0x22, 0x82, 0x8e, 0x20, 0x26, 0xb2, 0xb4, 0x90, 0xa5, 0x85, 0x40, 0x7a, 0x62, 0x5f, 0xc8, 0xd2,
		0x7a, 0x2e, 0xc1, 0x44, 0x96, 0x16, 0x48, 0x26, 0x48, 0x26, 0x48, 0x26, 0x48, 0xe6, 0x36, 0x93,
		0x4c, 0x64, 0x69, 0x81, 0x63, 0x82, 0x63, 0x82, 0x63, 0x2a, 0xcf, 0x31, 0x91, 0xa5, 0x05, 0x72,
		0x09, 0x72, 0x29, 0x73, 0x05, 0x64, 0x69, 0x25, 0x9a, 0xa5, 0x25, 0x22, 0x51, 0x46, 0xa3, 0x95,
		0xa4, 0x95, 0x60, 0x3b, 0xc1, 0xe4, 0x8f, 0x04, 0xba, 0x71, 0xd2, 0x3f, 0x54, 0x29, 0x6f, 0xc7,
		0x39, 0x3d, 0x46, 0xca, 0xf4, 0xe3, 0x7c, 0x43, 0xf8, 0xa0, 0xe8, 0x9f, 0xd9, 0x75, 0xc2, 0xb3,
		0x46, 0xf5, 0xba, 0x13, 0xf2, 0x0a, 0xe7, 0xc9, 0xc4, 0x63, 0x27, 0x04, 0xb1, 0xe6, 0xb2, 0x4b,
		0xe6, 0x25, 0xe5, 0xa3, 0x4e, 0x78, 0xc0, 0xc2, 0x0a, 0xb9, 0x77, 0x85, 0x42, 0xe9, 0xa0, 0x50,
		0xc8, 0x1e, 0xec, 0x1f, 0x64, 0x0f, 0x8b, 0xc5, 0x5c, 0x29, 0x97, 0x80, 0x87, 0xae, 0x37, 0x83,
		0x01, 0x0b, 0xd8, 0xe0, 0xfd, 0xe4, 0xe9, 0x78, 0x63, 0xd7, 0x4d, 0x72, 0x89, 0x93, 0x30, 0x0a,
		0x96, 0x6f, 0xde, 0xb9, 0xde, 0x34, 0x58, 0x13, 0xd6, 0xe6, 0x54, 0xb4, 0x78, 0x02, 0xea, 0x9b,
		0x80, 0xda, 0xde, 0xac, 0xbe, 0xde, 0x9c, 0x56, 0xdd, 0xcc, 0x6f, 0xda, 0x10, 0xd4, 0x93, 0x82,
		0xb8, 0x7c, 0x68, 0x6f, 0x10, 0xd4, 0x52, 0xc1, 0xbc, 0x19, 0x18, 0xbf, 0x1e, 0x74, 0x1b, 0x00,
		0x9c, 0x7e, 0x39, 0x72, 0x37, 0xd7, 0xd4, 0x3b, 0x8e, 0xbf, 0x47, 0xbf, 0x75, 0x43, 0xc7, 0x61,
		0xb3, 0x15, 0x0e, 0x1b, 0xbf, 0xb9, 0x4c, 0xe2, 0x66, 0x32, 0xc1, 0x9b, 0xc7, 0xa4, 0x6e, 0x16,
		0x13, 0xbf, 0x39, 0x4c, 0xfc, 0x66, 0x30, 0xd9, 0x9b, 0x3f, 0x5a, 0x26, 0x66, 0xd3, 0x19, 0xff,
		0xba, 0x73, 0x3e, 0x32, 0xdc, 0xc1, 0xc8, 0x08, 0xaf, 0xbd, 0xfe, 0xe6, 0xb1, 0x35, 0x3f, 0x0e,
		0x4b, 0xab, 0x6c, 0x9a, 0x05, 0x25, 0x52, 0x48, 0x95, 0x58, 0xa2, 0x44, 0x92, 0x09, 0x11, 0x02,
		0x12, 0x1f, 0x92, 0x4e, 0x70, 0x10, 0x96, 0xc8, 0x20, 0x2c, 0x61, 0x41, 0x4c, 0x62, 0x02, 0xed,
		0x48, 0x45, 0x52, 0x85, 0x4a, 0x49, 0x77, 0xf0, 0x17, 0xd3, 0xb9, 0x1f, 0xc3, 0x4d, 0x48, 0xa8,
		0x36, 0x51, 0x2a, 0x4e, 0xb8, 0xaa, 0x13, 0xae, 0xf2, 0xc4, 0xaa, 0xbe, 0x64, 0x54, 0x60, 0x42,
		0xaa, 0x30, 0x71, 0x95, 0x18, 0x2f, 0xc0, 0x3c, 0xfb, 0xcc, 0x65, 0x03, 0x71, 0x65, 0xf3, 0xf3,
		0x05, 0x93, 0x2e, 0x7a, 0x65, 0x43, 0x7b, 0xec, 0x72, 0x21, 0x09, 0x54, 0xfa, 0xe4, 0x8c, 0x24,
		0x7b, 0xdb, 0xd7, 0xc3, 0x80, 0x6e, 0x6a, 0xb6, 0x46, 0x82, 0xcd, 0x11, 0x6d, 0x7b, 0xa4, 0xd9,
		0x20, 0x69, 0xb6, 0x48, 0x8e, 0x4d, 0x4a, 0xd6, 0x36, 0x25, 0x6c, 0xa3, 0xe2, 0x2d, 0x13, 0x3f,
		0xa0, 0xfb, 0xcc, 0xf7, 0x5d, 0x66, 0x7b, 0x02, 0x47, 0x74, 0xe7, 0x72, 0x4a, 0x3f, 0x22, 0xf6,
		0x93, 0x07, 0xb6, 0x31, 0xf6, 0x42, 0x3e, 0x31, 0xc2, 0x62, 0x1e, 0x56, 0xc0, 0x86, 0x2c, 0x60,
		0x5e, 0x3f, 0x95, 0x53, 0xc7, 0xe7, 0x48, 0x6c, 0x7f, 0x38, 0x2a, 0x16, 0x0a, 0xfb, 0x65, 0xad,
		0x5e, 0x6d, 0x69, 0xe6, 0xc7, 0x96, 0xd6, 0xb9, 0xf6, 0xfa, 0x17, 0x81, 0xef, 0x39, 0xff, 0x5f,
		0x74, 0xd5, 0xb3, 0xb7, 0x65, 0xd5, 0x25, 0xb7, 0x0f, 0x7d, 0x9b, 0x0b, 0x4c, 0x1e, 0x47, 0x05,
		0x46, 0x5c, 0x3f, 0xd7, 0x11, 0x46, 0xe3, 0xb3, 0x15, 0xc8, 0x8d, 0xfc, 0x90, 0x1b, 0x21, 0x0b,
		0x43, 0xc7, 0xf7, 0x8c, 0xf1, 0xc8, 0x18, 0x30, 0xd7, 0xbe, 0x16, 0xc7, 0xe8, 0xee, 0x5f, 0x1e,
		0x84, 0x05, 0x84, 0x05, 0x84, 0x05, 0x84, 0x05, 0x84, 0xe5, 0x4e, 0xe1, 0x62, 0xae, 0x24, 0x90,
		0xaf, 0x94, 0x04, 0x2c, 0x25, 0xb6, 0x52, 0x51, 0xa0, 0x73, 0x2f, 0xa3, 0x32, 0x51, 0x56, 0x45,
		0xa2, 0xf4, 0x62, 0x30, 0x79, 0x45, 0x60, 0x02, 0x2b, 0x0f, 0xa5, 0x54, 0x1c, 0xc6, 0x90, 0x2a,
		0x15, 0x8b, 0xfb, 0x45, 0xc0, 0x0a, 0x8c, 0x6b, 0x3b, 0x18, 0x17, 0xca, 0x98, 0xee, 0x59, 0x47,
		0x62, 0x96, 0xf0, 0xe5, 0xc8, 0x0d, 0x33, 0x8b, 0x39, 0x5e, 0xc9, 0xf7, 0x6f, 0x97, 0x94, 0x47,
		0x7c, 0x3c, 0x72, 0x43, 0xcb, 0x3c, 0x1f, 0xd5, 0x07, 0xa3, 0xce, 0xb5, 0xd7, 0x4f, 0xb4, 0x67,
		0x7b, 0x02, 0xe5, 0x4c, 0x89, 0x14, 0x27, 0x24, 0xd9, 0x9b, 0x5d, 0x48, 0x4f, 0x76, 0x61, 0xf9,
		0x37, 0x79, 0xe4, 0xdf, 0x10, 0x0a, 0x29, 0x20, 0xff, 0x66, 0x9b, 0xcd, 0x32, 0xf2, 0x6f, 0x5e,
		0xba, 0x71, 0xc8, 0xbf, 0x79, 0x81, 0x6d, 0x41, 0x38, 0x9b, 0xb4, 0xcd, 0x11, 0x6d, 0x7b, 0xa4,
		0xd9, 0x20, 0x69, 0xb6, 0x48, 0x8e, 0x4d, 0x12, 0x43, 0xa6, 0x91, 0x7f, 0xb3, 0x01, 0xe7, 0x1b,
		0xf9, 0x37, 0xcf, 0x5d, 0x13, 0xf9, 0x37, 0xc8, 0xbf, 0x11, 0x27, 0x03, 0xf2, 0x6f, 0x64, 0x98,
		0x16, 0x71, 0xab, 0x20, 0xff, 0x66, 0x15, 0x72, 0xc8, 0xbf, 0x01, 0x61, 0x01, 0x61, 0x01, 0x61,
		0x01, 0x61, 0xa1, 0x4e, 0x58, 0x90, 0x7f, 0xa3, 0x92, 0x73, 0x8f, 0xfc, 0x1b, 0x91, 0x02, 0x20,
		0xff, 0x26, 0x69, 0x48, 0x21, 0xff, 0x06, 0xf9, 0x37, 0x5b, 0xc4, 0xb8, 0x90, 0x7f, 0x73, 0xcf,
		0x3a, 0xa4, 0xf2, 0x6f, 0x92, 0xee, 0xcc, 0x4d, 0x24, 0xfd, 0x26, 0xc1, 0x6e, 0xdc, 0xdb, 0xd6,
		0x4c, 0x38, 0xc5, 0xfd, 0x59, 0x57, 0x8e, 0x47, 0x7a, 0x9a, 0xb4, 0xde, 0x39, 0x10, 0xe8, 0xd3,
		0x2a, 0x11, 0xea, 0xb2, 0x21, 0xae, 0x7e, 0x97, 0xd6, 0x09, 0x9a, 0xd3, 0xd4, 0xa3, 0x75, 0xb3,
		0xb9, 0x91, 0x89, 0xe4, 0x42, 0x26, 0xd6, 0xa5, 0x35, 0x8f, 0x2e, 0xad, 0x1b, 0x8d, 0x3a, 0xa1,
		0x4b, 0xab, 0x3a, 0x06, 0x66, 0xe3, 0x5d, 0x5a, 0xfb, 0x4e, 0xd0, 0x1f, 0x3b, 0xdc, 0xe0, 0x49,
		0xc4, 0x55, 0x6f, 0x9b, 0x1c, 0x2e, 0xae, 0x92, 0x4c, 0x97, 0xd6, 0x2c, 0xba, 0xb4, 0xa2, 0x4b,
		0x2b, 0x25, 0xb5, 0x24, 0x46, 0x3d, 0xa9, 0x41, 0x01, 0x13, 0xbb, 0xb5, 0x11, 0xa1, 0x61, 0x96,
		0x9c, 0x99, 0x42, 0x02, 0xbf, 0xbb, 0xe6, 0x8d, 0x2f, 0x93, 0x3b, 0x50, 0x5d, 0xbf, 0xc3, 0x03,
		0xc7, 0x3b, 0x4f, 0x36, 0x46, 0x95, 0x9d, 0x3c, 0x84, 0x56, 0xd3, 0x6c, 0x74, 0xad, 0x6e, 0xd3,
		0x8a, 0x5e, 0x24, 0x19, 0x24, 0xca, 0x4d, 0x96, 0x7b, 0xdf, 0x6e, 0x56, 0xaa, 0x47, 0x95, 0x4e,
		0x57, 0x57, 0x2a, 0x6c, 0xd8, 0xf5, 0xcd, 0x48, 0x19, 0x24, 0xf8, 0x34, 0x6e, 0x77, 0x26, 0xb1,
		0xda, 0xa3, 0xa9, 0x2d, 0x5b, 0x7e, 0xe0, 0x65, 0x2d, 0xbb, 0x9d, 0x11, 0xb3, 0x37, 0x04, 0x31,
		0x97, 0x58, 0x99, 0x48, 0xc2, 0x65, 0x21, 0x89, 0x96, 0x81, 0xe8, 0xd1, 0x7d, 0xd2, 0x66, 0xf5,
		0x45, 0x0f, 0x0e, 0x2d, 0x1c, 0x5a, 0x38, 0xb4, 0x70, 0x68, 0x37, 0x8a, 0xf8, 0xe4, 0xea, 0x24,
		0x12, 0xaa, 0x8b, 0xa0, 0x69, 0x04, 0x2f, 0x98, 0xeb, 0xfa, 0xc6, 0xc8, 0x1e, 0x0c, 0x92, 0x70,
		0x81, 0xe3, 0xa7, 0xb5, 0xbc, 0x0c, 0x0c, 0x02, 0x0c, 0x02, 0x0c, 0x02, 0x0c, 0x42, 0x72, 0x2a,
		0x06, 0x71, 0x0e, 0x99, 0x71, 0x8e, 0x4e, 0xb7, 0x6d, 0x1e, 0x25, 0x1f, 0xdf, 0xa8, 0x37, 0x9b,
		0x9d, 0x5a, 0x92, 0xab, 0xe4, 0x27, 0xab, 0x54, 0xaa, 0x95, 0x56, 0xd7, 0xfc, 0x92, 0xe8, 0x42,
		0xfb, 0x93, 0x85, 0xaa, 0x66, 0xa7, 0xf2, 0xbe, 0x5e, 0x43, 0xb0, 0xe6, 0xae, 0xf6, 0x9c, 0x3f,
		0x80, 0xc4, 0xda, 0xb8, 0x4c, 0x69, 0xf5, 0x6c, 0xfb, 0xcb, 0xda, 0x7e, 0x82, 0xab, 0x4c, 0x31,
		0x9b, 0x6c, 0xd4, 0x69, 0x76, 0xfc, 0x10, 0x6d, 0xa2, 0xe4, 0x68, 0xc7, 0x19, 0x23, 0x86, 0x93,
		0x60, 0xc8, 0x69, 0x69, 0x15, 0xb8, 0xd9, 0x70, 0xb3, 0xe1, 0x66, 0xc3, 0xcd, 0x56, 0x45, 0xc3,
		0x2c, 0x39, 0xd8, 0xef, 0xb6, 0xc0, 0x26, 0x8c, 0xec, 0x30, 0x9c, 0x96, 0x71, 0x24, 0x64, 0x0e,
		0xe6, 0x0b, 0xe0, 0x06, 0x02, 0x96, 0x10, 0x96, 0x10, 0x96, 0x10, 0x96, 0x70, 0x83, 0x88, 0xdf,
		0xe6, 0x1b, 0x08, 0x54, 0x15, 0x24, 0x5b, 0x55, 0xb0, 0xe9, 0x2a, 0x32, 0x49, 0x65, 0x05, 0x1b,
		0xac, 0x12, 0xa3, 0x51, 0x57, 0xc0, 0x9d, 0x4b, 0x16, 0x84, 0x9b, 0x2f, 0x2c, 0x98, 0xfd, 0x5e,
		0xe2, 0x95, 0x05, 0x59, 0x54, 0x16, 0xa8, 0xe4, 0x77, 0xa0, 0xb2, 0x80, 0x74, 0x65, 0xc1, 0xfc,
		0x54, 0x25, 0x55, 0x53, 0x90, 0xc4, 0x20, 0x80, 0x84, 0x1a, 0xb6, 0x83, 0xfa, 0x80, 0xfa, 0x80,
		0xfa, 0x6c, 0x2c, 0x3c, 0x93, 0x50, 0x83, 0x75, 0xbd, 0x1f, 0x7a, 0x23, 0x23, 0x72, 0x52, 0xaf,
		0x6c, 0x37, 0xf9, 0xc9, 0x13, 0xcb, 0xcb, 0x25, 0x3b, 0x81, 0x22, 0x9b, 0xf4, 0x04, 0x8a, 0x2c,
		0x26, 0x50, 0x10, 0x50, 0x78, 0xc2, 0x15, 0x9f, 0x70, 0x05, 0x28, 0x56, 0x11, 0x26, 0xa3, 0x10,
		0x13, 0x52, 0x8c, 0xc9, 0xc7, 0x86, 0x56, 0x4e, 0x4c, 0xe2, 0xcd, 0xf1, 0x04, 0x34, 0xc5, 0x13,
		0xd4, 0x0c, 0x4f, 0x40, 0xcb, 0x42, 0x91, 0xcd, 0xef, 0x44, 0x37, 0xbd, 0x93, 0xd6, 0x95, 0x4c,
		0x7c, 0x37, 0x32, 0x01, 0xcd, 0xed, 0x84, 0x36, 0xb5, 0x93, 0xd1, 0xcc, 0x6e, 0x9b, 0xe0, 0xa2,
		0x68, 0xb3, 0xb7, 0xde, 0x16, 0xcf, 0xb6, 0x73, 0xc3, 0x91, 0x31, 0xb2, 0xfb, 0x8e, 0x77, 0x2e,
		0x90, 0x6f, 0xdc, 0xb7, 0x28, 0x58, 0x07, 0x58, 0x07, 0x58, 0x07, 0x58, 0x87, 0x72, 0xac, 0xa3,
		0x54, 0x10, 0xc0, 0x3a, 0xde, 0x81, 0x75, 0x80, 0x75, 0x80, 0x75, 0xa8, 0xcd, 0x3a, 0x72, 0xef,
		0x0a, 0x85, 0xd2, 0x41, 0xa1, 0x90, 0x3d, 0xd8, 0x3f, 0xc8, 0x1e, 0x16, 0x8b, 0xb9, 0x52, 0x0e,
		0x24, 0x04, 0x24, 0x44, 0x31, 0x12, 0x82, 0x16, 0xbf, 0x72, 0x32, 0x95, 0xa6, 0x99, 0x2b, 0xc9,
		0x8d, 0x9d, 0x97, 0x94, 0xb9, 0xd4, 0x8d, 0x3e, 0x56, 0x22, 0x53, 0xe6, 0x69, 0xe6, 0xa2, 0x27,
		0x33, 0x4d, 0x3e, 0xd1, 0x29, 0xf2, 0x89, 0x27, 0x23, 0xe4, 0x91, 0x8c, 0x20, 0x90, 0x25, 0x23,
		0x19, 0x21, 0x8d, 0xa6, 0x0f, 0xc9, 0x08, 0xcf, 0x57, 0x68, 0x08, 0x0b, 0x4a, 0x55, 0x74, 0xa2,
		0x14, 0x9e, 0x70, 0xc5, 0x27, 0x5c, 0x01, 0x8a, 0x55, 0x84, 0xc9, 0xb2, 0x21, 0x24, 0x23, 0x3c,
		0x59, 0x7f, 0x21, 0x19, 0xe1, 0x29, 0xb1, 0x1e, 0x84, 0x05, 0x53, 0x11, 0xd8, 0x41, 0x32, 0x02,
		0xe0, 0x42, 0x21, 0x52, 0xa7, 0x21, 0x0e, 0x88, 0x64, 0x04, 0xb0, 0x0e, 0xb0, 0x0e, 0xb0, 0x0e,
		0xb0, 0x0e, 0x62, 0xac, 0x03, 0xc9, 0x08, 0x60, 0x1d, 0x70, 0x23, 0xc1, 0x3a, 0x1e, 0x87, 0x0a,
		0x92, 0x11, 0x40, 0x42, 0xd4, 0x27, 0x21, 0x48, 0x46, 0x90, 0x9a, 0x8c, 0x90, 0xd4, 0x0c, 0x6e,
		0xb9, 0xb9, 0x08, 0x09, 0x8c, 0xdc, 0x46, 0x47, 0x20, 0xc5, 0xa0, 0xad, 0x7e, 0x4b, 0xa0, 0x29,
		0x98, 0xd3, 0xd4, 0x13, 0xe8, 0x07, 0x73, 0xce, 0x2f, 0x38, 0x1b, 0x18, 0xac, 0x7f, 0x39, 0xda,
		0x7c, 0x6b, 0xa0, 0xe5, 0x5f, 0x8f, 0x0e, 0x41, 0x04, 0x43, 0x38, 0xe8, 0x10, 0x24, 0x27, 0x04,
		0x83, 0x0e, 0x41, 0xaf, 0x3a, 0x08, 0xe8, 0x10, 0x84, 0xa4, 0x3c, 0xe9, 0x2a, 0x48, 0x98, 0x2a,
		0x12, 0xa3, 0x92, 0xd4, 0xa0, 0x80, 0x89, 0x25, 0xe5, 0xb9, 0xbe, 0x3d, 0x30, 0xce, 0x6c, 0xd7,
		0xf6, 0xa2, 0x9b, 0xab, 0xa9, 0xef, 0x22, 0xe0, 0xb2, 0xec, 0xde, 0x65, 0x13, 0xc2, 0x4f, 0x92,
		0xdd, 0xaf, 0xe3, 0x45, 0xec, 0x31, 0xf7, 0x93, 0xb9, 0xab, 0xe8, 0xe1, 0x16, 0x51, 0xb4, 0x1d,
		0x10, 0x68, 0x0f, 0x44, 0xd9, 0x05, 0xe1, 0xf6, 0x41, 0xb8, 0x9d, 0x10, 0x6b, 0x2f, 0x92, 0x0b,
		0x46, 0x6a, 0xe9, 0xb8, 0x45, 0xf4, 0x1c, 0xdf, 0x13, 0x70, 0x89, 0x98, 0x3b, 0x4c, 0x70, 0x8d,
		0xd9, 0x76, 0x29, 0x7f, 0x89, 0xb8, 0x78, 0xb5, 0xbb, 0x9f, 0xd7, 0x05, 0xdc, 0x45, 0xcd, 0x9e,
		0xce, 0x81, 0x80, 0xa5, 0xc4, 0x5c, 0xf5, 0x8a, 0x7b, 0x5a, 0xf1, 0x07, 0x13, 0x79, 0xf5, 0x1b,
		0x2f, 0x1a, 0xdf, 0xeb, 0xbd, 0x15, 0xbb, 0xae, 0xac, 0xcb, 0xbc, 0xdb, 0x33, 0x22, 0xfa, 0x52,
		0x2f, 0x61, 0x5d, 0x7f, 0x3f, 0xa4, 0x04, 0x5e, 0x11, 0xaf, 0x40, 0xaa, 0x90, 0x3f, 0x2c, 0x1c,
		0x96, 0x0e, 0xf2, 0x87, 0x45, 0x60, 0x4b, 0x14, 0xb6, 0xde, 0xa4, 0x63, 0x95, 0xde, 0x1b, 0x85,
		0x4f, 0xa0, 0x40, 0x03, 0xcf, 0xbc, 0xf1, 0x25, 0x0b, 0xa6, 0x17, 0x69, 0xe2, 0xac, 0x7c, 0x12,
		0xc3, 0x75, 0x57, 0xd6, 0x4a, 0x74, 0xd8, 0xee, 0xaa, 0xe7, 0x27, 0x62, 0xf8, 0xee, 0xca, 0xaa,
		0xd1, 0x30, 0xde, 0x28, 0x92, 0x20, 0xd0, 0x26, 0x44, 0xa3, 0x79, 0x3d, 0xdf, 0x63, 0xfa, 0x9b,
		0x14, 0x99, 0x3b, 0x01, 0x83, 0x6e, 0xef, 0x8f, 0x01, 0x09, 0xb5, 0x2e, 0xd3, 0xe7, 0x56, 0xd6,
		0x72, 0x29, 0xd1, 0xf3, 0x48, 0x74, 0x4a, 0x56, 0x5e, 0x24, 0x3a, 0x49, 0xca, 0x06, 0x59, 0x4a,
		0x0a, 0x48, 0x5d, 0xf3, 0x95, 0xff, 0xcc, 0x3e, 0x5d, 0xad, 0x7f, 0x39, 0x42, 0x0b, 0x96, 0x4d,
		0x39, 0x73, 0x68, 0xc1, 0x82, 0xdb, 0xde, 0x47, 0x1f, 0x27, 0x6e, 0x7b, 0xd3, 0x67, 0x07, 0x71,
		0xdb, 0xfb, 0x9a, 0xcd, 0xc3, 0x6d, 0xef, 0x03, 0x7a, 0x1f, 0xb7, 0xbd, 0x52, 0xed, 0x81, 0x28,
		0xbb, 0x20, 0xdc, 0x3e, 0x08, 0xb7, 0x13, 0x62, 0xed, 0x45, 0xb2, 0x0c, 0x12, 0xb7, 0xbd, 0x4f,
		0x76, 0x5b, 0x71, 0xdb, 0xfb, 0x8c, 0x87, 0x82, 0xdb, 0x5e, 0xfa, 0x4f, 0x2b, 0xfe, 0x60, 0xb8,
		0xed, 0x15, 0x29, 0x00, 0x6e, 0x7b, 0x93, 0x86, 0x14, 0x6e, 0x7b, 0x71, 0xdb, 0xfb, 0x52, 0x0e,
		0x84, 0xdb, 0xde, 0x27, 0x19, 0x78, 0xdc, 0xf6, 0x6e, 0xca, 0xf3, 0xc3, 0x6d, 0xaf, 0xda, 0xe6,
		0x0e, 0xb7, 0xbd, 0x2a, 0xea, 0x79, 0xdc, 0xf6, 0x26, 0x2b, 0x2f, 0x6e, 0x7b, 0x49, 0xdc, 0xf6,
		0xa6, 0xac, 0xbb, 0xc5, 0xd2, 0x65, 0x2f, 0x7a, 0x5c, 0xc8, 0xc6, 0x3b, 0x19, 0x9c, 0xab, 0xdf,
		0xea, 0x62, 0x11, 0xd9, 0x64, 0x1a, 0x5e, 0xbc, 0x91, 0x88, 0x5d, 0xfd, 0x33, 0xbb, 0x9e, 0x3c,
		0x80, 0xf8, 0x89, 0x1b, 0xce, 0xe0, 0x95, 0x8f, 0x59, 0xaf, 0x3b, 0x21, 0xaf, 0x70, 0xbe, 0x99,
		0x1b, 0x4e, 0xfd, 0xd8, 0xf1, 0x6a, 0x2e, 0xbb, 0x64, 0xde, 0xa6, 0x98, 0xbe, 0x7e, 0x6c, 0xff,
		0x5c, 0xf8, 0x8d, 0xc9, 0xb4, 0x37, 0xd3, 0x9b, 0xc1, 0x80, 0x05, 0x6c, 0xf0, 0x7e, 0xb2, 0xbb,
		0xde, 0xd8, 0x75, 0x37, 0xf9, 0x2b, 0x4f, 0x42, 0x16, 0x6c, 0x24, 0xf4, 0xf0, 0x5a, 0xf0, 0x6c,
		0x58, 0xe1, 0x49, 0x54, 0x74, 0x1b, 0x50, 0x6d, 0x72, 0x54, 0xda, 0xeb, 0xb4, 0xd8, 0xcb, 0x75,
		0xcf, 0xcb, 0x7e, 0xf2, 0x85, 0x80, 0xdb, 0x14, 0xd0, 0x84, 0x03, 0xec, 0x15, 0xb0, 0x12, 0x09,
		0xa7, 0x97, 0x81, 0xe8, 0xf9, 0x10, 0x78, 0xc1, 0xe3, 0xd7, 0x5d, 0x76, 0xc5, 0xdc, 0xf0, 0xc5,
		0x8f, 0xfd, 0x36, 0x45, 0x65, 0xfa, 0x7b, 0x5e, 0x08, 0xc0, 0xd7, 0x25, 0xd5, 0xbd, 0x3a, 0x79,
		0x62, 0x13, 0xc9, 0x11, 0x1b, 0x4c, 0x7e, 0xd8, 0x54, 0x72, 0xc3, 0xc6, 0x93, 0x17, 0x36, 0x9e,
		0x9c, 0xb0, 0xd9, 0xe4, 0x03, 0xb1, 0x4a, 0xf3, 0xb5, 0x49, 0x66, 0xd3, 0x23, 0xf3, 0xfa, 0x87,
		0xbc, 0x74, 0x02, 0x5f, 0xfb, 0x80, 0x37, 0x93, 0xdd, 0xba, 0xb1, 0x6c, 0xa6, 0x4d, 0x66, 0x2d,
		0x25, 0x90, 0x9d, 0xb4, 0xe9, 0x2c, 0xa4, 0xc4, 0xb2, 0x8d, 0x12, 0xcb, 0x2a, 0x4a, 0x26, 0x7b,
		0x48, 0x2e, 0x67, 0xdb, 0x54, 0xf6, 0xa8, 0x6e, 0x8f, 0xf9, 0x05, 0xf3, 0xb8, 0xd3, 0xdf, 0x6c,
		0xd0, 0x22, 0x06, 0xf2, 0x9d, 0xdf, 0x8f, 0x4e, 0x89, 0x84, 0x54, 0x43, 0x52, 0x2a, 0x22, 0x71,
		0x55, 0x91, 0xb8, 0xca, 0x48, 0x56, 0x75, 0xd0, 0x0c, 0x5d, 0xa2, 0x53, 0xa2, 0x86, 0x4e, 0x89,
		0xa2, 0x54, 0x4e, 0xd2, 0xaa, 0x47, 0x98, 0x0a, 0x12, 0xa6, 0x8a, 0xc4, 0xa8, 0xa4, 0xcd, 0xaa,
		0xa6, 0x0d, 0xab, 0xa8, 0xc4, 0x54, 0xd5, 0x92, 0x37, 0x64, 0x5c, 0xfa, 0x03, 0x96, 0x7c, 0xbd,
		0xcc, 0xed, 0x52, 0x28, 0x06, 0x11, 0xad, 0xd8, 0x04, 0x2a, 0x38, 0x51, 0x8a, 0x4e, 0xb8, 0xc2,
		0x13, 0xae, 0xf8, 0xc4, 0x2a, 0xc0, 0x64, 0x14, 0x61, 0x42, 0x0a, 0x31, 0xde, 0x1a, 0x71, 0xc5,
		0x20, 0xce, 0x60, 0xc2, 0xea, 0xf8, 0x75, 0xc0, 0x86, 0x22, 0x4a, 0x42, 0x12, 0xcc, 0x2f, 0xd6,
		0xcd, 0xd9, 0x47, 0x79, 0x6f, 0x87, 0x02, 0xce, 0xe7, 0x7c, 0x03, 0x2b, 0x27, 0xdd, 0x4f, 0xd6,
		0x71, 0xb3, 0x5a, 0x4b, 0xfa, 0x7c, 0x46, 0xb9, 0xda, 0xa1, 0x90, 0x6a, 0x0a, 0x41, 0x99, 0x9c,
		0xf3, 0x2d, 0x3c, 0xae, 0x16, 0xf5, 0x34, 0x0c, 0xf5, 0x12, 0xbc, 0x6d, 0xdd, 0xda, 0xd7, 0xae,
		0xae, 0x78, 0xde, 0x5f, 0x4f, 0x35, 0x85, 0xaf, 0xc4, 0x4c, 0xdd, 0xc8, 0x27, 0x1d, 0xd9, 0x61,
		0x38, 0xf3, 0x20, 0x44, 0xb8, 0xc0, 0xf1, 0x72, 0x70, 0x83, 0xe1, 0x06, 0xc3, 0x0d, 0x86, 0x1b,
		0xac, 0x94, 0x1b, 0x1c, 0xf8, 0x63, 0xee, 0x78, 0xe7, 0x49, 0x6b, 0xb1, 0x25, 0x5f, 0xf8, 0xdd,
		0xb6, 0x5b, 0x28, 0x9e, 0xe4, 0xe3, 0x5d, 0xb6, 0x4e, 0xd1, 0x52, 0xb0, 0x4c, 0xb0, 0x4c, 0xb0,
		0x4c, 0xb0, 0x4c, 0x08, 0xd0, 0x6c, 0x5d, 0x80, 0xa6, 0xfb, 0x57, 0x0b, 0x01, 0x9a, 0x17, 0x6f,
		0xe1, 0xe7, 0xda, 0x5f, 0x47, 0x9f, 0x2a, 0x66, 0x03, 0x51, 0x9a, 0xe7, 0xef, 0x5d, 0xc7, 0x3c,
		0x6e, 0xd5, 0x6b, 0xd6, 0xe7, 0xda, 0x5f, 0x88, 0xd5, 0x20, 0x56, 0xb3, 0x8a, 0x93, 0x81, 0x13,
		0xda, 0x67, 0x2e, 0x33, 0xfa, 0xa1, 0x37, 0x4a, 0xde, 0x19, 0x5e, 0x5a, 0x4d, 0xe5, 0xa6, 0x7e,
		0x51, 0xc5, 0x0c, 0xba, 0xfa, 0x81, 0x27, 0x80, 0x27, 0x80, 0x27, 0x80, 0x27, 0x68, 0xfa, 0x99,
		0xef, 0xbb, 0xcc, 0x16, 0xd2, 0xd7, 0x2f, 0x07, 0x73, 0x6d, 0xb8, 0xa1, 0x40, 0x6b, 0x3d, 0x59,
		0x0c, 0xc6, 0x1a, 0xc6, 0x1a, 0xc6, 0x1a, 0xc6, 0x1a, 0xc6, 0x1a, 0xc6, 0x1a, 0xc6, 0xfa, 0x79,
		0xc6, 0x7a, 0x24, 0x94, 0x5b, 0x8f, 0xc0, 0xad, 0x61, 0xae, 0x61, 0xae, 0x61, 0xae, 0x61, 0xae,
		0x61, 0xae, 0x61, 0xae, 0x9f, 0xbe, 0x07, 0xcc, 0x9b, 0xd8, 0x4f, 0x01, 0x09, 0x8b, 0xf3, 0x85,
		0x60, 0xa4, 0x61, 0xa4, 0x61, 0xa4, 0x61, 0xa4, 0x61, 0xa4, 0x61, 0xa4, 0x61, 0xa4, 0x9f, 0xb6,
		0x07, 0xdf, 0xd9, 0x75, 0xff, 0xc2, 0x4e, 0x70, 0xfe, 0x49, 0xfc, 0x40, 0xe3, 0x95, 0x60, 0x8e,
		0x60, 0x8e, 0x60, 0x8e, 0x60, 0x8e, 0x94, 0x32, 0x47, 0x73, 0xed, 0x65, 0x08, 0x4a, 0xdc, 0x4c,
		0x70, 0x9e, 0x97, 0xde, 0x8a, 0xbb, 0x6c, 0xf6, 0x8d, 0xf9, 0xe7, 0x2a, 0xcf, 0x5f, 0x84, 0xf7,
		0xbe, 0xbb, 0xf4, 0xe6, 0xb4, 0xc3, 0xcb, 0xd2, 0x5b, 0x51, 0x33, 0x4c, 0xb4, 0xe6, 0xdf, 0xc4,
		0x69, 0x4f, 0x45, 0x6b, 0xfe, 0x69, 0x4f, 0xcf, 0xe9, 0xb7, 0xcc, 0x72, 0xb3, 0x31, 0x95, 0x27,
		0xb0, 0xd7, 0xa3, 0x8f, 0x35, 0xfd, 0x66, 0x55, 0x96, 0x3e, 0x16, 0x66, 0xaf, 0x6f, 0x4a, 0xd5,
		0x62, 0xf6, 0x3a, 0xfa, 0x47, 0x51, 0xf1, 0xfa, 0xd0, 0x3f, 0x4a, 0xa0, 0xe9, 0x43, 0xff, 0x28,
		0xd0, 0x5c, 0xd0, 0x5c, 0xd0, 0x5c, 0xd0, 0x5c, 0x69, 0x34, 0x17, 0xe5, 0x89, 0xaf, 0xdc, 0x40,
		0xf4, 0x8f, 0x7a, 0xf5, 0x16, 0xa2, 0x7f, 0xd4, 0x8b, 0xb6, 0x0d, 0xfd, 0xa3, 0x24, 0x28, 0x7c,
		0xf4, 0x8f, 0x5a, 0xe3, 0x02, 0xa3, 0x7f, 0x14, 0xdc, 0x60, 0xb8, 0xc1, 0x70, 0x83, 0xd5, 0x74,
		0x83, 0xd1, 0x3f, 0x4a, 0x82, 0x85, 0x42, 0xff, 0x28, 0x58, 0x26, 0x58, 0x26, 0x58, 0x26, 0x58,
		0x26, 0x04, 0x68, 0x12, 0x0e, 0xd0, 0xa0, 0x7f, 0xd4, 0x6b, 0xb6, 0x10, 0xfd, 0xa3, 0x5e, 0xbe,
		0x77, 0xe8, 0x1f, 0x85, 0x58, 0xcd, 0x43, 0x38, 0x41, 0xff, 0xa8, 0x17, 0x2d, 0x82, 0xf2, 0x19,
		0xf0, 0x04, 0xf0, 0x04, 0xf0, 0x04, 0xf0, 0x04, 0x94, 0xcf, 0xc8, 0x30, 0xd7, 0xe8, 0x1f, 0x05,
		0x63, 0x0d, 0x63, 0x0d, 0x63, 0x0d, 0x63, 0x0d, 0x63, 0x0d, 0x63, 0x4d, 0xdc, 0x58, 0xa3, 0x7f,
		0x14, 0xcc, 0x35, 0xcc, 0x35, 0xcc, 0x35, 0xcc, 0x35, 0xcc, 0x35, 0xcc, 0x35, 0x59, 0x73, 0x8d,
		0xfe, 0x51, 0x30, 0xd2, 0x30, 0xd2, 0x30, 0xd2, 0x30, 0xd2, 0x30, 0xd2, 0x30, 0xd2, 0x44, 0x8d,
		0x34, 0xfa, 0x47, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0xc1, 0x1c, 0x3d, 0x4d, 0x7b, 0xa1, 0x7f,
		0x14, 0xfa, 0x47, 0x25, 0x09, 0xed, 0x2d, 0xe8, 0x1f, 0x95, 0x44, 0x7f, 0x20, 0x4d, 0x7a, 0xfb,
		0xa8, 0x4e, 0xf4, 0xa9, 0xa8, 0x76, 0x8f, 0x7a, 0x43, 0x08, 0xea, 0x49, 0x41, 0x5c, 0x3e, 0xb4,
		0xf5, 0x8d, 0x36, 0xe9, 0x92, 0x07, 0xe6, 0xcd, 0xc0, 0xf8, 0xf5, 0xa0, 0xdb, 0x00, 0xe0, 0xf4,
		0xfe, 0xdc, 0x6f, 0xdf, 0x0c, 0xd0, 0x62, 0x87, 0x60, 0xa3, 0x5d, 0xf0, 0x36, 0xdc, 0xde, 0x6c,
		0xe3, 0x64, 0x25, 0x09, 0x72, 0x92, 0x20, 0x19, 0x49, 0x8a, 0x7c, 0x24, 0x4e, 0x36, 0x12, 0x27,
		0x17, 0xc9, 0x92, 0x09, 0x5a, 0x66, 0x66, 0xd3, 0xed, 0xc8, 0xf4, 0x65, 0x65, 0x6f, 0xf4, 0x2f,
		0x58, 0xff, 0x7b, 0x72, 0x6d, 0x14, 0xef, 0x5d, 0x6d, 0xd3, 0x1d, 0xdb, 0x12, 0xbc, 0xda, 0xd0,
		0x27, 0xe8, 0xdd, 0xac, 0x43, 0xd4, 0x4b, 0xa6, 0xa9, 0x64, 0x36, 0xa9, 0xa6, 0x92, 0x59, 0x34,
		0x95, 0x14, 0x18, 0x12, 0x42, 0x53, 0xc9, 0x34, 0xf2, 0xe1, 0xc4, 0x42, 0x3c, 0x02, 0x6e, 0x1a,
		0x12, 0xba, 0x61, 0xa0, 0xd9, 0x55, 0x38, 0xa9, 0xeb, 0xfe, 0x84, 0xaf, 0xf9, 0x93, 0xb5, 0x81,
		0x09, 0x5c, 0xeb, 0xc3, 0x08, 0xc2, 0x08, 0xc2, 0x08, 0xc2, 0x08, 0x6e, 0xbb, 0x11, 0xdc, 0xf0,
		0x16, 0xb3, 0x9f, 0x3c, 0xb0, 0x8d, 0xb1, 0x17, 0xf2, 0x89, 0x95, 0x49, 0x28, 0xf6, 0xce, 0x6d,
		0x3e, 0x4e, 0xae, 0xa5, 0x84, 0x80, 0x6b, 0xb0, 0x01, 0x1b, 0x05, 0xac, 0x6f, 0x73, 0x36, 0x48,
		0xd9, 0xdd, 0xf1, 0xec, 0xd1, 0xa4, 0xf9, 0xee, 0x78, 0xe1, 0xd9, 0x6d, 0x7d, 0xeb, 0x87, 0xde,
		0x16, 0x38, 0xe4, 0xd1, 0x0d, 0x85, 0xe1, 0x8d, 0x2f, 0xcf, 0x58, 0x90, 0x9c, 0x57, 0xbe, 0xb4,
		0x0a, 0x5c, 0x53, 0xb8, 0xa6, 0x70, 0x4d, 0xe1, 0x9a, 0xaa, 0xa2, 0x61, 0x16, 0xb5, 0x4c, 0x02,
		0xad, 0xd2, 0xf4, 0xb6, 0xed, 0x9d, 0x33, 0x15, 0xfd, 0xbd, 0xe3, 0x04, 0x33, 0x42, 0xe3, 0x45,
		0xa2, 0x0e, 0x6b, 0x9b, 0x1f, 0xea, 0xb4, 0xb2, 0xce, 0x87, 0xc0, 0xee, 0x73, 0xc7, 0xf7, 0xaa,
		0xce, 0xb9, 0xc3, 0xc3, 0xe4, 0x52, 0x38, 0x6f, 0x91, 0xcb, 0xce, 0x6d, 0xee, 0x5c, 0x4d, 0x3e,
		0x5b, 0x14, 0x00, 0x4a, 0xce, 0xdd, 0x4a, 0xd0, 0x09, 0x3f, 0xb6, 0x7f, 0x8a, 0x83, 0x40, 0x1e,
		0x10, 0x80, 0xc7, 0xad, 0xbc, 0xc7, 0x7d, 0xc9, 0x78, 0xe0, 0xf4, 0x8d, 0x90, 0x5f, 0xbb, 0x09,
		0xce, 0xd7, 0x5b, 0x5a, 0x05, 0x1e, 0x37, 0x3c, 0x6e, 0x78, 0xdc, 0xf0, 0xb8, 0x55, 0xd1, 0x30,
		0x8b, 0x5a, 0x26, 0x57, 0x48, 0xe0, 0x77, 0xd7, 0xbc, 0xf1, 0x65, 0x72, 0x07, 0xaa, 0xeb, 0x77,
		0x78, 0xe0, 0x78, 0xe7, 0xc9, 0x16, 0x1d, 0x64, 0x27, 0x0f, 0xa1, 0x51, 0x69, 0xb7, 0x9b, 0xff,
		0xb1, 0x8e, 0x6b, 0xdd, 0xb6, 0x79, 0x94, 0x64, 0xb4, 0x35, 0x37, 0x59, 0xed, 0x3f, 0x66, 0xb5,
		0x36, 0x5f, 0x4b, 0xad, 0x12, 0x10, 0xdf, 0x8c, 0xb4, 0x41, 0x92, 0xc1, 0xef, 0xa5, 0x27, 0x91,
		0xa8, 0xef, 0xb8, 0xf4, 0x1c, 0xca, 0x5a, 0x6e, 0x3b, 0x4b, 0x2a, 0x90, 0xf7, 0xfe, 0xac, 0xdf,
		0x2b, 0x21, 0xef, 0x7d, 0xe3, 0x33, 0xc0, 0x05, 0xe7, 0xbb, 0x6f, 0x72, 0xd8, 0x37, 0x8d, 0x3c,
		0xf7, 0xf3, 0xc0, 0xee, 0xb3, 0xe1, 0xd8, 0x35, 0x02, 0x16, 0x72, 0x3b, 0xe0, 0x9b, 0xcf, 0x78,
		0x5f, 0x59, 0x01, 0xb9, 0xef, 0x04, 0xb9, 0x05, 0x72, 0xdf, 0xe5, 0x70, 0x87, 0x94, 0xe7, 0xbe,
		0x6f, 0xb8, 0x8c, 0x66, 0xe5, 0x20, 0x6c, 0xdc, 0xa0, 0x24, 0xa0, 0x5a, 0x10, 0xce, 0x40, 0x38,
		0x03, 0xe1, 0x8c, 0x4d, 0x87, 0x33, 0x36, 0xad, 0xaa, 0xe2, 0x5f, 0x8c, 0xfe, 0x63, 0xcf, 0x58,
		0x04, 0xfd, 0xc7, 0x44, 0x29, 0x79, 0x11, 0xca, 0x5e, 0xa0, 0xd2, 0x17, 0xa5, 0xfc, 0x85, 0x1b,
		0x01, 0xe1, 0xc6, 0x40, 0xac, 0x51, 0x48, 0x2e, 0x18, 0xa4, 0xa1, 0xff, 0xd8, 0xf3, 0xbc, 0xd3,
		0x6d, 0xee, 0x3f, 0x36, 0x8b, 0x25, 0x18, 0xdc, 0xb9, 0x14, 0x30, 0x3c, 0x76, 0x69, 0x35, 0x95,
		0xcd, 0xf5, 0x7e, 0x16, 0xb6, 0x1a, 0xb6, 0x1a, 0xb6, 0x1a, 0xb6, 0x1a, 0xb6, 0x5a, 0xd3, 0xc7,
		0x8e, 0xc7, 0x73, 0x25, 0x01, 0xa6, 0xba, 0x94, 0xe0, 0x12, 0xc9, 0xe6, 0x8a, 0xce, 0xbf, 0x92,
		0x1f, 0x97, 0x2a, 0x24, 0x77, 0x34, 0x5e, 0x6c, 0x9e, 0x40, 0x98, 0x7d, 0x2b, 0x66, 0x3d, 0xd1,
		0x89, 0x84, 0xb7, 0x58, 0x17, 0x95, 0x50, 0x98, 0xb0, 0x5a, 0x58, 0x86, 0x8a, 0x80, 0x1c, 0xd3,
		0x15, 0xa8, 0x94, 0x8a, 0xc5, 0xfd, 0x22, 0xe0, 0xa2, 0x84, 0x6d, 0x4a, 0xfe, 0xb7, 0xf7, 0x94,
		0xb2, 0xa9, 0x02, 0xaa, 0x54, 0x17, 0xa8, 0xd9, 0x90, 0x05, 0xcc, 0xeb, 0xa7, 0xc2, 0x28, 0xcd,
		0x5d, 0x85, 0xf6, 0x87, 0x23, 0xad, 0xb8, 0x9f, 0x2d, 0x95, 0xb5, 0xf6, 0x94, 0x0b, 0x6a, 0x1d,
		0xe7, 0xdc, 0xb3, 0x5d, 0xc7, 0x3b, 0xd7, 0x86, 0x7e, 0xa0, 0x99, 0x1d, 0xc3, 0xec, 0xfc, 0x3f,
		0x5a, 0xf4, 0xdf, 0x0e, 0xee, 0xfd, 0x6f, 0xa7, 0x5e, 0xfc, 0xff, 0x74, 0x01, 0x2a, 0x52, 0x90,
		0xab, 0x7e, 0x9f, 0xcb, 0x7e, 0x0b, 0x00, 0x41, 0x4a, 0x4b, 0xb4, 0xf7, 0x7e, 0xaf, 0x17, 0xbf,
		0x59, 0x84, 0x40, 0xef, 0x8a, 0xd5, 0xbb, 0xe8, 0x16, 0xbc, 0xd1, 0xdf, 0x2f, 0x21, 0xb5, 0xec,
		0x6e, 0x9a, 0x51, 0x26, 0x91, 0xd4, 0x00, 0x4d, 0x7c, 0xce, 0xd9, 0xc7, 0xd9, 0x07, 0x9b, 0xe9,
		0x8b, 0x8d, 0xe6, 0xa0, 0x6d, 0x1e, 0xad, 0x37, 0x1b, 0xcd, 0xed, 0xb3, 0x79, 0x82, 0x05, 0x31,
		0x49, 0x34, 0x94, 0x4e, 0x3c, 0x75, 0x24, 0x8f, 0xd4, 0x11, 0x81, 0x6e, 0x0e, 0x52, 0x47, 0xd2,
		0x68, 0xfd, 0x90, 0x3a, 0xf2, 0xd8, 0x06, 0x21, 0x75, 0xe4, 0x21, 0xe5, 0x8e, 0xeb, 0x28, 0xa9,
		0x4a, 0x5f, 0x34, 0xc7, 0xc5, 0x75, 0x94, 0x0a, 0xe4, 0x10, 0xa9, 0x23, 0xcf, 0xf0, 0x4e, 0x91,
		0x3a, 0x82, 0xd4, 0x91, 0x67, 0x2e, 0x82, 0xd4, 0x11, 0xd8, 0x6a, 0xd8, 0x6a, 0xd8, 0x6a, 0xd8,
		0x6a, 0xa4, 0x8e, 0x3c, 0xeb, 0x0b, 0xa9, 0x23, 0xaf, 0x5b, 0x0f, 0xa9, 0x23, 0x1b, 0x85, 0x0a,
		0x52, 0x47, 0x52, 0x03, 0x17, 0x5c, 0x61, 0x0a, 0xb0, 0xa9, 0x48, 0x1d, 0x79, 0xa5, 0xab, 0x80,
		0xd4, 0x91, 0xa7, 0xbb, 0xec, 0x48, 0x1d, 0x41, 0xea, 0x08, 0x52, 0x47, 0x90, 0x3a, 0x22, 0x39,
		0x75, 0x24, 0x25, 0xa3, 0xa6, 0xef, 0x66, 0x8e, 0x60, 0xd6, 0xb4, 0x6c, 0x94, 0x53, 0x40, 0xb7,
		0xba, 0xdd, 0xb7, 0xee, 0xe0, 0x39, 0x4d, 0x6d, 0xb8, 0x12, 0x19, 0xba, 0x91, 0x64, 0x2b, 0xfc,
		0x0d, 0xc7, 0xd7, 0xd1, 0x7e, 0x0b, 0xed, 0xb7, 0x9e, 0xe0, 0x29, 0xa7, 0xbc, 0xfd, 0xd6, 0xc6,
		0xe3, 0xd7, 0x0b, 0x1a, 0xc0, 0x1e, 0x06, 0x6c, 0xb8, 0x49, 0xc4, 0xce, 0xef, 0x92, 0x0f, 0x36,
		0xf8, 0x3b, 0x5b, 0x33, 0xc3, 0xb8, 0xb7, 0x37, 0x4b, 0xdf, 0xcd, 0x2c, 0xa9, 0xae, 0x34, 0x29,
		0x7c, 0xc7, 0xfb, 0x6e, 0x44, 0x7e, 0xa6, 0x31, 0xb0, 0xb9, 0x7d, 0x66, 0x87, 0x2c, 0x01, 0xbd,
		0x7f, 0xcf, 0x22, 0xc4, 0xbb, 0x2f, 0xe6, 0xa1, 0xfe, 0xa1, 0xfe, 0xb7, 0x54, 0xfd, 0x6f, 0xbc,
		0xfb, 0xa2, 0x1b, 0x8e, 0x12, 0x9c, 0xe0, 0x16, 0x8e, 0xd0, 0x77, 0x11, 0xc9, 0xf3, 0x12, 0x95,
		0x8f, 0x30, 0x25, 0x24, 0x46, 0x19, 0xa9, 0x11, 0xff, 0x4b, 0x2c, 0x79, 0xde, 0x0d, 0x47, 0x86,
		0x23, 0x20, 0x77, 0x7e, 0xb6, 0x0e, 0xd2, 0xce, 0x44, 0xab, 0x34, 0x81, 0xaa, 0x4d, 0x94, 0x8a,
		0x13, 0xae, 0xea, 0x84, 0xab, 0x3c, 0xb1, 0xaa, 0x2f, 0x19, 0x15, 0x98, 0x90, 0x2a, 0x4c, 0x8e,
		0xb6, 0x0b, 0xa4, 0xf1, 0x22, 0x68, 0xfd, 0x43, 0x34, 0x3f, 0x62, 0xa7, 0x99, 0x99, 0x4e, 0xde,
		0xe2, 0xac, 0xf4, 0x64, 0x6a, 0x5d, 0x57, 0x00, 0x94, 0xd4, 0xcd, 0x56, 0x82, 0xee, 0x3b, 0x6c,
		0x1f, 0x6c, 0x1f, 0x6c, 0x1f, 0x55, 0xdb, 0x97, 0x14, 0x1d, 0x88, 0x17, 0xe8, 0x5f, 0xb0, 0xfe,
		0xf7, 0x30, 0xc1, 0xe1, 0x6c, 0x2b, 0x47, 0x33, 0x5e, 0x31, 0x61, 0x54, 0x25, 0x4b, 0x15, 0x84,
		0xa9, 0x4d, 0x91, 0xea, 0x53, 0x82, 0x1a, 0x15, 0xad, 0x4e, 0xa5, 0xa9, 0x55, 0x69, 0xea, 0x55,
		0x8e, 0x9a, 0x4d, 0x56, 0xdd, 0x26, 0xac, 0x76, 0xc5, 0x51, 0x8f, 0x95, 0x13, 0x97, 0x78, 0xe5,
		0xcb, 0x5d, 0xfd, 0x58, 0x12, 0xb0, 0x94, 0x98, 0x4a, 0x98, 0xf9, 0x97, 0x18, 0x05, 0xa2, 0x89,
		0xae, 0x8c, 0x89, 0x17, 0x15, 0x5c, 0x21, 0x13, 0xaf, 0x2b, 0xab, 0xf4, 0xe1, 0xf6, 0x8c, 0x88,
		0x2e, 0x81, 0x10, 0xa4, 0x66, 0x96, 0x21, 0x25, 0xb0, 0x82, 0x66, 0x05, 0x52, 0x02, 0x2b, 0x69,
		0x00, 0xab, 0x84, 0x6d, 0xa3, 0xb8, 0x55, 0x7a, 0x8a, 0x66, 0xac, 0x27, 0x78, 0xac, 0xf5, 0xa1,
		0x6b, 0x9f, 0x87, 0xe2, 0x48, 0xd5, 0x74, 0x39, 0x30, 0x2a, 0x30, 0x2a, 0x30, 0x2a, 0x30, 0x2a,
		0x30, 0xaa, 0xa5, 0x66, 0x6e, 0xe3, 0x4b, 0x16, 0x4c, 0x8b, 0x0d, 0xc4, 0xd1, 0xaa, 0x5c, 0x41,
		0xc0, 0x5a, 0x35, 0x4f, 0x40, 0xe0, 0xee, 0xf6, 0xd1, 0xf9, 0x1d, 0x1e, 0x38, 0xde, 0xb9, 0x50,
		0xf7, 0x54, 0xcf, 0x4e, 0x9e, 0x61, 0xab, 0xd2, 0xee, 0x9a, 0x5d, 0xb3, 0xd9, 0xb0, 0xda, 0xb5,
		0x56, 0xc5, 0x6c, 0xeb, 0x02, 0x1d, 0xf2, 0xdc, 0x44, 0x80, 0x4a, 0xb7, 0x5b, 0x39, 0xfa, 0x54,
		0xab, 0x5a, 0xb5, 0x76, 0xbb, 0x29, 0x74, 0xf9, 0xfc, 0xf2, 0xf2, 0x5f, 0x5b, 0xb5, 0x46, 0xa7,
		0x26, 0x52, 0x80, 0xfd, 0x25, 0x01, 0xaa, 0xb5, 0x7a, 0xe5, 0x2f, 0x91, 0xcb, 0x17, 0xee, 0x2c,
		0xff, 0xa1, 0x72, 0x52, 0xef, 0x8a, 0x14, 0xa0, 0x18, 0xd5, 0xde, 0x7c, 0xa9, 0xb5, 0xeb, 0xcd,
		0x4a, 0x55, 0x7f, 0x93, 0x22, 0xbe, 0xa9, 0x77, 0x7d, 0xd3, 0xe3, 0x62, 0x8f, 0xf3, 0xca, 0x93,
		0x2c, 0x6b, 0x85, 0xb7, 0x52, 0x96, 0x9f, 0xe0, 0xb8, 0xac, 0xed, 0xcb, 0x58, 0x7c, 0xaa, 0x44,
		0x12, 0xbb, 0xca, 0x7d, 0x64, 0xf1, 0x99, 0x0a, 0xd9, 0x78, 0xb3, 0xe3, 0x07, 0x97, 0x8f, 0x0f,
		0x50, 0x59, 0x13, 0x18, 0x60, 0x58, 0x35, 0x1c, 0x65, 0x2d, 0x9b, 0x12, 0xd6, 0xad, 0xb6, 0x1f,
		0x58, 0x77, 0x42, 0x5e, 0xe1, 0x3c, 0x10, 0xe3, 0x0b, 0x1e, 0x3b, 0x5e, 0xcd, 0x65, 0x13, 0x57,
		0x5d, 0x50, 0x80, 0x49, 0x3f, 0xb6, 0x7f, 0x2e, 0xac, 0x98, 0x7b, 0x57, 0x28, 0x94, 0x0e, 0x0a,
		0x85, 0xec, 0xc1, 0xfe, 0x41, 0xf6, 0xb0, 0x58, 0xcc, 0x95, 0x72, 0x02, 0x4e, 0x81, 0xde, 0x0c,
		0x06, 0x2c, 0x60, 0x83, 0xf7, 0xd7, 0x7a, 0x59, 0xf3, 0xc6, 0xae, 0x2b, 0x72, 0xc9, 0x93, 0x30,
		0x2a, 0xb5, 0x4c, 0x3e, 0xa2, 0xa6, 0x66, 0x7c, 0xc8, 0x19, 0x18, 0x2e, 0xf3, 0xce, 0xa3, 0x44,
		0x2d, 0x41, 0x31, 0xa2, 0xdb, 0x25, 0x11, 0x27, 0x42, 0x9c, 0x08, 0x71, 0x22, 0xc4, 0x89, 0x10,
		0x27, 0xba, 0x73, 0xf3, 0xfe, 0x4e, 0x60, 0x84, 0xa8, 0x88, 0x8b, 0xf7, 0x57, 0x39, 0x74, 0xb8,
		0x78, 0x17, 0x26, 0x00, 0x2e, 0xde, 0x93, 0x86, 0x54, 0xbe, 0x88, 0x6b, 0x77, 0x61, 0xa0, 0xc2,
		0xb5, 0x7b, 0x7a, 0x69, 0x55, 0x68, 0x70, 0x11, 0x9e, 0xc3, 0x2d, 0xa9, 0x9a, 0x2d, 0x08, 0x4a,
		0x05, 0x4a, 0x05, 0x4a, 0x05, 0x4a, 0x05, 0x4a, 0x95, 0x6c, 0x63, 0x34, 0x30, 0xab, 0x34, 0x33,
		0xab, 0x1c, 0x9c, 0x60, 0x30, 0xab, 0x0d, 0x33, 0x2b, 0x40, 0x0a, 0xbc, 0x0a, 0xbc, 0xea, 0x95,
		0xa0, 0x4a, 0xb8, 0x7b, 0xcc, 0xaa, 0xe7, 0x90, 0x64, 0x17, 0x19, 0xb0, 0x2a, 0xb0, 0x2a, 0xb0,
		0x2a, 0xb0, 0x2a, 0x55, 0x59, 0x95, 0x08, 0xdd, 0xb8, 0xa8, 0x1f, 0x73, 0xef, 0x04, 0xac, 0xd5,
		0xb2, 0x39, 0x67, 0x81, 0x27, 0x8c, 0x52, 0xe9, 0xdf, 0xb2, 0xc6, 0x61, 0xc5, 0xf8, 0x60, 0x1b,
		0xc3, 0xde, 0xaf, 0xc2, 0xcd, 0xe9, 0xe9, 0xde, 0xd3, 0xde, 0xe8, 0x45, 0x7f, 0x18, 0xb7, 0x2f,
		0x93, 0x3f, 0x20, 0x3d, 0x11, 0xdb, 0xdf, 0xec, 0x98, 0x5f, 0x85, 0x3f, 0x83, 0xbf, 0x37, 0xf5,
		0x10, 0xfe, 0xa1, 0xc3, 0x2d, 0x94, 0xe0, 0x16, 0x5e, 0xda, 0x3f, 0x9d, 0xcb, 0xf1, 0xa5, 0x61,
		0x07, 0xcc, 0x36, 0xec, 0xc1, 0x20, 0x60, 0x61, 0xc8, 0x04, 0x96, 0xbd, 0xad, 0x59, 0x1f, 0x6e,
		0x23, 0xdc, 0x46, 0xb8, 0x8d, 0x70, 0x1b, 0xe1, 0x36, 0x22, 0xbf, 0x69, 0x83, 0x5f, 0xc8, 0x6f,
		0x4a, 0x66, 0x5d, 0x44, 0xe1, 0x85, 0x40, 0x0a, 0xf9, 0x4d, 0x5b, 0x02, 0x2a, 0xc4, 0xe1, 0x53,
		0x4b, 0xb8, 0x46, 0x83, 0xb1, 0xf0, 0xba, 0x91, 0x85, 0x35, 0x41, 0xac, 0x40, 0xac, 0x40, 0xac,
		0x40, 0xac, 0x40, 0xac, 0xd0, 0xb2, 0x11, 0xcc, 0x0a, 0xcc, 0x0a, 0xcc, 0x0a, 0x2d, 0x1b, 0xc1,
		0xad, 0xc0, 0xad, 0x52, 0xc3, 0xad, 0xc4, 0x16, 0x8f, 0xc4, 0x2b, 0x82, 0x57, 0x81, 0x57, 0x81,
		0x57, 0x81, 0x57, 0x81, 0x57, 0xa1, 0x71, 0x63, 0x02, 0x8f, 0x4e, 0x5e, 0xe3, 0xc6, 0x7a, 0xed,
		0x4b, 0xad, 0x6e, 0xe5, 0x84, 0xf7, 0x6b, 0x9c, 0xae, 0x9b, 0x47, 0xbb, 0xbe, 0x57, 0x2e, 0x39,
		0x7f, 0x7e, 0x42, 0x5d, 0xfc, 0xf8, 0xe9, 0x95, 0xb5, 0x1c, 0x9a, 0xb5, 0xa5, 0xd6, 0xdf, 0x0e,
		0xd8, 0xa5, 0xed, 0x78, 0x8e, 0x77, 0x6e, 0xb8, 0xce, 0x90, 0x71, 0xe7, 0x52, 0xa0, 0xe7, 0x7d,
		0xcf, 0xda, 0xf0, 0xc1, 0xe1, 0x83, 0xc3, 0x07, 0x87, 0x0f, 0x0e, 0x1f, 0x1c, 0x77, 0x1b, 0x9b,
		0xfc, 0xc2, 0xdd, 0x46, 0x32, 0xeb, 0xe2, 0x6e, 0x43, 0x08, 0xa4, 0x70, 0xb7, 0x81, 0xbb, 0x0d,
		0xb5, 0x56, 0xc1, 0xdd, 0xc6, 0x2a, 0xa8, 0x42, 0xf6, 0xff, 0x8e, 0x99, 0xd7, 0x67, 0xf3, 0x66,
		0x2c, 0xc2, 0x88, 0xd6, 0xdd, 0x85, 0xc1, 0xb2, 0xc0, 0xb2, 0xc0, 0xb2, 0xc0, 0xb2, 0xc0, 0xb2,
		0xee, 0xb0, 0xac, 0xfd, 0xbc, 0x40, 0x96, 0x75, 0x00, 0x96, 0x05, 0x96, 0x05, 0x77, 0x18, 0x2c,
		0x6b, 0xb2, 0xad, 0x85, 0xfc, 0x61, 0xe1, 0xb0, 0x74, 0x90, 0x3f, 0x04, 0xd5, 0x02, 0xd5, 0x02,
		0xd5, 0x7a, 0x2d, 0xa8, 0xae, 0x58, 0x10, 0x3a, 0xbe, 0x27, 0x8e, 0x62, 0xcd, 0x17, 0x4c, 0xd8,
		0x2d, 0xaa, 0xb2, 0xa1, 0x3d, 0x76, 0xb9, 0x10, 0x8b, 0xae, 0xe7, 0x92, 0x75, 0x52, 0x7b, 0xa0,
		0xa1, 0xa0, 0xa1, 0xa0, 0xa1, 0xa0, 0xa1, 0xa0, 0xa1, 0xe8, 0x10, 0x01, 0x16, 0x0a, 0x16, 0x0a,
		0x16, 0x8a, 0x0e, 0x11, 0xa0, 0x9f, 0xa0, 0x9f, 0xa9, 0xa1, 0x9f, 0x79, 0xe1, 0xfc, 0x33, 0x0f,
		0x02, 0x0a, 0x02, 0x0a, 0x02, 0x0a, 0x02, 0x0a, 0x02, 0x0a, 0x02, 0x0a, 0x02, 0x0a, 0x02, 0x0a,
		0x02, 0x0a, 0x02, 0x0a, 0x02, 0x0a, 0x50, 0x81, 0x80, 0xd2, 0x23, 0xa0, 0x6f, 0x14, 0x52, 0x15,
		0x7a, 0xc5, 0xf3, 0x7c, 0x3e, 0xad, 0x03, 0x4f, 0x52, 0x3b, 0xe8, 0x61, 0xff, 0x82, 0x5d, 0xda,
		0x23, 0x3b, 0x6a, 0xae, 0xa8, 0x67, 0xfc, 0x11, 0xf3, 0xfa, 0x11, 0xc1, 0x31, 0x3c, 0xc6, 0x7f,
		0xf8, 0xc1, 0x77, 0xc3, 0xf1, 0x42, 0x6e, 0x7b, 0x7d, 0x96, 0xb9, 0xfb, 0x46, 0xb8, 0xf2, 0x4e,
		0x66, 0x14, 0xf8, 0xdc, 0xef, 0xfb, 0x6e, 0x18, 0xbf, 0xca, 0x4c, 0xbc, 0xce, 0x4c, 0x34, 0x14,
		0x71, 0xf6, 0x2d, 0xe3, 0x3a, 0xde, 0x77, 0x23, 0xe4, 0x36, 0x67, 0xc6, 0xc0, 0xe6, 0xf6, 0x99,
		0x1d, 0xb2, 0x8c, 0x1b, 0x8e, 0x32, 0xd1, 0x5b, 0x7a, 0x92, 0x09, 0xc1, 0x3c, 0x18, 0xf7, 0xb9,
		0x37, 0x73, 0xbc, 0x9a, 0xf1, 0x47, 0x6d, 0x4c, 0x3f, 0x86, 0x39, 0xfb, 0x14, 0xd6, 0x9d, 0xbf,
		0x87, 0x77, 0xdf, 0xb0, 0x5a, 0xf3, 0x8f, 0x19, 0xbf, 0xb2, 0xcc, 0xd0, 0x09, 0xad, 0x7a, 0xf4,
		0x31, 0xa7, 0xdf, 0xac, 0xba, 0xe3, 0x7d, 0xef, 0x4c, 0x3e, 0x52, 0x75, 0xf6, 0x21, 0xad, 0x7a,
		0x38, 0xb2, 0xa2, 0x77, 0x92, 0xf1, 0xc2, 0x37, 0x0f, 0xf0, 0x04, 0xc0, 0xad, 0x73, 0xf7, 0x2a,
		0xb9, 0x61, 0x09, 0xb1, 0x57, 0x1d, 0xad, 0x92, 0xd0, 0xd1, 0x9c, 0x37, 0x4d, 0x48, 0xe8, 0xd7,
		0x27, 0x1d, 0x5f, 0x10, 0x11, 0x57, 0x10, 0x18, 0x4f, 0x10, 0x15, 0x47, 0x10, 0x1e, 0x3f, 0x10,
		0x1e, 0x37, 0x10, 0x1b, 0x2f, 0x50, 0xcb, 0x1c, 0x57, 0x9d, 0x64, 0xeb, 0x47, 0x26, 0x0a, 0x4b,
		0x5c, 0xf4, 0x7a, 0xb2, 0x98, 0x98, 0x60, 0x6c, 0x0e, 0xc1, 0x58, 0xca, 0xca, 0x53, 0xb4, 0x12,
		0x95, 0xa6, 0x4c, 0xa5, 0x29, 0x55, 0x39, 0xca, 0x55, 0x0c, 0x1b, 0x4c, 0x3a, 0x18, 0x9b, 0xb4,
		0xd2, 0x8d, 0x17, 0x5a, 0x1c, 0xa5, 0x25, 0xee, 0x0c, 0xcc, 0x8f, 0xf9, 0xd2, 0xea, 0x82, 0xd0,
		0x28, 0x46, 0x3d, 0x0b, 0x57, 0xd3, 0x32, 0xd4, 0xb5, 0x44, 0xb5, 0x2d, 0x4b, 0x7d, 0x4b, 0x57,
		0xe3, 0xd2, 0xd5, 0xb9, 0x5c, 0xb5, 0x2e, 0x46, 0xbd, 0x0b, 0x52, 0xf3, 0xc2, 0xd5, 0xfd, 0x42,
		0x3c, 0xc8, 0xe6, 0x12, 0x0e, 0x4d, 0x5c, 0x26, 0x9e, 0x70, 0xbc, 0x8b, 0x80, 0xe2, 0x97, 0x66,
		0x00, 0x64, 0x1a, 0x02, 0x02, 0x06, 0x41, 0xb6, 0x61, 0x20, 0x63, 0x20, 0xc8, 0x18, 0x0a, 0x1a,
		0x06, 0x43, 0xac, 0xe1, 0x10, 0x6c, 0x40, 0xa4, 0x19, 0x92, 0x5b, 0x1e, 0x21, 0x98, 0x42, 0xac,
		0xa7, 0x14, 0x42, 0xd9, 0xc4, 0x3a, 0x23, 0x93, 0x95, 0xb4, 0xbc, 0x2c, 0x63, 0x43, 0xc1, 0xe8,
		0x10, 0x32, 0x3e, 0x54, 0x8c, 0x10, 0x39, 0x63, 0x44, 0xce, 0x28, 0xd1, 0x32, 0x4e, 0x72, 0x8c,
		0x94, 0x24, 0x63, 0x15, 0x6f, 0xbd, 0xb0, 0xcc, 0xc3, 0xc7, 0x8d, 0x87, 0xf8, 0x78, 0xd4, 0x83,
		0x54, 0xe5, 0x9d, 0x44, 0x19, 0x5a, 0x36, 0xe7, 0x2c, 0xf0, 0x84, 0xe5, 0x32, 0xae, 0x15, 0xe4,
		0x5b, 0xd6, 0x38, 0xac, 0x18, 0x1f, 0x6c, 0x63, 0xd8, 0xfb, 0x95, 0xbf, 0xd9, 0x39, 0x3d, 0xdd,
		0x5b, 0x7c, 0xa7, 0x70, 0xb3, 0xfb, 0x2b, 0xfb, 0x76, 0xff, 0x46, 0xde, 0x61, 0xed, 0xc9, 0x7c,
		0x48, 0xcd, 0x8e, 0xf9, 0x95, 0xcc, 0x93, 0xfa, 0xfb, 0x69, 0x8f, 0xea, 0x1f, 0x12, 0x9f, 0xd5,
		0x56, 0x29, 0xd6, 0xba, 0x13, 0xf2, 0x0a, 0xe7, 0x81, 0x5c, 0xe5, 0x7a, 0xec, 0x78, 0x35, 0x97,
		0x4d, 0x6c, 0x6b, 0x28, 0xcf, 0x31, 0xd5, 0x66, 0x09, 0xa7, 0x0b, 0x92, 0xe4, 0xde, 0x15, 0x0a,
		0xa5, 0x83, 0x42, 0x21, 0x7b, 0xb0, 0x7f, 0x90, 0x3d, 0x2c, 0x16, 0x73, 0xa5, 0x5c, 0x51, 0xa2,
		0x70, 0xcd, 0x60, 0xc0, 0x02, 0x36, 0x78, 0x7f, 0xad, 0x97, 0x35, 0x6f, 0xec, 0xba, 0x14, 0x44,
		0x39, 0x09, 0xa3, 0xe6, 0x91, 0x62, 0xb3, 0x45, 0x29, 0x9c, 0x1c, 0xf6, 0x93, 0x07, 0xb6, 0x31,
		0xf6, 0x42, 0x6e, 0x9f, 0xb9, 0x92, 0x9d, 0x93, 0x80, 0x0d, 0x59, 0xc0, 0xbc, 0x3e, 0x93, 0xae,
		0xe0, 0xe5, 0x92, 0x98, 0x25, 0x4f, 0xcd, 0xec, 0x34, 0xb5, 0x5c, 0xb6, 0xf8, 0xee, 0x50, 0x33,
		0x3d, 0xce, 0x82, 0x4b, 0x36, 0x70, 0x6c, 0xce, 0xb4, 0xce, 0x75, 0xc8, 0xd9, 0xa5, 0xc6, 0xfd,
		0xfb, 0xde, 0x3e, 0xf5, 0x4c, 0x6f, 0xf2, 0x58, 0xb5, 0xaa, 0x7f, 0x69, 0x3b, 0x9e, 0xd6, 0xf6,
		0xc7, 0x9c, 0x39, 0xde, 0xb9, 0x56, 0xfb, 0xd9, 0xbf, 0xb0, 0xbd, 0x73, 0xa6, 0xcd, 0x73, 0x1a,
		0xb5, 0xa1, 0x1f, 0x68, 0xe3, 0x90, 0x69, 0x8e, 0x77, 0xea, 0x1d, 0xf9, 0xde, 0x7f, 0xc7, 0x5e,
		0x94, 0xba, 0xad, 0xfd, 0x70, 0xf8, 0x85, 0xc6, 0x2f, 0xee, 0xfc, 0xcf, 0x56, 0xe0, 0x5f, 0x39,
		0x83, 0xc9, 0x6f, 0xe2, 0x17, 0x2c, 0xfa, 0x01, 0x8f, 0x45, 0xff, 0xdf, 0x65, 0x61, 0x68, 0x5c,
		0xfa, 0x03, 0xa6, 0xcd, 0xf2, 0x28, 0xb5, 0x0e, 0x0b, 0xae, 0x9c, 0x3e, 0xd3, 0x76, 0x26, 0x1f,
		0xe0, 0x5d, 0xe1, 0x60, 0x5f, 0xdb, 0x8d, 0xc4, 0x62, 0x81, 0x17, 0xa5, 0xbc, 0xda, 0xae, 0xd6,
		0xe1, 0xb6, 0x37, 0xb0, 0x83, 0xc1, 0xf4, 0xf3, 0x95, 0xb5, 0x7c, 0x36, 0x9b, 0x7f, 0xab, 0x75,
		0x58, 0xdf, 0xf7, 0x06, 0x5a, 0x6d, 0xe0, 0x4c, 0xfe, 0xdb, 0xdb, 0x53, 0x6f, 0xf2, 0xf6, 0x9e,
		0xd6, 0xad, 0x7f, 0xd1, 0x72, 0x7b, 0x92, 0xd9, 0x1c, 0x25, 0xaa, 0x7b, 0x1f, 0xe5, 0xbd, 0x3d,
		0x41, 0x6f, 0x69, 0xc8, 0x46, 0x8d, 0xfd, 0xde, 0xcb, 0x82, 0x71, 0xc4, 0x96, 0x8e, 0x98, 0xf4,
		0x07, 0x74, 0xf3, 0x66, 0x3b, 0x57, 0x97, 0xe4, 0xb3, 0xe3, 0x66, 0x62, 0xb3, 0x9a, 0x45, 0x4c,
		0x55, 0xc7, 0xda, 0xf5, 0x09, 0x55, 0x7b, 0x70, 0xf7, 0x2a, 0x9c, 0xfc, 0x91, 0x59, 0x0c, 0x37,
		0x65, 0x64, 0xdc, 0x89, 0x6b, 0x54, 0x6a, 0x43, 0xba, 0xee, 0x55, 0x38, 0xf9, 0xc3, 0xaa, 0x04,
		0xcc, 0xae, 0x4c, 0x77, 0x24, 0xc9, 0x82, 0x11, 0xf9, 0x67, 0x30, 0x5d, 0x09, 0x2c, 0x12, 0xf9,
		0x92, 0xfe, 0xe3, 0x82, 0x89, 0x8f, 0x7d, 0x49, 0xcc, 0xa9, 0xd8, 0xdb, 0x9b, 0xea, 0x8a, 0x0c,
		0xbf, 0x1e, 0x31, 0xed, 0xdf, 0xda, 0x1f, 0xb3, 0xeb, 0x0a, 0xc3, 0x0d, 0x07, 0x67, 0xd1, 0x80,
		0xe9, 0xb0, 0x5c, 0x69, 0xd7, 0x2a, 0x56, 0xa5, 0x5a, 0x6d, 0xd7, 0x3a, 0x9d, 0x5a, 0xe7, 0x8f,
		0x2d, 0xcf, 0xbf, 0x88, 0x10, 0x82, 0xec, 0x8b, 0x5b, 0xd7, 0xfe, 0x25, 0x10, 0x7a, 0xb3, 0x05,
		0xb1, 0x1f, 0xbd, 0xca, 0xc2, 0x7e, 0xe0, 0x8c, 0xa4, 0xb9, 0x29, 0xcb, 0x31, 0x0e, 0xaf, 0xef,
		0x8e, 0x07, 0x4c, 0x9b, 0xb8, 0x09, 0xda, 0xcc, 0x4d, 0xd0, 0x46, 0x76, 0x60, 0x5f, 0x32, 0xce,
		0x82, 0x50, 0xf3, 0x3d, 0xf7, 0x5a, 0x9b, 0x60, 0x3b, 0xa2, 0x4b, 0x13, 0x9a, 0x32, 0x79, 0x72,
		0xa7, 0x9e, 0x13, 0xca, 0x0d, 0x0b, 0x50, 0x08, 0x05, 0x2c, 0x1e, 0xff, 0xc1, 0xc2, 0x43, 0x95,
		0x18, 0x55, 0xa5, 0x44, 0xfa, 0x97, 0x89, 0xfe, 0xab, 0x71, 0x06, 0x86, 0xa6, 0xf4, 0x6a, 0xbd,
		0x54, 0xf9, 0xa2, 0x92, 0x98, 0x26, 0x79, 0x86, 0x29, 0xb2, 0x2a, 0x83, 0x2a, 0xa7, 0xd4, 0xd3,
		0x32, 0x60, 0x5c, 0x40, 0x61, 0xa4, 0x3d, 0xe6, 0x17, 0xcc, 0xe3, 0x4e, 0x5f, 0xec, 0x59, 0xba,
		0x4d, 0xc6, 0x59, 0x5e, 0x1f, 0xe5, 0x61, 0x1b, 0x59, 0x10, 0xe5, 0x61, 0xa2, 0xdd, 0x4f, 0x94,
		0x87, 0xa1, 0x3c, 0xec, 0x95, 0xac, 0x14, 0xe5, 0x61, 0x69, 0x53, 0xfc, 0xd2, 0x0c, 0x80, 0x4c,
		0x43, 0x40, 0xc0, 0x20, 0x50, 0x89, 0x51, 0xa0, 0x3c, 0x8c, 0x96, 0xc1, 0x90, 0x44, 0xf1, 0xb7,
		0xa6, 0x3c, 0x6c, 0xc9, 0x97, 0x37, 0xbe, 0xb3, 0x6b, 0x02, 0x95, 0x62, 0xab, 0x32, 0xa1, 0x68,
		0x4c, 0x8a, 0x00, 0x28, 0x1a, 0xa3, 0x64, 0x9a, 0xc8, 0x99, 0x28, 0x72, 0xa6, 0x8a, 0x96, 0xc9,
		0x92, 0x63, 0xba, 0x24, 0x99, 0xb0, 0x78, 0xeb, 0xe9, 0x14, 0x8d, 0x85, 0x3c, 0x70, 0xbc, 0x73,
		0x12, 0xe5, 0x62, 0xdb, 0x72, 0x0f, 0x23, 0x81, 0x2f, 0xf4, 0x83, 0xeb, 0x11, 0xf7, 0xa3, 0xbb,
		0x71, 0xf9, 0xae, 0xcb, 0xa2, 0x30, 0xf0, 0x59, 0xe0, 0xb3, 0xc0, 0x67, 0x81, 0xcf, 0x02, 0x9f,
		0x05, 0x3e, 0xcb, 0x93, 0x35, 0x06, 0xf3, 0xc6, 0x97, 0x2c, 0xb0, 0x65, 0xa7, 0xc4, 0xcc, 0x1d,
		0x97, 0x82, 0x44, 0x19, 0x6a, 0xde, 0xf8, 0x52, 0xbe, 0xde, 0xea, 0xfa, 0x9d, 0xa9, 0x1b, 0x49,
		0xa1, 0x7e, 0x4a, 0xcf, 0x4e, 0x30, 0xf2, 0xe9, 0xb8, 0x72, 0x64, 0x1d, 0x57, 0x8b, 0x14, 0x8a,
		0xcb, 0x72, 0x13, 0x81, 0x8e, 0xea, 0xb5, 0x4a, 0xbb, 0x5b, 0xfb, 0xda, 0x95, 0x5b, 0x8b, 0x73,
		0xf3, 0x56, 0x36, 0x54, 0xcc, 0x48, 0x7b, 0x13, 0xc0, 0xc9, 0xed, 0x13, 0x11, 0x7e, 0x71, 0x72,
		0xbf, 0xb1, 0x9d, 0x43, 0xb6, 0xac, 0x65, 0xb7, 0xb4, 0x5a, 0xea, 0x06, 0xb9, 0x78, 0xea, 0x9f,
		0x79, 0x54, 0x4b, 0xdd, 0x97, 0xcb, 0xb6, 0x14, 0xaf, 0x47, 0xbd, 0xd4, 0x34, 0xb7, 0x6d, 0x69,
		0x53, 0x50, 0x32, 0xa5, 0xcc, 0x51, 0x97, 0x5a, 0x32, 0x25, 0xaf, 0xa5, 0x84, 0xc4, 0x64, 0x83,
		0xd4, 0xd4, 0xb3, 0xbf, 0xac, 0x9c, 0x3d, 0x7a, 0x77, 0xef, 0xd4, 0x8b, 0x52, 0xf6, 0xb3, 0x7b,
		0x5b, 0x9e, 0x73, 0x21, 0xbb, 0x25, 0x04, 0xcd, 0xb4, 0x0b, 0x1c, 0x91, 0xa5, 0x23, 0x82, 0x02,
		0x93, 0x0d, 0x7d, 0x09, 0x6c, 0x91, 0x87, 0x72, 0xe0, 0xfb, 0x6a, 0x39, 0x4f, 0xba, 0x9f, 0x6a,
		0x8d, 0xae, 0x79, 0x54, 0xe9, 0x9a, 0xcd, 0x06, 0xca, 0x81, 0x51, 0x0e, 0xfc, 0xfc, 0x72, 0xe0,
		0x3b, 0x10, 0x42, 0x39, 0xb0, 0xe8, 0x83, 0xde, 0xf4, 0xdc, 0x6b, 0xcd, 0x99, 0xd5, 0x6a, 0x4e,
		0xac, 0xe5, 0x32, 0x21, 0x8e, 0x6a, 0x31, 0x97, 0xaa, 0x34, 0x9d, 0xf0, 0xd4, 0x8b, 0x9e, 0xa8,
		0x1c, 0x77, 0x4f, 0x43, 0x29, 0x30, 0x75, 0x2d, 0xb0, 0xa2, 0x09, 0x5e, 0x87, 0x31, 0x84, 0x1e,
		0xd5, 0xf6, 0xd2, 0x50, 0x06, 0xbc, 0x15, 0xa1, 0xd3, 0xed, 0x2d, 0x04, 0x5e, 0xde, 0x06, 0xd4,
		0x02, 0x3f, 0x27, 0x58, 0xc9, 0xbc, 0x01, 0x1b, 0x18, 0xce, 0xe8, 0xaa, 0x60, 0x04, 0xcc, 0xee,
		0x5f, 0xd8, 0x67, 0x8e, 0xeb, 0xf0, 0x6b, 0xf1, 0x75, 0xc1, 0x0f, 0xc8, 0x82, 0x1a, 0xe1, 0x8d,
		0x2c, 0x88, 0x1a, 0x61, 0xd1, 0x7e, 0x29, 0x6a, 0x84, 0x51, 0x23, 0xfc, 0x4a, 0xaa, 0x2a, 0xba,
		0x46, 0x78, 0x0a, 0x59, 0x16, 0xca, 0x2b, 0x13, 0x8e, 0x25, 0x40, 0xa5, 0x70, 0xda, 0xcc, 0x01,
		0x01, 0xb3, 0x40, 0x25, 0x84, 0x81, 0x4a, 0x61, 0x5a, 0x66, 0x43, 0x52, 0x14, 0x60, 0x5b, 0x2a,
		0x85, 0x47, 0x72, 0xeb, 0x2a, 0xee, 0x18, 0x17, 0xc9, 0xd5, 0x35, 0x39, 0x54, 0xd7, 0xa0, 0xba,
		0x06, 0xd5, 0x35, 0xf4, 0x4d, 0x12, 0x2d, 0xd3, 0x24, 0xc7, 0x44, 0x49, 0x32, 0x55, 0xd2, 0x4d,
		0x16, 0x15, 0xd3, 0x45, 0xcb, 0x84, 0xdd, 0x35, 0x65, 0x59, 0xc9, 0x62, 0xc8, 0x36, 0x69, 0x94,
		0x4c, 0x1b, 0x41, 0x13, 0x47, 0xcd, 0xd4, 0x91, 0x35, 0x79, 0x64, 0x4d, 0x1f, 0x4d, 0x13, 0x28,
		0xd7, 0x14, 0x4a, 0x36, 0x89, 0xf1, 0x23, 0x91, 0x5e, 0x78, 0xba, 0xa2, 0x71, 0x5c, 0x66, 0x0f,
		0x03, 0x36, 0xa4, 0xa0, 0x71, 0xe6, 0x5c, 0xeb, 0x80, 0x80, 0x2c, 0xad, 0xd9, 0xb5, 0x71, 0x9c,
		0x91, 0x35, 0xd3, 0x39, 0xdb, 0x5a, 0xcc, 0x26, 0x91, 0x73, 0xc9, 0xe9, 0x81, 0xb9, 0xf6, 0xc0,
		0xc8, 0x2a, 0x77, 0x22, 0x14, 0x96, 0x80, 0x2f, 0x07, 0x5f, 0x0e, 0xbe, 0x1c, 0x7c, 0xb9, 0xed,
		0xf6, 0xe5, 0x64, 0x87, 0x39, 0x62, 0x41, 0x2e, 0x19, 0x0f, 0x9c, 0x3e, 0x9d, 0xd3, 0x3d, 0x57,
		0x80, 0x33, 0xb9, 0x88, 0x9c, 0x20, 0x1a, 0xe1, 0x0f, 0x72, 0xa6, 0x93, 0xa2, 0x09, 0x25, 0x6c,
		0x4a, 0xa9, 0x9a, 0x54, 0xf2, 0xa6, 0x95, 0xbc, 0x89, 0xa5, 0x6d, 0x6a, 0x69, 0x98, 0x5c, 0x22,
		0xa6, 0x97, 0x5e, 0x38, 0x65, 0x45, 0x63, 0xfd, 0x70, 0x06, 0xcc, 0x20, 0x65, 0x00, 0x17, 0x8d,
		0xe0, 0x01, 0x21, 0x91, 0xda, 0xb6, 0x77, 0x2e, 0xbe, 0xfd, 0xc1, 0x63, 0x5f, 0xb4, 0xb4, 0x7a,
		0xb4, 0x51, 0xc7, 0x8e, 0x47, 0xce, 0xdc, 0xc4, 0xc2, 0x7d, 0xb1, 0xdd, 0x31, 0xa3, 0xd1, 0x7c,
		0xea, 0x5e, 0xf9, 0x3e, 0x04, 0x76, 0x54, 0xb2, 0x5e, 0x75, 0xce, 0x1d, 0x1e, 0xd2, 0x71, 0xbb,
		0x56, 0x15, 0x08, 0x3b, 0xb7, 0xb9, 0x73, 0x35, 0xd9, 0xcb, 0xa1, 0xed, 0x86, 0x8c, 0x9c, 0x94,
		0x37, 0x6f, 0x09, 0x1e, 0x0d, 0xfb, 0xa7, 0x02, 0x47, 0xa3, 0x74, 0x70, 0x70, 0x90, 0xcf, 0x15,
		0x71, 0x42, 0xd2, 0x7e, 0x42, 0xde, 0x40, 0x9a, 0xfb, 0xbe, 0x7a, 0x6f, 0xb0, 0x1f, 0x44, 0x34,
		0x28, 0x95, 0x14, 0x99, 0x15, 0xbf, 0x99, 0x56, 0x38, 0x18, 0x31, 0xa3, 0x87, 0x05, 0x42, 0xcc,
		0xe8, 0x59, 0xa2, 0x21, 0x66, 0xf4, 0x42, 0x01, 0x11, 0x33, 0x52, 0xdf, 0x03, 0x40, 0xcc, 0xe8,
		0x31, 0x8d, 0x15, 0x95, 0x51, 0x93, 0x3b, 0x80, 0xb7, 0x43, 0x6d, 0x08, 0xc9, 0xd4, 0xb2, 0x39,
		0x67, 0x81, 0x47, 0x2e, 0x6c, 0xa4, 0xef, 0x7c, 0xcb, 0x1a, 0x87, 0xbd, 0xdf, 0xdf, 0x72, 0xc6,
		0x61, 0x6f, 0xfa, 0x32, 0x17, 0x7d, 0xfb, 0x95, 0xbf, 0xf9, 0x9d, 0xff, 0x96, 0x35, 0x0a, 0xb3,
		0x77, 0xf3, 0xc5, 0x6f, 0x59, 0xa3, 0xd8, 0xdb, 0xdd, 0x39, 0x3d, 0xdd, 0x7b, 0xee, 0xcf, 0xec,
		0xfe, 0xda, 0xbf, 0xc9, 0xc4, 0x3f, 0x94, 0x9f, 0xfd, 0xeb, 0xfe, 0xb7, 0xac, 0x91, 0xef, 0xed,
		0xd2, 0x51, 0x3b, 0x3d, 0x4a, 0x78, 0x69, 0x76, 0xcc, 0xaf, 0x64, 0x41, 0xf3, 0xf7, 0x8e, 0x74,
		0xd8, 0xec, 0xfe, 0x43, 0x07, 0x4f, 0x04, 0x4f, 0x5c, 0x81, 0x66, 0x68, 0x9c, 0x39, 0x9c, 0x1e,
		0x4d, 0x9c, 0x8a, 0x05, 0x96, 0x08, 0x96, 0x08, 0x96, 0x08, 0x96, 0x08, 0x96, 0x08, 0x96, 0xb8,
		0x35, 0x2c, 0xf1, 0xcc, 0xf7, 0x5d, 0x66, 0x7b, 0x14, 0x19, 0x62, 0x0e, 0x8e, 0x1b, 0x19, 0xc7,
		0x6d, 0x3c, 0x32, 0x06, 0xfe, 0x0f, 0x8f, 0x9e, 0xeb, 0x36, 0x17, 0x0c, 0xce, 0x1b, 0x9c, 0x37,
		0x38, 0x6f, 0x70, 0xde, 0xe0, 0xbc, 0xc1, 0x79, 0x83, 0xf3, 0x06, 0xe7, 0x8d, 0x8c, 0xf3, 0xb6,
		0xd5, 0x45, 0x4d, 0x92, 0xe7, 0x1d, 0xae, 0xc8, 0x43, 0xb1, 0x89, 0xf7, 0xfa, 0xbe, 0xc7, 0x99,
		0x79, 0x27, 0xcc, 0xd9, 0x8b, 0x0c, 0x85, 0x62, 0x61, 0x8d, 0x5c, 0xfb, 0xef, 0xda, 0x6c, 0x03,
		0xcd, 0xd1, 0x55, 0xa1, 0xbd, 0xb0, 0x7d, 0x56, 0x6b, 0xb6, 0x7d, 0xb3, 0x17, 0x32, 0xa6, 0x28,
		0xd2, 0x51, 0x07, 0x52, 0x6b, 0xee, 0xc7, 0x67, 0x13, 0xb8, 0x13, 0xaa, 0xba, 0x9f, 0x09, 0x84,
		0xba, 0x7b, 0xd4, 0xdd, 0x2b, 0xc3, 0x0a, 0x51, 0x77, 0xaf, 0x3a, 0xfb, 0x43, 0xdd, 0x3d, 0x3d,
		0x17, 0x95, 0x4c, 0xdd, 0xfd, 0xd4, 0x26, 0x11, 0xbc, 0x1c, 0x9f, 0xca, 0x45, 0x2b, 0xc0, 0x9a,
		0x43, 0x80, 0x95, 0xbc, 0x09, 0x25, 0x6c, 0x4a, 0xa9, 0x9a, 0x54, 0xf2, 0xa6, 0x95, 0xbc, 0x89,
		0xa5, 0x6d, 0x6a, 0xe9, 0xc4, 0xa5, 0x34, 0x42, 0x01, 0x56, 0x2a, 0x26, 0x38, 0x16, 0x68, 0xe8,
		0xda, 0xe7, 0x21, 0x3d, 0xa5, 0x30, 0xd7, 0xa3, 0x53, 0xf1, 0x88, 0x9d, 0x37, 0x5a, 0x86, 0x99,
		0xac, 0x81, 0xa6, 0x6c, 0xa8, 0x15, 0x30, 0xd8, 0xd4, 0x0d, 0xb7, 0x32, 0x06, 0x5c, 0x19, 0x43,
		0xae, 0x86, 0x41, 0xa7, 0x65, 0xd8, 0x89, 0x19, 0x78, 0xb2, 0x86, 0xfe, 0x96, 0x7b, 0x93, 0x68,
		0x0a, 0xfb, 0x38, 0x15, 0x27, 0x72, 0xff, 0xa3, 0x90, 0x03, 0x40, 0xde, 0x11, 0x50, 0xc1, 0x21,
		0x50, 0xc8, 0x31, 0x50, 0xc5, 0x41, 0x50, 0xce, 0x51, 0x50, 0xce, 0x61, 0x50, 0xcb, 0x71, 0xa0,
		0xe9, 0x40, 0x10, 0x75, 0x24, 0xc8, 0x3b, 0x14, 0xc4, 0x23, 0x09, 0x4a, 0x45, 0x16, 0xd6, 0x39,
		0x1a, 0x59, 0xe2, 0x62, 0x52, 0x77, 0x38, 0x54, 0x72, 0x3c, 0x14, 0x74, 0x40, 0x54, 0x73, 0x44,
		0x94, 0x75, 0x48, 0x94, 0x75, 0x4c, 0xd4, 0x74, 0x50, 0x68, 0x3b, 0x2a, 0xc4, 0x1d, 0x96, 0xf8,
		0x91, 0x93, 0xcb, 0x29, 0x7f, 0x54, 0xe3, 0x32, 0x6f, 0x7c, 0xc9, 0x82, 0x69, 0x2e, 0xaf, 0x02,
		0x5a, 0x77, 0x1e, 0x8d, 0x28, 0x28, 0x20, 0x6b, 0xcd, 0x1b, 0x5f, 0xaa, 0x63, 0x1f, 0xba, 0x7e,
		0x87, 0x07, 0x8e, 0x77, 0xae, 0x8c, 0xc4, 0x91, 0xd4, 0xd9, 0x09, 0x86, 0x6b, 0x5f, 0xbb, 0xb5,
		0x76, 0xa3, 0x52, 0xb7, 0x3e, 0xd4, 0x2b, 0x1f, 0x15, 0x31, 0x6b, 0x91, 0xf4, 0xb9, 0x89, 0xf4,
		0xed, 0x5a, 0xa5, 0xfa, 0xa5, 0xd6, 0xee, 0x9a, 0x9d, 0xda, 0x71, 0xad, 0xd1, 0x55, 0xee, 0x43,
		0xe4, 0x27, 0x1f, 0xa2, 0xd1, 0xac, 0xd6, 0xa6, 0x92, 0x2b, 0x21, 0xf8, 0xcd, 0x5b, 0x55, 0x0e,
		0xa5, 0xe9, 0x71, 0xb5, 0x4e, 0xe4, 0xf2, 0x61, 0x24, 0x4f, 0x93, 0x96, 0x8d, 0x62, 0x8c, 0xe2,
		0xb2, 0x96, 0x57, 0x48, 0xee, 0x7b, 0x55, 0x48, 0x59, 0xcb, 0xa9, 0x71, 0x16, 0xe1, 0x13, 0xa7,
		0xda, 0x27, 0xae, 0x3b, 0x21, 0xaf, 0x70, 0x1e, 0xa8, 0xe1, 0x17, 0x1f, 0x3b, 0x5e, 0xcd, 0x65,
		0x13, 0xda, 0x16, 0xaa, 0xa1, 0xbc, 0xf4, 0x63, 0xfb, 0xe7, 0x82, 0xc4, 0xb9, 0x77, 0x85, 0x42,
		0xe9, 0xa0, 0x50, 0xc8, 0x1e, 0xec, 0x1f, 0x64, 0x0f, 0x8b, 0xc5, 0x5c, 0x89, 0x6a, 0x2f, 0xf9,
		0xa5, 0x0f, 0xd1, 0x0c, 0x06, 0x2c, 0x60, 0x83, 0xf7, 0xd7, 0x7a, 0x59, 0xf3, 0xc6, 0xae, 0xab,
		0x92, 0xc8, 0x27, 0x21, 0x0b, 0xc8, 0xb6, 0x99, 0x57, 0x49, 0x53, 0xb0, 0x9f, 0x3c, 0xb0, 0x8d,
		0xb1, 0x17, 0x72, 0xfb, 0xcc, 0x55, 0x84, 0x47, 0x07, 0x6c, 0xc8, 0x02, 0xe6, 0xf5, 0xe9, 0x0d,
		0xa7, 0x59, 0xf7, 0xa5, 0x90, 0x2f, 0x39, 0x0f, 0x52, 0xb4, 0x3f, 0x1c, 0x1d, 0x1c, 0x1c, 0x16,
		0xca, 0x9a, 0xd9, 0x31, 0xcc, 0x8e, 0x36, 0x8d, 0x6c, 0x6b, 0x13, 0xa3, 0xe2, 0x9c, 0x8d, 0x39,
		0x0b, 0xb5, 0xa1, 0x1f, 0x68, 0xf3, 0x7a, 0x51, 0xcd, 0x6c, 0x5d, 0x15, 0x34, 0xdb, 0x1b, 0x9c,
		0x7a, 0x66, 0xeb, 0xaa, 0xa4, 0x2d, 0xd6, 0x8e, 0xee, 0x69, 0xe1, 0xf8, 0xcc, 0xe8, 0xd6, 0xbf,
		0x68, 0x85, 0x3d, 0x95, 0x38, 0x96, 0x62, 0xc1, 0xe6, 0xdb, 0x70, 0xcd, 0x6d, 0xd0, 0xf9, 0xf6,
		0xa0, 0xbc, 0x55, 0xeb, 0x33, 0xa8, 0x1a, 0x7f, 0x8e, 0x3f, 0xc0, 0x62, 0x1c, 0x3a, 0x99, 0x93,
		0xa4, 0xcc, 0x7e, 0xdc, 0x80, 0x11, 0x6d, 0xe4, 0xab, 0xf7, 0x06, 0xfb, 0x97, 0x32, 0x0f, 0x4c,
		0xe7, 0x2a, 0xdc, 0x5d, 0xc4, 0x2e, 0x41, 0x24, 0x2d, 0x32, 0x1a, 0x36, 0x21, 0x26, 0x32, 0x1a,
		0x12, 0xc4, 0x29, 0x32, 0x1a, 0x44, 0x38, 0x97, 0xc8, 0x68, 0x10, 0xee, 0x49, 0x22, 0xa3, 0x61,
		0x2b, 0x62, 0x32, 0xea, 0x65, 0x34, 0x38, 0x03, 0xe6, 0x71, 0x87, 0x5f, 0x07, 0x6c, 0xa8, 0x52,
		0x46, 0x83, 0x0a, 0x51, 0x5a, 0x73, 0xb6, 0xb5, 0xef, 0xed, 0x50, 0x21, 0x3b, 0x31, 0x07, 0x86,
		0xd9, 0x31, 0x3b, 0x56, 0xe7, 0xe4, 0x7d, 0xb7, 0xfe, 0xc5, 0xea, 0xfe, 0xd5, 0xaa, 0xa9, 0x62,
		0x2e, 0xa2, 0xd1, 0xb0, 0xa1, 0x32, 0xf1, 0x45, 0x4d, 0xa9, 0x18, 0xe3, 0x32, 0x42, 0x5a, 0x56,
		0xbb, 0x56, 0x39, 0xfa, 0x54, 0x79, 0x6f, 0xd6, 0xcd, 0xee, 0x5f, 0x96, 0xd9, 0xfa, 0x52, 0xb0,
		0xda, 0xcd, 0x93, 0x6e, 0xad, 0x6d, 0x99, 0x55, 0x85, 0xc2, 0x1c, 0x6f, 0x81, 0x14, 0xe1, 0x48,
		0x29, 0x01, 0x29, 0x40, 0xca, 0xe3, 0x48, 0x69, 0xb5, 0x6b, 0x1f, 0xcc, 0xaf, 0x51, 0x8a, 0x46,
		0x07, 0x38, 0x01, 0x4e, 0x1e, 0xc1, 0x49, 0x07, 0xda, 0x04, 0x28, 0x59, 0x8f, 0x92, 0xa9, 0x3b,
		0xdb, 0x51, 0xc9, 0x9f, 0x55, 0xd9, 0xaf, 0x55, 0x13, 0x3d, 0xa9, 0xf5, 0x73, 0x15, 0xd4, 0x3b,
		0xe9, 0x45, 0x50, 0x09, 0x08, 0x02, 0x82, 0xb6, 0xcd, 0x2f, 0x06, 0x7e, 0xe0, 0x2f, 0x03, 0x3d,
		0xea, 0xa3, 0xa7, 0xab, 0x4a, 0xe5, 0x12, 0x60, 0x43, 0x0c, 0x36, 0xa5, 0x82, 0x82, 0xc0, 0x51,
		0x4a, 0xe2, 0x1e, 0xe2, 0x1f, 0x88, 0x7f, 0xa4, 0x41, 0x6f, 0x03, 0x1e, 0xd0, 0xcf, 0x00, 0x88,
		0x5c, 0x80, 0x74, 0x96, 0x01, 0x52, 0xa9, 0xfe, 0xaf, 0x55, 0xaf, 0x34, 0x10, 0x66, 0x07, 0x4c,
		0x1e, 0x83, 0x09, 0x20, 0x02, 0x88, 0x3c, 0x08, 0x91, 0x63, 0xb3, 0x61, 0x7d, 0x6c, 0x37, 0x4f,
		0x5a, 0x80, 0x09, 0x60, 0xb2, 0x16, 0x26, 0x5f, 0x2a, 0x66, 0xbd, 0xf2, 0xbe, 0x5e, 0xb3, 0xde,
		0x57, 0x1a, 0xd5, 0xff, 0x98, 0xd5, 0xee, 0x27, 0xc0, 0x05, 0x70, 0x59, 0x07, 0x97, 0x18, 0x24,
		0xd6, 0x51, 0xb3, 0xd1, 0xe9, 0xb6, 0x2b, 0x66, 0xa3, 0x8b, 0xb4, 0x11, 0x00, 0x66, 0x2d, 0x60,
		0x6a, 0x5f, 0xbb, 0xb5, 0x46, 0xb5, 0x56, 0x85, 0x3d, 0x02, 0x5e, 0x9e, 0x82, 0x97, 0xe8, 0xea,
		0xdf, 0x6c, 0x74, 0x6b, 0xed, 0x0f, 0x95, 0xa3, 0x9a, 0x55, 0xa9, 0x56, 0xdb, 0xb5, 0x0e, 0x34,
		0x0c, 0x10, 0xf3, 0x30, 0x62, 0x1a, 0x35, 0xf3, 0xe3, 0xa7, 0xf7, 0xcd, 0x36, 0x00, 0x03, 0xc0,
		0x3c, 0x01, 0x30, 0x25, 0xa8, 0x18, 0x20, 0xe6, 0x99, 0x88, 0x81, 0x8a, 0x01, 0x60, 0x9e, 0x0a,
		0x98, 0xba, 0xd9, 0xf8, 0x6c, 0x55, 0xba, 0xdd, 0xb6, 0xf9, 0xfe, 0xa4, 0x5b, 0x03, 0x54, 0x00,
		0x95, 0x87, 0xa1, 0x52, 0xad, 0xd5, 0x2b, 0x7f, 0x01, 0x25, 0x40, 0xc9, 0xe3, 0x28, 0xb1, 0xbe,
		0x54, 0xda, 0x66, 0xa5, 0x6b, 0x36, 0x1b, 0xc0, 0x0b, 0xf0, 0xf2, 0x20, 0x5e, 0x70, 0x41, 0x04,
		0x88, 0x3c, 0x02, 0x91, 0x7a, 0x13, 0x8e, 0x2c, 0x40, 0xf2, 0x08, 0x48, 0x5a, 0xed, 0x66, 0xb7,
		0x76, 0x34, 0x31, 0x39, 0xd3, 0xba, 0x2e, 0xe0, 0x05, 0x78, 0x59, 0x83, 0x97, 0xe3, 0xca, 0xd7,
		0x29, 0x66, 0x70, 0x9b, 0x08, 0xb4, 0x3c, 0x09, 0x2d, 0xed, 0x5a, 0xa7, 0xd6, 0xfe, 0x82, 0x1b,
		0x68, 0x60, 0xe6, 0x89, 0x98, 0x31, 0x1b, 0xb7, 0x5a, 0x06, 0xbc, 0x19, 0x68, 0x79, 0x10, 0x2d,
		0xed, 0x5a, 0xc7, 0xac, 0x9e, 0x54, 0xea, 0xd0, 0x2d, 0x40, 0xcb, 0xe3, 0x68, 0x41, 0xf7, 0x02,
		0xa0, 0xe7, 0xf5, 0x28, 0x52, 0x32, 0x87, 0x5b, 0x41, 0xa5, 0x93, 0x62, 0xf8, 0x00, 0x3a, 0x80,
		0xce, 0x8b, 0xa0, 0xa3, 0x60, 0x8e, 0x1d, 0xe0, 0x43, 0x06, 0x3e, 0x2a, 0xe7, 0x82, 0x03, 0x46,
		0x54, 0x60, 0xa4, 0x78, 0x8e, 0x38, 0x80, 0x44, 0x05, 0x48, 0x6a, 0xe7, 0x8e, 0x03, 0x47, 0x54,
		0x70, 0xa4, 0x7a, 0x4e, 0x39, 0x90, 0x44, 0x0a, 0x49, 0xea, 0x26, 0x82, 0x02, 0x48, 0x84, 0x80,
		0x54, 0x82, 0x4a, 0x02, 0x92, 0x36, 0x84, 0x24, 0xa8, 0x24, 0x00, 0xe9, 0xb5, 0x40, 0x52, 0x36,
		0x67, 0x1d, 0x10, 0x22, 0x05, 0x21, 0xc5, 0xee, 0xe4, 0x81, 0x1e, 0x7a, 0xe8, 0x51, 0x31, 0xc7,
		0x1d, 0x38, 0x22, 0x85, 0x23, 0x5c, 0xa0, 0x01, 0x3a, 0x2f, 0x84, 0x8e, 0x5a, 0x39, 0xf1, 0x00,
		0x0f, 0x29, 0xf0, 0x28, 0x9b, 0x2b, 0x0f, 0x1c, 0x51, 0xc1, 0x91, 0xca, 0x39, 0xf4, 0x40, 0x11,
		0x25, 0x14, 0xa9, 0x9d, 0x5b, 0x0f, 0x2c, 0x91, 0xc1, 0x92, 0xc2, 0x39, 0xf7, 0x40, 0x11, 0x15,
		0x14, 0xa9, 0x9c, 0x8b, 0x0f, 0x14, 0x51, 0x41, 0x51, 0xb7, 0x66, 0x55, 0x6b, 0x1f, 0x2a, 0x27,
		0xf5, 0xae, 0x75, 0x5c, 0xeb, 0xb6, 0xcd, 0x23, 0x80, 0x08, 0x20, 0x7a, 0x2e, 0x88, 0x4e, 0x1a,
		0x71, 0x6a, 0x5a, 0xad, 0x6a, 0xd5, 0x3b, 0x48, 0x2b, 0x02, 0x88, 0x5e, 0x00, 0xa2, 0xa9, 0x7f,
		0x5d, 0xab, 0xc2, 0xa2, 0x01, 0x47, 0xaf, 0xc0, 0x51, 0xd7, 0xac, 0x9b, 0xff, 0xa7, 0x38, 0x8a,
		0x30, 0xc1, 0x69, 0xdb, 0x4f, 0x67, 0x4a, 0x6a, 0x40, 0x15, 0xf6, 0x2f, 0x01, 0x16, 0xf8, 0x91,
		0x00, 0x0b, 0xfc, 0x45, 0xe0, 0x05, 0x7e, 0x21, 0xd0, 0x92, 0x72, 0xb4, 0xcc, 0x86, 0xdb, 0x1f,
		0x55, 0x5a, 0x71, 0xf7, 0x8a, 0xb6, 0x55, 0xa9, 0x7f, 0x6c, 0xb6, 0xcd, 0xee, 0xa7, 0x63, 0x20,
		0x05, 0x48, 0x79, 0x10, 0x29, 0xb7, 0x7f, 0x03, 0x54, 0x00, 0x95, 0x07, 0xa0, 0x82, 0x96, 0x38,
		0xc0, 0xcf, 0xd6, 0x1a, 0x27, 0x05, 0x35, 0x4f, 0x9a, 0x11, 0xa4, 0xa2, 0xd1, 0x8a, 0x21, 0x84,
		0x08, 0xe9, 0x16, 0xef, 0x2b, 0xfd, 0xfd, 0xa4, 0xbd, 0x8f, 0x74, 0xa5, 0xa3, 0x29, 0x19, 0x51,
		0x83, 0xa5, 0x57, 0x3c, 0xcf, 0xe7, 0x36, 0x77, 0x7c, 0x4f, 0x2f, 0x13, 0x36, 0x51, 0x7a, 0xd8,
		0xbf, 0x60, 0x97, 0xf6, 0xc8, 0xe6, 0x17, 0x13, 0x63, 0x94, 0xf1, 0x47, 0xcc, 0xeb, 0xfb, 0xde,
		0xd0, 0x39, 0x37, 0x3c, 0xc6, 0x7f, 0xf8, 0xc1, 0x77, 0xc3, 0xf1, 0x42, 0x6e, 0x7b, 0x7d, 0x96,
		0xb9, 0xfb, 0x46, 0xb8, 0xf2, 0x4e, 0x66, 0x14, 0xf8, 0xdc, 0xef, 0xfb, 0x6e, 0x18, 0xbf, 0xca,
		0x38, 0xa1, 0x13, 0x66, 0x5c, 0x76, 0xc5, 0xdc, 0xd9, 0xb7, 0x8c, 0xeb, 0x78, 0xdf, 0x8d, 0x90,
		0xdb, 0x9c, 0x19, 0x03, 0x9b, 0xdb, 0x67, 0x76, 0xc8, 0x32, 0x6e, 0x38, 0xca, 0x70, 0xf7, 0x2a,
		0x9c, 0xfc, 0x91, 0x61, 0x3f, 0x39, 0xf3, 0x06, 0x6c, 0x60, 0x38, 0xa3, 0xab, 0x82, 0x11, 0x30,
		0xbb, 0x7f, 0x61, 0x9f, 0x39, 0xae, 0xc3, 0xaf, 0x33, 0xa3, 0x80, 0x0d, 0x9d, 0x9f, 0x2c, 0x9c,
		0xbd, 0xc8, 0x84, 0xe3, 0xb3, 0xe8, 0xc7, 0xa6, 0xdf, 0x33, 0x43, 0xd7, 0x3e, 0x0f, 0x33, 0xd1,
		0xef, 0x26, 0xec, 0xc3, 0xeb, 0x21, 0x0f, 0xc6, 0x7d, 0xee, 0xcd, 0x3c, 0x80, 0x66, 0xbc, 0xe7,
		0x8d, 0xe9, 0x7e, 0x9a, 0xb3, 0xed, 0xb4, 0xee, 0xfc, 0x3d, 0xbc, 0xfb, 0x86, 0xd5, 0x9a, 0xef,
		0x77, 0xfc, 0xca, 0x32, 0x43, 0x27, 0xb4, 0xea, 0xd1, 0x7e, 0x4f, 0xbf, 0x59, 0x75, 0xc7, 0xfb,
		0xde, 0x99, 0x6c, 0x49, 0x75, 0xb6, 0xdb, 0x56, 0x3d, 0x1c, 0x59, 0x5d, 0xf7, 0x2a, 0x9c, 0xfc,
		0x61, 0xd5, 0x66, 0xbb, 0x6d, 0x8e, 0xae, 0x0a, 0xed, 0x85, 0xbd, 0xb6, 0x5a, 0xb3, 0xbd, 0x9e,
		0xbd, 0xb0, 0x3a, 0xd3, 0xbd, 0x9e, 0x7d, 0xb7, 0x3e, 0x4c, 0xf6, 0xda, 0x8a, 0x7e, 0x31, 0x4d,
		0x27, 0x85, 0x9e, 0xc2, 0xa2, 0x25, 0x11, 0x31, 0xd5, 0xa9, 0xb3, 0x9f, 0x3c, 0xb0, 0x8d, 0xf1,
		0x04, 0xdb, 0x67, 0x2e, 0x23, 0xa9, 0x36, 0xf5, 0x1f, 0x17, 0xcc, 0x23, 0xcb, 0xb3, 0x09, 0x9b,
		0x99, 0x39, 0xdb, 0xd9, 0xdb, 0x9b, 0x6a, 0xe7, 0x0c, 0xbf, 0x1e, 0x31, 0xed, 0xdf, 0xda, 0x1f,
		0x7e, 0xdf, 0x98, 0x58, 0x08, 0xc3, 0x0d, 0x07, 0x67, 0xc6, 0xe4, 0xcd, 0xb0, 0x6c, 0xb6, 0x96,
		0xaf, 0x07, 0x5a, 0xed, 0xda, 0x07, 0xf3, 0xab, 0xf5, 0xa1, 0x5e, 0xf9, 0xd8, 0xf9, 0x83, 0xb2,
		0x5a, 0xef, 0xf8, 0xe3, 0xa0, 0xcf, 0x48, 0xdb, 0xfb, 0x48, 0xce, 0xcf, 0xec, 0xfa, 0x87, 0x1f,
		0x0c, 0x26, 0xcf, 0x23, 0xc2, 0x33, 0x6d, 0xce, 0xaf, 0x7f, 0xb2, 0xc3, 0x4a, 0x70, 0x3e, 0xbe,
		0x64, 0x1e, 0xd7, 0xcb, 0x1a, 0x0f, 0xc6, 0x8c, 0xb8, 0xc0, 0x0b, 0xd2, 0x6e, 0x00, 0xf0, 0x6f,
		0x10, 0x2b, 0x7a, 0xfe, 0x23, 0xa8, 0xb2, 0xb0, 0x1f, 0x38, 0x23, 0xf2, 0xfe, 0xf7, 0x92, 0x72,
		0x6c, 0x7a, 0xee, 0xb5, 0xe6, 0x78, 0x7d, 0x77, 0x3c, 0x60, 0x1a, 0xbf, 0x60, 0x5a, 0xe4, 0xce,
		0x6a, 0x7d, 0xdf, 0xe3, 0xb6, 0xe3, 0xb1, 0x40, 0x9b, 0x9c, 0xd6, 0xe8, 0x1f, 0xc2, 0xf1, 0x99,
		0xd1, 0xad, 0x7f, 0xd1, 0x9c, 0x50, 0x9b, 0x40, 0xe8, 0xd4, 0x2b, 0xec, 0x51, 0x3f, 0xc5, 0x8a,
		0x28, 0xc7, 0xbb, 0x0a, 0x72, 0xb0, 0x00, 0x24, 0xfa, 0xb1, 0x51, 0xe5, 0x74, 0xe5, 0x8a, 0xbe,
		0x7c, 0xdd, 0x19, 0x40, 0x68, 0x27, 0x4d, 0xa1, 0x1d, 0x72, 0x52, 0xf5, 0xc0, 0xdf, 0xd4, 0x0d,
		0x79, 0xa5, 0x31, 0xd4, 0x45, 0xd0, 0x24, 0xa5, 0x28, 0xb8, 0x45, 0xcb, 0x9c, 0xd0, 0x51, 0x87,
		0x84, 0x14, 0x8f, 0x1e, 0x9d, 0x9b, 0x30, 0xf2, 0x2d, 0x8d, 0xc0, 0x1f, 0x73, 0x16, 0x18, 0xce,
		0x80, 0x9c, 0xfe, 0x89, 0x5d, 0xfc, 0xfb, 0xc5, 0x25, 0xa6, 0xc8, 0x3f, 0x3b, 0xde, 0x64, 0x0b,
		0x73, 0xc4, 0xc4, 0x3a, 0x8a, 0xd4, 0x88, 0x5e, 0xd6, 0xb2, 0xc4, 0x04, 0x9b, 0xaa, 0x10, 0x9a,
		0x46, 0x6f, 0x0e, 0xbc, 0x59, 0xd8, 0x81, 0xa2, 0xc1, 0x20, 0xce, 0x0c, 0x17, 0xd9, 0xe0, 0xd4,
		0x14, 0x13, 0x25, 0x82, 0xca, 0x90, 0xbf, 0x25, 0xc2, 0x37, 0x07, 0x26, 0x2e, 0x6b, 0x94, 0x72,
		0xf6, 0xab, 0x4e, 0x40, 0xd4, 0xcb, 0x8f, 0x2e, 0x24, 0xc9, 0x2a, 0x93, 0xb9, 0x3e, 0xa6, 0x7c,
		0x47, 0x4d, 0xd4, 0x01, 0x20, 0xef, 0x08, 0xa8, 0xe0, 0x10, 0x28, 0xe4, 0x18, 0xa8, 0xe2, 0x20,
		0x28, 0xe7, 0x28, 0x28, 0xe7, 0x30, 0xa8, 0xe5, 0x38, 0xd0, 0x74, 0x20, 0x88, 0x3a, 0x12, 0xe4,
		0x1d, 0x8a, 0x58, 0x40, 0xba, 0xd1, 0x85, 0xb5, 0xba, 0x9d, 0x6a, 0x84, 0x61, 0x9d, 0xc3, 0x91,
		0x25, 0x2e, 0x26, 0x75, 0xc7, 0x43, 0x25, 0x07, 0x44, 0x41, 0x47, 0x44, 0x35, 0x87, 0x44, 0x59,
		0xc7, 0x44, 0x59, 0x07, 0x45, 0x4d, 0x47, 0x85, 0xb6, 0xc3, 0x42, 0xdc, 0x71, 0x89, 0x1f, 0x79,
		0xf7, 0x7a, 0xc4, 0xd4, 0xd2, 0xb8, 0xd1, 0x65, 0x84, 0x3d, 0x18, 0x04, 0x2c, 0x54, 0x42, 0xed,
		0xce, 0xc3, 0x12, 0xef, 0x14, 0x90, 0xb5, 0x65, 0x73, 0xce, 0x02, 0x4f, 0x99, 0x9a, 0x5c, 0x7d,
		0xe7, 0x5b, 0xd6, 0x38, 0xec, 0xfd, 0xfe, 0x96, 0x33, 0x0e, 0x7b, 0xd3, 0x97, 0xb9, 0xe8, 0xdb,
		0xaf, 0xfc, 0xcd, 0xef, 0xfc, 0xb7, 0xac, 0x51, 0x98, 0xbd, 0x9b, 0x2f, 0x7e, 0xcb, 0x1a, 0xc5,
		0xde, 0xee, 0xce, 0xe9, 0xe9, 0xde, 0x73, 0x7f, 0x66, 0xf7, 0xd7, 0xfe, 0x0d, 0x7d, 0x35, 0xd8,
		0x53, 0x01, 0x5e, 0xcd, 0x8e, 0xf9, 0x55, 0x39, 0x8c, 0xfd, 0xbd, 0x23, 0x0a, 0x65, 0xbb, 0xff,
		0x50, 0x00, 0x67, 0x30, 0xb7, 0xaf, 0xc0, 0x92, 0x02, 0xd5, 0x22, 0xab, 0x21, 0x04, 0x36, 0x64,
		0x01, 0xf3, 0x22, 0xea, 0xa0, 0xc6, 0x91, 0x55, 0xa7, 0xb8, 0xfe, 0xb6, 0xa0, 0xfe, 0xc3, 0xd1,
		0xc1, 0xc1, 0x61, 0xa1, 0xac, 0x99, 0x1d, 0xc3, 0xec, 0x68, 0x53, 0x2a, 0xac, 0x55, 0x38, 0x0f,
		0x9c, 0xb3, 0x31, 0x67, 0xa1, 0x36, 0xf4, 0x03, 0x6d, 0x9e, 0x17, 0xa4, 0x99, 0xad, 0xab, 0xc2,
		0xa9, 0x67, 0x7b, 0xd1, 0xab, 0x92, 0xb6, 0x98, 0x23, 0xb4, 0x17, 0xa7, 0x98, 0xe6, 0x72, 0x0a,
		0x75, 0x04, 0x51, 0x8d, 0x9d, 0xde, 0xc7, 0x52, 0x6f, 0x0f, 0x8a, 0x62, 0x9d, 0x58, 0x54, 0x25,
		0xac, 0xf7, 0x12, 0xd7, 0x64, 0x4e, 0x12, 0x1a, 0x2e, 0x6c, 0x99, 0x94, 0x3d, 0x64, 0xe5, 0xa7,
		0xcd, 0x03, 0xd3, 0xb9, 0x0a, 0xc1, 0x8e, 0xd8, 0x25, 0x88, 0xa4, 0xc5, 0x15, 0xc8, 0x26, 0xc4,
		0xc4, 0x15, 0x48, 0x82, 0x38, 0xc5, 0x15, 0x88, 0x08, 0xe7, 0x12, 0x57, 0x20, 0xc2, 0x3d, 0x49,
		0x5c, 0x81, 0x6c, 0x45, 0x4c, 0x46, 0xc1, 0x2b, 0x90, 0x01, 0xf3, 0xb8, 0xc3, 0xaf, 0x03, 0x36,
		0x54, 0xe9, 0x06, 0xa4, 0xa8, 0x80, 0xac, 0xe6, 0x6c, 0x6b, 0xdf, 0xdb, 0xa1, 0x42, 0x76, 0xe2,
		0xb6, 0x47, 0xb9, 0xd9, 0x99, 0xf5, 0x84, 0x55, 0xa9, 0x25, 0xac, 0x8a, 0xad, 0x60, 0x55, 0xed,
		0x62, 0x7f, 0xa7, 0x6b, 0x87, 0xd9, 0xfa, 0x52, 0xb0, 0x66, 0xdd, 0x3c, 0x55, 0x1a, 0xca, 0x8f,
		0x66, 0xd3, 0x12, 0x90, 0x52, 0x02, 0x52, 0x80, 0x94, 0xc7, 0x91, 0xb2, 0xd8, 0x09, 0x08, 0x38,
		0x01, 0x4e, 0x1e, 0xc1, 0x49, 0x07, 0xda, 0x04, 0x28, 0x59, 0x8f, 0x12, 0x8c, 0x38, 0x00, 0x7a,
		0xb6, 0xd7, 0xcf, 0x55, 0x50, 0xef, 0xa4, 0x17, 0x41, 0x25, 0x20, 0x08, 0x08, 0xda, 0x36, 0xbf,
		0x18, 0xf8, 0x81, 0xbf, 0x0c, 0xf4, 0xa8, 0x8f, 0x9e, 0x6e, 0xe5, 0x23, 0x60, 0x03, 0xd8, 0xbc,
		0x00, 0x36, 0xa5, 0x02, 0xe6, 0x39, 0x25, 0xfb, 0x85, 0x89, 0xf7, 0x88, 0x7f, 0xa4, 0x42, 0x6f,
		0x03, 0x1e, 0xd0, 0xcf, 0x00, 0x88, 0x5c, 0x80, 0xdc, 0x99, 0x53, 0x5e, 0xa9, 0xfe, 0xaf, 0x55,
		0xaf, 0x34, 0x10, 0x66, 0x07, 0x4c, 0x1e, 0x83, 0x09, 0x20, 0x02, 0x88, 0x3c, 0x08, 0x91, 0x63,
		0xb3, 0x61, 0x7d, 0x6c, 0x37, 0x4f, 0x5a, 0x80, 0x09, 0x60, 0xb2, 0x16, 0x26, 0x5f, 0x2a, 0x66,
		0xbd, 0xf2, 0xbe, 0x5e, 0xb3, 0xde, 0x57, 0x1a, 0xd5, 0xff, 0x98, 0xd5, 0xee, 0x27, 0xc0, 0x05,
		0x70, 0x59, 0x07, 0x97, 0x18, 0x24, 0xd6, 0x51, 0xb3, 0xd1, 0xe9, 0xb6, 0x2b, 0x66, 0xa3, 0x8b,
		0xb4, 0x11, 0x00, 0x66, 0x2d, 0x60, 0x6a, 0x5f, 0xbb, 0xb5, 0x46, 0xb5, 0x56, 0x85, 0x3d, 0x02,
		0x5e, 0x9e, 0x82, 0x97, 0xe8, 0xea, 0xdf, 0x6c, 0x74, 0x6b, 0xed, 0x0f, 0x95, 0xa3, 0x9a, 0x55,
		0xa9, 0x56, 0xdb, 0xb5, 0x0e, 0x34, 0x0c, 0x10, 0xf3, 0x30, 0x62, 0x1a, 0x35, 0xf3, 0xe3, 0xa7,
		0xf7, 0xcd, 0x36, 0x00, 0x03, 0xc0, 0x3c, 0x01, 0x30, 0x25, 0xa8, 0x18, 0x20, 0xe6, 0x99, 0x88,
		0x81, 0x8a, 0x01, 0x60, 0x9e, 0x0a, 0x98, 0xba, 0xd9, 0xf8, 0x6c, 0x55, 0xba, 0xdd, 0xb6, 0xf9,
		0xfe, 0xa4, 0x5b, 0x03, 0x54, 0x00, 0x95, 0x87, 0xa1, 0x52, 0xad, 0xd5, 0x2b, 0x7f, 0x01, 0x25,
		0x40, 0xc9, 0xe3, 0x28, 0xb1, 0xbe, 0x54, 0xda, 0x66, 0xa5, 0x6b, 0x36, 0x1b, 0xc0, 0x0b, 0xf0,
		0xf2, 0x20, 0x5e, 0x70, 0x41, 0x04, 0x88, 0x3c, 0x02, 0x91, 0x7a, 0x13, 0x8e, 0x2c, 0x40, 0xf2,
		0x08, 0x48, 0x5a, 0xed, 0x66, 0xb7, 0x76, 0x34, 0x31, 0x39, 0xd3, 0xba, 0x2e, 0xe0, 0x05, 0x78,
		0x59, 0x83, 0x97, 0xe3, 0xca, 0xd7, 0x29, 0x66, 0x70, 0x9b, 0x08, 0xb4, 0x3c, 0x09, 0x2d, 0xed,
		0x5a, 0xa7, 0xd6, 0xfe, 0x82, 0x1b, 0x68, 0x60, 0xe6, 0x89, 0x98, 0x31, 0x1b, 0xb7, 0x5a, 0x06,
		0xbc, 0x19, 0x68, 0x79, 0x10, 0x2d, 0xed, 0x5a, 0xc7, 0xac, 0x9e, 0x54, 0xea, 0xd0, 0x2d, 0x40,
		0xcb, 0xe3, 0x68, 0x41, 0xf7, 0x02, 0xa0, 0xe7, 0xf5, 0x28, 0x52, 0x32, 0x87, 0x5b, 0x41, 0xa5,
		0x93, 0x62, 0xf8, 0x00, 0x3a, 0x80, 0xce, 0x8b, 0xa0, 0xa3, 0x60, 0x8e, 0x1d, 0xe0, 0x43, 0x06,
		0x3e, 0x2a, 0xe7, 0x82, 0x03, 0x46, 0x54, 0x60, 0xa4, 0x78, 0x8e, 0x38, 0x80, 0x44, 0x05, 0x48,
		0x6a, 0xe7, 0x8e, 0x03, 0x47, 0x54, 0x70, 0xa4, 0x7a, 0x4e, 0x39, 0x90, 0x44, 0x0a, 0x49, 0xea,
		0x26, 0x82, 0x02, 0x48, 0x84, 0x80, 0x54, 0x82, 0x4a, 0x02, 0x92, 0x36, 0x84, 0x24, 0xa8, 0x24,
		0x00, 0xe9, 0xb5, 0x40, 0x52, 0x36, 0x67, 0x1d, 0x10, 0x22, 0x05, 0x21, 0xc5, 0xee, 0xe4, 0x81,
		0x1e, 0x7a, 0xe8, 0x51, 0x31, 0xc7, 0x1d, 0x38, 0x22, 0x85, 0x23, 0x5c, 0xa0, 0x01, 0x3a, 0x2f,
		0x84, 0x8e, 0x5a, 0x39, 0xf1, 0x00, 0x0f, 0x29, 0xf0, 0x28, 0x9b, 0x2b, 0x0f, 0x1c, 0x51, 0xc1,
		0x91, 0xca, 0x39, 0xf4, 0x40, 0x11, 0x25, 0x14, 0xa9, 0x9d, 0x5b, 0x0f, 0x2c, 0x91, 0xc1, 0x92,
		0xc2, 0x39, 0xf7, 0x40, 0x11, 0x15, 0x14, 0xa9, 0x9c, 0x8b, 0x0f, 0x14, 0x51, 0x41, 0x51, 0xb7,
		0x66, 0x55, 0x6b, 0x1f, 0x2a, 0x27, 0xf5, 0xae, 0x75, 0x5c, 0xeb, 0xb6, 0xcd, 0x23, 0x80, 0x08,
		0x20, 0x7a, 0x2e, 0x88, 0x4e, 0x1a, 0x71, 0x6a, 0x5a, 0xad, 0x6a, 0xd5, 0x3b, 0x48, 0x2b, 0x02,
		0x88, 0x5e, 0x00, 0xa2, 0xa9, 0x7f, 0x5d, 0xab, 0xc2, 0xa2, 0x01, 0x47, 0xaf, 0xc0, 0x51, 0xd7,
		0xac, 0x9b, 0xff, 0xa7, 0x38, 0x8a, 0x30, 0xc1, 0x69, 0xdb, 0x4f, 0x67, 0x4a, 0x6a, 0x40, 0x15,
		0xf6, 0x2f, 0x01, 0x16, 0xf8, 0x91, 0x00, 0x0b, 0xfc, 0x45, 0xe0, 0x05, 0x7e, 0x21, 0xd0, 0x92,
		0x72, 0xb4, 0xcc, 0x86, 0xdb, 0x1f, 0x55, 0x5a, 0x71, 0xf7, 0x8a, 0xb6, 0x55, 0xa9, 0x7f, 0x6c,
		0xb6, 0xcd, 0xee, 0xa7, 0x63, 0x20, 0x05, 0x48, 0x79, 0x10, 0x29, 0xb7, 0x7f, 0x03, 0x54, 0x00,
		0x95, 0x07, 0xa0, 0x82, 0x96, 0x38, 0xc0, 0xcf, 0xd6, 0x1a, 0x27, 0x05, 0x35, 0x4f, 0x9a, 0x11,
		0xa4, 0xa2, 0xd1, 0x8a, 0x21, 0x84, 0x08, 0xe9, 0x16, 0xef, 0x2b, 0xfd, 0xfd, 0xa4, 0xbd, 0x8f,
		0x74, 0xa5, 0xa3, 0x29, 0x19, 0x51, 0x83, 0xa5, 0x57, 0x3c, 0xcf, 0xe7, 0x36, 0x77, 0x7c, 0x4f,
		0x2f, 0x13, 0x36, 0x51, 0x7a, 0xd8, 0xbf, 0x60, 0x97, 0xf6, 0xc8, 0xe6, 0x17, 0x13, 0x63, 0x94,
		0xf1, 0x47, 0xcc, 0xeb, 0xfb, 0xde, 0xd0, 0x39, 0x37, 0x3c, 0xc6, 0x7f, 0xf8, 0xc1, 0x77, 0xc3,
		0xf1, 0x42, 0x6e, 0x7b, 0x7d, 0x96, 0xb9, 0xfb, 0x46, 0xb8, 0xf2, 0x4e, 0x66, 0x14, 0xf8, 0xdc,
		0xef, 0xfb, 0x6e, 0x18, 0xbf, 0xca, 0x38, 0xa1, 0x13, 0x66, 0x5c, 0x76, 0xc5, 0xdc, 0xd9, 0xb7,
		0x8c, 0xeb, 0x78, 0xdf, 0x8d, 0x90, 0xdb, 0x9c, 0x19, 0x03, 0x9b, 0xdb, 0x67, 0x76, 0xc8, 0x32,
		0x6e, 0x38, 0xca, 0x70, 0xf7, 0x2a, 0x9c, 0xfc, 0x91, 0x61, 0x3f, 0x39, 0xf3, 0x06, 0x6c, 0x60,
		0x38, 0xa3, 0xab, 0x82, 0x11, 0x30, 0xbb, 0x7f, 0x61, 0x9f, 0x39, 0xae, 0xc3, 0xaf, 0x33, 0xa3,
		0x80, 0x0d, 0x9d, 0x9f, 0x2c, 0x9c, 0xbd, 0xc8, 0x84, 0xe3, 0xb3, 0xe8, 0xc7, 0xa6, 0xdf, 0x33,
		0xd1, 0x0f, 0x84, 0xfe, 0x38, 0xe8, 0x33, 0x23, 0xf0, 0xc7, 0x9c, 0x05, 0x86, 0x33, 0xc8, 0x44,
		0x6b, 0x11, 0xf6, 0xe9, 0xf5, 0x90, 0x07, 0xe3, 0x3e, 0xf7, 0x66, 0x1e, 0x41, 0x33, 0x7e, 0x06,
		0x8d, 0xe9, 0xfe, 0x9a, 0xb3, 0xed, 0xb5, 0xee, 0xfc, 0x3d, 0xbc, 0xfb, 0x86, 0xd5, 0x9a, 0xef,
		0x7f, 0xfc, 0xca, 0x32, 0x43, 0x27, 0xb4, 0xea, 0xd1, 0xfe, 0x4f, 0xbf, 0x59, 0x75, 0xc7, 0xfb,
		0xde, 0x99, 0x6c, 0x49, 0x75, 0xb6, 0xfb, 0x56, 0x3d, 0x1c, 0x59, 0x5d, 0xf7, 0x2a, 0x9c, 0xfc,
		0x61, 0xd5, 0x66, 0xbb, 0x6f, 0x8e, 0xae, 0x0a, 0xed, 0x85, 0xbd, 0xb7, 0x5a, 0xb3, 0xbd, 0x9f,
		0xbd, 0xb0, 0x3a, 0xd3, 0xbd, 0x9f, 0x7d, 0xb7, 0x26, 0xff, 0xbf, 0x13, 0x6d, 0x7d, 0x3b, 0xda,
		0x79, 0x73, 0x60, 0x45, 0xab, 0xd0, 0xf4, 0x60, 0xe8, 0x69, 0x33, 0x5a, 0x12, 0x11, 0xd3, 0xab,
		0x3a, 0xfb, 0xc9, 0x03, 0xdb, 0x18, 0x4f, 0x80, 0x7e, 0xe6, 0x32, 0x92, 0x3a, 0x55, 0xff, 0x71,
		0xc1, 0x3c, 0xb2, 0x24, 0x9c, 0xb0, 0x0d, 0x9a, 0x53, 0xa1, 0xbd, 0xbd, 0xa9, 0xaa, 0xce, 0xf0,
		0xeb, 0x11, 0xd3, 0xfe, 0xad, 0xfd, 0xe1, 0xf7, 0x8d, 0x89, 0xf9, 0x30, 0xdc, 0x70, 0x70, 0x66,
		0x4c, 0xde, 0x0c, 0xcb, 0x66, 0xeb, 0x9e, 0x46, 0x35, 0x33, 0x0e, 0x65, 0x56, 0xff, 0xa0, 0xac,
		0xe5, 0xa7, 0xca, 0x91, 0xb4, 0x3b, 0x10, 0xc9, 0xf9, 0x99, 0x5d, 0xff, 0xf0, 0x83, 0xc1, 0xe4,
		0x89, 0x44, 0x88, 0xa6, 0x1d, 0x12, 0xd0, 0x3f, 0xd9, 0x61, 0x25, 0x38, 0x1f, 0x5f, 0x32, 0x8f,
		0xeb, 0x65, 0x8d, 0x07, 0x63, 0x46, 0x5c, 0xe0, 0x05, 0x69, 0x37, 0x02, 0xf9, 0x37, 0x08, 0x26,
		0x3d, 0xff, 0x21, 0x54, 0x59, 0xd8, 0x0f, 0x9c, 0x11, 0x79, 0x07, 0x7d, 0x49, 0x41, 0x36, 0x3d,
		0xf7, 0x5a, 0x73, 0xbc, 0xbe, 0x3b, 0x1e, 0x30, 0x8d, 0x5f, 0x30, 0xcd, 0x6c, 0x5d, 0x15, 0xb4,
		0xa9, 0x5e, 0xd1, 0xa6, 0x5e, 0x97, 0x66, 0x56, 0xb5, 0xbe, 0xef, 0x71, 0xdb, 0xf1, 0x58, 0xa0,
		0x4d, 0xce, 0xef, 0xa9, 0x37, 0xf9, 0x9f, 0xe1, 0xf8, 0xcc, 0xe8, 0xd6, 0xbf, 0x68, 0x4e, 0xa8,
		0x45, 0x50, 0xcb, 0xe5, 0xf6, 0xa8, 0x1f, 0x6c, 0x45, 0xf4, 0xe5, 0x5d, 0x9d, 0x39, 0x58, 0x40,
		0x16, 0xfd, 0x68, 0xaa, 0x72, 0xea, 0x73, 0x45, 0x85, 0x6e, 0xf8, 0x50, 0x20, 0x3a, 0x94, 0xa6,
		0xe8, 0x10, 0x39, 0xa9, 0x7a, 0x60, 0x79, 0xea, 0x46, 0xcd, 0xb6, 0x21, 0x5a, 0x46, 0xd0, 0x66,
		0xa5, 0x35, 0x3e, 0x46, 0xcb, 0xd6, 0xd0, 0xd1, 0x95, 0x84, 0xb4, 0x92, 0xee, 0x8c, 0xae, 0x4a,
		0xab, 0x67, 0x84, 0x9a, 0x72, 0x8a, 0x19, 0xc2, 0xfd, 0xe2, 0x12, 0xd3, 0xf2, 0x9f, 0x1d, 0x6f,
		0xb2, 0x85, 0x39, 0x62, 0x62, 0x1d, 0x45, 0x3a, 0x45, 0x2f, 0x6b, 0x59, 0x62, 0x82, 0x4d, 0xf5,
		0x09, 0x4d, 0x8b, 0x38, 0x07, 0xde, 0x2c, 0x6e, 0x41, 0xd1, 0x7a, 0x10, 0xe7, 0x91, 0x8b, 0xdc,
		0x71, 0x6a, 0xa7, 0x89, 0xd2, 0x46, 0x65, 0xa8, 0xe2, 0x12, 0x3d, 0x9c, 0x03, 0x13, 0xf7, 0x3d,
		0x4a, 0x31, 0x81, 0xaa, 0x13, 0x10, 0xa5, 0x00, 0xd1, 0x9d, 0x26, 0x59, 0x65, 0x32, 0xd7, 0xc7,
		0x94, 0xef, 0xbc, 0x89, 0x3a, 0x00, 0xe4, 0x1d, 0x01, 0x15, 0x1c, 0x02, 0x85, 0x1c, 0x03, 0x55,
		0x1c, 0x04, 0xe5, 0x1c, 0x05, 0xe5, 0x1c, 0x06, 0xb5, 0x1c, 0x07, 0x9a, 0x0e, 0x04, 0x51, 0x47,
		0x82, 0xbc, 0x43, 0x11, 0x0b, 0x48, 0x37, 0xba, 0xb0, 0x56, 0xb7, 0x53, 0x0e, 0x1a, 0xde, 0xe7,
		0x70, 0x64, 0x89, 0x8b, 0x49, 0xdd, 0xf1, 0x50, 0xc9, 0x01, 0x51, 0xd0, 0x11, 0x51, 0xcd, 0x21,
		0x51, 0xd6, 0x31, 0x51, 0xd6, 0x41, 0x51, 0xd3, 0x51, 0xa1, 0xed, 0xb0, 0x10, 0x77, 0x5c, 0xe2,
		0x47, 0xde, 0xbd, 0x1e, 0x31, 0xb5, 0x34, 0x6e, 0x74, 0x19, 0x61, 0x0f, 0x06, 0x01, 0x0b, 0x95,
		0x50, 0xbb, 0xf3, 0xb0, 0xc4, 0x3b, 0x05, 0x64, 0x6d, 0xd9, 0x9c, 0xb3, 0xc0, 0x53, 0xa6, 0xe6,
		0x57, 0xdf, 0xd9, 0xf9, 0x96, 0x35, 0x0e, 0x6d, 0x63, 0x58, 0x31, 0x3e, 0xf4, 0x7e, 0xe5, 0xde,
		0x16, 0x6e, 0xca, 0xbb, 0xbf, 0x0e, 0x6e, 0xee, 0xbe, 0xf9, 0xfb, 0xbe, 0xff, 0x96, 0x7b, 0x7b,
		0x70, 0x53, 0x5e, 0xf3, 0x2f, 0xa5, 0x9b, 0xf2, 0x13, 0x7f, 0x47, 0xf1, 0x66, 0x67, 0xe5, 0xbf,
		0x4e, 0xde, 0xcf, 0xaf, 0xfb, 0x81, 0xc2, 0x9a, 0x1f, 0xd8, 0x5f, 0xf7, 0x03, 0xfb, 0x6b, 0x7e,
		0x60, 0xad, 0x48, 0xf9, 0x35, 0x3f, 0x50, 0xbc, 0xf9, 0xbd, 0xf2, 0xff, 0x77, 0xee, 0xff, 0xaf,
		0xa5, 0x9b, 0xdd, 0xdf, 0xeb, 0xfe, 0xed, 0xe0, 0xe6, 0x77, 0x79, 0x77, 0x97, 0xbe, 0x61, 0xe8,
		0xa9, 0x70, 0xe0, 0x9a, 0x1d, 0xf3, 0xab, 0x72, 0xa7, 0xee, 0x6f, 0x1c, 0x3b, 0x59, 0xc7, 0xee,
		0x1f, 0x0a, 0x9c, 0x3b, 0x38, 0x64, 0xaf, 0x38, 0x5b, 0x0a, 0x94, 0x24, 0xad, 0x06, 0x99, 0xd8,
		0x90, 0x05, 0xcc, 0x8b, 0xc8, 0xa5, 0x1a, 0x2a, 0x4c, 0x9d, 0xf6, 0x0e, 0xb7, 0x2d, 0x1d, 0x3e,
		0x1c, 0x1d, 0x1c, 0x1c, 0x16, 0xca, 0x9a, 0xd9, 0x31, 0xcc, 0x8e, 0x36, 0x0d, 0x96, 0x68, 0x15,
		0xce, 0x03, 0xe7, 0x6c, 0xcc, 0x59, 0xa8, 0x0d, 0xfd, 0x40, 0x9b, 0xa7, 0x91, 0x45, 0xe9, 0xca,
		0xa7, 0x9e, 0xed, 0x45, 0xaf, 0x4a, 0xda, 0x62, 0x4a, 0xd9, 0x5e, 0x9c, 0xa1, 0x9c, 0xcb, 0xef,
		0x29, 0xd4, 0x94, 0x46, 0xb5, 0x00, 0xc6, 0x7d, 0x81, 0x8c, 0xdb, 0x93, 0xa2, 0x58, 0x33, 0x20,
		0x55, 0x63, 0x1a, 0xf7, 0xc6, 0x36, 0x12, 0x3a, 0x4a, 0x68, 0xfa, 0xb1, 0x65, 0x52, 0xf6, 0x50,
		0xd6, 0x91, 0x36, 0x1f, 0x4c, 0xe7, 0x2a, 0x04, 0xc4, 0x62, 0xa7, 0x20, 0x92, 0x16, 0xd7, 0x64,
		0x9b, 0x10, 0x13, 0xd7, 0x64, 0x09, 0xe2, 0x14, 0xd7, 0x64, 0x22, 0xbc, 0x4b, 0x5c, 0x93, 0x09,
		0x77, 0x25, 0x71, 0x4d, 0xb6, 0x15, 0x51, 0x19, 0x05, 0xaf, 0xc9, 0x06, 0xcc, 0xe3, 0x0e, 0xbf,
		0x0e, 0xd8, 0x50, 0xa5, 0x5b, 0xb2, 0xa2, 0x02, 0xb2, 0x9a, 0xb3, 0xad, 0x7d, 0x6f, 0x87, 0x0a,
		0xd9, 0x89, 0xdb, 0x3e, 0xf9, 0x66, 0x67, 0xd6, 0x97, 0x58, 0xa5, 0xb6, 0xc4, 0x2a, 0xb6, 0x23,
		0x56, 0x75, 0x92, 0xc2, 0x83, 0xad, 0x61, 0xd0, 0xf0, 0x1c, 0x48, 0x79, 0x00, 0x29, 0x25, 0x20,
		0x05, 0x48, 0x79, 0x1c, 0x29, 0xad, 0x76, 0xed, 0x83, 0xf9, 0xd5, 0xfa, 0x50, 0xaf, 0x7c, 0xec,
		0x00, 0x27, 0xc0, 0xc9, 0x23, 0x38, 0xe9, 0x40, 0x9b, 0x00, 0x25, 0xeb, 0x51, 0x82, 0x31, 0x1b,
		0x40, 0xcf, 0xf6, 0xfa, 0xb9, 0x0a, 0xea, 0x9d, 0xf4, 0x22, 0xa8, 0x04, 0x04, 0x01, 0x41, 0xdb,
		0xe6, 0x17, 0x03, 0x3f, 0xf0, 0x97, 0x81, 0x1e, 0xf5, 0xd1, 0xd3, 0xad, 0x7c, 0x04, 0x6c, 0x00,
		0x9b, 0x17, 0xc0, 0xa6, 0x54, 0xc0, 0x4c, 0xb1, 0x64, 0xbf, 0x7a, 0x88, 0x7f, 0x20, 0xfe, 0x91,
		0x06, 0xbd, 0x0d, 0x78, 0x40, 0x3f, 0x03, 0x20, 0x72, 0x01, 0x72, 0x67, 0x56, 0x7e, 0xa5, 0xfa,
		0xbf, 0x56, 0xbd, 0xd2, 0x40, 0x98, 0x1d, 0x30, 0x79, 0x0c, 0x26, 0x80, 0x08, 0x20, 0xf2, 0x20,
		0x44, 0x8e, 0xcd, 0x86, 0xf5, 0xb1, 0xdd, 0x3c, 0x69, 0x01, 0x26, 0x80, 0xc9, 0x5a, 0x98, 0x7c,
		0xa9, 0x98, 0xf5, 0xca, 0xfb, 0x7a, 0xcd, 0x7a, 0x5f, 0x69, 0x54, 0xff, 0x63, 0x56, 0xbb, 0x9f,
		0x00, 0x17, 0xc0, 0x65, 0x1d, 0x5c, 0x62, 0x90, 0x58, 0x47, 0xcd, 0x46, 0xa7, 0xdb, 0xae, 0x98,
		0x8d, 0x2e, 0xd2, 0x46, 0x00, 0x98, 0xb5, 0x80, 0xa9, 0x7d, 0xed, 0xd6, 0x1a, 0xd5, 0x5a, 0x15,
		0xf6, 0x08, 0x78, 0x79, 0x0a, 0x5e, 0xa2, 0xab, 0x7f, 0xb3, 0xd1, 0xad, 0xb5, 0x3f, 0x54, 0x8e,
		0x6a, 0x56, 0xa5, 0x5a, 0x6d, 0xd7, 0x3a, 0xd0, 0x30, 0x40, 0xcc, 0xc3, 0x88, 0x69, 0xd4, 0xcc,
		0x8f, 0x9f, 0xde, 0x37, 0xdb, 0x00, 0x0c, 0x00, 0xf3, 0x04, 0xc0, 0x94, 0xa0, 0x62, 0x80, 0x98,
		0x67, 0x22, 0x06, 0x2a, 0x06, 0x80, 0x79, 0x2a, 0x60, 0xea, 0x66, 0xe3, 0xb3, 0x55, 0xe9, 0x76,
		0xdb, 0xe6, 0xfb, 0x93, 0x6e, 0x0d, 0x50, 0x01, 0x54, 0x1e, 0x86, 0x4a, 0xb5, 0x56, 0xaf, 0xfc,
		0x05, 0x94, 0x00, 0x25, 0x8f, 0xa3, 0xc4, 0xfa, 0x52, 0x69, 0x9b, 0x95, 0xae, 0xd9, 0x6c, 0x00,
		0x2f, 0xc0, 0xcb, 0x83, 0x78, 0xc1, 0x05, 0x11, 0x20, 0xf2, 0x08, 0x44, 0xea, 0x4d, 0x38, 0xb2,
		0x00, 0xc9, 0x23, 0x20, 0x69, 0xb5, 0x9b, 0xdd, 0xda, 0xd1, 0xc4, 0xe4, 0x4c, 0xeb, 0xba, 0x80,
		0x17, 0xe0, 0x65, 0x0d, 0x5e, 0x8e, 0x2b, 0x5f, 0xa7, 0x98, 0xc1, 0x6d, 0x22, 0xd0, 0xf2, 0x24,
		0xb4, 0xb4, 0x6b, 0x9d, 0x5a, 0xfb, 0x0b, 0x6e, 0xa0, 0x81, 0x99, 0x27, 0x62, 0xc6, 0x6c, 0xdc,
		0x6a, 0x19, 0xf0, 0x66, 0xa0, 0xe5, 0x41, 0xb4, 0xb4, 0x6b, 0x1d, 0xb3, 0x7a, 0x52, 0xa9, 0x43,
		0xb7, 0x00, 0x2d, 0x8f, 0xa3, 0x05, 0xdd, 0x0b, 0x80, 0x9e, 0xd7, 0xa3, 0x48, 0xc9, 0x1c, 0x6e,
		0x05, 0x95, 0x4e, 0x8a, 0xe1, 0x03, 0xe8, 0x00, 0x3a, 0x2f, 0x82, 0x8e, 0x82, 0x39, 0x76, 0x80,
		0x0f, 0x19, 0xf8, 0xa8, 0x9c, 0x0b, 0x0e, 0x18, 0x51, 0x81, 0x91, 0xe2, 0x39, 0xe2, 0x00, 0x12,
		0x15, 0x20, 0xa9, 0x9d, 0x3b, 0x0e, 0x1c, 0x51, 0xc1, 0x91, 0xea, 0x39, 0xe5, 0x40, 0x12, 0x29,
		0x24, 0xa9, 0x9b, 0x08, 0x0a, 0x20, 0x11, 0x02, 0x52, 0x09, 0x2a, 0x09, 0x48, 0xda, 0x10, 0x92,
		0xa0, 0x92, 0x00, 0xa4, 0xd7, 0x02, 0x49, 0xd9, 0x9c, 0x75, 0x40, 0x88, 0x14, 0x84, 0x14, 0xbb,
		0x93, 0x07, 0x7a, 0xe8, 0xa1, 0x47, 0xc5, 0x1c, 0x77, 0xe0, 0x88, 0x14, 0x8e, 0x70, 0x81, 0x06,
		0xe8, 0xbc, 0x10, 0x3a, 0x6a, 0xe5, 0xc4, 0x03, 0x3c, 0xa4, 0xc0, 0xa3, 0x6c, 0xae, 0x3c, 0x70,
		0x44, 0x05, 0x47, 0x2a, 0xe7, 0xd0, 0x03, 0x45, 0x94, 0x50, 0xa4, 0x76, 0x6e, 0x3d, 0xb0, 0x44,
		0x06, 0x4b, 0x0a, 0xe7, 0xdc, 0x03, 0x45, 0x54, 0x50, 0xa4, 0x72, 0x2e, 0x3e, 0x50, 0x44, 0x05,
		0x45, 0xdd, 0x9a, 0x55, 0xad, 0x7d, 0xa8, 0x9c, 0xd4, 0xbb, 0xd6, 0x71, 0xad, 0xdb, 0x36, 0x8f,
		0x00, 0x22, 0x80, 0xe8, 0xb9, 0x20, 0x3a, 0x69, 0xc4, 0xa9, 0x69, 0xb5, 0xaa, 0x55, 0xef, 0x20,
		0xad, 0x08, 0x20, 0x7a, 0x01, 0x88, 0xa6, 0xfe, 0x75, 0xad, 0x0a, 0x8b, 0x06, 0x1c, 0xbd, 0x02,
		0x47, 0x5d, 0xb3, 0x6e, 0xfe, 0x9f, 0xe2, 0x28, 0xc2, 0x04, 0xa7, 0x6d, 0x3f, 0x9d, 0x29, 0xa9,
		0x01, 0x55, 0xd8, 0xbf, 0x04, 0x58, 0xe0, 0x47, 0x02, 0x2c, 0xf0, 0x17, 0x81, 0x17, 0xf8, 0x85,
		0x40, 0x4b, 0xca, 0xd1, 0x32, 0x1b, 0x6e, 0x7f, 0x54, 0x69, 0xc5, 0xdd, 0x2b, 0xda, 0x56, 0xa5,
		0xfe, 0xb1, 0xd9, 0x36, 0xbb, 0x9f, 0x8e, 0x81, 0x14, 0x20, 0xe5, 0x41, 0xa4, 0xdc, 0xfe, 0x0d,
		0x50, 0x01, 0x54, 0x1e, 0x80, 0x0a, 0x5a, 0xe2, 0x00, 0x3f, 0x5b, 0x6b, 0x9c, 0x14, 0xd4, 0x3c,
		0x69, 0x46, 0x90, 0x8a, 0x46, 0x2b, 0x86, 0x10, 0x22, 0xa4, 0x5b, 0xbc, 0xaf, 0xf4, 0xf7, 0x93,
		0xf6, 0x3e, 0xd2, 0x95, 0x8e, 0xa6, 0x64, 0x44, 0x0d, 0x96, 0x5e, 0xf1, 0x3c, 0x9f, 0xdb, 0xdc,
		0xf1, 0x3d, 0xbd, 0x4c, 0xd8, 0x44, 0xe9, 0x61, 0xff, 0x82, 0x5d, 0xda, 0x23, 0x9b, 0x5f, 0x4c,
		0x8c, 0x51, 0xc6, 0x1f, 0x31, 0xaf, 0xef, 0x7b, 0x43, 0xe7, 0xdc, 0xf0, 0x18, 0xff, 0xe1, 0x07,
		0xdf, 0x0d, 0xc7, 0x0b, 0xb9, 0xed, 0xf5, 0x59, 0xe6, 0xee, 0x1b, 0xe1, 0xca, 0x3b, 0x99, 0x51,
		0xe0, 0x73, 0xbf, 0xef, 0xbb, 0x61, 0xfc, 0x2a, 0xe3, 0x84, 0x4e, 0x98, 0x71, 0xd9, 0x15, 0x73,
		0x67, 0xdf, 0x32, 0xae, 0xe3, 0x7d, 0x37, 0x42, 0x6e, 0x73, 0x66, 0x0c, 0x6c, 0x6e, 0x9f, 0xd9,
		0x21, 0xcb, 0xb8, 0xe1, 0x28, 0xc3, 0xdd, 0xab, 0x70, 0xf2, 0x47, 0x86, 0xfd, 0xe4, 0xcc, 0x1b,
		0xb0, 0x81, 0xe1, 0x8c, 0xae, 0x0a, 0x46, 0xc0, 0xec, 0xfe, 0x85, 0x7d, 0xe6, 0xb8, 0x0e, 0xbf,
		0xce, 0x8c, 0x02, 0x36, 0x74, 0x7e, 0xb2, 0x70, 0xf6, 0x22, 0x13, 0x8e, 0xcf, 0xa2, 0x1f, 0x9b,
		0x7e, 0xcf, 0x38, 0xa3, 0xab, 0x92, 0x11, 0xfa, 0xe3, 0xa0, 0xcf, 0x8c, 0xc0, 0x1f, 0x73, 0x16,
		0x18, 0xce, 0x20, 0x13, 0xad, 0x45, 0xd8, 0xa7, 0xd7, 0x43, 0x1e, 0x8c, 0xfb, 0xdc, 0x9b, 0x79,
		0x04, 0xcd, 0xf8, 0x19, 0x34, 0xa6, 0xfb, 0x6b, 0xce, 0xb6, 0xd7, 0xba, 0xf3, 0xf7, 0xf0, 0xee,
		0x1b, 0x56, 0x6b, 0xbe, 0xff, 0xf1, 0x2b, 0xcb, 0x0c, 0x9d, 0xd0, 0xaa, 0x47, 0xfb, 0x3f, 0xfd,
		0x66, 0xd5, 0x1d, 0xef, 0x7b, 0x67, 0xb2, 0x25, 0xd5, 0xd9, 0xee, 0x5b, 0xf5, 0x70, 0x64, 0x75,
		0xdd, 0xab, 0x70, 0xf2, 0x87, 0x55, 0x9b, 0xed, 0xbe, 0x39, 0xba, 0x2a, 0xb4, 0x17, 0xf6, 0xde,
		0x6a, 0xcd, 0xf6, 0x7e, 0xf6, 0xc2, 0xea, 0x4c, 0xf7, 0x7e, 0xf6, 0xdd, 0x32, 0x47, 0x57, 0xa5,
		0x4e, 0xb4, 0xf5, 0xed, 0x68, 0xe7, 0xcd, 0x81, 0x15, 0xad, 0x42, 0xd3, 0x83, 0xa1, 0xa7, 0xcd,
		0x68, 0x49, 0x44, 0x4c, 0xaf, 0xea, 0xec, 0x27, 0x0f, 0x6c, 0x63, 0x3c, 0x01, 0xfa, 0x99, 0xcb,
		0x48, 0xea, 0x54, 0xfd, 0xc7, 0x05, 0xf3, 0xc8, 0x92, 0x70, 0xc2, 0x36, 0x68, 0x4e, 0x85, 0xf6,
		0xf6, 0xa6, 0xaa, 0x3a, 0xc3, 0xaf, 0x47, 0x4c, 0xfb, 0xb7, 0xf6, 0x87, 0xdf, 0x37, 0x26, 0xe6,
		0xc3, 0x70, 0xc3, 0xc1, 0x99, 0x31, 0x79, 0x33, 0x2c, 0x9b, 0xad, 0x7b, 0xba, 0x42, 0xcc, 0x38,
		0x94, 0x59, 0xfd, 0x83, 0xb2, 0x96, 0x9f, 0x2a, 0x47, 0xd2, 0xee, 0x40, 0x24, 0xe7, 0x67, 0x76,
		0xfd, 0xc3, 0x0f, 0x06, 0x93, 0x27, 0x12, 0x21, 0x9a, 0x76, 0x48, 0x40, 0xff, 0x64, 0x87, 0x95,
		0xe0, 0x7c, 0x7c, 0xc9, 0x3c, 0xae, 0x97, 0x35, 0x1e, 0x8c, 0x19, 0x71, 0x81, 0x17, 0xa4, 0xdd,
		0x08, 0xe4, 0xdf, 0x20, 0x98, 0xf4, 0xfc, 0x87, 0x50, 0x65, 0x61, 0x3f, 0x70, 0x46, 0xe4, 0x1d,
		0xf4, 0x25, 0x05, 0xd9, 0xf4, 0xdc, 0x6b, 0xcd, 0xf1, 0xfa, 0xee, 0x78, 0xc0, 0x34, 0x7e, 0xc1,
		0x34, 0xb3, 0x75, 0x55, 0xd2, 0xa6, 0x7a, 0x45, 0x9b, 0x7a, 0x5d, 0x9a, 0x59, 0xd5, 0xfa, 0xbe,
		0xc7, 0x6d, 0xc7, 0x63, 0x81, 0x36, 0x39, 0xbf, 0xa7, 0xde, 0xe4, 0x7f, 0x86, 0xe3, 0x33, 0xa3,
		0x5b, 0xff, 0xa2, 0x39, 0xa1, 0x16, 0x41, 0x2d, 0x97, 0xdf, 0xa3, 0x7e, 0xb0, 0x15, 0xd1, 0x97,
		0x77, 0x75, 0xe6, 0x60, 0x01, 0x59, 0xf4, 0xa3, 0xa9, 0xca, 0xa9, 0xcf, 0x15, 0x15, 0xba, 0xe1,
		0x43, 0x81, 0xe8, 0x50, 0x9a, 0xa2, 0x43, 0xe4, 0xa4, 0xea, 0x81, 0xe5, 0xa9, 0x1b, 0x35, 0xdb,
		0x86, 0x68, 0x19, 0x41, 0x9b, 0x95, 0xd6, 0xf8, 0x18, 0x2d, 0x5b, 0x43, 0x47, 0x57, 0x12, 0xd2,
		0x4a, 0xfa, 0xf4, 0xe4, 0x18, 0xa1, 0x33, 0x08, 0xc9, 0xa9, 0xa4, 0x98, 0x17, 0x2c, 0x0a, 0x49,
		0x4c, 0xa3, 0x7f, 0x76, 0xbc, 0x89, 0x57, 0x9c, 0x23, 0x26, 0xd6, 0x51, 0xa4, 0x3f, 0xf4, 0xb2,
		0x96, 0x25, 0x26, 0xd8, 0x54, 0x77, 0xd0, 0xb4, 0x7e, 0x73, 0xb8, 0xcd, 0x62, 0x14, 0x14, 0x2d,
		0x05, 0x71, 0xce, 0xb8, 0xc8, 0x13, 0xa7, 0x87, 0x96, 0x28, 0x45, 0x54, 0x86, 0x16, 0x2e, 0x51,
		0xc1, 0x39, 0x30, 0x71, 0xb7, 0xa3, 0x94, 0xd7, 0x5f, 0x75, 0x02, 0x9a, 0x0a, 0xef, 0xd6, 0xae,
		0xd2, 0xd5, 0x28, 0xab, 0x3e, 0x00, 0x55, 0x95, 0x42, 0xd3, 0x15, 0x20, 0xef, 0x12, 0xa8, 0xe0,
		0x1a, 0x28, 0xe4, 0x22, 0xa8, 0xe2, 0x2a, 0x28, 0xe7, 0x32, 0x28, 0xe7, 0x3a, 0xa8, 0xe5, 0x42,
		0xd0, 0x74, 0x25, 0x88, 0xba, 0x14, 0xe4, 0x5d, 0x8b, 0x58, 0xc0, 0x69, 0x6e, 0x9a, 0x32, 0x37,
		0x90, 0xd4, 0x53, 0xe9, 0x14, 0x70, 0x34, 0x94, 0x71, 0x38, 0x54, 0x72, 0x3c, 0x14, 0x74, 0x40,
		0x54, 0x73, 0x44, 0x94, 0x75, 0x48, 0x94, 0x75, 0x4c, 0xd4, 0x74, 0x50, 0x68, 0x3b, 0x2a, 0xc4,
		0x1d, 0x16, 0x65, 0x1c, 0x97, 0x58, 0x50, 0xdb, 0x3d, 0xf7, 0x03, 0x87, 0x5f, 0x5c, 0xaa, 0xa3,
		0xc0, 0xe6, 0x36, 0xe2, 0x56, 0x74, 0x45, 0xf4, 0xc0, 0xcc, 0xb1, 0xc9, 0x2a, 0x22, 0xae, 0x2a,
		0x0e, 0x8e, 0x8a, 0x8e, 0x8e, 0xc2, 0x0e, 0x8f, 0xaa, 0x8e, 0x8f, 0xf2, 0x0e, 0x90, 0xf2, 0x8e,
		0x90, 0xda, 0x0e, 0x91, 0x1a, 0x8e, 0x91, 0x22, 0x0e, 0x52, 0x0c, 0x85, 0xee, 0xf5, 0x88, 0xa9,
		0xa9, 0xb1, 0xc7, 0x8e, 0xc7, 0xdf, 0xa9, 0xa4, 0xaf, 0x67, 0xee, 0x47, 0x51, 0x21, 0x91, 0xdb,
		0xb6, 0x77, 0xce, 0x94, 0x6b, 0x8c, 0xa2, 0x5e, 0x4b, 0x0b, 0xfd, 0xd8, 0xf1, 0x94, 0x33, 0xe4,
		0xb1, 0xf0, 0x51, 0xff, 0x1c, 0x75, 0xfc, 0xd4, 0x15, 0xf9, 0x3f, 0x04, 0x76, 0x9f, 0x3b, 0xbe,
		0x57, 0x75, 0xce, 0x1d, 0x1e, 0x2a, 0xfc, 0x41, 0x1a, 0xec, 0xdc, 0xe6, 0xce, 0xd5, 0xe4, 0x59,
		0x0c, 0x6d, 0x37, 0x64, 0xe8, 0x9f, 0x23, 0xe2, 0xe8, 0xda, 0x3f, 0xd5, 0x3f, 0xba, 0xf9, 0x62,
		0x11, 0x87, 0x17, 0x87, 0x77, 0x0b, 0x1c, 0x73, 0xf5, 0xa4, 0x55, 0xa3, 0xc7, 0x12, 0xfd, 0xfd,
		0x54, 0xc0, 0xb8, 0xe8, 0x43, 0xd7, 0x3e, 0x0f, 0xd5, 0x0b, 0x05, 0x4f, 0xc5, 0x46, 0x18, 0x38,
		0x09, 0x71, 0x11, 0x06, 0x16, 0x08, 0x64, 0x84, 0x81, 0xc5, 0x1d, 0x43, 0x84, 0x81, 0x25, 0x7f,
		0x00, 0x84, 0x81, 0xe1, 0x73, 0xcc, 0xa0, 0xa0, 0x6e, 0x18, 0x98, 0x79, 0xe3, 0x4b, 0x16, 0xd8,
		0x8a, 0xf4, 0x8b, 0xb8, 0xeb, 0x84, 0xe4, 0x0a, 0x0a, 0xc9, 0x5c, 0xf3, 0xc6, 0x97, 0xea, 0xd9,
		0x99, 0xae, 0xdf, 0xe1, 0x81, 0xe3, 0x9d, 0x2b, 0x19, 0xa4, 0xd1, 0xb3, 0x51, 0x93, 0xe3, 0x5a,
		0xa5, 0xfa, 0xa5, 0xd6, 0xee, 0x9a, 0x9d, 0xda, 0x71, 0xad, 0xd1, 0xd5, 0x15, 0x8c, 0x92, 0xe5,
		0x26, 0x9f, 0xa3, 0xd1, 0xac, 0xd6, 0x54, 0x14, 0x3e, 0x3f, 0x15, 0xde, 0x6a, 0x7d, 0x6a, 0xa9,
		0x28, 0xfe, 0xfe, 0x44, 0xfc, 0xda, 0xd7, 0x56, 0xdd, 0x3c, 0x32, 0xbb, 0x56, 0xe3, 0xa4, 0x5e,
		0x57, 0xf1, 0x53, 0x14, 0x26, 0x9f, 0xe2, 0x4b, 0xa5, 0x7e, 0xa2, 0x24, 0x84, 0x8a, 0x13, 0xe9,
		0xeb, 0xcd, 0xa3, 0x4a, 0x5d, 0xad, 0x96, 0xe4, 0x8a, 0x45, 0xe4, 0xf5, 0xae, 0x6f, 0x46, 0x0e,
		0xad, 0x82, 0xaa, 0x7e, 0xf9, 0x84, 0x96, 0xb5, 0x7d, 0x05, 0x61, 0x3e, 0x45, 0xb8, 0x52, 0x97,
		0xdc, 0xb7, 0x1e, 0xe5, 0xc4, 0x3a, 0x91, 0xaf, 0x7b, 0x58, 0x23, 0x7a, 0x64, 0x9b, 0xca, 0x5a,
		0x5e, 0x41, 0xe1, 0xef, 0x7a, 0x37, 0x4a, 0x5e, 0xe1, 0xcc, 0x2c, 0x53, 0x59, 0x2b, 0xe0, 0x16,
		0x04, 0x7c, 0x9f, 0xbe, 0x9e, 0x76, 0x42, 0x5e, 0xe1, 0x3c, 0x50, 0x8b, 0xf3, 0x1f, 0x3b, 0x5e,
		0xcd, 0x65, 0x97, 0xcc, 0x53, 0xed, 0xa2, 0x57, 0x3f, 0xb6, 0x7f, 0x2e, 0x48, 0x9e, 0x7b, 0x57,
		0x28, 0x94, 0x0e, 0x0a, 0x85, 0xec, 0xc1, 0xfe, 0x41, 0xf6, 0xb0, 0x58, 0xcc, 0x95, 0x72, 0x2a,
		0x65, 0x85, 0x35, 0x83, 0x01, 0x0b, 0xd8, 0xe0, 0xfd, 0xb5, 0x5e, 0xd6, 0xbc, 0xb1, 0xeb, 0xaa,
		0x28, 0xfa, 0x49, 0xc8, 0x02, 0xa5, 0x6e, 0xda, 0x71, 0xbf, 0xba, 0x89, 0xe7, 0x7f, 0x35, 0xcb,
		0x77, 0x51, 0xec, 0x7e, 0x75, 0x2a, 0x36, 0xee, 0x57, 0x93, 0x10, 0x17, 0xf7, 0xab, 0x02, 0x81,
		0x8c, 0xfb, 0x55, 0x71, 0xc7, 0x10, 0xf7, 0xab, 0x92, 0x3f, 0x00, 0xee, 0x57, 0xe1, 0x73, 0xcc,
		0xa0, 0xa0, 0x76, 0x99, 0xcd, 0x7e, 0x5e, 0xc1, 0xab, 0xd5, 0x03, 0xd4, 0xd9, 0x24, 0xfc, 0x85,
		0x3a, 0x1b, 0xb1, 0xc2, 0xa3, 0xce, 0x86, 0x8a, 0x6e, 0x44, 0x9d, 0x8d, 0x84, 0xa3, 0x9b, 0x86,
		0x3a, 0x9b, 0x42, 0xfe, 0xb0, 0x70, 0x58, 0x3a, 0xc8, 0x1f, 0xa2, 0xdc, 0x06, 0x67, 0x78, 0x1b,
		0x1c, 0x74, 0xf5, 0xa4, 0x45, 0xb9, 0xcd, 0x36, 0x48, 0x48, 0xbd, 0x81, 0x95, 0x22, 0x03, 0xb0,
		0x63, 0x79, 0xd3, 0x35, 0xda, 0x67, 0x61, 0x22, 0xc8, 0xc2, 0xeb, 0x8c, 0x0a, 0xed, 0x3b, 0xb5,
		0xd4, 0x4c, 0xfc, 0x99, 0xbe, 0xdb, 0x71, 0x06, 0xe1, 0xed, 0x4b, 0xca, 0x33, 0xb1, 0xe9, 0x2b,
		0x3e, 0xca, 0x13, 0x45, 0xd5, 0xb8, 0x99, 0x53, 0xea, 0x46, 0x4e, 0x91, 0x9b, 0x38, 0x74, 0xf2,
		0x4d, 0x12, 0xa8, 0xe8, 0xe4, 0x9b, 0xdc, 0xf1, 0x42, 0x27, 0x5f, 0xd1, 0x5e, 0x31, 0x3a, 0xf9,
		0x6e, 0x1b, 0x11, 0x52, 0xe6, 0xe6, 0x2c, 0xd6, 0xb8, 0x2e, 0xb3, 0x87, 0x01, 0x1b, 0xaa, 0xa0,
		0x71, 0xe7, 0x55, 0x88, 0x0a, 0xdc, 0x95, 0xe9, 0xad, 0x19, 0xb7, 0x8c, 0x67, 0xfe, 0x4f, 0x5d,
		0x30, 0x50, 0x81, 0x14, 0x49, 0x46, 0x75, 0x0e, 0xca, 0x67, 0x76, 0x4d, 0xdd, 0xe9, 0x57, 0x23,
		0xa5, 0x5b, 0x9d, 0x14, 0x6e, 0xa5, 0x53, 0xb6, 0x15, 0x4a, 0xd1, 0x56, 0x28, 0x25, 0x9b, 0xaa,
		0x76, 0x52, 0x24, 0x56, 0xbc, 0x15, 0x31, 0x62, 0xca, 0x23, 0xfb, 0x52, 0x1b, 0x15, 0xa6, 0xe9,
		0x04, 0xde, 0x60, 0x8e, 0xae, 0x4a, 0xea, 0x54, 0x67, 0x3f, 0x79, 0x60, 0x1b, 0xe3, 0x09, 0xc8,
		0xcf, 0x5c, 0x9a, 0x9c, 0x53, 0x0f, 0xd8, 0x90, 0x05, 0xcc, 0xeb, 0xd3, 0x4d, 0x16, 0x54, 0x60,
		0xba, 0xea, 0x20, 0xb0, 0x87, 0xdc, 0x70, 0x18, 0x1f, 0x46, 0x11, 0x24, 0x23, 0x64, 0xe7, 0x13,
		0x37, 0xcf, 0x08, 0xfc, 0x31, 0x77, 0xbc, 0x73, 0x23, 0xb2, 0x09, 0xa1, 0xe3, 0x7b, 0xe1, 0x9e,
		0x16, 0x8e, 0xcf, 0x8c, 0x6e, 0xfd, 0x8b, 0xb6, 0x5f, 0xd6, 0xba, 0xf5, 0x2f, 0xa7, 0x5e, 0x6e,
		0xbf, 0xf8, 0x56, 0xcb, 0x4f, 0xff, 0x28, 0x4d, 0xfe, 0x38, 0xd8, 0xc3, 0x94, 0xd6, 0x8d, 0x10,
		0xac, 0x79, 0x28, 0xf5, 0x16, 0xe2, 0x18, 0xd4, 0xba, 0x61, 0x3f, 0x71, 0x21, 0x7a, 0xba, 0xe9,
		0x33, 0x80, 0x40, 0x87, 0xe2, 0x52, 0xf5, 0xe8, 0x81, 0x57, 0xff, 0x71, 0xc1, 0x3c, 0x18, 0xba,
		0x97, 0x1b, 0xba, 0x38, 0x54, 0xca, 0xaf, 0x47, 0x4c, 0xfb, 0xb7, 0xf6, 0xc7, 0xec, 0xce, 0xc4,
		0x70, 0xc3, 0xc1, 0x99, 0x31, 0x79, 0x33, 0x2c, 0x9b, 0x2d, 0xab, 0x5d, 0xab, 0x1c, 0x7d, 0xaa,
		0xbc, 0x37, 0xeb, 0x66, 0xf7, 0x2f, 0xab, 0xd5, 0xae, 0x7d, 0x30, 0xbf, 0x5a, 0x1d, 0xb3, 0xfa,
		0x07, 0x0c, 0xdb, 0x46, 0x0d, 0x5b, 0x84, 0x66, 0xd8, 0xb4, 0xe4, 0x6c, 0xda, 0x6b, 0xe1, 0x8e,
		0xbc, 0x9d, 0x17, 0x3c, 0x80, 0x2a, 0x0b, 0xfb, 0x81, 0x33, 0x52, 0x22, 0x53, 0x31, 0x56, 0x8c,
		0x4d, 0xcf, 0xbd, 0xd6, 0x1c, 0xaf, 0xef, 0x8e, 0x07, 0x4c, 0xe3, 0x17, 0x4c, 0x9b, 0x86, 0x12,
		0xb4, 0x8e, 0x59, 0xd5, 0xfa, 0xbe, 0xc7, 0x6d, 0xc7, 0x63, 0x81, 0x36, 0x39, 0xb0, 0xa7, 0xde,
		0xe4, 0x9f, 0xe7, 0x1e, 0x90, 0x13, 0x6a, 0x11, 0xb6, 0xf6, 0xf7, 0xa8, 0x1f, 0x64, 0x85, 0x72,
		0x29, 0x16, 0x75, 0xe4, 0x60, 0x01, 0x4d, 0x0a, 0xdc, 0x49, 0xaa, 0x98, 0x48, 0xb1, 0xa4, 0x32,
		0x37, 0x70, 0x10, 0x70, 0x01, 0x0b, 0x5e, 0x92, 0x24, 0x2f, 0x41, 0xcc, 0xf2, 0xa1, 0xb3, 0x4c,
		0xfb, 0xea, 0x27, 0xbd, 0x57, 0x3e, 0x04, 0xad, 0x53, 0xda, 0xee, 0x77, 0x68, 0x59, 0x16, 0x3a,
		0x9a, 0x91, 0x90, 0x0e, 0xd2, 0xa7, 0x15, 0x31, 0xd4, 0x54, 0x4f, 0xec, 0xe7, 0x53, 0x2c, 0xd8,
		0x89, 0x93, 0xee, 0x88, 0x89, 0x45, 0x35, 0x0b, 0x9f, 0x72, 0xd6, 0xbd, 0x02, 0x59, 0xf6, 0xd4,
		0x99, 0xa0, 0x32, 0x59, 0xf4, 0xca, 0x90, 0x3d, 0x35, 0xb2, 0xe4, 0x91, 0x8b, 0xf0, 0x60, 0x54,
		0xcd, 0xa1, 0x99, 0xc7, 0xa9, 0x73, 0xca, 0xe9, 0xf8, 0xb1, 0x3a, 0x8e, 0xa4, 0xa4, 0x9a, 0x4b,
		0x4c, 0xba, 0x28, 0x8f, 0x7c, 0x31, 0x9e, 0x0a, 0x45, 0x78, 0x0a, 0x15, 0xdf, 0xa9, 0x78, 0x91,
		0xa6, 0x44, 0xb1, 0x9d, 0xda, 0x57, 0x69, 0xe4, 0x8b, 0xeb, 0x50, 0xbf, 0xf2, 0x9c, 0x47, 0x4b,
		0xbe, 0x88, 0x2e, 0xd6, 0x98, 0xce, 0x80, 0x79, 0xdc, 0xe1, 0xd7, 0xb4, 0x0b, 0xe8, 0x62, 0x0e,
		0x4f, 0xb9, 0x06, 0xc4, 0x9c, 0x6d, 0xe5, 0x7b, 0x3b, 0x54, 0xa8, 0xb1, 0x82, 0xd9, 0x31, 0x3b,
		0x56, 0xe7, 0xe4, 0x7d, 0xb7, 0xfe, 0xc5, 0xea, 0xfe, 0xd5, 0xa2, 0x3e, 0xec, 0x6b, 0xda, 0xd9,
		0x2d, 0x54, 0xa2, 0x77, 0xa7, 0x62, 0x4d, 0xef, 0xef, 0xa6, 0x6a, 0x98, 0xad, 0x2f, 0x05, 0xab,
		0xdd, 0x3c, 0xe9, 0xd6, 0xda, 0x96, 0x59, 0xd5, 0x31, 0x0f, 0x01, 0x88, 0x68, 0x7d, 0x29, 0x01,
		0x11, 0x40, 0xc4, 0x4a, 0x3a, 0xd7, 0x87, 0x7a, 0xe5, 0x63, 0x07, 0x78, 0x00, 0x1e, 0x6e, 0xd3,
		0xfb, 0x80, 0x06, 0xa0, 0x61, 0xea, 0x56, 0x76, 0x54, 0xf0, 0x2b, 0x55, 0xf4, 0x2f, 0xd5, 0x42,
		0x49, 0xea, 0xfc, 0x4d, 0x85, 0xf4, 0x48, 0xfa, 0x90, 0x52, 0x02, 0x52, 0x80, 0x94, 0xb4, 0xf9,
		0xa7, 0xc0, 0x09, 0xfc, 0x56, 0xa0, 0x84, 0x2e, 0x4a, 0xba, 0x95, 0x8f, 0x80, 0x07, 0xe0, 0xf1,
		0x00, 0x3c, 0x4a, 0x05, 0x4c, 0x9c, 0xdb, 0xec, 0x57, 0x0f, 0x71, 0x84, 0xad, 0x8f, 0x23, 0x28,
		0xa1, 0x77, 0x01, 0x03, 0xe8, 0x57, 0x00, 0x21, 0x19, 0x20, 0x74, 0x96, 0x81, 0x50, 0xa9, 0xfe,
		0xaf, 0x55, 0xaf, 0x34, 0x10, 0x66, 0x06, 0x1c, 0xe6, 0x70, 0x00, 0x14, 0x00, 0x85, 0x08, 0x0a,
		0xc7, 0x66, 0xc3, 0xfa, 0xd8, 0x6e, 0x9e, 0xb4, 0x00, 0x07, 0xc0, 0xa1, 0xf2, 0xa5, 0x62, 0xd6,
		0x2b, 0xef, 0xeb, 0x35, 0xeb, 0x7d, 0xa5, 0x51, 0xfd, 0x8f, 0x59, 0xed, 0x7e, 0x02, 0x2c, 0x00,
		0x8b, 0x18, 0x0c, 0xd6, 0x51, 0xb3, 0xd1, 0xe9, 0xb6, 0x2b, 0x66, 0xa3, 0x8b, 0xf4, 0x05, 0x00,
		0xc3, 0xaa, 0x7d, 0xed, 0xd6, 0x1a, 0xd5, 0x5a, 0x15, 0x76, 0x04, 0xb8, 0x58, 0xb9, 0x9a, 0x36,
		0x1b, 0xdd, 0x5a, 0xfb, 0x43, 0xe5, 0xa8, 0x66, 0x55, 0xaa, 0xd5, 0x76, 0xad, 0x03, 0x8d, 0x01,
		0x64, 0x4c, 0x91, 0xd1, 0xa8, 0x99, 0x1f, 0x3f, 0xbd, 0x6f, 0xb6, 0x01, 0x0c, 0x00, 0x63, 0x29,
		0x47, 0x01, 0x2a, 0x03, 0xc8, 0xb8, 0x1f, 0x19, 0x50, 0x19, 0x00, 0xc6, 0x5d, 0x60, 0xd4, 0xcd,
		0xc6, 0x67, 0xab, 0xd2, 0xed, 0xb6, 0xcd, 0xf7, 0x27, 0xdd, 0x1a, 0x20, 0x01, 0x48, 0x4c, 0x21,
		0x51, 0xad, 0xd5, 0x2b, 0x7f, 0x01, 0x0d, 0x40, 0xc3, 0x2d, 0x1a, 0xac, 0x2f, 0x95, 0xb6, 0x59,
		0xe9, 0x9a, 0xcd, 0x06, 0x70, 0x01, 0x5c, 0x44, 0xb8, 0xc0, 0x05, 0x08, 0xa0, 0x30, 0x83, 0x42,
		0xbd, 0x09, 0x87, 0x12, 0x60, 0x98, 0x81, 0xa1, 0xd5, 0x6e, 0x76, 0x6b, 0x47, 0x13, 0x53, 0x31,
		0xad, 0xc3, 0x01, 0x2e, 0xb6, 0x1e, 0x17, 0xc7, 0x95, 0xaf, 0x53, 0x6c, 0xe0, 0x56, 0x0c, 0xa8,
		0x58, 0x42, 0x45, 0xbb, 0xd6, 0xa9, 0xb5, 0xbf, 0xe0, 0xc6, 0x14, 0xd8, 0xb8, 0x83, 0x0d, 0xb3,
		0x71, 0xab, 0x35, 0xc0, 0x47, 0x81, 0x8a, 0x08, 0x15, 0xed, 0x5a, 0xc7, 0xac, 0x9e, 0x54, 0xea,
		0xd0, 0x15, 0x40, 0x05, 0xaa, 0xbe, 0x81, 0x92, 0x97, 0xa0, 0x45, 0xa9, 0x5c, 0x5e, 0x85, 0x94,
		0x48, 0x0a, 0x61, 0x02, 0x88, 0x00, 0x22, 0x69, 0xc9, 0xfd, 0x05, 0x4c, 0xa4, 0xc1, 0x44, 0xc5,
		0x9c, 0x60, 0xc0, 0x45, 0x16, 0x5c, 0x14, 0xcd, 0x15, 0x06, 0x60, 0x64, 0x01, 0x46, 0xcd, 0x1c,
		0x62, 0xe0, 0x45, 0x16, 0x5e, 0x54, 0xcd, 0x2d, 0x06, 0x62, 0xa4, 0x22, 0x46, 0xbd, 0x04, 0x42,
		0x00, 0x46, 0x22, 0x60, 0x4a, 0x50, 0x31, 0x40, 0xcc, 0x33, 0x11, 0x03, 0x15, 0x03, 0xc0, 0x3c,
		0x15, 0x30, 0xca, 0xe5, 0x2e, 0x03, 0x2a, 0x52, 0xa1, 0xa2, 0xc8, 0x1d, 0x32, 0x50, 0x22, 0x1f,
		0x25, 0x2a, 0xe5, 0x3a, 0x03, 0x2f, 0x52, 0xf1, 0x82, 0x0b, 0x22, 0x40, 0x24, 0x15, 0xb9, 0xd1,
		0x00, 0x89, 0x54, 0x90, 0x28, 0x97, 0x33, 0x0d, 0xbc, 0xc8, 0xc2, 0x8b, 0x8a, 0xb9, 0xd4, 0x40,
		0x8b, 0x4c, 0xb4, 0xa8, 0x99, 0x63, 0x0d, 0xcc, 0x48, 0xc3, 0x8c, 0x82, 0xb9, 0xd7, 0x40, 0x8b,
		0x2c, 0xb4, 0xa8, 0x98, 0x93, 0x0d, 0xb4, 0xc8, 0x42, 0x4b, 0xb7, 0x66, 0x55, 0x6b, 0x1f, 0x2a,
		0x27, 0xf5, 0xae, 0x75, 0x5c, 0xeb, 0xb6, 0xcd, 0x23, 0x80, 0x05, 0x60, 0x59, 0x07, 0x96, 0x93,
		0x46, 0x9c, 0x02, 0x55, 0xab, 0x5a, 0xf5, 0x0e, 0xd2, 0x5a, 0x00, 0x96, 0x07, 0xc0, 0x32, 0xf5,
		0x73, 0x6b, 0x55, 0x58, 0x22, 0xe0, 0xe5, 0x09, 0x78, 0xe9, 0x9a, 0x75, 0xf3, 0xff, 0x14, 0x45,
		0x0b, 0x26, 0xa9, 0x6c, 0xcb, 0xa9, 0x53, 0xbc, 0x36, 0x4f, 0x41, 0x7f, 0x0f, 0xa0, 0x80, 0x5f,
		0x07, 0x50, 0xc0, 0x7f, 0x03, 0x2e, 0xe0, 0xa7, 0x01, 0x15, 0x44, 0x50, 0x31, 0x1b, 0xbe, 0x7c,
		0x54, 0x69, 0xc5, 0x55, 0xff, 0x6d, 0xab, 0x52, 0xff, 0xd8, 0x6c, 0x9b, 0xdd, 0x4f, 0xc7, 0x40,
		0x04, 0x10, 0x11, 0x21, 0xe2, 0xf6, 0x6f, 0x80, 0x04, 0x20, 0x81, 0xd6, 0x20, 0xc0, 0x49, 0x9a,
		0x8d, 0x8a, 0x42, 0x9a, 0x24, 0x8d, 0x48, 0x51, 0xc9, 0xd8, 0xc4, 0x50, 0x41, 0xe4, 0x70, 0x0b,
		0xf6, 0x91, 0xee, 0xfe, 0xd1, 0xdc, 0x37, 0x7a, 0x52, 0xd1, 0x92, 0x88, 0x98, 0x81, 0xd1, 0x2b,
		0x9e, 0xe7, 0x73, 0x9b, 0x3b, 0xbe, 0xa7, 0x97, 0x09, 0x9a, 0x14, 0x3d, 0xec, 0x5f, 0xb0, 0x4b,
		0x7b, 0x64, 0xf3, 0x8b, 0x89, 0xf1, 0xc8, 0xf8, 0x23, 0xe6, 0xf5, 0x7d, 0x6f, 0xe8, 0x9c, 0x1b,
		0x1e, 0xe3, 0x3f, 0xfc, 0xe0, 0xbb, 0xe1, 0x78, 0x21, 0xb7, 0xbd, 0x3e, 0xcb, 0xdc, 0x7d, 0x23,
		0x5c, 0x79, 0x27, 0x33, 0x0a, 0x7c, 0xee, 0xf7, 0x7d, 0x37, 0x8c, 0x5f, 0x65, 0x9c, 0xd0, 0x09,
		0x33, 0x2e, 0xbb, 0x62, 0xee, 0xec, 0x5b, 0xc6, 0x75, 0xbc, 0xef, 0x46, 0xc8, 0x6d, 0xce, 0x8c,
		0x81, 0xcd, 0xed, 0x33, 0x3b, 0x64, 0x19, 0x37, 0x1c, 0x65, 0xb8, 0x7b, 0x15, 0x4e, 0xfe, 0xc8,
		0xb0, 0x9f, 0x9c, 0x79, 0x03, 0x36, 0x30, 0x9c, 0xd1, 0x55, 0xc1, 0x08, 0x98, 0xdd, 0xbf, 0xb0,
		0xcf, 0x1c, 0xd7, 0xe1, 0xd7, 0x99, 0x51, 0xc0, 0x86, 0xce, 0x4f, 0x16, 0xce, 0x5e, 0x64, 0xc2,
		0xf1, 0x59, 0xf4, 0x63, 0xd3, 0xef, 0x99, 0xe8, 0xb7, 0x12, 0xf4, 0x9e, 0xf5, 0x90, 0x07, 0xe3,
		0x3e, 0xf7, 0x66, 0x36, 0xba, 0x19, 0xef, 0x72, 0x63, 0xba, 0x83, 0xe6, 0x6c, 0x03, 0xad, 0x3b,
		0x7f, 0x0f, 0xef, 0xbe, 0x61, 0xb5, 0xe6, 0x3b, 0x1c, 0xbf, 0xb2, 0xcc, 0xd0, 0x09, 0xad, 0x7a,
		0xb4, 0xc3, 0xd3, 0x6f, 0x56, 0xdd, 0xf1, 0xbe, 0x77, 0x26, 0x5b, 0x51, 0x9d, 0xed, 0xaf, 0x55,
		0x0f, 0x47, 0x56, 0xd7, 0xbd, 0x0a, 0x27, 0x7f, 0x58, 0xb5, 0xd9, 0xfe, 0x9a, 0xa3, 0xab, 0x42,
		0x7b, 0x61, 0x77, 0xad, 0xd6, 0x6c, 0x77, 0x67, 0x2f, 0xac, 0xce, 0x74, 0x77, 0x67, 0xdf, 0xad,
		0xe8, 0x57, 0xd2, 0x72, 0x20, 0xe8, 0x28, 0x1f, 0x42, 0x8a, 0x47, 0xe7, 0xf6, 0x39, 0x39, 0x6d,
		0x13, 0x3b, 0xa8, 0x13, 0xe1, 0x88, 0x29, 0xe9, 0xcf, 0x8e, 0x37, 0xd0, 0xcb, 0x5a, 0x8e, 0x98,
		0x58, 0x47, 0x91, 0x8a, 0xd0, 0xcb, 0x5a, 0x96, 0x98, 0x60, 0x53, 0xf5, 0x40, 0xd3, 0xa0, 0xcd,
		0x61, 0xe6, 0xf7, 0x8d, 0x89, 0xe9, 0xa1, 0x68, 0x0c, 0x3a, 0xfe, 0x38, 0xe8, 0x33, 0x92, 0xdb,
		0x37, 0x3d, 0x0e, 0xec, 0xfa, 0x87, 0x1f, 0x4c, 0x4e, 0x84, 0x3e, 0x35, 0xb3, 0x44, 0xe3, 0x51,
		0xfa, 0x27, 0x3b, 0xac, 0x04, 0xe7, 0xe3, 0x4b, 0xe6, 0x71, 0xbd, 0xac, 0xf1, 0x60, 0xcc, 0x88,
		0x0a, 0xba, 0x20, 0x65, 0x0c, 0x4c, 0x38, 0xf2, 0x4a, 0x39, 0xf2, 0x55, 0x27, 0x20, 0xea, 0xc1,
		0x47, 0x5e, 0x19, 0x59, 0x65, 0x32, 0xd7, 0xc7, 0x54, 0x5d, 0x73, 0xc2, 0x0e, 0x00, 0x79, 0x47,
		0x40, 0x05, 0x87, 0x40, 0x21, 0xc7, 0x40, 0x15, 0x07, 0x41, 0x39, 0x47, 0x41, 0x39, 0x87, 0x41,
		0x2d, 0xc7, 0x81, 0xa6, 0x03, 0x41, 0xd4, 0x91, 0x20, 0xef, 0x50, 0x2c, 0x46, 0x11, 0xf6, 0xf3,
		0xf4, 0x95, 0xd0, 0x42, 0x5c, 0x61, 0x3f, 0x4f, 0x5d, 0x01, 0xcd, 0x1c, 0x8d, 0x2c, 0x71, 0x31,
		0xa9, 0x3b, 0x1c, 0x2a, 0x39, 0x1e, 0x0a, 0x3a, 0x20, 0xaa, 0x39, 0x22, 0xca, 0x3a, 0x24, 0xca,
		0x3a, 0x26, 0x6a, 0x3a, 0x28, 0xb4, 0x1d, 0x15, 0xe2, 0x0e, 0x4b, 0xfc, 0xc8, 0xbb, 0xd7, 0x23,
		0xa6, 0x96, 0xc6, 0x1d, 0x3b, 0x1e, 0x27, 0xef, 0x1b, 0x2c, 0xfa, 0x07, 0x07, 0x0a, 0x88, 0xda,
		0xb6, 0xbd, 0x73, 0xa6, 0x4c, 0xee, 0x9f, 0x3a, 0xd9, 0x5c, 0xfa, 0xb1, 0xe3, 0x29, 0x63, 0x71,
		0x63, 0xa1, 0xa3, 0x54, 0x50, 0xfa, 0x0e, 0xe3, 0x8a, 0xdc, 0x1f, 0x02, 0xbb, 0xcf, 0x1d, 0xdf,
		0xab, 0x3a, 0xe7, 0x0e, 0x0f, 0x15, 0xfc, 0x00, 0x0d, 0x76, 0x6e, 0x73, 0xe7, 0x6a, 0xb2, 0xf7,
		0x43, 0xdb, 0x0d, 0x19, 0x52, 0x41, 0x93, 0x38, 0x92, 0xf6, 0x4f, 0x75, 0x8f, 0x64, 0x21, 0x7f,
		0x58, 0x38, 0x2c, 0x1d, 0xe4, 0x0f, 0x8b, 0x38, 0x9b, 0x38, 0x9b, 0x29, 0x70, 0x90, 0xd5, 0x91,
		0xb2, 0x07, 0xa2, 0xf1, 0x8a, 0xe3, 0x53, 0x77, 0x42, 0x5e, 0xe1, 0x3c, 0x50, 0x83, 0x6c, 0x1c,
		0x3b, 0x5e, 0xcd, 0x65, 0x13, 0x2e, 0xac, 0x88, 0xaa, 0x9a, 0x58, 0xb5, 0x05, 0x89, 0x73, 0xef,
		0x0a, 0x85, 0xd2, 0x41, 0xa1, 0x90, 0x3d, 0xd8, 0x3f, 0xc8, 0x1e, 0x16, 0x8b, 0xb9, 0x52, 0x4e,
		0x01, 0x83, 0xa1, 0x37, 0x83, 0x01, 0x0b, 0xd8, 0xe0, 0xfd, 0xb5, 0x5e, 0xd6, 0xbc, 0xb1, 0xeb,
		0xaa, 0x24, 0xf2, 0x49, 0xc8, 0x02, 0x25, 0x6c, 0x03, 0x75, 0x4d, 0xc1, 0x7e, 0xf2, 0xc0, 0x36,
		0xc6, 0x5e, 0xc8, 0xed, 0x33, 0x57, 0x91, 0xe0, 0x44, 0xc0, 0x86, 0x2c, 0x60, 0x5e, 0x1f, 0x1c,
		0x3a, 0x09, 0xcf, 0x6b, 0x5e, 0x0d, 0xf5, 0xe1, 0xa8, 0x98, 0xdb, 0xcf, 0x96, 0xb5, 0x8a, 0xd6,
		0xf2, 0x5d, 0xa7, 0x7f, 0xad, 0x1d, 0xf9, 0x1e, 0x0f, 0x7c, 0x57, 0x3b, 0x66, 0xfd, 0x0b, 0xdb,
		0x73, 0xc2, 0x4b, 0xcd, 0xf1, 0x34, 0xb3, 0x63, 0x98, 0x1d, 0xed, 0x24, 0x74, 0xbc, 0xf3, 0x53,
		0xaf, 0x32, 0xb8, 0x74, 0x3c, 0x27, 0xe4, 0x41, 0xe4, 0xbb, 0x69, 0x5d, 0xfb, 0x3c, 0xdc, 0xd3,
		0xc2, 0xf1, 0x99, 0xd1, 0xad, 0x7f, 0xd1, 0x72, 0x7b, 0xba, 0x42, 0xbc, 0x45, 0xb1, 0xf8, 0x7d,
		0x2c, 0xf7, 0x42, 0x1c, 0xff, 0xf6, 0x98, 0x28, 0xe6, 0xfc, 0xab, 0x1a, 0xd2, 0x8f, 0x3f, 0xc0,
		0x62, 0x68, 0x3f, 0x89, 0x73, 0x04, 0x36, 0x04, 0x36, 0x84, 0xfd, 0x53, 0x56, 0x32, 0xaa, 0x79,
		0x35, 0xc4, 0x2b, 0xee, 0x62, 0x39, 0xd3, 0x55, 0x79, 0xc7, 0xed, 0xf3, 0x0c, 0xe5, 0x14, 0x5f,
		0x2d, 0x35, 0x55, 0x78, 0x5d, 0xfb, 0x9c, 0x62, 0x25, 0x1e, 0x5d, 0x65, 0x85, 0xba, 0x06, 0xc5,
		0xa9, 0xb3, 0xfe, 0xe3, 0x82, 0x79, 0x64, 0x59, 0xb2, 0x02, 0x29, 0xef, 0x7b, 0x7b, 0x53, 0xdd,
		0x9c, 0xe1, 0xd7, 0x23, 0xa6, 0xfd, 0x5b, 0xfb, 0x63, 0x96, 0xa9, 0x63, 0xb8, 0xe1, 0xe0, 0xcc,
		0x98, 0xbc, 0x19, 0x96, 0xcd, 0xd6, 0x9d, 0x76, 0xa8, 0x95, 0x8f, 0x7f, 0x20, 0x47, 0x7e, 0xa3,
		0x54, 0x36, 0x82, 0x31, 0x32, 0xe4, 0x93, 0x63, 0xa9, 0x2f, 0xc6, 0x39, 0x5d, 0xd7, 0x9f, 0xf0,
		0x09, 0xac, 0xb2, 0xb0, 0x1f, 0x38, 0x23, 0xf2, 0x9e, 0xf6, 0x92, 0x2a, 0x6c, 0x7a, 0xee, 0xb5,
		0xe6, 0x78, 0x7d, 0x77, 0x3c, 0x60, 0x1a, 0xbf, 0x60, 0x1a, 0xb7, 0xcf, 0xb5, 0xbe, 0xef, 0x71,
		0xdb, 0xf1, 0x58, 0xa0, 0x4d, 0x8e, 0x68, 0xf4, 0xf6, 0x3c, 0x4e, 0xe1, 0x84, 0xda, 0x04, 0x37,
		0xa7, 0x1e, 0xf9, 0xc0, 0x9f, 0x4a, 0xc1, 0xbe, 0x45, 0xad, 0x38, 0x58, 0x80, 0x91, 0x02, 0x97,
		0x37, 0x2a, 0x86, 0xf5, 0x96, 0x94, 0xe4, 0x6b, 0x4e, 0x00, 0x02, 0x38, 0x69, 0x0a, 0xe0, 0x90,
		0x93, 0xaa, 0x07, 0xa6, 0xa6, 0x6e, 0x60, 0x2b, 0x7d, 0x01, 0x2d, 0x34, 0x92, 0x4a, 0x2e, 0x84,
		0x85, 0x36, 0x52, 0xe4, 0x95, 0x8e, 0xce, 0xed, 0xf3, 0x52, 0x81, 0x74, 0x23, 0xa9, 0x52, 0x01,
		0xad, 0xa4, 0x9e, 0x24, 0x16, 0x5a, 0x49, 0xbd, 0x02, 0x68, 0x68, 0x25, 0xb5, 0x09, 0x9e, 0x87,
		0x56, 0x52, 0x1b, 0xa7, 0x72, 0x68, 0x25, 0xa5, 0xa4, 0x23, 0x8f, 0x56, 0x52, 0xaf, 0xd3, 0xc7,
		0x68, 0x25, 0x95, 0x3e, 0x47, 0x40, 0x05, 0x87, 0x40, 0x21, 0xc7, 0x40, 0x15, 0x07, 0x41, 0x39,
		0x47, 0x41, 0x39, 0x87, 0x41, 0x2d, 0xc7, 0x81, 0xa6, 0x03, 0x41, 0xd4, 0x91, 0x20, 0xef, 0x50,
		0x10, 0x8f, 0x24, 0x28, 0x15, 0x59, 0x58, 0xe7, 0x68, 0xa0, 0x95, 0xd4, 0xf6, 0x38, 0x1e, 0x0a,
		0x3a, 0x20, 0xaa, 0x39, 0x22, 0xca, 0x3a, 0x24, 0xca, 0x3a, 0x26, 0x6a, 0x3a, 0x28, 0xb4, 0x1d,
		0x15, 0xe2, 0x0e, 0x4b, 0xfc, 0xc8, 0xd5, 0x6c, 0x25, 0x45, 0xde, 0x37, 0x58, 0xf4, 0x0f, 0xde,
		0xa1, 0x95, 0xd4, 0x86, 0xbf, 0xd0, 0x4a, 0x2a, 0x59, 0xa1, 0xd1, 0x4a, 0x4a, 0x96, 0x8e, 0x43,
		0x2b, 0x29, 0x01, 0x47, 0x52, 0xe5, 0x56, 0x52, 0x6a, 0xf6, 0x08, 0xc1, 0x29, 0x85, 0xab, 0x9c,
		0x22, 0x29, 0xd1, 0x54, 0xea, 0x35, 0xc7, 0x07, 0x4d, 0xa5, 0x12, 0xb7, 0x6f, 0x68, 0x2a, 0x25,
		0x53, 0x64, 0x34, 0x95, 0xda, 0xd0, 0x8e, 0xa2, 0xa9, 0x14, 0xd8, 0xf4, 0xb2, 0xe7, 0x95, 0x54,
		0x53, 0xa9, 0x3c, 0x9a, 0x4a, 0x09, 0x90, 0x1b, 0x4d, 0xa5, 0x08, 0x7c, 0x80, 0x44, 0x9b, 0x4a,
		0xe5, 0xff, 0x7f, 0xf6, 0xbe, 0xb7, 0x29, 0x91, 0xa4, 0xd9, 0xfe, 0xfd, 0x7e, 0x8a, 0x0a, 0xe2,
		0x46, 0xcc, 0x4e, 0x84, 0x88, 0xfc, 0x51, 0x47, 0x23, 0xf6, 0x05, 0x4a, 0x3b, 0xd3, 0x77, 0x11,
		0x0d, 0x40, 0x9f, 0xd9, 0xbb, 0x7a, 0x89, 0x16, 0x0a, 0xac, 0xdf, 0xb6, 0x85, 0xd1, 0xdd, 0x38,
		0xe3, 0x7d, 0x9e, 0xf9, 0xee, 0xbf, 0xa0, 0x81, 0x16, 0x45, 0xe7, 0x8f, 0x36, 0x5d, 0x99, 0xd5,
		0xc7, 0x17, 0x23, 0xc3, 0x3a, 0x6b, 0x16, 0x7d, 0x2a, 0xf3, 0x64, 0x56, 0xe5, 0x49, 0x88, 0x4a,
		0x21, 0x1b, 0xc2, 0xe7, 0xc7, 0xd8, 0x32, 0x88, 0x4a, 0xbd, 0xcd, 0x4e, 0xeb, 0x7a, 0xf0, 0x76,
		0x6a, 0x90, 0x95, 0xca, 0xaa, 0x27, 0x6f, 0xa7, 0x06, 0x61, 0x29, 0xbe, 0x16, 0x41, 0x58, 0xea,
		0xd7, 0x6d, 0x84, 0xb0, 0xd4, 0xdb, 0x32, 0xe1, 0x57, 0x0a, 0xee, 0xec, 0xd4, 0x20, 0x2d, 0x95,
		0x6e, 0x42, 0x0b, 0x69, 0xa9, 0x35, 0xe7, 0xaa, 0x6f, 0x40, 0x3a, 0xc4, 0xa5, 0x5e, 0xf1, 0xd9,
		0x5b, 0x23, 0x2e, 0xb5, 0x53, 0xfb, 0x29, 0x71, 0x9d, 0x0a, 0xe4, 0xa5, 0xd6, 0xe3, 0x19, 0x21,
		0x2f, 0x95, 0xad, 0xa3, 0x7c, 0xdb, 0x1e, 0x40, 0x31, 0xc7, 0xa6, 0x62, 0x0e, 0x04, 0xa6, 0x58,
		0x65, 0x6c, 0x10, 0x98, 0xca, 0xbc, 0xb8, 0x05, 0x89, 0xa9, 0x75, 0x96, 0xb3, 0x20, 0x32, 0x45,
		0xde, 0xf1, 0x14, 0x22, 0x8a, 0x2d, 0x20, 0x0f, 0x9d, 0xa0, 0x53, 0xeb, 0x68, 0x4a, 0x4c, 0x6d,
		0x41, 0x62, 0xea, 0xe7, 0x0c, 0x83, 0xc4, 0x94, 0xcd, 0x79, 0x1f, 0x24, 0xa6, 0xd6, 0x9a, 0xce,
		0x41, 0x62, 0x8a, 0x25, 0x95, 0x27, 0xdb, 0x58, 0x99, 0x78, 0x3c, 0x5f, 0x7a, 0xc3, 0x40, 0x0e,
		0x29, 0x7a, 0xbc, 0x85, 0x84, 0xd3, 0x2e, 0x41, 0xdb, 0x4e, 0xe7, 0xd9, 0xcf, 0xa3, 0x7a, 0x34,
		0x78, 0x2e, 0x65, 0x4b, 0x88, 0xf8, 0x86, 0x69, 0xa0, 0x24, 0x46, 0x69, 0x69, 0x36, 0x63, 0xd0,
		0x6d, 0xba, 0x60, 0xd5, 0x5c, 0x41, 0xb8, 0x89, 0x82, 0x70, 0xb3, 0x04, 0x15, 0x67, 0x41, 0xb4,
		0x16, 0x68, 0x57, 0x0d, 0x90, 0x10, 0xf9, 0xb1, 0xa2, 0xea, 0x47, 0x83, 0x07, 0x99, 0x67, 0x1d,
		0x66, 0x2d, 0x30, 0xec, 0xc2, 0xa8, 0xb9, 0x2e, 0x4b, 0x5c, 0x16, 0x01, 0x5f, 0xc5, 0xdb, 0x47,
		0x99, 0x75, 0x4e, 0xe6, 0x5c, 0x82, 0x41, 0x77, 0x50, 0x98, 0xe8, 0x81, 0x1c, 0x2a, 0x2d, 0x07,
		0xc5, 0x05, 0x8a, 0x4d, 0x7b, 0x84, 0x07, 0x21, 0xa9, 0x15, 0xd3, 0x0c, 0xbb, 0x4d, 0x1a, 0xc2,
		0xd5, 0x64, 0x8e, 0x11, 0x28, 0x1d, 0x1b, 0x10, 0x3c, 0x26, 0xa0, 0x76, 0x2c, 0x40, 0xf6, 0x18,
		0x80, 0x6c, 0xd9, 0x9f, 0x66, 0x99, 0x3f, 0xdf, 0xd4, 0x95, 0x8a, 0x90, 0xf3, 0x4a, 0x74, 0xa2,
		0xb3, 0xcf, 0x5f, 0x8a, 0x9f, 0x54, 0xb6, 0x3b, 0xad, 0xf9, 0x0f, 0xe4, 0x4e, 0xe5, 0x29, 0x9e,
		0xc6, 0x13, 0x3e, 0x85, 0xa7, 0x7a, 0xfa, 0x4e, 0xfe, 0xd4, 0x9d, 0xfc, 0x69, 0x3b, 0xed, 0x53,
		0x76, 0x9c, 0x9c, 0x51, 0x0c, 0xcb, 0x4b, 0x85, 0x10, 0x8a, 0x83, 0x9a, 0x48, 0x0f, 0x68, 0xc2,
		0x64, 0x46, 0xfe, 0x81, 0x9a, 0x41, 0xc0, 0xa6, 0x1e, 0xb8, 0xd9, 0x04, 0x70, 0x36, 0x81, 0x9c,
		0x47, 0x40, 0xa7, 0x15, 0xd8, 0x89, 0x05, 0x78, 0xb2, 0x81, 0x3e, 0x31, 0xcc, 0x97, 0x7a, 0x14,
		0x9f, 0x1f, 0x11, 0x1f, 0xcd, 0x38, 0xb7, 0x93, 0xf6, 0x6c, 0xc6, 0x2d, 0xcc, 0x66, 0xb4, 0x8e,
		0x12, 0x30, 0xa2, 0x06, 0x5c, 0x28, 0x02, 0x3b, 0xaa, 0xc0, 0x8e, 0x32, 0xf0, 0xa2, 0x0e, 0x34,
		0x29, 0x04, 0x51, 0x2a, 0x91, 0x3c, 0x5a, 0xf2, 0x23, 0x8e, 0x1e, 0x8d, 0x36, 0xfa, 0x40, 0xd9,
		0x5f, 0xce, 0xc3, 0x37, 0x61, 0x01, 0x71, 0x26, 0x93, 0x8c, 0x78, 0x08, 0xdf, 0xf3, 0x99, 0x15,
		0xc8, 0x6c, 0x62, 0x11, 0xdb, 0x19, 0x28, 0xfc, 0x66, 0x9f, 0x7c, 0xe3, 0x31, 0xb1, 0x81, 0xdf,
		0x56, 0xab, 0x6c, 0x6f, 0x63, 0xb3, 0x61, 0xb3, 0x31, 0x20, 0xa6, 0xf4, 0xad, 0xbb, 0x84, 0x7a,
		0x10, 0x57, 0x67, 0x4e, 0x53, 0x3e, 0x63, 0x25, 0xb5, 0x20, 0x28, 0xa3, 0xf1, 0x34, 0xab, 0x40,
		0x51, 0xf0, 0x95, 0x06, 0xa2, 0x28, 0x98, 0xaa, 0xa9, 0x28, 0x0a, 0xae, 0xc9, 0x60, 0x14, 0x05,
		0xf3, 0xc7, 0x6e, 0x50, 0x14, 0x7c, 0xab, 0xc7, 0x44, 0x51, 0xf0, 0xed, 0x26, 0xa2, 0x28, 0x98,
		0x56, 0xa5, 0x02, 0x45, 0x41, 0xd4, 0x29, 0x2c, 0xa8, 0x53, 0xa0, 0x28, 0xb8, 0x9e, 0xad, 0x86,
		0xa2, 0x20, 0x36, 0x1b, 0x0f, 0x62, 0x4a, 0xdf, 0x3a, 0x14, 0x05, 0xd9, 0x3a, 0xf3, 0xc2, 0xdd,
		0xdc, 0x1f, 0x12, 0xaf, 0x0a, 0xce, 0xcc, 0x44, 0x59, 0xf0, 0x35, 0xe6, 0xa1, 0x2c, 0x98, 0x22,
		0x10, 0x51, 0x16, 0x4c, 0x6f, 0xdb, 0xa0, 0x2c, 0xb8, 0x66, 0x83, 0x51, 0x16, 0xb4, 0x35, 0x01,
		0x63, 0x54, 0x16, 0xbc, 0x52, 0xda, 0x0b, 0xee, 0x19, 0xd4, 0x05, 0xf7, 0x40, 0x63, 0x19, 0x5a,
		0x84, 0xc9, 0x38, 0xbf, 0x66, 0x1f, 0x73, 0x89, 0xb9, 0x15, 0x2d, 0xac, 0x95, 0x77, 0xc8, 0x0e,
		0x81, 0x66, 0xaa, 0x49, 0x77, 0xb6, 0xf8, 0x7c, 0x17, 0x02, 0x9a, 0x4f, 0xde, 0xa0, 0x38, 0x08,
		0x1a, 0xf3, 0x73, 0x9e, 0xc3, 0x1f, 0xe6, 0xe7, 0xd8, 0x91, 0xd9, 0x43, 0x08, 0xc0, 0xce, 0x0c,
		0x1e, 0x42, 0x00, 0x79, 0xcb, 0xd4, 0x21, 0x04, 0xc0, 0x9f, 0xf0, 0x63, 0x7e, 0xce, 0xdb, 0x03,
		0x2c, 0xe6, 0xe7, 0xb0, 0xe7, 0xb9, 0x50, 0x01, 0x7b, 0x1c, 0x28, 0x31, 0x3f, 0xe7, 0x67, 0xac,
		0xc2, 0xfc, 0x9c, 0x54, 0x8c, 0xc5, 0xfc, 0x1c, 0xc6, 0xce, 0x02, 0xf3, 0x73, 0x0c, 0x55, 0x0a,
		0x31, 0x53, 0x67, 0xdd, 0xb5, 0x41, 0x4c, 0xd9, 0xa1, 0x60, 0x01, 0xa6, 0xec, 0xd8, 0xed, 0xd8,
		0x30, 0x6f, 0x27, 0x2d, 0xff, 0x95, 0xdb, 0xc1, 0x3b, 0xbf, 0xe5, 0xc8, 0x2f, 0x2d, 0xb2, 0x33,
		0xa3, 0x25, 0x4c, 0x1a, 0xf9, 0x18, 0x9d, 0xfc, 0x8b, 0x74, 0xbe, 0x45, 0x28, 0xbf, 0x22, 0x94,
		0x4f, 0x99, 0xda, 0xbe, 0x44, 0xe8, 0x04, 0x73, 0x1a, 0x61, 0x90, 0x34, 0xf0, 0x24, 0x0b, 0x66,
		0xb8, 0x41, 0xf6, 0x91, 0x39, 0xdb, 0xdf, 0x98, 0xb1, 0x13, 0x31, 0xed, 0x3c, 0xb8, 0x3a, 0x0d,
		0x03, 0xde, 0x82, 0x99, 0x97, 0xc8, 0xd6, 0x3d, 0x64, 0xb7, 0x49, 0xb3, 0xf9, 0x4d, 0x19, 0xb9,
		0x81, 0x82, 0xfc, 0x1a, 0x05, 0x5e, 0x71, 0x32, 0x45, 0xc6, 0x95, 0x9f, 0xed, 0xb1, 0x6d, 0x21,
		0x90, 0x43, 0x19, 0x48, 0xdd, 0xcf, 0xbe, 0xbf, 0xdf, 0x80, 0x9f, 0x5b, 0x9c, 0x3d, 0xb7, 0x8f,
		0x0e, 0xb7, 0xab, 0x5b, 0xdb, 0xfb, 0xc2, 0xed, 0x14, 0xdd, 0x8e, 0x88, 0xb7, 0x51, 0xa8, 0xc6,
		0x3a, 0x14, 0xc3, 0x71, 0x20, 0xba, 0x81, 0x37, 0x1c, 0xaa, 0xbe, 0x70, 0xf4, 0x48, 0x69, 0x29,
		0x03, 0xa5, 0x47, 0x9b, 0xa2, 0xdb, 0x3c, 0xbf, 0xd0, 0xe5, 0xea, 0xb6, 0x09, 0x9f, 0x63, 0xf8,
		0x06, 0xce, 0xf2, 0x0d, 0x9b, 0x07, 0xb8, 0x18, 0xe2, 0xd9, 0x54, 0x2e, 0xd1, 0x3c, 0xba, 0x24,
		0xf3, 0x16, 0x3c, 0xd9, 0x4e, 0xa5, 0x32, 0xfb, 0x6d, 0x97, 0xd9, 0x01, 0xa1, 0xf0, 0xe5, 0x5a,
		0xea, 0x3c, 0x39, 0xcc, 0x47, 0xb7, 0x4d, 0xc4, 0x1f, 0xe2, 0xdd, 0xfc, 0x5a, 0x58, 0xd1, 0x0f,
		0x07, 0x57, 0xc5, 0xe9, 0x9b, 0xe1, 0xbe, 0xf3, 0xb9, 0xeb, 0xb4, 0x1a, 0x4e, 0xa3, 0xe7, 0x9e,
		0x9e, 0xd7, 0x7a, 0x6d, 0xa7, 0x7e, 0xf8, 0xa9, 0x7e, 0xe0, 0x36, 0xdd, 0xee, 0x5f, 0xef, 0x72,
		0xee, 0x34, 0x63, 0xb4, 0xc0, 0x5f, 0x3e, 0xf8, 0xcb, 0xb7, 0xc2, 0xe9, 0xb7, 0x1c, 0x54, 0x95,
		0x0a, 0x0d, 0x19, 0xf6, 0x03, 0x75, 0x6b, 0xb4, 0xa4, 0x94, 0x38, 0x80, 0x13, 0xed, 0xdf, 0x0b,
		0xa5, 0xfb, 0xfe, 0x64, 0x20, 0x45, 0x74, 0x2d, 0xc5, 0x22, 0x3d, 0x13, 0xee, 0xe9, 0x5d, 0x4d,
		0x2c, 0xa7, 0x67, 0xa2, 0x3f, 0xd6, 0x91, 0xa7, 0xb4, 0x0c, 0x2e, 0xf4, 0x14, 0xf9, 0xf1, 0x8f,
		0x77, 0x9b, 0xe7, 0x22, 0x7e, 0xd8, 0x2a, 0x14, 0xe5, 0xea, 0xf6, 0xa6, 0xa9, 0xed, 0x40, 0xe0,
		0x32, 0xf3, 0xb2, 0x67, 0x18, 0x2c, 0x3d, 0x63, 0x83, 0xa5, 0x2f, 0x4a, 0x37, 0x93, 0x1f, 0x39,
		0x8a, 0xd4, 0x61, 0x87, 0x72, 0x19, 0x6f, 0x8e, 0x67, 0x55, 0xde, 0x6f, 0xa8, 0xec, 0xc7, 0xac,
		0xdc, 0x97, 0xa1, 0x63, 0xe4, 0x51, 0xdd, 0xcb, 0xc6, 0x89, 0xad, 0x7f, 0x53, 0x67, 0xb0, 0xcd,
		0x0a, 0x0f, 0xb0, 0x0a, 0x1f, 0x83, 0x2a, 0xab, 0x0d, 0x97, 0x30, 0xa8, 0x17, 0x2d, 0xc9, 0xc8,
		0xd9, 0x64, 0x3b, 0x3e, 0x38, 0xf3, 0x6e, 0x40, 0x13, 0x5d, 0x7e, 0x06, 0xbb, 0xf7, 0x4c, 0x11,
		0x59, 0xe3, 0xdd, 0x76, 0xc6, 0xb9, 0xaa, 0xd9, 0xee, 0x38, 0xbb, 0x0e, 0x3e, 0xb2, 0x1e, 0x57,
		0x5b, 0xd0, 0x52, 0x8d, 0xae, 0xaf, 0xc6, 0x41, 0x98, 0xfd, 0xc6, 0x59, 0xf8, 0x8a, 0x07, 0x13,
		0x32, 0xc6, 0xad, 0x99, 0xf9, 0xf1, 0xc6, 0xda, 0xc2, 0x4d, 0xb6, 0x7d, 0x13, 0x68, 0xeb, 0xa6,
		0x54, 0xff, 0x34, 0x7b, 0xa7, 0x91, 0x64, 0x05, 0xd4, 0x58, 0x5b, 0xb5, 0xdd, 0x17, 0x69, 0x4c,
		0xcd, 0x3f, 0x4f, 0xbc, 0xba, 0xf9, 0x4a, 0x6d, 0x62, 0x89, 0xa9, 0x7b, 0xcc, 0x46, 0xc2, 0x8c,
		0xf1, 0x70, 0x43, 0x21, 0xec, 0x10, 0x0a, 0x3f, 0x54, 0xc2, 0x10, 0xb9, 0x70, 0x44, 0x2e, 0x2c,
		0xd1, 0x0a, 0x4f, 0x66, 0xc2, 0x94, 0xa1, 0x70, 0x65, 0x3c, 0x6c, 0x25, 0x06, 0x24, 0xe5, 0x5d,
		0xf3, 0x1b, 0x75, 0xe1, 0xbb, 0x1e, 0x4c, 0x32, 0xbc, 0x2f, 0xcc, 0x06, 0x34, 0x32, 0x81, 0x8d,
		0x52, 0x80, 0x23, 0x18, 0xe8, 0xa8, 0x05, 0x3c, 0xb2, 0x81, 0x8f, 0x6c, 0x00, 0xa4, 0x19, 0x08,
		0xcd, 0x06, 0x44, 0xc3, 0x81, 0x91, 0x4c, 0x80, 0x5c, 0x09, 0x94, 0x74, 0xf6, 0xf7, 0xd3, 0x78,
		0x49, 0x65, 0x7b, 0xd3, 0x08, 0x9b, 0xe4, 0xc2, 0x27, 0xc5, 0x30, 0x4a, 0x38, 0x9c, 0x52, 0x0d,
		0xab, 0xe4, 0xc3, 0x2b, 0xf9, 0x30, 0x4b, 0x3b, 0xdc, 0xd2, 0x08, 0xbb, 0x44, 0xc2, 0x2f, 0xb9,
		0x30, 0xfc, 0x10, 0x8e, 0x07, 0x74, 0xa5, 0xa3, 0xd5, 0x00, 0xc2, 0xd1, 0x2c, 0x43, 0x33, 0xe5,
		0x10, 0xcd, 0x20, 0x54, 0x53, 0x0f, 0xd9, 0x6c, 0x42, 0x37, 0x9b, 0x10, 0xce, 0x23, 0x94, 0xd3,
		0x0a, 0xe9, 0xc4, 0x42, 0x7b, 0xf2, 0x08, 0x21, 0x1c, 0x9d, 0x42, 0xce, 0xcb, 0x42, 0x38, 0x5a,
		0x0d, 0x20, 0x1b, 0x4d, 0x7e, 0x4f, 0x16, 0x66, 0x73, 0x83, 0xc8, 0x92, 0x5c, 0x8a, 0x63, 0x8d,
		0x88, 0x95, 0x9e, 0xc0, 0x73, 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x73, 0x29, 0x3d, 0x42,
		0x6a, 0xa5, 0xac, 0xc4, 0x30, 0x82, 0x25, 0xad, 0x15, 0x67, 0x4c, 0xae, 0xb4, 0xf5, 0x34, 0xf4,
		0x63, 0xea, 0xb9, 0x7d, 0x54, 0x80, 0x11, 0x25, 0xe0, 0x42, 0x0d, 0xd8, 0x51, 0x04, 0x76, 0x54,
		0x81, 0x17, 0x65, 0xa0, 0x49, 0x1d, 0x88, 0x52, 0x88, 0xe4, 0xd1, 0xf2, 0x99, 0x7a, 0x3e, 0x51,
		0x3a, 0xda, 0xa9, 0x31, 0x98, 0x7a, 0xfe, 0x81, 0xb0, 0x89, 0x6d, 0x4f, 0x8f, 0xb2, 0x57, 0x4b,
		0xfc, 0xd5, 0x2f, 0xda, 0x01, 0x47, 0xcc, 0x65, 0xde, 0xc9, 0x47, 0xc6, 0xc4, 0xd8, 0x73, 0xcf,
		0x9f, 0x48, 0xba, 0xc4, 0x6d, 0xc5, 0xde, 0xa3, 0xc0, 0xeb, 0x47, 0x6a, 0xac, 0x1b, 0x6a, 0xa4,
		0xa8, 0x8d, 0x31, 0xfb, 0xbe, 0xaf, 0x92, 0x23, 0x2f, 0x52, 0x77, 0x92, 0xd4, 0x54, 0x2e, 0x86,
		0x61, 0xe9, 0xf1, 0x56, 0xf3, 0xbe, 0xf2, 0xdb, 0x6a, 0xb4, 0xc7, 0xdb, 0x61, 0xf7, 0x81, 0xaa,
		0x32, 0xb6, 0xee, 0xf2, 0x37, 0x7c, 0x5e, 0x4c, 0xbd, 0x7b, 0xe1, 0x46, 0x46, 0x81, 0xea, 0xd3,
		0x2f, 0x13, 0xce, 0xed, 0x44, 0xa9, 0xf0, 0x35, 0xe6, 0xa1, 0x54, 0x98, 0x22, 0x12, 0x51, 0x2a,
		0x4c, 0x6f, 0xdb, 0xa0, 0x54, 0xb8, 0x66, 0x83, 0x51, 0x2a, 0xb4, 0x35, 0x27, 0x63, 0x54, 0x2a,
		0xfc, 0xa2, 0x06, 0xb2, 0x48, 0x3a, 0x80, 0x2f, 0x07, 0xf1, 0x5d, 0xd4, 0x0b, 0xdf, 0xf8, 0x85,
		0x7a, 0xe1, 0x9a, 0x8a, 0x18, 0xa8, 0x58, 0xa0, 0x62, 0xc1, 0x21, 0x36, 0x3d, 0xde, 0x6a, 0x2c,
		0xeb, 0x85, 0x3b, 0xbb, 0xbb, 0xbb, 0x15, 0xd4, 0x08, 0xb1, 0xe3, 0x58, 0x70, 0x54, 0xfa, 0xd6,
		0xa1, 0x46, 0xc8, 0xd1, 0x22, 0x6a, 0x37, 0x2d, 0x89, 0x4c, 0x46, 0x7e, 0xd1, 0x3e, 0xda, 0xd3,
		0x10, 0x1e, 0x8b, 0xc5, 0x97, 0x12, 0xf5, 0xe0, 0xe4, 0x55, 0xe9, 0xc1, 0x98, 0xc4, 0x08, 0x8a,
		0x5d, 0x19, 0x82, 0xee, 0x7c, 0x85, 0xf0, 0xd1, 0xec, 0xd4, 0xd6, 0xe2, 0x23, 0x4e, 0x5e, 0xf5,
		0x1e, 0xec, 0x48, 0x0c, 0x88, 0xff, 0xbf, 0x68, 0xa0, 0x22, 0xef, 0x82, 0x0a, 0xe1, 0xe4, 0x6a,
		0xba, 0xad, 0x08, 0xb7, 0x50, 0xcd, 0x0d, 0x44, 0x13, 0xd5, 0xcf, 0x98, 0x85, 0x26, 0xaa, 0x37,
		0x40, 0x0d, 0x4d, 0x54, 0xaf, 0xdf, 0x0e, 0x68, 0xa2, 0x4a, 0x9b, 0x17, 0xa2, 0x89, 0x8a, 0x3b,
		0xb5, 0x27, 0xdb, 0x44, 0x35, 0x8b, 0xa9, 0xf4, 0x6f, 0x48, 0xcc, 0xed, 0xa4, 0x7d, 0x43, 0xa2,
		0x8c, 0x1b, 0x12, 0xd6, 0x51, 0x02, 0x46, 0xd4, 0x80, 0x0b, 0x45, 0x60, 0x47, 0x15, 0xd8, 0x51,
		0x06, 0x5e, 0xd4, 0x81, 0x26, 0x85, 0x20, 0x4a, 0x25, 0xc8, 0x53, 0x8a, 0xc4, 0x40, 0x6f, 0xf0,
		0xff, 0xbc, 0xbe, 0xd4, 0xfd, 0xfb, 0x62, 0xa8, 0x06, 0x21, 0x7d, 0x6f, 0xb4, 0x70, 0xf0, 0x4f,
		0xec, 0x26, 0xbe, 0xc3, 0x69, 0x53, 0x0f, 0x36, 0x14, 0x84, 0x13, 0x15, 0x61, 0x48, 0x49, 0xb8,
		0x51, 0x13, 0xb6, 0x14, 0x85, 0x2d, 0x55, 0xe1, 0x49, 0x59, 0x68, 0x53, 0x17, 0xe2, 0x14, 0x86,
		0x0d, 0x95, 0x79, 0x9e, 0xd2, 0xf0, 0x71, 0x62, 0xcf, 0x32, 0x1b, 0x2e, 0x8e, 0x8c, 0x07, 0xc1,
		0x61, 0x47, 0x74, 0x38, 0x12, 0x1e, 0xc6, 0xc4, 0x87, 0x2b, 0x01, 0x62, 0x4f, 0x84, 0xd8, 0x13,
		0x22, 0xde, 0xc4, 0x88, 0x07, 0x41, 0x62, 0x42, 0x94, 0xd8, 0x11, 0xa6, 0xc4, 0x60, 0x9a, 0xe2,
		0xbc, 0x3f, 0x1d, 0x67, 0xa8, 0x5e, 0x13, 0xb3, 0x88, 0x38, 0xb1, 0x25, 0x50, 0x9c, 0x89, 0x94,
		0x05, 0x84, 0x8a, 0x3b, 0xb1, 0xb2, 0x86, 0x60, 0x59, 0x43, 0xb4, 0xec, 0x20, 0x5c, 0xbc, 0x88,
		0x17, 0x33, 0x02, 0xc6, 0x96, 0x88, 0x25, 0x86, 0x0f, 0x7d, 0x6f, 0x14, 0xf2, 0x75, 0x96, 0x8b,
		0x78, 0x35, 0x5b, 0x06, 0x53, 0xff, 0x42, 0x5b, 0x57, 0xc5, 0x5a, 0xa2, 0x66, 0x03, 0x61, 0xb3,
		0x88, 0xb8, 0xd9, 0x42, 0xe0, 0xac, 0x23, 0x72, 0xd6, 0x11, 0x3a, 0xbb, 0x88, 0x1d, 0x4f, 0x82,
		0xc7, 0x94, 0xe8, 0x25, 0xd0, 0x21, 0xaf, 0x4b, 0xf3, 0xd3, 0x11, 0x43, 0xea, 0xc9, 0x8d, 0x0c,
		0x66, 0xed, 0xa6, 0x8c, 0xa3, 0xc6, 0xa2, 0xca, 0x55, 0x63, 0xbc, 0x06, 0x47, 0x4f, 0x6e, 0xf8,
		0xc7, 0xbd, 0xee, 0xb8, 0x13, 0x05, 0x4a, 0x8f, 0xd8, 0xaf, 0x24, 0x5e, 0xcd, 0xd6, 0x74, 0x8f,
		0xd4, 0x1b, 0x8d, 0xb6, 0xd3, 0xe9, 0xf4, 0x8e, 0xea, 0xc7, 0x6e, 0xf3, 0x2f, 0xe6, 0x71, 0x3c,
		0x5e, 0x56, 0x79, 0xba, 0xac, 0x83, 0xfa, 0xe1, 0x9f, 0x67, 0xa7, 0x36, 0x2c, 0xa7, 0x32, 0x5d,
		0xce, 0x79, 0xbd, 0x79, 0xe6, 0xd8, 0xb0, 0x9a, 0xea, 0x74, 0x35, 0xcd, 0x93, 0xc3, 0x7a, 0xd3,
		0x86, 0xd5, 0xd4, 0xa6, 0xab, 0xe9, 0x38, 0xdd, 0x02, 0xeb, 0xa5, 0x7c, 0xdb, 0xe0, 0xee, 0x95,
		0xdd, 0x98, 0xe8, 0x5a, 0xe0, 0x92, 0x9f, 0x78, 0x63, 0xb6, 0x85, 0x87, 0x47, 0x8b, 0x9a, 0xfb,
		0x62, 0x76, 0xe7, 0x74, 0xcf, 0x2e, 0x66, 0xe6, 0xbb, 0xf6, 0x45, 0xd5, 0x82, 0xb5, 0x4c, 0x3d,
		0xd7, 0xbe, 0xa8, 0x59, 0xb0, 0x92, 0x59, 0x7c, 0xdc, 0x17, 0x15, 0xde, 0x8e, 0x18, 0x19, 0x3a,
		0x02, 0xdf, 0xcf, 0xf8, 0x20, 0x15, 0x46, 0xf5, 0x28, 0x0a, 0x78, 0x67, 0xe9, 0xc7, 0x4a, 0x3b,
		0xbe, 0xbc, 0x91, 0x9a, 0x93, 0xe0, 0xdd, 0xf3, 0x2b, 0xf1, 0xbe, 0x2e, 0xad, 0x84, 0xef, 0xa8,
		0x92, 0x67, 0x17, 0x77, 0x12, 0x0c, 0x64, 0x20, 0x07, 0x07, 0xf7, 0x85, 0x7d, 0xa1, 0x27, 0xbe,
		0x6f, 0xc3, 0x52, 0xce, 0x42, 0x19, 0xb0, 0x51, 0x2c, 0xb4, 0xc3, 0xdf, 0x32, 0xf4, 0xb5, 0x85,
		0xbb, 0xb9, 0x98, 0x28, 0xf3, 0x13, 0xe4, 0xd9, 0x32, 0x70, 0x82, 0x6c, 0xc2, 0x7c, 0x9c, 0x20,
		0x13, 0xda, 0x08, 0x38, 0x41, 0xa6, 0xb3, 0xad, 0x71, 0x82, 0x4c, 0x7c, 0x41, 0x38, 0x41, 0x06,
		0x67, 0x7a, 0x25, 0x74, 0xec, 0x39, 0x41, 0x9e, 0x28, 0x1d, 0x55, 0x2b, 0x16, 0x1c, 0x1e, 0xef,
		0x32, 0x5e, 0x02, 0x8f, 0xa1, 0x29, 0x3f, 0xfa, 0xb2, 0xe0, 0x74, 0x82, 0xd3, 0xd0, 0x95, 0x1f,
		0x2e, 0x86, 0xd9, 0x10, 0xe7, 0x1f, 0xae, 0x87, 0xeb, 0x08, 0x89, 0x1f, 0xfb, 0x62, 0x6e, 0x23,
		0x26, 0x2c, 0x0d, 0xeb, 0x8f, 0x5d, 0x81, 0xf7, 0xd5, 0x3e, 0x57, 0x50, 0xab, 0xec, 0xd5, 0xf6,
		0x76, 0x76, 0x2b, 0x7b, 0xdb, 0xf0, 0x09, 0xf0, 0x09, 0x48, 0x50, 0x72, 0x60, 0xfd, 0x25, 0xca,
		0xff, 0x88, 0x79, 0x2f, 0x38, 0x99, 0x2f, 0x52, 0x8d, 0xae, 0x23, 0xfe, 0xf5, 0xff, 0xf9, 0x3a,
		0x70, 0x00, 0x60, 0xc2, 0x7c, 0x1c, 0x00, 0x10, 0xda, 0x09, 0x38, 0x00, 0xa0, 0xb3, 0xad, 0x71,
		0x00, 0x40, 0x7c, 0x41, 0x38, 0x00, 0x00, 0x6b, 0x7a, 0x25, 0x74, 0xec, 0x3a, 0x00, 0xf8, 0x60,
		0x41, 0xfd, 0x7f, 0x1b, 0xf5, 0x7f, 0xc3, 0x5f, 0xa8, 0xff, 0xd3, 0x5a, 0x0c, 0xea, 0xff, 0x5c,
		0x5c, 0x31, 0xea, 0xff, 0x04, 0x5d, 0x81, 0x8d, 0xf5, 0xff, 0xca, 0x36, 0x0a, 0xff, 0x70, 0x06,
		0x48, 0x4c, 0xf2, 0x60, 0x3d, 0x0a, 0xff, 0xb0, 0x98, 0x7d, 0x68, 0xa6, 0x3e, 0x4f, 0xff, 0x87,
		0xf6, 0xdb, 0x38, 0x6f, 0x7f, 0x36, 0xc2, 0x7b, 0xfe, 0xbd, 0xf4, 0x78, 0xd4, 0xd6, 0xe3, 0xbf,
		0x96, 0x38, 0x8a, 0x2e, 0x0b, 0xcb, 0x66, 0xf7, 0xcf, 0x1e, 0xd7, 0xfc, 0x7b, 0xaf, 0xbe, 0x78,
		0x3e, 0x1d, 0x35, 0x08, 0x1f, 0xfd, 0x8d, 0xe2, 0x94, 0x7f, 0x7b, 0x9c, 0x2f, 0x23, 0xc7, 0xcb,
		0xb4, 0x2d, 0x8c, 0x75, 0x3b, 0x18, 0xd3, 0x53, 0x60, 0x28, 0xbd, 0x9b, 0x04, 0x3a, 0x94, 0xde,
		0xcd, 0x6d, 0x57, 0x28, 0xbd, 0x53, 0xcb, 0x14, 0xa0, 0xf4, 0x0e, 0x4e, 0xf3, 0x7d, 0x88, 0xb0,
		0x3d, 0xb5, 0x4d, 0x3c, 0xbe, 0x2f, 0xbd, 0x61, 0x20, 0x87, 0x1c, 0x3d, 0xfe, 0x42, 0xe4, 0x93,
		0x61, 0xa3, 0x56, 0xe1, 0x74, 0x9e, 0xbf, 0x6f, 0x6e, 0xce, 0x32, 0xda, 0xd2, 0x8c, 0x62, 0x22,
		0x55, 0xca, 0xb1, 0xa5, 0x5c, 0xe6, 0x8c, 0xfd, 0x29, 0xef, 0xb9, 0x25, 0x45, 0x3c, 0xf5, 0x9f,
		0xf8, 0xea, 0x3d, 0x59, 0xa5, 0xef, 0xc4, 0x58, 0xcf, 0x89, 0xb1, 0x7e, 0x13, 0x17, 0x6f, 0xc8,
		0xf4, 0x3c, 0x21, 0xe7, 0xe7, 0x08, 0x9c, 0x86, 0x03, 0xe7, 0xf0, 0xe4, 0x80, 0x07, 0x11, 0xa6,
		0x4f, 0x2b, 0x69, 0x5b, 0x48, 0xdc, 0xc5, 0x17, 0xe4, 0xd7, 0x28, 0xf0, 0x8a, 0x93, 0x29, 0x7a,
		0xaf, 0x7c, 0x1e, 0x79, 0x7e, 0x21, 0x90, 0x43, 0x19, 0x48, 0xdd, 0xe7, 0x73, 0xfb, 0x97, 0xe1,
		0x84, 0xf9, 0x41, 0xe0, 0x0d, 0xa3, 0xa2, 0x92, 0xd1, 0x30, 0xae, 0x0a, 0x16, 0x43, 0x39, 0x9a,
		0x52, 0xdd, 0x62, 0x30, 0x9e, 0x44, 0x4a, 0x8f, 0x8a, 0x71, 0x1c, 0x0b, 0xd5, 0x58, 0x87, 0x9b,
		0x22, 0x9c, 0x5c, 0x15, 0xbb, 0xcd, 0x73, 0x51, 0x2d, 0xef, 0x5f, 0xe8, 0xe9, 0x8b, 0x4a, 0x65,
		0x43, 0x54, 0x66, 0x7f, 0x54, 0x37, 0x44, 0xb9, 0x56, 0xde, 0x14, 0x18, 0x55, 0x9f, 0x49, 0xd6,
		0xba, 0xa8, 0xaf, 0x3f, 0xec, 0x11, 0x4c, 0xab, 0xcf, 0x98, 0x2c, 0x2f, 0x95, 0xd4, 0x53, 0xdf,
		0x44, 0x28, 0x47, 0xe5, 0xcc, 0xca, 0x4b, 0xfa, 0xe8, 0x2f, 0x7c, 0xb9, 0x96, 0x1a, 0xa1, 0x78,
		0x7d, 0xa1, 0x38, 0x29, 0xa0, 0x47, 0xf7, 0xb7, 0x52, 0xfc, 0x21, 0x84, 0x78, 0x37, 0x3f, 0xab,
		0x2b, 0xfa, 0xe1, 0xe0, 0xaa, 0x38, 0x7d, 0x3b, 0xdc, 0x77, 0x3b, 0xbd, 0xb6, 0x53, 0x3f, 0xfc,
		0x54, 0x3f, 0x70, 0x9b, 0x6e, 0xf7, 0xaf, 0x5e, 0xbd, 0xf1, 0xdf, 0xbd, 0x8e, 0xdb, 0x78, 0x87,
		0xc0, 0x9b, 0x69, 0xe0, 0x8d, 0x37, 0x03, 0x62, 0xae, 0xb9, 0x98, 0xfb, 0xc6, 0xdd, 0x82, 0xbb,
		0x71, 0x6b, 0x78, 0x3e, 0x0d, 0x19, 0xf6, 0x03, 0x75, 0xcb, 0xf2, 0x46, 0x72, 0xe2, 0x86, 0x4f,
		0xb4, 0x7f, 0x2f, 0x94, 0xee, 0xfb, 0x93, 0x81, 0x14, 0xd1, 0xb5, 0x14, 0x49, 0xb5, 0x4d, 0x74,
		0xdc, 0x46, 0x28, 0xfa, 0x63, 0x1d, 0x79, 0x4a, 0xcb, 0x40, 0x4c, 0x7d, 0xc0, 0xf4, 0x27, 0x2e,
		0xf4, 0x82, 0xd4, 0xc5, 0x58, 0x54, 0xa1, 0xa8, 0x96, 0xb9, 0xf9, 0x06, 0xc6, 0x77, 0x8e, 0x96,
		0xdd, 0xf2, 0x60, 0x09, 0x81, 0x0c, 0xcf, 0xd2, 0x6d, 0xb8, 0x70, 0xf4, 0xc8, 0x4b, 0xa7, 0xb4,
		0x99, 0x70, 0x99, 0x00, 0xd9, 0x1b, 0xe5, 0xec, 0x0d, 0xb5, 0xe9, 0xb7, 0xf8, 0x0b, 0x5e, 0xc7,
		0x8e, 0xb9, 0x3b, 0x6e, 0x64, 0x10, 0x48, 0x73, 0x72, 0xb0, 0x48, 0x3b, 0x0e, 0xd2, 0xf5, 0xd3,
		0x84, 0x3d, 0x60, 0xc1, 0x1b, 0xdc, 0x28, 0x5d, 0x1c, 0x05, 0xe3, 0xc9, 0x2d, 0x79, 0xf7, 0x97,
		0xe4, 0x48, 0xcb, 0x46, 0x13, 0x8f, 0x2e, 0x8b, 0xab, 0xb5, 0xc4, 0xcd, 0xe4, 0xd2, 0x2b, 0xc4,
		0xa9, 0x37, 0x88, 0x61, 0x2f, 0x10, 0xb7, 0x3c, 0x9c, 0x6d, 0xaf, 0x0f, 0xdb, 0x54, 0x9b, 0x67,
		0x2f, 0x0f, 0x6e, 0xef, 0xbc, 0xe5, 0x91, 0x37, 0x54, 0xc0, 0x24, 0x35, 0x8a, 0xbb, 0xe4, 0xd9,
		0x38, 0xaf, 0x45, 0x7c, 0xe0, 0xa4, 0xc4, 0xc0, 0x84, 0xd0, 0xb0, 0x23, 0x36, 0x1c, 0x09, 0x0e,
		0x63, 0xa2, 0xc3, 0x95, 0xf0, 0xb0, 0x27, 0x3e, 0xec, 0x09, 0x10, 0x6f, 0x22, 0xc4, 0x83, 0x10,
		0x31, 0x21, 0x46, 0xec, 0x08, 0x52, 0x62, 0x30, 0xa7, 0xaa, 0xcf, 0x8b, 0xd1, 0x86, 0x4f, 0x15,
		0xe8, 0x25, 0x12, 0x05, 0x45, 0x19, 0x90, 0x2a, 0x8b, 0xc9, 0x15, 0x77, 0x92, 0x65, 0x0d, 0xd9,
		0xb2, 0x86, 0x74, 0xd9, 0x41, 0xbe, 0x78, 0x91, 0x30, 0x66, 0x64, 0x2c, 0x81, 0x08, 0x7f, 0x45,
		0x19, 0xb6, 0x03, 0xc0, 0x19, 0x0f, 0xfe, 0x66, 0x3e, 0xf0, 0x83, 0xf1, 0xd4, 0x1b, 0x1b, 0x06,
		0x7c, 0xd8, 0x32, 0xd8, 0xc3, 0x3a, 0x0d, 0x7f, 0x7b, 0xb4, 0xfb, 0x19, 0x0f, 0xf0, 0xb0, 0x62,
		0x70, 0x87, 0x75, 0x03, 0xbb, 0xb1, 0xd7, 0x91, 0x20, 0xe4, 0xdc, 0xea, 0x4b, 0x24, 0x62, 0x6b,
		0xdc, 0x8e, 0x2c, 0x15, 0xe3, 0x96, 0x69, 0x29, 0x4f, 0xe5, 0xb8, 0xe5, 0xa8, 0x6b, 0x8d, 0x82,
		0x5c, 0xb2, 0x28, 0xbe, 0x4a, 0x72, 0xab, 0x4b, 0x60, 0xa7, 0x28, 0xc7, 0xd5, 0x13, 0x31, 0x94,
		0x21, 0x5a, 0x59, 0x03, 0x3f, 0x59, 0x22, 0x8b, 0x6a, 0x14, 0x8b, 0xca, 0x5c, 0xfb, 0xe8, 0x70,
		0xbb, 0xba, 0xb5, 0xbd, 0x2f, 0xdc, 0x4e, 0xd1, 0xed, 0x08, 0x27, 0x11, 0x58, 0x11, 0xc3, 0x71,
		0x20, 0xba, 0x81, 0x37, 0x1c, 0xaa, 0xbe, 0x70, 0xf4, 0x48, 0x69, 0x29, 0x03, 0xa5, 0x47, 0x9b,
		0x0f, 0x7d, 0x85, 0xd5, 0x7d, 0x31, 0xd7, 0x5d, 0xa9, 0x54, 0x37, 0xca, 0xb5, 0xf2, 0xc6, 0x42,
		0x7d, 0x65, 0x13, 0xa3, 0xe1, 0xcd, 0xaf, 0xc3, 0x02, 0x71, 0xa3, 0x95, 0x35, 0x59, 0x3d, 0x1d,
		0x7e, 0x4d, 0x5b, 0x11, 0x39, 0x23, 0xac, 0xb6, 0x29, 0x67, 0xc4, 0xcd, 0xb4, 0x3c, 0x32, 0x5f,
		0x68, 0x2a, 0x13, 0x6e, 0x72, 0x4e, 0x6e, 0xaf, 0xb1, 0x1b, 0xc5, 0x68, 0x73, 0xbf, 0xf3, 0x8d,
		0xd2, 0x1f, 0xa7, 0x0f, 0x85, 0xd3, 0xc8, 0x45, 0xc8, 0x27, 0x5b, 0xed, 0xcd, 0x59, 0xca, 0x27,
		0x43, 0xae, 0x71, 0xbd, 0x25, 0x88, 0xa7, 0x02, 0x74, 0x3f, 0x27, 0x3f, 0x77, 0xec, 0xb6, 0x7a,
		0x1f, 0xdb, 0x27, 0x67, 0xa7, 0x10, 0x6c, 0xcc, 0xb6, 0x98, 0x00, 0xc1, 0x46, 0xc3, 0x75, 0x82,
		0x37, 0xef, 0x17, 0x48, 0x36, 0xae, 0xe1, 0x09, 0xd9, 0x2a, 0xd9, 0x78, 0xa3, 0xb4, 0x0a, 0xa3,
		0x20, 0xbe, 0x86, 0x20, 0x62, 0x92, 0xff, 0x44, 0x6b, 0xee, 0x42, 0x4f, 0x7f, 0x70, 0x51, 0x88,
		0x52, 0xe1, 0x4c, 0x6e, 0xae, 0x0a, 0xdd, 0x46, 0x23, 0xde, 0x19, 0xba, 0x8d, 0xb4, 0x9c, 0x75,
		0x9a, 0x3b, 0x0a, 0x75, 0xba, 0x3c, 0xd7, 0xe9, 0x20, 0xde, 0x68, 0x75, 0x66, 0x0c, 0xf1, 0x46,
		0xc2, 0x75, 0x4d, 0x28, 0x37, 0x92, 0xa8, 0x64, 0x42, 0xb6, 0xd1, 0x3a, 0xdf, 0x57, 0xf0, 0xee,
		0x3c, 0xe5, 0x7b, 0x57, 0xbe, 0x2c, 0x5e, 0x79, 0x7a, 0xf0, 0x45, 0x0d, 0x62, 0x87, 0xc2, 0x45,
		0xbe, 0xf1, 0x19, 0xe3, 0x21, 0xe3, 0x98, 0x86, 0x99, 0x90, 0x71, 0x5c, 0x23, 0x6c, 0x21, 0xe3,
		0x98, 0x45, 0x2a, 0x0e, 0x19, 0xc7, 0xcc, 0xb3, 0x6d, 0xc8, 0x38, 0xe6, 0x22, 0x57, 0x82, 0x8c,
		0xe3, 0x7a, 0xe3, 0x03, 0x64, 0x1c, 0x41, 0x6c, 0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87, 0x2b, 0xe1,
		0x61, 0x4f, 0x7c, 0xd8, 0x13, 0x20, 0xde, 0x44, 0x88, 0x07, 0x21, 0x62, 0x42, 0x8c, 0xd8, 0x11,
		0xa4, 0xc4, 0x60, 0x3e, 0xb5, 0x9f, 0x17, 0x63, 0x0d, 0x97, 0x0a, 0xd0, 0x4b, 0x04, 0x0a, 0x12,
		0x8e, 0x20, 0x54, 0x16, 0x13, 0x2b, 0xee, 0x04, 0xcb, 0x1a, 0xa2, 0x65, 0x0d, 0xe1, 0xb2, 0x83,
		0x78, 0xf1, 0x22, 0x60, 0xcc, 0x88, 0x58, 0x02, 0x11, 0xfe, 0x12, 0x8e, 0x4a, 0x4a, 0x39, 0xf4,
		0xc7, 0x1e, 0x6f, 0x1d, 0xc7, 0x3d, 0x86, 0xa6, 0x37, 0xa5, 0x1e, 0xc5, 0xc4, 0x18, 0x22, 0x09,
		0x19, 0x7f, 0xf2, 0x56, 0x09, 0x39, 0xd6, 0x20, 0xee, 0x46, 0xcc, 0xb3, 0x42, 0xc8, 0x91, 0xc0,
		0x16, 0xb7, 0x4a, 0xc8, 0x11, 0x5b, 0x1c, 0x5b, 0x1c, 0xd9, 0x01, 0x63, 0xab, 0xa1, 0xc5, 0x91,
		0xfb, 0x10, 0x55, 0x88, 0x38, 0xe6, 0x8a, 0x49, 0x9e, 0x18, 0x5b, 0x8f, 0x0a, 0x78, 0x16, 0x66,
		0xa3, 0x02, 0x6e, 0x10, 0xe7, 0xa8, 0x80, 0x9b, 0xdb, 0xae, 0xa8, 0x80, 0x13, 0x5b, 0x08, 0x2a,
		0xe0, 0x60, 0x34, 0x3f, 0x80, 0x88, 0x05, 0x15, 0xf0, 0x81, 0xd4, 0x91, 0x8a, 0xee, 0x03, 0x39,
		0x64, 0x5c, 0x01, 0x67, 0xa9, 0x91, 0xed, 0xce, 0x3f, 0xfa, 0x03, 0x2f, 0x64, 0x1c, 0xb7, 0x16,
		0x40, 0x72, 0x3b, 0x6e, 0xa7, 0xd7, 0x39, 0x3b, 0xe8, 0x36, 0xcf, 0x7b, 0xdd, 0xbf, 0x4e, 0x1d,
		0xae, 0xe1, 0x2b, 0x2e, 0x3b, 0x85, 0x6c, 0x0f, 0x26, 0x04, 0xeb, 0xc3, 0x89, 0xc7, 0x88, 0x3a,
		0x7d, 0x2c, 0xf7, 0xe2, 0x9e, 0x9e, 0xd7, 0x7a, 0xed, 0x93, 0xb3, 0xae, 0xd3, 0xee, 0xb9, 0x8d,
		0x02, 0x2a, 0xcb, 0x40, 0x56, 0x7a, 0xc8, 0xda, 0x01, 0xb2, 0x80, 0xac, 0xf4, 0x91, 0x75, 0xda,
		0x76, 0x8e, 0xdc, 0xcf, 0xbd, 0xa3, 0x66, 0xfd, 0x63, 0x07, 0xb8, 0x02, 0xae, 0x52, 0xc6, 0x55,
		0x07, 0xde, 0x0a, 0xa8, 0x4a, 0x0f, 0x55, 0x33, 0xfa, 0xde, 0xe1, 0xcc, 0xdf, 0x6d, 0xe2, 0xf1,
		0x76, 0xa0, 0x2d, 0x37, 0xbc, 0xde, 0x02, 0xbf, 0x96, 0x1f, 0xc4, 0xed, 0x00, 0x71, 0x40, 0x1c,
		0xf2, 0x00, 0xe0, 0x4d, 0x20, 0x3f, 0x00, 0xda, 0x80, 0xb6, 0x37, 0xa1, 0xad, 0x5b, 0xff, 0x08,
		0x98, 0x01, 0x66, 0x19, 0xc0, 0x6c, 0xa7, 0x66, 0x01, 0xd0, 0x58, 0xaf, 0xe0, 0x12, 0xf5, 0x26,
		0x6c, 0x6c, 0xc4, 0x0d, 0xc0, 0x09, 0xf1, 0x01, 0x80, 0xb2, 0x0d, 0x50, 0x2b, 0x03, 0x66, 0xfe,
		0xbb, 0xd7, 0xac, 0xb7, 0x70, 0xcc, 0x02, 0x58, 0xa5, 0x0d, 0x2b, 0x40, 0x0a, 0x90, 0x4a, 0x15,
		0x52, 0xc9, 0x28, 0x2c, 0xc0, 0x0a, 0xb0, 0x4a, 0x0d, 0x56, 0xe7, 0x75, 0xb7, 0x59, 0x3f, 0x68,
		0x3a, 0xbd, 0x83, 0x7a, 0xab, 0xf1, 0x2f, 0xb7, 0xd1, 0xfd, 0x04, 0x78, 0x01, 0x5e, 0x69, 0xc1,
		0x2b, 0x01, 0x55, 0xef, 0xf0, 0xa4, 0xd5, 0xe9, 0xb6, 0xeb, 0x6e, 0xab, 0x8b, 0x6b, 0x52, 0x00,
		0x58, 0x6a, 0x00, 0x73, 0x3e, 0x77, 0x9d, 0x56, 0xc3, 0x69, 0x20, 0x3e, 0x02, 0x5f, 0xeb, 0xc0,
		0x57, 0x7c, 0x75, 0xc5, 0x6d, 0x75, 0x9d, 0xf6, 0x51, 0xfd, 0xd0, 0xe9, 0xd5, 0x1b, 0x8d, 0xb6,
		0xd3, 0x81, 0x07, 0x03, 0xc2, 0xd2, 0x45, 0x58, 0xcb, 0x71, 0x3f, 0x7e, 0x3a, 0x38, 0x69, 0x03,
		0x60, 0x00, 0xd8, 0x1a, 0x00, 0xb6, 0x03, 0x17, 0x06, 0x84, 0xad, 0x19, 0x61, 0x70, 0x61, 0x00,
		0xd8, 0xba, 0x00, 0xd6, 0x74, 0x5b, 0x7f, 0xf6, 0xea, 0xdd, 0x6e, 0xdb, 0x3d, 0x38, 0xeb, 0x3a,
		0x80, 0x16, 0xa0, 0x95, 0x2e, 0xb4, 0x1a, 0x4e, 0xb3, 0xfe, 0x17, 0x50, 0x05, 0x54, 0xa5, 0x8f,
		0xaa, 0xde, 0x79, 0xbd, 0xed, 0xd6, 0xbb, 0xee, 0x49, 0x0b, 0xf8, 0x02, 0xbe, 0x52, 0xc5, 0x17,
		0x0e, 0x18, 0x01, 0xa9, 0x94, 0x21, 0xd5, 0x3c, 0x01, 0x71, 0x07, 0xa8, 0x52, 0x06, 0xd5, 0x69,
		0xfb, 0xa4, 0xeb, 0x1c, 0x4e, 0x43, 0xe0, 0xac, 0xef, 0x14, 0xf8, 0x02, 0xbe, 0x52, 0xc2, 0xd7,
		0x71, 0xfd, 0xf3, 0x0c, 0x63, 0x38, 0xbd, 0x06, 0xba, 0xd6, 0x82, 0xae, 0xb6, 0xd3, 0x71, 0xda,
		0xe7, 0xb8, 0x21, 0x01, 0x8c, 0xad, 0x09, 0x63, 0x6e, 0xeb, 0xc1, 0x8b, 0xa1, 0x0e, 0x01, 0x74,
		0xa5, 0x8a, 0xae, 0xb6, 0xd3, 0x71, 0x1b, 0x67, 0xf5, 0x26, 0x7c, 0x17, 0xd0, 0x95, 0x3e, 0xba,
		0xa0, 0x26, 0x03, 0xb4, 0x65, 0x8f, 0x3a, 0x2b, 0x7a, 0x36, 0x2c, 0x70, 0x6a, 0x39, 0x82, 0x1b,
		0xa0, 0x06, 0xa8, 0x65, 0x02, 0x35, 0x0b, 0xee, 0xb0, 0x02, 0x6e, 0x6c, 0xe0, 0x66, 0x53, 0xef,
		0x07, 0x60, 0xc7, 0x05, 0x76, 0x96, 0xf5, 0x84, 0x00, 0x78, 0x5c, 0x80, 0x67, 0x57, 0xaf, 0x08,
		0x70, 0xc7, 0x05, 0x77, 0xb6, 0xf5, 0x90, 0x00, 0x79, 0xac, 0x90, 0x67, 0xcf, 0xc5, 0x6c, 0x00,
		0x8f, 0x11, 0xf0, 0x76, 0xe0, 0xf2, 0x80, 0x3c, 0x43, 0xc8, 0x83, 0xcb, 0x03, 0xf0, 0xb2, 0x06,
		0x9e, 0x35, 0x3d, 0x2a, 0x80, 0x1c, 0x2b, 0xc8, 0x31, 0xbf, 0x33, 0x02, 0xb4, 0xf1, 0x43, 0x9b,
		0x0d, 0x3d, 0x2d, 0xc0, 0x1d, 0x2b, 0xdc, 0xe1, 0x00, 0x16, 0x50, 0xcb, 0x08, 0x6a, 0xbc, 0x7b,
		0x60, 0x00, 0x36, 0x56, 0x60, 0xb3, 0xa6, 0x37, 0x06, 0xb8, 0xe3, 0x82, 0x3b, 0x9b, 0x7a, 0x66,
		0x80, 0x3a, 0x4e, 0xa8, 0xb3, 0xab, 0x97, 0x06, 0xd8, 0x63, 0x83, 0x3d, 0x8b, 0x7a, 0x6c, 0x80,
		0x3a, 0x2e, 0xa8, 0xb3, 0xa9, 0xf7, 0x06, 0xa8, 0xe3, 0x82, 0xba, 0xae, 0xd3, 0x6b, 0x38, 0x47,
		0xf5, 0xb3, 0x66, 0xb7, 0x77, 0xec, 0x74, 0xdb, 0xee, 0x21, 0x40, 0x07, 0xd0, 0xad, 0x1b, 0x74,
		0x67, 0xad, 0xe4, 0x2a, 0xa7, 0xd3, 0xe8, 0x35, 0x3b, 0xb8, 0x56, 0x07, 0xd0, 0x65, 0x00, 0xba,
		0x59, 0x3e, 0xe1, 0x34, 0x10, 0x61, 0x81, 0xbb, 0x0c, 0x71, 0xd7, 0x75, 0x9b, 0xee, 0xff, 0x58,
		0x86, 0x3a, 0x4c, 0xac, 0xc4, 0x6e, 0xcf, 0xd3, 0x2e, 0xcf, 0x03, 0x7f, 0x06, 0xb8, 0xc0, 0x93,
		0x01, 0xae, 0x1c, 0x81, 0xcb, 0x26, 0x3e, 0x0c, 0x7c, 0x81, 0xf7, 0x02, 0x5d, 0xf6, 0xa2, 0xab,
		0x7d, 0x72, 0xd6, 0x75, 0xda, 0xbd, 0xc3, 0xfa, 0x69, 0xa2, 0x26, 0xd4, 0xee, 0xd5, 0x9b, 0x1f,
		0x4f, 0xda, 0x6e, 0xf7, 0xd3, 0x31, 0x90, 0x05, 0x64, 0xa5, 0x8a, 0xac, 0x87, 0xbf, 0x01, 0x5a,
		0x80, 0x56, 0x8a, 0xd0, 0x82, 0x04, 0x1a, 0xf0, 0x86, 0x60, 0x99, 0x5f, 0xcf, 0x96, 0x27, 0xc4,
		0xd9, 0x10, 0x44, 0x13, 0xc8, 0xa1, 0xe2, 0x8d, 0xcf, 0xdd, 0xe2, 0xcf, 0x9b, 0xd7, 0xe7, 0xcc,
		0xc7, 0x5a, 0x1e, 0x96, 0x32, 0x09, 0xa8, 0x85, 0xba, 0xd6, 0xe3, 0xc8, 0x8b, 0xd4, 0x58, 0x17,
		0xf6, 0x19, 0x85, 0xd0, 0x42, 0xd8, 0xbf, 0x96, 0x37, 0xde, 0xad, 0x17, 0x5d, 0x4f, 0x83, 0x65,
		0x69, 0x7c, 0x2b, 0x75, 0x7f, 0xac, 0x87, 0x6a, 0x54, 0xd4, 0x32, 0xfa, 0x32, 0x0e, 0xfe, 0x29,
		0x2a, 0x1d, 0x46, 0x9e, 0xee, 0xcb, 0xd2, 0xd3, 0x37, 0xc2, 0x95, 0x77, 0x4a, 0xb7, 0xc1, 0x38,
		0x1a, 0xf7, 0xc7, 0x7e, 0x98, 0xbc, 0x2a, 0xa9, 0x50, 0x85, 0x25, 0x5f, 0xde, 0x49, 0x7f, 0xfe,
		0xad, 0xe4, 0x2b, 0xfd, 0x4f, 0x31, 0x8c, 0xbc, 0x48, 0x16, 0x07, 0x5e, 0xe4, 0x5d, 0x79, 0xa1,
		0x2c, 0xf9, 0xe1, 0x6d, 0x29, 0xf2, 0xef, 0xc2, 0xe9, 0x1f, 0x25, 0xf9, 0x35, 0x92, 0x7a, 0x20,
		0x07, 0x45, 0x15, 0x16, 0x03, 0xe9, 0xf5, 0xaf, 0xbd, 0x2b, 0xe5, 0xab, 0xe8, 0xbe, 0xa4, 0xa5,
		0x1a, 0x5d, 0x5f, 0x8d, 0x83, 0x30, 0x79, 0x55, 0x7a, 0x30, 0x26, 0x31, 0x22, 0x9c, 0x5c, 0xc5,
		0xff, 0xab, 0xd9, 0xf7, 0x92, 0x77, 0xe7, 0x29, 0xdf, 0xbb, 0xf2, 0x65, 0xf1, 0xca, 0xd3, 0x83,
		0x2f, 0x6a, 0x10, 0x5d, 0x97, 0xe2, 0xdf, 0xce, 0x28, 0xcb, 0x29, 0x84, 0x51, 0x30, 0xe9, 0x47,
		0x7a, 0xce, 0x69, 0x4e, 0x92, 0xa7, 0xd4, 0x9a, 0x3d, 0x01, 0x77, 0xbe, 0xf6, 0xde, 0x93, 0xbf,
		0x87, 0x4f, 0xdf, 0xe8, 0x9d, 0x2e, 0x9e, 0x50, 0xf2, 0xaa, 0xe7, 0x86, 0x2a, 0xec, 0x35, 0xe3,
		0x27, 0x34, 0xfb, 0xd6, 0x6b, 0x2a, 0xfd, 0x4f, 0x67, 0xfa, 0x11, 0x35, 0xe6, 0xcf, 0xa7, 0xd7,
		0x0c, 0x6f, 0x7b, 0x5d, 0xff, 0x2e, 0x9c, 0xfe, 0xd1, 0x73, 0xe6, 0xcf, 0xc7, 0x0d, 0xdb, 0x4b,
		0x4f, 0xa7, 0xd7, 0x5a, 0x3c, 0x9d, 0xe4, 0x55, 0xef, 0xc1, 0x8e, 0xc4, 0x80, 0xce, 0xec, 0xe9,
		0xcc, 0xbf, 0xf7, 0xea, 0x8b, 0xa7, 0x73, 0xb0, 0x78, 0x38, 0xbd, 0xf8, 0x37, 0xf3, 0xe0, 0x65,
		0xf4, 0x7d, 0x28, 0x6d, 0x0b, 0x89, 0x7b, 0xf7, 0x82, 0xfc, 0x1a, 0x05, 0x5e, 0x71, 0x32, 0xc5,
		0xee, 0x95, 0x2f, 0x59, 0x78, 0xf6, 0x42, 0x20, 0x87, 0x32, 0x90, 0xba, 0x2f, 0xd9, 0xd4, 0x3f,
		0x18, 0x85, 0xcb, 0x24, 0xab, 0x3c, 0x3a, 0xdc, 0xfd, 0x50, 0xde, 0xda, 0x17, 0x6e, 0xa7, 0xe8,
		0x76, 0x44, 0x37, 0xf0, 0x86, 0x43, 0xd5, 0x17, 0x8e, 0x1e, 0x29, 0x2d, 0x65, 0xa0, 0xf4, 0x48,
		0xfc, 0xde, 0x75, 0xde, 0x8b, 0x63, 0x19, 0x05, 0xaa, 0x7f, 0xa1, 0x63, 0x97, 0x19, 0xaa, 0xb1,
		0x0e, 0x37, 0x45, 0x38, 0xb9, 0x2a, 0x76, 0x9b, 0xe7, 0xa2, 0xfa, 0x61, 0x5f, 0x4c, 0xbf, 0x57,
		0x2a, 0x1b, 0xa2, 0x52, 0xdd, 0x10, 0xe5, 0x5a, 0x79, 0x43, 0x54, 0xe2, 0xbf, 0x55, 0xaa, 0x9b,
		0x9c, 0xa2, 0x53, 0x67, 0x3c, 0x09, 0xfa, 0x92, 0x15, 0xf1, 0x89, 0xed, 0xfe, 0x53, 0xde, 0x7f,
		0x19, 0x07, 0x83, 0xe9, 0x03, 0x7d, 0xd8, 0x35, 0xbc, 0x2a, 0x38, 0x85, 0x4f, 0x5e, 0x58, 0x0f,
		0x46, 0x93, 0x1b, 0xa9, 0xa3, 0xc2, 0xbe, 0x88, 0x82, 0x89, 0x64, 0xb6, 0x80, 0x25, 0xeb, 0xb3,
		0xd8, 0x56, 0xc8, 0xcf, 0x72, 0x66, 0xe5, 0x25, 0xfd, 0xfd, 0x50, 0xf8, 0x72, 0x2d, 0x35, 0xc2,
		0xf5, 0xfa, 0xc2, 0xf5, 0xe6, 0xe6, 0x2c, 0xe5, 0x2b, 0x45, 0xf7, 0xb7, 0x52, 0xfc, 0x21, 0xde,
		0x8d, 0xfb, 0xc5, 0x69, 0x62, 0x5a, 0xf4, 0xc3, 0xc1, 0x55, 0x71, 0xfa, 0x66, 0xb8, 0xff, 0x13,
		0xa2, 0xf2, 0xef, 0x10, 0x94, 0x33, 0x0d, 0xca, 0xf1, 0xb6, 0x40, 0x3c, 0x36, 0x17, 0x8f, 0x53,
		0xdb, 0x37, 0x7c, 0xa2, 0x2e, 0xa3, 0x1d, 0xde, 0x90, 0x61, 0x3f, 0x50, 0xb7, 0xec, 0x8a, 0x8e,
		0x8f, 0x5c, 0xf3, 0x89, 0xf6, 0xef, 0x85, 0xd2, 0x7d, 0x7f, 0x32, 0x90, 0x22, 0xba, 0x96, 0x22,
		0xa9, 0xd7, 0x89, 0xb8, 0x5e, 0x37, 0x50, 0xd1, 0xb5, 0xe8, 0x8f, 0x75, 0xe4, 0x29, 0x2d, 0x03,
		0x31, 0x75, 0x09, 0xd3, 0x1f, 0xbb, 0xd0, 0x0b, 0xbe, 0xa7, 0x42, 0x11, 0xa3, 0xb3, 0xfa, 0x61,
		0x93, 0x9b, 0xaf, 0x60, 0xea, 0xa2, 0x9f, 0xba, 0xe9, 0xc1, 0x12, 0x0e, 0xf9, 0x9d, 0x7f, 0xb3,
		0xf7, 0xd8, 0x2b, 0x5e, 0x3b, 0xd5, 0x2d, 0x85, 0xd3, 0x37, 0x64, 0x77, 0x94, 0xb3, 0x3b, 0xd4,
		0xb7, 0xdf, 0xe2, 0x35, 0x78, 0x9d, 0x5a, 0xe6, 0xf3, 0xb4, 0x92, 0x41, 0x4c, 0xcd, 0xd3, 0xf9,
		0x24, 0xed, 0x88, 0x48, 0xd7, 0x63, 0x13, 0xf6, 0x85, 0x85, 0x64, 0xaf, 0x15, 0xfb, 0x63, 0x1d,
		0x46, 0x81, 0xa7, 0x74, 0x14, 0x92, 0x77, 0x89, 0x49, 0x0e, 0xf5, 0xbc, 0xf9, 0xc4, 0x63, 0xcf,
		0x9f, 0x4a, 0x4f, 0xb3, 0x87, 0x32, 0x71, 0x33, 0x0f, 0x63, 0x3f, 0x56, 0xd8, 0x17, 0x5b, 0xc4,
		0x0d, 0x3d, 0x0d, 0xe4, 0x50, 0x7d, 0xe5, 0x11, 0xc7, 0x17, 0xc0, 0x9d, 0x97, 0x93, 0x38, 0x44,
		0x38, 0x66, 0xb9, 0xfa, 0x72, 0x7e, 0x7e, 0x3b, 0x43, 0x06, 0x93, 0x9b, 0x74, 0x5c, 0xd3, 0xf1,
		0x47, 0x29, 0xf8, 0x02, 0xd8, 0xb8, 0x1f, 0x64, 0x75, 0xfe, 0xd4, 0x50, 0x01, 0x0f, 0x87, 0xfb,
		0x1c, 0x43, 0xe0, 0xe3, 0xcb, 0xbe, 0xc7, 0x73, 0xb8, 0xb8, 0x35, 0x1e, 0x74, 0x87, 0x1d, 0xed,
		0xe1, 0x48, 0x7f, 0x18, 0xd3, 0x20, 0xae, 0x74, 0x88, 0x3d, 0x2d, 0x62, 0x4f, 0x8f, 0x78, 0xd3,
		0x24, 0x1e, 0x74, 0x89, 0x09, 0x6d, 0x62, 0x47, 0x9f, 0x12, 0x83, 0x39, 0x55, 0x87, 0x5e, 0x8c,
		0x36, 0x7c, 0x6a, 0x44, 0xcc, 0x49, 0x14, 0x5b, 0x32, 0xc5, 0x99, 0x54, 0x59, 0x40, 0xae, 0xb8,
		0x93, 0x2c, 0x6b, 0xc8, 0x96, 0x35, 0xa4, 0xcb, 0x0e, 0xf2, 0xc5, 0x8b, 0x84, 0x31, 0x23, 0x63,
		0x6c, 0x49, 0xd9, 0x33, 0xe4, 0x8c, 0xaf, 0xc7, 0x5c, 0xe5, 0x68, 0x5c, 0x5d, 0x26, 0x4f, 0xaa,
		0xc6, 0x9e, 0xb2, 0xd9, 0x40, 0xdd, 0x2c, 0xa2, 0x70, 0xb6, 0x50, 0x39, 0xeb, 0x28, 0x9d, 0x75,
		0xd4, 0xce, 0x2e, 0x8a, 0xc7, 0x93, 0xea, 0x31, 0xa5, 0x7c, 0xec, 0xa9, 0xdf, 0x33, 0x14, 0xb0,
		0xa8, 0x06, 0xfc, 0x9d, 0xed, 0x2a, 0x1b, 0x9c, 0x2e, 0x8b, 0xb9, 0x7f, 0x9a, 0x13, 0xc3, 0x2d,
		0xe6, 0xcb, 0xe0, 0x4e, 0x10, 0x6d, 0x22, 0x8a, 0x16, 0x12, 0x46, 0xdb, 0x88, 0xa3, 0xb5, 0x04,
		0xd2, 0x5a, 0x22, 0x69, 0x27, 0xa1, 0xe4, 0x4d, 0x2c, 0x99, 0x13, 0xcc, 0x04, 0x52, 0xdd, 0xfb,
		0x5b, 0x69, 0x57, 0xc4, 0xf1, 0xa5, 0x37, 0x0c, 0xe4, 0xd0, 0x86, 0x88, 0xb3, 0xa8, 0xdc, 0xed,
		0x5a, 0xb0, 0x96, 0xd3, 0x79, 0xab, 0x58, 0x22, 0x64, 0xf0, 0x98, 0x4a, 0xff, 0x06, 0x17, 0x06,
		0xf7, 0xf5, 0x6b, 0x88, 0x9a, 0x49, 0x87, 0x5a, 0x93, 0x5a, 0x72, 0x53, 0x42, 0xfd, 0xae, 0xc7,
		0x42, 0x4a, 0x89, 0x94, 0x12, 0x29, 0x25, 0x52, 0x4a, 0xa4, 0x94, 0x48, 0x29, 0xc1, 0xc7, 0xf2,
		0x95, 0x52, 0x72, 0x3f, 0xbb, 0x48, 0x16, 0xf2, 0xa0, 0xfb, 0xb0, 0x6f, 0xdb, 0x2c, 0x1e, 0x4e,
		0x92, 0x16, 0xbf, 0x42, 0x3c, 0xb7, 0x2c, 0x59, 0x8e, 0x2d, 0x04, 0xd4, 0x46, 0x22, 0x6a, 0x31,
		0x21, 0xb5, 0x95, 0x98, 0x5a, 0x4f, 0x50, 0xad, 0x27, 0xaa, 0x76, 0x13, 0x56, 0x3b, 0x88, 0xab,
		0x25, 0x04, 0x36, 0x81, 0x9a, 0x35, 0x67, 0x23, 0x2b, 0x11, 0x4b, 0x49, 0x29, 0x87, 0xfe, 0xd8,
		0x8b, 0xaa, 0x15, 0x9b, 0xa2, 0xd6, 0x9c, 0x04, 0xee, 0x59, 0xb4, 0xa4, 0xa6, 0xd4, 0xa3, 0x38,
		0x01, 0xf9, 0xdb, 0x2a, 0x37, 0x6e, 0x17, 0xad, 0x88, 0x9f, 0xd4, 0xb1, 0xd2, 0xd6, 0xf1, 0xa5,
		0x64, 0x71, 0xf1, 0x1c, 0xe7, 0xc2, 0xbe, 0xa8, 0x6d, 0xd8, 0xb9, 0xbe, 0xa3, 0xc0, 0xeb, 0x47,
		0x6a, 0xac, 0x1b, 0x6a, 0xa4, 0xe2, 0x8e, 0xe2, 0x2d, 0x4b, 0x17, 0xda, 0x92, 0x23, 0x2f, 0x52,
		0x77, 0xd3, 0x67, 0x39, 0xf4, 0xfc, 0x50, 0x5a, 0xb7, 0xca, 0x6f, 0x1b, 0x16, 0xba, 0x16, 0xef,
		0x2b, 0x5c, 0x0b, 0x5c, 0x0b, 0x5c, 0x0b, 0xb2, 0x33, 0xac, 0x66, 0xf5, 0xeb, 0xf2, 0x37, 0x3c,
		0x0f, 0x84, 0xde, 0x74, 0x9c, 0x98, 0x5d, 0x7d, 0x2b, 0x2b, 0x89, 0xbf, 0x4d, 0xfd, 0x2b, 0x4f,
		0xd3, 0x7e, 0x9c, 0xfd, 0x10, 0x5d, 0x10, 0xce, 0x7e, 0x58, 0x2d, 0x0d, 0x67, 0x3f, 0x4c, 0x17,
		0x88, 0xb3, 0x1f, 0xf0, 0x3f, 0x70, 0xc0, 0x74, 0xa0, 0x66, 0xef, 0xd9, 0xcf, 0x44, 0x69, 0x3b,
		0x8f, 0x7d, 0x76, 0x2d, 0x5a, 0x52, 0xdb, 0xd3, 0x23, 0x89, 0x53, 0x1f, 0xfa, 0x0f, 0x2a, 0x17,
		0xa7, 0x3e, 0x5b, 0x28, 0xcd, 0x32, 0xf7, 0xfd, 0x38, 0xf5, 0x61, 0xe8, 0x5a, 0x72, 0x71, 0xea,
		0x53, 0xd9, 0xab, 0xed, 0xed, 0xec, 0x56, 0xf6, 0xb6, 0xe1, 0x63, 0xe0, 0x63, 0x90, 0xa0, 0x61,
		0x35, 0xbf, 0xfc, 0x85, 0xe3, 0x1f, 0xac, 0x20, 0xf7, 0x0c, 0x82, 0xdb, 0x00, 0xe1, 0x1f, 0xae,
		0xc7, 0xfe, 0x01, 0xc3, 0xcf, 0xce, 0x0a, 0x7d, 0xf6, 0xdd, 0xd2, 0xf2, 0x0f, 0x2c, 0xbd, 0x6d,
		0x83, 0x64, 0x80, 0xb0, 0x7a, 0x68, 0x71, 0x32, 0xab, 0xf8, 0xf0, 0xe1, 0x09, 0x3e, 0xf7, 0x66,
		0x6f, 0xf9, 0xbf, 0x2f, 0xbd, 0x1d, 0x9b, 0x09, 0x71, 0x14, 0x58, 0x6e, 0x7d, 0x20, 0x2b, 0xfc,
		0x29, 0xef, 0x6d, 0xb9, 0xa1, 0x50, 0x68, 0xaa, 0x30, 0xaa, 0x47, 0x11, 0x73, 0x0d, 0xd7, 0x63,
		0xa5, 0x1d, 0x5f, 0xde, 0x48, 0xcd, 0x3d, 0x6f, 0x2d, 0x1c, 0x7b, 0x5f, 0x97, 0x56, 0x52, 0xfe,
		0x50, 0xab, 0xed, 0xec, 0xd6, 0x6a, 0x5b, 0xbb, 0xd5, 0xdd, 0xad, 0xbd, 0xed, 0xed, 0xf2, 0x4e,
		0x99, 0x71, 0xf5, 0xa1, 0x70, 0x12, 0x0c, 0x64, 0x20, 0x07, 0x07, 0xd3, 0xed, 0xa3, 0x27, 0xbe,
		0x6f, 0xc3, 0x52, 0xce, 0x42, 0x19, 0xb0, 0x2e, 0x24, 0x70, 0xf5, 0xc2, 0x96, 0xa4, 0x11, 0x48,
		0x1f, 0x7e, 0x9c, 0x3e, 0x14, 0x58, 0x6b, 0xbf, 0x21, 0x61, 0x78, 0x2e, 0x61, 0xe0, 0x99, 0x2a,
		0x7c, 0xc3, 0xe0, 0x2b, 0x04, 0x23, 0x7b, 0x82, 0x10, 0x82, 0xcf, 0x0b, 0xc1, 0x87, 0xe3, 0xe4,
		0x47, 0x44, 0x9a, 0xa5, 0xff, 0xce, 0x2b, 0xbc, 0xf0, 0x71, 0xd2, 0x8c, 0x1c, 0x74, 0xe1, 0x66,
		0x3c, 0x90, 0x3e, 0xc7, 0xe6, 0x98, 0xe4, 0x06, 0x64, 0xb2, 0x02, 0x9e, 0x33, 0x97, 0xb7, 0x30,
		0x73, 0x39, 0x1b, 0xc3, 0x31, 0x73, 0xd9, 0xe8, 0x12, 0x30, 0x73, 0x99, 0xc8, 0x42, 0x30, 0x73,
		0x19, 0xac, 0x26, 0x2f, 0xa9, 0x27, 0xdb, 0xbe, 0x0f, 0x0b, 0xe6, 0x9f, 0x70, 0x9e, 0x77, 0xb2,
		0x3a, 0xdf, 0x24, 0x61, 0x99, 0xc8, 0x99, 0x72, 0x9f, 0x33, 0xf1, 0x1c, 0x55, 0xc2, 0x7a, 0x34,
		0x09, 0xd3, 0x51, 0x24, 0xc8, 0x96, 0x90, 0x2d, 0x21, 0x5b, 0x42, 0xb6, 0x84, 0x6c, 0x09, 0xd9,
		0x12, 0x7d, 0x88, 0x70, 0x1d, 0xf5, 0xc1, 0xb7, 0x88, 0xbd, 0x12, 0xb2, 0x98, 0x16, 0xb3, 0x9f,
		0xd2, 0x34, 0xa6, 0xb7, 0x0b, 0xd9, 0x8b, 0x35, 0xd9, 0x20, 0xce, 0x64, 0x91, 0x18, 0x93, 0x2d,
		0xe2, 0x4b, 0xd6, 0x89, 0x2d, 0x59, 0x27, 0xae, 0x64, 0x97, 0x98, 0x12, 0x5a, 0x35, 0xb2, 0x84,
		0x0e, 0x7b, 0x71, 0xa4, 0x47, 0x62, 0x48, 0x1f, 0x38, 0xc7, 0x8b, 0x39, 0x7d, 0xe2, 0xdc, 0xbf,
		0x60, 0x87, 0xd6, 0x91, 0x05, 0x2d, 0xb7, 0x36, 0x69, 0x19, 0xd9, 0xa6, 0x5d, 0x64, 0xad, 0x8e,
		0x88, 0x7d, 0xba, 0x21, 0x36, 0xc8, 0x60, 0xdb, 0xa4, 0x3d, 0x94, 0xb8, 0x82, 0xca, 0xf6, 0x36,
		0x9c, 0x01, 0x9c, 0x01, 0x12, 0x93, 0x1c, 0x58, 0x7f, 0x89, 0x46, 0x28, 0x58, 0xcc, 0x3d, 0x34,
		0xa3, 0x11, 0xca, 0xa6, 0x46, 0x28, 0xae, 0x6a, 0x3d, 0x68, 0x81, 0xe2, 0x28, 0xc3, 0xc3, 0xe8,
		0x22, 0xdf, 0x6f, 0x08, 0x1d, 0xe9, 0x6d, 0xd6, 0xb9, 0x8c, 0x0e, 0xb3, 0x63, 0x61, 0x9e, 0x8a,
		0x39, 0x7c, 0x15, 0x72, 0xac, 0x52, 0xc4, 0x61, 0xac, 0x80, 0xc3, 0x58, 0xf1, 0x86, 0x8b, 0x43,
		0x64, 0xca, 0xa1, 0xc1, 0x9d, 0x8b, 0x2c, 0xa5, 0x6a, 0xc0, 0x96, 0x79, 0xf0, 0x64, 0xfa, 0xac,
		0x93, 0xb6, 0x85, 0xc4, 0xdd, 0x7f, 0x41, 0x7e, 0x8d, 0x02, 0xaf, 0x38, 0x99, 0x62, 0xf9, 0xca,
		0xe7, 0x71, 0x5b, 0xa1, 0x10, 0xc8, 0xa1, 0x0c, 0xa4, 0xee, 0xf3, 0x39, 0x0d, 0x67, 0x14, 0x4f,
		0x17, 0x57, 0x3e, 0xda, 0x47, 0x87, 0xb5, 0x72, 0xa5, 0xb6, 0x2f, 0x16, 0x5e, 0x55, 0xc4, 0x4e,
		0x32, 0x54, 0x63, 0x1d, 0x8a, 0xe1, 0x38, 0x10, 0x9d, 0xc9, 0xed, 0xed, 0x38, 0x88, 0xc4, 0x78,
		0x28, 0x1a, 0x6a, 0x38, 0x0c, 0x65, 0x70, 0x57, 0xbc, 0xd0, 0xde, 0x17, 0x2f, 0x90, 0xe2, 0xf8,
		0xb4, 0xd9, 0x11, 0xdd, 0xc0, 0x1b, 0x0e, 0x55, 0x5f, 0x38, 0x7a, 0xa4, 0xb4, 0x94, 0x81, 0xd2,
		0xa3, 0x4d, 0x11, 0x4e, 0xae, 0x8a, 0xdd, 0xe6, 0xb9, 0xa8, 0x54, 0xf6, 0xc5, 0xec, 0xfb, 0x86,
		0xa8, 0x54, 0x37, 0x2e, 0x74, 0xb9, 0x56, 0xde, 0x10, 0x95, 0x4a, 0x65, 0xa3, 0x52, 0xa9, 0x72,
		0x8a, 0x63, 0x4c, 0x6f, 0x22, 0x2e, 0xdf, 0x3c, 0x7c, 0xd8, 0x4f, 0xcc, 0xea, 0xbe, 0xdc, 0x2f,
		0x1b, 0x3e, 0xba, 0x5c, 0x68, 0x74, 0xc3, 0xa1, 0x0a, 0x96, 0x33, 0x2b, 0x2f, 0xe9, 0xef, 0x94,
		0xc2, 0x97, 0x6b, 0xa9, 0x11, 0xe2, 0xd7, 0x17, 0xe2, 0x93, 0x1e, 0xfc, 0xe8, 0xfe, 0x56, 0x8a,
		0x3f, 0xde, 0xcd, 0xaf, 0x37, 0x17, 0xfd, 0x70, 0x70, 0x55, 0x9c, 0xbe, 0x17, 0xee, 0xbb, 0x9d,
		0x5e, 0xdb, 0xa9, 0x1f, 0x7e, 0xaa, 0x1f, 0xb8, 0x4d, 0xb7, 0xfb, 0x57, 0xef, 0xa0, 0xde, 0x6a,
		0xfc, 0xcb, 0x6d, 0x74, 0x3f, 0xf5, 0x0e, 0x4f, 0x5a, 0x9d, 0x6e, 0xbb, 0xee, 0xb6, 0xba, 0x9d,
		0x77, 0x88, 0xd7, 0x99, 0xc6, 0xeb, 0x78, 0x5f, 0x20, 0x54, 0x9b, 0x0b, 0xd5, 0xe9, 0x6d, 0x1c,
		0xc8, 0x48, 0xac, 0xe1, 0x51, 0x35, 0x64, 0xd8, 0x0f, 0xd4, 0x2d, 0xcb, 0xfb, 0x00, 0x89, 0x73,
		0x3e, 0xd1, 0xfe, 0xbd, 0x50, 0xba, 0xef, 0x4f, 0x06, 0x52, 0x44, 0xd7, 0x52, 0x24, 0x05, 0x3f,
		0xb1, 0x54, 0x06, 0x9c, 0xbe, 0x8e, 0x3c, 0xa5, 0x65, 0x20, 0xa6, 0x5e, 0xe1, 0x42, 0x4f, 0x7f,
		0x72, 0x41, 0xf9, 0x54, 0x28, 0x62, 0x80, 0x56, 0x2a, 0x9b, 0xdc, 0xdc, 0x05, 0xe3, 0xfe, 0xae,
		0x65, 0x4f, 0x3d, 0x58, 0x42, 0x22, 0xc3, 0x1b, 0x0d, 0x36, 0x34, 0x73, 0x3d, 0x72, 0xdc, 0x29,
		0x6f, 0x2a, 0xdc, 0x74, 0x40, 0x8e, 0x47, 0x39, 0xc7, 0x43, 0x65, 0xfc, 0x2d, 0x7e, 0x83, 0xd7,
		0x81, 0x68, 0x5e, 0x0f, 0x42, 0x19, 0xc4, 0xd5, 0x7c, 0x9d, 0x75, 0xd2, 0x8e, 0x8a, 0x74, 0xbd,
		0x36, 0x61, 0x7f, 0x58, 0x48, 0xf6, 0xb1, 0x37, 0xb8, 0x51, 0xba, 0x38, 0x0a, 0xc6, 0x93, 0x5b,
		0xf2, 0x5e, 0x31, 0x49, 0xa5, 0x9e, 0xb5, 0x9e, 0x78, 0xf4, 0xe1, 0x21, 0xcb, 0xc7, 0x46, 0xd7,
		0x85, 0x93, 0x7e, 0x0b, 0x43, 0x9d, 0x16, 0x6e, 0xf9, 0x3a, 0x5b, 0xdd, 0x15, 0xb6, 0x29, 0x39,
		0x4f, 0x1d, 0x15, 0xdc, 0x2d, 0x7a, 0xcb, 0x23, 0xe7, 0x22, 0x7b, 0xc7, 0x4c, 0x77, 0x98, 0xa5,
		0xde, 0x30, 0x33, 0x9d, 0x61, 0x76, 0x82, 0x75, 0x1c, 0x05, 0xea, 0x18, 0x0b, 0xd2, 0xd9, 0x70,
		0x8c, 0xcc, 0x52, 0x70, 0xce, 0xae, 0x83, 0x64, 0x76, 0x82, 0x72, 0x68, 0x42, 0xcc, 0x23, 0x41,
		0x4a, 0x0c, 0x66, 0x59, 0x07, 0x7a, 0x31, 0xec, 0x30, 0xac, 0x0b, 0xbd, 0x44, 0xab, 0x30, 0xec,
		0x0e, 0x34, 0xcb, 0x62, 0xba, 0xc5, 0x9d, 0x76, 0x59, 0x43, 0xbf, 0xac, 0xa1, 0x61, 0x76, 0xd0,
		0x31, 0x5e, 0xb4, 0x8c, 0x19, 0x3d, 0x4b, 0x20, 0xc2, 0x7f, 0xd8, 0xdd, 0x44, 0xe9, 0xa8, 0x5a,
		0x61, 0x3c, 0xeb, 0x8e, 0xe3, 0xa8, 0x3b, 0xde, 0x82, 0xbd, 0x8c, 0x55, 0xab, 0x6d, 0x10, 0xe8,
		0xb5, 0x45, 0x98, 0xd7, 0x3a, 0x0d, 0x4e, 0x7b, 0xb4, 0x37, 0x19, 0x0b, 0xf0, 0x5a, 0x21, 0xbc,
		0x9b, 0x6c, 0xf1, 0x5a, 0x65, 0xaf, 0xb6, 0xb7, 0xb3, 0x5b, 0xd9, 0xdb, 0xc6, 0x5e, 0xc7, 0x5e,
		0x47, 0x82, 0xc0, 0xd8, 0xea, 0x4b, 0x24, 0x62, 0x6b, 0xdc, 0x8e, 0x2c, 0xd5, 0xef, 0x96, 0x69,
		0x29, 0x4f, 0x15, 0xbc, 0xe5, 0xa8, 0x6b, 0x8d, 0x1a, 0x5e, 0xb2, 0x28, 0xbe, 0xaa, 0x78, 0xab,
		0x4b, 0x60, 0xa7, 0x8e, 0xc7, 0xd5, 0x13, 0x31, 0x94, 0x4d, 0x5a, 0x59, 0x03, 0x3f, 0x19, 0x25,
		0x8b, 0x6a, 0x14, 0x4b, 0x32, 0x4b, 0xbb, 0xd5, 0xad, 0x0f, 0xfb, 0x62, 0xd1, 0x96, 0x21, 0xea,
		0x83, 0x1b, 0xa5, 0x55, 0x18, 0x05, 0x31, 0xf3, 0x14, 0x1f, 0x83, 0xf1, 0xe4, 0x36, 0x14, 0x4a,
		0xc7, 0x1a, 0x2f, 0x17, 0xfa, 0x19, 0x91, 0x17, 0xf1, 0xfb, 0xf4, 0x3f, 0x15, 0xbb, 0xce, 0xfb,
		0x07, 0xb9, 0x97, 0x72, 0x2d, 0x96, 0x7b, 0xb9, 0xd0, 0x95, 0xca, 0x46, 0xa5, 0xba, 0x51, 0xae,
		0x95, 0x37, 0xe6, 0x5a, 0x2f, 0x9b, 0x98, 0xfb, 0x68, 0x7e, 0x1d, 0x16, 0xa8, 0x2f, 0xad, 0xac,
		0xc9, 0xea, 0xd1, 0x8f, 0x26, 0xf6, 0x29, 0xb2, 0x4d, 0x58, 0x6d, 0x53, 0xb6, 0x89, 0x5b, 0x6e,
		0x79, 0xe4, 0xcc, 0x50, 0x96, 0x26, 0xdb, 0x50, 0xfd, 0xdc, 0x05, 0x38, 0x76, 0xf3, 0x57, 0xec,
		0xed, 0xae, 0x5e, 0xfc, 0xbf, 0x62, 0xa6, 0x11, 0xf3, 0x0b, 0x4e, 0x13, 0x56, 0xa0, 0x1c, 0x6d,
		0xb5, 0x7b, 0x67, 0xa9, 0x1c, 0x0d, 0x45, 0xc9, 0xf5, 0x56, 0x33, 0x9e, 0x08, 0xe3, 0x89, 0x9f,
		0x51, 0xc6, 0x73, 0x3e, 0x77, 0x9d, 0x56, 0xc3, 0x69, 0xf4, 0xea, 0x8d, 0x63, 0xb7, 0xd5, 0xfb,
		0xd8, 0x3e, 0x39, 0x3b, 0x85, 0xa2, 0x64, 0xb6, 0x35, 0x08, 0x28, 0x4a, 0x1a, 0x2e, 0x2f, 0xa4,
		0xb7, 0x71, 0xa0, 0x28, 0xb9, 0x86, 0x47, 0x65, 0xa7, 0xa2, 0xe4, 0x82, 0xfe, 0x8b, 0x98, 0xfe,
		0x8b, 0x98, 0xfe, 0xc7, 0x8a, 0x77, 0xd3, 0xff, 0x7a, 0xa1, 0x17, 0x25, 0xaa, 0x18, 0x92, 0x2a,
		0x14, 0xe5, 0x1a, 0x64, 0x24, 0xcd, 0xb8, 0x67, 0xc8, 0x48, 0xd2, 0xf2, 0xd6, 0x69, 0xec, 0x24,
		0x94, 0xee, 0xf2, 0x5c, 0xba, 0x83, 0x76, 0xa4, 0xd5, 0xb9, 0x31, 0xb4, 0x23, 0x39, 0x94, 0x3a,
		0x21, 0x1d, 0x49, 0xaa, 0xb8, 0x09, 0xe1, 0x48, 0xeb, 0x9c, 0x61, 0x41, 0xdd, 0xde, 0xd5, 0x8a,
		0x4a, 0x47, 0x32, 0x18, 0x7a, 0x7d, 0x59, 0xf4, 0x06, 0x83, 0x40, 0x86, 0x21, 0x1f, 0xe9, 0xc8,
		0x17, 0xec, 0x87, 0x78, 0x64, 0x1a, 0x66, 0x42, 0x3c, 0x72, 0x8d, 0xc8, 0x85, 0x78, 0x64, 0x16,
		0x99, 0x39, 0xc4, 0x23, 0x33, 0x4f, 0xbe, 0x21, 0x1e, 0x99, 0x8b, 0x14, 0x0a, 0xe2, 0x91, 0xeb,
		0x8d, 0x0f, 0x10, 0x8f, 0x04, 0xb1, 0xe1, 0x48, 0x70, 0x18, 0x13, 0x1d, 0xae, 0x84, 0x87, 0x3d,
		0xf1, 0x61, 0x4f, 0x80, 0x78, 0x13, 0x21, 0x1e, 0x84, 0x88, 0x09, 0x31, 0x62, 0x47, 0x90, 0x12,
		0x83, 0xb9, 0x14, 0x7f, 0x5e, 0x8c, 0x34, 0x3c, 0xaa, 0x3f, 0x2f, 0x91, 0x27, 0x48, 0x44, 0x82,
		0x4c, 0x59, 0x4c, 0xaa, 0xb8, 0x93, 0x2b, 0x6b, 0x48, 0x96, 0x35, 0x64, 0xcb, 0x0e, 0xd2, 0xc5,
		0x8b, 0x7c, 0x31, 0x23, 0x61, 0x09, 0x44, 0xf8, 0x4b, 0x44, 0xc6, 0x27, 0x5d, 0x3c, 0x19, 0xce,
		0x32, 0xcb, 0x29, 0x7f, 0x60, 0x68, 0xfb, 0xa9, 0x17, 0x45, 0x32, 0xd0, 0x6c, 0x75, 0x18, 0x0a,
		0xbf, 0xff, 0xbd, 0x55, 0xdc, 0xbb, 0xfc, 0xcf, 0xdf, 0xe5, 0xe2, 0xde, 0xe5, 0xec, 0x65, 0x39,
		0xfe, 0xf6, 0xef, 0xca, 0xb7, 0xff, 0x54, 0xfe, 0xde, 0x2a, 0xd6, 0xe6, 0xef, 0x56, 0xb6, 0xff,
		0xde, 0x2a, 0x6e, 0x5f, 0xbe, 0xff, 0xfd, 0xe2, 0x62, 0xf3, 0x57, 0xff, 0xcd, 0xfb, 0x7f, 0x57,
		0xbf, 0xf1, 0x73, 0xbb, 0x97, 0x1c, 0xe1, 0x78, 0xd2, 0x71, 0x3f, 0xb3, 0xc7, 0xe4, 0xff, 0xfe,
		0x9e, 0x15, 0x2a, 0xdf, 0xff, 0x57, 0x01, 0xad, 0xe3, 0xa0, 0x03, 0x4b, 0xd8, 0x83, 0x50, 0x99,
		0xe1, 0x15, 0x40, 0xa8, 0x8c, 0xf6, 0x12, 0x20, 0x54, 0x96, 0xd1, 0x27, 0x0e, 0xa1, 0x32, 0x0a,
		0x5f, 0x76, 0x08, 0x95, 0x6d, 0x57, 0xb7, 0xb6, 0xf7, 0x85, 0xdb, 0x29, 0xba, 0x9d, 0x99, 0x0c,
		0x52, 0xa8, 0xc6, 0x3a, 0x14, 0xc3, 0x71, 0x20, 0x9e, 0x51, 0x3b, 0xda, 0x7c, 0xe8, 0x7b, 0xd9,
		0x89, 0x35, 0x8e, 0xc4, 0x4c, 0xe2, 0x08, 0x4a, 0x64, 0xb4, 0xf2, 0x66, 0x28, 0x91, 0xd1, 0x5f,
		0xd0, 0x13, 0x25, 0xb2, 0xf4, 0x37, 0x22, 0xa4, 0xc6, 0x60, 0xb5, 0x4d, 0xf9, 0x22, 0xee, 0x44,
		0xe4, 0x91, 0xf5, 0x42, 0x6a, 0x8c, 0x6c, 0xff, 0xdd, 0xf3, 0x8d, 0x34, 0x10, 0x1b, 0x23, 0xd3,
		0x8f, 0xe7, 0xde, 0xde, 0xd5, 0xdc, 0xc5, 0xf3, 0xa9, 0xcf, 0x1e, 0x0f, 0xe4, 0xc6, 0xf2, 0x63,
		0x21, 0xe4, 0xc6, 0xd2, 0xb7, 0x19, 0x72, 0x63, 0xeb, 0xad, 0x49, 0xbc, 0x46, 0x35, 0xc9, 0x3d,
		0x3d, 0xaf, 0xf5, 0xdc, 0x56, 0xd7, 0x69, 0x1f, 0xd5, 0x0f, 0x9d, 0x5e, 0xbd, 0xd1, 0x68, 0x3b,
		0x9d, 0x0e, 0x04, 0xc7, 0xb2, 0x2d, 0x35, 0x40, 0x70, 0xcc, 0x70, 0x15, 0x21, 0xcd, 0xad, 0x03,
		0xc9, 0xb1, 0x35, 0x3c, 0x2c, 0x3b, 0x25, 0xc7, 0xdc, 0xd3, 0xbb, 0x9a, 0x48, 0xd2, 0x00, 0x31,
		0x4f, 0x03, 0xe6, 0x82, 0x49, 0xfd, 0xb1, 0x8e, 0x3c, 0xa5, 0x65, 0x70, 0xa1, 0x17, 0xda, 0x49,
		0x89, 0x4e, 0xbe, 0x0a, 0x67, 0xea, 0x49, 0x3b, 0x90, 0x20, 0x33, 0xe2, 0xb0, 0x21, 0x41, 0x46,
		0xcb, 0x7f, 0xaf, 0x63, 0x67, 0xa1, 0xc4, 0x97, 0xe7, 0x12, 0x1f, 0x24, 0xc9, 0xac, 0xce, 0x9f,
		0x21, 0x49, 0xc6, 0xa3, 0x24, 0x0a, 0x51, 0x32, 0x62, 0x45, 0x50, 0xc8, 0x92, 0x59, 0xe7, 0x10,
		0x67, 0xcd, 0x0e, 0x8b, 0xad, 0xca, 0x54, 0x95, 0x6c, 0xc5, 0x7c, 0x88, 0x92, 0xa5, 0x61, 0x26,
		0x44, 0xc9, 0xd6, 0x08, 0x5c, 0x88, 0x92, 0x65, 0x91, 0xab, 0x43, 0x94, 0x2c, 0xf3, 0x74, 0x1c,
		0xa2, 0x64, 0xb9, 0x48, 0xa2, 0x20, 0x4a, 0xb6, 0xde, 0xf8, 0x00, 0x51, 0x32, 0x10, 0x1b, 0x8e,
		0x04, 0x87, 0x31, 0xd1, 0xe1, 0x4a, 0x78, 0xd8, 0x13, 0x1f, 0xf6, 0x04, 0x88, 0x37, 0x11, 0xe2,
		0x41, 0x88, 0x98, 0x10, 0x23, 0x76, 0x04, 0x29, 0x31, 0x18, 0xa2, 0x64, 0x46, 0xc9, 0x13, 0x44,
		0xc9, 0x40, 0xa6, 0x2c, 0x26, 0x55, 0xdc, 0xc9, 0x95, 0x35, 0x24, 0xcb, 0x1a, 0xb2, 0x65, 0x07,
		0xe9, 0xe2, 0x45, 0xbe, 0x98, 0x91, 0xb0, 0x04, 0x22, 0x10, 0x25, 0x23, 0xc2, 0x72, 0x20, 0x4a,
		0x66, 0x62, 0x01, 0x10, 0x25, 0x7b, 0xe9, 0x0b, 0xa2, 0x64, 0xa6, 0x56, 0x01, 0x51, 0xb2, 0xef,
		0xe2, 0x12, 0x74, 0x60, 0x8d, 0xd8, 0x83, 0x28, 0x99, 0xe1, 0x15, 0x40, 0x94, 0x8c, 0xf6, 0x12,
		0x20, 0x4a, 0x96, 0xd1, 0x27, 0x0e, 0x51, 0x32, 0x0a, 0x5f, 0x39, 0x17, 0x25, 0xfb, 0xb0, 0xac,
		0x85, 0x24, 0xca, 0x90, 0x25, 0xa3, 0x95, 0x39, 0x43, 0x96, 0x8c, 0xfe, 0x82, 0xd2, 0x92, 0x25,
		0xfb, 0xce, 0x56, 0x84, 0x30, 0x19, 0xac, 0xb6, 0x29, 0x67, 0xc4, 0xbd, 0x88, 0x3c, 0x32, 0x5f,
		0x08, 0x93, 0xd1, 0xee, 0xc2, 0x7b, 0xda, 0x4b, 0x03, 0x5d, 0x32, 0x52, 0x2d, 0x79, 0x8b, 0x1f,
		0x87, 0x2c, 0x59, 0xee, 0x2c, 0x84, 0x2c, 0x59, 0xfa, 0x36, 0x43, 0x96, 0x6c, 0xbd, 0x55, 0x89,
		0x57, 0x6b, 0x2b, 0xb5, 0x1c, 0xf7, 0xe3, 0xa7, 0x83, 0x93, 0x36, 0x54, 0xc9, 0xcc, 0x54, 0x1a,
		0xa0, 0x4a, 0x66, 0xb8, 0x88, 0x90, 0xe2, 0xce, 0x81, 0x28, 0xd9, 0x1a, 0x9e, 0x95, 0xc5, 0xa2,
		0x64, 0x8b, 0x14, 0x20, 0x51, 0x4e, 0x4a, 0x34, 0x93, 0xc4, 0xd4, 0x2d, 0x5c, 0xe8, 0xe7, 0x34,
		0x93, 0x3e, 0x6c, 0x42, 0x8e, 0xcc, 0x88, 0xa7, 0x86, 0x1c, 0x19, 0x2d, 0xc7, 0x9d, 0xee, 0x9e,
		0x42, 0x49, 0x2f, 0xcf, 0x25, 0x3d, 0x08, 0x91, 0x59, 0x9d, 0x31, 0x43, 0x88, 0x8c, 0x45, 0x09,
		0x14, 0x3a, 0x64, 0xb4, 0x8a, 0x9e, 0x90, 0x21, 0xb3, 0xce, 0x1d, 0x16, 0xd4, 0xed, 0xdd, 0xce,
		0x33, 0x0a, 0x80, 0x9c, 0x74, 0xc8, 0x76, 0xd8, 0x29, 0x18, 0x42, 0x88, 0x2c, 0x65, 0x43, 0x21,
		0x44, 0x86, 0x8c, 0xfd, 0xf9, 0x2c, 0x1d, 0x42, 0x64, 0x99, 0x27, 0xe2, 0x10, 0x22, 0xcb, 0x45,
		0x12, 0x05, 0x21, 0xb2, 0xf5, 0xc6, 0x07, 0x08, 0x91, 0x81, 0xd8, 0x70, 0x24, 0x38, 0x8c, 0x89,
		0x0e, 0x57, 0xc2, 0xc3, 0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42, 0xc4, 0x84,
		0x18, 0xb1, 0x23, 0x48, 0x89, 0xc1, 0x10, 0x22, 0x33, 0x4a, 0x9e, 0x20, 0x44, 0x06, 0x32, 0x65,
		0x31, 0xa9, 0xe2, 0x4e, 0xae, 0xac, 0x21, 0x59, 0xd6, 0x90, 0x2d, 0x3b, 0x48, 0x17, 0x2f, 0xf2,
		0xc5, 0x8c, 0x84, 0x25, 0x10, 0xb1, 0x42, 0x88, 0x6c, 0x07, 0x42, 0x64, 0x86, 0x18, 0x03, 0x7b,
		0x21, 0xb2, 0x58, 0xbf, 0xc9, 0x2b, 0x0e, 0xeb, 0xc5, 0xa3, 0xcb, 0x7f, 0x97, 0x37, 0x6a, 0xdf,
		0xf6, 0xdf, 0xff, 0x7b, 0xf7, 0xdb, 0xd3, 0x37, 0xff, 0xf3, 0xdc, 0x8f, 0x95, 0x37, 0x76, 0xbf,
		0xed, 0xbf, 0xf0, 0x5f, 0x76, 0xbe, 0xed, 0xff, 0xe4, 0xff, 0x63, 0xfb, 0xdb, 0xef, 0x2b, 0x3f,
		0x3a, 0x7d, 0xbf, 0xf2, 0xd2, 0x3f, 0xa8, 0xbd, 0xf0, 0x0f, 0xaa, 0x2f, 0xfd, 0x83, 0xea, 0x0b,
		0xff, 0xe0, 0x45, 0x93, 0x2a, 0x2f, 0xfc, 0x83, 0xed, 0x6f, 0xff, 0x59, 0xf9, 0xf9, 0xdf, 0x9f,
		0xff, 0xd1, 0x9d, 0x6f, 0xef, 0xff, 0xf3, 0xd2, 0x7f, 0xdb, 0xfd, 0xf6, 0x9f, 0xfd, 0xf7, 0xef,
		0x21, 0xcd, 0x96, 0xc9, 0x06, 0xb5, 0x49, 0x9a, 0x0d, 0xdb, 0x34, 0xfb, 0x6d, 0x0a, 0xa9, 0x3a,
		0x10, 0xc6, 0x47, 0x7b, 0x11, 0x52, 0x75, 0x86, 0x57, 0x00, 0xa9, 0x3a, 0xda, 0x4b, 0x80, 0x54,
		0x5d, 0x46, 0x9f, 0x38, 0xa4, 0xea, 0x28, 0x7c, 0xd9, 0x21, 0x55, 0xb7, 0x53, 0x2e, 0xef, 0xed,
		0x0b, 0xf7, 0xf4, 0x6e, 0xe7, 0x39, 0x3d, 0x2c, 0xa1, 0xf4, 0x4c, 0x3b, 0x6b, 0x73, 0xd1, 0x12,
		0x75, 0xa1, 0xcb, 0x95, 0x65, 0x65, 0x2c, 0x68, 0xd4, 0x11, 0x2b, 0xaa, 0x40, 0xa3, 0x8e, 0xfe,
		0x82, 0x9e, 0x68, 0xd4, 0xa5, 0xba, 0x07, 0x21, 0x4e, 0x07, 0xab, 0x6d, 0xca, 0x12, 0x71, 0x57,
		0x26, 0x8f, 0x5c, 0x17, 0xe2, 0x74, 0x94, 0x3b, 0x33, 0x9f, 0x69, 0xb0, 0x82, 0x3a, 0x1d, 0xa5,
		0x46, 0xcd, 0x1d, 0x77, 0xf1, 0x7c, 0x20, 0x4f, 0x97, 0x3b, 0x0b, 0x21, 0x4f, 0x97, 0xbe, 0xcd,
		0x90, 0xa7, 0x5b, 0x6f, 0x25, 0xe2, 0x95, 0x22, 0x5b, 0x3b, 0x3d, 0xb7, 0xd5, 0x75, 0xda, 0x47,
		0xf5, 0x43, 0x07, 0xfa, 0x74, 0x66, 0xaa, 0x0c, 0xd0, 0xa7, 0x33, 0x5c, 0x40, 0x48, 0x73, 0xeb,
		0x40, 0xa0, 0x6e, 0x0d, 0x0f, 0xcb, 0x5a, 0x81, 0xba, 0x1d, 0x91, 0xa4, 0x01, 0x89, 0x9a, 0xd6,
		0xd4, 0x1d, 0x4c, 0xff, 0xfb, 0xc3, 0x20, 0x85, 0x18, 0x96, 0x2a, 0x14, 0xe5, 0x0a, 0x84, 0xe9,
		0xcc, 0xb8, 0x68, 0x08, 0xd3, 0xd1, 0xf2, 0xd8, 0xe9, 0xec, 0x25, 0x94, 0xf1, 0xf2, 0x5c, 0xc6,
		0x83, 0x20, 0x9d, 0xd5, 0x39, 0x32, 0x04, 0xe9, 0x78, 0x94, 0x3d, 0xa1, 0x48, 0x47, 0xac, 0xd0,
		0x09, 0x49, 0x3a, 0xeb, 0x1c, 0xe2, 0xac, 0xd1, 0x65, 0x45, 0x0b, 0x92, 0x97, 0x22, 0x1d, 0x33,
		0x29, 0x4b, 0x08, 0xd2, 0xa5, 0x6c, 0x28, 0x04, 0xe9, 0x90, 0xa9, 0x3f, 0x9f, 0x9d, 0x43, 0x90,
		0x2e, 0xf3, 0x04, 0x1c, 0x82, 0x74, 0xb9, 0x48, 0xa2, 0x20, 0x48, 0xb7, 0xde, 0xf8, 0x00, 0x41,
		0x3a, 0x10, 0x1b, 0x8e, 0x04, 0x87, 0x31, 0xd1, 0xe1, 0x4a, 0x78, 0xd8, 0x13, 0x1f, 0xf6, 0x04,
		0x88, 0x37, 0x11, 0xe2, 0x41, 0x88, 0x98, 0x10, 0x23, 0x76, 0x04, 0x29, 0x31, 0x18, 0x82, 0x74,
		0x46, 0xc9, 0x13, 0x04, 0xe9, 0x40, 0xa6, 0x2c, 0x26, 0x55, 0xdc, 0xc9, 0x95, 0x35, 0x24, 0xcb,
		0x1a, 0xb2, 0x65, 0x07, 0xe9, 0xe2, 0x45, 0xbe, 0x98, 0x91, 0xb0, 0x04, 0x22, 0x10, 0xa4, 0x23,
		0xc2, 0x72, 0x20, 0x48, 0x67, 0x62, 0x01, 0x50, 0xba, 0x82, 0x20, 0xdd, 0xcf, 0x7e, 0x41, 0x90,
		0xce, 0xd4, 0x2a, 0x20, 0x48, 0x07, 0x41, 0xba, 0x5f, 0xd8, 0xa7, 0x20, 0x8c, 0x6b, 0xdc, 0x8b,
		0x10, 0xa4, 0x33, 0xbc, 0x02, 0x08, 0xd2, 0xd1, 0x5e, 0x02, 0x04, 0xe9, 0x32, 0xfa, 0xc4, 0x21,
		0x48, 0x47, 0xe1, 0x2b, 0xb7, 0x82, 0x74, 0xd5, 0x7d, 0xe1, 0x76, 0xdc, 0x0e, 0x54, 0xe9, 0xe8,
		0x56, 0x56, 0xa0, 0x4a, 0x47, 0x7f, 0x41, 0x6f, 0x57, 0xa5, 0xfb, 0xc1, 0x46, 0x84, 0x34, 0x1d,
		0xac, 0xb6, 0x29, 0x5f, 0xc4, 0xad, 0x99, 0x3c, 0xb2, 0x5e, 0x48, 0xd3, 0xd1, 0xee, 0xd1, 0x7c,
		0xda, 0x69, 0x05, 0x65, 0x3a, 0x52, 0x0d, 0x9b, 0x8b, 0x1f, 0x87, 0x30, 0x5d, 0xee, 0x2c, 0x84,
		0x30, 0x5d, 0xfa, 0x36, 0x43, 0x98, 0x6e, 0xbd, 0x15, 0x89, 0x57, 0xab, 0x6b, 0xb5, 0x1c, 0xf7,
		0xe3, 0xa7, 0x83, 0x93, 0x36, 0x74, 0xe9, 0xcc, 0xd4, 0x19, 0xa0, 0x4b, 0x67, 0xb8, 0x84, 0x90,
		0xe2, 0xce, 0x81, 0x2c, 0xdd, 0x1a, 0x9e, 0x95, 0xc5, 0xb2, 0x74, 0x8b, 0x14, 0xe0, 0x67, 0x94,
		0xb4, 0xaa, 0x50, 0xa5, 0x33, 0xe3, 0xa0, 0xa1, 0x4a, 0x47, 0xcb, 0x5f, 0xa7, 0xb2, 0x95, 0x50,
		0xc0, 0xcb, 0x73, 0x01, 0x0f, 0xa2, 0x74, 0x56, 0xe7, 0xc7, 0x10, 0xa5, 0x63, 0x51, 0xf0, 0x84,
		0x26, 0x1d, 0xad, 0x12, 0x27, 0x24, 0xe9, 0xac, 0x73, 0x87, 0x05, 0xdf, 0xd3, 0x45, 0x6f, 0xf0,
		0xff, 0xbc, 0xbe, 0xd4, 0xfd, 0xfb, 0x62, 0xa8, 0x06, 0x8c, 0xf4, 0xe8, 0x9e, 0xb1, 0x1d, 0x62,
		0x74, 0x69, 0x98, 0x09, 0x31, 0xba, 0x35, 0xa2, 0x16, 0x62, 0x74, 0x59, 0x24, 0xe5, 0x10, 0xa3,
		0xcb, 0x3c, 0xef, 0x86, 0x18, 0x5d, 0x2e, 0x92, 0x27, 0x36, 0x62, 0x74, 0x2b, 0xf4, 0x80, 0x9f,
		0x30, 0xdd, 0xea, 0x12, 0x20, 0x52, 0x97, 0x67, 0xc2, 0xc3, 0x91, 0xf8, 0x30, 0x26, 0x40, 0x5c,
		0x89, 0x10, 0x7b, 0x42, 0xc4, 0x9e, 0x18, 0xf1, 0x26, 0x48, 0x3c, 0x88, 0x12, 0x13, 0xc2, 0xc4,
		0x8e, 0x38, 0x25, 0x06, 0xf3, 0x52, 0xf3, 0x5d, 0x89, 0x33, 0xdc, 0xae, 0xcb, 0x32, 0x24, 0x4e,
		0x6c, 0x09, 0x14, 0x67, 0x22, 0x65, 0x01, 0xa1, 0xe2, 0x4e, 0xac, 0xac, 0x21, 0x58, 0xd6, 0x10,
		0x2d, 0x3b, 0x08, 0x17, 0x2f, 0xe2, 0xc5, 0x8c, 0x80, 0xb1, 0x25, 0x62, 0x89, 0xe1, 0x43, 0xdf,
		0x1b, 0x85, 0x7c, 0x9d, 0xe5, 0x22, 0x5e, 0xcd, 0x96, 0xc1, 0xd4, 0xbf, 0xf0, 0x54, 0x10, 0x66,
		0x4f, 0xd4, 0x6c, 0x20, 0x6c, 0x16, 0x11, 0x37, 0x5b, 0x08, 0x9c, 0x75, 0x44, 0xce, 0x3a, 0x42,
		0x67, 0x17, 0xb1, 0xe3, 0x49, 0xf0, 0x98, 0x12, 0xbd, 0x04, 0x3a, 0x6c, 0x15, 0x89, 0x57, 0x22,
		0x86, 0xd4, 0x93, 0x1b, 0x19, 0x78, 0x4c, 0x7b, 0x0d, 0x9e, 0x92, 0xa8, 0x72, 0x8d, 0xf1, 0x1a,
		0x1c, 0x3d, 0xb9, 0xe1, 0x1f, 0xf7, 0xba, 0xe3, 0x4e, 0x14, 0x28, 0x3d, 0x62, 0xbf, 0x92, 0x78,
		0x35, 0x5b, 0xd3, 0x3d, 0x32, 0xef, 0xb6, 0xeb, 0x1d, 0xd5, 0x8f, 0xdd, 0xe6, 0x5f, 0xcc, 0xe3,
		0x78, 0xbc, 0xac, 0xf2, 0x74, 0x59, 0x07, 0xf5, 0xc3, 0x3f, 0xcf, 0x4e, 0x6d, 0x58, 0x4e, 0x65,
		0xba, 0x9c, 0xf3, 0x7a, 0xf3, 0xcc, 0xb1, 0x61, 0x35, 0xd5, 0xe9, 0x6a, 0x9a, 0x27, 0x87, 0xf5,
		0xa6, 0x0d, 0xab, 0xa9, 0x4d, 0x57, 0xd3, 0x71, 0xba, 0x05, 0xd6, 0x4b, 0xf9, 0xb6, 0xc1, 0xdd,
		0x2b, 0xbb, 0x31, 0xd1, 0xb5, 0xc0, 0x25, 0x3f, 0xf1, 0xc6, 0x6c, 0x0b, 0x0f, 0x8f, 0x16, 0x35,
		0xf7, 0xc5, 0xec, 0xce, 0xe9, 0x9e, 0x5d, 0xcc, 0xcc, 0x77, 0xed, 0x8b, 0xaa, 0x05, 0x6b, 0x99,
		0x7a, 0xae, 0x7d, 0x51, 0xb3, 0x60, 0x25, 0xb3, 0xf8, 0xb8, 0x2f, 0x2a, 0xbc, 0x1d, 0x31, 0x32,
		0x74, 0x04, 0xbe, 0x9f, 0xf1, 0x41, 0x9c, 0x25, 0xe0, 0x93, 0x55, 0xb0, 0x97, 0x82, 0x7f, 0x58,
		0x89, 0x85, 0x92, 0xf0, 0xc9, 0xe2, 0xf8, 0x4b, 0xc3, 0xaf, 0x2e, 0x85, 0xad, 0x44, 0x3c, 0x5f,
		0x7f, 0xcb, 0xd0, 0xd7, 0x16, 0x92, 0x16, 0x6b, 0x46, 0xdd, 0x10, 0x2b, 0x8b, 0x58, 0x14, 0x43,
		0x97, 0x17, 0x83, 0xd3, 0x64, 0x13, 0xe6, 0xe3, 0x34, 0x99, 0xd0, 0x76, 0xc0, 0x69, 0x32, 0x9d,
		0x6d, 0x8d, 0xd3, 0x64, 0xe2, 0x0b, 0xc2, 0x69, 0x32, 0xf8, 0xd3, 0x2b, 0xa1, 0x63, 0xcf, 0x69,
		0x72, 0x78, 0x1f, 0x46, 0xf2, 0x86, 0x2f, 0x7d, 0x12, 0xcc, 0x87, 0xdd, 0x3e, 0xd0, 0x10, 0xe6,
		0xe3, 0x34, 0x93, 0x85, 0xfc, 0xbd, 0x55, 0xdc, 0xab, 0x17, 0x8f, 0xbc, 0xe2, 0xf0, 0xf2, 0xdf,
		0xb5, 0x6f, 0x17, 0x17, 0x9b, 0x3f, 0x78, 0x83, 0xaf, 0xcf, 0xbd, 0xe4, 0x0c, 0x37, 0x1b, 0x46,
		0xb8, 0x26, 0xab, 0xf9, 0xdf, 0x5f, 0x05, 0xdd, 0x7f, 0x31, 0x46, 0x1d, 0x6a, 0x3b, 0xe0, 0x26,
		0x2f, 0xec, 0x83, 0x3b, 0xcf, 0x9f, 0x48, 0xfe, 0x55, 0x9d, 0xd9, 0x32, 0x50, 0xcf, 0x31, 0x61,
		0x3e, 0xea, 0x39, 0x84, 0x36, 0x02, 0xea, 0x39, 0x74, 0xb6, 0x35, 0xea, 0x39, 0xc4, 0x17, 0x84,
		0x7a, 0x0e, 0x38, 0xd3, 0x2b, 0xa1, 0x63, 0x4f, 0x3d, 0x67, 0xa2, 0x74, 0x54, 0xad, 0x58, 0x50,
		0xcc, 0xd9, 0x65, 0xbc, 0x84, 0xb6, 0xa7, 0x47, 0x92, 0x7d, 0x56, 0x6d, 0xc1, 0xcd, 0xd3, 0x63,
		0xa5, 0xad, 0xb8, 0x42, 0x1b, 0x2f, 0xe6, 0x7c, 0x9e, 0xdc, 0x59, 0x70, 0x7b, 0x36, 0x5e, 0xcf,
		0x51, 0xe0, 0xf5, 0x23, 0x35, 0xd6, 0x0d, 0x35, 0x52, 0xdc, 0x6f, 0x4b, 0x3d, 0xf6, 0xc5, 0x72,
		0xe4, 0x45, 0xea, 0x4e, 0xb2, 0xbe, 0x8c, 0x63, 0x41, 0x58, 0x7f, 0xec, 0x0a, 0xbc, 0xaf, 0xf6,
		0xb9, 0x82, 0x5a, 0x65, 0xaf, 0xb6, 0xb7, 0xb3, 0x5b, 0xd9, 0xdb, 0x86, 0x4f, 0x80, 0x4f, 0x40,
		0x82, 0x92, 0x03, 0xeb, 0x51, 0xfe, 0x47, 0xcc, 0x7b, 0xc9, 0xc9, 0x7c, 0x91, 0x6a, 0x74, 0x1d,
		0xf1, 0xaf, 0xff, 0xcf, 0xd7, 0x81, 0x03, 0x00, 0x13, 0xe6, 0xe3, 0x00, 0x80, 0xd0, 0x4e, 0xc0,
		0x01, 0x00, 0x9d, 0x6d, 0x8d, 0x03, 0x00, 0xe2, 0x0b, 0xc2, 0x01, 0x00, 0x58, 0xd3, 0x2b, 0xa1,
		0x63, 0xd7, 0x01, 0xc0, 0x07, 0x0b, 0xea, 0xff, 0xdb, 0xa8, 0xff, 0x1b, 0xfe, 0x42, 0xfd, 0x9f,
		0xd6, 0x62, 0x50, 0xff, 0xe7, 0xe2, 0x8a, 0x51, 0xff, 0x27, 0xe8, 0x0a, 0x6c, 0xac, 0xff, 0x57,
		0xb6, 0x51, 0xf8, 0x87, 0x33, 0x40, 0x62, 0x92, 0x07, 0xeb, 0x51, 0xf8, 0x87, 0xc5, 0xec, 0x43,
		0x73, 0xa1, 0xae, 0xf5, 0x38, 0x9a, 0x89, 0xd7, 0xb2, 0x9c, 0xbf, 0x10, 0xf6, 0xaf, 0xe5, 0x8d,
		0x77, 0xeb, 0x45, 0xd7, 0xd3, 0x64, 0xbb, 0x34, 0x4e, 0xa6, 0xfd, 0x17, 0xf5, 0x6c, 0x9a, 0x7f,
		0x51, 0xcd, 0xa7, 0xe9, 0x97, 0x9e, 0xbe, 0x11, 0xae, 0xbc, 0x53, 0xba, 0x5d, 0x4c, 0xfc, 0x4f,
		0x5e, 0x95, 0x54, 0xa8, 0xc2, 0x92, 0x1f, 0x4f, 0xfc, 0x9f, 0x7d, 0x2b, 0xf9, 0x4a, 0xff, 0x53,
		0x8c, 0x27, 0x59, 0x15, 0x07, 0xf3, 0x99, 0xff, 0x25, 0x3f, 0xbc, 0x2d, 0x45, 0xfe, 0x5d, 0x38,
		0xfd, 0xa3, 0x24, 0xe7, 0x33, 0xff, 0x8b, 0x2a, 0x2c, 0x06, 0x4b, 0x53, 0xff, 0x4b, 0x0b, 0x75,
		0x8c, 0x30, 0x79, 0x55, 0x7a, 0x30, 0x26, 0x31, 0x22, 0x9c, 0x4d, 0xfd, 0x9f, 0x7f, 0x2f, 0xad,
		0x8e, 0x54, 0x5f, 0x7d, 0xab, 0xc4, 0x71, 0xb0, 0xd6, 0xec, 0xf9, 0x45, 0xc1, 0xa4, 0x1f, 0xe9,
		0x79, 0xb1, 0xe4, 0x24, 0x79, 0x7c, 0xad, 0xd9, 0xa3, 0x71, 0xe7, 0x1f, 0x4a, 0xef, 0xc9, 0xdf,
		0xc3, 0xa7, 0x6f, 0xf4, 0x4e, 0x17, 0x8f, 0x2e, 0x79, 0xd5, 0x73, 0x43, 0x15, 0xf6, 0x9a, 0xf1,
		0xa3, 0x9b, 0x7d, 0xeb, 0x35, 0x95, 0xfe, 0xa7, 0x33, 0xfd, 0xa8, 0x1a, 0xf3, 0x07, 0xd7, 0x6b,
		0x86, 0xb7, 0xbd, 0xae, 0x7f, 0x17, 0x4e, 0xff, 0xe8, 0x39, 0xf3, 0x07, 0xe7, 0x86, 0xed, 0xa5,
		0xc7, 0xd6, 0x6b, 0x2d, 0x1e, 0x5b, 0xf2, 0xaa, 0xf7, 0x60, 0x47, 0x62, 0x40, 0x67, 0xf6, 0xd8,
		0xe6, 0xdf, 0x7b, 0x4d, 0x4f, 0xd7, 0x17, 0x8f, 0xa8, 0xa3, 0x06, 0xe1, 0xd3, 0x37, 0x7a, 0xb1,
		0x1d, 0xbc, 0xea, 0xa1, 0x7c, 0x5c, 0x31, 0x23, 0x37, 0xcc, 0xb4, 0x49, 0x8c, 0x75, 0x73, 0x18,
		0xd3, 0x33, 0x61, 0xcc, 0xf4, 0x33, 0x09, 0x74, 0xcc, 0xf4, 0x33, 0xb7, 0x5d, 0x31, 0xd3, 0x8f,
		0x5a, 0xde, 0x80, 0x99, 0x7e, 0xe0, 0x34, 0xdf, 0x87, 0x08, 0xdb, 0x33, 0xdc, 0xc4, 0xe3, 0xfb,
		0xd2, 0x1b, 0x06, 0x72, 0xc8, 0xd1, 0xe3, 0x2f, 0x24, 0x78, 0x18, 0xb6, 0x6d, 0x15, 0x4e, 0xe7,
		0xd9, 0xfc, 0xe6, 0xe6, 0x2c, 0xaf, 0x2d, 0xcd, 0x28, 0x26, 0x52, 0xa5, 0x1c, 0x5b, 0xca, 0x65,
		0xa2, 0xfc, 0x9f, 0xf2, 0x9e, 0x5b, 0x52, 0xc4, 0x53, 0xe9, 0x9b, 0xaf, 0xb2, 0xb7, 0x55, 0x4a,
		0xde, 0x8c, 0x95, 0xbb, 0x19, 0x2b, 0x75, 0x73, 0xf1, 0x86, 0x4c, 0x4f, 0x17, 0x70, 0xaa, 0x10,
		0xbf, 0xc5, 0x88, 0xf7, 0xe6, 0xf7, 0x1c, 0x81, 0x07, 0x2d, 0xa6, 0x4f, 0x32, 0x69, 0x5b, 0x48,
		0xdc, 0xe1, 0x17, 0xe4, 0xd7, 0x28, 0xf0, 0x8a, 0x93, 0x29, 0x86, 0xaf, 0x7c, 0x1e, 0x59, 0x7f,
		0x21, 0x90, 0x43, 0x19, 0x48, 0xdd, 0xe7, 0x73, 0x33, 0x98, 0x51, 0x04, 0x5d, 0x94, 0x50, 0x06,
		0x81, 0x37, 0x8c, 0x8a, 0x4a, 0x46, 0xc3, 0xb8, 0x46, 0x58, 0x0c, 0xe5, 0x68, 0x4a, 0x7c, 0x8b,
		0xc1, 0x78, 0x12, 0x29, 0x3d, 0x2a, 0xc6, 0x51, 0x2d, 0x54, 0x63, 0x1d, 0x6e, 0x8a, 0x70, 0x72,
		0x55, 0xec, 0x36, 0xcf, 0x45, 0xb5, 0xb2, 0x7f, 0xa1, 0xa7, 0x2f, 0x2a, 0x95, 0x0d, 0x51, 0x99,
		0xfd, 0x51, 0xdd, 0x10, 0xe5, 0x5a, 0x79, 0x93, 0x53, 0x48, 0x62, 0x5a, 0x74, 0x5f, 0x2e, 0xb6,
		0x3f, 0x6c, 0x11, 0x66, 0xb5, 0x47, 0xee, 0x75, 0xf6, 0x47, 0xf5, 0xf5, 0xb4, 0xf7, 0x10, 0x4a,
		0x53, 0x39, 0xb3, 0x92, 0x81, 0x30, 0x76, 0xe1, 0xcb, 0xb5, 0xd4, 0x08, 0xc4, 0xeb, 0x0b, 0xc4,
		0x49, 0x31, 0x3d, 0xba, 0xbf, 0x95, 0xe2, 0x0f, 0xf1, 0x6e, 0x7e, 0x6a, 0x57, 0xf4, 0xc3, 0xc1,
		0x55, 0x71, 0xfa, 0x66, 0xb8, 0xef, 0x76, 0x7a, 0x6d, 0xa7, 0x7e, 0xf8, 0xa9, 0x7e, 0xe0, 0x36,
		0xdd, 0xee, 0x5f, 0xbd, 0x7a, 0xe3, 0xbf, 0x7b, 0xcd, 0x7a, 0xab, 0xd7, 0x71, 0x1b, 0xef, 0x10,
		0x79, 0x33, 0x8d, 0xbc, 0xf1, 0x76, 0x40, 0xd0, 0x35, 0x17, 0x74, 0xdf, 0xbc, 0x5f, 0x70, 0x57,
		0x6e, 0x0d, 0x4f, 0xa8, 0x21, 0xc3, 0x7e, 0xa0, 0x6e, 0x59, 0xde, 0x57, 0x4e, 0x5c, 0xf1, 0x89,
		0xf6, 0xef, 0x85, 0xd2, 0x7d, 0x7f, 0x32, 0x90, 0x22, 0xba, 0x96, 0xa2, 0x59, 0x6f, 0x89, 0xa4,
		0xf2, 0x26, 0x3a, 0x6e, 0x43, 0xf4, 0xc7, 0x3a, 0xf2, 0x94, 0x96, 0x81, 0x98, 0x3a, 0x82, 0x0b,
		0x3d, 0xfd, 0xa9, 0x05, 0xb5, 0x53, 0xa1, 0x88, 0x31, 0x59, 0xad, 0x6c, 0x72, 0xf3, 0x10, 0x8c,
		0xef, 0x21, 0x2d, 0x3b, 0xe7, 0xc1, 0x12, 0x0a, 0x19, 0x9e, 0xaf, 0xdb, 0x70, 0x09, 0xe9, 0x91,
		0xaf, 0x4e, 0x71, 0x43, 0xe1, 0x92, 0x01, 0x32, 0x39, 0xca, 0x99, 0x1c, 0xaa, 0xd4, 0x6f, 0xf1,
		0x19, 0xbc, 0x8e, 0x23, 0x73, 0x79, 0x0c, 0xc9, 0x20, 0xa0, 0xe6, 0xe7, 0xb0, 0x91, 0x76, 0x38,
		0xa4, 0xeb, 0xae, 0x09, 0x3b, 0xc2, 0x42, 0xbc, 0xc3, 0xbd, 0x28, 0x0a, 0xd4, 0xd5, 0x24, 0x92,
		0x21, 0x79, 0x4f, 0xf8, 0x70, 0x1b, 0xf7, 0x89, 0xe1, 0xc4, 0x83, 0xcd, 0xe2, 0x06, 0x2e, 0x71,
		0x33, 0xb9, 0xb4, 0x14, 0x71, 0x6a, 0x21, 0x62, 0xd8, 0x32, 0xc4, 0x2d, 0x35, 0x67, 0xdb, 0x12,
		0xc4, 0x36, 0xfb, 0xe6, 0xd9, 0xf2, 0x83, 0x6b, 0x3d, 0x6f, 0x79, 0xe4, 0x0d, 0x15, 0x30, 0xc9,
		0x94, 0xe2, 0x66, 0x7a, 0x36, 0xce, 0x2b, 0x99, 0xf6, 0xcd, 0x48, 0xb6, 0x81, 0x09, 0xa1, 0x61,
		0x47, 0x6c, 0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87, 0x2b, 0xe1, 0x61, 0x4f, 0x7c, 0xd8, 0x13, 0x20,
		0xde, 0x44, 0x88, 0x07, 0x21, 0x62, 0x42, 0x8c, 0xd8, 0x11, 0xa4, 0xc4, 0x60, 0x7f, 0xdc, 0xf7,
		0xfc, 0xe2, 0x6d, 0x30, 0x8e, 0x64, 0x9f, 0xf7, 0x29, 0xfa, 0xca, 0x4a, 0x20, 0x41, 0x03, 0x5a,
		0x65, 0x17, 0xbd, 0xb2, 0x80, 0x66, 0x71, 0xa7, 0x5b, 0xd6, 0xd0, 0x2e, 0x6b, 0xe8, 0x97, 0x1d,
		0x34, 0x8c, 0x17, 0x1d, 0x63, 0x46, 0xcb, 0x12, 0x88, 0xf0, 0x97, 0xa0, 0x91, 0x7a, 0x72, 0x23,
		0x03, 0x8f, 0xeb, 0x55, 0xb3, 0x45, 0xcd, 0xa8, 0xc6, 0xd0, 0x76, 0x47, 0x4f, 0x6e, 0xf8, 0xc6,
		0xab, 0xee, 0xb8, 0x13, 0x05, 0x4a, 0x8f, 0x78, 0x4f, 0xd1, 0xd9, 0x9a, 0xee, 0x81, 0xe6, 0xc9,
		0x61, 0xbd, 0xd9, 0x3b, 0x6d, 0x9f, 0x74, 0x9d, 0xc3, 0xae, 0x7b, 0xd2, 0xe2, 0x3c, 0x4d, 0xa7,
		0x1c, 0x2f, 0xc8, 0x6d, 0xfd, 0xd9, 0x73, 0x3e, 0x1f, 0x36, 0xcf, 0x1a, 0x4e, 0xa3, 0x80, 0xc1,
		0x52, 0x99, 0x6e, 0x0b, 0x57, 0x47, 0xbc, 0xf7, 0xc4, 0x63, 0xf4, 0xb0, 0x29, 0xc8, 0x3f, 0xbf,
		0x96, 0xa7, 0x5b, 0x7b, 0x5f, 0x6c, 0x41, 0x57, 0x1f, 0x16, 0xb3, 0x67, 0x9e, 0x2c, 0x35, 0xb5,
		0x12, 0xeb, 0xd9, 0x6a, 0x6b, 0x3d, 0xac, 0xc0, 0x22, 0x8d, 0xad, 0x64, 0x51, 0x7c, 0xb5, 0xb6,
		0x56, 0x97, 0xc0, 0x4e, 0x73, 0x8b, 0xab, 0x27, 0x62, 0x28, 0xcd, 0xb2, 0xb2, 0x06, 0x7e, 0x52,
		0x2d, 0x4f, 0xbf, 0x2c, 0x98, 0x64, 0xda, 0x3e, 0x3a, 0xdc, 0xde, 0xaa, 0xec, 0xed, 0x8b, 0x86,
		0x1c, 0x2a, 0xad, 0x22, 0x35, 0xd6, 0x62, 0x3c, 0x14, 0x9e, 0x16, 0x6e, 0xa7, 0xe8, 0x76, 0x44,
		0x53, 0xe9, 0x7f, 0x44, 0x7d, 0x71, 0x3f, 0x57, 0x74, 0x26, 0x57, 0xc5, 0x58, 0x82, 0x62, 0x53,
		0x2c, 0x74, 0x28, 0x16, 0x0d, 0x57, 0xe5, 0xbd, 0x4d, 0x4c, 0xd0, 0x26, 0x50, 0x9c, 0xe1, 0x2f,
		0xf4, 0xb2, 0xb2, 0x26, 0xab, 0x87, 0x68, 0xa7, 0xbb, 0x03, 0x31, 0x8a, 0x1b, 0x56, 0x7f, 0xf7,
		0xeb, 0x12, 0xcd, 0xb0, 0x39, 0xb6, 0x14, 0x1a, 0xb3, 0xeb, 0xb5, 0x3b, 0x07, 0xcd, 0x9d, 0x8f,
		0x1b, 0xb6, 0xd8, 0x0d, 0xa9, 0xb3, 0xb8, 0xcf, 0x53, 0xe9, 0x7f, 0x12, 0x9e, 0x10, 0x72, 0x1a,
		0x45, 0x07, 0x21, 0x59, 0xab, 0xbd, 0x3a, 0x4b, 0x21, 0x59, 0x48, 0xd7, 0xad, 0xb7, 0xf0, 0xf0,
		0x1a, 0x29, 0xae, 0xf8, 0x90, 0xac, 0xde, 0xed, 0xb6, 0xdd, 0x83, 0xb3, 0xae, 0xd3, 0x81, 0x7c,
		0x5d, 0xb6, 0xf5, 0x04, 0xc8, 0xd7, 0x19, 0x2e, 0x15, 0xa4, 0xb2, 0x67, 0x20, 0x61, 0xb7, 0x86,
		0xa7, 0x64, 0xa7, 0x84, 0xdd, 0x94, 0xeb, 0x8b, 0x07, 0xae, 0xff, 0x44, 0x6f, 0x6b, 0xfa, 0x23,
		0x17, 0xfa, 0xa9, 0xde, 0x16, 0xbf, 0x32, 0x30, 0x04, 0xec, 0xe0, 0xa9, 0xd7, 0xe1, 0xad, 0x53,
		0xdb, 0x4e, 0xa8, 0xd8, 0xe5, 0xb9, 0x62, 0x07, 0xf9, 0x3a, 0xab, 0x73, 0x63, 0xc8, 0xd7, 0x11,
		0xaf, 0x70, 0x42, 0xbb, 0x8e, 0x4c, 0x4d, 0x13, 0xca, 0x75, 0xd6, 0xf9, 0xc0, 0x99, 0x00, 0xdc,
		0x40, 0xfa, 0xde, 0x3d, 0x33, 0xd1, 0xba, 0x99, 0xcd, 0xd0, 0xab, 0x4b, 0xc3, 0x4c, 0xe8, 0xd5,
		0xad, 0x11, 0xad, 0xd0, 0xab, 0xcb, 0x22, 0xfb, 0x86, 0x5e, 0x5d, 0xe6, 0x09, 0x36, 0xf4, 0xea,
		0x72, 0x91, 0x21, 0x41, 0xaf, 0x6e, 0xbd, 0xf1, 0x01, 0x7a, 0x75, 0x20, 0x36, 0x1c, 0x09, 0x0e,
		0x63, 0xa2, 0xc3, 0x95, 0xf0, 0xb0, 0x27, 0x3e, 0xec, 0x09, 0x10, 0x6f, 0x22, 0xc4, 0x83, 0x10,
		0x31, 0x21, 0x46, 0xec, 0x08, 0x52, 0x62, 0xb0, 0x57, 0xbc, 0x52, 0x11, 0xdf, 0x73, 0xf2, 0x99,
		0xf9, 0x50, 0xa6, 0x03, 0x81, 0xb2, 0x8b, 0x48, 0x59, 0x40, 0xa8, 0xb8, 0x13, 0x2b, 0x6b, 0x08,
		0x96, 0x35, 0x44, 0xcb, 0x0e, 0xc2, 0xc5, 0x8b, 0x78, 0x31, 0x23, 0x60, 0x09, 0x44, 0xf8, 0x2b,
		0xd3, 0x5d, 0x8d, 0xc7, 0xbe, 0xf4, 0x58, 0xab, 0xd2, 0x95, 0x71, 0x5d, 0x2a, 0xef, 0x9b, 0xb1,
		0xc0, 0xe3, 0x3c, 0xf9, 0xc5, 0x5d, 0xc8, 0xe1, 0x68, 0x19, 0x09, 0x06, 0x12, 0x0c, 0x24, 0x18,
		0x48, 0x30, 0x90, 0x60, 0x20, 0xc1, 0x40, 0x82, 0x81, 0x04, 0xe3, 0x27, 0x3d, 0xfe, 0x44, 0xe9,
		0xa8, 0x5a, 0x61, 0x9c, 0x5f, 0xec, 0x32, 0x34, 0xbd, 0xed, 0xe9, 0x11, 0x54, 0xd6, 0x0c, 0x7c,
		0xf0, 0xc7, 0x4a, 0xf3, 0x57, 0x14, 0x3b, 0xf7, 0xfc, 0x89, 0xe4, 0xa9, 0x18, 0xfa, 0x68, 0x1d,
		0x47, 0x81, 0x17, 0xcf, 0x14, 0x6a, 0xa8, 0x91, 0xe2, 0x2a, 0x81, 0xfa, 0xd8, 0xa7, 0xca, 0x91,
		0x17, 0xa9, 0x3b, 0xc9, 0x52, 0x71, 0x93, 0x71, 0x18, 0x7e, 0xbc, 0xc5, 0xbd, 0xaf, 0xf6, 0x6c,
		0xf1, 0x5a, 0x65, 0xaf, 0xb6, 0xb7, 0xb3, 0x5b, 0xd9, 0xdb, 0xc6, 0x5e, 0xc7, 0x5e, 0x47, 0x82,
		0xc0, 0xd8, 0x6a, 0xe8, 0xfc, 0xe5, 0xd9, 0x52, 0xe8, 0xfc, 0xad, 0xd7, 0xee, 0x9c, 0x74, 0xc1,
		0xc6, 0x07, 0x11, 0x90, 0xf8, 0x23, 0xd5, 0x0e, 0xdb, 0x98, 0x3e, 0x13, 0xa8, 0xfb, 0xe5, 0xc7,
		0x42, 0xa8, 0xfb, 0xa5, 0x6f, 0x33, 0xbf, 0xd9, 0x03, 0x0c, 0xfb, 0x31, 0xda, 0x47, 0x87, 0xbb,
		0x1f, 0xca, 0x5b, 0xfb, 0x73, 0x21, 0xf3, 0x6e, 0xe0, 0x0d, 0x87, 0xaa, 0x2f, 0x1c, 0x3d, 0x52,
		0x5a, 0xca, 0x40, 0xe9, 0x91, 0xf8, 0xbd, 0xeb, 0xbc, 0x17, 0xc7, 0x32, 0x0a, 0x54, 0xff, 0x42,
		0xc7, 0x9e, 0x32, 0x54, 0x63, 0x1d, 0x6e, 0x26, 0x9a, 0xe6, 0xd5, 0xea, 0x7e, 0xa2, 0x73, 0x5e,
		0xa9, 0x6e, 0x88, 0x72, 0xad, 0xbc, 0x21, 0x2a, 0xf1, 0xdf, 0x2a, 0xd5, 0x4d, 0xb4, 0x7a, 0xac,
		0xdf, 0x6e, 0x0b, 0x06, 0x0a, 0xd8, 0xd5, 0xed, 0x91, 0xc1, 0xb6, 0x42, 0x36, 0x96, 0x33, 0x2b,
		0x2f, 0x37, 0xa0, 0xc8, 0x9b, 0xf7, 0x70, 0xfd, 0x6a, 0x75, 0xd1, 0x86, 0xd3, 0xac, 0xff, 0x05,
		0x31, 0xde, 0x6c, 0x63, 0x31, 0xc4, 0x78, 0x0d, 0x87, 0xe1, 0xb7, 0x6e, 0x17, 0x5c, 0xfc, 0x5d,
		0xc3, 0x03, 0xb2, 0x42, 0x87, 0xd7, 0x7d, 0xaa, 0x19, 0x1a, 0x97, 0xe1, 0x96, 0xe4, 0x42, 0xc7,
		0xda, 0xbf, 0x4f, 0x34, 0x43, 0x17, 0x9c, 0xee, 0x42, 0xc7, 0x40, 0x5c, 0x08, 0x87, 0x56, 0xab,
		0xd0, 0xe1, 0x35, 0xe3, 0x99, 0xa1, 0xc3, 0x4b, 0xcb, 0x51, 0xa7, 0xb6, 0x9d, 0x70, 0xa2, 0x86,
		0x1c, 0x8e, 0x72, 0x0e, 0x87, 0x2a, 0xf6, 0x5b, 0x3c, 0x06, 0x74, 0x78, 0xc9, 0x9e, 0x40, 0x42,
		0x82, 0x97, 0xc2, 0x99, 0x23, 0xd4, 0x77, 0xad, 0xf3, 0x7c, 0x4b, 0x4a, 0xb6, 0xc5, 0x3b, 0x2f,
		0x50, 0x3c, 0xfc, 0xdf, 0x33, 0x3a, 0xbc, 0x4b, 0xd6, 0x43, 0x91, 0x37, 0x0d, 0x33, 0xa1, 0xc8,
		0xbb, 0x46, 0xdc, 0x42, 0x91, 0x37, 0x8b, 0x3c, 0x1c, 0x8a, 0xbc, 0x99, 0xa7, 0xda, 0x50, 0xe4,
		0xcd, 0x45, 0xae, 0x04, 0x45, 0xde, 0xf5, 0xc6, 0x07, 0x28, 0xf2, 0x82, 0xd8, 0x70, 0x24, 0x38,
		0x8c, 0x89, 0x0e, 0x57, 0xc2, 0xc3, 0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42,
		0xc4, 0x84, 0x18, 0xb1, 0x23, 0x48, 0x89, 0xc1, 0x10, 0xcc, 0x32, 0x46, 0x9c, 0x20, 0x98, 0x05,
		0x22, 0x65, 0x31, 0xa1, 0xe2, 0x4e, 0xac, 0xac, 0x21, 0x58, 0xd6, 0x10, 0x2d, 0x3b, 0x08, 0x17,
		0x2f, 0xe2, 0xc5, 0x8c, 0x80, 0x25, 0x10, 0x81, 0x60, 0x96, 0x71, 0x7e, 0x03, 0xc1, 0xac, 0xac,
		0xbf, 0x20, 0x98, 0x65, 0x76, 0x11, 0x10, 0xcc, 0xa2, 0xea, 0x53, 0x21, 0x98, 0x45, 0x60, 0x8b,
		0x43, 0x30, 0x0b, 0x7b, 0x1d, 0x7b, 0xdd, 0xd2, 0x04, 0x81, 0xaf, 0xd5, 0x10, 0xcc, 0xca, 0xb3,
		0xa5, 0x10, 0xcc, 0x5a, 0xaf, 0xdd, 0x79, 0xba, 0xae, 0xfe, 0x70, 0x19, 0x15, 0xd2, 0x59, 0xf4,
		0xae, 0xb1, 0x9f, 0x2f, 0x1e, 0x0e, 0x34, 0xb4, 0xf2, 0x63, 0x21, 0x34, 0xb4, 0xd2, 0xb7, 0x19,
		0x1a, 0x5a, 0xeb, 0x4c, 0x5f, 0xd2, 0xd4, 0xd0, 0xda, 0x4e, 0xc4, 0x7e, 0x2a, 0xd5, 0x8d, 0x72,
		0xad, 0xbc, 0x51, 0x99, 0xbe, 0x84, 0x7e, 0x56, 0x26, 0x76, 0x43, 0x3f, 0x8b, 0x02, 0x6d, 0x4e,
		0x5b, 0x3f, 0xeb, 0xe5, 0x2d, 0x85, 0xc4, 0x2c, 0x67, 0x56, 0x42, 0x3b, 0x0b, 0x61, 0xfa, 0x6d,
		0x62, 0x40, 0xbd, 0xf3, 0x7a, 0xdb, 0xad, 0x77, 0xdd, 0x93, 0x16, 0x54, 0xb4, 0xb2, 0x8d, 0xc8,
		0x50, 0xd1, 0x32, 0x1c, 0x8c, 0xd3, 0xdb, 0x38, 0xd0, 0xd3, 0x5a, 0xc3, 0xa3, 0xb2, 0x42, 0x4f,
		0xeb, 0x44, 0xfb, 0xf7, 0x42, 0x3d, 0xaf, 0x02, 0x94, 0x94, 0xea, 0x96, 0xf4, 0x80, 0xa6, 0x4e,
		0xe1, 0x42, 0x2f, 0x69, 0x01, 0x3d, 0xa8, 0x00, 0x6d, 0x43, 0x54, 0xcb, 0x8c, 0xa3, 0x86, 0xa8,
		0x16, 0x2d, 0xbf, 0x9d, 0xee, 0x9e, 0xc2, 0xd1, 0x1b, 0x32, 0x3c, 0xca, 0x19, 0x1e, 0x6a, 0xdb,
		0x6f, 0x71, 0x1b, 0x50, 0xd6, 0x62, 0x70, 0x54, 0x09, 0x8d, 0x2d, 0x52, 0x87, 0x93, 0x10, 0xdb,
		0xb2, 0xce, 0x19, 0xce, 0xe4, 0xaa, 0xd4, 0x80, 0x99, 0xbe, 0x96, 0x1a, 0x40, 0x52, 0x2b, 0x15,
		0x33, 0x21, 0xa9, 0xb5, 0x46, 0xa8, 0x42, 0x52, 0x2b, 0x8b, 0x2c, 0x1c, 0x92, 0x5a, 0x99, 0x27,
		0xda, 0x90, 0xd4, 0xca, 0x45, 0x92, 0x04, 0x49, 0xad, 0xf5, 0xc6, 0x07, 0x48, 0x6a, 0x81, 0xd8,
		0x70, 0x24, 0x38, 0x8c, 0x89, 0x0e, 0x57, 0xc2, 0xc3, 0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89,
		0x10, 0x0f, 0x42, 0xc4, 0x84, 0x18, 0xb1, 0x23, 0x48, 0x89, 0xc1, 0xfe, 0xb8, 0xef, 0xf9, 0x7c,
		0x0f, 0xcd, 0x67, 0xe6, 0x43, 0x52, 0x0b, 0x04, 0xca, 0x2e, 0x22, 0x65, 0x01, 0xa1, 0xe2, 0x4e,
		0xac, 0xac, 0x21, 0x58, 0xd6, 0x10, 0x2d, 0x3b, 0x08, 0x17, 0x2f, 0xe2, 0xc5, 0x8c, 0x80, 0x25,
		0x10, 0x81, 0xa4, 0x96, 0x71, 0x7e, 0x03, 0x49, 0xad, 0xac, 0xbf, 0x20, 0xa9, 0x65, 0x76, 0x11,
		0x90, 0xd4, 0xa2, 0xea, 0x53, 0x21, 0xa9, 0x45, 0x60, 0x8b, 0x43, 0x52, 0x0b, 0x7b, 0x1d, 0x7b,
		0xdd, 0xd2, 0x04, 0x81, 0xaf, 0xd5, 0x97, 0x48, 0xc4, 0xd6, 0xb8, 0x1d, 0x19, 0x6a, 0x86, 0xac,
		0xac, 0x81, 0x9f, 0x86, 0x88, 0x45, 0x99, 0xc1, 0x92, 0xc6, 0xc8, 0x76, 0x75, 0x6b, 0x77, 0x21,
		0x88, 0xf0, 0xa0, 0x77, 0x20, 0x94, 0x16, 0x9d, 0xc9, 0xed, 0xed, 0x38, 0x88, 0xc4, 0x78, 0x28,
		0x3e, 0x4a, 0x2d, 0x03, 0xcf, 0x57, 0xff, 0x27, 0x07, 0x17, 0xfa, 0x78, 0xe2, 0x47, 0xaa, 0xb8,
		0xb8, 0x3e, 0x2d, 0x9a, 0xde, 0x95, 0xf4, 0x45, 0xe7, 0x8b, 0x8a, 0xfa, 0xd7, 0xb1, 0x82, 0xc2,
		0xc7, 0xe3, 0xd3, 0x66, 0xe7, 0xfd, 0x92, 0x62, 0x42, 0x2c, 0x98, 0x70, 0xa1, 0x1f, 0x2b, 0x26,
		0x08, 0x66, 0x2a, 0x24, 0x2b, 0x9f, 0x21, 0xf3, 0x12, 0xec, 0x43, 0x65, 0x81, 0xbf, 0x4a, 0xc9,
		0xca, 0x9a, 0x6c, 0xa9, 0xca, 0x26, 0x0b, 0x7a, 0xa2, 0x62, 0x62, 0x76, 0xd3, 0x82, 0xfd, 0xc1,
		0x6a, 0x9b, 0xd8, 0x1f, 0xf4, 0x03, 0xd6, 0xc2, 0xef, 0x6e, 0xc6, 0x91, 0xe4, 0x7b, 0x0b, 0x62,
		0x6e, 0x3f, 0xae, 0x41, 0x64, 0x61, 0x36, 0xae, 0x41, 0x18, 0x44, 0x3a, 0xae, 0x41, 0x50, 0xe0,
		0xde, 0xb8, 0x06, 0x41, 0x8e, 0x68, 0xe3, 0x1a, 0x04, 0x58, 0xcd, 0x33, 0x10, 0xc1, 0x35, 0x08,
		0xe3, 0xfc, 0x06, 0xd7, 0x20, 0xb2, 0xfe, 0xc2, 0x35, 0x08, 0xb3, 0x8b, 0xc0, 0x35, 0x08, 0xaa,
		0x3e, 0x15, 0xd7, 0x20, 0x08, 0x6c, 0x71, 0x5c, 0x83, 0xc0, 0x5e, 0xc7, 0x5e, 0xb7, 0x34, 0x41,
		0xe0, 0x6b, 0x35, 0xae, 0x41, 0xac, 0x73, 0x3b, 0xe2, 0x1a, 0x04, 0x32, 0x83, 0x54, 0xf2, 0x61,
		0x5c, 0x83, 0x78, 0xfd, 0x67, 0x88, 0x6b, 0x10, 0x74, 0xd7, 0x84, 0x6b, 0x10, 0xb8, 0x06, 0x01,
		0xf6, 0x07, 0xf6, 0x67, 0xd9, 0xe7, 0x0b, 0x79, 0x8d, 0x54, 0x7d, 0x2a, 0xe6, 0xca, 0x52, 0x16,
		0x6b, 0x56, 0x03, 0x8c, 0x92, 0x25, 0xa5, 0xd6, 0xec, 0x0e, 0x30, 0x3e, 0x36, 0x3f, 0x16, 0x62,
		0x7c, 0x6c, 0xfa, 0x36, 0x63, 0x24, 0xdd, 0x7a, 0xcb, 0x19, 0xaf, 0x9e, 0xac, 0xe5, 0x36, 0x30,
		0x85, 0x2e, 0xdb, 0x52, 0x03, 0xa6, 0xd0, 0x19, 0xae, 0x22, 0xbc, 0x69, 0xaf, 0xe0, 0xe2, 0xf8,
		0x1a, 0x9e, 0x8e, 0xc5, 0x83, 0xe7, 0xd4, 0x40, 0xea, 0x48, 0x0d, 0x95, 0x0c, 0x9e, 0xcc, 0xc7,
		0x9a, 0xfe, 0xc8, 0x85, 0x7e, 0x3a, 0x1f, 0xab, 0x86, 0x89, 0x73, 0x46, 0x9c, 0x32, 0x26, 0xce,
		0xd1, 0xf2, 0xd1, 0x29, 0x6d, 0x26, 0x54, 0xe3, 0xf2, 0x5c, 0x8d, 0xc3, 0xa8, 0x39, 0xab, 0xf3,
		0x60, 0x8c, 0x9a, 0x23, 0x5a, 0xbd, 0xc4, 0x74, 0x39, 0xe3, 0xf5, 0x4a, 0x4c, 0x94, 0xb3, 0xce,
		0xe7, 0xcd, 0x06, 0xb4, 0xf9, 0xe3, 0x30, 0x64, 0x36, 0x53, 0x2e, 0x36, 0x19, 0x53, 0xe5, 0xd2,
		0x30, 0x13, 0x53, 0xe5, 0xd6, 0x08, 0x56, 0x4c, 0x95, 0xcb, 0x22, 0xd3, 0xc6, 0x54, 0xb9, 0xcc,
		0x93, 0x69, 0x4c, 0x95, 0xcb, 0x45, 0x3e, 0x84, 0xa9, 0x72, 0xeb, 0x8d, 0x0f, 0x98, 0x2a, 0x07,
		0x62, 0xc3, 0x91, 0xe0, 0x30, 0x26, 0x3a, 0x5c, 0x09, 0x0f, 0x7b, 0xe2, 0xc3, 0x9e, 0x00, 0xf1,
		0x26, 0x42, 0x3c, 0x08, 0x11, 0x13, 0x62, 0xc4, 0x8e, 0x20, 0x25, 0x06, 0x7b, 0xc5, 0x2b, 0x15,
		0xf1, 0x3d, 0x11, 0x9f, 0x99, 0x0f, 0x39, 0x35, 0x10, 0x28, 0xbb, 0x88, 0x94, 0x05, 0x84, 0x8a,
		0x3b, 0xb1, 0xb2, 0x86, 0x60, 0x59, 0x43, 0xb4, 0xec, 0x20, 0x5c, 0xbc, 0x88, 0x17, 0x33, 0x02,
		0x96, 0x40, 0x84, 0xbf, 0x9c, 0xda, 0xd5, 0x78, 0xec, 0x4b, 0x4f, 0x33, 0xd6, 0x53, 0x2b, 0x97,
		0x71, 0x39, 0x2a, 0xef, 0x9b, 0x91, 0xd1, 0x91, 0xf2, 0x8b, 0x3b, 0x91, 0xcb, 0x11, 0x33, 0x12,
		0x0d, 0x24, 0x1a, 0x48, 0x34, 0x90, 0x68, 0x20, 0xd1, 0x40, 0xa2, 0x81, 0x44, 0x03, 0x89, 0xc6,
		0x4f, 0x7a, 0x7c, 0xe8, 0x36, 0x1b, 0x30, 0x1d, 0xba, 0xcd, 0x86, 0x3e, 0x78, 0xe8, 0x36, 0x13,
		0x5a, 0x07, 0xb4, 0x5c, 0x11, 0x86, 0xd7, 0xb0, 0xc5, 0xa1, 0xdb, 0x8c, 0xbd, 0x8e, 0xbd, 0x6e,
		0x69, 0x82, 0xc0, 0xd7, 0x6a, 0x28, 0xf7, 0xe5, 0xd9, 0x52, 0x28, 0xf7, 0xad, 0xd7, 0xee, 0x9c,
		0xf4, 0xbe, 0xfa, 0xe3, 0x30, 0x84, 0x76, 0x1f, 0xa9, 0x5e, 0xd8, 0xe6, 0x38, 0x0c, 0xa1, 0xde,
		0x97, 0x1f, 0x0b, 0xa1, 0xde, 0x97, 0xbe, 0xcd, 0xfc, 0x26, 0x16, 0x30, 0xec, 0xca, 0x68, 0x1f,
		0x1d, 0xee, 0x7e, 0x28, 0x6f, 0x2d, 0xc4, 0xcd, 0xbb, 0x81, 0x37, 0x1c, 0xaa, 0xbe, 0x70, 0xf4,
		0x48, 0x69, 0x29, 0x83, 0x58, 0xab, 0xbc, 0xeb, 0xbc, 0x17, 0xc7, 0x32, 0x0a, 0x54, 0xff, 0x42,
		0x3f, 0xa8, 0x9f, 0x2f, 0x69, 0x97, 0xef, 0xc4, 0xe2, 0xe5, 0x22, 0x16, 0x2c, 0xaf, 0x6e, 0x88,
		0x72, 0xad, 0xbc, 0x21, 0x38, 0xce, 0x1c, 0xb0, 0xa1, 0xe1, 0x83, 0xeb, 0x4c, 0x01, 0xbb, 0x7a,
		0x3e, 0x32, 0xd8, 0x56, 0xc8, 0xc5, 0x72, 0x66, 0xe5, 0xe5, 0x06, 0x14, 0x77, 0xf3, 0x1e, 0xae,
		0x5f, 0xad, 0x22, 0xda, 0x3c, 0xe9, 0x74, 0xa0, 0xb9, 0x9b, 0x6d, 0x28, 0x86, 0xe6, 0xae, 0xe1,
		0x28, 0xfc, 0xc6, 0xdd, 0x82, 0xcb, 0xbf, 0x6b, 0x78, 0x3e, 0x16, 0xab, 0xee, 0xfa, 0xe3, 0x30,
		0x7c, 0x46, 0x22, 0x74, 0x41, 0xe8, 0x2e, 0xf4, 0x42, 0x22, 0xb4, 0xba, 0xb3, 0x09, 0xc5, 0x5d,
		0x23, 0x2e, 0x19, 0x8a, 0xbb, 0xb4, 0x3c, 0x74, 0x0a, 0x1b, 0x09, 0x27, 0x68, 0xc8, 0xda, 0x28,
		0x67, 0x6d, 0xa8, 0x5b, 0xbf, 0xc5, 0x57, 0x40, 0x6d, 0x97, 0xea, 0x89, 0x23, 0xf4, 0x76, 0x09,
		0x9c, 0x31, 0x42, 0x71, 0xd7, 0x3a, 0xbf, 0x37, 0xeb, 0x2d, 0x9c, 0x6e, 0x78, 0x19, 0x5f, 0x8e,
		0x8b, 0xf3, 0x54, 0x66, 0xe2, 0xbb, 0x4f, 0xad, 0x87, 0x0e, 0x6f, 0x1a, 0x66, 0x42, 0x87, 0x77,
		0x8d, 0xb8, 0x85, 0x0e, 0x6f, 0x16, 0xf9, 0x37, 0x74, 0x78, 0x33, 0x4f, 0xb1, 0xa1, 0xc3, 0x9b,
		0x8b, 0x4c, 0x09, 0x3a, 0xbc, 0xeb, 0x8d, 0x0f, 0xd0, 0xe1, 0x05, 0xb1, 0xe1, 0x48, 0x70, 0x18,
		0x13, 0x1d, 0xae, 0x84, 0x87, 0x3d, 0xf1, 0x61, 0x4f, 0x80, 0x78, 0x13, 0x21, 0x1e, 0x84, 0x88,
		0x09, 0x31, 0x62, 0x47, 0x90, 0x12, 0x83, 0x23, 0x8e, 0x32, 0x12, 0x49, 0x98, 0x61, 0x50, 0xf7,
		0x79, 0x89, 0x36, 0x41, 0x1c, 0x0b, 0x34, 0xca, 0x62, 0x3a, 0xc5, 0x9d, 0x56, 0x59, 0x43, 0xaf,
		0xac, 0xa1, 0x59, 0x76, 0xd0, 0x2d, 0x5e, 0xb4, 0x8b, 0x19, 0xfd, 0x4a, 0x20, 0xc2, 0x5f, 0x1c,
		0x4b, 0xea, 0xc9, 0x8d, 0x0c, 0x3c, 0xae, 0x77, 0xc8, 0x16, 0xb5, 0xa1, 0x1a, 0x43, 0xdb, 0x1d,
		0x3d, 0xb9, 0xe1, 0x1b, 0xaf, 0xba, 0xe3, 0x4e, 0x14, 0x28, 0x3d, 0x62, 0xad, 0x44, 0x53, 0xd8,
		0x9a, 0xee, 0x01, 0xe7, 0x73, 0xb7, 0x5d, 0xef, 0x75, 0xdb, 0xf5, 0xa3, 0x23, 0xf7, 0xb0, 0xc0,
		0x58, 0x18, 0xa8, 0x3c, 0x5d, 0xcd, 0x59, 0xeb, 0xb4, 0x7d, 0xd2, 0x75, 0x0e, 0xbb, 0x4e, 0x83,
		0xf3, 0x5a, 0x2a, 0xd3, 0xb5, 0x74, 0x3e, 0xd5, 0xdb, 0xbc, 0x97, 0x51, 0x8d, 0xef, 0xea, 0xb4,
		0x9c, 0xde, 0x49, 0xcb, 0xe1, 0xbc, 0x8e, 0xda, 0x74, 0x1d, 0xa7, 0xcd, 0xb3, 0x0e, 0xf7, 0x85,
		0x6c, 0xc7, 0x3b, 0xbe, 0xf5, 0xa9, 0xde, 0x3a, 0x74, 0x1a, 0x05, 0x9e, 0xca, 0x40, 0x1b, 0x5c,
		0x43, 0x86, 0xab, 0x23, 0xde, 0xf1, 0x22, 0x01, 0xce, 0xbe, 0x60, 0xac, 0x57, 0xf6, 0x24, 0xe2,
		0xb1, 0x96, 0x2a, 0x4b, 0x9c, 0xeb, 0xbe, 0xa8, 0x32, 0x5e, 0x45, 0xe2, 0x5a, 0xf7, 0x45, 0x8d,
		0xf1, 0x32, 0xe6, 0x01, 0x7b, 0x5f, 0x54, 0x18, 0x2f, 0x62, 0x99, 0x41, 0xed, 0x8b, 0x32, 0xd4,
		0xe3, 0x60, 0x31, 0xfb, 0x4a, 0x45, 0x53, 0x85, 0x51, 0x3d, 0x8a, 0x02, 0x9e, 0xd5, 0x8a, 0x63,
		0xa5, 0x1d, 0x5f, 0xde, 0x48, 0xcd, 0x55, 0x58, 0xb3, 0x70, 0xec, 0x7d, 0x5d, 0x5a, 0x41, 0xf9,
		0x43, 0xad, 0xb6, 0xb3, 0x5b, 0xab, 0x6d, 0xed, 0x56, 0x77, 0xb7, 0xf6, 0xb6, 0xb7, 0xcb, 0x3b,
		0x65, 0x86, 0x74, 0xa2, 0x70, 0x12, 0x0c, 0x64, 0x20, 0x07, 0x07, 0xf7, 0x85, 0x7d, 0xa1, 0x27,
		0xbe, 0xcf, 0x79, 0x09, 0x67, 0xa1, 0x0c, 0x58, 0x2a, 0x9d, 0x72, 0xf3, 0x44, 0x0c, 0xd5, 0xbb,
		0x56, 0xd6, 0xc0, 0x4f, 0xcd, 0xeb, 0xe9, 0x17, 0xe3, 0x1c, 0x6c, 0x49, 0xed, 0x6b, 0xbb, 0xba,
		0xb5, 0xbb, 0x90, 0x25, 0x7a, 0x50, 0x1d, 0x12, 0x4a, 0x8b, 0xce, 0xe4, 0xf6, 0x76, 0x1c, 0x44,
		0x62, 0x3c, 0x14, 0x1f, 0xa5, 0x96, 0x81, 0xe7, 0xab, 0xff, 0x93, 0x83, 0x0b, 0x7d, 0x3c, 0xf1,
		0x23, 0x55, 0x5c, 0xf4, 0x3d, 0x09, 0xd1, 0xf4, 0xae, 0xa4, 0x2f, 0x3a, 0x5f, 0x54, 0xd4, 0xbf,
		0x8e, 0x85, 0x8c, 0x3e, 0x1e, 0x9f, 0x36, 0x3b, 0xef, 0x1f, 0x84, 0x8b, 0x2a, 0x5b, 0xfb, 0x17,
		0x7a, 0xae, 0x5c, 0x54, 0xa9, 0x6e, 0x94, 0x6b, 0xe5, 0x8d, 0xca, 0xf4, 0x25, 0x2f, 0x31, 0xb0,
		0x55, 0xa2, 0xce, 0xfb, 0xb8, 0x34, 0x59, 0x87, 0x05, 0x62, 0x61, 0x2b, 0x6b, 0xb2, 0xe5, 0x04,
		0x35, 0x59, 0xd0, 0x13, 0x31, 0x31, 0xc3, 0xbb, 0x16, 0x3a, 0xe6, 0xb0, 0xfa, 0xbb, 0x5f, 0xd0,
		0x31, 0xcf, 0xb3, 0xa5, 0xd0, 0x31, 0x5f, 0xaf, 0xdd, 0x39, 0x51, 0x15, 0x78, 0xd2, 0x35, 0x0c,
		0x49, 0x73, 0x52, 0x72, 0x03, 0xa7, 0xc9, 0xd3, 0xe9, 0xde, 0xdf, 0x4a, 0x88, 0x9b, 0xe7, 0xc7,
		0x42, 0x88, 0x9b, 0xa7, 0x6f, 0x33, 0x84, 0x52, 0xd7, 0x5b, 0xe9, 0x78, 0xb5, 0xf4, 0xe3, 0xfc,
		0x1c, 0xcb, 0x3d, 0x69, 0xf5, 0xba, 0x7f, 0x9d, 0x3a, 0xd0, 0x4c, 0xcd, 0xb6, 0x22, 0x01, 0xcd,
		0x54, 0xc3, 0xc5, 0x86, 0xf4, 0x36, 0x0e, 0xe4, 0x53, 0xd7, 0xf0, 0xa8, 0x2c, 0x96, 0x4f, 0x7d,
		0xa0, 0xff, 0x33, 0x71, 0xc7, 0xc7, 0x02, 0x90, 0x17, 0x7a, 0x49, 0x01, 0x72, 0xf6, 0x03, 0x95,
		0x2d, 0xc8, 0xa8, 0x9a, 0xf1, 0xd2, 0x90, 0x51, 0xa5, 0xe5, 0xb4, 0x53, 0xdc, 0x50, 0x28, 0xe4,
		0xe5, 0xb9, 0x90, 0x07, 0x39, 0x55, 0xab, 0x33, 0x65, 0xc8, 0xa9, 0x72, 0x28, 0x7c, 0x42, 0x59,
		0x95, 0x54, 0xa9, 0x13, 0x1a, 0xab, 0xd6, 0x39, 0xc3, 0xc2, 0x8d, 0xf7, 0xb5, 0x18, 0x6f, 0xbd,
		0x2b, 0x4f, 0x0f, 0xbe, 0xa8, 0x41, 0xec, 0x60, 0x98, 0x28, 0xac, 0x3e, 0x63, 0x3b, 0xf4, 0x55,
		0xd3, 0x30, 0x13, 0xfa, 0xaa, 0x6b, 0x44, 0x2d, 0xf4, 0x55, 0xb3, 0x48, 0xcc, 0xa1, 0xaf, 0x9a,
		0x79, 0xee, 0x0d, 0x7d, 0xd5, 0x5c, 0xa4, 0x4e, 0xd0, 0x57, 0x5d, 0x6f, 0x7c, 0x80, 0xbe, 0x2a,
		0x88, 0x0d, 0x47, 0x82, 0xc3, 0x98, 0xe8, 0x70, 0x25, 0x3c, 0xec, 0x89, 0x0f, 0x7b, 0x02, 0xc4,
		0x9b, 0x08, 0xf1, 0x20, 0x44, 0x4c, 0x88, 0x11, 0x3b, 0x82, 0x94, 0x18, 0xcc, 0xa7, 0xf4, 0xf3,
		0x62, 0xac, 0xe1, 0x52, 0x01, 0x7a, 0x89, 0x40, 0x41, 0x69, 0x15, 0x84, 0xca, 0x62, 0x62, 0xc5,
		0x9d, 0x60, 0x59, 0x43, 0xb4, 0xac, 0x21, 0x5c, 0x76, 0x10, 0x2f, 0x5e, 0x04, 0x8c, 0x19, 0x11,
		0x4b, 0x20, 0xc2, 0x5f, 0x69, 0x55, 0x49, 0x29, 0x87, 0xfe, 0xd8, 0x8b, 0xaa, 0x15, 0xc6, 0x4a,
		0xab, 0x7b, 0x0c, 0x4d, 0x6f, 0x4a, 0x3d, 0x8a, 0x89, 0x31, 0xa4, 0x1a, 0x32, 0xfe, 0xe4, 0x8f,
		0x95, 0xe6, 0x2f, 0x31, 0x70, 0xee, 0xf9, 0x13, 0xc9, 0x5b, 0x97, 0x2d, 0x5e, 0xc7, 0x51, 0xe0,
		0xc5, 0xd7, 0x40, 0x1a, 0x6a, 0xa4, 0xb8, 0xea, 0x28, 0x3d, 0xf6, 0xac, 0x72, 0xe4, 0x45, 0xea,
		0x4e, 0xb2, 0x94, 0xed, 0x61, 0x1c, 0x8c, 0x1f, 0x6f, 0x71, 0xef, 0x2b, 0xb6, 0x38, 0xb6, 0x38,
		0xb6, 0xb8, 0x4d, 0xd9, 0x01, 0x5f, 0xab, 0x2f, 0x91, 0x85, 0xad, 0x71, 0x3b, 0x42, 0xbb, 0x0d,
		0x09, 0x41, 0x2a, 0xc9, 0xf0, 0x4c, 0x05, 0x6a, 0xfb, 0x19, 0x15, 0xa8, 0xe1, 0x38, 0x10, 0xdd,
		0xc0, 0x1b, 0x0e, 0x55, 0x5f, 0x38, 0x7a, 0xa4, 0xb4, 0x94, 0x81, 0xd2, 0xa3, 0xcd, 0x0b, 0xbd,
		0xe8, 0xee, 0xd9, 0xdb, 0x17, 0xd0, 0x63, 0x23, 0x5b, 0x26, 0x80, 0x1e, 0x1b, 0xfd, 0x05, 0xad,
		0xea, 0xb1, 0xa5, 0xbd, 0x13, 0xc1, 0xd3, 0x60, 0xb5, 0x4d, 0x3c, 0x0d, 0xd7, 0x40, 0xf2, 0xc8,
		0x7b, 0xa1, 0xb1, 0x46, 0xb6, 0xd5, 0x70, 0xb5, 0x6f, 0x08, 0x0a, 0x6b, 0x64, 0xda, 0x0e, 0x8f,
		0xbd, 0xaf, 0xd3, 0xdf, 0x76, 0xb0, 0x78, 0x34, 0xd0, 0x57, 0xcb, 0x8f, 0x85, 0xd0, 0x57, 0x4b,
		0xdf, 0x66, 0xe8, 0xab, 0xad, 0xb7, 0x1a, 0xf1, 0x1a, 0x99, 0xa8, 0xe3, 0xfa, 0xe7, 0x99, 0x54,
		0xd4, 0x41, 0xbd, 0xd5, 0xf8, 0x97, 0xdb, 0xe8, 0x7e, 0x82, 0xba, 0x5a, 0xb6, 0xf5, 0x05, 0xa8,
		0xab, 0x19, 0x2e, 0x1d, 0xa4, 0xb5, 0x6d, 0xa0, 0xad, 0xb6, 0x86, 0x07, 0x65, 0xa7, 0xb6, 0xda,
		0x8d, 0xf7, 0x55, 0xdd, 0x4c, 0x6e, 0x66, 0x92, 0x50, 0x09, 0xf5, 0xff, 0xae, 0x18, 0x94, 0x0a,
		0x67, 0x7a, 0x50, 0x7b, 0xd0, 0x57, 0x33, 0xe3, 0xa7, 0xa1, 0xaf, 0x46, 0xcb, 0x6d, 0xa7, 0xbc,
		0xa9, 0x50, 0xc8, 0xcb, 0x73, 0x21, 0x0f, 0x1a, 0x6b, 0x56, 0x67, 0xcb, 0xd0, 0x58, 0xa3, 0x5f,
		0xf8, 0x84, 0xc2, 0x1a, 0xa1, 0x52, 0x27, 0xf4, 0xd5, 0xac, 0x73, 0x84, 0xb1, 0x46, 0x59, 0x20,
		0x43, 0x19, 0xdc, 0x79, 0x57, 0xbe, 0x64, 0x2d, 0xb5, 0xf6, 0xf2, 0x32, 0xa0, 0xba, 0x96, 0x86,
		0x99, 0x50, 0x5d, 0x5b, 0x23, 0x80, 0xa1, 0xba, 0x96, 0x45, 0xba, 0x0e, 0xd5, 0xb5, 0xcc, 0x33,
		0x72, 0xa8, 0xae, 0xe5, 0x22, 0x99, 0x82, 0xea, 0xda, 0x7a, 0xe3, 0x03, 0x54, 0xd7, 0x40, 0x6c,
		0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87, 0x2b, 0xe1, 0x61, 0x4f, 0x7c, 0xd8, 0x13, 0x20, 0xde, 0x44,
		0x88, 0x07, 0x21, 0x62, 0x42, 0x8c, 0xd8, 0x11, 0xa4, 0xc4, 0x60, 0xa8, 0xae, 0x19, 0x27, 0x50,
		0x50, 0x5d, 0x03, 0xa1, 0xb2, 0x98, 0x58, 0x71, 0x27, 0x58, 0xd6, 0x10, 0x2d, 0x6b, 0x08, 0x97,
		0x1d, 0xc4, 0x8b, 0x17, 0x01, 0x63, 0x46, 0xc4, 0x12, 0x88, 0x40, 0x75, 0x8d, 0x06, 0xc9, 0x81,
		0xea, 0x5a, 0xe6, 0x5f, 0x50, 0x5d, 0x33, 0xbb, 0x08, 0x48, 0x32, 0x51, 0xf5, 0xac, 0x50, 0x5d,
		0x23, 0xb0, 0xc5, 0xa1, 0xba, 0x86, 0x2d, 0x8e, 0x2d, 0x6e, 0x57, 0x76, 0xc0, 0xd7, 0x6a, 0xa8,
		0xae, 0xad, 0x73, 0x3b, 0x42, 0x75, 0x0d, 0x09, 0x41, 0x2a, 0xc9, 0xf0, 0x6b, 0xb4, 0x9e, 0x3a,
		0xf3, 0x8e, 0x9f, 0xf2, 0x16, 0x64, 0xd7, 0x08, 0xd7, 0x09, 0x20, 0xbb, 0x46, 0x7f, 0x41, 0x6f,
		0x95, 0x5d, 0xfb, 0x89, 0xad, 0x08, 0xa6, 0x06, 0xab, 0x6d, 0x62, 0x6a, 0xb8, 0x08, 0x92, 0x47,
		0xe6, 0x0b, 0xdd, 0x35, 0xd2, 0xed, 0x87, 0x2f, 0x36, 0x11, 0x41, 0x82, 0x8d, 0x52, 0x5f, 0x62,
		0x3b, 0x79, 0x4c, 0x10, 0x63, 0xcb, 0xa9, 0x85, 0x10, 0x63, 0x4b, 0xdf, 0x66, 0x88, 0xb1, 0xad,
		0xb7, 0x48, 0xf1, 0x5a, 0x55, 0xa9, 0xb6, 0xd3, 0x71, 0xda, 0xe7, 0xf5, 0x83, 0xa6, 0x03, 0x49,
		0x36, 0x53, 0xb5, 0x07, 0x48, 0xb2, 0x19, 0x2e, 0x2b, 0xa4, 0xbb, 0x79, 0x20, 0xcc, 0xb6, 0x86,
		0xc7, 0x65, 0xb7, 0x30, 0xdb, 0x43, 0x6e, 0xf0, 0x44, 0x4e, 0xea, 0x42, 0x3f, 0xd6, 0x93, 0x12,
		0xcb, 0x72, 0x52, 0x31, 0x5a, 0x55, 0x28, 0xca, 0x5b, 0x10, 0x69, 0x33, 0xe3, 0xb9, 0x21, 0xd2,
		0x46, 0xcb, 0x91, 0xaf, 0x71, 0x83, 0xa1, 0x02, 0x98, 0xe7, 0x0a, 0x20, 0x04, 0xdb, 0xac, 0xce,
		0xa8, 0x21, 0xd8, 0xc6, 0xaa, 0x62, 0x0a, 0xed, 0x36, 0x92, 0x35, 0x52, 0xa8, 0xb8, 0x59, 0xe7,
		0x1d, 0x0b, 0x37, 0x4a, 0x17, 0x13, 0xf1, 0xc4, 0x81, 0xf4, 0xbd, 0x7b, 0x46, 0xd2, 0x6d, 0xab,
		0xb6, 0x43, 0xaf, 0x2d, 0x0d, 0x33, 0xa1, 0xd7, 0xb6, 0x46, 0xd4, 0x42, 0xaf, 0x2d, 0x8b, 0xcc,
		0x1d, 0x7a, 0x6d, 0x99, 0x27, 0xe7, 0xd0, 0x6b, 0xcb, 0x45, 0x2e, 0x05, 0xbd, 0xb6, 0xf5, 0xc6,
		0x07, 0xe8, 0xb5, 0x81, 0xd8, 0x70, 0x24, 0x38, 0x8c, 0x89, 0x0e, 0x57, 0xc2, 0xc3, 0x9e, 0xf8,
		0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42, 0xc4, 0x84, 0x18, 0xb1, 0x23, 0x48, 0x89, 0xc1,
		0x5e, 0xf1, 0x4a, 0x45, 0x7c, 0x4f, 0xdd, 0x67, 0xe6, 0x43, 0xa7, 0x0d, 0x04, 0xca, 0x2e, 0x22,
		0x65, 0x01, 0xa1, 0xe2, 0x4e, 0xac, 0xac, 0x21, 0x58, 0xd6, 0x10, 0x2d, 0x3b, 0x08, 0x17, 0x2f,
		0xe2, 0xc5, 0x8c, 0x80, 0x25, 0x10, 0xe1, 0xaf, 0xd3, 0x76, 0x35, 0x1e, 0xfb, 0xd2, 0xd3, 0x8c,
		0x35, 0xda, 0xca, 0x65, 0x5c, 0xac, 0xca, 0xfb, 0x66, 0x8c, 0x67, 0x6c, 0xf1, 0x38, 0x5b, 0x7e,
		0x71, 0x27, 0x3e, 0x2c, 0x01, 0x89, 0x06, 0x12, 0x0d, 0x24, 0x1a, 0x48, 0x34, 0x90, 0x68, 0x20,
		0xd1, 0x00, 0xaf, 0x41, 0xa2, 0x61, 0x45, 0xa2, 0x31, 0x51, 0x9a, 0xb7, 0x16, 0xf4, 0x2e, 0x43,
		0xd3, 0xdb, 0x9e, 0x1e, 0x41, 0xf9, 0xcd, 0xc0, 0x07, 0x6f, 0x95, 0x14, 0xf4, 0x16, 0x74, 0x62,
		0x89, 0xf9, 0x54, 0x48, 0x41, 0x13, 0xd8, 0xe2, 0x56, 0x49, 0x41, 0x57, 0xf6, 0x6a, 0x7b, 0x3b,
		0xbb, 0x95, 0xbd, 0x6d, 0xec, 0x75, 0xec, 0x75, 0x24, 0x08, 0x8c, 0xad, 0x86, 0xd2, 0x60, 0xee,
		0x63, 0x55, 0xdc, 0xb7, 0xc4, 0xbd, 0x1c, 0x9e, 0x2c, 0x01, 0xe5, 0xf0, 0x2c, 0xcc, 0x46, 0x39,
		0xdc, 0x20, 0xd8, 0x51, 0x0e, 0x37, 0xb7, 0x5d, 0x51, 0x0e, 0x27, 0xb6, 0x10, 0x94, 0xc3, 0xc1,
		0x6d, 0x7e, 0x00, 0x11, 0x94, 0xc3, 0x8d, 0xf3, 0x1b, 0x94, 0xc3, 0xb3, 0xfe, 0x42, 0x39, 0xdc,
		0xec, 0x22, 0x50, 0x0e, 0xa7, 0xea, 0x53, 0x51, 0x0e, 0x27, 0xb0, 0xc5, 0x51, 0x0e, 0xc7, 0x5e,
		0xc7, 0x5e, 0xb7, 0x34, 0x41, 0xe0, 0x6b, 0x35, 0xca, 0xe1, 0x79, 0xb6, 0x14, 0x83, 0x77, 0xd6,
		0x6b, 0x77, 0x0e, 0x64, 0x24, 0x57, 0x24, 0xe0, 0x30, 0x6d, 0x87, 0x8e, 0x92, 0xa4, 0xd2, 0xc7,
		0xde, 0xd7, 0xe9, 0x2f, 0x6c, 0x4c, 0x9f, 0x0c, 0x46, 0xec, 0xe4, 0xc7, 0x42, 0x8c, 0xd8, 0x49,
		0xdf, 0x66, 0x7e, 0xc3, 0x82, 0x19, 0x8a, 0x16, 0xb5, 0x8f, 0x0e, 0x77, 0x3f, 0x94, 0xb7, 0x16,
		0x13, 0x48, 0x9f, 0x19, 0x39, 0x2a, 0x7e, 0xef, 0x3a, 0xef, 0xc5, 0xb1, 0x8c, 0x02, 0xd5, 0xbf,
		0xd0, 0x0f, 0x23, 0x4a, 0x37, 0x13, 0x59, 0xf9, 0x6a, 0x2d, 0x99, 0x44, 0x2a, 0x2a, 0xd5, 0x0d,
		0x51, 0xae, 0x95, 0x37, 0x44, 0x25, 0xfe, 0x1b, 0xaf, 0xc1, 0xc0, 0x36, 0xe8, 0x21, 0x71, 0x1d,
		0xfc, 0x6b, 0x97, 0x24, 0x52, 0x06, 0xdb, 0x0a, 0xb9, 0x59, 0xce, 0xac, 0xbc, 0xdc, 0xc0, 0x58,
		0xbc, 0xbc, 0x87, 0xeb, 0x57, 0x4d, 0xf6, 0x72, 0x5b, 0xf1, 0x74, 0xaf, 0xa6, 0xdb, 0xfa, 0xb3,
		0xd7, 0x70, 0x9a, 0xf5, 0xbf, 0x30, 0x10, 0x2f, 0xdb, 0x98, 0x8c, 0x81, 0x78, 0x86, 0xc3, 0x71,
		0x5a, 0xdb, 0x06, 0xd7, 0x83, 0xd7, 0xf0, 0xa0, 0x2c, 0x1d, 0x85, 0xa7, 0x74, 0xe9, 0xc6, 0xfb,
		0x3a, 0x1b, 0xcf, 0x15, 0x57, 0xea, 0xc4, 0xea, 0x64, 0xae, 0x0b, 0xbd, 0x20, 0x7b, 0x2a, 0x9c,
		0x4d, 0xe7, 0xaa, 0xd6, 0x30, 0xfb, 0xce, 0x8c, 0x93, 0xc6, 0xec, 0x3b, 0x5a, 0x3e, 0x3b, 0xcd,
		0x1d, 0x85, 0x53, 0x37, 0x64, 0x76, 0x94, 0x33, 0x3b, 0xd4, 0xb6, 0xdf, 0xe2, 0x34, 0x30, 0xec,
		0x8e, 0xfc, 0x29, 0x25, 0x26, 0xdc, 0xd1, 0x39, 0x97, 0xc4, 0x58, 0x3b, 0xeb, 0xfc, 0x60, 0x21,
		0x90, 0xa1, 0x1a, 0x4c, 0x3c, 0x7f, 0x69, 0xa6, 0x24, 0x9b, 0xb1, 0x76, 0xcf, 0xd8, 0x8e, 0xb1,
		0x76, 0x69, 0x98, 0x89, 0xb1, 0x76, 0x6b, 0x44, 0x2d, 0xc6, 0xda, 0x65, 0x91, 0x94, 0x63, 0xac,
		0x5d, 0xe6, 0x79, 0x37, 0xc6, 0xda, 0xe5, 0x22, 0x6b, 0xc2, 0x58, 0xbb, 0xf5, 0xc6, 0x07, 0x8c,
		0xb5, 0x03, 0xb1, 0xe1, 0x48, 0x70, 0x18, 0x13, 0x1d, 0xae, 0x84, 0x87, 0x3d, 0xf1, 0x61, 0x4f,
		0x80, 0x78, 0x13, 0x21, 0x1e, 0x84, 0x88, 0x09, 0x31, 0x62, 0x47, 0x90, 0x12, 0x83, 0xf9, 0x94,
		0x7e, 0x5e, 0x8c, 0x35, 0x5c, 0x2a, 0x40, 0x2f, 0x11, 0x28, 0xc8, 0x6c, 0x81, 0x50, 0x59, 0x4c,
		0xac, 0xb8, 0x13, 0x2c, 0x6b, 0x88, 0x96, 0x35, 0x84, 0xcb, 0x0e, 0xe2, 0xc5, 0x8b, 0x80, 0x31,
		0x23, 0x62, 0x09, 0x44, 0xf8, 0xcb, 0x6c, 0x29, 0x29, 0xe5, 0xd0, 0x1f, 0x7b, 0xbc, 0xb5, 0xb6,
		0xf6, 0x18, 0x9a, 0xde, 0x94, 0x7a, 0x14, 0x13, 0x63, 0x88, 0x6d, 0x65, 0xfc, 0xc9, 0x5b, 0x25,
		0xb6, 0x55, 0x83, 0x00, 0x0f, 0x31, 0xcf, 0x0a, 0xb1, 0x2d, 0x02, 0x5b, 0xdc, 0x2a, 0xb1, 0x2d,
		0x6c, 0x71, 0x6c, 0x71, 0x64, 0x07, 0x8c, 0xad, 0x86, 0xc6, 0x56, 0x9e, 0x2d, 0x85, 0xc6, 0xd6,
		0x7a, 0xed, 0xb6, 0xff, 0xf6, 0xfa, 0xea, 0x7d, 0x54, 0x68, 0x6c, 0x91, 0xb9, 0xcb, 0xde, 0x9e,
		0x3f, 0x9c, 0x83, 0xc5, 0xb3, 0x81, 0xca, 0x56, 0x7e, 0x2c, 0x84, 0xca, 0x56, 0xfa, 0x36, 0x43,
		0x65, 0x6b, 0x9d, 0xb9, 0x4b, 0x9a, 0x2a, 0x5b, 0xbb, 0x50, 0xd9, 0x32, 0x6b, 0x37, 0x54, 0xb6,
		0x28, 0xf0, 0xe6, 0xb4, 0x55, 0xb6, 0x76, 0xa1, 0xb2, 0x05, 0x2b, 0x97, 0xaa, 0x07, 0x50, 0xd9,
		0xca, 0x7d, 0xb8, 0x7e, 0x8d, 0x5c, 0x50, 0xdb, 0xe9, 0xb8, 0x8d, 0xb3, 0x7a, 0xb3, 0x77, 0x50,
		0x6f, 0x35, 0xfe, 0xe5, 0x36, 0xba, 0x9f, 0xa0, 0xb2, 0x95, 0x6d, 0x4c, 0x86, 0xca, 0x96, 0xe1,
		0x70, 0x9c, 0xd6, 0xb6, 0x81, 0xca, 0xd6, 0x1a, 0x1e, 0x94, 0x9d, 0x2a, 0x5b, 0x81, 0x0c, 0x07,
		0x6a, 0xe2, 0xf9, 0x22, 0xa9, 0xd5, 0xfd, 0x9c, 0x26, 0xd0, 0x2e, 0x54, 0xb6, 0xcc, 0x38, 0x69,
		0xa8, 0x6c, 0xd1, 0xf2, 0xd9, 0x69, 0xee, 0x28, 0x9c, 0xbb, 0x21, 0xb3, 0xa3, 0x9c, 0xd9, 0xa1,
		0xb6, 0xfd, 0x16, 0xa7, 0x01, 0x95, 0x2d, 0xf2, 0xe7, 0x94, 0x50, 0xd9, 0xa2, 0x74, 0x32, 0x09,
		0x9d, 0x2d, 0xeb, 0x3c, 0x21, 0x13, 0x31, 0x0a, 0x56, 0x22, 0x14, 0x50, 0xd3, 0x4a, 0xd9, 0x50,
		0xa8, 0x69, 0x21, 0x11, 0x7f, 0x3e, 0xf9, 0x86, 0x9a, 0x56, 0xe6, 0xf9, 0x35, 0xd4, 0xb4, 0x72,
		0x91, 0x1d, 0xb1, 0x51, 0xd3, 0x8a, 0x38, 0x35, 0x51, 0x26, 0xe1, 0x21, 0xb6, 0x9a, 0x97, 0x96,
		0xd6, 0x16, 0xb4, 0xb4, 0x72, 0x4f, 0x6f, 0x18, 0xd3, 0x1c, 0xae, 0x74, 0x87, 0x3d, 0xed, 0x61,
		0x4f, 0x7f, 0x78, 0xd3, 0x20, 0x1e, 0x74, 0x88, 0x09, 0x2d, 0x4a, 0xa0, 0xc0, 0x4e, 0xba, 0xe1,
		0x41, 0xb2, 0x61, 0x20, 0x75, 0xa4, 0xa2, 0xfb, 0x40, 0x0e, 0x39, 0x79, 0xed, 0x45, 0x4d, 0x65,
		0x9b, 0x91, 0xcd, 0xee, 0xfc, 0xa3, 0x3e, 0xf0, 0x42, 0xc9, 0xf7, 0x8a, 0x82, 0xdb, 0x71, 0x3b,
		0xbd, 0xce, 0xd9, 0x41, 0xb7, 0x79, 0xde, 0xeb, 0xfe, 0x75, 0xea, 0x70, 0x0b, 0x3b, 0x71, 0x1f,
		0x74, 0xc8, 0x52, 0x29, 0x83, 0xa9, 0x18, 0x55, 0x82, 0x9c, 0xd3, 0xc7, 0x57, 0xa3, 0xdc, 0xd3,
		0xf3, 0x5a, 0xaf, 0x7d, 0x72, 0xd6, 0x75, 0xda, 0x3d, 0xb7, 0xc1, 0x50, 0x0d, 0x69, 0x03, 0x08,
		0x32, 0x8e, 0xa0, 0x1d, 0x20, 0x08, 0x08, 0x7a, 0x3d, 0x82, 0x4e, 0xdb, 0xce, 0x91, 0xfb, 0xb9,
		0x77, 0xd4, 0xac, 0x7f, 0xec, 0x00, 0x3f, 0xc0, 0xcf, 0x2b, 0xf1, 0xd3, 0x81, 0xf7, 0x01, 0x7a,
		0x7e, 0x1d, 0x3d, 0x33, 0x1a, 0xdd, 0xe1, 0xc8, 0xa3, 0x6d, 0xe0, 0xd3, 0xbc, 0x51, 0x65, 0x3d,
		0xbf, 0x66, 0xec, 0xa7, 0xec, 0x47, 0xd6, 0x0e, 0x90, 0x05, 0x64, 0x81, 0x8f, 0x03, 0x57, 0xe0,
		0xe9, 0x40, 0x55, 0x5e, 0x51, 0xd5, 0xad, 0x7f, 0x04, 0x9c, 0x00, 0xa7, 0x14, 0xe1, 0xb4, 0x53,
		0x2b, 0x40, 0xff, 0x33, 0xd3, 0xaf, 0x4b, 0xd4, 0x6d, 0xb0, 0x61, 0xf3, 0xe0, 0xf7, 0x01, 0x1b,
		0xf8, 0x77, 0x00, 0x87, 0x07, 0x70, 0x9e, 0x88, 0x88, 0xd4, 0x1b, 0xff, 0xdd, 0x6b, 0xd6, 0x5b,
		0x38, 0x66, 0x00, 0x7c, 0x5e, 0x0b, 0x1f, 0x40, 0x07, 0xd0, 0x79, 0x15, 0x74, 0x8e, 0xdd, 0x56,
		0xef, 0x63, 0xfb, 0xe4, 0xec, 0x14, 0xf0, 0x01, 0x7c, 0x7e, 0x19, 0x3e, 0xe7, 0x75, 0xb7, 0x59,
		0x3f, 0x68, 0x3a, 0x0f, 0xf2, 0x57, 0x80, 0x11, 0x60, 0xf4, 0xab, 0x30, 0x4a, 0xc0, 0xd3, 0x3b,
		0x3c, 0x69, 0x75, 0xba, 0xed, 0xba, 0xdb, 0xea, 0xe2, 0xba, 0x0e, 0x80, 0xf4, 0xcb, 0x40, 0x72,
		0x3e, 0x77, 0x9d, 0x56, 0xc3, 0x69, 0x20, 0xae, 0x01, 0x47, 0x6f, 0xc1, 0x51, 0x7c, 0xb5, 0xc2,
		0x6d, 0x75, 0x9d, 0xf6, 0x51, 0xfd, 0xd0, 0xe9, 0xd5, 0x1b, 0x8d, 0xb6, 0xd3, 0x81, 0x47, 0x02,
		0x92, 0x5e, 0x87, 0xa4, 0x96, 0xe3, 0x7e, 0xfc, 0x74, 0x70, 0xd2, 0x06, 0x90, 0x00, 0xa4, 0x37,
		0x00, 0x69, 0x07, 0x2e, 0x09, 0x48, 0x4a, 0x09, 0x49, 0x70, 0x49, 0x00, 0xd2, 0x5b, 0x81, 0xd4,
		0x74, 0x5b, 0x7f, 0xf6, 0xea, 0xdd, 0x6e, 0xdb, 0x3d, 0x38, 0xeb, 0x3a, 0x80, 0x10, 0x20, 0xf4,
		0x3a, 0x08, 0x35, 0x9c, 0x66, 0xfd, 0x2f, 0xa0, 0x07, 0xe8, 0x79, 0x3d, 0x7a, 0x7a, 0xe7, 0xf5,
		0xb6, 0x5b, 0xef, 0xba, 0x27, 0x2d, 0xe0, 0x08, 0x38, 0x7a, 0x15, 0x8e, 0x70, 0x80, 0x06, 0xe8,
		0xbc, 0x12, 0x3a, 0xcd, 0x13, 0x10, 0x68, 0x80, 0xe7, 0x95, 0xe0, 0x39, 0x6d, 0x9f, 0x74, 0x9d,
		0xc3, 0x69, 0xe8, 0x9a, 0xf5, 0x09, 0x02, 0x47, 0xc0, 0xd1, 0x2f, 0xe2, 0xe8, 0xb8, 0xfe, 0x79,
		0x86, 0x25, 0x9c, 0xc2, 0x02, 0x45, 0x6f, 0x42, 0x51, 0xdb, 0xe9, 0x38, 0xed, 0x73, 0x9c, 0xe8,
		0x03, 0x4b, 0x6f, 0xc4, 0x92, 0xdb, 0x7a, 0xf0, 0x4a, 0xc8, 0xef, 0x81, 0xa2, 0x57, 0xa1, 0x68,
		0x75, 0xb8, 0x1e, 0x50, 0x04, 0x14, 0xfd, 0x2a, 0x8a, 0xa0, 0xc2, 0x01, 0x54, 0xad, 0x0f, 0x5d,
		0xac, 0xef, 0xee, 0x33, 0x76, 0x52, 0x39, 0x80, 0x15, 0x20, 0x05, 0x48, 0xa5, 0x0a, 0x29, 0xc6,
		0x77, 0x22, 0x01, 0x2b, 0xb2, 0xb0, 0xb2, 0xa1, 0x07, 0x00, 0xf0, 0xa2, 0x0a, 0x2f, 0x4b, 0x7a,
		0x03, 0x00, 0x30, 0xaa, 0x00, 0xb3, 0xa3, 0x67, 0x00, 0xf8, 0xa2, 0x8a, 0x2f, 0x5b, 0x7a, 0x09,
		0x80, 0x30, 0xd2, 0x08, 0xe3, 0x7f, 0xa1, 0x17, 0x00, 0x23, 0x0c, 0xb0, 0x1d, 0xb8, 0x30, 0x20,
		0x6c, 0xcd, 0x08, 0x83, 0x0b, 0x03, 0xc0, 0xd6, 0x05, 0x30, 0xf6, 0xbd, 0x0a, 0x80, 0x16, 0x69,
		0x68, 0x31, 0xbd, 0xe3, 0x00, 0x54, 0xd1, 0x47, 0x15, 0xe7, 0xde, 0x06, 0xe0, 0x8b, 0x34, 0xbe,
		0x70, 0xc0, 0x08, 0x48, 0xa5, 0x0c, 0x29, 0x9e, 0xbd, 0x10, 0x00, 0x15, 0x69, 0x50, 0xb1, 0xef,
		0x91, 0x00, 0xbe, 0xa8, 0xe2, 0xcb, 0x86, 0xde, 0x09, 0xa0, 0x8b, 0x32, 0xba, 0xec, 0xe8, 0xa9,
		0x00, 0xc6, 0xc8, 0x62, 0xcc, 0x82, 0x5e, 0x0b, 0xa0, 0x8b, 0x2a, 0xba, 0x6c, 0xe8, 0xc1, 0x00,
		0xba, 0xa8, 0xa2, 0xab, 0xeb, 0xf4, 0x1a, 0xce, 0x51, 0xfd, 0xac, 0xd9, 0xed, 0x1d, 0x3b, 0xdd,
		0xb6, 0x7b, 0x08, 0x70, 0x01, 0x5c, 0x69, 0x81, 0xeb, 0xac, 0x95, 0x5c, 0x19, 0x74, 0x1a, 0xbd,
		0x66, 0x07, 0xd7, 0xba, 0x00, 0xae, 0x14, 0xc1, 0x35, 0xe3, 0xf5, 0x4e, 0x03, 0x91, 0x11, 0xf8,
		0x5a, 0x03, 0xbe, 0xba, 0x6e, 0xd3, 0xfd, 0x1f, 0x4b, 0xd0, 0x85, 0xc9, 0x71, 0xd8, 0xc5, 0x36,
		0xed, 0x5e, 0x9b, 0xf9, 0x2c, 0x40, 0x04, 0xde, 0x0a, 0x10, 0x81, 0x9f, 0x02, 0x47, 0xc0, 0x91,
		0x25, 0x3c, 0x14, 0x28, 0xca, 0x1a, 0x45, 0xed, 0x93, 0xb3, 0xae, 0xd3, 0xee, 0x1d, 0xd6, 0x4f,
		0x13, 0x15, 0x96, 0x76, 0xaf, 0xde, 0xfc, 0x78, 0xd2, 0x76, 0xbb, 0x9f, 0x8e, 0x81, 0x20, 0x20,
		0xe8, 0x55, 0x08, 0x7a, 0xf8, 0x1b, 0x20, 0x04, 0x08, 0xbd, 0x02, 0x42, 0x90, 0x82, 0x02, 0xae,
		0x10, 0xe4, 0xec, 0xf3, 0x54, 0x79, 0x40, 0x16, 0xe7, 0xe0, 0x97, 0x40, 0x0b, 0x95, 0x60, 0x7c,
		0xce, 0x8c, 0x3f, 0x5f, 0x1e, 0x9f, 0x2b, 0x7d, 0x2b, 0x69, 0x5b, 0x48, 0x3c, 0x00, 0x16, 0xea,
		0x5a, 0x8f, 0x23, 0x2f, 0x52, 0x63, 0x5d, 0xd8, 0x67, 0x10, 0xf2, 0x0a, 0x61, 0xff, 0x5a, 0xde,
		0x78, 0xb7, 0x5e, 0x74, 0x3d, 0x0d, 0x6e, 0xa5, 0xf1, 0xad, 0xd4, 0xfd, 0xb1, 0x1e, 0xaa, 0x51,
		0x51, 0xcb, 0xe8, 0xcb, 0x38, 0xf8, 0xa7, 0xa8, 0x74, 0x18, 0x79, 0xba, 0x2f, 0x4b, 0x4f, 0xdf,
		0x08, 0x57, 0xde, 0x29, 0xdd, 0x06, 0xe3, 0x68, 0xdc, 0x1f, 0xfb, 0x61, 0xf2, 0xaa, 0xa4, 0x42,
		0x15, 0x96, 0x7c, 0x79, 0x27, 0xfd, 0xf9, 0xb7, 0x92, 0xaf, 0xf4, 0x3f, 0xc5, 0x30, 0xf2, 0x22,
		0x59, 0x1c, 0x78, 0x91, 0x77, 0xe5, 0x85, 0xb2, 0xe4, 0x87, 0xb7, 0xa5, 0xc8, 0xbf, 0x0b, 0xa7,
		0x7f, 0x94, 0xe4, 0xd7, 0x48, 0xea, 0x81, 0x1c, 0x14, 0x55, 0x58, 0x0c, 0xa4, 0xd7, 0xbf, 0xf6,
		0xae, 0x94, 0xaf, 0xa2, 0xfb, 0x92, 0x96, 0x6a, 0x74, 0x7d, 0x35, 0x0e, 0xc2, 0xe4, 0x55, 0xe9,
		0xc1, 0x98, 0xc4, 0x88, 0x70, 0x72, 0x15, 0xff, 0xaf, 0x66, 0xdf, 0x4b, 0xf1, 0x6f, 0x62, 0x90,
		0x51, 0x14, 0xc2, 0x28, 0x98, 0xf4, 0x23, 0x3d, 0xe7, 0x19, 0x27, 0xc9, 0x93, 0x68, 0xcd, 0x3e,
		0x65, 0x77, 0xbe, 0xbe, 0xde, 0x93, 0xbf, 0x87, 0x4f, 0xdf, 0xe8, 0x9d, 0x2e, 0x9e, 0x42, 0xf2,
		0xaa, 0xe7, 0x86, 0x2a, 0xec, 0x35, 0xe3, 0xa7, 0x30, 0xfb, 0xd6, 0x6b, 0x2a, 0xfd, 0x4f, 0x67,
		0xfa, 0xd1, 0x34, 0xe6, 0xcf, 0xa0, 0xd7, 0x0c, 0x6f, 0x7b, 0x5d, 0xff, 0x2e, 0x9c, 0xfe, 0xd1,
		0x73, 0xe6, 0xcf, 0xc0, 0x0d, 0xdb, 0x4b, 0x4f, 0xa0, 0xd7, 0x5a, 0x3c, 0x81, 0xe4, 0x55, 0xef,
		0xc1, 0x8e, 0xc4, 0x80, 0xce, 0xec, 0x09, 0xcc, 0xbf, 0xf7, 0xe2, 0x5f, 0x43, 0x9b, 0x18, 0xd1,
		0x75, 0x7a, 0x84, 0x1d, 0x5e, 0x61, 0xba, 0x83, 0xe5, 0xd0, 0x9b, 0xf8, 0x51, 0xf1, 0x46, 0x46,
		0x81, 0xea, 0x93, 0xf7, 0x79, 0x09, 0x8d, 0x5f, 0x35, 0x9d, 0x78, 0x60, 0xf9, 0x53, 0xe9, 0x41,
		0x61, 0x5f, 0x94, 0x89, 0x9b, 0x79, 0x18, 0xbb, 0xac, 0xc2, 0xbe, 0xd8, 0x22, 0x6e, 0xe8, 0x69,
		0x20, 0x87, 0xea, 0x2b, 0x8f, 0x20, 0xbd, 0x00, 0xed, 0xb8, 0x5f, 0x9c, 0x86, 0x53, 0x0e, 0xc1,
		0xac, 0x33, 0x9e, 0x04, 0x7d, 0xc9, 0xe2, 0xe3, 0x9d, 0x6d, 0x2f, 0x79, 0xff, 0x65, 0x1c, 0x4c,
		0x77, 0x58, 0xe1, 0x76, 0x86, 0x0c, 0x1e, 0x95, 0x96, 0xc2, 0x27, 0x2f, 0xac, 0x07, 0xa3, 0xc9,
		0x8d, 0xd4, 0x51, 0x61, 0x5f, 0x44, 0xc1, 0x44, 0x32, 0x31, 0x7c, 0xc9, 0xea, 0x04, 0xd8, 0x48,
		0x8e, 0xac, 0x4e, 0x8e, 0x1a, 0x2a, 0x60, 0x92, 0x15, 0xc5, 0x8c, 0x95, 0x8d, 0xf3, 0x5a, 0xc4,
		0x07, 0x2e, 0xa9, 0x0e, 0x23, 0x42, 0xc3, 0x8e, 0xd8, 0x70, 0x24, 0x38, 0x8c, 0x89, 0x0e, 0x57,
		0xc2, 0xc3, 0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42, 0xc4, 0x84, 0x18, 0xb1,
		0x23, 0x48, 0x89, 0xc1, 0x4c, 0xca, 0x3e, 0x2f, 0x06, 0x1a, 0x16, 0xb5, 0x9f, 0x97, 0xa8, 0xd3,
		0x16, 0x33, 0xb3, 0xb9, 0x51, 0x28, 0xce, 0x54, 0xca, 0x02, 0x4a, 0xc5, 0x9d, 0x5a, 0x59, 0x43,
		0xb1, 0xac, 0xa1, 0x5a, 0x76, 0x50, 0x2e, 0x5e, 0xd4, 0x8b, 0x19, 0x05, 0x4b, 0x20, 0xd2, 0xbd,
		0xbf, 0x95, 0xbc, 0x3d, 0xfe, 0x44, 0xe9, 0xa8, 0x5a, 0xe1, 0xe8, 0xf0, 0xe7, 0xfc, 0x66, 0x97,
		0xa1, 0xe9, 0x6d, 0x4f, 0x8f, 0x24, 0xdb, 0x1b, 0xc0, 0x7c, 0xef, 0x68, 0x16, 0x8e, 0x95, 0x66,
		0xcb, 0x10, 0x92, 0x45, 0xc4, 0x17, 0xc8, 0xf9, 0x11, 0xe4, 0x95, 0x75, 0x1c, 0x05, 0x5e, 0x3f,
		0x52, 0x63, 0xdd, 0x50, 0x23, 0x15, 0x85, 0x16, 0x2c, 0xa8, 0x25, 0x47, 0x5e, 0xa4, 0xee, 0xa6,
		0xcf, 0x66, 0xe8, 0xf9, 0xa1, 0xc4, 0x05, 0x72, 0x13, 0x5b, 0xdc, 0xfb, 0x6a, 0xcf, 0x16, 0xaf,
		0x55, 0xf6, 0x6a, 0x7b, 0x3b, 0xbb, 0x95, 0xbd, 0x6d, 0xec, 0x75, 0xec, 0x75, 0x24, 0x08, 0x8c,
		0xad, 0xbe, 0x44, 0x22, 0xb6, 0xc6, 0xed, 0x28, 0xbf, 0x46, 0x81, 0x57, 0x9c, 0xe8, 0x30, 0xf2,
		0xae, 0x7c, 0xa6, 0x29, 0x59, 0x20, 0x87, 0x32, 0x90, 0xba, 0x8f, 0xcc, 0xc0, 0x60, 0x3e, 0xdc,
		0x3e, 0x3a, 0xdc, 0xae, 0x6e, 0x6d, 0xef, 0x0b, 0xb7, 0x53, 0x74, 0x3b, 0x22, 0xbe, 0xe1, 0x1c,
		0xaa, 0xb1, 0x0e, 0xc5, 0x70, 0x1c, 0x88, 0x6e, 0xe0, 0x0d, 0x87, 0xaa, 0x2f, 0x1c, 0x3d, 0x52,
		0x5a, 0xca, 0x40, 0xe9, 0xd1, 0xe6, 0x85, 0x0e, 0x27, 0x57, 0xc5, 0x6e, 0xf3, 0x5c, 0x94, 0x3f,
		0xec, 0x8b, 0xe9, 0xf7, 0x4a, 0x65, 0xa3, 0x52, 0xdd, 0x28, 0xd7, 0xca, 0x1b, 0x95, 0xe9, 0xcb,
		0x4a, 0x75, 0xb3, 0xc0, 0x98, 0x50, 0x31, 0x2f, 0xac, 0x3e, 0xd4, 0x0b, 0x1e, 0x0a, 0xac, 0x0f,
		0x3b, 0x8d, 0x39, 0x0b, 0xb1, 0xa5, 0xd6, 0x9a, 0x2c, 0x68, 0xb9, 0xe6, 0xba, 0xa6, 0xad, 0x08,
		0xa6, 0x06, 0xab, 0x6d, 0x62, 0x6a, 0xb8, 0x05, 0x92, 0x47, 0xe6, 0xcb, 0xad, 0x87, 0x30, 0xb1,
		0xdb, 0xfe, 0x5e, 0xc2, 0x95, 0xae, 0xa1, 0x12, 0xa7, 0x2b, 0xb7, 0xc2, 0xea, 0x2e, 0xc3, 0xae,
		0x6c, 0xcc, 0x1e, 0xcd, 0x71, 0xfc, 0x64, 0x38, 0x74, 0x1d, 0xf2, 0x71, 0x9f, 0xe8, 0x7b, 0xc8,
		0x59, 0x09, 0xa3, 0xf0, 0xe5, 0x5a, 0x6a, 0x36, 0xd5, 0x0a, 0x86, 0x57, 0xdc, 0x37, 0x37, 0x67,
		0xb1, 0xa3, 0x14, 0xdd, 0xdf, 0x4a, 0xf1, 0x87, 0x78, 0x37, 0xbf, 0x87, 0x52, 0xf4, 0xc3, 0xc1,
		0x55, 0x71, 0xfa, 0x66, 0xb8, 0xff, 0x43, 0x09, 0xe3, 0x77, 0xb8, 0x21, 0x9f, 0x69, 0x75, 0x21,
		0xde, 0x14, 0xb8, 0x1f, 0x6f, 0xae, 0x70, 0x90, 0xd2, 0xae, 0xe1, 0x93, 0x58, 0x31, 0xda, 0xdf,
		0x0d, 0x19, 0xf6, 0x03, 0x75, 0xcb, 0x2e, 0x6f, 0x79, 0xe4, 0x96, 0x4f, 0xb4, 0x7f, 0x2f, 0x94,
		0xee, 0xfb, 0x93, 0x81, 0x14, 0xd1, 0xb5, 0x14, 0x73, 0xbe, 0x2f, 0xa2, 0x79, 0x51, 0x4a, 0x3e,
		0x14, 0xa5, 0xc4, 0x2c, 0x07, 0xb8, 0x98, 0x32, 0xe8, 0xc8, 0x53, 0x5a, 0x06, 0x62, 0xea, 0x20,
		0xe2, 0x7f, 0xb6, 0xa8, 0x56, 0xc5, 0x38, 0x55, 0xa1, 0x28, 0x7f, 0xe0, 0x56, 0x29, 0xe6, 0x5c,
		0x1d, 0x5e, 0xf6, 0xd9, 0x83, 0x25, 0x58, 0x32, 0xbc, 0x50, 0x66, 0x43, 0x1d, 0xf8, 0x91, 0x0b,
		0x5f, 0xe7, 0x0e, 0x43, 0x79, 0x2f, 0xcf, 0xe5, 0x3d, 0xf2, 0x56, 0x5e, 0x22, 0x8b, 0x7e, 0x8b,
		0x13, 0x81, 0xb4, 0x1a, 0xf5, 0x72, 0x28, 0x64, 0xd6, 0xe8, 0x14, 0x40, 0x21, 0xb8, 0x66, 0x9d,
		0x1b, 0x2c, 0x44, 0x1c, 0x9a, 0x52, 0x1e, 0x34, 0xd6, 0xa6, 0xd6, 0xf2, 0x90, 0x55, 0xdb, 0x82,
		0xac, 0x5a, 0x3a, 0x86, 0x42, 0x56, 0x0d, 0x39, 0xf9, 0xf3, 0x79, 0x38, 0x64, 0xd5, 0x32, 0x4f,
		0xb5, 0x21, 0xab, 0x96, 0x8b, 0xc4, 0x88, 0x4d, 0xab, 0x6a, 0xe2, 0x71, 0x7d, 0xe9, 0x0d, 0x03,
		0x39, 0xe4, 0xe0, 0x71, 0x17, 0x32, 0x65, 0x0c, 0x9a, 0x51, 0x0b, 0xa7, 0xf3, 0x5c, 0xf3, 0xd1,
		0x29, 0x09, 0xf2, 0x00, 0xfb, 0xf2, 0x80, 0xc9, 0x34, 0x67, 0x0d, 0xa3, 0xc0, 0x53, 0x5a, 0x0e,
		0x8a, 0x7e, 0x78, 0xcb, 0x27, 0x29, 0x58, 0x35, 0x1d, 0xc2, 0xcb, 0xc8, 0x10, 0x90, 0x21, 0x20,
		0x43, 0x40, 0x86, 0x80, 0x0c, 0x01, 0x19, 0xc2, 0x5a, 0x1e, 0x39, 0x84, 0x97, 0xd7, 0x1b, 0x1f,
		0x20, 0xbc, 0x0c, 0x62, 0xc3, 0x91, 0xe0, 0x30, 0x26, 0x3a, 0x5c, 0x09, 0x0f, 0x7b, 0xe2, 0xc3,
		0x9e, 0x00, 0xf1, 0x26, 0x42, 0x3c, 0x08, 0x11, 0x13, 0x62, 0xc4, 0x8e, 0x20, 0x25, 0x06, 0xf7,
		0xc7, 0x93, 0x18, 0xb8, 0x4c, 0xaf, 0xd9, 0xce, 0xcc, 0x87, 0xec, 0x32, 0x08, 0x94, 0x5d, 0x44,
		0xca, 0x02, 0x42, 0xc5, 0x9d, 0x58, 0x59, 0x43, 0xb0, 0xac, 0x21, 0x5a, 0x76, 0x10, 0x2e, 0x5e,
		0xc4, 0x8b, 0x19, 0x01, 0x4b, 0x20, 0x62, 0x87, 0xec, 0x72, 0x79, 0x87, 0xb1, 0xec, 0xf2, 0x0e,
		0x64, 0x97, 0x33, 0xfe, 0x82, 0xec, 0xb2, 0xd9, 0x45, 0x40, 0x76, 0x99, 0xaa, 0x4f, 0x85, 0xec,
		0x32, 0x81, 0x2d, 0x6e, 0x93, 0xec, 0xf2, 0xce, 0xf6, 0x76, 0x15, 0x8a, 0xcb, 0xd8, 0xe6, 0xc8,
		0x0d, 0x38, 0x5b, 0x0d, 0xc5, 0xe5, 0x75, 0x6e, 0x47, 0x28, 0x2e, 0x23, 0x29, 0x48, 0x25, 0x15,
		0x8e, 0x65, 0x5e, 0xab, 0x5b, 0xfb, 0xa2, 0x2e, 0x9a, 0x4a, 0xff, 0x53, 0x9c, 0x26, 0xf7, 0x0f,
		0x7d, 0xfb, 0x63, 0x71, 0x38, 0xd6, 0x77, 0xf2, 0x3e, 0xee, 0xe6, 0x6f, 0x4d, 0x6e, 0xae, 0x64,
		0x20, 0xc6, 0xc3, 0x0b, 0xfd, 0x8c, 0xfc, 0xab, 0x68, 0x7a, 0x57, 0xd2, 0x17, 0x9d, 0x2f, 0x2a,
		0xea, 0x5f, 0xcb, 0x81, 0x38, 0xf5, 0xa2, 0xeb, 0x50, 0x74, 0xd4, 0x48, 0x7b, 0xbe, 0x2f, 0x07,
		0x17, 0xfa, 0x8b, 0x8a, 0xae, 0xc5, 0xff, 0xc8, 0x60, 0x2c, 0xda, 0x32, 0x94, 0xc1, 0x9d, 0x1c,
		0x88, 0x03, 0x4f, 0x0f, 0xbe, 0xa8, 0x41, 0x74, 0x2d, 0xbc, 0x7e, 0x30, 0x0e, 0x43, 0xe1, 0xc5,
		0x46, 0x6c, 0x2e, 0x0c, 0xb8, 0xd0, 0x95, 0xea, 0x0b, 0x4a, 0xb2, 0xd0, 0x74, 0x26, 0x50, 0x8c,
		0x80, 0xa6, 0x33, 0xfd, 0x05, 0xad, 0x68, 0x3a, 0x73, 0xdc, 0xec, 0x60, 0x9b, 0xb0, 0xda, 0x26,
		0xb6, 0x09, 0x71, 0xb3, 0x35, 0x78, 0xba, 0x88, 0xe3, 0xb9, 0x04, 0xa7, 0x4e, 0xfc, 0x55, 0x02,
		0x80, 0xdb, 0x16, 0x99, 0x1a, 0x8e, 0xdb, 0x16, 0xe0, 0xed, 0xe9, 0xf0, 0x75, 0xdc, 0xb6, 0x20,
		0x47, 0xce, 0x71, 0xdb, 0x02, 0x8c, 0xe6, 0x19, 0x88, 0xf0, 0xbf, 0x6d, 0xa1, 0x06, 0x52, 0x47,
		0x2a, 0xba, 0xe7, 0xa1, 0x26, 0xf0, 0x12, 0xc9, 0x29, 0x33, 0x3c, 0x92, 0x2a, 0xb8, 0xf3, 0x8f,
		0xfe, 0xc0, 0x0b, 0x19, 0xc7, 0xad, 0x05, 0x90, 0xdc, 0x8e, 0xdb, 0xe9, 0x75, 0xce, 0x0e, 0xba,
		0xcd, 0xf3, 0x5e, 0xf7, 0xaf, 0x53, 0x87, 0x6b, 0xf8, 0x8a, 0x0f, 0x3a, 0x43, 0xb6, 0x55, 0x6f,
		0xc1, 0xba, 0xf2, 0xfd, 0x18, 0x51, 0xa7, 0x8f, 0x75, 0xc8, 0xdd, 0xd3, 0xf3, 0x5a, 0xaf, 0x7d,
		0x72, 0xd6, 0x75, 0xda, 0x3d, 0xb7, 0x51, 0xc0, 0x5d, 0x06, 0x20, 0x2b, 0x3d, 0x64, 0xed, 0x00,
		0x59, 0x40, 0x56, 0xfa, 0xc8, 0x3a, 0x6d, 0x3b, 0x47, 0xee, 0xe7, 0xde, 0x51, 0xb3, 0xfe, 0xb1,
		0x03, 0x5c, 0x01, 0x57, 0x29, 0xe3, 0xaa, 0x03, 0x6f, 0x05, 0x54, 0xa5, 0x87, 0xaa, 0x19, 0x7d,
		0xef, 0x70, 0xe6, 0xef, 0x36, 0xf1, 0x78, 0x3b, 0xd0, 0x96, 0x1b, 0x5e, 0x6f, 0x81, 0x5f, 0xcb,
		0x0f, 0xe2, 0x76, 0x80, 0x38, 0x20, 0x0e, 0x79, 0x00, 0xf0, 0x26, 0x90, 0x1f, 0x00, 0x6d, 0x40,
		0xdb, 0x9b, 0xd0, 0xd6, 0xad, 0x7f, 0x04, 0xcc, 0x00, 0xb3, 0x0c, 0x60, 0xb6, 0x53, 0xb3, 0x00,
		0x68, 0xac, 0x57, 0x70, 0x89, 0x7a, 0x13, 0x36, 0x36, 0xe2, 0x06, 0xe0, 0x84, 0xf8, 0x00, 0x40,
		0xd9, 0x06, 0xa8, 0x27, 0x93, 0xcf, 0xeb, 0x8d, 0xff, 0xee, 0x35, 0xeb, 0x2d, 0x1c, 0xb3, 0x00,
		0x56, 0x69, 0xc3, 0x0a, 0x90, 0x02, 0xa4, 0x52, 0x85, 0xd4, 0xb1, 0xdb, 0xea, 0x7d, 0x6c, 0x9f,
		0x9c, 0x9d, 0x02, 0x56, 0x80, 0x55, 0x6a, 0xb0, 0x3a, 0xaf, 0xbb, 0xcd, 0xfa, 0x41, 0xd3, 0xe9,
		0x1d, 0xd4, 0x5b, 0x8d, 0x7f, 0xb9, 0x8d, 0xee, 0x27, 0xc0, 0x0b, 0xf0, 0x4a, 0x0b, 0x5e, 0x09,
		0xa8, 0x7a, 0x87, 0x27, 0xad, 0x4e, 0xb7, 0x5d, 0x77, 0x5b, 0x5d, 0x5c, 0x93, 0x02, 0xc0, 0x52,
		0x03, 0x98, 0xf3, 0xb9, 0xeb, 0xb4, 0x1a, 0x4e, 0x03, 0xf1, 0x11, 0xf8, 0x5a, 0x07, 0xbe, 0xe2,
		0xab, 0x2b, 0x6e, 0xab, 0xeb, 0xb4, 0x8f, 0xea, 0x87, 0x4e, 0xaf, 0xde, 0x68, 0xb4, 0x9d, 0x0e,
		0x3c, 0x18, 0x10, 0x96, 0x2e, 0xc2, 0x5a, 0x8e, 0xfb, 0xf1, 0xd3, 0xc1, 0x49, 0x1b, 0x00, 0x03,
		0xc0, 0xd6, 0x00, 0xb0, 0x1d, 0xb8, 0x30, 0x20, 0x6c, 0xcd, 0x08, 0x83, 0x0b, 0x03, 0xc0, 0xd6,
		0x05, 0xb0, 0xa6, 0xdb, 0xfa, 0xb3, 0x57, 0xef, 0x76, 0xdb, 0xee, 0xc1, 0x59, 0xd7, 0x01, 0xb4,
		0x00, 0xad, 0x74, 0xa1, 0xd5, 0x70, 0x9a, 0xf5, 0xbf, 0x80, 0x2a, 0xa0, 0x2a, 0x7d, 0x54, 0xf5,
		0xce, 0xeb, 0x6d, 0xb7, 0xde, 0x75, 0x4f, 0x5a, 0xc0, 0x17, 0xf0, 0x95, 0x2a, 0xbe, 0x70, 0xc0,
		0x08, 0x48, 0xa5, 0x0c, 0xa9, 0xe6, 0x09, 0x88, 0x3b, 0x40, 0x95, 0x32, 0xa8, 0x4e, 0xdb, 0x27,
		0x5d, 0xe7, 0x70, 0x1a, 0x02, 0x67, 0x7d, 0xa7, 0xc0, 0x17, 0xf0, 0x95, 0x12, 0xbe, 0x8e, 0xeb,
		0x9f, 0x67, 0x18, 0xc3, 0xe9, 0x35, 0xd0, 0xb5, 0x16, 0x74, 0xb5, 0x9d, 0x8e, 0xd3, 0x3e, 0xc7,
		0x0d, 0x09, 0x60, 0x6c, 0x4d, 0x18, 0x73, 0x5b, 0x0f, 0x5e, 0x0c, 0x75, 0x08, 0xa0, 0x2b, 0x55,
		0x74, 0xb5, 0x9d, 0x8e, 0xdb, 0x38, 0xab, 0x37, 0xe1, 0xbb, 0x80, 0xae, 0xf4, 0xd1, 0x05, 0x35,
		0x19, 0xa0, 0x2d, 0x7b, 0xd4, 0x59, 0xd1, 0xb3, 0x61, 0x81, 0x53, 0xcb, 0x11, 0xdc, 0x00, 0x35,
		0x40, 0x2d, 0x13, 0xa8, 0x59, 0x70, 0x87, 0x15, 0x70, 0x63, 0x03, 0x37, 0x9b, 0x7a, 0x3f, 0x00,
		0x3b, 0x2e, 0xb0, 0xb3, 0xac, 0x27, 0x04, 0xc0, 0xe3, 0x02, 0x3c, 0xbb, 0x7a, 0x45, 0x80, 0x3b,
		0x2e, 0xb8, 0xb3, 0xad, 0x87, 0x04, 0xc8, 0x63, 0x85, 0x3c, 0x7b, 0x2e, 0x66, 0x03, 0x78, 0x8c,
		0x80, 0xb7, 0x03, 0x97, 0x07, 0xe4, 0x19, 0x42, 0x1e, 0x5c, 0x1e, 0x80, 0x97, 0x35, 0xf0, 0xac,
		0xe9, 0x51, 0x01, 0xe4, 0x58, 0x41, 0x8e, 0xf9, 0x9d, 0x11, 0xa0, 0x8d, 0x1f, 0xda, 0x6c, 0xe8,
		0x69, 0x01, 0xee, 0x58, 0xe1, 0x0e, 0x07, 0xb0, 0x80, 0x5a, 0x46, 0x50, 0xe3, 0xdd, 0x03, 0x03,
		0xb0, 0xb1, 0x02, 0x9b, 0x35, 0xbd, 0x31, 0xc0, 0x1d, 0x17, 0xdc, 0xd9, 0xd4, 0x33, 0x03, 0xd4,
		0x71, 0x42, 0x9d, 0x5d, 0xbd, 0x34, 0xc0, 0x1e, 0x1b, 0xec, 0x59, 0xd4, 0x63, 0x03, 0xd4, 0x71,
		0x41, 0x9d, 0x4d, 0xbd, 0x37, 0x40, 0x1d, 0x17, 0xd4, 0x75, 0x9d, 0x5e, 0xc3, 0x39, 0xaa, 0x9f,
		0x35, 0xbb, 0xbd, 0x63, 0xa7, 0xdb, 0x76, 0x0f, 0x01, 0x3a, 0x80, 0x6e, 0xdd, 0xa0, 0x3b, 0x6b,
		0x25, 0x57, 0x39, 0x9d, 0x46, 0xaf, 0xd9, 0xc1, 0xb5, 0x3a, 0x80, 0x2e, 0x03, 0xd0, 0xcd, 0xf2,
		0x09, 0xa7, 0x81, 0x08, 0x0b, 0xdc, 0x65, 0x88, 0xbb, 0xae, 0xdb, 0x74, 0xff, 0xc7, 0x32, 0xd4,
		0x61, 0x62, 0x25, 0x76, 0x7b, 0x9e, 0x76, 0x79, 0x1e, 0xf8, 0x33, 0xc0, 0x05, 0x9e, 0x0c, 0x70,
		0xe5, 0x08, 0x5c, 0x36, 0xf1, 0x61, 0xe0, 0x0b, 0xbc, 0x17, 0xe8, 0xb2, 0x17, 0x5d, 0xed, 0x93,
		0xb3, 0xae, 0xd3, 0xee, 0x1d, 0xd6, 0x4f, 0x13, 0x35, 0xa1, 0x76, 0xaf, 0xde, 0xfc, 0x78, 0xd2,
		0x76, 0xbb, 0x9f, 0x8e, 0x81, 0x2c, 0x20, 0x2b, 0x55, 0x64, 0x3d, 0xfc, 0x0d, 0xd0, 0x02, 0xb4,
		0x52, 0x84, 0x16, 0x24, 0xd0, 0x80, 0x37, 0x04, 0xcb, 0xfc, 0x7a, 0xb6, 0x3c, 0x21, 0xce, 0x86,
		0x20, 0x9a, 0x40, 0x0e, 0x15, 0x6f, 0x7c, 0xee, 0x16, 0x7f, 0xde, 0xbc, 0x3e, 0x67, 0x3e, 0xd6,
		0xf2, 0xb0, 0x94, 0x49, 0x40, 0x2d, 0xd4, 0xb5, 0x1e, 0x47, 0x5e, 0xa4, 0xc6, 0xba, 0xb0, 0xcf,
		0x28, 0x84, 0x16, 0xc2, 0xfe, 0xb5, 0xbc, 0xf1, 0x6e, 0xbd, 0xe8, 0x7a, 0x1a, 0x2c, 0x4b, 0xe3,
		0x5b, 0xa9, 0xfb, 0x63, 0x3d, 0x54, 0xa3, 0xa2, 0x96, 0xd1, 0x97, 0x71, 0xf0, 0x4f, 0x51, 0xe9,
		0x30, 0xf2, 0x74, 0x5f, 0x96, 0x9e, 0xbe, 0x11, 0xae, 0xbc, 0x53, 0xba, 0x0d, 0xc6, 0xd1, 0xb8,
		0x3f, 0xf6, 0xc3, 0xe4, 0x55, 0x49, 0x85, 0x2a, 0x2c, 0xf9, 0xf2, 0x4e, 0xfa, 0xf3, 0x6f, 0x25,
		0x5f, 0xe9, 0x7f, 0x8a, 0x61, 0xe4, 0x45, 0xb2, 0x38, 0xf0, 0x22, 0xef, 0xca, 0x0b, 0x65, 0xc9,
		0x0f, 0x6f, 0x4b, 0x91, 0x7f, 0x17, 0x4e, 0xff, 0x28, 0xc9, 0xaf, 0x91, 0xd4, 0x03, 0x39, 0x28,
		0xaa, 0xb0, 0x18, 0x48, 0xaf, 0x7f, 0xed, 0x5d, 0x29, 0x5f, 0x45, 0xf7, 0x25, 0x2d, 0xd5, 0xe8,
		0xfa, 0x6a, 0x1c, 0x84, 0xc9, 0xab, 0xd2, 0x83, 0x31, 0x89, 0x11, 0xe1, 0xe4, 0x2a, 0xfe, 0x5f,
		0xcd, 0xbe, 0x97, 0x26, 0xd3, 0x05, 0x85, 0x51, 0xe0, 0x29, 0x2d, 0x07, 0xc5, 0xe9, 0x2f, 0x8a,
		0x7f, 0x37, 0xa3, 0x1c, 0xa7, 0x10, 0x46, 0xc1, 0xa4, 0x1f, 0xe9, 0x39, 0xa3, 0x39, 0x49, 0x9e,
		0x51, 0x6b, 0xf6, 0xf9, 0xbb, 0xf3, 0x95, 0xf7, 0x9e, 0xfc, 0x3d, 0x7c, 0xfa, 0x46, 0xef, 0x74,
		0xf1, 0x7c, 0x92, 0x57, 0x3d, 0x37, 0x54, 0x61, 0xaf, 0x19, 0x3f, 0x9f, 0xd9, 0xb7, 0x5e, 0x53,
		0xe9, 0x7f, 0x3a, 0xd3, 0x8f, 0xa8, 0x31, 0x7f, 0x3a, 0xbd, 0x66, 0x78, 0xdb, 0xeb, 0xfa, 0x77,
		0xe1, 0xf4, 0x8f, 0x9e, 0x33, 0x7f, 0x3a, 0x6e, 0xd8, 0x5e, 0x7a, 0x36, 0xbd, 0xd6, 0xe2, 0xd9,
		0x24, 0xaf, 0x7a, 0x0f, 0x76, 0x24, 0x06, 0x74, 0x66, 0xcf, 0x66, 0xfe, 0xbd, 0x77, 0xb6, 0xfc,
		0x6c, 0xa6, 0xbf, 0x25, 0xfe, 0xbd, 0x3c, 0x38, 0x19, 0x7d, 0xff, 0x49, 0xdb, 0x42, 0xe2, 0x9e,
		0xbd, 0x20, 0xbf, 0x46, 0x81, 0x57, 0x9c, 0x4c, 0x91, 0x7b, 0xe5, 0x4b, 0x16, 0x5e, 0xbd, 0xf0,
		0xe5, 0x5a, 0x6a, 0x36, 0x65, 0x0f, 0x46, 0x51, 0x72, 0x91, 0x4c, 0x6e, 0x6e, 0xce, 0x82, 0x47,
		0x29, 0xba, 0xbf, 0x95, 0xe2, 0x0f, 0xf1, 0x6e, 0xdc, 0x2f, 0x4e, 0x03, 0x5c, 0xd1, 0x0f, 0x07,
		0x57, 0xc5, 0xe9, 0x9b, 0xe1, 0xfe, 0x0f, 0x8f, 0xca, 0xdf, 0x71, 0x0a, 0x3d, 0x9d, 0xf1, 0x24,
		0xe8, 0x4b, 0x56, 0x9c, 0x26, 0xb6, 0xfb, 0x4f, 0x79, 0xff, 0x65, 0x1c, 0x0c, 0xa6, 0x0f, 0x2d,
		0xde, 0x14, 0xbc, 0xea, 0x32, 0x85, 0x4f, 0x5e, 0x58, 0x0f, 0x46, 0x93, 0x1b, 0xa9, 0xa3, 0xc2,
		0xbe, 0x88, 0x82, 0x89, 0x64, 0xb6, 0x80, 0x25, 0xeb, 0xd3, 0xda, 0x35, 0x7c, 0x32, 0x2b, 0x46,
		0xfb, 0xbb, 0x21, 0xc3, 0x7e, 0xa0, 0x6e, 0xd9, 0x25, 0x2e, 0x8f, 0xdc, 0xf2, 0x89, 0xf6, 0xef,
		0x85, 0xd2, 0x7d, 0x7f, 0x32, 0x90, 0x22, 0xba, 0x96, 0xe2, 0x11, 0xe7, 0x17, 0xcd, 0xce, 0xa9,
		0xe8, 0x8f, 0x75, 0x34, 0xfd, 0x5b, 0x20, 0xa6, 0xee, 0x60, 0xfa, 0x43, 0x17, 0x3a, 0x9c, 0x5c,
		0x15, 0xbb, 0xcd, 0x73, 0xa1, 0x42, 0x11, 0x23, 0xb3, 0x52, 0xdd, 0xe4, 0xe6, 0x27, 0x98, 0xba,
		0xe7, 0xa7, 0x2e, 0x7a, 0xb0, 0x84, 0x42, 0x7e, 0x15, 0x74, 0xf6, 0xde, 0x7a, 0xc5, 0x63, 0xa7,
		0xb8, 0xa1, 0x50, 0xbd, 0xcb, 0x73, 0xf5, 0x8e, 0xbc, 0x95, 0x97, 0xc8, 0x91, 0xdf, 0xe2, 0x33,
		0x78, 0x55, 0x3d, 0xf3, 0x58, 0xed, 0x64, 0x10, 0x4f, 0xf3, 0x53, 0xdf, 0xa4, 0x1d, 0x0d, 0xe9,
		0x7a, 0x6b, 0xc2, 0x7e, 0xb0, 0x30, 0xd1, 0x81, 0x0c, 0x65, 0x70, 0x27, 0x07, 0xc5, 0x2b, 0x4f,
		0x0f, 0xbe, 0xa8, 0x41, 0xec, 0x5d, 0x68, 0x7b, 0xc3, 0x24, 0x75, 0x7a, 0xd6, 0x7a, 0xe2, 0x51,
		0xe7, 0x4f, 0xa5, 0xa7, 0x59, 0x43, 0x99, 0xb8, 0x99, 0x87, 0xb1, 0x0f, 0x2b, 0xec, 0x8b, 0x2d,
		0xe2, 0x86, 0x9e, 0x06, 0x72, 0xa8, 0xbe, 0xf2, 0x88, 0xe0, 0x0b, 0xdc, 0xce, 0x4b, 0x48, 0x1c,
		0xa2, 0x1b, 0xb3, 0x1c, 0x7d, 0x39, 0x2f, 0xbf, 0x9d, 0x21, 0x83, 0xc9, 0x19, 0x3c, 0xd7, 0x34,
		0xfc, 0x51, 0xea, 0xbd, 0x00, 0x36, 0x4e, 0x17, 0xad, 0xce, 0x9c, 0x1a, 0x2a, 0x60, 0x92, 0x32,
		0xc9, 0x68, 0x72, 0x5b, 0xbc, 0x0d, 0xd4, 0x38, 0x50, 0xd1, 0x3d, 0x1f, 0x2f, 0xb6, 0x08, 0x14,
		0x4f, 0xec, 0x67, 0xe2, 0x11, 0x78, 0x50, 0x1c, 0x76, 0x54, 0x87, 0x23, 0xe5, 0x61, 0x4c, 0x7d,
		0xb8, 0x52, 0x20, 0xf6, 0x54, 0x88, 0x3d, 0x25, 0xe2, 0x4d, 0x8d, 0x78, 0x50, 0x24, 0x26, 0x54,
		0x89, 0x1d, 0x65, 0x4a, 0x0c, 0x66, 0x47, 0x9a, 0x56, 0x42, 0x0d, 0x33, 0xda, 0xf4, 0x94, 0x3e,
		0x6d, 0x31, 0x33, 0x9b, 0x1b, 0x8d, 0xe2, 0x4c, 0xa7, 0x2c, 0xa0, 0x55, 0xdc, 0xe9, 0x95, 0x35,
		0x34, 0xcb, 0x1a, 0xba, 0x65, 0x07, 0xed, 0xe2, 0x45, 0xbf, 0x98, 0xd1, 0xb0, 0x04, 0x22, 0xdd,
		0xfb, 0x5b, 0xc9, 0xdb, 0xe3, 0xfb, 0xd2, 0x1b, 0x06, 0x72, 0xc8, 0xd1, 0xe3, 0x2f, 0xea, 0x43,
		0xbb, 0x0c, 0x6d, 0x3f, 0x9d, 0x5f, 0xbf, 0x48, 0xae, 0x05, 0x27, 0x2c, 0x13, 0x77, 0xc5, 0xf2,
		0xee, 0x59, 0x0a, 0xb3, 0xde, 0x3c, 0xb6, 0x09, 0x13, 0xb7, 0xd6, 0x42, 0xc1, 0xaf, 0xd8, 0x8c,
		0x6c, 0x09, 0xd9, 0x12, 0xb2, 0x25, 0x64, 0x4b, 0xc8, 0x96, 0x90, 0x2d, 0xf1, 0x81, 0x08, 0xb7,
		0xe2, 0x75, 0x62, 0x38, 0x9f, 0x3b, 0x8d, 0x3f, 0x8c, 0x59, 0x5c, 0x2e, 0x38, 0xfe, 0x88, 0xa8,
		0x6d, 0x31, 0x35, 0x9f, 0x2b, 0x61, 0xb3, 0x81, 0xb8, 0x59, 0x44, 0xe0, 0x6c, 0x21, 0x72, 0xd6,
		0x11, 0x3a, 0xeb, 0x88, 0x9d, 0x5d, 0x04, 0x8f, 0x27, 0xd1, 0x63, 0x4a, 0xf8, 0x12, 0xe8, 0xb0,
		0x2d, 0x93, 0xaf, 0x44, 0x0c, 0x25, 0xa5, 0x1c, 0xfa, 0x63, 0x2f, 0xaa, 0x56, 0x38, 0x47, 0x8d,
		0x39, 0x89, 0xda, 0x63, 0xbc, 0x84, 0xa6, 0xd4, 0xa3, 0x98, 0x90, 0xf3, 0xd6, 0x37, 0xe6, 0xaf,
		0x34, 0x5b, 0x38, 0x56, 0x9a, 0x3d, 0xff, 0x48, 0x16, 0x13, 0xcb, 0x66, 0x17, 0xf6, 0x45, 0x6d,
		0xc3, 0x8e, 0xf5, 0x1c, 0x05, 0x5e, 0x3f, 0x52, 0x63, 0xdd, 0x50, 0x23, 0x15, 0x85, 0x7c, 0xf3,
		0x8e, 0x55, 0x8f, 0x2c, 0x47, 0x5e, 0xa4, 0xee, 0xa6, 0xcf, 0x6a, 0xe8, 0xf9, 0xa1, 0x84, 0x6c,
		0x36, 0x05, 0x57, 0xe0, 0x7d, 0x85, 0x2b, 0x80, 0x2b, 0x80, 0x2b, 0xc8, 0x63, 0x76, 0xc2, 0xdf,
		0x7a, 0x9e, 0x42, 0xec, 0xfc, 0x3e, 0x6f, 0x86, 0xa1, 0x8e, 0xef, 0x45, 0xf6, 0x95, 0x1c, 0x96,
		0xe9, 0x85, 0xf6, 0xa7, 0xc9, 0x2b, 0x4e, 0x00, 0x0c, 0x2d, 0x00, 0x27, 0x00, 0xa4, 0x96, 0x82,
		0x13, 0x00, 0xa2, 0x0b, 0xc2, 0x09, 0x00, 0x58, 0x13, 0x98, 0xd3, 0x0c, 0x3a, 0xf6, 0x9c, 0x00,
		0x4c, 0x94, 0x8e, 0x3e, 0x58, 0x50, 0xfb, 0xdf, 0x66, 0xbc, 0x84, 0xb6, 0xa7, 0x47, 0x12, 0xa5,
		0x7f, 0xf3, 0x0f, 0xc2, 0xca, 0xd2, 0xff, 0x16, 0xea, 0x7d, 0xc4, 0x5d, 0x31, 0x4a, 0xff, 0x04,
		0x5d, 0x81, 0x8d, 0xa5, 0xff, 0x5d, 0xb8, 0x02, 0xb8, 0x02, 0xa4, 0x25, 0x39, 0xb0, 0x1e, 0xa5,
		0x7f, 0x58, 0xcc, 0x3e, 0x30, 0x73, 0x9d, 0xc0, 0x99, 0xd8, 0x9f, 0x07, 0x6d, 0xfa, 0x55, 0xad,
		0xe9, 0xd2, 0x63, 0x7d, 0xc6, 0x12, 0xc7, 0x06, 0x5a, 0x61, 0xb9, 0x86, 0xfd, 0xe2, 0xa9, 0x1d,
		0x2c, 0x1e, 0x5a, 0xaf, 0x33, 0x7d, 0x68, 0xa7, 0xf3, 0x67, 0xc6, 0x69, 0x68, 0x27, 0x3f, 0x57,
		0x0c, 0x0d, 0xb9, 0x34, 0x77, 0xe9, 0x9f, 0xf2, 0x9e, 0xe1, 0x31, 0x70, 0xa1, 0xa9, 0xc2, 0xa8,
		0x1e, 0x45, 0xcc, 0xf4, 0xef, 0x8e, 0x95, 0x76, 0x7c, 0x79, 0x23, 0x35, 0xb7, 0xb4, 0x6b, 0x9a,
		0xd0, 0x2f, 0x59, 0x5e, 0xfe, 0x50, 0xab, 0xed, 0xec, 0xd6, 0x6a, 0x5b, 0xbb, 0xd5, 0xdd, 0xad,
		0xbd, 0xed, 0xed, 0xf2, 0x4e, 0x99, 0x51, 0x05, 0xb9, 0x70, 0x12, 0x0c, 0x64, 0x20, 0x07, 0x07,
		0x53, 0xe4, 0xeb, 0x89, 0xef, 0x73, 0x34, 0xfd, 0x2c, 0x94, 0x01, 0xab, 0x3c, 0x17, 0x73, 0xeb,
		0xc1, 0x96, 0xd7, 0xce, 0x96, 0x31, 0xc3, 0x9e, 0x03, 0x3f, 0xc6, 0x38, 0xfb, 0x3c, 0x58, 0x88,
		0x71, 0xf6, 0xe9, 0xdb, 0x1c, 0xc8, 0xa1, 0x0c, 0xa4, 0xee, 0x4b, 0xcc, 0xb4, 0x4f, 0xff, 0xc3,
		0x5d, 0x5c, 0xea, 0x68, 0x1f, 0x1d, 0x6e, 0x57, 0xb7, 0xb6, 0xf7, 0x85, 0xdb, 0x29, 0xba, 0x1d,
		0x11, 0xbb, 0xc6, 0x50, 0x8d, 0x75, 0x28, 0x86, 0xe3, 0x40, 0x74, 0x03, 0x6f, 0x38, 0x54, 0x7d,
		0xe1, 0xe8, 0x91, 0xd2, 0x52, 0x06, 0x4a, 0x8f, 0x36, 0x45, 0x38, 0xb9, 0x2a, 0x5e, 0xe8, 0x6e,
		0xf3, 0x5c, 0x94, 0xcb, 0xfb, 0x62, 0xfa, 0xbd, 0x52, 0xd9, 0xa8, 0x54, 0x37, 0xca, 0xb5, 0xf2,
		0x46, 0x65, 0xfa, 0xb2, 0x52, 0xc5, 0x74, 0x82, 0x4c, 0x92, 0xd9, 0xc5, 0xad, 0xc1, 0x87, 0x9d,
		0x82, 0x01, 0x05, 0x19, 0x13, 0xe8, 0xa5, 0x8b, 0x81, 0x6b, 0xda, 0x4a, 0xa8, 0x55, 0xe5, 0xcc,
		0xca, 0x4b, 0x06, 0x53, 0xed, 0xbe, 0x5c, 0x4b, 0x8d, 0xb0, 0xbc, 0xbe, 0xb0, 0x9c, 0xa8, 0xe3,
		0xc6, 0x93, 0xd4, 0xff, 0x10, 0xef, 0xe6, 0xb7, 0x8e, 0x8b, 0x7e, 0x38, 0xb8, 0x2a, 0x4e, 0xdf,
		0x0c, 0xf7, 0xdd, 0x4e, 0xaf, 0xed, 0xd4, 0x0f, 0x3f, 0xd5, 0x0f, 0xdc, 0xa6, 0xdb, 0xfd, 0xab,
		0x77, 0xd6, 0x6a, 0x3b, 0x1d, 0xa7, 0x7d, 0xee, 0x34, 0x7a, 0x07, 0xf5, 0x56, 0xe3, 0x5f, 0x6e,
		0xa3, 0xfb, 0xe9, 0x1d, 0x22, 0x71, 0xa6, 0x91, 0x38, 0xde, 0x17, 0x08, 0xc2, 0xe6, 0x82, 0x70,
		0x7a, 0x1b, 0x07, 0x02, 0xcf, 0x6b, 0x78, 0x54, 0x0d, 0x19, 0xf6, 0x03, 0x75, 0xcb, 0xf2, 0x9c,
		0x3e, 0x71, 0xce, 0x27, 0xda, 0xbf, 0x17, 0x4a, 0xf7, 0xfd, 0xc9, 0x40, 0x8a, 0xe8, 0x5a, 0x8a,
		0x87, 0x62, 0x9d, 0x48, 0x8a, 0x75, 0xa2, 0x3f, 0xd6, 0x91, 0xa7, 0xb4, 0x0c, 0xc4, 0xd4, 0x29,
		0x5c, 0xe8, 0xe9, 0x0f, 0x4e, 0xf9, 0xde, 0x94, 0xe5, 0xc5, 0xe0, 0x54, 0xa1, 0x28, 0x97, 0x37,
		0xb9, 0x79, 0x0b, 0xc6, 0x4d, 0x57, 0xcb, 0x8e, 0x7a, 0xb0, 0x04, 0x44, 0x86, 0xf7, 0x0d, 0x6c,
		0xe8, 0xb0, 0x7a, 0xe4, 0xb7, 0xd3, 0xdd, 0x53, 0xb8, 0x8d, 0x80, 0x0c, 0x8f, 0x72, 0x86, 0x87,
		0x5a, 0xf6, 0x5b, 0xdc, 0x06, 0xaf, 0x43, 0xcb, 0x9c, 0x1e, 0x56, 0x72, 0x98, 0xcd, 0x9f, 0xa7,
		0x53, 0x49, 0xda, 0x31, 0x91, 0xae, 0xcf, 0x26, 0xec, 0x0d, 0x0b, 0x93, 0x48, 0xf9, 0xea, 0xff,
		0x1e, 0xed, 0x3a, 0xea, 0x1e, 0xf1, 0xa1, 0x9b, 0x78, 0xd5, 0x76, 0xe2, 0x71, 0x87, 0xc7, 0xa0,
		0x1c, 0x36, 0x2a, 0x2b, 0x9c, 0xd4, 0x54, 0x18, 0xaa, 0xa6, 0x70, 0x4b, 0xd4, 0xd9, 0xaa, 0xa0,
		0xb0, 0xcd, 0xc5, 0x79, 0xaa, 0x9a, 0xe0, 0x1e, 0xd0, 0x5b, 0x1e, 0x39, 0x97, 0x41, 0x34, 0xcc,
		0x26, 0x01, 0xb2, 0x9c, 0x00, 0xc8, 0x6c, 0xf2, 0x1f, 0x3b, 0xf9, 0x38, 0x8e, 0x72, 0x71, 0x8c,
		0xe5, 0xe1, 0x6c, 0x38, 0x3e, 0x66, 0x29, 0xff, 0x66, 0xd7, 0x01, 0x32, 0x3b, 0x79, 0x37, 0xb4,
		0x08, 0xe6, 0x91, 0x20, 0x25, 0x06, 0xf3, 0x9d, 0xd0, 0xc7, 0x7e, 0x32, 0x1f, 0x53, 0x3d, 0x5e,
		0x8c, 0x4e, 0x06, 0xb1, 0xca, 0x13, 0xc1, 0xb2, 0x86, 0x68, 0x59, 0x43, 0xb8, 0xec, 0x20, 0x5e,
		0xbc, 0x08, 0x18, 0x33, 0x22, 0x96, 0x40, 0x84, 0xad, 0x7e, 0xae, 0x25, 0x93, 0xf3, 0x18, 0x4f,
		0xcc, 0xe3, 0x3e, 0x29, 0x8f, 0xb1, 0x66, 0xb4, 0x0d, 0xf2, 0xb8, 0xb6, 0x8c, 0xc1, 0xb2, 0x4e,
		0x03, 0xd3, 0x1e, 0xed, 0x4b, 0xc6, 0xf2, 0xb7, 0x56, 0xc8, 0xde, 0x62, 0x8b, 0x63, 0x8b, 0x23,
		0x3b, 0xb0, 0xc2, 0xea, 0x4b, 0xdc, 0xf9, 0xcf, 0x7b, 0x88, 0x2a, 0x44, 0x1c, 0x73, 0xc5, 0x24,
		0x4f, 0x8c, 0xad, 0x47, 0x05, 0x3c, 0x0b, 0xb3, 0x51, 0x01, 0x37, 0x88, 0x73, 0x54, 0xc0, 0xcd,
		0x6d, 0x57, 0x54, 0xc0, 0x89, 0x2d, 0x04, 0x15, 0x70, 0x30, 0x9a, 0x1f, 0x40, 0xc4, 0x82, 0x0a,
		0xf8, 0x40, 0xea, 0x48, 0x45, 0xf7, 0x81, 0x1c, 0x32, 0xae, 0x80, 0x97, 0x19, 0x0e, 0x8e, 0x2b,
		0xb8, 0xf3, 0x8f, 0xfe, 0xc0, 0x0b, 0x25, 0xff, 0x01, 0xce, 0x6e, 0xc7, 0xed, 0xf4, 0x3a, 0x67,
		0x07, 0xdd, 0xe6, 0x79, 0xaf, 0xfb, 0xd7, 0xa9, 0xc3, 0x35, 0x7c, 0xc5, 0x65, 0xa7, 0x90, 0xf5,
		0x1c, 0x3f, 0xe6, 0x85, 0xbf, 0x04, 0x51, 0xa7, 0x8f, 0xb5, 0x60, 0xdc, 0xd3, 0xf3, 0x5a, 0xaf,
		0x7d, 0x72, 0xd6, 0x75, 0xda, 0x3d, 0xb7, 0x51, 0x40, 0x65, 0x19, 0xc8, 0x4a, 0x0f, 0x59, 0x3b,
		0x40, 0x16, 0x90, 0x95, 0x3e, 0xb2, 0x4e, 0xdb, 0xce, 0x91, 0xfb, 0xb9, 0x77, 0xd4, 0xac, 0x7f,
		0xec, 0x00, 0x57, 0xc0, 0x55, 0xca, 0xb8, 0xea, 0xc0, 0x5b, 0x01, 0x55, 0xe9, 0xa1, 0x6a, 0x46,
		0xdf, 0x3b, 0x9c, 0xf9, 0xbb, 0x4d, 0x3c, 0xde, 0x0e, 0xb4, 0xe5, 0x86, 0xd7, 0x5b, 0xe0, 0xd7,
		0xf2, 0x83, 0xb8, 0x1d, 0x20, 0x0e, 0x88, 0x43, 0x1e, 0x00, 0xbc, 0x09, 0xe4, 0x07, 0x40, 0x1b,
		0xd0, 0xf6, 0x26, 0xb4, 0x75, 0xeb, 0x1f, 0x01, 0x33, 0xc0, 0x2c, 0x03, 0x98, 0xed, 0xd4, 0x2c,
		0x00, 0x1a, 0xeb, 0x15, 0x5c, 0xa2, 0xde, 0x84, 0x8d, 0x8d, 0xb8, 0x01, 0x38, 0x21, 0x3e, 0x00,
		0x50, 0xb6, 0x01, 0xea, 0xc9, 0xf4, 0x99, 0x7a, 0xe3, 0xbf, 0x7b, 0xcd, 0x7a, 0x0b, 0xc7, 0x2c,
		0x80, 0x55, 0xda, 0xb0, 0x02, 0xa4, 0x00, 0xa9, 0x54, 0x21, 0x75, 0xec, 0xb6, 0x7a, 0x1f, 0xdb,
		0x27, 0x67, 0xa7, 0x80, 0x15, 0x60, 0x95, 0x1a, 0xac, 0xce, 0xeb, 0x6e, 0xb3, 0x7e, 0xd0, 0x74,
		0x1e, 0xa6, 0xaf, 0x01, 0x5e, 0x80, 0x57, 0x5a, 0xf0, 0x4a, 0x40, 0xd5, 0x3b, 0x3c, 0x69, 0x75,
		0xba, 0xed, 0xba, 0xdb, 0xea, 0xe2, 0x9a, 0x14, 0x00, 0x96, 0x1a, 0xc0, 0x9c, 0xcf, 0x5d, 0xa7,
		0xd5, 0x70, 0x1a, 0x88, 0x8f, 0xc0, 0xd7, 0x3a, 0xf0, 0x15, 0x5f, 0x5d, 0x71, 0x5b, 0x5d, 0xa7,
		0x7d, 0x54, 0x3f, 0x74, 0x7a, 0xf5, 0x46, 0xa3, 0xed, 0x74, 0xe0, 0xc1, 0x80, 0xb0, 0x74, 0x11,
		0xd6, 0x72, 0xdc, 0x8f, 0x9f, 0x0e, 0x4e, 0xda, 0x00, 0x18, 0x00, 0xb6, 0x06, 0x80, 0xed, 0xc0,
		0x85, 0x01, 0x61, 0x6b, 0x46, 0x18, 0x5c, 0x18, 0x00, 0xb6, 0x2e, 0x80, 0x35, 0xdd, 0xd6, 0x9f,
		0xbd, 0x7a, 0xb7, 0xdb, 0x76, 0x0f, 0xce, 0xba, 0x0e, 0xa0, 0x05, 0x68, 0xa5, 0x0b, 0xad, 0x86,
		0xd3, 0xac, 0xff, 0x05, 0x54, 0x01, 0x55, 0xe9, 0xa3, 0xaa, 0x77, 0x5e, 0x6f, 0xbb, 0xf5, 0xae,
		0x7b, 0xd2, 0x02, 0xbe, 0x80, 0xaf, 0x54, 0xf1, 0x85, 0x03, 0x46, 0x40, 0x2a, 0x65, 0x48, 0x35,
		0x4f, 0x40, 0xdc, 0x01, 0xaa, 0x94, 0x41, 0x75, 0xda, 0x3e, 0xe9, 0x3a, 0x87, 0xd3, 0x10, 0x38,
		0xeb, 0x3b, 0x05, 0xbe, 0x80, 0xaf, 0x94, 0xf0, 0x75, 0x5c, 0xff, 0x3c, 0xc3, 0x18, 0x4e, 0xaf,
		0x81, 0xae, 0xb5, 0xa0, 0xab, 0xed, 0x74, 0x9c, 0xf6, 0x39, 0x6e, 0x48, 0x00, 0x63, 0x6b, 0xc2,
		0x98, 0xdb, 0x7a, 0xf0, 0x62, 0xa8, 0x43, 0x00, 0x5d, 0xa9, 0xa2, 0xab, 0xed, 0x74, 0xdc, 0xc6,
		0x59, 0xbd, 0x09, 0xdf, 0x05, 0x74, 0xa5, 0x8f, 0x2e, 0xa8, 0xc9, 0x00, 0x6d, 0xd9, 0xa3, 0xce,
		0x8a, 0x9e, 0x0d, 0x0b, 0x9c, 0x5a, 0x8e, 0xe0, 0x06, 0xa8, 0x01, 0x6a, 0x99, 0x40, 0xcd, 0x82,
		0x3b, 0xac, 0x80, 0x1b, 0x1b, 0xb8, 0xd9, 0xd4, 0xfb, 0x01, 0xd8, 0x71, 0x81, 0x9d, 0x65, 0x3d,
		0x21, 0x00, 0x1e, 0x17, 0xe0, 0xd9, 0xd5, 0x2b, 0x02, 0xdc, 0x71, 0xc1, 0x9d, 0x6d, 0x3d, 0x24,
		0x40, 0x1e, 0x2b, 0xe4, 0xd9, 0x73, 0x31, 0x1b, 0xc0, 0x63, 0x04, 0xbc, 0x1d, 0xb8, 0x3c, 0x20,
		0xcf, 0x10, 0xf2, 0xe0, 0xf2, 0x00, 0xbc, 0xac, 0x81, 0x67, 0x4d, 0x8f, 0x0a, 0x20, 0xc7, 0x0a,
		0x72, 0xcc, 0xef, 0x8c, 0x00, 0x6d, 0xfc, 0xd0, 0x66, 0x43, 0x4f, 0x0b, 0x70, 0xc7, 0x0a, 0x77,
		0x38, 0x80, 0x05, 0xd4, 0x32, 0x82, 0x1a, 0xef, 0x1e, 0x18, 0x80, 0x8d, 0x15, 0xd8, 0xac, 0xe9,
		0x8d, 0x01, 0xee, 0xb8, 0xe0, 0xce, 0xa6, 0x9e, 0x19, 0xa0, 0x8e, 0x13, 0xea, 0xec, 0xea, 0xa5,
		0x01, 0xf6, 0xd8, 0x60, 0xcf, 0xa2, 0x1e, 0x1b, 0xa0, 0x8e, 0x0b, 0xea, 0x6c, 0xea, 0xbd, 0x01,
		0xea, 0xb8, 0xa0, 0xae, 0xeb, 0xf4, 0x1a, 0xce, 0x51, 0xfd, 0xac, 0xd9, 0xed, 0x1d, 0x3b, 0xdd,
		0xb6, 0x7b, 0x08, 0xd0, 0x01, 0x74, 0xeb, 0x06, 0xdd, 0x59, 0x2b, 0xb9, 0xca, 0xe9, 0x34, 0x7a,
		0xcd, 0x0e, 0xae, 0xd5, 0x01, 0x74, 0x19, 0x80, 0x6e, 0x96, 0x4f, 0x38, 0x0d, 0x44, 0x58, 0xe0,
		0x2e, 0x43, 0xdc, 0x75, 0xdd, 0xa6, 0xfb, 0x3f, 0x96, 0xa1, 0x0e, 0x13, 0x2b, 0xb1, 0xdb, 0xf3,
		0xb4, 0xcb, 0xf3, 0xc0, 0x9f, 0x01, 0x2e, 0xf0, 0x64, 0x80, 0x2b, 0x47, 0xe0, 0xb2, 0x89, 0x0f,
		0x03, 0x5f, 0xe0, 0xbd, 0x40, 0x97, 0xbd, 0xe8, 0x6a, 0x9f, 0x9c, 0x75, 0x9d, 0x76, 0xef, 0xb0,
		0x7e, 0x9a, 0xa8, 0x09, 0xb5, 0x7b, 0xf5, 0xe6, 0xc7, 0x93, 0xb6, 0xdb, 0xfd, 0x74, 0x0c, 0x64,
		0x01, 0x59, 0xa9, 0x22, 0xeb, 0xe1, 0x6f, 0x80, 0x16, 0xa0, 0x95, 0x22, 0xb4, 0x20, 0x81, 0x06,
		0xbc, 0x21, 0x58, 0xe6, 0xd7, 0xb3, 0xe5, 0x09, 0x71, 0x36, 0x04, 0xd1, 0x04, 0x72, 0xa8, 0x78,
		0xe3, 0x73, 0xb7, 0xf8, 0xf3, 0xe6, 0xf5, 0x39, 0xf3, 0xb1, 0x96, 0x87, 0xa5, 0x4c, 0x02, 0x6a,
		0xa1, 0xae, 0xf5, 0x38, 0xf2, 0x22, 0x35, 0xd6, 0x85, 0x7d, 0x46, 0x21, 0xb4, 0x10, 0xf6, 0xaf,
		0xe5, 0x8d, 0x77, 0xeb, 0x45, 0xd7, 0xd3, 0x60, 0x59, 0x1a, 0xdf, 0x4a, 0xdd, 0x1f, 0xeb, 0xa1,
		0x1a, 0x15, 0xb5, 0x8c, 0xbe, 0x8c, 0x83, 0x7f, 0x8a, 0x4a, 0x87, 0x91, 0xa7, 0xfb, 0xb2, 0xf4,
		0xf4, 0x8d, 0x70, 0xe5, 0x9d, 0xd2, 0x6d, 0x30, 0x8e, 0xc6, 0xfd, 0xb1, 0x1f, 0x26, 0xaf, 0x4a,
		0x2a, 0x54, 0x61, 0xc9, 0x97, 0x77, 0xd2, 0x9f, 0x7f, 0x2b, 0xf9, 0x4a, 0xff, 0x53, 0x0c, 0x23,
		0x2f, 0x92, 0xc5, 0x81, 0x17, 0x79, 0x57, 0x5e, 0x28, 0x4b, 0x7e, 0x78, 0x5b, 0x8a, 0xfc, 0xbb,
		0x70, 0xfa, 0x47, 0x49, 0x7e, 0x8d, 0xa4, 0x1e, 0xc8, 0x41, 0x51, 0x85, 0xc5, 0x40, 0x7a, 0xfd,
		0x6b, 0xef, 0x4a, 0xf9, 0x2a, 0xba, 0x2f, 0x69, 0xa9, 0x46, 0xd7, 0x57, 0xe3, 0x20, 0x4c, 0x5e,
		0x95, 0x1e, 0x8c, 0x49, 0x8c, 0x08, 0x27, 0x57, 0xf1, 0xff, 0x6a, 0xf6, 0xbd, 0x34, 0x89, 0x94,
		0xaf, 0xfe, 0x4f, 0x0e, 0x8a, 0x57, 0x9e, 0x1e, 0x7c, 0x51, 0x83, 0xe8, 0xba, 0x14, 0xff, 0x72,
		0x46, 0x49, 0x4e, 0x21, 0x8c, 0x82, 0x49, 0x3f, 0xd2, 0x73, 0x4a, 0x73, 0x92, 0x3c, 0xa4, 0xd6,
		0xec, 0x01, 0xb8, 0xf3, 0xa5, 0xf7, 0x9e, 0xfc, 0x3d, 0x7c, 0xfa, 0x46, 0xef, 0x74, 0xf1, 0x80,
		0x92, 0x57, 0x3d, 0x37, 0x54, 0x61, 0xaf, 0x19, 0x3f, 0xa0, 0xd9, 0xb7, 0x5e, 0x53, 0xe9, 0x7f,
		0x3a, 0xd3, 0x8f, 0xa8, 0x31, 0x7f, 0x3c, 0xbd, 0x66, 0x78, 0xdb, 0xeb, 0xfa, 0x77, 0xe1, 0xf4,
		0x8f, 0x9e, 0x33, 0x7f, 0x3c, 0x6e, 0xd8, 0x5e, 0x7a, 0x38, 0xbd, 0xd6, 0xe2, 0xe1, 0x24, 0xaf,
		0x7a, 0x0f, 0x76, 0x24, 0x06, 0x74, 0x66, 0x0f, 0x67, 0xfe, 0xbd, 0x77, 0x36, 0x7f, 0x38, 0x07,
		0x8b, 0x67, 0xd3, 0x8b, 0x7f, 0x31, 0x0f, 0x56, 0x46, 0xdf, 0x83, 0xd2, 0xb6, 0x90, 0xb8, 0x6f,
		0x2f, 0xc8, 0xaf, 0x51, 0xe0, 0x15, 0x27, 0x53, 0xe8, 0x5e, 0xf9, 0x92, 0x85, 0x5f, 0x2f, 0x04,
		0x72, 0x28, 0x03, 0xa9, 0xfb, 0x92, 0x4d, 0xf5, 0x83, 0x51, 0xb0, 0x4c, 0x72, 0xca, 0xa3, 0xc3,
		0xdd, 0x0f, 0xe5, 0xad, 0x7d, 0xe1, 0x76, 0x8a, 0x6e, 0x47, 0x74, 0x03, 0x6f, 0x38, 0x54, 0x7d,
		0xe1, 0xe8, 0x91, 0xd2, 0x52, 0x06, 0x4a, 0x8f, 0xc4, 0xef, 0x5d, 0xe7, 0xbd, 0x38, 0x96, 0x51,
		0xa0, 0xfa, 0x17, 0x3a, 0xf6, 0x98, 0xa1, 0x1a, 0xeb, 0x70, 0x53, 0x84, 0x93, 0xab, 0x62, 0xb7,
		0x79, 0x2e, 0xaa, 0x7b, 0xfb, 0x62, 0xfa, 0xbd, 0x52, 0xd9, 0x10, 0x95, 0xea, 0x86, 0x28, 0xd7,
		0xca, 0x1b, 0xa2, 0x12, 0xff, 0xad, 0x52, 0xdd, 0xe4, 0x14, 0x9c, 0x3a, 0xe3, 0x49, 0xd0, 0x97,
		0xac, 0x68, 0x4f, 0x6c, 0xf7, 0x9f, 0xf2, 0xfe, 0xcb, 0x38, 0x18, 0x4c, 0x1f, 0xe8, 0xc3, 0xae,
		0xe1, 0x55, 0xbf, 0x29, 0x7c, 0xf2, 0xc2, 0x7a, 0x30, 0x9a, 0xdc, 0x48, 0x1d, 0x15, 0xf6, 0x45,
		0x14, 0x4c, 0x24, 0xb3, 0x05, 0x2c, 0x59, 0x9f, 0xc5, 0xb6, 0x42, 0x76, 0x96, 0x33, 0x2b, 0x2f,
		0xe9, 0xef, 0x87, 0xc2, 0x97, 0x6b, 0xa9, 0x11, 0xae, 0xd7, 0x17, 0xae, 0x37, 0x37, 0x67, 0x19,
		0x5f, 0x29, 0xba, 0xbf, 0x95, 0xe2, 0x0f, 0xf1, 0x6e, 0xdc, 0x2f, 0x4e, 0xd3, 0xd2, 0xa2, 0x1f,
		0x0e, 0xae, 0x8a, 0xd3, 0x37, 0xc3, 0xfd, 0x1f, 0xdf, 0x11, 0x79, 0x87, 0x98, 0x9c, 0x69, 0x4c,
		0x8e, 0x77, 0x05, 0xc2, 0xb1, 0xb9, 0x70, 0x9c, 0xd6, 0xb6, 0xe1, 0x13, 0x73, 0x19, 0x6d, 0xf0,
		0x86, 0x0c, 0xfb, 0x81, 0xba, 0x65, 0x57, 0x70, 0x7c, 0xe4, 0x98, 0x4f, 0xb4, 0x7f, 0x2f, 0x94,
		0xee, 0xfb, 0x93, 0x81, 0x14, 0xd1, 0xb5, 0x14, 0x8b, 0x5a, 0x9d, 0x48, 0x6a, 0x75, 0xa2, 0x3f,
		0xd6, 0x91, 0xa7, 0xb4, 0x0c, 0xc4, 0xd4, 0x21, 0x4c, 0x7f, 0xea, 0x42, 0x4f, 0x09, 0x9e, 0x0a,
		0x45, 0x8c, 0xcb, 0xea, 0xde, 0x26, 0x37, 0x2f, 0xc1, 0xd4, 0x39, 0x3f, 0x75, 0xd0, 0x83, 0x25,
		0x08, 0xf2, 0x3b, 0xf6, 0x66, 0xef, 0xab, 0x57, 0xfc, 0x75, 0x5a, 0xbb, 0x09, 0xe7, 0x6d, 0xc8,
		0xe8, 0x28, 0x67, 0x74, 0xa8, 0x69, 0xbf, 0xc5, 0x61, 0xf0, 0x3a, 0xa7, 0xcc, 0xe5, 0xf9, 0x24,
		0x83, 0x68, 0x9a, 0xa3, 0x13, 0x49, 0xda, 0xf1, 0x90, 0xae, 0xbf, 0xa6, 0x69, 0x19, 0x51, 0xff,
		0x3c, 0xe5, 0xd5, 0xd3, 0x8d, 0x34, 0x25, 0x61, 0x44, 0xb7, 0x7f, 0xa1, 0xa9, 0xc2, 0xa8, 0x1e,
		0x45, 0x01, 0xe9, 0xc0, 0x51, 0x38, 0x56, 0xda, 0xf1, 0xe5, 0x94, 0x13, 0x87, 0x85, 0x7d, 0xb1,
		0xb5, 0x41, 0xd8, 0x52, 0xef, 0xeb, 0x92, 0xa5, 0xe5, 0x0f, 0xb5, 0xda, 0xce, 0x6e, 0xad, 0xb6,
		0xb5, 0x5b, 0xdd, 0xdd, 0xda, 0xdb, 0xde, 0x2e, 0xef, 0x94, 0xb7, 0x09, 0x1b, 0x7f, 0x12, 0x0c,
		0x64, 0x20, 0x07, 0x07, 0x53, 0xd4, 0xea, 0x89, 0xef, 0x73, 0x30, 0xf5, 0x2c, 0x94, 0x53, 0xf0,
		0x0e, 0x3d, 0x3f, 0x94, 0x70, 0x4e, 0xf6, 0x91, 0x46, 0xfb, 0xc9, 0x22, 0x61, 0x66, 0x68, 0x2d,
		0x23, 0xa4, 0xc9, 0xff, 0xe8, 0xb1, 0x2b, 0x5a, 0x16, 0x11, 0x73, 0xa5, 0xd4, 0x5d, 0xa8, 0xc5,
		0xae, 0x93, 0xa0, 0xcf, 0xb4, 0xcf, 0x57, 0xd2, 0x72, 0x92, 0x74, 0x5c, 0x11, 0x21, 0x37, 0x54,
		0x98, 0xe8, 0x81, 0x1c, 0x2a, 0x2d, 0x07, 0xc5, 0xc5, 0xce, 0xa0, 0xe6, 0x89, 0x92, 0x83, 0xc1,
		0x55, 0x53, 0x89, 0xb9, 0xf3, 0x3f, 0x95, 0x1e, 0x4c, 0x93, 0x36, 0x62, 0x66, 0x1d, 0xc6, 0x5e,
		0x84, 0x5e, 0xde, 0x5b, 0x38, 0x0d, 0xe4, 0x50, 0x7d, 0xa5, 0x19, 0xfa, 0x16, 0xa0, 0x9b, 0x5f,
		0x6f, 0xa0, 0x18, 0x2f, 0x88, 0x9f, 0x18, 0x2f, 0x9f, 0x0a, 0xdf, 0xce, 0x9e, 0x34, 0xd1, 0x4c,
		0x96, 0xcb, 0xa1, 0xef, 0xa3, 0x83, 0xdd, 0x05, 0x30, 0x41, 0xf9, 0x59, 0x51, 0xfe, 0x86, 0xa2,
		0x59, 0x2a, 0x5d, 0x89, 0xae, 0x74, 0xfd, 0xca, 0x4b, 0x7c, 0x80, 0xaa, 0x7b, 0xa1, 0x49, 0x0b,
		0xc8, 0xd3, 0x03, 0x0e, 0x34, 0x81, 0x11, 0x5d, 0xe0, 0x42, 0x1b, 0xd8, 0xd1, 0x07, 0x76, 0x34,
		0x82, 0x17, 0x9d, 0xa0, 0x49, 0x2b, 0x88, 0xd2, 0x0b, 0xf2, 0x34, 0x23, 0x31, 0x70, 0xd6, 0x6d,
		0x4f, 0xde, 0x09, 0x2d, 0xfc, 0x3a, 0x07, 0x71, 0x00, 0xe2, 0x44, 0x83, 0x0d, 0xe1, 0xe0, 0x44,
		0x3c, 0x18, 0x12, 0x10, 0x6e, 0x44, 0x84, 0x2d, 0x21, 0x61, 0x4b, 0x4c, 0x78, 0x12, 0x14, 0xda,
		0x44, 0x85, 0x38, 0x61, 0x61, 0x43, 0x5c, 0x12, 0x43, 0x7d, 0xa9, 0x47, 0xf1, 0xb9, 0x28, 0x13,
		0xef, 0xb5, 0x08, 0x10, 0x73, 0xbb, 0x99, 0x78, 0x80, 0x39, 0xa5, 0xd9, 0x62, 0x62, 0x2e, 0x17,
		0x6a, 0xc3, 0x91, 0xe2, 0x30, 0xa6, 0x3a, 0x5c, 0x29, 0x0f, 0x7b, 0xea, 0xc3, 0x9e, 0x02, 0xf1,
		0xa6, 0x42, 0x3c, 0x28, 0x11, 0x13, 0x6a, 0x94, 0x40, 0xa1, 0x7b, 0x7f, 0x2b, 0x79, 0x7a, 0xec,
		0x89, 0xd2, 0xd1, 0x07, 0x4e, 0xfe, 0x7a, 0x4e, 0x3f, 0xb6, 0x19, 0x99, 0xdc, 0xf6, 0xf4, 0x48,
		0xb2, 0x53, 0xb9, 0x67, 0xd8, 0xf4, 0x7e, 0xac, 0x34, 0xcb, 0x6e, 0x7d, 0x91, 0x0c, 0x43, 0xe0,
		0xc3, 0x53, 0x57, 0xec, 0x3f, 0x0a, 0xbc, 0x7e, 0xa4, 0xc6, 0xba, 0xa1, 0x46, 0x8a, 0x7a, 0x4f,
		0xcf, 0xf7, 0x5d, 0xa3, 0x1c, 0x79, 0x91, 0xba, 0x93, 0xa4, 0x5b, 0x50, 0x2c, 0x88, 0x9a, 0x8f,
		0xb7, 0xae, 0xf7, 0x95, 0xff, 0xd6, 0xad, 0x6c, 0x6f, 0x63, 0xf3, 0x62, 0xf3, 0xe6, 0x80, 0x98,
		0xf3, 0xb3, 0xf6, 0x12, 0xb2, 0x1e, 0x79, 0x09, 0x2e, 0xb3, 0xee, 0x6c, 0x76, 0x65, 0x60, 0xc2,
		0x3d, 0xe5, 0x2f, 0x65, 0x61, 0x28, 0x02, 0xaf, 0xc9, 0x60, 0x14, 0x81, 0x33, 0x35, 0x1d, 0x45,
		0x60, 0x43, 0x0b, 0x40, 0x11, 0x18, 0x6c, 0xc3, 0x92, 0x74, 0x16, 0x45, 0xe0, 0xcc, 0xe9, 0x07,
		0x8a, 0xc0, 0xeb, 0xfe, 0x42, 0x11, 0x38, 0x5b, 0xe3, 0x51, 0x04, 0xa6, 0xe2, 0x1a, 0x51, 0x04,
		0x36, 0xb0, 0x75, 0x51, 0x04, 0xc6, 0xe6, 0xc5, 0xe6, 0x45, 0x11, 0x78, 0x5d, 0x5f, 0x28, 0x02,
		0xe7, 0x26, 0xb8, 0x14, 0xee, 0xe6, 0xfe, 0x98, 0x59, 0x15, 0x78, 0x66, 0x36, 0xca, 0xc0, 0xeb,
		0x30, 0x17, 0x65, 0xe0, 0x0c, 0x81, 0x8c, 0x32, 0x70, 0x76, 0xdb, 0x10, 0x65, 0x60, 0xc3, 0x0b,
		0x40, 0x19, 0x18, 0x9c, 0x63, 0x0e, 0x05, 0xbe, 0x65, 0xe0, 0x2b, 0xa5, 0xbd, 0xe0, 0x9e, 0x61,
		0x1d, 0x78, 0x0f, 0xb4, 0x3e, 0x07, 0x16, 0x62, 0x64, 0x4b, 0xba, 0xf6, 0x5a, 0x28, 0x25, 0xbb,
		0xa2, 0x47, 0xb9, 0xf2, 0x4e, 0x89, 0x83, 0x6c, 0x84, 0xb0, 0x4b, 0x7b, 0xf6, 0x6c, 0xf1, 0x0c,
		0x16, 0x82, 0xdd, 0x4f, 0xde, 0xe8, 0xc5, 0xbf, 0x18, 0xf3, 0x5b, 0xac, 0x73, 0x8b, 0x3c, 0x2e,
		0xe2, 0x71, 0xba, 0x80, 0xc7, 0xa4, 0xe2, 0x02, 0x41, 0x19, 0x54, 0x56, 0x04, 0x04, 0x65, 0x50,
		0x41, 0xb1, 0xb4, 0x72, 0x82, 0x44, 0x29, 0x17, 0x15, 0x92, 0x25, 0x85, 0x16, 0x6f, 0x18, 0xc8,
		0x21, 0x07, 0x8f, 0xbb, 0x50, 0x9c, 0xdb, 0x65, 0x60, 0xeb, 0xe9, 0x3c, 0xf7, 0x7c, 0x34, 0xc1,
		0x1e, 0x79, 0x80, 0x4d, 0x96, 0x61, 0x8e, 0xe3, 0xab, 0x4d, 0xc4, 0x1c, 0xc7, 0x94, 0x2d, 0xc5,
		0x1c, 0xc7, 0x6c, 0x4d, 0xc5, 0x1c, 0xc7, 0xd7, 0x72, 0x62, 0xcc, 0x71, 0xa4, 0x5b, 0x41, 0xc6,
		0x6c, 0x47, 0x0a, 0x35, 0x63, 0x4c, 0x7b, 0xe4, 0x68, 0x11, 0xa6, 0x3d, 0xc2, 0xc1, 0x12, 0x1f,
		0x19, 0x67, 0xb9, 0x1f, 0xc5, 0x00, 0x48, 0xca, 0x96, 0x10, 0xf1, 0x8f, 0x8b, 0xec, 0x58, 0x0d,
		0x88, 0x6c, 0x4e, 0x9a, 0xb9, 0x30, 0xdd, 0xdc, 0x97, 0x55, 0xae, 0x4b, 0x38, 0xb7, 0x25, 0x9c,
		0xcb, 0x52, 0x71, 0x15, 0x44, 0x29, 0x94, 0x85, 0xd4, 0x89, 0x10, 0x51, 0xb2, 0x87, 0x20, 0xd1,
		0xe0, 0x43, 0xe6, 0xd9, 0x87, 0x59, 0x0b, 0x0c, 0x3b, 0x33, 0x6a, 0x4e, 0xcc, 0x1e, 0xe7, 0x45,
		0xc0, 0x67, 0xb1, 0xf7, 0x55, 0x66, 0x5d, 0x94, 0x39, 0xc7, 0x60, 0xd0, 0x29, 0x10, 0x99, 0x85,
		0x47, 0x6a, 0xd6, 0x1d, 0x91, 0x59, 0x76, 0x64, 0xae, 0x16, 0x52, 0xba, 0x3a, 0x48, 0xf0, 0x6a,
		0x20, 0xb5, 0xab, 0x7f, 0x64, 0xaf, 0xf6, 0x91, 0xbd, 0xba, 0x47, 0xf3, 0x6a, 0x5e, 0xbe, 0x89,
		0x2a, 0x95, 0x59, 0x6c, 0x85, 0xf0, 0x3e, 0x8c, 0xe4, 0x4d, 0x51, 0x0d, 0xe8, 0x6c, 0xf0, 0x24,
		0x58, 0x26, 0xa6, 0x51, 0xa9, 0xa6, 0x92, 0xba, 0xb3, 0x4f, 0xee, 0x6e, 0x3e, 0xc5, 0x3b, 0xf8,
		0x84, 0xef, 0xda, 0x53, 0xbd, 0x53, 0x4f, 0xfe, 0xee, 0x3c, 0xf9, 0x3b, 0xf2, 0xb4, 0xef, 0xc2,
		0xe3, 0x84, 0x6c, 0xf9, 0x51, 0x91, 0xbb, 0xc3, 0x4e, 0x36, 0xfc, 0x3d, 0xca, 0x1d, 0x3f, 0x10,
		0xb2, 0xe9, 0xd4, 0x8b, 0x22, 0x19, 0x68, 0x72, 0x9a, 0xac, 0x85, 0xbf, 0xb7, 0x8a, 0x7b, 0xf5,
		0xe2, 0x91, 0x57, 0x1c, 0x5e, 0xfe, 0xbb, 0xf6, 0xed, 0xe2, 0x62, 0xf3, 0x07, 0x6f, 0xd0, 0xf1,
		0x11, 0x97, 0x94, 0x1e, 0xef, 0x49, 0xc7, 0xfd, 0x4c, 0xf6, 0x19, 0xff, 0xef, 0xaf, 0x3e, 0xe4,
		0xff, 0x22, 0xf4, 0x94, 0x71, 0x66, 0x82, 0x54, 0x14, 0x67, 0x26, 0x29, 0x9f, 0x99, 0x50, 0x11,
		0xa6, 0xe0, 0x7a, 0x5e, 0x42, 0x40, 0x44, 0x22, 0xa7, 0x67, 0x25, 0x64, 0x4a, 0x41, 0xe4, 0x38,
		0x30, 0x91, 0xd2, 0x0f, 0xce, 0x4c, 0x78, 0x94, 0x78, 0x70, 0x66, 0xc2, 0xbd, 0x94, 0x83, 0x33,
		0x13, 0x7a, 0x44, 0x95, 0x4c, 0xa9, 0x86, 0xa0, 0x9c, 0x00, 0x25, 0xb9, 0x80, 0x55, 0x39, 0x80,
		0x87, 0x30, 0x9e, 0x57, 0x5a, 0xf7, 0x5b, 0x8e, 0x36, 0xec, 0xa2, 0xeb, 0xc0, 0x34, 0x79, 0xa3,
		0xd1, 0x6c, 0x40, 0xa7, 0xb9, 0x80, 0x74, 0x33, 0x01, 0xa1, 0xe6, 0x01, 0x42, 0xcd, 0x02, 0xa6,
		0x76, 0x30, 0x91, 0x9a, 0x10, 0xf7, 0x5a, 0x50, 0xc1, 0xe8, 0xcd, 0x47, 0x8e, 0xd5, 0x1f, 0x33,
		0x04, 0x21, 0xfb, 0xf0, 0x9c, 0xed, 0x6f, 0xcc, 0xd8, 0x8d, 0x98, 0x76, 0x1f, 0x4c, 0xdd, 0x86,
		0x01, 0x6f, 0xc1, 0xcb, 0x4b, 0x64, 0xeb, 0x1c, 0xb2, 0xdb, 0xa2, 0xd9, 0xfc, 0xa6, 0x8c, 0x9c,
		0x40, 0x41, 0x7e, 0x8d, 0x02, 0xaf, 0x38, 0x99, 0x02, 0xe3, 0xca, 0xcf, 0x36, 0x61, 0x2f, 0x04,
		0x72, 0x28, 0x03, 0xa9, 0xfb, 0xd9, 0x0f, 0x68, 0x35, 0xe0, 0xe5, 0x16, 0x55, 0x88, 0xf6, 0xd1,
		0xe1, 0x76, 0x75, 0x6b, 0x7b, 0x5f, 0xb8, 0x9d, 0xa2, 0xdb, 0x11, 0xf1, 0x2e, 0x0a, 0xd5, 0x58,
		0x87, 0x62, 0x38, 0x0e, 0x44, 0x37, 0xf0, 0x86, 0x43, 0xd5, 0x17, 0x8e, 0x1e, 0x29, 0x2d, 0x65,
		0xa0, 0xf4, 0x68, 0x53, 0x74, 0x9b, 0xe7, 0x17, 0xba, 0x52, 0xd9, 0x34, 0xe1, 0x72, 0x0c, 0xd7,
		0x46, 0x97, 0x6b, 0xa1, 0x0f, 0x70, 0x31, 0xc4, 0xb3, 0xa9, 0x94, 0x3f, 0x1f, 0x95, 0x3b, 0xdf,
		0x82, 0x27, 0xdb, 0x89, 0x54, 0x66, 0xbf, 0x2d, 0xc3, 0x1b, 0x38, 0x85, 0x2f, 0xd7, 0x52, 0xe7,
		0xc9, 0x61, 0x3e, 0x92, 0x29, 0x15, 0x7f, 0x88, 0x77, 0xf3, 0x02, 0x7f, 0xd1, 0x0f, 0x07, 0x57,
		0xc5, 0xe9, 0x9b, 0xe1, 0xbe, 0xf3, 0xb9, 0xeb, 0xb4, 0x1a, 0x4e, 0xa3, 0xe7, 0x76, 0x7a, 0x6d,
		0xa7, 0x7e, 0xf8, 0xa9, 0x7e, 0xe0, 0x36, 0xdd, 0xee, 0x5f, 0xef, 0x72, 0xee, 0x32, 0x63, 0xac,
		0xc0, 0x5b, 0x3e, 0x78, 0xcb, 0xb7, 0x81, 0xe9, 0xb7, 0x1c, 0x54, 0x94, 0x0a, 0x0d, 0x19, 0xf6,
		0x03, 0x75, 0x6b, 0xb4, 0x9c, 0x94, 0x6c, 0xfe, 0x13, 0xed, 0xdf, 0x0b, 0xa5, 0xfb, 0xfe, 0x64,
		0x20, 0x07, 0x22, 0xba, 0x96, 0x62, 0x91, 0x99, 0x09, 0xb7, 0x23, 0x96, 0x33, 0xb3, 0x69, 0x54,
		0x13, 0x53, 0xbc, 0x4f, 0x7f, 0xea, 0x42, 0x4f, 0xff, 0xa6, 0x42, 0x11, 0x3f, 0x66, 0x33, 0xd4,
		0x49, 0x10, 0x39, 0x5a, 0x5e, 0xf6, 0x07, 0x83, 0xa5, 0x67, 0x6b, 0xb0, 0xda, 0x45, 0xe9, 0x1c,
		0xf9, 0x91, 0x7b, 0x48, 0x0d, 0x6e, 0x28, 0x8c, 0xf1, 0xe6, 0x73, 0x56, 0xe5, 0xf8, 0x86, 0x0a,
		0x7c, 0xac, 0x0a, 0x7b, 0x19, 0xba, 0x43, 0x0e, 0x65, 0xbc, 0x6c, 0x1c, 0xd8, 0xfa, 0x37, 0x74,
		0x06, 0x5b, 0xac, 0x70, 0x3d, 0x0e, 0x17, 0x0f, 0x33, 0x9b, 0xcd, 0x95, 0xb0, 0xa3, 0xe4, 0x37,
		0x67, 0xe4, 0x48, 0xb2, 0xd5, 0xa2, 0xc8, 0xfc, 0xfe, 0xa4, 0x89, 0x7b, 0x92, 0x06, 0xef, 0x43,
		0x9a, 0x22, 0xa7, 0xc6, 0xef, 0x37, 0x1a, 0xe7, 0x9f, 0x66, 0xef, 0x2b, 0xda, 0x75, 0x80, 0x91,
		0xb5, 0x36, 0x83, 0x21, 0x91, 0x22, 0xa3, 0xa2, 0x44, 0x86, 0x44, 0x88, 0x8c, 0x5d, 0xa0, 0x37,
		0x79, 0x61, 0x9e, 0xc0, 0x05, 0x79, 0x4a, 0x15, 0x4c, 0xa3, 0x17, 0xe0, 0x69, 0xd6, 0x30, 0x8d,
		0x5d, 0x70, 0xb7, 0xfb, 0x1a, 0x8c, 0x29, 0x91, 0x9f, 0xec, 0xf3, 0x07, 0x2a, 0xf9, 0xc4, 0x4b,
		0x61, 0xc6, 0xd0, 0xad, 0x5b, 0xe3, 0xfd, 0x5a, 0x14, 0xfa, 0xb4, 0x08, 0xf5, 0x67, 0x51, 0xe9,
		0xcb, 0x22, 0xd7, 0x8f, 0x45, 0xae, 0x0f, 0x8b, 0x56, 0xff, 0x55, 0xbe, 0xda, 0x37, 0x8c, 0xf7,
		0x59, 0x2d, 0x65, 0x26, 0x81, 0xd2, 0x23, 0x93, 0x0e, 0x23, 0xd1, 0xbb, 0xc9, 0x15, 0x02, 0xd0,
		0x38, 0xf3, 0xc4, 0x12, 0x34, 0xce, 0xfc, 0x9a, 0x29, 0xb9, 0x6d, 0x9c, 0x31, 0x78, 0xf9, 0x75,
		0xc5, 0x16, 0x73, 0x97, 0x61, 0x9f, 0x7e, 0x11, 0x6a, 0xd9, 0x6d, 0x1f, 0x1d, 0xee, 0x54, 0xaa,
		0xd5, 0xc5, 0xe5, 0xc6, 0xb6, 0x1c, 0xa9, 0x30, 0x0a, 0xee, 0x1f, 0x6e, 0x39, 0xc6, 0x97, 0x1c,
		0x4f, 0x27, 0xc1, 0x48, 0x86, 0x1b, 0xa2, 0x7d, 0x74, 0x78, 0xa1, 0xb7, 0xab, 0x5b, 0xe5, 0x7d,
		0xd1, 0xb8, 0xd7, 0xde, 0x8d, 0xea, 0x8b, 0x4f, 0xf3, 0x8c, 0x46, 0x38, 0x5f, 0xfb, 0xd7, 0x9e,
		0x1e, 0x49, 0x71, 0x2c, 0xa7, 0x2f, 0x54, 0x78, 0x13, 0xff, 0xd3, 0xf8, 0xff, 0xbb, 0x39, 0x3b,
		0xbf, 0x2f, 0x57, 0x77, 0xa1, 0x46, 0xf0, 0x5d, 0xf6, 0x6b, 0xfa, 0x06, 0x2e, 0x79, 0x22, 0xfc,
		0x2c, 0x21, 0xce, 0x1c, 0xc4, 0x79, 0x57, 0x3e, 0x30, 0xf6, 0xdb, 0x2f, 0x71, 0xed, 0x87, 0x3f,
		0x3b, 0x40, 0x3f, 0xdc, 0x33, 0xd7, 0x66, 0x16, 0x95, 0x41, 0x63, 0x7a, 0x69, 0xb4, 0x2e, 0xcd,
		0x2c, 0x3c, 0xb2, 0x09, 0xf9, 0x33, 0x74, 0xba, 0xb1, 0x23, 0xfb, 0xe8, 0xd9, 0x78, 0xe6, 0x9a,
		0x7d, 0xe3, 0xaf, 0x56, 0xfd, 0xd8, 0x3d, 0xec, 0xb5, 0xea, 0xc7, 0x0e, 0xfa, 0x34, 0xd0, 0xa7,
		0xf1, 0xcb, 0x7d, 0x1a, 0x8f, 0x01, 0x84, 0xde, 0x8c, 0xac, 0x37, 0xb9, 0x3b, 0xbb, 0x27, 0x1f,
		0x5f, 0x93, 0x1f, 0xcc, 0x53, 0x95, 0x05, 0x4f, 0x88, 0xaf, 0xc7, 0x8f, 0xb5, 0x7f, 0x9f, 0xdc,
		0x91, 0x17, 0xb3, 0x2b, 0xf2, 0x17, 0x3a, 0x7e, 0xa2, 0xe5, 0xea, 0x2e, 0x7a, 0x32, 0xd0, 0x93,
		0xf1, 0x33, 0xae, 0xe0, 0xcd, 0x30, 0x43, 0x52, 0xc6, 0xfa, 0xb7, 0xa1, 0x17, 0xc3, 0xf6, 0xa4,
		0x32, 0xb7, 0xbd, 0x17, 0x8b, 0x34, 0x12, 0xdd, 0x16, 0x3f, 0xff, 0x00, 0x17, 0x18, 0x2c, 0xaa,
		0x41, 0x98, 0x7d, 0xc7, 0xc5, 0xa3, 0xdf, 0x8e, 0xae, 0x8b, 0x54, 0x7e, 0x21, 0xba, 0x2e, 0xb2,
		0xa6, 0x9c, 0xe8, 0xba, 0x40, 0xd7, 0xc5, 0x1b, 0x13, 0xd1, 0xac, 0xbb, 0x2e, 0x96, 0x1c, 0xaf,
		0xb9, 0xde, 0x8b, 0x65, 0x23, 0xd0, 0x81, 0x61, 0x5b, 0x50, 0x20, 0x10, 0x1c, 0xa8, 0xd4, 0x28,
		0xd0, 0x81, 0x41, 0x2b, 0x78, 0x18, 0xca, 0xf1, 0xf3, 0xd2, 0x81, 0x61, 0x32, 0xb8, 0x10, 0x0a,
		0x32, 0x4f, 0x83, 0x0d, 0xfa, 0x30, 0xd0, 0x87, 0x81, 0x3e, 0x0c, 0x06, 0xc1, 0x89, 0x56, 0x90,
		0x32, 0x13, 0xac, 0x0c, 0x05, 0xad, 0xe4, 0xa3, 0xa7, 0xd3, 0x87, 0x61, 0x7e, 0xce, 0x0d, 0x85,
		0xf9, 0x36, 0xab, 0x73, 0x6d, 0x96, 0x03, 0x6b, 0x5e, 0xce, 0x84, 0x8c, 0x5c, 0xd4, 0x32, 0xa1,
		0x8f, 0xb0, 0xb2, 0x0b, 0x4c, 0x0e, 0xf6, 0x34, 0x94, 0xad, 0x83, 0x40, 0x81, 0x40, 0x81, 0x40,
		0x81, 0x40, 0xf1, 0x24, 0x50, 0xa6, 0xb2, 0x7f, 0x52, 0x55, 0x00, 0x82, 0xd5, 0x00, 0x22, 0x55,
		0x01, 0x32, 0xc1, 0x8d, 0x52, 0x90, 0x23, 0x18, 0xec, 0xa8, 0x05, 0x3d, 0xb2, 0xc1, 0x8f, 0x6c,
		0x10, 0xa4, 0x19, 0x0c, 0xcd, 0x06, 0x45, 0xc3, 0xc1, 0x91, 0x4e, 0x95, 0x61, 0xc5, 0xe3, 0x4c,
		0x94, 0x8e, 0xca, 0x3b, 0x84, 0x86, 0xea, 0xee, 0x10, 0x30, 0xa5, 0xed, 0xe9, 0x91, 0xf9, 0x46,
		0xee, 0xc5, 0x17, 0x0d, 0x07, 0x2c, 0xe6, 0x2a, 0x11, 0x64, 0x22, 0x42, 0x62, 0xd4, 0xb9, 0xe7,
		0x4f, 0xa4, 0x79, 0x42, 0xb1, 0x62, 0xd7, 0x51, 0xe0, 0xf5, 0x23, 0x35, 0xd6, 0x0d, 0x35, 0x52,
		0xa6, 0x55, 0x35, 0x9e, 0xf7, 0x01, 0x72, 0xe4, 0x45, 0xea, 0x4e, 0x1a, 0x15, 0x8f, 0x20, 0xe8,
		0xa6, 0x1f, 0x43, 0xde, 0xfb, 0x4a, 0x17, 0xf2, 0x3b, 0xdb, 0xdb, 0xd5, 0x6d, 0xc0, 0xde, 0x16,
		0xd8, 0xff, 0x06, 0x2b, 0x84, 0xb1, 0x3e, 0x7c, 0xf3, 0xeb, 0x37, 0xe8, 0xf6, 0x0a, 0xd1, 0xf8,
		0x76, 0xec, 0x8f, 0x47, 0xf7, 0xa4, 0xaa, 0x27, 0xcb, 0x46, 0xa1, 0x7a, 0x82, 0xea, 0x09, 0xaa,
		0x27, 0xa8, 0x9e, 0xa0, 0x7a, 0x82, 0xea, 0x09, 0xaa, 0x27, 0xa8, 0x9e, 0xa0, 0x7a, 0x82, 0xea,
		0x09, 0xd2, 0x48, 0x54, 0x4f, 0x50, 0x3d, 0x01, 0xec, 0x51, 0x3d, 0xa1, 0x53, 0x3d, 0x31, 0xcc,
		0x11, 0x49, 0xa8, 0x69, 0x2f, 0x47, 0x7c, 0x1a, 0xaa, 0xda, 0xcb, 0x0e, 0x99, 0xac, 0xba, 0x76,
		0x62, 0x24, 0x1d, 0x95, 0xed, 0x55, 0x93, 0x8c, 0xab, 0x6d, 0x9b, 0xf7, 0x34, 0xf9, 0xba, 0xd8,
		0x66, 0x58, 0x4f, 0x34, 0xb1, 0x83, 0xa2, 0x04, 0xcc, 0xb2, 0x9e, 0xc6, 0xf2, 0x5f, 0x4a, 0x26,
		0xaf, 0x6f, 0x0b, 0x72, 0x42, 0x31, 0x8b, 0xff, 0x99, 0x3b, 0x08, 0x97, 0x5e, 0x9b, 0x50, 0x1f,
		0x35, 0xb7, 0x85, 0xed, 0xee, 0x7d, 0xfd, 0x53, 0xde, 0x1b, 0x56, 0x18, 0x30, 0x4a, 0x7c, 0xcc,
		0x13, 0x1d, 0x92, 0xc4, 0x86, 0x00, 0x91, 0x21, 0x40, 0x5c, 0x20, 0x00, 0x4e, 0x37, 0x50, 0xe7,
		0x5e, 0x0a, 0xfc, 0xf9, 0xd0, 0x0c, 0x49, 0x70, 0x06, 0x1b, 0xde, 0xa8, 0x24, 0xb8, 0xb9, 0x79,
		0x3f, 0x06, 0x15, 0x75, 0xda, 0x47, 0x87, 0x3b, 0x1f, 0x2a, 0x95, 0xc5, 0x28, 0x94, 0xe3, 0x89,
		0x1f, 0xa9, 0xe2, 0x62, 0xd7, 0x6c, 0xc6, 0xda, 0xad, 0x46, 0x74, 0x81, 0x29, 0xe9, 0xed, 0x98,
		0x1e, 0xb2, 0x43, 0x53, 0x72, 0xe7, 0xe7, 0x90, 0x03, 0xd1, 0xdd, 0x94, 0xbe, 0x2e, 0x37, 0x30,
		0x1c, 0x61, 0x5d, 0x4e, 0xf0, 0x67, 0xb4, 0xed, 0xdd, 0x56, 0xa7, 0x5b, 0x6f, 0x1d, 0x3a, 0x3d,
		0xb7, 0x81, 0xd9, 0x08, 0x98, 0x8d, 0xf0, 0xcb, 0xb3, 0x11, 0x1e, 0xe1, 0x07, 0xa3, 0x11, 0xb2,
		0xde, 0xe2, 0xcb, 0x9a, 0xf5, 0x6e, 0xc7, 0xed, 0x88, 0x45, 0xa4, 0x12, 0xee, 0x40, 0xea, 0x48,
		0x0d, 0x95, 0x0c, 0x56, 0xb5, 0xeb, 0x67, 0x13, 0xdc, 0x54, 0x28, 0xe2, 0x07, 0x8b, 0x01, 0x09,
		0x18, 0x90, 0xf0, 0x53, 0xfe, 0x20, 0x25, 0xb0, 0xa1, 0x8c, 0xcc, 0x9b, 0xb1, 0x61, 0x4c, 0x42,
		0x0e, 0x4a, 0x6f, 0xb9, 0x1d, 0x95, 0xb0, 0x54, 0x66, 0xc3, 0xb4, 0x84, 0x9f, 0x7f, 0x86, 0xea,
		0xf6, 0xae, 0x56, 0x94, 0x5f, 0x23, 0x19, 0x68, 0xcf, 0x2f, 0x06, 0xd2, 0xeb, 0x5f, 0x7b, 0x57,
		0xca, 0x57, 0xd1, 0xbd, 0x81, 0xd9, 0x09, 0x2f, 0xdb, 0x82, 0x49, 0x0a, 0xa9, 0xfc, 0x42, 0x4c,
		0x52, 0xc8, 0x9a, 0x9b, 0x62, 0x92, 0x02, 0x26, 0x29, 0xbc, 0x31, 0x6f, 0xcd, 0x7a, 0x92, 0xc2,
		0x0c, 0xb2, 0x32, 0x34, 0x37, 0x46, 0x21, 0xb1, 0x00, 0x33, 0x14, 0x6c, 0x0b, 0x07, 0x04, 0xc2,
		0x02, 0x95, 0x32, 0x06, 0x66, 0x28, 0xd0, 0x0a, 0x1b, 0x86, 0x0a, 0x00, 0x79, 0x99, 0xa1, 0x70,
		0x6b, 0xb6, 0x9f, 0xfb, 0x49, 0x70, 0x81, 0xf0, 0x2f, 0x84, 0x7f, 0x21, 0xfc, 0x4b, 0x2e, 0x14,
		0x91, 0x0b, 0x49, 0xb4, 0x42, 0x93, 0x99, 0x10, 0x65, 0x28, 0x54, 0x19, 0x0f, 0x59, 0x89, 0x01,
		0x03, 0x39, 0xf4, 0x26, 0x7e, 0x54, 0xbc, 0x91, 0x51, 0xa0, 0xfa, 0x74, 0xd4, 0x6b, 0x9e, 0xd8,
		0x45, 0x43, 0xc0, 0xa6, 0x0c, 0x01, 0x1b, 0x32, 0xa1, 0x8e, 0x60, 0xc8, 0xa3, 0x16, 0xfa, 0xc8,
		0x86, 0x40, 0xb2, 0xa1, 0x90, 0x66, 0x48, 0x34, 0x1b, 0x1a, 0x0d, 0x87, 0x48, 0x32, 0xa1, 0x32,
		0x31, 0xc4, 0xec, 0x90, 0x97, 0x17, 0xfd, 0x9f, 0xe9, 0xae, 0x41, 0x82, 0x01, 0x93, 0x5c, 0xe0,
		0xa4, 0x18, 0x40, 0x09, 0x07, 0x52, 0xaa, 0x01, 0x95, 0x7c, 0x60, 0x25, 0x1f, 0x60, 0x69, 0x07,
		0x5a, 0x1a, 0x01, 0x97, 0x48, 0xe0, 0x25, 0x17, 0x80, 0x13, 0x83, 0x86, 0xbe, 0x37, 0x0a, 0xe9,
		0x39, 0x85, 0x85, 0x1f, 0x9d, 0x99, 0x47, 0x6c, 0xbf, 0xd1, 0x90, 0x62, 0x25, 0x1f, 0xa0, 0x29,
		0x07, 0x6a, 0x06, 0x01, 0x9b, 0x7a, 0xe0, 0x66, 0x13, 0xc0, 0xd9, 0x04, 0x72, 0x1e, 0x01, 0x9d,
		0x56, 0x60, 0x27, 0x16, 0xe0, 0x93, 0x47, 0x48, 0x46, 0x2a, 0xf6, 0x45, 0x8f, 0x27, 0xf5, 0xe4,
		0x46, 0x06, 0x9e, 0xe1, 0xb6, 0x88, 0x1f, 0x66, 0xbf, 0x35, 0x82, 0xb6, 0x39, 0x7a, 0x72, 0x43,
		0xd7, 0x1f, 0x77, 0xc7, 0x9d, 0x28, 0x50, 0x7a, 0x44, 0xd6, 0xc2, 0xd8, 0xca, 0xad, 0xb8, 0xf5,
		0xa4, 0xd5, 0x75, 0xda, 0xad, 0x7a, 0xb3, 0x40, 0xd2, 0xce, 0x6f, 0x1b, 0x54, 0x1f, 0xb0, 0x1b,
		0xc7, 0x06, 0xc2, 0x4f, 0x37, 0x79, 0xb0, 0xfb, 0x62, 0x8b, 0xe6, 0xb3, 0x45, 0x3c, 0x65, 0x62,
		0x0d, 0x25, 0x35, 0x61, 0x22, 0x27, 0xbc, 0x2f, 0xc6, 0x74, 0x12, 0x27, 0xbd, 0xc8, 0x97, 0x91,
		0x2f, 0x23, 0x5f, 0x46, 0xbe, 0x8c, 0x7c, 0x19, 0xf9, 0xb2, 0x45, 0xf9, 0xb2, 0xf6, 0x82, 0x60,
		0xfc, 0xa5, 0x48, 0x32, 0xc4, 0x2e, 0x87, 0xd9, 0x6d, 0x82, 0xa6, 0xd1, 0x9a, 0xc8, 0xf2, 0xf4,
		0x8b, 0x70, 0x1e, 0x45, 0x71, 0x62, 0xcb, 0x8a, 0x91, 0x8b, 0x71, 0x16, 0xe5, 0x0d, 0xda, 0x76,
		0x52, 0x1f, 0x6d, 0xb1, 0xea, 0x7a, 0xa8, 0x8e, 0xba, 0x60, 0x52, 0x29, 0x11, 0x54, 0x27, 0xc0,
		0xbc, 0xb8, 0x85, 0x76, 0xaa, 0xd8, 0x43, 0x79, 0xdd, 0x43, 0xa8, 0x93, 0xfd, 0xd4, 0xd7, 0x25,
		0xea, 0x64, 0x84, 0x2d, 0xa1, 0x72, 0xd1, 0x86, 0xc8, 0xd0, 0x8c, 0x15, 0xbb, 0x48, 0x0a, 0x04,
		0xbd, 0x28, 0xac, 0x52, 0x5a, 0xb4, 0xda, 0xcf, 0x5f, 0x94, 0x1e, 0xb7, 0x94, 0x94, 0x28, 0xdd,
		0x97, 0x15, 0xf4, 0x34, 0x87, 0x6e, 0xef, 0x6a, 0xce, 0xfc, 0x63, 0x6d, 0x2f, 0x7d, 0xaa, 0xbd,
		0xd3, 0xf9, 0xa7, 0x3a, 0x7f, 0xd1, 0x6b, 0xcc, 0x3e, 0xd5, 0xe3, 0xf8, 0x43, 0x35, 0x39, 0x95,
		0x83, 0x9e, 0x4f, 0xc9, 0xf7, 0x7d, 0x7d, 0x62, 0x5e, 0xcc, 0x2e, 0xef, 0x45, 0xa1, 0xcb, 0xc9,
		0x02, 0x7f, 0x55, 0xc8, 0xeb, 0x10, 0xb2, 0x0d, 0x93, 0x1d, 0xa7, 0xbe, 0x77, 0x4f, 0xb0, 0xdf,
		0x74, 0xc9, 0x2a, 0x74, 0x9b, 0xa2, 0xdb, 0xf4, 0x07, 0x78, 0x41, 0xb7, 0xe9, 0xcb, 0xf0, 0x45,
		0xb7, 0xe9, 0xaf, 0x52, 0x25, 0x74, 0x9b, 0x52, 0x63, 0xaf, 0xe8, 0x36, 0xfd, 0xbe, 0xff, 0x43,
		0xb7, 0x29, 0xfd, 0xc0, 0x49, 0x31, 0x80, 0x12, 0x0e, 0xa4, 0x54, 0x03, 0x2a, 0xf9, 0xc0, 0x4a,
		0x3e, 0xc0, 0xd2, 0x0e, 0xb4, 0x74, 0x0a, 0x56, 0x02, 0xdd, 0xa6, 0x2f, 0x1b, 0x84, 0x6e, 0xd3,
		0x57, 0x07, 0x66, 0xdc, 0x9e, 0xe5, 0x1b, 0xa8, 0x19, 0x04, 0x6c, 0xea, 0x81, 0x9b, 0x4d, 0x00,
		0x67, 0x13, 0xc8, 0x79, 0x04, 0x74, 0x5a, 0x81, 0x9d, 0x58, 0x80, 0x4f, 0x1e, 0x21, 0xfd, 0xdb,
		0xb3, 0xf1, 0x80, 0xb9, 0x59, 0x69, 0xb8, 0x48, 0x31, 0xcc, 0x0a, 0xf4, 0x9c, 0xbe, 0x09, 0x80,
		0x0c, 0x7b, 0x4e, 0x09, 0xdf, 0x59, 0x2c, 0x4f, 0x0d, 0x3d, 0x6b, 0x75, 0xce, 0x4e, 0x4f, 0x4f,
		0xda, 0x5d, 0xa7, 0x81, 0xfe, 0xd8, 0x5f, 0x03, 0x23, 0xab, 0xfe, 0x58, 0xc2, 0x38, 0x5c, 0x86,
		0xe0, 0xbe, 0x28, 0xe3, 0x86, 0x22, 0xb8, 0xca, 0x9b, 0x31, 0xd5, 0x54, 0x61, 0x54, 0x8f, 0xa2,
		0x80, 0x26, 0x5f, 0x39, 0x56, 0xda, 0xf1, 0xe5, 0x94, 0x0e, 0x13, 0xbd, 0xdc, 0x5c, 0x38, 0xf6,
		0xbe, 0x2e, 0x59, 0x58, 0xfe, 0x50, 0xab, 0xed, 0xec, 0xd6, 0x6a, 0x5b, 0xbb, 0xd5, 0xdd, 0xad,
		0xbd, 0xed, 0xed, 0xf2, 0x4e, 0x99, 0x62, 0x03, 0xd0, 0x49, 0x30, 0x90, 0x81, 0x1c, 0x1c, 0xdc,
		0x17, 0xf6, 0x85, 0x9e, 0xf8, 0x3e, 0x65, 0x13, 0xcf, 0x42, 0x19, 0x90, 0xbc, 0x2d, 0x8e, 0x9e,
		0xfc, 0xe7, 0x9e, 0x1b, 0x7a, 0xf2, 0xdf, 0x90, 0xea, 0xa0, 0xaa, 0xf8, 0x93, 0x86, 0xa1, 0xaa,
		0xf8, 0x26, 0x13, 0x51, 0x55, 0x4c, 0xc9, 0x50, 0x54, 0x15, 0xc1, 0xd4, 0x33, 0xcb, 0xa3, 0xd1,
		0x93, 0x9f, 0x52, 0x98, 0x45, 0x4f, 0xfe, 0xaf, 0x7e, 0xa1, 0x27, 0xff, 0x6d, 0x46, 0xa2, 0x27,
		0x7f, 0x5d, 0xae, 0x07, 0x3d, 0xf9, 0xa9, 0xd4, 0x30, 0xd0, 0x93, 0x8f, 0x3d, 0x84, 0x9e, 0x7c,
		0x4b, 0xac, 0x42, 0x4f, 0x3e, 0x65, 0x4b, 0xd0, 0x93, 0xff, 0x7d, 0xbb, 0xd8, 0x77, 0xb5, 0x3e,
		0xb4, 0xdd, 0xa1, 0x23, 0x3f, 0xad, 0x0e, 0x57, 0xdf, 0xbb, 0x47, 0x3f, 0x3e, 0x35, 0x0b, 0xd0,
		0x8f, 0x6f, 0xad, 0xe7, 0x42, 0x37, 0x7e, 0x0a, 0xbe, 0x0a, 0xbd, 0xf8, 0xd9, 0x83, 0x46, 0x06,
		0xc1, 0x38, 0x20, 0xd7, 0x8b, 0xff, 0xc8, 0x2a, 0xf4, 0xe2, 0xa3, 0x17, 0xff, 0x07, 0x78, 0x41,
		0x2f, 0xfe, 0xcb, 0xf0, 0x45, 0x2f, 0xfe, 0xaf, 0xd2, 0x24, 0xf4, 0xe2, 0x53, 0x63, 0xae, 0xe8,
		0xc5, 0xff, 0xbe, 0xff, 0x43, 0x2f, 0x3e, 0xfd, 0xc0, 0x49, 0x31, 0x80, 0x12, 0x0e, 0xa4, 0x54,
		0x03, 0x2a, 0xf9, 0xc0, 0x4a, 0x3e, 0xc0, 0xd2, 0x0e, 0xb4, 0x74, 0x8a, 0x55, 0x02, 0xbd, 0xf8,
		0x2f, 0x1b, 0x84, 0x5e, 0xfc, 0x57, 0x07, 0x66, 0xdc, 0x9a, 0xe5, 0x1b, 0xa8, 0x19, 0x04, 0x6c,
		0xea, 0x81, 0x9b, 0x4d, 0x00, 0x67, 0x13, 0xc8, 0x79, 0x04, 0x74, 0x5a, 0x81, 0x9d, 0x58, 0x80,
		0x4f, 0x1e, 0x21, 0x7a, 0xf1, 0x53, 0xcd, 0x81, 0xd1, 0x8b, 0xff, 0xcb, 0x00, 0x44, 0x2f, 0x7e,
		0x9a, 0x86, 0xa2, 0x17, 0xff, 0x6d, 0x60, 0x44, 0x2f, 0x7e, 0x3a, 0x66, 0xa2, 0x17, 0x1f, 0x5c,
		0x25, 0x6d, 0x4c, 0xa1, 0x17, 0xff, 0x8d, 0x16, 0xa2, 0x17, 0x7f, 0xbd, 0x26, 0xa2, 0x17, 0x9f,
		0x93, 0x4f, 0x41, 0x2f, 0xfe, 0x5b, 0x52, 0x1d, 0x54, 0x15, 0x7f, 0xd2, 0x30, 0x54, 0x15, 0xdf,
		0x64, 0x22, 0xaa, 0x8a, 0x29, 0x19, 0x8a, 0xaa, 0x22, 0x98, 0x7a, 0x66, 0x79, 0x34, 0x7a, 0xf1,
		0x53, 0x0a, 0xb3, 0xe8, 0xc5, 0xff, 0xd5, 0x2f, 0xf4, 0xe2, 0xbf, 0xcd, 0x48, 0xf4, 0xe2, 0xaf,
		0xcb, 0xf5, 0xa0, 0x17, 0x3f, 0x95, 0x1a, 0x06, 0x7a, 0xf1, 0xb1, 0x87, 0xd0, 0x8b, 0x6f, 0x89,
		0x55, 0xe8, 0xc5, 0xa7, 0x6c, 0x09, 0x7a, 0xf1, 0xbf, 0x6f, 0x17, 0xf3, 0x8e, 0xd6, 0xe5, 0xb6,
		0x3b, 0xf4, 0xe2, 0xa7, 0xd3, 0xdf, 0xea, 0x4c, 0x3f, 0x53, 0xf4, 0xe2, 0x53, 0xb3, 0x00, 0xbd,
		0xf8, 0xd6, 0x7a, 0x2e, 0xf4, 0xe2, 0xa7, 0xe0, 0xab, 0xd0, 0x8b, 0x9f, 0x3d, 0x68, 0xe4, 0xd7,
		0x5b, 0xa9, 0x43, 0x49, 0xaf, 0x1b, 0xff, 0xb1, 0x5d, 0xe8, 0xc7, 0x47, 0x3f, 0xfe, 0x0f, 0x10,
		0x83, 0x7e, 0xfc, 0x97, 0xe1, 0x8b, 0x7e, 0xfc, 0x5f, 0xa5, 0x4a, 0xe8, 0xc7, 0xa7, 0xc6, 0x5e,
		0xd1, 0x8f, 0xff, 0x7d, 0xff, 0x87, 0x7e, 0x7c, 0xfa, 0x81, 0x93, 0x62, 0x00, 0x25, 0x1c, 0x48,
		0xa9, 0x06, 0x54, 0xf2, 0x81, 0x95, 0x7c, 0x80, 0xa5, 0x1d, 0x68, 0xe9, 0x14, 0xac, 0x04, 0xfa,
		0xf1, 0x5f, 0x36, 0x08, 0xfd, 0xf8, 0xaf, 0x0e, 0xcc, 0xb8, 0x39, 0xcb, 0x37, 0x50, 0x33, 0x08,
		0xd8, 0xd4, 0x03, 0x37, 0x9b, 0x00, 0xce, 0x26, 0x90, 0xf3, 0x08, 0xe8, 0xb4, 0x02, 0x3b, 0xb1,
		0x00, 0x9f, 0x3c, 0x42, 0xf4, 0xe3, 0xa7, 0x9a, 0x03, 0xa3, 0x1f, 0xff, 0x97, 0x01, 0x88, 0x7e,
		0xfc, 0x34, 0x0d, 0x45, 0x3f, 0xfe, 0xdb, 0xc0, 0x88, 0x7e, 0xfc, 0x74, 0xcc, 0x44, 0x3f, 0x3e,
		0xb8, 0x4a, 0xda, 0x98, 0x42, 0x3f, 0xfe, 0x1b, 0x2d, 0x44, 0x3f, 0xfe, 0x7a, 0x4d, 0x44, 0x3f,
		0x3e, 0x27, 0x9f, 0x82, 0x7e, 0xfc, 0xb7, 0xa4, 0x3a, 0xa8, 0x2a, 0xfe, 0xa4, 0x61, 0xa8, 0x2a,
		0xbe, 0xc9, 0x44, 0x54, 0x15, 0x53, 0x32, 0x14, 0x55, 0x45, 0x30, 0xf5, 0xcc, 0xf2, 0x68, 0xf4,
		0xe3, 0xa7, 0x14, 0x66, 0xd1, 0x8f, 0xff, 0xab, 0x5f, 0xe8, 0xc7, 0x7f, 0x9b, 0x91, 0xe8, 0xc7,
		0x5f, 0x97, 0xeb, 0x41, 0x3f, 0x7e, 0x2a, 0x35, 0x0c, 0xf4, 0xe3, 0x63, 0x0f, 0xa1, 0x1f, 0xdf,
		0x12, 0xab, 0xd0, 0x8f, 0x4f, 0xd9, 0x12, 0xf4, 0xe3, 0x7f, 0xdf, 0x2e, 0xee, 0x5d, 0xad, 0x8f,
		0x1a, 0xef, 0xd0, 0x91, 0x9f, 0x52, 0x97, 0xeb, 0xec, 0x53, 0x45, 0x4f, 0x3e, 0x35, 0x0b, 0xd0,
		0x93, 0x6f, 0xb1, 0xf7, 0x42, 0x57, 0x7e, 0x2a, 0xfe, 0x0a, 0x7d, 0xf9, 0xd9, 0xc3, 0xe6, 0x96,
		0xc6, 0x09, 0x51, 0x52, 0x1b, 0x25, 0x71, 0x8e, 0x41, 0xe4, 0x9c, 0x11, 0x7d, 0xf8, 0xdf, 0x43,
		0x0a, 0xfa, 0xf0, 0x5f, 0x86, 0x2f, 0xfa, 0xf0, 0x7f, 0x95, 0x1e, 0xa1, 0x0f, 0x9f, 0x1a, 0x63,
		0x25, 0x73, 0x8e, 0x97, 0x78, 0x1c, 0x5f, 0x7a, 0xc3, 0x40, 0x0e, 0x29, 0x78, 0x9c, 0xc5, 0x9d,
		0xff, 0x5d, 0x02, 0xb6, 0x9c, 0xce, 0x49, 0xfc, 0xe6, 0xe6, 0x2c, 0x8b, 0x9f, 0x73, 0x64, 0xb0,
		0x39, 0x13, 0x49, 0x00, 0x05, 0xc9, 0x08, 0x52, 0x52, 0x11, 0xd0, 0x54, 0x02, 0x97, 0x03, 0x97,
		0x03, 0x97, 0x03, 0x97, 0x33, 0xf8, 0x48, 0xc8, 0x68, 0x2a, 0xdd, 0xd2, 0xba, 0x10, 0x4b, 0xab,
		0xec, 0x41, 0xac, 0xfc, 0x41, 0x2e, 0x74, 0x52, 0x0c, 0xa1, 0x84, 0x43, 0x29, 0xd5, 0x90, 0x4a,
		0x3e, 0xb4, 0x92, 0x0f, 0xb1, 0xb4, 0x43, 0x2d, 0x8d, 0x90, 0x4b, 0x24, 0xf4, 0xd2, 0x2b, 0xa7,
		0xac, 0x78, 0xac, 0xf8, 0xd8, 0x8d, 0xdc, 0x06, 0x4c, 0xf2, 0xc6, 0x0f, 0x84, 0x6c, 0x3a, 0xf5,
		0xa2, 0x48, 0x06, 0x9a, 0xdc, 0xfd, 0xe7, 0xc2, 0xef, 0x7f, 0x6f, 0x15, 0xf7, 0x2e, 0xff, 0xf3,
		0x77, 0xb9, 0xb8, 0x77, 0x39, 0x7b, 0x59, 0x8e, 0xbf, 0xfd, 0xbb, 0xf2, 0xed, 0x3f, 0x95, 0xbf,
		0xb7, 0x8a, 0xb5, 0xf9, 0xbb, 0x95, 0xed, 0xbf, 0xb7, 0x8a, 0xdb, 0x97, 0xef, 0x7f, 0xbf, 0xb8,
		0xd8, 0xfc, 0xd5, 0x7f, 0xf3, 0xfe, 0xdf, 0xd5, 0x6f, 0xa5, 0xe4, 0x1f, 0x55, 0xe6, 0xff, 0xb5,
		0xfa, 0xf7, 0x56, 0xb1, 0x72, 0xf9, 0x9e, 0x8e, 0xdb, 0xb9, 0xa4, 0x84, 0x97, 0x93, 0x8e, 0xfb,
		0x99, 0x2c, 0x68, 0xfe, 0xf7, 0x77, 0xe3, 0xb0, 0x79, 0xff, 0x5f, 0x84, 0x80, 0x83, 0x8b, 0x3a,
		0x54, 0x22, 0x66, 0x61, 0x72, 0x5b, 0x1c, 0x8c, 0xbf, 0x68, 0x7a, 0x89, 0xe2, 0xc2, 0x30, 0x64,
		0x8a, 0xc8, 0x14, 0x91, 0x29, 0x22, 0x53, 0x44, 0xa6, 0x88, 0x4c, 0x31, 0x37, 0x99, 0xe2, 0xd5,
		0x78, 0xec, 0x4b, 0x4f, 0x53, 0xcc, 0x12, 0xcb, 0x20, 0x6f, 0x04, 0x2c, 0xc0, 0x2d, 0xeb, 0xc7,
		0xf6, 0x30, 0xbf, 0x65, 0x4d, 0xa5, 0x29, 0x84, 0xe9, 0xe5, 0x6a, 0x02, 0xed, 0x1f, 0x06, 0xaf,
		0xe1, 0xfc, 0x96, 0x23, 0x07, 0x34, 0x25, 0xa8, 0xc6, 0xc9, 0x29, 0x0d, 0x8d, 0x3c, 0x3a, 0x5a,
		0x78, 0xa4, 0x35, 0xef, 0x08, 0x69, 0xdb, 0x11, 0xd2, 0xb0, 0x33, 0xb5, 0x7d, 0x89, 0xf0, 0x06,
		0xe6, 0x7c, 0xa1, 0x60, 0xf4, 0xe6, 0x25, 0x43, 0x86, 0x60, 0x86, 0x1b, 0x64, 0x1f, 0x99, 0xb3,
		0xfd, 0x8d, 0x19, 0x3b, 0x11, 0xd3, 0xce, 0x83, 0xab, 0xd3, 0x30, 0xe0, 0x2d, 0x98, 0x79, 0x89,
		0x6c, 0xdd, 0x43, 0x76, 0x9b, 0x34, 0x9b, 0xdf, 0x94, 0x91, 0x1b, 0x28, 0xc8, 0xaf, 0x51, 0xe0,
		0x15, 0x27, 0x53, 0x64, 0x5c, 0xf9, 0xd9, 0x16, 0xee, 0x0a, 0x81, 0x1c, 0xca, 0x40, 0xea, 0x7e,
		0xf6, 0x8a, 0x6c, 0x06, 0xfc, 0xdc, 0xa2, 0x0a, 0xd9, 0x3e, 0x3a, 0x2c, 0x97, 0xf7, 0xb6, 0xf7,
		0xc5, 0x49, 0xc7, 0x15, 0x6e, 0xc7, 0xed, 0x88, 0xe1, 0x38, 0x10, 0xee, 0xa9, 0xf0, 0xf4, 0x40,
		0x34, 0x26, 0x9e, 0x2f, 0x1c, 0x7d, 0xa7, 0x82, 0xb1, 0x8e, 0x99, 0xff, 0xa6, 0x10, 0xed, 0xa3,
		0xc3, 0xed, 0xea, 0x56, 0x65, 0xff, 0x42, 0x37, 0xc6, 0x37, 0x9e, 0xd2, 0xc5, 0x7f, 0xa9, 0x81,
		0x14, 0xb3, 0x5d, 0x26, 0x1a, 0x2a, 0x8c, 0x02, 0x75, 0x35, 0x99, 0xfa, 0x6f, 0xf1, 0x45, 0x45,
		0xd7, 0xa2, 0xfb, 0x65, 0x5c, 0x8c, 0x37, 0xb0, 0x70, 0x3b, 0x45, 0xb7, 0xb3, 0x29, 0xba, 0xcd,
		0xf3, 0x0b, 0x5d, 0xae, 0x6e, 0x99, 0xf0, 0x58, 0x86, 0x4f, 0x64, 0x96, 0x4f, 0x5e, 0x1e, 0xc0,
		0x66, 0x88, 0xa5, 0x53, 0x39, 0x64, 0x79, 0x74, 0x98, 0x62, 0x0e, 0x8d, 0xb6, 0xd3, 0xb8, 0xcc,
		0x7e, 0x5b, 0x86, 0x37, 0x86, 0x0a, 0x5f, 0xae, 0xa5, 0xce, 0x93, 0xb3, 0x4e, 0x9a, 0x12, 0xa3,
		0xfb, 0x5b, 0x29, 0xfe, 0x10, 0xef, 0xe6, 0x87, 0x8f, 0x45, 0x3f, 0x1c, 0x5c, 0x15, 0xa7, 0x6f,
		0x86, 0xfb, 0xee, 0xe9, 0x79, 0xad, 0xe7, 0x7c, 0x9e, 0xcd, 0x36, 0xe9, 0xb5, 0x9d, 0xfa, 0xe1,
		0xa7, 0xfa, 0x81, 0xdb, 0x74, 0xbb, 0x7f, 0xbd, 0xcb, 0xb9, 0xcb, 0x8d, 0xd1, 0x02, 0x6f, 0xfb,
		0xe0, 0x6d, 0xdf, 0x0a, 0xa7, 0xdf, 0x72, 0x50, 0xd1, 0x2a, 0x34, 0x64, 0xd8, 0x0f, 0xd4, 0xad,
		0xd1, 0x72, 0x56, 0xe2, 0x00, 0x5c, 0xdd, 0xf7, 0x27, 0x03, 0x29, 0xdc, 0xd3, 0xbb, 0x9a, 0x58,
		0x64, 0x84, 0x62, 0x39, 0x23, 0x14, 0x53, 0x94, 0x8b, 0xe8, 0x5a, 0x4e, 0x43, 0x9b, 0x98, 0x3e,
		0xc3, 0x0b, 0xad, 0x42, 0x11, 0xca, 0x48, 0x44, 0x63, 0x51, 0xae, 0x6e, 0x6d, 0x9a, 0xda, 0x02,
		0x04, 0xae, 0xc3, 0x2c, 0x7b, 0x83, 0xc1, 0xd2, 0x73, 0x35, 0x58, 0x6a, 0xa3, 0x74, 0xd7, 0xe5,
		0x91, 0x73, 0x48, 0x05, 0x6a, 0x28, 0xc9, 0xf1, 0xe6, 0x72, 0x56, 0xd5, 0x16, 0x0c, 0x95, 0x16,
		0x99, 0x95, 0x14, 0x33, 0x74, 0x86, 0x3c, 0x2a, 0x88, 0xd9, 0x38, 0xb1, 0xf5, 0x6f, 0xea, 0x0c,
		0xb6, 0xd9, 0xac, 0xfb, 0x49, 0xe9, 0x48, 0x06, 0x43, 0xaf, 0x2f, 0x8b, 0xde, 0x60, 0x10, 0xc8,
		0x30, 0x94, 0xd9, 0xcd, 0x9b, 0x7f, 0xdc, 0x87, 0xf5, 0x9c, 0x25, 0x19, 0x39, 0x9b, 0x6c, 0x85,
		0x3a, 0x32, 0xbf, 0x2b, 0x6e, 0xe2, 0x2e, 0xb8, 0xc1, 0xbb, 0xde, 0xa6, 0xc8, 0xab, 0xf1, 0xbb,
		0xda, 0xc6, 0xf9, 0xa9, 0xd9, 0xbb, 0xd6, 0x76, 0x1d, 0xae, 0x64, 0x2d, 0x5c, 0x61, 0x48, 0xc1,
		0xc9, 0xa8, 0x62, 0x93, 0x21, 0x85, 0x26, 0x63, 0xcd, 0x42, 0x26, 0x9b, 0x82, 0x08, 0x34, 0xff,
		0x50, 0xaa, 0x6f, 0x9a, 0xbd, 0x2f, 0x49, 0xb2, 0xc2, 0x69, 0xac, 0x39, 0xc7, 0xee, 0x4b, 0x3a,
		0xa6, 0x14, 0x90, 0x0a, 0x73, 0x1a, 0x6f, 0xbe, 0x10, 0xbb, 0x30, 0xc4, 0xd4, 0x0d, 0x69, 0xa3,
		0x9d, 0xaa, 0xc6, 0x3b, 0x53, 0x29, 0x74, 0xa2, 0x12, 0xea, 0x3c, 0xa5, 0xd2, 0x69, 0x4a, 0xae,
		0xb3, 0x94, 0x5c, 0x27, 0x29, 0xad, 0xce, 0xd1, 0x7c, 0x75, 0x95, 0x18, 0xef, 0x04, 0x7d, 0x5c,
		0x9b, 0x32, 0x1b, 0x41, 0x04, 0x11, 0x51, 0x20, 0x32, 0x22, 0x40, 0x99, 0x89, 0xfe, 0x98, 0xdb,
		0xee, 0x97, 0x26, 0x1f, 0x33, 0x25, 0xed, 0x9e, 0x0c, 0xb5, 0x7a, 0x4c, 0x4a, 0xf2, 0x5c, 0xe6,
		0xca, 0xbd, 0xa3, 0x5f, 0xef, 0x89, 0x25, 0xe8, 0xd7, 0xfb, 0x35, 0x53, 0x72, 0xdb, 0xaf, 0x67,
		0xf0, 0xce, 0xfd, 0x8a, 0x2d, 0xe6, 0xee, 0xe0, 0x3f, 0xfd, 0x22, 0x24, 0x28, 0x9f, 0xdc, 0x8a,
		0x3e, 0x0b, 0xa5, 0x18, 0x0f, 0xe7, 0x97, 0xa3, 0x8b, 0xf3, 0xdb, 0xd1, 0xed, 0xf1, 0x24, 0x52,
		0x7a, 0x24, 0x94, 0x16, 0xdd, 0xc3, 0xd3, 0xd2, 0xec, 0xb2, 0xf4, 0x85, 0x7e, 0xe6, 0xb6, 0x74,
		0xb7, 0x79, 0x2e, 0xca, 0xd5, 0xca, 0x26, 0x94, 0xe9, 0xbf, 0x9b, 0xba, 0x9a, 0xbe, 0x9a, 0x4f,
		0x3e, 0x8b, 0x7d, 0x36, 0x9b, 0x4d, 0x1d, 0xa4, 0x79, 0x57, 0x7f, 0xc9, 0x1b, 0x6f, 0x44, 0x8d,
		0x3e, 0xdd, 0xbd, 0x89, 0x46, 0xda, 0xe7, 0x6f, 0xbd, 0x3d, 0x73, 0x29, 0xc8, 0x98, 0x36, 0x0f,
		0xbd, 0x1b, 0x70, 0xee, 0xe2, 0xd3, 0xa9, 0x2f, 0x3e, 0x1c, 0x13, 0xca, 0x3b, 0x68, 0x9f, 0x65,
		0x47, 0xe5, 0xd1, 0x8c, 0xf5, 0x52, 0xf7, 0x8c, 0xdb, 0xea, 0x3a, 0xed, 0xa3, 0xfa, 0xa1, 0xd3,
		0xab, 0x37, 0x1a, 0x6d, 0xa7, 0xd3, 0x71, 0x3a, 0x68, 0xc5, 0x42, 0x2b, 0xd6, 0xeb, 0x5a, 0xb1,
		0x9e, 0x05, 0x13, 0x1a, 0xb1, 0xb2, 0xde, 0xfc, 0x8b, 0xee, 0x98, 0xe8, 0x7a, 0xde, 0x21, 0x93,
		0xb0, 0x0a, 0x91, 0xb0, 0x8a, 0x38, 0x95, 0x19, 0x6b, 0xff, 0xa1, 0x51, 0xe6, 0x42, 0x4f, 0xdf,
		0x52, 0x61, 0xdc, 0x2c, 0x63, 0x32, 0x15, 0x47, 0x33, 0x16, 0xf9, 0x44, 0xfb, 0xd9, 0x66, 0xac,
		0x37, 0xc3, 0x0d, 0xa9, 0x1d, 0xeb, 0xdf, 0x86, 0x86, 0xac, 0xbc, 0xa5, 0xa6, 0xb9, 0x6e, 0xc7,
		0x5a, 0x4d, 0x46, 0xd1, 0x8c, 0xf5, 0xf3, 0x8f, 0xf3, 0x01, 0x52, 0x2b, 0x3d, 0x7e, 0x06, 0xdb,
		0xb1, 0x0c, 0xf5, 0x1b, 0xa2, 0x21, 0x6b, 0x8d, 0x4f, 0x17, 0x0d, 0x59, 0xf9, 0xe1, 0xa8, 0x68,
		0xc8, 0x4a, 0x31, 0xa5, 0xcd, 0xba, 0x21, 0x2b, 0x91, 0x8b, 0x34, 0xd6, 0x93, 0x65, 0x48, 0xb0,
		0x12, 0x6d, 0x59, 0x06, 0x9e, 0x35, 0xda, 0xb2, 0xd0, 0x96, 0x45, 0x23, 0x6c, 0x18, 0xaa, 0x0b,
		0xe4, 0xa5, 0x2d, 0xcb, 0xf0, 0x20, 0x7a, 0x1a, 0x83, 0xe7, 0x0d, 0x85, 0x18, 0xe3, 0xa1, 0x86,
		0x42, 0xc8, 0x21, 0x14, 0x7a, 0xa8, 0x84, 0x20, 0x72, 0xa1, 0x88, 0x5c, 0x48, 0xa2, 0x15, 0x9a,
		0xcc, 0x84, 0x28, 0x43, 0xa1, 0xca, 0x78, 0xc8, 0x4a, 0x0c, 0x18, 0xc8, 0xa1, 0x37, 0xf1, 0xa3,
		0xe2, 0x8d, 0x8c, 0x02, 0xd5, 0x37, 0xbf, 0x5b, 0x17, 0x0e, 0xec, 0x89, 0x5d, 0x86, 0x77, 0x88,
		0xd9, 0xd0, 0x46, 0x26, 0xc4, 0x51, 0x0a, 0x75, 0x04, 0x43, 0x1e, 0xb5, 0xd0, 0x47, 0x36, 0x04,
		0x92, 0x0d, 0x85, 0x34, 0x43, 0xa2, 0xd9, 0xd0, 0x68, 0x38, 0x44, 0x92, 0x09, 0x95, 0x89, 0x21,
		0x66, 0x54, 0x9d, 0x7e, 0xe8, 0xff, 0xa8, 0xcc, 0xd7, 0x24, 0x14, 0x30, 0xc9, 0x05, 0x4e, 0x8a,
		0x01, 0x94, 0x70, 0x20, 0xa5, 0x1a, 0x50, 0xc9, 0x07, 0x56, 0xf2, 0x01, 0x96, 0x76, 0xa0, 0xa5,
		0x11, 0x70, 0x89, 0x04, 0x5e, 0x72, 0x01, 0x38, 0x31, 0x68, 0xe8, 0x7b, 0xa3, 0x90, 0x9e, 0x53,
		0x58, 0xf8, 0xd1, 0x99, 0x79, 0xc4, 0xf6, 0x9b, 0x59, 0xe5, 0x2c, 0x36, 0x01, 0x9a, 0x72, 0xa0,
		0x66, 0x10, 0xb0, 0xa9, 0x07, 0x6e, 0x36, 0x01, 0x9c, 0x4d, 0x20, 0xe7, 0x11, 0xd0, 0x69, 0x05,
		0x76, 0x62, 0x01, 0x3e, 0x79, 0x84, 0xc6, 0x95, 0xc2, 0x7e, 0xe8, 0xf1, 0xa4, 0x9e, 0xdc, 0xc8,
		0xc0, 0x33, 0xdc, 0x2f, 0xf1, 0xc3, 0xec, 0xb7, 0x46, 0xd0, 0x36, 0x47, 0x4f, 0x6e, 0xe8, 0xfa,
		0xe3, 0xee, 0xb8, 0x13, 0x05, 0x4a, 0x8f, 0xc8, 0x5a, 0x18, 0x5b, 0xb9, 0x15, 0xf7, 0xa4, 0xb4,
		0x66, 0x43, 0xc1, 0x0a, 0x24, 0xed, 0xfc, 0xb6, 0x41, 0xf5, 0x01, 0xbb, 0x71, 0x6c, 0x20, 0xfc,
		0x74, 0x93, 0x07, 0xbb, 0x2f, 0xb6, 0x68, 0x3e, 0x5b, 0xc4, 0x53, 0x26, 0xd6, 0x10, 0xda, 0x85,
		0x05, 0x22, 0x27, 0xbc, 0x2f, 0xc6, 0x74, 0x12, 0x27, 0xbd, 0xc8, 0x97, 0x91, 0x2f, 0x23, 0x5f,
		0x46, 0xbe, 0x8c, 0x7c, 0x19, 0xf9, 0xb2, 0x45, 0xf9, 0xb2, 0xf6, 0x82, 0x60, 0xfc, 0xa5, 0x48,
		0x32, 0xc4, 0x2e, 0x87, 0xd9, 0x6d, 0x82, 0xa6, 0xb5, 0x3d, 0x3d, 0x32, 0x2f, 0xc7, 0xf9, 0xd2,
		0x17, 0xe1, 0x3c, 0xea, 0x58, 0x69, 0xd2, 0x89, 0x5e, 0x6c, 0xe4, 0xb9, 0xe7, 0x4f, 0x24, 0x9d,
		0x9b, 0x0a, 0x2f, 0xda, 0x79, 0x14, 0x78, 0xfd, 0x48, 0x8d, 0x75, 0x43, 0x8d, 0x94, 0x69, 0x6d,
		0xe5, 0x9f, 0x73, 0x3d, 0x72, 0xe4, 0x45, 0xea, 0x4e, 0x1a, 0x95, 0x14, 0x66, 0x5c, 0x29, 0x11,
		0x73, 0x11, 0x6b, 0x3e, 0x5b, 0x68, 0xa7, 0x8a, 0x3d, 0x94, 0xd7, 0x3d, 0x84, 0x3a, 0xd9, 0x4f,
		0x7d, 0x5d, 0xa2, 0x4e, 0x46, 0xd8, 0x12, 0x2a, 0x17, 0x6d, 0x0c, 0x4b, 0xd7, 0xbe, 0x68, 0x17,
		0x6d, 0xdd, 0xa0, 0xa7, 0xc2, 0x2a, 0xa5, 0x45, 0xab, 0xfd, 0xfc, 0x45, 0xe9, 0x71, 0x4b, 0x49,
		0x89, 0xd2, 0x7d, 0x59, 0x41, 0x57, 0x7e, 0xe8, 0xc9, 0x34, 0xf8, 0xde, 0xe9, 0xfc, 0x53, 0x9d,
		0xbf, 0xe8, 0x35, 0x66, 0x9f, 0xea, 0x71, 0xfc, 0xa1, 0x9a, 0xd0, 0xca, 0xa5, 0xeb, 0x53, 0xf2,
		0x7d, 0x5f, 0x9f, 0x98, 0x17, 0xb3, 0xcb, 0x7b, 0x51, 0xe8, 0x72, 0xb2, 0xc0, 0x5f, 0x15, 0x72,
		0x3a, 0xe2, 0xc0, 0xa0, 0x6f, 0x28, 0x0c, 0xa4, 0xef, 0xdd, 0x13, 0xec, 0x37, 0x5d, 0xb2, 0x0a,
		0xdd, 0xa6, 0xe8, 0x36, 0xfd, 0x01, 0x5e, 0xd0, 0x6d, 0xfa, 0x32, 0x7c, 0xd1, 0x6d, 0xfa, 0xab,
		0x54, 0x09, 0xdd, 0xa6, 0xd4, 0xd8, 0x2b, 0xba, 0x4d, 0xbf, 0xef, 0xff, 0xd0, 0x6d, 0x4a, 0x3f,
		0x70, 0x52, 0x0c, 0xa0, 0x84, 0x03, 0x29, 0xd5, 0x80, 0x4a, 0x3e, 0xb0, 0x92, 0x0f, 0xb0, 0xb4,
		0x03, 0x2d, 0x9d, 0x82, 0x95, 0x40, 0xb7, 0xe9, 0xcb, 0x06, 0xa1, 0xdb, 0xf4, 0xd5, 0x81, 0x19,
		0xb7, 0x67, 0xf9, 0x06, 0x6a, 0x06, 0x01, 0x9b, 0x7a, 0xe0, 0x66, 0x13, 0xc0, 0xd9, 0x04, 0x72,
		0x1e, 0x01, 0x9d, 0x56, 0x60, 0x27, 0x16, 0xe0, 0x93, 0x47, 0x48, 0xff, 0xf6, 0x6c, 0x3c, 0x88,
		0x6e, 0x56, 0x1a, 0x2e, 0x52, 0x0c, 0xb3, 0x02, 0x3d, 0xa7, 0x6f, 0x02, 0x20, 0xc3, 0x9e, 0x53,
		0xc2, 0x77, 0x16, 0xcb, 0x53, 0x43, 0xcf, 0x5a, 0x9d, 0xb3, 0xd3, 0xd3, 0x93, 0x76, 0xd7, 0x69,
		0xa0, 0x3f, 0xf6, 0xd7, 0xc0, 0xc8, 0xaa, 0x3f, 0x96, 0x30, 0x0e, 0x97, 0x21, 0xb8, 0x2f, 0xca,
		0xb8, 0xa1, 0x08, 0xae, 0xf2, 0x66, 0x4c, 0x35, 0x55, 0x18, 0xd5, 0xa3, 0x28, 0xa0, 0xc9, 0x57,
		0x8e, 0x95, 0x76, 0x7c, 0x39, 0xa5, 0xc3, 0x44, 0x2f, 0x37, 0x17, 0x8e, 0xbd, 0xaf, 0x4b, 0x16,
		0x96, 0x3f, 0xd4, 0x6a, 0x3b, 0xbb, 0xb5, 0xda, 0xd6, 0x6e, 0x75, 0x77, 0x6b, 0x6f, 0x7b, 0xbb,
		0xbc, 0x53, 0xa6, 0xd8, 0x00, 0x74, 0x12, 0x0c, 0x64, 0x20, 0x07, 0x07, 0xf7, 0x85, 0x7d, 0xa1,
		0x27, 0xbe, 0x4f, 0xd9, 0xc4, 0xb3, 0x50, 0x06, 0x24, 0x6f, 0x8b, 0xa3, 0x27, 0xff, 0xb9, 0xe7,
		0x86, 0x9e, 0xfc, 0x37, 0xa4, 0x3a, 0xa8, 0x2a, 0xfe, 0xa4, 0x61, 0xa8, 0x2a, 0xbe, 0xc9, 0x44,
		0x54, 0x15, 0x53, 0x32, 0x14, 0x55, 0x45, 0x30, 0xf5, 0xcc, 0xf2, 0x68, 0xf4, 0xe4, 0xa7, 0x14,
		0x66, 0xd1, 0x93, 0xff, 0xab, 0x5f, 0xe8, 0xc9, 0x7f, 0x9b, 0x91, 0xe8, 0xc9, 0x5f, 0x97, 0xeb,
		0x41, 0x4f, 0x7e, 0x2a, 0x35, 0x0c, 0xf4, 0xe4, 0x63, 0x0f, 0xa1, 0x27, 0xdf, 0x12, 0xab, 0xd0,
		0x93, 0x4f, 0xd9, 0x12, 0xf4, 0xe4, 0x7f, 0xdf, 0x2e, 0xf6, 0x5d, 0xad, 0x0f, 0x6d, 0x77, 0xe8,
		0xc8, 0x4f, 0xab, 0xc3, 0xd5, 0xf7, 0xee, 0xd1, 0x8f, 0x4f, 0xcd, 0x02, 0xf4, 0xe3, 0x5b, 0xeb,
		0xb9, 0xd0, 0x8d, 0x9f, 0x82, 0xaf, 0x42, 0x2f, 0x7e, 0xf6, 0xa0, 0x91, 0x41, 0x30, 0x0e, 0xc8,
		0xf5, 0xe2, 0x3f, 0xb2, 0x0a, 0xbd, 0xf8, 0xe8, 0xc5, 0xff, 0x01, 0x5e, 0xd0, 0x8b, 0xff, 0x32,
		0x7c, 0xd1, 0x8b, 0xff, 0xab, 0x34, 0x09, 0xbd, 0xf8, 0xd4, 0x98, 0x2b, 0x7a, 0xf1, 0xbf, 0xef,
		0xff, 0xd0, 0x8b, 0x4f, 0x3f, 0x70, 0x52, 0x0c, 0xa0, 0x84, 0x03, 0x29, 0xd5, 0x80, 0x4a, 0x3e,
		0xb0, 0x92, 0x0f, 0xb0, 0xb4, 0x03, 0x2d, 0x9d, 0x62, 0x95, 0x40, 0x2f, 0xfe, 0xcb, 0x06, 0xa1,
		0x17, 0xff, 0xd5, 0x81, 0x19, 0xb7, 0x66, 0xf9, 0x06, 0x6a, 0x06, 0x01, 0x9b, 0x7a, 0xe0, 0x66,
		0x13, 0xc0, 0xd9, 0x04, 0x72, 0x1e, 0x01, 0x9d, 0x56, 0x60, 0x27, 0x16, 0xe0, 0x93, 0x47, 0x88,
		0x5e, 0xfc, 0x54, 0x73, 0x60, 0xf4, 0xe2, 0xff, 0x32, 0x00, 0xd1, 0x8b, 0x9f, 0xa6, 0xa1, 0xe8,
		0xc5, 0x7f, 0x1b, 0x18, 0xd1, 0x8b, 0x9f, 0x8e, 0x99, 0xe8, 0xc5, 0x07, 0x57, 0x49, 0x1b, 0x53,
		0xe8, 0xc5, 0x7f, 0xa3, 0x85, 0xe8, 0xc5, 0x5f, 0xaf, 0x89, 0xe8, 0xc5, 0xe7, 0xe4, 0x53, 0xd0,
		0x8b, 0xff, 0x96, 0x54, 0x07, 0x55, 0xc5, 0x9f, 0x34, 0x0c, 0x55, 0xc5, 0x37, 0x99, 0x88, 0xaa,
		0x62, 0x4a, 0x86, 0xa2, 0xaa, 0x08, 0xa6, 0x9e, 0x59, 0x1e, 0x8d, 0x5e, 0xfc, 0x94, 0xc2, 0x2c,
		0x7a, 0xf1, 0x7f, 0xf5, 0x0b, 0xbd, 0xf8, 0x6f, 0x33, 0x12, 0xbd, 0xf8, 0xeb, 0x72, 0x3d, 0xe8,
		0xc5, 0x4f, 0xa5, 0x86, 0x81, 0x5e, 0x7c, 0xec, 0x21, 0xf4, 0xe2, 0x5b, 0x62, 0x15, 0x7a, 0xf1,
		0x29, 0x5b, 0x82, 0x5e, 0xfc, 0xef, 0xdb, 0xc5, 0xbc, 0xa3, 0x75, 0xb9, 0xed, 0x0e, 0xbd, 0xf8,
		0xe9, 0xf4, 0xb7, 0x3a, 0xd3, 0xcf, 0x14, 0xbd, 0xf8, 0xd4, 0x2c, 0x40, 0x2f, 0xbe, 0xb5, 0x9e,
		0x0b, 0xbd, 0xf8, 0x29, 0xf8, 0x2a, 0xf4, 0xe2, 0x67, 0x0f, 0x1a, 0xf9, 0xf5, 0x56, 0xea, 0x50,
		0xd2, 0xeb, 0xc6, 0x7f, 0x6c, 0x17, 0xfa, 0xf1, 0xd1, 0x8f, 0xff, 0x03, 0xc4, 0xa0, 0x1f, 0xff,
		0x65, 0xf8, 0xa2, 0x1f, 0xff, 0x57, 0xa9, 0x12, 0xfa, 0xf1, 0xa9, 0xb1, 0x57, 0xf4, 0xe3, 0x7f,
		0xdf, 0xff, 0xa1, 0x1f, 0x9f, 0x7e, 0xe0, 0xa4, 0x18, 0x40, 0x09, 0x07, 0x52, 0xaa, 0x01, 0x95,
		0x7c, 0x60, 0x25, 0x1f, 0x60, 0x69, 0x07, 0x5a, 0x3a, 0x05, 0x2b, 0x81, 0x7e, 0xfc, 0x97, 0x0d,
		0x42, 0x3f, 0xfe, 0xab, 0x03, 0x33, 0x6e, 0xce, 0xf2, 0x0d, 0xd4, 0x0c, 0x02, 0x36, 0xf5, 0xc0,
		0xcd, 0x26, 0x80, 0xb3, 0x09, 0xe4, 0x3c, 0x02, 0x3a, 0xad, 0xc0, 0x4e, 0x2c, 0xc0, 0x27, 0x8f,
		0x10, 0xfd, 0xf8, 0xa9, 0xe6, 0xc0, 0xe8, 0xc7, 0xff, 0x65, 0x00, 0xa2, 0x1f, 0x3f, 0x4d, 0x43,
		0xd1, 0x8f, 0xff, 0x36, 0x30, 0xa2, 0x1f, 0x3f, 0x1d, 0x33, 0xd1, 0x8f, 0x0f, 0xae, 0x92, 0x36,
		0xa6, 0xd0, 0x8f, 0xff, 0x46, 0x0b, 0xd1, 0x8f, 0xbf, 0x5e, 0x13, 0xd1, 0x8f, 0xcf, 0xc9, 0xa7,
		0xa0, 0x1f, 0xff, 0x2d, 0xa9, 0x0e, 0xaa, 0x8a, 0x3f, 0x69, 0x18, 0xaa, 0x8a, 0x6f, 0x32, 0x11,
		0x55, 0xc5, 0x94, 0x0c, 0x45, 0x55, 0x11, 0x4c, 0x3d, 0xb3, 0x3c, 0x1a, 0xfd, 0xf8, 0x29, 0x85,
		0x59, 0xf4, 0xe3, 0xff, 0xea, 0x17, 0xfa, 0xf1, 0xdf, 0x66, 0x24, 0xfa, 0xf1, 0xd7, 0xe5, 0x7a,
		0xd0, 0x8f, 0x9f, 0x4a, 0x0d, 0x03, 0xfd, 0xf8, 0xd8, 0x43, 0xe8, 0xc7, 0xb7, 0xc4, 0x2a, 0xf4,
		0xe3, 0x53, 0xb6, 0x04, 0xfd, 0xf8, 0xdf, 0xb7, 0x8b, 0x7b, 0x57, 0xeb, 0xa3, 0xc6, 0x3b, 0x74,
		0xe4, 0xa7, 0xd4, 0xe5, 0x3a, 0xfb, 0x54, 0xd1, 0x93, 0x4f, 0xcd, 0x02, 0xf4, 0xe4, 0x5b, 0xec,
		0xbd, 0xd0, 0x95, 0x9f, 0x8a, 0xbf, 0x42, 0x5f, 0x7e, 0xf6, 0xb0, 0xb9, 0xa5, 0x71, 0x42, 0x94,
		0xd4, 0x46, 0x49, 0x9c, 0x63, 0x10, 0x39, 0x67, 0x44, 0x1f, 0xfe, 0xf7, 0x90, 0x82, 0x3e, 0xfc,
		0x97, 0xe1, 0x8b, 0x3e, 0xfc, 0x5f, 0xa5, 0x47, 0xe8, 0xc3, 0xa7, 0xc6, 0x58, 0xc9, 0x9c, 0xe3,
		0x25, 0x1e, 0xc7, 0x97, 0xde, 0x30, 0x90, 0x43, 0x0a, 0x1e, 0x67, 0x71, 0xe7, 0x7f, 0x97, 0x80,
		0x2d, 0xa7, 0x73, 0x12, 0xbf, 0xb9, 0x39, 0xcb, 0xe2, 0xe7, 0x1c, 0x19, 0x6c, 0xce, 0x44, 0x12,
		0x40, 0x41, 0x32, 0x82, 0x94, 0x54, 0x04, 0x34, 0x95, 0xc0, 0xe5, 0xc0, 0xe5, 0xc0, 0xe5, 0xc0,
		0xe5, 0x0c, 0x3e, 0x12, 0x32, 0x9a, 0x4a, 0xb7, 0xb4, 0x2e, 0xc4, 0xd2, 0x2a, 0x7b, 0x10, 0x2b,
		0x7f, 0x90, 0x0b, 0x9d, 0x14, 0x43, 0x28, 0xe1, 0x50, 0x4a, 0x35, 0xa4, 0x92, 0x0f, 0xad, 0xe4,
		0x43, 0x2c, 0xed, 0x50, 0x4b, 0x23, 0xe4, 0x12, 0x09, 0xbd, 0xf4, 0xca, 0x29, 0x2b, 0x1e, 0x2b,
		0x3e, 0x76, 0x23, 0xb7, 0x01, 0x93, 0xbc, 0xf1, 0x03, 0x21, 0x9b, 0x4e, 0xbd, 0x28, 0x92, 0x81,
		0x26, 0x77, 0xff, 0xb9, 0xf0, 0xfb, 0xdf, 0x5b, 0xc5, 0xbd, 0xcb, 0xff, 0xfc, 0x5d, 0x2e, 0xee,
		0x5d, 0xce, 0x5e, 0x96, 0xe3, 0x6f, 0xff, 0xae, 0x7c, 0xfb, 0x4f, 0xe5, 0xef, 0xad, 0x62, 0x6d,
		0xfe, 0x6e, 0x65, 0xfb, 0xef, 0xad, 0xe2, 0xf6, 0xe5, 0xfb, 0xdf, 0x2f, 0x2e, 0x36, 0x7f, 0xf5,
		0xdf, 0xbc, 0xff, 0x77, 0xf5, 0x5b, 0x29, 0xf9, 0x47, 0x95, 0xf9, 0x7f, 0xad, 0xfe, 0xbd, 0x55,
		0xac, 0x5c, 0xbe, 0xa7, 0xe3, 0x76, 0x2e, 0x29, 0xe1, 0xe5, 0xa4, 0xe3, 0x7e, 0x26, 0x0b, 0x9a,
		0xff, 0xfd, 0xdd, 0x38, 0x6c, 0xde, 0xff, 0x17, 0x21, 0xe0, 0xe0, 0xa2, 0x0e, 0x95, 0x88, 0x59,
		0x98, 0xdc, 0x16, 0x07, 0xe3, 0x2f, 0x9a, 0x5e, 0xa2, 0xb8, 0x30, 0x0c, 0x99, 0x22, 0x32, 0x45,
		0x64, 0x8a, 0xc8, 0x14, 0x91, 0x29, 0x22, 0x53, 0xcc, 0x4d, 0xa6, 0x78, 0x35, 0x1e, 0xfb, 0xd2,
		0xd3, 0x14, 0xb3, 0xc4, 0x32, 0xc8, 0x1b, 0x01, 0x0b, 0x70, 0xcb, 0xfa, 0xb1, 0x3d, 0xcc, 0x6f,
		0x59, 0x53, 0x69, 0x0a, 0x61, 0x7a, 0xb9, 0x9a, 0x40, 0xfb, 0x87, 0xc1, 0x6b, 0x38, 0xbf, 0xe5,
		0xc8, 0x01, 0x4d, 0x09, 0xaa, 0x71, 0x72, 0x4a, 0x43, 0x23, 0x8f, 0x8e, 0x16, 0x1e, 0x69, 0xcd,
		0x3b, 0x42, 0xda, 0x76, 0x84, 0x34, 0xec, 0x4c, 0x6d, 0x5f, 0x22, 0xbc, 0x81, 0x39, 0x5f, 0x28,
		0x18, 0xbd, 0x79, 0xc9, 0x90, 0x21, 0x98, 0xe1, 0x06, 0xd9, 0x47, 0xe6, 0x6c, 0x7f, 0x63, 0xc6,
		0x4e, 0xc4, 0xb4, 0xf3, 0xe0, 0xea, 0x34, 0x0c, 0x78, 0x0b, 0x66, 0x5e, 0x22, 0x5b, 0xf7, 0x90,
		0xdd, 0x26, 0xcd, 0xe6, 0x37, 0x65, 0xe4, 0x06, 0x0a, 0xf2, 0x6b, 0x14, 0x78, 0xc5, 0xc9, 0x14,
		0x19, 0x57, 0x7e, 0xb6, 0x85, 0xbb, 0x42, 0x20, 0x87, 0x32, 0x90, 0xba, 0x9f, 0xbd, 0x22, 0x9b,
		0x01, 0x3f, 0xb7, 0xa8, 0x42, 0xb6, 0x8f, 0x0e, 0xcb, 0xe5, 0xbd, 0xed, 0x7d, 0x71, 0xd2, 0x71,
		0x85, 0xdb, 0x71, 0x3b, 0x62, 0x38, 0x0e, 0x84, 0x7b, 0x2a, 0x3c, 0x3d, 0x10, 0x8d, 0x89, 0xe7,
		0x0b, 0x47, 0xdf, 0xa9, 0x60, 0xac, 0x63, 0xe6, 0xbf, 0x29, 0xda, 0x47, 0x87, 0xdb, 0xd5, 0xad,
		0xca, 0xfe, 0x85, 0x6e, 0x8c, 0x6f, 0x3c, 0xa5, 0x8b, 0xff, 0x52, 0x03, 0x29, 0x66, 0x9b, 0x4c,
		0x34, 0x54, 0x18, 0x05, 0xea, 0x6a, 0x32, 0x75, 0xdf, 0xe2, 0x8b, 0x8a, 0xae, 0x45, 0xf7, 0xcb,
		0xb8, 0x18, 0xef, 0x5f, 0xe1, 0x76, 0x8a, 0x6e, 0x67, 0x53, 0x74, 0x9b, 0xe7, 0x17, 0xba, 0x5c,
		0xf9, 0x60, 0xc2, 0x61, 0x19, 0x3e, 0x90, 0x59, 0x3e, 0x78, 0x79, 0xc0, 0x9a, 0x21, 0x92, 0x4e,
		0xe5, 0x8c, 0xe5, 0xd1, 0x59, 0x8a, 0x31, 0x30, 0xda, 0x4e, 0xe2, 0x32, 0xfb, 0x6d, 0x19, 0xde,
		0x17, 0x2a, 0x7c, 0xb9, 0x96, 0x3a, 0x4f, 0xae, 0x3a, 0x69, 0x49, 0x8c, 0xee, 0x6f, 0xa5, 0xf8,
		0x43, 0xbc, 0x9b, 0x1f, 0x3d, 0x16, 0xfd, 0x70, 0x70, 0x55, 0x9c, 0xbe, 0x19, 0xee, 0xbb, 0xa7,
		0xe7, 0xb5, 0xde, 0x62, 0xb2, 0x49, 0xaf, 0xed, 0xd4, 0x0f, 0x3f, 0xd5, 0x0f, 0xdc, 0xa6, 0xdb,
		0xfd, 0xeb, 0x5d, 0xce, 0x3d, 0x6e, 0x8c, 0x16, 0x38, 0xdb, 0x07, 0x67, 0xfb, 0x56, 0x38, 0xfd,
		0x96, 0x83, 0x7a, 0x56, 0xa1, 0x21, 0xc3, 0x7e, 0xa0, 0x6e, 0x8d, 0x16, 0xb3, 0x12, 0x07, 0xe0,
		0xea, 0xbe, 0x3f, 0x19, 0x48, 0xe1, 0x9e, 0xde, 0xd5, 0xc4, 0x22, 0x1f, 0x14, 0xcb, 0xf9, 0xe0,
		0x34, 0xa2, 0x89, 0x29, 0xd2, 0x45, 0x74, 0x2d, 0x67, 0xe1, 0x2d, 0x7e, 0xba, 0x2a, 0x14, 0xe1,
		0xad, 0xec, 0xab, 0xa1, 0x92, 0x03, 0xe1, 0x85, 0xa2, 0x5c, 0xf9, 0xb0, 0x69, 0x6a, 0x33, 0x10,
		0xb8, 0x16, 0xb3, 0xec, 0x17, 0x06, 0x4b, 0x4f, 0xd8, 0x60, 0xc9, 0x8d, 0xd2, 0x9d, 0x97, 0x47,
		0x6e, 0x22, 0x65, 0xd0, 0xa1, 0x48, 0xc7, 0x9b, 0xdf, 0x59, 0x55, 0x6d, 0x30, 0x54, 0x6c, 0x64,
		0x56, 0x64, 0xcc, 0xd0, 0x2d, 0xf2, 0xa8, 0x29, 0x66, 0xe3, 0xc4, 0xd6, 0xbf, 0xa9, 0x33, 0xd8,
		0x66, 0xb3, 0x7e, 0xa8, 0x30, 0xf0, 0x33, 0x9c, 0x39, 0xff, 0xb8, 0x17, 0x6b, 0xf6, 0xbb, 0x33,
		0x72, 0x28, 0xd9, 0xca, 0x73, 0x64, 0x7e, 0x43, 0xdc, 0xc4, 0x0d, 0x70, 0x83, 0x37, 0xbc, 0x4d,
		0x51, 0x55, 0xe3, 0x37, 0xb4, 0x8d, 0xb3, 0x51, 0xb3, 0x37, 0xac, 0xed, 0x3a, 0x52, 0xc9, 0x5a,
		0xae, 0xe2, 0xc1, 0xed, 0x66, 0xbf, 0x71, 0x56, 0x3c, 0x7f, 0xd6, 0x1b, 0xc7, 0x8c, 0x3e, 0x93,
		0xb1, 0x56, 0x21, 0x93, 0x2d, 0x41, 0x04, 0x5a, 0x7f, 0x28, 0xd5, 0x37, 0xcd, 0xde, 0x96, 0x24,
		0x59, 0xe1, 0x34, 0xd6, 0x9a, 0x63, 0xf7, 0x15, 0x1d, 0x53, 0xfa, 0x47, 0x85, 0x45, 0xc6, 0x5b,
		0xd4, 0x93, 0x9b, 0x2b, 0x19, 0x98, 0x2f, 0xc8, 0x3e, 0x35, 0xc8, 0xd4, 0x7d, 0x69, 0xa3, 0x7d,
		0xab, 0xc6, 0xfb, 0x54, 0x29, 0xf4, 0xa5, 0x12, 0xea, 0x43, 0xa5, 0xd2, 0x77, 0x4a, 0xae, 0xcf,
		0x94, 0x5c, 0x5f, 0x29, 0xad, 0x3e, 0xd2, 0x7c, 0xf5, 0x98, 0x18, 0xef, 0x0b, 0x25, 0x24, 0xc4,
		0x4c, 0x41, 0x80, 0x79, 0x55, 0x78, 0xf9, 0x69, 0x70, 0xcd, 0xcb, 0xc9, 0x91, 0x91, 0x9b, 0xbc,
		0x26, 0x95, 0x96, 0x49, 0x28, 0x2c, 0x1b, 0x56, 0x56, 0x06, 0x89, 0x02, 0x89, 0x02, 0x89, 0x02,
		0x89, 0xe2, 0x45, 0xa2, 0x4c, 0x2b, 0x21, 0x17, 0x86, 0xbe, 0x97, 0xe1, 0xc1, 0xe2, 0x0f, 0xfd,
		0xd6, 0xcc, 0x1c, 0x8c, 0x7b, 0xc2, 0x88, 0x00, 0xf2, 0x01, 0x8e, 0x5a, 0xa0, 0x23, 0x1b, 0xf0,
		0xc8, 0x06, 0x3e, 0x9a, 0x01, 0xd0, 0x6c, 0x20, 0x34, 0x1c, 0x10, 0xe9, 0x54, 0x17, 0x56, 0x3c,
		0x8e, 0xd4, 0x93, 0x1b, 0x19, 0x78, 0x86, 0xaf, 0xb9, 0xae, 0x64, 0x5b, 0x35, 0x02, 0xb6, 0x38,
		0x7a, 0x72, 0x43, 0xc7, 0xff, 0x75, 0xc7, 0x9d, 0x28, 0x50, 0x7a, 0x44, 0x4b, 0xb4, 0x6c, 0x6b,
		0x8a, 0xa1, 0xd6, 0xd9, 0xf1, 0x81, 0xd3, 0x76, 0x1a, 0x05, 0x28, 0xcc, 0x3d, 0x7a, 0x60, 0x6e,
		0xec, 0x7b, 0x29, 0x49, 0xcc, 0x2d, 0x1e, 0xd4, 0xbe, 0xd8, 0x82, 0x94, 0x1b, 0xe2, 0x11, 0x0d,
		0x31, 0xa3, 0xc4, 0x1a, 0x32, 0xa2, 0x46, 0x0f, 0x16, 0x11, 0x16, 0x37, 0x4a, 0x8c, 0xa4, 0x23,
		0x72, 0xb4, 0x6a, 0x92, 0x71, 0xb1, 0x23, 0xf3, 0xfb, 0xdc, 0xe4, 0xa8, 0x44, 0x2a, 0x37, 0x23,
		0x56, 0x68, 0x27, 0x8d, 0x1b, 0x12, 0xa8, 0x8d, 0xa0, 0x36, 0x82, 0xda, 0x08, 0x6a, 0x23, 0xa8,
		0x8d, 0xa0, 0x36, 0xf2, 0x8c, 0xc7, 0x99, 0x28, 0x1d, 0x55, 0x2b, 0x84, 0xca, 0x22, 0x14, 0x06,
		0x61, 0xb7, 0x3d, 0x3d, 0x92, 0x64, 0xc6, 0xec, 0x10, 0x4a, 0xae, 0x8f, 0x95, 0xa6, 0x37, 0xd3,
		0xe1, 0xdc, 0xf3, 0x27, 0x92, 0xce, 0xa8, 0x90, 0xc4, 0xae, 0xa3, 0xc0, 0xeb, 0x47, 0x6a, 0xac,
		0x1b, 0x6a, 0xa4, 0xa8, 0x64, 0x7b, 0x8f, 0x7d, 0x80, 0x1c, 0x79, 0x91, 0xba, 0x93, 0x24, 0x92,
		0x17, 0x42, 0x6e, 0xfa, 0x69, 0x7a, 0x4c, 0x17, 0xf2, 0xb5, 0xca, 0x5e, 0x6d, 0x6f, 0x67, 0xb7,
		0xb2, 0xb7, 0x0d, 0xec, 0xdb, 0x82, 0x7d, 0x14, 0x2d, 0xe3, 0xaf, 0x4b, 0x94, 0x52, 0xb2, 0x2f,
		0xa5, 0x24, 0x3a, 0x08, 0x43, 0xaf, 0x2f, 0x8b, 0xde, 0x60, 0x10, 0xc8, 0x90, 0xd0, 0x1d, 0x93,
		0x17, 0xec, 0x43, 0x61, 0x05, 0x85, 0x15, 0x14, 0x56, 0x50, 0x58, 0x41, 0x61, 0x05, 0x85, 0x15,
		0x32, 0x1e, 0x27, 0x8e, 0x55, 0x34, 0x22, 0x94, 0x20, 0x36, 0x05, 0x9b, 0xdc, 0xf4, 0xeb, 0xcc,
		0xa6, 0x5e, 0x9b, 0x77, 0x13, 0x97, 0x14, 0x1e, 0x3f, 0xc5, 0x61, 0xd6, 0x19, 0x0e, 0xb1, 0xa6,
		0x30, 0xab, 0x1a, 0xe9, 0x95, 0xa1, 0xf4, 0x4a, 0x4b, 0x35, 0xba, 0xbe, 0x1a, 0x07, 0x44, 0xb3,
		0xab, 0x15, 0xf3, 0x90, 0x5c, 0x21, 0xb9, 0x42, 0x72, 0x85, 0xe4, 0x0a, 0xc9, 0x15, 0x92, 0x2b,
		0x24, 0x57, 0x48, 0xae, 0x90, 0x5c, 0x21, 0xb9, 0x42, 0x72, 0x85, 0xe4, 0x8a, 0x5a, 0x72, 0x75,
		0x1b, 0x6a, 0x72, 0x37, 0x80, 0x97, 0x6c, 0x42, 0x1a, 0x85, 0x34, 0x0a, 0x69, 0x14, 0xd2, 0x28,
		0xa4, 0x51, 0x48, 0xa3, 0xc8, 0x78, 0x9c, 0x89, 0xd2, 0xd1, 0x07, 0x42, 0xf9, 0xd3, 0x36, 0xee,
		0xfe, 0x3e, 0xf9, 0xc2, 0xdd, 0xdf, 0xef, 0x1b, 0x85, 0xbb, 0xbf, 0xaf, 0x75, 0x01, 0xb8, 0xfb,
		0xfb, 0x13, 0x90, 0xa7, 0x7c, 0xf7, 0xb7, 0xb2, 0x8d, 0x4b, 0xbf, 0xd6, 0x80, 0x1e, 0x97, 0x7e,
		0x51, 0x38, 0x31, 0xb4, 0x29, 0xc2, 0xc0, 0x1f, 0x15, 0xef, 0xe6, 0x4e, 0x85, 0x48, 0xe1, 0x64,
		0xc9, 0x26, 0x14, 0x4e, 0x50, 0x38, 0x41, 0xe1, 0x04, 0x85, 0x13, 0x14, 0x4e, 0x50, 0x38, 0x21,
		0x55, 0x38, 0x41, 0xd7, 0x34, 0x2a, 0x27, 0xa8, 0x9c, 0x20, 0x89, 0x44, 0xe5, 0x84, 0x5b, 0xe5,
		0x04, 0x5d, 0xd3, 0x28, 0xa0, 0xa0, 0x80, 0x62, 0x21, 0x51, 0x84, 0xd4, 0xe3, 0x0f, 0xbd, 0x32,
		0xa4, 0x1e, 0xdf, 0x62, 0x12, 0xa4, 0x1e, 0xcd, 0x96, 0x2a, 0xef, 0xc3, 0x48, 0xde, 0x14, 0xd5,
		0x80, 0x50, 0xa5, 0x32, 0x31, 0x09, 0x85, 0x4a, 0x14, 0x2a, 0x7f, 0x00, 0x16, 0x14, 0x2a, 0x5f,
		0x86, 0x2f, 0x0a, 0x95, 0xbf, 0x68, 0x18, 0x0a, 0x95, 0xe4, 0xf8, 0x27, 0xbd, 0x42, 0x25, 0x95,
		0xf0, 0x24, 0xd0, 0x25, 0xf3, 0x03, 0x83, 0xfe, 0xde, 0x2a, 0xee, 0xd5, 0x8b, 0x47, 0x5e, 0x71,
		0x78, 0xf9, 0xef, 0xda, 0xb7, 0x8b, 0x8b, 0xcd, 0x1f, 0xbc, 0x81, 0x6e, 0x17, 0xc2, 0xdd, 0x2e,
		0xbf, 0xfa, 0x30, 0xd1, 0xb3, 0x82, 0xa9, 0x85, 0xd9, 0x90, 0x06, 0xad, 0xc7, 0xd1, 0x6c, 0x12,
		0x92, 0xd1, 0xe1, 0x85, 0x61, 0xff, 0x5a, 0xde, 0x78, 0xb7, 0xf3, 0xb9, 0xc7, 0xa5, 0xf1, 0xad,
		0xd4, 0xfd, 0x38, 0x73, 0x28, 0x6a, 0x19, 0x7d, 0x19, 0x07, 0xff, 0x14, 0x17, 0xea, 0xf9, 0xa5,
		0xa7, 0x6f, 0x84, 0x2b, 0xef, 0x94, 0x6e, 0x83, 0x71, 0x34, 0xee, 0x8f, 0xfd, 0x30, 0x79, 0x55,
		0x9a, 0xd2, 0xa1, 0x92, 0x2f, 0xef, 0xa4, 0x3f, 0xff, 0x56, 0xf2, 0x95, 0xfe, 0xa7, 0x18, 0x8f,
		0xd9, 0x2d, 0x0e, 0xbc, 0xc8, 0xbb, 0xf2, 0x42, 0x59, 0xf2, 0xc3, 0xdb, 0x52, 0xe4, 0xdf, 0x85,
		0xd3, 0x3f, 0x4a, 0x71, 0x53, 0x69, 0x18, 0xf8, 0xa3, 0xf0, 0xe1, 0x65, 0xc9, 0xe4, 0x5c, 0xde,
		0xd9, 0x27, 0x15, 0x05, 0x93, 0x7e, 0xa4, 0xe7, 0xf1, 0xfc, 0x24, 0xf9, 0xa0, 0x5a, 0xb3, 0x0f,
		0xc1, 0x9d, 0x7f, 0x06, 0xbd, 0x27, 0x7f, 0x0f, 0x9f, 0xbe, 0xd1, 0x3b, 0x5d, 0x7c, 0x48, 0xc9,
		0xab, 0x9e, 0x1b, 0xaa, 0xb0, 0xd7, 0x8c, 0x3f, 0xa4, 0xd9, 0xb7, 0x5e, 0x53, 0xe9, 0x7f, 0x3a,
		0xd3, 0x25, 0x37, 0xe6, 0x1f, 0x51, 0xaf, 0x19, 0xde, 0xf6, 0xba, 0xfe, 0x5d, 0x38, 0xfd, 0xa3,
		0xe7, 0xde, 0xde, 0xd5, 0x3a, 0xd3, 0x4f, 0x28, 0x79, 0xd5, 0x8b, 0x7f, 0x3a, 0x37, 0x03, 0xaa,
		0x7f, 0xb3, 0xd8, 0x49, 0x4c, 0x73, 0x30, 0xf3, 0x73, 0x2b, 0xcc, 0x16, 0x71, 0xcd, 0x17, 0x6d,
		0x49, 0x16, 0x69, 0x09, 0x14, 0x65, 0x09, 0x14, 0x61, 0xb3, 0xde, 0x8f, 0x86, 0x83, 0x35, 0x9b,
		0x20, 0x6d, 0x20, 0x3c, 0x53, 0x0f, 0xcb, 0xd9, 0x06, 0xe4, 0xec, 0xc2, 0x62, 0x36, 0xbf, 0x29,
		0xa3, 0x8d, 0x5e, 0x90, 0x5f, 0xa3, 0xc0, 0x2b, 0x4e, 0xa6, 0x50, 0xb8, 0xf2, 0xb3, 0xad, 0x1c,
		0x15, 0x02, 0x39, 0x94, 0x81, 0xd4, 0xfd, 0xec, 0x6f, 0x6c, 0x19, 0xf0, 0x64, 0x8b, 0x72, 0x58,
		0xfb, 0xe8, 0x70, 0xbb, 0xba, 0xb5, 0xbb, 0x2f, 0xdc, 0x4e, 0xd1, 0xed, 0x08, 0xe7, 0x6b, 0x24,
		0x75, 0xa8, 0xc6, 0x3a, 0x14, 0x4a, 0x8b, 0xce, 0xe4, 0xf6, 0x76, 0x1c, 0x44, 0x62, 0x3c, 0x14,
		0x1f, 0xa5, 0x96, 0x81, 0xe7, 0xab, 0xff, 0x93, 0x83, 0x0b, 0x7d, 0x3c, 0xf1, 0x23, 0x55, 0x5c,
		0xec, 0x4e, 0xd1, 0xf4, 0xae, 0xa4, 0x2f, 0x3a, 0x5f, 0x54, 0xd4, 0xbf, 0x56, 0x7a, 0x24, 0x7e,
		0xff, 0x78, 0x7c, 0xda, 0xec, 0xbc, 0xdf, 0x14, 0xdd, 0xe6, 0xb9, 0x28, 0x57, 0x3f, 0x6c, 0x9a,
		0x70, 0x47, 0x86, 0xcb, 0xf9, 0xcb, 0xe5, 0xfb, 0x07, 0x60, 0x19, 0xca, 0x71, 0xa9, 0x54, 0xec,
		0x1f, 0x55, 0xe8, 0xb3, 0x41, 0x9e, 0xed, 0x09, 0xd1, 0x6f, 0x16, 0xd6, 0x36, 0x0b, 0x5f, 0xae,
		0xa5, 0xce, 0x93, 0x13, 0xde, 0xdc, 0x9c, 0x55, 0x55, 0x4a, 0xd1, 0xfd, 0xad, 0x14, 0x7f, 0x88,
		0x77, 0xf3, 0xd3, 0xab, 0xa2, 0x1f, 0x0e, 0xae, 0x8a, 0xd3, 0x37, 0xc3, 0x7d, 0xf7, 0xf4, 0xfc,
		0xff, 0xb3, 0xf7, 0x86, 0x4d, 0x89, 0x6b, 0xcb, 0xf7, 0xf0, 0xfb, 0xf3, 0x29, 0x52, 0xd4, 0xad,
		0x9a, 0x99, 0x2a, 0x23, 0x82, 0x88, 0x23, 0x55, 0xf7, 0x45, 0x94, 0x38, 0x93, 0x7b, 0x10, 0x2d,
		0x40, 0xef, 0x9c, 0xdf, 0xd1, 0x9b, 0x8a, 0xb0, 0xc1, 0xfc, 0x4f, 0xdc, 0x50, 0x49, 0x70, 0xf4,
		0x39, 0xc7, 0xef, 0xfe, 0x54, 0x02, 0x44, 0x14, 0x51, 0x47, 0x21, 0xe9, 0xde, 0x59, 0xbc, 0x18,
		0x19, 0x46, 0xc7, 0x4e, 0xb2, 0x76, 0xf7, 0xea, 0xde, 0xdd, 0x6b, 0x57, 0xec, 0x76, 0xab, 0xf1,
		0xed, 0x53, 0xce, 0xbd, 0x69, 0x0c, 0x0e, 0x38, 0xd2, 0x07, 0x47, 0xfa, 0x8b, 0xe8, 0x49, 0xdf,
		0x23, 0x66, 0x80, 0xd7, 0xba, 0x08, 0xba, 0xbe, 0x3b, 0xca, 0xb4, 0xac, 0x9b, 0x2c, 0x6f, 0x4b,
		0x76, 0xbd, 0x71, 0x4f, 0x68, 0xe1, 0x95, 0xd0, 0xac, 0x93, 0x9b, 0x8a, 0x16, 0x3d, 0x88, 0x38,
		0x44, 0x0d, 0xa5, 0x77, 0xa7, 0x45, 0x80, 0x8e, 0xff, 0x2d, 0xfa, 0xc4, 0x0d, 0xb4, 0xe8, 0x89,
		0x9d, 0xcb, 0x8c, 0x78, 0x93, 0x46, 0xa4, 0x15, 0x62, 0x7e, 0xc5, 0xf7, 0xe6, 0x1e, 0x66, 0x86,
		0x75, 0x67, 0x4a, 0x7d, 0x0f, 0x8f, 0x1c, 0xc0, 0xfb, 0xf1, 0x85, 0x22, 0x35, 0x6f, 0x4e, 0xa6,
		0x54, 0xee, 0x9f, 0x51, 0x71, 0x8f, 0x78, 0x51, 0x2f, 0x45, 0x8f, 0x47, 0xb4, 0x84, 0x97, 0x8e,
		0x97, 0x5a, 0xff, 0xaa, 0x4d, 0x61, 0x1d, 0x4d, 0x64, 0x80, 0x43, 0xa1, 0xfb, 0xc3, 0x71, 0x28,
		0xfc, 0x34, 0xfb, 0x82, 0x1f, 0x2b, 0x11, 0x3f, 0x32, 0x21, 0x25, 0xff, 0x31, 0x6b, 0xa6, 0x4a,
		0xe9, 0xd7, 0xa5, 0xdd, 0xd7, 0x9b, 0x45, 0xff, 0x6e, 0x86, 0x7d, 0xba, 0x59, 0x91, 0xd0, 0xcc,
		0xfb, 0x6e, 0x33, 0xe7, 0x99, 0xd9, 0xf6, 0xd1, 0xaa, 0xb5, 0x9f, 0x51, 0x77, 0xfd, 0x94, 0xc9,
		0x4c, 0xdc, 0x7c, 0x92, 0xfa, 0xa2, 0x49, 0xba, 0x6b, 0x33, 0x68, 0x0e, 0x4a, 0xd9, 0xf1, 0x67,
		0x16, 0x00, 0xb2, 0x0c, 0x04, 0x04, 0x02, 0x02, 0x95, 0xea, 0x04, 0x99, 0xc1, 0x0c, 0x9a, 0xd5,
		0xc8, 0xcc, 0x06, 0x2f, 0xd4, 0xee, 0x44, 0x4b, 0x3b, 0x90, 0x24, 0xbf, 0x38, 0xfd, 0x4c, 0x62,
		0xa9, 0xcf, 0x49, 0x3b, 0xa3, 0x58, 0x16, 0x68, 0x32, 0x1a, 0xe4, 0xcb, 0x7c, 0x92, 0x90, 0xc2,
		0x04, 0x21, 0xa1, 0xc9, 0x41, 0x2a, 0x13, 0x83, 0xe4, 0x26, 0x05, 0xc9, 0x4d, 0x08, 0xd2, 0x9a,
		0x0c, 0xcc, 0xd7, 0x7c, 0x45, 0xe6, 0x13, 0x80, 0xd4, 0x8e, 0xc8, 0xa2, 0x30, 0xf4, 0x47, 0x66,
		0xd8, 0x2f, 0x07, 0x47, 0x61, 0x5d, 0x64, 0xf9, 0x98, 0x29, 0x0d, 0x03, 0xe6, 0xe4, 0xc8, 0xab,
		0x8b, 0x5c, 0xb9, 0x77, 0x12, 0x02, 0x43, 0x74, 0x84, 0x85, 0x48, 0x0b, 0x0a, 0x11, 0x12, 0x12,
		0x22, 0x24, 0x20, 0x94, 0xd5, 0xca, 0xc9, 0xb0, 0xd5, 0x7d, 0x31, 0xc9, 0xcf, 0xac, 0xf5, 0xfd,
		0xe9, 0x8b, 0x90, 0x52, 0xc4, 0xa4, 0x41, 0x79, 0xe7, 0x99, 0x06, 0xe5, 0xfe, 0xd0, 0xd7, 0x3a,
		0xbe, 0xd3, 0xef, 0xbb, 0x5d, 0xcd, 0x94, 0x03, 0x57, 0x0a, 0xe1, 0xbb, 0x72, 0x10, 0xb7, 0x1d,
		0x9f, 0xcb, 0xd2, 0x76, 0x65, 0x13, 0x82, 0x36, 0x2f, 0xa6, 0xa9, 0x59, 0x77, 0xc4, 0x93, 0xcf,
		0x58, 0x9f, 0xcd, 0x5c, 0x3f, 0x04, 0xc8, 0xbc, 0x0b, 0xe1, 0xe4, 0x8d, 0x0f, 0xa2, 0xfe, 0xbe,
		0xda, 0x75, 0x88, 0xc9, 0xd3, 0xe7, 0x9b, 0xd4, 0xe6, 0x3b, 0x7d, 0x32, 0xd3, 0x86, 0xa0, 0xd7,
		0xb9, 0xd6, 0x11, 0xad, 0xf8, 0xae, 0x58, 0xbd, 0x2c, 0xf4, 0x20, 0x30, 0x7e, 0xca, 0x8e, 0x93,
		0x63, 0xe8, 0x69, 0xd9, 0xd8, 0x4a, 0xc7, 0xb4, 0x5b, 0xc7, 0xa7, 0x1d, 0xb3, 0x65, 0x5b, 0x75,
		0x0c, 0x3f, 0x61, 0xf8, 0xe9, 0x7d, 0xc3, 0x4f, 0x8f, 0x51, 0x84, 0x21, 0xa8, 0xb4, 0x97, 0xfb,
		0xc2, 0x90, 0x4a, 0x38, 0xcd, 0x57, 0xc4, 0x43, 0xbe, 0xa2, 0x4d, 0x98, 0x84, 0x66, 0xd5, 0x93,
		0xe9, 0x95, 0x73, 0xf9, 0xdc, 0xf8, 0x8a, 0x96, 0x61, 0x8e, 0x8d, 0xe9, 0x28, 0xf2, 0x19, 0xf4,
		0xcb, 0xd3, 0x51, 0x1f, 0x07, 0x1e, 0x32, 0x3a, 0xd6, 0xbf, 0x0d, 0x63, 0x53, 0xb9, 0xc9, 0x48,
		0x73, 0x3d, 0x3d, 0xf5, 0x90, 0x83, 0x62, 0x84, 0xea, 0xed, 0x8f, 0xd1, 0x1d, 0xdd, 0x54, 0x75,
		0x57, 0x86, 0xc2, 0xef, 0x3b, 0x5d, 0x31, 0x6b, 0x18, 0x11, 0x41, 0x26, 0x93, 0x54, 0xcf, 0x5b,
		0x82, 0x81, 0xaa, 0x95, 0xfc, 0x42, 0x0c, 0x54, 0xa5, 0xcd, 0x55, 0x31, 0x50, 0x85, 0x81, 0xaa,
		0x0f, 0xe6, 0xb4, 0x18, 0xa8, 0x52, 0xcd, 0xf1, 0x67, 0x16, 0x00, 0xb2, 0x0c, 0x04, 0x04, 0x02,
		0x02, 0x95, 0x82, 0x06, 0x06, 0xaa, 0x68, 0x05, 0x8c, 0x8c, 0xd2, 0xff, 0xbc, 0x0c, 0x54, 0xcd,
		0x3a, 0xd0, 0x33, 0xaf, 0xc8, 0x66, 0xdb, 0x0a, 0x8f, 0x61, 0x2a, 0x0c, 0x53, 0x11, 0x0a, 0x42,
		0xe4, 0x82, 0x11, 0xb9, 0xa0, 0x44, 0x2b, 0x38, 0x65, 0x13, 0xa4, 0x32, 0x0a, 0x56, 0xc9, 0xad,
		0x27, 0x35, 0x4c, 0x55, 0xc5, 0x30, 0xd5, 0xd4, 0x93, 0x93, 0x19, 0xa6, 0x8a, 0x67, 0x65, 0x1c,
		0xbd, 0x6f, 0xe8, 0x87, 0x17, 0x7f, 0x97, 0x36, 0x2a, 0xf7, 0xb5, 0x2f, 0x7f, 0xef, 0xde, 0x3f,
		0xfd, 0xf0, 0x9f, 0xe7, 0xbe, 0xad, 0xb4, 0xb1, 0x7b, 0x5f, 0x5b, 0xf2, 0x2f, 0xd5, 0xfb, 0xda,
		0x1b, 0xff, 0x8f, 0x9d, 0xfb, 0xcf, 0x0b, 0xdf, 0x1a, 0x7d, 0x5e, 0x5e, 0xf6, 0x03, 0x95, 0x25,
		0x3f, 0xb0, 0xbd, 0xec, 0x07, 0xb6, 0x97, 0xfc, 0xc0, 0x52, 0x93, 0xca, 0x4b, 0x7e, 0x60, 0xe7,
		0xfe, 0x9f, 0x85, 0xef, 0xff, 0xfc, 0xfc, 0xb7, 0x56, 0xef, 0xbf, 0xfc, 0xb3, 0xec, 0xdf, 0x76,
		0xef, 0xff, 0xa9, 0x7d, 0xf9, 0x82, 0xf1, 0x32, 0x32, 0xe3, 0x65, 0x80, 0x7f, 0xfa, 0xf0, 0xc7,
		0xb8, 0x5d, 0x4a, 0x18, 0xc7, 0xb8, 0xdd, 0x13, 0x4b, 0x30, 0x6e, 0xf7, 0x6b, 0xa6, 0x60, 0xdc,
		0x0e, 0xe3, 0x76, 0x73, 0x2f, 0x72, 0xe3, 0x76, 0x5f, 0x6b, 0x5a, 0x6b, 0x38, 0x0e, 0x5d, 0x39,
		0xd0, 0xac, 0x93, 0x9b, 0xaa, 0xf6, 0xd3, 0x0d, 0xaf, 0x26, 0xf3, 0x4e, 0x93, 0x43, 0x3d, 0xca,
		0xdb, 0x65, 0x0c, 0xd7, 0xbd, 0x5c, 0xb6, 0xc0, 0x70, 0xdd, 0x7b, 0x2a, 0x19, 0xbf, 0x00, 0x3f,
		0x8c, 0xd2, 0xe5, 0x8b, 0xeb, 0x61, 0xe7, 0x65, 0xb5, 0xab, 0x0e, 0xa3, 0x74, 0xcf, 0x35, 0x2e,
		0x3e, 0xdb, 0xea, 0x85, 0x89, 0xba, 0x59, 0x37, 0x63, 0xd5, 0x9a, 0xdd, 0x1d, 0x63, 0x76, 0x73,
		0x30, 0x59, 0xc7, 0x66, 0xf1, 0x63, 0xb2, 0x2e, 0x45, 0x26, 0xfd, 0xc6, 0x99, 0xa8, 0xaa, 0x6d,
		0x35, 0x3b, 0x66, 0xeb, 0xd0, 0x38, 0x30, 0x6d, 0xa3, 0x5e, 0x6f, 0x99, 0xed, 0xb6, 0xd9, 0xc6,
		0x80, 0x1d, 0x06, 0xec, 0xde, 0x33, 0x60, 0xb7, 0x04, 0x4c, 0x98, 0xb3, 0x4b, 0x7b, 0xf1, 0x3f,
		0x19, 0x77, 0xaa, 0x6a, 0x09, 0xab, 0xd0, 0x12, 0x56, 0xb1, 0x78, 0x36, 0xd4, 0xb9, 0x9c, 0x1f,
		0x72, 0xca, 0x30, 0xc9, 0xc6, 0x74, 0x1d, 0xf9, 0x14, 0xfa, 0xa5, 0xe9, 0xba, 0xf7, 0xc3, 0x0d,
		0xa9, 0x1d, 0xeb, 0xdf, 0x86, 0x99, 0xba, 0xbc, 0xa5, 0xa6, 0x79, 0x1e, 0xad, 0x7b, 0x26, 0x19,
		0xc5, 0x88, 0xdd, 0xdb, 0x1f, 0x67, 0x0c, 0x29, 0x5f, 0x38, 0xdd, 0x2b, 0xe7, 0xd2, 0xf5, 0xdc,
		0xf0, 0x2e, 0xa3, 0xd9, 0xba, 0x47, 0x26, 0x60, 0xa8, 0x6e, 0x25, 0xbf, 0x10, 0x43, 0x75, 0x69,
		0x53, 0x54, 0x0c, 0xd5, 0x61, 0xa8, 0xee, 0x83, 0x09, 0x6c, 0xda, 0x43, 0x75, 0x13, 0xc8, 0x8a,
		0x20, 0xbb, 0xb9, 0xba, 0xc4, 0x02, 0x8c, 0xd6, 0xa9, 0x16, 0x0e, 0x08, 0x84, 0x05, 0x2a, 0xd5,
		0x0c, 0x8c, 0xd6, 0xd1, 0x0a, 0x1b, 0x19, 0x55, 0x01, 0xf2, 0x32, 0x5a, 0x37, 0xca, 0x76, 0xa4,
		0xea, 0x49, 0x70, 0xc9, 0x78, 0xb0, 0xae, 0x84, 0xc1, 0x3a, 0x0c, 0xd6, 0x61, 0xb0, 0x8e, 0x7e,
		0x48, 0xa2, 0x15, 0x9a, 0xb2, 0x09, 0x51, 0x19, 0x85, 0xaa, 0xcc, 0x43, 0x16, 0x95, 0xd0, 0x45,
		0x2b, 0x84, 0x3d, 0x0d, 0x65, 0x5b, 0x19, 0x9b, 0x91, 0x75, 0x48, 0xa3, 0x14, 0xda, 0x08, 0x86,
		0x38, 0x6a, 0xa1, 0x8e, 0x6c, 0xc8, 0x23, 0x1b, 0xfa, 0x68, 0x86, 0xc0, 0x6c, 0x43, 0x61, 0xc6,
		0x21, 0x31, 0x79, 0x24, 0x99, 0xcf, 0x9c, 0x2f, 0x78, 0x1c, 0x4f, 0x38, 0x7d, 0x5f, 0xf4, 0x29,
		0x78, 0x9c, 0x59, 0xae, 0xb5, 0x4b, 0xc0, 0x96, 0x93, 0xe9, 0xb6, 0x71, 0xd2, 0xb1, 0x35, 0xf5,
		0x39, 0x39, 0x1d, 0x16, 0xc8, 0x70, 0xdd, 0x64, 0x24, 0x1a, 0xb7, 0x74, 0xc1, 0x64, 0xd5, 0x44,
		0x4e, 0xa8, 0x2c, 0x01, 0x2e, 0x07, 0x2e, 0x07, 0x2e, 0x07, 0x2e, 0x97, 0x6f, 0x2e, 0x97, 0x75,
		0x99, 0x23, 0x31, 0xe4, 0x5a, 0x84, 0xbe, 0xdb, 0xa5, 0xb3, 0xba, 0x67, 0x0e, 0x70, 0x6a, 0x17,
		0x91, 0x15, 0x44, 0xa3, 0xfc, 0x41, 0x2e, 0x74, 0x52, 0x0c, 0xa1, 0x84, 0x43, 0x29, 0xd5, 0x90,
		0x4a, 0x3e, 0xb4, 0x92, 0x0f, 0xb1, 0xb4, 0x43, 0x2d, 0x8d, 0x90, 0x4b, 0x24, 0xf4, 0xd2, 0x2b,
		0xa7, 0x2c, 0x78, 0xac, 0x9f, 0x6e, 0x4f, 0xe8, 0xa4, 0x02, 0xe0, 0x7c, 0x10, 0xdc, 0x25, 0x64,
		0x52, 0xcb, 0x91, 0x83, 0xec, 0xb5, 0x5b, 0x9e, 0xbe, 0x68, 0x79, 0x75, 0x6d, 0x2a, 0x14, 0x45,
		0x2e, 0xdc, 0x24, 0xc6, 0x9d, 0x39, 0xde, 0x58, 0x64, 0x5f, 0x91, 0x58, 0x6a, 0xdf, 0xa1, 0xef,
		0x74, 0x43, 0x77, 0x28, 0xeb, 0xee, 0xc0, 0xcd, 0x5a, 0x68, 0xeb, 0x65, 0x07, 0x22, 0x06, 0x4e,
		0xe8, 0xde, 0x88, 0x4c, 0x75, 0xa5, 0x18, 0xf8, 0xfe, 0xc7, 0x4b, 0xc3, 0xb9, 0x65, 0xb0, 0x34,
		0xaa, 0xbb, 0xbb, 0xbb, 0xe5, 0x2c, 0x45, 0xd4, 0xb0, 0x42, 0x72, 0xc4, 0xd1, 0xe8, 0x59, 0x73,
		0xf1, 0x1b, 0xee, 0x07, 0x11, 0x0f, 0x4a, 0xa5, 0x45, 0x66, 0x81, 0x37, 0xd3, 0x2a, 0x07, 0xa3,
		0x66, 0xf4, 0xb2, 0x41, 0xa8, 0x19, 0xfd, 0x92, 0x69, 0xa8, 0x19, 0xbd, 0xd3, 0x40, 0xd4, 0x8c,
		0xf8, 0x33, 0x00, 0xd4, 0x8c, 0x5e, 0xf3, 0x58, 0xf1, 0x18, 0x35, 0xb9, 0x05, 0x48, 0xe1, 0x54,
		0x88, 0xc5, 0xc0, 0x43, 0x44, 0x27, 0x7f, 0xc1, 0x30, 0xc8, 0xe6, 0x67, 0x25, 0x9b, 0x5f, 0xfc,
		0x5c, 0x2a, 0xff, 0xb9, 0xa5, 0x7f, 0xbd, 0xf8, 0xa7, 0xf4, 0xe7, 0x96, 0x5e, 0xba, 0x88, 0xbe,
		0xf3, 0xe2, 0x9f, 0x3f, 0x4b, 0xfa, 0xde, 0xec, 0x6d, 0xf4, 0xe7, 0x17, 0x3a, 0x6e, 0xf9, 0x82,
		0xd2, 0x7a, 0xa2, 0x74, 0xf8, 0xc4, 0x82, 0x75, 0x38, 0x8c, 0x82, 0xfa, 0xaa, 0xfa, 0x57, 0x01,
		0x55, 0x06, 0x54, 0x19, 0x16, 0x16, 0x6e, 0xa0, 0x5f, 0xba, 0x21, 0xbd, 0x22, 0xc3, 0xc4, 0x2c,
		0xd4, 0x18, 0x50, 0x63, 0x40, 0x8d, 0x01, 0x35, 0x06, 0xd4, 0x18, 0x50, 0x63, 0xc8, 0x4d, 0x8d,
		0xe1, 0x72, 0x38, 0xf4, 0x84, 0x23, 0x29, 0xd6, 0x17, 0x4a, 0x20, 0x6e, 0x64, 0x88, 0xdb, 0x78,
		0xa4, 0xf7, 0x86, 0x3f, 0x25, 0x3d, 0xea, 0x36, 0x33, 0x0c, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d,
		0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0x0d, 0xe4, 0xed, 0xe1, 0x99, 0xdc, 0xd2,
		0xac, 0xba, 0xdd, 0xa2, 0xea, 0x06, 0xe2, 0x06, 0xe2, 0x06, 0xe2, 0x06, 0xe2, 0x06, 0xe2, 0x06,
		0xe2, 0x06, 0xe2, 0x46, 0x8b, 0xb8, 0xe5, 0x5a, 0xcb, 0x20, 0xe3, 0x63, 0x64, 0x17, 0xec, 0x21,
		0x7b, 0x76, 0xcf, 0xfc, 0x29, 0x27, 0xc5, 0x99, 0xee, 0xfd, 0xf4, 0x4d, 0x91, 0x82, 0x34, 0x90,
		0x46, 0xf2, 0x88, 0x9f, 0xd6, 0xdc, 0x6d, 0xb3, 0x4f, 0xa6, 0xb7, 0x6d, 0xfa, 0x26, 0x8b, 0x93,
		0x67, 0xe9, 0xac, 0xfe, 0x4c, 0x95, 0xb5, 0xc6, 0x97, 0x11, 0xba, 0x09, 0x69, 0x6b, 0x4d, 0x0d,
		0x82, 0xba, 0x16, 0xd4, 0xb5, 0xd8, 0x24, 0x81, 0x50, 0xd7, 0xe2, 0x9e, 0xec, 0x41, 0x5d, 0x8b,
		0x1e, 0x23, 0x25, 0xa3, 0xae, 0x35, 0x89, 0x49, 0x04, 0x9b, 0x18, 0x27, 0x76, 0xd1, 0xaa, 0xa7,
		0x96, 0x50, 0x4f, 0x25, 0x1f, 0x42, 0x09, 0x87, 0x52, 0xaa, 0x21, 0x95, 0x7c, 0x68, 0x25, 0x1f,
		0x62, 0x69, 0x87, 0x5a, 0x3a, 0x65, 0x28, 0x8d, 0x50, 0x3d, 0x95, 0x4a, 0x08, 0x4e, 0x0c, 0xea,
		0x7b, 0xce, 0x20, 0xa0, 0xe7, 0x14, 0x66, 0x7e, 0x74, 0x62, 0x1e, 0xb1, 0xf5, 0x46, 0x2b, 0x30,
		0x93, 0x0d, 0xd0, 0x94, 0x03, 0x35, 0x83, 0x80, 0x4d, 0x3d, 0x70, 0xb3, 0x09, 0xe0, 0x6c, 0x02,
		0x39, 0x8f, 0x80, 0x4e, 0x2b, 0xb0, 0x13, 0x0b, 0xf0, 0x64, 0x03, 0xfd, 0x43, 0xee, 0x4d, 0xe2,
		0xe8, 0x87, 0xd7, 0x53, 0x71, 0x22, 0xfb, 0x3e, 0x8c, 0x08, 0x00, 0x79, 0x22, 0xc0, 0x81, 0x10,
		0x30, 0x22, 0x06, 0x5c, 0x08, 0x02, 0x3b, 0xa2, 0xc0, 0x8e, 0x30, 0xf0, 0x22, 0x0e, 0x34, 0x09,
		0x04, 0x51, 0x22, 0x41, 0x9e, 0x50, 0x10, 0xaf, 0x24, 0xb0, 0xaa, 0x2c, 0x2c, 0x23, 0x1a, 0x5b,
		0xc4, 0xcd, 0xa4, 0x4e, 0x38, 0x38, 0x11, 0x0f, 0x86, 0x04, 0x84, 0x1b, 0x11, 0x61, 0x4b, 0x48,
		0xd8, 0x12, 0x13, 0x9e, 0x04, 0x85, 0x36, 0x51, 0x21, 0x4e, 0x58, 0x92, 0x47, 0x4e, 0xae, 0x85,
		0xfc, 0x55, 0x8f, 0x2b, 0xe4, 0xf8, 0x5a, 0xf8, 0x93, 0xd6, 0x5d, 0x06, 0x5e, 0x77, 0x56, 0x8d,
		0xa8, 0x30, 0xb0, 0xd5, 0x94, 0xe3, 0x6b, 0x3e, 0xf1, 0xa1, 0x33, 0x6c, 0x87, 0xbe, 0x2b, 0x07,
		0x6c, 0x2c, 0x8e, 0xad, 0xde, 0x8a, 0x30, 0x6c, 0xfe, 0xe8, 0x98, 0xad, 0xa6, 0xd1, 0xb0, 0x0f,
		0x1b, 0xc6, 0x37, 0x26, 0x61, 0x2d, 0xb6, 0xbe, 0x14, 0x59, 0xdf, 0x32, 0x8d, 0xfa, 0x99, 0xd9,
		0xea, 0x58, 0x6d, 0xf3, 0xc8, 0x6c, 0x76, 0xd8, 0x5d, 0x44, 0x39, 0xba, 0x88, 0xe6, 0x71, 0xdd,
		0x9c, 0x58, 0xce, 0xc2, 0xf0, 0xfb, 0x0d, 0x2e, 0x8b, 0xd2, 0x92, 0x21, 0xaf, 0x15, 0xf9, 0x78,
		0x31, 0x92, 0x4f, 0x93, 0x1e, 0x07, 0xc5, 0x04, 0xc5, 0x35, 0xad, 0xcc, 0xc8, 0xee, 0x67, 0x5d,
		0x48, 0x4d, 0x2b, 0xf1, 0x58, 0x8b, 0xe0, 0xc4, 0x4a, 0x73, 0xe2, 0x86, 0x1b, 0x84, 0x46, 0x18,
		0xfa, 0x3c, 0x78, 0xf1, 0x91, 0x2b, 0x4d, 0x4f, 0x44, 0x69, 0x5b, 0xc0, 0xc3, 0x79, 0x15, 0x8e,
		0x9c, 0xdb, 0x39, 0x8b, 0x4b, 0x5f, 0x2b, 0x95, 0xea, 0x6e, 0xa5, 0xb2, 0xb5, 0xbb, 0xbd, 0xbb,
		0xb5, 0xb7, 0xb3, 0x53, 0xaa, 0x52, 0x3d, 0x31, 0xea, 0xd1, 0x45, 0x1c, 0xfb, 0x3d, 0xe1, 0x8b,
		0xde, 0xfe, 0x5d, 0xa1, 0xa6, 0xc9, 0xb1, 0xe7, 0x71, 0x32, 0xf9, 0x34, 0x10, 0x3e, 0xd9, 0xc3,
		0xa4, 0x38, 0x79, 0x0a, 0x71, 0x1b, 0xfa, 0x8e, 0x3e, 0x96, 0x41, 0xe8, 0x5c, 0x7a, 0x4c, 0xf2,
		0x68, 0x5f, 0xf4, 0x85, 0x2f, 0x64, 0x97, 0xde, 0x11, 0x94, 0xcb, 0x5e, 0x8c, 0xb8, 0xe4, 0xac,
		0x48, 0xd1, 0x3a, 0x3c, 0xd8, 0xdd, 0xdd, 0xab, 0xd4, 0x34, 0xab, 0xad, 0x5b, 0x6d, 0x6d, 0x52,
		0xd9, 0xd6, 0xa2, 0xa0, 0xe2, 0x5e, 0x8e, 0x43, 0x11, 0x68, 0xfd, 0xa1, 0xaf, 0x99, 0xb7, 0xa1,
		0x90, 0x3d, 0xd1, 0xd3, 0xac, 0x93, 0x9b, 0x8a, 0xe6, 0xc8, 0xde, 0xb9, 0xb4, 0x4e, 0x6e, 0xaa,
		0xda, 0xfc, 0xec, 0xe8, 0xa6, 0x16, 0x8c, 0x2f, 0xf5, 0x4e, 0xe3, 0x4c, 0xab, 0x6c, 0x72, 0xca,
		0xb1, 0x98, 0x15, 0x9b, 0x1f, 0xca, 0x35, 0x0f, 0x45, 0xe7, 0x87, 0x85, 0xb2, 0xc1, 0xeb, 0x1a,
		0xb8, 0xd6, 0x9f, 0x93, 0x0b, 0x98, 0xaf, 0x43, 0xaf, 0x67, 0x25, 0xb1, 0xb9, 0x1f, 0xf7, 0xc8,
		0x88, 0x56, 0xf2, 0xba, 0xf8, 0x0d, 0xf7, 0x4f, 0x31, 0x06, 0x56, 0x08, 0x39, 0xec, 0x5d, 0x24,
		0x94, 0x20, 0xb6, 0x16, 0x1d, 0x0d, 0xab, 0x30, 0x13, 0x1d, 0x0d, 0x6b, 0xc4, 0x29, 0x3a, 0x1a,
		0xd2, 0x20, 0x97, 0xe8, 0x68, 0x48, 0x9d, 0x49, 0xa2, 0xa3, 0x21, 0x17, 0x35, 0x19, 0x7e, 0x1d,
		0x0d, 0x6e, 0x4f, 0xc8, 0xd0, 0x0d, 0xef, 0x7c, 0xd1, 0xe7, 0xd4, 0xd1, 0xc0, 0xa1, 0x4a, 0x6b,
		0x4d, 0x6f, 0xed, 0xbe, 0x13, 0x30, 0x8a, 0x13, 0x33, 0x60, 0x58, 0x6d, 0xab, 0x6d, 0xb7, 0x4f,
		0xf7, 0x3b, 0x8d, 0x33, 0xbb, 0xf3, 0xc7, 0x89, 0xc9, 0x25, 0x5c, 0x9c, 0x39, 0xde, 0x58, 0x04,
		0x6c, 0xea, 0x8b, 0x1a, 0xab, 0x1a, 0xe3, 0x63, 0x84, 0x9c, 0xd8, 0x2d, 0xd3, 0x38, 0xf8, 0x6e,
		0xec, 0x5b, 0x0d, 0xab, 0xf3, 0x87, 0x6d, 0x9d, 0x9c, 0x55, 0xec, 0xd6, 0xf1, 0x69, 0xc7, 0x6c,
		0xd9, 0x56, 0x9d, 0x51, 0x99, 0x63, 0x03, 0x48, 0x49, 0x1d, 0x29, 0x55, 0x20, 0x05, 0x48, 0x79,
		0x1d, 0x29, 0x27, 0x2d, 0xf3, 0xd0, 0xfa, 0x11, 0xb7, 0x68, 0xb4, 0x81, 0x13, 0xe0, 0xe4, 0x15,
		0x9c, 0xb4, 0xe1, 0x4d, 0x80, 0x92, 0xe5, 0x28, 0x99, 0xd0, 0xd9, 0x36, 0x27, 0x3e, 0xcb, 0x99,
		0xd7, 0xf2, 0x44, 0x8f, 0xb2, 0x3c, 0x97, 0xa1, 0xdf, 0x51, 0x17, 0x41, 0x55, 0x20, 0x08, 0x08,
		0xca, 0x1b, 0x2f, 0x06, 0x7e, 0xc0, 0x97, 0x81, 0x1e, 0xfe, 0xe8, 0xe9, 0x70, 0x99, 0x5c, 0x02,
		0x6c, 0x88, 0xc1, 0xa6, 0x5a, 0x61, 0x08, 0x1c, 0x56, 0x16, 0x5f, 0xa0, 0xfe, 0x81, 0xfa, 0x87,
		0x0a, 0x7e, 0x1b, 0xf0, 0x80, 0x7f, 0x06, 0x40, 0xb2, 0x05, 0x48, 0xfb, 0x31, 0x40, 0x8c, 0xfa,
		0x7f, 0xec, 0x86, 0xd1, 0x44, 0x99, 0x1d, 0x30, 0x79, 0x0d, 0x26, 0x80, 0x08, 0x20, 0xf2, 0x22,
		0x44, 0x8e, 0xac, 0xa6, 0xfd, 0xad, 0x75, 0x7c, 0x7a, 0x02, 0x98, 0x00, 0x26, 0x4b, 0x61, 0x72,
		0x66, 0x58, 0x0d, 0x63, 0xbf, 0x61, 0xda, 0xfb, 0x46, 0xb3, 0xfe, 0x5f, 0xab, 0xde, 0xf9, 0x0e,
		0xb8, 0x00, 0x2e, 0xcb, 0xe0, 0x92, 0x80, 0xc4, 0x3e, 0x38, 0x6e, 0xb6, 0x3b, 0x2d, 0xc3, 0x6a,
		0x76, 0xd0, 0x36, 0x02, 0xc0, 0x2c, 0x05, 0x8c, 0xf9, 0xa3, 0x63, 0x36, 0xeb, 0x66, 0x1d, 0xf1,
		0x08, 0x78, 0x79, 0x0b, 0x5e, 0xe2, 0xad, 0x7f, 0xab, 0xd9, 0x31, 0x5b, 0x87, 0xc6, 0x81, 0x69,
		0x1b, 0xf5, 0x7a, 0xcb, 0x6c, 0xc3, 0xc3, 0x00, 0x31, 0x2f, 0x23, 0xa6, 0x69, 0x5a, 0xdf, 0xbe,
		0xef, 0x1f, 0xb7, 0x00, 0x18, 0x00, 0xe6, 0x0d, 0x80, 0xa9, 0xc2, 0xc5, 0x00, 0x31, 0xbf, 0x88,
		0x18, 0xb8, 0x18, 0x00, 0xe6, 0xad, 0x80, 0x69, 0x58, 0xcd, 0xdf, 0x6d, 0xa3, 0xd3, 0x69, 0x59,
		0xfb, 0xa7, 0x1d, 0x13, 0x50, 0x01, 0x54, 0x5e, 0x86, 0x4a, 0xdd, 0x6c, 0x18, 0x7f, 0x00, 0x25,
		0x40, 0xc9, 0xeb, 0x28, 0xb1, 0xcf, 0x8c, 0x96, 0x65, 0x74, 0xac, 0xe3, 0x26, 0xf0, 0x02, 0xbc,
		0xbc, 0x88, 0x17, 0x6c, 0x10, 0x01, 0x22, 0xaf, 0x40, 0xa4, 0x71, 0x0c, 0x22, 0x0b, 0x90, 0xbc,
		0x02, 0x92, 0x93, 0xd6, 0x71, 0xc7, 0x3c, 0x88, 0x42, 0xce, 0x64, 0xae, 0x0b, 0x78, 0x01, 0x5e,
		0x96, 0xe0, 0xe5, 0xc8, 0xf8, 0x31, 0xc1, 0x0c, 0x76, 0x13, 0x81, 0x96, 0x37, 0xa1, 0xa5, 0x65,
		0xb6, 0xcd, 0xd6, 0x19, 0x76, 0xa0, 0x81, 0x99, 0x37, 0x62, 0xc6, 0x6a, 0x3e, 0x78, 0x19, 0xe4,
		0xcd, 0x40, 0xcb, 0x8b, 0x68, 0x69, 0x99, 0x6d, 0xab, 0x7e, 0x6a, 0x34, 0xe0, 0x5b, 0x80, 0x96,
		0xd7, 0xd1, 0x02, 0xf5, 0x02, 0xa0, 0xe7, 0xe3, 0x28, 0x62, 0xd9, 0xc3, 0xcd, 0xd0, 0xe9, 0x28,
		0x0c, 0x1f, 0x40, 0x07, 0xd0, 0x79, 0x17, 0x74, 0x18, 0xf6, 0xd8, 0x01, 0x3e, 0x64, 0xe0, 0xc3,
		0xb9, 0x17, 0x1c, 0x30, 0xa2, 0x02, 0x23, 0xe6, 0x3d, 0xe2, 0x00, 0x12, 0x15, 0x20, 0xf1, 0xee,
		0x1d, 0x07, 0x8e, 0xa8, 0xe0, 0x88, 0x7b, 0x4f, 0x39, 0x90, 0x44, 0x0a, 0x49, 0x7c, 0x1b, 0x41,
		0x01, 0x24, 0x42, 0x40, 0xaa, 0xc2, 0x25, 0x01, 0x49, 0x2b, 0x42, 0x12, 0x5c, 0x12, 0x80, 0xf4,
		0x51, 0x20, 0xb1, 0xed, 0x59, 0x07, 0x84, 0x48, 0x41, 0x88, 0xd9, 0x9e, 0x3c, 0xd0, 0x43, 0x0f,
		0x3d, 0x1c, 0x7b, 0xdc, 0x81, 0x23, 0x52, 0x38, 0xc2, 0x06, 0x1a, 0xa0, 0xf3, 0x4e, 0xe8, 0xf0,
		0xea, 0x89, 0x07, 0x78, 0x48, 0x81, 0x87, 0x6d, 0xaf, 0x3c, 0x70, 0x44, 0x05, 0x47, 0x9c, 0x7b,
		0xe8, 0x81, 0x22, 0x4a, 0x28, 0xe2, 0xdd, 0x5b, 0x0f, 0x2c, 0x91, 0xc1, 0x12, 0xe3, 0x9e, 0x7b,
		0xa0, 0x88, 0x0a, 0x8a, 0x38, 0xf7, 0xe2, 0x03, 0x45, 0x54, 0x50, 0xd4, 0x31, 0xed, 0xba, 0x79,
		0x68, 0x9c, 0x36, 0x3a, 0xf6, 0x91, 0xd9, 0x69, 0x59, 0x07, 0x00, 0x11, 0x40, 0xf4, 0xab, 0x20,
		0x3a, 0x6d, 0x26, 0xad, 0x69, 0x66, 0xdd, 0x6e, 0xb4, 0xd1, 0x56, 0x04, 0x10, 0xbd, 0x03, 0x44,
		0x13, 0x7e, 0x6d, 0xd6, 0x11, 0xd1, 0x80, 0xa3, 0x0f, 0xe0, 0xa8, 0x63, 0x35, 0xac, 0xff, 0x63,
		0x8e, 0x22, 0x9c, 0xe0, 0x94, 0xf7, 0xd5, 0xa9, 0xc8, 0x0c, 0x28, 0x63, 0x7e, 0x09, 0xb0, 0x80,
		0x47, 0x02, 0x2c, 0xe0, 0x8b, 0xc0, 0x0b, 0x78, 0x21, 0xd0, 0xa2, 0x38, 0x5a, 0xa6, 0x87, 0xdb,
		0x1f, 0x18, 0x27, 0x89, 0x7a, 0x45, 0xcb, 0x36, 0x1a, 0xdf, 0x8e, 0x5b, 0x56, 0xe7, 0xfb, 0x11,
		0x90, 0x02, 0xa4, 0xbc, 0x88, 0x94, 0x87, 0xbf, 0x01, 0x2a, 0x80, 0xca, 0x0b, 0x50, 0x81, 0x24,
		0x0e, 0xf0, 0x93, 0xdb, 0xe0, 0xc4, 0xd0, 0xf3, 0xa8, 0x8c, 0x20, 0x8e, 0x41, 0x2b, 0x81, 0x10,
		0x2a, 0xa4, 0x39, 0xbe, 0xaf, 0xf4, 0xef, 0x27, 0xed, 0xfb, 0x48, 0xd7, 0x3a, 0x9a, 0x96, 0x11,
		0x0d, 0x58, 0x05, 0x43, 0xca, 0x61, 0xe8, 0x84, 0xee, 0x50, 0x16, 0x6a, 0x84, 0x43, 0x54, 0x21,
		0xe8, 0x5e, 0x89, 0x6b, 0x67, 0xe4, 0x84, 0x57, 0x51, 0x30, 0x2a, 0x0e, 0x47, 0x42, 0x76, 0x87,
		0xb2, 0xef, 0x0e, 0x74, 0x29, 0xc2, 0x9f, 0x43, 0xff, 0x2f, 0xdd, 0x95, 0x41, 0xe8, 0xc8, 0xae,
		0x28, 0x3e, 0xfd, 0x20, 0x58, 0xf8, 0xa4, 0x38, 0xf2, 0x87, 0xe1, 0xb0, 0x3b, 0xf4, 0x82, 0xe4,
		0x5d, 0xd1, 0x0d, 0xdc, 0xa0, 0xe8, 0x89, 0x1b, 0xe1, 0x4d, 0xbf, 0x14, 0x3d, 0x57, 0xfe, 0xa5,
		0x07, 0xa1, 0x13, 0x0a, 0xbd, 0xe7, 0x84, 0xce, 0xa5, 0x13, 0x88, 0xa2, 0x17, 0x8c, 0x8a, 0xa1,
		0x77, 0x13, 0x44, 0x7f, 0x14, 0xdd, 0xd1, 0x4d, 0x55, 0xf7, 0x85, 0xd3, 0xbd, 0x72, 0x2e, 0x5d,
		0xcf, 0x0d, 0xef, 0x8a, 0x23, 0x5f, 0xf4, 0xdd, 0x5b, 0x11, 0x4c, 0xdf, 0x14, 0x83, 0xf1, 0x65,
		0xfc, 0xdd, 0x93, 0xaf, 0xc5, 0xbe, 0xe7, 0x0c, 0x82, 0x62, 0xfc, 0x5f, 0x12, 0xa6, 0xee, 0x85,
		0x20, 0xf4, 0xc7, 0xdd, 0x50, 0x4e, 0x03, 0xff, 0x71, 0x72, 0xab, 0x9b, 0x93, 0xdb, 0x68, 0x4d,
		0xef, 0xa2, 0xfd, 0xe4, 0xef, 0xc1, 0xd3, 0x0f, 0xec, 0x93, 0xd9, 0x6d, 0x4e, 0xde, 0xd9, 0x56,
		0xe0, 0x06, 0x76, 0x23, 0xbe, 0xcd, 0x93, 0x2f, 0x76, 0xc3, 0x95, 0x7f, 0xb5, 0xa3, 0x5b, 0x52,
		0x9f, 0xde, 0x64, 0xbb, 0x11, 0x8c, 0xec, 0x8e, 0x77, 0x13, 0x44, 0x7f, 0xd8, 0xd6, 0xe8, 0xa6,
		0xda, 0x9a, 0xbb, 0xc7, 0xf6, 0xc9, 0xf4, 0x1e, 0x4f, 0xdf, 0xd8, 0xed, 0xc9, 0x3d, 0x9e, 0x7e,
		0xb5, 0x0f, 0xa3, 0x7b, 0x6c, 0xc7, 0xff, 0x21, 0x4d, 0x4e, 0x42, 0xcf, 0x3f, 0xd1, 0xb2, 0x88,
		0x98, 0xa7, 0x2c, 0x88, 0xdb, 0xd0, 0x77, 0xf4, 0x71, 0x84, 0xe9, 0x4b, 0x4f, 0x90, 0xf4, 0x92,
		0x85, 0x9f, 0x57, 0x42, 0x92, 0x4d, 0xab, 0x09, 0x47, 0x95, 0x59, 0x72, 0xb3, 0xb9, 0x39, 0xf1,
		0xca, 0xc5, 0xf0, 0x6e, 0x24, 0xb4, 0x7f, 0x6b, 0x9f, 0x86, 0x5d, 0x3d, 0x0a, 0x08, 0xba, 0x17,
		0xf4, 0x2e, 0xf5, 0xe8, 0xc3, 0xa0, 0x66, 0x9d, 0x3c, 0xde, 0x0d, 0x38, 0x69, 0x99, 0x87, 0xd6,
		0x0f, 0xfb, 0xb0, 0x61, 0x7c, 0x6b, 0x7f, 0xa2, 0xec, 0xce, 0xdb, 0xc3, 0xb1, 0xdf, 0x15, 0xa4,
		0xc3, 0x7b, 0x6c, 0xe7, 0xef, 0xe2, 0xee, 0xe7, 0xd0, 0xef, 0x45, 0xcf, 0x23, 0xc6, 0x33, 0xed,
		0x14, 0xbf, 0xf0, 0xdd, 0x09, 0x0c, 0x7f, 0x30, 0xbe, 0x16, 0x32, 0x2c, 0xd4, 0xb4, 0xd0, 0x1f,
		0x0b, 0xe2, 0x06, 0xcf, 0x59, 0xbb, 0x02, 0xc0, 0xff, 0x86, 0xd2, 0xd0, 0xaf, 0x3f, 0x82, 0xba,
		0x08, 0xba, 0xbe, 0x3b, 0x22, 0x4f, 0xb7, 0x1f, 0x39, 0xc7, 0x63, 0xe9, 0xdd, 0x69, 0xae, 0xec,
		0x7a, 0xe3, 0x9e, 0xd0, 0xc2, 0x2b, 0xa1, 0xc5, 0x34, 0x56, 0xeb, 0x0e, 0x65, 0xe8, 0xb8, 0x52,
		0xf8, 0x5a, 0xb4, 0x5a, 0xe3, 0x7f, 0x08, 0xc6, 0x97, 0x7a, 0xa7, 0x71, 0xa6, 0xb9, 0x81, 0x16,
		0x41, 0xe8, 0x5c, 0x56, 0x36, 0xa9, 0xaf, 0x62, 0x26, 0xce, 0xf1, 0xa9, 0x83, 0xec, 0xcd, 0x01,
		0x89, 0x7e, 0x29, 0x94, 0x9d, 0xaf, 0x5c, 0xf0, 0x97, 0x1f, 0x5b, 0x03, 0xa8, 0xe4, 0xa8, 0x54,
		0xc9, 0x21, 0x67, 0xd5, 0x05, 0xf2, 0x37, 0xbe, 0x15, 0x2e, 0x85, 0x2a, 0x5b, 0x04, 0x23, 0x91,
		0x02, 0xb5, 0x2c, 0x5a, 0xd1, 0x83, 0x8e, 0xf7, 0x23, 0xe4, 0x67, 0x0a, 0xee, 0xe8, 0xa6, 0xa2,
		0x07, 0x31, 0x95, 0xd4, 0xfd, 0xe1, 0x38, 0x14, 0xbe, 0xee, 0xf6, 0xc8, 0xb9, 0x9b, 0x84, 0xd1,
		0x3f, 0x6f, 0x2e, 0x31, 0xbf, 0xfd, 0xbb, 0x2b, 0xa3, 0x5b, 0x58, 0x22, 0x66, 0xd6, 0x41, 0xec,
		0x3e, 0x0a, 0x35, 0x6d, 0x8b, 0x98, 0x61, 0x13, 0x17, 0x42, 0x33, 0xc6, 0xcd, 0x80, 0x37, 0xad,
		0x32, 0x50, 0x0c, 0x14, 0xc4, 0x13, 0xc1, 0xf9, 0xe4, 0x6f, 0x12, 0x82, 0x89, 0xe6, 0x7d, 0x6c,
		0x72, 0xbd, 0x47, 0xf9, 0xdd, 0x0c, 0x98, 0xd8, 0x9b, 0x61, 0xc5, 0xed, 0xeb, 0xae, 0x4f, 0x94,
		0xd4, 0xc7, 0xfb, 0x8f, 0x64, 0x9d, 0xc9, 0xcc, 0x1f, 0x53, 0xde, 0x8a, 0x26, 0x4a, 0x00, 0xc8,
		0x13, 0x01, 0x0e, 0x84, 0x80, 0x11, 0x31, 0xe0, 0x42, 0x10, 0xd8, 0x11, 0x05, 0x76, 0x84, 0x81,
		0x17, 0x71, 0xa0, 0x49, 0x20, 0x88, 0x12, 0x09, 0xf2, 0x84, 0x22, 0x31, 0x90, 0x6e, 0x75, 0x61,
		0xa9, 0x6f, 0xa7, 0x5a, 0x61, 0x58, 0x46, 0x38, 0xb6, 0x88, 0x9b, 0x49, 0x9d, 0x78, 0x70, 0x22,
		0x20, 0x0c, 0x89, 0x08, 0x37, 0x42, 0xc2, 0x96, 0x98, 0xb0, 0x25, 0x28, 0x3c, 0x89, 0x0a, 0x6d,
		0xc2, 0x42, 0x9c, 0xb8, 0x24, 0x8f, 0xbc, 0x73, 0x37, 0x12, 0xbc, 0x3c, 0x6e, 0xbc, 0x19, 0xe1,
		0xf4, 0x7a, 0xbe, 0x08, 0x58, 0xb8, 0xdd, 0x59, 0x59, 0xe2, 0x2b, 0x03, 0x5b, 0x4f, 0x9c, 0x30,
		0x14, 0xbe, 0x64, 0x33, 0x71, 0x5b, 0xf8, 0xfc, 0xe7, 0x96, 0xbe, 0x77, 0xf1, 0xcf, 0x9f, 0x25,
		0x7d, 0xef, 0x62, 0xf2, 0xb6, 0x14, 0x7f, 0xf9, 0xbb, 0x7c, 0xff, 0x4f, 0xf9, 0xcf, 0x2d, 0xbd,
		0x32, 0xfd, 0xb4, 0xbc, 0xf3, 0xe7, 0x96, 0xbe, 0x73, 0xf1, 0xe5, 0xf3, 0xf9, 0xf9, 0xe6, 0xaf,
		0xfe, 0xcc, 0x97, 0xbf, 0xb7, 0xef, 0xe9, 0xbb, 0xc1, 0x0b, 0x0e, 0xf0, 0x3a, 0x6e, 0x5b, 0x3f,
		0xd8, 0x61, 0xec, 0x7f, 0x9f, 0xd3, 0x42, 0xd9, 0x97, 0x7f, 0x31, 0xc0, 0x19, 0xc2, 0xed, 0x07,
		0xb0, 0xc4, 0x60, 0x38, 0x64, 0xb1, 0x84, 0x20, 0xfa, 0xc2, 0x17, 0x32, 0x4e, 0x1d, 0x78, 0x2c,
		0x59, 0x3e, 0xa3, 0xf3, 0x0f, 0xe3, 0xf2, 0x87, 0x07, 0xbb, 0xbb, 0x7b, 0x95, 0x9a, 0x66, 0xb5,
		0x75, 0xab, 0xad, 0x4d, 0x52, 0x61, 0xcd, 0x08, 0x43, 0xdf, 0xbd, 0x1c, 0x87, 0x22, 0xd0, 0xfa,
		0x43, 0x5f, 0x33, 0x6f, 0x43, 0x21, 0x7b, 0xa2, 0xa7, 0x59, 0x27, 0x37, 0x95, 0x73, 0xe9, 0xc8,
		0xf8, 0x5d, 0x55, 0x9b, 0xef, 0x11, 0xda, 0x4c, 0x3a, 0x4a, 0x4b, 0x25, 0x46, 0x7a, 0x1f, 0xdc,
		0xb2, 0xd3, 0xe7, 0xb2, 0xd4, 0x87, 0x85, 0xc2, 0x4c, 0x67, 0x85, 0x6b, 0xc2, 0xfa, 0x6c, 0xe2,
		0xba, 0x9e, 0x95, 0x04, 0x39, 0x85, 0x9c, 0x59, 0x79, 0x81, 0x26, 0x7c, 0xd5, 0x18, 0x58, 0x21,
		0xe4, 0x50, 0xec, 0x48, 0x28, 0x41, 0x6c, 0x2d, 0xb6, 0x40, 0x56, 0x61, 0x26, 0xb6, 0x40, 0xd6,
		0x88, 0x53, 0x6c, 0x81, 0xa4, 0x41, 0x2e, 0xb1, 0x05, 0x92, 0x3a, 0x93, 0xc4, 0x16, 0x48, 0x2e,
		0x6a, 0x32, 0x0c, 0xb7, 0x40, 0x7a, 0x42, 0x86, 0x6e, 0x78, 0xe7, 0x8b, 0x3e, 0xa7, 0x1d, 0x90,
		0x1d, 0x06, 0xb6, 0x5a, 0xd3, 0x5b, 0xbb, 0xef, 0x04, 0x8c, 0xe2, 0xc4, 0x83, 0x02, 0xb9, 0xd5,
		0x9e, 0x2a, 0xbe, 0x72, 0x12, 0x7c, 0xe5, 0x28, 0xf4, 0xca, 0x55, 0xa3, 0xfe, 0x89, 0x48, 0x87,
		0x75, 0x72, 0x56, 0xb1, 0xa7, 0x5a, 0x9d, 0x9c, 0x8e, 0xdc, 0x87, 0x94, 0x74, 0x06, 0x48, 0xa9,
		0x02, 0x29, 0x40, 0xca, 0xeb, 0x48, 0x99, 0x17, 0xfe, 0x01, 0x4e, 0x80, 0x93, 0x57, 0x70, 0xd2,
		0x86, 0x37, 0x01, 0x4a, 0x96, 0xa3, 0x04, 0x07, 0x18, 0x00, 0x3d, 0xf9, 0xe5, 0xb9, 0x0c, 0xfd,
		0x8e, 0xba, 0x08, 0xaa, 0x02, 0x41, 0x40, 0x50, 0xde, 0x78, 0x31, 0xf0, 0x03, 0xbe, 0x0c, 0xf4,
		0xf0, 0x47, 0x4f, 0xc7, 0xf8, 0x06, 0xd8, 0x00, 0x36, 0xef, 0x80, 0x4d, 0xb5, 0x82, 0xd3, 0x9a,
		0xd6, 0xfb, 0xc2, 0x79, 0xf6, 0xa8, 0x7f, 0x28, 0xe1, 0xb7, 0x01, 0x0f, 0xf8, 0x67, 0x00, 0x24,
		0x5b, 0x80, 0x3c, 0x39, 0x85, 0xdc, 0xa8, 0xff, 0xc7, 0x6e, 0x18, 0x4d, 0x94, 0xd9, 0x01, 0x93,
		0xd7, 0x60, 0x02, 0x88, 0x00, 0x22, 0x2f, 0x42, 0xe4, 0xc8, 0x6a, 0xda, 0xdf, 0x5a, 0xc7, 0xa7,
		0x27, 0x80, 0x09, 0x60, 0xb2, 0x14, 0x26, 0x67, 0x86, 0xd5, 0x30, 0xf6, 0x1b, 0xa6, 0xbd, 0x6f,
		0x34, 0xeb, 0xff, 0xb5, 0xea, 0x9d, 0xef, 0x80, 0x0b, 0xe0, 0xb2, 0x0c, 0x2e, 0x09, 0x48, 0xec,
		0x83, 0xe3, 0x66, 0xbb, 0xd3, 0x32, 0xac, 0x66, 0x07, 0x6d, 0x23, 0x00, 0xcc, 0x52, 0xc0, 0x98,
		0x3f, 0x3a, 0x66, 0xb3, 0x6e, 0xd6, 0x11, 0x8f, 0x80, 0x97, 0xb7, 0xe0, 0x25, 0xde, 0xfa, 0xb7,
		0x9a, 0x1d, 0xb3, 0x75, 0x68, 0x1c, 0x98, 0xb6, 0x51, 0xaf, 0xb7, 0xcc, 0x36, 0x3c, 0x0c, 0x10,
		0xf3, 0x32, 0x62, 0x9a, 0xa6, 0xf5, 0xed, 0xfb, 0xfe, 0x71, 0x0b, 0x80, 0x01, 0x60, 0xde, 0x00,
		0x98, 0x2a, 0x5c, 0x0c, 0x10, 0xf3, 0x8b, 0x88, 0x81, 0x8b, 0x01, 0x60, 0xde, 0x0a, 0x98, 0x86,
		0xd5, 0xfc, 0xdd, 0x36, 0x3a, 0x9d, 0x96, 0xb5, 0x7f, 0xda, 0x31, 0x01, 0x15, 0x40, 0xe5, 0x65,
		0xa8, 0xd4, 0xcd, 0x86, 0xf1, 0x07, 0x50, 0x02, 0x94, 0xbc, 0x8e, 0x12, 0xfb, 0xcc, 0x68, 0x59,
		0x46, 0xc7, 0x3a, 0x6e, 0x02, 0x2f, 0xc0, 0xcb, 0x8b, 0x78, 0xc1, 0x06, 0x11, 0x20, 0xf2, 0x0a,
		0x44, 0x1a, 0xc7, 0x20, 0xb2, 0x00, 0xc9, 0x2b, 0x20, 0x39, 0x69, 0x1d, 0x77, 0xcc, 0x83, 0x28,
		0xe4, 0x4c, 0xe6, 0xba, 0x80, 0x17, 0xe0, 0x65, 0x09, 0x5e, 0x8e, 0x8c, 0x1f, 0x13, 0xcc, 0x60,
		0x37, 0x11, 0x68, 0x79, 0x13, 0x5a, 0x5a, 0x66, 0xdb, 0x6c, 0x9d, 0x61, 0x07, 0x1a, 0x98, 0x79,
		0x23, 0x66, 0xac, 0xe6, 0x83, 0x97, 0x41, 0xde, 0x0c, 0xb4, 0xbc, 0x88, 0x96, 0x96, 0xd9, 0xb6,
		0xea, 0xa7, 0x46, 0x03, 0xbe, 0x05, 0x68, 0x79, 0x1d, 0x2d, 0x50, 0x2f, 0x00, 0x7a, 0x3e, 0x8e,
		0x22, 0x96, 0x3d, 0xdc, 0x0c, 0x9d, 0x8e, 0xc2, 0xf0, 0x01, 0x74, 0x00, 0x9d, 0x77, 0x41, 0x87,
		0x61, 0x8f, 0x1d, 0xe0, 0x43, 0x06, 0x3e, 0x9c, 0x7b, 0xc1, 0x01, 0x23, 0x2a, 0x30, 0x62, 0xde,
		0x23, 0x0e, 0x20, 0x51, 0x01, 0x12, 0xef, 0xde, 0x71, 0xe0, 0x88, 0x0a, 0x8e, 0xb8, 0xf7, 0x94,
		0x03, 0x49, 0xa4, 0x90, 0xc4, 0xb7, 0x11, 0x14, 0x40, 0x22, 0x04, 0xa4, 0x2a, 0x5c, 0x12, 0x90,
		0xb4, 0x22, 0x24, 0xc1, 0x25, 0x01, 0x48, 0x1f, 0x05, 0x12, 0xdb, 0x9e, 0x75, 0x40, 0x88, 0x14,
		0x84, 0x98, 0xed, 0xc9, 0x03, 0x3d, 0xf4, 0xd0, 0xc3, 0xb1, 0xc7, 0x1d, 0x38, 0x22, 0x85, 0x23,
		0x6c, 0xa0, 0x01, 0x3a, 0xef, 0x84, 0x0e, 0xaf, 0x9e, 0x78, 0x80, 0x87, 0x14, 0x78, 0xd8, 0xf6,
		0xca, 0x03, 0x47, 0x54, 0x70, 0xc4, 0xb9, 0x87, 0x1e, 0x28, 0xa2, 0x84, 0x22, 0xde, 0xbd, 0xf5,
		0xc0, 0x12, 0x19, 0x2c, 0x31, 0xee, 0xb9, 0x07, 0x8a, 0xa8, 0xa0, 0x88, 0x73, 0x2f, 0x3e, 0x50,
		0x44, 0x05, 0x45, 0x1d, 0xd3, 0xae, 0x9b, 0x87, 0xc6, 0x69, 0xa3, 0x63, 0x1f, 0x99, 0x9d, 0x96,
		0x75, 0x00, 0x10, 0x01, 0x44, 0xbf, 0x0a, 0xa2, 0xd3, 0x66, 0xd2, 0x9a, 0x66, 0xd6, 0xed, 0x46,
		0x1b, 0x6d, 0x45, 0x00, 0xd1, 0x3b, 0x40, 0x34, 0xe1, 0xd7, 0x66, 0x1d, 0x11, 0x0d, 0x38, 0xfa,
		0x00, 0x8e, 0x3a, 0x56, 0xc3, 0xfa, 0x3f, 0xe6, 0x28, 0xc2, 0x09, 0x4e, 0x79, 0x5f, 0x9d, 0x8a,
		0xcc, 0x80, 0x32, 0xe6, 0x97, 0x00, 0x0b, 0x78, 0x24, 0xc0, 0x02, 0xbe, 0x08, 0xbc, 0x80, 0x17,
		0x02, 0x2d, 0x8a, 0xa3, 0x65, 0x7a, 0xb8, 0xfd, 0x81, 0x71, 0x92, 0xa8, 0x57, 0xb4, 0x6c, 0xa3,
		0xf1, 0xed, 0xb8, 0x65, 0x75, 0xbe, 0x1f, 0x01, 0x29, 0x40, 0xca, 0x8b, 0x48, 0x79, 0xf8, 0x1b,
		0xa0, 0x02, 0xa8, 0xbc, 0x00, 0x15, 0x48, 0xe2, 0x00, 0x3f, 0xb9, 0x0d, 0x4e, 0x0c, 0x3d, 0x8f,
		0xca, 0x08, 0xe2, 0x18, 0xb4, 0x12, 0x08, 0xa1, 0x42, 0x9a, 0xe3, 0xfb, 0x4a, 0xff, 0x7e, 0xd2,
		0xbe, 0x8f, 0x74, 0xad, 0xa3, 0x69, 0x19, 0xd1, 0x80, 0x55, 0x30, 0xa4, 0x1c, 0x86, 0x4e, 0xe8,
		0x0e, 0x65, 0xa1, 0x46, 0x38, 0x44, 0x15, 0x82, 0xee, 0x95, 0xb8, 0x76, 0x46, 0x4e, 0x78, 0x15,
		0x05, 0xa3, 0xe2, 0x70, 0x24, 0x64, 0x77, 0x28, 0xfb, 0xee, 0x40, 0x97, 0x22, 0xfc, 0x39, 0xf4,
		0xff, 0xd2, 0x5d, 0x19, 0x84, 0x8e, 0xec, 0x8a, 0xe2, 0xd3, 0x0f, 0x82, 0x85, 0x4f, 0x8a, 0x23,
		0x7f, 0x18, 0x0e, 0xbb, 0x43, 0x2f, 0x48, 0xde, 0x15, 0xdd, 0xc0, 0x0d, 0x8a, 0x9e, 0xb8, 0x11,
		0xde, 0xf4, 0x4b, 0xd1, 0x73, 0xe5, 0x5f, 0x7a, 0x10, 0x3a, 0xa1, 0xd0, 0x7b, 0x4e, 0xe8, 0x5c,
		0x3a, 0x81, 0x28, 0x7a, 0xc1, 0xa8, 0x18, 0x7a, 0x37, 0x41, 0xf4, 0x47, 0xd1, 0x1d, 0xdd, 0x54,
		0x75, 0x5f, 0x38, 0xdd, 0x2b, 0xe7, 0xd2, 0xf5, 0xdc, 0xf0, 0xae, 0x38, 0xf2, 0x45, 0xdf, 0xbd,
		0x15, 0xc1, 0xf4, 0x4d, 0x31, 0x18, 0x5f, 0xc6, 0xdf, 0x3d, 0xf9, 0x1a, 0xfd, 0x40, 0x45, 0x0f,
		0x86, 0x63, 0xbf, 0x2b, 0x74, 0x7f, 0x38, 0x0e, 0x85, 0xaf, 0xbb, 0xbd, 0x62, 0xfc, 0x2b, 0x08,
		0x53, 0xf9, 0x42, 0x10, 0xfa, 0xe3, 0x6e, 0x28, 0xa7, 0x44, 0xe0, 0x38, 0xb9, 0xf5, 0xcd, 0xc9,
		0x6d, 0xb5, 0xa6, 0x77, 0xd5, 0x7e, 0xf2, 0xf7, 0xe0, 0xe9, 0x07, 0xf6, 0xc9, 0xec, 0xb6, 0x27,
		0xef, 0x6c, 0x2b, 0x70, 0x03, 0xbb, 0x11, 0xdf, 0xf6, 0xc9, 0x17, 0xbb, 0xe1, 0xca, 0xbf, 0xda,
		0xd1, 0x2d, 0xa9, 0x4f, 0x6f, 0xba, 0xdd, 0x08, 0x46, 0x76, 0xc7, 0xbb, 0x09, 0xa2, 0x3f, 0x6c,
		0x6b, 0x74, 0x53, 0x6d, 0xcd, 0xdd, 0x73, 0xfb, 0x64, 0x7a, 0xcf, 0xa7, 0x6f, 0xec, 0xf6, 0xe4,
		0x9e, 0x4f, 0xbf, 0x46, 0xdf, 0x5f, 0x69, 0xc7, 0xb7, 0xbc, 0x15, 0xdf, 0x71, 0xab, 0x67, 0xc7,
		0xff, 0x3b, 0x4d, 0xc2, 0x42, 0xcf, 0x79, 0xd1, 0xb2, 0x88, 0x98, 0x1b, 0x2d, 0x88, 0xdb, 0xd0,
		0x77, 0xf4, 0x71, 0x04, 0xf0, 0x4b, 0x4f, 0x90, 0x74, 0xa1, 0x85, 0x9f, 0x57, 0x42, 0x92, 0xcd,
		0xb9, 0x09, 0x87, 0x9c, 0x59, 0xe6, 0xb3, 0xb9, 0x39, 0x71, 0xd1, 0xc5, 0xf0, 0x6e, 0x24, 0xb4,
		0x7f, 0x6b, 0x9f, 0x86, 0x5d, 0x3d, 0x8a, 0x16, 0xba, 0x17, 0xf4, 0x2e, 0xf5, 0xe8, 0xc3, 0xa0,
		0x66, 0x9d, 0x3c, 0xa3, 0x4b, 0x33, 0x4d, 0x99, 0xac, 0xfa, 0x27, 0xca, 0xde, 0x7d, 0xe2, 0x1c,
		0x49, 0x47, 0xff, 0xd8, 0xce, 0xdf, 0xc5, 0xdd, 0xcf, 0xa1, 0xdf, 0x8b, 0x9e, 0x48, 0x8c, 0x68,
		0xda, 0x15, 0x80, 0xc2, 0x77, 0x27, 0x30, 0xfc, 0xc1, 0xf8, 0x5a, 0xc8, 0xb0, 0x50, 0xd3, 0x42,
		0x7f, 0x2c, 0x88, 0x1b, 0x3c, 0x67, 0xed, 0x4a, 0x20, 0xff, 0x1b, 0x6a, 0x47, 0xbf, 0xfe, 0x10,
		0xea, 0x22, 0xe8, 0xfa, 0xee, 0x88, 0x3c, 0x1f, 0x7f, 0xe4, 0x20, 0x8f, 0xa5, 0x77, 0xa7, 0xb9,
		0xb2, 0xeb, 0x8d, 0x7b, 0x42, 0x0b, 0xaf, 0x84, 0x66, 0x9d, 0xdc, 0x54, 0xb4, 0x89, 0x5f, 0xd1,
		0x26, 0xac, 0x4b, 0xb3, 0xea, 0x5a, 0x77, 0x28, 0x43, 0xc7, 0x95, 0xc2, 0xd7, 0xa2, 0xf5, 0x7b,
		0x2e, 0xa3, 0xef, 0x0c, 0xc6, 0x97, 0x7a, 0xa7, 0x71, 0xa6, 0xb9, 0x81, 0x16, 0x43, 0xad, 0x54,
		0xda, 0xa4, 0xbe, 0xb0, 0x99, 0xf8, 0xcb, 0xa7, 0x3e, 0xb3, 0x37, 0x87, 0x2c, 0xfa, 0xc5, 0x53,
		0x76, 0xee, 0x73, 0xc1, 0x85, 0xae, 0x78, 0x51, 0xa0, 0x18, 0xa4, 0x52, 0x31, 0x88, 0x9c, 0x55,
		0x17, 0xc8, 0xf2, 0xf8, 0x16, 0xc9, 0x14, 0x2e, 0x8e, 0x11, 0x0c, 0x55, 0xaa, 0x95, 0xc3, 0x68,
		0x85, 0x16, 0x3a, 0xae, 0x91, 0x90, 0x13, 0x2a, 0xc4, 0x8b, 0x69, 0x61, 0x6d, 0x50, 0xf3, 0x45,
		0x49, 0x42, 0xf0, 0xbc, 0xb9, 0xc4, 0x9c, 0xfa, 0xef, 0xae, 0x8c, 0x6e, 0x61, 0x89, 0x98, 0x59,
		0x07, 0xb1, 0x2f, 0x29, 0xd4, 0xb4, 0x2d, 0x62, 0x86, 0x4d, 0xfc, 0x09, 0xcd, 0x00, 0x38, 0x03,
		0xde, 0xb4, 0x4c, 0x41, 0x31, 0x6a, 0x10, 0x4f, 0x1b, 0xe7, 0x53, 0xc5, 0x49, 0x7c, 0x26, 0x9a,
		0x25, 0xb2, 0xc9, 0x0c, 0x1f, 0x65, 0x83, 0x33, 0x60, 0x62, 0x7b, 0x87, 0x15, 0xf1, 0xaf, 0xbb,
		0x3e, 0x51, 0xc6, 0x1f, 0x6f, 0x61, 0x92, 0x75, 0x26, 0x33, 0x7f, 0x4c, 0x79, 0x6b, 0x9b, 0x28,
		0x01, 0x20, 0x4f, 0x04, 0x38, 0x10, 0x02, 0x46, 0xc4, 0x80, 0x0b, 0x41, 0x60, 0x47, 0x14, 0xd8,
		0x11, 0x06, 0x5e, 0xc4, 0x81, 0x26, 0x81, 0x20, 0x4a, 0x24, 0xc8, 0x13, 0x8a, 0xc4, 0x40, 0xba,
		0xd5, 0x85, 0xa5, 0xbe, 0x9d, 0x72, 0xb1, 0xf0, 0x39, 0xc2, 0xb1, 0x45, 0xdc, 0x4c, 0xea, 0xc4,
		0x83, 0x13, 0x01, 0x61, 0x48, 0x44, 0xb8, 0x11, 0x12, 0xb6, 0xc4, 0x84, 0x2d, 0x41, 0xe1, 0x49,
		0x54, 0x68, 0x13, 0x16, 0xe2, 0xc4, 0x25, 0x79, 0xe4, 0x9d, 0xbb, 0x91, 0xe0, 0xe5, 0x71, 0xe3,
		0xcd, 0x08, 0xa7, 0xd7, 0xf3, 0x45, 0xc0, 0xc2, 0xed, 0xce, 0xca, 0x12, 0x5f, 0x19, 0xd8, 0x7a,
		0xe2, 0x84, 0xa1, 0xf0, 0x25, 0x9b, 0x89, 0xde, 0xc2, 0xe7, 0xcf, 0x7f, 0x6e, 0xe9, 0x7b, 0x8e,
		0xde, 0x37, 0xf4, 0xc3, 0x8b, 0xbf, 0x4b, 0x1b, 0x95, 0xfb, 0xda, 0x97, 0xbf, 0x77, 0xef, 0x9f,
		0x7e, 0xf8, 0xcf, 0x73, 0xdf, 0x56, 0xda, 0xd8, 0xbd, 0xaf, 0x2d, 0xf9, 0x97, 0xea, 0x7d, 0xed,
		0x8d, 0xff, 0xc7, 0xce, 0xfd, 0xe7, 0x85, 0x6f, 0x8d, 0x3e, 0x2f, 0x2f, 0xfb, 0x81, 0xca, 0x92,
		0x1f, 0xd8, 0x5e, 0xf6, 0x03, 0xdb, 0x4b, 0x7e, 0x60, 0xa9, 0x49, 0xe5, 0x25, 0x3f, 0xb0, 0x73,
		0xff, 0xcf, 0xc2, 0xf7, 0x7f, 0x7e, 0xfe, 0x5b, 0xab, 0xf7, 0x5f, 0xfe, 0x59, 0xf6, 0x6f, 0xbb,
		0xf7, 0xff, 0xd4, 0xbe, 0x7c, 0xa1, 0x1f, 0x18, 0x2e, 0x38, 0x2c, 0xb8, 0xe3, 0xb6, 0xf5, 0x83,
		0xdd, 0xaa, 0xfb, 0x1f, 0x96, 0x5d, 0x56, 0xcb, 0xee, 0x5f, 0x0c, 0xd6, 0x1d, 0x08, 0xd9, 0x07,
		0xd6, 0x16, 0x83, 0x09, 0xa4, 0xc5, 0x22, 0x93, 0xe8, 0x0b, 0x5f, 0xc8, 0x38, 0xb9, 0xe4, 0xe1,
		0xc2, 0xf8, 0x88, 0x37, 0x3c, 0x08, 0x36, 0x1c, 0x1e, 0xec, 0xee, 0xee, 0x55, 0x6a, 0x9a, 0xd5,
		0xd6, 0xad, 0xb6, 0x36, 0x29, 0x96, 0x68, 0x46, 0x18, 0xfa, 0xee, 0xe5, 0x38, 0x14, 0x81, 0xd6,
		0x1f, 0xfa, 0x9a, 0x79, 0x1b, 0x0a, 0xd9, 0x13, 0xbd, 0xb8, 0x3b, 0xf9, 0x5c, 0x3a, 0x32, 0x7e,
		0x57, 0xd5, 0xe6, 0x5b, 0xca, 0x36, 0x93, 0x86, 0xe4, 0x52, 0x79, 0x93, 0x91, 0xe4, 0x0c, 0xb7,
		0x02, 0xc6, 0x73, 0x85, 0x8c, 0x87, 0x95, 0xc2, 0x4c, 0xea, 0x87, 0x6b, 0x4d, 0xe3, 0xd9, 0xda,
		0xc6, 0x9a, 0x96, 0x12, 0x24, 0x3d, 0x72, 0x66, 0xe5, 0x05, 0xa6, 0x38, 0x54, 0xe3, 0x60, 0x85,
		0x90, 0x43, 0x41, 0x2c, 0x21, 0x05, 0xb1, 0xb5, 0xd8, 0x26, 0x5b, 0x85, 0x99, 0xd8, 0x26, 0x5b,
		0x23, 0x4e, 0xb1, 0x4d, 0x96, 0x06, 0xbb, 0xc4, 0x36, 0x59, 0xea, 0x54, 0x12, 0xdb, 0x64, 0xb9,
		0xa8, 0xca, 0x30, 0xdc, 0x26, 0xeb, 0x09, 0x19, 0xba, 0xe1, 0x9d, 0x2f, 0xfa, 0x9c, 0x76, 0xc9,
		0x76, 0x18, 0xd8, 0x6a, 0x4d, 0x6f, 0xed, 0xbe, 0x13, 0x30, 0x8a, 0x13, 0x0f, 0x2a, 0xf8, 0x56,
		0x7b, 0xaa, 0x3a, 0xcc, 0x49, 0x74, 0x98, 0xa3, 0xd8, 0x30, 0xd7, 0x73, 0x12, 0x5e, 0x54, 0x82,
		0x81, 0x9c, 0x39, 0x90, 0xf2, 0x02, 0x52, 0xaa, 0x40, 0x0a, 0x90, 0xf2, 0x3a, 0x52, 0x4e, 0x5a,
		0xe6, 0xa1, 0xf5, 0xc3, 0x3e, 0x6c, 0x18, 0xdf, 0xda, 0xc0, 0x09, 0x70, 0xf2, 0x0a, 0x4e, 0xda,
		0xf0, 0x26, 0x40, 0xc9, 0x72, 0x94, 0xe0, 0x10, 0x0d, 0xa0, 0x27, 0xbf, 0x3c, 0x97, 0xa1, 0xdf,
		0x51, 0x17, 0x41, 0x55, 0x20, 0x08, 0x08, 0xca, 0x1b, 0x2f, 0x06, 0x7e, 0xc0, 0x97, 0x81, 0x1e,
		0xfe, 0xe8, 0xe9, 0x18, 0xdf, 0x00, 0x1b, 0xc0, 0xe6, 0x1d, 0xb0, 0xa9, 0x56, 0x70, 0x62, 0xd8,
		0x7a, 0x5f, 0x17, 0xa8, 0x7f, 0xa0, 0xfe, 0xa1, 0x82, 0xdf, 0x06, 0x3c, 0xe0, 0x9f, 0x01, 0x90,
		0x6c, 0x01, 0xf2, 0xe4, 0x24, 0x7c, 0xa3, 0xfe, 0x1f, 0xbb, 0x61, 0x34, 0x51, 0x66, 0x07, 0x4c,
		0x5e, 0x83, 0x09, 0x20, 0x02, 0x88, 0xbc, 0x08, 0x91, 0x23, 0xab, 0x69, 0x7f, 0x6b, 0x1d, 0x9f,
		0x9e, 0x00, 0x26, 0x80, 0xc9, 0x52, 0x98, 0x9c, 0x19, 0x56, 0xc3, 0xd8, 0x6f, 0x98, 0xf6, 0xbe,
		0xd1, 0xac, 0xff, 0xd7, 0xaa, 0x77, 0xbe, 0x03, 0x2e, 0x80, 0xcb, 0x32, 0xb8, 0x24, 0x20, 0xb1,
		0x0f, 0x8e, 0x9b, 0xed, 0x4e, 0xcb, 0xb0, 0x9a, 0x1d, 0xb4, 0x8d, 0x00, 0x30, 0x4b, 0x01, 0x63,
		0xfe, 0xe8, 0x98, 0xcd, 0xba, 0x59, 0x47, 0x3c, 0x02, 0x5e, 0xde, 0x82, 0x97, 0x78, 0xeb, 0xdf,
		0x6a, 0x76, 0xcc, 0xd6, 0xa1, 0x71, 0x60, 0xda, 0x46, 0xbd, 0xde, 0x32, 0xdb, 0xf0, 0x30, 0x40,
		0xcc, 0xcb, 0x88, 0x69, 0x9a, 0xd6, 0xb7, 0xef, 0xfb, 0xc7, 0x2d, 0x00, 0x06, 0x80, 0x79, 0x03,
		0x60, 0xaa, 0x70, 0x31, 0x40, 0xcc, 0x2f, 0x22, 0x06, 0x2e, 0x06, 0x80, 0x79, 0x2b, 0x60, 0x1a,
		0x56, 0xf3, 0x77, 0xdb, 0xe8, 0x74, 0x5a, 0xd6, 0xfe, 0x69, 0xc7, 0x04, 0x54, 0x00, 0x95, 0x97,
		0xa1, 0x52, 0x37, 0x1b, 0xc6, 0x1f, 0x40, 0x09, 0x50, 0xf2, 0x3a, 0x4a, 0xec, 0x33, 0xa3, 0x65,
		0x19, 0x1d, 0xeb, 0xb8, 0x09, 0xbc, 0x00, 0x2f, 0x2f, 0xe2, 0x05, 0x1b, 0x44, 0x80, 0xc8, 0x2b,
		0x10, 0x69, 0x1c, 0x83, 0xc8, 0x02, 0x24, 0xaf, 0x80, 0xe4, 0xa4, 0x75, 0xdc, 0x31, 0x0f, 0xa2,
		0x90, 0x33, 0x99, 0xeb, 0x02, 0x5e, 0x80, 0x97, 0x25, 0x78, 0x39, 0x32, 0x7e, 0x4c, 0x30, 0x83,
		0xdd, 0x44, 0xa0, 0xe5, 0x4d, 0x68, 0x69, 0x99, 0x6d, 0xb3, 0x75, 0x86, 0x1d, 0x68, 0x60, 0xe6,
		0x8d, 0x98, 0xb1, 0x9a, 0x0f, 0x5e, 0x06, 0x79, 0x33, 0xd0, 0xf2, 0x22, 0x5a, 0x5a, 0x66, 0xdb,
		0xaa, 0x9f, 0x1a, 0x0d, 0xf8, 0x16, 0xa0, 0xe5, 0x75, 0xb4, 0x40, 0xbd, 0x00, 0xe8, 0xf9, 0x38,
		0x8a, 0x58, 0xf6, 0x70, 0x33, 0x74, 0x3a, 0x0a, 0xc3, 0x07, 0xd0, 0x01, 0x74, 0xde, 0x05, 0x1d,
		0x86, 0x3d, 0x76, 0x80, 0x0f, 0x19, 0xf8, 0x70, 0xee, 0x05, 0x07, 0x8c, 0xa8, 0xc0, 0x88, 0x79,
		0x8f, 0x38, 0x80, 0x44, 0x05, 0x48, 0xbc, 0x7b, 0xc7, 0x81, 0x23, 0x2a, 0x38, 0xe2, 0xde, 0x53,
		0x0e, 0x24, 0x91, 0x42, 0x12, 0xdf, 0x46, 0x50, 0x00, 0x89, 0x10, 0x90, 0xaa, 0x70, 0x49, 0x40,
		0xd2, 0x8a, 0x90, 0x04, 0x97, 0x04, 0x20, 0x7d, 0x14, 0x48, 0x6c, 0x7b, 0xd6, 0x01, 0x21, 0x52,
		0x10, 0x62, 0xb6, 0x27, 0x0f, 0xf4, 0xd0, 0x43, 0x0f, 0xc7, 0x1e, 0x77, 0xe0, 0x88, 0x14, 0x8e,
		0xb0, 0x81, 0x06, 0xe8, 0xbc, 0x13, 0x3a, 0xbc, 0x7a, 0xe2, 0x01, 0x1e, 0x52, 0xe0, 0x61, 0xdb,
		0x2b, 0x0f, 0x1c, 0x51, 0xc1, 0x11, 0xe7, 0x1e, 0x7a, 0xa0, 0x88, 0x12, 0x8a, 0x78, 0xf7, 0xd6,
		0x03, 0x4b, 0x64, 0xb0, 0xc4, 0xb8, 0xe7, 0x1e, 0x28, 0xa2, 0x82, 0x22, 0xce, 0xbd, 0xf8, 0x40,
		0x11, 0x15, 0x14, 0x75, 0x4c, 0xbb, 0x6e, 0x1e, 0x1a, 0xa7, 0x8d, 0x8e, 0x7d, 0x64, 0x76, 0x5a,
		0xd6, 0x01, 0x40, 0x04, 0x10, 0xfd, 0x2a, 0x88, 0x4e, 0x9b, 0x49, 0x6b, 0x9a, 0x59, 0xb7, 0x1b,
		0x6d, 0xb4, 0x15, 0x01, 0x44, 0xef, 0x00, 0xd1, 0x84, 0x5f, 0x9b, 0x75, 0x44, 0x34, 0xe0, 0xe8,
		0x03, 0x38, 0xea, 0x58, 0x0d, 0xeb, 0xff, 0x98, 0xa3, 0x08, 0x27, 0x38, 0xe5, 0x7d, 0x75, 0x2a,
		0x32, 0x03, 0xca, 0x98, 0x5f, 0x02, 0x2c, 0xe0, 0x91, 0x00, 0x0b, 0xf8, 0x22, 0xf0, 0x02, 0x5e,
		0x08, 0xb4, 0x28, 0x8e, 0x96, 0xe9, 0xe1, 0xf6, 0x07, 0xc6, 0x49, 0xa2, 0x5e, 0xd1, 0xb2, 0x8d,
		0xc6, 0xb7, 0xe3, 0x96, 0xd5, 0xf9, 0x7e, 0x04, 0xa4, 0x00, 0x29, 0x2f, 0x22, 0xe5, 0xe1, 0x6f,
		0x80, 0x0a, 0xa0, 0xf2, 0x02, 0x54, 0x20, 0x89, 0x03, 0xfc, 0xe4, 0x36, 0x38, 0x31, 0xf4, 0x3c,
		0x2a, 0x23, 0x88, 0x63, 0xd0, 0x4a, 0x20, 0x84, 0x0a, 0x69, 0x8e, 0xef, 0x2b, 0xfd, 0xfb, 0x49,
		0xfb, 0x3e, 0xd2, 0xb5, 0x8e, 0xa6, 0x65, 0x44, 0x03, 0x56, 0xc1, 0x90, 0x72, 0x18, 0x3a, 0xa1,
		0x3b, 0x94, 0x85, 0x1a, 0xe1, 0x10, 0x55, 0x08, 0xba, 0x57, 0xe2, 0xda, 0x19, 0x39, 0xe1, 0x55,
		0x14, 0x8c, 0x8a, 0xc3, 0x91, 0x90, 0xdd, 0xa1, 0xec, 0xbb, 0x03, 0x5d, 0x8a, 0xf0, 0xe7, 0xd0,
		0xff, 0x4b, 0x77, 0x65, 0x10, 0x3a, 0xb2, 0x2b, 0x8a, 0x4f, 0x3f, 0x08, 0x16, 0x3e, 0x29, 0x8e,
		0xfc, 0x61, 0x38, 0xec, 0x0e, 0xbd, 0x20, 0x79, 0x57, 0x74, 0x03, 0x37, 0x28, 0x7a, 0xe2, 0x46,
		0x78, 0xd3, 0x2f, 0x45, 0xcf, 0x95, 0x7f, 0xe9, 0x41, 0xe8, 0x84, 0x42, 0xef, 0x39, 0xa1, 0x73,
		0xe9, 0x04, 0xa2, 0xe8, 0x05, 0xa3, 0x62, 0xe8, 0xdd, 0x04, 0xd1, 0x1f, 0x45, 0x77, 0x74, 0x53,
		0xd5, 0x7d, 0xe1, 0x74, 0xaf, 0x9c, 0x4b, 0xd7, 0x73, 0xc3, 0xbb, 0xe2, 0xc8, 0x17, 0x7d, 0xf7,
		0x56, 0x04, 0xd3, 0x37, 0xc5, 0x60, 0x7c, 0x19, 0x7f, 0xf7, 0xe4, 0xeb, 0xe4, 0x07, 0x82, 0xe1,
		0xd8, 0xef, 0x0a, 0xdd, 0x1f, 0x8e, 0x43, 0xe1, 0xeb, 0x6e, 0xaf, 0x18, 0xff, 0x0a, 0xc2, 0x54,
		0xbe, 0x10, 0x84, 0xfe, 0xb8, 0x1b, 0xca, 0x29, 0x11, 0x38, 0x4e, 0x6e, 0x7d, 0x73, 0x72, 0x5b,
		0xad, 0xe9, 0x5d, 0xb5, 0x9f, 0xfc, 0x3d, 0x78, 0xfa, 0x81, 0x7d, 0x32, 0xbb, 0xed, 0xc9, 0x3b,
		0xdb, 0x0a, 0xdc, 0xc0, 0x6e, 0xc4, 0xb7, 0x7d, 0xf2, 0xc5, 0x6e, 0xb8, 0xf2, 0xaf, 0x76, 0x74,
		0x4b, 0xea, 0xd3, 0x9b, 0x6e, 0x37, 0x82, 0x91, 0xdd, 0xf1, 0x6e, 0x82, 0xe8, 0x0f, 0xdb, 0x1a,
		0xdd, 0x54, 0x5b, 0x73, 0xf7, 0xdc, 0x3e, 0x99, 0xde, 0xf3, 0xe9, 0x1b, 0xbb, 0x3d, 0xb9, 0xe7,
		0xd3, 0xaf, 0xf1, 0xf7, 0xb7, 0xe3, 0x5b, 0xde, 0x8a, 0xef, 0xb8, 0xd5, 0xb3, 0xe3, 0xff, 0x9d,
		0x26, 0x61, 0xa1, 0xe7, 0xbc, 0x68, 0x59, 0x44, 0xcc, 0x8d, 0x16, 0xc4, 0x6d, 0xe8, 0x3b, 0xfa,
		0x38, 0x02, 0xf8, 0xa5, 0x27, 0x48, 0xba, 0xd0, 0xc2, 0xcf, 0x2b, 0x21, 0xc9, 0xe6, 0xdc, 0x84,
		0x43, 0xce, 0x2c, 0xf3, 0xd9, 0xdc, 0x9c, 0xb8, 0xe8, 0x62, 0x78, 0x37, 0x12, 0xda, 0xbf, 0xb5,
		0x4f, 0xc3, 0xae, 0x1e, 0x45, 0x0b, 0xdd, 0x0b, 0x7a, 0x97, 0x7a, 0xf4, 0x61, 0x50, 0xb3, 0x4e,
		0x9e, 0x11, 0x81, 0x98, 0xa6, 0x4c, 0x56, 0xfd, 0x13, 0x65, 0xef, 0x3e, 0x71, 0x8e, 0xa4, 0xa3,
		0x7f, 0x6c, 0xe7, 0xef, 0xe2, 0xee, 0xe7, 0xd0, 0xef, 0x45, 0x4f, 0x24, 0x46, 0x34, 0xed, 0x0a,
		0x40, 0xe1, 0xbb, 0x13, 0x18, 0xfe, 0x60, 0x7c, 0x2d, 0x64, 0x58, 0xa8, 0x69, 0xa1, 0x3f, 0x16,
		0xc4, 0x0d, 0x9e, 0xb3, 0x76, 0x25, 0x90, 0xff, 0x0d, 0xb5, 0xa3, 0x5f, 0x7f, 0x08, 0x75, 0x11,
		0x74, 0x7d, 0x77, 0x44, 0x9e, 0x8f, 0x3f, 0x72, 0x90, 0xc7, 0xd2, 0xbb, 0xd3, 0x5c, 0xd9, 0xf5,
		0xc6, 0x3d, 0xa1, 0x85, 0x57, 0x42, 0xb3, 0x4e, 0x6e, 0xaa, 0xda, 0xc4, 0xaf, 0x68, 0x13, 0xd6,
		0xa5, 0x59, 0x75, 0xad, 0x3b, 0x94, 0xa1, 0xe3, 0x4a, 0xe1, 0x6b, 0xd1, 0xfa, 0x3d, 0x97, 0xd1,
		0x77, 0x06, 0xe3, 0x4b, 0xbd, 0xd3, 0x38, 0xd3, 0xdc, 0x40, 0x8b, 0xa1, 0x56, 0x2a, 0x6f, 0x52,
		0x5f, 0xd8, 0x4c, 0xfc, 0xe5, 0x53, 0x9f, 0xd9, 0x9b, 0x43, 0x16, 0xfd, 0xe2, 0x29, 0x3b, 0xf7,
		0xb9, 0xe0, 0x42, 0x57, 0xbc, 0x28, 0x50, 0x0c, 0x52, 0xa9, 0x18, 0x44, 0xce, 0xaa, 0x0b, 0x64,
		0x79, 0x7c, 0x8b, 0x64, 0x0a, 0x17, 0xc7, 0x08, 0x86, 0x2a, 0xd5, 0xca, 0x61, 0xb4, 0x42, 0x0b,
		0x1d, 0xd7, 0x48, 0xc8, 0x09, 0x15, 0x26, 0x2b, 0x46, 0x0f, 0xdc, 0x5e, 0x40, 0xce, 0x03, 0x25,
		0x69, 0xc0, 0xbc, 0x91, 0xc4, 0x1c, 0xf8, 0xef, 0xae, 0x8c, 0x48, 0x70, 0x89, 0x98, 0x59, 0x07,
		0xb1, 0xdf, 0x28, 0xd4, 0xb4, 0x2d, 0x62, 0x86, 0x4d, 0x7c, 0x07, 0xcd, 0x60, 0x37, 0x83, 0xdb,
		0xb4, 0x24, 0x41, 0x31, 0x42, 0x10, 0x4f, 0x11, 0xe7, 0xd3, 0xc2, 0xc9, 0xa2, 0x25, 0x9a, 0x11,
		0xb2, 0xc9, 0x02, 0x1f, 0x65, 0x7e, 0x33, 0x60, 0x62, 0x2b, 0x87, 0x15, 0xc9, 0xaf, 0xbb, 0x3e,
		0x4d, 0x87, 0xf7, 0x10, 0x57, 0xe9, 0x7a, 0x94, 0x45, 0x0e, 0x40, 0xd5, 0xa5, 0xd0, 0xa4, 0x02,
		0xe4, 0x29, 0x01, 0x07, 0x6a, 0xc0, 0x88, 0x22, 0x70, 0xa1, 0x0a, 0xec, 0x28, 0x03, 0x3b, 0xea,
		0xc0, 0x8b, 0x42, 0xd0, 0xa4, 0x12, 0x44, 0x29, 0x05, 0x79, 0x6a, 0x91, 0x18, 0x38, 0x69, 0x41,
		0x63, 0xb3, 0xe1, 0x48, 0xbd, 0x63, 0x8e, 0x01, 0xd1, 0x60, 0x43, 0x38, 0x38, 0x11, 0x0f, 0x86,
		0x04, 0x84, 0x1b, 0x11, 0x61, 0x4b, 0x48, 0xd8, 0x12, 0x13, 0x9e, 0x04, 0x85, 0x36, 0x51, 0x21,
		0x4e, 0x58, 0xd8, 0x10, 0x97, 0xc4, 0x50, 0xc7, 0x1b, 0x0c, 0x7d, 0x37, 0xbc, 0xba, 0xe6, 0xe3,
		0xc0, 0x66, 0x31, 0xe2, 0xc1, 0x74, 0x26, 0x7e, 0x60, 0x4a, 0x6c, 0xb6, 0x98, 0x98, 0xcb, 0x85,
		0xe0, 0x70, 0x24, 0x3a, 0x8c, 0x09, 0x0f, 0x57, 0xe2, 0xc3, 0x9e, 0x00, 0xb1, 0x27, 0x42, 0xbc,
		0x09, 0x11, 0x0f, 0x62, 0xc4, 0x84, 0x20, 0x25, 0x50, 0xe8, 0xdc, 0x8d, 0x04, 0x4f, 0x8f, 0x3d,
		0x76, 0x65, 0xf8, 0x95, 0x93, 0xbf, 0x9e, 0xd2, 0x8f, 0x1d, 0x46, 0x26, 0xb7, 0x1c, 0x39, 0x10,
		0xec, 0x64, 0x4f, 0xf8, 0x09, 0x56, 0x14, 0x8e, 0x5c, 0xc9, 0x2e, 0x90, 0x27, 0xc6, 0xc7, 0xea,
		0x38, 0x7c, 0x78, 0xea, 0x82, 0xfd, 0x87, 0xbe, 0xd3, 0x0d, 0xdd, 0xa1, 0xac, 0xbb, 0x03, 0x37,
		0x0c, 0x18, 0x5f, 0x48, 0x53, 0x0c, 0x9c, 0xd0, 0xbd, 0x89, 0x9e, 0x45, 0xdf, 0xf1, 0x02, 0x01,
		0x75, 0x9c, 0x34, 0x96, 0xae, 0x73, 0xcb, 0x7f, 0xe9, 0x96, 0x77, 0x76, 0xb0, 0x78, 0xb1, 0x78,
		0x73, 0x40, 0xcc, 0xf9, 0x59, 0xcb, 0x43, 0x41, 0x89, 0xfe, 0xfd, 0x64, 0x10, 0x5c, 0x0a, 0x7d,
		0xcf, 0x19, 0x04, 0xfc, 0x4a, 0xc1, 0x13, 0xb3, 0x51, 0x06, 0x5e, 0x87, 0xb9, 0x28, 0x03, 0xa7,
		0x08, 0x64, 0x94, 0x81, 0xd3, 0x5b, 0x86, 0x28, 0x03, 0x67, 0x7c, 0x01, 0x28, 0x03, 0x83, 0x73,
		0x4c, 0xa1, 0xc0, 0xb7, 0x0c, 0x2c, 0xe4, 0xf8, 0x5a, 0xf8, 0x0e, 0x13, 0x79, 0x88, 0xa7, 0x24,
		0xa4, 0x54, 0x61, 0x64, 0xb3, 0x29, 0xc7, 0xd7, 0xfc, 0xe2, 0x4c, 0x67, 0xd8, 0x0e, 0x7d, 0x57,
		0x0e, 0x58, 0x16, 0x69, 0x0a, 0x5b, 0xb1, 0x84, 0xb1, 0x69, 0xd4, 0xcf, 0xcc, 0x56, 0xc7, 0x6a,
		0x9b, 0x47, 0x66, 0xb3, 0x53, 0x60, 0x58, 0x25, 0x2b, 0x45, 0xd7, 0xd1, 0x3c, 0xae, 0x9b, 0x1c,
		0x8d, 0x2f, 0x4f, 0x8c, 0xb7, 0x4f, 0xbe, 0x9f, 0x70, 0x34, 0x7f, 0x3b, 0x32, 0xdf, 0xfc, 0x71,
		0xd2, 0xb0, 0x0e, 0xac, 0x8e, 0xdd, 0x3c, 0x6d, 0x34, 0x38, 0x5e, 0x45, 0x25, 0xba, 0x8a, 0x33,
		0xa3, 0x71, 0xca, 0x12, 0x42, 0x3b, 0x91, 0xf5, 0x8d, 0xe3, 0x03, 0xa3, 0xc1, 0x4b, 0x70, 0x9c,
		0x59, 0x45, 0xbe, 0xd0, 0x19, 0x5a, 0x31, 0xa1, 0x65, 0xe8, 0xea, 0x1f, 0xaf, 0xd0, 0x9a, 0xb6,
		0xcd, 0x10, 0xe6, 0x13, 0x84, 0xb3, 0xda, 0xe4, 0x7e, 0x60, 0x94, 0x51, 0x74, 0x22, 0x3f, 0xf7,
		0xb0, 0xc4, 0xf4, 0x38, 0x36, 0xd5, 0xb4, 0x32, 0x43, 0xe3, 0x9f, 0xb2, 0x1b, 0x96, 0x5b, 0x38,
		0xd3, 0xc8, 0x54, 0xd3, 0x2a, 0xd8, 0x05, 0x41, 0xbe, 0x4f, 0xdf, 0x4f, 0xbb, 0x41, 0x68, 0x84,
		0xa1, 0xcf, 0x2b, 0xe7, 0x3f, 0x72, 0xa5, 0xe9, 0x89, 0x6b, 0x21, 0xb9, 0x6d, 0xf4, 0x16, 0x8e,
		0x9c, 0xdb, 0x39, 0xcb, 0x4b, 0x5f, 0x2b, 0x95, 0xea, 0x6e, 0xa5, 0xb2, 0xb5, 0xbb, 0xbd, 0xbb,
		0xb5, 0xb7, 0xb3, 0x53, 0xaa, 0x96, 0x38, 0x75, 0x85, 0x1d, 0xfb, 0x3d, 0xe1, 0x8b, 0xde, 0xfe,
		0x5d, 0xa1, 0xa6, 0xc9, 0xb1, 0xe7, 0x71, 0x34, 0xfd, 0x34, 0x10, 0x3e, 0xab, 0x9d, 0x76, 0xec,
		0xaf, 0xae, 0xe2, 0xf9, 0xdf, 0x4c, 0xfb, 0x5d, 0x98, 0xed, 0xaf, 0x4e, 0xcc, 0xc6, 0xfe, 0xea,
		0x3a, 0xcc, 0xc5, 0xfe, 0x6a, 0x8a, 0x40, 0xc6, 0xfe, 0x6a, 0x7a, 0xcb, 0x10, 0xfb, 0xab, 0x19,
		0x5f, 0x00, 0xf6, 0x57, 0xc1, 0x39, 0xa6, 0x50, 0xe0, 0x3d, 0x66, 0xb3, 0x5d, 0x66, 0xb8, 0xb5,
		0xba, 0x8b, 0x39, 0x9b, 0x35, 0xbf, 0x30, 0x67, 0x93, 0xae, 0xf1, 0x98, 0xb3, 0xa1, 0xe2, 0x1b,
		0x31, 0x67, 0x93, 0xc1, 0xd2, 0x55, 0x61, 0xce, 0xa6, 0x52, 0xde, 0xab, 0xec, 0x55, 0x77, 0xcb,
		0x7b, 0x18, 0xb7, 0xc1, 0x1a, 0xce, 0x03, 0x41, 0xe7, 0x67, 0x2d, 0xc6, 0x6d, 0xf2, 0x60, 0x21,
		0x75, 0x01, 0x2b, 0x26, 0xc7, 0x5b, 0x27, 0xf6, 0x2a, 0x71, 0x92, 0xcf, 0xdc, 0x41, 0x20, 0x73,
		0xef, 0x8b, 0x1c, 0x54, 0x3b, 0x35, 0xf6, 0x07, 0xfc, 0x4c, 0x3e, 0x6d, 0xbb, 0xbd, 0xe0, 0xe1,
		0x2d, 0xe5, 0x13, 0xaf, 0xe9, 0xfb, 0x39, 0xca, 0xe7, 0x85, 0xf2, 0xd8, 0x88, 0x63, 0xb5, 0x01,
		0xc7, 0x64, 0xe3, 0x0d, 0xc2, 0xbd, 0xeb, 0x04, 0x2a, 0x84, 0x7b, 0xd7, 0xb7, 0xbc, 0x20, 0xdc,
		0x9b, 0x36, 0x09, 0x86, 0x70, 0x6f, 0xde, 0xf2, 0x1e, 0x36, 0x1b, 0x65, 0x89, 0xc7, 0xf5, 0x84,
		0xd3, 0xf7, 0x45, 0x9f, 0x83, 0xc7, 0x9d, 0x0d, 0x1d, 0x32, 0xd8, 0x1a, 0x2b, 0x9c, 0x4c, 0x53,
		0xc9, 0xe4, 0x44, 0xff, 0x09, 0x05, 0x43, 0x2a, 0xa0, 0x90, 0x65, 0x54, 0x8f, 0x3d, 0xf9, 0x5d,
		0xdc, 0x51, 0x27, 0xfd, 0x3c, 0x3a, 0xb8, 0xf9, 0x74, 0x6c, 0xb3, 0xee, 0xd0, 0x66, 0xd4, 0x91,
		0xcd, 0xa8, 0x03, 0x9b, 0xaa, 0x77, 0x62, 0x52, 0x1a, 0x56, 0xb9, 0x24, 0x4c, 0xf9, 0x60, 0x3e,
		0xe5, 0x8a, 0xc0, 0x34, 0x39, 0xdf, 0x3d, 0x4e, 0xc9, 0xe5, 0xe4, 0x3d, 0x0b, 0xe2, 0x36, 0xf4,
		0x1d, 0x7d, 0x1c, 0x81, 0xfb, 0xd2, 0xa3, 0x99, 0x62, 0x16, 0x7c, 0xd1, 0x17, 0xbe, 0x90, 0x5d,
		0xba, 0xad, 0x80, 0x0c, 0xce, 0x4e, 0xed, 0xf9, 0x4e, 0x3f, 0xd4, 0x5d, 0x11, 0xf6, 0xe3, 0x82,
		0x91, 0x1e, 0x88, 0x41, 0xc4, 0xea, 0x74, 0x7f, 0x38, 0x0e, 0x5d, 0x39, 0xd0, 0xc5, 0x6d, 0x28,
		0x64, 0xe0, 0x0e, 0x65, 0xb0, 0xa9, 0x05, 0xe3, 0x4b, 0xbd, 0xd3, 0x38, 0xd3, 0xb6, 0x6b, 0x5a,
		0xa7, 0x71, 0x76, 0x2e, 0x4b, 0xdb, 0x3b, 0x1b, 0x5a, 0x79, 0xf2, 0x47, 0x35, 0xfa, 0x63, 0x77,
		0x13, 0x67, 0xb0, 0xae, 0x24, 0x9f, 0x9a, 0x55, 0x4e, 0x1f, 0x20, 0x8e, 0x63, 0x58, 0x57, 0x4c,
		0x0b, 0xe7, 0x8a, 0xa5, 0xab, 0x5e, 0x03, 0xa8, 0x6b, 0x30, 0xb7, 0xea, 0x82, 0x1e, 0x78, 0x0b,
		0x3f, 0xaf, 0x84, 0x44, 0xa0, 0x7b, 0x7f, 0xa0, 0x4b, 0x2a, 0xa3, 0xe1, 0xdd, 0x48, 0x68, 0xff,
		0xd6, 0x3e, 0x4d, 0xb7, 0x48, 0x74, 0x2f, 0xe8, 0x5d, 0xea, 0xd1, 0x87, 0x41, 0xcd, 0x3a, 0xb1,
		0x5b, 0xa6, 0x71, 0xf0, 0xdd, 0xd8, 0xb7, 0x1a, 0x56, 0xe7, 0x0f, 0xfb, 0xa4, 0x65, 0x1e, 0x5a,
		0x3f, 0xec, 0xb6, 0x55, 0xff, 0x84, 0xc0, 0xb6, 0xd2, 0xc0, 0x16, 0xa3, 0x19, 0x31, 0x6d, 0x7d,
		0x31, 0xed, 0xa3, 0x70, 0x47, 0x9b, 0xce, 0x3b, 0x1e, 0x40, 0x5d, 0x04, 0x5d, 0xdf, 0x1d, 0xb1,
		0xe8, 0x43, 0x4c, 0x1c, 0xe3, 0xb1, 0xf4, 0xee, 0x34, 0x57, 0x76, 0xbd, 0x71, 0x4f, 0x68, 0xe1,
		0x95, 0xd0, 0x26, 0xa5, 0x04, 0xad, 0x6d, 0xd5, 0xb5, 0xee, 0x50, 0x86, 0x8e, 0x2b, 0x85, 0xaf,
		0x45, 0x0b, 0xf6, 0x5c, 0x46, 0xff, 0x3c, 0x63, 0x40, 0x6e, 0xa0, 0xc5, 0xd8, 0xda, 0xde, 0xa4,
		0xbe, 0x90, 0x19, 0xb5, 0x4e, 0xcc, 0xfb, 0xc8, 0xde, 0x1c, 0x9a, 0x18, 0x6c, 0x41, 0x72, 0xec,
		0x9b, 0x78, 0xe4, 0x32, 0x57, 0xb0, 0x10, 0xb0, 0xdf, 0x8a, 0xbc, 0x64, 0x9d, 0x79, 0x09, 0x6a,
		0x96, 0x2f, 0xad, 0x65, 0xda, 0x3b, 0x3d, 0xca, 0xed, 0xf0, 0x10, 0x0c, 0x4a, 0xaa, 0x6c, 0xe7,
		0xd0, 0x0a, 0x24, 0x74, 0x1c, 0x21, 0x21, 0x97, 0x53, 0x98, 0xcc, 0xb9, 0x50, 0xf3, 0x34, 0x09,
		0xad, 0xa7, 0x38, 0x86, 0x93, 0xb4, 0xd4, 0x11, 0x33, 0x8b, 0x6a, 0x8f, 0x3d, 0xe5, 0x9e, 0x7a,
		0x06, 0x3d, 0xf4, 0xd4, 0x13, 0x3f, 0x36, 0x3d, 0xf2, 0x6c, 0x72, 0x3b, 0x1e, 0x3d, 0xf0, 0x68,
		0x3d, 0x78, 0xb1, 0x88, 0xe6, 0xd2, 0xec, 0xd2, 0x2c, 0x84, 0x94, 0x9b, 0xed, 0x13, 0x77, 0x1c,
		0x5b, 0x49, 0xb5, 0x53, 0x98, 0xf4, 0xc8, 0x1d, 0xf9, 0x51, 0x3b, 0x0e, 0x23, 0x76, 0x8c, 0x46,
		0xeb, 0x38, 0xee, 0x9b, 0xb1, 0x18, 0xa5, 0xe3, 0xbd, 0x73, 0x46, 0x7e, 0x74, 0x0e, 0xd3, 0x29,
		0xbf, 0xf2, 0x68, 0xc9, 0x8f, 0xc8, 0x25, 0x1e, 0xd3, 0xed, 0x09, 0x19, 0xba, 0xe1, 0x1d, 0xed,
		0xf1, 0xb8, 0x24, 0x87, 0xa7, 0x3c, 0xe1, 0x61, 0x4d, 0x6f, 0xe5, 0xbe, 0x13, 0x30, 0x92, 0x4d,
		0xb0, 0xda, 0x56, 0xdb, 0x6e, 0x9f, 0xee, 0x77, 0x1a, 0x67, 0x76, 0xe7, 0x8f, 0x13, 0xea, 0x27,
		0x77, 0x4d, 0x64, 0xda, 0x02, 0x16, 0x42, 0x9c, 0xcc, 0x14, 0xec, 0x9f, 0x76, 0x66, 0x58, 0x27,
		0x67, 0x15, 0xbb, 0x75, 0x7c, 0xda, 0x31, 0x5b, 0xb6, 0x55, 0x2f, 0xe0, 0x70, 0x03, 0x20, 0xe2,
		0xe4, 0xac, 0x0a, 0x44, 0x00, 0x11, 0x0b, 0xdd, 0x5b, 0x87, 0x0d, 0xe3, 0x5b, 0x1b, 0x78, 0x00,
		0x1e, 0x1e, 0xba, 0xf9, 0x80, 0x06, 0xa0, 0x61, 0x42, 0x2b, 0xdb, 0x1c, 0x78, 0x25, 0x47, 0x7e,
		0xc9, 0x0b, 0x25, 0xca, 0xf1, 0x4d, 0x46, 0x7e, 0x44, 0x3d, 0xa4, 0x54, 0x81, 0x14, 0x20, 0x45,
		0x35, 0x7e, 0x0a, 0x9c, 0x80, 0xb7, 0x02, 0x25, 0x74, 0x51, 0xd2, 0x31, 0xbe, 0x01, 0x1e, 0x80,
		0xc7, 0x0b, 0xf0, 0xa8, 0x56, 0x70, 0x7c, 0xdc, 0x6a, 0x5f, 0x17, 0xa8, 0x23, 0xe4, 0xbe, 0x8e,
		0xc0, 0xc2, 0xef, 0x02, 0x06, 0xf0, 0xaf, 0x00, 0xc2, 0x7a, 0x80, 0xd0, 0x7e, 0x0c, 0x04, 0xa3,
		0xfe, 0x1f, 0xbb, 0x61, 0x34, 0x51, 0x66, 0x06, 0x1c, 0x66, 0x70, 0x00, 0x14, 0x00, 0x85, 0x18,
		0x0a, 0x47, 0x56, 0xd3, 0xfe, 0xd6, 0x3a, 0x3e, 0x3d, 0x01, 0x1c, 0x00, 0x07, 0xe3, 0xcc, 0xb0,
		0x1a, 0xc6, 0x7e, 0xc3, 0xb4, 0xf7, 0x8d, 0x66, 0xfd, 0xbf, 0x56, 0xbd, 0xf3, 0x1d, 0xb0, 0x00,
		0x2c, 0x12, 0x30, 0xd8, 0x07, 0xc7, 0xcd, 0x76, 0xa7, 0x65, 0x58, 0xcd, 0x0e, 0xda, 0x17, 0x00,
		0x0c, 0xdb, 0xfc, 0xd1, 0x31, 0x9b, 0x75, 0xb3, 0x8e, 0x38, 0x02, 0x5c, 0x2c, 0x6c, 0x4d, 0x5b,
		0xcd, 0x8e, 0xd9, 0x3a, 0x34, 0x0e, 0x4c, 0xdb, 0xa8, 0xd7, 0x5b, 0x66, 0x1b, 0x1e, 0x03, 0xc8,
		0x98, 0x20, 0xa3, 0x69, 0x5a, 0xdf, 0xbe, 0xef, 0x1f, 0xb7, 0x00, 0x0c, 0x00, 0xe3, 0x51, 0x8f,
		0x02, 0x5c, 0x06, 0x90, 0xf1, 0x3c, 0x32, 0xe0, 0x32, 0x00, 0x8c, 0xa7, 0xc0, 0x68, 0x58, 0xcd,
		0xdf, 0x6d, 0xa3, 0xd3, 0x69, 0x59, 0xfb, 0xa7, 0x1d, 0x13, 0x90, 0x00, 0x24, 0x26, 0x90, 0xa8,
		0x9b, 0x0d, 0xe3, 0x0f, 0xa0, 0x01, 0x68, 0x78, 0x40, 0x83, 0x7d, 0x66, 0xb4, 0x2c, 0xa3, 0x63,
		0x1d, 0x37, 0x81, 0x0b, 0xe0, 0x22, 0xc6, 0x05, 0x36, 0x40, 0x00, 0x85, 0x29, 0x14, 0x1a, 0xc7,
		0x20, 0x94, 0x00, 0xc3, 0x14, 0x0c, 0x27, 0xad, 0xe3, 0x8e, 0x79, 0x10, 0x85, 0x8a, 0xc9, 0x1c,
		0x0e, 0x70, 0x91, 0x7b, 0x5c, 0x1c, 0x19, 0x3f, 0x26, 0xd8, 0xc0, 0xae, 0x18, 0x50, 0xf1, 0x08,
		0x15, 0x2d, 0xb3, 0x6d, 0xb6, 0xce, 0xb0, 0x63, 0x0a, 0x6c, 0x3c, 0xc1, 0x86, 0xd5, 0x7c, 0xf0,
		0x1a, 0xc8, 0x47, 0x81, 0x8a, 0x18, 0x15, 0x2d, 0xb3, 0x6d, 0xd5, 0x4f, 0x8d, 0x06, 0x7c, 0x05,
		0x50, 0x81, 0xa9, 0x6f, 0xa0, 0xe4, 0x3d, 0x68, 0x61, 0xd5, 0xcb, 0xcb, 0xc8, 0x89, 0x28, 0x08,
		0x13, 0x40, 0x04, 0x10, 0x51, 0xa5, 0xf7, 0x17, 0x30, 0xc9, 0x0c, 0x26, 0x1c, 0x7b, 0x82, 0x01,
		0x97, 0xac, 0xe0, 0xc2, 0xb4, 0x57, 0x18, 0x80, 0xc9, 0x0a, 0x30, 0x3c, 0x7b, 0x88, 0x81, 0x97,
		0xac, 0xf0, 0xc2, 0xb5, 0xb7, 0x18, 0x88, 0xc9, 0x14, 0x31, 0xfc, 0x1a, 0x08, 0x01, 0x98, 0x0c,
		0x01, 0x53, 0x85, 0x8b, 0x01, 0x62, 0x7e, 0x11, 0x31, 0x70, 0x31, 0x00, 0xcc, 0x5b, 0x01, 0xc3,
		0xae, 0x77, 0x19, 0x50, 0xc9, 0x14, 0x2a, 0x4c, 0xf6, 0x90, 0x81, 0x92, 0xec, 0x51, 0xc2, 0xa9,
		0xd7, 0x19, 0x78, 0xc9, 0x14, 0x2f, 0xd8, 0x20, 0x02, 0x44, 0x94, 0xe8, 0x8d, 0x06, 0x48, 0x32,
		0x05, 0x09, 0xbb, 0x9e, 0x69, 0xe0, 0x25, 0x2b, 0xbc, 0x70, 0xec, 0xa5, 0x06, 0x5a, 0xb2, 0x44,
		0x0b, 0xcf, 0x1e, 0x6b, 0x60, 0x26, 0x33, 0xcc, 0x30, 0xec, 0xbd, 0x06, 0x5a, 0xb2, 0x42, 0x0b,
		0xc7, 0x9e, 0x6c, 0xa0, 0x25, 0x2b, 0xb4, 0x74, 0x4c, 0xbb, 0x6e, 0x1e, 0x1a, 0xa7, 0x8d, 0x8e,
		0x7d, 0x64, 0x76, 0x5a, 0xd6, 0x01, 0xc0, 0x02, 0xb0, 0x2c, 0x03, 0xcb, 0x69, 0x33, 0x69, 0x81,
		0x32, 0xeb, 0x76, 0xa3, 0x8d, 0xb6, 0x16, 0x80, 0xe5, 0x05, 0xb0, 0x4c, 0x78, 0xae, 0x59, 0x47,
		0x24, 0x02, 0x5e, 0xde, 0x80, 0x97, 0x8e, 0xd5, 0xb0, 0xfe, 0x8f, 0x29, 0x5a, 0x70, 0x92, 0x4a,
		0x5e, 0x56, 0x1d, 0xf3, 0xd9, 0x3c, 0x86, 0x7c, 0x0f, 0xa0, 0x00, 0xaf, 0x03, 0x28, 0xc0, 0xdf,
		0x80, 0x0b, 0xf0, 0x34, 0xa0, 0x82, 0x08, 0x2a, 0xa6, 0x87, 0x2f, 0x1f, 0x18, 0x27, 0xc9, 0xd4,
		0x7f, 0xcb, 0x36, 0x1a, 0xdf, 0x8e, 0x5b, 0x56, 0xe7, 0xfb, 0x11, 0x10, 0x01, 0x44, 0xc4, 0x88,
		0x78, 0xf8, 0x1b, 0x20, 0x01, 0x48, 0x40, 0x1a, 0x04, 0x38, 0x51, 0x39, 0xa8, 0x30, 0xf2, 0x24,
		0x2a, 0x22, 0x85, 0x53, 0xb0, 0x49, 0xa0, 0x82, 0xca, 0x61, 0x0e, 0xee, 0x23, 0xdd, 0xfb, 0x47,
		0xf3, 0xbe, 0xd1, 0xb3, 0x8a, 0x96, 0x45, 0xc4, 0x02, 0x4c, 0xc1, 0x90, 0x72, 0x18, 0x3a, 0xa1,
		0x3b, 0x94, 0x85, 0x1a, 0xc1, 0x90, 0x52, 0x08, 0xba, 0x57, 0xe2, 0xda, 0x19, 0x39, 0xe1, 0x55,
		0x14, 0x3c, 0x8a, 0xc3, 0x91, 0x90, 0xdd, 0xa1, 0xec, 0xbb, 0x03, 0x5d, 0x8a, 0xf0, 0xe7, 0xd0,
		0xff, 0x4b, 0x77, 0x65, 0x10, 0x3a, 0xb2, 0x2b, 0x8a, 0x4f, 0x3f, 0x08, 0x16, 0x3e, 0x29, 0x8e,
		0xfc, 0x61, 0x38, 0xec, 0x0e, 0xbd, 0x20, 0x79, 0x57, 0x74, 0x03, 0x37, 0x28, 0x7a, 0xe2, 0x46,
		0x78, 0xd3, 0x2f, 0x45, 0xcf, 0x95, 0x7f, 0xe9, 0x41, 0xe8, 0x84, 0x42, 0xef, 0x39, 0xa1, 0x73,
		0xe9, 0x04, 0xa2, 0xe8, 0x05, 0xa3, 0x62, 0xe8, 0xdd, 0x04, 0xd1, 0x1f, 0x45, 0x77, 0x74, 0x53,
		0xd5, 0x7d, 0xe1, 0x74, 0xaf, 0x9c, 0x4b, 0xd7, 0x73, 0xc3, 0xbb, 0xe2, 0xc8, 0x17, 0x7d, 0xf7,
		0x56, 0x04, 0xd3, 0x37, 0xc5, 0x60, 0x7c, 0x19, 0x7f, 0xf7, 0xe4, 0x6b, 0x31, 0xfe, 0xcf, 0x08,
		0x92, 0xe6, 0x42, 0x10, 0xfa, 0xe3, 0x6e, 0x28, 0xa7, 0xa1, 0xf9, 0x38, 0xb9, 0xb9, 0xcd, 0xc9,
		0x8d, 0xb3, 0xa6, 0xf7, 0xcd, 0x7e, 0xf2, 0xf7, 0xe0, 0xe9, 0x07, 0xf6, 0xc9, 0xec, 0xc6, 0x26,
		0xef, 0x6c, 0x2b, 0x70, 0x03, 0xbb, 0x11, 0xdf, 0xd8, 0xc9, 0x17, 0xbb, 0xe1, 0xca, 0xbf, 0xda,
		0xd1, 0xad, 0xa8, 0x4f, 0x6f, 0xab, 0xdd, 0x08, 0x46, 0x76, 0xc7, 0xbb, 0x09, 0xa2, 0x3f, 0x6c,
		0x6b, 0x74, 0x53, 0x6d, 0xcd, 0xdd, 0x55, 0xfb, 0x64, 0x7a, 0x57, 0xa7, 0x6f, 0xec, 0xf6, 0xe4,
		0xae, 0x4e, 0xbf, 0xda, 0xf1, 0x7f, 0x45, 0x8b, 0x2f, 0xd0, 0xf1, 0x35, 0x84, 0xfc, 0x4c, 0x21,
		0x74, 0x06, 0xe4, 0x9c, 0x4b, 0xc2, 0x47, 0x23, 0xe3, 0x88, 0xf9, 0xe4, 0xdf, 0x5d, 0xd9, 0x2b,
		0xd4, 0xb4, 0x12, 0x31, 0xb3, 0x0e, 0x62, 0xd7, 0x50, 0xa8, 0x69, 0x5b, 0xc4, 0x0c, 0x9b, 0xb8,
		0x07, 0x9a, 0xf1, 0x6b, 0x06, 0xb3, 0x61, 0x57, 0x8f, 0x22, 0x0d, 0xc5, 0x20, 0xd0, 0x1e, 0x8e,
		0xfd, 0xae, 0x20, 0x79, 0xfb, 0x26, 0xcb, 0x41, 0xdc, 0xfd, 0x1c, 0xfa, 0xd1, 0x8a, 0x28, 0x4c,
		0xc2, 0x2b, 0xd1, 0xf2, 0x53, 0xe1, 0xbb, 0x13, 0x18, 0xfe, 0x60, 0x7c, 0x2d, 0x64, 0x58, 0xa8,
		0x69, 0xa1, 0x3f, 0x16, 0x44, 0x0d, 0x9d, 0xb3, 0x32, 0x01, 0x26, 0x78, 0x3b, 0x2b, 0xde, 0x5e,
		0x77, 0x7d, 0xa2, 0x84, 0x3d, 0x66, 0x65, 0x64, 0x9d, 0xc9, 0xcc, 0x1f, 0x53, 0xa5, 0xe4, 0x84,
		0x09, 0x00, 0x79, 0x22, 0xc0, 0x81, 0x10, 0x30, 0x22, 0x06, 0x5c, 0x08, 0x02, 0x3b, 0xa2, 0xc0,
		0x8e, 0x30, 0xf0, 0x22, 0x0e, 0x34, 0x09, 0x04, 0x51, 0x22, 0x41, 0x9e, 0x50, 0xcc, 0x57, 0x11,
		0xb6, 0xcb, 0xf4, 0x9d, 0xd0, 0x5c, 0x5d, 0x61, 0xbb, 0x4c, 0xdd, 0x01, 0x4d, 0x89, 0xc6, 0x16,
		0x71, 0x33, 0xa9, 0x13, 0x0e, 0x4e, 0xc4, 0x83, 0x21, 0x01, 0xe1, 0x46, 0x44, 0xd8, 0x12, 0x12,
		0xb6, 0xc4, 0x84, 0x27, 0x41, 0xa1, 0x4d, 0x54, 0x88, 0x13, 0x96, 0xe4, 0x91, 0x77, 0xee, 0x46,
		0x82, 0x97, 0xc7, 0x1d, 0xbb, 0x32, 0x24, 0xcf, 0x0d, 0xe6, 0xf9, 0xc1, 0x2e, 0x03, 0x53, 0x5b,
		0x8e, 0x1c, 0x08, 0x36, 0xad, 0x7e, 0x7c, 0x9a, 0xb7, 0x0a, 0x47, 0xae, 0x64, 0x13, 0x71, 0x13,
		0xa3, 0xe3, 0xce, 0x4f, 0xfa, 0x84, 0x71, 0xc1, 0xee, 0x43, 0xdf, 0xe9, 0x86, 0xee, 0x50, 0xd6,
		0xdd, 0x81, 0x1b, 0x06, 0x0c, 0x2f, 0xa0, 0x29, 0x06, 0x4e, 0xe8, 0xde, 0x44, 0xf7, 0xbe, 0xef,
		0x78, 0x81, 0x40, 0xe7, 0xe7, 0x3a, 0x96, 0xa4, 0x73, 0xcb, 0x77, 0x49, 0x56, 0xca, 0x7b, 0x95,
		0xbd, 0xea, 0x6e, 0x79, 0x6f, 0x07, 0x6b, 0x13, 0x6b, 0x53, 0x01, 0x82, 0xcc, 0xc7, 0xca, 0x0b,
		0x24, 0x1a, 0x1f, 0x58, 0x3e, 0x0d, 0x37, 0x08, 0x8d, 0x30, 0xf4, 0x79, 0x24, 0x1b, 0x47, 0xae,
		0x34, 0x3d, 0x11, 0xe5, 0xc2, 0x4c, 0x5c, 0x55, 0x14, 0xd5, 0xe6, 0x2c, 0x2e, 0x7d, 0xad, 0x54,
		0xaa, 0xbb, 0x95, 0xca, 0xd6, 0xee, 0xf6, 0xee, 0xd6, 0xde, 0xce, 0x4e, 0xa9, 0x5a, 0x62, 0x10,
		0x30, 0x0a, 0xc7, 0x7e, 0x4f, 0xf8, 0xa2, 0xb7, 0x7f, 0x57, 0xa8, 0x69, 0x72, 0xec, 0x79, 0x9c,
		0x4c, 0x3e, 0x0d, 0x84, 0xcf, 0x22, 0x36, 0x50, 0xf7, 0x14, 0xe2, 0x36, 0xf4, 0x1d, 0x7d, 0x2c,
		0x83, 0xd0, 0xb9, 0xf4, 0x98, 0x14, 0x27, 0x7c, 0xd1, 0x17, 0xbe, 0x90, 0x5d, 0xe4, 0xd0, 0xeb,
		0x60, 0x5e, 0xb3, 0xe1, 0xa7, 0xc3, 0x83, 0x9d, 0xd2, 0xf6, 0x56, 0x4d, 0x33, 0xb4, 0x93, 0xa1,
		0xe7, 0x76, 0xef, 0xb4, 0x83, 0xa1, 0x0c, 0xfd, 0xa1, 0xa7, 0x1d, 0x89, 0xee, 0x95, 0x23, 0xdd,
		0xe0, 0x5a, 0x73, 0xa5, 0x66, 0xb5, 0x75, 0xab, 0xad, 0x9d, 0x06, 0xae, 0x1c, 0x9c, 0x4b, 0xa3,
		0x77, 0xed, 0x4a, 0x37, 0x08, 0xfd, 0x98, 0xbb, 0x69, 0x1d, 0x67, 0x10, 0x6c, 0x6a, 0xc1, 0xf8,
		0x52, 0xef, 0x34, 0xce, 0xb4, 0xd2, 0x66, 0x81, 0x51, 0xde, 0xc2, 0xac, 0x7e, 0x9f, 0xd8, 0x3d,
		0x57, 0xc7, 0x7f, 0x58, 0x26, 0xcc, 0xc8, 0x3f, 0xd7, 0x92, 0x7e, 0x72, 0x01, 0xf3, 0xa5, 0xfd,
		0x75, 0xac, 0x23, 0x64, 0x43, 0xc8, 0x86, 0x70, 0xff, 0xd8, 0x5a, 0x46, 0xb5, 0xaf, 0x86, 0xf8,
		0x80, 0x5d, 0x62, 0xa7, 0x12, 0x83, 0x76, 0xa1, 0x33, 0x28, 0x52, 0xee, 0xec, 0xd5, 0xd8, 0x0f,
		0xdd, 0x75, 0x9c, 0x01, 0xc5, 0xc1, 0x3b, 0xba, 0xbe, 0x09, 0x63, 0x0c, 0xcc, 0x33, 0xe5, 0xc2,
		0xcf, 0x2b, 0x21, 0xc9, 0x26, 0xc5, 0x0c, 0x3a, 0xdc, 0x37, 0x37, 0x27, 0x3e, 0xb9, 0x18, 0xde,
		0x8d, 0x84, 0xf6, 0x6f, 0xed, 0xd3, 0xb4, 0x31, 0x47, 0xf7, 0x82, 0xde, 0xa5, 0x1e, 0x7d, 0x18,
		0xd4, 0xac, 0x93, 0x27, 0x62, 0xa7, 0xc6, 0xb7, 0x4f, 0x68, 0x89, 0x5f, 0x69, 0xe6, 0x1a, 0xc3,
		0x18, 0x0d, 0xf1, 0xeb, 0x4b, 0x4a, 0xdf, 0x8d, 0x73, 0xba, 0x4c, 0x9f, 0xf0, 0x0a, 0xac, 0x8b,
		0xa0, 0xeb, 0xbb, 0x23, 0xf2, 0xc4, 0xfa, 0x91, 0x2b, 0x3c, 0x96, 0xde, 0x9d, 0xe6, 0xca, 0xae,
		0x37, 0xee, 0x09, 0x2d, 0xbc, 0x12, 0x5a, 0xe8, 0x0c, 0xb4, 0xee, 0x50, 0x86, 0x8e, 0x2b, 0x85,
		0xaf, 0x45, 0x4b, 0x34, 0xfe, 0x78, 0x56, 0x96, 0x70, 0x03, 0x2d, 0xc2, 0xcd, 0xb9, 0x24, 0x5f,
		0xe7, 0xe3, 0x54, 0xdb, 0x9b, 0xf7, 0x8a, 0xbd, 0x39, 0x18, 0x31, 0xd8, 0xab, 0xe1, 0x58, 0xc5,
		0x7b, 0xe4, 0x24, 0x3f, 0xb2, 0x02, 0x50, 0xaf, 0x51, 0xa9, 0x5e, 0x43, 0xce, 0xaa, 0x0b, 0x64,
		0x6a, 0x7c, 0xeb, 0x58, 0xca, 0xd4, 0xaf, 0x20, 0x13, 0xb5, 0xfa, 0x8a, 0x15, 0x44, 0xa2, 0xc8,
		0xfb, 0x98, 0x42, 0xe8, 0x0c, 0xaa, 0x15, 0xd2, 0x32, 0x51, 0xd5, 0x0a, 0x84, 0xa2, 0xde, 0x64,
		0x16, 0x84, 0xa2, 0x3e, 0x00, 0x34, 0x08, 0x45, 0xad, 0x22, 0xad, 0x83, 0x50, 0xd4, 0xca, 0x33,
		0x37, 0x08, 0x45, 0xb1, 0xe4, 0xed, 0x10, 0x8a, 0xfa, 0x98, 0x3f, 0x86, 0x50, 0x94, 0x7a, 0x44,
		0x80, 0x03, 0x21, 0x60, 0x44, 0x0c, 0xb8, 0x10, 0x04, 0x76, 0x44, 0x81, 0x1d, 0x61, 0xe0, 0x45,
		0x1c, 0x68, 0x12, 0x08, 0xa2, 0x44, 0x82, 0x3c, 0xa1, 0x20, 0x5e, 0x49, 0x60, 0x55, 0x59, 0x58,
		0x46, 0x34, 0x20, 0x14, 0x95, 0x1f, 0xe2, 0xc1, 0x90, 0x80, 0x70, 0x23, 0x22, 0x6c, 0x09, 0x09,
		0x5b, 0x62, 0xc2, 0x93, 0xa0, 0xd0, 0x26, 0x2a, 0xc4, 0x09, 0x4b, 0xf2, 0xc8, 0x79, 0x0a, 0x45,
		0x91, 0xe7, 0x06, 0xf3, 0xfc, 0xe0, 0x2b, 0x84, 0xa2, 0x56, 0xfc, 0x82, 0x50, 0xd4, 0x7a, 0x8d,
		0x86, 0x50, 0x54, 0x56, 0x3e, 0x0e, 0x42, 0x51, 0x29, 0x2c, 0x49, 0xce, 0x42, 0x51, 0x3c, 0x15,
		0x40, 0xb0, 0x4a, 0x41, 0x95, 0x15, 0xb2, 0x12, 0x92, 0x51, 0x1f, 0x59, 0x3e, 0x90, 0x8c, 0x5a,
		0x7b, 0x7c, 0x83, 0x64, 0x54, 0x96, 0x26, 0x43, 0x32, 0x6a, 0x45, 0x77, 0x14, 0x92, 0x51, 0xc8,
		0xa6, 0x1f, 0x33, 0xaf, 0x75, 0x49, 0x46, 0x95, 0x21, 0x19, 0x95, 0x82, 0xdd, 0x90, 0x8c, 0x22,
		0x70, 0x01, 0x6b, 0x95, 0x8c, 0x2a, 0x43, 0x32, 0x0a, 0xd9, 0x10, 0xee, 0x1f, 0x63, 0xcb, 0x20,
		0x19, 0xf5, 0x31, 0x3b, 0x55, 0x19, 0xb9, 0xab, 0x56, 0x20, 0x1a, 0xb5, 0xee, 0x11, 0xbc, 0x6a,
		0x05, 0xb2, 0x51, 0x7c, 0x2d, 0x82, 0x6c, 0xd4, 0xaf, 0xdb, 0x08, 0xd9, 0xa8, 0x8f, 0x25, 0xbe,
		0xef, 0x94, 0xd3, 0xa9, 0x56, 0x20, 0x1c, 0xb5, 0xda, 0xfc, 0x15, 0xc2, 0x51, 0x6b, 0x4e, 0x4d,
		0x3f, 0x80, 0x74, 0x48, 0x47, 0xbd, 0xe3, 0xde, 0x2b, 0x23, 0x1d, 0x55, 0xad, 0xbc, 0x49, 0x3a,
		0xa7, 0x0c, 0xf1, 0xa8, 0xf5, 0x78, 0x46, 0x88, 0x47, 0xa5, 0xeb, 0x28, 0x3f, 0xb6, 0x06, 0x50,
		0xbb, 0x51, 0xa9, 0x76, 0x03, 0xf9, 0x28, 0x56, 0x19, 0x1b, 0xe4, 0xa3, 0xd2, 0xaa, 0x65, 0x41,
		0x40, 0x6a, 0x1d, 0xd5, 0x2b, 0x48, 0x48, 0x91, 0xf7, 0x33, 0x85, 0x90, 0xe2, 0x80, 0xc7, 0xc3,
		0x9c, 0x67, 0x64, 0x1d, 0x4d, 0x01, 0xa9, 0x2d, 0x08, 0x48, 0xbd, 0xcd, 0x30, 0x08, 0x48, 0xa9,
		0x9c, 0xe6, 0x41, 0x40, 0x6a, 0xad, 0xd9, 0x1b, 0x04, 0xa4, 0x58, 0x32, 0x77, 0xb2, 0x63, 0x93,
		0x89, 0xc7, 0xf3, 0x84, 0xd3, 0xf7, 0x45, 0x9f, 0xa2, 0xc7, 0x9b, 0x09, 0x34, 0xed, 0x12, 0xb4,
		0xed, 0x64, 0x9a, 0xec, 0x3c, 0x2a, 0x3f, 0x83, 0xe7, 0x52, 0xb6, 0x84, 0x88, 0x6f, 0x88, 0x02,
		0x25, 0x31, 0x4a, 0x4b, 0x73, 0xd4, 0x82, 0xee, 0x48, 0x05, 0xab, 0xd1, 0x09, 0xc2, 0x23, 0x12,
		0x84, 0x47, 0x21, 0xa8, 0x38, 0x0b, 0xa2, 0xa5, 0x3f, 0x25, 0x4a, 0x7e, 0x84, 0x38, 0x0f, 0xeb,
		0x22, 0x1f, 0x0d, 0xda, 0x93, 0x3d, 0xc9, 0xc8, 0xd6, 0x82, 0x8c, 0x3d, 0x16, 0x35, 0x4f, 0xc5,
		0xdb, 0x43, 0x11, 0x70, 0x4d, 0x3c, 0x5d, 0x52, 0xb6, 0xbe, 0x28, 0x3b, 0x0f, 0x90, 0xe1, 0xea,
		0x2f, 0x8c, 0x65, 0x4f, 0xf4, 0x5d, 0x29, 0x7a, 0xfa, 0x0c, 0xbd, 0x59, 0x3b, 0x80, 0x07, 0x11,
		0xa8, 0x05, 0xd3, 0x32, 0xf6, 0x92, 0x34, 0x44, 0xa7, 0xc9, 0x6c, 0x12, 0x50, 0xda, 0x14, 0x20,
		0xb8, 0x09, 0x40, 0xad, 0xe8, 0x4f, 0xb6, 0xc8, 0x4f, 0xb6, 0xa8, 0x4f, 0xb3, 0x88, 0x9f, 0x6f,
		0xa6, 0x4a, 0x45, 0x84, 0x79, 0x21, 0x3a, 0xd1, 0x59, 0xe7, 0xcb, 0xe2, 0x27, 0x95, 0xe5, 0x4e,
		0xeb, 0xec, 0x06, 0x72, 0x7b, 0xee, 0x14, 0xf7, 0xda, 0x09, 0xef, 0xb1, 0x53, 0xdd, 0x5b, 0x27,
		0xbf, 0xa7, 0x4e, 0x7e, 0x2f, 0x9d, 0xf6, 0x1e, 0x3a, 0xf6, 0xc5, 0x28, 0x86, 0xe5, 0xb9, 0x02,
		0x08, 0xc5, 0x43, 0x96, 0x48, 0x1f, 0xae, 0x84, 0x53, 0x15, 0xf9, 0x07, 0x6a, 0x06, 0x01, 0x9b,
		0x7a, 0xe0, 0x66, 0x13, 0xc0, 0xd9, 0x04, 0x72, 0x1e, 0x01, 0x9d, 0x56, 0x60, 0x27, 0x16, 0xe0,
		0xc9, 0x06, 0xfa, 0xc4, 0x30, 0x4f, 0xc8, 0x41, 0xbc, 0x5d, 0x44, 0xfc, 0x58, 0xc5, 0xa9, 0x9d,
		0xb4, 0xcf, 0x55, 0xdc, 0xc2, 0xb9, 0x8a, 0xca, 0x51, 0x02, 0x46, 0xd4, 0x80, 0x0b, 0x45, 0x60,
		0x47, 0x15, 0xd8, 0x51, 0x06, 0x5e, 0xd4, 0x81, 0x26, 0x85, 0x20, 0x4a, 0x25, 0x92, 0x47, 0x4b,
		0xfe, 0x78, 0xa2, 0x47, 0xc7, 0x12, 0x7d, 0xa5, 0xec, 0x2f, 0xa7, 0xe1, 0x9b, 0xb0, 0xf8, 0x37,
		0x93, 0x53, 0x88, 0x78, 0x88, 0xd6, 0xf3, 0x39, 0xe7, 0x8f, 0xd9, 0x69, 0x43, 0x6c, 0xcf, 0x2f,
		0xe1, 0x77, 0x6e, 0xc9, 0x3d, 0x8f, 0xd3, 0x16, 0xf8, 0x2d, 0xb5, 0xf2, 0xce, 0x0e, 0x16, 0x1b,
		0x16, 0x1b, 0x03, 0x62, 0x4a, 0xdf, 0xba, 0x0b, 0x48, 0x01, 0x71, 0x75, 0xe6, 0x34, 0xc5, 0x31,
		0x16, 0x52, 0x0b, 0x82, 0x22, 0x19, 0x4f, 0xb3, 0x0a, 0x14, 0x05, 0xdf, 0x69, 0x20, 0x8a, 0x82,
		0x2b, 0x35, 0x15, 0x45, 0xc1, 0x35, 0x19, 0x8c, 0xa2, 0x60, 0xfe, 0xd8, 0x0d, 0x8a, 0x82, 0x1f,
		0xf5, 0x98, 0x28, 0x0a, 0x7e, 0xdc, 0x44, 0x14, 0x05, 0x57, 0x55, 0xa9, 0x40, 0x51, 0x10, 0x75,
		0x0a, 0x05, 0xea, 0x14, 0x28, 0x0a, 0xae, 0x67, 0xa9, 0xa1, 0x28, 0x88, 0xc5, 0xc6, 0x83, 0x98,
		0xd2, 0xb7, 0x0e, 0x45, 0x41, 0xb6, 0xce, 0xbc, 0x70, 0x33, 0xf5, 0x87, 0xc4, 0xab, 0x82, 0x13,
		0x33, 0x51, 0x16, 0x7c, 0x8f, 0x79, 0x28, 0x0b, 0xae, 0x10, 0x88, 0x28, 0x0b, 0xae, 0x6e, 0xd9,
		0xa0, 0x2c, 0xb8, 0x66, 0x83, 0x51, 0x16, 0x54, 0x35, 0x01, 0x63, 0x54, 0x16, 0xbc, 0x74, 0xa5,
		0xe3, 0xdf, 0x31, 0xa8, 0x0b, 0xee, 0x81, 0xc6, 0x32, 0xb4, 0x08, 0xc7, 0xdc, 0xfc, 0x9a, 0x7d,
		0x3c, 0x15, 0xe5, 0x16, 0x24, 0xb0, 0x16, 0x3e, 0x21, 0x7b, 0x80, 0x33, 0x33, 0x09, 0xba, 0xd3,
		0xd9, 0x7d, 0x9d, 0xc9, 0x63, 0x3e, 0xf9, 0x80, 0xe2, 0x21, 0xce, 0x38, 0x0c, 0xe7, 0x39, 0xdc,
		0xe1, 0x30, 0x1c, 0x35, 0x12, 0x79, 0xcc, 0xfd, 0xab, 0x99, 0xb0, 0x63, 0xee, 0x3f, 0x6f, 0x89,
		0x39, 0xe6, 0xfe, 0xf9, 0xf3, 0x7b, 0x1c, 0x86, 0xf3, 0xf1, 0x00, 0x8b, 0xc3, 0x70, 0xd8, 0xf3,
		0x5c, 0x88, 0x7e, 0x3d, 0x0e, 0x94, 0x38, 0x0c, 0xe7, 0x2d, 0x56, 0xe1, 0x30, 0x9c, 0x95, 0x18,
		0x8b, 0xc3, 0x70, 0x18, 0x3b, 0x0b, 0x1c, 0x86, 0x93, 0x6e, 0x61, 0x10, 0x07, 0xe4, 0xac, 0xab,
		0x14, 0x88, 0x23, 0x73, 0x28, 0x58, 0x80, 0x23, 0x73, 0x94, 0xf4, 0x63, 0x38, 0x3c, 0xe7, 0xa3,
		0xee, 0x2a, 0xb7, 0xa7, 0xe8, 0xfc, 0x96, 0x23, 0x37, 0x34, 0xcb, 0xbd, 0x32, 0x2d, 0x50, 0xd2,
		0xc8, 0xb6, 0xe8, 0x64, 0x57, 0xa4, 0xb3, 0x29, 0x42, 0xd9, 0x13, 0xa1, 0x6c, 0x29, 0xab, 0xe5,
		0x4b, 0x84, 0x3d, 0xf0, 0x64, 0x0d, 0x19, 0x72, 0x04, 0x5e, 0xdc, 0x20, 0x1b, 0x2a, 0x90, 0x7e,
		0x20, 0x4e, 0xf7, 0x37, 0xa6, 0xec, 0x33, 0xb2, 0xf6, 0x15, 0xcc, 0x7c, 0x44, 0x06, 0xce, 0x81,
		0x89, 0x53, 0x48, 0xd7, 0x1b, 0xa4, 0xb7, 0x26, 0xd3, 0xf9, 0x4d, 0x29, 0xad, 0xfa, 0x82, 0xb8,
		0x0d, 0x7d, 0x47, 0x1f, 0x47, 0x88, 0xb8, 0xf4, 0xd2, 0xdd, 0x72, 0x2d, 0xf8, 0xa2, 0x2f, 0x7c,
		0x21, 0xbb, 0xe9, 0x8f, 0xe2, 0x67, 0xe0, 0xd6, 0x66, 0xfb, 0xc6, 0xad, 0xc3, 0x83, 0x9d, 0xed,
		0xad, 0xaf, 0x35, 0xad, 0x35, 0x1c, 0x87, 0xae, 0x1c, 0x68, 0xd6, 0xc9, 0x4d, 0x55, 0xfb, 0xe9,
		0x86, 0x57, 0x9a, 0xd5, 0xd6, 0xad, 0xf6, 0xa6, 0xd6, 0x69, 0x9c, 0x69, 0xe5, 0xed, 0x6a, 0x16,
		0x9e, 0x25, 0xe3, 0x5e, 0x99, 0xf9, 0x5e, 0x98, 0x07, 0x70, 0x64, 0xc4, 0x99, 0xa9, 0xb4, 0xbb,
		0x3c, 0x6a, 0x67, 0x79, 0x3b, 0x7a, 0x54, 0x67, 0x45, 0xa9, 0xfd, 0xb6, 0x8b, 0xf4, 0x1e, 0x7b,
		0xe1, 0xe7, 0x95, 0x90, 0x79, 0x72, 0x86, 0x8f, 0xba, 0x40, 0xb4, 0x7f, 0x6b, 0x9f, 0xa6, 0xed,
		0x5a, 0xba, 0x17, 0xf4, 0x2e, 0xf5, 0xe8, 0xc3, 0xa0, 0x66, 0x9d, 0x9c, 0x55, 0xed, 0x96, 0x69,
		0x1c, 0x7c, 0x37, 0xf6, 0xad, 0x86, 0xd5, 0xf9, 0xe3, 0x53, 0xce, 0x3d, 0x63, 0x0c, 0x12, 0x38,
		0xc5, 0x07, 0xa7, 0xf8, 0x4e, 0x14, 0xfd, 0x96, 0x83, 0xea, 0x4f, 0xa1, 0x2e, 0x82, 0xae, 0xef,
		0x8e, 0x32, 0x2d, 0xfd, 0x24, 0xcb, 0xfd, 0x58, 0x7a, 0x77, 0x9a, 0x2b, 0xbb, 0xde, 0xb8, 0x27,
		0xb4, 0xf0, 0x4a, 0x4c, 0xa2, 0xd7, 0x7c, 0x5e, 0xa5, 0x75, 0x87, 0x32, 0x74, 0x5c, 0x29, 0x7c,
		0x2d, 0x82, 0x79, 0xf4, 0x4d, 0xe7, 0x32, 0x0a, 0x69, 0xf1, 0xa3, 0x75, 0x83, 0x28, 0xb4, 0x6d,
		0x66, 0x05, 0x7e, 0x02, 0x9d, 0xc4, 0xf3, 0x7e, 0xa0, 0x37, 0xf7, 0x68, 0x33, 0x2c, 0x51, 0x51,
		0x6a, 0x0b, 0x7e, 0xe4, 0x16, 0x56, 0x85, 0x36, 0x54, 0xb5, 0x78, 0xf3, 0x37, 0xa5, 0xf2, 0xf5,
		0x8c, 0xaa, 0x73, 0x3c, 0xaa, 0x72, 0x29, 0xba, 0x41, 0xda, 0x45, 0xb8, 0x74, 0x7c, 0xd6, 0xfa,
		0xd7, 0x70, 0x0a, 0xab, 0xaa, 0x10, 0xa3, 0x28, 0xf0, 0xbd, 0x41, 0x90, 0xda, 0x8a, 0x4a, 0x08,
		0xd1, 0xdc, 0xef, 0x4e, 0xc9, 0x7f, 0xa4, 0x7b, 0xe8, 0x6e, 0xea, 0x43, 0x75, 0x59, 0x0c, 0xcb,
		0x65, 0x38, 0x04, 0x97, 0x15, 0x25, 0xcd, 0x7c, 0x68, 0x2d, 0x73, 0xd6, 0x99, 0xed, 0x90, 0x99,
		0x5a, 0x7b, 0x10, 0x69, 0x1f, 0xf2, 0xfa, 0xe0, 0x76, 0xd3, 0x5f, 0x38, 0x0b, 0x9e, 0x3f, 0xed,
		0x85, 0x93, 0xcd, 0xa9, 0xeb, 0x99, 0x4d, 0x57, 0x67, 0x39, 0x3d, 0x4d, 0x60, 0x3a, 0x9a, 0x52,
		0xdd, 0x32, 0xdb, 0xe6, 0x41, 0x92, 0x95, 0xcb, 0xcc, 0xa6, 0x93, 0xd5, 0x6e, 0x61, 0xc9, 0xea,
		0xd4, 0xf0, 0xc2, 0x2c, 0xc1, 0xd5, 0xe5, 0xf8, 0xfa, 0x52, 0xf8, 0xd9, 0x57, 0x5c, 0x9f, 0x1a,
		0x94, 0x55, 0xfb, 0x70, 0xa6, 0x92, 0x1f, 0x99, 0x4b, 0x7b, 0x50, 0x90, 0xf0, 0x20, 0x24, 0xd5,
		0x41, 0x45, 0x92, 0x83, 0x9c, 0xf4, 0x06, 0x39, 0x89, 0x0d, 0x5a, 0x52, 0x1a, 0xf9, 0x1a, 0xb9,
		0xc8, 0x5c, 0x02, 0x83, 0x90, 0xd4, 0x05, 0x05, 0x49, 0x8b, 0x45, 0xe9, 0x8a, 0xa7, 0xc1, 0x35,
		0x2f, 0x1b, 0x45, 0x99, 0xb4, 0xbc, 0x3a, 0xa1, 0xc8, 0x9e, 0x4e, 0x65, 0xa9, 0x7e, 0x98, 0x51,
		0xe6, 0x0e, 0x12, 0x05, 0x12, 0x05, 0x12, 0x05, 0x12, 0xc5, 0x93, 0x44, 0x65, 0x55, 0x09, 0x48,
		0x0c, 0xe8, 0x7b, 0x4e, 0x8a, 0x1b, 0x8b, 0xaf, 0xfa, 0xad, 0x89, 0x39, 0x19, 0xaf, 0x07, 0x1a,
		0x02, 0xa0, 0x64, 0x04, 0x3f, 0x29, 0x09, 0x7c, 0x12, 0x14, 0xf4, 0xa4, 0x26, 0xe0, 0x49, 0x56,
		0xb0, 0x93, 0xac, 0x40, 0x27, 0x4d, 0x41, 0xce, 0x7c, 0xeb, 0xc9, 0x90, 0x11, 0xd8, 0x4c, 0x3c,
		0x8e, 0x90, 0xe3, 0x6b, 0xe1, 0x3b, 0x19, 0xb7, 0xb3, 0x2e, 0x64, 0x5b, 0x15, 0x02, 0xb6, 0x98,
		0x72, 0x7c, 0x4d, 0xc7, 0xff, 0x75, 0x86, 0xed, 0xd0, 0x77, 0xe5, 0x80, 0x96, 0xb0, 0xda, 0x56,
		0x84, 0xa1, 0xa6, 0x51, 0x80, 0x0a, 0xde, 0xa3, 0x47, 0x65, 0xc5, 0x5e, 0x97, 0xd0, 0x73, 0x6a,
		0x1a, 0x11, 0xe3, 0x82, 0xa6, 0x19, 0x62, 0x10, 0x2d, 0xf5, 0x54, 0x7a, 0xaa, 0xa9, 0x2c, 0xd4,
		0x52, 0x09, 0xaa, 0xa4, 0x12, 0x54, 0x47, 0xcd, 0x50, 0xa6, 0x2c, 0xc3, 0x0a, 0x25, 0x95, 0x6e,
		0x88, 0x05, 0xaa, 0x49, 0xa3, 0x2b, 0x02, 0xf5, 0x10, 0xd4, 0x43, 0x50, 0x0f, 0x41, 0x3d, 0x04,
		0xf5, 0x10, 0xd4, 0x43, 0x9e, 0xf1, 0x38, 0x63, 0x57, 0x86, 0xdb, 0x65, 0x42, 0xa5, 0x10, 0x02,
		0xc7, 0x89, 0x14, 0x5a, 0x8e, 0x1c, 0xa4, 0x2f, 0x17, 0xb4, 0xec, 0x45, 0xeb, 0xcc, 0x07, 0x7a,
		0xa7, 0xd0, 0x9d, 0x4d, 0x8f, 0xbd, 0xa7, 0x76, 0xa2, 0xda, 0xa1, 0xef, 0x74, 0x43, 0x77, 0x28,
		0xeb, 0xee, 0xc0, 0xa5, 0x76, 0x46, 0xc6, 0xc4, 0x07, 0x88, 0x81, 0x13, 0xba, 0x37, 0x82, 0xd4,
		0xd1, 0x0e, 0x1a, 0xb1, 0x93, 0x17, 0x8f, 0x9c, 0x5b, 0xba, 0x90, 0xaf, 0x94, 0xf7, 0x2a, 0x7b,
		0xd5, 0xdd, 0xf2, 0xde, 0x0e, 0xb0, 0xaf, 0x0a, 0xf6, 0x51, 0xb4, 0x8c, 0x5f, 0x17, 0x28, 0xa5,
		0xa4, 0x5f, 0x4a, 0x19, 0xdd, 0x54, 0x75, 0x57, 0x86, 0xc2, 0xef, 0x3b, 0x5d, 0xa1, 0x3b, 0xbd,
		0x9e, 0x2f, 0x02, 0x42, 0x7d, 0x25, 0x4b, 0xec, 0x43, 0x61, 0x05, 0x85, 0x15, 0x14, 0x56, 0x50,
		0x58, 0x41, 0x61, 0x05, 0x85, 0x15, 0x32, 0x1e, 0x27, 0x8e, 0x55, 0x34, 0x22, 0xd4, 0x7c, 0x94,
		0x2a, 0x7d, 0x25, 0x60, 0xcb, 0x89, 0x13, 0x86, 0xc2, 0x97, 0x64, 0x2a, 0x2c, 0x85, 0xcf, 0x9f,
		0xff, 0xdc, 0xd2, 0xf7, 0x1c, 0xbd, 0x6f, 0xe8, 0x87, 0x17, 0x7f, 0x97, 0x36, 0x2a, 0xf7, 0xb5,
		0x2f, 0x7f, 0xef, 0xde, 0x3f, 0xfd, 0xf0, 0x9f, 0xe7, 0xbe, 0xad, 0xb4, 0xb1, 0x7b, 0x5f, 0x5b,
		0xf2, 0x2f, 0xd5, 0xfb, 0xda, 0x1b, 0xff, 0x8f, 0x9d, 0xfb, 0xcf, 0x0b, 0xdf, 0x1a, 0x7d, 0x5e,
		0x5e, 0xf6, 0x03, 0x95, 0x25, 0x3f, 0xb0, 0xbd, 0xec, 0x07, 0xb6, 0x97, 0xfc, 0xc0, 0x52, 0x93,
		0xca, 0x4b, 0x7e, 0x60, 0xe7, 0xfe, 0x9f, 0x85, 0xef, 0xff, 0xfc, 0xfc, 0xb7, 0x56, 0xef, 0xbf,
		0xfc, 0xb3, 0xec, 0xdf, 0x76, 0xef, 0xff, 0xa9, 0x7d, 0xf9, 0x92, 0xbd, 0xe3, 0xbc, 0xa0, 0xb0,
		0x20, 0x8e, 0xdb, 0xd6, 0x0f, 0x72, 0xab, 0xe2, 0x7f, 0x58, 0x16, 0x59, 0x2d, 0x8b, 0x7f, 0x15,
		0x90, 0x80, 0xe7, 0x35, 0x01, 0x97, 0xc2, 0x1d, 0x5c, 0x5d, 0x0e, 0x7d, 0xa2, 0xf9, 0xf7, 0x82,
		0x79, 0x48, 0xbf, 0x91, 0x7e, 0x23, 0xfd, 0x46, 0xfa, 0x8d, 0xf4, 0x1b, 0xe9, 0x37, 0xd2, 0x6f,
		0xa4, 0xdf, 0x48, 0xbf, 0x91, 0x7e, 0x23, 0xfd, 0x46, 0xfa, 0x8d, 0xf4, 0x1b, 0xe9, 0x37, 0xaf,
		0xf4, 0x7b, 0x14, 0x48, 0x72, 0x53, 0x04, 0x73, 0x36, 0x21, 0xd1, 0x46, 0xa2, 0x8d, 0x44, 0x1b,
		0x89, 0x36, 0x12, 0x6d, 0x24, 0xda, 0x64, 0x3c, 0xce, 0xd8, 0x95, 0xe1, 0x57, 0x42, 0x19, 0xf6,
		0x0e, 0xe6, 0x07, 0x9e, 0xbc, 0x30, 0x3f, 0xf0, 0xb2, 0x51, 0x98, 0x1f, 0x78, 0xaf, 0x0b, 0xc0,
		0xfc, 0xc0, 0x1b, 0x20, 0x4f, 0x79, 0x7e, 0xa0, 0xbc, 0x83, 0xc1, 0x01, 0x65, 0x40, 0x8f, 0xc1,
		0x01, 0x14, 0x4e, 0x32, 0x5a, 0x14, 0x81, 0xef, 0x0d, 0xf4, 0x9b, 0xa9, 0x53, 0x21, 0x52, 0x38,
		0x99, 0xb3, 0x09, 0x85, 0x13, 0x14, 0x4e, 0x50, 0x38, 0x41, 0xe1, 0x04, 0x85, 0x13, 0x14, 0x4e,
		0x48, 0x15, 0x4e, 0xa0, 0xbc, 0x80, 0xca, 0x09, 0x2a, 0x27, 0x48, 0x22, 0x51, 0x39, 0xe1, 0x56,
		0x39, 0x81, 0xf2, 0x02, 0x0a, 0x28, 0x28, 0xa0, 0x28, 0x48, 0x14, 0x21, 0x17, 0xfb, 0xaa, 0x57,
		0x86, 0x5c, 0xec, 0x47, 0x4c, 0x82, 0x5c, 0x6c, 0xb6, 0xa5, 0xca, 0xbb, 0x20, 0x14, 0xd7, 0xba,
		0xdb, 0x23, 0x54, 0xa9, 0x4c, 0x4c, 0x42, 0xa1, 0x12, 0x85, 0xca, 0x57, 0xc0, 0x82, 0x42, 0xe5,
		0x72, 0xf8, 0xa2, 0x50, 0xf9, 0x8b, 0x86, 0xa1, 0x50, 0x49, 0x8e, 0x7f, 0xd2, 0x2b, 0x54, 0x52,
		0x09, 0x4f, 0x1a, 0xe6, 0xa8, 0x5e, 0x31, 0xe8, 0xcf, 0x2d, 0x7d, 0xcf, 0xd0, 0x0f, 0x1d, 0xbd,
		0x7f, 0xf1, 0x77, 0xe5, 0xfe, 0xfc, 0x7c, 0xf3, 0x95, 0x0f, 0x30, 0xfd, 0x43, 0x78, 0xfa, 0xe7,
		0x57, 0x1f, 0x26, 0x66, 0x56, 0x70, 0xda, 0x69, 0x3a, 0xa4, 0x41, 0xca, 0x61, 0x38, 0x39, 0x41,
		0x2d, 0xd3, 0x43, 0x4f, 0x83, 0xee, 0x95, 0xb8, 0x76, 0x46, 0xd3, 0xf3, 0xd2, 0x8b, 0xc3, 0x91,
		0x90, 0xdd, 0x38, 0x73, 0xd0, 0xa5, 0x08, 0x7f, 0x0e, 0xfd, 0xbf, 0xf4, 0xd9, 0x09, 0x1c, 0xc5,
		0xa7, 0x1f, 0x04, 0x0b, 0x9f, 0x14, 0x47, 0xfe, 0x30, 0x1c, 0x76, 0x87, 0x5e, 0x90, 0xbc, 0x2b,
		0x46, 0x74, 0xa8, 0xe8, 0x89, 0x1b, 0xe1, 0x4d, 0xbf, 0x14, 0x3d, 0x57, 0xfe, 0xa5, 0xc7, 0xc7,
		0x73, 0xeb, 0x3d, 0x27, 0x74, 0x2e, 0x9d, 0x40, 0x14, 0xbd, 0x60, 0x54, 0x0c, 0xbd, 0x9b, 0x20,
		0xfa, 0xa3, 0x18, 0x8f, 0x1d, 0x07, 0xbe, 0x37, 0x08, 0x1e, 0xde, 0x16, 0xb3, 0x3c, 0xcf, 0x7b,
		0x72, 0xa7, 0x42, 0x7f, 0xdc, 0x0d, 0xe5, 0x34, 0x9e, 0x1f, 0x27, 0x37, 0xaa, 0x39, 0xb9, 0x09,
		0xd6, 0xf4, 0x1e, 0xd8, 0x4f, 0xfe, 0x1e, 0x3c, 0xfd, 0xc0, 0x3e, 0x99, 0xdd, 0xa4, 0xe4, 0x9d,
		0x6d, 0x05, 0x6e, 0x60, 0x37, 0xe2, 0x9b, 0x34, 0xf9, 0x62, 0x37, 0x5c, 0xf9, 0x57, 0x3b, 0xba,
		0xe4, 0xfa, 0xf4, 0x16, 0xd9, 0x8d, 0x60, 0x64, 0x77, 0xbc, 0x9b, 0x20, 0xfa, 0xc3, 0xb6, 0x46,
		0x37, 0xd5, 0x76, 0x74, 0x87, 0x92, 0x77, 0x76, 0xfc, 0xdd, 0xb9, 0x39, 0xd8, 0xfe, 0x37, 0x85,
		0x9d, 0x44, 0x94, 0x83, 0x65, 0x7f, 0xf6, 0x4d, 0xb6, 0x45, 0xdc, 0xec, 0x8b, 0xb6, 0x24, 0x8b,
		0xb4, 0x04, 0x8a, 0xb2, 0x04, 0x8a, 0xb0, 0x69, 0xaf, 0xc7, 0x8c, 0x83, 0x35, 0x9b, 0x20, 0x9d,
		0x41, 0x78, 0xa6, 0x1e, 0x96, 0xd3, 0x0d, 0xc8, 0xe9, 0x85, 0xc5, 0x74, 0x7e, 0x53, 0x4a, 0x0b,
		0xbd, 0x20, 0x6e, 0x43, 0xdf, 0xd1, 0xc7, 0x11, 0x14, 0x2e, 0xbd, 0x74, 0x2b, 0x47, 0x05, 0x5f,
		0xf4, 0x85, 0x2f, 0x64, 0x37, 0xfd, 0x8e, 0xad, 0x0c, 0x3c, 0xd9, 0xac, 0x1c, 0xd6, 0x3a, 0x3c,
		0xa8, 0x96, 0x4a, 0x7b, 0x35, 0xcd, 0x3a, 0xb9, 0xa9, 0x6a, 0x1d, 0xdf, 0xe9, 0xf7, 0xdd, 0xae,
		0x66, 0xca, 0x81, 0x2b, 0x85, 0xf0, 0x5d, 0x39, 0xd0, 0x5c, 0xa9, 0x59, 0x6d, 0xdd, 0x6a, 0x6f,
		0x6a, 0x9d, 0xc6, 0x99, 0x56, 0xda, 0xde, 0xdb, 0xcc, 0xc2, 0xbb, 0x64, 0x5c, 0x9d, 0x9f, 0xaf,
		0xc6, 0x3f, 0xe0, 0x24, 0xa3, 0x94, 0x95, 0x4a, 0x01, 0xfe, 0x51, 0xc1, 0xfd, 0x5d, 0x40, 0x52,
		0x3d, 0x5d, 0xf9, 0x4d, 0xc1, 0xca, 0x63, 0xe1, 0xe7, 0x95, 0x90, 0x79, 0x72, 0x91, 0x9b, 0x9b,
		0x93, 0x9a, 0x47, 0x31, 0xbc, 0x1b, 0x09, 0xed, 0xdf, 0xda, 0xa7, 0xe9, 0xde, 0x92, 0xee, 0x05,
		0xbd, 0x4b, 0x3d, 0xfa, 0x30, 0xa8, 0x59, 0x27, 0x67, 0x55, 0xbb, 0xdd, 0x6a, 0x7c, 0xfb, 0x94,
		0x73, 0xe7, 0x18, 0x83, 0x03, 0x7e, 0xf1, 0xc1, 0x2f, 0xfe, 0x22, 0x7a, 0xd2, 0xf7, 0x88, 0x19,
		0xe0, 0xb5, 0x2e, 0x82, 0xae, 0xef, 0x8e, 0x32, 0x2d, 0xba, 0x26, 0xcb, 0xdb, 0x92, 0x5d, 0x6f,
		0xdc, 0x13, 0x5a, 0x78, 0x25, 0x26, 0xb1, 0x2b, 0x7a, 0x10, 0x71, 0x88, 0x1a, 0x4a, 0xef, 0x4e,
		0x8b, 0x00, 0x1d, 0xff, 0x5b, 0xf4, 0x89, 0x1b, 0x68, 0xd1, 0x13, 0x3b, 0x97, 0x19, 0xd1, 0x20,
		0x8d, 0x48, 0xa3, 0xc2, 0xfc, 0x8a, 0xef, 0xcd, 0x3d, 0xcc, 0x0c, 0xab, 0xc2, 0x94, 0xba, 0x12,
		0x1e, 0x39, 0x80, 0xf7, 0xe3, 0x0b, 0x25, 0x64, 0xde, 0x9c, 0x4c, 0xa9, 0xcc, 0x3c, 0xa3, 0xd2,
		0x1b, 0xf1, 0x92, 0x5b, 0x8a, 0x1e, 0x8f, 0x68, 0x81, 0x2d, 0x1d, 0x2f, 0xb5, 0xfe, 0x55, 0x9b,
		0xc2, 0x3a, 0x9a, 0xc8, 0x38, 0x87, 0x42, 0xf7, 0x87, 0xe3, 0x50, 0xf8, 0x69, 0x76, 0xed, 0x3e,
		0x56, 0x92, 0x7e, 0x64, 0x42, 0x4a, 0xfe, 0x63, 0xd6, 0xea, 0x94, 0xd2, 0xaf, 0x4b, 0xbb, 0xeb,
		0x36, 0x8b, 0xee, 0xda, 0x0c, 0xbb, 0x68, 0xb3, 0x22, 0xa1, 0x99, 0x77, 0xc5, 0x66, 0xce, 0x33,
		0xb3, 0xed, 0x72, 0x55, 0x6b, 0xb7, 0xa1, 0xee, 0xfa, 0x29, 0x93, 0x99, 0xb8, 0x35, 0x24, 0xf5,
		0x45, 0x93, 0xf4, 0xbe, 0x66, 0xd0, 0xba, 0x93, 0xb2, 0xe3, 0xcf, 0x2c, 0x00, 0x64, 0x19, 0x08,
		0x08, 0x04, 0x04, 0x2a, 0xd5, 0x09, 0x32, 0x63, 0x13, 0x34, 0xab, 0x91, 0x99, 0x8d, 0x45, 0xa8,
		0xdd, 0x27, 0x96, 0x76, 0x20, 0x49, 0x7e, 0x71, 0xfa, 0x99, 0xc4, 0x52, 0x9f, 0x93, 0x76, 0x46,
		0xb1, 0x2c, 0xd0, 0x64, 0x34, 0x66, 0x97, 0xf9, 0x9c, 0x1f, 0x85, 0xf9, 0x3e, 0x42, 0x73, 0x7d,
		0x54, 0xe6, 0xf9, 0xc8, 0xcd, 0xf1, 0x91, 0x9b, 0xdf, 0xa3, 0x35, 0xb7, 0x97, 0xaf, 0xe9, 0x87,
		0xcc, 0xe7, 0xf3, 0xa8, 0x1d, 0x71, 0x46, 0x61, 0x24, 0x8f, 0xcc, 0x28, 0x1e, 0x8e, 0x32, 0xcb,
		0xe1, 0x51, 0x66, 0x17, 0x59, 0x02, 0x9f, 0xd2, 0xf0, 0x22, 0x8e, 0x2c, 0xcb, 0xe5, 0x91, 0x65,
		0x17, 0xb9, 0x22, 0x00, 0x24, 0x04, 0xa2, 0xe8, 0x08, 0x43, 0x91, 0x16, 0x84, 0x22, 0x24, 0x04,
		0x45, 0x48, 0x00, 0x2a, 0xab, 0x95, 0x93, 0xe1, 0xa8, 0xc2, 0x62, 0x19, 0x28, 0xb3, 0xd1, 0x85,
		0xa7, 0x2f, 0x42, 0x4a, 0x1f, 0xbf, 0xd8, 0x91, 0x7e, 0x2e, 0x4b, 0x95, 0xad, 0x4d, 0x28, 0x11,
		0xbd, 0x58, 0xc1, 0xc8, 0x7a, 0xf6, 0x81, 0x7c, 0x31, 0xe3, 0xd9, 0xa2, 0xc6, 0xfb, 0x90, 0x98,
		0x77, 0xe9, 0xa2, 0xbc, 0x31, 0x40, 0xec, 0xc9, 0xac, 0x76, 0x01, 0x62, 0x56, 0xf8, 0xf9, 0xc6,
		0xc5, 0xf9, 0xee, 0xaf, 0xcc, 0xd4, 0x3c, 0xe8, 0x75, 0x33, 0x76, 0x44, 0x2b, 0xbe, 0x2b, 0x56,
		0x2f, 0x0b, 0x05, 0x0f, 0x0c, 0x0c, 0xb3, 0x63, 0xe1, 0x18, 0x84, 0x5b, 0x36, 0xca, 0xd4, 0x31,
		0xed, 0xd6, 0xf1, 0x69, 0xc7, 0x6c, 0xd9, 0x56, 0x1d, 0x03, 0x71, 0x18, 0x88, 0x7b, 0xdf, 0x40,
		0xdc, 0x63, 0x14, 0x61, 0x30, 0x2e, 0xed, 0xe5, 0xbe, 0x30, 0xb8, 0x14, 0x4e, 0x13, 0x17, 0x31,
		0x97, 0xb8, 0x4c, 0x98, 0x84, 0x66, 0xd5, 0x93, 0x89, 0xa6, 0x73, 0xf9, 0xdc, 0x48, 0x93, 0x96,
		0x61, 0x72, 0x8d, 0x89, 0x39, 0xf2, 0xa9, 0xf3, 0xcb, 0x13, 0x73, 0x1f, 0x07, 0x1e, 0x32, 0x3a,
		0xd6, 0xbf, 0x0d, 0xa3, 0x74, 0xb9, 0xc9, 0x48, 0x73, 0x3d, 0x51, 0xf7, 0x90, 0x83, 0x62, 0xac,
		0xee, 0xed, 0x8f, 0xd1, 0x0d, 0x74, 0xc7, 0x73, 0x9d, 0x20, 0x9b, 0x81, 0xba, 0xb9, 0x5f, 0x8e,
		0x51, 0xba, 0x95, 0xfc, 0x42, 0x8c, 0xd2, 0xa5, 0xcd, 0x48, 0x31, 0x4a, 0x87, 0x51, 0xba, 0x0f,
		0x66, 0xae, 0x18, 0xa5, 0x53, 0xcd, 0xf1, 0x2f, 0x06, 0x80, 0x32, 0x46, 0xe9, 0x72, 0x54, 0xb6,
		0xc0, 0x28, 0x1d, 0xad, 0x80, 0x91, 0x51, 0x92, 0x9f, 0x97, 0x51, 0xba, 0xd4, 0x53, 0x88, 0xa5,
		0x2e, 0x27, 0xe5, 0x7c, 0x62, 0x59, 0x98, 0xc1, 0x20, 0x1d, 0x06, 0xe9, 0x30, 0x48, 0xc7, 0x20,
		0x2c, 0xd1, 0x0a, 0x4f, 0xd9, 0x84, 0xa9, 0x8c, 0xc2, 0x55, 0x72, 0xeb, 0xe9, 0x0c, 0xd2, 0x51,
		0x38, 0xe0, 0x0e, 0x53, 0x74, 0xf3, 0x86, 0xf0, 0x39, 0xc8, 0x0e, 0xb3, 0x5f, 0x33, 0x6b, 0x38,
		0x1d, 0x58, 0x87, 0x7e, 0x55, 0x15, 0x12, 0x1f, 0xf4, 0xab, 0x3e, 0xb3, 0x3b, 0xf8, 0xb0, 0xb9,
		0x82, 0x4e, 0xd5, 0xc9, 0x2e, 0x61, 0x60, 0x44, 0x37, 0x04, 0x4d, 0xaa, 0x8c, 0x96, 0x38, 0x4e,
		0xb5, 0x49, 0x9b, 0x03, 0xb7, 0x0e, 0x0f, 0x76, 0xb6, 0x4b, 0xa5, 0x9a, 0xd6, 0x76, 0xaf, 0x47,
		0x9e, 0xdb, 0x77, 0x45, 0x4f, 0x33, 0x6f, 0x43, 0x21, 0x03, 0x77, 0x28, 0xb5, 0x61, 0x5f, 0x8b,
		0x56, 0x99, 0x16, 0xaf, 0x20, 0xed, 0xa4, 0x7e, 0xaa, 0x7d, 0x6e, 0xb4, 0x4f, 0xbe, 0x9c, 0xcb,
		0xf6, 0xc8, 0xe9, 0x0a, 0xad, 0x3f, 0xf4, 0x27, 0xc3, 0x38, 0x71, 0x1b, 0x51, 0xb9, 0x82, 0xf3,
		0x6e, 0x70, 0xde, 0xcd, 0x62, 0x7e, 0xbd, 0x62, 0x88, 0xa1, 0x55, 0x8c, 0x5f, 0x0a, 0x83, 0x01,
		0x80, 0xe7, 0x5a, 0xb7, 0xdb, 0x56, 0xdb, 0x36, 0x1a, 0x96, 0xd1, 0x46, 0xf3, 0x3f, 0x9a, 0xff,
		0xdf, 0xd5, 0xfc, 0xff, 0x18, 0x41, 0x68, 0xfc, 0x4f, 0x7b, 0x99, 0x1f, 0x4b, 0xef, 0x4e, 0x73,
		0xe7, 0x9b, 0xb0, 0xdb, 0x56, 0x5b, 0x8b, 0x13, 0x31, 0xcd, 0xaa, 0x6b, 0xdd, 0xa1, 0x0c, 0x1d,
		0x57, 0x0a, 0xff, 0xd1, 0xd9, 0x25, 0xe7, 0x72, 0xd6, 0x70, 0x9d, 0x0d, 0x63, 0xd2, 0xd0, 0xe8,
		0x4f, 0xdd, 0x13, 0x2c, 0x78, 0x83, 0x15, 0x00, 0x0d, 0xa5, 0x2f, 0xde, 0x6c, 0x0d, 0x8d, 0xfd,
		0xea, 0x97, 0xee, 0xf2, 0xdb, 0xd2, 0x3f, 0x2b, 0xd6, 0xa1, 0x9b, 0xff, 0xed, 0x4f, 0xd0, 0x0d,
		0x74, 0x5f, 0x38, 0xdd, 0x2b, 0xe7, 0xd2, 0xf5, 0xdc, 0xf0, 0x2e, 0x93, 0x8e, 0xfe, 0x47, 0x06,
		0xa0, 0xab, 0x7f, 0x25, 0xbf, 0x10, 0x5d, 0xfd, 0x69, 0xd3, 0x4f, 0x74, 0xf5, 0xa3, 0xab, 0xff,
		0x83, 0x69, 0x69, 0xda, 0x5d, 0xfd, 0x52, 0xb8, 0x83, 0xab, 0xcb, 0xa1, 0x1f, 0x64, 0xd7, 0xd9,
		0xff, 0x60, 0x02, 0x0e, 0xca, 0x51, 0x2d, 0x20, 0x10, 0x08, 0x0c, 0x54, 0x6a, 0x15, 0xe8, 0xee,
		0xa7, 0x15, 0x38, 0x32, 0xca, 0xf4, 0xf3, 0xd2, 0xdd, 0x3f, 0xf3, 0xea, 0xd9, 0x57, 0x57, 0x13,
		0x4b, 0xb2, 0xed, 0xee, 0x2f, 0xa1, 0xbb, 0x1f, 0xdd, 0xfd, 0xe8, 0xee, 0xa7, 0x1f, 0x96, 0x68,
		0x85, 0xa7, 0x6c, 0xc2, 0x54, 0x46, 0xe1, 0x2a, 0xf3, 0xb0, 0x95, 0x18, 0xd0, 0x13, 0x7d, 0x67,
		0xec, 0x85, 0xfa, 0xb5, 0x08, 0x7d, 0xb7, 0x9b, 0xfd, 0x6a, 0x9d, 0x39, 0xb0, 0x27, 0x76, 0x65,
		0xbc, 0x42, 0xb2, 0x0d, 0x6d, 0x64, 0x42, 0x1c, 0xa5, 0x50, 0x47, 0x30, 0xe4, 0x51, 0x0b, 0x7d,
		0x64, 0x43, 0x20, 0xd9, 0x50, 0x48, 0x33, 0x24, 0x66, 0x1b, 0x1a, 0x33, 0x0e, 0x91, 0x64, 0x42,
		0x65, 0x62, 0x48, 0x36, 0x02, 0x21, 0xaf, 0xfa, 0xbf, 0xac, 0xc6, 0x18, 0x08, 0x07, 0x4c, 0x72,
		0x81, 0x93, 0x62, 0x00, 0x25, 0x1c, 0x48, 0xa9, 0x06, 0x54, 0xf2, 0x81, 0x95, 0x7c, 0x80, 0xa5,
		0x1d, 0x68, 0x69, 0x04, 0x5c, 0x22, 0x81, 0x97, 0x5c, 0x00, 0x4e, 0x0c, 0xea, 0x7b, 0xce, 0x20,
		0xa0, 0xe7, 0x14, 0x66, 0x7e, 0x74, 0x62, 0x1e, 0xb1, 0xf5, 0x96, 0xad, 0x04, 0x0b, 0x9b, 0x00,
		0x4d, 0x39, 0x50, 0x33, 0x08, 0xd8, 0xd4, 0x03, 0x37, 0x9b, 0x00, 0xce, 0x26, 0x90, 0xf3, 0x08,
		0xe8, 0xb4, 0x02, 0x3b, 0xb1, 0x00, 0x9f, 0x3c, 0xc2, 0xcc, 0x25, 0x67, 0x5e, 0xf5, 0x78, 0x42,
		0x8e, 0xaf, 0x85, 0xef, 0x64, 0x3c, 0xff, 0xf0, 0x6a, 0xf6, 0x5b, 0x21, 0x68, 0x9b, 0x29, 0xc7,
		0xd7, 0x74, 0xfd, 0x71, 0x67, 0xd8, 0x0e, 0x7d, 0x57, 0x0e, 0xc8, 0x5a, 0x18, 0x5b, 0xb9, 0x15,
		0x1f, 0x26, 0xd1, 0xec, 0x98, 0xad, 0xa6, 0xd1, 0x28, 0x90, 0xb4, 0xf3, 0x7e, 0x83, 0xea, 0x03,
		0xb6, 0xe2, 0xd8, 0x40, 0xf8, 0xe9, 0x26, 0x0f, 0xb6, 0xa6, 0x6d, 0xd1, 0x7c, 0xb6, 0x88, 0xa7,
		0x4c, 0xac, 0x21, 0xb4, 0x0a, 0x0b, 0x44, 0x76, 0x78, 0x97, 0xc6, 0x74, 0x12, 0x3b, 0xbd, 0xc8,
		0x97, 0x91, 0x2f, 0x23, 0x5f, 0x46, 0xbe, 0x8c, 0x7c, 0x19, 0xf9, 0xb2, 0x42, 0xf9, 0xb2, 0x74,
		0x7c, 0x7f, 0xf8, 0x53, 0x27, 0x19, 0x62, 0xe7, 0xc3, 0xec, 0x0e, 0x41, 0xd3, 0x5a, 0x8e, 0x1c,
		0x88, 0xcc, 0x75, 0x43, 0x97, 0xbd, 0x08, 0xe7, 0x51, 0x47, 0xae, 0x24, 0x9d, 0xe8, 0xc5, 0x46,
		0x9e, 0x39, 0xde, 0x58, 0xd0, 0xe9, 0x54, 0x58, 0x6a, 0xe7, 0xa1, 0xef, 0x74, 0x43, 0x77, 0x28,
		0xeb, 0xee, 0xc0, 0x0d, 0x03, 0x7a, 0xc4, 0x6f, 0xd1, 0xf5, 0x88, 0x81, 0x13, 0xba, 0x37, 0xd1,
		0xbd, 0xed, 0x3b, 0x5e, 0x20, 0xc8, 0x5a, 0x7b, 0xbf, 0x41, 0x78, 0x09, 0x39, 0xb7, 0x7c, 0x96,
		0x50, 0x75, 0x1b, 0x6b, 0x28, 0xaf, 0x6b, 0x08, 0x75, 0xb2, 0x37, 0xbd, 0x2e, 0x50, 0x27, 0x23,
		0x6c, 0x09, 0x95, 0x46, 0x9b, 0x8c, 0x05, 0xbb, 0x97, 0xda, 0x45, 0x54, 0x0d, 0x68, 0x5e, 0x53,
		0xa5, 0x98, 0x0c, 0xd9, 0x27, 0xef, 0x8a, 0x8f, 0x47, 0x49, 0x8a, 0x94, 0xfa, 0x64, 0x35, 0x82,
		0xca, 0x42, 0xad, 0xb9, 0xdb, 0x69, 0x37, 0x67, 0xb7, 0x33, 0x79, 0x67, 0xd7, 0x27, 0xb7, 0xf3,
		0x28, 0xbe, 0x9b, 0x59, 0x88, 0x85, 0xd3, 0x75, 0x22, 0xf9, 0x6e, 0xd0, 0x27, 0xe6, 0xb6, 0xd4,
		0x70, 0x57, 0x14, 0xc6, 0x99, 0x38, 0x3b, 0xa8, 0x6c, 0x5d, 0x53, 0x76, 0x0e, 0x21, 0x43, 0x67,
		0x50, 0xe8, 0x09, 0xcf, 0xb9, 0x23, 0x38, 0x51, 0x3a, 0x67, 0x15, 0xe6, 0x49, 0x31, 0x4f, 0xfa,
		0x0a, 0x5e, 0x30, 0x4f, 0xba, 0x1c, 0xbe, 0x98, 0x27, 0xfd, 0x55, 0x6e, 0x84, 0x79, 0x52, 0x6a,
		0x74, 0x15, 0xf3, 0xa4, 0x2f, 0xfb, 0x3f, 0xcc, 0x93, 0xd2, 0x0f, 0x9c, 0x14, 0x03, 0x28, 0xe1,
		0x40, 0x4a, 0x35, 0xa0, 0x92, 0x0f, 0xac, 0xe4, 0x03, 0x2c, 0xed, 0x40, 0x4b, 0xa7, 0x42, 0xa5,
		0x61, 0x9e, 0x74, 0xb9, 0x41, 0x98, 0x27, 0x7d, 0x77, 0x60, 0x46, 0x7f, 0x2c, 0xdf, 0x40, 0xcd,
		0x20, 0x60, 0x53, 0x0f, 0xdc, 0x6c, 0x02, 0x38, 0x9b, 0x40, 0xce, 0x23, 0xa0, 0xd3, 0x0a, 0xec,
		0xc4, 0x02, 0x7c, 0xf2, 0x08, 0xe9, 0xf7, 0xc7, 0xc6, 0x27, 0xc5, 0x4d, 0x4a, 0xc3, 0x3a, 0xc5,
		0x30, 0xab, 0x61, 0xaa, 0xf4, 0x43, 0x00, 0x64, 0x38, 0x55, 0x4a, 0xb8, 0x2b, 0xb1, 0x14, 0x19,
		0x7a, 0xda, 0x6c, 0x9f, 0x9e, 0x9c, 0x1c, 0xb7, 0x3a, 0x66, 0x1d, 0x13, 0xb0, 0xbf, 0x06, 0x46,
		0x56, 0x13, 0xb0, 0x84, 0x71, 0x38, 0x0f, 0xc1, 0x9a, 0x56, 0x42, 0x0f, 0x22, 0xb8, 0xca, 0x87,
		0x31, 0xd5, 0x70, 0x83, 0xd0, 0x08, 0x43, 0x9f, 0x26, 0x5f, 0x39, 0x72, 0xa5, 0xe9, 0x89, 0x88,
		0x0e, 0x13, 0x6d, 0x5f, 0x2e, 0x1c, 0x39, 0xb7, 0x73, 0x16, 0x96, 0xbe, 0x56, 0x2a, 0xd5, 0xdd,
		0x4a, 0x65, 0x6b, 0x77, 0x7b, 0x77, 0x6b, 0x6f, 0x67, 0xa7, 0x54, 0x2d, 0x51, 0x1c, 0xf1, 0x39,
		0xf6, 0x7b, 0xc2, 0x17, 0xbd, 0xfd, 0xbb, 0x42, 0x4d, 0x93, 0x63, 0xcf, 0xa3, 0x6c, 0xe2, 0x69,
		0x20, 0x7c, 0x92, 0xfd, 0xe0, 0x98, 0xba, 0x7f, 0xee, 0xb9, 0x61, 0xea, 0xfe, 0x03, 0xa9, 0x0e,
		0xaa, 0x8a, 0x6f, 0x34, 0x0c, 0x55, 0xc5, 0x0f, 0x99, 0x88, 0xaa, 0xe2, 0x8a, 0x0c, 0x45, 0x55,
		0x11, 0x4c, 0x3d, 0xb5, 0x3c, 0x1a, 0x53, 0xf7, 0x2b, 0x0a, 0xb3, 0x98, 0xba, 0xff, 0xd5, 0x17,
		0xa6, 0xee, 0x3f, 0x66, 0x24, 0xa6, 0xee, 0xd7, 0xe5, 0x7a, 0x30, 0x75, 0xbf, 0x92, 0x1a, 0x06,
		0xa6, 0xee, 0xb1, 0x86, 0x30, 0x75, 0xaf, 0x88, 0x55, 0x98, 0xba, 0xa7, 0x6c, 0x09, 0xa6, 0xee,
		0x5f, 0xb6, 0x8b, 0xed, 0x18, 0xeb, 0xc3, 0xb8, 0x1d, 0x66, 0xee, 0x3f, 0x3c, 0xd2, 0xea, 0x39,
		0x77, 0x98, 0xb8, 0xa7, 0x66, 0x01, 0x26, 0xee, 0x95, 0x73, 0x55, 0x98, 0xb7, 0xff, 0x88, 0x73,
		0xc2, 0xb4, 0x7d, 0xfa, 0x68, 0x11, 0xbe, 0x3f, 0xf4, 0xc9, 0x4d, 0xdb, 0x3f, 0xb2, 0x0a, 0xd3,
		0xf6, 0x98, 0xb6, 0x7f, 0x05, 0x2f, 0x98, 0xb6, 0x5f, 0x0e, 0x5f, 0x4c, 0xdb, 0xff, 0x2a, 0x2f,
		0xc2, 0xb4, 0x3d, 0x35, 0xaa, 0x8a, 0x69, 0xfb, 0x97, 0xfd, 0x1f, 0xa6, 0xed, 0xe9, 0x07, 0x4e,
		0x8a, 0x01, 0x94, 0x70, 0x20, 0xa5, 0x1a, 0x50, 0xc9, 0x07, 0x56, 0xf2, 0x01, 0x96, 0x76, 0xa0,
		0xa5, 0x53, 0x9d, 0xd2, 0x30, 0x6d, 0xbf, 0xdc, 0x20, 0x4c, 0xdb, 0xbf, 0x3b, 0x30, 0xa3, 0x2f,
		0x96, 0x6f, 0xa0, 0x66, 0x10, 0xb0, 0xa9, 0x07, 0x6e, 0x36, 0x01, 0x9c, 0x4d, 0x20, 0xe7, 0x11,
		0xd0, 0x69, 0x05, 0x76, 0x62, 0x01, 0x3e, 0x79, 0x84, 0x98, 0xb6, 0x5f, 0x69, 0x0e, 0x8c, 0x69,
		0xfb, 0x5f, 0x06, 0x20, 0xa6, 0xed, 0x57, 0x69, 0x28, 0xa6, 0xed, 0x3f, 0x06, 0x46, 0x4c, 0xdb,
		0xaf, 0xc6, 0x4c, 0x4c, 0xdb, 0x83, 0xab, 0xac, 0x1a, 0x53, 0x98, 0xb6, 0xff, 0xa0, 0x85, 0x98,
		0xb6, 0x5f, 0xaf, 0x89, 0x98, 0xb6, 0xe7, 0xe4, 0x53, 0x30, 0x6d, 0xff, 0x91, 0x54, 0x07, 0x55,
		0xc5, 0x37, 0x1a, 0x86, 0xaa, 0xe2, 0x87, 0x4c, 0x44, 0x55, 0x71, 0x45, 0x86, 0xa2, 0xaa, 0x08,
		0xa6, 0x9e, 0x5a, 0x1e, 0x8d, 0x69, 0xfb, 0x15, 0x85, 0x59, 0x4c, 0xdb, 0xff, 0xea, 0x0b, 0xd3,
		0xf6, 0x1f, 0x33, 0x12, 0xd3, 0xf6, 0xeb, 0x72, 0x3d, 0x98, 0xb6, 0x5f, 0x49, 0x0d, 0x03, 0xd3,
		0xf6, 0x58, 0x43, 0x98, 0xb6, 0x57, 0xc4, 0x2a, 0x4c, 0xdb, 0x53, 0xb6, 0x04, 0xd3, 0xf6, 0x2f,
		0xdb, 0xc5, 0x74, 0x84, 0x75, 0x7e, 0xdc, 0x0e, 0xd3, 0xf6, 0x1f, 0x1c, 0x68, 0x35, 0xa3, 0x9b,
		0x89, 0x69, 0x7b, 0x6a, 0x16, 0x60, 0xda, 0x5e, 0x39, 0x57, 0x85, 0x69, 0xfb, 0x8f, 0x38, 0x27,
		0x4c, 0xdb, 0xa7, 0x8f, 0x16, 0x71, 0x3b, 0x12, 0x32, 0x10, 0xf4, 0xe6, 0xed, 0x1f, 0xdb, 0x85,
		0x89, 0x7b, 0x4c, 0xdc, 0xbf, 0x82, 0x18, 0x4c, 0xdc, 0x2f, 0x87, 0x2f, 0x26, 0xee, 0x7f, 0x95,
		0x1b, 0x61, 0xe2, 0x9e, 0x1a, 0x5d, 0xc5, 0xc4, 0xfd, 0xcb, 0xfe, 0x0f, 0x13, 0xf7, 0xf4, 0x03,
		0x27, 0xc5, 0x00, 0x4a, 0x38, 0x90, 0x52, 0x0d, 0xa8, 0xe4, 0x03, 0x2b, 0xf9, 0x00, 0x4b, 0x3b,
		0xd0, 0xd2, 0xa9, 0x50, 0x69, 0x98, 0xb8, 0x5f, 0x6e, 0x10, 0x26, 0xee, 0xdf, 0x1d, 0x98, 0xd1,
		0x1b, 0xcb, 0x37, 0x50, 0x33, 0x08, 0xd8, 0xd4, 0x03, 0x37, 0x9b, 0x00, 0xce, 0x26, 0x90, 0xf3,
		0x08, 0xe8, 0xb4, 0x02, 0x3b, 0xb1, 0x00, 0x9f, 0x3c, 0x42, 0x4c, 0xdc, 0xaf, 0x34, 0x07, 0xc6,
		0xc4, 0xfd, 0x2f, 0x03, 0x10, 0x13, 0xf7, 0xab, 0x34, 0x14, 0x13, 0xf7, 0x1f, 0x03, 0x23, 0x26,
		0xee, 0x57, 0x63, 0x26, 0x26, 0xee, 0xc1, 0x55, 0x56, 0x8d, 0x29, 0x4c, 0xdc, 0x7f, 0xd0, 0x42,
		0x4c, 0xdc, 0xaf, 0xd7, 0x44, 0x4c, 0xdc, 0x73, 0xf2, 0x29, 0x98, 0xb8, 0xff, 0x48, 0xaa, 0x83,
		0xaa, 0xe2, 0x1b, 0x0d, 0x43, 0x55, 0xf1, 0x43, 0x26, 0xa2, 0xaa, 0xb8, 0x22, 0x43, 0x51, 0x55,
		0x04, 0x53, 0x4f, 0x2d, 0x8f, 0xc6, 0xc4, 0xfd, 0x8a, 0xc2, 0x2c, 0x26, 0xee, 0x7f, 0xf5, 0x85,
		0x89, 0xfb, 0x8f, 0x19, 0x89, 0x89, 0xfb, 0x75, 0xb9, 0x1e, 0x4c, 0xdc, 0xaf, 0xa4, 0x86, 0x81,
		0x89, 0x7b, 0xac, 0x21, 0x4c, 0xdc, 0x2b, 0x62, 0x15, 0x26, 0xee, 0x29, 0x5b, 0x82, 0x89, 0xfb,
		0x97, 0xed, 0xe2, 0x3a, 0xc6, 0xfa, 0x68, 0xe0, 0x0e, 0x33, 0xf7, 0x1f, 0x1d, 0x6b, 0x9d, 0xdc,
		0x4e, 0x4c, 0xdd, 0x53, 0xb3, 0x00, 0x53, 0xf7, 0x0a, 0xba, 0x2b, 0xcc, 0xdd, 0x7f, 0xcc, 0x41,
		0x61, 0xf2, 0x3e, 0x0b, 0xbc, 0x50, 0x18, 0x23, 0x24, 0x35, 0x3e, 0x88, 0x39, 0xfb, 0x27, 0x86,
		0x60, 0xce, 0xfe, 0x45, 0x93, 0x30, 0x67, 0xff, 0x46, 0xc3, 0x30, 0x67, 0x0f, 0x82, 0xfa, 0xd6,
		0x47, 0x42, 0x67, 0xce, 0xfe, 0x2e, 0x08, 0xc5, 0xb5, 0xee, 0xf6, 0x08, 0xce, 0xda, 0x27, 0xa6,
		0xd1, 0x9a, 0xb7, 0xdf, 0xc2, 0xbc, 0x3d, 0xf9, 0x40, 0x4a, 0x38, 0xa0, 0x52, 0x0d, 0xac, 0xe4,
		0x03, 0x2c, 0xf9, 0x40, 0x4b, 0x3b, 0xe0, 0xd2, 0xa9, 0x4d, 0x69, 0x84, 0x0a, 0xdc, 0xe4, 0x1a,
		0x66, 0xc8, 0x86, 0xbf, 0x47, 0xb9, 0xe3, 0x57, 0x42, 0x36, 0x9d, 0x38, 0x61, 0x28, 0x7c, 0x49,
		0xae, 0x2f, 0xa6, 0xf0, 0xe7, 0x96, 0xbe, 0x67, 0xe8, 0x87, 0x8e, 0xde, 0xbf, 0xf8, 0xbb, 0x72,
		0x7f, 0x7e, 0xbe, 0xf9, 0xca, 0x07, 0x74, 0x7c, 0xc4, 0x05, 0xa5, 0xc7, 0x7b, 0xdc, 0xb6, 0x7e,
		0x90, 0x7d, 0xc6, 0xff, 0xfb, 0xd5, 0x87, 0xfc, 0x2f, 0x42, 0x4f, 0x19, 0x7b, 0x25, 0x48, 0x45,
		0xb1, 0x57, 0xb2, 0x9a, 0xbd, 0x12, 0x2a, 0x7b, 0xb9, 0xdc, 0xb6, 0x48, 0x08, 0xec, 0xda, 0xe6,
		0x74, 0x6b, 0x84, 0x4c, 0xe5, 0x87, 0x1c, 0xe5, 0x25, 0x52, 0xe9, 0xc1, 0x16, 0x09, 0x8f, 0x8a,
		0x0e, 0xb6, 0x48, 0xb8, 0x57, 0x6e, 0xb0, 0x45, 0x42, 0x8f, 0x97, 0x92, 0xa9, 0xcc, 0x24, 0x1e,
		0xc7, 0x13, 0x4e, 0xdf, 0x17, 0x7d, 0x0a, 0x1e, 0x67, 0x56, 0x87, 0xd9, 0x25, 0x60, 0xcb, 0xc9,
		0x94, 0xaa, 0x6f, 0x6e, 0x4e, 0x48, 0x70, 0xf1, 0x21, 0x8c, 0xe7, 0x95, 0xd6, 0xfd, 0x96, 0xa3,
		0x05, 0x1b, 0x45, 0x1b, 0x0a, 0xe4, 0x8d, 0x86, 0x4a, 0x09, 0x1d, 0x35, 0x12, 0xd2, 0xaa, 0x23,
		0x84, 0xd4, 0x45, 0x08, 0xa9, 0x88, 0x64, 0xb5, 0x82, 0x89, 0x94, 0x80, 0x98, 0x96, 0x7e, 0x0a,
		0x99, 0xf6, 0x37, 0x72, 0x2a, 0xf6, 0x64, 0xc3, 0x07, 0xd2, 0x8f, 0xc6, 0xe9, 0xfe, 0xc6, 0x94,
		0xbd, 0x46, 0xd6, 0xde, 0x82, 0x97, 0x97, 0xc8, 0xc0, 0x39, 0xf0, 0x70, 0x0a, 0xe9, 0xfa, 0x82,
		0xf4, 0x56, 0x64, 0x3a, 0xbf, 0x29, 0xa5, 0x35, 0x5f, 0x10, 0xb7, 0xa1, 0xef, 0xe8, 0xe3, 0x08,
		0x10, 0x97, 0x5e, 0xba, 0xe9, 0x78, 0xc1, 0x17, 0x7d, 0xe1, 0x0b, 0xd9, 0x4d, 0x5f, 0xf1, 0x22,
		0x03, 0xa7, 0x36, 0xab, 0x31, 0x58, 0xed, 0x63, 0xad, 0xb4, 0xb5, 0xf3, 0x75, 0x6f, 0x43, 0xb3,
		0x64, 0x28, 0xfc, 0x6b, 0xd1, 0x73, 0x9d, 0x50, 0x68, 0xed, 0x38, 0xbb, 0xd2, 0xc2, 0xe1, 0x73,
		0x1f, 0x9f, 0x4b, 0x4b, 0x46, 0xcf, 0x49, 0xab, 0x0f, 0xaf, 0x1d, 0x57, 0x6a, 0xad, 0xe1, 0x38,
		0x14, 0xae, 0x1c, 0x68, 0xe6, 0x6d, 0xf7, 0xca, 0x91, 0x03, 0xa1, 0xcd, 0xd6, 0xaf, 0xd6, 0x1f,
		0xfa, 0xda, 0x38, 0x10, 0x9a, 0x2b, 0xcf, 0xe5, 0xc1, 0x50, 0xfe, 0xbf, 0xb1, 0x8c, 0xe7, 0xd0,
		0xb5, 0x9f, 0x6e, 0x78, 0xa5, 0x85, 0x57, 0x4f, 0xbe, 0xf3, 0xc4, 0x1f, 0xde, 0xb8, 0xbd, 0xe8,
		0x7f, 0x0a, 0xaf, 0x44, 0xfc, 0x03, 0x52, 0xc4, 0xdf, 0xef, 0x89, 0x20, 0xd0, 0xaf, 0x87, 0x3d,
		0xa1, 0x4d, 0x7d, 0x86, 0xd6, 0x16, 0xfe, 0x8d, 0xdb, 0x15, 0xda, 0xe7, 0xe8, 0x0a, 0xbe, 0x56,
		0x76, 0xb7, 0xbf, 0x6c, 0xc4, 0x66, 0x09, 0x5f, 0xc6, 0xb1, 0xc2, 0xf1, 0xb4, 0x76, 0xe8, 0xc8,
		0x9e, 0xe3, 0xf7, 0x26, 0x17, 0x58, 0xd3, 0xca, 0x5b, 0x5b, 0xe5, 0x0d, 0xad, 0x2d, 0xba, 0x43,
		0xd9, 0xd3, 0xcc, 0x9e, 0x1b, 0x7d, 0xdb, 0xc6, 0xb9, 0x8c, 0x3e, 0xde, 0xd4, 0x3a, 0x8d, 0x33,
		0xad, 0xbc, 0x99, 0x85, 0xfb, 0xcc, 0xb8, 0x9a, 0x3b, 0x5f, 0xbd, 0x7d, 0x58, 0x02, 0x19, 0x65,
		0x06, 0x54, 0x0a, 0xb6, 0x8f, 0x0a, 0xb4, 0x58, 0x23, 0x8f, 0xd7, 0x88, 0xea, 0xfc, 0x36, 0xb5,
		0xdf, 0x96, 0x62, 0xdb, 0x53, 0xe1, 0xe7, 0x95, 0x90, 0x79, 0x0a, 0x6c, 0x49, 0x75, 0x38, 0xbc,
		0x1b, 0x09, 0xed, 0xdf, 0xda, 0xa7, 0xe9, 0x36, 0x8b, 0xee, 0x05, 0xbd, 0x4b, 0x3d, 0xfa, 0x30,
		0xa8, 0x59, 0x56, 0xdb, 0x6e, 0x9a, 0xd6, 0xb7, 0xef, 0xfb, 0xc7, 0xad, 0xf6, 0xa7, 0x9c, 0xfb,
		0xfe, 0x18, 0x20, 0x70, 0xfb, 0x0f, 0x6e, 0xff, 0x1d, 0x08, 0xfa, 0x2d, 0x07, 0x15, 0xbc, 0x42,
		0x5d, 0x04, 0x5d, 0xdf, 0x1d, 0x65, 0x5a, 0xbe, 0x7b, 0xe0, 0xaf, 0xb2, 0xeb, 0x8d, 0x7b, 0x42,
		0x7b, 0xf4, 0x20, 0xb4, 0x60, 0x7c, 0xa9, 0x47, 0xc1, 0x2a, 0xc2, 0x74, 0x1c, 0x41, 0xa3, 0xbf,
		0xc4, 0x8f, 0xd1, 0x0d, 0xb2, 0x61, 0x79, 0x1a, 0x91, 0x7d, 0xfb, 0xf9, 0x15, 0xdf, 0x9b, 0x7b,
		0x90, 0x19, 0xd6, 0x14, 0x29, 0x6d, 0xd2, 0x3f, 0xe6, 0x7d, 0xef, 0xc2, 0x16, 0x6a, 0x8e, 0xbc,
		0x39, 0x99, 0x52, 0xf5, 0x94, 0x8c, 0x6a, 0xa7, 0x1c, 0x6a, 0xa6, 0x29, 0xba, 0x3c, 0xca, 0x15,
		0xd2, 0x74, 0xfc, 0xd5, 0xfa, 0xd7, 0x6f, 0x0a, 0x2b, 0x6a, 0x72, 0x42, 0xd9, 0xac, 0xd4, 0xae,
		0x3b, 0x61, 0xe8, 0xbb, 0x97, 0xe3, 0x14, 0xf5, 0x3e, 0x1e, 0x1f, 0x95, 0xf6, 0x8c, 0x21, 0x29,
		0x79, 0x95, 0x74, 0x15, 0x3d, 0x52, 0x6f, 0x4b, 0xcd, 0xa2, 0xfd, 0x34, 0xc3, 0x36, 0xd3, 0xac,
		0x68, 0x69, 0xe6, 0x6d, 0xa3, 0x99, 0x33, 0xcf, 0x6c, 0xdb, 0x40, 0xd5, 0xda, 0x39, 0x4a, 0x5b,
		0xe1, 0xa2, 0xf0, 0xb0, 0xe5, 0x9a, 0xfa, 0xc2, 0x49, 0xb4, 0xed, 0x33, 0xda, 0xf5, 0xcd, 0x48,
		0xd2, 0x29, 0xb3, 0xf9, 0x84, 0x2c, 0xe7, 0x11, 0x08, 0xcc, 0x1f, 0x50, 0xaa, 0x52, 0x66, 0x3a,
		0x5f, 0x40, 0xb3, 0x4e, 0x99, 0xd9, 0xfc, 0x80, 0xda, 0x6d, 0x47, 0x59, 0x49, 0x26, 0x25, 0x5e,
		0x3d, 0xfb, 0xe2, 0x6a, 0xc6, 0x1d, 0x87, 0x19, 0x2b, 0x07, 0x66, 0x3e, 0x0e, 0x47, 0x61, 0x0c,
		0x8e, 0xd0, 0xf8, 0x1b, 0x95, 0xb1, 0x37, 0x72, 0xe3, 0x6e, 0xe4, 0xc6, 0xdc, 0x68, 0x8d, 0xb7,
		0xe5, 0x6b, 0x3a, 0x26, 0x6b, 0xa5, 0xbf, 0x42, 0x52, 0xc7, 0xa5, 0x33, 0xe7, 0xfd, 0x60, 0x12,
		0xa4, 0x70, 0x31, 0xe7, 0x4d, 0x3e, 0xd0, 0x51, 0x0b, 0x78, 0x64, 0x03, 0x1f, 0xd9, 0x00, 0x48,
		0x33, 0x10, 0x66, 0x1b, 0x10, 0x33, 0x0e, 0x8c, 0x64, 0x02, 0xe4, 0x42, 0xa0, 0xa4, 0xa7, 0x84,
		0x9b, 0x58, 0x46, 0x4b, 0x08, 0xb7, 0x04, 0x21, 0x5c, 0xf2, 0x61, 0x94, 0x70, 0x38, 0xa5, 0x1a,
		0x56, 0xc9, 0x87, 0x57, 0xf2, 0x61, 0x96, 0x76, 0xb8, 0xa5, 0x11, 0x76, 0x89, 0x84, 0x5f, 0x72,
		0x61, 0xf8, 0x21, 0x1c, 0xf7, 0xe8, 0x79, 0x84, 0x24, 0x20, 0xf7, 0xa8, 0xb9, 0x02, 0x5a, 0xda,
		0xf4, 0x64, 0x43, 0x33, 0xe5, 0x10, 0xcd, 0x20, 0x54, 0x53, 0x0f, 0xd9, 0x6c, 0x42, 0x37, 0x9b,
		0x10, 0xce, 0x23, 0x94, 0xd3, 0x0a, 0xe9, 0xc4, 0x42, 0x7b, 0xf2, 0x08, 0xc9, 0x69, 0xdd, 0x2f,
		0x78, 0x3c, 0x3a, 0x0a, 0x6b, 0x4b, 0x73, 0xde, 0x5d, 0x82, 0xb6, 0x2d, 0x28, 0xb0, 0x65, 0x2d,
		0xbd, 0x46, 0x77, 0x5d, 0xde, 0x93, 0x3a, 0x6d, 0x97, 0xc2, 0xe1, 0x84, 0x4b, 0x17, 0x23, 0xb5,
		0xd3, 0x89, 0x35, 0x7a, 0xa5, 0x27, 0xf0, 0x5c, 0xf0, 0x5c, 0xf0, 0x5c, 0xf0, 0x5c, 0xf0, 0x5c,
		0x4a, 0x8f, 0x90, 0x5a, 0x29, 0x2b, 0x31, 0x8c, 0x60, 0x49, 0x6b, 0xc1, 0x19, 0x93, 0x2b, 0x6d,
		0x3d, 0x0d, 0xfd, 0x5b, 0x44, 0xcd, 0xa3, 0x4a, 0x01, 0x38, 0x50, 0x01, 0x46, 0x94, 0x80, 0x0b,
		0x35, 0x60, 0x47, 0x11, 0xd8, 0x51, 0x05, 0x5e, 0x94, 0x81, 0x26, 0x75, 0x20, 0x4a, 0x21, 0x92,
		0x47, 0x4b, 0xb6, 0x64, 0xb6, 0xe0, 0x31, 0xc7, 0xae, 0x0c, 0xab, 0x15, 0xca, 0x0e, 0x73, 0x1a,
		0xbf, 0xbf, 0x12, 0x36, 0xb1, 0xe5, 0xc8, 0x81, 0x20, 0x77, 0xc8, 0xe0, 0xd3, 0x17, 0xed, 0x80,
		0xa3, 0x4d, 0x55, 0xf0, 0xc9, 0x47, 0xc6, 0xc4, 0xd8, 0x33, 0xc7, 0x1b, 0x0b, 0xba, 0xc4, 0x6d,
		0xc1, 0xde, 0x43, 0xdf, 0x89, 0x05, 0x06, 0xeb, 0xee, 0xc0, 0xcd, 0xfa, 0x94, 0x81, 0x5f, 0xf3,
		0x55, 0x62, 0xe0, 0x84, 0xee, 0x8d, 0xc8, 0x54, 0x64, 0x5f, 0x81, 0xb0, 0xf4, 0x78, 0xa9, 0x39,
		0xb7, 0xfc, 0x96, 0x1a, 0xad, 0xd3, 0x28, 0xb0, 0xfa, 0x40, 0x55, 0x15, 0xb2, 0xee, 0xe2, 0x37,
		0xdc, 0x2f, 0xa6, 0xde, 0xbd, 0x70, 0x2d, 0x42, 0xdf, 0xed, 0xd2, 0x2f, 0x13, 0x4e, 0xed, 0x44,
		0xa9, 0xf0, 0x3d, 0xe6, 0xa1, 0x54, 0xb8, 0x42, 0x24, 0xa2, 0x54, 0xb8, 0xba, 0x65, 0x83, 0x52,
		0xe1, 0x9a, 0x0d, 0x46, 0xa9, 0x50, 0xd5, 0x9c, 0x8c, 0x51, 0xa9, 0xf0, 0xa7, 0xdb, 0x13, 0x3a,
		0xe9, 0x00, 0x3e, 0x1f, 0xc4, 0x77, 0x51, 0x2f, 0xfc, 0xe0, 0x0b, 0xf5, 0xc2, 0x35, 0x15, 0x31,
		0x50, 0xb1, 0x40, 0xc5, 0x82, 0x43, 0x6c, 0x7a, 0xbc, 0xd4, 0x58, 0xd6, 0x0b, 0xab, 0xbb, 0xbb,
		0xbb, 0x65, 0xd4, 0x08, 0xb1, 0xe2, 0x58, 0x70, 0x54, 0xfa, 0xd6, 0xa1, 0x46, 0xc8, 0xd1, 0x22,
		0x6a, 0x9d, 0x96, 0x44, 0x0e, 0x8e, 0x5e, 0x6a, 0x1f, 0xcd, 0x63, 0x0f, 0x9e, 0xd5, 0x8a, 0x7f,
		0xe6, 0x60, 0xe9, 0xe2, 0x83, 0x2d, 0x89, 0x0d, 0x14, 0x87, 0x32, 0x34, 0x82, 0x47, 0x2a, 0xb8,
		0xc1, 0xec, 0xa4, 0x59, 0x63, 0x76, 0x87, 0x9f, 0x39, 0x90, 0xda, 0x7e, 0x30, 0x23, 0xf9, 0xfd,
		0xf1, 0x7f, 0x8b, 0xf1, 0x29, 0xf2, 0x0e, 0xa8, 0x10, 0x8c, 0x2f, 0xa3, 0x45, 0x45, 0x78, 0x80,
		0x6a, 0x6a, 0x20, 0x46, 0xa8, 0xde, 0x62, 0x16, 0x46, 0xa8, 0x3e, 0x00, 0x35, 0x8c, 0x50, 0xbd,
		0x7f, 0x39, 0x60, 0x84, 0x6a, 0xd5, 0xac, 0x10, 0x23, 0x54, 0xdc, 0x89, 0x3d, 0xd9, 0x11, 0xaa,
		0x49, 0x4c, 0xa5, 0xdf, 0x1f, 0x31, 0xb5, 0x93, 0x76, 0x7f, 0x44, 0x09, 0xfd, 0x11, 0xca, 0x51,
		0x02, 0x46, 0xd4, 0x80, 0x0b, 0x45, 0x60, 0x47, 0x15, 0xd8, 0x51, 0x06, 0x5e, 0xd4, 0x81, 0x26,
		0x85, 0x20, 0x4a, 0x25, 0xc8, 0x53, 0x8a, 0xc4, 0x40, 0xa7, 0xf7, 0xff, 0x9c, 0xae, 0x90, 0xdd,
		0x3b, 0x3d, 0x70, 0x7b, 0x01, 0x7d, 0x6f, 0x34, 0x73, 0xf0, 0x4f, 0xec, 0x26, 0xbe, 0xc2, 0x69,
		0x53, 0x0f, 0x36, 0x14, 0x84, 0x13, 0x15, 0x61, 0x48, 0x49, 0xb8, 0x51, 0x13, 0xb6, 0x14, 0x85,
		0x2d, 0x55, 0xe1, 0x49, 0x59, 0x68, 0x53, 0x17, 0xe2, 0x14, 0x86, 0x0d, 0x95, 0x79, 0x9e, 0xd2,
		0xf0, 0x71, 0x62, 0xcf, 0x32, 0x1b, 0x2e, 0x8e, 0x8c, 0x07, 0xc1, 0x61, 0x47, 0x74, 0x38, 0x12,
		0x1e, 0xc6, 0xc4, 0x87, 0x2b, 0x01, 0x62, 0x4f, 0x84, 0xd8, 0x13, 0x22, 0xde, 0xc4, 0x88, 0x07,
		0x41, 0x62, 0x42, 0x94, 0xd8, 0x11, 0xa6, 0xc4, 0x60, 0x9a, 0xd2, 0xbc, 0x6f, 0x8e, 0x33, 0x54,
		0xbb, 0xc4, 0x14, 0x22, 0x4e, 0x6c, 0x09, 0x14, 0x67, 0x22, 0xa5, 0x00, 0xa1, 0xe2, 0x4e, 0xac,
		0x94, 0x21, 0x58, 0xca, 0x10, 0x2d, 0x35, 0x08, 0x17, 0x2f, 0xe2, 0xc5, 0x8c, 0x80, 0xb1, 0x25,
		0x62, 0x89, 0xe1, 0x7d, 0xcf, 0x19, 0x04, 0x7c, 0x9d, 0xe5, 0x2c, 0x5e, 0x4d, 0x2e, 0x83, 0xa9,
		0x7f, 0xa1, 0xad, 0xaa, 0xa2, 0x2c, 0x51, 0x53, 0x81, 0xb0, 0x29, 0x44, 0xdc, 0x54, 0x21, 0x70,
		0xca, 0x11, 0x39, 0xe5, 0x08, 0x9d, 0x5a, 0xc4, 0x8e, 0x27, 0xc1, 0x63, 0x4a, 0xf4, 0x12, 0xe8,
		0x90, 0x57, 0xa5, 0x79, 0x73, 0xc4, 0x10, 0x72, 0x7c, 0x2d, 0xfc, 0xc9, 0xb0, 0x29, 0xe3, 0xa8,
		0x31, 0xab, 0x72, 0x55, 0x18, 0x5f, 0x83, 0x29, 0xc7, 0xd7, 0xfc, 0xe3, 0x5e, 0x67, 0xd8, 0x0e,
		0x7d, 0x57, 0x0e, 0xd8, 0x5f, 0x49, 0x7c, 0x35, 0x5b, 0xd1, 0x1a, 0x31, 0xea, 0xf5, 0x96, 0xd9,
		0x6e, 0xdb, 0x87, 0xc6, 0x91, 0xd5, 0xf8, 0x83, 0x79, 0x1c, 0x8f, 0x2f, 0xab, 0x14, 0x5d, 0xd6,
		0xbe, 0x71, 0xf0, 0xfb, 0xe9, 0x89, 0x0a, 0x97, 0x53, 0x8e, 0x2e, 0xe7, 0xcc, 0x68, 0x9c, 0x9a,
		0x2a, 0x5c, 0xcd, 0x76, 0x74, 0x35, 0x8d, 0xe3, 0x03, 0xa3, 0xa1, 0xc2, 0xd5, 0x54, 0xa2, 0xab,
		0x69, 0x9b, 0x9d, 0x02, 0xeb, 0x4b, 0xb9, 0xdf, 0xe0, 0xee, 0x95, 0xad, 0x98, 0xe8, 0x2a, 0xe0,
		0x92, 0x9f, 0x78, 0x63, 0xb6, 0x85, 0x87, 0x47, 0x17, 0x35, 0xf5, 0xc5, 0xec, 0xf6, 0xe9, 0x9e,
		0xbd, 0x98, 0x89, 0xef, 0xaa, 0x69, 0xdb, 0x0a, 0x5c, 0x4b, 0xe4, 0xb9, 0x6a, 0x5a, 0x45, 0x81,
		0x2b, 0x99, 0xc4, 0xc7, 0x9a, 0x56, 0xe6, 0xed, 0x88, 0x91, 0xa1, 0x23, 0xf0, 0xbd, 0xc5, 0x07,
		0xb9, 0x41, 0x68, 0x84, 0xa1, 0xcf, 0x3b, 0x4b, 0x3f, 0x72, 0xa5, 0xe9, 0x89, 0x6b, 0x21, 0x39,
		0xc9, 0xdd, 0x3d, 0x7f, 0x25, 0xce, 0xed, 0xdc, 0x95, 0xf0, 0x3d, 0xa8, 0xe4, 0xd9, 0x8b, 0x3b,
		0xf6, 0x7b, 0xc2, 0x17, 0xbd, 0xfd, 0xbb, 0x42, 0x4d, 0x93, 0x63, 0xcf, 0x53, 0xe1, 0x52, 0x4e,
		0x03, 0xe1, 0xb3, 0xd1, 0x2b, 0x54, 0xc3, 0xdf, 0x32, 0xf4, 0xb5, 0x85, 0x9b, 0xa9, 0x94, 0x28,
		0xf3, 0x1d, 0xe4, 0xc9, 0x65, 0x60, 0x07, 0x39, 0x0b, 0xf3, 0xb1, 0x83, 0x4c, 0x68, 0x21, 0x60,
		0x07, 0x99, 0xce, 0xb2, 0xc6, 0x0e, 0x32, 0xf1, 0x0b, 0xc2, 0x0e, 0x32, 0x38, 0xd3, 0x3b, 0xa1,
		0xa3, 0xce, 0x0e, 0xf2, 0xd8, 0x95, 0xe1, 0x76, 0x59, 0x81, 0xcd, 0xe3, 0x5d, 0xc6, 0x97, 0xc0,
		0xe3, 0xc8, 0x94, 0xd7, 0x5e, 0x0a, 0xec, 0x4e, 0x70, 0x3a, 0x72, 0xe5, 0xd5, 0x8b, 0x61, 0x76,
		0x84, 0xf3, 0xab, 0xd7, 0xc3, 0xf5, 0x00, 0x89, 0xd7, 0x7d, 0x31, 0xb7, 0x03, 0x26, 0x14, 0x0d,
		0xeb, 0x8f, 0x5d, 0x81, 0x73, 0xab, 0x9e, 0x2b, 0xa8, 0x94, 0xf7, 0x2a, 0x7b, 0xd5, 0xdd, 0xf2,
		0xde, 0x0e, 0x7c, 0x02, 0x7c, 0x02, 0x12, 0x94, 0x1c, 0x58, 0x7f, 0x81, 0xf2, 0x3f, 0x62, 0xde,
		0x12, 0x27, 0xf3, 0x53, 0xb8, 0x83, 0xab, 0x90, 0x7f, 0xfd, 0x7f, 0x7a, 0x1d, 0xd8, 0x00, 0xc8,
		0xc2, 0x7c, 0x6c, 0x00, 0x10, 0x5a, 0x09, 0xd8, 0x00, 0xa0, 0xb3, 0xac, 0xb1, 0x01, 0x40, 0xfc,
		0x82, 0xb0, 0x01, 0x00, 0xd6, 0xf4, 0x4e, 0xe8, 0xa8, 0xb5, 0x01, 0xf0, 0x55, 0x81, 0xfa, 0xff,
		0x0e, 0xea, 0xff, 0x19, 0xbf, 0x50, 0xff, 0xa7, 0x75, 0x31, 0xa8, 0xff, 0x73, 0x71, 0xc5, 0xa8,
		0xff, 0x13, 0x74, 0x05, 0x2a, 0xd6, 0xff, 0xcb, 0x3b, 0x28, 0xfc, 0xc3, 0x19, 0x20, 0x31, 0xc9,
		0x83, 0xf5, 0x28, 0xfc, 0xc3, 0x62, 0xf6, 0xa1, 0x99, 0xfa, 0x69, 0xfa, 0xaf, 0xda, 0xaf, 0xe0,
		0x69, 0xfb, 0x93, 0x13, 0xbc, 0xa7, 0x5f, 0x8b, 0x8f, 0x4f, 0xda, 0x7a, 0xfc, 0xd7, 0x22, 0x47,
		0xcd, 0x65, 0x4d, 0xad, 0x93, 0xfb, 0x27, 0x4f, 0x6b, 0xfa, 0xd5, 0x36, 0x66, 0x8f, 0xa7, 0xed,
		0xf6, 0x82, 0x47, 0x7f, 0xa3, 0x78, 0xc6, 0xbf, 0x3a, 0xae, 0x97, 0x91, 0xdb, 0x65, 0x3a, 0x14,
		0xc6, 0x7a, 0x18, 0x8c, 0xe9, 0x1e, 0x30, 0x74, 0xde, 0xb3, 0x04, 0x3a, 0x74, 0xde, 0xb3, 0x5b,
		0xae, 0xd0, 0x79, 0xa7, 0x96, 0x27, 0x40, 0xe7, 0x1d, 0x9c, 0xe6, 0x65, 0x88, 0xb0, 0xdd, 0xb3,
		0x4d, 0x3c, 0xbe, 0x27, 0x9c, 0xbe, 0x2f, 0xfa, 0x1c, 0x3d, 0xfe, 0x4c, 0xe2, 0x93, 0xe1, 0x98,
		0x56, 0xe1, 0x64, 0x9a, 0xbd, 0x6f, 0x6e, 0x4e, 0x12, 0xda, 0xe2, 0x84, 0x62, 0x22, 0x55, 0xca,
		0xb1, 0xa5, 0x5c, 0x4e, 0x19, 0xfb, 0x5d, 0xdc, 0x71, 0x4b, 0x8a, 0x78, 0xaa, 0x3f, 0xf1, 0x55,
		0x7b, 0x52, 0x4a, 0xdd, 0x89, 0xb1, 0x9a, 0x13, 0x63, 0xf5, 0x26, 0x2e, 0xde, 0x90, 0xe9, 0x6e,
		0x42, 0xbe, 0x77, 0x11, 0x38, 0x9d, 0x0c, 0x9c, 0xbf, 0x7d, 0x03, 0x1e, 0x34, 0x98, 0x3e, 0xa9,
		0xa4, 0x6d, 0x21, 0x71, 0x07, 0x5f, 0x10, 0xb7, 0xa1, 0xef, 0xe8, 0xe3, 0x08, 0xbd, 0x97, 0x1e,
		0x8f, 0x2c, 0xbf, 0xe0, 0x8b, 0xbe, 0xf0, 0x85, 0xec, 0xf2, 0xe9, 0xfc, 0x65, 0x78, 0xba, 0x7c,
		0xcf, 0x77, 0xfa, 0xa1, 0xee, 0x8a, 0xb0, 0x1f, 0xd7, 0x04, 0xf5, 0x40, 0x0c, 0x22, 0xa2, 0xab,
		0xfb, 0xc3, 0x71, 0xe8, 0xca, 0x81, 0x2e, 0x6e, 0x43, 0x21, 0x03, 0x77, 0x28, 0x83, 0x4d, 0x2d,
		0x18, 0x5f, 0xea, 0x9d, 0xc6, 0x99, 0xb6, 0x5d, 0xaa, 0x9d, 0xcb, 0xe8, 0x4d, 0xb9, 0xbc, 0xa1,
		0x95, 0x27, 0x7f, 0x6c, 0x6f, 0x68, 0xa5, 0x4a, 0x69, 0x53, 0xc3, 0x31, 0xf5, 0xa9, 0xe4, 0xac,
		0xb3, 0xea, 0xfa, 0xc3, 0x1a, 0xc1, 0x49, 0xf5, 0x29, 0x53, 0xe5, 0xb9, 0x82, 0xfa, 0xca, 0x17,
		0x11, 0x8a, 0x51, 0x39, 0xb3, 0xf2, 0x82, 0x3e, 0xfa, 0x0b, 0x3f, 0xaf, 0x84, 0x44, 0x28, 0x5e,
		0x5f, 0x28, 0x4e, 0xca, 0xe7, 0xe1, 0xdd, 0x48, 0x68, 0xff, 0xd6, 0x34, 0xed, 0xd3, 0x74, 0xa7,
		0x4e, 0xf7, 0x82, 0xde, 0xa5, 0x1e, 0x7d, 0x1c, 0xd4, 0xac, 0xb6, 0xdd, 0x32, 0x8d, 0x83, 0xef,
		0xc6, 0xbe, 0xd5, 0xb0, 0x3a, 0x7f, 0xd8, 0x46, 0xfd, 0x3f, 0x76, 0xdb, 0xaa, 0x7f, 0x42, 0xe0,
		0x4d, 0x35, 0xf0, 0xc6, 0x8b, 0x01, 0x31, 0x37, 0xbb, 0x98, 0xfb, 0xc1, 0xd5, 0x82, 0xce, 0xb8,
		0x35, 0x3c, 0x9f, 0xba, 0x08, 0xba, 0xbe, 0x3b, 0x62, 0xd9, 0x8d, 0x9c, 0xb8, 0xe1, 0x63, 0xe9,
		0xdd, 0x69, 0xae, 0xec, 0x7a, 0xe3, 0x9e, 0xd0, 0xc2, 0x2b, 0xa1, 0x25, 0xc5, 0x36, 0xad, 0x6d,
		0xd5, 0x03, 0xad, 0x3b, 0x94, 0xa1, 0xe3, 0x4a, 0xe1, 0x6b, 0x91, 0x0f, 0x88, 0xbe, 0xe3, 0x5c,
		0xce, 0x48, 0x5d, 0x8c, 0x45, 0x37, 0xd0, 0xb6, 0x4b, 0xdc, 0x7c, 0x03, 0xe3, 0x8e, 0xa3, 0x79,
		0xb7, 0xdc, 0x9b, 0x43, 0x20, 0xc3, 0x9d, 0x74, 0x15, 0xda, 0x8d, 0x1e, 0x79, 0xe9, 0x15, 0x2d,
		0x26, 0xb4, 0x12, 0x20, 0x7b, 0xa3, 0x9c, 0xbd, 0xa1, 0x36, 0xfd, 0x11, 0x7f, 0xc1, 0x6b, 0xd3,
		0x31, 0x6f, 0x9b, 0x8d, 0x0c, 0xe2, 0x68, 0x3e, 0xb6, 0x15, 0x69, 0x47, 0x41, 0xba, 0x5e, 0x9a,
		0xb0, 0xff, 0x2b, 0x38, 0xbd, 0x6b, 0x57, 0xea, 0x03, 0x7f, 0x38, 0x1e, 0x91, 0x77, 0x7e, 0x49,
		0x86, 0x34, 0x6f, 0x34, 0xf1, 0xd8, 0x32, 0x6b, 0xab, 0x25, 0x6e, 0x26, 0x97, 0x39, 0x21, 0x4e,
		0x73, 0x41, 0x0c, 0xe7, 0x80, 0xb8, 0x65, 0xe1, 0x6c, 0xe7, 0x7c, 0xd8, 0x26, 0xda, 0x3c, 0xe7,
		0x78, 0xd0, 0xbb, 0xf3, 0x91, 0x47, 0x5e, 0x77, 0x7d, 0x26, 0x89, 0x51, 0x3c, 0x21, 0xcf, 0xc6,
		0x79, 0xcd, 0xe2, 0x03, 0x27, 0x11, 0x06, 0x26, 0x84, 0x86, 0x1d, 0xb1, 0xe1, 0x48, 0x70, 0x18,
		0x13, 0x1d, 0xae, 0x84, 0x87, 0x3d, 0xf1, 0x61, 0x4f, 0x80, 0x78, 0x13, 0x21, 0x1e, 0x84, 0x88,
		0x09, 0x31, 0x62, 0x47, 0x90, 0x12, 0x83, 0x39, 0x55, 0x7d, 0x96, 0x46, 0x1b, 0x3e, 0x55, 0xa0,
		0x65, 0x24, 0x0a, 0x6a, 0x32, 0x20, 0x55, 0x0a, 0x93, 0x2b, 0xee, 0x24, 0x4b, 0x19, 0xb2, 0xa5,
		0x0c, 0xe9, 0x52, 0x83, 0x7c, 0xf1, 0x22, 0x61, 0xcc, 0xc8, 0x58, 0x02, 0x11, 0xfe, 0x6a, 0x32,
		0x6c, 0x8f, 0xfe, 0x66, 0x7c, 0xe4, 0x37, 0xf3, 0xa3, 0x3e, 0x18, 0x9f, 0x77, 0xa3, 0xc2, 0xd1,
		0x1e, 0xaa, 0x1c, 0xe9, 0xa1, 0x9c, 0x7a, 0xbf, 0x3a, 0xaa, 0xfd, 0x8c, 0x8f, 0xee, 0x50, 0xe2,
		0xc8, 0x0e, 0xe5, 0x8e, 0xea, 0xc6, 0x5a, 0x47, 0x82, 0x90, 0x73, 0xab, 0x2f, 0x90, 0x88, 0xad,
		0x71, 0x39, 0xb2, 0x54, 0x8b, 0x9b, 0xa7, 0xa5, 0x3c, 0x55, 0xe3, 0xe6, 0xa3, 0xae, 0x32, 0xea,
		0x71, 0xc9, 0x45, 0xf1, 0x55, 0x91, 0x5b, 0xbc, 0x04, 0x76, 0x6a, 0x72, 0x5c, 0x3d, 0x11, 0x43,
		0x11, 0xa2, 0x85, 0x6b, 0xe0, 0x27, 0x4a, 0xa4, 0x50, 0x8d, 0x62, 0x56, 0x99, 0x6b, 0x1d, 0x1e,
		0xec, 0x6c, 0x6f, 0xed, 0xd4, 0x34, 0xab, 0xad, 0x5b, 0x6d, 0xcd, 0x4c, 0xe4, 0x55, 0xb4, 0xfe,
		0xd0, 0xd7, 0x3a, 0xbe, 0xd3, 0xef, 0xbb, 0x5d, 0xcd, 0x94, 0x03, 0x57, 0x0a, 0xe1, 0xbb, 0x72,
		0xb0, 0xf9, 0x30, 0x55, 0xb8, 0x5d, 0xd3, 0xa6, 0xaa, 0x2b, 0xe5, 0xed, 0x8d, 0x52, 0xa5, 0xb4,
		0x31, 0xd3, 0x5e, 0xd9, 0xc4, 0xa1, 0xf0, 0xd9, 0x5f, 0x87, 0x02, 0xd2, 0x46, 0x0b, 0xd7, 0xa4,
		0xf4, 0xb9, 0xf0, 0x6b, 0x5a, 0x8a, 0xc8, 0x19, 0x61, 0xb5, 0x4a, 0x39, 0x23, 0x3a, 0xd3, 0xf2,
		0xc8, 0x7c, 0xa1, 0xa7, 0x4c, 0x77, 0xc4, 0x39, 0x69, 0x5e, 0x63, 0x77, 0x08, 0xa3, 0xc2, 0xd3,
		0xce, 0xd7, 0xae, 0xfc, 0x16, 0x3d, 0x13, 0x4e, 0x87, 0x2d, 0x42, 0x3a, 0x59, 0x69, 0x5f, 0xce,
		0x52, 0x3a, 0x19, 0x52, 0x8d, 0xeb, 0x2d, 0x40, 0x3c, 0x15, 0x9f, 0x7b, 0x9b, 0xf4, 0xdc, 0x91,
		0xd5, 0xb4, 0xbf, 0xb5, 0x8e, 0x4f, 0x4f, 0x20, 0xd6, 0x98, 0x6e, 0x29, 0x01, 0x62, 0x8d, 0x19,
		0x57, 0x09, 0x3e, 0xbc, 0x5e, 0x20, 0xd7, 0xb8, 0x86, 0x27, 0xa4, 0xaa, 0x5c, 0xe3, 0xb5, 0x2b,
		0xdd, 0x20, 0xf4, 0xe3, 0x26, 0x04, 0x2d, 0xe6, 0xf8, 0x4f, 0x74, 0xe6, 0xce, 0x65, 0xf4, 0x8d,
		0xb3, 0x32, 0x94, 0x1b, 0x4c, 0xa4, 0xe6, 0xb6, 0xa1, 0xd9, 0x98, 0x89, 0x77, 0x86, 0x66, 0x23,
		0x2d, 0x67, 0xbd, 0xca, 0x15, 0x85, 0x2a, 0x5d, 0x9e, 0xab, 0x74, 0x10, 0x6e, 0x54, 0x3a, 0x33,
		0x86, 0x70, 0x23, 0xdd, 0xaa, 0x26, 0x54, 0x1b, 0x29, 0xd4, 0x31, 0x21, 0xd9, 0xa8, 0x9c, 0xe7,
		0x2b, 0x38, 0x37, 0x8e, 0xeb, 0x39, 0x97, 0x9e, 0xd0, 0x2f, 0x1d, 0xd9, 0xfb, 0xe9, 0xf6, 0x62,
		0x77, 0xc2, 0x45, 0xba, 0xf1, 0x19, 0xe3, 0x21, 0xe1, 0xb8, 0x0a, 0x33, 0x21, 0xe1, 0xb8, 0x46,
		0xd8, 0x42, 0xc2, 0x31, 0x8d, 0x44, 0x1c, 0x12, 0x8e, 0xa9, 0xe7, 0xda, 0x90, 0x70, 0xcc, 0x45,
		0xa6, 0x04, 0x09, 0xc7, 0xf5, 0xc6, 0x07, 0x48, 0x38, 0x82, 0xd8, 0x70, 0x24, 0x38, 0x8c, 0x89,
		0x0e, 0x57, 0xc2, 0xc3, 0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42, 0xc4, 0x84,
		0x18, 0xb1, 0x23, 0x48, 0x89, 0xc1, 0x7c, 0x6a, 0x3f, 0x4b, 0x63, 0x0d, 0x97, 0x0a, 0xd0, 0x32,
		0x02, 0x05, 0xf9, 0x46, 0x10, 0x2a, 0x85, 0x89, 0x15, 0x77, 0x82, 0xa5, 0x0c, 0xd1, 0x52, 0x86,
		0x70, 0xa9, 0x41, 0xbc, 0x78, 0x11, 0x30, 0x66, 0x44, 0x2c, 0x81, 0x08, 0x7f, 0xf9, 0x46, 0x57,
		0x08, 0xd1, 0xf7, 0x86, 0x0e, 0x6f, 0x0d, 0xc7, 0x3d, 0x86, 0xa6, 0x37, 0x84, 0x1c, 0xc4, 0xc4,
		0x18, 0x02, 0x09, 0x29, 0xdf, 0x79, 0xa5, 0x44, 0x1c, 0x2b, 0x10, 0x76, 0x23, 0xe6, 0x59, 0x21,
		0xe2, 0x48, 0x60, 0x89, 0x2b, 0x25, 0xe2, 0x88, 0x25, 0x8e, 0x25, 0x8e, 0xec, 0x80, 0xb1, 0xd5,
		0xd0, 0xe1, 0xc8, 0x7d, 0x88, 0x2a, 0x84, 0x1c, 0x73, 0xc5, 0x24, 0x4f, 0x8c, 0xad, 0x47, 0x05,
		0x3c, 0x0d, 0xb3, 0x51, 0x01, 0xcf, 0x10, 0xe7, 0xa8, 0x80, 0x67, 0xb7, 0x5c, 0x51, 0x01, 0x27,
		0x76, 0x21, 0xa8, 0x80, 0x83, 0xd1, 0xbc, 0x02, 0x11, 0x05, 0x2a, 0xe0, 0x3d, 0x21, 0x43, 0x37,
		0xbc, 0xf3, 0x45, 0x9f, 0x71, 0x05, 0x9c, 0xa5, 0x3e, 0xb6, 0x35, 0xbd, 0xf5, 0xfb, 0x4e, 0xc0,
		0x38, 0x6e, 0xcd, 0x80, 0x64, 0xb5, 0xad, 0xb6, 0xdd, 0x3e, 0xdd, 0xef, 0x34, 0xce, 0xec, 0xce,
		0x1f, 0x27, 0x26, 0xd7, 0xf0, 0x15, 0x97, 0x9d, 0x02, 0xb6, 0x1b, 0x13, 0x1a, 0xeb, 0xcd, 0x89,
		0xc7, 0x88, 0x3a, 0x79, 0x2c, 0xf6, 0x62, 0x9d, 0x9c, 0x55, 0xec, 0xd6, 0xf1, 0x69, 0xc7, 0x6c,
		0xd9, 0x56, 0xbd, 0x80, 0xca, 0x32, 0x90, 0xb5, 0x3a, 0x64, 0x55, 0x81, 0x2c, 0x20, 0x6b, 0xf5,
		0xc8, 0x3a, 0x69, 0x99, 0x87, 0xd6, 0x0f, 0xfb, 0xb0, 0x61, 0x7c, 0x6b, 0x03, 0x57, 0xc0, 0xd5,
		0x8a, 0x71, 0xd5, 0x86, 0xb7, 0x02, 0xaa, 0x56, 0x87, 0xaa, 0x09, 0x7d, 0x6f, 0x73, 0xe6, 0xef,
		0x2a, 0xf1, 0x78, 0x35, 0xd0, 0x96, 0x1b, 0x5e, 0xaf, 0x80, 0x5f, 0xcb, 0x0f, 0xe2, 0xaa, 0x40,
		0x1c, 0x10, 0x87, 0x3c, 0x00, 0x78, 0xd3, 0x90, 0x1f, 0x00, 0x6d, 0x40, 0xdb, 0x87, 0xd0, 0xd6,
		0x31, 0xbe, 0x01, 0x66, 0x80, 0x59, 0x0a, 0x30, 0xab, 0x56, 0x14, 0x00, 0x1a, 0xeb, 0x2b, 0xb8,
		0x40, 0xbd, 0x09, 0x0b, 0x1b, 0x71, 0x03, 0x70, 0x42, 0x7c, 0x00, 0xa0, 0x54, 0x03, 0xd4, 0xc2,
		0xf1, 0x32, 0xff, 0xb1, 0x1b, 0x46, 0x13, 0xdb, 0x2c, 0x80, 0xd5, 0xaa, 0x61, 0x05, 0x48, 0x01,
		0x52, 0x2b, 0x85, 0x54, 0x72, 0x10, 0x16, 0x60, 0x05, 0x58, 0xad, 0x0c, 0x56, 0x67, 0x86, 0xd5,
		0x30, 0xf6, 0x1b, 0xa6, 0xbd, 0x6f, 0x34, 0xeb, 0xff, 0xb5, 0xea, 0x9d, 0xef, 0x80, 0x17, 0xe0,
		0xb5, 0x2a, 0x78, 0x25, 0xa0, 0xb2, 0x0f, 0x8e, 0x9b, 0xed, 0x4e, 0xcb, 0xb0, 0x9a, 0x1d, 0xb4,
		0x49, 0x01, 0x60, 0x2b, 0x03, 0x98, 0xf9, 0xa3, 0x63, 0x36, 0xeb, 0x66, 0x1d, 0xf1, 0x11, 0xf8,
		0x5a, 0x07, 0xbe, 0xe2, 0xd6, 0x15, 0xab, 0xd9, 0x31, 0x5b, 0x87, 0xc6, 0x81, 0x69, 0x1b, 0xf5,
		0x7a, 0xcb, 0x6c, 0xc3, 0x83, 0x01, 0x61, 0xab, 0x45, 0x58, 0xd3, 0xb4, 0xbe, 0x7d, 0xdf, 0x3f,
		0x6e, 0x01, 0x60, 0x00, 0xd8, 0x1a, 0x00, 0x56, 0x85, 0x0b, 0x03, 0xc2, 0xd6, 0x8c, 0x30, 0xb8,
		0x30, 0x00, 0x6c, 0x5d, 0x00, 0x6b, 0x58, 0xcd, 0xdf, 0x6d, 0xa3, 0xd3, 0x69, 0x59, 0xfb, 0xa7,
		0x1d, 0x13, 0xd0, 0x02, 0xb4, 0x56, 0x0b, 0xad, 0xba, 0xd9, 0x30, 0xfe, 0x00, 0xaa, 0x80, 0xaa,
		0xd5, 0xa3, 0xca, 0x3e, 0x33, 0x5a, 0x96, 0xd1, 0xb1, 0x8e, 0x9b, 0xc0, 0x17, 0xf0, 0xb5, 0x52,
		0x7c, 0x61, 0x83, 0x11, 0x90, 0x5a, 0x31, 0xa4, 0x1a, 0xc7, 0x20, 0xee, 0x00, 0xd5, 0x8a, 0x41,
		0x75, 0xd2, 0x3a, 0xee, 0x98, 0x07, 0x51, 0x08, 0x9c, 0xcc, 0x9d, 0x02, 0x5f, 0xc0, 0xd7, 0x8a,
		0xf0, 0x75, 0x64, 0xfc, 0x98, 0x60, 0x0c, 0xbb, 0xd7, 0x40, 0xd7, 0x5a, 0xd0, 0xd5, 0x32, 0xdb,
		0x66, 0xeb, 0x0c, 0x1d, 0x12, 0xc0, 0xd8, 0x9a, 0x30, 0x66, 0x35, 0x1f, 0xbc, 0x18, 0xea, 0x10,
		0x40, 0xd7, 0x4a, 0xd1, 0xd5, 0x32, 0xdb, 0x56, 0xfd, 0xd4, 0x68, 0xc0, 0x77, 0x01, 0x5d, 0xab,
		0x47, 0x17, 0xd4, 0x64, 0x80, 0xb6, 0xf4, 0x51, 0xa7, 0xc4, 0xcc, 0x86, 0x02, 0x4e, 0x2d, 0x47,
		0x70, 0x03, 0xd4, 0x00, 0xb5, 0x54, 0xa0, 0xa6, 0x40, 0x0f, 0x2b, 0xe0, 0xc6, 0x06, 0x6e, 0x2a,
		0xcd, 0x7e, 0x00, 0x76, 0x5c, 0x60, 0xa7, 0xd8, 0x4c, 0x08, 0x80, 0xc7, 0x05, 0x78, 0x6a, 0xcd,
		0x8a, 0x00, 0x77, 0x5c, 0x70, 0xa7, 0xda, 0x0c, 0x09, 0x90, 0xc7, 0x0a, 0x79, 0xea, 0x34, 0x66,
		0x03, 0x78, 0x8c, 0x80, 0x57, 0x85, 0xcb, 0x03, 0xf2, 0x32, 0x42, 0x1e, 0x5c, 0x1e, 0x80, 0x97,
		0x36, 0xf0, 0x94, 0x99, 0x51, 0x01, 0xe4, 0x58, 0x41, 0x8e, 0x79, 0xcf, 0x08, 0xd0, 0xc6, 0x0f,
		0x6d, 0x2a, 0xcc, 0xb4, 0x00, 0x77, 0xac, 0x70, 0x87, 0x0d, 0x58, 0x40, 0x2d, 0x25, 0xa8, 0xf1,
		0x9e, 0x81, 0x01, 0xd8, 0x58, 0x81, 0x4d, 0x99, 0xd9, 0x18, 0xe0, 0x8e, 0x0b, 0xee, 0x54, 0x9a,
		0x99, 0x01, 0xea, 0x38, 0xa1, 0x4e, 0xad, 0x59, 0x1a, 0x60, 0x8f, 0x0d, 0xf6, 0x14, 0x9a, 0xb1,
		0x01, 0xea, 0xb8, 0xa0, 0x4e, 0xa5, 0xd9, 0x1b, 0xa0, 0x8e, 0x0b, 0xea, 0x3a, 0xa6, 0x5d, 0x37,
		0x0f, 0x8d, 0xd3, 0x46, 0xc7, 0x3e, 0x32, 0x3b, 0x2d, 0xeb, 0x00, 0xa0, 0x03, 0xe8, 0xd6, 0x0d,
		0xba, 0xd3, 0x66, 0xd2, 0xca, 0x69, 0xd6, 0xed, 0x46, 0x1b, 0x6d, 0x75, 0x00, 0x5d, 0x0a, 0xa0,
		0x9b, 0xe4, 0x13, 0x66, 0x1d, 0x11, 0x16, 0xb8, 0x4b, 0x11, 0x77, 0x1d, 0xab, 0x61, 0xfd, 0x9f,
		0x62, 0xa8, 0xc3, 0x89, 0x95, 0x58, 0xed, 0x79, 0x5a, 0xe5, 0x79, 0xe0, 0xcf, 0x00, 0x17, 0x78,
		0x32, 0xc0, 0x95, 0x23, 0x70, 0xa9, 0xc4, 0x87, 0x81, 0x2f, 0xf0, 0x5e, 0xa0, 0x4b, 0x5d, 0x74,
		0xb5, 0x8e, 0x4f, 0x3b, 0x66, 0xcb, 0x3e, 0x30, 0x4e, 0x12, 0x35, 0xa1, 0x96, 0x6d, 0x34, 0xbe,
		0x1d, 0xb7, 0xac, 0xce, 0xf7, 0x23, 0x20, 0x0b, 0xc8, 0x5a, 0x29, 0xb2, 0x1e, 0xfe, 0x06, 0x68,
		0x01, 0x5a, 0x2b, 0x84, 0x16, 0x24, 0xd0, 0x80, 0x37, 0x04, 0xcb, 0xfc, 0x7a, 0xb6, 0x3c, 0x21,
		0x4e, 0x85, 0x20, 0x9a, 0x40, 0x0e, 0x15, 0x6f, 0xdc, 0x77, 0x85, 0xef, 0x37, 0xaf, 0xfb, 0xcc,
		0xc7, 0x5a, 0x1e, 0x96, 0x32, 0x09, 0xa8, 0x05, 0x43, 0xca, 0x61, 0xe8, 0x84, 0xee, 0x50, 0x16,
		0x6a, 0x8c, 0x42, 0x68, 0x21, 0xe8, 0x5e, 0x89, 0x6b, 0x67, 0xe4, 0x84, 0x57, 0x51, 0xb0, 0x2c,
		0x0e, 0x47, 0x42, 0x76, 0x87, 0xb2, 0xef, 0x0e, 0x74, 0x29, 0xc2, 0x9f, 0x43, 0xff, 0x2f, 0xdd,
		0x95, 0x41, 0xe8, 0xc8, 0xae, 0x28, 0x3e, 0xfd, 0x20, 0x58, 0xf8, 0xa4, 0x38, 0xf2, 0x87, 0xe1,
		0xb0, 0x3b, 0xf4, 0x82, 0xe4, 0x5d, 0xd1, 0x0d, 0xdc, 0xa0, 0xe8, 0x89, 0x1b, 0xe1, 0x4d, 0xbf,
		0x14, 0x3d, 0x57, 0xfe, 0xa5, 0x07, 0xa1, 0x13, 0x0a, 0xbd, 0xe7, 0x84, 0xce, 0xa5, 0x13, 0x88,
		0xa2, 0x17, 0x8c, 0x8a, 0xa1, 0x77, 0x13, 0x44, 0x7f, 0xc4, 0x3f, 0xa2, 0x4b, 0xe1, 0x0e, 0xae,
		0x2e, 0x87, 0xbe, 0xee, 0x84, 0xa1, 0xef, 0x5e, 0x8e, 0xc3, 0xc8, 0x80, 0xc9, 0x47, 0x41, 0xf2,
		0xae, 0xf8, 0x60, 0x4b, 0x62, 0x43, 0x30, 0xbe, 0x8c, 0xff, 0xa7, 0xc9, 0xd7, 0xa2, 0x73, 0xe3,
		0xb8, 0x9e, 0x73, 0xe9, 0x09, 0xfd, 0xd2, 0x91, 0xbd, 0x9f, 0x6e, 0x2f, 0xbc, 0x2a, 0xc6, 0xbf,
		0x9c, 0x51, 0x92, 0x53, 0x08, 0x42, 0x7f, 0xdc, 0x0d, 0xe5, 0x94, 0xd2, 0x1c, 0x27, 0x0f, 0xa9,
		0x39, 0x79, 0x00, 0xd6, 0xf4, 0xda, 0xed, 0x27, 0x7f, 0x0f, 0x9e, 0x7e, 0x60, 0x9f, 0xcc, 0x1e,
		0x50, 0xf2, 0xce, 0xb6, 0x02, 0x37, 0xb0, 0x1b, 0xf1, 0x03, 0x9a, 0x7c, 0xb1, 0x1b, 0xae, 0xfc,
		0xab, 0x1d, 0xdd, 0xa2, 0xfa, 0xf4, 0xf1, 0xd8, 0x8d, 0x60, 0x64, 0x77, 0xbc, 0x9b, 0x20, 0xfa,
		0x23, 0xfe, 0x81, 0xe6, 0xf4, 0x01, 0x18, 0xb3, 0x87, 0x63, 0xcf, 0x3e, 0x09, 0x92, 0x77, 0xf6,
		0x83, 0x19, 0xc9, 0xef, 0x6f, 0x4f, 0x1e, 0xce, 0xf4, 0xab, 0x6d, 0xcc, 0x1e, 0xce, 0xfe, 0xec,
		0xd9, 0xd8, 0xf1, 0x2f, 0xe6, 0xc1, 0xca, 0xe8, 0x7b, 0x50, 0xda, 0x16, 0x12, 0xf7, 0xed, 0x05,
		0x71, 0x1b, 0xfa, 0x8e, 0x3e, 0x8e, 0xb0, 0x7b, 0xe9, 0x09, 0x16, 0x7e, 0xbd, 0xe0, 0x8b, 0xbe,
		0xf0, 0x85, 0xec, 0x0a, 0x36, 0xd5, 0x0f, 0x46, 0xc1, 0x32, 0xc9, 0x29, 0x0f, 0x0f, 0x76, 0xbf,
		0x96, 0xb6, 0x6a, 0x9a, 0xd5, 0xd6, 0xad, 0xb6, 0xd6, 0xf1, 0x9d, 0x7e, 0xdf, 0xed, 0x6a, 0xa6,
		0x1c, 0xb8, 0x52, 0x08, 0xdf, 0x95, 0x03, 0xed, 0x73, 0xc7, 0xfc, 0xa2, 0x1d, 0x89, 0xd0, 0x77,
		0xbb, 0xe7, 0xd2, 0xbc, 0x0d, 0x85, 0x0c, 0xdc, 0xa1, 0x0c, 0x36, 0xb5, 0x60, 0x7c, 0xa9, 0x77,
		0x1a, 0x67, 0xda, 0xf6, 0xd7, 0x9a, 0x16, 0x7d, 0x2d, 0x97, 0x37, 0xb4, 0xf2, 0xf6, 0x86, 0x56,
		0xaa, 0x94, 0x36, 0xb4, 0x72, 0xfc, 0xb7, 0xf2, 0xf6, 0x26, 0xa7, 0xe0, 0xd4, 0x1e, 0x8e, 0xfd,
		0xae, 0x60, 0x45, 0x7b, 0x62, 0xbb, 0x7f, 0x17, 0x77, 0x3f, 0x87, 0x7e, 0x2f, 0x7a, 0xa0, 0x0f,
		0xab, 0x86, 0x57, 0xfd, 0xa6, 0xf0, 0xdd, 0x09, 0x0c, 0x7f, 0x30, 0xbe, 0x16, 0x32, 0x2c, 0xd4,
		0xb4, 0xd0, 0x1f, 0x0b, 0x66, 0x17, 0x30, 0x67, 0x7d, 0x1a, 0xcb, 0x0a, 0xd9, 0x59, 0xce, 0xac,
		0xbc, 0xa0, 0xbf, 0x1e, 0x0a, 0x3f, 0xaf, 0x84, 0x44, 0xb8, 0x5e, 0x5f, 0xb8, 0xde, 0xdc, 0x9c,
		0x64, 0x7c, 0xc5, 0xf0, 0x6e, 0x24, 0xb4, 0x7f, 0x6b, 0x9f, 0x86, 0x5d, 0x3d, 0xce, 0x31, 0xbd,
		0xa0, 0x77, 0xa9, 0x47, 0x1f, 0x06, 0xb5, 0x37, 0x48, 0xca, 0x7f, 0x42, 0x50, 0x4e, 0x35, 0x28,
		0xc7, 0xcb, 0x02, 0xf1, 0x38, 0xbb, 0x78, 0xbc, 0xb2, 0x75, 0xc3, 0x27, 0xea, 0x32, 0x5a, 0xe1,
		0x75, 0x11, 0x74, 0x7d, 0x77, 0xc4, 0xae, 0xe4, 0xf8, 0xc8, 0x35, 0x1f, 0x4b, 0xef, 0x4e, 0x73,
		0x65, 0xd7, 0x1b, 0xf7, 0x84, 0x16, 0x5e, 0x09, 0x2d, 0x29, 0xd7, 0x69, 0x71, 0xb9, 0xae, 0xe7,
		0x86, 0x57, 0x5a, 0x77, 0x28, 0x43, 0xc7, 0x95, 0xc2, 0xd7, 0x22, 0x97, 0x10, 0x7d, 0xdb, 0xb9,
		0x9c, 0xf1, 0x3d, 0x37, 0xd0, 0x62, 0x74, 0x6e, 0x7f, 0xdd, 0xe4, 0xe6, 0x2b, 0x98, 0xba, 0xe8,
		0xa7, 0x6e, 0xba, 0x37, 0x87, 0x43, 0x7e, 0xbb, 0xdf, 0xec, 0x3d, 0xf6, 0x82, 0xd7, 0x5e, 0xe9,
		0x92, 0xc2, 0xde, 0x1b, 0xb2, 0x3b, 0xca, 0xd9, 0x1d, 0xea, 0xdb, 0x1f, 0xf1, 0x1a, 0xbc, 0xf6,
		0x2c, 0x73, 0xb9, 0x57, 0xc9, 0x20, 0xa4, 0xe6, 0x68, 0x77, 0x92, 0x76, 0x3c, 0xa4, 0xeb, 0xaf,
		0x09, 0x7b, 0xc2, 0x42, 0xb2, 0xd4, 0xf4, 0xee, 0x50, 0x06, 0xa1, 0xef, 0xb8, 0x32, 0x0c, 0xc8,
		0x3b, 0xc4, 0x24, 0x83, 0x7a, 0xde, 0x7c, 0xe2, 0x91, 0xe7, 0x77, 0x57, 0x46, 0xb9, 0x43, 0x89,
		0xb8, 0x99, 0x07, 0xb1, 0x1b, 0x2b, 0xd4, 0xb4, 0x2d, 0xe2, 0x86, 0x9e, 0xf8, 0xa2, 0xef, 0xde,
		0xf2, 0x88, 0xe2, 0x33, 0xe0, 0x4e, 0x8b, 0x49, 0x1c, 0x02, 0x1c, 0xb3, 0x4c, 0x7d, 0x3e, 0x3b,
		0x1f, 0x4d, 0x90, 0xc1, 0xa4, 0x8b, 0x8e, 0x6b, 0x32, 0xfe, 0x28, 0x01, 0x9f, 0x01, 0x1b, 0xdd,
		0x41, 0x4a, 0x67, 0x4f, 0x75, 0xd7, 0xe7, 0xe1, 0x70, 0x9f, 0x63, 0x08, 0x7c, 0x7c, 0xd9, 0x4b,
		0x3c, 0x87, 0x8b, 0x5b, 0xe3, 0x41, 0x77, 0xd8, 0xd1, 0x1e, 0x8e, 0xf4, 0x87, 0x31, 0x0d, 0xe2,
		0x4a, 0x87, 0xd8, 0xd3, 0x22, 0xf6, 0xf4, 0x88, 0x37, 0x4d, 0xe2, 0x41, 0x97, 0x98, 0xd0, 0x26,
		0x76, 0xf4, 0x29, 0x31, 0x98, 0x53, 0x75, 0x68, 0x69, 0xb4, 0xe1, 0x53, 0x23, 0x62, 0x4e, 0xa2,
		0xd8, 0x92, 0x29, 0xce, 0xa4, 0x4a, 0x01, 0x72, 0xc5, 0x9d, 0x64, 0x29, 0x43, 0xb6, 0x94, 0x21,
		0x5d, 0x6a, 0x90, 0x2f, 0x5e, 0x24, 0x8c, 0x19, 0x19, 0x63, 0x4b, 0xca, 0x9e, 0x21, 0x67, 0x7c,
		0x3d, 0xe6, 0x22, 0x47, 0xe3, 0xea, 0x32, 0x79, 0x52, 0x35, 0xf6, 0x94, 0x4d, 0x05, 0xea, 0xa6,
		0x10, 0x85, 0x53, 0x85, 0xca, 0x29, 0x47, 0xe9, 0x94, 0xa3, 0x76, 0x6a, 0x51, 0x3c, 0x9e, 0x54,
		0x8f, 0x29, 0xe5, 0x63, 0x4f, 0xfd, 0x9e, 0xa1, 0x80, 0xba, 0xdb, 0xe3, 0xef, 0x6c, 0x17, 0xd9,
		0x60, 0x74, 0x59, 0xcc, 0xfd, 0xd3, 0x94, 0x18, 0x6e, 0x31, 0xbf, 0x0c, 0xee, 0x04, 0x51, 0x25,
		0xa2, 0xa8, 0x20, 0x61, 0x54, 0x8d, 0x38, 0x2a, 0x4b, 0x20, 0x95, 0x25, 0x92, 0x6a, 0x12, 0x4a,
		0xde, 0xc4, 0x92, 0x39, 0xc1, 0x4c, 0x20, 0xd5, 0xb9, 0x1b, 0x09, 0xb5, 0x22, 0x8e, 0x27, 0x9c,
		0xbe, 0x2f, 0xfa, 0x2a, 0x44, 0x9c, 0x59, 0xe5, 0x6e, 0x57, 0x81, 0x6b, 0x39, 0x99, 0x0e, 0x8a,
		0x25, 0x32, 0x06, 0x8f, 0xa9, 0xf4, 0x6f, 0x70, 0x61, 0x70, 0x5f, 0xbf, 0x86, 0xa8, 0x89, 0x6e,
		0xa8, 0x32, 0xa9, 0x25, 0x37, 0x19, 0xd4, 0x17, 0x3d, 0x16, 0x52, 0x4a, 0xa4, 0x94, 0x48, 0x29,
		0x91, 0x52, 0x22, 0xa5, 0x44, 0x4a, 0x09, 0x3e, 0x96, 0xaf, 0x94, 0x92, 0xfb, 0xde, 0x45, 0x72,
		0x21, 0x0f, 0xb2, 0x0f, 0x35, 0xd5, 0xce, 0xe1, 0xe1, 0xa4, 0x68, 0xf1, 0x2b, 0xc4, 0x73, 0x4b,
		0x91, 0xcb, 0x51, 0x85, 0x80, 0xaa, 0x48, 0x44, 0x15, 0x26, 0xa4, 0xaa, 0x12, 0x53, 0xe5, 0x09,
		0xaa, 0xf2, 0x44, 0x55, 0x6d, 0xc2, 0xaa, 0x06, 0x71, 0x55, 0x84, 0xc0, 0x26, 0x50, 0x53, 0x66,
		0x6f, 0x64, 0x21, 0x62, 0xb9, 0x42, 0x88, 0xbe, 0x37, 0x74, 0xc2, 0xed, 0xb2, 0x4a, 0x51, 0x6b,
		0x4a, 0x02, 0xf7, 0x14, 0xba, 0xa4, 0x86, 0x90, 0x83, 0x38, 0x01, 0xf9, 0x53, 0x29, 0x37, 0xae,
		0x16, 0xad, 0x88, 0x9f, 0xd4, 0x91, 0x2b, 0x95, 0xe3, 0x4b, 0xc9, 0xc5, 0xc5, 0x67, 0x38, 0x17,
		0x6a, 0x5a, 0x65, 0x43, 0xcd, 0xeb, 0x3b, 0xf4, 0x9d, 0x6e, 0xe8, 0x0e, 0x65, 0xdd, 0x1d, 0xb8,
		0xf1, 0x44, 0xf1, 0x96, 0xa2, 0x17, 0xda, 0x14, 0x03, 0x27, 0x74, 0x6f, 0xa2, 0x67, 0xd9, 0x77,
		0xbc, 0x40, 0x28, 0x77, 0x95, 0xf7, 0x1b, 0x0a, 0xba, 0x16, 0xe7, 0x16, 0xae, 0x05, 0xae, 0x05,
		0xae, 0x05, 0xd9, 0x19, 0xae, 0x66, 0xf1, 0x75, 0xf1, 0x1b, 0x9e, 0x07, 0x42, 0xef, 0x6a, 0x9c,
		0x98, 0x5a, 0x73, 0x2b, 0x0b, 0x89, 0xbf, 0x4a, 0xf3, 0x2b, 0x4f, 0xd3, 0x7e, 0xec, 0xfd, 0x10,
		0xbd, 0x20, 0xec, 0xfd, 0xb0, 0xba, 0x34, 0xec, 0xfd, 0x30, 0xbd, 0x40, 0xec, 0xfd, 0x80, 0xff,
		0x81, 0x03, 0xae, 0x06, 0x6a, 0xea, 0xee, 0xfd, 0x8c, 0x5d, 0xa9, 0xe6, 0xb6, 0xcf, 0xae, 0x42,
		0x97, 0xd4, 0x72, 0xe4, 0x40, 0x60, 0xd7, 0x87, 0xfe, 0x83, 0xca, 0xc5, 0xae, 0xcf, 0x16, 0x4a,
		0xb3, 0xcc, 0x7d, 0x3f, 0x76, 0x7d, 0x18, 0xba, 0x96, 0x5c, 0xec, 0xfa, 0x94, 0xf7, 0x2a, 0x7b,
		0xd5, 0xdd, 0xf2, 0xde, 0x0e, 0x7c, 0x0c, 0x7c, 0x0c, 0x12, 0x34, 0x5c, 0xcd, 0x2f, 0xbf, 0xb0,
		0xfd, 0x83, 0x2b, 0xc8, 0x3d, 0x83, 0xe0, 0x76, 0x7c, 0xf0, 0xab, 0xd7, 0xa3, 0xfc, 0xf1, 0xc2,
		0xcf, 0x1e, 0x15, 0xfa, 0xec, 0xa7, 0xc5, 0xf9, 0x6f, 0x98, 0xfb, 0x58, 0x05, 0xc5, 0x00, 0x4d,
		0xe5, 0x23, 0x8b, 0x93, 0x93, 0x8a, 0x0f, 0x1e, 0x1e, 0xe0, 0x73, 0x1f, 0xda, 0xf3, 0xff, 0x3e,
		0xf7, 0x71, 0x6c, 0x25, 0xa4, 0x51, 0x60, 0xb9, 0xf2, 0x61, 0xac, 0xf0, 0xbb, 0xb8, 0x53, 0xa5,
		0x3f, 0xa1, 0xd0, 0x70, 0x83, 0x30, 0xf2, 0x1c, 0xbc, 0x15, 0x5c, 0x8f, 0x5c, 0x69, 0x7a, 0xe2,
		0x5a, 0x48, 0xee, 0x59, 0x6b, 0xe1, 0xc8, 0xb9, 0x9d, 0xbb, 0x92, 0xd2, 0xd7, 0x4a, 0xa5, 0xba,
		0x5b, 0xa9, 0x6c, 0xed, 0x6e, 0xef, 0x6e, 0xed, 0xed, 0xec, 0x94, 0xaa, 0x25, 0xc6, 0xb5, 0x87,
		0xc2, 0xb1, 0xdf, 0x13, 0xbe, 0xe8, 0xed, 0x47, 0xcb, 0x47, 0x8e, 0x3d, 0x4f, 0x85, 0x4b, 0x39,
		0x0d, 0x84, 0xcf, 0xba, 0x8c, 0xc0, 0xd5, 0x0b, 0x2b, 0x92, 0x44, 0x20, 0x79, 0x78, 0x35, 0x79,
		0x28, 0xb0, 0x16, 0x7e, 0x43, 0xba, 0xf0, 0x4c, 0xba, 0xc0, 0x33, 0x51, 0xb8, 0xc7, 0xa1, 0x57,
		0x08, 0x45, 0xea, 0x84, 0x20, 0x84, 0x9e, 0xe7, 0x43, 0x0f, 0xc7, 0x43, 0x1f, 0x11, 0x67, 0xe6,
		0x9e, 0xdf, 0x6f, 0x70, 0xd1, 0x39, 0x77, 0xcf, 0x85, 0xeb, 0x61, 0x4f, 0x78, 0x1c, 0xc7, 0x62,
		0x92, 0xde, 0xc7, 0xe4, 0x0a, 0x78, 0x9e, 0xb6, 0xbc, 0x85, 0xd3, 0x96, 0xd3, 0x31, 0x1c, 0xa7,
		0x2d, 0x67, 0x7a, 0x09, 0x38, 0x6d, 0x99, 0xc8, 0x85, 0xe0, 0xb4, 0x65, 0xb0, 0x9a, 0xbc, 0x24,
		0x9e, 0x6c, 0x27, 0x3e, 0x14, 0x38, 0xf9, 0x84, 0xf3, 0x49, 0x27, 0x8b, 0x27, 0x9b, 0x24, 0x2c,
		0x13, 0x39, 0x53, 0xee, 0x73, 0x26, 0x9e, 0x87, 0x94, 0xb0, 0x3e, 0x94, 0x84, 0xe9, 0x21, 0x24,
		0xc8, 0x96, 0x90, 0x2d, 0x21, 0x5b, 0x42, 0xb6, 0x84, 0x6c, 0x09, 0xd9, 0x12, 0x7d, 0x88, 0x70,
		0x3d, 0xe4, 0x83, 0x6f, 0x11, 0x7b, 0x21, 0x64, 0x31, 0x2d, 0x66, 0x3f, 0xa5, 0x69, 0x4c, 0x3b,
		0x0b, 0xd9, 0xcb, 0x34, 0xa9, 0x20, 0xcb, 0xa4, 0x90, 0x0c, 0x93, 0x2a, 0xb2, 0x4b, 0xca, 0xc9,
		0x2c, 0x29, 0x27, 0xab, 0xa4, 0x96, 0x8c, 0x12, 0xc6, 0x34, 0xd2, 0x84, 0x0e, 0x7b, 0x59, 0xa4,
		0x47, 0x32, 0x48, 0x5f, 0x39, 0xc7, 0x8b, 0x29, 0x7d, 0xe2, 0x3c, 0xbb, 0xa0, 0x86, 0xca, 0x91,
		0x02, 0xc3, 0xb6, 0x2a, 0xa9, 0x18, 0xa9, 0xa6, 0x5a, 0xa4, 0xac, 0x82, 0x88, 0x7a, 0x8a, 0x21,
		0x2a, 0x08, 0x60, 0xab, 0xa4, 0x3a, 0x94, 0xb8, 0x82, 0xf2, 0xce, 0x0e, 0x9c, 0x01, 0x9c, 0x01,
		0x12, 0x93, 0x1c, 0x58, 0x7f, 0x81, 0x31, 0x28, 0x58, 0xcc, 0x3d, 0x34, 0x63, 0x0c, 0x4a, 0xa1,
		0x31, 0x28, 0xae, 0x3a, 0x3d, 0x18, 0x80, 0x62, 0x28, 0xc0, 0xc3, 0xa8, 0x8d, 0xef, 0x37, 0x04,
		0x8e, 0xd5, 0xad, 0xd5, 0xa9, 0x80, 0x0e, 0xb3, 0x4d, 0x61, 0x9e, 0x5a, 0x39, 0x7c, 0xb5, 0x71,
		0x94, 0xd2, 0xc2, 0x61, 0xac, 0x7d, 0xc3, 0x58, 0xeb, 0x86, 0x8b, 0x43, 0x64, 0xca, 0xa0, 0xc1,
		0x9c, 0x59, 0x8a, 0xd4, 0xe4, 0x9e, 0x2b, 0xf3, 0x60, 0xc9, 0xf4, 0x39, 0x27, 0x6d, 0x0b, 0x89,
		0x3b, 0xff, 0x82, 0xb8, 0x0d, 0x7d, 0x47, 0x1f, 0x47, 0x58, 0xbe, 0xf4, 0x78, 0x74, 0x2a, 0x14,
		0x7c, 0xd1, 0x17, 0xbe, 0x90, 0x5d, 0x3e, 0x3b, 0xe1, 0x8c, 0xa2, 0xe9, 0xac, 0xdd, 0xa3, 0x75,
		0x78, 0x50, 0x29, 0x95, 0x2b, 0x35, 0x6d, 0xe6, 0x54, 0x35, 0xf3, 0x36, 0x14, 0x32, 0x70, 0x87,
		0x32, 0xd0, 0xfa, 0x43, 0x5f, 0x6b, 0x8f, 0x47, 0xa3, 0xa1, 0x1f, 0x6a, 0xc3, 0xbe, 0x56, 0x77,
		0xfb, 0xfd, 0x40, 0xf8, 0x37, 0xfa, 0xb9, 0x74, 0x7e, 0x3a, 0xbe, 0xd0, 0x8e, 0x4e, 0x1a, 0x6d,
		0xad, 0xe3, 0x3b, 0xfd, 0xbe, 0xdb, 0xd5, 0x4c, 0x39, 0x70, 0xa5, 0x10, 0xbe, 0x2b, 0x07, 0x9b,
		0x5a, 0x30, 0xbe, 0xd4, 0x3b, 0x8d, 0x33, 0xad, 0x5c, 0xae, 0x69, 0x93, 0xaf, 0x1b, 0x5a, 0x79,
		0x7b, 0xe3, 0x5c, 0x96, 0x2a, 0xa5, 0x0d, 0xad, 0x5c, 0x2e, 0x6f, 0x94, 0xcb, 0xdb, 0x9c, 0xc2,
		0x18, 0xd3, 0x2e, 0xc4, 0xf9, 0xae, 0xc3, 0x87, 0xf5, 0xc4, 0xac, 0xe6, 0xcb, 0xbd, 0xd1, 0xf0,
		0x51, 0x63, 0x61, 0xa6, 0x0b, 0x0e, 0x35, 0xb0, 0x9c, 0x59, 0x79, 0x41, 0x7f, 0xa5, 0x14, 0x7e,
		0x5e, 0x09, 0x89, 0x10, 0xbf, 0xbe, 0x10, 0x9f, 0xcc, 0xdf, 0x87, 0x77, 0x23, 0xa1, 0xfd, 0xfb,
		0xd3, 0xb4, 0xb5, 0x59, 0xf7, 0x82, 0xde, 0xa5, 0x1e, 0x7d, 0x16, 0xd4, 0xac, 0xb6, 0xdd, 0x32,
		0x8d, 0x83, 0xef, 0xc6, 0xbe, 0xd5, 0xb0, 0x3a, 0x7f, 0xd8, 0xfb, 0x46, 0xb3, 0xfe, 0x5f, 0xab,
		0xde, 0xf9, 0x6e, 0x1f, 0x1c, 0x37, 0xdb, 0x9d, 0x96, 0x61, 0x35, 0x3b, 0xed, 0x4f, 0x88, 0xd7,
		0xa9, 0xc6, 0xeb, 0x78, 0x5d, 0x20, 0x54, 0x67, 0x17, 0xaa, 0x57, 0xb7, 0x70, 0x20, 0x21, 0xb1,
		0x86, 0x47, 0x55, 0x17, 0x41, 0xd7, 0x77, 0x47, 0x2c, 0x7b, 0x01, 0x12, 0xe7, 0x7c, 0x2c, 0xbd,
		0x3b, 0xcd, 0x95, 0x5d, 0x6f, 0xdc, 0x13, 0x5a, 0x78, 0x25, 0xb4, 0xa4, 0xde, 0xa7, 0xcd, 0x55,
		0x01, 0xa3, 0xf7, 0xa1, 0xe3, 0x4a, 0xe1, 0x6b, 0x91, 0x57, 0x38, 0x97, 0xd1, 0x77, 0xce, 0x28,
		0x9f, 0x1b, 0x68, 0x31, 0x40, 0xcb, 0xe5, 0x4d, 0x6e, 0xee, 0x82, 0xf1, 0x6c, 0xd7, 0xbc, 0xa7,
		0xee, 0xcd, 0x21, 0x91, 0x61, 0x3b, 0x83, 0x0a, 0x83, 0x5c, 0x8f, 0x1c, 0xf7, 0x8a, 0x17, 0x15,
		0xfa, 0x1c, 0x90, 0xe3, 0x51, 0xce, 0xf1, 0x50, 0x19, 0xff, 0x88, 0xdf, 0xe0, 0xb5, 0x1d, 0x9a,
		0xd3, 0x6d, 0x50, 0x06, 0x61, 0x35, 0x57, 0x3b, 0x9d, 0xb4, 0x63, 0x22, 0x5d, 0x9f, 0x4d, 0xd8,
		0x1b, 0x16, 0xc4, 0x6d, 0x28, 0x64, 0x4f, 0xf4, 0x74, 0xa7, 0x77, 0xed, 0x4a, 0x7d, 0xe0, 0x0f,
		0xc7, 0x23, 0xf2, 0x3e, 0x31, 0x49, 0xa4, 0x9e, 0xb5, 0x9e, 0x78, 0xec, 0xe1, 0x21, 0xc8, 0xc7,
		0x46, 0xd1, 0x85, 0x93, 0x72, 0x0b, 0x43, 0x85, 0x16, 0x6e, 0xd9, 0x3a, 0x5b, 0xc5, 0x15, 0xb6,
		0x09, 0x39, 0x4f, 0x05, 0x15, 0x74, 0x16, 0x7d, 0xe4, 0x91, 0x73, 0x11, 0xbc, 0x63, 0xa6, 0x38,
		0xcc, 0x52, 0x69, 0x98, 0x99, 0xc2, 0x30, 0x3b, 0xa9, 0x3a, 0x8e, 0xd2, 0x74, 0x8c, 0xa5, 0xe8,
		0x54, 0xd8, 0x44, 0x66, 0x29, 0x35, 0xa7, 0xd6, 0x36, 0x32, 0x3b, 0x29, 0x39, 0x0c, 0x20, 0xe6,
		0x91, 0x20, 0x25, 0x06, 0xb3, 0xac, 0x03, 0x2d, 0x0d, 0x3b, 0x0c, 0xeb, 0x42, 0xcb, 0x68, 0x15,
		0x8e, 0xb9, 0x03, 0xcd, 0x52, 0x98, 0x6e, 0x71, 0xa7, 0x5d, 0xca, 0xd0, 0x2f, 0x65, 0x68, 0x98,
		0x1a, 0x74, 0x8c, 0x17, 0x2d, 0x63, 0x46, 0xcf, 0x12, 0x88, 0xf0, 0x3f, 0xe6, 0x6e, 0xec, 0xca,
		0x70, 0xbb, 0xcc, 0xf8, 0x94, 0x3b, 0x8e, 0x87, 0xdc, 0xf1, 0x96, 0xea, 0x65, 0xac, 0x57, 0xad,
		0x82, 0x34, 0xaf, 0x2a, 0x92, 0xbc, 0xca, 0xa9, 0x6f, 0xaa, 0xa3, 0xba, 0xc9, 0x58, 0x7a, 0x57,
		0x09, 0xc9, 0xdd, 0x64, 0x89, 0x57, 0xca, 0x7b, 0x95, 0xbd, 0xea, 0x6e, 0x79, 0x6f, 0x07, 0x6b,
		0x1d, 0x6b, 0x1d, 0x09, 0x02, 0x63, 0xab, 0x2f, 0x90, 0x88, 0xad, 0x71, 0x39, 0xb2, 0x54, 0xbe,
		0x9b, 0xa7, 0xa5, 0x3c, 0x15, 0xf0, 0xe6, 0xa3, 0xae, 0x32, 0x4a, 0x78, 0xc9, 0x45, 0xf1, 0x55,
		0xc4, 0x5b, 0xbc, 0x04, 0x76, 0xca, 0x78, 0x5c, 0x3d, 0x11, 0x43, 0xd1, 0xa4, 0x85, 0x6b, 0xe0,
		0x27, 0xa2, 0xa4, 0x50, 0x8d, 0x62, 0x4e, 0x64, 0x69, 0x77, 0x7b, 0xeb, 0x6b, 0x6d, 0x22, 0xf5,
		0xd2, 0x13, 0x3d, 0xcd, 0xe8, 0x5d, 0xbb, 0xd2, 0x0d, 0x42, 0x3f, 0x66, 0x9e, 0xda, 0x37, 0x7f,
		0x38, 0x1e, 0x05, 0x9a, 0x2b, 0x63, 0x85, 0x97, 0x73, 0xf9, 0x8c, 0xc4, 0x8b, 0xf6, 0x39, 0xfa,
		0x27, 0xbd, 0x63, 0x7e, 0x79, 0x10, 0x7b, 0x29, 0x55, 0x62, 0xb1, 0x97, 0x73, 0x59, 0x2e, 0x6f,
		0x94, 0xb7, 0x37, 0x4a, 0x95, 0xd2, 0xc6, 0x54, 0xe9, 0x65, 0x13, 0x27, 0x3e, 0x66, 0x7f, 0x1d,
		0x0a, 0x68, 0x2f, 0x2d, 0x5c, 0x93, 0xd2, 0x87, 0x3e, 0x66, 0xb1, 0x4e, 0x91, 0x6d, 0xc2, 0x6a,
		0x95, 0xb2, 0x4d, 0x74, 0xb9, 0xe5, 0x91, 0x33, 0x43, 0x55, 0x9a, 0xea, 0x38, 0xf5, 0x73, 0xfd,
		0x6f, 0xec, 0x4e, 0x5e, 0x51, 0x76, 0xb6, 0x7a, 0x46, 0x34, 0x62, 0x9e, 0x11, 0xb3, 0x0b, 0x4e,
		0x67, 0xab, 0x40, 0x35, 0x5a, 0x69, 0xe7, 0xce, 0x52, 0x35, 0x1a, 0x6a, 0x92, 0xeb, 0xad, 0x65,
		0x3c, 0x11, 0xc5, 0xd3, 0xde, 0xa2, 0x8a, 0x67, 0xfe, 0xe8, 0x98, 0xcd, 0xba, 0x59, 0xb7, 0x8d,
		0xfa, 0x91, 0xd5, 0xb4, 0xbf, 0xb5, 0x8e, 0x4f, 0x4f, 0xa0, 0x26, 0x99, 0x6e, 0x05, 0x02, 0x6a,
		0x92, 0x19, 0x17, 0x17, 0x56, 0xb7, 0x70, 0xa0, 0x26, 0xb9, 0x86, 0x47, 0xa5, 0xa6, 0x9a, 0xe4,
		0x8c, 0xfd, 0x6b, 0x31, 0xfb, 0xd7, 0x62, 0xf6, 0x1f, 0xab, 0xdd, 0x45, 0xff, 0x7a, 0x2e, 0x67,
		0x05, 0xaa, 0x18, 0x92, 0x6e, 0xa0, 0x95, 0x2a, 0x90, 0x90, 0xcc, 0xc6, 0x3d, 0x43, 0x42, 0x92,
		0x96, 0xb7, 0x5e, 0xc5, 0x4a, 0x42, 0xe1, 0x2e, 0xcf, 0x85, 0x3b, 0xe8, 0x46, 0x2a, 0x9d, 0x1b,
		0x43, 0x37, 0x92, 0x41, 0xa1, 0x13, 0xb2, 0x91, 0x94, 0x4a, 0x9b, 0x10, 0x8d, 0x54, 0xce, 0x15,
		0x16, 0xdc, 0xd1, 0x4d, 0x45, 0x77, 0x65, 0x28, 0xfc, 0xbe, 0xd3, 0x15, 0xba, 0xd3, 0xeb, 0xf9,
		0x22, 0x08, 0xf8, 0xc8, 0x46, 0x2e, 0xb1, 0x1f, 0xc2, 0x91, 0xab, 0x30, 0x13, 0xc2, 0x91, 0x6b,
		0x44, 0x2e, 0x84, 0x23, 0xd3, 0xc8, 0xcb, 0x21, 0x1c, 0x99, 0x7a, 0xea, 0x0d, 0xe1, 0xc8, 0x5c,
		0x24, 0x50, 0x10, 0x8e, 0x5c, 0x6f, 0x7c, 0x80, 0x70, 0x24, 0x88, 0x0d, 0x47, 0x82, 0xc3, 0x98,
		0xe8, 0x70, 0x25, 0x3c, 0xec, 0x89, 0x0f, 0x7b, 0x02, 0xc4, 0x9b, 0x08, 0xf1, 0x20, 0x44, 0x4c,
		0x88, 0x11, 0x3b, 0x82, 0x94, 0x18, 0xcc, 0xa5, 0xf8, 0xb3, 0x34, 0xd2, 0xf0, 0xa8, 0xfe, 0x2c,
		0x23, 0x4f, 0x90, 0x87, 0x04, 0x99, 0x52, 0x98, 0x54, 0x71, 0x27, 0x57, 0xca, 0x90, 0x2c, 0x65,
		0xc8, 0x96, 0x1a, 0xa4, 0x8b, 0x17, 0xf9, 0x62, 0x46, 0xc2, 0x12, 0x88, 0xf0, 0x97, 0x87, 0x8c,
		0x77, 0xba, 0x78, 0x32, 0x9c, 0x79, 0x96, 0x53, 0xfa, 0xca, 0xd0, 0xf6, 0x13, 0x27, 0x0c, 0x85,
		0x2f, 0xd9, 0x6a, 0x30, 0x14, 0x3e, 0xff, 0xb9, 0xa5, 0xef, 0x5d, 0xfc, 0xf3, 0x67, 0x49, 0xdf,
		0xbb, 0x98, 0xbc, 0x2d, 0xc5, 0x5f, 0xfe, 0x2e, 0xdf, 0xff, 0x53, 0xfe, 0x73, 0x4b, 0xaf, 0x4c,
		0x3f, 0x2d, 0xef, 0xfc, 0xb9, 0xa5, 0xef, 0x5c, 0x7c, 0xf9, 0x7c, 0x7e, 0xbe, 0xf9, 0xab, 0x3f,
		0xf3, 0xe5, 0xef, 0xed, 0x7b, 0x7e, 0x6e, 0xf7, 0x82, 0x23, 0x1c, 0x8f, 0xdb, 0xd6, 0x0f, 0xf6,
		0x98, 0xfc, 0xdf, 0xe7, 0xb4, 0x50, 0xf9, 0xe5, 0x5f, 0x05, 0x8c, 0x8d, 0x83, 0x0e, 0xcc, 0x61,
		0x0f, 0x22, 0x65, 0x19, 0x5f, 0x01, 0x44, 0xca, 0x68, 0x5f, 0x02, 0x44, 0xca, 0x52, 0xba, 0xe3,
		0x10, 0x29, 0xa3, 0xf0, 0x52, 0x43, 0xa4, 0x6c, 0x67, 0x7b, 0x6b, 0xa7, 0xa6, 0x59, 0x6d, 0xdd,
		0x6a, 0x4f, 0x24, 0x90, 0x02, 0x77, 0x28, 0x03, 0xad, 0x3f, 0xf4, 0xb5, 0x67, 0x94, 0x8e, 0x36,
		0x1f, 0xa6, 0x5e, 0xaa, 0xb1, 0xbe, 0x91, 0x36, 0x91, 0x37, 0x82, 0x0a, 0x19, 0xad, 0xbc, 0x19,
		0x2a, 0x64, 0xf4, 0x2f, 0xe8, 0x89, 0x0a, 0xd9, 0xea, 0x17, 0x22, 0x64, 0xc6, 0x60, 0xb5, 0x4a,
		0xf9, 0x22, 0x7a, 0x22, 0xf2, 0xc8, 0x7a, 0x21, 0x33, 0x46, 0x75, 0xfa, 0xee, 0xf9, 0x39, 0x1a,
		0x08, 0x8d, 0x51, 0x99, 0xc6, 0xb3, 0x46, 0x37, 0x15, 0x6b, 0xf6, 0x78, 0x8c, 0xc9, 0xd3, 0x81,
		0xd4, 0x58, 0x7e, 0x2c, 0x84, 0xd4, 0xd8, 0xea, 0x6d, 0x86, 0xd4, 0xd8, 0x7a, 0x2b, 0x12, 0xef,
		0x51, 0x4c, 0xb2, 0x4e, 0xce, 0x2a, 0xb6, 0xd5, 0xec, 0x98, 0xad, 0x43, 0xe3, 0xc0, 0xb4, 0x8d,
		0x7a, 0xbd, 0x65, 0xb6, 0xdb, 0x10, 0x1b, 0x4b, 0xb7, 0xd0, 0x00, 0xb1, 0xb1, 0x8c, 0x6b, 0x08,
		0xab, 0x5c, 0x3a, 0x90, 0x1b, 0x5b, 0xc3, 0xc3, 0x52, 0x53, 0x6e, 0xcc, 0x3a, 0xb9, 0xa9, 0x68,
		0x49, 0x16, 0xa0, 0x4d, 0xb3, 0x80, 0xa9, 0x58, 0x52, 0x77, 0x28, 0x43, 0xc7, 0x95, 0xc2, 0x3f,
		0x97, 0x33, 0xdd, 0xa4, 0x44, 0x21, 0xdf, 0x0d, 0x26, 0xca, 0x49, 0x55, 0xc8, 0x8f, 0x65, 0xe2,
		0xb0, 0x21, 0x3f, 0x46, 0xcb, 0x7f, 0xaf, 0x63, 0x65, 0xa1, 0xc0, 0x97, 0xe7, 0x02, 0x1f, 0xe4,
		0xc8, 0x94, 0xce, 0x9f, 0x21, 0x47, 0xc6, 0xa2, 0x20, 0x0a, 0x41, 0x32, 0x5a, 0x25, 0x50, 0x48,
		0x92, 0x29, 0xe7, 0x0e, 0x27, 0x83, 0x0e, 0x0f, 0xcb, 0x98, 0xa5, 0x22, 0xd9, 0x82, 0xf9, 0x10,
		0x24, 0x5b, 0x85, 0x99, 0x10, 0x24, 0x5b, 0x23, 0x70, 0x21, 0x48, 0x96, 0x46, 0xa6, 0x0e, 0x41,
		0xb2, 0xd4, 0x93, 0x71, 0x08, 0x92, 0xe5, 0x22, 0x85, 0x82, 0x20, 0xd9, 0x7a, 0xe3, 0x03, 0x04,
		0xc9, 0x40, 0x6c, 0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87, 0x2b, 0xe1, 0x61, 0x4f, 0x7c, 0xd8, 0x13,
		0x20, 0xde, 0x44, 0x88, 0x07, 0x21, 0x62, 0x42, 0x8c, 0xd8, 0x11, 0xa4, 0xc4, 0x60, 0x08, 0x92,
		0x65, 0x4a, 0x9e, 0x20, 0x48, 0x06, 0x32, 0xa5, 0x30, 0xa9, 0xe2, 0x4e, 0xae, 0x94, 0x21, 0x59,
		0xca, 0x90, 0x2d, 0x35, 0x48, 0x17, 0x2f, 0xf2, 0xc5, 0x8c, 0x84, 0x25, 0x10, 0x81, 0x20, 0x19,
		0x11, 0x96, 0x03, 0x41, 0xb2, 0x2c, 0x2e, 0x00, 0x82, 0x64, 0xcb, 0x5e, 0x10, 0x24, 0xcb, 0xea,
		0x2a, 0x20, 0x48, 0xf6, 0x22, 0x2e, 0x41, 0x07, 0xd6, 0x88, 0x3d, 0x08, 0x92, 0x65, 0x7c, 0x05,
		0x10, 0x24, 0xa3, 0x7d, 0x09, 0x10, 0x24, 0x4b, 0xe9, 0x8e, 0x43, 0x90, 0x8c, 0xc2, 0x2b, 0xe7,
		0x82, 0x64, 0x5f, 0xe7, 0x75, 0x90, 0xb4, 0x12, 0x24, 0xc9, 0x68, 0x65, 0xce, 0x90, 0x24, 0xa3,
		0x7f, 0x41, 0xab, 0x92, 0x24, 0x7b, 0x61, 0x29, 0x42, 0x94, 0x0c, 0x56, 0xab, 0x94, 0x33, 0xa2,
		0x2f, 0x22, 0x8f, 0xcc, 0x17, 0xa2, 0x64, 0xa4, 0x67, 0xf0, 0x9e, 0x8e, 0xd2, 0x40, 0x93, 0x8c,
		0xd2, 0x40, 0x5e, 0xf2, 0x5f, 0x41, 0x92, 0x2c, 0x6f, 0x16, 0x42, 0x92, 0x6c, 0xf5, 0x36, 0x43,
		0x92, 0x6c, 0xbd, 0x35, 0x89, 0x77, 0xeb, 0x2a, 0x35, 0x4d, 0xeb, 0xdb, 0xf7, 0xfd, 0xe3, 0x16,
		0x14, 0xc9, 0xb2, 0xa9, 0x33, 0x40, 0x91, 0x2c, 0xe3, 0x12, 0xc2, 0x0a, 0x57, 0x0e, 0x04, 0xc9,
		0xd6, 0xf0, 0xac, 0x14, 0x16, 0x24, 0x9b, 0x65, 0x00, 0x89, 0x6a, 0x52, 0xa2, 0x97, 0xa4, 0x45,
		0x6e, 0xe1, 0x5c, 0x3e, 0xa7, 0x97, 0xf4, 0x75, 0x13, 0x52, 0x64, 0x99, 0x78, 0x6a, 0x48, 0x91,
		0xd1, 0x72, 0xdc, 0xab, 0x5d, 0x53, 0x28, 0xe8, 0xe5, 0xb9, 0xa0, 0x07, 0x11, 0x32, 0xa5, 0x33,
		0x66, 0x88, 0x90, 0x71, 0x28, 0x80, 0x42, 0x83, 0x8c, 0x54, 0xc9, 0x13, 0x12, 0x64, 0xca, 0x39,
		0xc3, 0x82, 0x3b, 0xba, 0xa9, 0x3e, 0x23, 0xfe, 0xc7, 0x49, 0x83, 0xac, 0xca, 0x4e, 0xbc, 0x10,
		0x22, 0x64, 0x2b, 0x36, 0x14, 0x22, 0x64, 0xc8, 0xd7, 0x9f, 0xcf, 0xd1, 0x21, 0x42, 0x96, 0x7a,
		0x1a, 0x0e, 0x11, 0xb2, 0x5c, 0xa4, 0x50, 0x10, 0x21, 0x5b, 0x6f, 0x7c, 0x80, 0x08, 0x19, 0x88,
		0x0d, 0x47, 0x82, 0xc3, 0x98, 0xe8, 0x70, 0x25, 0x3c, 0xec, 0x89, 0x0f, 0x7b, 0x02, 0xc4, 0x9b,
		0x08, 0xf1, 0x20, 0x44, 0x4c, 0x88, 0x11, 0x3b, 0x82, 0x94, 0x18, 0x0c, 0x11, 0xb2, 0x4c, 0xc9,
		0x13, 0x44, 0xc8, 0x40, 0xa6, 0x14, 0x26, 0x55, 0xdc, 0xc9, 0x95, 0x32, 0x24, 0x4b, 0x19, 0xb2,
		0xa5, 0x06, 0xe9, 0xe2, 0x45, 0xbe, 0x98, 0x91, 0xb0, 0x04, 0x22, 0x4a, 0x88, 0x90, 0x55, 0x21,
		0x42, 0x96, 0x11, 0x63, 0x60, 0x2f, 0x42, 0x16, 0x6b, 0x37, 0x39, 0x7a, 0xdf, 0xd0, 0x0f, 0x2f,
		0xfe, 0x2e, 0x6d, 0x54, 0xee, 0x6b, 0x5f, 0xfe, 0xde, 0xbd, 0x7f, 0xfa, 0xe1, 0x3f, 0xcf, 0x7d,
		0x5b, 0x69, 0x63, 0xf7, 0xbe, 0xb6, 0xe4, 0x5f, 0xaa, 0xf7, 0xb5, 0x37, 0xfe, 0x1f, 0x3b, 0xf7,
		0x9f, 0x17, 0xbe, 0x35, 0xfa, 0xbc, 0xbc, 0xec, 0x07, 0x2a, 0x4b, 0x7e, 0x60, 0x7b, 0xd9, 0x0f,
		0x6c, 0x2f, 0xf9, 0x81, 0xa5, 0x26, 0x95, 0x97, 0xfc, 0xc0, 0xce, 0xfd, 0x3f, 0x0b, 0xdf, 0xff,
		0xf9, 0xf9, 0x6f, 0xad, 0xde, 0x7f, 0xf9, 0x67, 0xd9, 0xbf, 0xed, 0xde, 0xff, 0x53, 0xfb, 0xf2,
		0x05, 0xb2, 0x6c, 0xa9, 0x2c, 0x50, 0x95, 0x64, 0xd9, 0xb0, 0x4c, 0xd3, 0x5f, 0xa6, 0x90, 0xa9,
		0x03, 0x61, 0x7c, 0xb4, 0x16, 0x21, 0x53, 0x97, 0xf1, 0x15, 0x40, 0xa6, 0x8e, 0xf6, 0x25, 0x40,
		0xa6, 0x2e, 0xa5, 0x3b, 0x0e, 0x99, 0x3a, 0x0a, 0x2f, 0x35, 0x64, 0xea, 0xaa, 0xa5, 0xd2, 0x5e,
		0x4d, 0xb3, 0x4e, 0x6e, 0xaa, 0xcf, 0x69, 0x61, 0x69, 0xae, 0x9c, 0xe8, 0x66, 0x6d, 0xce, 0x06,
		0xa2, 0xce, 0x65, 0xa9, 0x3c, 0xaf, 0x8a, 0x05, 0x7d, 0x3a, 0x62, 0x45, 0x15, 0xe8, 0xd3, 0xd1,
		0xbf, 0xa0, 0x27, 0xfa, 0x74, 0x2b, 0x5d, 0x83, 0x10, 0xa6, 0x83, 0xd5, 0x2a, 0x65, 0x89, 0xe8,
		0x95, 0xc9, 0x23, 0xd7, 0x85, 0x30, 0x1d, 0xe1, 0xb9, 0xcc, 0x67, 0xe6, 0xab, 0xa0, 0x4c, 0x47,
		0x68, 0x4c, 0xb3, 0x6a, 0xcd, 0x1e, 0x0f, 0xa4, 0xe9, 0x72, 0x67, 0x21, 0xa4, 0xe9, 0x56, 0x6f,
		0x33, 0xa4, 0xe9, 0xd6, 0x5b, 0x87, 0x78, 0xa7, 0xc0, 0x56, 0xd5, 0xb6, 0x9a, 0x1d, 0xb3, 0x75,
		0x68, 0x1c, 0x98, 0xd0, 0xa6, 0xcb, 0xa6, 0xc6, 0x00, 0x6d, 0xba, 0x8c, 0xcb, 0x07, 0xab, 0x5c,
		0x3a, 0x10, 0xa7, 0x5b, 0xc3, 0xc3, 0x52, 0x56, 0x9c, 0xae, 0xaa, 0x25, 0x59, 0x40, 0xa2, 0xa4,
		0x15, 0xb9, 0x83, 0xe8, 0xdf, 0x1f, 0x8e, 0x50, 0x88, 0x61, 0xe9, 0x06, 0x5a, 0xa9, 0x0c, 0x51,
		0xba, 0x6c, 0x5c, 0x34, 0x44, 0xe9, 0x68, 0x79, 0xec, 0xd5, 0xac, 0x25, 0x14, 0xf1, 0xf2, 0x5c,
		0xc4, 0x83, 0x18, 0x9d, 0xd2, 0x39, 0x32, 0xc4, 0xe8, 0x58, 0x14, 0x3d, 0xa1, 0x46, 0x47, 0xab,
		0xcc, 0x09, 0x39, 0x3a, 0xe5, 0xdc, 0xe1, 0x64, 0xc8, 0x65, 0x41, 0x06, 0x92, 0x97, 0x1a, 0x1d,
		0x33, 0x15, 0x4b, 0x88, 0xd1, 0xad, 0xd8, 0x50, 0x88, 0xd1, 0x21, 0x4f, 0x7f, 0x3e, 0x37, 0x87,
		0x18, 0x5d, 0xea, 0xe9, 0x37, 0xc4, 0xe8, 0x72, 0x91, 0x42, 0x41, 0x8c, 0x6e, 0xbd, 0xf1, 0x01,
		0x62, 0x74, 0x20, 0x36, 0x1c, 0x09, 0x0e, 0x63, 0xa2, 0xc3, 0x95, 0xf0, 0xb0, 0x27, 0x3e, 0xec,
		0x09, 0x10, 0x6f, 0x22, 0xc4, 0x83, 0x10, 0x31, 0x21, 0x46, 0xec, 0x08, 0x52, 0x62, 0x30, 0xc4,
		0xe8, 0x32, 0x25, 0x4f, 0x10, 0xa3, 0x03, 0x99, 0x52, 0x98, 0x54, 0x71, 0x27, 0x57, 0xca, 0x90,
		0x2c, 0x65, 0xc8, 0x96, 0x1a, 0xa4, 0x8b, 0x17, 0xf9, 0x62, 0x46, 0xc2, 0x12, 0x88, 0x40, 0x8c,
		0x8e, 0x08, 0xcb, 0x81, 0x18, 0x5d, 0x16, 0x17, 0x00, 0x95, 0x2b, 0x88, 0xd1, 0xbd, 0xf5, 0x05,
		0x31, 0xba, 0xac, 0xae, 0x02, 0x62, 0x74, 0x10, 0xa3, 0xfb, 0x85, 0x75, 0x0a, 0xc2, 0xb8, 0xc6,
		0xb5, 0x08, 0x31, 0xba, 0x8c, 0xaf, 0x00, 0x62, 0x74, 0xb4, 0x2f, 0x01, 0x62, 0x74, 0x29, 0xdd,
		0x71, 0x88, 0xd1, 0x51, 0x78, 0xe5, 0x56, 0x8c, 0x6e, 0xbb, 0xa6, 0x59, 0x6d, 0xab, 0x0d, 0x45,
		0x3a, 0xba, 0x95, 0x15, 0x28, 0xd2, 0xd1, 0xbf, 0xa0, 0x8f, 0x2b, 0xd2, 0xbd, 0xb2, 0x10, 0x21,
		0x4b, 0x07, 0xab, 0x55, 0xca, 0x17, 0xd1, 0x35, 0x93, 0x47, 0xd6, 0x0b, 0x59, 0x3a, 0xd2, 0x13,
		0x9a, 0x4f, 0x07, 0xad, 0xa0, 0x4a, 0x47, 0x69, 0x5c, 0x33, 0xf9, 0xaf, 0x20, 0x4a, 0x97, 0x37,
		0x0b, 0x21, 0x4a, 0xb7, 0x7a, 0x9b, 0x21, 0x4a, 0xb7, 0xde, 0x7a, 0xc4, 0xbb, 0x95, 0xb5, 0x9a,
		0xa6, 0xf5, 0xed, 0xfb, 0xfe, 0x71, 0x0b, 0x9a, 0x74, 0xd9, 0x54, 0x19, 0xa0, 0x49, 0x97, 0x71,
		0x01, 0x61, 0x85, 0x2b, 0x07, 0x92, 0x74, 0x6b, 0x78, 0x56, 0x0a, 0x4b, 0xd2, 0xcd, 0x32, 0x80,
		0xb7, 0xa8, 0x68, 0x6d, 0x43, 0x91, 0x2e, 0x1b, 0x07, 0x0d, 0x45, 0x3a, 0x5a, 0xfe, 0x7a, 0x25,
		0x4b, 0x09, 0xe5, 0xbb, 0x3c, 0x97, 0xef, 0x20, 0x48, 0xa7, 0x74, 0x7e, 0x0c, 0x41, 0x3a, 0x0e,
		0xe5, 0x4e, 0xe8, 0xd1, 0x91, 0x2a, 0x70, 0x42, 0x8e, 0x4e, 0x39, 0x67, 0x58, 0xf0, 0x1c, 0xa9,
		0x3b, 0xbd, 0xff, 0xe7, 0x74, 0x85, 0xec, 0xde, 0xe9, 0x81, 0xdb, 0x63, 0xa4, 0x45, 0xf7, 0x8c,
		0xed, 0x10, 0xa2, 0x5b, 0x85, 0x99, 0x10, 0xa2, 0x5b, 0x23, 0x6a, 0x21, 0x44, 0x97, 0x46, 0x4a,
		0x0e, 0x21, 0xba, 0xd4, 0xb3, 0x6e, 0x08, 0xd1, 0xe5, 0x22, 0x75, 0x62, 0x23, 0x44, 0xb7, 0x40,
		0x0f, 0xf8, 0x89, 0xd2, 0x2d, 0x5e, 0x02, 0x04, 0xea, 0xf2, 0x4c, 0x78, 0x38, 0x12, 0x1f, 0xc6,
		0x04, 0x88, 0x2b, 0x11, 0x62, 0x4f, 0x88, 0xd8, 0x13, 0x23, 0xde, 0x04, 0x89, 0x07, 0x51, 0x62,
		0x42, 0x98, 0xd8, 0x11, 0xa7, 0xc4, 0x60, 0x5e, 0x4a, 0xbe, 0x0b, 0x71, 0x86, 0x5b, 0xaf, 0x2c,
		0x43, 0xe2, 0xc4, 0x96, 0x40, 0x71, 0x26, 0x52, 0x0a, 0x10, 0x2a, 0xee, 0xc4, 0x4a, 0x19, 0x82,
		0xa5, 0x0c, 0xd1, 0x52, 0x83, 0x70, 0xf1, 0x22, 0x5e, 0xcc, 0x08, 0x18, 0x5b, 0x22, 0x96, 0x18,
		0xde, 0xf7, 0x9c, 0x41, 0xc0, 0xd7, 0x59, 0xce, 0xe2, 0xd5, 0xe4, 0x32, 0x98, 0xfa, 0x17, 0x9e,
		0xea, 0xc1, 0xec, 0x89, 0x9a, 0x0a, 0x84, 0x4d, 0x21, 0xe2, 0xa6, 0x0a, 0x81, 0x53, 0x8e, 0xc8,
		0x29, 0x47, 0xe8, 0xd4, 0x22, 0x76, 0x3c, 0x09, 0x1e, 0x53, 0xa2, 0x97, 0x40, 0x87, 0xad, 0x1a,
		0xf1, 0x42, 0xc4, 0x10, 0x72, 0x7c, 0x2d, 0x7c, 0x87, 0xe9, 0xa4, 0xc1, 0x53, 0x12, 0x55, 0xaa,
		0x30, 0xbe, 0x06, 0x53, 0x8e, 0xaf, 0xf9, 0xc7, 0xbd, 0xce, 0xb0, 0x1d, 0xfa, 0xae, 0x1c, 0xb0,
		0xbf, 0x92, 0xf8, 0x6a, 0xb6, 0xa2, 0x35, 0x32, 0x9d, 0xb5, 0xb3, 0x0f, 0x8d, 0x23, 0xab, 0xf1,
		0x07, 0xf3, 0x38, 0x1e, 0x5f, 0x56, 0x29, 0xba, 0xac, 0x7d, 0xe3, 0xe0, 0xf7, 0xd3, 0x13, 0x15,
		0x2e, 0xa7, 0x1c, 0x5d, 0xce, 0x99, 0xd1, 0x38, 0x35, 0x55, 0xb8, 0x9a, 0xed, 0xe8, 0x6a, 0x1a,
		0xc7, 0x07, 0x46, 0x43, 0x85, 0xab, 0xa9, 0x44, 0x57, 0xd3, 0x36, 0x3b, 0x05, 0xd6, 0x97, 0x72,
		0xbf, 0xc1, 0xdd, 0x2b, 0x5b, 0x31, 0xd1, 0x55, 0xc0, 0x25, 0x3f, 0xf1, 0xc6, 0x6c, 0x0b, 0x0f,
		0x8f, 0x2e, 0x6a, 0xea, 0x8b, 0xd9, 0xed, 0xd3, 0x3d, 0x7b, 0x31, 0x13, 0xdf, 0x55, 0xd3, 0xb6,
		0x15, 0xb8, 0x96, 0xc8, 0x73, 0xd5, 0xb4, 0x8a, 0x02, 0x57, 0x32, 0x89, 0x8f, 0x35, 0xad, 0xcc,
		0xdb, 0x11, 0x23, 0x43, 0x47, 0xe0, 0x7b, 0x8b, 0x0f, 0xe2, 0x2c, 0xff, 0x9e, 0x5c, 0x05, 0x7b,
		0x19, 0xf8, 0x87, 0x2b, 0x51, 0x50, 0x0e, 0x3e, 0xb9, 0x38, 0xfe, 0xb2, 0xf0, 0x8b, 0x97, 0xc2,
		0x56, 0x1e, 0x9e, 0xaf, 0xbf, 0x65, 0xe8, 0x6b, 0x0b, 0xc9, 0x84, 0x35, 0xa3, 0x69, 0x88, 0x85,
		0x8b, 0x98, 0x15, 0x43, 0xe7, 0x2f, 0x06, 0xbb, 0xc9, 0x59, 0x98, 0x8f, 0xdd, 0x64, 0x42, 0xcb,
		0x01, 0xbb, 0xc9, 0x74, 0x96, 0x35, 0x76, 0x93, 0x89, 0x5f, 0x10, 0x76, 0x93, 0xc1, 0x9f, 0xde,
		0x09, 0x1d, 0x75, 0x76, 0x93, 0x83, 0xbb, 0x20, 0x14, 0xd7, 0x7c, 0xe9, 0x93, 0xc6, 0xfc, 0xa0,
		0xdb, 0x07, 0x1a, 0xc2, 0xfc, 0x28, 0xcd, 0xe4, 0x42, 0xfe, 0xdc, 0xd2, 0xf7, 0x0c, 0xfd, 0xd0,
		0xd1, 0xfb, 0x17, 0x7f, 0x57, 0xee, 0xcf, 0xcf, 0x37, 0x5f, 0xf9, 0x80, 0xaf, 0xcf, 0xbd, 0xe0,
		0x0c, 0x37, 0x15, 0x8e, 0x6f, 0x4d, 0xae, 0xe6, 0x7f, 0xbf, 0x0a, 0xba, 0x7f, 0x31, 0x46, 0x1d,
		0x6a, 0x3b, 0xe0, 0x26, 0x4b, 0xd6, 0xc1, 0x8d, 0xe3, 0x8d, 0x05, 0xff, 0xaa, 0xce, 0xe4, 0x32,
		0x50, 0xcf, 0xc9, 0xc2, 0x7c, 0xd4, 0x73, 0x08, 0x2d, 0x04, 0xd4, 0x73, 0xe8, 0x2c, 0x6b, 0xd4,
		0x73, 0x88, 0x5f, 0x10, 0xea, 0x39, 0xe0, 0x4c, 0xef, 0x84, 0x8e, 0x3a, 0xf5, 0x9c, 0xb1, 0x2b,
		0xc3, 0xed, 0xb2, 0x02, 0xc5, 0x9c, 0x5d, 0xc6, 0x97, 0xd0, 0x72, 0xe4, 0x40, 0xb0, 0xcf, 0xaa,
		0x15, 0xe8, 0x3c, 0x3d, 0x72, 0xa5, 0x12, 0x2d, 0xb4, 0xf1, 0xc5, 0x9c, 0x4d, 0x93, 0x3b, 0x05,
		0xba, 0x67, 0xe3, 0xeb, 0x39, 0xf4, 0x9d, 0x6e, 0xe8, 0x0e, 0x65, 0xdd, 0x1d, 0xb8, 0xdc, 0xbb,
		0xa5, 0x1e, 0xfb, 0x62, 0x31, 0x70, 0x42, 0xf7, 0x46, 0xb0, 0x6e, 0xc6, 0x51, 0x20, 0xac, 0x3f,
		0x76, 0x05, 0xce, 0xad, 0x7a, 0xae, 0xa0, 0x52, 0xde, 0xab, 0xec, 0x55, 0x77, 0xcb, 0x7b, 0x3b,
		0xf0, 0x09, 0xf0, 0x09, 0x48, 0x50, 0x72, 0x60, 0x3d, 0xca, 0xff, 0x88, 0x79, 0xcb, 0x9c, 0xcc,
		0x4f, 0xe1, 0x0e, 0xae, 0x42, 0xfe, 0xf5, 0xff, 0xe9, 0x75, 0x60, 0x03, 0x20, 0x0b, 0xf3, 0xb1,
		0x01, 0x40, 0x68, 0x25, 0x60, 0x03, 0x80, 0xce, 0xb2, 0xc6, 0x06, 0x00, 0xf1, 0x0b, 0xc2, 0x06,
		0x00, 0x58, 0xd3, 0x3b, 0xa1, 0xa3, 0xd6, 0x06, 0xc0, 0x57, 0x05, 0xea, 0xff, 0x3b, 0xa8, 0xff,
		0x67, 0xfc, 0x42, 0xfd, 0x9f, 0xd6, 0xc5, 0xa0, 0xfe, 0xcf, 0xc5, 0x15, 0xa3, 0xfe, 0x4f, 0xd0,
		0x15, 0xa8, 0x58, 0xff, 0x2f, 0xef, 0xa0, 0xf0, 0x0f, 0x67, 0x80, 0xc4, 0x24, 0x0f, 0xd6, 0xa3,
		0xf0, 0x0f, 0x8b, 0xd9, 0x87, 0xe6, 0x82, 0x21, 0xe5, 0x30, 0x9c, 0x88, 0xd7, 0xb2, 0x3c, 0x7f,
		0x21, 0xe8, 0x5e, 0x89, 0x6b, 0x67, 0xe4, 0x84, 0x57, 0x51, 0xb2, 0x5d, 0x1c, 0x26, 0x87, 0xfd,
		0xeb, 0x72, 0x72, 0x98, 0xbf, 0xee, 0x4e, 0x4f, 0xd3, 0x2f, 0x3e, 0xfd, 0x20, 0x58, 0xf8, 0xa4,
		0x38, 0x9a, 0x1d, 0xf8, 0x9f, 0xbc, 0x2b, 0xba, 0x81, 0x1b, 0x14, 0xbd, 0xf8, 0xc0, 0xff, 0xc9,
		0x97, 0xa2, 0xe7, 0xca, 0xbf, 0xf4, 0xf8, 0x24, 0x2b, 0xbd, 0x37, 0x3d, 0xf2, 0xbf, 0xe8, 0x05,
		0xa3, 0x62, 0xe8, 0xdd, 0x04, 0xd1, 0x1f, 0xf1, 0x8f, 0xe8, 0x89, 0x12, 0x86, 0x33, 0x3b, 0xf4,
		0xbf, 0x38, 0xfb, 0x28, 0x48, 0xde, 0x15, 0x1f, 0x6c, 0x49, 0x6c, 0x08, 0x26, 0x87, 0xfe, 0x4f,
		0xbf, 0x16, 0x17, 0x4f, 0x54, 0x5f, 0xfc, 0xa8, 0xc8, 0xf1, 0x5c, 0xad, 0xc9, 0xe3, 0x0b, 0xfd,
		0x71, 0x37, 0x94, 0xd3, 0x5a, 0xc9, 0x71, 0xf2, 0xf4, 0x9a, 0x93, 0x27, 0x63, 0x4d, 0x6f, 0x8a,
		0xfd, 0xe4, 0xef, 0xc1, 0xd3, 0x0f, 0xec, 0x93, 0xd9, 0x93, 0x4b, 0xde, 0xd9, 0x56, 0xe0, 0x06,
		0x76, 0x23, 0x7e, 0x72, 0x93, 0x2f, 0x76, 0xc3, 0x95, 0x7f, 0xb5, 0xa3, 0x5b, 0x55, 0x9f, 0x3e,
		0x37, 0xbb, 0x11, 0x8c, 0xec, 0x8e, 0x77, 0x13, 0x44, 0x7f, 0xc4, 0x3f, 0xd0, 0x9c, 0x3e, 0x19,
		0x63, 0xf6, 0xd4, 0xec, 0xd9, 0x27, 0x41, 0xf2, 0xce, 0x7e, 0x30, 0x23, 0xf9, 0xfd, 0xed, 0xc9,
		0x53, 0x9b, 0x7e, 0xb5, 0x1b, 0x8e, 0x34, 0x66, 0x4f, 0xa8, 0xed, 0xf6, 0x82, 0xa7, 0x1f, 0xd8,
		0xb1, 0x19, 0xbc, 0xaa, 0xa1, 0x7c, 0x1c, 0x31, 0x23, 0x27, 0xcc, 0x74, 0x44, 0x8c, 0xf5, 0x68,
		0x18, 0xd3, 0x1d, 0x61, 0x9c, 0xe8, 0x97, 0x25, 0xd0, 0x71, 0xa2, 0x5f, 0x76, 0xcb, 0x15, 0x27,
		0xfa, 0x51, 0xcb, 0x1a, 0x70, 0xa2, 0x1f, 0x38, 0xcd, 0xcb, 0x10, 0x61, 0xbb, 0x83, 0x9b, 0x78,
		0x7c, 0x4f, 0x38, 0x7d, 0x5f, 0xf4, 0x39, 0x7a, 0xfc, 0x99, 0x00, 0x0f, 0xc3, 0xa1, 0xad, 0xc2,
		0xc9, 0x34, 0x97, 0xdf, 0xdc, 0x9c, 0xa4, 0xb5, 0xc5, 0x09, 0xc5, 0x44, 0xaa, 0x94, 0x63, 0x4b,
		0xb9, 0x9c, 0x27, 0xff, 0xbb, 0xb8, 0xe3, 0x96, 0x14, 0xf1, 0xd4, 0xf9, 0xe6, 0xab, 0xeb, 0xad,
		0x94, 0x8e, 0x37, 0x63, 0xdd, 0x6e, 0xc6, 0x3a, 0xdd, 0x5c, 0xbc, 0x21, 0xd3, 0xbd, 0x05, 0xec,
		0x29, 0x44, 0x1f, 0x31, 0xa2, 0xbd, 0xb9, 0xdd, 0x45, 0xe0, 0x41, 0x8a, 0xe9, 0x53, 0x4c, 0xda,
		0x16, 0x12, 0x77, 0xf7, 0x05, 0x71, 0x1b, 0xfa, 0x8e, 0x3e, 0x8e, 0x30, 0x7c, 0xe9, 0xf1, 0xc8,
		0xf9, 0x0b, 0xbe, 0xe8, 0x0b, 0x5f, 0xc8, 0x2e, 0x9f, 0xae, 0x60, 0x46, 0xf1, 0x73, 0x56, 0x40,
		0xe9, 0xf9, 0x4e, 0x3f, 0xd4, 0x5d, 0x11, 0xf6, 0xe3, 0x0a, 0xa1, 0x1e, 0x88, 0x41, 0x44, 0x7b,
		0x75, 0x7f, 0x38, 0x0e, 0x5d, 0x39, 0xd0, 0xc5, 0x6d, 0x28, 0x64, 0xe0, 0x0e, 0x65, 0xb0, 0xa9,
		0x05, 0xe3, 0x4b, 0xbd, 0xd3, 0x38, 0xd3, 0xb6, 0xcb, 0xb5, 0x73, 0x19, 0xbd, 0x29, 0x97, 0x37,
		0xb4, 0xf2, 0xe4, 0x8f, 0xed, 0x0d, 0xad, 0x54, 0x29, 0x6d, 0x72, 0x8a, 0x48, 0x4c, 0x4b, 0xee,
		0xf3, 0xa5, 0xf6, 0x87, 0x25, 0xc2, 0xac, 0xf2, 0xc8, 0xbd, 0xca, 0xfe, 0xa8, 0xba, 0xbe, 0xea,
		0x35, 0x84, 0xc2, 0x54, 0xce, 0xac, 0x64, 0x20, 0x8a, 0x5d, 0xf8, 0x79, 0x25, 0x24, 0x02, 0xf1,
		0xfa, 0x02, 0x71, 0x52, 0x4a, 0x0f, 0xef, 0x46, 0x42, 0xfb, 0xb7, 0xf6, 0x69, 0xba, 0x67, 0xa7,
		0x7b, 0x41, 0xef, 0x52, 0x8f, 0x3e, 0x0c, 0x6a, 0x56, 0xdb, 0x6e, 0x99, 0xc6, 0xc1, 0x77, 0x63,
		0xdf, 0x6a, 0x58, 0x9d, 0x3f, 0x6c, 0xa3, 0xfe, 0x1f, 0xbb, 0x61, 0x34, 0xed, 0xb6, 0x55, 0xff,
		0x84, 0xc8, 0x9b, 0x6a, 0xe4, 0x8d, 0x97, 0x03, 0x82, 0x6e, 0x76, 0x41, 0xf7, 0xc3, 0xeb, 0x05,
		0x9d, 0x72, 0x6b, 0x78, 0x42, 0x75, 0x11, 0x74, 0x7d, 0x77, 0xc4, 0xb2, 0x57, 0x39, 0x71, 0xc5,
		0xc7, 0xd2, 0xbb, 0xd3, 0x5c, 0xd9, 0xf5, 0xc6, 0x3d, 0xa1, 0x85, 0x57, 0x42, 0x6b, 0x18, 0x4d,
		0x2d, 0x29, 0xbc, 0x69, 0x6d, 0xab, 0xae, 0x75, 0x87, 0x32, 0x74, 0x5c, 0x29, 0x7c, 0x2d, 0x72,
		0x04, 0xe7, 0x32, 0xfa, 0xae, 0x19, 0xb5, 0x73, 0x03, 0x2d, 0xc6, 0xe4, 0x76, 0x79, 0x93, 0x9b,
		0x87, 0x60, 0xdc, 0x85, 0x34, 0xef, 0x9c, 0x7b, 0x73, 0x28, 0x64, 0xb8, 0xbb, 0xae, 0x42, 0x0b,
		0xd2, 0x23, 0x5f, 0xbd, 0xc2, 0x05, 0x85, 0x16, 0x03, 0x64, 0x72, 0x94, 0x33, 0x39, 0x54, 0xa9,
		0x3f, 0xe2, 0x33, 0x78, 0x6d, 0x46, 0xe6, 0x71, 0x13, 0x92, 0x41, 0x3c, 0xcd, 0xcd, 0x56, 0x23,
		0xed, 0x60, 0x48, 0xd7, 0x59, 0x13, 0x76, 0x83, 0x85, 0x78, 0x7d, 0x27, 0xab, 0x36, 0x20, 0xef,
		0x07, 0x1f, 0x3a, 0x71, 0x9f, 0x18, 0x4e, 0x3c, 0xd4, 0xcc, 0xba, 0x6f, 0x89, 0x9b, 0xc9, 0x65,
		0x9c, 0x88, 0xd3, 0xf8, 0x10, 0xc3, 0x71, 0x21, 0x6e, 0x89, 0x39, 0xdb, 0x71, 0x20, 0xb6, 0xb9,
		0x37, 0xcf, 0x71, 0x1f, 0x34, 0xf5, 0x7c, 0xe4, 0x91, 0xd7, 0x5d, 0x9f, 0x49, 0x9e, 0x14, 0x0f,
		0xd2, 0xb3, 0x71, 0x5e, 0xc9, 0x39, 0xdf, 0x8c, 0x14, 0x1b, 0x98, 0x10, 0x1a, 0x76, 0xc4, 0x86,
		0x23, 0xc1, 0x61, 0x4c, 0x74, 0xb8, 0x12, 0x1e, 0xf6, 0xc4, 0x87, 0x3d, 0x01, 0xe2, 0x4d, 0x84,
		0x78, 0x10, 0x22, 0x26, 0xc4, 0x88, 0x1d, 0x41, 0x4a, 0x0c, 0xf6, 0x86, 0x5d, 0xc7, 0xd3, 0x47,
		0xfe, 0x30, 0x14, 0x5d, 0xde, 0x7b, 0xe8, 0x0b, 0x57, 0x02, 0xf9, 0x19, 0xd0, 0x2a, 0xb5, 0xe8,
		0x95, 0x02, 0x34, 0x8b, 0x3b, 0xdd, 0x52, 0x86, 0x76, 0x29, 0x43, 0xbf, 0xd4, 0xa0, 0x61, 0xbc,
		0xe8, 0x18, 0x33, 0x5a, 0x96, 0x40, 0x84, 0xbf, 0xfc, 0x8c, 0x90, 0xe3, 0x6b, 0xe1, 0x3b, 0x5c,
		0x1b, 0xcd, 0x66, 0x35, 0xa3, 0x0a, 0x43, 0xdb, 0x4d, 0x39, 0xbe, 0xe6, 0x1b, 0xaf, 0x3a, 0xc3,
		0x76, 0xe8, 0xbb, 0x72, 0xc0, 0xfb, 0xfc, 0x9c, 0xad, 0x68, 0x0d, 0x34, 0x8e, 0x0f, 0x8c, 0x86,
		0x7d, 0xd2, 0x3a, 0xee, 0x98, 0x07, 0x1d, 0xeb, 0xb8, 0xc9, 0xf9, 0x1c, 0x9d, 0x52, 0x7c, 0x41,
		0x56, 0xf3, 0x77, 0xdb, 0xfc, 0x71, 0xd0, 0x38, 0xad, 0x9b, 0xf5, 0x02, 0x8e, 0x94, 0x4a, 0x75,
		0x59, 0x58, 0x32, 0xe4, 0xbd, 0x26, 0x1e, 0xa3, 0x87, 0x4d, 0x41, 0xfe, 0xf9, 0x6b, 0x79, 0xba,
		0xb4, 0x6b, 0xda, 0x16, 0x14, 0xf5, 0x61, 0x31, 0x7b, 0xe6, 0xc9, 0x52, 0x4f, 0x2b, 0xb1, 0x9e,
		0xad, 0xae, 0xd6, 0xc3, 0x15, 0x28, 0xa4, 0xaf, 0x95, 0x5c, 0x14, 0x5f, 0x9d, 0xad, 0xc5, 0x4b,
		0x60, 0xa7, 0xb7, 0xc5, 0xd5, 0x13, 0x31, 0x14, 0x66, 0x59, 0xb8, 0x06, 0x7e, 0x42, 0x2d, 0x4f,
		0x5f, 0x0a, 0x9c, 0x61, 0xda, 0x3a, 0x3c, 0xd8, 0xd9, 0x2a, 0xef, 0xd5, 0xb4, 0xba, 0xe8, 0xbb,
		0xd2, 0x0d, 0xdd, 0xa1, 0xd4, 0x86, 0x7d, 0xcd, 0x91, 0x9a, 0xd5, 0xd6, 0xad, 0xb6, 0xd6, 0x70,
		0xe5, 0x5f, 0x5a, 0xd2, 0x80, 0xae, 0xb5, 0xc7, 0x97, 0x7a, 0x2c, 0x40, 0xb1, 0xa9, 0xcd, 0x54,
		0x28, 0x66, 0xe3, 0x56, 0xa5, 0xbd, 0x4d, 0x9c, 0x9d, 0x4d, 0xa0, 0x38, 0xc3, 0x5f, 0xe6, 0x65,
		0xe1, 0x9a, 0x94, 0x3e, 0x3e, 0x7b, 0xb5, 0x2b, 0x10, 0x87, 0x70, 0xc3, 0xea, 0x17, 0x5f, 0x17,
		0x18, 0x85, 0xcd, 0xb1, 0xa5, 0xd0, 0x97, 0x5d, 0xaf, 0xdd, 0xea, 0x8f, 0x76, 0x3e, 0x9e, 0xd7,
		0x62, 0x77, 0x3c, 0x9d, 0xba, 0x53, 0x9e, 0xae, 0xfc, 0x2b, 0xf9, 0x2f, 0x02, 0x4e, 0x87, 0xd0,
		0x41, 0x44, 0x56, 0x69, 0x9f, 0xce, 0x52, 0x44, 0x16, 0xb2, 0x75, 0xeb, 0x2d, 0x3b, 0xbc, 0x47,
		0x86, 0x2b, 0xde, 0x22, 0x33, 0x3a, 0x9d, 0x96, 0xb5, 0x7f, 0xda, 0x31, 0xdb, 0x90, 0xae, 0x4b,
		0xb7, 0x9a, 0x00, 0xe9, 0xba, 0x8c, 0x0b, 0x05, 0x2b, 0x59, 0x33, 0x90, 0xaf, 0x5b, 0xc3, 0x53,
		0x52, 0x53, 0xbe, 0x2e, 0xa2, 0xfa, 0xda, 0x03, 0xd5, 0x7f, 0xa2, 0xb5, 0x15, 0x7d, 0xcb, 0xb9,
		0x7c, 0xaa, 0xb5, 0xc5, 0xaf, 0x08, 0x0c, 0xf1, 0x3a, 0x78, 0xea, 0x75, 0x78, 0xeb, 0x95, 0x2d,
		0x27, 0xd4, 0xeb, 0xf2, 0x5c, 0xaf, 0x83, 0x74, 0x9d, 0xd2, 0xb9, 0x31, 0xa4, 0xeb, 0x68, 0xd7,
		0x37, 0xa1, 0x5b, 0x47, 0xa5, 0xa2, 0x09, 0xd5, 0x3a, 0xe5, 0x3c, 0xe0, 0x44, 0xfc, 0xad, 0x27,
		0x3c, 0xe7, 0x8e, 0x99, 0x60, 0xdd, 0xc4, 0x66, 0x68, 0xd5, 0xad, 0xc2, 0x4c, 0x68, 0xd5, 0xad,
		0x11, 0xad, 0xd0, 0xaa, 0x4b, 0x23, 0xf7, 0x86, 0x56, 0x5d, 0xea, 0xe9, 0x35, 0xb4, 0xea, 0x72,
		0x91, 0x1f, 0x41, 0xab, 0x6e, 0xbd, 0xf1, 0x01, 0x5a, 0x75, 0x20, 0x36, 0x1c, 0x09, 0x0e, 0x63,
		0xa2, 0xc3, 0x95, 0xf0, 0xb0, 0x27, 0x3e, 0xec, 0x09, 0x10, 0x6f, 0x22, 0xc4, 0x83, 0x10, 0x31,
		0x21, 0x46, 0xec, 0x08, 0x52, 0x62, 0xb0, 0xa3, 0x5f, 0xba, 0x21, 0xdf, 0x5d, 0xf2, 0x89, 0xf9,
		0x50, 0xa5, 0x03, 0x81, 0x52, 0x8b, 0x48, 0x29, 0x40, 0xa8, 0xb8, 0x13, 0x2b, 0x65, 0x08, 0x96,
		0x32, 0x44, 0x4b, 0x0d, 0xc2, 0xc5, 0x8b, 0x78, 0x31, 0x23, 0x60, 0x09, 0x44, 0xf8, 0xab, 0xd2,
		0x5d, 0x0e, 0x87, 0x9e, 0x70, 0x58, 0x2b, 0xd2, 0x95, 0xd0, 0x2c, 0x95, 0xf7, 0xc5, 0x58, 0xe0,
		0xb1, 0x9f, 0xbc, 0x74, 0x15, 0x72, 0xd8, 0x5a, 0x46, 0x82, 0x81, 0x04, 0x03, 0x09, 0x06, 0x12,
		0x0c, 0x24, 0x18, 0x48, 0x30, 0x90, 0x60, 0x20, 0xc1, 0x78, 0xa3, 0xc7, 0x1f, 0xbb, 0x32, 0xdc,
		0x2e, 0x33, 0xce, 0x2f, 0x76, 0x19, 0x9a, 0xde, 0x72, 0xe4, 0x00, 0x0a, 0x6b, 0x19, 0xdc, 0xf8,
		0x23, 0x57, 0xf2, 0x57, 0x13, 0x3b, 0x73, 0xbc, 0xb1, 0xe0, 0xa9, 0x16, 0xfa, 0xe8, 0x3a, 0x0e,
		0x7d, 0x27, 0x3e, 0x4f, 0xa8, 0xee, 0x0e, 0x5c, 0xae, 0xf2, 0xa7, 0x8f, 0x7d, 0xaa, 0x18, 0x38,
		0xa1, 0x7b, 0x23, 0x58, 0xaa, 0x6d, 0x32, 0x0e, 0xc3, 0x8f, 0x97, 0xb8, 0x73, 0xab, 0xce, 0x12,
		0xaf, 0x94, 0xf7, 0x2a, 0x7b, 0xd5, 0xdd, 0xf2, 0xde, 0x0e, 0xd6, 0x3a, 0xd6, 0x3a, 0x12, 0x04,
		0xc6, 0x56, 0x43, 0xe3, 0x2f, 0xcf, 0x96, 0x42, 0xe3, 0x6f, 0xbd, 0x76, 0xe7, 0x63, 0x06, 0x36,
		0xde, 0x87, 0x80, 0xbc, 0x1f, 0xa5, 0x61, 0xd8, 0x7a, 0xf4, 0x48, 0xa0, 0xec, 0x97, 0x1f, 0x0b,
		0xa1, 0xec, 0xb7, 0x7a, 0x9b, 0xf9, 0x9d, 0x3a, 0xc0, 0x70, 0x1a, 0xa3, 0x75, 0x78, 0xb0, 0xfb,
		0xb5, 0xb4, 0x55, 0x9b, 0x4a, 0x98, 0x77, 0x7c, 0xa7, 0xdf, 0x77, 0xbb, 0x9a, 0x29, 0x07, 0xae,
		0x14, 0xc2, 0x77, 0xe5, 0x40, 0xfb, 0xdc, 0x31, 0xbf, 0x68, 0x47, 0x22, 0xf4, 0xdd, 0xee, 0xb9,
		0x34, 0x6f, 0x43, 0x21, 0x03, 0x77, 0x28, 0x83, 0xcd, 0x44, 0xcd, 0x7c, 0x7b, 0xbb, 0x96, 0x28,
		0x9c, 0x97, 0xb7, 0x37, 0xb4, 0x52, 0xa5, 0xb4, 0xa1, 0x95, 0xe3, 0xbf, 0x95, 0xb7, 0x37, 0x31,
		0xe8, 0xb1, 0x7e, 0xbb, 0x15, 0x38, 0x4a, 0x40, 0xad, 0x59, 0x8f, 0x14, 0x96, 0x15, 0x72, 0xb1,
		0x9c, 0x59, 0x79, 0xb1, 0x01, 0x35, 0xde, 0xbc, 0x87, 0xeb, 0x77, 0x2b, 0x8b, 0xd6, 0xcd, 0x86,
		0xf1, 0x07, 0x84, 0x78, 0xd3, 0x8d, 0xc5, 0x10, 0xe2, 0xcd, 0x38, 0x0c, 0x7f, 0x74, 0xb9, 0xa0,
		0xed, 0x77, 0x0d, 0x0f, 0x48, 0x09, 0x0d, 0x5e, 0xeb, 0xa9, 0x5e, 0x68, 0x5c, 0x85, 0x9b, 0x93,
		0x0a, 0x1d, 0x4a, 0xef, 0x2e, 0xd1, 0x0b, 0x9d, 0x71, 0xba, 0x73, 0x19, 0x03, 0x71, 0x26, 0x1a,
		0xba, 0xbd, 0x0d, 0x0d, 0xde, 0x6c, 0x3c, 0x33, 0x34, 0x78, 0x69, 0x39, 0xea, 0x95, 0x2d, 0x27,
		0xec, 0xa7, 0x21, 0x87, 0xa3, 0x9c, 0xc3, 0xa1, 0x8a, 0xfd, 0x11, 0x8f, 0x01, 0x0d, 0x5e, 0xaa,
		0xfb, 0x8f, 0x90, 0xdf, 0x25, 0xb0, 0xe3, 0x08, 0xe5, 0x5d, 0xe5, 0xfc, 0xde, 0x9c, 0x8a, 0xad,
		0x7e, 0xe3, 0xf8, 0x2e, 0x0f, 0xef, 0xf7, 0x8c, 0x06, 0xef, 0x9c, 0xf5, 0x50, 0xe3, 0x5d, 0x85,
		0x99, 0x50, 0xe3, 0x5d, 0x23, 0x6e, 0xa1, 0xc6, 0x9b, 0x46, 0x16, 0x0e, 0x35, 0xde, 0xd4, 0x13,
		0x6d, 0xa8, 0xf1, 0xe6, 0x22, 0x53, 0x82, 0x1a, 0xef, 0x7a, 0xe3, 0x03, 0xd4, 0x78, 0x41, 0x6c,
		0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87, 0x2b, 0xe1, 0x61, 0x4f, 0x7c, 0xd8, 0x13, 0x20, 0xde, 0x44,
		0x88, 0x07, 0x21, 0x62, 0x42, 0x8c, 0xd8, 0x11, 0xa4, 0xc4, 0x60, 0x88, 0x65, 0x65, 0x46, 0x9c,
		0x20, 0x96, 0x05, 0x22, 0xa5, 0x30, 0xa1, 0xe2, 0x4e, 0xac, 0x94, 0x21, 0x58, 0xca, 0x10, 0x2d,
		0x35, 0x08, 0x17, 0x2f, 0xe2, 0xc5, 0x8c, 0x80, 0x25, 0x10, 0x81, 0x58, 0x56, 0xe6, 0xfc, 0x06,
		0x62, 0x59, 0x69, 0xbf, 0x20, 0x96, 0x95, 0xed, 0x45, 0x40, 0x2c, 0x8b, 0xaa, 0x4f, 0x85, 0x58,
		0x16, 0x81, 0x25, 0x0e, 0xb1, 0x2c, 0xac, 0x75, 0xac, 0x75, 0x45, 0x13, 0x04, 0xbe, 0x56, 0x43,
		0x2c, 0x2b, 0xcf, 0x96, 0x42, 0x2c, 0x6b, 0xbd, 0x76, 0xe7, 0xa8, 0x59, 0xfd, 0xa1, 0x17, 0x15,
		0xb2, 0x59, 0xe4, 0x9a, 0xd8, 0xcf, 0x66, 0xcf, 0x06, 0xfa, 0x59, 0xf9, 0xb1, 0x10, 0xfa, 0x59,
		0xab, 0xb7, 0x19, 0xfa, 0x59, 0xeb, 0x4c, 0x5e, 0x56, 0xa9, 0x9f, 0xb5, 0x93, 0x08, 0xfd, 0x94,
		0xb7, 0x37, 0x4a, 0x95, 0xd2, 0x46, 0x39, 0x7a, 0x0b, 0xed, 0xac, 0x54, 0xec, 0x86, 0x76, 0x16,
		0x05, 0xd2, 0xbc, 0x6a, 0xed, 0xac, 0xe5, 0x4b, 0x0a, 0x69, 0x59, 0xce, 0xac, 0x84, 0x6e, 0x16,
		0xc2, 0xf4, 0xc7, 0x84, 0x80, 0xec, 0x33, 0xa3, 0x65, 0x19, 0x1d, 0xeb, 0xb8, 0x09, 0x05, 0xad,
		0x74, 0x23, 0x32, 0x14, 0xb4, 0x32, 0x0e, 0xc6, 0xab, 0x5b, 0x38, 0xd0, 0xd2, 0x5a, 0xc3, 0xa3,
		0x52, 0x42, 0x4b, 0xeb, 0x58, 0x7a, 0x77, 0x9a, 0xfb, 0xbc, 0x02, 0x50, 0x52, 0xa9, 0x9b, 0xd3,
		0x02, 0x8a, 0x9c, 0xc2, 0xb9, 0x9c, 0xd3, 0x01, 0x7a, 0x50, 0x00, 0xda, 0x81, 0xa0, 0x56, 0x36,
		0x8e, 0x1a, 0x82, 0x5a, 0xb4, 0xfc, 0xf6, 0x6a, 0xd7, 0x14, 0x36, 0xde, 0x90, 0xe1, 0x51, 0xce,
		0xf0, 0x50, 0xdb, 0xfe, 0x88, 0xdb, 0x80, 0xaa, 0x16, 0xfd, 0x8d, 0x4a, 0xe8, 0x6b, 0x51, 0xda,
		0x9a, 0x84, 0xd0, 0x96, 0x72, 0xae, 0x70, 0x22, 0x55, 0xe5, 0xf6, 0x98, 0x69, 0x6b, 0xb9, 0x3d,
		0xc8, 0x69, 0xad, 0xc4, 0x4c, 0xc8, 0x69, 0xad, 0x11, 0xaa, 0x90, 0xd3, 0x4a, 0x23, 0x07, 0x87,
		0x9c, 0x56, 0xea, 0x69, 0x36, 0xe4, 0xb4, 0x72, 0x91, 0x22, 0x41, 0x4e, 0x6b, 0xbd, 0xf1, 0x01,
		0x72, 0x5a, 0x20, 0x36, 0x1c, 0x09, 0x0e, 0x63, 0xa2, 0xc3, 0x95, 0xf0, 0xb0, 0x27, 0x3e, 0xec,
		0x09, 0x10, 0x6f, 0x22, 0xc4, 0x83, 0x10, 0x31, 0x21, 0x46, 0xec, 0x08, 0x52, 0x62, 0xb0, 0x37,
		0xec, 0x3a, 0x1e, 0xdf, 0x2d, 0xf3, 0x89, 0xf9, 0x90, 0xd3, 0x02, 0x81, 0x52, 0x8b, 0x48, 0x29,
		0x40, 0xa8, 0xb8, 0x13, 0x2b, 0x65, 0x08, 0x96, 0x32, 0x44, 0x4b, 0x0d, 0xc2, 0xc5, 0x8b, 0x78,
		0x31, 0x23, 0x60, 0x09, 0x44, 0x20, 0xa7, 0x95, 0x39, 0xbf, 0x81, 0x9c, 0x56, 0xda, 0x2f, 0xc8,
		0x69, 0x65, 0x7b, 0x11, 0x90, 0xd3, 0xa2, 0xea, 0x53, 0x21, 0xa7, 0x45, 0x60, 0x89, 0x43, 0x4e,
		0x0b, 0x6b, 0x1d, 0x6b, 0x5d, 0xd1, 0x04, 0x81, 0xaf, 0xd5, 0x17, 0x48, 0xc4, 0xd6, 0xb8, 0x1c,
		0x19, 0x2a, 0x86, 0x2c, 0x5c, 0x03, 0x3f, 0x05, 0x11, 0x85, 0x32, 0x83, 0x39, 0x85, 0x91, 0x9d,
		0xed, 0xad, 0xdd, 0x99, 0x1c, 0xc2, 0x83, 0xda, 0x81, 0xe6, 0x4a, 0xad, 0x3d, 0x1e, 0x8d, 0x86,
		0x7e, 0xa8, 0x0d, 0xfb, 0xda, 0x37, 0x21, 0x85, 0xef, 0x78, 0xee, 0xff, 0x27, 0x7a, 0xe7, 0xf2,
		0x68, 0xec, 0x85, 0xae, 0x3e, 0xeb, 0x9e, 0xd6, 0x1a, 0xce, 0xa5, 0xf0, 0xb4, 0xf6, 0x4f, 0x37,
		0xec, 0x5e, 0xc5, 0xfa, 0x09, 0xdf, 0x8e, 0x4e, 0x1a, 0xed, 0x2f, 0x73, 0x7a, 0x09, 0xb1, 0x5c,
		0xc2, 0xb9, 0x7c, 0xac, 0x97, 0xa0, 0x31, 0xd3, 0x20, 0x59, 0xb8, 0x87, 0xcc, 0x4b, 0xb0, 0x0f,
		0x95, 0x05, 0xfe, 0x1a, 0x25, 0x0b, 0xd7, 0xa4, 0x4a, 0x55, 0x36, 0xb9, 0xa0, 0x27, 0x1a, 0x26,
		0xd9, 0x2e, 0x5a, 0xb0, 0x3f, 0x58, 0xad, 0x12, 0xfb, 0x83, 0x7a, 0xc0, 0x5a, 0xf8, 0xdd, 0xf5,
		0x30, 0x14, 0x7c, 0xbb, 0x20, 0xa6, 0xf6, 0xa3, 0x0d, 0x22, 0x0d, 0xb3, 0xd1, 0x06, 0x91, 0x21,
		0xd2, 0xd1, 0x06, 0x41, 0x81, 0x7b, 0xa3, 0x0d, 0x82, 0x1c, 0xd1, 0x46, 0x1b, 0x04, 0x58, 0xcd,
		0x33, 0x10, 0x41, 0x1b, 0x44, 0xe6, 0xfc, 0x06, 0x6d, 0x10, 0x69, 0xbf, 0xd0, 0x06, 0x91, 0xed,
		0x45, 0xa0, 0x0d, 0x82, 0xaa, 0x4f, 0x45, 0x1b, 0x04, 0x81, 0x25, 0x8e, 0x36, 0x08, 0xac, 0x75,
		0xac, 0x75, 0x45, 0x13, 0x04, 0xbe, 0x56, 0xa3, 0x0d, 0x62, 0x9d, 0xcb, 0x11, 0x6d, 0x10, 0xc8,
		0x0c, 0x56, 0x92, 0x0f, 0xa3, 0x0d, 0xe2, 0xfd, 0xf7, 0x10, 0x6d, 0x10, 0x74, 0xaf, 0x09, 0x6d,
		0x10, 0x68, 0x83, 0x00, 0xfb, 0x03, 0xfb, 0x53, 0xec, 0xfe, 0x42, 0x5e, 0x63, 0xa5, 0x3e, 0x15,
		0x67, 0xca, 0x12, 0x96, 0x6a, 0x76, 0x7b, 0x38, 0x46, 0x96, 0x92, 0x56, 0xb3, 0xd5, 0xc3, 0xd1,
		0xb1, 0xf9, 0xb1, 0x10, 0x47, 0xc7, 0xae, 0xde, 0x66, 0x1c, 0x47, 0xb7, 0xde, 0x62, 0xc6, 0xbb,
		0x4f, 0xd5, 0xb2, 0xea, 0x38, 0x81, 0x2e, 0xdd, 0x42, 0x03, 0x4e, 0xa0, 0xcb, 0xb8, 0x86, 0xf0,
		0xa1, 0xb5, 0x82, 0xb6, 0xf1, 0x35, 0x3c, 0x1d, 0x85, 0x0f, 0x9d, 0x73, 0x7b, 0x42, 0x86, 0x6e,
		0xdf, 0x15, 0xfe, 0x93, 0xb3, 0xb1, 0xa2, 0x6f, 0x39, 0x97, 0x4f, 0xcf, 0xc6, 0xaa, 0xe0, 0xb4,
		0xb9, 0x4c, 0x9c, 0x32, 0x4e, 0x9b, 0xa3, 0xe5, 0xa3, 0x57, 0xb4, 0x98, 0x50, 0x8b, 0xcb, 0x73,
		0x2d, 0x0e, 0xc7, 0xcc, 0x29, 0x9d, 0x07, 0xe3, 0x98, 0x39, 0x9a, 0xb5, 0x4b, 0x9c, 0x2c, 0x97,
		0x75, 0xb5, 0x12, 0xa7, 0xc9, 0x29, 0xe7, 0xf1, 0x26, 0x87, 0xb3, 0x79, 0xc3, 0x20, 0x60, 0x76,
		0x9e, 0x5c, 0x6c, 0x32, 0x4e, 0x94, 0x5b, 0x85, 0x99, 0x38, 0x51, 0x6e, 0x8d, 0x60, 0xc5, 0x89,
		0x72, 0x69, 0xe4, 0xd9, 0x38, 0x51, 0x2e, 0xf5, 0x54, 0x1a, 0x27, 0xca, 0xe5, 0x22, 0x1b, 0xc2,
		0x89, 0x72, 0xeb, 0x8d, 0x0f, 0x38, 0x51, 0x0e, 0xc4, 0x86, 0x23, 0xc1, 0x61, 0x4c, 0x74, 0xb8,
		0x12, 0x1e, 0xf6, 0xc4, 0x87, 0x3d, 0x01, 0xe2, 0x4d, 0x84, 0x78, 0x10, 0x22, 0x26, 0xc4, 0x88,
		0x1d, 0x41, 0x4a, 0x0c, 0x76, 0xf4, 0x4b, 0x37, 0xe4, 0xbb, 0x1f, 0x3e, 0x31, 0x1f, 0x52, 0x6a,
		0x20, 0x50, 0x6a, 0x11, 0x29, 0x05, 0x08, 0x15, 0x77, 0x62, 0xa5, 0x0c, 0xc1, 0x52, 0x86, 0x68,
		0xa9, 0x41, 0xb8, 0x78, 0x11, 0x2f, 0x66, 0x04, 0x2c, 0x81, 0x08, 0x7f, 0x29, 0xb5, 0xcb, 0xe1,
		0xd0, 0x13, 0x8e, 0x64, 0xac, 0xa5, 0x56, 0x2a, 0xa1, 0x35, 0x2a, 0xef, 0x8b, 0x91, 0xd1, 0x96,
		0xf2, 0xd2, 0x95, 0xc8, 0x65, 0x8b, 0x19, 0x89, 0x06, 0x12, 0x0d, 0x24, 0x1a, 0x48, 0x34, 0x90,
		0x68, 0x20, 0xd1, 0x40, 0xa2, 0x81, 0x44, 0xe3, 0x8d, 0x1e, 0x1f, 0x9a, 0xcd, 0x19, 0x98, 0x0e,
		0xcd, 0xe6, 0x8c, 0x6e, 0x3c, 0x34, 0x9b, 0x09, 0x5d, 0x07, 0x74, 0x5c, 0x11, 0x86, 0xd7, 0xb0,
		0xc4, 0xa1, 0xd9, 0x8c, 0xb5, 0x8e, 0xb5, 0xae, 0x68, 0x82, 0xc0, 0xd7, 0x6a, 0xa8, 0xf6, 0xe5,
		0xd9, 0x52, 0xa8, 0xf6, 0xad, 0xd7, 0xee, 0x7c, 0x4c, 0xbe, 0x7a, 0xc3, 0x20, 0x80, 0x6e, 0x1f,
		0xa5, 0x49, 0xd8, 0xc6, 0x30, 0x08, 0xa0, 0xdc, 0x97, 0x1f, 0x0b, 0xa1, 0xdc, 0xb7, 0x7a, 0x9b,
		0xf9, 0x9d, 0x55, 0xc0, 0x70, 0x26, 0xa3, 0x75, 0x78, 0xb0, 0xfb, 0xb5, 0xb4, 0x35, 0x93, 0x35,
		0xef, 0xf8, 0x4e, 0xbf, 0xef, 0x76, 0x35, 0x53, 0x0e, 0x5c, 0x29, 0x84, 0x1f, 0xab, 0x94, 0x77,
		0xcc, 0x2f, 0xda, 0x91, 0x08, 0x7d, 0xb7, 0x7b, 0x2e, 0x1f, 0x74, 0xcf, 0xe7, 0x54, 0xcb, 0xab,
		0xb1, 0x6c, 0xb9, 0x16, 0x4b, 0x95, 0x6f, 0x6f, 0x68, 0xa5, 0x4a, 0x69, 0x43, 0xe3, 0x78, 0xda,
		0x80, 0x0a, 0xe3, 0x1e, 0x5c, 0x4f, 0x13, 0x50, 0x6b, 0xe2, 0x23, 0x85, 0x65, 0x85, 0x4c, 0x2c,
		0x67, 0x56, 0x5e, 0x6c, 0x40, 0x6d, 0x37, 0xef, 0xe1, 0xfa, 0xdd, 0x0a, 0xa2, 0x8d, 0xe3, 0x76,
		0x1b, 0x7a, 0xbb, 0xe9, 0x86, 0x62, 0xe8, 0xed, 0x66, 0x1c, 0x85, 0x3f, 0xb8, 0x5a, 0xd0, 0xfa,
		0xbb, 0x86, 0xe7, 0xa3, 0xb0, 0xe2, 0xae, 0x37, 0x0c, 0x82, 0x67, 0xe4, 0x41, 0x67, 0x84, 0xee,
		0x5c, 0xce, 0xe4, 0x41, 0xb7, 0xab, 0x9b, 0x50, 0xdb, 0xcd, 0xc4, 0x25, 0x43, 0x6d, 0x97, 0x96,
		0x87, 0x5e, 0xc1, 0x42, 0xc2, 0xfe, 0x19, 0xb2, 0x36, 0xca, 0x59, 0x1b, 0xea, 0xd6, 0x1f, 0xf1,
		0x15, 0x50, 0xda, 0x25, 0xba, 0xdf, 0x08, 0xad, 0xdd, 0xec, 0x77, 0x18, 0xa1, 0xb6, 0xab, 0x9c,
		0xd7, 0x9b, 0xcc, 0x15, 0x46, 0xcb, 0x5d, 0xc4, 0x8d, 0x71, 0x71, 0x96, 0xca, 0x4c, 0x78, 0xf7,
		0xa9, 0xf5, 0xd0, 0xe0, 0x5d, 0x85, 0x99, 0xd0, 0xe0, 0x5d, 0x23, 0x6e, 0xa1, 0xc1, 0x9b, 0x46,
		0xf6, 0x0d, 0x0d, 0xde, 0xd4, 0x13, 0x6c, 0x68, 0xf0, 0xe6, 0x22, 0x4f, 0x82, 0x06, 0xef, 0x7a,
		0xe3, 0x03, 0x34, 0x78, 0x41, 0x6c, 0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87, 0x2b, 0xe1, 0x61, 0x4f,
		0x7c, 0xd8, 0x13, 0x20, 0xde, 0x44, 0x88, 0x07, 0x21, 0x62, 0x42, 0x8c, 0xd8, 0x11, 0xa4, 0xc4,
		0xe0, 0x90, 0xa3, 0x84, 0x44, 0x12, 0x66, 0x18, 0xd4, 0x7d, 0x96, 0xd1, 0x26, 0x08, 0x63, 0x81,
		0x46, 0x29, 0x4c, 0xa7, 0xb8, 0xd3, 0x2a, 0x65, 0xe8, 0x95, 0x32, 0x34, 0x4b, 0x0d, 0xba, 0xc5,
		0x8b, 0x76, 0x31, 0xa3, 0x5f, 0x09, 0x44, 0xf8, 0x0b, 0x63, 0x09, 0x39, 0xbe, 0x16, 0xbe, 0xc3,
		0xb5, 0x83, 0x6c, 0x56, 0x1b, 0xaa, 0x30, 0xb4, 0xdd, 0x94, 0xe3, 0x6b, 0xbe, 0xf1, 0xaa, 0x33,
		0x6c, 0x87, 0xbe, 0x2b, 0x07, 0xac, 0x55, 0x68, 0x0a, 0x5b, 0xd1, 0x1a, 0x30, 0x7f, 0x74, 0x5a,
		0x86, 0xdd, 0x69, 0x19, 0x87, 0x87, 0xd6, 0x41, 0x81, 0xb1, 0x28, 0x50, 0x29, 0xba, 0x9a, 0xd3,
		0xe6, 0x49, 0xeb, 0xb8, 0x63, 0x1e, 0x74, 0xcc, 0x3a, 0xe7, 0x6b, 0x29, 0x47, 0xd7, 0xd2, 0xfe,
		0x6e, 0xb4, 0x78, 0x5f, 0xc6, 0x76, 0xdc, 0xaa, 0xd3, 0x34, 0xed, 0xe3, 0xa6, 0xc9, 0xf9, 0x3a,
		0x2a, 0xd1, 0x75, 0x9c, 0x34, 0x4e, 0xdb, 0xdc, 0x2f, 0x64, 0x27, 0x5e, 0xf1, 0xcd, 0xef, 0x46,
		0xf3, 0xc0, 0xac, 0x17, 0x78, 0xaa, 0x02, 0x6d, 0x70, 0x0d, 0x19, 0x96, 0x0c, 0x79, 0xc7, 0x8b,
		0x04, 0x38, 0x35, 0x8d, 0xb1, 0x56, 0xd9, 0x93, 0x88, 0xc7, 0x5a, 0xa6, 0x2c, 0x71, 0xae, 0x35,
		0x6d, 0x9b, 0xf1, 0x55, 0x24, 0xae, 0xb5, 0xa6, 0x55, 0x18, 0x5f, 0xc6, 0x34, 0x60, 0xd7, 0xb4,
		0x32, 0xe3, 0x8b, 0x98, 0x67, 0x50, 0x35, 0xad, 0x04, 0xe5, 0x38, 0x58, 0xcc, 0xbe, 0x52, 0xd1,
		0x70, 0x83, 0xd0, 0x08, 0x43, 0x9f, 0x67, 0xb5, 0xe2, 0xc8, 0x95, 0xa6, 0x27, 0xae, 0x85, 0xe4,
		0x2a, 0xaa, 0x59, 0x38, 0x72, 0x6e, 0xe7, 0xae, 0xa0, 0xf4, 0xb5, 0x52, 0xa9, 0xee, 0x56, 0x2a,
		0x5b, 0xbb, 0xdb, 0xbb, 0x5b, 0x7b, 0x3b, 0x3b, 0xa5, 0x6a, 0x89, 0x21, 0x9d, 0x28, 0x1c, 0xfb,
		0x3d, 0xe1, 0x8b, 0xde, 0xfe, 0x5d, 0xa1, 0xa6, 0xc9, 0xb1, 0xe7, 0x71, 0xbe, 0x84, 0xd3, 0x40,
		0xf8, 0x2c, 0x55, 0x4e, 0xb9, 0x79, 0x22, 0x86, 0xda, 0x5d, 0x0b, 0xd7, 0xc0, 0x4f, 0xcb, 0xeb,
		0xe9, 0x8b, 0x71, 0x0e, 0x36, 0xa7, 0xf5, 0xb5, 0xb3, 0xbd, 0xb5, 0x3b, 0x13, 0x25, 0x7a, 0xd0,
		0x1c, 0xd2, 0x5c, 0xa9, 0xb5, 0xc7, 0xa3, 0xd1, 0xd0, 0x0f, 0xb5, 0x61, 0x5f, 0xfb, 0x26, 0xa4,
		0xf0, 0x1d, 0xcf, 0xfd, 0xff, 0x44, 0xef, 0x5c, 0x1e, 0x8d, 0xbd, 0xd0, 0xd5, 0x67, 0x63, 0x4f,
		0x9a, 0xd6, 0x70, 0x2e, 0x85, 0xa7, 0xb5, 0x7f, 0xba, 0x61, 0xf7, 0x2a, 0x96, 0x31, 0xfa, 0x76,
		0x74, 0xd2, 0x68, 0x7f, 0x79, 0x90, 0x2d, 0x2a, 0x6f, 0xd5, 0xce, 0xe5, 0x54, 0xb7, 0xa8, 0xbc,
		0xbd, 0x51, 0xaa, 0x94, 0x36, 0xca, 0xd1, 0x5b, 0x5e, 0x52, 0x60, 0x8b, 0x44, 0x9d, 0xf7, 0x76,
		0x69, 0x72, 0x1d, 0x0a, 0x48, 0x85, 0x2d, 0x5c, 0x93, 0x2a, 0x3b, 0xa8, 0xc9, 0x05, 0x3d, 0x91,
		0x12, 0xcb, 0x78, 0xd5, 0x42, 0xc3, 0x1c, 0x56, 0xbf, 0xf8, 0x82, 0x86, 0x79, 0x9e, 0x2d, 0x85,
		0x86, 0xf9, 0x7a, 0xed, 0xce, 0x87, 0xa6, 0xc0, 0x93, 0xa1, 0x61, 0xc8, 0x99, 0x53, 0x12, 0x1b,
		0x38, 0x49, 0x1e, 0x4e, 0xe7, 0x6e, 0x24, 0x20, 0x6c, 0x9e, 0x1f, 0x0b, 0x21, 0x6c, 0xbe, 0x7a,
		0x9b, 0x21, 0x92, 0xba, 0xde, 0x3a, 0xc7, 0xbb, 0x65, 0x1f, 0xa7, 0xbb, 0x58, 0xd6, 0x71, 0xd3,
		0xee, 0xfc, 0x71, 0x62, 0x42, 0x2f, 0x35, 0xdd, 0x7a, 0x04, 0xf4, 0x52, 0x33, 0x2e, 0x35, 0xac,
		0x6e, 0xe1, 0x40, 0x3a, 0x75, 0x0d, 0x8f, 0x4a, 0x61, 0xe9, 0xd4, 0x07, 0xf6, 0x3f, 0x11, 0x76,
		0x7c, 0x2c, 0xfe, 0x78, 0x2e, 0xe7, 0xd4, 0x1f, 0x27, 0xdf, 0x50, 0xde, 0x82, 0x84, 0x6a, 0x36,
		0x5e, 0x1a, 0x12, 0xaa, 0xb4, 0x9c, 0xf6, 0x0a, 0x17, 0x14, 0xca, 0x78, 0x79, 0x2e, 0xe3, 0x41,
		0x4a, 0x55, 0xe9, 0x4c, 0x19, 0x52, 0xaa, 0x0c, 0xca, 0x9e, 0x50, 0x55, 0xa5, 0x54, 0xe8, 0x84,
		0xbe, 0xaa, 0x72, 0xae, 0xb0, 0x70, 0xed, 0xdc, 0xea, 0xf1, 0xca, 0xbb, 0x74, 0x64, 0xef, 0xa7,
		0xdb, 0x8b, 0xdd, 0x0b, 0x13, 0x75, 0xd5, 0x67, 0x6c, 0x87, 0xb6, 0xea, 0x2a, 0xcc, 0x84, 0xb6,
		0xea, 0x1a, 0x51, 0x0b, 0x6d, 0xd5, 0x34, 0xd2, 0x72, 0x68, 0xab, 0xa6, 0x9e, 0x79, 0x43, 0x5b,
		0x35, 0x17, 0x89, 0x13, 0xb4, 0x55, 0xd7, 0x1b, 0x1f, 0xa0, 0xad, 0x0a, 0x62, 0xc3, 0x91, 0xe0,
		0x30, 0x26, 0x3a, 0x5c, 0x09, 0x0f, 0x7b, 0xe2, 0xc3, 0x9e, 0x00, 0xf1, 0x26, 0x42, 0x3c, 0x08,
		0x11, 0x13, 0x62, 0xc4, 0x8e, 0x20, 0x25, 0x06, 0xf3, 0x29, 0xfd, 0x2c, 0x8d, 0x35, 0x5c, 0x2a,
		0x40, 0xcb, 0x08, 0x14, 0x54, 0x56, 0x41, 0xa8, 0x14, 0x26, 0x56, 0xdc, 0x09, 0x96, 0x32, 0x44,
		0x4b, 0x19, 0xc2, 0xa5, 0x06, 0xf1, 0xe2, 0x45, 0xc0, 0x98, 0x11, 0xb1, 0x04, 0x22, 0xfc, 0x55,
		0x56, 0x5d, 0x21, 0x44, 0xdf, 0x1b, 0x3a, 0xe1, 0x76, 0x99, 0xb1, 0xca, 0xea, 0x1e, 0x43, 0xd3,
		0x1b, 0x42, 0x0e, 0x62, 0x62, 0x0c, 0x99, 0x86, 0x94, 0xef, 0xfc, 0x91, 0x2b, 0xf9, 0xcb, 0x0b,
		0x9c, 0x39, 0xde, 0x58, 0xf0, 0xd6, 0x64, 0x8b, 0xaf, 0xe3, 0xd0, 0x77, 0xe2, 0x36, 0x90, 0xba,
		0x3b, 0x70, 0xb9, 0x6a, 0x28, 0x3d, 0xf6, 0xac, 0x62, 0xe0, 0x84, 0xee, 0x8d, 0x60, 0x29, 0xd9,
		0xc3, 0x38, 0x18, 0x3f, 0x5e, 0xe2, 0xce, 0x2d, 0x96, 0x38, 0x96, 0x38, 0x96, 0xb8, 0x4a, 0xd9,
		0x01, 0x5f, 0xab, 0x2f, 0x90, 0x85, 0xad, 0x71, 0x39, 0x42, 0xb7, 0x0d, 0x09, 0xc1, 0x4a, 0x92,
		0xe1, 0x89, 0x02, 0xd4, 0xce, 0x33, 0x0a, 0x50, 0xfd, 0xa1, 0xaf, 0x75, 0x7c, 0xa7, 0xdf, 0x77,
		0xbb, 0x9a, 0x29, 0x07, 0xae, 0x14, 0xc2, 0x77, 0xe5, 0x60, 0xf3, 0x5c, 0xce, 0x66, 0x7b, 0xf6,
		0x6a, 0x1a, 0xb4, 0xd8, 0xc8, 0x96, 0x09, 0xa0, 0xc5, 0x46, 0xff, 0x82, 0x16, 0xb5, 0xd8, 0x56,
		0xbd, 0x12, 0xc1, 0xd3, 0x60, 0xb5, 0x4a, 0x3c, 0x0d, 0x6d, 0x20, 0x79, 0xe4, 0xbd, 0xd0, 0x57,
		0xa3, 0x3a, 0x68, 0xb8, 0x38, 0x36, 0x04, 0x75, 0x35, 0x2a, 0x43, 0x87, 0x47, 0xce, 0x6d, 0xf4,
		0xcb, 0xf6, 0x67, 0x4f, 0x06, 0xda, 0x6a, 0xf9, 0xb1, 0x10, 0xda, 0x6a, 0xab, 0xb7, 0x19, 0xda,
		0x6a, 0xeb, 0xad, 0x45, 0xbc, 0x47, 0x22, 0xea, 0xc8, 0xf8, 0x31, 0x91, 0x89, 0xda, 0x37, 0x9a,
		0xf5, 0xff, 0x5a, 0xf5, 0xce, 0x77, 0x28, 0xab, 0xa5, 0x5b, 0x5d, 0x80, 0xb2, 0x5a, 0xc6, 0x85,
		0x83, 0x55, 0x2d, 0x1b, 0xe8, 0xaa, 0xad, 0xe1, 0x41, 0xa9, 0xa9, 0xab, 0x76, 0xed, 0xdc, 0xba,
		0xd7, 0xe3, 0xeb, 0x89, 0x1c, 0x54, 0xc2, 0xfc, 0x5f, 0x14, 0x82, 0x72, 0x83, 0x89, 0x16, 0xd4,
		0x1e, 0xb4, 0xd5, 0xb2, 0xf1, 0xd3, 0xd0, 0x56, 0xa3, 0xe5, 0xb6, 0x57, 0xbc, 0xa8, 0x50, 0xc6,
		0xcb, 0x73, 0x19, 0x0f, 0xfa, 0x6a, 0x4a, 0x67, 0xcb, 0xd0, 0x57, 0x23, 0x5f, 0xf6, 0x84, 0xba,
		0x1a, 0x9d, 0x42, 0x27, 0xb4, 0xd5, 0x94, 0x73, 0x83, 0xb1, 0x3e, 0x99, 0x2f, 0x02, 0xe1, 0xdf,
		0x38, 0x97, 0x9e, 0x60, 0x2d, 0xb3, 0xb6, 0xfc, 0x32, 0xa0, 0xb8, 0xb6, 0x0a, 0x33, 0xa1, 0xb8,
		0xb6, 0x46, 0x00, 0x43, 0x71, 0x2d, 0x8d, 0x64, 0x1d, 0x8a, 0x6b, 0xa9, 0xe7, 0xe3, 0x50, 0x5c,
		0xcb, 0x45, 0x2a, 0x05, 0xc5, 0xb5, 0xf5, 0xc6, 0x07, 0x28, 0xae, 0x81, 0xd8, 0x70, 0x24, 0x38,
		0x8c, 0x89, 0x0e, 0x57, 0xc2, 0xc3, 0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42,
		0xc4, 0x84, 0x18, 0xb1, 0x23, 0x48, 0x89, 0xc1, 0x50, 0x5c, 0xcb, 0x9c, 0x40, 0x41, 0x71, 0x0d,
		0x84, 0x4a, 0x61, 0x62, 0xc5, 0x9d, 0x60, 0x29, 0x43, 0xb4, 0x94, 0x21, 0x5c, 0x6a, 0x10, 0x2f,
		0x5e, 0x04, 0x8c, 0x19, 0x11, 0x4b, 0x20, 0x02, 0xc5, 0x35, 0x1a, 0x24, 0x07, 0x8a, 0x6b, 0xa9,
		0xbf, 0xa0, 0xb8, 0x96, 0xed, 0x45, 0x40, 0x8e, 0x89, 0xaa, 0x67, 0x85, 0xe2, 0x1a, 0x81, 0x25,
		0x0e, 0xc5, 0x35, 0x2c, 0x71, 0x2c, 0x71, 0xb5, 0xb2, 0x03, 0xbe, 0x56, 0x43, 0x71, 0x6d, 0x9d,
		0xcb, 0x11, 0x8a, 0x6b, 0x48, 0x08, 0x56, 0x92, 0x0c, 0xbf, 0x47, 0xe7, 0xa9, 0x3d, 0x9d, 0xf7,
		0x29, 0x6d, 0x41, 0x72, 0x8d, 0x70, 0x9d, 0x00, 0x92, 0x6b, 0xf4, 0x2f, 0xe8, 0xa3, 0x92, 0x6b,
		0x6f, 0x58, 0x8a, 0x60, 0x6a, 0xb0, 0x5a, 0x25, 0xa6, 0x86, 0x46, 0x90, 0x3c, 0x32, 0x5f, 0x68,
		0xae, 0x51, 0x1e, 0x3e, 0x5c, 0x3a, 0x43, 0x04, 0xf9, 0x35, 0x42, 0x53, 0x89, 0xad, 0xe4, 0x29,
		0x41, 0x88, 0x2d, 0xa7, 0x16, 0x42, 0x88, 0x6d, 0xf5, 0x36, 0x43, 0x88, 0x6d, 0xbd, 0x25, 0x8a,
		0xf7, 0x2a, 0x4a, 0xb5, 0xcc, 0xb6, 0xd9, 0x3a, 0x33, 0xf6, 0x1b, 0x26, 0xe4, 0xd8, 0xb2, 0xaa,
		0x3c, 0x40, 0x8e, 0x2d, 0xe3, 0xa2, 0xc2, 0x6a, 0x17, 0x0f, 0x44, 0xd9, 0xd6, 0xf0, 0xb8, 0xd4,
		0x16, 0x65, 0x7b, 0x48, 0x0d, 0x9e, 0x48, 0x49, 0x9d, 0xcb, 0xc7, 0x5a, 0x52, 0xda, 0xbc, 0x94,
		0x54, 0x8c, 0x56, 0x37, 0xd0, 0x4a, 0x5b, 0x10, 0x68, 0xcb, 0xc6, 0x73, 0x43, 0xa0, 0x8d, 0x96,
		0x23, 0x5f, 0xe3, 0x02, 0x43, 0xfd, 0x2f, 0xcf, 0xf5, 0x3f, 0x88, 0xb5, 0x29, 0x9d, 0x51, 0x43,
		0xac, 0x8d, 0x53, 0xbd, 0x14, 0xba, 0x6d, 0x14, 0x2b, 0xa4, 0x50, 0x70, 0x53, 0xce, 0x37, 0x16,
		0xae, 0x5d, 0xa9, 0x27, 0xba, 0x89, 0x3d, 0xe1, 0x39, 0x77, 0x8c, 0x64, 0xdb, 0x16, 0x6d, 0x87,
		0x56, 0xdb, 0x2a, 0xcc, 0x84, 0x56, 0xdb, 0x1a, 0x51, 0x0b, 0xad, 0xb6, 0x34, 0xf2, 0x76, 0x68,
		0xb5, 0xa5, 0x9e, 0x9a, 0x43, 0xab, 0x2d, 0x17, 0x99, 0x14, 0xb4, 0xda, 0xd6, 0x1b, 0x1f, 0xa0,
		0xd5, 0x06, 0x62, 0xc3, 0x91, 0xe0, 0x30, 0x26, 0x3a, 0x5c, 0x09, 0x0f, 0x7b, 0xe2, 0xc3, 0x9e,
		0x00, 0xf1, 0x26, 0x42, 0x3c, 0x08, 0x11, 0x13, 0x62, 0xc4, 0x8e, 0x20, 0x25, 0x06, 0x3b, 0xfa,
		0xa5, 0x1b, 0xf2, 0xdd, 0x73, 0x9f, 0x98, 0x0f, 0x8d, 0x36, 0x10, 0x28, 0xb5, 0x88, 0x94, 0x02,
		0x84, 0x8a, 0x3b, 0xb1, 0x52, 0x86, 0x60, 0x29, 0x43, 0xb4, 0xd4, 0x20, 0x5c, 0xbc, 0x88, 0x17,
		0x33, 0x02, 0x96, 0x40, 0x84, 0xbf, 0x46, 0xdb, 0xe5, 0x70, 0xe8, 0x09, 0x47, 0x32, 0xd6, 0x67,
		0x2b, 0x95, 0xd0, 0x56, 0x95, 0xf7, 0xc5, 0x18, 0x9f, 0xaf, 0xc5, 0x63, 0x6f, 0x79, 0xe9, 0x4a,
		0x7c, 0xb8, 0x04, 0x24, 0x1a, 0x48, 0x34, 0x90, 0x68, 0x20, 0xd1, 0x40, 0xa2, 0x81, 0x44, 0x03,
		0xbc, 0x06, 0x89, 0x86, 0x12, 0x89, 0xc6, 0xd8, 0x95, 0xbc, 0x75, 0xa0, 0x77, 0x19, 0x9a, 0xde,
		0x72, 0xe4, 0x00, 0xaa, 0x6f, 0x19, 0xdc, 0x78, 0xa5, 0x64, 0xa0, 0xb7, 0xa0, 0x11, 0x4b, 0xcc,
		0xa7, 0x42, 0x06, 0x9a, 0xc0, 0x12, 0x57, 0x4a, 0x06, 0xba, 0xbc, 0x57, 0xd9, 0xab, 0xee, 0x96,
		0xf7, 0x76, 0xb0, 0xd6, 0xb1, 0xd6, 0x91, 0x20, 0x30, 0xb6, 0x1a, 0x2a, 0x83, 0xb9, 0x8f, 0x55,
		0xf1, 0xdc, 0x12, 0xf7, 0x72, 0x78, 0x72, 0x09, 0x28, 0x87, 0xa7, 0x61, 0x36, 0xca, 0xe1, 0x19,
		0x82, 0x1d, 0xe5, 0xf0, 0xec, 0x96, 0x2b, 0xca, 0xe1, 0xc4, 0x2e, 0x04, 0xe5, 0x70, 0x70, 0x9b,
		0x57, 0x20, 0x82, 0x72, 0x78, 0xe6, 0xfc, 0x06, 0xe5, 0xf0, 0xb4, 0x5f, 0x28, 0x87, 0x67, 0x7b,
		0x11, 0x28, 0x87, 0x53, 0xf5, 0xa9, 0x28, 0x87, 0x13, 0x58, 0xe2, 0x28, 0x87, 0x63, 0xad, 0x63,
		0xad, 0x2b, 0x9a, 0x20, 0xf0, 0xb5, 0x1a, 0xe5, 0xf0, 0x3c, 0x5b, 0x8a, 0x43, 0x77, 0xd6, 0x6b,
		0xb7, 0xfa, 0x22, 0x92, 0x0b, 0x0a, 0x70, 0x38, 0x69, 0x87, 0x8c, 0x8e, 0xa4, 0x2b, 0x8f, 0x9c,
		0xdb, 0xe8, 0xf7, 0xd5, 0xa3, 0x07, 0x83, 0xe3, 0x75, 0xf2, 0x63, 0x21, 0x8e, 0xd7, 0x59, 0xbd,
		0xcd, 0xfc, 0x8e, 0x09, 0x66, 0x28, 0x59, 0xd4, 0x3a, 0x3c, 0xd8, 0xfd, 0x5a, 0xda, 0x9a, 0x9d,
		0x3d, 0xfa, 0xcc, 0x61, 0xa3, 0xda, 0xe7, 0x8e, 0xf9, 0x45, 0x3b, 0x12, 0xa1, 0xef, 0x76, 0xcf,
		0xe5, 0xc3, 0xe1, 0xa4, 0x9b, 0x89, 0xa4, 0xfc, 0x76, 0x25, 0x39, 0x83, 0x54, 0x2b, 0x6f, 0x6f,
		0x68, 0xa5, 0x4a, 0x69, 0x43, 0x2b, 0xc7, 0x7f, 0xe3, 0x75, 0x24, 0xb0, 0x0a, 0x6a, 0x48, 0x5c,
		0x8f, 0xfc, 0x55, 0x4b, 0x10, 0x29, 0x85, 0x65, 0x85, 0xcc, 0x2c, 0x67, 0x56, 0x5e, 0x6c, 0xe0,
		0x48, 0xbc, 0xbc, 0x87, 0xeb, 0x77, 0x9d, 0xea, 0x65, 0x35, 0xe3, 0x93, 0xbd, 0x1a, 0x56, 0xf3,
		0x77, 0xbb, 0x6e, 0x36, 0x8c, 0x3f, 0x70, 0x18, 0x5e, 0xba, 0x31, 0x19, 0x87, 0xe1, 0x65, 0x1c,
		0x8e, 0x57, 0xb5, 0x6c, 0xd0, 0x1c, 0xbc, 0x86, 0x07, 0xa5, 0xe8, 0x31, 0x78, 0xae, 0x2c, 0x5e,
		0x3b, 0xb7, 0xff, 0x3f, 0x7b, 0x67, 0xdb, 0xd4, 0x36, 0xb2, 0xbc, 0xfd, 0xf7, 0xfb, 0x29, 0x54,
		0xae, 0x53, 0x95, 0xa4, 0x2a, 0xc2, 0x3c, 0x18, 0xb3, 0xa1, 0x6a, 0x5f, 0x08, 0x2c, 0x88, 0x4e,
		0x84, 0xed, 0x92, 0x04, 0x27, 0x7b, 0x36, 0x1c, 0x95, 0x6c, 0x0f, 0xa0, 0x3b, 0x62, 0xe4, 0xd2,
		0x8c, 0x09, 0xfc, 0x77, 0xf3, 0xdd, 0xef, 0x92, 0x6c, 0x8b, 0xa7, 0x00, 0x09, 0x18, 0xbb, 0x5b,
		0xbe, 0x78, 0x81, 0x8d, 0x83, 0x43, 0x5b, 0xfa, 0x4d, 0xf7, 0x35, 0x3d, 0x3d, 0x3d, 0xe3, 0xa3,
		0xb9, 0x8a, 0x44, 0x9d, 0x71, 0xff, 0x54, 0xae, 0x2f, 0x72, 0x2a, 0xf6, 0x62, 0x35, 0x3e, 0x99,
		0x6b, 0xa3, 0x81, 0x73, 0xef, 0x16, 0xe3, 0xa4, 0x71, 0xee, 0x1d, 0x2d, 0x9f, 0x3d, 0xcb, 0x11,
		0x85, 0x35, 0x37, 0xcc, 0xec, 0x28, 0xcf, 0xec, 0x90, 0xdb, 0x7e, 0x89, 0xd3, 0xc0, 0x41, 0x77,
		0xd4, 0xd7, 0x28, 0x71, 0xba, 0x1d, 0x99, 0x55, 0x49, 0x1c, 0x69, 0x57, 0x39, 0x2f, 0x58, 0xcb,
		0x84, 0x8a, 0x07, 0xa3, 0x28, 0xb9, 0x71, 0x9c, 0x24, 0x9b, 0x23, 0xed, 0x7e, 0x60, 0x3b, 0x8e,
		0xb4, 0x9b, 0x85, 0x99, 0x38, 0xd2, 0xee, 0x15, 0xa9, 0xc5, 0x91, 0x76, 0xf3, 0x98, 0x92, 0xe3,
		0x48, 0xbb, 0xb9, 0xcf, 0xba, 0x71, 0xa4, 0xdd, 0x52, 0xcc, 0x99, 0x70, 0xa4, 0xdd, 0xeb, 0xc6,
		0x07, 0x1c, 0x69, 0x07, 0x61, 0xc3, 0x51, 0xe0, 0x30, 0x16, 0x3a, 0x5c, 0x05, 0x0f, 0x7b, 0xe1,
		0xc3, 0x5e, 0x00, 0xf1, 0x16, 0x42, 0x3c, 0x04, 0x11, 0x13, 0x61, 0xc4, 0x4e, 0x20, 0x95, 0x06,
		0xf3, 0x49, 0xfd, 0x3c, 0x18, 0x6b, 0xb8, 0x64, 0x80, 0x1e, 0x12, 0x50, 0x68, 0xb1, 0x05, 0x41,
		0x55, 0x61, 0x61, 0xc5, 0x5d, 0x60, 0x55, 0x46, 0x68, 0x55, 0x46, 0x70, 0x55, 0x43, 0x78, 0xf1,
		0x12, 0x60, 0xcc, 0x84, 0x58, 0x89, 0x08, 0xff, 0x16, 0x5b, 0xb1, 0x10, 0xe2, 0x24, 0x49, 0x23,
		0xde, 0x7d, 0xb6, 0x3e, 0x30, 0x34, 0xdd, 0x15, 0xf2, 0xb4, 0x10, 0xc6, 0x68, 0xb4, 0x35, 0xe7,
		0x2b, 0x5f, 0xa9, 0x46, 0x5b, 0x0d, 0x34, 0xdf, 0x21, 0xe6, 0x59, 0xd1, 0x68, 0x8b, 0xc0, 0x10,
		0xaf, 0x54, 0xa3, 0x2d, 0x0c, 0x71, 0x0c, 0x71, 0xcc, 0x0e, 0x18, 0x5b, 0x8d, 0xfe, 0x5a, 0xcb,
		0x6c, 0x29, 0xfa, 0x6b, 0xbd, 0xae, 0xdd, 0x95, 0xaf, 0x5d, 0xbf, 0x5f, 0x8e, 0x8a, 0xfe, 0x5a,
		0x54, 0x2a, 0xd9, 0xbd, 0xc9, 0xbd, 0xd9, 0x99, 0xde, 0x1a, 0x74, 0xd8, 0x5a, 0x1e, 0x0b, 0xd1,
		0x61, 0x6b, 0xf6, 0x36, 0xa3, 0xc3, 0xd6, 0x6b, 0xce, 0x5c, 0x66, 0xd9, 0x61, 0x6b, 0x0b, 0x1d,
		0xb6, 0x16, 0x6b, 0x37, 0x3a, 0x6c, 0x51, 0x50, 0xcd, 0xb3, 0xee, 0xb0, 0xb5, 0x85, 0x0e, 0x5b,
		0xb0, 0xf2, 0x46, 0xee, 0x00, 0x1d, 0xb6, 0x96, 0x3e, 0x5c, 0x3f, 0xa7, 0x55, 0x90, 0x67, 0xfb,
		0x4e, 0xeb, 0xd0, 0x72, 0xc3, 0x1d, 0xab, 0xdd, 0xfa, 0x8f, 0xd3, 0x0a, 0x3e, 0xa2, 0xc3, 0xd6,
		0x7c, 0x63, 0x32, 0x3a, 0x6c, 0x2d, 0x38, 0x1c, 0xcf, 0x6a, 0xd8, 0xa0, 0xc3, 0xd6, 0x2b, 0xdc,
		0xa8, 0x6a, 0x76, 0xd8, 0xca, 0x84, 0x1a, 0xc4, 0xa3, 0x28, 0x31, 0xca, 0x54, 0xdd, 0xcf, 0xf5,
		0x03, 0xda, 0x42, 0x87, 0xad, 0xc5, 0x38, 0x69, 0x74, 0xd8, 0xa2, 0xe5, 0xb3, 0x67, 0x39, 0xa2,
		0xb0, 0xea, 0x86, 0x99, 0x1d, 0xe5, 0x99, 0x1d, 0x72, 0xdb, 0x2f, 0x71, 0x1a, 0xe8, 0xb0, 0x45,
		0x7d, 0x95, 0x12, 0x1d, 0xb6, 0x08, 0xad, 0x4b, 0xa2, 0xc7, 0x56, 0xe5, 0xfc, 0x20, 0x93, 0x46,
		0x14, 0xac, 0x1a, 0x50, 0xa0, 0x93, 0xd6, 0x8c, 0x0d, 0x45, 0x27, 0x2d, 0x4c, 0xc3, 0x7f, 0x3c,
		0xf5, 0x46, 0x27, 0xad, 0xb9, 0xcf, 0xae, 0xd1, 0x49, 0x6b, 0x29, 0xe6, 0x46, 0x6c, 0x3a, 0x69,
		0x69, 0x4e, 0x1b, 0x28, 0xcb, 0xf0, 0x50, 0x58, 0xcd, 0xab, 0x8f, 0xd6, 0x2a, 0xfa, 0x68, 0x2d,
		0xbd, 0xbc, 0x61, 0x2c, 0x73, 0xb8, 0xca, 0x1d, 0xf6, 0xb2, 0x87, 0xbd, 0xfc, 0xe1, 0x2d, 0x83,
		0x78, 0xc8, 0x21, 0x26, 0xb2, 0xa8, 0x44, 0x81, 0x5d, 0xdb, 0x86, 0xeb, 0x76, 0x0d, 0x03, 0x21,
		0x75, 0xac, 0xaf, 0x32, 0x71, 0xc2, 0xc9, 0x6b, 0x4f, 0x73, 0x2a, 0x9b, 0x8c, 0x6c, 0x76, 0x26,
		0x97, 0x7a, 0x27, 0x52, 0x82, 0x6f, 0x81, 0x82, 0xe3, 0x3b, 0x7e, 0xe8, 0x1f, 0xee, 0x04, 0xee,
		0x51, 0x18, 0xfc, 0xd9, 0xb5, 0xb9, 0x85, 0x9d, 0x62, 0x0f, 0xb4, 0x62, 0xd9, 0x25, 0x83, 0x69,
		0x23, 0xaa, 0x92, 0x9c, 0xee, 0xed, 0xc2, 0x28, 0xa7, 0x7b, 0xd4, 0x08, 0xbd, 0xce, 0x61, 0x60,
		0x7b, 0xa1, 0xd3, 0x62, 0xd8, 0x09, 0xe9, 0x3d, 0x08, 0x5a, 0x38, 0x41, 0x4d, 0x10, 0x04, 0x82,
		0x9e, 0x4f, 0x50, 0xd7, 0xb3, 0xf7, 0x9c, 0xcf, 0xe1, 0x9e, 0x6b, 0xed, 0xfb, 0xe0, 0x07, 0xfc,
		0x3c, 0x93, 0x1f, 0x1f, 0xde, 0x07, 0xf4, 0xfc, 0x3a, 0x3d, 0x63, 0x19, 0xed, 0x73, 0xd4, 0xd1,
		0x55, 0xd0, 0xd3, 0xbc, 0xa9, 0xaa, 0xbc, 0xbe, 0x66, 0xec, 0xa7, 0xaa, 0x4f, 0x56, 0x13, 0x64,
		0x81, 0x2c, 0xe8, 0x71, 0x70, 0x05, 0x9d, 0x0e, 0xaa, 0x96, 0x95, 0xaa, 0xc0, 0xda, 0x07, 0x4e,
		0xc0, 0x69, 0x86, 0x38, 0x35, 0x1b, 0x35, 0xf4, 0xfe, 0x9c, 0xeb, 0xd7, 0x31, 0xf2, 0x36, 0x18,
		0xb0, 0xcb, 0xe0, 0xf7, 0x81, 0x0d, 0xfc, 0x3b, 0xc0, 0xe1, 0x01, 0xce, 0x9d, 0x16, 0x22, 0x56,
		0xeb, 0xdf, 0xa1, 0x6b, 0xb5, 0xb1, 0xcc, 0x00, 0x7c, 0x9e, 0x8b, 0x0f, 0xd0, 0x01, 0x3a, 0xcf,
		0x42, 0xe7, 0xc0, 0x69, 0x87, 0xfb, 0x5e, 0xe7, 0xb0, 0x0b, 0x7c, 0x80, 0xcf, 0x2f, 0xe3, 0x73,
		0x64, 0x39, 0xae, 0xb5, 0xe3, 0xda, 0xd7, 0xcd, 0xaf, 0x80, 0x11, 0x30, 0xfa, 0x55, 0x8c, 0x4a,
		0x78, 0xc2, 0xdd, 0x4e, 0xdb, 0x0f, 0x3c, 0xcb, 0x69, 0x07, 0x28, 0xd7, 0x01, 0x48, 0xbf, 0x0c,
		0x92, 0xfd, 0x39, 0xb0, 0xdb, 0x2d, 0xbb, 0x85, 0xb8, 0x06, 0x8e, 0x5e, 0xc2, 0x51, 0x51, 0x5a,
		0xe1, 0xb4, 0x03, 0xdb, 0xdb, 0xb3, 0x76, 0xed, 0xd0, 0x6a, 0xb5, 0x3c, 0xdb, 0x87, 0x47, 0x02,
		0x49, 0xcf, 0x23, 0xa9, 0x6d, 0x3b, 0xfb, 0x1f, 0x77, 0x3a, 0x1e, 0x40, 0x02, 0x48, 0x2f, 0x00,
		0xa9, 0x09, 0x97, 0x04, 0x92, 0x66, 0x44, 0x12, 0x5c, 0x12, 0x40, 0x7a, 0x29, 0x48, 0xae, 0xd3,
		0xfe, 0x14, 0x5a, 0x41, 0xe0, 0x39, 0x3b, 0x87, 0x81, 0x0d, 0x84, 0x80, 0xd0, 0xf3, 0x10, 0x6a,
		0xd9, 0xae, 0xf5, 0x27, 0xe8, 0x01, 0x3d, 0xcf, 0xa7, 0x27, 0x3c, 0xb2, 0x3c, 0xc7, 0x0a, 0x9c,
		0x4e, 0x1b, 0x1c, 0x81, 0xa3, 0x67, 0x71, 0x84, 0x05, 0x34, 0xa0, 0xf3, 0x4c, 0x74, 0xdc, 0x0e,
		0x04, 0x34, 0xe0, 0x79, 0x26, 0x3c, 0x5d, 0xaf, 0x13, 0xd8, 0xbb, 0x79, 0xe8, 0x1a, 0xef, 0x13,
		0x04, 0x47, 0xe0, 0xe8, 0x17, 0x39, 0x3a, 0xb0, 0x3e, 0x8f, 0x59, 0xc2, 0x2a, 0x2c, 0x28, 0x7a,
		0x11, 0x45, 0x9e, 0xed, 0xdb, 0xde, 0x11, 0x56, 0xf4, 0xc1, 0xd2, 0x0b, 0x59, 0x72, 0xda, 0xd7,
		0x5e, 0x09, 0xf3, 0x7b, 0x50, 0xf4, 0x2c, 0x8a, 0xee, 0x1f, 0xad, 0x07, 0x8a, 0x40, 0xd1, 0xaf,
		0x52, 0x84, 0x2e, 0x1c, 0xa0, 0xea, 0xf5, 0xe8, 0x62, 0x5d, 0xbb, 0xcf, 0xd8, 0x49, 0x2d, 0x01,
		0x56, 0x40, 0x0a, 0x48, 0xcd, 0x14, 0x29, 0xc6, 0x35, 0x91, 0xc0, 0x8a, 0x2c, 0x56, 0x55, 0xd8,
		0x03, 0x00, 0xbc, 0xa8, 0xe2, 0x55, 0x91, 0xbd, 0x01, 0x00, 0x8c, 0x2a, 0x60, 0xd5, 0xd8, 0x33,
		0x00, 0xbe, 0xa8, 0xf2, 0x55, 0x95, 0xbd, 0x04, 0x20, 0x8c, 0x34, 0x61, 0xfc, 0x0b, 0x7a, 0x01,
		0x18, 0x61, 0xc0, 0x9a, 0x70, 0x61, 0x20, 0xec, 0x95, 0x09, 0x83, 0x0b, 0x03, 0x60, 0xaf, 0x05,
		0x18, 0xfb, 0xbd, 0x0a, 0x40, 0x8b, 0x34, 0x5a, 0x4c, 0x6b, 0x1c, 0x40, 0x15, 0x7d, 0xaa, 0x38,
		0xef, 0x6d, 0x00, 0x5f, 0xa4, 0xf9, 0xc2, 0x02, 0x23, 0x90, 0x9a, 0x31, 0x52, 0x3c, 0xf7, 0x42,
		0x00, 0x2a, 0xd2, 0x50, 0xb1, 0xdf, 0x23, 0x01, 0xbe, 0xa8, 0xf2, 0x55, 0x85, 0xbd, 0x13, 0xa0,
		0x8b, 0x32, 0x5d, 0xd5, 0xd8, 0x53, 0x01, 0xc6, 0xc8, 0x32, 0x56, 0x81, 0xbd, 0x16, 0xa0, 0x8b,
		0x2a, 0x5d, 0x55, 0xd8, 0x83, 0x01, 0xba, 0xa8, 0xd2, 0x15, 0xd8, 0x61, 0xcb, 0xde, 0xb3, 0x0e,
		0xdd, 0x20, 0x3c, 0xb0, 0x03, 0xcf, 0xd9, 0x05, 0x5c, 0x80, 0x6b, 0x56, 0x70, 0x1d, 0xb6, 0xcb,
		0x92, 0x41, 0xbb, 0x15, 0xba, 0x3e, 0xca, 0xba, 0x00, 0xd7, 0x0c, 0xe1, 0x1a, 0xeb, 0x7a, 0xbb,
		0x85, 0xc8, 0x08, 0xbe, 0x5e, 0x81, 0xaf, 0xc0, 0x71, 0x9d, 0xff, 0x56, 0x84, 0x2e, 0x9c, 0x1c,
		0x87, 0x51, 0x5c, 0xa5, 0xd1, 0x5b, 0x65, 0x3d, 0x0b, 0x88, 0xa0, 0x5b, 0x01, 0x11, 0xf4, 0x29,
		0x38, 0x02, 0x47, 0x15, 0xd1, 0xa1, 0xa0, 0x68, 0xde, 0x14, 0x79, 0x9d, 0xc3, 0xc0, 0xf6, 0xc2,
		0x5d, 0xab, 0x5b, 0x76, 0x61, 0xf1, 0x42, 0xcb, 0xdd, 0xef, 0x78, 0x4e, 0xf0, 0xf1, 0x00, 0x04,
		0x81, 0xa0, 0x67, 0x11, 0x74, 0xfd, 0x13, 0x10, 0x02, 0x42, 0xcf, 0x40, 0x08, 0xad, 0xa0, 0xc0,
		0x15, 0x82, 0x5c, 0xf5, 0x3c, 0xd5, 0x32, 0x90, 0xc5, 0x39, 0xf8, 0x95, 0x68, 0x21, 0x13, 0x8c,
		0xeb, 0xcc, 0xf8, 0xfa, 0xf2, 0xb8, 0xae, 0xf4, 0xad, 0xa4, 0x6d, 0x21, 0xf1, 0x00, 0x58, 0xb3,
		0xa4, 0x4c, 0x75, 0xa4, 0xe3, 0x54, 0xd6, 0xb6, 0x19, 0x84, 0xbc, 0x9a, 0xea, 0x9f, 0x89, 0xf3,
		0x68, 0x18, 0xe9, 0xb3, 0x3c, 0xb8, 0xd5, 0xd3, 0xa1, 0x90, 0xfd, 0x54, 0x9e, 0xc4, 0xa7, 0xa6,
		0x14, 0xfa, 0x5b, 0x9a, 0x7d, 0x35, 0x63, 0xa9, 0x74, 0x24, 0xfb, 0xa2, 0x7e, 0xf7, 0x05, 0x75,
		0xef, 0x95, 0xfa, 0x30, 0x4b, 0x75, 0xda, 0x4f, 0x13, 0x55, 0x3e, 0xab, 0xc7, 0x2a, 0x56, 0xf5,
		0x44, 0x5c, 0x88, 0x64, 0xf2, 0x50, 0x4f, 0x62, 0xf9, 0xd5, 0x54, 0x3a, 0xd2, 0xc2, 0x1c, 0x44,
		0x3a, 0xea, 0x45, 0x4a, 0xd4, 0x13, 0x35, 0xac, 0xeb, 0xe4, 0x42, 0xe5, 0xdf, 0x8a, 0xb7, 0x98,
		0x52, 0xc4, 0xa7, 0x67, 0xbd, 0x34, 0x33, 0x23, 0xad, 0xb3, 0xb8, 0x37, 0xd2, 0xb9, 0x01, 0xe3,
		0x97, 0x54, 0xf9, 0xac, 0x7e, 0x6d, 0x4b, 0x69, 0x83, 0x1a, 0xf5, 0x8a, 0xff, 0x69, 0xfc, 0x58,
		0x2f, 0xfe, 0x10, 0x83, 0x09, 0x45, 0x4d, 0xe9, 0x6c, 0xd4, 0xd7, 0x72, 0x22, 0x33, 0x3a, 0xe5,
		0x8d, 0x68, 0x8f, 0x2f, 0xb2, 0x33, 0xf9, 0x7c, 0xe1, 0x9d, 0x9f, 0xd5, 0xdd, 0x17, 0xc2, 0xee,
		0xf4, 0x26, 0x94, 0xcf, 0x42, 0x47, 0xc5, 0x2a, 0x74, 0x8b, 0x9b, 0x30, 0x7e, 0x08, 0xdd, 0x58,
		0x7e, 0xf5, 0xf3, 0x4b, 0xd3, 0x9a, 0xdc, 0x82, 0xd0, 0x55, 0xc3, 0x30, 0x48, 0x2e, 0x54, 0xfe,
		0xad, 0x78, 0x43, 0x7b, 0x72, 0x91, 0xad, 0xe9, 0x0d, 0x08, 0xa7, 0xaf, 0xa8, 0xf2, 0x59, 0x78,
		0x6d, 0x46, 0xf9, 0xf7, 0xfd, 0xf1, 0x0d, 0x98, 0x3c, 0x86, 0xc5, 0x5f, 0xa1, 0x2d, 0x8b, 0xe8,
		0xba, 0x3c, 0xc2, 0xee, 0xae, 0x96, 0x8f, 0x5f, 0x71, 0x12, 0x8d, 0x12, 0x6d, 0x9e, 0x0b, 0x9d,
		0xc5, 0x7d, 0xf2, 0x1e, 0xaf, 0x14, 0xf1, 0xf7, 0x4d, 0x27, 0x1e, 0x56, 0x3e, 0xc5, 0x72, 0x50,
		0xdb, 0x36, 0xd6, 0x88, 0x9b, 0xb9, 0x5b, 0x78, 0xac, 0xda, 0xb6, 0xb1, 0x4a, 0xdc, 0xd0, 0x6e,
		0x26, 0x4e, 0xe2, 0x4b, 0x1e, 0x21, 0x7a, 0x0a, 0x6d, 0xda, 0x37, 0xf3, 0xc8, 0xc8, 0x21, 0x96,
		0xf9, 0xe9, 0x28, 0xeb, 0x0b, 0x16, 0x97, 0x77, 0x3c, 0xbc, 0xc4, 0xd5, 0xb7, 0x34, 0xcb, 0x47,
		0x58, 0x6d, 0x38, 0x26, 0x83, 0x47, 0x9e, 0xa5, 0xf6, 0x31, 0x52, 0x56, 0x76, 0x3a, 0x3a, 0x17,
		0x52, 0xd7, 0xb6, 0x0d, 0x9d, 0x8d, 0x04, 0x13, 0xc3, 0x6f, 0x58, 0x5d, 0x82, 0x8d, 0xa9, 0x51,
		0xa5, 0xa7, 0x46, 0xad, 0x38, 0x63, 0x32, 0x27, 0x2a, 0x14, 0x2b, 0x1b, 0xe7, 0x35, 0x8d, 0x0f,
		0x5c, 0x66, 0x3a, 0x8c, 0x04, 0x0d, 0x3b, 0x61, 0xc3, 0x51, 0xe0, 0x30, 0x16, 0x3a, 0x5c, 0x05,
		0x0f, 0x7b, 0xe1, 0xc3, 0x5e, 0x00, 0xf1, 0x16, 0x42, 0x3c, 0x04, 0x11, 0x13, 0x61, 0xc4, 0x4e,
		0x20, 0x95, 0x06, 0x33, 0x49, 0xfb, 0x3c, 0x18, 0x68, 0x58, 0xe4, 0x7e, 0x1e, 0x92, 0x4e, 0xab,
		0xcc, 0xcc, 0xe6, 0x26, 0xa1, 0x38, 0x4b, 0xa9, 0x0a, 0x48, 0x2a, 0xee, 0xd2, 0xaa, 0x32, 0x12,
		0xab, 0x32, 0x52, 0xab, 0x1a, 0x92, 0x8b, 0x97, 0xf4, 0x62, 0x26, 0xc1, 0x4a, 0x44, 0x82, 0xab,
		0xa1, 0xe0, 0xed, 0xf1, 0x47, 0xb1, 0xd4, 0x1b, 0xeb, 0x1c, 0x1d, 0xfe, 0x44, 0xdf, 0x6c, 0x31,
		0x34, 0xdd, 0x8b, 0xe4, 0xa9, 0x60, 0x5b, 0xff, 0xcb, 0xb7, 0x42, 0xb3, 0x76, 0x10, 0x4b, 0xb6,
		0x0a, 0xa1, 0xfc, 0x10, 0x45, 0xf9, 0x38, 0x3f, 0x81, 0x7c, 0xef, 0x73, 0xec, 0x65, 0x51, 0x5f,
		0xc7, 0xa9, 0x6c, 0xc5, 0xa7, 0xb1, 0x56, 0x15, 0xf8, 0x40, 0x6d, 0x71, 0x1a, 0xe9, 0xf8, 0x22,
		0xbf, 0x37, 0x27, 0x51, 0xa2, 0x04, 0xca, 0xc7, 0x17, 0x31, 0xc4, 0xa3, 0xcb, 0xea, 0x0c, 0xf1,
		0xc6, 0xfa, 0x87, 0xc6, 0x87, 0xe6, 0xd6, 0xfa, 0x87, 0x4d, 0x8c, 0x75, 0x8c, 0x75, 0x4c, 0x10,
		0x18, 0x5b, 0x7d, 0x8c, 0x89, 0xd8, 0x2b, 0x0e, 0x47, 0x71, 0xa9, 0xb3, 0xc8, 0x1c, 0x49, 0xa5,
		0xa3, 0x5e, 0xc2, 0x74, 0x4a, 0x96, 0x89, 0x13, 0x91, 0x09, 0xd9, 0xc7, 0xcc, 0x60, 0x81, 0xf3,
		0x61, 0x6f, 0x6f, 0x77, 0x73, 0x63, 0x75, 0x73, 0xdb, 0x70, 0x7c, 0xd3, 0xf1, 0x0d, 0xfb, 0x52,
		0x0b, 0xa9, 0xe2, 0x54, 0x2a, 0xe3, 0x24, 0xcd, 0x8c, 0x20, 0x8b, 0x4e, 0x4e, 0xe2, 0xbe, 0x61,
		0xcb, 0xd3, 0x58, 0x0a, 0x91, 0xc5, 0xf2, 0x74, 0xe5, 0x8b, 0x54, 0xa3, 0x9e, 0x19, 0xb8, 0x47,
		0xc6, 0xda, 0xef, 0xdb, 0x46, 0xfe, 0xb8, 0xbe, 0xfe, 0x7e, 0x7d, 0xe3, 0xfd, 0x5a, 0x63, 0xed,
		0xfd, 0x7a, 0xfe, 0x74, 0x7d, 0x63, 0xa5, 0xc6, 0x58, 0x50, 0x31, 0x4f, 0xac, 0x5e, 0xe7, 0x0b,
		0xae, 0x13, 0xac, 0xd7, 0x23, 0x8d, 0xb9, 0x0a, 0xa9, 0x4a, 0xae, 0xb5, 0xfc, 0x40, 0x37, 0x73,
		0xae, 0xaf, 0x34, 0x14, 0xa1, 0xd4, 0x60, 0x75, 0x95, 0x94, 0x1a, 0xaa, 0x40, 0x96, 0x51, 0xf9,
		0x72, 0xdb, 0x41, 0x58, 0xda, 0x5d, 0xf9, 0x9d, 0x84, 0xf7, 0x36, 0x0d, 0xd5, 0x39, 0x55, 0xdc,
		0x1a, 0x55, 0xde, 0x63, 0x18, 0x88, 0xd6, 0xf8, 0xce, 0x1c, 0x14, 0x37, 0x86, 0xc3, 0x9e, 0x43,
		0x3e, 0xce, 0x13, 0xbb, 0x1e, 0x96, 0x2c, 0x81, 0x51, 0xfb, 0x76, 0x26, 0x24, 0x9b, 0x5c, 0x05,
		0xc3, 0x02, 0xf7, 0x95, 0x95, 0x71, 0xe8, 0xa8, 0xeb, 0xab, 0xa1, 0x30, 0xfe, 0x30, 0xde, 0x4c,
		0xaa, 0x50, 0xcc, 0x44, 0x0d, 0x7a, 0x66, 0xfe, 0xa2, 0xda, 0x7e, 0xb2, 0x7d, 0xf1, 0x1b, 0xd4,
		0xc7, 0xcf, 0x35, 0xb7, 0x50, 0x0c, 0x0a, 0x54, 0xc7, 0x2f, 0x2e, 0x6d, 0x30, 0xa3, 0x51, 0xc3,
		0x67, 0x5a, 0xc5, 0x68, 0x7c, 0xb7, 0x84, 0xea, 0x67, 0xf1, 0x90, 0xdd, 0xac, 0xe5, 0x96, 0x5b,
		0xee, 0xc8, 0xe4, 0xca, 0x88, 0x65, 0x3f, 0x19, 0x0d, 0x84, 0xa1, 0xcf, 0x84, 0x31, 0x91, 0xfb,
		0x86, 0x9e, 0xa4, 0xa4, 0xc4, 0x75, 0x4a, 0xca, 0x18, 0x4f, 0x01, 0xbe, 0xe4, 0x02, 0x5a, 0x47,
		0xb1, 0x14, 0x99, 0x91, 0x3b, 0x88, 0xe2, 0x6d, 0xd3, 0x5c, 0x55, 0xc1, 0x69, 0xac, 0x8c, 0xb5,
		0xdf, 0xb9, 0xe5, 0x89, 0x39, 0xe7, 0x86, 0x6f, 0xfa, 0xec, 0xc1, 0x0d, 0x2c, 0x19, 0x96, 0x93,
		0x55, 0x21, 0x0b, 0x7c, 0xcb, 0x85, 0xbf, 0xe6, 0x08, 0x43, 0x72, 0x6f, 0x99, 0x93, 0x7b, 0xe4,
		0xad, 0x3c, 0xc6, 0x2c, 0xfa, 0x25, 0x4e, 0x04, 0x6d, 0xd5, 0x88, 0x27, 0x43, 0xd1, 0x62, 0x8d,
		0x4c, 0xfa, 0x13, 0xcd, 0xd6, 0x2a, 0xe7, 0x04, 0x6b, 0x9a, 0xc3, 0x86, 0x94, 0xeb, 0xfe, 0x6a,
		0xb9, 0xb5, 0x3c, 0x5a, 0xaa, 0xad, 0xa2, 0xa5, 0xda, 0x6c, 0x0c, 0x45, 0x4b, 0x35, 0xcc, 0xc8,
		0x7f, 0x3c, 0x0b, 0x47, 0x4b, 0xb5, 0xb9, 0x4f, 0xb4, 0xd1, 0x52, 0x6d, 0x29, 0xa6, 0x45, 0x6c,
		0xb6, 0xa9, 0x96, 0x1e, 0x37, 0x11, 0xd1, 0x49, 0x26, 0x4e, 0x38, 0x78, 0xdc, 0x69, 0x8b, 0x32,
		0x06, 0x1b, 0x51, 0x6b, 0xdd, 0xc9, 0x4c, 0xf3, 0xd6, 0x1a, 0x09, 0xe6, 0x01, 0xd5, 0x9b, 0x07,
		0x8c, 0xf2, 0x29, 0xab, 0xd2, 0x59, 0x14, 0x4b, 0x31, 0x30, 0x13, 0x35, 0xe4, 0x33, 0x29, 0xb8,
		0x6f, 0x3a, 0x9a, 0x2e, 0x63, 0x86, 0x80, 0x19, 0x02, 0x66, 0x08, 0x98, 0x21, 0x60, 0x86, 0x80,
		0x19, 0xc2, 0xab, 0xdc, 0x72, 0x34, 0x5d, 0x7e, 0xdd, 0xf8, 0x80, 0xa6, 0xcb, 0x10, 0x36, 0x1c,
		0x05, 0x0e, 0x63, 0xa1, 0xc3, 0x55, 0xf0, 0xb0, 0x17, 0x3e, 0xec, 0x05, 0x10, 0x6f, 0x21, 0xc4,
		0x43, 0x10, 0x31, 0x11, 0x46, 0xec, 0x04, 0x52, 0x69, 0x70, 0x3f, 0x1d, 0x15, 0xe0, 0x32, 0x2d,
		0xb2, 0x1d, 0x9b, 0x8f, 0x96, 0xcb, 0x10, 0x50, 0xd5, 0x12, 0x52, 0x15, 0x10, 0x54, 0xdc, 0x85,
		0x55, 0x65, 0x04, 0x56, 0x65, 0x84, 0x56, 0x35, 0x04, 0x17, 0x2f, 0xe1, 0xc5, 0x4c, 0x80, 0x95,
		0x88, 0x54, 0xa3, 0xe5, 0xf2, 0x5a, 0x93, 0x71, 0xcb, 0xe5, 0x26, 0x5a, 0x2e, 0xcf, 0xf9, 0x0b,
		0x2d, 0x97, 0x17, 0xfb, 0x21, 0xd0, 0x72, 0x99, 0xaa, 0x4f, 0x45, 0xcb, 0x65, 0x02, 0x43, 0xbc,
		0x4a, 0x2d, 0x97, 0x9b, 0x9b, 0x9b, 0x1b, 0xe8, 0xb6, 0x8c, 0x61, 0x8e, 0xb9, 0x01, 0x67, 0xab,
		0xd1, 0x6d, 0xf9, 0x35, 0x87, 0x23, 0xba, 0x2d, 0x63, 0x52, 0x30, 0x93, 0xa9, 0x70, 0xd1, 0xe2,
		0x75, 0x63, 0x75, 0xdb, 0xb0, 0x0c, 0x37, 0x96, 0x5f, 0xcd, 0x7c, 0x72, 0x7f, 0xbd, 0x6b, 0x3f,
		0x35, 0x76, 0x53, 0x79, 0x21, 0xae, 0x8a, 0xbd, 0xfc, 0xed, 0xd1, 0x79, 0x4f, 0x64, 0x46, 0x7a,
		0xf2, 0x45, 0xfe, 0xa0, 0xf5, 0xab, 0xe1, 0x46, 0x3d, 0x91, 0x18, 0xfe, 0xb7, 0x58, 0xf7, 0xcf,
		0xc4, 0xc0, 0xe8, 0x46, 0xfa, 0x4c, 0x19, 0x7e, 0x7c, 0x2a, 0xa3, 0x24, 0x11, 0x83, 0x2f, 0xf2,
		0x5b, 0xac, 0xcf, 0x8c, 0xff, 0x8a, 0x2c, 0x35, 0x3c, 0xa1, 0x44, 0x76, 0x21, 0x06, 0xc6, 0x4e,
		0x24, 0x07, 0xdf, 0xe2, 0x81, 0x3e, 0x33, 0xa2, 0x7e, 0x96, 0x2a, 0x65, 0x44, 0x85, 0x11, 0x2b,
		0x53, 0x03, 0xbe, 0xc8, 0xf5, 0x8d, 0x07, 0xba, 0xc8, 0xa2, 0x9f, 0x33, 0x81, 0x64, 0x04, 0xfa,
		0x39, 0xd3, 0xff, 0x40, 0xf7, 0xfa, 0x39, 0x73, 0x1c, 0xec, 0x50, 0x9b, 0xb0, 0xba, 0x4a, 0x6a,
		0x13, 0xad, 0xcd, 0x5e, 0xc1, 0xd3, 0x69, 0x8e, 0xeb, 0x12, 0x9c, 0x76, 0xe2, 0xdf, 0x17, 0x00,
		0xa8, 0xb6, 0x98, 0xab, 0xe1, 0xa8, 0xb6, 0x80, 0x6e, 0x9f, 0x8d, 0x5e, 0x47, 0xb5, 0x05, 0x39,
		0x71, 0x8e, 0x6a, 0x0b, 0x28, 0x9a, 0x1f, 0x20, 0xc2, 0xbf, 0xda, 0x22, 0x1e, 0x08, 0xa9, 0x63,
		0x7d, 0xc5, 0xa3, 0x9b, 0xc0, 0x43, 0x22, 0x67, 0x8d, 0xe1, 0x92, 0x54, 0xcd, 0x99, 0x5c, 0xfa,
		0x9d, 0x48, 0x31, 0x8e, 0x5b, 0x53, 0x90, 0x1c, 0xdf, 0xf1, 0x43, 0xff, 0x70, 0x27, 0x70, 0x8f,
		0xc2, 0xe0, 0xcf, 0xae, 0xcd, 0x35, 0x7c, 0x15, 0x0b, 0x9d, 0x8a, 0x6d, 0xd6, 0xdb, 0x60, 0x9d,
		0xf9, 0xbe, 0x4d, 0x54, 0xf7, 0x76, 0x17, 0x72, 0xa7, 0x7b, 0xd4, 0x08, 0xbd, 0xce, 0x61, 0x60,
		0x7b, 0xa1, 0xd3, 0xaa, 0xa1, 0x96, 0x01, 0x64, 0xcd, 0x8e, 0xac, 0x26, 0xc8, 0x02, 0x59, 0xb3,
		0x27, 0xab, 0xeb, 0xd9, 0x7b, 0xce, 0xe7, 0x70, 0xcf, 0xb5, 0xf6, 0x7d, 0x70, 0x05, 0xae, 0x66,
		0xcc, 0x95, 0x0f, 0x6f, 0x05, 0xaa, 0x66, 0x47, 0xd5, 0x58, 0xbe, 0xfb, 0x9c, 0xf5, 0x7b, 0x95,
		0x74, 0x7c, 0x35, 0x68, 0x5b, 0x1a, 0x5d, 0x5f, 0x01, 0xbf, 0xb6, 0x3c, 0xc4, 0x35, 0x41, 0x1c,
		0x88, 0xc3, 0x3c, 0x00, 0xbc, 0x19, 0x98, 0x1f, 0x80, 0x36, 0xd0, 0xf6, 0x22, 0xda, 0x02, 0x6b,
		0x1f, 0x98, 0x01, 0xb3, 0x39, 0x60, 0xd6, 0x6c, 0x54, 0x00, 0x34, 0xd6, 0x9f, 0xe0, 0x18, 0xf9,
		0x26, 0x0c, 0x6c, 0xc4, 0x0d, 0xe0, 0x84, 0xf8, 0x00, 0xa0, 0xaa, 0x06, 0xd4, 0x9d, 0x73, 0xcf,
		0xad, 0xd6, 0xbf, 0x43, 0xd7, 0x6a, 0x63, 0x99, 0x05, 0x58, 0xcd, 0x1a, 0x2b, 0x20, 0x05, 0xa4,
		0x66, 0x8a, 0xd4, 0x81, 0xd3, 0x0e, 0xf7, 0xbd, 0xce, 0x61, 0x17, 0x58, 0x01, 0xab, 0x99, 0x61,
		0x75, 0x64, 0x39, 0xae, 0xb5, 0xe3, 0xda, 0xe1, 0x8e, 0xd5, 0x6e, 0xfd, 0xc7, 0x69, 0x05, 0x1f,
		0x81, 0x17, 0xf0, 0x9a, 0x15, 0x5e, 0x25, 0x54, 0xe1, 0x6e, 0xa7, 0xed, 0x07, 0x9e, 0xe5, 0xb4,
		0x03, 0x94, 0x49, 0x01, 0xb0, 0x99, 0x01, 0x66, 0x7f, 0x0e, 0xec, 0x76, 0xcb, 0x6e, 0x21, 0x3e,
		0x82, 0xaf, 0xd7, 0xe0, 0xab, 0x28, 0x5d, 0x71, 0xda, 0x81, 0xed, 0xed, 0x59, 0xbb, 0x76, 0x68,
		0xb5, 0x5a, 0x9e, 0xed, 0xc3, 0x83, 0x81, 0xb0, 0xd9, 0x12, 0xd6, 0xb6, 0x9d, 0xfd, 0x8f, 0x3b,
		0x1d, 0x0f, 0x80, 0x01, 0xb0, 0x57, 0x00, 0xac, 0x09, 0x17, 0x06, 0xc2, 0x5e, 0x99, 0x30, 0xb8,
		0x30, 0x00, 0xf6, 0x5a, 0x80, 0xb9, 0x4e, 0xfb, 0x53, 0x68, 0x05, 0x81, 0xe7, 0xec, 0x1c, 0x06,
		0x36, 0xd0, 0x02, 0x5a, 0xb3, 0x45, 0xab, 0x65, 0xbb, 0xd6, 0x9f, 0xa0, 0x0a, 0x54, 0xcd, 0x9e,
		0xaa, 0xf0, 0xc8, 0xf2, 0x1c, 0x2b, 0x70, 0x3a, 0x6d, 0xf0, 0x05, 0xbe, 0x66, 0xca, 0x17, 0x16,
		0x18, 0x81, 0xd4, 0x8c, 0x91, 0x72, 0x3b, 0x10, 0xee, 0x80, 0x6a, 0xc6, 0x50, 0x75, 0xbd, 0x4e,
		0x60, 0xef, 0xe6, 0x21, 0x70, 0xbc, 0xef, 0x14, 0x7c, 0x81, 0xaf, 0x19, 0xf1, 0x75, 0x60, 0x7d,
		0x1e, 0x33, 0x86, 0xd5, 0x6b, 0xd0, 0xf5, 0x2a, 0x74, 0x79, 0xb6, 0x6f, 0x7b, 0x47, 0xa8, 0x90,
		0x00, 0x63, 0xaf, 0xc4, 0x98, 0xd3, 0xbe, 0xf6, 0x62, 0xc8, 0x43, 0x80, 0xae, 0x99, 0xd2, 0xe5,
		0xd9, 0xbe, 0xd3, 0x3a, 0xb4, 0x5c, 0xf8, 0x2e, 0xd0, 0x35, 0x7b, 0xba, 0xd0, 0x4d, 0x06, 0xb4,
		0xcd, 0x9f, 0xba, 0x4a, 0xec, 0xd9, 0xa8, 0x80, 0x53, 0x5b, 0x22, 0xdc, 0x80, 0x1a, 0x50, 0x9b,
		0x0b, 0x6a, 0x15, 0xa8, 0x61, 0x05, 0x6e, 0x6c, 0x70, 0xab, 0xd2, 0xde, 0x0f, 0x60, 0xc7, 0x05,
		0xbb, 0x8a, 0xed, 0x09, 0x01, 0x78, 0x5c, 0xc0, 0xab, 0xd6, 0x5e, 0x11, 0x70, 0xc7, 0x85, 0xbb,
		0xaa, 0xed, 0x21, 0x01, 0x79, 0xac, 0xc8, 0xab, 0x4e, 0x61, 0x36, 0xc0, 0x63, 0x04, 0x5e, 0x13,
		0x2e, 0x0f, 0xe4, 0x2d, 0x88, 0x3c, 0xb8, 0x3c, 0x80, 0x37, 0x6f, 0xf0, 0x2a, 0xb3, 0x47, 0x05,
		0xc8, 0xb1, 0x42, 0x8e, 0x79, 0xcd, 0x08, 0x68, 0xe3, 0x47, 0x5b, 0x15, 0xf6, 0xb4, 0x80, 0x3b,
		0x56, 0xdc, 0x61, 0x01, 0x16, 0xa8, 0xcd, 0x09, 0x35, 0xde, 0x7b, 0x60, 0x00, 0x1b, 0x2b, 0xd8,
		0x2a, 0xb3, 0x37, 0x06, 0xdc, 0x71, 0xe1, 0xae, 0x4a, 0x7b, 0x66, 0x40, 0x1d, 0x27, 0xea, 0xaa,
		0xb5, 0x97, 0x06, 0xec, 0xb1, 0x61, 0xaf, 0x42, 0x7b, 0x6c, 0x40, 0x1d, 0x17, 0xea, 0xaa, 0xb4,
		0xf7, 0x06, 0xd4, 0x71, 0xa1, 0x2e, 0xb0, 0xc3, 0x96, 0xbd, 0x67, 0x1d, 0xba, 0x41, 0x78, 0x60,
		0x07, 0x9e, 0xb3, 0x0b, 0xe8, 0x00, 0xdd, 0x6b, 0x43, 0x77, 0xd8, 0x2e, 0x4b, 0x39, 0xed, 0x56,
		0xe8, 0xfa, 0x28, 0xab, 0x03, 0x74, 0x73, 0x80, 0x6e, 0x3c, 0x9f, 0xb0, 0x5b, 0x88, 0xb0, 0xe0,
		0x6e, 0x8e, 0xdc, 0x05, 0x8e, 0xeb, 0xfc, 0xb7, 0x62, 0xd4, 0xe1, 0xc4, 0x4a, 0x8c, 0xf6, 0x65,
		0x1a, 0xe5, 0xcb, 0xa0, 0x9f, 0x01, 0x17, 0x74, 0x32, 0xe0, 0x5a, 0x22, 0xb8, 0xaa, 0xa4, 0x87,
		0xc1, 0x17, 0x74, 0x2f, 0xe8, 0xaa, 0x2e, 0x5d, 0x5e, 0xe7, 0x30, 0xb0, 0xbd, 0x70, 0xd7, 0xea,
		0x96, 0xdd, 0x84, 0xbc, 0xd0, 0x72, 0xf7, 0x3b, 0x9e, 0x13, 0x7c, 0x3c, 0x00, 0x59, 0x20, 0x6b,
		0xa6, 0x64, 0x5d, 0xff, 0x04, 0xb4, 0x80, 0xd6, 0x0c, 0xd1, 0x42, 0x0b, 0x34, 0xf0, 0x86, 0x60,
		0xb9, 0xbc, 0x9e, 0x6d, 0x99, 0x88, 0xab, 0x42, 0x10, 0x2d, 0x91, 0x43, 0xc6, 0x1b, 0xd7, 0xbd,
		0xc2, 0xd7, 0x9b, 0xd7, 0x75, 0xe6, 0x63, 0x2d, 0x0f, 0x4b, 0x99, 0x04, 0xd4, 0x9a, 0x25, 0x65,
		0xaa, 0x23, 0x1d, 0xa7, 0xb2, 0xb6, 0xcd, 0x28, 0x84, 0xd6, 0x54, 0xff, 0x4c, 0x9c, 0x47, 0xc3,
		0x48, 0x9f, 0xe5, 0xc1, 0xb2, 0x9e, 0x0e, 0x85, 0xec, 0xa7, 0xf2, 0x24, 0x3e, 0x35, 0xa5, 0xd0,
		0xdf, 0xd2, 0xec, 0xab, 0x19, 0x4b, 0xa5, 0x23, 0xd9, 0x17, 0xf5, 0xbb, 0x2f, 0xa8, 0x7b, 0xaf,
		0xd4, 0x87, 0x59, 0xaa, 0xd3, 0x7e, 0x9a, 0xa8, 0xf2, 0x59, 0x3d, 0x56, 0xb1, 0xaa, 0x27, 0xe2,
		0x42, 0x24, 0x93, 0x87, 0x7a, 0x12, 0xcb, 0xaf, 0xa6, 0xd2, 0x91, 0x16, 0xe6, 0x20, 0xd2, 0x51,
		0x2f, 0x52, 0xa2, 0x9e, 0xa8, 0x61, 0x5d, 0x27, 0x17, 0x2a, 0xff, 0x56, 0xbc, 0xc5, 0x94, 0x22,
		0x3e, 0x3d, 0xeb, 0xa5, 0x99, 0x19, 0x69, 0x9d, 0xc5, 0xbd, 0x91, 0xce, 0x0d, 0x18, 0xbf, 0xa4,
		0xca, 0x67, 0xf5, 0x6b, 0x5b, 0x4a, 0x1b, 0xd4, 0xa8, 0x57, 0xfc, 0x4f, 0xe3, 0xc7, 0xfa, 0x28,
		0xff, 0x3c, 0x4a, 0x67, 0x51, 0x2c, 0xc5, 0xc0, 0xcc, 0xff, 0x4e, 0xf1, 0xa7, 0x19, 0x4d, 0x71,
		0x6a, 0x4a, 0x67, 0xa3, 0xbe, 0x96, 0x13, 0x41, 0xd3, 0x29, 0x6f, 0x51, 0x7b, 0x7c, 0xf9, 0x9d,
		0xc9, 0x27, 0x0f, 0xef, 0xfc, 0xac, 0xee, 0xbe, 0x10, 0x76, 0xa7, 0xb7, 0xa7, 0x7c, 0x16, 0x3a,
		0x2a, 0x56, 0xa1, 0x5b, 0xdc, 0x9e, 0xf1, 0x43, 0xe8, 0xc6, 0xf2, 0xab, 0x9f, 0x5f, 0xa2, 0xd6,
		0xe4, 0xe6, 0x84, 0xae, 0x1a, 0x86, 0x41, 0x72, 0xa1, 0xf2, 0x6f, 0xc5, 0x1b, 0xda, 0x93, 0xcb,
		0x6f, 0x4d, 0x6f, 0x4d, 0x38, 0x7d, 0x45, 0x95, 0xcf, 0xc2, 0x6b, 0x33, 0xca, 0xbf, 0xef, 0x8f,
		0x6f, 0xcd, 0xe4, 0x31, 0x3c, 0xbc, 0x79, 0x6b, 0xf2, 0x3f, 0x52, 0xfc, 0x59, 0x1e, 0x8a, 0x8c,
		0xbe, 0xf7, 0xa4, 0x6d, 0x21, 0x71, 0xbf, 0x5e, 0x13, 0x97, 0x3a, 0x8b, 0xcc, 0x51, 0x4e, 0x6e,
		0x2f, 0x11, 0x2c, 0x7c, 0x7a, 0xed, 0xdb, 0x99, 0x90, 0x6c, 0x92, 0x1e, 0x8c, 0x62, 0xe4, 0x74,
		0x2a, 0xb9, 0xb2, 0x32, 0x8e, 0x1d, 0x75, 0x7d, 0x35, 0x14, 0xc6, 0x1f, 0xc6, 0x9b, 0xb4, 0x6f,
		0x16, 0xb1, 0x2a, 0x51, 0x83, 0x9e, 0x99, 0xbf, 0xa8, 0xb6, 0x9f, 0x5c, 0x28, 0x7f, 0xc3, 0x29,
		0xf2, 0xf8, 0xe9, 0x28, 0xeb, 0x0b, 0x56, 0x8a, 0xa6, 0xb0, 0xfb, 0x93, 0xb8, 0xfa, 0x96, 0x66,
		0x83, 0xfc, 0xa6, 0x15, 0x83, 0x82, 0x57, 0x56, 0xa6, 0xf6, 0x31, 0x52, 0x56, 0x76, 0x3a, 0x3a,
		0x17, 0x52, 0xd7, 0xb6, 0x0d, 0x9d, 0x8d, 0x04, 0xb3, 0x0f, 0x70, 0xc3, 0xfa, 0x59, 0x8d, 0x1a,
		0x3e, 0xf3, 0x2a, 0x46, 0xe3, 0xbb, 0x25, 0x54, 0x3f, 0x8b, 0x87, 0xec, 0xa6, 0x2d, 0xb7, 0xdc,
		0x72, 0x47, 0x26, 0x57, 0x46, 0x2c, 0xfb, 0xc9, 0x68, 0x20, 0x0c, 0x7d, 0x26, 0x8c, 0x5b, 0x92,
		0xdf, 0x70, 0xfd, 0xae, 0xd1, 0x4f, 0xa5, 0xce, 0x7f, 0xca, 0x8c, 0xdc, 0x1d, 0xe4, 0xbf, 0xf4,
		0x45, 0xaa, 0x51, 0xcf, 0x0c, 0xdc, 0x23, 0x23, 0x56, 0x46, 0x41, 0xe6, 0xfa, 0xc6, 0x0a, 0x37,
		0x3f, 0xc1, 0xd4, 0x3d, 0xdf, 0x75, 0xd1, 0x83, 0x1b, 0x14, 0xf2, 0xcb, 0x9f, 0xb3, 0xf7, 0xd6,
		0xf7, 0x3c, 0xf6, 0x0c, 0x07, 0x14, 0x72, 0x77, 0xcb, 0x9c, 0xbb, 0x23, 0x6f, 0xe5, 0x31, 0xe6,
		0xc8, 0x2f, 0xf1, 0x19, 0xbc, 0x72, 0x9e, 0x4b, 0x98, 0xeb, 0x64, 0x10, 0x4e, 0x97, 0x26, 0xbb,
		0x49, 0x3b, 0x16, 0xd2, 0xf5, 0xd5, 0x84, 0xbd, 0x60, 0x6d, 0x24, 0x33, 0xa1, 0x44, 0x76, 0x21,
		0x06, 0x66, 0x2f, 0x92, 0x83, 0x6f, 0xf1, 0xa0, 0xf0, 0x2d, 0xb4, 0x7d, 0x61, 0x39, 0x71, 0xfa,
		0xa1, 0xf5, 0xc4, 0x63, 0xce, 0xa7, 0x58, 0xe6, 0x73, 0x86, 0x35, 0xe2, 0x66, 0xee, 0x16, 0x2e,
		0xac, 0xb6, 0x6d, 0xac, 0x12, 0x37, 0xb4, 0x9b, 0x89, 0x93, 0xf8, 0x92, 0x47, 0xfc, 0x9e, 0x72,
		0x3b, 0x49, 0x20, 0x71, 0x08, 0x6e, 0xcc, 0x66, 0xe8, 0x37, 0x67, 0xe5, 0xc3, 0x31, 0x19, 0x4c,
		0xd6, 0xdf, 0xb9, 0x4e, 0xc2, 0x6f, 0x4d, 0xbc, 0xa7, 0x60, 0x63, 0x6d, 0xb1, 0xd2, 0xf3, 0xa6,
		0x56, 0x9c, 0x31, 0x99, 0x30, 0x09, 0x3d, 0x1a, 0x9a, 0xc3, 0x2c, 0x4e, 0xb3, 0x58, 0x5f, 0xf1,
		0xf1, 0x62, 0xd3, 0x40, 0x71, 0xc7, 0x7e, 0x26, 0x1e, 0x81, 0x87, 0xc4, 0x61, 0x27, 0x75, 0x38,
		0x4a, 0x1e, 0xc6, 0xd2, 0x87, 0xab, 0x04, 0x62, 0x2f, 0x85, 0xd8, 0x4b, 0x22, 0xde, 0xd2, 0x88,
		0x87, 0x44, 0x62, 0x22, 0x95, 0xd8, 0x49, 0xa6, 0xd2, 0x60, 0x76, 0xa2, 0xe9, 0x5e, 0xa8, 0x61,
		0x26, 0x9b, 0xee, 0xca, 0xa7, 0x55, 0x66, 0x66, 0x73, 0x93, 0x51, 0x9c, 0xe5, 0x54, 0x05, 0x64,
		0x15, 0x77, 0x79, 0x55, 0x19, 0x99, 0x55, 0x19, 0xb9, 0x55, 0x0d, 0xd9, 0xc5, 0x4b, 0x7e, 0x31,
		0x93, 0x61, 0x25, 0x22, 0xc1, 0xd5, 0x50, 0xf0, 0xf6, 0xf8, 0x89, 0x88, 0x4e, 0x32, 0x71, 0xc2,
		0xd1, 0xe3, 0x4f, 0xf3, 0x43, 0x5b, 0x0c, 0x6d, 0xef, 0x4e, 0x8a, 0x2f, 0xca, 0xa2, 0xe0, 0x52,
		0x65, 0xa2, 0x52, 0x6c, 0xd9, 0x3d, 0x4b, 0x6d, 0xbc, 0x31, 0x8f, 0xed, 0x84, 0x89, 0xdb, 0xbe,
		0x42, 0x83, 0x5f, 0xb2, 0x19, 0xb3, 0x25, 0xcc, 0x96, 0x30, 0x5b, 0xc2, 0x6c, 0x09, 0xb3, 0x25,
		0xcc, 0x96, 0xf8, 0x20, 0xc2, 0x2d, 0x79, 0x5d, 0x1a, 0xce, 0xa7, 0xa6, 0xf1, 0xc9, 0x98, 0xc5,
		0xa5, 0xc0, 0xf1, 0x29, 0xa1, 0xb6, 0xca, 0xd4, 0x7c, 0xae, 0x82, 0xad, 0x0a, 0xc2, 0xad, 0x42,
		0x02, 0xae, 0x2a, 0x42, 0xae, 0x72, 0x82, 0xae, 0x72, 0xc2, 0xae, 0x5a, 0x02, 0x8f, 0xa7, 0xd0,
		0x63, 0x2a, 0xf8, 0x4a, 0x74, 0xd8, 0xa6, 0xc9, 0xef, 0x45, 0x8c, 0x58, 0x08, 0x71, 0x92, 0xa4,
		0x91, 0xde, 0x58, 0xe7, 0x1c, 0x35, 0x26, 0x22, 0xea, 0x03, 0xe3, 0x8f, 0xe0, 0x0a, 0x79, 0x5a,
		0x08, 0x72, 0xde, 0xbd, 0x8d, 0xf9, 0x77, 0x99, 0xad, 0x1d, 0xc4, 0x92, 0xbd, 0xfe, 0x28, 0x3f,
		0x4c, 0xd1, 0x32, 0xbb, 0xb6, 0x6d, 0x34, 0xde, 0x57, 0xe3, 0xf3, 0xec, 0x65, 0x51, 0x5f, 0xc7,
		0xa9, 0x6c, 0xc5, 0xa7, 0xb1, 0x56, 0x7c, 0xe7, 0x1d, 0xf7, 0x3d, 0xb2, 0x38, 0x8d, 0x74, 0x7c,
		0x91, 0xdf, 0xab, 0x93, 0x28, 0x51, 0x02, 0x2d, 0xb3, 0x29, 0xb8, 0x82, 0xe8, 0x12, 0xae, 0x00,
		0xae, 0x00, 0xae, 0x60, 0x19, 0x67, 0x27, 0xfc, 0xad, 0xe7, 0xd9, 0x84, 0x9d, 0xdf, 0xf5, 0x66,
		0x18, 0xea, 0xf8, 0x16, 0xb2, 0xdf, 0x9b, 0xc3, 0x32, 0x2d, 0x68, 0xbf, 0x3b, 0x79, 0xc5, 0x0a,
		0xc0, 0x82, 0x3e, 0x00, 0x56, 0x00, 0x48, 0x7d, 0x14, 0xac, 0x00, 0x10, 0xfd, 0x40, 0x58, 0x01,
		0x80, 0x6a, 0x82, 0x72, 0x1a, 0xa3, 0x53, 0x9d, 0x15, 0x80, 0x51, 0x2c, 0xf5, 0xef, 0x15, 0xc8,
		0xfd, 0x6f, 0x32, 0xfe, 0x08, 0x5e, 0x24, 0x4f, 0x05, 0x52, 0xff, 0x8b, 0xbf, 0x11, 0x95, 0x4c,
		0xfd, 0xaf, 0x22, 0xdf, 0x47, 0xdc, 0x15, 0x23, 0xf5, 0x4f, 0xd0, 0x15, 0x54, 0x31, 0xf5, 0xbf,
		0x05, 0x57, 0x00, 0x57, 0x80, 0x69, 0xc9, 0x12, 0x58, 0x8f, 0xd4, 0x3f, 0x2c, 0x66, 0x1f, 0x98,
		0xb9, 0x9e, 0xbe, 0x59, 0xda, 0xbf, 0x04, 0x9d, 0xe9, 0xef, 0xb7, 0x9a, 0xae, 0xdf, 0x6e, 0xcf,
		0x58, 0xe7, 0xb8, 0x7f, 0xd6, 0xa8, 0x76, 0x07, 0xfb, 0xe9, 0x4d, 0xdb, 0x99, 0xde, 0xb3, 0xd0,
		0xcf, 0xef, 0x59, 0x77, 0x72, 0xcb, 0x38, 0x1d, 0xd8, 0xc9, 0xcf, 0x11, 0xa3, 0x83, 0xdc, 0x2c,
		0x07, 0xe9, 0x27, 0x71, 0xc5, 0x70, 0x11, 0xb8, 0xe6, 0xc6, 0x4a, 0xe7, 0xc3, 0x98, 0x57, 0xf7,
		0xbb, 0x83, 0x58, 0xda, 0x89, 0x38, 0x17, 0x92, 0xdb, 0xa4, 0x2b, 0x9f, 0xce, 0xdf, 0xb0, 0x7c,
		0xed, 0xf7, 0x46, 0xa3, 0xb9, 0xd5, 0x68, 0xac, 0x6e, 0x6d, 0x6c, 0xad, 0x7e, 0xd8, 0xdc, 0x5c,
		0x6b, 0xae, 0x31, 0xca, 0x1f, 0xd7, 0x3a, 0xd9, 0x40, 0x64, 0x62, 0xb0, 0x93, 0x93, 0x2f, 0x47,
		0x49, 0xc2, 0xd1, 0xf4, 0x43, 0x25, 0x32, 0x56, 0xb3, 0x5c, 0x9c, 0x58, 0x0f, 0xad, 0xfc, 0xda,
		0x5a, 0x19, 0xa7, 0xd7, 0x33, 0x50, 0xc7, 0x38, 0xc8, 0x7e, 0x19, 0x2c, 0xc4, 0x41, 0xf6, 0xb3,
		0xb7, 0x39, 0x13, 0x27, 0x22, 0x13, 0xb2, 0x2f, 0x70, 0x9a, 0xfd, 0xec, 0x2f, 0xee, 0xb4, 0xa0,
		0xc3, 0xdb, 0xdb, 0xdd, 0xdc, 0x58, 0xdd, 0xdc, 0x36, 0x1c, 0xdf, 0x74, 0x7c, 0xc3, 0xbe, 0xd4,
		0x42, 0xaa, 0x38, 0x95, 0xca, 0x38, 0x49, 0x33, 0x23, 0xc8, 0xa2, 0x93, 0x93, 0xb8, 0x6f, 0xd8,
		0xf2, 0x34, 0x96, 0x42, 0x64, 0xb1, 0x3c, 0x5d, 0x31, 0xd4, 0xa8, 0x67, 0x7e, 0x91, 0x81, 0x7b,
		0x64, 0xac, 0xad, 0x6d, 0x1b, 0xf9, 0xe3, 0xfa, 0xfa, 0xfb, 0xf5, 0x8d, 0xf7, 0x6b, 0x8d, 0xb5,
		0xf7, 0xeb, 0xf9, 0xd3, 0xf5, 0x0d, 0x9c, 0x4c, 0x30, 0x97, 0xa9, 0xec, 0xb4, 0x62, 0xf0, 0x7a,
		0xa4, 0xe0, 0x70, 0x82, 0x39, 0xcb, 0xe7, 0x1b, 0x45, 0x81, 0xaf, 0x34, 0x94, 0x90, 0xa9, 0x5a,
		0x32, 0x2b, 0x8f, 0x19, 0x9c, 0x68, 0xf7, 0xed, 0x4c, 0x48, 0x84, 0xe5, 0xd7, 0x0b, 0xcb, 0x65,
		0x67, 0xdc, 0xe2, 0x0c, 0xf5, 0x3f, 0x8c, 0x37, 0x93, 0x8a, 0x63, 0x33, 0x51, 0x83, 0x9e, 0x99,
		0xbf, 0xa8, 0xb6, 0x1d, 0x3f, 0xf4, 0x6c, 0x6b, 0xf7, 0xa3, 0xb5, 0xe3, 0xb8, 0x4e, 0xf0, 0x67,
		0x78, 0xd8, 0xf6, 0x6c, 0xdf, 0xf6, 0x8e, 0xec, 0x56, 0xb8, 0x63, 0xb5, 0x5b, 0xff, 0x71, 0x5a,
		0xc1, 0xc7, 0x37, 0x88, 0xc4, 0x73, 0x8d, 0xc4, 0xc5, 0xb8, 0x40, 0x10, 0x5e, 0x5c, 0x10, 0x9e,
		0xdd, 0xc0, 0x41, 0x73, 0xe7, 0x57, 0xb8, 0x55, 0x2d, 0xa1, 0xfa, 0x59, 0x3c, 0x64, 0xb9, 0x46,
		0x5f, 0x3a, 0xe7, 0x8e, 0x4c, 0xae, 0x8c, 0x58, 0xf6, 0x93, 0xd1, 0x40, 0x18, 0xfa, 0x4c, 0x18,
		0xd7, 0xb9, 0x3a, 0xa3, 0xcc, 0xd5, 0x19, 0xfd, 0x54, 0xea, 0x28, 0x96, 0x22, 0x33, 0x72, 0xa7,
		0xf0, 0x45, 0xe6, 0xbf, 0x98, 0xeb, 0xbd, 0x5c, 0xe5, 0x15, 0x70, 0xc6, 0xca, 0x58, 0x5b, 0x5b,
		0xe1, 0xe6, 0x2d, 0x18, 0x6f, 0xb8, 0xba, 0xe9, 0xa8, 0x07, 0x37, 0x40, 0x64, 0x58, 0x6c, 0x50,
		0x85, 0xdd, 0x55, 0xb7, 0xfc, 0xf6, 0x6c, 0xc7, 0x14, 0x6a, 0x11, 0x30, 0xc3, 0xa3, 0x3c, 0xc3,
		0x43, 0x2e, 0xfb, 0x25, 0x6e, 0x83, 0xd7, 0x92, 0xe5, 0x72, 0x2e, 0x55, 0x72, 0x38, 0x96, 0x7f,
		0x89, 0xd6, 0x24, 0x69, 0x47, 0x44, 0xba, 0x1e, 0x9b, 0xb0, 0x2f, 0xac, 0x8d, 0x74, 0x9c, 0xc4,
		0xff, 0x77, 0x6b, 0xd0, 0x51, 0xf7, 0x87, 0xd7, 0xfb, 0x88, 0xef, 0xdb, 0x4e, 0x3c, 0xea, 0xf0,
		0x38, 0x22, 0x87, 0x4d, 0x7f, 0x15, 0x4e, 0x7d, 0x54, 0x18, 0xf6, 0x4b, 0xe1, 0x36, 0x4d, 0x67,
		0xdb, 0xff, 0x84, 0xed, 0x4c, 0x9c, 0x67, 0x3f, 0x13, 0x54, 0x01, 0xbd, 0xe4, 0x96, 0x73, 0x39,
		0x82, 0x86, 0xd9, 0x19, 0x80, 0x2c, 0xcf, 0xfe, 0x63, 0x76, 0xe6, 0x1f, 0xbb, 0xc6, 0x71, 0x1c,
		0x1b, 0xc5, 0x31, 0x6e, 0x0c, 0x57, 0x85, 0xc5, 0x63, 0x96, 0x8d, 0xdf, 0xaa, 0xb5, 0x7c, 0xcc,
		0xae, 0xb1, 0x1b, 0xb6, 0x07, 0x2e, 0xa3, 0x40, 0x2a, 0x0d, 0xe6, 0x7b, 0x36, 0x1f, 0xfb, 0x33,
		0xf9, 0x98, 0x76, 0xe2, 0xc5, 0xa1, 0xc9, 0x10, 0x56, 0xcb, 0x24, 0xb0, 0x2a, 0x23, 0xb4, 0x2a,
		0x23, 0xb8, 0xaa, 0x21, 0xbc, 0x78, 0x09, 0x30, 0x66, 0x42, 0xac, 0x44, 0x84, 0x6d, 0xe7, 0xdc,
		0x8a, 0x9c, 0x99, 0xc7, 0xf8, 0xac, 0x3c, 0xee, 0x67, 0xe4, 0x31, 0xee, 0x16, 0x5d, 0x85, 0xc6,
		0xb8, 0x55, 0x39, 0x00, 0xab, 0x72, 0xdd, 0x2f, 0xab, 0xd3, 0xf5, 0x92, 0x71, 0xe3, 0xdb, 0x4a,
		0x34, 0xbc, 0xc5, 0x10, 0xc7, 0x10, 0xc7, 0xec, 0xa0, 0x12, 0x56, 0x1f, 0xa3, 0xe2, 0x7f, 0xd9,
		0x43, 0x54, 0x4d, 0x73, 0x9c, 0x2b, 0x96, 0xf3, 0xc4, 0xc2, 0x7a, 0x64, 0xc0, 0xe7, 0x61, 0x36,
		0x32, 0xe0, 0x0b, 0xe4, 0x1c, 0x19, 0xf0, 0xc5, 0x0d, 0x57, 0x64, 0xc0, 0x89, 0x7d, 0x10, 0x64,
		0xc0, 0xa1, 0x68, 0x9e, 0x40, 0xa4, 0x02, 0x19, 0xf0, 0x81, 0x90, 0x3a, 0xd6, 0x57, 0x99, 0x38,
		0x61, 0x9c, 0x01, 0x5f, 0x63, 0x78, 0x64, 0x5c, 0xcd, 0x99, 0x5c, 0xfa, 0x9d, 0x48, 0x09, 0xfe,
		0x47, 0x37, 0x3b, 0xbe, 0xe3, 0x87, 0xfe, 0xe1, 0x4e, 0xe0, 0x1e, 0x85, 0xc1, 0x9f, 0x5d, 0x9b,
		0x6b, 0xf8, 0x2a, 0xd2, 0x4e, 0x8a, 0xf5, 0x09, 0x7e, 0xcc, 0x13, 0x7f, 0x25, 0x51, 0xdd, 0xdb,
		0x9d, 0x60, 0x9c, 0xee, 0x51, 0x23, 0xf4, 0x3a, 0x87, 0x81, 0xed, 0x85, 0x4e, 0xab, 0x86, 0xcc,
		0x32, 0xc8, 0x9a, 0x1d, 0x59, 0x4d, 0x90, 0x05, 0xb2, 0x66, 0x4f, 0x56, 0xd7, 0xb3, 0xf7, 0x9c,
		0xcf, 0xe1, 0x9e, 0x6b, 0xed, 0xfb, 0xe0, 0x0a, 0x5c, 0xcd, 0x98, 0x2b, 0x1f, 0xde, 0x0a, 0x54,
		0xcd, 0x8e, 0xaa, 0xb1, 0x7c, 0xf7, 0x39, 0xeb, 0xf7, 0x2a, 0xe9, 0xf8, 0x6a, 0xd0, 0xb6, 0x34,
		0xba, 0xbe, 0x02, 0x7e, 0x6d, 0x79, 0x88, 0x6b, 0x82, 0x38, 0x10, 0x87, 0x79, 0x00, 0x78, 0x33,
		0x30, 0x3f, 0x00, 0x6d, 0xa0, 0xed, 0x45, 0xb4, 0x05, 0xd6, 0x3e, 0x30, 0x03, 0x66, 0x73, 0xc0,
		0xac, 0xd9, 0xa8, 0x00, 0x68, 0xac, 0x3f, 0xc1, 0x31, 0xf2, 0x4d, 0x18, 0xd8, 0x88, 0x1b, 0xc0,
		0x09, 0xf1, 0x01, 0x40, 0x55, 0x0d, 0xa8, 0x3b, 0x67, 0xcf, 0x58, 0xad, 0x7f, 0x87, 0xae, 0xd5,
		0xc6, 0x32, 0x0b, 0xb0, 0x9a, 0x35, 0x56, 0x40, 0x0a, 0x48, 0xcd, 0x14, 0xa9, 0x03, 0xa7, 0x1d,
		0xee, 0x7b, 0x9d, 0xc3, 0x2e, 0xb0, 0x02, 0x56, 0x33, 0xc3, 0xea, 0xc8, 0x72, 0x5c, 0x6b, 0xc7,
		0xb5, 0xaf, 0xcf, 0x5e, 0x03, 0x5e, 0xc0, 0x6b, 0x56, 0x78, 0x95, 0x50, 0x85, 0xbb, 0x9d, 0xb6,
		0x1f, 0x78, 0x96, 0xd3, 0x0e, 0x50, 0x26, 0x05, 0xc0, 0x66, 0x06, 0x98, 0xfd, 0x39, 0xb0, 0xdb,
		0x2d, 0xbb, 0x85, 0xf8, 0x08, 0xbe, 0x5e, 0x83, 0xaf, 0xa2, 0x74, 0xc5, 0x69, 0x07, 0xb6, 0xb7,
		0x67, 0xed, 0xda, 0xa1, 0xd5, 0x6a, 0x79, 0xb6, 0x0f, 0x0f, 0x06, 0xc2, 0x66, 0x4b, 0x58, 0xdb,
		0x76, 0xf6, 0x3f, 0xee, 0x74, 0x3c, 0x00, 0x06, 0xc0, 0x5e, 0x01, 0xb0, 0x26, 0x5c, 0x18, 0x08,
		0x7b, 0x65, 0xc2, 0xe0, 0xc2, 0x00, 0xd8, 0x6b, 0x01, 0xe6, 0x3a, 0xed, 0x4f, 0xa1, 0x15, 0x04,
		0x9e, 0xb3, 0x73, 0x18, 0xd8, 0x40, 0x0b, 0x68, 0xcd, 0x16, 0xad, 0x96, 0xed, 0x5a, 0x7f, 0x82,
		0x2a, 0x50, 0x35, 0x7b, 0xaa, 0xc2, 0x23, 0xcb, 0x73, 0xac, 0xc0, 0xe9, 0xb4, 0xc1, 0x17, 0xf8,
		0x9a, 0x29, 0x5f, 0x58, 0x60, 0x04, 0x52, 0x33, 0x46, 0xca, 0xed, 0x40, 0xb8, 0x03, 0xaa, 0x19,
		0x43, 0xd5, 0xf5, 0x3a, 0x81, 0xbd, 0x9b, 0x87, 0xc0, 0xf1, 0xbe, 0x53, 0xf0, 0x05, 0xbe, 0x66,
		0xc4, 0xd7, 0x81, 0xf5, 0x79, 0xcc, 0x18, 0x56, 0xaf, 0x41, 0xd7, 0xab, 0xd0, 0xe5, 0xd9, 0xbe,
		0xed, 0x1d, 0xa1, 0x42, 0x02, 0x8c, 0xbd, 0x12, 0x63, 0x4e, 0xfb, 0xda, 0x8b, 0x21, 0x0f, 0x01,
		0xba, 0x66, 0x4a, 0x97, 0x67, 0xfb, 0x4e, 0xeb, 0xd0, 0x72, 0xe1, 0xbb, 0x40, 0xd7, 0xec, 0xe9,
		0x42, 0x37, 0x19, 0xd0, 0x36, 0x7f, 0xea, 0x2a, 0xb1, 0x67, 0xa3, 0x02, 0x4e, 0x6d, 0x89, 0x70,
		0x03, 0x6a, 0x40, 0x6d, 0x2e, 0xa8, 0x55, 0xa0, 0x86, 0x15, 0xb8, 0xb1, 0xc1, 0xad, 0x4a, 0x7b,
		0x3f, 0x80, 0x1d, 0x17, 0xec, 0x2a, 0xb6, 0x27, 0x04, 0xe0, 0x71, 0x01, 0xaf, 0x5a, 0x7b, 0x45,
		0xc0, 0x1d, 0x17, 0xee, 0xaa, 0xb6, 0x87, 0x04, 0xe4, 0xb1, 0x22, 0xaf, 0x3a, 0x85, 0xd9, 0x00,
		0x8f, 0x11, 0x78, 0x4d, 0xb8, 0x3c, 0x90, 0xb7, 0x20, 0xf2, 0xe0, 0xf2, 0x00, 0xde, 0xbc, 0xc1,
		0xab, 0xcc, 0x1e, 0x15, 0x20, 0xc7, 0x0a, 0x39, 0xe6, 0x35, 0x23, 0xa0, 0x8d, 0x1f, 0x6d, 0x55,
		0xd8, 0xd3, 0x02, 0xee, 0x58, 0x71, 0x87, 0x05, 0x58, 0xa0, 0x36, 0x27, 0xd4, 0x78, 0xef, 0x81,
		0x01, 0x6c, 0xac, 0x60, 0xab, 0xcc, 0xde, 0x18, 0x70, 0xc7, 0x85, 0xbb, 0x2a, 0xed, 0x99, 0x01,
		0x75, 0x9c, 0xa8, 0xab, 0xd6, 0x5e, 0x1a, 0xb0, 0xc7, 0x86, 0xbd, 0x0a, 0xed, 0xb1, 0x01, 0x75,
		0x5c, 0xa8, 0xab, 0xd2, 0xde, 0x1b, 0x50, 0xc7, 0x85, 0xba, 0xc0, 0x0e, 0x5b, 0xf6, 0x9e, 0x75,
		0xe8, 0x06, 0xe1, 0x81, 0x1d, 0x78, 0xce, 0x2e, 0xa0, 0x03, 0x74, 0xaf, 0x0d, 0xdd, 0x61, 0xbb,
		0x2c, 0xe5, 0xb4, 0x5b, 0xa1, 0xeb, 0xa3, 0xac, 0x0e, 0xd0, 0xcd, 0x01, 0xba, 0xf1, 0x7c, 0xc2,
		0x6e, 0x21, 0xc2, 0x82, 0xbb, 0x39, 0x72, 0x17, 0x38, 0xae, 0xf3, 0xdf, 0x8a, 0x51, 0x87, 0x13,
		0x2b, 0x31, 0xda, 0x97, 0x69, 0x94, 0x2f, 0x83, 0x7e, 0x06, 0x5c, 0xd0, 0xc9, 0x80, 0x6b, 0x89,
		0xe0, 0xaa, 0x92, 0x1e, 0x06, 0x5f, 0xd0, 0xbd, 0xa0, 0xab, 0xba, 0x74, 0x79, 0x9d, 0xc3, 0xc0,
		0xf6, 0xc2, 0x5d, 0xab, 0x5b, 0x76, 0x13, 0xf2, 0x42, 0xcb, 0xdd, 0xef, 0x78, 0x4e, 0xf0, 0xf1,
		0x00, 0x64, 0x81, 0xac, 0x99, 0x92, 0x75, 0xfd, 0x13, 0xd0, 0x02, 0x5a, 0x33, 0x44, 0x0b, 0x2d,
		0xd0, 0xc0, 0x1b, 0x82, 0xe5, 0xf2, 0x7a, 0xb6, 0x65, 0x22, 0xae, 0x0a, 0x41, 0xb4, 0x44, 0x0e,
		0x19, 0x6f, 0x5c, 0xf7, 0x0a, 0x5f, 0x6f, 0x5e, 0xd7, 0x99, 0x8f, 0xb5, 0x3c, 0x2c, 0x65, 0x12,
		0x50, 0x6b, 0x96, 0x94, 0xa9, 0x8e, 0x74, 0x9c, 0xca, 0xda, 0x36, 0xa3, 0x10, 0x5a, 0x53, 0xfd,
		0x33, 0x71, 0x1e, 0x0d, 0x23, 0x7d, 0x96, 0x07, 0xcb, 0x7a, 0x3a, 0x14, 0xb2, 0x9f, 0xca, 0x93,
		0xf8, 0xd4, 0x94, 0x42, 0x7f, 0x4b, 0xb3, 0xaf, 0x66, 0x2c, 0x95, 0x8e, 0x64, 0x5f, 0xd4, 0xef,
		0xbe, 0xa0, 0xee, 0xbd, 0x52, 0x1f, 0x66, 0xa9, 0x4e, 0xfb, 0x69, 0xa2, 0xca, 0x67, 0xf5, 0x58,
		0xc5, 0xaa, 0x9e, 0x88, 0x0b, 0x91, 0x4c, 0x1e, 0xea, 0x49, 0x2c, 0xbf, 0x9a, 0x4a, 0x47, 0x5a,
		0x98, 0x83, 0x48, 0x47, 0xbd, 0x48, 0x89, 0x7a, 0xa2, 0x86, 0x75, 0x9d, 0x5c, 0xa8, 0xfc, 0x5b,
		0xf1, 0x16, 0x53, 0x8a, 0xf8, 0xf4, 0xac, 0x97, 0x66, 0x66, 0xa4, 0x75, 0x16, 0xf7, 0x46, 0x3a,
		0x37, 0x60, 0xfc, 0x92, 0x2a, 0x9f, 0xd5, 0xaf, 0x6d, 0x29, 0x6d, 0x50, 0xa3, 0x5e, 0xf1, 0x3f,
		0x8d, 0x1f, 0xeb, 0x23, 0x1d, 0x27, 0xf1, 0xff, 0x89, 0x81, 0xd9, 0x8b, 0xe4, 0xe0, 0x5b, 0x3c,
		0xd0, 0x67, 0xf5, 0xe2, 0x6f, 0x33, 0x9a, 0xe3, 0xd4, 0x94, 0xce, 0x46, 0x7d, 0x2d, 0x27, 0x8a,
		0xa6, 0x53, 0xde, 0xa3, 0xf6, 0xf8, 0xfa, 0x3b, 0x93, 0x8f, 0x1e, 0xde, 0xf9, 0x59, 0xdd, 0x7d,
		0x21, 0xec, 0x4e, 0xef, 0x4f, 0xf9, 0x2c, 0x74, 0x54, 0xac, 0x42, 0xb7, 0xb8, 0x3f, 0xe3, 0x87,
		0xd0, 0x8d, 0xe5, 0x57, 0x3f, 0xbf, 0x44, 0xad, 0xc9, 0xdd, 0x09, 0x5d, 0x35, 0x0c, 0x83, 0xe4,
		0x42, 0xe5, 0xdf, 0x8a, 0x37, 0xb4, 0x27, 0xd7, 0xdf, 0x9a, 0xde, 0x9b, 0x70, 0xfa, 0x8a, 0x2a,
		0x9f, 0x85, 0xd7, 0x66, 0x94, 0x7f, 0xdf, 0x1f, 0xdf, 0x9b, 0xc9, 0x63, 0x78, 0x38, 0xb9, 0x37,
		0x3b, 0xd3, 0x5b, 0x13, 0x16, 0x7f, 0x97, 0x87, 0x26, 0xa3, 0xef, 0x3f, 0x69, 0x5b, 0x48, 0xdc,
		0xb3, 0xd7, 0xc4, 0xa5, 0xce, 0x22, 0x73, 0x94, 0xa3, 0xdb, 0x4b, 0x04, 0x0b, 0xaf, 0x5e, 0xcb,
		0xc4, 0x89, 0xc8, 0x84, 0xec, 0x0b, 0x36, 0xb9, 0x0f, 0x46, 0xa1, 0xb2, 0x9c, 0x51, 0xee, 0xed,
		0x6e, 0xfd, 0xbe, 0xb6, 0xba, 0x6d, 0x38, 0xbe, 0xe9, 0xf8, 0x46, 0x90, 0x45, 0x27, 0x27, 0x71,
		0xdf, 0xb0, 0xe5, 0x69, 0x2c, 0x85, 0xc8, 0x62, 0x79, 0x6a, 0xbc, 0x0d, 0xec, 0x77, 0xc6, 0x81,
		0xd0, 0x59, 0xdc, 0xff, 0x22, 0xed, 0x4b, 0x2d, 0xa4, 0x8a, 0x53, 0xa9, 0x56, 0x0c, 0x35, 0xea,
		0x99, 0x81, 0x7b, 0x64, 0x6c, 0x7c, 0xd8, 0x36, 0xf2, 0xc7, 0xf5, 0xf5, 0xf7, 0xc6, 0xfa, 0xc6,
		0x7b, 0x63, 0xad, 0xb1, 0xf6, 0xde, 0x58, 0x2f, 0x7e, 0x5a, 0xdf, 0x58, 0xe1, 0x14, 0x9b, 0xfc,
		0x74, 0x94, 0xf5, 0x05, 0x2b, 0xd1, 0x53, 0xd8, 0xfd, 0x49, 0x5c, 0x7d, 0x4b, 0xb3, 0x41, 0x7e,
		0x43, 0xaf, 0x47, 0x0d, 0xaf, 0xec, 0x4d, 0xed, 0x63, 0xa4, 0xac, 0xec, 0x74, 0x74, 0x2e, 0xa4,
		0xae, 0x6d, 0x1b, 0x3a, 0x1b, 0x09, 0x66, 0x1f, 0xe0, 0x86, 0xf5, 0xf3, 0x18, 0x56, 0x98, 0x9b,
		0x2d, 0x99, 0x95, 0xc7, 0xf4, 0xc7, 0x43, 0xed, 0xdb, 0x99, 0x90, 0x08, 0xd7, 0xaf, 0x17, 0xae,
		0x57, 0x56, 0xc6, 0x13, 0xbe, 0xba, 0xbe, 0x1a, 0x0a, 0xe3, 0x0f, 0xe3, 0x4d, 0xda, 0x37, 0x8b,
		0x19, 0x66, 0xa2, 0x06, 0x3d, 0x33, 0x7f, 0x51, 0x6d, 0x3f, 0x5d, 0x21, 0xf2, 0x06, 0x31, 0x79,
		0xae, 0x31, 0xb9, 0x18, 0x15, 0x08, 0xc7, 0x8b, 0x0b, 0xc7, 0xb3, 0x1a, 0x36, 0x7c, 0x62, 0x2e,
		0xa3, 0x01, 0xde, 0x12, 0xaa, 0x9f, 0xc5, 0x43, 0x76, 0xe9, 0xc6, 0x5b, 0x8e, 0xb9, 0x23, 0x93,
		0x2b, 0x23, 0x96, 0xfd, 0x64, 0x34, 0x10, 0x86, 0x3e, 0x13, 0xc6, 0x34, 0x55, 0x67, 0x94, 0xa9,
		0x3a, 0xa3, 0x9f, 0x4a, 0x1d, 0xc5, 0x52, 0x64, 0x46, 0xee, 0x10, 0xf2, 0xdf, 0xfa, 0x22, 0x73,
		0x81, 0x17, 0x2b, 0xa3, 0xe0, 0x72, 0xe3, 0xc3, 0x0a, 0x37, 0x2f, 0xc1, 0xd4, 0x39, 0xdf, 0x75,
		0xd0, 0x83, 0x1b, 0x08, 0xf2, 0x5b, 0xf4, 0x66, 0xef, 0xab, 0xef, 0xf9, 0xeb, 0x59, 0x8d, 0x26,
		0xac, 0xb6, 0x61, 0x46, 0x47, 0x79, 0x46, 0x87, 0x9c, 0xf6, 0x4b, 0x1c, 0x06, 0xaf, 0x55, 0xca,
		0x65, 0x5c, 0x9d, 0x64, 0x10, 0x4c, 0x97, 0x67, 0x3d, 0x92, 0x76, 0x34, 0xa4, 0xeb, 0xad, 0x69,
		0x5a, 0x46, 0xd4, 0x3b, 0xe7, 0xaa, 0x3a, 0x1f, 0x47, 0xb9, 0x04, 0x23, 0x3a, 0xfa, 0x6b, 0x6e,
		0xac, 0x74, 0x3e, 0xb8, 0x48, 0x87, 0x8d, 0xda, 0x41, 0x2c, 0xed, 0x44, 0xe4, 0x8a, 0x58, 0xd5,
		0xb6, 0x8d, 0xd5, 0xf7, 0x84, 0x2d, 0x8d, 0x2e, 0x6f, 0x58, 0xba, 0xf6, 0x7b, 0xa3, 0xd1, 0xdc,
		0x6a, 0x34, 0x56, 0xb7, 0x36, 0xb6, 0x56, 0x3f, 0x6c, 0x6e, 0xae, 0x35, 0xd7, 0x36, 0x09, 0x1b,
		0xdf, 0xc9, 0x06, 0x22, 0x13, 0x83, 0x9d, 0x9c, 0x5a, 0x39, 0x4a, 0x12, 0x0e, 0xa6, 0x1e, 0x2a,
		0x91, 0xc3, 0x7b, 0x12, 0x25, 0x4a, 0xc0, 0x39, 0x55, 0x4f, 0x32, 0x56, 0x5e, 0x2a, 0x12, 0xd6,
		0x85, 0x55, 0xd5, 0x83, 0x34, 0xd5, 0x1f, 0x3d, 0x6d, 0x45, 0xcb, 0x22, 0x62, 0x8e, 0x94, 0xba,
		0x03, 0xad, 0xae, 0xe3, 0x24, 0xe8, 0x31, 0x2b, 0xe7, 0x29, 0x69, 0xb9, 0x48, 0x3a, 0x8e, 0x88,
		0x90, 0x13, 0xaa, 0x8d, 0xe4, 0x40, 0x9c, 0xc4, 0x52, 0x0c, 0xcc, 0xe9, 0xc0, 0xa0, 0xe6, 0x87,
		0xca, 0x25, 0xc1, 0xfb, 0xa6, 0x12, 0x73, 0xe6, 0x9f, 0x62, 0x39, 0xc8, 0x27, 0x6c, 0xc4, 0xcc,
		0xda, 0x2d, 0x9c, 0x08, 0xbd, 0x39, 0x6f, 0xad, 0x9b, 0x89, 0x93, 0xf8, 0x92, 0x66, 0xe0, 0x9b,
		0x42, 0x37, 0x29, 0x6c, 0xa0, 0x18, 0x2e, 0x88, 0xaf, 0x15, 0xdf, 0x5c, 0x0f, 0x1e, 0x8e, 0xef,
		0x34, 0xd1, 0x59, 0x2c, 0x97, 0xe5, 0xde, 0x5b, 0x4b, 0xba, 0x53, 0x30, 0x21, 0xf8, 0x59, 0x09,
		0xfe, 0x56, 0x4c, 0x33, 0x4d, 0x7a, 0x2f, 0xba, 0xd2, 0xf5, 0x2b, 0x0f, 0xe9, 0x01, 0xaa, 0xee,
		0x85, 0xa6, 0x2c, 0x20, 0x2f, 0x0f, 0x38, 0xc8, 0x04, 0x46, 0x72, 0x81, 0x8b, 0x6c, 0x60, 0x27,
		0x1f, 0xd8, 0xc9, 0x08, 0x5e, 0x72, 0x82, 0xa6, 0xac, 0x20, 0x2a, 0x2f, 0xc8, 0xcb, 0x8c, 0xd2,
		0xc0, 0xf1, 0x36, 0x7b, 0xf2, 0x4e, 0x68, 0xea, 0xd7, 0x39, 0x74, 0x05, 0x20, 0x2e, 0x34, 0xd8,
		0x08, 0x0e, 0x4e, 0xc2, 0x83, 0xa1, 0x00, 0xe1, 0x26, 0x44, 0xd8, 0x0a, 0x12, 0xb6, 0xc2, 0x84,
		0xa7, 0x40, 0xa1, 0x2d, 0x54, 0x88, 0x0b, 0x16, 0x36, 0xc2, 0xa5, 0x34, 0x34, 0x11, 0xf2, 0xb4,
		0x58, 0x15, 0x65, 0xe2, 0xbd, 0xa6, 0x01, 0x62, 0x62, 0x37, 0x13, 0x0f, 0x30, 0x91, 0x34, 0xab,
		0x4c, 0xcc, 0xe5, 0x22, 0x6d, 0x38, 0x4a, 0x1c, 0xc6, 0x52, 0x87, 0xab, 0xe4, 0x61, 0x2f, 0x7d,
		0xd8, 0x4b, 0x20, 0xde, 0x52, 0x88, 0x87, 0x24, 0x62, 0x22, 0x8d, 0x4a, 0x14, 0x82, 0xab, 0xa1,
		0xe0, 0xe9, 0xb1, 0x47, 0xb1, 0xd4, 0xbf, 0x73, 0xf2, 0xd7, 0x13, 0xf9, 0xb1, 0xc9, 0xc8, 0x64,
		0x2f, 0x92, 0xa7, 0x82, 0x5d, 0x77, 0x7b, 0x86, 0xdb, 0xdd, 0x0f, 0x62, 0xc9, 0x72, 0x9f, 0xbe,
		0x51, 0x1e, 0x82, 0xc0, 0x47, 0xa7, 0xde, 0xb3, 0x7f, 0x2f, 0x8b, 0xfa, 0x3a, 0x4e, 0x65, 0x2b,
		0x3e, 0x8d, 0xa9, 0xef, 0xe7, 0x79, 0xdc, 0x35, 0x8a, 0xd3, 0x48, 0xc7, 0x17, 0x82, 0xf4, 0xf6,
		0x93, 0x0a, 0x44, 0xcd, 0xdb, 0x43, 0x37, 0xba, 0xe4, 0x3f, 0x74, 0xd7, 0x37, 0x37, 0x31, 0x78,
		0x31, 0x78, 0x97, 0x40, 0x98, 0xf3, 0xb3, 0xf6, 0x18, 0x0d, 0x3d, 0x96, 0x25, 0xb8, 0x8c, 0x77,
		0x66, 0xb3, 0x4b, 0x03, 0x13, 0xde, 0x4f, 0xfe, 0xd0, 0x2c, 0x0c, 0x49, 0xe0, 0x57, 0x32, 0x18,
		0x49, 0xe0, 0xb9, 0x9a, 0x8e, 0x24, 0xf0, 0x82, 0x3e, 0x00, 0x92, 0xc0, 0x50, 0x1b, 0x15, 0x99,
		0xce, 0x22, 0x09, 0x3c, 0x77, 0xf9, 0x81, 0x24, 0xf0, 0x6b, 0x7f, 0x21, 0x09, 0x3c, 0x5f, 0xe3,
		0x91, 0x04, 0xa6, 0xe2, 0x1a, 0x91, 0x04, 0x5e, 0xc0, 0xd0, 0x45, 0x12, 0x18, 0x83, 0x17, 0x83,
		0x17, 0x49, 0xe0, 0xd7, 0xfa, 0x42, 0x12, 0x78, 0x69, 0x82, 0x4b, 0xed, 0x62, 0xe2, 0x8f, 0x99,
		0x65, 0x81, 0xc7, 0x66, 0x23, 0x0d, 0xfc, 0x1a, 0xe6, 0x22, 0x0d, 0x3c, 0x47, 0x90, 0x91, 0x06,
		0x9e, 0xdf, 0x30, 0x44, 0x1a, 0x78, 0xc1, 0x1f, 0x00, 0x69, 0x60, 0x68, 0x8e, 0x09, 0x0a, 0x7c,
		0xd3, 0xc0, 0xbd, 0x58, 0x46, 0xd9, 0x15, 0xc3, 0x3c, 0xf0, 0x07, 0xc8, 0xfa, 0x25, 0xb0, 0x10,
		0x87, 0xb5, 0xcc, 0xd6, 0xde, 0xea, 0x35, 0x92, 0xbd, 0xd7, 0x8e, 0xf2, 0xde, 0x2b, 0x75, 0x0e,
		0x5d, 0x23, 0x8c, 0x4a, 0x75, 0x9e, 0x3d, 0x9c, 0xde, 0x82, 0x69, 0xb3, 0xee, 0x3b, 0x2f, 0x84,
		0xc5, 0xdf, 0xc5, 0xc9, 0x2d, 0x95, 0x73, 0x8a, 0x3c, 0xca, 0xf0, 0x38, 0x95, 0xdf, 0x31, 0xc9,
		0xb7, 0xa0, 0x9d, 0x0c, 0xf2, 0x2a, 0x06, 0xda, 0xc9, 0x20, 0x7f, 0x52, 0xd1, 0xbc, 0x09, 0xa6,
		0x49, 0x4b, 0x91, 0x1f, 0xb9, 0xd1, 0x9f, 0x25, 0x3a, 0xc9, 0xc4, 0x09, 0x07, 0x8f, 0x3b, 0xed,
		0x37, 0xb7, 0xc5, 0xc0, 0xd6, 0xee, 0x64, 0xe6, 0x79, 0xeb, 0xe4, 0x7a, 0xcc, 0x03, 0xaa, 0x64,
		0x19, 0x4e, 0x70, 0x7c, 0xb6, 0x89, 0x38, 0xc1, 0x71, 0xc6, 0x96, 0xe2, 0x04, 0xc7, 0xf9, 0x9a,
		0x8a, 0x13, 0x1c, 0x9f, 0xab, 0x89, 0x71, 0x82, 0x23, 0xd9, 0xfc, 0x31, 0x4e, 0x75, 0x24, 0x90,
		0x31, 0xc6, 0x39, 0x8f, 0x1c, 0x2d, 0xc2, 0x39, 0x8f, 0x70, 0xaf, 0xb4, 0x4f, 0x8b, 0xab, 0xb6,
		0x17, 0xc5, 0xd1, 0x8f, 0x94, 0x2d, 0x21, 0xe2, 0x1d, 0xa7, 0x33, 0xe3, 0x78, 0x40, 0x64, 0x6c,
		0xd2, 0x9c, 0x07, 0xd3, 0x9d, 0xf7, 0xb2, 0x9a, 0xe7, 0x12, 0x9e, 0xd7, 0x12, 0x9e, 0xc7, 0x52,
		0x71, 0x15, 0x44, 0x05, 0x54, 0xf5, 0x84, 0x13, 0x21, 0x99, 0x54, 0x19, 0x79, 0x44, 0x43, 0x0d,
		0x2d, 0x5e, 0x7b, 0x2c, 0xd6, 0x82, 0x05, 0xbb, 0x32, 0x6a, 0x2e, 0xac, 0x32, 0xae, 0x8b, 0x80,
		0xc7, 0xe2, 0xee, 0xa9, 0x16, 0xeb, 0xa0, 0x16, 0xe7, 0x16, 0x16, 0xe8, 0x12, 0x88, 0x9c, 0x80,
		0x47, 0xea, 0x84, 0x3b, 0x22, 0x27, 0xd8, 0x91, 0x29, 0x29, 0xa4, 0x54, 0x32, 0x48, 0xb0, 0x24,
		0x90, 0x5a, 0xc9, 0x1f, 0xd9, 0x92, 0x3e, 0xb2, 0x25, 0x7b, 0x34, 0x4b, 0xf2, 0x96, 0x5b, 0xa6,
		0x52, 0x39, 0x81, 0xad, 0xa6, 0xae, 0x94, 0x16, 0xe7, 0x66, 0x3c, 0xa0, 0x33, 0xc0, 0xcb, 0x60,
		0x59, 0x9a, 0x46, 0x25, 0x93, 0x4a, 0xaa, 0x56, 0x9f, 0x5c, 0x4d, 0x3e, 0xc5, 0xda, 0x7b, 0xc2,
		0x35, 0xf6, 0x54, 0x6b, 0xe9, 0xc9, 0xd7, 0xcc, 0x93, 0xaf, 0x8d, 0xa7, 0x5d, 0x03, 0x8f, 0xd5,
		0xb1, 0x9b, 0xb7, 0x8a, 0x5c, 0xed, 0x3a, 0xd9, 0xf0, 0x77, 0x6b, 0xee, 0xf8, 0x3b, 0x21, 0x9b,
		0xba, 0x91, 0xd6, 0x22, 0x93, 0xe4, 0x3a, 0xb1, 0xd6, 0xfe, 0x5a, 0x35, 0x3f, 0x58, 0xe6, 0x5e,
		0x64, 0x9e, 0x1c, 0xff, 0xdd, 0xf8, 0xfe, 0xe5, 0xcb, 0xca, 0x13, 0x2f, 0xd0, 0xf1, 0x11, 0xc7,
		0x94, 0x6e, 0x6f, 0xc7, 0x77, 0x3e, 0x93, 0xbd, 0xc7, 0xff, 0xfb, 0xd5, 0x9b, 0xfc, 0x2f, 0x42,
		0x77, 0x19, 0x2b, 0x26, 0x98, 0x8a, 0x62, 0xc5, 0x64, 0xb6, 0x2b, 0x26, 0x54, 0xda, 0x51, 0x30,
		0x5d, 0x2d, 0x21, 0xd0, 0x3a, 0x62, 0x49, 0x57, 0x4a, 0xc8, 0x24, 0x82, 0xc8, 0x29, 0x60, 0x22,
		0x89, 0x1f, 0xac, 0x98, 0xf0, 0x48, 0xf0, 0x60, 0xc5, 0x84, 0x7b, 0x22, 0x07, 0x2b, 0x26, 0xf4,
		0x64, 0x2a, 0x99, 0x44, 0x0d, 0xc1, 0x26, 0x02, 0x94, 0x9a, 0x04, 0xdc, 0x6f, 0x02, 0x70, 0x1d,
		0xc6, 0x97, 0x55, 0xd6, 0xfd, 0xb6, 0x44, 0x03, 0x76, 0xba, 0xdf, 0x60, 0xd1, 0xe2, 0x8d, 0xc6,
		0x36, 0x03, 0x3a, 0xdb, 0x0a, 0x48, 0x6f, 0x23, 0x20, 0xb4, 0x6d, 0x80, 0xd0, 0x36, 0x81, 0x45,
		0x8d, 0x60, 0x22, 0x19, 0x21, 0xe6, 0x99, 0xa0, 0xda, 0x42, 0xcb, 0x1e, 0x19, 0xe6, 0x7e, 0x16,
		0x23, 0x0f, 0xe6, 0x1f, 0x9c, 0xe7, 0xfb, 0x17, 0xe7, 0xec, 0x44, 0x16, 0xed, 0x3c, 0x78, 0x3a,
		0x8d, 0x05, 0xf8, 0x0a, 0x56, 0x3e, 0x62, 0xbe, 0xae, 0x61, 0x7e, 0x03, 0x74, 0x3e, 0x7f, 0x69,
		0x4e, 0x2e, 0xa0, 0x26, 0x2e, 0x75, 0x16, 0x99, 0xa3, 0x9c, 0x8b, 0x5e, 0x32, 0xdf, 0xc9, 0x7a,
		0x2d, 0x13, 0x27, 0x22, 0x13, 0xb2, 0x3f, 0xff, 0x03, 0x59, 0x17, 0xe0, 0xe3, 0xa6, 0x19, 0x08,
		0x6f, 0x6f, 0x77, 0x73, 0x63, 0x6d, 0x6d, 0xdb, 0xf0, 0xe3, 0xf3, 0x61, 0x12, 0x9f, 0xc4, 0x62,
		0x60, 0xd8, 0x97, 0x5a, 0x48, 0x15, 0xa7, 0xd2, 0x48, 0x4f, 0x8c, 0x7c, 0xd4, 0x19, 0xc5, 0xb0,
		0x33, 0xba, 0xad, 0x43, 0xe3, 0xad, 0xeb, 0x77, 0xdf, 0x7d, 0x91, 0xfe, 0x30, 0xea, 0x0b, 0xe3,
		0x24, 0xcd, 0x0c, 0xc7, 0x37, 0x1d, 0x7f, 0xc5, 0x08, 0xdc, 0x23, 0x63, 0x7d, 0x63, 0xc5, 0x70,
		0xb4, 0x11, 0x2b, 0x23, 0x1e, 0x08, 0xa9, 0xe3, 0x7e, 0x94, 0x18, 0xb1, 0xcc, 0x7f, 0xeb, 0x3c,
		0xd2, 0x86, 0xa1, 0x53, 0x43, 0x9f, 0x89, 0x2f, 0x52, 0xe4, 0xff, 0xfd, 0x40, 0x0c, 0x0c, 0xc7,
		0x37, 0x32, 0x11, 0xf5, 0xcf, 0xa2, 0x5e, 0x9c, 0xc4, 0xfa, 0x6a, 0xfc, 0x7f, 0xac, 0xaf, 0x2c,
		0xc2, 0x93, 0x2d, 0x38, 0xdf, 0x7a, 0x33, 0xbf, 0x7a, 0x8d, 0xe1, 0x82, 0xb4, 0x3b, 0x95, 0x94,
		0xea, 0xad, 0x14, 0x2a, 0x45, 0x4e, 0xab, 0x2e, 0xfb, 0xe6, 0xf6, 0xd7, 0xe6, 0x58, 0x2b, 0x54,
		0xfb, 0x76, 0x26, 0xe4, 0x32, 0x39, 0xf8, 0x5b, 0x8d, 0x54, 0x8d, 0x3f, 0x8c, 0x37, 0x93, 0xc5,
		0x08, 0x33, 0x51, 0x83, 0x9e, 0x99, 0xbf, 0xa8, 0xb6, 0x1d, 0x3f, 0x6c, 0xdb, 0xce, 0xfe, 0xc7,
		0x9d, 0x8e, 0x17, 0x5a, 0x41, 0xe0, 0x39, 0x3b, 0x87, 0x81, 0xfd, 0x66, 0xc9, 0xfd, 0x70, 0x01,
		0x0a, 0x5c, 0xf0, 0xb5, 0x0b, 0x7e, 0x01, 0x49, 0xbf, 0x2d, 0x41, 0xde, 0xab, 0xd6, 0x12, 0xaa,
		0x9f, 0xc5, 0xc3, 0x85, 0x26, 0xbd, 0xca, 0x61, 0xdf, 0x91, 0xc9, 0x95, 0x11, 0xcb, 0x7e, 0x32,
		0x1a, 0x88, 0x3c, 0x9c, 0x19, 0xd3, 0x89, 0xa2, 0x51, 0xce, 0x1d, 0x8d, 0x7e, 0x2a, 0x75, 0x14,
		0x4b, 0x91, 0x19, 0x39, 0xeb, 0xe3, 0xa0, 0x97, 0xc7, 0xb6, 0x58, 0x19, 0xc5, 0x2d, 0x5e, 0xdf,
		0x58, 0x59, 0xd4, 0x00, 0x20, 0xb0, 0xfe, 0x7d, 0xd3, 0x17, 0x0c, 0x6e, 0xdc, 0xda, 0x05, 0xe6,
		0xe4, 0x28, 0x2d, 0x76, 0xdf, 0x72, 0x0d, 0xb3, 0xa2, 0x0d, 0xe9, 0x3b, 0xde, 0x3a, 0xae, 0x52,
		0xb9, 0x88, 0x05, 0xa5, 0x21, 0x39, 0xa5, 0x1f, 0xe7, 0xe8, 0x0c, 0x19, 0x24, 0x1b, 0xe7, 0xe3,
		0xbe, 0x5e, 0x7f, 0x38, 0xcf, 0x61, 0x80, 0xd5, 0x12, 0x35, 0x34, 0x7b, 0xa3, 0x93, 0x13, 0x91,
		0x99, 0x2a, 0xfe, 0xbf, 0xf9, 0x45, 0xfa, 0xeb, 0xd2, 0x9b, 0x3b, 0x06, 0xcc, 0xc9, 0xa9, 0xcc,
		0xb7, 0x73, 0xc6, 0xdc, 0xeb, 0x3d, 0x17, 0x51, 0xd7, 0xb9, 0xc0, 0xfa, 0xcd, 0x45, 0xe9, 0xd4,
		0x85, 0xd7, 0x63, 0x2e, 0x5c, 0x8a, 0x2e, 0xb6, 0xbe, 0xb2, 0x5a, 0x8b, 0x2e, 0xf3, 0xee, 0x24,
		0xb1, 0xa0, 0x96, 0x4a, 0x0b, 0x6d, 0xa1, 0xb4, 0xa0, 0x96, 0x49, 0x0b, 0x2b, 0xf8, 0x5f, 0x64,
		0x81, 0x3f, 0x81, 0x82, 0x7e, 0x4a, 0x89, 0xcc, 0x85, 0x16, 0xec, 0xd3, 0x4c, 0x65, 0x2e, 0xac,
		0x20, 0xbf, 0xda, 0x85, 0x3b, 0x8b, 0x6a, 0x49, 0x54, 0x9b, 0xeb, 0x14, 0xe2, 0xe1, 0xb8, 0x32,
		0xbf, 0x79, 0xc4, 0x43, 0xe1, 0x65, 0x41, 0xd5, 0xc1, 0x0b, 0xdf, 0x57, 0x46, 0x61, 0x3f, 0x19,
		0xa1, 0x7d, 0x64, 0x54, 0xf6, 0x8f, 0x91, 0xdb, 0x37, 0x46, 0x6e, 0xbf, 0x18, 0xad, 0x7d, 0x62,
		0xcb, 0xb5, 0xcd, 0x64, 0xe1, 0xfb, 0xc1, 0x4a, 0x8f, 0x31, 0x8a, 0xa5, 0x5e, 0x6b, 0x2e, 0xd2,
		0x61, 0x4c, 0xe2, 0x47, 0x73, 0x81, 0x26, 0x78, 0x91, 0x3c, 0x15, 0x0b, 0x6f, 0xcf, 0x42, 0x60,
		0x77, 0xe0, 0x41, 0x4c, 0xe7, 0xf0, 0x84, 0xda, 0x51, 0x94, 0x8c, 0x04, 0xa1, 0x0e, 0x81, 0x7b,
		0x59, 0xd4, 0xd7, 0x71, 0x2a, 0x5b, 0xf1, 0x69, 0x4c, 0xe9, 0x9c, 0x95, 0x5a, 0x5b, 0x9c, 0x46,
		0x3a, 0xbe, 0x10, 0x64, 0x8e, 0x05, 0x21, 0xd0, 0x1f, 0xad, 0x76, 0x10, 0x5d, 0xd2, 0x43, 0xb9,
		0xb9, 0xb9, 0xb9, 0xb1, 0x09, 0x9c, 0xb9, 0xe1, 0xbc, 0xa4, 0x5b, 0x7f, 0x8f, 0x97, 0x4a, 0x93,
		0x2d, 0x70, 0x03, 0xc0, 0x3d, 0x5b, 0x16, 0xb7, 0x21, 0x80, 0xa0, 0x28, 0x99, 0x4a, 0x55, 0xc7,
		0xef, 0x18, 0x6b, 0xab, 0x9b, 0xbf, 0x7f, 0x30, 0x1c, 0xa9, 0x45, 0x76, 0x2e, 0x06, 0x71, 0xa4,
		0x85, 0xe1, 0x17, 0x7b, 0xb5, 0x0d, 0x9d, 0xfe, 0xe8, 0xe5, 0x2f, 0xd2, 0x91, 0xf9, 0x6d, 0x35,
		0x5a, 0xe9, 0x79, 0x14, 0x4b, 0xc3, 0x4b, 0x47, 0x5a, 0xc4, 0xf2, 0xd4, 0xb0, 0x2f, 0xfb, 0x67,
		0xb9, 0xea, 0x33, 0xa6, 0x2b, 0xf1, 0x45, 0xa9, 0xf6, 0x48, 0x09, 0x23, 0x96, 0x5f, 0xe4, 0x6e,
		0x2a, 0xff, 0xdf, 0x48, 0x16, 0xee, 0xd1, 0xf8, 0x16, 0xeb, 0xb3, 0xa2, 0xb2, 0xe8, 0xd6, 0x6f,
		0x76, 0xb3, 0xf4, 0x22, 0x1e, 0xe4, 0xff, 0x53, 0x51, 0x4e, 0xb4, 0x9b, 0x4a, 0x29, 0x8a, 0xdf,
		0x4f, 0x84, 0x52, 0xe6, 0x79, 0x3a, 0x10, 0xc6, 0x64, 0xf5, 0xdf, 0xf0, 0x45, 0x76, 0x11, 0xf7,
		0x85, 0xf1, 0x36, 0xff, 0x00, 0xbf, 0x37, 0xb6, 0x36, 0x8c, 0x77, 0x85, 0x59, 0x22, 0x93, 0x45,
		0x8d, 0x47, 0x94, 0x18, 0xbe, 0x8e, 0xe4, 0x20, 0xca, 0x06, 0xe3, 0xcf, 0xb7, 0x6d, 0xac, 0xaf,
		0xae, 0xae, 0xbf, 0x37, 0x7c, 0xd1, 0x4f, 0xe5, 0xc0, 0xb0, 0x07, 0x71, 0xfe, 0x6b, 0xef, 0xbf,
		0xc8, 0xfc, 0xe5, 0x71, 0x21, 0xf9, 0x5a, 0x63, 0x05, 0xcd, 0x62, 0x1e, 0x9d, 0xf4, 0x2f, 0x7a,
		0x33, 0x03, 0xf9, 0xf9, 0xff, 0x0f, 0xf3, 0x00, 0x18, 0x63, 0xb7, 0xc7, 0x18, 0xb4, 0xc7, 0x72,
		0x69, 0x0f, 0x2c, 0xcb, 0xcc, 0xd6, 0xb5, 0x60, 0x3f, 0xf5, 0xbd, 0x82, 0xc6, 0x3b, 0xe5, 0x5f,
		0x0b, 0xeb, 0xb9, 0x49, 0xab, 0xac, 0xd1, 0x55, 0xc3, 0x9d, 0xe2, 0xa2, 0xf8, 0xf1, 0xff, 0x89,
		0x45, 0x34, 0xd2, 0xc4, 0xbe, 0x69, 0x76, 0xd3, 0x26, 0xec, 0xa8, 0xfb, 0xc1, 0x3e, 0x28, 0xd7,
		0xef, 0x86, 0x3b, 0x87, 0x7b, 0x7b, 0xb6, 0x17, 0xfa, 0xce, 0x7f, 0xb1, 0x97, 0x0e, 0x7b, 0xe9,
		0x7e, 0x7d, 0x2f, 0xdd, 0x3d, 0x86, 0xb0, 0x8b, 0x6e, 0xee, 0xc9, 0x8e, 0x1b, 0x5b, 0x9a, 0x5c,
		0xbf, 0x6b, 0x8c, 0x15, 0x83, 0x91, 0x2b, 0x06, 0x63, 0x18, 0x65, 0xd1, 0xb9, 0xd0, 0x22, 0x53,
		0x46, 0x2a, 0x93, 0xab, 0x3b, 0xbb, 0x9a, 0x8a, 0xfb, 0x1a, 0xab, 0x05, 0xa7, 0x09, 0xb0, 0x8f,
		0x8e, 0x7c, 0x12, 0xe0, 0xf6, 0xc4, 0x7f, 0x66, 0xbc, 0x61, 0xe2, 0xc6, 0xfa, 0xaf, 0x61, 0x27,
		0xdd, 0x92, 0x4c, 0x3c, 0x97, 0x76, 0x07, 0xdd, 0xad, 0xa9, 0x26, 0x76, 0xce, 0xfd, 0xfc, 0x5d,
		0x3c, 0xd7, 0x66, 0x3c, 0xbc, 0x68, 0x98, 0x37, 0x5b, 0xd2, 0xcc, 0x7f, 0xfb, 0xdc, 0x0f, 0xad,
		0xc0, 0x1e, 0xba, 0x99, 0xfc, 0x41, 0xec, 0xa1, 0x9b, 0xb7, 0x2e, 0xc5, 0x1e, 0x3a, 0xec, 0xa1,
		0x7b, 0xe1, 0xb4, 0x75, 0xde, 0x7b, 0xe8, 0xc6, 0xc8, 0x0a, 0xb5, 0xb8, 0x6d, 0x74, 0xa5, 0x05,
		0xd8, 0x49, 0x57, 0xb5, 0x70, 0x40, 0x20, 0x2c, 0x50, 0x49, 0x61, 0x60, 0x27, 0x1d, 0xad, 0xb0,
		0xb1, 0xa0, 0x99, 0xff, 0xb2, 0xec, 0xa4, 0x1b, 0x2e, 0x76, 0x1f, 0xd5, 0x9d, 0xe0, 0xb2, 0xe0,
		0xdd, 0x74, 0x6b, 0xd8, 0x4d, 0x87, 0xdd, 0x74, 0xd8, 0x4d, 0x47, 0x3f, 0x24, 0xd1, 0x0a, 0x4d,
		0x8b, 0x09, 0x51, 0x0b, 0x0a, 0x55, 0x0b, 0x0f, 0x59, 0xa5, 0x01, 0xe7, 0x9a, 0xd4, 0xd1, 0xa3,
		0x63, 0x73, 0x70, 0xec, 0x28, 0x8e, 0x1d, 0x25, 0x1f, 0xe0, 0xa8, 0x05, 0x3a, 0xb2, 0x01, 0x8f,
		0x6c, 0xe0, 0xa3, 0x19, 0x00, 0x17, 0x1b, 0x08, 0x17, 0x1c, 0x10, 0xcb, 0x5b, 0x82, 0x63, 0x47,
		0x7f, 0x62, 0xa6, 0x45, 0xf2, 0xd8, 0xd1, 0x71, 0x08, 0xc7, 0x49, 0xf2, 0xcb, 0x96, 0x85, 0xa0,
		0x95, 0x8d, 0x80, 0x98, 0x83, 0x98, 0x83, 0x98, 0x83, 0x98, 0x83, 0x98, 0x83, 0x98, 0x83, 0x98,
		0x7b, 0xb6, 0x98, 0x9b, 0xf8, 0x1c, 0xa8, 0xb9, 0xb9, 0xdf, 0x8a, 0xc5, 0xb4, 0xfb, 0x7d, 0x70,
		0xc0, 0x2c, 0x6a, 0xab, 0xdf, 0x0f, 0x87, 0x0a, 0xb4, 0x1c, 0xb4, 0x1c, 0xb4, 0x1c, 0xb4, 0x1c,
		0xb4, 0xdc, 0xfc, 0x6f, 0xc9, 0xa2, 0x57, 0xac, 0x4a, 0x43, 0xce, 0x85, 0xce, 0xe2, 0x3e, 0x9d,
		0xd1, 0x5d, 0x2e, 0x61, 0x8d, 0xed, 0x22, 0x32, 0x82, 0x68, 0xa4, 0x3f, 0xc8, 0x85, 0x4e, 0x8a,
		0x21, 0x94, 0x70, 0x28, 0xa5, 0x1a, 0x52, 0xc9, 0x87, 0x56, 0xf2, 0x21, 0x96, 0x76, 0xa8, 0xa5,
		0x11, 0x72, 0x89, 0x84, 0x5e, 0x7a, 0xe9, 0x94, 0x7b, 0x1e, 0xeb, 0x5b, 0x3c, 0x10, 0x26, 0xa9,
		0x00, 0x78, 0x33, 0x08, 0x6e, 0x11, 0x32, 0x89, 0x46, 0xdf, 0xe6, 0xbb, 0x5f, 0xb4, 0xbc, 0xba,
		0x41, 0xad, 0xaf, 0xf3, 0x3d, 0xe3, 0xa6, 0xcd, 0x71, 0xd7, 0xde, 0xd3, 0xb4, 0x8f, 0x6a, 0xa3,
		0xdc, 0xfb, 0x0e, 0x84, 0x5a, 0xe3, 0x5c, 0xa2, 0xbe, 0xff, 0xf6, 0xd0, 0x88, 0x2e, 0x19, 0x0c,
		0x8d, 0xe6, 0xd6, 0xd6, 0xd6, 0xfa, 0xda, 0x26, 0x46, 0x48, 0xd5, 0x47, 0xc8, 0x6f, 0xb0, 0xe6,
		0x47, 0x5f, 0xc7, 0xbf, 0xe1, 0x7a, 0x10, 0xf1, 0xa0, 0x44, 0xaa, 0x9d, 0xef, 0xc9, 0x66, 0x0a,
		0x55, 0xcf, 0x77, 0xc5, 0x32, 0x32, 0x46, 0x0f, 0x18, 0x84, 0x8c, 0xd1, 0x2f, 0x99, 0x86, 0x8c,
		0xd1, 0x33, 0x0d, 0x44, 0xc6, 0x88, 0x7f, 0xfc, 0x47, 0xc6, 0xe8, 0x29, 0x8f, 0xb5, 0xf0, 0x43,
		0xbc, 0x1e, 0x8a, 0x7f, 0x4d, 0x24, 0x8b, 0x9e, 0xf8, 0x42, 0xb2, 0xe8, 0x79, 0x33, 0xe2, 0x55,
		0x4c, 0x85, 0xab, 0x3e, 0x15, 0x46, 0xb2, 0xe8, 0x79, 0x43, 0xa3, 0xb1, 0xfa, 0x01, 0x89, 0xa2,
		0xca, 0x8f, 0x0e, 0x24, 0x8a, 0x7e, 0xf8, 0x85, 0x44, 0x11, 0x19, 0xef, 0x49, 0x65, 0x2f, 0xd5,
		0x3d, 0xb9, 0x4c, 0xab, 0x6e, 0x10, 0xa9, 0xa2, 0xc7, 0x0d, 0x42, 0xaa, 0xe8, 0x97, 0x4c, 0x43,
		0xaa, 0xe8, 0x99, 0x06, 0x22, 0x55, 0xc4, 0x5f, 0x01, 0x20, 0x55, 0xf4, 0x94, 0xc7, 0x2a, 0x5a,
		0x27, 0x93, 0x1b, 0x80, 0xe5, 0xa6, 0x94, 0xdf, 0x09, 0xd9, 0xd4, 0x8d, 0xb4, 0x16, 0x99, 0x24,
		0x97, 0x32, 0xaa, 0xbd, 0xfd, 0x6b, 0xd5, 0xfc, 0x70, 0xfc, 0xcf, 0x5f, 0x6b, 0xe6, 0x87, 0xe3,
		0xf1, 0xd3, 0xb5, 0xe2, 0xe1, 0xef, 0xf5, 0xef, 0xff, 0xac, 0xff, 0xb5, 0x6a, 0x36, 0x26, 0xaf,
		0xae, 0x6f, 0xfe, 0xb5, 0x6a, 0x6e, 0x1e, 0xbf, 0x7b, 0xfb, 0xe5, 0xcb, 0xca, 0xaf, 0xbe, 0xe7,
		0xdd, 0xdf, 0x1b, 0xdf, 0xeb, 0xe5, 0x9b, 0xd6, 0x27, 0xff, 0xba, 0xf1, 0xd7, 0xaa, 0xb9, 0x7e,
		0xfc, 0x8e, 0x8e, 0xdb, 0x39, 0xa6, 0xc4, 0x4b, 0xc7, 0x77, 0x3e, 0x93, 0x85, 0xe6, 0x7f, 0x6f,
		0x17, 0x8e, 0xcd, 0xbb, 0x7f, 0xd5, 0x30, 0x4f, 0xc4, 0x3c, 0xf1, 0x1e, 0x9a, 0xca, 0xec, 0xc5,
		0x9a, 0xde, 0x34, 0x71, 0x6c, 0x16, 0x66, 0x89, 0x98, 0x25, 0x62, 0x96, 0x88, 0x59, 0x22, 0x66,
		0x89, 0x98, 0x25, 0x2e, 0xcd, 0x2c, 0xb1, 0x97, 0xa6, 0x89, 0x88, 0x24, 0xc5, 0x19, 0xe2, 0x1a,
		0x84, 0x1b, 0x19, 0xe1, 0x36, 0x1a, 0x9a, 0x83, 0xf4, 0x9b, 0xa4, 0x27, 0xdd, 0xa6, 0x86, 0x41,
		0xbc, 0x41, 0xbc, 0x41, 0xbc, 0x41, 0xbc, 0x41, 0xbc, 0x41, 0xbc, 0x41, 0xbc, 0x41, 0xbc, 0x91,
		0x11, 0x6f, 0x4b, 0xdd, 0xfd, 0x66, 0x41, 0x87, 0xf2, 0x3e, 0x68, 0x0f, 0xc5, 0xc3, 0x7a, 0x7f,
		0x74, 0xca, 0x69, 0x7d, 0x7a, 0xee, 0xdd, 0xe4, 0x49, 0x9d, 0x42, 0x3f, 0x39, 0x83, 0xdc, 0xf9,
		0xbe, 0x07, 0xda, 0x19, 0x5e, 0x34, 0xbc, 0x1b, 0x17, 0x2e, 0xec, 0x4e, 0x2e, 0xdc, 0xe4, 0x49,
		0x58, 0xbc, 0x1b, 0x0d, 0x19, 0x17, 0x00, 0xca, 0xa8, 0x97, 0x23, 0x4e, 0xa8, 0x25, 0xe3, 0xc4,
		0x20, 0x34, 0x65, 0x44, 0x53, 0x46, 0x36, 0x33, 0x41, 0x34, 0x65, 0xe4, 0x3e, 0xe3, 0x43, 0x53,
		0x46, 0x7a, 0xb2, 0x94, 0x4c, 0x53, 0xc6, 0x71, 0x4c, 0x22, 0xb8, 0x20, 0x3e, 0xb6, 0x8b, 0x56,
		0x52, 0x75, 0x0d, 0x49, 0x55, 0xf2, 0x21, 0x94, 0x70, 0x28, 0xa5, 0x1a, 0x52, 0xc9, 0x87, 0x56,
		0xf2, 0x21, 0x96, 0x76, 0xa8, 0xa5, 0x93, 0x8b, 0x32, 0x08, 0x25, 0x55, 0xa9, 0x84, 0xe0, 0xd2,
		0xa0, 0x93, 0x24, 0x3a, 0x55, 0xf4, 0x9c, 0xc2, 0xd4, 0x8f, 0x8e, 0xcd, 0x23, 0x36, 0xde, 0x68,
		0x05, 0x66, 0xb2, 0x01, 0x9a, 0x72, 0xa0, 0x66, 0x10, 0xb0, 0xa9, 0x07, 0x6e, 0x36, 0x01, 0x9c,
		0x4d, 0x20, 0xe7, 0x11, 0xd0, 0x69, 0x05, 0x76, 0x62, 0x01, 0x9e, 0x6c, 0xa0, 0xbf, 0x9e, 0x7b,
		0x93, 0x38, 0x31, 0xe8, 0xe9, 0xa9, 0x38, 0x91, 0x95, 0x1f, 0x46, 0x02, 0x80, 0xbc, 0x10, 0xe0,
		0x20, 0x08, 0x18, 0x09, 0x03, 0x2e, 0x02, 0x81, 0x9d, 0x50, 0x60, 0x27, 0x18, 0x78, 0x09, 0x07,
		0x9a, 0x02, 0x82, 0xa8, 0x90, 0x20, 0x2f, 0x28, 0x88, 0x67, 0x12, 0x58, 0x65, 0x16, 0x1e, 0x12,
		0x1a, 0xab, 0xc4, 0xcd, 0xa4, 0x2e, 0x38, 0x38, 0x09, 0x0f, 0x86, 0x02, 0x84, 0x9b, 0x10, 0x61,
		0x2b, 0x48, 0xd8, 0x0a, 0x13, 0x9e, 0x02, 0x85, 0xb6, 0x50, 0x21, 0x2e, 0x58, 0xca, 0x5b, 0x4e,
		0xae, 0x8e, 0xfc, 0x49, 0x8f, 0x2b, 0xe4, 0xe8, 0x5c, 0x64, 0xe3, 0xfa, 0x5d, 0x06, 0x5e, 0x77,
		0x9a, 0x8d, 0x68, 0x30, 0xb0, 0xd5, 0x96, 0xa3, 0x73, 0x3e, 0xf1, 0x21, 0x48, 0x7d, 0x9d, 0xc5,
		0xf2, 0x94, 0x8d, 0xc5, 0x85, 0xd5, 0xab, 0x39, 0xc3, 0xf6, 0xe7, 0xc0, 0xf6, 0xda, 0x96, 0x1b,
		0xee, 0xb9, 0xd6, 0x3e, 0x93, 0xb0, 0x56, 0x58, 0xbf, 0x96, 0x5b, 0xef, 0xd9, 0x56, 0xeb, 0xc8,
		0xf6, 0x02, 0xc7, 0xb7, 0x0f, 0xec, 0x76, 0xc0, 0xee, 0x43, 0xac, 0xe7, 0x1f, 0xa2, 0xdd, 0x69,
		0xd9, 0x63, 0xcb, 0x59, 0x18, 0xfe, 0xfd, 0x3d, 0x97, 0x41, 0xe9, 0x48, 0xcd, 0x6b, 0x44, 0xde,
		0x1e, 0x8c, 0xe4, 0xa7, 0x49, 0xb7, 0x83, 0x62, 0x49, 0xf1, 0xb6, 0xb1, 0xce, 0xc8, 0xee, 0x1f,
		0xba, 0x90, 0x6d, 0x63, 0x8d, 0xc7, 0x58, 0x84, 0x26, 0xae, 0xb4, 0x26, 0x76, 0x63, 0xa5, 0x2d,
		0xad, 0x33, 0x1e, 0xba, 0xf8, 0x20, 0x96, 0x76, 0x22, 0xf2, 0x69, 0x9b, 0xe2, 0xe1, 0xbc, 0x6a,
		0x07, 0xd1, 0xe5, 0x0d, 0x8b, 0xd7, 0x7e, 0x6f, 0x34, 0x9a, 0x5b, 0x8d, 0xc6, 0xea, 0xd6, 0xc6,
		0xd6, 0xea, 0x87, 0xcd, 0xcd, 0xb5, 0x26, 0xd5, 0x83, 0x06, 0x6f, 0x7d, 0x88, 0x4e, 0x36, 0x10,
		0x99, 0x18, 0xec, 0x5c, 0xd5, 0xb6, 0x0d, 0x39, 0x4a, 0x12, 0x4e, 0x26, 0x1f, 0x2a, 0x91, 0x91,
		0x6d, 0x2d, 0xcf, 0xc9, 0x53, 0x88, 0x4b, 0x9d, 0x45, 0xe6, 0x48, 0x2a, 0x1d, 0xf5, 0x12, 0x26,
		0xf3, 0xe8, 0x4c, 0x9c, 0x88, 0x4c, 0xc8, 0x3e, 0xbd, 0xc3, 0x68, 0x1e, 0xfa, 0x62, 0xa4, 0x25,
		0xa7, 0x49, 0x0a, 0x6f, 0x6f, 0x77, 0x6b, 0xeb, 0x43, 0x63, 0xdb, 0x70, 0x7c, 0xd3, 0xf1, 0x8d,
		0x71, 0x66, 0xdb, 0xc8, 0x83, 0x4a, 0xdc, 0x1b, 0x69, 0xa1, 0x8c, 0x93, 0x34, 0x33, 0xec, 0x4b,
		0x2d, 0xe4, 0x40, 0x0c, 0x0c, 0xa7, 0x7b, 0xd1, 0x30, 0x22, 0x39, 0xf8, 0x22, 0x9d, 0xee, 0x45,
		0xd3, 0xb8, 0xb9, 0x77, 0x74, 0xc5, 0x50, 0xa3, 0x9e, 0x19, 0xb8, 0x47, 0x46, 0x63, 0x85, 0xd3,
		0x1c, 0x8b, 0x59, 0xb2, 0xf9, 0x3a, 0x5d, 0x73, 0x9d, 0x74, 0xbe, 0x1e, 0x28, 0xef, 0x79, 0x7d,
		0x06, 0xae, 0xf9, 0xe7, 0xf2, 0x03, 0xdc, 0xcc, 0x43, 0xbf, 0xce, 0x48, 0x62, 0x73, 0x3d, 0xbe,
		0x63, 0x46, 0x34, 0x93, 0xaf, 0xe3, 0xdf, 0x70, 0xfd, 0x2a, 0xa6, 0xc0, 0x6a, 0x9a, 0xc3, 0xda,
		0x45, 0x29, 0x09, 0x0a, 0x6b, 0x51, 0xd1, 0x30, 0x0b, 0x33, 0x51, 0xd1, 0xf0, 0x8a, 0x9c, 0xa2,
		0xa2, 0x61, 0x1e, 0xe2, 0x12, 0x15, 0x0d, 0x73, 0x57, 0x92, 0xa8, 0x68, 0x58, 0x8a, 0x9c, 0x0c,
		0xbf, 0x8a, 0x86, 0x78, 0x20, 0xa4, 0x8e, 0xf5, 0x55, 0x26, 0x4e, 0x38, 0x55, 0x34, 0x70, 0xc8,
		0xd2, 0x3a, 0x93, 0x4b, 0xbb, 0x13, 0x29, 0x46, 0x71, 0x62, 0x0a, 0x86, 0xe3, 0x3b, 0x7e, 0xe8,
		0x1f, 0xee, 0x04, 0xee, 0x51, 0x18, 0xfc, 0xd9, 0xb5, 0xb9, 0x84, 0x8b, 0xe2, 0x28, 0x58, 0xc5,
		0x26, 0xbf, 0x68, 0xb0, 0xca, 0x31, 0xde, 0x26, 0xa4, 0x1b, 0x7a, 0xb6, 0xb5, 0xfb, 0xd1, 0xda,
		0x71, 0x5c, 0x27, 0xf8, 0x33, 0x74, 0xba, 0x47, 0x8d, 0xd0, 0xeb, 0x1c, 0x06, 0xb6, 0x17, 0x3a,
		0x2d, 0x46, 0x69, 0x8e, 0xf7, 0x20, 0x65, 0xee, 0xa4, 0x34, 0x41, 0x0a, 0x48, 0x79, 0x9a, 0x94,
		0xae, 0x67, 0xef, 0x39, 0x9f, 0x8b, 0x12, 0x0d, 0x1f, 0x9c, 0x80, 0x93, 0x27, 0x38, 0xf1, 0xe1,
		0x4d, 0x40, 0xc9, 0xc3, 0x94, 0x8c, 0xe5, 0xac, 0xcf, 0x49, 0xcf, 0x72, 0xd6, 0xb5, 0x3c, 0xe9,
		0xa9, 0xac, 0xce, 0x65, 0xe8, 0x77, 0xaa, 0x4b, 0x50, 0x13, 0x04, 0x81, 0xa0, 0x65, 0xd3, 0xc5,
		0xe0, 0x07, 0x7a, 0x19, 0xf4, 0xf0, 0xa7, 0x27, 0xe0, 0xb2, 0x73, 0x09, 0xd8, 0x10, 0xc3, 0xa6,
		0xd9, 0x60, 0x08, 0x0e, 0x2b, 0x8b, 0x8f, 0x91, 0xff, 0x40, 0xfe, 0xa3, 0x0a, 0x7e, 0x1b, 0x78,
		0xc0, 0x3f, 0x03, 0x90, 0xc5, 0x02, 0xe2, 0xdf, 0x06, 0xc4, 0x6a, 0xfd, 0x3b, 0x74, 0xad, 0x36,
		0xd2, 0xec, 0xc0, 0xe4, 0x29, 0x4c, 0x80, 0x08, 0x10, 0x79, 0x14, 0x91, 0x03, 0xa7, 0x1d, 0xee,
		0x7b, 0x9d, 0xc3, 0x2e, 0x30, 0x01, 0x26, 0x0f, 0x62, 0x72, 0x64, 0x39, 0xae, 0xb5, 0xe3, 0xda,
		0xe1, 0x8e, 0xd5, 0x6e, 0xfd, 0xc7, 0x69, 0x05, 0x1f, 0x81, 0x0b, 0x70, 0x79, 0x08, 0x97, 0x12,
		0x92, 0x70, 0xb7, 0xd3, 0xf6, 0x03, 0xcf, 0x72, 0xda, 0x01, 0xca, 0x46, 0x00, 0xcc, 0x83, 0xc0,
		0xd8, 0x9f, 0x03, 0xbb, 0xdd, 0xb2, 0x5b, 0x88, 0x47, 0xe0, 0xe5, 0x67, 0x78, 0x29, 0x96, 0xfe,
		0x9d, 0x76, 0x60, 0x7b, 0x7b, 0xd6, 0xae, 0x1d, 0x5a, 0xad, 0x96, 0x67, 0xfb, 0xf0, 0x30, 0x20,
		0xe6, 0x71, 0x62, 0xda, 0xb6, 0xb3, 0xff, 0x71, 0xa7, 0xe3, 0x01, 0x18, 0x00, 0xf3, 0x13, 0xc0,
		0x34, 0xe1, 0x62, 0x40, 0xcc, 0x2f, 0x12, 0x03, 0x17, 0x03, 0x60, 0x7e, 0x16, 0x18, 0xd7, 0x69,
		0x7f, 0x0a, 0xad, 0x20, 0xf0, 0x9c, 0x9d, 0xc3, 0xc0, 0x06, 0x2a, 0x40, 0xe5, 0x71, 0x54, 0x5a,
		0xb6, 0x6b, 0xfd, 0x09, 0x4a, 0x40, 0xc9, 0xd3, 0x94, 0x84, 0x47, 0x96, 0xe7, 0x58, 0x81, 0xd3,
		0x69, 0x83, 0x17, 0xf0, 0xf2, 0x28, 0x2f, 0x58, 0x20, 0x02, 0x22, 0x4f, 0x20, 0xe2, 0x76, 0x20,
		0x64, 0x01, 0xc9, 0x13, 0x90, 0x74, 0xbd, 0x4e, 0x60, 0xef, 0xe6, 0x21, 0x67, 0xbc, 0xaf, 0x0b,
		0xbc, 0x80, 0x97, 0x07, 0x78, 0x39, 0xb0, 0x3e, 0x8f, 0x99, 0xc1, 0x6a, 0x22, 0x68, 0xf9, 0x29,
		0x5a, 0x3c, 0xdb, 0xb7, 0xbd, 0x23, 0xac, 0x40, 0x83, 0x99, 0x9f, 0x64, 0xc6, 0x69, 0x5f, 0x7b,
		0x19, 0xcc, 0x9b, 0x41, 0xcb, 0xa3, 0xb4, 0x78, 0xb6, 0xef, 0xb4, 0x0e, 0x2d, 0x17, 0xbe, 0x05,
		0xb4, 0x3c, 0x4d, 0x0b, 0xba, 0x17, 0x80, 0x9e, 0x97, 0x53, 0xc4, 0xb2, 0x86, 0x9b, 0xa1, 0xd3,
		0xa9, 0x30, 0x3e, 0x40, 0x07, 0xe8, 0x3c, 0x0b, 0x1d, 0x86, 0x35, 0x76, 0xc0, 0x87, 0x0c, 0x3e,
		0x9c, 0x6b, 0xc1, 0x81, 0x11, 0x15, 0x8c, 0x98, 0xd7, 0x88, 0x03, 0x24, 0x2a, 0x20, 0xf1, 0xae,
		0x1d, 0x07, 0x47, 0x54, 0x38, 0xe2, 0x5e, 0x53, 0x0e, 0x92, 0x48, 0x91, 0xc4, 0xb7, 0x10, 0x14,
		0x20, 0x11, 0x02, 0xa9, 0x09, 0x97, 0x04, 0x92, 0x66, 0x44, 0x12, 0x5c, 0x12, 0x40, 0x7a, 0x29,
		0x48, 0x6c, 0x6b, 0xd6, 0x81, 0x10, 0x29, 0x84, 0x98, 0xad, 0xc9, 0x83, 0x1e, 0x7a, 0xf4, 0x70,
		0xac, 0x71, 0x07, 0x47, 0xa4, 0x38, 0xc2, 0x02, 0x1a, 0xd0, 0x79, 0x26, 0x3a, 0xbc, 0x6a, 0xe2,
		0x01, 0x0f, 0x29, 0x78, 0xd8, 0xd6, 0xca, 0x83, 0x23, 0x2a, 0x1c, 0x71, 0xae, 0xa1, 0x07, 0x45,
		0x94, 0x28, 0xe2, 0x5d, 0x5b, 0x0f, 0x96, 0xc8, 0xb0, 0xc4, 0xb8, 0xe6, 0x1e, 0x14, 0x51, 0xa1,
		0x88, 0x73, 0x2d, 0x3e, 0x28, 0xa2, 0x42, 0x51, 0x60, 0x87, 0x2d, 0x7b, 0xcf, 0x3a, 0x74, 0x83,
		0xf0, 0xc0, 0x0e, 0x3c, 0x67, 0x17, 0x10, 0x01, 0xa2, 0x5f, 0x85, 0xe8, 0xb0, 0x5d, 0x96, 0xa6,
		0xd9, 0xad, 0xd0, 0xf5, 0x51, 0x56, 0x04, 0x88, 0x9e, 0x01, 0xd1, 0x58, 0x5f, 0xdb, 0x2d, 0x44,
		0x34, 0x70, 0xf4, 0x02, 0x8e, 0x02, 0xc7, 0x75, 0xfe, 0xcb, 0x9c, 0x22, 0x9c, 0xe0, 0xb4, 0xec,
		0xa3, 0xb3, 0x22, 0x7b, 0x40, 0x19, 0xeb, 0x4b, 0xc0, 0x02, 0x1d, 0x09, 0x58, 0xa0, 0x17, 0xc1,
		0x0b, 0x74, 0x21, 0x68, 0xa9, 0x38, 0x2d, 0x93, 0xc3, 0xed, 0x77, 0xad, 0x6e, 0xd9, 0xbd, 0xc2,
		0x0b, 0x2d, 0x77, 0xbf, 0xe3, 0x39, 0xc1, 0xc7, 0x03, 0x90, 0x02, 0x52, 0x1e, 0x25, 0xe5, 0xfa,
		0x27, 0xa0, 0x02, 0x54, 0x1e, 0x41, 0x05, 0x2d, 0x71, 0xc0, 0xcf, 0xd2, 0x06, 0x27, 0x86, 0x9e,
		0xa7, 0xca, 0x04, 0x71, 0x0c, 0x5a, 0x25, 0x42, 0xc8, 0x90, 0x2e, 0xf1, 0x75, 0xa5, 0x7f, 0x3d,
		0x69, 0x5f, 0x47, 0xba, 0xd6, 0xd1, 0xb4, 0x8c, 0x68, 0xc0, 0xaa, 0x59, 0x52, 0xa6, 0x3a, 0xd2,
		0x71, 0x2a, 0x6b, 0xdb, 0x84, 0x43, 0x54, 0x4d, 0xf5, 0xcf, 0xc4, 0x79, 0x34, 0x8c, 0xf4, 0x59,
		0x1e, 0x8c, 0xea, 0xe9, 0x50, 0xc8, 0x7e, 0x2a, 0x4f, 0xe2, 0x53, 0x53, 0x0a, 0xfd, 0x2d, 0xcd,
		0xbe, 0x9a, 0xb1, 0x54, 0x3a, 0x92, 0x7d, 0x51, 0xbf, 0xfb, 0x82, 0xba, 0xf7, 0x4a, 0x7d, 0x98,
		0xa5, 0x3a, 0xed, 0xa7, 0x89, 0x2a, 0x9f, 0xd5, 0x63, 0x15, 0xab, 0x7a, 0x22, 0x2e, 0x44, 0x32,
		0x79, 0xa8, 0x27, 0xb1, 0xfc, 0x6a, 0x2a, 0x1d, 0x69, 0x61, 0x0e, 0x22, 0x1d, 0xf5, 0x22, 0x25,
		0xea, 0x89, 0x1a, 0xd6, 0x75, 0x72, 0xa1, 0xf2, 0x6f, 0xf5, 0x73, 0x6d, 0xc6, 0xc3, 0x8b, 0x86,
		0x99, 0x89, 0xa8, 0x7f, 0x16, 0xf5, 0xe2, 0x24, 0xd6, 0x57, 0xf5, 0x61, 0x26, 0x4e, 0xe2, 0x4b,
		0xa1, 0x26, 0x4f, 0xea, 0x6a, 0xd4, 0x2b, 0xde, 0x30, 0x7e, 0xac, 0x9f, 0x24, 0xd1, 0xa9, 0xaa,
		0x17, 0xff, 0x2b, 0x61, 0xf5, 0x5e, 0x53, 0x3a, 0x1b, 0xf5, 0xb5, 0x9c, 0xc4, 0xfe, 0x4e, 0x79,
		0xb5, 0xdb, 0xe3, 0x2b, 0xe9, 0x4c, 0x2e, 0x64, 0x78, 0xe7, 0x67, 0x75, 0xf7, 0x85, 0xb0, 0x3b,
		0xbd, 0xd2, 0xe5, 0xb3, 0xd0, 0x51, 0xb1, 0x0a, 0xdd, 0xe2, 0x4a, 0x8f, 0x1f, 0x42, 0x37, 0x96,
		0x5f, 0xfd, 0xfc, 0x92, 0xb4, 0x26, 0xd7, 0x39, 0x74, 0xd5, 0x30, 0x0c, 0x92, 0x0b, 0x95, 0x7f,
		0x0b, 0x0f, 0xb4, 0x33, 0xbc, 0x68, 0x78, 0x37, 0xae, 0x72, 0xd8, 0x9d, 0x5c, 0xe5, 0xc9, 0x93,
		0xd0, 0x1f, 0x5f, 0xe5, 0xc9, 0x63, 0xb8, 0x97, 0x5f, 0xe5, 0xb0, 0xf8, 0x2f, 0x69, 0x0a, 0x13,
		0x7a, 0x4e, 0x8a, 0x96, 0x45, 0xc4, 0xdc, 0x65, 0x4d, 0x5c, 0xea, 0x2c, 0x32, 0x47, 0x39, 0xd5,
		0xbd, 0x44, 0x90, 0x74, 0x95, 0xb5, 0x6f, 0x67, 0x42, 0x92, 0x9d, 0x5b, 0x13, 0x0e, 0x2d, 0xd3,
		0x19, 0xce, 0xca, 0xca, 0xd8, 0x2f, 0xd7, 0xf5, 0xd5, 0x50, 0x18, 0x7f, 0x18, 0x6f, 0xd2, 0xbe,
		0x99, 0x47, 0x05, 0x33, 0x51, 0x83, 0x9e, 0x99, 0xbf, 0xa8, 0xb6, 0x9d, 0xee, 0xed, 0x25, 0x81,
		0xae, 0x67, 0xef, 0x39, 0x9f, 0xc3, 0x3d, 0xd7, 0xda, 0xf7, 0xdf, 0x50, 0x76, 0xe8, 0x7e, 0x3a,
		0xca, 0xfa, 0x82, 0x74, 0x8c, 0x2f, 0xec, 0xfc, 0x24, 0xae, 0xbe, 0xa5, 0xd9, 0x20, 0xbf, 0x1f,
		0x05, 0xcf, 0xb4, 0xe7, 0xf9, 0xb5, 0x8f, 0x91, 0xb2, 0xb2, 0xd3, 0xd1, 0xb9, 0x90, 0xba, 0xb6,
		0x6d, 0xe8, 0x6c, 0x24, 0x88, 0x1b, 0x7c, 0xc3, 0xda, 0x19, 0x00, 0xff, 0x1b, 0xf2, 0x43, 0xbf,
		0x7e, 0x0b, 0x5a, 0x42, 0xf5, 0xb3, 0x78, 0x48, 0x5e, 0x73, 0xdf, 0x72, 0x8e, 0x1d, 0x99, 0x5c,
		0x19, 0xb1, 0xec, 0x27, 0xa3, 0x81, 0x30, 0xf4, 0x99, 0x30, 0x0a, 0x21, 0x6b, 0xf4, 0x53, 0xa9,
		0xa3, 0x58, 0x8a, 0xcc, 0xc8, 0x47, 0x6b, 0xf1, 0x0f, 0x6a, 0xd4, 0x33, 0x03, 0xf7, 0xc8, 0x88,
		0x95, 0x91, 0x23, 0xf4, 0x45, 0x36, 0x56, 0xa8, 0x8f, 0x62, 0x26, 0xce, 0xf1, 0xae, 0x83, 0x1c,
		0xdc, 0x00, 0x89, 0x7e, 0x3e, 0x94, 0x9d, 0xaf, 0xbc, 0xe7, 0x2f, 0x5f, 0x36, 0x06, 0x90, 0xce,
		0xa9, 0x52, 0x3a, 0x87, 0x9c, 0x55, 0xc7, 0x98, 0xbf, 0xf1, 0x4d, 0x73, 0x55, 0x2b, 0xbd, 0x45,
		0x30, 0x18, 0x55, 0x22, 0xa1, 0x45, 0x2b, 0x84, 0xd0, 0x71, 0x81, 0x84, 0x9c, 0x4d, 0xad, 0x18,
		0x31, 0xaa, 0xd0, 0x93, 0x66, 0x96, 0x8e, 0xb4, 0xc8, 0xcc, 0x78, 0x40, 0xce, 0xe7, 0x94, 0xb2,
		0xfe, 0xc7, 0xe6, 0x12, 0x73, 0xde, 0x9f, 0x62, 0x99, 0x5f, 0xc2, 0x35, 0x62, 0x66, 0xed, 0x16,
		0x0e, 0xa4, 0xb6, 0x6d, 0xac, 0x12, 0x33, 0x6c, 0xec, 0x42, 0x68, 0x06, 0xba, 0x29, 0x78, 0x93,
		0x54, 0x03, 0xc5, 0x50, 0x41, 0x7c, 0x36, 0x78, 0x73, 0x06, 0x38, 0x0e, 0xc2, 0x44, 0x27, 0x7f,
		0x6c, 0x26, 0x7c, 0xb7, 0x26, 0x79, 0x53, 0x30, 0xb1, 0x40, 0xc3, 0x4a, 0xe0, 0xb7, 0xe2, 0x8c,
		0xa8, 0xb2, 0x2f, 0x16, 0x21, 0xc9, 0x3a, 0x93, 0xa9, 0x3f, 0xa6, 0xbc, 0x22, 0x4d, 0x54, 0x00,
		0x90, 0x17, 0x02, 0x1c, 0x04, 0x01, 0x23, 0x61, 0xc0, 0x45, 0x20, 0xb0, 0x13, 0x0a, 0xec, 0x04,
		0x03, 0x2f, 0xe1, 0x40, 0x53, 0x40, 0x10, 0x15, 0x12, 0xe4, 0x05, 0x45, 0x69, 0x20, 0xdd, 0xec,
		0xc2, 0x83, 0xbe, 0x9d, 0x6a, 0x86, 0xe1, 0x21, 0xc1, 0xb1, 0x4a, 0xdc, 0x4c, 0xea, 0xc2, 0x83,
		0x93, 0x00, 0x61, 0x28, 0x44, 0xb8, 0x09, 0x12, 0xb6, 0xc2, 0x84, 0xad, 0x40, 0xe1, 0x29, 0x54,
		0x68, 0x0b, 0x16, 0xe2, 0xc2, 0xa5, 0xbc, 0xe5, 0xc1, 0xd5, 0x50, 0xf0, 0xf2, 0xb8, 0xc5, 0x62,
		0x44, 0x34, 0x18, 0x64, 0x42, 0xb1, 0x70, 0xbb, 0xd3, 0xb4, 0xc4, 0xef, 0x0c, 0x6c, 0xed, 0x46,
		0x5a, 0x8b, 0x4c, 0xb2, 0xd9, 0x7b, 0x5b, 0x7b, 0xfb, 0xd7, 0xaa, 0xf9, 0xe1, 0xf8, 0x9f, 0xbf,
		0xd6, 0xcc, 0x0f, 0xc7, 0xe3, 0xa7, 0x6b, 0xc5, 0xc3, 0xdf, 0xeb, 0xdf, 0xff, 0x59, 0xff, 0x6b,
		0xd5, 0x6c, 0x4c, 0x5e, 0x5d, 0xdf, 0xfc, 0x6b, 0xd5, 0xdc, 0x3c, 0x7e, 0xf7, 0xf6, 0xcb, 0x97,
		0x95, 0x5f, 0x7d, 0xcf, 0xbb, 0xbf, 0x37, 0xbe, 0xd3, 0x77, 0x83, 0xc7, 0x1c, 0xf0, 0xea, 0xf8,
		0xce, 0x67, 0x76, 0x8c, 0xfd, 0xef, 0xed, 0xbc, 0x28, 0x7b, 0xf7, 0x2f, 0x06, 0x9c, 0x21, 0xdc,
		0xbe, 0x80, 0x25, 0x06, 0x3b, 0x44, 0xee, 0xa7, 0x10, 0xc4, 0x89, 0xc8, 0x84, 0x2c, 0xa6, 0x0e,
		0x3c, 0x86, 0x2c, 0x9f, 0x4d, 0xf4, 0xd7, 0x1b, 0xe7, 0xf7, 0x76, 0xb7, 0xb6, 0x3e, 0x34, 0xb6,
		0x0d, 0xc7, 0x37, 0x1d, 0xdf, 0x18, 0x4f, 0x85, 0x0d, 0x4b, 0xeb, 0x2c, 0xee, 0x8d, 0xb4, 0x50,
		0xc6, 0x49, 0x9a, 0x19, 0xf6, 0xa5, 0x16, 0x72, 0x20, 0x06, 0x86, 0xd3, 0xbd, 0x68, 0x7c, 0x91,
		0x91, 0x2c, 0x9e, 0x35, 0x8d, 0x9b, 0x35, 0x42, 0x2b, 0x65, 0x59, 0xe9, 0xda, 0x1a, 0xa3, 0xce,
		0x1f, 0xdc, 0x66, 0xa7, 0x3f, 0x9a, 0xa5, 0x5e, 0x0f, 0x14, 0x66, 0x1d, 0x57, 0xb8, 0x4e, 0x58,
		0x7f, 0x38, 0x71, 0x7d, 0x9d, 0x91, 0x84, 0xc6, 0x0a, 0x4b, 0x66, 0xe5, 0x31, 0x2a, 0xf1, 0xab,
		0xa6, 0xc0, 0x6a, 0x9a, 0x43, 0xb2, 0xa3, 0x94, 0x04, 0x85, 0xb5, 0x58, 0x02, 0x99, 0x85, 0x99,
		0x58, 0x02, 0x79, 0x45, 0x4e, 0xb1, 0x04, 0x32, 0x0f, 0x71, 0x89, 0x25, 0x90, 0xb9, 0x2b, 0x49,
		0x2c, 0x81, 0x2c, 0x45, 0x4e, 0x86, 0xe1, 0x12, 0xc8, 0x40, 0x48, 0x1d, 0xeb, 0xab, 0x4c, 0x9c,
		0x70, 0x5a, 0x01, 0xd9, 0x64, 0x60, 0xab, 0x33, 0xb9, 0xb4, 0x3b, 0x91, 0x62, 0x14, 0x27, 0xae,
		0x7b, 0x91, 0x3b, 0xfe, 0xa4, 0xf7, 0x2b, 0xa7, 0xd6, 0xaf, 0x1c, 0x5b, 0xbe, 0x72, 0xed, 0x56,
		0x7f, 0xa7, 0x53, 0x87, 0xd3, 0x3d, 0x6a, 0x84, 0x93, 0xae, 0x9d, 0x9c, 0x0e, 0xdf, 0x47, 0x53,
		0xe9, 0x05, 0x90, 0xd2, 0x04, 0x29, 0x20, 0xe5, 0x69, 0x52, 0x6e, 0x76, 0xff, 0x01, 0x27, 0xe0,
		0xe4, 0x09, 0x4e, 0x7c, 0x78, 0x13, 0x50, 0xf2, 0x30, 0x25, 0x38, 0xca, 0x00, 0xf4, 0x2c, 0xaf,
		0xce, 0x65, 0xe8, 0x77, 0xaa, 0x4b, 0x50, 0x13, 0x04, 0x81, 0xa0, 0x65, 0xd3, 0xc5, 0xe0, 0x07,
		0x7a, 0x19, 0xf4, 0xf0, 0xa7, 0x27, 0xb0, 0xf6, 0x81, 0x0d, 0xb0, 0x79, 0x06, 0x36, 0xcd, 0x06,
		0xce, 0x6d, 0x7a, 0xdd, 0x2f, 0x9c, 0x6c, 0x8f, 0xfc, 0x47, 0x25, 0xfc, 0x36, 0xf0, 0x80, 0x7f,
		0x06, 0x20, 0x8b, 0x05, 0xe4, 0xce, 0x79, 0xe4, 0x56, 0xeb, 0xdf, 0xa1, 0x6b, 0xb5, 0x91, 0x66,
		0x07, 0x26, 0x4f, 0x61, 0x02, 0x44, 0x80, 0xc8, 0xa3, 0x88, 0x1c, 0x38, 0xed, 0x70, 0xdf, 0xeb,
		0x1c, 0x76, 0x81, 0x09, 0x30, 0x79, 0x10, 0x93, 0x23, 0xcb, 0x71, 0xad, 0x1d, 0xd7, 0x0e, 0x77,
		0xac, 0x76, 0xeb, 0x3f, 0x4e, 0x2b, 0xf8, 0x08, 0x5c, 0x80, 0xcb, 0x43, 0xb8, 0x94, 0x90, 0x84,
		0xbb, 0x9d, 0xb6, 0x1f, 0x78, 0x96, 0xd3, 0x0e, 0x50, 0x36, 0x02, 0x60, 0x1e, 0x04, 0xc6, 0xfe,
		0x1c, 0xd8, 0xed, 0x96, 0xdd, 0x42, 0x3c, 0x02, 0x2f, 0x3f, 0xc3, 0x4b, 0xb1, 0xf4, 0xef, 0xb4,
		0x03, 0xdb, 0xdb, 0xb3, 0x76, 0xed, 0xd0, 0x6a, 0xb5, 0x3c, 0xdb, 0x87, 0x87, 0x01, 0x31, 0x8f,
		0x13, 0xd3, 0xb6, 0x9d, 0xfd, 0x8f, 0x3b, 0x1d, 0x0f, 0xc0, 0x00, 0x98, 0x9f, 0x00, 0xa6, 0x09,
		0x17, 0x03, 0x62, 0x7e, 0x91, 0x18, 0xb8, 0x18, 0x00, 0xf3, 0xb3, 0xc0, 0xb8, 0x4e, 0xfb, 0x53,
		0x68, 0x05, 0x81, 0xe7, 0xec, 0x1c, 0x06, 0x36, 0x50, 0x01, 0x2a, 0x8f, 0xa3, 0xd2, 0xb2, 0x5d,
		0xeb, 0x4f, 0x50, 0x02, 0x4a, 0x9e, 0xa6, 0x24, 0x3c, 0xb2, 0x3c, 0xc7, 0x0a, 0x9c, 0x4e, 0x1b,
		0xbc, 0x80, 0x97, 0x47, 0x79, 0xc1, 0x02, 0x11, 0x10, 0x79, 0x02, 0x11, 0xb7, 0x03, 0x21, 0x0b,
		0x48, 0x9e, 0x80, 0xa4, 0xeb, 0x75, 0x02, 0x7b, 0x37, 0x0f, 0x39, 0xe3, 0x7d, 0x5d, 0xe0, 0x05,
		0xbc, 0x3c, 0xc0, 0xcb, 0x81, 0xf5, 0x79, 0xcc, 0x0c, 0x56, 0x13, 0x41, 0xcb, 0x4f, 0xd1, 0xe2,
		0xd9, 0xbe, 0xed, 0x1d, 0x61, 0x05, 0x1a, 0xcc, 0xfc, 0x24, 0x33, 0x4e, 0xfb, 0xda, 0xcb, 0x60,
		0xde, 0x0c, 0x5a, 0x1e, 0xa5, 0xc5, 0xb3, 0x7d, 0xa7, 0x75, 0x68, 0xb9, 0xf0, 0x2d, 0xa0, 0xe5,
		0x69, 0x5a, 0xd0, 0xbd, 0x00, 0xf4, 0xbc, 0x9c, 0x22, 0x96, 0x35, 0xdc, 0x0c, 0x9d, 0x4e, 0x85,
		0xf1, 0x01, 0x3a, 0x40, 0xe7, 0x59, 0xe8, 0x30, 0xac, 0xb1, 0x03, 0x3e, 0x64, 0xf0, 0xe1, 0x5c,
		0x0b, 0x0e, 0x8c, 0xa8, 0x60, 0xc4, 0xbc, 0x46, 0x1c, 0x20, 0x51, 0x01, 0x89, 0x77, 0xed, 0x38,
		0x38, 0xa2, 0xc2, 0x11, 0xf7, 0x9a, 0x72, 0x90, 0x44, 0x8a, 0x24, 0xbe, 0x85, 0xa0, 0x00, 0x89,
		0x10, 0x48, 0x4d, 0xb8, 0x24, 0x90, 0x34, 0x23, 0x92, 0xe0, 0x92, 0x00, 0xd2, 0x4b, 0x41, 0x62,
		0x5b, 0xb3, 0x0e, 0x84, 0x48, 0x21, 0xc4, 0x6c, 0x4d, 0x1e, 0xf4, 0xd0, 0xa3, 0x87, 0x63, 0x8d,
		0x3b, 0x38, 0x22, 0xc5, 0x11, 0x16, 0xd0, 0x80, 0xce, 0x33, 0xd1, 0xe1, 0x55, 0x13, 0x0f, 0x78,
		0x48, 0xc1, 0xc3, 0xb6, 0x56, 0x1e, 0x1c, 0x51, 0xe1, 0x88, 0x73, 0x0d, 0x3d, 0x28, 0xa2, 0x44,
		0x11, 0xef, 0xda, 0x7a, 0xb0, 0x44, 0x86, 0x25, 0xc6, 0x35, 0xf7, 0xa0, 0x88, 0x0a, 0x45, 0x9c,
		0x6b, 0xf1, 0x41, 0x11, 0x15, 0x8a, 0x02, 0x3b, 0x6c, 0xd9, 0x7b, 0xd6, 0xa1, 0x1b, 0x84, 0x07,
		0x76, 0xe0, 0x39, 0xbb, 0x80, 0x08, 0x10, 0xfd, 0x2a, 0x44, 0x87, 0xed, 0xb2, 0x34, 0xcd, 0x6e,
		0x85, 0xae, 0x8f, 0xb2, 0x22, 0x40, 0xf4, 0x0c, 0x88, 0xc6, 0xfa, 0xda, 0x6e, 0x21, 0xa2, 0x81,
		0xa3, 0x17, 0x70, 0x14, 0x38, 0xae, 0xf3, 0x5f, 0xe6, 0x14, 0xe1, 0x04, 0xa7, 0x65, 0x1f, 0x9d,
		0x15, 0xd9, 0x03, 0xca, 0x58, 0x5f, 0x02, 0x16, 0xe8, 0x48, 0xc0, 0x02, 0xbd, 0x08, 0x5e, 0xa0,
		0x0b, 0x41, 0x4b, 0xc5, 0x69, 0x99, 0x1c, 0x6e, 0xbf, 0x6b, 0x75, 0xcb, 0xee, 0x15, 0x5e, 0x68,
		0xb9, 0xfb, 0x1d, 0xcf, 0x09, 0x3e, 0x1e, 0x80, 0x14, 0x90, 0xf2, 0x28, 0x29, 0xd7, 0x3f, 0x01,
		0x15, 0xa0, 0xf2, 0x08, 0x2a, 0x68, 0x89, 0x03, 0x7e, 0x96, 0x36, 0x38, 0x31, 0xf4, 0x3c, 0x55,
		0x26, 0x88, 0x63, 0xd0, 0x2a, 0x11, 0x42, 0x86, 0x74, 0x89, 0xaf, 0x2b, 0xfd, 0xeb, 0x49, 0xfb,
		0x3a, 0xd2, 0xb5, 0x8e, 0xa6, 0x65, 0x44, 0x03, 0x56, 0xcd, 0x92, 0x32, 0xd5, 0x91, 0x8e, 0x53,
		0x59, 0xdb, 0x26, 0x1c, 0xa2, 0x6a, 0xaa, 0x7f, 0x26, 0xce, 0xa3, 0x61, 0xa4, 0xcf, 0xf2, 0x60,
		0x54, 0x4f, 0x87, 0x42, 0xf6, 0x53, 0x79, 0x12, 0x9f, 0x9a, 0x52, 0xe8, 0x6f, 0x69, 0xf6, 0xd5,
		0x8c, 0xa5, 0xd2, 0x91, 0xec, 0x8b, 0xfa, 0xdd, 0x17, 0xd4, 0xbd, 0x57, 0xea, 0xc3, 0x2c, 0xd5,
		0x69, 0x3f, 0x4d, 0x54, 0xf9, 0xac, 0x1e, 0xab, 0x58, 0xd5, 0x13, 0x71, 0x21, 0x92, 0xc9, 0x43,
		0x3d, 0x89, 0xe5, 0x57, 0x53, 0xe9, 0x48, 0x0b, 0x73, 0x10, 0xe9, 0xa8, 0x17, 0x29, 0x51, 0x4f,
		0xd4, 0xb0, 0xae, 0x93, 0x0b, 0x95, 0x7f, 0xab, 0x9f, 0x6b, 0x33, 0x1e, 0x5e, 0x34, 0xcc, 0x4c,
		0x44, 0xfd, 0xb3, 0xa8, 0x17, 0x27, 0xb1, 0xbe, 0xaa, 0x0f, 0x33, 0x71, 0x12, 0x5f, 0x0a, 0x35,
		0x79, 0x52, 0x57, 0xa3, 0x5e, 0xf1, 0x86, 0xf1, 0x63, 0xbd, 0x78, 0x83, 0x4a, 0x47, 0x59, 0x5f,
		0x98, 0x59, 0x3a, 0xd2, 0x22, 0x33, 0xe3, 0x41, 0xbd, 0xf8, 0x2b, 0x84, 0xd5, 0x7c, 0x4d, 0xe9,
		0x6c, 0xd4, 0xd7, 0x72, 0xa2, 0x05, 0x3a, 0xe5, 0xd5, 0x6f, 0x8f, 0xaf, 0xac, 0x33, 0xb9, 0xb0,
		0xe1, 0x9d, 0x9f, 0xd5, 0xdd, 0x17, 0xc2, 0xee, 0xf4, 0xca, 0x97, 0xcf, 0x42, 0x47, 0xc5, 0x2a,
		0x74, 0x8b, 0x2b, 0x3f, 0x7e, 0x08, 0xdd, 0x58, 0x7e, 0xf5, 0xf3, 0x4b, 0xd2, 0x9a, 0x5c, 0xf7,
		0xd0, 0x55, 0xc3, 0x30, 0x48, 0x2e, 0x54, 0xfe, 0x2d, 0x3c, 0xd0, 0xce, 0xf0, 0xa2, 0xe1, 0xdd,
		0xb8, 0xea, 0x61, 0x77, 0x72, 0xd5, 0x27, 0x4f, 0x42, 0x7f, 0x7c, 0xd5, 0x27, 0x8f, 0x61, 0xfe,
		0xfb, 0x7e, 0x71, 0xd1, 0xbd, 0xe2, 0x9a, 0x3b, 0x83, 0xb0, 0xf8, 0xff, 0x69, 0xaa, 0x16, 0x7a,
		0x1e, 0x8c, 0x96, 0x45, 0xc4, 0x7c, 0x69, 0x4d, 0x5c, 0xea, 0x2c, 0x32, 0x47, 0x39, 0xe2, 0xbd,
		0x44, 0x90, 0xf4, 0xa3, 0xb5, 0x6f, 0x67, 0x42, 0x92, 0x9d, 0x78, 0x13, 0x8e, 0x3b, 0xd3, 0xe9,
		0xcf, 0xca, 0xca, 0xd8, 0x49, 0xd7, 0xf5, 0xd5, 0x50, 0x18, 0x7f, 0x18, 0x6f, 0xd2, 0xbe, 0x99,
		0x87, 0x0c, 0x33, 0x51, 0x83, 0x9e, 0x99, 0xbf, 0xa8, 0xb6, 0x9d, 0xee, 0x0f, 0x9a, 0xd3, 0x4c,
		0xe6, 0x4d, 0x4e, 0xeb, 0x0d, 0x65, 0xff, 0x3e, 0x76, 0x8e, 0xa4, 0x25, 0x40, 0x61, 0xe7, 0x27,
		0x71, 0xf5, 0x2d, 0xcd, 0x06, 0xf9, 0x1d, 0x29, 0x88, 0xa6, 0x9d, 0x06, 0xa8, 0x7d, 0x8c, 0x94,
		0x95, 0x9d, 0x8e, 0xce, 0x85, 0xd4, 0xb5, 0x6d, 0x43, 0x67, 0x23, 0x41, 0xdc, 0xe0, 0x1b, 0xd6,
		0xce, 0x04, 0xf9, 0xdf, 0x90, 0x40, 0xfa, 0xf5, 0x9b, 0xd0, 0x12, 0xaa, 0x9f, 0xc5, 0x43, 0xf2,
		0xa2, 0xfc, 0x96, 0x83, 0xec, 0xc8, 0xe4, 0xca, 0x88, 0x65, 0x3f, 0x19, 0x0d, 0x84, 0xa1, 0xcf,
		0x84, 0xe1, 0x74, 0x2f, 0x1a, 0xc6, 0xd8, 0xaf, 0x18, 0x63, 0xd5, 0x65, 0x38, 0x2d, 0xa3, 0x9f,
		0x4a, 0x1d, 0xc5, 0x52, 0x64, 0x46, 0x3e, 0x7e, 0xbf, 0xc8, 0xfc, 0x37, 0xd5, 0xa8, 0x67, 0x06,
		0xee, 0x91, 0x11, 0x2b, 0xa3, 0x40, 0x6d, 0x6d, 0x6d, 0x85, 0xfa, 0xc0, 0x66, 0xe2, 0x2f, 0xef,
		0xfa, 0xcc, 0xc1, 0x0d, 0xb2, 0xe8, 0x67, 0x50, 0xd9, 0xb9, 0xcf, 0x7b, 0x2e, 0x74, 0xc6, 0x83,
		0x02, 0x19, 0xa1, 0x2a, 0x65, 0x84, 0xc8, 0x59, 0x75, 0x8c, 0x59, 0x1e, 0xdf, 0x4c, 0x59, 0xb5,
		0x33, 0x64, 0x04, 0xa3, 0x55, 0xf5, 0x72, 0x62, 0xb4, 0xe2, 0x0b, 0x1d, 0xff, 0x48, 0xc8, 0x13,
		0xd5, 0xe2, 0xe1, 0x45, 0xf3, 0xfe, 0xe8, 0xa0, 0xe6, 0x90, 0xca, 0x59, 0xc1, 0x8f, 0xcd, 0x25,
		0xe6, 0xd9, 0x3f, 0xc5, 0x32, 0xbf, 0x84, 0x6b, 0xc4, 0xcc, 0xda, 0x2d, 0xbc, 0x49, 0x6d, 0xdb,
		0x58, 0x25, 0x66, 0xd8, 0xd8, 0x9f, 0xd0, 0x8c, 0x82, 0x53, 0xf0, 0x26, 0xb9, 0x0a, 0x8a, 0x71,
		0x83, 0xf8, 0xdc, 0xf1, 0xe6, 0x7c, 0x71, 0x1c, 0xa1, 0x89, 0x4e, 0x15, 0xd9, 0x4c, 0x0f, 0x6f,
		0x4d, 0x09, 0xa7, 0x60, 0x62, 0x8d, 0x87, 0x95, 0xfa, 0x6f, 0xc5, 0x19, 0x51, 0xd9, 0x5f, 0xac,
		0x63, 0x92, 0x75, 0x26, 0x53, 0x7f, 0x4c, 0x79, 0x85, 0x9b, 0xa8, 0x00, 0x20, 0x2f, 0x04, 0x38,
		0x08, 0x02, 0x46, 0xc2, 0x80, 0x8b, 0x40, 0x60, 0x27, 0x14, 0xd8, 0x09, 0x06, 0x5e, 0xc2, 0x81,
		0xa6, 0x80, 0x20, 0x2a, 0x24, 0xc8, 0x0b, 0x8a, 0xd2, 0x40, 0xba, 0xd9, 0x85, 0x07, 0x7d, 0x3b,
		0xe5, 0x74, 0xe1, 0x8f, 0x04, 0xc7, 0x2a, 0x71, 0x33, 0xa9, 0x0b, 0x0f, 0x4e, 0x02, 0x84, 0xa1,
		0x10, 0xe1, 0x26, 0x48, 0xd8, 0x0a, 0x13, 0xb6, 0x02, 0x85, 0xa7, 0x50, 0xa1, 0x2d, 0x58, 0x88,
		0x0b, 0x97, 0xf2, 0x96, 0x07, 0x57, 0x43, 0xc1, 0xcb, 0xe3, 0x16, 0x8b, 0x11, 0xd1, 0x60, 0x90,
		0x09, 0xc5, 0xc2, 0xed, 0x4e, 0xd3, 0x12, 0xbf, 0x33, 0xb0, 0xb5, 0x1b, 0x69, 0x2d, 0x32, 0xc9,
		0x66, 0x6f, 0x6f, 0xed, 0xed, 0xdb, 0xbf, 0x56, 0xcd, 0x0f, 0x91, 0x79, 0x62, 0x99, 0x7b, 0xc7,
		0x7f, 0xaf, 0xbd, 0x6f, 0x7c, 0xdf, 0x7e, 0xf7, 0xf7, 0xd6, 0xf7, 0xbb, 0x2f, 0xfe, 0xf3, 0xa3,
		0x5f, 0x5b, 0x7b, 0xbf, 0xf5, 0x7d, 0xfb, 0x81, 0x7f, 0x69, 0x7e, 0xdf, 0xfe, 0xc9, 0xff, 0x63,
		0xf3, 0xfb, 0xdb, 0x7b, 0xbf, 0x9a, 0xbf, 0xbe, 0xfe, 0xd0, 0x1b, 0x1a, 0x0f, 0xbc, 0x61, 0xe3,
		0xa1, 0x37, 0x6c, 0x3c, 0xf0, 0x86, 0x07, 0x4d, 0x5a, 0x7f, 0xe0, 0x0d, 0x9b, 0xdf, 0xff, 0xb9,
		0xf7, 0xfb, 0x6f, 0x7f, 0xfc, 0xab, 0xcd, 0xef, 0xef, 0xfe, 0x79, 0xe8, 0xdf, 0xb6, 0xbe, 0xff,
		0xb3, 0xfd, 0xee, 0x1d, 0xfd, 0xc0, 0x70, 0xcc, 0x61, 0xc0, 0x75, 0x7c, 0xe7, 0x33, 0xbb, 0x51,
		0xf7, 0x3f, 0x0c, 0xbb, 0x45, 0x0d, 0xbb, 0x7f, 0x31, 0x18, 0x77, 0x10, 0x64, 0x2f, 0x18, 0x5b,
		0x0c, 0xb6, 0x21, 0xdd, 0x4f, 0x32, 0x89, 0x13, 0x91, 0x09, 0x59, 0x4c, 0x2e, 0x79, 0xb8, 0x30,
		0x3e, 0x6d, 0x1c, 0xae, 0x5b, 0x37, 0xec, 0xed, 0x6e, 0x6d, 0x7d, 0x68, 0x6c, 0x1b, 0x8e, 0x6f,
		0x3a, 0xbe, 0x31, 0x4e, 0x96, 0x18, 0x96, 0xd6, 0x59, 0xdc, 0x1b, 0x69, 0xa1, 0x8c, 0x93, 0x34,
		0x33, 0xec, 0x4b, 0x2d, 0xe4, 0x40, 0x0c, 0x8a, 0x12, 0xe5, 0x2f, 0x32, 0x92, 0xc5, 0xb3, 0xa6,
		0x71, 0xb3, 0xa4, 0x6c, 0xa5, 0xac, 0x4a, 0x5e, 0x5b, 0x5f, 0x61, 0xd4, 0x7c, 0x86, 0x5b, 0x02,
		0xe3, 0x47, 0x89, 0x8c, 0xeb, 0x91, 0xc2, 0xac, 0xe9, 0x0f, 0xd7, 0x9c, 0xc6, 0x0f, 0x73, 0x1b,
		0xaf, 0x34, 0x94, 0xd0, 0xdc, 0x63, 0xc9, 0xac, 0x3c, 0xc6, 0x56, 0x8e, 0xaa, 0x69, 0xb0, 0x9a,
		0xe6, 0x90, 0x10, 0x2b, 0x45, 0x41, 0x61, 0x2d, 0x96, 0xc9, 0x66, 0x61, 0x26, 0x96, 0xc9, 0x5e,
		0x91, 0x53, 0x2c, 0x93, 0xcd, 0x43, 0x5d, 0x62, 0x99, 0x6c, 0xee, 0x52, 0x12, 0xcb, 0x64, 0x4b,
		0x91, 0x95, 0x61, 0xb8, 0x4c, 0x36, 0x10, 0x52, 0xc7, 0xfa, 0x2a, 0x13, 0x27, 0x9c, 0x56, 0xc9,
		0x36, 0x19, 0xd8, 0xea, 0x4c, 0x2e, 0xed, 0x4e, 0xa4, 0x18, 0xc5, 0x89, 0xeb, 0x7e, 0xf8, 0x8e,
		0x3f, 0xe9, 0x3f, 0xcc, 0xa9, 0xfd, 0x30, 0xc7, 0xb6, 0xc3, 0x5c, 0x4f, 0x4c, 0x78, 0xb4, 0x1d,
		0x0c, 0x1a, 0x9b, 0x83, 0x94, 0x47, 0x48, 0x69, 0x82, 0x14, 0x90, 0xf2, 0x34, 0x29, 0x5d, 0xcf,
		0xde, 0x73, 0x3e, 0x87, 0x7b, 0xae, 0xb5, 0xef, 0x83, 0x13, 0x70, 0xf2, 0x04, 0x27, 0x3e, 0xbc,
		0x09, 0x28, 0x79, 0x98, 0x12, 0x1c, 0xa7, 0x01, 0x7a, 0x96, 0x57, 0xe7, 0x32, 0xf4, 0x3b, 0xd5,
		0x25, 0xa8, 0x09, 0x82, 0x40, 0xd0, 0xb2, 0xe9, 0x62, 0xf0, 0x03, 0xbd, 0x0c, 0x7a, 0xf8, 0xd3,
		0x13, 0x58, 0xfb, 0xc0, 0x06, 0xd8, 0x3c, 0x03, 0x9b, 0x66, 0x03, 0x67, 0x87, 0xbd, 0xee, 0xd7,
		0x31, 0xf2, 0x1f, 0xc8, 0x7f, 0x54, 0xc1, 0x6f, 0x03, 0x0f, 0xf8, 0x67, 0x00, 0xb2, 0x58, 0x40,
		0xee, 0x9c, 0x89, 0x6f, 0xb5, 0xfe, 0x1d, 0xba, 0x56, 0x1b, 0x69, 0x76, 0x60, 0xf2, 0x14, 0x26,
		0x40, 0x04, 0x88, 0x3c, 0x8a, 0xc8, 0x81, 0xd3, 0x0e, 0xf7, 0xbd, 0xce, 0x61, 0x17, 0x98, 0x00,
		0x93, 0x07, 0x31, 0x39, 0xb2, 0x1c, 0xd7, 0xda, 0x71, 0xed, 0x70, 0xc7, 0x6a, 0xb7, 0xfe, 0xe3,
		0xb4, 0x82, 0x8f, 0xc0, 0x05, 0xb8, 0x3c, 0x84, 0x4b, 0x09, 0x49, 0xb8, 0xdb, 0x69, 0xfb, 0x81,
		0x67, 0x39, 0xed, 0x00, 0x65, 0x23, 0x00, 0xe6, 0x41, 0x60, 0xec, 0xcf, 0x81, 0xdd, 0x6e, 0xd9,
		0x2d, 0xc4, 0x23, 0xf0, 0xf2, 0x33, 0xbc, 0x14, 0x4b, 0xff, 0x4e, 0x3b, 0xb0, 0xbd, 0x3d, 0x6b,
		0xd7, 0x0e, 0xad, 0x56, 0xcb, 0xb3, 0x7d, 0x78, 0x18, 0x10, 0xf3, 0x38, 0x31, 0x6d, 0xdb, 0xd9,
		0xff, 0xb8, 0xd3, 0xf1, 0x00, 0x0c, 0x80, 0xf9, 0x09, 0x60, 0x9a, 0x70, 0x31, 0x20, 0xe6, 0x17,
		0x89, 0x81, 0x8b, 0x01, 0x30, 0x3f, 0x0b, 0x8c, 0xeb, 0xb4, 0x3f, 0x85, 0x56, 0x10, 0x78, 0xce,
		0xce, 0x61, 0x60, 0x03, 0x15, 0xa0, 0xf2, 0x38, 0x2a, 0x2d, 0xdb, 0xb5, 0xfe, 0x04, 0x25, 0xa0,
		0xe4, 0x69, 0x4a, 0xc2, 0x23, 0xcb, 0x73, 0xac, 0xc0, 0xe9, 0xb4, 0xc1, 0x0b, 0x78, 0x79, 0x94,
		0x17, 0x2c, 0x10, 0x01, 0x91, 0x27, 0x10, 0x71, 0x3b, 0x10, 0xb2, 0x80, 0xe4, 0x09, 0x48, 0xba,
		0x5e, 0x27, 0xb0, 0x77, 0xf3, 0x90, 0x33, 0xde, 0xd7, 0x05, 0x5e, 0xc0, 0xcb, 0x03, 0xbc, 0x1c,
		0x58, 0x9f, 0xc7, 0xcc, 0x60, 0x35, 0x11, 0xb4, 0xfc, 0x14, 0x2d, 0x9e, 0xed, 0xdb, 0xde, 0x11,
		0x56, 0xa0, 0xc1, 0xcc, 0x4f, 0x32, 0xe3, 0xb4, 0xaf, 0xbd, 0x0c, 0xe6, 0xcd, 0xa0, 0xe5, 0x51,
		0x5a, 0x3c, 0xdb, 0x77, 0x5a, 0x87, 0x96, 0x0b, 0xdf, 0x02, 0x5a, 0x9e, 0xa6, 0x05, 0xdd, 0x0b,
		0x40, 0xcf, 0xcb, 0x29, 0x62, 0x59, 0xc3, 0xcd, 0xd0, 0xe9, 0x54, 0x18, 0x1f, 0xa0, 0x03, 0x74,
		0x9e, 0x85, 0x0e, 0xc3, 0x1a, 0x3b, 0xe0, 0x43, 0x06, 0x1f, 0xce, 0xb5, 0xe0, 0xc0, 0x88, 0x0a,
		0x46, 0xcc, 0x6b, 0xc4, 0x01, 0x12, 0x15, 0x90, 0x78, 0xd7, 0x8e, 0x83, 0x23, 0x2a, 0x1c, 0x71,
		0xaf, 0x29, 0x07, 0x49, 0xa4, 0x48, 0xe2, 0x5b, 0x08, 0x0a, 0x90, 0x08, 0x81, 0xd4, 0x84, 0x4b,
		0x02, 0x49, 0x33, 0x22, 0x09, 0x2e, 0x09, 0x20, 0xbd, 0x14, 0x24, 0xb6, 0x35, 0xeb, 0x40, 0x88,
		0x14, 0x42, 0xcc, 0xd6, 0xe4, 0x41, 0x0f, 0x3d, 0x7a, 0x38, 0xd6, 0xb8, 0x83, 0x23, 0x52, 0x1c,
		0x61, 0x01, 0x0d, 0xe8, 0x3c, 0x13, 0x1d, 0x5e, 0x35, 0xf1, 0x80, 0x87, 0x14, 0x3c, 0x6c, 0x6b,
		0xe5, 0xc1, 0x11, 0x15, 0x8e, 0x38, 0xd7, 0xd0, 0x83, 0x22, 0x4a, 0x14, 0xf1, 0xae, 0xad, 0x07,
		0x4b, 0x64, 0x58, 0x62, 0x5c, 0x73, 0x0f, 0x8a, 0xa8, 0x50, 0xc4, 0xb9, 0x16, 0x1f, 0x14, 0x51,
		0xa1, 0x28, 0xb0, 0xc3, 0x96, 0xbd, 0x67, 0x1d, 0xba, 0x41, 0x78, 0x60, 0x07, 0x9e, 0xb3, 0x0b,
		0x88, 0x00, 0xd1, 0xaf, 0x42, 0x74, 0xd8, 0x2e, 0x4b, 0xd3, 0xec, 0x56, 0xe8, 0xfa, 0x28, 0x2b,
		0x02, 0x44, 0xcf, 0x80, 0x68, 0xac, 0xaf, 0xed, 0x16, 0x22, 0x1a, 0x38, 0x7a, 0x01, 0x47, 0x81,
		0xe3, 0x3a, 0xff, 0x65, 0x4e, 0x11, 0x4e, 0x70, 0x5a, 0xf6, 0xd1, 0x59, 0x91, 0x3d, 0xa0, 0x8c,
		0xf5, 0x25, 0x60, 0x81, 0x8e, 0x04, 0x2c, 0xd0, 0x8b, 0xe0, 0x05, 0xba, 0x10, 0xb4, 0x54, 0x9c,
		0x96, 0xc9, 0xe1, 0xf6, 0xbb, 0x56, 0xb7, 0xec, 0x5e, 0xe1, 0x85, 0x96, 0xbb, 0xdf, 0xf1, 0x9c,
		0xe0, 0xe3, 0x01, 0x48, 0x01, 0x29, 0x8f, 0x92, 0x72, 0xfd, 0x13, 0x50, 0x01, 0x2a, 0x8f, 0xa0,
		0x82, 0x96, 0x38, 0xe0, 0x67, 0x69, 0x83, 0x13, 0x43, 0xcf, 0x53, 0x65, 0x82, 0x38, 0x06, 0xad,
		0x12, 0x21, 0x64, 0x48, 0x97, 0xf8, 0xba, 0xd2, 0xbf, 0x9e, 0xb4, 0xaf, 0x23, 0x5d, 0xeb, 0x68,
		0x5a, 0x46, 0x34, 0x60, 0xd5, 0x2c, 0x29, 0x53, 0x1d, 0xe9, 0x38, 0x95, 0xb5, 0x6d, 0xc2, 0x21,
		0xaa, 0xa6, 0xfa, 0x67, 0xe2, 0x3c, 0x1a, 0x46, 0xfa, 0x2c, 0x0f, 0x46, 0xf5, 0x74, 0x28, 0x64,
		0x3f, 0x95, 0x27, 0xf1, 0xa9, 0x29, 0x85, 0xfe, 0x96, 0x66, 0x5f, 0xcd, 0x58, 0x2a, 0x1d, 0xc9,
		0xbe, 0xa8, 0xdf, 0x7d, 0x41, 0xdd, 0x7b, 0xa5, 0x3e, 0xcc, 0x52, 0x9d, 0xf6, 0xd3, 0x44, 0x95,
		0xcf, 0xea, 0xb1, 0x8a, 0x55, 0x3d, 0x11, 0x17, 0x22, 0x99, 0x3c, 0xd4, 0x93, 0x58, 0x7e, 0x35,
		0x95, 0x8e, 0xb4, 0x30, 0x07, 0x91, 0x8e, 0x7a, 0x91, 0x12, 0xf5, 0x44, 0x0d, 0xeb, 0x3a, 0xb9,
		0x50, 0xf9, 0xb7, 0xfa, 0xb9, 0x36, 0xe3, 0xe1, 0x45, 0xc3, 0xcc, 0x44, 0xd4, 0x3f, 0x8b, 0x7a,
		0x71, 0x12, 0xeb, 0xab, 0xfa, 0x30, 0x13, 0x27, 0xf1, 0xa5, 0x50, 0x93, 0x27, 0x75, 0x35, 0xea,
		0x15, 0x6f, 0x18, 0x3f, 0xd6, 0xe3, 0xe1, 0x45, 0xd3, 0x54, 0xe9, 0x28, 0xeb, 0x0b, 0x33, 0x4b,
		0x47, 0x5a, 0x64, 0x66, 0x3c, 0xa8, 0x17, 0x7f, 0x85, 0xb0, 0x9a, 0xaf, 0x29, 0x9d, 0x8d, 0xfa,
		0x5a, 0x4e, 0xb4, 0x40, 0xa7, 0xbc, 0xfa, 0xed, 0xf1, 0x95, 0x75, 0x26, 0x17, 0x36, 0xbc, 0xf3,
		0xb3, 0xba, 0xfb, 0x42, 0xd8, 0x9d, 0x5e, 0xf9, 0xf2, 0x59, 0xe8, 0xa8, 0x58, 0x85, 0x6e, 0x71,
		0xe5, 0xc7, 0x0f, 0xa1, 0x1b, 0xcb, 0xaf, 0x7e, 0x7e, 0x49, 0x5a, 0x93, 0xeb, 0x1e, 0xba, 0x6a,
		0x18, 0x06, 0xc9, 0x85, 0xca, 0xbf, 0x85, 0x07, 0xda, 0x19, 0x5e, 0x34, 0xbc, 0x1b, 0x57, 0x3d,
		0xec, 0x4e, 0xae, 0xfa, 0xe4, 0x49, 0xe8, 0x8f, 0xaf, 0xfa, 0xe4, 0x31, 0x74, 0x86, 0x17, 0x4d,
		0xbf, 0xb8, 0xe8, 0x5e, 0x71, 0xcd, 0x9d, 0x41, 0x58, 0xfc, 0xff, 0x34, 0x55, 0x0b, 0x3d, 0x0f,
		0x46, 0xcb, 0x22, 0x62, 0xbe, 0xb4, 0x26, 0x2e, 0x75, 0x16, 0x99, 0xa3, 0x1c, 0xf1, 0x5e, 0x22,
		0x48, 0xfa, 0xd1, 0xda, 0xb7, 0x33, 0x21, 0xc9, 0x4e, 0xbc, 0x09, 0xc7, 0x9d, 0xe9, 0xf4, 0x67,
		0x65, 0x65, 0xec, 0xa4, 0xeb, 0xfa, 0x6a, 0x28, 0x8c, 0x3f, 0x8c, 0x37, 0x69, 0xdf, 0xcc, 0x43,
		0x86, 0x99, 0xa8, 0x41, 0xcf, 0xcc, 0x5f, 0x54, 0xdb, 0x4e, 0xf7, 0x07, 0x9d, 0x20, 0x26, 0xf3,
		0x26, 0xa7, 0xf5, 0x86, 0xb2, 0x7f, 0x1f, 0x3b, 0x47, 0xd2, 0x12, 0xa0, 0xb0, 0xf3, 0x93, 0xb8,
		0xfa, 0x96, 0x66, 0x83, 0xfc, 0x8e, 0x14, 0x44, 0xd3, 0x4e, 0x03, 0xd4, 0x3e, 0x46, 0xca, 0xca,
		0x4e, 0x47, 0xe7, 0x42, 0xea, 0xda, 0xb6, 0xa1, 0xb3, 0x91, 0x20, 0x6e, 0xf0, 0x0d, 0x6b, 0x67,
		0x82, 0xfc, 0x6f, 0x48, 0x20, 0xfd, 0xfa, 0x4d, 0x68, 0x09, 0xd5, 0xcf, 0xe2, 0x21, 0x79, 0x51,
		0x7e, 0xcb, 0x41, 0x76, 0x64, 0x72, 0x65, 0xc4, 0xb2, 0x9f, 0x8c, 0x06, 0xc2, 0xd0, 0x67, 0xc2,
		0x70, 0xba, 0x17, 0x4d, 0x63, 0xec, 0x57, 0x8c, 0xb1, 0xea, 0x32, 0x9c, 0x96, 0xd1, 0x4f, 0xa5,
		0x8e, 0x62, 0x29, 0x32, 0x23, 0x1f, 0xbf, 0x5f, 0x64, 0xfe, 0x9b, 0x6a, 0xd4, 0x33, 0x03, 0xf7,
		0xc8, 0x88, 0x95, 0x51, 0xa0, 0xb6, 0xb6, 0xbe, 0x42, 0x7d, 0x60, 0x33, 0xf1, 0x97, 0x77, 0x7d,
		0xe6, 0xe0, 0x06, 0x59, 0xf4, 0x33, 0xa8, 0xec, 0xdc, 0xe7, 0x3d, 0x17, 0x3a, 0xe3, 0x41, 0x81,
		0x8c, 0x50, 0x95, 0x32, 0x42, 0xe4, 0xac, 0x3a, 0xc6, 0x2c, 0x8f, 0x6f, 0xa6, 0xac, 0xda, 0x19,
		0x32, 0x82, 0xd1, 0xaa, 0x7a, 0x39, 0x31, 0x5a, 0xf1, 0x85, 0x8e, 0x7f, 0x24, 0xe4, 0x89, 0x6a,
		0xe3, 0x31, 0x63, 0xaa, 0x78, 0xa0, 0xc8, 0xb9, 0xa1, 0x72, 0x2e, 0x70, 0xd3, 0x48, 0x62, 0x5e,
		0xfc, 0x53, 0x2c, 0x73, 0x25, 0xbc, 0x46, 0xcc, 0xac, 0xdd, 0xc2, 0x73, 0xd4, 0xb6, 0x8d, 0x55,
		0x62, 0x86, 0x8d, 0x7d, 0x07, 0xcd, 0x88, 0x37, 0xc5, 0x6d, 0x92, 0x97, 0xa0, 0x18, 0x23, 0x88,
		0xcf, 0x13, 0x6f, 0xce, 0x0d, 0xc7, 0x83, 0x96, 0xe8, 0xb4, 0x90, 0xcd, 0x54, 0xf0, 0xd6, 0xf4,
		0x6f, 0x0a, 0x26, 0xd6, 0x73, 0x58, 0x29, 0xfd, 0x56, 0x9c, 0xd1, 0x74, 0x78, 0xd7, 0x71, 0x95,
		0xae, 0x47, 0xb9, 0xaf, 0x01, 0xa8, 0xba, 0x14, 0x9a, 0x52, 0x80, 0xbc, 0x24, 0xe0, 0x20, 0x0d,
		0x18, 0x49, 0x04, 0x2e, 0x52, 0x81, 0x9d, 0x64, 0x60, 0x27, 0x1d, 0x78, 0x49, 0x08, 0x9a, 0x52,
		0x82, 0xa8, 0xa4, 0x20, 0x2f, 0x2d, 0x4a, 0x03, 0xc7, 0x95, 0x68, 0x6c, 0x56, 0x1d, 0xa9, 0x17,
		0xce, 0x31, 0x10, 0x1a, 0x6c, 0x04, 0x07, 0x27, 0xe1, 0xc1, 0x50, 0x80, 0x70, 0x13, 0x22, 0x6c,
		0x05, 0x09, 0x5b, 0x61, 0xc2, 0x53, 0xa0, 0xd0, 0x16, 0x2a, 0xc4, 0x05, 0x0b, 0x1b, 0xe1, 0x52,
		0x1a, 0x1a, 0x25, 0xa7, 0x69, 0x16, 0xeb, 0xb3, 0x73, 0x3e, 0x0e, 0x6c, 0x1a, 0x23, 0xae, 0x4d,
		0x67, 0xe2, 0x07, 0x26, 0xc2, 0x66, 0x95, 0x89, 0xb9, 0x5c, 0x04, 0x0e, 0x47, 0xa1, 0xc3, 0x58,
		0xf0, 0x70, 0x15, 0x3e, 0xec, 0x05, 0x10, 0x7b, 0x21, 0xc4, 0x5b, 0x10, 0xf1, 0x10, 0x46, 0x4c,
		0x04, 0x52, 0x89, 0x42, 0x70, 0x35, 0x14, 0x3c, 0x3d, 0xf6, 0x28, 0x96, 0xfa, 0x77, 0x4e, 0xfe,
		0x7a, 0x22, 0x3f, 0x36, 0x19, 0x99, 0xec, 0x45, 0xf2, 0x54, 0xb0, 0x6b, 0x80, 0xc2, 0xaf, 0x75,
		0x45, 0xed, 0x20, 0x96, 0xec, 0x02, 0x79, 0x69, 0x7c, 0xd1, 0x27, 0x87, 0x8f, 0x4e, 0xbd, 0x67,
		0xff, 0x5e, 0x16, 0xf5, 0x75, 0x9c, 0xca, 0x56, 0x7c, 0x1a, 0x6b, 0xc5, 0xf8, 0x83, 0xb4, 0xc5,
		0x69, 0xa4, 0xe3, 0x8b, 0xfc, 0x5e, 0x9c, 0x44, 0x89, 0x12, 0xe8, 0x93, 0x33, 0x8f, 0xa1, 0x1b,
		0x5d, 0xf2, 0x1f, 0xba, 0xeb, 0x9b, 0x9b, 0x18, 0xbc, 0x18, 0xbc, 0x4b, 0x20, 0xcc, 0xf9, 0x59,
		0xcb, 0xa3, 0x97, 0x12, 0xfd, 0xeb, 0xc9, 0x20, 0xb8, 0xd4, 0x4e, 0x92, 0xe8, 0x54, 0xf1, 0x4b,
		0x05, 0x8f, 0xcd, 0x46, 0x1a, 0xf8, 0x35, 0xcc, 0x45, 0x1a, 0x78, 0x8e, 0x20, 0x23, 0x0d, 0x3c,
		0xbf, 0x61, 0x88, 0x34, 0xf0, 0x82, 0x3f, 0x00, 0xd2, 0xc0, 0xd0, 0x1c, 0x13, 0x14, 0xf8, 0xa6,
		0x81, 0x85, 0x1c, 0x9d, 0x8b, 0x2c, 0x62, 0xd2, 0x23, 0xe2, 0xae, 0x08, 0x59, 0x6b, 0x30, 0xb2,
		0xd9, 0x96, 0xa3, 0x73, 0x7e, 0x71, 0x26, 0x48, 0x7d, 0x9d, 0xc5, 0xf2, 0x94, 0x65, 0x92, 0xa6,
		0xb6, 0x5a, 0x34, 0x33, 0xb6, 0xad, 0xd6, 0x91, 0xed, 0x05, 0x8e, 0x6f, 0x1f, 0xd8, 0xed, 0xa0,
		0xc6, 0x30, 0x4b, 0xb6, 0x96, 0x7f, 0x8e, 0x76, 0xa7, 0x65, 0x73, 0x34, 0x7e, 0x7d, 0x6c, 0x7c,
		0xd8, 0xfd, 0xd8, 0xe5, 0x68, 0xfe, 0x46, 0x6e, 0xbe, 0xfd, 0xb9, 0xeb, 0x3a, 0xbb, 0x4e, 0x10,
		0xb6, 0x0f, 0x5d, 0x97, 0xe3, 0xa7, 0x68, 0xe4, 0x9f, 0xe2, 0xc8, 0x72, 0x0f, 0x59, 0x22, 0xb4,
		0x99, 0x5b, 0xef, 0x76, 0x76, 0x2d, 0x97, 0x57, 0xeb, 0x71, 0x66, 0x19, 0xf9, 0x5a, 0x90, 0x3a,
		0x85, 0xa0, 0x65, 0xe8, 0xea, 0x6f, 0x8f, 0xd0, 0x6d, 0x63, 0x83, 0x21, 0xe6, 0x63, 0xc2, 0x59,
		0x2d, 0x72, 0x5f, 0x2b, 0xca, 0x3c, 0x3a, 0x91, 0xdf, 0xf7, 0xf0, 0x80, 0xe9, 0x45, 0x6c, 0xda,
		0x36, 0xd6, 0x19, 0x1a, 0x7f, 0x57, 0xdd, 0xb0, 0x5c, 0xc2, 0x99, 0x44, 0xa6, 0x6d, 0xa3, 0x81,
		0x55, 0x10, 0xcc, 0xf7, 0xe9, 0xfb, 0xe9, 0x58, 0x69, 0x4b, 0xeb, 0x8c, 0xd7, 0x9c, 0xff, 0x20,
		0x96, 0x76, 0x22, 0xce, 0x85, 0xe4, 0xb6, 0xd0, 0x5b, 0x3b, 0x88, 0x2e, 0x6f, 0x58, 0xbe, 0xf6,
		0x7b, 0xa3, 0xd1, 0xdc, 0x6a, 0x34, 0x56, 0xb7, 0x36, 0xb6, 0x56, 0x3f, 0x6c, 0x6e, 0xae, 0x35,
		0xd7, 0x38, 0x55, 0x85, 0x75, 0xb2, 0x81, 0xc8, 0xc4, 0x60, 0xe7, 0xaa, 0xb6, 0x6d, 0xc8, 0x51,
		0x92, 0x70, 0x34, 0xfd, 0x50, 0x89, 0x8c, 0xd5, 0x4a, 0x3b, 0xd6, 0x57, 0x67, 0x71, 0xff, 0x2f,
		0x26, 0xf5, 0x2e, 0xcc, 0xd6, 0x57, 0xc7, 0x66, 0x63, 0x7d, 0xf5, 0x35, 0xcc, 0xc5, 0xfa, 0xea,
		0x1c, 0x41, 0xc6, 0xfa, 0xea, 0xfc, 0x86, 0x21, 0xd6, 0x57, 0x17, 0xfc, 0x01, 0xb0, 0xbe, 0x0a,
		0xcd, 0x31, 0x41, 0x81, 0xf7, 0x36, 0x9b, 0x8d, 0x75, 0x86, 0x4b, 0xab, 0x5b, 0xd8, 0x67, 0xf3,
		0xca, 0x5f, 0xd8, 0x67, 0x33, 0x5f, 0xe3, 0xb1, 0xcf, 0x86, 0x8a, 0x6f, 0xc4, 0x3e, 0x9b, 0x05,
		0x0c, 0xdd, 0x2a, 0xec, 0xb3, 0x69, 0xac, 0x7f, 0x68, 0x7c, 0x68, 0x6e, 0xad, 0x7f, 0xc0, 0x76,
		0x1b, 0x8c, 0xe1, 0x65, 0x10, 0xe8, 0xfc, 0xac, 0xc5, 0x76, 0x9b, 0x65, 0xb0, 0x90, 0x7a, 0x03,
		0x2b, 0x26, 0x07, 0x5d, 0x97, 0xf6, 0x56, 0xe5, 0x38, 0x9f, 0x1b, 0x67, 0x81, 0xdc, 0x78, 0x5e,
		0xe7, 0xd0, 0xb8, 0xd3, 0xa8, 0xc0, 0x29, 0x3f, 0xe3, 0x57, 0xfd, 0x78, 0xa0, 0xae, 0x9f, 0x52,
		0x3e, 0xfb, 0x9a, 0xbe, 0xb3, 0xa3, 0x7c, 0x72, 0x28, 0x8f, 0xd5, 0x38, 0x56, 0xab, 0x70, 0x4c,
		0x56, 0xdf, 0xd0, 0xbd, 0xf7, 0x35, 0x41, 0x45, 0xf7, 0xde, 0xd7, 0x1b, 0x5e, 0xe8, 0xde, 0x3b,
		0x6f, 0x25, 0x8c, 0xee, 0xbd, 0xcb, 0x36, 0xf9, 0x61, 0xb3, 0x5a, 0x56, 0x7a, 0xdc, 0x44, 0x44,
		0x27, 0x99, 0x38, 0xe1, 0xe0, 0x71, 0xa7, 0x3b, 0x0f, 0x19, 0xac, 0x8f, 0xd5, 0xba, 0x93, 0xf9,
		0x64, 0x79, 0xb6, 0xff, 0x58, 0x82, 0x61, 0x2a, 0x50, 0x21, 0xcb, 0xa8, 0x9e, 0x7d, 0xf2, 0x49,
		0x5c, 0x51, 0x17, 0xfd, 0x3c, 0xca, 0xb8, 0xf9, 0x94, 0x6d, 0xb3, 0x2e, 0xd3, 0x66, 0x54, 0x96,
		0xcd, 0xa8, 0x0c, 0x9b, 0xaa, 0x77, 0x62, 0x92, 0x1f, 0xae, 0x78, 0x5e, 0x98, 0xf2, 0x01, 0x7d,
		0x15, 0xcc, 0x04, 0xd3, 0x14, 0x7e, 0xdf, 0x71, 0x5e, 0x2e, 0x27, 0x17, 0x5a, 0x13, 0x97, 0x3a,
		0x8b, 0xcc, 0x51, 0x8e, 0x77, 0x2f, 0xa1, 0x39, 0xcf, 0xac, 0x65, 0xe2, 0x44, 0x64, 0x42, 0xf6,
		0xe9, 0x16, 0x05, 0x32, 0x38, 0x45, 0x75, 0x90, 0x45, 0x27, 0xda, 0x8c, 0x85, 0x3e, 0x29, 0xb2,
		0x46, 0xa6, 0x12, 0xa7, 0xb9, 0xb4, 0x33, 0xb3, 0x74, 0xa4, 0x63, 0x79, 0x6a, 0x8a, 0x4b, 0x2d,
		0xa4, 0x8a, 0x53, 0xa9, 0x56, 0x0c, 0x35, 0xea, 0x99, 0x81, 0x7b, 0x64, 0x6c, 0x6c, 0x1b, 0x81,
		0x7b, 0xf4, 0x45, 0xae, 0x6d, 0x6c, 0xbe, 0x37, 0xd6, 0xc7, 0xdf, 0x9a, 0xf9, 0xb7, 0xad, 0x15,
		0x9c, 0xc6, 0x3a, 0x93, 0x49, 0xd5, 0x34, 0x7d, 0x7a, 0x8d, 0x38, 0x0e, 0x64, 0x9d, 0xb1, 0x36,
		0xbc, 0x91, 0x31, 0x9d, 0xf5, 0x18, 0x40, 0x72, 0x83, 0xb9, 0x55, 0xc7, 0xf4, 0xe0, 0xad, 0x7d,
		0x3b, 0x13, 0x12, 0x81, 0xee, 0xf9, 0x81, 0xae, 0x4c, 0x8f, 0xea, 0xab, 0xa1, 0x30, 0xfe, 0x30,
		0xde, 0x4c, 0xd6, 0x49, 0xcc, 0x44, 0x0d, 0x7a, 0x66, 0xfe, 0xa2, 0xda, 0x76, 0xba, 0xa1, 0x67,
		0x5b, 0xbb, 0x1f, 0xad, 0x1d, 0xc7, 0x75, 0x82, 0x3f, 0xc3, 0xae, 0x67, 0xef, 0x39, 0x9f, 0x43,
		0xdf, 0x69, 0xbd, 0x41, 0x60, 0x9b, 0x69, 0x60, 0x2b, 0x68, 0x46, 0x4c, 0x7b, 0xbd, 0x98, 0xf6,
		0x52, 0xdc, 0x51, 0xab, 0xf3, 0x8c, 0x1b, 0xd0, 0x12, 0xaa, 0x9f, 0xc5, 0x43, 0x16, 0x15, 0x89,
		0xa5, 0x63, 0xec, 0xc8, 0xe4, 0xca, 0x88, 0x65, 0x3f, 0x19, 0x0d, 0x84, 0xa1, 0xcf, 0x84, 0x31,
		0x4e, 0x25, 0x18, 0xbe, 0xd3, 0x32, 0xfa, 0xa9, 0xd4, 0x51, 0x2c, 0x45, 0x66, 0xe4, 0x03, 0xf6,
		0x8b, 0xcc, 0xff, 0x79, 0xaa, 0x80, 0x62, 0x65, 0x14, 0x6c, 0x6d, 0xac, 0x50, 0x1f, 0xc8, 0x8c,
		0xea, 0x27, 0x6e, 0xfa, 0xc8, 0xc1, 0x0d, 0x9a, 0x18, 0xac, 0x43, 0x72, 0x2c, 0x9e, 0xb8, 0xe5,
		0x32, 0x67, 0x30, 0x10, 0xb0, 0xe8, 0x8a, 0x79, 0xc9, 0x6b, 0xce, 0x4b, 0x90, 0xb3, 0x7c, 0x6c,
		0x2c, 0xd3, 0x5e, 0xee, 0xa9, 0xe2, 0x32, 0x0f, 0xc1, 0xb8, 0x54, 0x9d, 0x35, 0x1d, 0x5a, 0xd1,
		0x84, 0x8e, 0x37, 0x24, 0xe4, 0x77, 0x6a, 0xe3, 0x3d, 0x2f, 0xd4, 0xdc, 0x4d, 0xa9, 0xed, 0x29,
		0x6e, 0xc9, 0x29, 0x8b, 0xeb, 0x88, 0x99, 0x45, 0xb5, 0xda, 0x9e, 0x72, 0x75, 0x3d, 0x83, 0x6a,
		0x7a, 0xea, 0xb3, 0x3f, 0x36, 0xd5, 0xf2, 0x6c, 0x26, 0x78, 0x3c, 0xaa, 0xe1, 0x51, 0x7f, 0xf0,
		0x68, 0x26, 0x2d, 0xa6, 0x59, 0xaf, 0x59, 0xd3, 0x94, 0xcb, 0xee, 0x4b, 0x77, 0x5c, 0x58, 0x49,
		0xb5, 0x66, 0x98, 0xf4, 0xe6, 0x3b, 0xf2, 0x9b, 0xee, 0x38, 0x6c, 0xb6, 0x63, 0xb4, 0xc9, 0x8e,
		0xe3, 0xe2, 0x19, 0x8b, 0x4d, 0x75, 0xbc, 0x97, 0xcf, 0xc8, 0x6f, 0xa2, 0xc3, 0x3e, 0x95, 0x5f,
		0xb9, 0xb5, 0xe4, 0x37, 0xcb, 0x95, 0x1e, 0x33, 0x1e, 0x08, 0xa9, 0x63, 0x7d, 0x45, 0x7b, 0xa3,
		0x5c, 0x39, 0x87, 0xa7, 0xbc, 0xd7, 0xc3, 0x99, 0x5c, 0xca, 0x9d, 0x48, 0x31, 0x6a, 0xa0, 0xe0,
		0xf8, 0x8e, 0x1f, 0xfa, 0x87, 0x3b, 0x81, 0x7b, 0x14, 0x06, 0x7f, 0x76, 0xa9, 0x1f, 0xe4, 0x35,
		0xee, 0xda, 0xa6, 0x58, 0xf4, 0xe5, 0x64, 0xd6, 0xd0, 0xfe, 0x6e, 0x79, 0x86, 0xd3, 0x3d, 0x6a,
		0x84, 0x5e, 0xe7, 0x30, 0xb0, 0xbd, 0xd0, 0x69, 0xd5, 0x70, 0xd6, 0x01, 0x88, 0xe8, 0x1e, 0x35,
		0x41, 0x04, 0x88, 0xb8, 0x57, 0xc2, 0xb5, 0xe7, 0x5a, 0xfb, 0x3e, 0x78, 0x00, 0x0f, 0xd7, 0x25,
		0x7d, 0xa0, 0x01, 0x34, 0x8c, 0x65, 0xa5, 0xcf, 0x41, 0x57, 0x72, 0xd4, 0x97, 0xbc, 0x28, 0xa9,
		0x9c, 0xde, 0x64, 0xe4, 0x47, 0xaa, 0x47, 0x4a, 0x13, 0xa4, 0x80, 0x94, 0xaa, 0xe9, 0x53, 0x70,
		0x02, 0xdd, 0x0a, 0x4a, 0xe8, 0x52, 0x12, 0x58, 0xfb, 0xc0, 0x03, 0x78, 0x3c, 0x82, 0x47, 0xb3,
		0x81, 0xd3, 0xe4, 0x66, 0xfb, 0x75, 0x8c, 0x3c, 0xc2, 0xd2, 0xe7, 0x11, 0x58, 0xf8, 0x5d, 0x60,
		0x00, 0xff, 0x0a, 0x10, 0x5e, 0x07, 0x04, 0xff, 0x36, 0x08, 0x56, 0xeb, 0xdf, 0xa1, 0x6b, 0xb5,
		0x91, 0x66, 0x06, 0x0e, 0x53, 0x1c, 0x80, 0x02, 0x50, 0x28, 0x50, 0x38, 0x70, 0xda, 0xe1, 0xbe,
		0xd7, 0x39, 0xec, 0x02, 0x07, 0xe0, 0x60, 0x1d, 0x59, 0x8e, 0x6b, 0xed, 0xb8, 0x76, 0xb8, 0x63,
		0xb5, 0x5b, 0xff, 0x71, 0x5a, 0xc1, 0x47, 0x60, 0x01, 0x2c, 0x4a, 0x18, 0xc2, 0xdd, 0x4e, 0xdb,
		0x0f, 0x3c, 0xcb, 0x69, 0x07, 0x28, 0x5f, 0x00, 0x18, 0xa1, 0xfd, 0x39, 0xb0, 0xdb, 0x2d, 0xbb,
		0x85, 0x38, 0x02, 0x2e, 0xee, 0x2d, 0x4d, 0x3b, 0xed, 0xc0, 0xf6, 0xf6, 0xac, 0x5d, 0x3b, 0xb4,
		0x5a, 0x2d, 0xcf, 0xf6, 0xe1, 0x31, 0x40, 0xc6, 0x98, 0x8c, 0xb6, 0xed, 0xec, 0x7f, 0xdc, 0xe9,
		0x78, 0x00, 0x03, 0x60, 0xdc, 0xaa, 0x51, 0x80, 0xcb, 0x00, 0x19, 0x3f, 0x26, 0x03, 0x2e, 0x03,
		0x60, 0xdc, 0x05, 0xc3, 0x75, 0xda, 0x9f, 0x42, 0x2b, 0x08, 0x3c, 0x67, 0xe7, 0x30, 0xb0, 0x81,
		0x04, 0x90, 0x18, 0x23, 0xd1, 0xb2, 0x5d, 0xeb, 0x4f, 0xd0, 0x00, 0x1a, 0xae, 0x69, 0x08, 0x8f,
		0x2c, 0xcf, 0xb1, 0x02, 0xa7, 0xd3, 0x06, 0x17, 0xe0, 0xa2, 0xe0, 0x02, 0x0b, 0x20, 0x40, 0x61,
		0x82, 0x82, 0xdb, 0x81, 0xa0, 0x04, 0x0c, 0x13, 0x18, 0xba, 0x5e, 0x27, 0xb0, 0x77, 0xf3, 0x50,
		0x31, 0xde, 0x87, 0x03, 0x2e, 0x96, 0x9e, 0x8b, 0x03, 0xeb, 0xf3, 0x98, 0x0d, 0xac, 0x8a, 0x81,
		0x8a, 0x5b, 0x54, 0x78, 0xb6, 0x6f, 0x7b, 0x47, 0x58, 0x31, 0x05, 0x1b, 0x77, 0xd8, 0x70, 0xda,
		0xd7, 0x5e, 0x03, 0xf3, 0x51, 0x50, 0x51, 0x50, 0xe1, 0xd9, 0xbe, 0xd3, 0x3a, 0xb4, 0x5c, 0xf8,
		0x0a, 0x50, 0x81, 0x5d, 0xdf, 0xa0, 0xe4, 0x39, 0xb4, 0xb0, 0xaa, 0xe5, 0x65, 0xe4, 0x44, 0x2a,
		0x88, 0x09, 0x10, 0x01, 0x22, 0x55, 0xa9, 0xfd, 0x05, 0x26, 0x0b, 0xc3, 0x84, 0x63, 0x4d, 0x30,
		0x70, 0x59, 0x14, 0x2e, 0x4c, 0x6b, 0x85, 0x01, 0xcc, 0xa2, 0x80, 0xe1, 0x59, 0x43, 0x0c, 0x5e,
		0x16, 0xc5, 0x0b, 0xd7, 0xda, 0x62, 0x10, 0xb3, 0x50, 0x62, 0xf8, 0x15, 0x10, 0x02, 0x98, 0x05,
		0x02, 0xd3, 0x84, 0x8b, 0x01, 0x31, 0xbf, 0x48, 0x0c, 0x5c, 0x0c, 0x80, 0xf9, 0x59, 0x60, 0xd8,
		0xd5, 0x2e, 0x03, 0x95, 0x85, 0xa2, 0xc2, 0x64, 0x0d, 0x19, 0x94, 0x2c, 0x9e, 0x12, 0x4e, 0xb5,
		0xce, 0xe0, 0x65, 0xa1, 0xbc, 0x60, 0x81, 0x08, 0x88, 0x54, 0xa2, 0x36, 0x1a, 0x90, 0x2c, 0x14,
		0x12, 0x76, 0x35, 0xd3, 0xe0, 0x65, 0x51, 0xbc, 0x70, 0xac, 0xa5, 0x06, 0x2d, 0x8b, 0xa4, 0x85,
		0x67, 0x8d, 0x35, 0x98, 0x59, 0x18, 0x33, 0x0c, 0x6b, 0xaf, 0x41, 0xcb, 0xa2, 0x68, 0xe1, 0x58,
		0x93, 0x0d, 0x5a, 0x16, 0x45, 0x4b, 0x60, 0x87, 0x2d, 0x7b, 0xcf, 0x3a, 0x74, 0x83, 0xf0, 0xc0,
		0x0e, 0x3c, 0x67, 0x17, 0xb0, 0x00, 0x96, 0x87, 0x60, 0x39, 0x6c, 0x97, 0x25, 0x50, 0x76, 0x2b,
		0x74, 0x7d, 0x94, 0xb5, 0x00, 0x96, 0x47, 0x60, 0x19, 0xeb, 0x5c, 0xbb, 0x85, 0x48, 0x04, 0x5e,
		0x7e, 0x82, 0x97, 0xc0, 0x71, 0x9d, 0xff, 0x32, 0xa5, 0x05, 0x27, 0xa9, 0x2c, 0xcb, 0xa8, 0x63,
		0xbe, 0x37, 0x8f, 0xa1, 0xde, 0x03, 0x14, 0xd0, 0x75, 0x80, 0x02, 0xfa, 0x0d, 0x5c, 0x40, 0xa7,
		0x81, 0x0a, 0x22, 0x54, 0x4c, 0x0e, 0x5f, 0xde, 0xb5, 0xba, 0xe5, 0xae, 0x7f, 0x2f, 0xb4, 0xdc,
		0xfd, 0x8e, 0xe7, 0x04, 0x1f, 0x0f, 0x40, 0x04, 0x88, 0x28, 0x88, 0xb8, 0xfe, 0x09, 0x48, 0x00,
		0x09, 0xb4, 0x06, 0x01, 0x27, 0x55, 0x0e, 0x2a, 0x8c, 0x3c, 0x49, 0x15, 0x49, 0xe1, 0x14, 0x6c,
		0x4a, 0x54, 0x90, 0x39, 0x5c, 0x82, 0xeb, 0x48, 0xf7, 0xfa, 0xd1, 0xbc, 0x6e, 0xf4, 0xac, 0xa2,
		0x65, 0x11, 0xb1, 0x00, 0x53, 0xb3, 0xa4, 0x4c, 0x75, 0xa4, 0xe3, 0x54, 0xd6, 0xb6, 0x09, 0x86,
		0x94, 0x9a, 0xea, 0x9f, 0x89, 0xf3, 0x68, 0x18, 0xe9, 0xb3, 0x3c, 0x78, 0xd4, 0xd3, 0xa1, 0x90,
		0xfd, 0x54, 0x9e, 0xc4, 0xa7, 0xa6, 0x14, 0xfa, 0x5b, 0x9a, 0x7d, 0x35, 0x63, 0xa9, 0x74, 0x24,
		0xfb, 0xa2, 0x7e, 0xf7, 0x05, 0x75, 0xef, 0x95, 0xfa, 0x30, 0x4b, 0x75, 0xda, 0x4f, 0x13, 0x55,
		0x3e, 0xab, 0xc7, 0x2a, 0x56, 0xf5, 0x44, 0x5c, 0x88, 0x64, 0xf2, 0x50, 0x4f, 0x62, 0xf9, 0xd5,
		0x54, 0x3a, 0xd2, 0xc2, 0x1c, 0x44, 0x3a, 0xea, 0x45, 0x4a, 0xd4, 0x13, 0x35, 0xac, 0xeb, 0xe4,
		0x42, 0xe5, 0xdf, 0xea, 0xe7, 0xda, 0x8c, 0x87, 0x17, 0x0d, 0x33, 0x13, 0x51, 0xff, 0x2c, 0xea,
		0xc5, 0x49, 0xac, 0xaf, 0xea, 0xc3, 0x4c, 0x9c, 0xc4, 0x97, 0x42, 0x4d, 0x9e, 0xd4, 0xd5, 0xa8,
		0x57, 0xbc, 0x61, 0xfc, 0x58, 0x2f, 0xfe, 0x3f, 0x82, 0xba, 0xb9, 0xa6, 0x74, 0x36, 0xea, 0x6b,
		0x39, 0x89, 0xce, 0x9d, 0xf2, 0xfa, 0xb6, 0xc7, 0xd7, 0xce, 0x99, 0x5c, 0xba, 0xf0, 0xce, 0xcf,
		0xea, 0xee, 0x0b, 0x61, 0x77, 0x7a, 0x6d, 0xcb, 0x67, 0xa1, 0xa3, 0x62, 0x15, 0xba, 0xc5, 0xb5,
		0x1d, 0x3f, 0x84, 0x6e, 0x2c, 0xbf, 0xfa, 0xf9, 0xa5, 0x68, 0x4d, 0xae, 0x6c, 0xe8, 0xaa, 0x61,
		0x18, 0x24, 0x17, 0x2a, 0xff, 0x16, 0x1e, 0x68, 0x67, 0x78, 0xd1, 0xf0, 0x6e, 0x5c, 0xd7, 0xb0,
		0x3b, 0xb9, 0xae, 0x93, 0x27, 0xa1, 0x3f, 0xbe, 0xae, 0x93, 0xc7, 0xb0, 0xf8, 0xcf, 0x68, 0x89,
		0x06, 0x3a, 0x0e, 0x87, 0x90, 0xb3, 0xa9, 0xe9, 0xe8, 0x94, 0x9c, 0x87, 0x29, 0x45, 0x69, 0x6e,
		0x1c, 0x31, 0xc7, 0xfc, 0x29, 0x96, 0x83, 0xda, 0xb6, 0xb1, 0x46, 0xcc, 0xac, 0xdd, 0xc2, 0x39,
		0xd4, 0xb6, 0x8d, 0x55, 0x62, 0x86, 0x8d, 0xdd, 0x03, 0xcd, 0x20, 0x36, 0xc5, 0x2c, 0xed, 0x9b,
		0x79, 0xb8, 0xa1, 0x18, 0x06, 0xfc, 0x74, 0x94, 0xf5, 0x05, 0xc9, 0xcb, 0x37, 0x1e, 0x0e, 0xe2,
		0xea, 0x5b, 0x9a, 0xe5, 0x23, 0xa2, 0x36, 0x0e, 0xb0, 0x44, 0x73, 0x50, 0xb5, 0x8f, 0x91, 0xb2,
		0xb2, 0xd3, 0xd1, 0xb9, 0x90, 0xba, 0xb6, 0x6d, 0xe8, 0x6c, 0x24, 0x88, 0x1a, 0x7a, 0xc3, 0xca,
		0x12, 0x4c, 0x88, 0x77, 0x56, 0xe2, 0xbd, 0x15, 0x67, 0x44, 0x55, 0x7b, 0xa1, 0xca, 0xc8, 0x3a,
		0x93, 0xa9, 0x3f, 0xa6, 0x2a, 0xca, 0x09, 0x0b, 0x00, 0xf2, 0x42, 0x80, 0x83, 0x20, 0x60, 0x24,
		0x0c, 0xb8, 0x08, 0x04, 0x76, 0x42, 0x81, 0x9d, 0x60, 0xe0, 0x25, 0x1c, 0x68, 0x0a, 0x08, 0xa2,
		0x42, 0x82, 0xbc, 0xa0, 0xb8, 0x99, 0x45, 0xd8, 0x58, 0xa7, 0xef, 0x84, 0x6e, 0xe4, 0x15, 0x36,
		0xd6, 0xa9, 0x3b, 0xa0, 0x89, 0xd0, 0x58, 0x25, 0x6e, 0x26, 0x75, 0xc1, 0xc1, 0x49, 0x78, 0x30,
		0x14, 0x20, 0xdc, 0x84, 0x08, 0x5b, 0x41, 0xc2, 0x56, 0x98, 0xf0, 0x14, 0x28, 0xb4, 0x85, 0x0a,
		0x71, 0xc1, 0x52, 0xde, 0xf2, 0xe0, 0x6a, 0x28, 0x78, 0x79, 0xdc, 0x51, 0x2c, 0x35, 0x79, 0x6d,
		0x70, 0x53, 0x1f, 0x6c, 0x31, 0x30, 0xd5, 0x8b, 0xe4, 0xa9, 0x60, 0x53, 0xef, 0xc7, 0xa7, 0x82,
		0xab, 0x76, 0x10, 0x4b, 0x36, 0x11, 0xb7, 0x34, 0xba, 0x28, 0xff, 0xa4, 0x2f, 0x18, 0xef, 0xd9,
		0xbd, 0x97, 0x45, 0x7d, 0x1d, 0xa7, 0xb2, 0x15, 0x9f, 0xc6, 0x5a, 0x31, 0xfc, 0x00, 0x6d, 0x71,
		0x1a, 0xe9, 0xf8, 0x22, 0xbf, 0xf6, 0x27, 0x51, 0xa2, 0x04, 0xca, 0x3f, 0x5f, 0x63, 0x48, 0x46,
		0x97, 0x7c, 0x87, 0x64, 0x63, 0xfd, 0x43, 0xe3, 0x43, 0x73, 0x6b, 0xfd, 0xc3, 0x26, 0xc6, 0x26,
		0xc6, 0x66, 0x05, 0x04, 0x32, 0x1f, 0x2b, 0x8f, 0x31, 0xd1, 0x78, 0xc1, 0xf0, 0x71, 0x63, 0xa5,
		0x2d, 0xad, 0x33, 0x1e, 0x93, 0x8d, 0x83, 0x58, 0xda, 0x89, 0xc8, 0xe7, 0xc2, 0x4c, 0x5c, 0x55,
		0x1e, 0xd5, 0x6e, 0x58, 0xbc, 0xf6, 0x7b, 0xa3, 0xd1, 0xdc, 0x6a, 0x34, 0x56, 0xb7, 0x36, 0xb6,
		0x56, 0x3f, 0x6c, 0x6e, 0xae, 0x35, 0xd7, 0x18, 0x04, 0x8c, 0x5a, 0x27, 0x1b, 0x88, 0x4c, 0x0c,
		0x76, 0xae, 0x6a, 0xdb, 0x86, 0x1c, 0x25, 0x09, 0x27, 0x93, 0x0f, 0x95, 0xc8, 0x58, 0xc4, 0x06,
		0xea, 0x9e, 0x42, 0x5c, 0xea, 0x2c, 0x32, 0x47, 0x52, 0xe9, 0xa8, 0x97, 0x30, 0x49, 0x4e, 0x64,
		0xe2, 0x44, 0x64, 0x42, 0xf6, 0x31, 0x87, 0x7e, 0x0d, 0xe5, 0x35, 0xdd, 0x01, 0xb5, 0xb7, 0xbb,
		0xb9, 0xb6, 0xb1, 0xba, 0x6d, 0x58, 0x46, 0x37, 0x4d, 0xe2, 0xfe, 0x95, 0xb1, 0x9b, 0x4a, 0x9d,
		0xa5, 0x89, 0x71, 0x20, 0xfa, 0x67, 0x91, 0x8c, 0xd5, 0xb9, 0x11, 0x4b, 0xc3, 0xf1, 0x4d, 0xc7,
		0x37, 0x0e, 0x55, 0x2c, 0x4f, 0xbf, 0x48, 0x6b, 0x70, 0x1e, 0xcb, 0x58, 0xe9, 0xac, 0xd0, 0x6e,
		0x46, 0x10, 0x9d, 0xaa, 0x15, 0x43, 0x8d, 0x7a, 0x66, 0xe0, 0x1e, 0x19, 0x6b, 0x2b, 0x35, 0x46,
		0xf3, 0x16, 0x66, 0xf9, 0xfb, 0xd2, 0xee, 0x1b, 0x79, 0xfc, 0xeb, 0x61, 0xc2, 0x4c, 0xfc, 0x73,
		0x4d, 0xe9, 0x97, 0x1f, 0xe0, 0x66, 0x6a, 0xff, 0x35, 0xc6, 0x11, 0x66, 0x43, 0x98, 0x0d, 0xe1,
		0xfa, 0xb1, 0xb5, 0x8c, 0x6a, 0x5d, 0x0d, 0xf1, 0x5d, 0x76, 0xa5, 0x9d, 0x55, 0xd9, 0x6d, 0xa7,
		0xa3, 0xd3, 0x3a, 0xe5, 0xe2, 0x5e, 0xa3, 0x02, 0x3b, 0xef, 0x82, 0xe8, 0x94, 0xe2, 0xee, 0x3b,
		0xba, 0x0e, 0x0a, 0x7b, 0x19, 0x98, 0x4f, 0x97, 0x6b, 0xdf, 0xce, 0x84, 0x24, 0x3b, 0x33, 0x66,
		0x50, 0xe6, 0xbe, 0xb2, 0x32, 0xf6, 0xca, 0x75, 0x7d, 0x35, 0x14, 0xc6, 0x1f, 0xc6, 0x9b, 0x49,
		0x75, 0x8e, 0x99, 0xa8, 0x41, 0xcf, 0xcc, 0x5f, 0x54, 0xdb, 0x4e, 0xf7, 0x4e, 0xdb, 0x53, 0x6b,
		0xff, 0x0d, 0xea, 0xe2, 0x67, 0x3a, 0x7d, 0x2d, 0x30, 0x46, 0x55, 0xfc, 0xeb, 0xcd, 0x4c, 0x9f,
		0xcd, 0x39, 0x5d, 0xb9, 0x4f, 0x78, 0x04, 0xb6, 0x84, 0xea, 0x67, 0xf1, 0x90, 0xbc, 0xba, 0xbe,
		0xe5, 0x0a, 0x3b, 0x32, 0xb9, 0x32, 0x62, 0xd9, 0x4f, 0x46, 0x03, 0x61, 0xe8, 0x33, 0x61, 0xe8,
		0xe8, 0xd4, 0xe8, 0xa7, 0x52, 0x47, 0xb1, 0x14, 0x99, 0x91, 0x0f, 0xd1, 0xe2, 0xe5, 0x69, 0x6e,
		0x22, 0x56, 0x46, 0xce, 0xcd, 0x17, 0x49, 0x3e, 0xd9, 0xc7, 0x29, 0xc1, 0x77, 0xd3, 0x2b, 0x0e,
		0x6e, 0x60, 0xc4, 0x60, 0xc1, 0x86, 0x63, 0x2a, 0xef, 0x96, 0x93, 0x7c, 0xc9, 0x08, 0x40, 0xd2,
		0xa6, 0x4a, 0x49, 0x1b, 0x72, 0x56, 0x1d, 0x63, 0xa6, 0xc6, 0x37, 0x99, 0x55, 0xa5, 0x24, 0x16,
		0x1a, 0x46, 0xbd, 0x46, 0xda, 0x0a, 0xed, 0xa2, 0xc8, 0x3b, 0x9a, 0x9a, 0x8e, 0x4e, 0x9b, 0x0d,
		0xd2, 0x0d, 0xa3, 0x9a, 0x0d, 0xb4, 0x8c, 0xfa, 0x29, 0xb3, 0xd0, 0x32, 0xea, 0x05, 0xa0, 0xa1,
		0x65, 0xd4, 0x2c, 0xe6, 0x76, 0x68, 0x19, 0x35, 0xf3, 0xe9, 0x1b, 0x5a, 0x46, 0xb1, 0x14, 0xef,
		0x68, 0x19, 0xf5, 0x32, 0x7f, 0x8c, 0x96, 0x51, 0xd5, 0x13, 0x02, 0x1c, 0x04, 0x01, 0x23, 0x61,
		0xc0, 0x45, 0x20, 0xb0, 0x13, 0x0a, 0xec, 0x04, 0x03, 0x2f, 0xe1, 0x40, 0x53, 0x40, 0x10, 0x15,
		0x12, 0xe4, 0x05, 0x05, 0xf1, 0x4c, 0x02, 0xab, 0xcc, 0xc2, 0x43, 0x42, 0x03, 0x2d, 0xa3, 0x96,
		0x47, 0x78, 0x30, 0x14, 0x20, 0xdc, 0x84, 0x08, 0x5b, 0x41, 0xc2, 0x56, 0x98, 0xf0, 0x14, 0x28,
		0xb4, 0x85, 0x0a, 0x71, 0xc1, 0x52, 0xde, 0x72, 0x9e, 0x2d, 0xa3, 0xc8, 0x6b, 0x83, 0x9b, 0xfa,
		0xe0, 0x77, 0xb4, 0x8c, 0x9a, 0xf1, 0x17, 0x5a, 0x46, 0xbd, 0xae, 0xd1, 0x68, 0x19, 0xb5, 0x28,
		0x1f, 0x87, 0x96, 0x51, 0x73, 0x18, 0x92, 0x9c, 0x5b, 0x46, 0xf1, 0xec, 0x05, 0x82, 0x51, 0x0a,
		0xa9, 0x5c, 0x21, 0x2b, 0xd1, 0x3c, 0xea, 0x25, 0xc3, 0x07, 0xcd, 0xa3, 0x5e, 0x3d, 0xbe, 0xa1,
		0x79, 0xd4, 0x22, 0x4d, 0x46, 0xf3, 0xa8, 0x19, 0x5d, 0x51, 0x34, 0x8f, 0xc2, 0x6c, 0xfa, 0xb6,
		0xf2, 0x7a, 0xad, 0xe6, 0x51, 0xeb, 0x68, 0x1e, 0x35, 0x07, 0xbb, 0xd1, 0x3c, 0x8a, 0xc0, 0x07,
		0x78, 0xd5, 0xe6, 0x51, 0xeb, 0x68, 0x1e, 0x85, 0xd9, 0x10, 0xae, 0x1f, 0x63, 0xcb, 0xd0, 0x3c,
		0xea, 0x65, 0x76, 0x56, 0x68, 0xdf, 0x5d, 0xb3, 0x81, 0xf6, 0x51, 0xaf, 0xbf, 0x0f, 0xaf, 0xd9,
		0x40, 0x03, 0x29, 0xbe, 0x16, 0xa1, 0x81, 0xd4, 0xaf, 0xdb, 0x88, 0x06, 0x52, 0x2f, 0x9b, 0xfd,
		0x3e, 0xb3, 0xb1, 0x4e, 0xb3, 0x81, 0x16, 0x52, 0xb3, 0x9d, 0xc4, 0xa2, 0x85, 0xd4, 0x2b, 0xcf,
		0x4f, 0x5f, 0x40, 0x3a, 0x9a, 0x48, 0x3d, 0xe3, 0xda, 0x57, 0xa6, 0x89, 0x54, 0xb3, 0xf1, 0x53,
		0x4d, 0x74, 0xd6, 0xd1, 0x46, 0xea, 0x75, 0x3c, 0x23, 0xda, 0x48, 0xcd, 0xd7, 0x51, 0xbe, 0x6c,
		0x0c, 0x20, 0x81, 0x53, 0xa5, 0x04, 0x0e, 0x1a, 0x49, 0xb1, 0x9a, 0xb1, 0xa1, 0x91, 0xd4, 0x1c,
		0x13, 0x5a, 0x68, 0x25, 0xf5, 0x3a, 0x29, 0x2c, 0x34, 0x93, 0x22, 0xef, 0x6c, 0x6a, 0x9a, 0xe2,
		0x56, 0x8f, 0xeb, 0x1d, 0x9f, 0xb9, 0x75, 0x34, 0x5b, 0x49, 0xad, 0xa2, 0x95, 0xd4, 0xcf, 0x19,
		0x86, 0x56, 0x52, 0x55, 0x9e, 0xeb, 0xa1, 0x95, 0xd4, 0xab, 0x4e, 0xe1, 0xd0, 0x4a, 0x8a, 0xa5,
		0x7c, 0x27, 0xbb, 0x81, 0xb2, 0xf4, 0x78, 0x89, 0x88, 0x4e, 0x32, 0x71, 0x42, 0xd1, 0xe3, 0x4d,
		0x5b, 0x35, 0x6d, 0x11, 0xb4, 0xad, 0x3b, 0x99, 0xf1, 0xdc, 0xca, 0x41, 0x43, 0xe7, 0x52, 0xb6,
		0x84, 0x88, 0x6f, 0xc8, 0x03, 0x25, 0x31, 0x49, 0x4b, 0x73, 0xd3, 0x05, 0xdd, 0xcd, 0x15, 0xac,
		0x36, 0x51, 0x10, 0xde, 0x2c, 0x41, 0x78, 0x53, 0x04, 0x15, 0x67, 0x41, 0x34, 0xff, 0x57, 0x95,
		0xbc, 0x1f, 0x21, 0xd9, 0xc3, 0x3c, 0xd3, 0x47, 0x43, 0xfb, 0x2c, 0x5e, 0x69, 0x2c, 0xd6, 0x82,
		0x05, 0xbb, 0x2d, 0x6a, 0xee, 0x8a, 0xbd, 0x9b, 0x22, 0xe0, 0x9f, 0xb8, 0xfa, 0xa5, 0xc5, 0x3a,
		0xa4, 0xc5, 0xb9, 0x81, 0x05, 0xba, 0x80, 0xda, 0x48, 0x0e, 0xc4, 0x49, 0x2c, 0xc5, 0xc0, 0x9c,
		0xf2, 0xbb, 0x68, 0x2f, 0x70, 0xdd, 0x18, 0xea, 0x9e, 0x69, 0x0b, 0x76, 0x95, 0x34, 0x1a, 0x51,
		0x93, 0x59, 0x2e, 0xa0, 0xb4, 0x3c, 0x40, 0x70, 0x39, 0x80, 0x5a, 0xfa, 0x9f, 0x6c, 0xba, 0x9f,
		0x6c, 0x7a, 0x9f, 0x66, 0x3a, 0x7f, 0xb9, 0xe5, 0x2a, 0x95, 0xc6, 0xcc, 0xf7, 0xa2, 0x13, 0x9d,
		0x71, 0xfe, 0x50, 0xfc, 0xa4, 0x32, 0xdc, 0x69, 0x9d, 0xe7, 0x40, 0x6e, 0xf5, 0x9d, 0xe2, 0xaa,
		0x3b, 0xe1, 0xd5, 0x76, 0xaa, 0xab, 0xec, 0xe4, 0x57, 0xd7, 0xc9, 0xaf, 0xaa, 0xd3, 0x5e, 0x4d,
		0xc7, 0x0a, 0x19, 0xc5, 0xb0, 0x7c, 0x23, 0x05, 0x42, 0xf1, 0xe0, 0x25, 0xd2, 0x07, 0x2e, 0xe1,
		0xa4, 0x45, 0xfe, 0x81, 0x9a, 0x41, 0xc0, 0xa6, 0x1e, 0xb8, 0xd9, 0x04, 0x70, 0x36, 0x81, 0x9c,
		0x47, 0x40, 0xa7, 0x15, 0xd8, 0x89, 0x05, 0x78, 0xb2, 0x81, 0xbe, 0x34, 0x2c, 0x11, 0xf2, 0xb4,
		0x58, 0x33, 0x22, 0x7e, 0xd4, 0xe2, 0xc4, 0x4e, 0xda, 0x67, 0x2d, 0xae, 0xe2, 0xac, 0xc5, 0xca,
		0x49, 0x02, 0x46, 0xd2, 0x80, 0x8b, 0x44, 0x60, 0x27, 0x15, 0xd8, 0x49, 0x06, 0x5e, 0xd2, 0x81,
		0xa6, 0x84, 0x20, 0x2a, 0x25, 0xca, 0x5b, 0x4b, 0xfe, 0xc8, 0xa2, 0x5b, 0x47, 0x15, 0xfd, 0x4e,
		0xd9, 0x5f, 0x4e, 0xc2, 0x37, 0xe1, 0x86, 0xe0, 0x4c, 0x4e, 0x26, 0xe2, 0xd1, 0xc8, 0x9e, 0xcf,
		0xd9, 0x7f, 0xcc, 0x4e, 0x20, 0x62, 0x7b, 0xa6, 0x09, 0xbf, 0xb3, 0x4c, 0xbe, 0xf3, 0x38, 0x81,
		0x81, 0xdf, 0x50, 0x5b, 0xdf, 0xdc, 0xc4, 0x60, 0xc3, 0x60, 0x63, 0x20, 0x4c, 0xe9, 0x5b, 0x77,
		0x8c, 0xce, 0x40, 0x5c, 0x9d, 0x39, 0xcd, 0x36, 0x19, 0xf7, 0xa6, 0x16, 0x04, 0xdb, 0x65, 0xdc,
		0x9d, 0x55, 0x20, 0x29, 0xf8, 0x4c, 0x03, 0x91, 0x14, 0x9c, 0xa9, 0xa9, 0x48, 0x0a, 0xbe, 0x92,
		0xc1, 0x48, 0x0a, 0x2e, 0x9f, 0xba, 0x41, 0x52, 0xf0, 0xa5, 0x1e, 0x13, 0x49, 0xc1, 0x97, 0x9b,
		0x88, 0xa4, 0xe0, 0xac, 0x32, 0x15, 0x48, 0x0a, 0x22, 0x4f, 0x51, 0x81, 0x3c, 0x05, 0x92, 0x82,
		0xaf, 0x33, 0xd4, 0x90, 0x14, 0xc4, 0x60, 0xe3, 0x21, 0x4c, 0xe9, 0x5b, 0x87, 0xa4, 0x20, 0x5b,
		0x67, 0x5e, 0xbb, 0x98, 0xf8, 0x43, 0xe2, 0x59, 0xc1, 0xb1, 0x99, 0x48, 0x0b, 0x3e, 0xc7, 0x3c,
		0xa4, 0x05, 0x67, 0x08, 0x22, 0xd2, 0x82, 0xb3, 0x1b, 0x36, 0x48, 0x0b, 0xbe, 0xb2, 0xc1, 0x48,
		0x0b, 0x56, 0x75, 0x02, 0xc6, 0x28, 0x2d, 0xd8, 0x8b, 0x65, 0x94, 0x5d, 0x31, 0xc8, 0x0b, 0x7e,
		0x80, 0x8c, 0x65, 0x68, 0x11, 0x4e, 0xbd, 0xf9, 0x35, 0xfb, 0xd8, 0xb6, 0x95, 0xbb, 0xd7, 0x05,
		0xeb, 0xde, 0x2b, 0x64, 0x0f, 0x75, 0x66, 0xd7, 0x87, 0xee, 0x70, 0x7a, 0x65, 0xa7, 0x8d, 0x32,
		0xef, 0xbc, 0x40, 0xf1, 0x60, 0x67, 0x9c, 0x8d, 0xf3, 0x23, 0xf2, 0x70, 0x36, 0x4e, 0x35, 0x66,
		0xf3, 0xd8, 0xfc, 0x5f, 0xcd, 0x59, 0x3b, 0x36, 0xff, 0x2f, 0xdb, 0xec, 0x1c, 0x9b, 0xff, 0xf9,
		0x8b, 0x7c, 0x9c, 0x8d, 0xf3, 0xf2, 0x00, 0x8b, 0xb3, 0x71, 0xd8, 0xeb, 0x5c, 0x74, 0xfe, 0xba,
		0x1d, 0x28, 0x71, 0x36, 0xce, 0xcf, 0x58, 0x85, 0xb3, 0x71, 0x66, 0x62, 0x2c, 0xce, 0xc6, 0x61,
		0xec, 0x2c, 0x70, 0x36, 0xce, 0xdc, 0xb3, 0x83, 0x38, 0x2f, 0xe7, 0xf5, 0xf2, 0x81, 0x38, 0x41,
		0x87, 0x82, 0x05, 0x38, 0x41, 0xa7, 0xaa, 0xce, 0x0c, 0x67, 0xe9, 0xbc, 0xdc, 0x67, 0x2d, 0xed,
		0xa1, 0x3a, 0xbf, 0x2d, 0x91, 0x2f, 0x9a, 0xce, 0xc2, 0xf2, 0x61, 0x36, 0x30, 0x16, 0x9a, 0xb0,
		0xa4, 0x31, 0xfb, 0xa2, 0x33, 0xdb, 0x22, 0x3d, 0xbb, 0x22, 0x34, 0x9b, 0x22, 0x34, 0x7b, 0x5a,
		0xd4, 0x20, 0x26, 0x22, 0x24, 0xd8, 0x0a, 0x88, 0x05, 0xca, 0x05, 0x6e, 0x32, 0x61, 0x31, 0xaa,
		0x60, 0xfe, 0x31, 0x79, 0xbe, 0x7f, 0x71, 0xce, 0x8e, 0x63, 0xd1, 0x0e, 0x83, 0x9f, 0xa3, 0x58,
		0x80, 0x87, 0x60, 0xe3, 0x19, 0xe6, 0xeb, 0x12, 0xe6, 0x37, 0x30, 0xe7, 0xf3, 0x97, 0xe6, 0x34,
		0xf4, 0x6b, 0xe2, 0x52, 0x67, 0x91, 0x39, 0xca, 0x99, 0xe8, 0x25, 0xf3, 0x5d, 0x8c, 0xad, 0x65,
		0xe2, 0x44, 0x64, 0x42, 0xf6, 0xe7, 0xbf, 0x53, 0x7f, 0x01, 0xbe, 0x6d, 0xba, 0xa2, 0xec, 0xed,
		0xed, 0x6e, 0xae, 0xad, 0xaf, 0x6e, 0x1b, 0x07, 0xa6, 0xe3, 0x3b, 0xfe, 0xb6, 0x71, 0x30, 0x4a,
		0x74, 0x6c, 0x04, 0xe9, 0x30, 0x4d, 0xd2, 0xd3, 0x2b, 0xe3, 0xed, 0x41, 0xf0, 0xce, 0xf0, 0xd2,
		0x91, 0x8e, 0xe5, 0xa9, 0x11, 0xcb, 0x2f, 0xd2, 0x91, 0x5a, 0x64, 0xe7, 0x62, 0x10, 0x47, 0x5a,
		0x18, 0xfe, 0x95, 0xd2, 0xe2, 0xdc, 0xd0, 0xa9, 0xf1, 0x83, 0x97, 0x95, 0xf1, 0xd6, 0xf1, 0x4d,
		0xc7, 0x57, 0xef, 0x56, 0x8c, 0xc0, 0x3d, 0xfa, 0x22, 0xd7, 0x37, 0x36, 0x57, 0x16, 0xe1, 0xa2,
		0x16, 0x5c, 0x8c, 0x73, 0xb3, 0xd8, 0xe6, 0x9a, 0xb1, 0x05, 0x89, 0x70, 0x2a, 0xf5, 0x34, 0xb7,
		0xea, 0x65, 0xe6, 0x0e, 0x61, 0xd5, 0x85, 0xda, 0xdc, 0xfe, 0xda, 0xf1, 0xfc, 0xe8, 0xa9, 0x7d,
		0x3b, 0x13, 0x72, 0x99, 0x5c, 0xf3, 0xad, 0x6a, 0x15, 0xe3, 0x0f, 0xe3, 0xcd, 0xa4, 0xac, 0xcc,
		0x4c, 0xd4, 0xa0, 0x67, 0xe6, 0x2f, 0xaa, 0xed, 0x83, 0x20, 0x74, 0xba, 0x47, 0x8d, 0xd0, 0xb3,
		0xad, 0xdd, 0x8f, 0xd6, 0x8e, 0xe3, 0x3a, 0xc1, 0x9f, 0x6f, 0x96, 0xdc, 0xc7, 0x16, 0x9c, 0xc0,
		0xbd, 0x5e, 0xbb, 0xd7, 0xe7, 0x83, 0xf4, 0xdb, 0x12, 0xe4, 0xa6, 0x6a, 0x2d, 0xa1, 0xfa, 0x59,
		0x3c, 0x5c, 0x68, 0x62, 0xaa, 0x1c, 0xf4, 0x1d, 0x99, 0x5c, 0x19, 0xb1, 0xec, 0x27, 0xa3, 0x81,
		0x30, 0xf4, 0x99, 0x30, 0xce, 0xf3, 0x50, 0x68, 0xea, 0x69, 0x28, 0x74, 0xba, 0x17, 0x0d, 0xe3,
		0xe6, 0xe4, 0xef, 0x4b, 0x3e, 0xdf, 0xd2, 0x51, 0x2c, 0x45, 0x66, 0xe4, 0xe4, 0x17, 0x6f, 0x0a,
		0xdc, 0x23, 0x23, 0x56, 0x46, 0x71, 0xbf, 0x17, 0xa4, 0xba, 0x0c, 0x22, 0x65, 0xd0, 0x37, 0x3d,
		0xc3, 0xe0, 0xc6, 0x9d, 0x5e, 0x60, 0x32, 0x8d, 0x52, 0x4d, 0xf3, 0x2d, 0x47, 0xf1, 0x4a, 0xf0,
		0x21, 0x19, 0xc7, 0x5b, 0xe3, 0x55, 0x2a, 0xc3, 0xb0, 0xa0, 0xa4, 0x22, 0x9b, 0x64, 0xe2, 0x1c,
		0x1d, 0x23, 0xf5, 0xdc, 0xe1, 0x7c, 0x1c, 0xd7, 0xeb, 0x0f, 0xe4, 0x39, 0x0c, 0xad, 0xda, 0x18,
		0xa5, 0xe6, 0x6d, 0x94, 0xe6, 0x35, 0xc0, 0x4a, 0xf5, 0xf4, 0x43, 0x2b, 0xe6, 0xe4, 0x58, 0xe6,
		0x7b, 0xbc, 0xf0, 0xdc, 0x77, 0x0e, 0x2e, 0x62, 0x47, 0xe0, 0x02, 0x77, 0xfa, 0x2d, 0x4a, 0xba,
		0x2e, 0x7c, 0x67, 0xde, 0xc2, 0xd5, 0xe9, 0x62, 0x77, 0xd2, 0x55, 0x6b, 0x39, 0x65, 0xde, 0xc7,
		0xd9, 0xd6, 0xca, 0x95, 0xc8, 0xb9, 0x8f, 0x9b, 0xa9, 0xab, 0x58, 0xd0, 0x5a, 0xe8, 0x82, 0x4e,
		0x97, 0x5f, 0xd8, 0x06, 0xf2, 0x45, 0x6e, 0x10, 0x27, 0xb0, 0x01, 0x9c, 0x52, 0xbe, 0x73, 0xb1,
		0xf5, 0x90, 0x24, 0x33, 0x9e, 0x0b, 0xdb, 0x80, 0x5d, 0xed, 0x82, 0x9c, 0x45, 0x9d, 0x8e, 0x3e,
		0x45, 0x7c, 0xe1, 0xd9, 0xd9, 0xc5, 0x0e, 0xb5, 0xc5, 0x84, 0x98, 0x85, 0x87, 0x1a, 0x0a, 0x21,
		0x87, 0x50, 0xe8, 0xa1, 0x12, 0x82, 0xc8, 0x85, 0x22, 0x72, 0x21, 0x89, 0x56, 0x68, 0x5a, 0x4c,
		0x88, 0x5a, 0x50, 0xa8, 0x5a, 0x78, 0xc8, 0x2a, 0x0d, 0x28, 0xf6, 0xac, 0x2c, 0x7e, 0x90, 0xde,
		0xcc, 0x90, 0x0d, 0x16, 0x3d, 0x40, 0x69, 0x34, 0xe3, 0x22, 0xd3, 0x7c, 0x8b, 0x52, 0xb3, 0x2d,
		0x82, 0xcd, 0xb5, 0xa8, 0x35, 0xd3, 0x22, 0xdb, 0x3c, 0x8b, 0x6c, 0xb3, 0x2c, 0x9a, 0xcd, 0xb1,
		0x96, 0x7b, 0x5b, 0x37, 0x99, 0x66, 0x57, 0x04, 0x9b, 0x5b, 0x51, 0x6a, 0x66, 0x75, 0xbf, 0x79,
		0xd5, 0x38, 0x84, 0x2f, 0xeb, 0xbe, 0xe7, 0x05, 0x4e, 0xb8, 0x86, 0x34, 0xc2, 0x34, 0x8d, 0x6c,
		0x04, 0xc4, 0x1c, 0xc4, 0x1c, 0xc4, 0x1c, 0xc4, 0x1c, 0xc4, 0x1c, 0xc4, 0x1c, 0xc4, 0xdc, 0xb3,
		0xc5, 0xdc, 0x70, 0x81, 0xfb, 0xd5, 0x97, 0x5b, 0xcd, 0x8d, 0x8f, 0x95, 0x20, 0x23, 0xe6, 0x28,
		0x9c, 0x72, 0xb1, 0xe0, 0x15, 0x26, 0x68, 0x39, 0x68, 0x39, 0x68, 0x39, 0x68, 0xb9, 0xe5, 0xd6,
		0x72, 0x8b, 0x5e, 0xb1, 0x2a, 0x0d, 0x39, 0x17, 0x3a, 0x8b, 0xfb, 0x74, 0x46, 0x77, 0xb9, 0x84,
		0x35, 0xb6, 0x8b, 0x4a, 0x83, 0x70, 0x52, 0x07, 0xcb, 0x90, 0x3b, 0x50, 0x86, 0xe2, 0x41, 0x32,
		0x84, 0x0f, 0x90, 0xa1, 0x7a, 0x70, 0x0c, 0xf9, 0x03, 0x63, 0xc8, 0x1f, 0x14, 0x43, 0xfb, 0x80,
		0x18, 0x1c, 0xfa, 0x40, 0x32, 0x9d, 0x72, 0xcf, 0x63, 0x7d, 0x8b, 0x07, 0xc2, 0x24, 0x15, 0x00,
		0x6f, 0x06, 0x41, 0x42, 0x67, 0xbf, 0xd4, 0xbc, 0x48, 0x9e, 0xce, 0xbf, 0x93, 0xd3, 0x53, 0x5f,
		0x04, 0xcf, 0x16, 0x3a, 0x88, 0x25, 0xdd, 0x73, 0xca, 0x8e, 0xa2, 0x64, 0x24, 0x16, 0x9f, 0x91,
		0x78, 0xd0, 0xbe, 0xbd, 0x2c, 0xea, 0xeb, 0x38, 0x95, 0xad, 0xf8, 0x34, 0xa6, 0x76, 0xf0, 0xc9,
		0x6d, 0x07, 0x22, 0x4e, 0x23, 0x1d, 0x5f, 0x08, 0x52, 0xe7, 0x76, 0x10, 0xf4, 0xfd, 0xb7, 0x87,
		0x46, 0x74, 0xc9, 0x60, 0x68, 0x34, 0xb7, 0xb6, 0xb6, 0xd6, 0x29, 0x1d, 0x62, 0x83, 0x11, 0x52,
		0x61, 0x8d, 0x46, 0xcf, 0x9a, 0x63, 0x1c, 0x53, 0x42, 0xc5, 0x83, 0x12, 0xa9, 0x76, 0xbe, 0x27,
		0x9b, 0x29, 0x54, 0x3d, 0xdf, 0x15, 0xcb, 0xc8, 0x18, 0x3d, 0x60, 0x10, 0x32, 0x46, 0xbf, 0x64,
		0x1a, 0x32, 0x46, 0xcf, 0x34, 0x10, 0x19, 0x23, 0xfe, 0xf1, 0x1f, 0x19, 0xa3, 0xa7, 0x3c, 0xd6,
		0x28, 0x96, 0x7a, 0xad, 0x49, 0x30, 0x59, 0xd4, 0x44, 0xb2, 0xe8, 0x89, 0x2f, 0x24, 0x8b, 0x9e,
		0x37, 0x23, 0x5e, 0xc5, 0x54, 0xb8, 0xea, 0x53, 0x61, 0x24, 0x8b, 0x9e, 0x37, 0x34, 0x1a, 0xab,
		0x1f, 0x90, 0x28, 0xaa, 0xfc, 0xe8, 0x40, 0xa2, 0xe8, 0x87, 0x5f, 0x48, 0x14, 0x91, 0xf1, 0x9e,
		0x54, 0xf6, 0x52, 0xdd, 0x93, 0xcb, 0xb4, 0xea, 0x06, 0x91, 0x2a, 0x7a, 0xdc, 0x20, 0xa4, 0x8a,
		0x7e, 0xc9, 0x34, 0xa4, 0x8a, 0x9e, 0x69, 0x20, 0x52, 0x45, 0xfc, 0x15, 0x00, 0x52, 0x45, 0x4f,
		0x79, 0xac, 0xa2, 0x75, 0x32, 0xb9, 0x01, 0x58, 0x6e, 0x4a, 0xf9, 0x9d, 0x90, 0x4d, 0xdd, 0x48,
		0x6b, 0x91, 0x49, 0x72, 0x29, 0xa3, 0xda, 0xdb, 0xb7, 0x7f, 0xad, 0x9a, 0x1f, 0x22, 0xf3, 0xc4,
		0x32, 0xf7, 0x8e, 0xff, 0x5e, 0x7b, 0xdf, 0xf8, 0xbe, 0xfd, 0xee, 0xef, 0xad, 0xef, 0x77, 0x5f,
		0xfc, 0xe7, 0x47, 0xbf, 0xb6, 0xf6, 0x7e, 0xeb, 0xfb, 0xf6, 0x03, 0xff, 0xd2, 0xfc, 0xbe, 0xfd,
		0x93, 0xff, 0xc7, 0xe6, 0xf7, 0xb7, 0xf7, 0x7e, 0x35, 0x7f, 0x7d, 0xfd, 0xa1, 0x37, 0x34, 0x1e,
		0x78, 0xc3, 0xc6, 0x43, 0x6f, 0xd8, 0x78, 0xe0, 0x0d, 0x0f, 0x9a, 0xb4, 0xfe, 0xc0, 0x1b, 0x36,
		0xbf, 0xff, 0x73, 0xef, 0xf7, 0xdf, 0xfe, 0xf8, 0x57, 0x9b, 0xdf, 0xdf, 0xfd, 0xf3, 0xd0, 0xbf,
		0x6d, 0x7d, 0xff, 0x67, 0xfb, 0xdd, 0xbb, 0xfa, 0xdb, 0xb5, 0xf5, 0xbf, 0x56, 0xcd, 0xdf, 0x8f,
		0xff, 0x59, 0xfb, 0x6b, 0xd5, 0x5c, 0x3b, 0xce, 0x7f, 0xf3, 0xf8, 0x9f, 0xbf, 0xd6, 0xcc, 0x0f,
		0xd3, 0xa7, 0xf9, 0xf7, 0x77, 0x74, 0xdc, 0xf2, 0x31, 0xa5, 0xf1, 0xd4, 0xf1, 0x9d, 0xcf, 0x64,
		0x07, 0xd5, 0xff, 0x30, 0xaa, 0x88, 0x8f, 0xaa, 0x7f, 0xd5, 0x90, 0x65, 0x40, 0x96, 0xe1, 0xde,
		0xc0, 0x55, 0x66, 0x2f, 0xd6, 0xf4, 0x92, 0x0c, 0x63, 0xb3, 0x90, 0x63, 0x40, 0x8e, 0x01, 0x39,
		0x06, 0xe4, 0x18, 0x90, 0x63, 0x40, 0x8e, 0x61, 0x69, 0x72, 0x0c, 0xbd, 0x34, 0x4d, 0x44, 0x24,
		0x29, 0xe6, 0x17, 0xd6, 0x20, 0xdc, 0xc8, 0x08, 0xb7, 0xd1, 0xd0, 0x1c, 0xa4, 0xdf, 0x24, 0x3d,
		0xe9, 0x36, 0x35, 0x0c, 0xe2, 0x0d, 0xe2, 0x0d, 0xe2, 0x0d, 0xe2, 0x0d, 0xe2, 0x0d, 0xe2, 0x0d,
		0xe2, 0x0d, 0xe2, 0x0d, 0xe2, 0xed, 0xfa, 0x9e, 0x5c, 0xd2, 0xcc, 0xba, 0x5d, 0x22, 0xeb, 0x06,
		0xe1, 0x06, 0xe1, 0x06, 0xe1, 0x06, 0xe1, 0x06, 0xe1, 0x06, 0xe1, 0x06, 0xe1, 0x46, 0x4b, 0xb8,
		0x2d, 0x75, 0xd3, 0x4b, 0x4b, 0xca, 0x54, 0x47, 0x3a, 0x4e, 0x69, 0xa4, 0xfc, 0x6a, 0xaa, 0x7f,
		0x26, 0xce, 0xa3, 0xe1, 0xa4, 0x5b, 0x77, 0x3d, 0x1d, 0x0a, 0xd9, 0x2f, 0x24, 0x92, 0x29, 0x85,
		0xfe, 0x96, 0x66, 0x5f, 0xcd, 0x58, 0x2a, 0x1d, 0xc9, 0xbe, 0xa8, 0xdf, 0x7d, 0x41, 0xdd, 0x7b,
		0xa5, 0x3e, 0xcc, 0x52, 0x9d, 0xf6, 0xd3, 0x44, 0x95, 0xcf, 0xea, 0xb9, 0x1f, 0xaf, 0x27, 0xe2,
		0x42, 0x24, 0x93, 0x87, 0x7a, 0x12, 0xcb, 0xaf, 0x66, 0xd1, 0x05, 0xda, 0x1c, 0x44, 0x3a, 0xea,
		0x45, 0x4a, 0xd4, 0x13, 0x35, 0xac, 0xeb, 0xe4, 0x42, 0xe5, 0xdf, 0x8a, 0x73, 0x5f, 0x86, 0x17,
		0x4d, 0x33, 0x13, 0x51, 0xff, 0x2c, 0xea, 0xc5, 0x49, 0xac, 0xaf, 0xea, 0xd3, 0xe3, 0xae, 0x27,
		0x4f, 0xea, 0x14, 0xda, 0x48, 0x8f, 0xaf, 0xa0, 0xce, 0x46, 0x7d, 0x2d, 0x27, 0x0e, 0xa8, 0x53,
		0x5e, 0xc0, 0xf6, 0xf8, 0xe2, 0x38, 0x93, 0x6b, 0x13, 0xde, 0xf9, 0x59, 0xdd, 0x7d, 0x21, 0xec,
		0x4e, 0x2f, 0x5e, 0xf9, 0x2c, 0x74, 0x54, 0xac, 0x42, 0xb7, 0xb8, 0x78, 0xe3, 0x87, 0xd0, 0x8d,
		0xe5, 0x57, 0x3f, 0xff, 0xe8, 0xad, 0xc9, 0xa5, 0x0b, 0x5d, 0x35, 0x0c, 0x83, 0xe4, 0x42, 0xe5,
		0xdf, 0xc2, 0x03, 0xed, 0x0c, 0x2f, 0x9a, 0xde, 0x8d, 0x0b, 0x17, 0x76, 0x27, 0x17, 0x6e, 0xf2,
		0x24, 0x2c, 0xde, 0x8d, 0x3e, 0xec, 0x0b, 0x00, 0x65, 0xd4, 0xcb, 0x11, 0x27, 0xd4, 0x89, 0x7d,
		0x62, 0x10, 0x7a, 0xb1, 0xa3, 0x17, 0x3b, 0x9b, 0x99, 0x20, 0x7a, 0xb1, 0x73, 0x9f, 0xf1, 0xa1,
		0x17, 0x3b, 0x3d, 0x59, 0x4a, 0xa6, 0x17, 0xfb, 0x38, 0x26, 0x11, 0xac, 0x64, 0x1c, 0xdb, 0x45,
		0x2b, 0xa9, 0xba, 0x86, 0xa4, 0x2a, 0xf9, 0x10, 0x4a, 0x38, 0x94, 0x52, 0x0d, 0xa9, 0xe4, 0x43,
		0x2b, 0xf9, 0x10, 0x4b, 0x3b, 0xd4, 0xd2, 0xc9, 0x45, 0x19, 0x84, 0x92, 0xaa, 0x54, 0x42, 0x70,
		0x69, 0xd0, 0x49, 0x12, 0x9d, 0x2a, 0x7a, 0x4e, 0x61, 0xea, 0x47, 0xc7, 0xe6, 0x11, 0x1b, 0x6f,
		0xb4, 0x02, 0x33, 0xd9, 0x00, 0x4d, 0x39, 0x50, 0x33, 0x08, 0xd8, 0xd4, 0x03, 0x37, 0x9b, 0x00,
		0xce, 0x26, 0x90, 0xf3, 0x08, 0xe8, 0xb4, 0x02, 0x3b, 0xb1, 0x00, 0x4f, 0x36, 0xd0, 0x5f, 0xcf,
		0xbd, 0x49, 0x1c, 0x14, 0xfa, 0xf4, 0x54, 0x9c, 0xc8, 0xca, 0x0f, 0x23, 0x01, 0x40, 0x5e, 0x08,
		0x70, 0x10, 0x04, 0x8c, 0x84, 0x01, 0x17, 0x81, 0xc0, 0x4e, 0x28, 0xb0, 0x13, 0x0c, 0xbc, 0x84,
		0x03, 0x4d, 0x01, 0x41, 0x54, 0x48, 0x90, 0x17, 0x14, 0xc4, 0x33, 0x09, 0xac, 0x32, 0x0b, 0x0f,
		0x09, 0x8d, 0x55, 0xe2, 0x66, 0x52, 0x17, 0x1c, 0x9c, 0x84, 0x07, 0x43, 0x01, 0xc2, 0x4d, 0x88,
		0xb0, 0x15, 0x24, 0x6c, 0x85, 0x09, 0x4f, 0x81, 0x42, 0x5b, 0xa8, 0x10, 0x17, 0x2c, 0xe5, 0x2d,
		0x27, 0x57, 0x47, 0xfe, 0xa4, 0xc7, 0x15, 0x72, 0x74, 0x2e, 0xb2, 0x71, 0xfd, 0x2e, 0x03, 0xaf,
		0x3b, 0xcd, 0x46, 0x34, 0x18, 0xd8, 0x6a, 0xcb, 0xd1, 0x39, 0x9f, 0xf8, 0x10, 0xa4, 0xbe, 0xce,
		0x62, 0x79, 0xca, 0xc6, 0xe2, 0xc2, 0xea, 0xd5, 0x9c, 0x61, 0xfb, 0x73, 0x60, 0x7b, 0x6d, 0xcb,
		0x0d, 0xf7, 0x5c, 0x6b, 0x9f, 0x49, 0x58, 0x2b, 0xac, 0x5f, 0xcb, 0xad, 0xf7, 0x6c, 0xab, 0x75,
		0x64, 0x7b, 0x81, 0xe3, 0xdb, 0x07, 0x76, 0x3b, 0x60, 0xf7, 0x21, 0xd6, 0xf3, 0x0f, 0xd1, 0xee,
		0xb4, 0xec, 0xb1, 0xe5, 0x2c, 0x0c, 0xff, 0xfe, 0x9e, 0xcb, 0xa0, 0x74, 0xa4, 0xe6, 0x35, 0x22,
		0x6f, 0x0f, 0x46, 0xf2, 0xd3, 0xa4, 0xdb, 0x41, 0xb1, 0xa4, 0x78, 0xdb, 0x58, 0x67, 0x64, 0xf7,
		0x0f, 0x5d, 0xc8, 0xb6, 0xb1, 0xc6, 0x63, 0x2c, 0x42, 0x13, 0x57, 0x5a, 0x13, 0xbb, 0xb1, 0xd2,
		0x96, 0xd6, 0x19, 0x0f, 0x5d, 0x7c, 0x10, 0x4b, 0x3b, 0x11, 0xf9, 0xb4, 0x4d, 0xf1, 0x70, 0x5e,
		0xb5, 0x83, 0xe8, 0xf2, 0x86, 0xc5, 0x6b, 0xbf, 0x37, 0x1a, 0xcd, 0xad, 0x46, 0x63, 0x75, 0x6b,
		0x63, 0x6b, 0xf5, 0xc3, 0xe6, 0xe6, 0x5a, 0x93, 0xea, 0xf9, 0xe2, 0xb7, 0x3e, 0x44, 0x27, 0x1b,
		0x88, 0x4c, 0x0c, 0x76, 0xae, 0x6a, 0xdb, 0x86, 0x1c, 0x25, 0x09, 0x27, 0x93, 0x0f, 0x95, 0xc8,
		0xc8, 0x9e, 0x28, 0xc5, 0xc9, 0x53, 0x88, 0x4b, 0x9d, 0x45, 0xe6, 0x48, 0x2a, 0x1d, 0xf5, 0x12,
		0x26, 0xf3, 0xe8, 0x4c, 0x9c, 0x88, 0x4c, 0xc8, 0x3e, 0xbd, 0x33, 0x28, 0x1f, 0xfa, 0x62, 0xa4,
		0x25, 0xa7, 0x49, 0x0a, 0x6f, 0x6f, 0x77, 0x6b, 0xeb, 0x43, 0x63, 0xdb, 0x70, 0x7c, 0xd3, 0xf1,
		0x8d, 0x71, 0x66, 0xdb, 0xc8, 0x83, 0x4a, 0xdc, 0x1b, 0x69, 0xa1, 0x8c, 0x93, 0x34, 0x33, 0xec,
		0x4b, 0x2d, 0xe4, 0x40, 0x0c, 0x0c, 0xa7, 0x7b, 0xd1, 0x30, 0x22, 0x39, 0xf8, 0x22, 0x9d, 0xee,
		0x45, 0xd3, 0xb8, 0xb9, 0x77, 0x74, 0xc5, 0x50, 0xa3, 0x9e, 0x19, 0xb8, 0x47, 0x46, 0x63, 0x85,
		0xd3, 0x1c, 0x8b, 0x59, 0xb2, 0xf9, 0x3a, 0x5d, 0x73, 0x9d, 0x74, 0xbe, 0x1e, 0x28, 0xef, 0x79,
		0x7d, 0x06, 0xae, 0xf9, 0xe7, 0xf2, 0x03, 0xdc, 0xcc, 0x43, 0xbf, 0xce, 0x48, 0x62, 0x73, 0x3d,
		0xbe, 0x63, 0x46, 0x34, 0x93, 0xaf, 0xe3, 0xdf, 0x70, 0xfd, 0x2a, 0xa6, 0xc0, 0x6a, 0x9a, 0xc3,
		0xda, 0x45, 0x29, 0x09, 0x0a, 0x6b, 0x51, 0xd1, 0x30, 0x0b, 0x33, 0x51, 0xd1, 0xf0, 0x8a, 0x9c,
		0xa2, 0xa2, 0x61, 0x1e, 0xe2, 0x12, 0x15, 0x0d, 0x73, 0x57, 0x92, 0xa8, 0x68, 0x58, 0x8a, 0x9c,
		0x0c, 0xbf, 0x8a, 0x86, 0x78, 0x20, 0xa4, 0x8e, 0xf5, 0x55, 0x26, 0x4e, 0x38, 0x55, 0x34, 0x70,
		0xc8, 0xd2, 0x3a, 0x93, 0x4b, 0xbb, 0x13, 0x29, 0x46, 0x71, 0x62, 0x0a, 0x86, 0xe3, 0x3b, 0x7e,
		0xe8, 0x1f, 0xee, 0x04, 0xee, 0x51, 0x18, 0xfc, 0xd9, 0xb5, 0xb9, 0x84, 0x8b, 0xa3, 0x28, 0x19,
		0x09, 0xc5, 0x26, 0xbf, 0x68, 0xb0, 0xca, 0x31, 0xde, 0x26, 0xa4, 0x1b, 0x7a, 0xb6, 0xb5, 0xfb,
		0xd1, 0xda, 0x71, 0x5c, 0x27, 0xf8, 0x33, 0x74, 0xba, 0x47, 0x8d, 0xd0, 0xeb, 0x1c, 0x06, 0xb6,
		0x17, 0x3a, 0x2d, 0x46, 0x69, 0x8e, 0xf7, 0x20, 0x65, 0xee, 0xa4, 0x34, 0x41, 0x0a, 0x48, 0x79,
		0x9a, 0x94, 0xae, 0x67, 0xef, 0x39, 0x9f, 0x8b, 0x12, 0x0d, 0x1f, 0x9c, 0x80, 0x93, 0x27, 0x38,
		0xf1, 0xe1, 0x4d, 0x40, 0xc9, 0xc3, 0x94, 0x8c, 0xe5, 0xac, 0xcf, 0x49, 0xcf, 0x72, 0xd6, 0xb5,
		0x3c, 0xe9, 0xa9, 0xac, 0xce, 0x65, 0xe8, 0x77, 0xaa, 0x4b, 0x50, 0x13, 0x04, 0x81, 0xa0, 0x65,
		0xd3, 0xc5, 0xe0, 0x07, 0x7a, 0x19, 0xf4, 0xf0, 0xa7, 0x27, 0xe0, 0xb2, 0x73, 0x09, 0xd8, 0x10,
		0xc3, 0xa6, 0xd9, 0x60, 0x08, 0x0e, 0x2b, 0x8b, 0x8f, 0x91, 0xff, 0x40, 0xfe, 0xa3, 0x0a, 0x7e,
		0x1b, 0x78, 0xc0, 0x3f, 0x03, 0x90, 0xc5, 0x02, 0xe2, 0xdf, 0x06, 0xc4, 0x6a, 0xfd, 0x3b, 0x74,
		0xad, 0x36, 0xd2, 0xec, 0xc0, 0xe4, 0x29, 0x4c, 0x80, 0x08, 0x10, 0x79, 0x14, 0x91, 0x03, 0xa7,
		0x1d, 0xee, 0x7b, 0x9d, 0xc3, 0x2e, 0x30, 0x01, 0x26, 0x0f, 0x62, 0x72, 0x64, 0x39, 0xae, 0xb5,
		0xe3, 0xda, 0xe1, 0x8e, 0xd5, 0x6e, 0xfd, 0xc7, 0x69, 0x05, 0x1f, 0x81, 0x0b, 0x70, 0x79, 0x08,
		0x97, 0x12, 0x92, 0x70, 0xb7, 0xd3, 0xf6, 0x03, 0xcf, 0x72, 0xda, 0x01, 0xca, 0x46, 0x00, 0xcc,
		0x83, 0xc0, 0xd8, 0x9f, 0x03, 0xbb, 0xdd, 0xb2, 0x5b, 0x88, 0x47, 0xe0, 0xe5, 0x67, 0x78, 0x29,
		0x96, 0xfe, 0x9d, 0x76, 0x60, 0x7b, 0x7b, 0xd6, 0xae, 0x1d, 0x5a, 0xad, 0x96, 0x67, 0xfb, 0xf0,
		0x30, 0x20, 0xe6, 0x71, 0x62, 0xda, 0xb6, 0xb3, 0xff, 0x71, 0xa7, 0xe3, 0x01, 0x18, 0x00, 0xf3,
		0x13, 0xc0, 0x34, 0xe1, 0x62, 0x40, 0xcc, 0x2f, 0x12, 0x03, 0x17, 0x03, 0x60, 0x7e, 0x16, 0x18,
		0xd7, 0x69, 0x7f, 0x0a, 0xad, 0x20, 0xf0, 0x9c, 0x9d, 0xc3, 0xc0, 0x06, 0x2a, 0x40, 0xe5, 0x71,
		0x54, 0x5a, 0xb6, 0x6b, 0xfd, 0x09, 0x4a, 0x40, 0xc9, 0xd3, 0x94, 0x84, 0x47, 0x96, 0xe7, 0x58,
		0x81, 0xd3, 0x69, 0x83, 0x17, 0xf0, 0xf2, 0x28, 0x2f, 0x58, 0x20, 0x02, 0x22, 0x4f, 0x20, 0xe2,
		0x76, 0x20, 0x64, 0x01, 0xc9, 0x13, 0x90, 0x74, 0xbd, 0x4e, 0x60, 0xef, 0xe6, 0x21, 0x67, 0xbc,
		0xaf, 0x0b, 0xbc, 0x80, 0x97, 0x07, 0x78, 0x39, 0xb0, 0x3e, 0x8f, 0x99, 0xc1, 0x6a, 0x22, 0x68,
		0xf9, 0x29, 0x5a, 0x3c, 0xdb, 0xb7, 0xbd, 0x23, 0xac, 0x40, 0x83, 0x99, 0x9f, 0x64, 0xc6, 0x69,
		0x5f, 0x7b, 0x19, 0xcc, 0x9b, 0x41, 0xcb, 0xa3, 0xb4, 0x78, 0xb6, 0xef, 0xb4, 0x0e, 0x2d, 0x17,
		0xbe, 0x05, 0xb4, 0x3c, 0x4d, 0x0b, 0xba, 0x17, 0x80, 0x9e, 0x97, 0x53, 0xc4, 0xb2, 0x86, 0x9b,
		0xa1, 0xd3, 0xa9, 0x30, 0x3e, 0x40, 0x07, 0xe8, 0x3c, 0x0b, 0x1d, 0x86, 0x35, 0x76, 0xc0, 0x87,
		0x0c, 0x3e, 0x9c, 0x6b, 0xc1, 0x81, 0x11, 0x15, 0x8c, 0x98, 0xd7, 0x88, 0x03, 0x24, 0x2a, 0x20,
		0xf1, 0xae, 0x1d, 0x07, 0x47, 0x54, 0x38, 0xe2, 0x5e, 0x53, 0x0e, 0x92, 0x48, 0x91, 0xc4, 0xb7,
		0x10, 0x14, 0x20, 0x11, 0x02, 0xa9, 0x09, 0x97, 0x04, 0x92, 0x66, 0x44, 0x12, 0x5c, 0x12, 0x40,
		0x7a, 0x29, 0x48, 0x6c, 0x6b, 0xd6, 0x81, 0x10, 0x29, 0x84, 0x98, 0xad, 0xc9, 0x83, 0x1e, 0x7a,
		0xf4, 0x70, 0xac, 0x71, 0x07, 0x47, 0xa4, 0x38, 0xc2, 0x02, 0x1a, 0xd0, 0x79, 0x26, 0x3a, 0xbc,
		0x6a, 0xe2, 0x01, 0x0f, 0x29, 0x78, 0xd8, 0xd6, 0xca, 0x83, 0x23, 0x2a, 0x1c, 0x71, 0xae, 0xa1,
		0x07, 0x45, 0x94, 0x28, 0xe2, 0x5d, 0x5b, 0x0f, 0x96, 0xc8, 0xb0, 0xc4, 0xb8, 0xe6, 0x1e, 0x14,
		0x51, 0xa1, 0x88, 0x73, 0x2d, 0x3e, 0x28, 0xa2, 0x42, 0x51, 0x60, 0x87, 0x2d, 0x7b, 0xcf, 0x3a,
		0x74, 0x83, 0xf0, 0xc0, 0x0e, 0x3c, 0x67, 0x17, 0x10, 0x01, 0xa2, 0x5f, 0x85, 0xe8, 0xb0, 0x5d,
		0x96, 0xa6, 0xd9, 0xad, 0xd0, 0xf5, 0x51, 0x56, 0x04, 0x88, 0x9e, 0x01, 0xd1, 0x58, 0x5f, 0xdb,
		0x2d, 0x44, 0x34, 0x70, 0xf4, 0x02, 0x8e, 0x02, 0xc7, 0x75, 0xfe, 0xcb, 0x9c, 0x22, 0x9c, 0xe0,
		0xb4, 0xec, 0xa3, 0xb3, 0x22, 0x7b, 0x40, 0x19, 0xeb, 0x4b, 0xc0, 0x02, 0x1d, 0x09, 0x58, 0xa0,
		0x17, 0xc1, 0x0b, 0x74, 0x21, 0x68, 0xa9, 0x38, 0x2d, 0x93, 0xc3, 0xed, 0x77, 0xad, 0x6e, 0xd9,
		0xbd, 0xc2, 0x0b, 0x2d, 0x77, 0xbf, 0xe3, 0x39, 0xc1, 0xc7, 0x03, 0x90, 0x02, 0x52, 0x1e, 0x25,
		0xe5, 0xfa, 0x27, 0xa0, 0x02, 0x54, 0x1e, 0x41, 0x05, 0x2d, 0x71, 0xc0, 0xcf, 0xd2, 0x06, 0x27,
		0x86, 0x9e, 0xa7, 0xca, 0x04, 0x71, 0x0c, 0x5a, 0x25, 0x42, 0xc8, 0x90, 0x2e, 0xf1, 0x75, 0xa5,
		0x7f, 0x3d, 0x69, 0x5f, 0x47, 0xba, 0xd6, 0xd1, 0xb4, 0x8c, 0x68, 0xc0, 0xaa, 0x59, 0x52, 0xa6,
		0x3a, 0xd2, 0x71, 0x2a, 0x6b, 0xdb, 0x84, 0x43, 0x54, 0x4d, 0xf5, 0xcf, 0xc4, 0x79, 0x34, 0x8c,
		0xf4, 0x59, 0x1e, 0x8c, 0xea, 0xe9, 0x50, 0xc8, 0x7e, 0x2a, 0x4f, 0xe2, 0x53, 0x53, 0x0a, 0xfd,
		0x2d, 0xcd, 0xbe, 0x9a, 0xb1, 0x54, 0x3a, 0x92, 0x7d, 0x51, 0xbf, 0xfb, 0x82, 0xba, 0xf7, 0x4a,
		0x7d, 0x98, 0xa5, 0x3a, 0xed, 0xa7, 0x89, 0x2a, 0x9f, 0xd5, 0x63, 0x15, 0xab, 0x7a, 0x22, 0x2e,
		0x44, 0x32, 0x79, 0xa8, 0x27, 0xb1, 0xfc, 0x6a, 0x2a, 0x1d, 0x69, 0x61, 0x0e, 0x22, 0x1d, 0xf5,
		0x22, 0x25, 0xea, 0x89, 0x1a, 0xd6, 0x75, 0x72, 0xa1, 0xf2, 0x6f, 0xf5, 0x73, 0x6d, 0xc6, 0xc3,
		0x8b, 0xa6, 0x99, 0x89, 0xa8, 0x7f, 0x16, 0xf5, 0xe2, 0x24, 0xd6, 0x57, 0xf5, 0x61, 0x26, 0x4e,
		0xe2, 0x4b, 0xa1, 0x26, 0x4f, 0xea, 0x6a, 0xd4, 0x2b, 0xde, 0x30, 0x7e, 0xac, 0x9f, 0x24, 0xd1,
		0xa9, 0xaa, 0x17, 0xff, 0x2b, 0x61, 0xf5, 0x5e, 0x53, 0x3a, 0x1b, 0xf5, 0xb5, 0x9c, 0xc4, 0xfe,
		0x4e, 0x79, 0xb5, 0xdb, 0xe3, 0x2b, 0xe9, 0x4c, 0x2e, 0x64, 0x78, 0xe7, 0x67, 0x75, 0xf7, 0x85,
		0xb0, 0x3b, 0xbd, 0xd2, 0xe5, 0xb3, 0xd0, 0x51, 0xb1, 0x0a, 0xdd, 0xe2, 0x4a, 0x8f, 0x1f, 0x42,
		0x37, 0x96, 0x5f, 0xfd, 0xfc, 0x92, 0xb4, 0x26, 0xd7, 0x39, 0x74, 0xd5, 0x30, 0x0c, 0x92, 0x0b,
		0x95, 0x7f, 0x0b, 0x0f, 0xb4, 0x33, 0xbc, 0x68, 0x7a, 0x37, 0xae, 0x72, 0xd8, 0x9d, 0x5c, 0xe5,
		0xc9, 0x93, 0xd0, 0x1f, 0x5f, 0xe5, 0xc9, 0x63, 0xb8, 0x97, 0x5f, 0xe5, 0xb0, 0xf8, 0x2f, 0x69,
		0x0a, 0x13, 0x7a, 0x4e, 0x8a, 0x96, 0x45, 0xc4, 0xdc, 0x65, 0x4d, 0x5c, 0xea, 0x2c, 0x32, 0x47,
		0x39, 0xd5, 0xbd, 0x44, 0x90, 0x74, 0x95, 0xb5, 0x6f, 0x67, 0x42, 0x92, 0x9d, 0x5b, 0x13, 0x0e,
		0x2d, 0xd3, 0x19, 0xce, 0xca, 0xca, 0xd8, 0x2f, 0xd7, 0xf5, 0xd5, 0x50, 0x18, 0x7f, 0x18, 0x6f,
		0xd2, 0xbe, 0x99, 0x47, 0x05, 0x33, 0x51, 0x83, 0x9e, 0x99, 0xbf, 0xa8, 0xb6, 0x9d, 0xee, 0xed,
		0x25, 0x81, 0xae, 0x67, 0xef, 0x39, 0x9f, 0xc3, 0x3d, 0xd7, 0xda, 0xf7, 0xdf, 0x50, 0x76, 0xe8,
		0x7e, 0x3a, 0xca, 0xfa, 0x82, 0x74, 0x8c, 0x2f, 0xec, 0xfc, 0x24, 0xae, 0xbe, 0xa5, 0xd9, 0x20,
		0xbf, 0x1f, 0x05, 0xcf, 0xb4, 0xe7, 0xf9, 0xb5, 0x8f, 0x91, 0xb2, 0xb2, 0xd3, 0xd1, 0xb9, 0x90,
		0xba, 0xb6, 0x6d, 0xe8, 0x6c, 0x24, 0x88, 0x1b, 0x7c, 0xc3, 0xda, 0x19, 0x00, 0xff, 0x1b, 0xf2,
		0x43, 0xbf, 0x7e, 0x0b, 0x5a, 0x42, 0xf5, 0xb3, 0x78, 0x48, 0x5e, 0x73, 0xdf, 0x72, 0x8e, 0x1d,
		0x99, 0x5c, 0x19, 0xb1, 0xec, 0x27, 0xa3, 0x81, 0x30, 0xf4, 0x99, 0x30, 0x0a, 0x21, 0x6b, 0xf4,
		0x53, 0xa9, 0xa3, 0x58, 0x8a, 0xcc, 0xc8, 0x47, 0x6b, 0xf1, 0x0f, 0x6a, 0xd4, 0x33, 0x03, 0xf7,
		0xc8, 0x88, 0x95, 0x91, 0x23, 0xf4, 0x45, 0x36, 0x56, 0xa8, 0x8f, 0x62, 0x26, 0xce, 0xf1, 0xae,
		0x83, 0x1c, 0xdc, 0x00, 0x89, 0x7e, 0x3e, 0x94, 0x9d, 0xaf, 0xbc, 0xe7, 0x2f, 0x5f, 0x36, 0x06,
		0x90, 0xce, 0xa9, 0x52, 0x3a, 0x87, 0x9c, 0x55, 0xc7, 0x98, 0xbf, 0xf1, 0x4d, 0x73, 0x55, 0x2b,
		0xbd, 0x45, 0x30, 0x18, 0x55, 0x22, 0xa1, 0x45, 0x2b, 0x84, 0xd0, 0x71, 0x81, 0x84, 0x9c, 0x4d,
		0x2d, 0x1e, 0x5e, 0x34, 0x4c, 0x55, 0xe8, 0x49, 0x33, 0x4b, 0x47, 0x5a, 0x64, 0x66, 0x3c, 0x20,
		0xe7, 0x73, 0x4a, 0x59, 0xff, 0x63, 0x73, 0x89, 0x39, 0xef, 0x4f, 0xb1, 0xcc, 0x2f, 0xe1, 0x1a,
		0x31, 0xb3, 0x76, 0x0b, 0x07, 0x52, 0xdb, 0x36, 0x56, 0x89, 0x19, 0x36, 0x76, 0x21, 0x34, 0x03,
		0xdd, 0x14, 0xbc, 0x49, 0xaa, 0x81, 0x62, 0xa8, 0x20, 0x3e, 0x1b, 0xbc, 0x39, 0x03, 0x1c, 0x07,
		0x61, 0xa2, 0x93, 0x3f, 0x36, 0x13, 0xbe, 0x5b, 0x93, 0xbc, 0x29, 0x98, 0x58, 0xa0, 0x61, 0x25,
		0xf0, 0x5b, 0x71, 0x46, 0x54, 0xd9, 0x17, 0x8b, 0x90, 0x64, 0x9d, 0xc9, 0xd4, 0x1f, 0x53, 0x5e,
		0x91, 0x26, 0x2a, 0x00, 0xc8, 0x0b, 0x01, 0x0e, 0x82, 0x80, 0x91, 0x30, 0xe0, 0x22, 0x10, 0xd8,
		0x09, 0x05, 0x76, 0x82, 0x81, 0x97, 0x70, 0xa0, 0x29, 0x20, 0x88, 0x0a, 0x09, 0xf2, 0x82, 0xa2,
		0x34, 0x90, 0x6e, 0x76, 0xe1, 0x41, 0xdf, 0x4e, 0x35, 0xc3, 0xf0, 0x90, 0xe0, 0x58, 0x25, 0x6e,
		0x26, 0x75, 0xe1, 0xc1, 0x49, 0x80, 0x30, 0x14, 0x22, 0xdc, 0x04, 0x09, 0x5b, 0x61, 0xc2, 0x56,
		0xa0, 0xf0, 0x14, 0x2a, 0xb4, 0x05, 0x0b, 0x71, 0xe1, 0x52, 0xde, 0xf2, 0xe0, 0x6a, 0x28, 0x78,
		0x79, 0xdc, 0x62, 0x31, 0x22, 0x1a, 0x0c, 0x32, 0xa1, 0x58, 0xb8, 0xdd, 0x69, 0x5a, 0xe2, 0x77,
		0x06, 0xb6, 0x76, 0x23, 0xad, 0x45, 0x26, 0xd9, 0xec, 0xbd, 0xad, 0xbd, 0xfd, 0x6b, 0xd5, 0xfc,
		0x70, 0xfc, 0xcf, 0x5f, 0x6b, 0xe6, 0x87, 0xe3, 0xf1, 0xd3, 0xb5, 0xe2, 0xe1, 0xef, 0xf5, 0xef,
		0xff, 0xac, 0xff, 0xb5, 0x6a, 0x36, 0x26, 0xaf, 0xae, 0x6f, 0xfe, 0xb5, 0x6a, 0x6e, 0x1e, 0xbf,
		0x7b, 0xfb, 0xe5, 0xcb, 0xca, 0xaf, 0xbe, 0xe7, 0xdd, 0xdf, 0x1b, 0xdf, 0xe9, 0xbb, 0xc1, 0x63,
		0x0e, 0x78, 0x75, 0x7c, 0xe7, 0x33, 0x3b, 0xc6, 0xfe, 0xf7, 0x76, 0x5e, 0x94, 0xbd, 0xfb, 0x17,
		0x03, 0xce, 0x10, 0x6e, 0x5f, 0xc0, 0x12, 0x83, 0x1d, 0x22, 0xf7, 0x53, 0x08, 0xe2, 0x44, 0x64,
		0x42, 0x16, 0x53, 0x07, 0x1e, 0x43, 0x96, 0xcf, 0x26, 0xfa, 0xeb, 0x8d, 0xf3, 0x7b, 0xbb, 0x5b,
		0x5b, 0x1f, 0x1a, 0xdb, 0x86, 0xe3, 0x9b, 0x8e, 0x6f, 0x8c, 0xa7, 0xc2, 0x86, 0xa5, 0x75, 0x16,
		0xf7, 0x46, 0x5a, 0x28, 0xe3, 0x24, 0xcd, 0x0c, 0xfb, 0x52, 0x0b, 0x39, 0x10, 0x03, 0xc3, 0xe9,
		0x5e, 0x34, 0xbe, 0xc8, 0x48, 0x16, 0xcf, 0x9a, 0xc6, 0xcd, 0x1a, 0xa1, 0x95, 0xb2, 0xac, 0x74,
		0x6d, 0x8d, 0x51, 0xe7, 0x0f, 0x6e, 0xb3, 0xd3, 0x1f, 0xcd, 0x52, 0xaf, 0x07, 0x0a, 0xb3, 0x8e,
		0x2b, 0x5c, 0x27, 0xac, 0x3f, 0x9c, 0xb8, 0xbe, 0xce, 0x48, 0x42, 0x63, 0x85, 0x25, 0xb3, 0xf2,
		0x18, 0x95, 0xf8, 0x55, 0x53, 0x60, 0x35, 0xcd, 0x21, 0xd9, 0x51, 0x4a, 0x82, 0xc2, 0x5a, 0x2c,
		0x81, 0xcc, 0xc2, 0x4c, 0x2c, 0x81, 0xbc, 0x22, 0xa7, 0x58, 0x02, 0x99, 0x87, 0xb8, 0xc4, 0x12,
		0xc8, 0xdc, 0x95, 0x24, 0x96, 0x40, 0x96, 0x22, 0x27, 0xc3, 0x70, 0x09, 0x64, 0x20, 0xa4, 0x8e,
		0xf5, 0x55, 0x26, 0x4e, 0x38, 0xad, 0x80, 0x6c, 0x32, 0xb0, 0xd5, 0x99, 0x5c, 0xda, 0x9d, 0x48,
		0x31, 0x8a, 0x13, 0xd7, 0xbd, 0xc8, 0x1d, 0x7f, 0xd2, 0xfb, 0x95, 0x53, 0xeb, 0x57, 0x8e, 0x2d,
		0x5f, 0xb9, 0x76, 0xab, 0xbf, 0xd3, 0xa9, 0xc3, 0xe9, 0x1e, 0x35, 0xc2, 0x49, 0xd7, 0x4e, 0x4e,
		0x87, 0xef, 0xa3, 0xa9, 0xf4, 0x02, 0x48, 0x69, 0x82, 0x14, 0x90, 0xf2, 0x34, 0x29, 0x37, 0xbb,
		0xff, 0x80, 0x13, 0x70, 0xf2, 0x04, 0x27, 0x3e, 0xbc, 0x09, 0x28, 0x79, 0x98, 0x12, 0x1c, 0x65,
		0x00, 0x7a, 0x96, 0x57, 0xe7, 0x32, 0xf4, 0x3b, 0xd5, 0x25, 0xa8, 0x09, 0x82, 0x40, 0xd0, 0xb2,
		0xe9, 0x62, 0xf0, 0x03, 0xbd, 0x0c, 0x7a, 0xf8, 0xd3, 0x13, 0x58, 0xfb, 0xc0, 0x06, 0xd8, 0x3c,
		0x03, 0x9b, 0x66, 0x03, 0xe7, 0x36, 0xbd, 0xee, 0x17, 0x4e, 0xb6, 0x47, 0xfe, 0xa3, 0x12, 0x7e,
		0x1b, 0x78, 0xc0, 0x3f, 0x03, 0x90, 0xc5, 0x02, 0x72, 0xe7, 0x3c, 0x72, 0xab, 0xf5, 0xef, 0xd0,
		0xb5, 0xda, 0x48, 0xb3, 0x03, 0x93, 0xa7, 0x30, 0x01, 0x22, 0x40, 0xe4, 0x51, 0x44, 0x0e, 0x9c,
		0x76, 0xb8, 0xef, 0x75, 0x0e, 0xbb, 0xc0, 0x04, 0x98, 0x3c, 0x88, 0xc9, 0x91, 0xe5, 0xb8, 0xd6,
		0x8e, 0x6b, 0x87, 0x3b, 0x56, 0xbb, 0xf5, 0x1f, 0xa7, 0x15, 0x7c, 0x04, 0x2e, 0xc0, 0xe5, 0x21,
		0x5c, 0x4a, 0x48, 0xc2, 0xdd, 0x4e, 0xdb, 0x0f, 0x3c, 0xcb, 0x69, 0x07, 0x28, 0x1b, 0x01, 0x30,
		0x0f, 0x02, 0x63, 0x7f, 0x0e, 0xec, 0x76, 0xcb, 0x6e, 0x21, 0x1e, 0x81, 0x97, 0x9f, 0xe1, 0xa5,
		0x58, 0xfa, 0x77, 0xda, 0x81, 0xed, 0xed, 0x59, 0xbb, 0x76, 0x68, 0xb5, 0x5a, 0x9e, 0xed, 0xc3,
		0xc3, 0x80, 0x98, 0xc7, 0x89, 0x69, 0xdb, 0xce, 0xfe, 0xc7, 0x9d, 0x8e, 0x07, 0x60, 0x00, 0xcc,
		0x4f, 0x00, 0xd3, 0x84, 0x8b, 0x01, 0x31, 0xbf, 0x48, 0x0c, 0x5c, 0x0c, 0x80, 0xf9, 0x59, 0x60,
		0x5c, 0xa7, 0xfd, 0x29, 0xb4, 0x82, 0xc0, 0x73, 0x76, 0x0e, 0x03, 0x1b, 0xa8, 0x00, 0x95, 0xc7,
		0x51, 0x69, 0xd9, 0xae, 0xf5, 0x27, 0x28, 0x01, 0x25, 0x4f, 0x53, 0x12, 0x1e, 0x59, 0x9e, 0x63,
		0x05, 0x4e, 0xa7, 0x0d, 0x5e, 0xc0, 0xcb, 0xa3, 0xbc, 0x60, 0x81, 0x08, 0x88, 0x3c, 0x81, 0x88,
		0xdb, 0x81, 0x90, 0x05, 0x24, 0x4f, 0x40, 0xd2, 0xf5, 0x3a, 0x81, 0xbd, 0x9b, 0x87, 0x9c, 0xf1,
		0xbe, 0x2e, 0xf0, 0x02, 0x5e, 0x1e, 0xe0, 0xe5, 0xc0, 0xfa, 0x3c, 0x66, 0x06, 0xab, 0x89, 0xa0,
		0xe5, 0xa7, 0x68, 0xf1, 0x6c, 0xdf, 0xf6, 0x8e, 0xb0, 0x02, 0x0d, 0x66, 0x7e, 0x92, 0x19, 0xa7,
		0x7d, 0xed, 0x65, 0x30, 0x6f, 0x06, 0x2d, 0x8f, 0xd2, 0xe2, 0xd9, 0xbe, 0xd3, 0x3a, 0xb4, 0x5c,
		0xf8, 0x16, 0xd0, 0xf2, 0x34, 0x2d, 0xe8, 0x5e, 0x00, 0x7a, 0x5e, 0x4e, 0x11, 0xcb, 0x1a, 0x6e,
		0x86, 0x4e, 0xa7, 0xc2, 0xf8, 0x00, 0x1d, 0xa0, 0xf3, 0x2c, 0x74, 0x18, 0xd6, 0xd8, 0x01, 0x1f,
		0x32, 0xf8, 0x70, 0xae, 0x05, 0x07, 0x46, 0x54, 0x30, 0x62, 0x5e, 0x23, 0x0e, 0x90, 0xa8, 0x80,
		0xc4, 0xbb, 0x76, 0x1c, 0x1c, 0x51, 0xe1, 0x88, 0x7b, 0x4d, 0x39, 0x48, 0x22, 0x45, 0x12, 0xdf,
		0x42, 0x50, 0x80, 0x44, 0x08, 0xa4, 0x26, 0x5c, 0x12, 0x48, 0x9a, 0x11, 0x49, 0x70, 0x49, 0x00,
		0xe9, 0xa5, 0x20, 0xb1, 0xad, 0x59, 0x07, 0x42, 0xa4, 0x10, 0x62, 0xb6, 0x26, 0x0f, 0x7a, 0xe8,
		0xd1, 0xc3, 0xb1, 0xc6, 0x1d, 0x1c, 0x91, 0xe2, 0x08, 0x0b, 0x68, 0x40, 0xe7, 0x99, 0xe8, 0xf0,
		0xaa, 0x89, 0x07, 0x3c, 0xa4, 0xe0, 0x61, 0x5b, 0x2b, 0x0f, 0x8e, 0xa8, 0x70, 0xc4, 0xb9, 0x86,
		0x1e, 0x14, 0x51, 0xa2, 0x88, 0x77, 0x6d, 0x3d, 0x58, 0x22, 0xc3, 0x12, 0xe3, 0x9a, 0x7b, 0x50,
		0x44, 0x85, 0x22, 0xce, 0xb5, 0xf8, 0xa0, 0x88, 0x0a, 0x45, 0x81, 0x1d, 0xb6, 0xec, 0x3d, 0xeb,
		0xd0, 0x0d, 0xc2, 0x03, 0x3b, 0xf0, 0x9c, 0x5d, 0x40, 0x04, 0x88, 0x7e, 0x15, 0xa2, 0xc3, 0x76,
		0x59, 0x9a, 0x66, 0xb7, 0x42, 0xd7, 0x47, 0x59, 0x11, 0x20, 0x7a, 0x06, 0x44, 0x63, 0x7d, 0x6d,
		0xb7, 0x10, 0xd1, 0xc0, 0xd1, 0x0b, 0x38, 0x0a, 0x1c, 0xd7, 0xf9, 0x2f, 0x73, 0x8a, 0x70, 0x82,
		0xd3, 0xb2, 0x8f, 0xce, 0x8a, 0xec, 0x01, 0x65, 0xac, 0x2f, 0x01, 0x0b, 0x74, 0x24, 0x60, 0x81,
		0x5e, 0x04, 0x2f, 0xd0, 0x85, 0xa0, 0xa5, 0xe2, 0xb4, 0x4c, 0x0e, 0xb7, 0xdf, 0xb5, 0xba, 0x65,
		0xf7, 0x0a, 0x2f, 0xb4, 0xdc, 0xfd, 0x8e, 0xe7, 0x04, 0x1f, 0x0f, 0x40, 0x0a, 0x48, 0x79, 0x94,
		0x94, 0xeb, 0x9f, 0x80, 0x0a, 0x50, 0x79, 0x04, 0x15, 0xb4, 0xc4, 0x01, 0x3f, 0x4b, 0x1b, 0x9c,
		0x18, 0x7a, 0x9e, 0x2a, 0x13, 0xc4, 0x31, 0x68, 0x95, 0x08, 0x21, 0x43, 0xba, 0xc4, 0xd7, 0x95,
		0xfe, 0xf5, 0xa4, 0x7d, 0x1d, 0xe9, 0x5a, 0x47, 0xd3, 0x32, 0xa2, 0x01, 0xab, 0x66, 0x49, 0x99,
		0xea, 0x48, 0xc7, 0xa9, 0xac, 0x6d, 0x13, 0x0e, 0x51, 0x35, 0xd5, 0x3f, 0x13, 0xe7, 0xd1, 0x30,
		0xd2, 0x67, 0x79, 0x30, 0xaa, 0xa7, 0x43, 0x21, 0xfb, 0xa9, 0x3c, 0x89, 0x4f, 0x4d, 0x29, 0xf4,
		0xb7, 0x34, 0xfb, 0x6a, 0xc6, 0x52, 0xe9, 0x48, 0xf6, 0x45, 0xfd, 0xee, 0x0b, 0xea, 0xde, 0x2b,
		0xf5, 0x61, 0x96, 0xea, 0xb4, 0x9f, 0x26, 0xaa, 0x7c, 0x56, 0x8f, 0x55, 0xac, 0xea, 0x89, 0xb8,
		0x10, 0xc9, 0xe4, 0xa1, 0x9e, 0xc4, 0xf2, 0xab, 0xa9, 0x74, 0xa4, 0x85, 0x39, 0x88, 0x74, 0xd4,
		0x8b, 0x94, 0xa8, 0x27, 0x6a, 0x58, 0xd7, 0xc9, 0x85, 0xca, 0xbf, 0xd5, 0xcf, 0xb5, 0x19, 0x0f,
		0x2f, 0x9a, 0x66, 0x26, 0xa2, 0xfe, 0x59, 0xd4, 0x8b, 0x93, 0x58, 0x5f, 0xd5, 0x87, 0x99, 0x38,
		0x89, 0x2f, 0x85, 0x9a, 0x3c, 0xa9, 0xab, 0x51, 0xaf, 0x78, 0xc3, 0xf8, 0xb1, 0x1e, 0x0f, 0x2f,
		0x1a, 0xa6, 0x4a, 0x47, 0x59, 0x5f, 0x98, 0x59, 0x3a, 0xd2, 0x22, 0x33, 0xe3, 0x41, 0xbd, 0xf8,
		0x2b, 0x84, 0xd5, 0x7c, 0x4d, 0xe9, 0x6c, 0xd4, 0xd7, 0x72, 0xa2, 0x05, 0x3a, 0xe5, 0xd5, 0x6f,
		0x8f, 0xaf, 0xac, 0x33, 0xb9, 0xb0, 0xe1, 0x9d, 0x9f, 0xd5, 0xdd, 0x17, 0xc2, 0xee, 0xf4, 0xca,
		0x97, 0xcf, 0x42, 0x47, 0xc5, 0x2a, 0x74, 0x8b, 0x2b, 0x3f, 0x7e, 0x08, 0xdd, 0x58, 0x7e, 0xf5,
		0xf3, 0x4b, 0xd2, 0x9a, 0x5c, 0xf7, 0xd0, 0x55, 0xc3, 0x30, 0x48, 0x2e, 0x54, 0xfe, 0x2d, 0x3c,
		0xd0, 0xce, 0xf0, 0xa2, 0xe9, 0xdd, 0xb8, 0xea, 0x61, 0x77, 0x72, 0xd5, 0x27, 0x4f, 0x42, 0x7f,
		0x7c, 0xd5, 0x27, 0x8f, 0xa1, 0x33, 0xbc, 0x68, 0xf8, 0xc5, 0x45, 0xf7, 0x8a, 0x6b, 0xee, 0x0c,
		0xc2, 0xe2, 0xff, 0xa7, 0xa9, 0x5a, 0xe8, 0x79, 0x30, 0x5a, 0x16, 0x11, 0xf3, 0xa5, 0x35, 0x71,
		0xa9, 0xb3, 0xc8, 0x1c, 0xe5, 0x88, 0xf7, 0x12, 0x41, 0xd2, 0x8f, 0xd6, 0xbe, 0x9d, 0x09, 0x49,
		0x76, 0xe2, 0x4d, 0x38, 0xee, 0x4c, 0xa7, 0x3f, 0x2b, 0x2b, 0x63, 0x27, 0x5d, 0xd7, 0x57, 0x43,
		0x61, 0xfc, 0x61, 0xbc, 0x49, 0xfb, 0x66, 0x1e, 0x32, 0xcc, 0x44, 0x0d, 0x7a, 0x66, 0xfe, 0xa2,
		0xda, 0x76, 0xba, 0x3f, 0x68, 0x4e, 0x33, 0x99, 0x37, 0x39, 0xad, 0x37, 0x94, 0xfd, 0xfb, 0xd8,
		0x39, 0x92, 0x96, 0x00, 0x85, 0x9d, 0x9f, 0xc4, 0xd5, 0xb7, 0x34, 0x1b, 0xe4, 0x77, 0xa4, 0x20,
		0x9a, 0x76, 0x1a, 0xa0, 0xf6, 0x31, 0x52, 0x56, 0x76, 0x3a, 0x3a, 0x17, 0x52, 0xd7, 0xb6, 0x0d,
		0x9d, 0x8d, 0x04, 0x71, 0x83, 0x6f, 0x58, 0x3b, 0x13, 0xe4, 0x7f, 0x43, 0x02, 0xe9, 0xd7, 0x6f,
		0x42, 0x4b, 0xa8, 0x7e, 0x16, 0x0f, 0xc9, 0x8b, 0xf2, 0x5b, 0x0e, 0xb2, 0x23, 0x93, 0x2b, 0x23,
		0x96, 0xfd, 0x64, 0x34, 0x10, 0x86, 0x3e, 0x13, 0x86, 0xd3, 0xbd, 0x68, 0x18, 0x63, 0xbf, 0x62,
		0x8c, 0x55, 0x97, 0xe1, 0xb4, 0x8c, 0x7e, 0x2a, 0x75, 0x14, 0x4b, 0x91, 0x19, 0xf9, 0xf8, 0xfd,
		0x22, 0xf3, 0xdf, 0x54, 0xa3, 0x9e, 0x19, 0xb8, 0x47, 0x46, 0xac, 0x8c, 0x02, 0xb5, 0xb5, 0xb5,
		0x15, 0xea, 0x03, 0x9b, 0x89, 0xbf, 0xbc, 0xeb, 0x33, 0x07, 0x37, 0xc8, 0xa2, 0x9f, 0x41, 0x65,
		0xe7, 0x3e, 0xef, 0xb9, 0xd0, 0x19, 0x0f, 0x0a, 0x64, 0x84, 0xaa, 0x94, 0x11, 0x22, 0x67, 0xd5,
		0x31, 0x66, 0x79, 0x7c, 0x33, 0x65, 0xd5, 0xce, 0x90, 0x11, 0x8c, 0x56, 0xd5, 0xcb, 0x89, 0xd1,
		0x8a, 0x2f, 0x74, 0xfc, 0x23, 0x21, 0x4f, 0x54, 0x2b, 0x86, 0xd3, 0xbd, 0xd1, 0x41, 0xcd, 0x21,
		0x95, 0xb3, 0x82, 0x1f, 0x9b, 0x4b, 0xcc, 0xb3, 0x7f, 0x8a, 0x65, 0x7e, 0x09, 0xd7, 0x88, 0x99,
		0xb5, 0x5b, 0x78, 0x93, 0xda, 0xb6, 0xb1, 0x4a, 0xcc, 0xb0, 0xb1, 0x3f, 0xa1, 0x19, 0x05, 0xa7,
		0xe0, 0x4d, 0x72, 0x15, 0x14, 0xe3, 0x06, 0xf1, 0xb9, 0xe3, 0xcd, 0xf9, 0xe2, 0x38, 0x42, 0x13,
		0x9d, 0x2a, 0xb2, 0x99, 0x1e, 0xde, 0x9a, 0x12, 0x4e, 0xc1, 0xc4, 0x1a, 0x0f, 0x2b, 0xf5, 0xdf,
		0x8a, 0x33, 0xa2, 0xb2, 0xbf, 0x58, 0xc7, 0x24, 0xeb, 0x4c, 0xa6, 0xfe, 0x98, 0xf2, 0x0a, 0x37,
		0x51, 0x01, 0x40, 0x5e, 0x08, 0x70, 0x10, 0x04, 0x8c, 0x84, 0x01, 0x17, 0x81, 0xc0, 0x4e, 0x28,
		0xb0, 0x13, 0x0c, 0xbc, 0x84, 0x03, 0x4d, 0x01, 0x41, 0x54, 0x48, 0x90, 0x17, 0x14, 0xa5, 0x81,
		0x74, 0xb3, 0x0b, 0x0f, 0xfa, 0x76, 0xca, 0xe9, 0xc2, 0x1f, 0x09, 0x8e, 0x55, 0xe2, 0x66, 0x52,
		0x17, 0x1e, 0x9c, 0x04, 0x08, 0x43, 0x21, 0xc2, 0x4d, 0x90, 0xb0, 0x15, 0x26, 0x6c, 0x05, 0x0a,
		0x4f, 0xa1, 0x42, 0x5b, 0xb0, 0x10, 0x17, 0x2e, 0xe5, 0x2d, 0x0f, 0xae, 0x86, 0x82, 0x97, 0xc7,
		0x2d, 0x16, 0x23, 0xa2, 0xc1, 0x20, 0x13, 0x8a, 0x85, 0xdb, 0x9d, 0xa6, 0x25, 0x7e, 0x67, 0x60,
		0x6b, 0x37, 0xd2, 0x5a, 0x64, 0x92, 0xcd, 0xde, 0xde, 0xda, 0xdb, 0xb7, 0x7f, 0xad, 0x9a, 0x1f,
		0x22, 0xf3, 0xc4, 0x32, 0xf7, 0x8e, 0xff, 0x5e, 0x7b, 0xdf, 0xf8, 0xbe, 0xfd, 0xee, 0xef, 0xad,
		0xef, 0x77, 0x5f, 0xfc, 0xe7, 0x47, 0xbf, 0xb6, 0xf6, 0x7e, 0xeb, 0xfb, 0xf6, 0x03, 0xff, 0xd2,
		0xfc, 0xbe, 0xfd, 0x93, 0xff, 0xc7, 0xe6, 0xf7, 0xb7, 0xf7, 0x7e, 0x35, 0x7f, 0x7d, 0xfd, 0xa1,
		0x37, 0x34, 0x1e, 0x78, 0xc3, 0xc6, 0x43, 0x6f, 0xd8, 0x78, 0xe0, 0x0d, 0x0f, 0x9a, 0xb4, 0xfe,
		0xc0, 0x1b, 0x36, 0xbf, 0xff, 0x73, 0xef, 0xf7, 0xdf, 0xfe, 0xf8, 0x57, 0x9b, 0xdf, 0xdf, 0xfd,
		0xf3, 0xd0, 0xbf, 0x6d, 0x7d, 0xff, 0x67, 0xfb, 0xdd, 0x3b, 0xfa, 0x81, 0xe1, 0x98, 0xc3, 0x80,
		0xeb, 0xf8, 0xce, 0x67, 0x76, 0xa3, 0xee, 0x7f, 0x18, 0x76, 0x8b, 0x1a, 0x76, 0xff, 0x62, 0x30,
		0xee, 0x20, 0xc8, 0x5e, 0x30, 0xb6, 0x18, 0x6c, 0x43, 0xba, 0x9f, 0x64, 0x12, 0x27, 0x22, 0x13,
		0xb2, 0x98, 0x5c, 0xf2, 0x70, 0x61, 0x7c, 0xda, 0x38, 0x5c, 0xb7, 0x6e, 0xd8, 0xdb, 0xdd, 0xda,
		0xfa, 0xd0, 0xd8, 0x36, 0x1c, 0xdf, 0x74, 0x7c, 0x63, 0x9c, 0x2c, 0x31, 0x2c, 0xad, 0xb3, 0xb8,
		0x37, 0xd2, 0x42, 0x19, 0x27, 0x69, 0x66, 0xd8, 0x97, 0x5a, 0xc8, 0x81, 0x18, 0x14, 0x25, 0xca,
		0x5f, 0x64, 0x24, 0x8b, 0x67, 0x4d, 0xe3, 0x66, 0x49, 0xd9, 0x4a, 0x59, 0x95, 0xbc, 0xb6, 0xbe,
		0xc2, 0xa8, 0xf9, 0x0c, 0xb7, 0x04, 0xc6, 0x8f, 0x12, 0x19, 0xd7, 0x23, 0x85, 0x59, 0xd3, 0x1f,
		0xae, 0x39, 0x8d, 0x1f, 0xe6, 0x36, 0x5e, 0x69, 0x28, 0xa1, 0xb9, 0xc7, 0x92, 0x59, 0x79, 0x8c,
		0xad, 0x1c, 0x55, 0xd3, 0x60, 0x35, 0xcd, 0x21, 0x21, 0x56, 0x8a, 0x82, 0xc2, 0x5a, 0x2c, 0x93,
		0xcd, 0xc2, 0x4c, 0x2c, 0x93, 0xbd, 0x22, 0xa7, 0x58, 0x26, 0x9b, 0x87, 0xba, 0xc4, 0x32, 0xd9,
		0xdc, 0xa5, 0x24, 0x96, 0xc9, 0x96, 0x22, 0x2b, 0xc3, 0x70, 0x99, 0x6c, 0x20, 0xa4, 0x8e, 0xf5,
		0x55, 0x26, 0x4e, 0x38, 0xad, 0x92, 0x6d, 0x32, 0xb0, 0xd5, 0x99, 0x5c, 0xda, 0x9d, 0x48, 0x31,
		0x8a, 0x13, 0xd7, 0xfd, 0xf0, 0x1d, 0x7f, 0xd2, 0x7f, 0x98, 0x53, 0xfb, 0x61, 0x8e, 0x6d, 0x87,
		0xb9, 0x9e, 0x98, 0xf0, 0x68, 0x3b, 0x18, 0x34, 0x36, 0x07, 0x29, 0x8f, 0x90, 0xd2, 0x04, 0x29,
		0x20, 0xe5, 0x69, 0x52, 0xba, 0x9e, 0xbd, 0xe7, 0x7c, 0x0e, 0xf7, 0x5c, 0x6b, 0xdf, 0x07, 0x27,
		0xe0, 0xe4, 0x09, 0x4e, 0x7c, 0x78, 0x13, 0x50, 0xf2, 0x30, 0x25, 0x38, 0x4e, 0x03, 0xf4, 0x2c,
		0xaf, 0xce, 0x65, 0xe8, 0x77, 0xaa, 0x4b, 0x50, 0x13, 0x04, 0x81, 0xa0, 0x65, 0xd3, 0xc5, 0xe0,
		0x07, 0x7a, 0x19, 0xf4, 0xf0, 0xa7, 0x27, 0xb0, 0xf6, 0x81, 0x0d, 0xb0, 0x79, 0x06, 0x36, 0xcd,
		0x06, 0xce, 0x0e, 0x7b, 0xdd, 0xaf, 0x63, 0xe4, 0x3f, 0x90, 0xff, 0xa8, 0x82, 0xdf, 0x06, 0x1e,
		0xf0, 0xcf, 0x00, 0x64, 0xb1, 0x80, 0xdc, 0x39, 0x13, 0xdf, 0x6a, 0xfd, 0x3b, 0x74, 0xad, 0x36,
		0xd2, 0xec, 0xc0, 0xe4, 0x29, 0x4c, 0x80, 0x08, 0x10, 0x79, 0x14, 0x91, 0x03, 0xa7, 0x1d, 0xee,
		0x7b, 0x9d, 0xc3, 0x2e, 0x30, 0x01, 0x26, 0x0f, 0x62, 0x72, 0x64, 0x39, 0xae, 0xb5, 0xe3, 0xda,
		0xe1, 0x8e, 0xd5, 0x6e, 0xfd, 0xc7, 0x69, 0x05, 0x1f, 0x81, 0x0b, 0x70, 0x79, 0x08, 0x97, 0x12,
		0x92, 0x70, 0xb7, 0xd3, 0xf6, 0x03, 0xcf, 0x72, 0xda, 0x01, 0xca, 0x46, 0x00, 0xcc, 0x83, 0xc0,
		0xd8, 0x9f, 0x03, 0xbb, 0xdd, 0xb2, 0x5b, 0x88, 0x47, 0xe0, 0xe5, 0x67, 0x78, 0x29, 0x96, 0xfe,
		0x9d, 0x76, 0x60, 0x7b, 0x7b, 0xd6, 0xae, 0x1d, 0x5a, 0xad, 0x96, 0x67, 0xfb, 0xf0, 0x30, 0x20,
		0xe6, 0x71, 0x62, 0xda, 0xb6, 0xb3, 0xff, 0x71, 0xa7, 0xe3, 0x01, 0x18, 0x00, 0xf3, 0x13, 0xc0,
		0x34, 0xe1, 0x62, 0x40, 0xcc, 0x2f, 0x12, 0x03, 0x17, 0x03, 0x60, 0x7e, 0x16, 0x18, 0xd7, 0x69,
		0x7f, 0x0a, 0xad, 0x20, 0xf0, 0x9c, 0x9d, 0xc3, 0xc0, 0x06, 0x2a, 0x40, 0xe5, 0x71, 0x54, 0x5a,
		0xb6, 0x6b, 0xfd, 0x09, 0x4a, 0x40, 0xc9, 0xd3, 0x94, 0x84, 0x47, 0x96, 0xe7, 0x58, 0x81, 0xd3,
		0x69, 0x83, 0x17, 0xf0, 0xf2, 0x28, 0x2f, 0x58, 0x20, 0x02, 0x22, 0x4f, 0x20, 0xe2, 0x76, 0x20,
		0x64, 0x01, 0xc9, 0x13, 0x90, 0x74, 0xbd, 0x4e, 0x60, 0xef, 0xe6, 0x21, 0x67, 0xbc, 0xaf, 0x0b,
		0xbc, 0x80, 0x97, 0x07, 0x78, 0x39, 0xb0, 0x3e, 0x8f, 0x99, 0xc1, 0x6a, 0x22, 0x68, 0xf9, 0x29,
		0x5a, 0x3c, 0xdb, 0xb7, 0xbd, 0x23, 0xac, 0x40, 0x83, 0x99, 0x9f, 0x64, 0xc6, 0x69, 0x5f, 0x7b,
		0x19, 0xcc, 0x9b, 0x41, 0xcb, 0xa3, 0xb4, 0x78, 0xb6, 0xef, 0xb4, 0x0e, 0x2d, 0x17, 0xbe, 0x05,
		0xb4, 0x3c, 0x4d, 0x0b, 0xba, 0x17, 0x80, 0x9e, 0x97, 0x53, 0xc4, 0xb2, 0x86, 0x9b, 0xa1, 0xd3,
		0xa9, 0x30, 0x3e, 0x40, 0x07, 0xe8, 0x3c, 0x0b, 0x1d, 0x86, 0x35, 0x76, 0xc0, 0x87, 0x0c, 0x3e,
		0x9c, 0x6b, 0xc1, 0x81, 0x11, 0x15, 0x8c, 0x98, 0xd7, 0x88, 0x03, 0x24, 0x2a, 0x20, 0xf1, 0xae,
		0x1d, 0x07, 0x47, 0x54, 0x38, 0xe2, 0x5e, 0x53, 0x0e, 0x92, 0x48, 0x91, 0xc4, 0xb7, 0x10, 0x14,
		0x20, 0x11, 0x02, 0xa9, 0x09, 0x97, 0x04, 0x92, 0x66, 0x44, 0x12, 0x5c, 0x12, 0x40, 0x7a, 0x29,
		0x48, 0x6c, 0x6b, 0xd6, 0x81, 0x10, 0x29, 0x84, 0x98, 0xad, 0xc9, 0x83, 0x1e, 0x7a, 0xf4, 0x70,
		0xac, 0x71, 0x07, 0x47, 0xa4, 0x38, 0xc2, 0x02, 0x1a, 0xd0, 0x79, 0x26, 0x3a, 0xbc, 0x6a, 0xe2,
		0x01, 0x0f, 0x29, 0x78, 0xd8, 0xd6, 0xca, 0x83, 0x23, 0x2a, 0x1c, 0x71, 0xae, 0xa1, 0x07, 0x45,
		0x94, 0x28, 0xe2, 0x5d, 0x5b, 0x0f, 0x96, 0xc8, 0xb0, 0xc4, 0xb8, 0xe6, 0x1e, 0x14, 0x51, 0xa1,
		0x88, 0x73, 0x2d, 0x3e, 0x28, 0xa2, 0x42, 0x51, 0x60, 0x87, 0x2d, 0x7b, 0xcf, 0x3a, 0x74, 0x83,
		0xf0, 0xc0, 0x0e, 0x3c, 0x67, 0x17, 0x10, 0x01, 0xa2, 0x5f, 0x85, 0xe8, 0xb0, 0x5d, 0x96, 0xa6,
		0xd9, 0xad, 0xd0, 0xf5, 0x51, 0x56, 0x04, 0x88, 0x9e, 0x01, 0xd1, 0x58, 0x5f, 0xdb, 0x2d, 0x44,
		0x34, 0x70, 0xf4, 0x02, 0x8e, 0x02, 0xc7, 0x75, 0xfe, 0xcb, 0x9c, 0x22, 0x9c, 0xe0, 0xb4, 0xec,
		0xa3, 0xb3, 0x22, 0x7b, 0x40, 0x19, 0xeb, 0x4b, 0xc0, 0x02, 0x1d, 0x09, 0x58, 0xa0, 0x17, 0xc1,
		0x0b, 0x74, 0x21, 0x68, 0xa9, 0x38, 0x2d, 0x93, 0xc3, 0xed, 0x77, 0xad, 0x6e, 0xd9, 0xbd, 0xc2,
		0x0b, 0x2d, 0x77, 0xbf, 0xe3, 0x39, 0xc1, 0xc7, 0x03, 0x90, 0x02, 0x52, 0x1e, 0x25, 0xe5, 0xfa,
		0x27, 0xa0, 0x02, 0x54, 0x1e, 0x41, 0x05, 0x2d, 0x71, 0xc0, 0xcf, 0xd2, 0x06, 0x27, 0x86, 0x9e,
		0xa7, 0xca, 0x04, 0x71, 0x0c, 0x5a, 0x25, 0x42, 0xc8, 0x90, 0x2e, 0xf1, 0x75, 0xa5, 0x7f, 0x3d,
		0x69, 0x5f, 0x47, 0xba, 0xd6, 0xd1, 0xb4, 0x8c, 0x68, 0xc0, 0xaa, 0x59, 0x52, 0xa6, 0x3a, 0xd2,
		0x71, 0x2a, 0x6b, 0xdb, 0x84, 0x43, 0x54, 0x4d, 0xf5, 0xcf, 0xc4, 0x79, 0x34, 0x8c, 0xf4, 0x59,
		0x1e, 0x8c, 0xea, 0xe9, 0x50, 0xc8, 0x7e, 0x2a, 0x4f, 0xe2, 0x53, 0x53, 0x0a, 0xfd, 0x2d, 0xcd,
		0xbe, 0x9a, 0xb1, 0x54, 0x3a, 0x92, 0x7d, 0x51, 0xbf, 0xfb, 0x82, 0xba, 0xf7, 0x4a, 0x7d, 0x98,
		0xa5, 0x3a, 0xed, 0xa7, 0x89, 0x2a, 0x9f, 0xd5, 0x63, 0x15, 0xab, 0x7a, 0x22, 0x2e, 0x44, 0x32,
		0x79, 0xa8, 0x27, 0xb1, 0xfc, 0x6a, 0x2a, 0x1d, 0x69, 0x61, 0x0e, 0x22, 0x1d, 0xf5, 0x22, 0x25,
		0xea, 0x89, 0x1a, 0xd6, 0x75, 0x72, 0xa1, 0xf2, 0x6f, 0xf5, 0x73, 0x6d, 0xc6, 0xc3, 0x8b, 0xa6,
		0x99, 0x89, 0xa8, 0x7f, 0x16, 0xf5, 0xe2, 0x24, 0xd6, 0x57, 0xf5, 0x61, 0x26, 0x4e, 0xe2, 0x4b,
		0xa1, 0x26, 0x4f, 0xea, 0x6a, 0xd4, 0x2b, 0xde, 0x30, 0x7e, 0xac, 0x17, 0x6f, 0x50, 0xe9, 0x28,
		0xeb, 0x0b, 0x33, 0x4b, 0x47, 0x5a, 0x64, 0x66, 0x3c, 0xa8, 0x17, 0x7f, 0x85, 0xb0, 0x9a, 0xaf,
		0x29, 0x9d, 0x8d, 0xfa, 0x5a, 0x4e, 0xb4, 0x40, 0xa7, 0xbc, 0xfa, 0xed, 0xf1, 0x95, 0x75, 0x26,
		0x17, 0x36, 0xbc, 0xf3, 0xb3, 0xba, 0xfb, 0x42, 0xd8, 0x9d, 0x5e, 0xf9, 0xf2, 0x59, 0xe8, 0xa8,
		0x58, 0x85, 0x6e, 0x71, 0xe5, 0xc7, 0x0f, 0xa1, 0x1b, 0xcb, 0xaf, 0x7e, 0x7e, 0x49, 0x5a, 0x93,
		0xeb, 0x1e, 0xba, 0x6a, 0x18, 0x06, 0xc9, 0x85, 0xca, 0xbf, 0x85, 0x07, 0xda, 0x19, 0x5e, 0x34,
		0xbd, 0x1b, 0x57, 0x3d, 0xec, 0x4e, 0xae, 0xfa, 0xe4, 0x49, 0xe8, 0x8f, 0xaf, 0xfa, 0xe4, 0x31,
		0xcc, 0x7f, 0xdf, 0x2f, 0x2e, 0xba, 0x57, 0x5c, 0x73, 0x67, 0x10, 0x16, 0xff, 0x3f, 0x4d, 0xd5,
		0x42, 0xcf, 0x83, 0xd1, 0xb2, 0x88, 0x98, 0x2f, 0xad, 0x89, 0x4b, 0x9d, 0x45, 0xe6, 0x28, 0x47,
		0xbc, 0x97, 0x08, 0x92, 0x7e, 0xb4, 0xf6, 0xed, 0x4c, 0x48, 0xb2, 0x13, 0x6f, 0xc2, 0x71, 0x67,
		0x3a, 0xfd, 0x59, 0x59, 0x19, 0x3b, 0xe9, 0xba, 0xbe, 0x1a, 0x0a, 0xe3, 0x0f, 0xe3, 0x4d, 0xda,
		0x37, 0xf3, 0x90, 0x61, 0x26, 0x6a, 0xd0, 0x33, 0xf3, 0x17, 0xd5, 0xb6, 0xd3, 0xfd, 0x41, 0x27,
		0x88, 0xc9, 0xbc, 0xc9, 0x69, 0xbd, 0xa1, 0xec, 0xdf, 0xc7, 0xce, 0x91, 0xb4, 0x04, 0x28, 0xec,
		0xfc, 0x24, 0xae, 0xbe, 0xa5, 0xd9, 0x20, 0xbf, 0x23, 0x05, 0xd1, 0xb4, 0xd3, 0x00, 0xb5, 0x8f,
		0x91, 0xb2, 0xb2, 0xd3, 0xd1, 0xb9, 0x90, 0xba, 0xb6, 0x6d, 0xe8, 0x6c, 0x24, 0x88, 0x1b, 0x7c,
		0xc3, 0xda, 0x99, 0x20, 0xff, 0x1b, 0x12, 0x48, 0xbf, 0x7e, 0x13, 0x5a, 0x42, 0xf5, 0xb3, 0x78,
		0x48, 0x5e, 0x94, 0xdf, 0x72, 0x90, 0x1d, 0x99, 0x5c, 0x19, 0xb1, 0xec, 0x27, 0xa3, 0x81, 0x30,
		0xf4, 0x99, 0x30, 0x9c, 0xee, 0x45, 0xd3, 0x18, 0xfb, 0x15, 0x63, 0xac, 0xba, 0x0c, 0xa7, 0x65,
		0xf4, 0x53, 0xa9, 0xa3, 0x58, 0x8a, 0xcc, 0xc8, 0xc7, 0xef, 0x17, 0x99, 0xff, 0xa6, 0x1a, 0xf5,
		0xcc, 0xc0, 0x3d, 0x32, 0x62, 0x65, 0x14, 0xa8, 0xad, 0xad, 0xaf, 0x50, 0x1f, 0xd8, 0x4c, 0xfc,
		0xe5, 0x5d, 0x9f, 0x39, 0xb8, 0x41, 0x16, 0xfd, 0x0c, 0x2a, 0x3b, 0xf7, 0x79, 0xcf, 0x85, 0xce,
		0x78, 0x50, 0x20, 0x23, 0x54, 0xa5, 0x8c, 0x10, 0x39, 0xab, 0x8e, 0x31, 0xcb, 0xe3, 0x9b, 0x29,
		0xab, 0x76, 0x86, 0x8c, 0x60, 0xb4, 0xaa, 0x5e, 0x4e, 0x8c, 0x56, 0x7c, 0xa1, 0xe3, 0x1f, 0x09,
		0x79, 0xa2, 0xda, 0x78, 0xcc, 0x98, 0x2a, 0x1e, 0x28, 0x72, 0x6e, 0xa8, 0x9c, 0x0b, 0xdc, 0x34,
		0x92, 0x98, 0x17, 0xff, 0x14, 0xcb, 0x5c, 0x09, 0xaf, 0x11, 0x33, 0x6b, 0xb7, 0xf0, 0x1c, 0xb5,
		0x6d, 0x63, 0x95, 0x98, 0x61, 0x63, 0xdf, 0x41, 0x33, 0xe2, 0x4d, 0x71, 0x9b, 0xe4, 0x25, 0x28,
		0xc6, 0x08, 0xe2, 0xf3, 0xc4, 0x9b, 0x73, 0xc3, 0xf1, 0xa0, 0x25, 0x3a, 0x2d, 0x64, 0x33, 0x15,
		0xbc, 0x35, 0xfd, 0x9b, 0x82, 0x89, 0xf5, 0x1c, 0x56, 0x4a, 0xbf, 0x15, 0x67, 0x34, 0x1d, 0xde,
		0x75, 0x5c, 0xa5, 0xeb, 0x51, 0xee, 0x6b, 0x00, 0xaa, 0x2e, 0x85, 0xa6, 0x14, 0x20, 0x2f, 0x09,
		0x38, 0x48, 0x03, 0x46, 0x12, 0x81, 0x8b, 0x54, 0x60, 0x27, 0x19, 0xd8, 0x49, 0x07, 0x5e, 0x12,
		0x82, 0xa6, 0x94, 0x20, 0x2a, 0x29, 0xc8, 0x4b, 0x8b, 0xd2, 0xc0, 0x71, 0x25, 0x1a, 0x9b, 0x55,
		0x47, 0xea, 0x85, 0x73, 0x0c, 0x84, 0x06, 0x1b, 0xc1, 0xc1, 0x49, 0x78, 0x30, 0x14, 0x20, 0xdc,
		0x84, 0x08, 0x5b, 0x41, 0xc2, 0x56, 0x98, 0xf0, 0x14, 0x28, 0xb4, 0x85, 0x0a, 0x71, 0xc1, 0xc2,
		0x46, 0xb8, 0x94, 0x86, 0x46, 0xc9, 0x69, 0x9a, 0xc5, 0xfa, 0xec, 0x9c, 0x8f, 0x03, 0x9b, 0xc6,
		0x88, 0x6b, 0xd3, 0x99, 0xf8, 0x81, 0x89, 0xb0, 0x59, 0x65, 0x62, 0x2e, 0x17, 0x81, 0xc3, 0x51,
		0xe8, 0x30, 0x16, 0x3c, 0x5c, 0x85, 0x0f, 0x7b, 0x01, 0xc4, 0x5e, 0x08, 0xf1, 0x16, 0x44, 0x3c,
		0x84, 0x11, 0x13, 0x81, 0x54, 0xa2, 0x10, 0x5c, 0x0d, 0x05, 0x4f, 0x8f, 0x3d, 0x8a, 0xa5, 0xfe,
		0x9d, 0x93, 0xbf, 0x9e, 0xc8, 0x8f, 0x4d, 0x46, 0x26, 0x7b, 0x91, 0x3c, 0x15, 0xec, 0x1a, 0xa0,
		0xf0, 0x6b, 0x5d, 0x51, 0x3b, 0x88, 0x25, 0xbb, 0x40, 0x5e, 0x1a, 0x5f, 0xf4, 0xc9, 0xe1, 0xa3,
		0x53, 0xef, 0xd9, 0xbf, 0x97, 0x45, 0x7d, 0x1d, 0xa7, 0xb2, 0x15, 0x9f, 0xc6, 0x5a, 0x31, 0xfe,
		0x20, 0x6d, 0x71, 0x1a, 0xe9, 0xf8, 0x22, 0xbf, 0x17, 0x27, 0x51, 0xa2, 0x04, 0xfa, 0xe4, 0xcc,
		0x63, 0xe8, 0x46, 0x97, 0xfc, 0x87, 0xee, 0xfa, 0xe6, 0x26, 0x06, 0x2f, 0x06, 0xef, 0x12, 0x08,
		0x73, 0x7e, 0xd6, 0xf2, 0xe8, 0xa5, 0x44, 0xff, 0x7a, 0x32, 0x08, 0x2e, 0xb5, 0x93, 0x24, 0x3a,
		0x55, 0xfc, 0x52, 0xc1, 0x63, 0xb3, 0x91, 0x06, 0x7e, 0x0d, 0x73, 0x91, 0x06, 0x9e, 0x23, 0xc8,
		0x48, 0x03, 0xcf, 0x6f, 0x18, 0x22, 0x0d, 0xbc, 0xe0, 0x0f, 0x80, 0x34, 0x30, 0x34, 0xc7, 0x04,
		0x05, 0xbe, 0x69, 0x60, 0x21, 0x47, 0xe7, 0x22, 0x8b, 0x98, 0xf4, 0x88, 0xb8, 0x2b, 0x42, 0xd6,
		0x1a, 0x8c, 0x6c, 0xb6, 0xe5, 0xe8, 0x9c, 0x5f, 0x9c, 0x09, 0x52, 0x5f, 0x67, 0xb1, 0x3c, 0x65,
		0x99, 0xa4, 0xa9, 0xad, 0x16, 0xcd, 0x8c, 0x6d, 0xab, 0x75, 0x64, 0x7b, 0x81, 0xe3, 0xdb, 0x07,
		0x76, 0x3b, 0xa8, 0x31, 0xcc, 0x92, 0xad, 0xe5, 0x9f, 0xa3, 0xdd, 0x69, 0xd9, 0x1c, 0x8d, 0x5f,
		0x1f, 0x1b, 0x1f, 0x76, 0x3f, 0x76, 0x39, 0x9a, 0xbf, 0x91, 0x9b, 0x6f, 0x7f, 0xee, 0xba, 0xce,
		0xae, 0x13, 0x84, 0xed, 0x43, 0xd7, 0xe5, 0xf8, 0x29, 0x1a, 0xf9, 0xa7, 0x38, 0xb2, 0xdc, 0x43,
		0x96, 0x08, 0x6d, 0xe6, 0xd6, 0xbb, 0x9d, 0x5d, 0xcb, 0xe5, 0xd5, 0x7a, 0x9c, 0x59, 0x46, 0xbe,
		0x16, 0xa4, 0x4e, 0x21, 0x68, 0x19, 0xba, 0xfa, 0xdb, 0x23, 0x74, 0xdb, 0xd8, 0x60, 0x88, 0xf9,
		0x98, 0x70, 0x56, 0x8b, 0xdc, 0xd7, 0x8a, 0x32, 0x8f, 0x4e, 0xe4, 0xf7, 0x3d, 0x3c, 0x60, 0x7a,
		0x11, 0x9b, 0xb6, 0xff, 0x3f, 0x7b, 0x5f, 0xdb, 0xd4, 0x38, 0x92, 0x74, 0xfb, 0x7d, 0x7f, 0x85,
		0xc2, 0x71, 0x23, 0x7a, 0x26, 0x02, 0x63, 0x6c, 0x0c, 0x34, 0x44, 0xcc, 0x07, 0x81, 0x45, 0xb7,
		0xb6, 0x8d, 0x4d, 0xd8, 0x82, 0x9d, 0xde, 0xa5, 0xaf, 0x42, 0xd8, 0x65, 0x53, 0x77, 0x4c, 0x99,
		0x90, 0x64, 0x1a, 0x9e, 0x67, 0xe7, 0xbf, 0xdf, 0x90, 0x5f, 0x84, 0x79, 0x9b, 0xee, 0x01, 0xd9,
		0xaa, 0x53, 0x3a, 0x7c, 0x68, 0xc0, 0x03, 0x43, 0x96, 0x75, 0x32, 0xf3, 0x64, 0x56, 0xd5, 0x49,
		0xab, 0x06, 0x68, 0xfc, 0x53, 0x76, 0x03, 0xb9, 0x85, 0x33, 0xcf, 0x4c, 0x07, 0x56, 0x9d, 0xbb,
		0x20, 0xac, 0xf7, 0xf5, 0x8f, 0xd3, 0x32, 0x8a, 0xed, 0x38, 0x0e, 0xb1, 0x6a, 0xfe, 0x13, 0xa9,
		0x9c, 0x91, 0xb8, 0x16, 0x0a, 0x6d, 0xa3, 0xb7, 0x74, 0x12, 0xdc, 0x2d, 0x59, 0x5e, 0xfd, 0x58,
		0xaf, 0xef, 0xee, 0xd5, 0xeb, 0x5b, 0x7b, 0xdb, 0x7b, 0x5b, 0xfb, 0x3b, 0x3b, 0xd5, 0xdd, 0x2a,
		0xd2, 0xa9, 0xb0, 0x76, 0xd8, 0x17, 0xa1, 0xe8, 0x1f, 0xde, 0x97, 0x0e, 0x2c, 0x35, 0x19, 0x8d,
		0x10, 0x4d, 0x3f, 0x8b, 0x44, 0x08, 0xb5, 0xd3, 0xce, 0xfd, 0xd5, 0x2c, 0x9e, 0xff, 0xed, 0xfc,
		0xbc, 0x0b, 0xd8, 0xfe, 0xea, 0xcc, 0x6c, 0xee, 0xaf, 0xae, 0xc2, 0x5c, 0xee, 0xaf, 0xae, 0x11,
		0xc8, 0xdc, 0x5f, 0x5d, 0x9f, 0x1b, 0x72, 0x7f, 0x35, 0xe7, 0x05, 0x70, 0x7f, 0x95, 0x9c, 0x63,
		0x0e, 0x05, 0xec, 0x6b, 0x36, 0xdb, 0x35, 0xc0, 0xad, 0xd5, 0x3d, 0xde, 0xb3, 0x59, 0xf1, 0x07,
		0xef, 0xd9, 0xac, 0xd7, 0x78, 0xde, 0xb3, 0xd1, 0x25, 0x36, 0xf2, 0x9e, 0x4d, 0x0e, 0xae, 0x6b,
		0xc2, 0x3d, 0x9b, 0x7a, 0x6d, 0xbf, 0xbe, 0xbf, 0xbb, 0x57, 0xdb, 0xe7, 0x75, 0x1b, 0xfa, 0x70,
		0x11, 0x08, 0x3a, 0x9e, 0xb5, 0xbc, 0x6e, 0x53, 0x04, 0x0b, 0x75, 0x17, 0xb0, 0x02, 0x19, 0x74,
		0x9d, 0xda, 0x6b, 0xca, 0x38, 0x9f, 0xa5, 0x59, 0x20, 0x4b, 0x5f, 0x57, 0x10, 0x84, 0x3b, 0x2d,
		0x03, 0xa6, 0xfc, 0xcc, 0x5e, 0xed, 0xca, 0x7e, 0xf4, 0xf0, 0xa5, 0xce, 0xb3, 0xaf, 0xf5, 0x0f,
		0x76, 0x3a, 0x4f, 0x0e, 0xc5, 0xd8, 0x8d, 0x83, 0xda, 0x85, 0x03, 0xd9, 0x7d, 0xa3, 0x7a, 0xef,
		0x2a, 0x81, 0x4a, 0xf5, 0xde, 0xd5, 0xb9, 0x17, 0xd5, 0x7b, 0xd7, 0xcd, 0x84, 0xa9, 0xde, 0x5b,
		0xb4, 0xe2, 0x07, 0x66, 0xb7, 0x2c, 0x8d, 0xb8, 0x23, 0x11, 0x0c, 0x42, 0x31, 0x40, 0x88, 0xb8,
		0x8b, 0x9b, 0x87, 0x00, 0xfb, 0x63, 0xa5, 0xd3, 0x79, 0x3d, 0x99, 0xce, 0xf6, 0x9f, 0x51, 0x30,
		0x96, 0x02, 0x06, 0x59, 0xa6, 0xeb, 0xec, 0x93, 0x2f, 0xe2, 0x5e, 0x77, 0xd2, 0x8f, 0x71, 0x8c,
		0x1b, 0xe7, 0xd8, 0x36, 0xf4, 0x31, 0x6d, 0xa0, 0x63, 0xd9, 0x40, 0xc7, 0xb0, 0x75, 0x8d, 0x4e,
		0x20, 0xfd, 0x61, 0xc3, 0xfb, 0xc2, 0x3a, 0x0f, 0xe8, 0x33, 0xb0, 0x13, 0xac, 0x27, 0xf1, 0xfb,
		0x93, 0xf3, 0x72, 0x91, 0x42, 0x68, 0x49, 0xdc, 0xc5, 0x61, 0x50, 0x9e, 0x24, 0xf0, 0xbe, 0x1c,
		0xe9, 0x59, 0x67, 0x96, 0x42, 0x31, 0x10, 0xa1, 0x50, 0x3d, 0x7d, 0x0f, 0x05, 0x02, 0x4c, 0x51,
		0xed, 0x87, 0xc1, 0x20, 0x2e, 0x4b, 0x11, 0x0f, 0xa6, 0x5d, 0xa3, 0x72, 0x24, 0x86, 0x09, 0xb5,
		0x2b, 0x87, 0xe3, 0x49, 0x2c, 0xd5, 0xb0, 0x2c, 0xee, 0x62, 0xa1, 0x22, 0x39, 0x56, 0xd1, 0xa6,
		0x15, 0x4d, 0x2e, 0xcb, 0x5e, 0xf3, 0xdc, 0xda, 0x3e, 0xb0, 0xbc, 0xe6, 0xf9, 0x85, 0xaa, 0x6e,
		0xef, 0x6c, 0x58, 0xb5, 0xd9, 0x3f, 0xbb, 0xc9, 0x3f, 0x7b, 0x9b, 0x9c, 0xc6, 0x9a, 0x49, 0x51,
		0xb5, 0x68, 0x9f, 0x3e, 0x40, 0x9c, 0x03, 0x59, 0x33, 0xe6, 0x86, 0x4b, 0x1d, 0xd3, 0xac, 0x7d,
		0x80, 0xcd, 0x0d, 0x70, 0xab, 0xbe, 0xe9, 0x07, 0xde, 0xd2, 0xf7, 0x2b, 0xa1, 0x98, 0xe8, 0xde,
		0x9e, 0xe8, 0xd2, 0xf6, 0x68, 0x7c, 0x7f, 0x23, 0xac, 0xdf, 0xac, 0x0f, 0xf3, 0x7d, 0x92, 0xf2,
		0x28, 0xea, 0x5f, 0x96, 0x93, 0x17, 0xa3, 0x03, 0xf7, 0xd4, 0xef, 0x38, 0xf6, 0xd1, 0x67, 0xfb,
		0xd0, 0x6d, 0xba, 0xde, 0x57, 0xff, 0xb4, 0xe3, 0x1c, 0xbb, 0xbf, 0xfb, 0x5d, 0xb7, 0xf1, 0x81,
		0x89, 0x2d, 0xd3, 0xc4, 0x36, 0x45, 0x33, 0x73, 0xda, 0xea, 0x72, 0xda, 0x7b, 0xe1, 0xce, 0xb3,
		0x3a, 0x6f, 0x78, 0x00, 0x0d, 0x11, 0xf5, 0x42, 0x79, 0x03, 0x71, 0x22, 0x31, 0x0d, 0x8c, 0x6d,
		0x35, 0xba, 0xb7, 0xa4, 0xea, 0x8d, 0x26, 0x7d, 0x61, 0xc5, 0x57, 0xc2, 0x9a, 0xb5, 0x12, 0xac,
		0xae, 0xdb, 0xb0, 0x7a, 0x63, 0x15, 0x07, 0x52, 0x89, 0xd0, 0x4a, 0x1c, 0xf6, 0x42, 0x25, 0xff,
		0x79, 0xc1, 0x80, 0x64, 0x64, 0x4d, 0xb1, 0xb5, 0xbd, 0xa9, 0xbb, 0x23, 0x03, 0x9d, 0x9f, 0x58,
		0x8e, 0x91, 0xfd, 0x25, 0x34, 0x01, 0xec, 0x43, 0x22, 0x1e, 0x9e, 0x78, 0x14, 0x32, 0x33, 0x70,
		0x04, 0x6e, 0xba, 0xb2, 0x2e, 0x59, 0x65, 0x5d, 0xc2, 0x9e, 0xe5, 0x5f, 0xf9, 0xb2, 0xde, 0xdb,
		0x3d, 0x26, 0x6e, 0xf3, 0x68, 0x98, 0x97, 0xcc, 0xd9, 0xd3, 0xd1, 0x2b, 0x9b, 0xe8, 0x13, 0x0d,
		0x35, 0x8a, 0x3b, 0xa5, 0xd9, 0x9d, 0x17, 0xdd, 0xc2, 0x4d, 0xca, 0xed, 0x75, 0xbc, 0x92, 0x93,
		0x1e, 0xae, 0xd3, 0xcc, 0x2c, 0x5d, 0x4f, 0xdb, 0xeb, 0x7c, 0xba, 0x1e, 0xe0, 0x34, 0xbd, 0xee,
		0xd5, 0x1f, 0xcc, 0x69, 0x79, 0x98, 0x02, 0x0f, 0xe3, 0x34, 0x3c, 0xcf, 0x1f, 0xfc, 0x65, 0x27,
		0x4d, 0xea, 0x79, 0x5e, 0xb3, 0x14, 0xeb, 0x7c, 0xec, 0x3e, 0x0d, 0xc7, 0x53, 0x2b, 0x75, 0x3d,
		0x33, 0xac, 0xf5, 0xe5, 0x3b, 0xed, 0x2f, 0xdd, 0x21, 0x5c, 0xb6, 0x03, 0xba, 0x64, 0x87, 0xb8,
		0x79, 0x06, 0x71, 0xa9, 0x0e, 0x7b, 0xfb, 0x4c, 0xfb, 0x4b, 0x74, 0xbc, 0xa7, 0xf2, 0x77, 0x1e,
		0xad, 0xf6, 0x97, 0xe5, 0xd2, 0x88, 0x29, 0xfb, 0x42, 0xc5, 0x32, 0xbe, 0xd7, 0xfb, 0xa2, 0x5c,
		0x5a, 0xc3, 0xeb, 0x7c, 0xd7, 0xc3, 0x9d, 0xbf, 0x95, 0x87, 0x41, 0x04, 0x24, 0xa0, 0xe0, 0x76,
		0xdd, 0xae, 0xdf, 0x3d, 0x3b, 0xf4, 0x9a, 0xe7, 0xbe, 0xf7, 0xf5, 0x54, 0xf7, 0x41, 0x5e, 0x33,
		0xd5, 0xb6, 0x08, 0x42, 0x97, 0x13, 0x4c, 0xd0, 0xfe, 0xe9, 0xf1, 0x0c, 0xf7, 0xf4, 0xbc, 0xee,
		0x77, 0xda, 0x67, 0x9e, 0xd3, 0xf1, 0xdd, 0x46, 0x89, 0xb3, 0x0e, 0x88, 0x88, 0xd3, 0xf3, 0x5d,
		0x22, 0x82, 0x88, 0x78, 0x76, 0x84, 0xeb, 0xb8, 0x69, 0x7f, 0xea, 0x12, 0x0f, 0xc4, 0xc3, 0xc3,
		0x91, 0x3e, 0xa2, 0x81, 0x68, 0x98, 0xd1, 0xca, 0x2e, 0x02, 0xaf, 0x44, 0xe4, 0x97, 0x58, 0x28,
		0x31, 0x8e, 0x6f, 0x02, 0xc5, 0x11, 0xf3, 0x90, 0xb2, 0x4b, 0xa4, 0x10, 0x29, 0xa6, 0xf1, 0x53,
		0xe2, 0x84, 0xbc, 0x95, 0x28, 0xd1, 0x17, 0x25, 0x9e, 0xfd, 0x89, 0xf0, 0x20, 0x3c, 0xfe, 0x02,
		0x1e, 0xbb, 0x75, 0x4e, 0x93, 0xcb, 0xf6, 0xe3, 0x1b, 0xfb, 0x08, 0x85, 0xef, 0x23, 0x40, 0xc4,
		0x5d, 0xc2, 0x80, 0xf1, 0x95, 0x40, 0x58, 0x0d, 0x10, 0xba, 0x8f, 0x81, 0x60, 0x37, 0xfe, 0xe9,
		0x37, 0xed, 0x16, 0xdb, 0xcc, 0x84, 0xc3, 0x02, 0x0e, 0x84, 0x02, 0xa1, 0x30, 0x85, 0xc2, 0x89,
		0xdb, 0xf2, 0x3f, 0x75, 0xda, 0x67, 0xa7, 0x84, 0x03, 0xe1, 0x60, 0x9f, 0xdb, 0x6e, 0xd3, 0x3e,
		0x6c, 0x3a, 0xfe, 0xa1, 0xdd, 0x6a, 0xfc, 0xcb, 0x6d, 0x78, 0x9f, 0x09, 0x0b, 0xc2, 0x22, 0x05,
		0x83, 0x7f, 0xd4, 0x6e, 0x75, 0xbd, 0x8e, 0xed, 0xb6, 0x3c, 0x1e, 0x5f, 0x20, 0x30, 0x7c, 0xe7,
		0x77, 0xcf, 0x69, 0x35, 0x9c, 0x06, 0xf3, 0x08, 0x71, 0xf1, 0x6c, 0x6b, 0xda, 0x6d, 0x79, 0x4e,
		0xe7, 0xd8, 0x3e, 0x72, 0x7c, 0xbb, 0xd1, 0xe8, 0x38, 0x5d, 0x46, 0x0c, 0x22, 0x63, 0x86, 0x8c,
		0x96, 0xe3, 0x7e, 0xfa, 0x7c, 0xd8, 0xee, 0x10, 0x18, 0x04, 0xc6, 0xa3, 0x33, 0x0a, 0x0c, 0x19,
		0x44, 0xc6, 0xcb, 0xc8, 0x60, 0xc8, 0x20, 0x30, 0x9e, 0x02, 0xa3, 0xe9, 0xb6, 0xbe, 0xf8, 0xb6,
		0xe7, 0x75, 0xdc, 0xc3, 0x33, 0xcf, 0x21, 0x24, 0x08, 0x89, 0x19, 0x24, 0x1a, 0x4e, 0xd3, 0xfe,
		0x4a, 0x34, 0x10, 0x0d, 0x0f, 0x68, 0xf0, 0xcf, 0xed, 0x8e, 0x6b, 0x7b, 0x6e, 0xbb, 0x45, 0x5c,
		0x10, 0x17, 0x53, 0x5c, 0x70, 0x03, 0x84, 0x50, 0x98, 0x43, 0xa1, 0xd9, 0x26, 0xa1, 0x24, 0x18,
		0xe6, 0x60, 0x38, 0xed, 0xb4, 0x3d, 0xe7, 0x28, 0x49, 0x15, 0xb3, 0x7b, 0x38, 0xc4, 0x45, 0xe1,
		0x71, 0x71, 0x62, 0xff, 0x3e, 0xc3, 0x06, 0x77, 0xc5, 0x88, 0x8a, 0x47, 0xa8, 0xe8, 0x38, 0x5d,
		0xa7, 0x73, 0xce, 0x1d, 0x53, 0x62, 0xe3, 0x09, 0x36, 0xdc, 0xd6, 0x43, 0xd4, 0x60, 0x3d, 0x4a,
		0x54, 0x4c, 0x51, 0xd1, 0x71, 0xba, 0x6e, 0xe3, 0xcc, 0x6e, 0x32, 0x56, 0x10, 0x15, 0xbc, 0xf5,
		0x4d, 0x94, 0xbc, 0x05, 0x2d, 0x50, 0x67, 0x79, 0x81, 0x82, 0x88, 0x81, 0x30, 0x21, 0x44, 0x08,
		0x11, 0x53, 0xce, 0xfe, 0x12, 0x26, 0xb9, 0xc1, 0x04, 0xf1, 0x4c, 0x30, 0xe1, 0x92, 0x17, 0x5c,
		0x40, 0xcf, 0x0a, 0x13, 0x30, 0x79, 0x01, 0x06, 0xf3, 0x0c, 0x31, 0xf1, 0x92, 0x17, 0x5e, 0x50,
		0xcf, 0x16, 0x13, 0x31, 0xb9, 0x22, 0x06, 0xef, 0x00, 0x21, 0x01, 0x93, 0x23, 0x60, 0x76, 0x19,
		0x62, 0x88, 0x98, 0xbf, 0x89, 0x18, 0x86, 0x18, 0x02, 0xe6, 0x67, 0x01, 0x03, 0x77, 0x76, 0x99,
		0x50, 0xc9, 0x15, 0x2a, 0x20, 0x7b, 0xc8, 0x44, 0x49, 0xfe, 0x28, 0x41, 0x3a, 0xeb, 0x4c, 0xbc,
		0xe4, 0x8a, 0x17, 0x6e, 0x10, 0x11, 0x22, 0x46, 0x9c, 0x8d, 0x26, 0x48, 0x72, 0x05, 0x09, 0xdc,
		0x99, 0x69, 0xe2, 0x25, 0x2f, 0xbc, 0x20, 0x9e, 0xa5, 0x26, 0x5a, 0xf2, 0x44, 0x0b, 0xe6, 0x19,
		0x6b, 0x62, 0x26, 0x37, 0xcc, 0x00, 0x9e, 0xbd, 0x26, 0x5a, 0xf2, 0x42, 0x0b, 0xe2, 0x99, 0x6c,
		0xa2, 0x25, 0x2f, 0xb4, 0x78, 0x8e, 0xdf, 0x70, 0x8e, 0xed, 0xb3, 0xa6, 0xe7, 0x9f, 0x38, 0x5e,
		0xc7, 0x3d, 0x22, 0x58, 0x08, 0x96, 0xd7, 0xc0, 0x72, 0xd6, 0x4a, 0x8f, 0x40, 0x39, 0x0d, 0xbf,
		0xd9, 0xe5, 0xb1, 0x16, 0x82, 0xe5, 0x2f, 0xc0, 0x32, 0xe3, 0xb9, 0x4e, 0x83, 0x99, 0x88, 0x78,
		0xf9, 0x09, 0xbc, 0x78, 0x6e, 0xd3, 0xfd, 0x37, 0x28, 0x5a, 0x38, 0x49, 0xa5, 0x28, 0x5e, 0x07,
		0x7e, 0x37, 0x0f, 0x90, 0xef, 0x11, 0x14, 0xe4, 0x75, 0x04, 0x05, 0xf9, 0x1b, 0x71, 0x41, 0x9e,
		0x46, 0x54, 0x68, 0x82, 0x8a, 0xf9, 0xf0, 0xe5, 0x23, 0xfb, 0x34, 0xbd, 0xf5, 0xdf, 0xf1, 0xed,
		0xe6, 0xa7, 0x76, 0xc7, 0xf5, 0x3e, 0x9f, 0x10, 0x11, 0x44, 0xc4, 0x14, 0x11, 0x0f, 0xdf, 0x11,
		0x12, 0x84, 0x04, 0xa5, 0x41, 0x88, 0x13, 0x93, 0x93, 0x0a, 0x50, 0x24, 0x31, 0x11, 0x29, 0x48,
		0xc9, 0x26, 0x85, 0x0a, 0x3b, 0x87, 0x05, 0x78, 0x1f, 0xf5, 0x7d, 0xff, 0xf4, 0x7c, 0xdf, 0xf4,
		0xb3, 0x4a, 0x2f, 0x8b, 0x34, 0x4b, 0x30, 0x25, 0x5b, 0xa9, 0x71, 0x1c, 0xc4, 0x72, 0xac, 0x4a,
		0x07, 0x1a, 0xa6, 0x94, 0x52, 0xd4, 0xbb, 0x12, 0xd7, 0xc1, 0x4d, 0x10, 0x5f, 0x25, 0xc9, 0xa3,
		0x32, 0xbe, 0x11, 0xaa, 0x37, 0x56, 0x03, 0x39, 0x2c, 0x2b, 0x11, 0x7f, 0x1f, 0x87, 0x7f, 0x94,
		0xa5, 0x8a, 0xe2, 0x40, 0xf5, 0x44, 0xe5, 0xe9, 0x0b, 0xd1, 0xb3, 0x57, 0x2a, 0x37, 0xe1, 0x38,
		0x1e, 0xf7, 0xc6, 0xa3, 0x28, 0xfd, 0xaa, 0x22, 0x23, 0x19, 0x55, 0x46, 0xe2, 0x56, 0x8c, 0xe6,
		0x9f, 0x2a, 0x23, 0xa9, 0xfe, 0x28, 0x47, 0x71, 0x10, 0x8b, 0x72, 0x3f, 0x88, 0x83, 0xcb, 0x20,
		0x12, 0x95, 0x51, 0x74, 0x53, 0x89, 0x47, 0xb7, 0x51, 0xf2, 0x4f, 0xe5, 0x3a, 0x2e, 0xcb, 0x9b,
		0xdb, 0xdd, 0x72, 0x28, 0x82, 0xde, 0x55, 0x70, 0x29, 0x47, 0x32, 0xbe, 0xaf, 0xdc, 0x84, 0x62,
		0x20, 0xef, 0x44, 0x34, 0xff, 0xa2, 0x12, 0x4d, 0x2e, 0xa7, 0xbf, 0x30, 0xfb, 0x5c, 0x99, 0xfe,
		0xff, 0x34, 0xe4, 0xcd, 0xa5, 0x28, 0x0e, 0x27, 0xbd, 0x58, 0xcd, 0xb3, 0x73, 0x3b, 0x7d, 0x7f,
		0x5b, 0xb3, 0xf7, 0xce, 0x9d, 0xbf, 0x75, 0xfe, 0x93, 0xef, 0xa3, 0xa7, 0x2f, 0xf8, 0xa7, 0x8b,
		0xf7, 0x36, 0xfd, 0xca, 0x77, 0x23, 0x19, 0xf9, 0xcd, 0xe9, 0x7b, 0x3b, 0xfb, 0xe4, 0x37, 0xa5,
		0xfa, 0xa3, 0x9b, 0xbc, 0x15, 0x8d, 0xf9, 0x3b, 0xeb, 0x37, 0xa3, 0x1b, 0xdf, 0x1b, 0xdd, 0x46,
		0xc9, 0x3f, 0xfe, 0x49, 0xec, 0xde, 0xdc, 0xee, 0x76, 0x96, 0xde, 0x57, 0xff, 0x74, 0xfe, 0xbe,
		0xce, 0xbf, 0xf0, 0xbb, 0xb3, 0xf7, 0x75, 0xfe, 0xd9, 0x9f, 0xfe, 0xcf, 0xf4, 0x22, 0x0d, 0xfa,
		0x04, 0x1c, 0x8d, 0x82, 0x4d, 0x29, 0x0e, 0x86, 0xda, 0x45, 0x98, 0x94, 0x94, 0x26, 0xc6, 0x69,
		0x16, 0x98, 0xbf, 0x48, 0xd5, 0x2f, 0x1d, 0x58, 0x55, 0xcd, 0xcc, 0x3a, 0x9a, 0x06, 0x87, 0xd2,
		0x81, 0xb5, 0xa5, 0x99, 0x61, 0xb3, 0xf0, 0xa0, 0x67, 0x12, 0x5b, 0xc0, 0x6c, 0xdc, 0x2b, 0x27,
		0xe9, 0x46, 0xc7, 0x34, 0xd0, 0x1d, 0x4f, 0xc2, 0x9e, 0xd0, 0xf2, 0xed, 0x9b, 0xb9, 0x83, 0xb8,
		0xff, 0x3e, 0x0e, 0x13, 0x8f, 0x28, 0xcd, 0x12, 0xac, 0xa6, 0x3d, 0xa8, 0xd2, 0xe7, 0x20, 0xb2,
		0xc3, 0xe1, 0xe4, 0x5a, 0xa8, 0xb8, 0x74, 0x60, 0xc5, 0xe1, 0x44, 0x68, 0x6a, 0xe8, 0x92, 0x95,
		0x29, 0x30, 0x49, 0xde, 0xa1, 0xc8, 0x7b, 0x43, 0x86, 0x9a, 0xb2, 0xf6, 0x29, 0x2b, 0xd3, 0x36,
		0x98, 0x2c, 0xe2, 0xb1, 0xae, 0xa4, 0x5c, 0x63, 0x02, 0xa0, 0x3d, 0x11, 0x40, 0x20, 0x04, 0x40,
		0xc4, 0x00, 0x85, 0x20, 0xc0, 0x11, 0x05, 0x38, 0xc2, 0x80, 0x45, 0x1c, 0xf4, 0x24, 0x10, 0x9a,
		0x12, 0x09, 0xed, 0x09, 0xc5, 0x72, 0x17, 0x61, 0xbb, 0xa6, 0x7f, 0x10, 0x5a, 0xea, 0x2b, 0x6c,
		0xd7, 0x74, 0x0f, 0x40, 0x73, 0xa2, 0xb1, 0xa5, 0xb9, 0x99, 0xba, 0x13, 0x0e, 0x24, 0xe2, 0x01,
		0x48, 0x40, 0xd0, 0x88, 0x08, 0x2c, 0x21, 0x81, 0x25, 0x26, 0x98, 0x04, 0x45, 0x6f, 0xa2, 0xa2,
		0x39, 0x61, 0x49, 0x1f, 0xb9, 0x77, 0x7f, 0x23, 0xb0, 0x22, 0xee, 0x44, 0xaa, 0x58, 0x7b, 0x6e,
		0xb0, 0xcc, 0x0f, 0xf6, 0x00, 0x4c, 0xed, 0x04, 0x6a, 0x28, 0x60, 0xce, 0xfb, 0xe1, 0x9c, 0xe0,
		0x2a, 0x9d, 0x48, 0x05, 0x93, 0x71, 0x53, 0xa3, 0xa7, 0xc7, 0x3f, 0xf5, 0x27, 0x8c, 0xcf, 0xec,
		0x3e, 0x0e, 0x83, 0x5e, 0x2c, 0xc7, 0xaa, 0x21, 0x87, 0x32, 0x8e, 0x00, 0x17, 0xd0, 0x12, 0xc3,
		0x20, 0x96, 0xb7, 0xc9, 0x7b, 0x3f, 0x08, 0x46, 0x91, 0xe0, 0xf1, 0xcf, 0x55, 0xb8, 0x64, 0x70,
		0x87, 0xeb, 0x92, 0xf5, 0xda, 0x7e, 0x7d, 0x7f, 0x77, 0xaf, 0xb6, 0xbf, 0x43, 0xdf, 0xa4, 0x6f,
		0x1a, 0x40, 0x90, 0x71, 0xac, 0xfc, 0xc6, 0x42, 0xe3, 0x1d, 0xee, 0xd3, 0x94, 0x51, 0x6c, 0xc7,
		0x71, 0x88, 0x51, 0x6c, 0x9c, 0x48, 0xe5, 0x8c, 0x44, 0x52, 0x0b, 0x83, 0x84, 0xaa, 0x24, 0xab,
		0x2d, 0x59, 0x5c, 0xfd, 0x58, 0xaf, 0xef, 0xee, 0xd5, 0xeb, 0x5b, 0x7b, 0xdb, 0x7b, 0x5b, 0xfb,
		0x3b, 0x3b, 0xd5, 0xdd, 0x2a, 0x40, 0xc2, 0x28, 0xb5, 0xc3, 0xbe, 0x08, 0x45, 0xff, 0xf0, 0xbe,
		0x74, 0x60, 0xa9, 0xc9, 0x68, 0x84, 0x64, 0xf2, 0x59, 0x24, 0x42, 0x88, 0xdc, 0xa0, 0x7b, 0xa4,
		0x10, 0x77, 0x71, 0x18, 0x94, 0x27, 0x2a, 0x8a, 0x83, 0xcb, 0x11, 0x48, 0x73, 0x22, 0x14, 0x03,
		0x11, 0x0a, 0xd5, 0x63, 0x0d, 0xbd, 0x0a, 0xe6, 0xb5, 0xb8, 0x01, 0x75, 0x7c, 0xb4, 0x53, 0xdd,
		0xde, 0x3a, 0xb0, 0x6c, 0xeb, 0x74, 0x3c, 0x92, 0xbd, 0x7b, 0xeb, 0x68, 0xac, 0xe2, 0x70, 0x3c,
		0xb2, 0x4e, 0x44, 0xef, 0x2a, 0x50, 0x32, 0xba, 0xb6, 0xa4, 0xb2, 0xdc, 0x6e, 0xd9, 0xed, 0x5a,
		0x67, 0x91, 0x54, 0xc3, 0x0b, 0x65, 0xf7, 0xaf, 0xa5, 0x92, 0x51, 0x1c, 0x4e, 0xb9, 0x9b, 0xe5,
		0x05, 0xc3, 0x68, 0xd3, 0x8a, 0x26, 0x97, 0x65, 0xaf, 0x79, 0x6e, 0x55, 0x37, 0x4b, 0x40, 0x75,
		0x0b, 0x58, 0xff, 0x3e, 0xb5, 0x7b, 0xa9, 0x8f, 0xff, 0xe0, 0x26, 0x60, 0xe4, 0x1f, 0xb5, 0xa5,
		0x9f, 0x2e, 0x60, 0xb9, 0xb5, 0xbf, 0x0a, 0x3f, 0x62, 0x35, 0xc4, 0x6a, 0x88, 0xef, 0x1f, 0xac,
		0x65, 0xba, 0x9e, 0xab, 0xd1, 0xfc, 0x96, 0x5d, 0x6a, 0xa7, 0x29, 0xb7, 0xed, 0xe2, 0x60, 0x58,
		0xd1, 0xf9, 0x70, 0xaf, 0x65, 0xc0, 0xcd, 0x3b, 0x2f, 0x18, 0xea, 0x78, 0xfb, 0x4e, 0xdf, 0x00,
		0xc5, 0xbb, 0x0c, 0xe0, 0xe5, 0x72, 0xe9, 0xfb, 0x95, 0x50, 0xda, 0x56, 0xc6, 0x00, 0xc7, 0xdc,
		0x37, 0x37, 0x67, 0x51, 0xb9, 0x12, 0xdf, 0xdf, 0x08, 0xeb, 0x37, 0xeb, 0xc3, 0xfc, 0x74, 0x4e,
		0x79, 0x14, 0xf5, 0x2f, 0xcb, 0xc9, 0x8b, 0xd1, 0x81, 0x7b, 0xfa, 0x44, 0xf6, 0xd4, 0xfe, 0xf4,
		0x81, 0xe7, 0xe2, 0x33, 0x2d, 0x5f, 0xa7, 0x30, 0xe6, 0xa9, 0xf8, 0xd5, 0x55, 0xa6, 0x6f, 0xc6,
		0xb9, 0xbe, 0x74, 0x5f, 0x63, 0x0f, 0x6c, 0x88, 0xa8, 0x17, 0xca, 0x1b, 0xed, 0xd9, 0xf5, 0xa3,
		0x50, 0xd8, 0x56, 0xa3, 0x7b, 0x4b, 0xaa, 0xde, 0x68, 0xd2, 0x17, 0x56, 0x7c, 0x25, 0xac, 0x38,
		0x18, 0x5a, 0xbd, 0xb1, 0x8a, 0x03, 0xa9, 0x44, 0x68, 0x25, 0x2e, 0x3a, 0x7d, 0x79, 0xd1, 0x9b,
		0x90, 0x91, 0x95, 0xe0, 0xe6, 0x42, 0x69, 0xdf, 0xec, 0x43, 0x6a, 0xf0, 0x2d, 0x47, 0xc5, 0xfe,
		0x12, 0x8c, 0x00, 0x36, 0x6c, 0x10, 0x5b, 0x79, 0x8f, 0x82, 0xe4, 0x7b, 0x3c, 0x80, 0x4d, 0x1b,
		0x93, 0x9a, 0x36, 0xda, 0x59, 0xf5, 0x8d, 0x95, 0x1a, 0x6e, 0x33, 0xcb, 0xa4, 0x26, 0x16, 0x05,
		0xa3, 0x56, 0xd1, 0xb6, 0xa2, 0x5c, 0x94, 0xf6, 0x81, 0xa6, 0x14, 0x07, 0xc3, 0xdd, 0xba, 0xd6,
		0x82, 0x51, 0xbb, 0x75, 0x4a, 0x46, 0xfd, 0x94, 0x59, 0x94, 0x8c, 0x7a, 0x07, 0xd0, 0x28, 0x19,
		0x95, 0x45, 0x6d, 0x47, 0xc9, 0xa8, 0xcc, 0xcb, 0x37, 0x4a, 0x46, 0x41, 0x92, 0x77, 0x4a, 0x46,
		0xbd, 0x2f, 0x1e, 0x53, 0x32, 0xca, 0x3c, 0x22, 0x80, 0x40, 0x08, 0x80, 0x88, 0x01, 0x0a, 0x41,
		0x80, 0x23, 0x0a, 0x70, 0x84, 0x01, 0x8b, 0x38, 0xe8, 0x49, 0x20, 0x34, 0x25, 0x12, 0xda, 0x13,
		0x0a, 0xcd, 0x3b, 0x09, 0x50, 0x9d, 0x85, 0xd7, 0x88, 0x06, 0x25, 0xa3, 0x8a, 0x43, 0x3c, 0x00,
		0x09, 0x08, 0x1a, 0x11, 0x81, 0x25, 0x24, 0xb0, 0xc4, 0x04, 0x93, 0xa0, 0xe8, 0x4d, 0x54, 0x34,
		0x27, 0x2c, 0xe9, 0x23, 0xc7, 0x94, 0x8c, 0xd2, 0x9e, 0x1b, 0x2c, 0xf3, 0x83, 0x8f, 0x94, 0x8c,
		0xca, 0xf8, 0x83, 0x92, 0x51, 0xab, 0x35, 0x9a, 0x92, 0x51, 0x79, 0xc5, 0x38, 0x4a, 0x46, 0xad,
		0xc1, 0x25, 0x91, 0x25, 0xa3, 0x30, 0xb5, 0x40, 0xe8, 0xa5, 0xa4, 0xca, 0x06, 0x59, 0x49, 0xf1,
		0xa8, 0xf7, 0xb8, 0x0f, 0xc5, 0xa3, 0x56, 0x9e, 0xdf, 0x28, 0x1e, 0x95, 0xa7, 0xc9, 0x14, 0x8f,
		0xca, 0xe8, 0x1d, 0xa5, 0x78, 0x14, 0xab, 0xe9, 0xc7, 0xcc, 0x6b, 0x55, 0xe2, 0x51, 0x35, 0x8a,
		0x47, 0xad, 0xc1, 0x6e, 0x8a, 0x47, 0x69, 0xb0, 0x80, 0x95, 0x8a, 0x47, 0xd5, 0x28, 0x1e, 0xc5,
		0x6a, 0x88, 0xef, 0x1f, 0xb0, 0x65, 0x14, 0x8f, 0x7a, 0x9f, 0x9d, 0x06, 0xdd, 0xbb, 0xdb, 0xad,
		0x53, 0x3e, 0x6a, 0xf5, 0xf7, 0xf0, 0x76, 0xeb, 0x14, 0x90, 0xc2, 0xb5, 0x88, 0x02, 0x52, 0x7f,
		0xdf, 0x46, 0x0a, 0x48, 0xbd, 0xaf, 0xfa, 0x7d, 0xa3, 0xb0, 0xce, 0x6e, 0x9d, 0x12, 0x52, 0xd9,
		0x16, 0xb1, 0x94, 0x90, 0x5a, 0x71, 0x7d, 0xfa, 0x0e, 0xa4, 0x53, 0x44, 0xea, 0x0d, 0xef, 0xbd,
		0x31, 0x22, 0x52, 0xbb, 0xf5, 0x9f, 0x12, 0xd1, 0xa9, 0x51, 0x46, 0x6a, 0x35, 0x91, 0x91, 0x32,
		0x52, 0xeb, 0x0d, 0x94, 0xef, 0xf3, 0x01, 0x36, 0x70, 0x4c, 0x6a, 0xe0, 0x50, 0x48, 0x0a, 0xaa,
		0x62, 0xa3, 0x90, 0xd4, 0x1a, 0x1b, 0x5a, 0x94, 0x92, 0x5a, 0x4d, 0x0b, 0x8b, 0x62, 0x52, 0xda,
		0x07, 0x9b, 0x52, 0xac, 0xe3, 0x55, 0x8f, 0x87, 0x1b, 0x9f, 0x89, 0x75, 0x7a, 0x4a, 0x49, 0x6d,
		0x51, 0x4a, 0xea, 0xe7, 0x0c, 0xa3, 0x94, 0x94, 0xc9, 0xb5, 0x1e, 0xa5, 0xa4, 0x56, 0x5a, 0xc2,
		0x51, 0x4a, 0x0a, 0x92, 0xbe, 0x6b, 0x7b, 0x81, 0x32, 0x8d, 0x78, 0x23, 0x11, 0x0c, 0x42, 0x31,
		0xd0, 0x31, 0xe2, 0x2d, 0xa4, 0x9a, 0xf6, 0x34, 0xb4, 0xed, 0x74, 0x5e, 0xf1, 0x3c, 0xea, 0x41,
		0x93, 0xe7, 0xea, 0x6c, 0x89, 0x26, 0xb1, 0x21, 0x49, 0x94, 0x9a, 0x51, 0x5a, 0x3d, 0x2f, 0x5d,
		0xe8, 0x7b, 0xb9, 0x02, 0xea, 0x12, 0x85, 0xc6, 0x97, 0x25, 0x34, 0xbe, 0x14, 0xa1, 0x4b, 0xb0,
		0xd0, 0xb4, 0xff, 0x67, 0x4a, 0xdf, 0x4f, 0x23, 0xda, 0x03, 0xde, 0xe9, 0xd3, 0x83, 0xfb, 0xe4,
		0xcf, 0x34, 0xf2, 0xb5, 0x20, 0xe7, 0xb0, 0xa5, 0x5b, 0xb8, 0x82, 0x0f, 0x53, 0x1a, 0xc4, 0x27,
		0xd4, 0xb8, 0x94, 0x6f, 0x40, 0xca, 0x2f, 0x0c, 0xe4, 0x18, 0x02, 0x4a, 0x13, 0xd5, 0x17, 0x03,
		0xa9, 0x44, 0xbf, 0xbc, 0xc0, 0x6f, 0xde, 0x51, 0xe0, 0x41, 0x18, 0xea, 0x99, 0x69, 0x39, 0x87,
		0x4a, 0x3d, 0x84, 0xa8, 0xb5, 0xd9, 0x2e, 0xd0, 0x69, 0x7b, 0x40, 0xc3, 0xed, 0x00, 0xdd, 0xda,
		0xff, 0xda, 0xb6, 0xfb, 0xb5, 0x6d, 0xef, 0xeb, 0xd9, 0xce, 0x2f, 0x36, 0x5d, 0xd5, 0x45, 0x98,
		0xf9, 0x59, 0x76, 0xd2, 0xc7, 0xcf, 0x5f, 0xcb, 0x9f, 0xba, 0xb8, 0xbb, 0x5e, 0xf3, 0x1c, 0xb4,
		0xdb, 0x7d, 0xd7, 0x71, 0xd7, 0x5d, 0xe3, 0xdd, 0x76, 0x5d, 0x77, 0xd9, 0xb5, 0xdf, 0x5d, 0xd7,
		0x7e, 0x57, 0x5d, 0xef, 0xdd, 0x74, 0xee, 0x90, 0xe9, 0x98, 0x96, 0x97, 0x5a, 0x20, 0x3a, 0x0e,
		0x5e, 0xd2, 0x7a, 0xe0, 0x12, 0x27, 0x2d, 0xe2, 0x27, 0x6a, 0x80, 0x84, 0xad, 0x7b, 0xe2, 0x86,
		0x49, 0xe0, 0x30, 0x89, 0x1c, 0x23, 0xa1, 0xeb, 0x95, 0xd8, 0x35, 0x4b, 0xf0, 0xda, 0x26, 0xfa,
		0xd4, 0xb0, 0x91, 0x50, 0xc3, 0xe9, 0x9e, 0x91, 0xe6, 0xa3, 0x16, 0xe7, 0x76, 0xea, 0x3d, 0x6b,
		0x71, 0x8b, 0xb3, 0x16, 0x8d, 0xa3, 0x04, 0x40, 0xd4, 0x00, 0x85, 0x22, 0xc0, 0x51, 0x05, 0x38,
		0xca, 0x80, 0x45, 0x1d, 0xf4, 0xa4, 0x10, 0x9a, 0x52, 0x89, 0xf4, 0xd1, 0x6a, 0x3f, 0xb2, 0xe8,
		0xd1, 0xa8, 0xa2, 0x8f, 0x3a, 0xc7, 0xcb, 0x79, 0xfa, 0xd6, 0x58, 0x10, 0x1c, 0x64, 0x32, 0x11,
		0x86, 0x90, 0x3d, 0xce, 0xec, 0x3f, 0xb0, 0x09, 0x44, 0xb0, 0x33, 0x4d, 0xf0, 0x66, 0x99, 0xfc,
		0x89, 0x31, 0x81, 0x01, 0xcf, 0xd5, 0x6a, 0x3b, 0x3b, 0x74, 0x36, 0x3a, 0x1b, 0x00, 0x31, 0xd5,
		0xdf, 0xba, 0x6f, 0x54, 0x06, 0x42, 0x0d, 0xe6, 0x7a, 0xca, 0x64, 0x3c, 0x2b, 0x2d, 0x34, 0x94,
		0xcb, 0x78, 0x5a, 0x55, 0xb0, 0x29, 0xf8, 0x46, 0x03, 0xd9, 0x14, 0xcc, 0xd4, 0x54, 0x36, 0x05,
		0x57, 0x64, 0x30, 0x9b, 0x82, 0xc5, 0x63, 0x37, 0x6c, 0x0a, 0xbe, 0x37, 0x62, 0xb2, 0x29, 0xf8,
		0x7e, 0x13, 0xd9, 0x14, 0xcc, 0xaa, 0x53, 0xc1, 0xa6, 0x20, 0xfb, 0x14, 0x06, 0xf4, 0x29, 0xd8,
		0x14, 0x5c, 0x8d, 0xab, 0xb1, 0x29, 0x48, 0x67, 0xc3, 0x20, 0xa6, 0xfa, 0x5b, 0xc7, 0xa6, 0x20,
		0x6c, 0x30, 0x2f, 0xdd, 0xce, 0xe3, 0xa1, 0xe6, 0x5d, 0xc1, 0x99, 0x99, 0x6c, 0x0b, 0xbe, 0xc5,
		0x3c, 0xb6, 0x05, 0x33, 0x04, 0x22, 0xdb, 0x82, 0xd9, 0xb9, 0x0d, 0xdb, 0x82, 0x2b, 0x36, 0x98,
		0x6d, 0x41, 0x53, 0x0b, 0x30, 0xa0, 0xb6, 0xe0, 0xa5, 0x54, 0x41, 0x78, 0x0f, 0xd0, 0x17, 0xdc,
		0x27, 0x8d, 0x05, 0xb4, 0x88, 0x53, 0x6f, 0xfe, 0x9e, 0x7d, 0xb0, 0xb2, 0x72, 0xcf, 0x54, 0xb0,
		0x9e, 0xbd, 0xa2, 0xed, 0x50, 0x67, 0x38, 0x1d, 0xba, 0xb3, 0xc5, 0x3b, 0xbb, 0x10, 0xca, 0x7c,
		0xf2, 0x82, 0x8e, 0x83, 0x9d, 0x39, 0x1b, 0xe7, 0x25, 0xe4, 0x71, 0x36, 0x8e, 0x19, 0xd5, 0x3c,
		0x2f, 0xff, 0x9b, 0x59, 0xb5, 0xf3, 0xf2, 0x7f, 0xd1, 0xaa, 0x73, 0x5e, 0xfe, 0xc7, 0x27, 0xf9,
		0x9c, 0x8d, 0xf3, 0xfe, 0x04, 0xcb, 0xd9, 0x38, 0xf0, 0x3c, 0x97, 0xca, 0x5f, 0x8f, 0x13, 0x25,
		0x67, 0xe3, 0xfc, 0x8c, 0x55, 0x9c, 0x8d, 0x93, 0x89, 0xb1, 0x9c, 0x8d, 0x03, 0x1c, 0x2c, 0x38,
		0x1b, 0x67, 0xed, 0xdd, 0x41, 0xce, 0xcb, 0x59, 0x5d, 0x3f, 0x90, 0x13, 0x74, 0x74, 0xb0, 0x80,
		0x13, 0x74, 0x4c, 0x0d, 0x66, 0x9c, 0xa5, 0xf3, 0xfe, 0x98, 0x55, 0xd8, 0xa1, 0x3a, 0xff, 0x28,
		0x50, 0x2c, 0x5a, 0x54, 0x61, 0x33, 0x47, 0xb2, 0x12, 0x6f, 0xeb, 0xe7, 0xe4, 0x3c, 0x7a, 0x54,
		0x5f, 0xfa, 0x54, 0x5b, 0x5a, 0x57, 0x57, 0x1a, 0x55, 0x53, 0x1a, 0x55, 0x4f, 0x79, 0x39, 0xb1,
		0x26, 0x44, 0x02, 0x96, 0x40, 0xe4, 0x48, 0x17, 0xd0, 0x68, 0x42, 0x3e, 0xac, 0x60, 0xfd, 0x39,
		0x79, 0xbd, 0x7f, 0x71, 0xcd, 0x81, 0x23, 0xef, 0x80, 0x81, 0x17, 0x28, 0x72, 0x88, 0x10, 0x30,
		0x91, 0x61, 0xbd, 0x21, 0x61, 0x7d, 0x8e, 0xb9, 0x9e, 0xbf, 0xb4, 0x26, 0xd7, 0x2f, 0x89, 0xbb,
		0x38, 0x0c, 0xca, 0x93, 0x04, 0x13, 0x97, 0xa3, 0xf5, 0x6e, 0xc6, 0x96, 0x42, 0x31, 0x10, 0xa1,
		0x50, 0xbd, 0xf5, 0xdf, 0xd4, 0xcf, 0x21, 0xb6, 0x2d, 0x76, 0x94, 0x3b, 0xc7, 0x47, 0x3b, 0xd5,
		0xda, 0xd6, 0x81, 0x75, 0x52, 0x76, 0xbb, 0x6e, 0xf7, 0xc0, 0x3a, 0x99, 0x8c, 0x62, 0x69, 0x79,
		0xe3, 0x9b, 0xf1, 0x68, 0x3c, 0xbc, 0xb7, 0x7e, 0x39, 0xf1, 0x7e, 0xb5, 0x3a, 0xe3, 0x49, 0x2c,
		0xd5, 0xd0, 0x92, 0xea, 0x42, 0xb9, 0x2a, 0x16, 0xe1, 0xb5, 0xe8, 0xcb, 0x20, 0x16, 0x56, 0xf7,
		0x3e, 0x8a, 0xc5, 0xb5, 0x15, 0x8f, 0xad, 0x17, 0x5e, 0x8e, 0xac, 0x5f, 0xdc, 0x6e, 0xd9, 0xed,
		0x46, 0xbf, 0x6e, 0x5a, 0x5e, 0xf3, 0xfc, 0x42, 0xd5, 0xb6, 0xf7, 0x36, 0xf3, 0x08, 0x51, 0x39,
		0x1f, 0xc6, 0x59, 0x3e, 0x6c, 0xf3, 0x80, 0xb1, 0x9c, 0x48, 0xb8, 0x2e, 0xe7, 0x69, 0x1e, 0x9d,
		0x97, 0x59, 0x3b, 0x08, 0x4d, 0x27, 0x6a, 0x6b, 0xfb, 0x6b, 0xdf, 0xd6, 0x87, 0x9e, 0xd2, 0xf7,
		0x2b, 0xa1, 0x8a, 0x14, 0x9a, 0x1f, 0x9d, 0x56, 0xb1, 0x7e, 0xb3, 0x3e, 0xcc, 0x8f, 0x95, 0x95,
		0x47, 0x51, 0xff, 0xb2, 0x9c, 0xbc, 0x18, 0x1d, 0x9c, 0x78, 0xbe, 0x7b, 0x7a, 0xbe, 0xeb, 0x77,
		0x1c, 0xfb, 0xe8, 0xb3, 0x7d, 0xe8, 0x36, 0x5d, 0xef, 0xeb, 0x87, 0x82, 0xc7, 0xd8, 0x29, 0x4e,
		0x18, 0x5e, 0x1f, 0xc2, 0xeb, 0xdb, 0x81, 0xf4, 0x8f, 0x02, 0xf4, 0xa6, 0x4a, 0x0d, 0x11, 0xf5,
		0x42, 0x79, 0x93, 0x6b, 0x63, 0x2a, 0x75, 0xfa, 0xb6, 0x1a, 0xdd, 0x5b, 0x52, 0xf5, 0x46, 0x93,
		0xbe, 0xb0, 0xe2, 0x2b, 0x61, 0x5d, 0x27, 0xa9, 0xb0, 0x1c, 0x2f, 0x52, 0xa1, 0x7b, 0x7a, 0xbb,
		0x6b, 0x2d, 0x17, 0x7f, 0x17, 0x49, 0xbd, 0x15, 0x07, 0x52, 0x89, 0xd0, 0x4a, 0x90, 0x3f, 0xfd,
		0x25, 0xaf, 0x79, 0x6e, 0xc9, 0xc8, 0x9a, 0x3e, 0xef, 0x9c, 0x58, 0x97, 0xa5, 0xc9, 0x31, 0xe8,
		0xe5, 0xc8, 0xd0, 0x5f, 0x7a, 0xd2, 0x39, 0x36, 0xd3, 0x74, 0x3a, 0xd3, 0xfc, 0x28, 0x50, 0xac,
		0x08, 0x7c, 0x6c, 0xc6, 0x61, 0x73, 0x3c, 0xa3, 0x3a, 0x0c, 0x39, 0x35, 0x15, 0x61, 0x9a, 0x89,
		0x6b, 0x0c, 0x8c, 0xba, 0xf7, 0x0e, 0xd7, 0x13, 0xb8, 0x56, 0xef, 0xc8, 0x6b, 0x70, 0xad, 0x52,
		0x02, 0xa5, 0x84, 0x52, 0x2a, 0x21, 0x87, 0x57, 0x97, 0xe3, 0xb0, 0x1c, 0xc4, 0x71, 0x28, 0x2f,
		0x27, 0x6b, 0x9c, 0x52, 0x9c, 0x72, 0xa8, 0xbf, 0xb0, 0x65, 0x4d, 0x41, 0x66, 0xbd, 0xa3, 0x86,
		0xd7, 0x7e, 0x8b, 0x30, 0x8f, 0xdb, 0x81, 0x39, 0xde, 0xfa, 0xcb, 0x8b, 0xc6, 0xe6, 0x7e, 0x4b,
		0x2f, 0x77, 0xa6, 0x9a, 0xef, 0xad, 0x3a, 0xb3, 0xb6, 0x56, 0xd6, 0x3d, 0xda, 0xb6, 0xb4, 0x08,
		0xbf, 0xd1, 0xfa, 0x1d, 0x67, 0x11, 0x2b, 0x1e, 0x4c, 0x58, 0x33, 0x6e, 0xf3, 0x99, 0x35, 0x9f,
		0xdb, 0x75, 0xf2, 0x3c, 0xaf, 0x8b, 0x6b, 0x70, 0x1d, 0x5c, 0xa7, 0xee, 0x67, 0xae, 0x67, 0x85,
		0xf4, 0xec, 0x7f, 0xe6, 0x76, 0x1d, 0xdb, 0xec, 0xe3, 0x39, 0x79, 0xcd, 0x4a, 0x4f, 0xa3, 0x7a,
		0xfe, 0xdd, 0xda, 0xd4, 0x92, 0xbc, 0xce, 0x45, 0xe7, 0x92, 0x66, 0x72, 0x4f, 0x37, 0x3a, 0xa4,
		0x1d, 0x8d, 0xd2, 0x8f, 0x2e, 0x69, 0x48, 0xbb, 0x74, 0xa4, 0x5d, 0x5a, 0xd2, 0x2b, 0x3d, 0xe5,
		0x93, 0xa6, 0x72, 0x4a, 0x57, 0xb9, 0xa7, 0xad, 0xd4, 0x80, 0xb4, 0xad, 0x9b, 0xbf, 0xa3, 0x2e,
		0x62, 0xd7, 0x83, 0x49, 0x39, 0xfb, 0x45, 0xbe, 0x09, 0x4d, 0x9b, 0xc4, 0xa6, 0x53, 0x82, 0xd3,
		0x30, 0xd1, 0xe9, 0x96, 0xf0, 0xb4, 0x4d, 0x7c, 0xda, 0x26, 0x40, 0x3d, 0x13, 0x61, 0xbe, 0x09,
		0x31, 0xe7, 0xc4, 0xa8, 0x4d, 0x82, 0x7c, 0x96, 0x28, 0xf5, 0xf1, 0xef, 0xa7, 0xf9, 0x52, 0x17,
		0xf7, 0xd6, 0x23, 0x6d, 0x6a, 0x97, 0x3e, 0x75, 0x4c, 0xa3, 0x1a, 0xa7, 0x53, 0x5d, 0xd3, 0xaa,
		0xf6, 0xe9, 0x55, 0xfb, 0x34, 0xab, 0x77, 0xba, 0xd5, 0x23, 0xed, 0x6a, 0x92, 0x7e, 0xb5, 0x4b,
		0xc3, 0x0f, 0xe9, 0xb8, 0xaf, 0xaf, 0xe4, 0x74, 0x6e, 0x7a, 0x10, 0x3f, 0x4a, 0xc9, 0x14, 0x9c,
		0xc6, 0x4d, 0xd1, 0x00, 0xa9, 0x5a, 0xf7, 0x94, 0x0d, 0x93, 0xba, 0x61, 0x52, 0x38, 0x46, 0x2a,
		0xd7, 0x2b, 0xa5, 0x6b, 0x96, 0xda, 0xd3, 0x47, 0x48, 0xc1, 0xe9, 0x0c, 0x6a, 0x5e, 0x08, 0xc1,
		0x69, 0xd9, 0xa7, 0xdc, 0xb4, 0xf6, 0x3e, 0x59, 0x9a, 0x4d, 0x1a, 0xd2, 0x96, 0xe4, 0xea, 0x38,
		0x08, 0x49, 0xb3, 0xd6, 0x13, 0x79, 0x2e, 0x79, 0x2e, 0x79, 0x2e, 0x79, 0x2e, 0x79, 0xae, 0x4e,
		0x8f, 0x50, 0xb7, 0x56, 0x56, 0x6a, 0x98, 0x86, 0x2d, 0xad, 0x67, 0xc1, 0x58, 0xbb, 0xd6, 0xd6,
		0xd3, 0xd4, 0xcf, 0x09, 0xe9, 0xe6, 0x51, 0x01, 0x20, 0x4a, 0x80, 0x42, 0x0d, 0xe0, 0x28, 0x02,
		0x1c, 0x55, 0xc0, 0xa2, 0x0c, 0x7a, 0x52, 0x07, 0x4d, 0x29, 0x44, 0xfa, 0x68, 0x71, 0x26, 0xa4,
		0x4f, 0xa4, 0x8a, 0x77, 0xeb, 0x00, 0x13, 0xd2, 0x3f, 0x6a, 0x6c, 0x62, 0x27, 0x50, 0xc3, 0xf5,
		0xeb, 0x31, 0xfe, 0xdd, 0x0f, 0xbd, 0x13, 0x8e, 0x35, 0x17, 0x8c, 0xd7, 0x3e, 0x33, 0xa6, 0xc6,
		0x9e, 0x07, 0xa3, 0x89, 0xd0, 0x97, 0xb8, 0x3d, 0xb3, 0xf7, 0x38, 0x0c, 0x7a, 0xb1, 0x1c, 0xab,
		0x86, 0x1c, 0x4a, 0xdd, 0xc6, 0x9f, 0xfd, 0x75, 0xac, 0x12, 0xc3, 0x20, 0x96, 0xb7, 0x42, 0xab,
		0x69, 0x5e, 0x80, 0x69, 0xe9, 0xb1, 0xab, 0x05, 0x77, 0x78, 0xae, 0xa6, 0xf7, 0x58, 0x3c, 0x7a,
		0x1f, 0xa9, 0x2a, 0xb0, 0x75, 0xdf, 0xfe, 0xc1, 0xf7, 0x0b, 0x34, 0xba, 0x97, 0xae, 0x45, 0x1c,
		0xca, 0x9e, 0xfe, 0x6d, 0xc2, 0xb9, 0x9d, 0x6c, 0x15, 0xbe, 0xc5, 0x3c, 0xb6, 0x0a, 0x33, 0x44,
		0x22, 0x5b, 0x85, 0xd9, 0xb9, 0x0d, 0x5b, 0x85, 0x2b, 0x36, 0x98, 0xad, 0x42, 0x53, 0x6b, 0x32,
		0xa0, 0x56, 0xe1, 0x77, 0xd9, 0x17, 0x65, 0xad, 0x13, 0xf8, 0x72, 0x12, 0xdf, 0x63, 0xbf, 0xf0,
		0x9d, 0x1f, 0xec, 0x17, 0xae, 0xa8, 0x89, 0xc1, 0x8e, 0x05, 0x3b, 0x16, 0x08, 0xb9, 0xe9, 0xb1,
		0xab, 0x41, 0xf6, 0x0b, 0x77, 0xf7, 0xf6, 0xf6, 0x6a, 0xec, 0x11, 0xd2, 0xe3, 0x20, 0x38, 0xaa,
		0xfe, 0xd6, 0xb1, 0x47, 0x88, 0x68, 0x91, 0x6e, 0x27, 0x2d, 0x35, 0x99, 0xb1, 0xfc, 0xaa, 0x7d,
		0xba, 0x4e, 0x41, 0x78, 0x59, 0x2e, 0xbe, 0x92, 0xea, 0x07, 0xa7, 0x5f, 0x55, 0x1e, 0xcc, 0x49,
		0xcd, 0xd0, 0xf1, 0x5e, 0x86, 0xa5, 0xe3, 0x7c, 0x85, 0x48, 0x46, 0xad, 0xf9, 0xfb, 0x68, 0x2f,
		0xde, 0x63, 0x7f, 0xf1, 0x4a, 0x94, 0x7e, 0xe5, 0x3f, 0x18, 0x92, 0x5a, 0x30, 0xfd, 0x1f, 0xf3,
		0x0e, 0x95, 0xf6, 0x51, 0xa8, 0x14, 0x4d, 0x2e, 0x13, 0xcf, 0xd2, 0xf8, 0x16, 0xd5, 0xdc, 0x40,
		0xde, 0xa3, 0xfa, 0x19, 0xb3, 0x78, 0x8f, 0xea, 0x1d, 0x50, 0xe3, 0x3d, 0xaa, 0xb7, 0xbb, 0x03,
		0xef, 0x51, 0x65, 0x4d, 0x0d, 0x79, 0x8f, 0x0a, 0x9d, 0xdd, 0x6b, 0x7b, 0x8f, 0x6a, 0x96, 0x53,
		0xf5, 0x3f, 0x24, 0x31, 0xb7, 0x53, 0xef, 0x43, 0x12, 0x55, 0x1e, 0x92, 0x30, 0x8e, 0x12, 0x00,
		0x51, 0x03, 0x14, 0x8a, 0x00, 0x47, 0x15, 0xe0, 0x28, 0x03, 0x16, 0x75, 0xd0, 0x93, 0x42, 0x68,
		0x4a, 0x25, 0xb4, 0xa7, 0x14, 0xa9, 0x81, 0x41, 0xff, 0xff, 0x05, 0x3d, 0xa1, 0x7a, 0xf7, 0xe5,
		0x48, 0xf6, 0x23, 0xfd, 0xa3, 0xd1, 0x22, 0xc0, 0x3f, 0xb1, 0x5b, 0x73, 0x0f, 0xd7, 0x9b, 0x7a,
		0xc0, 0x50, 0x10, 0x24, 0x2a, 0x02, 0x48, 0x49, 0xd0, 0xa8, 0x09, 0x2c, 0x45, 0x81, 0xa5, 0x2a,
		0x98, 0x94, 0x45, 0x6f, 0xea, 0xa2, 0x39, 0x85, 0x81, 0xa1, 0x32, 0x2f, 0x53, 0x1a, 0x9c, 0x20,
		0xf6, 0x22, 0xb3, 0x41, 0x09, 0x64, 0x18, 0x04, 0x07, 0x8e, 0xe8, 0x20, 0x12, 0x1e, 0x60, 0xe2,
		0x83, 0x4a, 0x80, 0xe0, 0x89, 0x10, 0x3c, 0x21, 0xc2, 0x26, 0x46, 0x18, 0x04, 0x09, 0x84, 0x28,
		0xc1, 0x11, 0xa6, 0xd4, 0x60, 0x3d, 0xf5, 0x79, 0x7f, 0x3a, 0xcf, 0xe8, 0x7a, 0x4e, 0xcc, 0x20,
		0xe2, 0x04, 0x4b, 0xa0, 0x90, 0x89, 0x94, 0x01, 0x84, 0x0a, 0x9d, 0x58, 0x19, 0x43, 0xb0, 0x8c,
		0x21, 0x5a, 0x66, 0x10, 0x2e, 0x2c, 0xe2, 0x05, 0x46, 0xc0, 0x60, 0x89, 0x58, 0x6a, 0xf8, 0x60,
		0x14, 0x0c, 0x23, 0xdc, 0x60, 0xb9, 0xc8, 0x57, 0xb3, 0x65, 0x80, 0xc6, 0x17, 0xbd, 0xa5, 0x55,
		0x8c, 0x25, 0x6a, 0x26, 0x10, 0x36, 0x83, 0x88, 0x9b, 0x29, 0x04, 0xce, 0x38, 0x22, 0x67, 0x1c,
		0xa1, 0x33, 0x8b, 0xd8, 0x61, 0x12, 0x3c, 0x50, 0xa2, 0x97, 0x42, 0x47, 0x7b, 0x69, 0x9a, 0x9f,
		0xce, 0x18, 0x42, 0x4d, 0xae, 0x45, 0x38, 0xbb, 0x71, 0x0a, 0x9c, 0x35, 0x16, 0x5d, 0xae, 0x3a,
		0xf0, 0x1a, 0x1c, 0x35, 0xb9, 0xc6, 0xcf, 0x7b, 0xde, 0xb8, 0x1b, 0x87, 0x52, 0x0d, 0xe1, 0x57,
		0x32, 0x5d, 0xcd, 0x56, 0xe2, 0x23, 0x76, 0xa3, 0xd1, 0x71, 0xba, 0x5d, 0xff, 0xd8, 0x3e, 0x71,
		0x9b, 0x5f, 0xc1, 0xf3, 0xf8, 0x74, 0x59, 0xd5, 0x64, 0x59, 0x87, 0xf6, 0xd1, 0x97, 0xb3, 0x53,
		0x13, 0x96, 0x53, 0x4b, 0x96, 0x73, 0x6e, 0x37, 0xcf, 0x1c, 0x13, 0x56, 0xb3, 0x9d, 0xac, 0xa6,
		0xd9, 0x3e, 0xb2, 0x9b, 0x26, 0xac, 0xa6, 0x9e, 0xac, 0xa6, 0xeb, 0x78, 0x25, 0xe8, 0xa5, 0xfc,
		0xb9, 0x81, 0x1e, 0x95, 0xdd, 0x29, 0xd1, 0x35, 0x20, 0x24, 0x3f, 0x89, 0xc6, 0xb0, 0x8d, 0x87,
		0x47, 0x8b, 0x9a, 0xc7, 0x62, 0xb8, 0x7d, 0xba, 0x17, 0x17, 0x33, 0x8b, 0x5d, 0x07, 0xd6, 0xb6,
		0x01, 0x6b, 0x49, 0x22, 0xd7, 0x81, 0x55, 0x37, 0x60, 0x25, 0xb3, 0xfc, 0x78, 0x60, 0xd5, 0xb0,
		0x03, 0x31, 0x2b, 0x74, 0x26, 0xbe, 0x9f, 0x89, 0x41, 0x32, 0x8a, 0xed, 0x38, 0x0e, 0xb1, 0xab,
		0xf4, 0x13, 0xa9, 0x9c, 0x91, 0xb8, 0x16, 0x0a, 0x49, 0xf3, 0xee, 0xe5, 0x95, 0x04, 0x77, 0x4b,
		0x2b, 0xc1, 0x9d, 0x56, 0xf2, 0xe2, 0xe2, 0xda, 0x61, 0x5f, 0x84, 0xa2, 0x7f, 0x78, 0x5f, 0x3a,
		0xb0, 0xd4, 0x64, 0x34, 0x32, 0x61, 0x29, 0x67, 0x91, 0x08, 0x61, 0x44, 0x0b, 0xcd, 0x88, 0xb7,
		0x80, 0xb1, 0xb6, 0x74, 0x3b, 0xd7, 0x13, 0x05, 0xdf, 0x41, 0x9e, 0x2d, 0x83, 0x3b, 0xc8, 0x79,
		0x98, 0xcf, 0x1d, 0x64, 0x8d, 0x1c, 0x81, 0x3b, 0xc8, 0xfa, 0xb8, 0x35, 0x77, 0x90, 0x35, 0x5f,
		0x10, 0x77, 0x90, 0xc9, 0x99, 0xde, 0x08, 0x1d, 0x73, 0x76, 0x90, 0x27, 0x52, 0xc5, 0xdb, 0x35,
		0x03, 0x36, 0x8f, 0xf7, 0x80, 0x97, 0x80, 0x31, 0x37, 0xe5, 0x47, 0x1f, 0x06, 0xec, 0x4e, 0x20,
		0xcd, 0x5d, 0xf9, 0xe1, 0x62, 0xc0, 0xe6, 0x38, 0xff, 0x70, 0x3d, 0xa8, 0x53, 0x24, 0x7e, 0x1c,
		0x8b, 0xd1, 0xa6, 0x4c, 0x18, 0x9a, 0xd6, 0x1f, 0x87, 0x82, 0xe0, 0xce, 0xbc, 0x50, 0x50, 0xaf,
		0xed, 0xd7, 0xf7, 0x77, 0xf7, 0x6a, 0xfb, 0x3b, 0x8c, 0x09, 0x8c, 0x09, 0x2c, 0x50, 0x0a, 0x60,
		0xfd, 0x37, 0xb6, 0xff, 0x99, 0xf3, 0x5e, 0x09, 0x32, 0xdf, 0x85, 0x1c, 0x5e, 0xc5, 0xf8, 0xfd,
		0xff, 0xf9, 0x3a, 0xb8, 0x01, 0x90, 0x87, 0xf9, 0xdc, 0x00, 0xd0, 0xc8, 0x13, 0xb8, 0x01, 0xa0,
		0x8f, 0x5b, 0x73, 0x03, 0x40, 0xf3, 0x05, 0x71, 0x03, 0x80, 0xac, 0xe9, 0x8d, 0xd0, 0x31, 0x6b,
		0x03, 0xe0, 0xa3, 0x01, 0xfd, 0xff, 0x1d, 0xf6, 0xff, 0x73, 0xfe, 0x60, 0xff, 0x5f, 0xaf, 0xc5,
		0xb0, 0xff, 0x8f, 0x12, 0x8a, 0xd9, 0xff, 0xd7, 0x30, 0x14, 0x98, 0xd8, 0xff, 0xaf, 0xed, 0xb0,
		0xf1, 0xcf, 0x60, 0xc0, 0xc2, 0xa4, 0x08, 0xd6, 0xb3, 0xf1, 0x4f, 0x8b, 0xe1, 0x53, 0xb3, 0xee,
		0x23, 0xf5, 0x7f, 0x68, 0xbf, 0x99, 0x23, 0xf7, 0x67, 0x43, 0xbc, 0xe7, 0x9f, 0x2b, 0x8f, 0x87,
		0x6d, 0x3d, 0xfe, 0xb6, 0x82, 0x28, 0xbb, 0x6c, 0x99, 0x36, 0xbe, 0x7f, 0xf6, 0xbc, 0xe6, 0x9f,
		0x7d, 0x7b, 0xf1, 0x80, 0xba, 0xb2, 0x1f, 0x3d, 0xfa, 0x4e, 0xc7, 0x41, 0xff, 0xe6, 0xc4, 0x5f,
		0xa0, 0xd8, 0x0b, 0x7a, 0x33, 0x0c, 0xfa, 0x46, 0x18, 0xe8, 0x46, 0x30, 0xc5, 0xde, 0xf3, 0x04,
		0x3a, 0xc5, 0xde, 0xf3, 0x73, 0x57, 0x8a, 0xbd, 0xeb, 0x56, 0x2c, 0x50, 0xec, 0x9d, 0x9c, 0xe6,
		0xaf, 0x21, 0x02, 0xbb, 0x71, 0x9b, 0x46, 0xfc, 0x91, 0x08, 0x06, 0xa1, 0x18, 0x20, 0x46, 0xfc,
		0x85, 0xce, 0x27, 0xe0, 0x5d, 0xad, 0xd2, 0xe9, 0xbc, 0x84, 0xdf, 0xdc, 0x9c, 0x95, 0xb4, 0x95,
		0x19, 0xc5, 0x64, 0xa9, 0x54, 0x60, 0x4b, 0x51, 0x46, 0x8d, 0x7d, 0x11, 0xf7, 0x68, 0x45, 0x11,
		0xa6, 0x04, 0x14, 0xae, 0xe4, 0x93, 0x51, 0x12, 0x4f, 0xc0, 0x92, 0x4e, 0xc0, 0x12, 0x4e, 0x28,
		0xd1, 0x10, 0x74, 0x4b, 0xa1, 0xf0, 0x5b, 0x09, 0x48, 0x13, 0x82, 0x8b, 0xb8, 0x79, 0x80, 0xc1,
		0x85, 0xf5, 0x67, 0x96, 0x7a, 0x5b, 0xa8, 0x79, 0x94, 0x2f, 0x89, 0xbb, 0x38, 0x0c, 0xca, 0x93,
		0x04, 0xbd, 0x97, 0x23, 0x8c, 0x52, 0xbf, 0x14, 0x8a, 0x81, 0x08, 0x85, 0xea, 0xe1, 0x9c, 0x01,
		0x06, 0x9c, 0x33, 0xdf, 0x0f, 0x83, 0x41, 0x5c, 0x96, 0x22, 0x1e, 0xcc, 0x52, 0x56, 0x24, 0x86,
		0x09, 0xdb, 0x2d, 0x87, 0xe3, 0x49, 0x2c, 0xd5, 0xb0, 0x2c, 0xee, 0x62, 0xa1, 0x22, 0x39, 0x56,
		0xd1, 0xa6, 0x15, 0x4d, 0x2e, 0xcb, 0x5e, 0xf3, 0xdc, 0xda, 0xae, 0x1e, 0x5c, 0xa8, 0xe4, 0x8b,
		0x5a, 0x6d, 0xc3, 0xaa, 0xcd, 0xfe, 0xd9, 0xde, 0xb0, 0xaa, 0xf5, 0xea, 0xa6, 0xc5, 0x81, 0xf5,
		0x6b, 0x29, 0x5c, 0x17, 0x2d, 0xf6, 0x07, 0x1f, 0xe1, 0xcc, 0xfa, 0x35, 0xf3, 0xe5, 0xa5, 0xae,
		0x7a, 0xe6, 0x4e, 0xc4, 0x8e, 0x54, 0xc1, 0xac, 0xfc, 0xa6, 0x3f, 0xfa, 0x4b, 0xdf, 0xaf, 0x84,
		0x62, 0x2a, 0x5e, 0x5d, 0x2a, 0x4e, 0x7b, 0xe8, 0xf1, 0xfd, 0x8d, 0xb0, 0x7e, 0xb3, 0x2c, 0xeb,
		0xc3, 0x7c, 0xbb, 0xae, 0x3c, 0x8a, 0xfa, 0x97, 0xe5, 0xe4, 0xe5, 0xe8, 0xc0, 0xed, 0xfa, 0x1d,
		0xc7, 0x3e, 0xfa, 0x6c, 0x1f, 0xba, 0x4d, 0xd7, 0xfb, 0xea, 0xdb, 0x8d, 0x7f, 0xfa, 0x5d, 0xb7,
		0xf1, 0x81, 0x89, 0x77, 0xad, 0x89, 0x77, 0xea, 0x0c, 0xcc, 0xb9, 0xf9, 0xe5, 0xdc, 0x77, 0x7a,
		0x0b, 0x8f, 0xc7, 0xad, 0xe0, 0xf9, 0x34, 0x44, 0xd4, 0x0b, 0xe5, 0x0d, 0xe4, 0xb9, 0xe4, 0x34,
		0x0c, 0xb7, 0xd5, 0xe8, 0xde, 0x92, 0xaa, 0x37, 0x9a, 0xf4, 0x85, 0x15, 0x5f, 0x09, 0x2b, 0x6d,
		0xb7, 0x59, 0x5d, 0xb7, 0x11, 0x59, 0xbd, 0xb1, 0x8a, 0x03, 0xa9, 0x44, 0x68, 0x25, 0x31, 0x20,
		0xf9, 0x89, 0x0b, 0xb5, 0x20, 0x75, 0x53, 0x2c, 0xca, 0xc8, 0xda, 0xae, 0xa2, 0xc5, 0x06, 0xe0,
		0x63, 0x47, 0xcb, 0x61, 0xb9, 0xbf, 0x84, 0x40, 0xc0, 0xed, 0x74, 0x13, 0xce, 0x1c, 0x3d, 0x8a,
		0xd2, 0x19, 0x39, 0x13, 0xcf, 0x13, 0xb0, 0x7a, 0xd3, 0xb9, 0x7a, 0x63, 0x6f, 0xfa, 0x3d, 0xf1,
		0x02, 0x6b, 0xe7, 0xb1, 0x80, 0x3b, 0x8e, 0x00, 0xa9, 0xb4, 0x28, 0x7b, 0x8b, 0x7a, 0xa7, 0x42,
		0x7d, 0x43, 0xb5, 0xc6, 0x41, 0xb0, 0x14, 0xf4, 0xaf, 0xa5, 0x2a, 0x0f, 0xc3, 0xf1, 0xe4, 0x46,
		0xfb, 0x08, 0x98, 0x96, 0x49, 0xcb, 0x46, 0x6b, 0x9e, 0x60, 0x16, 0x07, 0x6c, 0x35, 0x37, 0x13,
		0xe5, 0xc6, 0x10, 0xd2, 0x0d, 0x21, 0xc0, 0x1b, 0x41, 0x68, 0xa5, 0x38, 0xec, 0x8d, 0x1f, 0xd8,
		0x6a, 0x1b, 0xf3, 0x46, 0x0f, 0x0f, 0xf0, 0xbc, 0xe7, 0x91, 0x37, 0x64, 0x08, 0x52, 0x1d, 0x4d,
		0xef, 0xca, 0xc3, 0x04, 0xaf, 0x45, 0x7e, 0x40, 0x12, 0x64, 0x00, 0x21, 0x34, 0x70, 0xc4, 0x06,
		0x91, 0xe0, 0x00, 0x13, 0x1d, 0x54, 0xc2, 0x03, 0x4f, 0x7c, 0xe0, 0x09, 0x10, 0x36, 0x11, 0xc2,
		0x20, 0x44, 0x20, 0xc4, 0x08, 0x8e, 0x20, 0xa5, 0x06, 0x23, 0x75, 0x7d, 0x5e, 0xcd, 0x36, 0x38,
		0x5d, 0xa0, 0xd7, 0x48, 0x14, 0x75, 0x65, 0x48, 0xaa, 0x0c, 0x26, 0x57, 0xe8, 0x24, 0xcb, 0x18,
		0xb2, 0x65, 0x0c, 0xe9, 0x32, 0x83, 0x7c, 0x61, 0x91, 0x30, 0x30, 0x32, 0x96, 0x42, 0x04, 0x5f,
		0x57, 0x06, 0x76, 0x12, 0x38, 0xf0, 0x04, 0x70, 0xf0, 0xc9, 0x1f, 0xc0, 0xe3, 0x6f, 0x4c, 0x98,
		0xf4, 0x61, 0xca, 0x84, 0x0f, 0xe3, 0xc4, 0xfc, 0xcd, 0x11, 0xf1, 0x07, 0x9e, 0xe4, 0x61, 0xc4,
		0x04, 0x0f, 0xe3, 0x26, 0x77, 0xd3, 0xd7, 0x59, 0x20, 0x14, 0xdc, 0xea, 0x6f, 0x2c, 0xc4, 0x56,
		0xe8, 0x8e, 0x90, 0xba, 0x71, 0xcb, 0xb4, 0x14, 0x53, 0x3f, 0x6e, 0x39, 0xeb, 0x1a, 0xa3, 0x23,
		0x97, 0x2e, 0x0a, 0x57, 0x4f, 0xee, 0xf9, 0x12, 0xe0, 0x74, 0xe5, 0x50, 0x23, 0x11, 0xa0, 0x12,
		0xd1, 0xb3, 0x35, 0xe0, 0x29, 0x13, 0x19, 0xd4, 0xa3, 0x58, 0x74, 0xe6, 0x3a, 0xc7, 0x47, 0x3b,
		0xdb, 0x5b, 0x3b, 0x07, 0x96, 0xdb, 0x2d, 0xbb, 0x5d, 0xcb, 0x49, 0x35, 0x56, 0xac, 0xc1, 0x38,
		0xb4, 0xbc, 0x30, 0x18, 0x0c, 0x64, 0xcf, 0x72, 0xd4, 0x50, 0x2a, 0x21, 0x42, 0xa9, 0x86, 0x9b,
		0x0f, 0x57, 0x0b, 0xb7, 0x0f, 0xac, 0xb9, 0xf4, 0x4a, 0x6d, 0x7b, 0xa3, 0x5a, 0xaf, 0x6e, 0x2c,
		0x04, 0x58, 0x36, 0x39, 0x23, 0x3e, 0xff, 0x75, 0x18, 0xa0, 0x6f, 0xf4, 0x6c, 0x4d, 0x46, 0x8f,
		0x89, 0x5f, 0x91, 0x2b, 0xb2, 0x66, 0xa4, 0xd5, 0x26, 0xd5, 0x8c, 0x3c, 0x99, 0x56, 0x44, 0xe6,
		0x4b, 0x65, 0x65, 0xad, 0xef, 0x39, 0xa7, 0xe7, 0xd7, 0xe0, 0x66, 0x32, 0x1a, 0x7d, 0xe5, 0xf9,
		0x5a, 0xaa, 0x4f, 0xc9, 0x53, 0x41, 0x9a, 0xbd, 0x48, 0x11, 0x65, 0xa3, 0x03, 0x3a, 0xa4, 0x88,
		0x32, 0x45, 0x1b, 0x57, 0xdb, 0x85, 0x78, 0x2a, 0x43, 0xf7, 0x73, 0x22, 0x74, 0x27, 0x6e, 0xcb,
		0xff, 0xd4, 0x69, 0x9f, 0x9d, 0x52, 0xb6, 0x71, 0xbd, 0xfd, 0x04, 0xca, 0x36, 0xe6, 0xdc, 0x2a,
		0x78, 0xb7, 0xbf, 0x50, 0xb8, 0x71, 0x05, 0x4f, 0xc8, 0x54, 0xe1, 0xc6, 0x6b, 0xa9, 0x64, 0x14,
		0x87, 0xd3, 0x93, 0x08, 0xd6, 0x94, 0xe5, 0x3f, 0x51, 0x9c, 0xbb, 0x50, 0xc9, 0x0f, 0x2e, 0x7a,
		0x51, 0x32, 0x9a, 0x89, 0xce, 0x6d, 0x53, 0xbd, 0x31, 0x97, 0xe8, 0x4c, 0xf5, 0x46, 0xbd, 0x82,
		0x75, 0x96, 0x1e, 0xc5, 0x56, 0x5d, 0x91, 0x5b, 0x75, 0x94, 0x70, 0x34, 0xba, 0x32, 0xa6, 0x84,
		0xa3, 0xd6, 0xad, 0x4d, 0xea, 0x37, 0xea, 0xd1, 0xcc, 0xa4, 0x78, 0xa3, 0x71, 0xe1, 0xaf, 0x14,
		0xdc, 0x06, 0x72, 0x14, 0x5c, 0x8e, 0x44, 0xf9, 0x32, 0x50, 0xfd, 0xef, 0xb2, 0x3f, 0x8d, 0x29,
		0x28, 0x22, 0x8e, 0x2f, 0x18, 0x4f, 0x31, 0xc7, 0x2c, 0xcc, 0xa4, 0x98, 0xe3, 0x0a, 0x61, 0x4b,
		0x31, 0xc7, 0x75, 0x54, 0xe3, 0x14, 0x73, 0x5c, 0x7b, 0xc1, 0x4d, 0x31, 0xc7, 0x42, 0x94, 0x4b,
		0x14, 0x73, 0x5c, 0x6d, 0x7e, 0xa0, 0x98, 0x23, 0x89, 0x0d, 0x22, 0xc1, 0x01, 0x26, 0x3a, 0xa8,
		0x84, 0x07, 0x9e, 0xf8, 0xc0, 0x13, 0x20, 0x6c, 0x22, 0x84, 0x41, 0x88, 0x40, 0x88, 0x11, 0x1c,
		0x41, 0x4a, 0x0d, 0xc6, 0xe9, 0xfd, 0xbc, 0x9a, 0x6b, 0x50, 0x3a, 0x40, 0xaf, 0x11, 0x28, 0x0a,
		0x39, 0x92, 0x50, 0x19, 0x4c, 0xac, 0xd0, 0x09, 0x96, 0x31, 0x44, 0xcb, 0x18, 0xc2, 0x65, 0x06,
		0xf1, 0xc2, 0x22, 0x60, 0x60, 0x44, 0x2c, 0x85, 0x08, 0xbe, 0x90, 0xa3, 0x14, 0x42, 0x0c, 0x46,
		0xe3, 0x00, 0x5b, 0xcd, 0x71, 0x1f, 0xd0, 0xf4, 0xa6, 0x50, 0xc3, 0x29, 0x31, 0xa6, 0x54, 0xc2,
		0x9a, 0xdf, 0x79, 0xa3, 0xe4, 0x1c, 0xeb, 0x94, 0x78, 0xd3, 0x2c, 0xb2, 0x52, 0xce, 0x51, 0x03,
		0x17, 0x37, 0x4a, 0xce, 0x91, 0x2e, 0x4e, 0x17, 0x67, 0x75, 0x00, 0x6c, 0x35, 0x15, 0x39, 0x0a,
		0x9f, 0xa2, 0x4a, 0x31, 0x62, 0xad, 0x98, 0xd6, 0x89, 0x53, 0xeb, 0xd9, 0x01, 0x5f, 0x87, 0xd9,
		0xec, 0x80, 0xe7, 0x88, 0x73, 0x76, 0xc0, 0xf3, 0x73, 0x57, 0x76, 0xc0, 0x35, 0x5b, 0x08, 0x3b,
		0xe0, 0x64, 0x34, 0x3f, 0x80, 0x88, 0x01, 0x1d, 0xf0, 0xbe, 0x50, 0xb1, 0x8c, 0xef, 0x43, 0x31,
		0x00, 0xee, 0x80, 0x43, 0x2a, 0x65, 0xbb, 0xf3, 0xb7, 0xfe, 0x30, 0x88, 0x80, 0xf3, 0xd6, 0x02,
		0x48, 0x6e, 0xd7, 0xed, 0xfa, 0xdd, 0xb3, 0x43, 0xaf, 0x79, 0xee, 0x7b, 0x5f, 0x4f, 0x1d, 0xd4,
		0xf4, 0x35, 0x6d, 0x3b, 0x45, 0xb0, 0x1b, 0x13, 0x16, 0xf4, 0xe6, 0xc4, 0x63, 0x44, 0x9d, 0x3e,
		0x56, 0x7c, 0x71, 0x4f, 0xcf, 0xeb, 0x7e, 0xa7, 0x7d, 0xe6, 0x39, 0x1d, 0xdf, 0x6d, 0x94, 0xd8,
		0x59, 0x26, 0xb2, 0xb2, 0x43, 0xd6, 0x2e, 0x91, 0x45, 0x64, 0x65, 0x8f, 0xac, 0xd3, 0x8e, 0x73,
		0xec, 0xfe, 0xee, 0x1f, 0x37, 0xed, 0x4f, 0x5d, 0xe2, 0x8a, 0xb8, 0xca, 0x18, 0x57, 0x5d, 0x46,
		0x2b, 0xa2, 0x2a, 0x3b, 0x54, 0xcd, 0xe8, 0x7b, 0x17, 0x99, 0xbf, 0x9b, 0xc4, 0xe3, 0xcd, 0x40,
		0x5b, 0x61, 0x78, 0xbd, 0x01, 0x71, 0xad, 0x38, 0x88, 0xdb, 0x25, 0xe2, 0x88, 0x38, 0xd6, 0x01,
		0xc4, 0x9b, 0xc5, 0xfa, 0x80, 0x68, 0x23, 0xda, 0xde, 0x85, 0x36, 0xcf, 0xfe, 0x44, 0x98, 0x11,
		0x66, 0x6b, 0x80, 0xd9, 0x6e, 0xdd, 0x00, 0xa0, 0x41, 0xaf, 0xe0, 0x1b, 0xfb, 0x4d, 0x74, 0x6c,
		0xe6, 0x0d, 0xc2, 0x89, 0xf9, 0x81, 0x80, 0x32, 0x0d, 0x50, 0xcf, 0x66, 0xcc, 0xfc, 0xd3, 0x6f,
		0xda, 0x2d, 0x6e, 0xb3, 0x10, 0x56, 0x59, 0xc3, 0x8a, 0x90, 0x22, 0xa4, 0x32, 0x85, 0x54, 0x3a,
		0x0d, 0x8b, 0xb0, 0x22, 0xac, 0x32, 0x83, 0xd5, 0xb9, 0xed, 0x36, 0xed, 0xc3, 0xa6, 0xe3, 0x1f,
		0xda, 0xad, 0xc6, 0xbf, 0xdc, 0x86, 0xf7, 0x99, 0xf0, 0x22, 0xbc, 0xb2, 0x82, 0x57, 0x0a, 0x2a,
		0xff, 0xa8, 0xdd, 0xea, 0x7a, 0x1d, 0xdb, 0x6d, 0x79, 0x3c, 0x26, 0x45, 0x80, 0x65, 0x06, 0x30,
		0xe7, 0x77, 0xcf, 0x69, 0x35, 0x9c, 0x06, 0xf3, 0x23, 0xf1, 0xb5, 0x0a, 0x7c, 0x4d, 0x8f, 0xae,
		0xb8, 0x2d, 0xcf, 0xe9, 0x1c, 0xdb, 0x47, 0x8e, 0x6f, 0x37, 0x1a, 0x1d, 0xa7, 0xcb, 0x08, 0x46,
		0x84, 0x65, 0x8b, 0xb0, 0x96, 0xe3, 0x7e, 0xfa, 0x7c, 0xd8, 0xee, 0x10, 0x60, 0x04, 0xd8, 0x0a,
		0x00, 0xb6, 0xcb, 0x10, 0x46, 0x84, 0xad, 0x18, 0x61, 0x0c, 0x61, 0x04, 0xd8, 0xaa, 0x00, 0xd6,
		0x74, 0x5b, 0x5f, 0x7c, 0xdb, 0xf3, 0x3a, 0xee, 0xe1, 0x99, 0xe7, 0x10, 0x5a, 0x84, 0x56, 0xb6,
		0xd0, 0x6a, 0x38, 0x4d, 0xfb, 0x2b, 0x51, 0x45, 0x54, 0x65, 0x8f, 0x2a, 0xff, 0xdc, 0xee, 0xb8,
		0xb6, 0xe7, 0xb6, 0x5b, 0xc4, 0x17, 0xf1, 0x95, 0x29, 0xbe, 0xb8, 0xc1, 0x48, 0x48, 0x65, 0x0c,
		0xa9, 0x66, 0x9b, 0xc4, 0x9d, 0xa0, 0xca, 0x18, 0x54, 0xa7, 0x9d, 0xb6, 0xe7, 0x1c, 0x25, 0x29,
		0x70, 0x76, 0xef, 0x94, 0xf8, 0x22, 0xbe, 0x32, 0xc2, 0xd7, 0x89, 0xfd, 0xfb, 0x0c, 0x63, 0xdc,
		0xbd, 0x26, 0xba, 0x56, 0x82, 0xae, 0x8e, 0xd3, 0x75, 0x3a, 0xe7, 0x3c, 0x21, 0x41, 0x8c, 0xad,
		0x08, 0x63, 0x6e, 0xeb, 0x21, 0x8a, 0xb1, 0x0f, 0x41, 0x74, 0x65, 0x8a, 0xae, 0x8e, 0xd3, 0x75,
		0x1b, 0x67, 0x76, 0x93, 0xb1, 0x8b, 0xe8, 0xca, 0x1e, 0x5d, 0x54, 0x93, 0x21, 0xda, 0xd6, 0x8f,
		0x3a, 0x23, 0xee, 0x6c, 0x18, 0x10, 0xd4, 0x0a, 0x04, 0x37, 0x42, 0x8d, 0x50, 0x5b, 0x0b, 0xd4,
		0x0c, 0x38, 0xc3, 0x4a, 0xb8, 0xc1, 0xc0, 0xcd, 0xa4, 0xbb, 0x1f, 0x84, 0x1d, 0x0a, 0xec, 0x0c,
		0xbb, 0x13, 0x42, 0xe0, 0xa1, 0x00, 0xcf, 0xac, 0xbb, 0x22, 0xc4, 0x1d, 0x0a, 0xee, 0x4c, 0xbb,
		0x43, 0x42, 0xe4, 0x41, 0x21, 0xcf, 0x9c, 0x83, 0xd9, 0x04, 0x1e, 0x10, 0xf0, 0x76, 0x19, 0xf2,
		0x88, 0xbc, 0x9c, 0x90, 0xc7, 0x90, 0x47, 0xe0, 0xad, 0x1b, 0x78, 0xc6, 0xdc, 0x51, 0x21, 0xe4,
		0xa0, 0x20, 0x07, 0x7e, 0x66, 0x84, 0x68, 0xc3, 0x43, 0x9b, 0x09, 0x77, 0x5a, 0x88, 0x3b, 0x28,
		0xdc, 0x71, 0x03, 0x96, 0x50, 0x5b, 0x13, 0xd4, 0xb0, 0xef, 0xc0, 0x10, 0x6c, 0x50, 0x60, 0x33,
		0xe6, 0x6e, 0x0c, 0x71, 0x87, 0x82, 0x3b, 0x93, 0xee, 0xcc, 0x10, 0x75, 0x48, 0xa8, 0x33, 0xeb,
		0x2e, 0x0d, 0xb1, 0x07, 0x83, 0x3d, 0x83, 0xee, 0xd8, 0x10, 0x75, 0x28, 0xa8, 0x33, 0xe9, 0xee,
		0x0d, 0x51, 0x87, 0x82, 0x3a, 0xcf, 0xf1, 0x1b, 0xce, 0xb1, 0x7d, 0xd6, 0xf4, 0xfc, 0x13, 0xc7,
		0xeb, 0xb8, 0x47, 0x04, 0x1d, 0x41, 0xb7, 0x6a, 0xd0, 0x9d, 0xb5, 0xd2, 0xa3, 0x9c, 0x4e, 0xc3,
		0x6f, 0x76, 0x79, 0xac, 0x8e, 0xa0, 0x5b, 0x03, 0xe8, 0x66, 0xf5, 0x84, 0xd3, 0x60, 0x86, 0x25,
		0xee, 0xd6, 0x88, 0x3b, 0xcf, 0x6d, 0xba, 0xff, 0x36, 0x0c, 0x75, 0x9c, 0x58, 0x49, 0x6f, 0x2f,
		0x92, 0x97, 0x17, 0x81, 0x3f, 0x13, 0x5c, 0xe4, 0xc9, 0x04, 0x57, 0x81, 0xc0, 0x65, 0x12, 0x1f,
		0x26, 0xbe, 0xc8, 0x7b, 0x89, 0x2e, 0x73, 0xd1, 0xd5, 0x69, 0x9f, 0x79, 0x4e, 0xc7, 0x3f, 0xb2,
		0x4f, 0x53, 0x35, 0xa1, 0x8e, 0x6f, 0x37, 0x3f, 0xb5, 0x3b, 0xae, 0xf7, 0xf9, 0x84, 0xc8, 0x22,
		0xb2, 0x32, 0x45, 0xd6, 0xc3, 0x77, 0x84, 0x16, 0xa1, 0x95, 0x21, 0xb4, 0x28, 0x81, 0x46, 0xbc,
		0x31, 0x59, 0x16, 0x37, 0xb2, 0x15, 0x09, 0x71, 0x26, 0x24, 0xd1, 0x14, 0x72, 0xec, 0x78, 0xf3,
		0x7d, 0x37, 0xf8, 0xfd, 0xc6, 0x7a, 0x9f, 0x71, 0xac, 0xc5, 0xb0, 0x14, 0x24, 0xa1, 0x96, 0x6c,
		0xa5, 0xc6, 0x71, 0x10, 0xcb, 0xb1, 0x2a, 0x1d, 0x00, 0xa5, 0xd0, 0x52, 0xd4, 0xbb, 0x12, 0xd7,
		0xc1, 0x4d, 0x10, 0x5f, 0x25, 0xc9, 0xb2, 0x32, 0xbe, 0x11, 0xaa, 0x37, 0x56, 0x03, 0x39, 0x2c,
		0x2b, 0x11, 0x7f, 0x1f, 0x87, 0x7f, 0x94, 0xa5, 0x8a, 0xe2, 0x40, 0xf5, 0x44, 0xe5, 0xe9, 0x0b,
		0xd1, 0xb3, 0x57, 0x2a, 0x37, 0xe1, 0x38, 0x1e, 0xf7, 0xc6, 0xa3, 0x28, 0xfd, 0xaa, 0x22, 0x23,
		0x19, 0x55, 0x46, 0xe2, 0x56, 0x8c, 0xe6, 0x9f, 0x2a, 0x23, 0xa9, 0xfe, 0x28, 0x47, 0x71, 0x10,
		0x8b, 0x72, 0x3f, 0x88, 0x83, 0xcb, 0x20, 0x12, 0x95, 0x51, 0x74, 0x53, 0x89, 0x47, 0xb7, 0x51,
		0xf2, 0x4f, 0xe5, 0x3a, 0x2e, 0x27, 0xbf, 0x55, 0x56, 0x42, 0x0e, 0xaf, 0x2e, 0xc7, 0x61, 0x39,
		0x88, 0xe3, 0x50, 0x5e, 0x4e, 0xe2, 0xc4, 0x86, 0xd9, 0x4b, 0x51, 0xfa, 0x55, 0xe5, 0xc1, 0x9c,
		0xd4, 0x8c, 0x68, 0x72, 0x39, 0xfd, 0x9f, 0xcd, 0x3e, 0x57, 0x82, 0xdb, 0x40, 0x8e, 0x82, 0xcb,
		0x91, 0x28, 0x5f, 0x06, 0xaa, 0xff, 0x5d, 0xf6, 0xe3, 0xab, 0xca, 0xf4, 0xef, 0x03, 0xd5, 0x39,
		0xa5, 0x28, 0x0e, 0x27, 0xbd, 0x58, 0xcd, 0x59, 0x4d, 0x3b, 0x7d, 0x4e, 0xad, 0xd9, 0x33, 0x70,
		0xe7, 0x6b, 0xf7, 0x9f, 0x7c, 0x1f, 0x3d, 0x7d, 0xc1, 0x3f, 0x5d, 0x3c, 0xa3, 0xf4, 0x2b, 0xdf,
		0x8d, 0x64, 0xe4, 0x37, 0xa7, 0xcf, 0x68, 0xf6, 0xc9, 0x6f, 0x4a, 0xf5, 0x47, 0x37, 0x79, 0x8b,
		0x1a, 0xf3, 0x27, 0xe4, 0x37, 0xa3, 0x1b, 0xdf, 0x1b, 0xdd, 0x46, 0xc9, 0x3f, 0xfe, 0x49, 0x9c,
		0xfc, 0x4a, 0x6b, 0xfe, 0x08, 0xec, 0xc5, 0xe3, 0xf1, 0x17, 0xaf, 0x44, 0xe9, 0x57, 0xfe, 0x83,
		0x21, 0xa9, 0x05, 0xdd, 0xd9, 0xe3, 0x99, 0x7f, 0xf6, 0xed, 0xc5, 0xe3, 0x39, 0x5c, 0x3c, 0x1d,
		0x7f, 0xfa, 0xa7, 0x31, 0xa8, 0x99, 0xfe, 0x61, 0x54, 0x6f, 0x0b, 0x35, 0x0f, 0xf0, 0x25, 0x71,
		0x17, 0x87, 0x41, 0x79, 0x92, 0x60, 0xf7, 0x72, 0x24, 0x20, 0x82, 0x7b, 0x29, 0x14, 0x03, 0x11,
		0x0a, 0xd5, 0x13, 0x30, 0x2d, 0x10, 0xa0, 0x8c, 0x99, 0x16, 0x96, 0xc7, 0x47, 0x7b, 0x1f, 0xab,
		0x5b, 0x07, 0x96, 0xdb, 0x2d, 0xbb, 0x5d, 0xcb, 0x0b, 0x83, 0xc1, 0x40, 0xf6, 0x2c, 0x47, 0x0d,
		0xa5, 0x12, 0x22, 0x94, 0x6a, 0x68, 0xfd, 0xe2, 0x39, 0xbf, 0x5a, 0x27, 0x22, 0x0e, 0x65, 0xef,
		0x42, 0x39, 0x77, 0xb1, 0x50, 0x91, 0x1c, 0xab, 0x68, 0xd3, 0x8a, 0x26, 0x97, 0x65, 0xaf, 0x79,
		0x6e, 0x6d, 0x7f, 0x3c, 0xb0, 0x92, 0xcf, 0xb5, 0xda, 0x86, 0x55, 0xdb, 0xde, 0xb0, 0xaa, 0xf5,
		0xea, 0x86, 0x55, 0x9b, 0x7e, 0x57, 0xdb, 0xde, 0x44, 0x4a, 0x4f, 0xdd, 0xf1, 0x24, 0xec, 0x09,
		0x28, 0xee, 0x33, 0xb5, 0xfb, 0x8b, 0xb8, 0xff, 0x3e, 0x0e, 0xfb, 0xc9, 0x03, 0x7d, 0xf0, 0x1a,
		0xac, 0x26, 0x4e, 0xe9, 0x73, 0x10, 0xd9, 0xe1, 0x70, 0x72, 0x2d, 0x54, 0x5c, 0x3a, 0xb0, 0xe2,
		0x70, 0x22, 0xc0, 0x16, 0xb0, 0x64, 0xfd, 0x3a, 0xdc, 0x8a, 0x25, 0x5a, 0xc1, 0xac, 0xfc, 0xa6,
		0xbf, 0x3f, 0x94, 0xbe, 0x5f, 0x09, 0xc5, 0x74, 0xbd, 0xba, 0x74, 0xbd, 0xb9, 0x39, 0xab, 0xf9,
		0x2a, 0xf1, 0xfd, 0x8d, 0xb0, 0x7e, 0xb3, 0x3e, 0x8c, 0x7b, 0xb3, 0x2a, 0x73, 0x14, 0xf5, 0x2f,
		0xcb, 0xc9, 0x8b, 0xd1, 0xc1, 0x4f, 0xe8, 0xca, 0x7f, 0x60, 0x52, 0x5e, 0x6b, 0x52, 0x9e, 0xba,
		0x05, 0xf3, 0x71, 0x7e, 0xf9, 0x38, 0x33, 0xbf, 0xc1, 0xc9, 0xba, 0x40, 0x1e, 0xde, 0x10, 0x51,
		0x2f, 0x94, 0x37, 0x70, 0x7d, 0xc7, 0x47, 0xa1, 0xb9, 0xad, 0x46, 0xf7, 0x96, 0x54, 0xbd, 0xd1,
		0xa4, 0x2f, 0xac, 0xf8, 0x4a, 0x58, 0x69, 0xc3, 0xce, 0x9a, 0x36, 0xec, 0xfa, 0x32, 0xbe, 0xb2,
		0x7a, 0x63, 0x15, 0x07, 0x52, 0x89, 0xd0, 0x4a, 0x42, 0x42, 0xf2, 0x63, 0x17, 0x6a, 0xc1, 0xf7,
		0x64, 0x64, 0x4d, 0xd1, 0xb9, 0xfd, 0x71, 0x13, 0x2d, 0x56, 0x80, 0x86, 0xe8, 0xa7, 0x61, 0xba,
		0xbf, 0x84, 0x43, 0xbc, 0x2d, 0x70, 0xf8, 0x88, 0xfd, 0x2c, 0x6a, 0x67, 0xea, 0x52, 0xdc, 0x80,
		0x63, 0x75, 0xa7, 0x73, 0x75, 0xc7, 0xfe, 0xf6, 0x7b, 0xa2, 0x06, 0xd6, 0xc6, 0x65, 0x51, 0x37,
		0x2c, 0x01, 0xb2, 0x6a, 0xa1, 0xb6, 0x28, 0xf5, 0x4e, 0x8a, 0xfa, 0x06, 0x6d, 0x8d, 0xc3, 0x61,
		0x29, 0x75, 0xb6, 0x72, 0x6f, 0xac, 0xa2, 0x38, 0x0c, 0xa4, 0x8a, 0x23, 0xed, 0xa3, 0x62, 0x5a,
		0x46, 0xbd, 0x6c, 0xbe, 0xe6, 0xe9, 0xe7, 0x8b, 0x54, 0x49, 0x01, 0x51, 0xd5, 0xdc, 0xcc, 0xa3,
		0x69, 0x20, 0x2b, 0x1d, 0x58, 0x5b, 0x9a, 0x1b, 0x7a, 0x1a, 0x8a, 0x81, 0xbc, 0xc3, 0x48, 0xe5,
		0x0b, 0xe0, 0xce, 0x3b, 0x4a, 0x08, 0x29, 0x0e, 0xac, 0x5c, 0x5f, 0x2e, 0xd1, 0x6f, 0x66, 0xc8,
		0x00, 0x39, 0x4f, 0x87, 0x5a, 0x91, 0x3f, 0xaa, 0xc2, 0x17, 0xc0, 0xe6, 0x11, 0x21, 0xa3, 0x4b,
		0xa8, 0x86, 0x0c, 0x31, 0x02, 0xee, 0x4b, 0x0c, 0x01, 0x27, 0x96, 0xfd, 0x15, 0xcf, 0x41, 0x09,
		0x6b, 0x18, 0x74, 0x07, 0x8e, 0xf6, 0x20, 0xd2, 0x1f, 0x60, 0x1a, 0x84, 0x4a, 0x87, 0xe0, 0x69,
		0x11, 0x3c, 0x3d, 0xc2, 0xa6, 0x49, 0x18, 0x74, 0x09, 0x84, 0x36, 0xc1, 0xd1, 0xa7, 0xd4, 0x60,
		0xa4, 0xee, 0xd0, 0xab, 0xd9, 0x06, 0xa7, 0x47, 0x04, 0x4e, 0xa2, 0x60, 0xc9, 0x14, 0x32, 0xa9,
		0x32, 0x80, 0x5c, 0xa1, 0x93, 0x2c, 0x63, 0xc8, 0x96, 0x31, 0xa4, 0xcb, 0x0c, 0xf2, 0x85, 0x45,
		0xc2, 0xc0, 0xc8, 0x18, 0x2c, 0x29, 0x7b, 0x81, 0x9c, 0xe1, 0x46, 0xcc, 0xe7, 0x1c, 0x0d, 0x35,
		0x64, 0x62, 0x52, 0x35, 0x78, 0xca, 0x66, 0x02, 0x75, 0x33, 0x88, 0xc2, 0x99, 0x42, 0xe5, 0x8c,
		0xa3, 0x74, 0xc6, 0x51, 0x3b, 0xb3, 0x28, 0x1e, 0x26, 0xd5, 0x03, 0xa5, 0x7c, 0xf0, 0xd4, 0xef,
		0x05, 0x0a, 0x58, 0x96, 0x7d, 0xfc, 0x60, 0xfb, 0x9c, 0x0d, 0x26, 0xcb, 0x02, 0x8f, 0x4f, 0x73,
		0x62, 0xb8, 0x05, 0xbe, 0x0c, 0x74, 0x82, 0x68, 0x12, 0x51, 0x34, 0x90, 0x30, 0x9a, 0x46, 0x1c,
		0x8d, 0x25, 0x90, 0xc6, 0x12, 0x49, 0x33, 0x09, 0x25, 0x36, 0xb1, 0x04, 0x27, 0x98, 0x29, 0xa4,
		0xbc, 0xfb, 0x1b, 0x61, 0x56, 0xc6, 0x19, 0x89, 0x60, 0x10, 0x8a, 0x81, 0x09, 0x19, 0x67, 0xd1,
		0xb9, 0xdb, 0x33, 0x60, 0x2d, 0xa7, 0xf3, 0xdb, 0x62, 0xa9, 0x96, 0xc1, 0x63, 0x2a, 0xfd, 0x0f,
		0x86, 0x30, 0x86, 0xaf, 0xbf, 0x87, 0xa8, 0x99, 0x7c, 0xa8, 0x31, 0xa5, 0x25, 0x9a, 0x1a, 0xea,
		0x5f, 0x46, 0x2c, 0x96, 0x94, 0x2c, 0x29, 0x59, 0x52, 0xb2, 0xa4, 0x64, 0x49, 0xc9, 0x92, 0x92,
		0x7c, 0xac, 0x58, 0x25, 0x25, 0xfa, 0xde, 0x45, 0xba, 0x90, 0x07, 0xe1, 0x87, 0x03, 0xd3, 0x26,
		0xf2, 0x20, 0x69, 0x5a, 0xfc, 0x1d, 0xe2, 0xb9, 0x65, 0xc8, 0x72, 0x4c, 0x21, 0xa0, 0x26, 0x12,
		0x51, 0x83, 0x09, 0xa9, 0xa9, 0xc4, 0xd4, 0x78, 0x82, 0x6a, 0x3c, 0x51, 0x35, 0x9b, 0xb0, 0x9a,
		0x41, 0x5c, 0x0d, 0x21, 0xb0, 0x29, 0xd4, 0x8c, 0xd9, 0x1b, 0x79, 0x96, 0xb1, 0xa4, 0x10, 0x62,
		0x30, 0x1a, 0x07, 0xf1, 0x76, 0xcd, 0xa4, 0xac, 0x35, 0x27, 0x81, 0xfb, 0x06, 0x2d, 0xa9, 0x29,
		0xd4, 0x70, 0x5a, 0x80, 0xfc, 0xc7, 0xa8, 0x30, 0x6e, 0x16, 0xad, 0x98, 0x3e, 0xa9, 0x13, 0xa9,
		0x8c, 0xe3, 0x4b, 0xe9, 0xe2, 0xa6, 0xd3, 0x9c, 0x4b, 0x07, 0x56, 0x7d, 0xc3, 0xcc, 0xf5, 0x1d,
		0x87, 0x41, 0x2f, 0x96, 0x63, 0xd5, 0x90, 0x43, 0x39, 0xbd, 0x51, 0xbc, 0x65, 0xe8, 0x42, 0x5b,
		0x62, 0x18, 0xc4, 0xf2, 0x36, 0x79, 0x96, 0x83, 0x60, 0x14, 0x09, 0xe3, 0x56, 0xf9, 0xe7, 0x86,
		0x81, 0xa1, 0x25, 0xb8, 0x63, 0x68, 0x61, 0x68, 0x61, 0x68, 0x61, 0x75, 0xc6, 0xd5, 0x3c, 0xff,
		0xf8, 0xf6, 0x0f, 0x3e, 0x0f, 0xa6, 0xde, 0x6c, 0x82, 0x98, 0x59, 0xf7, 0x56, 0x9e, 0x15, 0xfe,
		0x26, 0xdd, 0x5f, 0x79, 0x5a, 0xf6, 0x73, 0xef, 0x47, 0xd3, 0x05, 0x71, 0xef, 0x07, 0x6a, 0x69,
		0xdc, 0xfb, 0x01, 0x5d, 0x20, 0xf7, 0x7e, 0xc8, 0xff, 0xc8, 0x01, 0xb3, 0x81, 0x9a, 0xb9, 0x7b,
		0x3f, 0x13, 0xa9, 0xcc, 0xdc, 0xf6, 0xd9, 0x33, 0x68, 0x49, 0x9d, 0x40, 0x0d, 0x05, 0x77, 0x7d,
		0xf4, 0x7f, 0x50, 0x85, 0xd8, 0xf5, 0xd9, 0x62, 0x6b, 0x16, 0x3c, 0xf6, 0x73, 0xd7, 0x07, 0x30,
		0xb4, 0x14, 0x62, 0xd7, 0xa7, 0xb6, 0x5f, 0xdf, 0xdf, 0xdd, 0xab, 0xed, 0xef, 0x30, 0xc6, 0x30,
		0xc6, 0xb0, 0x40, 0xe3, 0x6a, 0xfe, 0xf6, 0x07, 0xb7, 0x7f, 0xb8, 0x82, 0xc2, 0x33, 0x08, 0xb4,
		0x19, 0xc2, 0x3f, 0x5c, 0x4f, 0x11, 0x66, 0x0c, 0xbf, 0x38, 0x2d, 0xf4, 0xc5, 0x57, 0x2b, 0xcb,
		0x3f, 0xb0, 0xf4, 0xb2, 0x09, 0xa2, 0x01, 0x96, 0xd9, 0x73, 0x8b, 0xd3, 0x71, 0xc5, 0x47, 0x0f,
		0x8f, 0xf0, 0xa5, 0x17, 0xfd, 0xe5, 0xff, 0xbe, 0xf4, 0xf2, 0xd4, 0x4e, 0xea, 0xa3, 0xd0, 0x72,
		0xe3, 0x73, 0x59, 0xe9, 0x8b, 0xb8, 0x37, 0xe5, 0x90, 0x42, 0xa9, 0x29, 0xa3, 0x38, 0x89, 0x1c,
		0xd8, 0x32, 0xae, 0x27, 0x52, 0x39, 0x23, 0x71, 0x2d, 0x14, 0x7a, 0xe9, 0x5a, 0x3a, 0x09, 0xee,
		0x96, 0x56, 0x52, 0xfd, 0x58, 0xaf, 0xef, 0xee, 0xd5, 0xeb, 0x5b, 0x7b, 0xdb, 0x7b, 0x5b, 0xfb,
		0x3b, 0x3b, 0xd5, 0xdd, 0x2a, 0x70, 0x03, 0xa2, 0xd4, 0x0e, 0xfb, 0x22, 0x14, 0xfd, 0xc3, 0xc4,
		0x7d, 0xd4, 0x64, 0x34, 0x32, 0x61, 0x29, 0x67, 0x91, 0x08, 0xa1, 0x7b, 0x09, 0xa8, 0x51, 0xd8,
		0x90, 0x4a, 0x82, 0x15, 0xc4, 0xcf, 0x54, 0x10, 0x25, 0x68, 0x01, 0x38, 0xd6, 0x0c, 0x2f, 0xd6,
		0x0c, 0x98, 0xd5, 0xc2, 0x9f, 0x1c, 0x7f, 0xc5, 0x7c, 0x64, 0x4e, 0x1e, 0x62, 0xfe, 0x79, 0x35,
		0xff, 0x20, 0x4e, 0x80, 0x64, 0xb2, 0x59, 0x4e, 0x36, 0x58, 0x19, 0x06, 0x27, 0x4e, 0x03, 0xc5,
		0xe8, 0xd2, 0xf5, 0xb8, 0x2f, 0x46, 0x88, 0xb7, 0x64, 0xd2, 0xa3, 0x90, 0xe9, 0x0a, 0x30, 0x87,
		0x2f, 0x6f, 0x71, 0xf8, 0xf2, 0x7a, 0x0c, 0xe7, 0xf0, 0xe5, 0x5c, 0x97, 0xc0, 0xe1, 0xcb, 0x9a,
		0x2c, 0x84, 0xc3, 0x97, 0xc9, 0x6a, 0x8a, 0x52, 0x7d, 0xc2, 0x5e, 0x00, 0x31, 0x60, 0x10, 0x0a,
		0xf2, 0xe0, 0x93, 0xe7, 0x83, 0x4e, 0x52, 0x96, 0xc9, 0x9a, 0xa9, 0xf0, 0x35, 0x13, 0xe6, 0xcc,
		0x12, 0xe8, 0x19, 0x25, 0xa0, 0x33, 0x49, 0x58, 0x2d, 0xb1, 0x5a, 0x62, 0xb5, 0xc4, 0x6a, 0x89,
		0xd5, 0x12, 0xab, 0x25, 0xfd, 0x21, 0x82, 0x3a, 0xf3, 0x03, 0xb7, 0x89, 0xfd, 0x2c, 0x65, 0x81,
		0x36, 0xb3, 0x9f, 0xd2, 0x34, 0xd0, 0x33, 0x86, 0xf0, 0xaa, 0x4d, 0x26, 0xa8, 0x34, 0x19, 0xa4,
		0xca, 0x64, 0x8a, 0x0a, 0x93, 0x71, 0xaa, 0x4b, 0xc6, 0xa9, 0x2c, 0x99, 0xa5, 0xaa, 0xc4, 0x0b,
		0x1b, 0xeb, 0x84, 0x0e, 0xbc, 0x4a, 0xd2, 0x23, 0x55, 0xa4, 0x8f, 0xc8, 0xf9, 0x62, 0x4e, 0x9f,
		0x90, 0x6f, 0x31, 0x98, 0x21, 0x7a, 0x64, 0xc0, 0xdd, 0x5b, 0x93, 0x44, 0x8d, 0x4c, 0x13, 0x31,
		0x32, 0x56, 0x50, 0xc4, 0x3c, 0x01, 0x11, 0x13, 0xf4, 0xb0, 0x4d, 0x12, 0x21, 0x4a, 0x43, 0x41,
		0x6d, 0x67, 0x87, 0xc1, 0x80, 0xc1, 0x80, 0x85, 0x49, 0x01, 0xac, 0xff, 0xc6, 0xbb, 0x50, 0xb4,
		0x18, 0x3d, 0x35, 0xf3, 0x2e, 0x94, 0x59, 0x77, 0xa1, 0x50, 0x65, 0x7b, 0x78, 0x0b, 0x0a, 0x52,
		0x8f, 0x07, 0xe8, 0x2c, 0xdf, 0x3f, 0x98, 0x3d, 0xb2, 0xf3, 0xd6, 0xb9, 0x9e, 0x0e, 0xd8, 0xce,
		0x30, 0xa6, 0x74, 0x0e, 0xae, 0x54, 0x8e, 0x51, 0xd2, 0x38, 0xc0, 0x52, 0x38, 0xc0, 0xd2, 0x37,
		0x28, 0x01, 0x11, 0x94, 0x46, 0x93, 0x3e, 0x3f, 0x7a, 0xb5, 0x04, 0x75, 0xe0, 0xbf, 0xe8, 0x84,
		0x19, 0x83, 0x2a, 0xeb, 0x4f, 0x3c, 0xf5, 0xb6, 0x50, 0xf3, 0x0c, 0x50, 0x12, 0x77, 0x71, 0x18,
		0x94, 0x27, 0x09, 0x96, 0x2f, 0x47, 0x18, 0x67, 0x16, 0x4a, 0xa1, 0x18, 0x88, 0x50, 0xa8, 0x1e,
		0xce, 0x9e, 0x38, 0x50, 0x4a, 0x5d, 0x1c, 0xfc, 0xe8, 0x1c, 0x1f, 0xd5, 0xab, 0xb5, 0xfa, 0x81,
		0xb5, 0x08, 0xab, 0x96, 0x73, 0x17, 0x0b, 0x15, 0xc9, 0xb1, 0x8a, 0xac, 0xc1, 0x38, 0xb4, 0xba,
		0x93, 0x9b, 0x9b, 0x71, 0x18, 0x5b, 0xe3, 0x81, 0xd5, 0x90, 0x83, 0x41, 0x24, 0xc2, 0xdb, 0xf2,
		0x85, 0x0a, 0xbe, 0x07, 0xa1, 0xb0, 0x4e, 0x4e, 0x9b, 0x5d, 0xcb, 0x0b, 0x83, 0xc1, 0x40, 0xf6,
		0x2c, 0x47, 0x0d, 0xa5, 0x12, 0x22, 0x94, 0x6a, 0xb8, 0x69, 0x45, 0x93, 0xcb, 0xb2, 0xd7, 0x3c,
		0xb7, 0x6a, 0xb5, 0x03, 0x6b, 0xf6, 0x79, 0xc3, 0xaa, 0x6d, 0x6f, 0x5c, 0xa8, 0x6a, 0xbd, 0xba,
		0x61, 0xd5, 0x6a, 0xb5, 0x8d, 0x5a, 0x6d, 0x1b, 0x29, 0x91, 0x81, 0x9e, 0x47, 0x5c, 0x3e, 0x7f,
		0xf8, 0xe0, 0x4f, 0x60, 0xdd, 0x5f, 0xf4, 0x23, 0x87, 0x8f, 0x8e, 0x18, 0xe6, 0xea, 0x70, 0x6c,
		0x84, 0x15, 0xcc, 0xca, 0x6f, 0xfa, 0x7b, 0x4a, 0xe9, 0xfb, 0x95, 0x50, 0x4c, 0xf1, 0xab, 0x4b,
		0xf1, 0xe9, 0x4d, 0xfc, 0xf8, 0xfe, 0x46, 0x58, 0xbf, 0x7d, 0x98, 0x1f, 0x72, 0x2e, 0x8f, 0xa2,
		0xfe, 0x65, 0x39, 0x79, 0x2d, 0x3a, 0x70, 0xbb, 0x7e, 0xc7, 0xb1, 0x8f, 0x3e, 0xdb, 0x87, 0x6e,
		0xd3, 0xf5, 0xbe, 0xfa, 0x87, 0x76, 0xab, 0xf1, 0x2f, 0xb7, 0xe1, 0x7d, 0xf6, 0x8f, 0xda, 0xad,
		0xae, 0xd7, 0xb1, 0xdd, 0x96, 0xd7, 0xfd, 0xc0, 0x7c, 0xbd, 0xd6, 0x7c, 0x3d, 0xf5, 0x0b, 0xa6,
		0xea, 0xfc, 0x52, 0x75, 0x76, 0x8e, 0x43, 0x31, 0x89, 0x15, 0x3c, 0xaa, 0x86, 0x88, 0x7a, 0xa1,
		0xbc, 0x81, 0x3c, 0x15, 0x90, 0x06, 0xe7, 0xb6, 0x1a, 0xdd, 0x5b, 0x52, 0xf5, 0x46, 0x93, 0xbe,
		0xb0, 0xe2, 0x2b, 0x61, 0xa5, 0x1d, 0x3f, 0x6b, 0xa9, 0x0f, 0x98, 0x7c, 0x1d, 0x07, 0x52, 0x89,
		0xd0, 0x4a, 0xa2, 0xc2, 0x85, 0x4a, 0x7e, 0x72, 0x41, 0xf9, 0x64, 0x64, 0x4d, 0x01, 0x5a, 0xab,
		0x6d, 0xa2, 0x85, 0x0b, 0xe0, 0x5b, 0x5e, 0xcb, 0x91, 0xba, 0xbf, 0x84, 0x44, 0xc0, 0x53, 0x0d,
		0x26, 0x5c, 0xe9, 0x7a, 0x14, 0xb8, 0x33, 0x76, 0x2a, 0x1e, 0x76, 0x60, 0x8d, 0xa7, 0x73, 0x8d,
		0xc7, 0xce, 0xf8, 0x7b, 0xe2, 0x06, 0xd6, 0x9e, 0x68, 0x71, 0xf7, 0x42, 0x01, 0x32, 0x6b, 0xc1,
		0xb6, 0x3b, 0xf5, 0x4e, 0x8c, 0xfa, 0x06, 0x6e, 0x8d, 0x43, 0x62, 0x49, 0xdc, 0xc5, 0x42, 0xf5,
		0x45, 0xbf, 0x1c, 0xf4, 0xaf, 0xa5, 0x2a, 0x0f, 0xc3, 0xf1, 0xe4, 0x46, 0xfb, 0xc0, 0x98, 0x56,
		0x53, 0x2f, 0x5a, 0xaf, 0x79, 0x02, 0xc2, 0xd0, 0xe7, 0x83, 0x11, 0x78, 0x41, 0x12, 0x72, 0x01,
		0x14, 0x6c, 0x41, 0x2b, 0xd9, 0x61, 0x05, 0x58, 0x60, 0xab, 0x72, 0x4c, 0x41, 0x15, 0x1e, 0x2f,
		0x7a, 0xcf, 0x23, 0x47, 0xd1, 0xbf, 0x03, 0x13, 0x20, 0x86, 0x14, 0x1e, 0x06, 0x13, 0x1c, 0x86,
		0x53, 0xae, 0x43, 0x54, 0xaa, 0x03, 0x56, 0xa6, 0x33, 0x61, 0x27, 0x19, 0x52, 0x79, 0xce, 0xac,
		0xbd, 0x64, 0x38, 0x65, 0x39, 0x5e, 0x45, 0x2c, 0x22, 0x41, 0x4a, 0x0d, 0x86, 0xec, 0x03, 0xbd,
		0x9a, 0x76, 0x00, 0xfb, 0x42, 0xaf, 0xd1, 0x2a, 0x4e, 0xbd, 0x23, 0xcd, 0x32, 0x98, 0x6e, 0xa1,
		0xd3, 0x2e, 0x63, 0xe8, 0x97, 0x31, 0x34, 0xcc, 0x0c, 0x3a, 0x86, 0x45, 0xcb, 0xc0, 0xe8, 0x59,
		0x0a, 0x11, 0xfc, 0xa9, 0x77, 0x13, 0xa9, 0xe2, 0xed, 0x1a, 0xf0, 0xd0, 0x3b, 0xc4, 0x99, 0x77,
		0xd8, 0xca, 0xbd, 0xc0, 0xf2, 0xd5, 0x26, 0x28, 0xf5, 0x9a, 0xa2, 0xd0, 0x6b, 0x9c, 0x18, 0xa7,
		0x39, 0x22, 0x9c, 0xc0, 0x4a, 0xbc, 0x46, 0x28, 0xf0, 0xa6, 0x2e, 0x5e, 0xaf, 0xed, 0xd7, 0xf7,
		0x77, 0xf7, 0x6a, 0xfb, 0x3b, 0xf4, 0x75, 0xfa, 0x3a, 0x0b, 0x04, 0x60, 0xab, 0xbf, 0xb1, 0x10,
		0x5b, 0xa1, 0x3b, 0x42, 0x6a, 0xe0, 0x2d, 0xd3, 0x52, 0x4c, 0x2d, 0xbc, 0xe5, 0xac, 0x6b, 0x8c,
		0x26, 0x5e, 0xba, 0x28, 0x5c, 0x6d, 0xbc, 0xe7, 0x4b, 0x80, 0xd3, 0xc8, 0x43, 0x8d, 0x44, 0x80,
		0xca, 0x49, 0xcf, 0xd6, 0x80, 0xa7, 0xa4, 0x64, 0x50, 0x8f, 0x62, 0x49, 0x69, 0x69, 0x6f, 0x7b,
		0xeb, 0xe3, 0xc1, 0x4c, 0xef, 0xa5, 0x2f, 0xfa, 0x96, 0xdd, 0xbf, 0x96, 0x4a, 0x46, 0x71, 0x38,
		0x65, 0x9e, 0xd6, 0xa7, 0x70, 0x3c, 0xb9, 0x89, 0x2c, 0xa9, 0xa6, 0x32, 0x2f, 0x17, 0xea, 0x05,
		0x9d, 0x17, 0xeb, 0x97, 0xe4, 0x3f, 0x95, 0x3d, 0xe7, 0xd7, 0x07, 0xc5, 0x97, 0x6a, 0x7d, 0xaa,
		0xf8, 0x72, 0xa1, 0x6a, 0xb5, 0x8d, 0xda, 0xf6, 0x46, 0xb5, 0x5e, 0xdd, 0x98, 0xcb, 0xbd, 0x6c,
		0x72, 0x00, 0x64, 0xfe, 0xeb, 0x30, 0x40, 0x80, 0xe9, 0xd9, 0x9a, 0x8c, 0x9e, 0x01, 0x99, 0x87,
		0x9f, 0xb2, 0xda, 0xa4, 0xd5, 0x26, 0x55, 0x9b, 0x3c, 0xe5, 0x56, 0x44, 0xce, 0x4c, 0x7d, 0x69,
		0x8d, 0xef, 0x54, 0xbf, 0x74, 0x04, 0x0e, 0x6e, 0x10, 0x8b, 0xc1, 0x17, 0xac, 0x17, 0x6c, 0x63,
		0x4a, 0x36, 0xa6, 0x14, 0x03, 0x69, 0xd4, 0x0a, 0xf5, 0xa3, 0x8d, 0x8e, 0xf0, 0x90, 0xfa, 0xd1,
		0xd4, 0x95, 0x5c, 0x6d, 0x43, 0xe3, 0x89, 0x3c, 0x9e, 0xf5, 0x33, 0xfa, 0x78, 0xce, 0xef, 0x9e,
		0xd3, 0x6a, 0x38, 0x0d, 0xdf, 0x6e, 0x9c, 0xb8, 0x2d, 0xff, 0x53, 0xa7, 0x7d, 0x76, 0x4a, 0x5d,
		0xc9, 0xf5, 0xb6, 0x21, 0xa8, 0x2b, 0x99, 0x73, 0x87, 0x21, 0x3b, 0xc7, 0xa1, 0xae, 0xe4, 0x0a,
		0x1e, 0x95, 0x99, 0xba, 0x92, 0x0b, 0xfe, 0x6f, 0x4d, 0xf9, 0xbf, 0x35, 0xe5, 0xff, 0x53, 0xdd,
		0xbb, 0xe4, 0xbf, 0x5e, 0xa8, 0x45, 0x97, 0x6a, 0x0a, 0x49, 0x19, 0x59, 0xd5, 0x3a, 0xc5, 0x24,
		0xf3, 0x09, 0xcf, 0x14, 0x93, 0xd4, 0x2b, 0x5a, 0x67, 0xe1, 0x49, 0xec, 0xde, 0x15, 0xb9, 0x7b,
		0x47, 0x05, 0x49, 0xa3, 0x6b, 0x63, 0x2a, 0x48, 0x62, 0x74, 0x3b, 0x29, 0x20, 0xa9, 0x57, 0x7f,
		0x93, 0xf2, 0x91, 0xc6, 0xc5, 0xc3, 0x92, 0xbc, 0xb9, 0xad, 0x97, 0xa5, 0x8a, 0x45, 0x38, 0x08,
		0x7a, 0xa2, 0x1c, 0xf4, 0xfb, 0xa1, 0x88, 0x22, 0x1c, 0x01, 0xc9, 0x57, 0xec, 0xa7, 0x84, 0x64,
		0x16, 0x66, 0x52, 0x42, 0x72, 0x85, 0xc8, 0xa5, 0x84, 0xe4, 0x3a, 0x8a, 0x73, 0x4a, 0x48, 0xae,
		0xbd, 0xfe, 0xa6, 0x84, 0x64, 0x21, 0xaa, 0x28, 0x4a, 0x48, 0xae, 0x36, 0x3f, 0x50, 0x42, 0x92,
		0xc4, 0x06, 0x91, 0xe0, 0x00, 0x13, 0x1d, 0x54, 0xc2, 0x03, 0x4f, 0x7c, 0xe0, 0x09, 0x10, 0x36,
		0x11, 0xc2, 0x20, 0x44, 0x20, 0xc4, 0x08, 0x8e, 0x20, 0xa5, 0x06, 0xa3, 0x34, 0x7f, 0x5e, 0xcd,
		0x34, 0x18, 0xdd, 0x9f, 0xd7, 0xc8, 0x13, 0x85, 0x22, 0x49, 0xa6, 0x0c, 0x26, 0x55, 0xe8, 0xe4,
		0xca, 0x18, 0x92, 0x65, 0x0c, 0xd9, 0x32, 0x83, 0x74, 0x61, 0x91, 0x2f, 0x30, 0x12, 0x96, 0x42,
		0x04, 0x5f, 0x28, 0x72, 0xba, 0xd3, 0x85, 0xc9, 0x70, 0x96, 0x59, 0x4e, 0xf5, 0x23, 0xa0, 0xed,
		0xa7, 0x41, 0x1c, 0x8b, 0x50, 0xc1, 0xaa, 0x31, 0x94, 0x7e, 0xf9, 0xcf, 0x56, 0x79, 0xff, 0xdb,
		0x7f, 0xff, 0x53, 0x2d, 0xef, 0x7f, 0x9b, 0x7d, 0x59, 0x9d, 0x7e, 0xfa, 0xdf, 0xda, 0x9f, 0xff,
		0xad, 0xfd, 0x67, 0xab, 0x5c, 0x9f, 0xbf, 0x5a, 0xdb, 0xf9, 0xcf, 0x56, 0x79, 0xe7, 0xdb, 0xaf,
		0xbf, 0x5c, 0x5c, 0x6c, 0xfe, 0xdd, 0xdf, 0xf9, 0xf5, 0x7f, 0xb7, 0xff, 0xc4, 0x0b, 0xbb, 0xdf,
		0x10, 0xe1, 0xd8, 0xee, 0xba, 0xbf, 0xc3, 0x63, 0xf2, 0xff, 0xfe, 0xb2, 0x2e, 0x54, 0xfe, 0xfa,
		0x7f, 0x4a, 0xbc, 0x40, 0x4e, 0x3a, 0xb0, 0x84, 0x3d, 0xca, 0x95, 0xe5, 0xbc, 0x02, 0xca, 0x95,
		0xe9, 0xbd, 0x04, 0xca, 0x95, 0xad, 0xe9, 0x1d, 0xa7, 0x5c, 0x99, 0x0e, 0x1f, 0x66, 0xc8, 0x95,
		0xed, 0x6c, 0x6f, 0xed, 0x1c, 0x58, 0x6e, 0xb7, 0xec, 0x76, 0x67, 0x62, 0x48, 0x91, 0x1c, 0xab,
		0xc8, 0x1a, 0x8c, 0x43, 0xeb, 0x05, 0xcd, 0xa3, 0xcd, 0x87, 0xab, 0x2f, 0xbb, 0x53, 0xa5, 0x23,
		0x6b, 0x26, 0x74, 0x44, 0x3d, 0x32, 0xbd, 0xea, 0x66, 0xea, 0x91, 0xe9, 0xbf, 0xa0, 0x27, 0x7a,
		0x64, 0xd9, 0x3b, 0x22, 0x05, 0xc7, 0x68, 0xb5, 0x49, 0xf5, 0x22, 0xcf, 0x44, 0x14, 0x91, 0xf5,
		0x52, 0x70, 0x4c, 0xe3, 0x2b, 0x78, 0x2f, 0x5f, 0xa5, 0xa1, 0xe4, 0x98, 0x3e, 0x57, 0xf2, 0xdc,
		0x9b, 0xdb, 0xba, 0xbb, 0x78, 0x40, 0xf6, 0xec, 0xf9, 0x50, 0x74, 0xac, 0x38, 0x16, 0x52, 0x74,
		0x2c, 0x7b, 0x9b, 0x29, 0x3a, 0xb6, 0xda, 0xb6, 0xc4, 0x5b, 0xb4, 0x93, 0xdc, 0xd3, 0xf3, 0xba,
		0xef, 0xb6, 0x3c, 0xa7, 0x73, 0x6c, 0x1f, 0x39, 0xbe, 0xdd, 0x68, 0x74, 0x9c, 0x6e, 0x97, 0xb2,
		0x63, 0xeb, 0xed, 0x36, 0x50, 0x76, 0x2c, 0xe7, 0x46, 0x42, 0x96, 0xae, 0x43, 0xe1, 0xb1, 0x15,
		0x3c, 0x2c, 0x33, 0x85, 0xc7, 0xdc, 0xd3, 0xdb, 0xba, 0x95, 0xd6, 0x01, 0xd6, 0xbc, 0x0e, 0x98,
		0xcb, 0x26, 0xf5, 0xc6, 0x2a, 0x0e, 0xa4, 0x12, 0xe1, 0x85, 0x5a, 0x28, 0x28, 0xa5, 0x82, 0xf9,
		0x32, 0x9a, 0x69, 0x28, 0xed, 0x52, 0x88, 0x2c, 0x97, 0x80, 0x4d, 0x21, 0x32, 0xbd, 0xe2, 0xf7,
		0x2a, 0x3c, 0x8b, 0x5d, 0xbe, 0x22, 0x77, 0xf9, 0x28, 0x4c, 0x66, 0x74, 0xfd, 0x4c, 0x61, 0x32,
		0x94, 0xae, 0x28, 0xa5, 0xc9, 0x74, 0xeb, 0x83, 0x52, 0x9c, 0xcc, 0xb8, 0x98, 0x38, 0xbb, 0xf2,
		0xf0, 0xe0, 0xc8, 0x90, 0xda, 0x64, 0xcf, 0xcc, 0xa7, 0x34, 0x59, 0x16, 0x66, 0x52, 0x9a, 0x6c,
		0x85, 0xc0, 0xa5, 0x34, 0xd9, 0x3a, 0xca, 0x75, 0x4a, 0x93, 0xad, 0xbd, 0x22, 0xa7, 0x34, 0x59,
		0x21, 0xea, 0x28, 0x4a, 0x93, 0xad, 0x36, 0x3f, 0x50, 0x9a, 0x8c, 0xc4, 0x06, 0x91, 0xe0, 0x00,
		0x13, 0x1d, 0x54, 0xc2, 0x03, 0x4f, 0x7c, 0xe0, 0x09, 0x10, 0x36, 0x11, 0xc2, 0x20, 0x44, 0x20,
		0xc4, 0x08, 0x8e, 0x20, 0xa5, 0x06, 0x53, 0x9a, 0x2c, 0x57, 0xf2, 0x44, 0x69, 0x32, 0x92, 0x29,
		0x83, 0x49, 0x15, 0x3a, 0xb9, 0x32, 0x86, 0x64, 0x19, 0x43, 0xb6, 0xcc, 0x20, 0x5d, 0x58, 0xe4,
		0x0b, 0x8c, 0x84, 0xa5, 0x10, 0xa1, 0x34, 0x99, 0x26, 0x2c, 0x87, 0xd2, 0x64, 0x79, 0x2c, 0x80,
		0xd2, 0x64, 0xaf, 0x7d, 0x50, 0x9a, 0x2c, 0xaf, 0x55, 0x50, 0x9a, 0xec, 0x2f, 0x71, 0x49, 0x3a,
		0xb0, 0x42, 0xec, 0x51, 0x9a, 0x2c, 0xe7, 0x15, 0x50, 0x9a, 0x4c, 0xef, 0x25, 0x50, 0x9a, 0x6c,
		0x4d, 0xef, 0x38, 0xa5, 0xc9, 0x74, 0xf8, 0x28, 0xb8, 0x34, 0xd9, 0xc7, 0x65, 0x45, 0x24, 0xab,
		0x4a, 0x71, 0x32, 0xbd, 0x2a, 0x67, 0x8a, 0x93, 0xe9, 0xbf, 0xa0, 0xac, 0xc4, 0xc9, 0xfe, 0xc2,
		0x15, 0x29, 0x4f, 0x46, 0xab, 0x4d, 0xaa, 0x19, 0x79, 0x2e, 0xa2, 0x88, 0xcc, 0x97, 0xf2, 0x64,
		0xba, 0x5f, 0xc4, 0x7b, 0x7a, 0x9b, 0x86, 0xea, 0x64, 0x7a, 0xdd, 0xca, 0x4b, 0xff, 0x57, 0x14,
		0x27, 0x2b, 0x9a, 0x85, 0x14, 0x27, 0xcb, 0xde, 0x66, 0x8a, 0x93, 0xad, 0xb6, 0x31, 0xf1, 0x66,
		0x85, 0xa5, 0x96, 0xe3, 0x7e, 0xfa, 0x7c, 0xd8, 0xee, 0x50, 0x9b, 0x2c, 0x9f, 0x66, 0x03, 0xb5,
		0xc9, 0x72, 0xee, 0x23, 0x64, 0xe8, 0x39, 0x94, 0x26, 0x5b, 0xc1, 0xb3, 0x32, 0x58, 0x9a, 0x6c,
		0x51, 0x03, 0xa4, 0xfa, 0x49, 0xa9, 0x72, 0x92, 0x95, 0x84, 0x85, 0x0b, 0xf5, 0x92, 0x72, 0xd2,
		0xc7, 0x4d, 0x8a, 0x92, 0xe5, 0x12, 0xa9, 0x29, 0x4a, 0xa6, 0x57, 0xe0, 0xce, 0xd6, 0xa7, 0xd8,
		0xd5, 0x2b, 0x72, 0x57, 0x8f, 0x72, 0x64, 0x46, 0x57, 0xcc, 0x94, 0x23, 0x03, 0xe9, 0x82, 0x52,
		0x8d, 0x4c, 0xb3, 0xbe, 0x27, 0xc5, 0xc8, 0x8c, 0x8b, 0x88, 0x25, 0x79, 0x73, 0xbb, 0xfb, 0x82,
		0x10, 0x20, 0x92, 0x1a, 0xd9, 0x2e, 0x9c, 0x90, 0x21, 0xe5, 0xc8, 0x32, 0x36, 0x94, 0x72, 0x64,
		0x2c, 0xda, 0x5f, 0x2e, 0xd4, 0x29, 0x47, 0xb6, 0xf6, 0x5a, 0x9c, 0x72, 0x64, 0x85, 0xa8, 0xa3,
		0x28, 0x47, 0xb6, 0xda, 0xfc, 0x40, 0x39, 0x32, 0x12, 0x1b, 0x44, 0x82, 0x03, 0x4c, 0x74, 0x50,
		0x09, 0x0f, 0x3c, 0xf1, 0x81, 0x27, 0x40, 0xd8, 0x44, 0x08, 0x83, 0x10, 0x81, 0x10, 0x23, 0x38,
		0x82, 0x94, 0x1a, 0x4c, 0x39, 0xb2, 0x5c, 0xc9, 0x13, 0xe5, 0xc8, 0x48, 0xa6, 0x0c, 0x26, 0x55,
		0xe8, 0xe4, 0xca, 0x18, 0x92, 0x65, 0x0c, 0xd9, 0x32, 0x83, 0x74, 0x61, 0x91, 0x2f, 0x30, 0x12,
		0x96, 0x42, 0xc4, 0x08, 0x39, 0xb2, 0x5d, 0xca, 0x91, 0xe5, 0xc4, 0x18, 0xe0, 0xe5, 0xc8, 0xa6,
		0x2a, 0x4e, 0x41, 0x79, 0x60, 0x97, 0x8f, 0xbf, 0xfd, 0x6f, 0x75, 0xa3, 0xfe, 0xe7, 0xc1, 0xaf,
		0xff, 0xbb, 0xf7, 0xe7, 0xd3, 0x17, 0xff, 0xfb, 0xd2, 0x8f, 0x55, 0x37, 0xf6, 0xfe, 0x3c, 0x78,
		0xe5, 0xbf, 0xec, 0xfe, 0x79, 0xf0, 0x93, 0xff, 0x8f, 0x9d, 0x3f, 0x7f, 0x79, 0xf6, 0xa3, 0xc9,
		0xeb, 0xb5, 0xd7, 0x7e, 0xa1, 0xfe, 0xca, 0x2f, 0x6c, 0xbf, 0xf6, 0x0b, 0xdb, 0xaf, 0xfc, 0xc2,
		0xab, 0x26, 0xd5, 0x5e, 0xf9, 0x85, 0x9d, 0x3f, 0xff, 0xfb, 0xec, 0xe7, 0x7f, 0x79, 0xf9, 0x47,
		0x77, 0xff, 0xfc, 0xf5, 0xbf, 0xaf, 0xfd, 0xb7, 0xbd, 0x3f, 0xff, 0x7b, 0xf0, 0xeb, 0xaf, 0x14,
		0x68, 0x5b, 0x8b, 0x83, 0x9a, 0x24, 0xd0, 0x46, 0x37, 0x5d, 0xbf, 0x9b, 0x52, 0xb0, 0x8e, 0x84,
		0xf1, 0x91, 0x2f, 0x52, 0xb0, 0x2e, 0xe7, 0x15, 0x50, 0xb0, 0x4e, 0xef, 0x25, 0x50, 0xb0, 0x6e,
		0x4d, 0xef, 0x38, 0x05, 0xeb, 0x74, 0xf8, 0x30, 0x43, 0xb0, 0x6e, 0xb7, 0x5a, 0xdd, 0x3f, 0xb0,
		0xdc, 0xd3, 0xdb, 0xdd, 0x97, 0x54, 0xb1, 0x2c, 0xa9, 0x66, 0x0a, 0x5a, 0x9b, 0x8b, 0x5b, 0x51,
		0x17, 0xaa, 0x5a, 0x5b, 0xd6, 0xc7, 0xa2, 0x52, 0x9d, 0x66, 0x4d, 0x15, 0x2a, 0xd5, 0xe9, 0xbf,
		0xa0, 0x27, 0x4a, 0x75, 0x99, 0xfa, 0x20, 0x25, 0xea, 0x68, 0xb5, 0x49, 0x55, 0x22, 0xcf, 0xca,
		0x14, 0x91, 0xeb, 0x52, 0xa2, 0x4e, 0xef, 0xcb, 0x99, 0x2f, 0x5c, 0xb1, 0xa2, 0x46, 0x9d, 0x56,
		0x77, 0x35, 0x77, 0xdd, 0xc5, 0x03, 0xa2, 0x48, 0x5d, 0xe1, 0x2c, 0xa4, 0x48, 0x5d, 0xf6, 0x36,
		0x53, 0xa4, 0x6e, 0xb5, 0xcd, 0x88, 0x37, 0x4a, 0x6d, 0xed, 0xfa, 0x6e, 0xcb, 0x73, 0x3a, 0xc7,
		0xf6, 0x91, 0x43, 0x95, 0xba, 0x7c, 0x1a, 0x0d, 0x54, 0xa9, 0xcb, 0xb9, 0x87, 0x90, 0xa5, 0xeb,
		0x50, 0xa6, 0x6e, 0x05, 0x0f, 0xcb, 0x58, 0x99, 0xba, 0x5d, 0x2b, 0xad, 0x03, 0x52, 0x4d, 0xad,
		0x24, 0x1c, 0x24, 0xff, 0xfd, 0x61, 0xa2, 0xc2, 0x14, 0x96, 0x32, 0xb2, 0xaa, 0x35, 0xca, 0xd3,
		0xe5, 0x13, 0xa2, 0x29, 0x4f, 0xa7, 0x57, 0xc4, 0xce, 0xc6, 0x97, 0xd8, 0xc9, 0x2b, 0x72, 0x27,
		0x8f, 0xb2, 0x74, 0x46, 0xd7, 0xc8, 0x94, 0xa5, 0x43, 0xe9, 0x7c, 0x52, 0x97, 0x4e, 0xb7, 0x5e,
		0x27, 0x85, 0xe9, 0x8c, 0x8b, 0x89, 0xb3, 0xeb, 0x2e, 0xcf, 0x24, 0x21, 0xb1, 0x74, 0xe9, 0xc0,
		0x14, 0x2d, 0x29, 0x4b, 0x97, 0xb1, 0xa1, 0x94, 0xa5, 0x63, 0xb1, 0xfe, 0x72, 0x81, 0x4e, 0x59,
		0xba, 0xb5, 0xd7, 0xe0, 0x94, 0xa5, 0x2b, 0x44, 0x1d, 0x45, 0x59, 0xba, 0xd5, 0xe6, 0x07, 0xca,
		0xd2, 0x91, 0xd8, 0x20, 0x12, 0x1c, 0x60, 0xa2, 0x83, 0x4a, 0x78, 0xe0, 0x89, 0x0f, 0x3c, 0x01,
		0xc2, 0x26, 0x42, 0x18, 0x84, 0x08, 0x84, 0x18, 0xc1, 0x11, 0xa4, 0xd4, 0x60, 0xca, 0xd2, 0xe5,
		0x4a, 0x9e, 0x28, 0x4b, 0x47, 0x32, 0x65, 0x30, 0xa9, 0x42, 0x27, 0x57, 0xc6, 0x90, 0x2c, 0x63,
		0xc8, 0x96, 0x19, 0xa4, 0x0b, 0x8b, 0x7c, 0x81, 0x91, 0xb0, 0x14, 0x22, 0x94, 0xa5, 0xd3, 0x84,
		0xe5, 0x50, 0x96, 0x2e, 0x8f, 0x05, 0x50, 0xef, 0x8a, 0xb2, 0x74, 0x3f, 0xfb, 0x41, 0x59, 0xba,
		0xbc, 0x56, 0x41, 0x59, 0x3a, 0xca, 0xd2, 0xfd, 0x0d, 0x3f, 0x25, 0x61, 0x5c, 0xa1, 0x2f, 0x52,
		0x96, 0x2e, 0xe7, 0x15, 0x50, 0x96, 0x4e, 0xef, 0x25, 0x50, 0x96, 0x6e, 0x4d, 0xef, 0x38, 0x65,
		0xe9, 0x74, 0xf8, 0x28, 0xac, 0x2c, 0xdd, 0xf6, 0x81, 0xe5, 0x76, 0xdd, 0x2e, 0xb5, 0xe9, 0xf4,
		0xed, 0xac, 0x50, 0x9b, 0x4e, 0xff, 0x05, 0xbd, 0x5f, 0x9b, 0xee, 0x07, 0x8e, 0x48, 0x81, 0x3a,
		0x5a, 0x6d, 0x52, 0xbd, 0xc8, 0x53, 0x33, 0x45, 0x64, 0xbd, 0x14, 0xa8, 0xd3, 0xfd, 0x9a, 0xe6,
		0xd3, 0xbb, 0x56, 0xd4, 0xa7, 0xd3, 0xeb, 0xce, 0x66, 0xfa, 0xbf, 0xa2, 0x3c, 0x5d, 0xd1, 0x2c,
		0xa4, 0x3c, 0x5d, 0xf6, 0x36, 0x53, 0x9e, 0x6e, 0xb5, 0x4d, 0x89, 0x37, 0x6b, 0x6c, 0xb5, 0x1c,
		0xf7, 0xd3, 0xe7, 0xc3, 0x76, 0x87, 0xea, 0x74, 0xf9, 0xb4, 0x1a, 0xa8, 0x4e, 0x97, 0x73, 0x17,
		0x21, 0x43, 0xcf, 0xa1, 0x38, 0xdd, 0x0a, 0x9e, 0x95, 0xc1, 0xe2, 0x74, 0x8b, 0x1a, 0xe0, 0x67,
		0xf4, 0xb4, 0xb6, 0xa9, 0x4d, 0x97, 0x4f, 0x80, 0xa6, 0x36, 0x9d, 0x5e, 0xf1, 0x3a, 0x13, 0x57,
		0x62, 0x0f, 0xaf, 0xc8, 0x3d, 0x3c, 0x4a, 0xd3, 0x19, 0x5d, 0x1f, 0x53, 0x9a, 0x0e, 0xa4, 0xe7,
		0x49, 0x65, 0x3a, 0xcd, 0xba, 0x9c, 0x14, 0xa6, 0x33, 0x2e, 0x22, 0x96, 0x46, 0x81, 0x2a, 0x07,
		0xfd, 0xff, 0x17, 0xf4, 0x84, 0xea, 0xdd, 0x97, 0x23, 0xd9, 0x07, 0x52, 0xa5, 0x7b, 0xc1, 0x76,
		0x4a, 0xd2, 0x65, 0x61, 0x26, 0x25, 0xe9, 0x56, 0x88, 0x5a, 0x4a, 0xd2, 0xad, 0xa3, 0x2e, 0xa7,
		0x24, 0xdd, 0xda, 0x4b, 0x6f, 0x4a, 0xd2, 0x15, 0xa2, 0x7e, 0x82, 0x91, 0xa4, 0x7b, 0x46, 0x0f,
		0xf0, 0xe4, 0xe9, 0x9e, 0x2f, 0x81, 0x52, 0x75, 0x45, 0x26, 0x3c, 0x88, 0xc4, 0x07, 0x98, 0x00,
		0xa1, 0x12, 0x21, 0x78, 0x42, 0x04, 0x4f, 0x8c, 0xb0, 0x09, 0x12, 0x06, 0x51, 0x02, 0x21, 0x4c,
		0x70, 0xc4, 0x29, 0x35, 0x18, 0x4b, 0xd3, 0xf7, 0x59, 0x9e, 0x41, 0x3b, 0x32, 0x0b, 0x48, 0x9c,
		0x60, 0x09, 0x14, 0x32, 0x91, 0x32, 0x80, 0x50, 0xa1, 0x13, 0x2b, 0x63, 0x08, 0x96, 0x31, 0x44,
		0xcb, 0x0c, 0xc2, 0x85, 0x45, 0xbc, 0xc0, 0x08, 0x18, 0x2c, 0x11, 0x4b, 0x0d, 0x1f, 0x8c, 0x82,
		0x61, 0x84, 0x1b, 0x2c, 0x17, 0xf9, 0x6a, 0xb6, 0x0c, 0xd0, 0xf8, 0x82, 0xa9, 0x23, 0x0c, 0x4f,
		0xd4, 0x4c, 0x20, 0x6c, 0x06, 0x11, 0x37, 0x53, 0x08, 0x9c, 0x71, 0x44, 0xce, 0x38, 0x42, 0x67,
		0x16, 0xb1, 0xc3, 0x24, 0x78, 0xa0, 0x44, 0x2f, 0x85, 0x0e, 0xac, 0x2e, 0xf1, 0xb3, 0x8c, 0x21,
		0xd4, 0xe4, 0x5a, 0x84, 0x01, 0xe8, 0x75, 0x83, 0xa7, 0x24, 0xaa, 0x5a, 0x07, 0x5e, 0x83, 0xa3,
		0x26, 0xd7, 0xf8, 0x79, 0xcf, 0x1b, 0x77, 0xe3, 0x50, 0xaa, 0x21, 0xfc, 0x4a, 0xa6, 0xab, 0xd9,
		0x4a, 0x7c, 0x64, 0x7e, 0xe1, 0xce, 0x3f, 0xb6, 0x4f, 0xdc, 0xe6, 0x57, 0xf0, 0x3c, 0x3e, 0x5d,
		0x56, 0x35, 0x59, 0xd6, 0xa1, 0x7d, 0xf4, 0xe5, 0xec, 0xd4, 0x84, 0xe5, 0xd4, 0x92, 0xe5, 0x9c,
		0xdb, 0xcd, 0x33, 0xc7, 0x84, 0xd5, 0x6c, 0x27, 0xab, 0x69, 0xb6, 0x8f, 0xec, 0xa6, 0x09, 0xab,
		0xa9, 0x27, 0xab, 0xe9, 0x3a, 0x5e, 0x09, 0x7a, 0x29, 0x7f, 0x6e, 0xa0, 0x47, 0x65, 0x77, 0x4a,
		0x74, 0x0d, 0x08, 0xc9, 0x4f, 0xa2, 0x31, 0x6c, 0xe3, 0xe1, 0xd1, 0xa2, 0xe6, 0xb1, 0x18, 0x6e,
		0x9f, 0xee, 0xc5, 0xc5, 0xcc, 0x62, 0xd7, 0x81, 0xb5, 0x6d, 0xc0, 0x5a, 0x92, 0xc8, 0x75, 0x60,
		0xd5, 0x0d, 0x58, 0xc9, 0x2c, 0x3f, 0x1e, 0x58, 0x35, 0xec, 0x40, 0xcc, 0x0a, 0x9d, 0x89, 0xef,
		0x67, 0x62, 0x10, 0xb2, 0x10, 0x7c, 0xba, 0x0a, 0x78, 0x41, 0xf8, 0x87, 0x95, 0x18, 0x28, 0x0c,
		0x9f, 0x2e, 0x0e, 0x5f, 0x20, 0xfe, 0xf9, 0x52, 0x60, 0x85, 0xe2, 0x71, 0xe3, 0x2d, 0x60, 0xac,
		0x2d, 0xa5, 0x77, 0xac, 0x81, 0x6e, 0x43, 0x3c, 0x5b, 0xc4, 0xa2, 0x19, 0xba, 0xbc, 0x18, 0xee,
		0x26, 0xe7, 0x61, 0x3e, 0x77, 0x93, 0x35, 0x72, 0x07, 0xee, 0x26, 0xeb, 0xe3, 0xd6, 0xdc, 0x4d,
		0xd6, 0x7c, 0x41, 0xdc, 0x4d, 0x26, 0x7f, 0x7a, 0x23, 0x74, 0xcc, 0xd9, 0x4d, 0x8e, 0xee, 0xa3,
		0x58, 0x5c, 0xe3, 0xd2, 0x27, 0x0b, 0x7c, 0xe4, 0xed, 0x03, 0x0d, 0x01, 0x1f, 0xaa, 0x99, 0x2e,
		0xe4, 0x3f, 0x5b, 0xe5, 0x7d, 0xbb, 0x7c, 0x1c, 0x94, 0x07, 0xdf, 0xfe, 0xb7, 0xfe, 0xe7, 0xc5,
		0xc5, 0xe6, 0x0f, 0x5e, 0xc0, 0x8d, 0xb9, 0xdf, 0x90, 0xe1, 0x66, 0xc2, 0x20, 0xd7, 0x74, 0x35,
		0xff, 0xf7, 0xef, 0x82, 0xee, 0xff, 0x00, 0xa3, 0x8e, 0xbd, 0x1d, 0x72, 0x93, 0x57, 0xfc, 0xe0,
		0x36, 0x18, 0x4d, 0x04, 0x7e, 0x57, 0x67, 0xb6, 0x0c, 0xf6, 0x73, 0xf2, 0x30, 0x9f, 0xfd, 0x1c,
		0x8d, 0x1c, 0x81, 0xfd, 0x1c, 0x7d, 0xdc, 0x9a, 0xfd, 0x1c, 0xcd, 0x17, 0xc4, 0x7e, 0x0e, 0x39,
		0xd3, 0x1b, 0xa1, 0x63, 0x4e, 0x3f, 0x67, 0x22, 0x55, 0xbc, 0x5d, 0x33, 0xa0, 0x99, 0xb3, 0x07,
		0xbc, 0x84, 0x4e, 0xa0, 0x86, 0x02, 0xbe, 0xaa, 0x36, 0xe0, 0xe4, 0xe9, 0x89, 0x54, 0x46, 0x1c,
		0xa1, 0x9d, 0x2e, 0xe6, 0x7c, 0x5e, 0xdc, 0x19, 0x70, 0x7a, 0x76, 0xba, 0x9e, 0xe3, 0x30, 0xe8,
		0xc5, 0x72, 0xac, 0x1a, 0x72, 0x28, 0xd1, 0x4f, 0x4b, 0x3d, 0x8e, 0xc5, 0x62, 0x18, 0xc4, 0xf2,
		0x56, 0x40, 0x1f, 0xc6, 0x31, 0x20, 0xad, 0x3f, 0x0e, 0x05, 0xc1, 0x9d, 0x79, 0xa1, 0xa0, 0x5e,
		0xdb, 0xaf, 0xef, 0xef, 0xee, 0xd5, 0xf6, 0x77, 0x18, 0x13, 0x18, 0x13, 0x58, 0xa0, 0x14, 0xc0,
		0x7a, 0xb6, 0xff, 0x99, 0xf3, 0x5e, 0x0b, 0x32, 0xdf, 0x85, 0x1c, 0x5e, 0xc5, 0xf8, 0xfd, 0xff,
		0xf9, 0x3a, 0xb8, 0x01, 0x90, 0x87, 0xf9, 0xdc, 0x00, 0xd0, 0xc8, 0x13, 0xb8, 0x01, 0xa0, 0x8f,
		0x5b, 0x73, 0x03, 0x40, 0xf3, 0x05, 0x71, 0x03, 0x80, 0xac, 0xe9, 0x8d, 0xd0, 0x31, 0x6b, 0x03,
		0xe0, 0xa3, 0x01, 0xfd, 0xff, 0x1d, 0xf6, 0xff, 0x73, 0xfe, 0x60, 0xff, 0x5f, 0xaf, 0xc5, 0xb0,
		0xff, 0x8f, 0x12, 0x8a, 0xd9, 0xff, 0xd7, 0x30, 0x14, 0x98, 0xd8, 0xff, 0xaf, 0xed, 0xb0, 0xf1,
		0xcf, 0x60, 0xc0, 0xc2, 0xa4, 0x08, 0xd6, 0xb3, 0xf1, 0x4f, 0x8b, 0xe1, 0x53, 0x73, 0xc9, 0x56,
		0x6a, 0x1c, 0xcf, 0xc4, 0x6b, 0x21, 0xe7, 0x2f, 0x44, 0xbd, 0x2b, 0x71, 0x1d, 0xdc, 0x04, 0xf1,
		0x55, 0x52, 0x6c, 0x57, 0xc6, 0xe9, 0xb8, 0xff, 0xb2, 0x9a, 0x8d, 0xf3, 0x2f, 0xcb, 0xf9, 0x34,
		0xfd, 0xca, 0xd3, 0x17, 0xa2, 0x67, 0xaf, 0x54, 0x6e, 0x16, 0x23, 0xff, 0xd3, 0xaf, 0x2a, 0x32,
		0x92, 0x51, 0x65, 0x34, 0x1d, 0xf9, 0x3f, 0xfb, 0x54, 0x19, 0x49, 0xf5, 0x47, 0x79, 0x3a, 0xc9,
		0xaa, 0xdc, 0x9f, 0x0f, 0xfd, 0xaf, 0x8c, 0xa2, 0x9b, 0x4a, 0x3c, 0xba, 0x8d, 0x92, 0x7f, 0x2a,
		0xd7, 0xf1, 0xb4, 0xd7, 0x55, 0x4e, 0xc5, 0x30, 0x82, 0xc5, 0xdc, 0xff, 0xca, 0xe2, 0xa5, 0x28,
		0xfd, 0xaa, 0xf2, 0x60, 0x4e, 0x6a, 0x46, 0x34, 0x9b, 0xfb, 0x3f, 0xff, 0x5c, 0x79, 0x3e, 0x54,
		0xfd, 0xf9, 0x4b, 0x15, 0xc4, 0xd1, 0x5a, 0xb3, 0x27, 0x18, 0x87, 0x93, 0x5e, 0xac, 0xe6, 0xed,
		0x92, 0x76, 0xfa, 0x00, 0x5b, 0xb3, 0x87, 0xe3, 0xce, 0xdf, 0x14, 0xff, 0xc9, 0xf7, 0xd1, 0xd3,
		0x17, 0xfc, 0xd3, 0xc5, 0xc3, 0x4b, 0xbf, 0xf2, 0xdd, 0x48, 0x46, 0x7e, 0x73, 0xfa, 0xf0, 0x66,
		0x9f, 0xfc, 0xa6, 0x54, 0x7f, 0x74, 0x93, 0xb7, 0xaa, 0x31, 0x7f, 0x74, 0x7e, 0x33, 0xba, 0xf1,
		0xbd, 0xd1, 0x6d, 0x94, 0xfc, 0xe3, 0x9f, 0xc4, 0xc9, 0xaf, 0xb4, 0xe6, 0xcf, 0xc6, 0x5e, 0x3c,
		0x37, 0x7f, 0xf1, 0x4a, 0x94, 0x7e, 0xe5, 0x3f, 0x18, 0x92, 0x5a, 0xd0, 0x9d, 0x3d, 0xb7, 0xf9,
		0x67, 0xbf, 0x19, 0x28, 0x7b, 0xf1, 0x8c, 0xba, 0xb2, 0x1f, 0x3d, 0x7d, 0xc1, 0x9f, 0x1a, 0x82,
		0xd5, 0x12, 0xc5, 0x89, 0xc6, 0x40, 0x91, 0x18, 0xf4, 0x9e, 0x18, 0xf4, 0xfd, 0x30, 0xd0, 0x6d,
		0x61, 0x8e, 0xf5, 0xcb, 0x13, 0xe8, 0x1c, 0xeb, 0x97, 0x9f, 0xbb, 0x72, 0xac, 0x9f, 0x6e, 0xa5,
		0x03, 0xc7, 0xfa, 0x91, 0xd3, 0xfc, 0x35, 0x44, 0x60, 0xb7, 0x71, 0xd3, 0x88, 0x3f, 0x12, 0xc1,
		0x20, 0x14, 0x03, 0xc4, 0x88, 0xbf, 0x50, 0xe1, 0x01, 0xbc, 0xb9, 0x55, 0x3a, 0x9d, 0x17, 0xf4,
		0x9b, 0x9b, 0xb3, 0xc2, 0xb6, 0x32, 0xa3, 0x98, 0x2c, 0x95, 0x0a, 0x6c, 0x29, 0xca, 0x50, 0xf9,
		0x2f, 0xe2, 0x1e, 0xad, 0x28, 0xc2, 0x14, 0xfb, 0xc6, 0x15, 0xf7, 0x36, 0x4a, 0xcc, 0x1b, 0x58,
		0xbc, 0x1b, 0x58, 0xac, 0x1b, 0x25, 0x1a, 0x82, 0x6e, 0x30, 0x70, 0x63, 0x61, 0xfe, 0x12, 0x10,
		0xf3, 0x2d, 0xf0, 0x56, 0x02, 0x06, 0x33, 0xd6, 0x9f, 0x67, 0xea, 0x6d, 0xa1, 0xe6, 0x31, 0xbf,
		0x24, 0xee, 0xe2, 0x30, 0x28, 0x4f, 0x12, 0x0c, 0x5f, 0x8e, 0x30, 0x0a, 0xff, 0x52, 0x28, 0x06,
		0x22, 0x14, 0xaa, 0x87, 0x73, 0x3e, 0x18, 0x28, 0x89, 0x2e, 0xba, 0x28, 0xfd, 0x30, 0x18, 0xc4,
		0x65, 0x29, 0xe2, 0xc1, 0x2c, 0x81, 0x45, 0x62, 0x98, 0x70, 0xdf, 0x72, 0x38, 0x9e, 0xc4, 0x52,
		0x0d, 0xcb, 0xe2, 0x2e, 0x16, 0x2a, 0x92, 0x63, 0x15, 0x6d, 0x5a, 0xd1, 0xe4, 0xb2, 0xec, 0x35,
		0xcf, 0xad, 0xed, 0xda, 0xc1, 0x85, 0x4a, 0xbe, 0xa8, 0xd5, 0x36, 0xac, 0xda, 0xec, 0x9f, 0xed,
		0x0d, 0xab, 0x5a, 0xaf, 0x6e, 0x22, 0xe5, 0x24, 0xd0, 0xbe, 0xfb, 0x72, 0xbf, 0xfd, 0xc1, 0x45,
		0xc0, 0xda, 0x8f, 0xe8, 0xad, 0xf6, 0x47, 0x2d, 0xf6, 0xac, 0x7d, 0x88, 0xdd, 0xa9, 0x82, 0x59,
		0x09, 0x20, 0x8f, 0x5d, 0xfa, 0x7e, 0x25, 0x14, 0x13, 0xf1, 0xea, 0x12, 0x71, 0xda, 0x4f, 0x8f,
		0xef, 0x6f, 0x84, 0xf5, 0x9b, 0xf5, 0x61, 0xbe, 0x71, 0x57, 0x1e, 0x45, 0xfd, 0xcb, 0x72, 0xf2,
		0x62, 0x74, 0xe0, 0x76, 0xfd, 0x8e, 0x63, 0x1f, 0x7d, 0xb6, 0x0f, 0xdd, 0xa6, 0xeb, 0x7d, 0xf5,
		0xed, 0xc6, 0x3f, 0xfd, 0xa6, 0xdd, 0xf2, 0xbb, 0x6e, 0xe3, 0x03, 0x33, 0xef, 0x5a, 0x33, 0xef,
		0xd4, 0x1d, 0x98, 0x74, 0xf3, 0x4b, 0xba, 0xef, 0xf6, 0x17, 0x1e, 0x97, 0x5b, 0xc1, 0x13, 0x6a,
		0x88, 0xa8, 0x17, 0xca, 0x1b, 0xc8, 0x53, 0xcb, 0x69, 0x28, 0x6e, 0xab, 0xd1, 0xbd, 0x25, 0x55,
		0x6f, 0x34, 0xe9, 0x0b, 0x2b, 0xbe, 0x12, 0x56, 0xd3, 0x6e, 0x59, 0x69, 0xeb, 0xcd, 0xea, 0xba,
		0x0d, 0xab, 0x37, 0x56, 0x71, 0x20, 0x95, 0x08, 0xad, 0x24, 0x10, 0x5c, 0xa8, 0xe4, 0xa7, 0x16,
		0xd4, 0x4e, 0x46, 0xd6, 0x14, 0x93, 0xdb, 0xb5, 0x4d, 0xb4, 0x08, 0x01, 0x7c, 0x14, 0x69, 0x39,
		0x38, 0xf7, 0x97, 0x50, 0x08, 0xb8, 0xc5, 0x6e, 0xc2, 0x39, 0xa4, 0x47, 0xb1, 0x3a, 0x43, 0x87,
		0xe2, 0x39, 0x03, 0x56, 0x72, 0x3a, 0x57, 0x72, 0xec, 0x52, 0xbf, 0x27, 0x66, 0x60, 0xed, 0x48,
		0x16, 0x74, 0x27, 0x12, 0x20, 0xa5, 0x16, 0x68, 0xbf, 0x51, 0xef, 0x8c, 0xa8, 0x6f, 0xc4, 0xd6,
		0x38, 0x16, 0x96, 0xa6, 0x4e, 0x9e, 0xfa, 0x6d, 0xa4, 0x7d, 0x30, 0x7c, 0x38, 0x93, 0xfb, 0xc4,
		0x70, 0xcd, 0xf3, 0xcd, 0xe2, 0x1c, 0xae, 0xe6, 0x66, 0xa2, 0x5c, 0x2c, 0x42, 0xba, 0x48, 0x04,
		0x78, 0x71, 0x08, 0xad, 0x3a, 0x87, 0xbd, 0x18, 0x04, 0x5b, 0x80, 0x63, 0x5e, 0xfc, 0xe1, 0xc9,
		0x9e, 0xf7, 0x3c, 0xf2, 0x86, 0x0c, 0x41, 0x8a, 0xa5, 0xe9, 0x95, 0x7a, 0x98, 0xe0, 0x95, 0x8e,
		0xfd, 0x06, 0x52, 0x6f, 0x00, 0x21, 0x34, 0x70, 0xc4, 0x06, 0x91, 0xe0, 0x00, 0x13, 0x1d, 0x54,
		0xc2, 0x03, 0x4f, 0x7c, 0xe0, 0x09, 0x10, 0x36, 0x11, 0xc2, 0x20, 0x44, 0x20, 0xc4, 0x08, 0x8e,
		0x20, 0xa5, 0x06, 0x8f, 0xc6, 0xbd, 0x60, 0x54, 0xbe, 0x09, 0xc7, 0xb1, 0xe8, 0x61, 0x6f, 0xa4,
		0x3f, 0x5b, 0x09, 0x85, 0x68, 0x48, 0xab, 0xcc, 0xa2, 0x57, 0x06, 0xd0, 0x2c, 0x74, 0xba, 0x65,
		0x0c, 0xed, 0x32, 0x86, 0x7e, 0x99, 0x41, 0xc3, 0xb0, 0xe8, 0x18, 0x18, 0x2d, 0x4b, 0x21, 0x82,
		0x2f, 0x44, 0x23, 0xd4, 0xe4, 0x5a, 0x84, 0x01, 0xea, 0x69, 0xb3, 0x45, 0xcf, 0xa8, 0x0e, 0x68,
		0xbb, 0xa3, 0x26, 0xd7, 0xb8, 0xf9, 0xca, 0x1b, 0x77, 0xe3, 0x50, 0xaa, 0x21, 0xf6, 0x38, 0x9d,
		0xad, 0xc4, 0x07, 0x9a, 0xed, 0x23, 0xbb, 0xe9, 0x9f, 0x76, 0xda, 0x9e, 0x73, 0xe4, 0xb9, 0xed,
		0x16, 0xf2, 0x58, 0x9d, 0xea, 0x74, 0x41, 0x6e, 0xeb, 0x8b, 0xef, 0xfc, 0x7e, 0xd4, 0x3c, 0x6b,
		0x38, 0x8d, 0x12, 0x27, 0x4c, 0xad, 0xd5, 0x2d, 0x5c, 0x15, 0x63, 0xfb, 0xc4, 0x63, 0xf4, 0xc0,
		0x34, 0xe4, 0x5f, 0x5e, 0xcb, 0x53, 0xd7, 0x3e, 0xb0, 0xb6, 0x28, 0xb0, 0x4f, 0x8b, 0xe1, 0x99,
		0x27, 0xa4, 0xb2, 0x56, 0x6a, 0x3d, 0xac, 0xc2, 0xd6, 0xc3, 0x0a, 0x0c, 0x52, 0xda, 0x4a, 0x17,
		0x85, 0xab, 0xb8, 0xf5, 0x7c, 0x09, 0x70, 0xca, 0x5b, 0xa8, 0x91, 0x08, 0x50, 0x9d, 0xe5, 0xd9,
		0x1a, 0xf0, 0xd4, 0x5a, 0x9e, 0x7e, 0x18, 0x30, 0xd2, 0xb4, 0x73, 0x7c, 0xb4, 0xb3, 0x55, 0xdb,
		0x3f, 0xb0, 0x1a, 0x62, 0x20, 0x95, 0x8c, 0xe5, 0x58, 0x59, 0xe3, 0x81, 0x15, 0x28, 0xcb, 0xed,
		0x96, 0xdd, 0xae, 0xd5, 0x94, 0xea, 0x0f, 0x2b, 0x3d, 0x80, 0x6e, 0x75, 0x27, 0x97, 0xe5, 0xa9,
		0x0a, 0xc5, 0xa6, 0xb5, 0x90, 0xa2, 0x58, 0xdc, 0xb9, 0xaa, 0xee, 0x6f, 0x72, 0x94, 0xb6, 0x06,
		0xcd, 0x19, 0x7c, 0xad, 0x97, 0x67, 0x6b, 0x32, 0x7a, 0x9a, 0x76, 0xb6, 0x1e, 0xc8, 0x99, 0xdc,
		0xb4, 0xfa, 0x2f, 0x3f, 0xbe, 0xf1, 0x3e, 0x6c, 0x81, 0x2d, 0xa5, 0xd2, 0xec, 0x6a, 0xed, 0x2e,
		0xc4, 0xfd, 0xce, 0xc7, 0x57, 0xb6, 0xe0, 0xa6, 0xd5, 0x99, 0x7c, 0xd5, 0x53, 0xaa, 0x3f, 0xd2,
		0xff, 0x45, 0x84, 0x34, 0x93, 0x8e, 0x72, 0xb2, 0x46, 0x07, 0x76, 0x48, 0x39, 0x59, 0x0a, 0xd8,
		0xad, 0xb6, 0xf7, 0xf0, 0x16, 0x41, 0xae, 0xe9, 0x3e, 0x99, 0xed, 0x79, 0x1d, 0xf7, 0xf0, 0xcc,
		0x73, 0xba, 0x14, 0xb1, 0x5b, 0x6f, 0x4b, 0x81, 0x22, 0x76, 0x39, 0x77, 0x0b, 0x32, 0xf1, 0x19,
		0x0a, 0xd9, 0xad, 0xe0, 0x29, 0x99, 0x29, 0x64, 0x97, 0x90, 0x7d, 0xeb, 0x81, 0xec, 0x3f, 0x51,
		0xdd, 0x4a, 0x7e, 0xe4, 0x42, 0x3d, 0x55, 0xdd, 0xc2, 0xeb, 0x04, 0x53, 0xc6, 0x8e, 0x91, 0x7a,
		0x15, 0xd1, 0x3a, 0x33, 0x77, 0x62, 0xd3, 0xae, 0xc8, 0x4d, 0x3b, 0x8a, 0xd8, 0x19, 0x5d, 0x1b,
		0x53, 0xc4, 0x4e, 0xfb, 0x26, 0x27, 0x15, 0xec, 0xf4, 0x69, 0x6b, 0x52, 0xbf, 0xce, 0xb8, 0x30,
		0x38, 0x93, 0x81, 0xeb, 0x8b, 0x51, 0x70, 0x0f, 0x26, 0x5d, 0x37, 0xb3, 0x99, 0xaa, 0x75, 0x59,
		0x98, 0x49, 0xd5, 0xba, 0x15, 0xa2, 0x95, 0xaa, 0x75, 0xeb, 0x28, 0xc0, 0xa9, 0x5a, 0xb7, 0xf6,
		0x1a, 0x9b, 0xaa, 0x75, 0x85, 0x28, 0x92, 0xa8, 0x5a, 0xb7, 0xda, 0xfc, 0x40, 0xd5, 0x3a, 0x12,
		0x1b, 0x44, 0x82, 0x03, 0x4c, 0x74, 0x50, 0x09, 0x0f, 0x3c, 0xf1, 0x81, 0x27, 0x40, 0xd8, 0x44,
		0x08, 0x83, 0x10, 0x81, 0x10, 0x23, 0x38, 0x82, 0x94, 0x1a, 0x1c, 0x94, 0x2f, 0x65, 0x8c, 0xbb,
		0x55, 0x3e, 0x33, 0x9f, 0xfa, 0x74, 0x24, 0x50, 0x66, 0x11, 0x29, 0x03, 0x08, 0x15, 0x3a, 0xb1,
		0x32, 0x86, 0x60, 0x19, 0x43, 0xb4, 0xcc, 0x20, 0x5c, 0x58, 0xc4, 0x0b, 0x8c, 0x80, 0xa5, 0x10,
		0xc1, 0xd7, 0xa7, 0xbb, 0x1c, 0x8f, 0x47, 0x22, 0x80, 0xd6, 0xa6, 0xab, 0xf2, 0xc4, 0x54, 0xd1,
		0x9d, 0xb1, 0x84, 0xb1, 0x9f, 0xfc, 0xaa, 0x17, 0x22, 0x6c, 0x2d, 0xb3, 0xc0, 0x60, 0x81, 0xc1,
		0x02, 0x83, 0x05, 0x06, 0x0b, 0x0c, 0x16, 0x18, 0x2c, 0x30, 0x58, 0x60, 0xfc, 0x64, 0xc4, 0x9f,
		0x48, 0x15, 0x6f, 0xd7, 0x80, 0xeb, 0x8b, 0x3d, 0x40, 0xd3, 0x3b, 0x81, 0x1a, 0x52, 0x6b, 0x2d,
		0x87, 0x37, 0xfe, 0x44, 0x2a, 0x7c, 0x5d, 0xb1, 0xf3, 0x60, 0x34, 0x11, 0x98, 0xba, 0xa1, 0x8f,
		0xd6, 0x71, 0x1c, 0x06, 0xd3, 0xc9, 0x42, 0x0d, 0x39, 0x94, 0xa8, 0x42, 0xa8, 0x8f, 0x63, 0xaa,
		0x18, 0x06, 0xb1, 0xbc, 0x15, 0x90, 0xba, 0x9b, 0xc0, 0x69, 0xf8, 0xb1, 0x8b, 0x07, 0x77, 0xe6,
		0xb8, 0x78, 0xbd, 0xb6, 0x5f, 0xdf, 0xdf, 0xdd, 0xab, 0xed, 0xef, 0xd0, 0xd7, 0xe9, 0xeb, 0x2c,
		0x10, 0x80, 0xad, 0xa6, 0xda, 0x5f, 0x91, 0x2d, 0xa5, 0xda, 0xdf, 0x6a, 0xed, 0x2e, 0xcc, 0x45,
		0xd8, 0xe9, 0x56, 0x04, 0x85, 0xfe, 0xf4, 0xba, 0x11, 0xdb, 0x48, 0x1e, 0x0a, 0x35, 0xfe, 0x8a,
		0x63, 0x21, 0x35, 0xfe, 0xb2, 0xb7, 0x19, 0x6f, 0x08, 0x01, 0xe0, 0x95, 0x8c, 0xce, 0xf1, 0xd1,
		0xde, 0xc7, 0xea, 0xd6, 0xc1, 0x5c, 0xd1, 0xdc, 0x0b, 0x83, 0xc1, 0x40, 0xf6, 0x2c, 0x47, 0x0d,
		0xa5, 0x12, 0x22, 0x94, 0x6a, 0x68, 0xfd, 0xe2, 0x39, 0xbf, 0x5a, 0x27, 0x22, 0x0e, 0x65, 0xef,
		0x42, 0x39, 0x77, 0xb1, 0x50, 0x91, 0x1c, 0xab, 0x68, 0x33, 0x15, 0x37, 0xdf, 0xde, 0x3e, 0x48,
		0x05, 0xcf, 0x6b, 0xdb, 0x1b, 0x56, 0xb5, 0x5e, 0xdd, 0xb0, 0x6a, 0xd3, 0xef, 0x6a, 0xdb, 0x9b,
		0xbc, 0xed, 0xb1, 0x7a, 0xbb, 0x0d, 0x98, 0x2c, 0x60, 0xd6, 0x85, 0x8f, 0x35, 0xb8, 0x15, 0x0b,
		0xb2, 0x82, 0x59, 0xf9, 0x6d, 0x83, 0xba, 0xbc, 0x45, 0x4f, 0xd7, 0x6f, 0xd6, 0x18, 0x6d, 0x38,
		0x4d, 0xfb, 0x2b, 0x25, 0x79, 0xd7, 0x9b, 0x8b, 0x29, 0xc9, 0x9b, 0x73, 0x1a, 0x7e, 0xaf, 0xbb,
		0xf0, 0xec, 0xef, 0x0a, 0x1e, 0x90, 0x11, 0x6a, 0xbc, 0xee, 0x53, 0xe5, 0xd0, 0x69, 0x1f, 0x6e,
		0x49, 0x34, 0x74, 0xac, 0x46, 0xf7, 0xa9, 0x72, 0xe8, 0x82, 0xd3, 0x5d, 0xa8, 0x29, 0x10, 0x17,
		0xf2, 0xa1, 0xdb, 0xdb, 0x54, 0xe3, 0xcd, 0x27, 0x32, 0x53, 0x8d, 0x57, 0xaf, 0x40, 0x9d, 0x99,
		0x3b, 0x71, 0x53, 0x8d, 0x35, 0x9c, 0xce, 0x35, 0x1c, 0xbb, 0xd8, 0xef, 0x89, 0x18, 0x54, 0xe3,
		0xd5, 0x78, 0x13, 0x92, 0x42, 0xbc, 0x5a, 0x6c, 0x3b, 0x52, 0x83, 0xd7, 0xb8, 0xe0, 0xb7, 0xa4,
		0x67, 0x5b, 0xbe, 0x0d, 0x42, 0x89, 0x11, 0x02, 0x5f, 0x50, 0xe3, 0x5d, 0xb2, 0x9e, 0xba, 0xbc,
		0x59, 0x98, 0x49, 0x5d, 0xde, 0x15, 0xe2, 0x96, 0xba, 0xbc, 0xeb, 0x28, 0xc5, 0xa9, 0xcb, 0xbb,
		0xf6, 0x6a, 0x9b, 0xba, 0xbc, 0x85, 0x28, 0x97, 0xa8, 0xcb, 0xbb, 0xda, 0xfc, 0x40, 0x5d, 0x5e,
		0x12, 0x1b, 0x44, 0x82, 0x03, 0x4c, 0x74, 0x50, 0x09, 0x0f, 0x3c, 0xf1, 0x81, 0x27, 0x40, 0xd8,
		0x44, 0x08, 0x83, 0x10, 0x81, 0x10, 0x23, 0x38, 0x82, 0x94, 0x1a, 0x4c, 0xd9, 0xac, 0xdc, 0x88,
		0x13, 0x65, 0xb3, 0x48, 0xa4, 0x0c, 0x26, 0x54, 0xe8, 0xc4, 0xca, 0x18, 0x82, 0x65, 0x0c, 0xd1,
		0x32, 0x83, 0x70, 0x61, 0x11, 0x2f, 0x30, 0x02, 0x96, 0x42, 0x84, 0xb2, 0x59, 0xb9, 0xf3, 0x1b,
		0xca, 0x66, 0xad, 0xfb, 0x83, 0xb2, 0x59, 0xf9, 0x2e, 0x82, 0xb2, 0x59, 0xba, 0xc6, 0x54, 0xca,
		0x66, 0x69, 0xe0, 0xe2, 0x94, 0xcd, 0xa2, 0xaf, 0xd3, 0xd7, 0x0d, 0x2d, 0x10, 0x70, 0xad, 0xa6,
		0x6c, 0x56, 0x91, 0x2d, 0xa5, 0x6c, 0xd6, 0x6a, 0xed, 0x2e, 0xd6, 0x89, 0xf5, 0x87, 0xe3, 0xa8,
		0x14, 0xd0, 0xd2, 0xf0, 0x24, 0xfb, 0xf9, 0xe2, 0xe9, 0x50, 0x49, 0xab, 0x38, 0x16, 0x52, 0x49,
		0x2b, 0x7b, 0x9b, 0xa9, 0xa4, 0xb5, 0xca, 0x0a, 0x26, 0x4b, 0x25, 0xad, 0x9d, 0x54, 0xf2, 0xa7,
		0xb6, 0xbd, 0x51, 0xad, 0x57, 0x37, 0x6a, 0xc9, 0x97, 0x54, 0xd1, 0x5a, 0x8b, 0xdd, 0x54, 0xd1,
		0xd2, 0x81, 0x39, 0x67, 0xad, 0xa2, 0xf5, 0xba, 0x4b, 0xb1, 0x36, 0x2b, 0x98, 0x95, 0x54, 0xd0,
		0x62, 0x9a, 0x7e, 0x9f, 0x24, 0x90, 0x7f, 0x6e, 0x77, 0x5c, 0xdb, 0x73, 0xdb, 0x2d, 0x6a, 0x69,
		0xad, 0x37, 0x23, 0x53, 0x4b, 0x2b, 0xe7, 0x64, 0x9c, 0x9d, 0xe3, 0x50, 0x55, 0x6b, 0x05, 0x8f,
		0xca, 0x08, 0x55, 0xad, 0xb6, 0x1a, 0xdd, 0x5b, 0xf2, 0x65, 0x2d, 0xa0, 0xb4, 0x57, 0xb7, 0xa4,
		0x0a, 0x94, 0x04, 0x85, 0x0b, 0xb5, 0xa4, 0x08, 0xf4, 0xa0, 0x05, 0xb4, 0x43, 0x69, 0xad, 0x7c,
		0x02, 0x35, 0xa5, 0xb5, 0xf4, 0x8a, 0xdb, 0xd9, 0xfa, 0x14, 0x77, 0xdf, 0x58, 0xe1, 0xe9, 0x5c,
		0xe1, 0xb1, 0xb7, 0xfd, 0x9e, 0xb0, 0x41, 0x7d, 0x2d, 0x88, 0xdd, 0x4a, 0x2a, 0x6d, 0xe9, 0xb5,
		0x3f, 0x49, 0xc9, 0x2d, 0xe3, 0xe2, 0xe1, 0x4c, 0xb4, 0x4a, 0xf6, 0xc1, 0x54, 0xb6, 0x64, 0x9f,
		0xc2, 0x5a, 0x99, 0x98, 0x49, 0x61, 0xad, 0x15, 0x42, 0x95, 0xc2, 0x5a, 0xeb, 0x28, 0xc4, 0x29,
		0xac, 0xb5, 0xf6, 0x5a, 0x9b, 0xc2, 0x5a, 0x85, 0xa8, 0x93, 0x28, 0xac, 0xb5, 0xda, 0xfc, 0x40,
		0x61, 0x2d, 0x12, 0x1b, 0x44, 0x82, 0x03, 0x4c, 0x74, 0x50, 0x09, 0x0f, 0x3c, 0xf1, 0x81, 0x27,
		0x40, 0xd8, 0x44, 0x08, 0x83, 0x10, 0x81, 0x10, 0x23, 0x38, 0x82, 0x94, 0x1a, 0x3c, 0x1a, 0xf7,
		0x82, 0x11, 0xee, 0xbe, 0xf9, 0xcc, 0x7c, 0x0a, 0x6b, 0x91, 0x40, 0x99, 0x45, 0xa4, 0x0c, 0x20,
		0x54, 0xe8, 0xc4, 0xca, 0x18, 0x82, 0x65, 0x0c, 0xd1, 0x32, 0x83, 0x70, 0x61, 0x11, 0x2f, 0x30,
		0x02, 0x96, 0x42, 0x84, 0xc2, 0x5a, 0xb9, 0xf3, 0x1b, 0x0a, 0x6b, 0xad, 0xfb, 0x83, 0xc2, 0x5a,
		0xf9, 0x2e, 0x82, 0xc2, 0x5a, 0xba, 0xc6, 0x54, 0x0a, 0x6b, 0x69, 0xe0, 0xe2, 0x14, 0xd6, 0xa2,
		0xaf, 0xd3, 0xd7, 0x0d, 0x2d, 0x10, 0x70, 0xad, 0xfe, 0xc6, 0x42, 0x6c, 0x85, 0xee, 0x08, 0x28,
		0x1b, 0xf2, 0x6c, 0x0d, 0x78, 0x32, 0x22, 0x06, 0x55, 0x06, 0x4b, 0x32, 0x23, 0x3b, 0xdb, 0x5b,
		0x7b, 0x0b, 0x4d, 0x84, 0x07, 0xc9, 0x03, 0x4b, 0x2a, 0xab, 0x3b, 0xb9, 0xb9, 0x19, 0x87, 0xb1,
		0x35, 0x1e, 0x58, 0x9f, 0x84, 0x12, 0x61, 0x30, 0x92, 0xff, 0x23, 0xfa, 0x17, 0xea, 0x64, 0x32,
		0x8a, 0x65, 0x79, 0x71, 0x7e, 0xda, 0x6a, 0x06, 0x97, 0x62, 0x64, 0x75, 0xbf, 0xcb, 0xb8, 0x77,
		0x35, 0x15, 0x51, 0xf8, 0x74, 0x72, 0xda, 0xec, 0xfe, 0xba, 0x24, 0x9a, 0x30, 0xd5, 0x4c, 0xb8,
		0x50, 0x8f, 0x45, 0x13, 0x2c, 0x30, 0x21, 0x92, 0x67, 0xef, 0x21, 0x78, 0x0b, 0xf6, 0xa1, 0xb3,
		0x80, 0x2f, 0x54, 0xf2, 0x6c, 0x4d, 0xa6, 0x74, 0x65, 0xd3, 0x05, 0x3d, 0x11, 0x32, 0xc9, 0xd7,
		0x69, 0xc9, 0xfe, 0x68, 0xb5, 0x49, 0xec, 0x8f, 0x12, 0x02, 0x2b, 0xe1, 0x77, 0xd7, 0xe3, 0x58,
		0xe0, 0x9e, 0x82, 0x98, 0xdb, 0xcf, 0x63, 0x10, 0xeb, 0x30, 0x9b, 0xc7, 0x20, 0x72, 0x44, 0x3a,
		0x8f, 0x41, 0xe8, 0xc0, 0xbd, 0x79, 0x0c, 0x42, 0x3b, 0xa2, 0xcd, 0x63, 0x10, 0x64, 0x35, 0x2f,
		0x40, 0x84, 0xc7, 0x20, 0x72, 0xe7, 0x37, 0x3c, 0x06, 0xb1, 0xee, 0x0f, 0x1e, 0x83, 0xc8, 0x77,
		0x11, 0x3c, 0x06, 0xa1, 0x6b, 0x4c, 0xe5, 0x31, 0x08, 0x0d, 0x5c, 0x9c, 0xc7, 0x20, 0xe8, 0xeb,
		0xf4, 0x75, 0x43, 0x0b, 0x04, 0x5c, 0xab, 0x79, 0x0c, 0x62, 0x95, 0xee, 0xc8, 0x63, 0x10, 0xac,
		0x0c, 0x32, 0xa9, 0x87, 0x79, 0x0c, 0xe2, 0xed, 0xef, 0x21, 0x8f, 0x41, 0xe8, 0xbb, 0x26, 0x1e,
		0x83, 0xe0, 0x31, 0x08, 0xb2, 0x3f, 0xb2, 0x3f, 0xc3, 0xde, 0x5f, 0xca, 0x6b, 0x64, 0x1a, 0x53,
		0x39, 0x5d, 0x56, 0x6f, 0xbd, 0x66, 0xd9, 0xe7, 0x40, 0x59, 0xbd, 0x04, 0x9b, 0xdd, 0x3e, 0x87,
		0xc8, 0x16, 0xc7, 0x42, 0x0e, 0x91, 0xcd, 0xde, 0x66, 0x0e, 0xa6, 0x5b, 0x6d, 0x47, 0xe3, 0xcd,
		0xf3, 0xb5, 0xdc, 0x06, 0x67, 0xd1, 0xad, 0xb7, 0xdb, 0xc0, 0x59, 0x74, 0x39, 0x37, 0x12, 0xde,
		0xe5, 0x2b, 0x3c, 0x3b, 0xbe, 0x82, 0xa7, 0x63, 0xf0, 0xf8, 0x39, 0xd9, 0x17, 0x2a, 0x96, 0x03,
		0x29, 0xc2, 0x27, 0x53, 0xb2, 0x92, 0x1f, 0xb9, 0x50, 0x4f, 0xa7, 0x64, 0xd5, 0x39, 0x77, 0x2e,
		0x97, 0xa0, 0xcc, 0xb9, 0x73, 0x7a, 0xc5, 0xe8, 0x8c, 0x9c, 0x89, 0x0d, 0xb9, 0x22, 0x37, 0xe4,
		0x38, 0x70, 0xce, 0xe8, 0x3a, 0x98, 0x03, 0xe7, 0xb4, 0x6d, 0x60, 0x72, 0xc6, 0x5c, 0xfe, 0x2d,
		0x4b, 0xce, 0x95, 0x33, 0x2e, 0xec, 0xcd, 0xc6, 0xb4, 0x8d, 0xc6, 0x51, 0x04, 0x36, 0x59, 0x6e,
		0x6a, 0x32, 0x67, 0xcb, 0x65, 0x61, 0x26, 0x67, 0xcb, 0xad, 0x10, 0xac, 0x9c, 0x2d, 0xb7, 0x8e,
		0x62, 0x9b, 0xb3, 0xe5, 0xd6, 0x5e, 0x4f, 0x73, 0xb6, 0x5c, 0x21, 0x4a, 0x22, 0xce, 0x96, 0x5b,
		0x6d, 0x7e, 0xe0, 0x6c, 0x39, 0x12, 0x1b, 0x44, 0x82, 0x03, 0x4c, 0x74, 0x50, 0x09, 0x0f, 0x3c,
		0xf1, 0x81, 0x27, 0x40, 0xd8, 0x44, 0x08, 0x83, 0x10, 0x81, 0x10, 0x23, 0x38, 0x82, 0x94, 0x1a,
		0x1c, 0x94, 0x2f, 0x65, 0x8c, 0xbb, 0x29, 0x3e, 0x33, 0x9f, 0xa2, 0x6a, 0x24, 0x50, 0x66, 0x11,
		0x29, 0x03, 0x08, 0x15, 0x3a, 0xb1, 0x32, 0x86, 0x60, 0x19, 0x43, 0xb4, 0xcc, 0x20, 0x5c, 0x58,
		0xc4, 0x0b, 0x8c, 0x80, 0xa5, 0x10, 0xc1, 0x17, 0x55, 0xbb, 0x1c, 0x8f, 0x47, 0x22, 0x50, 0xc0,
		0xaa, 0x6a, 0xd5, 0x2a, 0xcf, 0x47, 0x15, 0xdd, 0x19, 0x81, 0xb6, 0x94, 0x5f, 0xf5, 0x44, 0x94,
		0x2d, 0x66, 0x16, 0x1a, 0x2c, 0x34, 0x58, 0x68, 0xb0, 0xd0, 0x60, 0xa1, 0xc1, 0x42, 0x83, 0x85,
		0x06, 0x0b, 0x8d, 0x9f, 0x8c, 0xf8, 0x54, 0x6f, 0xce, 0xc1, 0x74, 0xaa, 0x37, 0xe7, 0xf4, 0xc6,
		0x53, 0xbd, 0x59, 0xa3, 0x75, 0x50, 0xd1, 0x95, 0x69, 0x78, 0x05, 0x2e, 0x4e, 0xf5, 0x66, 0xfa,
		0x3a, 0x7d, 0xdd, 0xd0, 0x02, 0x01, 0xd7, 0x6a, 0xea, 0xf7, 0x15, 0xd9, 0x52, 0xea, 0xf7, 0xad,
		0xd6, 0xee, 0xc2, 0x5c, 0x7f, 0x1d, 0x8d, 0xa3, 0x88, 0x0a, 0x7e, 0x7a, 0x5d, 0x87, 0x6d, 0x8e,
		0xa3, 0x88, 0x1a, 0x7e, 0xc5, 0xb1, 0x90, 0x1a, 0x7e, 0xd9, 0xdb, 0x8c, 0x37, 0xba, 0x00, 0xf0,
		0x62, 0x46, 0xe7, 0xf8, 0x68, 0xef, 0x63, 0x75, 0x6b, 0xa1, 0x72, 0xee, 0x85, 0xc1, 0x60, 0x20,
		0x7b, 0x96, 0xa3, 0x86, 0x52, 0x09, 0x11, 0x4e, 0x45, 0xcb, 0x3d, 0xe7, 0x57, 0xeb, 0x44, 0xc4,
		0xa1, 0xec, 0x5d, 0xa8, 0x07, 0x19, 0xf4, 0x25, 0x11, 0xf3, 0xdd, 0xa9, 0x8a, 0xb9, 0x35, 0x55,
		0x2e, 0xdf, 0xde, 0xb0, 0xaa, 0xf5, 0xea, 0x86, 0x85, 0x38, 0x7c, 0xc0, 0x84, 0x3b, 0x1f, 0xa8,
		0xc3, 0x05, 0xcc, 0xba, 0xf6, 0xb1, 0x06, 0xb7, 0x62, 0x39, 0x56, 0x30, 0x2b, 0xbf, 0x6d, 0x50,
		0x77, 0xb7, 0xe8, 0xe9, 0xfa, 0xcd, 0x5a, 0xa2, 0xcd, 0x76, 0xb7, 0x4b, 0xe5, 0xdd, 0xf5, 0xa6,
		0x62, 0x2a, 0xef, 0xe6, 0x9c, 0x85, 0xdf, 0xe9, 0x2d, 0x3c, 0xff, 0xbb, 0x82, 0xe7, 0x63, 0xb0,
		0xf6, 0xee, 0x68, 0x1c, 0x45, 0x2f, 0x08, 0x85, 0x2e, 0x08, 0xdd, 0x85, 0x5a, 0x08, 0x85, 0x6e,
		0xef, 0x6e, 0x52, 0x77, 0x37, 0x97, 0x90, 0x4c, 0xdd, 0x5d, 0xbd, 0x22, 0x74, 0x06, 0x8e, 0xc4,
		0x4d, 0x34, 0x56, 0x6d, 0x3a, 0x57, 0x6d, 0xec, 0x5b, 0xbf, 0x27, 0x56, 0x50, 0x73, 0x57, 0xdf,
		0x4d, 0x47, 0xaa, 0xee, 0xea, 0xb0, 0xcd, 0x48, 0xdd, 0x5d, 0xe3, 0x42, 0xdf, 0xec, 0x86, 0x61,
		0xe2, 0xf3, 0x62, 0x7a, 0x44, 0x6e, 0x5a, 0xaa, 0x82, 0x49, 0xf0, 0x3e, 0xb5, 0x9e, 0x6a, 0xbc,
		0x59, 0x98, 0x49, 0x35, 0xde, 0x15, 0xe2, 0x96, 0x6a, 0xbc, 0xeb, 0x28, 0xc1, 0xa9, 0xc6, 0xbb,
		0xf6, 0x2a, 0x9b, 0x6a, 0xbc, 0x85, 0x28, 0x96, 0xa8, 0xc6, 0xbb, 0xda, 0xfc, 0x40, 0x35, 0x5e,
		0x12, 0x1b, 0x44, 0x82, 0x03, 0x4c, 0x74, 0x50, 0x09, 0x0f, 0x3c, 0xf1, 0x81, 0x27, 0x40, 0xd8,
		0x44, 0x08, 0x83, 0x10, 0x81, 0x10, 0x23, 0x38, 0x82, 0x94, 0x1a, 0x1c, 0x23, 0x8a, 0x49, 0xa4,
		0x69, 0x06, 0xa0, 0xef, 0xf3, 0x1a, 0x6d, 0xa2, 0x44, 0x16, 0x69, 0x94, 0xc1, 0x74, 0x0a, 0x9d,
		0x56, 0x19, 0x43, 0xaf, 0x8c, 0xa1, 0x59, 0x66, 0xd0, 0x2d, 0x2c, 0xda, 0x05, 0x46, 0xbf, 0x52,
		0x88, 0xe0, 0x4b, 0x64, 0x09, 0x35, 0xb9, 0x16, 0x61, 0x80, 0x7a, 0x8c, 0x6c, 0xd1, 0x1b, 0xaa,
		0x03, 0xda, 0xee, 0xa8, 0xc9, 0x35, 0x6e, 0xbe, 0xf2, 0xc6, 0xdd, 0x38, 0x94, 0x6a, 0x08, 0xad,
		0x47, 0x53, 0xda, 0x4a, 0x7c, 0xc0, 0xf9, 0xdd, 0xeb, 0xd8, 0xbe, 0xd7, 0xb1, 0x8f, 0x8f, 0xdd,
		0xa3, 0x12, 0xb0, 0x3c, 0x50, 0x35, 0x59, 0xcd, 0x59, 0xeb, 0xb4, 0xd3, 0xf6, 0x9c, 0x23, 0xcf,
		0x69, 0x20, 0xaf, 0xa5, 0x96, 0xac, 0xa5, 0xfb, 0xd9, 0xee, 0x60, 0x2f, 0x63, 0x7b, 0x7a, 0x58,
		0xa7, 0xe5, 0xf8, 0xed, 0x96, 0x83, 0xbc, 0x8e, 0x7a, 0xb2, 0x8e, 0xd3, 0xe6, 0x59, 0x17, 0x7d,
		0x21, 0x3b, 0x53, 0x8f, 0x6f, 0x7d, 0xb6, 0x5b, 0x47, 0x4e, 0xa3, 0x84, 0xa9, 0x0f, 0xb4, 0x81,
		0x9a, 0x32, 0x5c, 0x15, 0x63, 0xe7, 0x8b, 0x14, 0x38, 0x07, 0x16, 0xb0, 0x6a, 0xd9, 0x93, 0x8c,
		0x07, 0x2d, 0x58, 0x96, 0x06, 0xd7, 0x03, 0x6b, 0x1b, 0x78, 0x15, 0x69, 0x68, 0x3d, 0xb0, 0xea,
		0xc0, 0xcb, 0x98, 0x27, 0xec, 0x03, 0xab, 0x06, 0xbc, 0x88, 0x65, 0x06, 0x75, 0x60, 0x55, 0xa9,
		0x21, 0x47, 0x8b, 0xe1, 0x3b, 0x15, 0x4d, 0x19, 0xc5, 0x76, 0x1c, 0x87, 0x98, 0xdd, 0x8a, 0x13,
		0xa9, 0x9c, 0x91, 0xb8, 0x16, 0x0a, 0x55, 0x5e, 0xb3, 0x74, 0x12, 0xdc, 0x2d, 0xad, 0xa0, 0xfa,
		0xb1, 0x5e, 0xdf, 0xdd, 0xab, 0xd7, 0xb7, 0xf6, 0xb6, 0xf7, 0xb6, 0xf6, 0x77, 0x76, 0xaa, 0xbb,
		0x55, 0x40, 0x3a, 0x51, 0x6a, 0x87, 0x7d, 0x11, 0x8a, 0xfe, 0xe1, 0x7d, 0xe9, 0xc0, 0x52, 0x93,
		0xd1, 0x08, 0x79, 0x09, 0x67, 0x91, 0x08, 0x21, 0xf5, 0x4e, 0xd1, 0x22, 0x11, 0xa0, 0x80, 0xd7,
		0xb3, 0x35, 0xe0, 0x09, 0x7a, 0x3d, 0xfd, 0x00, 0xae, 0xc1, 0x96, 0x04, 0xbf, 0x76, 0xb6, 0xb7,
		0xf6, 0x16, 0xca, 0x44, 0x0f, 0xc2, 0x43, 0x96, 0x54, 0x56, 0x77, 0x72, 0x73, 0x33, 0x0e, 0x63,
		0x6b, 0x3c, 0xb0, 0x3e, 0x09, 0x25, 0xc2, 0x60, 0x24, 0xff, 0x47, 0xf4, 0x2f, 0xd4, 0xc9, 0x64,
		0x14, 0xcb, 0xf2, 0xe2, 0xe2, 0x93, 0x65, 0x35, 0x83, 0x4b, 0x31, 0xb2, 0xba, 0xdf, 0x65, 0xdc,
		0xbb, 0x9a, 0x6a, 0x19, 0x7d, 0x3a, 0x39, 0x6d, 0x76, 0x7f, 0x7d, 0xd0, 0x2e, 0xaa, 0x6d, 0x1d,
		0x5c, 0xa8, 0xb9, 0x78, 0x51, 0x6d, 0x7b, 0xa3, 0x5a, 0xaf, 0x6e, 0xd4, 0x92, 0x2f, 0xb1, 0xf4,
		0xc0, 0x9e, 0x13, 0x75, 0xec, 0xed, 0xd2, 0x74, 0x1d, 0x06, 0xe8, 0x85, 0x3d, 0x5b, 0x93, 0x29,
		0x3b, 0xa8, 0xe9, 0x82, 0x9e, 0xe8, 0x89, 0xe5, 0xec, 0xb5, 0x54, 0x33, 0xa7, 0xd5, 0x7f, 0xf9,
		0x41, 0x35, 0xf3, 0x22, 0x5b, 0x4a, 0x35, 0xf3, 0xd5, 0xda, 0x5d, 0x18, 0x61, 0x81, 0x27, 0xf7,
		0x86, 0x29, 0x6c, 0xae, 0x97, 0xe2, 0xc0, 0x69, 0xfa, 0x78, 0xbc, 0xfb, 0x1b, 0x41, 0x89, 0xf3,
		0xe2, 0x58, 0x48, 0x89, 0xf3, 0xec, 0x6d, 0xa6, 0x5c, 0xea, 0x6a, 0x9b, 0x1d, 0x6f, 0x16, 0x80,
		0x9c, 0x6f, 0x65, 0xb9, 0xed, 0x96, 0xef, 0x7d, 0x3d, 0x75, 0xa8, 0x9c, 0xba, 0xde, 0xa6, 0x04,
		0x95, 0x53, 0x73, 0xee, 0x37, 0x64, 0xe7, 0x38, 0x14, 0x51, 0x5d, 0xc1, 0xa3, 0x32, 0x58, 0x44,
		0xf5, 0x81, 0xff, 0xcf, 0x24, 0x1e, 0x1f, 0xcb, 0x40, 0x5e, 0xa8, 0x25, 0x1d, 0xc8, 0xd9, 0x0f,
		0xd4, 0xb6, 0x28, 0xa6, 0x9a, 0x4f, 0x94, 0xa6, 0x98, 0xaa, 0x5e, 0x41, 0x3b, 0x43, 0x87, 0x62,
		0x2f, 0xaf, 0xc8, 0xbd, 0x3c, 0x8a, 0xaa, 0x1a, 0x5d, 0x29, 0x53, 0x54, 0x15, 0xa3, 0xf7, 0x49,
		0x7d, 0x55, 0xbd, 0xba, 0x9d, 0x54, 0x5a, 0x35, 0x2e, 0x1e, 0x96, 0xae, 0x83, 0xbb, 0xf2, 0xd4,
		0xf7, 0x2e, 0x03, 0xd5, 0xff, 0x2e, 0xfb, 0xd3, 0x18, 0x03, 0xa2, 0xb3, 0xfa, 0x82, 0xed, 0x54,
		0x59, 0xcd, 0xc2, 0x4c, 0xaa, 0xac, 0xae, 0x10, 0xb5, 0x54, 0x59, 0x5d, 0x47, 0x6d, 0x4e, 0x95,
		0xd5, 0xb5, 0x97, 0xdf, 0x54, 0x59, 0x2d, 0x44, 0xf5, 0x44, 0x95, 0xd5, 0xd5, 0xe6, 0x07, 0xaa,
		0xac, 0x92, 0xd8, 0x20, 0x12, 0x1c, 0x60, 0xa2, 0x83, 0x4a, 0x78, 0xe0, 0x89, 0x0f, 0x3c, 0x01,
		0xc2, 0x26, 0x42, 0x18, 0x84, 0x08, 0x84, 0x18, 0xc1, 0x11, 0xa4, 0xd4, 0x60, 0x9c, 0xd6, 0xcf,
		0xab, 0xb9, 0x06, 0xa5, 0x03, 0xf4, 0x1a, 0x81, 0xa2, 0xde, 0x2a, 0x09, 0x95, 0xc1, 0xc4, 0x0a,
		0x9d, 0x60, 0x19, 0x43, 0xb4, 0x8c, 0x21, 0x5c, 0x66, 0x10, 0x2f, 0x2c, 0x02, 0x06, 0x46, 0xc4,
		0x52, 0x88, 0xe0, 0xeb, 0xad, 0x4a, 0x21, 0xc4, 0x60, 0x34, 0x0e, 0xe2, 0xed, 0x1a, 0xb0, 0xde,
		0xea, 0x3e, 0xa0, 0xe9, 0x4d, 0xa1, 0x86, 0x53, 0x62, 0x4c, 0xc1, 0x86, 0x35, 0xbf, 0xf3, 0x27,
		0x52, 0xe1, 0x0b, 0x0d, 0x9c, 0x07, 0xa3, 0x89, 0xc0, 0x56, 0x67, 0x9b, 0xae, 0xe3, 0x38, 0x0c,
		0xa6, 0xc7, 0x40, 0x1a, 0x72, 0x28, 0x51, 0xd5, 0x94, 0x1e, 0x47, 0x56, 0x31, 0x0c, 0x62, 0x79,
		0x2b, 0x20, 0xc5, 0x7b, 0x80, 0x93, 0xf1, 0x63, 0x17, 0x0f, 0xee, 0xe8, 0xe2, 0x74, 0x71, 0xba,
		0xb8, 0x49, 0xd5, 0x01, 0xae, 0xd5, 0xdf, 0x58, 0x85, 0xad, 0xd0, 0x1d, 0xa9, 0xe0, 0xc6, 0x82,
		0x20, 0x93, 0x62, 0x78, 0xa6, 0x05, 0xb5, 0xf3, 0x82, 0x16, 0xd4, 0x60, 0x1c, 0x5a, 0x5e, 0x18,
		0x0c, 0x06, 0xb2, 0x67, 0x39, 0x6a, 0x28, 0x95, 0x10, 0xa1, 0x54, 0xc3, 0xcd, 0x0b, 0xb5, 0xb8,
		0xe0, 0xb3, 0x7f, 0x60, 0x51, 0x95, 0x4d, 0xdb, 0x36, 0x01, 0x55, 0xd9, 0xf4, 0x5f, 0xd0, 0x73,
		0x55, 0xb6, 0xac, 0x3d, 0x91, 0x3c, 0x8d, 0x56, 0x9b, 0xc4, 0xd3, 0x78, 0x0c, 0xa4, 0x88, 0xbc,
		0x97, 0x4a, 0x6b, 0x1a, 0xdf, 0x36, 0x7c, 0x7e, 0x73, 0x88, 0x3a, 0x6b, 0xfa, 0xdc, 0x3c, 0x3c,
		0x09, 0xee, 0x92, 0x3f, 0x77, 0xb8, 0x78, 0x36, 0x54, 0x59, 0x2b, 0x8e, 0x85, 0x54, 0x59, 0xcb,
		0xde, 0x66, 0xaa, 0xac, 0xad, 0xb6, 0x21, 0xf1, 0x16, 0xb1, 0xa8, 0x13, 0xfb, 0xf7, 0x99, 0x60,
		0xd4, 0xa1, 0xdd, 0x6a, 0xfc, 0xcb, 0x6d, 0x78, 0x9f, 0xa9, 0xb1, 0xb6, 0xde, 0x16, 0x03, 0x35,
		0xd6, 0x72, 0xee, 0x1e, 0x64, 0xe5, 0x36, 0x54, 0x58, 0x5b, 0xc1, 0x83, 0x32, 0x53, 0x61, 0xed,
		0x3a, 0xb8, 0x93, 0xd7, 0x93, 0xeb, 0x99, 0x30, 0x54, 0xca, 0xfd, 0xff, 0x52, 0x12, 0x4a, 0x46,
		0x33, 0x55, 0xa8, 0x7d, 0xaa, 0xac, 0xe5, 0x13, 0xa7, 0xa9, 0xb2, 0xa6, 0x57, 0xd8, 0xce, 0xd8,
		0xa9, 0xd8, 0xcb, 0x2b, 0x72, 0x2f, 0x8f, 0x4a, 0x6b, 0x46, 0x57, 0xcb, 0x54, 0x5a, 0x43, 0xe8,
		0x7d, 0x52, 0x67, 0x4d, 0xa7, 0x6e, 0x27, 0x55, 0xd6, 0x8c, 0x8b, 0x85, 0x53, 0xa5, 0xb2, 0x50,
		0x44, 0x22, 0xbc, 0x0d, 0x2e, 0x47, 0x02, 0x5a, 0x70, 0xed, 0xf5, 0x65, 0x50, 0x7b, 0x2d, 0x0b,
		0x33, 0xa9, 0xbd, 0xb6, 0x42, 0x00, 0x53, 0x7b, 0x6d, 0x1d, 0x15, 0x3b, 0xb5, 0xd7, 0xd6, 0x5e,
		0x94, 0x53, 0x7b, 0xad, 0x10, 0xf5, 0x14, 0xb5, 0xd7, 0x56, 0x9b, 0x1f, 0xa8, 0xbd, 0x46, 0x62,
		0x83, 0x48, 0x70, 0x80, 0x89, 0x0e, 0x2a, 0xe1, 0x81, 0x27, 0x3e, 0xf0, 0x04, 0x08, 0x9b, 0x08,
		0x61, 0x10, 0x22, 0x10, 0x62, 0x04, 0x47, 0x90, 0x52, 0x83, 0xa9, 0xbd, 0x96, 0x3b, 0x81, 0xa2,
		0xf6, 0x1a, 0x09, 0x95, 0xc1, 0xc4, 0x0a, 0x9d, 0x60, 0x19, 0x43, 0xb4, 0x8c, 0x21, 0x5c, 0x66,
		0x10, 0x2f, 0x2c, 0x02, 0x06, 0x46, 0xc4, 0x52, 0x88, 0x50, 0x7b, 0x4d, 0x0f, 0x92, 0x43, 0xed,
		0xb5, 0xb5, 0x7f, 0x50, 0x7b, 0x2d, 0xdf, 0x45, 0x50, 0x98, 0x49, 0xd7, 0xc8, 0x4a, 0xed, 0x35,
		0x0d, 0x5c, 0x9c, 0xda, 0x6b, 0x74, 0x71, 0xba, 0xb8, 0x59, 0xd5, 0x01, 0xae, 0xd5, 0xd4, 0x5e,
		0x5b, 0xa5, 0x3b, 0x52, 0x7b, 0x8d, 0x05, 0x41, 0x26, 0xc5, 0xf0, 0x5b, 0x14, 0x9f, 0xba, 0xf3,
		0x4b, 0x3f, 0xd5, 0x2d, 0x8a, 0xaf, 0x69, 0xdc, 0x27, 0xa0, 0xf8, 0x9a, 0xfe, 0x0b, 0x7a, 0xaf,
		0xf8, 0xda, 0x4f, 0xb8, 0x22, 0x99, 0x1a, 0xad, 0x36, 0x89, 0xa9, 0xf1, 0x20, 0x48, 0x11, 0x99,
		0x2f, 0xd5, 0xd7, 0x34, 0xbf, 0x81, 0xf8, 0xea, 0x35, 0x22, 0x0a, 0xb1, 0x69, 0x75, 0x35, 0xb1,
		0x93, 0x3e, 0x27, 0x4a, 0xb2, 0x15, 0xd4, 0x42, 0x4a, 0xb2, 0x65, 0x6f, 0x33, 0x25, 0xd9, 0x56,
		0xdb, 0xa7, 0x78, 0xab, 0xb6, 0x54, 0xc7, 0xe9, 0x3a, 0x9d, 0x73, 0xfb, 0xb0, 0xe9, 0x50, 0x98,
		0x2d, 0xaf, 0xf6, 0x03, 0x85, 0xd9, 0x72, 0xee, 0x2c, 0x64, 0xeb, 0x3c, 0x94, 0x67, 0x5b, 0xc1,
		0xe3, 0x32, 0x5b, 0x9e, 0xed, 0xa1, 0x38, 0x78, 0x22, 0x2a, 0x75, 0xa1, 0x1e, 0xab, 0x4a, 0x59,
		0xcb, 0xa2, 0x52, 0x53, 0xb4, 0xca, 0xc8, 0xaa, 0x6e, 0x51, 0xaa, 0x2d, 0x9f, 0xc8, 0x4d, 0xa9,
		0x36, 0xbd, 0x02, 0xf9, 0x0a, 0x1d, 0x8c, 0x4d, 0xc0, 0x22, 0x37, 0x01, 0x29, 0xdb, 0x66, 0x74,
		0x45, 0x4d, 0xd9, 0x36, 0xb0, 0xa6, 0x29, 0x15, 0xdc, 0xf4, 0x6c, 0x93, 0x52, 0xcb, 0xcd, 0xb8,
		0x00, 0x59, 0xba, 0x96, 0xaa, 0x9c, 0x6a, 0x28, 0xf6, 0xc5, 0x28, 0xb8, 0x07, 0x12, 0x70, 0x7b,
		0x6e, 0x3b, 0x55, 0xdb, 0xb2, 0x30, 0x93, 0xaa, 0x6d, 0x2b, 0x44, 0x2d, 0x55, 0xdb, 0xd6, 0x51,
		0xbc, 0x53, 0xb5, 0x6d, 0xed, 0xf5, 0x39, 0x55, 0xdb, 0x0a, 0x51, 0x4e, 0x51, 0xb5, 0x6d, 0xb5,
		0xf9, 0x81, 0xaa, 0x6d, 0x24, 0x36, 0x88, 0x04, 0x07, 0x98, 0xe8, 0xa0, 0x12, 0x1e, 0x78, 0xe2,
		0x03, 0x4f, 0x80, 0xb0, 0x89, 0x10, 0x06, 0x21, 0x02, 0x21, 0x46, 0x70, 0x04, 0x29, 0x35, 0x38,
		0x28, 0x5f, 0xca, 0x18, 0x77, 0xe3, 0x7d, 0x66, 0x3e, 0xd5, 0xda, 0x48, 0xa0, 0xcc, 0x22, 0x52,
		0x06, 0x10, 0x2a, 0x74, 0x62, 0x65, 0x0c, 0xc1, 0x32, 0x86, 0x68, 0x99, 0x41, 0xb8, 0xb0, 0x88,
		0x17, 0x18, 0x01, 0x4b, 0x21, 0x82, 0xaf, 0xd6, 0x76, 0x39, 0x1e, 0x8f, 0x44, 0xa0, 0x80, 0x95,
		0xda, 0xaa, 0x55, 0x9e, 0xad, 0x2a, 0xba, 0x33, 0x4e, 0x27, 0x6d, 0x61, 0xec, 0x2d, 0xbf, 0xea,
		0x89, 0x0f, 0x4b, 0x60, 0xa1, 0xc1, 0x42, 0x83, 0x85, 0x06, 0x0b, 0x0d, 0x16, 0x1a, 0x2c, 0x34,
		0xc8, 0x6b, 0x58, 0x68, 0x18, 0x51, 0x68, 0x4c, 0xa4, 0xc2, 0x56, 0x84, 0xde, 0x03, 0x34, 0xbd,
		0x13, 0xa8, 0x21, 0xf5, 0xdf, 0x72, 0x78, 0xe3, 0x8d, 0x12, 0x84, 0xde, 0xa2, 0x5a, 0xac, 0x66,
		0x31, 0x95, 0x82, 0xd0, 0x1a, 0xb8, 0xb8, 0x51, 0x82, 0xd0, 0xb5, 0xfd, 0xfa, 0xfe, 0xee, 0x5e,
		0x6d, 0x7f, 0x87, 0xbe, 0x4e, 0x5f, 0x67, 0x81, 0x00, 0x6c, 0x35, 0xf5, 0x06, 0x0b, 0x9f, 0xab,
		0xa6, 0xf7, 0x96, 0xd0, 0xdb, 0xe1, 0xe9, 0x12, 0xd8, 0x0e, 0x5f, 0x87, 0xd9, 0x6c, 0x87, 0xe7,
		0x08, 0x76, 0xb6, 0xc3, 0xf3, 0x73, 0x57, 0xb6, 0xc3, 0x35, 0x5b, 0x08, 0xdb, 0xe1, 0xe4, 0x36,
		0x3f, 0x80, 0x08, 0xdb, 0xe1, 0xb9, 0xf3, 0x1b, 0xb6, 0xc3, 0xd7, 0xfd, 0xc1, 0x76, 0x78, 0xbe,
		0x8b, 0x60, 0x3b, 0x5c, 0xd7, 0x98, 0xca, 0x76, 0xb8, 0x06, 0x2e, 0xce, 0x76, 0x38, 0x7d, 0x9d,
		0xbe, 0x6e, 0x68, 0x81, 0x80, 0x6b, 0x35, 0xdb, 0xe1, 0x45, 0xb6, 0x94, 0xe3, 0x77, 0x56, 0x6b,
		0x77, 0x21, 0x94, 0x24, 0x9f, 0x89, 0xc0, 0x71, 0xe6, 0x8e, 0x46, 0x62, 0x92, 0x52, 0x9d, 0x04,
		0x77, 0xc9, 0x5f, 0x6c, 0x24, 0x8f, 0x86, 0x83, 0x76, 0x8a, 0x63, 0x21, 0x07, 0xed, 0x64, 0x6f,
		0x33, 0xde, 0xd4, 0x60, 0x40, 0xdd, 0xa2, 0xce, 0xf1, 0xd1, 0xde, 0xc7, 0xea, 0xd6, 0x62, 0x14,
		0xe9, 0x0b, 0xb3, 0x47, 0xad, 0x5f, 0x3c, 0xe7, 0x57, 0xeb, 0x44, 0xc4, 0xa1, 0xec, 0x5d, 0xa8,
		0x87, 0x59, 0xa5, 0x9b, 0xa9, 0xb8, 0xfc, 0x76, 0x3d, 0x1d, 0x49, 0x6a, 0xd5, 0xb6, 0x37, 0xac,
		0x6a, 0xbd, 0xba, 0x61, 0xd5, 0xa6, 0xdf, 0x61, 0x4d, 0x08, 0x36, 0x41, 0x12, 0x09, 0x75, 0x02,
		0xb0, 0x59, 0xaa, 0x48, 0x6b, 0x70, 0x2b, 0x96, 0x67, 0x05, 0xb3, 0xf2, 0xdb, 0x06, 0x87, 0xe3,
		0x15, 0x3d, 0x5d, 0xbf, 0x69, 0xbe, 0x97, 0xdb, 0x9a, 0xce, 0xf8, 0x6a, 0xba, 0xad, 0x2f, 0x7e,
		0xc3, 0x69, 0xda, 0x5f, 0x39, 0x16, 0x6f, 0xbd, 0x39, 0x99, 0x63, 0xf1, 0x72, 0x4e, 0xc7, 0x59,
		0xb9, 0x0d, 0x4f, 0x08, 0xaf, 0xe0, 0x41, 0x19, 0x3a, 0x10, 0x4f, 0xaa, 0xca, 0x75, 0x70, 0x37,
		0x1b, 0xd2, 0x35, 0x6d, 0xd5, 0x59, 0xcf, 0xe7, 0x73, 0x5d, 0xa8, 0x05, 0xd9, 0x93, 0xd1, 0x6c,
		0x46, 0xd7, 0x76, 0x9d, 0x13, 0xf0, 0xf2, 0x09, 0xd2, 0x9c, 0x80, 0xa7, 0x57, 0xcc, 0xce, 0xd2,
		0xa3, 0xb8, 0xf1, 0xc6, 0xca, 0x4e, 0xe7, 0xca, 0x8e, 0xbd, 0xed, 0xf7, 0x04, 0x0d, 0x8e, 0xbc,
		0x03, 0xd8, 0xa8, 0xe4, 0x9c, 0x3b, 0x8d, 0xb6, 0x26, 0x39, 0xdc, 0xce, 0xb8, 0x50, 0x58, 0x0a,
		0x45, 0x24, 0xfb, 0x93, 0x60, 0xb4, 0x34, 0x5a, 0x12, 0x66, 0xb8, 0xdd, 0x0b, 0xb6, 0x73, 0xb8,
		0x5d, 0x16, 0x66, 0x72, 0xb8, 0xdd, 0x0a, 0x51, 0xcb, 0xe1, 0x76, 0xeb, 0xa8, 0xcb, 0x39, 0xdc,
		0x6e, 0xed, 0xa5, 0x37, 0x87, 0xdb, 0x15, 0xa2, 0x70, 0xe2, 0x70, 0xbb, 0xd5, 0xe6, 0x07, 0x0e,
		0xb7, 0x23, 0xb1, 0x41, 0x24, 0x38, 0xc0, 0x44, 0x07, 0x95, 0xf0, 0xc0, 0x13, 0x1f, 0x78, 0x02,
		0x84, 0x4d, 0x84, 0x30, 0x08, 0x11, 0x08, 0x31, 0x82, 0x23, 0x48, 0xa9, 0xc1, 0x38, 0xad, 0x9f,
		0x57, 0x73, 0x0d, 0x4a, 0x07, 0xe8, 0x35, 0x02, 0x45, 0xb1, 0x2d, 0x12, 0x2a, 0x83, 0x89, 0x15,
		0x3a, 0xc1, 0x32, 0x86, 0x68, 0x19, 0x43, 0xb8, 0xcc, 0x20, 0x5e, 0x58, 0x04, 0x0c, 0x8c, 0x88,
		0xa5, 0x10, 0xc1, 0x17, 0xdb, 0x92, 0x42, 0x88, 0xc1, 0x68, 0x1c, 0x60, 0x2b, 0x6e, 0xed, 0x03,
		0x9a, 0xde, 0x14, 0x6a, 0x38, 0x25, 0xc6, 0x94, 0xdc, 0x5a, 0xf3, 0x3b, 0x6f, 0x94, 0xe4, 0x56,
		0x9d, 0x32, 0x3c, 0x9a, 0x45, 0x56, 0x4a, 0x6e, 0x69, 0xe0, 0xe2, 0x46, 0x49, 0x6e, 0xd1, 0xc5,
		0xe9, 0xe2, 0xac, 0x0e, 0x80, 0xad, 0xa6, 0xd2, 0x56, 0x91, 0x2d, 0xa5, 0xd2, 0xd6, 0x6a, 0xed,
		0x2e, 0xc2, 0x01, 0xf6, 0xe7, 0x27, 0x52, 0xa9, 0xb4, 0xa5, 0xcf, 0x71, 0xf6, 0xce, 0xfc, 0xe9,
		0x1c, 0x2e, 0x1e, 0x0e, 0xb5, 0xb6, 0x8a, 0x63, 0x21, 0xb5, 0xb6, 0xb2, 0xb7, 0x99, 0x5a, 0x5b,
		0xab, 0x2c, 0x5f, 0xb2, 0xd4, 0xda, 0xda, 0xa3, 0xd6, 0x56, 0xbe, 0x76, 0x53, 0x6b, 0x4b, 0x07,
		0xea, 0x9c, 0xb5, 0xd6, 0xd6, 0x1e, 0xb5, 0xb6, 0x68, 0xe5, 0x52, 0x03, 0x81, 0x5a, 0x5b, 0x85,
		0x4f, 0xd7, 0x6f, 0x11, 0x0d, 0xea, 0x38, 0x5d, 0xb7, 0x71, 0x66, 0x37, 0xfd, 0x43, 0xbb, 0xd5,
		0xf8, 0x97, 0xdb, 0xf0, 0x3e, 0x53, 0x6b, 0x6b, 0xbd, 0x39, 0x99, 0x5a, 0x5b, 0x39, 0xa7, 0xe3,
		0xac, 0xdc, 0x86, 0x5a, 0x5b, 0x2b, 0x78, 0x50, 0x66, 0x6a, 0x6d, 0x85, 0x22, 0xea, 0xcb, 0x49,
		0x30, 0xb2, 0xd2, 0x66, 0xdd, 0xcf, 0x29, 0x03, 0xed, 0x51, 0x6b, 0x2b, 0x9f, 0x20, 0x4d, 0xad,
		0x2d, 0xbd, 0x62, 0x76, 0x96, 0x1e, 0xc5, 0xad, 0x37, 0x56, 0x76, 0x3a, 0x57, 0x76, 0xec, 0x6d,
		0xbf, 0x27, 0x68, 0x50, 0x6b, 0x0b, 0x60, 0xab, 0x92, 0x5a, 0x5b, 0x5a, 0x6d, 0x4e, 0x52, 0x6d,
		0xcb, 0xb8, 0x60, 0x08, 0x22, 0x49, 0x01, 0x25, 0x45, 0x41, 0x4d, 0xad, 0x8c, 0x0d, 0xa5, 0xa6,
		0x16, 0x6b, 0xf1, 0x97, 0xeb, 0x6f, 0x6a, 0x6a, 0xad, 0xbd, 0xc4, 0xa6, 0xa6, 0x56, 0x21, 0x0a,
		0x24, 0x18, 0x4d, 0xad, 0x18, 0xe9, 0x2a, 0x65, 0x9a, 0x1e, 0xa6, 0x56, 0x63, 0x29, 0x6a, 0x6d,
		0x51, 0x51, 0xab, 0xf0, 0xf4, 0x06, 0x98, 0xe6, 0xa0, 0xd2, 0x1d, 0x78, 0xda, 0x03, 0x4f, 0x7f,
		0xb0, 0x69, 0x10, 0x06, 0x1d, 0x02, 0xa1, 0x45, 0x29, 0x14, 0xe0, 0x04, 0x1c, 0x1e, 0x84, 0x1b,
		0xfa, 0x42, 0xc5, 0x32, 0xbe, 0x0f, 0xc5, 0x00, 0x29, 0x6a, 0x2f, 0x7a, 0x2a, 0x3b, 0x40, 0x36,
		0xbb, 0xf3, 0xb7, 0xfa, 0x30, 0x88, 0x04, 0xee, 0x29, 0x05, 0xb7, 0xeb, 0x76, 0xfd, 0xee, 0xd9,
		0xa1, 0xd7, 0x3c, 0xf7, 0xbd, 0xaf, 0xa7, 0x0e, 0x5a, 0xda, 0x99, 0xde, 0x86, 0x8e, 0x20, 0xf5,
		0x32, 0x40, 0x25, 0xa9, 0x52, 0xe4, 0x9c, 0x3e, 0x3e, 0x1d, 0xe5, 0x9e, 0x9e, 0xd7, 0xfd, 0x4e,
		0xfb, 0xcc, 0x73, 0x3a, 0xbe, 0xdb, 0x00, 0xd4, 0x44, 0xda, 0x20, 0x82, 0x72, 0x47, 0xd0, 0x2e,
		0x11, 0x44, 0x04, 0xbd, 0x1d, 0x41, 0xa7, 0x1d, 0xe7, 0xd8, 0xfd, 0xdd, 0x3f, 0x6e, 0xda, 0x9f,
		0xba, 0xc4, 0x0f, 0xf1, 0xf3, 0x46, 0xfc, 0x74, 0x19, 0x7d, 0x88, 0x9e, 0xbf, 0x8f, 0x9e, 0x19,
		0x8d, 0xee, 0x22, 0xf2, 0x68, 0x13, 0xf8, 0x34, 0x36, 0xaa, 0x8c, 0xe7, 0xd7, 0xc0, 0x71, 0xca,
		0x7c, 0x64, 0xed, 0x12, 0x59, 0x44, 0x16, 0xf9, 0x38, 0x71, 0x45, 0x9e, 0x4e, 0x54, 0x15, 0x15,
		0x55, 0x9e, 0xfd, 0x89, 0x70, 0x22, 0x9c, 0x32, 0x84, 0xd3, 0x6e, 0xbd, 0x44, 0x15, 0xd0, 0xb5,
		0x7e, 0x7c, 0x63, 0xdf, 0x86, 0x0e, 0x5b, 0x84, 0xb8, 0x4f, 0xd8, 0x30, 0xbe, 0x13, 0x38, 0x18,
		0xc0, 0x79, 0xa2, 0x23, 0x62, 0x37, 0xfe, 0xe9, 0x37, 0xed, 0x16, 0xb7, 0x19, 0x08, 0x9f, 0xb7,
		0xc2, 0x87, 0xd0, 0x21, 0x74, 0xde, 0x04, 0x9d, 0x13, 0xb7, 0xe5, 0x7f, 0xea, 0xb4, 0xcf, 0x4e,
		0x09, 0x1f, 0xc2, 0xe7, 0x6f, 0xc3, 0xe7, 0xdc, 0x76, 0x9b, 0xf6, 0x61, 0xd3, 0x79, 0x50, 0xc0,
		0x22, 0x8c, 0x08, 0xa3, 0xbf, 0x0b, 0xa3, 0x14, 0x3c, 0xfe, 0x51, 0xbb, 0xd5, 0xf5, 0x3a, 0xb6,
		0xdb, 0xf2, 0x78, 0x5c, 0x87, 0x40, 0xfa, 0xdb, 0x40, 0x72, 0x7e, 0xf7, 0x9c, 0x56, 0xc3, 0x69,
		0x30, 0xaf, 0x11, 0x47, 0xef, 0xc1, 0xd1, 0xf4, 0x68, 0x85, 0xdb, 0xf2, 0x9c, 0xce, 0xb1, 0x7d,
		0xe4, 0xf8, 0x76, 0xa3, 0xd1, 0x71, 0xba, 0x8c, 0x48, 0x44, 0xd2, 0xdb, 0x90, 0xd4, 0x72, 0xdc,
		0x4f, 0x9f, 0x0f, 0xdb, 0x1d, 0x02, 0x89, 0x40, 0x7a, 0x07, 0x90, 0x76, 0x19, 0x92, 0x88, 0xa4,
		0x8c, 0x90, 0xc4, 0x90, 0x44, 0x20, 0xbd, 0x17, 0x48, 0x4d, 0xb7, 0xf5, 0xc5, 0xb7, 0x3d, 0xaf,
		0xe3, 0x1e, 0x9e, 0x79, 0x0e, 0x21, 0x44, 0x08, 0xbd, 0x0d, 0x42, 0x0d, 0xa7, 0x69, 0x7f, 0x25,
		0x7a, 0x88, 0x9e, 0xb7, 0xa3, 0xc7, 0x3f, 0xb7, 0x3b, 0xae, 0xed, 0xb9, 0xed, 0x16, 0x71, 0x44,
		0x1c, 0xbd, 0x09, 0x47, 0xdc, 0x40, 0x23, 0x74, 0xde, 0x08, 0x9d, 0x66, 0x9b, 0x04, 0x9a, 0xe0,
		0x79, 0x23, 0x78, 0x4e, 0x3b, 0x6d, 0xcf, 0x39, 0x4a, 0x52, 0xd7, 0xec, 0x9e, 0x20, 0x71, 0x44,
		0x1c, 0xfd, 0x4d, 0x1c, 0x9d, 0xd8, 0xbf, 0xcf, 0xb0, 0xc4, 0x5d, 0x58, 0xa2, 0xe8, 0x5d, 0x28,
		0xea, 0x38, 0x5d, 0xa7, 0x73, 0xce, 0x1d, 0x7d, 0x62, 0xe9, 0x9d, 0x58, 0x72, 0x5b, 0x0f, 0x51,
		0x89, 0xf5, 0x3d, 0x51, 0xf4, 0x26, 0x14, 0x3d, 0x9f, 0xaf, 0x47, 0x14, 0x11, 0x45, 0x7f, 0x17,
		0x45, 0x54, 0xe1, 0x20, 0xaa, 0x56, 0x87, 0x2e, 0xe8, 0xb3, 0xfb, 0xc0, 0x41, 0xaa, 0x00, 0xb0,
		0x22, 0xa4, 0x08, 0xa9, 0x4c, 0x21, 0x05, 0x7c, 0x26, 0x92, 0xb0, 0xd2, 0x16, 0x56, 0x26, 0xdc,
		0x01, 0x20, 0xbc, 0x74, 0x85, 0x97, 0x21, 0x77, 0x03, 0x08, 0x30, 0x5d, 0x01, 0x66, 0xc6, 0x9d,
		0x01, 0xe2, 0x4b, 0x57, 0x7c, 0x99, 0x72, 0x97, 0x80, 0x08, 0xd3, 0x1a, 0x61, 0xf8, 0x07, 0x7a,
		0x09, 0x30, 0x8d, 0x01, 0xb6, 0xcb, 0x10, 0x46, 0x84, 0xad, 0x18, 0x61, 0x0c, 0x61, 0x04, 0xd8,
		0xaa, 0x00, 0x06, 0x7f, 0x57, 0x81, 0xd0, 0xd2, 0x1a, 0x5a, 0xa0, 0x67, 0x1c, 0x88, 0x2a, 0xfd,
		0x51, 0x85, 0x7c, 0xb7, 0x81, 0xf8, 0xd2, 0x1a, 0x5f, 0xdc, 0x60, 0x24, 0xa4, 0x32, 0x86, 0x14,
		0xe6, 0x5d, 0x08, 0x82, 0x4a, 0x6b, 0x50, 0xc1, 0xdf, 0x91, 0x20, 0xbe, 0x74, 0xc5, 0x97, 0x09,
		0x77, 0x27, 0x88, 0x2e, 0x9d, 0xd1, 0x65, 0xc6, 0x9d, 0x0a, 0x62, 0x4c, 0x5b, 0x8c, 0x19, 0x70,
		0xd7, 0x82, 0xe8, 0xd2, 0x15, 0x5d, 0x26, 0xdc, 0xc1, 0x20, 0xba, 0x74, 0x45, 0x97, 0xe7, 0xf8,
		0x0d, 0xe7, 0xd8, 0x3e, 0x6b, 0x7a, 0xfe, 0x89, 0xe3, 0x75, 0xdc, 0x23, 0x82, 0x8b, 0xe0, 0xca,
		0x0a, 0x5c, 0x67, 0xad, 0xf4, 0xc8, 0xa0, 0xd3, 0xf0, 0x9b, 0x5d, 0x1e, 0xeb, 0x22, 0xb8, 0x32,
		0x04, 0xd7, 0x8c, 0xd7, 0x3b, 0x0d, 0x66, 0x46, 0xe2, 0x6b, 0x05, 0xf8, 0xf2, 0xdc, 0xa6, 0xfb,
		0x6f, 0x43, 0xd0, 0xc5, 0xc9, 0x71, 0xf4, 0x62, 0x93, 0xbc, 0xd7, 0x64, 0x3e, 0x4b, 0x10, 0x91,
		0xb7, 0x12, 0x44, 0xe4, 0xa7, 0xc4, 0x11, 0x71, 0x64, 0x08, 0x0f, 0x25, 0x8a, 0xd6, 0x8d, 0xa2,
		0x4e, 0xfb, 0xcc, 0x73, 0x3a, 0xfe, 0x91, 0x7d, 0x9a, 0xaa, 0xb0, 0x74, 0x7c, 0xbb, 0xf9, 0xa9,
		0xdd, 0x71, 0xbd, 0xcf, 0x27, 0x44, 0x10, 0x11, 0xf4, 0x26, 0x04, 0x3d, 0x7c, 0x47, 0x08, 0x11,
		0x42, 0x6f, 0x80, 0x10, 0xa5, 0xa0, 0x88, 0x2b, 0x26, 0x39, 0xf3, 0x22, 0x55, 0x11, 0x90, 0x85,
		0x9c, 0xfc, 0x52, 0x68, 0xb1, 0x13, 0xcc, 0xf7, 0x19, 0xf8, 0xfd, 0xc5, 0x78, 0x5f, 0xf5, 0xb7,
		0x52, 0x6f, 0x0b, 0x35, 0x4f, 0x80, 0x25, 0x5b, 0xa9, 0x71, 0x1c, 0xc4, 0x72, 0xac, 0x4a, 0x07,
		0x00, 0x29, 0xaf, 0x14, 0xf5, 0xae, 0xc4, 0x75, 0x70, 0x13, 0xc4, 0x57, 0x49, 0x72, 0xab, 0x8c,
		0x6f, 0x84, 0xea, 0x8d, 0xd5, 0x40, 0x0e, 0xcb, 0x4a, 0xc4, 0xdf, 0xc7, 0xe1, 0x1f, 0x65, 0xa9,
		0xa2, 0x38, 0x50, 0x3d, 0x51, 0x79, 0xfa, 0x42, 0xf4, 0xec, 0x95, 0xca, 0x4d, 0x38, 0x8e, 0xc7,
		0xbd, 0xf1, 0x28, 0x4a, 0xbf, 0xaa, 0xc8, 0x48, 0x46, 0x95, 0x91, 0xb8, 0x15, 0xa3, 0xf9, 0xa7,
		0xca, 0x48, 0xaa, 0x3f, 0xca, 0x51, 0x1c, 0xc4, 0xa2, 0xdc, 0x0f, 0xe2, 0xe0, 0x32, 0x88, 0x44,
		0x65, 0x14, 0xdd, 0x54, 0xe2, 0xd1, 0x6d, 0x94, 0xfc, 0x53, 0xb9, 0x8e, 0xcb, 0xc9, 0x6f, 0x95,
		0x95, 0x90, 0xc3, 0xab, 0xcb, 0x71, 0x58, 0x0e, 0xe2, 0x38, 0x94, 0x97, 0x93, 0x38, 0xb1, 0x61,
		0xf6, 0x52, 0x94, 0x7e, 0x55, 0x79, 0x30, 0x27, 0x35, 0x23, 0x9a, 0x5c, 0x4e, 0xff, 0x67, 0xb3,
		0xcf, 0x95, 0xe9, 0xdf, 0x02, 0xa8, 0x29, 0x4a, 0x51, 0x1c, 0x4e, 0x7a, 0xb1, 0x9a, 0x33, 0x8d,
		0x76, 0xfa, 0x2c, 0x5a, 0xb3, 0xf7, 0xd9, 0x9d, 0xaf, 0xcf, 0x7f, 0xf2, 0x7d, 0xf4, 0xf4, 0x05,
		0xff, 0x74, 0xf1, 0x1c, 0xd2, 0xaf, 0x7c, 0x37, 0x92, 0x91, 0xdf, 0x9c, 0x3e, 0x87, 0xd9, 0x27,
		0xbf, 0x29, 0xd5, 0x1f, 0xdd, 0xe4, 0xad, 0x69, 0xcc, 0x9f, 0x82, 0xdf, 0x8c, 0x6e, 0x7c, 0x6f,
		0x74, 0x1b, 0x25, 0xff, 0xf8, 0x27, 0x71, 0xf2, 0x2b, 0xad, 0xf9, 0xdb, 0x6c, 0x2f, 0x1e, 0x81,
		0xbf, 0x78, 0x25, 0x4a, 0xbf, 0xf2, 0x1f, 0x0c, 0x49, 0x2d, 0xe8, 0xce, 0x1e, 0xc1, 0xfc, 0xb3,
		0x3f, 0xfd, 0x3b, 0x7a, 0x73, 0x23, 0x7d, 0xe3, 0x9e, 0xc6, 0x31, 0xaf, 0x94, 0x38, 0xb1, 0x18,
		0x04, 0x93, 0x51, 0x5c, 0xbe, 0x16, 0x71, 0x28, 0x7b, 0xda, 0x87, 0xbd, 0x94, 0xc9, 0x3f, 0x37,
		0x5d, 0xf3, 0xdc, 0xf2, 0x45, 0xaa, 0x7e, 0xe9, 0xc0, 0xaa, 0x6a, 0x6e, 0xe6, 0xd1, 0x34, 0x66,
		0x95, 0x0e, 0xac, 0x2d, 0xcd, 0x0d, 0x3d, 0x0d, 0xc5, 0x40, 0xde, 0x61, 0xe4, 0xe9, 0x05, 0x68,
		0xc7, 0xbd, 0x69, 0x6e, 0x44, 0xc8, 0x66, 0xdd, 0xf1, 0x24, 0xec, 0x09, 0x88, 0xb7, 0x77, 0xe6,
		0x5e, 0xe2, 0xfe, 0xfb, 0x38, 0x4c, 0x3c, 0xac, 0x74, 0x33, 0x43, 0x06, 0x46, 0xb3, 0xa5, 0xf4,
		0x39, 0x88, 0xec, 0x70, 0x38, 0xb9, 0x16, 0x2a, 0x2e, 0x1d, 0x58, 0x71, 0x38, 0x11, 0x20, 0x86,
		0x2f, 0x59, 0x9d, 0x02, 0x9b, 0xf5, 0x91, 0xd1, 0xf5, 0x51, 0x43, 0x86, 0x20, 0x85, 0xd1, 0x94,
		0xb1, 0xc2, 0x04, 0xaf, 0x45, 0x7e, 0x40, 0xa9, 0x75, 0x80, 0x08, 0x0d, 0x1c, 0xb1, 0x41, 0x24,
		0x38, 0xc0, 0x44, 0x07, 0x95, 0xf0, 0xc0, 0x13, 0x1f, 0x78, 0x02, 0x84, 0x4d, 0x84, 0x30, 0x08,
		0x11, 0x08, 0x31, 0x82, 0x23, 0x48, 0xa9, 0xc1, 0x20, 0x6d, 0x9f, 0x57, 0x13, 0x0d, 0x44, 0xef,
		0xe7, 0x35, 0xea, 0xb4, 0x05, 0x66, 0x36, 0x1a, 0x85, 0x42, 0xa6, 0x52, 0x06, 0x50, 0x2a, 0x74,
		0x6a, 0x65, 0x0c, 0xc5, 0x32, 0x86, 0x6a, 0x99, 0x41, 0xb9, 0xb0, 0xa8, 0x17, 0x18, 0x05, 0x4b,
		0x21, 0xe2, 0xdd, 0xdf, 0x08, 0xec, 0x88, 0x3f, 0x91, 0x2a, 0xde, 0xae, 0x21, 0x06, 0xfc, 0x39,
		0xbf, 0xd9, 0x03, 0x34, 0xbd, 0x13, 0xa8, 0xa1, 0x80, 0x3d, 0x04, 0x8c, 0x7b, 0x4c, 0xb3, 0x74,
		0x22, 0x15, 0x2c, 0x43, 0x48, 0x17, 0x31, 0x3d, 0x43, 0x8e, 0x47, 0x90, 0x9f, 0xad, 0xe3, 0x38,
		0x0c, 0x7a, 0xb1, 0x1c, 0xab, 0x86, 0x1c, 0xca, 0x38, 0x32, 0x60, 0x41, 0x2d, 0x31, 0x0c, 0x62,
		0x79, 0x9b, 0x3c, 0x9b, 0x41, 0x30, 0x8a, 0x04, 0xcf, 0x90, 0xe7, 0xe1, 0xe2, 0xc1, 0x9d, 0x39,
		0x2e, 0x5e, 0xaf, 0xed, 0xd7, 0xf7, 0x77, 0xf7, 0x6a, 0xfb, 0x3b, 0xf4, 0x75, 0xfa, 0x3a, 0x0b,
		0x04, 0x60, 0xab, 0xbf, 0xb1, 0x10, 0x5b, 0xa1, 0x3b, 0x8a, 0xbb, 0x38, 0x0c, 0xca, 0x13, 0x15,
		0xc5, 0xc1, 0xe5, 0x08, 0xb4, 0x24, 0x0b, 0xc5, 0x40, 0x84, 0x42, 0xf5, 0x58, 0x19, 0xe4, 0x58,
		0x0f, 0x77, 0x8e, 0x8f, 0x76, 0xb6, 0xb7, 0x76, 0x0e, 0x2c, 0xb7, 0x5b, 0x76, 0xbb, 0x96, 0x73,
		0x17, 0x0b, 0x15, 0xc9, 0xb1, 0x8a, 0xac, 0xc1, 0x38, 0xb4, 0xbc, 0x30, 0x18, 0x0c, 0x64, 0xcf,
		0x72, 0xd4, 0x50, 0x2a, 0x21, 0x42, 0xa9, 0x86, 0x9b, 0x17, 0x2a, 0x9a, 0x5c, 0x96, 0xbd, 0xe6,
		0xb9, 0x55, 0xfd, 0x78, 0x60, 0x25, 0x9f, 0x6b, 0xb5, 0x8d, 0xda, 0xf6, 0x46, 0xb5, 0x5e, 0xdd,
		0xa8, 0x25, 0x5f, 0xd6, 0xb6, 0x37, 0x4b, 0xc0, 0x84, 0x0a, 0xbc, 0xb1, 0xfa, 0xd0, 0x2f, 0x78,
		0x68, 0xb0, 0x3e, 0x78, 0x1a, 0x38, 0x0b, 0x31, 0xa5, 0xd7, 0x9a, 0x2e, 0x68, 0xb9, 0xe7, 0xba,
		0x22, 0x57, 0x24, 0x53, 0xa3, 0xd5, 0x26, 0x31, 0x35, 0x9e, 0x02, 0x29, 0x22, 0xf3, 0x45, 0xbb,
		0x46, 0x98, 0xda, 0x5d, 0x84, 0xeb, 0x84, 0xcf, 0xee, 0x0d, 0x55, 0x90, 0x0e, 0xdd, 0x5a, 0x66,
		0x5f, 0x34, 0xf4, 0x44, 0x63, 0xf6, 0x6c, 0x4e, 0xa6, 0x8f, 0x06, 0xe1, 0xe2, 0x21, 0x4e, 0x04,
		0xe5, 0xd5, 0x87, 0x82, 0x75, 0x31, 0x4a, 0xdf, 0xaf, 0x84, 0x82, 0x69, 0x58, 0x00, 0x9e, 0x72,
		0xdf, 0xdc, 0x9c, 0x25, 0x8f, 0x4a, 0x7c, 0x7f, 0x23, 0xac, 0xdf, 0xac, 0x0f, 0xf3, 0xa3, 0x28,
		0xe5, 0x51, 0xd4, 0xbf, 0x2c, 0x27, 0x2f, 0x46, 0x07, 0x3f, 0x14, 0x32, 0xfe, 0xc0, 0x43, 0xf2,
		0x6b, 0x6d, 0x30, 0x4c, 0x9d, 0x82, 0x47, 0xe4, 0xf3, 0xeb, 0x1d, 0x64, 0xe4, 0x35, 0x38, 0xb5,
		0x15, 0x90, 0x7f, 0x37, 0x44, 0xd4, 0x0b, 0xe5, 0x0d, 0x5c, 0xe9, 0xf2, 0x28, 0x2c, 0xb7, 0xd5,
		0xe8, 0xde, 0x92, 0xaa, 0x37, 0x9a, 0xf4, 0x85, 0x15, 0x5f, 0x09, 0x6b, 0x4e, 0xf8, 0xad, 0x78,
		0xde, 0x97, 0x12, 0x0f, 0x7d, 0x29, 0x6b, 0x56, 0x04, 0x5c, 0x24, 0x14, 0x3a, 0x0e, 0xa4, 0x12,
		0xa1, 0x95, 0x04, 0x88, 0xe9, 0xaf, 0x2d, 0x1a, 0x56, 0x53, 0x9c, 0xca, 0xc8, 0xaa, 0x7e, 0x44,
		0x6b, 0x16, 0x23, 0x37, 0x88, 0x97, 0x63, 0x76, 0x7f, 0x09, 0x96, 0x80, 0x67, 0xca, 0x4c, 0x68,
		0x05, 0x3f, 0x0a, 0xe1, 0xab, 0xf4, 0x30, 0x76, 0xf8, 0x8a, 0xdc, 0xe1, 0xd3, 0xde, 0xca, 0x6f,
		0xac, 0xa2, 0xdf, 0x13, 0x44, 0x28, 0xb0, 0xa6, 0x7f, 0x47, 0x94, 0x62, 0x6b, 0x1a, 0xf5, 0x40,
		0x29, 0xbb, 0x66, 0x5c, 0x24, 0x2c, 0xc5, 0x08, 0x57, 0x53, 0x1e, 0x94, 0xd6, 0x12, 0x6b, 0x31,
		0xc4, 0xd5, 0xb6, 0x28, 0xae, 0x96, 0x8d, 0xa1, 0x14, 0x57, 0x63, 0x59, 0xfe, 0x72, 0x29, 0x4e,
		0x71, 0xb5, 0xb5, 0x57, 0xdb, 0x14, 0x57, 0x2b, 0x44, 0x6d, 0x04, 0x73, 0x61, 0x35, 0x8d, 0xb8,
		0x23, 0x11, 0x0c, 0x42, 0x31, 0x40, 0x88, 0xb8, 0x0b, 0xb1, 0x32, 0x80, 0x2b, 0xa9, 0xa5, 0xd3,
		0x79, 0xb9, 0xf9, 0x68, 0xa3, 0x84, 0x75, 0x80, 0x79, 0x75, 0xc0, 0x24, 0x29, 0x5a, 0xa3, 0x38,
		0x0c, 0xa4, 0x12, 0xfd, 0xf2, 0x28, 0xba, 0xc1, 0x29, 0x0a, 0x9e, 0x9b, 0x4e, 0xf9, 0x65, 0x56,
		0x08, 0xac, 0x10, 0x58, 0x21, 0xb0, 0x42, 0x60, 0x85, 0xc0, 0x0a, 0x61, 0x25, 0x8f, 0x9c, 0xf2,
		0xcb, 0xab, 0xcd, 0x0f, 0x94, 0x5f, 0x26, 0xb1, 0x41, 0x24, 0x38, 0xc0, 0x44, 0x07, 0x95, 0xf0,
		0xc0, 0x13, 0x1f, 0x78, 0x02, 0x84, 0x4d, 0x84, 0x30, 0x08, 0x11, 0x08, 0x31, 0x82, 0x23, 0x48,
		0xa9, 0xc1, 0xbd, 0xf1, 0x64, 0x0a, 0x5c, 0xd0, 0x93, 0xb6, 0x33, 0xf3, 0x29, 0xbe, 0x4c, 0x02,
		0x65, 0x16, 0x91, 0x32, 0x80, 0x50, 0xa1, 0x13, 0x2b, 0x63, 0x08, 0x96, 0x31, 0x44, 0xcb, 0x0c,
		0xc2, 0x85, 0x45, 0xbc, 0xc0, 0x08, 0x58, 0x0a, 0x11, 0x33, 0xc4, 0x97, 0xab, 0xbb, 0xc0, 0xe2,
		0xcb, 0xbb, 0x14, 0x5f, 0x5e, 0xf3, 0x07, 0xc5, 0x97, 0xf3, 0x5d, 0x04, 0xc5, 0x97, 0x75, 0x8d,
		0xa9, 0x14, 0x5f, 0xd6, 0xc0, 0xc5, 0x4d, 0x12, 0x5f, 0xde, 0xdd, 0xd9, 0xd9, 0xa6, 0xee, 0x32,
		0xdd, 0x9c, 0xb5, 0x01, 0xb2, 0xd5, 0xd4, 0x5d, 0x5e, 0xa5, 0x3b, 0x52, 0x77, 0x99, 0x45, 0x41,
		0x26, 0xa5, 0xf0, 0x54, 0xec, 0x75, 0x7b, 0xeb, 0xc0, 0xb2, 0xad, 0xa6, 0x54, 0x7f, 0x94, 0x93,
		0xe2, 0xfe, 0xe1, 0xea, 0xfe, 0xd8, 0x3a, 0x1a, 0xab, 0x5b, 0x71, 0x3f, 0xbd, 0xd0, 0xdf, 0x9a,
		0x5c, 0x5f, 0x8a, 0xd0, 0x1a, 0x0f, 0x2e, 0xd4, 0x0b, 0x22, 0xb0, 0x56, 0x33, 0xb8, 0x14, 0x23,
		0xab, 0xfb, 0x5d, 0xc6, 0xbd, 0x2b, 0xd1, 0xb7, 0x4e, 0x83, 0xf8, 0x2a, 0xb2, 0xba, 0x72, 0xa8,
		0x82, 0xd1, 0x48, 0xf4, 0x2f, 0xd4, 0x77, 0x19, 0x5f, 0x59, 0xff, 0x16, 0xe1, 0xd8, 0xea, 0x88,
		0x48, 0x84, 0xb7, 0xa2, 0x6f, 0x1d, 0x06, 0xaa, 0xff, 0x5d, 0xf6, 0xe3, 0x2b, 0x2b, 0xe8, 0x85,
		0xe3, 0x28, 0xb2, 0x82, 0xa9, 0x11, 0x9b, 0x0b, 0x03, 0x2e, 0x54, 0x6d, 0xfb, 0x15, 0x3d, 0x59,
		0x2a, 0x3b, 0x6b, 0xd0, 0x8c, 0xa0, 0xb2, 0xb3, 0xfe, 0x0b, 0x7a, 0xa6, 0xec, 0x8c, 0xe8, 0xec,
		0x64, 0x9b, 0xb4, 0xda, 0x24, 0xb6, 0x49, 0x7d, 0xb3, 0x15, 0x44, 0xba, 0x18, 0x71, 0x5f, 0x02,
		0xe9, 0x26, 0xfe, 0x73, 0x02, 0xc0, 0xd3, 0x16, 0x6b, 0x35, 0x9c, 0xa7, 0x2d, 0xc8, 0xdb, 0xb3,
		0xe1, 0xeb, 0x3c, 0x6d, 0xa1, 0x1d, 0x39, 0xe7, 0x69, 0x0b, 0x32, 0x9a, 0x17, 0x20, 0x82, 0x7f,
		0xda, 0x42, 0xf6, 0x85, 0x8a, 0x65, 0x7c, 0x8f, 0xa1, 0x26, 0xf0, 0x1a, 0xc9, 0xa9, 0x02, 0x6e,
		0x49, 0x95, 0xdc, 0xf9, 0x5b, 0x7f, 0x18, 0x44, 0xc0, 0x79, 0x6b, 0x01, 0x24, 0xb7, 0xeb, 0x76,
		0xfd, 0xee, 0xd9, 0xa1, 0xd7, 0x3c, 0xf7, 0xbd, 0xaf, 0xa7, 0x0e, 0x6a, 0xfa, 0x9a, 0x6e, 0x74,
		0x46, 0xb0, 0x5d, 0x6f, 0x0b, 0xba, 0xf3, 0xfd, 0x18, 0x51, 0xa7, 0x8f, 0xa5, 0xc8, 0xdd, 0xd3,
		0xf3, 0xba, 0xdf, 0x69, 0x9f, 0x79, 0x4e, 0xc7, 0x77, 0x1b, 0x25, 0x9e, 0x65, 0x20, 0xb2, 0xb2,
		0x43, 0xd6, 0x2e, 0x91, 0x45, 0x64, 0x65, 0x8f, 0xac, 0xd3, 0x8e, 0x73, 0xec, 0xfe, 0xee, 0x1f,
		0x37, 0xed, 0x4f, 0x5d, 0xe2, 0x8a, 0xb8, 0xca, 0x18, 0x57, 0x5d, 0x46, 0x2b, 0xa2, 0x2a, 0x3b,
		0x54, 0xcd, 0xe8, 0x7b, 0x17, 0x99, 0xbf, 0x9b, 0xc4, 0xe3, 0xcd, 0x40, 0x5b, 0x61, 0x78, 0xbd,
		0x01, 0x71, 0xad, 0x38, 0x88, 0xdb, 0x25, 0xe2, 0x88, 0x38, 0xd6, 0x01, 0xc4, 0x9b, 0xc5, 0xfa,
		0x80, 0x68, 0x23, 0xda, 0xde, 0x85, 0x36, 0xcf, 0xfe, 0x44, 0x98, 0x11, 0x66, 0x6b, 0x80, 0xd9,
		0x6e, 0xdd, 0x00, 0xa0, 0x41, 0xaf, 0xe0, 0x1b, 0xfb, 0x4d, 0x74, 0x6c, 0xe6, 0x0d, 0xc2, 0x89,
		0xf9, 0x81, 0x80, 0x32, 0x0d, 0x50, 0x4f, 0x86, 0x9f, 0xdb, 0x8d, 0x7f, 0xfa, 0x4d, 0xbb, 0xc5,
		0x6d, 0x16, 0xc2, 0x2a, 0x6b, 0x58, 0x11, 0x52, 0x84, 0x54, 0xa6, 0x90, 0x3a, 0x71, 0x5b, 0xfe,
		0xa7, 0x4e, 0xfb, 0xec, 0x94, 0xb0, 0x22, 0xac, 0x32, 0x83, 0xd5, 0xb9, 0xed, 0x36, 0xed, 0xc3,
		0xa6, 0xe3, 0x1f, 0xda, 0xad, 0xc6, 0xbf, 0xdc, 0x86, 0xf7, 0x99, 0xf0, 0x22, 0xbc, 0xb2, 0x82,
		0x57, 0x0a, 0x2a, 0xff, 0xa8, 0xdd, 0xea, 0x7a, 0x1d, 0xdb, 0x6d, 0x79, 0x3c, 0x26, 0x45, 0x80,
		0x65, 0x06, 0x30, 0xe7, 0x77, 0xcf, 0x69, 0x35, 0x9c, 0x06, 0xf3, 0x23, 0xf1, 0xb5, 0x0a, 0x7c,
		0x4d, 0x8f, 0xae, 0xb8, 0x2d, 0xcf, 0xe9, 0x1c, 0xdb, 0x47, 0x8e, 0x6f, 0x37, 0x1a, 0x1d, 0xa7,
		0xcb, 0x08, 0x46, 0x84, 0x65, 0x8b, 0xb0, 0x96, 0xe3, 0x7e, 0xfa, 0x7c, 0xd8, 0xee, 0x10, 0x60,
		0x04, 0xd8, 0x0a, 0x00, 0xb6, 0xcb, 0x10, 0x46, 0x84, 0xad, 0x18, 0x61, 0x0c, 0x61, 0x04, 0xd8,
		0xaa, 0x00, 0xd6, 0x74, 0x5b, 0x5f, 0x7c, 0xdb, 0xf3, 0x3a, 0xee, 0xe1, 0x99, 0xe7, 0x10, 0x5a,
		0x84, 0x56, 0xb6, 0xd0, 0x6a, 0x38, 0x4d, 0xfb, 0x2b, 0x51, 0x45, 0x54, 0x65, 0x8f, 0x2a, 0xff,
		0xdc, 0xee, 0xb8, 0xb6, 0xe7, 0xb6, 0x5b, 0xc4, 0x17, 0xf1, 0x95, 0x29, 0xbe, 0xb8, 0xc1, 0x48,
		0x48, 0x65, 0x0c, 0xa9, 0x66, 0x9b, 0xc4, 0x9d, 0xa0, 0xca, 0x18, 0x54, 0xa7, 0x9d, 0xb6, 0xe7,
		0x1c, 0x25, 0x29, 0x70, 0x76, 0xef, 0x94, 0xf8, 0x22, 0xbe, 0x32, 0xc2, 0xd7, 0x89, 0xfd, 0xfb,
		0x0c, 0x63, 0xdc, 0xbd, 0x26, 0xba, 0x56, 0x82, 0xae, 0x8e, 0xd3, 0x75, 0x3a, 0xe7, 0x3c, 0x21,
		0x41, 0x8c, 0xad, 0x08, 0x63, 0x6e, 0xeb, 0x21, 0x8a, 0xb1, 0x0f, 0x41, 0x74, 0x65, 0x8a, 0xae,
		0x8e, 0xd3, 0x75, 0x1b, 0x67, 0x76, 0x93, 0xb1, 0x8b, 0xe8, 0xca, 0x1e, 0x5d, 0x54, 0x93, 0x21,
		0xda, 0xd6, 0x8f, 0x3a, 0x23, 0xee, 0x6c, 0x18, 0x10, 0xd4, 0x0a, 0x04, 0x37, 0x42, 0x8d, 0x50,
		0x5b, 0x0b, 0xd4, 0x0c, 0x38, 0xc3, 0x4a, 0xb8, 0xc1, 0xc0, 0xcd, 0xa4, 0xbb, 0x1f, 0x84, 0x1d,
		0x0a, 0xec, 0x0c, 0xbb, 0x13, 0x42, 0xe0, 0xa1, 0x00, 0xcf, 0xac, 0xbb, 0x22, 0xc4, 0x1d, 0x0a,
		0xee, 0x4c, 0xbb, 0x43, 0x42, 0xe4, 0x41, 0x21, 0xcf, 0x9c, 0x83, 0xd9, 0x04, 0x1e, 0x10, 0xf0,
		0x76, 0x19, 0xf2, 0x88, 0xbc, 0x9c, 0x90, 0xc7, 0x90, 0x47, 0xe0, 0xad, 0x1b, 0x78, 0xc6, 0xdc,
		0x51, 0x21, 0xe4, 0xa0, 0x20, 0x07, 0x7e, 0x66, 0x84, 0x68, 0xc3, 0x43, 0x9b, 0x09, 0x77, 0x5a,
		0x88, 0x3b, 0x28, 0xdc, 0x71, 0x03, 0x96, 0x50, 0x5b, 0x13, 0xd4, 0xb0, 0xef, 0xc0, 0x10, 0x6c,
		0x50, 0x60, 0x33, 0xe6, 0x6e, 0x0c, 0x71, 0x87, 0x82, 0x3b, 0x93, 0xee, 0xcc, 0x10, 0x75, 0x48,
		0xa8, 0x33, 0xeb, 0x2e, 0x0d, 0xb1, 0x07, 0x83, 0x3d, 0x83, 0xee, 0xd8, 0x10, 0x75, 0x28, 0xa8,
		0x33, 0xe9, 0xee, 0x0d, 0x51, 0x87, 0x82, 0x3a, 0xcf, 0xf1, 0x1b, 0xce, 0xb1, 0x7d, 0xd6, 0xf4,
		0xfc, 0x13, 0xc7, 0xeb, 0xb8, 0x47, 0x04, 0x1d, 0x41, 0xb7, 0x6a, 0xd0, 0x9d, 0xb5, 0xd2, 0xa3,
		0x9c, 0x4e, 0xc3, 0x6f, 0x76, 0x79, 0xac, 0x8e, 0xa0, 0x5b, 0x03, 0xe8, 0x66, 0xf5, 0x84, 0xd3,
		0x60, 0x86, 0x25, 0xee, 0xd6, 0x88, 0x3b, 0xcf, 0x6d, 0xba, 0xff, 0x36, 0x0c, 0x75, 0x9c, 0x58,
		0x49, 0x6f, 0x2f, 0x92, 0x97, 0x17, 0x81, 0x3f, 0x13, 0x5c, 0xe4, 0xc9, 0x04, 0x57, 0x81, 0xc0,
		0x65, 0x12, 0x1f, 0x26, 0xbe, 0xc8, 0x7b, 0x89, 0x2e, 0x73, 0xd1, 0xd5, 0x69, 0x9f, 0x79, 0x4e,
		0xc7, 0x3f, 0xb2, 0x4f, 0x53, 0x35, 0xa1, 0x8e, 0x6f, 0x37, 0x3f, 0xb5, 0x3b, 0xae, 0xf7, 0xf9,
		0x84, 0xc8, 0x22, 0xb2, 0x32, 0x45, 0xd6, 0xc3, 0x77, 0x84, 0x16, 0xa1, 0x95, 0x21, 0xb4, 0x28,
		0x81, 0x46, 0xbc, 0x31, 0x59, 0x16, 0x37, 0xb2, 0x15, 0x09, 0x71, 0x26, 0x24, 0xd1, 0x14, 0x72,
		0xec, 0x78, 0xf3, 0x7d, 0x37, 0xf8, 0xfd, 0xc6, 0x7a, 0x9f, 0x71, 0xac, 0xc5, 0xb0, 0x14, 0x24,
		0xa1, 0x96, 0x6c, 0xa5, 0xc6, 0x71, 0x10, 0xcb, 0xb1, 0x2a, 0x1d, 0x00, 0xa5, 0xd0, 0x52, 0xd4,
		0xbb, 0x12, 0xd7, 0xc1, 0x4d, 0x10, 0x5f, 0x25, 0xc9, 0xb2, 0x32, 0xbe, 0x11, 0xaa, 0x37, 0x56,
		0x03, 0x39, 0x2c, 0x2b, 0x11, 0x7f, 0x1f, 0x87, 0x7f, 0x94, 0xa5, 0x8a, 0xe2, 0x40, 0xf5, 0x44,
		0xe5, 0xe9, 0x0b, 0xd1, 0xb3, 0x57, 0x2a, 0x37, 0xe1, 0x38, 0x1e, 0xf7, 0xc6, 0xa3, 0x28, 0xfd,
		0xaa, 0x22, 0x23, 0x19, 0x55, 0x46, 0xe2, 0x56, 0x8c, 0xe6, 0x9f, 0x2a, 0x23, 0xa9, 0xfe, 0x28,
		0x47, 0x71, 0x10, 0x8b, 0x72, 0x3f, 0x88, 0x83, 0xcb, 0x20, 0x12, 0x95, 0x51, 0x74, 0x53, 0x89,
		0x47, 0xb7, 0x51, 0xf2, 0x4f, 0xe5, 0x3a, 0x2e, 0x27, 0xbf, 0x55, 0x56, 0x42, 0x0e, 0xaf, 0x2e,
		0xc7, 0x61, 0x39, 0x88, 0xe3, 0x50, 0x5e, 0x4e, 0xe2, 0xc4, 0x86, 0xd9, 0x4b, 0x51, 0xfa, 0x55,
		0xe5, 0xc1, 0x9c, 0xd4, 0x8c, 0x68, 0x72, 0x39, 0xfd, 0x9f, 0xcd, 0x3e, 0x57, 0x26, 0xc9, 0x92,
		0xa2, 0x38, 0x0c, 0xa4, 0x12, 0xfd, 0x72, 0xf2, 0xa7, 0xa6, 0x7f, 0x1d, 0xa8, 0xca, 0x29, 0x45,
		0x71, 0x38, 0xe9, 0xc5, 0x6a, 0xce, 0x69, 0xda, 0xe9, 0x53, 0x6a, 0xcd, 0x9e, 0x80, 0x3b, 0x5f,
		0xb9, 0xff, 0xe4, 0xfb, 0xe8, 0xe9, 0x0b, 0xfe, 0xe9, 0xe2, 0x09, 0xa5, 0x5f, 0xf9, 0x6e, 0x24,
		0x23, 0xbf, 0x39, 0x7d, 0x42, 0xb3, 0x4f, 0x7e, 0x53, 0xaa, 0x3f, 0xba, 0xc9, 0x5b, 0xd4, 0x98,
		0x3f, 0x1f, 0xbf, 0x19, 0xdd, 0xf8, 0xde, 0xe8, 0x36, 0x4a, 0xfe, 0xf1, 0x4f, 0xe2, 0xe4, 0x57,
		0x5a, 0xf3, 0x07, 0x60, 0x2f, 0x1e, 0x8e, 0xbf, 0x78, 0x25, 0x4a, 0xbf, 0xf2, 0x1f, 0x0c, 0x49,
		0x2d, 0xe8, 0xce, 0x1e, 0xce, 0xfc, 0xb3, 0x7f, 0xb6, 0xfc, 0x70, 0x92, 0x3f, 0x33, 0xfd, 0xc3,
		0x18, 0xb4, 0x4c, 0xff, 0x10, 0xaa, 0xb7, 0x85, 0x9a, 0x07, 0xf7, 0x92, 0xb8, 0x8b, 0xc3, 0xa0,
		0x3c, 0x49, 0x90, 0x7b, 0x39, 0x12, 0x10, 0x81, 0xbd, 0xf4, 0xfd, 0x4a, 0x28, 0x98, 0xce, 0x07,
		0x50, 0xa2, 0x5c, 0xd4, 0x93, 0x9b, 0x9b, 0xb3, 0xec, 0x51, 0x89, 0xef, 0x6f, 0x84, 0xf5, 0x9b,
		0xf5, 0x61, 0xdc, 0x9b, 0x65, 0xab, 0x51, 0xd4, 0xbf, 0x2c, 0x27, 0x2f, 0x46, 0x07, 0x3f, 0xdc,
		0x2d, 0xff, 0x80, 0x94, 0x7b, 0xba, 0xe3, 0x49, 0xd8, 0x13, 0x50, 0xb4, 0x66, 0x6a, 0xf7, 0x17,
		0x71, 0xff, 0x7d, 0x1c, 0xf6, 0x93, 0x87, 0x36, 0x75, 0x0a, 0xac, 0xd6, 0x4c, 0xe9, 0x73, 0x10,
		0xd9, 0xe1, 0x70, 0x72, 0x2d, 0x54, 0x5c, 0x3a, 0xb0, 0xe2, 0x70, 0x22, 0xc0, 0x16, 0xb0, 0x64,
		0x7d, 0x56, 0x5e, 0x83, 0x53, 0x5c, 0x01, 0xf9, 0x77, 0x43, 0x44, 0xbd, 0x50, 0xde, 0xc0, 0xd5,
		0x2e, 0x8f, 0xc2, 0x72, 0x5b, 0x8d, 0xee, 0x2d, 0xa9, 0x7a, 0xa3, 0x49, 0x5f, 0x58, 0xf1, 0x95,
		0xb0, 0x1e, 0x91, 0x7e, 0xab, 0xd9, 0x3d, 0xb5, 0x7a, 0x63, 0x15, 0x27, 0xdf, 0x85, 0x56, 0x12,
		0x0e, 0x92, 0x1f, 0xba, 0x50, 0xd1, 0xe4, 0xb2, 0xec, 0x35, 0xcf, 0x2d, 0x19, 0x59, 0x53, 0x64,
		0xd6, 0xb6, 0x37, 0xd1, 0xe2, 0x04, 0x68, 0x78, 0x7e, 0x1a, 0xa2, 0xfb, 0x4b, 0x28, 0xc4, 0x6b,
		0xa2, 0xc3, 0x47, 0xeb, 0x67, 0x11, 0x3b, 0x43, 0x87, 0x62, 0x03, 0xaf, 0xc8, 0x0d, 0x3c, 0xed,
		0xad, 0xfc, 0xc6, 0x1a, 0xf9, 0x3d, 0x31, 0x03, 0xab, 0xf1, 0x59, 0xcc, 0x86, 0x27, 0x40, 0x46,
		0x2d, 0x50, 0x8b, 0x53, 0xef, 0x84, 0xa8, 0x6f, 0xc0, 0xd6, 0x38, 0x14, 0x96, 0x26, 0x2a, 0x14,
		0x91, 0x08, 0x6f, 0x45, 0xbf, 0x7c, 0x19, 0xa8, 0xfe, 0x77, 0xd9, 0x9f, 0x06, 0x18, 0xbd, 0x03,
		0x62, 0x5a, 0x3d, 0xbd, 0x68, 0xbd, 0xe6, 0x89, 0xe7, 0x8b, 0x54, 0x49, 0xe1, 0x50, 0xd5, 0xdc,
		0xcc, 0xa3, 0x69, 0x10, 0x2b, 0x1d, 0x58, 0x5b, 0x9a, 0x1b, 0x7a, 0x1a, 0x8a, 0x81, 0xbc, 0xc3,
		0x48, 0xe2, 0x0b, 0xdc, 0xce, 0xbb, 0x48, 0x08, 0xe9, 0x0d, 0xac, 0x4c, 0x5f, 0x2e, 0xcd, 0x6f,
		0x66, 0xc8, 0x00, 0xd9, 0x89, 0x47, 0xad, 0xc4, 0x1f, 0x55, 0xdf, 0x0b, 0x60, 0x73, 0x83, 0xd1,
		0xe8, 0xe2, 0xa9, 0x21, 0x43, 0x90, 0xaa, 0x49, 0xc4, 0x93, 0x9b, 0xf2, 0x4d, 0x28, 0xc7, 0xa1,
		0x8c, 0xef, 0x71, 0xa2, 0xd8, 0x22, 0x51, 0x3c, 0xb1, 0x1f, 0x24, 0x22, 0x60, 0x50, 0x1c, 0x38,
		0xaa, 0x83, 0x48, 0x79, 0x80, 0xa9, 0x0f, 0x2a, 0x05, 0x82, 0xa7, 0x42, 0xf0, 0x94, 0x08, 0x9b,
		0x1a, 0x61, 0x50, 0x24, 0x10, 0xaa, 0x04, 0x47, 0x99, 0x52, 0x83, 0xe1, 0x48, 0xd3, 0xb3, 0x54,
		0x03, 0x46, 0x9b, 0x9e, 0xd2, 0xa7, 0x2d, 0x30, 0xb3, 0xd1, 0x68, 0x14, 0x32, 0x9d, 0x32, 0x80,
		0x56, 0xa1, 0xd3, 0x2b, 0x63, 0x68, 0x96, 0x31, 0x74, 0xcb, 0x0c, 0xda, 0x85, 0x45, 0xbf, 0xc0,
		0x68, 0x58, 0x0a, 0x11, 0xef, 0xfe, 0x46, 0x60, 0x47, 0xfc, 0x91, 0x08, 0x06, 0xa1, 0x18, 0x20,
		0x46, 0xfc, 0x45, 0x7f, 0x68, 0x0f, 0xd0, 0xf6, 0xd3, 0xf9, 0x09, 0x8c, 0xf4, 0x64, 0x70, 0xca,
		0x32, 0x79, 0x5c, 0xac, 0xe8, 0x91, 0xa5, 0x34, 0xbb, 0x9f, 0x07, 0x5b, 0x30, 0xa1, 0x5d, 0x2f,
		0xb4, 0xf0, 0x9a, 0xcd, 0xac, 0x96, 0x58, 0x2d, 0xb1, 0x5a, 0x62, 0xb5, 0xc4, 0x6a, 0x89, 0xd5,
		0x12, 0x0e, 0x44, 0xd0, 0x9a, 0xd7, 0xa9, 0xe1, 0x38, 0x67, 0x1a, 0x7f, 0x98, 0xb3, 0x50, 0x0e,
		0x38, 0xfe, 0x88, 0xa8, 0x6d, 0x81, 0x9a, 0x8f, 0x4a, 0xd8, 0x4c, 0x20, 0x6e, 0x06, 0x11, 0x38,
		0x53, 0x88, 0x9c, 0x71, 0x84, 0xce, 0x38, 0x62, 0x67, 0x16, 0xc1, 0xc3, 0x24, 0x7a, 0xa0, 0x84,
		0x2f, 0x85, 0x0e, 0x6c, 0x9b, 0xfc, 0x59, 0xc6, 0x90, 0x42, 0x88, 0xc1, 0x68, 0x1c, 0xc4, 0xdb,
		0x35, 0xe4, 0xac, 0x31, 0x27, 0x51, 0xfb, 0xc0, 0x4b, 0x68, 0x0a, 0x35, 0x9c, 0x12, 0x72, 0x6c,
		0x95, 0x63, 0x7c, 0xbd, 0xd9, 0xd2, 0x89, 0x54, 0xf0, 0xfc, 0x23, 0x5d, 0xcc, 0x54, 0x3c, 0xbb,
		0x74, 0x60, 0xd5, 0x37, 0xcc, 0x58, 0xcf, 0x71, 0x18, 0xf4, 0x62, 0x39, 0x56, 0x0d, 0x39, 0x94,
		0x71, 0x84, 0x5b, 0x77, 0x3c, 0x8f, 0xc8, 0x62, 0x18, 0xc4, 0xf2, 0x36, 0x79, 0x56, 0x83, 0x60,
		0x14, 0x09, 0x8a, 0x67, 0xeb, 0x10, 0x0a, 0x82, 0x3b, 0x86, 0x02, 0x86, 0x02, 0x86, 0x82, 0x22,
		0x56, 0x27, 0xf8, 0xd6, 0x63, 0xca, 0xb1, 0xe3, 0xbd, 0xdf, 0x80, 0xa9, 0x0e, 0xf7, 0x20, 0xfb,
		0xb3, 0x1a, 0x16, 0xf4, 0x40, 0xfb, 0xd3, 0xe2, 0x95, 0x3b, 0x00, 0x39, 0x2d, 0x80, 0x3b, 0x00,
		0x5a, 0x2d, 0x85, 0x3b, 0x00, 0x9a, 0x2e, 0x88, 0x3b, 0x00, 0x64, 0x4d, 0x64, 0x4e, 0x33, 0xe8,
		0x98, 0xb3, 0x03, 0x30, 0x91, 0x2a, 0xfe, 0x68, 0x40, 0xef, 0x7f, 0x07, 0x78, 0x09, 0x9d, 0x40,
		0x0d, 0x05, 0x5b, 0xff, 0xf9, 0x3f, 0x08, 0x23, 0x5b, 0xff, 0x5b, 0xec, 0xf7, 0x69, 0x1e, 0x8a,
		0xd9, 0xfa, 0xd7, 0x30, 0x14, 0x98, 0xd8, 0xfa, 0xdf, 0x63, 0x28, 0x60, 0x28, 0x60, 0x59, 0x52,
		0x00, 0xeb, 0xd9, 0xfa, 0xa7, 0xc5, 0xf0, 0x89, 0x19, 0x75, 0x0e, 0x67, 0x6a, 0x7f, 0x31, 0xe4,
		0xe9, 0x9f, 0xab, 0x4d, 0x57, 0x1e, 0x2b, 0x34, 0x56, 0x10, 0xaf, 0xd0, 0x5a, 0xa6, 0xcb, 0xd8,
		0x2f, 0x1e, 0xdb, 0xe1, 0xe2, 0xa9, 0xf9, 0xdd, 0xe4, 0xa9, 0x9d, 0xce, 0x1f, 0x1a, 0xd2, 0xe8,
		0x4e, 0xbc, 0x68, 0x4c, 0x19, 0xb9, 0x2c, 0xdd, 0xf4, 0x8b, 0xb8, 0x07, 0xdc, 0x09, 0x2e, 0x35,
		0x65, 0x14, 0x27, 0x6e, 0x8c, 0x25, 0x81, 0x77, 0x22, 0x95, 0x33, 0x12, 0xd7, 0x42, 0xa1, 0x55,
		0x5e, 0x49, 0x4d, 0xbf, 0x64, 0x79, 0xf5, 0x63, 0xbd, 0xbe, 0xbb, 0x57, 0xaf, 0x6f, 0xed, 0x6d,
		0xef, 0x6d, 0xed, 0xef, 0xec, 0x54, 0x77, 0xab, 0x40, 0x4d, 0xe4, 0x52, 0x3b, 0xec, 0x8b, 0x50,
		0xf4, 0x0f, 0x13, 0xe4, 0xab, 0xc9, 0x68, 0x84, 0x68, 0xfa, 0x59, 0x24, 0x42, 0xa8, 0x52, 0x97,
		0x03, 0xec, 0x49, 0x98, 0xd7, 0x40, 0x98, 0x39, 0xcc, 0x1e, 0x82, 0x22, 0x73, 0xae, 0x7d, 0x11,
		0x2c, 0xe4, 0x5c, 0xfb, 0xec, 0x6d, 0x0e, 0xc5, 0x40, 0x84, 0x42, 0xf5, 0x04, 0x87, 0xdb, 0x67,
		0xff, 0xe6, 0x2e, 0x8e, 0x76, 0x74, 0x8e, 0x8f, 0x76, 0xb6, 0xb7, 0x76, 0x0e, 0x2c, 0xb7, 0x5b,
		0x76, 0xbb, 0x96, 0x73, 0x17, 0x0b, 0x15, 0xc9, 0xb1, 0x8a, 0xac, 0xc1, 0x38, 0xb4, 0xbc, 0x30,
		0x18, 0x0c, 0x64, 0xcf, 0x72, 0xd4, 0x50, 0x2a, 0x21, 0x42, 0xa9, 0x86, 0x9b, 0x56, 0x34, 0xb9,
		0x2c, 0x5f, 0x28, 0xaf, 0x79, 0x6e, 0x55, 0xab, 0x07, 0x56, 0xf2, 0xb9, 0x56, 0xdb, 0xa8, 0x6d,
		0x6f, 0x54, 0xeb, 0xd5, 0x8d, 0x5a, 0xf2, 0x65, 0x6d, 0x9b, 0x33, 0x0a, 0xd6, 0x52, 0xcf, 0x2e,
		0xce, 0x0e, 0x3e, 0x78, 0x0a, 0xc7, 0x14, 0xac, 0x99, 0x43, 0x2f, 0x1d, 0x0f, 0x5c, 0x91, 0x2b,
		0xb1, 0x5d, 0x55, 0x30, 0x2b, 0xbf, 0x01, 0xcc, 0xb6, 0xfb, 0x7e, 0x25, 0x14, 0xd3, 0xf2, 0xea,
		0xd2, 0x72, 0xaa, 0x91, 0x3b, 0x1d, 0xa9, 0xfe, 0x9b, 0xf5, 0x61, 0x7e, 0xf6, 0xb8, 0x3c, 0x8a,
		0xfa, 0x97, 0xe5, 0xe4, 0xc5, 0xe8, 0xc0, 0xed, 0xfa, 0x1d, 0xc7, 0x3e, 0xfa, 0x6c, 0x1f, 0xba,
		0x4d, 0xd7, 0xfb, 0xea, 0x9f, 0xb5, 0x3a, 0x4e, 0xd7, 0xe9, 0x9c, 0x3b, 0x0d, 0xff, 0xd0, 0x6e,
		0x35, 0xfe, 0xe5, 0x36, 0xbc, 0xcf, 0x1f, 0x98, 0x89, 0xd7, 0x9a, 0x89, 0xa7, 0x7e, 0xc1, 0x24,
		0x9c, 0x5f, 0x12, 0xce, 0xce, 0x71, 0x28, 0xf3, 0xbc, 0x82, 0x47, 0xd5, 0x10, 0x51, 0x2f, 0x94,
		0x37, 0x90, 0xbb, 0xf5, 0x69, 0x70, 0x6e, 0xab, 0xd1, 0xbd, 0x25, 0x55, 0x6f, 0x34, 0xe9, 0x0b,
		0x2b, 0xbe, 0x12, 0xd6, 0x43, 0xb7, 0xce, 0x4a, 0xbb, 0x75, 0x56, 0x6f, 0xac, 0xe2, 0x40, 0x2a,
		0x11, 0x5a, 0x49, 0x50, 0xb8, 0x50, 0xc9, 0x0f, 0x26, 0x7c, 0x2f, 0x61, 0x79, 0x53, 0x70, 0xca,
		0xc8, 0xaa, 0x56, 0x37, 0xd1, 0xa2, 0x05, 0xf0, 0xd5, 0xab, 0xe5, 0x40, 0xdd, 0x5f, 0x02, 0x22,
		0xe0, 0x99, 0x03, 0x13, 0xee, 0x59, 0x3d, 0x8a, 0xdb, 0xd9, 0xfa, 0x14, 0x0f, 0x24, 0xb0, 0xc2,
		0xd3, 0xb9, 0xc2, 0x63, 0x2f, 0xfb, 0x3d, 0x61, 0x03, 0x6b, 0xdf, 0xb2, 0xb0, 0xfb, 0x95, 0x08,
		0x33, 0xfa, 0x0b, 0xb5, 0x31, 0xa9, 0x77, 0x5a, 0xd4, 0x37, 0x6c, 0x6b, 0x1c, 0x10, 0x4b, 0x93,
		0x58, 0x8e, 0xe4, 0xff, 0x3c, 0x72, 0x3b, 0xdd, 0x83, 0xe2, 0xc3, 0xb5, 0xe2, 0xe7, 0xb6, 0x6b,
		0x9e, 0x7a, 0x30, 0x26, 0xe6, 0xc0, 0xc8, 0xad, 0x20, 0xc9, 0xaa, 0x00, 0xca, 0xa7, 0xa0, 0xd5,
		0xea, 0xb0, 0x72, 0x28, 0xb0, 0xe5, 0x38, 0xa6, 0xbc, 0x09, 0x8f, 0x02, 0xbd, 0xe7, 0x91, 0xa3,
		0x4c, 0xa4, 0x01, 0x1b, 0x09, 0x08, 0x39, 0x0a, 0x10, 0x6c, 0x04, 0x20, 0x9c, 0x8e, 0x1c, 0xa2,
		0x6e, 0x1c, 0xb0, 0x4e, 0x9c, 0x09, 0x3b, 0xc8, 0x90, 0x3a, 0x70, 0x66, 0xed, 0x21, 0xc3, 0xe9,
		0xbc, 0xf1, 0xa2, 0x60, 0x11, 0x09, 0x52, 0x6a, 0x30, 0xee, 0xa8, 0x3e, 0xf8, 0x11, 0x7d, 0xa0,
		0xc2, 0xbc, 0x9c, 0xa1, 0x4c, 0x62, 0x55, 0x24, 0x82, 0x65, 0x0c, 0xd1, 0x32, 0x86, 0x70, 0x99,
		0x41, 0xbc, 0xb0, 0x08, 0x18, 0x18, 0x11, 0x4b, 0x21, 0x02, 0x2b, 0xa4, 0x6b, 0xc8, 0x08, 0x3d,
		0xe0, 0xd1, 0x79, 0xe8, 0x23, 0xf3, 0x80, 0xc5, 0xa3, 0x4d, 0xd0, 0xc9, 0x35, 0x65, 0x1e, 0x96,
		0x71, 0x62, 0x98, 0xe6, 0x88, 0x60, 0x02, 0xeb, 0xe0, 0x1a, 0xa1, 0x7f, 0x4b, 0x17, 0xa7, 0x8b,
		0xb3, 0x3a, 0x30, 0xc2, 0xea, 0x6f, 0x3c, 0xf6, 0x5f, 0xf4, 0x14, 0x55, 0x8a, 0x11, 0x6b, 0xc5,
		0xb4, 0x4e, 0x9c, 0x5a, 0xcf, 0x0e, 0xf8, 0x3a, 0xcc, 0x66, 0x07, 0x3c, 0x47, 0x9c, 0xb3, 0x03,
		0x9e, 0x9f, 0xbb, 0xb2, 0x03, 0xae, 0xd9, 0x42, 0xd8, 0x01, 0x27, 0xa3, 0xf9, 0x01, 0x44, 0x0c,
		0xe8, 0x80, 0xf7, 0x85, 0x8a, 0x65, 0x7c, 0x1f, 0x8a, 0x01, 0x70, 0x07, 0xbc, 0x0a, 0x38, 0x41,
		0xae, 0xe4, 0xce, 0xdf, 0xfa, 0xc3, 0x20, 0x12, 0xf8, 0x93, 0x9c, 0xdd, 0xae, 0xdb, 0xf5, 0xbb,
		0x67, 0x87, 0x5e, 0xf3, 0xdc, 0xf7, 0xbe, 0x9e, 0x3a, 0xa8, 0xe9, 0x6b, 0xda, 0x76, 0x8a, 0xa0,
		0x07, 0xfa, 0x81, 0x37, 0xfe, 0x52, 0x44, 0x9d, 0x3e, 0x96, 0x83, 0x71, 0x4f, 0xcf, 0xeb, 0x7e,
		0xa7, 0x7d, 0xe6, 0x39, 0x1d, 0xdf, 0x6d, 0x94, 0xd8, 0x59, 0x26, 0xb2, 0xb2, 0x43, 0xd6, 0x2e,
		0x91, 0x45, 0x64, 0x65, 0x8f, 0xac, 0xd3, 0x8e, 0x73, 0xec, 0xfe, 0xee, 0x1f, 0x37, 0xed, 0x4f,
		0x5d, 0xe2, 0x8a, 0xb8, 0xca, 0x18, 0x57, 0x5d, 0x46, 0x2b, 0xa2, 0x2a, 0x3b, 0x54, 0xcd, 0xe8,
		0x7b, 0x17, 0x99, 0xbf, 0x9b, 0xc4, 0xe3, 0xcd, 0x40, 0x5b, 0x61, 0x78, 0xbd, 0x01, 0x71, 0xad,
		0x38, 0x88, 0xdb, 0x25, 0xe2, 0x88, 0x38, 0xd6, 0x01, 0xc4, 0x9b, 0xc5, 0xfa, 0x80, 0x68, 0x23,
		0xda, 0xde, 0x85, 0x36, 0xcf, 0xfe, 0x44, 0x98, 0x11, 0x66, 0x6b, 0x80, 0xd9, 0x6e, 0xdd, 0x00,
		0xa0, 0x41, 0xaf, 0xe0, 0x1b, 0xfb, 0x4d, 0x74, 0x6c, 0xe6, 0x0d, 0xc2, 0x89, 0xf9, 0x81, 0x80,
		0x32, 0x0d, 0x50, 0x4f, 0x06, 0xd0, 0xd8, 0x8d, 0x7f, 0xfa, 0x4d, 0xbb, 0xc5, 0x6d, 0x16, 0xc2,
		0x2a, 0x6b, 0x58, 0x11, 0x52, 0x84, 0x54, 0xa6, 0x90, 0x3a, 0x71, 0x5b, 0xfe, 0xa7, 0x4e, 0xfb,
		0xec, 0x94, 0xb0, 0x22, 0xac, 0x32, 0x83, 0xd5, 0xb9, 0xed, 0x36, 0xed, 0xc3, 0xa6, 0xf3, 0x30,
		0x80, 0x8d, 0xf0, 0x22, 0xbc, 0xb2, 0x82, 0x57, 0x0a, 0x2a, 0xff, 0xa8, 0xdd, 0xea, 0x7a, 0x1d,
		0xdb, 0x6d, 0x79, 0x3c, 0x26, 0x45, 0x80, 0x65, 0x06, 0x30, 0xe7, 0x77, 0xcf, 0x69, 0x35, 0x9c,
		0x06, 0xf3, 0x23, 0xf1, 0xb5, 0x0a, 0x7c, 0x4d, 0x8f, 0xae, 0xb8, 0x2d, 0xcf, 0xe9, 0x1c, 0xdb,
		0x47, 0x8e, 0x6f, 0x37, 0x1a, 0x1d, 0xa7, 0xcb, 0x08, 0x46, 0x84, 0x65, 0x8b, 0xb0, 0x96, 0xe3,
		0x7e, 0xfa, 0x7c, 0xd8, 0xee, 0x10, 0x60, 0x04, 0xd8, 0x0a, 0x00, 0xb6, 0xcb, 0x10, 0x46, 0x84,
		0xad, 0x18, 0x61, 0x0c, 0x61, 0x04, 0xd8, 0xaa, 0x00, 0xd6, 0x74, 0x5b, 0x5f, 0x7c, 0xdb, 0xf3,
		0x3a, 0xee, 0xe1, 0x99, 0xe7, 0x10, 0x5a, 0x84, 0x56, 0xb6, 0xd0, 0x6a, 0x38, 0x4d, 0xfb, 0x2b,
		0x51, 0x45, 0x54, 0x65, 0x8f, 0x2a, 0xff, 0xdc, 0xee, 0xb8, 0xb6, 0xe7, 0xb6, 0x5b, 0xc4, 0x17,
		0xf1, 0x95, 0x29, 0xbe, 0xb8, 0xc1, 0x48, 0x48, 0x65, 0x0c, 0xa9, 0x66, 0x9b, 0xc4, 0x9d, 0xa0,
		0xca, 0x18, 0x54, 0xa7, 0x9d, 0xb6, 0xe7, 0x1c, 0x25, 0x29, 0x70, 0x76, 0xef, 0x94, 0xf8, 0x22,
		0xbe, 0x32, 0xc2, 0xd7, 0x89, 0xfd, 0xfb, 0x0c, 0x63, 0xdc, 0xbd, 0x26, 0xba, 0x56, 0x82, 0xae,
		0x8e, 0xd3, 0x75, 0x3a, 0xe7, 0x3c, 0x21, 0x41, 0x8c, 0xad, 0x08, 0x63, 0x6e, 0xeb, 0x21, 0x8a,
		0xb1, 0x0f, 0x41, 0x74, 0x65, 0x8a, 0xae, 0x8e, 0xd3, 0x75, 0x1b, 0x67, 0x76, 0x93, 0xb1, 0x8b,
		0xe8, 0xca, 0x1e, 0x5d, 0x54, 0x93, 0x21, 0xda, 0xd6, 0x8f, 0x3a, 0x23, 0xee, 0x6c, 0x18, 0x10,
		0xd4, 0x0a, 0x04, 0x37, 0x42, 0x8d, 0x50, 0x5b, 0x0b, 0xd4, 0x0c, 0x38, 0xc3, 0x4a, 0xb8, 0xc1,
		0xc0, 0xcd, 0xa4, 0xbb, 0x1f, 0x84, 0x1d, 0x0a, 0xec, 0x0c, 0xbb, 0x13, 0x42, 0xe0, 0xa1, 0x00,
		0xcf, 0xac, 0xbb, 0x22, 0xc4, 0x1d, 0x0a, 0xee, 0x4c, 0xbb, 0x43, 0x42, 0xe4, 0x41, 0x21, 0xcf,
		0x9c, 0x83, 0xd9, 0x04, 0x1e, 0x10, 0xf0, 0x76, 0x19, 0xf2, 0x88, 0xbc, 0x9c, 0x90, 0xc7, 0x90,
		0x47, 0xe0, 0xad, 0x1b, 0x78, 0xc6, 0xdc, 0x51, 0x21, 0xe4, 0xa0, 0x20, 0x07, 0x7e, 0x66, 0x84,
		0x68, 0xc3, 0x43, 0x9b, 0x09, 0x77, 0x5a, 0x88, 0x3b, 0x28, 0xdc, 0x71, 0x03, 0x96, 0x50, 0x5b,
		0x13, 0xd4, 0xb0, 0xef, 0xc0, 0x10, 0x6c, 0x50, 0x60, 0x33, 0xe6, 0x6e, 0x0c, 0x71, 0x87, 0x82,
		0x3b, 0x93, 0xee, 0xcc, 0x10, 0x75, 0x48, 0xa8, 0x33, 0xeb, 0x2e, 0x0d, 0xb1, 0x07, 0x83, 0x3d,
		0x83, 0xee, 0xd8, 0x10, 0x75, 0x28, 0xa8, 0x33, 0xe9, 0xee, 0x0d, 0x51, 0x87, 0x82, 0x3a, 0xcf,
		0xf1, 0x1b, 0xce, 0xb1, 0x7d, 0xd6, 0xf4, 0xfc, 0x13, 0xc7, 0xeb, 0xb8, 0x47, 0x04, 0x1d, 0x41,
		0xb7, 0x6a, 0xd0, 0x9d, 0xb5, 0xd2, 0xa3, 0x9c, 0x4e, 0xc3, 0x6f, 0x76, 0x79, 0xac, 0x8e, 0xa0,
		0x5b, 0x03, 0xe8, 0x66, 0xf5, 0x84, 0xd3, 0x60, 0x86, 0x25, 0xee, 0xd6, 0x88, 0x3b, 0xcf, 0x6d,
		0xba, 0xff, 0x36, 0x0c, 0x75, 0x9c, 0x58, 0x49, 0x6f, 0x2f, 0x92, 0x97, 0x17, 0x81, 0x3f, 0x13,
		0x5c, 0xe4, 0xc9, 0x04, 0x57, 0x81, 0xc0, 0x65, 0x12, 0x1f, 0x26, 0xbe, 0xc8, 0x7b, 0x89, 0x2e,
		0x73, 0xd1, 0xd5, 0x69, 0x9f, 0x79, 0x4e, 0xc7, 0x3f, 0xb2, 0x4f, 0x53, 0x35, 0xa1, 0x8e, 0x6f,
		0x37, 0x3f, 0xb5, 0x3b, 0xae, 0xf7, 0xf9, 0x84, 0xc8, 0x22, 0xb2, 0x32, 0x45, 0xd6, 0xc3, 0x77,
		0x84, 0x16, 0xa1, 0x95, 0x21, 0xb4, 0x28, 0x81, 0x46, 0xbc, 0x31, 0x59, 0x16, 0x37, 0xb2, 0x15,
		0x09, 0x71, 0x26, 0x24, 0xd1, 0x14, 0x72, 0xec, 0x78, 0xf3, 0x7d, 0x37, 0xf8, 0xfd, 0xc6, 0x7a,
		0x9f, 0x71, 0xac, 0xc5, 0xb0, 0x14, 0x24, 0xa1, 0x96, 0x6c, 0xa5, 0xc6, 0x71, 0x10, 0xcb, 0xb1,
		0x2a, 0x1d, 0x00, 0xa5, 0xd0, 0x52, 0xd4, 0xbb, 0x12, 0xd7, 0xc1, 0x4d, 0x10, 0x5f, 0x25, 0xc9,
		0xb2, 0x32, 0xbe, 0x11, 0xaa, 0x37, 0x56, 0x03, 0x39, 0x2c, 0x2b, 0x11, 0x7f, 0x1f, 0x87, 0x7f,
		0x94, 0xa5, 0x8a, 0xe2, 0x40, 0xf5, 0x44, 0xe5, 0xe9, 0x0b, 0xd1, 0xb3, 0x57, 0x2a, 0x37, 0xe1,
		0x38, 0x1e, 0xf7, 0xc6, 0xa3, 0x28, 0xfd, 0xaa, 0x22, 0x23, 0x19, 0x55, 0x46, 0xe2, 0x56, 0x8c,
		0xe6, 0x9f, 0x2a, 0x23, 0xa9, 0xfe, 0x28, 0x47, 0x71, 0x10, 0x8b, 0x72, 0x3f, 0x88, 0x83, 0xcb,
		0x20, 0x12, 0x95, 0x51, 0x74, 0x53, 0x89, 0x47, 0xb7, 0x51, 0xf2, 0x4f, 0xe5, 0x3a, 0x2e, 0x27,
		0xbf, 0x55, 0x56, 0x42, 0x0e, 0xaf, 0x2e, 0xc7, 0x61, 0x39, 0x88, 0xe3, 0x50, 0x5e, 0x4e, 0xe2,
		0xc4, 0x86, 0xd9, 0x4b, 0x51, 0xfa, 0x55, 0xe5, 0xc1, 0x9c, 0xd4, 0x8c, 0x68, 0x72, 0x39, 0xfd,
		0x9f, 0xcd, 0x3e, 0x57, 0x26, 0xb1, 0x1c, 0xc9, 0xff, 0x11, 0xfd, 0xf2, 0x65, 0xa0, 0xfa, 0xdf,
		0x65, 0x3f, 0xbe, 0xaa, 0x4c, 0xff, 0x3c, 0x50, 0x99, 0x53, 0x8a, 0xe2, 0x70, 0xd2, 0x8b, 0xd5,
		0x9c, 0xd4, 0xb4, 0xd3, 0xc7, 0xd4, 0x9a, 0x3d, 0x02, 0x77, 0xbe, 0x74, 0xff, 0xc9, 0xf7, 0xd1,
		0xd3, 0x17, 0xfc, 0xd3, 0xc5, 0x23, 0x4a, 0xbf, 0xf2, 0xdd, 0x48, 0x46, 0x7e, 0x73, 0xfa, 0x88,
		0x66, 0x9f, 0xfc, 0xa6, 0x54, 0x7f, 0x74, 0x93, 0xb7, 0xa8, 0x31, 0x7f, 0x40, 0x7e, 0x33, 0xba,
		0xf1, 0xbd, 0xd1, 0x6d, 0x94, 0xfc, 0xe3, 0x9f, 0xc4, 0xc9, 0xaf, 0xb4, 0xe6, 0x4f, 0xc0, 0x5e,
		0x3c, 0x1d, 0x7f, 0xf1, 0x4a, 0x94, 0x7e, 0xe5, 0x3f, 0x18, 0x92, 0x5a, 0xd0, 0x9d, 0x3d, 0x9d,
		0xf9, 0x67, 0xff, 0x6c, 0xfe, 0x74, 0x0e, 0x17, 0x0f, 0xc7, 0x9f, 0xfe, 0x65, 0x0c, 0x62, 0xa6,
		0x7f, 0x10, 0xd5, 0xdb, 0x42, 0xcd, 0xc3, 0x7b, 0x49, 0xdc, 0xc5, 0x61, 0x50, 0x9e, 0x24, 0xd0,
		0xbd, 0x1c, 0x09, 0x88, 0xd0, 0x5e, 0x0a, 0xc5, 0x40, 0x84, 0x42, 0xf5, 0x04, 0x4c, 0x03, 0x04,
		0x28, 0x5f, 0xa6, 0x65, 0xe5, 0xf1, 0xd1, 0xde, 0xc7, 0xea, 0xd6, 0x81, 0xe5, 0x76, 0xcb, 0x6e,
		0xd7, 0xf2, 0xc2, 0x60, 0x30, 0x90, 0x3d, 0xcb, 0x51, 0x43, 0xa9, 0x84, 0x08, 0xa5, 0x1a, 0x5a,
		0xbf, 0x78, 0xce, 0xaf, 0xd6, 0x89, 0x88, 0x43, 0xd9, 0xbb, 0x50, 0xce, 0x5d, 0x2c, 0x54, 0x24,
		0xc7, 0x2a, 0xda, 0xb4, 0xa2, 0xc9, 0x65, 0xd9, 0x6b, 0x9e, 0x5b, 0xdb, 0xfb, 0x07, 0x56, 0xf2,
		0xb9, 0x56, 0xdb, 0xb0, 0x6a, 0xdb, 0x1b, 0x56, 0xb5, 0x5e, 0xdd, 0xb0, 0x6a, 0xd3, 0xef, 0x6a,
		0xdb, 0x9b, 0x48, 0xd9, 0xa9, 0x3b, 0x9e, 0x84, 0x3d, 0x01, 0xc5, 0x7c, 0xa6, 0x76, 0x7f, 0x11,
		0xf7, 0xdf, 0xc7, 0x61, 0x3f, 0x79, 0xa0, 0x0f, 0x5e, 0x83, 0xd5, 0xc2, 0x29, 0x7d, 0x0e, 0x22,
		0x3b, 0x1c, 0x4e, 0xae, 0x85, 0x8a, 0x4b, 0x07, 0x56, 0x1c, 0x4e, 0x04, 0xd8, 0x02, 0x96, 0xac,
		0x5f, 0x87, 0x5b, 0xb1, 0x40, 0x2b, 0x98, 0x95, 0xdf, 0xf4, 0xf7, 0x87, 0xd2, 0xf7, 0x2b, 0xa1,
		0x98, 0xae, 0x57, 0x97, 0xae, 0x37, 0x37, 0x67, 0x25, 0x5f, 0x25, 0xbe, 0xbf, 0x11, 0xd6, 0x6f,
		0xd6, 0x87, 0x71, 0x6f, 0x56, 0x63, 0x8e, 0xa2, 0xfe, 0x65, 0x39, 0x79, 0x31, 0x3a, 0xf8, 0xf1,
		0x31, 0x91, 0x0f, 0xcc, 0xc9, 0x6b, 0xcd, 0xc9, 0x53, 0xaf, 0x60, 0x3a, 0xce, 0x2f, 0x1d, 0x67,
		0xe5, 0x36, 0x38, 0x39, 0x17, 0xc8, 0xc1, 0x1b, 0x22, 0xea, 0x85, 0xf2, 0x06, 0xae, 0xe7, 0xf8,
		0x28, 0x30, 0xb7, 0xd5, 0xe8, 0xde, 0x92, 0xaa, 0x37, 0x9a, 0xf4, 0x85, 0x15, 0x5f, 0x09, 0x6b,
		0xd1, 0xac, 0xb3, 0xd2, 0x66, 0x9d, 0xd5, 0x1b, 0xab, 0x38, 0x90, 0x4a, 0x84, 0x56, 0x12, 0x10,
		0x92, 0x9f, 0xba, 0x50, 0x09, 0xc1, 0x93, 0x91, 0x35, 0xc5, 0xe5, 0xf6, 0xfe, 0x26, 0x5a, 0x94,
		0x00, 0x0d, 0xce, 0x4f, 0x03, 0x74, 0x7f, 0x09, 0x82, 0x78, 0x3b, 0xdf, 0xf0, 0xb1, 0xfa, 0x59,
		0xbc, 0xce, 0xca, 0x9b, 0xb8, 0xe5, 0xc6, 0x8a, 0x4e, 0xe7, 0x8a, 0x8e, 0x3d, 0xed, 0xf7, 0x04,
		0x0c, 0xac, 0xad, 0xca, 0x82, 0x6e, 0x51, 0x02, 0xe4, 0xd3, 0x22, 0x6d, 0x4a, 0xea, 0x9d, 0x12,
		0xf5, 0x0d, 0xd9, 0x7a, 0x5a, 0xa6, 0x69, 0x88, 0x4e, 0xa8, 0x75, 0xe2, 0x49, 0x09, 0x0f, 0xd3,
		0xd4, 0xff, 0x4b, 0x4d, 0x19, 0xc5, 0x89, 0x73, 0x69, 0x9d, 0x3b, 0x4a, 0x27, 0x52, 0x39, 0x23,
		0x91, 0xd0, 0xe2, 0xa8, 0x74, 0x60, 0x6d, 0x6d, 0x68, 0x6c, 0x69, 0x70, 0xb7, 0x64, 0x69, 0xf5,
		0x63, 0xbd, 0xbe, 0xbb, 0x57, 0xaf, 0x6f, 0xed, 0x6d, 0xef, 0x6d, 0xed, 0xef, 0xec, 0x54, 0x77,
		0xab, 0x3b, 0x1a, 0x1b, 0xdf, 0x0e, 0xfb, 0x22, 0x14, 0xfd, 0xc3, 0x04, 0xb5, 0x6a, 0x32, 0x1a,
		0x21, 0x98, 0x7a, 0x16, 0x89, 0x04, 0xbc, 0x83, 0x60, 0x14, 0x09, 0x06, 0x27, 0xf3, 0x78, 0x63,
		0x11, 0xf8, 0xa2, 0xc6, 0xe4, 0xd0, 0x5c, 0x52, 0xa8, 0x27, 0x05, 0xd4, 0x8f, 0x60, 0xe9, 0x65,
		0x91, 0x66, 0xd1, 0x54, 0xf7, 0x28, 0x6a, 0x74, 0xf4, 0xd4, 0x30, 0x6c, 0x1a, 0x18, 0x2e, 0xf5,
		0x8a, 0x93, 0xfa, 0x44, 0x23, 0x8d, 0x22, 0x51, 0x69, 0xa2, 0xfa, 0x62, 0x20, 0x95, 0xe8, 0x97,
		0x17, 0xae, 0xa1, 0x5b, 0x30, 0x4a, 0x77, 0x08, 0x9f, 0x9b, 0xaa, 0x59, 0x44, 0xff, 0x22, 0x55,
		0x3f, 0x29, 0xdd, 0x34, 0x33, 0xeb, 0x68, 0x1a, 0x46, 0xf4, 0xab, 0x7e, 0x4b, 0xa7, 0xa1, 0x18,
		0xc8, 0x3b, 0x3d, 0xb3, 0xdf, 0x02, 0x74, 0xf3, 0x73, 0x0e, 0x3a, 0x26, 0x0c, 0xcd, 0xb7, 0x8e,
		0x97, 0xb7, 0x87, 0x6f, 0x66, 0x4f, 0x5a, 0xd3, 0x7a, 0x16, 0x65, 0xf7, 0xf7, 0xd1, 0x0e, 0xef,
		0x02, 0x98, 0x64, 0xfd, 0x50, 0xac, 0xbf, 0x21, 0xf5, 0x6c, 0x98, 0x3e, 0xcb, 0xae, 0xfa, 0xc6,
		0x95, 0xd7, 0xf8, 0x80, 0xae, 0xe1, 0x45, 0x4f, 0x5a, 0xa0, 0x3d, 0x3d, 0x40, 0xa0, 0x09, 0x40,
		0x74, 0x01, 0x85, 0x36, 0xc0, 0xd1, 0x07, 0x38, 0x1a, 0x81, 0x45, 0x27, 0xf4, 0xa4, 0x15, 0x9a,
		0xd2, 0x0b, 0xed, 0x69, 0x46, 0x6a, 0xe0, 0xec, 0xde, 0xbd, 0xf6, 0x41, 0x68, 0x11, 0xd7, 0x11,
		0x64, 0x02, 0x34, 0x27, 0x1a, 0x30, 0x84, 0x03, 0x89, 0x78, 0x00, 0x12, 0x10, 0x34, 0x22, 0x02,
		0x4b, 0x48, 0x60, 0x89, 0x09, 0x26, 0x41, 0xd1, 0x9b, 0xa8, 0x68, 0x4e, 0x58, 0x60, 0x88, 0x4b,
		0x6a, 0xe8, 0x48, 0xa8, 0xe1, 0x74, 0x6b, 0x14, 0x24, 0x7a, 0x2d, 0x12, 0xc4, 0xdc, 0x6e, 0x90,
		0x08, 0x30, 0xa7, 0x34, 0x5b, 0x20, 0xe6, 0xa2, 0x50, 0x1b, 0x44, 0x8a, 0x03, 0x4c, 0x75, 0x50,
		0x29, 0x0f, 0x3c, 0xf5, 0x81, 0xa7, 0x40, 0xd8, 0x54, 0x08, 0x83, 0x12, 0x81, 0x50, 0xa3, 0x14,
		0x0a, 0xde, 0xfd, 0x8d, 0xc0, 0x8c, 0xd8, 0x13, 0xa9, 0xe2, 0x8f, 0x48, 0xf1, 0x7a, 0x4e, 0x3f,
		0x76, 0x80, 0x4c, 0xee, 0x04, 0x6a, 0x28, 0xe0, 0x14, 0xef, 0x01, 0x6f, 0xbf, 0x9f, 0x48, 0x05,
		0x79, 0x6d, 0xdf, 0x4a, 0x07, 0x23, 0xe0, 0xf0, 0xd4, 0x67, 0xf6, 0x1f, 0x87, 0x41, 0x2f, 0x96,
		0x63, 0xd5, 0x90, 0x43, 0xa9, 0xfb, 0xcd, 0x9e, 0xbf, 0x0e, 0x8d, 0x62, 0x18, 0xc4, 0xf2, 0x56,
		0x68, 0x7d, 0x11, 0xc5, 0x80, 0xac, 0xf9, 0xd8, 0x75, 0x83, 0x3b, 0x7c, 0xd7, 0xad, 0xed, 0xec,
		0xd0, 0x79, 0xe9, 0xbc, 0x05, 0x20, 0xe6, 0x78, 0xd6, 0x7e, 0xa3, 0xbe, 0x47, 0x51, 0x92, 0xcb,
		0xec, 0x8e, 0x36, 0x5c, 0x1b, 0x58, 0xe3, 0x9b, 0xe5, 0xaf, 0x55, 0x61, 0x6c, 0x02, 0xaf, 0xc8,
		0x60, 0x36, 0x81, 0xd7, 0x6a, 0x3a, 0x9b, 0xc0, 0x39, 0x2d, 0x80, 0x4d, 0x60, 0xb2, 0x0d, 0x43,
		0xca, 0x59, 0x36, 0x81, 0xd7, 0x4e, 0x3f, 0xd8, 0x04, 0x5e, 0xf5, 0x07, 0x9b, 0xc0, 0xeb, 0x35,
		0x9e, 0x4d, 0x60, 0x5d, 0x42, 0x23, 0x9b, 0xc0, 0x39, 0xb8, 0x2e, 0x9b, 0xc0, 0x74, 0x5e, 0x3a,
		0x2f, 0x9b, 0xc0, 0xab, 0xfa, 0x60, 0x13, 0xb8, 0x30, 0xc9, 0xa5, 0x74, 0x3b, 0x8f, 0xc7, 0x60,
		0x5d, 0xe0, 0x99, 0xd9, 0x6c, 0x03, 0xaf, 0xc2, 0x5c, 0xb6, 0x81, 0xd7, 0x08, 0x64, 0xb6, 0x81,
		0xd7, 0xe7, 0x86, 0x6c, 0x03, 0xe7, 0xbc, 0x00, 0xb6, 0x81, 0xc9, 0x39, 0xe6, 0x50, 0xc0, 0x6d,
		0x03, 0x5f, 0x4a, 0x15, 0x84, 0xf7, 0x80, 0x7d, 0xe0, 0x7d, 0xd2, 0xfa, 0x02, 0x58, 0xc8, 0xd9,
		0x2d, 0xd9, 0xda, 0x6b, 0xa4, 0x9a, 0xec, 0x33, 0x45, 0xca, 0x67, 0xaf, 0x54, 0x10, 0x84, 0x23,
		0x2c, 0xc3, 0xe4, 0x67, 0xcf, 0x16, 0x0f, 0x61, 0x21, 0xdb, 0xfd, 0xe4, 0x05, 0x7f, 0xfa, 0x97,
		0x39, 0xc8, 0xc5, 0xb8, 0xc8, 0x88, 0x71, 0x16, 0x0f, 0xe9, 0x0c, 0x1e, 0x48, 0xd3, 0x85, 0x9a,
		0x32, 0x6c, 0xae, 0x58, 0xd4, 0x94, 0x61, 0x13, 0xc5, 0xd0, 0xe6, 0x09, 0x6b, 0xa5, 0x42, 0x34,
		0x49, 0x96, 0x44, 0x5a, 0x82, 0x41, 0x28, 0x06, 0x08, 0x11, 0x77, 0x21, 0x3a, 0xb7, 0x07, 0x60,
		0xeb, 0xe9, 0xbc, 0xfc, 0x7c, 0x34, 0xcd, 0x9e, 0x75, 0x80, 0x49, 0x96, 0x71, 0xa0, 0xe3, 0x9b,
		0x4d, 0xe4, 0x40, 0xc7, 0x8c, 0x2d, 0xe5, 0x40, 0xc7, 0xf5, 0x9a, 0xca, 0x81, 0x8e, 0x6f, 0xe5,
		0xc4, 0x1c, 0xe8, 0xa8, 0x73, 0x13, 0x99, 0x43, 0x1e, 0xb5, 0x68, 0x1b, 0x73, 0xec, 0x23, 0xa2,
		0x45, 0x1c, 0xfb, 0xc8, 0x18, 0x5b, 0xd1, 0x7d, 0x74, 0x9c, 0xe9, 0xa1, 0x94, 0x93, 0x20, 0x75,
		0xb6, 0x44, 0x93, 0x10, 0xb9, 0xa8, 0x91, 0x65, 0x5f, 0x13, 0xef, 0xd4, 0xb3, 0x22, 0xd6, 0xb7,
		0x02, 0x86, 0xaa, 0x78, 0x35, 0xae, 0x70, 0x35, 0xae, 0x68, 0x75, 0x09, 0x15, 0x9a, 0xb2, 0x28,
		0x23, 0xd9, 0x93, 0x46, 0x5c, 0xc9, 0x20, 0x8e, 0xa4, 0x07, 0x25, 0xca, 0x9f, 0x80, 0xe4, 0x6b,
		0x41, 0xce, 0xf1, 0x4c, 0xb7, 0x38, 0x66, 0x52, 0xfc, 0xd2, 0x20, 0x6c, 0xe1, 0x87, 0xab, 0x7c,
		0xa3, 0x54, 0x7e, 0xb1, 0x21, 0xc7, 0xb8, 0x50, 0x4a, 0xf0, 0xde, 0xcf, 0x3d, 0x1c, 0xa4, 0x67,
		0x11, 0x66, 0xe6, 0xe4, 0x1c, 0x27, 0xf5, 0x38, 0x86, 0xa8, 0xcd, 0x31, 0x43, 0x9d, 0x8e, 0x11,
		0x6a, 0x78, 0x4c, 0x50, 0xb7, 0x63, 0x80, 0xda, 0x1e, 0xf3, 0xd3, 0xf6, 0x18, 0x9f, 0x9e, 0xc7,
		0xf4, 0x8a, 0xcd, 0x55, 0xb5, 0x39, 0x46, 0xa7, 0xe1, 0x31, 0x39, 0x9d, 0x8e, 0xc1, 0x3d, 0x3f,
		0xe6, 0x36, 0x4b, 0xe1, 0xa4, 0x72, 0x39, 0xf0, 0x7f, 0x1d, 0xa6, 0x1c, 0x6b, 0x35, 0xc5, 0x58,
		0x93, 0x29, 0xc5, 0xa4, 0x72, 0xa4, 0x72, 0xa4, 0x72, 0xa4, 0x72, 0xc5, 0xa4, 0x72, 0xba, 0x4c,
		0xd9, 0xd5, 0xa4, 0xd7, 0xa1, 0x65, 0xcf, 0x43, 0xb3, 0xde, 0x87, 0x76, 0x89, 0x53, 0xc7, 0x04,
		0xaa, 0x71, 0x22, 0xd5, 0x35, 0xa1, 0x6a, 0x9f, 0x58, 0xb5, 0x4f, 0xb0, 0x7a, 0x27, 0x5a, 0x3d,
		0x12, 0xae, 0x26, 0x89, 0x57, 0xbf, 0x5e, 0xca, 0xb3, 0x88, 0x35, 0x91, 0x2a, 0xae, 0xee, 0xea,
		0x14, 0xb0, 0xe6, 0xf9, 0x6f, 0x57, 0x23, 0x93, 0xf4, 0xd4, 0xd7, 0xd7, 0xf0, 0x34, 0xb1, 0xce,
		0xfa, 0xf8, 0xba, 0xeb, 0xdf, 0xc3, 0x48, 0x64, 0xeb, 0x2f, 0x81, 0xad, 0xe1, 0xc5, 0x2b, 0xad,
		0xf5, 0xe7, 0x53, 0xd7, 0xa8, 0x6f, 0xed, 0xef, 0xd0, 0x3b, 0x4c, 0xf7, 0x0e, 0x9e, 0xce, 0x7f,
		0xf1, 0xe3, 0x1b, 0x8f, 0xe8, 0xe9, 0x12, 0x3d, 0x4b, 0xd1, 0x7d, 0x14, 0x8b, 0x6b, 0x2d, 0x9b,
		0x45, 0x0f, 0xa6, 0xb1, 0x61, 0xf4, 0x92, 0x39, 0x6c, 0x18, 0xfd, 0x0d, 0x30, 0xb1, 0x61, 0xf4,
		0xf3, 0x30, 0x67, 0xc3, 0xe8, 0x9d, 0x06, 0xb2, 0x61, 0x84, 0x52, 0x39, 0x68, 0xdc, 0x30, 0xd2,
		0x2d, 0xfd, 0x2d, 0xa7, 0xc0, 0xea, 0x47, 0x8d, 0x6c, 0x3a, 0x0d, 0xe2, 0x58, 0x84, 0x4a, 0xbb,
		0xb6, 0x51, 0xe9, 0x3f, 0x5b, 0xe5, 0x7d, 0xbb, 0x7c, 0x1c, 0x94, 0x07, 0xdf, 0xfe, 0xb7, 0xfe,
		0xe7, 0xc5, 0xc5, 0xe6, 0x0f, 0x5e, 0xd0, 0x27, 0x46, 0x7c, 0xd3, 0xe9, 0xf1, 0xb6, 0xbb, 0xee,
		0xef, 0xda, 0x3e, 0xe3, 0xff, 0xfb, 0x77, 0x1f, 0xf2, 0xff, 0x29, 0xb1, 0x0e, 0xd3, 0xad, 0x0e,
		0xe3, 0x55, 0x29, 0x5e, 0x95, 0xca, 0xf0, 0xaa, 0x94, 0x2e, 0xda, 0xf4, 0xb0, 0xd7, 0xa4, 0x34,
		0xd0, 0x91, 0x2f, 0xe8, 0xb9, 0x5a, 0x6d, 0xba, 0x41, 0xda, 0xd1, 0x60, 0x5e, 0x95, 0xd2, 0xb7,
		0xdb, 0xc3, 0xf3, 0xb5, 0xb8, 0x5d, 0x1d, 0x9e, 0xaf, 0x25, 0x57, 0xc5, 0xeb, 0xd6, 0xf0, 0xaa,
		0xd4, 0x0f, 0x7b, 0x32, 0x8f, 0xaf, 0x4a, 0x3d, 0xa4, 0xf1, 0xa2, 0xd2, 0xba, 0x7f, 0x14, 0xc8,
		0x61, 0x17, 0x92, 0x63, 0xd3, 0xf3, 0xde, 0x56, 0xde, 0x14, 0x4e, 0x0f, 0xbd, 0x31, 0x7d, 0xf4,
		0xc5, 0xb4, 0xd6, 0x13, 0xd3, 0x48, 0x3f, 0x4c, 0x23, 0xbd, 0xb0, 0xbc, 0xfc, 0x58, 0x93, 0xe6,
		0x10, 0x7e, 0x53, 0xa8, 0x94, 0xeb, 0x6d, 0x59, 0xc8, 0x36, 0x50, 0x3e, 0x4c, 0x61, 0xfd, 0x79,
		0x7a, 0xbd, 0x7f, 0x71, 0xcd, 0x91, 0x24, 0xef, 0x08, 0x02, 0x1b, 0x39, 0x72, 0x08, 0x18, 0x60,
		0x81, 0x62, 0xbd, 0xf1, 0x61, 0x7d, 0x5e, 0xba, 0x9e, 0xbf, 0xb4, 0xa6, 0x38, 0x50, 0x12, 0x77,
		0x71, 0x18, 0x94, 0x27, 0x09, 0x32, 0x2e, 0x47, 0xeb, 0x2d, 0xde, 0x4b, 0xa1, 0x18, 0x88, 0x50,
		0xa8, 0xde, 0xfa, 0xaf, 0x94, 0xe4, 0x10, 0xe8, 0x16, 0x1d, 0x89, 0xce, 0xf1, 0xd1, 0xce, 0x76,
		0xb5, 0x7a, 0x60, 0x75, 0xe5, 0xf5, 0xcd, 0x48, 0x0e, 0xa4, 0xe8, 0x5b, 0xce, 0x5d, 0x2c, 0x54,
		0x24, 0xc7, 0xca, 0x1a, 0x0f, 0xac, 0xc4, 0xef, 0xac, 0xa9, 0xe3, 0x59, 0xa7, 0x8d, 0x33, 0xeb,
		0x97, 0x66, 0xf7, 0xf4, 0xd7, 0x0b, 0xd5, 0xbd, 0x09, 0x7a, 0xc2, 0x1a, 0x8c, 0x43, 0xcb, 0xed,
		0x96, 0xdd, 0xee, 0xa6, 0xe5, 0x35, 0xcf, 0xad, 0x5a, 0x6d, 0x7b, 0xd3, 0x72, 0x63, 0x4b, 0x46,
		0x96, 0xec, 0x0b, 0x15, 0xcb, 0x5e, 0x30, 0xb2, 0xa4, 0x4a, 0x7e, 0xec, 0x3a, 0x88, 0xad, 0x78,
		0x6c, 0xc5, 0x57, 0xe2, 0x42, 0x9d, 0x78, 0x65, 0xb7, 0xdb, 0x9a, 0xff, 0x46, 0x6d, 0x33, 0x8f,
		0xd0, 0x95, 0x73, 0xbb, 0x75, 0xb9, 0xbd, 0xfa, 0x80, 0xba, 0x9c, 0x48, 0xbb, 0x2e, 0x1d, 0xd5,
		0x47, 0x1d, 0x54, 0x0d, 0x60, 0x69, 0x3a, 0xb3, 0x5b, 0xdb, 0x5f, 0x5b, 0xe3, 0xf1, 0xa0, 0xd2,
		0xf7, 0x2b, 0xa1, 0x8a, 0x14, 0xbe, 0x1f, 0xcd, 0x50, 0xb4, 0x7e, 0xb3, 0x3e, 0xcc, 0xb7, 0x1e,
		0xca, 0xa3, 0xa8, 0x7f, 0x59, 0x4e, 0x5e, 0x8c, 0x0e, 0x4e, 0x3c, 0xdf, 0xed, 0xfa, 0x2d, 0xc7,
		0xfd, 0xf4, 0xf9, 0xb0, 0xdd, 0xf1, 0x6d, 0xcf, 0xeb, 0xb8, 0x87, 0x67, 0x9e, 0xf3, 0xa1, 0xe0,
		0x91, 0x77, 0x8a, 0x15, 0x06, 0xdd, 0x87, 0xa0, 0xfb, 0x3e, 0x30, 0xfd, 0xa3, 0x00, 0x5d, 0xae,
		0x52, 0x43, 0x44, 0xbd, 0x50, 0xde, 0xe4, 0xda, 0xe2, 0x4a, 0x9d, 0xbf, 0xad, 0x46, 0xf7, 0x96,
		0x54, 0xbd, 0xd1, 0xa4, 0x2f, 0x92, 0x1c, 0x66, 0x9d, 0x78, 0x96, 0xdb, 0x75, 0xbb, 0xd6, 0xa2,
		0x2c, 0xb4, 0xd2, 0x4a, 0xd1, 0xea, 0x8d, 0x55, 0x1c, 0x48, 0x25, 0xc2, 0x0b, 0x95, 0xe0, 0x7e,
		0xfa, 0xe3, 0x49, 0xaa, 0x93, 0x91, 0x35, 0x7d, 0xda, 0x49, 0x92, 0xcc, 0xcb, 0x19, 0x34, 0xd8,
		0xfc, 0x5e, 0x8e, 0x0b, 0xfd, 0xa5, 0x67, 0x9c, 0x63, 0x1f, 0x4e, 0xa7, 0x9d, 0xee, 0x47, 0x61,
		0x22, 0x73, 0xd8, 0xb1, 0x73, 0x87, 0xcd, 0xef, 0x8c, 0xea, 0x40, 0xe4, 0xd4, 0x81, 0x04, 0xeb,
		0x3c, 0xae, 0x31, 0x30, 0x42, 0xf4, 0x19, 0xd7, 0x13, 0xc3, 0x56, 0xef, 0xd3, 0x6b, 0xf0, 0xb2,
		0xe9, 0x36, 0x7f, 0xb4, 0x3e, 0xef, 0x7a, 0x24, 0x27, 0x17, 0xad, 0x2b, 0xa5, 0xaf, 0x59, 0x60,
		0x75, 0xed, 0x07, 0x3d, 0xf3, 0x38, 0xd0, 0x99, 0xe3, 0xc1, 0xcd, 0xbc, 0x38, 0x6a, 0xee, 0x07,
		0x31, 0x73, 0xa7, 0xa1, 0xf9, 0x1e, 0xac, 0x34, 0x6b, 0x77, 0x65, 0xdd, 0x82, 0xa3, 0xa5, 0x87,
		0xfd, 0xc9, 0xb5, 0x3b, 0xce, 0x22, 0x56, 0xe4, 0xb5, 0x45, 0x9a, 0x93, 0xc2, 0x76, 0x6e, 0x27,
		0xfe, 0xf3, 0x3c, 0xe1, 0xaf, 0xc1, 0x89, 0x7e, 0x9d, 0x1a, 0x9b, 0xb9, 0x9e, 0xd8, 0xd7, 0xb3,
		0xb5, 0x99, 0xdb, 0x89, 0x7c, 0xb3, 0x8f, 0xeb, 0xe4, 0xa5, 0x60, 0x9d, 0x46, 0xf5, 0xfc, 0x9b,
		0xb0, 0x39, 0x1f, 0xd9, 0xcb, 0x79, 0x90, 0x43, 0xee, 0x17, 0xcc, 0x74, 0xb8, 0x58, 0xa6, 0xd1,
		0x85, 0x32, 0x5d, 0x2e, 0x92, 0x69, 0x77, 0x81, 0x4c, 0xbb, 0x8b, 0x63, 0x7a, 0x5d, 0x18, 0x2b,
		0xd6, 0x7d, 0x93, 0xbc, 0x07, 0x2f, 0x94, 0x1e, 0xc6, 0xa3, 0x6a, 0x73, 0x73, 0x5a, 0x97, 0x89,
		0xad, 0x9c, 0x4c, 0xa4, 0x5f, 0x82, 0xd3, 0x30, 0xd1, 0xe9, 0x96, 0xf0, 0xb4, 0x4d, 0x7c, 0xda,
		0x26, 0x40, 0x3d, 0x13, 0x61, 0xbe, 0x09, 0x31, 0xe7, 0xc4, 0xa8, 0x4d, 0x82, 0x7c, 0x96, 0x28,
		0xf5, 0xd3, 0x9b, 0x4d, 0x2d, 0xd3, 0x4b, 0x6e, 0xb6, 0x4a, 0xb9, 0x59, 0xed, 0xd3, 0xa8, 0xc6,
		0xe9, 0x54, 0xd7, 0xb4, 0xaa, 0x7d, 0x7a, 0xd5, 0x3e, 0xcd, 0xea, 0x9d, 0x6e, 0xf5, 0x48, 0xbb,
		0x9a, 0xa4, 0x5f, 0xed, 0xd2, 0xf0, 0x43, 0x3a, 0xee, 0xeb, 0x17, 0x11, 0xd2, 0x84, 0xdc, 0xd7,
		0x2d, 0x14, 0xe8, 0xa5, 0x00, 0xaf, 0x6d, 0x6a, 0xd6, 0x39, 0x45, 0x03, 0xa4, 0x6a, 0xdd, 0x53,
		0x36, 0x4c, 0xea, 0x86, 0x49, 0xe1, 0x18, 0xa9, 0x5c, 0xaf, 0x94, 0xae, 0x59, 0x6a, 0x4f, 0x1f,
		0xa1, 0x76, 0x8a, 0xf2, 0xcf, 0x22, 0x9e, 0x3e, 0x9a, 0x65, 0xaf, 0xd6, 0xbc, 0x7b, 0x1a, 0xda,
		0xf6, 0x4c, 0xd3, 0x2c, 0x6f, 0x31, 0x33, 0x7d, 0xfd, 0x52, 0x23, 0x9f, 0x2c, 0xcd, 0xd4, 0x98,
		0xb5, 0x25, 0xb9, 0xba, 0x88, 0x45, 0xbf, 0xe8, 0x86, 0xe4, 0xb9, 0xe4, 0xb9, 0xe4, 0xb9, 0xe4,
		0xb9, 0xe4, 0xb9, 0xcc, 0xa9, 0x4f, 0x1f, 0xa1, 0x6e, 0xad, 0xac, 0xd4, 0x30, 0x0d, 0x5b, 0x5a,
		0xcf, 0x82, 0xb1, 0x76, 0xad, 0xad, 0xa7, 0xa9, 0x5f, 0xd7, 0xa1, 0xaf, 0xba, 0x52, 0x00, 0x04,
		0x2a, 0x00, 0x44, 0x09, 0x50, 0xa8, 0x01, 0x1c, 0x45, 0x80, 0xa3, 0x0a, 0x58, 0x94, 0x41, 0x4f,
		0xea, 0xa0, 0x29, 0x85, 0x48, 0x1f, 0xad, 0xb6, 0x2d, 0xb3, 0x67, 0x11, 0x73, 0x22, 0x55, 0xbc,
		0x5b, 0xd7, 0x39, 0x60, 0xce, 0xf3, 0xf7, 0x47, 0x8d, 0x4d, 0xec, 0x04, 0x6a, 0x28, 0xb4, 0x1b,
		0xe5, 0xf7, 0xf4, 0x43, 0xef, 0x84, 0x63, 0xcd, 0x15, 0xe5, 0xb5, 0xcf, 0x8c, 0xa9, 0xb1, 0xe7,
		0xc1, 0x68, 0x22, 0xf4, 0x25, 0x6e, 0xcf, 0xec, 0x3d, 0x0e, 0x83, 0x5e, 0x2c, 0xc7, 0xaa, 0x21,
		0x87, 0x32, 0x6f, 0xc5, 0xfe, 0xbf, 0x17, 0xab, 0xc4, 0x30, 0x88, 0xe5, 0xad, 0xc8, 0x55, 0xb0,
		0xde, 0x80, 0xb4, 0xf4, 0xd8, 0xd5, 0x82, 0x3b, 0x3c, 0x57, 0xd3, 0x6b, 0xb2, 0x03, 0xbd, 0x8f,
		0x54, 0xd5, 0x20, 0xeb, 0xbe, 0xfd, 0x83, 0xef, 0x17, 0x68, 0x74, 0x2f, 0x5d, 0x8b, 0x38, 0x94,
		0x3d, 0xfd, 0xdb, 0x84, 0x73, 0x3b, 0xd9, 0x2a, 0x7c, 0x8b, 0x79, 0x6c, 0x15, 0x66, 0x88, 0x44,
		0xb6, 0x0a, 0xb3, 0x73, 0x1b, 0xb6, 0x0a, 0x57, 0x6c, 0x30, 0x5b, 0x85, 0xa6, 0xd6, 0x64, 0x40,
		0xad, 0xc2, 0xef, 0xb2, 0x2f, 0xca, 0x5a, 0x27, 0xf0, 0xe5, 0x24, 0xbe, 0xc7, 0x7e, 0xe1, 0x3b,
		0x3f, 0xd8, 0x2f, 0x5c, 0x51, 0x13, 0x83, 0x1d, 0x0b, 0x76, 0x2c, 0x10, 0x72, 0xd3, 0x63, 0x57,
		0x83, 0xec, 0x17, 0xee, 0xee, 0xed, 0xed, 0xd5, 0xd8, 0x23, 0xa4, 0xc7, 0x41, 0x70, 0x54, 0xfd,
		0xad, 0x63, 0x8f, 0x10, 0xd1, 0x22, 0xdd, 0x4e, 0x5a, 0x6a, 0x32, 0x84, 0xf9, 0x55, 0xfb, 0xb4,
		0x1d, 0x74, 0xa0, 0x5e, 0x18, 0xc4, 0x5c, 0x79, 0xf8, 0xd3, 0xe9, 0x9f, 0xd4, 0xf1, 0x0e, 0x86,
		0xa5, 0xe5, 0xa0, 0x04, 0xf5, 0xc2, 0x9c, 0x66, 0xff, 0xe1, 0xcf, 0xa6, 0x7f, 0x6f, 0xfa, 0xbf,
		0xe1, 0xed, 0x28, 0xed, 0xe3, 0x4b, 0x29, 0x9a, 0x5c, 0x26, 0x3e, 0xa3, 0xf1, 0xfd, 0xa8, 0xb9,
		0x81, 0xbc, 0x21, 0xf5, 0x33, 0x66, 0xf1, 0x86, 0xd4, 0x3b, 0xa0, 0xc6, 0x1b, 0x52, 0x6f, 0x77,
		0x07, 0xde, 0x90, 0xca, 0x9a, 0xf4, 0xf1, 0x86, 0x14, 0x3a, 0x6f, 0xd7, 0xf6, 0x86, 0xd4, 0x2c,
		0xa7, 0xea, 0x7f, 0xfc, 0x61, 0x6e, 0xa7, 0xde, 0xc7, 0x1f, 0xaa, 0x3c, 0xfe, 0x60, 0x1c, 0x25,
		0x00, 0xa2, 0x06, 0x28, 0x14, 0x01, 0x8e, 0x2a, 0xc0, 0x51, 0x06, 0x2c, 0xea, 0xa0, 0x27, 0x85,
		0xd0, 0x94, 0x4a, 0x68, 0x4f, 0x29, 0x52, 0x03, 0x83, 0xfe, 0xff, 0x0b, 0x7a, 0x42, 0xf5, 0xee,
		0xcb, 0x91, 0xec, 0x47, 0xfa, 0x47, 0xa3, 0x45, 0x80, 0x7f, 0x62, 0xb7, 0xe6, 0x1e, 0xae, 0x37,
		0xf5, 0x80, 0xa1, 0x20, 0x48, 0x54, 0x04, 0x90, 0x92, 0xa0, 0x51, 0x13, 0x58, 0x8a, 0x02, 0x4b,
		0x55, 0x30, 0x29, 0x8b, 0xde, 0xd4, 0x45, 0x73, 0x0a, 0x03, 0x43, 0x65, 0x5e, 0xa6, 0x34, 0x38,
		0x41, 0xec, 0x45, 0x66, 0x83, 0x12, 0xc8, 0x30, 0x08, 0x0e, 0x1c, 0xd1, 0x41, 0x24, 0x3c, 0xc0,
		0xc4, 0x07, 0x95, 0x00, 0xc1, 0x13, 0x21, 0x78, 0x42, 0x84, 0x4d, 0x8c, 0x30, 0x08, 0x12, 0x08,
		0x51, 0x82, 0x23, 0x4c, 0xa9, 0xc1, 0x7a, 0x2a, 0xef, 0xfe, 0x74, 0x9e, 0xd1, 0xf5, 0x54, 0x98,
		0x41, 0xc4, 0x09, 0x96, 0x40, 0x21, 0x13, 0x29, 0x03, 0x08, 0x15, 0x3a, 0xb1, 0x32, 0x86, 0x60,
		0x19, 0x43, 0xb4, 0xcc, 0x20, 0x5c, 0x58, 0xc4, 0x0b, 0x8c, 0x80, 0xc1, 0x12, 0xb1, 0xd4, 0xf0,
		0xc1, 0x28, 0x18, 0x46, 0xb8, 0xc1, 0x72, 0x91, 0xaf, 0x66, 0xcb, 0x00, 0x8d, 0x2f, 0x7a, 0x8b,
		0xa6, 0x18, 0x4b, 0xd4, 0x4c, 0x20, 0x6c, 0x06, 0x11, 0x37, 0x53, 0x08, 0x9c, 0x71, 0x44, 0xce,
		0x38, 0x42, 0x67, 0x16, 0xb1, 0xc3, 0x24, 0x78, 0xa0, 0x44, 0x2f, 0x85, 0x8e, 0xf6, 0xa2, 0x33,
		0x3f, 0x9d, 0x31, 0x84, 0x9a, 0x5c, 0x8b, 0x70, 0x76, 0x97, 0x14, 0x38, 0x6b, 0x2c, 0xba, 0x5c,
		0x75, 0xe0, 0x35, 0x38, 0x6a, 0x72, 0x8d, 0x9f, 0xf7, 0xbc, 0x71, 0x37, 0x0e, 0xa5, 0x1a, 0xc2,
		0xaf, 0x64, 0xba, 0x9a, 0xad, 0xc4, 0x47, 0xec, 0x46, 0xa3, 0xe3, 0x74, 0xbb, 0xfe, 0xb1, 0x7d,
		0xe2, 0x36, 0xbf, 0x82, 0xe7, 0xf1, 0xe9, 0xb2, 0xaa, 0xc9, 0xb2, 0x0e, 0xed, 0xa3, 0x2f, 0x67,
		0xa7, 0x26, 0x2c, 0xa7, 0x96, 0x2c, 0xe7, 0xdc, 0x6e, 0x9e, 0x39, 0x26, 0xac, 0x66, 0x3b, 0x59,
		0x4d, 0xb3, 0x7d, 0x64, 0x37, 0x4d, 0x58, 0x4d, 0x3d, 0x59, 0x4d, 0xd7, 0xf1, 0x4a, 0xd0, 0x4b,
		0xf9, 0x73, 0x03, 0x3d, 0x2a, 0xbb, 0x53, 0xa2, 0x6b, 0x40, 0x48, 0x7e, 0x12, 0x8d, 0x61, 0x1b,
		0x0f, 0x8f, 0x16, 0x35, 0x8f, 0xc5, 0x70, 0xfb, 0x74, 0x2f, 0x2e, 0x66, 0x16, 0xbb, 0x0e, 0xac,
		0x6d, 0x03, 0xd6, 0x92, 0x44, 0xae, 0x03, 0xab, 0x6e, 0xc0, 0x4a, 0x66, 0xf9, 0xf1, 0xc0, 0xaa,
		0x61, 0x07, 0x62, 0x56, 0xe8, 0x4c, 0x7c, 0x3f, 0x13, 0x83, 0x64, 0x14, 0xdb, 0x71, 0x1c, 0x62,
		0x57, 0xe9, 0x27, 0x52, 0x39, 0x23, 0x71, 0x2d, 0x14, 0x92, 0x9a, 0xdd, 0xcb, 0x2b, 0x09, 0xee,
		0x96, 0x56, 0x82, 0x3b, 0x87, 0xe4, 0xc5, 0xc5, 0xb5, 0xc3, 0xbe, 0x08, 0x45, 0xff, 0xf0, 0xbe,
		0x74, 0x60, 0xa9, 0xc9, 0x68, 0x64, 0xc2, 0x52, 0xce, 0x22, 0x11, 0xc2, 0xc8, 0x11, 0x9a, 0x11,
		0x6f, 0x01, 0x63, 0x6d, 0xe9, 0x76, 0xae, 0x14, 0x0a, 0xbe, 0x83, 0x3c, 0x5b, 0x06, 0x77, 0x90,
		0xf3, 0x30, 0x9f, 0x3b, 0xc8, 0x1a, 0x39, 0x02, 0x77, 0x90, 0xf5, 0x71, 0x6b, 0xee, 0x20, 0x6b,
		0xbe, 0x20, 0xee, 0x20, 0x93, 0x33, 0xbd, 0x11, 0x3a, 0xe6, 0xec, 0x20, 0x4f, 0xa4, 0x8a, 0xb7,
		0x6b, 0x06, 0x6c, 0x1e, 0xef, 0x01, 0x2f, 0x01, 0x63, 0x22, 0xca, 0x8f, 0x3e, 0x0c, 0xd8, 0x9d,
		0x40, 0x9a, 0xa8, 0xf2, 0xc3, 0xc5, 0x80, 0x4d, 0x68, 0xfe, 0xe1, 0x7a, 0x50, 0xe7, 0x43, 0xfc,
		0x38, 0x16, 0xa3, 0xcd, 0x8f, 0x30, 0x34, 0xad, 0x3f, 0x0e, 0x05, 0xc1, 0x9d, 0x79, 0xa1, 0xa0,
		0x5e, 0xdb, 0xaf, 0xef, 0xef, 0xee, 0xd5, 0xf6, 0x77, 0x18, 0x13, 0x18, 0x13, 0x58, 0xa0, 0x14,
		0xc0, 0xfa, 0x6f, 0x6c, 0xff, 0x33, 0xe7, 0xbd, 0x12, 0x64, 0xbe, 0x0b, 0x39, 0xbc, 0x8a, 0xf1,
		0xfb, 0xff, 0xf3, 0x75, 0x70, 0x03, 0x20, 0x0f, 0xf3, 0xb9, 0x01, 0xa0, 0x91, 0x27, 0x70, 0x03,
		0x40, 0x1f, 0xb7, 0xe6, 0x06, 0x80, 0xe6, 0x0b, 0xe2, 0x06, 0x00, 0x59, 0xd3, 0x1b, 0xa1, 0x63,
		0xd6, 0x06, 0xc0, 0x47, 0x03, 0xfa, 0xff, 0x3b, 0xec, 0xff, 0xe7, 0xfc, 0xc1, 0xfe, 0xbf, 0x5e,
		0x8b, 0x61, 0xff, 0x1f, 0x25, 0x14, 0xb3, 0xff, 0xaf, 0x61, 0x28, 0x30, 0xb1, 0xff, 0x5f, 0xdb,
		0x61, 0xe3, 0x9f, 0xc1, 0x80, 0x85, 0x49, 0x11, 0xac, 0x67, 0xe3, 0x9f, 0x16, 0xc3, 0xa7, 0x66,
		0xdd, 0x87, 0xe5, 0xff, 0xd0, 0x7e, 0xfc, 0x61, 0xfa, 0xb3, 0x81, 0xdd, 0xf3, 0xcf, 0x95, 0xc7,
		0x83, 0xb5, 0x1e, 0x7f, 0x5b, 0x41, 0x94, 0x58, 0xb6, 0xb0, 0x07, 0xf3, 0xcf, 0x9e, 0xce, 0xfc,
		0xb3, 0x6f, 0x2f, 0x1e, 0x47, 0x57, 0xf6, 0xa3, 0x47, 0xdf, 0xe9, 0x38, 0xc2, 0xdf, 0x9c, 0xc8,
		0x0a, 0x14, 0x55, 0x41, 0xef, 0x7c, 0x41, 0xdf, 0xf5, 0x02, 0xdd, 0xe2, 0xa5, 0x8c, 0x7b, 0x9e,
		0x40, 0xa7, 0x8c, 0x7b, 0x7e, 0xee, 0x4a, 0x19, 0x77, 0xdd, 0xca, 0x00, 0xca, 0xb8, 0x93, 0xd3,
		0xfc, 0x35, 0x44, 0x60, 0xb7, 0x64, 0xd3, 0x88, 0x3f, 0x12, 0xc1, 0x20, 0x14, 0x03, 0xc4, 0x88,
		0xbf, 0x50, 0xf0, 0x04, 0xbc, 0x85, 0x55, 0x3a, 0x9d, 0x17, 0xe7, 0x9b, 0x9b, 0xb3, 0x02, 0xb6,
		0x32, 0xa3, 0x98, 0x2c, 0x95, 0x0a, 0x6c, 0x29, 0xca, 0x10, 0xb1, 0x2f, 0xe2, 0x1e, 0xad, 0x28,
		0xc2, 0x14, 0x77, 0xc2, 0x15, 0x73, 0x32, 0x4a, 0xbc, 0x09, 0x58, 0xac, 0x09, 0x58, 0x9c, 0x09,
		0x25, 0x1a, 0x82, 0x6e, 0x16, 0x14, 0x6a, 0x93, 0x00, 0x69, 0xce, 0xaf, 0xf9, 0xdb, 0x02, 0x18,
		0x2c, 0x57, 0x7f, 0xce, 0xa8, 0xb7, 0x85, 0x9a, 0xc7, 0xef, 0x92, 0xb8, 0x8b, 0xc3, 0xa0, 0x3c,
		0x49, 0xd0, 0x7b, 0x39, 0xc2, 0x28, 0xe2, 0x4b, 0xa1, 0x18, 0x88, 0x50, 0xa8, 0x1e, 0xce, 0xb9,
		0x5d, 0xc0, 0xd9, 0xf0, 0xfd, 0x30, 0x18, 0xc4, 0x65, 0x29, 0xe2, 0xc1, 0xb4, 0xe5, 0x57, 0x8e,
		0xc4, 0x30, 0xe1, 0xb1, 0xe5, 0x70, 0x3c, 0x89, 0xa5, 0x1a, 0x96, 0xc5, 0x5d, 0x2c, 0x54, 0x24,
		0xc7, 0x2a, 0xda, 0xb4, 0xa2, 0xc9, 0x65, 0xd9, 0x6b, 0x9e, 0x5b, 0xdb, 0xd5, 0x83, 0x0b, 0x95,
		0x7c, 0x51, 0xab, 0x6d, 0x58, 0xb5, 0xd9, 0x3f, 0xdb, 0x1b, 0x56, 0xb5, 0x5e, 0xdd, 0xb4, 0x38,
		0x64, 0x7e, 0x2d, 0x25, 0xe9, 0xa2, 0x79, 0xfe, 0xe0, 0x23, 0x9c, 0x33, 0xbf, 0x66, 0x26, 0xbc,
		0xd4, 0x2f, 0xcf, 0xdc, 0x89, 0xd8, 0x6b, 0x2a, 0x98, 0x95, 0xdf, 0xf4, 0x47, 0x7f, 0xe9, 0xfb,
		0x95, 0x50, 0x4c, 0xc5, 0xab, 0x4b, 0xc5, 0x69, 0x77, 0x3c, 0xbe, 0xbf, 0x11, 0xd6, 0x6f, 0x96,
		0x65, 0x7d, 0x98, 0x6f, 0xc4, 0x95, 0x47, 0x51, 0xff, 0xb2, 0x9c, 0xbc, 0x1c, 0x1d, 0xb8, 0x5d,
		0xbf, 0xe3, 0xd8, 0x47, 0x9f, 0xed, 0x43, 0xb7, 0xe9, 0x7a, 0x5f, 0x7d, 0xbb, 0xf1, 0x4f, 0xbf,
		0xeb, 0x36, 0x3e, 0x30, 0xf1, 0xae, 0x35, 0xf1, 0x4e, 0x9d, 0x81, 0x39, 0x37, 0xbf, 0x9c, 0xfb,
		0x4e, 0x6f, 0xe1, 0xc1, 0xb7, 0x15, 0x3c, 0x9f, 0x86, 0x88, 0x7a, 0xa1, 0xbc, 0x81, 0x3c, 0x4b,
		0x9c, 0x86, 0xe1, 0xb6, 0x1a, 0xdd, 0x5b, 0x52, 0xf5, 0x46, 0x93, 0xbe, 0xb0, 0xe2, 0x2b, 0x61,
		0xa5, 0xcd, 0x35, 0xab, 0xeb, 0x36, 0x22, 0xab, 0x37, 0x56, 0x71, 0x20, 0x95, 0x08, 0xad, 0x24,
		0x06, 0x24, 0x3f, 0x71, 0xa1, 0x16, 0xa4, 0x6e, 0x8a, 0x45, 0x19, 0x59, 0xdb, 0x55, 0xb4, 0xd8,
		0x00, 0x7c, 0xa0, 0x68, 0x39, 0x2c, 0xf7, 0x97, 0x10, 0x08, 0xb8, 0x51, 0x6e, 0xc2, 0x69, 0xa2,
		0x47, 0x51, 0x3a, 0x23, 0x67, 0xe2, 0x49, 0x01, 0x56, 0x6f, 0x3a, 0x57, 0x6f, 0xec, 0x4d, 0xbf,
		0x27, 0x5e, 0x60, 0xed, 0x29, 0x1a, 0xbe, 0x97, 0x08, 0x90, 0x36, 0xcd, 0xdc, 0x35, 0xd4, 0x3b,
		0xc9, 0xe9, 0x1b, 0x84, 0x35, 0x0e, 0x6f, 0xa5, 0xa0, 0x7f, 0x2d, 0x55, 0x79, 0x18, 0x8e, 0x27,
		0x37, 0xda, 0xc7, 0xb6, 0xb4, 0x00, 0x5a, 0x36, 0x5a, 0xf3, 0xd4, 0xb1, 0x38, 0x14, 0xab, 0xb9,
		0x99, 0x28, 0xb7, 0x7c, 0x90, 0x6e, 0xf5, 0x00, 0xde, 0xe2, 0x41, 0x2b, 0xb2, 0x61, 0x6f, 0xe9,
		0xc0, 0xd6, 0xd1, 0x98, 0xb7, 0x70, 0x78, 0x34, 0xe7, 0x3d, 0x8f, 0xbc, 0x21, 0x43, 0x90, 0xba,
		0x67, 0x7a, 0xbf, 0x1d, 0x26, 0x78, 0x2d, 0xf2, 0x03, 0x92, 0x64, 0x02, 0x08, 0xa1, 0x81, 0x23,
		0x36, 0x88, 0x04, 0x07, 0x98, 0xe8, 0xa0, 0x12, 0x1e, 0x78, 0xe2, 0x03, 0x4f, 0x80, 0xb0, 0x89,
		0x10, 0x06, 0x21, 0x02, 0x21, 0x46, 0x70, 0x04, 0x29, 0x35, 0x18, 0xa9, 0xeb, 0xf3, 0x6a, 0xb6,
		0xc1, 0xe9, 0x02, 0xbd, 0x46, 0xa2, 0xa8, 0x05, 0x43, 0x52, 0x65, 0x30, 0xb9, 0x42, 0x27, 0x59,
		0xc6, 0x90, 0x2d, 0x63, 0x48, 0x97, 0x19, 0xe4, 0x0b, 0x8b, 0x84, 0x81, 0x91, 0xb1, 0x14, 0x22,
		0xf8, 0x5a, 0x30, 0xb0, 0x73, 0xb9, 0x81, 0xe7, 0x71, 0x83, 0xcf, 0xe1, 0x00, 0x1e, 0x46, 0x63,
		0xc2, 0xdc, 0x0d, 0x53, 0xe6, 0x6d, 0x18, 0x27, 0xad, 0x6f, 0x8e, 0xa4, 0x3e, 0xf0, 0x5c, 0x0d,
		0x23, 0xe6, 0x69, 0x18, 0x37, 0x47, 0x9b, 0xbe, 0xce, 0x02, 0xa1, 0xe0, 0x56, 0x7f, 0x63, 0x21,
		0xb6, 0x42, 0x77, 0x84, 0xd4, 0x7a, 0x5b, 0xa6, 0xa5, 0x98, 0x9a, 0x6f, 0xcb, 0x59, 0xd7, 0x18,
		0xed, 0xb7, 0x74, 0x51, 0xb8, 0x1a, 0x70, 0xcf, 0x97, 0x00, 0xa7, 0x05, 0x87, 0x1a, 0x89, 0x00,
		0x35, 0x86, 0x9e, 0xad, 0x01, 0x4f, 0x73, 0xc8, 0xa0, 0x1e, 0xc5, 0xa2, 0x33, 0xd7, 0x39, 0x3e,
		0xda, 0xd9, 0xde, 0xda, 0x39, 0xb0, 0xdc, 0x6e, 0xd9, 0xed, 0x5a, 0x4e, 0xaa, 0x9e, 0x62, 0x0d,
		0xc6, 0xa1, 0xe5, 0x85, 0xc1, 0x60, 0x20, 0x7b, 0x96, 0xa3, 0x86, 0x52, 0x09, 0x11, 0x4a, 0x35,
		0xdc, 0x7c, 0xb8, 0x34, 0xb8, 0x7d, 0x60, 0xcd, 0x45, 0x55, 0x6a, 0xdb, 0x1b, 0xd5, 0x7a, 0x75,
		0x63, 0x21, 0xad, 0xb2, 0xc9, 0x89, 0xed, 0xf9, 0xaf, 0xc3, 0x00, 0xe5, 0xa2, 0x67, 0x6b, 0x32,
		0x7a, 0x68, 0xfb, 0x8a, 0x5c, 0x91, 0x35, 0x23, 0xad, 0x36, 0xa9, 0x66, 0xe4, 0xc9, 0xb4, 0x22,
		0x32, 0x5f, 0xaa, 0x21, 0x6b, 0x73, 0x83, 0x39, 0x3d, 0xab, 0x06, 0x37, 0x21, 0xd1, 0xa0, 0xcb,
		0xcc, 0xd7, 0x52, 0x7d, 0x4a, 0x9e, 0x01, 0xd2, 0x24, 0x44, 0x0a, 0x1f, 0x1b, 0x1d, 0xaa, 0x21,
		0x85, 0x8f, 0x29, 0xb4, 0xb8, 0xda, 0xfe, 0xc2, 0x53, 0xe9, 0xb8, 0x9f, 0x13, 0x8e, 0x3b, 0x71,
		0x5b, 0xfe, 0xa7, 0x4e, 0xfb, 0xec, 0x94, 0x52, 0x8b, 0xeb, 0xed, 0x14, 0x50, 0x6a, 0x31, 0xe7,
		0x26, 0xc0, 0xbb, 0xfd, 0x85, 0x62, 0x8b, 0x2b, 0x78, 0x42, 0xa6, 0x8a, 0x2d, 0x5e, 0x4b, 0x25,
		0xa3, 0x38, 0x9c, 0x9e, 0x31, 0xb0, 0xa6, 0x9c, 0xfe, 0x89, 0x4a, 0xdc, 0x85, 0x4a, 0x7e, 0x70,
		0xd1, 0x65, 0x92, 0xd1, 0x4c, 0x28, 0x6e, 0x9b, 0x8a, 0x8b, 0xb9, 0x44, 0x67, 0x2a, 0x2e, 0xea,
		0x15, 0xac, 0xb3, 0xf4, 0x28, 0x36, 0xe1, 0x8a, 0xdc, 0x84, 0xa3, 0xec, 0xa2, 0xd1, 0x95, 0x31,
		0x65, 0x17, 0xb5, 0x69, 0x5a, 0x52, 0x73, 0x31, 0x8f, 0x36, 0x25, 0x05, 0x17, 0x8d, 0x0b, 0x6c,
		0xa5, 0xe0, 0x36, 0x90, 0xa3, 0xe0, 0x72, 0x24, 0xca, 0x97, 0x81, 0xea, 0x7f, 0x97, 0xfd, 0x69,
		0xb4, 0x40, 0x11, 0x5e, 0x7c, 0xc1, 0x78, 0x0a, 0x30, 0x66, 0x61, 0x26, 0x05, 0x18, 0x57, 0x08,
		0x5b, 0x0a, 0x30, 0xae, 0xa3, 0xce, 0xa6, 0x00, 0xe3, 0xda, 0x4b, 0x69, 0x0a, 0x30, 0x16, 0xa2,
		0x10, 0xa2, 0x00, 0xe3, 0x6a, 0xf3, 0x03, 0x05, 0x18, 0x49, 0x6c, 0x10, 0x09, 0x0e, 0x30, 0xd1,
		0x41, 0x25, 0x3c, 0xf0, 0xc4, 0x07, 0x9e, 0x00, 0x61, 0x13, 0x21, 0x0c, 0x42, 0x04, 0x42, 0x8c,
		0xe0, 0x08, 0x52, 0x6a, 0x30, 0x4e, 0xef, 0xe7, 0xd5, 0x5c, 0x83, 0xd2, 0x01, 0x7a, 0x8d, 0x40,
		0x51, 0x7c, 0x91, 0x84, 0xca, 0x60, 0x62, 0x85, 0x4e, 0xb0, 0x8c, 0x21, 0x5a, 0xc6, 0x10, 0x2e,
		0x33, 0x88, 0x17, 0x16, 0x01, 0x03, 0x23, 0x62, 0x29, 0x44, 0xf0, 0xc5, 0x17, 0xa5, 0x10, 0x62,
		0x30, 0x1a, 0x07, 0xd8, 0x0a, 0x8c, 0xfb, 0x80, 0xa6, 0x37, 0x85, 0x1a, 0x4e, 0x89, 0x31, 0xe5,
		0x0d, 0xd6, 0xfc, 0xce, 0x1b, 0x25, 0xc1, 0x58, 0xa7, 0x2c, 0x9b, 0x66, 0x91, 0x95, 0x12, 0x8c,
		0x1a, 0xb8, 0xb8, 0x51, 0x12, 0x8c, 0x74, 0x71, 0xba, 0x38, 0xab, 0x03, 0x60, 0xab, 0xa9, 0xa2,
		0x51, 0xf8, 0x14, 0x55, 0x8a, 0x11, 0x6b, 0xc5, 0xb4, 0x4e, 0x9c, 0x5a, 0xcf, 0x0e, 0xf8, 0x3a,
		0xcc, 0x66, 0x07, 0x3c, 0x47, 0x9c, 0xb3, 0x03, 0x9e, 0x9f, 0xbb, 0xb2, 0x03, 0xae, 0xd9, 0x42,
		0xd8, 0x01, 0x27, 0xa3, 0xf9, 0x01, 0x44, 0x0c, 0xe8, 0x80, 0xf7, 0x85, 0x8a, 0x65, 0x7c, 0x1f,
		0x8a, 0x01, 0x70, 0x07, 0x1c, 0x52, 0xdd, 0xda, 0x9d, 0xbf, 0xf5, 0x87, 0x41, 0x04, 0x9c, 0xb7,
		0x16, 0x40, 0x72, 0xbb, 0x6e, 0xd7, 0xef, 0x9e, 0x1d, 0x7a, 0xcd, 0x73, 0xdf, 0xfb, 0x7a, 0xea,
		0xa0, 0xa6, 0xaf, 0x69, 0xdb, 0x29, 0x82, 0xdd, 0x98, 0xb0, 0xa0, 0x37, 0x27, 0x1e, 0x23, 0xea,
		0xf4, 0xb1, 0x96, 0x8b, 0x7b, 0x7a, 0x5e, 0xf7, 0x3b, 0xed, 0x33, 0xcf, 0xe9, 0xf8, 0x6e, 0xa3,
		0xc4, 0xce, 0x32, 0x91, 0x95, 0x1d, 0xb2, 0x76, 0x89, 0x2c, 0x22, 0x2b, 0x7b, 0x64, 0x9d, 0x76,
		0x9c, 0x63, 0xf7, 0x77, 0xff, 0xb8, 0x69, 0x7f, 0xea, 0x12, 0x57, 0xc4, 0x55, 0xc6, 0xb8, 0xea,
		0x32, 0x5a, 0x11, 0x55, 0xd9, 0xa1, 0x6a, 0x46, 0xdf, 0xbb, 0xc8, 0xfc, 0xdd, 0x24, 0x1e, 0x6f,
		0x06, 0xda, 0x0a, 0xc3, 0xeb, 0x0d, 0x88, 0x6b, 0xc5, 0x41, 0xdc, 0x2e, 0x11, 0x47, 0xc4, 0xb1,
		0x0e, 0x20, 0xde, 0x2c, 0xd6, 0x07, 0x44, 0x1b, 0xd1, 0xf6, 0x2e, 0xb4, 0x79, 0xf6, 0x27, 0xc2,
		0x8c, 0x30, 0x5b, 0x03, 0xcc, 0x76, 0xeb, 0x06, 0x00, 0x0d, 0x7a, 0x05, 0xdf, 0xd8, 0x6f, 0xa2,
		0x63, 0x33, 0x6f, 0x10, 0x4e, 0xcc, 0x0f, 0x04, 0x94, 0x69, 0x80, 0x7a, 0x36, 0x3d, 0xe6, 0x9f,
		0x7e, 0xd3, 0x6e, 0x71, 0x9b, 0x85, 0xb0, 0xca, 0x1a, 0x56, 0x84, 0x14, 0x21, 0x95, 0x29, 0xa4,
		0xd2, 0x39, 0x57, 0x84, 0x15, 0x61, 0x95, 0x19, 0xac, 0xce, 0x6d, 0xb7, 0x69, 0x1f, 0x36, 0x1d,
		0xff, 0xd0, 0x6e, 0x35, 0xfe, 0xe5, 0x36, 0xbc, 0xcf, 0x84, 0x17, 0xe1, 0x95, 0x15, 0xbc, 0x52,
		0x50, 0xf9, 0x47, 0xed, 0x56, 0xd7, 0xeb, 0xd8, 0x6e, 0xcb, 0xe3, 0x31, 0x29, 0x02, 0x2c, 0x33,
		0x80, 0x39, 0xbf, 0x7b, 0x4e, 0xab, 0xe1, 0x34, 0x98, 0x1f, 0x89, 0xaf, 0x55, 0xe0, 0x6b, 0x7a,
		0x74, 0xc5, 0x6d, 0x79, 0x4e, 0xe7, 0xd8, 0x3e, 0x72, 0x7c, 0xbb, 0xd1, 0xe8, 0x38, 0x5d, 0x46,
		0x30, 0x22, 0x2c, 0x5b, 0x84, 0xb5, 0x1c, 0xf7, 0xd3, 0xe7, 0xc3, 0x76, 0x87, 0x00, 0x23, 0xc0,
		0x56, 0x00, 0xb0, 0x5d, 0x86, 0x30, 0x22, 0x6c, 0xc5, 0x08, 0x63, 0x08, 0x23, 0xc0, 0x56, 0x05,
		0xb0, 0xa6, 0xdb, 0xfa, 0xe2, 0xdb, 0x9e, 0xd7, 0x71, 0x0f, 0xcf, 0x3c, 0x87, 0xd0, 0x22, 0xb4,
		0xb2, 0x85, 0x56, 0xc3, 0x69, 0xda, 0x5f, 0x89, 0x2a, 0xa2, 0x2a, 0x7b, 0x54, 0xf9, 0xe7, 0x76,
		0xc7, 0xb5, 0x3d, 0xb7, 0xdd, 0x22, 0xbe, 0x88, 0xaf, 0x4c, 0xf1, 0xc5, 0x0d, 0x46, 0x42, 0x2a,
		0x63, 0x48, 0x35, 0xdb, 0x24, 0xee, 0x04, 0x55, 0xc6, 0xa0, 0x3a, 0xed, 0xb4, 0x3d, 0xe7, 0x28,
		0x49, 0x81, 0xb3, 0x7b, 0xa7, 0xc4, 0x17, 0xf1, 0x95, 0x11, 0xbe, 0x4e, 0xec, 0xdf, 0x67, 0x18,
		0xe3, 0xee, 0x35, 0xd1, 0xb5, 0x12, 0x74, 0x75, 0x9c, 0xae, 0xd3, 0x39, 0xe7, 0x09, 0x09, 0x62,
		0x6c, 0x45, 0x18, 0x73, 0x5b, 0x0f, 0x51, 0x8c, 0x7d, 0x08, 0xa2, 0x2b, 0x53, 0x74, 0x75, 0x9c,
		0xae, 0xdb, 0x38, 0xb3, 0x9b, 0x8c, 0x5d, 0x44, 0x57, 0xf6, 0xe8, 0xa2, 0x9a, 0x0c, 0xd1, 0xb6,
		0x7e, 0xd4, 0x19, 0x71, 0x67, 0xc3, 0x80, 0xa0, 0x56, 0x20, 0xb8, 0x11, 0x6a, 0x84, 0xda, 0x5a,
		0xa0, 0x66, 0xc0, 0x19, 0x56, 0xc2, 0x0d, 0x06, 0x6e, 0x26, 0xdd, 0xfd, 0x20, 0xec, 0x50, 0x60,
		0x67, 0xd8, 0x9d, 0x10, 0x02, 0x0f, 0x05, 0x78, 0x66, 0xdd, 0x15, 0x21, 0xee, 0x50, 0x70, 0x67,
		0xda, 0x1d, 0x12, 0x22, 0x0f, 0x0a, 0x79, 0xe6, 0x1c, 0xcc, 0x26, 0xf0, 0x80, 0x80, 0xb7, 0xcb,
		0x90, 0x47, 0xe4, 0xe5, 0x84, 0x3c, 0x86, 0x3c, 0x02, 0x6f, 0xdd, 0xc0, 0x33, 0xe6, 0x8e, 0x0a,
		0x21, 0x07, 0x05, 0x39, 0xf0, 0x33, 0x23, 0x44, 0x1b, 0x1e, 0xda, 0x4c, 0xb8, 0xd3, 0x42, 0xdc,
		0x41, 0xe1, 0x8e, 0x1b, 0xb0, 0x84, 0xda, 0x9a, 0xa0, 0x86, 0x7d, 0x07, 0x86, 0x60, 0x83, 0x02,
		0x9b, 0x31, 0x77, 0x63, 0x88, 0x3b, 0x14, 0xdc, 0x99, 0x74, 0x67, 0x86, 0xa8, 0x43, 0x42, 0x9d,
		0x59, 0x77, 0x69, 0x88, 0x3d, 0x18, 0xec, 0x19, 0x74, 0xc7, 0x86, 0xa8, 0x43, 0x41, 0x9d, 0x49,
		0x77, 0x6f, 0x88, 0x3a, 0x14, 0xd4, 0x79, 0x8e, 0xdf, 0x70, 0x8e, 0xed, 0xb3, 0xa6, 0xe7, 0x9f,
		0x38, 0x5e, 0xc7, 0x3d, 0x22, 0xe8, 0x08, 0xba, 0x55, 0x83, 0xee, 0xac, 0x95, 0x1e, 0xe5, 0x74,
		0x1a, 0x7e, 0xb3, 0xcb, 0x63, 0x75, 0x04, 0xdd, 0x1a, 0x40, 0x37, 0xab, 0x27, 0x9c, 0x06, 0x33,
		0x2c, 0x71, 0xb7, 0x46, 0xdc, 0x79, 0x6e, 0xd3, 0xfd, 0xb7, 0x61, 0xa8, 0xe3, 0xc4, 0x4a, 0x7a,
		0x7b, 0x91, 0xbc, 0xbc, 0x08, 0xfc, 0x99, 0xe0, 0x22, 0x4f, 0x26, 0xb8, 0x0a, 0x04, 0x2e, 0x93,
		0xf8, 0x30, 0xf1, 0x45, 0xde, 0x4b, 0x74, 0x99, 0x8b, 0xae, 0x4e, 0xfb, 0xcc, 0x73, 0x3a, 0xfe,
		0x91, 0x7d, 0x9a, 0xaa, 0x09, 0x75, 0x7c, 0xbb, 0xf9, 0xa9, 0xdd, 0x71, 0xbd, 0xcf, 0x27, 0x44,
		0x16, 0x91, 0x95, 0x29, 0xb2, 0x1e, 0xbe, 0x23, 0xb4, 0x08, 0xad, 0x0c, 0xa1, 0x45, 0x09, 0x34,
		0xe2, 0x8d, 0xc9, 0xb2, 0xb8, 0x91, 0xad, 0x48, 0x88, 0x33, 0x21, 0x89, 0xa6, 0x90, 0x63, 0xc7,
		0x9b, 0xef, 0xbb, 0xc1, 0xef, 0x37, 0xd6, 0xfb, 0x8c, 0x63, 0x2d, 0x86, 0xa5, 0x20, 0x09, 0xb5,
		0x64, 0x2b, 0x35, 0x8e, 0x83, 0x58, 0x8e, 0x55, 0xe9, 0x00, 0x28, 0x85, 0x96, 0xa2, 0xde, 0x95,
		0xb8, 0x0e, 0x6e, 0x82, 0xff, 0xcf, 0xde, 0xfb, 0x36, 0xb5, 0x8d, 0x2c, 0xdf, 0xe3, 0xcf, 0xf7,
		0x55, 0xa8, 0x5c, 0xb7, 0x2a, 0x9b, 0x2a, 0x84, 0xb1, 0x31, 0x10, 0xa8, 0xda, 0x07, 0x06, 0x9b,
		0x44, 0x77, 0x8d, 0x4d, 0xd9, 0x86, 0xbb, 0xb9, 0x0b, 0x57, 0x25, 0xec, 0xb1, 0x99, 0x5f, 0xc4,
		0xd8, 0x3f, 0x49, 0x26, 0xf0, 0xd9, 0xcd, 0x7b, 0xff, 0x96, 0x64, 0x5b, 0x18, 0x0c, 0x9b, 0x04,
		0xf4, 0xa7, 0x7b, 0x74, 0x78, 0x10, 0xc0, 0x01, 0xdc, 0xa3, 0x39, 0xd3, 0x7d, 0xba, 0xa7, 0xe7,
		0x4c, 0x70, 0x1d, 0x06, 0xcb, 0xf2, 0x64, 0x2a, 0xd4, 0x60, 0xa2, 0x46, 0x72, 0x6c, 0x2a, 0x11,
		0x7c, 0x9d, 0x78, 0x5f, 0x4c, 0xa9, 0xfc, 0xc0, 0x51, 0x03, 0x51, 0x7e, 0xfa, 0x82, 0xbf, 0xf6,
		0x4a, 0x79, 0xea, 0x4d, 0x82, 0xc9, 0x60, 0xe2, 0xfa, 0xf1, 0x57, 0x65, 0xe9, 0x4b, 0xbf, 0xec,
		0x8a, 0x5b, 0xe1, 0x2e, 0x3e, 0x95, 0x5d, 0xa9, 0xbe, 0x98, 0x7e, 0xe0, 0x04, 0xc2, 0x1c, 0x3a,
		0x81, 0x73, 0xe5, 0xf8, 0xa2, 0xec, 0xfa, 0xd3, 0x72, 0xe0, 0xde, 0xfa, 0xe1, 0x3f, 0xe5, 0x9b,
		0xc0, 0x94, 0xbe, 0x2a, 0x2b, 0x21, 0xc7, 0xd7, 0x57, 0x13, 0xcf, 0x8f, 0xbf, 0x2a, 0x3f, 0xbc,
		0x75, 0xfc, 0x96, 0xfe, 0xec, 0x2a, 0xfa, 0xc5, 0xf9, 0xe7, 0xb2, 0x73, 0xeb, 0x48, 0xd7, 0xb9,
		0x72, 0x85, 0x79, 0xe5, 0xa8, 0xe1, 0x57, 0x39, 0x0c, 0xae, 0xcb, 0xd1, 0x7b, 0x31, 0xca, 0x69,
		0x4a, 0x7e, 0xe0, 0xcd, 0x06, 0x81, 0x5a, 0x30, 0x98, 0x4e, 0x3c, 0x27, 0xed, 0xf9, 0xf3, 0xb6,
		0x16, 0x63, 0xb7, 0x9f, 0x7c, 0xef, 0x3f, 0x7d, 0xc1, 0x3e, 0x5d, 0xce, 0x47, 0xfc, 0x95, 0x6d,
		0xf9, 0xd2, 0xb7, 0x5b, 0xd1, 0x7c, 0xcc, 0x3f, 0xd9, 0x2d, 0xa9, 0xbe, 0xf4, 0xc2, 0x47, 0xd4,
		0x58, 0xcc, 0x86, 0xdd, 0xf2, 0xa7, 0x76, 0xdf, 0xbd, 0xf5, 0xc3, 0x7f, 0xec, 0x93, 0xc0, 0xf2,
		0x95, 0xdd, 0x5e, 0x4e, 0x46, 0xfc, 0x95, 0xfd, 0xf0, 0xb6, 0xf1, 0xfb, 0xf5, 0xe6, 0x93, 0xb1,
		0xf8, 0x6c, 0xd7, 0x97, 0x93, 0x71, 0xb8, 0x9c, 0x0b, 0x3b, 0x7a, 0x23, 0x1e, 0xa4, 0x8b, 0xbe,
		0x83, 0xa4, 0x6d, 0x21, 0x71, 0xd7, 0x5d, 0x12, 0x77, 0x81, 0xe7, 0x98, 0xb3, 0x10, 0xbb, 0x57,
		0xae, 0x60, 0xe1, 0xb6, 0x4b, 0x9e, 0x18, 0x09, 0x4f, 0xa8, 0x81, 0x60, 0x53, 0xdc, 0x60, 0x14,
		0x0b, 0xe3, 0x94, 0xf1, 0xf8, 0x68, 0xef, 0x43, 0x65, 0xeb, 0xc0, 0xb0, 0x7a, 0xa6, 0xd5, 0x33,
		0xfa, 0x9e, 0x33, 0x1a, 0xc9, 0x81, 0xd1, 0x54, 0x63, 0xa9, 0x84, 0xf0, 0xa4, 0x1a, 0x1b, 0xbf,
		0xf6, 0x9b, 0xef, 0x8d, 0x13, 0x11, 0x78, 0x72, 0x70, 0xa1, 0x9a, 0x77, 0x81, 0x50, 0xbe, 0x9c,
		0x28, 0x7f, 0xd3, 0xf0, 0x67, 0x57, 0x66, 0xbf, 0x75, 0x6e, 0x6c, 0x7f, 0x38, 0x30, 0xc2, 0xcf,
		0xd5, 0xea, 0x86, 0x51, 0xdd, 0xde, 0x30, 0x2a, 0xb5, 0xca, 0x86, 0x51, 0x8d, 0xbe, 0xab, 0x6e,
		0x6f, 0x72, 0x0a, 0x46, 0xbd, 0xc9, 0xcc, 0x1b, 0x08, 0x56, 0xac, 0x26, 0xb2, 0xfb, 0x77, 0x71,
		0xff, 0x75, 0xe2, 0x0d, 0xc3, 0x09, 0x7d, 0x58, 0x35, 0xbc, 0xca, 0x33, 0xa5, 0x4f, 0x8e, 0x5f,
		0xf7, 0xc6, 0xb3, 0x1b, 0xa1, 0x82, 0xd2, 0x81, 0x11, 0x78, 0x33, 0xc1, 0x6c, 0x00, 0x2b, 0xd6,
		0x67, 0xb1, 0xac, 0x90, 0x7c, 0x15, 0xcc, 0xca, 0x4b, 0xfa, 0xeb, 0xa1, 0xf4, 0xf5, 0x5a, 0x28,
		0x84, 0xeb, 0xf4, 0xc2, 0xf5, 0xe6, 0xe6, 0x3c, 0xc3, 0x2b, 0x07, 0xf7, 0x53, 0x61, 0xfc, 0x66,
		0xbc, 0x9b, 0x0c, 0xcc, 0x30, 0xeb, 0x34, 0x5d, 0x7f, 0x78, 0x65, 0x86, 0x2f, 0xfa, 0x07, 0x3f,
		0xa0, 0x18, 0xff, 0x0e, 0x41, 0x39, 0xd3, 0xa0, 0x1c, 0x2d, 0x0b, 0xc4, 0xe3, 0xfc, 0xe2, 0x71,
		0x62, 0xeb, 0x86, 0x4f, 0xd4, 0x65, 0xb4, 0xc2, 0x1b, 0xc2, 0x1f, 0x78, 0x72, 0xca, 0xae, 0xa2,
		0xf8, 0xc8, 0x35, 0x77, 0x94, 0x7b, 0x6f, 0x48, 0x35, 0x70, 0x67, 0x43, 0x61, 0x04, 0xd7, 0xc2,
		0x88, 0xcb, 0x73, 0x46, 0x54, 0x9e, 0x1b, 0xca, 0xe0, 0xda, 0x18, 0x4c, 0x54, 0xe0, 0x48, 0x25,
		0x3c, 0x23, 0x74, 0x09, 0xe1, 0x8f, 0x5d, 0xa8, 0x25, 0xdf, 0x93, 0xbe, 0x11, 0xa1, 0x73, 0xfb,
		0xc3, 0x26, 0x37, 0x5f, 0xc1, 0xd4, 0x45, 0x3f, 0x75, 0xd3, 0xc3, 0x15, 0x1c, 0xf2, 0xdb, 0xdc,
		0x66, 0xef, 0xb1, 0xd7, 0xbc, 0x76, 0xa2, 0x4b, 0x0a, 0x5b, 0x6b, 0xc8, 0xee, 0x28, 0x67, 0x77,
		0xa8, 0x6f, 0xbf, 0xc5, 0x6b, 0xf0, 0xda, 0x92, 0x2c, 0xc2, 0x56, 0x24, 0x83, 0x08, 0xaa, 0xf1,
		0xe6, 0x23, 0xed, 0x70, 0x47, 0xd7, 0x1d, 0x13, 0x76, 0x74, 0xa5, 0x78, 0x69, 0x99, 0x83, 0x89,
		0xf2, 0x03, 0xcf, 0x91, 0x2a, 0xf0, 0xc9, 0xfb, 0xbb, 0x38, 0x41, 0x7a, 0xde, 0x7c, 0xe2, 0x81,
		0xe5, 0x77, 0xa9, 0xc2, 0xd4, 0xa0, 0x42, 0xdc, 0xcc, 0xa3, 0xc8, 0x6d, 0x95, 0x0e, 0x8c, 0x2d,
		0xe2, 0x86, 0x9e, 0x7a, 0x62, 0x24, 0xef, 0x78, 0x04, 0xe9, 0x25, 0x70, 0x17, 0xb5, 0x22, 0x0e,
		0x01, 0x8d, 0x59, 0x22, 0xbe, 0x9a, 0x7c, 0x4f, 0xe7, 0xc8, 0x60, 0xd2, 0x03, 0xc7, 0x35, 0xd7,
		0x7e, 0x94, 0x5f, 0x2f, 0x81, 0x8d, 0xe6, 0x1f, 0xad, 0x93, 0xa3, 0x86, 0xf4, 0x78, 0x38, 0xdc,
		0xe7, 0x18, 0x02, 0x1f, 0x5f, 0xf6, 0x4f, 0x3c, 0x87, 0x8b, 0x5b, 0xe3, 0x41, 0x77, 0xd8, 0xd1,
		0x1e, 0x8e, 0xf4, 0x87, 0x31, 0x0d, 0xe2, 0x4a, 0x87, 0xd8, 0xd3, 0x22, 0xf6, 0xf4, 0x88, 0x37,
		0x4d, 0xe2, 0x41, 0x97, 0x98, 0xd0, 0x26, 0x76, 0xf4, 0x29, 0x36, 0x98, 0x53, 0x75, 0xe8, 0xc5,
		0x68, 0xc3, 0xa7, 0x46, 0xc4, 0x9c, 0x44, 0xb1, 0x25, 0x53, 0x9c, 0x49, 0x95, 0x06, 0xe4, 0x8a,
		0x3b, 0xc9, 0xd2, 0x86, 0x6c, 0x69, 0x43, 0xba, 0xf4, 0x20, 0x5f, 0xbc, 0x48, 0x18, 0x33, 0x32,
		0xc6, 0x96, 0x94, 0x3d, 0x43, 0xce, 0xf8, 0x7a, 0xcc, 0x75, 0x8e, 0xc6, 0xd5, 0x65, 0xf2, 0xa4,
		0x6a, 0xec, 0x29, 0x9b, 0x0e, 0xd4, 0x4d, 0x23, 0x0a, 0xa7, 0x0b, 0x95, 0xd3, 0x8e, 0xd2, 0x69,
		0x47, 0xed, 0xf4, 0xa2, 0x78, 0x3c, 0xa9, 0x1e, 0x53, 0xca, 0xc7, 0x9e, 0xfa, 0x3d, 0x43, 0x01,
		0x4d, 0x39, 0xe4, 0xef, 0x6c, 0xd7, 0xd9, 0x60, 0x38, 0x2c, 0xe6, 0xfe, 0x69, 0x41, 0x0c, 0xb7,
		0x98, 0x0f, 0x83, 0x3b, 0x41, 0xd4, 0x89, 0x28, 0x6a, 0x48, 0x18, 0x75, 0x23, 0x8e, 0xda, 0x12,
		0x48, 0x6d, 0x89, 0xa4, 0x9e, 0x84, 0x92, 0x37, 0xb1, 0x64, 0x4e, 0x30, 0x63, 0x48, 0xf5, 0xef,
		0xa7, 0x42, 0xaf, 0x88, 0xe3, 0x0a, 0x67, 0xe4, 0x89, 0x91, 0x0e, 0x11, 0x67, 0x59, 0xb9, 0xdb,
		0xd3, 0x60, 0x2c, 0xa7, 0x8b, 0x73, 0x60, 0xb1, 0x4a, 0xc1, 0x63, 0x2a, 0xfd, 0x0b, 0x5c, 0x18,
		0xdc, 0xd7, 0xcf, 0x21, 0x6a, 0x2e, 0x03, 0xaa, 0x4d, 0x6a, 0xc9, 0x4d, 0xd5, 0xf4, 0x1f, 0x3d,
		0x16, 0x52, 0x4a, 0xa4, 0x94, 0x48, 0x29, 0x91, 0x52, 0x22, 0xa5, 0x44, 0x4a, 0x09, 0x3e, 0x56,
		0xac, 0x94, 0x92, 0xfb, 0xde, 0x45, 0x3c, 0x90, 0x07, 0x99, 0x87, 0x03, 0xdd, 0x6e, 0xd1, 0xe1,
		0xa4, 0x60, 0xf1, 0x33, 0xc4, 0x73, 0x4b, 0x93, 0xe1, 0xe8, 0x42, 0x40, 0x75, 0x24, 0xa2, 0x1a,
		0x13, 0x52, 0x5d, 0x89, 0xa9, 0xf6, 0x04, 0x55, 0x7b, 0xa2, 0xaa, 0x37, 0x61, 0xd5, 0x83, 0xb8,
		0x6a, 0x42, 0x60, 0x63, 0xa8, 0x69, 0xb3, 0x37, 0xb2, 0x16, 0xb1, 0xa4, 0x10, 0x62, 0xe4, 0x4e,
		0x9c, 0x60, 0xbb, 0xaa, 0x53, 0xd4, 0x5a, 0x90, 0xc0, 0x7d, 0x8d, 0x86, 0xd4, 0x12, 0x6a, 0x1c,
		0x25, 0x20, 0x7f, 0x6a, 0xe5, 0xc6, 0xf5, 0xa2, 0x15, 0xd1, 0x4c, 0x9d, 0x48, 0xa5, 0x1d, 0x5f,
		0x8a, 0x07, 0x17, 0xdd, 0xc0, 0x5c, 0x3a, 0x30, 0x6a, 0x1b, 0x7a, 0x8e, 0xef, 0xd8, 0x73, 0x06,
		0x81, 0x9c, 0xa8, 0x86, 0x1c, 0xcb, 0xe8, 0x44, 0xf1, 0x96, 0xa6, 0x03, 0x6d, 0x8b, 0xb1, 0x13,
		0xc8, 0xdb, 0x70, 0x2e, 0x47, 0x8e, 0xeb, 0x0b, 0xed, 0x46, 0xf9, 0x6d, 0x43, 0x43, 0xd7, 0xe2,
		0xdc, 0xc1, 0xb5, 0xc0, 0xb5, 0xc0, 0xb5, 0x20, 0x3b, 0xc3, 0x68, 0xd6, 0x3f, 0x2e, 0x7f, 0xc1,
		0x7c, 0x20, 0xf4, 0x26, 0xe3, 0xc4, 0xf4, 0x3a, 0xb7, 0xb2, 0x96, 0xf8, 0xeb, 0x74, 0x7e, 0xe5,
		0x69, 0xda, 0x8f, 0xbd, 0x1f, 0xa2, 0x03, 0xc2, 0xde, 0x0f, 0xab, 0xa1, 0x61, 0xef, 0x87, 0xe9,
		0x00, 0xb1, 0xf7, 0x03, 0xfe, 0x07, 0x0e, 0x98, 0x0c, 0xd4, 0xf4, 0xdd, 0xfb, 0x99, 0x49, 0xa5,
		0xe7, 0xb6, 0xcf, 0x9e, 0x46, 0x43, 0xea, 0x3a, 0x6a, 0x2c, 0xb0, 0xeb, 0x43, 0x7f, 0xa2, 0x0a,
		0xb1, 0xeb, 0xb3, 0x85, 0xd2, 0x2c, 0x73, 0xdf, 0x8f, 0x5d, 0x1f, 0x86, 0xae, 0xa5, 0x10, 0xbb,
		0x3e, 0xd5, 0xfd, 0xda, 0xfe, 0xee, 0x5e, 0x75, 0x7f, 0x07, 0x3e, 0x06, 0x3e, 0x06, 0x09, 0x1a,
		0x46, 0xf3, 0xd3, 0x1f, 0xd8, 0xfe, 0xc1, 0x08, 0x0a, 0xcf, 0x20, 0xb8, 0xdd, 0x0e, 0xfc, 0xdd,
		0xf1, 0xe8, 0x76, 0x7b, 0xf0, 0xb3, 0x37, 0x83, 0x3e, 0xfb, 0x6a, 0x79, 0xf5, 0x07, 0x56, 0x5e,
		0xd6, 0x41, 0x20, 0xc0, 0xd0, 0xe9, 0x46, 0xe2, 0xf8, 0x22, 0xe2, 0xa3, 0x87, 0x09, 0x7b, 0xee,
		0x45, 0x7b, 0xf5, 0xff, 0x57, 0x5e, 0x8e, 0xac, 0x82, 0xf2, 0x09, 0x2c, 0xd7, 0x3e, 0x4a, 0x95,
		0x7e, 0x17, 0xf7, 0xba, 0xb4, 0x1f, 0x94, 0x5a, 0xd2, 0x0f, 0xea, 0x41, 0xc0, 0x5c, 0xa0, 0xf5,
		0x44, 0xaa, 0xa6, 0x2b, 0x6e, 0x84, 0xe2, 0x9e, 0x94, 0x96, 0x4e, 0x9c, 0xbb, 0x95, 0x91, 0x54,
		0x3e, 0xd4, 0x6a, 0xbb, 0x7b, 0xb5, 0xda, 0xd6, 0xde, 0xf6, 0xde, 0xd6, 0xfe, 0xce, 0x4e, 0x65,
		0xb7, 0xc2, 0xb8, 0xb4, 0x50, 0xea, 0x78, 0x43, 0xe1, 0x89, 0xe1, 0x61, 0xb8, 0x7c, 0xd4, 0xcc,
		0x75, 0x75, 0x18, 0xca, 0x99, 0x2f, 0x3c, 0xd6, 0x55, 0x02, 0xae, 0x5e, 0x58, 0x93, 0x1c, 0x01,
		0xb9, 0xc1, 0xd3, 0xdc, 0xa0, 0xc4, 0x5a, 0xc6, 0x0d, 0xd9, 0x40, 0x38, 0x85, 0xbf, 0x80, 0x45,
		0xc3, 0x62, 0xe6, 0x91, 0x86, 0x7b, 0x84, 0x41, 0x64, 0xe1, 0x78, 0x19, 0x69, 0xe1, 0xc3, 0x08,
		0xaf, 0xd8, 0xc1, 0xc7, 0x03, 0x33, 0xf2, 0xbe, 0xa5, 0x9b, 0xc9, 0x50, 0xb8, 0x1c, 0xcf, 0xac,
		0xc4, 0x8d, 0x89, 0xf1, 0x08, 0x78, 0x5e, 0x85, 0xbc, 0x85, 0xab, 0x90, 0xb3, 0x31, 0x1c, 0x57,
		0x21, 0xe7, 0x3a, 0x04, 0x5c, 0x85, 0x4c, 0x64, 0x20, 0xb8, 0x0a, 0x19, 0xac, 0xa6, 0x28, 0x79,
		0x25, 0xdb, 0xe3, 0x18, 0x1a, 0x5c, 0x4b, 0xc2, 0xf9, 0x1a, 0x92, 0xf5, 0x6b, 0x47, 0x62, 0x96,
		0x89, 0x9c, 0xa9, 0xf0, 0x39, 0x13, 0xcf, 0x1b, 0x44, 0x58, 0xdf, 0x18, 0xc2, 0xf4, 0x86, 0x10,
		0x64, 0x4b, 0xc8, 0x96, 0x90, 0x2d, 0x21, 0x5b, 0x42, 0xb6, 0x84, 0x6c, 0x89, 0x3e, 0x44, 0xb8,
		0xde, 0xc0, 0xc1, 0xb7, 0x88, 0xbd, 0x16, 0xb2, 0x98, 0x16, 0xb3, 0x9f, 0xd2, 0x34, 0xa6, 0x7d,
		0x81, 0xec, 0x35, 0x94, 0x74, 0xd0, 0x4c, 0xd2, 0x48, 0x23, 0x49, 0x17, 0x4d, 0x24, 0xed, 0x34,
		0x90, 0xb4, 0xd3, 0x3c, 0xd2, 0x4b, 0xe3, 0x08, 0x87, 0x2c, 0xb2, 0x84, 0x0e, 0x7b, 0xcd, 0xa2,
		0x47, 0x1a, 0x45, 0x1f, 0x38, 0xc7, 0x8b, 0x05, 0x7d, 0xe2, 0x7c, 0xf2, 0x40, 0x0f, 0x09, 0x22,
		0x0d, 0x4e, 0xc2, 0xea, 0x24, 0x31, 0xa4, 0x9b, 0xa4, 0x90, 0xb6, 0xf2, 0x1e, 0xfa, 0xc9, 0x79,
		0xe8, 0xa0, 0x4e, 0xad, 0x93, 0x24, 0x50, 0xec, 0x0a, 0xaa, 0x3b, 0x3b, 0x70, 0x06, 0x70, 0x06,
		0x48, 0x4c, 0x0a, 0x60, 0xfd, 0x25, 0x4e, 0x39, 0xc1, 0x62, 0xee, 0xa1, 0x19, 0xa7, 0x9c, 0xf8,
		0x9e, 0x72, 0xe2, 0x2a, 0xa2, 0x53, 0xbc, 0xf3, 0x4d, 0x0c, 0xd5, 0x71, 0x18, 0x75, 0xe9, 0xfd,
		0x82, 0xb8, 0x90, 0xdc, 0xda, 0x5c, 0xa8, 0xdb, 0x30, 0xdb, 0xf3, 0xe5, 0x29, 0x64, 0xc3, 0x57,
		0xb8, 0x46, 0x2b, 0xa1, 0x1a, 0xc6, 0xc2, 0x34, 0x8c, 0x85, 0x68, 0xb8, 0x38, 0x44, 0xa6, 0x04,
		0xb9, 0xc0, 0xc4, 0xb8, 0xc4, 0xaa, 0x6d, 0xbf, 0x58, 0x54, 0x98, 0x07, 0x09, 0xa6, 0x4f, 0x29,
		0x69, 0x5b, 0x48, 0xdc, 0xb7, 0x97, 0xc4, 0x5d, 0xe0, 0x39, 0xe6, 0x2c, 0xc4, 0xf2, 0x95, 0xcb,
		0xa3, 0xcf, 0xa0, 0xe4, 0x89, 0x91, 0xf0, 0x84, 0x1a, 0xf0, 0xd9, 0xc7, 0x66, 0x14, 0x2c, 0x97,
		0xcd, 0x1a, 0xdd, 0xe3, 0xa3, 0x5a, 0xa5, 0x5a, 0x3b, 0x30, 0x96, 0x4e, 0xd4, 0x68, 0xde, 0x05,
		0x42, 0xf9, 0x72, 0xa2, 0x7c, 0x63, 0x34, 0xf1, 0x8c, 0xde, 0x6c, 0x3a, 0x9d, 0x78, 0x81, 0x31,
		0x19, 0x19, 0x0d, 0x39, 0x1a, 0xf9, 0xc2, 0xbb, 0x35, 0x2f, 0x94, 0xf3, 0xd5, 0xf1, 0x84, 0x71,
		0x72, 0xda, 0xea, 0x19, 0x7d, 0xcf, 0x19, 0x8d, 0xe4, 0xc0, 0x68, 0xaa, 0xb1, 0x54, 0x42, 0x78,
		0x52, 0x8d, 0x37, 0x0d, 0x7f, 0x76, 0x65, 0xf6, 0x5b, 0xe7, 0x46, 0xb5, 0x7a, 0x60, 0xcc, 0x3f,
		0x6f, 0x18, 0xd5, 0xed, 0x8d, 0x0b, 0x55, 0xa9, 0x55, 0x36, 0x8c, 0x6a, 0xb5, 0xba, 0x51, 0xad,
		0x6e, 0x73, 0x0a, 0x5b, 0x4c, 0x7b, 0x08, 0x57, 0x7b, 0x06, 0x1f, 0xd6, 0x13, 0xb3, 0x8a, 0x2d,
		0xf7, 0x36, 0xc1, 0x47, 0x6d, 0x81, 0xb9, 0x2e, 0x38, 0x94, 0xb8, 0x0a, 0x66, 0xe5, 0x25, 0xfd,
		0x95, 0x52, 0xfa, 0x7a, 0x2d, 0x14, 0x42, 0x7c, 0x7a, 0x21, 0x3e, 0x3e, 0x3d, 0x1f, 0xdc, 0x4f,
		0x85, 0xf1, 0xdb, 0xbb, 0x45, 0x63, 0xb2, 0xe9, 0xfa, 0xc3, 0x2b, 0x33, 0x7c, 0xcd, 0x3f, 0xb0,
		0x7a, 0x76, 0xb7, 0x59, 0x3f, 0xfa, 0x54, 0x3f, 0xb4, 0x5a, 0x56, 0xff, 0xb3, 0x7d, 0x58, 0x6f,
		0x37, 0xfe, 0x63, 0x35, 0xfa, 0x9f, 0xec, 0xa3, 0x4e, 0xbb, 0xd7, 0xef, 0xd6, 0xad, 0x76, 0xbf,
		0xf7, 0x0e, 0xf1, 0x3a, 0xd3, 0x78, 0x1d, 0xad, 0x0b, 0x84, 0xea, 0xfc, 0x42, 0x75, 0x72, 0x0b,
		0x07, 0x02, 0x10, 0x29, 0x4c, 0x55, 0x43, 0xf8, 0x03, 0x4f, 0x4e, 0x59, 0xee, 0xe4, 0xc7, 0xce,
		0xb9, 0xa3, 0xdc, 0x7b, 0x43, 0xaa, 0x81, 0x3b, 0x1b, 0x0a, 0x23, 0xb8, 0x16, 0x46, 0x5c, 0xdf,
		0x33, 0x56, 0xaa, 0x7e, 0xe1, 0xd7, 0x81, 0x23, 0x95, 0xf0, 0x8c, 0xd0, 0x2b, 0x5c, 0xa8, 0xf0,
		0x27, 0x97, 0x94, 0x4f, 0xfa, 0x46, 0x04, 0xd0, 0x6a, 0x75, 0x93, 0x9b, 0xbb, 0x60, 0x7c, 0x32,
		0x6b, 0xd5, 0x53, 0x0f, 0x57, 0x90, 0xc8, 0xb0, 0x3b, 0x41, 0x87, 0x63, 0x58, 0x8f, 0x1c, 0x77,
		0xc2, 0x8b, 0x0a, 0x6d, 0x0c, 0xc8, 0xf1, 0x28, 0xe7, 0x78, 0xa8, 0x8c, 0xbf, 0xc5, 0x6f, 0xf0,
		0xda, 0xed, 0x2c, 0xc6, 0x2e, 0x27, 0x83, 0x28, 0xaa, 0xf5, 0x46, 0x26, 0xed, 0x90, 0x47, 0xd7,
		0x25, 0x13, 0x76, 0x76, 0x25, 0x71, 0x17, 0x08, 0x35, 0x14, 0x43, 0xd3, 0x19, 0xde, 0x48, 0x65,
		0x8e, 0xbd, 0xc9, 0x6c, 0x4a, 0xde, 0xe5, 0xc5, 0x79, 0xd2, 0xb3, 0xd6, 0x13, 0x0f, 0x2d, 0x3c,
		0xd4, 0xf2, 0xd8, 0xc8, 0xad, 0x70, 0x92, 0x55, 0x61, 0x28, 0x9f, 0xc2, 0x2d, 0x19, 0x67, 0x2b,
		0x87, 0xc2, 0x36, 0xdf, 0xe6, 0x29, 0x6f, 0x82, 0xc6, 0xa1, 0xb7, 0x4c, 0x39, 0x17, 0x35, 0x3a,
		0x66, 0x72, 0xc0, 0x2c, 0x65, 0x80, 0x99, 0xc9, 0xff, 0xb2, 0xd3, 0x91, 0xe3, 0xa8, 0x1b, 0xc7,
		0x58, 0x27, 0x4e, 0x87, 0x3d, 0x62, 0x96, 0x3a, 0x70, 0x7a, 0xed, 0x12, 0xb3, 0xd3, 0x79, 0xc3,
		0xf1, 0xc1, 0x22, 0x12, 0xa4, 0xd8, 0x60, 0x96, 0x75, 0xa0, 0x17, 0xc3, 0x0e, 0xc3, 0xba, 0xd0,
		0x4b, 0xb4, 0x0a, 0x77, 0xd0, 0x81, 0x66, 0x69, 0x4c, 0xb7, 0xb8, 0xd3, 0x2e, 0x6d, 0xe8, 0x97,
		0x36, 0x34, 0x4c, 0x0f, 0x3a, 0xc6, 0x8b, 0x96, 0x31, 0xa3, 0x67, 0x31, 0x44, 0xf8, 0xdf, 0x41,
		0x37, 0x93, 0x2a, 0xd8, 0xae, 0x32, 0xbe, 0x82, 0x8e, 0xe3, 0x0d, 0x74, 0xbc, 0x75, 0x74, 0x19,
		0x8b, 0x49, 0xeb, 0xa0, 0x9b, 0xab, 0x8b, 0x5e, 0xae, 0x76, 0xd2, 0x98, 0xfa, 0x48, 0x62, 0x32,
		0xd6, 0xc5, 0xd5, 0x42, 0x0f, 0x37, 0x5e, 0xe2, 0xb5, 0xea, 0x7e, 0x6d, 0x7f, 0x77, 0xaf, 0xba,
		0xbf, 0x83, 0xb5, 0x8e, 0xb5, 0x8e, 0x04, 0x81, 0xb1, 0xd5, 0x97, 0x48, 0xc4, 0x52, 0x5c, 0x8e,
		0x2c, 0x75, 0xeb, 0x56, 0x69, 0x29, 0x4f, 0xfd, 0xba, 0xd5, 0xa8, 0xab, 0x8d, 0x8e, 0x5d, 0x3c,
		0x28, 0xbe, 0x7a, 0x76, 0xeb, 0x43, 0x60, 0xa7, 0x6b, 0xc7, 0xd5, 0x13, 0x31, 0xd4, 0x44, 0x5a,
		0x1b, 0x03, 0x3f, 0x8d, 0x24, 0x8d, 0x6a, 0x14, 0x2b, 0x1a, 0x4a, 0x7b, 0xdb, 0x5b, 0x1f, 0x0e,
		0xe6, 0x4a, 0x2e, 0x43, 0x31, 0x34, 0xea, 0xc3, 0x1b, 0xa9, 0xa4, 0x1f, 0x78, 0x11, 0xf3, 0x34,
		0x3e, 0x7a, 0x93, 0xd9, 0xd4, 0x37, 0xa4, 0x8a, 0x04, 0x5c, 0x2e, 0xd4, 0x33, 0x0a, 0x2e, 0xc6,
		0xaf, 0xe1, 0x7f, 0x99, 0xfd, 0xe6, 0xfb, 0x07, 0x2d, 0x97, 0x4a, 0x2d, 0xd2, 0x72, 0xb9, 0x50,
		0xd5, 0xea, 0x46, 0x75, 0x7b, 0xa3, 0x52, 0xab, 0x6c, 0x2c, 0x84, 0x5c, 0x36, 0x71, 0x1d, 0x63,
		0xfe, 0xe3, 0xd0, 0x40, 0x5a, 0x69, 0x6d, 0x4c, 0x5a, 0xdf, 0xc8, 0x98, 0xc7, 0x3a, 0x45, 0xb6,
		0x09, 0xab, 0x75, 0xca, 0x36, 0xd1, 0xe5, 0x56, 0x44, 0xce, 0x0c, 0x4d, 0x68, 0x22, 0xa7, 0xa5,
		0x9f, 0x6b, 0x77, 0x63, 0x77, 0x2d, 0x8a, 0x36, 0x47, 0xa7, 0x97, 0x3c, 0x22, 0xa2, 0x11, 0x11,
		0x79, 0xe0, 0x74, 0xf1, 0x09, 0x34, 0x9f, 0xb5, 0xf6, 0xdd, 0x2c, 0x35, 0x9f, 0xa1, 0x05, 0x99,
		0x6e, 0xa9, 0xe2, 0x89, 0xa4, 0x9d, 0xf1, 0x23, 0x9a, 0x76, 0xcd, 0x3f, 0xfa, 0xcd, 0x76, 0xa3,
		0xd9, 0xb0, 0xeb, 0x8d, 0x13, 0xab, 0x6d, 0x7f, 0xec, 0x76, 0xce, 0x4e, 0xa1, 0x05, 0x99, 0x6d,
		0x81, 0x01, 0x5a, 0x90, 0x39, 0xd7, 0x0e, 0x92, 0x5b, 0x38, 0xd0, 0x82, 0x4c, 0x61, 0xaa, 0xf4,
		0xd4, 0x82, 0x5c, 0xb2, 0x7d, 0x23, 0x62, 0xfb, 0x46, 0xc4, 0xf6, 0x23, 0xad, 0xba, 0xf0, 0x7f,
		0x2f, 0xd4, 0xb2, 0xfe, 0x14, 0x41, 0x52, 0xfa, 0x46, 0xa5, 0x06, 0x01, 0xc8, 0x7c, 0xdc, 0x33,
		0x04, 0x20, 0x69, 0x79, 0xeb, 0x24, 0x56, 0x12, 0xea, 0x72, 0x45, 0xae, 0xcb, 0x41, 0xf5, 0x51,
		0xeb, 0xdc, 0x18, 0xaa, 0x8f, 0xf4, 0xea, 0x98, 0x10, 0x7d, 0xcc, 0xb3, 0x72, 0x09, 0xc9, 0x47,
		0xed, 0x3c, 0x5d, 0x49, 0x4e, 0x6f, 0x6b, 0xa6, 0x54, 0x81, 0xf0, 0x46, 0xce, 0x40, 0x98, 0xce,
		0x70, 0xe8, 0x09, 0xdf, 0xe7, 0x23, 0xfa, 0xf8, 0x82, 0xfd, 0x90, 0x7d, 0x4c, 0xc2, 0x4c, 0xc8,
		0x3e, 0xa6, 0x88, 0x5c, 0xc8, 0x3e, 0x66, 0x91, 0x76, 0x43, 0xf6, 0x31, 0xf3, 0xcc, 0x1a, 0xb2,
		0x8f, 0x85, 0xc8, 0x8f, 0x20, 0xfb, 0x98, 0x6e, 0x7c, 0x80, 0xec, 0x23, 0x88, 0x0d, 0x47, 0x82,
		0xc3, 0x98, 0xe8, 0x70, 0x25, 0x3c, 0xec, 0x89, 0x0f, 0x7b, 0x02, 0xc4, 0x9b, 0x08, 0xf1, 0x20,
		0x44, 0x4c, 0x88, 0x11, 0x3b, 0x82, 0x14, 0x1b, 0xcc, 0xa5, 0xf8, 0xf3, 0x62, 0xa4, 0xe1, 0x51,
		0xfd, 0x79, 0x89, 0x3c, 0x41, 0xdc, 0x11, 0x64, 0x4a, 0x63, 0x52, 0xc5, 0x9d, 0x5c, 0x69, 0x43,
		0xb2, 0xb4, 0x21, 0x5b, 0x7a, 0x90, 0x2e, 0x5e, 0xe4, 0x8b, 0x19, 0x09, 0x8b, 0x21, 0xc2, 0x5f,
		0xdc, 0x31, 0xda, 0xe9, 0xe2, 0xc9, 0x70, 0x56, 0x59, 0x4e, 0xe5, 0x03, 0x43, 0xdb, 0x4f, 0x9d,
		0x20, 0x10, 0x9e, 0x62, 0xab, 0xa0, 0x50, 0xfa, 0xf5, 0xcf, 0x2d, 0x73, 0xff, 0xf2, 0xef, 0x3f,
		0x2b, 0xe6, 0xfe, 0xe5, 0xfc, 0xcb, 0x4a, 0xf4, 0xe9, 0xaf, 0xea, 0xb7, 0xbf, 0xab, 0x7f, 0x6e,
		0x99, 0xb5, 0xc5, 0xab, 0xd5, 0x9d, 0x3f, 0xb7, 0xcc, 0x9d, 0xcb, 0xf7, 0xbf, 0x5e, 0x5c, 0x6c,
		0xfe, 0xec, 0xef, 0xbc, 0xff, 0x6b, 0xfb, 0x1b, 0x3f, 0xb7, 0x7b, 0xc9, 0x11, 0x8e, 0x9d, 0x9e,
		0xf5, 0x07, 0x7b, 0x4c, 0xfe, 0xef, 0xd7, 0xac, 0x50, 0xf9, 0xfe, 0x5f, 0x25, 0x1c, 0xfa, 0x06,
		0x1d, 0x58, 0xc1, 0x1e, 0x24, 0xc6, 0x72, 0x1e, 0x01, 0x24, 0xc6, 0x68, 0x0f, 0x01, 0x12, 0x63,
		0x19, 0x3d, 0x71, 0x48, 0x8c, 0x51, 0xf8, 0xd0, 0x43, 0x62, 0x6c, 0x67, 0x7b, 0x6b, 0xe7, 0xc0,
		0xb0, 0x7a, 0xa6, 0xd5, 0x9b, 0x0b, 0x18, 0xf9, 0x72, 0xa2, 0x7c, 0x63, 0x34, 0xf1, 0x8c, 0x67,
		0x74, 0x8a, 0x36, 0x1f, 0x0e, 0xb5, 0xec, 0x46, 0xea, 0x44, 0xc6, 0x5c, 0x9c, 0x08, 0x1a, 0x62,
		0xb4, 0xf2, 0x66, 0x68, 0x88, 0xd1, 0x1f, 0xd0, 0x13, 0x0d, 0xb1, 0xe4, 0x17, 0x22, 0x44, 0xc2,
		0x60, 0xb5, 0x4e, 0xf9, 0x22, 0x7a, 0x22, 0x8a, 0xc8, 0x7a, 0x21, 0x12, 0x46, 0xe4, 0x70, 0xdd,
		0xf3, 0xc7, 0x66, 0x20, 0x13, 0x96, 0xd7, 0x61, 0x3b, 0x6b, 0x7a, 0x5b, 0xb3, 0x96, 0xd3, 0x51,
		0x9f, 0xcf, 0x06, 0x84, 0xc2, 0x8a, 0x63, 0x21, 0x84, 0xc2, 0x92, 0xb7, 0x19, 0x42, 0x61, 0xe9,
		0x16, 0x1c, 0x5e, 0xa3, 0x77, 0x64, 0x9d, 0x9e, 0xd7, 0x6c, 0xab, 0xdd, 0x6f, 0x76, 0x8f, 0xeb,
		0x47, 0x4d, 0xbb, 0xde, 0x68, 0x74, 0x9b, 0xbd, 0x1e, 0xa4, 0xc2, 0xb2, 0xad, 0x23, 0x40, 0x2a,
		0x2c, 0xe7, 0x12, 0x41, 0x92, 0x4b, 0x07, 0x62, 0x61, 0x29, 0x4c, 0x96, 0x9e, 0x62, 0x61, 0xd6,
		0xe9, 0x6d, 0xcd, 0x88, 0x59, 0xbf, 0xb1, 0x60, 0xfd, 0x0b, 0xa9, 0xa3, 0xc1, 0x44, 0x05, 0x8e,
		0x54, 0xc2, 0xbb, 0x50, 0x4b, 0xd5, 0xa3, 0x58, 0xbe, 0x5e, 0xfa, 0x73, 0xdd, 0xa3, 0x5d, 0x88,
		0x87, 0xe5, 0xe2, 0xb0, 0x21, 0x1e, 0x46, 0xcb, 0x7f, 0xa7, 0xb1, 0xb2, 0x50, 0xbf, 0x2b, 0x72,
		0xfd, 0x0e, 0x62, 0x62, 0x5a, 0xe7, 0xcf, 0x10, 0x13, 0xa3, 0x58, 0xef, 0x84, 0x9c, 0x58, 0xbe,
		0x15, 0x4e, 0x08, 0x8a, 0x69, 0xe7, 0xed, 0xe6, 0xc7, 0x14, 0x96, 0x2b, 0x93, 0xa9, 0x9e, 0xd8,
		0x9a, 0xf9, 0x90, 0x13, 0x4b, 0xc2, 0x4c, 0xc8, 0x89, 0xa5, 0x08, 0x5c, 0xc8, 0x89, 0x65, 0x91,
		0x88, 0x43, 0x4e, 0x2c, 0xf3, 0x5c, 0x1b, 0x72, 0x62, 0x85, 0xc8, 0x90, 0x20, 0x27, 0x96, 0x6e,
		0x7c, 0x80, 0x9c, 0x18, 0x88, 0x0d, 0x47, 0x82, 0xc3, 0x98, 0xe8, 0x70, 0x25, 0x3c, 0xec, 0x89,
		0x0f, 0x7b, 0x02, 0xc4, 0x9b, 0x08, 0xf1, 0x20, 0x44, 0x4c, 0x88, 0x11, 0x3b, 0x82, 0x14, 0x1b,
		0x0c, 0x39, 0xb1, 0x5c, 0xc9, 0x13, 0xe4, 0xc4, 0x40, 0xa6, 0x34, 0x26, 0x55, 0xdc, 0xc9, 0x95,
		0x36, 0x24, 0x4b, 0x1b, 0xb2, 0xa5, 0x07, 0xe9, 0xe2, 0x45, 0xbe, 0x98, 0x91, 0xb0, 0x18, 0x22,
		0x90, 0x13, 0x23, 0xc2, 0x72, 0x20, 0x27, 0x96, 0xc7, 0x00, 0x20, 0x27, 0xf6, 0xd2, 0x07, 0xe4,
		0xc4, 0xf2, 0x1a, 0x05, 0xe4, 0xc4, 0xfe, 0x11, 0x97, 0xa0, 0x03, 0x29, 0x62, 0x0f, 0x72, 0x62,
		0x39, 0x8f, 0x00, 0x72, 0x62, 0xb4, 0x87, 0x00, 0x39, 0xb1, 0x8c, 0x9e, 0x38, 0xe4, 0xc4, 0x28,
		0x7c, 0x14, 0x5c, 0x4e, 0xec, 0xc3, 0xaa, 0x8a, 0x91, 0x51, 0x81, 0xa0, 0x18, 0xad, 0xcc, 0x19,
		0x82, 0x62, 0xf4, 0x07, 0x94, 0x94, 0xa0, 0xd8, 0x3f, 0x2c, 0x45, 0x48, 0x8a, 0xc1, 0x6a, 0x9d,
		0x72, 0x46, 0xf4, 0x45, 0x14, 0x91, 0xf9, 0x42, 0x52, 0x8c, 0xd2, 0x11, 0xbb, 0xa7, 0x27, 0x67,
		0xa0, 0x28, 0x96, 0xe7, 0x79, 0xbb, 0xe5, 0x8f, 0x43, 0x50, 0xac, 0x70, 0x16, 0x42, 0x50, 0x2c,
		0x79, 0x9b, 0x21, 0x28, 0x96, 0x6e, 0xc9, 0xe1, 0xd5, 0xaa, 0x48, 0xed, 0xa6, 0xf5, 0xf1, 0xd3,
		0x61, 0xa7, 0x0b, 0x3d, 0xb1, 0x7c, 0xca, 0x08, 0xd0, 0x13, 0xcb, 0xb9, 0x42, 0x90, 0xe0, 0xca,
		0x81, 0x9c, 0x58, 0x0a, 0x73, 0xa5, 0xb1, 0x9c, 0xd8, 0x92, 0xf1, 0xc7, 0x9a, 0x47, 0xb1, 0xda,
		0x91, 0x11, 0xba, 0x85, 0x0b, 0xf5, 0x9c, 0xda, 0xd1, 0x87, 0x4d, 0x08, 0x89, 0xe5, 0xe2, 0xa9,
		0x21, 0x24, 0x46, 0xcb, 0x71, 0x27, 0xbb, 0xa6, 0x50, 0xaf, 0x2b, 0x72, 0xbd, 0x0e, 0x12, 0x62,
		0x5a, 0x67, 0xcc, 0x90, 0x10, 0x23, 0x58, 0xdf, 0x84, 0x82, 0x58, 0xae, 0x15, 0x4d, 0x08, 0x88,
		0x69, 0xe7, 0xeb, 0x4a, 0x72, 0x7a, 0xbb, 0xfb, 0x8c, 0x54, 0x1f, 0x27, 0x05, 0xb1, 0x5d, 0x76,
		0x52, 0x83, 0x90, 0x10, 0x4b, 0xd8, 0x50, 0x48, 0x88, 0x21, 0x1d, 0x7f, 0x3e, 0x05, 0x87, 0x84,
		0x58, 0xe6, 0x59, 0x36, 0x24, 0xc4, 0x0a, 0x91, 0x21, 0x41, 0x42, 0x2c, 0xdd, 0xf8, 0x00, 0x09,
		0x31, 0x10, 0x1b, 0x8e, 0x04, 0x87, 0x31, 0xd1, 0xe1, 0x4a, 0x78, 0xd8, 0x13, 0x1f, 0xf6, 0x04,
		0x88, 0x37, 0x11, 0xe2, 0x41, 0x88, 0x98, 0x10, 0x23, 0x76, 0x04, 0x29, 0x36, 0x18, 0x12, 0x62,
		0xb9, 0x92, 0x27, 0x48, 0x88, 0x81, 0x4c, 0x69, 0x4c, 0xaa, 0xb8, 0x93, 0x2b, 0x6d, 0x48, 0x96,
		0x36, 0x64, 0x4b, 0x0f, 0xd2, 0xc5, 0x8b, 0x7c, 0x31, 0x23, 0x61, 0x31, 0x44, 0xb4, 0x90, 0x10,
		0xdb, 0x85, 0x84, 0x58, 0x4e, 0x8c, 0x81, 0xbd, 0x84, 0x58, 0xa4, 0xbc, 0xe4, 0x98, 0xa3, 0xba,
		0x79, 0x7c, 0xf9, 0x57, 0x65, 0xa3, 0xf6, 0xed, 0xe0, 0xfd, 0x5f, 0x7b, 0xdf, 0x9e, 0xbe, 0xf8,
		0xf7, 0x73, 0x3f, 0x56, 0xd9, 0xd8, 0xfb, 0x76, 0xf0, 0xc2, 0xff, 0xec, 0x7e, 0x3b, 0xf8, 0xc1,
		0xbf, 0xb1, 0xf3, 0xed, 0xd7, 0xb5, 0x1f, 0x0d, 0x5f, 0xaf, 0xbe, 0xf4, 0x0b, 0xb5, 0x17, 0x7e,
		0x61, 0xfb, 0xa5, 0x5f, 0xd8, 0x7e, 0xe1, 0x17, 0x5e, 0x34, 0xa9, 0xfa, 0xc2, 0x2f, 0xec, 0x7c,
		0xfb, 0x7b, 0xed, 0xe7, 0x7f, 0x7d, 0xfe, 0x47, 0x77, 0xbf, 0xbd, 0xff, 0xfb, 0xa5, 0xff, 0xdb,
		0xfb, 0xf6, 0xf7, 0xc1, 0xfb, 0xf7, 0x10, 0x55, 0xcb, 0x64, 0x81, 0xea, 0x24, 0xaa, 0x86, 0x65,
		0x9a, 0xfd, 0x32, 0x85, 0xc8, 0x1c, 0x08, 0xe3, 0xa3, 0xb5, 0x08, 0x91, 0xb9, 0x9c, 0x47, 0x00,
		0x91, 0x39, 0xda, 0x43, 0x80, 0xc8, 0x5c, 0x46, 0x4f, 0x1c, 0x22, 0x73, 0x14, 0x3e, 0xf4, 0x10,
		0x99, 0xdb, 0xad, 0x54, 0xf6, 0x0f, 0x0c, 0xeb, 0xf4, 0x76, 0xf7, 0x39, 0x25, 0x2b, 0x43, 0xaa,
		0xb9, 0xea, 0xd5, 0xe6, 0xf2, 0xbc, 0xd3, 0x85, 0xaa, 0x54, 0x57, 0x35, 0xad, 0xa0, 0x2e, 0x47,
		0xac, 0xa8, 0x02, 0x75, 0x39, 0xfa, 0x03, 0x7a, 0xa2, 0x2e, 0x97, 0xe8, 0x1a, 0x84, 0xac, 0x1c,
		0xac, 0xd6, 0x29, 0x4b, 0x44, 0xaf, 0x4c, 0x11, 0xb9, 0x2e, 0x64, 0xe5, 0xe8, 0x1c, 0xbb, 0x7c,
		0xe6, 0x38, 0x15, 0x74, 0xe5, 0x72, 0x3c, 0x85, 0xb9, 0x6b, 0x2d, 0xa7, 0x03, 0xc2, 0x72, 0x85,
		0xb3, 0x10, 0xc2, 0x72, 0xc9, 0xdb, 0x0c, 0x61, 0xb9, 0x74, 0xcb, 0x0c, 0xaf, 0x94, 0xc7, 0xda,
		0xb5, 0xad, 0x76, 0xbf, 0xd9, 0x3d, 0xae, 0x1f, 0x35, 0xa1, 0x2c, 0x97, 0x4f, 0x09, 0x01, 0xca,
		0x72, 0x39, 0x57, 0x07, 0x92, 0x5c, 0x3a, 0x90, 0x96, 0x4b, 0x61, 0xb2, 0xb4, 0x95, 0x96, 0xdb,
		0x35, 0x62, 0xd6, 0x1f, 0xeb, 0x60, 0x85, 0xee, 0x20, 0xfc, 0xff, 0x87, 0xfb, 0x0d, 0x22, 0x58,
		0x4a, 0xdf, 0xa8, 0x54, 0x21, 0x29, 0x97, 0x8f, 0x8b, 0x86, 0xa4, 0x1c, 0x2d, 0x8f, 0x9d, 0xcc,
		0x5a, 0x42, 0x8d, 0xae, 0xc8, 0x35, 0x3a, 0x48, 0xc9, 0x69, 0x9d, 0x23, 0x43, 0x4a, 0x8e, 0x62,
		0x4d, 0x13, 0x5a, 0x72, 0xf9, 0x56, 0x31, 0x21, 0x26, 0xa7, 0x9d, 0xb7, 0x9b, 0x1f, 0x51, 0x59,
		0x13, 0x6d, 0xe4, 0xa5, 0x25, 0xc7, 0x4c, 0x73, 0x12, 0x52, 0x72, 0x09, 0x1b, 0x0a, 0x29, 0x39,
		0xa4, 0xe1, 0xcf, 0xa7, 0xde, 0x90, 0x92, 0xcb, 0x3c, 0xbb, 0x86, 0x94, 0x5c, 0x21, 0x32, 0x24,
		0x48, 0xc9, 0xa5, 0x1b, 0x1f, 0x20, 0x25, 0x07, 0x62, 0xc3, 0x91, 0xe0, 0x30, 0x26, 0x3a, 0x5c,
		0x09, 0x0f, 0x7b, 0xe2, 0xc3, 0x9e, 0x00, 0xf1, 0x26, 0x42, 0x3c, 0x08, 0x11, 0x13, 0x62, 0xc4,
		0x8e, 0x20, 0xc5, 0x06, 0x43, 0x4a, 0x2e, 0x57, 0xf2, 0x04, 0x29, 0x39, 0x90, 0x29, 0x8d, 0x49,
		0x15, 0x77, 0x72, 0xa5, 0x0d, 0xc9, 0xd2, 0x86, 0x6c, 0xe9, 0x41, 0xba, 0x78, 0x91, 0x2f, 0x66,
		0x24, 0x2c, 0x86, 0x08, 0xa4, 0xe4, 0x88, 0xb0, 0x1c, 0x48, 0xc9, 0xe5, 0x31, 0x00, 0x68, 0x54,
		0x41, 0x4a, 0xee, 0x47, 0x3f, 0x20, 0x25, 0x97, 0xd7, 0x28, 0x20, 0x25, 0x07, 0x29, 0xb9, 0x9f,
		0x58, 0xa7, 0x20, 0x8c, 0x29, 0xae, 0x45, 0x48, 0xc9, 0xe5, 0x3c, 0x02, 0x48, 0xc9, 0xd1, 0x1e,
		0x02, 0xa4, 0xe4, 0x32, 0x7a, 0xe2, 0x90, 0x92, 0xa3, 0xf0, 0x51, 0x58, 0x29, 0xb9, 0xed, 0x03,
		0xc3, 0xea, 0x59, 0x3d, 0xe8, 0xc9, 0xd1, 0xad, 0xac, 0x40, 0x4f, 0x8e, 0xfe, 0x80, 0xde, 0xae,
		0x27, 0xf7, 0x9d, 0x85, 0x08, 0x51, 0x39, 0x58, 0xad, 0x53, 0xbe, 0x88, 0xae, 0x99, 0x22, 0xb2,
		0x5e, 0x88, 0xca, 0x51, 0x3a, 0x80, 0xf9, 0xf4, 0x5c, 0x15, 0x34, 0xe5, 0xf2, 0x3c, 0x8d, 0xb9,
		0xfc, 0x71, 0x48, 0xca, 0x15, 0xce, 0x42, 0x48, 0xca, 0x25, 0x6f, 0x33, 0x24, 0xe5, 0xd2, 0x2d,
		0x37, 0xbc, 0x5a, 0x17, 0xab, 0xdd, 0xb4, 0x3e, 0x7e, 0x3a, 0xec, 0x74, 0xa1, 0x28, 0x97, 0x4f,
		0x11, 0x01, 0x8a, 0x72, 0x39, 0xd7, 0x07, 0x12, 0x5c, 0x39, 0x10, 0x94, 0x4b, 0x61, 0xae, 0x34,
		0x16, 0x94, 0x5b, 0x32, 0xfe, 0x1f, 0xd1, 0xc0, 0xda, 0x86, 0x9e, 0x5c, 0x3e, 0x0e, 0x1a, 0x7a,
		0x72, 0xb4, 0xfc, 0x75, 0x22, 0x4b, 0x09, 0xd5, 0xb9, 0x22, 0x57, 0xe7, 0x20, 0x27, 0xa7, 0x75,
		0x7e, 0x0c, 0x39, 0x39, 0x82, 0xd5, 0x4c, 0xa8, 0xc9, 0xe5, 0x5a, 0xbf, 0x84, 0x98, 0x9c, 0x76,
		0xbe, 0xae, 0xe4, 0x3a, 0xca, 0x74, 0x86, 0xff, 0x9f, 0x33, 0x10, 0x6a, 0x70, 0x6f, 0xfa, 0x72,
		0xc8, 0x48, 0x49, 0xee, 0x19, 0xdb, 0x21, 0x23, 0x97, 0x84, 0x99, 0x90, 0x91, 0x4b, 0x11, 0xb5,
		0x90, 0x91, 0xcb, 0x22, 0xe3, 0x86, 0x8c, 0x5c, 0xe6, 0x49, 0x35, 0x64, 0xe4, 0x0a, 0x91, 0x19,
		0xb1, 0x91, 0x91, 0x5b, 0xa3, 0x07, 0xfc, 0x24, 0xe5, 0xd6, 0x87, 0x00, 0x79, 0xb9, 0x22, 0x13,
		0x1e, 0x8e, 0xc4, 0x87, 0x31, 0x01, 0xe2, 0x4a, 0x84, 0xd8, 0x13, 0x22, 0xf6, 0xc4, 0x88, 0x37,
		0x41, 0xe2, 0x41, 0x94, 0x98, 0x10, 0x26, 0x76, 0xc4, 0x29, 0x36, 0x98, 0x97, 0x0e, 0xef, 0x5a,
		0x9c, 0xe1, 0xd6, 0xfa, 0xca, 0x90, 0x38, 0xb1, 0x25, 0x50, 0x9c, 0x89, 0x94, 0x06, 0x84, 0x8a,
		0x3b, 0xb1, 0xd2, 0x86, 0x60, 0x69, 0x43, 0xb4, 0xf4, 0x20, 0x5c, 0xbc, 0x88, 0x17, 0x33, 0x02,
		0xc6, 0x96, 0x88, 0xc5, 0x86, 0x8f, 0x5c, 0x67, 0xec, 0xf3, 0x75, 0x96, 0xcb, 0x78, 0x35, 0x1f,
		0x06, 0x53, 0xff, 0xc2, 0x53, 0xfb, 0x97, 0x3d, 0x51, 0xd3, 0x81, 0xb0, 0x69, 0x44, 0xdc, 0x74,
		0x21, 0x70, 0xda, 0x11, 0x39, 0xed, 0x08, 0x9d, 0x5e, 0xc4, 0x8e, 0x27, 0xc1, 0x63, 0x4a, 0xf4,
		0x62, 0xe8, 0xb0, 0xd5, 0x12, 0x5e, 0x8b, 0x18, 0x42, 0xcd, 0x6e, 0x84, 0xe7, 0x30, 0x3d, 0x48,
		0xf0, 0x94, 0x44, 0x55, 0x6a, 0x8c, 0xc7, 0xd0, 0x54, 0xb3, 0x1b, 0xfe, 0x71, 0xaf, 0x3f, 0xe9,
		0x05, 0x9e, 0x54, 0x63, 0xf6, 0x23, 0x89, 0x46, 0xb3, 0x15, 0xae, 0x91, 0xc5, 0x51, 0x3a, 0xfb,
		0xb8, 0x7e, 0x62, 0xb5, 0x3e, 0x33, 0x8f, 0xe3, 0xd1, 0xb0, 0x2a, 0xe1, 0xb0, 0x0e, 0xeb, 0x47,
		0xbf, 0x9f, 0x9d, 0xea, 0x30, 0x9c, 0x6a, 0x38, 0x9c, 0xf3, 0x7a, 0xeb, 0xac, 0xa9, 0xc3, 0x68,
		0xb6, 0xc3, 0xd1, 0xb4, 0x3a, 0x47, 0xf5, 0x96, 0x0e, 0xa3, 0xa9, 0x85, 0xa3, 0xe9, 0x35, 0xfb,
		0x25, 0xd6, 0x43, 0xf9, 0xb6, 0xc1, 0xdd, 0x2b, 0x5b, 0x11, 0xd1, 0xd5, 0xc0, 0x25, 0x3f, 0xf1,
		0xc6, 0x6c, 0x0b, 0x0f, 0x8f, 0x06, 0xb5, 0xf0, 0xc5, 0xec, 0xf6, 0xe9, 0x9e, 0x1d, 0xcc, 0xdc,
		0x77, 0x1d, 0x18, 0xdb, 0x1a, 0x8c, 0x25, 0xf4, 0x5c, 0x07, 0x46, 0x4d, 0x83, 0x91, 0xcc, 0xe3,
		0xe3, 0x81, 0x51, 0xe5, 0xed, 0x88, 0x91, 0xa1, 0x23, 0xf0, 0xfd, 0x88, 0x0f, 0xe2, 0x2c, 0xde,
		0x1e, 0x8f, 0x82, 0xbd, 0x88, 0xfb, 0xc3, 0x48, 0x34, 0x14, 0x73, 0x8f, 0x07, 0xc7, 0x5f, 0xd4,
		0x7d, 0x7d, 0x28, 0x6c, 0xc5, 0xdd, 0xf9, 0xfa, 0x5b, 0x86, 0xbe, 0xb6, 0x14, 0x9f, 0xa8, 0x66,
		0x74, 0x1a, 0x62, 0x6d, 0x10, 0xcb, 0x62, 0xe8, 0xea, 0x60, 0xb0, 0x9b, 0x9c, 0x87, 0xf9, 0xd8,
		0x4d, 0x26, 0xb4, 0x1c, 0xb0, 0x9b, 0x4c, 0x67, 0x59, 0x63, 0x37, 0x99, 0xf8, 0x80, 0xb0, 0x9b,
		0x0c, 0xfe, 0xf4, 0x4a, 0xe8, 0xe8, 0xb3, 0x9b, 0xec, 0xdf, 0xfb, 0x81, 0xb8, 0xe1, 0x4b, 0x9f,
		0x0c, 0xe6, 0xd7, 0xd4, 0x3e, 0xd0, 0x10, 0xe6, 0x17, 0x61, 0xc6, 0x03, 0xf9, 0x73, 0xcb, 0xdc,
		0xaf, 0x9b, 0xc7, 0x8e, 0x39, 0xba, 0xfc, 0xab, 0xf6, 0xed, 0xe2, 0x62, 0xf3, 0x3b, 0x2f, 0xf0,
		0xf5, 0xb9, 0x97, 0x9c, 0xe1, 0xa6, 0xc3, 0xe5, 0xab, 0xf1, 0x68, 0xfe, 0xf7, 0xb3, 0xa0, 0xfb,
		0x17, 0x63, 0xd4, 0xa1, 0xb6, 0x03, 0x6e, 0xf2, 0xc2, 0x3a, 0xb8, 0x75, 0xdc, 0x99, 0xe0, 0x5f,
		0xd5, 0x99, 0x0f, 0x03, 0xf5, 0x9c, 0x3c, 0xcc, 0x47, 0x3d, 0x87, 0xd0, 0x42, 0x40, 0x3d, 0x87,
		0xce, 0xb2, 0x46, 0x3d, 0x87, 0xf8, 0x80, 0x50, 0xcf, 0x01, 0x67, 0x7a, 0x25, 0x74, 0xf4, 0xa9,
		0xe7, 0xcc, 0xa4, 0x0a, 0xb6, 0xab, 0x1a, 0x14, 0x73, 0xf6, 0x18, 0x0f, 0xa1, 0xeb, 0xa8, 0xb1,
		0x60, 0x9f, 0x55, 0x6b, 0xd0, 0x79, 0x7a, 0x22, 0x95, 0x16, 0x2d, 0xb4, 0xd1, 0x60, 0xce, 0x17,
		0xc9, 0x9d, 0x06, 0xdd, 0xb3, 0xd1, 0x78, 0x8e, 0x3d, 0x67, 0x10, 0xc8, 0x89, 0x6a, 0xc8, 0xb1,
		0xe4, 0xde, 0x2d, 0xf5, 0xd8, 0x17, 0x8b, 0xb1, 0x13, 0xc8, 0x5b, 0xc1, 0xba, 0x19, 0x47, 0x83,
		0xb0, 0xfe, 0xd8, 0x15, 0x38, 0x77, 0xfa, 0xb9, 0x82, 0x5a, 0x75, 0xbf, 0xb6, 0xbf, 0xbb, 0x57,
		0xdd, 0xdf, 0x81, 0x4f, 0x80, 0x4f, 0x40, 0x82, 0x52, 0x00, 0xeb, 0x51, 0xfe, 0x47, 0xcc, 0x7b,
		0xc9, 0xc9, 0x7c, 0x15, 0x72, 0x7c, 0x1d, 0xf0, 0xaf, 0xff, 0x2f, 0xc6, 0x81, 0x0d, 0x80, 0x3c,
		0xcc, 0xc7, 0x06, 0x00, 0xa1, 0x95, 0x80, 0x0d, 0x00, 0x3a, 0xcb, 0x1a, 0x1b, 0x00, 0xc4, 0x07,
		0x84, 0x0d, 0x00, 0xb0, 0xa6, 0x57, 0x42, 0x47, 0xaf, 0x0d, 0x80, 0x0f, 0x1a, 0xd4, 0xff, 0x77,
		0x50, 0xff, 0xcf, 0xf9, 0x03, 0xf5, 0x7f, 0x5a, 0x83, 0x41, 0xfd, 0x9f, 0x8b, 0x2b, 0x46, 0xfd,
		0x9f, 0xa0, 0x2b, 0xd0, 0xb1, 0xfe, 0x5f, 0xdd, 0x41, 0xe1, 0x1f, 0xce, 0x00, 0x89, 0x49, 0x11,
		0xac, 0x47, 0xe1, 0x1f, 0x16, 0xb3, 0x0f, 0xcd, 0xa5, 0xba, 0x52, 0x93, 0x60, 0x2e, 0x5e, 0xcb,
		0xf2, 0xfe, 0x05, 0x7f, 0x70, 0x2d, 0x6e, 0x9c, 0xa9, 0x13, 0x5c, 0x87, 0xc9, 0x76, 0x79, 0x12,
		0x5f, 0xee, 0x6f, 0xaa, 0xf9, 0xe5, 0xfd, 0xa6, 0x5c, 0xdc, 0xa6, 0x5f, 0x7e, 0xfa, 0x82, 0xbf,
		0xf6, 0x4a, 0x79, 0xba, 0xbc, 0xe0, 0x3f, 0xfe, 0xaa, 0x2c, 0x7d, 0xe9, 0x97, 0xdd, 0xe8, 0x82,
		0xff, 0xf9, 0xa7, 0xb2, 0x2b, 0xd5, 0x17, 0x33, 0xba, 0xc9, 0xca, 0x1c, 0x2e, 0xae, 0xf8, 0x2f,
		0xbb, 0xfe, 0xb4, 0x1c, 0xb8, 0xb7, 0x7e, 0xf8, 0x4f, 0xf9, 0x26, 0x30, 0xa5, 0xaf, 0xca, 0x4b,
		0x2d, 0x0c, 0x3f, 0xfe, 0xaa, 0xfc, 0xf0, 0xd6, 0xf1, 0x5b, 0xfa, 0xf3, 0x3b, 0xfe, 0x17, 0x9f,
		0xcb, 0xeb, 0x17, 0xa8, 0xaf, 0xbf, 0x54, 0xe6, 0x78, 0x8d, 0xd6, 0x7c, 0xb6, 0x02, 0x6f, 0x36,
		0x08, 0xd4, 0xa2, 0x34, 0xd2, 0x89, 0x27, 0xab, 0x3d, 0x9f, 0x08, 0x6b, 0xf1, 0x50, 0xec, 0x27,
		0xdf, 0xfb, 0x4f, 0x5f, 0xb0, 0x4f, 0x97, 0x13, 0x15, 0x7f, 0x65, 0x5b, 0xbe, 0xf4, 0xed, 0x56,
		0x34, 0x51, 0xf3, 0x4f, 0x76, 0x4b, 0xaa, 0x2f, 0xbd, 0xf0, 0x51, 0x35, 0x16, 0xd3, 0x64, 0xb7,
		0xfc, 0xa9, 0xdd, 0x77, 0x6f, 0xfd, 0xf0, 0x1f, 0xfb, 0x24, 0xb0, 0x7c, 0x65, 0xb7, 0x97, 0xb3,
		0x14, 0x7f, 0x65, 0x3f, 0xbc, 0x6d, 0xfc, 0x7e, 0xbd, 0xf9, 0x2c, 0x2d, 0x3e, 0xdb, 0x2d, 0x47,
		0xd5, 0x97, 0x33, 0xd2, 0x93, 0x43, 0xff, 0xe9, 0x0b, 0x76, 0xf4, 0xb6, 0xbc, 0x8a, 0x9d, 0x7c,
		0xfc, 0x2c, 0x23, 0x1f, 0xcb, 0xf4, 0x04, 0x18, 0xeb, 0x93, 0x5f, 0x4c, 0x37, 0x7c, 0x71, 0x61,
		0x5f, 0x9e, 0x40, 0xc7, 0x85, 0x7d, 0xf9, 0x2d, 0x57, 0x5c, 0xd8, 0x47, 0x2d, 0x29, 0xc0, 0x85,
		0x7d, 0xe0, 0x34, 0xff, 0x0c, 0x11, 0xb6, 0x1b, 0xb4, 0xb1, 0xc7, 0x77, 0x85, 0x33, 0xf2, 0xc4,
		0x88, 0xa3, 0xc7, 0x5f, 0xea, 0xeb, 0x30, 0x3c, 0x93, 0x55, 0x3a, 0x5d, 0xa4, 0xea, 0x9b, 0x9b,
		0xf3, 0x34, 0xb6, 0x3c, 0xa7, 0x98, 0x48, 0x95, 0x0a, 0x6c, 0x29, 0x97, 0xeb, 0xe2, 0x7f, 0x17,
		0xf7, 0xdc, 0x92, 0x22, 0x9e, 0x32, 0xde, 0x7c, 0x65, 0xbb, 0xb5, 0x92, 0xe9, 0x66, 0x2c, 0xcb,
		0xcd, 0x58, 0x86, 0x9b, 0x8b, 0x37, 0x64, 0xba, 0x75, 0x50, 0xc8, 0x2d, 0x03, 0x46, 0x2c, 0xb7,
		0x30, 0x9b, 0x04, 0x3c, 0x38, 0x2f, 0x7d, 0x06, 0x49, 0xdb, 0x42, 0xe2, 0xde, 0xbc, 0x24, 0xee,
		0x02, 0xcf, 0x31, 0x67, 0x21, 0x86, 0xaf, 0x5c, 0x1e, 0x29, 0x7d, 0xc9, 0x13, 0x23, 0xe1, 0x09,
		0x35, 0xe0, 0xd3, 0xd3, 0xcb, 0x28, 0x3c, 0x2e, 0xeb, 0x23, 0x43, 0xcf, 0x19, 0x05, 0xa6, 0x14,
		0xc1, 0x28, 0x2a, 0x00, 0x9a, 0xbe, 0x18, 0x87, 0xac, 0xd6, 0xf4, 0x26, 0xb3, 0x40, 0xaa, 0xb1,
		0x29, 0xee, 0x02, 0xa1, 0x7c, 0x39, 0x51, 0xfe, 0xa6, 0xe1, 0xcf, 0xae, 0xcc, 0x7e, 0xeb, 0xdc,
		0xd8, 0xae, 0x1e, 0x5c, 0xa8, 0xf0, 0x8b, 0x6a, 0x75, 0xc3, 0xa8, 0xce, 0xff, 0xd9, 0xde, 0x30,
		0x2a, 0xb5, 0xca, 0x26, 0xa7, 0x08, 0xc4, 0xb4, 0xa2, 0xbe, 0x5a, 0x49, 0x7f, 0x58, 0x22, 0xcc,
		0x0a, 0x8b, 0xdc, 0x8b, 0xe8, 0x8f, 0x8a, 0xe7, 0x49, 0xaf, 0x21, 0xd4, 0x9d, 0x0a, 0x66, 0x25,
		0x03, 0x49, 0xeb, 0xd2, 0xd7, 0x6b, 0xa1, 0x10, 0x88, 0xd3, 0x0b, 0xc4, 0x71, 0xa5, 0x3c, 0xb8,
		0x9f, 0x0a, 0xe3, 0x37, 0xe3, 0xdd, 0x62, 0x4b, 0xce, 0x74, 0xfd, 0xe1, 0x95, 0x19, 0xbe, 0xe8,
		0x1f, 0x58, 0x3d, 0xbb, 0xdb, 0xac, 0x1f, 0x7d, 0xaa, 0x1f, 0x5a, 0x2d, 0xab, 0xff, 0xd9, 0xae,
		0x37, 0xfe, 0x6d, 0xb7, 0xea, 0x6d, 0xbb, 0x67, 0x35, 0xde, 0x21, 0xf2, 0x66, 0x1a, 0x79, 0xa3,
		0xe5, 0x80, 0xa0, 0x9b, 0x5f, 0xd0, 0x7d, 0xf3, 0x7a, 0x41, 0x23, 0x5c, 0x0a, 0x33, 0xd4, 0x10,
		0xfe, 0xc0, 0x93, 0x53, 0x96, 0x9d, 0xc6, 0xb1, 0x2b, 0xee, 0x28, 0xf7, 0xde, 0x90, 0x6a, 0xe0,
		0xce, 0x86, 0xc2, 0x08, 0xae, 0x85, 0xd1, 0xaa, 0xb7, 0x8d, 0xb8, 0xd0, 0x66, 0xf4, 0xac, 0x86,
		0x31, 0x98, 0xa8, 0xc0, 0x91, 0x4a, 0x78, 0x46, 0xe8, 0x08, 0x2e, 0x54, 0xf8, 0x53, 0x4b, 0x6a,
		0x27, 0x7d, 0x23, 0xc2, 0xe4, 0x76, 0x75, 0x93, 0x9b, 0x87, 0x60, 0xdc, 0x64, 0xb4, 0xea, 0x9c,
		0x87, 0x2b, 0x28, 0x64, 0xb8, 0x79, 0xae, 0x43, 0x87, 0xd1, 0x23, 0x5f, 0x9d, 0xe0, 0x82, 0x42,
		0x07, 0x01, 0x32, 0x39, 0xca, 0x99, 0x1c, 0xaa, 0xd4, 0x6f, 0xf1, 0x19, 0xbc, 0xf6, 0x1a, 0x0b,
		0xb0, 0xc7, 0xc8, 0x20, 0x7c, 0x6a, 0xbb, 0x93, 0x48, 0x3b, 0xd6, 0xd1, 0xf5, 0xc5, 0x84, 0xbd,
		0x5c, 0x29, 0x5a, 0xbe, 0x4e, 0x10, 0x78, 0xf2, 0x6a, 0x16, 0x08, 0x9f, 0xbc, 0x9b, 0x7b, 0xe8,
		0xa3, 0x7d, 0x62, 0x38, 0xf1, 0x48, 0xb2, 0xec, 0x9d, 0x25, 0x6e, 0x26, 0x97, 0xc3, 0x40, 0x9c,
		0x0e, 0xff, 0x30, 0x3c, 0xec, 0xc3, 0x2d, 0xef, 0x66, 0x7b, 0x98, 0x87, 0x6d, 0x6a, 0xcd, 0xf3,
		0xb0, 0x0e, 0x7a, 0x76, 0xde, 0x32, 0xe5, 0x0d, 0xe9, 0x31, 0x49, 0x83, 0xa2, 0x63, 0xf0, 0x6c,
		0x9c, 0x57, 0x7c, 0x09, 0x37, 0x23, 0x7d, 0x05, 0x26, 0x84, 0x86, 0x1d, 0xb1, 0xe1, 0x48, 0x70,
		0x18, 0x13, 0x1d, 0xae, 0x84, 0x87, 0x3d, 0xf1, 0x61, 0x4f, 0x80, 0x78, 0x13, 0x21, 0x1e, 0x84,
		0x88, 0x09, 0x31, 0x62, 0x47, 0x90, 0x62, 0x83, 0xdd, 0xc9, 0xc0, 0x71, 0xcd, 0xa9, 0x37, 0x09,
		0xc4, 0x80, 0xf7, 0x16, 0xf9, 0xda, 0x48, 0x20, 0x1e, 0x03, 0x5a, 0xa5, 0x17, 0xbd, 0xd2, 0x80,
		0x66, 0x71, 0xa7, 0x5b, 0xda, 0xd0, 0x2e, 0x6d, 0xe8, 0x97, 0x1e, 0x34, 0x8c, 0x17, 0x1d, 0x63,
		0x46, 0xcb, 0x62, 0x88, 0xf0, 0x17, 0x8f, 0x11, 0x6a, 0x76, 0x23, 0x3c, 0x87, 0x6b, 0x1f, 0xd9,
		0xb2, 0x66, 0x54, 0x63, 0x68, 0x7b, 0x53, 0xcd, 0x6e, 0xf8, 0xc6, 0xab, 0xfe, 0xa4, 0x17, 0x78,
		0x52, 0x8d, 0x79, 0x5f, 0x6e, 0xb3, 0x15, 0xae, 0x81, 0x56, 0xe7, 0xa8, 0xde, 0xb2, 0x4f, 0xbb,
		0x9d, 0x7e, 0xf3, 0xa8, 0x6f, 0x75, 0xda, 0x9c, 0x2f, 0xb9, 0xa9, 0x44, 0x03, 0xb2, 0xda, 0xbf,
		0xdb, 0xcd, 0x3f, 0x8e, 0x5a, 0x67, 0x8d, 0x66, 0xa3, 0x84, 0xfb, 0x9e, 0x32, 0x5d, 0x16, 0x96,
		0x0a, 0x78, 0xaf, 0x89, 0xc7, 0xe8, 0x61, 0x53, 0x90, 0x7f, 0x7e, 0x2c, 0x4f, 0x97, 0xf6, 0x81,
		0xb1, 0x05, 0xb9, 0x7b, 0x58, 0xcc, 0x9e, 0x79, 0xb2, 0x54, 0xc3, 0x8a, 0xad, 0x67, 0xab, 0x8a,
		0xf5, 0x30, 0x02, 0x8d, 0xd4, 0xb1, 0xe2, 0x41, 0xf1, 0x55, 0xc9, 0x5a, 0x1f, 0x02, 0x3b, 0xb5,
		0x2c, 0xae, 0x9e, 0x88, 0xa1, 0xee, 0xca, 0xda, 0x18, 0xf8, 0xe9, 0xb0, 0x3c, 0xfd, 0xd0, 0xe0,
		0x82, 0xd1, 0xee, 0xf1, 0xd1, 0xce, 0x56, 0x75, 0xff, 0xc0, 0x68, 0x88, 0x91, 0x54, 0x32, 0x90,
		0x13, 0x65, 0x4c, 0x46, 0x86, 0xa3, 0x0c, 0xab, 0x67, 0x5a, 0x3d, 0xa3, 0x25, 0xd5, 0x17, 0xa3,
		0xbe, 0xec, 0xcf, 0x35, 0x7a, 0xb3, 0x2b, 0x33, 0xd2, 0x97, 0xd8, 0x34, 0x96, 0x22, 0x13, 0xcb,
		0xd3, 0x54, 0x95, 0xfd, 0x4d, 0x5c, 0x6c, 0x4d, 0xa0, 0x38, 0xc3, 0x5f, 0xc5, 0x65, 0x6d, 0x4c,
		0x5a, 0xdf, 0x6d, 0x9d, 0xec, 0x0a, 0xc4, 0x0d, 0xd9, 0xb0, 0xfa, 0x1f, 0x3f, 0x2e, 0x71, 0xd2,
		0xb5, 0xc0, 0x96, 0x42, 0x1d, 0x36, 0x5d, 0xbb, 0xb5, 0x3b, 0xb9, 0xf9, 0xf8, 0x78, 0x16, 0xbb,
		0xbb, 0xe3, 0xf4, 0x39, 0xc4, 0x29, 0xd5, 0x97, 0x98, 0x04, 0xf8, 0x9c, 0x6e, 0x88, 0x83, 0x04,
		0xac, 0xd6, 0x2e, 0x9b, 0xa5, 0x04, 0x2c, 0x44, 0xe7, 0xd2, 0xad, 0x2a, 0xbc, 0x46, 0x44, 0x2b,
		0xda, 0x01, 0xab, 0xf7, 0xfb, 0x5d, 0xeb, 0xf0, 0xac, 0xdf, 0xec, 0x41, 0x78, 0x2e, 0xdb, 0x62,
		0x01, 0x84, 0xe7, 0x72, 0xae, 0x03, 0x24, 0xb2, 0x66, 0x20, 0x3e, 0x97, 0xc2, 0x2c, 0xe9, 0x29,
		0x3e, 0x17, 0x52, 0x7b, 0xe3, 0x81, 0xda, 0x3f, 0x51, 0xca, 0x0a, 0x7f, 0xe4, 0x42, 0x3d, 0x55,
		0xca, 0xe2, 0x57, 0xe3, 0x85, 0xf4, 0x1c, 0x3c, 0x75, 0x1a, 0xde, 0x3a, 0xb1, 0xe5, 0x84, 0x72,
		0x5c, 0x91, 0xcb, 0x71, 0x10, 0x9e, 0xd3, 0x3a, 0x37, 0x86, 0xf0, 0x1c, 0xa9, 0xf2, 0x25, 0x54,
		0xe7, 0xf2, 0x2a, 0x58, 0x42, 0x73, 0x4e, 0x3b, 0x07, 0x37, 0x97, 0x6e, 0x1b, 0x0a, 0xd7, 0xb9,
		0x67, 0x26, 0x37, 0x37, 0xb7, 0x19, 0x4a, 0x73, 0x49, 0x98, 0x09, 0xa5, 0xb9, 0x14, 0xd1, 0x0a,
		0xa5, 0xb9, 0x2c, 0x52, 0x6b, 0x28, 0xcd, 0x65, 0x9e, 0x3d, 0x43, 0x69, 0xae, 0x10, 0xe9, 0x0f,
		0x94, 0xe6, 0xd2, 0x8d, 0x0f, 0x50, 0x9a, 0x03, 0xb1, 0xe1, 0x48, 0x70, 0x18, 0x13, 0x1d, 0xae,
		0x84, 0x87, 0x3d, 0xf1, 0x61, 0x4f, 0x80, 0x78, 0x13, 0x21, 0x1e, 0x84, 0x88, 0x09, 0x31, 0x62,
		0x47, 0x90, 0x62, 0x83, 0x1d, 0xf3, 0x4a, 0x06, 0x7c, 0x37, 0xc1, 0xe7, 0xe6, 0x43, 0x53, 0x0e,
		0x04, 0x4a, 0x2f, 0x22, 0xa5, 0x01, 0xa1, 0xe2, 0x4e, 0xac, 0xb4, 0x21, 0x58, 0xda, 0x10, 0x2d,
		0x3d, 0x08, 0x17, 0x2f, 0xe2, 0xc5, 0x8c, 0x80, 0xc5, 0x10, 0xe1, 0xaf, 0x29, 0x77, 0x35, 0x99,
		0xb8, 0xc2, 0x61, 0xad, 0x27, 0x57, 0x41, 0x2f, 0x54, 0xd1, 0x17, 0x63, 0x89, 0xc7, 0x7e, 0xf2,
		0x8b, 0xab, 0x90, 0xc3, 0xd6, 0x32, 0x12, 0x0c, 0x24, 0x18, 0x48, 0x30, 0x90, 0x60, 0x20, 0xc1,
		0x40, 0x82, 0x81, 0x04, 0x03, 0x09, 0xc6, 0x0f, 0x7a, 0xfc, 0x99, 0x54, 0xc1, 0x76, 0x95, 0x71,
		0x7e, 0xb1, 0xc7, 0xd0, 0xf4, 0xae, 0xa3, 0xc6, 0xd0, 0x47, 0xcb, 0xe1, 0xc1, 0x9f, 0x48, 0xc5,
		0x5f, 0x0b, 0xec, 0xdc, 0x71, 0x67, 0x82, 0xa7, 0xd6, 0xe7, 0xa3, 0x71, 0x1c, 0x7b, 0x4e, 0x74,
		0x1b, 0x50, 0x43, 0x8e, 0x25, 0x57, 0xf1, 0xd2, 0xc7, 0x3e, 0x55, 0x8c, 0x9d, 0x40, 0xde, 0x0a,
		0x96, 0x5a, 0x99, 0x8c, 0xc3, 0xf0, 0xe3, 0x25, 0xee, 0xdc, 0xe9, 0xb3, 0xc4, 0x6b, 0xd5, 0xfd,
		0xda, 0xfe, 0xee, 0x5e, 0x75, 0x7f, 0x07, 0x6b, 0x1d, 0x6b, 0x1d, 0x09, 0x02, 0x63, 0xab, 0xa1,
		0xd0, 0x57, 0x64, 0x4b, 0xa1, 0xd0, 0x97, 0xae, 0xdd, 0x5a, 0x1e, 0x71, 0x8d, 0xb6, 0x1d, 0x20,
		0xce, 0x97, 0xe7, 0x59, 0xd7, 0x46, 0x38, 0x05, 0xd0, 0xe5, 0x2b, 0x8e, 0x85, 0xd0, 0xe5, 0x4b,
		0xde, 0x66, 0x7e, 0x57, 0x02, 0x30, 0x3c, 0x6c, 0xd1, 0x3d, 0x3e, 0xda, 0xfb, 0x50, 0xd9, 0x3a,
		0x58, 0xe8, 0x8b, 0xf7, 0x3d, 0x67, 0x34, 0x92, 0x03, 0xa3, 0xa9, 0xc6, 0x52, 0x09, 0xe1, 0x49,
		0x35, 0x36, 0x7e, 0xed, 0x37, 0xdf, 0x1b, 0x27, 0x22, 0xf0, 0xe4, 0xe0, 0x42, 0x35, 0xef, 0x02,
		0xa1, 0x7c, 0x39, 0x51, 0xfe, 0x66, 0x2c, 0x35, 0xbe, 0xbd, 0x7d, 0x10, 0xcb, 0x8f, 0x57, 0xb7,
		0x37, 0x8c, 0x4a, 0xad, 0xb2, 0x61, 0x54, 0xa3, 0xef, 0xaa, 0xdb, 0x9b, 0x38, 0xc7, 0x91, 0xbe,
		0xdd, 0x1a, 0xe8, 0xfc, 0xeb, 0x75, 0x94, 0x23, 0x83, 0x65, 0x85, 0x54, 0xab, 0x60, 0x56, 0x5e,
		0x6e, 0x40, 0x4b, 0xb7, 0xe8, 0xe1, 0xfa, 0xd5, 0xba, 0xa0, 0x8d, 0x66, 0xab, 0xfe, 0x19, 0x32,
		0xba, 0xd9, 0xc6, 0x62, 0xc8, 0xe8, 0xe6, 0x1c, 0x86, 0xdf, 0xba, 0x5c, 0xd0, 0xd5, 0x9b, 0xc2,
		0x04, 0x69, 0xa1, 0xa0, 0x6b, 0x3d, 0x55, 0xfb, 0x8c, 0xaa, 0x6e, 0x2b, 0x42, 0x9f, 0x13, 0xe5,
		0xde, 0xc7, 0x6a, 0x9f, 0x4b, 0x4e, 0x77, 0xa1, 0x22, 0x20, 0x2e, 0x25, 0x3f, 0xb7, 0xb7, 0xa1,
		0xa0, 0x9b, 0x8f, 0x67, 0x86, 0x82, 0x2e, 0x2d, 0x47, 0x9d, 0xd8, 0x72, 0xc2, 0x76, 0x19, 0x72,
		0x38, 0xca, 0x39, 0x1c, 0xaa, 0xd8, 0x6f, 0xf1, 0x18, 0x50, 0xd0, 0x25, 0xb2, 0xbd, 0x08, 0xf1,
		0xdc, 0x1c, 0x36, 0x14, 0xa1, 0x9b, 0xab, 0x9d, 0x5b, 0x5b, 0xd1, 0xa0, 0x35, 0x6f, 0x1d, 0x4f,
		0xf2, 0x70, 0x6e, 0xcf, 0x28, 0xe8, 0xae, 0x58, 0x0f, 0x2d, 0xdd, 0x24, 0xcc, 0x84, 0x96, 0x6e,
		0x8a, 0xb8, 0x85, 0x96, 0x6e, 0x16, 0x49, 0x36, 0xb4, 0x74, 0x33, 0xcf, 0xa3, 0xa1, 0xa5, 0x5b,
		0x88, 0x44, 0x08, 0x5a, 0xba, 0xe9, 0xc6, 0x07, 0x68, 0xe9, 0x82, 0xd8, 0x70, 0x24, 0x38, 0x8c,
		0x89, 0x0e, 0x57, 0xc2, 0xc3, 0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42, 0xc4,
		0x84, 0x18, 0xb1, 0x23, 0x48, 0xb1, 0xc1, 0x90, 0xba, 0xca, 0x8d, 0x38, 0x41, 0xea, 0x0a, 0x44,
		0x4a, 0x63, 0x42, 0xc5, 0x9d, 0x58, 0x69, 0x43, 0xb0, 0xb4, 0x21, 0x5a, 0x7a, 0x10, 0x2e, 0x5e,
		0xc4, 0x8b, 0x19, 0x01, 0x8b, 0x21, 0x02, 0xa9, 0xab, 0xdc, 0xf9, 0x0d, 0xa4, 0xae, 0xb2, 0xfe,
		0x80, 0xd4, 0x55, 0xbe, 0x83, 0x80, 0xd4, 0x15, 0x55, 0x9f, 0x0a, 0xa9, 0x2b, 0x02, 0x4b, 0x1c,
		0x52, 0x57, 0x58, 0xeb, 0x58, 0xeb, 0x9a, 0x26, 0x08, 0x7c, 0xad, 0x86, 0xd4, 0x55, 0x91, 0x2d,
		0x85, 0xd4, 0x55, 0xba, 0x76, 0xeb, 0xdb, 0x8b, 0xfe, 0xd0, 0x7a, 0x0a, 0xd1, 0xab, 0xdc, 0x7b,
		0xd4, 0xcf, 0x97, 0x73, 0x01, 0xf5, 0xab, 0xe2, 0x58, 0x08, 0xf5, 0xab, 0xe4, 0x6d, 0x86, 0xfa,
		0x55, 0x9a, 0xb9, 0x49, 0x92, 0xea, 0x57, 0x3b, 0xb1, 0x4c, 0x4f, 0x75, 0x7b, 0xa3, 0x52, 0xab,
		0x6c, 0x54, 0xc3, 0x2f, 0xa1, 0x7c, 0x95, 0x89, 0xdd, 0x50, 0xbe, 0xa2, 0xc0, 0x89, 0x93, 0x56,
		0xbe, 0x7a, 0x79, 0x49, 0x21, 0xeb, 0x2a, 0x98, 0x95, 0x50, 0xbd, 0x42, 0x98, 0x7e, 0x9b, 0x8c,
		0x8f, 0x7d, 0x5e, 0xef, 0x5a, 0xf5, 0xbe, 0xd5, 0x69, 0x43, 0xff, 0x2a, 0xdb, 0x88, 0x0c, 0xfd,
		0xab, 0x9c, 0x83, 0x71, 0x72, 0x0b, 0x07, 0x4a, 0x58, 0x29, 0x4c, 0x95, 0x16, 0x4a, 0x58, 0x1d,
		0xe5, 0xde, 0x1b, 0xf2, 0x79, 0xfd, 0x9e, 0xb8, 0x32, 0xb7, 0xa2, 0xe4, 0x13, 0x3a, 0x85, 0x0b,
		0xb5, 0xa2, 0xe2, 0xf3, 0xa0, 0xdf, 0xb3, 0x03, 0x39, 0xac, 0x7c, 0x1c, 0x35, 0xe4, 0xb0, 0x68,
		0xf9, 0xed, 0x64, 0xd7, 0x14, 0xf6, 0xd5, 0x90, 0xe1, 0x51, 0xce, 0xf0, 0x50, 0xdb, 0x7e, 0x8b,
		0xdb, 0x80, 0x26, 0x16, 0xb9, 0x7d, 0x48, 0xa8, 0x63, 0xe5, 0xb9, 0xf3, 0x08, 0x99, 0x2c, 0xed,
		0x3c, 0xdd, 0x5c, 0x68, 0x4a, 0x0e, 0x99, 0x29, 0x63, 0xc9, 0x21, 0xc4, 0xb0, 0x12, 0x31, 0x13,
		0x62, 0x58, 0x29, 0x42, 0x15, 0x62, 0x58, 0x59, 0xa4, 0xd8, 0x10, 0xc3, 0xca, 0x3c, 0x8b, 0x86,
		0x18, 0x56, 0x21, 0x32, 0x20, 0x88, 0x61, 0xa5, 0x1b, 0x1f, 0x20, 0x86, 0x05, 0x62, 0xc3, 0x91,
		0xe0, 0x30, 0x26, 0x3a, 0x5c, 0x09, 0x0f, 0x7b, 0xe2, 0xc3, 0x9e, 0x00, 0xf1, 0x26, 0x42, 0x3c,
		0x08, 0x11, 0x13, 0x62, 0xc4, 0x8e, 0x20, 0xc5, 0x06, 0xbb, 0x93, 0x81, 0xe3, 0xf2, 0xdd, 0x11,
		0x9f, 0x9b, 0x0f, 0x31, 0x2c, 0x10, 0x28, 0xbd, 0x88, 0x94, 0x06, 0x84, 0x8a, 0x3b, 0xb1, 0xd2,
		0x86, 0x60, 0x69, 0x43, 0xb4, 0xf4, 0x20, 0x5c, 0xbc, 0x88, 0x17, 0x33, 0x02, 0x16, 0x43, 0x04,
		0x62, 0x58, 0xb9, 0xf3, 0x1b, 0x88, 0x61, 0x65, 0xfd, 0x01, 0x31, 0xac, 0x7c, 0x07, 0x01, 0x31,
		0x2c, 0xaa, 0x3e, 0x15, 0x62, 0x58, 0x04, 0x96, 0x38, 0xc4, 0xb0, 0xb0, 0xd6, 0xb1, 0xd6, 0x35,
		0x4d, 0x10, 0xf8, 0x5a, 0x7d, 0x89, 0x44, 0x2c, 0xc5, 0xe5, 0xc8, 0x50, 0x10, 0x64, 0x6d, 0x0c,
		0xfc, 0x04, 0x42, 0x34, 0xca, 0x0c, 0x56, 0x04, 0x44, 0x76, 0xb6, 0xb7, 0xf6, 0x96, 0x6a, 0x07,
		0x0f, 0x62, 0x06, 0x86, 0x54, 0x46, 0x6f, 0x36, 0x9d, 0x4e, 0xbc, 0xc0, 0x98, 0x8c, 0x8c, 0x8f,
		0x42, 0x09, 0xcf, 0x71, 0xe5, 0xff, 0x89, 0xe1, 0x85, 0x3a, 0x99, 0xb9, 0x81, 0x34, 0x97, 0xdd,
		0xd2, 0x46, 0xcb, 0xb9, 0x12, 0xae, 0xd1, 0xfb, 0x2a, 0x83, 0xc1, 0x75, 0x24, 0x8f, 0xf0, 0xf1,
		0xe4, 0xb4, 0xd5, 0x7b, 0xbf, 0x22, 0x87, 0x10, 0xa9, 0x21, 0x5c, 0xa8, 0xc7, 0x72, 0x08, 0x06,
		0x33, 0x89, 0x91, 0xb5, 0x67, 0xc8, 0xbc, 0x04, 0xfb, 0x50, 0x59, 0xe0, 0x2f, 0x41, 0xb2, 0x36,
		0x26, 0x5d, 0xaa, 0xb2, 0xf1, 0x80, 0x9e, 0x48, 0x94, 0xe4, 0xbb, 0x68, 0xc1, 0xfe, 0x60, 0xb5,
		0x4e, 0xec, 0x0f, 0xe2, 0x00, 0xa9, 0xf0, 0xbb, 0x9b, 0x49, 0x20, 0xf8, 0x76, 0x41, 0x2c, 0xec,
		0x47, 0x1b, 0x44, 0x16, 0x66, 0xa3, 0x0d, 0x22, 0x47, 0xa4, 0xa3, 0x0d, 0x82, 0x02, 0xf7, 0x46,
		0x1b, 0x04, 0x39, 0xa2, 0x8d, 0x36, 0x08, 0xb0, 0x9a, 0x67, 0x20, 0x82, 0x36, 0x88, 0xdc, 0xf9,
		0x0d, 0xda, 0x20, 0xb2, 0xfe, 0x40, 0x1b, 0x44, 0xbe, 0x83, 0x40, 0x1b, 0x04, 0x55, 0x9f, 0x8a,
		0x36, 0x08, 0x02, 0x4b, 0x1c, 0x6d, 0x10, 0x58, 0xeb, 0x58, 0xeb, 0x9a, 0x26, 0x08, 0x7c, 0xad,
		0x46, 0x1b, 0x44, 0x9a, 0xcb, 0x11, 0x6d, 0x10, 0xc8, 0x0c, 0x12, 0xc9, 0x87, 0xd1, 0x06, 0xf1,
		0xfa, 0x67, 0x88, 0x36, 0x08, 0xba, 0x63, 0x42, 0x1b, 0x04, 0xda, 0x20, 0xc0, 0xfe, 0xc0, 0xfe,
		0x34, 0x7b, 0xbe, 0x90, 0xd7, 0x48, 0xd4, 0xa7, 0xe2, 0x46, 0x58, 0x3a, 0x4a, 0xcc, 0x72, 0x88,
		0x4b, 0x60, 0xf3, 0x94, 0x62, 0xb6, 0x86, 0xb8, 0xf8, 0xb5, 0x38, 0x16, 0xe2, 0xe2, 0xd7, 0xe4,
		0x6d, 0xc6, 0x65, 0x72, 0xe9, 0xd6, 0x2a, 0x5e, 0x7d, 0x27, 0x96, 0xd5, 0xc0, 0xfd, 0x71, 0xd9,
		0xd6, 0x11, 0x70, 0x7f, 0x5c, 0xce, 0x25, 0x82, 0x37, 0xad, 0x15, 0x74, 0x85, 0xa7, 0x30, 0x3b,
		0x1a, 0x5f, 0x19, 0x27, 0x87, 0x42, 0x05, 0x72, 0x24, 0x85, 0xf7, 0xe4, 0x66, 0xab, 0xf0, 0x47,
		0x2e, 0xd4, 0xd3, 0x9b, 0xad, 0x6a, 0xb8, 0x2b, 0x2e, 0x17, 0xa7, 0x8c, 0xbb, 0xe2, 0x68, 0xf9,
		0xe8, 0x84, 0x16, 0x13, 0x4a, 0x6d, 0x45, 0x2e, 0xb5, 0xe1, 0x92, 0x38, 0xad, 0xf3, 0x60, 0x5c,
		0x12, 0x47, 0xa2, 0x34, 0x89, 0x7b, 0xe1, 0xb2, 0x2e, 0x46, 0xe2, 0x2e, 0x38, 0xed, 0x1c, 0xda,
		0xfc, 0x6a, 0x35, 0x77, 0xe2, 0xfb, 0xcc, 0x6e, 0x83, 0x8b, 0x4c, 0xc6, 0x7d, 0x70, 0x49, 0x98,
		0x89, 0xfb, 0xe0, 0x52, 0x04, 0x2b, 0xee, 0x83, 0xcb, 0x22, 0x8d, 0xc6, 0x7d, 0x70, 0x99, 0x67,
		0xca, 0xb8, 0x0f, 0xae, 0x10, 0xc9, 0x0e, 0xee, 0x83, 0x4b, 0x37, 0x3e, 0xe0, 0x3e, 0x38, 0x10,
		0x1b, 0x8e, 0x04, 0x87, 0x31, 0xd1, 0xe1, 0x4a, 0x78, 0xd8, 0x13, 0x1f, 0xf6, 0x04, 0x88, 0x37,
		0x11, 0xe2, 0x41, 0x88, 0x98, 0x10, 0x23, 0x76, 0x04, 0x29, 0x36, 0xd8, 0x31, 0xaf, 0x64, 0xc0,
		0x77, 0xbb, 0x7b, 0x6e, 0x3e, 0x84, 0xd0, 0x40, 0xa0, 0xf4, 0x22, 0x52, 0x1a, 0x10, 0x2a, 0xee,
		0xc4, 0x4a, 0x1b, 0x82, 0xa5, 0x0d, 0xd1, 0xd2, 0x83, 0x70, 0xf1, 0x22, 0x5e, 0xcc, 0x08, 0x58,
		0x0c, 0x11, 0xfe, 0x42, 0x68, 0x57, 0x93, 0x89, 0x2b, 0x1c, 0xc5, 0x58, 0x09, 0xad, 0x52, 0x41,
		0xe7, 0x53, 0xd1, 0x17, 0x23, 0xa3, 0x2d, 0xe5, 0x17, 0x57, 0x22, 0x97, 0x2d, 0x66, 0x24, 0x1a,
		0x48, 0x34, 0x90, 0x68, 0x20, 0xd1, 0x40, 0xa2, 0x81, 0x44, 0x03, 0x89, 0x06, 0x12, 0x8d, 0x1f,
		0xf4, 0xf8, 0x50, 0x5c, 0xce, 0xc1, 0x74, 0x28, 0x2e, 0xe7, 0xf4, 0xe0, 0xa1, 0xb8, 0x4c, 0x68,
		0x1c, 0x50, 0x61, 0x45, 0x18, 0x4e, 0x61, 0x89, 0x43, 0x71, 0x19, 0x6b, 0x1d, 0x6b, 0x5d, 0xd3,
		0x04, 0x81, 0xaf, 0xd5, 0xd0, 0xdc, 0x2b, 0xb2, 0xa5, 0xd0, 0xdc, 0x4b, 0xd7, 0x6e, 0x2d, 0x0f,
		0xb6, 0xba, 0x13, 0xdf, 0x87, 0xea, 0x5e, 0x9e, 0x07, 0x5d, 0x5b, 0x13, 0xdf, 0x87, 0xee, 0x5e,
		0x71, 0x2c, 0x84, 0xee, 0x5e, 0xf2, 0x36, 0xf3, 0xbb, 0x48, 0x80, 0xe1, 0x91, 0x8b, 0xee, 0xf1,
		0xd1, 0xde, 0x87, 0xca, 0xd6, 0x52, 0x73, 0xbc, 0xef, 0x39, 0xa3, 0x91, 0x1c, 0x18, 0x4d, 0x35,
		0x96, 0x4a, 0x08, 0x2f, 0x92, 0x10, 0xef, 0x37, 0xdf, 0x1b, 0x27, 0x22, 0xf0, 0xe4, 0xe0, 0x42,
		0x3d, 0x88, 0x92, 0xaf, 0x48, 0x8a, 0xef, 0x46, 0x9a, 0xe2, 0x46, 0xa4, 0x23, 0xbe, 0xbd, 0x61,
		0x54, 0x6a, 0x95, 0x0d, 0x83, 0xe3, 0x55, 0x00, 0x3a, 0x9c, 0xe6, 0xe0, 0x2a, 0xf5, 0xaf, 0xd7,
		0x81, 0x8e, 0x0c, 0x96, 0x15, 0x12, 0xad, 0x82, 0x59, 0x79, 0xb9, 0x01, 0xad, 0xdc, 0xa2, 0x87,
		0xeb, 0x57, 0xeb, 0x7f, 0xb6, 0x3a, 0xbd, 0x1e, 0xd4, 0x72, 0xb3, 0x0d, 0xc5, 0x50, 0xcb, 0xcd,
		0x39, 0x0a, 0xbf, 0x71, 0xb5, 0xa0, 0xb3, 0x37, 0x85, 0xf9, 0xd1, 0x58, 0x2f, 0xd7, 0x9d, 0xf8,
		0xfe, 0x33, 0xe2, 0x9e, 0x4b, 0x42, 0x77, 0xa1, 0x96, 0xe2, 0x9e, 0xdb, 0xbb, 0x9b, 0xd0, 0xca,
		0xcd, 0xc5, 0x25, 0x43, 0x2b, 0x97, 0x96, 0x87, 0x4e, 0x60, 0x21, 0x61, 0x7b, 0x0c, 0x59, 0x1b,
		0xe5, 0xac, 0x0d, 0x75, 0xeb, 0xb7, 0xf8, 0x0a, 0xe8, 0xe4, 0xd2, 0xd8, 0x4e, 0x84, 0x52, 0x6e,
		0xf6, 0x1b, 0x88, 0xd0, 0xca, 0xd5, 0xce, 0xa9, 0xcd, 0x4f, 0x05, 0x86, 0xab, 0x59, 0x44, 0x6d,
		0x6d, 0x51, 0x12, 0xca, 0x4c, 0x36, 0xf7, 0xa9, 0xf5, 0x50, 0xd0, 0x4d, 0xc2, 0x4c, 0x28, 0xe8,
		0xa6, 0x88, 0x5b, 0x28, 0xe8, 0x66, 0x91, 0x5c, 0x43, 0x41, 0x37, 0xf3, 0xfc, 0x19, 0x0a, 0xba,
		0x85, 0x48, 0x83, 0xa0, 0xa0, 0x9b, 0x6e, 0x7c, 0x80, 0x82, 0x2e, 0x88, 0x0d, 0x47, 0x82, 0xc3,
		0x98, 0xe8, 0x70, 0x25, 0x3c, 0xec, 0x89, 0x0f, 0x7b, 0x02, 0xc4, 0x9b, 0x08, 0xf1, 0x20, 0x44,
		0x4c, 0x88, 0x11, 0x3b, 0x82, 0x14, 0x1b, 0x1c, 0x70, 0x14, 0x80, 0x88, 0xc3, 0x0c, 0x83, 0xba,
		0xcf, 0x4b, 0xb4, 0x09, 0xb2, 0x56, 0xa0, 0x51, 0x1a, 0xd3, 0x29, 0xee, 0xb4, 0x4a, 0x1b, 0x7a,
		0xa5, 0x0d, 0xcd, 0xd2, 0x83, 0x6e, 0xf1, 0xa2, 0x5d, 0xcc, 0xe8, 0x57, 0x0c, 0x11, 0xfe, 0xb2,
		0x56, 0x42, 0xcd, 0x6e, 0x84, 0xe7, 0x70, 0x6d, 0x10, 0x5b, 0xd6, 0x86, 0x6a, 0x0c, 0x6d, 0x6f,
		0xaa, 0xd9, 0x0d, 0xdf, 0x78, 0xd5, 0x9f, 0xf4, 0x02, 0x4f, 0xaa, 0x31, 0x6b, 0x0d, 0x99, 0xd2,
		0x56, 0xb8, 0x06, 0x9a, 0x7f, 0xf4, 0xbb, 0x75, 0xbb, 0xdf, 0xad, 0x1f, 0x1f, 0x5b, 0x47, 0x25,
		0xc6, 0x92, 0x3e, 0x95, 0x70, 0x34, 0x67, 0xed, 0xd3, 0x6e, 0xa7, 0xdf, 0x3c, 0xea, 0x37, 0x1b,
		0x9c, 0xc7, 0x52, 0x0d, 0xc7, 0xd2, 0xfb, 0x54, 0xef, 0xf2, 0x1e, 0xc6, 0x76, 0xd4, 0x9a, 0xd3,
		0x6e, 0xda, 0x9d, 0x76, 0x93, 0xf3, 0x38, 0x6a, 0xe1, 0x38, 0x4e, 0x5b, 0x67, 0x3d, 0xee, 0x03,
		0xd9, 0x89, 0x56, 0x7c, 0xfb, 0x53, 0xbd, 0x7d, 0xd4, 0x6c, 0x94, 0x78, 0x6a, 0xfa, 0x6c, 0x70,
		0x0d, 0x19, 0x96, 0x0a, 0x78, 0xc7, 0x8b, 0x18, 0x38, 0x07, 0x06, 0x63, 0xa5, 0xb1, 0x27, 0x11,
		0x8f, 0xb5, 0xc8, 0x58, 0xec, 0x5c, 0x0f, 0x8c, 0x6d, 0xc6, 0xa3, 0x88, 0x5d, 0xeb, 0x81, 0x51,
		0x63, 0x3c, 0x8c, 0x45, 0xc0, 0x3e, 0x30, 0xaa, 0x8c, 0x07, 0xb1, 0xca, 0xa0, 0x0e, 0x8c, 0x0a,
		0x74, 0xdf, 0x60, 0x31, 0xfb, 0x4a, 0x45, 0x4b, 0xfa, 0x41, 0x3d, 0x08, 0x3c, 0x9e, 0xd5, 0x8a,
		0x13, 0xa9, 0x9a, 0xae, 0xb8, 0x11, 0x8a, 0xab, 0x24, 0x66, 0xe9, 0xc4, 0xb9, 0x5b, 0x19, 0x41,
		0xe5, 0x43, 0xad, 0xb6, 0xbb, 0x57, 0xab, 0x6d, 0xed, 0x6d, 0xef, 0x6d, 0xed, 0xef, 0xec, 0x54,
		0x76, 0x2b, 0x0c, 0xe9, 0x44, 0xa9, 0xe3, 0x0d, 0x85, 0x27, 0x86, 0x87, 0xf7, 0xa5, 0x03, 0x43,
		0xcd, 0x5c, 0x97, 0xf3, 0x10, 0xce, 0x7c, 0xe1, 0xb1, 0xd4, 0x28, 0xe5, 0xe6, 0x89, 0x18, 0x4a,
		0x73, 0xad, 0x8d, 0x81, 0x9f, 0x54, 0xd7, 0xd3, 0x0f, 0xc6, 0x39, 0xd8, 0x8a, 0x94, 0xd7, 0xce,
		0xf6, 0xd6, 0xde, 0x52, 0x73, 0xe8, 0x41, 0x52, 0xc8, 0x90, 0xca, 0xe8, 0xcd, 0xa6, 0xd3, 0x89,
		0x17, 0x18, 0x93, 0x91, 0xf1, 0x51, 0x28, 0xe1, 0x39, 0xae, 0xfc, 0x3f, 0x31, 0xbc, 0x50, 0x27,
		0x33, 0x37, 0x90, 0xe6, 0xf2, 0x98, 0x93, 0x61, 0xb4, 0x9c, 0x2b, 0xe1, 0x1a, 0xbd, 0xaf, 0x32,
		0x18, 0x5c, 0x47, 0x2a, 0x45, 0x1f, 0x4f, 0x4e, 0x5b, 0xbd, 0xf7, 0x0f, 0xaa, 0x44, 0xd5, 0xad,
		0x83, 0x0b, 0xb5, 0x90, 0x25, 0xaa, 0x6e, 0x6f, 0x54, 0x6a, 0x95, 0x8d, 0x6a, 0xf8, 0x25, 0x2f,
		0xa5, 0xaf, 0x75, 0xa2, 0xce, 0x7b, 0xbb, 0x34, 0x1e, 0x87, 0x06, 0x4a, 0x60, 0x6b, 0x63, 0xd2,
		0x65, 0x07, 0x35, 0x1e, 0xd0, 0x13, 0xa5, 0xb0, 0x9c, 0x57, 0x2d, 0x14, 0xc8, 0x61, 0xf5, 0x3f,
		0x7e, 0x40, 0x81, 0xbc, 0xc8, 0x96, 0x42, 0x81, 0x3c, 0x5d, 0xbb, 0xb5, 0x94, 0x0c, 0x78, 0x72,
		0x46, 0x18, 0x62, 0xe4, 0x79, 0x6a, 0x09, 0x9c, 0xc6, 0x93, 0xd1, 0xbf, 0x9f, 0x0a, 0xc8, 0x92,
		0x17, 0xc7, 0x42, 0xc8, 0x92, 0x27, 0x6f, 0x33, 0x24, 0x4e, 0xd3, 0x2d, 0x63, 0xbc, 0x5a, 0xb4,
		0x71, 0xb1, 0x49, 0x65, 0x75, 0xda, 0x76, 0xff, 0xf3, 0x69, 0x13, 0x6a, 0xa7, 0xd9, 0x96, 0x1b,
		0xa0, 0x76, 0x9a, 0x73, 0x25, 0x21, 0xb9, 0x85, 0x03, 0xe1, 0xd3, 0x14, 0xa6, 0x4a, 0x63, 0xe1,
		0xd3, 0x07, 0xb6, 0x3f, 0x97, 0x65, 0x7c, 0x2c, 0xdd, 0x78, 0xa1, 0x56, 0xb4, 0x1b, 0xe7, 0x3f,
		0x50, 0xdd, 0x82, 0x00, 0x6a, 0x3e, 0x5e, 0x1a, 0x02, 0xa8, 0xb4, 0x9c, 0x76, 0x82, 0x0b, 0x0a,
		0x55, 0xba, 0x22, 0x57, 0xe9, 0x20, 0x84, 0xaa, 0x75, 0xa6, 0x0c, 0x21, 0x54, 0x7a, 0x55, 0x4d,
		0x68, 0xa2, 0xe6, 0x59, 0xc7, 0x84, 0x3a, 0xaa, 0x76, 0x9e, 0xae, 0x74, 0xe3, 0xdc, 0x99, 0xd1,
		0x4a, 0xbb, 0x72, 0xd4, 0xf0, 0xab, 0x1c, 0x46, 0xde, 0x83, 0x89, 0x36, 0xea, 0x33, 0xb6, 0x43,
		0x19, 0x35, 0x09, 0x33, 0xa1, 0x8c, 0x9a, 0x22, 0x6a, 0xa1, 0x8c, 0x9a, 0x45, 0xd6, 0x0d, 0x65,
		0xd4, 0xcc, 0x13, 0x6b, 0x28, 0xa3, 0x16, 0x22, 0x2f, 0x82, 0x32, 0x6a, 0xba, 0xf1, 0x01, 0xca,
		0xa8, 0x20, 0x36, 0x1c, 0x09, 0x0e, 0x63, 0xa2, 0xc3, 0x95, 0xf0, 0xb0, 0x27, 0x3e, 0xec, 0x09,
		0x10, 0x6f, 0x22, 0xc4, 0x83, 0x10, 0x31, 0x21, 0x46, 0xec, 0x08, 0x52, 0x6c, 0x30, 0x9f, 0xd2,
		0xcf, 0x8b, 0xb1, 0x86, 0x4b, 0x05, 0xe8, 0x25, 0x02, 0x05, 0x8d, 0x54, 0x10, 0x2a, 0x8d, 0x89,
		0x15, 0x77, 0x82, 0xa5, 0x0d, 0xd1, 0xd2, 0x86, 0x70, 0xe9, 0x41, 0xbc, 0x78, 0x11, 0x30, 0x66,
		0x44, 0x2c, 0x86, 0x08, 0x7f, 0x8d, 0x54, 0x29, 0x84, 0x18, 0xb9, 0x13, 0x27, 0xd8, 0xae, 0x32,
		0xd6, 0x48, 0xdd, 0x67, 0x68, 0x7a, 0x4b, 0xa8, 0x71, 0x44, 0x8c, 0x21, 0xb2, 0x90, 0xf1, 0x93,
		0x3f, 0x91, 0x8a, 0xbf, 0x38, 0xc0, 0xb9, 0xe3, 0xce, 0x04, 0x6f, 0x45, 0xb5, 0x68, 0x1c, 0xc7,
		0x9e, 0x13, 0xb5, 0x81, 0x34, 0xe4, 0x58, 0x72, 0x55, 0x40, 0x7a, 0xec, 0x59, 0xc5, 0xd8, 0x09,
		0xe4, 0xad, 0x60, 0x29, 0xb8, 0xc3, 0x38, 0x18, 0x3f, 0x5e, 0xe2, 0xce, 0x1d, 0x96, 0x38, 0x96,
		0x38, 0x96, 0xb8, 0x4e, 0xd9, 0x01, 0x5f, 0xab, 0x2f, 0x91, 0x85, 0xa5, 0xb8, 0x1c, 0xa1, 0xba,
		0x86, 0x84, 0x20, 0x91, 0x64, 0x78, 0xae, 0xdf, 0xb4, 0xf3, 0x8c, 0x7e, 0xd3, 0x68, 0xe2, 0x19,
		0x7d, 0xcf, 0x19, 0x8d, 0xe4, 0xc0, 0x68, 0xaa, 0xb1, 0x54, 0x42, 0x78, 0x52, 0x8d, 0x37, 0x2f,
		0xd4, 0xf2, 0xe8, 0xce, 0xfe, 0x81, 0x01, 0x25, 0x35, 0xb2, 0x65, 0x02, 0x28, 0xa9, 0xd1, 0x1f,
		0xd0, 0xba, 0x92, 0x5a, 0xd2, 0x2b, 0x11, 0x3c, 0x0d, 0x56, 0xeb, 0xc4, 0xd3, 0xd0, 0x06, 0x52,
		0x44, 0xde, 0x0b, 0x75, 0x34, 0x22, 0xe7, 0x08, 0xd7, 0x4f, 0x09, 0x41, 0x1b, 0x2d, 0xaf, 0x33,
		0x85, 0x27, 0xce, 0x5d, 0xf8, 0xc7, 0x0f, 0x97, 0x33, 0x01, 0x65, 0xb4, 0xe2, 0x58, 0x08, 0x65,
		0xb4, 0xe4, 0x6d, 0x86, 0x32, 0x5a, 0xba, 0xa5, 0x86, 0xd7, 0x08, 0x3c, 0x9d, 0xd4, 0xff, 0x98,
		0x8b, 0x3c, 0x1d, 0xd6, 0xdb, 0x8d, 0xff, 0x58, 0x8d, 0xfe, 0x27, 0xe8, 0xa2, 0x65, 0x5b, 0x3c,
		0x80, 0x2e, 0x5a, 0xce, 0x75, 0x81, 0xa4, 0x96, 0x0d, 0x54, 0xd1, 0x52, 0x98, 0x28, 0x3d, 0x55,
		0xd1, 0x6e, 0x9c, 0x3b, 0x79, 0x33, 0xbb, 0x99, 0x8b, 0x39, 0xc5, 0x4c, 0xff, 0x1f, 0x65, 0x9c,
		0xa4, 0x3f, 0x57, 0x72, 0xda, 0x87, 0x32, 0x5a, 0x3e, 0x7e, 0x1a, 0xca, 0x68, 0xb4, 0xdc, 0x76,
		0xc2, 0x8b, 0x0a, 0x55, 0xba, 0x22, 0x57, 0xe9, 0xa0, 0x8e, 0xa6, 0x75, 0xb6, 0x0c, 0x75, 0x34,
		0x6a, 0x55, 0x4d, 0x68, 0xa3, 0xe5, 0x57, 0xc7, 0x84, 0x32, 0x9a, 0x76, 0x5e, 0x2e, 0x52, 0x17,
		0xf3, 0x84, 0x2f, 0xbc, 0x5b, 0xe7, 0xca, 0x15, 0xac, 0x45, 0xd2, 0x5e, 0x1e, 0x06, 0xf4, 0xd2,
		0x92, 0x30, 0x13, 0x7a, 0x69, 0x29, 0x02, 0x18, 0x7a, 0x69, 0x59, 0xe4, 0xe2, 0xd0, 0x4b, 0xcb,
		0x3c, 0xdd, 0x86, 0x5e, 0x5a, 0x21, 0x32, 0x25, 0xe8, 0xa5, 0xa5, 0x1b, 0x1f, 0xa0, 0x97, 0x06,
		0x62, 0xc3, 0x91, 0xe0, 0x30, 0x26, 0x3a, 0x5c, 0x09, 0x0f, 0x7b, 0xe2, 0xc3, 0x9e, 0x00, 0xf1,
		0x26, 0x42, 0x3c, 0x08, 0x11, 0x13, 0x62, 0xc4, 0x8e, 0x20, 0xc5, 0x06, 0x43, 0x2f, 0x2d, 0x77,
		0x02, 0x05, 0xbd, 0x34, 0x10, 0x2a, 0x8d, 0x89, 0x15, 0x77, 0x82, 0xa5, 0x0d, 0xd1, 0xd2, 0x86,
		0x70, 0xe9, 0x41, 0xbc, 0x78, 0x11, 0x30, 0x66, 0x44, 0x2c, 0x86, 0x08, 0xf4, 0xd2, 0x68, 0x90,
		0x1c, 0xe8, 0xa5, 0x65, 0xfe, 0x01, 0xbd, 0xb4, 0x7c, 0x07, 0x01, 0x31, 0x25, 0xaa, 0x9e, 0x15,
		0x7a, 0x69, 0x04, 0x96, 0x38, 0xf4, 0xd2, 0xb0, 0xc4, 0xb1, 0xc4, 0xf5, 0xca, 0x0e, 0xf8, 0x5a,
		0x0d, 0xbd, 0xb4, 0x34, 0x97, 0x23, 0xf4, 0xd2, 0x90, 0x10, 0x24, 0x92, 0x0c, 0xbf, 0x46, 0xa5,
		0xa9, 0xb7, 0x38, 0xce, 0x53, 0xd9, 0x82, 0x60, 0x1a, 0xe1, 0x3a, 0x01, 0x04, 0xd3, 0xe8, 0x0f,
		0xe8, 0xad, 0x82, 0x69, 0x3f, 0xb0, 0x14, 0xc1, 0xd4, 0x60, 0xb5, 0x4e, 0x4c, 0x0d, 0x8d, 0x20,
		0x45, 0x64, 0xbe, 0x50, 0x4c, 0x23, 0x74, 0xb6, 0xf0, 0xc5, 0x23, 0x43, 0x10, 0x4f, 0xcb, 0xf1,
		0xd0, 0x61, 0x37, 0x9e, 0x15, 0xc8, 0xa8, 0x15, 0xd4, 0x42, 0xc8, 0xa8, 0x25, 0x6f, 0x33, 0x64,
		0xd4, 0xd2, 0xad, 0x40, 0xbc, 0x56, 0x0f, 0xaa, 0xdb, 0xec, 0x35, 0xbb, 0xe7, 0xf5, 0xc3, 0x56,
		0x13, 0x62, 0x6a, 0x79, 0x15, 0x16, 0x20, 0xa6, 0x96, 0x73, 0xcd, 0x20, 0xd9, 0xc5, 0x03, 0x49,
		0xb5, 0x14, 0xa6, 0x4b, 0x6f, 0x49, 0xb5, 0x87, 0x54, 0xe0, 0x89, 0x10, 0xd4, 0x85, 0x7a, 0xac,
		0x04, 0x65, 0xac, 0x0a, 0x41, 0x45, 0x68, 0x95, 0xbe, 0x51, 0xd9, 0x82, 0xbc, 0x5a, 0x3e, 0x9e,
		0x1b, 0xf2, 0x6a, 0xb4, 0x1c, 0x79, 0x8a, 0x0b, 0x0c, 0xe5, 0xbd, 0x22, 0x97, 0xf7, 0x20, 0xb5,
		0xa6, 0x75, 0x46, 0x0d, 0xa9, 0x35, 0xc2, 0xe5, 0x50, 0xa8, 0xae, 0x51, 0x28, 0x80, 0x42, 0x7f,
		0x4d, 0x3b, 0xd7, 0x57, 0xba, 0x91, 0xca, 0x8c, 0x55, 0x0e, 0x87, 0xc2, 0x75, 0xee, 0x19, 0x89,
		0xae, 0xad, 0xdb, 0x0e, 0xa5, 0xb5, 0x24, 0xcc, 0x84, 0xd2, 0x5a, 0x8a, 0xa8, 0x85, 0xd2, 0x5a,
		0x16, 0x69, 0x39, 0x94, 0xd6, 0x32, 0xcf, 0xbc, 0xa1, 0xb4, 0x56, 0x88, 0x44, 0x09, 0x4a, 0x6b,
		0xe9, 0xc6, 0x07, 0x28, 0xad, 0x81, 0xd8, 0x70, 0x24, 0x38, 0x8c, 0x89, 0x0e, 0x57, 0xc2, 0xc3,
		0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42, 0xc4, 0x84, 0x18, 0xb1, 0x23, 0x48,
		0xb1, 0xc1, 0x8e, 0x79, 0x25, 0x03, 0xbe, 0x5b, 0xea, 0x73, 0xf3, 0xa1, 0xb0, 0x06, 0x02, 0xa5,
		0x17, 0x91, 0xd2, 0x80, 0x50, 0x71, 0x27, 0x56, 0xda, 0x10, 0x2c, 0x6d, 0x88, 0x96, 0x1e, 0x84,
		0x8b, 0x17, 0xf1, 0x62, 0x46, 0xc0, 0x62, 0x88, 0xf0, 0x57, 0x58, 0xbb, 0x9a, 0x4c, 0x5c, 0xe1,
		0x28, 0xc6, 0xea, 0x6a, 0x95, 0x0a, 0xba, 0xa6, 0x8a, 0xbe, 0x18, 0xa3, 0xdb, 0xb1, 0x78, 0xec,
		0x2d, 0xbf, 0xb8, 0x12, 0x1f, 0x86, 0x80, 0x44, 0x03, 0x89, 0x06, 0x12, 0x0d, 0x24, 0x1a, 0x48,
		0x34, 0x90, 0x68, 0x80, 0xd7, 0x20, 0xd1, 0xd0, 0x22, 0xd1, 0x98, 0x49, 0xc5, 0x5b, 0xc5, 0x79,
		0x8f, 0xa1, 0xe9, 0x5d, 0x47, 0x8d, 0xa1, 0xd9, 0x96, 0xc3, 0x83, 0xd7, 0x4a, 0xc4, 0x79, 0x0b,
		0x0a, 0xaf, 0xc4, 0x7c, 0x2a, 0x44, 0x9c, 0x09, 0x2c, 0x71, 0xad, 0x44, 0x9c, 0xab, 0xfb, 0xb5,
		0xfd, 0xdd, 0xbd, 0xea, 0xfe, 0x0e, 0xd6, 0x3a, 0xd6, 0x3a, 0x12, 0x04, 0xc6, 0x56, 0x43, 0x23,
		0xb0, 0xf0, 0xb1, 0x2a, 0x3a, 0xb7, 0xc4, 0xbd, 0x1c, 0x1e, 0x0f, 0x01, 0xe5, 0xf0, 0x2c, 0xcc,
		0x46, 0x39, 0x3c, 0x47, 0xb0, 0xa3, 0x1c, 0x9e, 0xdf, 0x72, 0x45, 0x39, 0x9c, 0xd8, 0x40, 0x50,
		0x0e, 0x07, 0xb7, 0xf9, 0x0e, 0x44, 0x50, 0x0e, 0xcf, 0x9d, 0xdf, 0xa0, 0x1c, 0x9e, 0xf5, 0x07,
		0xca, 0xe1, 0xf9, 0x0e, 0x02, 0xe5, 0x70, 0xaa, 0x3e, 0x15, 0xe5, 0x70, 0x02, 0x4b, 0x1c, 0xe5,
		0x70, 0xac, 0x75, 0xac, 0x75, 0x4d, 0x13, 0x04, 0xbe, 0x56, 0xa3, 0x1c, 0x5e, 0x64, 0x4b, 0x71,
		0x65, 0x4e, 0xba, 0x76, 0x6b, 0xa7, 0x11, 0xb9, 0x26, 0xf8, 0x86, 0x7b, 0x72, 0x72, 0x93, 0x89,
		0x94, 0xea, 0xc4, 0xb9, 0x0b, 0xff, 0x7e, 0x23, 0x9c, 0x08, 0x5c, 0x8e, 0x53, 0x1c, 0x0b, 0x71,
		0x39, 0x4e, 0xf2, 0x36, 0xf3, 0xbb, 0xc3, 0x97, 0xa1, 0x22, 0x51, 0xf7, 0xf8, 0x68, 0xef, 0x43,
		0x65, 0x6b, 0x79, 0x31, 0xe8, 0x33, 0x37, 0x81, 0x1a, 0xbf, 0xf6, 0x9b, 0xef, 0x8d, 0x13, 0x11,
		0x78, 0x72, 0x70, 0xa1, 0x1e, 0x6e, 0x0e, 0xdd, 0x8c, 0x05, 0xe1, 0xb7, 0x6b, 0xf1, 0x05, 0xa1,
		0x46, 0x75, 0x7b, 0xc3, 0xa8, 0xd4, 0x2a, 0x1b, 0x46, 0x35, 0xfa, 0x8e, 0xd7, 0x7d, 0xbd, 0x3a,
		0x88, 0x1d, 0x71, 0xbd, 0x8f, 0x57, 0x2f, 0xbd, 0xa3, 0x0c, 0x96, 0x15, 0x12, 0xaf, 0x82, 0x59,
		0x79, 0xb9, 0x81, 0x0b, 0xed, 0x8a, 0x1e, 0xae, 0x5f, 0x75, 0x27, 0x97, 0xd5, 0x8e, 0xee, 0xe5,
		0x6a, 0x59, 0xed, 0xdf, 0xed, 0x46, 0xb3, 0x55, 0xff, 0x8c, 0xab, 0xec, 0xb2, 0x8d, 0xc9, 0xb8,
		0xca, 0x2e, 0xe7, 0x70, 0x9c, 0xd4, 0xb2, 0x41, 0xef, 0x6f, 0x0a, 0x13, 0xa5, 0xe9, 0x25, 0x76,
		0x52, 0x95, 0x6f, 0x9c, 0xbb, 0xf9, 0xc5, 0x5a, 0x51, 0x61, 0xce, 0x58, 0xbf, 0x53, 0xeb, 0x42,
		0x2d, 0xc9, 0x9e, 0xf4, 0xe7, 0xf7, 0x6a, 0x6d, 0xd7, 0x70, 0x6b, 0x5d, 0x3e, 0x4e, 0x1a, 0xb7,
		0xd6, 0xd1, 0xf2, 0xd9, 0x49, 0xae, 0x28, 0x6c, 0xa9, 0x21, 0xb3, 0xa3, 0x9c, 0xd9, 0xa1, 0xb6,
		0xfd, 0x16, 0xa7, 0x81, 0x6b, 0xea, 0x88, 0x6d, 0x41, 0xe2, 0x6e, 0xba, 0xdc, 0x36, 0x1d, 0x71,
		0x21, 0x9d, 0x76, 0x4e, 0xae, 0xe4, 0x09, 0x5f, 0x0e, 0x67, 0x8e, 0xbb, 0x72, 0xf9, 0x23, 0x9b,
		0x0b, 0xe9, 0x9e, 0xb1, 0x1d, 0x17, 0xd2, 0x25, 0x61, 0x26, 0x2e, 0xa4, 0x4b, 0x11, 0xb5, 0xb8,
		0x90, 0x2e, 0x8b, 0x8c, 0x1b, 0x17, 0xd2, 0x65, 0x9e, 0x54, 0xe3, 0x42, 0xba, 0x42, 0xa4, 0x44,
		0xb8, 0x90, 0x2e, 0xdd, 0xf8, 0x80, 0x0b, 0xe9, 0x40, 0x6c, 0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87,
		0x2b, 0xe1, 0x61, 0x4f, 0x7c, 0xd8, 0x13, 0x20, 0xde, 0x44, 0x88, 0x07, 0x21, 0x62, 0x42, 0x8c,
		0xd8, 0x11, 0xa4, 0xd8, 0x60, 0x3e, 0xa5, 0x9f, 0x17, 0x63, 0x0d, 0x97, 0x0a, 0xd0, 0x4b, 0x04,
		0x0a, 0x02, 0x59, 0x20, 0x54, 0x1a, 0x13, 0x2b, 0xee, 0x04, 0x4b, 0x1b, 0xa2, 0xa5, 0x0d, 0xe1,
		0xd2, 0x83, 0x78, 0xf1, 0x22, 0x60, 0xcc, 0x88, 0x58, 0x0c, 0x11, 0xfe, 0x02, 0x59, 0x52, 0x08,
		0x31, 0x72, 0x27, 0x0e, 0x6f, 0x95, 0xac, 0x7d, 0x86, 0xa6, 0xb7, 0x84, 0x1a, 0x47, 0xc4, 0x18,
		0x32, 0x59, 0x19, 0x3f, 0x79, 0xad, 0x64, 0xb2, 0x6a, 0x90, 0xce, 0x21, 0xe6, 0x59, 0x21, 0x93,
		0x45, 0x60, 0x89, 0x6b, 0x25, 0x93, 0x85, 0x25, 0x8e, 0x25, 0x8e, 0xec, 0x80, 0xb1, 0xd5, 0x50,
		0xc7, 0x2a, 0xb2, 0xa5, 0x50, 0xc7, 0x4a, 0xd7, 0x6e, 0xdd, 0x5a, 0xd3, 0xd7, 0xbb, 0x4f, 0xa1,
		0x8e, 0x95, 0x57, 0xa3, 0x7a, 0x77, 0x31, 0x17, 0x87, 0xcb, 0xa9, 0x80, 0x3e, 0x56, 0x71, 0x2c,
		0x84, 0x3e, 0x56, 0xf2, 0x36, 0x43, 0x1f, 0x2b, 0xcd, 0xc4, 0x24, 0x49, 0x7d, 0xac, 0x3d, 0xe8,
		0x63, 0xe5, 0x6b, 0x37, 0xf4, 0xb1, 0x28, 0x90, 0xe2, 0xa4, 0xf5, 0xb1, 0xf6, 0xa0, 0x8f, 0x05,
		0x2b, 0x57, 0x4a, 0x03, 0xd0, 0xc7, 0x2a, 0x7c, 0xb8, 0x7e, 0x8d, 0xd0, 0x4f, 0xb7, 0xd9, 0xb3,
		0x1a, 0x67, 0xf5, 0x96, 0x7d, 0x58, 0x6f, 0x37, 0xfe, 0x63, 0x35, 0xfa, 0x9f, 0xa0, 0x8f, 0x95,
		0x6d, 0x4c, 0x86, 0x3e, 0x56, 0xce, 0xe1, 0x38, 0xa9, 0x65, 0x03, 0x7d, 0xac, 0x14, 0x26, 0x4a,
		0x4f, 0x7d, 0x2c, 0x4f, 0xf8, 0x43, 0x39, 0x73, 0x5c, 0x23, 0x2e, 0xcd, 0xfd, 0x98, 0x9a, 0xcf,
		0x1e, 0xf4, 0xb1, 0xf2, 0x71, 0xd2, 0xd0, 0xc7, 0xa2, 0xe5, 0xb3, 0x93, 0x5c, 0x51, 0xd8, 0x54,
		0x43, 0x66, 0x47, 0x39, 0xb3, 0x43, 0x6d, 0xfb, 0x2d, 0x4e, 0x03, 0xfa, 0x58, 0xc4, 0x36, 0x21,
		0xa1, 0x8f, 0x95, 0xe3, 0xb6, 0x23, 0x14, 0xb2, 0xb4, 0x73, 0x73, 0x4c, 0x64, 0x24, 0x58, 0xc9,
		0x47, 0x40, 0x07, 0x2b, 0x61, 0x43, 0xa1, 0x83, 0x85, 0x2c, 0xfb, 0xf9, 0xcc, 0x1a, 0x3a, 0x58,
		0x99, 0x27, 0xcf, 0xd0, 0xc1, 0x2a, 0x44, 0xea, 0xc3, 0x46, 0x07, 0x2b, 0xe0, 0x74, 0xfc, 0x31,
		0x0e, 0x0f, 0x91, 0xd5, 0xbc, 0x54, 0xb0, 0xb6, 0xa0, 0x82, 0x55, 0x78, 0x7a, 0xc3, 0x98, 0xe6,
		0x70, 0xa5, 0x3b, 0xec, 0x69, 0x0f, 0x7b, 0xfa, 0xc3, 0x9b, 0x06, 0xf1, 0xa0, 0x43, 0x4c, 0x68,
		0x51, 0x0c, 0x05, 0x76, 0xa2, 0x0b, 0x0f, 0x62, 0x0b, 0x43, 0xa1, 0x02, 0x19, 0xdc, 0x7b, 0x62,
		0xc4, 0xc9, 0x6b, 0x2f, 0x6b, 0x2a, 0x3b, 0x8c, 0x6c, 0xb6, 0x16, 0x8f, 0xfa, 0xd0, 0xf1, 0x05,
		0xdf, 0xfe, 0x03, 0xab, 0x67, 0xf5, 0xec, 0xde, 0xd9, 0x61, 0xbf, 0x75, 0x6e, 0xf7, 0x3f, 0x9f,
		0x36, 0xb9, 0x85, 0x9d, 0xe8, 0x04, 0xb3, 0xcf, 0x52, 0xe3, 0x82, 0xa9, 0x8c, 0x54, 0x8c, 0x9c,
		0xd3, 0xc7, 0x7d, 0x4f, 0xd6, 0xe9, 0x79, 0xcd, 0xee, 0x76, 0xce, 0xfa, 0xcd, 0xae, 0x6d, 0x35,
		0x18, 0xea, 0x18, 0x6d, 0x00, 0x41, 0xb9, 0x23, 0x68, 0x17, 0x08, 0x02, 0x82, 0x5e, 0x8f, 0xa0,
		0xd3, 0x6e, 0xf3, 0xd8, 0xfa, 0xc3, 0x3e, 0x6e, 0xd5, 0x3f, 0xf6, 0x80, 0x1f, 0xe0, 0xe7, 0x95,
		0xf8, 0xe9, 0xc1, 0xfb, 0x00, 0x3d, 0x3f, 0x8f, 0x9e, 0x39, 0x8d, 0xee, 0x71, 0xe4, 0xd1, 0x3a,
		0xf0, 0x69, 0xde, 0xa8, 0xd2, 0x9e, 0x5f, 0x33, 0xf6, 0x53, 0xfa, 0x23, 0x6b, 0x17, 0xc8, 0x02,
		0xb2, 0xc0, 0xc7, 0x81, 0x2b, 0xf0, 0x74, 0xa0, 0xaa, 0xa8, 0xa8, 0xea, 0xd7, 0x3f, 0x02, 0x4e,
		0x80, 0x53, 0x82, 0x70, 0xda, 0xad, 0x95, 0xa0, 0xdc, 0x99, 0xe9, 0xc7, 0x25, 0xea, 0x36, 0x58,
		0xb0, 0x45, 0xf0, 0xfb, 0x80, 0x0d, 0xfc, 0x3b, 0x80, 0xc3, 0x03, 0x38, 0x4f, 0x14, 0x42, 0xea,
		0x8d, 0x7f, 0xdb, 0xad, 0x7a, 0x1b, 0xdb, 0x0c, 0x80, 0xcf, 0x6b, 0xe1, 0x03, 0xe8, 0x00, 0x3a,
		0xaf, 0x82, 0xce, 0x89, 0xd5, 0xb6, 0x3f, 0x76, 0x3b, 0x67, 0xa7, 0x80, 0x0f, 0xe0, 0xf3, 0xd3,
		0xf0, 0x39, 0xaf, 0x5b, 0xad, 0xfa, 0x61, 0xab, 0xf9, 0xa0, 0x6d, 0x05, 0x18, 0x01, 0x46, 0x3f,
		0x0b, 0xa3, 0x18, 0x3c, 0xf6, 0x51, 0xa7, 0xdd, 0xeb, 0x77, 0xeb, 0x56, 0xbb, 0x8f, 0x76, 0x1d,
		0x00, 0xe9, 0xa7, 0x81, 0xd4, 0xfc, 0xa3, 0xdf, 0x6c, 0x37, 0x9a, 0x0d, 0xc4, 0x35, 0xe0, 0xe8,
		0x2d, 0x38, 0x8a, 0x5a, 0x2b, 0xac, 0x76, 0xbf, 0xd9, 0x3d, 0xae, 0x1f, 0x35, 0xed, 0x7a, 0xa3,
		0xd1, 0x6d, 0xf6, 0xe0, 0x91, 0x80, 0xa4, 0xd7, 0x21, 0xa9, 0xdd, 0xb4, 0x3e, 0x7e, 0x3a, 0xec,
		0x74, 0x01, 0x24, 0x00, 0xe9, 0x0d, 0x40, 0xda, 0x85, 0x4b, 0x02, 0x92, 0x12, 0x42, 0x12, 0x5c,
		0x12, 0x80, 0xf4, 0x56, 0x20, 0xb5, 0xac, 0xf6, 0xef, 0x76, 0xbd, 0xdf, 0xef, 0x5a, 0x87, 0x67,
		0xfd, 0x26, 0x20, 0x04, 0x08, 0xbd, 0x0e, 0x42, 0x8d, 0x66, 0xab, 0xfe, 0x19, 0xe8, 0x01, 0x7a,
		0x5e, 0x8f, 0x1e, 0xfb, 0xbc, 0xde, 0xb5, 0xea, 0x7d, 0xab, 0xd3, 0x06, 0x8e, 0x80, 0xa3, 0x57,
		0xe1, 0x08, 0x1b, 0x68, 0x80, 0xce, 0x2b, 0xa1, 0xd3, 0xea, 0x80, 0x40, 0x03, 0x3c, 0xaf, 0x04,
		0xcf, 0x69, 0xb7, 0xd3, 0x6f, 0x1e, 0x85, 0xa1, 0x6b, 0x7e, 0x4e, 0x10, 0x38, 0x02, 0x8e, 0x7e,
		0x12, 0x47, 0x27, 0xf5, 0x3f, 0xe6, 0x58, 0xc2, 0x2e, 0x2c, 0x50, 0xf4, 0x26, 0x14, 0x75, 0x9b,
		0xbd, 0x66, 0xf7, 0x1c, 0x3b, 0xfa, 0xc0, 0xd2, 0x1b, 0xb1, 0x64, 0xb5, 0x1f, 0xbc, 0x12, 0xf2,
		0x7b, 0xa0, 0xe8, 0x55, 0x28, 0x5a, 0xbf, 0x39, 0x0f, 0x28, 0x02, 0x8a, 0x7e, 0x16, 0x45, 0x50,
		0xe1, 0x00, 0xaa, 0xd2, 0x43, 0x17, 0xeb, 0xde, 0x7d, 0xc6, 0x4e, 0xaa, 0x00, 0xb0, 0x02, 0xa4,
		0x00, 0xa9, 0x44, 0x21, 0xc5, 0xb8, 0x27, 0x12, 0xb0, 0x22, 0x0b, 0x2b, 0x1d, 0xce, 0x00, 0x00,
		0x5e, 0x54, 0xe1, 0xa5, 0xc9, 0xd9, 0x00, 0x00, 0x8c, 0x2a, 0xc0, 0xf4, 0x38, 0x33, 0x00, 0x7c,
		0x51, 0xc5, 0x97, 0x2e, 0x67, 0x09, 0x80, 0x30, 0xd2, 0x08, 0xe3, 0xdf, 0xd0, 0x0b, 0x80, 0x11,
		0x06, 0xd8, 0x2e, 0x5c, 0x18, 0x10, 0x96, 0x32, 0xc2, 0xe0, 0xc2, 0x00, 0xb0, 0xb4, 0x00, 0xc6,
		0xfe, 0xac, 0x02, 0xa0, 0x45, 0x1a, 0x5a, 0x4c, 0x7b, 0x1c, 0x80, 0x2a, 0xfa, 0xa8, 0xe2, 0x7c,
		0xb6, 0x01, 0xf8, 0x22, 0x8d, 0x2f, 0x6c, 0x30, 0x02, 0x52, 0x09, 0x43, 0x8a, 0xe7, 0x59, 0x08,
		0x80, 0x8a, 0x34, 0xa8, 0xd8, 0x9f, 0x91, 0x00, 0xbe, 0xa8, 0xe2, 0x4b, 0x87, 0xb3, 0x13, 0x40,
		0x17, 0x65, 0x74, 0xe9, 0x71, 0xa6, 0x02, 0x18, 0x23, 0x8b, 0x31, 0x0d, 0xce, 0x5a, 0x00, 0x5d,
		0x54, 0xd1, 0xa5, 0xc3, 0x19, 0x0c, 0xa0, 0x8b, 0x2a, 0xba, 0xfa, 0x4d, 0xbb, 0xd1, 0x3c, 0xae,
		0x9f, 0xb5, 0xfa, 0xf6, 0x49, 0xb3, 0xdf, 0xb5, 0x8e, 0x00, 0x2e, 0x80, 0x2b, 0x29, 0x70, 0x9d,
		0xb5, 0xe3, 0x96, 0xc1, 0x66, 0xc3, 0x6e, 0xf5, 0xd0, 0xd6, 0x05, 0x70, 0x25, 0x08, 0xae, 0x39,
		0xaf, 0x6f, 0x36, 0x10, 0x19, 0x81, 0xaf, 0x14, 0xf0, 0xd5, 0xb7, 0x5a, 0xd6, 0x7f, 0x35, 0x41,
		0x17, 0x6e, 0x8e, 0xc3, 0x2a, 0xd6, 0x69, 0xf5, 0xea, 0xcc, 0x67, 0x01, 0x22, 0xf0, 0x56, 0x80,
		0x08, 0xfc, 0x14, 0x38, 0x02, 0x8e, 0x34, 0xe1, 0xa1, 0x40, 0x51, 0xd6, 0x28, 0xea, 0x76, 0xce,
		0xfa, 0xcd, 0xae, 0x7d, 0x54, 0x3f, 0x8d, 0x55, 0x58, 0xba, 0x76, 0xbd, 0xf5, 0xb1, 0xd3, 0xb5,
		0xfa, 0x9f, 0x4e, 0x80, 0x20, 0x20, 0xe8, 0x55, 0x08, 0x7a, 0xf8, 0x0e, 0x10, 0x02, 0x84, 0x5e,
		0x01, 0x21, 0x48, 0x41, 0x01, 0x57, 0x08, 0x72, 0xfa, 0x79, 0xaa, 0x22, 0x20, 0x8b, 0x73, 0xf0,
		0x8b, 0xa1, 0x85, 0x4a, 0x30, 0x9e, 0x33, 0xe3, 0xe7, 0xcb, 0xe3, 0xb9, 0xd2, 0xb7, 0x92, 0xb6,
		0x85, 0xc4, 0x03, 0x60, 0xa9, 0xae, 0xd4, 0x24, 0x70, 0x02, 0x39, 0x51, 0xa5, 0x03, 0x06, 0x21,
		0xaf, 0xe4, 0x0f, 0xae, 0xc5, 0x8d, 0x33, 0x75, 0x82, 0xeb, 0x30, 0xb8, 0x95, 0x27, 0x53, 0xa1,
		0x06, 0x13, 0x35, 0x92, 0x63, 0x53, 0x89, 0xe0, 0xeb, 0xc4, 0xfb, 0x62, 0x4a, 0xe5, 0x07, 0x8e,
		0x1a, 0x88, 0xf2, 0xd3, 0x17, 0xfc, 0xb5, 0x57, 0xca, 0x53, 0x6f, 0x12, 0x4c, 0x06, 0x13, 0xd7,
		0x8f, 0xbf, 0x2a, 0x4b, 0x5f, 0xfa, 0x65, 0x57, 0xdc, 0x0a, 0x77, 0xf1, 0xa9, 0xec, 0x4a, 0xf5,
		0xc5, 0xf4, 0x03, 0x27, 0x10, 0xe6, 0xd0, 0x09, 0x9c, 0x2b, 0xc7, 0x17, 0x65, 0xd7, 0x9f, 0x96,
		0x03, 0xf7, 0xd6, 0x0f, 0xff, 0x29, 0xdf, 0x04, 0xa6, 0xf4, 0x55, 0x59, 0x09, 0x39, 0xbe, 0xbe,
		0x9a, 0x78, 0x7e, 0xfc, 0x55, 0xf9, 0xe1, 0xad, 0xe3, 0xb7, 0xf4, 0x67, 0x57, 0xd1, 0x2f, 0xce,
		0x3f, 0x97, 0xa3, 0xbf, 0xcb, 0x20, 0x7f, 0x28, 0xf9, 0x81, 0x37, 0x1b, 0x04, 0x6a, 0xc1, 0x2a,
		0x3a, 0xf1, 0x73, 0x6f, 0xcf, 0x9f, 0xa9, 0xb5, 0x18, 0x9f, 0xfd, 0xe4, 0x7b, 0xff, 0xe9, 0x0b,
		0xf6, 0xe9, 0xf2, 0x99, 0xc7, 0x5f, 0xd9, 0x96, 0x2f, 0x7d, 0xbb, 0x15, 0x3d, 0xf3, 0xf9, 0x27,
		0xbb, 0x25, 0xd5, 0x97, 0x5e, 0xf8, 0x68, 0x1a, 0x8b, 0x27, 0x6e, 0xb7, 0xfc, 0xa9, 0xdd, 0x77,
		0x6f, 0xfd, 0xf0, 0x1f, 0xfb, 0x24, 0xb0, 0x7c, 0x65, 0xb7, 0x97, 0x0f, 0x3c, 0xfe, 0xca, 0x7e,
		0x78, 0xdb, 0xf8, 0xfd, 0x7a, 0xf3, 0x07, 0xbe, 0xf8, 0x6c, 0x47, 0x7f, 0x95, 0x36, 0xeb, 0xa1,
		0xeb, 0xd1, 0x08, 0x7b, 0xb3, 0x52, 0xb8, 0x3c, 0xc5, 0xc8, 0x99, 0xb9, 0x81, 0x79, 0x23, 0x02,
		0x4f, 0x0e, 0xc8, 0x3b, 0xb4, 0x98, 0xa3, 0xaf, 0x9b, 0x4e, 0x3c, 0x6a, 0xfc, 0x2e, 0xd5, 0xb0,
		0x74, 0x60, 0x54, 0x88, 0x9b, 0x79, 0x14, 0x79, 0xa8, 0xd2, 0x81, 0xb1, 0x45, 0xdc, 0xd0, 0x53,
		0x4f, 0x8c, 0xe4, 0x1d, 0x8f, 0x08, 0xbc, 0x04, 0xed, 0x64, 0x60, 0x86, 0xb1, 0x92, 0x43, 0xec,
		0xea, 0x4d, 0x66, 0xde, 0x40, 0xb0, 0x78, 0xbc, 0xf3, 0xe5, 0x25, 0xee, 0xbf, 0x4e, 0xbc, 0x70,
		0x85, 0x95, 0xa6, 0x73, 0x64, 0xf0, 0x28, 0xa3, 0x94, 0x3e, 0x39, 0x7e, 0xdd, 0x1b, 0xcf, 0x6e,
		0x84, 0x0a, 0x4a, 0x07, 0x46, 0xe0, 0xcd, 0x04, 0x13, 0xc3, 0x57, 0xac, 0x8e, 0x81, 0x8d, 0xcc,
		0x47, 0xeb, 0xcc, 0xa7, 0x21, 0x3d, 0x26, 0x29, 0x4f, 0xc4, 0x58, 0xd9, 0x38, 0xaf, 0x65, 0x7c,
		0xe0, 0x92, 0xd9, 0x30, 0x22, 0x34, 0xec, 0x88, 0x0d, 0x47, 0x82, 0xc3, 0x98, 0xe8, 0x70, 0x25,
		0x3c, 0xec, 0x89, 0x0f, 0x7b, 0x02, 0xc4, 0x9b, 0x08, 0xf1, 0x20, 0x44, 0x4c, 0x88, 0x11, 0x3b,
		0x82, 0x14, 0x1b, 0xcc, 0xa4, 0xec, 0xf3, 0x62, 0xa0, 0x61, 0x51, 0xfb, 0x79, 0x89, 0x3a, 0x6d,
		0x31, 0x33, 0x9b, 0x1b, 0x85, 0xe2, 0x4c, 0xa5, 0x34, 0xa0, 0x54, 0xdc, 0xa9, 0x95, 0x36, 0x14,
		0x4b, 0x1b, 0xaa, 0xa5, 0x07, 0xe5, 0xe2, 0x45, 0xbd, 0x98, 0x51, 0xb0, 0x18, 0x22, 0xfd, 0xfb,
		0xa9, 0xe0, 0xed, 0xf1, 0x67, 0x52, 0x05, 0xdb, 0x55, 0x8e, 0x0e, 0x7f, 0xc1, 0x6f, 0xf6, 0x18,
		0x9a, 0xde, 0x75, 0xd4, 0x58, 0xb0, 0x6d, 0xef, 0xe5, 0xdb, 0x80, 0x59, 0x3a, 0x91, 0x8a, 0x2d,
		0x43, 0x88, 0x07, 0x11, 0x75, 0x87, 0xf3, 0x23, 0xc8, 0x6b, 0xe3, 0x38, 0xf6, 0x9c, 0x41, 0x20,
		0x27, 0xaa, 0x21, 0xc7, 0x32, 0xf0, 0x35, 0x18, 0x50, 0x5b, 0x8c, 0x9d, 0x40, 0xde, 0x86, 0x73,
		0x33, 0x72, 0x5c, 0x5f, 0xa0, 0x3b, 0x3c, 0x8f, 0x25, 0xee, 0xdc, 0xe9, 0xb3, 0xc4, 0x6b, 0xd5,
		0xfd, 0xda, 0xfe, 0xee, 0x5e, 0x75, 0x7f, 0x07, 0x6b, 0x1d, 0x6b, 0x1d, 0x09, 0x02, 0x63, 0xab,
		0x2f, 0x91, 0x88, 0xa5, 0xb8, 0x1c, 0xc5, 0x5d, 0xe0, 0x39, 0xe6, 0x4c, 0xf9, 0x81, 0x73, 0xe5,
		0x32, 0x4d, 0xc9, 0x3c, 0x31, 0x12, 0x9e, 0x50, 0x03, 0x64, 0x06, 0x39, 0xe6, 0xc3, 0xdd, 0xe3,
		0xa3, 0x9d, 0xed, 0xad, 0x9d, 0x03, 0xc3, 0xea, 0x99, 0x56, 0xcf, 0x68, 0xde, 0x05, 0x42, 0xf9,
		0x72, 0xa2, 0x7c, 0x63, 0x34, 0xf1, 0x8c, 0xbe, 0xe7, 0x8c, 0x46, 0x72, 0x60, 0x34, 0xd5, 0x58,
		0x2a, 0x21, 0x3c, 0xa9, 0xc6, 0x9b, 0x17, 0xca, 0x9f, 0x5d, 0x99, 0xfd, 0xd6, 0xb9, 0x51, 0xf9,
		0x70, 0x60, 0x84, 0x9f, 0xab, 0xd5, 0x8d, 0xea, 0xf6, 0x46, 0xa5, 0x56, 0xd9, 0xa8, 0x86, 0x5f,
		0x56, 0xb7, 0x37, 0x4b, 0x8c, 0x09, 0x15, 0xf3, 0xc2, 0xea, 0x43, 0xbd, 0xe0, 0xa1, 0xc0, 0xfa,
		0xb0, 0xd2, 0x98, 0xb3, 0x10, 0x5d, 0x6a, 0xad, 0xf1, 0x80, 0x56, 0x6b, 0xae, 0x29, 0x2d, 0x45,
		0x30, 0x35, 0x58, 0xad, 0x13, 0x53, 0x43, 0x17, 0x48, 0x11, 0x99, 0x2f, 0xb7, 0x03, 0x82, 0xb1,
		0xdd, 0xba, 0x1d, 0x14, 0x5c, 0x3b, 0x23, 0x54, 0xe6, 0xd4, 0x60, 0x6b, 0xe8, 0x74, 0x84, 0xb0,
		0x2f, 0x1a, 0xf3, 0x99, 0x38, 0x89, 0x26, 0x82, 0xc3, 0x91, 0x42, 0x3e, 0xbe, 0x11, 0x87, 0x1a,
		0x0a, 0x56, 0x9f, 0x28, 0x7d, 0xbd, 0x16, 0x8a, 0x4d, 0x29, 0x82, 0x61, 0xff, 0xfa, 0xe6, 0xe6,
		0x3c, 0x54, 0x94, 0x83, 0xfb, 0xa9, 0x30, 0x7e, 0x33, 0xde, 0x2d, 0x9a, 0x4c, 0x4c, 0xd7, 0x1f,
		0x5e, 0x99, 0xe1, 0x8b, 0xfe, 0xc1, 0x77, 0xc5, 0x87, 0xdf, 0xa1, 0xfd, 0x3d, 0xd3, 0xd2, 0x41,
		0xb4, 0x28, 0xd0, 0xfc, 0x9e, 0x5f, 0x55, 0x20, 0xa1, 0x55, 0xc3, 0x27, 0x6b, 0x62, 0xb4, 0xbe,
		0x1b, 0xc2, 0x1f, 0x78, 0x72, 0xca, 0x2e, 0x29, 0x79, 0xe4, 0x96, 0x3b, 0xca, 0xbd, 0x37, 0xa4,
		0x1a, 0xb8, 0xb3, 0xa1, 0x30, 0x82, 0x6b, 0x61, 0x2c, 0xe8, 0xbd, 0x11, 0x2c, 0x2a, 0x4e, 0xe2,
		0xa1, 0xe2, 0x64, 0xcc, 0x29, 0xff, 0x45, 0x48, 0x98, 0x03, 0x47, 0x2a, 0xe1, 0x19, 0xa1, 0x83,
		0x88, 0x7e, 0x6d, 0x59, 0x8a, 0x8a, 0x70, 0x2a, 0x7d, 0xa3, 0xf2, 0x81, 0x5b, 0x19, 0x98, 0x73,
		0xe9, 0x77, 0xd5, 0x67, 0x0f, 0x57, 0x60, 0xc9, 0xb0, 0x5b, 0x4c, 0x87, 0x22, 0xef, 0x23, 0x17,
		0x9e, 0xe6, 0x0a, 0x43, 0xed, 0xae, 0xc8, 0xb5, 0x3b, 0xf2, 0x56, 0x5e, 0x22, 0x8b, 0x7e, 0x8b,
		0x13, 0x81, 0x28, 0x1a, 0xad, 0x5a, 0x27, 0x04, 0xd2, 0x72, 0xab, 0x6e, 0x42, 0x2a, 0x4d, 0x3b,
		0x1f, 0x57, 0x0a, 0x38, 0x1c, 0x27, 0x79, 0x50, 0x47, 0x0b, 0xad, 0xe5, 0x21, 0x88, 0xb6, 0x05,
		0x41, 0xb4, 0x64, 0x0c, 0x85, 0x20, 0x1a, 0x12, 0xee, 0xe7, 0x93, 0x6c, 0x08, 0xa2, 0x65, 0x9e,
		0x47, 0x43, 0x10, 0xad, 0x10, 0x59, 0x0f, 0x9b, 0x43, 0xa6, 0xb1, 0xc7, 0x75, 0x85, 0x33, 0xf2,
		0xc4, 0x88, 0x83, 0xc7, 0x5d, 0x0a, 0x8c, 0x31, 0x38, 0x46, 0x5a, 0x3a, 0x5d, 0x24, 0x92, 0x8f,
		0xb6, 0x40, 0x90, 0x07, 0xe8, 0x97, 0x07, 0xcc, 0xc2, 0x14, 0xd5, 0x0f, 0x3c, 0x47, 0x2a, 0x31,
		0x34, 0x5d, 0x7f, 0xca, 0x27, 0x29, 0x58, 0x37, 0x1d, 0x92, 0xc9, 0xc8, 0x10, 0x90, 0x21, 0x20,
		0x43, 0x40, 0x86, 0x80, 0x0c, 0x01, 0x19, 0x42, 0x2a, 0x53, 0x0e, 0xc9, 0xe4, 0x74, 0xe3, 0x03,
		0x24, 0x93, 0x41, 0x6c, 0x38, 0x12, 0x1c, 0xc6, 0x44, 0x87, 0x2b, 0xe1, 0x61, 0x4f, 0x7c, 0xd8,
		0x13, 0x20, 0xde, 0x44, 0x88, 0x07, 0x21, 0x62, 0x42, 0x8c, 0xd8, 0x11, 0xa4, 0xd8, 0xe0, 0xc1,
		0x64, 0x16, 0x01, 0x97, 0x69, 0x0f, 0xed, 0xdc, 0x7c, 0x08, 0x26, 0x83, 0x40, 0xe9, 0x45, 0xa4,
		0x34, 0x20, 0x54, 0xdc, 0x89, 0x95, 0x36, 0x04, 0x4b, 0x1b, 0xa2, 0xa5, 0x07, 0xe1, 0xe2, 0x45,
		0xbc, 0x98, 0x11, 0xb0, 0x18, 0x22, 0x7a, 0x08, 0x26, 0x57, 0x76, 0x19, 0x0b, 0x26, 0xef, 0x42,
		0x30, 0x39, 0xe3, 0x0f, 0x08, 0x26, 0xe7, 0x3b, 0x08, 0x08, 0x26, 0x53, 0xf5, 0xa9, 0x10, 0x4c,
		0x26, 0xb0, 0xc4, 0x75, 0x12, 0x4c, 0xde, 0xdd, 0xd9, 0xd9, 0x86, 0x56, 0x32, 0x96, 0x39, 0x72,
		0x03, 0xce, 0x56, 0x43, 0x2b, 0x39, 0xcd, 0xe5, 0x08, 0xad, 0x64, 0x24, 0x05, 0x89, 0xa4, 0xc2,
		0x91, 0x40, 0xeb, 0xf6, 0xd6, 0x81, 0x51, 0x37, 0x5a, 0x52, 0x7d, 0x31, 0xc3, 0xe4, 0xfe, 0xe1,
		0x50, 0xfe, 0xc4, 0x38, 0x9a, 0xa8, 0x5b, 0x71, 0x1f, 0x1d, 0xd5, 0x6f, 0xcf, 0x6e, 0xae, 0x84,
		0x67, 0x4c, 0x46, 0x17, 0xea, 0x19, 0xe1, 0x56, 0xa3, 0xe5, 0x5c, 0x09, 0xd7, 0xe8, 0x7d, 0x95,
		0xc1, 0xe0, 0x5a, 0x0c, 0x8d, 0x53, 0x27, 0xb8, 0xf6, 0x8d, 0x9e, 0x1c, 0x2b, 0xc7, 0x75, 0xc5,
		0xf0, 0x42, 0x7d, 0x95, 0xc1, 0xb5, 0xf1, 0x5f, 0xe1, 0x4d, 0x8c, 0xae, 0xf0, 0x85, 0x77, 0x2b,
		0x86, 0xc6, 0xa1, 0xa3, 0x86, 0x5f, 0xe5, 0x30, 0xb8, 0x36, 0x9c, 0x81, 0x37, 0xf1, 0x7d, 0xc3,
		0x89, 0x8c, 0xd8, 0x5c, 0x1a, 0x70, 0xa1, 0xaa, 0xdb, 0x2f, 0x68, 0xc0, 0x42, 0x8d, 0x99, 0x40,
		0x31, 0x02, 0x6a, 0xcc, 0xf4, 0x07, 0xb4, 0xa6, 0xc6, 0xcc, 0x71, 0xb1, 0x83, 0x6d, 0xc2, 0x6a,
		0x9d, 0xd8, 0x26, 0x94, 0xcb, 0x52, 0xf0, 0x74, 0x01, 0xc7, 0x7d, 0x09, 0x4e, 0x27, 0xf1, 0xd7,
		0x09, 0x00, 0xba, 0x2d, 0x32, 0x35, 0x1c, 0xdd, 0x16, 0xe0, 0xed, 0xc9, 0xf0, 0x75, 0x74, 0x5b,
		0x90, 0x23, 0xe7, 0xe8, 0xb6, 0x00, 0xa3, 0x79, 0x06, 0x22, 0xfc, 0xbb, 0x2d, 0xe4, 0x50, 0xa8,
		0x40, 0x06, 0xf7, 0x3c, 0xd4, 0x04, 0x5e, 0x22, 0x39, 0x15, 0x86, 0x5b, 0x52, 0x25, 0x6b, 0xf1,
		0xe8, 0x0f, 0x1d, 0x9f, 0x71, 0xdc, 0x5a, 0x02, 0xc9, 0xea, 0x59, 0x3d, 0xbb, 0x77, 0x76, 0xd8,
		0x6f, 0x9d, 0xdb, 0xfd, 0xcf, 0xa7, 0x4d, 0xae, 0xe1, 0x2b, 0xda, 0xe8, 0xf4, 0xd9, 0x56, 0xbd,
		0x0d, 0xd6, 0x95, 0xef, 0xc7, 0x88, 0x3a, 0x7d, 0x2c, 0x32, 0x6e, 0x9d, 0x9e, 0xd7, 0xec, 0x6e,
		0xe7, 0xac, 0xdf, 0xec, 0xda, 0x56, 0xa3, 0x84, 0x5e, 0x06, 0x20, 0x2b, 0x39, 0x64, 0xed, 0x02,
		0x59, 0x40, 0x56, 0xf2, 0xc8, 0x3a, 0xed, 0x36, 0x8f, 0xad, 0x3f, 0xec, 0xe3, 0x56, 0xfd, 0x63,
		0x0f, 0xb8, 0x02, 0xae, 0x12, 0xc6, 0x55, 0x0f, 0xde, 0x0a, 0xa8, 0x4a, 0x0e, 0x55, 0x73, 0xfa,
		0xde, 0xe3, 0xcc, 0xdf, 0x75, 0xe2, 0xf1, 0x7a, 0xa0, 0xad, 0x30, 0xbc, 0x5e, 0x03, 0xbf, 0x56,
		0x1c, 0xc4, 0xed, 0x02, 0x71, 0x40, 0x1c, 0xf2, 0x00, 0xe0, 0xcd, 0x40, 0x7e, 0x00, 0xb4, 0x01,
		0x6d, 0x6f, 0x42, 0x5b, 0xbf, 0xfe, 0x11, 0x30, 0x03, 0xcc, 0x32, 0x80, 0xd9, 0x6e, 0x4d, 0x03,
		0xa0, 0xb1, 0x1e, 0xc1, 0x25, 0xea, 0x4d, 0x58, 0xd8, 0x88, 0x1b, 0x80, 0x13, 0xe2, 0x03, 0x00,
		0xa5, 0x1b, 0xa0, 0x9e, 0x5c, 0x6b, 0x5e, 0x6f, 0xfc, 0xdb, 0x6e, 0xd5, 0xdb, 0xd8, 0x66, 0x01,
		0xac, 0x92, 0x86, 0x15, 0x20, 0x05, 0x48, 0x25, 0x0a, 0xa9, 0x13, 0xab, 0x6d, 0x7f, 0xec, 0x76,
		0xce, 0x4e, 0x01, 0x2b, 0xc0, 0x2a, 0x31, 0x58, 0x9d, 0xd7, 0xad, 0x56, 0xfd, 0xb0, 0xd5, 0xb4,
		0x0f, 0xeb, 0xed, 0xc6, 0x7f, 0xac, 0x46, 0xff, 0x13, 0xe0, 0x05, 0x78, 0x25, 0x05, 0xaf, 0x18,
		0x54, 0xf6, 0x51, 0xa7, 0xdd, 0xeb, 0x77, 0xeb, 0x56, 0xbb, 0x8f, 0x36, 0x29, 0x00, 0x2c, 0x31,
		0x80, 0x35, 0xff, 0xe8, 0x37, 0xdb, 0x8d, 0x66, 0x03, 0xf1, 0x11, 0xf8, 0x4a, 0x03, 0x5f, 0x51,
		0xeb, 0x8a, 0xd5, 0xee, 0x37, 0xbb, 0xc7, 0xf5, 0xa3, 0xa6, 0x5d, 0x6f, 0x34, 0xba, 0xcd, 0x1e,
		0x3c, 0x18, 0x10, 0x96, 0x2c, 0xc2, 0xda, 0x4d, 0xeb, 0xe3, 0xa7, 0xc3, 0x4e, 0x17, 0x00, 0x03,
		0xc0, 0x52, 0x00, 0xd8, 0x2e, 0x5c, 0x18, 0x10, 0x96, 0x32, 0xc2, 0xe0, 0xc2, 0x00, 0xb0, 0xb4,
		0x00, 0xd6, 0xb2, 0xda, 0xbf, 0xdb, 0xf5, 0x7e, 0xbf, 0x6b, 0x1d, 0x9e, 0xf5, 0x9b, 0x80, 0x16,
		0xa0, 0x95, 0x2c, 0xb4, 0x1a, 0xcd, 0x56, 0xfd, 0x33, 0x50, 0x05, 0x54, 0x25, 0x8f, 0x2a, 0xfb,
		0xbc, 0xde, 0xb5, 0xea, 0x7d, 0xab, 0xd3, 0x06, 0xbe, 0x80, 0xaf, 0x44, 0xf1, 0x85, 0x0d, 0x46,
		0x40, 0x2a, 0x61, 0x48, 0xb5, 0x3a, 0x20, 0xee, 0x00, 0x55, 0xc2, 0xa0, 0x3a, 0xed, 0x76, 0xfa,
		0xcd, 0xa3, 0x30, 0x04, 0xce, 0xcf, 0x9d, 0x02, 0x5f, 0xc0, 0x57, 0x42, 0xf8, 0x3a, 0xa9, 0xff,
		0x31, 0xc7, 0x18, 0x76, 0xaf, 0x81, 0xae, 0x54, 0xd0, 0xd5, 0x6d, 0xf6, 0x9a, 0xdd, 0x73, 0x74,
		0x48, 0x00, 0x63, 0x29, 0x61, 0xcc, 0x6a, 0x3f, 0x78, 0x31, 0xd4, 0x21, 0x80, 0xae, 0x44, 0xd1,
		0xd5, 0x6d, 0xf6, 0xac, 0xc6, 0x59, 0xbd, 0x05, 0xdf, 0x05, 0x74, 0x25, 0x8f, 0x2e, 0xa8, 0xc9,
		0x00, 0x6d, 0xd9, 0xa3, 0x4e, 0x8b, 0x33, 0x1b, 0x1a, 0x38, 0xb5, 0x02, 0xc1, 0x0d, 0x50, 0x03,
		0xd4, 0x32, 0x81, 0x9a, 0x06, 0x3d, 0xac, 0x80, 0x1b, 0x1b, 0xb8, 0xe9, 0x74, 0xf6, 0x03, 0xb0,
		0xe3, 0x02, 0x3b, 0xcd, 0xce, 0x84, 0x00, 0x78, 0x5c, 0x80, 0xa7, 0xd7, 0x59, 0x11, 0xe0, 0x8e,
		0x0b, 0xee, 0x74, 0x3b, 0x43, 0x02, 0xe4, 0xb1, 0x42, 0x9e, 0x3e, 0x8d, 0xd9, 0x00, 0x1e, 0x23,
		0xe0, 0xed, 0xc2, 0xe5, 0x01, 0x79, 0x39, 0x21, 0x0f, 0x2e, 0x0f, 0xc0, 0xcb, 0x1a, 0x78, 0xda,
		0x9c, 0x51, 0x01, 0xe4, 0x58, 0x41, 0x8e, 0x79, 0xcf, 0x08, 0xd0, 0xc6, 0x0f, 0x6d, 0x3a, 0x9c,
		0x69, 0x01, 0xee, 0x58, 0xe1, 0x0e, 0x1b, 0xb0, 0x80, 0x5a, 0x46, 0x50, 0xe3, 0x7d, 0x06, 0x06,
		0x60, 0x63, 0x05, 0x36, 0x6d, 0xce, 0xc6, 0x00, 0x77, 0x5c, 0x70, 0xa7, 0xd3, 0x99, 0x19, 0xa0,
		0x8e, 0x13, 0xea, 0xf4, 0x3a, 0x4b, 0x03, 0xec, 0xb1, 0xc1, 0x9e, 0x46, 0x67, 0x6c, 0x80, 0x3a,
		0x2e, 0xa8, 0xd3, 0xe9, 0xec, 0x0d, 0x50, 0xc7, 0x05, 0x75, 0xfd, 0xa6, 0xdd, 0x68, 0x1e, 0xd7,
		0xcf, 0x5a, 0x7d, 0xfb, 0xa4, 0xd9, 0xef, 0x5a, 0x47, 0x00, 0x1d, 0x40, 0x97, 0x36, 0xe8, 0xce,
		0xda, 0x71, 0x2b, 0x67, 0xb3, 0x61, 0xb7, 0x7a, 0x68, 0xab, 0x03, 0xe8, 0x32, 0x00, 0xdd, 0x3c,
		0x9f, 0x68, 0x36, 0x10, 0x61, 0x81, 0xbb, 0x0c, 0x71, 0xd7, 0xb7, 0x5a, 0xd6, 0x7f, 0x35, 0x43,
		0x1d, 0x6e, 0xac, 0xc4, 0x6a, 0x2f, 0xd2, 0x2a, 0x2f, 0x02, 0x7f, 0x06, 0xb8, 0xc0, 0x93, 0x01,
		0xae, 0x02, 0x81, 0x4b, 0x27, 0x3e, 0x0c, 0x7c, 0x81, 0xf7, 0x02, 0x5d, 0xfa, 0xa2, 0xab, 0xdb,
		0x39, 0xeb, 0x37, 0xbb, 0xf6, 0x51, 0xfd, 0x34, 0x56, 0x13, 0xea, 0xda, 0xf5, 0xd6, 0xc7, 0x4e,
		0xd7, 0xea, 0x7f, 0x3a, 0x01, 0xb2, 0x80, 0xac, 0x44, 0x91, 0xf5, 0xf0, 0x1d, 0xa0, 0x05, 0x68,
		0x25, 0x08, 0x2d, 0x48, 0xa0, 0x01, 0x6f, 0x08, 0x96, 0xc5, 0xf5, 0x6c, 0x45, 0x42, 0x9c, 0x0e,
		0x41, 0x34, 0x86, 0x1c, 0x2a, 0xde, 0x78, 0xee, 0x1a, 0x3f, 0x6f, 0x5e, 0xcf, 0x99, 0x8f, 0xb5,
		0x3c, 0x2c, 0x65, 0x12, 0x50, 0x4b, 0x75, 0xa5, 0x26, 0x81, 0x13, 0xc8, 0x89, 0x2a, 0x1d, 0x30,
		0x0a, 0xa1, 0x25, 0x7f, 0x70, 0x2d, 0x6e, 0x9c, 0xa9, 0x13, 0x5c, 0x87, 0xc1, 0xb2, 0x3c, 0x99,
		0x0a, 0x35, 0x98, 0xa8, 0x91, 0x1c, 0x9b, 0x4a, 0x04, 0x5f, 0x27, 0xde, 0x17, 0x53, 0x2a, 0x3f,
		0x70, 0xd4, 0x40, 0x94, 0x9f, 0xbe, 0xe0, 0xaf, 0xbd, 0x52, 0x9e, 0x7a, 0x93, 0x60, 0x32, 0x98,
		0xb8, 0x7e, 0xfc, 0x55, 0x59, 0xfa, 0xd2, 0x2f, 0xbb, 0xe2, 0x56, 0xb8, 0x8b, 0x4f, 0x65, 0x57,
		0xaa, 0x2f, 0xa6, 0x1f, 0x38, 0x81, 0x30, 0x87, 0x4e, 0xe0, 0x5c, 0x39, 0xbe, 0x28, 0xbb, 0xfe,
		0xb4, 0x1c, 0xb8, 0xb7, 0x7e, 0xf8, 0x4f, 0xf9, 0x26, 0x30, 0xa5, 0xaf, 0xca, 0x4a, 0xc8, 0xf1,
		0xf5, 0xd5, 0xc4, 0xf3, 0xe3, 0xaf, 0xca, 0x0f, 0x6f, 0x1d, 0xbf, 0xa5, 0x3f, 0xbb, 0x8a, 0x7e,
		0x71, 0xfe, 0xb9, 0x3c, 0x0b, 0xcd, 0xf7, 0x03, 0xcf, 0x91, 0x4a, 0x0c, 0xcd, 0xf0, 0xcf, 0x46,
		0xef, 0xc4, 0x28, 0xa3, 0x29, 0xf9, 0x81, 0x37, 0x1b, 0x04, 0x6a, 0xc1, 0x5f, 0x3a, 0xf1, 0x8c,
		0xb4, 0xe7, 0x4f, 0xdb, 0x5a, 0x8c, 0xdc, 0x7e, 0xf2, 0xbd, 0xff, 0xf4, 0x05, 0xfb, 0x74, 0x39,
		0x1b, 0xf1, 0x57, 0xb6, 0xe5, 0x4b, 0xdf, 0x6e, 0x45, 0xb3, 0x31, 0xff, 0x64, 0xb7, 0xa4, 0xfa,
		0xd2, 0x0b, 0x1f, 0x51, 0x63, 0x31, 0x17, 0x76, 0xcb, 0x9f, 0xda, 0x7d, 0xf7, 0xd6, 0x0f, 0xff,
		0xb1, 0x4f, 0x02, 0xcb, 0x57, 0x76, 0x7b, 0x39, 0x15, 0xf1, 0x57, 0xf6, 0xc3, 0xdb, 0xc6, 0xef,
		0xd7, 0x9b, 0x4f, 0xc5, 0xe2, 0xb3, 0x7d, 0xb6, 0x3a, 0x15, 0xe1, 0x1f, 0x8d, 0xde, 0x86, 0x07,
		0xe1, 0xa2, 0xef, 0x1c, 0x69, 0x5b, 0x48, 0xdc, 0x6d, 0x97, 0xc4, 0x5d, 0xe0, 0x39, 0xe6, 0x2c,
		0x44, 0xee, 0x95, 0x2b, 0x58, 0xb8, 0xec, 0xd2, 0xd7, 0x6b, 0xa1, 0xd8, 0xd4, 0x34, 0x18, 0x85,
		0xc0, 0x65, 0xa6, 0xb8, 0xb9, 0x39, 0x8f, 0x15, 0xe5, 0xe0, 0x7e, 0x2a, 0x8c, 0xdf, 0x8c, 0x77,
		0x93, 0x81, 0x19, 0x46, 0x2f, 0xd3, 0xf5, 0x87, 0x57, 0x66, 0xf8, 0xa2, 0x7f, 0xf0, 0xdd, 0x7d,
		0xf0, 0x77, 0x9c, 0x22, 0x4d, 0x6f, 0x32, 0xf3, 0x06, 0x82, 0x15, 0x61, 0x89, 0xec, 0xfe, 0x5d,
		0xdc, 0x7f, 0x9d, 0x78, 0xc3, 0x70, 0xd2, 0xa2, 0x45, 0xc1, 0xab, 0xe8, 0x52, 0xfa, 0xe4, 0xf8,
		0x75, 0x6f, 0x3c, 0xbb, 0x11, 0x2a, 0x28, 0x1d, 0x18, 0x81, 0x37, 0x13, 0xcc, 0x06, 0xb0, 0x62,
		0x7d, 0x52, 0xab, 0x86, 0x4f, 0xda, 0xc4, 0x68, 0x7d, 0x37, 0x84, 0x3f, 0xf0, 0xe4, 0x94, 0x5d,
		0x56, 0xf2, 0xc8, 0x2d, 0x77, 0x94, 0x7b, 0x6f, 0x48, 0x35, 0x70, 0x67, 0x43, 0x61, 0x04, 0xd7,
		0xc2, 0x78, 0x44, 0xf1, 0x8d, 0x56, 0xef, 0xd4, 0x18, 0x4c, 0x54, 0x10, 0x7e, 0xe7, 0x19, 0xa1,
		0x3b, 0x08, 0x7f, 0xe8, 0x42, 0xf9, 0xb3, 0x2b, 0xb3, 0xdf, 0x3a, 0x37, 0xa4, 0x6f, 0x44, 0xc8,
		0xac, 0x6e, 0x6f, 0x72, 0xf3, 0x13, 0x4c, 0xdd, 0xf3, 0x53, 0x17, 0x3d, 0x5c, 0x41, 0x21, 0xbf,
		0xf2, 0x38, 0x7b, 0x6f, 0xbd, 0xe6, 0xb1, 0x13, 0x5c, 0x50, 0x28, 0xcd, 0x15, 0xb9, 0x34, 0x47,
		0xde, 0xca, 0x4b, 0xe4, 0xc8, 0x6f, 0xf1, 0x19, 0xbc, 0x4a, 0x9a, 0xfa, 0x97, 0x32, 0x19, 0x44,
		0x4f, 0x6d, 0x8b, 0x97, 0xb4, 0x43, 0x1d, 0x5d, 0x57, 0x4c, 0xd8, 0xc9, 0x95, 0x66, 0xca, 0x13,
		0xbe, 0xf0, 0x6e, 0xc5, 0xd0, 0xbc, 0x72, 0xd4, 0xf0, 0xab, 0x1c, 0x46, 0xae, 0x83, 0xb6, 0xab,
		0x8b, 0xf3, 0xa2, 0x67, 0xad, 0x27, 0x1e, 0x52, 0x7e, 0x97, 0x2a, 0x4c, 0x09, 0x2a, 0xc4, 0xcd,
		0x3c, 0x8a, 0x5c, 0x56, 0xe9, 0xc0, 0xd8, 0x22, 0x6e, 0xe8, 0xa9, 0x27, 0x46, 0xf2, 0x8e, 0x47,
		0x78, 0x5e, 0xe2, 0x76, 0x51, 0x1f, 0xe2, 0x10, 0xcc, 0x98, 0x25, 0xe0, 0xab, 0x49, 0xf7, 0x74,
		0x8e, 0x0c, 0x26, 0xbb, 0xe7, 0x5c, 0x73, 0xec, 0x47, 0x79, 0xf5, 0x12, 0xd8, 0xd8, 0x3a, 0xd4,
		0x3a, 0x2d, 0x6a, 0x48, 0x8f, 0x49, 0x3e, 0x24, 0x82, 0xd9, 0xd4, 0x9c, 0x7a, 0x72, 0xe2, 0xc9,
		0xe0, 0x9e, 0x8f, 0x17, 0x5b, 0x06, 0x8a, 0x27, 0xf6, 0x33, 0xf1, 0x08, 0x3c, 0x28, 0x0e, 0x3b,
		0xaa, 0xc3, 0x91, 0xf2, 0x30, 0xa6, 0x3e, 0x5c, 0x29, 0x10, 0x7b, 0x2a, 0xc4, 0x9e, 0x12, 0xf1,
		0xa6, 0x46, 0x3c, 0x28, 0x12, 0x13, 0xaa, 0xc4, 0x8e, 0x32, 0xc5, 0x06, 0xb3, 0x23, 0x4d, 0x6b,
		0xa1, 0x86, 0x19, 0x6d, 0x7a, 0x4a, 0x9f, 0xb6, 0x98, 0x99, 0xcd, 0x8d, 0x46, 0x71, 0xa6, 0x53,
		0x1a, 0xd0, 0x2a, 0xee, 0xf4, 0x4a, 0x1b, 0x9a, 0xa5, 0x0d, 0xdd, 0xd2, 0x83, 0x76, 0xf1, 0xa2,
		0x5f, 0xcc, 0x68, 0x58, 0x0c, 0x91, 0xfe, 0xfd, 0x54, 0xf0, 0xf6, 0xf8, 0xae, 0x70, 0x46, 0x9e,
		0x18, 0x71, 0xf4, 0xf8, 0xcb, 0xfa, 0xd0, 0x1e, 0x43, 0xdb, 0x4f, 0x17, 0xbd, 0x15, 0x71, 0xcf,
		0x6f, 0xcc, 0x32, 0xd1, 0x08, 0x56, 0x74, 0xcf, 0x52, 0x9a, 0x9f, 0xb3, 0x63, 0x9b, 0x30, 0x71,
		0x3b, 0x26, 0x68, 0xf0, 0x2b, 0x36, 0x23, 0x5b, 0x42, 0xb6, 0x84, 0x6c, 0x09, 0xd9, 0x12, 0xb2,
		0x25, 0x64, 0x4b, 0x7c, 0x20, 0xc2, 0xad, 0x78, 0x1d, 0x1b, 0xce, 0xa7, 0xa7, 0xf1, 0xbb, 0x31,
		0x8b, 0x4b, 0x83, 0xe3, 0xf7, 0x88, 0xda, 0x16, 0x53, 0xf3, 0xb9, 0x12, 0x36, 0x1d, 0x88, 0x9b,
		0x46, 0x04, 0x4e, 0x17, 0x22, 0xa7, 0x1d, 0xa1, 0xd3, 0x8e, 0xd8, 0xe9, 0x45, 0xf0, 0x78, 0x12,
		0x3d, 0xa6, 0x84, 0x2f, 0x86, 0x0e, 0xdb, 0x32, 0xf9, 0x5a, 0xc4, 0x90, 0x42, 0x88, 0x91, 0x3b,
		0x71, 0x82, 0xed, 0x2a, 0xe7, 0xa8, 0xb1, 0x20, 0x51, 0xfb, 0x8c, 0x87, 0xd0, 0x12, 0x6a, 0x1c,
		0x11, 0x72, 0xde, 0xca, 0xc4, 0xfc, 0x35, 0x62, 0x4b, 0x27, 0x52, 0xb1, 0xe7, 0x1f, 0xf1, 0x60,
		0x22, 0xc1, 0xeb, 0xd2, 0x81, 0x51, 0xdb, 0xd0, 0x63, 0x3c, 0xc7, 0x9e, 0x33, 0x08, 0xe4, 0x44,
		0x35, 0xe4, 0x58, 0x06, 0x3e, 0xdf, 0xbc, 0x63, 0xdd, 0x23, 0x8b, 0xb1, 0x13, 0xc8, 0xdb, 0x70,
		0xae, 0x46, 0x8e, 0xeb, 0x0b, 0x08, 0x5e, 0x53, 0x70, 0x05, 0xce, 0x1d, 0x5c, 0x01, 0x5c, 0x01,
		0x5c, 0x41, 0x11, 0xb3, 0x13, 0xfe, 0xd6, 0xf3, 0x94, 0x50, 0xe7, 0xf7, 0xbc, 0x19, 0x86, 0x3a,
		0xbe, 0x8d, 0xec, 0x6b, 0x39, 0x2c, 0xd3, 0x86, 0xf6, 0xa7, 0xc9, 0x2b, 0x76, 0x00, 0x72, 0x1a,
		0x00, 0x76, 0x00, 0x48, 0x0d, 0x05, 0x3b, 0x00, 0x44, 0x07, 0x84, 0x1d, 0x00, 0xb0, 0x26, 0x30,
		0xa7, 0x39, 0x74, 0xf4, 0xd9, 0x01, 0x98, 0x49, 0x15, 0x7c, 0xd0, 0xa0, 0xf6, 0xbf, 0xc3, 0x78,
		0x08, 0x5d, 0x47, 0x8d, 0x05, 0x4a, 0xff, 0xf9, 0x4f, 0x84, 0x96, 0xa5, 0xff, 0x2d, 0xd4, 0xfb,
		0x88, 0xbb, 0x62, 0x94, 0xfe, 0x09, 0xba, 0x02, 0x1d, 0x4b, 0xff, 0x7b, 0x70, 0x05, 0x70, 0x05,
		0x48, 0x4b, 0x0a, 0x60, 0x3d, 0x4a, 0xff, 0xb0, 0x98, 0x7d, 0x60, 0xe6, 0x7a, 0x77, 0x66, 0x6c,
		0xbf, 0x7e, 0xc2, 0xf3, 0xeb, 0xca, 0xd2, 0xe5, 0xc7, 0x6a, 0x8c, 0x65, 0x8e, 0xc7, 0x65, 0x0d,
		0xbd, 0x04, 0xea, 0x97, 0x93, 0x74, 0xb8, 0x9c, 0x23, 0xbb, 0x17, 0xce, 0xd1, 0xe9, 0x62, 0x8a,
		0x38, 0x5d, 0xb7, 0xc9, 0xcf, 0xcf, 0x42, 0x20, 0x2e, 0xc9, 0x45, 0xf9, 0xbb, 0xb8, 0x67, 0xb8,
		0xc7, 0x5b, 0x6a, 0x49, 0x3f, 0xa8, 0x07, 0x01, 0x33, 0x71, 0xbb, 0x13, 0xa9, 0x9a, 0xae, 0xb8,
		0x11, 0x8a, 0x5b, 0x4e, 0x15, 0x66, 0xeb, 0x2b, 0x96, 0x57, 0x3e, 0xd4, 0x6a, 0xbb, 0x7b, 0xb5,
		0xda, 0xd6, 0xde, 0xf6, 0xde, 0xd6, 0xfe, 0xce, 0x4e, 0x65, 0xb7, 0xc2, 0xa8, 0x3c, 0x5c, 0xea,
		0x78, 0x43, 0xe1, 0x89, 0xe1, 0x61, 0x88, 0x7c, 0x35, 0x73, 0x5d, 0x8e, 0xa6, 0x9f, 0xf9, 0xc2,
		0x63, 0x95, 0xc4, 0xe2, 0x3a, 0x79, 0x50, 0xe1, 0x84, 0xa9, 0x30, 0xae, 0x96, 0x27, 0x48, 0x7e,
		0x71, 0xcb, 0x7c, 0x11, 0x2c, 0xc4, 0x2d, 0xf3, 0xc9, 0xdb, 0xec, 0x89, 0x91, 0xf0, 0x84, 0x1a,
		0x08, 0x5c, 0x35, 0x9f, 0xfc, 0xc3, 0x5d, 0xb6, 0x63, 0x74, 0x8f, 0x8f, 0x76, 0xb6, 0xb7, 0x76,
		0x0e, 0x0c, 0xab, 0x67, 0x5a, 0x3d, 0xa3, 0x79, 0x17, 0x08, 0xe5, 0xcb, 0x89, 0xf2, 0x8d, 0xd1,
		0xc4, 0x33, 0xfa, 0x9e, 0x33, 0x1a, 0xc9, 0x81, 0xd1, 0x54, 0x63, 0xa9, 0x84, 0xf0, 0xa4, 0x1a,
		0x6f, 0x1a, 0xfe, 0xec, 0xca, 0xbc, 0x50, 0xfd, 0xd6, 0xb9, 0x51, 0xa9, 0x1c, 0x18, 0xe1, 0xe7,
		0x6a, 0x75, 0xa3, 0xba, 0xbd, 0x51, 0xa9, 0x55, 0x36, 0xaa, 0xe1, 0x97, 0xd5, 0x6d, 0xdc, 0x2b,
		0x90, 0x49, 0xa6, 0xba, 0xec, 0xf7, 0x7b, 0x58, 0x29, 0xb8, 0x5a, 0x20, 0x63, 0x76, 0xbc, 0xd2,
		0xd2, 0x97, 0xd2, 0x52, 0x42, 0x21, 0xaa, 0x60, 0x56, 0x5e, 0x32, 0xb8, 0x8f, 0xee, 0xeb, 0xb5,
		0x50, 0x08, 0xcb, 0xe9, 0x85, 0xe5, 0x58, 0xd7, 0x36, 0xba, 0xe0, 0xfc, 0x37, 0xe3, 0xdd, 0xa2,
		0x5f, 0xd8, 0x74, 0xfd, 0xe1, 0x95, 0x19, 0xbe, 0xe8, 0x1f, 0x58, 0x3d, 0xbb, 0xdb, 0xac, 0x1f,
		0x7d, 0xaa, 0x1f, 0x5a, 0x2d, 0xab, 0xff, 0xd9, 0x3e, 0x6b, 0x77, 0x9b, 0xbd, 0x66, 0xf7, 0xbc,
		0xd9, 0xb0, 0x0f, 0xeb, 0xed, 0xc6, 0x7f, 0xac, 0x46, 0xff, 0xd3, 0x3b, 0x44, 0xe2, 0x4c, 0x23,
		0x71, 0xb4, 0x2e, 0x10, 0x84, 0xf3, 0x0b, 0xc2, 0xc9, 0x2d, 0x1c, 0x48, 0x33, 0xa7, 0x30, 0x55,
		0x0d, 0xe1, 0x0f, 0x3c, 0x39, 0x65, 0xb9, 0xc3, 0x1e, 0x3b, 0xe7, 0x8e, 0x72, 0xef, 0x0d, 0xa9,
		0x06, 0xee, 0x6c, 0x28, 0x8c, 0xe0, 0x5a, 0x18, 0x0f, 0xb5, 0x39, 0x23, 0xae, 0xcd, 0x19, 0x83,
		0x89, 0x0a, 0x1c, 0xa9, 0x84, 0x67, 0x84, 0x4e, 0xe1, 0x42, 0x85, 0x3f, 0x18, 0xf2, 0xbd, 0x90,
		0xe5, 0x45, 0xe0, 0x94, 0xbe, 0x51, 0xa9, 0x6c, 0x72, 0xf3, 0x16, 0x8c, 0x8f, 0x4b, 0xad, 0x3a,
		0xea, 0xe1, 0x0a, 0x10, 0x19, 0xf6, 0x0e, 0xe8, 0x70, 0x36, 0xea, 0x91, 0xdf, 0x4e, 0x76, 0x4d,
		0xa1, 0xd5, 0x00, 0x19, 0x1e, 0xe5, 0x0c, 0x0f, 0xb5, 0xec, 0xb7, 0xb8, 0x0d, 0x5e, 0x3b, 0x92,
		0x85, 0xd8, 0x89, 0xe4, 0x70, 0x87, 0xbe, 0xc6, 0x5b, 0x8e, 0xb4, 0x03, 0x1e, 0x5d, 0x87, 0x4c,
		0xd8, 0xd5, 0x95, 0x66, 0x81, 0x74, 0xe5, 0xff, 0x3d, 0x5a, 0x64, 0xd4, 0xdd, 0xdd, 0xc3, 0x21,
		0xdf, 0x75, 0xdb, 0x89, 0x07, 0x15, 0x1e, 0xf7, 0xd7, 0xb0, 0x11, 0x3f, 0xe1, 0x24, 0x72, 0xc2,
		0x50, 0xcc, 0x84, 0x5b, 0x16, 0xce, 0x56, 0x9c, 0x84, 0x6d, 0xa2, 0xcd, 0x53, 0x6c, 0x04, 0x4d,
		0x3e, 0x6f, 0x99, 0x72, 0x2e, 0xf7, 0xc3, 0x30, 0xbb, 0xa0, 0x8f, 0xe5, 0xc5, 0x7c, 0xcc, 0x2e,
		0xe4, 0x63, 0xa7, 0xea, 0xc6, 0x51, 0xc5, 0x8d, 0xb1, 0x6a, 0x9b, 0x0e, 0x7b, 0xc3, 0x2c, 0x55,
		0xd9, 0xf4, 0xda, 0x1d, 0x66, 0xa7, 0xba, 0x86, 0xc3, 0x7d, 0x45, 0x24, 0x48, 0xb1, 0xc1, 0x7c,
		0x2f, 0xce, 0x63, 0x7f, 0x61, 0x1e, 0x53, 0x99, 0x5c, 0xdc, 0x68, 0x0c, 0x62, 0x55, 0x24, 0x82,
		0xa5, 0x0d, 0xd1, 0xd2, 0x86, 0x70, 0xe9, 0x41, 0xbc, 0x78, 0x11, 0x30, 0x66, 0x44, 0x2c, 0x86,
		0x08, 0x5b, 0x59, 0x5b, 0x4d, 0x2e, 0xb4, 0x63, 0x7c, 0x91, 0x1d, 0xf7, 0x0b, 0xec, 0x18, 0x4b,
		0x39, 0xeb, 0xa0, 0x5a, 0xab, 0xcb, 0xed, 0x54, 0xda, 0x49, 0x53, 0xea, 0x23, 0x49, 0xc9, 0x58,
		0x95, 0x56, 0x0b, 0x35, 0x5a, 0x2c, 0x71, 0x2c, 0x71, 0x64, 0x07, 0x5a, 0x58, 0x7d, 0x89, 0x86,
		0xfe, 0xa2, 0x87, 0xa8, 0x52, 0xc0, 0x31, 0x57, 0x8c, 0xf3, 0xc4, 0xc8, 0x7a, 0x54, 0xc0, 0xb3,
		0x30, 0x1b, 0x15, 0xf0, 0x1c, 0x71, 0x8e, 0x0a, 0x78, 0x7e, 0xcb, 0x15, 0x15, 0x70, 0x62, 0x03,
		0x41, 0x05, 0x1c, 0x8c, 0xe6, 0x3b, 0x10, 0xd1, 0xa0, 0x02, 0x3e, 0x14, 0x2a, 0x90, 0xc1, 0xbd,
		0x27, 0x46, 0x8c, 0x2b, 0xe0, 0x15, 0x86, 0xf7, 0xb9, 0x95, 0xac, 0xc5, 0xa3, 0x3f, 0x74, 0x7c,
		0xc1, 0xff, 0x5e, 0x65, 0xab, 0x67, 0xf5, 0xec, 0xde, 0xd9, 0x61, 0xbf, 0x75, 0x6e, 0xf7, 0x3f,
		0x9f, 0x36, 0xb9, 0x86, 0xaf, 0xa8, 0xec, 0xe4, 0xb3, 0xbe, 0x5e, 0x8f, 0x79, 0xe1, 0x2f, 0x46,
		0xd4, 0xe9, 0x63, 0xa1, 0x17, 0xeb, 0xf4, 0xbc, 0x66, 0x77, 0x3b, 0x67, 0xfd, 0x66, 0xd7, 0xb6,
		0x1a, 0x25, 0x54, 0x96, 0x81, 0xac, 0xe4, 0x90, 0xb5, 0x0b, 0x64, 0x01, 0x59, 0xc9, 0x23, 0xeb,
		0xb4, 0xdb, 0x3c, 0xb6, 0xfe, 0xb0, 0x8f, 0x5b, 0xf5, 0x8f, 0x3d, 0xe0, 0x0a, 0xb8, 0x4a, 0x18,
		0x57, 0x3d, 0x78, 0x2b, 0xa0, 0x2a, 0x39, 0x54, 0xcd, 0xe9, 0x7b, 0x8f, 0x33, 0x7f, 0xd7, 0x89,
		0xc7, 0xeb, 0x81, 0xb6, 0xc2, 0xf0, 0x7a, 0x0d, 0xfc, 0x5a, 0x71, 0x10, 0xb7, 0x0b, 0xc4, 0x01,
		0x71, 0xc8, 0x03, 0x80, 0x37, 0x03, 0xf9, 0x01, 0xd0, 0x06, 0xb4, 0xbd, 0x09, 0x6d, 0xfd, 0xfa,
		0x47, 0xc0, 0x0c, 0x30, 0xcb, 0x00, 0x66, 0xbb, 0x35, 0x0d, 0x80, 0xc6, 0x7a, 0x04, 0x97, 0xa8,
		0x37, 0x61, 0x61, 0x23, 0x6e, 0x00, 0x4e, 0x88, 0x0f, 0x00, 0x94, 0x6e, 0x80, 0x7a, 0x72, 0xb5,
		0x4c, 0xbd, 0xf1, 0x6f, 0xbb, 0x55, 0x6f, 0x63, 0x9b, 0x05, 0xb0, 0x4a, 0x1a, 0x56, 0x80, 0x14,
		0x20, 0x95, 0x28, 0xa4, 0x4e, 0xac, 0xb6, 0xfd, 0xb1, 0xdb, 0x39, 0x3b, 0x05, 0xac, 0x00, 0xab,
		0xc4, 0x60, 0x75, 0x5e, 0xb7, 0x5a, 0xf5, 0xc3, 0x56, 0xf3, 0xe1, 0x6a, 0x35, 0xc0, 0x0b, 0xf0,
		0x4a, 0x0a, 0x5e, 0x31, 0xa8, 0xec, 0xa3, 0x4e, 0xbb, 0xd7, 0xef, 0xd6, 0xad, 0x76, 0x1f, 0x6d,
		0x52, 0x00, 0x58, 0x62, 0x00, 0x6b, 0xfe, 0xd1, 0x6f, 0xb6, 0x1b, 0xcd, 0x06, 0xe2, 0x23, 0xf0,
		0x95, 0x06, 0xbe, 0xa2, 0xd6, 0x15, 0xab, 0xdd, 0x6f, 0x76, 0x8f, 0xeb, 0x47, 0x4d, 0xbb, 0xde,
		0x68, 0x74, 0x9b, 0x3d, 0x78, 0x30, 0x20, 0x2c, 0x59, 0x84, 0xb5, 0x9b, 0xd6, 0xc7, 0x4f, 0x87,
		0x9d, 0x2e, 0x00, 0x06, 0x80, 0xa5, 0x00, 0xb0, 0x5d, 0xb8, 0x30, 0x20, 0x2c, 0x65, 0x84, 0xc1,
		0x85, 0x01, 0x60, 0x69, 0x01, 0xac, 0x65, 0xb5, 0x7f, 0xb7, 0xeb, 0xfd, 0x7e, 0xd7, 0x3a, 0x3c,
		0xeb, 0x37, 0x01, 0x2d, 0x40, 0x2b, 0x59, 0x68, 0x35, 0x9a, 0xad, 0xfa, 0x67, 0xa0, 0x0a, 0xa8,
		0x4a, 0x1e, 0x55, 0xf6, 0x79, 0xbd, 0x6b, 0xd5, 0xfb, 0x56, 0xa7, 0x0d, 0x7c, 0x01, 0x5f, 0x89,
		0xe2, 0x0b, 0x1b, 0x8c, 0x80, 0x54, 0xc2, 0x90, 0x6a, 0x75, 0x40, 0xdc, 0x01, 0xaa, 0x84, 0x41,
		0x75, 0xda, 0xed, 0xf4, 0x9b, 0x47, 0x61, 0x08, 0x9c, 0x9f, 0x3b, 0x05, 0xbe, 0x80, 0xaf, 0x84,
		0xf0, 0x75, 0x52, 0xff, 0x63, 0x8e, 0x31, 0xec, 0x5e, 0x03, 0x5d, 0xa9, 0xa0, 0xab, 0xdb, 0xec,
		0x35, 0xbb, 0xe7, 0xe8, 0x90, 0x00, 0xc6, 0x52, 0xc2, 0x98, 0xd5, 0x7e, 0xf0, 0x62, 0xa8, 0x43,
		0x00, 0x5d, 0x89, 0xa2, 0xab, 0xdb, 0xec, 0x59, 0x8d, 0xb3, 0x7a, 0x0b, 0xbe, 0x0b, 0xe8, 0x4a,
		0x1e, 0x5d, 0x50, 0x93, 0x01, 0xda, 0xb2, 0x47, 0x9d, 0x16, 0x67, 0x36, 0x34, 0x70, 0x6a, 0x05,
		0x82, 0x1b, 0xa0, 0x06, 0xa8, 0x65, 0x02, 0x35, 0x0d, 0x7a, 0x58, 0x01, 0x37, 0x36, 0x70, 0xd3,
		0xe9, 0xec, 0x07, 0x60, 0xc7, 0x05, 0x76, 0x9a, 0x9d, 0x09, 0x01, 0xf0, 0xb8, 0x00, 0x4f, 0xaf,
		0xb3, 0x22, 0xc0, 0x1d, 0x17, 0xdc, 0xe9, 0x76, 0x86, 0x04, 0xc8, 0x63, 0x85, 0x3c, 0x7d, 0x1a,
		0xb3, 0x01, 0x3c, 0x46, 0xc0, 0xdb, 0x85, 0xcb, 0x03, 0xf2, 0x72, 0x42, 0x1e, 0x5c, 0x1e, 0x80,
		0x97, 0x35, 0xf0, 0xb4, 0x39, 0xa3, 0x02, 0xc8, 0xb1, 0x82, 0x1c, 0xf3, 0x9e, 0x11, 0xa0, 0x8d,
		0x1f, 0xda, 0x74, 0x38, 0xd3, 0x02, 0xdc, 0xb1, 0xc2, 0x1d, 0x36, 0x60, 0x01, 0xb5, 0x8c, 0xa0,
		0xc6, 0xfb, 0x0c, 0x0c, 0xc0, 0xc6, 0x0a, 0x6c, 0xda, 0x9c, 0x8d, 0x01, 0xee, 0xb8, 0xe0, 0x4e,
		0xa7, 0x33, 0x33, 0x40, 0x1d, 0x27, 0xd4, 0xe9, 0x75, 0x96, 0x06, 0xd8, 0x63, 0x83, 0x3d, 0x8d,
		0xce, 0xd8, 0x00, 0x75, 0x5c, 0x50, 0xa7, 0xd3, 0xd9, 0x1b, 0xa0, 0x8e, 0x0b, 0xea, 0xfa, 0x4d,
		0xbb, 0xd1, 0x3c, 0xae, 0x9f, 0xb5, 0xfa, 0xf6, 0x49, 0xb3, 0xdf, 0xb5, 0x8e, 0x00, 0x3a, 0x80,
		0x2e, 0x6d, 0xd0, 0x9d, 0xb5, 0xe3, 0x56, 0xce, 0x66, 0xc3, 0x6e, 0xf5, 0xd0, 0x56, 0x07, 0xd0,
		0x65, 0x00, 0xba, 0x79, 0x3e, 0xd1, 0x6c, 0x20, 0xc2, 0x02, 0x77, 0x19, 0xe2, 0xae, 0x6f, 0xb5,
		0xac, 0xff, 0x6a, 0x86, 0x3a, 0xdc, 0x58, 0x89, 0xd5, 0x5e, 0xa4, 0x55, 0x5e, 0x04, 0xfe, 0x0c,
		0x70, 0x81, 0x27, 0x03, 0x5c, 0x05, 0x02, 0x97, 0x4e, 0x7c, 0x18, 0xf8, 0x02, 0xef, 0x05, 0xba,
		0xf4, 0x45, 0x57, 0xb7, 0x73, 0xd6, 0x6f, 0x76, 0xed, 0xa3, 0xfa, 0x69, 0xac, 0x26, 0xd4, 0xb5,
		0xeb, 0xad, 0x8f, 0x9d, 0xae, 0xd5, 0xff, 0x74, 0x02, 0x64, 0x01, 0x59, 0x89, 0x22, 0xeb, 0xe1,
		0x3b, 0x40, 0x0b, 0xd0, 0x4a, 0x10, 0x5a, 0x90, 0x40, 0x03, 0xde, 0x10, 0x2c, 0x8b, 0xeb, 0xd9,
		0x8a, 0x84, 0x38, 0x1d, 0x82, 0x68, 0x0c, 0x39, 0x54, 0xbc, 0xf1, 0xdc, 0x35, 0x7e, 0xde, 0xbc,
		0x9e, 0x33, 0x1f, 0x6b, 0x79, 0x58, 0xca, 0x24, 0xa0, 0x96, 0xea, 0x4a, 0x4d, 0x02, 0x27, 0x90,
		0x13, 0x55, 0x3a, 0x60, 0x14, 0x42, 0x4b, 0xfe, 0xe0, 0x5a, 0xdc, 0x38, 0x53, 0x27, 0xb8, 0x0e,
		0x83, 0x65, 0x79, 0x32, 0x15, 0x6a, 0x30, 0x51, 0x23, 0x39, 0x36, 0x95, 0x08, 0xbe, 0x4e, 0xbc,
		0x2f, 0xa6, 0x54, 0x7e, 0xe0, 0xa8, 0x81, 0x28, 0x3f, 0x7d, 0xc1, 0x5f, 0x7b, 0xa5, 0x3c, 0xf5,
		0x26, 0xc1, 0x64, 0x30, 0x71, 0xfd, 0xf8, 0xab, 0xb2, 0xf4, 0xa5, 0x5f, 0x76, 0xc5, 0xad, 0x70,
		0x17, 0x9f, 0xca, 0xae, 0x54, 0x5f, 0x4c, 0x3f, 0x70, 0x02, 0x61, 0x0e, 0x9d, 0xc0, 0xb9, 0x72,
		0x7c, 0x51, 0x76, 0xfd, 0x69, 0x39, 0x70, 0x6f, 0xfd, 0xf0, 0x9f, 0xf2, 0x4d, 0x60, 0x4a, 0x5f,
		0x95, 0x95, 0x90, 0xe3, 0xeb, 0xab, 0x89, 0xe7, 0xc7, 0x5f, 0x95, 0x1f, 0xde, 0x3a, 0x7e, 0x4b,
		0x7f, 0x76, 0x15, 0xfd, 0xe2, 0xfc, 0x73, 0x79, 0x16, 0x48, 0x57, 0xfe, 0x9f, 0x18, 0x9a, 0x57,
		0x8e, 0x1a, 0x7e, 0x95, 0xc3, 0xe0, 0xba, 0x1c, 0xbd, 0x15, 0xa3, 0x94, 0xa6, 0xe4, 0x07, 0xde,
		0x6c, 0x10, 0xa8, 0x05, 0x81, 0xe9, 0xc4, 0x53, 0xd2, 0x9e, 0x3f, 0x6e, 0x6b, 0x31, 0x74, 0xfb,
		0xc9, 0xf7, 0xfe, 0xd3, 0x17, 0xec, 0xd3, 0xe5, 0x74, 0xc4, 0x5f, 0xd9, 0x96, 0x2f, 0x7d, 0xbb,
		0x15, 0x4d, 0xc7, 0xfc, 0x93, 0xdd, 0x92, 0xea, 0x4b, 0x2f, 0x7c, 0x44, 0x8d, 0xc5, 0x64, 0xd8,
		0x2d, 0x7f, 0x6a, 0xf7, 0xdd, 0x5b, 0x3f, 0xfc, 0xc7, 0x3e, 0x09, 0x2c, 0x5f, 0xd9, 0xed, 0xe5,
		0x5c, 0xc4, 0x5f, 0xd9, 0x0f, 0x6f, 0x1b, 0xbf, 0x5f, 0x6f, 0x3e, 0x17, 0x8b, 0xcf, 0xf6, 0xd9,
		0x62, 0x2e, 0x0e, 0x97, 0x53, 0x61, 0x47, 0xef, 0xc3, 0x83, 0x72, 0xd1, 0x77, 0x8f, 0xb4, 0x2d,
		0x24, 0xee, 0xb8, 0x4b, 0xe2, 0x2e, 0xf0, 0x1c, 0x73, 0x16, 0x42, 0xf7, 0xca, 0x15, 0x2c, 0x9c,
		0x76, 0xc9, 0x13, 0x23, 0xe1, 0x09, 0x35, 0x10, 0x6c, 0x4a, 0x1b, 0x8c, 0x22, 0x61, 0x9c, 0x30,
		0x1e, 0x1f, 0xed, 0x7d, 0xa8, 0x6c, 0x1d, 0x18, 0x56, 0xcf, 0xb4, 0x7a, 0x46, 0xdf, 0x73, 0x46,
		0x23, 0x39, 0x30, 0x9a, 0x6a, 0x2c, 0x95, 0x10, 0x9e, 0x54, 0x63, 0xe3, 0xd7, 0x7e, 0xf3, 0xbd,
		0x71, 0x22, 0x02, 0x4f, 0x0e, 0x2e, 0x54, 0xf3, 0x2e, 0x10, 0xca, 0x97, 0x13, 0xe5, 0x6f, 0x1a,
		0xfe, 0xec, 0xca, 0xec, 0xb7, 0xce, 0x8d, 0xed, 0xfd, 0x03, 0x23, 0xfc, 0x5c, 0xad, 0x6e, 0x18,
		0xd5, 0xed, 0x0d, 0xa3, 0x52, 0xab, 0x6c, 0x18, 0xd5, 0xe8, 0xbb, 0xea, 0xf6, 0x26, 0xa7, 0x58,
		0xd4, 0x9b, 0xcc, 0xbc, 0x81, 0x60, 0xc5, 0x69, 0x22, 0xbb, 0x7f, 0x17, 0xf7, 0x5f, 0x27, 0xde,
		0x30, 0x9c, 0xd0, 0x87, 0x55, 0xc3, 0xab, 0x38, 0x53, 0xfa, 0xe4, 0xf8, 0x75, 0x6f, 0x3c, 0xbb,
		0x11, 0x2a, 0x28, 0x1d, 0x18, 0x81, 0x37, 0x13, 0xcc, 0x06, 0xb0, 0x62, 0x7d, 0x16, 0xcb, 0x0a,
		0xa9, 0x57, 0xc1, 0xac, 0xbc, 0xa4, 0xbf, 0x1e, 0x4a, 0x5f, 0xaf, 0x85, 0x42, 0xb8, 0x4e, 0x2f,
		0x5c, 0x6f, 0x6e, 0xce, 0x13, 0xbc, 0x72, 0x70, 0x3f, 0x15, 0xc6, 0x6f, 0xc6, 0xbb, 0xc9, 0xc0,
		0x0c, 0x73, 0x4e, 0xd3, 0xf5, 0x87, 0x57, 0x66, 0xf8, 0xa2, 0x7f, 0xf0, 0xfd, 0x06, 0x90, 0x77,
		0x88, 0xc9, 0x99, 0xc6, 0xe4, 0x68, 0x55, 0x20, 0x1c, 0xe7, 0x17, 0x8e, 0x93, 0x5a, 0x36, 0x7c,
		0x62, 0x2e, 0xa3, 0x05, 0xde, 0x10, 0xfe, 0xc0, 0x93, 0x53, 0x76, 0xd5, 0xc4, 0x47, 0x8e, 0xb9,
		0xa3, 0xdc, 0x7b, 0x43, 0xaa, 0x81, 0x3b, 0x1b, 0x0a, 0x23, 0xb8, 0x16, 0xc6, 0xb2, 0x34, 0x67,
		0xc4, 0xa5, 0x39, 0x63, 0x30, 0x51, 0x81, 0x23, 0x95, 0xf0, 0x8c, 0xd0, 0x21, 0x84, 0x3f, 0x75,
		0xa1, 0x42, 0x82, 0x27, 0x7d, 0x23, 0xc2, 0xe5, 0xf6, 0xfe, 0x26, 0x37, 0x2f, 0xc1, 0xd4, 0x39,
		0x3f, 0x75, 0xd0, 0xc3, 0x15, 0x08, 0xf2, 0xdb, 0xd3, 0x66, 0xef, 0xab, 0xd7, 0xfc, 0x75, 0x52,
		0xab, 0x09, 0x9b, 0x69, 0xc8, 0xe8, 0x28, 0x67, 0x74, 0xa8, 0x69, 0xbf, 0xc5, 0x61, 0xf0, 0xda,
		0x84, 0x2c, 0xc0, 0xe6, 0x23, 0x83, 0xd8, 0xa9, 0xef, 0x76, 0x23, 0xed, 0x60, 0x47, 0xd7, 0x19,
		0xd3, 0xb4, 0x8c, 0xa8, 0xf3, 0x0d, 0x49, 0x73, 0xb8, 0x6e, 0x42, 0x86, 0x45, 0x74, 0xb5, 0x97,
		0x5a, 0xd2, 0x0f, 0xea, 0x41, 0xe0, 0x91, 0x8e, 0x0a, 0xa5, 0x13, 0xa9, 0x9a, 0xae, 0x08, 0x09,
		0xaf, 0x5f, 0x3a, 0x30, 0xb6, 0x36, 0x08, 0x5b, 0xea, 0xdc, 0xad, 0x58, 0x5a, 0xf9, 0x50, 0xab,
		0xed, 0xee, 0xd5, 0x6a, 0x5b, 0x7b, 0xdb, 0x7b, 0x5b, 0xfb, 0x3b, 0x3b, 0x95, 0xdd, 0xca, 0x0e,
		0x61, 0xe3, 0x3b, 0xde, 0x50, 0x78, 0x62, 0x78, 0x18, 0xa2, 0x56, 0xcd, 0x5c, 0x97, 0x83, 0xa9,
		0x67, 0xbe, 0x08, 0xc1, 0x3b, 0x72, 0x5c, 0x5f, 0xc0, 0x39, 0xe9, 0xc7, 0x08, 0x75, 0x63, 0x82,
		0x84, 0x69, 0x9f, 0x2e, 0x74, 0x8f, 0x26, 0xb9, 0xa3, 0x47, 0x9d, 0x68, 0x59, 0x44, 0xcc, 0x4f,
		0x52, 0xf7, 0x8f, 0xda, 0xf8, 0x45, 0x82, 0x0e, 0x91, 0xbd, 0x23, 0xa4, 0xe5, 0x01, 0xe9, 0xf8,
		0x19, 0x42, 0x3e, 0xa6, 0x34, 0x53, 0x43, 0x31, 0x92, 0x4a, 0x0c, 0xcd, 0xe5, 0x42, 0xa0, 0xe6,
		0x66, 0xe2, 0xfd, 0xba, 0x75, 0x53, 0x89, 0xf9, 0xea, 0xdf, 0xa5, 0x1a, 0x86, 0xe9, 0x16, 0x31,
		0xb3, 0x8e, 0x22, 0xa7, 0x41, 0x2f, 0x63, 0x2d, 0x9d, 0x7a, 0x62, 0x24, 0xef, 0x68, 0xc6, 0xb5,
		0x25, 0xe8, 0x16, 0x5d, 0x07, 0x14, 0xc3, 0x03, 0xf1, 0x8d, 0xdc, 0xd5, 0xcd, 0xda, 0xe9, 0x7c,
		0xa6, 0x89, 0xe6, 0xa0, 0x5c, 0xf6, 0x62, 0x1f, 0xed, 0xb7, 0x2e, 0x81, 0x09, 0x3e, 0xcf, 0x8a,
		0xcf, 0x37, 0x24, 0xcd, 0x22, 0xe7, 0x5a, 0x74, 0xa5, 0xeb, 0x57, 0x5e, 0xe2, 0x03, 0x54, 0xdd,
		0x0b, 0x4d, 0x5a, 0x40, 0x9e, 0x1e, 0x70, 0xa0, 0x09, 0x8c, 0xe8, 0x02, 0x17, 0xda, 0xc0, 0x8e,
		0x3e, 0xb0, 0xa3, 0x11, 0xbc, 0xe8, 0x04, 0x4d, 0x5a, 0x41, 0x94, 0x5e, 0x90, 0xa7, 0x19, 0xb1,
		0x81, 0xf3, 0x33, 0xef, 0xe4, 0x9d, 0xd0, 0xd2, 0xaf, 0x73, 0x38, 0xa2, 0x4f, 0x9c, 0x68, 0xb0,
		0x21, 0x1c, 0x9c, 0x88, 0x07, 0x43, 0x02, 0xc2, 0x8d, 0x88, 0xb0, 0x25, 0x24, 0x6c, 0x89, 0x09,
		0x4f, 0x82, 0x42, 0x9b, 0xa8, 0x10, 0x27, 0x2c, 0x6c, 0x88, 0x4b, 0x6c, 0xa8, 0x2b, 0xd4, 0x38,
		0xda, 0xf4, 0x64, 0xe2, 0xbd, 0x96, 0x01, 0x62, 0x61, 0x37, 0x13, 0x0f, 0xb0, 0xa0, 0x34, 0x5b,
		0x4c, 0xcc, 0xe5, 0x42, 0x6d, 0x38, 0x52, 0x1c, 0xc6, 0x54, 0x87, 0x2b, 0xe5, 0x61, 0x4f, 0x7d,
		0xd8, 0x53, 0x20, 0xde, 0x54, 0x88, 0x07, 0x25, 0x62, 0x42, 0x8d, 0x62, 0x28, 0xf4, 0xef, 0xa7,
		0x82, 0xa7, 0xc7, 0x9e, 0x49, 0x15, 0x7c, 0xe0, 0xe4, 0xaf, 0x17, 0xf4, 0x63, 0x87, 0x91, 0xc9,
		0x5d, 0x47, 0x8d, 0x05, 0x3b, 0x65, 0x79, 0x86, 0x67, 0xd1, 0x4f, 0xa4, 0x62, 0x79, 0x88, 0xde,
		0x88, 0x2f, 0x20, 0xe0, 0xc3, 0x53, 0xd7, 0xec, 0x3f, 0xf6, 0x9c, 0x41, 0x20, 0x27, 0xaa, 0x21,
		0xc7, 0x92, 0xfa, 0x69, 0x9c, 0x7f, 0x76, 0x8d, 0x62, 0xec, 0x04, 0xf2, 0x56, 0x90, 0x3e, 0x3c,
		0xa2, 0x41, 0xd4, 0x7c, 0xbc, 0x74, 0x9d, 0x3b, 0xfe, 0x4b, 0xb7, 0xba, 0xb3, 0x83, 0xc5, 0x8b,
		0xc5, 0x5b, 0x00, 0x62, 0xce, 0xcf, 0xda, 0x4b, 0xa8, 0x6d, 0x14, 0x25, 0xb8, 0xcc, 0xcf, 0x55,
		0xb3, 0x2b, 0x03, 0x13, 0x3e, 0x0d, 0xfe, 0x52, 0x16, 0x86, 0x22, 0x70, 0x4a, 0x06, 0xa3, 0x08,
		0x9c, 0xa9, 0xe9, 0x28, 0x02, 0xe7, 0x34, 0x00, 0x14, 0x81, 0xc1, 0x36, 0x34, 0x49, 0x67, 0x51,
		0x04, 0xce, 0x9c, 0x7e, 0xa0, 0x08, 0x9c, 0xf6, 0x07, 0x8a, 0xc0, 0xd9, 0x1a, 0x8f, 0x22, 0x30,
		0x15, 0xd7, 0x88, 0x22, 0x70, 0x0e, 0x4b, 0x17, 0x45, 0x60, 0x2c, 0x5e, 0x2c, 0x5e, 0x14, 0x81,
		0xd3, 0xfa, 0x40, 0x11, 0xb8, 0x30, 0xc1, 0xa5, 0x74, 0xbb, 0xf0, 0xc7, 0xcc, 0xaa, 0xc0, 0x73,
		0xb3, 0x51, 0x06, 0x4e, 0xc3, 0x5c, 0x94, 0x81, 0x33, 0x04, 0x32, 0xca, 0xc0, 0xd9, 0x2d, 0x43,
		0x94, 0x81, 0x73, 0x1e, 0x00, 0xca, 0xc0, 0xe0, 0x1c, 0x0b, 0x28, 0xf0, 0x2d, 0x03, 0x5f, 0x49,
		0xe5, 0x78, 0xf7, 0x0c, 0xeb, 0xc0, 0xfb, 0xa0, 0xf5, 0x05, 0xb0, 0x10, 0x37, 0xa9, 0x24, 0x6b,
		0x2f, 0x7b, 0x9d, 0xd8, 0x35, 0xf5, 0xc9, 0xb5, 0x57, 0xca, 0x1c, 0x44, 0x22, 0x0c, 0xd6, 0xc2,
		0xb2, 0x67, 0xcb, 0x47, 0xbe, 0x94, 0xda, 0x7e, 0xf2, 0x82, 0x1d, 0xbd, 0x0f, 0xae, 0x55, 0xd1,
		0xce, 0xe7, 0xf1, 0xe8, 0xb2, 0xe3, 0xd4, 0x5d, 0xc7, 0xa4, 0x9c, 0x02, 0xb5, 0x18, 0x94, 0x4d,
		0x0c, 0xa8, 0xc5, 0xa0, 0x3c, 0xa2, 0x69, 0x59, 0x04, 0x59, 0x50, 0x21, 0xca, 0x1f, 0x2b, 0xf2,
		0x2b, 0xce, 0xc8, 0x13, 0x23, 0x0e, 0x1e, 0x77, 0x29, 0x27, 0xb7, 0xc7, 0xc0, 0xd6, 0xd3, 0x45,
		0x62, 0xf9, 0xe8, 0xd6, 0x78, 0xe4, 0x01, 0x3a, 0x59, 0x86, 0xeb, 0x15, 0x5f, 0x6d, 0x22, 0xae,
		0x57, 0x4c, 0xd8, 0x52, 0x5c, 0xaf, 0x98, 0xad, 0xa9, 0xb8, 0x5e, 0xf1, 0xb5, 0x9c, 0x18, 0xd7,
		0x2b, 0x52, 0x29, 0x0f, 0xe3, 0xca, 0xc5, 0x1c, 0x0a, 0xc2, 0xb8, 0x84, 0x91, 0xa3, 0x45, 0xb8,
		0x84, 0xb1, 0xe8, 0xde, 0x13, 0xd7, 0x31, 0xa6, 0xe8, 0x24, 0x71, 0x2f, 0x23, 0x65, 0x4b, 0x88,
		0x38, 0xbf, 0x65, 0x5e, 0x2b, 0x87, 0x44, 0xd6, 0x22, 0xcd, 0x2c, 0x96, 0x6e, 0xd6, 0xca, 0x2a,
		0x4b, 0x25, 0x9c, 0x95, 0x12, 0xce, 0x42, 0xa9, 0xb8, 0x0a, 0xa2, 0xfc, 0x88, 0x3d, 0x2f, 0x22,
		0xc4, 0x82, 0xd8, 0xb2, 0x1f, 0x1a, 0x64, 0x27, 0x7f, 0x6a, 0x91, 0xaf, 0x05, 0x39, 0x7b, 0x2a,
		0x6a, 0x1e, 0x8a, 0xab, 0x67, 0x22, 0xe0, 0x90, 0xb8, 0x39, 0xa2, 0x7c, 0xfd, 0x4f, 0x7e, 0xab,
		0x3e, 0xc7, 0x15, 0x5f, 0x0a, 0x91, 0x3c, 0xcc, 0x7d, 0xa1, 0xc7, 0x7b, 0xfe, 0x73, 0x73, 0x72,
		0xf6, 0x80, 0x34, 0xda, 0xfd, 0xc8, 0xb4, 0xf3, 0x51, 0x6a, 0xd7, 0x23, 0xd8, 0x8e, 0x47, 0xad,
		0xdd, 0x8e, 0x6c, 0x3b, 0x1d, 0xd9, 0x76, 0x39, 0x9a, 0xed, 0x70, 0xc5, 0x66, 0xa1, 0x64, 0xda,
		0xd5, 0x08, 0xb6, 0xa3, 0x51, 0x6a, 0x37, 0x5b, 0x6f, 0x27, 0x9b, 0x87, 0x70, 0x50, 0xb9, 0x1c,
		0xd8, 0x3e, 0x85, 0x7b, 0x82, 0x49, 0xdd, 0x03, 0x4c, 0xe4, 0x9e, 0x5f, 0x50, 0x39, 0x50, 0x39,
		0x50, 0x39, 0x50, 0xb9, 0x62, 0x52, 0x39, 0x2a, 0xf7, 0xd4, 0x12, 0xa9, 0x75, 0x90, 0xac, 0x79,
		0x10, 0xab, 0x7d, 0x90, 0x0b, 0x9c, 0x14, 0x03, 0x28, 0xe1, 0x40, 0x4a, 0x35, 0xa0, 0x92, 0x0f,
		0xac, 0xe4, 0x03, 0x2c, 0xed, 0x40, 0x4b, 0x23, 0xe0, 0x12, 0x09, 0xbc, 0xf4, 0x6a, 0x29, 0x6b,
		0x1e, 0x6b, 0x26, 0x55, 0x50, 0xd9, 0xa5, 0xe4, 0xb0, 0x16, 0xf1, 0x6f, 0x97, 0x90, 0x49, 0x34,
		0x15, 0xea, 0x09, 0xf6, 0xf6, 0x52, 0x56, 0x98, 0xa7, 0xae, 0x20, 0xcf, 0x46, 0x64, 0x9a, 0xbe,
		0x88, 0x34, 0xc1, 0x03, 0x4e, 0xa4, 0x15, 0xdc, 0xe3, 0xa5, 0x51, 0xdb, 0xda, 0xdf, 0xc1, 0xea,
		0xd0, 0x7d, 0x75, 0xa0, 0xa3, 0xfe, 0xd9, 0x8f, 0x4b, 0x34, 0xdf, 0x51, 0xf1, 0x9e, 0x25, 0xff,
		0xde, 0x0f, 0xc4, 0x0d, 0xc9, 0x62, 0xd1, 0x83, 0x69, 0x28, 0x18, 0x3d, 0x67, 0x0e, 0x0a, 0x46,
		0x3f, 0x01, 0x26, 0x14, 0x8c, 0x7e, 0x1c, 0xe6, 0x28, 0x18, 0xbd, 0xd1, 0x40, 0x14, 0x8c, 0xb8,
		0x64, 0x0e, 0x84, 0x0b, 0x46, 0xd4, 0xc2, 0xdf, 0x6a, 0x08, 0xac, 0x7c, 0x20, 0x64, 0xd3, 0xa9,
		0x13, 0x04, 0xc2, 0x53, 0xe4, 0xca, 0x46, 0xa5, 0x3f, 0xb7, 0xcc, 0xfd, 0xba, 0x79, 0xec, 0x98,
		0xa3, 0xcb, 0xbf, 0x6a, 0xdf, 0x2e, 0x2e, 0x36, 0xbf, 0xf3, 0x02, 0x1d, 0x1f, 0x71, 0x49, 0x69,
		0x7a, 0x3b, 0x3d, 0xeb, 0x0f, 0xb2, 0x73, 0xfc, 0xbf, 0x9f, 0x9d, 0xe4, 0x7f, 0x95, 0x90, 0x87,
		0x51, 0xcb, 0xc3, 0x70, 0x08, 0x0a, 0x87, 0xa0, 0x5e, 0x79, 0x08, 0x8a, 0x8a, 0xba, 0x3b, 0x93,
		0x03, 0x50, 0x04, 0x94, 0xd8, 0x0b, 0xda, 0x31, 0x4b, 0xa6, 0xce, 0x43, 0x8e, 0xe0, 0xe2, 0x10,
		0x14, 0xdd, 0x3a, 0x0e, 0x3a, 0x67, 0xf9, 0xd6, 0x6b, 0xd0, 0x39, 0x0b, 0x16, 0xca, 0xaf, 0x0e,
		0x83, 0x43, 0x50, 0xdf, 0xad, 0xb6, 0x3c, 0x3e, 0x04, 0xf5, 0x10, 0xc6, 0x8b, 0x4a, 0xeb, 0x7e,
		0x29, 0xd0, 0x82, 0x5d, 0x0a, 0x80, 0x45, 0x9d, 0xdc, 0x46, 0xde, 0x14, 0x8e, 0x86, 0xfa, 0x17,
		0x1d, 0xb5, 0x2f, 0xd2, 0xea, 0x5e, 0x84, 0xd4, 0xbc, 0x08, 0xa9, 0x77, 0xe5, 0xb5, 0x8e, 0x89,
		0x94, 0x7d, 0x78, 0x95, 0x7b, 0x4a, 0xb9, 0x9e, 0x79, 0x65, 0x50, 0xe0, 0xc9, 0x87, 0x03, 0x64,
		0x1f, 0x81, 0xb3, 0x7d, 0xc7, 0x8c, 0x7d, 0x44, 0xde, 0xbe, 0x81, 0x85, 0x4f, 0xc8, 0xc1, 0x15,
		0x90, 0x76, 0x01, 0xd9, 0xae, 0xfc, 0xec, 0xd6, 0x5f, 0x36, 0xef, 0x94, 0xd1, 0x0a, 0x2f, 0x89,
		0xbb, 0xc0, 0x73, 0xcc, 0x59, 0x88, 0x83, 0x2b, 0x37, 0xdb, 0x84, 0xbb, 0xe4, 0x89, 0x91, 0xf0,
		0x84, 0x1a, 0x64, 0x7f, 0xc0, 0x23, 0x07, 0x17, 0xb6, 0xac, 0x22, 0x74, 0x8f, 0x8f, 0x76, 0x2a,
		0xd5, 0xad, 0x03, 0xe3, 0xc4, 0xb4, 0x7a, 0x56, 0xef, 0xc0, 0x38, 0x99, 0xb9, 0x81, 0x34, 0xfa,
		0x93, 0xe9, 0xc4, 0x9d, 0x8c, 0xef, 0x8d, 0x5f, 0x4f, 0xfa, 0xef, 0x8d, 0xee, 0x64, 0x16, 0x48,
		0x35, 0x36, 0xa4, 0xba, 0x50, 0x96, 0x0a, 0x84, 0x77, 0x23, 0x86, 0xd2, 0x09, 0x84, 0xd1, 0x8b,
		0xf2, 0x2b, 0x23, 0x98, 0x18, 0xcf, 0xbc, 0xec, 0x1b, 0xbf, 0x5a, 0x3d, 0xd3, 0xea, 0xf9, 0xef,
		0x37, 0x8d, 0x7e, 0xeb, 0xfc, 0x42, 0x55, 0xab, 0xd5, 0xcd, 0x3c, 0xdc, 0x52, 0xce, 0x05, 0xd1,
		0xd5, 0x02, 0xe8, 0x03, 0xc6, 0x72, 0xa2, 0xd5, 0x54, 0x6a, 0x9e, 0x8f, 0x6a, 0x9c, 0x99, 0x83,
		0x50, 0x77, 0x3e, 0x96, 0xd9, 0xbb, 0x65, 0xd8, 0x88, 0x53, 0xfa, 0x7a, 0x2d, 0x54, 0x91, 0x5c,
		0xf3, 0xa3, 0x5b, 0x01, 0x8d, 0xdf, 0x8c, 0x77, 0x8b, 0xad, 0x00, 0xd3, 0xf5, 0x87, 0x57, 0x66,
		0xf8, 0xa2, 0x7f, 0x70, 0xd2, 0xb7, 0xad, 0x5e, 0xfb, 0x5d, 0xc1, 0xbd, 0x6a, 0x84, 0x0c, 0x38,
		0xd4, 0x07, 0x87, 0xfa, 0x33, 0xd0, 0xf9, 0xa5, 0x00, 0x15, 0xa5, 0x52, 0x43, 0xf8, 0x03, 0x4f,
		0x4e, 0x73, 0x2d, 0x27, 0xc5, 0x0b, 0xbb, 0xa3, 0xdc, 0x7b, 0x43, 0xaa, 0x81, 0x3b, 0x1b, 0x0a,
		0x23, 0xb8, 0x16, 0xc6, 0x49, 0xdf, 0xb0, 0x7a, 0x6d, 0x63, 0x30, 0x51, 0x81, 0x23, 0x95, 0xf0,
		0x8c, 0x10, 0xd0, 0xd1, 0xff, 0xf4, 0x5b, 0xe7, 0x86, 0xf4, 0x8d, 0x70, 0xc6, 0x72, 0xe3, 0x4f,
		0x06, 0x91, 0x4d, 0xe5, 0xd5, 0x15, 0x3f, 0x5c, 0x99, 0xcf, 0x1c, 0x6b, 0x5e, 0x94, 0x76, 0x90,
		0x1f, 0x39, 0x80, 0x37, 0x41, 0x0c, 0x35, 0x32, 0xde, 0x9c, 0x4c, 0xab, 0x8a, 0x40, 0x4e, 0xb5,
		0x3e, 0xc2, 0x35, 0xbe, 0x0c, 0x1d, 0x1e, 0xc1, 0x8a, 0x5e, 0x36, 0xde, 0x29, 0xfd, 0xd5, 0x9a,
		0xc1, 0xfa, 0x29, 0xdd, 0x84, 0x69, 0xb4, 0x19, 0x2c, 0xd2, 0xe8, 0xcc, 0xd6, 0xcf, 0x83, 0x9c,
		0xda, 0xe3, 0xf7, 0xcf, 0xc8, 0x63, 0x64, 0x2b, 0x34, 0x9a, 0x79, 0x5b, 0x64, 0x1e, 0xed, 0x8f,
		0x39, 0xb6, 0x39, 0xe6, 0xc5, 0x3c, 0x73, 0x6f, 0x5b, 0xcc, 0x9d, 0x5c, 0xe6, 0xdb, 0x86, 0xa8,
		0xd7, 0xbe, 0x46, 0xd6, 0xc2, 0x9b, 0xa5, 0x85, 0xd3, 0x95, 0xc2, 0xcf, 0x7e, 0xe5, 0x2c, 0x9d,
		0xc5, 0x8a, 0x0d, 0x19, 0x23, 0x37, 0x1f, 0xad, 0xe9, 0xdc, 0x3a, 0xe4, 0xf3, 0xec, 0x88, 0x27,
		0xd0, 0x01, 0x4f, 0xa9, 0x14, 0x99, 0x6b, 0x87, 0x3b, 0xcd, 0x62, 0x64, 0x6e, 0x1d, 0xec, 0x7a,
		0x37, 0xc1, 0xe4, 0xa5, 0xe5, 0x5c, 0xca, 0x3c, 0x9f, 0xf8, 0x5e, 0x80, 0xb9, 0xcf, 0x6b, 0xb9,
		0xe5, 0x7b, 0xa5, 0x41, 0xee, 0x07, 0xb2, 0x28, 0x1c, 0xc4, 0x22, 0x74, 0x00, 0x8b, 0xca, 0xc1,
		0x2b, 0x72, 0x07, 0xae, 0xc8, 0x1d, 0xb4, 0xa2, 0x75, 0xc0, 0xaa, 0x58, 0xe7, 0x33, 0xf2, 0xbe,
		0x82, 0x00, 0xd7, 0x2c, 0xbe, 0x1c, 0xc8, 0x70, 0xc2, 0x98, 0x4e, 0x60, 0x23, 0x18, 0xe0, 0xa8,
		0x05, 0x3a, 0xb2, 0x01, 0x8f, 0x6c, 0xe0, 0xa3, 0x19, 0x00, 0xf3, 0x0d, 0x84, 0x39, 0x07, 0xc4,
		0x78, 0x4a, 0x70, 0xc2, 0xf8, 0x07, 0x32, 0x2d, 0x5c, 0xb3, 0x48, 0x6d, 0xe9, 0xe0, 0x9a, 0x45,
		0x5c, 0xb3, 0x08, 0x2a, 0x07, 0x2a, 0x07, 0x2a, 0x07, 0x2a, 0x07, 0x2a, 0x47, 0xa3, 0xc6, 0x11,
		0x1b, 0xe2, 0x04, 0x81, 0x27, 0xaf, 0x66, 0x41, 0x0e, 0xbb, 0xc0, 0xdf, 0x75, 0x82, 0x2b, 0xb6,
		0x41, 0x3f, 0x9f, 0x72, 0x08, 0xa5, 0x18, 0x4a, 0x09, 0x87, 0x54, 0xaa, 0xa1, 0x95, 0x7c, 0x88,
		0x25, 0x1f, 0x6a, 0x69, 0x87, 0x5c, 0x1a, 0xa1, 0x97, 0x48, 0x08, 0xa6, 0x57, 0x55, 0x59, 0xf3,
		0x58, 0x42, 0xcd, 0x6e, 0x84, 0xe7, 0xe4, 0x7c, 0x84, 0xe5, 0xc5, 0xfc, 0xb1, 0x46, 0xc8, 0xa6,
		0xa6, 0x9a, 0xdd, 0xd0, 0xf3, 0xa3, 0xfd, 0x49, 0x2f, 0xf0, 0xa4, 0x1a, 0x93, 0xbc, 0xcd, 0xad,
		0xb4, 0x15, 0x35, 0xec, 0x9f, 0x37, 0xbb, 0xad, 0x4e, 0xbd, 0x51, 0x22, 0x78, 0x0f, 0x5e, 0x25,
		0x34, 0xb0, 0xde, 0xef, 0xd7, 0x8f, 0x3e, 0x35, 0x1b, 0x25, 0x5a, 0x57, 0x91, 0x6d, 0x50, 0x43,
		0x9a, 0x15, 0x05, 0x1b, 0x82, 0x30, 0x8b, 0x27, 0x30, 0xf7, 0x92, 0xd3, 0xb3, 0xe6, 0xc5, 0x0b,
		0xe0, 0xc0, 0xd8, 0xc2, 0x6d, 0x77, 0x94, 0xf9, 0x02, 0x6e, 0xbb, 0x23, 0xd3, 0x9b, 0xb0, 0x46,
		0x55, 0x28, 0xf4, 0x28, 0x20, 0x4b, 0x47, 0x96, 0x8e, 0x2c, 0x1d, 0x59, 0x3a, 0xb2, 0x74, 0x64,
		0xe9, 0x19, 0x7a, 0xac, 0x99, 0x54, 0x41, 0x65, 0x97, 0x60, 0x82, 0xbe, 0x4b, 0xc8, 0xa4, 0xae,
		0xa3, 0xc6, 0x82, 0xdc, 0xdd, 0x67, 0x04, 0xb3, 0xa5, 0x13, 0xa9, 0xe8, 0xdf, 0xfd, 0xbe, 0x85,
		0x8b, 0xdf, 0xdf, 0xe8, 0x3b, 0xc8, 0x5f, 0xfc, 0x4e, 0x30, 0x53, 0x3f, 0x71, 0xee, 0xe8, 0x2f,
		0x8d, 0xda, 0xd6, 0xfe, 0x0e, 0x56, 0x87, 0xee, 0xab, 0x03, 0x85, 0xa2, 0x67, 0x3f, 0x70, 0x1d,
		0x27, 0x05, 0x0b, 0x70, 0x1d, 0xe7, 0x63, 0x7b, 0x48, 0xea, 0x34, 0x3d, 0xd2, 0xbd, 0x29, 0x3f,
		0xe8, 0x20, 0x94, 0xe3, 0xd7, 0x70, 0x2f, 0xe7, 0xb3, 0x0a, 0x4f, 0xe1, 0x83, 0x5b, 0xca, 0xfe,
		0xda, 0xfd, 0xf8, 0xb9, 0xd9, 0xf1, 0x6b, 0xc5, 0xbe, 0xa0, 0xb3, 0xb0, 0x37, 0x39, 0xe1, 0xfe,
		0x26, 0xdc, 0xdf, 0xf4, 0x5d, 0xe3, 0x70, 0x7f, 0x13, 0xa1, 0xd5, 0x8b, 0xfb, 0x9b, 0xde, 0xc2,
		0x0f, 0x70, 0x91, 0xd3, 0x8f, 0x32, 0x02, 0xa8, 0xd5, 0x6a, 0xe0, 0x35, 0x70, 0xa3, 0xd3, 0xcf,
		0x78, 0x09, 0x5c, 0xed, 0xf4, 0x82, 0x53, 0xc0, 0x1d, 0x4f, 0x0c, 0xd6, 0x3c, 0xee, 0x78, 0xca,
		0xac, 0xd2, 0x9a, 0xcb, 0x1d, 0x4f, 0xfb, 0xb8, 0xe2, 0x09, 0x57, 0x3c, 0x19, 0xf9, 0x5e, 0xf1,
		0xb4, 0x8f, 0x1b, 0x9e, 0x92, 0xfa, 0xc0, 0x0d, 0x4f, 0xe9, 0x39, 0xe6, 0x1f, 0xba, 0xa6, 0xe7,
		0xac, 0xd5, 0xb7, 0xec, 0x7e, 0xe7, 0xb4, 0xd3, 0xea, 0x7c, 0xfc, 0x8c, 0x9b, 0x9e, 0x70, 0xd3,
		0xd3, 0xcf, 0xdf, 0xf4, 0xf4, 0x04, 0x42, 0xb8, 0xf1, 0x29, 0xeb, 0x85, 0xbe, 0x76, 0x1d, 0xcf,
		0xe3, 0xdc, 0xee, 0x85, 0x6b, 0x79, 0x2e, 0xd4, 0xe2, 0x5e, 0x1e, 0xa3, 0x5a, 0xdd, 0xc7, 0xcd,
		0x4f, 0xb8, 0xf9, 0xe9, 0x47, 0x1c, 0x42, 0x22, 0x50, 0x43, 0x4d, 0x8d, 0x37, 0x67, 0xc3, 0x0d,
		0x50, 0x85, 0xa8, 0x09, 0x16, 0xf7, 0x26, 0xa8, 0xd5, 0x02, 0x20, 0x6e, 0x84, 0xfa, 0xf1, 0x59,
		0x54, 0xee, 0x34, 0xc3, 0x03, 0x66, 0x31, 0xff, 0x99, 0xbf, 0x2d, 0xee, 0x7f, 0x4a, 0xe4, 0x0d,
		0x71, 0xff, 0x53, 0xd6, 0x9c, 0x13, 0xf7, 0x3f, 0xe1, 0xfe, 0xa7, 0x37, 0x66, 0xa3, 0x59, 0xdf,
		0xff, 0x94, 0x8f, 0x34, 0x66, 0xae, 0x52, 0x98, 0xb8, 0xf5, 0x29, 0x87, 0x89, 0xc6, 0xad, 0x4f,
		0xb8, 0xf5, 0x89, 0x46, 0xc0, 0xc8, 0x29, 0xa9, 0x2f, 0xca, 0xad, 0x4f, 0xd9, 0x66, 0x0e, 0x24,
		0x32, 0x89, 0x97, 0x02, 0xcc, 0x16, 0xee, 0x7b, 0xc2, 0x7d, 0x4f, 0xb8, 0xef, 0x89, 0x7e, 0x40,
		0xa2, 0x15, 0x98, 0xf2, 0x09, 0x50, 0x39, 0x05, 0xaa, 0xf8, 0xd1, 0xe7, 0x2e, 0xed, 0x40, 0x4c,
		0x70, 0x91, 0x82, 0xc0, 0x22, 0x0d, 0x41, 0x45, 0x5a, 0x02, 0x8a, 0x73, 0xc1, 0x44, 0xeb, 0xf4,
		0xbc, 0x46, 0xe1, 0x54, 0x5e, 0x65, 0x61, 0xcc, 0x6e, 0xa9, 0xd8, 0x77, 0xe2, 0x90, 0x11, 0x3e,
		0x9c, 0x23, 0x83, 0xc4, 0xa9, 0xfa, 0x39, 0x2e, 0x0e, 0x8c, 0x0a, 0x4e, 0x41, 0x16, 0x20, 0x7e,
		0xe2, 0x04, 0xe2, 0x13, 0x4b, 0x70, 0x02, 0xf1, 0xe7, 0x4c, 0x29, 0xec, 0x09, 0xc4, 0x1c, 0xcf,
		0x19, 0xac, 0xd9, 0x92, 0xdf, 0xb9, 0x83, 0xa7, 0x1f, 0x84, 0xae, 0x41, 0xea, 0x1e, 0x1f, 0x55,
		0x2a, 0xfb, 0x3b, 0x07, 0xc6, 0x99, 0x2f, 0x8c, 0xc9, 0xc8, 0xe8, 0xf4, 0x2c, 0x23, 0xea, 0xe4,
		0x36, 0x46, 0x13, 0x6f, 0xa5, 0x19, 0xdc, 0xe8, 0x1f, 0x9d, 0x96, 0xad, 0x53, 0xc3, 0x51, 0xc3,
		0x0b, 0xd5, 0x98, 0x39, 0xae, 0xd1, 0x54, 0xb7, 0xd2, 0x9b, 0xa8, 0xc8, 0x0b, 0x44, 0x4d, 0xdf,
		0x46, 0xa5, 0xba, 0xbf, 0x69, 0xe0, 0x42, 0xa5, 0x7f, 0x2c, 0x0e, 0xe4, 0x7d, 0x32, 0x81, 0x7c,
		0x9d, 0xe0, 0xd9, 0x7a, 0x41, 0xf2, 0x28, 0x2d, 0xba, 0x82, 0x4d, 0x6e, 0xef, 0x7e, 0x89, 0xbe,
		0x46, 0xfe, 0xf1, 0x1d, 0x67, 0x85, 0x9f, 0xe9, 0x0b, 0x8c, 0xb6, 0x45, 0x72, 0x13, 0x15, 0xa2,
		0xd5, 0x1c, 0xd8, 0x0e, 0x9f, 0x45, 0x1e, 0x42, 0x41, 0x38, 0x10, 0xcc, 0x8e, 0xa8, 0xe3, 0xc8,
		0xd9, 0x33, 0xe7, 0x85, 0xda, 0xad, 0x53, 0xab, 0x81, 0x93, 0x66, 0x38, 0x69, 0xf6, 0xd3, 0x27,
		0xcd, 0x16, 0xc8, 0xc1, 0x01, 0xb3, 0xac, 0x97, 0xb5, 0xb5, 0x38, 0xf0, 0x13, 0x4d, 0x80, 0xe1,
		0x4f, 0xc5, 0x40, 0x8e, 0xe4, 0x20, 0x22, 0x49, 0xc6, 0x44, 0xb9, 0xf7, 0x8f, 0x0e, 0xfb, 0xcc,
		0x0f, 0xfa, 0x48, 0xff, 0x42, 0x2d, 0x73, 0x12, 0x9c, 0x2d, 0xc3, 0xd9, 0xb2, 0x1f, 0x70, 0x01,
		0x6f, 0x45, 0x19, 0xd2, 0x2f, 0xd6, 0xef, 0x86, 0x63, 0x65, 0x5a, 0xa7, 0x8f, 0x85, 0x3d, 0x4d,
		0x16, 0x25, 0x8c, 0x38, 0x45, 0xf6, 0xe3, 0xb3, 0x37, 0x9d, 0x79, 0x63, 0x61, 0x4e, 0x64, 0xf6,
		0x07, 0xc9, 0xe2, 0x77, 0xc6, 0x59, 0xb2, 0x44, 0xde, 0x10, 0x67, 0xc9, 0xb2, 0xe6, 0x98, 0x38,
		0x4b, 0x86, 0xb3, 0x64, 0x6f, 0x4c, 0x3c, 0x71, 0x96, 0x4c, 0x37, 0xc7, 0x9f, 0x5b, 0x00, 0xc8,
		0x33, 0x10, 0x10, 0x08, 0x08, 0x54, 0x0a, 0x11, 0x38, 0x4b, 0x46, 0x2b, 0x60, 0xe4, 0x94, 0xc9,
		0x17, 0xe5, 0x2c, 0x99, 0x27, 0x06, 0x42, 0xde, 0x8a, 0xa1, 0xe9, 0x47, 0x02, 0x8e, 0x26, 0x85,
		0x83, 0x65, 0xcf, 0xd8, 0x84, 0x53, 0x66, 0xb9, 0x18, 0x80, 0x53, 0x66, 0x94, 0x42, 0x13, 0xb9,
		0x10, 0x45, 0x2e, 0x54, 0xd1, 0x0a, 0x59, 0xf9, 0x84, 0xae, 0x9c, 0x42, 0x58, 0xfc, 0xe8, 0xe9,
		0x9c, 0x32, 0xcb, 0x3b, 0x7c, 0x3c, 0xca, 0x5e, 0x3e, 0xe4, 0x68, 0xc3, 0xa9, 0x13, 0x04, 0xc2,
		0x53, 0xb9, 0x37, 0x3c, 0x97, 0xfe, 0xdc, 0x32, 0xf7, 0xeb, 0xe6, 0xb1, 0x63, 0x8e, 0x2e, 0xff,
		0xaa, 0x7d, 0xbb, 0xb8, 0xd8, 0xfc, 0xce, 0x0b, 0xf9, 0xad, 0xd9, 0xcb, 0x3c, 0xa7, 0xab, 0xd3,
		0xb3, 0xfe, 0x20, 0x33, 0x67, 0xff, 0xfb, 0xd9, 0x49, 0xfb, 0x57, 0x09, 0x5d, 0xa5, 0xfa, 0xf9,
		0xf6, 0x92, 0x1f, 0x91, 0x1f, 0x4a, 0x79, 0xc2, 0x9a, 0x45, 0xc8, 0x12, 0x90, 0x25, 0x20, 0x4b,
		0x40, 0x96, 0x80, 0x2c, 0x01, 0x59, 0x02, 0xb2, 0x04, 0x64, 0x09, 0xc8, 0x12, 0x90, 0x25, 0x20,
		0x4b, 0xc8, 0x36, 0x4b, 0x58, 0x7a, 0x53, 0x73, 0x30, 0x99, 0xe5, 0x28, 0x18, 0xb2, 0xee, 0xde,
		0x17, 0x06, 0x21, 0x47, 0x40, 0x8e, 0x80, 0x1c, 0x01, 0x39, 0x02, 0x72, 0x04, 0xe4, 0x08, 0x3f,
		0xec, 0x31, 0x66, 0x52, 0x05, 0x1f, 0x08, 0xe4, 0x07, 0x79, 0x0a, 0xea, 0x74, 0x1d, 0x35, 0x86,
		0x66, 0xca, 0x5c, 0x80, 0x89, 0x8e, 0xa6, 0xc8, 0xb9, 0xe3, 0xce, 0x04, 0x0d, 0x31, 0xb4, 0xc8,
		0x9e, 0x63, 0xcf, 0x19, 0x04, 0x72, 0xa2, 0x1a, 0x72, 0x2c, 0xf3, 0x16, 0xa8, 0x7a, 0xbc, 0x94,
		0xc5, 0xd8, 0x09, 0xe4, 0xad, 0xc8, 0x55, 0x7f, 0x89, 0x80, 0x57, 0x7d, 0x0c, 0x65, 0xe7, 0x8e,
		0x1e, 0x94, 0xab, 0x3b, 0x3b, 0x00, 0x33, 0x37, 0x30, 0x43, 0xc6, 0x46, 0xef, 0x52, 0x02, 0x64,
		0x6c, 0xd2, 0x2c, 0x9a, 0x10, 0x3c, 0x87, 0xb8, 0x3c, 0xde, 0x05, 0x25, 0x9b, 0xe8, 0x60, 0xe2,
		0x69, 0xf8, 0x38, 0x3a, 0x12, 0x5a, 0x36, 0x6c, 0x56, 0x77, 0xae, 0x5a, 0x36, 0xf9, 0x89, 0x4c,
		0xe6, 0x78, 0x68, 0xa4, 0x7b, 0x7c, 0xb4, 0x5b, 0xdd, 0xae, 0x1e, 0x18, 0xd1, 0x62, 0x31, 0x3a,
		0x9e, 0x1c, 0x4b, 0xe5, 0x04, 0x13, 0xcf, 0xb0, 0x86, 0x42, 0x05, 0x0f, 0x02, 0x05, 0xfd, 0xd6,
		0x79, 0xa4, 0xd8, 0x17, 0x69, 0xf7, 0x6d, 0x2e, 0x54, 0x09, 0xb6, 0x37, 0x0b, 0x7e, 0xda, 0x24,
		0x6f, 0x4d, 0x48, 0x9a, 0x07, 0x4e, 0xde, 0x0c, 0x2a, 0x68, 0x4e, 0x24, 0xc5, 0x75, 0x37, 0xa0,
		0x05, 0x96, 0x96, 0xeb, 0xfc, 0x11, 0x45, 0xa7, 0xd3, 0xb3, 0xee, 0xc7, 0xa6, 0xdd, 0xb1, 0x20,
		0x07, 0x06, 0x39, 0xb0, 0x9f, 0x96, 0x03, 0x7b, 0x00, 0x0f, 0x14, 0xc1, 0xb2, 0x5e, 0xdc, 0x1d,
		0xe5, 0xde, 0x1b, 0x72, 0x21, 0xd8, 0x14, 0x5c, 0x0b, 0x23, 0xca, 0xad, 0x8c, 0xc9, 0x43, 0x28,
		0x93, 0x51, 0x28, 0x0b, 0x56, 0x42, 0xd9, 0x85, 0x7a, 0x4e, 0xc0, 0x29, 0x27, 0x96, 0x64, 0x40,
		0x20, 0x8c, 0xba, 0x43, 0x58, 0x73, 0x0a, 0x09, 0x83, 0x0e, 0x75, 0x2e, 0xde, 0xdc, 0x0d, 0x7a,
		0x61, 0x9a, 0xd7, 0xe9, 0x0a, 0x2b, 0x19, 0xb6, 0xa8, 0xcc, 0x41, 0x34, 0xec, 0x27, 0xaa, 0x53,
		0x93, 0x59, 0x20, 0x3c, 0x73, 0xe0, 0x4c, 0x9d, 0x2b, 0xe9, 0xca, 0x40, 0x0a, 0x3f, 0x7b, 0xfd,
		0xb0, 0xe7, 0x8c, 0x80, 0x94, 0x58, 0x22, 0x6f, 0x08, 0x29, 0xb1, 0xac, 0xd9, 0x28, 0xa4, 0xc4,
		0x20, 0x25, 0xf6, 0xc6, 0x8c, 0x35, 0x6b, 0x29, 0xb1, 0xd8, 0xf1, 0xde, 0xe7, 0xa7, 0x27, 0xb6,
		0x62, 0x03, 0x44, 0xc5, 0x74, 0x0b, 0x09, 0x04, 0x42, 0x03, 0x95, 0xe2, 0x05, 0x44, 0xc5, 0x68,
		0x85, 0x8e, 0x9c, 0xd2, 0xfd, 0xa2, 0x88, 0x8a, 0x2d, 0x53, 0x5c, 0x53, 0xcd, 0x6e, 0xae, 0x84,
		0x97, 0x7f, 0x05, 0xf6, 0xa9, 0x41, 0x38, 0x04, 0x94, 0x8b, 0x01, 0x38, 0x04, 0x44, 0x29, 0x28,
		0x91, 0x0b, 0x4e, 0xe4, 0x82, 0x14, 0xad, 0x60, 0x95, 0x4f, 0xd0, 0xca, 0x29, 0x78, 0xc5, 0x8f,
		0x9e, 0xce, 0x21, 0x20, 0x57, 0x38, 0x23, 0x4f, 0x8c, 0x28, 0xc8, 0x04, 0xec, 0xe5, 0x2b, 0x13,
		0x70, 0xfd, 0x68, 0xd7, 0xf9, 0x69, 0x70, 0xc5, 0xe9, 0xea, 0xd4, 0x9e, 0x7d, 0x3e, 0xf2, 0xdf,
		0x6b, 0x2b, 0x21, 0xaf, 0x96, 0xe0, 0x1c, 0x33, 0x77, 0x90, 0x28, 0x90, 0x28, 0x90, 0x28, 0x90,
		0x28, 0x9e, 0x24, 0x2a, 0xaf, 0x4a, 0x40, 0x6c, 0xc0, 0xc8, 0x75, 0xc6, 0x7e, 0xfe, 0x8b, 0x74,
		0xe9, 0xb7, 0xe6, 0xe6, 0xe4, 0xbc, 0x1e, 0xf2, 0xad, 0x06, 0x90, 0x09, 0x68, 0x94, 0x02, 0x1b,
		0xc1, 0x00, 0x47, 0x2d, 0xd0, 0x91, 0x0d, 0x78, 0x64, 0x03, 0x1f, 0xcd, 0x00, 0x98, 0x6f, 0x20,
		0xcc, 0x39, 0x20, 0xd2, 0xa9, 0x2e, 0xac, 0x79, 0x1c, 0xa1, 0x66, 0x37, 0xc2, 0x73, 0x72, 0xee,
		0x6b, 0x5d, 0xcb, 0xb6, 0x6a, 0x04, 0x6c, 0x69, 0xaa, 0xd9, 0x0d, 0x1d, 0xff, 0xd7, 0x9f, 0xf4,
		0x02, 0x4f, 0xaa, 0x31, 0x19, 0x8b, 0x22, 0xab, 0xb6, 0x42, 0x0c, 0x1d, 0xb7, 0x3a, 0x9d, 0x06,
		0x11, 0x77, 0x1c, 0x59, 0x55, 0x09, 0xad, 0x6a, 0x74, 0xfe, 0xd3, 0x2e, 0x91, 0xb0, 0xe9, 0xdb,
		0x06, 0x15, 0x08, 0x59, 0x39, 0x4a, 0xe4, 0x3d, 0x9f, 0x29, 0x84, 0x93, 0x94, 0x5b, 0x75, 0xe5,
		0x59, 0x93, 0xe6, 0x68, 0x3e, 0x30, 0xb6, 0x68, 0x60, 0x07, 0x11, 0x3b, 0x57, 0x34, 0xb4, 0xa4,
		0x1f, 0xd4, 0x83, 0xc0, 0xa3, 0x11, 0xb5, 0x4f, 0xa4, 0x6a, 0xba, 0x22, 0x24, 0x75, 0x44, 0xe4,
		0x61, 0x4a, 0x27, 0xce, 0xdd, 0x8a, 0x45, 0x95, 0x0f, 0xb5, 0xda, 0xee, 0x5e, 0xad, 0xb6, 0xb5,
		0xb7, 0xbd, 0xb7, 0xb5, 0xbf, 0xb3, 0x53, 0xd9, 0xad, 0x10, 0x10, 0xd7, 0x29, 0x75, 0xbc, 0xa1,
		0xf0, 0xc4, 0xf0, 0xf0, 0xbe, 0x74, 0x60, 0xa8, 0x99, 0xeb, 0x52, 0x32, 0xe9, 0xcc, 0x8f, 0x3a,
		0x16, 0xf2, 0xd7, 0xd5, 0xc9, 0x6f, 0x9d, 0xe7, 0xb8, 0xc6, 0xc9, 0xf4, 0x8e, 0xac, 0x11, 0x73,
		0x1a, 0x3d, 0x24, 0x4f, 0x89, 0x39, 0xaa, 0x47, 0x0b, 0x43, 0x50, 0x3d, 0xfa, 0x47, 0x93, 0x50,
		0x3d, 0xfa, 0x41, 0xc3, 0x50, 0x3d, 0x02, 0x17, 0xfd, 0xe1, 0xfc, 0x8d, 0x5c, 0xf5, 0x68, 0x26,
		0x55, 0xb0, 0x5d, 0x25, 0x54, 0x38, 0xda, 0x23, 0x60, 0x0a, 0x0d, 0xe5, 0xda, 0xe5, 0x07, 0xa1,
		0x64, 0x9f, 0x92, 0x92, 0x6d, 0x6c, 0x14, 0x31, 0x45, 0xdb, 0x87, 0x32, 0x04, 0x51, 0x31, 0xd0,
		0x07, 0x1f, 0x40, 0x4d, 0x14, 0x94, 0x88, 0x9b, 0x7e, 0x9a, 0x1e, 0xd3, 0x85, 0x7c, 0xad, 0xba,
		0x5f, 0xdb, 0xdf, 0xdd, 0xab, 0xee, 0xef, 0x00, 0xfb, 0xba, 0x60, 0x1f, 0x45, 0xcb, 0xe8, 0xe3,
		0x12, 0xa5, 0x94, 0xcc, 0x17, 0xc5, 0xe2, 0x84, 0x7d, 0x8e, 0x57, 0x75, 0xae, 0xf1, 0xd3, 0x07,
		0x93, 0x50, 0x3e, 0x41, 0xf9, 0x04, 0xe5, 0x13, 0x94, 0x4f, 0x50, 0x3e, 0x41, 0xf9, 0x84, 0x8c,
		0xc7, 0x91, 0xd3, 0xdb, 0x9a, 0xe9, 0x0c, 0x87, 0x9e, 0xf0, 0x7d, 0x4a, 0xdd, 0x37, 0x1f, 0x08,
		0xd8, 0x42, 0xe5, 0xaa, 0xc9, 0xd8, 0xa0, 0x5f, 0xff, 0xdc, 0x32, 0xf7, 0x2f, 0xff, 0xfe, 0xb3,
		0x62, 0xee, 0x5f, 0xce, 0xbf, 0xac, 0x44, 0x9f, 0xfe, 0xaa, 0x7e, 0xfb, 0xbb, 0xfa, 0xe7, 0x96,
		0x59, 0x5b, 0xbc, 0x5a, 0xdd, 0xf9, 0x73, 0xcb, 0xdc, 0xb9, 0x7c, 0xff, 0xeb, 0xc5, 0xc5, 0xe6,
		0xcf, 0xfe, 0xce, 0xfb, 0xbf, 0xb6, 0xbf, 0xe5, 0xef, 0x26, 0x2e, 0x29, 0x4c, 0x3f, 0xa5, 0xeb,
		0x46, 0x63, 0xab, 0xfe, 0xf7, 0x6b, 0x56, 0x28, 0x78, 0xff, 0xaf, 0x12, 0x92, 0xa8, 0x42, 0xbd,
		0x73, 0x5e, 0x87, 0x35, 0x72, 0xbe, 0x8d, 0x24, 0xb6, 0x83, 0xa2, 0xda, 0xe1, 0x33, 0xa2, 0x71,
		0xe5, 0x07, 0x11, 0xa1, 0x72, 0x9e, 0x07, 0x13, 0x0d, 0x72, 0xca, 0x88, 0xdd, 0xe8, 0x61, 0x1d,
		0xad, 0x3c, 0x2b, 0x3b, 0xfe, 0xe6, 0x3e, 0x8f, 0x9b, 0x4c, 0xf2, 0x5b, 0xcf, 0xb9, 0x1c, 0xd6,
		0x9d, 0x5d, 0x85, 0xb8, 0x25, 0x70, 0x5c, 0x77, 0x61, 0x08, 0x0e, 0xec, 0x16, 0xb5, 0xb4, 0x82,
		0x03, 0xbb, 0xf4, 0x4b, 0x28, 0x38, 0xb0, 0x0b, 0x0e, 0x18, 0x3f, 0xfa, 0xdc, 0x0f, 0xec, 0xce,
		0x63, 0x06, 0x9d, 0x8d, 0x83, 0x85, 0x3d, 0x34, 0x76, 0x0d, 0x2a, 0xd8, 0x35, 0x20, 0x13, 0xda,
		0x08, 0x86, 0x38, 0x6a, 0xa1, 0x8e, 0x6c, 0xc8, 0x23, 0x1b, 0xfa, 0x68, 0x86, 0xc0, 0xfc, 0x0b,
		0x31, 0x06, 0x81, 0x5d, 0x83, 0xbc, 0x43, 0xe3, 0x43, 0x88, 0x14, 0xe3, 0x10, 0x1a, 0xa6, 0x37,
		0x99, 0x05, 0x52, 0x8d, 0x4d, 0xc7, 0x1d, 0x4f, 0x3c, 0x19, 0x5c, 0xdf, 0xf8, 0x74, 0x56, 0x7c,
		0x1c, 0x3e, 0x5f, 0xb6, 0x95, 0xc8, 0x4a, 0xa3, 0x11, 0x5a, 0xc9, 0x85, 0x58, 0x8a, 0xa1, 0x96,
		0x70, 0xc8, 0xa5, 0x1a, 0x7a, 0xc9, 0x87, 0x60, 0xf2, 0xa1, 0x98, 0x76, 0x48, 0xa6, 0x11, 0x9a,
		0x89, 0x84, 0x68, 0x72, 0xa1, 0xfa, 0x21, 0x64, 0xe7, 0xaa, 0x9f, 0xf8, 0xfd, 0x28, 0x9d, 0xf3,
		0xf6, 0x05, 0x83, 0xc0, 0x4c, 0x36, 0x40, 0x53, 0x0e, 0xd4, 0x0c, 0x02, 0x36, 0xf5, 0xc0, 0xcd,
		0x26, 0x80, 0xb3, 0x09, 0xe4, 0x3c, 0x02, 0x3a, 0xad, 0xc0, 0x4e, 0x2c, 0xc0, 0x93, 0x0d, 0xf4,
		0xb1, 0x61, 0x71, 0x9e, 0x4b, 0xd7, 0xa1, 0x2c, 0x7d, 0xf2, 0x83, 0xa9, 0x44, 0xd7, 0x29, 0x8d,
		0x96, 0x79, 0x76, 0x84, 0x80, 0x03, 0x31, 0x60, 0x44, 0x10, 0xb8, 0x10, 0x05, 0x76, 0x84, 0x81,
		0x1d, 0x71, 0xe0, 0x45, 0x20, 0x68, 0x12, 0x09, 0xa2, 0x84, 0x22, 0x9e, 0x5a, 0x32, 0x47, 0x04,
		0xbe, 0xeb, 0x31, 0x69, 0xe9, 0x76, 0x7e, 0x37, 0x9b, 0xaf, 0x11, 0xb6, 0x91, 0x94, 0xce, 0xe7,
		0xcb, 0xd0, 0xa4, 0xa8, 0xff, 0xf9, 0xa2, 0xb5, 0x91, 0x2e, 0x68, 0xef, 0xf4, 0x98, 0x78, 0xf0,
		0x31, 0x62, 0xb5, 0xd0, 0x5e, 0xbf, 0x6b, 0x1d, 0xf5, 0xed, 0xd0, 0x64, 0xd2, 0x16, 0x7f, 0xdb,
		0xa0, 0x0e, 0x53, 0x6a, 0x1a, 0xa3, 0x2f, 0x33, 0xba, 0xd3, 0x63, 0xba, 0xf4, 0xfd, 0xb1, 0xa5,
		0x0f, 0xe0, 0x3c, 0x30, 0x2a, 0xb4, 0xf1, 0x09, 0x26, 0xa4, 0x05, 0x13, 0x22, 0xa5, 0x7b, 0xfa,
		0xa2, 0x95, 0xe4, 0xf4, 0x50, 0x5f, 0xb6, 0x94, 0x81, 0x4e, 0xea, 0x8b, 0xc6, 0xd3, 0xd3, 0x4f,
		0xfd, 0xbe, 0xa9, 0x64, 0x74, 0x55, 0xf9, 0xf8, 0x23, 0x14, 0x9d, 0xff, 0x31, 0xed, 0xa7, 0x71,
		0x4e, 0xee, 0x45, 0xfb, 0x38, 0x9e, 0x9f, 0x9b, 0x9f, 0x14, 0x5a, 0x7c, 0x2e, 0xbf, 0xdc, 0x35,
		0x56, 0xa6, 0xb8, 0x55, 0x6d, 0x70, 0x3b, 0x81, 0x37, 0x7f, 0xda, 0x8b, 0xcf, 0x76, 0x6f, 0xfe,
		0xb4, 0xbb, 0xf3, 0x87, 0x5d, 0x8f, 0x9f, 0x75, 0x9e, 0x27, 0xf5, 0xe8, 0x7b, 0x26, 0x74, 0xdc,
		0xac, 0xa2, 0x5f, 0xdc, 0x05, 0x9e, 0x63, 0xce, 0x42, 0x0c, 0x5f, 0xb9, 0xb4, 0x2a, 0x67, 0x25,
		0x4f, 0x8c, 0x84, 0x27, 0xd4, 0x80, 0x8e, 0x14, 0xe7, 0xf2, 0x83, 0x70, 0xa7, 0xc6, 0xd0, 0x73,
		0x46, 0x81, 0x29, 0x45, 0x30, 0x8a, 0xea, 0xda, 0xe6, 0x53, 0x97, 0x2c, 0xee, 0x02, 0xa1, 0x7c,
		0x39, 0x51, 0xfe, 0xe6, 0x85, 0xea, 0xb7, 0xce, 0x8d, 0x6a, 0xad, 0xba, 0x61, 0xf8, 0xb3, 0x2b,
		0x33, 0xfc, 0xa6, 0xb2, 0x8f, 0x16, 0x8f, 0x9f, 0xb7, 0x6f, 0x65, 0xc7, 0xe6, 0x01, 0xb3, 0xe8,
		0xf2, 0x78, 0x23, 0x5b, 0x5b, 0xd9, 0xa4, 0x79, 0x33, 0xa8, 0xc1, 0xd4, 0x99, 0x58, 0x73, 0x49,
		0xa8, 0x25, 0xfc, 0xeb, 0xb5, 0x50, 0x08, 0x3d, 0x3f, 0x1e, 0x7a, 0xe2, 0x0b, 0xde, 0x83, 0xfb,
		0xa9, 0x30, 0x7e, 0x33, 0xde, 0x2d, 0xf6, 0x56, 0x4d, 0xd7, 0x1f, 0x5e, 0x99, 0xe1, 0x8b, 0xfe,
		0x41, 0xb7, 0x73, 0xd6, 0x6f, 0x76, 0xed, 0xa3, 0xfa, 0x69, 0xfd, 0xd0, 0x6a, 0x59, 0xfd, 0xcf,
		0x76, 0xaf, 0x6b, 0xd7, 0x5b, 0x1f, 0x3b, 0x5d, 0xab, 0xff, 0xe9, 0xe4, 0x1d, 0xa2, 0xcf, 0x9b,
		0xa2, 0x4f, 0x84, 0x58, 0x04, 0x9e, 0xe4, 0x02, 0x4f, 0x12, 0x90, 0xa6, 0x17, 0x7b, 0x08, 0x2e,
		0xb2, 0x86, 0xf0, 0x07, 0x9e, 0x9c, 0x92, 0x2d, 0xce, 0x3c, 0x72, 0x74, 0x1d, 0xe5, 0xde, 0x1b,
		0x52, 0x0d, 0xdc, 0xd9, 0x50, 0x18, 0x0b, 0x2e, 0x62, 0x2c, 0xb8, 0x88, 0x11, 0xd7, 0x3c, 0x8c,
		0x70, 0x35, 0x1a, 0xc1, 0xb5, 0xb8, 0x50, 0x4b, 0x26, 0x22, 0x7d, 0x23, 0x02, 0x52, 0x65, 0x7f,
		0x93, 0xea, 0x32, 0x65, 0xd0, 0x25, 0xb5, 0xea, 0xf1, 0x86, 0x2b, 0xb8, 0x21, 0x5c, 0xd4, 0xe6,
		0xd4, 0x22, 0xf5, 0xc8, 0x01, 0x26, 0x02, 0x75, 0x54, 0xef, 0x91, 0x13, 0xbc, 0x25, 0x27, 0x40,
		0xc5, 0x6e, 0x75, 0x75, 0xd2, 0xdc, 0xc5, 0xd0, 0x7a, 0xf7, 0x82, 0xd2, 0x41, 0x65, 0xfd, 0xf6,
		0x2b, 0x4a, 0xb8, 0xf2, 0x82, 0x8a, 0x87, 0x59, 0xd3, 0x7d, 0x78, 0x58, 0x2d, 0xf4, 0x35, 0x2a,
		0x56, 0x6c, 0x85, 0x46, 0xc5, 0x73, 0xe6, 0x40, 0xa3, 0xe2, 0x27, 0xd0, 0x05, 0x8d, 0x8a, 0xd7,
		0xe4, 0x63, 0xd0, 0xa8, 0x78, 0x73, 0xca, 0x05, 0x8d, 0x0a, 0xd2, 0xfc, 0x9b, 0x9e, 0x46, 0x85,
		0x37, 0xbe, 0x32, 0x97, 0x75, 0x90, 0x89, 0xe7, 0x13, 0x96, 0xab, 0x78, 0x6a, 0x29, 0x94, 0x2b,
		0x38, 0x86, 0x6d, 0xca, 0xe1, 0x9b, 0x41, 0x18, 0xa7, 0x1e, 0xce, 0xd9, 0x84, 0x75, 0x36, 0xe1,
		0x9d, 0x47, 0x98, 0xa7, 0x15, 0xee, 0x89, 0x85, 0x7d, 0xb2, 0xe1, 0xff, 0x25, 0x1a, 0x40, 0x7f,
		0x17, 0xed, 0xa9, 0xc1, 0xb4, 0x55, 0x2c, 0x2a, 0x50, 0xb1, 0xd0, 0x8e, 0x24, 0x30, 0x22, 0x0b,
		0x5c, 0x48, 0x03, 0x3b, 0xf2, 0xc0, 0x8e, 0x44, 0xf0, 0x22, 0x13, 0x34, 0x49, 0x05, 0x51, 0x72,
		0x41, 0x9e, 0x64, 0xc4, 0x06, 0x7a, 0x8e, 0x1a, 0x33, 0x70, 0x42, 0xf1, 0x2d, 0xd2, 0x91, 0xb9,
		0xc4, 0xd7, 0x33, 0x6d, 0xb9, 0x2c, 0x36, 0x84, 0x83, 0x13, 0xf1, 0x60, 0x48, 0x40, 0xb8, 0x11,
		0x11, 0xb6, 0x84, 0x84, 0x2d, 0x31, 0xe1, 0x49, 0x50, 0x68, 0x13, 0x15, 0xe2, 0x84, 0x25, 0x9e,
		0x72, 0xf2, 0xf2, 0x5b, 0x6b, 0x1e, 0xd7, 0x15, 0xce, 0xc8, 0x13, 0x23, 0x0e, 0x1e, 0x77, 0x59,
		0x89, 0xd8, 0x63, 0x60, 0xeb, 0xe9, 0xa2, 0x0f, 0x2c, 0x6e, 0xa0, 0x9f, 0x53, 0x30, 0x28, 0xdf,
		0xe8, 0xb6, 0xec, 0x89, 0x4a, 0xe4, 0xbf, 0xb8, 0xde, 0xa9, 0xea, 0x10, 0x3c, 0xbb, 0xd2, 0x91,
		0x0a, 0x20, 0x15, 0x40, 0x2a, 0x80, 0x54, 0x00, 0xa9, 0x00, 0xf8, 0x00, 0xb7, 0x54, 0x80, 0x7a,
		0x0d, 0x33, 0x36, 0xd4, 0x75, 0xae, 0x84, 0xcb, 0xc7, 0x79, 0xc5, 0x89, 0x4b, 0x64, 0x36, 0x93,
		0xf5, 0xcf, 0xa3, 0xb6, 0xc9, 0x8e, 0xd8, 0x70, 0x24, 0x38, 0x8c, 0x89, 0x0e, 0x57, 0xc2, 0xc3,
		0x9e, 0xf8, 0xb0, 0x27, 0x40, 0xbc, 0x89, 0x10, 0x0f, 0x42, 0xc4, 0x84, 0x18, 0xc5, 0x50, 0x60,
		0x53, 0x2b, 0x5d, 0xf3, 0xd8, 0x37, 0x53, 0xd7, 0x37, 0x39, 0xf1, 0x8f, 0x47, 0x45, 0x95, 0x7d,
		0x46, 0x36, 0x2f, 0x30, 0xf2, 0x27, 0x2b, 0x27, 0xc7, 0x2b, 0x28, 0x3e, 0x42, 0xf6, 0x4c, 0xaa,
		0x60, 0xbb, 0xca, 0x2c, 0x2a, 0xae, 0xa2, 0x7b, 0x8f, 0xa1, 0xe9, 0xdd, 0x45, 0x33, 0xc9, 0x9f,
		0xec, 0x4c, 0xe7, 0x89, 0xf6, 0xf8, 0xc1, 0x9f, 0x48, 0xc5, 0x8e, 0xc3, 0xae, 0x0d, 0xe2, 0xdc,
		0x71, 0x67, 0x21, 0x7a, 0x2a, 0xbb, 0x1b, 0xbc, 0x07, 0x72, 0xec, 0x39, 0x83, 0x40, 0x4e, 0x54,
		0x43, 0x8e, 0x25, 0x75, 0x35, 0xfc, 0x1f, 0x73, 0xaa, 0x62, 0xec, 0x04, 0xf2, 0x56, 0x90, 0x16,
		0x71, 0xd7, 0x88, 0x51, 0x3e, 0xbf, 0xc6, 0x9d, 0x3b, 0x8d, 0xd6, 0xf8, 0x56, 0xed, 0xc3, 0xce,
		0xde, 0x0e, 0x16, 0x3a, 0x16, 0x7a, 0x81, 0x13, 0x5c, 0xfe, 0x56, 0x5f, 0xfe, 0x02, 0xf7, 0x0f,
		0x42, 0xba, 0x9e, 0x7e, 0xf1, 0xb8, 0x13, 0xf1, 0xbb, 0x15, 0x86, 0x1a, 0x43, 0xdb, 0x59, 0xdc,
		0xa1, 0xf8, 0x72, 0x9d, 0x84, 0xd3, 0xdd, 0x8a, 0x2f, 0x8e, 0x22, 0xba, 0x73, 0xd1, 0x3a, 0x3d,
		0xaf, 0xd9, 0xcd, 0x3f, 0x4e, 0x5b, 0xd6, 0x91, 0xd5, 0xb7, 0xdb, 0x67, 0xad, 0x56, 0x89, 0x31,
		0xfd, 0x8c, 0xae, 0x66, 0x5c, 0x28, 0xe4, 0xd6, 0x5b, 0xcd, 0x6e, 0x9f, 0xf3, 0x60, 0xaa, 0x8b,
		0xf9, 0xd9, 0xd5, 0x67, 0x7e, 0xb6, 0xa3, 0x21, 0x9d, 0x68, 0x32, 0x9a, 0xbd, 0x70, 0x34, 0xcd,
		0x76, 0xbf, 0xdb, 0x39, 0xfd, 0x6c, 0xb7, 0xea, 0x87, 0xcd, 0x96, 0x6d, 0xb5, 0x1b, 0xd6, 0x51,
		0xbd, 0xdf, 0xe9, 0x72, 0x1e, 0xd7, 0x87, 0x70, 0x5c, 0xed, 0xce, 0x7c, 0x48, 0xa5, 0x5f, 0x90,
		0x43, 0x67, 0x19, 0x59, 0xb8, 0x5c, 0x87, 0xfa, 0x72, 0x68, 0x7f, 0x61, 0x41, 0xb0, 0xac, 0x16,
		0xc7, 0xa3, 0x7a, 0xec, 0xb4, 0x0e, 0x8c, 0x6d, 0xce, 0x63, 0x59, 0x8f, 0xf9, 0xac, 0xab, 0x02,
		0xcf, 0x05, 0xc9, 0x03, 0xa3, 0xca, 0x78, 0x40, 0xb1, 0xf3, 0x3d, 0x30, 0x3e, 0x30, 0x1e, 0xc6,
		0x23, 0x26, 0x46, 0xfd, 0x26, 0x62, 0x7d, 0xea, 0x1d, 0xbc, 0x2c, 0xe6, 0x63, 0x2d, 0x8f, 0x3a,
		0x12, 0xfd, 0xe7, 0xc9, 0x80, 0x9c, 0x31, 0x91, 0x1c, 0x78, 0x08, 0x18, 0x8c, 0xa4, 0x07, 0x62,
		0xa3, 0xd1, 0xa6, 0x9b, 0xae, 0xc1, 0x68, 0xd3, 0xcd, 0xd4, 0x74, 0xb4, 0xe9, 0xe6, 0x34, 0x00,
		0xb4, 0xe9, 0x82, 0x6f, 0x68, 0xc0, 0x39, 0x0c, 0xde, 0x6d, 0xba, 0xec, 0x9a, 0x19, 0x19, 0x36,
		0x31, 0x32, 0x6d, 0x5e, 0x64, 0xb8, 0x47, 0xcc, 0xb9, 0x59, 0x31, 0x6e, 0x60, 0x62, 0x5a, 0xd3,
		0xd3, 0xa6, 0x65, 0x89, 0x7f, 0xab, 0x12, 0xc3, 0x7d, 0x14, 0xd6, 0x3d, 0x88, 0xf1, 0xd2, 0xad,
		0x55, 0xf7, 0x6b, 0xfb, 0xbb, 0x7b, 0xd5, 0xfd, 0x1d, 0xac, 0x61, 0xac, 0xe1, 0x02, 0x10, 0x74,
		0x7e, 0xd6, 0xa2, 0x1c, 0x5c, 0x04, 0x0b, 0xa9, 0x0b, 0x5f, 0x10, 0xbd, 0xa0, 0xf3, 0x45, 0x7b,
		0xf5, 0xbb, 0xb8, 0x73, 0xf5, 0x27, 0x9f, 0x5c, 0x39, 0xf4, 0xf4, 0x85, 0x32, 0x07, 0x3d, 0x30,
		0x43, 0xa7, 0x7b, 0x3f, 0x57, 0x7f, 0xce, 0x1b, 0x5f, 0x35, 0x1e, 0xe6, 0xe6, 0xc9, 0xf7, 0x76,
		0xf4, 0xfe, 0x90, 0x0c, 0xd4, 0xc9, 0x32, 0xaa, 0x82, 0xeb, 0xbf, 0x8b, 0x7b, 0xea, 0x9b, 0x75,
		0xa5, 0x96, 0xf4, 0x83, 0x7a, 0x10, 0x10, 0x57, 0x86, 0x3f, 0x91, 0xaa, 0xe9, 0x8a, 0x70, 0xbd,
		0x13, 0x4f, 0x31, 0xc2, 0xac, 0x74, 0xc5, 0xd2, 0xca, 0x87, 0x5a, 0x6d, 0x77, 0xaf, 0x56, 0xdb,
		0xda, 0xdb, 0xde, 0xdb, 0xda, 0xdf, 0xd9, 0xa9, 0xec, 0x56, 0x08, 0x27, 0x7a, 0xa5, 0x8e, 0x37,
		0x14, 0x9e, 0x18, 0x1e, 0x86, 0xb0, 0x55, 0x33, 0xd7, 0xe5, 0x60, 0xea, 0x99, 0x2f, 0x3c, 0xd2,
		0x39, 0x1b, 0x55, 0xef, 0xc4, 0x84, 0x51, 0x16, 0x9b, 0x49, 0x96, 0x48, 0x6b, 0xf4, 0x16, 0x8c,
		0x3b, 0xd2, 0x64, 0x8d, 0xdf, 0x70, 0xd7, 0x1f, 0x27, 0xff, 0x4b, 0xdd, 0xef, 0x16, 0xcb, 0xdf,
		0x52, 0xbc, 0xc1, 0x55, 0x7f, 0xbf, 0x4a, 0xcb, 0x91, 0xd2, 0x71, 0x57, 0x84, 0x5c, 0x15, 0x51,
		0x05, 0x7e, 0xd2, 0x8a, 0xfb, 0xb8, 0xea, 0xfb, 0x27, 0x0d, 0xc3, 0x55, 0xdf, 0x6f, 0x32, 0x11,
		0x57, 0x7d, 0x27, 0x64, 0x28, 0xae, 0xfa, 0x06, 0xfd, 0xcf, 0x6a, 0x0a, 0xc9, 0x5e, 0xf5, 0x3d,
		0x72, 0x9d, 0xb1, 0x4f, 0xff, 0x82, 0xef, 0xb9, 0x99, 0xb4, 0xaf, 0xf5, 0xde, 0xc2, 0xb5, 0xde,
		0xda, 0x11, 0x02, 0x46, 0xc4, 0x80, 0x0b, 0x41, 0x60, 0x47, 0x14, 0xd8, 0x11, 0x06, 0x5e, 0xc4,
		0x81, 0x26, 0x81, 0x20, 0x4a, 0x24, 0xe2, 0xa9, 0x25, 0x7f, 0x94, 0x84, 0x99, 0x10, 0x1b, 0x07,
		0xc1, 0x35, 0x1e, 0xc2, 0x6a, 0xbc, 0x04, 0xd4, 0x56, 0x84, 0xd2, 0x4e, 0x4e, 0x5b, 0x3d, 0x0e,
		0xdd, 0x5b, 0x95, 0x58, 0x3a, 0x8c, 0x8b, 0xc5, 0x0f, 0x62, 0x67, 0xbd, 0x6e, 0x09, 0x0d, 0xa1,
		0x6f, 0x5a, 0x5b, 0x5c, 0x24, 0xa4, 0x56, 0xd6, 0x14, 0x8b, 0xe3, 0x01, 0x2b, 0x2b, 0x8a, 0xfc,
		0x6d, 0xa9, 0x0f, 0xf6, 0xf6, 0xba, 0xa5, 0x03, 0xa3, 0x8a, 0xbe, 0x46, 0x30, 0xce, 0xd4, 0xf1,
		0x86, 0x9e, 0xc1, 0x84, 0x2d, 0x45, 0xcf, 0x60, 0xb6, 0xa6, 0xd2, 0xef, 0x19, 0x44, 0x51, 0x9f,
		0x93, 0x67, 0x44, 0x4f, 0x4f, 0xae, 0x3d, 0x3d, 0x44, 0x0f, 0xdb, 0x68, 0xd9, 0xc8, 0x43, 0xef,
		0xf4, 0x0c, 0xa1, 0xf6, 0x9d, 0x5f, 0xe0, 0x1b, 0x1f, 0xd0, 0x2f, 0xee, 0x02, 0xcf, 0x31, 0x67,
		0x21, 0x86, 0xaf, 0x5c, 0x5a, 0x15, 0xca, 0x92, 0x27, 0x46, 0xc2, 0x13, 0x6a, 0x40, 0x4f, 0x63,
		0x85, 0x70, 0x27, 0xcc, 0xd0, 0x73, 0x46, 0x81, 0x29, 0x45, 0x30, 0x8a, 0xf6, 0x0f, 0xcc, 0xa7,
		0x2e, 0x59, 0xdc, 0x05, 0x42, 0xf9, 0x72, 0xa2, 0xfc, 0x4d, 0xa3, 0xdf, 0x3a, 0xbf, 0x50, 0xd5,
		0x5a, 0x75, 0xc3, 0xf0, 0x67, 0x57, 0x66, 0xbf, 0x75, 0x6e, 0x54, 0x37, 0xd1, 0x42, 0xf3, 0xf3,
		0xf6, 0xad, 0xec, 0x8c, 0x3d, 0x60, 0x16, 0x5d, 0x34, 0x6f, 0x64, 0x6b, 0x2b, 0x9b, 0x61, 0x6f,
		0x06, 0x35, 0x98, 0x3a, 0x13, 0x6b, 0x2e, 0x09, 0x35, 0xd7, 0x7e, 0xbd, 0x16, 0x0a, 0xa1, 0xe7,
		0xc7, 0x43, 0xcf, 0xe6, 0xe6, 0x9c, 0xe5, 0x97, 0x83, 0xfb, 0xa9, 0x30, 0x7e, 0x33, 0xde, 0x2d,
		0xf6, 0xb0, 0x4d, 0xd7, 0x1f, 0x5e, 0x99, 0xe1, 0x8b, 0xfe, 0xc1, 0x42, 0x85, 0xfc, 0xa8, 0x7e,
		0x5a, 0x3f, 0xb4, 0x5a, 0x56, 0xff, 0xb3, 0xdd, 0x5b, 0xfd, 0xee, 0x1d, 0xc2, 0xcf, 0x9b, 0xc2,
		0x4f, 0x04, 0x59, 0x44, 0x9e, 0xe4, 0x22, 0x4f, 0x22, 0x98, 0xa6, 0x17, 0x7d, 0x08, 0xae, 0xb2,
		0xe5, 0xc9, 0x13, 0xca, 0x47, 0x5d, 0x63, 0x57, 0xd7, 0x51, 0xee, 0xbd, 0x21, 0xd5, 0xc0, 0x9d,
		0x0d, 0x85, 0x11, 0x5c, 0x0b, 0xa3, 0xd7, 0x35, 0x1e, 0x8a, 0x1d, 0x31, 0xf3, 0x08, 0x97, 0xe3,
		0x85, 0x0a, 0xff, 0x7f, 0xf9, 0x4a, 0x04, 0x23, 0xe9, 0xd3, 0x24, 0xda, 0x06, 0x93, 0x76, 0xb4,
		0x55, 0x8f, 0x37, 0x5c, 0x81, 0x0d, 0xe1, 0xaa, 0x36, 0xa7, 0x5e, 0xb4, 0x47, 0x0e, 0x30, 0x09,
		0xa4, 0xa3, 0x7a, 0x8f, 0x9c, 0xe0, 0x2d, 0x39, 0x01, 0x2a, 0x76, 0xab, 0x8b, 0x93, 0xe6, 0x2e,
		0x86, 0xd6, 0xbb, 0x17, 0x25, 0x52, 0x47, 0x3e, 0x75, 0xdb, 0xaf, 0xa0, 0x11, 0x1f, 0xf2, 0xf7,
		0x77, 0x04, 0x3c, 0x0c, 0xb1, 0x03, 0xc5, 0x24, 0x0f, 0x12, 0x13, 0x3b, 0x40, 0x4c, 0xee, 0xbc,
		0x10, 0xc5, 0xf3, 0x41, 0x84, 0xcf, 0x03, 0x51, 0x4d, 0xb8, 0xc8, 0x9f, 0xf7, 0x21, 0x9f, 0x53,
		0xd1, 0x3e, 0xcf, 0x83, 0x7d, 0xf0, 0x47, 0xd5, 0x27, 0x62, 0x07, 0x7e, 0x4b, 0x01, 0xc5, 0x03,
		0x43, 0xb1, 0x1b, 0x8d, 0xac, 0xa3, 0xa9, 0xeb, 0xb1, 0x05, 0x5d, 0x0f, 0xb6, 0x61, 0x9a, 0x41,
		0xb8, 0xa6, 0x1e, 0xb6, 0xd9, 0x84, 0x6f, 0x36, 0x61, 0x9c, 0x47, 0x38, 0xa7, 0x15, 0xd6, 0x89,
		0x85, 0xf7, 0x78, 0x0a, 0xc9, 0x1e, 0xc3, 0x8d, 0x3d, 0x9e, 0x1c, 0x0a, 0x15, 0xc8, 0xe0, 0xde,
		0x13, 0x23, 0x8a, 0x5e, 0x6f, 0x99, 0xfb, 0x12, 0x3c, 0xec, 0x50, 0xb2, 0x16, 0x8f, 0xee, 0xd0,
		0xf1, 0x05, 0xfd, 0x2d, 0x44, 0xab, 0x67, 0xf5, 0xec, 0xde, 0xd9, 0x61, 0xbf, 0x75, 0x6e, 0xf7,
		0x3f, 0x9f, 0x36, 0xa9, 0xba, 0xe7, 0xe8, 0x12, 0x24, 0x9f, 0xf4, 0x35, 0x77, 0xc4, 0x0f, 0x58,
		0xc7, 0x33, 0x7e, 0x6a, 0x77, 0x9b, 0xf5, 0xa3, 0x4f, 0xcb, 0x2e, 0x81, 0xe8, 0xc4, 0xe5, 0xa2,
		0x79, 0xc0, 0x6a, 0x10, 0x56, 0x7a, 0xd8, 0xc0, 0xcc, 0x27, 0x3e, 0xf3, 0xbb, 0x98, 0xf9, 0x22,
		0xce, 0xfc, 0x69, 0xb7, 0x79, 0x6c, 0xfd, 0x61, 0x1f, 0xb7, 0xea, 0x1f, 0x7b, 0x98, 0xf7, 0xc2,
		0xcd, 0x7b, 0x0f, 0xab, 0xbd, 0x48, 0xb3, 0x3e, 0xa7, 0x77, 0x3d, 0xca, 0xfc, 0x8e, 0x13, 0xcf,
		0xe3, 0x81, 0x06, 0x6d, 0x78, 0x1f, 0x03, 0xbf, 0xa0, 0x0f, 0x22, 0x76, 0x81, 0x08, 0x20, 0x82,
		0x1b, 0x4f, 0x04, 0x1e, 0xc0, 0x1f, 0x81, 0x86, 0xec, 0xd1, 0xd0, 0xaf, 0x7f, 0x04, 0x0c, 0x00,
		0x83, 0x7e, 0xfd, 0xe3, 0x6e, 0xad, 0x84, 0x3b, 0xa5, 0xdf, 0xf4, 0x71, 0x89, 0x7c, 0xbc, 0x30,
		0xf9, 0x38, 0x69, 0xbf, 0x89, 0xe9, 0x2e, 0x98, 0x7f, 0xc4, 0x84, 0xbf, 0x79, 0xc2, 0x7b, 0x8f,
		0x27, 0xbc, 0xde, 0xf8, 0xb7, 0xdd, 0xaa, 0xb7, 0x51, 0x66, 0x2d, 0xde, 0xb4, 0x63, 0xca, 0x0b,
		0x36, 0xe5, 0x27, 0x56, 0xdb, 0xfe, 0xd8, 0xed, 0x9c, 0x9d, 0x62, 0xda, 0x0b, 0x34, 0xed, 0xe7,
		0x75, 0xab, 0x55, 0x3f, 0x6c, 0x35, 0xed, 0xc3, 0x7a, 0xbb, 0xf1, 0x1f, 0xab, 0xd1, 0xff, 0x84,
		0xe9, 0x2f, 0xce, 0xf4, 0xc7, 0x93, 0x6e, 0x1f, 0x75, 0xda, 0xbd, 0x7e, 0xb7, 0x6e, 0xb5, 0xfb,
		0xd8, 0x46, 0x2f, 0x10, 0x00, 0x9a, 0x7f, 0xf4, 0x9b, 0xed, 0x46, 0xb3, 0x01, 0xff, 0x5f, 0xcc,
		0xf9, 0x8f, 0xb6, 0x4e, 0xad, 0x76, 0xbf, 0xd9, 0x3d, 0xae, 0x1f, 0x35, 0xed, 0x7a, 0xa3, 0xd1,
		0x6d, 0xf6, 0xe0, 0x01, 0x8a, 0x86, 0x80, 0x76, 0xd3, 0xfa, 0xf8, 0xe9, 0xb0, 0xd3, 0x05, 0x00,
		0x0a, 0x09, 0x80, 0x5d, 0xb8, 0x80, 0xc2, 0x23, 0x00, 0x2e, 0xa0, 0xb8, 0x00, 0x68, 0x59, 0xed,
		0xdf, 0xed, 0x7a, 0xbf, 0xdf, 0xb5, 0x0e, 0xcf, 0xfa, 0x4d, 0x4c, 0x7d, 0xd1, 0xa6, 0xbe, 0xd1,
		0x6c, 0xd5, 0x3f, 0x63, 0xd6, 0x8b, 0x38, 0xeb, 0xf6, 0x79, 0xbd, 0x6b, 0xd5, 0xfb, 0x56, 0xa7,
		0x8d, 0xf9, 0x2f, 0xd8, 0xfc, 0xa3, 0xc0, 0x5f, 0xb8, 0x29, 0x6f, 0x75, 0x40, 0xec, 0x0a, 0x37,
		0xe9, 0xa7, 0xdd, 0x4e, 0xbf, 0x79, 0x14, 0xba, 0xf8, 0xf9, 0xb9, 0x09, 0xcc, 0x7f, 0x61, 0xe6,
		0xff, 0xa4, 0xfe, 0xc7, 0x1c, 0x03, 0xd8, 0xdd, 0x29, 0xe8, 0xec, 0x77, 0x9b, 0xbd, 0x66, 0xf7,
		0x1c, 0x3b, 0x7c, 0x85, 0xc5, 0x80, 0xd5, 0x7e, 0xf0, 0x02, 0xc8, 0xf3, 0x0a, 0x36, 0xfb, 0xdd,
		0x66, 0xcf, 0x6a, 0x9c, 0xd5, 0x5b, 0x58, 0xfb, 0x45, 0x9c, 0x7d, 0x9c, 0x96, 0x2d, 0x20, 0x1a,
		0xbe, 0x8b, 0x0a, 0x16, 0x3d, 0x9d, 0x0c, 0x9c, 0x82, 0x46, 0x70, 0x00, 0x14, 0x00, 0x05, 0x2e,
		0x3d, 0xa0, 0x80, 0x43, 0x66, 0x70, 0xe0, 0xd4, 0x1b, 0x0a, 0x58, 0x64, 0x05, 0x0b, 0x66, 0x3d,
		0xa3, 0x00, 0x46, 0x56, 0xc0, 0xe0, 0xd5, 0x4b, 0x0a, 0x5c, 0x64, 0x85, 0x0b, 0x6e, 0x3d, 0xa6,
		0x40, 0x46, 0xa6, 0xc8, 0xe0, 0xd3, 0x78, 0x06, 0x60, 0x64, 0x08, 0x8c, 0x5d, 0xb8, 0x0c, 0x20,
		0x83, 0x7d, 0xaf, 0x2a, 0x80, 0x91, 0x15, 0x30, 0xd8, 0xf4, 0xb0, 0x02, 0x12, 0x99, 0x42, 0x82,
		0xf8, 0x9e, 0x27, 0xd0, 0x90, 0x3d, 0x1a, 0x38, 0xf4, 0xbc, 0x02, 0x17, 0x99, 0xe2, 0x02, 0x1b,
		0x20, 0x80, 0x02, 0x8b, 0x1e, 0x59, 0x80, 0x21, 0x53, 0x30, 0xb0, 0xe9, 0x9d, 0x05, 0x2e, 0xb2,
		0xc2, 0x05, 0xa7, 0x9e, 0x5a, 0xa0, 0x22, 0x4b, 0x54, 0xf0, 0xea, 0xb5, 0x05, 0x36, 0x32, 0xc3,
		0x06, 0xa3, 0x1e, 0x5c, 0xa0, 0x22, 0x2b, 0x54, 0x70, 0xea, 0xcd, 0x05, 0x2a, 0xb2, 0x42, 0x45,
		0xbf, 0x69, 0x37, 0x9a, 0xc7, 0xf5, 0xb3, 0x56, 0xdf, 0x3e, 0x69, 0xf6, 0xbb, 0xd6, 0x11, 0x40,
		0x01, 0x50, 0x9c, 0xb5, 0xe3, 0x56, 0x9b, 0x66, 0xc3, 0x6e, 0xf5, 0xd0, 0x56, 0x01, 0x50, 0xd8,
		0x67, 0xed, 0x39, 0xdf, 0x6c, 0x36, 0x10, 0x41, 0x80, 0x8b, 0x15, 0x5c, 0xf4, 0xad, 0x96, 0xf5,
		0x5f, 0x66, 0xa8, 0xc0, 0x8d, 0x06, 0xba, 0xad, 0x26, 0xa6, 0x67, 0xa6, 0x18, 0xf1, 0x2f, 0x4c,
		0x7e, 0x81, 0x79, 0x16, 0x26, 0xbf, 0xd8, 0x7c, 0x0a, 0xf3, 0x5f, 0x64, 0xde, 0x84, 0xd9, 0x7f,
		0xeb, 0xec, 0x2f, 0x2e, 0x07, 0x3d, 0xaa, 0x9f, 0xc6, 0xa7, 0xa5, 0xbb, 0x76, 0xbd, 0xf5, 0xb1,
		0xd3, 0xb5, 0xfa, 0x9f, 0x4e, 0x30, 0xf3, 0x05, 0x9b, 0xf9, 0x87, 0xef, 0x30, 0xf5, 0x85, 0x9a,
		0x7a, 0x48, 0x24, 0xa0, 0x84, 0xc2, 0x36, 0x18, 0x30, 0xf0, 0x0c, 0x3a, 0x21, 0x82, 0x43, 0x90,
		0x88, 0x21, 0x81, 0x8a, 0x9a, 0x46, 0xcf, 0x8d, 0xde, 0xf3, 0xa2, 0xf5, 0x9c, 0xe8, 0x58, 0x43,
		0xc3, 0x12, 0x22, 0x01, 0xa1, 0x54, 0x57, 0x6a, 0x12, 0x38, 0x81, 0x9c, 0xa8, 0xd2, 0x01, 0xa1,
		0x10, 0x50, 0xf2, 0x07, 0xd7, 0xe2, 0xc6, 0x99, 0x3a, 0xc1, 0x75, 0xe8, 0xec, 0xcb, 0x93, 0xa9,
		0x50, 0x83, 0x89, 0x1a, 0xc9, 0xb1, 0xa9, 0x44, 0xf0, 0x75, 0xe2, 0x7d, 0x31, 0xa5, 0xf2, 0x03,
		0x47, 0x0d, 0x44, 0xf9, 0xe9, 0x0b, 0xfe, 0xda, 0x2b, 0xe5, 0xa9, 0x37, 0x09, 0x26, 0x83, 0x89,
		0xeb, 0xc7, 0x5f, 0x95, 0xa5, 0x2f, 0xfd, 0xb2, 0x2b, 0x6e, 0x85, 0xbb, 0xf8, 0x54, 0x76, 0xa5,
		0xfa, 0x62, 0xfa, 0x81, 0x13, 0x08, 0x73, 0xe8, 0x04, 0xce, 0x95, 0xe3, 0x8b, 0xb2, 0xeb, 0x4f,
		0xcb, 0x81, 0x7b, 0xeb, 0x87, 0xff, 0x94, 0xbd, 0xc9, 0x2c, 0x10, 0x9e, 0x39, 0x70, 0xa6, 0xce,
		0x95, 0x74, 0x65, 0x20, 0x85, 0x5f, 0x8e, 0xbf, 0xb9, 0x2f, 0xfb, 0xb3, 0xab, 0xe8, 0x47, 0xe7,
		0x9f, 0xcb, 0xd1, 0x5f, 0x22, 0xc4, 0x58, 0x4b, 0x7e, 0xe0, 0xcd, 0x06, 0x81, 0x5a, 0xc4, 0xcf,
		0x4e, 0xfc, 0x44, 0xdb, 0xf3, 0xa7, 0x65, 0x2d, 0x1e, 0x96, 0xfd, 0xe4, 0x7b, 0xff, 0xe9, 0x0b,
		0xf6, 0xe9, 0xf2, 0x69, 0xc6, 0x5f, 0xd9, 0x96, 0x2f, 0x7d, 0xbb, 0x15, 0x3d, 0xcd, 0xf9, 0x27,
		0xbb, 0x25, 0xd5, 0x97, 0x5e, 0xf8, 0x08, 0x1a, 0x8b, 0x67, 0x69, 0xb7, 0xfc, 0xa9, 0xdd, 0x77,
		0x6f, 0xfd, 0xf0, 0x1f, 0xbb, 0x1b, 0x3d, 0xcb, 0xa3, 0x95, 0x47, 0x69, 0xc7, 0xdf, 0xdc, 0xdb,
		0xbd, 0xf9, 0xa3, 0x5c, 0x7c, 0xb6, 0xa3, 0xbf, 0x43, 0x23, 0xa2, 0xe7, 0xef, 0x3d, 0x08, 0x78,
		0x8e, 0x52, 0x70, 0x3f, 0x15, 0x64, 0xfc, 0x45, 0x4c, 0x09, 0x23, 0xab, 0x88, 0xf8, 0xd5, 0xdf,
		0xa5, 0x1a, 0x96, 0x0e, 0x8c, 0x2d, 0x22, 0xe6, 0x1c, 0x45, 0x2b, 0x9d, 0x90, 0x41, 0xa7, 0x9e,
		0x18, 0xc9, 0x3b, 0x5a, 0x31, 0x67, 0x89, 0xa3, 0xc9, 0xc0, 0x0c, 0xa3, 0x03, 0x25, 0xdf, 0xdd,
		0x9b, 0xcc, 0xbc, 0x81, 0x20, 0xf5, 0xb8, 0xe6, 0x30, 0x17, 0xf7, 0x5f, 0x27, 0x5e, 0x88, 0xf4,
		0xd2, 0x74, 0x3e, 0xa3, 0xb4, 0x12, 0xdd, 0xd2, 0x27, 0xc7, 0xaf, 0x7b, 0xe3, 0xd9, 0x8d, 0x50,
		0x41, 0xe9, 0xc0, 0x08, 0xbc, 0x99, 0x20, 0x66, 0xe0, 0x8a, 0x75, 0x31, 0xf0, 0xc0, 0x95, 0x49,
		0x72, 0xe5, 0x3e, 0xa5, 0xa8, 0xf7, 0xc8, 0x63, 0xb9, 0xc2, 0x19, 0x79, 0x62, 0x44, 0xc9, 0x63,
		0x2d, 0x02, 0x60, 0x65, 0x8f, 0x90, 0x4d, 0xa7, 0x8b, 0x74, 0x62, 0x73, 0x73, 0xce, 0xce, 0xcb,
		0x11, 0x63, 0x00, 0xaf, 0x24, 0x60, 0x41, 0xce, 0x6b, 0x3c, 0x0c, 0x64, 0x44, 0x28, 0x64, 0xa9,
		0x25, 0xfd, 0xa0, 0x1e, 0x04, 0x1e, 0x09, 0x57, 0x53, 0x3a, 0x91, 0xaa, 0xe9, 0x8a, 0x30, 0x42,
		0xf9, 0x34, 0xe8, 0x63, 0xe9, 0xc4, 0xb9, 0x5b, 0xb1, 0xa8, 0xf2, 0xa1, 0x56, 0xdb, 0xdd, 0xab,
		0xd5, 0xb6, 0xf6, 0xb6, 0xf7, 0xb6, 0xf6, 0x77, 0x76, 0x2a, 0xbb, 0x95, 0x1d, 0x02, 0x46, 0x76,
		0xbc, 0xa1, 0xf0, 0xc4, 0xf0, 0x30, 0x44, 0x95, 0x9a, 0xb9, 0x2e, 0x25, 0x93, 0xce, 0x7c, 0x11,
		0x82, 0x6b, 0xe4, 0xb8, 0xbe, 0x28, 0xf4, 0xa2, 0x27, 0x56, 0xfc, 0xe2, 0x5f, 0xf4, 0x22, 0x40,
		0x40, 0xf8, 0x96, 0xb9, 0xf2, 0x25, 0x22, 0xf9, 0x85, 0xff, 0x7c, 0xde, 0x39, 0x27, 0xdf, 0x43,
		0xc5, 0xe7, 0x30, 0xf6, 0x35, 0x39, 0x3a, 0x19, 0x86, 0xce, 0x25, 0x1f, 0xaf, 0x92, 0xfd, 0x9a,
		0xce, 0x61, 0x3d, 0x97, 0x66, 0x6a, 0x28, 0x46, 0x52, 0x89, 0xa1, 0xb9, 0x84, 0x66, 0x5e, 0x4b,
		0x3a, 0xae, 0x04, 0xac, 0x9b, 0x94, 0x93, 0x9f, 0x5b, 0xe6, 0xff, 0x39, 0xbd, 0x7d, 0xde, 0x05,
		0x6f, 0x0a, 0x05, 0x6e, 0x42, 0x05, 0x6d, 0x2a, 0x05, 0x6c, 0x72, 0x05, 0x6b, 0x72, 0x05, 0x6a,
		0x5a, 0x05, 0xe9, 0x62, 0x71, 0xc3, 0x86, 0xcc, 0xb7, 0xe8, 0xb3, 0x16, 0x3d, 0xf2, 0x5f, 0xaf,
		0x2f, 0xc5, 0xb5, 0xbc, 0x97, 0x6d, 0xbe, 0xe1, 0x8d, 0x4c, 0x98, 0xa3, 0x14, 0xee, 0x08, 0x86,
		0x3d, 0x6a, 0xe1, 0x8f, 0x6c, 0x18, 0x24, 0x1b, 0x0e, 0x69, 0x86, 0xc5, 0xfc, 0x8b, 0x36, 0x06,
		0x81, 0xf2, 0x6d, 0xde, 0xe1, 0x72, 0xa5, 0x2a, 0xe0, 0x04, 0x04, 0xfb, 0xa1, 0x28, 0x75, 0x20,
		0x12, 0x09, 0x98, 0xe4, 0x02, 0x27, 0xc5, 0x00, 0x4a, 0x38, 0x90, 0x52, 0x0d, 0xa8, 0xe4, 0x03,
		0x2b, 0xf9, 0x00, 0x4b, 0x3b, 0xd0, 0xd2, 0x08, 0xb8, 0x44, 0x02, 0x2f, 0xb9, 0x00, 0x1c, 0x1b,
		0xe4, 0x0a, 0x35, 0x8e, 0x36, 0x34, 0x88, 0x79, 0x85, 0x87, 0x3e, 0xad, 0xc8, 0x3e, 0x62, 0x2b,
		0x8e, 0x56, 0xaf, 0x32, 0xd9, 0x10, 0x4d, 0x39, 0x54, 0x33, 0x08, 0xd9, 0xd4, 0x43, 0x37, 0x9b,
		0x10, 0xce, 0x26, 0x94, 0xf3, 0x08, 0xe9, 0xb4, 0x42, 0x3b, 0xb1, 0x10, 0x1f, 0x4f, 0x21, 0xb9,
		0xde, 0xe7, 0x35, 0x8f, 0x37, 0x93, 0x2a, 0xf8, 0x40, 0xd1, 0xdf, 0x2d, 0xc2, 0xeb, 0x0e, 0x41,
		0xd3, 0xba, 0x8e, 0x1a, 0x0b, 0xb2, 0x7a, 0x15, 0x74, 0x15, 0x09, 0x4a, 0x27, 0x52, 0x91, 0x0d,
		0x60, 0xb1, 0x91, 0x91, 0x1c, 0x09, 0x3d, 0xfe, 0xb4, 0x66, 0xe7, 0xb1, 0xe7, 0x0c, 0x02, 0x39,
		0x51, 0x0d, 0x39, 0x96, 0x54, 0xba, 0x8c, 0xff, 0xd9, 0xe5, 0x88, 0xb1, 0x13, 0xc8, 0x5b, 0x41,
		0xa2, 0x89, 0x96, 0x51, 0x14, 0x79, 0xbc, 0x84, 0x9c, 0x3b, 0x3e, 0x4b, 0xa8, 0xba, 0xb3, 0x83,
		0x45, 0x54, 0xd4, 0x45, 0xf4, 0x0b, 0xac, 0xfa, 0x91, 0x8f, 0x4b, 0x08, 0x8e, 0x50, 0x77, 0xc2,
		0xb4, 0x0e, 0xee, 0xaf, 0x51, 0x78, 0x42, 0x07, 0xf8, 0x9f, 0xb2, 0x77, 0x14, 0xc7, 0x7e, 0xd0,
		0x30, 0x14, 0xc7, 0xde, 0x64, 0x22, 0x8a, 0x63, 0x09, 0x19, 0x8a, 0xe2, 0x98, 0xbe, 0x6c, 0x03,
		0xc5, 0xb1, 0x9f, 0xf5, 0x78, 0x28, 0x8e, 0xfd, 0xbc, 0x69, 0x28, 0x8e, 0xbd, 0x36, 0xb3, 0x47,
		0x71, 0x0c, 0x79, 0x3d, 0x8a, 0x63, 0x6f, 0x5a, 0x42, 0x28, 0x8e, 0x61, 0x11, 0xa1, 0x38, 0xa6,
		0x8f, 0x55, 0x28, 0x8e, 0x91, 0x77, 0xc2, 0xa5, 0xdb, 0x85, 0x3f, 0x23, 0x5a, 0x1d, 0x9b, 0x9b,
		0x87, 0xf2, 0xd8, 0x8f, 0x98, 0x85, 0xf2, 0xd8, 0x1b, 0x80, 0x86, 0xf2, 0xd8, 0xeb, 0x97, 0x03,
		0xca, 0x63, 0x09, 0x1b, 0x8a, 0xf2, 0x18, 0xf7, 0xc4, 0x86, 0x41, 0x79, 0xec, 0x4a, 0x2a, 0xc7,
		0xbb, 0x27, 0x5c, 0x1f, 0xdb, 0x07, 0x7d, 0x24, 0x6c, 0x09, 0x2e, 0x73, 0xf8, 0x67, 0xbb, 0x18,
		0x6a, 0x4d, 0xad, 0xe9, 0xe8, 0xac, 0xbd, 0x82, 0x0b, 0x1e, 0xde, 0x20, 0x4e, 0x75, 0xb6, 0x7c,
		0x98, 0x4b, 0x09, 0xbc, 0x27, 0x2f, 0xe0, 0xca, 0x07, 0x62, 0xfe, 0x05, 0x57, 0x3e, 0x30, 0x4b,
		0x85, 0x71, 0xc2, 0x99, 0x77, 0xca, 0x8b, 0x13, 0xce, 0xba, 0xa6, 0xb6, 0x38, 0xe1, 0xcc, 0x87,
		0x51, 0xe3, 0xca, 0x87, 0x9f, 0x0f, 0x80, 0xb8, 0xf2, 0x81, 0x0d, 0xaf, 0xc4, 0x95, 0x0f, 0xb8,
		0xf2, 0x61, 0xdd, 0x1a, 0x5c, 0xf9, 0xf0, 0x2a, 0x23, 0x71, 0xe5, 0x03, 0x83, 0x45, 0x8f, 0x2b,
		0x1f, 0x32, 0x28, 0x8d, 0xe1, 0x1a, 0x88, 0x44, 0x8b, 0x61, 0xb8, 0x18, 0xa2, 0x00, 0x1e, 0x0a,
		0x17, 0x43, 0x24, 0xe8, 0x91, 0x70, 0x45, 0xc4, 0xab, 0x1c, 0x4f, 0x61, 0xee, 0x8a, 0xf8, 0x45,
		0x63, 0x87, 0xb2, 0xcc, 0x6b, 0x96, 0x4b, 0xd0, 0x54, 0xb3, 0x9b, 0x2b, 0xe1, 0x65, 0xbc, 0x24,
		0xf2, 0x4d, 0x69, 0xf2, 0x4f, 0x61, 0x48, 0xa6, 0x2c, 0x04, 0x52, 0x14, 0x02, 0x29, 0x49, 0xd6,
		0xeb, 0x51, 0xdc, 0x05, 0x9e, 0x63, 0xce, 0xc2, 0xe5, 0x78, 0xe5, 0xe6, 0x53, 0x4d, 0x2c, 0x79,
		0x62, 0x24, 0x3c, 0xa1, 0x06, 0xf9, 0x9d, 0x67, 0x22, 0x70, 0x0d, 0x4a, 0xf7, 0xf8, 0xa8, 0xb6,
		0xbf, 0x57, 0x39, 0x30, 0x2c, 0x15, 0x08, 0xef, 0x46, 0x0c, 0xa5, 0x13, 0x08, 0xa3, 0x77, 0xef,
		0x07, 0xe2, 0xc6, 0x08, 0x26, 0xcf, 0xbd, 0x7c, 0xa1, 0x7e, 0xb5, 0x7a, 0xa6, 0xd5, 0x7b, 0x6f,
		0x34, 0xef, 0x02, 0xa1, 0x7c, 0x39, 0x51, 0xbe, 0x31, 0x9a, 0x78, 0x46, 0x7d, 0x78, 0x2b, 0xbc,
		0x40, 0xfa, 0x52, 0x8d, 0x8d, 0x79, 0x90, 0x35, 0x2c, 0x35, 0x9a, 0x78, 0x37, 0x11, 0x83, 0xdb,
		0xbc, 0x50, 0xfd, 0xd6, 0xb9, 0x51, 0xad, 0x55, 0x37, 0x71, 0xe9, 0xca, 0xa3, 0x2d, 0xa3, 0x07,
		0x20, 0xe2, 0xde, 0x95, 0x27, 0xfc, 0x7f, 0x65, 0x57, 0x28, 0x1f, 0xa4, 0x16, 0x2d, 0xd1, 0xcb,
		0xfc, 0x5d, 0x2f, 0xb5, 0x8e, 0x73, 0x39, 0x27, 0xb0, 0x0c, 0x13, 0xd7, 0x1c, 0x7c, 0x20, 0xa3,
		0xf4, 0x34, 0x5b, 0x7f, 0x94, 0x9d, 0x37, 0xc8, 0xe6, 0x9d, 0x32, 0x5a, 0xfd, 0x79, 0xb2, 0xdb,
		0xd2, 0xd7, 0x6b, 0xa1, 0x32, 0x27, 0xb4, 0x39, 0x78, 0xb6, 0x25, 0x81, 0x7d, 0xb4, 0x89, 0x6d,
		0xfc, 0x66, 0xbc, 0x5b, 0x74, 0x8f, 0x98, 0xae, 0x3f, 0xbc, 0x32, 0xc3, 0x17, 0xfd, 0x83, 0x6e,
		0xe7, 0xac, 0xdf, 0xec, 0xda, 0x47, 0xf5, 0xd3, 0xfa, 0xa1, 0xd5, 0xb2, 0xfa, 0x9f, 0xdf, 0xe5,
		0xe1, 0x65, 0x72, 0x66, 0x9e, 0xab, 0x8c, 0x33, 0x02, 0x49, 0x4e, 0x35, 0x5d, 0x2a, 0x24, 0xf3,
		0x11, 0xb9, 0x7c, 0x25, 0x8a, 0x0a, 0x71, 0xa3, 0x6b, 0x43, 0xf8, 0x03, 0x4f, 0x4e, 0x73, 0xad,
		0xc2, 0xc7, 0xcb, 0xbd, 0xa3, 0xdc, 0x7b, 0x43, 0xaa, 0x81, 0x3b, 0x1b, 0x0a, 0x23, 0xb8, 0x16,
		0xc6, 0x9c, 0x4d, 0x18, 0x0f, 0x04, 0xc2, 0x08, 0xb9, 0x7b, 0x08, 0xf0, 0xe8, 0xbf, 0xc3, 0x6f,
		0xa4, 0x7f, 0xa1, 0xa2, 0x79, 0xcd, 0x31, 0xf7, 0xa4, 0x90, 0x77, 0xae, 0x7a, 0x80, 0xe1, 0xca,
		0xa4, 0xe6, 0x98, 0x8d, 0x53, 0xca, 0x38, 0x1f, 0x39, 0x84, 0xb7, 0xe3, 0x0c, 0xfb, 0x06, 0xac,
		0xdf, 0xed, 0x52, 0x2b, 0x46, 0x9a, 0x53, 0x1e, 0xca, 0x25, 0xff, 0xcc, 0xd0, 0x05, 0x52, 0x4f,
		0x36, 0xb3, 0xf1, 0x5b, 0xe9, 0xaf, 0xe3, 0x0c, 0x56, 0x56, 0xc6, 0x77, 0x1c, 0xe6, 0x72, 0x87,
		0x61, 0xc6, 0x77, 0x14, 0x3e, 0x9c, 0xd0, 0xa9, 0x66, 0xf4, 0x86, 0x39, 0x9c, 0xc0, 0xc9, 0xf1,
		0x84, 0x4d, 0x5e, 0x34, 0x34, 0xf7, 0x13, 0x32, 0xb9, 0x33, 0xcd, 0x7c, 0x4f, 0xb8, 0xe8, 0x55,
		0x5f, 0xcb, 0xfa, 0x8e, 0xbd, 0x7c, 0x0e, 0x7a, 0xe6, 0x79, 0xa0, 0x33, 0xa7, 0x83, 0x9b, 0xb9,
		0x1d, 0xd0, 0xcc, 0xf3, 0x20, 0x26, 0x81, 0x03, 0x97, 0x94, 0x6a, 0x93, 0xb9, 0x1e, 0xa0, 0xa4,
		0x59, 0x9d, 0xcc, 0xed, 0x40, 0xa4, 0xde, 0x4d, 0x81, 0xb9, 0x1d, 0x64, 0x8c, 0x57, 0xbc, 0x1c,
		0x0a, 0x15, 0xc8, 0xe0, 0x3e, 0x9f, 0x43, 0x8b, 0x31, 0xb7, 0xcf, 0xa3, 0xed, 0xce, 0x5a, 0x0c,
		0xfd, 0xd0, 0xf1, 0x45, 0xfe, 0x65, 0x65, 0xab, 0x67, 0xf5, 0xec, 0x7e, 0xeb, 0xdc, 0xee, 0x7f,
		0x3e, 0x6d, 0xe6, 0xe5, 0x7b, 0x22, 0xed, 0x58, 0x3f, 0x57, 0x75, 0xed, 0x9c, 0x9b, 0xa2, 0x96,
		0xd3, 0x51, 0xef, 0x36, 0xeb, 0x76, 0xbd, 0xd1, 0xe8, 0x36, 0x7b, 0xbd, 0x66, 0x2f, 0xc7, 0x26,
		0x9c, 0x8d, 0xc2, 0xcf, 0xc4, 0x59, 0xff, 0x53, 0xb3, 0xdd, 0xb7, 0x8e, 0xea, 0x7d, 0xab, 0xd3,
		0xc6, 0x4c, 0xe4, 0x37, 0x13, 0x8d, 0xcf, 0xed, 0xfa, 0x89, 0x75, 0x64, 0xb7, 0xeb, 0x27, 0x4d,
		0xcc, 0x43, 0x7e, 0xf3, 0xd0, 0xfc, 0xa3, 0xdf, 0x6c, 0x37, 0x9a, 0x0d, 0xdb, 0x3a, 0x3d, 0xaf,
		0xd9, 0xdd, 0x66, 0xfd, 0xe8, 0xd3, 0x62, 0x3f, 0x18, 0xb3, 0x42, 0x61, 0x56, 0x7a, 0x98, 0x13,
		0x22, 0x73, 0x62, 0x59, 0x3d, 0xbb, 0xdd, 0xb4, 0x3e, 0x7e, 0x3a, 0xec, 0x74, 0x11, 0xc4, 0xf3,
		0x9c, 0x88, 0x76, 0xaf, 0x5f, 0x6f, 0x1f, 0x35, 0x6d, 0xab, 0x81, 0x69, 0xc8, 0x71, 0x1a, 0xc2,
		0x80, 0x11, 0x3a, 0xaa, 0x6e, 0xbb, 0xde, 0x82, 0x97, 0xa2, 0x34, 0x2b, 0x56, 0xbb, 0xdf, 0xec,
		0x1e, 0xd7, 0x8f, 0x9a, 0xc8, 0x3a, 0x68, 0xcd, 0x09, 0x56, 0x0a, 0xb1, 0x59, 0xe9, 0x75, 0x5b,
		0x1f, 0x31, 0x09, 0x39, 0x4f, 0x42, 0xbf, 0x69, 0x2f, 0xba, 0x51, 0x11, 0xd1, 0x73, 0x9e, 0x8c,
		0x5d, 0xc4, 0x0e, 0x82, 0x73, 0x82, 0x90, 0x41, 0x68, 0x32, 0x10, 0x32, 0x08, 0x4c, 0x02, 0x42,
		0x06, 0x91, 0xc9, 0xe8, 0x59, 0x3d, 0xbb, 0xde, 0xb2, 0xea, 0x3d, 0x4c, 0x44, 0xce, 0x13, 0x11,
		0x17, 0xa7, 0xec, 0x7a, 0xbf, 0xdf, 0xb5, 0x0e, 0xcf, 0xfa, 0x28, 0xac, 0xe7, 0x38, 0x21, 0xad,
		0xde, 0xa9, 0x7d, 0x78, 0x76, 0x7c, 0xdc, 0xec, 0xda, 0x3d, 0xeb, 0xbf, 0x98, 0x8a, 0x1c, 0xa7,
		0xe2, 0xa4, 0x8f, 0xdd, 0x0d, 0x7a, 0xf3, 0x01, 0x5a, 0x4b, 0x69, 0x3e, 0x7a, 0xd8, 0x0d, 0xcf,
		0x7b, 0x06, 0x10, 0xc0, 0x69, 0xcd, 0xc9, 0x59, 0xab, 0x6f, 0xd9, 0xfd, 0xce, 0x69, 0xa7, 0xd5,
		0xf9, 0x08, 0xff, 0x94, 0xe3, 0x4c, 0xb4, 0x5b, 0xa7, 0x48, 0x2e, 0xf2, 0x9c, 0x80, 0xd3, 0xb3,
		0xee, 0xc7, 0xa6, 0xdd, 0xb1, 0x30, 0x07, 0xf9, 0xcd, 0xc1, 0x9a, 0x5e, 0x43, 0xd1, 0xc4, 0xbc,
		0x2e, 0x71, 0x18, 0x9c, 0xd5, 0x3b, 0xe1, 0x30, 0x78, 0xf6, 0x87, 0xc1, 0xb3, 0xbe, 0xb0, 0x92,
		0xd6, 0xf1, 0xef, 0x0c, 0x6f, 0x94, 0xd4, 0xe3, 0xc4, 0x77, 0xa6, 0x07, 0x01, 0xf3, 0x38, 0x00,
		0x98, 0xf1, 0xc1, 0xbf, 0xcc, 0x0f, 0xfc, 0xe1, 0xbc, 0x77, 0x36, 0xef, 0x8b, 0xf3, 0xde, 0x38,
		0xef, 0x9d, 0xd8, 0xa3, 0xcc, 0xfc, 0xa0, 0x5e, 0x8e, 0x37, 0x0a, 0xe6, 0x71, 0x63, 0x60, 0x9e,
		0x37, 0x02, 0x66, 0xc0, 0x0b, 0x7e, 0x61, 0xbc, 0x06, 0x32, 0xbc, 0x91, 0x2f, 0xdb, 0xeb, 0x29,
		0xb2, 0xbf, 0x8e, 0x82, 0xc4, 0xf5, 0x13, 0x39, 0x5c, 0x37, 0x91, 0xc3, 0xf5, 0x12, 0x69, 0x2f,
		0x8a, 0x8c, 0x33, 0x58, 0x8a, 0x99, 0x6b, 0x29, 0x13, 0x7d, 0x2b, 0x3a, 0xb9, 0x6a, 0xba, 0xd1,
		0x28, 0xbd, 0x18, 0x91, 0xce, 0x5f, 0x4e, 0x69, 0x81, 0x65, 0xb5, 0xb0, 0xa8, 0x2d, 0xa8, 0x14,
		0x17, 0x13, 0x99, 0x45, 0x94, 0xce, 0x02, 0x4a, 0x1e, 0xde, 0x29, 0x40, 0xbb, 0xf4, 0x70, 0x19,
		0x5e, 0x34, 0xdb, 0x69, 0x41, 0x3b, 0x4e, 0x1b, 0x9e, 0xbc, 0x5f, 0x4a, 0x8b, 0x35, 0x5d, 0x69,
		0xbe, 0xd4, 0x4b, 0x33, 0x59, 0x94, 0x62, 0x32, 0x2c, 0xbd, 0x64, 0x55, 0x6a, 0xc9, 0xbc, 0xb4,
		0x92, 0x79, 0x29, 0x25, 0xdb, 0xd2, 0x09, 0xaf, 0x00, 0x9d, 0xb6, 0xf4, 0xdd, 0x63, 0xd7, 0x95,
		0x3e, 0x98, 0x9f, 0xf5, 0x98, 0x69, 0x03, 0x3a, 0x1b, 0x4d, 0xd3, 0xcc, 0x6a, 0xdb, 0x59, 0xd6,
		0xb4, 0x73, 0xa8, 0x65, 0x67, 0x5d, 0xc3, 0xce, 0xad, 0x76, 0x9d, 0x5b, 0xcd, 0x3a, 0x9f, 0x5a,
		0x35, 0xef, 0xba, 0x5c, 0x56, 0x1a, 0xa4, 0x10, 0x99, 0xe6, 0xeb, 0x98, 0xf3, 0x70, 0xd0, 0x39,
		0x3a, 0xea, 0xbc, 0x1c, 0x76, 0xee, 0x8e, 0x3b, 0x77, 0x07, 0x9e, 0xaf, 0x23, 0xcf, 0xc6, 0xa1,
		0x67, 0xe4, 0xd8, 0x33, 0x77, 0xf0, 0xf1, 0x1b, 0xba, 0x42, 0x8d, 0xa3, 0x7a, 0x58, 0x4e, 0x32,
		0xd3, 0x8b, 0xf7, 0x87, 0xd0, 0xb4, 0x6e, 0xa1, 0x80, 0x40, 0x48, 0xc8, 0x3b, 0x34, 0x90, 0x09,
		0x11, 0x64, 0x42, 0x05, 0x8d, 0x90, 0x91, 0x6d, 0xe8, 0xc8, 0x38, 0x84, 0xc4, 0x8f, 0x38, 0x7f,
		0xa1, 0xe9, 0x99, 0x54, 0xc1, 0x87, 0x1c, 0x25, 0xa6, 0xf3, 0x50, 0x98, 0xee, 0x3a, 0x6a, 0x5c,
		0xc8, 0xbb, 0xfd, 0x4f, 0xa4, 0xca, 0xff, 0x7e, 0xfb, 0x48, 0xcc, 0x3a, 0xfb, 0xf8, 0xba, 0x66,
		0xc7, 0xb1, 0xe7, 0x0c, 0x02, 0x39, 0x51, 0x0d, 0x39, 0x96, 0x59, 0x75, 0x9a, 0xfc, 0xf3, 0x92,
		0x14, 0x63, 0x27, 0x90, 0xb7, 0x22, 0x93, 0x46, 0x0c, 0x42, 0x5e, 0xf0, 0x31, 0x44, 0x9d, 0x3b,
		0x3a, 0x10, 0xad, 0xee, 0xec, 0x00, 0xa4, 0x54, 0x41, 0x5a, 0x90, 0x6b, 0x34, 0x2f, 0x75, 0x3d,
		0x39, 0xb5, 0x81, 0x5b, 0x9a, 0x90, 0x3c, 0x23, 0x79, 0x46, 0xf2, 0x8c, 0xe4, 0x19, 0xc9, 0x33,
		0x92, 0x67, 0x24, 0xcf, 0x48, 0x9e, 0x91, 0x3c, 0x23, 0x79, 0x46, 0xf2, 0x0c, 0x90, 0x22, 0x79,
		0x46, 0xf2, 0x4c, 0x26, 0x79, 0xbe, 0x5d, 0xac, 0xe7, 0x9c, 0xb2, 0xe7, 0xf9, 0xdb, 0x23, 0x7d,
		0x46, 0xfa, 0x8c, 0xf4, 0x19, 0xe9, 0x33, 0xd2, 0x67, 0x8d, 0xd2, 0xe7, 0x2b, 0xa9, 0x1c, 0xef,
		0x3e, 0xc7, 0xfc, 0x79, 0x1f, 0xaa, 0x64, 0xf4, 0x01, 0x0b, 0x55, 0xb2, 0x69, 0xf9, 0xf1, 0xb1,
		0xc1, 0xc7, 0xdf, 0x16, 0x53, 0xa9, 0xec, 0x6c, 0xf9, 0x08, 0xa2, 0x63, 0xe0, 0xab, 0xdf, 0x41,
		0xbb, 0xec, 0x67, 0xe7, 0x13, 0xda, 0x65, 0xcc, 0x79, 0x3c, 0x8e, 0x11, 0x14, 0x83, 0xa7, 0xe3,
		0x18, 0x81, 0x46, 0xb4, 0x06, 0xda, 0x65, 0x69, 0x3b, 0x45, 0x68, 0x97, 0x11, 0x5d, 0x03, 0xd0,
		0x2e, 0x4b, 0xf0, 0x1d, 0xa1, 0x5d, 0x06, 0xed, 0x32, 0x9d, 0xf3, 0xdb, 0xa2, 0xe8, 0x99, 0xbd,
		0x9c, 0xd1, 0x42, 0xe1, 0x2c, 0x83, 0x65, 0x58, 0x44, 0x85, 0xb3, 0x4c, 0xd4, 0xa8, 0x68, 0x2e,
		0x30, 0x36, 0xa2, 0x67, 0xbf, 0x10, 0x5e, 0x3b, 0x4b, 0x1e, 0xe7, 0xfa, 0x53, 0x53, 0x0e, 0x13,
		0xc6, 0x4f, 0xba, 0xcc, 0x2d, 0x7d, 0xa6, 0x96, 0x0b, 0x33, 0xcb, 0x80, 0x89, 0x65, 0xc0, 0xbc,
		0x92, 0x86, 0x69, 0xca, 0xae, 0x9d, 0x90, 0x4b, 0x4f, 0xc1, 0x87, 0x53, 0xf0, 0xdd, 0xc9, 0x7a,
		0xeb, 0xe4, 0x7c, 0x6a, 0x32, 0x7f, 0x29, 0x21, 0xb8, 0xa7, 0x05, 0x73, 0x22, 0xf0, 0x4e, 0x10,
		0xda, 0x79, 0x43, 0x3a, 0x19, 0x38, 0xbf, 0x1d, 0x7c, 0x09, 0x00, 0xaf, 0xe4, 0x4d, 0x66, 0x81,
		0x30, 0xa7, 0x9e, 0x18, 0x09, 0x4f, 0xa8, 0x04, 0xab, 0xf2, 0x71, 0xb9, 0x72, 0xed, 0x1d, 0x12,
		0x5a, 0x2e, 0xc9, 0x6a, 0x4b, 0x25, 0xbe, 0xe9, 0x93, 0xc6, 0xa6, 0x4e, 0x8a, 0x9b, 0x36, 0x69,
		0x6d, 0xca, 0xa4, 0xbe, 0xe9, 0x92, 0xfa, 0xa6, 0x4a, 0xba, 0x9b, 0x26, 0xb4, 0x42, 0x50, 0xd2,
		0xda, 0x48, 0xa5, 0xc1, 0x72, 0x55, 0x25, 0x8c, 0xaa, 0xe5, 0x42, 0x58, 0xfc, 0xfd, 0xa4, 0xf3,
		0xa2, 0x54, 0x64, 0xeb, 0x52, 0xdb, 0x57, 0x4e, 0x73, 0xff, 0x38, 0x83, 0x7d, 0xe2, 0xb4, 0xf7,
		0x83, 0x33, 0xdb, 0xf7, 0xcd, 0x6c, 0x7f, 0x37, 0x9b, 0x7d, 0x5c, 0xda, 0xb5, 0x8b, 0xb4, 0x64,
		0xdc, 0x4a, 0xe2, 0x2e, 0x10, 0x9e, 0x72, 0x5c, 0x33, 0x35, 0x6a, 0xf4, 0xe2, 0x1a, 0x7b, 0xf9,
		0xad, 0xd3, 0x55, 0x9a, 0xdf, 0x82, 0xd2, 0x7c, 0x9e, 0x0e, 0x30, 0x2b, 0x47, 0x98, 0xb9, 0x43,
		0xcc, 0xdc, 0x31, 0x66, 0xeb, 0x20, 0xd3, 0x71, 0x94, 0x29, 0x39, 0xcc, 0xf8, 0xd1, 0xa4, 0xde,
		0xb8, 0xf2, 0xe8, 0x7c, 0xf5, 0x76, 0x35, 0xcd, 0x05, 0xb3, 0xf0, 0x5f, 0x29, 0xb6, 0xa5, 0x64,
		0x74, 0x60, 0x3a, 0x9b, 0xde, 0x86, 0xec, 0xba, 0x44, 0x33, 0x3e, 0xe8, 0x9c, 0xdb, 0x59, 0xd1,
		0xec, 0xcf, 0x84, 0x7e, 0xcb, 0xa6, 0x29, 0x25, 0x7b, 0xa8, 0xd4, 0xaa, 0xfb, 0xb5, 0xfd, 0xdd,
		0xbd, 0xea, 0xfe, 0x0e, 0x30, 0xc3, 0x22, 0x40, 0xa5, 0xff, 0xd7, 0x2f, 0x0b, 0x7c, 0xb5, 0x95,
		0x54, 0xb9, 0xa5, 0x21, 0x2f, 0xbf, 0x35, 0xd2, 0x10, 0xa4, 0x21, 0x48, 0x43, 0x90, 0x86, 0x20,
		0x0d, 0x41, 0x1a, 0x82, 0x34, 0x04, 0x69, 0x08, 0xd2, 0x10, 0x60, 0x06, 0x69, 0x08, 0x99, 0x34,
		0x04, 0x5d, 0x7c, 0xd9, 0xb6, 0x39, 0x3d, 0xcd, 0x8f, 0xca, 0xa9, 0x6c, 0x47, 0x1b, 0xd9, 0xb7,
		0x3c, 0x75, 0xc3, 0x81, 0x9d, 0xc6, 0xe3, 0xb2, 0x17, 0x19, 0x14, 0xd5, 0x36, 0xbe, 0x44, 0x5b,
		0xcb, 0xd2, 0xb8, 0x95, 0x2f, 0xd5, 0xdb, 0xf7, 0x52, 0x6f, 0x57, 0xa8, 0xa2, 0x5d, 0x21, 0xc3,
		0xf4, 0x18, 0xed, 0x0a, 0x3a, 0x46, 0x3f, 0xb4, 0x2b, 0x24, 0xe7, 0xe8, 0x50, 0x27, 0xcc, 0xd5,
		0x01, 0x66, 0xe5, 0x08, 0x33, 0x77, 0x88, 0x99, 0x3b, 0xc6, 0x6c, 0x1d, 0x64, 0xba, 0x89, 0x12,
		0xea, 0x84, 0x3f, 0xec, 0xbf, 0x50, 0x27, 0xfc, 0x91, 0xe2, 0x0f, 0xea, 0x84, 0x5a, 0xd4, 0x7c,
		0x50, 0x27, 0x04, 0x66, 0xc8, 0x54, 0xf2, 0x0c, 0xd4, 0x09, 0xd1, 0xae, 0x80, 0x34, 0x04, 0x69,
		0x08, 0xd2, 0x10, 0xa4, 0x21, 0x48, 0x43, 0x90, 0x86, 0x20, 0x0d, 0x41, 0x1a, 0x82, 0x34, 0x04,
		0x98, 0x41, 0x1a, 0x92, 0x43, 0x1a, 0x82, 0x76, 0x85, 0x9c, 0xdb, 0x15, 0xd2, 0xba, 0x7a, 0x20,
		0xe7, 0x6e, 0x85, 0x14, 0x6e, 0x10, 0x80, 0xe6, 0x10, 0x3b, 0x74, 0xf3, 0x15, 0x1c, 0x7a, 0x82,
		0x67, 0x9d, 0xe4, 0x86, 0x92, 0x6d, 0xaf, 0x49, 0xa5, 0xad, 0x26, 0x35, 0x61, 0xa1, 0x2a, 0x84,
		0x85, 0x38, 0x95, 0x63, 0x20, 0x2c, 0x44, 0x59, 0x58, 0xc8, 0x99, 0x05, 0xd7, 0x42, 0x05, 0x72,
		0x10, 0x05, 0x2f, 0x73, 0x70, 0x2d, 0x06, 0x5f, 0xd2, 0x6b, 0xdb, 0x7b, 0xf6, 0xdd, 0x92, 0xee,
		0x10, 0x12, 0x23, 0x67, 0xe6, 0x06, 0xa9, 0x14, 0x4d, 0x4a, 0x21, 0x7a, 0x93, 0x65, 0x44, 0x97,
		0xe9, 0x34, 0x31, 0x6e, 0x41, 0x73, 0x09, 0x4d, 0x8c, 0x94, 0xbc, 0x74, 0x36, 0xde, 0x9a, 0x47,
		0x4e, 0x9c, 0x5a, 0x11, 0xfc, 0xe1, 0x4e, 0xc9, 0xc9, 0xc4, 0x15, 0x8e, 0x4a, 0x03, 0xf1, 0x4b,
		0x5a, 0x57, 0x29, 0x40, 0x17, 0xbb, 0x50, 0xce, 0x95, 0x2b, 0x86, 0xe9, 0x05, 0xc4, 0xe5, 0x1b,
		0x70, 0x8a, 0x81, 0x51, 0xd5, 0x10, 0x41, 0x10, 0x41, 0x10, 0x41, 0x10, 0x41, 0x10, 0x41, 0x50,
		0xfb, 0x20, 0x18, 0x95, 0x05, 0x4d, 0x35, 0xbb, 0xb9, 0x12, 0x5e, 0x7a, 0x91, 0xf0, 0xd1, 0xbb,
		0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x70, 0xf1, 0x30, 0xab, 0x5e, 0x26, 0x8d, 0xeb,
		0x6c, 0xd2, 0x6d, 0x03, 0x4a, 0xb1, 0x19, 0x2b, 0x8b, 0xb6, 0x9f, 0xb8, 0x87, 0xa3, 0x92, 0x72,
		0x5b, 0x5f, 0xd6, 0x2d, 0x1b, 0xd9, 0xb5, 0x6a, 0xa4, 0xd8, 0xd6, 0x93, 0x49, 0x3b, 0x4f, 0x0c,
		0x81, 0x2a, 0x20, 0x40, 0x22, 0x3a, 0xa4, 0xf7, 0x57, 0x2f, 0x0b, 0xc0, 0xb8, 0x6f, 0x44, 0xe0,
		0xc9, 0x81, 0xe9, 0x07, 0xf7, 0x6e, 0x8a, 0x1a, 0x0a, 0x8f, 0xde, 0x05, 0x8c, 0x1b, 0x8c, 0x1b,
		0x8c, 0x1b, 0x8c, 0x9b, 0x8b, 0x87, 0x79, 0x54, 0x85, 0xa9, 0xa5, 0xf0, 0xb7, 0x9b, 0x6a, 0x76,
		0x93, 0xde, 0x82, 0xea, 0x4f, 0x7a, 0x81, 0x27, 0xd5, 0x38, 0xdd, 0xa3, 0x10, 0x5b, 0xe1, 0x24,
		0xb4, 0xeb, 0xdd, 0x6e, 0xe7, 0x3f, 0xf6, 0x49, 0xb3, 0xdf, 0xb5, 0x8e, 0xd2, 0x3c, 0x0e, 0x51,
		0x09, 0xdf, 0xed, 0x3f, 0x56, 0xa3, 0xb9, 0x7c, 0x2f, 0x5e, 0x07, 0x53, 0x26, 0x56, 0xe4, 0x0d,
		0xd2, 0x3c, 0x99, 0xf2, 0x68, 0x26, 0x52, 0xe5, 0x8e, 0x8f, 0xe6, 0xe1, 0xc0, 0xa8, 0x14, 0xb3,
		0x95, 0x19, 0xcd, 0xa6, 0x3f, 0xf5, 0x77, 0x73, 0x68, 0x36, 0x4d, 0xba, 0x73, 0x3a, 0xe3, 0x0e,
		0xd3, 0x04, 0x3b, 0xa4, 0x89, 0xf4, 0x95, 0xde, 0xfb, 0x81, 0xb8, 0x31, 0xe7, 0xa5, 0xb2, 0xc1,
		0x64, 0xa6, 0x02, 0xe1, 0xf9, 0x29, 0xf4, 0x99, 0x3e, 0xfb, 0x36, 0xb8, 0xd0, 0x92, 0x60, 0x8e,
		0x81, 0xbe, 0xd3, 0x7c, 0x72, 0x08, 0xcd, 0xfb, 0x4e, 0xa1, 0x0f, 0xb9, 0xee, 0x60, 0xa0, 0x0f,
		0x89, 0xa2, 0x06, 0x8a, 0x1a, 0xb4, 0x1c, 0x55, 0xfc, 0x87, 0x9d, 0x59, 0x70, 0x6d, 0x8e, 0x1c,
		0xe9, 0xfa, 0xe9, 0x2b, 0xb1, 0xac, 0xbc, 0x17, 0xa4, 0x57, 0xb2, 0x76, 0x6d, 0x19, 0xba, 0xb8,
		0xac, 0x5c, 0x5d, 0xe6, 0x2e, 0x2f, 0x73, 0xd7, 0x97, 0xad, 0x0b, 0x4c, 0xaf, 0x00, 0x62, 0x68,
		0x21, 0xbd, 0xb2, 0xc8, 0xe8, 0xa0, 0xbe, 0xf2, 0x43, 0x1f, 0x50, 0x5f, 0x79, 0xdb, 0xfb, 0x41,
		0x7d, 0x25, 0x51, 0xa8, 0x40, 0x7d, 0x45, 0x2f, 0xcc, 0x40, 0x7d, 0x25, 0x55, 0x7b, 0xd3, 0x10,
		0x81, 0x8c, 0xf8, 0x7f, 0x70, 0x3f, 0x15, 0x99, 0x26, 0x1c, 0x2b, 0x6f, 0x88, 0xac, 0x03, 0x59,
		0x07, 0xb2, 0x0e, 0x64, 0x1d, 0xc8, 0x3a, 0x90, 0x75, 0x20, 0xeb, 0x40, 0xd6, 0x81, 0xac, 0x03,
		0x98, 0x41, 0xd6, 0xa1, 0x79, 0xd6, 0x31, 0x98, 0x78, 0xde, 0x6c, 0x1a, 0x88, 0xa1, 0xe9, 0xfa,
		0xd3, 0x0c, 0x92, 0x8e, 0x27, 0xef, 0x87, 0x9c, 0x03, 0x39, 0x07, 0x72, 0x0e, 0xe4, 0x1c, 0xc8,
		0x39, 0x90, 0x73, 0x20, 0xe7, 0x40, 0xce, 0x81, 0x9c, 0x03, 0x98, 0x41, 0xce, 0xa1, 0x79, 0xce,
		0x31, 0x74, 0x02, 0xe7, 0xca, 0xf1, 0x85, 0x39, 0xb9, 0x15, 0x9e, 0x3b, 0x71, 0x86, 0x19, 0xe4,
		0x1d, 0xcf, 0xbc, 0x27, 0x72, 0x0f, 0xe4, 0x1e, 0xc8, 0x3d, 0x90, 0x7b, 0x20, 0xf7, 0x40, 0xee,
		0x81, 0xdc, 0x03, 0xb9, 0x07, 0x72, 0x0f, 0x60, 0x06, 0xb9, 0x87, 0xe6, 0xb9, 0x87, 0xb8, 0x1b,
		0x08, 0x31, 0x34, 0x6f, 0x9c, 0x3b, 0xd3, 0x17, 0xff, 0xbf, 0xa9, 0x66, 0x37, 0x19, 0x24, 0x1f,
		0xcf, 0xbd, 0x29, 0xb2, 0x0f, 0x64, 0x1f, 0xc8, 0x3e, 0x90, 0x7d, 0x20, 0xfb, 0x40, 0xf6, 0x81,
		0xec, 0x03, 0xd9, 0x07, 0xb2, 0x0f, 0x60, 0x06, 0xd9, 0x87, 0xe6, 0xd9, 0x87, 0x1c, 0x9a, 0xae,
		0x50, 0xe6, 0x8d, 0xf4, 0x6f, 0x9c, 0x60, 0x70, 0x9d, 0x7e, 0xe6, 0xf1, 0xf4, 0x0d, 0x91, 0x75,
		0x20, 0xeb, 0x40, 0xd6, 0x81, 0xac, 0x03, 0x59, 0x07, 0xb2, 0x0e, 0x64, 0x1d, 0xc8, 0x3a, 0x90,
		0x75, 0x00, 0x33, 0xc8, 0x3a, 0x34, 0xcf, 0x3a, 0x5c, 0x7f, 0x6a, 0x0a, 0xcf, 0x9b, 0x78, 0x19,
		0x6c, 0x75, 0xac, 0xbc, 0x17, 0x72, 0x0d, 0xe4, 0x1a, 0xc8, 0x35, 0x90, 0x6b, 0x20, 0xd7, 0x40,
		0xae, 0x81, 0x5c, 0x03, 0xb9, 0x06, 0x72, 0x0d, 0x60, 0x06, 0xb9, 0x86, 0xe6, 0xb9, 0xc6, 0x8d,
		0xa3, 0x66, 0x8e, 0x6b, 0x3a, 0xc3, 0xa1, 0x27, 0x7c, 0xdf, 0x1c, 0x7a, 0x93, 0xa9, 0x39, 0xf2,
		0x26, 0x37, 0xa6, 0xe3, 0x09, 0x27, 0x83, 0xfc, 0xe3, 0x3b, 0xef, 0x8f, 0x9c, 0x04, 0x39, 0x09,
		0x72, 0x12, 0xe4, 0x24, 0xc8, 0x49, 0x90, 0x93, 0x20, 0x27, 0x41, 0x4e, 0x82, 0x9c, 0x04, 0x98,
		0x41, 0x4e, 0xa2, 0x7d, 0x4e, 0x72, 0x17, 0xd1, 0xff, 0x38, 0x2b, 0x58, 0xb6, 0x43, 0x89, 0x4c,
		0x12, 0x92, 0x97, 0xdf, 0x1c, 0xd9, 0x08, 0xb2, 0x11, 0x64, 0x23, 0xc8, 0x46, 0x90, 0x8d, 0x20,
		0x1b, 0x41, 0x36, 0x82, 0x6c, 0x04, 0xd9, 0x08, 0x30, 0x83, 0x6c, 0x44, 0xf3, 0x6c, 0x64, 0xf2,
		0x55, 0x99, 0xae, 0x3f, 0x35, 0xa7, 0x33, 0x6f, 0x9c, 0x45, 0x02, 0xf2, 0xe4, 0xfd, 0x90, 0x73,
		0x20, 0xe7, 0x40, 0xce, 0x81, 0x9c, 0x03, 0x39, 0x07, 0x72, 0x0e, 0xe4, 0x1c, 0xc8, 0x39, 0x90,
		0x73, 0x00, 0x33, 0xc8, 0x39, 0x34, 0xcf, 0x39, 0xa6, 0x8e, 0x17, 0x98, 0x83, 0xeb, 0x30, 0xfa,
		0x64, 0x90, 0x71, 0x3c, 0x7a, 0x37, 0xe4, 0x1b, 0xc8, 0x37, 0x90, 0x6f, 0x20, 0xdf, 0x40, 0xbe,
		0x81, 0x7c, 0x03, 0xf9, 0x06, 0xf2, 0x0d, 0xe4, 0x1b, 0xc0, 0x0c, 0xf2, 0x0d, 0xcd, 0xf3, 0x8d,
		0x85, 0xca, 0xad, 0xe9, 0x7f, 0x91, 0x59, 0x5c, 0x2a, 0xf8, 0xf8, 0xed, 0x90, 0x71, 0x20, 0xe3,
		0x40, 0xc6, 0x81, 0x8c, 0x03, 0x19, 0x07, 0x32, 0x0e, 0x64, 0x1c, 0xc8, 0x38, 0x90, 0x71, 0x00,
		0x33, 0xc8, 0x38, 0x74, 0xcf, 0x38, 0xa6, 0x23, 0xd3, 0x9b, 0xa9, 0x2c, 0x92, 0x8d, 0xe5, 0x3b,
		0x21, 0xcf, 0x40, 0x9e, 0x81, 0x3c, 0x03, 0x79, 0x06, 0xf2, 0x0c, 0xe4, 0x19, 0xc8, 0x33, 0x90,
		0x67, 0x20, 0xcf, 0x00, 0x66, 0x90, 0x67, 0x68, 0x9e, 0x67, 0x04, 0x93, 0xc0, 0x71, 0x4d, 0xd7,
		0xcf, 0x62, 0x5b, 0x63, 0xe5, 0xbd, 0x90, 0x6b, 0x20, 0xd7, 0x40, 0xae, 0x81, 0x5c, 0x03, 0xb9,
		0x06, 0x72, 0x0d, 0xe4, 0x1a, 0xc8, 0x35, 0x90, 0x6b, 0x00, 0x33, 0xc8, 0x35, 0x28, 0xe5, 0x1a,
		0xbf, 0x10, 0x5e, 0xe1, 0xa5, 0xba, 0x52, 0x93, 0xc0, 0x09, 0x91, 0x9e, 0xca, 0xa2, 0x2e, 0xf9,
		0x83, 0x6b, 0x71, 0xe3, 0x4c, 0x9d, 0xe0, 0x3a, 0x8c, 0xfb, 0xe5, 0xc9, 0x54, 0xa8, 0x41, 0xc4,
		0xfd, 0x4d, 0x25, 0x82, 0xaf, 0x13, 0xef, 0x8b, 0x29, 0x95, 0x1f, 0x38, 0x6a, 0x20, 0xca, 0x4f,
		0x5f, 0xf0, 0xd7, 0x5e, 0x29, 0x4f, 0xbd, 0x49, 0x30, 0x19, 0x4c, 0x5c, 0x3f, 0xfe, 0xaa, 0x1c,
		0x12, 0xb8, 0xb2, 0x2b, 0x6e, 0x85, 0xbb, 0xf8, 0x54, 0xf6, 0xef, 0xfd, 0x40, 0xdc, 0x98, 0xd1,
		0x37, 0xe6, 0x82, 0x69, 0xf8, 0x65, 0x3f, 0x70, 0x02, 0x51, 0x4a, 0x63, 0x7f, 0x29, 0xf0, 0x66,
		0x83, 0x40, 0x2d, 0x98, 0x4d, 0x27, 0x1e, 0x60, 0x7b, 0x6e, 0xbc, 0xb5, 0xb0, 0xdd, 0x7e, 0xf2,
		0xbd, 0xff, 0xf4, 0x05, 0xfb, 0x74, 0x39, 0xb8, 0xf8, 0x2b, 0xdb, 0xf2, 0xa5, 0x6f, 0xb7, 0xa2,
		0xc1, 0xcd, 0x3f, 0xd9, 0xbd, 0x68, 0x70, 0xd1, 0xd7, 0x47, 0x8b, 0xa1, 0xd9, 0xbd, 0x68, 0x68,
		0xbf, 0xd0, 0x04, 0x6d, 0x32, 0x7f, 0x29, 0x21, 0xd8, 0xa7, 0x05, 0x77, 0x32, 0x30, 0x4f, 0x10,
		0xe0, 0xf9, 0x03, 0x3b, 0x19, 0x48, 0xbf, 0x1d, 0x80, 0x09, 0x80, 0xaf, 0x14, 0x78, 0xce, 0x68,
		0x24, 0x07, 0xa6, 0x50, 0x63, 0xa9, 0x84, 0xf0, 0xa4, 0x1a, 0x27, 0x86, 0xc0, 0x87, 0xb2, 0xd0,
		0x33, 0x6f, 0x92, 0xd0, 0xc2, 0x59, 0x24, 0x53, 0x95, 0x84, 0xfe, 0x5c, 0xd2, 0xf5, 0x9f, 0x34,
		0xea, 0x3d, 0x29, 0xd6, 0x77, 0xd2, 0xaa, 0xe7, 0xa4, 0x5e, 0xbf, 0x49, 0xbd, 0x5e, 0x93, 0x6e,
		0x7d, 0x86, 0x56, 0x30, 0x6a, 0x48, 0x2f, 0x59, 0xc0, 0x0e, 0x96, 0xab, 0x2a, 0x61, 0x54, 0x3d,
		0x94, 0x6d, 0xa2, 0xbf, 0x9f, 0xf0, 0x8c, 0x27, 0xeb, 0x5a, 0x52, 0x73, 0x31, 0x69, 0xba, 0x9a,
		0x0c, 0x5c, 0x4e, 0xda, 0xae, 0x27, 0x33, 0x17, 0x94, 0x99, 0x2b, 0xca, 0xc6, 0x25, 0xf1, 0x48,
		0x13, 0x93, 0x76, 0x55, 0xf1, 0x1f, 0x16, 0xca, 0xb9, 0x72, 0xc5, 0x30, 0xfd, 0x2d, 0xb3, 0xe5,
		0x1b, 0xa5, 0x84, 0x91, 0x86, 0x18, 0x39, 0x33, 0x37, 0x48, 0xb5, 0x16, 0x5c, 0x8a, 0x0a, 0x42,
		0xe9, 0xec, 0x56, 0x5c, 0x62, 0x1f, 0x31, 0x6b, 0x67, 0x9f, 0xa1, 0xd3, 0xcf, 0xca, 0xf9, 0x67,
		0x1e, 0x04, 0x32, 0x0f, 0x06, 0xd9, 0x06, 0x85, 0xf4, 0xaa, 0x92, 0x86, 0x16, 0xfb, 0x88, 0x57,
		0x93, 0x89, 0x2b, 0x1c, 0x95, 0xc1, 0x2e, 0x62, 0xa5, 0x52, 0xe0, 0xd6, 0x16, 0x39, 0xbd, 0xad,
		0x99, 0xde, 0x64, 0x16, 0x08, 0xcf, 0x94, 0x19, 0xc4, 0xea, 0x27, 0xef, 0x87, 0xd0, 0x84, 0xd0,
		0x84, 0xd0, 0x84, 0xd0, 0xc4, 0x2a, 0x34, 0x45, 0x3e, 0x6c, 0x71, 0xb3, 0x4b, 0x16, 0xf1, 0xe9,
		0x43, 0x8a, 0xef, 0x71, 0xea, 0x04, 0x81, 0xf0, 0x54, 0xea, 0x8d, 0x2e, 0xa5, 0x5f, 0xff, 0xdc,
		0x32, 0xf7, 0x2f, 0xff, 0xfe, 0xb3, 0x62, 0xee, 0x5f, 0xce, 0xbf, 0xac, 0x44, 0x9f, 0xfe, 0xaa,
		0x7e, 0xfb, 0xbb, 0xfa, 0xe7, 0x96, 0x59, 0x5b, 0xbc, 0x5a, 0xdd, 0xf9, 0x73, 0xcb, 0xdc, 0xb9,
		0x7c, 0xff, 0xeb, 0xc5, 0xc5, 0xe6, 0xcf, 0xfe, 0xce, 0xfb, 0xbf, 0xb6, 0xbf, 0xa5, 0xb7, 0x1c,
		0x2e, 0xd3, 0x9c, 0x86, 0x4e, 0xcf, 0xfa, 0x23, 0xb3, 0xb9, 0xf8, 0xdf, 0xaf, 0x59, 0xcd, 0xc6,
		0xfb, 0x7f, 0x95, 0xd0, 0x25, 0x90, 0x0e, 0x6d, 0xdb, 0xcd, 0x98, 0xb6, 0xed, 0x82, 0xb6, 0x81,
		0xb6, 0x81, 0xb6, 0x81, 0xb6, 0x31, 0xa6, 0x6d, 0xbb, 0xa0, 0x6d, 0x3f, 0x4b, 0xdb, 0xa2, 0xa8,
		0xef, 0x98, 0xa3, 0xba, 0x79, 0x7c, 0xf9, 0x57, 0x65, 0xa3, 0xf6, 0xed, 0xe0, 0xfd, 0x5f, 0x7b,
		0xdf, 0x9e, 0xbe, 0xf8, 0xf7, 0x73, 0x3f, 0x56, 0xd9, 0xd8, 0xfb, 0x76, 0xf0, 0xc2, 0xff, 0xec,
		0x7e, 0x3b, 0xf8, 0xc1, 0xbf, 0xb1, 0xf3, 0xed, 0xd7, 0xb5, 0x1f, 0x0d, 0x5f, 0xaf, 0xbe, 0xf4,
		0x0b, 0xb5, 0x17, 0x7e, 0x61, 0xfb, 0xa5, 0x5f, 0xd8, 0x7e, 0xe1, 0x17, 0x5e, 0x34, 0xa9, 0xfa,
		0xc2, 0x2f, 0xec, 0x7c, 0xfb, 0x7b, 0xed, 0xe7, 0x7f, 0x7d, 0xfe, 0x47, 0x77, 0xbf, 0xbd, 0xff,
		0xfb, 0xa5, 0xff, 0xdb, 0xfb, 0xf6, 0xf7, 0xc1, 0xfb, 0xf7, 0x20, 0xb2, 0x3f, 0x4c, 0x64, 0x01,
		0xcf, 0xec, 0xe1, 0x09, 0x62, 0x8f, 0xf6, 0xdf, 0xac, 0xfb, 0x22, 0x9f, 0x69, 0x82, 0x2b, 0xa7,
		0xd2, 0xb8, 0x62, 0x64, 0xdf, 0x24, 0xd9, 0x9f, 0x8f, 0xad, 0xf9, 0x30, 0x34, 0x7b, 0x91, 0xaf,
		0x50, 0xed, 0xfe, 0x4d, 0xb4, 0x1f, 0xd5, 0x09, 0x44, 0x7a, 0xcd, 0x4d, 0x69, 0x34, 0x88, 0xa7,
		0xde, 0xdb, 0x54, 0x45, 0x6f, 0x53, 0x86, 0xc9, 0x28, 0x7a, 0x9b, 0x74, 0x8c, 0x81, 0xe8, 0x6d,
		0xfa, 0xde, 0x03, 0x42, 0x6f, 0x13, 0x2a, 0x91, 0xa8, 0x44, 0xa2, 0x12, 0x89, 0x4a, 0x24, 0x7a,
		0x9b, 0x72, 0xcd, 0xa5, 0xd1, 0xdb, 0x84, 0xd0, 0x84, 0xd0, 0x84, 0xd0, 0x84, 0xd0, 0x94, 0x6b,
		0x68, 0x42, 0x6f, 0xd3, 0x2b, 0xde, 0x08, 0xbd, 0x4d, 0xff, 0x38, 0x0d, 0xe8, 0x6d, 0xfa, 0xf9,
		0xf9, 0x40, 0x6f, 0x13, 0x7a, 0x9b, 0x40, 0xdb, 0x40, 0xdb, 0x40, 0xdb, 0x40, 0xdb, 0x7e, 0xd4,
		0x87, 0x81, 0xb6, 0xfd, 0x24, 0x6d, 0x43, 0xf3, 0x08, 0x7a, 0x9b, 0xa8, 0x13, 0x59, 0xc0, 0x13,
		0xbd, 0x4d, 0x79, 0x10, 0x7b, 0xf4, 0x36, 0xe5, 0xdf, 0xdb, 0xa4, 0x89, 0xb0, 0xe1, 0x33, 0xad,
		0x4d, 0xd0, 0x35, 0xcc, 0x1b, 0xeb, 0x44, 0x30, 0xce, 0x57, 0xd5, 0x70, 0x1d, 0xd5, 0x64, 0x44,
		0x0d, 0x7f, 0xc9, 0x11, 0xb7, 0x61, 0xc6, 0x1b, 0x3e, 0xfe, 0xb9, 0x78, 0xa5, 0x9a, 0xdd, 0x5c,
		0x09, 0xef, 0x8d, 0x93, 0x5c, 0x6a, 0x49, 0x3f, 0xa8, 0x07, 0x41, 0x32, 0xbd, 0x3c, 0xa5, 0x13,
		0xa9, 0x9a, 0xae, 0x08, 0x53, 0xd6, 0x84, 0xc4, 0x9f, 0x4b, 0x27, 0xce, 0xdd, 0xca, 0x5f, 0xac,
		0x7c, 0xa8, 0xd5, 0x76, 0xf7, 0x6a, 0xb5, 0xad, 0xbd, 0xed, 0xbd, 0xad, 0xfd, 0x9d, 0x9d, 0xca,
		0x6e, 0x25, 0x01, 0x69, 0xeb, 0x52, 0xc7, 0x1b, 0x0a, 0x4f, 0x0c, 0x0f, 0xc3, 0xa7, 0xab, 0x66,
		0xae, 0x9b, 0xe4, 0x9f, 0x3c, 0xf3, 0x85, 0x97, 0x88, 0x2a, 0xf5, 0x5b, 0xc1, 0x93, 0xb0, 0xb3,
		0xcb, 0xc1, 0xc9, 0x25, 0xe0, 0xd0, 0xb2, 0x75, 0x64, 0x6f, 0xf3, 0x5a, 0xaf, 0xf7, 0x35, 0xaf,
		0xfb, 0xcd, 0x57, 0x02, 0x2c, 0x29, 0x60, 0x65, 0x0a, 0xa8, 0x37, 0x40, 0x29, 0x2b, 0x08, 0xbd,
		0x0e, 0x3c, 0x3f, 0x3f, 0xf5, 0x3f, 0xf7, 0x1b, 0x3f, 0x09, 0x92, 0x92, 0xb8, 0x0b, 0x3c, 0xc7,
		0x9c, 0x85, 0x43, 0xbe, 0x72, 0x5f, 0x57, 0xb1, 0x2b, 0x7d, 0xbd, 0x16, 0xaf, 0x2f, 0x0a, 0xbc,
		0x01, 0x90, 0xcb, 0x0a, 0xe0, 0xe6, 0xe2, 0x24, 0x44, 0x59, 0x0e, 0x85, 0x0a, 0xe4, 0x48, 0x0a,
		0xcf, 0xf8, 0xcd, 0x78, 0x37, 0x19, 0x98, 0xd3, 0x89, 0x6b, 0x06, 0xf7, 0x53, 0xe1, 0x1f, 0x58,
		0x3d, 0xab, 0xf7, 0xee, 0x2d, 0xa8, 0x4a, 0xa8, 0x6a, 0xbe, 0x5a, 0x15, 0x8f, 0x9e, 0xdb, 0x1b,
		0xa3, 0x46, 0xd2, 0x35, 0xef, 0x47, 0x35, 0xed, 0x1f, 0x7f, 0xb0, 0xbf, 0xe4, 0x10, 0x35, 0x4b,
		0x0d, 0xe1, 0x0f, 0x3c, 0x39, 0x4d, 0x24, 0x64, 0xc6, 0x60, 0xb2, 0xd4, 0xc0, 0x9d, 0x0d, 0x85,
		0x61, 0xf5, 0x4c, 0xab, 0x67, 0xcc, 0xc7, 0x3f, 0xf3, 0x22, 0xf7, 0x69, 0x84, 0x13, 0x66, 0x04,
		0xd7, 0xc2, 0x58, 0xba, 0x2c, 0x43, 0xfa, 0xc6, 0x64, 0x64, 0x84, 0x4f, 0xe2, 0x42, 0x45, 0xbf,
		0xf1, 0xd6, 0xf9, 0x4c, 0x70, 0x73, 0x66, 0x15, 0x6a, 0xc3, 0x95, 0x47, 0x95, 0x40, 0x94, 0x4e,
		0x63, 0xa7, 0xe5, 0x11, 0xf2, 0xde, 0x3a, 0x0b, 0xbc, 0x02, 0xfb, 0x2f, 0xe9, 0x96, 0xd2, 0x7e,
		0x36, 0x26, 0xbc, 0x91, 0x30, 0x64, 0x43, 0x14, 0x5e, 0x01, 0xe3, 0xd4, 0x99, 0xc1, 0xcf, 0xc1,
		0xee, 0xc7, 0xa7, 0xfd, 0x27, 0x26, 0xb0, 0xe4, 0x4e, 0x06, 0x8e, 0x6b, 0x3a, 0xe3, 0xb1, 0x27,
		0xc6, 0x4e, 0x20, 0x7e, 0xfe, 0xda, 0xc6, 0xd8, 0x13, 0xae, 0xfd, 0xa5, 0x9f, 0x84, 0xd1, 0xeb,
		0x4e, 0x89, 0xbd, 0x7a, 0x3b, 0xff, 0x2d, 0xdb, 0xf4, 0xab, 0xdb, 0xef, 0xee, 0x64, 0x60, 0x7a,
		0xc1, 0x6b, 0xe0, 0xf5, 0x46, 0xdf, 0x9d, 0xd8, 0x86, 0x79, 0x62, 0xee, 0xf9, 0xe9, 0x06, 0xf7,
		0xe2, 0xd1, 0x10, 0xa3, 0xb0, 0xaf, 0x3d, 0xe9, 0x54, 0x8a, 0xa1, 0xfd, 0xfa, 0x29, 0x5b, 0xe2,
		0xe6, 0xe1, 0x4f, 0xbd, 0xf2, 0x49, 0xbf, 0xed, 0x48, 0xe5, 0x9b, 0x7b, 0x60, 0x92, 0xe8, 0x71,
		0x49, 0x64, 0x11, 0xa5, 0xc9, 0xb7, 0x13, 0xe9, 0x42, 0x49, 0x97, 0x71, 0xbf, 0x61, 0x91, 0xe5,
		0x53, 0x5c, 0x78, 0xeb, 0x31, 0xc3, 0xa4, 0x6e, 0x77, 0x48, 0xf6, 0x36, 0x87, 0x84, 0x4e, 0x38,
		0x27, 0xd6, 0x9a, 0x96, 0x64, 0x0b, 0x5a, 0xa2, 0xcb, 0x34, 0x8d, 0xbc, 0xc5, 0x48, 0xb3, 0x79,
		0x2c, 0xb5, 0x26, 0xb1, 0xa4, 0x97, 0xf1, 0xdb, 0x93, 0x91, 0x24, 0x8a, 0xd2, 0x49, 0x9d, 0x22,
		0x7e, 0x94, 0x80, 0x26, 0x7e, 0x43, 0x54, 0xb2, 0xd9, 0xad, 0x91, 0x7c, 0xcf, 0x2a, 0xbb, 0x9b,
		0xa1, 0x12, 0x73, 0x0c, 0x69, 0x39, 0x88, 0xd4, 0x1d, 0x45, 0xea, 0x0e, 0x23, 0x6d, 0xc7, 0x91,
		0x8c, 0x03, 0x49, 0xc8, 0x91, 0xc4, 0x83, 0x4d, 0xbc, 0x2f, 0x74, 0x45, 0xe9, 0x24, 0xe9, 0x4d,
		0xf5, 0xb8, 0xe3, 0x53, 0xa3, 0x1b, 0xfb, 0x86, 0xd2, 0x1f, 0x38, 0xde, 0x30, 0x05, 0x1f, 0xbc,
		0xf8, 0xc3, 0x49, 0xdd, 0x22, 0x96, 0x82, 0x3a, 0x43, 0x92, 0x6a, 0x0c, 0x97, 0x88, 0x33, 0x88,
		0x33, 0x88, 0x33, 0x05, 0x8c, 0x33, 0xc9, 0x2b, 0x18, 0x24, 0xac, 0x58, 0x40, 0x23, 0xd0, 0xdc,
		0x88, 0xc0, 0x93, 0x83, 0xe4, 0xe3, 0xcc, 0xe2, 0xef, 0xc2, 0xfd, 0xc2, 0xfd, 0xc2, 0xfd, 0x16,
		0xd0, 0xfd, 0xce, 0xa4, 0x0a, 0xb6, 0xab, 0x29, 0x78, 0xdf, 0xbd, 0x04, 0xff, 0x64, 0xd7, 0x51,
		0x63, 0x91, 0xf8, 0x39, 0x99, 0x14, 0xba, 0xfd, 0x4f, 0xa4, 0x4a, 0xef, 0x94, 0xf1, 0xb9, 0xe3,
		0xce, 0x44, 0x8a, 0xe7, 0x72, 0x8f, 0x3d, 0x67, 0x10, 0xc8, 0x89, 0x6a, 0xc8, 0xb1, 0x4c, 0xaa,
		0xa1, 0xf5, 0x79, 0xec, 0x89, 0xb1, 0x13, 0xc8, 0x5b, 0x91, 0x48, 0x9f, 0x68, 0x8a, 0xcb, 0xee,
		0xf1, 0xd4, 0x3a, 0x77, 0xe9, 0x4f, 0x6d, 0xad, 0xba, 0x5f, 0xdb, 0xdf, 0xdd, 0xab, 0xee, 0xef,
		0x60, 0x8e, 0x33, 0x71, 0xd0, 0xc9, 0xff, 0xb5, 0x4b, 0x8d, 0x48, 0x67, 0x48, 0x0d, 0x84, 0x27,
		0x54, 0x92, 0x3b, 0x11, 0xcb, 0xc0, 0xb3, 0xf2, 0xb7, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41,
		0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x63, 0x6a, 0x90,
		0x0a, 0xf1, 0x4c, 0xae, 0xff, 0x05, 0xa4, 0x13, 0xa4, 0x13, 0xa4, 0x93, 0x13, 0xe9, 0x94, 0x53,
		0x33, 0x71, 0x00, 0xc4, 0x5b, 0x4e, 0xfb, 0x09, 0xfe, 0xcd, 0xc5, 0x23, 0x20, 0xcf, 0x3b, 0x1f,
		0x09, 0xbe, 0xa6, 0x26, 0x4d, 0x97, 0xa6, 0x60, 0x58, 0xea, 0x42, 0x61, 0x99, 0xe9, 0xba, 0x96,
		0xe3, 0x5f, 0xaa, 0x2e, 0xfe, 0x77, 0xfb, 0xcf, 0x2d, 0xb3, 0x7a, 0x99, 0x82, 0x4e, 0xd6, 0x65,
		0x1a, 0xf3, 0x90, 0x85, 0x2e, 0x56, 0x86, 0xc2, 0xae, 0x2f, 0x4e, 0x47, 0x1a, 0xc2, 0x50, 0x97,
		0x94, 0x85, 0x96, 0xd2, 0xf5, 0x3b, 0xbb, 0xf0, 0x3b, 0x2f, 0xf8, 0x1d, 0x28, 0xbf, 0xe5, 0xa4,
		0xfc, 0x56, 0xfe, 0xb5, 0x12, 0x7a, 0x85, 0x0f, 0x73, 0x37, 0x51, 0xb9, 0xfc, 0x7f, 0xec, 0xfd,
		0xed, 0x52, 0xdb, 0xc8, 0xf6, 0x05, 0x8c, 0x7f, 0xcf, 0x55, 0xa8, 0x54, 0x75, 0x2a, 0xc9, 0x39,
		0x23, 0x8c, 0xc1, 0x86, 0x90, 0xaa, 0xa9, 0x53, 0x4e, 0x30, 0x39, 0xfe, 0x8f, 0xc1, 0xfc, 0xb1,
		0x93, 0x99, 0xa9, 0xe0, 0x72, 0x09, 0xab, 0x01, 0xfd, 0x22, 0x24, 0x8f, 0xd4, 0x26, 0x70, 0xe6,
		0xe4, 0x7a, 0x9e, 0xfb, 0x78, 0xae, 0xec, 0x29, 0xc9, 0xb6, 0xb0, 0x79, 0x49, 0x02, 0x48, 0xdd,
		0x7b, 0xb7, 0x96, 0x3f, 0x30, 0x4e, 0x26, 0x89, 0xb6, 0xa4, 0xee, 0xb5, 0xd7, 0x5e, 0xbd, 0x5f,
		0xee, 0xa0, 0x47, 0xf6, 0x13, 0xb8, 0x7c, 0x17, 0x97, 0xb1, 0x5a, 0xc9, 0xae, 0x56, 0xfa, 0x5e,
		0x0b, 0x52, 0xca, 0x3d, 0x1b, 0x2b, 0x11, 0xd2, 0x91, 0xee, 0x59, 0xf1, 0x5a, 0xca, 0xe2, 0x1f,
		0x86, 0x98, 0x02, 0x31, 0x05, 0x62, 0x4a, 0x05, 0xc5, 0x14, 0xe9, 0x9e, 0x65, 0x8d, 0x6b, 0xa0,
		0xa5, 0x14, 0xfb, 0x5c, 0x0b, 0x3f, 0x19, 0xbd, 0xfd, 0x74, 0xb7, 0x4b, 0xf8, 0xa7, 0xcb, 0x39,
		0x29, 0x2d, 0xef, 0x69, 0xe7, 0x86, 0x97, 0x79, 0x72, 0x9a, 0x5f, 0xa4, 0xe4, 0x13, 0xd4, 0xfc,
		0x3a, 0xaa, 0x4e, 0xd9, 0x6e, 0xd6, 0x6c, 0xd9, 0xa7, 0x6d, 0x25, 0x49, 0x12, 0xab, 0x4b, 0xc0,
		0xbd, 0x52, 0xb7, 0x04, 0xca, 0x3e, 0x69, 0xad, 0xc2, 0x5a, 0x60, 0xd2, 0xfd, 0xbc, 0xaa, 0xa2,
		0xdc, 0xb9, 0xb8, 0x72, 0x0a, 0x2f, 0x21, 0x35, 0x44, 0x93, 0x5b, 0x0e, 0xc3, 0x6f, 0x47, 0xf7,
		0x1b, 0xdf, 0x5e, 0xff, 0xf3, 0xf5, 0xbf, 0x11, 0x66, 0x2b, 0x0f, 0xb3, 0xd1, 0xac, 0xf8, 0x31,
		0x2d, 0xe3, 0x6e, 0x37, 0x33, 0xab, 0xe5, 0x5f, 0x6b, 0x85, 0x74, 0x8c, 0xb1, 0xca, 0xee, 0x2f,
		0xd7, 0x4d, 0x6f, 0xa0, 0x95, 0xdb, 0x3f, 0xca, 0xbf, 0x8e, 0xe6, 0xaa, 0x81, 0xae, 0x96, 0x87,
		0xcf, 0xe8, 0xf1, 0x54, 0x50, 0xc6, 0x4c, 0xb1, 0x99, 0x32, 0x05, 0x89, 0x3a, 0xe8, 0xfd, 0x43,
		0x4e, 0xac, 0x41, 0xef, 0x1f, 0x3d, 0x22, 0xcc, 0x4d, 0x47, 0x49, 0xe1, 0x9e, 0xc6, 0xe2, 0xb4,
		0x88, 0x35, 0xb7, 0x20, 0x54, 0x05, 0xc8, 0x02, 0x29, 0x81, 0xca, 0xdc, 0xce, 0x5a, 0xde, 0xef,
		0x78, 0xbe, 0xec, 0x18, 0x42, 0xea, 0x6c, 0x6e, 0x4e, 0x61, 0x88, 0x5a, 0xc4, 0x18, 0x9e, 0xc2,
		0x9b, 0xa9, 0x6d, 0x00, 0x50, 0x01, 0xa8, 0x0c, 0x01, 0x15, 0xcd, 0xd4, 0x70, 0x4c, 0x56, 0xcc,
		0x3f, 0x8e, 0x63, 0x32, 0xc5, 0xc0, 0x51, 0xac, 0x8e, 0x80, 0x66, 0x6a, 0x04, 0xf4, 0x13, 0x34,
		0x53, 0x7b, 0xde, 0x3f, 0x8a, 0x66, 0x6a, 0xf0, 0x33, 0xf0, 0x33, 0xf0, 0x33, 0xcf, 0x5a, 0xb5,
		0x68, 0xa6, 0xf6, 0x53, 0xf7, 0x84, 0x66, 0x6a, 0x80, 0x5f, 0xc0, 0x2f, 0xe0, 0xb7, 0xe8, 0x55,
		0x8b, 0x7e, 0x16, 0x45, 0x2e, 0x4a, 0xf4, 0xb3, 0xf8, 0xa9, 0xb5, 0x87, 0x7e, 0x16, 0x0f, 0xbc,
		0x5a, 0xf4, 0xb3, 0x50, 0x0c, 0xd0, 0xc5, 0xff, 0x6b, 0x68, 0xa6, 0xf6, 0x73, 0x8e, 0x07, 0xcd,
		0xd4, 0x40, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41, 0x3e, 0x41,
		0x3e, 0x41, 0x3e, 0xef, 0x90, 0x4f, 0x34, 0x53, 0x03, 0xe9, 0x04, 0xe9, 0x04, 0xe9, 0x2c, 0x72,
		0xd5, 0xa2, 0x99, 0x5a, 0xd1, 0xde, 0x16, 0xcd, 0xd4, 0x7e, 0x78, 0x01, 0x34, 0x53, 0xfb, 0xb9,
		0xf7, 0x80, 0x66, 0x6a, 0xba, 0xc9, 0x5f, 0x49, 0x61, 0x0c, 0x9a, 0xa9, 0xe9, 0xc1, 0x1d, 0xb4,
		0xa7, 0x42, 0x33, 0x35, 0x66, 0xb8, 0x8c, 0xd5, 0x8a, 0x66, 0x6a, 0x90, 0x52, 0x8a, 0x94, 0x52,
		0xd0, 0x4c, 0x0d, 0x62, 0x0a, 0xc4, 0x14, 0x88, 0x29, 0x68, 0xa6, 0x86, 0x66, 0x6a, 0x68, 0xa6,
		0x76, 0xd7, 0x70, 0x34, 0x53, 0x7b, 0xd6, 0x9a, 0x45, 0x33, 0xb5, 0x47, 0x2e, 0x01, 0x34, 0x53,
		0x23, 0x44, 0xf4, 0xcb, 0xfd, 0x57, 0xd1, 0x4c, 0x0d, 0x9a, 0xdc, 0x6d, 0x4d, 0x0e, 0xcd, 0xd4,
		0x08, 0x86, 0xd9, 0x68, 0xa6, 0x56, 0x50, 0x33, 0xb5, 0x22, 0x1a, 0xc6, 0x58, 0xfa, 0x7a, 0xa9,
		0xf5, 0x33, 0xf3, 0x75, 0xf5, 0xfd, 0x79, 0xa1, 0x70, 0xf5, 0xa5, 0x51, 0xfc, 0xb3, 0x23, 0x78,
		0xbb, 0xeb, 0x27, 0xb2, 0x25, 0xe5, 0xf3, 0xfa, 0x9a, 0xa4, 0x0c, 0xbc, 0x1d, 0x88, 0x34, 0x20,
		0x7f, 0x26, 0x4b, 0x49, 0x89, 0xdc, 0xd2, 0xbf, 0x54, 0x7f, 0xd3, 0x68, 0x6c, 0x6d, 0x37, 0x1a,
		0xeb, 0xdb, 0x9b, 0xdb, 0xeb, 0x3b, 0xcd, 0x66, 0x7d, 0xab, 0xfe, 0x0c, 0xce, 0x65, 0xf7, 0x62,
		0x4f, 0xc4, 0xc2, 0x7b, 0x97, 0x3e, 0xb7, 0x70, 0x1a, 0x04, 0x45, 0xfc, 0x53, 0x1f, 0x13, 0x11,
		0x3f, 0x8b, 0x2e, 0x3d, 0xf5, 0xf5, 0x17, 0x04, 0x3a, 0x3a, 0xc1, 0xc6, 0x7e, 0x56, 0x9f, 0x2c,
		0x0d, 0xf0, 0xf2, 0x34, 0x60, 0x79, 0x3c, 0x2c, 0x3c, 0xee, 0x6f, 0x3c, 0x72, 0x05, 0xd9, 0xe2,
		0x4a, 0xc6, 0xae, 0x33, 0x4d, 0x1f, 0xc0, 0x49, 0xf0, 0x34, 0x65, 0xc9, 0xfe, 0x7a, 0x2e, 0x9e,
		0xce, 0xb1, 0x9e, 0xb1, 0x5a, 0x17, 0x04, 0x35, 0xef, 0xf4, 0xe6, 0x7b, 0x22, 0x94, 0xfe, 0xa9,
		0x2f, 0x62, 0xeb, 0x57, 0xeb, 0x65, 0x34, 0x76, 0x26, 0x51, 0x90, 0x69, 0x5a, 0xc9, 0xdb, 0x6e,
		0xef, 0x7d, 0xab, 0x3b, 0x6a, 0x7d, 0xf8, 0x70, 0xd4, 0xfe, 0xd0, 0x1a, 0xb4, 0x5f, 0x3e, 0x67,
		0xb9, 0x15, 0x24, 0xc5, 0x2e, 0x4b, 0xaf, 0xd9, 0x23, 0x7c, 0x26, 0xf3, 0x28, 0x5a, 0x68, 0x5d,
		0x11, 0x56, 0x9f, 0xf4, 0x8c, 0xb5, 0x34, 0xcd, 0xdb, 0x2d, 0xb0, 0x9f, 0x56, 0xbe, 0xc4, 0x3a,
		0xe1, 0x38, 0x98, 0x7a, 0xc2, 0xca, 0xe1, 0xca, 0x8a, 0xa3, 0xa9, 0x14, 0xd6, 0xc4, 0x8d, 0xdd,
		0x0b, 0x21, 0x45, 0x9c, 0x58, 0x51, 0x18, 0x5c, 0x5b, 0xe9, 0x7b, 0xb4, 0xe4, 0xb9, 0x38, 0x0e,
		0x17, 0x90, 0x67, 0xf9, 0x89, 0x95, 0x08, 0x69, 0xc9, 0xc8, 0x2a, 0x02, 0xeb, 0xac, 0x82, 0xcf,
		0x02, 0x96, 0x17, 0x61, 0xb1, 0xcd, 0xc2, 0x4a, 0x11, 0xfe, 0x57, 0xd6, 0x64, 0xc1, 0x2f, 0x85,
		0x17, 0x51, 0x7c, 0x51, 0x6e, 0x78, 0xf6, 0x58, 0x3f, 0xf2, 0x4c, 0x06, 0xa2, 0x9e, 0x79, 0x3c,
		0x61, 0x85, 0xab, 0xe4, 0x19, 0x8f, 0x5b, 0x8d, 0x3f, 0xbf, 0x1a, 0x1e, 0xf1, 0x5e, 0xed, 0xf9,
		0x8d, 0x3e, 0xee, 0x6d, 0xe6, 0x90, 0x99, 0xfd, 0xed, 0x47, 0xae, 0xa2, 0xa7, 0x9d, 0x1a, 0x3f,
		0xf9, 0x74, 0xf8, 0x39, 0xa7, 0xc0, 0xcb, 0xa7, 0xbd, 0xa1, 0x90, 0xe9, 0xd2, 0x7b, 0xca, 0x92,
		0x7a, 0x26, 0x94, 0x17, 0x76, 0x7c, 0x5b, 0x18, 0x5a, 0xdf, 0x3e, 0x8e, 0x5d, 0x3c, 0x1b, 0x62,
		0xbc, 0xf7, 0xc9, 0xe7, 0xa8, 0x05, 0xf4, 0x3f, 0x7e, 0x4e, 0xbf, 0xe3, 0x7b, 0xfa, 0x1b, 0x67,
		0x1b, 0x8d, 0x00, 0x5c, 0x44, 0xc9, 0xe4, 0xf4, 0x72, 0xe3, 0xe9, 0x80, 0x31, 0xff, 0xfb, 0x4f,
		0x83, 0x8c, 0x3a, 0x33, 0xc8, 0x78, 0xd2, 0xcd, 0x56, 0x03, 0x31, 0xe6, 0x8f, 0x86, 0x18, 0x60,
		0x3c, 0xb5, 0xdf, 0xaf, 0xed, 0xc6, 0xc2, 0x4d, 0x9e, 0xfe, 0xba, 0x16, 0x6b, 0x66, 0xf6, 0xcf,
		0x3c, 0x55, 0x1e, 0x7c, 0x56, 0xd3, 0xee, 0x67, 0x67, 0x5f, 0x15, 0x91, 0x6d, 0x55, 0xc8, 0xe6,
		0x29, 0x33, 0x84, 0x2f, 0x66, 0x5e, 0x45, 0xa9, 0x41, 0xfc, 0x33, 0x36, 0x97, 0x1e, 0x59, 0xfb,
		0xb9, 0x4d, 0xb6, 0xb3, 0x5d, 0x53, 0x9c, 0x0a, 0x90, 0xfd, 0x6b, 0xc4, 0xfa, 0xe7, 0x13, 0x1d,
		0x48, 0xf2, 0xec, 0x2d, 0x5a, 0x86, 0xd8, 0x61, 0x19, 0xd1, 0x3f, 0xff, 0xb9, 0x5b, 0xf8, 0xf9,
		0x92, 0x85, 0x45, 0xa9, 0x7f, 0xfe, 0x78, 0xb1, 0x13, 0x0a, 0x4e, 0x88, 0x2e, 0x6c, 0x92, 0x54,
		0x81, 0xdb, 0xbe, 0xf0, 0xed, 0x5f, 0x06, 0x0c, 0x94, 0x0a, 0x07, 0x65, 0xc1, 0x42, 0xe9, 0xf0,
		0x50, 0x3a, 0x4c, 0x94, 0x0d, 0x17, 0xc5, 0xc0, 0x46, 0x41, 0xf0, 0x51, 0x38, 0x8c, 0xe4, 0xff,
		0xe0, 0xcd, 0xf9, 0x46, 0xf1, 0x6b, 0x2b, 0x2f, 0x73, 0xbc, 0xb9, 0x46, 0xc1, 0xef, 0xbe, 0xd8,
		0xb2, 0x8b, 0xd2, 0xe0, 0xa6, 0x4c, 0xd8, 0x51, 0x02, 0x3f, 0x65, 0xc3, 0x90, 0x32, 0x38, 0x52,
		0x06, 0x4b, 0xaa, 0xe0, 0xa9, 0x58, 0x98, 0x2a, 0x18, 0xae, 0x9e, 0x2f, 0x3f, 0x3e, 0x4a, 0x4d,
		0x73, 0xd2, 0x80, 0xc5, 0x29, 0x0d, 0x6d, 0xac, 0x92, 0x4a, 0x3c, 0x6e, 0x3f, 0x25, 0x76, 0x45,
		0x08, 0xa5, 0x97, 0x7e, 0xdc, 0x7e, 0xfa, 0xdb, 0x25, 0x5e, 0xa2, 0xdc, 0x52, 0x90, 0xf2, 0xdf,
		0x46, 0x7e, 0x23, 0x2a, 0x4a, 0x43, 0xf2, 0x8b, 0x29, 0x2a, 0x11, 0xc9, 0xaf, 0xa7, 0xba, 0x3c,
		0xe0, 0x66, 0xad, 0xab, 0x2a, 0x13, 0x28, 0x09, 0x8a, 0xef, 0x5f, 0x2a, 0x0a, 0x4a, 0x48, 0xee,
		0x2c, 0x15, 0x55, 0xa5, 0x24, 0x55, 0x5c, 0x33, 0x2f, 0x78, 0xfe, 0xeb, 0xc3, 0x17, 0x8c, 0x76,
		0x90, 0x02, 0x87, 0xea, 0x45, 0x52, 0x0a, 0xcf, 0xf9, 0x6b, 0xea, 0x7a, 0x0a, 0xbc, 0x6a, 0x19,
		0x35, 0x29, 0x37, 0x91, 0x4f, 0xc9, 0xb5, 0x29, 0xf9, 0x85, 0x1e, 0xec, 0x90, 0x34, 0xef, 0x71,
		0x74, 0x4f, 0xbf, 0xa3, 0xe3, 0xe3, 0xb5, 0xd7, 0x7f, 0x6f, 0x7e, 0x7b, 0xfc, 0x5f, 0xb4, 0xb9,
		0xed, 0x84, 0xca, 0x14, 0xe7, 0xd0, 0x52, 0x6d, 0x0a, 0x2e, 0x92, 0xc9, 0xff, 0xdd, 0xd2, 0xb3,
		0xc8, 0x66, 0xd1, 0x6a, 0x2d, 0x3b, 0x8c, 0xcd, 0x7e, 0xd6, 0x0a, 0x95, 0x89, 0xad, 0xb2, 0xb3,
		0xcc, 0x7a, 0x99, 0xfd, 0xa3, 0x56, 0x6a, 0x7f, 0xf6, 0x73, 0x34, 0x97, 0x76, 0x0c, 0x6a, 0x91,
		0x52, 0x82, 0x82, 0x57, 0x9e, 0x72, 0x57, 0xf5, 0x46, 0x29, 0x38, 0x18, 0x50, 0xa6, 0xc0, 0x55,
		0xeb, 0x60, 0xa0, 0xbc, 0x46, 0x29, 0x4f, 0x4f, 0xfc, 0xfb, 0x21, 0xe1, 0x2c, 0x72, 0xd8, 0xc1,
		0xdd, 0x44, 0xc1, 0x25, 0xf0, 0x32, 0x09, 0xee, 0x43, 0x29, 0xe2, 0x53, 0x77, 0x2c, 0x92, 0x12,
		0xe0, 0xfe, 0xe6, 0xdf, 0xc6, 0x39, 0x30, 0xe0, 0x1e, 0x70, 0x4f, 0x16, 0xee, 0x8b, 0x3f, 0x07,
		0x5e, 0x6c, 0xfd, 0x12, 0x8f, 0x81, 0xf3, 0x4b, 0x94, 0x73, 0x0a, 0x5c, 0xc7, 0x29, 0x30, 0x4e,
		0x81, 0x69, 0x81, 0x92, 0x2a, 0x70, 0x2a, 0x47, 0xe0, 0x29, 0xfa, 0x14, 0xb8, 0x68, 0xd0, 0xca,
		0xff, 0xe1, 0x82, 0x73, 0xe2, 0x1e, 0xdc, 0x54, 0x85, 0x8b, 0x1f, 0x0a, 0x60, 0xac, 0x74, 0x38,
		0x53, 0x01, 0x6b, 0x4a, 0xe1, 0x4d, 0x15, 0xcc, 0x29, 0x87, 0x3b, 0xe5, 0xb0, 0xa7, 0x1a, 0xfe,
		0xca, 0x81, 0xc1, 0x92, 0xe0, 0xb0, 0x74, 0x58, 0xcc, 0x2f, 0xe0, 0x4e, 0xe5, 0x79, 0x1a, 0x0a,
		0x8f, 0x33, 0x09, 0x7a, 0xd6, 0xf5, 0xb4, 0xf4, 0x45, 0x9d, 0x17, 0x11, 0xdc, 0x73, 0xf1, 0x92,
		0x57, 0x5b, 0x39, 0x59, 0x81, 0xca, 0x01, 0x55, 0x25, 0xb0, 0x6a, 0x01, 0x58, 0xd5, 0x40, 0xab,
		0x0d, 0x70, 0xb5, 0x01, 0xaf, 0x2e, 0x00, 0x2e, 0x17, 0x88, 0x4b, 0x06, 0xe4, 0xfc, 0xa1, 0x0d,
		0x54, 0x00, 0xe5, 0xca, 0xae, 0x2b, 0xad, 0xef, 0xe4, 0x83, 0x64, 0xf3, 0x0d, 0xd3, 0x54, 0x91,
		0x32, 0x3b, 0xea, 0x9e, 0xfb, 0x9e, 0x58, 0x9c, 0xa0, 0xaa, 0x73, 0x94, 0x2b, 0x57, 0x85, 0x87,
		0x84, 0x87, 0x84, 0x87, 0x84, 0x87, 0x84, 0x87, 0xbc, 0xb5, 0xeb, 0x4e, 0xa2, 0x28, 0x10, 0x6e,
		0xa8, 0xd2, 0x45, 0xd6, 0x59, 0xbf, 0xa2, 0x02, 0x3a, 0x1e, 0x3e, 0xfa, 0x9a, 0xb1, 0x38, 0x15,
		0xb1, 0x08, 0xc7, 0xe5, 0xe7, 0xd1, 0x2f, 0x3e, 0x6a, 0x60, 0x71, 0x65, 0x25, 0x1e, 0xed, 0xbd,
		0xdf, 0x7a, 0xb3, 0xb5, 0x6e, 0x39, 0xd6, 0x7f, 0x7c, 0xcf, 0x0f, 0xcf, 0xac, 0x41, 0xec, 0x86,
		0x89, 0x2f, 0x9d, 0x5e, 0x18, 0x5c, 0x5b, 0xf3, 0xe4, 0xa4, 0xc4, 0xf2, 0x43, 0xab, 0xd7, 0xdf,
		0xdb, 0x53, 0x84, 0x9f, 0x3a, 0x9c, 0xc5, 0x7d, 0x4e, 0xe3, 0x66, 0x05, 0xfc, 0xa2, 0xd6, 0x06,
		0x5d, 0xfe, 0xe3, 0x5e, 0x3f, 0xf2, 0xc8, 0x25, 0xa2, 0xcc, 0xd0, 0x6f, 0x2f, 0xcc, 0xb8, 0xca,
		0x10, 0xc1, 0xcb, 0x9d, 0xf5, 0xe7, 0x7b, 0xea, 0x42, 0x16, 0xdf, 0x43, 0xa0, 0x82, 0x40, 0x05,
		0x81, 0x0a, 0x02, 0x15, 0x04, 0x2a, 0x77, 0xb0, 0x71, 0x91, 0xed, 0xe2, 0x94, 0x8e, 0x92, 0x16,
		0x04, 0xbd, 0xef, 0x3f, 0x9b, 0x0b, 0x21, 0x63, 0x7f, 0xac, 0xce, 0x2f, 0xce, 0xaf, 0x07, 0xdf,
		0x08, 0xdf, 0x08, 0xdf, 0x08, 0xdf, 0x08, 0xdf, 0x78, 0x7b, 0xd7, 0x25, 0x93, 0x53, 0x47, 0x09,
		0x48, 0x2e, 0x03, 0xe5, 0x96, 0x82, 0x4b, 0xa9, 0xe9, 0x1e, 0xa1, 0x41, 0xf5, 0x52, 0xd9, 0x4d,
		0x22, 0xbf, 0xa8, 0xe2, 0xae, 0x12, 0xf9, 0x75, 0x75, 0x75, 0x0a, 0xb8, 0xd9, 0x28, 0xaa, 0x3b,
		0x06, 0x28, 0xc2, 0x9a, 0xd5, 0x25, 0xa5, 0xb0, 0xeb, 0xc4, 0x9d, 0x25, 0xb5, 0xd5, 0x6c, 0x6e,
		0x36, 0xb1, 0xac, 0x54, 0x2d, 0x2b, 0x08, 0x8e, 0xe6, 0x06, 0x57, 0xd3, 0x40, 0xfa, 0xb3, 0xd6,
		0x5b, 0xae, 0xf7, 0x7f, 0xee, 0x58, 0x84, 0xe3, 0x6b, 0x67, 0x12, 0xfb, 0x17, 0x6e, 0x7c, 0xad,
		0x30, 0xe4, 0xfa, 0x9e, 0x15, 0x25, 0x13, 0xa8, 0x5d, 0x71, 0xea, 0x4e, 0x03, 0xa9, 0xc4, 0xed,
		0xdb, 0x29, 0x9b, 0x2e, 0x97, 0xd1, 0x0e, 0x11, 0xb7, 0x22, 0x6e, 0x45, 0xdc, 0x8a, 0xb8, 0x15,
		0x71, 0xeb, 0xad, 0x5d, 0x67, 0x5e, 0xf2, 0x09, 0x4b, 0xc6, 0xb1, 0xe8, 0x5c, 0xa3, 0xb6, 0x90,
		0x61, 0xe5, 0xaa, 0x70, 0x91, 0x70, 0x91, 0x70, 0x91, 0x70, 0x91, 0x70, 0x91, 0xb7, 0x76, 0xdd,
		0xac, 0xe9, 0x8a, 0xbc, 0x2e, 0xb6, 0x63, 0xcc, 0x0f, 0xdd, 0xa4, 0x02, 0x29, 0xc7, 0xee, 0xcc,
		0x6f, 0xed, 0x9d, 0x9b, 0x28, 0xdc, 0xe9, 0x8b, 0x07, 0xdb, 0xeb, 0x1f, 0xee, 0x8d, 0x0e, 0xda,
		0x83, 0xdf, 0x7b, 0x47, 0xbf, 0x8d, 0x06, 0x7f, 0x1e, 0xb6, 0x55, 0xed, 0xf8, 0x4c, 0x31, 0x4b,
		0x94, 0x69, 0xda, 0x96, 0x52, 0x5d, 0x7b, 0xe5, 0x11, 0xbf, 0x3b, 0xea, 0xb5, 0x76, 0xdf, 0xb7,
		0xfa, 0x83, 0xc5, 0x73, 0xb6, 0x4d, 0xd4, 0x5d, 0x35, 0x3d, 0xdc, 0x83, 0xde, 0xc1, 0x08, 0x0f,
		0xb8, 0xc4, 0x07, 0x7c, 0xd8, 0xeb, 0x1c, 0x0c, 0x46, 0x83, 0xde, 0x68, 0xf6, 0x45, 0xfd, 0x13,
		0x56, 0x72, 0xa5, 0x21, 0x9a, 0x27, 0x6b, 0x88, 0xb8, 0x26, 0x6e, 0x92, 0xcc, 0xce, 0x0d, 0x14,
		0x05, 0x5b, 0x8b, 0x0b, 0x22, 0xce, 0x42, 0x9c, 0x85, 0x38, 0x0b, 0x71, 0x16, 0xe2, 0xac, 0x5b,
		0xbb, 0x0e, 0x52, 0x24, 0x0d, 0xc7, 0x18, 0xfb, 0x51, 0xec, 0x4b, 0x85, 0x07, 0x9d, 0xf9, 0x15,
		0xe1, 0x1a, 0xe1, 0x1a, 0xe1, 0x1a, 0xe1, 0x1a, 0xe1, 0x1a, 0x6f, 0xed, 0xba, 0xa9, 0x1f, 0xca,
		0x37, 0x0a, 0x1d, 0x63, 0x13, 0x79, 0xa5, 0x4f, 0xbf, 0x31, 0xe4, 0x95, 0x2a, 0xd5, 0x8a, 0x90,
		0x57, 0x5a, 0xf2, 0x92, 0xda, 0x68, 0x22, 0xab, 0x54, 0xd9, 0xa2, 0x42, 0x56, 0xa9, 0xde, 0xc0,
		0x8a, 0x55, 0x9b, 0xcd, 0x92, 0x86, 0x30, 0xdd, 0xb9, 0x8e, 0x86, 0xa1, 0x4c, 0x37, 0x73, 0x1b,
		0x6e, 0xbe, 0xd6, 0x4a, 0x6d, 0x56, 0x6c, 0xa9, 0x9f, 0xdc, 0xd4, 0xc9, 0x6f, 0xf2, 0xe6, 0x6b,
		0xa1, 0xe3, 0x9c, 0xca, 0x5f, 0xde, 0x25, 0x2c, 0x6d, 0x5b, 0x84, 0xee, 0x49, 0x20, 0x9c, 0x93,
		0x53, 0xaf, 0xfc, 0xfe, 0xd7, 0x4b, 0xd7, 0x42, 0x0f, 0x6c, 0x5d, 0x2a, 0xc3, 0xb2, 0xba, 0x50,
		0xde, 0x9b, 0xb0, 0xd0, 0x00, 0xbb, 0x44, 0xe9, 0x20, 0x7d, 0x6f, 0x70, 0xcb, 0x96, 0x92, 0xee,
		0xd7, 0x25, 0x0f, 0x07, 0xb8, 0xb3, 0x2d, 0x4b, 0xf7, 0xbb, 0x0a, 0x80, 0x52, 0x19, 0x60, 0xaa,
		0x04, 0x4e, 0xf5, 0x00, 0xaa, 0x1a, 0x48, 0xb5, 0x01, 0xaa, 0x36, 0x60, 0xd5, 0x02, 0xb0, 0x6a,
		0x22, 0xc3, 0xb2, 0x85, 0xd9, 0xb2, 0x81, 0xf7, 0x16, 0x43, 0xf5, 0xd4, 0xa7, 0x4c, 0x2e, 0x2e,
		0xac, 0x68, 0x09, 0xaa, 0x39, 0x31, 0x53, 0x0e, 0xcd, 0x3a, 0x20, 0x5a, 0x1f, 0x54, 0xeb, 0x82,
		0x6c, 0xed, 0xd0, 0xad, 0x1d, 0xc2, 0xb5, 0x42, 0xb9, 0x1a, 0x48, 0x57, 0x04, 0xed, 0xf9, 0x93,
		0x54, 0x76, 0xf6, 0x76, 0x67, 0xbf, 0xaa, 0x4b, 0x4f, 0xb9, 0xc3, 0x88, 0xeb, 0x86, 0xa8, 0xc2,
		0xbc, 0xd9, 0x85, 0x22, 0xb5, 0x35, 0xbf, 0x1e, 0x15, 0xd5, 0xf5, 0x46, 0x22, 0xab, 0x29, 0x09,
		0x04, 0x2d, 0x22, 0x42, 0x6c, 0x3b, 0xbb, 0xef, 0x77, 0xa7, 0x5e, 0xa9, 0x92, 0x6c, 0xf9, 0x7b,
		0xe3, 0x5b, 0xa9, 0x7a, 0xb9, 0x2b, 0x15, 0xe6, 0x50, 0xcf, 0x2e, 0x67, 0x98, 0x0e, 0xb1, 0x01,
		0x1d, 0x02, 0x3a, 0x04, 0x74, 0x08, 0xe8, 0x10, 0xd0, 0x21, 0xa0, 0x43, 0x40, 0x87, 0x80, 0x0e,
		0x01, 0x1d, 0x02, 0x3a, 0x04, 0x74, 0x08, 0xb0, 0x0b, 0xe8, 0x10, 0x0f, 0xe9, 0x10, 0x2a, 0xe2,
		0x40, 0x7a, 0x32, 0x44, 0x3f, 0xbb, 0x6b, 0x64, 0x56, 0x96, 0xbf, 0xd7, 0x2a, 0x97, 0x59, 0x59,
		0x7a, 0x1a, 0x1c, 0xb9, 0xdd, 0x54, 0xe5, 0x04, 0x4b, 0x5f, 0x41, 0x62, 0xa5, 0x5f, 0x76, 0x42,
		0xe5, 0x3a, 0x12, 0x2a, 0x7f, 0x2a, 0xb8, 0x2b, 0xbd, 0x5c, 0x13, 0x39, 0x95, 0x65, 0xc5, 0x67,
		0x65, 0x97, 0x63, 0xf2, 0xf2, 0xc9, 0xa5, 0x87, 0x5c, 0xf9, 0xae, 0x09, 0x84, 0x7b, 0x5a, 0x6e,
		0xb7, 0xb7, 0x3c, 0xa4, 0xda, 0x2e, 0xf1, 0x1a, 0x87, 0x73, 0x5a, 0xb1, 0xb6, 0x36, 0x3f, 0xb8,
		0xab, 0xf9, 0xd5, 0x76, 0x7b, 0xf9, 0xfc, 0xb2, 0xf4, 0xe5, 0x96, 0xef, 0x01, 0x57, 0x2e, 0x87,
		0xea, 0x02, 0x0a, 0xce, 0xd0, 0x3f, 0x85, 0x23, 0x64, 0xe8, 0x08, 0xfd, 0x53, 0x38, 0xc1, 0xd9,
		0x83, 0x41, 0x6d, 0x01, 0x41, 0x98, 0x54, 0x06, 0x97, 0x2a, 0x61, 0x53, 0x39, 0x7c, 0xaa, 0x86,
		0x51, 0x6d, 0x70, 0xaa, 0x0d, 0x56, 0x75, 0xc0, 0x6b, 0xb9, 0x30, 0x5b, 0x32, 0xdc, 0x2a, 0x83,
		0xdd, 0xbb, 0x1c, 0x55, 0xfd, 0x99, 0xfe, 0xcd, 0xa5, 0x71, 0xaa, 0xcf, 0x0d, 0xa4, 0xb5, 0x81,
		0xb5, 0x2e, 0xd0, 0xd6, 0x0e, 0xde, 0xda, 0x41, 0x5c, 0x27, 0x98, 0xab, 0x01, 0x75, 0x45, 0xe0,
		0xae, 0x4e, 0x60, 0xd2, 0x28, 0x38, 0xe9, 0x10, 0xa0, 0x1e, 0x14, 0xa4, 0x6a, 0xd9, 0x32, 0x7d,
		0xbb, 0x74, 0x12, 0x75, 0xeb, 0x37, 0xe6, 0xbf, 0xce, 0x4e, 0x8a, 0x4c, 0xc9, 0x39, 0x50, 0x71,
		0x5a, 0x3d, 0x3d, 0xd1, 0xc8, 0x1f, 0x56, 0xae, 0x0e, 0x0a, 0x01, 0x0a, 0x01, 0x0a, 0x01, 0x0a,
		0x01, 0x0a, 0x01, 0x0a, 0xa1, 0x85, 0x42, 0x7c, 0xbe, 0xa1, 0x10, 0xbf, 0x8e, 0xa7, 0x71, 0x2c,
		0x42, 0xf9, 0xea, 0x75, 0x6d, 0x6d, 0xed, 0x26, 0xe9, 0x65, 0x38, 0xff, 0x2b, 0xcb, 0x7e, 0x2b,
		0xb9, 0xe7, 0xf7, 0xf2, 0x7f, 0xd9, 0x13, 0x57, 0x36, 0x32, 0x20, 0x09, 0xa8, 0x31, 0xed, 0x2b,
		0xa9, 0x66, 0x7a, 0x93, 0x7a, 0x01, 0x32, 0x1a, 0x3b, 0xe2, 0x4a, 0xbe, 0x95, 0x22, 0x10, 0x17,
		0x42, 0xc6, 0xd7, 0x4e, 0x14, 0x3a, 0xe3, 0xf3, 0xac, 0x55, 0xae, 0x16, 0x51, 0x32, 0x6b, 0x7f,
		0xa9, 0x41, 0x95, 0xe4, 0x2e, 0x48, 0x0e, 0x91, 0x04, 0x5c, 0x4a, 0xa2, 0xe2, 0xca, 0xa1, 0x7a,
		0xb5, 0xea, 0x91, 0xf3, 0x6f, 0x47, 0xe2, 0x14, 0x25, 0xc9, 0xdf, 0x79, 0x53, 0x28, 0x49, 0x7e,
		0x6e, 0x78, 0xbb, 0x81, 0xe3, 0x4b, 0x36, 0x61, 0x2c, 0x8e, 0x2f, 0x71, 0x7c, 0xf9, 0xa3, 0x07,
		0x86, 0xe3, 0xcb, 0xf2, 0x40, 0x19, 0xda, 0x23, 0x63, 0xb0, 0xd6, 0x05, 0xda, 0xda, 0xc1, 0x5b,
		0x3b, 0x88, 0xeb, 0x04, 0x73, 0x75, 0x3a, 0x8b, 0x05, 0xed, 0xb1, 0x5c, 0x46, 0x8c, 0xe3, 0x4b,
		0x0b, 0xc7, 0x97, 0xc5, 0x04, 0x72, 0x38, 0xbe, 0x04, 0x85, 0x00, 0x85, 0x00, 0x85, 0x00, 0x85,
		0x00, 0x85, 0xd0, 0x4e, 0x21, 0x70, 0x7c, 0x69, 0xae, 0x1a, 0x83, 0xb3, 0x9b, 0x58, 0x9c, 0x56,
		0xaa, 0x87, 0xcb, 0xca, 0xd1, 0x0d, 0xda, 0xb8, 0xa8, 0xda, 0x71, 0x95, 0x6b, 0xe3, 0xa2, 0xa2,
		0xe4, 0x98, 0xe2, 0x9e, 0xaa, 0x72, 0x55, 0x7b, 0x90, 0xb8, 0xce, 0xa9, 0x1f, 0x48, 0x11, 0x97,
		0x5f, 0xd2, 0xbe, 0x74, 0x2d, 0xd4, 0xb3, 0xeb, 0x8a, 0x78, 0xd1, 0xdc, 0x85, 0x65, 0xd4, 0x8a,
		0xe6, 0x2e, 0xdf, 0x7b, 0x38, 0xa8, 0x6b, 0x27, 0x08, 0x97, 0xca, 0x85, 0x43, 0x5d, 0x89, 0x21,
		0xa5, 0xc3, 0xa8, 0x2e, 0x91, 0x10, 0xc9, 0x21, 0x65, 0xc3, 0xac, 0x19, 0x92, 0x84, 0xb2, 0x04,
		0x11, 0x37, 0x08, 0xd4, 0x1f, 0xed, 0xa4, 0x17, 0xc5, 0x89, 0x0e, 0x37, 0x80, 0xd6, 0x0a, 0xd4,
		0xba, 0x00, 0x5b, 0x3b, 0x70, 0x6b, 0x07, 0x70, 0xdd, 0x40, 0xae, 0x06, 0xd0, 0x15, 0x01, 0x7b,
		0xfe, 0x30, 0xd1, 0xaf, 0x9e, 0xf1, 0x42, 0xc1, 0x71, 0xc7, 0x63, 0xae, 0x47, 0x45, 0x8c, 0xbd,
		0x11, 0xcb, 0xaa, 0x55, 0xa7, 0xd2, 0x4d, 0xdc, 0xbd, 0xec, 0xb6, 0x51, 0xa4, 0xf2, 0x9d, 0xd7,
		0x84, 0x22, 0x95, 0xe7, 0x52, 0xde, 0x0d, 0x68, 0x11, 0xd0, 0x22, 0xa0, 0x45, 0x40, 0x8b, 0x80,
		0x16, 0x01, 0x2d, 0x02, 0x5a, 0x04, 0xb4, 0x08, 0x68, 0x11, 0xd0, 0x22, 0xa0, 0x45, 0x80, 0x5b,
		0x40, 0x8b, 0xf8, 0x9e, 0x16, 0x51, 0xa5, 0xbc, 0xcb, 0x1b, 0x29, 0x02, 0x49, 0x97, 0xaa, 0xf6,
		0x5a, 0xe5, 0x92, 0x2e, 0x4b, 0x4f, 0x8a, 0x23, 0xb7, 0x9b, 0xaa, 0x9c, 0x6e, 0x79, 0x31, 0x09,
		0x92, 0xf2, 0x13, 0x2d, 0xb3, 0xab, 0x20, 0xc5, 0x52, 0x57, 0xd8, 0x87, 0x14, 0x4b, 0x96, 0x61,
		0x1b, 0x52, 0x2c, 0x75, 0xea, 0x6a, 0x48, 0xb1, 0xe4, 0xa0, 0x9e, 0xe1, 0x58, 0xc3, 0x14, 0x75,
		0x0c, 0xc7, 0x1a, 0xac, 0xa4, 0x07, 0x65, 0xc7, 0x1a, 0x32, 0x76, 0x4f, 0x4f, 0xfd, 0xb1, 0x23,
		0xc2, 0x33, 0x3f, 0x14, 0x22, 0xf6, 0xc3, 0x33, 0xe7, 0x42, 0xc8, 0xd8, 0x1f, 0xab, 0x3f, 0xed,
		0xf8, 0x8e, 0x2d, 0x38, 0x04, 0xe1, 0x06, 0xe7, 0x5a, 0x61, 0x5d, 0x17, 0xbc, 0x6b, 0x87, 0x79,
		0xed, 0x70, 0xaf, 0x1b, 0xf6, 0xd5, 0xc0, 0xbf, 0x22, 0x37, 0x90, 0x3f, 0x4c, 0x7d, 0x87, 0x20,
		0x53, 0x3f, 0x94, 0x9b, 0x1b, 0x1a, 0xce, 0x40, 0x54, 0x36, 0xda, 0x38, 0xca, 0x5a, 0xa6, 0xab,
		0xe8, 0x11, 0xbf, 0xfc, 0x51, 0x0b, 0x49, 0xd9, 0x8d, 0xee, 0xfb, 0xa1, 0x72, 0x2c, 0xcc, 0x2f,
		0xfe, 0xc9, 0x0d, 0xa6, 0x42, 0x9d, 0xb3, 0xbb, 0x73, 0xfd, 0xbd, 0xd8, 0x1d, 0x4b, 0x3f, 0x0a,
		0x77, 0xfd, 0x33, 0x3f, 0x1b, 0x09, 0xa0, 0xcb, 0x90, 0x03, 0x71, 0xe6, 0x4a, 0xff, 0x52, 0x2c,
		0x3a, 0xe6, 0x2b, 0xb7, 0xe2, 0xdb, 0x2f, 0x1a, 0x96, 0x9e, 0x7b, 0xa5, 0x7f, 0xe9, 0x35, 0x36,
		0x76, 0x1a, 0x3b, 0x5b, 0xdb, 0x1b, 0x3b, 0x4d, 0xac, 0x41, 0xdd, 0x6b, 0xf0, 0x85, 0x99, 0x57,
		0x1b, 0x1a, 0x45, 0x3c, 0xc4, 0x95, 0x8c, 0x5d, 0x67, 0x1a, 0x26, 0xd2, 0x3d, 0x09, 0x14, 0x53,
		0x90, 0x58, 0x9c, 0x8a, 0x58, 0x84, 0xe3, 0x4a, 0x78, 0xe6, 0x05, 0xdf, 0x3a, 0xda, 0x7b, 0xbf,
		0xb9, 0xb5, 0xb9, 0xfe, 0x8b, 0xf5, 0xff, 0xfe, 0x3f, 0x1b, 0x6b, 0xcd, 0xb5, 0xa6, 0xad, 0x01,
		0xaa, 0x35, 0x05, 0x4d, 0xf7, 0x05, 0x4f, 0x37, 0x6b, 0x40, 0x13, 0x4e, 0xea, 0x8e, 0xa3, 0xee,
		0x8d, 0xa7, 0xee, 0x2c, 0x12, 0xa0, 0x37, 0x2f, 0xf4, 0x86, 0xfa, 0xf9, 0xfd, 0xb5, 0x5e, 0xd1,
		0xc4, 0xab, 0x8b, 0x49, 0x90, 0x54, 0xab, 0xfc, 0x6b, 0x7f, 0x12, 0x24, 0xa8, 0xfc, 0x7a, 0xf0,
		0x0d, 0xf9, 0x67, 0x13, 0x27, 0xf0, 0x26, 0x4e, 0x72, 0x1d, 0x8e, 0xd5, 0x1d, 0x95, 0xae, 0x5c,
		0x15, 0x07, 0xa6, 0x8f, 0xba, 0x10, 0x0e, 0x4c, 0xcb, 0x23, 0x83, 0x38, 0x30, 0x05, 0x65, 0x78,
		0xe8, 0xa1, 0x29, 0x3b, 0x30, 0x55, 0x94, 0xb7, 0x72, 0x67, 0x93, 0x2b, 0xa3, 0x05, 0x0a, 0x61,
		0x59, 0x39, 0x3c, 0xeb, 0x80, 0x69, 0xad, 0x70, 0xad, 0x3b, 0xa6, 0xc7, 0x41, 0x28, 0x0e, 0x42,
		0x39, 0xc2, 0x7c, 0x7e, 0x41, 0x11, 0xba, 0x27, 0x81, 0xf0, 0xd4, 0x6f, 0x9c, 0x05, 0x5a, 0x2c,
		0x0c, 0x50, 0xbc, 0x6a, 0xd5, 0x66, 0xc2, 0x68, 0x73, 0x04, 0x3a, 0x1d, 0x02, 0x09, 0xc7, 0xa0,
		0xdb, 0x41, 0x90, 0x71, 0x14, 0x64, 0x1c, 0x06, 0x15, 0xc7, 0xa1, 0xd6, 0x81, 0x28, 0x76, 0x24,
		0xf9, 0x43, 0x56, 0x9e, 0x59, 0x73, 0x67, 0xd7, 0xab, 0x2f, 0x33, 0xbe, 0xc3, 0xf2, 0xeb, 0x86,
		0xaa, 0xf9, 0x0a, 0x17, 0x93, 0x3d, 0x89, 0x12, 0xe9, 0x24, 0x22, 0x49, 0xfc, 0x28, 0x74, 0xa6,
		0x13, 0xc7, 0x13, 0x81, 0x7b, 0xad, 0x8f, 0x36, 0xdc, 0x6f, 0x0e, 0x48, 0x04, 0x48, 0x04, 0x48,
		0x04, 0x48, 0x04, 0x48, 0x84, 0x61, 0x24, 0x42, 0x79, 0x9a, 0xee, 0x6d, 0x8c, 0xdf, 0xd6, 0x70,
		0x69, 0x3d, 0x69, 0xbb, 0x8b, 0x8f, 0x1e, 0x88, 0xb3, 0x74, 0xa7, 0xf1, 0xe6, 0x46, 0x68, 0x4e,
		0xe7, 0xcd, 0xed, 0xa0, 0x92, 0x52, 0x79, 0xb3, 0x27, 0x75, 0xa7, 0x56, 0x6a, 0x82, 0xc1, 0xd5,
		0x25, 0xaa, 0x31, 0xdd, 0xf7, 0xce, 0x12, 0xd5, 0x9d, 0xf6, 0x8b, 0xb5, 0x4a, 0x8c, 0x20, 0xe8,
		0xbb, 0xea, 0xd0, 0xd4, 0x50, 0xdb, 0xa8, 0x63, 0x06, 0xc5, 0x09, 0x68, 0xf9, 0x75, 0x49, 0x25,
		0xa2, 0x2d, 0xa7, 0x01, 0xd5, 0x94, 0x1e, 0x3f, 0x5b, 0x94, 0xb2, 0xd3, 0x3a, 0x67, 0x93, 0xae,
		0x37, 0xe9, 0x5f, 0x87, 0x63, 0x25, 0x89, 0x6a, 0xea, 0x36, 0xd4, 0x37, 0x25, 0x29, 0x86, 0x2a,
		0x5a, 0x97, 0xdf, 0x09, 0x87, 0x54, 0xb5, 0xad, 0xb3, 0x74, 0xe6, 0x4a, 0x6c, 0x20, 0x57, 0xc2,
		0x28, 0x15, 0x0b, 0xb9, 0x12, 0xc8, 0x95, 0x28, 0xf2, 0x61, 0x22, 0x57, 0x42, 0xad, 0x04, 0x86,
		0x63, 0x0e, 0xc3, 0x1d, 0x83, 0x6e, 0x07, 0x41, 0xc6, 0x51, 0x90, 0x71, 0x18, 0x54, 0x1c, 0x87,
		0x1e, 0x3d, 0x01, 0xb9, 0x12, 0xea, 0x41, 0x1e, 0xb9, 0x12, 0x05, 0x3c, 0x4b, 0xe4, 0x4a, 0x80,
		0x44, 0x80, 0x44, 0x80, 0x44, 0x80, 0x44, 0x80, 0x44, 0xa8, 0xdf, 0xf5, 0xc8, 0x95, 0x50, 0xfe,
		0x41, 0xae, 0x04, 0x72, 0x25, 0xee, 0xdf, 0x93, 0xc8, 0x95, 0x40, 0xae, 0x04, 0xd6, 0x2a, 0x65,
		0x82, 0xa0, 0xef, 0xaa, 0x43, 0x84, 0xda, 0xcf, 0x5e, 0xb4, 0xc9, 0x75, 0x38, 0x3e, 0x8f, 0xa3,
		0xd0, 0xff, 0xaf, 0x4e, 0x61, 0x7e, 0xc5, 0x0a, 0x04, 0xd6, 0x08, 0xac, 0x11, 0x58, 0x23, 0xb0,
		0x46, 0x60, 0x6d, 0x58, 0x60, 0x0d, 0x75, 0x9e, 0xf9, 0x95, 0x90, 0x5e, 0xa9, 0x2b, 0xbd, 0x52,
		0x65, 0xc2, 0x9a, 0x45, 0x34, 0xbb, 0x52, 0xc1, 0xd4, 0x55, 0x75, 0xdb, 0x09, 0x0d, 0x38, 0x8d,
		0xd8, 0x98, 0x55, 0x6a, 0xc3, 0x79, 0xb3, 0x15, 0xd1, 0x8a, 0xf3, 0xbe, 0xb7, 0xa4, 0x22, 0x93,
		0x59, 0x69, 0x06, 0xb3, 0xf2, 0xe6, 0x9b, 0x1b, 0x68, 0xbe, 0xc9, 0x2a, 0xb4, 0x45, 0xf3, 0x4d,
		0x34, 0xdf, 0xfc, 0x99, 0x87, 0x86, 0x69, 0x85, 0x98, 0x56, 0x68, 0x86, 0x92, 0x89, 0xc2, 0x13,
		0x14, 0x9e, 0xa0, 0xf0, 0x84, 0x9b, 0x12, 0x89, 0x69, 0x85, 0xe5, 0x7f, 0x30, 0xad, 0x50, 0xed,
		0xf5, 0x31, 0x29, 0x4e, 0x31, 0x6c, 0xad, 0x2e, 0x3d, 0x4c, 0x2b, 0xc4, 0x1a, 0x54, 0xee, 0xa0,
		0xd5, 0x5f, 0x0d, 0xd3, 0x0a, 0x8b, 0xba, 0x36, 0xa6, 0x15, 0x62, 0x5a, 0x21, 0xa6, 0x15, 0xde,
		0x17, 0x4f, 0x61, 0x5a, 0x21, 0x73, 0xf4, 0x86, 0xfa, 0xf9, 0xfd, 0xb5, 0x5e, 0xe5, 0xc3, 0x52,
		0x55, 0x89, 0x0b, 0x64, 0x4e, 0x49, 0x15, 0x64, 0x29, 0x94, 0x78, 0x40, 0xfa, 0x82, 0xd1, 0x06,
		0x53, 0xb5, 0xb1, 0x48, 0x6d, 0x28, 0xbb, 0xd4, 0x23, 0x6c, 0x12, 0x5b, 0xa8, 0x9c, 0xcd, 0x53,
		0xfc, 0xd2, 0x2e, 0x61, 0x59, 0xdb, 0xa1, 0xf0, 0xcf, 0xce, 0x4f, 0xa2, 0x38, 0x29, 0x6d, 0x45,
		0xe7, 0xdc, 0xfc, 0xe6, 0x52, 0x25, 0x6d, 0xcf, 0x72, 0xb3, 0x07, 0x4a, 0x3f, 0x6e, 0x52, 0x71,
		0xbc, 0xa4, 0xf4, 0x38, 0x49, 0x55, 0x24, 0xa4, 0xfc, 0xb8, 0x48, 0x79, 0x58, 0xa3, 0xfa, 0x38,
		0x88, 0x97, 0x5b, 0x2e, 0xfb, 0xb4, 0x3f, 0x47, 0x2e, 0x75, 0xd9, 0x56, 0xf9, 0x15, 0x31, 0xed,
		0x98, 0x1a, 0x84, 0x6a, 0x81, 0x52, 0x5d, 0xe2, 0x12, 0x12, 0xae, 0x90, 0x70, 0x45, 0x01, 0x82,
		0xf3, 0x0b, 0x61, 0xda, 0x31, 0x63, 0x78, 0xd6, 0x01, 0xd3, 0x5a, 0xe1, 0x5a, 0x17, 0x6c, 0x6b,
		0x87, 0x6f, 0xed, 0x30, 0xae, 0x1b, 0xce, 0xd5, 0xc0, 0xba, 0x22, 0x78, 0x57, 0x0e, 0xf3, 0xf9,
		0x05, 0x15, 0xe7, 0xd2, 0xde, 0x01, 0x0b, 0xa5, 0xf9, 0xb3, 0xb7, 0xe1, 0x1f, 0x1d, 0x02, 0x0c,
		0x77, 0x0b, 0xba, 0xdd, 0x03, 0x19, 0x37, 0x41, 0xc6, 0x5d, 0x50, 0x71, 0x1b, 0x6a, 0xdd, 0x87,
		0x62, 0x37, 0x92, 0x3f, 0x64, 0xfd, 0x1d, 0x02, 0xd2, 0xf7, 0xea, 0x68, 0x01, 0xf9, 0x65, 0xa0,
		0xdf, 0x42, 0xff, 0x3d, 0x75, 0x37, 0x8e, 0xfe, 0x7b, 0x4b, 0x76, 0xa0, 0xa7, 0x19, 0x11, 0x2c,
		0x5c, 0x5d, 0xa2, 0x94, 0xfa, 0xef, 0x6d, 0x35, 0x9b, 0x9b, 0x68, 0xbd, 0x47, 0x76, 0x99, 0xa2,
		0xf5, 0x1e, 0xeb, 0xfb, 0x53, 0xd9, 0x7a, 0x2f, 0x8e, 0xa6, 0x52, 0xc4, 0x8e, 0xaf, 0xb1, 0xef,
		0xde, 0x8d, 0x09, 0x08, 0xa9, 0x11, 0x52, 0x23, 0xa4, 0x46, 0x48, 0x8d, 0x90, 0xda, 0xb0, 0x90,
		0xda, 0x8b, 0xa4, 0x14, 0x9e, 0xf3, 0xd7, 0xd4, 0xf5, 0x74, 0x36, 0xde, 0x7b, 0xa3, 0xe1, 0xda,
		0x87, 0xae, 0x94, 0x22, 0x0e, 0xb5, 0x45, 0xd5, 0xf6, 0xab, 0x57, 0x9f, 0xd7, 0x9d, 0x9d, 0xe1,
		0xff, 0x3e, 0xd7, 0x9d, 0x9d, 0xe1, 0xec, 0x6b, 0x3d, 0xfb, 0xcf, 0xec, 0xfb, 0xc6, 0xe7, 0x75,
		0xa7, 0xb1, 0xf8, 0xde, 0xfc, 0xbc, 0xee, 0x34, 0x87, 0xaf, 0x8f, 0x8f, 0xd7, 0x5e, 0xff, 0xbd,
		0xf9, 0xed, 0xf1, 0x7f, 0xd1, 0x06, 0x07, 0x64, 0x75, 0x25, 0xf4, 0x52, 0x54, 0x93, 0x34, 0x9d,
		0xa7, 0xb9, 0xe6, 0xdf, 0xaa, 0x39, 0xab, 0xfa, 0x60, 0xf1, 0x1c, 0xf2, 0x6f, 0x18, 0x57, 0xcd,
		0x20, 0x64, 0xd3, 0x16, 0xaa, 0xa1, 0x7b, 0x90, 0x61, 0xa1, 0x18, 0x92, 0x5e, 0x90, 0xf4, 0x62,
		0x02, 0xa1, 0xd1, 0xd7, 0x3d, 0x28, 0x10, 0xee, 0x69, 0x2c, 0x4e, 0x35, 0xb4, 0x0f, 0xaa, 0xab,
		0xec, 0x1f, 0x74, 0x38, 0xe7, 0x6c, 0x6b, 0x6b, 0x73, 0xa6, 0x54, 0xbb, 0xf1, 0x3d, 0xe0, 0x0a,
		0x8f, 0xe0, 0x7c, 0x2a, 0x1a, 0xc2, 0xde, 0x59, 0xa4, 0x2a, 0x3b, 0x85, 0x6b, 0x4b, 0x8c, 0xdd,
		0x00, 0x47, 0x00, 0x47, 0x00, 0x47, 0x00, 0x47, 0x78, 0xe0, 0x61, 0x2a, 0x4f, 0x8c, 0x75, 0xbd,
		0xff, 0x73, 0xc7, 0x22, 0x1c, 0x5f, 0x3b, 0x6a, 0x61, 0xff, 0x0e, 0x6a, 0xdc, 0x36, 0x04, 0xe7,
		0x7a, 0xa6, 0x39, 0x08, 0x12, 0x8e, 0x42, 0xb7, 0xc3, 0x20, 0xe3, 0x38, 0xc8, 0x38, 0x10, 0x2a,
		0x8e, 0x44, 0xad, 0x43, 0x51, 0xec, 0x58, 0xf4, 0x05, 0xa1, 0x77, 0x76, 0xbd, 0xef, 0x89, 0x50,
		0xfa, 0xf2, 0x5a, 0x6d, 0x40, 0x7a, 0x87, 0xf9, 0x6b, 0x48, 0x45, 0xb3, 0x3b, 0xf3, 0x5b, 0x7f,
		0xe7, 0x26, 0x1a, 0x91, 0x67, 0xf1, 0x22, 0x7a, 0xfd, 0xc3, 0xbd, 0xd1, 0x41, 0xbb, 0xf3, 0xe1,
		0x3f, 0xef, 0x7a, 0x47, 0xa3, 0xfe, 0xa0, 0x35, 0x68, 0xeb, 0xc2, 0xa0, 0x2c, 0x47, 0x30, 0xd1,
		0x76, 0xde, 0x69, 0x69, 0xcd, 0x24, 0x5e, 0x79, 0x29, 0xad, 0xc1, 0xa0, 0xbd, 0x7f, 0x38, 0xb0,
		0xab, 0x98, 0xaf, 0x4a, 0xe4, 0x15, 0xec, 0xf6, 0x7e, 0x3f, 0xc0, 0xf3, 0xd7, 0xf7, 0xfc, 0xdb,
		0x7f, 0xbc, 0xff, 0x4f, 0xeb, 0xe0, 0x43, 0x1b, 0xef, 0x40, 0xe7, 0x3b, 0xe8, 0x0f, 0x5a, 0x47,
		0x80, 0x21, 0x8d, 0xaf, 0x60, 0xef, 0x63, 0xb7, 0x8b, 0xe7, 0xaf, 0xef, 0xf9, 0x77, 0x0e, 0x3a,
		0x58, 0xff, 0x1a, 0x9f, 0x7f, 0xb7, 0xd7, 0xda, 0xed, 0x1c, 0x7c, 0xc0, 0x2b, 0xd0, 0xf7, 0x0a,
		0x06, 0xbf, 0xf7, 0x46, 0xbf, 0xb7, 0xfe, 0xb4, 0x2b, 0x56, 0x95, 0x32, 0x44, 0x1f, 0x67, 0x7e,
		0x5b, 0xc8, 0x3e, 0x71, 0xc7, 0x5f, 0xa6, 0x13, 0xc7, 0x13, 0x89, 0x7f, 0x16, 0xba, 0x52, 0x78,
		0xce, 0xec, 0xf4, 0x57, 0x9f, 0xa4, 0xfd, 0xa0, 0x45, 0xd0, 0xb6, 0x4b, 0xbd, 0x30, 0xb4, 0x6d,
		0x68, 0xdb, 0x33, 0x43, 0xa0, 0x6d, 0x6b, 0xf5, 0x33, 0xa8, 0x59, 0xb1, 0x74, 0x00, 0x3d, 0x6a,
		0x56, 0x50, 0xb3, 0x02, 0x86, 0x78, 0x77, 0x85, 0x78, 0xc2, 0xf5, 0x1c, 0xe9, 0x5f, 0x68, 0xcc,
		0x72, 0xb8, 0x31, 0x01, 0x1c, 0x10, 0x1c, 0x10, 0x1c, 0x10, 0x1c, 0x10, 0x1c, 0xd0, 0x30, 0x0e,
		0x98, 0xa2, 0xbb, 0xf4, 0xc7, 0x5f, 0x92, 0xad, 0x86, 0x46, 0x0e, 0xa8, 0x83, 0x02, 0x7e, 0x0c,
		0x67, 0x4d, 0x75, 0xec, 0xd0, 0x0d, 0xa3, 0x44, 0x8c, 0xa3, 0xd0, 0x4b, 0x6c, 0xb4, 0x24, 0x53,
		0x77, 0xe3, 0x68, 0x49, 0xb6, 0x64, 0x07, 0x7a, 0x3d, 0x11, 0xc1, 0xe4, 0xd5, 0x25, 0x4a, 0xa9,
		0x25, 0x59, 0xfd, 0x4d, 0xa3, 0xb1, 0xb5, 0xdd, 0x68, 0xac, 0x6f, 0x6f, 0x6e, 0xaf, 0xef, 0x34,
		0x9b, 0xf5, 0xad, 0x3a, 0x3a, 0x94, 0x91, 0x5d, 0xb5, 0xe8, 0x50, 0x86, 0x48, 0xff, 0xa7, 0x23,
		0x7d, 0x32, 0x87, 0x40, 0x38, 0xfd, 0x41, 0xe4, 0x8f, 0xc8, 0x1f, 0x91, 0x3f, 0x22, 0x7f, 0xe3,
		0x23, 0x7f, 0x9c, 0xfe, 0xe0, 0xf4, 0x07, 0x9c, 0x90, 0x2a, 0x27, 0x0c, 0xdc, 0x44, 0x3a, 0x22,
		0x91, 0xee, 0x49, 0xe0, 0x27, 0xe7, 0x42, 0xf7, 0x49, 0xd0, 0xfd, 0xe6, 0x80, 0x1b, 0x82, 0x1b,
		0x82, 0x1b, 0x82, 0x1b, 0x82, 0x1b, 0x1a, 0xc6, 0x0d, 0x71, 0x2a, 0x84, 0x53, 0x21, 0x3d, 0x1f,
		0x9c, 0x0a, 0x2d, 0xdb, 0x01, 0x7d, 0x9d, 0x08, 0x26, 0xaf, 0x2e, 0x51, 0x9c, 0x0a, 0x61, 0xd5,
		0x32, 0xe0, 0x2d, 0xfa, 0xae, 0x0a, 0x05, 0xe0, 0xf9, 0x8b, 0x16, 0x43, 0x60, 0x11, 0xe3, 0x23,
		0xc6, 0x47, 0x8c, 0x8f, 0x18, 0x1f, 0x31, 0x7e, 0x29, 0xbb, 0x1e, 0x43, 0x60, 0x11, 0x5b, 0x23,
		0xb6, 0x46, 0x94, 0x82, 0xd8, 0xfa, 0xa1, 0x25, 0x8a, 0x21, 0xb0, 0x08, 0xa6, 0x11, 0x4c, 0x9b,
		0x10, 0x4c, 0x47, 0x93, 0x74, 0x0f, 0xb9, 0x81, 0x33, 0x76, 0x27, 0xee, 0x89, 0x1f, 0xf8, 0xd2,
		0xcf, 0x3a, 0x38, 0x6a, 0x8a, 0xad, 0xef, 0x37, 0x07, 0xa1, 0x36, 0x42, 0x6d, 0x84, 0xda, 0x08,
		0xb5, 0x11, 0x6a, 0x1b, 0x16, 0x6a, 0x9f, 0x8b, 0x2b, 0x27, 0x91, 0xb1, 0x1f, 0x9e, 0x21, 0xd3,
		0x52, 0xb1, 0x01, 0x59, 0xbe, 0xa4, 0xeb, 0x9c, 0xb6, 0x9c, 0xbd, 0xe1, 0xdf, 0x1b, 0xdf, 0x5e,
		0xbd, 0x5d, 0xfd, 0xf5, 0xeb, 0x7f, 0xbe, 0xfe, 0x37, 0x12, 0x24, 0x39, 0x32, 0xba, 0x49, 0xec,
		0x47, 0xb1, 0x2f, 0xaf, 0xf5, 0x91, 0xb8, 0xdc, 0x02, 0xf0, 0x36, 0xf0, 0x36, 0xf0, 0x36, 0xf0,
		0x36, 0xf0, 0x36, 0xc3, 0x78, 0xdb, 0xd4, 0x0f, 0xe5, 0x1b, 0x8d, 0x94, 0xad, 0x89, 0xc3, 0x11,
		0x75, 0x37, 0x8e, 0xc3, 0x91, 0x25, 0x3b, 0xa0, 0x3a, 0x13, 0x41, 0xc1, 0xd5, 0x25, 0x4a, 0xe9,
		0x70, 0x64, 0xa3, 0x89, 0xa3, 0x11, 0xb2, 0x8b, 0x14, 0x47, 0x23, 0x08, 0xa4, 0x7f, 0x72, 0xd1,
		0xc6, 0x42, 0xc6, 0x6e, 0x98, 0x5c, 0xf8, 0x49, 0xe2, 0x47, 0xa1, 0xf3, 0xd7, 0x54, 0x4c, 0x85,
		0x13, 0x88, 0xf0, 0x2c, 0x1b, 0x4f, 0xad, 0x29, 0xb6, 0xfe, 0x9e, 0x51, 0x08, 0xb7, 0x11, 0x6e,
		0x23, 0xdc, 0x46, 0xb8, 0x8d, 0x70, 0xdb, 0xc0, 0x70, 0x7b, 0x73, 0x43, 0x63, 0xbc, 0xbd, 0x8d,
		0x78, 0x1b, 0xf1, 0x36, 0x42, 0x19, 0xc4, 0xdb, 0x14, 0xe3, 0xed, 0xc6, 0xc6, 0x4e, 0x63, 0x67,
		0x6b, 0x7b, 0x63, 0x07, 0x61, 0x37, 0xc2, 0x6e, 0x84, 0xdd, 0xec, 0xc3, 0xee, 0xac, 0xbd, 0xa2,
		0xe3, 0x7b, 0x1a, 0x83, 0xec, 0xdc, 0x04, 0x84, 0xd4, 0x08, 0xa9, 0x11, 0x52, 0x23, 0xa4, 0x46,
		0x48, 0x6d, 0x58, 0x48, 0x8d, 0x26, 0x8f, 0x68, 0xf2, 0x08, 0x0e, 0x48, 0x95, 0x03, 0x26, 0xd2,
		0x95, 0xc2, 0x19, 0x9f, 0xbb, 0xe1, 0x99, 0xce, 0x6a, 0x94, 0x55, 0x33, 0xc0, 0x05, 0xc1, 0x05,
		0xc1, 0x05, 0xc1, 0x05, 0xc1, 0x05, 0x0d, 0xe3, 0x82, 0x38, 0x5e, 0x51, 0xfe, 0xc1, 0xf1, 0x0a,
		0x8e, 0x57, 0xee, 0xdf, 0x93, 0x38, 0x5e, 0xc1, 0xf1, 0x0a, 0xd6, 0x2a, 0x65, 0x82, 0xa0, 0xef,
		0xaa, 0xc6, 0x86, 0xd6, 0x2f, 0x0c, 0x42, 0x34, 0xbb, 0x15, 0x86, 0x91, 0x74, 0xd3, 0x9d, 0xaa,
		0x14, 0xc4, 0xec, 0x64, 0x7c, 0x2e, 0x2e, 0xdc, 0x89, 0x9b, 0xa5, 0x67, 0xda, 0xb5, 0x68, 0x22,
		0xc2, 0x71, 0x16, 0xcc, 0x3a, 0xa1, 0x90, 0x5f, 0xa3, 0xf8, 0x8b, 0xe3, 0x87, 0x89, 0x74, 0xc3,
		0xb1, 0xa8, 0xdd, 0xfe, 0x8d, 0xe4, 0xce, 0xef, 0xd4, 0x26, 0x71, 0x24, 0xa3, 0x71, 0x14, 0x24,
		0xf9, 0xb7, 0xda, 0x8c, 0xff, 0xd7, 0xdc, 0x58, 0xb8, 0x49, 0xf6, 0xb3, 0xe6, 0x87, 0x52, 0xc4,
		0xa7, 0x6e, 0xfa, 0x0f, 0xe4, 0x5f, 0x6b, 0xa1, 0xf0, 0xcf, 0xce, 0x4f, 0xa2, 0x38, 0xc9, 0xbf,
		0xd5, 0x32, 0x21, 0xc1, 0x56, 0x2a, 0xa0, 0xc4, 0xd3, 0xb1, 0x0c, 0xe7, 0x04, 0xb7, 0x97, 0x3f,
		0x8a, 0x83, 0xd9, 0x6d, 0x76, 0xe6, 0x77, 0x39, 0xba, 0xf5, 0xeb, 0xe4, 0xf6, 0x6f, 0x8c, 0x0e,
		0x17, 0x8f, 0x21, 0xff, 0x36, 0xea, 0x65, 0x8f, 0x61, 0xd4, 0x4a, 0x1f, 0x43, 0xf6, 0x73, 0xd4,
		0xc9, 0x1f, 0xc3, 0xcd, 0xd7, 0xd1, 0xc1, 0xe2, 0x31, 0xe4, 0xdf, 0x46, 0xfd, 0xec, 0x31, 0xbc,
		0x30, 0x63, 0x4b, 0x95, 0x7b, 0x85, 0x92, 0x37, 0x6b, 0x1a, 0xec, 0xab, 0x3c, 0xe9, 0xb4, 0xbb,
		0x7e, 0x22, 0x5b, 0x52, 0xaa, 0x99, 0xe0, 0x97, 0x72, 0xfc, 0x76, 0x20, 0xd2, 0xd0, 0x5d, 0x11,
		0x4f, 0x48, 0x29, 0xdb, 0xd2, 0x15, 0xf5, 0xf4, 0x9e, 0xb6, 0x7b, 0xb1, 0x27, 0x62, 0xe1, 0xbd,
		0x4b, 0x5f, 0x6d, 0x38, 0x0d, 0x02, 0x95, 0x97, 0xfc, 0x98, 0x64, 0xe3, 0x19, 0xcb, 0x27, 0x42,
		0x65, 0xef, 0x0c, 0xc5, 0xee, 0x8b, 0xb0, 0xdb, 0x52, 0xe0, 0xb0, 0x68, 0x3a, 0xaa, 0x72, 0x5d,
		0x54, 0x79, 0x8e, 0xa3, 0x9c, 0x7f, 0xb9, 0xa4, 0x0d, 0xa7, 0x6a, 0xa3, 0xd1, 0xdb, 0x60, 0x25,
		0xee, 0x2b, 0x52, 0xfb, 0xa9, 0x9c, 0x6d, 0x54, 0xfc, 0x22, 0x2f, 0x61, 0x81, 0xcf, 0x8e, 0x0e,
		0x4b, 0x5b, 0xd7, 0xab, 0x27, 0x94, 0x25, 0xad, 0xa7, 0x3c, 0x49, 0xa1, 0xa4, 0x7f, 0x3e, 0x3f,
		0x69, 0xdc, 0x28, 0xe9, 0x02, 0x0a, 0x4e, 0x14, 0x95, 0x9e, 0x1c, 0xaa, 0x3a, 0x21, 0x54, 0x7e,
		0x12, 0xa8, 0xfc, 0xc4, 0x4f, 0xf5, 0xc9, 0x1e, 0x2f, 0xc7, 0xbc, 0xeb, 0x97, 0x1b, 0xa6, 0xd9,
		0xee, 0x54, 0x9e, 0x8b, 0x50, 0xfa, 0xe3, 0xcc, 0xfb, 0x3b, 0x52, 0xc5, 0x09, 0x60, 0xbe, 0x53,
		0xef, 0xbb, 0x78, 0xd9, 0xc1, 0xb6, 0x92, 0x54, 0x0e, 0x65, 0xa9, 0x1b, 0x2a, 0x53, 0x35, 0xb4,
		0xa4, 0x66, 0xa8, 0x4e, 0xc5, 0xd0, 0x96, 0x7a, 0xa1, 0x2d, 0xd5, 0x42, 0x57, 0x6a, 0x05, 0x6f,
		0xd1, 0x4e, 0x59, 0xaa, 0xc4, 0x12, 0xbf, 0x54, 0xd4, 0x9c, 0xf3, 0x26, 0x23, 0x96, 0x6b, 0xec,
		0x5d, 0x22, 0xef, 0x3b, 0xf7, 0x3d, 0xb1, 0x08, 0x56, 0xd5, 0x39, 0xca, 0x95, 0xab, 0xc2, 0x43,
		0xc2, 0x43, 0xc2, 0x43, 0xc2, 0x43, 0xc2, 0x43, 0xde, 0xda, 0x75, 0x27, 0x51, 0x14, 0x08, 0x37,
		0x54, 0xe9, 0x22, 0xeb, 0xac, 0x5f, 0x91, 0xb8, 0x92, 0xb1, 0xeb, 0x4c, 0xc3, 0x44, 0xba, 0x27,
		0x81, 0xa2, 0x97, 0x15, 0x8b, 0x53, 0x11, 0x8b, 0x70, 0xac, 0x2e, 0xe1, 0x51, 0x61, 0xde, 0xc3,
		0x62, 0x25, 0x1e, 0xed, 0xbd, 0xdf, 0x7a, 0xb3, 0xb5, 0x6e, 0x39, 0xd6, 0x7f, 0x7c, 0xcf, 0x0f,
		0xcf, 0xac, 0x41, 0xec, 0x86, 0x89, 0x2f, 0x9d, 0x5e, 0x18, 0x5c, 0x5b, 0x73, 0x7d, 0x37, 0xb1,
		0xfc, 0xd0, 0xea, 0xf5, 0xf7, 0xf6, 0x54, 0x66, 0x23, 0x68, 0xca, 0x6c, 0x5f, 0x76, 0x1a, 0x37,
		0x2b, 0x40, 0x71, 0x7a, 0xb3, 0xee, 0x64, 0xf6, 0x15, 0x3f, 0xf2, 0xc8, 0x25, 0x62, 0x5a, 0x02,
		0x54, 0xe9, 0x57, 0x19, 0x22, 0x78, 0xb9, 0xb3, 0xfe, 0x14, 0x14, 0xf2, 0xe7, 0x10, 0x58, 0x7e,
		0x1e, 0x0b, 0x02, 0x15, 0x04, 0x2a, 0x08, 0x54, 0x10, 0xa8, 0xf0, 0x0b, 0x54, 0xf2, 0x44, 0x04,
		0x35, 0x7d, 0x4d, 0x20, 0xe8, 0x7d, 0xe7, 0xd9, 0x28, 0x1a, 0x61, 0xaf, 0x76, 0x64, 0x3d, 0x7c,
		0x23, 0x7c, 0x23, 0x7c, 0x23, 0x7c, 0x23, 0x43, 0xdf, 0xa8, 0x76, 0xe4, 0xbb, 0xc2, 0x11, 0xef,
		0x8a, 0xcb, 0x7c, 0x15, 0xaa, 0x5e, 0x3a, 0xca, 0x78, 0x75, 0x95, 0xed, 0x6a, 0x2f, 0x7d, 0xd4,
		0x57, 0xea, 0xa8, 0xb2, 0xeb, 0x8c, 0x8e, 0xb2, 0x5b, 0x9d, 0x23, 0xd5, 0xab, 0xbc, 0xac, 0x20,
		0x38, 0x9a, 0x1b, 0x5c, 0x4d, 0x03, 0xe9, 0x3b, 0x6e, 0x2c, 0x5c, 0xc7, 0xf5, 0xfe, 0xcf, 0x1d,
		0x8b, 0x70, 0x7c, 0xed, 0x4c, 0x62, 0xff, 0xc2, 0x8d, 0xaf, 0x15, 0x86, 0x5c, 0xdf, 0xb3, 0xa2,
		0x64, 0x02, 0xb5, 0x2b, 0x4e, 0xdd, 0x69, 0x20, 0x95, 0xb8, 0x7d, 0x3b, 0x65, 0xd3, 0xe5, 0x32,
		0xda, 0x21, 0xe2, 0x56, 0xc4, 0xad, 0x88, 0x5b, 0x11, 0xb7, 0x22, 0x6e, 0xbd, 0xb5, 0xeb, 0xcc,
		0x4b, 0x3e, 0x61, 0xc9, 0x38, 0x16, 0x45, 0x82, 0x6a, 0x0b, 0x19, 0x56, 0xae, 0x0a, 0x17, 0x09,
		0x17, 0x09, 0x17, 0x09, 0x17, 0x09, 0x17, 0x79, 0x6b, 0xd7, 0xf9, 0x9e, 0x08, 0xa5, 0x2f, 0xaf,
		0x63, 0x71, 0xaa, 0xd2, 0x4d, 0xaa, 0x68, 0xf7, 0xd1, 0x99, 0xdf, 0xda, 0x3b, 0x37, 0x51, 0xb8,
		0xd3, 0x17, 0x0f, 0xb6, 0xd7, 0x3f, 0xdc, 0x1b, 0x1d, 0xb4, 0x07, 0xbf, 0xf7, 0x8e, 0x7e, 0x1b,
		0x0d, 0xfe, 0x3c, 0x6c, 0xab, 0xda, 0xf1, 0x99, 0x62, 0x96, 0x28, 0x6d, 0x5d, 0xa9, 0xa9, 0xff,
		0xf4, 0xbb, 0xa3, 0x5e, 0x6b, 0xf7, 0x7d, 0xab, 0x3f, 0x58, 0x3c, 0x67, 0xdb, 0x44, 0xdd, 0x55,
		0xd3, 0xc3, 0x3d, 0xe8, 0x1d, 0x8c, 0xf0, 0x80, 0x4b, 0x7c, 0xc0, 0x87, 0xbd, 0xce, 0xc1, 0x60,
		0x34, 0xe8, 0x8d, 0x66, 0x5f, 0xd4, 0x3f, 0x61, 0x25, 0x57, 0x1a, 0x72, 0xf7, 0xf8, 0x2c, 0x23,
		0xae, 0x89, 0x9b, 0x24, 0xb3, 0x73, 0x03, 0x45, 0xc1, 0xd6, 0xe2, 0x82, 0x88, 0xb3, 0x10, 0x67,
		0x21, 0xce, 0x42, 0x9c, 0x85, 0x38, 0xeb, 0xd6, 0xae, 0x83, 0x14, 0x49, 0xc3, 0x31, 0xc6, 0x7e,
		0x14, 0xfb, 0x52, 0xe1, 0x41, 0x67, 0x7e, 0x45, 0xb8, 0x46, 0xb8, 0x46, 0xb8, 0x46, 0xb8, 0x46,
		0xb8, 0xc6, 0x5b, 0xbb, 0x6e, 0xea, 0x87, 0xf2, 0x8d, 0x42, 0xc7, 0xd8, 0x44, 0x5e, 0xe9, 0xd3,
		0x6f, 0x0c, 0x79, 0xa5, 0x4a, 0xb5, 0x22, 0xe4, 0x95, 0x96, 0xbc, 0xa4, 0x36, 0x9a, 0xc8, 0x2a,
		0x55, 0xb6, 0xa8, 0x90, 0x55, 0xaa, 0x37, 0xb0, 0x42, 0xff, 0xeb, 0x7b, 0xae, 0x43, 0xa5, 0xff,
		0x75, 0xd9, 0x43, 0x50, 0x28, 0xf4, 0xbe, 0x2e, 0x71, 0xc2, 0x09, 0x8f, 0xbe, 0xd7, 0xd2, 0xbf,
		0x10, 0x71, 0x52, 0x7e, 0xe3, 0xeb, 0xf9, 0x75, 0x98, 0x77, 0xbe, 0x5e, 0x47, 0xe7, 0x6b, 0x52,
		0x5a, 0x02, 0x3a, 0x5f, 0x57, 0xdb, 0x25, 0x97, 0xde, 0xf9, 0x7a, 0xbc, 0xd8, 0xf9, 0x8a, 0xc4,
		0xd9, 0xf9, 0xf5, 0xd4, 0x48, 0xb3, 0x75, 0x48, 0xb3, 0xb4, 0x61, 0x54, 0x35, 0x9c, 0x6a, 0x83,
		0x55, 0x6d, 0xf0, 0xaa, 0x0b, 0x66, 0xd5, 0xc4, 0x86, 0x65, 0x4b, 0xb3, 0x65, 0xc3, 0x6f, 0x7e,
		0x21, 0x4f, 0xb8, 0x9e, 0x93, 0x45, 0x26, 0x97, 0x6e, 0xa0, 0x3e, 0x75, 0x72, 0xf5, 0xf2, 0x8a,
		0x56, 0xa4, 0x9a, 0xf3, 0x33, 0xe5, 0x60, 0xad, 0x03, 0xb4, 0xb5, 0x82, 0xb7, 0x2e, 0x10, 0xd7,
		0x0e, 0xe6, 0xda, 0x41, 0x5d, 0x37, 0xb8, 0xab, 0x01, 0x79, 0x45, 0x60, 0x9f, 0x3f, 0x4c, 0x65,
		0xe7, 0x71, 0x77, 0x76, 0xed, 0xd4, 0x0f, 0xe5, 0xa6, 0xd2, 0x2d, 0x3b, 0xc7, 0xe0, 0x6d, 0x85,
		0x97, 0x54, 0x7b, 0x50, 0xb7, 0xf8, 0xa8, 0x9f, 0x5d, 0xaf, 0xe5, 0xe0, 0x2e, 0xbf, 0xb8, 0xa6,
		0x03, 0xbc, 0xfc, 0xfa, 0x54, 0x66, 0xe3, 0xeb, 0x9f, 0x89, 0xff, 0xed, 0x17, 0x0d, 0x4b, 0x4f,
		0xc3, 0x01, 0xdf, 0x9d, 0xa5, 0xd7, 0xd8, 0xd8, 0x69, 0xec, 0x6c, 0x6d, 0x6f, 0xec, 0x34, 0xb1,
		0x06, 0x75, 0xaf, 0xc1, 0x17, 0x66, 0x5e, 0x6d, 0x68, 0x14, 0xf1, 0xd0, 0x30, 0x88, 0x20, 0xbf,
		0xb6, 0xfa, 0x81, 0x04, 0x1a, 0x3d, 0xf3, 0xd2, 0x80, 0x82, 0x8d, 0xcd, 0x8d, 0x37, 0xb6, 0x06,
		0x84, 0xd6, 0x14, 0x2b, 0xdd, 0x17, 0x33, 0xe9, 0x9a, 0x44, 0x40, 0x26, 0x7c, 0xba, 0x37, 0x8c,
		0x5a, 0xac, 0x0d, 0x60, 0x35, 0x2f, 0xac, 0x7e, 0x61, 0x80, 0x37, 0xb0, 0xcf, 0x45, 0x10, 0x44,
		0x1a, 0xf5, 0xc0, 0x5b, 0xd7, 0x87, 0x20, 0x58, 0xc8, 0x05, 0x21, 0x08, 0xaa, 0x77, 0x6e, 0x10,
		0x04, 0x21, 0x08, 0x3e, 0xf7, 0x61, 0x42, 0x10, 0x2c, 0xf5, 0x92, 0x10, 0x04, 0x55, 0xaa, 0x32,
		0x10, 0x04, 0x21, 0x08, 0x6a, 0x5a, 0x7a, 0x10, 0x04, 0xe9, 0xac, 0x41, 0x04, 0x99, 0x95, 0x0f,
		0x32, 0x63, 0x21, 0x63, 0x37, 0x4c, 0x2e, 0xfc, 0x24, 0xf1, 0xa3, 0x50, 0x63, 0xb4, 0xf9, 0x90,
		0x21, 0x08, 0x3b, 0x11, 0x76, 0x22, 0xec, 0x44, 0xd8, 0x89, 0xb0, 0x13, 0x61, 0x27, 0xc2, 0x4e,
		0x84, 0x9d, 0xa0, 0xfc, 0x08, 0x3b, 0x11, 0x76, 0x22, 0xec, 0x44, 0xd8, 0xc9, 0xf3, 0x0a, 0x65,
		0x57, 0x6b, 0x28, 0xaa, 0x5f, 0xcf, 0xaf, 0x47, 0xa5, 0x8e, 0x7d, 0x56, 0x7a, 0x5c, 0x53, 0x52,
		0x5a, 0x67, 0x11, 0xa9, 0x6b, 0x1f, 0x64, 0xf7, 0x3c, 0x9a, 0x07, 0xd3, 0xe8, 0xbb, 0x77, 0xcf,
		0x3b, 0x72, 0xa5, 0xc2, 0x76, 0xb4, 0x65, 0xf7, 0x52, 0xb0, 0x74, 0x94, 0x75, 0x6e, 0xa0, 0xac,
		0x93, 0x95, 0x12, 0x83, 0xb2, 0x4e, 0x94, 0x75, 0xfe, 0xcc, 0x43, 0x43, 0x59, 0x67, 0xf9, 0x20,
		0x0d, 0x39, 0x9d, 0x39, 0x78, 0xeb, 0x02, 0x71, 0xed, 0x60, 0xae, 0x1d, 0xd4, 0x75, 0x83, 0xbb,
		0xda, 0xf8, 0x19, 0x72, 0x7a, 0x69, 0x18, 0x0c, 0x39, 0xbd, 0x84, 0x1b, 0x85, 0x9c, 0x0e, 0x29,
		0x13, 0x72, 0x3a, 0xe4, 0x74, 0xc8, 0xe9, 0xa5, 0x7d, 0x50, 0xd6, 0x59, 0xd4, 0xb5, 0x51, 0xd6,
		0xa9, 0xd6, 0x04, 0x94, 0x75, 0xd2, 0x09, 0x9f, 0xee, 0x0d, 0xa3, 0x50, 0xd6, 0xc9, 0x13, 0xab,
		0x51, 0xd6, 0x59, 0x00, 0x30, 0xa2, 0xac, 0xb3, 0x8c, 0x0b, 0x42, 0x10, 0x54, 0xef, 0xdc, 0x20,
		0x08, 0x42, 0x10, 0x7c, 0xee, 0xc3, 0x84, 0x20, 0x58, 0xea, 0x25, 0x21, 0x08, 0xaa, 0x54, 0x65,
		0x20, 0x08, 0x42, 0x10, 0xd4, 0xb4, 0xf4, 0x20, 0x08, 0xd2, 0x59, 0x83, 0x08, 0x32, 0x2b, 0x1f,
		0x64, 0xa2, 0xac, 0x13, 0x61, 0x27, 0xc2, 0x4e, 0x84, 0x9d, 0x08, 0x3b, 0x11, 0x76, 0x22, 0xec,
		0x44, 0xd8, 0x89, 0xb0, 0x13, 0x61, 0x27, 0xc2, 0x4e, 0xac, 0x41, 0x84, 0x9d, 0xd5, 0x0d, 0x3b,
		0x51, 0xd6, 0xf9, 0x88, 0xeb, 0x11, 0x2b, 0xeb, 0x54, 0x51, 0x59, 0x67, 0xd1, 0xaa, 0xea, 0x2c,
		0x71, 0x68, 0x71, 0xf9, 0x5b, 0x02, 0x33, 0xbf, 0xe9, 0x6f, 0x2a, 0xc3, 0x87, 0x7e, 0xcf, 0xb6,
		0x11, 0x9b, 0xa9, 0xdf, 0x2f, 0x08, 0x6f, 0x14, 0xfb, 0x37, 0x71, 0x9d, 0xbe, 0x47, 0xdf, 0x2b,
		0x78, 0xcd, 0xd8, 0x5d, 0x3f, 0x91, 0x2d, 0x29, 0xcb, 0xa9, 0x44, 0x4c, 0xa3, 0xc3, 0x76, 0x20,
		0x2e, 0x44, 0x58, 0x16, 0x33, 0x4d, 0x83, 0x80, 0xa5, 0x2b, 0xd4, 0xdf, 0x34, 0x1a, 0x5b, 0xdb,
		0x8d, 0xc6, 0xfa, 0xf6, 0xe6, 0xf6, 0xfa, 0x4e, 0xb3, 0x59, 0xdf, 0xaa, 0x97, 0xc0, 0xcb, 0xed,
		0x5e, 0xec, 0x89, 0x58, 0x78, 0xef, 0xd2, 0x77, 0x12, 0x4e, 0x83, 0xa0, 0xcc, 0x4b, 0x7c, 0x4c,
		0x44, 0x5c, 0x0a, 0xa5, 0x2e, 0x7a, 0x89, 0x96, 0x8c, 0xe1, 0x54, 0xb0, 0xbb, 0x04, 0xd0, 0x26,
		0x00, 0xd6, 0xc5, 0xa2, 0x74, 0x71, 0x58, 0x5a, 0xcc, 0xbf, 0x54, 0xd0, 0x52, 0x2f, 0x6b, 0x89,
		0xeb, 0x5d, 0xda, 0x05, 0x2e, 0x68, 0x6d, 0x0b, 0xb9, 0x98, 0xe5, 0xfb, 0xfc, 0xc5, 0x56, 0xc0,
		0x42, 0xb3, 0x83, 0xc4, 0x3b, 0x29, 0x6c, 0x79, 0xe5, 0xaa, 0x7b, 0xf6, 0xaf, 0x16, 0xb4, 0x0d,
		0x8a, 0x6d, 0x80, 0x52, 0x78, 0xa3, 0x93, 0x32, 0xce, 0x24, 0x4b, 0x3d, 0x73, 0x2c, 0xeb, 0x4c,
		0xb1, 0xf4, 0x33, 0xc3, 0xd2, 0xcf, 0x04, 0xcb, 0x3e, 0xf3, 0xa3, 0xe5, 0x5e, 0x8a, 0x6e, 0x08,
		0x62, 0x07, 0x89, 0xeb, 0xc8, 0xeb, 0x89, 0x48, 0x8a, 0x5f, 0x5a, 0x37, 0xb8, 0xb2, 0xb8, 0x44,
		0xd1, 0x11, 0x4f, 0x29, 0x5d, 0x96, 0x4a, 0x4b, 0x90, 0x28, 0x33, 0x11, 0x42, 0x49, 0xc2, 0x43,
		0xd9, 0x89, 0x0d, 0xca, 0x12, 0x18, 0x94, 0x25, 0x2a, 0xa8, 0x4a, 0x48, 0xa0, 0xad, 0x4c, 0x94,
		0xd5, 0xc5, 0x28, 0x47, 0x96, 0xf2, 0x56, 0xe4, 0x6d, 0x0c, 0x2b, 0x6b, 0x41, 0x96, 0xdb, 0x30,
		0xae, 0xf4, 0x9c, 0x2f, 0x15, 0x39, 0x5e, 0x4a, 0x73, 0xba, 0x54, 0xe5, 0x70, 0x29, 0xcf, 0xd9,
		0x52, 0x9e, 0xa3, 0xa5, 0x3a, 0x27, 0x8b, 0xd7, 0xa9, 0x46, 0xd9, 0x0d, 0xde, 0x52, 0xe0, 0x4a,
		0xd4, 0x35, 0xd7, 0xcc, 0xae, 0x66, 0x58, 0x6f, 0xcd, 0x75, 0xf4, 0xd6, 0x64, 0x01, 0xa5, 0xda,
		0x20, 0x55, 0x1b, 0xb4, 0xea, 0x82, 0xd8, 0x72, 0xa1, 0xb6, 0x64, 0xc8, 0x55, 0x06, 0xbd, 0xcb,
		0x10, 0xac, 0xbe, 0xa6, 0x21, 0xbd, 0xa8, 0xda, 0xfa, 0x85, 0x3a, 0xea, 0x17, 0x78, 0x03, 0xb5,
		0x2e, 0xc0, 0xd6, 0x0e, 0xdc, 0xda, 0x01, 0x5c, 0x37, 0x90, 0xab, 0x01, 0x74, 0x45, 0xc0, 0xae,
		0x1c, 0xe0, 0xf3, 0x0b, 0xba, 0x89, 0x23, 0xae, 0xa4, 0x88, 0x43, 0x37, 0x70, 0x54, 0x82, 0xfe,
		0x1d, 0xd4, 0xb8, 0x6d, 0x88, 0xe2, 0x55, 0xac, 0xd6, 0x21, 0x68, 0x73, 0x0c, 0x3a, 0x1d, 0x04,
		0x09, 0x47, 0xa1, 0xdb, 0x61, 0x90, 0x71, 0x1c, 0x64, 0x1c, 0x08, 0x15, 0x47, 0xa2, 0xd6, 0xa1,
		0x28, 0x76, 0x2c, 0xda, 0x1c, 0x4c, 0x7e, 0x61, 0x35, 0x23, 0x53, 0x7e, 0x88, 0x39, 0xaa, 0x12,
		0xbe, 0x09, 0x39, 0x19, 0xed, 0xce, 0x86, 0x82, 0xd3, 0x21, 0xe5, 0x7c, 0xa8, 0x38, 0x21, 0x72,
		0xce, 0x88, 0x9c, 0x53, 0xa2, 0xe6, 0x9c, 0xf4, 0x38, 0x29, 0x4d, 0xce, 0x4a, 0xbb, 0xd3, 0xca,
		0x0d, 0xc8, 0x23, 0x93, 0x38, 0x9a, 0x4a, 0xe1, 0x48, 0xf7, 0x4c, 0xff, 0x9e, 0x5d, 0x00, 0xd9,
		0x3d, 0xb6, 0x69, 0xde, 0x2b, 0x6a, 0x9b, 0x83, 0x90, 0x75, 0x77, 0x94, 0xdc, 0x1e, 0x49, 0xf7,
		0x47, 0xcd, 0x0d, 0x92, 0x75, 0x87, 0x64, 0xdd, 0x22, 0x55, 0xf7, 0xa8, 0xd7, 0x4d, 0x6a, 0x76,
		0x97, 0xf9, 0x4b, 0x51, 0xde, 0x0c, 0xe5, 0x87, 0xa8, 0xa3, 0xbc, 0x49, 0xca, 0x8f, 0x7c, 0xd4,
		0x36, 0x01, 0x53, 0xf4, 0x34, 0x55, 0x79, 0xe8, 0x43, 0x03, 0x82, 0x2d, 0xdd, 0x4d, 0x58, 0x1e,
		0x34, 0x4a, 0x73, 0x73, 0x96, 0x07, 0xed, 0xa2, 0xd2, 0x30, 0xe3, 0x61, 0x0c, 0xd0, 0xdd, 0x48,
		0x83, 0x28, 0x4c, 0xaf, 0x2e, 0x79, 0xf7, 0x8a, 0xee, 0x92, 0xd7, 0xdd, 0x14, 0x06, 0x6b, 0xdf,
		0x30, 0x82, 0x44, 0xc7, 0x8a, 0xe1, 0x8b, 0x6a, 0xde, 0xbf, 0x46, 0xec, 0xb3, 0x4f, 0xa3, 0xf8,
		0xab, 0x1b, 0x7b, 0x7e, 0x78, 0xe6, 0xb8, 0x9e, 0x17, 0x8b, 0x24, 0xa1, 0x23, 0xaa, 0xdc, 0x63,
		0x1b, 0x44, 0x15, 0x88, 0x2a, 0x10, 0x55, 0x20, 0xaa, 0x40, 0x54, 0x81, 0xa8, 0x42, 0x0a, 0x75,
		0xfc, 0xc9, 0x65, 0x63, 0xe1, 0xa5, 0x9c, 0x30, 0x72, 0xfe, 0x1b, 0x85, 0x82, 0x90, 0xc4, 0x52,
		0x7f, 0x43, 0xc0, 0x96, 0x43, 0x57, 0x4a, 0x11, 0x87, 0x64, 0x54, 0x16, 0xfb, 0xd5, 0xab, 0xcf,
		0xeb, 0xce, 0xce, 0xf0, 0x7f, 0x9f, 0xeb, 0xce, 0xce, 0x70, 0xf6, 0xb5, 0x9e, 0xfd, 0x67, 0xf6,
		0x7d, 0xe3, 0xf3, 0xba, 0xd3, 0x58, 0x7c, 0x6f, 0x7e, 0x5e, 0x77, 0x9a, 0xc3, 0xd7, 0xc7, 0xc7,
		0x6b, 0xaf, 0xff, 0xde, 0xfc, 0xf6, 0xf8, 0xbf, 0xf8, 0xea, 0x1f, 0x9f, 0x8f, 0x8f, 0x27, 0x7f,
		0x1f, 0x7c, 0x4b, 0x7f, 0x76, 0xbf, 0x0d, 0xff, 0xf5, 0xfa, 0xdf, 0x54, 0xb0, 0x37, 0x35, 0xf4,
		0xf8, 0x78, 0x6d, 0xf8, 0x4f, 0x1b, 0x21, 0x40, 0x05, 0x43, 0x80, 0x0b, 0x37, 0xf9, 0x42, 0x87,
		0xf4, 0x67, 0xd6, 0x80, 0xe6, 0x83, 0xe6, 0x83, 0xe6, 0x83, 0xe6, 0x83, 0xe6, 0x83, 0xe6, 0x93,
		0x3b, 0x3b, 0x7d, 0x43, 0x88, 0xd7, 0x37, 0x71, 0x74, 0x7a, 0xeb, 0x83, 0xa3, 0xd3, 0xef, 0x1b,
		0x85, 0xa3, 0xd3, 0xa7, 0x42, 0x00, 0x8e, 0x4e, 0x7f, 0x62, 0xc9, 0x53, 0x3e, 0x3a, 0xdd, 0xdc,
		0xc0, 0x9a, 0x37, 0x65, 0xcd, 0xe3, 0xc8, 0x14, 0x7a, 0x89, 0x2e, 0xbd, 0x44, 0xc8, 0xd8, 0x1f,
		0x13, 0x52, 0x4c, 0x66, 0xf6, 0x40, 0x33, 0x81, 0x66, 0x02, 0xcd, 0x04, 0x9a, 0x09, 0x34, 0x13,
		0x68, 0x26, 0xb4, 0x50, 0x27, 0x99, 0x9c, 0x3a, 0x24, 0x9c, 0xd4, 0xb2, 0xa3, 0xda, 0x82, 0x72,
		0x02, 0xe5, 0x04, 0xca, 0x09, 0x94, 0x13, 0x28, 0x27, 0x3f, 0x5e, 0xf2, 0x5b, 0xcd, 0xe6, 0x26,
		0xf2, 0xcd, 0x21, 0x9e, 0x40, 0x3c, 0x81, 0x78, 0x52, 0x84, 0x78, 0x52, 0x6e, 0xf3, 0xf5, 0x27,
		0x2a, 0x28, 0x65, 0xf6, 0x69, 0x87, 0x8c, 0x02, 0x19, 0x05, 0x32, 0x0a, 0x64, 0x14, 0xc8, 0x28,
		0x90, 0x51, 0x9e, 0x88, 0x3a, 0x22, 0x9c, 0x5e, 0x88, 0x78, 0x36, 0x21, 0x90, 0x50, 0x62, 0x79,
		0x83, 0x80, 0x2d, 0xed, 0x70, 0x7a, 0x41, 0x07, 0x01, 0x07, 0x51, 0x5f, 0xc6, 0x7e, 0x78, 0x46,
		0x2a, 0x9c, 0xb3, 0xd7, 0xd3, 0x35, 0x34, 0xf8, 0xf3, 0xb0, 0x3d, 0xaa, 0xdb, 0x84, 0xc2, 0xde,
		0x7a, 0x6e, 0x16, 0x01, 0xc8, 0x23, 0xa4, 0x09, 0xd8, 0x83, 0xa8, 0x93, 0xb9, 0x04, 0x42, 0x4b,
		0x68, 0xbe, 0x7a, 0x48, 0x45, 0xda, 0x8b, 0xb5, 0xf3, 0xd6, 0xaa, 0x23, 0xaa, 0xa5, 0xe0, 0xb7,
		0xd1, 0x8d, 0x4f, 0x0d, 0x69, 0x2c, 0x77, 0x22, 0xf6, 0x4f, 0xdb, 0xa1, 0x61, 0xbc, 0x70, 0x90,
		0x78, 0x27, 0xb5, 0x7c, 0x36, 0x64, 0xfe, 0x2d, 0xfd, 0x92, 0xfd, 0xaa, 0x76, 0xab, 0x8b, 0x79,
		0x4d, 0x67, 0xbb, 0x59, 0x4b, 0xfd, 0xe8, 0xe2, 0x6e, 0xe2, 0x9d, 0x8c, 0xba, 0x89, 0x9b, 0x52,
		0xd8, 0x64, 0xf1, 0x25, 0xfd, 0x6f, 0xf6, 0x8b, 0x51, 0x2b, 0x69, 0xcf, 0x1f, 0x4e, 0xfa, 0xab,
		0x7e, 0xf6, 0x6c, 0x5e, 0x54, 0x63, 0xc3, 0x6a, 0xd8, 0xac, 0x76, 0xb6, 0x48, 0x9d, 0xe8, 0xd4,
		0x49, 0x44, 0x7c, 0xe9, 0x8f, 0x09, 0x74, 0x5f, 0xbe, 0x63, 0x11, 0x1a, 0x31, 0x57, 0x55, 0xda,
		0x42, 0x23, 0x66, 0x0e, 0x12, 0x16, 0x1a, 0x31, 0x83, 0xfa, 0x2d, 0x3d, 0x7c, 0xed, 0x8d, 0x98,
		0x53, 0x07, 0x42, 0xc1, 0xa3, 0xdd, 0xeb, 0xd9, 0xf4, 0x3b, 0x36, 0x22, 0x0e, 0x8e, 0x8c, 0xa3,
		0xa3, 0xe4, 0xf0, 0x48, 0x3a, 0x3e, 0x6a, 0x0e, 0x90, 0xac, 0x23, 0x24, 0xeb, 0x10, 0xa9, 0x3a,
		0x46, 0x22, 0x9a, 0x90, 0x66, 0xdc, 0xd1, 0xed, 0x30, 0x97, 0x74, 0x00, 0x9d, 0xe3, 0x77, 0x1e,
		0xc4, 0x40, 0xdd, 0xfa, 0x08, 0x41, 0xa7, 0x49, 0xce, 0x79, 0x52, 0x74, 0xa2, 0xa4, 0x9d, 0x29,
		0x55, 0xa7, 0x4a, 0xde, 0xb9, 0x92, 0x77, 0xb2, 0xd4, 0x9d, 0x2d, 0x0d, 0xa7, 0x4b, 0xc4, 0xf9,
		0x92, 0x73, 0xc2, 0xb9, 0x41, 0x04, 0xc7, 0x09, 0x3d, 0x08, 0xac, 0xe4, 0xc6, 0x0b, 0x3d, 0xe4,
		0xb6, 0xa9, 0xe5, 0x60, 0x53, 0x73, 0xdf, 0x94, 0xdd, 0x38, 0x0b, 0x77, 0x4e, 0xdd, 0xad, 0xb3,
		0x71, 0xef, 0x6c, 0xdc, 0x3c, 0x17, 0x77, 0x4f, 0xcb, 0xed, 0x13, 0x73, 0xff, 0xf9, 0x4b, 0x24,
		0x93, 0x57, 0xf9, 0x20, 0xea, 0x91, 0x19, 0x8f, 0xf4, 0x90, 0x8f, 0xdd, 0x26, 0x68, 0x1a, 0xad,
		0x4a, 0xd6, 0xdb, 0x1f, 0x9a, 0x2e, 0xc2, 0xa2, 0x5a, 0xe9, 0x7a, 0xc7, 0x48, 0xa2, 0x95, 0xaf,
		0x77, 0xec, 0xa4, 0x5e, 0x12, 0x78, 0x17, 0x73, 0xa8, 0x96, 0x08, 0x12, 0x77, 0x23, 0xab, 0x5b,
		0xc8, 0xbd, 0xe2, 0xb3, 0x85, 0xa8, 0x8e, 0x6f, 0xc2, 0x5e, 0xaa, 0x28, 0x41, 0xa4, 0x6b, 0xd5,
		0xf0, 0x05, 0x9e, 0x0f, 0x71, 0x2c, 0xa6, 0x38, 0x3e, 0xea, 0x41, 0x62, 0x4f, 0x6e, 0x9c, 0xd4,
		0x43, 0x04, 0x1f, 0x22, 0xda, 0x4f, 0x1a, 0x06, 0x11, 0xed, 0x99, 0x46, 0x42, 0x44, 0x2b, 0xc8,
		0x50, 0x88, 0x68, 0x26, 0xb3, 0x11, 0x88, 0x68, 0x8f, 0x45, 0x3d, 0xa2, 0xe3, 0xb0, 0x1e, 0xf2,
		0xb8, 0x14, 0xc6, 0x63, 0xdd, 0xf5, 0x6e, 0xc4, 0xc6, 0x65, 0xdd, 0x31, 0x10, 0xe3, 0xb3, 0xee,
		0x7d, 0x2c, 0x84, 0xc6, 0x69, 0x21, 0xa4, 0xe2, 0x17, 0x52, 0x11, 0x69, 0x2f, 0xfd, 0x20, 0xb4,
		0x93, 0xe9, 0xe4, 0x89, 0xd0, 0x09, 0xa1, 0x13, 0x42, 0x27, 0x84, 0x4e, 0x08, 0x9d, 0x10, 0x3a,
		0x19, 0x14, 0x3a, 0xd1, 0x6a, 0x97, 0xfd, 0x90, 0xa3, 0xdd, 0x42, 0x12, 0xc2, 0x23, 0x3f, 0x48,
		0x42, 0x78, 0x9e, 0x91, 0x48, 0x42, 0x28, 0x0b, 0x78, 0x90, 0x84, 0x50, 0xc0, 0x16, 0xe2, 0x94,
		0x84, 0x40, 0xb0, 0x9d, 0x37, 0xb6, 0x51, 0x45, 0x09, 0x22, 0x5d, 0xab, 0x20, 0x96, 0x91, 0x87,
		0x61, 0x5b, 0x46, 0x84, 0x13, 0x0e, 0x52, 0xe3, 0x20, 0x93, 0xfd, 0x8c, 0x59, 0x90, 0xc9, 0x9e,
		0x13, 0x30, 0x42, 0x26, 0x7b, 0xc6, 0x86, 0x80, 0x4c, 0x56, 0xb0, 0xa1, 0x90, 0xc9, 0xf8, 0x87,
		0x36, 0x4c, 0xca, 0x74, 0xde, 0x10, 0x16, 0xc8, 0x9a, 0x10, 0xc8, 0x1e, 0xf9, 0x81, 0x40, 0x56,
		0x4c, 0x74, 0x0f, 0x81, 0xac, 0xb2, 0x91, 0x3d, 0x04, 0xb2, 0x62, 0xb6, 0xd0, 0x46, 0x13, 0xf2,
		0x58, 0x65, 0x37, 0x11, 0xe4, 0xb1, 0x9f, 0xfa, 0x40, 0x1e, 0xa3, 0x6c, 0x09, 0x95, 0xb6, 0x3f,
		0x44, 0xe6, 0x14, 0xdc, 0xb1, 0x8b, 0xc3, 0xdc, 0x82, 0xdb, 0x8d, 0xda, 0x6b, 0xb7, 0xfa, 0xdb,
		0xd6, 0x28, 0x35, 0xee, 0xb3, 0x88, 0x0f, 0x3a, 0xc8, 0xfe, 0x50, 0xef, 0xb4, 0x3f, 0x7b, 0x74,
		0xd9, 0x2f, 0x6f, 0x7e, 0xa5, 0x71, 0x0a, 0x02, 0x3d, 0xf8, 0x20, 0x00, 0x1d, 0xa4, 0x74, 0x7d,
		0x82, 0x7a, 0x3e, 0x31, 0x1d, 0x1f, 0x5d, 0x32, 0x1f, 0xb3, 0x8c, 0xd0, 0x25, 0xf3, 0x31, 0x0b,
		0x1d, 0x5d, 0x32, 0x9f, 0xcb, 0xc0, 0xd0, 0x25, 0x93, 0x0f, 0x5d, 0x26, 0xa7, 0xbb, 0xe7, 0xa8,
		0x15, 0x08, 0xf7, 0x34, 0x16, 0xa7, 0x94, 0x30, 0x6b, 0x51, 0xbc, 0x47, 0xa8, 0x21, 0x96, 0x7d,
		0x38, 0x8f, 0x28, 0xd6, 0xd6, 0x66, 0xec, 0xbc, 0x96, 0x92, 0x06, 0x10, 0x4b, 0x02, 0x16, 0xe8,
		0xee, 0x42, 0xff, 0x9b, 0xb8, 0xa6, 0x41, 0x22, 0xed, 0xae, 0x9f, 0xc8, 0x96, 0x94, 0x44, 0x9a,
		0xe2, 0xef, 0xfb, 0x61, 0x3b, 0x10, 0xa9, 0x87, 0x22, 0x22, 0x63, 0xda, 0xfb, 0xee, 0xd5, 0x92,
		0x45, 0xf5, 0x37, 0x8d, 0xc6, 0xd6, 0x76, 0xa3, 0xb1, 0xbe, 0xbd, 0xb9, 0xbd, 0xbe, 0xd3, 0x6c,
		0xd6, 0xb7, 0xea, 0x04, 0xc4, 0x61, 0xbb, 0x17, 0x7b, 0x22, 0x16, 0xde, 0xbb, 0x74, 0x51, 0x85,
		0xd3, 0x20, 0xa0, 0x64, 0xd2, 0xc7, 0x44, 0xc4, 0x24, 0x74, 0x5e, 0xdd, 0x7b, 0x9e, 0x98, 0xfa,
		0x65, 0x84, 0xea, 0x45, 0x61, 0x50, 0x0f, 0x53, 0x9d, 0xcb, 0xc6, 0x68, 0x60, 0xf3, 0xc1, 0x07,
		0xa3, 0x81, 0x9f, 0x01, 0x36, 0x98, 0x12, 0xfc, 0x13, 0xa0, 0x52, 0x99, 0x71, 0xc1, 0x2f, 0x0c,
		0x86, 0x0b, 0x5b, 0x5c, 0xc9, 0xd8, 0x75, 0xa6, 0xe9, 0xa2, 0x39, 0x09, 0xf4, 0x88, 0x0e, 0xf6,
		0xd7, 0x73, 0xa1, 0xaf, 0xbf, 0x0d, 0x81, 0xb1, 0xbb, 0x6b, 0x6b, 0xb5, 0x1b, 0xa1, 0xe0, 0x7a,
		0x22, 0xac, 0x5f, 0xad, 0x97, 0x73, 0x8d, 0x6e, 0x06, 0x61, 0x6f, 0x5b, 0xfd, 0x51, 0xfb, 0x8f,
		0x41, 0xfb, 0xe8, 0xa0, 0xd5, 0x1d, 0x75, 0xfb, 0xad, 0x97, 0x98, 0xcf, 0xbb, 0xa2, 0x09, 0x67,
		0x0b, 0x08, 0xd3, 0x79, 0x6f, 0x11, 0x80, 0x25, 0xc5, 0xf7, 0x09, 0x2b, 0xec, 0x45, 0x05, 0xa3,
		0x35, 0x7b, 0x57, 0x24, 0xe3, 0xd8, 0x9f, 0x90, 0x08, 0xd5, 0x72, 0x78, 0xe8, 0x84, 0xe3, 0x60,
		0xea, 0x09, 0x4b, 0x9e, 0x0b, 0xab, 0xd5, 0xb7, 0x16, 0xcc, 0xc5, 0xea, 0xf6, 0x5b, 0xd6, 0xb9,
		0x2f, 0x62, 0x37, 0x1e, 0x9f, 0x5f, 0x5b, 0x49, 0x14, 0x88, 0xe0, 0xda, 0x4a, 0xb7, 0xc2, 0x71,
		0x28, 0xcf, 0x5d, 0x99, 0xfd, 0xff, 0xec, 0x65, 0xfb, 0x89, 0x75, 0x22, 0xfc, 0xf0, 0xcc, 0xf2,
		0xb2, 0xdb, 0x3b, 0x11, 0x9e, 0xee, 0xcd, 0x42, 0xe8, 0x9c, 0x69, 0x19, 0x47, 0xbc, 0xa5, 0xd7,
		0x4f, 0x20, 0xbe, 0xa4, 0x78, 0xa8, 0xb4, 0x02, 0x2b, 0x65, 0xac, 0x4c, 0x04, 0xa7, 0x46, 0x5f,
		0x75, 0x68, 0x34, 0x9b, 0xd6, 0x1c, 0x74, 0x73, 0x08, 0xb6, 0x35, 0x00, 0x2b, 0xe1, 0x98, 0x5a,
		0x2d, 0xdc, 0xa9, 0xdb, 0xee, 0x0a, 0x37, 0x9e, 0x1d, 0xf8, 0xe1, 0x17, 0x27, 0xe3, 0xb6, 0x8e,
		0xef, 0x29, 0xdf, 0x77, 0x37, 0x47, 0xe3, 0x2b, 0x66, 0x28, 0x06, 0x1e, 0x3d, 0x99, 0x60, 0xda,
		0x32, 0xbe, 0x74, 0x66, 0x76, 0x91, 0xc8, 0xe0, 0xd2, 0xcd, 0xa0, 0xc9, 0x64, 0x64, 0x91, 0x21,
		0xc9, 0x54, 0x32, 0xac, 0xcc, 0x96, 0x2b, 0xb5, 0x65, 0x46, 0x11, 0xc8, 0x80, 0xd2, 0x99, 0xe9,
		0x74, 0x37, 0xa3, 0x69, 0xd5, 0xdd, 0x81, 0xc6, 0x3c, 0xfb, 0x09, 0x2f, 0xe8, 0x77, 0xca, 0x91,
		0xb5, 0x91, 0x98, 0x65, 0x23, 0xf4, 0x50, 0x98, 0x3a, 0x28, 0x0c, 0x28, 0x0c, 0x28, 0x0c, 0x28,
		0x8c, 0xa9, 0x14, 0x66, 0xd7, 0x8f, 0x35, 0x89, 0x43, 0x59, 0x79, 0x9b, 0xb6, 0xed, 0xb6, 0xc0,
		0x1c, 0x9d, 0xe5, 0x8a, 0x9a, 0x9c, 0x8c, 0x76, 0x67, 0x43, 0xc1, 0xe9, 0x90, 0x72, 0x3e, 0x54,
		0x9c, 0x10, 0x39, 0x67, 0x44, 0xce, 0x29, 0x51, 0x73, 0x4e, 0x7a, 0x9c, 0x94, 0x26, 0x67, 0xa5,
		0xdd, 0x69, 0xe5, 0x06, 0xb8, 0x52, 0xba, 0xe3, 0x73, 0xe1, 0x39, 0x71, 0x34, 0x95, 0x22, 0xa6,
		0x73, 0x3a, 0x7f, 0xdb, 0x30, 0xdd, 0xf5, 0x25, 0x24, 0x4a, 0x82, 0xc9, 0x94, 0x02, 0x53, 0x2a,
		0x01, 0x26, 0x59, 0xfa, 0x4b, 0xad, 0xe4, 0x97, 0x6c, 0xa9, 0x2f, 0xd9, 0x12, 0x5f, 0xaa, 0xa5,
		0xbd, 0xd5, 0xae, 0xf3, 0x23, 0x53, 0xc2, 0x9b, 0xa3, 0x8e, 0x17, 0x49, 0x29, 0x3c, 0xe7, 0xaf,
		0xa9, 0xeb, 0x51, 0xc0, 0x1d, 0x42, 0x33, 0x37, 0xc9, 0xcd, 0xd8, 0x54, 0x3a, 0x53, 0x53, 0x3f,
		0x52, 0x0c, 0x2b, 0x8d, 0x14, 0xa8, 0xc3, 0xfd, 0x81, 0x45, 0xa8, 0xc3, 0x7d, 0x9e, 0x49, 0x74,
		0xea, 0x70, 0x2b, 0x99, 0x53, 0xbe, 0x38, 0x52, 0xbb, 0x70, 0x93, 0x2f, 0x74, 0xc2, 0xd6, 0x15,
		0xab, 0x10, 0xb3, 0x22, 0x66, 0x45, 0xcc, 0x8a, 0x98, 0x15, 0x31, 0x2b, 0x62, 0x56, 0x52, 0xa8,
		0x43, 0x65, 0xbc, 0x03, 0xa1, 0x71, 0x0e, 0xc4, 0xc6, 0x37, 0x10, 0xea, 0x51, 0x46, 0x71, 0x3c,
		0x03, 0xd5, 0x71, 0x0c, 0xe4, 0x3b, 0xc7, 0xd3, 0xed, 0x14, 0x4f, 0x69, 0xf0, 0x1d, 0xc5, 0x71,
		0x0a, 0xf9, 0x92, 0xdf, 0xdc, 0xc0, 0x9a, 0x37, 0x65, 0xcd, 0xa3, 0x77, 0x61, 0xf6, 0x19, 0xa2,
		0x3a, 0xd5, 0x7c, 0xa4, 0x45, 0xeb, 0xa4, 0xef, 0x54, 0x73, 0x2e, 0x25, 0x88, 0x6b, 0x1f, 0x3c,
		0x40, 0xab, 0xae, 0x73, 0xfe, 0x6f, 0xa6, 0x5f, 0x35, 0x0e, 0x12, 0x40, 0x7f, 0xa4, 0x62, 0x97,
		0x18, 0xfa, 0x23, 0x71, 0xe8, 0x8f, 0x74, 0xd0, 0x1e, 0xfc, 0xde, 0x3b, 0xfa, 0x0d, 0xbd, 0x91,
		0x16, 0x72, 0x05, 0x7a, 0x23, 0x7d, 0xdf, 0xc3, 0x3f, 0xaa, 0x37, 0xd2, 0xca, 0xea, 0x42, 0x5f,
		0x24, 0x8a, 0x7d, 0x91, 0xe6, 0xb4, 0x04, 0x3d, 0x91, 0x0a, 0xc7, 0x0f, 0xf4, 0x44, 0x7a, 0x1c,
		0x9c, 0x14, 0xbd, 0x2a, 0x11, 0x71, 0x1a, 0x7d, 0x55, 0xf4, 0x43, 0xaa, 0x70, 0x04, 0x5d, 0xf9,
		0x5e, 0x48, 0x37, 0x31, 0x33, 0x3a, 0x08, 0x3c, 0xff, 0xd5, 0x86, 0x49, 0xe2, 0xae, 0xf6, 0xda,
		0xd2, 0xd7, 0x47, 0xe0, 0x8e, 0x29, 0xe8, 0x26, 0x50, 0xea, 0x85, 0xd1, 0x4d, 0x00, 0xdd, 0x04,
		0x68, 0x31, 0x64, 0x74, 0x13, 0x50, 0x12, 0x99, 0xa3, 0x9b, 0x00, 0xba, 0x09, 0xa0, 0x9b, 0x00,
		0xba, 0x09, 0x90, 0x74, 0x46, 0x64, 0x65, 0x1b, 0x74, 0x13, 0xb0, 0xaa, 0xdc, 0x4d, 0x20, 0x8f,
		0x4c, 0xb2, 0xa2, 0x7d, 0x47, 0xba, 0x67, 0x74, 0x64, 0xed, 0x7b, 0x6c, 0x43, 0x7d, 0x06, 0xea,
		0x33, 0x18, 0xb8, 0x3f, 0x6a, 0x6e, 0x90, 0xac, 0x3b, 0x24, 0xeb, 0x16, 0xa9, 0xba, 0x47, 0xbd,
		0x6e, 0x52, 0xb3, 0xbb, 0xcc, 0x5f, 0x0a, 0xcd, 0xfa, 0x8c, 0xcd, 0x0d, 0x42, 0x05, 0x1a, 0xdb,
		0x28, 0xd0, 0xb8, 0xf5, 0x41, 0x81, 0xc6, 0xf7, 0x8d, 0x42, 0x81, 0xc6, 0x53, 0x31, 0x00, 0x05,
		0x1a, 0x3f, 0xb1, 0xe4, 0x29, 0x17, 0x68, 0x34, 0x36, 0x76, 0x1a, 0x3b, 0x5b, 0xdb, 0x1b, 0x3b,
		0x4d, 0xac, 0x7d, 0x53, 0xd6, 0x3e, 0x0a, 0x35, 0xb2, 0xcf, 0x10, 0x8d, 0x2e, 0x94, 0x6f, 0x8a,
		0xd3, 0x28, 0xfe, 0xea, 0xc6, 0x9e, 0x1f, 0x9e, 0x39, 0xae, 0xe7, 0xc5, 0x22, 0x49, 0xe8, 0x88,
		0x2a, 0xf7, 0xd8, 0x06, 0x51, 0x05, 0xa2, 0x0a, 0x44, 0x15, 0x88, 0x2a, 0x10, 0x55, 0x20, 0xaa,
		0x90, 0x42, 0x1d, 0x7f, 0x72, 0xd9, 0x58, 0x78, 0x29, 0x27, 0x8c, 0x9c, 0xff, 0x46, 0xa1, 0x40,
		0xc7, 0xc6, 0x5b, 0xde, 0xa2, 0xca, 0x1d, 0x1b, 0x5f, 0xfd, 0xe3, 0xf3, 0xf1, 0xf1, 0xe4, 0xef,
		0x83, 0x6f, 0xe9, 0xcf, 0xee, 0xb7, 0xe1, 0xbf, 0x5e, 0xff, 0x9b, 0x0a, 0xf6, 0xa6, 0x86, 0x1e,
		0x1f, 0xaf, 0x0d, 0xff, 0x69, 0x23, 0x04, 0xa8, 0x60, 0x08, 0x40, 0xab, 0xc7, 0x1d, 0x7a, 0xdb,
		0x81, 0xe6, 0x83, 0xe6, 0x83, 0xe6, 0x83, 0xe6, 0x83, 0xe6, 0xa3, 0xb7, 0xdd, 0x8f, 0x5c, 0x14,
		0x7a, 0xdb, 0xdd, 0xfe, 0xe0, 0xe8, 0xf4, 0xfb, 0x46, 0xe1, 0xe8, 0xf4, 0xa9, 0x10, 0x80, 0xa3,
		0xd3, 0x9f, 0x58, 0xf2, 0xe8, 0x6d, 0x87, 0x35, 0x6f, 0x3c, 0x2f, 0xa2, 0x63, 0x05, 0xf4, 0x12,
		0x0d, 0x7a, 0x89, 0x90, 0xb1, 0x3f, 0x26, 0xa4, 0x98, 0xcc, 0xec, 0x81, 0x66, 0x02, 0xcd, 0x04,
		0x9a, 0x09, 0x34, 0x13, 0x68, 0x26, 0xd0, 0x4c, 0x68, 0xa1, 0x4e, 0x32, 0x39, 0x75, 0x48, 0x38,
		0xa9, 0x65, 0x47, 0xb5, 0x05, 0xe5, 0x04, 0xca, 0x09, 0x94, 0x13, 0x28, 0x27, 0x50, 0x4e, 0x7e,
		0xbc, 0xe4, 0xb7, 0x9a, 0xcd, 0x4d, 0xe4, 0x9b, 0x43, 0x3c, 0x81, 0x78, 0x02, 0xf1, 0xa4, 0x08,
		0xf1, 0x24, 0xeb, 0xae, 0x47, 0x4d, 0x41, 0x99, 0x19, 0x05, 0x19, 0x05, 0x32, 0x0a, 0x64, 0x14,
		0xc8, 0x28, 0x90, 0x51, 0x20, 0xa3, 0x90, 0x42, 0x1d, 0x11, 0x4e, 0x2f, 0x44, 0xec, 0x52, 0xe9,
		0xe9, 0xbd, 0x48, 0x2c, 0x6f, 0x10, 0xb0, 0xa5, 0x1d, 0x4e, 0x2f, 0xe8, 0x20, 0xe0, 0x20, 0xea,
		0xcb, 0xd8, 0x0f, 0xcf, 0x48, 0x85, 0x73, 0xf6, 0x7a, 0xba, 0x86, 0x06, 0x7f, 0x1e, 0xb6, 0x47,
		0x75, 0x9b, 0x50, 0xd8, 0x5b, 0xcf, 0xcd, 0x22, 0x00, 0x79, 0x84, 0x34, 0x01, 0x7b, 0x10, 0x75,
		0x32, 0x97, 0x40, 0x68, 0x09, 0xcd, 0x57, 0x0f, 0xa9, 0x48, 0x7b, 0xb1, 0x76, 0xde, 0x5a, 0x75,
		0x44, 0xb5, 0x14, 0xfc, 0x76, 0x25, 0xa3, 0xda, 0x49, 0x1c, 0x4d, 0xdc, 0x33, 0x9d, 0xbd, 0x55,
		0xef, 0xd0, 0x85, 0x1b, 0x93, 0x10, 0xd1, 0x22, 0xa2, 0x45, 0x44, 0x8b, 0x88, 0x16, 0x11, 0x2d,
		0x22, 0x5a, 0x52, 0xa8, 0x73, 0x12, 0x45, 0x81, 0x70, 0x49, 0x45, 0xb3, 0xf5, 0x4a, 0x2f, 0x11,
		0x02, 0x73, 0x33, 0xef, 0xd8, 0x14, 0x8b, 0x53, 0x11, 0x8b, 0x70, 0x8c, 0x3c, 0x89, 0xef, 0xec,
		0xa4, 0xa3, 0xbd, 0xf7, 0x9b, 0xf5, 0xf5, 0xfa, 0x2f, 0x56, 0x5f, 0x64, 0x67, 0xa2, 0xd6, 0xc6,
		0xda, 0x26, 0xa5, 0x28, 0x9f, 0x98, 0x4b, 0xbf, 0xcf, 0xb5, 0xdf, 0xac, 0x33, 0x62, 0xc7, 0xc8,
		0x54, 0xbd, 0xfc, 0xbd, 0xde, 0xfe, 0xde, 0x85, 0x88, 0x83, 0x6f, 0x62, 0x56, 0x60, 0x22, 0x7e,
		0x05, 0xbc, 0x3a, 0x26, 0xe2, 0x7f, 0x6f, 0x9e, 0xdf, 0xed, 0x51, 0x67, 0x98, 0x8b, 0xbf, 0x3a,
		0xe3, 0x2f, 0x49, 0xdc, 0xf6, 0xfc, 0xf1, 0x54, 0x6f, 0x38, 0xbe, 0x86, 0x49, 0x68, 0xd9, 0x42,
		0x75, 0xa2, 0x53, 0x27, 0x11, 0xf1, 0xa5, 0x3f, 0x26, 0x30, 0xa4, 0xe9, 0x8e, 0x45, 0x98, 0xd7,
		0xa4, 0xc5, 0x00, 0xcc, 0x6b, 0xa2, 0x19, 0x4c, 0x60, 0x5e, 0xd3, 0xa3, 0x22, 0x03, 0xcc, 0x6b,
		0x52, 0xfc, 0xf0, 0xb5, 0xcf, 0x6b, 0x4a, 0x1d, 0x08, 0x05, 0x8f, 0x76, 0xaf, 0x67, 0xd3, 0xef,
		0xd8, 0x88, 0x38, 0x38, 0x32, 0x8e, 0x8e, 0x92, 0xc3, 0x23, 0xe9, 0xf8, 0xa8, 0xaa, 0x69, 0x38,
		0x20, 0xe3, 0xee, 0x18, 0x69, 0x28, 0x53, 0xba, 0x4f, 0x3f, 0x74, 0x3b, 0xcc, 0x25, 0x25, 0x80,
		0x42, 0x26, 0xc9, 0x1d, 0x0c, 0xd4, 0xad, 0x90, 0x10, 0x74, 0x9a, 0xe4, 0x9c, 0x27, 0x45, 0x27,
		0x4a, 0xda, 0x99, 0x52, 0x75, 0xaa, 0xe4, 0x9d, 0x2b, 0x79, 0x27, 0x4b, 0xdd, 0xd9, 0xd2, 0x70,
		0xba, 0x44, 0x9c, 0x2f, 0x39, 0x27, 0x9c, 0x1b, 0x44, 0x70, 0xea, 0xf0, 0x83, 0xc0, 0x4a, 0x6e,
		0x0a, 0xf1, 0x43, 0x6e, 0x9b, 0x5a, 0xa9, 0x36, 0x35, 0xf7, 0x4d, 0xd9, 0x8d, 0xb3, 0x70, 0xe7,
		0xd4, 0xdd, 0x3a, 0x1b, 0xf7, 0xce, 0xc6, 0xcd, 0x73, 0x71, 0xf7, 0xb4, 0xdc, 0x3e, 0x31, 0xf7,
		0x9f, 0xbf, 0x44, 0x32, 0xc9, 0xaa, 0x0f, 0xa2, 0x1e, 0x99, 0x29, 0xca, 0x0f, 0xf9, 0xd8, 0x6d,
		0x82, 0xa6, 0xd1, 0x6a, 0x78, 0x75, 0xfb, 0x43, 0xd3, 0x45, 0x58, 0x54, 0x1b, 0x62, 0xdd, 0x31,
		0x92, 0x68, 0x83, 0xac, 0x3b, 0x76, 0x52, 0xef, 0x1c, 0x74, 0x17, 0x73, 0xa8, 0x76, 0x12, 0x22,
		0xee, 0x46, 0x56, 0xb7, 0x90, 0x7b, 0xc5, 0x67, 0x0b, 0x51, 0x9d, 0xf2, 0x8c, 0xbd, 0x54, 0x51,
		0x82, 0x48, 0xd7, 0xaa, 0xe1, 0x0b, 0x3c, 0x1f, 0xe2, 0x58, 0x4c, 0x71, 0xca, 0xf4, 0x83, 0xc4,
		0x9e, 0xdc, 0xd4, 0xe9, 0x87, 0x08, 0x3e, 0x44, 0xb4, 0x9f, 0x34, 0x0c, 0x22, 0xda, 0x33, 0x8d,
		0x84, 0x88, 0x56, 0x90, 0xa1, 0x10, 0xd1, 0x4c, 0x66, 0x23, 0x10, 0xd1, 0x1e, 0x8b, 0x7a, 0x44,
		0xa7, 0x66, 0x3f, 0xe4, 0x71, 0x29, 0x4c, 0xd1, 0xbe, 0xeb, 0xdd, 0x88, 0x4d, 0xd5, 0xbe, 0x63,
		0x20, 0xa6, 0x6c, 0xdf, 0xfb, 0x58, 0x08, 0x4d, 0xdd, 0x46, 0x48, 0xc5, 0x2f, 0xa4, 0x22, 0x32,
		0x85, 0xea, 0x41, 0x68, 0x27, 0x33, 0xf0, 0x03, 0xa1, 0x13, 0x42, 0x27, 0x84, 0x4e, 0x08, 0x9d,
		0x10, 0x3a, 0x21, 0x74, 0x32, 0x28, 0x74, 0xa2, 0x35, 0x55, 0xeb, 0x21, 0x47, 0xbb, 0x85, 0x24,
		0x84, 0x47, 0x7e, 0x90, 0x84, 0xf0, 0x3c, 0x23, 0x91, 0x84, 0x50, 0x16, 0xf0, 0x20, 0x09, 0xa1,
		0x80, 0x2d, 0xc4, 0x29, 0x09, 0x81, 0xe0, 0xd4, 0x2f, 0x6c, 0xa3, 0x8a, 0x12, 0x44, 0xba, 0x56,
		0x41, 0x2c, 0x23, 0x0f, 0xc3, 0xb6, 0x8c, 0x08, 0x27, 0x1c, 0xa4, 0xc6, 0x41, 0x26, 0xfb, 0x19,
		0xb3, 0x20, 0x93, 0x3d, 0x27, 0x60, 0x84, 0x4c, 0xf6, 0x8c, 0x0d, 0x01, 0x99, 0xac, 0x60, 0x43,
		0x21, 0x93, 0xf1, 0x0f, 0x6d, 0x98, 0x94, 0xe9, 0xbc, 0x21, 0x2c, 0x90, 0x35, 0x21, 0x90, 0x3d,
		0xf2, 0x03, 0x81, 0xac, 0x98, 0xe8, 0x1e, 0x02, 0x59, 0x65, 0x23, 0x7b, 0x08, 0x64, 0xc5, 0x6c,
		0xa1, 0x8d, 0x26, 0xe4, 0xb1, 0xca, 0x6e, 0x22, 0xc8, 0x63, 0x3f, 0xf5, 0x81, 0x3c, 0x46, 0xd9,
		0x12, 0x2a, 0x6d, 0x7f, 0x88, 0xcc, 0x2a, 0xb8, 0x63, 0x17, 0x8f, 0xd9, 0x05, 0xb7, 0x5b, 0xb5,
		0xd7, 0x6e, 0x75, 0xb8, 0xad, 0x51, 0x6a, 0xdd, 0x67, 0x91, 0x1f, 0x76, 0x90, 0xfd, 0xb1, 0xde,
		0x69, 0x7f, 0xf6, 0xf0, 0xb2, 0x5f, 0xde, 0xfc, 0x4a, 0xe3, 0x24, 0x04, 0x7a, 0x10, 0x42, 0x00,
		0x3e, 0x48, 0x69, 0xfb, 0x04, 0x35, 0x7d, 0x62, 0x5a, 0x3e, 0x3a, 0x65, 0x3e, 0x66, 0x19, 0xa1,
		0x53, 0xe6, 0x63, 0x16, 0x3a, 0x3a, 0x65, 0x3e, 0x97, 0x85, 0xa1, 0x53, 0x26, 0x1f, 0xca, 0x4c,
		0x4e, 0x7b, 0xcf, 0x51, 0x2b, 0x10, 0xee, 0x69, 0x2c, 0x4e, 0x29, 0x61, 0xd6, 0xa2, 0x80, 0x8f,
		0x50, 0x53, 0x2c, 0xfb, 0x70, 0x1e, 0x55, 0xac, 0xad, 0xcd, 0xf8, 0x79, 0x2d, 0x25, 0x0d, 0x20,
		0x96, 0x04, 0x2c, 0xd0, 0xdd, 0x89, 0xfe, 0x37, 0x71, 0x4d, 0x83, 0x44, 0xda, 0x5d, 0x3f, 0x91,
		0x2d, 0x29, 0x89, 0x34, 0xc6, 0xdf, 0xf7, 0xc3, 0x76, 0x20, 0x52, 0x0f, 0x45, 0x44, 0xca, 0xb4,
		0xf7, 0xdd, 0xab, 0x25, 0x8b, 0xea, 0x6f, 0x1a, 0x8d, 0xad, 0xed, 0x46, 0x63, 0x7d, 0x7b, 0x73,
		0x7b, 0x7d, 0xa7, 0xd9, 0xac, 0x6f, 0xd5, 0x09, 0x08, 0xc4, 0x76, 0x2f, 0xf6, 0x44, 0x2c, 0xbc,
		0x77, 0xe9, 0xa2, 0x0a, 0xa7, 0x41, 0x40, 0xc9, 0xa4, 0x8f, 0x89, 0x88, 0x49, 0x68, 0xbd, 0xba,
		0xf7, 0x3c, 0x31, 0x05, 0xcc, 0x10, 0xe5, 0x8b, 0xc2, 0xb8, 0x1e, 0xb6, 0x5a, 0x97, 0x8d, 0x31,
		0xc1, 0xe6, 0x03, 0x10, 0xc6, 0x04, 0x3f, 0x0b, 0x70, 0x30, 0x31, 0xf8, 0xa7, 0x80, 0xa5, 0x32,
		0xa3, 0x83, 0x5f, 0x18, 0x0c, 0x19, 0xb6, 0xb8, 0x92, 0xb1, 0xeb, 0x4c, 0xd3, 0x65, 0x73, 0x12,
		0xe8, 0x11, 0x1f, 0xec, 0xaf, 0xe7, 0x42, 0x5f, 0xaf, 0x1b, 0x02, 0x23, 0x78, 0xd7, 0xd6, 0x6a,
		0x37, 0x82, 0xc1, 0xf5, 0x44, 0x58, 0xbf, 0x5a, 0x2f, 0xe7, 0x5a, 0xdd, 0x0c, 0xc6, 0xde, 0x1e,
		0xf4, 0xfb, 0xad, 0x51, 0xab, 0x3f, 0x6a, 0xff, 0x31, 0x68, 0x1f, 0x1d, 0xb4, 0xba, 0xa3, 0x6e,
		0xbf, 0xf5, 0x12, 0x03, 0x7b, 0x57, 0x04, 0xe2, 0x6c, 0x15, 0x61, 0x5c, 0xef, 0x2d, 0x26, 0xb0,
		0x24, 0xff, 0x3e, 0x75, 0x99, 0xbd, 0xa8, 0x60, 0xfc, 0x66, 0xef, 0x8a, 0x64, 0x1c, 0xfb, 0x13,
		0x12, 0xc1, 0x5b, 0x0e, 0x14, 0x9d, 0x70, 0x1c, 0x4c, 0x3d, 0x61, 0xc9, 0x73, 0x61, 0xa5, 0xef,
		0xca, 0x5a, 0x78, 0x67, 0xab, 0xdb, 0x6f, 0x59, 0xe7, 0xbe, 0x88, 0xdd, 0x78, 0x7c, 0x7e, 0x6d,
		0x25, 0x51, 0x20, 0x82, 0xeb, 0xe3, 0x30, 0xdd, 0x12, 0x96, 0x3c, 0x77, 0x65, 0xf6, 0xff, 0xb3,
		0x77, 0xee, 0x27, 0xd6, 0x89, 0xf0, 0xc3, 0x33, 0xcb, 0xcb, 0x6e, 0xf0, 0x44, 0x78, 0xba, 0xf7,
		0x0c, 0xa1, 0xb3, 0xa7, 0x65, 0x38, 0xf1, 0x96, 0x16, 0x00, 0x81, 0x88, 0x93, 0xe2, 0x41, 0xd3,
		0x0a, 0xba, 0x94, 0xb3, 0x36, 0x11, 0xae, 0x1a, 0x7d, 0xd5, 0xa1, 0xd1, 0xdc, 0x5a, 0x73, 0x18,
		0xce, 0x23, 0xfc, 0xd6, 0x00, 0xae, 0xa4, 0xa3, 0x6c, 0xb5, 0x90, 0xa7, 0x6e, 0xcb, 0x2b, 0xdc,
		0x7c, 0x76, 0x34, 0x71, 0xff, 0x9a, 0x8a, 0x6c, 0x75, 0xa9, 0xde, 0x78, 0x37, 0x79, 0x3e, 0x37,
		0x36, 0x28, 0x86, 0x1d, 0x3d, 0x73, 0x94, 0xb5, 0x65, 0x81, 0xe9, 0xcc, 0xf6, 0x22, 0x91, 0xd5,
		0xa5, 0x9b, 0x41, 0x93, 0xc9, 0xd2, 0x22, 0x43, 0x92, 0xa9, 0x64, 0x5d, 0x99, 0x2d, 0x5d, 0xea,
		0x9a, 0x2b, 0x9c, 0xcd, 0xe4, 0x0d, 0x3d, 0xe1, 0x39, 0x81, 0x1f, 0x7e, 0xd1, 0xb7, 0xed, 0x96,
		0x47, 0x04, 0xdf, 0x98, 0xa3, 0x69, 0xc5, 0xeb, 0x1d, 0xde, 0xaf, 0x3d, 0x05, 0x99, 0x42, 0xca,
		0x31, 0xa9, 0x14, 0x63, 0x8a, 0x0a, 0x31, 0x89, 0x14, 0x62, 0xda, 0x1a, 0x31, 0x81, 0x14, 0xe1,
		0x6a, 0x1d, 0xd5, 0xeb, 0x1e, 0x8e, 0x6f, 0xcf, 0xea, 0xc8, 0xc8, 0x48, 0xdc, 0x14, 0xca, 0xda,
		0x34, 0x3b, 0x33, 0x32, 0x4e, 0x8d, 0x92, 0x73, 0x23, 0xe9, 0xe4, 0xa8, 0x39, 0x3b, 0xb2, 0x4e,
		0x8f, 0xac, 0xf3, 0xa3, 0xea, 0x04, 0xf5, 0x3a, 0x43, 0xcd, 0x4e, 0x91, 0x8c, 0x73, 0xcc, 0x0d,
		0x49, 0x23, 0x2b, 0xc7, 0x73, 0xa5, 0x4b, 0xaf, 0x2c, 0xf5, 0xc6, 0x34, 0x14, 0xa7, 0x52, 0x76,
		0xa2, 0x14, 0x9d, 0x29, 0x69, 0xa7, 0x4a, 0xd5, 0xb9, 0x92, 0x77, 0xb2, 0xe4, 0x9d, 0x2d, 0x75,
		0xa7, 0x4b, 0xc3, 0xf9, 0x12, 0x71, 0xc2, 0xf9, 0xcb, 0xa2, 0x5b, 0x9c, 0x3a, 0x0d, 0x69, 0x24,
		0xe9, 0xdc, 0x89, 0x1f, 0x77, 0x08, 0xd9, 0x34, 0x7f, 0x7d, 0xb4, 0x1a, 0x40, 0x12, 0xee, 0x32,
		0xea, 0x45, 0x52, 0x0a, 0xcf, 0xf9, 0x6b, 0xea, 0x7a, 0x18, 0x5f, 0xfa, 0x48, 0x86, 0x83, 0xf1,
		0xa5, 0x37, 0x7f, 0x11, 0xa3, 0x40, 0x59, 0xb8, 0x37, 0x06, 0x88, 0x34, 0xf5, 0x43, 0xb9, 0xb9,
		0x41, 0x18, 0x8c, 0xb6, 0xd1, 0xf8, 0x98, 0xfd, 0x6a, 0xcb, 0x1f, 0x1c, 0x1a, 0x1f, 0x17, 0x68,
		0x27, 0x7a, 0xb6, 0x56, 0xc4, 0x7d, 0xac, 0x6e, 0x21, 0x4e, 0x8d, 0x8f, 0x1b, 0x1b, 0x3b, 0x8d,
		0x9d, 0xad, 0xed, 0x8d, 0x1d, 0xf4, 0x3f, 0xae, 0xec, 0x5e, 0x42, 0xff, 0x63, 0x8e, 0x04, 0xfa,
		0x05, 0x9e, 0x0b, 0xad, 0xe7, 0x41, 0xa1, 0x85, 0x6a, 0x76, 0x2c, 0xe4, 0x7b, 0x44, 0xcf, 0xab,
		0x7c, 0x0f, 0xa7, 0x55, 0xf7, 0x9a, 0x83, 0xd3, 0xaa, 0x47, 0x2c, 0x25, 0x9c, 0x56, 0x3d, 0x66,
		0xa1, 0xe3, 0xb4, 0xea, 0x99, 0x06, 0xe2, 0xb4, 0x8a, 0x4f, 0x3c, 0x46, 0xf8, 0xb4, 0x8a, 0xe6,
		0xc1, 0x02, 0xc5, 0x03, 0x05, 0xb2, 0x07, 0x09, 0x15, 0x3d, 0x40, 0x00, 0xbf, 0x27, 0xc6, 0xef,
		0x25, 0x25, 0x90, 0x5b, 0x65, 0xf8, 0x99, 0x69, 0xe0, 0xf8, 0xe0, 0xf8, 0xe0, 0xf8, 0xe0, 0xf8,
		0xe0, 0xf8, 0xe0, 0xf8, 0x95, 0xe2, 0xf8, 0xbe, 0x27, 0x42, 0xe9, 0xcb, 0x6b, 0xa2, 0x23, 0x13,
		0x08, 0x1d, 0xf1, 0xd8, 0x9d, 0xf9, 0xa3, 0x7a, 0xe7, 0x26, 0x04, 0x11, 0x75, 0xf1, 0x42, 0x7b,
		0xfd, 0xc3, 0xbd, 0x4f, 0x1b, 0xa3, 0xa3, 0xde, 0xc7, 0x41, 0xfb, 0x68, 0xd4, 0xed, 0x1c, 0xfc,
		0x36, 0x1a, 0xfc, 0x79, 0xd8, 0xa6, 0x86, 0xaf, 0xd9, 0x61, 0x5e, 0x42, 0x32, 0xdd, 0x81, 0xe6,
		0x31, 0x68, 0xfe, 0x82, 0x0f, 0x7b, 0x9d, 0x83, 0xc1, 0x68, 0xd0, 0x1b, 0xcd, 0xbe, 0xa4, 0x6f,
		0x98, 0xe0, 0xe4, 0xfa, 0x5f, 0xf0, 0x5a, 0x1f, 0xf7, 0x5a, 0xfb, 0x83, 0x8f, 0xef, 0x46, 0x07,
		0xed, 0xc1, 0xef, 0xbd, 0xa3, 0xdf, 0xf0, 0x52, 0x0d, 0x79, 0xa9, 0x83, 0xa3, 0xd6, 0x41, 0xbf,
		0x33, 0xc0, 0x7b, 0x35, 0xec, 0xbd, 0x7e, 0xea, 0x1c, 0x0d, 0x3e, 0xb6, 0xba, 0x54, 0xdf, 0x27,
		0x29, 0x8b, 0x86, 0x88, 0x49, 0x88, 0x59, 0xf1, 0x0d, 0xb3, 0x6e, 0x30, 0xeb, 0xe6, 0xbb, 0xbd,
		0x2f, 0x6f, 0x5a, 0x02, 0xd6, 0x56, 0x7a, 0x36, 0x91, 0x99, 0xe5, 0x4c, 0xab, 0x31, 0x66, 0x2f,
		0x7b, 0x5c, 0xe9, 0xb7, 0xf6, 0xfc, 0x69, 0x75, 0xfd, 0xf0, 0x0b, 0x85, 0x69, 0xcd, 0xdf, 0x2a,
		0xd9, 0x12, 0x5d, 0x06, 0x97, 0x09, 0x9d, 0x46, 0x31, 0x99, 0x35, 0xe8, 0x13, 0x83, 0x3e, 0x31,
		0x3f, 0x58, 0x27, 0xe8, 0x13, 0xf3, 0xbd, 0x05, 0x8c, 0x3e, 0x31, 0x8f, 0xe5, 0x39, 0xe8, 0x13,
		0x43, 0x8f, 0x7c, 0x92, 0xe9, 0x13, 0x23, 0x83, 0x4b, 0x7a, 0xe7, 0xf1, 0xa9, 0x51, 0xb4, 0x4e,
		0xe2, 0xeb, 0x38, 0x89, 0x27, 0xef, 0x40, 0x49, 0x3b, 0x52, 0xaa, 0x0e, 0x95, 0xbc, 0x63, 0x25,
		0xef, 0x60, 0xa9, 0x3b, 0x5a, 0x62, 0xaa, 0x17, 0x11, 0xdc, 0xa2, 0xe2, 0x80, 0x73, 0x83, 0x5c,
		0xef, 0xff, 0xdc, 0xb1, 0x08, 0xc7, 0xd7, 0x4e, 0x42, 0xa8, 0x08, 0xe6, 0x0e, 0xa6, 0xae, 0x9a,
		0x49, 0x6c, 0x07, 0xd2, 0x72, 0xd6, 0x64, 0x9d, 0x36, 0x65, 0xe7, 0xcd, 0xc2, 0x89, 0x53, 0x77,
		0xe6, 0x6c, 0x9c, 0x3a, 0x1b, 0xe7, 0xce, 0xc5, 0xc9, 0xd3, 0x72, 0xf6, 0xc4, 0x9c, 0x3e, 0x59,
		0xe7, 0x9f, 0x1b, 0x46, 0xa3, 0xb5, 0xf9, 0x0f, 0x31, 0x99, 0xca, 0xe9, 0x0f, 0x23, 0x12, 0x40,
		0x9e, 0x0c, 0x70, 0x20, 0x05, 0xac, 0xc8, 0x01, 0x17, 0x92, 0xc0, 0x8e, 0x2c, 0xb0, 0x23, 0x0d,
		0xdc, 0xc8, 0x03, 0x4d, 0x12, 0x41, 0x94, 0x4c, 0x90, 0x27, 0x15, 0xb9, 0x81, 0x27, 0xee, 0xf8,
		0xcb, 0x74, 0x42, 0x1f, 0x87, 0x16, 0xe0, 0x3e, 0xb7, 0x97, 0xf8, 0x9e, 0xde, 0x15, 0xa7, 0xee,
		0x34, 0x90, 0x64, 0x1b, 0xf6, 0xad, 0x18, 0x9b, 0x75, 0x73, 0xb2, 0x49, 0xdb, 0x39, 0x24, 0xfe,
		0xbe, 0x69, 0x95, 0x66, 0xb2, 0xa5, 0x99, 0x9c, 0xe8, 0x26, 0x4b, 0xda, 0xc9, 0x8d, 0x7e, 0xb2,
		0xa5, 0xa1, 0x6c, 0xe9, 0x28, 0x57, 0x5a, 0x4a, 0x9b, 0x9e, 0x12, 0xa7, 0xa9, 0xf9, 0x4b, 0x27,
		0x57, 0x8a, 0xfa, 0x63, 0x3e, 0x18, 0x45, 0x81, 0x70, 0x43, 0x0e, 0x98, 0xbb, 0xd0, 0xa0, 0xea,
		0x2f, 0xb0, 0x81, 0x0c, 0xdb, 0x3c, 0xf6, 0x59, 0x1c, 0x71, 0x8a, 0xa2, 0x66, 0xe6, 0x22, 0x88,
		0x42, 0x10, 0x85, 0x20, 0x0a, 0x41, 0x14, 0x82, 0x28, 0x04, 0x51, 0x08, 0xa2, 0x10, 0x44, 0x21,
		0x88, 0x42, 0x10, 0x85, 0x20, 0x0a, 0x41, 0x94, 0xae, 0x77, 0x7b, 0x31, 0x0d, 0xa4, 0xef, 0xc8,
		0x68, 0x12, 0x05, 0xd1, 0xd9, 0xb5, 0x33, 0xeb, 0x3e, 0x75, 0xea, 0x8b, 0x98, 0x4f, 0x60, 0xf5,
		0xf0, 0x2d, 0x80, 0x7c, 0x83, 0x7c, 0x83, 0x7c, 0x83, 0x7c, 0x83, 0x7c, 0x83, 0x7c, 0x83, 0x7c,
		0x83, 0x7c, 0xaf, 0xcc, 0xc3, 0x7c, 0xc3, 0x88, 0x7a, 0x37, 0x19, 0x98, 0x4a, 0x7b, 0x5c, 0xe6,
		0xed, 0x0f, 0x0f, 0x0f, 0x66, 0x71, 0x19, 0xa7, 0x79, 0xc7, 0x68, 0x26, 0xe3, 0x35, 0xef, 0xd8,
		0xcd, 0x6d, 0x44, 0xe0, 0x5d, 0x88, 0xe3, 0x32, 0x32, 0x90, 0x99, 0x97, 0x5b, 0xdd, 0x92, 0xee,
		0x15, 0xdf, 0x2d, 0xb9, 0xd1, 0x6c, 0x62, 0x53, 0x62, 0x53, 0x1a, 0x40, 0x8c, 0xf9, 0x58, 0x39,
		0x84, 0x74, 0x6a, 0x9a, 0x53, 0xb0, 0x13, 0xdf, 0xa3, 0x35, 0x46, 0xe7, 0x87, 0x61, 0x4f, 0x6e,
		0x31, 0x84, 0xd1, 0x22, 0xcc, 0x84, 0x30, 0x5a, 0xe2, 0x5a, 0x85, 0x30, 0x5a, 0xe6, 0x06, 0x83,
		0x30, 0xaa, 0xd8, 0x70, 0x08, 0xa3, 0xd5, 0x0b, 0x19, 0x19, 0x0a, 0xa3, 0x49, 0xec, 0x30, 0x21,
		0x09, 0xcb, 0x44, 0xa1, 0xde, 0x60, 0x60, 0x6b, 0x3b, 0x9c, 0x5e, 0xf0, 0xf1, 0x10, 0x83, 0xa8,
		0x2f, 0x63, 0x3f, 0x3c, 0x63, 0x25, 0x73, 0xd8, 0xeb, 0xe9, 0x1a, 0xee, 0xb6, 0xde, 0xb5, 0xbb,
		0x36, 0x23, 0x35, 0xa9, 0x9e, 0x8d, 0x9b, 0xe9, 0xec, 0xda, 0x3c, 0x82, 0xed, 0x5f, 0xb8, 0xac,
		0xe0, 0x4e, 0xe6, 0x6e, 0x19, 0x2d, 0xdf, 0xd9, 0xca, 0x65, 0x25, 0x6f, 0x65, 0xeb, 0xf6, 0xad,
		0x55, 0x87, 0x4e, 0x54, 0x05, 0xbe, 0x05, 0x9d, 0xe8, 0x09, 0x3b, 0x24, 0x25, 0x54, 0x97, 0x73,
		0xed, 0x9d, 0x91, 0x50, 0x34, 0x33, 0x19, 0x4a, 0x51, 0x11, 0x66, 0x42, 0x29, 0x2a, 0x71, 0xb1,
		0x42, 0x29, 0x2a, 0x73, 0x83, 0x41, 0x29, 0x52, 0x6c, 0x38, 0x94, 0xa2, 0xea, 0x05, 0x2d, 0x4c,
		0x53, 0xe8, 0x36, 0x37, 0x18, 0x89, 0x44, 0xdb, 0xc8, 0xa1, 0x2b, 0xf8, 0x83, 0x1c, 0xba, 0x72,
		0x8d, 0x46, 0x0e, 0x9d, 0x2e, 0x8c, 0x43, 0x0e, 0x9d, 0x82, 0x2d, 0xc9, 0x39, 0x87, 0xae, 0xb1,
		0xb1, 0xd3, 0xd8, 0xd9, 0xda, 0xde, 0xd8, 0x41, 0x2a, 0x1d, 0xf6, 0xa6, 0x09, 0x04, 0x99, 0x8f,
		0x95, 0x48, 0xa5, 0x33, 0xce, 0x37, 0xd8, 0x5f, 0x85, 0x7f, 0x76, 0x2e, 0xf9, 0xe8, 0xa3, 0x73,
		0x7b, 0x21, 0x8e, 0x16, 0x61, 0x26, 0xc4, 0xd1, 0x12, 0x57, 0x2a, 0xc4, 0xd1, 0x32, 0x37, 0x18,
		0xc4, 0x51, 0xc5, 0x86, 0x43, 0x1c, 0xad, 0x5e, 0xd4, 0x88, 0xfa, 0xe2, 0xd2, 0x29, 0x02, 0xea,
		0x8b, 0x8b, 0xfe, 0x40, 0x1b, 0x2d, 0xd7, 0x68, 0x68, 0xa3, 0xba, 0x20, 0x0e, 0xda, 0xa8, 0x82,
		0x2d, 0x89, 0xfa, 0x62, 0x6c, 0xca, 0x4a, 0x6c, 0x4a, 0x88, 0xa2, 0x85, 0x7c, 0x20, 0x8a, 0x9a,
		0x64, 0x19, 0xd5, 0xc9, 0x6a, 0xad, 0x30, 0x8c, 0xa4, 0x9b, 0x22, 0x25, 0xed, 0x01, 0x6b, 0xc9,
		0xf8, 0x5c, 0x5c, 0xb8, 0x13, 0x57, 0x9e, 0xa7, 0xc1, 0x58, 0x2d, 0x9a, 0x88, 0x70, 0x9c, 0x89,
		0x8c, 0x4e, 0x28, 0xe4, 0xd7, 0x28, 0xfe, 0xe2, 0xf8, 0x61, 0x22, 0xdd, 0x70, 0x2c, 0x6a, 0xb7,
		0x7f, 0x23, 0xb9, 0xf3, 0x3b, 0xb5, 0x49, 0x1c, 0xc9, 0x68, 0x1c, 0x05, 0x49, 0xfe, 0xad, 0x36,
		0xd3, 0x1d, 0x6a, 0x6e, 0x2c, 0xdc, 0x24, 0xfb, 0x59, 0x0b, 0x12, 0xef, 0xa4, 0x16, 0x24, 0x6e,
		0x56, 0x3a, 0x95, 0xe4, 0xdf, 0xd2, 0x2f, 0xd9, 0xaf, 0x6a, 0xd1, 0xc4, 0xfd, 0x6b, 0x2a, 0x9c,
		0xf4, 0xab, 0xb8, 0x92, 0x22, 0xf4, 0x84, 0xe7, 0x04, 0x7e, 0xf8, 0xa5, 0x26, 0x83, 0xcb, 0x24,
		0xfd, 0x51, 0x5b, 0x99, 0xe8, 0x5e, 0xa3, 0x3c, 0xda, 0x75, 0xf6, 0x90, 0x65, 0x3c, 0x1d, 0xcb,
		0x70, 0x1e, 0xf1, 0xf6, 0xf2, 0x67, 0x7c, 0x30, 0x7b, 0x7e, 0x9d, 0xf9, 0xe3, 0x1b, 0xdd, 0xfa,
		0x75, 0x72, 0xfb, 0x37, 0x46, 0x87, 0x8b, 0xe7, 0x9b, 0x7f, 0x1b, 0xf5, 0xb2, 0xe7, 0x3b, 0x6a,
		0xa5, 0xcf, 0x37, 0xfb, 0x39, 0xea, 0x26, 0xde, 0xc9, 0xa8, 0x9b, 0xb8, 0x83, 0xf4, 0xf1, 0x2e,
		0xbe, 0xa4, 0xff, 0xcd, 0x7e, 0x31, 0xea, 0x65, 0x4f, 0x37, 0xfd, 0xd6, 0x9e, 0x3f, 0xdc, 0xae,
		0x1f, 0x7e, 0x19, 0x0d, 0x82, 0xcb, 0x24, 0xfd, 0x31, 0x6a, 0x2d, 0x9e, 0x6d, 0xdf, 0xf7, 0x46,
		0xfd, 0xec, 0xd1, 0xbe, 0x00, 0x1e, 0xf1, 0xb3, 0x88, 0xda, 0x00, 0x6b, 0x71, 0x25, 0x63, 0xd7,
		0x99, 0xa6, 0x4b, 0xf9, 0x24, 0xa0, 0x29, 0x52, 0xd9, 0x5f, 0xcf, 0x45, 0x48, 0x56, 0x37, 0x61,
		0x30, 0xdb, 0x78, 0x6d, 0x6d, 0x06, 0xc6, 0xb5, 0x14, 0xd0, 0xad, 0x5f, 0xad, 0x97, 0x73, 0xe1,
		0x79, 0x06, 0xf5, 0x6f, 0x5b, 0xbb, 0xff, 0xbf, 0xd6, 0xfb, 0xf6, 0xc1, 0xfb, 0x3f, 0x47, 0xfd,
		0xce, 0xee, 0x4b, 0xcc, 0x3f, 0x7e, 0xbe, 0x9d, 0x4b, 0xc7, 0x2a, 0xd9, 0xda, 0xc5, 0xf4, 0xe3,
		0x82, 0x69, 0xdc, 0xd2, 0x21, 0xca, 0xe3, 0x16, 0x37, 0x92, 0x1b, 0x9e, 0xf0, 0xb8, 0x77, 0x45,
		0x32, 0x8e, 0xfd, 0x09, 0x79, 0xda, 0xbc, 0x02, 0x7a, 0x9d, 0x70, 0x1c, 0x4c, 0x3d, 0x61, 0xc9,
		0x73, 0x61, 0xe5, 0xe4, 0xc9, 0xea, 0x77, 0x76, 0xad, 0x89, 0x1b, 0xbb, 0x17, 0x42, 0x8a, 0x38,
		0xb1, 0xa2, 0x30, 0xb8, 0xb6, 0xd2, 0x2d, 0x9a, 0xfd, 0xb1, 0x6c, 0x05, 0x45, 0xa7, 0xc7, 0x61,
		0xfa, 0x8b, 0x64, 0x7a, 0xe2, 0x0c, 0xba, 0x9f, 0x2c, 0x3f, 0xb1, 0xfc, 0xd0, 0xf3, 0xc7, 0xae,
		0x14, 0x9e, 0xe5, 0x26, 0x56, 0x32, 0x1d, 0x9f, 0x53, 0xdf, 0xd0, 0x8c, 0x8e, 0xa1, 0x97, 0xb1,
		0xd2, 0x5b, 0x5a, 0x67, 0x0c, 0xce, 0x73, 0x38, 0x9e, 0x41, 0xaf, 0x40, 0x67, 0xa9, 0x5b, 0x04,
		0x7a, 0x8e, 0x49, 0x7a, 0x0e, 0x39, 0xab, 0x86, 0x88, 0xea, 0xf8, 0xea, 0x5c, 0x26, 0xe8, 0x5b,
		0x04, 0x3d, 0x14, 0x5f, 0x45, 0x8b, 0x96, 0xb7, 0xa0, 0x83, 0x76, 0x84, 0x70, 0xc5, 0x9e, 0xe9,
		0xb9, 0xd4, 0xe0, 0xe4, 0xa6, 0xe3, 0x03, 0x41, 0xb9, 0x39, 0x6f, 0xef, 0x45, 0xcc, 0x2c, 0xaa,
		0x09, 0xcb, 0x94, 0x13, 0x94, 0x59, 0x24, 0x24, 0x53, 0x8f, 0xfc, 0xd8, 0x24, 0x1c, 0xb3, 0x09,
		0xee, 0xb8, 0x24, 0x14, 0xe3, 0x14, 0xe6, 0xbb, 0x0a, 0x9b, 0x4f, 0x73, 0x5c, 0xa1, 0x4d, 0xba,
		0x3d, 0x78, 0x0e, 0xc9, 0x84, 0xbb, 0x7d, 0x12, 0xaf, 0x61, 0x22, 0x5f, 0xbb, 0xc4, 0xa1, 0x66,
		0x89, 0x55, 0xad, 0x12, 0xc7, 0x43, 0x34, 0x16, 0xb5, 0x49, 0xbc, 0x8f, 0xd1, 0x18, 0xd4, 0x22,
		0x21, 0xd5, 0xed, 0x31, 0x2f, 0x97, 0x7c, 0xcd, 0x51, 0x8e, 0x9a, 0xb3, 0x79, 0xc7, 0xf2, 0x3a,
		0x16, 0xa7, 0x94, 0x71, 0x73, 0x11, 0xcb, 0x13, 0xce, 0x0d, 0xb7, 0x3b, 0xf3, 0x47, 0xf9, 0xce,
		0x4d, 0x18, 0x35, 0xeb, 0xec, 0xf5, 0x0f, 0xf7, 0x3e, 0x6d, 0x8c, 0xda, 0x7f, 0x0c, 0xda, 0x07,
		0xbb, 0xed, 0xdd, 0x51, 0xb7, 0x73, 0xf0, 0xdb, 0xa8, 0xff, 0xf1, 0xdd, 0xa0, 0xfb, 0x69, 0x34,
		0xf8, 0xf3, 0xb0, 0x4d, 0x1d, 0xf8, 0xb3, 0xba, 0x81, 0x84, 0x45, 0x65, 0x17, 0x93, 0xba, 0xe4,
		0xc5, 0xca, 0x58, 0xc9, 0xde, 0x40, 0x95, 0xec, 0xf3, 0x3e, 0x43, 0x78, 0x76, 0xe6, 0x56, 0x41,
		0x44, 0xf9, 0x2e, 0x9d, 0xc5, 0xa1, 0x67, 0x09, 0x87, 0x9e, 0x54, 0xd3, 0xf8, 0x79, 0x1d, 0x76,
		0x12, 0xcc, 0xd8, 0xc7, 0x29, 0xe7, 0x7d, 0xab, 0x6a, 0x1a, 0x7e, 0x09, 0xa3, 0xaf, 0xa1, 0x23,
		0x83, 0x4b, 0xba, 0x67, 0x9d, 0xcb, 0x46, 0xe2, 0xc4, 0xf3, 0x67, 0xcc, 0xc2, 0x89, 0xe7, 0x33,
		0x96, 0x1b, 0x4e, 0x3c, 0x9f, 0xb3, 0x21, 0x70, 0xe2, 0x59, 0x34, 0xcf, 0xc3, 0x89, 0x27, 0x7f,
		0xb2, 0x4e, 0xf6, 0xc4, 0x93, 0x66, 0x9a, 0xd3, 0x1d, 0x4c, 0xa6, 0x5c, 0x5d, 0x4b, 0x94, 0x04,
		0x90, 0x27, 0x03, 0x1c, 0x48, 0x01, 0x2b, 0x72, 0xc0, 0x85, 0x24, 0xb0, 0x23, 0x0b, 0xec, 0x48,
		0x03, 0x37, 0xf2, 0x40, 0x93, 0x44, 0x10, 0x25, 0x13, 0xe4, 0x49, 0x45, 0x6e, 0x60, 0x20, 0xc2,
		0xb3, 0x4c, 0xfe, 0x63, 0x72, 0x32, 0x37, 0xb7, 0x17, 0x6d, 0xa2, 0xab, 0x40, 0x3b, 0x38, 0xd1,
		0x0f, 0x96, 0x34, 0x84, 0x1b, 0x1d, 0x61, 0x4b, 0x4b, 0xd8, 0xd2, 0x13, 0xae, 0x34, 0x85, 0x36,
		0x5d, 0x21, 0x4e, 0x5b, 0xf2, 0x97, 0xce, 0xb3, 0x4d, 0x74, 0x7d, 0x8b, 0x51, 0x9f, 0xe8, 0x2d,
		0xf4, 0x89, 0x2e, 0xf8, 0x83, 0x3e, 0xd1, 0xe5, 0x1a, 0x8d, 0x3e, 0xd1, 0xba, 0x30, 0x0e, 0x7d,
		0xa2, 0x15, 0x6c, 0x49, 0xce, 0x7d, 0xa2, 0xb7, 0x9a, 0xcd, 0x4d, 0x74, 0x8a, 0xc6, 0xb6, 0x34,
		0x81, 0x1b, 0xf3, 0xb1, 0x12, 0x9d, 0xa2, 0x8d, 0x73, 0x0b, 0xb4, 0xcb, 0x4c, 0xef, 0x44, 0x3d,
		0x84, 0xcb, 0x4d, 0x6f, 0xc7, 0x3b, 0xd0, 0x44, 0x0b, 0x32, 0x14, 0x9a, 0x68, 0xc9, 0x46, 0x43,
		0x13, 0x55, 0x64, 0x38, 0x34, 0x51, 0x30, 0x02, 0x36, 0xc1, 0x22, 0x34, 0xd1, 0xf2, 0x39, 0x02,
		0x34, 0xd1, 0xa2, 0x3f, 0xd0, 0x44, 0xcb, 0x35, 0x1a, 0x9a, 0xa8, 0x2e, 0x8c, 0x83, 0x26, 0xaa,
		0x60, 0x4b, 0x42, 0x13, 0xc5, 0xb6, 0xac, 0xc8, 0xb6, 0x84, 0x26, 0x5a, 0xc8, 0x07, 0x9a, 0xa8,
		0x71, 0x6e, 0xc1, 0xbe, 0x9c, 0x23, 0x2a, 0x13, 0x51, 0x74, 0x66, 0x2e, 0x54, 0xd1, 0x22, 0xcc,
		0x84, 0x2a, 0x5a, 0xe2, 0x42, 0x85, 0x2a, 0x5a, 0xe6, 0x06, 0x83, 0x2a, 0xaa, 0xd8, 0x70, 0xa8,
		0xa2, 0xd5, 0x0b, 0x17, 0x19, 0xaa, 0xa2, 0x27, 0x7e, 0xe8, 0xc6, 0xd7, 0x8c, 0x54, 0xd1, 0x1d,
		0x50, 0x6a, 0x83, 0x2c, 0xc3, 0x40, 0xea, 0xe7, 0xd9, 0xc9, 0xb3, 0x77, 0xd5, 0x52, 0x9f, 0x1c,
		0x8c, 0xa3, 0x2e, 0xb4, 0x9f, 0xd5, 0xc7, 0xd9, 0x93, 0x25, 0xda, 0xda, 0x8a, 0x2e, 0x16, 0xa1,
		0x29, 0x08, 0x63, 0x34, 0xe4, 0x8f, 0x82, 0xe8, 0xe3, 0x57, 0x18, 0xee, 0xa1, 0x99, 0x1f, 0x65,
		0x4b, 0x88, 0x20, 0x9b, 0xdd, 0xf5, 0x13, 0xd9, 0x92, 0x92, 0x56, 0x5b, 0x02, 0x7b, 0xdf, 0x0f,
		0xdb, 0x81, 0xb8, 0x10, 0x21, 0xb5, 0xd3, 0x2e, 0x7b, 0xdf, 0xbd, 0x5a, 0xb2, 0xac, 0xfe, 0xa6,
		0xd1, 0xd8, 0xda, 0x6e, 0x34, 0xd6, 0xb7, 0x37, 0xb7, 0xd7, 0x77, 0x9a, 0xcd, 0xfa, 0x16, 0xa5,
		0xee, 0xeb, 0x76, 0x2f, 0xf6, 0x44, 0x2c, 0xbc, 0x77, 0xd7, 0xf6, 0x5b, 0x2b, 0x9c, 0x06, 0x01,
		0x45, 0xd3, 0x3e, 0x26, 0x22, 0x26, 0x75, 0x2c, 0x48, 0x65, 0x67, 0x12, 0xe5, 0x1a, 0x3c, 0x39,
		0x86, 0x4d, 0x6a, 0x4e, 0x25, 0x1f, 0x3e, 0x41, 0x83, 0x44, 0xe8, 0x77, 0xd9, 0x7a, 0x2d, 0xd0,
		0x0c, 0x49, 0xd4, 0xa0, 0x88, 0x1f, 0x04, 0x11, 0x80, 0x1f, 0x36, 0xb0, 0xa3, 0x17, 0x72, 0xf4,
		0x6d, 0x74, 0x3d, 0x57, 0xd6, 0x04, 0x2d, 0xb6, 0xb8, 0x92, 0xb1, 0xeb, 0x4c, 0xd3, 0x35, 0x75,
		0x12, 0xe8, 0x3d, 0x2a, 0xb2, 0x63, 0x71, 0x2a, 0x62, 0x11, 0x8e, 0xf5, 0xe7, 0x6f, 0x13, 0xc0,
		0xd6, 0xc5, 0x79, 0xd8, 0xd1, 0xde, 0xfb, 0xed, 0xad, 0x37, 0x0d, 0xcb, 0xb1, 0x7a, 0xfd, 0xc3,
		0xbd, 0xcb, 0x0d, 0x6b, 0x96, 0x4a, 0x51, 0x4b, 0xf7, 0xa9, 0x95, 0x46, 0x8c, 0xfe, 0xc9, 0x54,
		0x0a, 0xab, 0xe5, 0x5d, 0x8a, 0x58, 0xfa, 0x49, 0x16, 0x12, 0x51, 0x80, 0x39, 0x62, 0x09, 0x09,
		0xcb, 0x09, 0x07, 0x37, 0xeb, 0x8c, 0x48, 0x88, 0x41, 0x35, 0xa7, 0x60, 0x25, 0x67, 0xe0, 0x49,
		0x0b, 0xb1, 0xea, 0x84, 0x51, 0xdb, 0xd5, 0x87, 0x95, 0xf2, 0x62, 0x44, 0x88, 0x31, 0x2b, 0x42,
		0xac, 0x11, 0xfc, 0x38, 0x70, 0x60, 0x3d, 0xd0, 0xa5, 0x1e, 0x30, 0x34, 0x6c, 0x59, 0x3b, 0x5f,
		0x87, 0x13, 0xbd, 0x69, 0xa1, 0x39, 0xc9, 0xba, 0x6d, 0x90, 0x26, 0x18, 0xd3, 0xdb, 0x0e, 0x5f,
		0x7b, 0x36, 0x31, 0x85, 0x2c, 0x61, 0x52, 0xd9, 0xbf, 0x54, 0x48, 0x34, 0xb9, 0x6c, 0x5d, 0x72,
		0x8c, 0x99, 0x5a, 0x76, 0x6d, 0xb5, 0x44, 0x0c, 0xdd, 0xed, 0xdc, 0x89, 0xcc, 0x82, 0x21, 0x35,
		0xf3, 0x85, 0xc8, 0x6c, 0x17, 0x32, 0x25, 0x32, 0x94, 0x4a, 0x60, 0x48, 0x96, 0xb8, 0x50, 0x56,
		0x8c, 0x48, 0x95, 0xa8, 0xf0, 0x90, 0x8b, 0x08, 0x95, 0x98, 0x54, 0xfb, 0xd0, 0x90, 0xca, 0xac,
		0x13, 0xdb, 0xf5, 0xbc, 0x58, 0x24, 0x89, 0x73, 0xea, 0x5e, 0xf8, 0xc1, 0x35, 0x9d, 0x7d, 0xbe,
		0x00, 0xc3, 0x5b, 0xf6, 0x11, 0xd9, 0x53, 0xb4, 0x2a, 0x51, 0xc9, 0x55, 0x9c, 0x52, 0xac, 0x2c,
		0x25, 0x5d, 0x41, 0x4a, 0xb5, 0x52, 0x94, 0x7c, 0x45, 0x28, 0xf9, 0xca, 0x4f, 0xea, 0x15, 0x9e,
		0x48, 0xf8, 0x5d, 0x7e, 0x59, 0xe4, 0x2a, 0x33, 0x6f, 0xc4, 0xd0, 0x70, 0x7a, 0x21, 0xe2, 0xd9,
		0x69, 0x0a, 0x21, 0xdc, 0x5a, 0xc4, 0x93, 0x0d, 0x42, 0x36, 0xb5, 0xc3, 0xe9, 0x05, 0x3d, 0x24,
		0x1d, 0x44, 0x7d, 0x19, 0xfb, 0xe1, 0x19, 0xcd, 0xda, 0x98, 0xf5, 0x74, 0x8d, 0x75, 0x0e, 0x3f,
		0x35, 0x46, 0x1f, 0x0f, 0x3a, 0xef, 0x5b, 0xfd, 0x81, 0x8d, 0x52, 0xa7, 0xef, 0xbe, 0xcc, 0x4e,
		0x86, 0xe8, 0x04, 0xdf, 0xe4, 0xca, 0x4b, 0x7c, 0x6b, 0xad, 0xa3, 0xd0, 0x85, 0xb2, 0xdf, 0x7b,
		0x81, 0x9d, 0x65, 0xd9, 0xae, 0x94, 0xee, 0xf8, 0x5c, 0x78, 0x04, 0xa3, 0xcf, 0x85, 0x65, 0x44,
		0xf8, 0xc9, 0xae, 0x38, 0x75, 0xa7, 0x81, 0x24, 0xd5, 0x4a, 0xd5, 0xce, 0xaa, 0x53, 0x68, 0xf8,
		0x8b, 0x21, 0xf4, 0x01, 0xe8, 0x03, 0xd0, 0x07, 0xa0, 0x0f, 0x40, 0x1f, 0x80, 0x3e, 0x50, 0x29,
		0x7d, 0xe0, 0x24, 0x8a, 0x02, 0xe1, 0x92, 0xd4, 0x06, 0xea, 0xa0, 0xda, 0x64, 0xa8, 0x76, 0x18,
		0x79, 0x82, 0x1e, 0xcd, 0xce, 0xac, 0x02, 0xc5, 0x06, 0xc5, 0x06, 0xc5, 0x06, 0xc5, 0x06, 0xc5,
		0x06, 0xc5, 0x06, 0xc5, 0x06, 0xc5, 0x06, 0xc5, 0x06, 0xc5, 0xe6, 0x48, 0xb1, 0x27, 0xb4, 0x1c,
		0x6f, 0xbe, 0x7c, 0x69, 0xa5, 0x4b, 0x82, 0xbe, 0x81, 0xbe, 0x81, 0xbe, 0x81, 0xbe, 0x81, 0xbe,
		0x81, 0xbe, 0xa9, 0x41, 0x2d, 0x7f, 0x72, 0xd9, 0x70, 0x16, 0xe9, 0xc4, 0x61, 0xe4, 0xfc, 0x37,
		0x0a, 0x05, 0x45, 0x2e, 0xf7, 0x86, 0x90, 0x4d, 0x87, 0xae, 0x94, 0x22, 0x0e, 0xc9, 0x8d, 0xee,
		0xb4, 0x5f, 0xbd, 0xfa, 0xbc, 0xee, 0xec, 0x0c, 0xff, 0xf7, 0xb9, 0xee, 0xec, 0x0c, 0x67, 0x5f,
		0xeb, 0xd9, 0x7f, 0x66, 0xdf, 0x37, 0x3e, 0xaf, 0x3b, 0x8d, 0xc5, 0xf7, 0xe6, 0xe7, 0x75, 0xa7,
		0x39, 0x7c, 0x7d, 0x7c, 0xbc, 0xf6, 0xfa, 0xef, 0xcd, 0x6f, 0x8f, 0xff, 0x8b, 0xaf, 0xfe, 0xf1,
		0xf9, 0xf8, 0x78, 0xf2, 0xf7, 0xc1, 0xb7, 0xf4, 0x67, 0xf7, 0xdb, 0xf0, 0x5f, 0xaf, 0xff, 0x4d,
		0x0d, 0xc3, 0x53, 0x83, 0x8f, 0x8f, 0xd7, 0x86, 0xff, 0xa4, 0x03, 0x8b, 0x43, 0x84, 0x24, 0xc4,
		0x42, 0x12, 0x27, 0x10, 0xe1, 0x59, 0xd6, 0x04, 0x83, 0x64, 0x64, 0xb2, 0x30, 0x0f, 0x01, 0x0a,
		0x02, 0x14, 0x04, 0x28, 0x08, 0x50, 0x10, 0xa0, 0x20, 0x40, 0xa9, 0x54, 0x80, 0x32, 0xf5, 0x43,
		0xf9, 0x86, 0x60, 0x44, 0x42, 0xa9, 0x69, 0xfb, 0x91, 0x1b, 0x9e, 0x09, 0x72, 0xe1, 0x08, 0xc1,
		0x32, 0x80, 0x7d, 0x9f, 0xee, 0x4c, 0xaa, 0x7c, 0xdc, 0x38, 0xd1, 0x01, 0xa9, 0x6c, 0x46, 0x8a,
		0xd3, 0x1f, 0x1d, 0x4e, 0x70, 0x72, 0x1b, 0xe9, 0x09, 0xfd, 0xf9, 0xd6, 0xd8, 0xdc, 0xc0, 0xde,
		0x30, 0x7d, 0x6f, 0xa0, 0x34, 0xeb, 0xde, 0x0f, 0x94, 0x23, 0x32, 0xd8, 0x69, 0xc7, 0xd1, 0x54,
		0x8a, 0xac, 0x77, 0x29, 0x3d, 0xd9, 0x68, 0xc9, 0x36, 0x68, 0x46, 0xf7, 0x99, 0x03, 0xcd, 0xe8,
		0x11, 0xab, 0x09, 0x9a, 0xd1, 0x63, 0x16, 0x3a, 0x34, 0xa3, 0x67, 0x1a, 0x08, 0xcd, 0x88, 0x4f,
		0xf4, 0x80, 0xb6, 0x20, 0x4f, 0x74, 0x84, 0x68, 0x0b, 0xf2, 0xe3, 0xa5, 0x45, 0xbf, 0x2d, 0xc8,
		0xc7, 0x83, 0xfe, 0x61, 0xfb, 0x7d, 0x67, 0xaf, 0xd3, 0xde, 0xa5, 0x38, 0x81, 0xb6, 0x9e, 0xb5,
		0x2e, 0x39, 0x18, 0x1c, 0xb5, 0x46, 0xad, 0xa3, 0x76, 0x8b, 0xa2, 0x89, 0x9b, 0x73, 0x13, 0xdb,
		0x47, 0x64, 0x4d, 0x6c, 0xa6, 0x26, 0xb6, 0xfa, 0xa3, 0xf6, 0x1f, 0x83, 0xf6, 0xd1, 0x41, 0xab,
		0x4b, 0xd1, 0xc6, 0xed, 0xd4, 0xc6, 0x83, 0x7e, 0xbf, 0x75, 0x63, 0x25, 0xba, 0xd4, 0x7c, 0x17,
		0x5b, 0xc8, 0x76, 0xa9, 0x59, 0x5e, 0x69, 0xa4, 0x4e, 0x18, 0x72, 0x0b, 0x97, 0xb6, 0xeb, 0x5b,
		0x6b, 0x93, 0xa6, 0x81, 0x0b, 0xc8, 0xd3, 0xde, 0xd0, 0xf9, 0x7e, 0x8e, 0xb2, 0xb2, 0x53, 0xdf,
		0x5a, 0xdb, 0x04, 0x6d, 0x5c, 0xf6, 0x6d, 0x68, 0x96, 0x44, 0x3c, 0x1a, 0x40, 0xcf, 0x62, 0xbd,
		0x98, 0x8d, 0x41, 0xa7, 0x4f, 0x9a, 0xeb, 0x34, 0x53, 0x48, 0x6a, 0x14, 0xfa, 0xff, 0x5b, 0x0c,
		0xe6, 0x3c, 0xcd, 0x44, 0xc2, 0x51, 0x3f, 0x7b, 0x5c, 0x55, 0x1d, 0x77, 0xaa, 0x71, 0xbc, 0x4d,
		0x36, 0x92, 0x97, 0xcc, 0xd4, 0x0c, 0x02, 0x03, 0x82, 0x31, 0x34, 0xe3, 0x96, 0x21, 0x18, 0x9a,
		0xf1, 0x03, 0xa3, 0x30, 0x34, 0xe3, 0x27, 0x0d, 0xc3, 0xd0, 0x0c, 0x10, 0xd0, 0x9f, 0x7f, 0x29,
		0x64, 0x86, 0x66, 0xc8, 0xe0, 0x92, 0xde, 0x71, 0x78, 0x6a, 0x14, 0xad, 0x73, 0xf0, 0x3a, 0xce,
		0xc1, 0xc9, 0x3b, 0x50, 0xd2, 0x8e, 0x94, 0xaa, 0x43, 0x25, 0xef, 0x58, 0xc9, 0x3b, 0x58, 0xea,
		0x8e, 0x96, 0x98, 0xf2, 0x45, 0xa5, 0x37, 0x1e, 0x11, 0x07, 0x9c, 0x1b, 0x74, 0x4b, 0x63, 0x71,
		0xe2, 0x79, 0x79, 0x00, 0x31, 0x98, 0x78, 0x60, 0xa2, 0xf1, 0xdc, 0x5c, 0x62, 0x3b, 0x92, 0x96,
		0xf3, 0x26, 0xeb, 0xc4, 0x29, 0x3b, 0x73, 0x16, 0x4e, 0x9d, 0xba, 0x73, 0x67, 0xe3, 0xe4, 0xd9,
		0x38, 0x7b, 0x2e, 0x4e, 0x9f, 0x96, 0xf3, 0x27, 0x46, 0x02, 0xc8, 0x92, 0x81, 0xdc, 0x30, 0x1a,
		0x73, 0x9f, 0x7f, 0x88, 0xc9, 0x54, 0xce, 0x83, 0x18, 0x91, 0x00, 0xf2, 0x64, 0x80, 0x03, 0x29,
		0x60, 0x45, 0x0e, 0xb8, 0x90, 0x04, 0x76, 0x64, 0x81, 0x1d, 0x69, 0xe0, 0x46, 0x1e, 0x68, 0x92,
		0x08, 0xa2, 0x64, 0x82, 0x3c, 0xa9, 0xc8, 0x0d, 0x24, 0x3a, 0x2f, 0xfb, 0x87, 0x20, 0x4f, 0x72,
		0x8e, 0xf6, 0x8f, 0xe8, 0xc7, 0x3a, 0x71, 0x33, 0xa9, 0xd3, 0x10, 0x4e, 0x74, 0x84, 0x25, 0x2d,
		0xe1, 0x46, 0x4f, 0xd8, 0xd2, 0x14, 0xb6, 0x74, 0x85, 0x2b, 0x6d, 0xa1, 0x4d, 0x5f, 0x88, 0xd3,
		0x98, 0xfc, 0xa5, 0x93, 0x2b, 0x1c, 0xfc, 0x21, 0xea, 0xd2, 0x2c, 0x28, 0xfc, 0xa1, 0x4e, 0xd1,
		0x60, 0x60, 0x2b, 0xc9, 0x02, 0xc4, 0x87, 0x97, 0x2e, 0xe5, 0xc2, 0xc4, 0x07, 0xad, 0x26, 0x3e,
		0xc7, 0x9c, 0x29, 0x8e, 0x2d, 0x2d, 0x0a, 0xaa, 0x15, 0x65, 0x0f, 0x9a, 0x4c, 0x7a, 0x1e, 0x3a,
		0x4f, 0xaf, 0xcb, 0x80, 0x17, 0xbc, 0xc0, 0x4e, 0x7f, 0xfc, 0x56, 0xf1, 0x43, 0x29, 0x62, 0xc7,
		0x8d, 0x85, 0xcb, 0x47, 0xd7, 0x58, 0xb2, 0x99, 0x38, 0x17, 0xa4, 0x38, 0x58, 0xf2, 0x41, 0x63,
		0x09, 0x0d, 0x9c, 0x7c, 0xe8, 0x33, 0x84, 0x86, 0x55, 0x84, 0x99, 0xd0, 0xb0, 0x4a, 0x44, 0x27,
		0x68, 0x58, 0x65, 0x6e, 0x30, 0x68, 0x58, 0x8a, 0x0d, 0x87, 0x86, 0x55, 0xbd, 0xd8, 0x8f, 0xa1,
		0x86, 0x45, 0x6f, 0x50, 0xe7, 0x8f, 0x48, 0x02, 0x91, 0x01, 0x9e, 0x08, 0xa7, 0x8a, 0x7c, 0xb7,
		0x13, 0x1e, 0x84, 0x85, 0xe6, 0x80, 0x50, 0xd0, 0x6a, 0xd0, 0x6a, 0xd0, 0x6a, 0xd0, 0x6a, 0xd0,
		0x6a, 0xb0, 0x02, 0xd0, 0x6a, 0x12, 0xa8, 0x9b, 0x0d, 0x50, 0x65, 0x03, 0x09, 0x14, 0xe7, 0xa9,
		0x3e, 0xec, 0x84, 0x89, 0xce, 0x59, 0x7d, 0xd0, 0x60, 0x95, 0xf3, 0x57, 0x6b, 0xf3, 0x8b, 0xbd,
		0xfe, 0xdf, 0xab, 0xcf, 0x75, 0x67, 0x63, 0xb8, 0xf8, 0xc5, 0xe6, 0xe7, 0x75, 0x67, 0x63, 0xf8,
		0xfa, 0x35, 0x7d, 0xa4, 0x1c, 0x22, 0xba, 0x33, 0x34, 0xba, 0xa3, 0x36, 0x53, 0xf5, 0x27, 0x83,
		0x3c, 0x5a, 0xb3, 0x56, 0x11, 0xeb, 0x21, 0xd6, 0x43, 0xac, 0x87, 0x58, 0x0f, 0xb1, 0x1e, 0x38,
		0x02, 0x62, 0x3d, 0x12, 0xa8, 0x4b, 0x6d, 0x16, 0xed, 0x8f, 0x28, 0x42, 0x93, 0x81, 0xa9, 0x34,
		0x67, 0xd7, 0x3e, 0xf4, 0x61, 0x94, 0xe2, 0x49, 0x79, 0xd6, 0xed, 0x83, 0x46, 0x13, 0x9f, 0x81,
		0xfb, 0xa0, 0xdd, 0x5c, 0xe6, 0x7f, 0x3e, 0x0c, 0x71, 0xd4, 0xe7, 0x82, 0x32, 0xf5, 0x72, 0xab,
		0x5b, 0xd2, 0xbd, 0xe2, 0xbb, 0x25, 0xa9, 0xce, 0xde, 0xc5, 0x9e, 0x04, 0x2f, 0x36, 0xd4, 0x4a,
		0x28, 0xa4, 0xc6, 0xf9, 0x04, 0x3b, 0xeb, 0x6e, 0xe8, 0x24, 0xfe, 0x7f, 0x05, 0x1f, 0x79, 0x74,
		0xc9, 0x66, 0x68, 0xa3, 0x45, 0x98, 0x09, 0x6d, 0xb4, 0xc4, 0xd5, 0x0a, 0x6d, 0xb4, 0xcc, 0x0d,
		0x06, 0x6d, 0x54, 0xb1, 0xe1, 0xd0, 0x46, 0xab, 0x17, 0x35, 0x32, 0xd5, 0x46, 0xeb, 0x5b, 0x8c,
		0xc4, 0xd1, 0x2d, 0x88, 0xa3, 0x05, 0x7f, 0x20, 0x8e, 0x96, 0x6b, 0x34, 0xc4, 0x51, 0x5d, 0x18,
		0x07, 0x71, 0x54, 0xc1, 0x96, 0xe4, 0x2c, 0x8e, 0x6e, 0x35, 0x9b, 0x9b, 0x4d, 0x6c, 0x4b, 0x6c,
		0x4b, 0x03, 0xb8, 0x31, 0x1f, 0x2b, 0xa1, 0x8f, 0x9a, 0x64, 0x19, 0xd5, 0xee, 0xbb, 0xc4, 0x26,
		0x3c, 0x3f, 0x68, 0x27, 0xb3, 0xc9, 0xcf, 0x32, 0xb8, 0x4c, 0xd2, 0x1f, 0xb5, 0x7b, 0xe7, 0xff,
		0xd4, 0x28, 0x0f, 0x02, 0xb0, 0xf8, 0x0c, 0x8c, 0x1e, 0x04, 0x97, 0x49, 0xfa, 0xe3, 0xd6, 0xef,
		0x67, 0x81, 0x25, 0x85, 0x69, 0xd2, 0x7c, 0x20, 0x0a, 0x73, 0x4f, 0xbe, 0xb7, 0x1b, 0xc4, 0x95,
		0x8c, 0x5d, 0x67, 0x9a, 0xae, 0xe9, 0x93, 0x80, 0xa6, 0x74, 0x65, 0x7f, 0x3d, 0x17, 0x74, 0x8b,
		0x89, 0x18, 0x8c, 0xc4, 0x58, 0x5b, 0x9b, 0xa1, 0x72, 0x2d, 0xc5, 0x78, 0xeb, 0x57, 0xeb, 0xe5,
		0x5c, 0x8e, 0x9e, 0xa1, 0xff, 0xdb, 0xf6, 0x1f, 0x83, 0xf6, 0xc1, 0x6e, 0x7b, 0x77, 0x74, 0x78,
		0xd4, 0xde, 0xeb, 0xfc, 0x31, 0x3a, 0x6a, 0x1d, 0x7c, 0x68, 0xbf, 0xc4, 0xf8, 0x8c, 0xe7, 0xdb,
		0xb9, 0x74, 0xe8, 0x92, 0xad, 0x61, 0x0c, 0xcf, 0x28, 0x98, 0xe1, 0x2d, 0x1d, 0xb1, 0x3c, 0x6d,
		0x91, 0x23, 0x15, 0xe2, 0x09, 0x8f, 0x7d, 0x57, 0x24, 0xe3, 0xd8, 0x9f, 0x90, 0x67, 0xd6, 0x2b,
		0x20, 0xd8, 0x09, 0xc7, 0xc1, 0xd4, 0x13, 0x96, 0x3c, 0x17, 0xd6, 0x8c, 0xb0, 0x5a, 0x19, 0x61,
		0xb5, 0x92, 0xe9, 0x89, 0x33, 0xe8, 0x7e, 0xb2, 0xd2, 0x1d, 0x9a, 0xfd, 0xdf, 0x6c, 0x01, 0x45,
		0xa7, 0xe9, 0xf7, 0xe3, 0x70, 0xf1, 0x7f, 0xfd, 0xc4, 0x4a, 0x26, 0x62, 0xec, 0x9f, 0xfa, 0xc2,
		0xb3, 0xdc, 0xc4, 0x4a, 0xa6, 0x63, 0xf2, 0x05, 0x67, 0x8c, 0xce, 0xa8, 0x97, 0xa1, 0xd2, 0x5b,
		0x5a, 0x5e, 0x0c, 0xce, 0x7a, 0x38, 0x1e, 0x50, 0xaf, 0x20, 0x67, 0x19, 0x3b, 0x03, 0x02, 0x8f,
		0x49, 0x02, 0x0f, 0x39, 0xab, 0x86, 0x88, 0xe9, 0xf8, 0x0a, 0x5f, 0x66, 0x09, 0x5e, 0x14, 0x67,
		0x10, 0xf3, 0x97, 0xb8, 0x68, 0x39, 0x10, 0x3a, 0x00, 0x48, 0x08, 0x6a, 0x16, 0xcd, 0x17, 0x12,
		0xdf, 0xa3, 0x3b, 0xa3, 0x7e, 0xc9, 0x46, 0x0c, 0xa6, 0xff, 0x19, 0xb3, 0x30, 0x98, 0xfe, 0x19,
		0xab, 0x0d, 0x83, 0xe9, 0x8b, 0x89, 0x00, 0x31, 0x98, 0xbe, 0xf0, 0x20, 0x0f, 0x83, 0xe9, 0x99,
		0x92, 0x79, 0x0c, 0xa6, 0x7f, 0x1e, 0x26, 0x63, 0x30, 0xbd, 0x79, 0x64, 0x80, 0x03, 0x29, 0x60,
		0x45, 0x0e, 0xb8, 0x90, 0x04, 0x76, 0x64, 0x81, 0x1d, 0x69, 0xe0, 0x46, 0x1e, 0x68, 0x92, 0x08,
		0xa2, 0x64, 0x82, 0x3c, 0xa9, 0xc8, 0x0d, 0x74, 0x83, 0xb3, 0x28, 0xf6, 0xe5, 0xf9, 0x05, 0xa3,
		0x99, 0xf4, 0xb9, 0xc9, 0xa8, 0xb5, 0xae, 0x02, 0xf9, 0xe0, 0x44, 0x42, 0x58, 0x92, 0x11, 0x6e,
		0xa4, 0x84, 0x2d, 0x39, 0x61, 0x4b, 0x52, 0xb8, 0x92, 0x15, 0xda, 0xa4, 0x85, 0x38, 0x79, 0xc9,
		0x5f, 0x3a, 0xfa, 0x50, 0x96, 0x4d, 0x11, 0xd0, 0x87, 0xb2, 0xe8, 0x0f, 0x4a, 0xad, 0xcb, 0x35,
		0x1a, 0xa5, 0xd6, 0xba, 0x20, 0x0e, 0xa5, 0xd6, 0x0a, 0xb6, 0x24, 0xe7, 0x52, 0xeb, 0x8d, 0x26,
		0x0a, 0xad, 0xb1, 0x29, 0x4d, 0x20, 0xc6, 0x7c, 0xac, 0x44, 0xa1, 0xb5, 0x71, 0x4e, 0xc1, 0x16,
		0x57, 0x93, 0xc0, 0x1f, 0xfb, 0xd2, 0x09, 0xa7, 0x41, 0xc0, 0x47, 0x1e, 0x5d, 0x35, 0x9b, 0x78,
		0x68, 0xb9, 0x2b, 0x4e, 0xdd, 0x69, 0x20, 0x59, 0x84, 0x15, 0x76, 0x06, 0xed, 0xb4, 0xc5, 0x8e,
		0x21, 0x24, 0xf1, 0x22, 0xcc, 0x84, 0x24, 0x5e, 0x22, 0x40, 0x41, 0x12, 0x2f, 0x73, 0x83, 0x41,
		0x12, 0x57, 0x6c, 0x38, 0x24, 0xf1, 0xea, 0x89, 0x05, 0x0c, 0x25, 0xf1, 0x93, 0x28, 0x0a, 0x84,
		0x1b, 0x72, 0x1a, 0xc1, 0x5b, 0x47, 0x50, 0x65, 0x5c, 0x50, 0x75, 0xe1, 0x4e, 0x26, 0x7e, 0x78,
		0xe6, 0x24, 0x22, 0xbe, 0x14, 0x31, 0x9f, 0xa8, 0xea, 0x96, 0xdd, 0x08, 0xab, 0x10, 0x56, 0x21,
		0xac, 0x42, 0x58, 0x85, 0xb0, 0x0a, 0x61, 0x15, 0xc2, 0x2a, 0x84, 0x55, 0x08, 0xab, 0x10, 0x56,
		0x21, 0xac, 0x42, 0x58, 0xa5, 0x2d, 0xac, 0x9a, 0x06, 0xd2, 0x77, 0x64, 0x34, 0x89, 0x82, 0xe8,
		0xec, 0xda, 0xf1, 0x3d, 0x11, 0x4a, 0xff, 0xd4, 0x67, 0x15, 0x61, 0x3d, 0x78, 0x0b, 0x20, 0xdf,
		0x20, 0xdf, 0x20, 0xdf, 0x20, 0xdf, 0x20, 0xdf, 0x20, 0xdf, 0x20, 0xdf, 0x20, 0xdf, 0x48, 0xf3,
		0x2f, 0xd1, 0x54, 0xa4, 0xf9, 0x97, 0xf4, 0x60, 0x91, 0xe6, 0xaf, 0xd0, 0x6e, 0x64, 0x14, 0xc3,
		0xcb, 0xfd, 0xc4, 0x96, 0x44, 0x9a, 0x3f, 0x36, 0x65, 0x25, 0x36, 0x25, 0xd2, 0xfc, 0x0b, 0xf9,
		0x20, 0xcd, 0xdf, 0x38, 0xa7, 0x60, 0x87, 0x91, 0x33, 0x39, 0x9f, 0xf0, 0xd1, 0x49, 0xe7, 0xf6,
		0x22, 0x03, 0xa5, 0x38, 0x63, 0x91, 0x81, 0x52, 0x54, 0x84, 0x0b, 0x11, 0xbc, 0x20, 0x43, 0x21,
		0x82, 0x97, 0x6c, 0x34, 0x44, 0x70, 0x45, 0x86, 0x43, 0x04, 0x07, 0x0b, 0x64, 0x23, 0x0f, 0x20,
		0x03, 0x45, 0x01, 0x49, 0x40, 0x06, 0x8a, 0x81, 0x61, 0x54, 0xe2, 0x7b, 0x4e, 0x32, 0x8e, 0x18,
		0xec, 0x9e, 0x9b, 0x8e, 0xd5, 0xb9, 0xc9, 0x20, 0xd7, 0x20, 0xd7, 0x20, 0xd7, 0x20, 0xd7, 0x20,
		0xd7, 0x20, 0xd7, 0x20, 0xd7, 0x20, 0xd7, 0x37, 0xcd, 0x54, 0xc2, 0xe9, 0x85, 0x88, 0x5d, 0x2e,
		0x23, 0x52, 0x17, 0x04, 0xbb, 0xc1, 0xc0, 0xd6, 0x76, 0x38, 0xbd, 0xe0, 0xe3, 0x21, 0x06, 0x51,
		0x5f, 0xc6, 0x7e, 0x78, 0xc6, 0xea, 0xbc, 0xd8, 0x5e, 0x4f, 0xd7, 0x70, 0xb7, 0xf7, 0xbe, 0xd5,
		0xb5, 0x19, 0x1d, 0xcb, 0xd7, 0x53, 0xab, 0x3f, 0x74, 0x7b, 0xef, 0x5a, 0x5d, 0x9b, 0xc7, 0xc1,
		0xe5, 0x2f, 0x5c, 0x16, 0x71, 0x27, 0xf3, 0xb8, 0x8c, 0x56, 0xf0, 0x7c, 0x19, 0x90, 0x1d, 0xdd,
		0x73, 0xaf, 0xd1, 0xb3, 0x1d, 0xf7, 0xd6, 0x5a, 0xc7, 0xb1, 0x7b, 0x15, 0x58, 0x17, 0xf4, 0xa2,
		0x27, 0xec, 0x91, 0xc4, 0xf7, 0x9c, 0xcb, 0x79, 0x2a, 0x13, 0x23, 0xbd, 0x68, 0x66, 0x32, 0xf4,
		0xa2, 0x22, 0xcc, 0x84, 0x5e, 0x54, 0xe2, 0x62, 0x85, 0x5e, 0x54, 0xe6, 0x06, 0x83, 0x5e, 0xa4,
		0xd8, 0x70, 0xe8, 0x45, 0xd5, 0x8b, 0x5b, 0x98, 0x56, 0x24, 0x6d, 0x6e, 0x30, 0x92, 0x8a, 0xb6,
		0x51, 0x92, 0x54, 0xf0, 0x07, 0x25, 0x49, 0xe5, 0x1a, 0x8d, 0x92, 0x24, 0x5d, 0x18, 0x87, 0x92,
		0x24, 0x05, 0x5b, 0x92, 0x73, 0x49, 0x52, 0x63, 0x63, 0xa7, 0xb1, 0xb3, 0xb5, 0xbd, 0xb1, 0x83,
		0xca, 0x24, 0xec, 0x4d, 0x13, 0x08, 0x32, 0x1f, 0x2b, 0x51, 0x99, 0x64, 0x9c, 0x6f, 0xb8, 0xd1,
		0x1b, 0x1d, 0x79, 0x3d, 0xe1, 0xa8, 0x93, 0xce, 0xec, 0x86, 0x58, 0x5a, 0x84, 0x99, 0x10, 0x4b,
		0x4b, 0x5c, 0xb1, 0x10, 0x4b, 0xcb, 0xdc, 0x60, 0x10, 0x4b, 0x15, 0x1b, 0x0e, 0xb1, 0xb4, 0x7a,
		0x51, 0x24, 0x92, 0xeb, 0x14, 0x11, 0x05, 0x24, 0xd7, 0x15, 0xbf, 0x74, 0xf9, 0x26, 0xd7, 0xb5,
		0xde, 0xf5, 0x7b, 0xdd, 0x8f, 0x83, 0x36, 0xbb, 0xfc, 0xba, 0xce, 0xc1, 0x6e, 0xfb, 0x0f, 0xa4,
		0xd7, 0x15, 0xbb, 0x8c, 0xd9, 0xa5, 0xd7, 0xe5, 0xcb, 0x97, 0x95, 0xe4, 0x35, 0x5f, 0xbc, 0x6f,
		0xad, 0x3a, 0xd4, 0xa3, 0x2a, 0x30, 0xaf, 0x17, 0xb0, 0xcc, 0x00, 0xbc, 0xb4, 0x5b, 0x61, 0x18,
		0xc9, 0x19, 0xdd, 0xa3, 0x0c, 0x92, 0x76, 0x32, 0x3e, 0x17, 0x17, 0xee, 0xc4, 0x95, 0xe7, 0xa9,
		0xa3, 0xac, 0x45, 0x13, 0x11, 0x8e, 0x33, 0xf5, 0xc5, 0x09, 0x85, 0xfc, 0x1a, 0xc5, 0x5f, 0x1c,
		0x3f, 0x4c, 0xa4, 0x1b, 0x8e, 0x45, 0xed, 0xf6, 0x6f, 0x24, 0x77, 0x7e, 0xa7, 0x36, 0x89, 0x23,
		0x19, 0x8d, 0xa3, 0x20, 0xc9, 0xbf, 0xd5, 0x66, 0x01, 0x59, 0xcd, 0x8d, 0x85, 0x9b, 0x64, 0x3f,
		0x6b, 0x41, 0xe2, 0x9d, 0xd4, 0x82, 0xc4, 0xcd, 0x14, 0xb3, 0x24, 0xff, 0x96, 0x7e, 0xc9, 0x7e,
		0x55, 0x8b, 0x26, 0xee, 0x5f, 0x53, 0xe1, 0xa4, 0x5f, 0xc5, 0x95, 0x14, 0xa1, 0x27, 0x3c, 0x67,
		0x16, 0x4d, 0xd7, 0x64, 0x70, 0x99, 0xa4, 0x3f, 0x6a, 0xb3, 0x5f, 0x3b, 0x89, 0xef, 0xd5, 0x12,
		0xe9, 0x4a, 0xca, 0xca, 0x9b, 0x9d, 0xc8, 0x78, 0x3a, 0x96, 0xe1, 0x3c, 0x12, 0xe8, 0xe5, 0x8f,
		0xf8, 0x60, 0xf6, 0xf8, 0x3a, 0xf3, 0xa7, 0x37, 0xba, 0xf5, 0xeb, 0xe4, 0xf6, 0x6f, 0x8c, 0x0e,
		0x17, 0x8f, 0x37, 0xff, 0x36, 0xea, 0x65, 0x8f, 0x77, 0xd4, 0x4a, 0x1f, 0x6f, 0xf6, 0x73, 0xd4,
		0x4d, 0xbc, 0x93, 0x51, 0x37, 0x71, 0xd3, 0x18, 0x29, 0x59, 0x7c, 0x49, 0xff, 0x9b, 0xfd, 0x62,
		0xd4, 0xcb, 0x1e, 0x6e, 0xfa, 0xad, 0x3d, 0x7f, 0xb6, 0x33, 0x11, 0x6b, 0x34, 0x08, 0x2e, 0x93,
		0xf4, 0xc7, 0x68, 0xf6, 0xeb, 0xbe, 0xef, 0x8d, 0xfa, 0xd9, 0x93, 0x7d, 0x01, 0x34, 0xe2, 0x67,
		0x11, 0x31, 0x5c, 0xb4, 0xc5, 0x95, 0x8c, 0x5d, 0x67, 0x9a, 0xae, 0xe4, 0x93, 0x80, 0x66, 0xec,
		0x6e, 0x7f, 0x3d, 0x17, 0x21, 0xd9, 0xd4, 0x1b, 0xc2, 0x3e, 0x64, 0xa1, 0x71, 0xac, 0xad, 0xcd,
		0xb0, 0xb8, 0x96, 0xc2, 0xb9, 0xf5, 0xab, 0xf5, 0x72, 0xae, 0xc7, 0xcd, 0x80, 0xfe, 0xed, 0xe1,
		0x51, 0x7b, 0xaf, 0xf3, 0xc7, 0xa8, 0xdf, 0xd9, 0x7d, 0x49, 0x19, 0xad, 0x99, 0x48, 0xce, 0xcb,
		0x52, 0x73, 0xb6, 0x70, 0x89, 0x4b, 0x76, 0xdc, 0x04, 0xe6, 0x15, 0x61, 0xf9, 0x11, 0x2b, 0x1b,
		0xa7, 0xbf, 0x4f, 0x78, 0xd6, 0xbb, 0x22, 0x19, 0xc7, 0xfe, 0x84, 0x3c, 0x5d, 0x5e, 0x81, 0xbb,
		0x4e, 0x38, 0x0e, 0xa6, 0x9e, 0xb0, 0x26, 0x6e, 0xec, 0x5e, 0x08, 0x29, 0xe2, 0xc4, 0x8a, 0x45,
		0xe0, 0x4a, 0x3f, 0x3c, 0xb3, 0x64, 0x64, 0xc9, 0x73, 0x61, 0xcd, 0xa8, 0x94, 0xd5, 0xef, 0xec,
		0x5a, 0xe9, 0x1e, 0xcd, 0x7e, 0x2f, 0x5d, 0x32, 0xc7, 0x61, 0x74, 0x9a, 0xfd, 0x22, 0x99, 0x9e,
		0x38, 0x83, 0xee, 0x27, 0xcb, 0x4f, 0x2c, 0x3f, 0xf4, 0xfc, 0xb1, 0x2b, 0x85, 0x67, 0xb9, 0x89,
		0x95, 0x4c, 0xc7, 0xe7, 0xd4, 0x77, 0x34, 0xa3, 0xb3, 0xb9, 0x65, 0xb0, 0xf4, 0x96, 0xd6, 0x1a,
		0x03, 0x75, 0x9b, 0xe3, 0xc1, 0xdc, 0x0a, 0x76, 0x96, 0xbe, 0x4d, 0xa0, 0xe7, 0x98, 0xa4, 0xe7,
		0x90, 0xb3, 0x6a, 0x88, 0xb8, 0x8e, 0xaf, 0xce, 0x65, 0x80, 0xbe, 0x45, 0xd0, 0x49, 0xb1, 0x55,
		0xb4, 0x68, 0xf9, 0x0a, 0x3a, 0x58, 0x47, 0x08, 0x55, 0xb2, 0x8c, 0xca, 0xc0, 0x3d, 0x11, 0x81,
		0x73, 0x92, 0xfa, 0x7a, 0x82, 0x27, 0xe5, 0x2b, 0xc9, 0x9f, 0xab, 0xa6, 0x12, 0x43, 0xe7, 0x45,
		0x1a, 0x07, 0x31, 0xb3, 0xa8, 0xe6, 0x77, 0x52, 0xce, 0xe7, 0x64, 0x91, 0xbf, 0x49, 0x3d, 0x26,
		0x64, 0x93, 0x9f, 0xc9, 0x26, 0xec, 0xe3, 0x92, 0x7f, 0x89, 0xd3, 0x99, 0xef, 0xea, 0x6f, 0x7e,
		0x4c, 0x94, 0xbe, 0x67, 0x27, 0x90, 0x64, 0xe1, 0x24, 0x27, 0x02, 0x84, 0x8f, 0xa0, 0x89, 0x92,
		0x00, 0xf2, 0x64, 0x80, 0x03, 0x29, 0x60, 0x45, 0x0e, 0xb8, 0x90, 0x04, 0x76, 0x64, 0x81, 0x1d,
		0x69, 0xe0, 0x46, 0x1e, 0x68, 0x92, 0x08, 0xa2, 0x64, 0x82, 0x3c, 0xa9, 0xc8, 0x0d, 0xbc, 0xf0,
		0xe3, 0x38, 0x62, 0x91, 0x8b, 0x9f, 0xe3, 0xfb, 0x8d, 0xc9, 0x98, 0x89, 0x57, 0x9c, 0xb1, 0x98,
		0x89, 0x57, 0x14, 0xc9, 0x44, 0x65, 0x71, 0x75, 0x48, 0x27, 0x4b, 0xf2, 0xc9, 0x8d, 0x84, 0xb2,
		0x25, 0xa3, 0x6c, 0x49, 0x29, 0x57, 0x72, 0x4a, 0x9b, 0xa4, 0x12, 0x27, 0xab, 0xf9, 0x4b, 0xc7,
		0x4c, 0xbc, 0xf2, 0x49, 0x02, 0x66, 0xe2, 0x99, 0xb7, 0x79, 0xec, 0x8b, 0x69, 0x20, 0x7d, 0x47,
		0x46, 0x93, 0x28, 0x88, 0xce, 0xae, 0x1d, 0xdf, 0x13, 0xa1, 0xf4, 0x4f, 0x7d, 0x11, 0x33, 0x0a,
		0xae, 0x1e, 0xbc, 0x05, 0x90, 0x6f, 0x90, 0x6f, 0x90, 0x6f, 0x90, 0x6f, 0x90, 0x6f, 0x90, 0x6f,
		0x90, 0x6f, 0x90, 0xef, 0x95, 0x1e, 0xe8, 0x6f, 0x18, 0x51, 0xef, 0x26, 0x5a, 0xa0, 0x17, 0xfc,
		0x41, 0x0b, 0xf4, 0x72, 0x8d, 0x46, 0x0b, 0x74, 0x5d, 0x10, 0x87, 0x16, 0xe8, 0x0a, 0xb6, 0x24,
		0xe7, 0x16, 0xe8, 0x1b, 0x4d, 0xf4, 0x3e, 0xc7, 0xa6, 0x34, 0x81, 0x18, 0xf3, 0xb1, 0x12, 0xbd,
		0xcf, 0x8d, 0x73, 0x0a, 0xf6, 0x57, 0xe1, 0x9f, 0x9d, 0x4b, 0x3e, 0x3a, 0xe9, 0xdc, 0x5e, 0x88,
		0xa2, 0x45, 0x98, 0x09, 0x51, 0xb4, 0xc4, 0x95, 0x0a, 0x51, 0xb4, 0xcc, 0x0d, 0x06, 0x51, 0x54,
		0xb1, 0xe1, 0x10, 0x45, 0xab, 0x17, 0x2e, 0x42, 0x14, 0x2d, 0x9d, 0x22, 0x40, 0x14, 0x2d, 0xfa,
		0x03, 0x51, 0xb4, 0x5c, 0xa3, 0x21, 0x8a, 0xea, 0x82, 0x38, 0x88, 0xa2, 0x0a, 0xb6, 0x24, 0x44,
		0x51, 0x6c, 0xca, 0x4a, 0x6c, 0x4a, 0x88, 0xa2, 0x85, 0x7c, 0x20, 0x8a, 0x9a, 0x64, 0x19, 0x5a,
		0xfa, 0x3f, 0xcf, 0x4e, 0xae, 0x2d, 0xcf, 0xee, 0x74, 0x53, 0x42, 0x67, 0xff, 0x82, 0xfb, 0xa0,
		0xf5, 0x7d, 0xaf, 0x9b, 0x3e, 0xe0, 0x77, 0xb3, 0xe7, 0x8b, 0xfe, 0xfe, 0xcc, 0x61, 0xc9, 0x4e,
		0xf7, 0x0e, 0xfd, 0xee, 0x28, 0x99, 0x95, 0x68, 0x8e, 0xf2, 0x14, 0xf3, 0xd0, 0x1c, 0xa5, 0xc0,
		0x75, 0x88, 0xe6, 0x28, 0x45, 0x6e, 0x1c, 0x34, 0x47, 0x29, 0x9b, 0x6f, 0xa2, 0x39, 0x8a, 0xb9,
		0xc1, 0x04, 0xf9, 0xe6, 0x28, 0x32, 0xb8, 0xe4, 0x93, 0x91, 0x92, 0x1a, 0xcb, 0x23, 0x1d, 0xa5,
		0x8e, 0x74, 0x94, 0xca, 0x10, 0x0f, 0x96, 0x04, 0x84, 0x1b, 0x11, 0x61, 0x4b, 0x48, 0xd8, 0x12,
		0x13, 0xae, 0x04, 0x85, 0x36, 0x51, 0x21, 0x4e, 0x58, 0xd8, 0x10, 0x97, 0xdc, 0x50, 0x11, 0x47,
		0xce, 0x85, 0x90, 0xb1, 0x3f, 0xe6, 0x83, 0x61, 0x0b, 0x47, 0xb1, 0x64, 0x3b, 0x13, 0x2c, 0xe0,
		0x41, 0x6f, 0xd8, 0xd1, 0x1c, 0x8e, 0x74, 0x87, 0x35, 0xed, 0xe1, 0x4a, 0x7f, 0xd8, 0xd3, 0x20,
		0xf6, 0x74, 0x88, 0x3b, 0x2d, 0xe2, 0x41, 0x8f, 0x98, 0xd0, 0x24, 0x76, 0x74, 0x29, 0x37, 0x98,
		0x76, 0xc7, 0xfd, 0x1f, 0xfa, 0x1a, 0xea, 0x47, 0xc6, 0x06, 0x90, 0x27, 0xb6, 0x24, 0x8a, 0x33,
		0x99, 0x32, 0x82, 0x54, 0x71, 0x27, 0x57, 0xc6, 0x90, 0x2c, 0x63, 0xc8, 0x96, 0x29, 0xa4, 0x8b,
		0x17, 0xf9, 0x62, 0x46, 0xc2, 0xd8, 0x92, 0xb1, 0xdc, 0x70, 0x66, 0x3a, 0xd6, 0x83, 0x4e, 0x8b,
		0x95, 0xa6, 0xf5, 0x10, 0x4d, 0x5b, 0x67, 0x6a, 0x3e, 0x57, 0xba, 0x66, 0x02, 0x6d, 0x33, 0x8a,
		0xbe, 0x99, 0x42, 0xe3, 0x8c, 0xa3, 0x73, 0xc6, 0xd1, 0x3a, 0xd3, 0xe8, 0x1d, 0x4f, 0x9a, 0xc7,
		0x94, 0xee, 0xe5, 0x8b, 0x87, 0x4d, 0x05, 0xfd, 0x0f, 0xbd, 0xc6, 0xd4, 0x0f, 0xe5, 0x26, 0x6b,
		0x97, 0x31, 0xe7, 0x50, 0xdb, 0x8c, 0x6f, 0x81, 0x57, 0x29, 0xfe, 0x43, 0x1f, 0xde, 0x2e, 0xdb,
		0xe2, 0x5a, 0xba, 0xff, 0xe0, 0xcd, 0x30, 0x2d, 0xe9, 0x7f, 0xf0, 0x7e, 0xb8, 0x57, 0x15, 0x3f,
		0x8c, 0xc5, 0x5c, 0xab, 0x8d, 0x0d, 0x73, 0xeb, 0xab, 0x50, 0xe0, 0x5e, 0x99, 0x07, 0x05, 0x8d,
		0x8d, 0x9d, 0xc6, 0xce, 0xd6, 0xf6, 0xc6, 0x4e, 0x13, 0x98, 0x00, 0x4c, 0x40, 0x80, 0x52, 0x01,
		0xeb, 0x87, 0x2f, 0xf0, 0xbc, 0x61, 0x31, 0x73, 0x0f, 0xcd, 0xa5, 0x53, 0xc2, 0x83, 0xf6, 0x9b,
		0xd3, 0x41, 0x21, 0xff, 0x5f, 0x37, 0x19, 0xc5, 0x35, 0x8e, 0x29, 0x32, 0x96, 0x01, 0xdd, 0x16,
		0xf2, 0xff, 0xd1, 0x8e, 0xa3, 0xfd, 0xec, 0x55, 0x50, 0x6e, 0xc0, 0xc0, 0x1f, 0x39, 0x91, 0xc8,
		0x58, 0xe4, 0xe6, 0x13, 0x57, 0x32, 0x76, 0x9d, 0x69, 0xba, 0x85, 0x4e, 0x02, 0x5e, 0x72, 0xaa,
		0xfd, 0xf5, 0x5c, 0x84, 0xec, 0x04, 0x3b, 0xc6, 0xb9, 0x69, 0x6b, 0x6b, 0x33, 0x27, 0x53, 0x4b,
		0x5d, 0x98, 0xf5, 0xab, 0xf5, 0x72, 0x7e, 0x64, 0x33, 0x73, 0x6e, 0x6f, 0xdb, 0x47, 0xbd, 0xd1,
		0x7e, 0x7b, 0x70, 0xd4, 0x79, 0xff, 0x12, 0xc9, 0x6b, 0xea, 0xed, 0x5f, 0x3a, 0xed, 0xcc, 0x36,
		0x06, 0x52, 0xd7, 0x34, 0xb3, 0xe5, 0xa5, 0xb3, 0xcd, 0x47, 0xec, 0x1c, 0x7e, 0x31, 0x17, 0xc3,
		0xbd, 0xbe, 0x2b, 0x92, 0x71, 0xec, 0x4f, 0xd8, 0x86, 0x32, 0x2b, 0xb0, 0xdc, 0x09, 0xc7, 0xc1,
		0xd4, 0x13, 0x96, 0x3c, 0x17, 0x56, 0xfb, 0xa8, 0x67, 0xcd, 0x48, 0xa8, 0x95, 0x4c, 0x4f, 0x9c,
		0x41, 0xf7, 0x93, 0x35, 0x71, 0x63, 0xf7, 0x42, 0x48, 0x11, 0x27, 0x56, 0x14, 0x06, 0xd7, 0x56,
		0x0a, 0x0e, 0xc7, 0x61, 0xfa, 0x87, 0xb3, 0xc5, 0xe8, 0x27, 0x56, 0x4a, 0x64, 0xc7, 0xae, 0x14,
		0x9e, 0xe5, 0x26, 0x56, 0x32, 0x1d, 0x9f, 0x73, 0xc5, 0x0e, 0x03, 0x12, 0x57, 0x96, 0x61, 0xdc,
		0x5b, 0x5a, 0xa5, 0x8c, 0x0f, 0x56, 0x4d, 0xca, 0x5a, 0x59, 0x41, 0xf5, 0x12, 0x36, 0x1e, 0x74,
		0x42, 0x58, 0xcc, 0xd8, 0xda, 0x21, 0x62, 0xf3, 0x22, 0xb1, 0x86, 0xa7, 0xde, 0x6a, 0xb6, 0xce,
		0xca, 0xa9, 0xd8, 0xdd, 0x38, 0x65, 0xd5, 0x46, 0x67, 0xf5, 0xaa, 0x20, 0x60, 0xd6, 0x2c, 0x65,
		0x8e, 0x21, 0x0c, 0xdb, 0xbc, 0x64, 0x96, 0xa3, 0xc9, 0x4b, 0x19, 0xe6, 0xa2, 0xc9, 0x8b, 0xc2,
		0xb5, 0x8c, 0x26, 0x2f, 0x7a, 0x62, 0x7f, 0x34, 0x79, 0xd1, 0x1e, 0xde, 0xa3, 0xc9, 0x4b, 0xc5,
		0xe3, 0x2f, 0x7e, 0x4d, 0x5e, 0xc4, 0x59, 0xba, 0x78, 0x13, 0xc6, 0x7d, 0x5e, 0x16, 0x77, 0x80,
		0x56, 0x2f, 0xa0, 0x52, 0x66, 0x51, 0x2a, 0x23, 0xa8, 0x15, 0x77, 0x8a, 0x65, 0x0c, 0xd5, 0x32,
		0x86, 0x72, 0x99, 0x42, 0xbd, 0x78, 0x51, 0x30, 0x66, 0x54, 0x8c, 0x2d, 0x25, 0xbb, 0x4d, 0xcd,
		0xf8, 0x67, 0x1b, 0x2c, 0x6e, 0x84, 0x77, 0xb3, 0x97, 0x3a, 0x9a, 0xbd, 0x80, 0xb8, 0x55, 0x99,
		0xc0, 0x99, 0x42, 0xe4, 0x8c, 0x23, 0x74, 0xc6, 0x11, 0x3b, 0xd3, 0x08, 0x1e, 0x4f, 0xa2, 0xc7,
		0x94, 0xf0, 0xb1, 0x27, 0x7e, 0xf9, 0x0d, 0xf8, 0x93, 0xcb, 0x86, 0xc3, 0x9d, 0x05, 0xde, 0x71,
		0x81, 0x2b, 0x77, 0xc5, 0x1c, 0x9f, 0x78, 0x53, 0x43, 0x63, 0x28, 0xa2, 0x49, 0x54, 0xd1, 0x48,
		0xca, 0x68, 0x1a, 0x75, 0x34, 0x96, 0x42, 0x1a, 0x4b, 0x25, 0x4d, 0xa5, 0x94, 0xbc, 0xa9, 0x25,
		0x73, 0x8a, 0x69, 0x0c, 0xd5, 0xcc, 0x6f, 0x84, 0xe7, 0xcc, 0x8f, 0x1f, 0xfa, 0x50, 0xae, 0x8d,
		0x0e, 0x0c, 0x26, 0x9d, 0xc6, 0x91, 0x4f, 0x13, 0x49, 0xa8, 0xd1, 0x64, 0xd4, 0x54, 0x52, 0x6a,
		0x3c, 0x39, 0x35, 0x9e, 0xa4, 0x9a, 0x4e, 0x56, 0xcd, 0x20, 0xad, 0x86, 0x90, 0x57, 0xe3, 0x48,
		0x6c, 0x7e, 0x43, 0xae, 0xe7, 0xc5, 0x22, 0x49, 0xcc, 0x03, 0xf6, 0x85, 0x37, 0x5e, 0xdc, 0xa0,
		0x61, 0xa8, 0xc7, 0x7b, 0xba, 0x4a, 0x65, 0x88, 0xae, 0xc9, 0x84, 0xb7, 0x12, 0xc4, 0xd7, 0x74,
		0x02, 0x5c, 0x19, 0x22, 0x5c, 0x19, 0x42, 0x5c, 0x15, 0x62, 0x6c, 0x16, 0x41, 0x36, 0x8c, 0x28,
		0xe7, 0x8b, 0x90, 0xfd, 0x34, 0x99, 0x1f, 0x7a, 0xbd, 0xec, 0xac, 0x7e, 0xce, 0x32, 0x9d, 0x30,
		0x72, 0xfe, 0x1b, 0x85, 0xc2, 0x44, 0x07, 0xb8, 0x90, 0x54, 0xdf, 0x18, 0x78, 0x6f, 0x87, 0xae,
		0x94, 0x22, 0x0e, 0xd9, 0x8f, 0xa9, 0x79, 0xf0, 0x06, 0x5f, 0xbd, 0xfa, 0xbc, 0xee, 0xec, 0x0c,
		0xff, 0xf7, 0xb9, 0xee, 0xec, 0x0c, 0x67, 0x5f, 0xeb, 0xd9, 0x7f, 0x66, 0xdf, 0x37, 0x3e, 0xaf,
		0x3b, 0x8d, 0xc5, 0xf7, 0xe6, 0xe7, 0x75, 0xa7, 0x39, 0x7c, 0x7d, 0x7c, 0xbc, 0xf6, 0xfa, 0xef,
		0xcd, 0x6f, 0x8f, 0xff, 0x8b, 0xaf, 0xfe, 0xf1, 0xf9, 0xf8, 0x78, 0xf2, 0xf7, 0xc1, 0xb7, 0xf4,
		0x67, 0xf7, 0xdb, 0xf0, 0x5f, 0xaf, 0xff, 0x6d, 0x2a, 0x97, 0x48, 0x6f, 0xfc, 0xf8, 0x78, 0x6d,
		0xf8, 0x4f, 0xf3, 0xdc, 0xea, 0xf0, 0x05, 0x48, 0x02, 0xee, 0x04, 0x34, 0xe7, 0x07, 0x1c, 0x9b,
		0x77, 0xef, 0xfe, 0x07, 0xef, 0xcb, 0xd0, 0x5e, 0x53, 0xe9, 0x0d, 0xd5, 0x16, 0xc5, 0xd0, 0x8b,
		0x2f, 0xb5, 0xe5, 0x6c, 0xcb, 0x9a, 0x49, 0xc7, 0xe0, 0x96, 0x61, 0xdd, 0xaa, 0x0e, 0x5d, 0x79,
		0x3e, 0xea, 0xcf, 0x5f, 0xdf, 0xe2, 0xcb, 0xa8, 0x33, 0xb9, 0x6c, 0x2c, 0xbe, 0x33, 0x1c, 0x11,
		0x60, 0x2e, 0xd0, 0x23, 0xdf, 0x4a, 0xe7, 0xbe, 0x67, 0x3c, 0x82, 0xe0, 0xc1, 0x7b, 0x62, 0x39,
		0x9a, 0xe0, 0xa1, 0x8f, 0x81, 0xa9, 0x2f, 0x3f, 0x68, 0xc8, 0xde, 0x39, 0xfc, 0xd4, 0x18, 0xf5,
		0xdb, 0x1f, 0xf6, 0xdb, 0x07, 0x83, 0x97, 0xc8, 0x8e, 0x61, 0xa0, 0xf9, 0x18, 0x31, 0xfc, 0xe0,
		0xc1, 0xdb, 0xab, 0x54, 0x6e, 0xcc, 0xa3, 0xf6, 0xa6, 0x39, 0xe1, 0xb2, 0x41, 0x28, 0x63, 0xc2,
		0x78, 0x85, 0x1f, 0xba, 0x90, 0xe5, 0xee, 0xef, 0x9d, 0xc3, 0xcb, 0x86, 0x35, 0x0f, 0xcc, 0x6e,
		0x9a, 0xbd, 0x5b, 0x4b, 0xbd, 0xde, 0x8f, 0x43, 0x53, 0xa6, 0x2c, 0x54, 0xcd, 0xb7, 0x58, 0x46,
		0x4e, 0x65, 0xa8, 0xac, 0xab, 0xb1, 0xbe, 0x37, 0xc5, 0xe1, 0x69, 0xfb, 0x18, 0x02, 0x34, 0xee,
		0x04, 0x77, 0xf1, 0xe0, 0x67, 0x08, 0x75, 0x45, 0x27, 0xd4, 0x99, 0x25, 0xfc, 0x57, 0x57, 0xf0,
		0x37, 0xa1, 0x62, 0xbc, 0x4a, 0x12, 0xbf, 0x8d, 0x59, 0xfb, 0x00, 0xec, 0x47, 0xef, 0x0f, 0x13,
		0x2a, 0x76, 0x8d, 0xaa, 0xd4, 0x45, 0x5b, 0x18, 0x62, 0x37, 0x82, 0xb6, 0x30, 0xd0, 0x81, 0x74,
		0x69, 0x3f, 0x68, 0x0b, 0xc3, 0x4e, 0xde, 0x41, 0x5b, 0x18, 0xf0, 0xb2, 0x42, 0x16, 0x95, 0x31,
		0x6d, 0x61, 0x82, 0x28, 0x4a, 0x0c, 0x6c, 0x0b, 0x33, 0xbb, 0x2d, 0x53, 0xca, 0xb7, 0xc5, 0xa9,
		0x3b, 0x0d, 0xa4, 0x51, 0x79, 0xfe, 0xf6, 0xa9, 0x1b, 0x24, 0x86, 0xe4, 0xbc, 0x0d, 0xcd, 0x6a,
		0x3f, 0xb4, 0x8e, 0xf6, 0x43, 0x08, 0x76, 0x10, 0xf4, 0x20, 0xf8, 0xa9, 0x5c, 0x10, 0x64, 0x7c,
		0x30, 0x64, 0x7a, 0x50, 0x64, 0x46, 0x70, 0x64, 0x48, 0x90, 0x94, 0x2f, 0x36, 0xe3, 0xaa, 0xa9,
		0x73, 0xaf, 0x75, 0x12, 0x45, 0x81, 0x70, 0x4d, 0x4a, 0xfd, 0xc9, 0x15, 0xee, 0x3a, 0x12, 0x26,
		0x00, 0x02, 0x05, 0xad, 0x29, 0x69, 0x12, 0x00, 0xe4, 0x9b, 0x3f, 0xbb, 0x2b, 0x84, 0x7e, 0x08,
		0xfd, 0x10, 0xfa, 0x21, 0xf4, 0x43, 0xe8, 0x87, 0xd0, 0x0f, 0xa1, 0x1f, 0x18, 0x1f, 0x58, 0x5f,
		0x45, 0x42, 0x3f, 0xdf, 0x13, 0xa1, 0xf4, 0xe5, 0x75, 0x2c, 0x4e, 0x4d, 0x0c, 0xff, 0x9a, 0x06,
		0xdd, 0x53, 0x67, 0xfe, 0xaa, 0xde, 0xb9, 0x89, 0x30, 0xb7, 0x04, 0xad, 0xd7, 0x3f, 0xdc, 0xfb,
		0xb4, 0x31, 0x6a, 0xff, 0x31, 0x38, 0x3c, 0x6a, 0xef, 0x75, 0xfe, 0x18, 0xbd, 0xeb, 0x1c, 0xec,
		0x76, 0x0e, 0x3e, 0x8c, 0xda, 0x47, 0xbd, 0xd1, 0x61, 0x6b, 0xf0, 0x9f, 0x45, 0x9d, 0xe4, 0x68,
		0xf0, 0xe7, 0x61, 0xdb, 0x34, 0xb7, 0xfd, 0xc9, 0x0d, 0xa6, 0x22, 0x31, 0xb2, 0x15, 0x9a, 0xa1,
		0xad, 0x5b, 0xf3, 0xd2, 0xc9, 0xa5, 0x12, 0x5e, 0x03, 0xfb, 0x7c, 0xfe, 0x82, 0xf5, 0xc8, 0x6b,
		0x3d, 0x7e, 0x3c, 0x38, 0xf8, 0xb8, 0xff, 0xae, 0x7d, 0xd4, 0xde, 0x1d, 0x75, 0x0e, 0x06, 0xed,
		0xa3, 0xbd, 0xd6, 0xfb, 0xb6, 0xc1, 0xeb, 0xd3, 0xa8, 0x3b, 0x1a, 0x22, 0x8c, 0xc1, 0x5d, 0xe0,
		0x0e, 0x4c, 0xf1, 0x3e, 0xa8, 0x57, 0xe4, 0x5c, 0xaf, 0x68, 0x4a, 0x4f, 0x42, 0xf3, 0x0b, 0x15,
		0x0d, 0xe8, 0x3f, 0x88, 0x12, 0x45, 0x1d, 0x3b, 0x63, 0x1a, 0x86, 0xd3, 0x8b, 0x13, 0x11, 0x0b,
		0xcf, 0x39, 0x8f, 0x26, 0xe6, 0xd4, 0x2a, 0xde, 0xba, 0x2f, 0x14, 0x2d, 0x52, 0xb8, 0x0d, 0x14,
		0x2d, 0x12, 0xde, 0x31, 0x28, 0x5a, 0xa4, 0x0c, 0x00, 0x28, 0x5a, 0xe4, 0x16, 0xf8, 0xa0, 0x68,
		0x11, 0x4c, 0xad, 0xe8, 0x45, 0x85, 0x59, 0xf6, 0xb4, 0x7d, 0x28, 0x66, 0xd9, 0x83, 0x7c, 0x82,
		0x84, 0x82, 0x8c, 0x56, 0x82, 0x94, 0x1a, 0x4f, 0x4e, 0x8d, 0x27, 0xa9, 0xa6, 0x93, 0x55, 0x33,
		0x48, 0xab, 0x21, 0xe4, 0xd5, 0x38, 0x12, 0x9b, 0xdf, 0x90, 0x1f, 0x4a, 0x11, 0x9f, 0xba, 0x63,
		0xe1, 0xf8, 0x9e, 0xb9, 0xd9, 0x69, 0x2b, 0x77, 0x89, 0xa9, 0xf6, 0xa0, 0xbc, 0xa0, 0xbe, 0xa0,
		0xc0, 0xa0, 0xc2, 0xd5, 0xa4, 0xc4, 0x95, 0xa1, 0xc6, 0x55, 0xa1, 0xc8, 0x66, 0x51, 0x65, 0xc3,
		0x28, 0x73, 0xbe, 0x08, 0xcd, 0x9f, 0x6a, 0x3f, 0xf5, 0x43, 0xb9, 0xb9, 0x61, 0xf0, 0x1c, 0xfb,
		0x6d, 0x03, 0x6f, 0xed, 0xc8, 0x0d, 0xcf, 0x84, 0xb1, 0x43, 0xec, 0xcd, 0xa4, 0x28, 0xd9, 0x8b,
		0xdb, 0xf7, 0x43, 0x63, 0x39, 0x58, 0x7e, 0x93, 0x59, 0x61, 0x91, 0x79, 0x41, 0xd0, 0x9d, 0xfb,
		0xdc, 0x8b, 0xdd, 0xb1, 0xf4, 0xa3, 0x70, 0xd7, 0x3f, 0xf3, 0x65, 0x52, 0x81, 0x1b, 0x3e, 0x10,
		0x67, 0xae, 0xf4, 0x2f, 0xd3, 0x77, 0x9b, 0xf5, 0xa2, 0x34, 0xf6, 0x6e, 0xbf, 0xfd, 0x62, 0x30,
		0x04, 0xb9, 0x57, 0xd5, 0x81, 0xa0, 0xc6, 0xc6, 0x4e, 0x63, 0x67, 0x6b, 0x7b, 0x63, 0xa7, 0x09,
		0x2c, 0x02, 0x16, 0x21, 0x40, 0xc4, 0x5d, 0x95, 0xf6, 0x19, 0x62, 0x8c, 0x21, 0x7c, 0x79, 0xc9,
		0xa0, 0x17, 0x47, 0x53, 0x29, 0x62, 0xa3, 0x4f, 0xbd, 0x6e, 0x6e, 0x11, 0x47, 0x5e, 0x1c, 0x6e,
		0x0b, 0x47, 0x5e, 0x8c, 0x37, 0x1b, 0x8e, 0xbc, 0x38, 0x03, 0x0a, 0x8e, 0xbc, 0x0c, 0xbb, 0x51,
		0x1c, 0x79, 0x81, 0x5f, 0x6a, 0x5f, 0x84, 0xe6, 0x1f, 0x79, 0x65, 0x53, 0x81, 0x5d, 0xcf, 0x8b,
		0x45, 0x92, 0x38, 0x61, 0xe4, 0xfc, 0x37, 0x0a, 0x85, 0xc1, 0x07, 0x60, 0xf5, 0x37, 0x06, 0xde,
		0xdb, 0xa1, 0x2b, 0xa5, 0x88, 0x43, 0x63, 0xcf, 0xc0, 0xec, 0x57, 0xaf, 0x3e, 0xaf, 0x3b, 0x3b,
		0xc3, 0xff, 0x7d, 0xae, 0x3b, 0x3b, 0xc3, 0xd9, 0xd7, 0x7a, 0xf6, 0x9f, 0xd9, 0xf7, 0x8d, 0xcf,
		0xeb, 0x4e, 0x63, 0xf1, 0xbd, 0xf9, 0x79, 0xdd, 0x69, 0x0e, 0x5f, 0x1f, 0x1f, 0xaf, 0xbd, 0xfe,
		0x7b, 0xf3, 0xdb, 0xe3, 0xff, 0xe2, 0xab, 0x7f, 0x7c, 0x3e, 0x3e, 0x9e, 0xfc, 0x7d, 0xf0, 0x2d,
		0xfd, 0xd9, 0xfd, 0x36, 0xfc, 0xd7, 0xeb, 0x7f, 0x9b, 0xca, 0x25, 0xd2, 0x1b, 0x3f, 0x3e, 0x5e,
		0x1b, 0xfe, 0xd3, 0x86, 0x00, 0x05, 0x92, 0x80, 0x3b, 0xa9, 0x1a, 0xcd, 0x31, 0xad, 0x3f, 0x52,
		0x7e, 0x5f, 0x95, 0xea, 0x93, 0xb4, 0xda, 0x6c, 0xa4, 0x66, 0x52, 0x15, 0xa8, 0x55, 0x89, 0xf6,
		0x49, 0x1f, 0xf3, 0x17, 0xf8, 0x9f, 0x68, 0x62, 0x42, 0x33, 0x25, 0x73, 0xc0, 0x1e, 0x0d, 0x07,
		0x74, 0xee, 0x7c, 0x71, 0x25, 0x63, 0xd7, 0x99, 0xa6, 0xfb, 0xf7, 0x24, 0x30, 0x23, 0x0e, 0xb7,
		0xbf, 0x9e, 0x0b, 0x73, 0x02, 0x35, 0x03, 0x6b, 0xbf, 0xd7, 0xd6, 0x66, 0x1e, 0xb4, 0x96, 0x7a,
		0x6f, 0xeb, 0x57, 0xeb, 0xe5, 0x5c, 0x7b, 0x9c, 0xf9, 0xf5, 0xb7, 0xdf, 0xeb, 0xee, 0xfb, 0x12,
		0xe5, 0xe2, 0x0c, 0x74, 0xa0, 0x9b, 0x83, 0x82, 0x6c, 0x2b, 0xa2, 0x58, 0x9c, 0x59, 0xc8, 0xb2,
		0x74, 0x2c, 0xf0, 0xac, 0xbd, 0x8a, 0x9c, 0x0e, 0x82, 0x6f, 0x77, 0x57, 0x24, 0xe3, 0xd8, 0x9f,
		0x18, 0x17, 0x91, 0xae, 0xb8, 0x98, 0x4e, 0x38, 0x0e, 0xa6, 0x9e, 0xb0, 0xe4, 0xb9, 0xb0, 0x6e,
		0x82, 0x37, 0x6b, 0x1e, 0xcf, 0x59, 0x51, 0x18, 0x5c, 0x5b, 0x29, 0x36, 0xa5, 0x7f, 0xe0, 0x38,
		0xcc, 0xd6, 0xb6, 0x9f, 0x58, 0x69, 0x38, 0x31, 0x76, 0xa5, 0xf0, 0x2c, 0x37, 0xb1, 0x92, 0xe9,
		0xf8, 0xdc, 0x34, 0xe8, 0x32, 0xf8, 0x88, 0x7a, 0xd9, 0xeb, 0x78, 0x4b, 0x4b, 0xdc, 0xc0, 0xb3,
		0x88, 0x2a, 0x9c, 0x4f, 0xaf, 0x38, 0xa1, 0xa2, 0x76, 0x33, 0x04, 0x6b, 0xdc, 0x09, 0xee, 0xe2,
		0xc1, 0xcf, 0x10, 0x4a, 0x8c, 0x4e, 0xc0, 0xc3, 0x20, 0x05, 0x53, 0x0e, 0x08, 0x30, 0x51, 0x81,
		0xdb, 0x91, 0x00, 0x26, 0x2b, 0xc0, 0x72, 0xe3, 0x5d, 0x8d, 0xdd, 0xf5, 0x13, 0xd9, 0x92, 0x92,
		0x77, 0x77, 0x36, 0x7b, 0xdf, 0x0f, 0xdb, 0x81, 0xc8, 0x36, 0x33, 0xef, 0x32, 0x00, 0x7b, 0xdf,
		0xbd, 0x5a, 0xba, 0x93, 0xfa, 0x9b, 0x46, 0x63, 0x6b, 0xbb, 0xd1, 0x58, 0xdf, 0xde, 0xdc, 0x5e,
		0xdf, 0x69, 0x36, 0xeb, 0x5b, 0x9c, 0x47, 0xbc, 0xda, 0xbd, 0xd8, 0x4b, 0xc1, 0xf5, 0xdd, 0xb5,
		0xfd, 0xd6, 0x0a, 0xa7, 0x41, 0x60, 0xc2, 0xad, 0x7c, 0x4c, 0x44, 0xcc, 0xba, 0x00, 0x94, 0x2b,
		0x72, 0x19, 0x42, 0x8e, 0x2b, 0x45, 0x8a, 0x19, 0xb3, 0x60, 0xe3, 0xd9, 0x2f, 0x4f, 0xbe, 0xcb,
		0x8f, 0x2d, 0xf2, 0xb2, 0x98, 0x99, 0x77, 0xe0, 0xee, 0x15, 0x2a, 0xe1, 0x0d, 0x18, 0x7a, 0x01,
		0x63, 0xd1, 0x9f, 0x17, 0xea, 0xf3, 0xc1, 0x4e, 0x1e, 0x96, 0x32, 0x41, 0x77, 0xce, 0x29, 0x89,
		0x3c, 0x53, 0x0f, 0x19, 0x7a, 0xce, 0x9f, 0x4c, 0x25, 0x6c, 0x1f, 0xf5, 0x46, 0x87, 0xad, 0xc1,
		0x7f, 0x38, 0xa6, 0x0d, 0x72, 0x4f, 0xd6, 0x30, 0x24, 0x0d, 0xd0, 0x98, 0x6c, 0x8b, 0xc7, 0xa4,
		0xf5, 0xdd, 0xec, 0x9b, 0x17, 0x50, 0xb8, 0xca, 0x7f, 0x33, 0x26, 0xa4, 0xe4, 0xdd, 0x9b, 0x7a,
		0xd7, 0x3e, 0xea, 0x59, 0x29, 0x03, 0xb5, 0x92, 0xe9, 0x89, 0x33, 0xe8, 0x7e, 0xb2, 0x26, 0x6e,
		0xec, 0x5e, 0x08, 0x29, 0xe2, 0xc4, 0xf4, 0x1c, 0x3c, 0x13, 0x72, 0xed, 0xcc, 0xcb, 0xa9, 0x33,
		0x2a, 0x77, 0xee, 0xc1, 0x1c, 0xb9, 0x42, 0xb6, 0x1d, 0x14, 0x42, 0x58, 0xcc, 0xd8, 0xda, 0x21,
		0x62, 0xf2, 0x22, 0x91, 0x86, 0xa7, 0xd2, 0x6a, 0xb2, 0xc2, 0xca, 0xc8, 0x0b, 0x9b, 0x26, 0xa8,
		0xf2, 0xf0, 0x8d, 0xf4, 0xb1, 0x9a, 0x01, 0xfa, 0xd9, 0x77, 0x76, 0x22, 0x1b, 0x00, 0xbc, 0x19,
		0x5a, 0x7e, 0xe7, 0x16, 0x98, 0x78, 0x1d, 0x5e, 0x03, 0xca, 0xd9, 0xb5, 0xa6, 0xe5, 0xd8, 0x72,
		0x96, 0x75, 0x2b, 0x59, 0xae, 0x9a, 0x00, 0xfb, 0xd6, 0xaf, 0xec, 0xc3, 0x7e, 0xee, 0xad, 0x5a,
		0x71, 0x42, 0x5a, 0xe4, 0x62, 0xe0, 0x36, 0x60, 0xdb, 0x9e, 0x35, 0xcc, 0x62, 0x07, 0x7b, 0x39,
		0x81, 0x62, 0xd8, 0xef, 0x8b, 0x19, 0x79, 0x62, 0x4b, 0xa2, 0x38, 0x93, 0x29, 0x23, 0x48, 0x15,
		0x77, 0x72, 0x65, 0x0c, 0xc9, 0x32, 0x86, 0x6c, 0x99, 0x42, 0xba, 0x78, 0x91, 0x2f, 0x66, 0x24,
		0x8c, 0x2d, 0x19, 0xbb, 0x21, 0x65, 0xbe, 0x97, 0x29, 0xd3, 0xfc, 0x53, 0x0e, 0xf2, 0x3b, 0x61,
		0x8a, 0x33, 0xbc, 0x47, 0x35, 0xb1, 0x1f, 0xc9, 0x64, 0xc2, 0xe8, 0x25, 0xa3, 0x46, 0x2c, 0x99,
		0xd2, 0xa7, 0xca, 0xb8, 0x91, 0x49, 0xc6, 0xb5, 0x9e, 0x32, 0x6d, 0x04, 0x12, 0xfa, 0x29, 0xa8,
		0x5c, 0x3c, 0xec, 0x47, 0x17, 0xdd, 0x30, 0xa8, 0xd8, 0x61, 0x4e, 0xa2, 0x96, 0x89, 0x54, 0xbd,
		0xc1, 0xf8, 0x1e, 0xda, 0xe1, 0xf4, 0x82, 0xbf, 0xe7, 0x1b, 0x44, 0x7d, 0x19, 0x73, 0x3a, 0x2d,
		0xff, 0xee, 0xdd, 0xac, 0xa7, 0x7b, 0xa4, 0xdb, 0x7a, 0xd7, 0xee, 0x9a, 0xd0, 0xda, 0xa9, 0x9e,
		0xde, 0x4d, 0xbf, 0xb3, 0x6b, 0xa3, 0xdf, 0x9b, 0xd6, 0x1d, 0xd2, 0xc9, 0x68, 0x87, 0x01, 0xdb,
		0x63, 0xb6, 0x33, 0x8c, 0x18, 0xc9, 0x9b, 0xed, 0x8b, 0xb7, 0x56, 0x1d, 0xfd, 0xc0, 0x60, 0xb9,
		0xc1, 0x56, 0x73, 0xac, 0x92, 0x4a, 0x09, 0xea, 0xa5, 0x1b, 0x4c, 0x0d, 0x11, 0x2c, 0x67, 0xb7,
		0x02, 0xc5, 0x52, 0x87, 0xf9, 0x50, 0x2c, 0x09, 0x6d, 0x06, 0x28, 0x96, 0x94, 0x36, 0x36, 0x14,
		0x4b, 0xe2, 0x37, 0x04, 0xc5, 0x12, 0xfc, 0xe9, 0xe9, 0x41, 0xa7, 0x31, 0x8a, 0xe5, 0xd4, 0x0f,
		0xe5, 0xe6, 0x86, 0x01, 0x62, 0xe5, 0x36, 0xe3, 0x5b, 0x38, 0x72, 0xc3, 0x33, 0xc1, 0x7e, 0xd4,
		0x9e, 0x01, 0x0a, 0xcc, 0xbe, 0x6f, 0xce, 0x30, 0x27, 0xfb, 0xd3, 0x3c, 0xc8, 0x5b, 0x37, 0x64,
		0x04, 0xf4, 0x5e, 0xec, 0x8e, 0xa5, 0x1f, 0x85, 0xbb, 0xfe, 0x99, 0xcf, 0xbd, 0x67, 0xf5, 0x2a,
		0x16, 0x8b, 0x33, 0x57, 0xfa, 0x97, 0x82, 0x75, 0x4b, 0x64, 0x03, 0xdc, 0xfa, 0x2a, 0x14, 0xb8,
		0x57, 0xe6, 0x41, 0x41, 0x63, 0x63, 0xa7, 0xb1, 0xb3, 0xb5, 0xbd, 0xb1, 0xd3, 0x04, 0x26, 0x00,
		0x13, 0x10, 0xa0, 0x54, 0xc0, 0xfa, 0x21, 0x8e, 0x02, 0x60, 0x31, 0x77, 0x0f, 0x8d, 0x16, 0xd5,
		0xf4, 0x1a, 0xa8, 0xdc, 0xfd, 0x5f, 0x1c, 0xeb, 0xfb, 0x2c, 0x93, 0xfa, 0xaa, 0xdc, 0xfe, 0x1f,
		0xfd, 0xec, 0x85, 0xa0, 0x33, 0x56, 0x85, 0x2d, 0x45, 0xb7, 0xea, 0xf2, 0x6d, 0x47, 0xb7, 0x6a,
		0x45, 0x31, 0xd1, 0xcf, 0x75, 0xab, 0xee, 0x77, 0x76, 0x47, 0x59, 0x2a, 0xd5, 0xe8, 0x5d, 0xe7,
		0x60, 0xb7, 0x73, 0xf0, 0x01, 0x6d, 0xab, 0x35, 0xd8, 0x8f, 0xb6, 0xd5, 0xc4, 0x18, 0xf4, 0xcf,
		0xb7, 0xad, 0xbe, 0x67, 0x03, 0x21, 0x33, 0x4b, 0xc1, 0x2b, 0x32, 0xb6, 0x7f, 0x75, 0xbf, 0xb3,
		0x5b, 0xcb, 0x88, 0xa9, 0x35, 0x67, 0xa6, 0x0f, 0x75, 0xd4, 0x3d, 0x0e, 0x17, 0x2d, 0x75, 0x2d,
		0x34, 0xb2, 0xa6, 0x0d, 0xea, 0x68, 0x64, 0x4d, 0x1b, 0xe3, 0xcb, 0xdb, 0x7f, 0x10, 0x14, 0x61,
		0x31, 0x63, 0x6b, 0xd1, 0xd1, 0xba, 0x50, 0xc8, 0x41, 0x47, 0x6b, 0xb2, 0x82, 0x2c, 0x5a, 0x5b,
		0x6b, 0x97, 0x60, 0xd1, 0xe2, 0xba, 0x32, 0x70, 0xc8, 0xac, 0x3b, 0x23, 0xcb, 0xae, 0x8c, 0x68,
		0x65, 0x5d, 0xb2, 0xc1, 0x68, 0x65, 0x0d, 0x55, 0xe0, 0xb1, 0x4a, 0x00, 0x5a, 0x59, 0x6b, 0x0f,
		0xf6, 0xd1, 0xca, 0xba, 0xe2, 0x61, 0x18, 0xbb, 0x56, 0xd6, 0x2c, 0x3b, 0x26, 0xe6, 0xae, 0x86,
		0x61, 0x83, 0x1f, 0xa6, 0xb5, 0xc6, 0x68, 0x64, 0x0d, 0x4a, 0x55, 0x2d, 0x6a, 0x65, 0x0c, 0xc5,
		0x32, 0x86, 0x6a, 0x99, 0x42, 0xb9, 0x78, 0x51, 0x2f, 0x66, 0x14, 0x2c, 0x5f, 0x24, 0x6c, 0x6b,
		0x83, 0x73, 0xd4, 0xf7, 0x3d, 0x11, 0x4a, 0x5f, 0x5e, 0xc7, 0xe2, 0x94, 0x23, 0xee, 0x2f, 0x34,
		0x22, 0x86, 0x35, 0x4e, 0x76, 0x67, 0xfe, 0xe8, 0xdf, 0xb9, 0x89, 0x01, 0xfd, 0x79, 0x7a, 0xfd,
		0xc3, 0xbd, 0x4f, 0x1b, 0xa3, 0xf6, 0x1f, 0x83, 0xf6, 0xc1, 0x6e, 0x7b, 0x77, 0x74, 0x78, 0xd4,
		0xde, 0xeb, 0xfc, 0x31, 0xba, 0x93, 0x5f, 0x34, 0xea, 0x7f, 0x7c, 0x37, 0xe8, 0x7e, 0x1a, 0x0d,
		0xfe, 0x3c, 0x6c, 0x73, 0x75, 0x72, 0x59, 0x89, 0x5d, 0xc2, 0xba, 0x88, 0x9b, 0x79, 0xcf, 0x95,
		0xc5, 0xaa, 0x6b, 0x1f, 0xf5, 0x46, 0xfb, 0xed, 0xc1, 0x51, 0xe7, 0x3d, 0xe3, 0x76, 0x1e, 0xbf,
		0x60, 0x15, 0xe9, 0x5f, 0x45, 0x87, 0xad, 0xc1, 0x7f, 0xb0, 0x86, 0xb0, 0x86, 0x9e, 0xba, 0x86,
		0x52, 0x47, 0xb7, 0x7f, 0xd8, 0xed, 0xaf, 0x7a, 0x3b, 0x34, 0x19, 0x52, 0xfb, 0x19, 0x22, 0x40,
		0x83, 0xb5, 0x8c, 0x2c, 0x45, 0xea, 0x57, 0xb9, 0x76, 0x9b, 0x98, 0xfa, 0xc5, 0xac, 0xf2, 0xd6,
		0x9c, 0x74, 0x2f, 0x3e, 0x15, 0xb6, 0x0c, 0x92, 0xbc, 0x5e, 0x00, 0x96, 0x9f, 0xbe, 0xa5, 0xba,
		0x7e, 0x22, 0x5b, 0x52, 0xf2, 0x38, 0x07, 0xb6, 0xf7, 0xfd, 0xb0, 0x1d, 0x88, 0x0b, 0x11, 0x72,
		0xe9, 0xda, 0x63, 0xef, 0xbb, 0x57, 0x4b, 0x16, 0xd7, 0xdf, 0x34, 0x1a, 0x5b, 0xdb, 0x8d, 0xc6,
		0xfa, 0xf6, 0xe6, 0xf6, 0xfa, 0x4e, 0xb3, 0x59, 0xdf, 0xe2, 0xa0, 0x37, 0xda, 0xbd, 0xd8, 0x13,
		0xb1, 0xf0, 0xde, 0x5d, 0xdb, 0x6f, 0xad, 0x70, 0x1a, 0x04, 0x9c, 0x4c, 0xfe, 0x98, 0x88, 0x98,
		0x45, 0x3b, 0x24, 0xea, 0x48, 0xc1, 0x8c, 0xb8, 0x19, 0x48, 0xd8, 0x6c, 0x16, 0xe9, 0xcc, 0x46,
		0x50, 0x34, 0xda, 0xe4, 0x8c, 0x2e, 0xe5, 0xa1, 0x69, 0x19, 0x51, 0x68, 0xe5, 0x02, 0xa9, 0x86,
		0x41, 0x29, 0x61, 0x18, 0x35, 0x01, 0x3e, 0x69, 0x42, 0x27, 0x3d, 0x60, 0xa2, 0x65, 0x11, 0x31,
		0x88, 0xe4, 0xd0, 0xd9, 0x89, 0x76, 0x07, 0x27, 0xc2, 0xee, 0xc4, 0xc4, 0x8e, 0x4c, 0x5c, 0xf2,
		0x46, 0x99, 0x75, 0x58, 0x62, 0x97, 0x05, 0x6a, 0x6a, 0xc7, 0x24, 0xc2, 0xea, 0x04, 0xab, 0x0e,
		0x48, 0x77, 0x3a, 0x1d, 0x2d, 0xf5, 0x52, 0x89, 0x45, 0xe0, 0x4a, 0x3f, 0x3c, 0xb3, 0x64, 0x74,
		0xab, 0x01, 0xcb, 0xc9, 0x6a, 0x03, 0x96, 0xe3, 0x30, 0x0a, 0x83, 0x6b, 0x8b, 0x7d, 0xd7, 0x23,
		0x4e, 0xc9, 0xf6, 0x7c, 0xbb, 0x18, 0xb1, 0xcc, 0xa4, 0xbf, 0xb7, 0x2b, 0x51, 0xb9, 0x7b, 0x05,
		0x92, 0x8f, 0x49, 0x92, 0x0f, 0x39, 0xab, 0x86, 0x88, 0xf7, 0xf8, 0x4a, 0x61, 0xe6, 0x48, 0x60,
		0x04, 0x1d, 0x16, 0x73, 0xd5, 0x8b, 0x96, 0xe3, 0xa0, 0x03, 0x7c, 0x84, 0x20, 0x86, 0x68, 0x97,
		0x1d, 0xd2, 0xdd, 0x74, 0x88, 0x76, 0xcd, 0x21, 0x5b, 0xda, 0x4d, 0xb9, 0x74, 0x9b, 0x45, 0x69,
		0x36, 0xf5, 0x68, 0x90, 0x4d, 0x69, 0x35, 0x9b, 0x80, 0x8f, 0x4b, 0x69, 0x34, 0x8e, 0x6a, 0xbe,
		0x2b, 0xbf, 0x11, 0xed, 0x22, 0x43, 0xbb, 0x5b, 0x0c, 0x87, 0xae, 0x30, 0xc4, 0xbb, 0xbf, 0x90,
		0xef, 0xf2, 0xc2, 0xa1, 0x9b, 0x0b, 0xab, 0xae, 0x2d, 0x1c, 0x4f, 0xd9, 0x58, 0x74, 0x61, 0xe1,
		0x7d, 0xce, 0xc6, 0xa0, 0xab, 0x0a, 0x12, 0xe3, 0x1e, 0xf3, 0x72, 0xc9, 0x77, 0x43, 0x61, 0xd6,
		0xf5, 0x84, 0x43, 0x77, 0x13, 0x5e, 0x5d, 0x4c, 0x7e, 0xd8, 0xad, 0x84, 0x4d, 0x6f, 0x12, 0x4e,
		0x3d, 0x48, 0x98, 0x35, 0xc9, 0xbe, 0xbd, 0x28, 0x8e, 0x5a, 0x07, 0x1f, 0xda, 0x36, 0xda, 0xa6,
		0x57, 0x6e, 0x21, 0xdc, 0xb4, 0x30, 0xc2, 0xdb, 0xaf, 0xde, 0xdb, 0xbf, 0x93, 0xe7, 0x65, 0xa3,
		0xa8, 0xf6, 0x59, 0x9f, 0x21, 0x68, 0x3e, 0x73, 0xab, 0xa0, 0xa8, 0x7e, 0x37, 0xb6, 0x45, 0x32,
		0x44, 0x39, 0xc9, 0x10, 0x44, 0x1b, 0x5e, 0xb0, 0x4b, 0x80, 0xa0, 0xd7, 0xbf, 0x02, 0x69, 0x0f,
		0xf7, 0xad, 0xab, 0x69, 0xf8, 0x25, 0x8c, 0xbe, 0x86, 0x8e, 0x0c, 0x2e, 0xe9, 0x26, 0x3f, 0x2c,
		0x1b, 0x89, 0x14, 0x88, 0x9f, 0x31, 0x0b, 0x29, 0x10, 0xcf, 0x58, 0x6e, 0x48, 0x81, 0x78, 0xce,
		0x86, 0x40, 0x0a, 0x44, 0xd1, 0x5c, 0x0f, 0x29, 0x10, 0xfc, 0x09, 0x3b, 0xd9, 0x14, 0x08, 0xda,
		0xd3, 0x05, 0x59, 0x4c, 0x13, 0x24, 0x3e, 0x3d, 0x10, 0x49, 0x10, 0x55, 0x21, 0x07, 0x5c, 0x48,
		0x02, 0x3b, 0xb2, 0xc0, 0x8e, 0x34, 0x70, 0x23, 0x0f, 0x34, 0x49, 0x04, 0x51, 0x32, 0x41, 0x9e,
		0x54, 0xe4, 0x06, 0x06, 0x22, 0x3c, 0xcb, 0x24, 0x40, 0x26, 0x47, 0xf5, 0x73, 0x7b, 0x89, 0xef,
		0x69, 0x1e, 0x13, 0xf7, 0xd8, 0x4c, 0xd8, 0xe3, 0x34, 0x51, 0x8f, 0xe5, 0x04, 0x3d, 0x6e, 0x13,
		0xf3, 0xd8, 0x4e, 0xc8, 0x63, 0x3b, 0x11, 0x8f, 0xeb, 0x04, 0x3c, 0x74, 0x96, 0x7e, 0xce, 0x4b,
		0x67, 0x33, 0xd1, 0xee, 0xe6, 0x20, 0xc2, 0x0f, 0x65, 0x7d, 0x8b, 0x03, 0xe4, 0xce, 0x39, 0xc2,
		0x16, 0x03, 0x53, 0x8f, 0xdc, 0xf0, 0x4c, 0xb0, 0x19, 0x70, 0xc6, 0x68, 0x20, 0xc5, 0xbe, 0x1f,
		0xf2, 0x1b, 0x85, 0x9d, 0xe5, 0x9a, 0x32, 0x1c, 0xcb, 0xbc, 0x17, 0xbb, 0x63, 0xe9, 0x47, 0xe1,
		0xae, 0x7f, 0xe6, 0x73, 0xe9, 0x3d, 0xbf, 0x8a, 0x71, 0xe2, 0xcc, 0x95, 0xfe, 0xa5, 0x60, 0xd1,
		0x0a, 0x9d, 0x91, 0x9b, 0x5b, 0xdd, 0x92, 0xee, 0x15, 0xdf, 0x2d, 0xb9, 0xd5, 0x6c, 0x6e, 0x36,
		0xb1, 0x2d, 0xb1, 0x2d, 0x0d, 0xe0, 0xc6, 0x7c, 0xac, 0x1c, 0xa2, 0xeb, 0x98, 0x69, 0x6e, 0x81,
		0x76, 0xdd, 0xf9, 0x9d, 0xa8, 0x87, 0x70, 0xfd, 0xf9, 0xed, 0x78, 0x07, 0x9a, 0x68, 0x41, 0x86,
		0x42, 0x13, 0x2d, 0xd9, 0x68, 0x68, 0xa2, 0x8a, 0x0c, 0x87, 0x26, 0x0a, 0x46, 0xc0, 0x26, 0x58,
		0x84, 0x26, 0x5a, 0x3e, 0x47, 0x80, 0x26, 0x5a, 0xf4, 0x07, 0x9a, 0x68, 0xb9, 0x46, 0x43, 0x13,
		0xd5, 0x85, 0x71, 0xd0, 0x44, 0x15, 0x6c, 0x49, 0x68, 0xa2, 0xd8, 0x96, 0x15, 0xd9, 0x96, 0xd0,
		0x44, 0x0b, 0xf9, 0x40, 0x13, 0x35, 0xce, 0x2d, 0xd8, 0x97, 0x73, 0x44, 0x65, 0x22, 0x8a, 0xce,
		0xcc, 0x85, 0x2a, 0x5a, 0x84, 0x99, 0x50, 0x45, 0x4b, 0x5c, 0xa8, 0x50, 0x45, 0xcb, 0xdc, 0x60,
		0x50, 0x45, 0x15, 0x1b, 0x0e, 0x55, 0xb4, 0x7a, 0xe1, 0x22, 0x43, 0x55, 0xf4, 0xc4, 0x0f, 0xdd,
		0xf8, 0x9a, 0x91, 0x2a, 0xba, 0x03, 0x4a, 0x6d, 0x90, 0x65, 0x98, 0x67, 0xff, 0x3c, 0x3b, 0xb9,
		0xf6, 0xaf, 0x5a, 0xea, 0x94, 0x53, 0xa3, 0x5c, 0x32, 0x6f, 0x31, 0xec, 0x69, 0xf5, 0x71, 0xf6,
		0x6c, 0x89, 0xb6, 0xb7, 0xa2, 0x8b, 0x47, 0x68, 0x0c, 0xc2, 0x18, 0x11, 0x4d, 0x40, 0x42, 0xf4,
		0xf3, 0x2b, 0x10, 0xfb, 0xd0, 0xd4, 0x8f, 0xb2, 0x25, 0x44, 0xd0, 0xcd, 0xee, 0xfa, 0x89, 0x6c,
		0x49, 0x49, 0xab, 0x3d, 0x81, 0xbd, 0xef, 0x87, 0xed, 0x40, 0x5c, 0x88, 0x90, 0xda, 0xa9, 0x97,
		0xbd, 0xef, 0x5e, 0x2d, 0x59, 0x56, 0x7f, 0xd3, 0x68, 0x6c, 0x6d, 0x37, 0x1a, 0xeb, 0xdb, 0x9b,
		0xdb, 0xeb, 0x3b, 0xcd, 0x66, 0x7d, 0x8b, 0xd2, 0x58, 0x06, 0xbb, 0x17, 0x7b, 0x22, 0x16, 0xde,
		0xbb, 0x6b, 0xfb, 0xad, 0x15, 0x4e, 0x83, 0x80, 0xa2, 0x69, 0x1f, 0x13, 0x11, 0x93, 0x3a, 0x1e,
		0xa4, 0xb2, 0x33, 0x89, 0xf2, 0x0d, 0xae, 0x3c, 0xc3, 0x26, 0x35, 0xc2, 0x96, 0x13, 0xa7, 0xa0,
		0x41, 0x24, 0xf4, 0xbb, 0x6d, 0xbd, 0x16, 0x68, 0x86, 0x25, 0x6a, 0x70, 0xc4, 0x11, 0x86, 0x08,
		0x40, 0x10, 0x23, 0xe8, 0xd1, 0x0b, 0x3b, 0xfa, 0x36, 0xbb, 0x9e, 0x2b, 0x6b, 0x82, 0x17, 0x5b,
		0x5c, 0xc9, 0xd8, 0x75, 0xa6, 0xe9, 0xaa, 0x3a, 0x09, 0xf4, 0x1e, 0x1d, 0xd9, 0xb1, 0x38, 0x15,
		0xb1, 0x08, 0xc7, 0xfa, 0xf3, 0xb9, 0x09, 0xe0, 0xeb, 0xe2, 0x7c, 0xec, 0x68, 0xef, 0xfd, 0xf6,
		0xd6, 0x9b, 0x86, 0xe5, 0x58, 0xbd, 0xfe, 0xe1, 0xde, 0xe5, 0x86, 0x35, 0xdb, 0xa2, 0xb5, 0xae,
		0x1f, 0x7e, 0xb1, 0xd2, 0xc8, 0xd1, 0x3f, 0x99, 0x4a, 0x61, 0xb5, 0xbc, 0x4b, 0x11, 0x4b, 0x3f,
		0xc9, 0x42, 0x23, 0x0a, 0x40, 0x47, 0x2c, 0x41, 0x61, 0x39, 0x01, 0xe1, 0x66, 0x9d, 0x11, 0x09,
		0x35, 0xa8, 0xe6, 0x18, 0xac, 0xe4, 0x10, 0x3c, 0x69, 0x21, 0x56, 0x9d, 0x34, 0x6a, 0xbb, 0xfa,
		0x50, 0xdf, 0x0a, 0xb2, 0xbf, 0x9e, 0x8b, 0x10, 0x10, 0x7e, 0x03, 0xe1, 0x6b, 0x6b, 0xb3, 0x23,
		0xc6, 0x5a, 0xca, 0x56, 0xad, 0x5f, 0xad, 0x97, 0xf3, 0x74, 0x9c, 0x19, 0x8f, 0x7d, 0x7b, 0xff,
		0xd8, 0xcb, 0x97, 0x00, 0xf1, 0xef, 0x82, 0x78, 0xb6, 0xc8, 0x80, 0xdf, 0x3f, 0x8f, 0xdf, 0x4f,
		0x5c, 0x85, 0x2f, 0xa0, 0x07, 0x5a, 0xf6, 0xae, 0x48, 0xc6, 0xb1, 0x3f, 0x21, 0x25, 0x06, 0xe6,
		0xf0, 0xd2, 0x09, 0xc7, 0xc1, 0xd4, 0x13, 0x96, 0x3c, 0x17, 0xd6, 0xad, 0xb0, 0xd7, 0x1a, 0x47,
		0xa1, 0x74, 0xfd, 0x50, 0xc4, 0x56, 0xba, 0x5f, 0xb2, 0x3f, 0x32, 0x0b, 0x92, 0xad, 0x6e, 0xbf,
		0x75, 0x1c, 0x66, 0x4b, 0xc1, 0x4f, 0xac, 0x64, 0x22, 0xc6, 0xfe, 0xa9, 0x2f, 0x3c, 0x4b, 0x46,
		0xd6, 0x89, 0xb0, 0xdc, 0x30, 0xff, 0x97, 0xac, 0xf9, 0xbf, 0xd4, 0xed, 0xb7, 0xa8, 0x6c, 0x37,
		0x82, 0xb9, 0xaf, 0xcb, 0xc8, 0xe4, 0x2d, 0x2d, 0x16, 0x42, 0xa2, 0x27, 0xe5, 0x44, 0xd6, 0x15,
		0xa0, 0x52, 0xb7, 0x9e, 0x21, 0xac, 0x56, 0x9b, 0x23, 0x57, 0x4a, 0xe9, 0x21, 0x22, 0x20, 0x33,
		0x13, 0x8e, 0x35, 0x22, 0x38, 0x0f, 0xad, 0x58, 0x0f, 0x88, 0xaa, 0x07, 0x0d, 0x0d, 0xdb, 0xd6,
		0x3e, 0x8b, 0xdd, 0x71, 0xb6, 0x2a, 0xb5, 0xed, 0xd8, 0x9c, 0x64, 0xde, 0x98, 0xa2, 0x09, 0xbe,
		0xf4, 0x8e, 0x8e, 0xd2, 0x5e, 0x79, 0x47, 0xa1, 0xa2, 0x8e, 0x54, 0xa5, 0x1c, 0x95, 0x28, 0x80,
		0x5c, 0x65, 0x1b, 0x39, 0xa2, 0x4f, 0xad, 0x12, 0xad, 0x5a, 0x07, 0x7c, 0xba, 0x47, 0x1f, 0xd9,
		0xd9, 0xc9, 0xbb, 0xf6, 0x5d, 0x9a, 0xb7, 0xe8, 0xd4, 0x9f, 0x07, 0x40, 0x64, 0x0a, 0x22, 0x99,
		0x62, 0x72, 0x4a, 0xc5, 0xe2, 0x24, 0x8b, 0xc1, 0x29, 0xcb, 0xf0, 0xa4, 0x8a, 0xb9, 0x79, 0x08,
		0xf1, 0x84, 0x8a, 0xb1, 0xab, 0x9d, 0x52, 0x47, 0x65, 0x2a, 0x60, 0xea, 0x94, 0xe8, 0x1d, 0x2b,
		0xd0, 0xc9, 0xd9, 0x25, 0x36, 0x36, 0x98, 0x5c, 0x17, 0x16, 0x8a, 0xdd, 0x56, 0x48, 0x77, 0x55,
		0xa1, 0xda, 0x3d, 0x85, 0x7c, 0x97, 0x14, 0xf2, 0xdd, 0x50, 0xa8, 0x77, 0x3d, 0x41, 0xf1, 0x1b,
		0x45, 0x07, 0x9c, 0x1b, 0x44, 0x73, 0xc6, 0x3f, 0xe9, 0xd9, 0xfe, 0x44, 0x67, 0xfa, 0x93, 0x6d,
		0x95, 0x46, 0xb9, 0x35, 0x1a, 0x8b, 0x56, 0x68, 0xd4, 0x5b, 0x9f, 0xb1, 0x69, 0x75, 0xc6, 0xa6,
		0xb5, 0x19, 0x97, 0x56, 0x66, 0xe8, 0xdf, 0xc1, 0xc9, 0xd9, 0xe7, 0x86, 0xf9, 0x13, 0xc7, 0x0f,
		0xa5, 0x88, 0x4f, 0xdd, 0xb1, 0x70, 0x5c, 0xcf, 0x8b, 0x45, 0x92, 0xd0, 0x45, 0x97, 0x05, 0x44,
		0xdf, 0x6b, 0x35, 0xd1, 0xfd, 0x4b, 0xbb, 0xbb, 0x2a, 0xf9, 0xae, 0xaa, 0x1c, 0xba, 0xa9, 0xb2,
		0xea, 0xa2, 0xca, 0xa5, 0x7b, 0x2a, 0xbb, 0xae, 0xa9, 0xec, 0xba, 0xa5, 0x72, 0xeb, 0x92, 0x8a,
		0x26, 0x8a, 0x8f, 0x79, 0xb9, 0xe4, 0xbb, 0xa1, 0x2e, 0x79, 0xf3, 0xcb, 0xc6, 0xc2, 0x8b, 0x3b,
		0x61, 0xe4, 0xfc, 0x37, 0x0a, 0x49, 0x77, 0x24, 0x5c, 0x04, 0xfd, 0x6f, 0x08, 0xdb, 0x78, 0xe8,
		0x4a, 0x29, 0xe2, 0x90, 0xfc, 0x70, 0x28, 0xfb, 0xd5, 0xab, 0xcf, 0xeb, 0xce, 0xce, 0xf0, 0x7f,
		0x9f, 0xeb, 0xce, 0xce, 0x70, 0xf6, 0xb5, 0x9e, 0xfd, 0x67, 0xf6, 0x7d, 0xe3, 0xf3, 0xba, 0xd3,
		0x58, 0x7c, 0x6f, 0x7e, 0x5e, 0x77, 0x9a, 0xc3, 0xd7, 0xc7, 0xc7, 0x6b, 0xaf, 0xff, 0xde, 0xfc,
		0xf6, 0xf8, 0xbf, 0xf8, 0xea, 0x1f, 0x9f, 0x8f, 0x8f, 0x27, 0x7f, 0x1f, 0x7c, 0x4b, 0x7f, 0x76,
		0xbf, 0x0d, 0xff, 0xf5, 0xfa, 0xdf, 0xd4, 0x7d, 0x4a, 0x7a, 0x03, 0xc7, 0xc7, 0x6b, 0xc3, 0x7f,
		0xd2, 0x85, 0xe5, 0x21, 0x60, 0xf9, 0x11, 0x2f, 0x94, 0x50, 0xcf, 0x81, 0x1f, 0xda, 0x4a, 0xa2,
		0x96, 0xf5, 0x47, 0x1f, 0x46, 0xed, 0xbe, 0xd7, 0xd6, 0x1e, 0xa8, 0x3f, 0xfc, 0x70, 0xd4, 0x7a,
		0xdf, 0x1e, 0x75, 0x0e, 0x47, 0x9d, 0x83, 0x41, 0xfb, 0x68, 0x2f, 0xfd, 0x45, 0x6b, 0x77, 0xf7,
		0xa8, 0xdd, 0xef, 0xbf, 0xc4, 0x3c, 0x86, 0x52, 0x23, 0x0b, 0x42, 0x95, 0xb4, 0xc6, 0xc5, 0x17,
		0xf7, 0xc6, 0x19, 0x4f, 0xda, 0x03, 0xf4, 0x07, 0x37, 0x30, 0xd8, 0xa5, 0x14, 0xeb, 0x78, 0x7f,
		0x1a, 0x3a, 0x97, 0xeb, 0x22, 0x73, 0xe9, 0xcf, 0x9a, 0x07, 0x0d, 0x37, 0xf5, 0x90, 0xc9, 0xf4,
		0xc4, 0x19, 0x74, 0x3f, 0x59, 0xd9, 0x12, 0x5b, 0x14, 0x42, 0x26, 0x96, 0x3c, 0x77, 0xe5, 0x71,
		0xe8, 0x4b, 0xcb, 0x4f, 0x2c, 0x7f, 0xf6, 0x2f, 0x79, 0x5c, 0x76, 0x3d, 0x33, 0x70, 0xb5, 0x58,
		0x14, 0x04, 0x1b, 0x8b, 0xb5, 0xd6, 0xf7, 0x0a, 0x8a, 0x0b, 0xda, 0x38, 0x18, 0x4f, 0x58, 0x01,
		0x0b, 0xbf, 0x21, 0xde, 0x64, 0xfe, 0xbc, 0x08, 0x72, 0x12, 0x7b, 0x22, 0x62, 0x3f, 0xf2, 0xe8,
		0x1f, 0x30, 0xce, 0xed, 0xc4, 0x91, 0xe2, 0x53, 0xcc, 0xc3, 0x91, 0x62, 0x81, 0x2b, 0x11, 0x47,
		0x8a, 0xe5, 0xf0, 0x52, 0x1c, 0x29, 0x96, 0x4e, 0x3d, 0x71, 0xa4, 0x68, 0x96, 0x9a, 0xc0, 0xe8,
		0x48, 0x71, 0xea, 0x87, 0x72, 0x73, 0x83, 0xc1, 0x21, 0xe2, 0x36, 0x61, 0x13, 0x8f, 0xdc, 0xf0,
		0x4c, 0x40, 0xff, 0x7f, 0xfe, 0x83, 0xdc, 0xf7, 0x19, 0x29, 0x6e, 0x9f, 0xe6, 0x13, 0xd6, 0xd7,
		0x99, 0xe8, 0x63, 0x7b, 0xb1, 0x3b, 0x96, 0x7e, 0x14, 0xee, 0xfa, 0x67, 0x3e, 0xb5, 0x89, 0x3d,
		0xdf, 0xc7, 0x2a, 0x71, 0xe6, 0x4a, 0xff, 0x52, 0x90, 0x1a, 0x40, 0xc3, 0xd0, 0x2d, 0xad, 0x6e,
		0x35, 0xf7, 0x8a, 0xdf, 0x56, 0x6b, 0x6c, 0xec, 0x34, 0x76, 0xb6, 0xb6, 0x37, 0x76, 0x9a, 0xd8,
		0x73, 0xd8, 0x73, 0x0c, 0x08, 0x2a, 0x7d, 0xeb, 0x90, 0x94, 0xf2, 0x98, 0x6d, 0xc1, 0x29, 0x29,
		0x85, 0xce, 0xa0, 0x0c, 0x03, 0x98, 0xe9, 0xd2, 0xa0, 0x8d, 0xcd, 0xad, 0x8d, 0x4d, 0x24, 0x9b,
		0x94, 0x10, 0xe8, 0xd1, 0x9d, 0xbd, 0xf1, 0x43, 0xdb, 0x8d, 0xc8, 0x38, 0x59, 0xac, 0x6d, 0xf8,
		0x7a, 0x53, 0x7d, 0xfd, 0x2f, 0x48, 0xa1, 0xac, 0x8a, 0xa3, 0xfa, 0x41, 0xfa, 0xd8, 0x61, 0xfb,
		0xa8, 0xd3, 0xdb, 0x45, 0xd2, 0x64, 0xb9, 0x7e, 0x0c, 0x49, 0x93, 0x8a, 0x5d, 0xd8, 0x4f, 0xae,
		0x7a, 0x28, 0x48, 0x05, 0x3c, 0x77, 0x63, 0xd2, 0x24, 0x67, 0x39, 0x0c, 0x8b, 0x64, 0xae, 0x71,
		0xd6, 0xfd, 0xfe, 0x81, 0x84, 0xaf, 0x2c, 0xbb, 0xcb, 0x4b, 0xff, 0x8c, 0xf0, 0x8e, 0xc3, 0xd9,
		0xd8, 0x88, 0xe8, 0xd4, 0x92, 0xe7, 0x7e, 0x92, 0xfd, 0x01, 0xe4, 0x4a, 0x2a, 0xc1, 0x55, 0xe4,
		0x4a, 0xea, 0x85, 0xd9, 0xb2, 0x76, 0x0f, 0x12, 0x26, 0x11, 0x1f, 0xe9, 0x8c, 0x8f, 0x90, 0x30,
		0xc9, 0x95, 0x9d, 0xd8, 0xb1, 0x70, 0x13, 0xc2, 0x44, 0x24, 0x27, 0x1e, 0x73, 0x3b, 0x91, 0x30,
		0xf9, 0x14, 0xf3, 0x90, 0x30, 0x59, 0xe0, 0x4a, 0x44, 0xc2, 0x64, 0x39, 0xe4, 0x14, 0x09, 0x93,
		0xa5, 0xf3, 0x4f, 0x24, 0x4c, 0x9a, 0xa5, 0x2b, 0x30, 0x4a, 0x98, 0x14, 0xe1, 0xf4, 0x42, 0xc4,
		0x2e, 0xf1, 0xd0, 0x33, 0x6f, 0xbd, 0xd2, 0x20, 0x6c, 0x63, 0x3b, 0x9c, 0x5e, 0xd0, 0x47, 0xf6,
		0x41, 0xd4, 0x97, 0xb1, 0x1f, 0x9e, 0xb1, 0x10, 0x4b, 0xec, 0xf5, 0x74, 0x8d, 0x7e, 0x3c, 0xf8,
		0xed, 0xa0, 0xf7, 0xfb, 0x01, 0x07, 0x71, 0xbf, 0x9e, 0xda, 0xdb, 0xef, 0xed, 0x0d, 0x7e, 0x6f,
		0x1d, 0xb5, 0x47, 0x47, 0xed, 0xfe, 0xa0, 0x75, 0x34, 0xe0, 0x60, 0xf8, 0xc6, 0x2d, 0xc3, 0xbb,
		0xbd, 0xd6, 0xee, 0xe8, 0xe3, 0xe1, 0x87, 0xa3, 0xd6, 0x6e, 0x9b, 0x83, 0xfd, 0x9b, 0xa9, 0xfd,
		0xef, 0x7b, 0x07, 0x83, 0xa3, 0x5e, 0x77, 0x74, 0x78, 0xd4, 0x7b, 0xdf, 0xee, 0xf7, 0x7b, 0x47,
		0xa3, 0xfe, 0xef, 0x9d, 0xc1, 0xfb, 0xff, 0xd0, 0x16, 0x62, 0x88, 0x8b, 0xe3, 0xf6, 0x20, 0xea,
		0x64, 0x34, 0x85, 0x01, 0x5c, 0x3c, 0xb8, 0x00, 0xde, 0x5a, 0x9b, 0x1c, 0x8e, 0x06, 0x1f, 0xd8,
		0x7f, 0x6f, 0xad, 0x0d, 0x5e, 0xd6, 0xcf, 0x60, 0x8f, 0x5c, 0x7f, 0xf4, 0x7b, 0xcd, 0x5e, 0x78,
		0x97, 0xb7, 0xd6, 0x3a, 0x74, 0x46, 0xc4, 0x06, 0xa5, 0xaf, 0x37, 0xe4, 0x5c, 0x96, 0xf1, 0x41,
		0xce, 0x65, 0x29, 0x90, 0x8e, 0x9c, 0x4b, 0x65, 0xb6, 0x23, 0xe7, 0x12, 0x3e, 0x8b, 0xbe, 0x75,
		0xc8, 0xb9, 0xac, 0x8e, 0xa3, 0xfa, 0x41, 0xf6, 0xd9, 0x9c, 0xe6, 0x8f, 0x8e, 0xda, 0xad, 0x7e,
		0xef, 0x00, 0xb9, 0x97, 0xe5, 0xfa, 0x33, 0xe4, 0x5e, 0x2a, 0x76, 0x65, 0x8f, 0x5c, 0xfd, 0xc8,
		0xc1, 0x2c, 0xe0, 0xf9, 0x1b, 0x93, 0x83, 0x19, 0x8b, 0x44, 0xba, 0xb1, 0xb4, 0x66, 0xe9, 0x11,
		0x3f, 0xd1, 0x6e, 0xcf, 0x4f, 0x8e, 0x43, 0x34, 0xa9, 0x54, 0x0d, 0xaa, 0x48, 0xbc, 0xd4, 0x8b,
		0xb1, 0x85, 0x6e, 0x19, 0x64, 0x5b, 0x22, 0x32, 0xd2, 0x19, 0x19, 0x21, 0xdb, 0x92, 0x2b, 0x0f,
		0xb1, 0x25, 0xe5, 0x7c, 0x8d, 0x9b, 0xe1, 0xf4, 0x74, 0x2b, 0x32, 0x90, 0x69, 0xf9, 0x4c, 0x03,
		0x91, 0x69, 0x59, 0x4d, 0x66, 0x8a, 0x4c, 0x4b, 0xa5, 0x84, 0x13, 0x99, 0x96, 0x66, 0xa9, 0x07,
		0x9c, 0xa6, 0xdd, 0x79, 0x22, 0x94, 0xbe, 0xbc, 0x8e, 0xc5, 0x29, 0x87, 0x4c, 0x4b, 0xc2, 0x2d,
		0xc9, 0xec, 0xce, 0xfc, 0x51, 0xbe, 0x73, 0x13, 0x06, 0x08, 0xbf, 0x58, 0x00, 0x33, 0xdd, 0xb0,
		0xdb, 0x6f, 0x8d, 0x06, 0xdd, 0x4f, 0xa3, 0xc1, 0x9f, 0x87, 0xed, 0x3e, 0x75, 0xac, 0xcf, 0x1a,
		0xd5, 0x25, 0xe4, 0xcf, 0x54, 0x2c, 0x16, 0xe7, 0x2a, 0xf7, 0x2c, 0x86, 0xfb, 0xa6, 0x1e, 0x41,
		0x49, 0xae, 0xea, 0x6a, 0x98, 0xb5, 0x73, 0xc0, 0xfb, 0xaf, 0xea, 0xfb, 0x5f, 0x3d, 0x52, 0x42,
		0x0e, 0xc5, 0xf3, 0x3e, 0x43, 0x30, 0x7c, 0xe6, 0x56, 0xd1, 0xb2, 0x88, 0x18, 0xea, 0xd9, 0xad,
		0x30, 0x8c, 0xa4, 0x4b, 0xf6, 0xa8, 0xd4, 0x4e, 0xc6, 0xe7, 0xe2, 0xc2, 0x9d, 0xb8, 0xf2, 0x3c,
		0x45, 0xb8, 0x5a, 0x34, 0x11, 0xe1, 0x38, 0x53, 0xe1, 0x9c, 0x50, 0xc8, 0xaf, 0x51, 0xfc, 0xc5,
		0xf1, 0xc3, 0x44, 0xba, 0xe1, 0x58, 0xd4, 0x6e, 0xff, 0x46, 0x72, 0xe7, 0x77, 0x6a, 0x93, 0x38,
		0x92, 0xd1, 0x38, 0x0a, 0x92, 0xfc, 0x5b, 0x6d, 0x16, 0xc8, 0xd7, 0xdc, 0x58, 0xb8, 0x49, 0xf6,
		0xb3, 0x16, 0x24, 0xde, 0x49, 0x2d, 0x48, 0xdc, 0xd9, 0x41, 0x7d, 0xfe, 0x2d, 0xfd, 0x92, 0xfd,
		0xaa, 0x16, 0x4d, 0xdc, 0xbf, 0xa6, 0xc2, 0x49, 0xbf, 0x9e, 0xc5, 0xee, 0x78, 0xf6, 0x4d, 0x06,
		0x97, 0x49, 0xfa, 0xa3, 0x96, 0x48, 0x57, 0x52, 0x14, 0x58, 0xed, 0x44, 0xc6, 0xd3, 0xb1, 0x0c,
		0xe7, 0xce, 0xa2, 0x97, 0x3f, 0xc9, 0x83, 0xd9, 0x53, 0xea, 0xcc, 0x1f, 0xd2, 0xe8, 0xd6, 0xaf,
		0x93, 0xdb, 0xbf, 0x31, 0x3a, 0x5c, 0x3c, 0xc5, 0xfc, 0xdb, 0xa8, 0x97, 0x3d, 0xc5, 0x51, 0x2b,
		0x7d, 0x8a, 0xd9, 0xcf, 0x51, 0x37, 0xf1, 0x4e, 0x46, 0xdd, 0xc4, 0x4d, 0x43, 0xeb, 0x64, 0xf1,
		0x25, 0xfd, 0x6f, 0xf6, 0x8b, 0x51, 0x2f, 0x7b, 0x86, 0xe9, 0xb7, 0x0f, 0xe9, 0x23, 0x4c, 0xbf,
		0x0c, 0x82, 0xcb, 0x24, 0xfd, 0x31, 0xea, 0x67, 0x4f, 0xf0, 0x05, 0x40, 0x84, 0x38, 0x80, 0xd8,
		0xd3, 0xf0, 0x4b, 0x18, 0x7d, 0x0d, 0x1d, 0x19, 0x5c, 0x92, 0x43, 0x8f, 0x9b, 0x61, 0x1e, 0x4b,
		0x46, 0x12, 0x03, 0xdf, 0x85, 0x4a, 0x42, 0xcc, 0x2c, 0xaa, 0xc7, 0x1c, 0x94, 0x8f, 0x37, 0x58,
		0x1c, 0x6b, 0x50, 0x3f, 0xce, 0x60, 0x73, 0x8c, 0xc1, 0xe6, 0xf8, 0x82, 0xcb, 0xb1, 0x05, 0x48,
		0xfa, 0xf7, 0x5e, 0xe2, 0xae, 0x1f, 0x13, 0x65, 0xe7, 0x19, 0x53, 0x23, 0x9f, 0xf2, 0x40, 0x95,
		0x92, 0x13, 0x26, 0x01, 0xe4, 0xc9, 0x00, 0x07, 0x52, 0xc0, 0x8a, 0x1c, 0x70, 0x21, 0x09, 0xec,
		0xc8, 0x02, 0x3b, 0xd2, 0xc0, 0x8d, 0x3c, 0xd0, 0x24, 0x11, 0x44, 0xc9, 0x04, 0x79, 0x52, 0x91,
		0x1b, 0x18, 0x88, 0xf0, 0x2c, 0x93, 0xfd, 0x98, 0x9c, 0xcc, 0xcf, 0xed, 0x25, 0xbe, 0xa7, 0x69,
		0xa7, 0x58, 0xb2, 0xa1, 0x1d, 0x9c, 0xe8, 0x07, 0x4b, 0x1a, 0xc2, 0x8d, 0x8e, 0xb0, 0xa5, 0x25,
		0x6c, 0xe9, 0x09, 0x57, 0x9a, 0x42, 0x9b, 0xae, 0x10, 0xa7, 0x2d, 0xf9, 0x4b, 0x27, 0x9f, 0xb2,
		0x79, 0x07, 0x75, 0xa7, 0x7e, 0x28, 0xeb, 0x5b, 0x1c, 0x20, 0x77, 0xce, 0x11, 0xb6, 0x18, 0x98,
		0xca, 0x63, 0xca, 0xf8, 0xe2, 0xc3, 0xa8, 0xbe, 0x95, 0xd3, 0xd4, 0xf1, 0xdc, 0x68, 0x66, 0xd3,
		0xc7, 0x73, 0xbb, 0xb9, 0x4e, 0x44, 0xbe, 0xc1, 0x38, 0x6e, 0x93, 0x91, 0x99, 0xb8, 0xb9, 0xd5,
		0x2d, 0xc9, 0x68, 0x3a, 0xf9, 0x9d, 0x2d, 0xb9, 0xd5, 0x6c, 0x6e, 0x36, 0xb1, 0x2d, 0xb1, 0x2d,
		0x0d, 0xe0, 0xc6, 0x7c, 0xac, 0x1c, 0xa2, 0x0c, 0xdf, 0x34, 0xb7, 0x40, 0xbb, 0xcc, 0xfc, 0x4e,
		0xd4, 0xc3, 0x60, 0x00, 0x20, 0x34, 0xd1, 0x82, 0x0d, 0x85, 0x26, 0x5a, 0xb2, 0xd1, 0xd0, 0x44,
		0x15, 0x19, 0x0e, 0x4d, 0x14, 0x8c, 0x80, 0x4d, 0xb0, 0x08, 0x4d, 0xb4, 0x7c, 0x8e, 0x00, 0x4d,
		0xb4, 0xe8, 0x0f, 0x34, 0xd1, 0x72, 0x8d, 0x86, 0x26, 0xaa, 0x0b, 0xe3, 0xa0, 0x89, 0x2a, 0xd8,
		0x92, 0xd0, 0x44, 0xb1, 0x2d, 0x2b, 0xb2, 0x2d, 0xa1, 0x89, 0x16, 0xf2, 0x81, 0x26, 0x6a, 0x9c,
		0x5b, 0xb0, 0x2f, 0xe7, 0x88, 0xca, 0x44, 0x14, 0x9d, 0x99, 0x0b, 0x55, 0xb4, 0x08, 0x33, 0xa1,
		0x8a, 0x96, 0xb8, 0x50, 0xa1, 0x8a, 0x96, 0xb9, 0xc1, 0xa0, 0x8a, 0x2a, 0x36, 0x1c, 0xaa, 0x68,
		0xf5, 0xc2, 0x45, 0x86, 0xaa, 0xe8, 0x89, 0x1f, 0xba, 0xf1, 0x35, 0x23, 0x55, 0x74, 0x07, 0x94,
		0xda, 0x20, 0xcb, 0xa8, 0x56, 0xac, 0x11, 0xef, 0x55, 0x95, 0xdb, 0xc9, 0xaf, 0x67, 0xd5, 0x52,
		0x8f, 0x9c, 0x1a, 0xe5, 0x62, 0x79, 0x8b, 0x55, 0x1f, 0xab, 0x8f, 0xb3, 0xa7, 0x4a, 0xb4, 0xa5,
		0x15, 0x5d, 0x0c, 0x42, 0x33, 0x10, 0xc6, 0x28, 0xc8, 0x1b, 0xfd, 0xd0, 0xb7, 0xaf, 0x10, 0xbc,
		0x43, 0xf3, 0x3e, 0xca, 0x96, 0x10, 0x41, 0x34, 0xbb, 0xeb, 0x27, 0xb2, 0x25, 0x25, 0xad, 0x36,
		0x04, 0xf6, 0xbe, 0x1f, 0xb6, 0x03, 0x71, 0x21, 0x42, 0x6a, 0xa7, 0x5b, 0xf6, 0xbe, 0x7b, 0xb5,
		0x64, 0x59, 0xfd, 0x4d, 0xa3, 0xb1, 0xb5, 0xdd, 0x68, 0xac, 0x6f, 0x6f, 0x6e, 0xaf, 0xef, 0x34,
		0x9b, 0xf5, 0x2d, 0x4a, 0xd3, 0x16, 0xec, 0x5e, 0xec, 0x89, 0x58, 0x78, 0xef, 0xae, 0xed, 0xb7,
		0x56, 0x38, 0x0d, 0x02, 0x8a, 0xa6, 0x7d, 0x4c, 0x44, 0x4c, 0xea, 0x18, 0x90, 0xca, 0xce, 0x24,
		0xca, 0x31, 0xf8, 0x71, 0x0b, 0x42, 0x7c, 0x82, 0x0d, 0x8f, 0xa0, 0x41, 0x1e, 0xf4, 0xbb, 0x6a,
		0xbd, 0x16, 0x68, 0x86, 0x22, 0x6a, 0x10, 0xc4, 0x0b, 0x7a, 0x08, 0xc0, 0x0e, 0x0b, 0xb8, 0xd1,
		0x0b, 0x35, 0xfa, 0x36, 0xb8, 0x9e, 0x2b, 0x6b, 0x82, 0x14, 0x5b, 0x5c, 0xc9, 0xd8, 0x75, 0xa6,
		0xe9, 0x7a, 0x3a, 0x09, 0xf4, 0x1e, 0x05, 0xd9, 0x5f, 0xcf, 0x45, 0xa8, 0x3d, 0x35, 0x9b, 0x00,
		0x9c, 0x2e, 0x8e, 0xba, 0xd6, 0xd6, 0x66, 0x82, 0x73, 0x2d, 0x1b, 0xcc, 0xfd, 0xab, 0xf5, 0x72,
		0x7e, 0x2c, 0x3b, 0xc3, 0xbc, 0xb7, 0xf9, 0xb4, 0xb3, 0x97, 0x14, 0x20, 0x8d, 0x58, 0x82, 0xc1,
		0x72, 0x02, 0x41, 0xb6, 0xae, 0x88, 0x44, 0x0f, 0x54, 0xd3, 0x03, 0x56, 0x8e, 0xff, 0x7f, 0x7e,
		0xe1, 0xbd, 0x40, 0x54, 0x68, 0xd9, 0xbb, 0x22, 0x19, 0xc7, 0xfe, 0x84, 0x54, 0x48, 0x98, 0x83,
		0x48, 0x67, 0x36, 0xbc, 0x3f, 0x1b, 0xf4, 0x9f, 0x13, 0x21, 0x6b, 0x1c, 0x85, 0xd2, 0xf5, 0x43,
		0x11, 0x5b, 0xe9, 0xe6, 0xc8, 0xfe, 0xe7, 0x8c, 0x30, 0x59, 0xdd, 0x7e, 0xcb, 0xf2, 0x13, 0x2b,
		0x99, 0x88, 0xb1, 0x7f, 0xea, 0x0b, 0xef, 0x38, 0x94, 0x91, 0x75, 0x22, 0xac, 0xe8, 0xd4, 0x92,
		0xe7, 0xae, 0xb4, 0xd2, 0x25, 0xb0, 0x46, 0x65, 0x37, 0x11, 0xcc, 0x6a, 0x5a, 0x06, 0x1e, 0x6f,
		0x69, 0x61, 0x10, 0x0a, 0x76, 0x29, 0xa7, 0x28, 0xad, 0xe0, 0x50, 0x39, 0x6b, 0x17, 0x21, 0x34,
		0x85, 0x10, 0x5a, 0xdb, 0xd5, 0x87, 0x95, 0xe2, 0xf7, 0x44, 0xa4, 0x02, 0x36, 0x12, 0x81, 0x46,
		0x9c, 0xa6, 0xae, 0x0a, 0xe8, 0x01, 0x4e, 0xf5, 0x40, 0xa1, 0x61, 0xab, 0xda, 0x71, 0x34, 0x95,
		0x22, 0x76, 0xfc, 0xf0, 0x34, 0x8a, 0x2f, 0xf4, 0x6e, 0xd7, 0x9c, 0x39, 0xde, 0x63, 0x93, 0x26,
		0x10, 0xd3, 0x3b, 0x06, 0x44, 0x7b, 0x15, 0x05, 0x85, 0xea, 0x08, 0x52, 0x55, 0x0f, 0x54, 0x78,
		0x3f, 0xb9, 0x2a, 0x05, 0x72, 0xd4, 0x9e, 0x5a, 0x55, 0x41, 0xb5, 0xc4, 0x5d, 0xdd, 0x63, 0x2c,
		0xec, 0xec, 0xbc, 0x45, 0xfb, 0x2e, 0xcd, 0xdb, 0xad, 0xe9, 0x3f, 0xfd, 0x21, 0x32, 0xd1, 0x8a,
		0x4c, 0x61, 0x20, 0xa5, 0xc2, 0x3f, 0x92, 0x85, 0x7d, 0x94, 0x75, 0x75, 0x52, 0x85, 0x79, 0x3c,
		0x94, 0x75, 0x42, 0x85, 0x75, 0xd5, 0x4e, 0xa1, 0xa0, 0x32, 0xe1, 0xc9, 0xa6, 0x34, 0x1f, 0x7a,
		0xd9, 0x53, 0x52, 0xd9, 0xd6, 0xb4, 0x46, 0x40, 0x92, 0xab, 0xa8, 0xa7, 0x58, 0x39, 0x4f, 0xba,
		0x42, 0x9e, 0x6a, 0x25, 0x3c, 0xf9, 0x8a, 0x77, 0xf2, 0x95, 0xed, 0xd4, 0x2b, 0xd8, 0x51, 0xe0,
		0x40, 0xd1, 0x01, 0xe7, 0x06, 0x2d, 0xe9, 0x9c, 0x6e, 0xe0, 0x8c, 0xdd, 0x89, 0x7b, 0xe2, 0x07,
		0xbe, 0xf4, 0x45, 0x42, 0x0f, 0x2b, 0x16, 0x00, 0xfb, 0x1d, 0x9b, 0x89, 0xed, 0x4d, 0x9a, 0x93,
		0x9c, 0xc9, 0x36, 0xc8, 0xa1, 0xdc, 0x10, 0x87, 0x45, 0x03, 0x1c, 0xea, 0x0d, 0x6f, 0xd8, 0x34,
		0xb8, 0x61, 0xd3, 0xd0, 0x86, 0x4b, 0x03, 0x1b, 0x54, 0x70, 0x73, 0xa2, 0x05, 0xb9, 0x61, 0xb3,
		0xd6, 0x0f, 0x64, 0xe1, 0x64, 0x81, 0xc9, 0x94, 0x3b, 0x54, 0x10, 0x25, 0x01, 0xe4, 0xc9, 0x00,
		0x07, 0x52, 0xc0, 0x8a, 0x1c, 0x70, 0x21, 0x09, 0xec, 0xc8, 0x02, 0x3b, 0xd2, 0xc0, 0x8d, 0x3c,
		0xd0, 0x24, 0x11, 0x44, 0xc9, 0x04, 0x79, 0x52, 0x91, 0x1b, 0x28, 0xae, 0x26, 0x22, 0xf6, 0xd3,
		0xf5, 0xe7, 0x06, 0x8e, 0x64, 0xd4, 0xac, 0xf7, 0xb6, 0xe1, 0xc4, 0x77, 0xf9, 0xae, 0x38, 0x75,
		0xa7, 0x81, 0x64, 0x31, 0xff, 0xc3, 0xce, 0x5a, 0x2f, 0xd0, 0x6e, 0xc0, 0x39, 0x44, 0x9b, 0xe6,
		0x2a, 0x10, 0x4f, 0x4e, 0x04, 0x94, 0x25, 0x11, 0xe5, 0x46, 0x48, 0xd9, 0x12, 0x53, 0xb6, 0x04,
		0x95, 0x2b, 0x51, 0xa5, 0x4d, 0x58, 0x89, 0x13, 0xd7, 0xfc, 0xa5, 0x33, 0x6c, 0xd3, 0x1c, 0x45,
		0x81, 0x70, 0x43, 0x46, 0x7d, 0x9a, 0xeb, 0x75, 0x2c, 0xd1, 0x67, 0x85, 0x30, 0x64, 0x1a, 0x49,
		0xfc, 0xb4, 0xcd, 0xb1, 0x38, 0x15, 0xb1, 0x08, 0xc7, 0x18, 0x08, 0x58, 0x22, 0x12, 0x1c, 0xed,
		0xbd, 0x6f, 0xec, 0x6c, 0x6f, 0xda, 0x8c, 0x06, 0xa7, 0x31, 0x63, 0x61, 0xf7, 0xb1, 0xb1, 0x9b,
		0xa5, 0xcd, 0x6c, 0x04, 0x19, 0x57, 0x62, 0x76, 0x2f, 0x41, 0x5b, 0xac, 0x7d, 0xcc, 0x51, 0xab,
		0x98, 0x95, 0x98, 0xa3, 0x66, 0x1c, 0xcb, 0xb1, 0xb3, 0x1a, 0xf1, 0xd3, 0x69, 0xe0, 0xc4, 0x22,
		0x91, 0x6e, 0x2c, 0x67, 0xf9, 0x56, 0x01, 0x23, 0xb5, 0xf6, 0xc1, 0x3b, 0x80, 0x6c, 0x5b, 0x9c,
		0xb1, 0x90, 0x6d, 0x8b, 0x8a, 0xc8, 0x20, 0xdb, 0x16, 0x64, 0x28, 0x64, 0x5b, 0x04, 0x0c, 0x0f,
		0x05, 0x0a, 0x90, 0x6d, 0x95, 0x47, 0x05, 0x90, 0x6d, 0xcd, 0x67, 0x8b, 0x16, 0x64, 0x5b, 0x35,
		0x24, 0x81, 0xba, 0x6c, 0x8b, 0x50, 0xab, 0x88, 0x50, 0xeb, 0x5c, 0x04, 0x13, 0x11, 0x33, 0x8e,
		0xb4, 0xe6, 0x37, 0x80, 0x40, 0x0b, 0x81, 0x16, 0x02, 0x2d, 0x04, 0x5a, 0x08, 0xb4, 0x10, 0x68,
		0x21, 0xd0, 0x42, 0xa0, 0x85, 0x40, 0x0b, 0x81, 0x16, 0x02, 0x2d, 0x04, 0x5a, 0xba, 0xde, 0xed,
		0x24, 0xf2, 0x43, 0xe9, 0xc8, 0xc8, 0x99, 0x7d, 0x89, 0x2e, 0x45, 0xec, 0x04, 0x6e, 0xc8, 0x27,
		0xd0, 0x7a, 0xe8, 0x06, 0x10, 0x68, 0x21, 0xd0, 0x42, 0xa0, 0x85, 0x40, 0x0b, 0x81, 0x16, 0x02,
		0x2d, 0x04, 0x5a, 0x08, 0xb4, 0x10, 0x68, 0x21, 0xd0, 0x42, 0xa0, 0x55, 0x85, 0x25, 0x8a, 0x42,
		0x04, 0x15, 0x1f, 0x9e, 0x85, 0x08, 0xcd, 0xcd, 0xf5, 0x1d, 0x14, 0x22, 0x28, 0x65, 0x63, 0x28,
		0x44, 0xa0, 0x40, 0xd0, 0x16, 0x6b, 0x1f, 0x85, 0x08, 0x15, 0xb3, 0x12, 0x85, 0x08, 0xc6, 0xb1,
		0x1c, 0x3b, 0x91, 0xd3, 0x13, 0x67, 0x36, 0x9d, 0x8b, 0x8f, 0x50, 0xbb, 0x6c, 0x34, 0xc4, 0xd9,
		0xe2, 0x8c, 0x85, 0x38, 0x5b, 0x54, 0xdc, 0x05, 0x71, 0xb6, 0x20, 0x43, 0x21, 0xce, 0x22, 0x2c,
		0x78, 0x28, 0x1c, 0x80, 0x38, 0xab, 0x9c, 0xfb, 0x43, 0x9c, 0x35, 0x9f, 0x13, 0x5a, 0x10, 0x67,
		0xd5, 0x90, 0x04, 0x88, 0xb3, 0xcf, 0x7a, 0x8a, 0x10, 0x67, 0x55, 0x7c, 0x78, 0x8a, 0xb3, 0x5b,
		0x3b, 0x6f, 0xb6, 0x21, 0xce, 0x2a, 0x65, 0x63, 0x10, 0x67, 0x29, 0x10, 0xb4, 0xc5, 0xda, 0x87,
		0x38, 0x5b, 0x31, 0x2b, 0x21, 0xce, 0x1a, 0xc7, 0x72, 0x6c, 0x19, 0xbb, 0xa7, 0xa7, 0xfe, 0xd8,
		0x11, 0xe1, 0x99, 0x1f, 0x0a, 0x11, 0xfb, 0xe1, 0x19, 0x1f, 0x91, 0xf6, 0x3e, 0xe3, 0x21, 0xd6,
		0x16, 0x67, 0x2c, 0xc4, 0xda, 0xa2, 0xe2, 0x30, 0x88, 0xb5, 0x05, 0x19, 0x0a, 0xb1, 0x16, 0x61,
		0xc2, 0x43, 0xe1, 0x01, 0xc4, 0x5a, 0xe5, 0xb1, 0x00, 0xc4, 0x5a, 0xf3, 0x39, 0xa2, 0x05, 0xb1,
		0x56, 0x0d, 0x49, 0x40, 0xc9, 0xa2, 0x51, 0x96, 0x51, 0x1d, 0x2f, 0xd5, 0x0a, 0xc3, 0x48, 0x66,
		0x43, 0x98, 0x69, 0x4f, 0x99, 0x4a, 0xc6, 0xe7, 0xe2, 0xc2, 0x9d, 0xb8, 0xf2, 0x3c, 0xdd, 0xce,
		0xb5, 0x68, 0x22, 0xc2, 0x71, 0x46, 0x53, 0x9d, 0x50, 0xc8, 0xaf, 0x51, 0xfc, 0xc5, 0xf1, 0xc3,
		0x44, 0xba, 0xe1, 0x58, 0xd4, 0x6e, 0xff, 0x46, 0x72, 0xe7, 0x77, 0x6a, 0x93, 0x38, 0x92, 0xd1,
		0x38, 0x0a, 0x92, 0xfc, 0x5b, 0x6d, 0xe6, 0xb9, 0x6a, 0x6e, 0x2c, 0xdc, 0x24, 0xfb, 0x59, 0x0b,
		0x12, 0xef, 0xa4, 0x16, 0x24, 0xae, 0x23, 0xaf, 0x27, 0x22, 0xc9, 0xbf, 0xa5, 0x5f, 0xb2, 0x5f,
		0xd5, 0xa2, 0x89, 0xfb, 0xd7, 0x54, 0x38, 0xe9, 0xd7, 0x59, 0x72, 0x90, 0xb3, 0x34, 0xd3, 0xba,
		0x26, 0x83, 0xcb, 0x24, 0xfd, 0x51, 0x7b, 0x78, 0xd0, 0x75, 0x8d, 0xf2, 0xc4, 0xcb, 0xd9, 0x63,
		0x97, 0xf1, 0x74, 0x2c, 0xc3, 0x39, 0x8a, 0xf6, 0xf2, 0xa7, 0x7e, 0x30, 0x7b, 0xa2, 0x9d, 0xf9,
		0x03, 0x1d, 0xdd, 0xfa, 0x75, 0x72, 0xfb, 0x37, 0x46, 0x87, 0x8b, 0x27, 0x9e, 0x7f, 0x1b, 0xf5,
		0xb2, 0x27, 0x3e, 0x6a, 0xa5, 0x4f, 0x3c, 0xfb, 0x39, 0xea, 0x26, 0xde, 0xc9, 0xa8, 0x9b, 0xb8,
		0xa9, 0x7f, 0x49, 0x16, 0x5f, 0xd2, 0xff, 0x66, 0xbf, 0x18, 0xf5, 0xb2, 0xe7, 0x9d, 0x7e, 0x3b,
		0xca, 0x1e, 0x77, 0xe7, 0xe6, 0xc1, 0x8e, 0x06, 0xc1, 0x65, 0x92, 0xfe, 0x18, 0x75, 0x96, 0x9f,
		0xf6, 0xfb, 0xa5, 0x87, 0x3d, 0xea, 0x67, 0x0f, 0xfb, 0x05, 0x30, 0x8b, 0x9f, 0x45, 0xd4, 0x26,
		0xfd, 0x32, 0x38, 0x0a, 0xb4, 0xbf, 0x9e, 0x8b, 0x90, 0xac, 0xb2, 0xc4, 0x60, 0x08, 0xec, 0xda,
		0xda, 0x0c, 0x9e, 0x6b, 0x29, 0xe8, 0x5b, 0xbf, 0x5a, 0x2f, 0xe7, 0xe1, 0xcd, 0xcc, 0x1d, 0xbc,
		0x3d, 0xea, 0x8c, 0x3a, 0x07, 0x7b, 0xbd, 0xa3, 0xfd, 0xd6, 0xa0, 0xd3, 0x3b, 0x68, 0x75, 0x47,
		0xef, 0x5b, 0x87, 0xad, 0x77, 0x9d, 0x6e, 0x67, 0xd0, 0x69, 0xf7, 0x5f, 0x62, 0x70, 0x6c, 0xa1,
		0xc1, 0x7c, 0xb6, 0x96, 0x31, 0x36, 0xb6, 0xbc, 0xd0, 0xfd, 0x79, 0x8b, 0x1d, 0x87, 0x2d, 0x4f,
		0x78, 0xfc, 0xbb, 0x22, 0x19, 0xc7, 0xfe, 0x84, 0x3c, 0xf5, 0x5e, 0x01, 0xc5, 0x4e, 0x38, 0x0e,
		0xa6, 0x9e, 0xb0, 0xe4, 0xb9, 0xb0, 0x56, 0x78, 0xad, 0xb5, 0xcc, 0x6b, 0xad, 0x64, 0x22, 0xc6,
		0xfe, 0xa9, 0x3f, 0xce, 0xfe, 0xa7, 0x95, 0xee, 0xde, 0xe3, 0x30, 0xfd, 0x2b, 0x83, 0xee, 0x27,
		0x2b, 0x3a, 0xcd, 0xfe, 0xf6, 0x51, 0xc7, 0xea, 0xf6, 0x5b, 0x96, 0x9f, 0xff, 0x61, 0xe1, 0x59,
		0x32, 0xb2, 0x4e, 0xc4, 0xec, 0x0f, 0xf8, 0x89, 0x95, 0x2e, 0x3d, 0xea, 0x9b, 0x9e, 0x91, 0x40,
		0xba, 0x8c, 0xa7, 0xde, 0xd2, 0xda, 0x63, 0x20, 0x89, 0x70, 0x54, 0x47, 0x57, 0xe0, 0x55, 0xf9,
		0xb6, 0x81, 0x76, 0x64, 0x92, 0x76, 0x44, 0xce, 0xaa, 0x21, 0xa2, 0x43, 0xbe, 0x9a, 0x9a, 0x99,
		0x5a, 0x1a, 0x41, 0x3f, 0x66, 0x92, 0x7a, 0x46, 0xcb, 0xa3, 0xd0, 0x41, 0x44, 0x42, 0xd8, 0x63,
		0x87, 0x91, 0x27, 0x1c, 0xd7, 0xbb, 0xf0, 0x43, 0x3f, 0x91, 0xb1, 0x2b, 0xfd, 0x4b, 0xe1, 0x48,
		0xf7, 0x2c, 0x21, 0x87, 0x42, 0x79, 0x38, 0xf1, 0xa0, 0xc5, 0xc4, 0x10, 0x7d, 0x71, 0x26, 0x47,
		0xcc, 0x2c, 0xaa, 0x89, 0x3a, 0x94, 0x13, 0x73, 0x58, 0x24, 0xe2, 0x50, 0x8f, 0x2b, 0xd9, 0x24,
		0xda, 0xb0, 0x09, 0x1d, 0xb9, 0x24, 0xd2, 0xe0, 0x5c, 0xe8, 0xbb, 0x9a, 0x9e, 0x1f, 0x13, 0xa5,
		0xfc, 0xd9, 0xd9, 0x27, 0x59, 0x38, 0xb9, 0x69, 0xb4, 0x41, 0xf7, 0x3c, 0x9c, 0x28, 0x09, 0x20,
		0x4f, 0x06, 0x38, 0x90, 0x02, 0x56, 0xe4, 0x80, 0x0b, 0x49, 0x60, 0x47, 0x16, 0xd8, 0x91, 0x06,
		0x6e, 0xe4, 0x81, 0x26, 0x89, 0x20, 0x4a, 0x26, 0xc8, 0x93, 0x8a, 0xdc, 0x40, 0x0e, 0x92, 0xc3,
		0x83, 0x48, 0x4f, 0x5f, 0x7d, 0x78, 0x88, 0x88, 0xa0, 0x8c, 0xa8, 0x3a, 0xc4, 0x84, 0x25, 0x41,
		0xe1, 0x46, 0x54, 0xd8, 0x12, 0x16, 0xb6, 0xc4, 0x85, 0x2b, 0x81, 0xa1, 0x4d, 0x64, 0x88, 0x13,
		0x9a, 0xfc, 0xa5, 0xf3, 0x2b, 0x23, 0x9a, 0xfa, 0xa1, 0xdc, 0xdc, 0x60, 0x54, 0x45, 0xb4, 0xcd,
		0xc0, 0xd4, 0x23, 0x37, 0x3c, 0x43, 0x7f, 0xa2, 0x12, 0x1e, 0xec, 0xbe, 0x1f, 0xf2, 0xeb, 0xf0,
		0xf3, 0xc9, 0x0d, 0xa6, 0x82, 0x3e, 0x69, 0xbc, 0x63, 0xf7, 0x5e, 0xec, 0x8e, 0xa5, 0x1f, 0x85,
		0xbb, 0xfe, 0x99, 0x2f, 0x13, 0x86, 0x37, 0x70, 0x20, 0xce, 0xb2, 0x10, 0xc8, 0x7e, 0x6b, 0x65,
		0xad, 0x1e, 0xf8, 0x74, 0xf4, 0x61, 0xd4, 0x77, 0x6b, 0xdf, 0xbd, 0xe2, 0xbb, 0x25, 0x1b, 0x1b,
		0x3b, 0x8d, 0x9d, 0xad, 0xed, 0x8d, 0x9d, 0x26, 0xf6, 0x26, 0xf6, 0xa6, 0x01, 0x04, 0x99, 0x8f,
		0x95, 0x43, 0x04, 0x1a, 0xcf, 0xd8, 0x3e, 0x5d, 0x3f, 0x91, 0x2d, 0x29, 0x63, 0x1e, 0xc1, 0xc6,
		0xbe, 0x1f, 0xb6, 0x03, 0x91, 0x46, 0xc3, 0x4c, 0xa0, 0x2a, 0xf5, 0x6a, 0x4b, 0x16, 0xd7, 0xdf,
		0x34, 0x1a, 0x5b, 0xdb, 0x8d, 0xc6, 0xfa, 0xf6, 0xe6, 0xf6, 0xfa, 0x4e, 0xb3, 0x59, 0xdf, 0xaa,
		0x33, 0x70, 0x18, 0x76, 0x2f, 0xf6, 0x44, 0x2c, 0xbc, 0x77, 0xd7, 0xf6, 0x5b, 0x2b, 0x9c, 0x06,
		0x01, 0x27, 0x93, 0x3f, 0x26, 0xd9, 0x38, 0x0d, 0xfa, 0xbe, 0x01, 0x3d, 0x7e, 0x8b, 0xb7, 0x19,
		0x3d, 0x7e, 0xcb, 0x64, 0x5e, 0x37, 0x3d, 0x7e, 0xb7, 0xb7, 0xb7, 0xd1, 0xe3, 0x57, 0x81, 0xdd,
		0xe8, 0xf1, 0x4b, 0xe0, 0x06, 0x6e, 0xf5, 0xf8, 0xcd, 0xd6, 0x3e, 0xa2, 0x0e, 0x44, 0x1d, 0x78,
		0x7e, 0x6c, 0x2d, 0x43, 0x0b, 0xaa, 0xe7, 0xd9, 0xc9, 0xb8, 0x6c, 0xee, 0xa1, 0x3a, 0x1b, 0x34,
		0xa0, 0x2a, 0xbe, 0x84, 0xee, 0x20, 0xf2, 0x44, 0x6b, 0xe5, 0x51, 0x0f, 0xdc, 0x33, 0x74, 0x9f,
		0x62, 0x6c, 0x11, 0xba, 0x4f, 0x3d, 0xde, 0x46, 0x74, 0x9f, 0x7a, 0x5e, 0xbc, 0xf9, 0xe3, 0x86,
		0x3c, 0x07, 0xbd, 0xdd, 0xf6, 0xa8, 0xb5, 0xbb, 0xdf, 0x39, 0x18, 0x0d, 0x5a, 0x1f, 0xd0, 0x71,
		0xaa, 0xd8, 0xc8, 0x13, 0x1d, 0xa7, 0x4a, 0x0e, 0x2a, 0x1f, 0xbf, 0xc0, 0xd1, 0x65, 0xea, 0x09,
		0x8f, 0x9c, 0x7d, 0x97, 0xa9, 0x94, 0xba, 0x5a, 0xab, 0xd4, 0xd5, 0x4a, 0xa9, 0x2b, 0x7a, 0x4c,
		0x11, 0x47, 0x50, 0xf4, 0x98, 0x52, 0x0b, 0xa8, 0x8a, 0x37, 0x0d, 0xa4, 0x21, 0x93, 0xa4, 0x21,
		0x74, 0x98, 0x62, 0x15, 0x01, 0xa2, 0xc3, 0x94, 0x72, 0xa9, 0x0c, 0xfd, 0xa5, 0xca, 0x13, 0xc7,
		0xd0, 0x5c, 0x8a, 0x3c, 0xec, 0xd8, 0x89, 0x38, 0x4b, 0x99, 0x86, 0x93, 0xee, 0x1d, 0x3f, 0x3c,
		0x73, 0xdc, 0xe0, 0x2c, 0x8a, 0x7d, 0x79, 0x7e, 0x41, 0xb7, 0xbb, 0xd4, 0xc3, 0x26, 0xa3, 0xbd,
		0xd4, 0xcf, 0x98, 0x85, 0xf6, 0x52, 0xcf, 0x58, 0x7c, 0x68, 0x2f, 0x55, 0x4c, 0x18, 0x89, 0xf6,
		0x52, 0x85, 0x47, 0x8a, 0x68, 0x2f, 0xc5, 0x94, 0xf6, 0xa3, 0xbd, 0xd4, 0x33, 0x09, 0x01, 0xda,
		0x4b, 0x19, 0x47, 0x06, 0x38, 0x90, 0x02, 0x56, 0xe4, 0x80, 0x0b, 0x49, 0x60, 0x47, 0x16, 0xd8,
		0x91, 0x06, 0x6e, 0xe4, 0x81, 0x26, 0x89, 0x20, 0x4a, 0x26, 0xc8, 0x93, 0x8a, 0x1b, 0x72, 0x31,
		0x9d, 0x4c, 0xa2, 0x58, 0x0a, 0xef, 0x26, 0x80, 0x67, 0xd4, 0x5f, 0xea, 0x5e, 0xeb, 0xd1, 0x60,
		0xaa, 0x0a, 0x94, 0x84, 0x13, 0x35, 0x61, 0x49, 0x51, 0xb8, 0x51, 0x15, 0xb6, 0x94, 0x85, 0x2d,
		0x75, 0xe1, 0x4a, 0x61, 0x68, 0x53, 0x19, 0xe2, 0x94, 0x26, 0x7f, 0xe9, 0xfc, 0x1a, 0x4c, 0xf9,
		0x9e, 0x08, 0xa5, 0x2f, 0xaf, 0x63, 0x71, 0xca, 0x69, 0x56, 0x3d, 0x87, 0xfa, 0xee, 0xce, 0xfc,
		0xd1, 0xbe, 0x73, 0x13, 0x46, 0x9e, 0x62, 0xb1, 0x30, 0xfa, 0x47, 0xa3, 0x56, 0xf7, 0x43, 0xef,
		0xa8, 0x33, 0xf8, 0xcf, 0x3e, 0x17, 0x67, 0x91, 0xf5, 0x8d, 0x49, 0xd8, 0x54, 0x25, 0x5b, 0xac,
		0x2a, 0x93, 0x57, 0x57, 0xc7, 0xe1, 0x9e, 0x8d, 0x7e, 0x4d, 0x58, 0x0e, 0x8b, 0xe5, 0x30, 0x38,
		0xea, 0xbc, 0x1f, 0x8c, 0x78, 0xad, 0x0a, 0x16, 0x96, 0x0e, 0xc1, 0x18, 0x8d, 0x66, 0x8c, 0xe8,
		0x14, 0x54, 0xb2, 0xc5, 0xe8, 0x14, 0xa4, 0xd7, 0x64, 0x3e, 0x9d, 0x82, 0x70, 0xbc, 0x60, 0x02,
		0xb2, 0xa2, 0xba, 0xbf, 0xfc, 0x94, 0xe5, 0x07, 0xf3, 0x1c, 0x51, 0xde, 0x5f, 0x7c, 0x06, 0x73,
		0x7f, 0xf6, 0xb0, 0x8f, 0x66, 0xcf, 0xba, 0xb5, 0x78, 0xd4, 0xa8, 0xef, 0xe7, 0x6b, 0x11, 0xea,
		0xfb, 0x1f, 0x6f, 0x23, 0xea, 0xfb, 0x9f, 0x17, 0xa2, 0xff, 0xb8, 0xfc, 0x79, 0x59, 0xf1, 0x43,
		0x75, 0x7f, 0x01, 0x76, 0xa2, 0xba, 0xbf, 0x64, 0xa6, 0xf7, 0xa8, 0xea, 0xfe, 0xd5, 0xe5, 0x8d,
		0xda, 0xfe, 0x27, 0x3c, 0x70, 0xf6, 0xb5, 0xfd, 0x73, 0xe2, 0x6a, 0xcd, 0x89, 0xab, 0x95, 0x13,
		0xd7, 0xbc, 0x4e, 0xd9, 0x9a, 0xb8, 0xb1, 0x7b, 0x21, 0xa4, 0x88, 0x13, 0x94, 0xf8, 0x93, 0x83,
		0x51, 0x94, 0xf8, 0xab, 0x45, 0x55, 0x3d, 0x7b, 0x07, 0x32, 0x91, 0x49, 0x32, 0x11, 0x2a, 0xfd,
		0x59, 0xc5, 0x82, 0xa8, 0xf4, 0x57, 0x2f, 0x9b, 0xa1, 0xd4, 0xbf, 0x44, 0xa1, 0x0c, 0xb5, 0xfe,
		0xe4, 0x81, 0xe7, 0x4e, 0xe1, 0x7c, 0xe2, 0x7b, 0x4e, 0xe0, 0x9e, 0x88, 0xc0, 0x89, 0xe7, 0xb3,
		0xfa, 0x98, 0x54, 0xfc, 0xdf, 0x36, 0x1c, 0x75, 0xff, 0x3f, 0x63, 0x16, 0xea, 0xfe, 0x9f, 0xb1,
		0x04, 0x51, 0xf7, 0x5f, 0x4c, 0x6c, 0x89, 0xba, 0xff, 0xc2, 0xc3, 0x47, 0xd4, 0xfd, 0x33, 0x0d,
		0x02, 0xc8, 0xd6, 0xfd, 0xa7, 0x5c, 0x9a, 0x7e, 0xd9, 0x7f, 0x66, 0x25, 0xaa, 0xfe, 0x4d, 0xa2,
		0x02, 0x1c, 0x28, 0x01, 0x2b, 0x6a, 0xc0, 0x85, 0x22, 0xb0, 0xa3, 0x0a, 0xec, 0x28, 0x03, 0x37,
		0xea, 0x40, 0x93, 0x42, 0x10, 0xa5, 0x12, 0xe4, 0x29, 0xc5, 0x32, 0xb5, 0xe0, 0x73, 0xa8, 0x99,
		0x1a, 0xcb, 0xa3, 0xa6, 0xbf, 0x8e, 0x9a, 0xfe, 0xca, 0x10, 0x0f, 0x96, 0x04, 0x84, 0x1b, 0x11,
		0x61, 0x4b, 0x48, 0xd8, 0x12, 0x13, 0xae, 0x04, 0x85, 0x36, 0x51, 0x21, 0x4e, 0x58, 0xd8, 0x10,
		0x97, 0xdc, 0xd0, 0xfc, 0xec, 0x81, 0x5f, 0xb1, 0xf9, 0x8d, 0xe9, 0x4c, 0x90, 0x80, 0x07, 0xb9,
		0x61, 0x47, 0x72, 0x38, 0x92, 0x1d, 0xd6, 0xa4, 0x87, 0x2b, 0xf9, 0x61, 0x4f, 0x82, 0xd8, 0x93,
		0x21, 0xee, 0xa4, 0x88, 0x07, 0x39, 0x62, 0x42, 0x92, 0xd8, 0x91, 0xa5, 0x1b, 0xd2, 0x44, 0xba,
		0x91, 0xf4, 0x8f, 0x89, 0x13, 0xf1, 0x7a, 0x4b, 0x03, 0xc8, 0x13, 0x5b, 0x12, 0xc5, 0x99, 0x4c,
		0x19, 0x41, 0xaa, 0xb8, 0x93, 0x2b, 0x63, 0x48, 0x96, 0x31, 0x64, 0xcb, 0x14, 0xd2, 0xc5, 0x8b,
		0x7c, 0x31, 0x23, 0x61, 0x6c, 0xc9, 0x58, 0x6e, 0xb8, 0x08, 0x65, 0x7c, 0x9d, 0xe5, 0xd8, 0xf3,
		0xc5, 0xcc, 0x85, 0xe3, 0x5a, 0xba, 0x17, 0xa6, 0x58, 0xc3, 0xa3, 0x39, 0xb7, 0x71, 0xb4, 0xcd,
		0x04, 0xfa, 0x66, 0x14, 0x8d, 0x33, 0x85, 0xce, 0x19, 0x47, 0xeb, 0x8c, 0xa3, 0x77, 0xa6, 0xd1,
		0x3c, 0x9e, 0x74, 0x8f, 0x29, 0xed, 0xcb, 0x17, 0xcf, 0x80, 0x33, 0x7f, 0x5a, 0xf1, 0x1a, 0x49,
		0x9c, 0x15, 0x56, 0x31, 0x26, 0x51, 0xcb, 0x44, 0xaa, 0xde, 0x60, 0x7c, 0x0f, 0xed, 0x70, 0x7a,
		0xc1, 0xdf, 0xf3, 0x0d, 0xa2, 0xbe, 0x8c, 0xfd, 0xf0, 0x8c, 0xfd, 0x9d, 0x64, 0x77, 0xb3, 0x9e,
		0xee, 0x91, 0x6e, 0xeb, 0x5d, 0xbb, 0xcb, 0xdc, 0x81, 0x67, 0x77, 0x53, 0xcf, 0x1a, 0x4a, 0x77,
		0x76, 0x6d, 0xd6, 0xb7, 0xf2, 0xed, 0x17, 0xee, 0x3b, 0xa4, 0x93, 0xd1, 0x0e, 0x03, 0xb6, 0xc7,
		0x6c, 0x67, 0xb0, 0x8d, 0xff, 0x56, 0x43, 0x8f, 0xce, 0x6e, 0xea, 0x41, 0x78, 0x6f, 0x0d, 0xf0,
		0x57, 0x58, 0x6d, 0x1a, 0x78, 0xda, 0xa7, 0x7e, 0x9c, 0x48, 0xe7, 0xd2, 0x0d, 0xa6, 0x06, 0x88,
		0x96, 0xcb, 0x37, 0x03, 0xd5, 0x52, 0x87, 0xf9, 0x50, 0x2d, 0x09, 0x6d, 0x07, 0xa8, 0x96, 0x94,
		0x36, 0x36, 0x54, 0x4b, 0xe2, 0x37, 0x04, 0xd5, 0x12, 0x1c, 0xea, 0xe9, 0x81, 0xa7, 0x31, 0xaa,
		0xe5, 0xd4, 0x0f, 0xe5, 0xe6, 0x86, 0x01, 0x82, 0xe5, 0x36, 0xe3, 0x5b, 0x38, 0x9a, 0xf7, 0x0f,
		0xfb, 0xcc, 0x1a, 0x52, 0x0d, 0x50, 0x61, 0xf6, 0xfd, 0xd0, 0x08, 0x39, 0xc9, 0xca, 0x07, 0x4d,
		0x9a, 0x21, 0x29, 0x65, 0xf7, 0xb3, 0x17, 0xbb, 0x63, 0xe9, 0x47, 0xe1, 0xae, 0x7f, 0xe6, 0x73,
		0x19, 0xed, 0xf5, 0x73, 0x58, 0x2c, 0xce, 0x5c, 0xe9, 0x5f, 0x0a, 0x16, 0x13, 0xa8, 0x0c, 0x76,
		0xeb, 0xab, 0x50, 0xe0, 0x5e, 0x99, 0x07, 0x05, 0x8d, 0x8d, 0x9d, 0xc6, 0xce, 0xd6, 0xf6, 0xc6,
		0x4e, 0x13, 0x98, 0x00, 0x4c, 0x40, 0x80, 0x52, 0x01, 0xeb, 0x87, 0x38, 0x0e, 0x80, 0xc5, 0xdc,
		0x3d, 0x34, 0x97, 0x79, 0x89, 0x0f, 0xda, 0x6f, 0x50, 0x43, 0xf8, 0x5b, 0xdd, 0xa3, 0x97, 0xfe,
		0xe0, 0xe2, 0x7f, 0xd4, 0x38, 0x16, 0xfc, 0x59, 0x26, 0xf4, 0x93, 0xef, 0xfb, 0x5e, 0x37, 0x7d,
		0x03, 0x99, 0xa0, 0xb0, 0xf4, 0x87, 0xe6, 0xbf, 0x4d, 0x79, 0x1c, 0x23, 0x7f, 0x5c, 0x45, 0x91,
		0x36, 0x10, 0xbf, 0x62, 0x48, 0xcf, 0xa9, 0x79, 0x88, 0xe1, 0xd8, 0xce, 0x03, 0xd5, 0xe9, 0x63,
		0x24, 0x03, 0x7c, 0x64, 0xd6, 0x0f, 0x82, 0x65, 0x1f, 0x08, 0x34, 0xcf, 0x2a, 0xd9, 0x60, 0x34,
		0xcf, 0x52, 0x6c, 0x3c, 0x9a, 0x67, 0x69, 0xba, 0x01, 0x34, 0xcf, 0x02, 0xe7, 0x30, 0x27, 0x2e,
		0x63, 0xd7, 0x3c, 0x2b, 0x8b, 0x5d, 0x9c, 0xc4, 0xff, 0x2f, 0xe3, 0x0e, 0x5a, 0x4b, 0xf7, 0xc0,
		0xb3, 0x8d, 0xd6, 0x3a, 0xda, 0x68, 0x81, 0x56, 0x99, 0x4c, 0xaf, 0xb8, 0xd3, 0x2c, 0x63, 0xe8,
		0x96, 0x31, 0xb4, 0xcb, 0x14, 0xfa, 0xc5, 0x8b, 0x86, 0x31, 0xa3, 0x63, 0xf9, 0x22, 0x61, 0x9b,
		0x91, 0xcc, 0x3f, 0x13, 0x99, 0x71, 0x06, 0x32, 0xf3, 0xcc, 0x63, 0xc6, 0xf9, 0xf7, 0x26, 0x64,
		0x1a, 0x9b, 0x92, 0x61, 0x6c, 0x5c, 0x16, 0xa1, 0x39, 0xd9, 0x83, 0x8c, 0x33, 0x89, 0x8d, 0xc8,
		0x20, 0xce, 0xb7, 0x78, 0x7d, 0x6b, 0x7b, 0x7b, 0x7b, 0xa3, 0xbe, 0x85, 0x9d, 0x8e, 0x9d, 0x8e,
		0xf0, 0x80, 0xb1, 0xd5, 0x43, 0x64, 0x7f, 0x55, 0xdd, 0x53, 0xd9, 0x2c, 0x9b, 0x16, 0xdf, 0x8c,
		0x15, 0xe5, 0xd7, 0x61, 0x0f, 0x32, 0xb8, 0x62, 0xc3, 0x21, 0x83, 0x6b, 0xbe, 0x09, 0xc8, 0xe0,
		0x44, 0x6e, 0x04, 0x32, 0x38, 0x18, 0x4d, 0x65, 0xe2, 0x6f, 0x13, 0x64, 0xf0, 0xd0, 0x8f, 0x42,
		0xc6, 0x2a, 0x78, 0x7d, 0x87, 0xa1, 0xed, 0xf3, 0x65, 0x03, 0x15, 0x5c, 0xd3, 0xa2, 0xf7, 0x3d,
		0x11, 0x4a, 0x5f, 0x5e, 0xc7, 0xe2, 0xd4, 0x84, 0xde, 0xd9, 0x8c, 0xab, 0xeb, 0xed, 0xce, 0xfc,
		0x55, 0xbc, 0x73, 0x13, 0x03, 0xfa, 0xb0, 0x2d, 0x16, 0x58, 0xaf, 0x7f, 0xb8, 0x37, 0x3a, 0xea,
		0x8c, 0xfa, 0x47, 0xa3, 0x7e, 0x67, 0x77, 0x94, 0x75, 0xdb, 0x1d, 0x0d, 0xba, 0x9f, 0x46, 0x83,
		0x3f, 0x0f, 0xdb, 0x7d, 0xee, 0xcd, 0xd9, 0x32, 0x91, 0x36, 0x61, 0xdf, 0x40, 0xc8, 0x32, 0xa2,
		0x89, 0xd0, 0xca, 0xba, 0xbb, 0xbd, 0xde, 0x6c, 0xf4, 0x71, 0xd0, 0xfa, 0x19, 0x42, 0x1f, 0x47,
		0xfc, 0x50, 0x09, 0x4a, 0x25, 0xc2, 0xe9, 0x85, 0x88, 0x67, 0x05, 0xb4, 0x18, 0x47, 0xa2, 0xf5,
		0x1e, 0x30, 0x8e, 0x84, 0xde, 0xdd, 0x64, 0xe3, 0x48, 0x3e, 0x1e, 0xfc, 0x76, 0xd0, 0xfb, 0xfd,
		0x00, 0x43, 0x3c, 0xf4, 0xae, 0x2b, 0x63, 0x86, 0x78, 0x2c, 0xd6, 0xd3, 0x5b, 0x6b, 0x1d, 0xdd,
		0xae, 0x60, 0xb9, 0xc1, 0x56, 0x23, 0x8b, 0xa0, 0xca, 0x96, 0xa2, 0x87, 0x4c, 0xb9, 0x76, 0x57,
		0xa2, 0x87, 0x0c, 0xb3, 0x1e, 0x61, 0xc6, 0xf6, 0x8f, 0xe1, 0xd3, 0x12, 0x0c, 0xcd, 0x63, 0x8a,
		0x58, 0xc7, 0xd3, 0xf0, 0x4b, 0x18, 0x7d, 0x0d, 0x1d, 0x19, 0x5c, 0xf2, 0x6b, 0x21, 0xb3, 0x6c,
		0x3c, 0x1a, 0xc9, 0x94, 0x61, 0x2e, 0x1a, 0xc9, 0x28, 0x5c, 0xce, 0x68, 0x24, 0xa3, 0x72, 0x23,
		0xa2, 0x91, 0x8c, 0x6e, 0x3e, 0x8e, 0x46, 0x32, 0xe0, 0x20, 0x8b, 0xc5, 0xc0, 0xae, 0x91, 0x0c,
		0xaf, 0xae, 0x7b, 0x77, 0x7c, 0x0d, 0xc7, 0xa6, 0xcc, 0xcc, 0xc8, 0x13, 0x5b, 0x12, 0xc5, 0x99,
		0x4c, 0x19, 0x41, 0xaa, 0xb8, 0x93, 0x2b, 0x63, 0x48, 0x96, 0x31, 0x64, 0xcb, 0x14, 0xd2, 0xc5,
		0x8b, 0x7c, 0x31, 0x23, 0x61, 0x6c, 0xc9, 0x58, 0x6e, 0x78, 0x20, 0xc2, 0xb3, 0x4c, 0x26, 0x67,
		0x3e, 0xcc, 0x7c, 0x7e, 0x1f, 0x98, 0x63, 0x0e, 0xba, 0x56, 0x2d, 0xda, 0x66, 0x14, 0x7d, 0x33,
		0x85, 0xc6, 0x19, 0x47, 0xe7, 0x8c, 0xa3, 0x75, 0xa6, 0xd1, 0x3b, 0x9e, 0x34, 0x8f, 0x29, 0xdd,
		0xcb, 0x17, 0x8f, 0x59, 0x73, 0xcc, 0xeb, 0x5b, 0x06, 0x64, 0x3a, 0x6f, 0x61, 0x8e, 0xb9, 0xe6,
		0x0f, 0xe6, 0x98, 0xd3, 0xba, 0x19, 0xcc, 0x31, 0xe7, 0x82, 0xc5, 0x98, 0x63, 0x4e, 0x10, 0x0a,
		0x4c, 0x9c, 0x63, 0xbe, 0xd5, 0x6c, 0x6e, 0x62, 0x84, 0x39, 0xe0, 0x00, 0xb1, 0x49, 0x15, 0xac,
		0xc7, 0x08, 0x73, 0xb8, 0xbb, 0x87, 0x40, 0x46, 0x72, 0x8e, 0x60, 0x39, 0xb7, 0x34, 0xbc, 0x1d,
		0xb7, 0x42, 0xfb, 0xd7, 0x74, 0x03, 0xd0, 0xfe, 0x89, 0xdd, 0x0c, 0xb4, 0x7f, 0xa2, 0x37, 0x04,
		0xed, 0x1f, 0x8c, 0x09, 0xac, 0x69, 0xb1, 0x78, 0xa0, 0xfd, 0x93, 0xe3, 0x50, 0xd0, 0xfe, 0x75,
		0x7f, 0xa0, 0xfd, 0xd3, 0xba, 0x19, 0x68, 0xff, 0x5c, 0xb0, 0x18, 0xda, 0x3f, 0x41, 0x28, 0x80,
		0xf6, 0x0f, 0x38, 0x00, 0x1c, 0x54, 0x37, 0x36, 0xe1, 0x6f, 0x3d, 0xb4, 0x7f, 0xb8, 0xbb, 0x87,
		0x40, 0xe6, 0x72, 0xee, 0x11, 0x98, 0x8b, 0xff, 0xb3, 0xdb, 0x80, 0xfa, 0xaf, 0xc3, 0x7c, 0xa8,
		0xff, 0x84, 0x36, 0x02, 0xd4, 0x7f, 0x4a, 0x1b, 0x1b, 0xea, 0x3f, 0xf1, 0x1b, 0x82, 0xfa, 0x0f,
		0xde, 0xf4, 0xe4, 0xc5, 0x63, 0x8e, 0xfa, 0x7f, 0xe2, 0x87, 0x6e, 0x7c, 0x6d, 0x80, 0xfa, 0xbf,
		0x83, 0x50, 0x07, 0x16, 0x73, 0x07, 0x18, 0xae, 0x3d, 0x57, 0x73, 0xfb, 0xab, 0xd0, 0x7b, 0x75,
		0xa9, 0x8b, 0x62, 0x8d, 0x63, 0x5b, 0x20, 0xcb, 0xe0, 0x7e, 0xac, 0x1f, 0x67, 0xef, 0x86, 0x59,
		0x6b, 0x56, 0x7e, 0xd8, 0x8a, 0x66, 0x6e, 0x40, 0xfd, 0xca, 0xa1, 0x3d, 0xfa, 0x6d, 0x13, 0xc2,
		0x77, 0x34, 0xdd, 0xae, 0x82, 0x85, 0xc4, 0x11, 0xdc, 0xee, 0xfa, 0x89, 0x6c, 0x49, 0xc9, 0xa3,
		0xfd, 0x93, 0xbd, 0xef, 0x87, 0xed, 0x40, 0xa4, 0xbb, 0x8c, 0xc9, 0x69, 0xb9, 0xbd, 0xef, 0x5e,
		0x2d, 0x59, 0x5c, 0x7f, 0xd3, 0x68, 0x6c, 0x6d, 0x37, 0x1a, 0xeb, 0xdb, 0x9b, 0xdb, 0xeb, 0x3b,
		0xcd, 0x66, 0x7d, 0x8b, 0xc3, 0xb0, 0x58, 0xbb, 0x17, 0x7b, 0x22, 0x16, 0xde, 0xbb, 0x6b, 0xfb,
		0xad, 0x15, 0x4e, 0x83, 0x80, 0x93, 0xc9, 0x1f, 0x13, 0x11, 0xb3, 0x48, 0x43, 0xa0, 0x8e, 0x14,
		0xcc, 0x38, 0x5e, 0x15, 0xb8, 0x1d, 0x03, 0x3e, 0x67, 0x28, 0x8f, 0xa3, 0x4d, 0xde, 0xe8, 0x52,
		0x22, 0x9a, 0x96, 0x11, 0x85, 0x5e, 0x2e, 0x90, 0x6b, 0x3a, 0xd4, 0x12, 0x86, 0x59, 0x03, 0xe1,
		0x95, 0x26, 0xb4, 0xd2, 0x03, 0x2e, 0x5a, 0x16, 0x11, 0x83, 0x50, 0x5b, 0x5c, 0xc9, 0xd8, 0x75,
		0xa6, 0xe9, 0xea, 0x3e, 0x09, 0x68, 0x1e, 0x75, 0xdb, 0x5f, 0xcf, 0x45, 0x48, 0xb6, 0x64, 0x8a,
		0xb0, 0xbb, 0x59, 0x1c, 0xfd, 0xaf, 0xad, 0xcd, 0x8e, 0xaf, 0x6a, 0x29, 0xf2, 0x5b, 0xbf, 0x5a,
		0x2f, 0xe7, 0x69, 0x30, 0x33, 0x9f, 0xf0, 0xf6, 0xa8, 0x33, 0xea, 0x1f, 0x8d, 0xfa, 0x9d, 0xdd,
		0x51, 0xb7, 0xf5, 0xae, 0xdd, 0x1d, 0x1d, 0xb5, 0x0e, 0x3e, 0xb4, 0x5f, 0x52, 0x06, 0x73, 0x26,
		0xc9, 0x63, 0xcb, 0xc9, 0x61, 0xd9, 0x1a, 0x26, 0x1e, 0xb9, 0x72, 0x4b, 0xfd, 0x5a, 0x49, 0xed,
		0x7a, 0xda, 0x22, 0x7f, 0x01, 0x95, 0xe3, 0xf1, 0x8f, 0x7d, 0x57, 0x24, 0xe3, 0xd8, 0x9f, 0xb0,
		0x90, 0x38, 0x72, 0x10, 0xec, 0x84, 0xe3, 0x60, 0xea, 0x09, 0x4b, 0x9e, 0x0b, 0x6b, 0x4e, 0x66,
		0xad, 0x39, 0x99, 0xb5, 0xfa, 0x9d, 0xdd, 0x5a, 0xc6, 0xae, 0xac, 0x8c, 0xcc, 0x5a, 0x83, 0xee,
		0x27, 0x2b, 0x99, 0x88, 0xb1, 0x7f, 0xea, 0x8f, 0xad, 0x6c, 0x55, 0x59, 0xe9, 0xfe, 0x3d, 0x0e,
		0xd3, 0xbf, 0x9c, 0xfe, 0xcf, 0xe8, 0x34, 0xfb, 0x77, 0x8e, 0x3a, 0x56, 0xb7, 0xdf, 0xb2, 0xfc,
		0x64, 0xf1, 0xa7, 0x85, 0x67, 0xc9, 0xc8, 0x3a, 0x11, 0xb3, 0x3f, 0xe0, 0x27, 0x16, 0x83, 0x8e,
		0x35, 0x9c, 0x52, 0x71, 0x97, 0x11, 0xd5, 0x5b, 0x5a, 0x85, 0x0c, 0xf4, 0x1d, 0x8e, 0x79, 0xb5,
		0x2b, 0x00, 0xab, 0x71, 0x03, 0x41, 0x44, 0x32, 0x49, 0x44, 0x22, 0x67, 0xd5, 0x10, 0x11, 0x22,
		0x5f, 0x71, 0xcd, 0x60, 0x51, 0x8d, 0xa0, 0x5b, 0x33, 0x4b, 0x47, 0xa3, 0xe5, 0x58, 0xe8, 0x00,
		0x23, 0x21, 0x08, 0x22, 0x3a, 0x4e, 0x94, 0xf4, 0xb8, 0x50, 0xa2, 0xe3, 0x40, 0xc9, 0x56, 0x91,
		0x52, 0xae, 0x0e, 0x65, 0x51, 0xf5, 0x49, 0x3d, 0x84, 0x64, 0x53, 0xa5, 0xc9, 0x26, 0x4a, 0xe4,
		0x52, 0x55, 0x89, 0xc3, 0x9f, 0xef, 0x0a, 0x79, 0x44, 0xc7, 0x59, 0xd2, 0x6e, 0x57, 0xcd, 0xa1,
		0x1d, 0x35, 0xf1, 0x86, 0x13, 0xe4, 0x1b, 0x4a, 0x70, 0x68, 0x18, 0xc1, 0xaa, 0x21, 0x04, 0xc7,
		0x33, 0x3b, 0x16, 0x0d, 0x1d, 0x78, 0x9f, 0xda, 0x31, 0x68, 0xc8, 0x80, 0x54, 0xbc, 0xc7, 0xbc,
		0x5c, 0xf2, 0x0d, 0x13, 0x6e, 0xda, 0x21, 0x87, 0xb4, 0x4f, 0x8e, 0xf2, 0x28, 0x7e, 0x87, 0xb0,
		0x8d, 0xf3, 0xd7, 0x4d, 0xbb, 0x9b, 0x31, 0x83, 0x73, 0xcd, 0xc5, 0xa2, 0xf4, 0x3d, 0x11, 0x4a,
		0x5f, 0x5e, 0xc7, 0xe2, 0x94, 0xc3, 0xa1, 0xe6, 0x62, 0x89, 0x72, 0x28, 0xce, 0xe9, 0xcc, 0x1f,
		0xed, 0x3b, 0x37, 0xe1, 0xd3, 0xd2, 0x25, 0x5f, 0x18, 0x47, 0x9d, 0x51, 0xb7, 0xdf, 0x1a, 0x0d,
		0xba, 0x9f, 0x46, 0x83, 0x3f, 0x0f, 0xdb, 0x7d, 0x26, 0x25, 0xaa, 0xb3, 0x76, 0xb4, 0x09, 0xab,
		0x86, 0xe7, 0xbc, 0xba, 0x71, 0x2c, 0xaf, 0x90, 0xbd, 0x8f, 0x07, 0xef, 0x07, 0x9d, 0xde, 0x41,
		0xab, 0x3b, 0x7a, 0xdf, 0x3a, 0x6c, 0xbd, 0xeb, 0x74, 0x3b, 0x83, 0x4e, 0xbb, 0xcf, 0xa7, 0x37,
		0x02, 0xa3, 0x2e, 0x2e, 0x7c, 0x57, 0x49, 0xe7, 0x60, 0xaf, 0x77, 0xb4, 0xdf, 0xc2, 0x42, 0xc1,
		0x42, 0xf9, 0xfe, 0x42, 0x39, 0xe8, 0xed, 0xb6, 0x47, 0xad, 0xdd, 0xfd, 0xce, 0xc1, 0x68, 0xd0,
		0xfa, 0x80, 0xc5, 0x81, 0xc5, 0xb1, 0xb4, 0x38, 0xfa, 0x47, 0xa3, 0x56, 0xf7, 0x43, 0xef, 0xa8,
		0x33, 0xf8, 0xcf, 0x3e, 0x96, 0x06, 0x96, 0xc6, 0xea, 0xd2, 0xb8, 0x95, 0x68, 0x6d, 0xa3, 0xdf,
		0x51, 0xa1, 0x9f, 0x21, 0xba, 0x8d, 0x98, 0x0c, 0x03, 0x8c, 0x04, 0x0b, 0x11, 0x4e, 0x2f, 0x44,
		0xec, 0x72, 0xc9, 0xc2, 0x5e, 0x08, 0x16, 0x0d, 0x06, 0xb6, 0xb6, 0xc3, 0xe9, 0x05, 0x1f, 0xa1,
		0x62, 0x10, 0xf5, 0x65, 0xec, 0x87, 0x67, 0xbc, 0x1a, 0x9b, 0xad, 0xa7, 0x6b, 0xf8, 0xe3, 0xc1,
		0x6f, 0x07, 0xbd, 0xdf, 0x0f, 0x6c, 0xb4, 0xba, 0x2b, 0x74, 0x3d, 0x74, 0xb2, 0x23, 0x1e, 0x46,
		0x8b, 0x61, 0xb1, 0x0e, 0xde, 0x5a, 0xeb, 0xe8, 0x39, 0x56, 0x05, 0x16, 0xf0, 0x02, 0xfc, 0x8e,
		0xf7, 0xf3, 0x42, 0x7a, 0xd7, 0xf7, 0xf0, 0x0c, 0x95, 0x1b, 0xe5, 0x55, 0x6e, 0x10, 0x6d, 0x07,
		0xcd, 0xb1, 0x3e, 0x83, 0x5e, 0xfb, 0x66, 0x54, 0x62, 0xdc, 0xb7, 0xb4, 0x96, 0x1b, 0xe4, 0x92,
		0xad, 0xc7, 0xa0, 0xdb, 0xc5, 0x17, 0x55, 0x19, 0x8f, 0x34, 0x0c, 0x55, 0x19, 0xcf, 0x34, 0x12,
		0x55, 0x19, 0x05, 0x19, 0x8a, 0xaa, 0x0c, 0xd0, 0x76, 0x75, 0x2f, 0x91, 0x6c, 0x55, 0x06, 0xcd,
		0x52, 0xcc, 0x3b, 0x98, 0x4c, 0x79, 0x54, 0x0b, 0x51, 0x12, 0x40, 0x9e, 0x0c, 0x70, 0x20, 0x05,
		0xac, 0xc8, 0x01, 0x17, 0x92, 0xc0, 0x8e, 0x2c, 0xb0, 0x23, 0x0d, 0xdc, 0xc8, 0x03, 0x4d, 0x12,
		0x41, 0x94, 0x4c, 0x90, 0x27, 0x15, 0xb9, 0x81, 0x81, 0x08, 0xcf, 0x32, 0x21, 0x90, 0x49, 0x3f,
		0xb9, 0xb9, 0xbd, 0xc4, 0xf7, 0x34, 0x8f, 0xb9, 0xe3, 0x6c, 0xe6, 0x8b, 0x73, 0x9a, 0x23, 0xce,
		0x72, 0x5e, 0x38, 0xb7, 0xb9, 0xe0, 0x6c, 0xe7, 0x7f, 0xb3, 0x9d, 0xf3, 0xcd, 0x75, 0x9e, 0x37,
		0x12, 0xe2, 0x9e, 0xf3, 0xd2, 0xd9, 0xcc, 0xe1, 0xbe, 0x39, 0x88, 0xf0, 0x43, 0x59, 0xdf, 0x62,
		0x94, 0x13, 0xb7, 0xc5, 0xc0, 0xd4, 0x59, 0xd7, 0x36, 0x2e, 0xc5, 0x64, 0x8c, 0x52, 0x9f, 0xf6,
		0x7d, 0x7e, 0x73, 0xa8, 0x67, 0xb5, 0x85, 0x3c, 0xe6, 0xdb, 0xad, 0xd8, 0xbd, 0x17, 0xbb, 0x63,
		0xe9, 0x47, 0xe1, 0xae, 0x7f, 0xe6, 0x73, 0x19, 0xd0, 0xb7, 0x8a, 0x71, 0xe2, 0xcc, 0x95, 0xfe,
		0xa5, 0x60, 0x31, 0x2f, 0x8e, 0x91, 0x9b, 0x5b, 0xdd, 0x92, 0xee, 0x15, 0xdf, 0x2d, 0xb9, 0xd5,
		0x6c, 0x6e, 0x36, 0xb1, 0x2d, 0xb1, 0x2d, 0x0d, 0xe0, 0xc6, 0x7c, 0xac, 0x1c, 0x22, 0xdd, 0xd6,
		0x34, 0xb7, 0x40, 0xbb, 0x15, 0xde, 0x9d, 0xa8, 0x87, 0xc3, 0xbc, 0x0b, 0x68, 0xa2, 0xc5, 0x1a,
		0x0a, 0x4d, 0xb4, 0x64, 0xa3, 0xa1, 0x89, 0x2a, 0x32, 0x1c, 0x9a, 0x28, 0x18, 0x01, 0x9b, 0x60,
		0x11, 0x9a, 0x68, 0xf9, 0x1c, 0x01, 0x9a, 0x68, 0xd1, 0x1f, 0x68, 0xa2, 0xe5, 0x1a, 0x0d, 0x4d,
		0x54, 0x17, 0xc6, 0x41, 0x13, 0x55, 0xb0, 0x25, 0xa1, 0x89, 0x62, 0x5b, 0x56, 0x64, 0x5b, 0x42,
		0x13, 0x2d, 0xe4, 0x03, 0x4d, 0xd4, 0x38, 0xb7, 0x60, 0x5f, 0xce, 0x11, 0x95, 0x89, 0x28, 0x3a,
		0x33, 0x17, 0xaa, 0x68, 0x11, 0x66, 0x42, 0x15, 0x2d, 0x71, 0xa1, 0x42, 0x15, 0x2d, 0x73, 0x83,
		0x41, 0x15, 0x55, 0x6c, 0x38, 0x54, 0xd1, 0xea, 0x85, 0x8b, 0x0c, 0x55, 0xd1, 0x13, 0x3f, 0x74,
		0xe3, 0x6b, 0x46, 0xaa, 0xe8, 0x0e, 0x28, 0xb5, 0x41, 0x96, 0x51, 0xad, 0x58, 0x23, 0xde, 0xbd,
		0x2a, 0xb7, 0x93, 0x71, 0x17, 0xab, 0xa5, 0x66, 0x39, 0x35, 0xca, 0x55, 0xf3, 0x16, 0xcf, 0xce,
		0x56, 0x1f, 0x67, 0x8f, 0x97, 0x68, 0x93, 0x2b, 0xba, 0xa8, 0x84, 0xf6, 0x20, 0x8c, 0x71, 0xd1,
		0x10, 0x3c, 0x44, 0x6f, 0xbf, 0x62, 0x11, 0x10, 0x0d, 0xfe, 0x28, 0x5b, 0x42, 0x04, 0xe3, 0xec,
		0xae, 0x9f, 0xc8, 0x96, 0x94, 0xb4, 0x5a, 0x15, 0xd8, 0xfb, 0x7e, 0xd8, 0x0e, 0xc4, 0x85, 0x08,
		0xa9, 0x9d, 0x80, 0xd9, 0xfb, 0xee, 0xd5, 0x92, 0x65, 0xf5, 0x37, 0x8d, 0xc6, 0xd6, 0x76, 0xa3,
		0xb1, 0xbe, 0xbd, 0xb9, 0xbd, 0xbe, 0xd3, 0x6c, 0xd6, 0xb7, 0x28, 0x0d, 0xe6, 0xb3, 0x7b, 0xb1,
		0x27, 0x62, 0xe1, 0xbd, 0xbb, 0xb6, 0xdf, 0x5a, 0xe1, 0x34, 0x08, 0x28, 0x9a, 0xf6, 0x31, 0x11,
		0x31, 0xa9, 0xa3, 0x42, 0x2a, 0x3b, 0x93, 0x28, 0xeb, 0x60, 0xcc, 0x36, 0x08, 0x31, 0x0c, 0x7e,
		0xcc, 0x82, 0x06, 0x9d, 0xd0, 0xef, 0xbc, 0xf5, 0x5a, 0xa0, 0x19, 0x9c, 0xa8, 0x81, 0x12, 0x53,
		0x30, 0x22, 0x00, 0x44, 0xbc, 0x00, 0x48, 0x2f, 0xf8, 0xe8, 0xdb, 0xf2, 0x7a, 0xae, 0xac, 0x09,
		0x64, 0x6c, 0x71, 0x25, 0x63, 0xd7, 0x99, 0xa6, 0x0b, 0xeb, 0x24, 0xd0, 0x7b, 0xa4, 0x64, 0x7f,
		0x3d, 0x17, 0xa1, 0xf6, 0x14, 0x6f, 0x02, 0x00, 0xbb, 0x38, 0x32, 0x5b, 0x5b, 0x9b, 0xe9, 0xd5,
		0xb5, 0x14, 0xeb, 0xac, 0x5f, 0xad, 0x97, 0xf3, 0xe3, 0xdd, 0x19, 0x0a, 0xbe, 0x3d, 0xea, 0x7d,
		0x1c, 0xb4, 0x8f, 0x96, 0x07, 0xdd, 0x8e, 0xba, 0xfd, 0xd6, 0x4b, 0x0a, 0x40, 0x47, 0x2c, 0x6b,
		0x61, 0x39, 0x2b, 0x21, 0x5b, 0x64, 0x44, 0xc2, 0x0d, 0xaa, 0x39, 0x07, 0x2b, 0x39, 0x05, 0x4f,
		0x5c, 0x85, 0x2f, 0x10, 0x53, 0x5a, 0xf6, 0xae, 0x48, 0xc6, 0xb1, 0x3f, 0x21, 0x15, 0x50, 0xe6,
		0xf0, 0xd2, 0x09, 0xc7, 0xc1, 0xd4, 0x13, 0x96, 0x3c, 0x17, 0xd6, 0x5d, 0xd2, 0x64, 0x8d, 0xa3,
		0x50, 0xba, 0x7e, 0x28, 0x62, 0x2b, 0xdd, 0x32, 0xd9, 0x9f, 0x9a, 0xb1, 0x2c, 0xab, 0xdb, 0x6f,
		0x1d, 0x87, 0xd9, 0x6a, 0xf0, 0x13, 0x2b, 0x99, 0x88, 0xb1, 0x7f, 0xea, 0x0b, 0xcf, 0x92, 0x91,
		0x75, 0x22, 0x2c, 0x37, 0xb4, 0x8e, 0x3a, 0xe9, 0x1f, 0xa1, 0xb2, 0xc9, 0x08, 0x66, 0x50, 0x2d,
		0xe3, 0x91, 0xb7, 0xb4, 0x44, 0x08, 0xc5, 0xca, 0x94, 0xd3, 0xa1, 0x56, 0xe0, 0xa9, 0xec, 0x55,
		0x8c, 0x10, 0x9c, 0x42, 0x08, 0xae, 0xed, 0xea, 0xc3, 0x4a, 0x45, 0x03, 0x44, 0xa4, 0x06, 0x7e,
		0x12, 0x83, 0x46, 0xe8, 0x66, 0xa3, 0x2a, 0xe8, 0x81, 0x52, 0xf5, 0xd0, 0xa1, 0x61, 0xf3, 0x6a,
		0x1e, 0x5a, 0x42, 0x62, 0x28, 0x89, 0xe6, 0xa1, 0x23, 0xda, 0x6b, 0x36, 0x28, 0xd4, 0x62, 0x90,
		0xaa, 0xb1, 0xa0, 0xc2, 0xfc, 0xc9, 0xd5, 0x44, 0x90, 0x23, 0xf7, 0xd4, 0x6a, 0x18, 0xaa, 0x25,
		0x01, 0xeb, 0x1e, 0x9a, 0x61, 0x27, 0xe3, 0x88, 0x40, 0x35, 0xc3, 0x8d, 0x13, 0xcb, 0xcc, 0xd1,
		0xbc, 0x23, 0x68, 0x14, 0x2a, 0x92, 0x29, 0x44, 0xa4, 0x54, 0x68, 0x48, 0xb2, 0x90, 0x90, 0xb2,
		0xe4, 0x4e, 0xaa, 0x10, 0x90, 0x87, 0xe8, 0x4e, 0xa8, 0x90, 0xaf, 0xda, 0xc9, 0x17, 0x64, 0x0a,
		0xed, 0x72, 0xd4, 0x11, 0xe1, 0xf4, 0x42, 0xc4, 0x2e, 0x11, 0xc1, 0x38, 0x8f, 0xba, 0x1a, 0x04,
		0x6c, 0x69, 0x87, 0xd3, 0x0b, 0x3a, 0x08, 0x38, 0x88, 0xfa, 0x32, 0xf6, 0xc3, 0x33, 0x5a, 0x47,
		0x0f, 0xeb, 0xe9, 0x1a, 0xea, 0x76, 0x0e, 0x7e, 0xa3, 0x74, 0xda, 0x50, 0x4f, 0x8d, 0x6a, 0x1d,
		0xb5, 0x5b, 0x94, 0x8c, 0xda, 0xc8, 0x8c, 0xea, 0xdb, 0xc8, 0x90, 0x5d, 0x59, 0xd4, 0x9d, 0xcc,
		0x43, 0x11, 0x5a, 0xd1, 0xd9, 0xba, 0x21, 0x35, 0x6c, 0x36, 0x5d, 0x35, 0x6f, 0xad, 0x0d, 0x42,
		0x06, 0x65, 0x1b, 0xfe, 0xad, 0xb5, 0x8e, 0xd3, 0x2c, 0x0a, 0x9c, 0xe6, 0x45, 0x05, 0x51, 0x84,
		0x46, 0x8b, 0x77, 0x4a, 0x2d, 0xdc, 0x11, 0xe3, 0x23, 0xc6, 0x47, 0x8c, 0x8f, 0x18, 0x1f, 0x31,
		0x3e, 0x62, 0xfc, 0x5b, 0xa8, 0xe3, 0x7b, 0x22, 0x94, 0xbe, 0xbc, 0x8e, 0xc5, 0x29, 0xa5, 0x18,
		0x9f, 0x40, 0x9d, 0xa5, 0xdd, 0x99, 0x3f, 0x9a, 0x77, 0x6e, 0x22, 0xe8, 0xe5, 0x54, 0xf6, 0xfa,
		0x87, 0x7b, 0xa3, 0xde, 0x61, 0xeb, 0xff, 0xff, 0xb1, 0x3d, 0xea, 0xf6, 0x5b, 0xa3, 0xc1, 0x9f,
		0x87, 0x6d, 0x2a, 0xa0, 0x98, 0x75, 0xe8, 0x4d, 0x48, 0xf5, 0x50, 0xa7, 0xd5, 0xd8, 0x21, 0x7f,
		0x8b, 0x1f, 0x8e, 0x5a, 0xef, 0xb3, 0xf7, 0x47, 0xa7, 0x9e, 0x9f, 0x50, 0x7f, 0x0e, 0xa2, 0x2f,
		0x2d, 0xdd, 0x7a, 0x9f, 0x36, 0x46, 0xed, 0x3f, 0x06, 0xed, 0x83, 0xdd, 0xf6, 0xee, 0x28, 0x0b,
		0x79, 0xf1, 0xfe, 0xd8, 0xbe, 0xbf, 0xc3, 0xa3, 0xf6, 0x5e, 0xe7, 0x0f, 0xbc, 0x41, 0x3e, 0x6f,
		0xf0, 0x6e, 0x29, 0x08, 0xde, 0x1e, 0x9f, 0xb7, 0x37, 0x38, 0x6a, 0xed, 0xed, 0x75, 0xde, 0x8f,
		0xda, 0x07, 0x1f, 0x3a, 0x07, 0xed, 0xf6, 0x51, 0xe7, 0xe0, 0x83, 0x8d, 0x06, 0x32, 0x2b, 0x9f,
		0x21, 0x84, 0xcb, 0x4a, 0x5d, 0x19, 0x69, 0xf8, 0xa4, 0xd3, 0xf0, 0x75, 0x37, 0x73, 0xa4, 0x9a,
		0x79, 0xaf, 0xb1, 0x0d, 0x63, 0x35, 0xb2, 0xed, 0x65, 0xec, 0x9e, 0x9e, 0xfa, 0x63, 0x47, 0x84,
		0x67, 0x7e, 0x28, 0x84, 0xd6, 0x43, 0xfe, 0x9b, 0x13, 0x8d, 0x7b, 0x8c, 0x42, 0x26, 0xbe, 0x16,
		0x03, 0x90, 0x89, 0x7f, 0xcb, 0x18, 0x64, 0xe2, 0x3f, 0x60, 0x10, 0x32, 0xf1, 0xc1, 0xfb, 0x6e,
		0x1e, 0xbe, 0xf6, 0x4c, 0xfc, 0xac, 0x51, 0x12, 0x9d, 0x33, 0x7a, 0xfd, 0x6d, 0x9b, 0x34, 0xbb,
		0x32, 0x32, 0x2e, 0x8d, 0x92, 0x6b, 0x23, 0xe9, 0xe2, 0xa8, 0xb9, 0x3a, 0xb2, 0x2e, 0x8f, 0xac,
		0xeb, 0xa3, 0xea, 0x02, 0x89, 0x48, 0x3f, 0x9a, 0x71, 0x47, 0xb7, 0x6b, 0x5c, 0x76, 0x91, 0xf4,
		0x8e, 0x9d, 0xe9, 0x34, 0x5a, 0x25, 0xe2, 0x30, 0xc9, 0x39, 0x4e, 0x8a, 0x0e, 0x94, 0xb4, 0x23,
		0xa5, 0xea, 0x50, 0xc9, 0x3b, 0x56, 0xf2, 0x0e, 0x96, 0xba, 0xa3, 0xa5, 0xe1, 0x70, 0x89, 0x38,
		0x5e, 0x72, 0x0e, 0x38, 0x37, 0x28, 0xf0, 0xc3, 0x2f, 0xf4, 0x50, 0x61, 0x01, 0xa5, 0x99, 0x75,
		0xc4, 0xf6, 0x1b, 0x2d, 0xd7, 0x4c, 0xd6, 0x45, 0x53, 0x76, 0xd5, 0x2c, 0x5c, 0x36, 0x75, 0xd7,
		0xcd, 0xc6, 0x85, 0xb3, 0x71, 0xe5, 0x5c, 0x5c, 0x3a, 0x2d, 0xd7, 0x4e, 0xcc, 0xc5, 0x93, 0x75,
		0xf5, 0xb9, 0x61, 0xc9, 0xf4, 0xc4, 0x21, 0x21, 0x51, 0xff, 0x10, 0x96, 0x73, 0x4b, 0x89, 0xee,
		0x53, 0x9a, 0x54, 0x80, 0x3c, 0x25, 0xe0, 0x40, 0x0d, 0x58, 0x51, 0x04, 0x2e, 0x54, 0x81, 0x1d,
		0x65, 0x60, 0x47, 0x1d, 0xb8, 0x51, 0x08, 0x9a, 0x54, 0x82, 0x28, 0xa5, 0x20, 0x4f, 0x2d, 0x6e,
		0x53, 0x0c, 0xfa, 0x40, 0x74, 0x8b, 0x69, 0x50, 0x87, 0x21, 0xda, 0x84, 0x83, 0x0d, 0xf1, 0xe0,
		0x44, 0x40, 0x58, 0x12, 0x11, 0x6e, 0x84, 0x84, 0x2d, 0x31, 0x61, 0x4b, 0x50, 0xb8, 0x12, 0x15,
		0xda, 0x84, 0x85, 0x38, 0x71, 0x61, 0x43, 0x60, 0x72, 0x43, 0x5d, 0xef, 0xc2, 0x0f, 0xfd, 0x44,
		0xc6, 0xae, 0xf4, 0x2f, 0x85, 0x73, 0x16, 0x47, 0xd3, 0x49, 0xc2, 0x07, 0xce, 0x16, 0x3e, 0xe3,
		0xfe, 0xdb, 0x60, 0x82, 0x10, 0x3c, 0x48, 0x0f, 0x3b, 0xf2, 0xc3, 0x91, 0x04, 0xb1, 0x26, 0x43,
		0x5c, 0x49, 0x11, 0x7b, 0x72, 0xc4, 0x9e, 0x24, 0x71, 0x27, 0x4b, 0x3c, 0x48, 0x13, 0x13, 0xf2,
		0xc4, 0x8e, 0x44, 0xad, 0x92, 0xa9, 0x19, 0xf9, 0xe0, 0x07, 0x7e, 0x2b, 0x54, 0x6a, 0x7e, 0x13,
		0xcc, 0xd0, 0x83, 0x17, 0x91, 0x62, 0x4b, 0xa8, 0x38, 0x13, 0x2b, 0x23, 0x08, 0x16, 0x77, 0xa2,
		0x65, 0x0c, 0xe1, 0x32, 0x86, 0x78, 0x99, 0x42, 0xc0, 0x78, 0x11, 0x31, 0x66, 0x84, 0x8c, 0x2d,
		0x31, 0xcb, 0x0d, 0x3f, 0xf1, 0xa5, 0xe3, 0x87, 0x9e, 0xb8, 0xe2, 0x0b, 0x99, 0x0b, 0xbf, 0x75,
		0x73, 0x2b, 0x4c, 0x91, 0x86, 0x46, 0x5b, 0xeb, 0xca, 0x91, 0x36, 0x13, 0xc8, 0x9b, 0x51, 0x24,
		0xce, 0x14, 0x32, 0x67, 0x1c, 0xa9, 0x33, 0x8e, 0xdc, 0x99, 0x46, 0xf2, 0x78, 0x92, 0x3d, 0xa6,
		0xa4, 0x2f, 0x5f, 0x3c, 0x64, 0xda, 0xa0, 0x3f, 0xdb, 0x6b, 0x04, 0xc2, 0x3d, 0xa5, 0xd1, 0x3a,
		0xfd, 0xb9, 0x24, 0xaa, 0xbe, 0xcd, 0xf8, 0x1e, 0x0e, 0xe7, 0x8d, 0x03, 0xd7, 0xd6, 0x66, 0xad,
		0xfa, 0x6a, 0x37, 0xd4, 0xf6, 0x05, 0xe0, 0x08, 0x50, 0x74, 0xff, 0xaa, 0xd1, 0x3b, 0xca, 0xbe,
		0x30, 0x0c, 0xd2, 0xdd, 0x9c, 0xb2, 0x10, 0xf4, 0x41, 0x08, 0x87, 0x10, 0x0e, 0x21, 0x1c, 0x42,
		0x38, 0x84, 0x70, 0x08, 0xe1, 0x10, 0xc2, 0xd1, 0x5f, 0x3c, 0x5c, 0xf5, 0xfb, 0xfc, 0x06, 0xf8,
		0xeb, 0xf8, 0x77, 0xfc, 0x1f, 0x77, 0x3d, 0xff, 0x36, 0x29, 0x5c, 0x67, 0x7e, 0x1b, 0xdc, 0xc9,
		0xa1, 0x49, 0x24, 0xd1, 0x48, 0xb2, 0x68, 0x1a, 0x69, 0x34, 0x96, 0x3c, 0x1a, 0x4b, 0x22, 0x4d,
		0x25, 0x93, 0xbc, 0x49, 0x25, 0x73, 0x72, 0x99, 0x2f, 0x2a, 0xf6, 0xe7, 0x04, 0x77, 0xbc, 0xce,
		0xd4, 0x0f, 0xe5, 0x1b, 0x13, 0x3c, 0xce, 0x9c, 0xa2, 0x35, 0x0d, 0xb8, 0x95, 0x23, 0x37, 0x3c,
		0x13, 0xa4, 0x86, 0x95, 0x3e, 0xe7, 0x63, 0x06, 0x03, 0xc8, 0x5e, 0xcc, 0xbe, 0x1f, 0x1a, 0x43,
		0x69, 0xf2, 0x9b, 0xca, 0x66, 0xe3, 0xf2, 0x8f, 0x09, 0xee, 0xdc, 0xd7, 0x5e, 0xec, 0x8e, 0xa5,
		0x1f, 0x85, 0xbb, 0xfe, 0x99, 0x2f, 0x13, 0x03, 0x6f, 0xf0, 0x40, 0x9c, 0x65, 0x95, 0xa1, 0xf6,
		0x5b, 0xeb, 0xd4, 0x0d, 0x12, 0x61, 0xcc, 0xdd, 0x7d, 0xfb, 0xc5, 0x20, 0xc8, 0x70, 0xaf, 0xcc,
		0x85, 0x8c, 0xcd, 0x3a, 0x30, 0x03, 0x98, 0x81, 0xb8, 0x08, 0x77, 0x91, 0x7f, 0x86, 0x2f, 0xf0,
		0xfc, 0xe1, 0x33, 0x1f, 0x07, 0x4a, 0x89, 0x90, 0xe6, 0x9c, 0x79, 0xa4, 0x37, 0xc3, 0x5c, 0xe5,
		0xd8, 0x15, 0xa7, 0xee, 0x34, 0x90, 0x46, 0x44, 0xa0, 0x76, 0xe6, 0xe6, 0x78, 0xeb, 0x7e, 0x43,
		0x9c, 0x9e, 0x51, 0xb8, 0x0d, 0x9c, 0x9e, 0x11, 0x86, 0x5d, 0x9c, 0x9e, 0x51, 0x06, 0x00, 0x9c,
		0x9e, 0x31, 0xbb, 0x31, 0x9c, 0x9e, 0x81, 0xe3, 0x17, 0xbe, 0xa8, 0xcc, 0x3b, 0x3d, 0x3b, 0x89,
		0xa2, 0x40, 0xb8, 0xa1, 0x41, 0xe7, 0x67, 0xf5, 0x3a, 0x02, 0x78, 0x58, 0x6e, 0x3a, 0x24, 0xd9,
		0xad, 0x30, 0x8c, 0xa4, 0x2b, 0xfd, 0x88, 0xf7, 0x81, 0x9e, 0x9d, 0x8c, 0xcf, 0xc5, 0x85, 0x3b,
		0x99, 0x57, 0x9b, 0xd5, 0xa2, 0x89, 0x08, 0xc7, 0x59, 0x98, 0xe2, 0x84, 0x42, 0x7e, 0x8d, 0xe2,
		0x2f, 0x8e, 0x1f, 0x26, 0xd2, 0x0d, 0xc7, 0xa2, 0x76, 0xfb, 0x37, 0x92, 0x3b, 0xbf, 0x53, 0x9b,
		0xc4, 0x91, 0x8c, 0xc6, 0x51, 0x90, 0xe4, 0xdf, 0x6a, 0x33, 0xcf, 0x5f, 0x73, 0x63, 0xe1, 0x26,
		0xd9, 0xcf, 0x5a, 0x90, 0x78, 0x27, 0xb5, 0x20, 0x71, 0x1d, 0x79, 0x3d, 0x11, 0x49, 0xfe, 0x2d,
		0xfd, 0x92, 0xfd, 0xaa, 0x16, 0x4d, 0xdc, 0xbf, 0xa6, 0xc2, 0x49, 0xbf, 0xca, 0xd8, 0x3d, 0x3d,
		0xf5, 0xc7, 0x8e, 0x08, 0xcf, 0xfc, 0x50, 0x88, 0xd8, 0x0f, 0xcf, 0x6a, 0x32, 0xb8, 0x4c, 0xd2,
		0x1f, 0xb5, 0xc0, 0x0f, 0xbf, 0xd4, 0x16, 0xd3, 0x62, 0x16, 0x5f, 0x6a, 0xf7, 0x76, 0x3d, 0xad,
		0x2d, 0x35, 0xf0, 0xaa, 0x71, 0x2e, 0x2f, 0x9a, 0xbd, 0x34, 0x19, 0x4f, 0xc7, 0x32, 0x9c, 0xfb,
		0x90, 0x5e, 0xfe, 0xce, 0x0e, 0x66, 0xef, 0xa3, 0x33, 0x7f, 0x1d, 0xa3, 0x5b, 0xbf, 0x4e, 0x6e,
		0xff, 0xc6, 0xe8, 0x70, 0xf1, 0xbe, 0xf2, 0x6f, 0xa3, 0x5e, 0xf6, 0xbe, 0x46, 0xad, 0xf4, 0x7d,
		0x65, 0x3f, 0x47, 0xdd, 0xc4, 0x3b, 0x19, 0x75, 0x13, 0x37, 0xf5, 0xbe, 0xc9, 0xe2, 0x4b, 0xfa,
		0xdf, 0xec, 0x17, 0xa3, 0x5e, 0xf6, 0xb6, 0xd2, 0x6f, 0x83, 0xd9, 0xcb, 0x6a, 0xdf, 0xbc, 0xab,
		0xd1, 0x20, 0xb8, 0x4c, 0xd2, 0x1f, 0xa3, 0xae, 0x1f, 0x7e, 0x19, 0xf5, 0xa7, 0x27, 0xd9, 0x6f,
		0xcc, 0xfe, 0x3b, 0x6a, 0xad, 0xbc, 0xa9, 0x0f, 0xd9, 0x8b, 0x9a, 0xfd, 0x66, 0xf6, 0x7d, 0xd4,
		0xcf, 0xde, 0x13, 0xca, 0x1d, 0x61, 0x31, 0x77, 0xb7, 0x91, 0x06, 0xb0, 0x9c, 0xf3, 0xd9, 0xed,
		0xae, 0x9f, 0xc8, 0x96, 0x94, 0x4c, 0x3b, 0x1c, 0xed, 0xfb, 0x61, 0x3b, 0x10, 0x69, 0x38, 0xca,
		0xf4, 0x48, 0xd6, 0xde, 0x77, 0xaf, 0x96, 0xee, 0xa0, 0xfe, 0xa6, 0xd1, 0xd8, 0xda, 0x6e, 0x34,
		0xd6, 0xb7, 0x37, 0xb7, 0xd7, 0x77, 0x9a, 0xcd, 0xfa, 0x56, 0x9d, 0x61, 0xda, 0x9a, 0xdd, 0x8b,
		0x3d, 0x11, 0x0b, 0xef, 0x5d, 0xba, 0x35, 0xc2, 0x69, 0x10, 0x70, 0xbe, 0x85, 0x8f, 0x89, 0x88,
		0x59, 0x9e, 0x89, 0x73, 0x43, 0x52, 0xe6, 0xc4, 0xbb, 0x8a, 0x84, 0xdb, 0x66, 0xd9, 0x49, 0xa1,
		0x0a, 0x14, 0x9b, 0x17, 0xb9, 0xfe, 0x86, 0x96, 0xe7, 0x55, 0x84, 0x7e, 0xae, 0x90, 0x5f, 0x15,
		0xa8, 0xe7, 0x34, 0x84, 0xc3, 0x60, 0x58, 0xe7, 0x81, 0xe5, 0xf4, 0x91, 0x91, 0x01, 0x2a, 0x32,
		0xeb, 0xf3, 0xc4, 0xb2, 0xaf, 0x13, 0x06, 0x50, 0x95, 0x6c, 0x30, 0x06, 0x50, 0x29, 0x36, 0x1e,
		0x03, 0xa8, 0x34, 0xdd, 0x00, 0x06, 0x50, 0x81, 0x73, 0x98, 0x13, 0x8d, 0xb1, 0x1b, 0x40, 0x95,
		0x86, 0x32, 0x8e, 0xef, 0xf1, 0x1d, 0x3e, 0xb5, 0xb8, 0x01, 0x9e, 0x83, 0xa7, 0xd6, 0x31, 0x78,
		0x0a, 0x84, 0xca, 0x64, 0x62, 0xc5, 0x9d, 0x60, 0x19, 0x43, 0xb4, 0x8c, 0x21, 0x5c, 0xa6, 0x10,
		0x2f, 0x5e, 0x04, 0x8c, 0x19, 0x11, 0xcb, 0x17, 0x09, 0xdb, 0xac, 0xe8, 0x1c, 0xf5, 0xbd, 0x48,
		0x4a, 0xe1, 0x39, 0x7f, 0x4d, 0x5d, 0x8f, 0x23, 0xee, 0x2f, 0x94, 0xa2, 0x37, 0x0c, 0x6d, 0x3f,
		0x74, 0xa5, 0x14, 0x71, 0xc8, 0xb6, 0x54, 0xd3, 0x7e, 0xf5, 0xea, 0xf3, 0xba, 0xb3, 0x33, 0xfc,
		0xdf, 0xe7, 0xba, 0xb3, 0x33, 0x9c, 0x7d, 0xad, 0x67, 0xff, 0x99, 0x7d, 0xdf, 0xf8, 0xbc, 0xee,
		0x34, 0x16, 0xdf, 0x9b, 0x9f, 0xd7, 0x9d, 0xe6, 0xf0, 0xf5, 0xf1, 0xf1, 0xda, 0xeb, 0xbf, 0x37,
		0xbf, 0x3d, 0xfe, 0x2f, 0xf2, 0x43, 0xde, 0x21, 0x90, 0xb7, 0xc4, 0xb5, 0x27, 0xae, 0x64, 0xec,
		0x3a, 0xd3, 0x30, 0x91, 0xee, 0x49, 0xc0, 0x14, 0x83, 0xbf, 0x9e, 0x0b, 0xbe, 0xbb, 0xdf, 0x80,
		0x16, 0xff, 0x6b, 0x6b, 0x35, 0x79, 0x3d, 0x11, 0xd6, 0xaf, 0xd6, 0xcb, 0x41, 0x7b, 0xd4, 0xed,
		0x1c, 0xfc, 0x36, 0xea, 0xec, 0xbe, 0x44, 0xbf, 0x7f, 0x52, 0xe1, 0x50, 0xb6, 0x49, 0xd0, 0xed,
		0x9f, 0x6e, 0x70, 0xf4, 0xc0, 0x2e, 0x42, 0x37, 0x16, 0x0d, 0xef, 0x65, 0x57, 0x24, 0xe3, 0xd8,
		0x9f, 0xb0, 0xaf, 0x8d, 0x5a, 0x81, 0xe9, 0x4e, 0x38, 0x0e, 0xa6, 0x9e, 0xb0, 0xe4, 0xb9, 0xb0,
		0x02, 0x3f, 0xfc, 0x62, 0x75, 0x76, 0xad, 0x53, 0x5f, 0x04, 0x9e, 0x15, 0x85, 0xc1, 0xb5, 0x95,
		0x02, 0x44, 0xf6, 0xff, 0x92, 0xe9, 0x89, 0x33, 0xe8, 0x7e, 0xb2, 0xb2, 0xd5, 0xf8, 0xd5, 0x4d,
		0x2c, 0xd7, 0x1a, 0xb4, 0x8f, 0xc3, 0x6e, 0xfa, 0x57, 0x7c, 0x4f, 0x84, 0xd2, 0x3f, 0xf5, 0x45,
		0xcc, 0x1d, 0x4b, 0x0c, 0xea, 0x2f, 0xb0, 0x0c, 0xf3, 0xde, 0xd2, 0xca, 0x35, 0xa0, 0x22, 0xd7,
		0xc4, 0xe6, 0x02, 0x2b, 0xa8, 0x5f, 0xf0, 0xa6, 0x44, 0xe1, 0x32, 0x2c, 0x37, 0xd8, 0xea, 0x21,
		0x92, 0xbd, 0xab, 0xce, 0xd5, 0x66, 0x47, 0xc9, 0x92, 0xa3, 0x60, 0xbc, 0x7a, 0x1a, 0x9e, 0xdd,
		0x02, 0xce, 0xc3, 0x55, 0x98, 0x8d, 0xf3, 0x70, 0x8d, 0x8b, 0x1d, 0xe7, 0xe1, 0x34, 0x22, 0x03,
		0x9c, 0x87, 0x93, 0x23, 0xff, 0x38, 0x0f, 0x07, 0xbf, 0xb9, 0x77, 0x91, 0xf0, 0x3f, 0x0f, 0x17,
		0xe1, 0xf4, 0x42, 0xc4, 0x2e, 0x53, 0x1d, 0x22, 0x3f, 0x0f, 0x6f, 0x30, 0xb4, 0xbd, 0x1d, 0x4e,
		0x2f, 0xf8, 0x7a, 0xac, 0x41, 0xd4, 0x97, 0xb1, 0x1f, 0x9e, 0xf1, 0xee, 0x49, 0xb5, 0x9e, 0xee,
		0x81, 0xc3, 0x5e, 0xe7, 0x60, 0x30, 0x1a, 0xf4, 0x46, 0xd9, 0x17, 0xce, 0xe7, 0x61, 0xf5, 0xf4,
		0x76, 0xf6, 0x3f, 0x76, 0x07, 0x9d, 0x51, 0xeb, 0xfd, 0xfb, 0x76, 0xbf, 0xcf, 0xf9, 0x66, 0x36,
		0xd2, 0x9b, 0xf9, 0x78, 0xf0, 0xdb, 0x41, 0xef, 0xf7, 0x03, 0x1b, 0x1d, 0xe7, 0x94, 0xee, 0xed,
		0x4e, 0xc8, 0xbb, 0xcd, 0xfd, 0xea, 0x26, 0x60, 0x53, 0x5a, 0x77, 0x7f, 0x70, 0xb9, 0x0a, 0x4f,
		0xac, 0x7b, 0x7a, 0xe7, 0xfb, 0xf9, 0xad, 0xb5, 0x01, 0x2d, 0x16, 0x16, 0xb3, 0x8f, 0x00, 0x90,
		0x97, 0xa5, 0xf9, 0x63, 0x66, 0x5e, 0xd6, 0xe0, 0xcf, 0xc3, 0x36, 0x32, 0xb3, 0x28, 0x04, 0x98,
		0xc8, 0xcc, 0x22, 0x7d, 0x43, 0x3f, 0xc8, 0xcc, 0x9a, 0xed, 0x23, 0xe4, 0x66, 0x69, 0x78, 0x33,
		0x95, 0xc8, 0xcd, 0xca, 0x4e, 0x07, 0x1f, 0x93, 0x08, 0x92, 0xe5, 0x8e, 0x30, 0x3c, 0x52, 0x34,
		0x15, 0xe0, 0x2d, 0xe4, 0x65, 0xb1, 0xc6, 0xfc, 0x02, 0x37, 0x24, 0x72, 0xb2, 0x60, 0xb9, 0xc1,
		0x56, 0x23, 0x27, 0xab, 0xf2, 0x1c, 0xcd, 0x0e, 0xa2, 0xb1, 0x1b, 0x38, 0xfe, 0xc4, 0x71, 0x3d,
		0x2f, 0x16, 0x49, 0xc2, 0x38, 0x35, 0xeb, 0xf6, 0x9d, 0x20, 0x43, 0x4b, 0x85, 0xd9, 0xc8, 0xd0,
		0xd2, 0xb8, 0xe6, 0x91, 0xa1, 0x45, 0x23, 0x46, 0x40, 0x86, 0x16, 0xb9, 0x30, 0x00, 0x19, 0x5a,
		0x60, 0x3b, 0xf7, 0x2e, 0x12, 0xfe, 0x19, 0x5a, 0xfe, 0xe4, 0xb2, 0xb1, 0x60, 0x39, 0x4e, 0x18,
		0x39, 0xff, 0x8d, 0x42, 0x81, 0xd6, 0x25, 0x8a, 0xd9, 0x03, 0x5a, 0x97, 0xfc, 0xfc, 0x5f, 0x7c,
		0xf5, 0x8f, 0xcf, 0xc7, 0xc7, 0x93, 0xbf, 0x0f, 0xbe, 0xa5, 0x3f, 0xbb, 0xdf, 0x86, 0xff, 0x7a,
		0xfd, 0x6f, 0xae, 0xbe, 0x32, 0xbd, 0xb1, 0xe3, 0xe3, 0xb5, 0xe1, 0x3f, 0xd1, 0x8e, 0x05, 0x6e,
		0x65, 0x79, 0x61, 0x60, 0x48, 0x99, 0xe6, 0x3b, 0xc0, 0x90, 0x32, 0xda, 0xb7, 0x80, 0x21, 0x65,
		0x8a, 0x9e, 0x38, 0x12, 0x90, 0x34, 0x7f, 0xcc, 0x4a, 0x40, 0x9a, 0x07, 0xd2, 0xb3, 0xa1, 0x3e,
		0x6f, 0x17, 0x69, 0x14, 0xdd, 0xde, 0xfb, 0x56, 0x77, 0xd4, 0x39, 0x44, 0x4a, 0x12, 0x85, 0x40,
		0x0a, 0x29, 0x49, 0xa4, 0x6f, 0xe8, 0x81, 0x94, 0xa4, 0x1f, 0xed, 0x2c, 0x24, 0x29, 0x69, 0x78,
		0x57, 0xe6, 0x27, 0x29, 0x45, 0x63, 0x37, 0xb0, 0x3a, 0x87, 0xd6, 0x5c, 0x41, 0xfa, 0xa9, 0xd4,
		0x88, 0xe3, 0xd0, 0xbd, 0xf3, 0x17, 0x91, 0xaf, 0x44, 0xd2, 0x03, 0x20, 0x5f, 0x89, 0x97, 0x43,
		0x28, 0x67, 0x6f, 0x22, 0x75, 0x09, 0x96, 0x1b, 0x6c, 0x35, 0x52, 0x97, 0x2a, 0xcf, 0xdc, 0xec,
		0x0b, 0xf7, 0xca, 0xbf, 0x98, 0x5e, 0x38, 0x27, 0x6e, 0xe8, 0x7d, 0xf5, 0xbd, 0x6c, 0xd0, 0x2d,
		0xd3, 0xdc, 0xa5, 0xbb, 0xb7, 0x82, 0xe4, 0x25, 0x15, 0x66, 0x23, 0x79, 0x49, 0xe3, 0xa2, 0x47,
		0xf2, 0x12, 0x8d, 0x80, 0xe1, 0xff, 0x63, 0xef, 0xdd, 0x9b, 0xd3, 0x46, 0xb6, 0xf5, 0xe1, 0xff,
		0xf3, 0x29, 0x54, 0xaa, 0x73, 0x6a, 0xec, 0xbd, 0x47, 0xe6, 0x62, 0xf0, 0xad, 0x6a, 0xd7, 0x2e,
		0x12, 0xe3, 0xd9, 0xbc, 0xe3, 0xdb, 0xcf, 0xc6, 0xd9, 0x33, 0x65, 0x73, 0x28, 0x19, 0x35, 0xb6,
		0x4e, 0x84, 0xc4, 0x96, 0x9a, 0x8c, 0x7d, 0x12, 0x7f, 0xf7, 0xb7, 0x10, 0x20, 0x83, 0x81, 0xc4,
		0xa0, 0x5e, 0xad, 0x6e, 0xf1, 0xb8, 0xa6, 0x32, 0xd8, 0x89, 0xd5, 0xad, 0xee, 0xd5, 0xcf, 0x5a,
		0xeb, 0xe9, 0x75, 0x41, 0xf0, 0x92, 0x72, 0x3e, 0x01, 0x82, 0x97, 0x60, 0xef, 0x2c, 0x14, 0x92,
		0x1c, 0x04, 0x2f, 0x31, 0xc6, 0xba, 0x5e, 0x60, 0xf3, 0xdd, 0xb2, 0xc6, 0x31, 0x4b, 0x87, 0x1a,
		0x4e, 0xfd, 0x94, 0xf9, 0x0f, 0xb1, 0x91, 0x8c, 0x5b, 0x35, 0xc9, 0x2b, 0x7f, 0xe6, 0xe6, 0x80,
		0x4b, 0xfe, 0x6c, 0x7b, 0x83, 0xe1, 0x09, 0xae, 0x68, 0x4e, 0xfb, 0x9e, 0x84, 0x76, 0x87, 0xbb,
		0x81, 0x7f, 0xec, 0x3e, 0xb8, 0xba, 0x46, 0xbb, 0xcc, 0x22, 0x2b, 0x7b, 0xb0, 0xb9, 0xfb, 0x95,
		0x69, 0x19, 0x5c, 0xa1, 0xb1, 0x32, 0x9e, 0x3d, 0xe2, 0xf6, 0x13, 0x8e, 0x38, 0x8e, 0x38, 0x8e,
		0x78, 0x9e, 0xbc, 0x03, 0x7d, 0x67, 0x8d, 0x58, 0x5f, 0xca, 0xe3, 0x88, 0x08, 0x3b, 0xf8, 0x02,
		0x69, 0xfd, 0xe0, 0x9f, 0xc6, 0x01, 0x9d, 0xd5, 0xfe, 0x68, 0x9c, 0xdd, 0x9c, 0xb5, 0x3f, 0xd6,
		0xce, 0x8f, 0xff, 0xdd, 0x38, 0x6e, 0xfe, 0x0b, 0xa1, 0x76, 0x2a, 0xf8, 0xff, 0x08, 0xb5, 0x53,
		0xfa, 0x85, 0x56, 0x0a, 0xb5, 0x5b, 0x70, 0xc4, 0xe0, 0x3c, 0x65, 0xb0, 0x69, 0xb9, 0x8f, 0xb9,
		0xe3, 0xa1, 0xdd, 0xed, 0xba, 0x1d, 0x83, 0xf9, 0x0f, 0xae, 0xcf, 0x58, 0xe8, 0xfa, 0x0f, 0x46,
		0x8f, 0xf1, 0xd0, 0xed, 0xfc, 0x20, 0xb6, 0xe7, 0xce, 0x77, 0xa3, 0xf8, 0x87, 0xe3, 0xdb, 0x61,
		0x43, 0xd7, 0xdb, 0xe1, 0xbc, 0x2a, 0x03, 0x03, 0x91, 0x77, 0x5a, 0xeb, 0x07, 0xca, 0x13, 0x8a,
		0xf8, 0x3b, 0xcc, 0x1c, 0xfc, 0x02, 0xd6, 0x37, 0xbf, 0x56, 0x5c, 0x12, 0xb4, 0x16, 0xb2, 0x88,
		0x85, 0x5f, 0xed, 0x7b, 0x8f, 0xe5, 0x29, 0x14, 0x6f, 0xe1, 0x5b, 0x21, 0x2a, 0x4f, 0xc6, 0xb4,
		0x11, 0x95, 0x97, 0xa1, 0xfc, 0x23, 0x2a, 0x4f, 0x0d, 0x67, 0x02, 0x51, 0x79, 0xca, 0xf9, 0x0b,
		0x88, 0xca, 0x83, 0x15, 0xb4, 0x50, 0x48, 0x10, 0x95, 0xa7, 0x86, 0xa1, 0x83, 0xa8, 0x3c, 0xe9,
		0x5f, 0x88, 0xca, 0xcb, 0xf6, 0x25, 0x10, 0xb2, 0xa3, 0x2a, 0xb2, 0x22, 0x2a, 0x4f, 0x81, 0x23,
		0x8e, 0xa8, 0x3c, 0x1c, 0x71, 0x1c, 0xf1, 0x7c, 0x79, 0x07, 0xfa, 0xce, 0x1a, 0x51, 0x79, 0x94,
		0xc7, 0x11, 0x51, 0x79, 0xf0, 0x05, 0xd2, 0xfa, 0xc1, 0xef, 0x0a, 0x19, 0xba, 0x39, 0xbb, 0x39,
		0x6b, 0x5f, 0xd5, 0xaf, 0xeb, 0x57, 0x9f, 0x6b, 0x1f, 0x4f, 0xeb, 0x88, 0xd0, 0x53, 0x8b, 0x0b,
		0x40, 0x84, 0x9e, 0xd2, 0x2f, 0xb4, 0x72, 0x84, 0xde, 0x0f, 0x8e, 0x1b, 0x9c, 0xaa, 0x0c, 0x36,
		0x30, 0xf7, 0xd1, 0x7a, 0x93, 0x68, 0x9e, 0xd7, 0x2b, 0xe0, 0xd7, 0xc0, 0x9e, 0x45, 0x15, 0xb9,
		0xee, 0xfc, 0x99, 0x92, 0x5c, 0x6f, 0x62, 0x82, 0x16, 0x3d, 0x05, 0x01, 0x7c, 0x4a, 0xea, 0x0b,
		0x04, 0xf0, 0xe9, 0xa5, 0x3e, 0x24, 0x1f, 0x5a, 0xc4, 0xf4, 0x61, 0xe6, 0x60, 0x27, 0xb0, 0xbe,
		0xf9, 0xb5, 0xf5, 0xcc, 0x51, 0xc8, 0xb3, 0xc6, 0xd1, 0x7b, 0xa3, 0xf9, 0x23, 0x4e, 0x4f, 0xc6,
		0xb4, 0x11, 0xa7, 0x97, 0xa1, 0xa4, 0x23, 0x4e, 0x4f, 0x0d, 0x9f, 0x01, 0x71, 0x7a, 0xca, 0xb9,
		0x05, 0x88, 0xd3, 0x83, 0x65, 0xb3, 0x50, 0x48, 0xf4, 0x8f, 0xd3, 0x1b, 0xb8, 0xbe, 0xde, 0x21,
		0x7a, 0xfb, 0x1a, 0x4e, 0xfd, 0xca, 0xf6, 0x1f, 0x18, 0x6e, 0xe5, 0xe4, 0x2f, 0x7c, 0xae, 0x22,
		0xf4, 0x8a, 0x08, 0xdf, 0x51, 0x0c, 0x53, 0x11, 0xa1, 0xa7, 0xc0, 0x11, 0xcf, 0x55, 0x84, 0x5e,
		0xf9, 0xb0, 0x72, 0xb8, 0xb7, 0x5f, 0x3e, 0xac, 0xe2, 0xac, 0xe3, 0xac, 0xc3, 0x41, 0xd0, 0x78,
		0xd6, 0x08, 0xd5, 0xa3, 0x3c, 0x8e, 0x08, 0xd5, 0x83, 0x53, 0x90, 0xd6, 0x15, 0xfe, 0x79, 0xec,
		0x50, 0xbd, 0x79, 0xd5, 0xf8, 0x84, 0x98, 0x3c, 0x15, 0x9c, 0x7f, 0xc4, 0xe4, 0x29, 0xfd, 0x42,
		0xab, 0xc5, 0xe4, 0x8d, 0xcf, 0x15, 0xfc, 0xa5, 0x0c, 0x76, 0x0a, 0xa5, 0xf2, 0x96, 0x16, 0xe2,
		0xb2, 0x8d, 0x66, 0xdd, 0xd0, 0xf2, 0x02, 0x38, 0xaf, 0xb8, 0x6f, 0x20, 0xbe, 0x4e, 0x6b, 0x55,
		0x20, 0xfe, 0x5c, 0x22, 0x84, 0x0e, 0x33, 0x07, 0x6b, 0x80, 0xf5, 0xcd, 0xaf, 0xc5, 0x66, 0x86,
		0xac, 0x17, 0x70, 0x66, 0xb9, 0x7d, 0x6b, 0xd2, 0x8b, 0x5b, 0xdb, 0x68, 0xba, 0xf9, 0x57, 0x41,
		0x60, 0x9d, 0x8c, 0x69, 0x23, 0xb0, 0x2e, 0x43, 0xa1, 0x47, 0x60, 0x9d, 0x1a, 0xce, 0x02, 0x02,
		0xeb, 0x94, 0xf3, 0x07, 0x10, 0x58, 0x07, 0x7b, 0x67, 0xa1, 0x90, 0xe4, 0xa0, 0x00, 0x5e, 0xff,
		0x6b, 0x65, 0x62, 0xe5, 0x58, 0x7e, 0x60, 0xfd, 0x5f, 0xe0, 0x33, 0x8d, 0xc3, 0xec, 0x4a, 0x07,
		0x1a, 0xce, 0xfd, 0xd2, 0xe6, 0x9c, 0x85, 0xfa, 0x5e, 0xaa, 0x99, 0x5b, 0x5b, 0xb7, 0x45, 0xeb,
		0xb0, 0xf5, 0xfd, 0xb6, 0x64, 0x1d, 0xb6, 0x46, 0x1f, 0x4b, 0xf1, 0xff, 0x46, 0x9f, 0xcb, 0xb7,
		0x45, 0xab, 0x32, 0xf9, 0x5c, 0xbd, 0x2d, 0x5a, 0xd5, 0xd6, 0xf6, 0xdd, 0xdd, 0xce, 0xf6, 0xb7,
		0xdd, 0x97, 0xd5, 0x7f, 0x71, 0xeb, 0xbf, 0x6f, 0xef, 0xee, 0xfa, 0xdf, 0xce, 0x5f, 0x86, 0x7f,
		0x9e, 0xbe, 0xb4, 0xfe, 0xbe, 0xfd, 0x4f, 0x5d, 0x75, 0xe5, 0xf0, 0xc5, 0xee, 0xee, 0x76, 0x5a,
		0x7f, 0x33, 0xe1, 0xf0, 0x43, 0xad, 0x4c, 0x09, 0xc6, 0xa9, 0x1b, 0xf1, 0x1a, 0xe7, 0xa1, 0x9e,
		0xaa, 0xe5, 0xcc, 0xf5, 0xeb, 0x1e, 0x1b, 0xda, 0x4e, 0x9a, 0x46, 0x50, 0x99, 0x67, 0xf6, 0xd3,
		0xd4, 0x1b, 0x94, 0x0e, 0x2a, 0x95, 0xbd, 0xfd, 0x4a, 0xa5, 0xb8, 0xbf, 0xbb, 0x5f, 0x3c, 0xac,
		0x56, 0x4b, 0x7b, 0x25, 0x0d, 0xe3, 0xdc, 0xcc, 0x8b, 0xd0, 0x61, 0x21, 0x73, 0x3e, 0x3e, 0x9b,
		0x47, 0x86, 0x3f, 0xf0, 0x3c, 0x9d, 0x5f, 0xe1, 0x26, 0x62, 0xa1, 0x96, 0x21, 0x6d, 0x08, 0x58,
		0x92, 0xff, 0x0e, 0x08, 0x58, 0xca, 0xd6, 0xc5, 0xf8, 0x69, 0x60, 0xc5, 0x55, 0xfd, 0xec, 0xa2,
		0x59, 0x6f, 0x37, 0x2e, 0x11, 0xb3, 0xa4, 0x82, 0x27, 0x85, 0x98, 0x25, 0xa5, 0x5f, 0x68, 0xa5,
		0x98, 0xa5, 0xa9, 0xa3, 0x85, 0xb0, 0xa5, 0x0c, 0x36, 0x2b, 0xf7, 0x61, 0x4b, 0xa3, 0xab, 0x32,
		0xa3, 0x71, 0x69, 0x8c, 0x49, 0xa4, 0x45, 0x35, 0x87, 0x66, 0x62, 0x23, 0x8c, 0xbf, 0xec, 0xe8,
		0xce, 0xb7, 0xe7, 0x7f, 0x13, 0xc1, 0x4b, 0x4a, 0x2a, 0x01, 0x04, 0x2f, 0xe9, 0xa5, 0x13, 0xa8,
		0x4e, 0x27, 0x42, 0x98, 0x30, 0xf3, 0x1c, 0xcf, 0x1a, 0x21, 0x4c, 0x1b, 0x6f, 0xbd, 0x99, 0x5c,
		0xc7, 0xeb, 0xbc, 0xc4, 0x2c, 0x8b, 0x67, 0x8f, 0x40, 0x25, 0x19, 0xd3, 0x46, 0xa0, 0x52, 0x86,
		0x72, 0x8e, 0x40, 0x25, 0x35, 0x1c, 0x03, 0x04, 0x2a, 0x29, 0x67, 0xfb, 0x23, 0x50, 0x09, 0x56,
		0xcd, 0x42, 0x21, 0xc9, 0x41, 0x05, 0x30, 0x5f, 0x4f, 0x02, 0x22, 0x89, 0x4c, 0xd2, 0xb1, 0x49,
		0xe7, 0x58, 0x6c, 0x70, 0x75, 0x96, 0x91, 0xd0, 0xbb, 0x0e, 0xf3, 0xb9, 0xcb, 0x9f, 0x43, 0xd6,
		0xd5, 0xf9, 0x6a, 0x6c, 0x72, 0x04, 0x34, 0x2e, 0x0f, 0x64, 0x36, 0xc6, 0x5b, 0xf1, 0xd1, 0x8e,
		0x58, 0x7e, 0xa8, 0xfc, 0x8b, 0xeb, 0xcb, 0x93, 0xf6, 0xe4, 0xb2, 0xa8, 0x79, 0xfa, 0xb9, 0xdd,
		0xfc, 0xf3, 0xb2, 0xae, 0x3b, 0x11, 0x1f, 0x97, 0xa5, 0x8a, 0xb4, 0xc5, 0xad, 0x7c, 0x60, 0xd8,
		0x42, 0x71, 0x9b, 0x48, 0x5a, 0xed, 0xf8, 0xac, 0x71, 0xde, 0xfe, 0xed, 0xea, 0xe2, 0xe6, 0xd2,
		0xd4, 0xfe, 0x0d, 0x5f, 0x7e, 0x85, 0x98, 0xa9, 0x29, 0x66, 0x8d, 0x63, 0x48, 0x17, 0xa4, 0x8b,
		0x4a, 0xba, 0x4e, 0x2f, 0x3e, 0xd5, 0x4e, 0xdb, 0x0d, 0x20, 0x18, 0x64, 0x8c, 0x4c, 0xc6, 0xce,
		0x6a, 0x7f, 0x34, 0xce, 0x6e, 0xce, 0x5e, 0x7b, 0xff, 0x41, 0xd8, 0x20, 0x6c, 0xd4, 0xc2, 0xb6,
		0xa8, 0xe7, 0x24, 0xe4, 0x0e, 0x72, 0x47, 0x26, 0x77, 0x71, 0x61, 0x35, 0x48, 0x18, 0x24, 0x8c,
		0x4a, 0xc2, 0x92, 0x30, 0x58, 0x08, 0x19, 0x84, 0x8c, 0x4a, 0xc8, 0x62, 0xea, 0x0c, 0xf2, 0x05,
		0xf9, 0x22, 0x92, 0xaf, 0x9b, 0xf3, 0x91, 0x61, 0x56, 0x3f, 0xce, 0x95, 0x59, 0xa6, 0xf5, 0x1b,
		0xb4, 0x10, 0x57, 0x0a, 0x74, 0xca, 0x33, 0x22, 0x25, 0x28, 0xc4, 0xfc, 0x41, 0x8f, 0x85, 0xb6,
		0xe6, 0x69, 0x00, 0xc9, 0x55, 0x64, 0x45, 0xe3, 0x77, 0xa8, 0xfb, 0x83, 0x9e, 0xfe, 0x57, 0x90,
		0xcd, 0xe0, 0x9a, 0x87, 0xae, 0xff, 0x90, 0x8f, 0x84, 0x99, 0xe2, 0xf0, 0x8c, 0xdc, 0x9c, 0xff,
		0x7e, 0x7e, 0xf1, 0xef, 0x73, 0xcd, 0x53, 0x25, 0x7e, 0xd5, 0x5d, 0xae, 0x1a, 0x71, 0x30, 0x5c,
		0x0e, 0x84, 0x6a, 0x22, 0x4f, 0x47, 0x46, 0x11, 0xd9, 0x37, 0x98, 0x79, 0x8e, 0x67, 0x8d, 0xec,
		0x9b, 0x8d, 0x07, 0x73, 0x73, 0xe0, 0x7f, 0xf1, 0x83, 0xbf, 0x7c, 0x4b, 0xef, 0x2c, 0x9c, 0x99,
		0xb7, 0x40, 0x36, 0x8e, 0x8c, 0x69, 0x23, 0x1b, 0x27, 0x43, 0x79, 0x47, 0x36, 0x4e, 0x96, 0x07,
		0x16, 0xd9, 0x38, 0x8a, 0xbd, 0x08, 0xb2, 0x71, 0x60, 0xe5, 0xfc, 0xdc, 0x45, 0xcd, 0x45, 0x3f,
		0xfe, 0xd2, 0x9e, 0xc6, 0xe9, 0x38, 0x7b, 0xe8, 0xc7, 0x2f, 0xf9, 0x0b, 0xfd, 0xf8, 0xb3, 0x7d,
		0x09, 0xf4, 0xe3, 0x57, 0x15, 0x53, 0xd1, 0x8f, 0x5f, 0x81, 0x23, 0x9e, 0xa7, 0x7e, 0xfc, 0x7b,
		0xd5, 0xea, 0x2e, 0x5a, 0xf1, 0xe3, 0x98, 0xc3, 0x37, 0xd0, 0x79, 0xd6, 0xa8, 0xb1, 0x4f, 0x79,
		0x1c, 0x51, 0xd9, 0x1a, 0xfe, 0x40, 0x5a, 0x2f, 0x78, 0xaa, 0xfc, 0xee, 0xf8, 0xaa, 0x16, 0x15,
		0xac, 0x55, 0x70, 0xf1, 0x51, 0xc1, 0x5a, 0xe9, 0x17, 0x5a, 0x52, 0xc1, 0x3a, 0x39, 0x42, 0x70,
		0x80, 0x32, 0xd8, 0x94, 0xdc, 0x57, 0xaa, 0x1e, 0x5f, 0xcc, 0x8e, 0xaa, 0xdc, 0xfe, 0xa8, 0x0c,
		0xee, 0x5f, 0x76, 0x64, 0xf8, 0x01, 0xbf, 0x9b, 0xfc, 0xfb, 0x20, 0xfe, 0x5b, 0x2f, 0xe8, 0xd8,
		0x9e, 0x11, 0x3d, 0x47, 0x9c, 0xf5, 0x50, 0xa9, 0x5a, 0x49, 0xb0, 0x47, 0xa5, 0x6a, 0xbd, 0xb0,
		0x9f, 0xea, 0x74, 0x22, 0x56, 0x0e, 0x33, 0x07, 0x2f, 0x80, 0xf5, 0xcd, 0xaf, 0xf5, 0x96, 0x44,
		0x99, 0x7d, 0x1d, 0x33, 0xbe, 0x9a, 0x07, 0xcb, 0x8d, 0x5e, 0x03, 0xd1, 0x72, 0x32, 0xa6, 0x8d,
		0x68, 0xb9, 0x0c, 0x05, 0x1e, 0xd1, 0x72, 0x6a, 0xb8, 0x0a, 0x88, 0x96, 0x53, 0xce, 0x1b, 0x40,
		0xb4, 0x1c, 0xec, 0x9c, 0x85, 0x42, 0xa2, 0x7f, 0xb4, 0xdc, 0xbd, 0xeb, 0xdb, 0xe1, 0xb3, 0xc6,
		0xd1, 0x72, 0x87, 0x10, 0x70, 0xc2, 0x45, 0xc6, 0x55, 0x64, 0xc6, 0x5f, 0xb8, 0x8a, 0x84, 0xa9,
		0x49, 0x6e, 0x72, 0xe2, 0x2a, 0x52, 0x71, 0x03, 0x14, 0x57, 0x91, 0x8a, 0x6c, 0xca, 0xc6, 0x5c,
		0x45, 0xc6, 0xb4, 0x17, 0xee, 0x22, 0x71, 0x17, 0x09, 0xe0, 0xcf, 0x1a, 0xfc, 0xc9, 0x8e, 0x27,
		0x2e, 0x23, 0x31, 0xf3, 0x1c, 0xcf, 0x1a, 0x97, 0x91, 0x9b, 0x3c, 0x53, 0x4d, 0xac, 0x4c, 0xb3,
		0xe6, 0xfb, 0x01, 0xb7, 0xb5, 0x33, 0x28, 0xcd, 0xa8, 0xf3, 0xc8, 0x7a, 0x76, 0xdf, 0xe6, 0x8f,
		0x43, 0x1d, 0x55, 0x08, 0xfa, 0xcc, 0xef, 0xc4, 0xd7, 0x77, 0x96, 0xcf, 0xf8, 0x5f, 0x41, 0xf8,
		0xc5, 0x72, 0xfd, 0x88, 0xdb, 0x7e, 0x87, 0x15, 0xde, 0xfe, 0x20, 0x9a, 0xfb, 0x49, 0xa1, 0x1f,
		0x06, 0x3c, 0xe8, 0x04, 0x5e, 0x94, 0x7c, 0x2a, 0x8c, 0x18, 0xf7, 0x82, 0x1d, 0x32, 0x3b, 0x8a,
		0xff, 0x2c, 0x78, 0x91, 0x73, 0x5f, 0xf0, 0x22, 0x3b, 0x2e, 0x60, 0x12, 0x25, 0x9f, 0x86, 0x1f,
		0xe2, 0xef, 0x0a, 0x41, 0xdf, 0xfe, 0xcf, 0x80, 0x59, 0xc3, 0x8f, 0x3c, 0xb4, 0xbb, 0x5d, 0xb7,
		0x63, 0x31, 0xff, 0xc1, 0xf5, 0x19, 0x0b, 0x5d, 0xff, 0xa1, 0xc0, 0xbd, 0xaf, 0xd1, 0xf0, 0x8f,
		0x82, 0xe7, 0xfa, 0x5f, 0x0a, 0x43, 0x45, 0x19, 0xff, 0x64, 0xfc, 0xa1, 0x10, 0x71, 0x9b, 0xeb,
		0x74, 0xd3, 0x6b, 0x46, 0x3c, 0x1c, 0x74, 0xb8, 0x3f, 0xe9, 0x97, 0x95, 0xec, 0xc0, 0xf9, 0x68,
		0x75, 0x1b, 0xe3, 0xc5, 0x6d, 0xbf, 0xf9, 0x3e, 0x7a, 0xfb, 0x83, 0xf6, 0xe5, 0x64, 0xf5, 0x93,
		0x4f, 0xed, 0x8b, 0x78, 0xf5, 0xdb, 0xb5, 0xe1, 0xea, 0xc7, 0x7f, 0xb6, 0x4f, 0x23, 0xe7, 0xbe,
		0x7d, 0x1a, 0xd9, 0xcd, 0xe1, 0xe2, 0x4f, 0x3e, 0x0c, 0xff, 0x1f, 0x7f, 0xd3, 0xbe, 0x88, 0xd7,
		0x7e, 0xf8, 0xa9, 0x39, 0x5a, 0xfa, 0xfa, 0xeb, 0xca, 0xb7, 0x9b, 0xde, 0xd7, 0x68, 0xf8, 0x47,
		0xfb, 0xd4, 0xf5, 0xbf, 0xb4, 0xaf, 0x07, 0xf7, 0xf1, 0x0f, 0x46, 0xff, 0x6f, 0x5f, 0xc7, 0xeb,
		0xfe, 0x01, 0xd0, 0xb7, 0x21, 0xb0, 0x97, 0x84, 0x56, 0x44, 0x83, 0x7b, 0xee, 0x7d, 0xd5, 0x06,
		0xf6, 0xe6, 0x42, 0x43, 0xc6, 0xf3, 0xd7, 0x44, 0xd1, 0x4c, 0xca, 0x8b, 0x6a, 0x32, 0x5d, 0xdd,
		0x62, 0x41, 0x74, 0x8c, 0x01, 0xd1, 0x3a, 0xf6, 0x43, 0x57, 0x7a, 0x46, 0xfb, 0x58, 0x0f, 0xed,
		0x19, 0x17, 0xdd, 0x63, 0x3b, 0xe0, 0x80, 0x89, 0x14, 0x86, 0x63, 0x37, 0xd4, 0xcc, 0xf3, 0x8a,
		0xed, 0x65, 0x6d, 0x03, 0x6b, 0x75, 0x73, 0xb3, 0x34, 0x34, 0x9e, 0xb4, 0x35, 0xa2, 0x74, 0x36,
		0xa6, 0x72, 0x61, 0x54, 0xe9, 0x6e, 0x5c, 0xe5, 0xc6, 0xc8, 0xca, 0x8d, 0xb1, 0x95, 0x17, 0xa3,
		0x4b, 0x2f, 0xe3, 0x4b, 0x33, 0x23, 0x4c, 0x5b, 0x63, 0x2c, 0x99, 0xb8, 0xc7, 0xfc, 0x87, 0x98,
		0x0a, 0xd7, 0x14, 0x2f, 0x27, 0x4a, 0x6b, 0xfc, 0x1e, 0x9a, 0x62, 0x8c, 0x9e, 0x79, 0x4f, 0xda,
		0x9b, 0x6b, 0x79, 0x30, 0xdb, 0x72, 0x65, 0xbe, 0xe5, 0xc5, 0x8c, 0xcb, 0x9d, 0x39, 0x97, 0x3b,
		0xb3, 0x2e, 0x6f, 0xe6, 0x9d, 0x9e, 0x66, 0x9e, 0xa6, 0xe6, 0x5e, 0x22, 0x3c, 0xda, 0xe6, 0x51,
		0xcd, 0x69, 0x0d, 0x6d, 0xab, 0x8f, 0xbf, 0xb5, 0xa1, 0xf6, 0x34, 0x7e, 0x05, 0xbd, 0xab, 0x91,
		0x4f, 0xbe, 0x72, 0x10, 0x75, 0x9c, 0x87, 0xea, 0xe4, 0xc9, 0xcb, 0xe4, 0xa4, 0x4a, 0x79, 0xf2,
		0x3e, 0x79, 0x2b, 0x63, 0xfc, 0x8a, 0xc5, 0x79, 0x29, 0x67, 0xac, 0xb9, 0x5a, 0x9f, 0x85, 0x82,
		0x1c, 0x54, 0x31, 0x9f, 0x83, 0x82, 0x1c, 0x54, 0x33, 0x07, 0x1c, 0xc0, 0x37, 0xc1, 0xec, 0xdf,
		0xf5, 0xd5, 0x42, 0xe2, 0x06, 0xd4, 0xdd, 0x12, 0x90, 0xe1, 0x3a, 0x7b, 0xb0, 0x89, 0xf7, 0xaa,
		0x61, 0x67, 0xd0, 0xb7, 0x7e, 0x2b, 0xb8, 0xff, 0x8c, 0x5e, 0x00, 0xdc, 0xbf, 0x62, 0x2f, 0x03,
		0xee, 0x5f, 0xd1, 0x17, 0x02, 0xf7, 0x0f, 0x8b, 0x09, 0x56, 0xd3, 0x44, 0x78, 0xc0, 0xfd, 0x2b,
		0x67, 0x43, 0x81, 0xfb, 0xcf, 0xfa, 0x0b, 0xdc, 0xbf, 0x5a, 0x2f, 0x03, 0xee, 0x5f, 0x17, 0x2c,
		0x06, 0xf7, 0xaf, 0x20, 0x14, 0x80, 0xfb, 0x07, 0x1c, 0x00, 0x0e, 0x36, 0xd7, 0x37, 0xd1, 0x7f,
		0xf6, 0xe0, 0xfe, 0xa1, 0xee, 0x96, 0x81, 0x8c, 0x9e, 0x9d, 0x4e, 0xe6, 0xdc, 0x57, 0x1d, 0x3b,
		0x9d, 0xbc, 0xf5, 0x5c, 0xc1, 0xfe, 0x67, 0xf4, 0x02, 0x60, 0xff, 0x15, 0x7b, 0x19, 0xb0, 0xff,
		0x8a, 0xbe, 0x10, 0xd8, 0x7f, 0xd8, 0x4c, 0xb0, 0x9b, 0x26, 0xc2, 0x93, 0x1f, 0xf6, 0x5f, 0xdb,
		0x4e, 0x2a, 0x6f, 0x6d, 0xa8, 0x43, 0xb8, 0x3a, 0x98, 0xb1, 0xee, 0x00, 0xa3, 0x6b, 0x5d, 0xd5,
		0x64, 0xfe, 0xf9, 0xab, 0xaf, 0x3a, 0x5b, 0x36, 0xb1, 0xa0, 0x63, 0x1d, 0x20, 0x23, 0x47, 0x65,
		0x57, 0x6f, 0x46, 0xdb, 0x71, 0x1d, 0xef, 0x86, 0x4e, 0x45, 0x58, 0xf5, 0xc3, 0x4f, 0x14, 0x6c,
		0x03, 0xb2, 0xe7, 0x1f, 0xd1, 0x51, 0x3a, 0x3b, 0x5b, 0x0c, 0x47, 0x09, 0xed, 0x8d, 0xc1, 0x41,
		0x73, 0xe0, 0x87, 0x2c, 0x62, 0xe1, 0x57, 0xe6, 0x58, 0xf7, 0xb6, 0xef, 0xfc, 0xe5, 0x3a, 0xfc,
		0x31, 0xd2, 0xb1, 0x92, 0xf6, 0xa2, 0xd7, 0x40, 0x41, 0x6d, 0x8a, 0xe9, 0xa2, 0xa0, 0xb6, 0x44,
		0xc1, 0x46, 0x41, 0x6d, 0x99, 0x07, 0x11, 0x05, 0xb5, 0xb3, 0x36, 0xc9, 0x51, 0x50, 0x1b, 0x76,
		0xc9, 0x44, 0x18, 0xb4, 0x2b, 0xa8, 0xbd, 0xc8, 0x0a, 0xd1, 0xb7, 0xbe, 0xf6, 0xc2, 0xb7, 0x41,
		0xb9, 0x6d, 0x98, 0x58, 0xf9, 0x32, 0xb5, 0x72, 0x61, 0x72, 0xe9, 0x6e, 0x7a, 0xe5, 0xc6, 0x04,
		0xcb, 0x8d, 0x29, 0x96, 0x17, 0x93, 0x4c, 0x2f, 0xd3, 0x4c, 0x33, 0x13, 0x4d, 0x5b, 0x53, 0x2d,
		0x99, 0x78, 0x3f, 0x74, 0x83, 0xd0, 0xe5, 0xcf, 0xfa, 0x47, 0xdd, 0x26, 0x6f, 0x82, 0xc0, 0x5b,
		0x98, 0x6c, 0x9b, 0x65, 0xba, 0xe5, 0xca, 0x84, 0xcb, 0x8b, 0x29, 0x97, 0x3b, 0x93, 0x2e, 0x77,
		0xa6, 0x5d, 0xde, 0x4c, 0x3c, 0x3d, 0x4d, 0x3d, 0x4d, 0x4d, 0xbe, 0x44, 0x78, 0xf2, 0x13, 0x78,
		0xeb, 0x31, 0xbb, 0x1b, 0xb2, 0x6e, 0x0e, 0x22, 0x6f, 0x4b, 0xfb, 0x1a, 0xbf, 0xc3, 0xe5, 0x38,
		0xb0, 0x65, 0x67, 0x67, 0x14, 0xda, 0x57, 0x48, 0x2c, 0x5b, 0xc4, 0x13, 0x03, 0x89, 0x96, 0x08,
		0x8d, 0x9e, 0xbd, 0x2c, 0xe7, 0x20, 0x48, 0xd7, 0x58, 0x56, 0x43, 0x5f, 0xb2, 0x1d, 0x1e, 0x1c,
		0x3c, 0x38, 0x78, 0x70, 0xf0, 0xe0, 0xe0, 0xc1, 0xc1, 0x66, 0xda, 0x4c, 0x0f, 0x4e, 0x57, 0xf2,
		0x3e, 0x79, 0x01, 0xed, 0x49, 0xfc, 0x39, 0xf5, 0xa7, 0x39, 0x99, 0xff, 0xd6, 0x24, 0xd4, 0xbc,
		0x0a, 0x94, 0xf6, 0xa6, 0x61, 0x9e, 0x4c, 0xc4, 0x5c, 0x9a, 0x8a, 0x79, 0x33, 0x19, 0x73, 0x6b,
		0x3a, 0xe6, 0xd6, 0x84, 0xcc, 0xab, 0x29, 0xa9, 0xb7, 0x49, 0xa9, 0xb9, 0x69, 0x99, 0x08, 0x95,
		0xf6, 0x97, 0x04, 0x73, 0x5a, 0x67, 0xe0, 0xfa, 0xfc, 0x20, 0x0f, 0x1a, 0x67, 0x6c, 0xa2, 0xe5,
		0xa0, 0x02, 0x69, 0x4e, 0x4a, 0x76, 0x4f, 0xbe, 0xf2, 0x61, 0x01, 0x18, 0x79, 0x2b, 0xe1, 0x9d,
		0xbc, 0x54, 0xce, 0x4a, 0x79, 0x27, 0xef, 0x95, 0xd7, 0x1a, 0xbe, 0xaf, 0x10, 0x9e, 0xb7, 0x5a,
		0xbe, 0x39, 0xb1, 0x12, 0x66, 0x21, 0x23, 0x47, 0xa5, 0xbe, 0xe7, 0x20, 0x63, 0x1f, 0x90, 0x01,
		0xc8, 0x80, 0x5b, 0x84, 0xb7, 0x48, 0xbe, 0x5a, 0x28, 0xc7, 0x0e, 0x95, 0xb9, 0x22, 0x28, 0xe5,
		0x22, 0xdd, 0x74, 0xb9, 0x83, 0xad, 0x7f, 0xfa, 0xe9, 0x32, 0x5f, 0x1b, 0xd7, 0x21, 0x8a, 0xbc,
		0x08, 0xae, 0x43, 0x14, 0x7f, 0x29, 0x5c, 0x87, 0x68, 0xf2, 0x62, 0xb8, 0x0e, 0x81, 0xc5, 0x06,
		0xab, 0xed, 0xbd, 0x42, 0x95, 0xbf, 0xeb, 0x10, 0x97, 0x31, 0xd6, 0xf5, 0x02, 0x9b, 0xef, 0x96,
		0x73, 0x74, 0x29, 0x72, 0x98, 0x83, 0x57, 0x39, 0x65, 0xfe, 0x43, 0xec, 0x17, 0xe0, 0x56, 0x44,
		0xb1, 0x9d, 0xc9, 0xf5, 0xad, 0x48, 0x05, 0x14, 0xa7, 0x66, 0x48, 0x8e, 0x5b, 0x11, 0x0d, 0x20,
		0x23, 0xcf, 0xb7, 0x22, 0x80, 0x0c, 0x40, 0x06, 0xbc, 0x23, 0xbc, 0xc5, 0xeb, 0x17, 0x6e, 0x45,
		0x30, 0xf3, 0xdc, 0x2b, 0x7a, 0xdd, 0x3b, 0x0c, 0x25, 0xef, 0x91, 0xc7, 0xbe, 0x14, 0x0b, 0xca,
		0xca, 0x2f, 0xfc, 0x69, 0x41, 0xe7, 0xcc, 0x6d, 0x23, 0x57, 0x9d, 0x2c, 0x26, 0x9b, 0xf3, 0x31,
		0xd9, 0xb1, 0x45, 0x3f, 0xd4, 0xb1, 0x51, 0x91, 0xbe, 0xf0, 0x8c, 0xea, 0x8b, 0x94, 0x47, 0xf7,
		0x77, 0xf6, 0xac, 0x71, 0xd2, 0xa0, 0x79, 0xea, 0x46, 0xbc, 0xc6, 0xb9, 0xa6, 0x15, 0x24, 0xcf,
		0x5c, 0xbf, 0xee, 0xb1, 0x1e, 0xf3, 0x75, 0x75, 0xf1, 0xcc, 0x33, 0xfb, 0x69, 0xea, 0x0d, 0x4a,
		0x07, 0x95, 0xca, 0xde, 0x7e, 0xa5, 0x52, 0xdc, 0xdf, 0xdd, 0x2f, 0x1e, 0x56, 0xab, 0xa5, 0xbd,
		0x92, 0x86, 0xb9, 0x01, 0xe6, 0x45, 0xe8, 0xb0, 0x90, 0x39, 0x1f, 0x87, 0x27, 0xc3, 0x1f, 0x78,
		0x9e, 0xce, 0xaf, 0x70, 0x13, 0xb1, 0x50, 0x4b, 0x1f, 0x1b, 0xbd, 0x3e, 0x61, 0x81, 0xcb, 0xb2,
		0xc0, 0xd1, 0x01, 0x54, 0x79, 0x9b, 0x1b, 0x6d, 0x41, 0x37, 0x79, 0xa6, 0x68, 0x0b, 0x0a, 0xf0,
		0x17, 0x00, 0xfe, 0xe8, 0x0e, 0xaa, 0x04, 0xbe, 0xa3, 0x49, 0xe8, 0x26, 0xcc, 0x50, 0x71, 0xcc,
		0xd6, 0x8b, 0x3a, 0xd0, 0x8f, 0x2a, 0xc8, 0x05, 0x35, 0xa0, 0x21, 0x15, 0xa0, 0xa1, 0xeb, 0xaf,
		0x3a, 0x52, 0x68, 0x66, 0xd5, 0xe5, 0xcf, 0x9a, 0xd3, 0xc0, 0x6e, 0xcb, 0x89, 0xbd, 0xa6, 0xb6,
		0x69, 0xa6, 0xae, 0xc1, 0xa3, 0xe6, 0xcc, 0x14, 0x05, 0x56, 0x5d, 0x00, 0x35, 0x3f, 0x40, 0xaa,
		0x30, 0x80, 0xea, 0x0e, 0x9c, 0x6a, 0x22, 0xa6, 0x7a, 0x78, 0xa4, 0xd6, 0x8c, 0x14, 0x43, 0x46,
		0x93, 0x3d, 0xf1, 0xd0, 0xb6, 0x06, 0x43, 0x51, 0xbe, 0xf7, 0xd4, 0xcc, 0xef, 0x32, 0xff, 0x7a,
		0x64, 0xbe, 0xb2, 0xb9, 0x40, 0x0a, 0x6b, 0x91, 0x49, 0x9e, 0x5b, 0xd2, 0x94, 0x66, 0x08, 0xe8,
		0xc6, 0x3f, 0x8c, 0x5f, 0xc6, 0x39, 0xa1, 0x23, 0xa8, 0x3f, 0x6a, 0xd6, 0xdb, 0x57, 0x17, 0x37,
		0xcd, 0xfa, 0x55, 0xfb, 0xb4, 0x71, 0xfe, 0xfb, 0x2f, 0x2a, 0x43, 0xb6, 0x26, 0xa9, 0xd5, 0xd3,
		0x29, 0xd3, 0xb1, 0xf0, 0x2a, 0xee, 0x67, 0xea, 0x96, 0x08, 0x3d, 0x93, 0xe0, 0xbc, 0xa2, 0x74,
		0x7f, 0x00, 0x19, 0xb1, 0xfa, 0x7a, 0x1f, 0xb3, 0xa8, 0x13, 0xba, 0x7d, 0x2d, 0x98, 0x88, 0x04,
		0xf6, 0x1a, 0x7e, 0xc7, 0x1b, 0x38, 0xcc, 0xe0, 0x8f, 0xcc, 0x18, 0x1a, 0xa5, 0x46, 0x27, 0xf0,
		0xb9, 0xed, 0xfa, 0x2c, 0x34, 0x02, 0xdf, 0x7b, 0x36, 0x86, 0x27, 0x33, 0xfe, 0xcb, 0x58, 0x70,
		0x82, 0xee, 0xf0, 0xf3, 0x9d, 0xdf, 0x3c, 0xfd, 0x6c, 0x38, 0xf1, 0xeb, 0xde, 0xb3, 0xc8, 0xb0,
		0x8d, 0xb1, 0xad, 0x6b, 0x4c, 0xd9, 0xba, 0xf1, 0xd3, 0x54, 0x3f, 0xd3, 0x1a, 0x55, 0xa1, 0x98,
		0x86, 0x4b, 0x67, 0x4a, 0xd2, 0x34, 0x20, 0x5f, 0x74, 0x2c, 0x21, 0x31, 0x83, 0x9e, 0xc4, 0x87,
		0x04, 0xac, 0x4e, 0x9e, 0x58, 0x1d, 0xe5, 0x66, 0xd5, 0x82, 0x6f, 0xa7, 0x2f, 0xdb, 0xa5, 0x3d,
		0xcb, 0xa5, 0xa0, 0x82, 0xd2, 0x95, 0xd4, 0x52, 0x4b, 0x51, 0xa8, 0x03, 0x74, 0x0a, 0x41, 0x8a,
		0xe9, 0x07, 0x0e, 0xb3, 0x6c, 0xce, 0x43, 0xf7, 0x7e, 0xa0, 0x60, 0xdf, 0xd2, 0xc4, 0xee, 0x7f,
		0x33, 0x4f, 0xc5, 0x40, 0x59, 0xcd, 0x86, 0xa3, 0xca, 0x96, 0x47, 0x54, 0xb9, 0xdc, 0xa1, 0x16,
		0xe5, 0x0b, 0x55, 0x77, 0x04, 0xb5, 0x29, 0x2f, 0xa8, 0x8d, 0xaf, 0xa7, 0x4b, 0xf9, 0x3f, 0x5c,
		0xcc, 0xfc, 0x90, 0x72, 0x53, 0xb4, 0xc1, 0xa5, 0x99, 0x5c, 0xed, 0x2a, 0x8b, 0x28, 0x49, 0x63,
		0x72, 0xb5, 0x2f, 0xa1, 0x15, 0xef, 0x3d, 0xae, 0x7c, 0xc5, 0x64, 0x1d, 0x2a, 0x21, 0x6b, 0x55,
		0xe1, 0x58, 0xc7, 0xeb, 0x35, 0x2d, 0x2a, 0x12, 0xeb, 0x7d, 0xc1, 0xa6, 0x41, 0x05, 0x61, 0x44,
		0xc1, 0xe5, 0xc1, 0xb4, 0x78, 0x6b, 0x62, 0xe8, 0x73, 0xd5, 0xa8, 0x47, 0xb8, 0xb0, 0xe2, 0x06,
		0x87, 0x36, 0x86, 0x87, 0x4e, 0x06, 0x88, 0x96, 0x86, 0x88, 0x6e, 0x06, 0x89, 0xb6, 0x86, 0x89,
		0xb6, 0x06, 0x8a, 0xae, 0x86, 0x8a, 0xda, 0x06, 0x8b, 0xe2, 0x86, 0x8b, 0x36, 0x06, 0xcc, 0xab,
		0x21, 0x13, 0xd7, 0x6b, 0xd3, 0x06, 0xbe, 0x12, 0x73, 0x46, 0xa3, 0xba, 0x80, 0x9a, 0x18, 0x35,
		0xda, 0x19, 0x37, 0x3a, 0x1a, 0x39, 0x5a, 0x1b, 0x3b, 0xba, 0x1a, 0x3d, 0xda, 0x1b, 0x3f, 0xda,
		0x1b, 0x41, 0xba, 0x1b, 0x43, 0x7a, 0x18, 0x45, 0x9a, 0x18, 0x47, 0xda, 0x19, 0x49, 0xc9, 0x84,
		0xbd, 0xa0, 0x63, 0x7b, 0x96, 0xdb, 0xff, 0x5a, 0xb1, 0x6c, 0xc7, 0x09, 0x59, 0x14, 0xb1, 0x48,
		0x3f, 0x14, 0x9c, 0xa8, 0x9e, 0x85, 0x6f, 0xa3, 0x5b, 0x8d, 0x56, 0x2d, 0x5b, 0x7f, 0x6a, 0xdb,
		0xea, 0x53, 0xe7, 0xd6, 0x9e, 0xb9, 0x68, 0xe5, 0xa9, 0x7b, 0xeb, 0xce, 0xdc, 0xb4, 0xea, 0xcc,
		0x4d, 0x6b, 0xce, 0xbc, 0xb4, 0xe2, 0x44, 0x2d, 0x74, 0x4a, 0x21, 0xd1, 0xb6, 0xb5, 0xe6, 0x6b,
		0x2b, 0xcd, 0xa1, 0x9d, 0xa3, 0x2d, 0xe4, 0x24, 0x1c, 0xd2, 0x81, 0x86, 0x73, 0xbf, 0xb4, 0x39,
		0x67, 0xa1, 0xaf, 0x6d, 0xb3, 0x4c, 0x73, 0x6b, 0xeb, 0xb6, 0x68, 0x1d, 0xb6, 0xbe, 0xdf, 0x96,
		0xac, 0xc3, 0xd6, 0xe8, 0x63, 0x29, 0xfe, 0xdf, 0xe8, 0x73, 0xf9, 0xb6, 0x68, 0x55, 0x26, 0x9f,
		0xab, 0xb7, 0x45, 0xab, 0xda, 0xda, 0xbe, 0xbb, 0xdb, 0xd9, 0xfe, 0xb6, 0xfb, 0xb2, 0xfa, 0x2f,
		0x16, 0xc6, 0x83, 0x6d, 0x7f, 0xdf, 0xba, 0x2d, 0x59, 0xe5, 0xd6, 0xe4, 0x9b, 0xdd, 0xdb, 0xa2,
		0x55, 0x6e, 0x6d, 0x6f, 0xeb, 0x87, 0xcc, 0x2d, 0x20, 0x33, 0xa1, 0x6c, 0xa2, 0xcd, 0x43, 0xc6,
		0x6f, 0x80, 0x36, 0x0f, 0x6a, 0xbf, 0x02, 0xda, 0x3c, 0x48, 0x5a, 0x71, 0x0d, 0x0a, 0xf5, 0xfc,
		0xf4, 0x1d, 0x94, 0x2e, 0xe4, 0xf3, 0xb3, 0x2f, 0x8d, 0x9b, 0xdc, 0x4d, 0x15, 0x02, 0x5a, 0x5c,
		0x24, 0xe5, 0xfc, 0xe2, 0xb8, 0xde, 0x6e, 0x5c, 0x7e, 0xae, 0xb4, 0x4f, 0x2f, 0x3e, 0xd5, 0x4e,
		0xdb, 0xb5, 0xe3, 0xe3, 0xab, 0xfa, 0xf5, 0xf5, 0x2f, 0x3a, 0xf7, 0x86, 0xd3, 0x9c, 0xcb, 0x59,
		0xc4, 0xe9, 0x68, 0x50, 0x4b, 0x68, 0x63, 0x98, 0x9d, 0x85, 0x0c, 0xcf, 0xea, 0x07, 0x4c, 0xdf,
		0x76, 0xab, 0x1a, 0x43, 0x83, 0x4e, 0xe5, 0x8c, 0xde, 0x0d, 0xee, 0x33, 0x95, 0x5c, 0x82, 0x8e,
		0xed, 0x19, 0x8d, 0xcb, 0xaf, 0x15, 0x23, 0xb9, 0x7c, 0x5a, 0x58, 0xca, 0xc5, 0x88, 0x06, 0xf7,
		0x56, 0xf3, 0xf4, 0xf3, 0x9d, 0xef, 0xfa, 0x8e, 0xdb, 0xb1, 0x39, 0x8b, 0x0c, 0xfe, 0x68, 0x73,
		0x83, 0x3f, 0xba, 0x91, 0xe1, 0x46, 0xf1, 0xbf, 0x99, 0x94, 0x84, 0x71, 0x0c, 0xc7, 0xe6, 0xb6,
		0xee, 0x00, 0x94, 0x13, 0xbd, 0x60, 0x68, 0x5d, 0x38, 0x69, 0xe3, 0xd4, 0x84, 0xf1, 0xc3, 0xc2,
		0x4b, 0x94, 0xc7, 0x15, 0xed, 0xc8, 0x31, 0xf3, 0x1c, 0xcf, 0xba, 0x85, 0xfe, 0x6c, 0x9b, 0x6e,
		0xdf, 0xbd, 0xc6, 0xda, 0xec, 0xe5, 0x2a, 0x72, 0x68, 0x0f, 0x91, 0x43, 0x92, 0xa7, 0x8d, 0xc8,
		0xa1, 0x0c, 0xe5, 0x1e, 0x91, 0x43, 0x6a, 0x78, 0x12, 0x88, 0x1c, 0x52, 0xce, 0x59, 0x40, 0xe4,
		0x10, 0xac, 0x9e, 0x85, 0x42, 0x92, 0x8b, 0xc8, 0xa1, 0x3d, 0x44, 0x0e, 0x65, 0x63, 0x34, 0xe8,
		0x1f, 0x39, 0x74, 0xf4, 0xfd, 0xb6, 0x68, 0x1d, 0xda, 0x56, 0xb7, 0x66, 0x9d, 0xb4, 0xbe, 0x15,
		0x7f, 0xad, 0xbc, 0x6c, 0x1f, 0x6d, 0x6f, 0xbd, 0xfd, 0xd9, 0xd1, 0xf6, 0xb7, 0xe2, 0xaf, 0xd5,
		0x97, 0xad, 0xad, 0x05, 0x7f, 0xf3, 0xcf, 0x45, 0xcf, 0xd8, 0xfe, 0xbe, 0xb5, 0xb5, 0x35, 0x8e,
		0x19, 0x9a, 0x89, 0x23, 0xba, 0x2d, 0x96, 0x5a, 0xff, 0x8c, 0x3f, 0x8e, 0xfe, 0x4c, 0x22, 0x91,
		0xde, 0xf5, 0x8f, 0xb7, 0xb7, 0xb7, 0xa6, 0x03, 0x90, 0x86, 0xff, 0xff, 0x56, 0x7e, 0xd9, 0xfe,
		0xbe, 0x55, 0xba, 0x2d, 0x5a, 0xa5, 0x24, 0x18, 0xa9, 0x34, 0x7c, 0xc8, 0xc1, 0xf0, 0x9f, 0xeb,
		0xaa, 0x84, 0xb7, 0xb6, 0x6e, 0xff, 0xe7, 0xa8, 0xf5, 0xf7, 0xa3, 0xed, 0x6f, 0x7b, 0x2f, 0x93,
		0xcf, 0xf1, 0x9f, 0xdb, 0xdf, 0xb7, 0x76, 0xfe, 0x76, 0x77, 0xb7, 0xb3, 0xf3, 0xb7, 0xed, 0xd1,
		0x22, 0x8f, 0xff, 0xdd, 0xdf, 0x46, 0x7f, 0xfb, 0xcf, 0xa3, 0xa3, 0xb9, 0x1f, 0x6d, 0x6f, 0x15,
		0x76, 0xfe, 0x8e, 0xc0, 0x2c, 0x28, 0xbe, 0x19, 0x09, 0x43, 0x60, 0x56, 0xc6, 0x6f, 0x80, 0xc0,
		0x2c, 0xb5, 0x5f, 0x01, 0x81, 0x59, 0x92, 0x56, 0x1c, 0x81, 0x59, 0x19, 0x7f, 0xe5, 0x3e, 0x30,
		0x6b, 0x14, 0x32, 0xd2, 0xb8, 0xfc, 0xbc, 0x87, 0xc0, 0x2c, 0x95, 0x5c, 0x3f, 0x04, 0x66, 0x29,
		0xfd, 0x42, 0xef, 0x0f, 0xcc, 0x5a, 0x74, 0xc0, 0x10, 0x98, 0x95, 0xc1, 0x96, 0x6d, 0x4e, 0x60,
		0xd6, 0xde, 0x6a, 0x91, 0x1e, 0x5d, 0x44, 0x66, 0x69, 0xab, 0x1c, 0x10, 0x99, 0xa5, 0x97, 0xae,
		0x90, 0x77, 0x5e, 0x11, 0x9a, 0x85, 0x99, 0xe7, 0x78, 0xd6, 0x08, 0xcd, 0xda, 0x78, 0x0b, 0xcf,
		0xe4, 0x3a, 0x5e, 0x50, 0x26, 0xa6, 0x5b, 0x3c, 0x7b, 0x84, 0x5e, 0xc9, 0x98, 0x36, 0x42, 0xaf,
		0x32, 0x94, 0x73, 0x84, 0x5e, 0xa9, 0xe1, 0x2a, 0x20, 0xf4, 0x4a, 0x39, 0x6f, 0x00, 0xa1, 0x57,
		0xb0, 0x6a, 0x16, 0x0a, 0x89, 0xfe, 0xa1, 0x57, 0x03, 0x5f, 0x4f, 0x4a, 0x22, 0x09, 0xba, 0x3a,
		0xd4, 0x70, 0xee, 0x63, 0xb1, 0xc1, 0x55, 0x5b, 0x46, 0x42, 0xef, 0x3a, 0xcc, 0xe7, 0x2e, 0x7f,
		0x0e, 0x59, 0x57, 0xe7, 0x4b, 0xb4, 0xc9, 0x11, 0xa8, 0x6a, 0xfc, 0x0e, 0x8d, 0xf1, 0x56, 0x7c,
		0xb4, 0x23, 0x96, 0x1f, 0xba, 0xbf, 0x59, 0x6f, 0xc7, 0x97, 0x4a, 0xb5, 0x66, 0xf3, 0xaa, 0xf1,
		0xf1, 0xa6, 0x59, 0x6f, 0x37, 0x4f, 0x3f, 0xb7, 0x9b, 0x7f, 0x5e, 0xd6, 0x75, 0xe7, 0xe7, 0x3f,
		0xdb, 0xde, 0x20, 0x4e, 0xac, 0xba, 0xd5, 0x9e, 0xf0, 0xd5, 0xff, 0x86, 0x61, 0x46, 0xe6, 0x96,
		0x94, 0x97, 0x30, 0xb5, 0x7f, 0xcb, 0x97, 0x5f, 0x21, 0x6a, 0x6a, 0x8a, 0xda, 0x5e, 0xee, 0x44,
		0x4d, 0xeb, 0x37, 0x68, 0xe1, 0x36, 0x06, 0xc0, 0xb4, 0x11, 0x06, 0x3c, 0xf3, 0x07, 0x3d, 0x16,
		0xda, 0x9a, 0x5f, 0xa7, 0x27, 0x06, 0x7c, 0x45, 0xe3, 0x77, 0xa8, 0xfb, 0x83, 0x9e, 0xfe, 0x86,
		0x7b, 0x33, 0xb8, 0xe6, 0xa1, 0xeb, 0x3f, 0xe4, 0x23, 0xf0, 0xa4, 0x38, 0x3c, 0x23, 0x37, 0xe7,
		0xbf, 0x9f, 0x5f, 0xfc, 0xfb, 0x5c, 0xf3, 0x00, 0x83, 0x5f, 0x75, 0x97, 0xab, 0x46, 0x4c, 0x21,
		0xe7, 0x40, 0xa8, 0x26, 0xf2, 0x74, 0x64, 0x14, 0x11, 0xb3, 0x82, 0x99, 0xe7, 0x78, 0xd6, 0x88,
		0x59, 0xd9, 0xe4, 0x99, 0xea, 0xd2, 0xdb, 0xad, 0xe6, 0xfb, 0x01, 0xb7, 0xb5, 0x0b, 0x93, 0x36,
		0xa3, 0xce, 0x23, 0xeb, 0xd9, 0x7d, 0x9b, 0x3f, 0x0e, 0xad, 0x94, 0x42, 0xd0, 0x67, 0x7e, 0x27,
		0x8e, 0xfb, 0xb0, 0x7c, 0xc6, 0xff, 0x0a, 0xc2, 0x2f, 0x96, 0xeb, 0x47, 0xdc, 0xf6, 0x3b, 0xac,
		0xf0, 0xf6, 0x07, 0xd1, 0xdc, 0x4f, 0x0a, 0xfd, 0x30, 0xe0, 0x41, 0x27, 0xf0, 0xa2, 0xe4, 0x53,
		0x61, 0x74, 0x55, 0x5b, 0xb0, 0x43, 0x66, 0x47, 0xf1, 0x9f, 0x05, 0x2f, 0x72, 0xee, 0x0b, 0x5e,
		0x64, 0x8f, 0xe2, 0xfd, 0x93, 0x4f, 0xc3, 0x0f, 0xf1, 0x77, 0x85, 0xa0, 0x6f, 0xff, 0x67, 0xc0,
		0xac, 0xe1, 0x47, 0x1e, 0xda, 0xdd, 0xae, 0xdb, 0xb1, 0x98, 0xff, 0xe0, 0xfa, 0x8c, 0x0d, 0x8d,
		0xc2, 0x02, 0xf7, 0xbe, 0x46, 0xc3, 0x3f, 0x0a, 0x7e, 0xe0, 0x30, 0xcb, 0xe6, 0x3c, 0x74, 0xef,
		0x07, 0x9c, 0x15, 0xc6, 0x2d, 0xff, 0xa3, 0xc9, 0x87, 0x82, 0x4e, 0x4d, 0x73, 0x47, 0x9b, 0xc1,
		0xc3, 0x41, 0x87, 0xfb, 0x63, 0xb7, 0xea, 0x22, 0xd9, 0x8b, 0xf3, 0xd1, 0x3a, 0x37, 0xc6, 0xcb,
		0xdc, 0x7e, 0xf3, 0x7d, 0xf4, 0xf6, 0x07, 0xed, 0xcb, 0xc9, 0x3e, 0x24, 0x9f, 0xda, 0x17, 0xf1,
		0x3e, 0xb4, 0x6b, 0xc3, 0x7d, 0x88, 0xff, 0x6c, 0x9f, 0x46, 0xce, 0x7d, 0xfb, 0x34, 0xb2, 0x9b,
		0xc3, 0x6d, 0x98, 0x7c, 0x18, 0xfe, 0x3f, 0xfe, 0xa6, 0x7d, 0x11, 0xef, 0xc2, 0xf0, 0x53, 0x73,
		0xb4, 0x09, 0xf5, 0xd7, 0x3d, 0x68, 0x37, 0xbd, 0xaf, 0xd1, 0xf0, 0x8f, 0xf6, 0x79, 0xe0, 0xb0,
		0xda, 0x64, 0x0b, 0xda, 0xd7, 0x83, 0xfb, 0xf8, 0x6f, 0x46, 0xff, 0x6f, 0x5f, 0xc7, 0x1b, 0xf0,
		0x01, 0x68, 0xb8, 0x21, 0x48, 0x68, 0x0e, 0xfc, 0x2f, 0x7e, 0xf0, 0x97, 0x6f, 0x45, 0x83, 0x7b,
		0xee, 0x7d, 0xd5, 0xaf, 0xcd, 0xf6, 0x9b, 0xf9, 0xa3, 0xdf, 0x36, 0xc5, 0x74, 0xd1, 0x6f, 0x5b,
		0xa2, 0x44, 0xa3, 0xdf, 0xb6, 0xcc, 0x83, 0x88, 0x7e, 0xdb, 0x59, 0x9b, 0xe1, 0xe8, 0xb7, 0x0d,
		0x4b, 0x64, 0x22, 0x0c, 0xda, 0xf5, 0xdb, 0x1e, 0x39, 0x2c, 0xda, 0xe6, 0x66, 0xe8, 0xe6, 0x6f,
		0x69, 0x68, 0x3c, 0x69, 0x6b, 0x44, 0xe9, 0x6c, 0x4c, 0xe5, 0xc2, 0xa8, 0xd2, 0xdd, 0xb8, 0xca,
		0x8d, 0x91, 0x95, 0x1b, 0x63, 0x2b, 0x2f, 0x46, 0x97, 0x5e, 0xc6, 0x97, 0x66, 0x46, 0x98, 0xb6,
		0xc6, 0x58, 0x32, 0x71, 0x8f, 0xf9, 0x0f, 0x31, 0x3b, 0xae, 0x29, 0x5e, 0x26, 0x4d, 0x0c, 0x46,
		0xef, 0xa1, 0x29, 0xc6, 0xe8, 0x99, 0x43, 0xab, 0xbd, 0xb9, 0x96, 0x07, 0xb3, 0x2d, 0x57, 0xe6,
		0x5b, 0x5e, 0xcc, 0xb8, 0xdc, 0x99, 0x73, 0xb9, 0x33, 0xeb, 0xf2, 0x66, 0xde, 0xe9, 0x69, 0xe6,
		0x69, 0x6a, 0xee, 0x25, 0xc2, 0xa3, 0x6d, 0x4e, 0xee, 0x9c, 0xd6, 0x18, 0xb8, 0x3e, 0x2f, 0xed,
		0xe5, 0x20, 0xc0, 0x79, 0x4f, 0xe3, 0x57, 0xb8, 0xb2, 0xfd, 0x07, 0xa6, 0x7d, 0xbe, 0x5b, 0x0e,
		0xe2, 0x4f, 0xcf, 0x5c, 0x3f, 0x17, 0x81, 0xb4, 0x46, 0x92, 0x46, 0xa9, 0xaf, 0x71, 0x3e, 0xf7,
		0x3e, 0x27, 0xa1, 0xdd, 0xe1, 0x6e, 0xe0, 0x1f, 0xbb, 0x0f, 0xae, 0xae, 0xf5, 0xec, 0x17, 0x63,
		0x31, 0x7b, 0xb0, 0xb9, 0xfb, 0x95, 0x69, 0x59, 0x46, 0x3d, 0x47, 0x6a, 0x7d, 0x16, 0x0a, 0xec,
		0xa7, 0xfc, 0x41, 0xc1, 0x5e, 0xb5, 0xba, 0x5b, 0x05, 0x1c, 0x00, 0x0e, 0xe0, 0x9b, 0x6c, 0xc0,
		0xec, 0x5b, 0xc8, 0xe5, 0x80, 0xba, 0x5b, 0x02, 0x32, 0x5c, 0x67, 0x0f, 0x56, 0xe7, 0xba, 0x99,
		0x6f, 0xfd, 0x56, 0x70, 0xff, 0x19, 0xbd, 0x00, 0xb8, 0x7f, 0xc5, 0x5e, 0x06, 0xdc, 0xbf, 0xa2,
		0x2f, 0x04, 0xee, 0x1f, 0x16, 0x13, 0xac, 0xa6, 0x89, 0xf0, 0x80, 0xfb, 0x57, 0xce, 0x86, 0x02,
		0xf7, 0x9f, 0xf5, 0x17, 0xb8, 0x7f, 0xb5, 0x5e, 0x06, 0xdc, 0xbf, 0x2e, 0x58, 0x0c, 0xee, 0x5f,
		0x41, 0x28, 0x00, 0xf7, 0x0f, 0x38, 0x00, 0x1c, 0x6c, 0xae, 0x6f, 0xa2, 0xff, 0xec, 0xc1, 0xfd,
		0x43, 0xdd, 0x2d, 0x03, 0x99, 0xaf, 0x63, 0x8d, 0xa0, 0x39, 0xf9, 0x3f, 0x7a, 0x0d, 0xb0, 0xff,
		0x59, 0x4c, 0x1f, 0xec, 0xbf, 0x42, 0x07, 0x01, 0xec, 0xbf, 0x4a, 0x07, 0x1b, 0xec, 0xbf, 0xe2,
		0x2f, 0x04, 0xf6, 0x1f, 0x76, 0xd3, 0xda, 0xc2, 0x93, 0x1f, 0xf6, 0xff, 0xde, 0xf5, 0xed, 0xf0,
		0x39, 0x07, 0xec, 0xff, 0x21, 0x5c, 0x1d, 0xcc, 0x58, 0x77, 0x80, 0xd1, 0xb5, 0xd4, 0x6a, 0x32,
		0xff, 0x3c, 0x97, 0x5c, 0x9d, 0x2d, 0xa0, 0x58, 0xd0, 0xb1, 0x22, 0x90, 0x91, 0xc7, 0x4a, 0xac,
		0x37, 0xa3, 0x7d, 0xb9, 0x8e, 0xb7, 0x45, 0xa7, 0xba, 0xac, 0xfa, 0x41, 0x2a, 0x6a, 0xb8, 0x01,
		0xec, 0x37, 0x09, 0xe4, 0x51, 0x60, 0x5b, 0x11, 0x58, 0x47, 0xa1, 0xed, 0x4d, 0x98, 0xa1, 0xe2,
		0xc0, 0x6d, 0x9e, 0xba, 0x11, 0x1f, 0xca, 0xab, 0x16, 0x70, 0x6d, 0x9e, 0xb9, 0x7e, 0xdd, 0x63,
		0x3d, 0xe6, 0xeb, 0x72, 0x37, 0x6e, 0x9e, 0xd9, 0x4f, 0x53, 0x33, 0x2e, 0x1d, 0x54, 0x2a, 0x7b,
		0xfb, 0x95, 0x4a, 0x71, 0x7f, 0x77, 0xbf, 0x78, 0x58, 0xad, 0x96, 0xf6, 0x74, 0xe8, 0x3f, 0x6c,
		0x5e, 0x84, 0x0e, 0x0b, 0x99, 0xf3, 0xf1, 0xd9, 0x3c, 0x32, 0xfc, 0x81, 0xe7, 0xe9, 0x34, 0xe5,
		0x9b, 0x88, 0x85, 0x5a, 0x04, 0x1d, 0xa8, 0x8e, 0x14, 0x9a, 0x99, 0x76, 0x79, 0x36, 0xe9, 0x34,
		0xb0, 0xe1, 0xf2, 0x66, 0xbb, 0xa9, 0x6d, 0xad, 0xa9, 0x6b, 0x03, 0xa9, 0x39, 0x33, 0x45, 0xb1,
		0x56, 0x17, 0x8c, 0xcd, 0x23, 0xb6, 0x2a, 0x8c, 0xa9, 0xb9, 0xc1, 0x52, 0x35, 0x41, 0x54, 0x3d,
		0x88, 0x52, 0x6b, 0x46, 0x8a, 0x81, 0xa5, 0xc9, 0x9e, 0x78, 0x68, 0x5b, 0x83, 0xa1, 0x4c, 0xdf,
		0x7b, 0x6a, 0xde, 0x59, 0x9b, 0x7f, 0x3d, 0x32, 0x5f, 0xd9, 0xdc, 0x27, 0x85, 0x15, 0xcb, 0xe4,
		0x0e, 0x7f, 0x67, 0x67, 0x74, 0x19, 0x55, 0x18, 0x62, 0xbc, 0xf1, 0x0f, 0xe3, 0x97, 0x71, 0x3c,
		0xcb, 0x08, 0xfd, 0x8f, 0x9a, 0xf5, 0xf6, 0xf9, 0xc5, 0x71, 0xbd, 0x5d, 0x6b, 0x36, 0xaf, 0x1a,
		0x1f, 0x6f, 0x9a, 0xf5, 0x5f, 0x54, 0x86, 0x6f, 0x4d, 0x22, 0xc0, 0xa6, 0x23, 0xbc, 0x62, 0xf9,
		0x55, 0xdc, 0x21, 0xd5, 0x2d, 0x7e, 0x6b, 0x26, 0x3e, 0x6b, 0x75, 0x01, 0xff, 0x00, 0xe2, 0x62,
		0xf5, 0x25, 0x3f, 0x66, 0x51, 0x27, 0x74, 0xfb, 0x5a, 0xb0, 0x16, 0x09, 0xf8, 0x35, 0xfc, 0x8e,
		0x37, 0x70, 0x98, 0xc1, 0x1f, 0x99, 0x31, 0x6b, 0xad, 0x1a, 0x9d, 0xc0, 0xe7, 0xb6, 0xeb, 0xb3,
		0xd0, 0x08, 0x7c, 0xef, 0xd9, 0x18, 0x1e, 0xd3, 0xf8, 0x9f, 0xc5, 0x52, 0x14, 0x74, 0xef, 0xfc,
		0xe1, 0x37, 0xcd, 0xd3, 0xcf, 0x86, 0x13, 0xbf, 0xf8, 0x3d, 0x8b, 0x0c, 0x3b, 0x7e, 0x86, 0x91,
		0x3c, 0x43, 0xf5, 0x63, 0xad, 0x51, 0xbc, 0xec, 0x34, 0x62, 0x3a, 0x53, 0x92, 0xa6, 0x01, 0x3d,
		0xa3, 0x63, 0xf0, 0xeb, 0x0c, 0x80, 0x12, 0x1f, 0x12, 0xd0, 0x3d, 0x79, 0xa2, 0x7b, 0x94, 0x9b,
		0x55, 0x0b, 0x1e, 0x9e, 0xbe, 0x34, 0x58, 0x8e, 0xe8, 0x2f, 0x05, 0x55, 0x95, 0xf6, 0x6c, 0x97,
		0x5a, 0xba, 0x43, 0x1d, 0xec, 0x53, 0x08, 0x65, 0xcc, 0x30, 0x18, 0x70, 0x16, 0x5a, 0xb6, 0xe3,
		0x84, 0x2c, 0x8a, 0x94, 0x43, 0x99, 0xc4, 0x15, 0x78, 0x33, 0x4f, 0xc5, 0x70, 0x5a, 0xcd, 0x66,
		0x9c, 0xca, 0xe6, 0x70, 0xaa, 0x9c, 0x9b, 0xa9, 0x45, 0xce, 0xa5, 0xea, 0xbe, 0xa1, 0x36, 0x39,
		0x92, 0xda, 0xb8, 0x7f, 0xba, 0xe4, 0x34, 0xe2, 0xc6, 0xe6, 0x87, 0x2c, 0x9c, 0xa2, 0xcd, 0x24,
		0x15, 0xef, 0xe0, 0xad, 0x45, 0xa7, 0x6e, 0xc5, 0x3b, 0x72, 0x2b, 0x5f, 0xd0, 0x41, 0x87, 0x82,
		0x0d, 0x5a, 0x15, 0x64, 0xd0, 0xf1, 0xba, 0x4d, 0x8b, 0x82, 0x0a, 0x7a, 0x5f, 0xb8, 0x69, 0x50,
		0x10, 0x01, 0xb1, 0x72, 0x79, 0x30, 0x2a, 0x92, 0x09, 0xaa, 0x4a, 0x2e, 0x2c, 0x45, 0x77, 0x35,
		0x59, 0x86, 0x65, 0x06, 0x87, 0xe2, 0xd9, 0x1f, 0xda, 0x54, 0x92, 0xd2, 0xa9, 0x62, 0x94, 0x96,
		0x95, 0xa1, 0x74, 0xab, 0x00, 0xa5, 0x6d, 0xa5, 0x27, 0x6d, 0x2b, 0x3a, 0xe9, 0x5a, 0xb9, 0x09,
		0xa9, 0x97, 0x69, 0x36, 0x5d, 0x9b, 0x8a, 0x4b, 0x09, 0xea, 0xba, 0xfd, 0xaf, 0x95, 0xc9, 0x5d,
		0x84, 0xe5, 0x07, 0xd6, 0xff, 0x05, 0xbe, 0x0e, 0xe5, 0x42, 0x12, 0x8a, 0xe2, 0x40, 0x83, 0xb9,
		0x5e, 0xda, 0x9c, 0xb3, 0xd0, 0xd7, 0xa6, 0x71, 0x82, 0xb9, 0xb5, 0x75, 0x5b, 0xb4, 0x0e, 0x5b,
		0xdf, 0x6f, 0x4b, 0xd6, 0x61, 0x6b, 0xf4, 0xb1, 0x14, 0xff, 0x6f, 0xf4, 0xb9, 0x7c, 0x5b, 0xb4,
		0x2a, 0x93, 0xcf, 0xd5, 0xdb, 0xa2, 0x55, 0x6d, 0x6d, 0xdf, 0xdd, 0xed, 0x6c, 0x7f, 0xdb, 0x7d,
		0x59, 0xfd, 0x17, 0xb7, 0xfe, 0xfb, 0xf6, 0xee, 0xae, 0xff, 0xed, 0xfc, 0x65, 0xf8, 0xe7, 0xe9,
		0x4b, 0xeb, 0xef, 0xdb, 0xff, 0xd4, 0x45, 0x37, 0x0d, 0x5f, 0xe4, 0xee, 0x6e, 0xa7, 0xf5, 0x37,
		0xf5, 0x61, 0xbd, 0x85, 0xe0, 0x27, 0xf8, 0xef, 0xf4, 0x36, 0x0f, 0x72, 0xdd, 0xc8, 0x83, 0x7d,
		0x66, 0xc3, 0x07, 0x94, 0xaf, 0xef, 0xa5, 0x63, 0xe8, 0xcf, 0x55, 0xbc, 0xc4, 0xb5, 0xd1, 0x0a,
		0xab, 0x5c, 0xaa, 0x0b, 0x69, 0x6e, 0x5a, 0xe1, 0x24, 0xd2, 0xdc, 0xd2, 0x7e, 0xe5, 0x22, 0xcd,
		0xed, 0xea, 0xe2, 0xa6, 0x59, 0xbf, 0x6a, 0xd7, 0x8e, 0x8f, 0xaf, 0xea, 0xd7, 0xd7, 0x48, 0x73,
		0x13, 0x4b, 0x6f, 0x21, 0xcd, 0x8d, 0x98, 0xcc, 0x5a, 0x5d, 0xc0, 0x91, 0xe6, 0xb6, 0xc6, 0x92,
		0x6b, 0x9f, 0xe6, 0x36, 0x32, 0x54, 0x8d, 0xb1, 0xa1, 0xfa, 0xc3, 0x0c, 0x9e, 0x3b, 0x3f, 0xe8,
		0x1a, 0x93, 0x0c, 0x1e, 0x37, 0x32, 0x46, 0x06, 0x98, 0x51, 0xd3, 0xe3, 0xf2, 0x0a, 0xd9, 0x6d,
		0xc0, 0xcc, 0x77, 0xe0, 0x26, 0xcd, 0xd9, 0x00, 0xaf, 0x93, 0x27, 0x5e, 0x07, 0x49, 0x6d, 0x5a,
		0xf9, 0x73, 0x48, 0x6a, 0x93, 0xc5, 0x73, 0x21, 0xa9, 0x4d, 0x3c, 0xb3, 0x85, 0xa4, 0x36, 0xe5,
		0x51, 0x46, 0xd1, 0x68, 0x76, 0xa5, 0xa3, 0xd8, 0x91, 0xc2, 0xb6, 0xe2, 0xc4, 0x90, 0xc2, 0x96,
		0x6f, 0x07, 0x10, 0x29, 0x6c, 0xa4, 0x7e, 0x1d, 0x52, 0xd8, 0x34, 0xb5, 0xde, 0x95, 0x4d, 0x61,
		0xe3, 0x2a, 0x47, 0x91, 0x25, 0x90, 0x1c, 0xcf, 0x52, 0xed, 0x04, 0xb6, 0x22, 0x12, 0xd8, 0x72,
		0x67, 0x12, 0x68, 0x65, 0x1a, 0xe8, 0x62, 0x22, 0x68, 0x67, 0x2a, 0x68, 0x67, 0x32, 0xe8, 0x66,
		0x3a, 0xa8, 0x69, 0x42, 0x28, 0x6a, 0x4a, 0x24, 0x9b, 0xab, 0x7c, 0xfc, 0xf7, 0x6b, 0xdc, 0xb7,
		0xc3, 0x7c, 0xee, 0xf2, 0xe7, 0x90, 0x75, 0x55, 0xc6, 0xcd, 0x89, 0x2f, 0xaf, 0x70, 0x4b, 0x1d,
		0xb3, 0x31, 0x5e, 0xca, 0x8f, 0x76, 0xc4, 0xf4, 0xb9, 0xaa, 0xbd, 0xb8, 0xbe, 0x3c, 0x69, 0x37,
		0xeb, 0xed, 0xd3, 0xeb, 0x5a, 0xbb, 0x79, 0xfa, 0xb9, 0xdd, 0xfc, 0xf3, 0xb2, 0xae, 0x3a, 0xd8,
		0x7f, 0xb6, 0xbd, 0x01, 0x8b, 0xb4, 0x88, 0xa3, 0xd7, 0x24, 0x2f, 0x6c, 0x22, 0x0d, 0x43, 0x41,
		0x68, 0x9c, 0xff, 0xae, 0x41, 0x7e, 0xd2, 0xaf, 0xd8, 0x7a, 0x92, 0xad, 0x6f, 0x9f, 0x5e, 0x7c,
		0xaa, 0x9d, 0x42, 0x00, 0x36, 0x52, 0x00, 0x66, 0x0b, 0x93, 0x43, 0x08, 0x36, 0x52, 0x08, 0x2e,
		0x2e, 0x9b, 0x8d, 0x4f, 0xb5, 0xd3, 0x91, 0x30, 0x5c, 0x5e, 0x5d, 0x5c, 0xd6, 0xaf, 0x9a, 0x7f,
		0x42, 0x16, 0x36, 0x52, 0x16, 0x66, 0x43, 0x38, 0x21, 0x04, 0x9b, 0x2c, 0x04, 0x8d, 0xcb, 0xcf,
		0x7b, 0x1a, 0x49, 0x82, 0xd2, 0x33, 0x6c, 0x81, 0xe8, 0xd1, 0x7c, 0x56, 0xb8, 0x53, 0xfb, 0x11,
		0x7a, 0x20, 0x22, 0x8e, 0x2e, 0x22, 0x4e, 0xd5, 0x54, 0x4f, 0x1d, 0x03, 0xe1, 0x14, 0x4c, 0xea,
		0x44, 0x00, 0xdc, 0x22, 0xd9, 0x1a, 0xf8, 0x5f, 0xfc, 0xe0, 0x2f, 0x3f, 0x6e, 0x91, 0xac, 0x6c,
		0x18, 0xdc, 0xf4, 0x24, 0x11, 0x0c, 0xf7, 0x9e, 0x69, 0x21, 0x18, 0x2e, 0x85, 0xb8, 0x21, 0x18,
		0x2e, 0xcd, 0x81, 0x40, 0x30, 0x9c, 0x68, 0x9b, 0x0f, 0xc1, 0x70, 0xfa, 0x1b, 0xee, 0xa8, 0xe7,
		0x9e, 0x0e, 0x93, 0x51, 0xcf, 0x3d, 0x7f, 0xc6, 0x80, 0x0e, 0x46, 0x81, 0x56, 0xc6, 0x81, 0x2e,
		0x46, 0x82, 0x76, 0xc6, 0x82, 0x76, 0x46, 0x83, 0x6e, 0xc6, 0x83, 0x9a, 0x46, 0x84, 0xa2, 0xc6,
		0x84, 0xf2, 0x46, 0x45, 0x32, 0x41, 0x8f, 0xf9, 0x0f, 0x31, 0x15, 0xa8, 0x49, 0xd0, 0xd6, 0x78,
		0xbe, 0xa8, 0xe6, 0xbe, 0x09, 0x66, 0x87, 0x4e, 0xe6, 0x87, 0x96, 0x66, 0x88, 0x6e, 0xe6, 0x88,
		0xb6, 0x66, 0x89, 0xb6, 0xe6, 0x89, 0xae, 0x66, 0x8a, 0xda, 0xe6, 0x8a, 0xe2, 0x66, 0x4b, 0xb2,
		0xe9, 0xfa, 0x55, 0x73, 0x1f, 0xb8, 0x3e, 0x2f, 0xed, 0x69, 0x54, 0xbf, 0x7d, 0x4f, 0x83, 0xa9,
		0x5e, 0xd9, 0xfe, 0x03, 0xd3, 0xa6, 0x78, 0xbb, 0x1e, 0x2a, 0x2c, 0x5e, 0xd8, 0x33, 0xd7, 0xd7,
		0x46, 0xe7, 0x26, 0x93, 0x8e, 0x73, 0x10, 0xd4, 0x37, 0x1a, 0xe7, 0xe6, 0x7d, 0x12, 0xda, 0x1d,
		0xee, 0x06, 0xfe, 0xb1, 0xfb, 0xe0, 0xf2, 0x48, 0xc3, 0x17, 0x38, 0x67, 0x0f, 0x36, 0x77, 0xbf,
		0x0e, 0xd7, 0xbe, 0x6b, 0x7b, 0x11, 0xd3, 0x66, 0xf6, 0x2f, 0xbf, 0x6a, 0x74, 0x24, 0xed, 0x27,
		0x7d, 0x8f, 0xe4, 0x5e, 0xb5, 0xba, 0x5b, 0xc5, 0xb1, 0xc4, 0xb1, 0xcc, 0x81, 0x6d, 0xac, 0xcf,
		0x2c, 0xd1, 0x5a, 0x24, 0x77, 0x6a, 0x41, 0xed, 0x0a, 0x24, 0x73, 0x5e, 0x8f, 0xc2, 0x95, 0x48,
		0xde, 0xfa, 0x3b, 0xe0, 0x44, 0x05, 0x4d, 0x14, 0x9c, 0x28, 0xf1, 0xa4, 0xc1, 0x89, 0x4a, 0x9a,
		0x38, 0x38, 0x51, 0x58, 0x04, 0xda, 0x38, 0x8b, 0xe0, 0x44, 0xe9, 0x6d, 0x04, 0x70, 0xa2, 0xa2,
		0xbf, 0xc0, 0x89, 0xd2, 0x4e, 0x1a, 0x9c, 0x68, 0x56, 0x18, 0x07, 0x4e, 0x54, 0xc2, 0x91, 0x04,
		0x27, 0x8a, 0x63, 0xb9, 0x21, 0xc7, 0x12, 0x9c, 0xa8, 0x90, 0x2f, 0x70, 0xa2, 0xb9, 0x53, 0x0b,
		0xe6, 0xd7, 0x31, 0xa2, 0x6a, 0x42, 0x8a, 0x8e, 0xa6, 0x0b, 0x56, 0x54, 0xc4, 0x34, 0xc1, 0x8a,
		0x12, 0x0a, 0x2a, 0x58, 0x51, 0xca, 0x03, 0x06, 0x56, 0x54, 0xf2, 0xc4, 0xc1, 0x8a, 0x6e, 0x9e,
		0xbb, 0xa8, 0x21, 0x2b, 0x7a, 0xef, 0xfa, 0x76, 0xf8, 0xac, 0x11, 0x2b, 0x7a, 0x08, 0x93, 0x3a,
		0x47, 0x33, 0x53, 0x35, 0x63, 0x4d, 0xf1, 0xfa, 0x55, 0xc9, 0x3c, 0x75, 0xae, 0x63, 0x35, 0x55,
		0x2d, 0xa7, 0xa0, 0x72, 0xda, 0xbc, 0xa1, 0x69, 0x6d, 0xab, 0x9b, 0xd1, 0xfa, 0x2a, 0x5a, 0xe6,
		0x4a, 0x5d, 0x5c, 0x42, 0x81, 0x10, 0x8d, 0x91, 0x31, 0x2f, 0x88, 0x88, 0xfa, 0x7e, 0x82, 0x31,
		0x10, 0x45, 0xfe, 0x54, 0x9e, 0x89, 0x22, 0x28, 0x67, 0x9e, 0xba, 0x11, 0xaf, 0x71, 0xae, 0x56,
		0xb9, 0x02, 0xf3, 0xcc, 0xf5, 0xeb, 0x1e, 0xeb, 0x31, 0x5f, 0xb5, 0x5b, 0x30, 0xf3, 0xcc, 0x7e,
		0x9a, 0x9a, 0x59, 0xe9, 0xa0, 0x52, 0xd9, 0xdb, 0xaf, 0x54, 0x8a, 0xfb, 0xbb, 0xfb, 0xc5, 0xc3,
		0x6a, 0xb5, 0xb4, 0xa7, 0x52, 0xc3, 0x1e, 0xf3, 0x22, 0x74, 0x58, 0xc8, 0x9c, 0x8f, 0xcf, 0xe6,
		0x91, 0xe1, 0x0f, 0x3c, 0x4f, 0xc5, 0xa9, 0xdd, 0x44, 0x2c, 0x54, 0xea, 0xba, 0x50, 0x95, 0x93,
		0xa9, 0xa8, 0xdd, 0xa1, 0xb3, 0xbd, 0x61, 0x2a, 0xd5, 0xe0, 0x5c, 0x37, 0xdb, 0x42, 0x0d, 0x83,
		0x22, 0x7b, 0xf5, 0x9d, 0xed, 0x0c, 0x32, 0x86, 0x27, 0xd5, 0x60, 0x49, 0x57, 0x38, 0x52, 0x00,
		0x8a, 0x34, 0x83, 0xa0, 0x6c, 0xe1, 0x27, 0xbb, 0x43, 0x9f, 0xcd, 0xc8, 0x19, 0xc1, 0x8c, 0xc9,
		0x9e, 0x78, 0x68, 0x5b, 0x83, 0xa1, 0x64, 0xdd, 0x7b, 0xd9, 0x5e, 0x2d, 0x99, 0x7f, 0x3d, 0x32,
		0x3f, 0xf3, 0x50, 0x6f, 0x05, 0x20, 0x76, 0x72, 0x75, 0xb6, 0xb3, 0x33, 0xa2, 0xad, 0x0b, 0x43,
		0xb4, 0x33, 0xfe, 0x61, 0xfc, 0x32, 0xbe, 0xe6, 0x1d, 0xe1, 0xe0, 0x51, 0xf3, 0xaa, 0x76, 0x72,
		0xd2, 0xf8, 0xd4, 0xae, 0x9f, 0xff, 0xd6, 0x38, 0xaf, 0xd7, 0xaf, 0x1a, 0xe7, 0xbf, 0xfd, 0xa2,
		0x02, 0xcc, 0x29, 0x16, 0xba, 0x30, 0x1d, 0x9a, 0x10, 0x4b, 0x98, 0x22, 0xfe, 0x86, 0xaa, 0x81,
		0x07, 0x33, 0x81, 0x05, 0xeb, 0x88, 0xe0, 0x07, 0x78, 0x94, 0x86, 0x79, 0xcc, 0xa2, 0x4e, 0xe8,
		0xf6, 0x95, 0x72, 0x27, 0x13, 0x60, 0x69, 0xf8, 0x1d, 0x6f, 0xe0, 0x30, 0x83, 0x3f, 0x32, 0x63,
		0x81, 0xc1, 0x64, 0xb8, 0x7e, 0x37, 0x08, 0x7b, 0xb1, 0xd1, 0x69, 0x0c, 0x8f, 0xcc, 0x9d, 0x3f,
		0xfc, 0x97, 0x23, 0x8b, 0xc1, 0x38, 0xbd, 0xae, 0x19, 0xf7, 0x6c, 0xf8, 0xcf, 0x9c, 0xf8, 0x1d,
		0xef, 0x99, 0x63, 0xb8, 0x91, 0x61, 0x1b, 0x63, 0x3b, 0xc2, 0x98, 0x32, 0x24, 0xee, 0xfc, 0xd3,
		0xeb, 0x9a, 0x2a, 0x07, 0x4e, 0xc1, 0x90, 0xaa, 0x69, 0x6c, 0x72, 0xa6, 0x24, 0x46, 0x21, 0xbf,
		0x59, 0xe5, 0xf8, 0xa8, 0x19, 0xa8, 0x92, 0x2c, 0xd4, 0x70, 0xce, 0x55, 0x70, 0xce, 0x33, 0x1b,
		0xbd, 0xb5, 0x51, 0x5e, 0x82, 0x22, 0x24, 0x84, 0x86, 0xe4, 0x43, 0x86, 0x50, 0xae, 0x0f, 0xdf,
		0x90, 0x0d, 0x98, 0xca, 0x07, 0x8f, 0x0c, 0x8e, 0xaf, 0x12, 0x7d, 0xcd, 0x14, 0xea, 0x5f, 0x96,
		0x71, 0x8b, 0x92, 0xcc, 0x33, 0x3c, 0x54, 0xc8, 0xdc, 0x50, 0x2a, 0x23, 0x43, 0x15, 0xb7, 0x40,
		0xb9, 0x0c, 0x0a, 0xe5, 0x2c, 0x7f, 0xd5, 0x32, 0x1e, 0x36, 0x8b, 0x28, 0xce, 0xba, 0xc5, 0x86,
		0x22, 0xfd, 0xb9, 0x94, 0xea, 0xc3, 0xa5, 0x48, 0xbf, 0x2d, 0x65, 0xd2, 0x16, 0x55, 0x4a, 0x4b,
		0x54, 0x32, 0xed, 0x50, 0x65, 0x6e, 0x5e, 0xa9, 0xb4, 0x41, 0x3d, 0xd8, 0x79, 0x85, 0xd2, 0xfe,
		0x36, 0x3b, 0x48, 0x43, 0x95, 0xfe, 0x53, 0xaa, 0xf5, 0x99, 0x52, 0xb3, 0x9f, 0x94, 0x62, 0xd5,
		0x00, 0x94, 0xcb, 0xfa, 0x57, 0x31, 0xbb, 0x5f, 0xe9, 0x2c, 0x7e, 0x55, 0xb3, 0xf5, 0x95, 0xcf,
		0xca, 0x57, 0x3e, 0xfb, 0x5e, 0xf5, 0x2c, 0x7b, 0x24, 0x57, 0x4c, 0x6f, 0x96, 0x72, 0xd9, 0xf1,
		0xea, 0xd6, 0x06, 0x55, 0xb0, 0x06, 0xa8, 0xa2, 0xb5, 0x3e, 0x15, 0x4c, 0x41, 0x54, 0xb9, 0x76,
		0xa7, 0xea, 0x35, 0x3a, 0xb5, 0x29, 0xfa, 0xa7, 0x7e, 0x71, 0x3f, 0x05, 0x6b, 0x2b, 0x28, 0x5d,
		0x43, 0x53, 0x87, 0x5a, 0x99, 0x38, 0x1e, 0x39, 0xb3, 0xcd, 0xd4, 0x9b, 0x4d, 0x0b, 0xa1, 0x53,
		0xaa, 0xc0, 0xa7, 0x5a, 0xfd, 0x77, 0x54, 0xec, 0xb3, 0x03, 0xae, 0xe8, 0x27, 0x13, 0x02, 0x57,
		0xb4, 0xe2, 0xe4, 0xc0, 0x15, 0xad, 0x39, 0x41, 0x70, 0x45, 0x79, 0xb0, 0x00, 0xc0, 0x15, 0xfd,
		0x0c, 0xb5, 0xc0, 0x15, 0xbd, 0x63, 0x4a, 0xe0, 0x8a, 0xde, 0xeb, 0x10, 0x83, 0x2b, 0x82, 0x33,
		0x0c, 0xd8, 0x5f, 0x78, 0x34, 0xc0, 0x15, 0xe1, 0x78, 0xc0, 0x36, 0x53, 0x79, 0x36, 0xe0, 0x8a,
		0x94, 0x81, 0x4f, 0xc5, 0xfa, 0x92, 0x28, 0xd9, 0x7f, 0x04, 0x6c, 0xd1, 0x4f, 0x26, 0x04, 0xb6,
		0x68, 0xc5, 0xc9, 0x81, 0x2d, 0x5a, 0x73, 0x82, 0x60, 0x8b, 0xf2, 0x60, 0x03, 0x80, 0x2d, 0xfa,
		0x19, 0x6a, 0x29, 0xd7, 0x5f, 0x43, 0xad, 0x3e, 0x1a, 0x28, 0x5f, 0x88, 0xf2, 0x85, 0xd3, 0xf3,
		0x51, 0xbc, 0x82, 0x80, 0x8a, 0x2d, 0x2b, 0x54, 0xad, 0x23, 0xa0, 0x56, 0xfb, 0x09, 0x14, 0x2c,
		0xdc, 0x28, 0x40, 0xd1, 0x08, 0x48, 0x50, 0x82, 0xe4, 0x07, 0xd0, 0xb1, 0x31, 0xa5, 0x47, 0x3e,
		0xe4, 0x18, 0x1c, 0x54, 0xa8, 0x62, 0x9a, 0x6d, 0xf5, 0x52, 0x05, 0x8a, 0x79, 0xec, 0xec, 0x14,
		0x7e, 0x52, 0x2d, 0xf2, 0xe2, 0xfa, 0xf2, 0xe4, 0x73, 0xb9, 0x7d, 0xda, 0x38, 0xff, 0xbd, 0x7d,
		0xfd, 0xe9, 0xe2, 0xb2, 0xde, 0xbe, 0xb8, 0xac, 0xfd, 0xbf, 0x9b, 0x7a, 0xfb, 0xf4, 0xba, 0xf6,
		0xcb, 0x9d, 0x1f, 0x84, 0xc6, 0xbb, 0x9f, 0x51, 0xbb, 0xaa, 0xd7, 0x52, 0x3f, 0xe3, 0x7a, 0xfe,
		0x09, 0x28, 0x44, 0xa2, 0x5a, 0xbd, 0x54, 0xb5, 0xcb, 0x90, 0xe4, 0x43, 0xe8, 0x3f, 0x6c, 0xa0,
		0x77, 0xaa, 0x54, 0x85, 0xd6, 0x85, 0x95, 0x59, 0xa7, 0x4a, 0x53, 0x8e, 0xcc, 0xa8, 0x41, 0xc8,
		0xe2, 0xca, 0x95, 0x46, 0xbc, 0xc3, 0x41, 0xd7, 0x60, 0x3e, 0x0f, 0x9f, 0xef, 0xfc, 0xb9, 0xc2,
		0x95, 0xbe, 0x61, 0xfb, 0x46, 0x90, 0xfc, 0x7a, 0xd6, 0x27, 0x58, 0x21, 0x0e, 0x5b, 0xdd, 0x82,
		0xab, 0x4a, 0x12, 0xd6, 0x4b, 0x0b, 0xac, 0x8a, 0x93, 0x4d, 0x38, 0xed, 0xb9, 0x1e, 0xb5, 0x95,
		0x6b, 0xbf, 0x23, 0x63, 0x32, 0x42, 0x71, 0x12, 0x22, 0x03, 0x54, 0x55, 0x94, 0x70, 0x90, 0x8b,
		0x72, 0xf2, 0x4e, 0xb9, 0xc4, 0xf3, 0x66, 0x86, 0xc1, 0x80, 0xb3, 0x30, 0x96, 0x2b, 0xd9, 0x67,
		0x2d, 0x31, 0xcf, 0xa6, 0xe6, 0x20, 0x19, 0x69, 0xb2, 0xa9, 0xf4, 0x96, 0x59, 0x00, 0x49, 0x96,
		0x81, 0x22, 0x4a, 0x04, 0x84, 0x64, 0x6d, 0x34, 0x2b, 0x13, 0xe0, 0xa1, 0x8c, 0x5d, 0xac, 0x4a,
		0xc0, 0x46, 0xbe, 0x99, 0xdc, 0xac, 0x2a, 0xa9, 0x65, 0x5c, 0x5e, 0x54, 0x89, 0xb2, 0xa2, 0xa8,
		0x8d, 0x8d, 0xda, 0xd8, 0x4a, 0x32, 0x37, 0xa8, 0x8d, 0xad, 0x8b, 0x72, 0xca, 0x98, 0xde, 0xd8,
		0xd4, 0xda, 0xd8, 0x9e, 0xeb, 0x7f, 0xb1, 0x1c, 0x9b, 0xdb, 0xea, 0x30, 0xd9, 0xaf, 0x53, 0x52,
		0xa3, 0x46, 0x76, 0x11, 0x35, 0xb2, 0x95, 0x51, 0x72, 0x4a, 0x2a, 0x3b, 0xd5, 0x94, 0x9e, 0xb2,
		0xca, 0x4f, 0x59, 0x25, 0xa8, 0xaa, 0x32, 0xcc, 0x56, 0x29, 0x66, 0xac, 0x1c, 0x93, 0x4d, 0x51,
		0x26, 0x84, 0x7e, 0xaa, 0x1b, 0x91, 0x22, 0x57, 0x7f, 0x13, 0xbf, 0xeb, 0x50, 0x81, 0xb9, 0x8c,
		0xb7, 0x49, 0x8d, 0xba, 0x0a, 0x0a, 0xe6, 0x5b, 0x38, 0x01, 0xe7, 0xcc, 0xb1, 0xfe, 0x33, 0xb0,
		0x1d, 0x05, 0x93, 0x2e, 0x4a, 0x07, 0x0a, 0xcd, 0xe9, 0xd2, 0xe6, 0x9c, 0x85, 0xbe, 0x72, 0x55,
		0x3a, 0xcc, 0xad, 0xad, 0xdb, 0xa2, 0x75, 0xd8, 0xfa, 0x7e, 0x5b, 0xb2, 0x0e, 0x5b, 0xa3, 0x8f,
		0xa5, 0xf8, 0x7f, 0xa3, 0xcf, 0xe5, 0xdb, 0xa2, 0x55, 0x99, 0x7c, 0xae, 0xde, 0x16, 0xad, 0x6a,
		0x6b, 0xfb, 0xee, 0x6e, 0x67, 0xfb, 0xdb, 0xee, 0xcb, 0xea, 0xbf, 0x68, 0x22, 0x97, 0x5a, 0x25,
		0x35, 0xa4, 0x30, 0xb2, 0x0c, 0x5c, 0x9f, 0xef, 0x96, 0x15, 0x04, 0x95, 0x7d, 0xd4, 0xfd, 0xd1,
		0x46, 0x9a, 0x92, 0x85, 0x42, 0xdd, 0x9f, 0x14, 0xf3, 0x43, 0x61, 0x93, 0x9c, 0xc1, 0xfd, 0xec,
		0xd1, 0xd0, 0xa1, 0xee, 0x4f, 0xa5, 0x7c, 0x58, 0x39, 0xdc, 0xdb, 0x2f, 0x1f, 0xa2, 0xf8, 0x4f,
		0xee, 0xcf, 0x08, 0x8a, 0xff, 0xa8, 0x6c, 0xb0, 0x7e, 0xd8, 0xec, 0x75, 0x78, 0xd9, 0xc8, 0xec,
		0x80, 0xf8, 0xfa, 0xc2, 0x75, 0x14, 0xbb, 0x4f, 0x71, 0x1d, 0xdc, 0xa6, 0x18, 0xb8, 0x4d, 0xf9,
		0x89, 0xa8, 0xe0, 0x36, 0xe5, 0x47, 0x02, 0x8c, 0xdb, 0x94, 0x15, 0x27, 0x86, 0xdb, 0x14, 0xf5,
		0xfc, 0x1a, 0x05, 0x6f, 0x53, 0xd4, 0x22, 0xc6, 0x55, 0x22, 0xc4, 0x95, 0x23, 0xc2, 0x37, 0x8c,
		0x00, 0x87, 0xfd, 0x2c, 0x5f, 0xc2, 0x7a, 0x8c, 0x87, 0x6e, 0x47, 0x1d, 0xf3, 0x79, 0x3c, 0x1f,
		0x58, 0xcf, 0xb0, 0x9e, 0x61, 0x3d, 0xc3, 0x7a, 0x86, 0xf5, 0x0c, 0xeb, 0x59, 0x2d, 0xd4, 0x89,
		0xfa, 0x5d, 0x4b, 0x09, 0x25, 0x65, 0xa8, 0xd5, 0xf1, 0x45, 0xb1, 0x1b, 0x5f, 0x85, 0xe2, 0x06,
		0x54, 0xbc, 0xe1, 0x55, 0xf5, 0x66, 0x57, 0xf9, 0xdb, 0x2a, 0x75, 0x6f, 0xa9, 0x14, 0xba, 0xc1,
		0x55, 0xf2, 0xe6, 0x56, 0xe5, 0x4e, 0x2d, 0x10, 0x7b, 0x4d, 0x0d, 0x24, 0x75, 0x66, 0x01, 0xf2,
		0x44, 0xfe, 0xa1, 0xf0, 0x07, 0xbd, 0x7b, 0x16, 0x5a, 0x9e, 0xeb, 0x7f, 0x89, 0xd4, 0xa1, 0x50,
		0x66, 0x66, 0x05, 0x22, 0x05, 0x44, 0x0a, 0x88, 0x14, 0x10, 0x29, 0x20, 0x52, 0x40, 0xa4, 0xa8,
		0x95, 0xd4, 0xa5, 0x4a, 0xf7, 0x5c, 0x70, 0x28, 0xe0, 0x50, 0xc0, 0xa1, 0xc0, 0x99, 0x04, 0x87,
		0x02, 0x0e, 0x05, 0x1c, 0x0a, 0x38, 0x14, 0x70, 0x28, 0x59, 0x70, 0x28, 0x3c, 0x88, 0xc6, 0xd7,
		0x6a, 0xea, 0x31, 0x29, 0xd3, 0x73, 0x03, 0x9f, 0x02, 0x3e, 0x05, 0x7c, 0x0a, 0xf8, 0x14, 0xf0,
		0x29, 0xe0, 0x53, 0xc0, 0xa7, 0x80, 0x4f, 0x01, 0x9f, 0x02, 0x3e, 0x05, 0x8e, 0x25, 0xf8, 0x14,
		0xf0, 0x29, 0x10, 0x7b, 0xf0, 0x29, 0xe0, 0x53, 0x32, 0xe7, 0x53, 0xb8, 0x0a, 0x96, 0x69, 0x62,
		0x95, 0xc6, 0xb3, 0x01, 0x67, 0x02, 0xce, 0x04, 0x9c, 0x09, 0x38, 0x13, 0x70, 0x26, 0xe0, 0x4c,
		0x94, 0x42, 0x1d, 0xd7, 0x61, 0x3e, 0x77, 0xf9, 0x73, 0xc8, 0xba, 0x2a, 0xa5, 0xc2, 0x2b, 0xe0,
		0x08, 0x98, 0x8d, 0xf1, 0xd2, 0x7c, 0xb4, 0x23, 0x85, 0x90, 0x70, 0xb2, 0x71, 0x57, 0x17, 0x37,
		0xcd, 0xfa, 0x55, 0xfb, 0xf4, 0xba, 0xd6, 0x6e, 0xfe, 0x79, 0x59, 0xbf, 0x56, 0x05, 0x10, 0x63,
		0x77, 0x2e, 0x52, 0xaa, 0xec, 0xa5, 0x62, 0x0e, 0xef, 0x82, 0x1d, 0xbc, 0x2c, 0x5f, 0x9a, 0x60,
		0x2c, 0x74, 0xdc, 0xb9, 0xeb, 0xe6, 0xcd, 0xc7, 0xf6, 0x79, 0xbd, 0xf9, 0xef, 0x8b, 0xab, 0xdf,
		0xb1, 0x85, 0x5a, 0x6e, 0x61, 0xf3, 0xaa, 0x76, 0x7e, 0xdd, 0x68, 0x62, 0x17, 0xb5, 0xde, 0xc5,
		0xcf, 0x8d, 0xab, 0xe6, 0x4d, 0xed, 0xb4, 0x7d, 0xda, 0x38, 0x57, 0x69, 0x0b, 0x95, 0x98, 0x49,
		0x6b, 0xd3, 0xcd, 0x7e, 0x34, 0x17, 0x93, 0xe3, 0x73, 0x66, 0xdb, 0x63, 0x3c, 0x99, 0x87, 0x8a,
		0xbd, 0xc6, 0x5f, 0xfb, 0x31, 0x17, 0xb2, 0x6c, 0x9c, 0x69, 0x28, 0xd7, 0x79, 0xfc, 0x2a, 0x5e,
		0x98, 0xe1, 0xa7, 0xeb, 0x78, 0x5d, 0x3e, 0x6c, 0xc6, 0x39, 0xcd, 0xe0, 0x8c, 0xc6, 0x54, 0x74,
		0x64, 0x05, 0x5d, 0x2b, 0x62, 0xe1, 0x57, 0xb7, 0xa3, 0x40, 0x0f, 0xd9, 0xb9, 0x19, 0xa1, 0x9d,
		0x6c, 0x26, 0x13, 0x40, 0x3b, 0xd9, 0x37, 0x93, 0x41, 0x3b, 0xd9, 0x25, 0x13, 0x42, 0x3b, 0x59,
		0x58, 0x7c, 0xaf, 0x8b, 0x9f, 0x79, 0x3b, 0xd9, 0xa1, 0x02, 0x51, 0x41, 0xa3, 0x2d, 0xd4, 0x6c,
		0xd9, 0x2b, 0x36, 0x45, 0x14, 0x9c, 0x32, 0x8a, 0x4e, 0x25, 0x85, 0xa7, 0xa4, 0xe2, 0x53, 0x4d,
		0x01, 0x2a, 0xab, 0x08, 0x95, 0x55, 0x88, 0xaa, 0x2a, 0x46, 0x45, 0xa8, 0xa0, 0x8c, 0x71, 0x27,
		0x6b, 0x85, 0x39, 0xc5, 0x01, 0x0c, 0x9d, 0x6d, 0xe5, 0xae, 0x35, 0xb3, 0xe6, 0x46, 0x14, 0x54,
		0x9a, 0xca, 0x29, 0x4f, 0x15, 0x95, 0xa8, 0xd2, 0xca, 0x54, 0x55, 0xa5, 0xaa, 0xbc, 0x72, 0x55,
		0x5e, 0xc9, 0xaa, 0xae, 0x6c, 0xd5, 0x50, 0xba, 0x8a, 0x28, 0x5f, 0xe5, 0x94, 0x70, 0x32, 0x21,
		0x45, 0x5a, 0x10, 0x2c, 0x05, 0x53, 0x65, 0xaa, 0x3d, 0x2f, 0x52, 0xcf, 0xaa, 0xe5, 0x64, 0xa8,
		0xa6, 0xa6, 0x55, 0x56, 0xd7, 0x5a, 0xa8, 0x6d, 0xd5, 0xd5, 0xb7, 0x36, 0x6a, 0x5c, 0x1b, 0x75,
		0xae, 0x8b, 0x5a, 0x57, 0x4b, 0xbd, 0x2b, 0xa6, 0xe6, 0x93, 0x4d, 0x54, 0x26, 0xea, 0x7a, 0x39,
		0xea, 0x29, 0xd5, 0x52, 0x61, 0x99, 0xa2, 0xdd, 0x53, 0x70, 0x6a, 0x6a, 0x36, 0xd9, 0x9f, 0x7c,
		0xa9, 0xa9, 0x27, 0x0c, 0xd5, 0x9b, 0xee, 0x27, 0x93, 0x54, 0xbc, 0xf9, 0x7e, 0x32, 0x4f, 0x5d,
		0x1a, 0x8c, 0xbf, 0x02, 0x8f, 0xea, 0x8d, 0xc6, 0x15, 0xd5, 0x25, 0xb3, 0x47, 0x48, 0xe1, 0xe6,
		0xfc, 0x73, 0x47, 0x48, 0xc1, 0xf4, 0x7a, 0x1c, 0xa3, 0x0d, 0x35, 0x10, 0xd5, 0x9d, 0x55, 0xeb,
		0x03, 0xd6, 0x47, 0x71, 0x18, 0x36, 0x79, 0x10, 0xa9, 0xcb, 0x94, 0x0d, 0x27, 0x07, 0x9a, 0xec,
		0x3d, 0xd3, 0x02, 0x4d, 0x96, 0xc6, 0x61, 0x04, 0x4d, 0x96, 0xe2, 0x40, 0x80, 0x26, 0x13, 0x3c,
		0x51, 0xd0, 0x64, 0xfa, 0xbb, 0x36, 0x1a, 0xd0, 0x64, 0x03, 0xd7, 0xe7, 0x07, 0x0a, 0x13, 0x64,
		0x55, 0x10, 0x64, 0x2b, 0x7e, 0x81, 0x20, 0x13, 0xe3, 0xdd, 0x83, 0x20, 0xdb, 0x58, 0xcf, 0x1e,
		0x04, 0x99, 0x98, 0x23, 0x54, 0xae, 0x82, 0x1e, 0xdb, 0xd8, 0x43, 0x04, 0x7a, 0xec, 0x5d, 0x5f,
		0xa0, 0xc7, 0x54, 0x9e, 0x89, 0x2a, 0xe1, 0x75, 0x8a, 0x94, 0x01, 0x98, 0x9b, 0x97, 0xe2, 0x65,
		0x01, 0xde, 0xe6, 0x42, 0x17, 0xde, 0xa4, 0x90, 0x15, 0x54, 0x8a, 0x8d, 0x37, 0x14, 0xae, 0x23,
		0x10, 0xff, 0x83, 0x8b, 0xee, 0xf5, 0x68, 0xd9, 0xe2, 0x6f, 0x5f, 0xbf, 0xcb, 0xb0, 0xc8, 0x80,
		0x7a, 0xa8, 0xa1, 0x00, 0x62, 0x28, 0x45, 0xe7, 0x2b, 0x48, 0xe3, 0x2b, 0x46, 0xdf, 0x23, 0x09,
		0x65, 0x15, 0x31, 0x42, 0x12, 0xca, 0x2a, 0x82, 0x8e, 0x24, 0x94, 0xb4, 0x86, 0x17, 0x92, 0x50,
		0xf4, 0xb1, 0x92, 0x95, 0xa3, 0xdb, 0x13, 0xd4, 0xf2, 0x98, 0xdd, 0x55, 0xa3, 0x1e, 0xf0, 0x5b,
		0x25, 0x58, 0xda, 0x57, 0x68, 0x4e, 0x97, 0x63, 0x47, 0x62, 0x67, 0x67, 0x64, 0x99, 0x17, 0x86,
		0x46, 0x03, 0x0c, 0x4b, 0x05, 0x66, 0x90, 0x75, 0x92, 0xf7, 0xef, 0xec, 0x59, 0x0d, 0x23, 0xd2,
		0x3c, 0x75, 0x23, 0x5e, 0xe3, 0x5c, 0x91, 0x9c, 0xf3, 0x33, 0xd7, 0xaf, 0x7b, 0x6c, 0xa8, 0xa1,
		0x14, 0x61, 0x2f, 0xcd, 0x33, 0xfb, 0x69, 0x6a, 0x46, 0xa5, 0x83, 0x4a, 0x65, 0x6f, 0xbf, 0x52,
		0x29, 0xee, 0xef, 0xee, 0x17, 0x0f, 0xab, 0xd5, 0xd2, 0x9e, 0x12, 0x85, 0xc8, 0x2f, 0x42, 0x87,
		0x85, 0xcc, 0xf9, 0x38, 0x14, 0x2a, 0x7f, 0xe0, 0x79, 0x2a, 0x4d, 0xe9, 0x26, 0x62, 0xa1, 0x12,
		0xf4, 0x6e, 0xd6, 0x67, 0x5e, 0x31, 0xd2, 0x4b, 0x77, 0xb2, 0x4b, 0x85, 0x12, 0x38, 0x1a, 0xd2,
		0x5b, 0x26, 0xea, 0xec, 0xe6, 0x1f, 0x73, 0x50, 0x67, 0x77, 0x3d, 0x8c, 0x41, 0xc9, 0xdd, 0x9f,
		0x60, 0xc9, 0xc6, 0xd4, 0xde, 0xfd, 0x90, 0x63, 0x94, 0x30, 0xd9, 0x13, 0x0f, 0x6d, 0x6b, 0x30,
		0x14, 0x98, 0x7b, 0x2f, 0x1b, 0x8a, 0xc1, 0xfc, 0xeb, 0x91, 0xf9, 0x99, 0x05, 0x9d, 0x29, 0x50,
		0xc3, 0x76, 0x67, 0xa7, 0xf0, 0x4a, 0x0b, 0x3c, 0xf7, 0x99, 0xf1, 0x0f, 0xe3, 0x97, 0x31, 0x23,
		0x37, 0x42, 0xae, 0xa3, 0xd7, 0xd6, 0x05, 0xbf, 0xa0, 0xce, 0xed, 0x0c, 0xf9, 0x1b, 0xcb, 0x0e,
		0xaa, 0xdc, 0xbe, 0x51, 0xf9, 0x53, 0xd4, 0xee, 0x6a, 0xc2, 0xb5, 0x91, 0x2d, 0x40, 0x8f, 0x59,
		0xd4, 0x09, 0xdd, 0xbe, 0x12, 0xee, 0x58, 0x02, 0x0a, 0x0d, 0xbf, 0xe3, 0x0d, 0x1c, 0x66, 0xf0,
		0x47, 0x66, 0x8c, 0xcc, 0x14, 0xe3, 0xf4, 0xba, 0x66, 0x3c, 0xba, 0x2c, 0xb4, 0xc3, 0xce, 0xe3,
		0xb3, 0x11, 0x05, 0x1e, 0xf3, 0x9e, 0x8d, 0xe1, 0x01, 0xb8, 0xf3, 0xf9, 0xa3, 0xcd, 0xe3, 0xbf,
		0x8f, 0xb7, 0xd8, 0x8d, 0x8c, 0x7b, 0xe6, 0xfa, 0x0f, 0x86, 0x13, 0xbf, 0xd9, 0x3d, 0x73, 0xb2,
		0x3e, 0x22, 0x0a, 0x5d, 0x23, 0x4d, 0xa3, 0x87, 0x33, 0xb5, 0xf3, 0x0a, 0xf8, 0x90, 0x2a, 0xde,
		0x19, 0xcd, 0x80, 0x89, 0x60, 0xa1, 0x84, 0xff, 0x99, 0xeb, 0x51, 0x5b, 0xb9, 0xb6, 0x9c, 0x33,
		0xf6, 0xab, 0x15, 0xf7, 0xa7, 0x33, 0x80, 0x53, 0x45, 0xdd, 0x66, 0xb9, 0x28, 0x27, 0xef, 0x94,
		0x4b, 0x3c, 0x6f, 0x19, 0xd5, 0x1f, 0xce, 0xb4, 0xce, 0x70, 0x46, 0xf5, 0x84, 0x33, 0x0b, 0xd9,
		0xca, 0x32, 0x34, 0x4b, 0x89, 0x10, 0xac, 0xac, 0x6d, 0x64, 0x65, 0x42, 0xaa, 0x94, 0x31, 0x83,
		0x55, 0x09, 0x91, 0xca, 0x37, 0x03, 0x99, 0x55, 0x7d, 0x5d, 0xd3, 0x76, 0xbe, 0xb2, 0x90, 0xbb,
		0x91, 0xeb, 0x3f, 0x58, 0x23, 0xc3, 0x25, 0xfb, 0x16, 0x67, 0x0b, 0xe6, 0x94, 0x6d, 0x93, 0xb3,
		0x22, 0x9a, 0x9c, 0xa1, 0xc9, 0x99, 0x81, 0x26, 0x67, 0x1a, 0xb1, 0x36, 0x68, 0x72, 0x66, 0x64,
		0x78, 0xdd, 0x9e, 0x79, 0xa4, 0x6e, 0x82, 0x1a, 0x4e, 0xc0, 0x39, 0x73, 0xac, 0xff, 0x0c, 0xec,
		0x2c, 0xe9, 0xdf, 0xc4, 0x8f, 0x39, 0xc8, 0x70, 0x0e, 0x97, 0x36, 0xe7, 0x2c, 0xf4, 0x33, 0xaf,
		0x6c, 0x61, 0x6e, 0x6d, 0xdd, 0x16, 0xad, 0xc3, 0xd6, 0xf7, 0xdb, 0x92, 0x75, 0xd8, 0x1a, 0x7d,
		0x2c, 0xc5, 0xff, 0x1b, 0x7d, 0x2e, 0xdf, 0x16, 0xad, 0xca, 0xe4, 0x73, 0xf5, 0xb6, 0x68, 0x55,
		0x5b, 0xdb, 0x77, 0x77, 0x3b, 0xdb, 0xdf, 0x76, 0x5f, 0x56, 0xff, 0xc5, 0xec, 0x4e, 0x7c, 0x0b,
		0x6d, 0x79, 0xe9, 0xac, 0xd6, 0x07, 0x05, 0x3a, 0xf1, 0x0e, 0x27, 0x01, 0xbb, 0x14, 0x76, 0x29,
		0xec, 0x52, 0xd8, 0xa5, 0xb0, 0x4b, 0x61, 0x97, 0xae, 0x84, 0x1a, 0x03, 0xd7, 0xe7, 0xa5, 0x3d,
		0x05, 0x4c, 0xd2, 0x0c, 0x5b, 0x14, 0x28, 0x52, 0x69, 0x4d, 0x8d, 0x34, 0x1f, 0x75, 0x32, 0xfa,
		0x15, 0xab, 0x90, 0xa6, 0x6c, 0x11, 0x27, 0xf5, 0x8a, 0x35, 0xbd, 0xa8, 0x91, 0x1f, 0xa6, 0x9e,
		0x28, 0x2b, 0x54, 0xca, 0x1f, 0xe2, 0xac, 0xb8, 0x6d, 0x92, 0xfd, 0xe8, 0x60, 0x0e, 0xe8, 0x84,
		0xbc, 0xf3, 0xc8, 0x3a, 0x5f, 0xa2, 0x41, 0x2f, 0x7b, 0xfa, 0x20, 0x99, 0x09, 0x38, 0x04, 0x70,
		0x08, 0xe0, 0x10, 0xc0, 0x21, 0x80, 0x43, 0x00, 0x87, 0x00, 0x0e, 0x01, 0x1c, 0x02, 0x38, 0x04,
		0x38, 0x5d, 0xe0, 0x10, 0xc0, 0x21, 0x40, 0x9c, 0xc1, 0x21, 0x80, 0x43, 0x50, 0x90, 0x43, 0xf0,
		0x5c, 0xff, 0x8b, 0x15, 0xa7, 0x43, 0x58, 0xae, 0x93, 0x3d, 0x91, 0x30, 0x3b, 0x1d, 0xb0, 0x09,
		0x60, 0x13, 0xc0, 0x26, 0x80, 0x4d, 0x00, 0x9b, 0x00, 0x36, 0x61, 0x25, 0xd4, 0x40, 0xa4, 0xec,
		0x2b, 0x98, 0x23, 0x52, 0x16, 0xb6, 0x6a, 0x3e, 0x6c, 0xd5, 0x88, 0xfd, 0x67, 0xc0, 0xfc, 0x0e,
		0xb3, 0xfc, 0x41, 0xef, 0x5e, 0x85, 0xe4, 0xae, 0xb7, 0x13, 0x82, 0xbd, 0x0a, 0x7b, 0x15, 0xf6,
		0x2a, 0xec, 0x55, 0xd8, 0xab, 0xb0, 0x57, 0x57, 0x42, 0x0d, 0xd7, 0xe7, 0xbb, 0x65, 0x05, 0x2c,
		0xd5, 0x5d, 0x5c, 0x7e, 0xe1, 0xf2, 0x6b, 0x66, 0x32, 0x49, 0x7f, 0xd4, 0x52, 0x65, 0xbf, 0x72,
		0xb0, 0xbb, 0x57, 0x39, 0xc0, 0xb5, 0xc1, 0x4f, 0xce, 0xf4, 0xeb, 0xb5, 0xc1, 0x50, 0xc1, 0xe0,
		0x12, 0x4c, 0xd5, 0x4b, 0xb0, 0x44, 0xa4, 0xf7, 0x21, 0xd2, 0xef, 0x16, 0x69, 0xdc, 0x84, 0xe1,
		0x26, 0x2c, 0x6f, 0x23, 0xa2, 0xd0, 0x60, 0xf6, 0x85, 0x06, 0xb3, 0xea, 0x6e, 0xab, 0x56, 0x8d,
		0xc1, 0x0c, 0xda, 0xd3, 0xe6, 0xb4, 0xbe, 0xe0, 0xa0, 0xd7, 0xb3, 0xc3, 0xe7, 0xb8, 0x70, 0x65,
		0x76, 0x55, 0x06, 0xa7, 0x26, 0x81, 0x5a, 0x83, 0xa4, 0x03, 0xa3, 0xd6, 0x20, 0x6a, 0x0d, 0x8e,
		0x26, 0x82, 0x5a, 0x83, 0x9b, 0x64, 0x4a, 0x65, 0x56, 0x6b, 0x30, 0x9b, 0x02, 0xb6, 0xf3, 0x2a,
		0x26, 0x23, 0xb3, 0x29, 0x43, 0x25, 0x93, 0xb9, 0xb2, 0x51, 0x41, 0xe9, 0x28, 0xa5, 0x7c, 0x54,
		0x51, 0x42, 0xca, 0x29, 0x23, 0xe5, 0x94, 0x92, 0x6a, 0xca, 0x29, 0x5b, 0x46, 0x25, 0xab, 0x7b,
		0xa7, 0xac, 0x94, 0x56, 0x32, 0x81, 0x1e, 0xe3, 0xa1, 0xdb, 0x51, 0xa7, 0x35, 0xce, 0x78, 0x3e,
		0x59, 0xf7, 0x6d, 0xce, 0x34, 0x8c, 0x42, 0x19, 0xb5, 0xa6, 0x92, 0x7a, 0x53, 0x52, 0xcd, 0xa9,
		0xa6, 0xee, 0x94, 0x55, 0x7b, 0xca, 0xaa, 0x3f, 0x55, 0xd5, 0x60, 0xb6, 0xea, 0x30, 0x63, 0xb5,
		0x98, 0x6c, 0x4a, 0xe6, 0x61, 0x19, 0xf3, 0xa8, 0x13, 0xf5, 0xbb, 0x96, 0x12, 0x4a, 0xca, 0x50,
		0x23, 0x53, 0x39, 0x99, 0x8a, 0x1a, 0x41, 0x1b, 0x93, 0x2f, 0x35, 0x70, 0xd8, 0x50, 0x2d, 0x88,
		0x23, 0x99, 0x94, 0x62, 0x99, 0xcc, 0xc9, 0xbc, 0x54, 0xbd, 0xf8, 0x7e, 0x05, 0x02, 0xd5, 0x2e,
		0xc0, 0x15, 0xc1, 0xea, 0x59, 0x91, 0x57, 0x28, 0xc8, 0x63, 0x4e, 0xe4, 0x15, 0xca, 0x78, 0x86,
		0xd8, 0x6b, 0x6e, 0x20, 0xa9, 0x33, 0x8b, 0xd6, 0xa6, 0x36, 0xdc, 0xcc, 0x90, 0xe4, 0x9c, 0x04,
		0x40, 0xf4, 0xec, 0xe8, 0x8b, 0x3a, 0x14, 0xca, 0xcc, 0xac, 0x40, 0xa4, 0x80, 0x48, 0x01, 0x91,
		0x02, 0x22, 0x05, 0x44, 0x0a, 0x88, 0x14, 0xa5, 0x50, 0x67, 0xe0, 0xfa, 0xfc, 0x40, 0x21, 0x0a,
		0xa5, 0x0a, 0x0a, 0x05, 0x14, 0x0a, 0x28, 0x14, 0x50, 0x28, 0xa0, 0x50, 0x7e, 0x2e, 0xf2, 0xbb,
		0x65, 0xc8, 0x3c, 0xf8, 0x13, 0xf0, 0x27, 0x79, 0xe0, 0x4f, 0x36, 0x2a, 0xde, 0x26, 0xe3, 0x7c,
		0x9b, 0x64, 0x1e, 0x4a, 0xe6, 0xdd, 0xbc, 0xe6, 0x28, 0x14, 0xb2, 0x0c, 0x26, 0x35, 0xd4, 0xcb,
		0xc5, 0x19, 0xad, 0x4c, 0x46, 0x69, 0x39, 0xd9, 0x9d, 0xd4, 0x2c, 0x2a, 0xfb, 0xc4, 0xd2, 0x69,
		0x05, 0x5d, 0x2b, 0x62, 0xe1, 0x57, 0xb7, 0xa3, 0x40, 0x60, 0xf5, 0xdc, 0x8c, 0x10, 0x63, 0x9d,
		0xc9, 0x04, 0x10, 0x63, 0xfd, 0x66, 0x32, 0x88, 0xb1, 0x5e, 0x32, 0x21, 0xc4, 0x58, 0xc3, 0xe6,
		0x7b, 0x5d, 0xfc, 0xcc, 0x63, 0xac, 0x87, 0x0a, 0x44, 0x05, 0x8d, 0xb6, 0x50, 0xb3, 0x65, 0xaf,
		0xd8, 0x14, 0x51, 0x70, 0xca, 0x28, 0x3a, 0x95, 0x14, 0x9e, 0x92, 0x8a, 0x4f, 0x35, 0x05, 0xa8,
		0xac, 0x22, 0x54, 0x56, 0x21, 0xaa, 0xaa, 0x18, 0xd5, 0xa0, 0xa3, 0xb2, 0xbe, 0x2c, 0xcc, 0x5a,
		0x61, 0x4e, 0x91, 0x00, 0x59, 0x66, 0xd6, 0x2e, 0xc5, 0xc0, 0xac, 0xc9, 0x11, 0x05, 0x95, 0xa6,
		0x72, 0xca, 0x53, 0x45, 0x25, 0xaa, 0xb4, 0x32, 0x55, 0x55, 0xa9, 0x2a, 0xaf, 0x5c, 0x95, 0x57,
		0xb2, 0xaa, 0x2b, 0x5b, 0x35, 0x94, 0xae, 0x22, 0xca, 0x57, 0x39, 0x25, 0x9c, 0x4c, 0x48, 0x91,
		0x4c, 0xe1, 0xa5, 0x60, 0xaa, 0x4c, 0x52, 0xd6, 0x22, 0xf5, 0xac, 0xda, 0x75, 0xb4, 0x6a, 0x6a,
		0x5a, 0x65, 0x75, 0xad, 0x85, 0xda, 0x56, 0x5d, 0x7d, 0x6b, 0xa3, 0xc6, 0xb5, 0x51, 0xe7, 0xba,
		0xa8, 0x75, 0xb5, 0xd4, 0xbb, 0x62, 0x6a, 0x3e, 0xd9, 0x44, 0x65, 0x02, 0x74, 0x97, 0xa3, 0x9e,
		0x52, 0x99, 0xcf, 0xcb, 0x14, 0xed, 0x9e, 0x82, 0x53, 0x53, 0x2b, 0xac, 0xf7, 0xed, 0x97, 0x9a,
		0x7a, 0xc2, 0x50, 0x35, 0xec, 0x77, 0x6e, 0x92, 0x8a, 0x86, 0x01, 0xcf, 0xcd, 0x53, 0xf5, 0x10,
		0xc9, 0x79, 0xe0, 0x51, 0x35, 0x64, 0x52, 0x71, 0x5d, 0x32, 0x7b, 0x84, 0xec, 0x27, 0x7d, 0x8e,
		0x90, 0x82, 0x99, 0xd9, 0x38, 0x46, 0x1b, 0x6a, 0x20, 0xaa, 0x3b, 0xab, 0xd6, 0x07, 0xac, 0x8f,
		0xe2, 0x30, 0x6c, 0xf2, 0x20, 0x52, 0x97, 0x29, 0x1b, 0x4e, 0x0e, 0x34, 0xd9, 0x7b, 0xa6, 0x05,
		0x9a, 0x2c, 0x8d, 0xc3, 0x08, 0x9a, 0x2c, 0xc5, 0x81, 0x00, 0x4d, 0x26, 0x78, 0xa2, 0xa0, 0xc9,
		0xf4, 0x77, 0x6d, 0x34, 0xa0, 0xc9, 0x54, 0xc9, 0x6b, 0x5f, 0xa6, 0x62, 0xab, 0x20, 0xc8, 0x56,
		0xfc, 0x02, 0x41, 0x26, 0xc6, 0xbb, 0x07, 0x41, 0xb6, 0xb1, 0x9e, 0x3d, 0x08, 0x32, 0x31, 0x47,
		0xa8, 0x5c, 0x05, 0x3d, 0xb6, 0xb1, 0x87, 0x08, 0xf4, 0xd8, 0xbb, 0xbe, 0x40, 0x8f, 0xa9, 0x3c,
		0x13, 0x55, 0xc2, 0xeb, 0x14, 0x29, 0x04, 0x30, 0x37, 0x2f, 0xd5, 0x0b, 0x03, 0xbc, 0x4d, 0x86,
		0x2e, 0xbc, 0xc9, 0x21, 0x2b, 0xa8, 0x14, 0x1c, 0x6f, 0xa8, 0x5c, 0x49, 0x20, 0xfe, 0x17, 0x17,
		0xdd, 0xeb, 0xd1, 0xba, 0xc5, 0xdf, 0xbe, 0x7e, 0x97, 0x61, 0x99, 0x01, 0xf5, 0x70, 0x43, 0x85,
		0xb6, 0xe5, 0x2a, 0x11, 0xfa, 0x0a, 0x12, 0xf9, 0x8a, 0x11, 0xf8, 0x48, 0x43, 0x59, 0x45, 0x8c,
		0x90, 0x86, 0xb2, 0x8a, 0xa0, 0x23, 0x0d, 0x25, 0xad, 0xe9, 0x85, 0x34, 0x14, 0x7d, 0xec, 0x64,
		0xe5, 0x08, 0xf7, 0x04, 0xb5, 0x3c, 0x66, 0x77, 0x43, 0xd6, 0x55, 0x09, 0xb3, 0x26, 0xb9, 0x98,
		0xfb, 0x0a, 0xcd, 0xe9, 0x72, 0xec, 0x4a, 0xec, 0xec, 0x8c, 0x4c, 0xf3, 0xc2, 0xd0, 0x68, 0x80,
		0x61, 0xa9, 0xc0, 0x0c, 0xb2, 0x4e, 0xf3, 0xfe, 0x9d, 0x3d, 0xab, 0x61, 0x44, 0x9a, 0xa7, 0x6e,
		0xc4, 0x6b, 0x9c, 0x2b, 0x92, 0x75, 0x7e, 0xe6, 0xfa, 0x75, 0x8f, 0x0d, 0x35, 0x94, 0x22, 0xfc,
		0xa5, 0x79, 0x66, 0x3f, 0x4d, 0xcd, 0xa8, 0x74, 0x50, 0xa9, 0xec, 0xed, 0x57, 0x2a, 0xc5, 0xfd,
		0xdd, 0xfd, 0xe2, 0x61, 0xb5, 0x5a, 0xda, 0x2b, 0xa9, 0x50, 0xbc, 0xfa, 0x22, 0x74, 0x58, 0xc8,
		0x9c, 0x8f, 0x43, 0xa1, 0xf2, 0x07, 0x9e, 0xa7, 0xd2, 0x94, 0x6e, 0x22, 0x16, 0x2a, 0x41, 0xf0,
		0x66, 0x7d, 0xe6, 0x15, 0xa3, 0xbd, 0xb4, 0xa7, 0xbb, 0x54, 0xa8, 0x82, 0xa3, 0x23, 0xc1, 0x65,
		0xa2, 0xda, 0x6e, 0xfe, 0x51, 0x07, 0xd5, 0x76, 0xd7, 0x44, 0x19, 0x14, 0xde, 0xfd, 0x19, 0x9a,
		0x6c, 0x4c, 0x05, 0xde, 0x0f, 0x39, 0xc6, 0x09, 0x93, 0x3d, 0xf1, 0xd0, 0xb6, 0x06, 0x43, 0x89,
		0xb9, 0xf7, 0xb2, 0xa1, 0x19, 0xcc, 0xbf, 0x1e, 0x99, 0x9f, 0x59, 0xe8, 0x99, 0x02, 0x95, 0x6c,
		0x77, 0x76, 0x0a, 0xaf, 0xd4, 0xc0, 0x73, 0x9f, 0x19, 0xff, 0x30, 0x7e, 0x19, 0xb3, 0x72, 0x23,
		0xec, 0x3a, 0xba, 0xbe, 0x39, 0x3b, 0xab, 0x5d, 0xfd, 0xd9, 0x6e, 0x5c, 0xb6, 0xcf, 0xeb, 0xcd,
		0x7f, 0x5f, 0x5c, 0xfd, 0xde, 0x3e, 0xbd, 0xae, 0xfd, 0x62, 0x04, 0xa1, 0xf1, 0xfe, 0x5f, 0xae,
		0x5d, 0x7f, 0xbc, 0x8a, 0x7f, 0x0d, 0x05, 0x73, 0x67, 0x38, 0xe4, 0x58, 0xfc, 0x50, 0x2e, 0xf7,
		0x8d, 0xdd, 0x30, 0xc5, 0x10, 0x4b, 0x97, 0xcf, 0x8d, 0xec, 0x64, 0x79, 0xcc, 0xa2, 0x4e, 0xe8,
		0xf6, 0x95, 0x70, 0x0c, 0x13, 0x68, 0x6a, 0xf8, 0x1d, 0x6f, 0xe0, 0x30, 0x83, 0x3f, 0x32, 0x63,
		0x6c, 0x2e, 0x19, 0xa7, 0xd7, 0x35, 0xe3, 0xd1, 0x65, 0xa1, 0x1d, 0x76, 0x1e, 0x9f, 0x8d, 0x28,
		0xf0, 0x98, 0xf7, 0x6c, 0x0c, 0x0f, 0xd1, 0x9d, 0xcf, 0x1f, 0x6d, 0x1e, 0xff, 0x7d, 0xbc, 0xd3,
		0x6e, 0x64, 0xdc, 0x33, 0xd7, 0x7f, 0x30, 0x9c, 0xf8, 0xd5, 0xee, 0x99, 0x93, 0xf5, 0x31, 0x53,
		0xe8, 0x46, 0x6b, 0x1a, 0x81, 0x9c, 0xa9, 0xad, 0x57, 0xc0, 0x9b, 0x55, 0xf1, 0xfa, 0x6a, 0x06,
		0x90, 0x44, 0x4b, 0x25, 0x3c, 0xe1, 0x5c, 0x8f, 0xda, 0xca, 0xb5, 0x05, 0x9f, 0xb1, 0x87, 0xaf,
		0xba, 0x67, 0x9f, 0x01, 0xa0, 0xaa, 0xea, 0xc0, 0xcb, 0xc5, 0x39, 0x79, 0xe7, 0x5c, 0xce, 0x48,
		0x92, 0xce, 0xf5, 0xe4, 0x4e, 0xd0, 0x73, 0xfd, 0x2f, 0x56, 0x6c, 0x36, 0x5b, 0xae, 0x2c, 0xbb,
		0x29, 0x9b, 0x5b, 0xc0, 0xec, 0x6e, 0xfb, 0x94, 0xba, 0xd5, 0xcb, 0xf0, 0xf6, 0x2e, 0xc3, 0x5b,
		0x3a, 0x59, 0xa7, 0x2a, 0x23, 0x2d, 0xa9, 0xa2, 0x76, 0x94, 0xa8, 0x11, 0x95, 0xd2, 0x84, 0x72,
		0xd4, 0x1f, 0xbd, 0x32, 0xa2, 0x1d, 0x81, 0xf8, 0x40, 0xca, 0x3e, 0x88, 0xaa, 0x1d, 0x40, 0x09,
		0x87, 0x4f, 0x99, 0x43, 0x47, 0x7b, 0xe0, 0xe8, 0x8e, 0x01, 0xe1, 0x11, 0x90, 0xd4, 0x4f, 0x43,
		0x6a, 0x9f, 0x0c, 0x49, 0xfd, 0x2f, 0xa4, 0x25, 0x14, 0xc8, 0x4c, 0x14, 0xc8, 0x24, 0x01, 0x40,
		0x36, 0x0d, 0x9a, 0x59, 0xc0, 0x7e, 0x66, 0x4c, 0x66, 0x56, 0x01, 0xf6, 0x7a, 0x9b, 0x06, 0xb2,
		0xfa, 0x2d, 0xc4, 0x4d, 0xf7, 0xe4, 0x49, 0xff, 0x74, 0xab, 0x3f, 0x59, 0x82, 0x2f, 0x37, 0x17,
		0x4c, 0x7a, 0xae, 0x57, 0x16, 0xb9, 0x5c, 0x99, 0xe6, 0x6a, 0x65, 0x75, 0x73, 0x95, 0x79, 0xae,
		0x55, 0xe6, 0x97, 0x51, 0x59, 0xe7, 0x4a, 0xe5, 0x8b, 0xdc, 0x94, 0x9e, 0xcb, 0x94, 0x9c, 0x5a,
		0xd7, 0x61, 0x3e, 0x77, 0xf9, 0xb3, 0xdc, 0x7c, 0xa5, 0xc4, 0x36, 0x96, 0x49, 0x24, 0x36, 0xc6,
		0xaf, 0xfa, 0xd1, 0x8e, 0x32, 0x40, 0x8c, 0xc9, 0x82, 0x5f, 0x5c, 0x5f, 0x9e, 0xb4, 0x4f, 0xaf,
		0x6b, 0xed, 0xe6, 0x9f, 0x97, 0x75, 0xd9, 0xa8, 0x11, 0x57, 0xeb, 0x89, 0x32, 0x09, 0x2a, 0xcb,
		0xb8, 0x55, 0x7e, 0xed, 0xba, 0x5d, 0xff, 0xa3, 0x59, 0xbf, 0x3a, 0xaf, 0x9d, 0x0e, 0x57, 0x5f,
		0xfe, 0xdd, 0x76, 0x06, 0x31, 0x34, 0x19, 0x2f, 0xf9, 0x54, 0xc8, 0x13, 0x96, 0x5b, 0xc2, 0x72,
		0x5f, 0x5f, 0xd7, 0xda, 0x10, 0xf3, 0x4c, 0x00, 0xfd, 0x73, 0xb9, 0x5d, 0xbb, 0xaa, 0xd7, 0xda,
		0xd7, 0x9f, 0x2e, 0x2e, 0xeb, 0xed, 0x8b, 0xcb, 0xda, 0xff, 0xbb, 0xa9, 0x63, 0xfd, 0xe5, 0xae,
		0xff, 0x35, 0x56, 0x3f, 0xbb, 0xd5, 0x3f, 0x6d, 0x9c, 0xff, 0x8e, 0xf5, 0xcf, 0x60, 0xfd, 0xaf,
		0x2e, 0x6e, 0x9a, 0xf5, 0x2b, 0xac, 0xb6, 0x9c, 0xd5, 0x7e, 0x1b, 0x93, 0x8d, 0x35, 0x97, 0xb7,
		0xe6, 0xb3, 0x41, 0xf4, 0x66, 0xce, 0x13, 0x9e, 0x5a, 0x79, 0x63, 0x52, 0x40, 0xf2, 0xff, 0x50,
		0xda, 0x37, 0xf8, 0xfe, 0x5f, 0x56, 0x5d, 0x46, 0x25, 0x02, 0x00, 0x24, 0x94, 0x4f, 0xd4, 0x33,
		0x02, 0x40, 0xca, 0xe5, 0x93, 0xcc, 0x4b, 0x27, 0x49, 0x97, 0x4d, 0xb8, 0xff, 0x17, 0x36, 0x28,
		0xee, 0xff, 0xa9, 0x07, 0xc6, 0xfd, 0xff, 0x1a, 0x8b, 0x26, 0xed, 0x72, 0x28, 0x83, 0x02, 0x76,
		0x32, 0x0b, 0xd3, 0x2d, 0x28, 0x38, 0x37, 0x5c, 0x59, 0x5d, 0x75, 0xf1, 0x07, 0x8d, 0x64, 0x39,
		0xa9, 0xe8, 0x46, 0xa7, 0x76, 0xe5, 0x24, 0x69, 0xc8, 0x4b, 0xca, 0xc8, 0x34, 0x09, 0x43, 0x62,
		0xd2, 0x85, 0xc4, 0x24, 0x0b, 0x2a, 0xe1, 0x96, 0xe4, 0xbb, 0x29, 0xe4, 0xb3, 0x99, 0xa4, 0xa1,
		0xc0, 0x99, 0x7b, 0x69, 0x34, 0x3a, 0x41, 0x3c, 0x62, 0x8b, 0x7d, 0xa2, 0xe0, 0xe3, 0x41, 0x7d,
		0x2c, 0xb2, 0x3f, 0x0e, 0x04, 0xa7, 0x20, 0x4b, 0xe9, 0x17, 0x2b, 0xf5, 0xe2, 0x64, 0x53, 0xa0,
		0x5c, 0x12, 0xe5, 0x19, 0x90, 0xe6, 0x15, 0x10, 0xe5, 0x11, 0x90, 0xf1, 0x06, 0x94, 0x3c, 0x81,
		0x14, 0x5e, 0x80, 0x9a, 0x07, 0x90, 0xe6, 0xf7, 0x4b, 0xf3, 0xf3, 0x65, 0xf9, 0xf5, 0x6a, 0xeb,
		0x3b, 0xaa, 0x38, 0xfd, 0x71, 0x8c, 0x66, 0xd7, 0x65, 0x74, 0xbe, 0xcd, 0x9b, 0x78, 0xd0, 0x78,
		0x2c, 0x2a, 0x57, 0x90, 0x94, 0x16, 0x25, 0xa7, 0x43, 0x65, 0xd0, 0xa0, 0x52, 0xe9, 0x4f, 0x59,
		0xb4, 0xa7, 0x74, 0xba, 0x53, 0x3a, 0xcd, 0x29, 0x9b, 0xde, 0xd4, 0x8b, 0x02, 0x22, 0xa7, 0x31,
		0x5f, 0x4f, 0x4d, 0xd4, 0xef, 0x5a, 0x43, 0x7b, 0xdd, 0x22, 0x47, 0xb3, 0x19, 0x03, 0xed, 0x90,
		0x70, 0x8c, 0xf1, 0xea, 0xd1, 0xc6, 0x6d, 0x4b, 0xa4, 0x98, 0x07, 0xae, 0xcf, 0x77, 0xcb, 0x12,
		0x19, 0x66, 0x19, 0x04, 0xb3, 0xdc, 0x6e, 0xe1, 0x72, 0x4b, 0xd1, 0xc8, 0xcf, 0x98, 0xc8, 0xa8,
		0x3b, 0x77, 0xe6, 0x8d, 0x82, 0xb3, 0x6b, 0xfc, 0xfb, 0x22, 0xb7, 0xc6, 0x50, 0x76, 0x22, 0x55,
		0x29, 0x1f, 0x56, 0x0e, 0xf7, 0xf6, 0xcb, 0x87, 0x55, 0xc8, 0x96, 0x2c, 0xd9, 0xca, 0x49, 0x98,
		0x59, 0x4b, 0xe7, 0xbb, 0x64, 0x89, 0x0a, 0xde, 0x09, 0x38, 0x67, 0x8e, 0xf5, 0x9f, 0x81, 0xed,
		0xc8, 0xbc, 0x47, 0x3e, 0x90, 0x73, 0x8f, 0xcc, 0x59, 0x28, 0xaf, 0x36, 0xbb, 0xb9, 0xb5, 0x75,
		0x5b, 0xb4, 0x0e, 0x5b, 0xdf, 0x6f, 0x4b, 0xd6, 0x61, 0x6b, 0xf4, 0xb1, 0x14, 0xff, 0x6f, 0xf4,
		0xb9, 0x7c, 0x5b, 0xb4, 0x2a, 0x93, 0xcf, 0xd5, 0xdb, 0xa2, 0x55, 0x6d, 0x6d, 0xdf, 0xdd, 0xed,
		0x6c, 0x7f, 0xdb, 0x7d, 0x59, 0xfd, 0x17, 0x4d, 0xdd, 0x4f, 0xd0, 0x07, 0xbd, 0xe6, 0x8d, 0x5b,
		0x21, 0xb1, 0x67, 0x25, 0xab, 0x5b, 0x21, 0xaa, 0x28, 0xd6, 0x2c, 0x6e, 0x84, 0x08, 0x82, 0x54,
		0x05, 0x5e, 0x07, 0x7d, 0x50, 0x48, 0xac, 0xa9, 0xc4, 0x39, 0x2b, 0x31, 0x36, 0x85, 0xde, 0xb5,
		0xc9, 0x16, 0x5c, 0x31, 0x22, 0x9b, 0x5e, 0xc0, 0x04, 0x08, 0x97, 0xd9, 0xeb, 0x7b, 0xe2, 0xfa,
		0xba, 0x27, 0x56, 0x59, 0xfc, 0x54, 0x41, 0xa2, 0x2f, 0xf6, 0x5e, 0x52, 0x38, 0x71, 0x4f, 0x41,
		0xd4, 0x93, 0x12, 0xf3, 0x54, 0x44, 0x3c, 0x39, 0xf1, 0x4e, 0x4e, 0xb4, 0x53, 0x13, 0xeb, 0x6a,
		0xa9, 0x14, 0xd1, 0xf7, 0x88, 0x66, 0x67, 0x72, 0xb2, 0x88, 0xa2, 0x1e, 0xc6, 0xcf, 0x47, 0xd8,
		0x03, 0xc2, 0x1e, 0xb2, 0x84, 0x21, 0x69, 0x70, 0x24, 0x0b, 0x96, 0xf4, 0x70, 0xe8, 0xc8, 0xc2,
		0x1e, 0x78, 0x68, 0x77, 0xbb, 0x6e, 0xc7, 0x62, 0xfe, 0x83, 0xeb, 0x33, 0x16, 0xba, 0xfe, 0x83,
		0xc5, 0x7c, 0xfb, 0xde, 0x63, 0x0e, 0x7d, 0x1c, 0xc4, 0x8f, 0x06, 0x47, 0x60, 0x84, 0x6c, 0x00,
		0x94, 0x0a, 0x84, 0xb2, 0x00, 0x51, 0x3a, 0x30, 0x4a, 0x07, 0x48, 0xd9, 0x40, 0x49, 0xcb, 0x01,
		0xea, 0x1f, 0x18, 0x71, 0x1f, 0x04, 0x1e, 0xb3, 0x7d, 0x19, 0xb1, 0x10, 0x25, 0x90, 0xa5, 0xea,
		0xb2, 0x4b, 0x59, 0xb2, 0x4c, 0xbd, 0xbe, 0x17, 0x15, 0x48, 0x3c, 0x86, 0x0c, 0x48, 0xa7, 0xb3,
		0xbe, 0x17, 0xb5, 0xc7, 0x8a, 0x15, 0xd1, 0xf3, 0x69, 0xe1, 0x49, 0xcb, 0xe8, 0xf9, 0x32, 0xdc,
		0x48, 0xb8, 0x91, 0x70, 0x23, 0xe1, 0x46, 0xc2, 0x8d, 0x84, 0x1b, 0x09, 0x37, 0x12, 0x6e, 0x24,
		0xdc, 0x48, 0xb8, 0x91, 0x70, 0x23, 0xa5, 0xb8, 0x91, 0x39, 0x89, 0xb9, 0x89, 0xbd, 0x48, 0xc4,
		0xdc, 0x64, 0x2d, 0xce, 0x59, 0x89, 0xb1, 0xbe, 0x31, 0x37, 0x43, 0xc1, 0xcd, 0x53, 0xcc, 0x8d,
		0x58, 0x7e, 0x83, 0x84, 0xd7, 0x20, 0x8b, 0xba, 0x29, 0x23, 0xea, 0x06, 0x51, 0x37, 0x52, 0xcd,
		0xed, 0x9c, 0x47, 0xdd, 0x10, 0x66, 0xed, 0xd3, 0x67, 0xeb, 0x13, 0xb1, 0x08, 0x88, 0xbe, 0xc9,
		0x8a, 0x25, 0x00, 0x6d, 0x9a, 0x4f, 0xd7, 0x8e, 0xcc, 0xeb, 0x97, 0x9d, 0x4d, 0x4f, 0x99, 0x45,
		0x4f, 0x9b, 0x3d, 0x2f, 0x81, 0x71, 0x21, 0xcf, 0x96, 0x97, 0x90, 0x25, 0x2f, 0x29, 0x3b, 0x5e,
		0x42, 0x8a, 0xa3, 0xcc, 0x6c, 0x78, 0xd9, 0x59, 0xf0, 0x99, 0x65, 0x28, 0xcb, 0xcf, 0x4c, 0x96,
		0x90, 0xed, 0x2e, 0x35, 0xcb, 0x3d, 0xb3, 0xec, 0xf6, 0x4d, 0x92, 0x19, 0xe4, 0xae, 0xd2, 0x9f,
		0x20, 0x09, 0x0a, 0x55, 0x4e, 0x76, 0xba, 0x8c, 0xac, 0x74, 0x69, 0xd9, 0xe8, 0x39, 0xc9, 0x42,
		0xd7, 0x25, 0x8b, 0xbb, 0x85, 0xab, 0x80, 0xf7, 0xf8, 0x80, 0xf9, 0xb9, 0x0a, 0x10, 0x7d, 0x99,
		0x25, 0xf9, 0x2e, 0x40, 0xe0, 0xfd, 0x95, 0x1a, 0x97, 0x01, 0x5f, 0xdd, 0x90, 0x0f, 0x6c, 0xcf,
		0xf2, 0x5c, 0xff, 0x0b, 0x41, 0x26, 0xee, 0xec, 0xe3, 0x91, 0x92, 0xab, 0x24, 0x3b, 0x87, 0xcb,
		0x81, 0xac, 0xd8, 0xb7, 0x9c, 0x5f, 0x0e, 0x4c, 0x9f, 0x7e, 0xba, 0xeb, 0x81, 0x99, 0x51, 0x90,
		0x9e, 0x8b, 0x0b, 0x82, 0x2c, 0x21, 0x49, 0x1a, 0x34, 0xc9, 0x82, 0x28, 0x1a, 0xdb, 0x5f, 0x9b,
		0xb8, 0x6a, 0xa2, 0xaa, 0x02, 0x73, 0x87, 0x8a, 0x2c, 0x57, 0x88, 0x10, 0xc6, 0xc8, 0xe1, 0x4c,
		0x06, 0xac, 0x49, 0x85, 0x37, 0x59, 0x30, 0x27, 0x1d, 0xee, 0xa4, 0xc3, 0x9e, 0x6c, 0xf8, 0xa3,
		0xa3, 0x40, 0x08, 0x29, 0x46, 0x32, 0x58, 0x4c, 0x06, 0x08, 0x59, 0x2f, 0xe0, 0xcc, 0x0a, 0x83,
		0x01, 0x67, 0xa1, 0xe5, 0x3a, 0xf2, 0x7a, 0xdb, 0xce, 0x8d, 0x8c, 0x3e, 0xb7, 0xaa, 0x41, 0x6a,
		0x26, 0xd0, 0x2a, 0x1b, 0x62, 0x33, 0x83, 0xda, 0xcc, 0x20, 0x37, 0x2b, 0xe8, 0xa5, 0x85, 0x60,
		0x62, 0x28, 0x4e, 0x16, 0x4d, 0x7e, 0x9f, 0x5b, 0xb7, 0xff, 0xb5, 0x62, 0xd9, 0x8e, 0x13, 0xb2,
		0x28, 0xb2, 0xfc, 0xc0, 0xfa, 0xbf, 0xc0, 0x67, 0x28, 0x56, 0x9c, 0x72, 0x40, 0x99, 0xd7, 0x44,
		0x5b, 0xff, 0x7d, 0x7b, 0x77, 0xd7, 0xff, 0x76, 0xfe, 0x32, 0xfc, 0xf3, 0xf4, 0xa5, 0xf5, 0xf7,
		0xed, 0x7f, 0xca, 0xc2, 0x96, 0xe1, 0x44, 0xee, 0xee, 0x76, 0x5a, 0x7f, 0x43, 0xc1, 0xe4, 0x7c,
		0x58, 0x84, 0x39, 0xee, 0xe2, 0x3a, 0x73, 0xd7, 0x30, 0xf3, 0x5d, 0x81, 0xd4, 0xbb, 0x36, 0xe4,
		0x5f, 0x43, 0x7d, 0x1e, 0xbd, 0xdc, 0xe9, 0xf0, 0x4d, 0xa7, 0xbf, 0x21, 0xa9, 0xd2, 0x41, 0x27,
		0xe8, 0x04, 0x42, 0x2e, 0xcf, 0x23, 0x91, 0xed, 0x89, 0x20, 0xe5, 0x1d, 0x24, 0x0e, 0x48, 0x9c,
		0x0d, 0x54, 0xd9, 0xf2, 0x52, 0xde, 0x3d, 0x66, 0x77, 0x43, 0xd6, 0x95, 0x11, 0x2b, 0xb6, 0x4f,
		0x1b, 0x2b, 0x16, 0x5b, 0x1d, 0x3b, 0x3b, 0x63, 0xc5, 0x5f, 0x98, 0x83, 0xe8, 0x0d, 0x56, 0x90,
		0x34, 0xe5, 0xad, 0xe6, 0x64, 0x89, 0x2a, 0x6b, 0xdd, 0x90, 0x79, 0x9f, 0x51, 0x86, 0x2a, 0x84,
		0x2a, 0x84, 0x2a, 0x54, 0x46, 0x15, 0x92, 0xdf, 0x67, 0xd8, 0xce, 0xff, 0xda, 0x1d, 0xe6, 0x77,
		0x9e, 0x2d, 0x5a, 0x98, 0x9c, 0x3b, 0xa5, 0x6f, 0x07, 0xc6, 0x6d, 0x86, 0x6a, 0x80, 0x9a, 0x09,
		0xb0, 0xca, 0x06, 0xd8, 0xcc, 0x80, 0x36, 0x33, 0xc0, 0xcd, 0x0a, 0x78, 0x69, 0x01, 0x98, 0x18,
		0x88, 0xe5, 0xf9, 0x26, 0x73, 0xa7, 0x6e, 0x94, 0x9e, 0xcb, 0x9f, 0x69, 0xfd, 0x94, 0x39, 0x4b,
		0x53, 0x42, 0x92, 0x99, 0xd9, 0x18, 0xbf, 0xda, 0x47, 0x3b, 0x92, 0x78, 0xd2, 0x27, 0x0b, 0x7b,
		0x71, 0x7d, 0x79, 0xd2, 0x3e, 0xaf, 0x37, 0x7e, 0xfb, 0xd7, 0xc7, 0x8b, 0xab, 0xf6, 0x75, 0xb3,
		0xd6, 0xac, 0xcb, 0x3a, 0xf3, 0x71, 0x4a, 0x5f, 0x24, 0xed, 0xf2, 0xc6, 0x90, 0xda, 0x56, 0x7a,
		0x66, 0x91, 0x6b, 0xcd, 0x66, 0xfd, 0xec, 0xb2, 0x69, 0xe6, 0xb1, 0xd9, 0x71, 0x46, 0x4b, 0x7a,
		0x7c, 0xf1, 0xef, 0x73, 0xac, 0xa7, 0xb8, 0xf5, 0xac, 0xff, 0xf1, 0xe9, 0x5f, 0xb5, 0xf3, 0xdf,
		0xea, 0x58, 0x53, 0x91, 0x6b, 0x7a, 0xdd, 0xac, 0x5d, 0xe1, 0xd8, 0x0b, 0x5c, 0xd2, 0x93, 0x9b,
		0xd3, 0x53, 0xac, 0xa7, 0xb8, 0xf5, 0x6c, 0x9c, 0x37, 0x20, 0x9f, 0x02, 0xd7, 0xf3, 0xf4, 0xa2,
		0x76, 0xdc, 0x38, 0xff, 0x0d, 0x4b, 0x2a, 0x6e, 0x49, 0x9b, 0xff, 0xbe, 0x68, 0xff, 0xbb, 0xf6,
		0xa7, 0x99, 0xb3, 0x6e, 0xfe, 0x2d, 0xd4, 0x73, 0x90, 0x2f, 0xd2, 0xe6, 0xbd, 0xdd, 0xf9, 0x32,
		0xe8, 0x5b, 0x0e, 0x8b, 0xdc, 0x07, 0xdf, 0xe6, 0xcc, 0x19, 0xdf, 0x0e, 0xc9, 0xa3, 0xfc, 0x96,
		0xce, 0x00, 0xdc, 0xdf, 0x4a, 0x03, 0x81, 0xfb, 0x13, 0x2d, 0x20, 0xe0, 0xfe, 0xc0, 0xfd, 0xfd,
		0x7c, 0xd1, 0xe4, 0x73, 0x7f, 0x72, 0xea, 0xd9, 0xbc, 0x05, 0x4a, 0x04, 0x30, 0xab, 0x5b, 0xe7,
		0x46, 0x8e, 0x0d, 0xa5, 0xa7, 0x85, 0xe3, 0x30, 0xdb, 0xb1, 0xb8, 0xdb, 0x93, 0x78, 0x8b, 0xf9,
		0x3a, 0x24, 0x6c, 0x18, 0xd8, 0x30, 0xb0, 0x61, 0x60, 0xc3, 0xc0, 0x86, 0x79, 0x73, 0xea, 0x86,
		0xe8, 0xc8, 0xdd, 0xce, 0x97, 0x68, 0xaf, 0x22, 0xd1, 0x86, 0x91, 0x61, 0xc2, 0xdc, 0xf8, 0xa3,
		0xb2, 0x98, 0xa6, 0x6f, 0xfb, 0x41, 0xc4, 0x3a, 0x81, 0xef, 0x44, 0x32, 0x5e, 0x51, 0x4e, 0xc5,
		0x5d, 0xf9, 0xdc, 0x97, 0xd4, 0x0a, 0xbc, 0xc9, 0xa0, 0x92, 0x2b, 0xf1, 0x26, 0xe3, 0x66, 0x55,
		0x5d, 0xf5, 0xf5, 0x80, 0xca, 0xae, 0xb2, 0x2a, 0x09, 0xe3, 0x66, 0x45, 0x4a, 0x62, 0xa5, 0xde,
		0x39, 0x91, 0x2a, 0x1d, 0x54, 0x2a, 0x7b, 0xfb, 0x95, 0x4a, 0x71, 0x7f, 0x77, 0xbf, 0x78, 0x58,
		0xad, 0x96, 0xf6, 0x4a, 0x55, 0x48, 0x99, 0x2c, 0x29, 0xfb, 0x90, 0x8f, 0x51, 0xe0, 0xe9, 0x2d,
		0xf2, 0xf4, 0x32, 0x23, 0xb1, 0xc1, 0x5e, 0xc3, 0xf3, 0x83, 0xe7, 0x07, 0xcf, 0x0f, 0x9e, 0xdf,
		0xcf, 0xa1, 0x12, 0xec, 0xb5, 0xb0, 0x01, 0xc1, 0x5e, 0xe7, 0xdd, 0xa6, 0xf1, 0xec, 0x88, 0x5b,
		0x2c, 0xe2, 0xf6, 0xbd, 0xe7, 0x46, 0x8f, 0x4c, 0x36, 0x93, 0xbd, 0x78, 0x78, 0xd8, 0x36, 0xb0,
		0x6d, 0x60, 0xdb, 0xc0, 0xb6, 0x81, 0x6d, 0xf3, 0xe6, 0xd4, 0x81, 0xd5, 0x16, 0x3d, 0x2e, 0x58,
		0x6d, 0x91, 0x83, 0x82, 0xd5, 0x06, 0xab, 0x4d, 0x24, 0x52, 0x60, 0xb5, 0xc1, 0x6a, 0xc3, 0x03,
		0x24, 0x10, 0xaa, 0xa0, 0x3f, 0x94, 0x69, 0xdb, 0xb3, 0x3a, 0x76, 0xdf, 0xbe, 0x77, 0x3d, 0x97,
		0xbb, 0x2c, 0x92, 0xe7, 0x01, 0x2e, 0x1e, 0x1e, 0x1e, 0x20, 0x3c, 0x40, 0x78, 0x80, 0xf0, 0x00,
		0xe1, 0x01, 0xbe, 0x39, 0x75, 0x8f, 0xec, 0xc9, 0x8a, 0x78, 0xe8, 0xfa, 0x0f, 0x20, 0xb7, 0x53,
		0x0e, 0x18, 0x53, 0xd4, 0xb6, 0xd5, 0xad, 0x59, 0x27, 0xad, 0x6f, 0xe5, 0x97, 0xad, 0xa3, 0xd9,
		0xef, 0xb7, 0xff, 0xb6, 0xfd, 0x4f, 0x70, 0xd2, 0x59, 0x58, 0x24, 0xfd, 0xd0, 0x0d, 0x42, 0x97,
		0x3f, 0xcb, 0x33, 0x42, 0x92, 0x11, 0x61, 0x77, 0xc0, 0xee, 0x80, 0xdd, 0x01, 0xbb, 0x03, 0x76,
		0xc7, 0x9b, 0x53, 0x37, 0x70, 0x7d, 0x7e, 0x20, 0xd1, 0xe4, 0xa8, 0x82, 0xfb, 0x5d, 0xff, 0xc5,
		0xc0, 0xfd, 0xca, 0x9c, 0x00, 0xb8, 0x5f, 0x6a, 0x91, 0x2a, 0x57, 0x41, 0xf5, 0x4a, 0x13, 0x2a,
		0x50, 0xbd, 0xb9, 0x75, 0xac, 0xd0, 0x46, 0x10, 0x8e, 0x16, 0x1c, 0x2d, 0x38, 0x5a, 0x70, 0xb4,
		0xd4, 0x75, 0xb4, 0xd0, 0x46, 0x90, 0x60, 0x40, 0xb4, 0x11, 0x84, 0x79, 0x25, 0xc3, 0xbc, 0xe2,
		0xa1, 0xed, 0x47, 0x3d, 0x37, 0x8a, 0xdc, 0xc0, 0xb7, 0xfe, 0x33, 0x60, 0x03, 0x66, 0x79, 0xcc,
		0x7f, 0x88, 0xfb, 0xe4, 0x48, 0xb3, 0xb4, 0x96, 0x4f, 0x02, 0x46, 0x17, 0x8c, 0x2e, 0x18, 0x5d,
		0x30, 0xba, 0x60, 0x74, 0xbd, 0x39, 0x75, 0x03, 0xd7, 0xe7, 0xbb, 0x65, 0x89, 0x66, 0xd6, 0x3e,
		0xe8, 0xed, 0xf5, 0x5f, 0x0c, 0xf4, 0xb6, 0xcc, 0x09, 0x80, 0xde, 0xa6, 0x16, 0xa9, 0x4a, 0xf9,
		0xb0, 0x72, 0xb8, 0xb7, 0x5f, 0x3e, 0x04, 0xcb, 0x2d, 0x4d, 0xb6, 0xc0, 0x72, 0xe7, 0xd6, 0x0d,
		0x8b, 0x3b, 0xbb, 0x59, 0x9d, 0xc7, 0xa1, 0xfa, 0x93, 0x18, 0xc8, 0x3c, 0x3b, 0x2c, 0x5c, 0x2d,
		0xb8, 0x5a, 0x70, 0xb5, 0xe0, 0x6a, 0xc1, 0xd5, 0x82, 0xab, 0x05, 0x57, 0x0b, 0xae, 0x16, 0x5c,
		0x2d, 0xb8, 0x5a, 0x70, 0xb5, 0xe0, 0x6a, 0x65, 0xe0, 0x6a, 0x69, 0xd5, 0x7a, 0xbc, 0xe6, 0xfb,
		0x01, 0xb7, 0x87, 0x27, 0x85, 0xb6, 0x03, 0x79, 0xd4, 0x79, 0x64, 0x3d, 0xbb, 0x6f, 0xc7, 0x57,
		0x73, 0x66, 0x21, 0xe8, 0x33, 0xbf, 0x13, 0x3b, 0x3b, 0x96, 0xcf, 0xf8, 0x5f, 0x41, 0xf8, 0xc5,
		0x72, 0xfd, 0x88, 0xdb, 0x7e, 0x87, 0x15, 0xde, 0xfe, 0x20, 0x9a, 0xfb, 0x49, 0xa1, 0x1f, 0x06,
		0x3c, 0xe8, 0x04, 0x5e, 0x94, 0x7c, 0x2a, 0x8c, 0xec, 0xcf, 0x82, 0x1d, 0x32, 0x3b, 0x8a, 0xff,
		0x2c, 0x7c, 0x75, 0x43, 0x3e, 0xb0, 0x3d, 0xcb, 0x73, 0xfd, 0x2f, 0xd1, 0xcc, 0x77, 0x05, 0xea,
		0x66, 0xe4, 0x66, 0xc4, 0xc3, 0x41, 0x87, 0xfb, 0x93, 0x1e, 0xb4, 0xc9, 0xdb, 0x9e, 0x8f, 0xde,
		0xa4, 0x31, 0x7e, 0x91, 0xf6, 0x9b, 0xef, 0xa3, 0xb7, 0x3f, 0x68, 0x5f, 0x4e, 0xde, 0x34, 0xf9,
		0xd4, 0xbe, 0x88, 0xdf, 0xb4, 0x5d, 0x1b, 0xbe, 0x69, 0xfc, 0x67, 0xfb, 0xf3, 0xe8, 0xdd, 0x4e,
		0x87, 0x2f, 0x3a, 0xfd, 0x4d, 0xfb, 0x3a, 0x7e, 0xcf, 0x0f, 0x7a, 0x88, 0xb9, 0xd8, 0x27, 0x0a,
		0x3e, 0x30, 0x43, 0x07, 0x4f, 0x42, 0x60, 0x9d, 0x79, 0xea, 0x46, 0xbc, 0xc6, 0x39, 0x4d, 0xa9,
		0xd3, 0xa1, 0x79, 0x59, 0xf7, 0xd8, 0xd0, 0x6b, 0x23, 0x52, 0x89, 0x43, 0x6b, 0x63, 0x6a, 0x04,
		0x39, 0x45, 0x24, 0xcc, 0x8b, 0xd0, 0x61, 0x21, 0x73, 0x3e, 0x0e, 0x77, 0xc8, 0x1f, 0x78, 0x1e,
		0xe5, 0x10, 0x37, 0x51, 0x5c, 0x87, 0x56, 0xbc, 0x4e, 0x17, 0x2d, 0xb0, 0xc4, 0xc8, 0xae, 0x16,
		0xa2, 0x13, 0x60, 0xb9, 0x22, 0x18, 0x2e, 0x16, 0xbd, 0xc5, 0x61, 0xac, 0x98, 0x27, 0x09, 0x12,
		0x7a, 0x2a, 0x61, 0xcf, 0x5c, 0xc8, 0x05, 0xca, 0x75, 0x86, 0xf2, 0x2c, 0x46, 0x86, 0xd3, 0x4b,
		0x5c, 0xba, 0x27, 0xa4, 0x94, 0xd5, 0x89, 0x05, 0xe1, 0x3a, 0xcc, 0xe7, 0x6e, 0xd7, 0x4d, 0x5d,
		0x53, 0x5c, 0xac, 0xad, 0x20, 0xde, 0x36, 0x90, 0x62, 0x0b, 0x10, 0xe8, 0x7e, 0x02, 0x5d, 0x9f,
		0x56, 0x74, 0x04, 0xc3, 0x5b, 0x06, 0xb0, 0x26, 0x00, 0xc8, 0xe4, 0x02, 0x58, 0x3a, 0xcc, 0x5a,
		0x1f, 0x69, 0xd6, 0xfb, 0xcd, 0x35, 0x05, 0x4c, 0x94, 0x60, 0xc9, 0x15, 0xa8, 0x14, 0xb2, 0x24,
		0x4d, 0x86, 0xd6, 0x13, 0x9f, 0xd5, 0x37, 0x7f, 0x8d, 0x8d, 0x37, 0x1f, 0xbc, 0xe0, 0xde, 0xf6,
		0xd6, 0xde, 0xf0, 0xe4, 0x6a, 0x69, 0xfc, 0x9c, 0x35, 0x45, 0x6f, 0x92, 0x00, 0xb1, 0xe6, 0xaf,
		0xa7, 0xbd, 0x2a, 0x17, 0x71, 0x05, 0x2e, 0xf4, 0x6a, 0x5b, 0xd4, 0x95, 0xb5, 0xf0, 0xab, 0x68,
		0xe1, 0x57, 0xcc, 0xa2, 0xaf, 0x8e, 0xe5, 0x42, 0xe6, 0xb1, 0x9b, 0xce, 0xe0, 0x32, 0x3b, 0x13,
		0xc9, 0x4d, 0xb9, 0xcf, 0x13, 0xe1, 0x1b, 0x3f, 0x2f, 0xad, 0x75, 0x9a, 0xea, 0x38, 0x0a, 0x3b,
		0x96, 0x22, 0x8f, 0x27, 0xc9, 0x31, 0x15, 0x7d, 0x5c, 0xc9, 0x8e, 0x2d, 0xd9, 0xf1, 0xa5, 0x3a,
		0xc6, 0x6a, 0x78, 0x69, 0x69, 0x8f, 0x77, 0xf2, 0xa0, 0x47, 0xd7, 0x61, 0x56, 0x9c, 0x1b, 0xe4,
		0x72, 0x2b, 0xf0, 0xbd, 0xe7, 0x89, 0x29, 0x24, 0x2e, 0x46, 0xee, 0xb5, 0x4a, 0xdd, 0xf2, 0xb1,
		0x04, 0xed, 0xb5, 0xd8, 0x00, 0x38, 0xe1, 0x81, 0x6e, 0x14, 0x01, 0x6d, 0xa4, 0x81, 0x6b, 0x54,
		0x01, 0x6a, 0xe4, 0x81, 0x68, 0xe4, 0x01, 0x67, 0xd4, 0x81, 0x65, 0x6a, 0x11, 0x97, 0xc2, 0x03,
		0xc2, 0x12, 0xa9, 0xbd, 0x0f, 0x02, 0x8f, 0xd9, 0xbe, 0x48, 0x99, 0x9d, 0xd8, 0x08, 0x25, 0xa5,
		0x96, 0x90, 0x3d, 0xf1, 0xd0, 0xb6, 0x06, 0x7e, 0xdc, 0xd5, 0x46, 0xf0, 0x62, 0x86, 0xac, 0xcb,
		0x42, 0xe6, 0x77, 0xc4, 0x07, 0x9b, 0x11, 0xdc, 0xc8, 0x4c, 0x76, 0xfe, 0xea, 0xe4, 0xd3, 0xde,
		0xc1, 0x5e, 0xd1, 0xb0, 0x8c, 0x7f, 0xb9, 0x8e, 0xeb, 0x3f, 0x18, 0xcd, 0xb1, 0x66, 0xb8, 0xf0,
		0xbd, 0x67, 0x63, 0xec, 0xc8, 0x46, 0x86, 0xeb, 0x1b, 0x17, 0xd7, 0x97, 0x27, 0x14, 0x57, 0x27,
		0xc4, 0xd1, 0xb7, 0xd3, 0x20, 0xf7, 0xba, 0x43, 0x44, 0x11, 0x12, 0xb2, 0x02, 0x6c, 0x67, 0x70,
		0x6f, 0xc5, 0x2d, 0x54, 0xfd, 0x2e, 0x5e, 0xd8, 0xd3, 0x5a, 0xaa, 0xdc, 0x24, 0x08, 0x70, 0x20,
		0xdc, 0x87, 0xbe, 0x15, 0x3d, 0x06, 0x21, 0xef, 0x0c, 0x38, 0x81, 0x4d, 0x38, 0xfb, 0x78, 0x98,
		0x81, 0x30, 0x03, 0x61, 0x06, 0xc2, 0x0c, 0x54, 0xd0, 0x0c, 0x54, 0x02, 0x8c, 0xbd, 0xe0, 0xc1,
		0xb2, 0x9d, 0xff, 0xb5, 0x3b, 0xcc, 0xef, 0x3c, 0x0b, 0x4f, 0x66, 0x7b, 0xed, 0xbf, 0xb8, 0x70,
		0x18, 0x80, 0x33, 0xc0, 0x19, 0xe0, 0x0c, 0x70, 0x06, 0x38, 0x2f, 0xf1, 0xc2, 0x85, 0x17, 0xd0,
		0x7c, 0x2d, 0xdf, 0x24, 0x38, 0x90, 0x17, 0x20, 0x0c, 0x10, 0x06, 0x08, 0x6b, 0x05, 0xc2, 0x34,
		0x0d, 0xec, 0x29, 0x0a, 0x3c, 0x92, 0x15, 0x72, 0xd4, 0xb4, 0xf1, 0x7c, 0x0b, 0x3c, 0x74, 0xea,
		0x2f, 0x42, 0x1e, 0x3a, 0xec, 0x76, 0xca, 0x07, 0xe5, 0x03, 0x10, 0xcc, 0xd9, 0xea, 0x89, 0x85,
		0xfa, 0x62, 0xb2, 0x37, 0x60, 0x8e, 0x35, 0xb4, 0x87, 0xa3, 0x41, 0xaf, 0x67, 0x87, 0xcf, 0xa3,
		0x2c, 0x34, 0xab, 0x13, 0x44, 0xdc, 0xea, 0x05, 0x0e, 0x13, 0x6f, 0x1d, 0x2f, 0x1b, 0x48, 0x10,
		0x62, 0x1e, 0xb3, 0xae, 0x3d, 0xf0, 0xb8, 0x50, 0x4c, 0x33, 0xaf, 0x4e, 0x3e, 0x95, 0x77, 0xcb,
		0x07, 0xed, 0x4f, 0x17, 0x67, 0x97, 0xb5, 0x66, 0xe3, 0xe3, 0x69, 0x5d, 0x8c, 0x90, 0xb7, 0xe0,
		0x20, 0xc0, 0x41, 0x80, 0x83, 0xb0, 0x81, 0x0e, 0x02, 0xf3, 0x07, 0x3d, 0x16, 0x8e, 0xa2, 0xe4,
		0x09, 0x1c, 0x84, 0x8a, 0xc0, 0x67, 0xd6, 0xfd, 0x41, 0x4f, 0xfc, 0x49, 0x68, 0x06, 0xd7, 0xa3,
		0x16, 0xa8, 0x24, 0x89, 0xa4, 0xc5, 0xf1, 0x85, 0x77, 0xa9, 0x7a, 0xb0, 0x3b, 0x8d, 0xda, 0x04,
		0x66, 0x63, 0x69, 0x3c, 0x14, 0x89, 0x82, 0x10, 0x2c, 0xd0, 0x53, 0xab, 0xdf, 0x88, 0x8f, 0x30,
		0xc1, 0xd2, 0x2f, 0x58, 0x75, 0x9a, 0xb4, 0xf0, 0x05, 0x6b, 0x7e, 0x64, 0x94, 0xf2, 0x9d, 0xda,
		0xaa, 0x79, 0x20, 0xac, 0xae, 0x39, 0x67, 0xa3, 0xac, 0x94, 0x82, 0x90, 0xa8, 0x78, 0x43, 0x52,
		0xca, 0xd0, 0x6f, 0xf1, 0x9c, 0xdb, 0x63, 0x5b, 0x2e, 0xab, 0xcc, 0xb3, 0x14, 0xb9, 0x2b, 0x0f,
		0xa1, 0xdd, 0x61, 0xdd, 0x81, 0x67, 0x85, 0x2c, 0xe2, 0x76, 0xc8, 0xc5, 0x65, 0x37, 0xcc, 0x3d,
		0x19, 0x79, 0x0e, 0x52, 0xcd, 0x6c, 0xe4, 0x39, 0x20, 0xcf, 0xe1, 0x87, 0x0f, 0x12, 0x94, 0xce,
		0x34, 0x27, 0xc4, 0xc2, 0x00, 0x5c, 0xe0, 0xb1, 0x87, 0xd7, 0x0d, 0xaf, 0x1b, 0x5e, 0x37, 0x05,
		0x8c, 0x24, 0x0f, 0x64, 0xbe, 0x7d, 0xef, 0x31, 0xf1, 0xad, 0x32, 0xa7, 0xbc, 0xf9, 0xd1, 0x00,
		0xa2, 0xeb, 0x83, 0x91, 0x54, 0x08, 0x27, 0xab, 0x08, 0x4e, 0x59, 0x01, 0x5c, 0x4a, 0xc5, 0x6f,
		0x99, 0x57, 0x40, 0xa4, 0x15, 0xbd, 0xb3, 0xb9, 0xff, 0x21, 0xac, 0xd8, 0xad, 0x76, 0x1d, 0x3f,
		0xb2, 0x0a, 0xdc, 0x84, 0x41, 0x5d, 0x73, 0x56, 0x8c, 0xb2, 0xcc, 0x89, 0x40, 0x03, 0xe3, 0x91,
		0x79, 0x7d, 0x16, 0xc6, 0xd9, 0xac, 0x74, 0xca, 0x60, 0x7a, 0x10, 0x28, 0x04, 0x28, 0x04, 0x28,
		0x04, 0x28, 0x04, 0x28, 0x04, 0x54, 0x89, 0x5c, 0xed, 0xb9, 0x92, 0xa9, 0xed, 0xb7, 0x94, 0x68,
		0x41, 0x28, 0x55, 0x62, 0xc8, 0xe5, 0xbc, 0x7f, 0x1b, 0xbf, 0xcc, 0xd5, 0xe8, 0x5d, 0x84, 0x70,
		0xe0, 0xe2, 0xa4, 0x4f, 0x48, 0xb4, 0x4e, 0x5c, 0x84, 0x5b, 0x7c, 0x6c, 0x8e, 0xc0, 0x1a, 0xe6,
		0x64, 0xf4, 0x58, 0x19, 0xf4, 0x18, 0xe8, 0x31, 0xd0, 0x63, 0xa0, 0xc7, 0xe0, 0x0d, 0xc1, 0x1b,
		0x82, 0x37, 0x04, 0x6f, 0x08, 0xf4, 0x18, 0xe8, 0x31, 0x28, 0x04, 0x28, 0x04, 0x28, 0x04, 0x28,
		0x04, 0x28, 0x04, 0xd0, 0x63, 0x32, 0xe8, 0x31, 0xd1, 0xdd, 0xde, 0x32, 0x64, 0xc7, 0x04, 0x36,
		0x74, 0x43, 0x7c, 0xb2, 0x52, 0x52, 0xaa, 0x57, 0xa4, 0xf2, 0x1b, 0xb9, 0xd4, 0x31, 0x64, 0xd9,
		0xf5, 0x39, 0x0b, 0x2d, 0x3b, 0x64, 0xb6, 0xd5, 0x0f, 0x83, 0xbe, 0xfd, 0x10, 0xcb, 0x92, 0xd5,
		0x0f, 0x3c, 0xb7, 0xe3, 0x0a, 0xa8, 0xfd, 0xf4, 0x5a, 0x88, 0xef, 0x27, 0x03, 0x21, 0xa0, 0x59,
		0xaa, 0x61, 0x8c, 0x80, 0x66, 0x04, 0x34, 0xaf, 0x0d, 0x0c, 0xcf, 0x04, 0x75, 0x3a, 0x7f, 0x38,
		0x1c, 0xc2, 0x9f, 0x95, 0xf4, 0xaa, 0x71, 0xbf, 0x93, 0x95, 0xd7, 0x9c, 0xf3, 0xfb, 0x1d, 0xc1,
		0xd9, 0x14, 0x73, 0x87, 0x41, 0x78, 0xa8, 0x00, 0x01, 0xbc, 0x80, 0xcc, 0x03, 0x99, 0x07, 0x32,
		0x8f, 0x82, 0xcc, 0x13, 0x0d, 0x57, 0xc9, 0x83, 0x9d, 0x51, 0x25, 0x17, 0xcb, 0xed, 0xf5, 0x83,
		0x90, 0x8b, 0xb6, 0x95, 0x96, 0x9e, 0xb1, 0xc5, 0xc3, 0x12, 0x49, 0x10, 0x45, 0xb5, 0x9a, 0xb9,
		0x41, 0xae, 0xea, 0xff, 0x5f, 0xfd, 0x53, 0xb3, 0x7d, 0x75, 0x71, 0xd3, 0xac, 0xd3, 0x34, 0xee,
		0x6f, 0x11, 0x2d, 0x0f, 0xcd, 0x85, 0x0e, 0xb9, 0x2e, 0x90, 0xa1, 0x13, 0x16, 0xe9, 0x86, 0xb0,
		0x1f, 0x78, 0x44, 0x92, 0x2a, 0x43, 0x43, 0x48, 0xd7, 0x14, 0xd2, 0x35, 0xc6, 0x32, 0xcd, 0x11,
		0x6f, 0x1c, 0xd9, 0x88, 0x2f, 0x24, 0x4f, 0x7e, 0x21, 0x3a, 0x33, 0x64, 0x97, 0x43, 0x4b, 0x91,
		0x7e, 0x04, 0xf1, 0x16, 0x1f, 0x0e, 0x4c, 0x78, 0x7a, 0x08, 0x6a, 0xf3, 0xcc, 0x8d, 0x41, 0x52,
		0xab, 0x67, 0x7e, 0x8b, 0x28, 0x6b, 0xf7, 0xcc, 0x8d, 0x16, 0xd7, 0xf2, 0xa9, 0x7d, 0xfa, 0x54,
		0xbf, 0x9c, 0xe8, 0xb0, 0x5f, 0xe9, 0x07, 0x1d, 0x55, 0xf5, 0x21, 0x57, 0x9c, 0xc4, 0x87, 0x69,
		0x6a, 0xc7, 0xa8, 0xea, 0xfd, 0xcc, 0x43, 0xdb, 0xf4, 0x4e, 0x91, 0xa9, 0xd6, 0xe5, 0x06, 0x8e,
		0xe8, 0x1a, 0x40, 0x72, 0xd0, 0x94, 0x10, 0xa7, 0x3f, 0x68, 0x20, 0xac, 0xa6, 0x13, 0xf1, 0x98,
		0xaf, 0x94, 0x60, 0xdf, 0x4f, 0x46, 0x82, 0xcd, 0xaa, 0x82, 0xcd, 0x4a, 0xc6, 0x67, 0xc0, 0x6a,
		0xd5, 0x95, 0xef, 0x80, 0xdd, 0xfa, 0xe3, 0x53, 0xe3, 0x31, 0xbb, 0x1b, 0xb2, 0xae, 0x0c, 0x5b,
		0x75, 0x9f, 0x70, 0x8c, 0xcb, 0x71, 0x58, 0xc4, 0xce, 0x4e, 0x61, 0xfa, 0xbf, 0x21, 0x36, 0x47,
		0xf1, 0x9f, 0x05, 0xd7, 0x61, 0x3e, 0x77, 0xbb, 0x2e, 0x0b, 0xcd, 0x0d, 0x56, 0x8d, 0x92, 0xf9,
		0x2f, 0x29, 0xbc, 0x17, 0x94, 0x24, 0x88, 0x1d, 0x10, 0x3b, 0x50, 0x90, 0x50, 0x90, 0xef, 0x50,
		0x90, 0x85, 0xb1, 0x20, 0x1d, 0x85, 0xc1, 0x80, 0xbb, 0xfe, 0xc3, 0x18, 0x9b, 0x93, 0x1f, 0x8f,
		0xf9, 0x2b, 0x87, 0x75, 0x5d, 0xdf, 0xe5, 0x6e, 0xe0, 0x47, 0xcb, 0xff, 0x2a, 0xf9, 0x9b, 0x38,
		0xa2, 0x4f, 0x2b, 0xf9, 0x39, 0x75, 0x23, 0x5e, 0xe3, 0x3c, 0xa4, 0x95, 0xa1, 0x33, 0xd7, 0xaf,
		0x7b, 0x6c, 0x78, 0x84, 0x23, 0x5a, 0xf6, 0xc2, 0x3c, 0xb3, 0x9f, 0xa6, 0x46, 0x2a, 0x1d, 0x54,
		0x2a, 0x7b, 0xfb, 0x95, 0x4a, 0x71, 0x7f, 0x77, 0xbf, 0x78, 0x58, 0xad, 0x96, 0xf6, 0x4a, 0x55,
		0xc2, 0xc1, 0x2f, 0x42, 0x87, 0x85, 0xcc, 0xf9, 0xf8, 0x4c, 0x0f, 0xfa, 0x93, 0x53, 0x39, 0x88,
		0x58, 0x48, 0x8d, 0xf7, 0x92, 0x14, 0xd9, 0x5b, 0x65, 0x16, 0x8c, 0x56, 0xd3, 0xba, 0x7f, 0x96,
		0xc1, 0x4d, 0xca, 0x56, 0x6a, 0x73, 0x8a, 0x2d, 0xde, 0x49, 0x5d, 0x49, 0x36, 0x19, 0x87, 0xea,
		0x66, 0xb8, 0x40, 0xa3, 0xad, 0xd9, 0x60, 0xc7, 0x25, 0x0a, 0x3b, 0x92, 0x38, 0xbd, 0x64, 0x24,
		0xb8, 0x2b, 0x2a, 0xb8, 0x2b, 0xe0, 0xf4, 0xb4, 0x75, 0x58, 0xc0, 0xe9, 0xc1, 0x65, 0x11, 0xe0,
		0xb2, 0xe4, 0x8a, 0xd3, 0x53, 0x3a, 0xfc, 0x8e, 0x28, 0xc1, 0xf2, 0x55, 0x89, 0xcb, 0x4d, 0x61,
		0xfb, 0x49, 0x62, 0xd3, 0x0f, 0xff, 0xfe, 0xb9, 0x40, 0x12, 0x89, 0x6c, 0xc8, 0x4d, 0x83, 0x6b,
		0x0c, 0xdf, 0xb0, 0x16, 0x32, 0xfb, 0xf2, 0xf5, 0xfd, 0x2e, 0xc7, 0xaf, 0xbf, 0xfc, 0x2f, 0x9f,
		0x85, 0x16, 0x39, 0x13, 0x2f, 0xfa, 0x22, 0xcb, 0x54, 0x90, 0xdd, 0x15, 0x53, 0xdf, 0x11, 0xa3,
		0x40, 0x85, 0x64, 0x7b, 0x11, 0x31, 0xed, 0xaa, 0xda, 0x83, 0x9b, 0x5e, 0xa0, 0x82, 0xce, 0xde,
		0xa3, 0xb4, 0xf3, 0xa6, 0xed, 0xbb, 0x91, 0xfe, 0x2b, 0x24, 0x50, 0xb9, 0x01, 0x8a, 0x87, 0x8c,
		0xd0, 0xa0, 0x26, 0x32, 0xa0, 0x78, 0xa0, 0x78, 0xa0, 0x78, 0xa0, 0x78, 0xf2, 0xa4, 0x78, 0x12,
		0xa8, 0xdc, 0x04, 0xc5, 0x23, 0xb4, 0xdc, 0xf3, 0xbc, 0xd6, 0x11, 0x5c, 0xcc, 0xc8, 0x90, 0x91,
		0xbf, 0x5b, 0x86, 0xca, 0x81, 0xca, 0x81, 0xca, 0x49, 0xbd, 0x08, 0xc8, 0xdf, 0x4d, 0xb3, 0x78,
		0xc8, 0xdf, 0x95, 0xef, 0x76, 0x90, 0xbb, 0x1f, 0x32, 0x74, 0xc2, 0x22, 0xdd, 0x80, 0x30, 0x4f,
		0xc5, 0x35, 0xc6, 0x32, 0xcd, 0x81, 0x30, 0x4f, 0x09, 0x2e, 0xcc, 0x52, 0xa4, 0x47, 0xfe, 0xee,
		0xaa, 0x5b, 0x84, 0xfc, 0x5d, 0x3d, 0x0e, 0xd3, 0xd4, 0x8e, 0x21, 0x7f, 0x57, 0x69, 0x34, 0x35,
		0x90, 0xbf, 0x8b, 0xfc, 0xdd, 0x4d, 0xb4, 0x59, 0x11, 0xeb, 0xa7, 0xad, 0xd5, 0x8a, 0x58, 0xbf,
		0x6c, 0xec, 0x56, 0xc4, 0xfa, 0x6d, 0x94, 0x6a, 0x44, 0xfe, 0x2e, 0x88, 0x1d, 0x10, 0x3b, 0x20,
		0x76, 0xa0, 0x20, 0x37, 0x54, 0x41, 0x22, 0x7f, 0xd7, 0x40, 0xfe, 0xae, 0xe0, 0xc1, 0x91, 0xbf,
		0x2b, 0x52, 0x99, 0x21, 0x7f, 0x57, 0x1f, 0x92, 0x0d, 0xf9, 0xbb, 0xb2, 0x1c, 0x17, 0xe4, 0xef,
		0x6e, 0xa8, 0xbb, 0x02, 0x4e, 0x4f, 0x5b, 0x87, 0x05, 0x9c, 0x1e, 0x5c, 0x16, 0x01, 0x2e, 0x0b,
		0xf2, 0x77, 0x25, 0x89, 0x2a, 0xf2, 0x77, 0xa7, 0xf3, 0x77, 0x29, 0x02, 0x91, 0x0d, 0x3d, 0xd2,
		0x77, 0x05, 0x76, 0x61, 0x15, 0x2f, 0xf8, 0x6a, 0x35, 0xc8, 0xfa, 0x9d, 0x3d, 0x4f, 0x1b, 0x8d,
		0x86, 0xe0, 0x1b, 0x61, 0x1a, 0xa2, 0x82, 0x8e, 0x98, 0x90, 0x4a, 0x44, 0xcc, 0x10, 0x0f, 0xfe,
		0xc0, 0xf3, 0x28, 0x1e, 0x3d, 0x76, 0xbf, 0xba, 0xb6, 0x17, 0x31, 0x74, 0xb3, 0x56, 0x0c, 0xa4,
		0xf5, 0x6c, 0x7a, 0xbd, 0x26, 0x2c, 0xa3, 0x2d, 0x76, 0x0e, 0xda, 0x62, 0xd3, 0x36, 0x4b, 0x56,
		0x48, 0x90, 0x75, 0x6c, 0x99, 0xdd, 0xeb, 0x7b, 0x02, 0xfb, 0x62, 0xc7, 0x4f, 0x43, 0xf3, 0x6b,
		0xa9, 0x24, 0x0f, 0x9a, 0x5f, 0xa3, 0xf9, 0xf5, 0x0f, 0x1f, 0x24, 0xb8, 0xff, 0x2c, 0x4d, 0xdf,
		0x59, 0xb4, 0xb3, 0x46, 0x3b, 0x6b, 0x49, 0x1c, 0x2e, 0xda, 0x59, 0xa7, 0x7a, 0x20, 0x0f, 0xed,
		0x6e, 0xd7, 0xed, 0x58, 0xcc, 0x7f, 0x70, 0x7d, 0xc6, 0x42, 0xd7, 0x7f, 0xb0, 0xd8, 0x13, 0x67,
		0x7e, 0xe4, 0x06, 0x7e, 0x44, 0x97, 0x25, 0xff, 0x93, 0x71, 0x51, 0xb1, 0x05, 0xe9, 0xf3, 0x59,
		0xc2, 0x96, 0x34, 0xf8, 0x92, 0x05, 0x63, 0xe2, 0x69, 0x4c, 0x43, 0xcb, 0x8a, 0x2d, 0xf7, 0x41,
		0xe0, 0x31, 0xdb, 0xa7, 0xac, 0xd8, 0x52, 0x02, 0xef, 0xbc, 0x39, 0xec, 0xdf, 0xd0, 0x47, 0x16,
		0x5f, 0x29, 0x55, 0x22, 0x05, 0x72, 0xd6, 0xf7, 0x22, 0xa1, 0xe5, 0x4e, 0x05, 0xf0, 0x73, 0x02,
		0xdc, 0x68, 0xf7, 0xa1, 0x6f, 0x79, 0x4e, 0xdf, 0x8a, 0x9e, 0xfd, 0x8e, 0x78, 0x67, 0x69, 0xe6,
		0xe9, 0x70, 0x99, 0xe0, 0x32, 0xc1, 0x65, 0xda, 0x1c, 0x97, 0x49, 0x30, 0x03, 0x43, 0xcb, 0xc4,
		0x10, 0xc1, 0x0b, 0x5c, 0x20, 0xb8, 0x40, 0x70, 0x81, 0x0c, 0x9d, 0x2a, 0x88, 0x31, 0xdf, 0xbe,
		0xf7, 0x98, 0x43, 0x1f, 0x7f, 0x3c, 0x19, 0x08, 0xe1, 0xc7, 0xb2, 0x81, 0x4d, 0x2a, 0xc0, 0xc9,
		0x02, 0x3a, 0xe9, 0x80, 0x27, 0x1d, 0xf8, 0x64, 0x03, 0x20, 0x0d, 0x10, 0x12, 0x01, 0x22, 0x3d,
		0x37, 0x24, 0x91, 0x23, 0x22, 0xe6, 0x8a, 0xe8, 0x36, 0x96, 0x22, 0x23, 0xa6, 0x1f, 0x44, 0xdc,
		0x8a, 0x58, 0x14, 0xb9, 0x81, 0x6f, 0x0d, 0xfa, 0x96, 0xc3, 0x3c, 0x5b, 0x42, 0x4a, 0xff, 0xe2,
		0x61, 0xa1, 0xac, 0xa0, 0xac, 0xa0, 0xac, 0xa0, 0xac, 0xb4, 0x53, 0x56, 0x03, 0xd7, 0xe7, 0xbb,
		0x65, 0x09, 0xba, 0x8a, 0x32, 0x53, 0xe6, 0xca, 0xf6, 0x1f, 0x18, 0x69, 0xdd, 0xdf, 0xe1, 0x97,
		0x84, 0x34, 0xe8, 0x33, 0xd7, 0x97, 0x92, 0x6f, 0x1d, 0x0f, 0xf6, 0xd9, 0xf6, 0x06, 0x4c, 0x4e,
		0x55, 0xc1, 0x78, 0xbc, 0x93, 0xd0, 0xee, 0x70, 0x37, 0xf0, 0x8f, 0xdd, 0x07, 0x97, 0xba, 0x20,
		0xc0, 0xac, 0xac, 0xb3, 0x07, 0x9b, 0xbb, 0x5f, 0x99, 0xd0, 0x30, 0xf6, 0x0c, 0x60, 0x61, 0x56,
		0x54, 0xec, 0x27, 0xf9, 0xa2, 0x52, 0x29, 0x1f, 0x56, 0x0e, 0xf7, 0xf6, 0xcb, 0x87, 0x55, 0xc8,
		0x8c, 0x16, 0x0a, 0x8a, 0xfe, 0xe9, 0x2d, 0x64, 0x1e, 0x8a, 0xb0, 0x86, 0xf2, 0x95, 0x79, 0x18,
		0x5f, 0x6b, 0x4f, 0xdf, 0x72, 0xe6, 0xa2, 0x1b, 0x68, 0x7c, 0xd7, 0xdd, 0x78, 0xe8, 0x9f, 0x3a,
		0xfd, 0xeb, 0x67, 0xbf, 0xb3, 0x41, 0x5d, 0x3e, 0xd1, 0xf3, 0x66, 0xde, 0x67, 0x46, 0xcf, 0x1b,
		0xb9, 0xbe, 0x31, 0x6e, 0xac, 0xf2, 0xa9, 0xfa, 0x70, 0x63, 0xf5, 0x3e, 0x20, 0x03, 0x09, 0x98,
		0x31, 0xc0, 0xc9, 0x02, 0x3a, 0xe9, 0x80, 0x27, 0x1d, 0xf8, 0x64, 0x03, 0x20, 0xad, 0x17, 0x84,
		0x1b, 0xab, 0x15, 0xac, 0x31, 0xdc, 0x58, 0xe1, 0xc6, 0x0a, 0xca, 0x0a, 0xca, 0x0a, 0xca, 0x0a,
		0xca, 0x6a, 0xbd, 0x53, 0x83, 0x1b, 0xab, 0x77, 0x7f, 0xe1, 0xc6, 0x2a, 0xdd, 0x78, 0xb8, 0xb1,
		0x12, 0x2a, 0x2a, 0xb8, 0xb1, 0xca, 0x97, 0xcc, 0xe0, 0xc6, 0x8a, 0xd6, 0x05, 0xc1, 0x8d, 0x55,
		0x96, 0x37, 0x56, 0x39, 0xa8, 0x7f, 0xf9, 0xf6, 0xc2, 0x0a, 0x75, 0x2d, 0xb3, 0x16, 0xef, 0xcc,
		0xc5, 0x5a, 0xe3, 0x2c, 0xe3, 0x57, 0x41, 0xce, 0x53, 0xa6, 0xb1, 0xd8, 0xab, 0x55, 0x92, 0x2b,
		0x55, 0xb2, 0xdc, 0xe2, 0x32, 0x72, 0x8b, 0x91, 0x5b, 0x2c, 0x95, 0x64, 0x41, 0x39, 0x26, 0x12,
		0x4e, 0x06, 0xe5, 0x98, 0x24, 0xc3, 0x93, 0x14, 0x98, 0xa2, 0x86, 0x2b, 0x69, 0xb0, 0x25, 0x0d,
		0xbe, 0x64, 0xc1, 0x98, 0x1e, 0x2e, 0x22, 0xca, 0x31, 0xc1, 0x5d, 0xd2, 0xd0, 0x5d, 0x12, 0xed,
		0xf8, 0xcb, 0xf6, 0x93, 0x04, 0x7a, 0xf9, 0x28, 0x96, 0x9e, 0xb9, 0x38, 0xea, 0x55, 0x11, 0x7d,
		0x28, 0x80, 0x3a, 0x56, 0x3e, 0x17, 0xe3, 0x85, 0x0b, 0xf5, 0xbe, 0x85, 0xd7, 0x3e, 0x2f, 0xa3,
		0xf6, 0xb9, 0x1a, 0x66, 0x29, 0x6a, 0x9f, 0x67, 0xe2, 0x25, 0x9b, 0x8f, 0xae, 0xc3, 0x2c, 0x1e,
		0xda, 0x7e, 0xe4, 0x72, 0x2b, 0xf0, 0xbd, 0xe7, 0x09, 0x6a, 0x47, 0xe2, 0xf9, 0xb7, 0x1f, 0x8c,
		0x25, 0x96, 0x94, 0x2b, 0xa2, 0xe0, 0x1f, 0x48, 0x39, 0x90, 0x72, 0xe2, 0x5c, 0x19, 0xe1, 0x5e,
		0x2b, 0xa1, 0xb7, 0x2a, 0xd8, 0x4b, 0x15, 0xb5, 0x84, 0xec, 0x89, 0x87, 0xb6, 0x35, 0x18, 0x5a,
		0x8d, 0xf7, 0x9e, 0xe0, 0xc5, 0x0c, 0x59, 0x97, 0x85, 0xcc, 0xef, 0x88, 0x8f, 0x9e, 0x22, 0xe4,
		0x29, 0xae, 0x4e, 0x3e, 0xed, 0x1d, 0xec, 0x15, 0x0d, 0xcb, 0xf8, 0x97, 0xeb, 0xb8, 0xfe, 0x83,
		0xd1, 0x1c, 0x6b, 0x86, 0x0b, 0xdf, 0x7b, 0x36, 0xc6, 0x56, 0x76, 0x64, 0xb8, 0xbe, 0x71, 0x71,
		0x7d, 0x79, 0xa2, 0x39, 0x85, 0xf7, 0xba, 0x43, 0x79, 0x62, 0xf1, 0x56, 0xdc, 0x42, 0xd5, 0xa9,
		0x3e, 0x61, 0x4f, 0x6b, 0xe5, 0xac, 0xea, 0x73, 0xf4, 0x18, 0x84, 0xbc, 0x33, 0xe0, 0x11, 0x4d,
		0xd9, 0xe7, 0xd7, 0xc7, 0xc3, 0x0c, 0x84, 0x19, 0x08, 0x33, 0x10, 0x66, 0xa0, 0x82, 0x66, 0xa0,
		0x12, 0x60, 0xec, 0x05, 0x0f, 0x96, 0xed, 0xfc, 0xaf, 0xdd, 0x61, 0x7e, 0xe7, 0xd9, 0xea, 0x3c,
		0xda, 0xfe, 0x03, 0x23, 0x00, 0xe5, 0xc5, 0xc3, 0x00, 0x9c, 0x01, 0xce, 0x00, 0x67, 0x80, 0x33,
		0xc0, 0x79, 0x89, 0x17, 0x1e, 0x0c, 0x38, 0x0b, 0x2d, 0xd7, 0x11, 0x0f, 0xc8, 0xaf, 0x8f, 0x06,
		0x08, 0x03, 0x84, 0x01, 0xc2, 0x1b, 0x08, 0xc2, 0x4e, 0xc0, 0x39, 0x73, 0xac, 0xff, 0x0c, 0x6c,
		0x87, 0x02, 0x88, 0x0f, 0x04, 0x3e, 0xf3, 0xd2, 0xe6, 0x9c, 0x85, 0xbe, 0x70, 0x32, 0xd2, 0xdc,
		0xda, 0xba, 0x2d, 0x5a, 0x87, 0xad, 0xef, 0xb7, 0x25, 0xeb, 0xb0, 0x35, 0xfa, 0x58, 0x8a, 0xff,
		0x37, 0xfa, 0x5c, 0xbe, 0x2d, 0x5a, 0x95, 0xc9, 0xe7, 0xea, 0x6d, 0xd1, 0xaa, 0xb6, 0xb6, 0xef,
		0xee, 0x76, 0xb6, 0xbf, 0xed, 0xbe, 0xac, 0xfe, 0x8b, 0xa6, 0x6a, 0x6c, 0x10, 0x78, 0x68, 0xa1,
		0x5f, 0xaf, 0xba, 0xb5, 0xdb, 0x29, 0x1f, 0x94, 0x0f, 0x40, 0x30, 0x67, 0xab, 0x27, 0x16, 0xea,
		0x8b, 0xc9, 0xde, 0x80, 0x39, 0xd6, 0xd0, 0x1e, 0x8e, 0x06, 0xbd, 0x9e, 0x1d, 0x3e, 0x5b, 0xb1,
		0xf1, 0x6a, 0x75, 0x82, 0x88, 0x5b, 0xbd, 0xc0, 0xa1, 0xc8, 0xeb, 0x59, 0x32, 0x90, 0xa8, 0x8c,
		0x04, 0xd6, 0xb5, 0x07, 0x1e, 0x17, 0x8a, 0x69, 0xe6, 0xd5, 0xc9, 0xa7, 0xf2, 0x6e, 0xf9, 0xa0,
		0xfd, 0xe9, 0xe2, 0xec, 0xb2, 0xd6, 0x6c, 0x7c, 0x3c, 0xad, 0x8b, 0x11, 0xf2, 0x16, 0x1c, 0x04,
		0x38, 0x08, 0x70, 0x10, 0x36, 0xd0, 0x41, 0x60, 0xfe, 0xa0, 0xc7, 0xc2, 0x51, 0x60, 0x2f, 0x81,
		0x83, 0x50, 0x11, 0xf8, 0xcc, 0xba, 0x3f, 0xe8, 0x89, 0x3f, 0x09, 0xcd, 0xe0, 0x9a, 0x87, 0xae,
		0xff, 0x40, 0x93, 0x5e, 0x51, 0x1c, 0x5f, 0x78, 0x97, 0xaa, 0x07, 0xbb, 0xd3, 0xa8, 0x4d, 0x60,
		0x36, 0x96, 0xc6, 0x43, 0x91, 0x28, 0x08, 0xc1, 0x02, 0x3d, 0xb5, 0xfa, 0x8d, 0xf8, 0x08, 0x13,
		0x2c, 0xfd, 0x82, 0x55, 0x27, 0x29, 0x21, 0xb2, 0x68, 0xcd, 0x8f, 0x8c, 0x9c, 0x27, 0xbb, 0x20,
		0x9b, 0x61, 0xd6, 0x68, 0x95, 0x9b, 0xcd, 0x20, 0x2a, 0xaf, 0x46, 0x62, 0x3a, 0x83, 0x80, 0x54,
		0x9a, 0x6c, 0xf2, 0x19, 0xb8, 0xdb, 0x63, 0x61, 0x24, 0x2e, 0xa1, 0x61, 0xfc, 0x3c, 0xc5, 0x32,
		0x1a, 0x8a, 0xc8, 0x68, 0x50, 0xc3, 0x80, 0x46, 0x46, 0xc3, 0x6a, 0x5e, 0xb6, 0xa8, 0x8c, 0x06,
		0x2f, 0xb2, 0xad, 0x07, 0xe6, 0x4f, 0x4c, 0x61, 0xf1, 0xc1, 0x11, 0xb3, 0xcf, 0x57, 0xbc, 0x9c,
		0x08, 0xfc, 0x6d, 0xf8, 0xdb, 0x9b, 0xec, 0x6f, 0x0b, 0x2f, 0x27, 0xd2, 0x99, 0x9c, 0x2c, 0xa2,
		0xb2, 0x21, 0x24, 0x4d, 0x81, 0xc8, 0x1b, 0xbf, 0xa0, 0x3c, 0x88, 0x1c, 0xf8, 0x91, 0x06, 0x43,
		0xd2, 0xe0, 0x48, 0x16, 0x2c, 0x89, 0x77, 0xc0, 0x0d, 0x9d, 0x1a, 0xbf, 0xb8, 0xbe, 0xcb, 0x5d,
		0xdb, 0x93, 0x55, 0x5f, 0x7f, 0x76, 0x38, 0xd4, 0xd5, 0x97, 0x0d, 0x72, 0x52, 0xc1, 0x4e, 0x16,
		0xe8, 0x49, 0x07, 0x3f, 0xe9, 0x20, 0x28, 0x1b, 0x0c, 0x69, 0x40, 0x91, 0x08, 0x1c, 0x93, 0xc5,
		0x41, 0x5d, 0xfd, 0x95, 0x86, 0x40, 0x5d, 0xfd, 0x75, 0x06, 0x43, 0x5d, 0x7d, 0x32, 0xb0, 0x41,
		0x5d, 0x7d, 0xc8, 0x8c, 0x12, 0x0a, 0x8a, 0xfe, 0xe9, 0xad, 0x0d, 0x6e, 0xed, 0xd5, 0xb3, 0x9f,
		0xdc, 0xde, 0xa0, 0x27, 0xcb, 0xe5, 0x98, 0x1d, 0x0e, 0x2e, 0x07, 0x5c, 0x0e, 0xb8, 0x1c, 0x70,
		0x39, 0xe0, 0x72, 0xc0, 0xe5, 0x80, 0xcb, 0x01, 0x97, 0x03, 0x2e, 0x07, 0x64, 0x06, 0x2e, 0x87,
		0x52, 0x2e, 0x07, 0x5a, 0x79, 0xc9, 0x8b, 0x33, 0x1c, 0xc5, 0xaa, 0x15, 0x66, 0x63, 0x57, 0x0a,
		0x24, 0x77, 0xcd, 0x86, 0xdc, 0x70, 0xc4, 0x66, 0xfc, 0x66, 0xed, 0xd3, 0xc8, 0xfe, 0x2d, 0x79,
		0xb1, 0xf6, 0xd8, 0x8f, 0x52, 0x35, 0x72, 0x57, 0x68, 0x1d, 0x75, 0x91, 0xad, 0x92, 0xe6, 0xac,
		0x51, 0x8a, 0x86, 0x6f, 0xe4, 0xc1, 0x08, 0x65, 0x04, 0x23, 0x48, 0x75, 0x92, 0x11, 0x8c, 0x90,
		0x4f, 0x1d, 0x88, 0x60, 0x84, 0xd5, 0x41, 0x0d, 0xcc, 0x60, 0xc6, 0x60, 0x27, 0x0b, 0xf4, 0xa4,
		0x83, 0x9f, 0x74, 0x10, 0x94, 0x0d, 0x86, 0xb4, 0xae, 0x11, 0x98, 0xc1, 0x77, 0x63, 0x18, 0x98,
		0xc1, 0xf7, 0xd0, 0x3d, 0x60, 0x06, 0x73, 0xc1, 0xf2, 0x80, 0x19, 0x84, 0xcc, 0x28, 0xc3, 0xdd,
		0x19, 0x60, 0x06, 0x11, 0x8c, 0x00, 0x97, 0x03, 0x2e, 0x07, 0x5c, 0x0e, 0xb8, 0x1c, 0x70, 0x39,
		0xe0, 0x72, 0xc0, 0xe5, 0x80, 0xcb, 0x01, 0x97, 0x03, 0x32, 0x03, 0x97, 0x43, 0x3f, 0x97, 0x23,
		0xbe, 0x73, 0xb7, 0x38, 0xa5, 0xb2, 0x9e, 0xad, 0x45, 0x33, 0x1a, 0x0b, 0xce, 0x06, 0x9c, 0x0d,
		0x38, 0x1b, 0x70, 0x36, 0xb4, 0x73, 0x36, 0x68, 0x0a, 0x58, 0x2e, 0x03, 0x32, 0x91, 0x05, 0x2d,
		0xe7, 0xc6, 0x20, 0x29, 0x70, 0x39, 0xbf, 0x35, 0x94, 0x05, 0x2f, 0xe7, 0x46, 0x8b, 0x0b, 0x60,
		0x9e, 0x36, 0xce, 0xeb, 0xb5, 0xab, 0xf6, 0xc7, 0xda, 0xa7, 0xdf, 0x2f, 0x4e, 0x4e, 0x4c, 0x09,
		0x96, 0x6c, 0x5c, 0x0c, 0xb3, 0xfe, 0xc7, 0xe5, 0xc5, 0x79, 0xfd, 0xbc, 0xd9, 0xa8, 0x9d, 0x26,
		0x63, 0x7f, 0xd0, 0xd8, 0x46, 0x27, 0xac, 0x96, 0x39, 0x2f, 0x8b, 0x0b, 0xd6, 0x4e, 0x78, 0xf0,
		0xd5, 0xc2, 0x91, 0xdf, 0x08, 0xcb, 0x91, 0x51, 0xd4, 0xd4, 0x8a, 0x7d, 0x41, 0x48, 0xad, 0x08,
		0x35, 0xbb, 0x09, 0x21, 0xb5, 0x14, 0x01, 0x93, 0x86, 0x02, 0x11, 0xb5, 0x02, 0xaa, 0x7e, 0xd2,
		0x49, 0xab, 0x5a, 0x25, 0xc7, 0x88, 0xe4, 0x5c, 0x09, 0xf9, 0x36, 0x85, 0x86, 0x2e, 0x67, 0x29,
		0xd1, 0x66, 0x8e, 0x3a, 0x6d, 0xf4, 0xec, 0x27, 0xab, 0xc7, 0x78, 0xe8, 0x76, 0xc4, 0x97, 0xbb,
		0x9c, 0x7a, 0x36, 0x4a, 0x5d, 0x2a, 0xc9, 0x0c, 0xa0, 0xd4, 0x65, 0x56, 0x9e, 0x3d, 0x4a, 0x5d,
		0xa6, 0x3a, 0x0c, 0x28, 0x75, 0x89, 0xec, 0x12, 0x85, 0x08, 0x48, 0x64, 0x97, 0x48, 0x75, 0x07,
		0x09, 0xb3, 0x4b, 0x3a, 0xde, 0xc0, 0x61, 0x32, 0xf2, 0x4a, 0x46, 0x03, 0xe1, 0xc6, 0x45, 0x36,
		0xb0, 0x49, 0x05, 0x38, 0x59, 0x40, 0x27, 0x1d, 0xf0, 0xa4, 0x03, 0x9f, 0x6c, 0x00, 0x24, 0xe6,
		0xef, 0xb4, 0xbf, 0x71, 0x71, 0x1d, 0xe6, 0x73, 0x97, 0x3f, 0x87, 0xac, 0x2b, 0xe3, 0xc6, 0x85,
		0x30, 0x2c, 0xc4, 0x6c, 0x8c, 0x5f, 0xe5, 0xa3, 0x1d, 0x49, 0x38, 0xa1, 0x93, 0x05, 0x3c, 0xab,
		0xfd, 0xd1, 0x3e, 0xab, 0x37, 0xaf, 0x1a, 0x9f, 0xda, 0x8d, 0xf3, 0x4f, 0xa7, 0x37, 0xc7, 0x75,
		0xea, 0xa3, 0x1a, 0xc7, 0xda, 0x44, 0xe4, 0xd1, 0x6c, 0x86, 0x94, 0x88, 0xb6, 0x9f, 0xac, 0x65,
		0xfb, 0xba, 0x79, 0xf3, 0xd1, 0xcc, 0x43, 0x3c, 0x56, 0xf6, 0x4b, 0xd9, 0xfc, 0xf3, 0xb2, 0x5e,
		0x6e, 0xd7, 0xff, 0x68, 0xd6, 0xaf, 0xce, 0x6b, 0xa7, 0xa6, 0xe6, 0x01, 0x4b, 0x2d, 0xa8, 0x8a,
		0x78, 0xc3, 0x4f, 0xdd, 0x88, 0xd7, 0x38, 0x0f, 0x69, 0xd5, 0xc5, 0x99, 0xeb, 0xd7, 0x3d, 0x36,
		0xd4, 0xd7, 0xc4, 0x31, 0x76, 0xe6, 0x99, 0xfd, 0x34, 0x35, 0x52, 0xe9, 0xa0, 0x52, 0xd9, 0xdb,
		0xaf, 0x54, 0x8a, 0xfb, 0xbb, 0xfb, 0xc5, 0xc3, 0x6a, 0xb5, 0xb4, 0x47, 0xaa, 0x42, 0x2e, 0x42,
		0x87, 0x85, 0xcc, 0xf9, 0xf8, 0x6c, 0x1e, 0x19, 0xfe, 0xc0, 0xf3, 0x64, 0x0c, 0x75, 0x13, 0xb1,
		0x90, 0x34, 0x88, 0x50, 0x8f, 0x50, 0xb9, 0x88, 0x71, 0x7a, 0x77, 0x6d, 0x38, 0x08, 0x5c, 0x35,
		0xb8, 0x6a, 0x70, 0xd5, 0xe0, 0xaa, 0x69, 0xe7, 0xaa, 0xdd, 0x07, 0x81, 0xc7, 0x6c, 0x29, 0x81,
		0x71, 0x25, 0xad, 0xb6, 0x80, 0x3d, 0xf1, 0xd0, 0xb6, 0x06, 0x7e, 0xc4, 0xed, 0x7b, 0x8f, 0x78,
		0x33, 0x42, 0xd6, 0x65, 0x21, 0xf3, 0x3b, 0xb9, 0xc8, 0x26, 0x9a, 0x48, 0xd6, 0xd5, 0xc9, 0xa7,
		0xdd, 0xd2, 0xee, 0xbe, 0x61, 0x19, 0x17, 0xd7, 0x97, 0x27, 0xc6, 0x35, 0x1f, 0xdc, 0x1b, 0x57,
		0xc1, 0x80, 0xb3, 0xd0, 0xa8, 0x39, 0x5f, 0x59, 0xc8, 0xdd, 0x28, 0xb6, 0xc8, 0x64, 0x04, 0xfb,
		0x49, 0x82, 0xed, 0x45, 0xf0, 0xfd, 0xba, 0xb7, 0x92, 0x72, 0x48, 0x64, 0x23, 0xf9, 0x42, 0x44,
		0x7f, 0xf7, 0xe6, 0x23, 0xc3, 0x45, 0xaa, 0x2b, 0xaa, 0x4f, 0x86, 0x4b, 0x30, 0xe0, 0x72, 0xd2,
		0x5b, 0x86, 0x03, 0xc1, 0x7c, 0x87, 0xf9, 0x0e, 0xf3, 0x1d, 0xe6, 0xbb, 0x76, 0xe6, 0xfb, 0xc0,
		0xf5, 0xf9, 0x5e, 0x45, 0x82, 0xf5, 0x7e, 0x80, 0x44, 0xfa, 0x9f, 0xbf, 0x08, 0x12, 0xe9, 0x49,
		0x64, 0x1d, 0x89, 0xf4, 0x82, 0x44, 0x45, 0x2e, 0xf1, 0xbd, 0xa9, 0xd2, 0x03, 0x87, 0x43, 0x3f,
		0x87, 0x23, 0x74, 0x1f, 0x1e, 0x58, 0x28, 0xc1, 0xe1, 0x18, 0x0f, 0x04, 0x87, 0x03, 0x0e, 0x07,
		0x1c, 0x0e, 0x38, 0x1c, 0xda, 0x39, 0x1c, 0x08, 0xed, 0x4a, 0xb9, 0x80, 0x53, 0x31, 0x34, 0xcd,
		0xab, 0xc6, 0x6f, 0xbf, 0xd5, 0xaf, 0x10, 0xda, 0x25, 0x60, 0x2d, 0x2f, 0xce, 0xdb, 0xd7, 0x7f,
		0x5e, 0x37, 0xeb, 0x67, 0xed, 0x8f, 0x17, 0x17, 0x4d, 0xc4, 0x21, 0xe5, 0x03, 0xd7, 0x10, 0x87,
		0x24, 0x70, 0x70, 0xc4, 0x21, 0x65, 0xf0, 0x44, 0x14, 0x3b, 0x78, 0x4f, 0x32, 0xf8, 0x6b, 0x32,
		0x70, 0x9e, 0x7a, 0x87, 0x9d, 0xd9, 0x4f, 0x67, 0xf1, 0x4b, 0xa1, 0x6f, 0x98, 0x28, 0x8d, 0x8f,
		0xbe, 0x61, 0xc8, 0xec, 0x54, 0xc7, 0x1b, 0x46, 0x66, 0xa7, 0x54, 0xdd, 0x87, 0xcc, 0x4e, 0xd0,
		0x7f, 0xa0, 0xff, 0x40, 0xff, 0x81, 0xfe, 0x03, 0xfd, 0x97, 0x03, 0xfa, 0x0f, 0x99, 0x9d, 0xc2,
		0xd7, 0x12, 0x99, 0x9d, 0xe2, 0x96, 0x12, 0x99, 0x9d, 0x79, 0x54, 0x15, 0x60, 0x54, 0x05, 0x0e,
		0x0e, 0x46, 0x35, 0x2b, 0x59, 0x46, 0x66, 0x27, 0x5c, 0x35, 0xb8, 0x6a, 0x70, 0xd5, 0xe0, 0xaa,
		0x2d, 0x3d, 0x35, 0xc8, 0xec, 0x5c, 0x32, 0x6b, 0x64, 0x76, 0xa6, 0x94, 0x2c, 0x64, 0x76, 0x22,
		0xb3, 0x13, 0x99, 0x9d, 0x8a, 0xb9, 0xa2, 0xc8, 0xec, 0x34, 0x90, 0xd9, 0x09, 0xf3, 0x1d, 0xe6,
		0x3b, 0xcc, 0x77, 0x64, 0x76, 0xae, 0x82, 0x61, 0xc8, 0xec, 0x7c, 0xc7, 0x8b, 0x20, 0xb3, 0x93,
		0x44, 0xd6, 0x91, 0xd9, 0x29, 0x48, 0x54, 0x90, 0xd9, 0x89, 0xcc, 0x4e, 0x38, 0x1c, 0x8b, 0x1c,
		0x0e, 0x64, 0x76, 0xc2, 0xe1, 0x80, 0xc3, 0x01, 0x87, 0x03, 0x0e, 0xc7, 0x4f, 0x4e, 0x0d, 0x42,
		0xbb, 0x52, 0x2e, 0x20, 0x32, 0x3b, 0x49, 0xd6, 0x12, 0x99, 0x9d, 0x79, 0xc4, 0x35, 0xc4, 0x21,
		0x09, 0x1c, 0x1c, 0x71, 0x48, 0x19, 0x3c, 0x11, 0x99, 0x9d, 0x2b, 0x66, 0x76, 0xe6, 0xa7, 0x85,
		0xf5, 0x6b, 0x62, 0x27, 0xda, 0x57, 0x67, 0x2d, 0xdf, 0x99, 0xcb, 0xb5, 0xd6, 0xad, 0xab, 0x13,
		0x49, 0xce, 0x53, 0xdb, 0xea, 0xa8, 0xdf, 0x15, 0xdf, 0xaf, 0x7a, 0xf8, 0x50, 0x34, 0xaa, 0x56,
		0x92, 0x9b, 0x41, 0xa3, 0xea, 0xac, 0xb8, 0x15, 0x34, 0xaa, 0x4e, 0x75, 0x18, 0xd0, 0xa8, 0x1a,
		0xe5, 0x0c, 0x14, 0x80, 0x21, 0x69, 0x70, 0x24, 0x0b, 0x96, 0xf4, 0x70, 0xf8, 0x08, 0xcb, 0x19,
		0xb8, 0xdc, 0xb5, 0x3d, 0xcb, 0x61, 0x9e, 0xfd, 0x2c, 0xa3, 0xa8, 0xc1, 0xf4, 0x70, 0xb8, 0xff,
		0x92, 0x0d, 0x72, 0x52, 0xc1, 0x4e, 0x16, 0xe8, 0x49, 0x07, 0x3f, 0xe9, 0x20, 0x28, 0x1b, 0x0c,
		0xe9, 0x78, 0x35, 0x23, 0x37, 0x01, 0x77, 0xbb, 0x65, 0x09, 0x57, 0x5f, 0xfb, 0x08, 0xb8, 0xfb,
		0xf9, 0x8b, 0x20, 0xe0, 0x8e, 0x44, 0xd6, 0x11, 0x70, 0x27, 0x48, 0x54, 0x2a, 0xe5, 0xc3, 0xca,
		0xe1, 0xde, 0x7e, 0xf9, 0x10, 0x61, 0x76, 0x7a, 0x28, 0x28, 0xfa, 0xa7, 0x6f, 0x72, 0x98, 0x5d,
		0xcf, 0x7e, 0x72, 0x7b, 0x83, 0x9e, 0x2c, 0x97, 0x63, 0x76, 0x38, 0xb8, 0x1c, 0x70, 0x39, 0xe0,
		0x72, 0xc0, 0xe5, 0x80, 0xcb, 0x01, 0x97, 0x03, 0x2e, 0x07, 0x5c, 0x0e, 0xb8, 0x1c, 0x90, 0x19,
		0xb8, 0x1c, 0x4a, 0xb9, 0x1c, 0x88, 0xbc, 0x93, 0x1e, 0xa1, 0x14, 0xf5, 0xbb, 0x79, 0x6a, 0xa6,
		0x70, 0xdd, 0xef, 0xa2, 0x8d, 0x82, 0x28, 0xc3, 0x13, 0x6d, 0x14, 0x10, 0x77, 0xa0, 0x8e, 0x1f,
		0x8c, 0xb8, 0x03, 0xa9, 0xea, 0x0e, 0x71, 0x07, 0xab, 0x83, 0x1a, 0x48, 0xc0, 0x8c, 0xc1, 0x4e,
		0x16, 0xe8, 0x49, 0x07, 0x3f, 0xe9, 0x20, 0x28, 0x1b, 0x0c, 0x69, 0xbd, 0x20, 0x90, 0x80, 0xef,
		0xc6, 0x30, 0x90, 0x80, 0xef, 0x61, 0x76, 0x40, 0x02, 0xe6, 0x82, 0xd0, 0x01, 0x09, 0x08, 0x99,
		0x51, 0x86, 0xa6, 0x33, 0x40, 0x02, 0x22, 0xee, 0x00, 0x2e, 0x07, 0x5c, 0x0e, 0xb8, 0x1c, 0x70,
		0x39, 0xe0, 0x72, 0xc0, 0xe5, 0x80, 0xcb, 0x01, 0x97, 0x03, 0x2e, 0x07, 0x64, 0x06, 0x2e, 0x87,
		0x7e, 0x2e, 0x47, 0x7c, 0xbd, 0x6e, 0x71, 0x4a, 0x65, 0x3d, 0xd3, 0xc5, 0x60, 0x3c, 0x16, 0x9c,
		0x0d, 0x38, 0x1b, 0x70, 0x36, 0xe0, 0x6c, 0x68, 0xe7, 0x6c, 0x30, 0x7f, 0xd0, 0x63, 0xe1, 0x28,
		0xbc, 0x4a, 0x42, 0x5d, 0xd1, 0x0a, 0xe1, 0x18, 0x75, 0x7f, 0xd0, 0xa3, 0x3f, 0x99, 0xcd, 0xe0,
		0x9a, 0x87, 0xae, 0xff, 0x20, 0xc5, 0xd2, 0x33, 0x8b, 0xc3, 0x3d, 0x3a, 0x6d, 0x9c, 0xd7, 0x6b,
		0x57, 0xed, 0x8f, 0xb5, 0x4f, 0xbf, 0x5f, 0x9c, 0x9c, 0xc8, 0xe8, 0xdb, 0x55, 0x1a, 0x0e, 0x5b,
		0xff, 0xe3, 0xf2, 0xe2, 0xbc, 0x7e, 0xde, 0x6c, 0xd4, 0x4e, 0x93, 0xb1, 0x3f, 0x68, 0x6c, 0xa3,
		0x9b, 0xcd, 0xa0, 0xe1, 0x73, 0x39, 0xfb, 0xb6, 0x68, 0xed, 0x84, 0x07, 0x5f, 0x2d, 0x1c, 0xf9,
		0x8d, 0xb0, 0x1c, 0x19, 0x45, 0x4d, 0xad, 0xd8, 0x17, 0x44, 0xcf, 0x8a, 0x50, 0xb3, 0xb9, 0x8d,
		0x9e, 0xcd, 0x4f, 0xc1, 0xca, 0xeb, 0x7e, 0x17, 0xa5, 0x2a, 0x33, 0x17, 0xe9, 0xec, 0x44, 0x59,
		0xeb, 0x1a, 0x95, 0xd7, 0xfd, 0xae, 0x32, 0xd5, 0x29, 0x3f, 0x64, 0x28, 0x9e, 0xa2, 0xc5, 0x32,
		0x1b, 0x71, 0x34, 0x45, 0x14, 0xf8, 0x94, 0x2c, 0x82, 0xe9, 0xc4, 0x6f, 0x7d, 0xa1, 0x59, 0xef,
		0x37, 0xd7, 0x14, 0x33, 0x51, 0xe2, 0x25, 0x59, 0xac, 0x52, 0xc8, 0x93, 0x3c, 0x39, 0x5a, 0x4f,
		0x80, 0x56, 0xdf, 0xfe, 0xd5, 0x7e, 0x63, 0x45, 0x41, 0x11, 0xd1, 0x38, 0xdb, 0xfc, 0xeb, 0x91,
		0xf9, 0x6b, 0x5f, 0xda, 0xa5, 0x10, 0xca, 0x09, 0x1b, 0xb1, 0x33, 0xce, 0x89, 0x2a, 0x8c, 0xda,
		0x9d, 0x74, 0x5d, 0x16, 0x1a, 0xff, 0x30, 0x7e, 0x09, 0x3a, 0x56, 0x3f, 0xf0, 0x62, 0xa6, 0x35,
		0x3a, 0xba, 0xb8, 0xbe, 0x3c, 0xf9, 0x25, 0x8d, 0x5c, 0x09, 0xe2, 0xf0, 0xa6, 0x39, 0xba, 0x78,
		0xdd, 0x52, 0xea, 0x0f, 0xd1, 0x0c, 0xdc, 0x0c, 0xc3, 0xf6, 0xfe, 0x85, 0xfd, 0x90, 0x81, 0xfe,
		0x34, 0x8f, 0x59, 0xd4, 0x09, 0xdd, 0xbe, 0x10, 0xe5, 0x99, 0x08, 0x53, 0xc3, 0xef, 0x78, 0x03,
		0x87, 0xc5, 0x9d, 0xb0, 0xbf, 0x96, 0x8d, 0xbe, 0x1d, 0xda, 0x3d, 0xc6, 0x59, 0x18, 0x19, 0x81,
		0xef, 0x3d, 0x1b, 0xc3, 0x3d, 0x33, 0xf8, 0x23, 0x33, 0x26, 0xc8, 0x75, 0xe7, 0xbb, 0x91, 0x11,
		0x74, 0x8d, 0xe1, 0x6a, 0x8c, 0x7f, 0x29, 0xed, 0x9e, 0x0a, 0xa4, 0x8b, 0xa7, 0xc5, 0xcd, 0x99,
		0x5a, 0x2e, 0x01, 0x0a, 0x9b, 0x82, 0xfb, 0x9d, 0x91, 0x3e, 0x11, 0x3b, 0xa1, 0x97, 0x92, 0x5f,
		0xf9, 0xb7, 0x5a, 0xa4, 0xba, 0x21, 0xa5, 0xf1, 0x20, 0xcb, 0x68, 0x58, 0x43, 0x98, 0x25, 0x58,
		0x09, 0xab, 0x89, 0xde, 0xfb, 0xb7, 0x7e, 0x85, 0x4d, 0x34, 0xfb, 0x1d, 0xd6, 0x5f, 0x79, 0xeb,
		0x12, 0x24, 0x8c, 0x7f, 0x7b, 0x45, 0x91, 0x59, 0x2f, 0x5f, 0x74, 0xed, 0x2b, 0xc5, 0x34, 0x57,
		0x85, 0xd3, 0x57, 0x80, 0x6b, 0xbc, 0xaa, 0x08, 0xa4, 0x16, 0x76, 0x61, 0x27, 0x0c, 0x8c, 0xdf,
		0x5e, 0xb0, 0xc5, 0x0b, 0xa3, 0x98, 0xc9, 0xba, 0x6e, 0xae, 0xa3, 0x39, 0x44, 0x22, 0xab, 0x13,
		0xf4, 0xfa, 0x83, 0x11, 0xaa, 0x59, 0x11, 0x0b, 0xbf, 0x0e, 0x5d, 0xc1, 0xb5, 0xf7, 0x2f, 0x39,
		0x2a, 0xcb, 0x9e, 0xbc, 0xe6, 0x2e, 0xa4, 0x4b, 0xbb, 0x4e, 0x7d, 0x43, 0x2f, 0xe2, 0x06, 0x5e,
		0xc0, 0xf1, 0xa2, 0xb4, 0xbd, 0x85, 0xdc, 0x8f, 0xd3, 0x5a, 0xdf, 0x6b, 0x1f, 0xbf, 0x6c, 0xa8,
		0x86, 0xb4, 0x29, 0xc8, 0xcb, 0x0e, 0x91, 0x38, 0xd3, 0x7e, 0xd9, 0x00, 0x29, 0xf7, 0x4c, 0x4c,
		0x8d, 0x04, 0x61, 0x61, 0x35, 0x22, 0xc3, 0x67, 0x04, 0x1e, 0x62, 0x0a, 0xef, 0xc6, 0xa0, 0x0c,
		0x7a, 0x21, 0x0b, 0x6e, 0x11, 0x7b, 0xc8, 0xd5, 0xa0, 0xb1, 0x45, 0xd5, 0x1f, 0x30, 0xed, 0x01,
		0x7f, 0x64, 0x3e, 0x77, 0x3b, 0x62, 0xaf, 0x6a, 0x12, 0x41, 0x7e, 0xf3, 0x7c, 0x74, 0x7f, 0x52,
		0x08, 0x1a, 0xa8, 0x20, 0x82, 0x1c, 0x2a, 0xc8, 0x21, 0x83, 0x16, 0x3a, 0xc4, 0x40, 0x88, 0x20,
		0x28, 0x11, 0x0e, 0x29, 0xc9, 0x03, 0xd1, 0xf9, 0x89, 0x10, 0x62, 0x28, 0xa1, 0x46, 0x02, 0xe4,
		0x50, 0x43, 0x8f, 0x34, 0x08, 0x92, 0x06, 0x45, 0x72, 0x20, 0x49, 0x2c, 0x34, 0x09, 0x86, 0x28,
		0x32, 0xa8, 0x5a, 0x62, 0x0d, 0x59, 0x5f, 0x98, 0x84, 0x7c, 0xe8, 0x05, 0x63, 0x22, 0x4f, 0x41,
		0x36, 0xd4, 0x49, 0x84, 0x3c, 0x59, 0xd0, 0x27, 0x1d, 0x02, 0xa5, 0x43, 0xa1, 0x5c, 0x48, 0xa4,
		0x81, 0x46, 0x22, 0x88, 0x4c, 0x96, 0x46, 0x5e, 0x8e, 0x42, 0x18, 0x0c, 0xb8, 0xeb, 0x3f, 0x58,
		0x7d, 0x3b, 0x8a, 0x62, 0x79, 0x93, 0x90, 0xa8, 0x70, 0xa0, 0xd5, 0x5e, 0x08, 0x88, 0xfd, 0x78,
		0xf7, 0x58, 0x21, 0xeb, 0xb2, 0x90, 0xf9, 0x9d, 0x5c, 0x64, 0x77, 0x4f, 0x44, 0xec, 0xea, 0xe4,
		0x53, 0x69, 0xb7, 0x5c, 0x3a, 0x32, 0x9a, 0x8f, 0xcc, 0x38, 0x3b, 0xae, 0x1a, 0x67, 0x2c, 0x8a,
		0xec, 0x07, 0x66, 0x1d, 0xbb, 0x0f, 0x2c, 0xe2, 0x46, 0xcd, 0x7b, 0x08, 0x42, 0x97, 0x3f, 0xf6,
		0x76, 0xee, 0xfc, 0xab, 0x93, 0x4f, 0xd5, 0x4a, 0xa5, 0x78, 0x64, 0x5c, 0x7e, 0xaa, 0x5f, 0x1a,
		0xd7, 0x7d, 0xd6, 0x71, 0xbb, 0x62, 0x59, 0x08, 0x15, 0xc0, 0x7d, 0x11, 0xc8, 0xbf, 0x6e, 0xbd,
		0xa4, 0x94, 0x5f, 0xd9, 0x78, 0xbf, 0x10, 0xf7, 0x45, 0xc9, 0x06, 0xf2, 0x95, 0x97, 0x7c, 0x6d,
		0x72, 0xbe, 0x32, 0xf3, 0x49, 0x11, 0x7b, 0x2a, 0xcf, 0x2f, 0x1e, 0x87, 0x48, 0xff, 0x1c, 0xb3,
		0xae, 0x3d, 0xf0, 0x38, 0xa9, 0x46, 0x30, 0xe3, 0xa4, 0x7f, 0x9a, 0x53, 0xd4, 0x82, 0x5f, 0x04,
		0xbf, 0x08, 0x7e, 0x11, 0xfc, 0x22, 0xad, 0xfc, 0xa2, 0xfb, 0x20, 0xf0, 0x98, 0x2d, 0x25, 0x6f,
		0xbb, 0xb4, 0xc1, 0x2a, 0xfa, 0x0b, 0x7b, 0xee, 0x3c, 0xda, 0x84, 0x65, 0xa0, 0x92, 0x0d, 0x4d,
		0x46, 0x82, 0x3a, 0x82, 0x3a, 0x82, 0x3a, 0x82, 0x3a, 0xd2, 0x4a, 0x1d, 0x4d, 0xd0, 0xcb, 0x0a,
		0x59, 0x57, 0x86, 0x4e, 0xa2, 0x2c, 0x5f, 0x78, 0x99, 0x84, 0xba, 0x77, 0xac, 0xc9, 0x7b, 0x1d,
		0x4d, 0x3e, 0x44, 0x0b, 0x7f, 0x3a, 0xf3, 0xc3, 0x71, 0xb6, 0xcd, 0xf4, 0x8f, 0xe2, 0x10, 0x75,
		0xd4, 0x34, 0x10, 0x71, 0xda, 0x75, 0xaf, 0x69, 0x30, 0xc4, 0xa7, 0xc2, 0xb2, 0x48, 0xe3, 0x65,
		0x7f, 0x51, 0x98, 0xbd, 0xce, 0xd3, 0xb4, 0x7b, 0xd8, 0x65, 0x87, 0xf5, 0xdb, 0xc3, 0xd3, 0xf5,
		0xe9, 0xf5, 0x05, 0xaf, 0x47, 0x2f, 0xbe, 0xf8, 0xc7, 0xed, 0xda, 0xcc, 0x6b, 0xa3, 0xcb, 0x98,
		0x28, 0xb8, 0x46, 0x97, 0x31, 0xc4, 0xb8, 0xa8, 0x62, 0x39, 0x22, 0xc6, 0x45, 0xa2, 0xfa, 0x44,
		0x8c, 0x0b, 0x9c, 0x67, 0x38, 0xcf, 0x70, 0x9e, 0xe1, 0x3c, 0x2b, 0xe4, 0x3c, 0x23, 0xc6, 0xe5,
		0x67, 0xb3, 0x46, 0x8c, 0x4b, 0x4a, 0x11, 0x43, 0x8c, 0xcb, 0x7b, 0x40, 0x1e, 0x31, 0x2e, 0x88,
		0x71, 0x21, 0xf8, 0x42, 0x8c, 0x0b, 0x62, 0x5c, 0xde, 0x31, 0x08, 0x62, 0x5c, 0xe0, 0x17, 0xc1,
		0x2f, 0x82, 0x5f, 0x04, 0xbf, 0x08, 0x31, 0x2e, 0x32, 0x55, 0x34, 0x62, 0x5c, 0xa0, 0x8e, 0xa0,
		0x8e, 0xa0, 0x8e, 0xa0, 0x8e, 0xde, 0x87, 0x5e, 0x88, 0x71, 0x41, 0x8c, 0x0b, 0xa5, 0x68, 0x23,
		0xc6, 0x25, 0x8e, 0x71, 0xd1, 0xb2, 0xc7, 0x47, 0xea, 0x10, 0x17, 0xf4, 0x02, 0xc9, 0xfa, 0x98,
		0xe8, 0x71, 0x3c, 0x74, 0xe9, 0x1b, 0x92, 0xf6, 0x40, 0x28, 0xd3, 0x5f, 0x44, 0x40, 0xcd, 0x3c,
		0xc1, 0xa5, 0x8b, 0x68, 0x4a, 0x16, 0xa1, 0x0a, 0x1a, 0xaa, 0xa0, 0x19, 0xa8, 0x82, 0x26, 0x56,
		0x55, 0x09, 0xaf, 0x82, 0xe6, 0x3a, 0x74, 0xc1, 0xa1, 0xae, 0x43, 0x14, 0x19, 0x5a, 0x44, 0xf5,
		0x33, 0x44, 0x86, 0xaa, 0xc8, 0xb3, 0x20, 0x32, 0x94, 0x90, 0x47, 0x99, 0x0a, 0x3a, 0x8f, 0x7b,
		0xe7, 0x12, 0x08, 0x3c, 0x4d, 0x50, 0x93, 0x9a, 0x99, 0x01, 0xfd, 0x0e, 0xb3, 0x5c, 0xdf, 0xe5,
		0xae, 0xcd, 0x99, 0x63, 0x75, 0xec, 0xbe, 0x7d, 0xef, 0x7a, 0x2e, 0x7f, 0xa6, 0xd3, 0x07, 0x4b,
		0x47, 0x14, 0x1d, 0x9b, 0x4c, 0x78, 0xc9, 0x4e, 0x71, 0xb9, 0xde, 0x82, 0x96, 0x84, 0x96, 0x84,
		0x96, 0x84, 0x96, 0x14, 0x2a, 0xf1, 0x74, 0x97, 0xde, 0x44, 0x97, 0xdd, 0xea, 0xaa, 0xc9, 0x11,
		0x71, 0x66, 0xd9, 0x8e, 0x13, 0xb2, 0x28, 0xa2, 0x55, 0x90, 0x6f, 0xc6, 0x82, 0x6a, 0x80, 0x6a,
		0x80, 0x6a, 0x80, 0x6a, 0x10, 0x4b, 0xcc, 0xf4, 0x89, 0xf0, 0x65, 0x46, 0x3b, 0x1c, 0x12, 0x3c,
		0x7b, 0xbc, 0x36, 0x34, 0xc1, 0xb3, 0x12, 0xae, 0xfe, 0xdd, 0xfe, 0xd7, 0x0a, 0xe1, 0xda, 0xcf,
		0x3b, 0xb2, 0xb4, 0x57, 0xff, 0x9c, 0x85, 0x3e, 0x79, 0x76, 0x8b, 0xb9, 0x75, 0x5b, 0xb4, 0x0e,
		0x5b, 0xdf, 0x6f, 0x4b, 0xd6, 0x61, 0x6b, 0xf4, 0xb1, 0x14, 0xff, 0xef, 0x5b, 0xf9, 0xe5, 0x7b,
		0xf9, 0xb6, 0x68, 0x55, 0xc6, 0x3f, 0x2d, 0x57, 0x6f, 0x8b, 0x56, 0xb5, 0xb5, 0xbd, 0x75, 0x77,
		0xb7, 0xb3, 0xea, 0xef, 0x6c, 0x7f, 0xdb, 0x7d, 0xa1, 0x8b, 0x84, 0x69, 0x51, 0x6e, 0xc3, 0xc5,
		0x75, 0xe3, 0x0f, 0x69, 0x7b, 0xf1, 0x3f, 0x5b, 0xb2, 0x76, 0x63, 0xfb, 0xbf, 0x4c, 0xdd, 0x12,
		0x29, 0x7e, 0xd5, 0x18, 0x96, 0xf6, 0x00, 0x4b, 0xab, 0xc2, 0x52, 0x2c, 0xd5, 0xb6, 0xd5, 0xad,
		0x59, 0x27, 0xad, 0x6f, 0xa5, 0x5f, 0x2b, 0x2f, 0x47, 0xdb, 0xdf, 0xf6, 0x5f, 0xde, 0xfe, 0xf0,
		0xfb, 0xa2, 0x7f, 0x56, 0xfa, 0x75, 0xff, 0xe5, 0x68, 0xc9, 0xdf, 0xec, 0xbd, 0x1c, 0xbd, 0xf3,
		0x19, 0xd5, 0x97, 0xad, 0xb9, 0x7f, 0x3a, 0xfc, 0x79, 0x79, 0xd9, 0x2f, 0x54, 0x96, 0xfc, 0xc2,
		0xee, 0xb2, 0x5f, 0xd8, 0x5d, 0xf2, 0x0b, 0x4b, 0xa7, 0x54, 0x5e, 0xf2, 0x0b, 0xd5, 0x97, 0xef,
		0x73, 0xff, 0x7e, 0x6b, 0xf1, 0x3f, 0xdd, 0x7b, 0xd9, 0xfe, 0xbe, 0xec, 0xef, 0xf6, 0x5f, 0xbe,
		0x1f, 0x6d, 0x6f, 0x03, 0xa8, 0xdf, 0x0d, 0xd4, 0x10, 0x4f, 0xf9, 0xe2, 0xa9, 0x9f, 0xe2, 0xfa,
		0xa0, 0xf6, 0x3c, 0xd5, 0x65, 0x86, 0x38, 0x85, 0xaf, 0x36, 0xc3, 0x07, 0xc5, 0x23, 0x80, 0x05,
		0x02, 0x0b, 0x04, 0x16, 0x08, 0x2c, 0x90, 0x70, 0x74, 0xe9, 0x05, 0x0e, 0x09, 0xc4, 0xcc, 0x58,
		0xfb, 0x15, 0x82, 0x67, 0xd7, 0xfd, 0x41, 0x8f, 0xee, 0x44, 0x35, 0x83, 0xeb, 0x51, 0x8c, 0x01,
		0x69, 0x3e, 0x48, 0x71, 0xb8, 0x0b, 0xd7, 0xcd, 0x5a, 0xb3, 0x7e, 0x5a, 0xbf, 0xbe, 0xa6, 0xf4,
		0xbb, 0x4a, 0xc9, 0x48, 0x27, 0x37, 0xa7, 0xed, 0xcb, 0xda, 0xf5, 0x75, 0xe3, 0x73, 0x9d, 0x72,
		0xc0, 0xf2, 0xcc, 0x80, 0xb5, 0x4f, 0xcd, 0xe1, 0x78, 0x7a, 0xa5, 0x03, 0x05, 0x8d, 0x18, 0x7f,
		0x08, 0xf7, 0xff, 0xed, 0xfa, 0x08, 0xaf, 0x4c, 0xb8, 0x78, 0xb4, 0xc9, 0xf6, 0x0b, 0xaf, 0xb0,
		0x38, 0x3f, 0x5c, 0x2c, 0xd7, 0x47, 0x46, 0x71, 0x33, 0xb3, 0x79, 0xd4, 0xb4, 0x5a, 0x83, 0x90,
		0x13, 0x5a, 0xac, 0xc3, 0xa7, 0xeb, 0x14, 0xce, 0x53, 0x29, 0x1d, 0x1c, 0x22, 0x9a, 0x07, 0xc6,
		0x3a, 0x8c, 0x75, 0x18, 0xeb, 0x4a, 0x1b, 0xeb, 0x41, 0xc8, 0x2d, 0x7f, 0xd0, 0xbb, 0x67, 0x21,
		0xa1, 0xa9, 0xbe, 0x47, 0xf0, 0xe8, 0x2b, 0xdb, 0x7f, 0xd0, 0xf2, 0xce, 0xf6, 0x8c, 0xb0, 0x92,
		0x45, 0x32, 0xc8, 0x67, 0xdb, 0x1b, 0x30, 0xba, 0x4a, 0x10, 0xc9, 0x38, 0x27, 0xa1, 0xdd, 0xe1,
		0x6e, 0xe0, 0x1f, 0xbb, 0x0f, 0x2e, 0x8f, 0x24, 0x0c, 0x78, 0xce, 0x1e, 0x6c, 0xee, 0x7e, 0x1d,
		0xbe, 0x5b, 0x1c, 0x32, 0x4b, 0x57, 0x65, 0x80, 0xd0, 0x88, 0x3d, 0xb3, 0x9f, 0xe4, 0x89, 0xc0,
		0x5e, 0xb5, 0xba, 0x5b, 0x85, 0x18, 0x28, 0xe3, 0x0d, 0x18, 0x60, 0xc6, 0xd7, 0xf5, 0x31, 0xa6,
		0x4b, 0x9f, 0x52, 0x79, 0x1a, 0x54, 0x35, 0x36, 0x61, 0x70, 0xc3, 0xe0, 0x86, 0xc1, 0xbd, 0xf1,
		0x06, 0xf7, 0xc0, 0xf5, 0xf9, 0x01, 0xa1, 0xa9, 0x5d, 0x85, 0xa9, 0x0d, 0x53, 0x1b, 0xa6, 0x76,
		0x36, 0xa6, 0x76, 0xb9, 0x0a, 0x43, 0x1b, 0x86, 0xb6, 0xfe, 0x86, 0x76, 0xc8, 0x62, 0x5e, 0xc8,
		0x0b, 0x3a, 0xb6, 0x67, 0x79, 0x51, 0x9f, 0xce, 0xdc, 0x9e, 0x1b, 0x09, 0x39, 0xbb, 0x70, 0x3a,
		0xe0, 0x74, 0xc0, 0xe9, 0x80, 0xd3, 0x21, 0x50, 0xe2, 0x91, 0xb3, 0x2b, 0xe4, 0x5d, 0xa3, 0xf8,
		0x74, 0xd3, 0xe7, 0xeb, 0xbe, 0x19, 0x07, 0x2a, 0x01, 0x2a, 0x01, 0x2a, 0x01, 0x2a, 0x41, 0xa8,
		0xc4, 0x23, 0x57, 0x57, 0x36, 0x19, 0x85, 0x5c, 0xdd, 0x14, 0x03, 0x21, 0x57, 0xf7, 0x87, 0xdb,
		0x80, 0x5c, 0xdd, 0x8c, 0x79, 0x1c, 0x22, 0x45, 0x20, 0x17, 0x96, 0x90, 0xab, 0xbb, 0x32, 0x2c,
		0x21, 0x19, 0x12, 0xb9, 0xba, 0xaa, 0x03, 0x35, 0xc4, 0x13, 0xb9, 0xba, 0x92, 0xfd, 0x21, 0x63,
		0x43, 0x2e, 0x4a, 0xa2, 0xd0, 0x8a, 0x06, 0x7d, 0xda, 0xdc, 0x87, 0xa9, 0x31, 0x70, 0x39, 0x02,
		0x26, 0x0c, 0x4c, 0x18, 0x98, 0x30, 0x30, 0x61, 0x02, 0x25, 0x7e, 0x93, 0x2f, 0x47, 0xd0, 0x2f,
		0x29, 0xbb, 0x7e, 0x49, 0x42, 0xbb, 0xe2, 0x18, 0xea, 0xf5, 0x49, 0x1a, 0xab, 0xc1, 0x1c, 0xf5,
		0x47, 0x22, 0xac, 0xd9, 0x4b, 0x5f, 0xab, 0x57, 0xb0, 0xb5, 0x83, 0xbe, 0x49, 0xe8, 0x9b, 0x94,
		0x85, 0xd5, 0xa2, 0x96, 0xca, 0x12, 0x6e, 0x9d, 0x24, 0x12, 0xeb, 0x31, 0xbb, 0x2b, 0xb6, 0x8f,
		0x2b, 0x45, 0xdf, 0xd6, 0xa4, 0x4f, 0xeb, 0xce, 0xce, 0x58, 0x9f, 0x15, 0x16, 0x00, 0x58, 0x8e,
		0x54, 0xc0, 0xa8, 0xe9, 0xa7, 0x70, 0xd4, 0x17, 0xd9, 0x4b, 0x94, 0xac, 0x41, 0x5e, 0x19, 0x40,
		0x0f, 0xa0, 0xdf, 0x50, 0xa0, 0x47, 0x83, 0x3c, 0x30, 0x65, 0x60, 0xca, 0xc0, 0x94, 0x6d, 0x34,
		0x53, 0x86, 0x06, 0x79, 0x22, 0xde, 0x15, 0x0d, 0xf2, 0xd6, 0x7a, 0x38, 0xee, 0x93, 0xa0, 0x25,
		0xa1, 0x25, 0xa1, 0x25, 0x95, 0xd7, 0x92, 0x48, 0xb6, 0x11, 0xa6, 0x26, 0xd1, 0x20, 0x0f, 0xaa,
		0x01, 0xaa, 0x01, 0xaa, 0x21, 0x2f, 0xaa, 0x01, 0x49, 0x37, 0x0b, 0xbf, 0x90, 0x74, 0xb3, 0x1a,
		0x36, 0x23, 0xe9, 0x26, 0x23, 0x0f, 0x6f, 0x76, 0x1b, 0x90, 0x74, 0xb3, 0xfa, 0x7e, 0x20, 0xe9,
		0xc6, 0x40, 0xd2, 0x4d, 0x5a, 0x58, 0x42, 0x56, 0x03, 0x92, 0x6e, 0x54, 0x07, 0x6a, 0x88, 0x27,
		0x92, 0x6e, 0x24, 0xfb, 0x43, 0x06, 0x1a, 0xe4, 0x09, 0xe4, 0x83, 0xd0, 0x20, 0x0f, 0x2c, 0x10,
		0x58, 0x20, 0xb0, 0x40, 0x34, 0xe8, 0x82, 0x06, 0x79, 0x8b, 0x17, 0x1f, 0x0d, 0xf2, 0xd2, 0x0d,
		0x88, 0x06, 0x79, 0xef, 0xd1, 0x0b, 0x68, 0x90, 0xa7, 0x96, 0xd5, 0x8a, 0x06, 0x79, 0xa9, 0x75,
		0x0a, 0x1a, 0xe4, 0x21, 0x9a, 0x07, 0xc6, 0x3a, 0x8c, 0x75, 0x18, 0xeb, 0xe2, 0x81, 0x15, 0x0d,
		0xf2, 0xe6, 0xbf, 0xd0, 0xb5, 0xe3, 0x7d, 0xe3, 0xa0, 0x6b, 0xc7, 0x5a, 0x22, 0x80, 0x06, 0x79,
		0xda, 0x88, 0x01, 0x98, 0x71, 0x75, 0x7c, 0x0c, 0x34, 0xc8, 0x83, 0xc1, 0x0d, 0x83, 0x1b, 0x06,
		0xb7, 0xc6, 0x06, 0x37, 0x1a, 0xe4, 0xc1, 0xd4, 0x86, 0x8d, 0x95, 0x53, 0x53, 0x1b, 0x0d, 0xf2,
		0x60, 0x68, 0xe7, 0xc1, 0xd0, 0x46, 0x83, 0xbc, 0x77, 0x3d, 0x1c, 0x39, 0xbb, 0x70, 0x3a, 0xe0,
		0x74, 0xc0, 0xe9, 0x50, 0xde, 0xe9, 0x40, 0xce, 0xae, 0x90, 0x77, 0x45, 0x83, 0x3c, 0xa8, 0x04,
		0xa8, 0x04, 0xa8, 0x84, 0x3c, 0xa8, 0x04, 0xe4, 0xea, 0xca, 0x26, 0xa3, 0x90, 0xab, 0x9b, 0x62,
		0x20, 0xe4, 0xea, 0xfe, 0x70, 0x1b, 0x90, 0xab, 0x9b, 0x31, 0x8f, 0x43, 0xa4, 0x08, 0xe4, 0xc2,
		0x12, 0x72, 0x75, 0x57, 0x86, 0x25, 0x24, 0x43, 0x22, 0x57, 0x57, 0x75, 0xa0, 0x86, 0x78, 0x22,
		0x57, 0x57, 0xb2, 0x3f, 0x64, 0xa0, 0x41, 0x9e, 0x38, 0x36, 0x08, 0x0d, 0xf2, 0x68, 0x90, 0x19,
		0x4c, 0x18, 0x98, 0x30, 0x30, 0x61, 0xb8, 0x1c, 0x41, 0x83, 0x3c, 0x25, 0xb6, 0x7c, 0xd3, 0x1a,
		0xe4, 0x89, 0x6c, 0x8a, 0x63, 0xa8, 0xd7, 0x1f, 0xef, 0x3a, 0x7e, 0xbd, 0x1c, 0xf5, 0x46, 0xe2,
		0x6e, 0x8f, 0x85, 0x04, 0x2d, 0xf1, 0xc6, 0xcf, 0x55, 0xbc, 0x3b, 0x12, 0xda, 0xe0, 0x69, 0x65,
		0xab, 0xa0, 0x3b, 0x92, 0xca, 0xdd, 0x91, 0x3a, 0x93, 0x53, 0x45, 0xe4, 0x32, 0x0a, 0xef, 0xbd,
		0x4a, 0x00, 0x2d, 0x70, 0x97, 0xe0, 0x2e, 0xc1, 0x5d, 0x12, 0xed, 0x2e, 0x89, 0x86, 0xaa, 0xe4,
		0xc1, 0x0e, 0xb3, 0x1d, 0x2b, 0x36, 0x55, 0xe8, 0x24, 0x72, 0x72, 0xa8, 0xa6, 0xc6, 0x22, 0x92,
		0x14, 0x4a, 0xe6, 0x2b, 0x19, 0xa4, 0x54, 0x2e, 0xd2, 0xb0, 0xc0, 0x44, 0x37, 0x14, 0x44, 0x7c,
		0x18, 0x39, 0xd0, 0xcb, 0x00, 0x7c, 0x89, 0xc0, 0x2f, 0x4b, 0x01, 0x48, 0x57, 0x04, 0xd2, 0x15,
		0x82, 0x5c, 0xc5, 0x40, 0xa3, 0x20, 0x88, 0x14, 0x05, 0x3d, 0xbf, 0x36, 0x77, 0x62, 0xa8, 0x32,
		0x1f, 0xdf, 0xc2, 0x17, 0x61, 0x0a, 0x16, 0x71, 0x26, 0xe4, 0xe4, 0x8b, 0xf6, 0xbc, 0x1b, 0xb2,
		0x32, 0x23, 0x93, 0xc1, 0x24, 0x65, 0x48, 0x26, 0xe3, 0xc9, 0x4e, 0x92, 0x7b, 0x15, 0x75, 0x59,
		0xc9, 0x72, 0xc4, 0xa8, 0x30, 0x2b, 0x2a, 0x12, 0x32, 0x28, 0xe7, 0x44, 0x85, 0x3c, 0x93, 0x72,
		0x13, 0x85, 0xe5, 0x83, 0x9e, 0x4f, 0xd7, 0x25, 0xe0, 0x81, 0xe0, 0x30, 0x9a, 0x5f, 0x18, 0xeb,
		0xdb, 0xde, 0x48, 0x4a, 0x88, 0xbd, 0xae, 0xd7, 0xa1, 0x74, 0x76, 0xba, 0x76, 0xe1, 0x73, 0xc1,
		0xe7, 0x82, 0xcf, 0x05, 0x9f, 0x0b, 0x3e, 0x17, 0x7c, 0x2e, 0xf8, 0x5c, 0xf0, 0xb9, 0xe0, 0x73,
		0xc1, 0xe7, 0x82, 0xcf, 0x05, 0x9f, 0xeb, 0xfd, 0x42, 0x12, 0x32, 0x87, 0x79, 0xb1, 0xa0, 0x04,
		0x7e, 0x7c, 0x0d, 0x15, 0x0c, 0xb8, 0xe5, 0xfa, 0x9c, 0x85, 0x5f, 0x6d, 0x8f, 0xde, 0x0f, 0xfb,
		0xf1, 0xf0, 0x70, 0x43, 0xe0, 0x86, 0xc0, 0x0d, 0x81, 0x1b, 0xa2, 0x9d, 0x1b, 0x52, 0xda, 0x93,
		0xe0, 0x87, 0xec, 0xc1, 0x0f, 0x81, 0x1f, 0x02, 0x3f, 0x44, 0x6f, 0x3f, 0x44, 0x42, 0xc1, 0x7a,
		0x78, 0x22, 0xf0, 0x44, 0x34, 0xf0, 0x44, 0xe2, 0x14, 0x91, 0x0c, 0x5c, 0x90, 0x25, 0xe3, 0xc2,
		0xf7, 0x80, 0xef, 0x01, 0xdf, 0x03, 0xbe, 0x07, 0x7c, 0x0f, 0xf8, 0x1e, 0xf0, 0x3d, 0xe0, 0x7b,
		0xc0, 0xf7, 0x80, 0xb8, 0xc0, 0xf7, 0x50, 0xc1, 0xf7, 0x50, 0x3a, 0x27, 0x89, 0x28, 0xaf, 0xff,
		0xd5, 0x4b, 0x52, 0x33, 0xbf, 0x7f, 0x94, 0xd7, 0x5d, 0x20, 0xc9, 0xc5, 0x34, 0xd4, 0xcb, 0xf7,
		0x6f, 0xc6, 0xaf, 0xdb, 0x1e, 0x7b, 0x5b, 0x9b, 0x50, 0xfb, 0x29, 0x2e, 0x70, 0x40, 0x57, 0xf6,
		0x49, 0x70, 0x79, 0x08, 0x43, 0x46, 0x0a, 0x6f, 0x19, 0x29, 0xbc, 0x12, 0x5d, 0x69, 0xa4, 0xf0,
		0xe6, 0x51, 0x5d, 0x22, 0x85, 0xf7, 0x7d, 0xcb, 0x84, 0x14, 0xde, 0xe5, 0x00, 0x0f, 0x2e, 0x35,
		0x53, 0xe0, 0x97, 0xa5, 0x00, 0xa4, 0x2b, 0x02, 0xe9, 0x0a, 0x41, 0xae, 0x62, 0xa0, 0xf5, 0x28,
		0x11, 0x4e, 0xfe, 0x5e, 0xf8, 0x42, 0x38, 0xf9, 0x7b, 0xf8, 0x31, 0x50, 0xa9, 0xb9, 0xe0, 0xc6,
		0x10, 0x4e, 0x0e, 0x61, 0xc9, 0x56, 0x31, 0xd1, 0x3f, 0x1d, 0x29, 0xbc, 0x48, 0xe1, 0x7d, 0xf7,
		0x20, 0x48, 0xe1, 0x85, 0xcf, 0x05, 0x9f, 0x0b, 0x3e, 0x17, 0x7c, 0x2e, 0xf8, 0x5c, 0xf0, 0xb9,
		0xe0, 0x73, 0xc1, 0xe7, 0x82, 0xcf, 0x05, 0x9f, 0x0b, 0x3e, 0xd7, 0x0a, 0x42, 0x82, 0x14, 0x5e,
		0xb8, 0x21, 0x70, 0x43, 0xe0, 0x86, 0xc0, 0x0d, 0x11, 0xe9, 0x86, 0x20, 0x8c, 0x1e, 0x7e, 0x08,
		0x4c, 0x4b, 0xf8, 0x21, 0x3f, 0x17, 0x15, 0x84, 0xd1, 0xc3, 0x13, 0x81, 0x27, 0x82, 0x14, 0x5e,
		0xf8, 0x1e, 0xf0, 0x3d, 0xe0, 0x7b, 0xc0, 0xf7, 0x80, 0xef, 0x01, 0xdf, 0x03, 0xbe, 0x07, 0x7c,
		0x0f, 0xf8, 0x1e, 0xf0, 0x3d, 0xe0, 0x7b, 0xd0, 0x3f, 0x11, 0x29, 0xbc, 0x22, 0x53, 0x78, 0x29,
		0x52, 0x31, 0x0d, 0x65, 0x33, 0x78, 0x05, 0x36, 0xee, 0x16, 0x2f, 0xdc, 0xe8, 0x58, 0x9f, 0xf9,
		0x71, 0xc8, 0x6f, 0xcb, 0xfa, 0xd1, 0x01, 0x50, 0xa6, 0x67, 0xfd, 0x87, 0x0c, 0x45, 0x7c, 0xe8,
		0xda, 0xc7, 0x6e, 0x7d, 0x87, 0x8d, 0x77, 0xdf, 0xb2, 0x1d, 0x27, 0x64, 0x51, 0xda, 0xed, 0x37,
		0x4f, 0xdd, 0x88, 0xd7, 0x38, 0x17, 0x93, 0x83, 0x3a, 0x74, 0x46, 0xea, 0x1e, 0x1b, 0x7a, 0xe8,
		0x82, 0xac, 0xaf, 0xa1, 0xcd, 0x3a, 0xf5, 0xc4, 0xd2, 0x41, 0xa5, 0xb2, 0xb7, 0x5f, 0xa9, 0x14,
		0xf7, 0x77, 0xf7, 0x8b, 0x87, 0xd5, 0x6a, 0x69, 0xaf, 0x24, 0xc0, 0xb6, 0x34, 0x2f, 0x42, 0x87,
		0x85, 0xcc, 0xf9, 0x38, 0x5c, 0x63, 0x7f, 0xe0, 0x79, 0x22, 0x1f, 0x79, 0x13, 0xc5, 0x09, 0xbe,
		0xe9, 0xcd, 0xc2, 0xb4, 0x22, 0x24, 0x18, 0x1d, 0x15, 0x45, 0x45, 0x01, 0x70, 0xa8, 0x16, 0x0c,
		0xa6, 0xc3, 0xbf, 0xf5, 0x51, 0x6b, 0xbd, 0xdf, 0x5c, 0x53, 0x48, 0x45, 0x09, 0x67, 0xc6, 0x42,
		0x99, 0x42, 0xf8, 0xb2, 0x12, 0xba, 0xf5, 0xc4, 0x6b, 0x75, 0xe1, 0x58, 0xed, 0x37, 0x56, 0x14,
		0x23, 0x93, 0x3d, 0xf1, 0xd0, 0xb6, 0x06, 0xc3, 0x25, 0xb8, 0xf7, 0xd6, 0xa3, 0x41, 0xcd, 0xbf,
		0x1e, 0x99, 0xbf, 0x36, 0x21, 0x98, 0x42, 0x64, 0x27, 0xb4, 0xea, 0xce, 0xb8, 0x36, 0x51, 0xc1,
		0x75, 0x98, 0xcf, 0xdd, 0xae, 0xcb, 0x42, 0xe3, 0x1f, 0xc6, 0x2f, 0x41, 0xc7, 0xea, 0x07, 0x9e,
		0xc5, 0x9f, 0xfb, 0x2c, 0x3a, 0xba, 0xfc, 0x54, 0xbf, 0xfc, 0x25, 0x8d, 0x94, 0x09, 0xba, 0x8a,
		0x98, 0xbe, 0x6a, 0x88, 0xd7, 0x2d, 0xa5, 0x6e, 0x12, 0x7d, 0x91, 0x30, 0x73, 0x51, 0xf0, 0xfe,
		0x85, 0xfd, 0x90, 0x81, 0x6e, 0x36, 0x8f, 0x59, 0xd4, 0x09, 0xdd, 0xbe, 0x10, 0xc5, 0x9c, 0x08,
		0x53, 0xc3, 0xef, 0x78, 0x03, 0x87, 0x19, 0xc3, 0xf7, 0x32, 0x46, 0xaf, 0x3f, 0x08, 0xe3, 0x73,
		0x6f, 0x0c, 0xf7, 0xcb, 0xe0, 0x8f, 0xcc, 0x98, 0x60, 0x9a, 0xe1, 0x46, 0x46, 0xd0, 0x35, 0x86,
		0x0b, 0x71, 0xe7, 0x0f, 0x7f, 0x21, 0xed, 0x6e, 0x0a, 0xbc, 0xef, 0x9a, 0x16, 0x34, 0x67, 0x6a,
		0xa1, 0x04, 0x68, 0x79, 0x8a, 0xcb, 0xab, 0x19, 0xb9, 0x4b, 0xb7, 0x07, 0x7a, 0xa9, 0xfd, 0x0f,
		0xb4, 0x44, 0xe0, 0xaa, 0xfa, 0x20, 0xa5, 0x39, 0x21, 0xc7, 0x8c, 0x58, 0x43, 0x88, 0xc9, 0xad,
		0x84, 0xd5, 0xc4, 0xee, 0xfd, 0xdb, 0xbe, 0xc2, 0x06, 0x9a, 0x7d, 0xb7, 0xb7, 0xf2, 0xae, 0x25,
		0xc0, 0x37, 0xfc, 0xe5, 0x15, 0x85, 0x65, 0xbd, 0x2a, 0x6c, 0x6b, 0x47, 0x41, 0xa4, 0x89, 0x6e,
		0x98, 0x89, 0x5a, 0x58, 0xf9, 0x4d, 0x45, 0x80, 0xb3, 0xb0, 0x20, 0x03, 0x61, 0xf8, 0x3b, 0x17,
		0x14, 0xe0, 0xf6, 0x4c, 0xc5, 0xcc, 0xd3, 0x75, 0x6b, 0x88, 0x99, 0x0f, 0x5e, 0x70, 0x9f, 0x22,
		0x3c, 0x29, 0x11, 0x97, 0xf1, 0x73, 0xd6, 0x5c, 0xe0, 0x74, 0x65, 0x0a, 0x53, 0x87, 0x0b, 0x89,
		0x08, 0x07, 0x4a, 0x7f, 0x70, 0x28, 0x4d, 0x68, 0x21, 0xd1, 0x3a, 0xb4, 0x46, 0xf4, 0xba, 0x07,
		0x2b, 0x1b, 0x3a, 0x21, 0x6d, 0xd1, 0x3e, 0xb3, 0x33, 0x91, 0x59, 0x41, 0xf6, 0xb8, 0x90, 0xb2,
		0xb3, 0x82, 0xea, 0x85, 0x0a, 0x8b, 0xdf, 0x13, 0x19, 0xa7, 0x27, 0xee, 0x80, 0x52, 0xb8, 0x21,
		0x06, 0x65, 0x78, 0x1d, 0x59, 0x18, 0x9d, 0xd0, 0x03, 0x9c, 0xde, 0xb5, 0x10, 0x41, 0x62, 0x8b,
		0xaa, 0xc6, 0x69, 0xf6, 0xec, 0x27, 0xb7, 0x37, 0xe8, 0x59, 0x0f, 0x61, 0x30, 0xe8, 0x47, 0xe2,
		0x84, 0x64, 0x22, 0xc6, 0x6f, 0x9e, 0x2f, 0x68, 0x43, 0xc5, 0x06, 0xf6, 0x0a, 0x0f, 0xe4, 0xa5,
		0x08, 0xdc, 0x15, 0x0f, 0x0c, 0x54, 0x00, 0x41, 0x0e, 0x14, 0xe4, 0x80, 0x41, 0x0a, 0x1c, 0x62,
		0x00, 0x44, 0x10, 0x90, 0x24, 0x6f, 0x2a, 0x3c, 0x6c, 0x76, 0x26, 0x4c, 0x76, 0xb7, 0x2c, 0x52,
		0x5e, 0xc7, 0xa7, 0x7f, 0x5f, 0xe0, 0x23, 0x69, 0xc2, 0x60, 0x09, 0x42, 0x92, 0x28, 0xc3, 0x5c,
		0xa9, 0xc3, 0x5a, 0xa5, 0xc5, 0x25, 0xd2, 0xc7, 0x21, 0x52, 0xe4, 0xe4, 0x50, 0x86, 0xa5, 0x26,
		0x5b, 0x5b, 0x29, 0x1f, 0x56, 0x0e, 0xf7, 0xf6, 0xcb, 0x87, 0x55, 0xec, 0xb1, 0x14, 0x80, 0x16,
		0xff, 0xb4, 0x16, 0x22, 0x81, 0xb4, 0x0c, 0xe3, 0x70, 0x7b, 0x85, 0x11, 0xff, 0x24, 0xae, 0xf9,
		0x0a, 0x2d, 0x0f, 0xee, 0xf6, 0xda, 0xbf, 0xc5, 0x13, 0x16, 0xd2, 0x3e, 0xe5, 0x25, 0x93, 0x5b,
		0xc5, 0x90, 0xf9, 0x0e, 0xfb, 0xbf, 0xaf, 0xc1, 0x20, 0xb2, 0xfa, 0x81, 0x3b, 0x8a, 0x9e, 0x12,
		0xc4, 0x65, 0xcc, 0x3f, 0x1a, 0xb4, 0x06, 0x68, 0x0d, 0xd0, 0x1a, 0x2a, 0xd0, 0x1a, 0x6f, 0xcf,
		0xa6, 0x78, 0x62, 0x63, 0x6e, 0x04, 0xb1, 0xd4, 0x46, 0x09, 0xd4, 0x06, 0xa8, 0x0d, 0x50, 0x1b,
		0x22, 0xde, 0x54, 0x74, 0xe7, 0x22, 0x73, 0x12, 0x72, 0x4e, 0xd6, 0x64, 0x4d, 0x4c, 0x4c, 0xfb,
		0x32, 0x68, 0x29, 0x52, 0xb5, 0x59, 0x2b, 0x6a, 0xda, 0x66, 0x4d, 0x28, 0xe4, 0x50, 0x43, 0x8f,
		0x34, 0x08, 0x92, 0x06, 0x45, 0x52, 0x20, 0x89, 0xc8, 0xa9, 0x17, 0x2c, 0xf1, 0x64, 0xc5, 0x0b,
		0x12, 0x79, 0xf7, 0x98, 0xdd, 0x0d, 0x59, 0x97, 0x42, 0xe0, 0x27, 0x96, 0xcb, 0x3e, 0xc1, 0xb3,
		0x2f, 0xc7, 0x7e, 0xf9, 0x4e, 0x12, 0xc4, 0x3a, 0xc1, 0xc8, 0x0d, 0x68, 0xe9, 0x29, 0xe8, 0x12,
		0x7e, 0xa9, 0x4c, 0x90, 0xf4, 0x82, 0x25, 0x6f, 0xea, 0x09, 0x6d, 0x03, 0x6d, 0x03, 0x6d, 0xa3,
		0x92, 0x61, 0x4c, 0x6e, 0x20, 0x4b, 0x32, 0x94, 0x89, 0x0d, 0x66, 0x72, 0x28, 0x93, 0x01, 0x69,
		0xf2, 0xa0, 0x4d, 0x16, 0xc4, 0x49, 0x87, 0x3a, 0xe9, 0x90, 0x27, 0x15, 0xfa, 0x68, 0x20, 0x90,
		0x08, 0x0a, 0xe9, 0x0d, 0xf0, 0xb9, 0xf3, 0xe2, 0xf6, 0xbf, 0x56, 0x2c, 0x5a, 0xfc, 0x9a, 0x31,
		0xc3, 0x0e, 0x08, 0xc7, 0xb8, 0xb4, 0x39, 0x67, 0xa1, 0x4f, 0x5e, 0x46, 0xcc, 0xdc, 0xda, 0xba,
		0x2d, 0x5a, 0x87, 0xad, 0xef, 0xb7, 0x25, 0xeb, 0xb0, 0x35, 0xfa, 0x58, 0x8a, 0xff, 0x37, 0xfa,
		0x5c, 0xbe, 0x2d, 0x5a, 0x95, 0xc9, 0xe7, 0xea, 0x6d, 0xd1, 0xaa, 0xb6, 0xb6, 0xef, 0xee, 0x76,
		0xb6, 0xbf, 0xed, 0xbe, 0xac, 0xfe, 0x8b, 0x5b, 0xff, 0x7d, 0x7b, 0x77, 0xd7, 0xff, 0x76, 0xfe,
		0x32, 0xfc, 0xf3, 0xf4, 0xa5, 0xf5, 0xf7, 0xed, 0x7f, 0x9a, 0xa8, 0x07, 0x44, 0x60, 0xba, 0xf6,
		0x06, 0x1e, 0x77, 0x3b, 0x76, 0xc4, 0x45, 0x07, 0x21, 0x2e, 0x3d, 0x7b, 0x73, 0x23, 0xc2, 0x7e,
		0x80, 0xfd, 0x00, 0xfb, 0x01, 0xf6, 0x83, 0x46, 0xf6, 0x43, 0xc4, 0x43, 0xd7, 0x7f, 0x90, 0x62,
		0x39, 0xa0, 0x56, 0x9d, 0x88, 0x33, 0xa3, 0x7d, 0xad, 0xba, 0xd7, 0xf8, 0xa5, 0xb9, 0xc8, 0x97,
		0xb9, 0x9f, 0x14, 0x48, 0x38, 0x45, 0x43, 0x62, 0xc8, 0xd3, 0x55, 0xf2, 0x46, 0x97, 0xf1, 0x2b,
		0xbe, 0xfd, 0x81, 0x90, 0x98, 0x28, 0x3a, 0x11, 0x7e, 0x11, 0x5a, 0x0e, 0xcd, 0xe6, 0x8c, 0x8e,
		0x7e, 0xa6, 0xa8, 0x63, 0x48, 0xce, 0x3e, 0x97, 0xc1, 0x3e, 0xcb, 0x33, 0xad, 0xc0, 0x3e, 0xe7,
		0x50, 0x21, 0x82, 0x7d, 0x86, 0xf7, 0x08, 0xef, 0x11, 0xde, 0x23, 0xbc, 0xc7, 0x0c, 0xbc, 0x47,
		0xb0, 0xcf, 0x6b, 0x0c, 0x04, 0xf6, 0x39, 0x6b, 0x0f, 0x1f, 0xec, 0x33, 0xec, 0x07, 0xd8, 0x0f,
		0xb0, 0x1f, 0x60, 0x3f, 0x64, 0x6c, 0x3f, 0x80, 0x7d, 0xd6, 0xcb, 0xd9, 0xde, 0x30, 0xf6, 0x59,
		0xcf, 0xd6, 0x28, 0x2b, 0x90, 0xcf, 0xe8, 0x86, 0xb2, 0x8a, 0x42, 0x14, 0x4f, 0xd6, 0x88, 0xed,
		0x17, 0x91, 0x3c, 0x55, 0x78, 0xdf, 0x88, 0xd7, 0x27, 0x4b, 0xe8, 0x1f, 0x91, 0x0c, 0x26, 0xbe,
		0x8f, 0xc4, 0xfc, 0xa3, 0x85, 0xf5, 0x93, 0x10, 0x2d, 0x6f, 0xfa, 0x76, 0xdf, 0x59, 0x05, 0x62,
		0xb5, 0x69, 0xb7, 0xf3, 0x7e, 0x50, 0x45, 0x87, 0x1d, 0xdd, 0xeb, 0x6a, 0x88, 0xae, 0xc8, 0x90,
		0xa5, 0x74, 0xea, 0x58, 0x6c, 0x23, 0x8a, 0x7d, 0xdc, 0xc8, 0xfa, 0xdf, 0xc0, 0xf5, 0x99, 0x23,
		0xae, 0xd2, 0xc6, 0x9b, 0xe7, 0x2a, 0x56, 0x66, 0xa3, 0x8c, 0x32, 0x1b, 0x0a, 0xf0, 0x13, 0x28,
		0xb3, 0xf1, 0xfe, 0x37, 0x12, 0x56, 0x66, 0x23, 0x12, 0x2c, 0x1c, 0xb3, 0x07, 0x1e, 0x25, 0x35,
		0x14, 0x24, 0x36, 0x51, 0x52, 0x23, 0x13, 0x62, 0x12, 0x25, 0x35, 0xd2, 0x9d, 0x03, 0x94, 0xd4,
		0x30, 0x10, 0x66, 0x96, 0x35, 0x04, 0x49, 0x83, 0x22, 0x29, 0x90, 0x24, 0x9e, 0x38, 0x34, 0x50,
		0x52, 0x63, 0xb1, 0xe5, 0x42, 0x5c, 0x52, 0x23, 0xa6, 0xcb, 0x37, 0xa9, 0xa2, 0x06, 0x22, 0x9a,
		0x85, 0xbb, 0xb1, 0x50, 0x35, 0x50, 0x35, 0x88, 0x68, 0x46, 0x44, 0xb3, 0x7c, 0x6b, 0x99, 0xdc,
		0x6a, 0x96, 0x01, 0x69, 0xf2, 0xa0, 0x4d, 0x16, 0xc4, 0x49, 0x87, 0x3a, 0xe9, 0x90, 0x27, 0x15,
		0xfa, 0x68, 0x20, 0x90, 0x08, 0x0a, 0xe9, 0xad, 0xef, 0xb9, 0xf3, 0x82, 0x88, 0xe6, 0x35, 0x06,
		0x42, 0x44, 0x73, 0xc6, 0x67, 0x8f, 0x22, 0xa2, 0x39, 0x8e, 0x2a, 0xa6, 0xb7, 0x15, 0x46, 0xc3,
		0xc0, 0x52, 0x80, 0xa5, 0x00, 0x4b, 0x01, 0x96, 0x02, 0x2c, 0x05, 0x58, 0x0a, 0xb0, 0x14, 0x34,
		0xb3, 0x14, 0x06, 0xfd, 0x88, 0x87, 0xcc, 0xee, 0x59, 0xae, 0xcf, 0x59, 0xd8, 0xb5, 0x3b, 0xcc,
		0x72, 0x1d, 0x7a, 0xcb, 0x61, 0xf1, 0xb0, 0xb0, 0x24, 0x60, 0x49, 0xc0, 0x92, 0x80, 0x25, 0xa1,
		0x93, 0x25, 0x41, 0x8f, 0x5f, 0x06, 0x72, 0xa1, 0x90, 0x0b, 0xb5, 0x3c, 0xe2, 0x79, 0x36, 0x32,
		0x76, 0xfc, 0xad, 0xf6, 0xe9, 0x4f, 0x23, 0x2d, 0x11, 0xfd, 0x7f, 0xf1, 0x4b, 0x8d, 0xbf, 0x43,
		0xca, 0xd3, 0x4a, 0xda, 0x0f, 0x29, 0x4f, 0x48, 0x79, 0x92, 0x26, 0x6f, 0x79, 0x48, 0x79, 0x5a,
		0x88, 0xa4, 0x1a, 0x66, 0x39, 0x2d, 0xc2, 0x4e, 0x64, 0x36, 0xe9, 0x9e, 0xd9, 0x24, 0x34, 0x03,
		0x26, 0x33, 0x71, 0xd4, 0x32, 0xa7, 0x29, 0xea, 0x09, 0x4c, 0x64, 0x8a, 0x7a, 0x68, 0x12, 0x2c,
		0x91, 0x87, 0x40, 0xf6, 0x12, 0xb2, 0x97, 0x96, 0x3f, 0x48, 0x70, 0x5f, 0x35, 0x9a, 0x7e, 0x6a,
		0xc8, 0x5e, 0x42, 0xf6, 0x12, 0xb2, 0x97, 0x84, 0xba, 0x2b, 0xc2, 0xb3, 0x97, 0xa2, 0xa8, 0x67,
		0x85, 0xb6, 0xff, 0xc0, 0x08, 0x13, 0x98, 0xa6, 0xc6, 0x40, 0x0e, 0x13, 0x02, 0xcb, 0x33, 0x03,
		0x22, 0x69, 0x80, 0x24, 0x05, 0x98, 0xc4, 0x33, 0x81, 0x06, 0x72, 0x98, 0x16, 0xdb, 0x2f, 0x94,
		0x39, 0x4c, 0x85, 0xa0, 0x63, 0xd9, 0x1d, 0xef, 0xc8, 0xee, 0x78, 0x53, 0x1f, 0xad, 0x88, 0xf1,
		0xe8, 0xcd, 0xf7, 0x93, 0x6f, 0xc7, 0x5d, 0x84, 0xc7, 0xdf, 0xc5, 0x6e, 0x30, 0xa8, 0xe5, 0x4d,
		0xa1, 0xfa, 0xa2, 0x9e, 0xf8, 0xfe, 0x24, 0xd2, 0x08, 0x95, 0xa8, 0x27, 0xb4, 0xf5, 0x88, 0x00,
		0x56, 0x4f, 0x08, 0x1b, 0x25, 0x32, 0x21, 0x8f, 0x24, 0x11, 0x8f, 0xcc, 0x11, 0x2b, 0xc3, 0x11,
		0x83, 0x23, 0x06, 0x47, 0x0c, 0x8e, 0x18, 0x1c, 0x31, 0x38, 0x62, 0x70, 0xc4, 0xe0, 0x88, 0xc1,
		0x11, 0x83, 0x23, 0xb6, 0x31, 0x8e, 0x98, 0xe8, 0x58, 0x35, 0x99, 0x7e, 0x98, 0xc0, 0x90, 0x34,
		0x04, 0x57, 0x64, 0x2a, 0x86, 0x3a, 0x45, 0x54, 0x44, 0x3d, 0x2d, 0xe3, 0x28, 0x84, 0x78, 0xf8,
		0x42, 0x3d, 0x7b, 0x54, 0x82, 0xcd, 0xd2, 0x60, 0x46, 0x2c, 0x85, 0x02, 0xb0, 0x2d, 0x30, 0x96,
		0x62, 0xe0, 0x73, 0x16, 0x46, 0x14, 0xd1, 0x14, 0xe3, 0x27, 0x23, 0x9e, 0x02, 0x34, 0x1e, 0x68,
		0xbc, 0x4d, 0xa0, 0xf1, 0xee, 0x83, 0x80, 0x47, 0x3c, 0xb4, 0xfb, 0x56, 0x8f, 0x45, 0x91, 0x4d,
		0x4a, 0xe7, 0x2d, 0x18, 0x0b, 0xb4, 0x1e, 0x68, 0x3d, 0xd0, 0x7a, 0xa0, 0xf5, 0x04, 0xca, 0xfb,
		0xc0, 0xf5, 0xf9, 0x6e, 0x99, 0x90, 0xd5, 0xa3, 0x20, 0xf5, 0xae, 0x6c, 0xff, 0x81, 0x91, 0x95,
		0x96, 0x20, 0xcc, 0xcf, 0x3d, 0x73, 0x7d, 0xfa, 0x14, 0xf3, 0xcf, 0xb6, 0x37, 0x60, 0x74, 0x89,
		0xff, 0xc9, 0x38, 0x27, 0xa1, 0xdd, 0xe1, 0x6e, 0xe0, 0x1f, 0xbb, 0x0f, 0xae, 0xe8, 0x1c, 0xb9,
		0xc5, 0x32, 0xcb, 0x1e, 0x6c, 0xee, 0x7e, 0x65, 0x42, 0x53, 0xcd, 0x24, 0x1c, 0xe3, 0x59, 0x11,
		0xb0, 0x9f, 0xe4, 0x89, 0x40, 0xa5, 0x7c, 0x58, 0x39, 0xdc, 0xdb, 0x2f, 0x1f, 0x56, 0x21, 0x0b,
		0x4a, 0x28, 0x08, 0xba, 0xa7, 0xb6, 0x94, 0x56, 0x64, 0xec, 0x89, 0x87, 0xb6, 0x35, 0xf0, 0x23,
		0x6e, 0xdf, 0x7b, 0x44, 0x2a, 0x2d, 0x64, 0x5d, 0x16, 0x32, 0xbf, 0xa3, 0xa5, 0x66, 0x98, 0xe8,
		0xe3, 0xab, 0x93, 0x4f, 0xfb, 0xfb, 0x7b, 0x25, 0x63, 0x77, 0x67, 0xdf, 0xe8, 0xdb, 0x0f, 0xcc,
		0x28, 0x95, 0x73, 0x56, 0xf6, 0xe4, 0x75, 0x9b, 0xf2, 0x5c, 0xf9, 0x64, 0xd1, 0x3e, 0x02, 0xa3,
		0x36, 0xa0, 0x82, 0xff, 0x23, 0xf3, 0xbc, 0x40, 0x02, 0x3d, 0xf0, 0x66, 0x1c, 0x50, 0x03, 0xa0,
		0x06, 0x40, 0x0d, 0x80, 0x1a, 0x00, 0x35, 0x00, 0x6a, 0x00, 0xd4, 0x00, 0xa8, 0x01, 0x50, 0x03,
		0xa0, 0x06, 0x40, 0x0d, 0xe4, 0x92, 0x1a, 0xa8, 0xec, 0x1c, 0xee, 0x94, 0xc7, 0x4e, 0x65, 0xf1,
		0x00, 0xec, 0x80, 0xc6, 0xec, 0xc0, 0x9b, 0xad, 0x04, 0x52, 0x6d, 0x00, 0x41, 0xf0, 0xbf, 0x81,
		0xeb, 0x5b, 0xfd, 0x70, 0xe0, 0x33, 0x09, 0x2c, 0xc1, 0xa2, 0xc1, 0x40, 0x15, 0x80, 0x2a, 0x00,
		0x55, 0x00, 0xaa, 0x00, 0x54, 0x01, 0xa8, 0x02, 0x50, 0x05, 0xa0, 0x0a, 0x40, 0x15, 0x80, 0x2a,
		0x00, 0x55, 0x90, 0x53, 0xaa, 0xa0, 0x3a, 0xf2, 0x2e, 0x2b, 0x15, 0xf0, 0x04, 0x5a, 0xf3, 0x04,
		0xaf, 0xfb, 0x08, 0x8c, 0x42, 0x1a, 0xf6, 0x7b, 0xc4, 0x28, 0x0f, 0x69, 0xd8, 0xdc, 0xe6, 0xac,
		0x20, 0x38, 0xcf, 0xca, 0x90, 0x99, 0x12, 0x3b, 0x7c, 0x81, 0xf6, 0xa7, 0xc9, 0x0b, 0xe4, 0xa8,
		0x2e, 0x56, 0xcf, 0x7e, 0x72, 0x7b, 0x83, 0x9e, 0x15, 0x37, 0x5b, 0x25, 0x48, 0xae, 0x7b, 0xf3,
		0x7c, 0xb1, 0x29, 0x76, 0x45, 0xa4, 0xd8, 0x29, 0xac, 0xf6, 0x91, 0x62, 0xa7, 0x91, 0x9a, 0x11,
		0xce, 0x2d, 0xd1, 0x71, 0x4a, 0x04, 0x5c, 0x12, 0x11, 0x87, 0x44, 0xe0, 0xd6, 0x50, 0x72, 0x46,
		0xd4, 0x5c, 0x91, 0x34, 0x5e, 0x80, 0x9e, 0x0f, 0xa0, 0x68, 0x96, 0x4a, 0xc9, 0x05, 0x49, 0xe3,
		0x80, 0xf2, 0xb4, 0xc7, 0x8a, 0xfa, 0x27, 0xad, 0x1c, 0x99, 0x9f, 0x3e, 0x73, 0x1f, 0x1e, 0xef,
		0x83, 0xd0, 0x8a, 0x9d, 0x03, 0xf1, 0xe6, 0xe7, 0x9b, 0xe7, 0xc3, 0xfc, 0x84, 0xf9, 0x09, 0xf3,
		0x73, 0xe3, 0xcc, 0xcf, 0x03, 0x02, 0xeb, 0xb3, 0x0a, 0xeb, 0x13, 0xd6, 0x27, 0xac, 0xcf, 0xd5,
		0xb6, 0xb6, 0x5c, 0x85, 0xd9, 0x09, 0xb3, 0x33, 0xcb, 0x27, 0x6c, 0x74, 0x19, 0x4a, 0x41, 0x95,
		0x50, 0xa5, 0xb2, 0xee, 0x99, 0x95, 0xa2, 0xfc, 0x20, 0x51, 0xbc, 0x44, 0x89, 0x95, 0x4c, 0x71,
		0x32, 0x53, 0xd5, 0xea, 0x94, 0x21, 0x40, 0xeb, 0x89, 0xce, 0xea, 0x1b, 0xbf, 0xc6, 0xa6, 0x9b,
		0xae, 0xcf, 0x59, 0xd8, 0xb5, 0x3b, 0x29, 0x82, 0x86, 0x13, 0x13, 0x77, 0xea, 0x59, 0x6b, 0x8a,
		0x5f, 0xba, 0x92, 0x85, 0xa9, 0x1d, 0x58, 0x11, 0x0e, 0xab, 0x38, 0x07, 0x55, 0x94, 0x43, 0x2a,
		0xdc, 0x01, 0x15, 0xee, 0x70, 0x0a, 0x75, 0x30, 0xe5, 0x02, 0x66, 0xda, 0x92, 0x80, 0xaf, 0x87,
		0x46, 0x5c, 0xc9, 0xe0, 0xd7, 0x47, 0xa2, 0x05, 0xb3, 0x3c, 0x1e, 0x09, 0x65, 0x83, 0x51, 0x36,
		0x78, 0xf9, 0x83, 0xd0, 0x82, 0x59, 0xc4, 0x03, 0x41, 0x28, 0x83, 0x50, 0x96, 0xc3, 0x34, 0x28,
		0x5c, 0x32, 0x38, 0x74, 0x58, 0x68, 0x85, 0xc1, 0x80, 0xb3, 0x90, 0xb2, 0x5a, 0xf0, 0xf4, 0x30,
		0x82, 0xb7, 0xff, 0x98, 0x75, 0xed, 0x81, 0xc7, 0x49, 0x22, 0xa2, 0xcd, 0x98, 0x0d, 0x13, 0x1b,
		0xd5, 0xda, 0x42, 0x8a, 0x23, 0x52, 0x1c, 0x33, 0x83, 0x63, 0x69, 0xb0, 0x2c, 0x05, 0x9e, 0xc5,
		0xc2, 0xb4, 0x60, 0xb8, 0x4e, 0x56, 0x80, 0x3e, 0xc5, 0xf1, 0x3e, 0x08, 0x3c, 0x66, 0xfb, 0x94,
		0xfd, 0xcf, 0x4a, 0x1b, 0x90, 0xfd, 0x7e, 0x1f, 0x85, 0xd6, 0x48, 0x57, 0x11, 0xea, 0xc2, 0xd7,
		0x31, 0xa0, 0x08, 0xa1, 0x08, 0xa1, 0x08, 0xa1, 0x08, 0xa1, 0x08, 0xa1, 0x08, 0xd5, 0x52, 0x84,
		0x0e, 0xb3, 0x1d, 0x8b, 0xbb, 0x3d, 0x4a, 0x45, 0x38, 0x35, 0x06, 0x14, 0x01, 0x14, 0x01, 0x14,
		0x01, 0x14, 0x81, 0x40, 0x79, 0x1f, 0xb8, 0x3e, 0x2f, 0xed, 0x11, 0xea, 0x81, 0x3d, 0x14, 0x7d,
		0x79, 0x9d, 0xb8, 0xd4, 0xa2, 0x2f, 0x25, 0x14, 0xfa, 0x50, 0xe3, 0x18, 0xcf, 0x8a, 0x80, 0xcc,
		0xa2, 0x2f, 0x7b, 0xd5, 0xea, 0x2e, 0xea, 0xbd, 0xa8, 0xa1, 0x1b, 0xe8, 0x9e, 0xba, 0x09, 0x05,
		0x17, 0x9d, 0xd0, 0xea, 0x87, 0x6e, 0x10, 0xba, 0xfc, 0x99, 0xd0, 0xd4, 0x9e, 0x1a, 0x04, 0xb6,
		0x36, 0x6c, 0x6d, 0xd8, 0xda, 0xb0, 0xb5, 0x69, 0xe0, 0xc5, 0xe2, 0xc3, 0xd1, 0x50, 0x6a, 0x31,
		0x7f, 0x56, 0x37, 0x4a, 0x2d, 0x6e, 0xbc, 0xd5, 0x8d, 0x52, 0x8b, 0x30, 0xbd, 0x73, 0x64, 0x7a,
		0x33, 0xdf, 0xbe, 0xf7, 0x98, 0x43, 0x67, 0x76, 0x4f, 0x06, 0xc0, 0x3d, 0x2f, 0x5c, 0x0e, 0xb8,
		0x1c, 0x70, 0x39, 0xe0, 0x72, 0x08, 0x93, 0x77, 0xdc, 0xf3, 0x0a, 0x79, 0xd7, 0x51, 0x9f, 0xce,
		0x38, 0xc5, 0xe7, 0xab, 0xed, 0x51, 0xf7, 0x03, 0x4d, 0xc6, 0x81, 0x42, 0x80, 0x42, 0x80, 0x42,
		0x80, 0x42, 0x10, 0x28, 0xef, 0x7d, 0xb7, 0x97, 0xe0, 0x0b, 0x35, 0x09, 0x45, 0xe0, 0xfe, 0x9a,
		0x37, 0xfe, 0xc8, 0xd3, 0x35, 0x23, 0xd6, 0x09, 0x7c, 0x27, 0x32, 0x41, 0x74, 0x65, 0x44, 0x74,
		0xe1, 0x7a, 0x79, 0xe3, 0x89, 0x2e, 0xb2, 0x8a, 0x3e, 0x60, 0xb8, 0xc0, 0x70, 0x49, 0x34, 0xef,
		0x93, 0xdc, 0x7d, 0xcb, 0x25, 0xa4, 0xb9, 0x66, 0x46, 0x81, 0x69, 0x0f, 0xd3, 0x1e, 0xa6, 0x3d,
		0x4c, 0x7b, 0x3d, 0xf0, 0x65, 0x86, 0xf0, 0x39, 0xd8, 0xac, 0xfe, 0xae, 0xf4, 0xac, 0xcf, 0xa2,
		0xc1, 0xa0, 0x1f, 0xa0, 0x1f, 0xa0, 0x1f, 0xa0, 0x1f, 0x40, 0xfd, 0x80, 0xfa, 0x01, 0xf5, 0x03,
		0xea, 0x07, 0xd4, 0x0f, 0xa8, 0x1f, 0x50, 0x3f, 0xe2, 0x0d, 0x7d, 0xa2, 0x16, 0x78, 0x73, 0xca,
		0x97, 0xa4, 0x15, 0x1e, 0xcc, 0x7b, 0x98, 0xf7, 0x30, 0xef, 0x61, 0xde, 0xd3, 0xb4, 0xda, 0x7b,
		0x8b, 0x2e, 0xc8, 0x29, 0xc8, 0xca, 0xde, 0x46, 0x4e, 0xc1, 0xc6, 0xdb, 0xdb, 0xc8, 0x29, 0x80,
		0xd9, 0x9d, 0x27, 0xb3, 0x3b, 0x70, 0x18, 0xa1, 0xb1, 0x3d, 0x7c, 0x3a, 0x4c, 0x6c, 0x98, 0xd8,
		0x30, 0xb1, 0x61, 0x62, 0x0b, 0x94, 0x77, 0xd7, 0x61, 0x3e, 0x77, 0xf9, 0x73, 0xc8, 0xba, 0x94,
		0x17, 0xac, 0x14, 0xe4, 0x79, 0x63, 0x3c, 0xf5, 0x8f, 0x76, 0x44, 0x78, 0xac, 0x26, 0x0b, 0x75,
		0xd9, 0x38, 0x6b, 0x9f, 0x5d, 0x1c, 0xd7, 0xa9, 0x4e, 0x55, 0x6c, 0x15, 0x45, 0x64, 0x7e, 0x03,
		0xad, 0xef, 0xb0, 0x70, 0xa5, 0xda, 0xc7, 0xf5, 0xf3, 0xeb, 0xba, 0xa9, 0xa3, 0x21, 0x2c, 0x7b,
		0xa5, 0xae, 0x2f, 0x6b, 0x57, 0xa4, 0x4b, 0x45, 0xf2, 0xe4, 0xd6, 0xc6, 0xf4, 0x0a, 0x54, 0xab,
		0x17, 0x80, 0xe0, 0x9e, 0x7d, 0xc9, 0x73, 0xa5, 0x34, 0x5b, 0x7b, 0x6d, 0xee, 0xf5, 0xfa, 0xb1,
		0x20, 0xb4, 0xfb, 0x88, 0x21, 0xa3, 0x23, 0x5b, 0x23, 0x79, 0x8d, 0xd7, 0x8f, 0xed, 0xb1, 0xe5,
		0x9b, 0xa3, 0x7e, 0xe6, 0xa3, 0x3c, 0x66, 0xeb, 0xbe, 0xeb, 0x88, 0x6f, 0x39, 0x33, 0xf5, 0x6c,
		0xb4, 0x9d, 0x11, 0xe1, 0xb8, 0x88, 0x5b, 0x49, 0x03, 0x6d, 0x67, 0x56, 0x70, 0x4c, 0x86, 0xeb,
		0x8e, 0xb6, 0x33, 0xef, 0x7b, 0xa0, 0xe0, 0xfe, 0x55, 0x73, 0xc7, 0x40, 0xb8, 0x26, 0x21, 0x00,
		0x96, 0xdc, 0x30, 0x25, 0x62, 0x01, 0x07, 0x4c, 0x89, 0x92, 0x80, 0xa4, 0x07, 0x53, 0x22, 0x1a,
		0xa8, 0xde, 0x58, 0x40, 0x0e, 0x3d, 0xc1, 0x40, 0x53, 0x32, 0xe6, 0x2d, 0x84, 0x51, 0xb5, 0x91,
		0xa7, 0x82, 0x32, 0x19, 0x90, 0x26, 0x0f, 0xda, 0x64, 0x41, 0x9c, 0x74, 0xa8, 0x93, 0x0e, 0x79,
		0x52, 0xa1, 0x8f, 0x96, 0x46, 0x21, 0xe2, 0xb1, 0xe8, 0xc8, 0xe3, 0xb9, 0xf3, 0x42, 0x57, 0x92,
		0x65, 0xce, 0x02, 0x2b, 0x69, 0x72, 0xe3, 0xa9, 0xb6, 0xb6, 0x24, 0x62, 0x90, 0x14, 0x60, 0x92,
		0x5e, 0x49, 0x85, 0x02, 0x89, 0x2b, 0x90, 0x1d, 0xb9, 0x54, 0x8f, 0xdf, 0xec, 0x63, 0xd7, 0x11,
		0x4a, 0x33, 0x89, 0x97, 0xd7, 0x17, 0xa1, 0x2c, 0x9e, 0xcd, 0x09, 0x2f, 0xd5, 0x47, 0x8f, 0xd7,
		0xcc, 0x57, 0x2c, 0xc3, 0x57, 0x84, 0xaf, 0x08, 0x5f, 0x11, 0xbe, 0x22, 0x7c, 0x45, 0xf8, 0x8a,
		0xf0, 0x15, 0xe1, 0x2b, 0xc2, 0x57, 0x84, 0xaf, 0x08, 0x5f, 0x31, 0x9d, 0xaf, 0x48, 0xe1, 0x09,
		0xa8, 0xe0, 0x2a, 0x5e, 0xc7, 0xef, 0x85, 0xa8, 0x9a, 0xec, 0xe4, 0x5c, 0x09, 0xf9, 0xd6, 0x3e,
		0xb2, 0x26, 0x91, 0xe8, 0x3c, 0x05, 0xd7, 0x90, 0xd4, 0x68, 0xa3, 0xac, 0x9d, 0x24, 0xd8, 0x31,
		0xd0, 0x2e, 0xc0, 0x46, 0x6c, 0x66, 0x00, 0x02, 0x6c, 0xde, 0x6b, 0xa8, 0x0b, 0x8d, 0xfc, 0x57,
		0x4b, 0xeb, 0x08, 0x37, 0xbc, 0x13, 0x79, 0xf5, 0x98, 0xdd, 0x15, 0x1b, 0xd5, 0x9f, 0x18, 0xd6,
		0x02, 0xd3, 0x66, 0xcd, 0xcb, 0xb1, 0x62, 0xdc, 0xd9, 0x19, 0x13, 0xf6, 0x85, 0x19, 0xe0, 0xca,
		0x25, 0xdc, 0x0f, 0xb7, 0x85, 0x10, 0xef, 0xc5, 0xed, 0xfa, 0xa6, 0x47, 0x54, 0xba, 0x5d, 0xe0,
		0x7d, 0x06, 0x78, 0xef, 0x76, 0x11, 0x4f, 0xf9, 0xce, 0x07, 0x22, 0x9e, 0x92, 0x10, 0x5e, 0x28,
		0x61, 0x86, 0x1c, 0x6e, 0xa8, 0x61, 0x47, 0x1a, 0xfc, 0x48, 0x83, 0x21, 0x19, 0x70, 0xa4, 0x07,
		0xe7, 0x47, 0x76, 0x43, 0x96, 0x18, 0x29, 0xf4, 0x77, 0x64, 0xaf, 0x43, 0xe1, 0x96, 0x4c, 0x36,
		0xa8, 0x49, 0x03, 0x37, 0x59, 0x20, 0x27, 0x1d, 0xec, 0xa4, 0x83, 0x9e, 0x4c, 0xf0, 0xa3, 0x01,
		0x41, 0x22, 0x30, 0xa4, 0x73, 0xd5, 0x25, 0xba, 0xee, 0x32, 0x5c, 0xf9, 0xa5, 0xae, 0x7d, 0x21,
		0x16, 0xa3, 0xa3, 0x29, 0x8e, 0xfa, 0xcd, 0x0f, 0xc6, 0xdf, 0xc7, 0x9c, 0xb2, 0x2e, 0x77, 0x76,
		0x14, 0x77, 0x45, 0x83, 0x7b, 0x89, 0xfa, 0x71, 0x66, 0x34, 0xa8, 0x48, 0xa8, 0x48, 0xa8, 0x48,
		0xa8, 0x48, 0xa8, 0x48, 0x45, 0x55, 0xe4, 0xed, 0xab, 0x8a, 0xfc, 0x47, 0x67, 0x10, 0x86, 0xcc,
		0xe7, 0x5b, 0xdb, 0x85, 0x9d, 0x9d, 0x57, 0xb6, 0xbc, 0x35, 0xfe, 0x95, 0x69, 0x5c, 0x8f, 0x16,
		0xfc, 0x2c, 0x79, 0xb2, 0xc3, 0x9e, 0x4c, 0x44, 0xc8, 0x08, 0xd8, 0xc4, 0xfa, 0x13, 0xa7, 0x29,
		0xdc, 0x43, 0x4f, 0xd8, 0x04, 0x1d, 0x8b, 0x3d, 0xf1, 0x23, 0xce, 0x3c, 0xd6, 0x63, 0x3c, 0x7c,
		0xb6, 0x02, 0xdf, 0xea, 0x3c, 0xc6, 0x15, 0x4c, 0xa5, 0x90, 0x38, 0x71, 0x79, 0x44, 0x09, 0x2c,
		0x8e, 0xea, 0x04, 0x4e, 0x0b, 0x41, 0x5b, 0xef, 0x0c, 0x6a, 0x99, 0xb9, 0xe6, 0xca, 0x5b, 0x8e,
		0x4f, 0xf2, 0xe9, 0x8a, 0x75, 0x91, 0xe6, 0x23, 0xcc, 0xd3, 0x41, 0x9a, 0x0f, 0xae, 0x30, 0x94,
		0x70, 0x59, 0x70, 0x85, 0x21, 0xcd, 0x28, 0xc3, 0x15, 0x06, 0xf8, 0x19, 0xf0, 0x33, 0xe0, 0x67,
		0xc0, 0xcf, 0x80, 0x9f, 0x91, 0xc0, 0xcf, 0xe0, 0x0a, 0xc3, 0xc0, 0x15, 0x06, 0x54, 0x24, 0x54,
		0x24, 0x54, 0x24, 0x54, 0x24, 0x54, 0x24, 0xae, 0x30, 0xf4, 0xf2, 0x96, 0x37, 0x85, 0x2f, 0xce,
		0x57, 0x9e, 0xef, 0x0c, 0x5d, 0x8c, 0x54, 0xdf, 0xac, 0xa5, 0x5d, 0x15, 0x29, 0xd7, 0x3e, 0xdb,
		0x77, 0x5a, 0xae, 0xf3, 0x94, 0x01, 0xe6, 0x33, 0xf7, 0xe1, 0xf1, 0x3e, 0x08, 0x23, 0xf1, 0xd9,
		0x5f, 0xaf, 0x8f, 0x56, 0x3c, 0xf3, 0xab, 0x8c, 0x54, 0x5f, 0x8d, 0x1c, 0x15, 0xa4, 0xfa, 0x2a,
		0x9c, 0xfb, 0x35, 0x39, 0xf3, 0x74, 0x37, 0xa7, 0xc9, 0x08, 0xc8, 0xff, 0x42, 0xe7, 0xc1, 0xcc,
		0xd9, 0x12, 0x74, 0x1e, 0x94, 0xe7, 0x10, 0x92, 0x5d, 0x9f, 0x4e, 0x20, 0xc5, 0xb2, 0x1d, 0x27,
		0x64, 0x51, 0x44, 0xcf, 0x12, 0xcf, 0x8d, 0x08, 0xa6, 0x58, 0x36, 0xc8, 0xc9, 0x03, 0x3b, 0x59,
		0xa0, 0x27, 0x1d, 0xfc, 0xa4, 0x83, 0xa0, 0x54, 0x30, 0xa4, 0xe3, 0xdd, 0x0c, 0x70, 0xc5, 0xab,
		0xd9, 0x64, 0x32, 0xb8, 0xe2, 0x9d, 0x9d, 0x11, 0x13, 0x57, 0x98, 0xc3, 0xe6, 0x4d, 0xbe, 0x3b,
		0x25, 0x89, 0x82, 0x9c, 0x13, 0x25, 0x2a, 0x0a, 0x94, 0xd0, 0xb0, 0x27, 0x63, 0x11, 0xa0, 0x03,
		0xa1, 0x03, 0xa1, 0x03, 0x95, 0x74, 0x14, 0x92, 0x01, 0x1c, 0x7a, 0x57, 0x61, 0xee, 0x68, 0x3a,
		0xd4, 0xce, 0x82, 0x24, 0xa7, 0x41, 0x9a, 0xf3, 0x20, 0x13, 0x40, 0xe5, 0x03, 0xa9, 0x6c, 0x40,
		0xcd, 0x0c, 0x58, 0x33, 0x03, 0xd8, 0x4c, 0x80, 0x96, 0x16, 0x70, 0x89, 0x81, 0x57, 0x9e, 0x13,
		0x32, 0x77, 0xde, 0xdc, 0xfe, 0xd7, 0x8a, 0x24, 0x7c, 0x9c, 0x31, 0x2a, 0x0f, 0x24, 0x8c, 0x75,
		0x69, 0x73, 0xce, 0x42, 0x9f, 0x24, 0x9d, 0x73, 0xe1, 0x80, 0x5b, 0x5b, 0xb7, 0x45, 0xeb, 0xb0,
		0xf5, 0xfd, 0xb6, 0x64, 0x1d, 0xb6, 0x46, 0x1f, 0x4b, 0xf1, 0xff, 0x46, 0x9f, 0xcb, 0xb7, 0x45,
		0xab, 0x32, 0xf9, 0x5c, 0xbd, 0x2d, 0x5a, 0xd5, 0xd6, 0xf6, 0xdd, 0xdd, 0xce, 0xf6, 0xb7, 0xdd,
		0x97, 0xd5, 0x7f, 0x71, 0xeb, 0xbf, 0x6f, 0xef, 0xee, 0xfa, 0xdf, 0xce, 0x5f, 0x86, 0x7f, 0x9e,
		0xbe, 0xb4, 0xfe, 0xbe, 0xfd, 0x4f, 0xfa, 0xd3, 0xd5, 0xfa, 0xa0, 0xe7, 0xd9, 0x25, 0x3c, 0xb7,
		0x66, 0x2f, 0x70, 0x98, 0x3c, 0x6b, 0x26, 0x1e, 0x0d, 0x76, 0x0c, 0xec, 0x18, 0xd8, 0x31, 0xb0,
		0x63, 0x60, 0xc7, 0xbc, 0xda, 0x31, 0x0e, 0xf3, 0xb9, 0xcb, 0x9f, 0x69, 0x89, 0xd5, 0x39, 0x33,
		0xa6, 0x2a, 0x61, 0xac, 0xc6, 0xf8, 0xd5, 0x3e, 0xda, 0x91, 0xc4, 0x63, 0x3e, 0x59, 0xd8, 0xcb,
		0xc6, 0x59, 0xfb, 0xec, 0xe2, 0xb8, 0x2e, 0xeb, 0x94, 0x7f, 0xb6, 0xbd, 0x01, 0x8b, 0xa4, 0xd9,
		0x6c, 0x06, 0x59, 0x69, 0x8e, 0x77, 0xaf, 0x6c, 0xfb, 0xb8, 0x7e, 0x7e, 0x5d, 0x37, 0xa5, 0x4d,
		0xe2, 0xe5, 0xd7, 0x8d, 0x59, 0xd9, 0xeb, 0xcb, 0xda, 0x95, 0xd4, 0xa5, 0x95, 0x32, 0x52, 0x4b,
		0x77, 0xed, 0xa3, 0xa5, 0x9d, 0x2f, 0x2d, 0xd8, 0x61, 0x4e, 0x9c, 0x25, 0x05, 0x3d, 0xc0, 0xfe,
		0x87, 0xfd, 0x0f, 0xfb, 0x1f, 0xf6, 0xbf, 0x9e, 0xf6, 0x3f, 0x78, 0x4c, 0x71, 0x03, 0x82, 0xc7,
		0xdc, 0x64, 0xfb, 0x86, 0x45, 0xdc, 0xbe, 0xf7, 0xdc, 0xe8, 0x91, 0xb0, 0xfb, 0xf5, 0x72, 0x1b,
		0x67, 0x7a, 0x74, 0xd8, 0x39, 0xb0, 0x73, 0x60, 0xe7, 0xc0, 0xce, 0x81, 0x9d, 0x93, 0x9c, 0x37,
		0xee, 0xf6, 0x18, 0x77, 0x3b, 0x5f, 0xa2, 0xbd, 0x8a, 0x44, 0x33, 0x47, 0x86, 0x95, 0x73, 0xe3,
		0xbb, 0x71, 0xe9, 0x5d, 0xd3, 0xb7, 0xfd, 0x20, 0x62, 0x9d, 0xc0, 0x77, 0xa4, 0x58, 0x72, 0x57,
		0x71, 0x85, 0x5c, 0x59, 0xb6, 0x95, 0x3c, 0x46, 0xcc, 0x3c, 0x73, 0x7d, 0x69, 0x68, 0x99, 0x0c,
		0x1a, 0xd3, 0xb7, 0xf4, 0xba, 0x6e, 0x6e, 0xdc, 0x93, 0xd0, 0xee, 0x70, 0x37, 0xf0, 0x8f, 0xdd,
		0x87, 0x91, 0x18, 0xc9, 0x9e, 0xc0, 0x39, 0x7b, 0xb0, 0xb9, 0xfb, 0x95, 0x4d, 0x0a, 0x21, 0xe7,
		0x91, 0xce, 0x35, 0xcf, 0xec, 0xa7, 0xec, 0x44, 0xaa, 0x74, 0x50, 0xa9, 0xec, 0xed, 0x57, 0x2a,
		0xc5, 0xfd, 0xdd, 0xfd, 0xe2, 0x61, 0xb5, 0x5a, 0xda, 0x93, 0x71, 0xfd, 0x02, 0x29, 0x93, 0xa0,
		0xa7, 0xe5, 0x8d, 0x02, 0xcf, 0xef, 0x47, 0x9e, 0xdf, 0x53, 0xdf, 0x0d, 0x59, 0x16, 0xcc, 0xf6,
		0x64, 0x64, 0x78, 0x7c, 0xf0, 0xf8, 0xe0, 0xf1, 0xc1, 0xe3, 0x83, 0xc7, 0x07, 0x8f, 0x0f, 0x1e,
		0x1f, 0x3c, 0x3e, 0xd8, 0xe2, 0xf0, 0xf8, 0xe0, 0xf1, 0xc1, 0xe3, 0xdb, 0x44, 0x8f, 0x4f, 0xab,
		0xd4, 0x51, 0xe2, 0xa2, 0xa3, 0xc9, 0x38, 0xd9, 0x95, 0x65, 0x4c, 0xaa, 0xf2, 0x25, 0x9f, 0x0a,
		0x94, 0xe9, 0xf7, 0x46, 0x66, 0x15, 0x1b, 0xcf, 0x27, 0x2f, 0x9a, 0x7c, 0xa2, 0xa8, 0x47, 0x4a,
		0x27, 0xe6, 0x6a, 0x17, 0x63, 0xfa, 0x9d, 0x3d, 0x4b, 0x88, 0xe9, 0x33, 0x4f, 0xdd, 0x88, 0xd7,
		0x38, 0x27, 0x2a, 0xfc, 0x74, 0xe6, 0xfa, 0x75, 0x8f, 0x0d, 0x3d, 0x47, 0x22, 0x95, 0x38, 0xb4,
		0x3b, 0xa6, 0x46, 0x90, 0x63, 0x08, 0x98, 0x17, 0xa1, 0xc3, 0x42, 0xe6, 0x7c, 0x1c, 0xee, 0x90,
		0x3f, 0xf0, 0x3c, 0xca, 0x21, 0x6e, 0x22, 0x16, 0x92, 0xe8, 0x74, 0x94, 0x93, 0x5e, 0x1f, 0xd1,
		0x73, 0x53, 0x4d, 0x7a, 0x1e, 0xc3, 0x51, 0x4d, 0x3a, 0x43, 0x61, 0x57, 0x41, 0xc8, 0xb5, 0xaf,
		0x24, 0x9d, 0xc8, 0x74, 0x9e, 0xca, 0x48, 0x8b, 0x2d, 0x14, 0x45, 0x52, 0x18, 0x0a, 0xe5, 0xa3,
		0x51, 0x3e, 0x1a, 0xe5, 0xa3, 0x85, 0xaa, 0x19, 0xe1, 0xe5, 0xa3, 0xef, 0x83, 0xa1, 0x5d, 0x69,
		0x85, 0xc1, 0x80, 0x33, 0xc2, 0x1a, 0xd2, 0xb3, 0xc3, 0x88, 0x2e, 0x53, 0xcb, 0xba, 0xf6, 0xc0,
		0xe3, 0x24, 0xc4, 0xbc, 0x19, 0xdb, 0xd9, 0xa6, 0xd2, 0x7d, 0xbe, 0x69, 0x2e, 0xa7, 0x51, 0x48,
		0x5b, 0x2a, 0x0c, 0x4b, 0x83, 0x63, 0x69, 0xb0, 0x2c, 0x05, 0x9e, 0xf5, 0xe0, 0x6e, 0xc8, 0x2e,
		0x7f, 0xa7, 0x00, 0x36, 0xf0, 0x98, 0xed, 0x53, 0x08, 0xfc, 0xc4, 0x8a, 0x2b, 0x6d, 0x40, 0x13,
		0xfa, 0xfb, 0x28, 0xb4, 0x46, 0xba, 0x8a, 0x50, 0x17, 0xbe, 0x8e, 0x01, 0x45, 0x08, 0x45, 0x08,
		0x45, 0x08, 0x45, 0x08, 0x45, 0x08, 0x45, 0xa8, 0x96, 0x22, 0xec, 0x04, 0x03, 0x9f, 0xb3, 0x30,
		0xa2, 0x53, 0x83, 0xc9, 0x08, 0x68, 0x2b, 0x04, 0x25, 0x00, 0x25, 0xb0, 0x41, 0x4a, 0x80, 0xac,
		0xad, 0xd0, 0x7d, 0x10, 0xf0, 0x88, 0x87, 0x76, 0xdf, 0xea, 0xb1, 0x28, 0xb2, 0x1f, 0x98, 0x84,
		0xc6, 0x42, 0x0b, 0xc6, 0x44, 0x6b, 0x21, 0xd9, 0x40, 0x27, 0x0f, 0xf0, 0x64, 0x01, 0x9f, 0x74,
		0x00, 0x94, 0x0e, 0x84, 0x52, 0x01, 0x91, 0x06, 0x18, 0x89, 0x00, 0x92, 0xde, 0x5a, 0x9e, 0x3b,
		0x2f, 0x03, 0xd7, 0xe7, 0xbb, 0x65, 0x09, 0x9d, 0x85, 0x28, 0x1b, 0x0b, 0xc9, 0x09, 0xcf, 0x97,
		0x90, 0xc1, 0x21, 0x33, 0x1c, 0x5f, 0x76, 0x18, 0x7e, 0x66, 0x81, 0xd1, 0xf2, 0x03, 0xa2, 0x25,
		0x84, 0xdb, 0x4b, 0x0d, 0xb3, 0x4f, 0x44, 0xa5, 0x52, 0x3e, 0xac, 0x1c, 0xee, 0xed, 0x97, 0x0f,
		0xab, 0x90, 0x19, 0x2d, 0x14, 0x14, 0xfd, 0xd3, 0x5b, 0x5a, 0x29, 0x56, 0xf6, 0xc4, 0x43, 0xdb,
		0x1a, 0xf8, 0x71, 0xc9, 0x28, 0x62, 0x15, 0x1b, 0xb2, 0x2e, 0x0b, 0x99, 0xdf, 0xc9, 0x85, 0x66,
		0x9a, 0xd8, 0x0b, 0x57, 0x27, 0x9f, 0xf6, 0xf7, 0xf7, 0x4a, 0xc6, 0xee, 0xce, 0xbe, 0xd1, 0xb7,
		0x1f, 0x98, 0x51, 0x2a, 0xe7, 0x3c, 0xb1, 0xf7, 0x75, 0x1b, 0x37, 0x29, 0xb7, 0x77, 0xd1, 0x3e,
		0x03, 0x03, 0xe5, 0x62, 0xa0, 0x16, 0x7d, 0x2b, 0x1f, 0x99, 0xe7, 0x05, 0x12, 0x69, 0x97, 0x37,
		0xe3, 0x81, 0x72, 0x01, 0xe5, 0x02, 0xca, 0x05, 0x94, 0x0b, 0x28, 0x17, 0x50, 0x2e, 0xa0, 0x5c,
		0x40, 0xb9, 0x80, 0x72, 0x81, 0xcc, 0xc0, 0xdd, 0x00, 0xe5, 0x92, 0x43, 0xca, 0xa5, 0xb2, 0x73,
		0xb8, 0x53, 0x1e, 0x3b, 0xe3, 0xc5, 0x03, 0xb0, 0x2e, 0x39, 0x66, 0x5d, 0xde, 0x6c, 0x35, 0x90,
		0x10, 0xc4, 0xcb, 0x9c, 0xdc, 0xfc, 0x6f, 0xe0, 0xfa, 0x56, 0x3f, 0x1c, 0xf8, 0x4c, 0x22, 0xfb,
		0xb2, 0x68, 0x50, 0x50, 0x30, 0xa0, 0x60, 0x40, 0xc1, 0x80, 0x82, 0x01, 0x05, 0x03, 0x0a, 0x06,
		0x14, 0x0c, 0x28, 0x18, 0x50, 0x30, 0x90, 0x19, 0x38, 0x1e, 0xa0, 0x60, 0x72, 0x49, 0xc1, 0x54,
		0x47, 0x5e, 0x79, 0xa5, 0x02, 0xfe, 0x25, 0xd7, 0xfc, 0xcb, 0xeb, 0x3e, 0x03, 0x03, 0x75, 0x27,
		0x5f, 0x50, 0x2c, 0x31, 0x93, 0x3a, 0x72, 0x71, 0x45, 0xb1, 0x02, 0x51, 0xb6, 0xa7, 0x91, 0x59,
		0x51, 0xb9, 0xb8, 0xb2, 0x6d, 0xfb, 0xd3, 0xe4, 0xb5, 0x36, 0x20, 0x25, 0xd8, 0x61, 0xb6, 0x63,
		0x71, 0xb7, 0x47, 0x59, 0x1b, 0x63, 0x6a, 0x0c, 0xd4, 0x86, 0x40, 0x5a, 0xf0, 0x7b, 0x4c, 0x14,
		0xa4, 0x05, 0xe7, 0x44, 0x05, 0xd2, 0xd7, 0x86, 0x18, 0xb8, 0x3e, 0x2f, 0xed, 0x11, 0x96, 0x86,
		0xd8, 0x23, 0x78, 0x34, 0x2d, 0xbf, 0x47, 0xe8, 0x02, 0xca, 0xe0, 0xf3, 0x5e, 0x3b, 0x7e, 0x10,
		0xd3, 0xf5, 0xb2, 0xb9, 0x18, 0x79, 0x1c, 0x0c, 0x65, 0x83, 0x40, 0x19, 0x3c, 0x5d, 0x22, 0x02,
		0x7b, 0xd5, 0xea, 0x6e, 0x15, 0x62, 0xa0, 0x94, 0x83, 0x28, 0xfe, 0xa9, 0xad, 0x4d, 0xb0, 0xb4,
		0x43, 0xab, 0x1f, 0xba, 0x41, 0xe8, 0xf2, 0x67, 0x42, 0x53, 0x7b, 0x6a, 0x10, 0xd8, 0xda, 0xb0,
		0xb5, 0x61, 0x6b, 0xc3, 0xd6, 0xa6, 0x81, 0x17, 0x8b, 0x0f, 0x47, 0xa3, 0xb3, 0xba, 0xf7, 0x61,
		0x75, 0x67, 0x64, 0x75, 0x17, 0x61, 0x6e, 0x6d, 0xba, 0xd5, 0x2d, 0xeb, 0x56, 0x1c, 0xa6, 0x37,
		0x4c, 0x6f, 0x09, 0xa6, 0x37, 0xf3, 0xed, 0x7b, 0x8f, 0x39, 0x74, 0x66, 0xf7, 0x64, 0x00, 0x94,
		0x7e, 0x86, 0xcb, 0x01, 0x97, 0x03, 0x2e, 0x07, 0x5c, 0x0e, 0x61, 0xf2, 0x8e, 0xd2, 0xcf, 0x42,
		0xde, 0x75, 0x54, 0x5a, 0x23, 0xbe, 0xc0, 0xff, 0x6a, 0x7b, 0x74, 0x9a, 0xf0, 0xcd, 0x38, 0x50,
		0x08, 0x50, 0x08, 0x50, 0x08, 0x50, 0x08, 0x02, 0xe5, 0xbd, 0xef, 0xf6, 0x12, 0x7c, 0xa1, 0x26,
		0xa1, 0x28, 0xda, 0x0a, 0xdf, 0xf8, 0x23, 0x4f, 0xd7, 0x8c, 0x58, 0x27, 0xf0, 0x1d, 0x92, 0xe0,
		0x29, 0x10, 0x5d, 0xef, 0x61, 0x39, 0x70, 0xbd, 0xbc, 0xf1, 0x44, 0x57, 0xb9, 0x0a, 0x86, 0x0b,
		0x0c, 0x97, 0xfe, 0xe6, 0x7d, 0x12, 0x99, 0x6b, 0xb9, 0x84, 0x34, 0xd7, 0xcc, 0x28, 0x30, 0xed,
		0x61, 0xda, 0xc3, 0xb4, 0x87, 0x69, 0xaf, 0x07, 0xbe, 0xcc, 0x10, 0x3e, 0x07, 0x1b, 0xa0, 0x11,
		0xa6, 0xaa, 0x79, 0xd0, 0xb3, 0x3e, 0x8b, 0x06, 0x83, 0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x80, 0x7e,
		0x00, 0xf5, 0x03, 0xea, 0x07, 0xd4, 0x0f, 0xa8, 0x1f, 0x50, 0x3f, 0xa0, 0x7e, 0x40, 0xfd, 0x88,
		0x37, 0xf4, 0x7b, 0xf6, 0x93, 0xdb, 0x1b, 0xf4, 0xac, 0x87, 0x30, 0x18, 0xf4, 0x09, 0x5b, 0xfb,
		0xbe, 0x19, 0x07, 0xe6, 0x3d, 0xcc, 0x7b, 0x98, 0xf7, 0x30, 0xef, 0x05, 0xca, 0x3b, 0x59, 0xe5,
		0x3e, 0xe4, 0x14, 0x64, 0x6d, 0x6f, 0x23, 0xa7, 0x60, 0xe3, 0xed, 0x6d, 0xe4, 0x14, 0xc0, 0xec,
		0xce, 0x93, 0xd9, 0x1d, 0x38, 0x8c, 0xd0, 0xd8, 0x1e, 0x3e, 0x1d, 0x26, 0x36, 0x4c, 0x6c, 0x98,
		0xd8, 0x30, 0xb1, 0x05, 0xca, 0xbb, 0xeb, 0x30, 0x9f, 0xbb, 0xfc, 0x39, 0x64, 0x5d, 0xca, 0x0b,
		0x56, 0x0a, 0xf2, 0xbc, 0x31, 0x9e, 0xfa, 0x47, 0x3b, 0x62, 0xf4, 0xcd, 0x10, 0x2e, 0x1b, 0x67,
		0xed, 0xb3, 0x8b, 0xe3, 0x3a, 0xd5, 0xa9, 0x8a, 0xad, 0xa2, 0x88, 0xb4, 0x8e, 0x2a, 0xb1, 0x5d,
		0xf7, 0x76, 0xa5, 0xda, 0xc7, 0xf5, 0xf3, 0xeb, 0xba, 0xa9, 0xa3, 0x21, 0x2c, 0x7b, 0xa5, 0xae,
		0x2f, 0x6b, 0x57, 0xa4, 0x4b, 0x45, 0xf2, 0xe4, 0x96, 0xea, 0x68, 0xfc, 0x41, 0xad, 0x27, 0x09,
		0x12, 0x58, 0xaa, 0x2a, 0xa2, 0x59, 0x57, 0x0f, 0x15, 0x88, 0xac, 0x19, 0x16, 0x0b, 0x15, 0x73,
		0x88, 0xd3, 0x0b, 0x5c, 0xba, 0x27, 0xa4, 0x14, 0xd5, 0xa1, 0x31, 0x2a, 0x38, 0x7e, 0xcb, 0x3c,
		0x75, 0x23, 0x5e, 0xe3, 0x5c, 0x4c, 0x59, 0x52, 0xf3, 0xcc, 0xf5, 0xeb, 0x1e, 0x1b, 0x5a, 0x97,
		0x82, 0x08, 0x01, 0xf3, 0xcc, 0x7e, 0x9a, 0x7a, 0x62, 0xe9, 0xa0, 0x52, 0xd9, 0xdb, 0xaf, 0x54,
		0x8a, 0xfb, 0xbb, 0xfb, 0xc5, 0xc3, 0x6a, 0xb5, 0xb4, 0x27, 0xc2, 0x06, 0x32, 0x2f, 0x42, 0x87,
		0x85, 0xcc, 0xf9, 0x38, 0x5c, 0x5d, 0x7f, 0xe0, 0x79, 0x22, 0x1f, 0x79, 0x13, 0xc5, 0x35, 0x5f,
		0xd3, 0x33, 0x16, 0x69, 0x85, 0x47, 0x30, 0xbe, 0x65, 0x87, 0x6b, 0x02, 0x10, 0x2d, 0x13, 0x24,
		0x4b, 0x87, 0x61, 0xeb, 0x23, 0xcf, 0x7a, 0xbf, 0xb9, 0xa6, 0xb8, 0x89, 0x12, 0x33, 0xd9, 0xe2,
		0x95, 0x42, 0xa8, 0x24, 0x0a, 0xd3, 0x7a, 0x22, 0xb4, 0xba, 0x00, 0xac, 0xf6, 0x1b, 0x2b, 0x8a,
		0x8a, 0x88, 0x5e, 0x1a, 0xe6, 0x5f, 0x8f, 0xcc, 0x5f, 0xdb, 0xad, 0x4b, 0x21, 0x96, 0x13, 0x27,
		0x63, 0xa7, 0x30, 0xda, 0xe3, 0xc2, 0xc8, 0xd5, 0xef, 0xba, 0x2c, 0x34, 0xfe, 0x61, 0xfc, 0x12,
		0x74, 0xac, 0x7e, 0x30, 0x0a, 0x9a, 0x8b, 0x8e, 0x2e, 0x1b, 0x67, 0xbf, 0xa4, 0x91, 0x2b, 0x41,
		0xdc, 0xd6, 0x34, 0x87, 0x15, 0x2f, 0x5b, 0x4a, 0x45, 0x22, 0x9a, 0xa9, 0x9a, 0x61, 0xa4, 0xde,
		0xbd, 0xae, 0x1f, 0x32, 0xd0, 0xa3, 0xe6, 0x31, 0x8b, 0x3a, 0xa1, 0xdb, 0x17, 0xa2, 0x44, 0x13,
		0x51, 0x6a, 0xf8, 0x1d, 0x6f, 0xe0, 0x30, 0xe3, 0xb2, 0x71, 0x66, 0x8c, 0x5e, 0x7e, 0x10, 0xc6,
		0x00, 0x6a, 0x0c, 0x77, 0xcb, 0xe0, 0x8f, 0xcc, 0x98, 0x80, 0x96, 0xe1, 0x46, 0x46, 0xd0, 0x35,
		0x86, 0xcb, 0x70, 0xe7, 0x5f, 0x36, 0xce, 0xd2, 0x6e, 0xa5, 0x40, 0xf6, 0x74, 0x5a, 0xca, 0x9c,
		0xa9, 0x65, 0x12, 0xa0, 0xac, 0x29, 0xa8, 0xd1, 0x19, 0xa1, 0x4b, 0xb3, 0x03, 0x7a, 0x29, 0xf5,
		0x0f, 0xb4, 0x6c, 0xc4, 0xaa, 0x9a, 0x20, 0xa5, 0xb1, 0x20, 0xc5, 0x48, 0x58, 0x43, 0x82, 0xa9,
		0x2d, 0x82, 0xd5, 0x84, 0xee, 0xfd, 0x9b, 0xbe, 0xc2, 0xf6, 0x99, 0x23, 0x72, 0x61, 0xd5, 0x5d,
		0x4b, 0x40, 0x6f, 0x1d, 0x6e, 0x22, 0xe1, 0xbd, 0x57, 0xfc, 0xb5, 0xe4, 0xea, 0xac, 0xbc, 0xe2,
		0x2f, 0xa6, 0xb8, 0x1a, 0x9b, 0xbe, 0xfa, 0xf2, 0x19, 0x1f, 0xca, 0xd8, 0x3a, 0x82, 0x94, 0x12,
		0xa0, 0x85, 0x5d, 0x5f, 0x09, 0xc3, 0xe0, 0xb7, 0xd7, 0x4f, 0x93, 0xb5, 0x51, 0xcc, 0x44, 0x3d,
		0x76, 0xd7, 0x63, 0x44, 0x4c, 0x67, 0x54, 0x4b, 0xce, 0xea, 0x31, 0x1e, 0xba, 0x9d, 0xf5, 0x37,
		0xee, 0xb5, 0xa9, 0xcb, 0xcc, 0xf3, 0xd6, 0x5c, 0xf4, 0x74, 0x77, 0xd2, 0xa9, 0xef, 0x9e, 0x45,
		0xdc, 0x31, 0x8b, 0x39, 0x50, 0x94, 0xb6, 0xb5, 0x90, 0xfb, 0x61, 0x5a, 0xeb, 0x3a, 0xcd, 0x81,
		0xcb, 0x86, 0x4e, 0x48, 0x7d, 0x57, 0x2b, 0x2e, 0xec, 0x51, 0x40, 0x78, 0xa3, 0xa0, 0x30, 0x46,
		0x31, 0x4c, 0xad, 0xb0, 0x6b, 0x0e, 0xd1, 0xe1, 0x87, 0x64, 0xa1, 0x65, 0xe2, 0x43, 0xc8, 0x5e,
		0xc4, 0x50, 0xdc, 0xe2, 0xb7, 0x42, 0x74, 0x18, 0xa0, 0x4e, 0x7b, 0x92, 0x91, 0x4b, 0xd6, 0x92,
		0x45, 0xce, 0xad, 0x61, 0x47, 0xa6, 0x2d, 0xcd, 0x2b, 0xa8, 0x04, 0x2f, 0x0c, 0x11, 0x18, 0x22,
		0x1b, 0x6f, 0x88, 0xa4, 0x2f, 0xb5, 0x9a, 0xb2, 0xa4, 0xaa, 0x1c, 0xc8, 0x79, 0x25, 0x70, 0xd3,
		0xa3, 0xce, 0xd4, 0xb3, 0x00, 0x3c, 0x00, 0x1e, 0x00, 0x4f, 0x8a, 0x53, 0x94, 0x36, 0x2a, 0x55,
		0x44, 0xf4, 0xa9, 0xd8, 0x28, 0xd3, 0xd7, 0x9b, 0x94, 0xf3, 0xeb, 0x66, 0xed, 0xf4, 0xb4, 0x7d,
		0x79, 0x75, 0xd1, 0xbc, 0xf8, 0x74, 0x71, 0xda, 0x6e, 0xfe, 0x79, 0x99, 0x36, 0xb4, 0x54, 0x64,
		0x08, 0xa9, 0x20, 0x1b, 0x7f, 0xf2, 0xba, 0x1f, 0x7f, 0xbb, 0x34, 0x55, 0xf0, 0x60, 0x04, 0xbf,
		0xd6, 0x71, 0xe3, 0xaa, 0xfe, 0xa9, 0x79, 0xfa, 0x67, 0xfb, 0xd3, 0xc5, 0xf9, 0x79, 0xfd, 0x53,
		0xb3, 0x7e, 0x9c, 0xc7, 0xb7, 0xfc, 0xed, 0xaa, 0xf1, 0xb1, 0x91, 0xc7, 0x17, 0x6b, 0xfc, 0x76,
		0x96, 0x4b, 0xb1, 0x6c, 0x5c, 0x37, 0xae, 0xf3, 0xf8, 0x5e, 0xa7, 0x17, 0x9f, 0x6a, 0xa7, 0xb9,
		0x7d, 0xb1, 0x76, 0xed, 0xb7, 0xdf, 0xae, 0xea, 0xbf, 0xd5, 0x9a, 0xf5, 0x3c, 0xbe, 0xe2, 0xc5,
		0xf5, 0xe5, 0x49, 0x5e, 0xdf, 0x6b, 0x37, 0x8f, 0x2f, 0x76, 0xf9, 0xa9, 0x9e, 0x4b, 0x70, 0x4c,
		0x1d, 0x09, 0xa1, 0xe6, 0x6b, 0x5d, 0x37, 0x6b, 0xcd, 0xc6, 0x27, 0x33, 0x63, 0x4a, 0xb2, 0xa5,
		0x7c, 0x94, 0xc8, 0x3a, 0xfc, 0xc0, 0x38, 0x3a, 0x22, 0x25, 0x33, 0x10, 0x3f, 0x65, 0x4d, 0xcf,
		0x4a, 0x44, 0xdf, 0x2f, 0xf3, 0xb8, 0x7e, 0x52, 0xbb, 0x39, 0x6d, 0xae, 0x27, 0x23, 0x2d, 0xb0,
		0x19, 0x60, 0x33, 0xc0, 0x66, 0xac, 0x25, 0x37, 0x11, 0x0f, 0x5d, 0xff, 0x41, 0x04, 0x91, 0x71,
		0x90, 0x8b, 0xa8, 0x6a, 0xe5, 0x63, 0xe9, 0xd6, 0x4d, 0x47, 0x23, 0x8d, 0xa6, 0x5b, 0x23, 0xbb,
		0x8c, 0x2e, 0x9e, 0xce, 0xed, 0x58, 0x61, 0x30, 0xe0, 0x2c, 0x4a, 0x17, 0x57, 0xf7, 0xfa, 0x18,
		0xc9, 0xf1, 0x75, 0xc5, 0x6c, 0xe2, 0xeb, 0xbc, 0xa0, 0x63, 0x85, 0x08, 0xaf, 0x5b, 0xa4, 0x1d,
		0xc6, 0x4b, 0x93, 0x97, 0xe8, 0xba, 0x91, 0x74, 0xa7, 0xb7, 0x1a, 0xc7, 0xcf, 0x49, 0x67, 0x7d,
		0x95, 0x72, 0x62, 0x7d, 0xad, 0x7d, 0x7c, 0x60, 0x7c, 0xad, 0x7b, 0xbc, 0xb2, 0xb1, 0xbd, 0xd6,
		0x3d, 0x76, 0xc9, 0x03, 0x3a, 0x13, 0xc9, 0x15, 0x74, 0x5f, 0x33, 0x7e, 0x5e, 0xda, 0xac, 0xe8,
		0x54, 0xc7, 0x51, 0xd8, 0xb1, 0x14, 0x79, 0x3c, 0x49, 0x8e, 0xa9, 0xe8, 0xe3, 0x4a, 0x76, 0x6c,
		0xc9, 0x8e, 0x2f, 0xd5, 0x31, 0x16, 0x43, 0xf3, 0xa4, 0x4d, 0xf0, 0x4e, 0x7b, 0xbc, 0x93, 0x07,
		0x39, 0x02, 0xb3, 0xdc, 0xe6, 0x24, 0x59, 0x6c, 0x6e, 0x98, 0x21, 0xbe, 0xe2, 0x9a, 0xf0, 0x4a,
		0x6b, 0x14, 0x15, 0xd6, 0x48, 0x80, 0x81, 0x0a, 0x20, 0xc8, 0x81, 0x82, 0x1c, 0x30, 0xa8, 0x81,
		0x43, 0x0c, 0x80, 0x08, 0x02, 0x12, 0x71, 0x5c, 0x0d, 0x1d, 0x77, 0x23, 0x98, 0xcb, 0x11, 0xbf,
		0x0f, 0x22, 0x02, 0xc3, 0xfb, 0x62, 0x71, 0xe3, 0xb5, 0xbf, 0x8b, 0x50, 0x25, 0x0d, 0xf4, 0x05,
		0xfa, 0x02, 0x7d, 0x75, 0x42, 0x5f, 0xb7, 0x6f, 0x09, 0x17, 0x80, 0x04, 0x80, 0x0f, 0x05, 0x3e,
		0x73, 0xbc, 0x04, 0x62, 0x6b, 0x37, 0x52, 0x96, 0xfd, 0xec, 0x7f, 0xad, 0x58, 0x64, 0x65, 0x62,
		0x5f, 0x75, 0x1c, 0xc1, 0xb3, 0x2f, 0x6d, 0xce, 0x59, 0xe8, 0x93, 0x55, 0xca, 0x34, 0xb7, 0x6e,
		0x8b, 0xd6, 0x61, 0xeb, 0xfb, 0x6d, 0xc9, 0x3a, 0x6c, 0x8d, 0x3e, 0x96, 0xe2, 0xff, 0x7d, 0x2b,
		0xbf, 0x7c, 0x2f, 0xdf, 0x16, 0xad, 0xca, 0xf8, 0xa7, 0xe5, 0xea, 0x6d, 0xd1, 0xaa, 0xb6, 0xb6,
		0xb7, 0xee, 0xee, 0x76, 0x56, 0xfd, 0x9d, 0xed, 0x6f, 0xbb, 0x2f, 0x85, 0xe4, 0x97, 0xca, 0xe3,
		0xbf, 0xdd, 0xbd, 0x2d, 0x5a, 0xe5, 0xd6, 0xb6, 0xf8, 0x3a, 0x90, 0x2d, 0x8a, 0x7d, 0xb8, 0xb8,
		0x6e, 0xfc, 0x41, 0xbe, 0x19, 0xff, 0xb3, 0x95, 0xf9, 0x76, 0x6c, 0xff, 0x97, 0xa9, 0x7a, 0x41,
		0xf4, 0x5f, 0x35, 0xc2, 0x9d, 0x3d, 0xe0, 0xce, 0x12, 0xdc, 0x89, 0x05, 0xd0, 0xb6, 0xba, 0x35,
		0xeb, 0xa4, 0xf5, 0xad, 0xf4, 0x6b, 0xe5, 0xe5, 0x68, 0xfb, 0xdb, 0xfe, 0xcb, 0xdb, 0x1f, 0x7e,
		0x5f, 0xf4, 0xcf, 0x4a, 0xbf, 0xee, 0xbf, 0x1c, 0x2d, 0xf9, 0x9b, 0xbd, 0x97, 0xa3, 0x77, 0x3e,
		0xa3, 0xfa, 0xb2, 0x35, 0xf7, 0x4f, 0x87, 0x3f, 0x2f, 0x2f, 0xfb, 0x85, 0xca, 0x92, 0x5f, 0xd8,
		0x5d, 0xf6, 0x0b, 0xbb, 0x4b, 0x7e, 0x61, 0xe9, 0x94, 0xca, 0x4b, 0x7e, 0xa1, 0xfa, 0xf2, 0x7d,
		0xee, 0xdf, 0x6f, 0x2d, 0xfe, 0xa7, 0x7b, 0x2f, 0xdb, 0xdf, 0x97, 0xfd, 0xdd, 0xfe, 0xcb, 0xf7,
		0xa3, 0xed, 0xed, 0xc2, 0x56, 0x69, 0x88, 0x0a, 0x07, 0x23, 0x98, 0x28, 0xb5, 0xe6, 0xd0, 0x23,
		0xfe, 0x13, 0xb8, 0x3c, 0x8f, 0xcb, 0x90, 0x56, 0x65, 0xa5, 0x55, 0x7d, 0xad, 0xf5, 0x41, 0xad,
		0x79, 0xa9, 0x41, 0xa5, 0x44, 0x8c, 0x5b, 0xdc, 0x7e, 0x10, 0xcf, 0xa5, 0x4c, 0x1e, 0x0c, 0x32,
		0x05, 0x64, 0x0a, 0xc8, 0x94, 0x0d, 0x24, 0x53, 0xb8, 0xfd, 0x20, 0xba, 0x47, 0x36, 0xb8, 0x14,
		0x74, 0x29, 0x94, 0xb3, 0xda, 0xc9, 0xc4, 0xd1, 0xa5, 0x30, 0x95, 0xcc, 0xa2, 0x4b, 0xe1, 0x8a,
		0x22, 0x80, 0x2e, 0x85, 0x0a, 0x19, 0xfa, 0xb4, 0x4f, 0xdd, 0x54, 0x52, 0xee, 0x91, 0x3d, 0x59,
		0xc2, 0xef, 0xb9, 0x73, 0xc2, 0xc9, 0x4d, 0xbb, 0xe1, 0x6f, 0xbd, 0xfb, 0xf2, 0xcb, 0xf6, 0xdf,
		0xb6, 0xff, 0x09, 0x37, 0x5b, 0xba, 0x9b, 0x8d, 0xee, 0x24, 0xab, 0x66, 0xb3, 0x24, 0x89, 0x16,
		0xe3, 0xef, 0x0a, 0x42, 0x02, 0x5a, 0x0d, 0x19, 0x39, 0x2f, 0x6e, 0xe7, 0x2a, 0x9e, 0xf9, 0xf8,
		0x9b, 0xf6, 0x98, 0x29, 0xc8, 0xaa, 0x9a, 0x79, 0x8a, 0xe0, 0x73, 0x9f, 0x3d, 0x71, 0xeb, 0x31,
		0xe8, 0x47, 0xe2, 0xe2, 0x92, 0x5f, 0x1f, 0x89, 0xd0, 0x64, 0xa9, 0xb4, 0x0d, 0x42, 0x93, 0x11,
		0x9a, 0xfc, 0xae, 0xc3, 0x2e, 0x9e, 0xc8, 0x4d, 0x9e, 0x2c, 0x96, 0xc9, 0x2d, 0x81, 0xc9, 0x15,
		0xf4, 0x70, 0x30, 0xb9, 0x92, 0x21, 0x43, 0xac, 0xa9, 0x2b, 0x8a, 0xc9, 0x15, 0x05, 0x25, 0xc9,
		0x03, 0x05, 0x25, 0x35, 0x2d, 0x3d, 0x0c, 0xc2, 0x6c, 0x42, 0x42, 0x78, 0x21, 0x83, 0x19, 0x4a,
		0xb8, 0x91, 0x02, 0x3b, 0xd4, 0xf0, 0x23, 0x0d, 0x86, 0xa4, 0xc1, 0x91, 0x2c, 0x58, 0xa2, 0x61,
		0xac, 0x44, 0xf7, 0x9a, 0x17, 0x0d, 0x57, 0xc9, 0x83, 0x5d, 0xdf, 0x61, 0x4f, 0xf4, 0x0d, 0xda,
		0x47, 0xc3, 0x10, 0x49, 0x88, 0xd8, 0xdb, 0x6e, 0x69, 0x60, 0x26, 0x03, 0xd4, 0xa4, 0x82, 0x9b,
		0x2c, 0x90, 0x93, 0x0e, 0x76, 0xd2, 0x41, 0x4f, 0x36, 0xf8, 0xd1, 0x80, 0x20, 0x11, 0x18, 0x26,
		0x8b, 0x23, 0xfc, 0x36, 0x7e, 0xe9, 0xa9, 0x21, 0x23, 0xe0, 0xe7, 0x0c, 0xb1, 0x03, 0x4d, 0xae,
		0x63, 0x08, 0xf6, 0xd4, 0x4c, 0xd9, 0xec, 0xea, 0xdd, 0xbb, 0x99, 0xaa, 0x09, 0x16, 0xb4, 0x11,
		0xb4, 0x11, 0xb4, 0x11, 0xb4, 0x51, 0x86, 0xda, 0x88, 0x2c, 0xa6, 0xe9, 0x2d, 0x86, 0xed, 0x13,
		0x0e, 0x41, 0x1b, 0xe3, 0x34, 0xf9, 0xa2, 0x3d, 0xf2, 0x86, 0xac, 0x98, 0xa7, 0x64, 0x30, 0x49,
		0xb1, 0x4f, 0xc9, 0x78, 0xb2, 0xe3, 0x5e, 0x5e, 0x65, 0x5d, 0x56, 0xfc, 0x0b, 0x31, 0x2c, 0xcc,
		0x8a, 0x8a, 0x84, 0xd8, 0xa8, 0x39, 0x51, 0x91, 0x15, 0x23, 0xb5, 0x89, 0x32, 0xf3, 0x41, 0xcf,
		0xa7, 0xb7, 0x36, 0xd8, 0xc9, 0x10, 0x7e, 0xf5, 0xb7, 0x54, 0x4d, 0x0b, 0xbe, 0x0a, 0x84, 0xa3,
		0x01, 0x47, 0x03, 0x8e, 0x06, 0x1c, 0x0d, 0x99, 0x8e, 0x86, 0x2f, 0xae, 0xbc, 0xda, 0x8f, 0x20,
		0x4c, 0x64, 0x86, 0xca, 0xb2, 0xe5, 0xd2, 0xde, 0xcf, 0x98, 0x2a, 0xbb, 0x62, 0x3b, 0x4e, 0xc8,
		0xa2, 0xc8, 0x94, 0x60, 0xb2, 0x4a, 0xd8, 0x21, 0xb9, 0x3b, 0x25, 0x6f, 0xc7, 0x16, 0xec, 0xdc,
		0xd7, 0x8a, 0xc4, 0xbd, 0x9b, 0xdb, 0xc3, 0x03, 0x89, 0x63, 0x52, 0x07, 0x7f, 0x2f, 0x1d, 0x58,
		0x56, 0x45, 0x12, 0x53, 0xda, 0x6b, 0xb5, 0x64, 0x6e, 0x9b, 0x8c, 0xfa, 0x04, 0x4b, 0x47, 0x97,
		0x57, 0x4f, 0x86, 0x22, 0x01, 0x5f, 0xae, 0xb7, 0x95, 0x01, 0x7f, 0x91, 0x1d, 0x6c, 0xee, 0x01,
		0x36, 0xa9, 0x61, 0x13, 0x15, 0x43, 0x32, 0xaa, 0x18, 0x02, 0x45, 0x42, 0xa6, 0x48, 0x20, 0xce,
		0xf2, 0xc5, 0x39, 0x7f, 0x8a, 0xf5, 0x83, 0xde, 0xef, 0x41, 0x6c, 0x18, 0x48, 0xf4, 0x7c, 0xbd,
		0xa0, 0x63, 0x7b, 0x96, 0xc3, 0xba, 0xae, 0xcf, 0x1c, 0x8b, 0x98, 0x5e, 0x5d, 0x68, 0x0a, 0x48,
		0xb8, 0x42, 0x11, 0xdb, 0xd3, 0x7c, 0xe5, 0x35, 0x1e, 0x75, 0xbb, 0x3d, 0xae, 0x9f, 0x34, 0xce,
		0xeb, 0xc7, 0xed, 0xf3, 0xfa, 0x1f, 0xcd, 0xf6, 0xbf, 0x2e, 0x2e, 0x25, 0x99, 0x5d, 0x22, 0x9b,
		0xa4, 0xab, 0x67, 0xd0, 0xce, 0xac, 0xf3, 0xf1, 0xd5, 0xc5, 0xa5, 0x3c, 0xa4, 0x7c, 0xf9, 0x35,
		0xef, 0xeb, 0x39, 0x92, 0xdb, 0xd3, 0xc6, 0xf9, 0xef, 0x12, 0x57, 0xf5, 0x43, 0x3e, 0xb4, 0x1c,
		0xae, 0x31, 0x69, 0xe7, 0x4b, 0x71, 0x8d, 0xd9, 0x0f, 0x59, 0x97, 0x85, 0xcc, 0xa7, 0xcc, 0x25,
		0x99, 0x2e, 0xf4, 0x3f, 0x1e, 0x0b, 0x57, 0x99, 0x8b, 0xbd, 0x1d, 0x5c, 0x65, 0xae, 0xb9, 0xf1,
		0xb8, 0xca, 0xd4, 0x01, 0x6d, 0x11, 0x33, 0xf9, 0x6e, 0x0c, 0x43, 0xcc, 0xe4, 0x3b, 0x5e, 0x04,
		0x31, 0x93, 0x24, 0xb2, 0x8e, 0x98, 0x49, 0x41, 0xa2, 0x82, 0x98, 0x49, 0x38, 0x1b, 0x70, 0x36,
		0x12, 0x21, 0x09, 0x59, 0x67, 0x10, 0x46, 0x12, 0x3c, 0x8d, 0xc9, 0x40, 0x44, 0xe6, 0xc6, 0x31,
		0xeb, 0xda, 0x03, 0x8f, 0x93, 0x6a, 0x50, 0x33, 0x3e, 0x46, 0x34, 0x06, 0x5e, 0x0b, 0xee, 0x17,
		0xdc, 0x2f, 0xb8, 0x5f, 0x70, 0xbf, 0xb4, 0x73, 0xbf, 0xee, 0x83, 0xc0, 0x63, 0xb6, 0x94, 0x58,
		0xd2, 0x92, 0x2e, 0x8a, 0x5a, 0xe9, 0x82, 0x23, 0x82, 0x0b, 0x69, 0xce, 0x3d, 0x3f, 0x9b, 0xc2,
		0x9a, 0x49, 0x45, 0xc6, 0xe4, 0x53, 0x81, 0xa4, 0xae, 0x92, 0x91, 0x45, 0xed, 0xcd, 0x73, 0xf6,
		0xc4, 0xff, 0x15, 0xf4, 0xa3, 0xc9, 0x07, 0x21, 0xc5, 0x38, 0xe9, 0xa4, 0x56, 0xa0, 0xc4, 0x9a,
		0xcc, 0xb7, 0xef, 0x3d, 0x66, 0xdd, 0x77, 0x1d, 0xba, 0x02, 0x5c, 0x53, 0x63, 0xa0, 0x08, 0x97,
		0x8c, 0x22, 0x5c, 0xe2, 0x57, 0xda, 0x40, 0x05, 0x2e, 0x01, 0x36, 0xd4, 0x70, 0x5f, 0x50, 0x7e,
		0x4b, 0xcc, 0x83, 0x89, 0xaa, 0x06, 0xce, 0x1d, 0x27, 0x32, 0x2d, 0x47, 0x08, 0x60, 0xb9, 0xf5,
		0x1f, 0x69, 0x80, 0x0d, 0xce, 0xa3, 0x96, 0xc0, 0xa7, 0xa7, 0xe7, 0x48, 0x05, 0x88, 0x6f, 0x2c,
		0x3a, 0x87, 0x5e, 0x8a, 0x67, 0xcd, 0x3b, 0x87, 0x5a, 0x86, 0x69, 0xa9, 0x36, 0x69, 0x90, 0x29,
		0x13, 0x3a, 0xe5, 0x43, 0xa8, 0x6c, 0x28, 0xcd, 0x0c, 0x52, 0x33, 0x83, 0xd6, 0x4c, 0x20, 0x96,
		0x16, 0x6a, 0x89, 0x21, 0x57, 0x1e, 0x69, 0x97, 0x01, 0x79, 0x27, 0x89, 0xc4, 0xa3, 0x17, 0x00,
		0xbd, 0xb4, 0x38, 0x31, 0xc9, 0xa7, 0x1e, 0xd9, 0xf7, 0xca, 0xe1, 0x14, 0x48, 0x3d, 0x22, 0x35,
		0xf8, 0xbf, 0x7a, 0xfc, 0xb6, 0x1f, 0xbb, 0x0e, 0x09, 0x13, 0x48, 0x27, 0xf2, 0x2f, 0x24, 0x64,
		0xac, 0xcd, 0x25, 0x5c, 0x60, 0x8f, 0x86, 0xd1, 0xdc, 0xcd, 0x2e, 0xc3, 0xcd, 0x86, 0x9b, 0x0d,
		0x37, 0x1b, 0x6e, 0x36, 0xdc, 0x6c, 0xb8, 0xd9, 0x70, 0xb3, 0xe1, 0x66, 0xc3, 0xcd, 0x86, 0x9b,
		0x0d, 0x37, 0x1b, 0x6e, 0xf6, 0x1a, 0x6e, 0x36, 0xa5, 0x43, 0xa4, 0x9a, 0x97, 0x7d, 0x1d, 0xbf,
		0x2b, 0xc2, 0xcf, 0xd4, 0x3f, 0x32, 0x2a, 0x1e, 0x95, 0x5c, 0x86, 0xa0, 0x25, 0x87, 0x63, 0x13,
		0xa2, 0xd0, 0x68, 0x7a, 0xa9, 0x91, 0xf6, 0x50, 0x23, 0x72, 0x94, 0xd0, 0x00, 0x32, 0x2b, 0x5f,
		0x07, 0x0d, 0x20, 0xf3, 0xa9, 0x10, 0xc9, 0xdc, 0x91, 0xd7, 0xea, 0x4a, 0xcc, 0xee, 0x86, 0xac,
		0x4b, 0x21, 0xf3, 0x13, 0x77, 0x83, 0x20, 0x37, 0xda, 0xbc, 0x1c, 0xeb, 0xf0, 0x9d, 0x9d, 0xf1,
		0x95, 0x4e, 0x61, 0x84, 0x93, 0x1b, 0xa1, 0x6f, 0x38, 0x0b, 0xbb, 0x76, 0x87, 0x59, 0xc3, 0x7d,
		0x23, 0xd4, 0x3b, 0xd3, 0xc3, 0x20, 0xf6, 0x59, 0x86, 0xfe, 0x71, 0xbb, 0xd0, 0x3d, 0x0a, 0xea,
		0x1e, 0xb7, 0x8b, 0xc8, 0x67, 0x41, 0x0f, 0x46, 0xe4, 0x73, 0x86, 0x30, 0x26, 0x03, 0xce, 0xa4,
		0xc1, 0x9a, 0x2c, 0x78, 0x93, 0x0e, 0x73, 0xd2, 0xe1, 0x4e, 0x26, 0xec, 0xd1, 0x31, 0x5b, 0x86,
		0xce, 0x17, 0xb2, 0x89, 0xb1, 0x25, 0xef, 0x4a, 0xf6, 0x75, 0x48, 0x5c, 0xca, 0xaa, 0x06, 0x9e,
		0xd2, 0x41, 0x54, 0x36, 0x98, 0x66, 0x06, 0xaa, 0x99, 0x81, 0x6b, 0x16, 0x20, 0x4b, 0x0b, 0xb6,
		0xc4, 0xa0, 0x4b, 0xcf, 0x81, 0x64, 0xc0, 0x89, 0xc8, 0xe4, 0x48, 0x96, 0x72, 0x26, 0x85, 0x58,
		0xec, 0x8e, 0x12, 0x05, 0x10, 0xbd, 0xfd, 0xc1, 0xf8, 0xfb, 0xf8, 0x02, 0x41, 0xd7, 0xab, 0x62,
		0xca, 0xbb, 0xc7, 0xc1, 0x7d, 0x06, 0xfa, 0x7a, 0x66, 0x54, 0xa8, 0x6c, 0xa8, 0x6c, 0xa8, 0x6c,
		0xa8, 0x6c, 0xa8, 0x6c, 0xa8, 0xec, 0xf8, 0x07, 0xb7, 0xaf, 0x2a, 0xfb, 0x1f, 0x9d, 0x41, 0x18,
		0x32, 0x9f, 0x6f, 0x6d, 0x17, 0x76, 0x76, 0x0a, 0xc9, 0xbf, 0x68, 0x8d, 0x7f, 0x65, 0x5a, 0x8f,
		0x44, 0x0b, 0x7e, 0x96, 0x3c, 0x59, 0xf8, 0x75, 0x8a, 0x44, 0xed, 0xaf, 0x15, 0xbb, 0x50, 0x7f,
		0xe2, 0xb4, 0xcd, 0x2f, 0xe4, 0x11, 0x63, 0x41, 0xc7, 0x62, 0x4f, 0xfc, 0x88, 0x33, 0x8f, 0xf5,
		0x18, 0x0f, 0x9f, 0xad, 0xc0, 0xb7, 0x3a, 0x8f, 0x71, 0xfd, 0x62, 0xa9, 0x64, 0x59, 0x5c, 0x8d,
		0x51, 0x22, 0x5b, 0xa6, 0x1b, 0x51, 0xd6, 0x42, 0xcc, 0xa3, 0x98, 0x40, 0xae, 0x99, 0x5b, 0xd2,
		0x4d, 0xc8, 0x2e, 0x6c, 0x4c, 0x5e, 0xf8, 0x8a, 0x75, 0x91, 0x60, 0x88, 0x04, 0xc3, 0x15, 0xbc,
		0xbc, 0x32, 0x6e, 0xb3, 0x94, 0xf1, 0xe6, 0x70, 0x9b, 0xb5, 0xb9, 0xf6, 0x26, 0x6e, 0xb3, 0x40,
		0x8d, 0x81, 0x1a, 0x03, 0x35, 0x06, 0x6a, 0x0c, 0xd4, 0xd8, 0x06, 0x50, 0x63, 0xb8, 0xcd, 0xfa,
		0xb1, 0x07, 0x83, 0xdb, 0x2c, 0xa8, 0x6c, 0xa8, 0x6c, 0xa8, 0x6c, 0xa8, 0x6c, 0xa8, 0x6c, 0x45,
		0x54, 0x36, 0x6e, 0xb3, 0xf4, 0x65, 0x17, 0x36, 0xfc, 0x0a, 0x20, 0xff, 0x95, 0x0f, 0x66, 0x6e,
		0x00, 0x50, 0xfc, 0x40, 0x97, 0x83, 0xa3, 0xe8, 0x81, 0xc9, 0x65, 0xfd, 0x83, 0xe9, 0x23, 0xb2,
		0x09, 0x29, 0xa9, 0x34, 0xb7, 0x60, 0xa4, 0xb7, 0x5f, 0xe4, 0x29, 0xa8, 0x65, 0x94, 0x40, 0x90,
		0xea, 0xd9, 0xa1, 0x04, 0x42, 0x3e, 0xd5, 0x22, 0x59, 0x2a, 0x2a, 0x4d, 0xdd, 0x96, 0xb9, 0x33,
		0x45, 0x51, 0xbf, 0x45, 0x12, 0xb5, 0x85, 0x16, 0xae, 0xaa, 0xd2, 0x57, 0x68, 0xe1, 0xba, 0xd9,
		0x4e, 0xb6, 0xbc, 0x16, 0xae, 0x11, 0x0f, 0x5d, 0xff, 0x41, 0x46, 0x07, 0xd7, 0x83, 0x0d, 0x0e,
		0x23, 0xeb, 0x31, 0x1e, 0xba, 0x1d, 0x7a, 0x65, 0x34, 0x1e, 0x07, 0xda, 0x08, 0xda, 0x08, 0xda,
		0x08, 0xda, 0x48, 0x3b, 0x6d, 0x34, 0x70, 0x7d, 0xbe, 0x5b, 0x96, 0xa0, 0x8d, 0x08, 0xaf, 0x43,
		0xcc, 0xab, 0x38, 0x1f, 0x82, 0x32, 0xe1, 0xc3, 0x20, 0x4f, 0xfa, 0x88, 0x5f, 0xe4, 0xcc, 0xf5,
		0xe5, 0x5d, 0xd4, 0x7e, 0xb6, 0xbd, 0x01, 0xa3, 0xbf, 0x5d, 0x4f, 0xc6, 0x3b, 0x09, 0xed, 0x0e,
		0x77, 0x03, 0xff, 0xd8, 0x7d, 0x70, 0xe3, 0xfc, 0x1c, 0x59, 0x03, 0x9f, 0xb3, 0x07, 0x9b, 0xbb,
		0x5f, 0xd9, 0x24, 0x8d, 0x85, 0xfe, 0x76, 0x56, 0xc2, 0xd5, 0xdf, 0x99, 0xfd, 0x24, 0x5f, 0x54,
		0x2a, 0xe5, 0xc3, 0xca, 0xe1, 0xde, 0x7e, 0xf9, 0xb0, 0x0a, 0x99, 0xd1, 0x42, 0x41, 0xd1, 0x3f,
		0xbd, 0xb5, 0xc1, 0x4e, 0xc6, 0xe4, 0x02, 0x86, 0xde, 0xcd, 0x48, 0x46, 0x82, 0xa3, 0x01, 0x47,
		0x03, 0x8e, 0x06, 0x1c, 0x0d, 0xfd, 0x1c, 0x0d, 0xdf, 0x0d, 0x7c, 0x19, 0xac, 0xd7, 0x21, 0xe1,
		0x18, 0xe3, 0xe5, 0xd2, 0xde, 0xcf, 0x48, 0xae, 0x52, 0xfa, 0x96, 0xed, 0x38, 0x21, 0x8b, 0x22,
		0x99, 0x91, 0x71, 0x87, 0x12, 0xc6, 0x92, 0xb2, 0x53, 0xf2, 0x76, 0x6c, 0xc1, 0xce, 0x7d, 0xad,
		0x48, 0xdc, 0xbb, 0xb9, 0x3d, 0x3c, 0x90, 0x38, 0xe6, 0xa5, 0xcd, 0x39, 0x0b, 0x7d, 0x69, 0xdb,
		0x99, 0x0c, 0xbc, 0x75, 0x5b, 0xb4, 0x0e, 0x5b, 0xdf, 0x6f, 0x4b, 0xd6, 0x61, 0x6b, 0xf4, 0xb1,
		0x14, 0xff, 0xef, 0x5b, 0xf9, 0xe5, 0x7b, 0xf9, 0xb6, 0x68, 0x55, 0xc6, 0x3f, 0x2d, 0x57, 0x6f,
		0x8b, 0x56, 0xb5, 0xb5, 0xbd, 0x75, 0x77, 0xb7, 0xb3, 0xea, 0xef, 0x6c, 0x7f, 0xdb, 0x7d, 0x31,
		0xa5, 0xbd, 0x56, 0x4b, 0xe6, 0xb6, 0x5d, 0x5c, 0x37, 0xfe, 0xc8, 0x6c, 0xef, 0xfe, 0x67, 0x4b,
		0xd6, 0xee, 0x6d, 0xff, 0x97, 0xc4, 0xfd, 0x93, 0x32, 0xd2, 0xcb, 0xaf, 0x39, 0x86, 0xcd, 0x3d,
		0xc0, 0x26, 0x35, 0x6c, 0xc6, 0xa7, 0xc8, 0xb6, 0xba, 0x35, 0xeb, 0xa4, 0xf5, 0xad, 0xf4, 0x6b,
		0xe5, 0xe5, 0x68, 0xfb, 0xdb, 0xfe, 0xcb, 0xdb, 0x1f, 0x7e, 0x5f, 0xf4, 0xcf, 0x4a, 0xbf, 0xee,
		0xbf, 0x1c, 0x2d, 0xf9, 0x9b, 0xbd, 0x97, 0xa3, 0x77, 0x3e, 0xa3, 0xfa, 0xb2, 0x35, 0xf7, 0x4f,
		0x87, 0x3f, 0x2f, 0x2f, 0xfb, 0x85, 0xca, 0x92, 0x5f, 0xd8, 0x5d, 0xf6, 0x0b, 0xbb, 0x4b, 0x7e,
		0x61, 0xe9, 0x94, 0xca, 0x4b, 0x7e, 0xa1, 0xfa, 0xf2, 0x7d, 0xee, 0xdf, 0x6f, 0x2d, 0xfe, 0xa7,
		0x7b, 0x2f, 0xdb, 0xdf, 0x97, 0xfd, 0xdd, 0xfe, 0xcb, 0xf7, 0xa3, 0xed, 0x6d, 0x28, 0x12, 0x32,
		0x45, 0x02, 0x71, 0x96, 0x2f, 0xce, 0xf9, 0x53, 0xac, 0x1f, 0xf4, 0x7e, 0x0f, 0x62, 0xc3, 0x40,
		0x66, 0x42, 0x58, 0xd0, 0xb1, 0x3d, 0xcb, 0x61, 0x5d, 0xd7, 0x67, 0x8e, 0x45, 0x4c, 0xaf, 0x2e,
		0x34, 0x05, 0x24, 0x5c, 0xa1, 0x98, 0x0d, 0x87, 0xf9, 0xdc, 0xe5, 0xcf, 0x1f, 0xed, 0x48, 0x62,
		0x06, 0xe8, 0x64, 0x8d, 0x4f, 0x2f, 0x3e, 0xd5, 0x4e, 0xdb, 0xc7, 0xf5, 0x93, 0xc6, 0x79, 0xfd,
		0xb8, 0x7d, 0x5e, 0xff, 0xa3, 0xd9, 0xfe, 0xd7, 0xc5, 0xa5, 0xac, 0x74, 0xd0, 0xf8, 0xce, 0x2a,
		0x92, 0xaa, 0x2f, 0xbe, 0xc9, 0xd5, 0x4c, 0x93, 0x75, 0x3e, 0xbe, 0xba, 0xb8, 0x94, 0x87, 0x94,
		0x2f, 0xbf, 0xe6, 0x7d, 0x3d, 0x47, 0x72, 0x7b, 0xda, 0x38, 0xff, 0x5d, 0xe2, 0xaa, 0x7e, 0xc8,
		0x87, 0x96, 0xc3, 0x35, 0x26, 0xed, 0x7c, 0x29, 0xae, 0x31, 0xfb, 0x21, 0xeb, 0xb2, 0x90, 0xf9,
		0x1d, 0x09, 0x75, 0xf7, 0xa6, 0xc6, 0xc2, 0x55, 0xe6, 0x62, 0x6f, 0x07, 0x57, 0x99, 0x6b, 0x6e,
		0x3c, 0xae, 0x32, 0x75, 0x40, 0x5b, 0xc4, 0x4c, 0xbe, 0x1b, 0xc3, 0x10, 0x33, 0xf9, 0x8e, 0x17,
		0x41, 0xcc, 0x24, 0x89, 0xac, 0x23, 0x66, 0x52, 0x90, 0xa8, 0x20, 0x66, 0x12, 0xce, 0x06, 0x9c,
		0x8d, 0x44, 0x48, 0x42, 0xd6, 0x19, 0x84, 0x91, 0x04, 0x4f, 0x63, 0x32, 0x10, 0x55, 0xcd, 0x5f,
		0xd6, 0xb5, 0x07, 0x1e, 0x27, 0xd5, 0xa0, 0x66, 0x7c, 0x8c, 0x4c, 0xad, 0x1a, 0x16, 0xc0, 0xfd,
		0x82, 0xfb, 0x05, 0xf7, 0x0b, 0xee, 0x17, 0xdd, 0xa9, 0xb9, 0x0f, 0x02, 0x8f, 0xd9, 0x52, 0x62,
		0x49, 0x4b, 0xa8, 0xc3, 0x25, 0xe2, 0xdc, 0x6c, 0x4a, 0x1d, 0x2e, 0xaa, 0x52, 0x75, 0xd9, 0xd7,
		0xdf, 0x22, 0xa8, 0x4a, 0x27, 0xb0, 0xf0, 0xd6, 0x07, 0x85, 0xa4, 0x7e, 0xa8, 0x07, 0x45, 0x57,
		0xa9, 0x31, 0x4f, 0xdd, 0x88, 0xd7, 0x38, 0x17, 0x5b, 0xb7, 0xc7, 0x3c, 0x73, 0xfd, 0xba, 0xc7,
		0x86, 0x1a, 0x4d, 0xb0, 0x97, 0x38, 0x74, 0xb4, 0xa7, 0x9e, 0x5c, 0x3a, 0xa8, 0x54, 0xf6, 0xf6,
		0x2b, 0x95, 0xe2, 0xfe, 0xee, 0x7e, 0xf1, 0xb0, 0x5a, 0x2d, 0xed, 0x89, 0xbc, 0xfc, 0x36, 0x2f,
		0x42, 0x87, 0x85, 0xcc, 0xf9, 0x38, 0x5c, 0x76, 0x7f, 0xe0, 0x79, 0x14, 0x8f, 0xbe, 0x89, 0x58,
		0x28, 0xd4, 0xad, 0x15, 0x25, 0x6d, 0x44, 0xd8, 0xaa, 0x0c, 0xa6, 0x9a, 0x42, 0x8b, 0xea, 0x65,
		0x8b, 0xa2, 0x62, 0xf0, 0x33, 0x3d, 0xda, 0xa5, 0x7b, 0x42, 0x4a, 0xc9, 0x15, 0x2d, 0xb1, 0x59,
		0x4b, 0xaa, 0x00, 0x01, 0xcd, 0x4c, 0x30, 0xd3, 0x09, 0xe4, 0xfa, 0x62, 0x94, 0x42, 0x84, 0x26,
		0xbe, 0x65, 0x5a, 0xd1, 0x99, 0xb9, 0x90, 0x4e, 0xed, 0xab, 0x0a, 0x62, 0x3d, 0x84, 0xb1, 0x1b,
		0x22, 0x59, 0x0c, 0x12, 0xb6, 0x42, 0x34, 0x2b, 0x41, 0xc6, 0x3e, 0x90, 0xb1, 0x0c, 0x54, 0x6c,
		0x42, 0xb6, 0xe0, 0x2e, 0x8c, 0x05, 0x20, 0xa8, 0xdc, 0x2f, 0xb2, 0x32, 0x7f, 0x52, 0x79, 0x7f,
		0x67, 0x67, 0xdc, 0xa3, 0xb4, 0x30, 0x16, 0x3b, 0x0d, 0x21, 0x55, 0x4c, 0xb1, 0x61, 0xa1, 0xc5,
		0x85, 0x05, 0x15, 0x13, 0x16, 0x56, 0x3c, 0x18, 0x80, 0x0a, 0x40, 0xcd, 0x04, 0x50, 0x45, 0x15,
		0xeb, 0x35, 0x1d, 0x16, 0x75, 0x42, 0xb7, 0x2f, 0xd4, 0x53, 0x4c, 0x24, 0x79, 0xfa, 0xe1, 0xa2,
		0x68, 0x14, 0xa1, 0xf7, 0x48, 0xc2, 0xef, 0x8d, 0x28, 0xee, 0x89, 0x48, 0xef, 0x85, 0xa8, 0xee,
		0x81, 0xc8, 0xef, 0x7d, 0xc8, 0xef, 0x79, 0xa8, 0xef, 0x75, 0xd4, 0xa2, 0x27, 0x85, 0xdf, 0xd3,
		0xd0, 0x15, 0xb6, 0x15, 0x5c, 0xc8, 0x56, 0x00, 0x71, 0x22, 0x40, 0x4f, 0xf7, 0xc5, 0xe2, 0x86,
		0x58, 0x3f, 0x16, 0xe8, 0x0b, 0xf4, 0x05, 0xfa, 0x6a, 0x89, 0xbe, 0x6e, 0xdf, 0x12, 0x2e, 0x00,
		0x14, 0x15, 0x7b, 0x68, 0x2a, 0xf3, 0x10, 0xb6, 0x70, 0x89, 0x2b, 0xed, 0x90, 0x45, 0xb4, 0x50,
		0x56, 0x86, 0x20, 0xaf, 0x00, 0x21, 0xad, 0x40, 0x4e, 0x21, 0xf9, 0xa5, 0xf2, 0xf8, 0x6f, 0x77,
		0x6f, 0x8b, 0x56, 0xb9, 0x45, 0x50, 0xf0, 0xa0, 0x45, 0xb1, 0x0f, 0x32, 0x0a, 0x18, 0x48, 0xac,
		0x78, 0xb3, 0x74, 0x3b, 0x28, 0x32, 0xf6, 0x5b, 0x2a, 0xc7, 0xb6, 0xd0, 0xe2, 0xce, 0x1e, 0x70,
		0x67, 0x09, 0xee, 0xa0, 0x24, 0x47, 0x46, 0x25, 0x39, 0x0a, 0x5b, 0xa5, 0x21, 0x2a, 0x1c, 0x8c,
		0x60, 0xa2, 0xd4, 0x9a, 0x43, 0x8f, 0xf8, 0x4f, 0xe0, 0xf2, 0x3c, 0x2e, 0x43, 0x5a, 0x95, 0x95,
		0x56, 0xf5, 0xb5, 0xd6, 0x07, 0xb5, 0xe6, 0xa5, 0x06, 0x95, 0x12, 0x31, 0x6e, 0x71, 0xfb, 0x41,
		0x3c, 0x97, 0x32, 0x79, 0x30, 0xc8, 0x14, 0x90, 0x29, 0x20, 0x53, 0x36, 0x90, 0x4c, 0xe1, 0xf6,
		0x83, 0xc5, 0x87, 0x4f, 0x07, 0x97, 0x22, 0x74, 0x5d, 0xc9, 0x32, 0xe7, 0x09, 0x33, 0xe6, 0x89,
		0x33, 0xe5, 0x09, 0x13, 0x66, 0x64, 0x64, 0xc6, 0xcb, 0xca, 0x88, 0x97, 0x9e, 0xd5, 0x2c, 0x2f,
		0x9b, 0x99, 0x30, 0xf3, 0x5d, 0x4a, 0xc6, 0xbb, 0xf4, 0x4c, 0xf7, 0x3c, 0xcb, 0x82, 0x26, 0x09,
		0x67, 0x9b, 0x4a, 0xca, 0x3d, 0xb2, 0x27, 0x8b, 0xac, 0x81, 0x6b, 0x0e, 0xee, 0x02, 0x26, 0x6e,
		0xf8, 0x5b, 0xef, 0xbe, 0xfc, 0xb2, 0xfd, 0xb7, 0xed, 0x7f, 0xc2, 0xcd, 0x96, 0xee, 0x66, 0x23,
		0xd5, 0x23, 0x75, 0xaa, 0x87, 0xa8, 0xac, 0x4e, 0xe9, 0x69, 0x1e, 0x02, 0x92, 0x36, 0x53, 0x04,
		0x24, 0x7f, 0x90, 0x28, 0x71, 0x93, 0xa4, 0xcb, 0x54, 0x5e, 0xbb, 0x98, 0x2c, 0x4b, 0x71, 0x59,
		0x95, 0xa4, 0x59, 0x94, 0x02, 0xb3, 0x26, 0x05, 0x66, 0x49, 0xae, 0xbb, 0xfd, 0x82, 0x80, 0x26,
		0x1b, 0x80, 0x31, 0x53, 0x85, 0xee, 0x4b, 0x85, 0x94, 0xf5, 0xc0, 0x64, 0x75, 0x28, 0x58, 0xed,
		0x37, 0x56, 0x94, 0x1a, 0x93, 0x3d, 0xf1, 0xd0, 0xb6, 0x06, 0xc3, 0x57, 0xbf, 0xf7, 0xd6, 0x63,
		0x90, 0xcc, 0xbf, 0x1e, 0xd9, 0xfa, 0xb6, 0x54, 0x0a, 0x09, 0x9d, 0x18, 0xa2, 0x49, 0xda, 0x89,
		0x1b, 0x97, 0xf8, 0xee, 0xba, 0x2c, 0x34, 0xfe, 0x61, 0xfc, 0x12, 0x74, 0xac, 0x7e, 0xe0, 0xc5,
		0xdc, 0x55, 0x74, 0x74, 0xdd, 0xac, 0x35, 0x1b, 0x9f, 0x7e, 0x49, 0x23, 0x5f, 0x82, 0x98, 0xd6,
		0x69, 0x66, 0x35, 0x5e, 0xb9, 0x94, 0x86, 0x85, 0x68, 0x1e, 0x75, 0x86, 0x37, 0x5d, 0x65, 0x69,
		0x33, 0xc9, 0xd7, 0x39, 0x16, 0x18, 0xca, 0x9f, 0x08, 0x54, 0xc3, 0xef, 0x78, 0x03, 0x87, 0x19,
		0x23, 0x4c, 0x32, 0x62, 0x84, 0x32, 0xfa, 0x76, 0x68, 0xf7, 0x18, 0x67, 0x61, 0x64, 0x04, 0xbe,
		0xf7, 0x6c, 0x0c, 0xf7, 0xce, 0xe0, 0x8f, 0xec, 0xce, 0x9f, 0x20, 0x9a, 0xe1, 0x46, 0x46, 0xc4,
		0xb8, 0xc1, 0x03, 0x23, 0x35, 0x9a, 0x19, 0x82, 0xb9, 0xfd, 0x69, 0xa9, 0x13, 0x9b, 0xa1, 0x40,
		0x42, 0xe4, 0xcf, 0x08, 0xa1, 0xb0, 0xed, 0xd0, 0xcb, 0xfc, 0xfb, 0x40, 0xeb, 0x68, 0xad, 0xaa,
		0x29, 0x52, 0xda, 0x15, 0x92, 0xed, 0x89, 0x35, 0x04, 0x5b, 0x9a, 0x01, 0xb1, 0x9a, 0x1c, 0xbe,
		0x5f, 0x0e, 0xde, 0xf7, 0x2f, 0xdf, 0xb9, 0xef, 0x49, 0xed, 0x96, 0x57, 0xe0, 0x8f, 0x57, 0xe6,
		0x9d, 0xbf, 0xbd, 0x96, 0xff, 0xb0, 0xbe, 0xbf, 0x20, 0xd4, 0x3f, 0x48, 0xe1, 0x0f, 0xa4, 0xb0,
		0xff, 0xdf, 0xbb, 0x2f, 0x6b, 0x9e, 0x43, 0xf2, 0xf3, 0xb7, 0xc2, 0x89, 0xa3, 0x3c, 0x69, 0xef,
		0x3b, 0x5c, 0x3f, 0x3f, 0x2a, 0x3f, 0xfe, 0x17, 0x3f, 0xd9, 0xac, 0x55, 0x37, 0x89, 0x6a, 0x73,
		0xde, 0xb1, 0x27, 0x04, 0x7b, 0xf1, 0xe3, 0x2d, 0x58, 0xbe, 0xb0, 0x3f, 0x58, 0x54, 0x33, 0x46,
		0x75, 0xcb, 0x73, 0x7b, 0xa3, 0x4b, 0x8e, 0x1f, 0x2f, 0xe9, 0x6b, 0xdd, 0xd3, 0xe9, 0xdf, 0xfa,
		0xc9, 0x96, 0xbd, 0x2f, 0xcb, 0xfa, 0xdd, 0x11, 0x27, 0xab, 0x44, 0x92, 0x4c, 0x47, 0x88, 0xf8,
		0xae, 0xe5, 0xed, 0xbe, 0x67, 0xdf, 0x56, 0x34, 0x0e, 0xd7, 0x0e, 0xe8, 0x58, 0xdb, 0xbe, 0x7b,
		0x1b, 0x80, 0x31, 0x7a, 0x33, 0xe2, 0x83, 0xf7, 0xde, 0x1c, 0xe1, 0x69, 0xd1, 0x78, 0xff, 0x1a,
		0x2e, 0x90, 0xab, 0xf7, 0xae, 0xe2, 0x6a, 0x49, 0xfc, 0x2b, 0x07, 0x36, 0xad, 0x13, 0xb8, 0xb4,
		0x8e, 0xd8, 0xa5, 0xf5, 0x4d, 0x52, 0xc7, 0x15, 0xa5, 0x76, 0x37, 0xd6, 0x14, 0x4b, 0x1a, 0x23,
		0x6b, 0xd5, 0x94, 0x76, 0xd3, 0xee, 0xba, 0xab, 0xaf, 0xf9, 0x64, 0x9f, 0x87, 0xbf, 0xbc, 0xe2,
		0x62, 0xad, 0x17, 0xaf, 0xb7, 0x76, 0x5c, 0x5e, 0x9a, 0xf8, 0xbb, 0x34, 0xe2, 0x2c, 0xca, 0xe5,
		0x16, 0x16, 0x36, 0x27, 0xcc, 0xab, 0x4e, 0x29, 0xee, 0x72, 0x58, 0xc8, 0xb5, 0xa3, 0xd7, 0x04,
		0x94, 0xc6, 0x49, 0x53, 0x0a, 0x67, 0x41, 0xe9, 0x9b, 0xe1, 0x19, 0xa3, 0xf2, 0xef, 0x56, 0x80,
		0xe7, 0xce, 0xe4, 0x00, 0xae, 0x09, 0x15, 0xe3, 0xdf, 0x5f, 0x0f, 0x2d, 0x4a, 0x40, 0x0b, 0xa0,
		0x05, 0x1d, 0x5a, 0xac, 0x5b, 0x07, 0x66, 0x2d, 0xe5, 0x29, 0x40, 0x89, 0xa6, 0x54, 0xa6, 0xa9,
		0x8f, 0x89, 0x88, 0xe3, 0x22, 0xf2, 0xd8, 0x88, 0xe6, 0xb7, 0x85, 0xc7, 0xaa, 0xd3, 0xde, 0xa9,
		0xac, 0x7f, 0xac, 0x52, 0x12, 0xca, 0x6b, 0x4a, 0x4d, 0xea, 0xd0, 0xf2, 0xd7, 0x34, 0xce, 0x71,
		0x0b, 0xde, 0x74, 0x35, 0xec, 0x44, 0x74, 0x0d, 0x16, 0xdb, 0x0d, 0x38, 0x79, 0xc1, 0xda, 0xf1,
		0xf1, 0x55, 0xfd, 0xfa, 0xba, 0x7d, 0x52, 0x3b, 0x6b, 0x9c, 0xfe, 0x99, 0x56, 0x0a, 0x05, 0x76,
		0xed, 0x15, 0x9c, 0x14, 0xd4, 0xb8, 0xfc, 0x5c, 0x31, 0x55, 0xc8, 0x7b, 0x12, 0xff, 0x5e, 0x7b,
		0x79, 0x7c, 0xaf, 0xd3, 0x72, 0xbb, 0xde, 0xfc, 0x57, 0xfd, 0xea, 0xbc, 0xde, 0xcc, 0xe3, 0xeb,
		0x9d, 0x5d, 0x9e, 0x5e, 0x67, 0x5d, 0xdc, 0xae, 0xa5, 0xfc, 0xf5, 0xe0, 0x1a, 0xfb, 0x66, 0xda,
		0x9e, 0x1d, 0xf6, 0x2c, 0xfe, 0x18, 0xb2, 0xe8, 0x31, 0xf0, 0x1c, 0x01, 0xd6, 0xd3, 0x9b, 0x07,
		0xc2, 0x92, 0x82, 0x25, 0x05, 0x4b, 0x6a, 0x65, 0x99, 0x49, 0x9d, 0x3c, 0x26, 0x20, 0x49, 0x4c,
		0x50, 0x32, 0x98, 0x80, 0xd8, 0x16, 0x91, 0xc9, 0x5d, 0xa2, 0x93, 0xb8, 0xc8, 0x12, 0x74, 0xc4,
		0x27, 0xe2, 0x88, 0xc8, 0x43, 0x17, 0x99, 0x64, 0x45, 0x96, 0x4c, 0xa5, 0xd3, 0x9e, 0x64, 0x14,
		0xb3, 0xd4, 0x52, 0xd8, 0x28, 0xe9, 0xd9, 0x4f, 0x6e, 0x6f, 0xd0, 0x4b, 0x6f, 0x8c, 0x4c, 0x1e,
		0x04, 0x23, 0x04, 0x46, 0x08, 0x8c, 0x10, 0x18, 0x21, 0x30, 0x42, 0x60, 0x84, 0xc0, 0x08, 0x81,
		0x11, 0xf2, 0x9e, 0x45, 0xfe, 0xcb, 0x0e, 0x7d, 0xd7, 0x7f, 0xb0, 0x02, 0xdf, 0x7b, 0x4e, 0x6f,
		0x89, 0xcc, 0x3c, 0x6d, 0x4d, 0x60, 0x17, 0xd1, 0x85, 0x3b, 0x4d, 0x97, 0xed, 0x16, 0xcc, 0x28,
		0x98, 0x51, 0x30, 0xa3, 0x56, 0x96, 0x99, 0xf4, 0x3d, 0x9c, 0x53, 0xf6, 0x68, 0x56, 0x2d, 0x27,
		0x51, 0xad, 0x4c, 0x93, 0xe9, 0x18, 0xe2, 0xe9, 0x6f, 0x0a, 0x6b, 0x85, 0xc8, 0x18, 0x42, 0x43,
		0xae, 0xe3, 0x7c, 0x92, 0xd3, 0x78, 0x6a, 0x53, 0x9f, 0xdb, 0x63, 0x48, 0x54, 0x20, 0x0c, 0x69,
		0xbd, 0x76, 0x5a, 0xa9, 0xda, 0x67, 0xa5, 0x0e, 0x42, 0x2a, 0x23, 0x08, 0x09, 0x41, 0x48, 0x3f,
		0xb7, 0xb6, 0x10, 0x84, 0x04, 0x73, 0x0b, 0xe6, 0x96, 0x7e, 0xe6, 0x16, 0x82, 0x90, 0x56, 0xa7,
		0x3f, 0x10, 0x84, 0x24, 0xf7, 0xbd, 0x10, 0x84, 0xa4, 0xdf, 0xeb, 0x21, 0x08, 0x89, 0x8a, 0x6a,
		0x43, 0x10, 0x12, 0x2c, 0x29, 0x58, 0x52, 0xea, 0x59, 0x52, 0xb8, 0xff, 0x9b, 0x9e, 0x08, 0xee,
		0xff, 0x70, 0xff, 0x97, 0xd7, 0x3d, 0xc1, 0xfd, 0xdf, 0xdc, 0x22, 0xc7, 0xfc, 0xb0, 0xe7, 0x31,
		0x67, 0x52, 0x70, 0x28, 0xb5, 0x55, 0x32, 0xf7, 0x44, 0x98, 0x25, 0x30, 0x4b, 0x60, 0x96, 0xc0,
		0x2c, 0x81, 0x59, 0x02, 0xb3, 0x04, 0x66, 0x09, 0xcc, 0x92, 0xf7, 0x2c, 0x32, 0x62, 0xa3, 0x61,
		0x84, 0xc0, 0x08, 0x81, 0x11, 0x02, 0x23, 0x04, 0x46, 0x08, 0x8c, 0x10, 0x18, 0x21, 0x99, 0x18,
		0x21, 0xc9, 0xcd, 0x8a, 0xc5, 0x9e, 0x3a, 0x8c, 0x39, 0x4c, 0xc0, 0x9d, 0xcd, 0x82, 0x67, 0xc2,
		0x34, 0x81, 0x69, 0x02, 0xd3, 0x64, 0x65, 0x99, 0xd1, 0x31, 0xde, 0x18, 0x09, 0x1a, 0x93, 0x87,
		0x20, 0x41, 0x03, 0x80, 0x09, 0xc0, 0x04, 0x60, 0x8a, 0xfc, 0x8d, 0x9c, 0x26, 0x68, 0xac, 0xdb,
		0xac, 0x90, 0x3c, 0x3f, 0x63, 0x8d, 0x66, 0x84, 0x19, 0x77, 0x01, 0x79, 0x7f, 0xbc, 0x39, 0x3a,
		0x7f, 0xe4, 0xbc, 0xf3, 0xc7, 0xb2, 0xe3, 0x96, 0x49, 0xff, 0x8f, 0xc5, 0x07, 0x4c, 0x8d, 0x1e,
		0x20, 0x6b, 0xb4, 0xd6, 0x5b, 0xad, 0x95, 0xde, 0x1a, 0x95, 0xfe, 0x93, 0x32, 0xd5, 0xfc, 0xb9,
		0xcf, 0xc6, 0x9d, 0xdc, 0x7c, 0x77, 0xdc, 0xc8, 0xed, 0x74, 0xf7, 0xf3, 0xd5, 0xc9, 0x2f, 0x46,
		0x10, 0x1a, 0x3f, 0xfe, 0x67, 0xe5, 0xd3, 0xdd, 0x5f, 0x24, 0xb7, 0x0a, 0x58, 0xa3, 0x51, 0x9e,
		0xd8, 0x46, 0x01, 0xe2, 0x16, 0x8e, 0x24, 0xcf, 0x2e, 0x4d, 0x1b, 0xbc, 0xd7, 0x00, 0x6d, 0xfb,
		0x99, 0x85, 0xc6, 0xae, 0xf1, 0xf9, 0xea, 0x64, 0xf8, 0x2e, 0xa7, 0xe5, 0xc2, 0xe9, 0xae, 0x91,
		0x20, 0x81, 0xd1, 0xb1, 0x7d, 0xe3, 0xd1, 0xfe, 0xca, 0xc6, 0x0d, 0xd8, 0x46, 0x08, 0x70, 0xe7,
		0xdb, 0xfd, 0xbe, 0xe7, 0x32, 0x67, 0xc7, 0x68, 0x3e, 0xba, 0x91, 0xe1, 0x46, 0x86, 0x1f, 0x70,
		0x23, 0x1a, 0xf4, 0xfb, 0x41, 0xc8, 0x99, 0x63, 0x74, 0x83, 0xd0, 0xe0, 0x8f, 0xcc, 0x70, 0x46,
		0xce, 0x4f, 0xf2, 0xbc, 0x9d, 0x55, 0xb7, 0x33, 0x85, 0xd5, 0x2d, 0xae, 0xf9, 0x9d, 0x10, 0x13,
		0x7b, 0x46, 0xb0, 0x24, 0x2f, 0x7a, 0xb6, 0x46, 0xc7, 0x87, 0x74, 0xac, 0xa6, 0xda, 0x5d, 0x97,
		0x56, 0x68, 0x36, 0x44, 0xa6, 0x04, 0x29, 0x5a, 0x2f, 0x45, 0xec, 0x61, 0x28, 0xac, 0x71, 0x54,
		0x9a, 0xeb, 0x3f, 0xbc, 0xbf, 0xfb, 0xd2, 0xdb, 0x5f, 0xd4, 0xa3, 0x01, 0x53, 0x14, 0xe6, 0xb2,
		0xfb, 0x52, 0x14, 0x2a, 0xd3, 0x7a, 0x29, 0x0a, 0x1f, 0xee, 0xa3, 0xd5, 0x9b, 0x2e, 0x8d, 0x7e,
		0x2d, 0x1f, 0xed, 0x96, 0xde, 0x25, 0x64, 0x22, 0x0d, 0x28, 0x35, 0x7a, 0x2d, 0xbd, 0x47, 0x08,
		0x69, 0xfc, 0xd8, 0x95, 0x1b, 0x2d, 0x0d, 0xa5, 0x2d, 0x45, 0xe1, 0x82, 0xe1, 0x6f, 0x6f, 0x46,
		0xf3, 0x94, 0x95, 0x44, 0x59, 0x14, 0x87, 0xaa, 0x7e, 0xd1, 0x82, 0x55, 0x44, 0x5d, 0x0e, 0x6b,
		0xb7, 0x76, 0xc5, 0x82, 0x35, 0x7b, 0x09, 0xcd, 0x09, 0xcb, 0xda, 0x05, 0x53, 0x52, 0x1c, 0x0f,
		0x65, 0x6f, 0x21, 0xd6, 0x3a, 0x36, 0xb8, 0x82, 0x58, 0xe7, 0x58, 0x65, 0x73, 0xff, 0xb0, 0xee,
		0x71, 0x4b, 0x1e, 0xe0, 0xd8, 0xdc, 0xee, 0x7b, 0xb6, 0xcf, 0x62, 0xfa, 0x40, 0x5c, 0x7d, 0x80,
		0x37, 0xcf, 0x4d, 0xb9, 0x3f, 0xe9, 0x2e, 0x07, 0x85, 0x1d, 0x4f, 0x91, 0xc7, 0x54, 0xf8, 0x71,
		0x15, 0x7d, 0x6c, 0xc9, 0x8e, 0x2f, 0xd9, 0x31, 0xa6, 0x38, 0xce, 0xe9, 0x8e, 0x75, 0xca, 0xe3,
		0x9d, 0xbc, 0x50, 0x53, 0xc4, 0xd9, 0x7c, 0x63, 0x3b, 0x5a, 0x42, 0x8f, 0xe8, 0x8c, 0xf6, 0xac,
		0x08, 0x78, 0x56, 0xdd, 0x4f, 0x11, 0x60, 0x3e, 0xbf, 0x80, 0xc1, 0x35, 0x0f, 0xdf, 0xc3, 0x2b,
		0xac, 0xf4, 0xd4, 0x62, 0x52, 0x92, 0xe1, 0x57, 0x71, 0x0f, 0x2d, 0x89, 0x2b, 0xcf, 0x61, 0x88,
		0x09, 0xe7, 0x1c, 0xaf, 0x60, 0xc3, 0xe7, 0x62, 0x97, 0x2f, 0x7e, 0xc9, 0xb5, 0x8d, 0xad, 0x85,
		0x8f, 0x8c, 0x37, 0xe3, 0xc8, 0x28, 0x8a, 0x59, 0x3a, 0x6d, 0xe3, 0x36, 0x53, 0x6c, 0xba, 0xe9,
		0xf6, 0xbf, 0xee, 0x59, 0x23, 0xa0, 0x4f, 0x91, 0x70, 0x3a, 0x07, 0x38, 0xb3, 0x8f, 0x85, 0x3d,
		0x00, 0x7b, 0x00, 0xf6, 0x80, 0x42, 0xf6, 0xc0, 0xd4, 0xf1, 0x14, 0x69, 0x09, 0x1c, 0x08, 0x78,
		0xd6, 0xa5, 0xcd, 0x39, 0x0b, 0x7d, 0x21, 0xd5, 0xc1, 0xe2, 0x07, 0x6e, 0x6d, 0x1d, 0x7d, 0xbf,
		0x2d, 0x5a, 0x87, 0xb6, 0xd5, 0xfd, 0xff, 0xd9, 0x7b, 0xfb, 0xa7, 0xb6, 0x91, 0xac, 0x0d, 0xf4,
		0xf7, 0xfc, 0x15, 0x2a, 0xdf, 0xad, 0x1a, 0xd8, 0x37, 0xc2, 0xd8, 0x18, 0x08, 0x54, 0x6d, 0x6d,
		0x39, 0xe0, 0x64, 0xfc, 0x2e, 0x5f, 0x17, 0x9c, 0xec, 0xcc, 0x12, 0x8f, 0x4b, 0xd8, 0x0d, 0xe8,
		0x8e, 0x91, 0x78, 0x25, 0x39, 0x13, 0x36, 0xf8, 0x7f, 0xbf, 0x65, 0x49, 0x96, 0x3f, 0x85, 0xa5,
		0xee, 0xd3, 0x2d, 0xc9, 0x7e, 0x52, 0x53, 0x13, 0x70, 0xac, 0x96, 0xd4, 0x7d, 0xfa, 0xf4, 0x73,
		0x9e, 0xf3, 0x55, 0xd7, 0x3f, 0xb5, 0x7f, 0xee, 0xbe, 0xaf, 0x0d, 0xb7, 0x8f, 0xb7, 0xb7, 0xe6,
		0x3f, 0x3b, 0xde, 0xfe, 0xb9, 0xfb, 0x7e, 0x7f, 0xb8, 0xb5, 0xb5, 0xe4, 0x5f, 0xfe, 0xb9, 0x6c,
		0x8c, 0xed, 0xd7, 0xad, 0xad, 0xad, 0xea, 0xfe, 0xed, 0xae, 0xbe, 0xdf, 0x7e, 0xad, 0xde, 0xee,
		0xea, 0xb5, 0xf6, 0xe8, 0x3b, 0xed, 0xd7, 0xdb, 0xdd, 0x4a, 0xfb, 0x9f, 0xfe, 0x8f, 0xc1, 0xff,
		0xb7, 0xbf, 0x7d, 0xdb, 0xd9, 0xfe, 0xb9, 0x37, 0x4c, 0xf6, 0xe5, 0xed, 0xed, 0xad, 0x72, 0xf0,
		0x0c, 0xed, 0xed, 0xd7, 0xe0, 0xef, 0x9f, 0xd5, 0xe1, 0xf6, 0xeb, 0x56, 0xe5, 0x76, 0x57, 0xaf,
		0xb4, 0xc7, 0xff, 0x50, 0x19, 0x0d, 0xf2, 0x61, 0xf4, 0x75, 0xaa, 0x0d, 0xb9, 0xb5, 0x75, 0xfb,
		0xc7, 0x71, 0xfb, 0x7f, 0x8e, 0xb7, 0x7f, 0x1e, 0x0c, 0xc7, 0x3f, 0xfb, 0xff, 0xdf, 0x7e, 0xdd,
		0xda, 0xf9, 0xfb, 0xb7, 0x6f, 0x3b, 0x3b, 0x7f, 0xdf, 0x0e, 0x5e, 0x3a, 0xfc, 0xde, 0xdf, 0x83,
		0x7f, 0xfd, 0xe7, 0xf1, 0xf1, 0xc2, 0x47, 0xdb, 0x5b, 0xe5, 0x9d, 0xff, 0xd9, 0x16, 0xdf, 0x78,
		0xed, 0x4c, 0x37, 0x1e, 0x57, 0xdc, 0x51, 0x3c, 0x5a, 0xe1, 0x8d, 0x47, 0x8a, 0x1f, 0x91, 0x30,
		0x4e, 0x29, 0xf6, 0x26, 0xfc, 0xf1, 0x4b, 0xab, 0x87, 0x4c, 0x1d, 0xd7, 0x24, 0x6b, 0xa5, 0x39,
		0x02, 0x6b, 0x56, 0x8e, 0x99, 0x2a, 0xf0, 0x66, 0xd5, 0x1f, 0x42, 0x20, 0x1e, 0x05, 0xee, 0xec,
		0x94, 0x67, 0x8d, 0xc2, 0x30, 0xb8, 0xc4, 0x75, 0xbc, 0xe3, 0x11, 0x58, 0xff, 0x85, 0xd2, 0xce,
		0x21, 0x86, 0x25, 0xcb, 0xe0, 0x09, 0x47, 0x40, 0x4f, 0x66, 0x20, 0x65, 0x29, 0x58, 0x59, 0xbd,
		0x20, 0x64, 0xf7, 0x1e, 0x12, 0x2e, 0xad, 0x48, 0xa0, 0x50, 0x62, 0x61, 0xad, 0xf7, 0xfb, 0xf6,
		0x5f, 0x5a, 0xf3, 0xea, 0xfb, 0x81, 0x36, 0x36, 0x2b, 0x34, 0xcf, 0xd6, 0xee, 0x98, 0xe6, 0x3e,
		0xb3, 0xae, 0x79, 0x6f, 0xb2, 0x9e, 0x66, 0x5b, 0xfd, 0x17, 0x6d, 0x24, 0x05, 0x41, 0xa0, 0xca,
		0x78, 0x2a, 0xbf, 0x59, 0x0e, 0x33, 0xfa, 0xa6, 0xeb, 0x47, 0x71, 0x68, 0xf6, 0xbd, 0xff, 0xaf,
		0x37, 0xd7, 0x9f, 0x3f, 0x6a, 0xa6, 0xeb, 0x8f, 0xb8, 0x43, 0x2d, 0x35, 0x92, 0x84, 0x5d, 0x23,
		0x8d, 0x3b, 0xca, 0x5c, 0xf6, 0x17, 0xe4, 0x5f, 0xee, 0x1a, 0x93, 0x3e, 0xfb, 0xf0, 0x5d, 0xbe,
		0x46, 0x1a, 0x66, 0x8d, 0xb4, 0x32, 0x21, 0x2f, 0xfa, 0x76, 0xd7, 0xe8, 0xeb, 0x66, 0x8f, 0x8e,
		0xb7, 0x88, 0x46, 0x04, 0x65, 0x01, 0xca, 0x02, 0x94, 0x45, 0x8e, 0x28, 0x0b, 0x37, 0x60, 0xf4,
		0x29, 0xd9, 0x8a, 0x02, 0x6a, 0xbc, 0xa7, 0xe7, 0xbe, 0xab, 0xf7, 0x8d, 0x3b, 0xd6, 0xd7, 0xef,
		0xfa, 0x76, 0xf7, 0x4f, 0x42, 0xca, 0x76, 0x71, 0x68, 0xe8, 0x40, 0xe8, 0x40, 0xe8, 0xc0, 0x1c,
		0xe9, 0xc0, 0x3e, 0x33, 0xee, 0xc5, 0x7a, 0x4c, 0x2c, 0x28, 0xc1, 0x43, 0x1a, 0xca, 0xf6, 0x31,
		0xb4, 0x5f, 0xa7, 0xff, 0x1b, 0x29, 0x94, 0xf2, 0x43, 0xdf, 0xbe, 0x33, 0xfa, 0x65, 0x87, 0xb9,
		0xcc, 0xf9, 0xce, 0x7a, 0x33, 0x0a, 0x66, 0xe9, 0xa7, 0xe3, 0x6c, 0x97, 0x08, 0x89, 0x81, 0x01,
		0x04, 0x03, 0x08, 0x06, 0x50, 0x39, 0x03, 0x78, 0x7e, 0x75, 0x76, 0x03, 0x06, 0x30, 0x47, 0x0c,
		0x60, 0xb0, 0x20, 0x9b, 0xce, 0x00, 0x7a, 0x8f, 0x4c, 0x1b, 0xcd, 0x84, 0xe6, 0x1f, 0x19, 0x9a,
		0x7f, 0x64, 0x2c, 0x27, 0x89, 0xee, 0x6d, 0xc7, 0x67, 0x80, 0x5c, 0xcd, 0x7b, 0x34, 0x3c, 0xcd,
		0x70, 0xd8, 0x37, 0x6b, 0xe0, 0x9a, 0xd6, 0xc3, 0x64, 0x8c, 0x68, 0xae, 0xc1, 0x00, 0xe6, 0x89,
		0x01, 0x94, 0xb5, 0xc6, 0x60, 0x00, 0xf3, 0xc9, 0x00, 0x2a, 0x8d, 0xa1, 0x16, 0x2c, 0x34, 0x12,
		0x8d, 0x43, 0x9b, 0xe8, 0x39, 0x97, 0xd7, 0x58, 0xf6, 0x13, 0xd3, 0xfc, 0xff, 0x97, 0x85, 0x52,
		0x1c, 0x34, 0xd2, 0xac, 0xd0, 0x9b, 0xe0, 0x29, 0xaf, 0x83, 0x87, 0xec, 0xdc, 0x8c, 0x1e, 0xd2,
		0xff, 0x3f, 0x57, 0x7b, 0x58, 0xfe, 0xf5, 0xe7, 0xa9, 0xdd, 0x25, 0xcc, 0x15, 0x53, 0x71, 0xc4,
		0xeb, 0x56, 0xfb, 0x0a, 0x59, 0x27, 0xca, 0xf9, 0x8d, 0xa2, 0x56, 0xbd, 0x12, 0xe7, 0x2f, 0x28,
		0x78, 0x8b, 0x69, 0xbe, 0x82, 0x84, 0x6c, 0x50, 0xa3, 0xc0, 0xf8, 0xfa, 0x5e, 0x2f, 0xac, 0x01,
		0x6f, 0x05, 0x2b, 0x8d, 0x32, 0x61, 0xae, 0x0a, 0xd5, 0x05, 0xd5, 0xa5, 0x40, 0x75, 0x21, 0x61,
		0x4e, 0x25, 0xb2, 0xa0, 0xdc, 0xa6, 0xe4, 0xdb, 0x55, 0x96, 0x69, 0x0e, 0x4f, 0x8b, 0x86, 0x84,
		0xb9, 0x74, 0xa7, 0x27, 0x12, 0xe6, 0x04, 0x06, 0x45, 0xc2, 0x9c, 0xc0, 0x90, 0x48, 0x98, 0x13,
		0x5d, 0x74, 0x24, 0xcc, 0x01, 0x0f, 0x00, 0x0f, 0x6c, 0x1c, 0x1e, 0x40, 0xc2, 0x1c, 0x12, 0xe6,
		0x96, 0x4c, 0x14, 0x12, 0xe6, 0x66, 0x67, 0x04, 0xe1, 0x32, 0x08, 0x97, 0xe1, 0x1f, 0x13, 0x09,
		0x73, 0xf2, 0x60, 0xc9, 0x32, 0x78, 0x82, 0x84, 0x39, 0xe5, 0x76, 0xa2, 0x86, 0x84, 0x39, 0x85,
		0xc2, 0xae, 0x21, 0x61, 0x0e, 0x09, 0x73, 0xb2, 0x46, 0x41, 0xc2, 0x1c, 0x12, 0xe6, 0x40, 0x59,
		0x80, 0xb2, 0xc8, 0x2b, 0x65, 0x81, 0x84, 0x39, 0x24, 0xcc, 0x41, 0x07, 0x42, 0x07, 0x6e, 0xb2,
		0x0e, 0x44, 0xc2, 0x1c, 0x18, 0x40, 0x30, 0x80, 0x60, 0x00, 0x55, 0x30, 0x80, 0x48, 0x98, 0xcb,
		0x19, 0x03, 0x88, 0x84, 0x39, 0x24, 0xcc, 0x69, 0x48, 0x98, 0x43, 0xc2, 0x1c, 0x18, 0xc0, 0x89,
		0xf0, 0xb8, 0xe6, 0x7f, 0x09, 0xc3, 0x98, 0xfd, 0xd1, 0x60, 0xf5, 0xc2, 0xea, 0x85, 0xd5, 0x9b,
		0x23, 0xab, 0x77, 0x60, 0x5a, 0xde, 0x5e, 0x95, 0xd0, 0xe8, 0xa5, 0xb0, 0x79, 0xaf, 0x0d, 0xeb,
		0x81, 0xe5, 0x11, 0xdb, 0x9f, 0x9b, 0x12, 0x30, 0xd8, 0x57, 0xa3, 0x3f, 0x60, 0x34, 0x26, 0xeb,
		0xcc, 0xb8, 0x9f, 0x1c, 0xa3, 0x3b, 0x02, 0x2f, 0xa7, 0xe6, 0x83, 0x49, 0x65, 0x13, 0xcf, 0xca,
		0x10, 0x7b, 0x30, 0x3c, 0xf3, 0x3b, 0x23, 0x31, 0x31, 0x65, 0xc1, 0xe7, 0x73, 0xe3, 0x87, 0xbc,
		0x25, 0xab, 0x55, 0x8f, 0x6a, 0x47, 0x07, 0x87, 0xd5, 0xa3, 0x7d, 0xac, 0x1d, 0x00, 0x97, 0x30,
		0xe0, 0x1a, 0xb8, 0x8c, 0xd0, 0xdd, 0xea, 0x8f, 0x06, 0xc0, 0x05, 0xc0, 0x05, 0xc0, 0x05, 0xc0,
		0x05, 0xc0, 0x05, 0xc0, 0x05, 0xc0, 0x05, 0xc0, 0xb5, 0x86, 0x80, 0x0b, 0x25, 0xa1, 0xde, 0x2a,
		0x09, 0x25, 0x52, 0xc3, 0x43, 0x53, 0x54, 0x11, 0xea, 0xc6, 0x7f, 0x46, 0x55, 0xf5, 0x54, 0xa4,
		0x76, 0x39, 0xff, 0x17, 0x7b, 0x11, 0x08, 0x75, 0x14, 0x73, 0x89, 0x8b, 0xbb, 0xc0, 0xa5, 0xb8,
		0xbc, 0x09, 0x5c, 0xdc, 0x04, 0x2e, 0xed, 0xb4, 0x0b, 0x29, 0xb8, 0xd1, 0x95, 0x6d, 0xf0, 0x12,
		0x57, 0x79, 0x20, 0xd9, 0x5b, 0x3a, 0xdd, 0x66, 0x4e, 0xbe, 0x25, 0x93, 0x7d, 0x33, 0xe1, 0x5a,
		0xf3, 0xae, 0xb1, 0x8a, 0xb5, 0x4d, 0xb1, 0xac, 0x72, 0x97, 0x33, 0xd9, 0x4a, 0xae, 0x5e, 0x97,
		0x04, 0x6b, 0x52, 0x72, 0x9d, 0xfe, 0x5d, 0xf2, 0xa0, 0xcb, 0xa9, 0x02, 0x1c, 0xfd, 0xc4, 0x13,
		0x96, 0xb2, 0x2c, 0x55, 0x6a, 0xe6, 0x82, 0x87, 0xa1, 0xe0, 0x66, 0x22, 0x78, 0x19, 0x07, 0x61,
		0x66, 0x41, 0x98, 0x41, 0x10, 0x61, 0x0a, 0x68, 0x75, 0x40, 0xda, 0xb2, 0x4f, 0xbe, 0xb4, 0xa5,
		0x9f, 0xf1, 0x69, 0x59, 0x4d, 0x3b, 0xd9, 0x7c, 0x95, 0xd4, 0xb8, 0x49, 0x37, 0x11, 0x92, 0x4d,
		0x98, 0x54, 0x13, 0x25, 0xd1, 0xc8, 0x48, 0x33, 0x32, 0x92, 0x8c, 0x82, 0x14, 0x93, 0x8b, 0x59,
		0x79, 0x2b, 0x9f, 0x95, 0xba, 0x63, 0x09, 0x13, 0xac, 0x33, 0x28, 0x54, 0xb6, 0x96, 0xac, 0xd0,
		0x20, 0x6a, 0xa4, 0x4a, 0xe4, 0x9e, 0x51, 0x68, 0x50, 0x78, 0xbb, 0x45, 0x03, 0xa0, 0xd0, 0x60,
		0x46, 0xdb, 0x94, 0x7c, 0xbb, 0x52, 0x6f, 0x5b, 0x69, 0xdb, 0x57, 0xda, 0x36, 0x96, 0xb1, 0x9d,
		0x69, 0x38, 0x4d, 0x14, 0x1a, 0x4c, 0x3d, 0x16, 0x0a, 0x0d, 0xa2, 0xd0, 0x60, 0xfa, 0x21, 0x51,
		0x68, 0x50, 0x74, 0xd1, 0x67, 0x4a, 0x8e, 0xc9, 0x28, 0x33, 0x08, 0x2c, 0x00, 0x2c, 0x00, 0x2c,
		0x90, 0x27, 0x2c, 0x80, 0x22, 0x83, 0x28, 0x32, 0xb8, 0x64, 0xa2, 0x50, 0x64, 0x70, 0x76, 0x46,
		0x90, 0x78, 0x8a, 0xd2, 0x73, 0x2a, 0x8f, 0xae, 0xa5, 0x47, 0x18, 0x4a, 0xcf, 0xc5, 0x0b, 0x2b,
		0x4a, 0xcf, 0x2d, 0x0a, 0x3c, 0x4a, 0xcf, 0xa1, 0xf4, 0x1c, 0xd9, 0x28, 0x28, 0x3d, 0x87, 0xd2,
		0x73, 0x30, 0x64, 0x61, 0xc8, 0xe6, 0xd5, 0x90, 0x45, 0xe9, 0xb9, 0x65, 0xa5, 0xe7, 0xe4, 0x55,
		0x9e, 0x83, 0x06, 0x84, 0x06, 0x84, 0x06, 0xcc, 0x93, 0x06, 0x44, 0xe1, 0x39, 0xb0, 0x42, 0xd9,
		0xb2, 0x42, 0x28, 0x47, 0x96, 0x33, 0x56, 0x08, 0xe5, 0xc8, 0x78, 0x4a, 0x55, 0x9d, 0xa1, 0x1c,
		0x59, 0xe1, 0x58, 0x21, 0x59, 0x6b, 0x0c, 0x56, 0x28, 0x9f, 0xac, 0x10, 0x92, 0x35, 0x97, 0xe4,
		0xfb, 0xf4, 0xfd, 0x5c, 0xae, 0xfe, 0x5d, 0x59, 0x28, 0x10, 0x5a, 0x93, 0x9b, 0x0b, 0xd4, 0xf7,
		0x53, 0xbb, 0xfa, 0x77, 0x9d, 0xd0, 0x74, 0xcb, 0x71, 0xfb, 0x7b, 0x61, 0xfe, 0x90, 0x8a, 0x37,
		0x14, 0xb4, 0x96, 0x11, 0x9b, 0xae, 0xc4, 0x0a, 0x46, 0x6c, 0x3a, 0x9d, 0x75, 0x4b, 0x68, 0xd5,
		0x52, 0x58, 0xb3, 0xd3, 0x56, 0x2c, 0x89, 0x09, 0xaa, 0x46, 0x81, 0x05, 0x49, 0xfb, 0xc2, 0xda,
		0x4b, 0x24, 0xf7, 0x9f, 0x2c, 0xad, 0xa6, 0x0a, 0xd5, 0x05, 0xd5, 0xa5, 0x40, 0x75, 0x21, 0xad,
		0x46, 0x25, 0xb2, 0xa0, 0xdc, 0xa6, 0xe4, 0xdb, 0x55, 0x96, 0x69, 0x0e, 0xfe, 0x5d, 0x43, 0x5a,
		0x4d, 0xba, 0xd3, 0x13, 0x69, 0x35, 0x02, 0x83, 0x22, 0xad, 0x46, 0x60, 0x48, 0xa4, 0xd5, 0x88,
		0x2e, 0x3a, 0xd2, 0x6a, 0x80, 0x05, 0x80, 0x05, 0x36, 0x0a, 0x0b, 0x20, 0xad, 0x06, 0x69, 0x35,
		0x4b, 0x26, 0x0a, 0x69, 0x35, 0xb3, 0x33, 0x82, 0x00, 0x0a, 0xa4, 0xd5, 0xa8, 0x3c, 0xba, 0x96,
		0x1e, 0x61, 0x48, 0xab, 0x89, 0x17, 0x56, 0xa4, 0xd5, 0x2c, 0x0a, 0x3c, 0xd2, 0x6a, 0x90, 0x56,
		0x43, 0x36, 0x0a, 0xd2, 0x6a, 0x90, 0x56, 0x03, 0x43, 0x16, 0x86, 0x6c, 0x5e, 0x0d, 0x59, 0xa4,
		0xd5, 0x20, 0xad, 0x06, 0x1a, 0x10, 0x1a, 0x70, 0x73, 0x35, 0x20, 0xd2, 0x6a, 0xc0, 0x0a, 0x65,
		0xcb, 0x0a, 0x21, 0xad, 0x26, 0x67, 0xac, 0x10, 0xd2, 0x6a, 0x90, 0x56, 0xa3, 0x21, 0xad, 0x06,
		0x69, 0x35, 0x6b, 0xc7, 0x0a, 0x21, 0xad, 0xe6, 0xad, 0xb4, 0x9a, 0x1c, 0xf7, 0x40, 0x8b, 0xb2,
		0x6a, 0xd0, 0x03, 0x6d, 0x7c, 0x39, 0x7a, 0xa0, 0xad, 0x18, 0x02, 0x3d, 0xd0, 0xe6, 0x36, 0x78,
		0xbe, 0x7a, 0xa0, 0x8d, 0xb7, 0x34, 0x7a, 0xa0, 0x09, 0xae, 0x6d, 0x3e, 0x7a, 0xa0, 0xf5, 0xd5,
		0xf6, 0x40, 0xf3, 0x98, 0xfe, 0x6c, 0xf7, 0xcd, 0xae, 0xc9, 0x38, 0x3a, 0xa1, 0x4d, 0x5f, 0x2c,
		0xb9, 0x1f, 0x5a, 0x55, 0x55, 0x3f, 0xb4, 0x54, 0x27, 0xf7, 0x3a, 0x75, 0x44, 0x4b, 0x03, 0x07,
		0x32, 0xee, 0x89, 0x36, 0x96, 0xbb, 0x17, 0xfe, 0xc6, 0x68, 0x93, 0x21, 0x36, 0xa5, 0x3b, 0x1a,
		0x17, 0x24, 0xdd, 0x84, 0xfe, 0x68, 0x3c, 0x38, 0x38, 0xaf, 0x1d, 0xd2, 0x0c, 0xab, 0x67, 0xf6,
		0x8c, 0x91, 0x70, 0x1b, 0xde, 0xa3, 0x4b, 0xd0, 0x2a, 0x6d, 0x6e, 0x40, 0xf4, 0x4c, 0x13, 0xd8,
		0x4c, 0xd4, 0x5c, 0x53, 0x11, 0xd3, 0x3b, 0x79, 0x8d, 0x4e, 0xad, 0x78, 0x09, 0x9e, 0xb3, 0x7b,
		0x87, 0xce, 0x17, 0x3c, 0x37, 0x2e, 0x8d, 0x27, 0xb8, 0xb2, 0xf6, 0x9e, 0x60, 0x8f, 0xc1, 0x17,
		0x4c, 0xcd, 0xfe, 0x0a, 0x6f, 0x69, 0x1a, 0x2e, 0x54, 0xd4, 0x93, 0x28, 0xba, 0xd5, 0xa3, 0x81,
		0x7a, 0xa6, 0xdb, 0x75, 0xcc, 0x27, 0xd3, 0x32, 0x3c, 0xdb, 0xa1, 0x13, 0x92, 0x28, 0xb5, 0x7b,
		0x66, 0x78, 0xa2, 0xf5, 0xa4, 0x09, 0x05, 0x21, 0x57, 0x04, 0x32, 0x14, 0x82, 0x44, 0xc5, 0x20,
		0x4b, 0x41, 0x48, 0x57, 0x14, 0xd2, 0x15, 0x86, 0x5c, 0xc5, 0x41, 0xa3, 0x40, 0x88, 0x14, 0x49,
		0xf4, 0xaa, 0x64, 0xe1, 0x25, 0x0b, 0x12, 0x4b, 0x17, 0x66, 0xb2, 0x80, 0x00, 0x0e, 0x09, 0xc7,
		0x9c, 0x0a, 0x3b, 0xf1, 0xbd, 0x21, 0xe5, 0x59, 0xd5, 0x95, 0x97, 0x24, 0x61, 0x02, 0x40, 0x60,
		0x3b, 0xe6, 0x43, 0xf0, 0x56, 0xba, 0xd1, 0xeb, 0x49, 0x50, 0xfa, 0xf3, 0x37, 0x80, 0xda, 0x87,
		0xda, 0x87, 0xda, 0x87, 0xda, 0x2f, 0x84, 0xda, 0x9f, 0x57, 0x5e, 0x6b, 0xaa, 0xf8, 0x5d, 0x4b,
		0xae, 0xde, 0x77, 0x2d, 0xa8, 0x7d, 0xa8, 0x7d, 0xa8, 0x7d, 0xa8, 0xfd, 0xe2, 0xa9, 0x7d, 0xd7,
		0x5a, 0x27, 0xad, 0xff, 0xec, 0xd8, 0x9e, 0xdd, 0xb5, 0xfb, 0x7a, 0xf0, 0x8a, 0xf4, 0x6a, 0x7f,
		0xfe, 0x06, 0xd0, 0xfb, 0xd0, 0xfb, 0xd0, 0xfb, 0xd0, 0xfb, 0x85, 0xd0, 0xfb, 0xf3, 0xca, 0x6b,
		0x8d, 0x14, 0xff, 0x38, 0x64, 0xac, 0x6f, 0xba, 0x9e, 0x4b, 0xaf, 0xf6, 0x67, 0x87, 0xa7, 0x55,
		0xfa, 0x15, 0x28, 0x7d, 0x28, 0x7d, 0x28, 0x7d, 0x1a, 0x99, 0xa5, 0xf2, 0x15, 0x2e, 0x55, 0x2c,
		0xf2, 0x72, 0xb1, 0x66, 0xee, 0x42, 0xbc, 0xfa, 0xb4, 0x6a, 0x46, 0x9a, 0xba, 0x91, 0xa9, 0x76,
		0x14, 0xa8, 0x1f, 0xd9, 0x6a, 0x48, 0x99, 0x3a, 0x52, 0xa6, 0x96, 0xd4, 0xa8, 0x27, 0x5a, 0x35,
		0x45, 0xac, 0xae, 0xa4, 0xa9, 0xad, 0x68, 0x60, 0x82, 0xfa, 0x3e, 0x2b, 0x37, 0x93, 0x70, 0xc5,
		0x1f, 0x45, 0x66, 0xb1, 0x32, 0x15, 0xa6, 0x42, 0x95, 0x29, 0x54, 0x69, 0xaa, 0x54, 0x9b, 0x72,
		0x15, 0xa7, 0x5c, 0xd5, 0xa9, 0x55, 0x79, 0x72, 0x54, 0x9f, 0x24, 0x15, 0x28, 0xcf, 0x6c, 0x57,
		0x68, 0xc6, 0xab, 0x30, 0xeb, 0x57, 0x9b, 0xf9, 0xa2, 0x95, 0x3f, 0xd4, 0xc9, 0x91, 0x04, 0x19,
		0x2a, 0x59, 0xec, 0x87, 0xa7, 0x3f, 0xda, 0xcf, 0xae, 0xfc, 0x83, 0x6f, 0x72, 0x2b, 0xb9, 0xe7,
		0x5f, 0x05, 0xe7, 0x1f, 0xce, 0x3f, 0x9c, 0x7f, 0x9b, 0x71, 0xfe, 0xc9, 0x32, 0x05, 0x16, 0x14,
		0xa4, 0x7c, 0x39, 0x9e, 0xd7, 0x93, 0xb2, 0xc5, 0x58, 0xae, 0xba, 0x54, 0xa6, 0x36, 0x55, 0xaa,
		0xcf, 0x0c, 0xd4, 0xa8, 0x6a, 0x75, 0x9a, 0x99, 0x5a, 0xcd, 0x4c, 0xbd, 0x66, 0xa3, 0x66, 0xe5,
		0xaa, 0x5b, 0xc9, 0x6a, 0x57, 0x99, 0xfa, 0x9d, 0x30, 0x33, 0x56, 0x8f, 0xfd, 0x50, 0x27, 0xfc,
		0x11, 0x59, 0xe3, 0xdf, 0x56, 0x91, 0xfc, 0xc9, 0xe5, 0x6f, 0x32, 0x53, 0xcc, 0x59, 0x28, 0xe8,
		0x0c, 0x15, 0x75, 0x56, 0x0a, 0x3b, 0x73, 0xc5, 0x9d, 0xb9, 0x02, 0xcf, 0x56, 0x91, 0xab, 0x51,
		0xe8, 0x8a, 0x14, 0xbb, 0x3a, 0x7e, 0x29, 0x43, 0xbe, 0x29, 0x0b, 0xfe, 0x29, 0x01, 0x1f, 0xe5,
		0x1f, 0x39, 0xef, 0xd6, 0x43, 0x54, 0x15, 0x88, 0x69, 0xc9, 0xb4, 0x3c, 0xe6, 0xdc, 0x1b, 0x5d,
		0xa6, 0x8f, 0xc4, 0x25, 0x03, 0x88, 0x30, 0x7d, 0x7b, 0xb5, 0x50, 0xa1, 0x02, 0xa8, 0x20, 0x05,
		0x2a, 0x98, 0xf7, 0x00, 0x0a, 0x1b, 0x08, 0x14, 0xcc, 0x7b, 0xc0, 0x84, 0x7c, 0xdb, 0x81, 0xd1,
		0x0d, 0x83, 0xb2, 0xa4, 0xca, 0xb7, 0xcc, 0xa4, 0x45, 0x88, 0xa1, 0xd4, 0x98, 0xc8, 0x40, 0xe9,
		0x2f, 0x2a, 0xff, 0xaa, 0xe2, 0x1b, 0x67, 0x70, 0x08, 0x64, 0x7e, 0x18, 0x64, 0x7d, 0x28, 0xe4,
		0xe6, 0x70, 0xc8, 0xcd, 0x21, 0x91, 0x87, 0xc3, 0x42, 0xed, 0xa1, 0xa1, 0xf8, 0xf0, 0xc8, 0xec,
		0x10, 0x59, 0xb4, 0x20, 0xb2, 0xdb, 0x6e, 0x0b, 0xd6, 0x44, 0x56, 0xdb, 0x4d, 0x2d, 0x09, 0x99,
		0xb9, 0xa5, 0x91, 0xa7, 0x43, 0x27, 0x37, 0x87, 0x4f, 0x5e, 0x0e, 0xa1, 0xdc, 0x1d, 0x46, 0xb9,
		0x3b, 0x94, 0xf2, 0x74, 0x38, 0x65, 0x73, 0x48, 0x65, 0x74, 0x58, 0x45, 0x13, 0xaf, 0x9c, 0x20,
		0x8d, 0xd5, 0x16, 0xea, 0x09, 0xd3, 0x58, 0x0b, 0xe5, 0x30, 0xc3, 0x67, 0xb8, 0x8a, 0xca, 0xaa,
		0x8f, 0xb6, 0xc1, 0x71, 0x74, 0xa0, 0xba, 0xf3, 0x1f, 0x84, 0xbf, 0xfb, 0x75, 0xcf, 0xdf, 0x6d,
		0xc6, 0x46, 0xc9, 0x60, 0x93, 0x94, 0xdc, 0xc1, 0x5d, 0x8e, 0xf0, 0xd5, 0xcc, 0xd3, 0x00, 0x62,
		0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x49, 0x80, 0x58, 0xb7,
		0x13, 0x88, 0xf5, 0x8f, 0xee, 0xc0, 0x71, 0x98, 0xe5, 0x6d, 0x6d, 0x97, 0x77, 0x76, 0xca, 0xd1,
		0x37, 0xda, 0xe1, 0x25, 0xd3, 0xe7, 0xb2, 0xbb, 0xe4, 0xb3, 0x68, 0x64, 0x65, 0xce, 0xf1, 0x1c,
		0xa0, 0xb5, 0xb5, 0x66, 0xfb, 0x88, 0x3a, 0xe1, 0xf1, 0xe3, 0x52, 0xa9, 0x4d, 0x98, 0xa6, 0xba,
		0x09, 0x45, 0x3f, 0xbf, 0x94, 0xe7, 0x3a, 0x50, 0xcc, 0xfd, 0x5e, 0x9e, 0xa9, 0x9b, 0x31, 0xf3,
		0x5b, 0x39, 0x4a, 0x9e, 0x89, 0x7e, 0x2a, 0xcf, 0x04, 0x1e, 0x94, 0xb3, 0xf0, 0x48, 0x69, 0x32,
		0xbb, 0x47, 0xb5, 0xd8, 0x55, 0x38, 0x81, 0xe3, 0x1f, 0x5f, 0x3a, 0x27, 0xe3, 0xf9, 0x1a, 0x69,
		0x20, 0x77, 0xf6, 0xd7, 0xf1, 0xf5, 0x67, 0xa3, 0xc9, 0x9b, 0xfe, 0xa5, 0x73, 0xc1, 0x7e, 0x78,
		0xbf, 0xda, 0xcf, 0xee, 0xf8, 0x87, 0x4e, 0x73, 0x3c, 0x73, 0xd7, 0xec, 0x5e, 0xa4, 0x79, 0x60,
		0xfe, 0x37, 0xf6, 0x7a, 0x79, 0x99, 0x33, 0x52, 0x19, 0x6b, 0xa6, 0x2a, 0x54, 0x86, 0xb6, 0x14,
		0x5c, 0x39, 0x20, 0x0c, 0x2f, 0xcd, 0x52, 0xab, 0x8c, 0xc8, 0xc8, 0x24, 0x12, 0x23, 0xb3, 0xb0,
		0xbb, 0x2a, 0x22, 0xf4, 0xd7, 0x88, 0x7b, 0x41, 0xe0, 0x1d, 0x22, 0xf4, 0xe9, 0xa6, 0x52, 0x79,
		0xe8, 0x5d, 0xd7, 0x1e, 0x8c, 0x8e, 0x48, 0x37, 0xbb, 0xe8, 0xbb, 0xe8, 0x09, 0x36, 0x2c, 0x00,
		0x6f, 0x77, 0x33, 0x03, 0xf0, 0x14, 0x1f, 0x0b, 0x59, 0x1f, 0x0f, 0xb9, 0x39, 0x26, 0x72, 0x73,
		0x5c, 0xe4, 0xe3, 0xd8, 0xd8, 0x0c, 0x5a, 0x2e, 0xb3, 0x20, 0x3c, 0x7b, 0xe0, 0xe9, 0x7d, 0xe3,
		0x8e, 0xf5, 0x59, 0x4f, 0xb7, 0xbb, 0x1e, 0xf3, 0xdc, 0xec, 0xbd, 0xc5, 0x4b, 0x9e, 0x09, 0x3e,
		0xe3, 0x4c, 0x1e, 0x20, 0x67, 0x3e, 0xe3, 0x8c, 0x8e, 0xa4, 0xbc, 0x1c, 0x4d, 0xb9, 0x3b, 0xa2,
		0x72, 0x77, 0x54, 0xe5, 0xeb, 0xc8, 0xca, 0xe6, 0xe8, 0xca, 0xe8, 0x08, 0x8b, 0xa6, 0x3e, 0x3f,
		0x7e, 0xe3, 0xd0, 0x60, 0x39, 0xa8, 0xe5, 0xc0, 0x73, 0xfc, 0x21, 0xc3, 0x47, 0xb8, 0x36, 0xac,
		0x87, 0xd1, 0x84, 0xdc, 0x66, 0xba, 0x27, 0xb3, 0xd5, 0x99, 0xfe, 0x44, 0x9c, 0x9b, 0x56, 0xe6,
		0xca, 0x3b, 0x7a, 0x98, 0xaf, 0x46, 0x7f, 0xc0, 0xb2, 0x3b, 0xdb, 0x17, 0x9e, 0xe7, 0x93, 0x63,
		0x74, 0x3d, 0xd3, 0xb6, 0x4e, 0xcd, 0x07, 0xd3, 0x47, 0x81, 0x79, 0x79, 0xb0, 0x0b, 0xf6, 0x60,
		0x78, 0xe6, 0xf7, 0xd1, 0x5c, 0xdd, 0x1b, 0x7d, 0x97, 0x65, 0xfe, 0x54, 0xc3, 0xf7, 0x39, 0x10,
		0x65, 0xe3, 0x47, 0xfe, 0x44, 0xb9, 0xf2, 0xa1, 0x56, 0x3b, 0x38, 0xac, 0xd5, 0x76, 0x0f, 0xf7,
		0x0e, 0x77, 0x8f, 0xf6, 0xf7, 0x2b, 0x07, 0x95, 0x7d, 0x48, 0x77, 0xd1, 0xa4, 0xfb, 0xdd, 0x66,
		0xde, 0xbd, 0x8d, 0x68, 0x74, 0x25, 0x2c, 0xc3, 0xf3, 0x9f, 0x79, 0xe3, 0x18, 0xfc, 0x27, 0x02,
		0xc3, 0x00, 0x86, 0x01, 0x0c, 0x03, 0x18, 0x06, 0x30, 0x0c, 0x60, 0x18, 0xc0, 0x30, 0x80, 0x61,
		0x00, 0xc3, 0x00, 0x1b, 0x0c, 0x0c, 0x03, 0x18, 0x06, 0x48, 0x37, 0x18, 0x06, 0x30, 0x0c, 0x85,
		0x60, 0x18, 0xf2, 0x14, 0xbf, 0x80, 0xb8, 0x05, 0xb0, 0x0a, 0x60, 0x15, 0xc0, 0x2a, 0x80, 0x55,
		0x00, 0xab, 0x00, 0x56, 0x01, 0xac, 0x02, 0x58, 0x05, 0xd8, 0x5d, 0x60, 0x15, 0xc0, 0x2a, 0x40,
		0xba, 0xc1, 0x2a, 0x80, 0x55, 0x28, 0x12, 0xab, 0x90, 0x9f, 0x78, 0x05, 0xc4, 0x29, 0x80, 0x51,
		0x00, 0xa3, 0x00, 0x46, 0x01, 0x8c, 0x02, 0x18, 0x05, 0x30, 0x0a, 0x60, 0x14, 0xc0, 0x28, 0xc0,
		0xe6, 0x02, 0xa3, 0x00, 0x46, 0x01, 0xd2, 0x0d, 0x46, 0x01, 0x8c, 0x42, 0xde, 0xef, 0x88, 0x4a,
		0xaf, 0x05, 0x2b, 0xdf, 0x18, 0x34, 0x06, 0xce, 0xa8, 0xea, 0x91, 0x56, 0xd0, 0x3a, 0x8e, 0x7e,
		0x5d, 0xd7, 0xce, 0xc9, 0x78, 0xd2, 0xd6, 0xb5, 0xc0, 0xab, 0xc2, 0x72, 0x79, 0x3d, 0xd6, 0x35,
		0x9e, 0xdd, 0x41, 0x7f, 0x24, 0xc5, 0x8f, 0xcc, 0xe8, 0x31, 0x27, 0xbb, 0x12, 0x60, 0x4b, 0x9e,
		0x25, 0x9b, 0x62, 0x60, 0xbb, 0x28, 0x06, 0xa6, 0x6e, 0xd5, 0xed, 0xae, 0x6e, 0xdc, 0x7b, 0xa8,
		0x05, 0x86, 0x5a, 0x60, 0x0b, 0x74, 0xe2, 0x48, 0x2e, 0x80, 0xdb, 0x48, 0x67, 0x38, 0x33, 0xd6,
		0x30, 0xda, 0xef, 0xcc, 0x1a, 0x6b, 0x79, 0xd3, 0xb6, 0x42, 0x3d, 0xaf, 0x7b, 0xa3, 0xc7, 0xca,
		0x40, 0x05, 0x8c, 0xab, 0x3f, 0xd6, 0x32, 0xb8, 0x77, 0xc3, 0x1a, 0x3c, 0x65, 0xa7, 0x7c, 0x5a,
		0xf6, 0x8d, 0xe7, 0x98, 0xd6, 0x43, 0xb6, 0x14, 0xf2, 0xee, 0x48, 0x22, 0x3e, 0x5f, 0x37, 0xb2,
		0x64, 0x8e, 0x2b, 0xa3, 0x67, 0x68, 0x5e, 0x7d, 0xcd, 0x94, 0xbe, 0xae, 0x86, 0x0f, 0x71, 0x90,
		0xe5, 0x43, 0xec, 0x8d, 0x1e, 0xe2, 0xfc, 0xea, 0xec, 0x26, 0xcb, 0x87, 0xa8, 0x8d, 0x1e, 0xe2,
		0xeb, 0x6f, 0x67, 0xf5, 0x8b, 0xd2, 0x66, 0xf9, 0x73, 0xec, 0xa6, 0x7f, 0xf0, 0x65, 0xb8, 0x1b,
		0x47, 0x1b, 0x31, 0x53, 0xc6, 0x2e, 0xd8, 0x86, 0xca, 0xab, 0xf1, 0xce, 0x3f, 0xc2, 0x81, 0xfa,
		0xc6, 0xf8, 0x33, 0x8f, 0xe0, 0x6f, 0xc1, 0x63, 0x6d, 0x2f, 0xc3, 0x47, 0x08, 0x36, 0xe0, 0xb1,
		0x56, 0x03, 0x5b, 0x07, 0x2e, 0x21, 0xa1, 0xcc, 0x4c, 0x90, 0x5d, 0xf6, 0x5c, 0xc2, 0x92, 0x67,
		0x01, 0x97, 0x00, 0x2e, 0x01, 0x5c, 0x02, 0xb8, 0x04, 0x70, 0x09, 0xe0, 0x12, 0xc0, 0x25, 0x80,
		0x4b, 0x00, 0x97, 0x00, 0x2e, 0x01, 0x5c, 0x02, 0xb8, 0x04, 0x70, 0x09, 0xe0, 0x12, 0xc0, 0x25,
		0xe4, 0x8c, 0x4b, 0x08, 0x9a, 0x82, 0x67, 0x46, 0x1f, 0x04, 0xb7, 0x07, 0x63, 0x00, 0xc6, 0x00,
		0x8c, 0x01, 0x18, 0x03, 0x30, 0x06, 0x6b, 0xc3, 0x18, 0x0c, 0x4c, 0xcb, 0xcb, 0x24, 0x51, 0x29,
		0xc3, 0x04, 0xa5, 0x8c, 0x13, 0x93, 0x32, 0x34, 0x42, 0xf2, 0x90, 0x88, 0x94, 0x97, 0x04, 0xa4,
		0xdc, 0xa5, 0x66, 0xe4, 0x27, 0x25, 0x63, 0x98, 0xa5, 0x7d, 0x96, 0x83, 0x04, 0xa3, 0x1c, 0x27,
		0x16, 0x41, 0x6a, 0x73, 0x64, 0xd8, 0x66, 0x73, 0xd7, 0x36, 0xcc, 0x69, 0x71, 0x73, 0xfa, 0x59,
		0x37, 0x7a, 0x3d, 0x87, 0xb9, 0x19, 0x76, 0xf8, 0x9e, 0x7a, 0x06, 0x18, 0xd6, 0x30, 0xac, 0x61,
		0x58, 0xc3, 0xb0, 0x86, 0x61, 0xbd, 0x36, 0x86, 0x75, 0x66, 0xda, 0x7d, 0x5a, 0xc3, 0x57, 0x8e,
		0x32, 0xb8, 0x77, 0x38, 0xf7, 0x1b, 0x67, 0x5c, 0x4f, 0x56, 0xfe, 0x7b, 0x2d, 0xc3, 0xb5, 0x5f,
		0x90, 0x81, 0x2c, 0x4b, 0xc0, 0x5c, 0x19, 0x9e, 0xc7, 0x1c, 0x2b, 0xf3, 0x22, 0x30, 0xa5, 0xad,
		0xdb, 0x5d, 0xfd, 0xa8, 0xfd, 0x7a, 0x5b, 0xd1, 0x8f, 0xda, 0xc1, 0x8f, 0x15, 0xff, 0xaf, 0x9f,
		0xd5, 0xe1, 0x6b, 0xf5, 0x76, 0x57, 0xaf, 0x85, 0x9f, 0x56, 0xf7, 0x6f, 0x77, 0xf5, 0xfd, 0xf6,
		0xf6, 0xd6, 0xb7, 0x6f, 0x3b, 0x69, 0xaf, 0xd9, 0xfe, 0xb9, 0x37, 0xcc, 0xae, 0xda, 0x53, 0x3b,
		0xcb, 0x65, 0xbe, 0xbc, 0x69, 0xfe, 0x96, 0x9b, 0xb5, 0xfe, 0x63, 0x4b, 0xd5, 0x6a, 0x6f, 0xff,
		0xad, 0xb4, 0x69, 0x75, 0x23, 0xde, 0x6f, 0xb0, 0x5a, 0x3f, 0x80, 0x5a, 0xcf, 0x9b, 0x5a, 0xf7,
		0x77, 0xad, 0xa1, 0xdf, 0xd7, 0xf5, 0x4f, 0xed, 0x9f, 0x95, 0xf7, 0xb5, 0xe1, 0xf1, 0xf6, 0xcf,
		0xc3, 0xe1, 0xfc, 0x87, 0xaf, 0xcb, 0xbe, 0x56, 0x79, 0x7f, 0x38, 0x3c, 0x8e, 0xf9, 0x97, 0x83,
		0xe1, 0x71, 0xc2, 0x31, 0xf6, 0x87, 0x5b, 0x0b, 0x5f, 0x1d, 0x7d, 0x5e, 0x8d, 0xbb, 0xa0, 0x16,
		0x73, 0xc1, 0x5e, 0xdc, 0x05, 0x7b, 0x31, 0x17, 0xc4, 0x3e, 0x52, 0x35, 0xe6, 0x82, 0xfd, 0xe1,
		0xeb, 0xc2, 0xf7, 0xb7, 0x96, 0x7f, 0xf5, 0x60, 0xb8, 0xfd, 0x1a, 0xf7, 0x6f, 0x87, 0xc3, 0xd7,
		0xe3, 0xed, 0x6d, 0x1c, 0x74, 0xb9, 0x39, 0xe8, 0x20, 0xfe, 0xea, 0xc5, 0x7f, 0xf3, 0x0e, 0x7e,
		0xf0, 0xdc, 0xc5, 0x83, 0x50, 0xa5, 0x27, 0xa3, 0x9b, 0x3d, 0xd1, 0x3d, 0xfd, 0x10, 0x60, 0xba,
		0xe5, 0x9e, 0x4f, 0x60, 0xba, 0xc1, 0x74, 0x83, 0xe9, 0xce, 0xf0, 0xe4, 0xda, 0x3c, 0xa6, 0x3b,
		0x3b, 0xf5, 0x9e, 0xb5, 0x3d, 0x9c, 0xb9, 0x1d, 0x5c, 0x9a, 0x06, 0xa8, 0xf3, 0xb8, 0xb7, 0x3a,
		0xdc, 0xfe, 0xb9, 0x9f, 0x01, 0x21, 0xd9, 0xce, 0x62, 0x21, 0xf2, 0x60, 0x97, 0x95, 0xfe, 0x58,
		0xbd, 0x1c, 0x19, 0xd8, 0x0d, 0xc0, 0xd1, 0xe2, 0x2b, 0x6b, 0x3b, 0xe6, 0x83, 0x69, 0xe9, 0xcf,
		0x8e, 0xed, 0xd9, 0x5d, 0xbb, 0x9f, 0x1d, 0x96, 0x9e, 0x7f, 0x10, 0xe0, 0x69, 0xe0, 0x69, 0xe0,
		0x69, 0xe0, 0x69, 0xe0, 0xe9, 0xb5, 0xc1, 0xd3, 0x66, 0x8f, 0x59, 0x9e, 0xe9, 0xbd, 0x38, 0xec,
		0x3e, 0x4b, 0x3c, 0x9d, 0x41, 0xa0, 0x73, 0xa9, 0x19, 0xbe, 0xfa, 0x47, 0xc3, 0x65, 0xd9, 0x77,
		0x81, 0x6b, 0x5e, 0xdc, 0xb4, 0xea, 0x67, 0x67, 0x9d, 0xab, 0xeb, 0xcb, 0xd6, 0xe5, 0xc9, 0xe5,
		0x59, 0xa7, 0xf5, 0xfb, 0x55, 0x56, 0xd5, 0x14, 0x82, 0x90, 0x74, 0x37, 0x53, 0x9f, 0x43, 0xc6,
		0x41, 0xf9, 0xe3, 0x65, 0xf9, 0xf8, 0xf9, 0xaa, 0xb4, 0x89, 0xa9, 0x11, 0x39, 0x99, 0xfe, 0xd3,
		0xe6, 0x75, 0xe3, 0xa4, 0x75, 0xf6, 0x7b, 0xe7, 0xe4, 0xf2, 0xe2, 0xa2, 0x71, 0xd2, 0x6a, 0x9c,
		0x62, 0x35, 0xb2, 0x5b, 0x8d, 0xcf, 0xd7, 0xcd, 0x8f, 0x4d, 0x2c, 0x40, 0x86, 0x87, 0xc4, 0xe7,
		0x73, 0xa8, 0xa3, 0x2c, 0xe7, 0xff, 0xa6, 0x79, 0x83, 0xf9, 0xcf, 0x6e, 0xfe, 0xcf, 0x2e, 0x4f,
		0xea, 0x67, 0x58, 0x80, 0x8c, 0x17, 0xa0, 0x53, 0xff, 0xfc, 0xf9, 0xba, 0xf1, 0xb9, 0xde, 0x6a,
		0x60, 0x29, 0xb2, 0x5b, 0x8a, 0xcb, 0x9b, 0xab, 0x4f, 0x98, 0xff, 0x6c, 0xe7, 0x7f, 0x0f, 0x0b,
		0x90, 0xdd, 0x02, 0x5c, 0x9d, 0x34, 0x00, 0x86, 0xb2, 0x9c, 0xff, 0xe6, 0x39, 0xa6, 0x3f, 0xbb,
		0xe9, 0xbf, 0x69, 0xd5, 0x5b, 0xcd, 0x93, 0x4d, 0x6b, 0xf8, 0xdd, 0x46, 0x41, 0xb9, 0xe2, 0xed,
		0xa0, 0xd2, 0xb3, 0xfd, 0xac, 0x7b, 0xf6, 0xb3, 0xde, 0x37, 0xee, 0x58, 0x86, 0xfe, 0xcc, 0xd9,
		0xc7, 0x50, 0xcc, 0xf5, 0x9f, 0xb2, 0x7b, 0x63, 0xd0, 0xf7, 0x32, 0x21, 0x55, 0x4b, 0x7e, 0xb1,
		0x0c, 0xb5, 0xba, 0xa2, 0x0d, 0x6f, 0xb1, 0xd4, 0x1b, 0xc3, 0x5b, 0x0c, 0x6f, 0x31, 0xbc, 0xc5,
		0x99, 0x9e, 0xd5, 0x1b, 0xe7, 0x2d, 0xbe, 0xb3, 0xed, 0x3e, 0x33, 0xac, 0x2c, 0x3d, 0xc5, 0x15,
		0xc0, 0x31, 0x71, 0x38, 0xe6, 0xd8, 0x0f, 0x8e, 0xf1, 0xf4, 0xc4, 0x7a, 0x7a, 0xc6, 0xa5, 0x7e,
		0x17, 0x9e, 0x04, 0xa0, 0x01, 0xa0, 0x01, 0xa0, 0x01, 0xa0, 0x01, 0xa0, 0x61, 0x6d, 0x40, 0x03,
		0xaa, 0xfe, 0x2a, 0xff, 0x83, 0xaa, 0xbf, 0xa8, 0xfa, 0xbb, 0x7c, 0x4f, 0xa2, 0xea, 0x2f, 0xaa,
		0xfe, 0x42, 0x6a, 0x8b, 0x01, 0x15, 0xb2, 0xbb, 0x2b, 0xb2, 0xb8, 0x08, 0x8c, 0xec, 0x81, 0xfb,
		0xc8, 0x7a, 0xfa, 0xd3, 0x73, 0xdf, 0x0d, 0x1c, 0x0e, 0xba, 0xeb, 0x19, 0xdd, 0x3f, 0x33, 0xb4,
		0xb5, 0x63, 0x1e, 0x08, 0x26, 0x37, 0x4c, 0x6e, 0x98, 0xdc, 0x30, 0xb9, 0x61, 0x72, 0xaf, 0x8d,
		0xc9, 0x3d, 0xd1, 0xf1, 0xa8, 0x07, 0xbc, 0x19, 0x66, 0xf7, 0x34, 0xd9, 0xb2, 0x57, 0xcd, 0x41,
		0xc9, 0xc8, 0xc3, 0x0c, 0x1f, 0x21, 0x5b, 0xf2, 0x25, 0x7b, 0x69, 0xc8, 0x15, 0x19, 0xb3, 0x68,
		0xf1, 0x1e, 0xbc, 0xcf, 0xc7, 0x03, 0xe5, 0xcd, 0xce, 0xcd, 0x9f, 0xbd, 0x9b, 0x03, 0xb6, 0x26,
		0x57, 0xac, 0xcd, 0xa2, 0x2c, 0xef, 0xd6, 0x3e, 0xec, 0x1f, 0xee, 0x43, 0xa0, 0x8b, 0x26, 0xd0,
		0xef, 0x36, 0xf3, 0xee, 0xa8, 0xe3, 0xad, 0x16, 0x8e, 0x31, 0x6b, 0xf0, 0xc4, 0x1c, 0x63, 0xb4,
		0x29, 0xf3, 0x50, 0xc6, 0xbb, 0x96, 0xe1, 0x33, 0x34, 0xac, 0xc1, 0x53, 0xf6, 0xb4, 0x7b, 0xcb,
		0xbe, 0xf1, 0x1c, 0xd3, 0x7a, 0xc8, 0xc5, 0x51, 0x52, 0xda, 0xf5, 0x93, 0x4a, 0xaf, 0xbe, 0xd6,
		0x3a, 0x8d, 0xdf, 0xae, 0xce, 0x9a, 0x27, 0xcd, 0x56, 0xe7, 0xe2, 0xcb, 0xd9, 0x59, 0x29, 0x07,
		0xc7, 0x6d, 0x65, 0xf4, 0x68, 0xd7, 0x97, 0x5f, 0x5a, 0x8d, 0xeb, 0x4e, 0xfd, 0xac, 0x71, 0xdd,
		0xca, 0xc3, 0x43, 0x55, 0xc3, 0xf9, 0x3a, 0xc8, 0xdf, 0x7c, 0xed, 0xf9, 0x8f, 0x76, 0x9e, 0xb3,
		0xa7, 0x3a, 0x1c, 0x3d, 0x55, 0xe3, 0xa2, 0x75, 0x7d, 0x79, 0xf5, 0x7b, 0xe7, 0xac, 0xfe, 0xb1,
		0x71, 0xd6, 0x69, 0x5e, 0x9c, 0x36, 0x4f, 0xea, 0xad, 0xcb, 0xeb, 0x3c, 0x3c, 0xdf, 0x87, 0xd1,
		0xf3, 0x5d, 0x5c, 0x06, 0x8f, 0x56, 0x7a, 0xb7, 0xc1, 0x18, 0xb7, 0xd4, 0xb2, 0x9b, 0x3e, 0x29,
		0x97, 0x03, 0xb5, 0x14, 0x27, 0x30, 0x99, 0x5a, 0xf5, 0xd1, 0xd3, 0xcd, 0x6e, 0xb2, 0x63, 0x6d,
		0x2f, 0x0f, 0xcf, 0xb4, 0xa8, 0xc3, 0x73, 0x81, 0xbe, 0x97, 0x29, 0xcb, 0x63, 0xad, 0x9a, 0x83,
		0x07, 0x8b, 0x36, 0x7d, 0x26, 0xf1, 0x39, 0x8b, 0x94, 0xd1, 0xf4, 0x49, 0x77, 0xac, 0x55, 0x36,
		0xd4, 0x3e, 0x80, 0x83, 0x7b, 0x0d, 0x8e, 0x96, 0xd2, 0x99, 0xe9, 0x7a, 0x75, 0xcf, 0x73, 0xb2,
		0x71, 0x42, 0x9c, 0x9b, 0x56, 0xa3, 0xcf, 0x9e, 0x98, 0x95, 0x15, 0x05, 0x51, 0x3a, 0x37, 0x7e,
		0x4c, 0x3d, 0x41, 0x3e, 0x22, 0x6c, 0x4a, 0x97, 0x4e, 0x8f, 0x39, 0xac, 0xf7, 0xf1, 0x25, 0xfb,
		0x5a, 0x73, 0x03, 0x97, 0x39, 0x59, 0xf9, 0x41, 0x33, 0x76, 0x08, 0x6b, 0x73, 0x4e, 0x61, 0x3b,
		0x58, 0x15, 0xfd, 0xee, 0x25, 0x4b, 0xfb, 0x3c, 0x2f, 0xce, 0x61, 0x6d, 0xde, 0x41, 0xec, 0x4b,
		0xca, 0x86, 0x9c, 0x09, 0xc3, 0x2c, 0x95, 0xc2, 0x97, 0xd1, 0x44, 0x07, 0x4b, 0xbf, 0xae, 0xb1,
		0x57, 0xef, 0xd6, 0x68, 0x11, 0x4b, 0x75, 0xcb, 0xb2, 0xbd, 0x80, 0xd7, 0x53, 0xa9, 0xca, 0x4a,
		0x6e, 0xf7, 0x91, 0x3d, 0x19, 0xcf, 0x86, 0xf7, 0x38, 0xda, 0x9e, 0x65, 0xfb, 0x99, 0x59, 0x5d,
		0x3f, 0xb2, 0x49, 0xb7, 0x98, 0xf7, 0x97, 0xed, 0xfc, 0xa9, 0x9b, 0x96, 0xeb, 0x19, 0x56, 0x97,
		0x95, 0xe7, 0x3f, 0x70, 0x17, 0x3e, 0x29, 0xbb, 0xec, 0x61, 0xb4, 0xd3, 0x75, 0xc7, 0x1e, 0x78,
		0xa6, 0xf5, 0x50, 0xf6, 0x98, 0xfe, 0x6c, 0xf7, 0xcd, 0xae, 0xc9, 0xdc, 0xe8, 0xe7, 0x97, 0x72,
		0xd7, 0xb0, 0x7a, 0x66, 0xcf, 0x18, 0x7d, 0x60, 0x78, 0x8f, 0xee, 0xdc, 0xef, 0xd1, 0x20, 0x7d,
		0xd3, 0xf5, 0xdc, 0x99, 0xdf, 0xca, 0x16, 0xfb, 0xe1, 0xe9, 0x8f, 0xf6, 0xb3, 0x1b, 0xfd, 0x54,
		0x76, 0x3d, 0xc3, 0x63, 0x0a, 0x75, 0x6d, 0xc9, 0xf5, 0x9c, 0x41, 0xd7, 0xb3, 0xc6, 0x55, 0x7b,
		0xa2, 0x09, 0xbb, 0x08, 0x26, 0xa3, 0x19, 0xce, 0x45, 0x67, 0xee, 0x77, 0x77, 0xfe, 0x83, 0xce,
		0x4d, 0xf0, 0x66, 0xd7, 0xc1, 0x5c, 0x75, 0x5a, 0xec, 0x2a, 0x9c, 0xaa, 0xf1, 0x8f, 0x2f, 0x9d,
		0x93, 0xf1, 0xcc, 0x5c, 0x8d, 0x26, 0x6a, 0xf6, 0xd7, 0xf1, 0xf5, 0x23, 0x70, 0xe6, 0x4e, 0xff,
		0xd2, 0xb9, 0x60, 0x3f, 0xbc, 0x5f, 0xed, 0x67, 0x77, 0xfc, 0x43, 0xe7, 0xc6, 0x9f, 0xa3, 0x77,
		0xeb, 0xb1, 0x2b, 0xe5, 0xde, 0x41, 0xf2, 0x7e, 0x1f, 0x41, 0x05, 0xbf, 0x4c, 0xb2, 0x82, 0xe4,
		0x44, 0xb5, 0xb0, 0x5d, 0x3d, 0x4c, 0xcf, 0x05, 0x2c, 0x9f, 0x81, 0xe1, 0xd6, 0xa0, 0xdf, 0x57,
		0x79, 0xcb, 0xf0, 0x90, 0x97, 0xef, 0x02, 0x95, 0xbd, 0x2b, 0x14, 0x9f, 0x7e, 0x85, 0x3f, 0xf5,
		0x14, 0x9c, 0x77, 0x05, 0x3c, 0xe7, 0xe4, 0x9e, 0x70, 0xf2, 0xce, 0x1d, 0x39, 0x23, 0x4b, 0xda,
		0xb3, 0xaa, 0xf6, 0x6a, 0x51, 0xf7, 0xa8, 0xc4, 0xad, 0x59, 0xa0, 0x2d, 0x29, 0x67, 0x2b, 0xd2,
		0x6f, 0x14, 0x09, 0x9b, 0xa4, 0xe4, 0x9a, 0x3d, 0x79, 0xfd, 0x4a, 0x23, 0xce, 0xcd, 0xbf, 0x8b,
		0xa4, 0x2d, 0x3e, 0x0e, 0xef, 0x90, 0x34, 0xbc, 0xec, 0xd4, 0x19, 0x15, 0x29, 0x32, 0xd3, 0xa9,
		0x30, 0xae, 0x23, 0xd5, 0x02, 0x55, 0x45, 0x71, 0x2a, 0xcf, 0x6d, 0x51, 0x4e, 0x53, 0xce, 0xe7,
		0xaa, 0xf8, 0x0b, 0x87, 0x63, 0xdd, 0x9f, 0x9a, 0x53, 0xd3, 0x91, 0x7c, 0x9e, 0x9b, 0x3d, 0xf9,
		0x22, 0x3c, 0xa5, 0x1d, 0x65, 0x0b, 0xaf, 0x5c, 0x25, 0xa9, 0x4c, 0x59, 0xaa, 0x54, 0x9a, 0x19,
		0x28, 0x4f, 0xd5, 0x4a, 0x34, 0x33, 0x65, 0x9a, 0x99, 0x52, 0xcd, 0x46, 0xb9, 0xae, 0x07, 0x1b,
		0x28, 0x5b, 0xe9, 0x46, 0x37, 0x52, 0x5b, 0x96, 0x6d, 0xd2, 0x0d, 0x4e, 0x61, 0x0d, 0x36, 0xc5,
		0x89, 0xe0, 0xca, 0x13, 0xc0, 0xb3, 0x48, 0xfc, 0xce, 0x40, 0x51, 0x67, 0xa5, 0xb0, 0x33, 0x57,
		0xdc, 0x99, 0x2b, 0xf0, 0x6c, 0x15, 0xb9, 0x1a, 0x85, 0xae, 0x48, 0xb1, 0x47, 0x53, 0xa9, 0x3c,
		0x75, 0x3b, 0xda, 0xb1, 0x7d, 0x66, 0xdc, 0xab, 0x6d, 0xc2, 0x19, 0x21, 0x62, 0x85, 0x41, 0xbd,
		0xa5, 0xab, 0x90, 0x1f, 0xdc, 0xd9, 0x09, 0x3c, 0xc1, 0xe5, 0xe0, 0xc8, 0x59, 0x17, 0x5f, 0xa7,
		0x12, 0x9e, 0xdf, 0xf0, 0x98, 0x7a, 0x68, 0xa0, 0xd2, 0x6f, 0xaf, 0xc8, 0x56, 0x5b, 0x84, 0x06,
		0x55, 0x40, 0x03, 0x40, 0x03, 0x40, 0x03, 0x40, 0x83, 0x0c, 0x6d, 0xbf, 0x8c, 0x6c, 0xc0, 0x4c,
		0x6d, 0xc1, 0x8c, 0x6c, 0xc2, 0xcc, 0x6c, 0xc3, 0x2c, 0x0f, 0x82, 0x1c, 0x1c, 0x08, 0x59, 0x1f,
		0x0c, 0xb9, 0x39, 0x20, 0x72, 0x73, 0x50, 0xe4, 0xe3, 0xc0, 0x50, 0x7b, 0x70, 0x28, 0x3e, 0x40,
		0xb2, 0xb3, 0x31, 0x17, 0x76, 0x3c, 0x2a, 0x72, 0x2b, 0xff, 0x83, 0x8a, 0xdc, 0xa8, 0xc8, 0xbd,
		0x7c, 0x4f, 0xa2, 0x22, 0x37, 0x2a, 0x72, 0x43, 0x6a, 0x8b, 0x01, 0x15, 0xb2, 0xbb, 0x2b, 0x2a,
		0x72, 0x8b, 0x0b, 0xad, 0x5f, 0x15, 0xd5, 0xeb, 0x66, 0x67, 0x52, 0x8f, 0x1f, 0x60, 0x93, 0x3a,
		0x8f, 0xee, 0xa2, 0xeb, 0x28, 0x08, 0x0b, 0x10, 0x16, 0x20, 0x2c, 0x40, 0x58, 0x80, 0xb0, 0x10,
		0x21, 0x2c, 0x3e, 0x64, 0xc8, 0x57, 0xec, 0x83, 0xaf, 0x00, 0x5f, 0x01, 0xcb, 0x0f, 0x7c, 0x45,
		0x1e, 0xf9, 0x8a, 0x43, 0x88, 0x28, 0xc8, 0x09, 0x90, 0x13, 0x6b, 0x41, 0x4e, 0x78, 0xfd, 0xac,
		0xd9, 0x09, 0xaf, 0x0f, 0x7a, 0x02, 0xf4, 0x04, 0xe8, 0x09, 0xd0, 0x13, 0xa0, 0x27, 0x40, 0x4f,
		0x80, 0x9e, 0x00, 0x3d, 0x01, 0x7a, 0x02, 0xf4, 0x04, 0x6c, 0x3f, 0xd0, 0x13, 0x9c, 0x22, 0x5a,
		0xdd, 0x47, 0xf4, 0x04, 0x08, 0x0a, 0x10, 0x14, 0x45, 0x27, 0x28, 0xbe, 0x87, 0xfb, 0x39, 0x23,
		0x76, 0x22, 0xb8, 0x3d, 0xcc, 0x67, 0x98, 0xcf, 0x30, 0x9f, 0x61, 0x3e, 0xc3, 0x7c, 0x5e, 0x23,
		0xf3, 0xd9, 0x75, 0x74, 0xd7, 0xec, 0xe9, 0xde, 0xe8, 0x41, 0xd0, 0xae, 0x7c, 0x23, 0x8c, 0xe8,
		0x5c, 0x34, 0xaa, 0xcf, 0x83, 0x04, 0xe4, 0x43, 0x12, 0xb2, 0x97, 0x88, 0x05, 0xc9, 0xc8, 0xbc,
		0x91, 0xfd, 0xbc, 0x74, 0xe4, 0xa1, 0xf5, 0x5d, 0x3e, 0x1a, 0xdb, 0xe7, 0x47, 0x5a, 0x26, 0x8c,
		0x47, 0x8e, 0x1a, 0xdd, 0x2f, 0x30, 0x20, 0x79, 0x69, 0x78, 0x9f, 0x5b, 0x42, 0x24, 0xbf, 0x04,
		0x49, 0xc6, 0xe0, 0xec, 0x6d, 0x99, 0xcf, 0x51, 0x43, 0xfc, 0x45, 0x99, 0xcf, 0x53, 0x63, 0x7c,
		0x08, 0x7e, 0xc1, 0x6c, 0xa0, 0xfc, 0x3e, 0x45, 0x7b, 0x93, 0x7b, 0x14, 0xe7, 0x08, 0x1e, 0xe6,
		0xa3, 0xb1, 0xfe, 0x82, 0x05, 0x51, 0xcb, 0xc1, 0xb3, 0xe4, 0xa2, 0xd1, 0xfe, 0xc4, 0xae, 0xc9,
		0x53, 0xc3, 0xfd, 0xe8, 0xa9, 0xf2, 0xdb, 0x78, 0x3f, 0x7a, 0xc4, 0x3c, 0x36, 0xe0, 0x8f, 0x1e,
		0x2e, 0xbf, 0x8d, 0xf8, 0xa3, 0x47, 0xcc, 0x65, 0x43, 0xfe, 0xe8, 0xe9, 0x72, 0xde, 0x98, 0x3f,
		0x7a, 0xce, 0x1c, 0x35, 0xe8, 0xcf, 0x19, 0x06, 0xcf, 0x51, 0xc3, 0xfe, 0x89, 0xea, 0xcf, 0x73,
		0xe3, 0xfe, 0xe8, 0x29, 0x73, 0xd8, 0xc0, 0x7f, 0xf2, 0x6c, 0x39, 0x6d, 0xe4, 0x3f, 0xfd, 0x80,
		0xb9, 0x6c, 0xe8, 0x3f, 0x41, 0x68, 0xb9, 0x6a, 0xec, 0x1f, 0x3d, 0x56, 0xae, 0x1a, 0xfc, 0xe7,
		0xc7, 0x9e, 0xc9, 0xf6, 0x09, 0xb2, 0xbb, 0x7b, 0x36, 0x76, 0x5c, 0x46, 0x47, 0x57, 0x0e, 0x1c,
		0x3d, 0xe6, 0xf3, 0xf7, 0x03, 0xdd, 0xe8, 0xf5, 0x1c, 0xe6, 0xba, 0x79, 0x70, 0xf5, 0x64, 0xa8,
		0x9a, 0x4a, 0x57, 0x86, 0xe7, 0x31, 0xc7, 0xca, 0x9c, 0xc7, 0x2f, 0x6d, 0x6d, 0xdd, 0xee, 0xea,
		0x47, 0x86, 0x7e, 0x5f, 0xd7, 0x3f, 0xb5, 0x7f, 0x56, 0xde, 0xd7, 0x86, 0xc7, 0xdb, 0x3f, 0x0f,
		0x87, 0xf3, 0x1f, 0xbe, 0x2e, 0xfb, 0x5a, 0xe5, 0xfd, 0xe1, 0xf0, 0x38, 0xe6, 0x5f, 0x0e, 0x86,
		0xc7, 0x09, 0xc7, 0xd8, 0x1f, 0x6e, 0x2d, 0x7c, 0x75, 0xf4, 0x79, 0x35, 0xee, 0x82, 0x5a, 0xcc,
		0x05, 0x7b, 0x71, 0x17, 0xec, 0xc5, 0x5c, 0x10, 0xfb, 0x48, 0xd5, 0x98, 0x0b, 0xf6, 0x87, 0xaf,
		0x0b, 0xdf, 0xdf, 0x5a, 0xfe, 0xd5, 0x83, 0xe1, 0xf6, 0x6b, 0xdc, 0xbf, 0x1d, 0x0e, 0x5f, 0x8f,
		0xb7, 0xb7, 0xb3, 0x43, 0xd2, 0xed, 0x2c, 0x05, 0xff, 0xf2, 0xa6, 0xf9, 0x5b, 0x6e, 0xa4, 0xff,
		0x0f, 0x88, 0x7f, 0x56, 0xe2, 0xff, 0xb7, 0xd2, 0xa6, 0x1d, 0xfc, 0x08, 0x79, 0x2d, 0xd4, 0x9d,
		0x54, 0x15, 0x15, 0x57, 0xdc, 0x48, 0x3b, 0xba, 0x6f, 0xb1, 0x9a, 0xf5, 0xba, 0x66, 0xcf, 0x1d,
		0xfd, 0xaf, 0xac, 0xb2, 0x09, 0x85, 0x56, 0x8c, 0x0e, 0xbe, 0x37, 0x66, 0xcf, 0x1d, 0xfd, 0xaf,
		0x73, 0xe3, 0xcf, 0xcd, 0xba, 0x34, 0x52, 0x29, 0x74, 0x9b, 0xb8, 0x7f, 0xb1, 0x17, 0x55, 0x15,
		0xf4, 0x4b, 0x23, 0x21, 0xa8, 0x7b, 0x9e, 0xa2, 0xbe, 0x74, 0xe7, 0xa6, 0xd5, 0xe8, 0xb3, 0x91,
		0xf0, 0x29, 0xf2, 0x9e, 0x97, 0xce, 0x8d, 0x1f, 0x53, 0x77, 0xcc, 0xa6, 0x36, 0x6b, 0xe9, 0xd2,
		0xe9, 0x31, 0x87, 0xf5, 0x3e, 0x8e, 0x96, 0xd5, 0x1a, 0xf4, 0xfb, 0x2a, 0x6f, 0xf9, 0xc5, 0x65,
		0x8e, 0x92, 0x70, 0x00, 0xd9, 0xbb, 0x42, 0xf1, 0x59, 0x57, 0xd0, 0x33, 0xae, 0xa4, 0xa4, 0x85,
		0x54, 0x51, 0x4e, 0x35, 0xb9, 0xe7, 0xd9, 0x10, 0xbd, 0xa4, 0x55, 0xee, 0xcc, 0x02, 0xee, 0x48,
		0x99, 0x6d, 0xe2, 0x8b, 0xb1, 0x0b, 0xe5, 0xec, 0x40, 0xfa, 0xfd, 0x21, 0x61, 0x6f, 0x48, 0x6e,
		0xb5, 0xa7, 0xa4, 0xb5, 0x9e, 0xe4, 0x56, 0x7a, 0xd2, 0x5b, 0xe7, 0xa9, 0x48, 0x49, 0x54, 0x98,
		0x7a, 0xa8, 0x2a, 0xc5, 0x50, 0x79, 0x2a, 0xa1, 0xf2, 0x94, 0x41, 0xb5, 0xa9, 0x81, 0xc5, 0x3a,
		0xcf, 0x65, 0xb7, 0xaa, 0x2b, 0x75, 0xed, 0x81, 0xe5, 0x31, 0xc7, 0x95, 0x2f, 0xc7, 0xe3, 0xad,
		0x19, 0xdd, 0x51, 0xb6, 0xe9, 0xae, 0xa4, 0xf3, 0xa8, 0xb2, 0x0c, 0x6f, 0x95, 0x19, 0xdd, 0x19,
		0x64, 0x70, 0xab, 0xce, 0xd8, 0xce, 0x2c, 0x43, 0x3b, 0xb3, 0x8c, 0xec, 0x6c, 0x32, 0xb0, 0x8b,
		0x4d, 0xff, 0xa9, 0xea, 0x14, 0x5a, 0xb2, 0x07, 0x5e, 0x90, 0x3c, 0xcb, 0x7a, 0xba, 0xdd, 0xf5,
		0x98, 0xe7, 0xaa, 0xef, 0x0b, 0xbd, 0xe4, 0x19, 0xd4, 0x36, 0x89, 0xde, 0x55, 0xdd, 0x24, 0x7a,
		0x17, 0x4d, 0xa2, 0xd7, 0x40, 0x95, 0x67, 0xae, 0xd2, 0x33, 0x57, 0xed, 0xd9, 0xaa, 0x78, 0x35,
		0xaa, 0x5e, 0x91, 0xca, 0x8f, 0xa6, 0x52, 0x79, 0x31, 0x8d, 0x79, 0x80, 0xac, 0xb4, 0xad, 0x67,
		0x06, 0xed, 0x3c, 0x33, 0x4a, 0x81, 0xcf, 0xa0, 0x3a, 0x4a, 0x96, 0x29, 0xed, 0x59, 0xd7, 0x97,
		0xcc, 0x4d, 0xa2, 0x6e, 0xf6, 0x09, 0xb9, 0x19, 0x84, 0x0c, 0x67, 0x9a, 0x59, 0x9e, 0xc3, 0x36,
		0x9c, 0x90, 0x46, 0xc5, 0xa7, 0xb5, 0xfa, 0xbb, 0xb5, 0xd7, 0x25, 0x6e, 0xe6, 0xbd, 0x5a, 0xab,
		0xf3, 0xf9, 0xcf, 0xac, 0x6d, 0x4e, 0xff, 0x09, 0x60, 0x71, 0xc2, 0xe2, 0x84, 0xc5, 0x09, 0x8b,
		0x13, 0x16, 0x27, 0x2c, 0x4e, 0x58, 0x9c, 0xb0, 0x38, 0x81, 0xf1, 0x61, 0x71, 0xc2, 0xe2, 0x84,
		0xc5, 0x09, 0x8b, 0x73, 0x6d, 0x2c, 0xce, 0x2c, 0xfd, 0x9b, 0xf0, 0x6b, 0xc2, 0xca, 0x84, 0x95,
		0x09, 0x2b, 0x13, 0x56, 0x26, 0xac, 0x4c, 0x58, 0x99, 0xb0, 0x32, 0x81, 0xeb, 0x61, 0x65, 0xc2,
		0xca, 0x84, 0x95, 0x09, 0x2b, 0x73, 0xdd, 0xac, 0xcc, 0xec, 0xfc, 0x99, 0xf0, 0x63, 0xc2, 0xc2,
		0x84, 0x85, 0x09, 0x0b, 0x13, 0x16, 0x26, 0x2c, 0x4c, 0x58, 0x98, 0xb0, 0x30, 0x81, 0xe9, 0x61,
		0x61, 0xc2, 0xc2, 0x84, 0x85, 0x09, 0x0b, 0x53, 0x43, 0xc5, 0xb9, 0xd5, 0x40, 0x14, 0xb5, 0xb5,
		0xde, 0xaa, 0xe4, 0xe3, 0x19, 0x1e, 0x2b, 0x2b, 0x2a, 0x21, 0xa0, 0x15, 0xa4, 0xb6, 0xcf, 0x68,
		0x4e, 0x3a, 0x27, 0xe3, 0x39, 0x29, 0x6a, 0x9d, 0x2d, 0x89, 0xa5, 0x5a, 0xcc, 0x9e, 0xba, 0xf2,
		0x16, 0xd2, 0xeb, 0xbe, 0x29, 0xe2, 0x7c, 0x50, 0xd8, 0xa2, 0x98, 0x9c, 0x0e, 0x0a, 0x5b, 0xa0,
		0xb0, 0x45, 0x8e, 0x38, 0x1a, 0xf5, 0x5d, 0xc0, 0x15, 0x76, 0xf9, 0x56, 0x4c, 0xc4, 0x28, 0x64,
		0xd4, 0xb2, 0x20, 0x5e, 0xb2, 0x22, 0x5c, 0x32, 0x37, 0x6d, 0xb3, 0x33, 0x69, 0x15, 0x12, 0x2b,
		0x99, 0x10, 0x2a, 0x91, 0x48, 0xd5, 0xaa, 0x47, 0xb5, 0xa3, 0x83, 0xc3, 0xea, 0xd1, 0x3e, 0x64,
		0x6b, 0xad, 0x88, 0x0b, 0xf9, 0x77, 0x69, 0xc3, 0xa0, 0x5a, 0x34, 0xa8, 0xac, 0xef, 0x46, 0xdf,
		0xec, 0xe9, 0x0e, 0x33, 0x5c, 0x05, 0x44, 0xc5, 0xc4, 0xb8, 0x9a, 0xbd, 0x2f, 0x0c, 0x2d, 0x18,
		0x5a, 0x30, 0xb4, 0x60, 0x68, 0xc1, 0xd0, 0x9a, 0xae, 0x41, 0xed, 0x78, 0x4c, 0x1f, 0x2b, 0x4a,
		0xb7, 0xaf, 0x46, 0x57, 0x6a, 0x8a, 0x5b, 0xe7, 0xab, 0x6d, 0x8d, 0x9f, 0x4d, 0xeb, 0xfb, 0xa0,
		0xb5, 0x7d, 0xe3, 0xfc, 0xaa, 0xf5, 0x7b, 0xe7, 0x46, 0x65, 0xcb, 0xf3, 0xa0, 0x61, 0xfd, 0x7f,
		0x1a, 0xd7, 0x97, 0x9d, 0x7f, 0x37, 0x9a, 0x9f, 0x7f, 0x55, 0xd9, 0xaf, 0x3e, 0xe8, 0x47, 0xff,
		0xa9, 0x79, 0x7d, 0xd3, 0xea, 0xdc, 0x34, 0x4f, 0x3b, 0x5f, 0x2e, 0xae, 0x1b, 0x37, 0x97, 0x67,
		0x5f, 0xeb, 0x1f, 0xcf, 0x1a, 0x2a, 0x1f, 0xc3, 0xef, 0x39, 0x7f, 0xd9, 0xfa, 0xb5, 0x71, 0x9d,
		0xe9, 0x63, 0xd4, 0x46, 0x8f, 0xf1, 0xb5, 0x71, 0xdd, 0xfc, 0xd4, 0x3c, 0xa9, 0xb7, 0x9a, 0x97,
		0x17, 0x9d, 0x4f, 0xf5, 0xa6, 0xa2, 0xee, 0xed, 0xca, 0xe2, 0x85, 0x94, 0x77, 0x5f, 0x9f, 0x6c,
		0x2a, 0xa5, 0xf6, 0x58, 0x9c, 0x58, 0x2b, 0xed, 0xfa, 0x1d, 0x27, 0xd4, 0x4a, 0x9b, 0xb7, 0x2f,
		0x11, 0xe9, 0x63, 0xad, 0xa6, 0xf0, 0xfe, 0xd3, 0xca, 0x4d, 0x55, 0x0b, 0xf1, 0xc2, 0x7b, 0xbe,
		0x0b, 0x69, 0xaa, 0xfa, 0x38, 0x48, 0x9d, 0x85, 0x1a, 0xdc, 0x0e, 0x86, 0x29, 0x0c, 0x53, 0x18,
		0xa6, 0x30, 0x4c, 0x61, 0x98, 0x4e, 0xed, 0xb8, 0x3b, 0xdb, 0xee, 0x33, 0x43, 0xa9, 0x25, 0x5a,
		0x29, 0xf4, 0x12, 0xb1, 0x1f, 0x9e, 0x63, 0xe8, 0x03, 0xcb, 0xf5, 0x8c, 0xbb, 0xbe, 0xa2, 0xc5,
		0x72, 0xd8, 0x3d, 0x73, 0x98, 0xd5, 0x5d, 0x4b, 0xaf, 0xe6, 0x58, 0x12, 0x7b, 0x8e, 0x71, 0xef,
		0xe9, 0x26, 0xf3, 0xee, 0x75, 0xf7, 0x79, 0x64, 0xd7, 0xeb, 0x73, 0x71, 0x6b, 0x61, 0xa0, 0xda,
		0xce, 0x86, 0xe5, 0xfe, 0x4c, 0x16, 0x7f, 0x93, 0xd3, 0x7f, 0x92, 0x4b, 0x07, 0x7c, 0x69, 0x29,
		0xff, 0xc0, 0x97, 0xb6, 0x28, 0x7a, 0x7f, 0x31, 0xf3, 0xe1, 0xd1, 0x53, 0x67, 0xa1, 0x84, 0xf7,
		0x83, 0x89, 0x02, 0x13, 0x05, 0x26, 0x0a, 0x4c, 0x14, 0x98, 0x28, 0x08, 0x52, 0x2c, 0x28, 0x9c,
		0x47, 0x90, 0xa2, 0xca, 0x07, 0x40, 0x90, 0xa2, 0x6c, 0x91, 0x42, 0x90, 0x22, 0x82, 0x14, 0x37,
		0xcd, 0xb0, 0x2a, 0x54, 0x37, 0x66, 0x45, 0xb9, 0x99, 0x45, 0xcc, 0xc9, 0x94, 0xd9, 0x69, 0xbd,
		0x20, 0x29, 0x98, 0x72, 0xe0, 0x3c, 0xfd, 0x0e, 0xa1, 0x1d, 0x91, 0x78, 0xaf, 0x8d, 0x2c, 0x43,
		0x29, 0x69, 0x94, 0xa5, 0xd1, 0x42, 0xd5, 0x3d, 0x4f, 0x4e, 0x43, 0xdf, 0x11, 0x16, 0x6d, 0xf4,
		0xd9, 0x48, 0x20, 0x24, 0x9d, 0x9f, 0x23, 0x68, 0x32, 0x75, 0x07, 0x35, 0x95, 0x21, 0x4a, 0x97,
		0x4e, 0x8f, 0x39, 0xac, 0xf7, 0x71, 0xb4, 0x26, 0xd6, 0xa0, 0xdf, 0x97, 0x79, 0x8b, 0x2f, 0x2e,
		0x73, 0xa4, 0x00, 0x00, 0x6a, 0x11, 0x95, 0x7c, 0x0c, 0x14, 0x4b, 0xfd, 0x4b, 0x50, 0xfc, 0xf9,
		0x57, 0xf8, 0xb4, 0xaa, 0x9e, 0x4e, 0x21, 0xd3, 0x8c, 0x44, 0xb4, 0x5f, 0x64, 0xed, 0x93, 0xdc,
		0xef, 0x0f, 0xc2, 0x2d, 0x91, 0xcf, 0xad, 0x40, 0x23, 0xfe, 0xe2, 0xc2, 0x4a, 0x20, 0xa8, 0xa5,
		0x00, 0xbd, 0x52, 0xc9, 0xe7, 0x24, 0x0a, 0x9f, 0x10, 0x14, 0x47, 0xe1, 0x0c, 0x44, 0xc3, 0x45,
		0x4e, 0x13, 0xa2, 0xb0, 0x53, 0x19, 0xce, 0x11, 0x89, 0x4e, 0x10, 0x59, 0xce, 0x0e, 0xe9, 0x4e,
		0x0d, 0xe9, 0xce, 0x0b, 0xb9, 0x4e, 0x8a, 0x7c, 0x1d, 0x4e, 0xa7, 0x26, 0xad, 0x25, 0x50, 0x32,
		0xba, 0x21, 0x83, 0x45, 0x2c, 0x55, 0xe3, 0x8d, 0x10, 0x8e, 0x4f, 0x6d, 0x6e, 0x49, 0xf1, 0xd3,
		0x4a, 0xf3, 0xcb, 0xca, 0xf4, 0xc3, 0x2a, 0xf0, 0xbb, 0xca, 0xf6, 0xb3, 0x2a, 0xf3, 0xab, 0x2a,
		0xf3, 0xa3, 0xaa, 0xf1, 0x9b, 0xe6, 0x9b, 0x12, 0x91, 0xe6, 0x07, 0x55, 0x10, 0x9a, 0x29, 0x29,
		0x14, 0x93, 0xd0, 0x64, 0x7a, 0x4f, 0x7d, 0x04, 0xe8, 0xae, 0x69, 0x75, 0xa5, 0x1f, 0x04, 0xe1,
		0x5d, 0x70, 0x1c, 0xe0, 0x38, 0xc0, 0x71, 0x80, 0xe3, 0x80, 0x54, 0xe2, 0x3d, 0xf3, 0x89, 0x79,
		0x66, 0xf7, 0x4f, 0x57, 0x4a, 0x25, 0x75, 0x89, 0x15, 0xd3, 0x4b, 0x5f, 0xac, 0xc0, 0x81, 0x5d,
		0xb2, 0x0c, 0xcb, 0x76, 0x59, 0xd7, 0xb6, 0x7a, 0x32, 0xaa, 0x84, 0x4a, 0x8e, 0xa9, 0x91, 0xe8,
		0x5a, 0x54, 0x11, 0x33, 0xa3, 0x2a, 0x46, 0x46, 0x79, 0xdc, 0x82, 0xba, 0x38, 0x05, 0x99, 0x01,
		0xc7, 0x2a, 0x62, 0x5c, 0x32, 0xac, 0x60, 0xbe, 0xce, 0x52, 0x51, 0x10, 0x0f, 0x73, 0x7b, 0x73,
		0xb0, 0xbe, 0xe7, 0x18, 0x96, 0x6b, 0x8e, 0xc4, 0xcd, 0x95, 0x8e, 0xf8, 0xa7, 0xef, 0x05, 0xdc,
		0x0f, 0xdc, 0x0f, 0xdc, 0x0f, 0xdc, 0x4f, 0x2a, 0xf1, 0x32, 0xfb, 0x27, 0xc9, 0x44, 0xfd, 0x40,
		0xe3, 0x40, 0xe3, 0x40, 0xe3, 0x40, 0xe3, 0x40, 0xe3, 0x9b, 0x8a, 0xc6, 0x7b, 0xa6, 0xdb, 0x75,
		0xcc, 0x27, 0xd3, 0x32, 0x3c, 0xdb, 0x91, 0x07, 0xc4, 0x67, 0x6f, 0x03, 0x0c, 0x0e, 0x0c, 0x0e,
		0x0c, 0x0e, 0x0c, 0x4e, 0x2a, 0xf1, 0xd2, 0x52, 0x50, 0x25, 0xa6, 0x9c, 0x02, 0x80, 0x03, 0x80,
		0x03, 0x80, 0x27, 0x11, 0x01, 0x55, 0x29, 0x9e, 0x80, 0xdd, 0x80, 0xdd, 0x0a, 0x60, 0x37, 0xb3,
		0xfa, 0xcf, 0xf2, 0xd0, 0xb6, 0x3f, 0x3a, 0x40, 0x36, 0x40, 0x36, 0x40, 0x36, 0x40, 0x36, 0xb9,
		0x66, 0xd1, 0xbd, 0xd1, 0x6d, 0x24, 0x46, 0x3c, 0x4a, 0xa8, 0x67, 0x2d, 0xb7, 0xed, 0x81, 0x9a,
		0x36, 0x07, 0x41, 0x5b, 0x83, 0xab, 0x2f, 0x37, 0xbf, 0x76, 0x9a, 0x57, 0x5f, 0x6b, 0x9d, 0xc6,
		0x6f, 0x57, 0x67, 0xcd, 0x93, 0x66, 0xab, 0x73, 0xf1, 0xe5, 0x4c, 0x66, 0x97, 0x83, 0xa0, 0xab,
		0xc1, 0xf8, 0xbe, 0x07, 0xea, 0xee, 0x5b, 0x9d, 0x79, 0x5f, 0x85, 0x37, 0xf6, 0x7b, 0x18, 0x5c,
		0x5c, 0xce, 0xdd, 0xb0, 0x50, 0x15, 0x17, 0xe4, 0xf7, 0x06, 0x58, 0x9c, 0x20, 0xa9, 0x95, 0xf0,
		0xe3, 0x05, 0x41, 0x6a, 0x17, 0x80, 0xd8, 0xfd, 0x26, 0xd5, 0x30, 0x88, 0xdd, 0x6d, 0xb2, 0x4a,
		0xee, 0x6f, 0x5a, 0xb1, 0x04, 0x05, 0x15, 0x82, 0x15, 0x54, 0x04, 0x96, 0xb9, 0xb9, 0x17, 0x2b,
		0xfe, 0x9a, 0x3d, 0x67, 0xa1, 0xa0, 0x6b, 0x94, 0xe7, 0x2b, 0x53, 0x1d, 0x2b, 0xaa, 0xb1, 0x98,
		0x45, 0x41, 0x5f, 0xe5, 0x65, 0x15, 0xe3, 0x0a, 0xf6, 0xbe, 0xbd, 0xb8, 0xe0, 0x24, 0x36, 0x80,
		0x93, 0x08, 0x73, 0xe5, 0x25, 0x71, 0x12, 0xfe, 0xe8, 0xe0, 0x24, 0xc0, 0x49, 0x80, 0x93, 0x00,
		0x27, 0x41, 0x2a, 0xf1, 0x6e, 0x60, 0x7a, 0x4b, 0x24, 0x24, 0x3e, 0x6c, 0x80, 0xf6, 0xb7, 0x1d,
		0xf3, 0x21, 0x08, 0xcf, 0xd0, 0x8d, 0x5e, 0x4f, 0x62, 0x28, 0xc8, 0xfc, 0x8d, 0x70, 0x26, 0xe0,
		0x4c, 0xc0, 0x99, 0x80, 0x33, 0x81, 0x54, 0xe2, 0xcd, 0xe7, 0xef, 0x07, 0xbe, 0x7a, 0x61, 0xae,
		0x2b, 0xf5, 0x64, 0x90, 0x30, 0xf6, 0x95, 0xe1, 0x79, 0xcc, 0xb1, 0xa4, 0xb1, 0x06, 0xa5, 0xad,
		0xad, 0xdb, 0x5d, 0xfd, 0xc8, 0xd0, 0xef, 0xeb, 0xfa, 0xa7, 0xf6, 0xcf, 0xca, 0xfb, 0xda, 0xf0,
		0x78, 0xfb, 0xe7, 0xe1, 0x70, 0xfe, 0xc3, 0xd7, 0x65, 0x5f, 0xab, 0xbc, 0x3f, 0x1c, 0x1e, 0xc7,
		0xfc, 0xcb, 0xc1, 0xf0, 0x38, 0xe1, 0x18, 0xfb, 0xc3, 0xad, 0x85, 0xaf, 0x8e, 0x3e, 0xaf, 0xc6,
		0x5d, 0x50, 0x8b, 0xb9, 0x60, 0x2f, 0xee, 0x82, 0xbd, 0x98, 0x0b, 0x62, 0x1f, 0xa9, 0x1a, 0x73,
		0xc1, 0xfe, 0xf0, 0x75, 0xe1, 0xfb, 0x5b, 0xcb, 0xbf, 0x7a, 0x30, 0xdc, 0x7e, 0x8d, 0xfb, 0xb7,
		0xc3, 0xe1, 0xeb, 0xf1, 0xf6, 0x36, 0xfd, 0x46, 0x6f, 0xcb, 0x10, 0xc0, 0xcb, 0x9b, 0xe6, 0x6f,
		0xd2, 0xa5, 0xf0, 0x0f, 0x88, 0x61, 0x56, 0x62, 0xf8, 0xb7, 0x52, 0xde, 0x09, 0x12, 0xd0, 0xbd,
		0xd9, 0xd0, 0xbd, 0x37, 0xcc, 0x0f, 0x7e, 0xd2, 0xaa, 0x3b, 0x35, 0xcd, 0xbe, 0xd7, 0xf2, 0xd0,
		0xef, 0x0d, 0xf4, 0xaf, 0x2c, 0xf4, 0xc9, 0xbd, 0xd8, 0xa0, 0x83, 0x37, 0x8c, 0x10, 0x70, 0x2d,
		0x35, 0x7c, 0x80, 0x6b, 0x81, 0x0e, 0x00, 0x1d, 0x00, 0x3a, 0x00, 0x74, 0x00, 0xad, 0xc4, 0x23,
		0x37, 0x44, 0x25, 0x98, 0x44, 0x6e, 0x88, 0x90, 0xcc, 0x22, 0x37, 0x24, 0xa5, 0x08, 0x20, 0x37,
		0x04, 0xc0, 0x1b, 0x34, 0x03, 0x68, 0x06, 0xd0, 0x0c, 0xa0, 0x19, 0xa0, 0xed, 0x0a, 0x46, 0x33,
		0x3c, 0x4f, 0x2b, 0x34, 0x49, 0x14, 0xc3, 0xb3, 0xac, 0x8d, 0x06, 0x7a, 0x01, 0xf4, 0x02, 0xe8,
		0x05, 0xd0, 0x0b, 0xa0, 0x17, 0x40, 0x2f, 0xc0, 0xa4, 0x04, 0xbd, 0x00, 0x59, 0x00, 0xe0, 0xce,
		0x3f, 0xe0, 0xb6, 0x3d, 0xbb, 0x6b, 0xf7, 0xf5, 0xc0, 0xf1, 0x26, 0x13, 0x75, 0xcf, 0xde, 0x08,
		0xd0, 0x1b, 0xd0, 0x1b, 0xd0, 0x1b, 0xd0, 0x9b, 0x54, 0xe2, 0x47, 0xb3, 0xaa, 0x47, 0x9a, 0x06,
		0x95, 0x29, 0x16, 0x56, 0x40, 0x49, 0x65, 0x8a, 0x4a, 0x50, 0x9a, 0xe2, 0xa4, 0x71, 0x25, 0xb5,
		0x1e, 0x84, 0x7f, 0x97, 0x8f, 0x9f, 0xa5, 0xde, 0x64, 0xcf, 0xbf, 0xc9, 0xc9, 0xe5, 0xc5, 0xa7,
		0xe6, 0x67, 0x94, 0x7c, 0x98, 0xbb, 0xc5, 0x68, 0xee, 0x8f, 0xb5, 0xaa, 0xcc, 0xca, 0x07, 0xe1,
		0xcc, 0x1f, 0x6b, 0x7b, 0x52, 0xeb, 0x2b, 0x8c, 0x44, 0xf5, 0x58, 0xab, 0xec, 0x6e, 0x66, 0x35,
		0x85, 0x5c, 0x02, 0xd3, 0xef, 0x46, 0xdf, 0xec, 0xc9, 0x83, 0xa3, 0xc1, 0xf0, 0x00, 0xa1, 0x00,
		0xa1, 0x00, 0xa1, 0x00, 0xa1, 0xa4, 0x12, 0xbf, 0xc9, 0x5d, 0x60, 0x73, 0xd5, 0x9b, 0xbc, 0x6e,
		0x59, 0xb6, 0x67, 0x78, 0xa6, 0x4d, 0x4b, 0x6b, 0x94, 0xdc, 0xee, 0x23, 0x7b, 0x32, 0x9e, 0x0d,
		0xef, 0x71, 0xb4, 0xdc, 0x65, 0xfb, 0x99, 0x59, 0x5d, 0x5f, 0x45, 0xeb, 0x16, 0xf3, 0xfe, 0xb2,
		0x9d, 0x3f, 0x75, 0xd3, 0x72, 0x3d, 0xc3, 0xea, 0xb2, 0xf2, 0xfc, 0x07, 0xee, 0xc2, 0x27, 0xe5,
		0x39, 0x7f, 0x77, 0x79, 0x5c, 0x67, 0xc5, 0x64, 0x6e, 0xf4, 0xf3, 0x4b, 0xb9, 0x6b, 0x58, 0x3d,
		0xb3, 0x67, 0x8c, 0x3e, 0x30, 0xbc, 0x47, 0x77, 0xee, 0xf7, 0xb2, 0xeb, 0x19, 0xb4, 0xcd, 0xfd,
		0x5d, 0xcf, 0x19, 0x74, 0xbd, 0xb0, 0x08, 0x48, 0xe9, 0x32, 0x7a, 0xc5, 0x8b, 0xe0, 0xf1, 0x9b,
		0xe1, 0xd3, 0x77, 0xe6, 0x7e, 0x77, 0xe7, 0x3f, 0xe8, 0xdc, 0x04, 0xaf, 0x77, 0x1d, 0xbc, 0x5d,
		0xa7, 0xc5, 0xae, 0xc2, 0x97, 0x1b, 0xff, 0xf8, 0xd2, 0x39, 0x19, 0xbf, 0xcb, 0xd5, 0xe8, 0xd5,
		0x66, 0x7f, 0xed, 0xdc, 0xf8, 0x6f, 0xf6, 0x2e, 0x1f, 0xd2, 0x29, 0x36, 0x82, 0xa0, 0x5c, 0x8f,
		0xce, 0xa3, 0x25, 0x4c, 0x9a, 0x36, 0x1b, 0x32, 0xaf, 0xcd, 0x65, 0xd4, 0x6b, 0x94, 0xcd, 0x16,
		0x4a, 0x67, 0xa6, 0xeb, 0xd5, 0x3d, 0x8f, 0xa6, 0x20, 0x40, 0xe9, 0xdc, 0xb4, 0x1a, 0x7d, 0x36,
		0x12, 0x0f, 0x22, 0x7e, 0xbb, 0x74, 0x6e, 0xfc, 0x98, 0x1a, 0x51, 0x4e, 0x9f, 0x96, 0xd2, 0xa5,
		0xd3, 0x63, 0x0e, 0xeb, 0x7d, 0x1c, 0xad, 0x86, 0x35, 0xe8, 0xf7, 0x29, 0x87, 0xfc, 0xe2, 0x32,
		0x87, 0x84, 0x80, 0x17, 0x15, 0x36, 0x62, 0xe5, 0x99, 0x43, 0xa5, 0x49, 0xa0, 0x2e, 0x73, 0xa3,
		0x26, 0xc5, 0x14, 0x24, 0xbf, 0x5a, 0xe3, 0xbb, 0x92, 0x53, 0x36, 0xa9, 0x64, 0x32, 0x0f, 0xb2,
		0x28, 0x20, 0x7c, 0x19, 0x0a, 0x1d, 0x9f, 0x98, 0xa5, 0x17, 0x12, 0x0e, 0x01, 0x29, 0x75, 0xed,
		0xbe, 0x40, 0xcf, 0xa2, 0xa9, 0xe6, 0x7d, 0x7d, 0xee, 0x63, 0x52, 0x90, 0x00, 0x10, 0x36, 0xf4,
		0x29, 0x0c, 0x7a, 0x42, 0xc3, 0x9d, 0xca, 0x40, 0x27, 0x37, 0xc4, 0xc9, 0x0d, 0x6e, 0x5a, 0xc3,
		0x5a, 0xad, 0x52, 0x15, 0x36, 0x88, 0x23, 0x89, 0xe9, 0x33, 0xe3, 0xde, 0x61, 0xf7, 0x22, 0x12,
		0x33, 0x36, 0x70, 0x05, 0x42, 0x9c, 0x4a, 0x57, 0xa1, 0x5e, 0xdf, 0xd9, 0x09, 0xcc, 0xa2, 0x72,
		0xb0, 0xa5, 0x73, 0xac, 0xba, 0x98, 0xd5, 0x7b, 0xb6, 0x4d, 0x01, 0xba, 0x7e, 0xaa, 0x22, 0x7b,
		0x38, 0x12, 0x14, 0x18, 0x14, 0x18, 0x14, 0xd8, 0x9a, 0x28, 0xb0, 0x68, 0x57, 0xe7, 0x58, 0x87,
		0x05, 0x0c, 0x94, 0xb0, 0x02, 0x13, 0x21, 0xb2, 0xa2, 0xc9, 0x17, 0xd5, 0x5e, 0x55, 0x68, 0x2f,
		0x68, 0x2f, 0x45, 0xda, 0xeb, 0xd4, 0x14, 0x23, 0xd3, 0x4a, 0x46, 0x37, 0x0c, 0xda, 0x14, 0x5c,
		0xe5, 0xb1, 0xe0, 0x85, 0xe3, 0x89, 0x72, 0x95, 0x24, 0xae, 0x50, 0x32, 0xd7, 0x27, 0xa5, 0xab,
		0x53, 0x82, 0x6b, 0x93, 0xda, 0x95, 0x29, 0xcd, 0x75, 0x29, 0xcd, 0x55, 0x29, 0xc7, 0x35, 0x99,
		0x2d, 0x5f, 0x4f, 0xe6, 0x6a, 0x94, 0xe0, 0x5a, 0x24, 0x72, 0x25, 0x0a, 0x30, 0x87, 0xef, 0x45,
		0x55, 0x9e, 0xee, 0x9a, 0x14, 0x79, 0x82, 0x73, 0x8a, 0x2f, 0x1c, 0x15, 0xea, 0x0f, 0xea, 0x0f,
		0xea, 0x2f, 0x67, 0xea, 0xcf, 0x33, 0x9f, 0x98, 0x67, 0x76, 0xff, 0x74, 0x0f, 0x6a, 0x84, 0x2a,
		0x90, 0xa0, 0x6a, 0x6f, 0xe9, 0x8b, 0x15, 0xe4, 0xe8, 0x94, 0x2c, 0xc3, 0xb2, 0x5d, 0xd6, 0xb5,
		0xad, 0x1e, 0x45, 0xa5, 0x61, 0xe2, 0xb4, 0x3c, 0xc2, 0x18, 0x08, 0x19, 0x69, 0x77, 0xb2, 0xd2,
		0xec, 0xa4, 0xa7, 0x52, 0xc9, 0x4b, 0x9d, 0xa2, 0x8c, 0xa8, 0x94, 0x91, 0x26, 0x17, 0x2d, 0x99,
		0x1c, 0x57, 0xfb, 0xba, 0xac, 0x62, 0x4e, 0xc2, 0x57, 0xda, 0xc5, 0xc5, 0x7a, 0x9e, 0x63, 0x58,
		0xae, 0x39, 0x5a, 0x7e, 0x97, 0x1c, 0xf1, 0x4d, 0x8f, 0x0d, 0xdc, 0x07, 0xdc, 0x07, 0xdc, 0x97,
		0x33, 0xdc, 0xd7, 0xb5, 0x07, 0x96, 0xc7, 0x9c, 0xdc, 0xa1, 0x3e, 0xa0, 0x33, 0xa0, 0x33, 0xa0,
		0x33, 0xa0, 0xb3, 0xcd, 0x45, 0x67, 0x77, 0x2e, 0x41, 0x92, 0xd6, 0x84, 0xde, 0x74, 0x85, 0x73,
		0xb2, 0x80, 0xc0, 0x80, 0xc0, 0x80, 0xc0, 0xc8, 0x11, 0x98, 0xeb, 0xe8, 0xae, 0xd9, 0xa3, 0xca,
		0xa8, 0x8f, 0x9c, 0x0f, 0x47, 0x04, 0x63, 0x85, 0x2f, 0x9b, 0x3b, 0x0c, 0x36, 0x9e, 0xba, 0xa7,
		0xe7, 0xbe, 0xab, 0xf7, 0x8d, 0x3b, 0xd6, 0xa7, 0xcc, 0xcf, 0x21, 0x9c, 0x41, 0x39, 0x33, 0x49,
		0x3f, 0xa3, 0x0b, 0x33, 0x8b, 0x42, 0x6b, 0x0a, 0x66, 0x5b, 0xaa, 0x4d, 0x11, 0x0f, 0x58, 0x0f,
		0x50, 0x5d, 0x2b, 0x7b, 0xa3, 0x44, 0x89, 0x91, 0x12, 0x2f, 0x03, 0xbb, 0xb5, 0x0f, 0xfb, 0x87,
		0x28, 0xb3, 0x96, 0xad, 0x5d, 0x23, 0x7f, 0xd4, 0x5c, 0x57, 0x71, 0x97, 0x78, 0x7c, 0x31, 0x6b,
		0xf0, 0xc4, 0x9c, 0x20, 0x9d, 0x09, 0x55, 0x8a, 0xa6, 0x71, 0x88, 0x92, 0x2a, 0x45, 0x7e, 0x65,
		0x9f, 0xe6, 0xd5, 0xd7, 0x5a, 0xa7, 0xf1, 0xdb, 0xd5, 0x59, 0xf3, 0xa4, 0xd9, 0xea, 0x5c, 0x7c,
		0x39, 0x3b, 0x93, 0x59, 0x4d, 0xa8, 0x32, 0xba, 0xe5, 0xf5, 0xe5, 0x97, 0x56, 0xe3, 0xba, 0x53,
		0x3f, 0x6b, 0x5c, 0xb7, 0xa4, 0xd6, 0x47, 0x0a, 0xdf, 0xef, 0x40, 0xdd, 0xfb, 0xed, 0xf9, 0xb7,
		0x3c, 0x57, 0x74, 0xb7, 0xc3, 0xd1, 0xdd, 0x1a, 0x17, 0xad, 0xeb, 0xcb, 0xab, 0xdf, 0x3b, 0x67,
		0xf5, 0x8f, 0x8d, 0xb3, 0x4e, 0xf3, 0xe2, 0xb4, 0x79, 0x52, 0x6f, 0x5d, 0x5e, 0xcb, 0xbc, 0xef,
		0x87, 0xd1, 0x7d, 0x2f, 0x2e, 0x83, 0x5b, 0xa2, 0x28, 0xd4, 0xbc, 0x6a, 0x88, 0x59, 0x10, 0x29,
		0x68, 0x3a, 0xba, 0xeb, 0xac, 0xd0, 0x1d, 0x6b, 0x7b, 0x32, 0xef, 0xb5, 0xa8, 0x33, 0xa4, 0xa2,
		0x86, 0x65, 0x9b, 0x98, 0x3b, 0x46, 0x3d, 0xd9, 0x09, 0x35, 0x16, 0x6e, 0x12, 0x37, 0x49, 0xbc,
		0x29, 0x34, 0xad, 0x09, 0x8f, 0xb5, 0x0a, 0xaa, 0x6f, 0xe5, 0x00, 0x47, 0x11, 0xa9, 0x1e, 0x09,
		0x44, 0x8a, 0xa4, 0x2e, 0xee, 0x32, 0xba, 0xb7, 0x4b, 0xeb, 0xda, 0x8e, 0x6e, 0xed, 0x6b, 0xd0,
		0xad, 0xbd, 0x4d, 0x29, 0x68, 0x32, 0xbb, 0xb3, 0xa3, 0x2b, 0xfb, 0x5a, 0x74, 0x65, 0x6f, 0xc3,
		0xc1, 0xc9, 0xbd, 0x03, 0xc4, 0xaa, 0x4a, 0x2c, 0x9c, 0x61, 0x22, 0xd5, 0x25, 0xe6, 0x0f, 0x2c,
		0xb8, 0x38, 0x93, 0x0d, 0x09, 0x17, 0x27, 0x5c, 0x9c, 0x09, 0x24, 0x8e, 0xcc, 0x9b, 0x44, 0xe8,
		0x3d, 0x42, 0x84, 0x19, 0xc9, 0xb8, 0x88, 0x30, 0x93, 0x1e, 0x61, 0x26, 0xab, 0x2d, 0x0e, 0xe2,
		0xca, 0x36, 0x14, 0x76, 0xf9, 0x11, 0xbf, 0x2e, 0x25, 0xf2, 0x0a, 0x47, 0xa4, 0x01, 0x5f, 0x15,
		0x80, 0x2f, 0x80, 0xaf, 0x4d, 0x05, 0x5f, 0xa2, 0x35, 0x2b, 0xa2, 0x81, 0x4c, 0x2b, 0x88, 0x8c,
		0x62, 0x3d, 0xdd, 0xee, 0x7a, 0xcc, 0x73, 0xe9, 0x04, 0x25, 0x62, 0x0d, 0x17, 0x6e, 0x41, 0xb4,
		0xae, 0xb4, 0xc5, 0xfe, 0xc9, 0x8b, 0xfc, 0xcb, 0x28, 0xee, 0x2f, 0xb1, 0xa8, 0xbf, 0xac, 0x62,
		0xfe, 0xd2, 0x8b, 0xf8, 0x4b, 0x2f, 0xde, 0x2f, 0xb7, 0x68, 0x7f, 0xbe, 0x2a, 0xb6, 0x93, 0x17,
		0xe7, 0x97, 0x92, 0x42, 0x34, 0xaf, 0x02, 0x28, 0x1d, 0x07, 0x72, 0xc2, 0x03, 0x25, 0x44, 0xb1,
		0xc8, 0x0c, 0x07, 0x94, 0xdd, 0x6f, 0x55, 0x59, 0xd0, 0x97, 0xfc, 0x60, 0x2f, 0x09, 0x91, 0x02,
		0x52, 0xa3, 0xfc, 0x14, 0xa6, 0x24, 0xad, 0xe3, 0x6a, 0xaf, 0xb7, 0xeb, 0xf9, 0x5d, 0x0e, 0x76,
		0xc3, 0x34, 0x60, 0x7c, 0xfe, 0x53, 0x32, 0x22, 0xf5, 0x6f, 0x00, 0x3c, 0x0a, 0x3c, 0x0a, 0x3c,
		0x0a, 0x3c, 0x0a, 0x3c, 0x0a, 0x3c, 0x0a, 0x3c, 0x0a, 0x3c, 0x0a, 0x3c, 0x0a, 0x3c, 0x3a, 0x8b,
		0x47, 0x25, 0x72, 0xa3, 0xe0, 0x44, 0x81, 0x41, 0x81, 0x41, 0x81, 0x41, 0x81, 0x41, 0x81, 0x41,
		0x81, 0x41, 0x81, 0x41, 0x81, 0x41, 0x81, 0x41, 0x97, 0x62, 0x50, 0x69, 0x5c, 0x28, 0x38, 0x50,
		0xe0, 0x4f, 0xe0, 0x4f, 0xe0, 0x4f, 0xe0, 0x4f, 0xe0, 0x4f, 0xe0, 0x4f, 0xe0, 0x4f, 0xe0, 0x4f,
		0xe0, 0xcf, 0xf9, 0x45, 0xb4, 0x07, 0x9e, 0xf4, 0x40, 0xd1, 0x25, 0xf7, 0x00, 0x2a, 0x05, 0x2a,
		0x05, 0x2a, 0x05, 0x2a, 0x05, 0x2a, 0x05, 0x2a, 0x05, 0x2a, 0x05, 0x2a, 0x05, 0x2a, 0x05, 0x2a,
		0x8d, 0x41, 0xa5, 0x72, 0xe8, 0xd1, 0x85, 0x3b, 0x00, 0x91, 0x02, 0x91, 0x02, 0x91, 0x02, 0x91,
		0x02, 0x91, 0x02, 0x91, 0x02, 0x91, 0x02, 0x91, 0x02, 0x91, 0x02, 0x91, 0xce, 0x21, 0x52, 0x99,
		0xfc, 0x28, 0x78, 0x51, 0xa0, 0x50, 0xa0, 0x50, 0xa0, 0x50, 0xa0, 0x50, 0xa0, 0x50, 0xa0, 0x50,
		0xa0, 0x50, 0xa0, 0x50, 0xa0, 0xd0, 0xe5, 0x28, 0x54, 0x1e, 0x1f, 0x0a, 0x1e, 0x14, 0x08, 0x14,
		0x08, 0x14, 0x08, 0x14, 0x08, 0x14, 0x08, 0x14, 0x08, 0x14, 0x08, 0x14, 0x08, 0x74, 0xcd, 0x10,
		0x68, 0xa6, 0xa5, 0x4d, 0xeb, 0x96, 0x65, 0x7b, 0x41, 0x4f, 0x46, 0x92, 0x0a, 0xa7, 0x6e, 0xf7,
		0x91, 0x3d, 0x19, 0xcf, 0x86, 0xf7, 0x38, 0x3a, 0xc1, 0xca, 0xf6, 0x33, 0xb3, 0xba, 0x3e, 0x4a,
		0xd4, 0x2d, 0xe6, 0xfd, 0x65, 0x3b, 0x7f, 0xea, 0xa6, 0xe5, 0x7a, 0x86, 0xd5, 0x65, 0xe5, 0xf9,
		0x0f, 0xdc, 0x85, 0x4f, 0xca, 0x2e, 0x7b, 0x18, 0xa1, 0x08, 0xdd, 0xb1, 0x07, 0x9e, 0x69, 0x3d,
		0x94, 0x3d, 0xa6, 0x3f, 0xdb, 0x7d, 0xb3, 0x6b, 0x32, 0x37, 0xfa, 0xf9, 0xa5, 0xec, 0x7a, 0x86,
		0xc7, 0xca, 0x44, 0x05, 0x8f, 0x83, 0xb7, 0xf0, 0x9c, 0x41, 0xd7, 0xb3, 0xc2, 0x73, 0xf8, 0x32,
		0x7a, 0x89, 0x8b, 0xe0, 0x01, 0x9b, 0xe1, 0xf3, 0x75, 0xe6, 0x7e, 0x77, 0xe7, 0x3f, 0xe8, 0xdc,
		0x04, 0x2f, 0x70, 0x1d, 0x3c, 0x7f, 0xa7, 0xc5, 0xae, 0xc2, 0xc7, 0x1f, 0xff, 0xf8, 0xd2, 0xb9,
		0x19, 0x3d, 0x7d, 0xe7, 0x64, 0xfc, 0xf4, 0x05, 0x2c, 0x5e, 0xcd, 0xac, 0xde, 0xb3, 0x6d, 0x12,
		0x34, 0xda, 0x9b, 0x6a, 0x15, 0x1a, 0x8e, 0x88, 0xce, 0x21, 0x0a, 0xed, 0x1a, 0x14, 0xaf, 0x46,
		0xe7, 0x90, 0x24, 0x12, 0x37, 0x9a, 0x15, 0x7d, 0xbc, 0x45, 0x75, 0x6f, 0x34, 0x3e, 0x5d, 0x17,
		0x11, 0x8a, 0x0e, 0xff, 0xb4, 0x9d, 0xfd, 0xe5, 0xb4, 0xf6, 0xab, 0xa1, 0xb5, 0xdf, 0xed, 0xae,
		0x7e, 0xd4, 0x7e, 0xbd, 0xad, 0xe8, 0x47, 0xed, 0xe0, 0xc7, 0x8a, 0xff, 0xd7, 0xcf, 0xea, 0xf0,
		0xb5, 0x7a, 0xbb, 0xab, 0xd7, 0xc2, 0x4f, 0xab, 0xfb, 0xb7, 0xbb, 0xfa, 0x7e, 0x7b, 0x7b, 0xeb,
		0xdb, 0xb7, 0x9d, 0xb4, 0xd7, 0x6c, 0xff, 0xdc, 0x1b, 0x6e, 0x70, 0x23, 0x3b, 0x05, 0xb3, 0x9b,
		0xc3, 0xc6, 0x6d, 0xe8, 0xe8, 0x99, 0xeb, 0x6d, 0x8f, 0x16, 0x8b, 0xe8, 0xe8, 0xa9, 0x5a, 0x11,
		0x42, 0xdc, 0xd0, 0xd1, 0x73, 0x43, 0x5b, 0x4b, 0x85, 0x2c, 0x06, 0x91, 0x65, 0xee, 0x8f, 0x06,
		0xab, 0x1c, 0x56, 0x39, 0xac, 0xf2, 0xbc, 0x59, 0xe5, 0x9e, 0x63, 0x5a, 0x0f, 0x94, 0x96, 0xf8,
		0x87, 0xac, 0xb4, 0xdd, 0x3b, 0x85, 0x2b, 0x42, 0xc5, 0x80, 0x67, 0xc7, 0x7c, 0x0b, 0x2c, 0xb9,
		0x7a, 0xa2, 0x9b, 0x6f, 0xdf, 0xa6, 0x97, 0x88, 0x74, 0x57, 0xa4, 0x94, 0x9d, 0x91, 0x0a, 0x8d,
		0xba, 0x5b, 0x6b, 0x9c, 0x64, 0x75, 0xe9, 0xcc, 0x74, 0xbd, 0xba, 0xe7, 0xf1, 0xb5, 0x96, 0x2b,
		0x9d, 0x9b, 0x56, 0xa3, 0xcf, 0x46, 0x73, 0xce, 0xe9, 0x1d, 0x2c, 0x9d, 0x1b, 0x3f, 0xa6, 0x46,
		0xa0, 0xf1, 0x6d, 0x96, 0x2e, 0x9d, 0x1e, 0x73, 0x58, 0xef, 0xe3, 0x68, 0x7e, 0xac, 0x41, 0xbf,
		0x2f, 0x32, 0xc4, 0x17, 0x97, 0x39, 0x5c, 0x6e, 0xc9, 0xb4, 0xcb, 0x29, 0xa8, 0x02, 0xb2, 0xd8,
		0xfa, 0x1c, 0x9b, 0x5e, 0xe5, 0x66, 0x4f, 0xb7, 0xcd, 0x93, 0x6f, 0xd6, 0x64, 0xdf, 0x4c, 0xb8,
		0xfe, 0xbc, 0xeb, 0xae, 0x6e, 0xbd, 0x53, 0xac, 0xb2, 0x82, 0xd5, 0x4d, 0xb6, 0xa8, 0xab, 0x97,
		0xe8, 0xed, 0x6f, 0xac, 0x58, 0xbc, 0x12, 0xfb, 0xe1, 0x39, 0x86, 0x3e, 0x18, 0x3d, 0xed, 0x5d,
		0x3f, 0x19, 0x86, 0x2a, 0xfd, 0xf5, 0xc8, 0x92, 0x73, 0x0b, 0x29, 0x04, 0x61, 0x8c, 0xbd, 0x76,
		0xca, 0xc1, 0x5c, 0x97, 0xbd, 0x97, 0x67, 0xa6, 0xfd, 0x43, 0xfb, 0xc5, 0xee, 0xea, 0x96, 0xe9,
		0xbb, 0x46, 0xdc, 0xe3, 0xd3, 0xc6, 0xa7, 0xfa, 0x97, 0xb3, 0x56, 0xa7, 0x79, 0x71, 0xd3, 0xaa,
		0x5f, 0x9c, 0x34, 0x7e, 0x49, 0xb3, 0xaa, 0x9c, 0xe0, 0x7f, 0x1a, 0xe4, 0xfb, 0x2f, 0x9f, 0x52,
		0x23, 0x8a, 0x42, 0xf9, 0x19, 0xc8, 0x9e, 0x72, 0x76, 0xde, 0x49, 0x50, 0xf3, 0xa5, 0x53, 0xe6,
		0x76, 0x1d, 0xf3, 0x99, 0x4b, 0xc7, 0x47, 0xcb, 0x1c, 0xee, 0x0c, 0x2d, 0xdc, 0xa9, 0x5a, 0xf0,
		0x5a, 0x03, 0xc7, 0x57, 0x21, 0x9a, 0xe9, 0x6a, 0xb6, 0xd5, 0x7f, 0xd1, 0xbe, 0x1b, 0x7d, 0xb3,
		0xa7, 0xfd, 0x65, 0x7a, 0x8f, 0x9a, 0xf7, 0xc8, 0xb4, 0x1e, 0xbb, 0x37, 0x06, 0x7d, 0xef, 0x9b,
		0x15, 0x6e, 0x7c, 0x6d, 0xbc, 0xf1, 0x77, 0xd2, 0x2e, 0x8a, 0x80, 0x21, 0x38, 0x2d, 0x0f, 0xbd,
		0xa9, 0xa9, 0xe0, 0x38, 0x45, 0x28, 0xac, 0xbc, 0x19, 0xf1, 0xa0, 0x9e, 0xd5, 0x6c, 0x8f, 0x9e,
		0x77, 0x62, 0x1c, 0xd2, 0x2a, 0xed, 0x97, 0xf2, 0xc8, 0x92, 0x7b, 0x54, 0x25, 0x10, 0x1f, 0x59,
		0xc7, 0xd2, 0xdb, 0xab, 0x1c, 0xbf, 0x0a, 0x6f, 0xcc, 0x6f, 0x29, 0xb0, 0xa6, 0x56, 0x4d, 0xeb,
		0x94, 0xc1, 0xbd, 0xda, 0xf8, 0x4a, 0xd8, 0x3e, 0x7d, 0xc2, 0x65, 0x55, 0x57, 0x7c, 0x31, 0x05,
		0x57, 0x35, 0xcd, 0x45, 0x59, 0xcc, 0x1b, 0x2d, 0x62, 0x92, 0x05, 0x4b, 0xa9, 0x65, 0xb8, 0xe9,
		0x24, 0x6e, 0x45, 0x32, 0x4f, 0x07, 0x8d, 0xdf, 0x4d, 0x32, 0xee, 0x48, 0xda, 0x04, 0x7c, 0x46,
		0xbf, 0x26, 0x9e, 0xc5, 0xf1, 0x5a, 0xa5, 0x57, 0xce, 0x29, 0xe9, 0xd4, 0xd4, 0xb4, 0x29, 0x0f,
		0x3d, 0xca, 0x27, 0x7a, 0x94, 0xa0, 0x87, 0x8b, 0xd9, 0xa4, 0x85, 0x3d, 0x69, 0x44, 0x53, 0x8e,
		0x7d, 0x93, 0x9a, 0x64, 0xe4, 0x27, 0x13, 0x53, 0x92, 0x86, 0x09, 0x8c, 0x84, 0x04, 0xaa, 0xea,
		0xde, 0xe8, 0xf7, 0xef, 0x8c, 0xee, 0x9f, 0x0b, 0x67, 0x59, 0xfa, 0x7d, 0x17, 0x3f, 0x14, 0x76,
		0x21, 0x76, 0x61, 0x46, 0xbb, 0x70, 0x5e, 0x16, 0x75, 0x87, 0xdd, 0xf3, 0xec, 0xc9, 0xc3, 0x14,
		0xd7, 0x5c, 0x45, 0x50, 0x31, 0x9a, 0xb8, 0xe3, 0x45, 0x64, 0xf8, 0xc6, 0x3f, 0x4e, 0xff, 0x5b,
		0x68, 0xf7, 0x4d, 0x7f, 0x7b, 0xf4, 0x6a, 0xa4, 0xd3, 0xcb, 0xc1, 0x07, 0xf0, 0xf1, 0x02, 0xe9,
		0xf9, 0x81, 0x45, 0x9e, 0x60, 0x67, 0xa9, 0x0d, 0x7c, 0xb6, 0xf7, 0xf5, 0xfa, 0xd3, 0x2f, 0x3c,
		0xc6, 0x98, 0xa0, 0x6f, 0x50, 0x90, 0x26, 0x20, 0xb5, 0x09, 0x17, 0x69, 0x83, 0x37, 0x27, 0x4b,
		0xb6, 0x47, 0x20, 0xf1, 0xb7, 0xdb, 0x0a, 0x0f, 0xbc, 0x54, 0xbe, 0x7c, 0x1e, 0x9f, 0x3d, 0x8e,
		0x31, 0x1c, 0x63, 0x1b, 0x0a, 0x26, 0x1d, 0x7b, 0xe0, 0x31, 0xbd, 0x67, 0xba, 0x9e, 0x69, 0x3d,
		0x0c, 0x4c, 0xf7, 0x91, 0x39, 0xe9, 0xb7, 0xda, 0xb2, 0x41, 0xb0, 0xf3, 0xb0, 0xf3, 0x32, 0xda,
		0x79, 0xfc, 0xe2, 0xa8, 0x71, 0xa6, 0x64, 0xf0, 0xa5, 0x5e, 0x08, 0x40, 0x2a, 0xee, 0xb0, 0x17,
		0x91, 0xa8, 0x69, 0xe1, 0xe8, 0xe8, 0xc5, 0xe4, 0x87, 0x20, 0xbe, 0xf3, 0xb6, 0xa2, 0xef, 0x87,
		0xbf, 0xd7, 0x86, 0xaf, 0x07, 0x93, 0x98, 0xfb, 0x9f, 0x7b, 0xc3, 0xd7, 0x83, 0xfd, 0xa9, 0xdf,
		0xab, 0xa3, 0xdf, 0x47, 0x1f, 0x54, 0xc3, 0xa0, 0xfc, 0x83, 0xfd, 0xfd, 0xbd, 0x20, 0x2c, 0xff,
		0x78, 0xd9, 0xe0, 0x1f, 0xfc, 0xc1, 0xf7, 0xc2, 0xdf, 0x8f, 0x86, 0xaf, 0xb5, 0xdb, 0xdd, 0x4a,
		0xf8, 0xdb, 0x87, 0xe1, 0x6b, 0xad, 0x7a, 0xbb, 0xab, 0x7f, 0x08, 0x7f, 0x3f, 0x1c, 0xfd, 0x7e,
		0x74, 0xbb, 0x1b, 0x7d, 0xfd, 0xc0, 0xff, 0xa0, 0x36, 0xf5, 0x95, 0xfd, 0xe0, 0x93, 0x23, 0xff,
		0x8e, 0xd1, 0x03, 0xfb, 0x1f, 0x8d, 0x9e, 0xfa, 0x60, 0xf2, 0xd4, 0xc1, 0x67, 0x87, 0x93, 0xbb,
		0x55, 0xa3, 0xcf, 0xa6, 0xee, 0x19, 0x7d, 0x14, 0x8c, 0xc8, 0x11, 0xab, 0xdc, 0xe6, 0x59, 0x46,
		0x8a, 0xd8, 0xe3, 0x65, 0xc9, 0x16, 0x58, 0xcd, 0x99, 0xd5, 0xe4, 0x89, 0x05, 0x6e, 0xcb, 0x0c,
		0xf9, 0x80, 0xc2, 0x91, 0x95, 0x0f, 0x74, 0x2c, 0x73, 0x2f, 0x14, 0x5c, 0x2b, 0x14, 0x71, 0xca,
		0xb1, 0x75, 0x73, 0x89, 0x15, 0x0a, 0x76, 0x00, 0x40, 0x2b, 0xbc, 0x89, 0x15, 0xb0, 0x9a, 0x4a,
		0x15, 0x4e, 0x2e, 0xb9, 0x3d, 0xdf, 0x56, 0x73, 0x74, 0xb3, 0xc7, 0xc9, 0x3a, 0xf8, 0x97, 0x82,
		0x6b, 0x00, 0xd7, 0x90, 0x11, 0xd7, 0xd0, 0xb3, 0x3d, 0x8f, 0xf5, 0xf4, 0xff, 0x1b, 0x18, 0x3d,
		0x2e, 0xaa, 0x2f, 0x9d, 0x8f, 0x8a, 0x4b, 0x0b, 0xe7, 0xb0, 0xe4, 0x40, 0x3b, 0xcd, 0x6b, 0x8b,
		0x9c, 0x40, 0x39, 0x2d, 0x09, 0xa0, 0x52, 0xc3, 0x7a, 0x69, 0x64, 0x3b, 0x92, 0xeb, 0x14, 0xf5,
		0x4d, 0xa0, 0x57, 0xa1, 0x57, 0x63, 0x9e, 0xe6, 0xdc, 0xb0, 0x7a, 0x86, 0x67, 0x3b, 0x2f, 0xab,
		0x83, 0x01, 0x09, 0x74, 0xb1, 0xd9, 0x63, 0x96, 0x67, 0x7a, 0x2f, 0x9c, 0xf1, 0x02, 0x29, 0x12,
		0x7f, 0x4a, 0xcd, 0xf0, 0x56, 0x1f, 0x0d, 0x97, 0xf1, 0x47, 0x56, 0x5f, 0x34, 0x5a, 0xff, 0xbe,
		0xbc, 0xfe, 0x57, 0x14, 0x05, 0xde, 0x69, 0xfd, 0x7e, 0xd5, 0x48, 0x2b, 0x32, 0x7e, 0x99, 0x46,
		0x97, 0x0b, 0x9b, 0x73, 0xba, 0xcf, 0xc7, 0x8f, 0x3f, 0x1f, 0xc4, 0xce, 0xe1, 0x9d, 0x7e, 0xaf,
		0xfa, 0x99, 0xcf, 0xaa, 0x67, 0x7b, 0xc5, 0x78, 0xce, 0xab, 0xea, 0x55, 0x31, 0x1e, 0xf4, 0xeb,
		0x4d, 0xb3, 0x10, 0x0f, 0xba, 0xf7, 0xf5, 0xfa, 0x93, 0xec, 0x00, 0x8a, 0xb6, 0xf2, 0xc0, 0xfa,
		0x61, 0x91, 0x03, 0xeb, 0x13, 0x26, 0xf2, 0x12, 0x86, 0xd3, 0xaf, 0xce, 0xc6, 0xe5, 0x8b, 0xa2,
		0xf7, 0xc3, 0xb0, 0xf4, 0xae, 0x6d, 0x59, 0xcc, 0xaf, 0x60, 0xeb, 0x26, 0x8f, 0xa8, 0x5f, 0xbc,
		0x94, 0x38, 0xba, 0x7e, 0x17, 0xd1, 0xf5, 0xd2, 0x70, 0x93, 0xa2, 0xe8, 0xfa, 0x79, 0x19, 0xe1,
		0x00, 0xf4, 0xf3, 0x23, 0xa4, 0x03, 0xf7, 0x15, 0x80, 0x7b, 0x80, 0x7b, 0x3e, 0xe1, 0x8d, 0x2e,
		0x08, 0x6b, 0xc0, 0xe9, 0xf7, 0xc6, 0x93, 0xd9, 0x7f, 0xe1, 0x87, 0xcd, 0x73, 0xe3, 0xa4, 0xad,
		0x62, 0xc0, 0x55, 0x87, 0x87, 0xbb, 0xee, 0x8e, 0x48, 0x9d, 0x1d, 0x31, 0x41, 0x17, 0x15, 0x78,
		0x32, 0xc1, 0x27, 0xdb, 0x00, 0x64, 0x1b, 0x81, 0x0f, 0xdc, 0xa5, 0x2d, 0xb0, 0xc0, 0x5d, 0xed,
		0x26, 0x5a, 0xf7, 0x3e, 0x33, 0xee, 0xd3, 0x59, 0xb3, 0x0b, 0x7a, 0xfb, 0x90, 0xcf, 0x77, 0xf7,
		0x18, 0xc6, 0x22, 0x87, 0xb1, 0xec, 0x73, 0x5b, 0x4e, 0x56, 0xb2, 0x69, 0x0a, 0x2d, 0xde, 0x1d,
		0xef, 0x47, 0x4e, 0x25, 0x12, 0x5e, 0xcf, 0xa7, 0x3c, 0x2a, 0x50, 0x1e, 0x50, 0x1e, 0x72, 0x95,
		0x47, 0xda, 0xd3, 0x95, 0xea, 0x94, 0xa5, 0x3d, 0x6d, 0x05, 0x4f, 0x5d, 0xe1, 0x0d, 0x44, 0xb1,
		0x91, 0x68, 0x37, 0x14, 0xd5, 0xc6, 0x22, 0xdf, 0x60, 0xe4, 0x1b, 0x8d, 0x7c, 0xc3, 0xf1, 0x6d,
		0x3c, 0x01, 0xc6, 0x49, 0x23, 0xa9, 0x59, 0x47, 0x70, 0x9a, 0x53, 0x9c, 0xea, 0xcb, 0x4e, 0xf7,
		0xe8, 0x3f, 0xdf, 0x3a, 0x74, 0x83, 0xbf, 0x6e, 0x9f, 0x1d, 0xdb, 0xb3, 0xbb, 0x76, 0xff, 0x1f,
		0xdd, 0x81, 0xe3, 0x30, 0xcb, 0xdb, 0xda, 0x1e, 0x7d, 0xc5, 0x75, 0xba, 0xfa, 0xf8, 0x5f, 0xda,
		0x14, 0xb8, 0x80, 0x7f, 0x39, 0x39, 0x96, 0xb2, 0x14, 0x96, 0xce, 0xd0, 0xcd, 0xa7, 0x67, 0xdb,
		0xf1, 0xc6, 0xf5, 0xa4, 0x84, 0xb5, 0xe3, 0xf2, 0x61, 0x39, 0x45, 0xed, 0x34, 0x18, 0x4c, 0xa8,
		0x1e, 0x70, 0xe9, 0xba, 0xf1, 0xbf, 0x8d, 0x93, 0x56, 0xe7, 0xfa, 0xf2, 0x4b, 0xab, 0xc1, 0xb7,
		0x20, 0x6d, 0xe8, 0xf8, 0x91, 0x9e, 0x72, 0x9e, 0xed, 0x3e, 0x14, 0x3c, 0x87, 0x82, 0xf7, 0x27,
		0x6e, 0xe3, 0xb4, 0xfb, 0x58, 0x13, 0x04, 0x2a, 0x40, 0xb4, 0x41, 0x48, 0xa4, 0xe9, 0x6b, 0x02,
		0x63, 0x34, 0xac, 0xc1, 0x93, 0xb8, 0xfc, 0xb5, 0xec, 0x9b, 0x20, 0x82, 0x94, 0xa4, 0x70, 0xeb,
		0xee, 0x68, 0xae, 0xea, 0x27, 0x27, 0x8d, 0xab, 0xb1, 0x8e, 0x22, 0xa8, 0xdd, 0x5a, 0x19, 0x0d,
		0x2a, 0xae, 0xf8, 0x04, 0x85, 0x69, 0x6a, 0xc6, 0x9a, 0x04, 0x7d, 0xa1, 0x82, 0xad, 0x35, 0x3d,
		0x53, 0x24, 0xfd, 0xf0, 0x66, 0xe7, 0xe9, 0x58, 0xab, 0x14, 0xab, 0xde, 0xad, 0x1a, 0xb0, 0x60,
		0xba, 0x3e, 0x5d, 0xfe, 0xc4, 0x3c, 0xc7, 0xf4, 0x61, 0xcf, 0xb3, 0xf1, 0x20, 0x56, 0x2d, 0x77,
		0xa2, 0x27, 0xe2, 0xc7, 0xce, 0x12, 0x36, 0xf8, 0xf5, 0x46, 0x81, 0x17, 0x60, 0x13, 0xc2, 0x26,
		0x54, 0x89, 0x1a, 0xee, 0x6c, 0xbb, 0xcf, 0x0c, 0x8b, 0x02, 0x29, 0x54, 0xf2, 0xac, 0x50, 0x5d,
		0x2f, 0x32, 0x1e, 0x09, 0x54, 0xe8, 0xf4, 0x68, 0x50, 0x3e, 0x50, 0x3e, 0x50, 0x3e, 0xeb, 0x4c,
		0x48, 0x8d, 0xc9, 0xa6, 0x68, 0xcb, 0xe7, 0x58, 0xd1, 0x11, 0xd3, 0x4b, 0x24, 0xb4, 0x12, 0x78,
		0x19, 0xe8, 0xb9, 0xcd, 0xe5, 0x65, 0x72, 0xa6, 0xe4, 0xca, 0xe1, 0x42, 0x1c, 0x87, 0xd5, 0x84,
		0xc7, 0x4d, 0x4d, 0xc6, 0x1f, 0x87, 0xf4, 0x51, 0x8f, 0xdd, 0x9b, 0x96, 0xe9, 0x87, 0x03, 0xc6,
		0xff, 0x53, 0xf4, 0x2f, 0xc9, 0xeb, 0xcb, 0x51, 0xad, 0x8f, 0x50, 0x1b, 0x8f, 0x68, 0x14, 0xe1,
		0x76, 0x1e, 0x93, 0x91, 0x24, 0xb4, 0xf5, 0x88, 0x06, 0x9f, 0x6e, 0xef, 0x41, 0xd4, 0x51, 0x6c,
		0xe0, 0xa6, 0x2a, 0x4a, 0x23, 0x53, 0x91, 0xcd, 0x2b, 0x33, 0x3b, 0x78, 0x5b, 0xfd, 0xee, 0x85,
		0x82, 0x9a, 0x93, 0xd1, 0x1e, 0x6b, 0x46, 0xb1, 0xf9, 0x33, 0x59, 0xc0, 0x0e, 0x75, 0xf3, 0x0d,
		0x5f, 0x46, 0x53, 0x93, 0x63, 0x60, 0x33, 0xed, 0xfe, 0x13, 0xc7, 0x35, 0x33, 0xa3, 0x01, 0xd6,
		0xc0, 0x82, 0x83, 0x05, 0x07, 0x0b, 0x4e, 0x82, 0xa2, 0xdb, 0xa0, 0x06, 0x5a, 0x0b, 0x69, 0x24,
		0x0b, 0x9f, 0x94, 0xb9, 0x62, 0x1e, 0x35, 0xd2, 0x04, 0x9c, 0xd6, 0xe8, 0x99, 0x4e, 0x26, 0x0f,
		0x39, 0xff, 0x41, 0x27, 0x54, 0xcb, 0x39, 0x88, 0x30, 0x15, 0xe2, 0x2c, 0x29, 0xb8, 0x4a, 0x84,
		0xaa, 0x67, 0x76, 0x72, 0x21, 0x54, 0x5d, 0xdd, 0x49, 0x44, 0x1c, 0xaa, 0x3e, 0xb3, 0xe1, 0x72,
		0xa0, 0x46, 0x84, 0x80, 0x33, 0x05, 0x60, 0x86, 0x1a, 0x81, 0x1a, 0x81, 0x1a, 0x49, 0xab, 0x46,
		0x66, 0x36, 0x5c, 0x1e, 0xd4, 0x48, 0xa2, 0x36, 0x5d, 0xf1, 0xfa, 0x83, 0xa3, 0x67, 0xb2, 0x70,
		0xb6, 0x4b, 0x15, 0x8a, 0x03, 0x8a, 0x23, 0xd1, 0x53, 0x22, 0xdb, 0x05, 0xd4, 0x14, 0xa8, 0x29,
		0x50, 0x53, 0xea, 0xa9, 0x29, 0x64, 0xbb, 0xa4, 0x21, 0x33, 0x90, 0xed, 0xb2, 0xae, 0x3a, 0x1e,
		0x51, 0x15, 0x9c, 0x0a, 0x1e, 0xd9, 0x2e, 0xc8, 0x76, 0x89, 0x1d, 0x0d, 0xd9, 0x2e, 0xe9, 0xb6,
		0x16, 0xb2, 0x5d, 0xb2, 0x00, 0x0b, 0xc8, 0x76, 0x01, 0x5e, 0x80, 0x4d, 0x08, 0x9b, 0x50, 0x3a,
		0x6a, 0x40, 0xb6, 0x0b, 0x8f, 0x0a, 0x45, 0xb6, 0x0b, 0x94, 0x0f, 0x94, 0xcf, 0xa6, 0x10, 0x52,
		0xc8, 0x76, 0x41, 0xb6, 0x0b, 0x78, 0x19, 0xf0, 0x32, 0x6b, 0xa1, 0xe4, 0x90, 0xed, 0x32, 0x35,
		0x0a, 0xb2, 0x5d, 0x44, 0xc6, 0x42, 0xb6, 0x0b, 0xb2, 0x5d, 0x90, 0xed, 0x02, 0x0b, 0x0e, 0xc8,
		0x06, 0x16, 0x1c, 0x2c, 0x38, 0xf1, 0x2b, 0xd6, 0x3e, 0xdb, 0x85, 0x27, 0xe4, 0x51, 0x53, 0x9b,
		0xec, 0x92, 0xa0, 0x1d, 0x0d, 0xff, 0x22, 0xd3, 0x76, 0x7b, 0xf8, 0x17, 0x7b, 0x99, 0x3f, 0xca,
		0xb4, 0x69, 0x66, 0x52, 0xe3, 0x8a, 0x9c, 0xe3, 0x43, 0xd6, 0xfc, 0x48, 0x9a, 0x14, 0x39, 0xcf,
		0x20, 0x65, 0x6b, 0xd0, 0xef, 0xf3, 0x5c, 0x1a, 0xe2, 0x21, 0xdf, 0x21, 0x45, 0xba, 0x60, 0xec,
		0x87, 0xe7, 0x18, 0xfa, 0x60, 0x24, 0x8b, 0x77, 0xfd, 0x94, 0x1d, 0xf5, 0x1c, 0x76, 0xcf, 0x1c,
		0x66, 0xf9, 0xa7, 0xeb, 0xad, 0xaa, 0x3e, 0xe5, 0xd7, 0xf6, 0xc0, 0x63, 0xda, 0x35, 0xeb, 0x99,
		0xae, 0xe7, 0x98, 0x77, 0x83, 0xd1, 0x0e, 0xd1, 0x4c, 0x4b, 0x1b, 0x6d, 0xc0, 0x00, 0xbe, 0x68,
		0xe1, 0x06, 0xd3, 0xc6, 0x3b, 0xec, 0xf8, 0x9b, 0xf5, 0xe8, 0x79, 0xcf, 0xee, 0x71, 0xb9, 0xfc,
		0x60, 0x7a, 0x8f, 0x83, 0xbb, 0x9d, 0xae, 0xfd, 0x34, 0xa5, 0x5a, 0xca, 0xcf, 0x83, 0xbb, 0xbe,
		0xd9, 0x2d, 0xdf, 0xf5, 0xed, 0xbb, 0xf2, 0x93, 0xe1, 0x7a, 0xcc, 0x29, 0xf7, 0xec, 0xee, 0x58,
		0x9d, 0x74, 0xc6, 0xea, 0xa4, 0xe3, 0xcc, 0xdc, 0x75, 0xe7, 0xa9, 0xf7, 0xff, 0x98, 0x96, 0xc7,
		0x9c, 0x89, 0x36, 0xd1, 0xed, 0xfb, 0x48, 0xd4, 0x75, 0xc7, 0xbc, 0x73, 0x33, 0x8e, 0x2e, 0x9e,
		0xac, 0x50, 0x9e, 0x02, 0x8c, 0x0b, 0xb6, 0x84, 0xb2, 0x4f, 0x58, 0xea, 0x7e, 0xb0, 0x49, 0x7b,
		0x59, 0xf1, 0x9d, 0xd4, 0xca, 0x4f, 0xe8, 0x52, 0xaa, 0xf4, 0x07, 0x45, 0x67, 0x72, 0x09, 0x7d,
		0xf9, 0xca, 0x69, 0x3b, 0xd2, 0xc9, 0x5d, 0x21, 0x69, 0xed, 0xfa, 0xd2, 0xf6, 0xe8, 0x43, 0x63,
		0x3e, 0x34, 0xe6, 0x5b, 0x2a, 0x48, 0x9c, 0xdd, 0xf8, 0xd0, 0x82, 0x0f, 0x2d, 0xf8, 0xc4, 0x4e,
		0x7a, 0xb4, 0xe0, 0x93, 0xcd, 0x5d, 0x22, 0xaf, 0x50, 0x32, 0x27, 0x89, 0x84, 0xe4, 0x55, 0x1c,
		0x23, 0x5a, 0xf0, 0x09, 0x9c, 0x86, 0x50, 0x1e, 0x50, 0x1e, 0xbc, 0xca, 0x03, 0x49, 0xc9, 0x14,
		0x1b, 0x88, 0x62, 0x23, 0xd1, 0x6e, 0x28, 0xaa, 0x8d, 0x45, 0xbe, 0xc1, 0xc8, 0x37, 0x1a, 0xf9,
		0x86, 0xe3, 0xdb, 0x78, 0x9c, 0x1b, 0x50, 0xfc, 0x14, 0x5f, 0x90, 0x1b, 0xb3, 0xc7, 0x2c, 0xcf,
		0xf4, 0x5e, 0x88, 0xbc, 0x88, 0x22, 0x61, 0x36, 0xcd, 0xf0, 0x51, 0x3e, 0x1a, 0x2e, 0xa3, 0x8b,
		0xb4, 0xa9, 0x9f, 0x9e, 0x5e, 0x37, 0x6e, 0x6e, 0x3a, 0x9f, 0xea, 0xe7, 0xcd, 0xb3, 0xdf, 0x45,
		0xe5, 0xf0, 0xab, 0xd1, 0x1f, 0xf8, 0x34, 0xc9, 0xad, 0x70, 0x14, 0x8b, 0x78, 0xd4, 0xce, 0xcc,
		0x7b, 0x36, 0xaf, 0xbe, 0xd6, 0x4a, 0xc2, 0x43, 0x0e, 0xdf, 0xe7, 0xf0, 0xbd, 0x0e, 0xd6, 0xf1,
		0xbd, 0xce, 0xaa, 0x9d, 0x46, 0xeb, 0xd7, 0xc6, 0xf5, 0x45, 0xa3, 0xb5, 0x8e, 0xaf, 0x77, 0x7e,
		0x75, 0x76, 0x43, 0xf0, 0x5e, 0x42, 0x23, 0xb4, 0xd7, 0x32, 0x39, 0x91, 0x2e, 0x0a, 0x0b, 0x11,
		0x58, 0xc0, 0x4f, 0xc0, 0x4f, 0x62, 0x72, 0x93, 0xe3, 0x08, 0xac, 0xf1, 0xf6, 0x76, 0xa3, 0x9f,
		0xc6, 0xcc, 0x49, 0x00, 0xfa, 0xee, 0x4d, 0xde, 0xc8, 0x59, 0x44, 0x62, 0xad, 0x74, 0x16, 0xce,
		0x46, 0xbe, 0x65, 0x1f, 0x74, 0x15, 0xba, 0x75, 0x73, 0x54, 0x4d, 0x58, 0xbc, 0x04, 0x28, 0xca,
		0x7f, 0x82, 0x30, 0x03, 0xdb, 0x2e, 0xe3, 0x5c, 0x59, 0xc2, 0xb6, 0xa3, 0xf4, 0x27, 0x4a, 0x7f,
		0x42, 0x69, 0xa8, 0x50, 0x1a, 0x60, 0xd9, 0x61, 0x25, 0xc2, 0x4a, 0x5c, 0x2b, 0x2b, 0x11, 0x2c,
		0x7b, 0xaa, 0x51, 0xc1, 0xb2, 0x67, 0xf0, 0x5e, 0x60, 0xd9, 0x8b, 0xf7, 0x7a, 0x60, 0xd9, 0x25,
		0xad, 0x1b, 0x58, 0x76, 0xe0, 0x27, 0xe0, 0xa7, 0xdc, 0xe0, 0x27, 0xb0, 0xec, 0x39, 0xb0, 0x4b,
		0x73, 0xcc, 0xb2, 0xe7, 0x24, 0xb3, 0x79, 0x4c, 0xb2, 0x17, 0x2f, 0x8b, 0x19, 0x49, 0xcb, 0x39,
		0x4d, 0x5a, 0xce, 0x51, 0xea, 0x62, 0xb8, 0xd9, 0xb2, 0x4b, 0x52, 0x0c, 0xb7, 0x17, 0x12, 0x12,
		0xc7, 0x0b, 0xa2, 0x3e, 0x0b, 0x51, 0x4a, 0xee, 0xe1, 0xf7, 0xbe, 0x61, 0xa5, 0x48, 0x3d, 0x0c,
		0xbe, 0x5e, 0x8c, 0xcc, 0xc3, 0xd1, 0xb3, 0xae, 0x65, 0xda, 0xa1, 0xff, 0x62, 0x79, 0xc9, 0x39,
		0xf4, 0x1f, 0x26, 0x75, 0xca, 0x61, 0xc2, 0xb5, 0xd1, 0x0a, 0x90, 0x71, 0x98, 0xe2, 0x55, 0xb4,
		0xb5, 0x4a, 0x37, 0x4c, 0x26, 0x86, 0x72, 0xa0, 0x53, 0xea, 0x5c, 0x43, 0xa4, 0x07, 0xc9, 0x13,
		0x69, 0x2a, 0x72, 0x20, 0xff, 0x5e, 0xcb, 0x74, 0x22, 0xaf, 0xc6, 0x34, 0xe4, 0x76, 0x59, 0x86,
		0xb8, 0x44, 0x90, 0x62, 0xf3, 0x47, 0x01, 0xbd, 0x26, 0xb0, 0x6d, 0xc0, 0xad, 0xf1, 0x6d, 0xab,
		0xa2, 0x13, 0x6b, 0x6e, 0xd0, 0xda, 0x89, 0x80, 0x57, 0xfb, 0x90, 0xe7, 0xe2, 0xa5, 0x9e, 0xe1,
		0x0d, 0x5c, 0x82, 0xb2, 0xa5, 0xc1, 0x38, 0x59, 0xf6, 0xe9, 0xa9, 0x9f, 0xb4, 0x9a, 0x5f, 0xd1,
		0xd8, 0x0f, 0x2a, 0x12, 0x2a, 0x52, 0x91, 0x8a, 0x64, 0xd6, 0xe0, 0x89, 0x39, 0x22, 0x1d, 0xba,
		0xb4, 0x0d, 0x68, 0xe8, 0xe7, 0x6b, 0x25, 0xaa, 0x56, 0x7e, 0x37, 0x5f, 0x6e, 0xae, 0x1a, 0x17,
		0xa7, 0x8d, 0xd3, 0x35, 0xea, 0xe3, 0xe7, 0x4f, 0x10, 0x4d, 0x07, 0xbf, 0xc9, 0xf4, 0xa0, 0x7d,
		0x5f, 0x1c, 0x1d, 0xa4, 0x9b, 0x3d, 0xf1, 0xf3, 0x7e, 0x3c, 0x10, 0xce, 0x4d, 0x9c, 0x9b, 0x38,
		0x37, 0x95, 0x6e, 0x9e, 0xe9, 0x0d, 0x74, 0x20, 0x30, 0xc4, 0xb5, 0x61, 0x3d, 0x30, 0xe1, 0x48,
		0x42, 0x82, 0x13, 0xe0, 0xdc, 0xb4, 0x48, 0x8e, 0x12, 0x2d, 0x0a, 0x90, 0x4c, 0x4f, 0xea, 0xc5,
		0x8e, 0xf7, 0xc9, 0x31, 0xfc, 0xd2, 0x92, 0xa7, 0xe6, 0x83, 0x29, 0xda, 0x8b, 0x65, 0x56, 0x18,
		0xd8, 0x83, 0xe1, 0x99, 0xdf, 0x59, 0x2a, 0xdf, 0xa8, 0xc4, 0x33, 0x5d, 0x0b, 0xbd, 0xc7, 0xf4,
		0x4b, 0x51, 0xdb, 0x3d, 0xaa, 0x6d, 0xde, 0x6a, 0x64, 0x84, 0x3e, 0xda, 0x08, 0xa8, 0x21, 0x77,
		0x29, 0xfb, 0x6e, 0x55, 0xff, 0xff, 0x79, 0x48, 0x5a, 0xfd, 0x3a, 0x7a, 0x1a, 0xff, 0xff, 0x39,
		0x4a, 0x59, 0x7d, 0x62, 0x4f, 0x77, 0xcc, 0x71, 0xf9, 0x3d, 0x38, 0xe3, 0x01, 0xe0, 0xc2, 0x91,
		0x08, 0x14, 0xe1, 0xc2, 0xd1, 0x54, 0xba, 0x70, 0x02, 0x99, 0x16, 0x37, 0xb6, 0xc2, 0x71, 0xc4,
		0x6c, 0xad, 0x8a, 0xa8, 0xad, 0x55, 0x85, 0xad, 0x05, 0x5b, 0x4b, 0x91, 0xad, 0xc5, 0xbb, 0xe5,
		0xa6, 0x4e, 0x5b, 0x9e, 0x3c, 0xe8, 0x58, 0xb9, 0xe3, 0x8d, 0xa2, 0x25, 0xdc, 0x88, 0x64, 0x1b,
		0x92, 0x72, 0x63, 0x2e, 0xdb, 0xa0, 0xe6, 0x3d, 0x05, 0xdb, 0x49, 0xd8, 0xc2, 0x51, 0xca, 0x76,
		0x95, 0xb6, 0x6d, 0xe3, 0xb6, 0xaf, 0x79, 0x9f, 0x75, 0x3a, 0x93, 0x28, 0x69, 0x2c, 0xba, 0xa9,
		0xa3, 0x81, 0xfc, 0x66, 0x2d, 0xf7, 0x06, 0xa5, 0x78, 0x44, 0xe9, 0xa8, 0xd1, 0xd0, 0x44, 0xab,
		0x28, 0xc6, 0x74, 0x92, 0x33, 0x9f, 0x32, 0x95, 0x80, 0x34, 0x65, 0x20, 0x4b, 0x29, 0x48, 0x57,
		0x0e, 0xd2, 0x95, 0x84, 0x4c, 0x65, 0x41, 0xa3, 0x34, 0x08, 0xd9, 0x29, 0x8d, 0x84, 0x85, 0x8d,
		0x95, 0xd6, 0x3b, 0xc3, 0x65, 0x7a, 0xb4, 0xff, 0x75, 0xb1, 0xa4, 0xaa, 0xd8, 0xc3, 0xff, 0x90,
		0x70, 0xcc, 0xe9, 0xce, 0xd9, 0xe6, 0xfd, 0x71, 0xf4, 0xec, 0xee, 0xfc, 0x07, 0xe1, 0xef, 0xfc,
		0xcd, 0xb0, 0xe9, 0x65, 0x22, 0xdb, 0xa3, 0x48, 0x90, 0x5f, 0x52, 0xc7, 0x37, 0x85, 0xb4, 0x48,
		0xf8, 0x77, 0x99, 0x02, 0x87, 0x4a, 0x63, 0xa3, 0xce, 0x83, 0x67, 0x0d, 0xff, 0xe6, 0x49, 0xf5,
		0xa2, 0x13, 0x92, 0x21, 0x7a, 0xbe, 0xab, 0xe8, 0xf9, 0x9e, 0x2e, 0x29, 0x2c, 0x7e, 0xa8, 0xd4,
		0x49, 0x62, 0x54, 0x2b, 0x47, 0xa4, 0x08, 0x54, 0x29, 0x00, 0x11, 0xe2, 0x43, 0xfe, 0x96, 0x47,
		0x32, 0xaf, 0x0a, 0x51, 0xc8, 0x8b, 0xf3, 0x21, 0x5c, 0x7b, 0x54, 0xbd, 0x53, 0xc2, 0xde, 0xc0,
		0xf3, 0x40, 0x6c, 0x4a, 0x21, 0x79, 0x64, 0xa5, 0xb8, 0x20, 0x79, 0x04, 0x5e, 0x87, 0x6c, 0xb6,
		0x55, 0x36, 0x30, 0x1e, 0xc9, 0x23, 0x69, 0x51, 0x05, 0x92, 0x47, 0x90, 0x3c, 0x02, 0x15, 0x09,
		0x15, 0xc9, 0x21, 0x31, 0x48, 0x1e, 0x79, 0x73, 0x34, 0x24, 0x8f, 0xa4, 0x50, 0xdb, 0x48, 0x1e,
		0x51, 0x71, 0xdc, 0x23, 0x79, 0x04, 0xe7, 0x26, 0xce, 0x4d, 0x24, 0x8f, 0x20, 0x79, 0x24, 0xe9,
		0x78, 0x48, 0x1e, 0x11, 0x5e, 0x0a, 0x24, 0x8f, 0x28, 0xbc, 0x1a, 0xc9, 0x23, 0x52, 0x1d, 0x38,
		0xd9, 0xd7, 0x62, 0x9d, 0x72, 0xdf, 0xc8, 0xad, 0xc4, 0x9a, 0xc2, 0x79, 0xc3, 0x0b, 0x2b, 0x05,
		0x4f, 0xc4, 0xa2, 0xf6, 0x3a, 0x83, 0x03, 0x87, 0x14, 0x0e, 0xa2, 0xcb, 0xd9, 0x72, 0x61, 0x5d,
		0xe8, 0x72, 0x36, 0xde, 0x65, 0x45, 0xaa, 0xdd, 0x9c, 0x4e, 0x33, 0xa0, 0x56, 0xf3, 0x9a, 0xd7,
		0x6a, 0x9e, 0x1c, 0xc5, 0x99, 0x54, 0x6a, 0x9e, 0x1c, 0xbe, 0xa8, 0xd3, 0x1c, 0x2e, 0x86, 0xd2,
		0x32, 0xcd, 0xfe, 0xfc, 0x73, 0x57, 0x69, 0x7e, 0x97, 0x62, 0x8a, 0xc7, 0xfa, 0xe7, 0x0d, 0x07,
		0x7a, 0x32, 0x65, 0x93, 0x5c, 0xb9, 0x08, 0x29, 0x93, 0x14, 0xca, 0x23, 0x85, 0xb2, 0x88, 0x9b,
		0x9c, 0x84, 0x72, 0x47, 0x2b, 0x6f, 0x6f, 0x48, 0x1a, 0x99, 0x84, 0x2d, 0x97, 0xad, 0x45, 0xc9,
		0x99, 0xfd, 0x64, 0x6e, 0x9a, 0x56, 0x4d, 0x8f, 0xd0, 0xb4, 0x2c, 0x99, 0x05, 0xee, 0xb7, 0x9f,
		0x7d, 0xdb, 0xc9, 0x3b, 0x4d, 0xbd, 0x4f, 0xc9, 0xb1, 0x07, 0x9e, 0x69, 0x3d, 0xe8, 0xcf, 0x76,
		0xdf, 0xec, 0x2e, 0xf6, 0x5d, 0x8c, 0x50, 0xce, 0xdc, 0xf7, 0xe6, 0x66, 0x64, 0x79, 0xa8, 0x55,
		0x2c, 0x12, 0x7f, 0x0b, 0x69, 0x4f, 0x23, 0x69, 0xe7, 0x79, 0x69, 0xeb, 0xa1, 0x55, 0x48, 0x39,
		0x31, 0x12, 0x4e, 0x8c, 0x74, 0xe7, 0x91, 0xac, 0xff, 0x60, 0x29, 0xa5, 0x26, 0x2e, 0x54, 0xa8,
		0xd4, 0x63, 0xf7, 0xa6, 0xc5, 0x7a, 0xba, 0xcb, 0xbc, 0x78, 0x57, 0x7d, 0x34, 0x2d, 0x33, 0xdf,
		0x8e, 0x53, 0x6e, 0x6f, 0x46, 0xbe, 0xad, 0x34, 0x90, 0x92, 0x18, 0x42, 0x09, 0x96, 0x29, 0xad,
		0x61, 0x93, 0xda, 0x80, 0x49, 0x6d, 0xa8, 0x24, 0x5b, 0x46, 0xbe, 0x03, 0x65, 0x55, 0x24, 0x58,
		0xc9, 0x62, 0xe6, 0xc3, 0xe3, 0x9d, 0xed, 0xbc, 0xbd, 0xce, 0x0b, 0xf3, 0x3b, 0x7b, 0x59, 0x31,
		0x3a, 0x07, 0xac, 0x10, 0x08, 0x5e, 0x8b, 0x37, 0xfb, 0xce, 0x01, 0x6f, 0x0b, 0x0c, 0x0d, 0xe8,
		0x4b, 0xdc, 0x39, 0x60, 0x5a, 0x32, 0xd2, 0x77, 0x10, 0x98, 0xb9, 0x7a, 0x3d, 0x3a, 0x09, 0x24,
		0x14, 0x3b, 0x51, 0xc2, 0x25, 0x7f, 0x9d, 0x04, 0x92, 0x89, 0xa5, 0x1c, 0x43, 0x1e, 0x9d, 0x04,
		0x64, 0x72, 0x89, 0x29, 0x45, 0x7a, 0x73, 0xb8, 0xc4, 0x74, 0x22, 0xaf, 0x86, 0x4b, 0x14, 0x6d,
		0x7e, 0x4e, 0xd6, 0xf5, 0x1c, 0x71, 0x1b, 0x22, 0x9b, 0x87, 0x6a, 0x13, 0x91, 0x6f, 0x26, 0xf2,
		0x4d, 0x45, 0xbb, 0xb9, 0xf8, 0x36, 0x19, 0xe7, 0x66, 0x13, 0x27, 0xf0, 0x17, 0x24, 0xc6, 0x7c,
		0xd6, 0xc5, 0xf6, 0xcf, 0xcc, 0x41, 0x73, 0x24, 0x30, 0x46, 0xf8, 0x4e, 0x99, 0x87, 0x6e, 0x4c,
		0x66, 0xe6, 0x7b, 0x8d, 0x60, 0x6e, 0x16, 0xe6, 0xe8, 0x03, 0xc1, 0x58, 0x57, 0x86, 0xe7, 0x31,
		0xc7, 0x22, 0x69, 0xb8, 0xee, 0x0f, 0xb8, 0x75, 0xbb, 0xab, 0x1f, 0xb5, 0x5f, 0x6f, 0x2b, 0xfa,
		0x51, 0x3b, 0xf8, 0xb1, 0xe2, 0xff, 0xf5, 0xb3, 0x3a, 0x7c, 0xad, 0xde, 0xee, 0xea, 0xb5, 0xf0,
		0xd3, 0xea, 0xfe, 0xed, 0xae, 0xbe, 0xdf, 0xde, 0xde, 0xfa, 0xf6, 0x6d, 0x27, 0xed, 0x35, 0xdb,
		0x3f, 0xf7, 0x86, 0xe2, 0x79, 0xfe, 0x6d, 0x8a, 0xe9, 0xbb, 0xbc, 0x69, 0xfe, 0x46, 0x3e, 0x87,
		0x7f, 0x6c, 0xa9, 0x9a, 0xc5, 0xed, 0xbf, 0x11, 0xcc, 0x63, 0x96, 0xc1, 0xb6, 0xb4, 0xdb, 0xf4,
		0x60, 0x73, 0xb6, 0xa9, 0x2f, 0x2d, 0x86, 0x7e, 0x5f, 0xd7, 0x3f, 0xb5, 0x7f, 0x56, 0xde, 0xd7,
		0x86, 0xc7, 0xdb, 0x3f, 0x0f, 0x87, 0xf3, 0x1f, 0xbe, 0x2e, 0xfb, 0x5a, 0xe5, 0xfd, 0xe1, 0xf0,
		0x38, 0xe6, 0x5f, 0x0e, 0x86, 0xc7, 0x09, 0xc7, 0xd8, 0x1f, 0x6e, 0x2d, 0x7c, 0x75, 0xf4, 0x79,
		0x35, 0xee, 0x82, 0x5a, 0xcc, 0x05, 0x7b, 0x71, 0x17, 0xec, 0xc5, 0x5c, 0x10, 0xfb, 0x48, 0xd5,
		0x98, 0x0b, 0xf6, 0x87, 0xaf, 0x0b, 0xdf, 0xdf, 0x5a, 0xfe, 0xd5, 0x83, 0xe1, 0xf6, 0x6b, 0xdc,
		0xbf, 0x1d, 0x0e, 0x5f, 0x8f, 0xb7, 0xb7, 0x37, 0x40, 0x71, 0x41, 0xac, 0xd4, 0x8b, 0x55, 0xf6,
		0x8a, 0x5c, 0x75, 0x54, 0x1e, 0x6a, 0x99, 0xac, 0x1e, 0x3c, 0x9f, 0xb5, 0x4c, 0x94, 0x64, 0x73,
		0x20, 0x45, 0x1c, 0x7c, 0x00, 0xf8, 0x80, 0xec, 0xf8, 0x80, 0x02, 0xa6, 0x88, 0x17, 0x34, 0x6a,
		0x7b, 0x36, 0xb8, 0xa0, 0x3c, 0xf7, 0xeb, 0xb4, 0xc7, 0xbb, 0x3c, 0xe3, 0x0e, 0x9d, 0xf9, 0x4d,
		0x42, 0xe5, 0xff, 0xeb, 0xe0, 0x41, 0xae, 0xfc, 0xe7, 0xe8, 0xcc, 0xfe, 0x76, 0x1a, 0x3c, 0xd5,
		0x0d, 0xf3, 0xdc, 0xce, 0x45, 0xf8, 0x18, 0xf3, 0xbf, 0xe4, 0xa8, 0xfc, 0x3f, 0xd7, 0x61, 0x22,
		0x72, 0x88, 0x14, 0x35, 0x7a, 0x1b, 0x1e, 0x17, 0xd2, 0x43, 0x00, 0xd1, 0xdb, 0x71, 0x74, 0xc8,
		0x5c, 0xf4, 0x76, 0xfa, 0xd2, 0x9f, 0xa8, 0xd4, 0x95, 0x71, 0xa5, 0x2e, 0xa8, 0x8a, 0x02, 0xa9,
		0x0a, 0x38, 0x67, 0x61, 0x8c, 0xc1, 0x18, 0x83, 0x73, 0x16, 0xce, 0xd9, 0xa4, 0x46, 0x2b, 0x9c,
		0xb3, 0x22, 0x7f, 0xe0, 0x9c, 0x85, 0x73, 0x16, 0xce, 0x59, 0x78, 0xd1, 0xe0, 0x9c, 0x85, 0x73,
		0x16, 0xce, 0x59, 0x38, 0x67, 0x53, 0x8d, 0x02, 0xe7, 0x2c, 0x9c, 0xb3, 0xe0, 0x03, 0xc0, 0x07,
		0x80, 0x0f, 0x88, 0xe7, 0x99, 0xe1, 0x9c, 0x9d, 0x11, 0x8a, 0x9c, 0x3b, 0x67, 0xc9, 0x2b, 0x6b,
		0x09, 0xfb, 0x66, 0xe5, 0x96, 0xd7, 0x92, 0x51, 0x2c, 0x27, 0xc5, 0x69, 0x81, 0x4a, 0x39, 0x05,
		0xaa, 0x94, 0x43, 0xb2, 0xc3, 0x28, 0x0a, 0xe6, 0x88, 0xee, 0xa9, 0x75, 0xab, 0x9a, 0xc3, 0xbb,
		0x30, 0x22, 0x45, 0x73, 0x78, 0xd6, 0x80, 0xbb, 0x64, 0xce, 0x1b, 0x45, 0x1b, 0x02, 0xf0, 0x93,
		0xb2, 0x58, 0xc1, 0xf4, 0x45, 0x28, 0x55, 0x80, 0x52, 0x05, 0x8b, 0xc2, 0x94, 0xbe, 0x50, 0xc1,
		0xd4, 0xb5, 0x28, 0x53, 0xa0, 0xd2, 0x92, 0x41, 0x99, 0x02, 0x94, 0x29, 0x90, 0x6b, 0xbc, 0x23,
		0x12, 0x26, 0x0b, 0x53, 0x91, 0x3b, 0x12, 0xe6, 0xc9, 0xee, 0x11, 0x70, 0x5e, 0xfe, 0x28, 0xe0,
		0xbc, 0xc0, 0x79, 0x81, 0xf3, 0x4a, 0x29, 0x31, 0x68, 0xc8, 0xf4, 0xe6, 0x68, 0x7e, 0x43, 0xa6,
		0xe6, 0xd5, 0xd7, 0x1a, 0x59, 0x3b, 0xa6, 0xe6, 0xd5, 0xd7, 0x03, 0x8a, 0xc1, 0xaa, 0xa3, 0xc1,
		0xce, 0x9b, 0xbf, 0xad, 0x51, 0x5f, 0x27, 0x7f, 0x9e, 0x69, 0xba, 0x3a, 0xf9, 0xb3, 0x4c, 0xd2,
		0xd2, 0x23, 0x9c, 0xe3, 0x63, 0xad, 0x8a, 0xe6, 0x50, 0x0b, 0x73, 0x03, 0x8f, 0x15, 0x4e, 0x6f,
		0x9c, 0xde, 0xd9, 0x9d, 0xde, 0xf0, 0x58, 0x09, 0xd1, 0xb4, 0x72, 0x68, 0xdb, 0x29, 0xc2, 0x72,
		0xea, 0xe7, 0x0c, 0x53, 0x09, 0x03, 0x1d, 0x35, 0xfb, 0x23, 0xd2, 0x08, 0x91, 0x46, 0x08, 0x46,
		0x44, 0xa2, 0x2a, 0x42, 0x1a, 0x21, 0xb9, 0xa2, 0x08, 0x84, 0x8f, 0xb9, 0xfc, 0xca, 0x22, 0x1a,
		0x01, 0x14, 0x2a, 0x14, 0xc6, 0xba, 0x50, 0xa8, 0xcf, 0x62, 0x26, 0xc8, 0xdc, 0xe6, 0x10, 0x34,
		0xc4, 0x2a, 0x30, 0xc4, 0x60, 0x88, 0x15, 0xc5, 0x10, 0xe3, 0xdd, 0x72, 0xd1, 0x00, 0x9c, 0x0e,
		0xbd, 0x58, 0xc1, 0xe3, 0xb6, 0x11, 0x08, 0xb7, 0x22, 0xd9, 0x96, 0xa4, 0xdc, 0x9a, 0x12, 0xb6,
		0x28, 0xf5, 0x56, 0x95, 0xb6, 0x65, 0xa5, 0x6d, 0x5d, 0x39, 0x5b, 0x58, 0x9c, 0xf1, 0xd4, 0x08,
		0x68, 0x69, 0xd1, 0xad, 0x1d, 0x0d, 0x64, 0x3e, 0xeb, 0xcf, 0x74, 0xf2, 0xab, 0xcd, 0xe5, 0x1f,
		0xd3, 0x0a, 0x88, 0x18, 0x19, 0x2a, 0x4d, 0x01, 0xc8, 0x50, 0x04, 0x12, 0x15, 0x82, 0x2c, 0xc5,
		0x20, 0x5d, 0x41, 0x48, 0x57, 0x14, 0x72, 0x15, 0x06, 0x8d, 0xe2, 0x20, 0x52, 0x20, 0xd1, 0xab,
		0x9e, 0x1b, 0x56, 0xcf, 0xf0, 0x6c, 0xe7, 0x85, 0xb0, 0x43, 0xbc, 0x30, 0x01, 0xac, 0x4c, 0xa5,
		0x68, 0x44, 0x15, 0x0e, 0xe2, 0xa6, 0xe0, 0x96, 0x54, 0x2e, 0x69, 0xf7, 0xa9, 0xb6, 0x50, 0x11,
		0x41, 0xca, 0x6e, 0xd5, 0x88, 0x33, 0xaf, 0x97, 0x11, 0x3a, 0xa4, 0x39, 0xb3, 0x0b, 0x37, 0x50,
		0x95, 0xfa, 0x5f, 0x8e, 0x2e, 0xaa, 0x86, 0xff, 0xba, 0x77, 0xbb, 0xab, 0x57, 0xdb, 0xdb, 0x25,
		0xf2, 0xf7, 0x6a, 0xcb, 0x58, 0x07, 0x19, 0x09, 0xcc, 0x0b, 0x77, 0x51, 0x57, 0x89, 0x21, 0x76,
		0x39, 0x28, 0x32, 0x7b, 0x17, 0x16, 0x84, 0x74, 0xc4, 0xe1, 0xfb, 0x02, 0xe9, 0x9d, 0x03, 0xe8,
		0x9d, 0x18, 0xbd, 0x83, 0xd4, 0xfd, 0x8c, 0x52, 0xf7, 0xcb, 0x5b, 0x95, 0x91, 0x56, 0xf8, 0x10,
		0xa8, 0x89, 0x4a, 0x7b, 0x41, 0x7b, 0xf8, 0xff, 0x87, 0x5e, 0x5e, 0xd4, 0xcb, 0x90, 0xd6, 0xdc,
		0x4a, 0x6b, 0xfe, 0x4f, 0xad, 0x77, 0xf9, 0x7a, 0x2e, 0xf1, 0xe7, 0x21, 0x38, 0x87, 0x4b, 0x4f,
		0x86, 0xfb, 0x67, 0x9f, 0x59, 0x0f, 0xde, 0xa3, 0xee, 0x18, 0xd6, 0x03, 0xa3, 0xe7, 0x69, 0x16,
		0xee, 0x00, 0xba, 0x06, 0x74, 0x0d, 0xe8, 0x9a, 0x5c, 0xd2, 0x35, 0xf2, 0xa8, 0x15, 0xe1, 0x58,
		0x3b, 0x15, 0xe0, 0x5b, 0x1a, 0xe8, 0x0e, 0xc1, 0x76, 0xfb, 0x7f, 0xbe, 0x7d, 0xdb, 0xf9, 0xf6,
		0x6d, 0x27, 0xf8, 0x79, 0xfb, 0x95, 0xfd, 0x30, 0xba, 0x1e, 0x21, 0xce, 0x6b, 0x53, 0x4e, 0x85,
		0x4c, 0x5c, 0x17, 0xd9, 0xd9, 0x4b, 0x27, 0x84, 0x10, 0x4a, 0xe4, 0xe6, 0xa8, 0xce, 0xd4, 0x9d,
		0x23, 0x18, 0xd8, 0xb9, 0x30, 0x9e, 0xcc, 0x40, 0xcf, 0x71, 0x90, 0x51, 0xf8, 0x43, 0x99, 0xc4,
		0xa9, 0xab, 0x49, 0x0b, 0x04, 0xbd, 0x0a, 0x1f, 0x37, 0xfc, 0x81, 0x2b, 0x30, 0x94, 0x4e, 0x58,
		0x04, 0x04, 0x85, 0xd0, 0x55, 0x47, 0xce, 0xa7, 0x13, 0x61, 0x3d, 0xf8, 0xe4, 0x73, 0x86, 0xe1,
		0xe0, 0x93, 0xcf, 0x02, 0x9b, 0x11, 0x84, 0xc8, 0xc6, 0x82, 0xb1, 0x43, 0x9a, 0xda, 0xb7, 0x73,
		0x21, 0xb4, 0x13, 0x3d, 0x52, 0x40, 0xbd, 0x4a, 0x6e, 0x61, 0xcb, 0xb2, 0xac, 0xa1, 0x65, 0xa1,
		0x65, 0xa1, 0x65, 0x37, 0x57, 0xcb, 0x2e, 0xa8, 0x93, 0x02, 0x2a, 0x5b, 0xbe, 0x5e, 0x49, 0x6f,
		0xb0, 0x16, 0x7c, 0x35, 0x12, 0x97, 0xae, 0x1a, 0x95, 0x5a, 0xad, 0x42, 0xad, 0x42, 0xad, 0x16,
		0x4c, 0xad, 0x22, 0xa0, 0x54, 0x7c, 0x38, 0x78, 0x28, 0xe0, 0xa1, 0x50, 0xa8, 0x30, 0xe8, 0xc8,
		0x4f, 0x0d, 0x01, 0xa5, 0x08, 0x28, 0xa5, 0x9e, 0x58, 0x04, 0x94, 0xc6, 0xdd, 0x00, 0x01, 0xa5,
		0xc9, 0xd6, 0x01, 0x01, 0xa5, 0x02, 0x0b, 0x82, 0x80, 0x52, 0xe8, 0x9d, 0x79, 0xbd, 0x83, 0x10,
		0x3d, 0x04, 0x94, 0x16, 0x4c, 0x2f, 0x43, 0x5a, 0x11, 0x50, 0x9a, 0xad, 0x61, 0xa4, 0x21, 0xa0,
		0x34, 0xe5, 0x19, 0x8c, 0x80, 0x52, 0xd0, 0x35, 0xa0, 0x6b, 0x8a, 0x41, 0xd7, 0x20, 0xa0, 0x14,
		0x01, 0xa5, 0x2a, 0x70, 0x1d, 0x02, 0x4a, 0x55, 0x6e, 0xef, 0x42, 0x07, 0x94, 0x52, 0xf8, 0x74,
		0x35, 0x65, 0xf1, 0xa4, 0x1c, 0x3d, 0xf1, 0xe8, 0x44, 0x45, 0x6d, 0x3d, 0xa9, 0xb0, 0xa7, 0x5e,
		0xc4, 0x99, 0x6b, 0x44, 0x40, 0x0f, 0x1d, 0x80, 0x45, 0x87, 0x12, 0xef, 0x00, 0xcc, 0x5b, 0x78,
		0x90, 0x46, 0xcf, 0xa8, 0xd4, 0x2f, 0x25, 0xa1, 0xe8, 0x15, 0xf9, 0x1a, 0xa5, 0x84, 0x52, 0xd5,
		0x8a, 0x04, 0x22, 0x37, 0xc5, 0xaa, 0xc7, 0x12, 0x90, 0x87, 0x2a, 0xb4, 0x7c, 0x01, 0x5a, 0x42,
		0x01, 0x59, 0xc2, 0xf5, 0x67, 0xab, 0xa8, 0x3f, 0x9b, 0xa9, 0x21, 0x8d, 0x16, 0x5e, 0xab, 0x39,
		0x31, 0xb4, 0xf0, 0x42, 0xed, 0xd9, 0x4c, 0x79, 0x28, 0xb4, 0xf0, 0x42, 0x0b, 0xaf, 0x55, 0x83,
		0xa1, 0x85, 0xd7, 0xdb, 0x43, 0xa1, 0x85, 0x17, 0xa1, 0x66, 0x41, 0x0b, 0x2f, 0x9c, 0xde, 0x38,
		0xbd, 0xd7, 0xfc, 0xf4, 0x46, 0x0b, 0xaf, 0xe2, 0xf0, 0x22, 0xbc, 0xc4, 0xbb, 0x1c, 0x52, 0x84,
		0x83, 0x58, 0x1f, 0x66, 0xd4, 0x29, 0x3d, 0x24, 0xc6, 0x53, 0x9c, 0x12, 0x7c, 0x94, 0x37, 0x3f,
		0xc5, 0x4d, 0x4a, 0x69, 0x0b, 0x50, 0xd8, 0x02, 0x94, 0x75, 0xd2, 0xc5, 0xe0, 0xdc, 0x61, 0x32,
		0x77, 0x56, 0x29, 0x15, 0xff, 0x46, 0xbf, 0x97, 0x92, 0xed, 0xa2, 0xd5, 0x7b, 0xe2, 0xed, 0x6f,
		0xac, 0x58, 0xa0, 0xb4, 0x0b, 0x43, 0xbe, 0x20, 0x09, 0x56, 0x81, 0x70, 0xf6, 0xdf, 0x9e, 0xf3,
		0xf8, 0x99, 0x7c, 0x63, 0x16, 0x4b, 0x9e, 0xf1, 0x10, 0xbc, 0xc9, 0xaa, 0xf9, 0x8b, 0x8e, 0xdf,
		0xe8, 0x8a, 0x15, 0x6b, 0x93, 0x8c, 0x81, 0x4d, 0x0c, 0x46, 0xd3, 0x80, 0x4e, 0x0e, 0x70, 0x99,
		0x16, 0x44, 0x72, 0x83, 0x45, 0x6e, 0x50, 0xc8, 0x07, 0xfe, 0xc4, 0xf6, 0x57, 0x52, 0x86, 0x73,
		0x2c, 0x14, 0xc9, 0xa7, 0x6f, 0x4e, 0x9a, 0x92, 0x4e, 0x5e, 0x3a, 0x5a, 0x3f, 0xb5, 0xa5, 0xc3,
		0x63, 0xd9, 0x08, 0x58, 0x32, 0xbc, 0x96, 0x8b, 0xb0, 0xa5, 0x22, 0x6c, 0x99, 0x88, 0x59, 0x22,
		0xb4, 0x50, 0x29, 0x2d, 0x0d, 0xcf, 0xdb, 0x83, 0x4a, 0xac, 0xe7, 0x14, 0x3a, 0x22, 0x66, 0x63,
		0x8c, 0xc3, 0x23, 0x05, 0x4e, 0x0b, 0x9c, 0x16, 0x38, 0x2d, 0x70, 0x5a, 0xd9, 0x33, 0xe7, 0x23,
		0xb0, 0xf7, 0xdd, 0xe8, 0x0f, 0x08, 0x54, 0xcd, 0x64, 0x28, 0xe8, 0x1b, 0xe8, 0x1b, 0xe8, 0x1b,
		0x8e, 0xed, 0xe3, 0x8d, 0x46, 0x23, 0xd0, 0x38, 0x02, 0x35, 0x29, 0x68, 0x6a, 0x50, 0x10, 0xd6,
		0xb4, 0x1a, 0x98, 0x96, 0xb7, 0x57, 0x25, 0xac, 0xdb, 0x46, 0x51, 0xb6, 0xed, 0x3a, 0xcc, 0xa9,
		0xa3, 0x49, 0x9f, 0x20, 0xcc, 0xcb, 0x39, 0x37, 0x2d, 0xfa, 0x5c, 0xaf, 0xaf, 0xe1, 0x01, 0xb1,
		0x4b, 0x9c, 0x81, 0xf5, 0xc9, 0x31, 0xba, 0x9e, 0x69, 0x5b, 0xa7, 0xe6, 0x83, 0x29, 0x1a, 0xce,
		0xbd, 0x5c, 0x86, 0xd8, 0x83, 0xe1, 0x99, 0xdf, 0x99, 0x50, 0xd4, 0x34, 0xa1, 0xba, 0x58, 0xbe,
		0x64, 0xc6, 0x0f, 0x79, 0x4b, 0x56, 0xab, 0x1e, 0xd5, 0x8e, 0x0e, 0x0e, 0xab, 0x47, 0xfb, 0x58,
		0x3b, 0xa1, 0x03, 0x82, 0x7e, 0x94, 0x76, 0x96, 0xf1, 0x32, 0x84, 0x0a, 0xfa, 0x91, 0xfd, 0xd0,
		0xc9, 0xd2, 0x00, 0x29, 0xd3, 0xff, 0xc8, 0xd3, 0xfe, 0x4a, 0x33, 0xe9, 0xfa, 0xf3, 0x59, 0xfa,
		0xd5, 0xe1, 0xf6, 0xdf, 0xb7, 0xff, 0x59, 0xca, 0x5a, 0x2e, 0xde, 0xa9, 0xbd, 0xef, 0x10, 0xd9,
		0x40, 0xab, 0x07, 0xcf, 0x67, 0x36, 0x10, 0x82, 0x26, 0x16, 0x3d, 0x89, 0x63, 0x57, 0xda, 0xf8,
		0x07, 0xfe, 0xc6, 0x17, 0xc2, 0x5e, 0xc6, 0x96, 0xf1, 0x30, 0xf5, 0x37, 0x57, 0x4b, 0x0b, 0x39,
		0xc9, 0x23, 0x5c, 0xcc, 0xa4, 0x08, 0x23, 0xc9, 0xc9, 0x0c, 0x80, 0xa8, 0x07, 0x51, 0xaf, 0xc0,
		0x92, 0x27, 0x28, 0x31, 0x2e, 0x52, 0x52, 0x7c, 0x49, 0x09, 0x71, 0x7f, 0x8b, 0x21, 0xcb, 0x8c,
		0x4b, 0x55, 0x20, 0xcb, 0x0c, 0xaa, 0x62, 0xd5, 0x23, 0xc2, 0xa7, 0x07, 0x8e, 0x5d, 0xce, 0x36,
		0x22, 0xdf, 0x4e, 0xb4, 0xdb, 0x4a, 0xcc, 0xc8, 0x84, 0x4f, 0x0f, 0x3e, 0x3d, 0xe8, 0x1b, 0xe8,
		0x9b, 0xcd, 0xd1, 0x37, 0xf0, 0xe9, 0x2d, 0x9f, 0x17, 0xf8, 0xf4, 0x52, 0x92, 0x9c, 0xf0, 0xe9,
		0x4d, 0x64, 0x08, 0x3e, 0x3d, 0xf8, 0xf4, 0x68, 0x0e, 0x08, 0xfa, 0x51, 0xe0, 0xd3, 0x7b, 0x13,
		0x34, 0xc3, 0xa7, 0xa7, 0x58, 0x2e, 0xe1, 0xd3, 0x83, 0x4f, 0x2f, 0x4b, 0xa6, 0x2c, 0x9f, 0x3e,
		0xbd, 0xcc, 0x52, 0xa0, 0xe7, 0x5c, 0x7a, 0x48, 0x7e, 0x26, 0xdc, 0xfd, 0x48, 0x7e, 0xce, 0x66,
		0x37, 0xa9, 0x4c, 0x7b, 0x9e, 0xdd, 0x3f, 0x1b, 0x9c, 0xf0, 0x9c, 0x30, 0xe3, 0x97, 0x72, 0xd2,
		0xb9, 0x53, 0x9d, 0xdf, 0xa5, 0x98, 0xd5, 0xa4, 0xb3, 0x49, 0x32, 0x8b, 0x6f, 0x4c, 0x9e, 0xe8,
		0xa4, 0x2d, 0x9f, 0xac, 0xc5, 0xa9, 0x58, 0x32, 0x0d, 0xa5, 0xe0, 0x49, 0x75, 0xff, 0x49, 0xcd,
		0xd1, 0x4c, 0xc4, 0x67, 0x82, 0x47, 0x78, 0x7d, 0xc9, 0x35, 0x31, 0x13, 0xfc, 0xb6, 0x7f, 0x74,
		0x25, 0xe1, 0x9a, 0x84, 0x50, 0x4d, 0x41, 0x98, 0x26, 0x25, 0x44, 0x53, 0x13, 0x9e, 0xa9, 0x09,
		0xcd, 0x74, 0x84, 0x65, 0x3a, 0xa1, 0x5e, 0xe5, 0x2f, 0x5c, 0x5c, 0xbe, 0xe4, 0xb9, 0xff, 0x8b,
		0x97, 0xa2, 0x08, 0x00, 0x8a, 0x00, 0x8c, 0xbf, 0x98, 0x32, 0xaf, 0x9a, 0x2f, 0x9f, 0x1a, 0x25,
		0x00, 0xc4, 0x44, 0x4f, 0x58, 0x04, 0xc5, 0x44, 0x51, 0x8e, 0xc1, 0x90, 0xba, 0x04, 0x00, 0xa2,
		0x0a, 0xe5, 0x88, 0xb3, 0xa8, 0x58, 0x93, 0x89, 0x37, 0x99, 0x98, 0xd3, 0x88, 0xbb, 0x1a, 0x02,
		0x44, 0x3c, 0xaa, 0x90, 0x9b, 0x86, 0xe5, 0x8c, 0x55, 0xc8, 0x8a, 0x61, 0x50, 0x6d, 0xd4, 0x2e,
		0x42, 0xe6, 0xc5, 0x8f, 0xd2, 0x47, 0x7f, 0x73, 0x19, 0x0e, 0xc1, 0x5f, 0xa7, 0x93, 0x27, 0x59,
		0xf8, 0x24, 0x55, 0xf4, 0x77, 0x02, 0x8b, 0x37, 0x01, 0xf0, 0x4a, 0xa5, 0x8f, 0x79, 0xf4, 0x70,
		0x4a, 0xfd, 0x0b, 0xd8, 0xb0, 0x09, 0xb0, 0x21, 0xb5, 0xbe, 0x14, 0x88, 0xbe, 0xe6, 0x89, 0xba,
		0x16, 0x8a, 0xb6, 0xa6, 0xd9, 0x98, 0xe9, 0xa2, 0xaa, 0xb9, 0xa2, 0xa9, 0xb9, 0x11, 0x7d, 0x15,
		0x5b, 0x13, 0x88, 0x1e, 0x88, 0x1e, 0x88, 0x1e, 0x88, 0x1e, 0x88, 0x3e, 0x97, 0x88, 0x3e, 0xad,
		0xef, 0x57, 0x16, 0xa0, 0x4f, 0xe1, 0xfb, 0x25, 0x84, 0x0d, 0x63, 0xef, 0x28, 0x0f, 0x76, 0x08,
		0xae, 0x05, 0x25, 0x08, 0x00, 0xa1, 0x0a, 0x40, 0x44, 0x62, 0x27, 0x98, 0x43, 0xe8, 0x0f, 0x81,
		0xda, 0xa0, 0x80, 0x12, 0xeb, 0x92, 0x47, 0x18, 0x84, 0xe9, 0xba, 0xe2, 0xf9, 0x3d, 0xe3, 0x81,
		0xc4, 0xb2, 0x7b, 0x2a, 0xc8, 0xee, 0xd1, 0x90, 0xdd, 0x53, 0x90, 0xec, 0x1e, 0xde, 0x4d, 0x17,
		0x0d, 0xc0, 0x59, 0xab, 0x3a, 0x56, 0xf0, 0xb8, 0x2b, 0x8c, 0x10, 0x6e, 0x45, 0xb2, 0x2d, 0x49,
		0xb9, 0x35, 0x25, 0x6c, 0x51, 0xea, 0xad, 0x2a, 0x6d, 0xcb, 0x4a, 0xdb, 0xba, 0x72, 0xb6, 0xb0,
		0xd8, 0x56, 0x16, 0xdc, 0xd2, 0x64, 0x5b, 0x3b, 0x1a, 0x28, 0x34, 0x1b, 0x1d, 0xe6, 0x0e, 0xfa,
		0x1e, 0x9d, 0x90, 0xcc, 0xc5, 0xec, 0x84, 0xc3, 0x13, 0xad, 0xa7, 0x58, 0xa6, 0xad, 0x34, 0x45,
		0x20, 0x43, 0x21, 0x48, 0x54, 0x0c, 0xb2, 0x14, 0x84, 0x74, 0x45, 0x21, 0x5d, 0x61, 0xc8, 0x55,
		0x1c, 0x34, 0x0a, 0x84, 0x48, 0x91, 0x88, 0x73, 0x7d, 0xe9, 0x54, 0x80, 0x68, 0x8e, 0x70, 0x2c,
		0x18, 0xa8, 0x11, 0x8e, 0x49, 0xd2, 0x16, 0x77, 0x71, 0x86, 0x29, 0xdb, 0xe4, 0x2e, 0x8c, 0xee,
		0xb7, 0xcd, 0xad, 0x9f, 0x9c, 0x34, 0xae, 0x5a, 0x9d, 0xeb, 0xcb, 0x2f, 0xad, 0x06, 0xf1, 0x66,
		0xd3, 0xa2, 0x76, 0xba, 0xd7, 0x8d, 0xff, 0x6d, 0x9c, 0x48, 0xbc, 0x89, 0xdf, 0x66, 0xf7, 0xa2,
		0xf1, 0x5b, 0xab, 0x73, 0xd3, 0xaa, 0xb7, 0x1a, 0xe7, 0x8d, 0x8b, 0x56, 0x89, 0xf4, 0x2e, 0xc3,
		0xf7, 0xd4, 0x0b, 0x4b, 0xd5, 0x8f, 0x77, 0x51, 0x01, 0x4d, 0x2f, 0x28, 0x79, 0x92, 0x6a, 0xb0,
		0x4d, 0x67, 0x67, 0x3a, 0x75, 0x59, 0xa8, 0x44, 0x37, 0x99, 0x91, 0x99, 0x63, 0xad, 0x42, 0xbb,
		0x9e, 0xb9, 0xcc, 0x8b, 0x3e, 0x65, 0xf7, 0x46, 0x00, 0xa9, 0xe6, 0xa7, 0x98, 0xf0, 0x26, 0xbf,
		0x1a, 0xee, 0xe4, 0x3e, 0xa3, 0x03, 0x30, 0x27, 0xc9, 0xc1, 0xd9, 0x82, 0x63, 0xc1, 0x54, 0xbc,
		0x85, 0xf1, 0xe4, 0x7b, 0x69, 0x7c, 0x87, 0xc3, 0xe4, 0xc7, 0x72, 0x48, 0x56, 0x95, 0x49, 0x0c,
		0x66, 0x4d, 0xb6, 0x6f, 0xc7, 0x7f, 0xfa, 0xc9, 0x8f, 0x9d, 0x7a, 0xf0, 0xf4, 0x5c, 0x75, 0x3c,
		0xe9, 0x24, 0x49, 0x40, 0x8a, 0x4a, 0x2e, 0xf3, 0x74, 0xcf, 0x20, 0x64, 0x3e, 0xc6, 0x03, 0x82,
		0xfa, 0x00, 0xf5, 0x01, 0xea, 0x23, 0x1f, 0xd4, 0x07, 0x11, 0xbb, 0x29, 0x87, 0xe5, 0x24, 0xde,
		0xf2, 0x20, 0x3b, 0x40, 0x76, 0x80, 0xec, 0xa0, 0x56, 0x21, 0xd1, 0x80, 0x4f, 0x76, 0x4f, 0x82,
		0x4c, 0x8d, 0xb7, 0x81, 0x3f, 0x3a, 0xf1, 0x6a, 0xd3, 0x72, 0xa8, 0xd2, 0xd4, 0x8b, 0x4c, 0x35,
		0xa3, 0x40, 0xdd, 0xc8, 0x56, 0x3b, 0xca, 0xd4, 0x8f, 0x32, 0x35, 0xa4, 0x46, 0x1d, 0xd1, 0x53,
		0x07, 0x52, 0x88, 0x25, 0x6a, 0x4e, 0x76, 0x41, 0xe2, 0x99, 0x35, 0x78, 0x62, 0x8e, 0x91, 0x20,
		0x99, 0x5a, 0x08, 0xbb, 0xd4, 0x24, 0x8c, 0x2d, 0x85, 0xa4, 0x9d, 0xe2, 0xf4, 0x24, 0x92, 0xb5,
		0xd1, 0x5d, 0x7c, 0xd2, 0xb6, 0x79, 0x71, 0xd6, 0xbc, 0x68, 0x48, 0xda, 0xaf, 0xda, 0x14, 0x6d,
		0xfb, 0xa9, 0x71, 0xdd, 0xb8, 0x38, 0x69, 0x94, 0xa4, 0xdc, 0x68, 0xf8, 0x5e, 0xd6, 0x42, 0xc8,
		0x22, 0x57, 0xa3, 0x5b, 0x84, 0x0b, 0x20, 0x85, 0x5e, 0x8d, 0x6e, 0x32, 0x99, 0x7e, 0x6a, 0xfa,
		0x53, 0x8e, 0x2e, 0x93, 0xa0, 0x1d, 0xd7, 0x14, 0x4c, 0x12, 0xb3, 0x8d, 0x13, 0x0e, 0x2a, 0x33,
		0xd6, 0x31, 0x24, 0xab, 0xca, 0xa4, 0x86, 0xac, 0x96, 0x15, 0x0b, 0x79, 0xc3, 0xbc, 0x96, 0xf1,
		0x40, 0x42, 0x46, 0xd2, 0x09, 0x20, 0x81, 0xf0, 0x95, 0x4c, 0xab, 0x6f, 0x5a, 0x8c, 0x9e, 0xbf,
		0x08, 0xc7, 0x05, 0x7f, 0x01, 0xfe, 0x02, 0xfc, 0xc5, 0x66, 0xf0, 0x17, 0xc4, 0x54, 0xe8, 0xc2,
		0x46, 0x20, 0x3f, 0x49, 0x24, 0xa8, 0x16, 0x70, 0x18, 0xe0, 0x30, 0xc0, 0x61, 0x50, 0x73, 0x18,
		0xd4, 0xaa, 0x2a, 0x1a, 0x98, 0xc2, 0x3d, 0xbb, 0x72, 0x37, 0x89, 0xbb, 0x6c, 0x57, 0x29, 0x2f,
		0x49, 0x36, 0xa7, 0x34, 0x25, 0xa6, 0x42, 0x99, 0x29, 0x54, 0x6a, 0xaa, 0x94, 0x9b, 0x72, 0x25,
		0xa7, 0x5c, 0xd9, 0xa9, 0x55, 0x7a, 0xf2, 0x48, 0x0f, 0xa9, 0x64, 0x96, 0x2c, 0x42, 0x77, 0x99,
		0xe2, 0xa2, 0x0e, 0xb5, 0x8d, 0x85, 0x5f, 0x47, 0x12, 0xef, 0x41, 0xd2, 0xce, 0x67, 0xd5, 0x1f,
		0xb9, 0x5b, 0x5e, 0x93, 0xd2, 0x0e, 0x28, 0xe9, 0xea, 0x1c, 0x2a, 0xb8, 0x15, 0x6d, 0x3b, 0xa1,
		0xec, 0x57, 0x2b, 0x7a, 0x31, 0x19, 0xed, 0x88, 0x56, 0xde, 0x54, 0x52, 0xbb, 0xa2, 0x95, 0xf7,
		0x95, 0xdd, 0x12, 0x67, 0xf5, 0x1e, 0x91, 0xd5, 0x32, 0x27, 0x23, 0x75, 0xbf, 0x5c, 0xa4, 0x8c,
		0x1f, 0xd9, 0x89, 0x94, 0xac, 0x76, 0x4a, 0x90, 0x2d, 0xc5, 0x00, 0x45, 0xfd, 0x5d, 0xda, 0xef,
		0x0a, 0xbc, 0x03, 0x15, 0x1e, 0xf0, 0xa4, 0xed, 0xa4, 0x12, 0x43, 0xb0, 0x0f, 0x0a, 0xee, 0x45,
		0xdd, 0x8e, 0x6a, 0xe5, 0x0d, 0x95, 0xb4, 0xab, 0xca, 0x58, 0xee, 0xdf, 0x15, 0xeb, 0xb9, 0x65,
		0x19, 0x46, 0x24, 0xed, 0xb4, 0x92, 0xc0, 0x39, 0x9a, 0x76, 0x5b, 0x49, 0x4e, 0x79, 0x69, 0xed,
		0xb8, 0x56, 0xde, 0x9c, 0xae, 0x5d, 0x57, 0xf2, 0x5b, 0x09, 0xb7, 0xf3, 0x52, 0xbf, 0x53, 0xf2,
		0xcd, 0x9b, 0x4a, 0x8a, 0x2a, 0x88, 0xc6, 0xcf, 0x3e, 0xba, 0x20, 0x70, 0x33, 0x97, 0xa5, 0xb8,
		0x86, 0xb4, 0x8c, 0x83, 0x0d, 0x9a, 0xfe, 0xbb, 0x91, 0xc6, 0x1c, 0xd0, 0x8b, 0xed, 0x90, 0x34,
		0xb0, 0x23, 0x4d, 0xa5, 0xde, 0xd4, 0xa8, 0x8a, 0xb7, 0x8d, 0x5d, 0x22, 0xf0, 0x24, 0xcb, 0x7d,
		0x58, 0x85, 0xfb, 0x70, 0xfa, 0x16, 0x70, 0x1f, 0xa6, 0x3e, 0x03, 0xe0, 0x3e, 0x84, 0xfb, 0xf0,
		0x6d, 0xe5, 0x05, 0xf7, 0x61, 0xa6, 0x4a, 0x4d, 0x95, 0x72, 0x53, 0xae, 0xe4, 0x94, 0x2b, 0x3b,
		0xb5, 0x4a, 0x4f, 0xae, 0xfd, 0x0d, 0xf7, 0x61, 0x1a, 0xf8, 0x05, 0xf7, 0x61, 0xf2, 0x75, 0x81,
		0xfb, 0xb0, 0x00, 0xab, 0x35, 0xcd, 0x37, 0xc1, 0x7d, 0xa8, 0xec, 0x01, 0xe0, 0x3e, 0x94, 0x2d,
		0x52, 0x70, 0x1f, 0xc2, 0x7d, 0xc8, 0xf9, 0x07, 0xee, 0xc3, 0x64, 0x07, 0x3c, 0xdc, 0x87, 0x64,
		0x37, 0x84, 0xfb, 0x30, 0x77, 0xcf, 0x0d, 0xf7, 0x61, 0xe2, 0x53, 0x1e, 0xee, 0xc3, 0x9c, 0xef,
		0x14, 0xb8, 0x0f, 0x73, 0xe1, 0x3e, 0x94, 0xe1, 0x19, 0xd2, 0xf2, 0xe1, 0x3d, 0x4c, 0xd1, 0x37,
		0x4b, 0xbd, 0xd0, 0xe6, 0x2b, 0x21, 0x92, 0xfd, 0xf0, 0x1c, 0x43, 0x1f, 0x58, 0xae, 0x67, 0xdc,
		0xf5, 0x89, 0xeb, 0x58, 0xff, 0xf5, 0xc8, 0xe8, 0x51, 0x8b, 0x44, 0x17, 0xde, 0xa4, 0x5d, 0xeb,
		0x93, 0xdd, 0x63, 0xda, 0x3f, 0xb4, 0x5f, 0x82, 0x02, 0x17, 0xbf, 0x14, 0xdc, 0xa9, 0xe7, 0xaf,
		0xc3, 0x3a, 0xb9, 0xf4, 0xe2, 0x17, 0xea, 0x5d, 0x01, 0x80, 0x57, 0xe9, 0x94, 0xb9, 0x5d, 0xc7,
		0x7c, 0x96, 0x76, 0xc6, 0xcc, 0x08, 0x75, 0xd3, 0xd2, 0x47, 0x3a, 0x51, 0x0b, 0x26, 0x6c, 0x10,
		0x94, 0x2c, 0xd2, 0x4c, 0x57, 0xb3, 0xad, 0xfe, 0x8b, 0xe6, 0xb0, 0x3e, 0xfb, 0x6e, 0x58, 0x9e,
		0x36, 0x92, 0x11, 0xcd, 0x7b, 0x64, 0x5a, 0x70, 0x5a, 0xfc, 0xe2, 0x6a, 0xe1, 0x71, 0xf1, 0xcd,
		0xf2, 0xe7, 0xd8, 0x74, 0x35, 0xf7, 0x99, 0x75, 0xcd, 0x7b, 0x93, 0xf5, 0x34, 0xf6, 0xe3, 0xb9,
		0x6f, 0x76, 0x4d, 0xaf, 0xff, 0xa2, 0x79, 0xb6, 0x76, 0xc7, 0xb4, 0x60, 0xfa, 0x77, 0x64, 0x09,
		0x99, 0x02, 0x1f, 0xd1, 0xf4, 0x7e, 0xe9, 0x4d, 0xad, 0x8f, 0x44, 0x0c, 0xa7, 0xd2, 0x41, 0x34,
		0xb3, 0x7d, 0x94, 0x8a, 0x04, 0x2a, 0xf6, 0xe4, 0xc0, 0x9c, 0x44, 0xc5, 0x9e, 0x64, 0xa0, 0x78,
		0x4d, 0x2a, 0xf6, 0x04, 0x30, 0x78, 0x9d, 0x2a, 0xf6, 0x38, 0xec, 0x9e, 0x39, 0xcc, 0xea, 0x4a,
		0x28, 0xda, 0x33, 0x19, 0x1a, 0x75, 0x7b, 0x84, 0x27, 0x13, 0x75, 0x7b, 0xd4, 0x9d, 0xef, 0xa8,
		0xdb, 0x23, 0x30, 0x20, 0xea, 0xf6, 0x48, 0x54, 0x31, 0x32, 0x55, 0x8d, 0x02, 0x95, 0x93, 0x85,
		0x8d, 0x8e, 0xc0, 0xdb, 0x75, 0x21, 0x90, 0x65, 0x06, 0xde, 0xea, 0x2e, 0xf3, 0x94, 0x04, 0xdf,
		0xfa, 0x37, 0x42, 0x00, 0xae, 0x6a, 0xa5, 0xa6, 0x50, 0xb9, 0xa9, 0x24, 0x57, 0x34, 0x04, 0xe0,
		0x16, 0x80, 0x02, 0xd1, 0xd6, 0x22, 0x00, 0xb7, 0xcf, 0x8c, 0x7b, 0x87, 0xdd, 0xab, 0x88, 0xbf,
		0x95, 0x18, 0xe2, 0x59, 0xba, 0x0a, 0xb9, 0x90, 0x9d, 0x9d, 0x72, 0xdc, 0x7f, 0x3e, 0xc5, 0xc1,
		0x7a, 0x23, 0x55, 0xed, 0x96, 0x43, 0x9d, 0x1d, 0xfd, 0x30, 0x26, 0xc8, 0x7d, 0xfe, 0x01, 0x8e,
		0xe1, 0xfc, 0x72, 0x5f, 0x39, 0xe2, 0xc0, 0x22, 0x26, 0x64, 0x3d, 0x53, 0x4b, 0xaf, 0xc7, 0xaf,
		0x87, 0xec, 0x52, 0x2a, 0x65, 0x8b, 0xec, 0x52, 0x18, 0xb9, 0x30, 0x72, 0x61, 0xe4, 0xc2, 0xc8,
		0x85, 0x91, 0x0b, 0x23, 0x17, 0x46, 0x2e, 0x8c, 0x5c, 0x18, 0xb9, 0x30, 0x72, 0x61, 0xe4, 0x16,
		0xc2, 0xc8, 0x5d, 0xc7, 0x00, 0xe8, 0x89, 0x8d, 0x8b, 0x18, 0xe8, 0xc4, 0xeb, 0x85, 0x18, 0xe8,
		0xb7, 0x62, 0xa0, 0xa3, 0xfe, 0x7b, 0x08, 0x83, 0xce, 0x99, 0xed, 0xf9, 0xe6, 0x5a, 0x21, 0x12,
		0x7a, 0x5e, 0xb4, 0x23, 0xdd, 0x28, 0x37, 0xf0, 0x35, 0x5a, 0x03, 0x84, 0x43, 0xe7, 0xd6, 0x92,
		0x99, 0xd9, 0x46, 0xea, 0xe5, 0x02, 0x31, 0xd1, 0x42, 0x7f, 0x10, 0x13, 0xad, 0x18, 0x2a, 0xaf,
		0x49, 0x58, 0x74, 0xb4, 0xd1, 0xd7, 0x29, 0x32, 0x9a, 0xd6, 0xc3, 0x23, 0xc5, 0xb3, 0x23, 0x2d,
		0x22, 0xba, 0x8a, 0x88, 0xe8, 0x22, 0x91, 0x97, 0x88, 0x88, 0xce, 0x73, 0x44, 0xf4, 0x08, 0xc2,
		0xc8, 0xf3, 0x14, 0xfb, 0xa3, 0xcb, 0x71, 0x14, 0xef, 0x22, 0x1a, 0x1a, 0x8e, 0xe2, 0xdc, 0x1b,
		0xeb, 0x1b, 0xea, 0x28, 0x96, 0xe6, 0x13, 0x89, 0x24, 0x9e, 0x59, 0x83, 0x27, 0x16, 0x98, 0x6c,
		0x32, 0xa4, 0x7e, 0x8c, 0x5d, 0x6a, 0x12, 0xc6, 0x6e, 0x58, 0x83, 0x27, 0x79, 0xfb, 0xa9, 0x65,
		0xdf, 0x04, 0xf5, 0xb0, 0xa4, 0x12, 0x05, 0xbb, 0x7e, 0x46, 0xb1, 0x9f, 0xec, 0x2b, 0x93, 0x1d,
		0xa8, 0xf8, 0x96, 0xfa, 0xd8, 0x84, 0x2e, 0x15, 0xcb, 0x2f, 0x68, 0x37, 0x2d, 0x4f, 0xee, 0x2a,
		0x84, 0x0b, 0x20, 0xb7, 0xb8, 0xd2, 0x64, 0xfa, 0x8f, 0xb5, 0x0a, 0x38, 0x8c, 0x35, 0x02, 0x93,
		0xeb, 0xcb, 0x61, 0x50, 0x3b, 0xf9, 0xb2, 0xe4, 0x2f, 0x08, 0x5d, 0x7a, 0x04, 0xdc, 0xc5, 0xbb,
		0x0c, 0x05, 0x97, 0x5a, 0x60, 0xb3, 0x17, 0xd4, 0x12, 0x09, 0x15, 0x94, 0x95, 0x68, 0x8a, 0x09,
		0x25, 0xbf, 0x28, 0x09, 0x88, 0x11, 0x11, 0x71, 0x46, 0x4a, 0x98, 0x11, 0x11, 0x65, 0x64, 0x04,
		0x19, 0xa5, 0xc5, 0x2a, 0xc1, 0x42, 0xa5, 0xb6, 0x48, 0xa5, 0x59, 0xa0, 0xd2, 0x2c, 0x4e, 0x39,
		0x16, 0x66, 0xb6, 0xaa, 0x9d, 0x8a, 0xd8, 0x2a, 0x85, 0x8a, 0xd8, 0x61, 0xee, 0xa0, 0xef, 0xd1,
		0x33, 0xe4, 0xb3, 0xc3, 0xd3, 0x32, 0xe5, 0xbb, 0xa8, 0x1d, 0x92, 0x67, 0xca, 0x0a, 0x4c, 0x79,
		0x91, 0x8c, 0x1b, 0x72, 0x0a, 0x6a, 0xb9, 0x0a, 0xa0, 0x6e, 0xfb, 0x22, 0x83, 0x79, 0x92, 0xc3,
		0x38, 0xc9, 0x65, 0x9a, 0x02, 0x86, 0xa9, 0x7e, 0x72, 0xd2, 0xb8, 0x6a, 0x75, 0xae, 0x2f, 0xbf,
		0xb4, 0x64, 0xf0, 0x4c, 0x63, 0x7e, 0xe9, 0x7f, 0x1b, 0x27, 0x12, 0x6f, 0x52, 0x1d, 0xdd, 0xe4,
		0xa2, 0xf1, 0x5b, 0xab, 0x73, 0xd3, 0xaa, 0xb7, 0x1a, 0xe7, 0x8d, 0x8b, 0x56, 0x29, 0xdf, 0xec,
		0xad, 0x34, 0xe6, 0x6a, 0x76, 0x41, 0xa5, 0xf0, 0x56, 0xf3, 0x33, 0x4d, 0x9e, 0xf9, 0x17, 0x92,
		0x62, 0x53, 0x32, 0x43, 0xcd, 0x8b, 0xe5, 0x33, 0xa9, 0xf4, 0x94, 0xdd, 0x1b, 0x01, 0xa4, 0x9a,
		0x9f, 0x62, 0xc2, 0x9b, 0xfc, 0x6a, 0xb8, 0x93, 0xfb, 0x8c, 0x0e, 0x40, 0xf0, 0x1e, 0xeb, 0xc5,
		0x7b, 0x10, 0x11, 0x73, 0xd9, 0xb0, 0x1e, 0xe2, 0x4c, 0x9c, 0x00, 0xe9, 0xf1, 0x4e, 0xa1, 0xe4,
		0x51, 0x49, 0x5c, 0x76, 0x92, 0x56, 0x12, 0xe2, 0x88, 0x94, 0xcb, 0x16, 0x9f, 0x54, 0xa5, 0x97,
		0x09, 0x0e, 0x79, 0x28, 0x75, 0x6d, 0xab, 0x17, 0xbc, 0x13, 0xb7, 0x2c, 0x4c, 0x17, 0xc8, 0x1b,
		0x8f, 0xc5, 0x29, 0x99, 0x62, 0x64, 0x99, 0xb0, 0x6d, 0x4c, 0x61, 0x0b, 0x13, 0xda, 0xbe, 0x54,
		0xb6, 0x2e, 0xb9, 0x6d, 0x4b, 0x6e, 0xcb, 0xd2, 0xda, 0xae, 0x6a, 0xb5, 0xa9, 0x28, 0xb9, 0x45,
		0x55, 0xb7, 0x92, 0xb6, 0x4e, 0x25, 0x39, 0x6f, 0xbd, 0x0b, 0xde, 0x3a, 0x0f, 0x74, 0x14, 0x78,
		0x6b, 0x85, 0x5b, 0x7b, 0xb2, 0xc5, 0x8d, 0x7e, 0x3f, 0x44, 0x3f, 0xf4, 0xac, 0xf5, 0xf4, 0xe0,
		0xe0, 0xac, 0x73, 0xa4, 0x14, 0x64, 0x29, 0x07, 0xe9, 0x4a, 0x42, 0xba, 0xb2, 0x90, 0xab, 0x34,
		0x68, 0xa9, 0x96, 0xfc, 0x73, 0xd6, 0xf4, 0xa5, 0x23, 0x64, 0x94, 0x8a, 0x78, 0xbb, 0x34, 0x44,
		0xb8, 0xf8, 0xc7, 0x4b, 0x6c, 0xc3, 0xd8, 0x7f, 0x8a, 0xfe, 0x85, 0xae, 0x58, 0x44, 0x3e, 0x12,
		0x80, 0x4c, 0xcb, 0xf5, 0x7c, 0xa5, 0xee, 0xd8, 0x9e, 0xdd, 0xb5, 0xfb, 0x3a, 0xfb, 0x3f, 0xfa,
		0x63, 0x63, 0xd9, 0x4d, 0x70, 0x7c, 0xe0, 0xf8, 0xc0, 0xf1, 0xb1, 0x61, 0xc7, 0x87, 0xd9, 0x63,
		0x96, 0x67, 0x7a, 0x2f, 0x92, 0x8e, 0x10, 0xc2, 0xf6, 0xac, 0xa5, 0x66, 0xf8, 0xa8, 0x1f, 0x0d,
		0x57, 0x62, 0x62, 0x53, 0xf3, 0xe2, 0xa6, 0x55, 0x3f, 0x3b, 0xeb, 0x5c, 0x5d, 0x5f, 0xb6, 0x2e,
		0x4f, 0x2e, 0xcf, 0x3a, 0xad, 0xdf, 0xaf, 0xa8, 0x9d, 0x87, 0x41, 0x1f, 0x79, 0x57, 0x4a, 0x07,
		0x68, 0xc9, 0x45, 0x17, 0x3e, 0x7e, 0xbe, 0x2a, 0x44, 0x29, 0x0a, 0xc9, 0xd3, 0x70, 0xda, 0xbc,
		0x6e, 0x9c, 0xb4, 0xce, 0x7e, 0xef, 0x9c, 0x5c, 0x5e, 0x5c, 0x34, 0x4e, 0x5a, 0x8d, 0x53, 0xcc,
		0x8a, 0x56, 0xfa, 0x7c, 0xdd, 0xfc, 0xd8, 0xc4, 0x44, 0x68, 0xa5, 0xe6, 0xe7, 0x73, 0x6c, 0x93,
		0xd1, 0x3c, 0xdc, 0x34, 0x6f, 0x30, 0x0f, 0x5a, 0xe9, 0xec, 0xf2, 0xa4, 0x7e, 0x86, 0x89, 0x08,
		0x27, 0xa2, 0x53, 0xff, 0xfc, 0xf9, 0xba, 0xf1, 0xb9, 0xde, 0x6a, 0x60, 0x4a, 0xb4, 0xd2, 0xe5,
		0xcd, 0xd5, 0x27, 0xcc, 0x43, 0x30, 0x0f, 0x7b, 0x98, 0x08, 0xad, 0x74, 0x75, 0xd2, 0xc0, 0xe1,
		0x31, 0x9a, 0x87, 0xe6, 0x39, 0xa6, 0x41, 0x2b, 0xdd, 0xb4, 0xea, 0xad, 0xe6, 0x49, 0xde, 0xf3,
		0xcc, 0xdb, 0x79, 0xb3, 0xbc, 0x11, 0x18, 0x36, 0x33, 0x9e, 0xfa, 0x70, 0x9d, 0x49, 0x40, 0x08,
		0x5d, 0xfb, 0x11, 0xa5, 0x01, 0x3c, 0x27, 0xd1, 0x0b, 0x90, 0x34, 0x18, 0xc9, 0x26, 0x2b, 0xee,
		0xc9, 0xf0, 0xba, 0x8f, 0xba, 0x69, 0x79, 0xcc, 0xb9, 0x37, 0xba, 0x84, 0xf9, 0x71, 0xf3, 0x03,
		0x23, 0xe2, 0x60, 0xe5, 0x94, 0x21, 0xe2, 0x00, 0x11, 0x07, 0x6f, 0xbd, 0x12, 0x5d, 0xc4, 0x01,
		0x6d, 0x33, 0x5c, 0x39, 0x4d, 0x70, 0xd1, 0x57, 0x1b, 0x8e, 0x22, 0x0d, 0x8e, 0x22, 0x52, 0xb3,
		0x84, 0xbe, 0x8a, 0x1c, 0x1d, 0x72, 0x88, 0xdd, 0x0b, 0x54, 0x18, 0x22, 0x4e, 0xc1, 0xa0, 0x9e,
		0xdc, 0xac, 0xe2, 0x31, 0xef, 0x51, 0x4d, 0x2e, 0x43, 0x75, 0x14, 0xa7, 0x96, 0xcc, 0x7b, 0xd4,
		0x92, 0xa3, 0x96, 0x76, 0x79, 0x7d, 0x75, 0x64, 0xf6, 0xd3, 0x89, 0x82, 0xa5, 0xca, 0xbe, 0x58,
		0x1c, 0x47, 0x0a, 0xd2, 0x9d, 0xff, 0x20, 0xfc, 0x9d, 0xbe, 0x5f, 0x4e, 0x4e, 0xbb, 0x5f, 0x0e,
		0xee, 0x14, 0x9c, 0x47, 0x33, 0x77, 0xc1, 0x91, 0x84, 0x23, 0x09, 0x47, 0x12, 0x8e, 0x24, 0x1c,
		0x49, 0x09, 0x8f, 0xa4, 0xdb, 0xc9, 0x91, 0xf4, 0x8f, 0xee, 0xc0, 0x71, 0x98, 0xe5, 0x6d, 0x6d,
		0x97, 0x77, 0x76, 0xca, 0xd1, 0x37, 0xda, 0xe1, 0x25, 0xd3, 0x7a, 0xd6, 0x5d, 0xf2, 0x59, 0x34,
		0x72, 0x8f, 0xfd, 0x40, 0xe3, 0xab, 0x44, 0xdb, 0x77, 0x6d, 0xca, 0x3e, 0x4e, 0x39, 0x0f, 0xe6,
		0x88, 0x66, 0xfa, 0x5e, 0xe6, 0x59, 0x39, 0x15, 0xce, 0x47, 0x2f, 0xd6, 0x1c, 0xbf, 0x17, 0x69,
		0x13, 0x73, 0xb4, 0xb2, 0xc8, 0x9a, 0x84, 0x44, 0x2b, 0x0b, 0x90, 0x90, 0x20, 0x21, 0x41, 0x42,
		0xc2, 0xe2, 0x83, 0xc5, 0x07, 0x8b, 0x0f, 0x16, 0x1f, 0x48, 0x48, 0x90, 0x90, 0x20, 0x21, 0x71,
		0x24, 0xe1, 0x48, 0xc2, 0x91, 0x84, 0x23, 0x09, 0x24, 0x24, 0x48, 0xc8, 0x42, 0x93, 0x90, 0x85,
		0x6e, 0x43, 0x13, 0xcf, 0x41, 0xa2, 0x23, 0x8d, 0x2c, 0x31, 0xce, 0x95, 0xf8, 0x16, 0x38, 0x12,
		0x7f, 0x56, 0x60, 0x8b, 0x1b, 0x91, 0x6f, 0x31, 0xf3, 0xe1, 0xf1, 0xce, 0x76, 0x74, 0x97, 0x79,
		0xd4, 0x41, 0xf9, 0x33, 0x63, 0x23, 0x2e, 0x3f, 0x09, 0xf6, 0x47, 0x5c, 0x3e, 0xe2, 0xf2, 0x63,
		0x5f, 0x09, 0x71, 0xf9, 0x79, 0xa2, 0x05, 0xe0, 0x12, 0x53, 0x63, 0xf8, 0xc3, 0x25, 0x96, 0xeb,
		0xee, 0xee, 0xfe, 0x49, 0xef, 0x32, 0x4f, 0xb7, 0x9f, 0xc5, 0x2a, 0x78, 0x27, 0x04, 0x15, 0xd3,
		0xb7, 0x02, 0x1f, 0x89, 0xbe, 0xef, 0x1b, 0xcc, 0x48, 0xa2, 0xef, 0xbb, 0x12, 0x35, 0xa3, 0x3b,
		0xcc, 0xf5, 0x1c, 0xb3, 0xeb, 0xb1, 0x1e, 0x75, 0x2f, 0xae, 0x05, 0xac, 0x83, 0x6e, 0xf0, 0xcb,
		0xef, 0x12, 0xf4, 0xea, 0xba, 0xf8, 0x5d, 0x7a, 0x2b, 0xf8, 0xe6, 0xc5, 0xd7, 0xc6, 0x75, 0x0b,
		0x7d, 0xe0, 0xe7, 0x35, 0xcf, 0xc5, 0xef, 0x92, 0x9b, 0xc0, 0x87, 0x13, 0x5f, 0xa0, 0x0e, 0xf0,
		0x12, 0xb6, 0xea, 0x54, 0x07, 0x2c, 0x39, 0xc2, 0x2e, 0xa9, 0xfd, 0x15, 0xfd, 0x2c, 0x53, 0x7a,
		0xca, 0x49, 0x39, 0xae, 0xd8, 0x73, 0x83, 0x90, 0xed, 0x02, 0x32, 0x05, 0x32, 0x05, 0x32, 0x05,
		0x32, 0x9d, 0x93, 0xf8, 0x82, 0x7b, 0xcb, 0x97, 0x96, 0xdc, 0xdf, 0xd9, 0x29, 0xfb, 0xfe, 0x23,
		0xd6, 0x1b, 0xe9, 0x4d, 0xb7, 0x3c, 0xad, 0x45, 0x67, 0x7f, 0x2b, 0xe7, 0x3a, 0xb0, 0x0b, 0xae,
		0x6f, 0x35, 0xbe, 0xc3, 0x19, 0x89, 0x58, 0xaf, 0x14, 0x9c, 0x8b, 0xf0, 0xd5, 0x6e, 0x98, 0x87,
		0x24, 0x9c, 0xa4, 0x3a, 0x11, 0x49, 0x38, 0xb9, 0x85, 0x53, 0xf0, 0x38, 0x64, 0x03, 0x97, 0xe0,
		0x71, 0x90, 0x46, 0x05, 0xc2, 0xae, 0x83, 0x5d, 0x07, 0xbb, 0x0e, 0x76, 0x9d, 0x64, 0x35, 0x03,
		0x8f, 0xc3, 0x9b, 0x0b, 0x02, 0x8f, 0x43, 0x46, 0x7b, 0x61, 0x6a, 0x09, 0xe0, 0x71, 0x50, 0xab,
		0xd5, 0x34, 0x78, 0x1c, 0x64, 0x53, 0x38, 0xf0, 0x38, 0x00, 0x99, 0x02, 0x99, 0x02, 0x99, 0x02,
		0x99, 0xc2, 0xe3, 0x00, 0x8f, 0x43, 0xca, 0xdd, 0xb8, 0x21, 0x1e, 0x87, 0xb5, 0xca, 0xb7, 0x9b,
		0x76, 0x38, 0x20, 0xe3, 0x4e, 0x96, 0x2c, 0xe7, 0x4d, 0x86, 0x8b, 0x9e, 0x74, 0x37, 0x25, 0xb5,
		0xc5, 0x4d, 0xbb, 0x0b, 0x40, 0x98, 0x8c, 0xa4, 0xbb, 0xa9, 0x91, 0x91, 0x72, 0xa7, 0x10, 0xd2,
		0x23, 0xe5, 0x0e, 0x29, 0x77, 0x6f, 0x0c, 0x84, 0x94, 0xbb, 0x9c, 0x5a, 0xf9, 0x70, 0x80, 0x67,
		0x60, 0xc5, 0xc3, 0x01, 0x2e, 0x30, 0x20, 0x1c, 0xe0, 0xa0, 0x19, 0x41, 0x33, 0x82, 0x66, 0x5c,
		0x1f, 0x9a, 0x11, 0x0e, 0xf0, 0x74, 0x0b, 0x02, 0x07, 0x78, 0x46, 0x7b, 0x61, 0x6a, 0x09, 0xe0,
		0x00, 0x57, 0xab, 0xd5, 0x34, 0x38, 0xc0, 0x25, 0xcf, 0x32, 0xa5, 0x03, 0x9c, 0x90, 0xdf, 0x8a,
		0x3d, 0x35, 0xc8, 0x98, 0x2e, 0xa0, 0x52, 0xa0, 0x52, 0xa0, 0x52, 0xa0, 0xd2, 0x39, 0x89, 0xdf,
		0x04, 0xe7, 0xf7, 0x44, 0x87, 0x4e, 0xff, 0x1c, 0x26, 0x56, 0xc1, 0xff, 0x9d, 0x7c, 0x43, 0xae,
		0xaf, 0xff, 0x7b, 0x41, 0x2c, 0xd6, 0xc5, 0xfd, 0x1d, 0x9c, 0x9a, 0xc8, 0xb6, 0x4b, 0xa1, 0x12,
		0x91, 0x6d, 0x97, 0x5b, 0x34, 0x05, 0x67, 0x43, 0x36, 0x68, 0x09, 0xce, 0x06, 0x69, 0x2c, 0x20,
		0xcc, 0x3a, 0x98, 0x75, 0x30, 0xeb, 0x60, 0xd6, 0x49, 0x56, 0x33, 0x70, 0x36, 0xbc, 0xb9, 0x20,
		0x70, 0x36, 0x64, 0xb4, 0x17, 0xa6, 0x96, 0x00, 0xce, 0x06, 0xb5, 0x5a, 0x4d, 0x83, 0xb3, 0x41,
		0x36, 0x7d, 0x03, 0x67, 0x03, 0x50, 0x29, 0x50, 0x29, 0x50, 0x29, 0x50, 0x29, 0x9c, 0x0d, 0x70,
		0x36, 0xa4, 0xdb, 0x90, 0x1b, 0xe1, 0x6c, 0x58, 0xab, 0x54, 0xbb, 0x89, 0xaf, 0x01, 0x89, 0x76,
		0xb2, 0xe4, 0x38, 0x5f, 0xf2, 0x5b, 0xf4, 0x34, 0xbb, 0x48, 0x62, 0x8b, 0x9b, 0x64, 0xe7, 0x19,
		0x0f, 0x32, 0x32, 0xec, 0xc6, 0xc3, 0x22, 0xbd, 0x4e, 0x21, 0x8e, 0x47, 0x7a, 0x1d, 0xd2, 0xeb,
		0xde, 0x18, 0x08, 0xe9, 0x75, 0x39, 0x35, 0xed, 0xe1, 0xf1, 0xce, 0xc0, 0x74, 0x87, 0xc7, 0x5b,
		0x60, 0x40, 0x78, 0xbc, 0xc1, 0x2d, 0x82, 0x5b, 0x04, 0xb7, 0xb8, 0x3e, 0xdc, 0x22, 0x3c, 0xde,
		0xe9, 0x16, 0x04, 0x1e, 0xef, 0x8c, 0xf6, 0xc2, 0xd4, 0x12, 0xc0, 0xe3, 0xad, 0x56, 0xab, 0x69,
		0xf0, 0x78, 0x4b, 0x9e, 0x65, 0x4a, 0x8f, 0x37, 0x15, 0xb3, 0x15, 0x7b, 0x64, 0xd0, 0x70, 0x5c,
		0xc0, 0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0x73, 0x12, 0xbf, 0x09, 0xbe, 0xee, 0x50, 0x81,
		0x46, 0x3f, 0xc0, 0xbd, 0x9d, 0x7c, 0x0f, 0xae, 0xaf, 0x7b, 0x7b, 0x2c, 0x0c, 0xeb, 0x95, 0x48,
		0xd7, 0x32, 0x1e, 0x90, 0x45, 0x97, 0x42, 0xff, 0x21, 0x8b, 0x2e, 0xb7, 0xd0, 0x09, 0x3e, 0x85,
		0x6c, 0xa0, 0x11, 0x7c, 0x0a, 0xd2, 0xc8, 0x3e, 0xd8, 0x70, 0xb0, 0xe1, 0x60, 0xc3, 0xc1, 0x86,
		0x93, 0xac, 0x66, 0xe0, 0x53, 0x78, 0x73, 0x41, 0xe0, 0x53, 0xc8, 0x68, 0x2f, 0x4c, 0x2d, 0x01,
		0x7c, 0x0a, 0x6a, 0xb5, 0x9a, 0x06, 0x9f, 0x82, 0x6c, 0xe2, 0x06, 0x3e, 0x05, 0xe0, 0x51, 0xe0,
		0x51, 0xe0, 0x51, 0xf8, 0x14, 0xe0, 0x53, 0xc8, 0xd9, 0xd1, 0x04, 0x9f, 0x82, 0x5a, 0x9f, 0xc2,
		0x5a, 0xe5, 0xcb, 0x85, 0x2e, 0x05, 0x24, 0xcb, 0xc9, 0x92, 0xe0, 0x1c, 0x49, 0x6e, 0xd1, 0x33,
		0xe5, 0x02, 0x59, 0x2d, 0x62, 0x9a, 0x1c, 0x8d, 0x7f, 0x8b, 0xd4, 0xaf, 0x45, 0x9e, 0x16, 0x57,
		0x45, 0x5a, 0x5c, 0x1e, 0xe0, 0x37, 0xd2, 0xe2, 0xd2, 0x10, 0x1c, 0x64, 0x69, 0x71, 0x46, 0xbf,
		0x1f, 0x2a, 0x6e, 0x09, 0xb9, 0x71, 0x53, 0x83, 0xd3, 0x3a, 0xb3, 0x77, 0x91, 0x20, 0x97, 0x67,
		0x5b, 0x1d, 0xce, 0xec, 0x22, 0x99, 0x3e, 0xe4, 0xb6, 0xb7, 0x44, 0x9b, 0x5b, 0x86, 0xad, 0xfd,
		0xb6, 0x8d, 0x1d, 0x2e, 0xfe, 0xf1, 0x12, 0x58, 0x1b, 0xfb, 0x4f, 0xd1, 0xbf, 0xd0, 0xd9, 0xdf,
		0xf9, 0x88, 0x77, 0x32, 0x2d, 0xd7, 0xf3, 0x95, 0xba, 0x63, 0x7b, 0x76, 0xd7, 0xee, 0xeb, 0xec,
		0xff, 0xe8, 0x8f, 0x8d, 0x65, 0x37, 0xc1, 0xf1, 0x81, 0xe3, 0x03, 0xc7, 0xc7, 0x86, 0x1d, 0x1f,
		0x66, 0x8f, 0x59, 0x9e, 0xe9, 0xbd, 0x48, 0x3a, 0x42, 0xf6, 0x09, 0xc7, 0x6c, 0x86, 0x8f, 0xfa,
		0xd1, 0x70, 0x99, 0x3c, 0x07, 0x59, 0xf3, 0xe2, 0xa6, 0x55, 0x3f, 0x3b, 0xeb, 0x5c, 0x5d, 0x5f,
		0xb6, 0x2e, 0x4f, 0x2e, 0xcf, 0x3a, 0xad, 0xdf, 0xaf, 0x1a, 0xd4, 0x7b, 0xe3, 0xab, 0xd1, 0x1f,
		0x30, 0xb7, 0x74, 0xac, 0xdd, 0x92, 0xb3, 0xd9, 0x92, 0x3c, 0x42, 0xe3, 0xe9, 0xf9, 0xf8, 0xf9,
		0xaa, 0x54, 0x04, 0xff, 0xb4, 0xe4, 0x69, 0x38, 0x6d, 0x5e, 0x37, 0x4e, 0x5a, 0x67, 0xbf, 0x77,
		0x4e, 0x2e, 0x2f, 0x2e, 0x1a, 0x27, 0xad, 0xc6, 0x29, 0x66, 0x45, 0x2b, 0x7d, 0xbe, 0x6e, 0x7e,
		0x6c, 0x62, 0x22, 0xb4, 0x52, 0xf3, 0xf3, 0x39, 0xb6, 0xc9, 0x68, 0x1e, 0x6e, 0x9a, 0x37, 0x98,
		0x07, 0xad, 0x74, 0x76, 0x79, 0x52, 0x3f, 0xc3, 0x44, 0x84, 0x13, 0xd1, 0xa9, 0x7f, 0xfe, 0x7c,
		0xdd, 0xf8, 0x5c, 0x6f, 0x35, 0x30, 0x25, 0x5a, 0xe9, 0xf2, 0xe6, 0xea, 0x13, 0xe6, 0x21, 0x98,
		0x87, 0x3d, 0x4c, 0x84, 0x56, 0xba, 0x3a, 0x69, 0xe0, 0xf0, 0x18, 0xcd, 0x43, 0xf3, 0x1c, 0xd3,
		0xa0, 0x95, 0x6e, 0x5a, 0xf5, 0x56, 0xf3, 0x24, 0xef, 0xc1, 0x4a, 0xed, 0xbc, 0x59, 0xde, 0x88,
		0x34, 0x98, 0x19, 0x2f, 0xd3, 0x48, 0x03, 0xaa, 0xa8, 0x98, 0xac, 0x22, 0x0c, 0x08, 0x22, 0x60,
		0x04, 0x62, 0x0b, 0xde, 0x29, 0x94, 0x3f, 0x2a, 0xb9, 0xcb, 0x54, 0xde, 0x4a, 0x42, 0xd1, 0x18,
		0x59, 0x48, 0x18, 0x9f, 0x6c, 0xa5, 0x97, 0x0c, 0x0e, 0xa9, 0x10, 0xad, 0xea, 0x4a, 0x53, 0xc5,
		0x55, 0x30, 0x22, 0x45, 0xd8, 0x8b, 0x40, 0xe1, 0x35, 0x20, 0xf4, 0x12, 0x50, 0x79, 0x05, 0xc8,
		0xbd, 0x00, 0xe4, 0xac, 0x3f, 0x2d, 0xcb, 0xaf, 0x56, 0x97, 0x8a, 0x46, 0x90, 0x94, 0x42, 0x35,
		0x44, 0x14, 0x19, 0xe6, 0x8f, 0x46, 0x13, 0x18, 0xb6, 0x8b, 0x7a, 0xe9, 0x2a, 0xb7, 0xa9, 0xb4,
		0xed, 0x2a, 0x6d, 0xdb, 0xca, 0xd9, 0xbe, 0xf9, 0x80, 0xe6, 0x64, 0xce, 0xb8, 0xa9, 0x98, 0x4d,
		0x3f, 0x2d, 0x95, 0x40, 0xe0, 0xc6, 0xc7, 0xe4, 0x07, 0x80, 0xd5, 0xbc, 0x83, 0x55, 0xb1, 0xda,
		0x43, 0xaa, 0x81, 0x2a, 0x77, 0x51, 0x21, 0x35, 0x20, 0x55, 0xe8, 0xa4, 0xa4, 0x38, 0x21, 0x05,
		0x4f, 0x46, 0x00, 0x54, 0x00, 0x54, 0xf5, 0xfa, 0x53, 0xf8, 0x24, 0x23, 0x8c, 0x42, 0xa4, 0x88,
		0x3a, 0x9c, 0x8e, 0x32, 0x14, 0x6e, 0x68, 0xa7, 0x46, 0x71, 0x89, 0x65, 0x7f, 0x90, 0x64, 0x7d,
		0x90, 0xd9, 0xd6, 0x55, 0xa8, 0x2e, 0xa8, 0x2e, 0xd8, 0xd6, 0xb0, 0xad, 0x61, 0x5b, 0xc3, 0xb6,
		0x86, 0x6d, 0x0d, 0xdb, 0x3a, 0x1b, 0xdb, 0x5a, 0xd4, 0xdb, 0xa8, 0xd4, 0xb4, 0x16, 0x70, 0x2d,
		0x72, 0x00, 0xd4, 0x77, 0x12, 0x25, 0x67, 0xa4, 0x40, 0x39, 0x8f, 0xc2, 0xd2, 0x99, 0xe9, 0x7a,
		0x75, 0xcf, 0xe3, 0x3b, 0xd2, 0x4b, 0xe7, 0xa6, 0xd5, 0xe8, 0x07, 0x33, 0xcb, 0x77, 0xec, 0x95,
		0xce, 0x8d, 0x1f, 0x53, 0x23, 0x54, 0x3e, 0xd4, 0x6a, 0x07, 0x87, 0xb5, 0xda, 0xee, 0xe1, 0xde,
		0xe1, 0xee, 0xd1, 0xfe, 0x7e, 0xe5, 0x80, 0x27, 0x8e, 0xbd, 0x74, 0xe9, 0xf4, 0x98, 0xc3, 0x7a,
		0x1f, 0x5f, 0xc4, 0xe1, 0xfd, 0xc0, 0x65, 0x0e, 0x2f, 0xba, 0x27, 0x38, 0x27, 0xa7, 0xcf, 0x46,
		0x3b, 0x78, 0x2b, 0xfd, 0x4e, 0x24, 0xdf, 0x94, 0xf4, 0x4c, 0x9c, 0x39, 0x07, 0xfd, 0x99, 0xca,
		0xb1, 0xbd, 0x17, 0x09, 0xc5, 0x97, 0xd1, 0x83, 0x72, 0xd4, 0x35, 0x4b, 0xbb, 0x2b, 0xd9, 0x0f,
		0xcf, 0x31, 0xf4, 0x81, 0xe5, 0x7a, 0xc6, 0x5d, 0x9f, 0x4f, 0x0c, 0xa6, 0xd7, 0x9c, 0x37, 0x65,
		0x81, 0xc0, 0xb4, 0x13, 0xd8, 0x04, 0xb2, 0xec, 0x3a, 0x92, 0xcd, 0x20, 0xdf, 0xb6, 0xe3, 0xdf,
		0x14, 0x02, 0xb8, 0x23, 0xf5, 0x55, 0x6d, 0xa9, 0xfb, 0x40, 0x10, 0xcf, 0xa8, 0xc7, 0x31, 0x25,
		0x2e, 0x36, 0x49, 0x19, 0x72, 0x49, 0x27, 0x4f, 0xc9, 0xa5, 0x21, 0xd9, 0x37, 0x13, 0xae, 0x3e,
		0xef, 0xaa, 0xab, 0x5a, 0xed, 0x14, 0x6b, 0x2c, 0x7f, 0x6d, 0x93, 0xad, 0xe8, 0xea, 0xf5, 0x79,
		0xfb, 0x1b, 0x2b, 0x56, 0x2e, 0x05, 0x8a, 0x4c, 0x87, 0x1a, 0xd3, 0xa3, 0x44, 0x12, 0x54, 0x38,
		0x83, 0x02, 0xad, 0x41, 0xbf, 0x9f, 0xe6, 0x92, 0x10, 0x23, 0xdc, 0x1b, 0x7d, 0x97, 0x09, 0x4d,
		0x6a, 0xca, 0x6d, 0x20, 0x55, 0xfc, 0x13, 0xc8, 0xbc, 0x24, 0x59, 0x7f, 0x5b, 0xc0, 0xe3, 0xc5,
		0x76, 0xf9, 0xbf, 0xc4, 0xcc, 0x79, 0xd2, 0xb9, 0x26, 0x9c, 0xe3, 0x37, 0x66, 0x94, 0x66, 0x26,
		0x97, 0x4f, 0xdc, 0xe2, 0xb4, 0xcc, 0x7e, 0x32, 0x37, 0x41, 0xab, 0x26, 0x86, 0x77, 0x42, 0x96,
		0xbc, 0x3d, 0xcf, 0x5b, 0xcf, 0xbe, 0xe3, 0xe4, 0x4d, 0xa6, 0xde, 0xa2, 0xe4, 0xbe, 0xb8, 0x1e,
		0x5b, 0x2c, 0x50, 0x3e, 0xe1, 0x9a, 0x82, 0x7f, 0x9f, 0x7b, 0xef, 0xe5, 0xee, 0x95, 0x58, 0x9e,
		0xf6, 0x2d, 0xde, 0x75, 0x9a, 0x47, 0x75, 0x5f, 0x96, 0x2d, 0xfc, 0x2a, 0x94, 0x9b, 0x98, 0xe6,
		0x4c, 0x8c, 0x48, 0xe7, 0x69, 0xc8, 0xd1, 0x73, 0xa5, 0x94, 0x8c, 0x38, 0x32, 0xbf, 0x64, 0x18,
		0x46, 0xfc, 0x9b, 0x8c, 0xe7, 0x62, 0xf4, 0xa5, 0x98, 0x47, 0x7b, 0xdb, 0xb3, 0xb5, 0x92, 0x2a,
		0x4f, 0x42, 0x81, 0x4f, 0x2f, 0x49, 0xfc, 0x93, 0xa4, 0x31, 0x40, 0x52, 0x33, 0xd1, 0xa9, 0x8d,
		0x87, 0xf9, 0x25, 0x1b, 0x3d, 0x37, 0x91, 0xf6, 0x5b, 0xe5, 0x97, 0x29, 0x19, 0xdd, 0xae, 0x3d,
		0xb0, 0xbc, 0x24, 0x65, 0xf8, 0x27, 0x2b, 0x3c, 0xb9, 0x66, 0x15, 0x7a, 0x48, 0xe4, 0xca, 0x4c,
		0xec, 0x23, 0x49, 0xe3, 0x03, 0x49, 0x2e, 0x08, 0xbc, 0x16, 0x29, 0xb7, 0x8b, 0x82, 0xdb, 0xba,
		0x4c, 0x25, 0x28, 0x34, 0xf8, 0x2f, 0xa9, 0x63, 0x2f, 0x6d, 0x5c, 0x3a, 0x5f, 0x1c, 0x7a, 0x4a,
		0xdf, 0x78, 0x6a, 0xe7, 0x1b, 0x8f, 0x93, 0x2d, 0xbd, 0xa0, 0x89, 0x52, 0x20, 0xc2, 0xbe, 0x31,
		0x61, 0x7a, 0x83, 0x4b, 0x10, 0xe5, 0x98, 0x94, 0x69, 0x3d, 0xcf, 0x53, 0xda, 0x4b, 0x7f, 0x62,
		0xde, 0xa3, 0xdd, 0x4b, 0x3f, 0xff, 0x8b, 0x8a, 0x70, 0x3c, 0x54, 0x5a, 0x8e, 0x9e, 0xcb, 0xc7,
		0xcc, 0xed, 0x53, 0x16, 0xf1, 0x21, 0xf3, 0x8b, 0x39, 0x15, 0xe3, 0x47, 0xe6, 0x12, 0x26, 0x63,
		0xf7, 0x84, 0xb6, 0x81, 0x1a, 0x2f, 0x10, 0xb7, 0x07, 0x77, 0xc2, 0xf3, 0x5a, 0xc9, 0xac, 0xc4,
		0x58, 0x5d, 0x7d, 0xc4, 0x71, 0x6d, 0xf8, 0xd8, 0x99, 0x91, 0xdb, 0x34, 0x75, 0x98, 0x28, 0xea,
		0x2e, 0xd1, 0xd6, 0x59, 0x8a, 0x5e, 0xb0, 0x5e, 0xaf, 0x77, 0xce, 0x1b, 0xad, 0x5f, 0x2f, 0x4f,
		0x29, 0x2a, 0x2a, 0x51, 0x56, 0x50, 0x22, 0x2e, 0xad, 0x47, 0x54, 0xeb, 0x83, 0x20, 0x51, 0x9d,
		0xf8, 0xc5, 0xae, 0xeb, 0xa7, 0xcd, 0x2f, 0x37, 0x9d, 0xfa, 0xd9, 0x5a, 0xbe, 0x5d, 0xab, 0x7e,
		0x52, 0x3f, 0xa1, 0x7a, 0x3b, 0xa1, 0x11, 0xda, 0xc5, 0x88, 0x10, 0x21, 0x50, 0x7a, 0xc2, 0xb1,
		0x39, 0x82, 0x31, 0x39, 0x79, 0xf3, 0x51, 0x21, 0x0c, 0x62, 0x05, 0x32, 0x40, 0x18, 0x44, 0x42,
		0x6c, 0xb8, 0xfe, 0x61, 0x10, 0x6b, 0xe3, 0x50, 0x0c, 0x48, 0xe3, 0x72, 0xf8, 0x97, 0x61, 0x18,
		0xe5, 0x89, 0x95, 0x97, 0x3e, 0x4f, 0x2c, 0x96, 0xfa, 0xbe, 0xf1, 0xc7, 0xef, 0x84, 0x7f, 0xd5,
		0x0d, 0xa3, 0x53, 0x8f, 0x6e, 0x93, 0x2a, 0xc1, 0x2b, 0x81, 0x03, 0x30, 0x01, 0xf5, 0xc5, 0xbe,
		0x87, 0x5a, 0x26, 0x25, 0x7b, 0x13, 0x5e, 0x07, 0xf6, 0x06, 0xec, 0x8d, 0x1a, 0xf6, 0xc6, 0x17,
		0x38, 0x7e, 0xc6, 0x26, 0xb8, 0x9c, 0x8f, 0xa5, 0xa9, 0x80, 0xa5, 0x01, 0x4b, 0x23, 0x07, 0x69,
		0xf2, 0xa6, 0xcf, 0xa0, 0x1a, 0x8c, 0x26, 0x21, 0x63, 0x8d, 0x6f, 0xe3, 0x50, 0x42, 0x5b, 0xad,
		0x90, 0x09, 0x6b, 0x5c, 0x1b, 0x2b, 0x13, 0x63, 0x59, 0x3c, 0x5f, 0xcd, 0x3f, 0x48, 0x82, 0xa6,
		0xee, 0x64, 0x9c, 0xdc, 0xd4, 0x98, 0xc8, 0x5d, 0x93, 0xbf, 0x51, 0xa9, 0x37, 0xac, 0xb4, 0x8d,
		0x2b, 0x6d, 0x03, 0x4b, 0xd9, 0xc8, 0x34, 0xac, 0x5b, 0xfe, 0x32, 0xd7, 0x68, 0x5b, 0x33, 0x50,
		0xb6, 0x64, 0x90, 0xd3, 0x8a, 0x61, 0xc6, 0x55, 0x50, 0x3f, 0x39, 0xb9, 0xfc, 0x72, 0xd1, 0x6a,
		0x5e, 0x7c, 0xee, 0x34, 0xbe, 0x36, 0x2e, 0x5a, 0x94, 0x6d, 0x18, 0x64, 0xb4, 0x5f, 0x90, 0xd4,
		0x8d, 0x62, 0xe9, 0x54, 0x9c, 0x5c, 0x9e, 0x9f, 0xd7, 0x2f, 0x08, 0x3b, 0x0e, 0x10, 0x16, 0xc5,
		0x55, 0x39, 0x0f, 0x67, 0x97, 0x9f, 0x9b, 0x17, 0x79, 0x6b, 0xf9, 0xd2, 0xce, 0x5a, 0x8f, 0x65,
		0xd2, 0xc4, 0xd4, 0x61, 0xdd, 0xe0, 0x00, 0x22, 0x42, 0x26, 0xe1, 0x78, 0x40, 0x25, 0x40, 0x25,
		0x40, 0x25, 0xb9, 0x42, 0x25, 0xcc, 0x1a, 0x3c, 0x31, 0xc7, 0xf0, 0xf8, 0x62, 0x34, 0x62, 0x51,
		0x49, 0x8d, 0x60, 0xac, 0x86, 0x35, 0x78, 0xa2, 0x13, 0xdf, 0x96, 0x7d, 0x13, 0xb8, 0x27, 0x49,
		0xfb, 0x6e, 0xed, 0x86, 0x25, 0xdd, 0xaf, 0x5b, 0x9d, 0x9b, 0xd6, 0xe5, 0x15, 0x65, 0xcf, 0xad,
		0x4a, 0x30, 0xf4, 0x25, 0x51, 0xf3, 0x00, 0xb2, 0xde, 0x65, 0x76, 0x93, 0x83, 0x40, 0x7d, 0x5b,
		0x53, 0x4d, 0xe6, 0x8f, 0xac, 0x2f, 0x60, 0x38, 0xb0, 0x3f, 0x64, 0x65, 0x3d, 0x4a, 0xd0, 0xa3,
		0xd2, 0x44, 0x12, 0x17, 0x5b, 0xe0, 0x51, 0x0a, 0xfe, 0x92, 0x58, 0x97, 0xf1, 0x4d, 0xff, 0x5b,
		0xc3, 0x7f, 0x86, 0xe0, 0xaf, 0x02, 0x54, 0x5b, 0x24, 0xe0, 0xa2, 0xe8, 0x38, 0xa8, 0x75, 0xab,
		0xbc, 0x08, 0x32, 0x38, 0x03, 0xb4, 0x86, 0xba, 0x8b, 0xc4, 0x75, 0x17, 0xa7, 0xb6, 0x35, 0xaa,
		0x2f, 0x26, 0x9a, 0xff, 0x35, 0xa9, 0xbe, 0x08, 0xf5, 0xb5, 0xf6, 0xea, 0x0b, 0xbe, 0x2c, 0xb0,
		0x46, 0x60, 0x8d, 0xc0, 0x1a, 0xa5, 0x90, 0x37, 0xf8, 0xb2, 0xe0, 0xcb, 0x82, 0x2f, 0x0b, 0xbe,
		0x2c, 0x65, 0x0c, 0x16, 0x7c, 0x59, 0x40, 0x25, 0x40, 0x25, 0x40, 0x25, 0x6f, 0xdb, 0x0c, 0xf0,
		0x65, 0x89, 0x8c, 0x0a, 0x5f, 0x16, 0xc1, 0x90, 0xf0, 0x65, 0x49, 0x46, 0x02, 0x1b, 0xeb, 0xcb,
		0x92, 0x56, 0x07, 0x3d, 0xb9, 0x2b, 0x6b, 0xfd, 0xaa, 0x9b, 0x73, 0xd3, 0x4c, 0xeb, 0x9f, 0xdc,
		0x9b, 0xac, 0xba, 0x65, 0xfc, 0x10, 0x89, 0xab, 0x5d, 0x8a, 0x2e, 0xa5, 0xbc, 0x52, 0xc0, 0x89,
		0x37, 0x27, 0x65, 0x71, 0xdf, 0xc4, 0xdb, 0xb1, 0x84, 0x0c, 0xdb, 0xb8, 0x55, 0x91, 0x9e, 0x61,
		0x1b, 0xac, 0x83, 0xca, 0x0c, 0xdb, 0x74, 0xbe, 0x2d, 0x2e, 0x5f, 0x16, 0x77, 0x7e, 0x6d, 0x15,
		0xf9, 0xb5, 0x94, 0x46, 0x20, 0xaa, 0xa3, 0xa1, 0x3a, 0x1a, 0xf2, 0x6e, 0x51, 0x1d, 0x2d, 0x91,
		0xae, 0x46, 0x75, 0x34, 0x54, 0x47, 0x53, 0xb2, 0x7a, 0x4b, 0x5f, 0x14, 0xd5, 0xd1, 0x0a, 0xf9,
		0x76, 0xa8, 0x8e, 0xa6, 0x5e, 0xe9, 0xa1, 0x3a, 0xda, 0x86, 0x11, 0x28, 0xa8, 0x8e, 0x26, 0x07,
		0x17, 0x6a, 0xa8, 0x8e, 0xb6, 0x9e, 0xdc, 0x4d, 0x5a, 0x86, 0x9b, 0x8f, 0xba, 0x49, 0x41, 0x62,
		0xcb, 0x6e, 0x8e, 0x44, 0xd7, 0xc7, 0xe7, 0xad, 0x79, 0x15, 0xe9, 0xd0, 0xf3, 0xd6, 0x4c, 0x72,
		0xf7, 0xdf, 0x79, 0xa3, 0xa7, 0x86, 0x31, 0xf0, 0x1e, 0x47, 0x80, 0xbc, 0x9b, 0x6c, 0x56, 0x26,
		0x5c, 0xc1, 0xec, 0x75, 0x68, 0x2b, 0x81, 0xb6, 0x12, 0xa1, 0x40, 0xf5, 0x9e, 0x4c, 0x4b, 0x1f,
		0x04, 0x8a, 0x37, 0x25, 0x77, 0x3a, 0x75, 0x2d, 0x0a, 0x14, 0x82, 0x40, 0x55, 0x43, 0xa0, 0x72,
		0x56, 0x64, 0x13, 0xab, 0xc4, 0x86, 0x12, 0x85, 0xa0, 0x4a, 0xf3, 0x5a, 0xa2, 0x30, 0xd0, 0xc2,
		0xcf, 0x86, 0xeb, 0xfe, 0x25, 0x12, 0xc7, 0x39, 0xa7, 0xd5, 0xa3, 0xf1, 0x90, 0xa5, 0x8a, 0x34,
		0x2f, 0xc5, 0x1b, 0x2d, 0x13, 0x06, 0x8b, 0x30, 0x4b, 0x35, 0x73, 0x26, 0x8b, 0x73, 0x06, 0x1a,
		0x3f, 0x3c, 0x31, 0x12, 0x9d, 0xb0, 0xd3, 0x78, 0x57, 0x67, 0x3f, 0xbc, 0xe3, 0x29, 0x0b, 0xee,
		0xd1, 0x70, 0x1f, 0x59, 0x4f, 0xff, 0x6e, 0xf4, 0x07, 0x8c, 0x56, 0xea, 0xfd, 0x08, 0x1c, 0x42,
		0xb1, 0x57, 0x2d, 0xf0, 0x6d, 0x25, 0x24, 0xcd, 0xec, 0xb1, 0x10, 0x2e, 0x07, 0xf5, 0x69, 0x33,
		0x1e, 0x16, 0x87, 0x0e, 0x0e, 0x1d, 0x1c, 0x3a, 0xe9, 0xec, 0x1a, 0xe7, 0xe5, 0xd9, 0x9b, 0x6c,
		0x24, 0xc1, 0xcc, 0x60, 0xe5, 0xbe, 0x94, 0xe1, 0xfa, 0x84, 0x40, 0xce, 0x50, 0x6d, 0xe5, 0x09,
		0x49, 0xc2, 0x5f, 0x6d, 0x27, 0x0d, 0xfd, 0x38, 0x73, 0xf7, 0x4e, 0x7d, 0x74, 0xf7, 0x2f, 0x2e,
		0x73, 0xb8, 0xca, 0xec, 0xa4, 0xe0, 0xd5, 0x53, 0xb1, 0xd2, 0x3c, 0x55, 0x28, 0x84, 0xaa, 0x4f,
		0x08, 0xdb, 0xef, 0x55, 0xd8, 0xef, 0xb0, 0xdf, 0x61, 0xbf, 0x03, 0x4a, 0x01, 0x4a, 0xc1, 0x7e,
		0x87, 0xfd, 0x0e, 0xfb, 0x1d, 0xf6, 0x3b, 0xec, 0x77, 0x1c, 0x3a, 0x38, 0x74, 0x60, 0xbf, 0x8b,
		0xaa, 0xa4, 0x91, 0x69, 0x1c, 0x5a, 0xb6, 0x24, 0xba, 0x28, 0x1a, 0x0f, 0x4a, 0x08, 0x4a, 0x08,
		0x4a, 0xa8, 0x58, 0xc8, 0x17, 0xbc, 0xe1, 0x12, 0xde, 0x90, 0xb7, 0xb2, 0x01, 0x05, 0x6d, 0xc8,
		0x51, 0xd2, 0x60, 0xad, 0xa3, 0x71, 0xe3, 0x16, 0x49, 0x52, 0x58, 0x6e, 0xcc, 0xb2, 0xa8, 0x4c,
		0xac, 0x4e, 0x19, 0x70, 0xc5, 0x17, 0x68, 0x85, 0xc8, 0x40, 0x0d, 0x91, 0x81, 0x62, 0x84, 0xea,
		0x5c, 0x8c, 0xb3, 0x78, 0x7a, 0xf5, 0xd2, 0xe1, 0x90, 0x62, 0x2d, 0x0f, 0x2c, 0xc2, 0xef, 0x80,
		0x14, 0x6b, 0xc9, 0x3c, 0x25, 0x52, 0xac, 0x39, 0x87, 0x45, 0x8a, 0xb5, 0xf2, 0x17, 0x43, 0x8a,
		0xb5, 0x5c, 0x73, 0x7b, 0xfc, 0x07, 0x29, 0xd6, 0xf9, 0x35, 0xef, 0x91, 0x62, 0x9d, 0x7a, 0x50,
		0xa4, 0x58, 0xab, 0x21, 0x0d, 0x91, 0x62, 0xbd, 0xa6, 0xa4, 0x4e, 0xea, 0x30, 0x3d, 0x7e, 0x42,
		0x27, 0x4d, 0x50, 0x1e, 0xca, 0xe4, 0x81, 0xcb, 0x01, 0x97, 0x03, 0x2e, 0x07, 0x5c, 0x0e, 0xb8,
		0x1c, 0x70, 0x39, 0xe0, 0x72, 0xc0, 0xe5, 0x80, 0xcb, 0x01, 0x97, 0x03, 0x2e, 0x07, 0x5c, 0x0e,
		0xb8, 0x1c, 0x70, 0x39, 0xe0, 0x72, 0xc0, 0xe5, 0x2c, 0xe1, 0x72, 0x64, 0x96, 0xcc, 0x9b, 0xa5,
		0x72, 0x68, 0xcb, 0xe6, 0x25, 0x60, 0x72, 0x46, 0x62, 0xea, 0xa6, 0x67, 0x72, 0x82, 0xcb, 0x10,
		0x95, 0x03, 0x26, 0x47, 0x0d, 0x93, 0x93, 0xaa, 0xb4, 0x1c, 0xc5, 0xa9, 0x85, 0x5a, 0x5d, 0xe0,
		0x69, 0xf2, 0x9a, 0xeb, 0xcb, 0x59, 0xbc, 0x6e, 0x41, 0x5c, 0xb8, 0x2b, 0x09, 0x08, 0x6c, 0x10,
		0xe1, 0x8d, 0x42, 0xb1, 0x61, 0xe8, 0x36, 0x0e, 0x25, 0xb8, 0xd5, 0x90, 0xe1, 0x20, 0xd5, 0x5c,
		0xe6, 0xde, 0x70, 0xd1, 0x00, 0xc2, 0xe9, 0xf5, 0x0b, 0x82, 0x27, 0x98, 0x60, 0x3f, 0xbf, 0x19,
		0xd1, 0xe8, 0x58, 0xe5, 0x66, 0x95, 0xb6, 0x69, 0xa5, 0x6d, 0x5e, 0x29, 0x9b, 0x98, 0x86, 0x73,
		0xcb, 0x5f, 0xa3, 0x63, 0x61, 0x6e, 0x8c, 0x88, 0x23, 0xa3, 0x9a, 0x21, 0xe1, 0xc4, 0x7e, 0x71,
		0xde, 0x31, 0x96, 0xcb, 0x91, 0x99, 0xe8, 0x1f, 0xb3, 0x9b, 0x08, 0x12, 0xfe, 0x97, 0x6e, 0xa7,
		0x02, 0x93, 0xd7, 0xef, 0xc5, 0x8f, 0x46, 0xd1, 0x92, 0x00, 0xb1, 0x27, 0xa4, 0x58, 0x51, 0x00,
		0x1c, 0x94, 0x38, 0x28, 0x71, 0x50, 0x4a, 0x3a, 0x28, 0x69, 0x8b, 0x0e, 0x50, 0x9f, 0x9a, 0x99,
		0xa8, 0x43, 0xc7, 0xee, 0x13, 0x7a, 0xee, 0xfd, 0xd1, 0xa0, 0xf8, 0xa0, 0xf8, 0xa0, 0xf8, 0x04,
		0xde, 0xe8, 0xdc, 0xb0, 0x7a, 0x86, 0x67, 0x3b, 0x2f, 0xfc, 0xac, 0x95, 0x44, 0x25, 0xca, 0x1b,
		0x73, 0x15, 0xab, 0x36, 0x8f, 0x08, 0xc6, 0x12, 0x8a, 0xc9, 0x92, 0x63, 0x36, 0xc8, 0x31, 0xd1,
		0x88, 0x0f, 0x1d, 0x22, 0x91, 0x95, 0x38, 0x73, 0x34, 0xd1, 0x6e, 0xb1, 0xd3, 0xb7, 0x4f, 0x38,
		0x26, 0x69, 0x34, 0x5c, 0xec, 0x84, 0xdc, 0xfc, 0x7e, 0xd3, 0x6a, 0x9c, 0x77, 0x4e, 0x1b, 0x9f,
		0x9a, 0x17, 0x8d, 0xd3, 0xce, 0xf5, 0xe5, 0x59, 0xe3, 0x86, 0x70, 0x66, 0x34, 0xe2, 0x90, 0x39,
		0x79, 0x22, 0xf2, 0xd6, 0xec, 0x8c, 0x66, 0xa5, 0x53, 0x3f, 0x3d, 0x6f, 0x5e, 0x94, 0xc8, 0xef,
		0x37, 0x24, 0x1d, 0xb1, 0xfd, 0x2e, 0x5f, 0xcf, 0x25, 0x3e, 0x4a, 0xbb, 0x80, 0x30, 0xd8, 0x75,
		0x1f, 0xf5, 0x3f, 0xd9, 0x0b, 0x1d, 0x12, 0x1e, 0x0f, 0x08, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x9c,
		0x2b, 0x00, 0x9b, 0x3b, 0xba, 0x3c, 0x13, 0x8d, 0x27, 0x5c, 0x87, 0x70, 0xd1, 0x30, 0x10, 0xab,
		0x44, 0x08, 0x9d, 0x07, 0x9d, 0x07, 0x9d, 0x07, 0x9d, 0x27, 0xe5, 0x4a, 0xde, 0x48, 0x0c, 0xc1,
		0x8a, 0x88, 0x13, 0x7c, 0xc9, 0x1f, 0xd3, 0xeb, 0x47, 0xb0, 0x96, 0xc5, 0x3a, 0xaa, 0x4c, 0x9e,
		0x83, 0x37, 0xde, 0xf7, 0xcb, 0xe8, 0x29, 0x3a, 0xdc, 0xad, 0x55, 0xf8, 0x57, 0x6f, 0xc8, 0x55,
		0x08, 0x92, 0xa7, 0xe5, 0xca, 0x92, 0x4d, 0xc3, 0x57, 0x88, 0x52, 0xa3, 0x8c, 0x3a, 0xab, 0x22,
		0xea, 0x4c, 0xe2, 0xe9, 0x84, 0xa8, 0xb3, 0xc9, 0x93, 0x23, 0xea, 0x0c, 0x90, 0x12, 0x90, 0x12,
		0x90, 0xb2, 0xa8, 0x90, 0x12, 0x51, 0x67, 0x94, 0xbb, 0x09, 0x51, 0x67, 0x94, 0x6c, 0x0b, 0xa2,
		0xce, 0x70, 0x50, 0xe2, 0xa0, 0xdc, 0xcc, 0x83, 0x12, 0x51, 0x67, 0x0b, 0xcf, 0x8e, 0xa8, 0x33,
		0x28, 0x3e, 0x28, 0xbe, 0x7c, 0x29, 0x3e, 0x44, 0x9d, 0xf1, 0xbe, 0x26, 0xa2, 0xce, 0xb2, 0x11,
		0x59, 0x89, 0x33, 0x87, 0xa8, 0xb3, 0xb9, 0x09, 0x41, 0xd4, 0x59, 0x82, 0xd9, 0x41, 0xd4, 0x59,
		0x76, 0xa3, 0x20, 0xea, 0x0c, 0x51, 0x67, 0x00, 0xc3, 0x00, 0xc3, 0x79, 0x65, 0x01, 0x10, 0x75,
		0x86, 0xa8, 0x33, 0xe8, 0x3c, 0xe8, 0x3c, 0xe8, 0xbc, 0x42, 0xea, 0xbc, 0x0d, 0x8e, 0x3a, 0x13,
		0x09, 0x83, 0xd2, 0xa8, 0x82, 0xce, 0x38, 0x1a, 0xf3, 0xf2, 0xaf, 0x1d, 0x4f, 0xcc, 0x19, 0x5d,
		0x5f, 0x77, 0x74, 0x74, 0x47, 0xe4, 0x59, 0xd6, 0x27, 0x52, 0x51, 0x3b, 0xba, 0xf7, 0x99, 0x71,
		0x4f, 0xd4, 0x17, 0xe1, 0x50, 0x60, 0x8c, 0xab, 0x50, 0xe5, 0xee, 0xec, 0x84, 0x31, 0xbb, 0xe5,
		0x68, 0x53, 0xaf, 0x45, 0xa3, 0xf8, 0x7f, 0xf9, 0xa4, 0x05, 0xaf, 0xa6, 0x5a, 0xff, 0xe2, 0xe5,
		0xd6, 0xa0, 0xdf, 0x27, 0x28, 0x75, 0xed, 0xc7, 0xe0, 0xac, 0x6b, 0xc7, 0xff, 0x09, 0xc2, 0x50,
		0xda, 0xeb, 0x7f, 0x82, 0x29, 0xd0, 0xe6, 0xff, 0xad, 0x95, 0x51, 0x52, 0x45, 0xdc, 0x5f, 0x0c,
		0xb2, 0x2a, 0xe2, 0xef, 0x04, 0xe6, 0x3b, 0xed, 0x3c, 0x0b, 0xcc, 0x6f, 0x29, 0x51, 0xdf, 0x3a,
		0xbe, 0x19, 0x7d, 0x7b, 0x2e, 0xe3, 0x67, 0xe8, 0x8d, 0xd9, 0xf1, 0xbb, 0x89, 0xd9, 0x8e, 0xf9,
		0xdf, 0x64, 0x93, 0x33, 0xd3, 0x84, 0x6c, 0x72, 0xd9, 0x8a, 0xd9, 0x4f, 0x96, 0x2d, 0x91, 0x18,
		0x9b, 0xa6, 0xc1, 0xa0, 0xe9, 0xb1, 0x66, 0x5a, 0x4c, 0xc9, 0x8d, 0x1d, 0xb9, 0x31, 0x22, 0x17,
		0x16, 0x14, 0xdb, 0x3f, 0x49, 0xb3, 0x07, 0xd2, 0x16, 0x85, 0xe6, 0x2b, 0x02, 0x8d, 0x52, 0xfe,
		0x1a, 0x4a, 0xf9, 0xf3, 0x09, 0xe8, 0x72, 0xbd, 0x47, 0xd2, 0x93, 0x71, 0x61, 0x34, 0xb4, 0x64,
		0x94, 0x67, 0xb9, 0xa3, 0xd4, 0x3f, 0x5a, 0x32, 0x26, 0xfa, 0x83, 0x96, 0x8c, 0xab, 0x5f, 0x10,
		0x2d, 0x19, 0x95, 0x30, 0x61, 0x12, 0x5f, 0x0c, 0x2d, 0x19, 0xe5, 0x72, 0x9f, 0xe3, 0x3f, 0x68,
		0xc9, 0x98, 0x5e, 0xdf, 0xa1, 0x25, 0x23, 0x5a, 0x32, 0x4a, 0xc5, 0x82, 0x1a, 0x5a, 0x32, 0x12,
		0xea, 0x0f, 0xb4, 0x64, 0x5c, 0x45, 0xf6, 0x45, 0x86, 0x5e, 0xfa, 0x92, 0x2d, 0x29, 0xa9, 0xbf,
		0xe8, 0x4e, 0xa9, 0xca, 0xb2, 0xd0, 0xb4, 0x64, 0x64, 0xdf, 0x43, 0x5d, 0x93, 0x92, 0xc9, 0x09,
		0xaf, 0x03, 0x93, 0x03, 0x26, 0x47, 0x0d, 0x93, 0xe3, 0x0b, 0x1c, 0x3f, 0x75, 0x13, 0x5c, 0x8e,
		0xb6, 0x8c, 0xe0, 0x6a, 0x72, 0xc5, 0xd5, 0xa0, 0x2d, 0x23, 0xc2, 0x94, 0xa4, 0x6d, 0x24, 0x29,
		0x20, 0x57, 0xdb, 0xf0, 0x02, 0x59, 0xfe, 0x41, 0x12, 0x14, 0x00, 0x20, 0x63, 0xe6, 0xa6, 0xc6,
		0x44, 0x04, 0xbc, 0xfc, 0x8d, 0x4a, 0xbd, 0x61, 0xa5, 0x6d, 0x5c, 0x69, 0x1b, 0x58, 0xca, 0x46,
		0xa6, 0xe1, 0xde, 0xf2, 0x17, 0x01, 0x4f, 0x9b, 0x47, 0x4c, 0x99, 0x3f, 0x2c, 0x27, 0x6f, 0x78,
		0xc6, 0x61, 0x50, 0xff, 0xd2, 0xfa, 0xf5, 0xf2, 0xba, 0xf9, 0x9f, 0x7a, 0xab, 0x79, 0x79, 0xd1,
		0x69, 0x7c, 0x6d, 0x5c, 0xb4, 0x28, 0xbc, 0x07, 0xd1, 0xbd, 0x24, 0xe4, 0x0b, 0x4b, 0xca, 0x9e,
		0x8e, 0x9b, 0x8d, 0x93, 0xcb, 0xf3, 0xf3, 0xfa, 0xc5, 0x29, 0x5d, 0xb6, 0xf0, 0xf0, 0x7d, 0x71,
		0xa7, 0xe2, 0xe2, 0x53, 0xf3, 0x73, 0x29, 0x67, 0x79, 0xc9, 0xed, 0xac, 0x35, 0x1a, 0x32, 0x56,
		0x12, 0x12, 0x6d, 0x01, 0xa9, 0x14, 0xfc, 0xa5, 0xbc, 0x50, 0xf2, 0x84, 0x85, 0x6b, 0xf8, 0x8f,
		0x11, 0xfc, 0x55, 0x80, 0x4a, 0xc9, 0x04, 0x88, 0x94, 0x0e, 0x89, 0x22, 0x73, 0x05, 0x26, 0x21,
		0x32, 0x57, 0xf2, 0x96, 0xb9, 0x32, 0xb5, 0xad, 0x51, 0xf2, 0x5d, 0x09, 0xa3, 0x85, 0x92, 0xef,
		0x50, 0x5f, 0x60, 0xb4, 0xc0, 0x68, 0x81, 0xd1, 0x02, 0xa3, 0x05, 0x46, 0x0b, 0x8c, 0x16, 0x18,
		0x2d, 0x30, 0x5a, 0x60, 0xb4, 0x36, 0x9b, 0xd1, 0x52, 0x5c, 0x84, 0x25, 0x86, 0xd0, 0x52, 0x5b,
		0x85, 0x45, 0x45, 0x09, 0x03, 0x6e, 0xb0, 0x89, 0x22, 0x06, 0xab, 0x86, 0x58, 0xdb, 0x22, 0x06,
		0xcb, 0xb7, 0xa8, 0xfc, 0x2a, 0x06, 0xcb, 0x37, 0x25, 0xca, 0x18, 0xbc, 0xb5, 0x36, 0x2a, 0x22,
		0x6f, 0x83, 0xd5, 0x50, 0x19, 0x79, 0x9b, 0x8e, 0xed, 0xe2, 0x62, 0xb7, 0xb8, 0xe3, 0x6e, 0xab,
		0x88, 0xbb, 0xa5, 0x34, 0x56, 0x91, 0x41, 0x8d, 0x0c, 0x6a, 0x44, 0xe5, 0x52, 0x32, 0x34, 0xc8,
		0xa0, 0x8e, 0x7f, 0x6c, 0x64, 0x50, 0x23, 0x83, 0x5a, 0xf0, 0x45, 0x91, 0x41, 0x5d, 0xc8, 0xb7,
		0x43, 0x06, 0xb5, 0x7a, 0xa5, 0x87, 0x0c, 0xea, 0x0d, 0xa3, 0x54, 0x90, 0x41, 0x2d, 0x07, 0x17,
		0x6a, 0xc8, 0xa0, 0x5e, 0x5b, 0x1e, 0x27, 0x2d, 0xf3, 0xcd, 0x4d, 0xe3, 0xa4, 0x20, 0xb7, 0x8b,
		0x5e, 0x8c, 0x32, 0x69, 0x5d, 0x46, 0x91, 0xf9, 0x94, 0x51, 0x8a, 0x32, 0x61, 0xe6, 0x62, 0xba,
		0x0c, 0x45, 0x14, 0x9f, 0xa4, 0x55, 0xce, 0x19, 0x14, 0x9f, 0x94, 0xb9, 0x5f, 0x12, 0xc7, 0x92,
		0xa7, 0xd8, 0x28, 0x49, 0x02, 0xc3, 0xf9, 0x76, 0x88, 0xcb, 0x9c, 0xef, 0xcc, 0xd1, 0x1f, 0x1c,
		0x7b, 0xf0, 0xec, 0x26, 0xdf, 0x28, 0xb3, 0x97, 0x61, 0xbf, 0xa0, 0x58, 0xeb, 0xa2, 0x38, 0x71,
		0xf8, 0x1b, 0xa6, 0xaf, 0x46, 0xb9, 0x0f, 0x85, 0xcc, 0xeb, 0x46, 0xbb, 0x1d, 0x38, 0xeb, 0x1b,
		0x88, 0xd5, 0x35, 0x40, 0xc1, 0x0f, 0xa5, 0x02, 0x4e, 0x6e, 0x42, 0xae, 0x73, 0xc1, 0x0f, 0x9a,
		0xbe, 0x44, 0xe8, 0x49, 0x84, 0xd4, 0x88, 0x2c, 0x36, 0x55, 0x26, 0xec, 0x2e, 0x61, 0x66, 0x57,
		0xf1, 0x58, 0x5e, 0x1e, 0x46, 0x8b, 0x26, 0x87, 0x14, 0xd9, 0xa3, 0xd0, 0x31, 0xd0, 0x31, 0xe9,
		0xe5, 0x65, 0x23, 0xdc, 0xe7, 0x37, 0x8d, 0xeb, 0xaf, 0x8d, 0xeb, 0x35, 0x77, 0x9f, 0x07, 0x5e,
		0xe6, 0xf5, 0xf5, 0x30, 0x6f, 0x9c, 0x77, 0x39, 0x67, 0x46, 0x84, 0xca, 0x60, 0xe9, 0x19, 0x56,
		0x71, 0xe6, 0x37, 0xfe, 0x0a, 0x1d, 0x29, 0x58, 0xd6, 0x1b, 0xff, 0x86, 0x9f, 0xfd, 0xbb, 0x4f,
		0xff, 0xc2, 0x55, 0x97, 0x23, 0x85, 0xc3, 0x2d, 0x05, 0x3f, 0xc4, 0x65, 0x99, 0x89, 0x58, 0x64,
		0x88, 0x80, 0x04, 0x4d, 0x91, 0xfb, 0x08, 0x48, 0xfe, 0x5a, 0x18, 0x22, 0x35, 0x30, 0x96, 0xd4,
		0xbe, 0x48, 0xdf, 0xb1, 0x55, 0x8e, 0x9a, 0x08, 0x54, 0xa7, 0xcb, 0xaf, 0x29, 0xc6, 0x03, 0x80,
		0xd3, 0x84, 0xb2, 0x58, 0x0f, 0x4e, 0x33, 0x90, 0x68, 0x82, 0x8a, 0x2f, 0xc1, 0x38, 0x28, 0x62,
		0x0c, 0xce, 0x61, 0x23, 0x38, 0x07, 0xe1, 0x92, 0x2f, 0x46, 0xaf, 0xe7, 0x30, 0xd7, 0xa5, 0x33,
		0xed, 0xc7, 0x03, 0xa2, 0xd8, 0x8b, 0xfc, 0x2d, 0x4a, 0xbd, 0x55, 0xa5, 0x6d, 0x59, 0x69, 0x5b,
		0x57, 0xca, 0x16, 0xa6, 0xa1, 0x26, 0xf2, 0x57, 0xec, 0x45, 0xbc, 0x28, 0x1d, 0x05, 0x30, 0x4f,
		0x00, 0xd4, 0xc7, 0x3a, 0x24, 0xab, 0xd2, 0x14, 0x02, 0x87, 0xa6, 0x60, 0x37, 0x86, 0x85, 0x35,
		0x13, 0xae, 0x7d, 0x4a, 0x00, 0x6c, 0xa0, 0x4d, 0xa1, 0x4d, 0x8b, 0xae, 0x4d, 0x45, 0x81, 0x12,
		0x39, 0x60, 0x92, 0x04, 0x9c, 0x88, 0x01, 0x14, 0xf9, 0xd6, 0x97, 0xa1, 0x02, 0xe4, 0xa9, 0x02,
		0x59, 0x2a, 0x41, 0xba, 0x6a, 0x90, 0xae, 0x22, 0xa4, 0xaa, 0x0a, 0x1a, 0x95, 0x41, 0xa4, 0x3a,
		0xe8, 0x01, 0xd9, 0x82, 0xbc, 0x9a, 0xcf, 0x3a, 0xed, 0xee, 0xd7, 0x04, 0x13, 0xc8, 0x57, 0xcd,
		0xc1, 0x2d, 0xa9, 0x0c, 0xd1, 0xee, 0xa9, 0xb9, 0x99, 0xfd, 0x5e, 0x93, 0x30, 0xb7, 0x0b, 0x73,
		0xfc, 0x41, 0xc2, 0xd8, 0x57, 0x86, 0xe7, 0x31, 0xc7, 0x22, 0x9f, 0xee, 0xe8, 0x06, 0x5b, 0xb7,
		0xbb, 0xfa, 0x51, 0xfb, 0xf5, 0xb6, 0xa2, 0x1f, 0xb5, 0x83, 0x1f, 0x2b, 0xfe, 0x5f, 0x3f, 0xab,
		0xc3, 0xd7, 0xea, 0xed, 0xae, 0x5e, 0x0b, 0x3f, 0xad, 0xee, 0xdf, 0xee, 0xea, 0xfb, 0xed, 0xed,
		0xad, 0x6f, 0xdf, 0x76, 0xd2, 0x5e, 0xb3, 0xfd, 0x73, 0x6f, 0x58, 0x22, 0x7f, 0xfc, 0xb6, 0x8c,
		0xe9, 0xbe, 0xbc, 0x69, 0xfe, 0x26, 0x7d, 0xce, 0xff, 0xd8, 0x52, 0x35, 0xeb, 0xdb, 0x7f, 0x93,
		0x30, 0xef, 0xa4, 0x23, 0x0e, 0xdf, 0x17, 0x48, 0x8d, 0x1c, 0x40, 0x8d, 0xc4, 0xa9, 0x11, 0x5f,
		0x3a, 0x0d, 0xfd, 0xbe, 0xae, 0x7f, 0x6a, 0xff, 0xac, 0xbc, 0xaf, 0x0d, 0x8f, 0xb7, 0x7f, 0x1e,
		0x0e, 0xe7, 0x3f, 0x7c, 0x5d, 0xf6, 0xb5, 0xca, 0xfb, 0xc3, 0xe1, 0x71, 0xcc, 0xbf, 0x1c, 0x0c,
		0x8f, 0x13, 0x8e, 0xb1, 0x3f, 0xdc, 0x5a, 0xf8, 0xea, 0xe8, 0xf3, 0x6a, 0xdc, 0x05, 0xb5, 0x98,
		0x0b, 0xf6, 0xe2, 0x2e, 0xd8, 0x8b, 0xb9, 0x20, 0xf6, 0x91, 0xaa, 0x31, 0x17, 0xec, 0x0f, 0x5f,
		0x17, 0xbe, 0xbf, 0xb5, 0xfc, 0xab, 0x07, 0xc3, 0xed, 0xd7, 0xb8, 0x7f, 0x3b, 0x1c, 0xbe, 0x1e,
		0x6f, 0x6f, 0x43, 0xb1, 0x2e, 0x28, 0x56, 0x88, 0xa1, 0x7a, 0x31, 0xcc, 0xff, 0x41, 0xf3, 0x2e,
		0x5f, 0xcf, 0x35, 0xcc, 0x43, 0x3c, 0xa0, 0x58, 0x1e, 0x49, 0xec, 0x51, 0x29, 0x90, 0x57, 0x02,
		0x0e, 0x03, 0x1c, 0x06, 0x38, 0x8c, 0x82, 0x72, 0x18, 0xc2, 0x79, 0x31, 0xf1, 0xa0, 0x78, 0x8d,
		0x74, 0xae, 0x67, 0x3e, 0x31, 0x7b, 0xe0, 0xd1, 0xab, 0xdd, 0xf1, 0xc0, 0xd0, 0xbc, 0xd0, 0xbc,
		0xd0, 0xbc, 0x1b, 0xa5, 0x79, 0x07, 0xa6, 0xe5, 0x55, 0x0e, 0x24, 0x68, 0xde, 0x03, 0xc2, 0x21,
		0xaf, 0x0d, 0xeb, 0xa1, 0x10, 0xcc, 0xf1, 0xb9, 0x69, 0x91, 0x6f, 0xd4, 0x68, 0x70, 0x3f, 0x51,
		0x89, 0x4e, 0x0d, 0x2e, 0x8c, 0xff, 0xc9, 0x31, 0xba, 0x9e, 0x69, 0x5b, 0xa7, 0xe6, 0x83, 0xc9,
		0x5b, 0x37, 0x2f, 0x99, 0xec, 0xb1, 0x07, 0xc3, 0x33, 0xbf, 0x33, 0xae, 0x8e, 0x00, 0x19, 0x70,
		0x83, 0x5a, 0x58, 0x10, 0x50, 0xfe, 0xd2, 0x1e, 0xec, 0xef, 0xef, 0xed, 0x63, 0x79, 0x95, 0x59,
		0xe4, 0x6b, 0x6a, 0xdf, 0x67, 0x1a, 0x2c, 0x41, 0xd4, 0x2d, 0x27, 0x1a, 0x8f, 0x28, 0xcb, 0x2c,
		0x4c, 0x7b, 0x08, 0xff, 0x2e, 0x93, 0x84, 0x46, 0x69, 0x44, 0x49, 0x68, 0xc1, 0xcf, 0xe3, 0xcf,
		0x84, 0x7a, 0x45, 0x8b, 0xcb, 0x80, 0x48, 0x00, 0x9b, 0x63, 0xf4, 0xcc, 0x01, 0x61, 0x3c, 0x70,
		0x38, 0x1e, 0x02, 0xd8, 0xd4, 0xd9, 0x1d, 0x08, 0x60, 0x43, 0x00, 0x5b, 0xfc, 0x40, 0x44, 0x11,
		0xaa, 0x0b, 0xe2, 0x4b, 0xa6, 0x8e, 0x09, 0x37, 0x3c, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x68,
		0x15, 0x48, 0x34, 0xa0, 0xd1, 0xed, 0x7a, 0xfa, 0xb3, 0xed, 0x78, 0xf4, 0x72, 0x15, 0xc5, 0xc4,
		0x46, 0xb7, 0x20, 0x5e, 0xf6, 0x53, 0x76, 0x6f, 0x0c, 0xfa, 0x9e, 0x14, 0x77, 0x74, 0xa9, 0xf2,
		0xa1, 0xb2, 0x47, 0xeb, 0x12, 0x25, 0x76, 0xcb, 0x13, 0xd3, 0xbb, 0xd2, 0xb4, 0xac, 0x4c, 0x6d,
		0x2b, 0x5f, 0xeb, 0xca, 0xd6, 0xbe, 0xca, 0xb4, 0xb0, 0x32, 0x6d, 0xac, 0x44, 0x2b, 0x4b, 0xa2,
		0x20, 0x88, 0x25, 0x9e, 0x9c, 0x2e, 0x5e, 0x90, 0xf7, 0x91, 0x5a, 0xd5, 0xad, 0xc1, 0xd3, 0x1d,
		0x77, 0xbe, 0x74, 0x12, 0x15, 0x73, 0x20, 0x61, 0x68, 0x39, 0x5c, 0xf2, 0xf8, 0x8f, 0x9c, 0x4d,
		0xaa, 0xc9, 0xe6, 0x96, 0xa3, 0x9b, 0x48, 0xe6, 0x98, 0xa3, 0xfb, 0xa8, 0x22, 0x23, 0x27, 0x82,
		0x2b, 0x9b, 0x94, 0x94, 0xb4, 0x97, 0x67, 0x45, 0x40, 0x22, 0x07, 0xbd, 0x20, 0x02, 0x12, 0xb9,
		0xe8, 0x4d, 0x10, 0x83, 0x77, 0xc5, 0x18, 0x35, 0xaf, 0xb1, 0x72, 0x84, 0xdb, 0xc8, 0xef, 0x16,
		0x2a, 0xdb, 0xd6, 0x88, 0x6e, 0x51, 0x30, 0x5b, 0xa3, 0x0a, 0x5b, 0x03, 0xb6, 0x06, 0x6c, 0x0d,
		0xd8, 0x1a, 0xb0, 0x35, 0x60, 0x6b, 0xc0, 0xd6, 0x80, 0xad, 0x01, 0x5b, 0x03, 0xb6, 0x06, 0x6c,
		0x0d, 0xee, 0x45, 0x77, 0x98, 0xe7, 0x18, 0x96, 0xfb, 0x64, 0x7a, 0xba, 0xe1, 0x79, 0xec, 0xe9,
		0xd9, 0x73, 0xe5, 0x59, 0x1d, 0xcb, 0x6e, 0x06, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x4e,
		0x28, 0xef, 0x03, 0xd3, 0xf2, 0x3e, 0x48, 0x84, 0xde, 0xfb, 0x80, 0xde, 0x80, 0xde, 0x80, 0xde,
		0xd9, 0x40, 0xef, 0xea, 0x3e, 0x80, 0x37, 0x80, 0x77, 0xf1, 0x81, 0xb7, 0xcb, 0xba, 0x0e, 0xf3,
		0xf4, 0x3f, 0xd9, 0x8b, 0x3c, 0xbc, 0x3d, 0x75, 0x0f, 0xc0, 0x6c, 0xc0, 0x6c, 0xc0, 0x6c, 0xc0,
		0x6c, 0x4a, 0x6b, 0xde, 0x1e, 0x78, 0xa6, 0xf5, 0xa0, 0x3f, 0x1b, 0xae, 0xeb, 0x8b, 0x8f, 0xcc,
		0x5a, 0x51, 0x1b, 0x75, 0x22, 0xe8, 0x8f, 0x86, 0xfb, 0xc8, 0x7a, 0x2a, 0x0e, 0x86, 0xf1, 0xad,
		0x70, 0x3e, 0xe0, 0x7c, 0xc0, 0xf9, 0x80, 0xf3, 0x81, 0x50, 0xde, 0xbb, 0xce, 0xcb, 0xb3, 0x17,
		0x9d, 0x0e, 0xba, 0x40, 0x7f, 0x5c, 0x1c, 0x11, 0xe3, 0x23, 0xc2, 0xdf, 0xe8, 0x3a, 0x75, 0x59,
		0xee, 0xc5, 0xf3, 0x61, 0xf6, 0x3e, 0x38, 0x1c, 0x70, 0x38, 0xe0, 0x70, 0xc0, 0xe1, 0x40, 0x28,
		0xef, 0x52, 0xaa, 0x80, 0x2f, 0x9c, 0x09, 0x47, 0x12, 0xc6, 0x96, 0x52, 0x15, 0x7c, 0xfc, 0x47,
		0x22, 0x51, 0xaf, 0xa8, 0x4a, 0xf8, 0xe2, 0xb9, 0x2c, 0xf1, 0x1e, 0xb2, 0x0b, 0xad, 0x46, 0x37,
		0x2a, 0x6e, 0xf5, 0xf0, 0xf1, 0x9f, 0xb6, 0xcc, 0x65, 0x50, 0x51, 0xf4, 0x36, 0xba, 0x5b, 0xb1,
		0xab, 0x8a, 0x47, 0xeb, 0x21, 0x87, 0x8b, 0x7f, 0x5f, 0x60, 0xb5, 0x74, 0x00, 0xb5, 0x94, 0x56,
		0x2d, 0xa1, 0x0c, 0xf4, 0xda, 0x54, 0x23, 0x5f, 0x5b, 0x45, 0x0d, 0xf1, 0x5c, 0x8b, 0x2a, 0xe5,
		0x92, 0x0f, 0xae, 0xcd, 0x71, 0x22, 0xe7, 0xaa, 0x50, 0x06, 0x71, 0xf5, 0xb3, 0x09, 0x53, 0x25,
		0xa5, 0x0a, 0x5a, 0x50, 0x5f, 0xab, 0x4c, 0x5a, 0x7d, 0x47, 0x93, 0x53, 0x14, 0xed, 0xda, 0x7f,
		0x54, 0x92, 0xda, 0x68, 0x74, 0x92, 0x33, 0x24, 0xa9, 0x1f, 0x67, 0x78, 0x12, 0x4a, 0xe9, 0x07,
		0xc3, 0xe6, 0xbc, 0xa0, 0x52, 0x15, 0x05, 0x95, 0x0a, 0xc4, 0x1c, 0xa2, 0xa0, 0x12, 0x0a, 0x2a,
		0xa1, 0xa0, 0x12, 0x92, 0x9c, 0xe1, 0xbf, 0xc9, 0x52, 0x0b, 0x2b, 0xd3, 0xc6, 0x4a, 0xb4, 0xb2,
		0x1c, 0x7b, 0x05, 0x49, 0xce, 0xcb, 0x55, 0x0c, 0x92, 0x9c, 0xa7, 0x1e, 0x1c, 0x99, 0x16, 0x42,
		0x82, 0x8b, 0x4c, 0x8b, 0x94, 0x22, 0x80, 0x24, 0xe7, 0x7c, 0x11, 0x5a, 0x1a, 0x72, 0x2d, 0x78,
		0x6d, 0x0d, 0x14, 0x54, 0x8a, 0xb5, 0x35, 0x50, 0x50, 0x09, 0xb6, 0x06, 0x6c, 0x0d, 0xd8, 0x1a,
		0xb0, 0x35, 0x60, 0x6b, 0xc0, 0xd6, 0x80, 0xad, 0x01, 0x5b, 0x03, 0xb6, 0x06, 0x6c, 0x0d, 0xfe,
		0x45, 0xef, 0xda, 0x03, 0xcb, 0x63, 0x8e, 0xc4, 0xe4, 0x8c, 0xe8, 0x0e, 0x72, 0xa0, 0x76, 0x05,
		0x50, 0x1b, 0x50, 0x1b, 0x50, 0x3b, 0x8f, 0x50, 0x9b, 0xda, 0x09, 0x3b, 0x21, 0x48, 0xba, 0x5d,
		0xe6, 0xba, 0xfa, 0xe8, 0x2f, 0x19, 0x05, 0xe0, 0x16, 0xd9, 0x92, 0xd9, 0xfb, 0x49, 0x12, 0x18,
		0x39, 0xdc, 0x81, 0x74, 0xc5, 0xa6, 0x42, 0xc1, 0xa9, 0x53, 0x74, 0xaa, 0x14, 0x9e, 0x72, 0xc5,
		0xa7, 0x5c, 0x01, 0x2a, 0x55, 0x84, 0x92, 0xa1, 0xa5, 0xa4, 0x1d, 0x23, 0x8d, 0x8b, 0x88, 0x03,
		0x61, 0x07, 0x35, 0x05, 0xb9, 0x0a, 0x32, 0x53, 0x15, 0xe4, 0x32, 0x14, 0xf2, 0x99, 0x0a, 0xa5,
		0x8c, 0x85, 0x6a, 0xe6, 0x22, 0x33, 0xd3, 0x55, 0xbd, 0x09, 0xab, 0x80, 0xd1, 0x50, 0xca, 0x6c,
		0x2c, 0x88, 0x4a, 0xe5, 0x43, 0xad, 0x76, 0x70, 0x58, 0xab, 0xed, 0x1e, 0xee, 0x1d, 0xee, 0x1e,
		0xed, 0xef, 0x57, 0x0e, 0x2a, 0xfb, 0x90, 0x9e, 0x42, 0x9c, 0x56, 0xf2, 0x47, 0x2f, 0x4a, 0x4e,
		0x85, 0x84, 0xdd, 0x39, 0xb6, 0x05, 0x1c, 0xf6, 0xff, 0xb1, 0xae, 0x42, 0xdb, 0x63, 0x7c, 0x3f,
		0xd8, 0x1e, 0xb0, 0x3d, 0x60, 0x7b, 0xc0, 0xf6, 0x80, 0xed, 0x01, 0xdb, 0x03, 0xb6, 0x07, 0x6c,
		0x0f, 0xd8, 0x1e, 0x90, 0x1e, 0xd8, 0x1e, 0x1b, 0x62, 0x7b, 0x38, 0xcc, 0x73, 0x4c, 0xd6, 0xd3,
		0x23, 0x9b, 0xe0, 0xff, 0x06, 0xcc, 0x55, 0x61, 0x84, 0xc4, 0xdd, 0x18, 0xd6, 0x08, 0xac, 0x11,
		0x58, 0x23, 0xb0, 0x46, 0x60, 0x8d, 0xc0, 0x1a, 0x81, 0x35, 0x02, 0x6b, 0x04, 0xd6, 0x08, 0xa4,
		0x07, 0xd6, 0xc8, 0x86, 0x58, 0x23, 0x9e, 0xf9, 0xc4, 0xec, 0x81, 0xa7, 0xde, 0x1a, 0x89, 0xbb,
		0x31, 0xac, 0x11, 0x58, 0x23, 0xb0, 0x46, 0x60, 0x8d, 0xc0, 0x1a, 0x81, 0x35, 0x02, 0x6b, 0x04,
		0xd6, 0x08, 0xac, 0x11, 0x48, 0x0f, 0xac, 0x91, 0x3c, 0x5a, 0x23, 0xb9, 0x4e, 0x5b, 0x91, 0x54,
		0x63, 0x36, 0x1a, 0x5f, 0x6a, 0xad, 0x59, 0xbf, 0x2e, 0x69, 0x59, 0x52, 0xce, 0x9d, 0x26, 0xb5,
		0xf6, 0xec, 0xcd, 0xe8, 0xd1, 0x3b, 0x27, 0xe3, 0x47, 0xdf, 0x80, 0xe4, 0x4b, 0x87, 0x79, 0x8e,
		0x61, 0xb9, 0x4f, 0xa6, 0xa7, 0x1b, 0x9e, 0xc7, 0x9e, 0x64, 0x24, 0x33, 0xcd, 0xf8, 0xf0, 0xe6,
		0x6f, 0x86, 0xea, 0x27, 0x48, 0xc9, 0xcc, 0xdc, 0x02, 0x46, 0x4a, 0xa6, 0xba, 0xb3, 0x4d, 0x7e,
		0xf5, 0x93, 0x81, 0x69, 0x79, 0x1f, 0x24, 0xd6, 0x3d, 0xd9, 0x47, 0xdd, 0x13, 0xb5, 0xd6, 0x2a,
		0xea, 0x9e, 0xe4, 0xd9, 0x1a, 0x55, 0x5b, 0xf7, 0xa4, 0xba, 0x8f, 0xaa, 0x27, 0xf9, 0x32, 0xfb,
		0x50, 0xf5, 0x84, 0xcb, 0x86, 0x89, 0x1a, 0x8a, 0xab, 0x68, 0x5a, 0x0e, 0x98, 0x0d, 0x98, 0x0d,
		0x98, 0x0d, 0x98, 0x4d, 0x6a, 0xcd, 0xdb, 0x03, 0xcf, 0xb4, 0x1e, 0xa2, 0x7e, 0xe5, 0x68, 0x55,
		0x4e, 0x75, 0x22, 0xe8, 0x8f, 0x86, 0xfb, 0xc8, 0x7a, 0x2a, 0x0e, 0x86, 0xf1, 0xad, 0x70, 0x3e,
		0xe0, 0x7c, 0xc0, 0xf9, 0x80, 0xf3, 0x81, 0x50, 0xde, 0xbb, 0xce, 0xcb, 0xb3, 0x17, 0x9d, 0x0e,
		0xba, 0x37, 0xba, 0x21, 0x8e, 0x08, 0xb1, 0x23, 0xc2, 0xdf, 0xe8, 0x51, 0xd3, 0x5f, 0x79, 0xe7,
		0xc3, 0xec, 0x7d, 0x70, 0x38, 0xe0, 0x70, 0xc0, 0xe1, 0x80, 0xc3, 0x81, 0x50, 0xde, 0xcd, 0x67,
		0x89, 0xad, 0xcb, 0xa3, 0x33, 0xe1, 0x48, 0xc2, 0xd8, 0xe1, 0xdc, 0xdc, 0x16, 0xb8, 0x6d, 0x7c,
		0x0d, 0x6d, 0xe3, 0x53, 0xde, 0xc8, 0x6f, 0x4c, 0xdd, 0x7e, 0xbd, 0xad, 0xe8, 0x47, 0xed, 0xe0,
		0xc7, 0x8a, 0xff, 0xd7, 0xcf, 0xea, 0xf0, 0xb5, 0x7a, 0xbb, 0xab, 0xd7, 0xc2, 0x4f, 0xab, 0xfb,
		0xb7, 0xbb, 0xfa, 0x7e, 0x7b, 0x7b, 0xeb, 0xdb, 0xb7, 0x9d, 0xb4, 0xd7, 0x6c, 0xff, 0xdc, 0x1b,
		0xa2, 0x49, 0xfa, 0xea, 0xbb, 0x85, 0x4d, 0xd2, 0x15, 0xac, 0x46, 0x01, 0x9b, 0x82, 0xbf, 0x2f,
		0xb0, 0x5a, 0x3a, 0x80, 0x5a, 0x4a, 0xab, 0x96, 0x96, 0x35, 0xcc, 0x3f, 0x1c, 0x26, 0x6c, 0xf5,
		0x7f, 0x38, 0x3c, 0x8e, 0xf9, 0x97, 0x83, 0xe1, 0x71, 0xc2, 0x31, 0xf6, 0x63, 0x7a, 0xf3, 0x57,
		0xe3, 0x2e, 0xa8, 0xc5, 0x5c, 0xb0, 0x17, 0x77, 0xc1, 0x5e, 0xcc, 0x05, 0xb1, 0x8f, 0x54, 0x8d,
		0xb9, 0x60, 0x7f, 0xf8, 0xba, 0xf0, 0xfd, 0xad, 0xe5, 0x5f, 0x3d, 0x18, 0x6e, 0xbf, 0xc6, 0xfd,
		0xdb, 0xe1, 0xf0, 0xf5, 0x78, 0x7b, 0x1b, 0x8a, 0x3a, 0xb1, 0xa2, 0x86, 0x78, 0xaa, 0x17, 0xcf,
		0xe2, 0x1d, 0x5c, 0x9b, 0xe3, 0x44, 0xce, 0x55, 0x97, 0x72, 0x49, 0x91, 0xc6, 0x0a, 0x22, 0x8c,
		0x29, 0xfb, 0xf5, 0xcb, 0x0d, 0x28, 0xa6, 0xd9, 0x8b, 0xe2, 0x72, 0x23, 0x36, 0x82, 0xa0, 0xc4,
		0x95, 0xd8, 0x0f, 0xcf, 0x31, 0xf4, 0x81, 0xe5, 0x7a, 0xc6, 0x5d, 0x9f, 0x86, 0x5d, 0x28, 0xfd,
		0xf5, 0xc8, 0xe8, 0xce, 0x31, 0x42, 0xe9, 0x1f, 0x83, 0xda, 0x9d, 0x9d, 0xf2, 0xce, 0x4e, 0x39,
		0x90, 0xa5, 0xb2, 0xf7, 0xf2, 0xcc, 0xb4, 0x7f, 0x68, 0xbf, 0x04, 0x94, 0xd2, 0xf1, 0x75, 0xfd,
		0xb4, 0xf9, 0xe5, 0xe6, 0x17, 0x4a, 0x31, 0x96, 0x44, 0xf5, 0x4d, 0x53, 0x7c, 0xfe, 0x8c, 0x13,
		0xb3, 0x4d, 0xb2, 0x89, 0xbd, 0x19, 0x42, 0x2f, 0xc9, 0x92, 0xe4, 0x4d, 0xd7, 0xbf, 0xcb, 0xf6,
		0x2c, 0x14, 0xdd, 0xf9, 0xc4, 0x67, 0x8c, 0xd4, 0xb3, 0x85, 0x40, 0xb6, 0xa5, 0x9d, 0x26, 0x62,
		0x72, 0xc9, 0x2f, 0x45, 0x02, 0xeb, 0x5f, 0x0a, 0x8e, 0x6a, 0xd1, 0x65, 0x9f, 0x38, 0xa6, 0x08,
		0x4e, 0x7e, 0xa2, 0xb6, 0x5d, 0x13, 0x7f, 0x53, 0x55, 0x70, 0x20, 0x42, 0xff, 0x12, 0xbd, 0x3f,
		0x89, 0xfa, 0x50, 0x91, 0xe6, 0x2f, 0x92, 0x76, 0x8c, 0x48, 0xf1, 0x07, 0x65, 0x8b, 0xc5, 0xa8,
		0xda, 0x62, 0x95, 0xa8, 0x3d, 0xd1, 0x93, 0x9a, 0xf3, 0xa4, 0x4c, 0x20, 0xb1, 0xcb, 0x99, 0xdc,
		0xd5, 0x2c, 0xc3, 0xc5, 0x2c, 0xcf, 0xb5, 0xac, 0x02, 0x67, 0x4a, 0x71, 0x25, 0xab, 0x45, 0x9a,
		0xd4, 0xae, 0xe3, 0x7c, 0x11, 0x07, 0xe4, 0x2e, 0x62, 0xb9, 0xae, 0x61, 0x19, 0x2e, 0x61, 0x39,
		0xae, 0x60, 0xa9, 0x4e, 0x77, 0xa9, 0xae, 0x5f, 0x99, 0xbe, 0x15, 0xe9, 0x3e, 0x95, 0x02, 0xbb,
		0x78, 0xdb, 0x32, 0xa6, 0x5b, 0x85, 0xa7, 0xa0, 0xe0, 0xae, 0xdc, 0x76, 0x9e, 0x63, 0x78, 0xe4,
		0xaa, 0x91, 0x03, 0xa8, 0x91, 0x38, 0x35, 0x02, 0x9f, 0xd7, 0xda, 0xb8, 0x64, 0x0b, 0xaf, 0x58,
		0x21, 0x86, 0x6b, 0xe1, 0x7a, 0xcd, 0xab, 0x2b, 0xb3, 0x9d, 0x17, 0xc7, 0x16, 0x01, 0xcd, 0xd5,
		0xb5, 0x2d, 0x8b, 0xf9, 0x79, 0xdf, 0xba, 0x71, 0x67, 0x3b, 0x9e, 0x04, 0x4e, 0x63, 0xf1, 0x16,
		0x60, 0x37, 0xc0, 0x6e, 0x80, 0xdd, 0xd8, 0x28, 0x76, 0x43, 0x46, 0xb9, 0x55, 0x09, 0xe5, 0x55,
		0x25, 0x15, 0xa4, 0x91, 0x60, 0x95, 0xc8, 0x2c, 0x40, 0x23, 0xbb, 0xf0, 0x8c, 0xb2, 0x5a, 0x23,
		0xf2, 0x6b, 0x8c, 0xc8, 0x28, 0xef, 0x2e, 0xb3, 0xb0, 0x4c, 0x06, 0xe5, 0x4c, 0xd7, 0x69, 0xb5,
		0x81, 0x48, 0x55, 0x22, 0xd2, 0x6e, 0xdf, 0x76, 0x99, 0x5c, 0x44, 0x1a, 0xde, 0x02, 0x88, 0x14,
		0x88, 0x14, 0x88, 0x14, 0x88, 0x14, 0x88, 0x14, 0x88, 0x14, 0x88, 0x14, 0x88, 0x14, 0x88, 0x14,
		0x88, 0x74, 0x19, 0x22, 0xbd, 0x37, 0xcc, 0xfe, 0xc0, 0x91, 0x8c, 0x49, 0xa3, 0x9b, 0x00, 0x95,
		0x02, 0x95, 0x02, 0x95, 0x02, 0x95, 0x02, 0x95, 0x02, 0x95, 0x02, 0x95, 0x02, 0x95, 0x02, 0x95,
		0x02, 0x95, 0x2e, 0x43, 0xa5, 0xf6, 0x33, 0xb3, 0xe4, 0x42, 0xd2, 0xe0, 0x0e, 0xc0, 0xa3, 0xc0,
		0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0xc0, 0xa3, 0xc0,
		0xa3, 0xcb, 0xf0, 0xa8, 0x67, 0x3e, 0x31, 0x7b, 0x20, 0x39, 0x96, 0x34, 0xba, 0x09, 0x50, 0x29,
		0x50, 0x29, 0x50, 0x29, 0x50, 0x29, 0x50, 0x29, 0x50, 0x29, 0x50, 0x29, 0x50, 0x29, 0x50, 0x29,
		0x50, 0x69, 0xb4, 0x88, 0xcc, 0x71, 0x6c, 0xc7, 0xd5, 0x1d, 0xd6, 0x65, 0xe6, 0x77, 0xc2, 0xde,
		0x52, 0xd1, 0x51, 0x34, 0x7f, 0x03, 0xa0, 0x51, 0xa0, 0x51, 0xa0, 0x51, 0xa0, 0x51, 0xa0, 0x51,
		0xa0, 0x51, 0xa0, 0x51, 0xa0, 0x51, 0xa0, 0x51, 0xa0, 0xd1, 0x68, 0x11, 0x9f, 0x98, 0xeb, 0x1a,
		0x0f, 0x4c, 0x26, 0x1e, 0x5d, 0xbc, 0x05, 0x10, 0x29, 0x10, 0x29, 0x10, 0x29, 0x10, 0x29, 0x10,
		0x29, 0x10, 0x29, 0x10, 0x29, 0x10, 0x29, 0x10, 0x29, 0x10, 0xe9, 0x22, 0x22, 0x75, 0x83, 0x23,
		0x57, 0x16, 0x1a, 0xf5, 0x87, 0x07, 0x12, 0x05, 0x12, 0x05, 0x12, 0x05, 0x12, 0x05, 0x12, 0x05,
		0x12, 0x05, 0x12, 0x05, 0x12, 0x05, 0x12, 0x05, 0x12, 0x8d, 0x16, 0x31, 0x6c, 0x1c, 0x45, 0x0c,
		0x40, 0xfd, 0x51, 0x81, 0x3b, 0x81, 0x3b, 0x81, 0x3b, 0x37, 0x0a, 0x77, 0xba, 0x9e, 0x63, 0x5a,
		0x0f, 0x32, 0x3a, 0xa9, 0x7c, 0x58, 0x23, 0x9d, 0x1b, 0xc6, 0xd0, 0xd3, 0xab, 0xdd, 0xf1, 0xc0,
		0xd0, 0xbc, 0xd0, 0xbc, 0xd0, 0xbc, 0x1b, 0xa5, 0x79, 0x07, 0xa6, 0xe5, 0x55, 0x0e, 0x24, 0x68,
		0xde, 0x03, 0x98, 0xfb, 0x30, 0xf7, 0x61, 0xee, 0xa7, 0x5b, 0xda, 0x83, 0xfd, 0xfd, 0x3d, 0xd8,
		0xf7, 0xb0, 0xef, 0xb3, 0x1c, 0x61, 0x33, 0x1a, 0x69, 0x53, 0xf4, 0x68, 0xd6, 0xe4, 0xf4, 0xd1,
		0xbe, 0xf1, 0x1f, 0xad, 0x80, 0x6d, 0xb4, 0x3d, 0xa3, 0x6b, 0x74, 0x5d, 0xba, 0x3e, 0xda, 0xe1,
		0x78, 0x39, 0x6b, 0xa4, 0xbd, 0x8b, 0x46, 0xda, 0x39, 0xb0, 0x32, 0xd0, 0x48, 0x3b, 0xf9, 0x1b,
		0x91, 0x35, 0xd2, 0xee, 0x8e, 0xf7, 0x00, 0x7d, 0x9d, 0x80, 0xd1, 0xb8, 0xb4, 0xf4, 0x43, 0x05,
		0xf4, 0x03, 0xe8, 0x07, 0xd0, 0x0f, 0x14, 0x6f, 0x4a, 0xa5, 0x40, 0xa2, 0x01, 0x9f, 0x6d, 0xc7,
		0xa3, 0x17, 0xa9, 0xf1, 0x26, 0xf0, 0x47, 0x27, 0x5e, 0xec, 0x53, 0x76, 0x6f, 0x0c, 0xfa, 0x9e,
		0x94, 0x66, 0x98, 0xa5, 0xda, 0x11, 0x6d, 0x3b, 0x46, 0xe2, 0x96, 0xa0, 0xc4, 0x84, 0xae, 0x34,
		0xcd, 0x2a, 0x53, 0xc3, 0xca, 0xd7, 0xb4, 0xb2, 0x35, 0xae, 0x32, 0xcd, 0xab, 0x4c, 0x03, 0x2b,
		0xd1, 0xc4, 0x92, 0x48, 0x07, 0x62, 0x89, 0x27, 0x27, 0x88, 0x97, 0x2a, 0x55, 0xdd, 0x1a, 0x3c,
		0xdd, 0x31, 0x47, 0x62, 0x3b, 0xed, 0x03, 0x09, 0x43, 0xcb, 0x61, 0x8f, 0xc7, 0x7f, 0xe4, 0x6c,
		0x52, 0x4d, 0x36, 0x9b, 0x1c, 0xdd, 0x44, 0x32, 0xab, 0x1c, 0xdd, 0x47, 0x15, 0xfd, 0x38, 0x11,
		0x5c, 0xd9, 0x34, 0xa4, 0xa4, 0xbd, 0x3c, 0x2b, 0x02, 0x12, 0x59, 0xe7, 0x05, 0x11, 0x90, 0xc8,
		0x3e, 0x6f, 0x82, 0x18, 0xbc, 0x2b, 0xc6, 0xa8, 0x79, 0xed, 0xd3, 0x4d, 0xb8, 0x8d, 0x4a, 0x2e,
		0xeb, 0x3a, 0xcc, 0xd3, 0xff, 0x64, 0x2f, 0xf2, 0xac, 0x8c, 0xa9, 0x7b, 0x00, 0x6e, 0x03, 0x6e,
		0x03, 0x6e, 0x03, 0x6e, 0x13, 0xca, 0xbb, 0x63, 0x0f, 0x3c, 0xd3, 0x7a, 0xd0, 0x9f, 0x0d, 0xd7,
		0xf5, 0xc5, 0x47, 0x1e, 0xe6, 0x26, 0x8a, 0x91, 0x2b, 0xca, 0x89, 0xa0, 0x3f, 0x1a, 0xee, 0x23,
		0x61, 0x2d, 0x87, 0x37, 0x0e, 0x86, 0xf1, 0xad, 0x70, 0x3e, 0xe0, 0x7c, 0xc0, 0xf9, 0x80, 0xf3,
		0x81, 0x50, 0xde, 0xbb, 0xce, 0xcb, 0xb3, 0x17, 0x9d, 0x0e, 0xba, 0x37, 0xba, 0x21, 0x8e, 0x08,
		0xb1, 0x23, 0xc2, 0xdf, 0xe8, 0xba, 0xd1, 0xeb, 0x39, 0xcc, 0x75, 0x25, 0x9e, 0x0f, 0xb3, 0xf7,
		0xc1, 0xe1, 0x80, 0xc3, 0x01, 0x87, 0x03, 0x0e, 0x07, 0x42, 0x79, 0x37, 0x9f, 0x25, 0x69, 0x97,
		0x99, 0x33, 0xe1, 0x48, 0xc2, 0xd8, 0xe1, 0xdc, 0x14, 0x8e, 0xaa, 0x9f, 0xcc, 0xfc, 0xf7, 0x9a,
		0xc4, 0xb9, 0x5f, 0x3c, 0x97, 0x25, 0xde, 0xe3, 0xca, 0xf0, 0x3c, 0xe6, 0x58, 0xd2, 0x96, 0x23,
		0xba, 0xd1, 0xd6, 0xed, 0xae, 0x7e, 0xd4, 0x7e, 0xbd, 0xad, 0xe8, 0x47, 0xed, 0xe0, 0xc7, 0x8a,
		0xff, 0xd7, 0xcf, 0xea, 0xf0, 0xb5, 0x7a, 0xbb, 0xab, 0xd7, 0xc2, 0x4f, 0xab, 0xfb, 0xb7, 0xbb,
		0xfa, 0x7e, 0x7b, 0x7b, 0xeb, 0xdb, 0xb7, 0x9d, 0xb4, 0xd7, 0x6c, 0xff, 0xdc, 0x1b, 0x96, 0xa4,
		0xbd, 0x46, 0x5b, 0xe6, 0x32, 0x5c, 0xde, 0x34, 0x7f, 0x53, 0xb6, 0x16, 0x7f, 0x6c, 0xa9, 0x5a,
		0x8d, 0xed, 0xbf, 0x49, 0x5c, 0x0f, 0x39, 0x5c, 0xfc, 0xfb, 0x02, 0xab, 0xa5, 0x03, 0xa8, 0xa5,
		0xb4, 0x6a, 0xc9, 0x97, 0x6a, 0x43, 0xbf, 0xaf, 0xeb, 0x9f, 0xda, 0x3f, 0x2b, 0xef, 0x6b, 0xc3,
		0xe3, 0xed, 0x9f, 0x87, 0xc3, 0xf9, 0x0f, 0x5f, 0x97, 0x7d, 0xad, 0xf2, 0xfe, 0x70, 0x78, 0x1c,
		0xf3, 0x2f, 0x07, 0xc3, 0xe3, 0x84, 0x63, 0xec, 0x0f, 0xb7, 0x16, 0xbe, 0x3a, 0xfa, 0xbc, 0x1a,
		0x77, 0x41, 0x2d, 0xe6, 0x82, 0xbd, 0xb8, 0x0b, 0xf6, 0x62, 0x2e, 0x88, 0x7d, 0xa4, 0x6a, 0xcc,
		0x05, 0xfb, 0xc3, 0xd7, 0x85, 0xef, 0x6f, 0x2d, 0xff, 0xea, 0xc1, 0x70, 0xfb, 0x35, 0xee, 0xdf,
		0x0e, 0x87, 0xaf, 0xc7, 0xdb, 0xdb, 0x50, 0xd4, 0x89, 0x15, 0x35, 0xc4, 0x53, 0xbd, 0x78, 0x16,
		0xef, 0xe0, 0xda, 0x1c, 0x27, 0x72, 0xae, 0xe2, 0x66, 0x89, 0x53, 0xa1, 0x26, 0x4c, 0x95, 0x94,
		0x94, 0xa8, 0x20, 0xdd, 0xa6, 0x4c, 0x1a, 0x8c, 0xaf, 0xc9, 0x49, 0x91, 0x6a, 0xf9, 0x8f, 0xda,
		0x09, 0x49, 0xa9, 0x35, 0x2a, 0xf1, 0x10, 0xa4, 0xa5, 0x91, 0x27, 0x58, 0x50, 0x65, 0xbb, 0x69,
		0x32, 0xf3, 0x2b, 0xaa, 0xc8, 0xaf, 0x28, 0x10, 0x73, 0x88, 0xfc, 0x0a, 0xe4, 0x57, 0x10, 0x8e,
		0x8d, 0xfc, 0x0a, 0xf8, 0x6c, 0x34, 0xf8, 0x6c, 0x72, 0xa5, 0x81, 0x95, 0x68, 0x62, 0x39, 0x36,
		0x0a, 0xf2, 0x2b, 0x96, 0xab, 0x18, 0xe4, 0x57, 0x4c, 0x3d, 0x38, 0xf2, 0x2b, 0x84, 0x04, 0x17,
		0xf9, 0x15, 0x29, 0x45, 0x00, 0xf9, 0x15, 0xf9, 0x22, 0xb1, 0x34, 0xe4, 0x57, 0xf0, 0xd2, 0x14,
		0xc8, 0xaf, 0x00, 0xdc, 0x06, 0xdc, 0x06, 0xdc, 0x2e, 0x2c, 0xdc, 0x46, 0x7e, 0x05, 0xf2, 0x2b,
		0x70, 0x3e, 0xe0, 0x7c, 0xc0, 0xf9, 0x80, 0xf3, 0x61, 0x99, 0xbc, 0x23, 0xbf, 0x82, 0xfe, 0x88,
		0x40, 0x7e, 0x05, 0x0e, 0x07, 0x1c, 0x0e, 0x38, 0x1c, 0x0a, 0x7f, 0x38, 0x20, 0xbf, 0x62, 0xe9,
		0x1f, 0xe4, 0x57, 0xa4, 0xd3, 0xcc, 0xc8, 0xaf, 0x48, 0xfa, 0x07, 0xf9, 0x15, 0xc8, 0xaf, 0xc8,
		0xb9, 0x5a, 0x42, 0x7e, 0x45, 0x6a, 0xb5, 0x84, 0x00, 0x76, 0xe4, 0x57, 0xe4, 0x5d, 0x51, 0x43,
		0x3c, 0x91, 0x5f, 0xa1, 0xd8, 0x1e, 0xd2, 0x90, 0x5f, 0x91, 0xd4, 0xd6, 0x2d, 0x62, 0x7e, 0x05,
		0x65, 0x2c, 0xbe, 0x26, 0x35, 0xbd, 0x82, 0xa0, 0x11, 0x0d, 0x9d, 0xdc, 0x64, 0xdb, 0x42, 0x83,
		0xfd, 0xf0, 0x1c, 0x43, 0x1f, 0x58, 0xae, 0x67, 0xdc, 0xf5, 0x69, 0xd8, 0x85, 0xd2, 0x5f, 0x8f,
		0x8c, 0xee, 0x1c, 0x93, 0x90, 0xeb, 0xb0, 0xb3, 0x53, 0xde, 0xd9, 0x09, 0xd3, 0x81, 0xca, 0xde,
		0xcb, 0x33, 0xd3, 0xfe, 0xa1, 0xfd, 0x12, 0x50, 0x4a, 0xc7, 0xad, 0xfa, 0x49, 0xfd, 0xe4, 0xe6,
		0x97, 0x82, 0x25, 0x42, 0xf8, 0x33, 0x5e, 0xe4, 0x34, 0x88, 0x24, 0x4b, 0x92, 0x37, 0x5d, 0xff,
		0x2e, 0xdb, 0xb3, 0x70, 0x33, 0xda, 0x99, 0x91, 0xb4, 0xca, 0x92, 0x7a, 0x9a, 0x64, 0xd6, 0xd0,
		0xec, 0x9d, 0x42, 0xa9, 0x19, 0x29, 0x9b, 0xd1, 0xb4, 0x89, 0x51, 0x01, 0xa5, 0x33, 0xd3, 0xf5,
		0xea, 0x9e, 0x27, 0x96, 0x14, 0x54, 0x3a, 0x37, 0xad, 0x46, 0x9f, 0x8d, 0x54, 0x87, 0x60, 0x1c,
		0x68, 0xe9, 0xdc, 0xf8, 0x31, 0x35, 0x52, 0xe5, 0x43, 0xad, 0x76, 0x70, 0x58, 0xab, 0xed, 0x1e,
		0xee, 0x1d, 0xee, 0x1e, 0xed, 0xef, 0x57, 0x0e, 0x2a, 0x02, 0x51, 0xad, 0xa5, 0x4b, 0xa7, 0xc7,
		0x1c, 0xd6, 0xfb, 0x38, 0x9a, 0x38, 0x6b, 0xd0, 0xef, 0x53, 0x0c, 0xf5, 0xc5, 0x65, 0x8e, 0x50,
		0x40, 0x2a, 0xef, 0xfa, 0x13, 0x69, 0x0b, 0x39, 0x5a, 0x42, 0x40, 0x3d, 0xd0, 0xab, 0x05, 0x3e,
		0x7d, 0x90, 0x7e, 0x37, 0xa7, 0xbb, 0x22, 0xe5, 0xba, 0x8b, 0xae, 0x37, 0xf1, 0x3a, 0x73, 0x2c,
		0x30, 0xe1, 0xc2, 0xa6, 0x5b, 0xd1, 0xe4, 0xeb, 0x92, 0x62, 0x4d, 0x38, 0xf3, 0xa7, 0x85, 0xf2,
		0xa4, 0x39, 0xf3, 0xa1, 0xb9, 0xf3, 0x9e, 0x45, 0x3c, 0xfa, 0xe2, 0x1e, 0x7b, 0x51, 0x98, 0x4e,
		0xe6, 0x71, 0x27, 0x03, 0xde, 0x24, 0x1e, 0x73, 0xb9, 0x5a, 0x86, 0x37, 0x3f, 0xb8, 0x14, 0x6e,
		0x6b, 0xce, 0xa5, 0x1a, 0x0b, 0x8b, 0x3f, 0x0a, 0x2f, 0x20, 0x12, 0x0a, 0x97, 0x11, 0x0e, 0x8b,
		0xa1, 0x08, 0x7f, 0xa1, 0x0b, 0x73, 0xa1, 0xb2, 0x71, 0xc9, 0xc3, 0x56, 0xc8, 0xad, 0x58, 0xd2,
		0x30, 0x14, 0xb5, 0x10, 0x5e, 0x38, 0x7c, 0x64, 0xea, 0x34, 0x71, 0x4c, 0x4b, 0xa4, 0x92, 0x8a,
		0x60, 0x78, 0x20, 0x07, 0x58, 0xe2, 0x38, 0x10, 0x3c, 0x91, 0xf9, 0x9a, 0xf4, 0x7a, 0xe6, 0x0f,
		0xb0, 0x84, 0x8e, 0x81, 0x8e, 0xd9, 0x58, 0x1d, 0x63, 0xf6, 0x98, 0xe5, 0x99, 0xde, 0x8b, 0xc3,
		0xee, 0x29, 0x14, 0x8d, 0x88, 0x21, 0xdf, 0x0c, 0x1f, 0xe5, 0xa3, 0xe1, 0x32, 0xba, 0x26, 0xf0,
		0xf5, 0x7a, 0xbd, 0x73, 0xd3, 0xb8, 0xfe, 0xda, 0xb8, 0xee, 0xb4, 0x7e, 0xbf, 0x6a, 0x88, 0x0a,
		0xa1, 0x9f, 0x8b, 0xeb, 0x92, 0xd0, 0xee, 0xc4, 0x35, 0x9a, 0xae, 0xeb, 0xa7, 0xcd, 0x2f, 0x37,
		0xa5, 0x3c, 0x94, 0xa1, 0x22, 0x7e, 0xb3, 0x80, 0x99, 0xce, 0xba, 0x8b, 0x7a, 0x5b, 0xb5, 0x6e,
		0x00, 0x55, 0xb1, 0x94, 0xaa, 0xe0, 0x74, 0x7f, 0x92, 0x10, 0x15, 0xe9, 0x1d, 0x9a, 0x29, 0x68,
		0x8a, 0x77, 0x84, 0xab, 0x36, 0x26, 0x92, 0x53, 0x98, 0x5e, 0x7c, 0xac, 0x31, 0x3f, 0x4b, 0x4c,
		0xca, 0x0a, 0x0b, 0xb0, 0xc0, 0x02, 0xac, 0x6f, 0xd2, 0xc5, 0xe0, 0xdc, 0x3a, 0x44, 0x5b, 0xa6,
		0x94, 0x8a, 0xff, 0x12, 0xdd, 0x24, 0xc9, 0xb6, 0xc7, 0x6a, 0x61, 0x7f, 0xfb, 0x1b, 0x2b, 0x66,
		0x3e, 0xed, 0x8c, 0xf3, 0xcf, 0x74, 0x82, 0xc9, 0xe5, 0x9c, 0xd4, 0xb7, 0x27, 0x32, 0x7e, 0x7a,
		0xde, 0x98, 0x9a, 0x84, 0xf4, 0x66, 0x2a, 0x3a, 0x33, 0x21, 0x7d, 0x99, 0x98, 0xae, 0x4c, 0x63,
		0x0d, 0xa5, 0xb7, 0x7a, 0xd2, 0x5a, 0x37, 0xdc, 0x56, 0x0c, 0xb7, 0xb5, 0xc2, 0x65, 0x95, 0xe4,
		0x78, 0xb3, 0x24, 0x3c, 0xae, 0xd3, 0x6c, 0x92, 0xd5, 0xa7, 0xf0, 0x1b, 0xbb, 0xe3, 0x5d, 0x8a,
		0x19, 0x4a, 0x3a, 0x33, 0x69, 0x66, 0xa4, 0xf4, 0xe6, 0xf6, 0x4c, 0x38, 0x07, 0xcb, 0xdf, 0x7e,
		0xf1, 0xdd, 0x96, 0xbc, 0x57, 0xc9, 0xe8, 0x1b, 0xce, 0x53, 0x7c, 0xfa, 0x64, 0xb4, 0xa7, 0xc2,
		0xef, 0xc5, 0xcc, 0xcc, 0xdb, 0xbb, 0x7e, 0xe5, 0x6e, 0x4f, 0xb2, 0xcb, 0x67, 0x76, 0xf7, 0x5b,
		0x0f, 0x93, 0x66, 0x63, 0xa7, 0xde, 0xd0, 0xa9, 0x37, 0xf2, 0xc2, 0x06, 0x0e, 0x1e, 0x9d, 0x48,
		0x22, 0x57, 0x51, 0xf9, 0xc1, 0xb2, 0x25, 0x57, 0xf1, 0xc1, 0xd7, 0x89, 0x55, 0xfc, 0xae, 0x24,
		0x15, 0xbf, 0x4a, 0x08, 0x0a, 0xac, 0xe5, 0x57, 0x08, 0x09, 0x8d, 0xa2, 0x4f, 0xea, 0x07, 0x2a,
		0x75, 0xc7, 0x2b, 0x99, 0x70, 0xfe, 0xa2, 0xac, 0xf7, 0x34, 0xb5, 0xbf, 0x53, 0x3a, 0x3e, 0x53,
		0xf3, 0xac, 0x3c, 0xbc, 0x2a, 0x97, 0xb8, 0x89, 0x52, 0xa7, 0xc2, 0x54, 0xa9, 0x30, 0x35, 0xca,
		0x2b, 0x8e, 0x72, 0x6c, 0x57, 0xe9, 0xe6, 0x92, 0xff, 0x76, 0xc1, 0x5f, 0xe9, 0xcb, 0xd5, 0x27,
		0x3d, 0xa5, 0xfd, 0x9b, 0x04, 0x7f, 0xa5, 0x2a, 0x34, 0x9f, 0xc0, 0x34, 0x4a, 0xa0, 0x01, 0xcd,
		0x5e, 0xfa, 0xdd, 0x6b, 0xf6, 0x52, 0xee, 0xdc, 0x5d, 0xec, 0x5c, 0xec, 0x5c, 0x21, 0xbf, 0x44,
		0xb4, 0x6a, 0x7d, 0x66, 0xdc, 0xa7, 0xf3, 0x41, 0x44, 0xc7, 0xc7, 0x61, 0x8a, 0x6b, 0xae, 0x42,
		0xe5, 0xb0, 0xb3, 0x13, 0x58, 0x26, 0x65, 0xb3, 0xa7, 0x72, 0x57, 0xa6, 0x0b, 0x2f, 0xe2, 0x0a,
		0x2b, 0xe2, 0x3e, 0x55, 0xab, 0xd8, 0x9b, 0x6b, 0xbd, 0x37, 0xd3, 0x06, 0x01, 0xa5, 0x39, 0x42,
		0xf8, 0x8f, 0x12, 0xce, 0x23, 0x85, 0xfb, 0x68, 0x11, 0x11, 0x63, 0x12, 0x71, 0x16, 0x15, 0x6b,
		0x32, 0xf1, 0x26, 0x13, 0x73, 0x2a, 0x71, 0x4f, 0xef, 0x32, 0xd1, 0x38, 0xdc, 0x58, 0xdc, 0xae,
		0x73, 0xf1, 0xb0, 0x1c, 0xce, 0x70, 0x1c, 0x39, 0x91, 0xae, 0x0e, 0x73, 0x39, 0xf5, 0x6a, 0x54,
		0x02, 0x73, 0x3c, 0x02, 0x76, 0x3a, 0x76, 0x3a, 0x76, 0x3a, 0xc5, 0x4e, 0x4f, 0xf9, 0x86, 0x04,
		0x59, 0xa5, 0x25, 0x87, 0xdd, 0x33, 0x87, 0x59, 0x5d, 0xfe, 0xb2, 0x4e, 0x04, 0x51, 0x48, 0xcd,
		0x46, 0xeb, 0x93, 0xf6, 0x7b, 0xfd, 0xe2, 0xb3, 0xe6, 0xdb, 0xcb, 0xda, 0xb9, 0xdd, 0x1b, 0xf4,
		0xd9, 0xb1, 0x76, 0xea, 0x18, 0xf7, 0x9e, 0xa6, 0x6b, 0xde, 0xcb, 0x33, 0xeb, 0xb1, 0x7b, 0x6d,
		0xac, 0x72, 0xbe, 0x59, 0x8f, 0x9e, 0xf7, 0xec, 0x1e, 0x97, 0xcb, 0x9e, 0x6d, 0xf7, 0xdd, 0x1d,
		0x93, 0x79, 0xf7, 0x3b, 0xb6, 0xf3, 0x50, 0x7e, 0xf4, 0x9e, 0xfa, 0xe5, 0xde, 0xe8, 0x2a, 0xfd,
		0xbb, 0xd1, 0xef, 0x9b, 0x96, 0x6e, 0x31, 0xef, 0xc9, 0xee, 0x05, 0x22, 0xaa, 0x3f, 0xf9, 0xe3,
		0xea, 0xbb, 0xd5, 0x9c, 0x05, 0xc8, 0x4d, 0x16, 0x21, 0xcf, 0x31, 0x72, 0xea, 0x57, 0x29, 0xf7,
		0x21, 0x37, 0xed, 0x3c, 0xe4, 0xac, 0xb0, 0xef, 0xcc, 0x31, 0xbd, 0x17, 0x81, 0xb4, 0x95, 0xf1,
		0x08, 0x38, 0xc9, 0x71, 0x92, 0xaf, 0xe5, 0x49, 0x2e, 0x16, 0xe6, 0x2a, 0x12, 0xde, 0x4a, 0x13,
		0xd6, 0x1a, 0xbd, 0xc8, 0xe5, 0x55, 0xe3, 0xe2, 0xe4, 0xf2, 0xe2, 0x53, 0xf3, 0x73, 0xa7, 0x7e,
		0x56, 0xbf, 0x3e, 0xef, 0xdc, 0x34, 0xbe, 0x36, 0xae, 0x9b, 0xad, 0xdf, 0x79, 0x25, 0x89, 0x20,
		0xa0, 0x95, 0x28, 0x52, 0xf7, 0xe4, 0xba, 0xd9, 0x6a, 0x9e, 0xd4, 0xcf, 0x04, 0xb4, 0xfe, 0xfb,
		0xac, 0xdf, 0xe1, 0xbc, 0xfe, 0xbf, 0x97, 0xd7, 0x85, 0x7e, 0x81, 0xe6, 0x45, 0xb1, 0x5f, 0xe0,
		0xcb, 0xc5, 0xbf, 0x2e, 0x2e, 0xff, 0x7d, 0x51, 0xe4, 0x57, 0xf8, 0x77, 0xfd, 0xfa, 0xa2, 0x79,
		0xf1, 0x59, 0x35, 0xfa, 0x69, 0xe7, 0x4c, 0xeb, 0x6f, 0x9c, 0x75, 0x33, 0x86, 0x61, 0xb0, 0x6e,
		0xf2, 0x6c, 0xdd, 0xd0, 0xad, 0x12, 0xac, 0x9b, 0x04, 0x4b, 0xe4, 0xb1, 0x1f, 0x1e, 0xbf, 0x65,
		0xe3, 0x5f, 0x0d, 0xab, 0x06, 0x56, 0x0d, 0xf8, 0x49, 0xf0, 0x93, 0xf2, 0x4f, 0xf0, 0x40, 0xc3,
		0x8f, 0x94, 0x0e, 0xce, 0xf0, 0x3c, 0x9f, 0xe1, 0x94, 0xeb, 0x84, 0x53, 0x3c, 0xc9, 0x29, 0x6e,
		0x3e, 0x31, 0xbd, 0xeb, 0x30, 0xc3, 0x63, 0x02, 0x51, 0x05, 0x33, 0xa3, 0xe0, 0x54, 0xc7, 0xa9,
		0xbe, 0x96, 0xa7, 0xfa, 0x48, 0xca, 0x3d, 0xb3, 0xfb, 0xa7, 0x7b, 0x50, 0x13, 0x38, 0xda, 0x39,
		0x4a, 0xfc, 0x97, 0xbe, 0x58, 0x41, 0xcf, 0xe7, 0x92, 0x65, 0x58, 0xb6, 0xcb, 0xba, 0xb6, 0xd5,
		0xe3, 0x12, 0x3d, 0xb1, 0x8e, 0xee, 0x62, 0x25, 0x0b, 0xc5, 0x4f, 0x3d, 0xa2, 0x8e, 0xeb, 0xe4,
		0xad, 0xb4, 0xe9, 0x5a, 0x65, 0x0f, 0xc5, 0x6a, 0x39, 0xd2, 0x4d, 0x31, 0x6d, 0x29, 0xc8, 0xbc,
		0xcf, 0xfa, 0x26, 0x9d, 0xf7, 0x2f, 0xcf, 0x4c, 0x17, 0x09, 0x20, 0x1c, 0x0f, 0x80, 0x53, 0x1e,
		0xa7, 0xfc, 0x5a, 0x9e, 0xf2, 0x03, 0xcb, 0xb4, 0x2d, 0x11, 0xd3, 0x9d, 0xa3, 0xbd, 0x9b, 0x58,
		0xfb, 0xb6, 0x75, 0xa8, 0x68, 0xf6, 0x3e, 0xab, 0x37, 0x5f, 0xfb, 0x3a, 0x4b, 0x0b, 0x8e, 0xe9,
		0xd6, 0xef, 0x57, 0x8d, 0x4e, 0xf3, 0x74, 0x7d, 0x0b, 0x2e, 0xd5, 0x9b, 0x6b, 0x59, 0x6d, 0xa9,
		0xf1, 0xff, 0x5e, 0xb5, 0xd6, 0xf1, 0xbd, 0xce, 0x2e, 0xd7, 0x72, 0xb9, 0x2e, 0x5b, 0xa8, 0x8c,
		0x45, 0x0d, 0x89, 0x41, 0x73, 0x27, 0xa2, 0x4f, 0x03, 0x88, 0x0e, 0xa6, 0x5b, 0x32, 0x22, 0x5e,
		0x8a, 0x8c, 0x33, 0x5a, 0xaa, 0xcd, 0x35, 0x7e, 0x8b, 0x9b, 0xe1, 0x9e, 0xb6, 0x62, 0x1e, 0x4f,
		0x82, 0x7b, 0x8a, 0xca, 0x78, 0xb2, 0x4b, 0x7f, 0x85, 0x95, 0xef, 0x56, 0x72, 0x07, 0xe9, 0xea,
		0xdd, 0xa5, 0xaf, 0x73, 0x47, 0x52, 0xdf, 0x8e, 0xa3, 0xae, 0x1d, 0x47, 0x3d, 0xbb, 0xcc, 0x0a,
		0x44, 0x4d, 0x89, 0x29, 0x61, 0x8d, 0xa8, 0x29, 0xc1, 0x2c, 0x68, 0x99, 0xa8, 0x95, 0xd5, 0x8e,
		0xd2, 0xcc, 0x84, 0x48, 0xb1, 0xa8, 0x6e, 0xdf, 0xee, 0xfe, 0xb9, 0xba, 0x56, 0x54, 0xf0, 0x35,
		0xc1, 0x52, 0x51, 0xbb, 0x34, 0xa5, 0xa2, 0xdc, 0x97, 0x62, 0xd6, 0x89, 0x1a, 0x3d, 0xb7, 0xaa,
		0x22, 0x51, 0x09, 0xeb, 0xfb, 0xa4, 0xab, 0xeb, 0x93, 0x97, 0x32, 0x51, 0x6f, 0x0b, 0x00, 0x2f,
		0x74, 0xcc, 0xbe, 0x46, 0xd4, 0x9b, 0x02, 0x42, 0x73, 0x76, 0x26, 0x2e, 0x10, 0xe5, 0x99, 0x4f,
		0xec, 0xbf, 0xb6, 0xc5, 0xf4, 0x54, 0x1d, 0x42, 0x66, 0x5c, 0x9c, 0x93, 0xcb, 0xd7, 0xa3, 0xe8,
		0x4c, 0x32, 0xb1, 0x13, 0xb5, 0x5c, 0xf2, 0x57, 0xd5, 0x22, 0x91, 0x58, 0xca, 0x81, 0xd1, 0xfc,
		0xe5, 0x66, 0x66, 0x04, 0x50, 0x4f, 0xd9, 0x3c, 0x22, 0x25, 0x09, 0x9d, 0xf4, 0x6d, 0x04, 0x68,
		0x04, 0x01, 0xfa, 0x40, 0xc0, 0x85, 0xd1, 0xac, 0x5f, 0xd4, 0xb5, 0x96, 0xf9, 0xc4, 0xb4, 0xff,
		0xd8, 0x16, 0xd3, 0x4e, 0x0d, 0xcf, 0xb8, 0x33, 0xdc, 0x30, 0xed, 0xf3, 0xb8, 0x5c, 0xfe, 0xeb,
		0xaf, 0xbf, 0x76, 0x4c, 0xc3, 0x32, 0x7c, 0x13, 0xd3, 0x8f, 0xdd, 0x19, 0x4d, 0x79, 0xd6, 0x6e,
		0x2e, 0x51, 0xfb, 0x5e, 0x8e, 0xa7, 0x8b, 0x77, 0x2e, 0x65, 0xfb, 0xc5, 0xde, 0xd1, 0x1a, 0xde,
		0x45, 0xad, 0xfb, 0xec, 0x03, 0xdc, 0xe4, 0xb5, 0xe2, 0x12, 0xe2, 0xf3, 0x93, 0xd1, 0xa8, 0x89,
		0x8a, 0xc3, 0xa1, 0xdc, 0x33, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40, 0x1e, 0x40,
		0x1e, 0x40, 0x1e, 0x40, 0x9e, 0x34, 0x90, 0x47, 0xdc, 0xb1, 0x20, 0xc0, 0x78, 0x05, 0xee, 0x59,
		0xf0, 0x16, 0xb7, 0x9b, 0x76, 0x1e, 0x84, 0xa8, 0xe8, 0xb7, 0x39, 0xcb, 0x64, 0x5c, 0x25, 0xc8,
		0xe8, 0xfc, 0x91, 0xd1, 0x3d, 0xfb, 0xc9, 0x30, 0xad, 0x64, 0x20, 0x33, 0x9a, 0xdb, 0xe9, 0x8b,
		0x92, 0x59, 0x2c, 0xbb, 0xa0, 0xa5, 0x8b, 0x6a, 0xb1, 0x24, 0x86, 0x80, 0x1c, 0xe2, 0x31, 0x8b,
		0xf5, 0x12, 0x7c, 0xf7, 0x8c, 0x59, 0x0f, 0xbe, 0xce, 0x4c, 0x06, 0xc1, 0xd2, 0xb5, 0x52, 0x4b,
		0x6f, 0x2a, 0x44, 0xa9, 0x14, 0x29, 0x01, 0xbe, 0x68, 0x9e, 0x04, 0x7f, 0x5e, 0xc4, 0x30, 0x5d,
		0x8f, 0x38, 0xfe, 0x29, 0xa9, 0xee, 0xef, 0x15, 0x67, 0x52, 0x88, 0x90, 0x55, 0x3b, 0x81, 0x04,
		0x5f, 0x19, 0x9e, 0xc7, 0x1c, 0x2b, 0xb1, 0x08, 0x97, 0xb6, 0xb6, 0xb6, 0xb6, 0x6e, 0x0d, 0xfd,
		0xbf, 0x75, 0xfd, 0x3f, 0xbb, 0xfa, 0x51, 0xa7, 0x3d, 0xf5, 0xcb, 0xb7, 0x6f, 0x7a, 0xa7, 0xbd,
		0xfd, 0x73, 0xf7, 0xfd, 0x41, 0x65, 0xb8, 0xfd, 0xcf, 0xc9, 0xe7, 0xed, 0x6f, 0xdf, 0x76, 0xb6,
		0xff, 0xce, 0x73, 0xd5, 0x3f, 0xb7, 0x5f, 0x47, 0xd7, 0x96, 0x68, 0x5e, 0xf5, 0xf2, 0xa6, 0xf9,
		0x5b, 0xea, 0xf7, 0xfd, 0x23, 0x8b, 0x17, 0xfe, 0x5b, 0x82, 0x37, 0x96, 0xc0, 0x11, 0x3e, 0xda,
		0xae, 0x97, 0xee, 0xe8, 0x8d, 0xae, 0xc0, 0xb9, 0x8b, 0x73, 0x17, 0xe7, 0x2e, 0xce, 0x5d, 0x9c,
		0xbb, 0x38, 0x77, 0x71, 0xee, 0xa6, 0x3c, 0x77, 0xfb, 0xf6, 0x83, 0x69, 0xe9, 0x77, 0x86, 0x65,
		0x31, 0x27, 0xf9, 0xd9, 0x3b, 0x73, 0x15, 0xce, 0x5f, 0x9c, 0xbf, 0x73, 0xf3, 0x9d, 0x38, 0xc1,
		0x32, 0xa1, 0x7b, 0x83, 0x4f, 0xb6, 0x9f, 0x6c, 0xaf, 0x97, 0x5a, 0xb4, 0xa7, 0x2f, 0x82, 0x64,
		0x43, 0xb2, 0xb3, 0x93, 0xec, 0x6c, 0xe9, 0xf6, 0x55, 0x31, 0x26, 0x49, 0xf9, 0xf6, 0x37, 0xa2,
		0x4a, 0x12, 0x12, 0xee, 0xcf, 0x83, 0x04, 0x6d, 0x82, 0xfd, 0x6f, 0xe5, 0xa3, 0x49, 0x30, 0xc8,
		0xf6, 0x04, 0x91, 0xdf, 0xcf, 0x83, 0x14, 0x61, 0xdf, 0xcf, 0x03, 0xc4, 0x7c, 0x23, 0x1c, 0x28,
		0xfc, 0xa2, 0x69, 0xf5, 0xd8, 0x0f, 0x8e, 0xae, 0xa2, 0xfe, 0x65, 0x08, 0xff, 0x49, 0x61, 0xcd,
		0x22, 0xfc, 0x87, 0x03, 0x29, 0x2c, 0xda, 0x4a, 0x59, 0xb5, 0x14, 0xf5, 0x05, 0x1e, 0x5d, 0x45,
		0xb1, 0x31, 0xd7, 0x7a, 0x63, 0xa6, 0xee, 0x27, 0xfa, 0x68, 0x38, 0xbd, 0xbf, 0x0c, 0x87, 0xe9,
		0xa6, 0xe5, 0x31, 0xc7, 0x19, 0x3c, 0x0b, 0xd4, 0xf5, 0x5e, 0x32, 0x16, 0x5f, 0xa5, 0xb0, 0x4a,
		0xc1, 0x2a, 0x85, 0xa5, 0x13, 0x74, 0x51, 0x81, 0x27, 0x13, 0x7c, 0xb2, 0x0d, 0x40, 0xb2, 0x11,
		0xd2, 0x6d, 0x08, 0x0e, 0xfe, 0x9c, 0x6b, 0x83, 0x44, 0x17, 0x1a, 0xdf, 0x1f, 0xc4, 0x1b, 0x05,
		0x8d, 0x06, 0xe1, 0x9c, 0x5a, 0xbe, 0x22, 0x7a, 0xc2, 0x5b, 0x84, 0x62, 0xab, 0x2c, 0xdb, 0x32,
		0xde, 0xcb, 0x33, 0x57, 0x3c, 0x2a, 0xd5, 0xe6, 0x21, 0xdf, 0x44, 0xe4, 0x9b, 0x29, 0x6e, 0x53,
		0x05, 0x33, 0xa7, 0xba, 0xe6, 0x07, 0xa7, 0xd4, 0x70, 0x97, 0xe4, 0x5b, 0x90, 0x99, 0x67, 0xe6,
		0x74, 0x99, 0xe5, 0x19, 0x0f, 0x8c, 0xa0, 0x54, 0x9b, 0x48, 0xa5, 0x36, 0xb1, 0x3a, 0xba, 0xe3,
		0x3f, 0xe2, 0x05, 0xa7, 0x48, 0xea, 0xea, 0x46, 0x83, 0x11, 0xd5, 0xd7, 0x8d, 0xc6, 0xa3, 0xae,
		0xf8, 0x3a, 0x91, 0x07, 0xaa, 0xca, 0xaf, 0x82, 0xa2, 0x3d, 0xbb, 0x14, 0x04, 0xf5, 0x77, 0x17,
		0x96, 0xa2, 0xb2, 0xbb, 0x81, 0x8b, 0xf1, 0x2e, 0x9b, 0xab, 0xdb, 0x8a, 0x2a, 0x21, 0x71, 0x08,
		0x5b, 0xc9, 0xb4, 0x5c, 0xcf, 0xb0, 0x3c, 0x71, 0xf4, 0x31, 0x1e, 0x08, 0x08, 0x04, 0x08, 0x04,
		0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x24, 0x01, 0x02, 0xf1, 0x98,
		0xf3, 0xdd, 0xe8, 0x53, 0x40, 0x90, 0x70, 0x24, 0x60, 0x10, 0x60, 0x10, 0x60, 0x90, 0xd4, 0x32,
		0xe3, 0x7a, 0x86, 0xa7, 0x0b, 0x6e, 0x22, 0x4d, 0xac, 0x21, 0x51, 0x34, 0x04, 0x51, 0x63, 0x22,
		0xc0, 0x1a, 0xc0, 0x1a, 0xc5, 0xb0, 0x86, 0xbc, 0xc1, 0x11, 0x70, 0xce, 0x5a, 0xe0, 0x9c, 0x27,
		0x01, 0x69, 0x9b, 0x84, 0xcc, 0x1a, 0x3f, 0x80, 0x6e, 0x80, 0x6e, 0x80, 0x6e, 0xc0, 0xb0, 0x00,
		0x8a, 0x00, 0x8a, 0x80, 0x61, 0x01, 0xf2, 0x48, 0x84, 0x3c, 0x74, 0xcf, 0x7c, 0x62, 0x24, 0xf0,
		0x23, 0x18, 0x09, 0x18, 0x04, 0x18, 0x04, 0x18, 0x24, 0xb5, 0xcc, 0x88, 0x35, 0x7a, 0x06, 0xbf,
		0x02, 0x50, 0x03, 0x50, 0x03, 0x7e, 0x05, 0x28, 0x67, 0x29, 0xca, 0x11, 0xd8, 0xf8, 0x13, 0x80,
		0x63, 0x5a, 0xc0, 0x36, 0xc0, 0x36, 0xc0, 0x36, 0xe0, 0x57, 0x00, 0x45, 0x00, 0x45, 0xc0, 0xaf,
		0x00, 0x79, 0x24, 0x42, 0x1e, 0x54, 0xfc, 0xca, 0x78, 0x24, 0x60, 0x10, 0x60, 0x10, 0x60, 0x10,
		0xf0, 0x2b, 0x00, 0x35, 0x00, 0x35, 0xe0, 0x57, 0x80, 0x72, 0xa8, 0x51, 0x8e, 0xd4, 0x34, 0x68,
		0xce, 0x5e, 0xe7, 0xd1, 0xf5, 0x89, 0x0b, 0x67, 0x3d, 0x0f, 0xdc, 0xd1, 0xff, 0xc2, 0x2a, 0x1c,
		0xc2, 0x15, 0x02, 0xb4, 0x14, 0xb5, 0xb6, 0x9e, 0x07, 0xee, 0xe8, 0x7f, 0x41, 0x9b, 0x8f, 0xce,
		0xaf, 0xe1, 0xad, 0x9b, 0xd1, 0x9d, 0x65, 0x35, 0xa5, 0x4f, 0x51, 0xf2, 0xc2, 0xec, 0xf5, 0x19,
		0x7f, 0xbd, 0x05, 0xff, 0x6a, 0x54, 0x58, 0x90, 0x07, 0x2e, 0x51, 0x61, 0x01, 0x15, 0x16, 0x60,
		0x99, 0xc1, 0x32, 0xdb, 0x0c, 0xcb, 0x0c, 0xec, 0x30, 0x0c, 0x29, 0xb0, 0xc3, 0xb0, 0x9b, 0x0a,
		0x6e, 0x37, 0xa1, 0xc2, 0x02, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10,
		0x08, 0x10, 0x48, 0x41, 0x10, 0x08, 0x2a, 0x2c, 0x00, 0x83, 0x00, 0x83, 0xa0, 0xc2, 0xc2, 0xf4,
		0x10, 0xf0, 0x50, 0x03, 0xd6, 0x14, 0x13, 0xd6, 0xc0, 0x43, 0x0d, 0x9c, 0xb3, 0x6c, 0x92, 0x51,
		0x61, 0x01, 0xe8, 0x06, 0xe8, 0x06, 0x0c, 0x0b, 0xa0, 0x08, 0xa0, 0x08, 0x18, 0x16, 0x20, 0x0f,
		0x0d, 0x15, 0x16, 0x80, 0x41, 0x80, 0x41, 0x36, 0x0a, 0x83, 0x20, 0x03, 0x00, 0xa0, 0x06, 0xa0,
		0x06, 0xfc, 0x0a, 0x50, 0x8e, 0x04, 0x94, 0x83, 0x0a, 0x0b, 0xc0, 0x36, 0xc0, 0x36, 0xe0, 0x57,
		0x00, 0x45, 0x00, 0x45, 0xc0, 0xaf, 0x00, 0x79, 0xa0, 0xc2, 0x02, 0x30, 0x08, 0x30, 0x08, 0xf8,
		0x15, 0xf0, 0x2b, 0x00, 0x35, 0x00, 0x35, 0xe0, 0x57, 0x80, 0x72, 0x38, 0xaf, 0x28, 0x48, 0x85,
		0x05, 0x8e, 0x9a, 0x00, 0x1a, 0x77, 0x4d, 0x85, 0xe6, 0xe8, 0x66, 0x79, 0x28, 0xa3, 0x60, 0xf5,
		0xd8, 0x0f, 0x81, 0x3a, 0x0a, 0xfe, 0xe5, 0x7c, 0x85, 0x14, 0x76, 0x51, 0x48, 0x41, 0x25, 0x76,
		0xdc, 0xa4, 0x42, 0x0a, 0xdc, 0x88, 0x30, 0x5a, 0xef, 0x81, 0x35, 0x52, 0x3f, 0x1c, 0xcb, 0x3d,
		0xae, 0x12, 0x72, 0xc4, 0x71, 0x6d, 0xf8, 0xd8, 0x7c, 0x18, 0x8d, 0x00, 0xfe, 0x32, 0x6b, 0xf0,
		0xc4, 0x9c, 0x40, 0xf3, 0x8a, 0xc3, 0xdf, 0x4a, 0x4d, 0x60, 0x8c, 0x86, 0x35, 0x78, 0x12, 0xb7,
		0xbb, 0x5a, 0xf6, 0x8d, 0xe7, 0x98, 0xd6, 0x03, 0x09, 0xcc, 0x29, 0xed, 0x8e, 0xe6, 0xa8, 0x7e,
		0x76, 0x56, 0x7a, 0x97, 0x21, 0x72, 0x2b, 0xb5, 0xec, 0xa6, 0x40, 0xbe, 0xed, 0xec, 0x46, 0x3e,
		0x3b, 0x1b, 0xa9, 0xd3, 0x8c, 0xc0, 0x8a, 0x52, 0x23, 0x91, 0x60, 0x77, 0x0c, 0x4c, 0xcb, 0xdb,
		0xab, 0x12, 0x6c, 0x8c, 0x43, 0xd8, 0x71, 0xb0, 0xe3, 0xf2, 0x6e, 0xc7, 0xd5, 0xaa, 0x47, 0xb5,
		0xa3, 0x83, 0xc3, 0xea, 0x11, 0xac, 0xb7, 0x75, 0xb3, 0xde, 0xda, 0x39, 0xb0, 0x3b, 0xfe, 0x64,
		0x8e, 0xc5, 0xfa, 0xfc, 0x86, 0x47, 0x78, 0x3d, 0x4a, 0xb8, 0xc1, 0xf2, 0xc8, 0x95, 0xe5, 0x81,
		0x12, 0x6e, 0x70, 0xfd, 0x48, 0xd9, 0x44, 0xe4, 0x9b, 0x29, 0x6e, 0x53, 0x21, 0xfc, 0x04, 0xe1,
		0x27, 0x40, 0xf8, 0x08, 0x3f, 0x01, 0xb4, 0x2f, 0x20, 0xb4, 0x47, 0x09, 0x37, 0x20, 0x10, 0x20,
		0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x90, 0xa2, 0x20, 0x10, 0x94, 0x70,
		0x03, 0x06, 0x01, 0x06, 0x41, 0x09, 0xb7, 0xe9, 0x21, 0x10, 0x02, 0x0b, 0x58, 0x53, 0x4c, 0x58,
		0x83, 0x10, 0x58, 0xe0, 0x9c, 0x65, 0x93, 0x8c, 0x12, 0x6e, 0x40, 0x37, 0x40, 0x37, 0x60, 0x58,
		0x00, 0x45, 0x00, 0x45, 0xc0, 0xb0, 0x00, 0x79, 0x68, 0x28, 0xe1, 0x06, 0x0c, 0x02, 0x0c, 0xb2,
		0x51, 0x18, 0x04, 0x29, 0xc6, 0x00, 0x35, 0x00, 0x35, 0xe0, 0x57, 0x80, 0x72, 0x24, 0xa0, 0x1c,
		0x94, 0x70, 0x03, 0xb6, 0x01, 0xb6, 0x01, 0xbf, 0x02, 0x28, 0x02, 0x28, 0x02, 0x7e, 0x05, 0xc8,
		0x03, 0x25, 0xdc, 0x80, 0x41, 0x80, 0x41, 0xc0, 0xaf, 0x80, 0x5f, 0x01, 0xa8, 0x01, 0xa8, 0x01,
		0xbf, 0x02, 0x94, 0xc3, 0x79, 0x45, 0x41, 0x4a, 0xb8, 0x71, 0x55, 0x05, 0xd0, 0xb8, 0x8b, 0xb8,
		0xfd, 0x2b, 0xb8, 0x5d, 0x0e, 0xca, 0x29, 0x58, 0x26, 0x07, 0xc6, 0x89, 0xce, 0x4c, 0xff, 0x6a,
		0x94, 0x52, 0x90, 0x87, 0x22, 0x51, 0x4a, 0x01, 0xa5, 0x14, 0x60, 0x82, 0xc1, 0x04, 0xdb, 0x0c,
		0x13, 0x0c, 0x34, 0x30, 0x2c, 0x26, 0xd0, 0xc0, 0x30, 0x90, 0x0a, 0x6e, 0x20, 0xa1, 0x94, 0x02,
		0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x48, 0x41, 0x10,
		0x08, 0x4a, 0x29, 0x00, 0x83, 0x00, 0x83, 0xa0, 0x94, 0xc2, 0xf4, 0x10, 0x70, 0x45, 0x03, 0xd6,
		0x14, 0x13, 0xd6, 0xc0, 0x15, 0x0d, 0x9c, 0xb3, 0x6c, 0x92, 0x51, 0x4a, 0x01, 0xe8, 0x06, 0xe8,
		0x06, 0x0c, 0x0b, 0xa0, 0x08, 0xa0, 0x08, 0x18, 0x16, 0x20, 0x0f, 0x0d, 0xa5, 0x14, 0x80, 0x41,
		0x80, 0x41, 0x36, 0x0a, 0x83, 0x20, 0xd4, 0x1f, 0xa0, 0x06, 0xa0, 0x06, 0xfc, 0x0a, 0x50, 0x8e,
		0x04, 0x94, 0x83, 0x52, 0x0a, 0xc0, 0x36, 0xc0, 0x36, 0xe0, 0x57, 0x00, 0x45, 0x00, 0x45, 0xc0,
		0xaf, 0x00, 0x79, 0xa0, 0x94, 0x02, 0x30, 0x08, 0x30, 0x08, 0xf8, 0x15, 0xf0, 0x2b, 0x00, 0x35,
		0x00, 0x35, 0xe0, 0x57, 0x80, 0x72, 0x38, 0xaf, 0x28, 0x48, 0x29, 0x05, 0x8e, 0x9a, 0x00, 0x1a,
		0x77, 0x21, 0x85, 0x8b, 0xd1, 0xcd, 0x72, 0x50, 0x46, 0xc1, 0xb5, 0xef, 0xbd, 0xbf, 0x0c, 0x87,
		0x05, 0x71, 0x9b, 0xce, 0xe0, 0xd9, 0xe3, 0x2f, 0xaa, 0xb0, 0x64, 0x2c, 0x94, 0x58, 0x90, 0x87,
		0x2e, 0x51, 0x62, 0x01, 0x25, 0x16, 0x60, 0x9a, 0xc1, 0x34, 0xdb, 0x0c, 0xd3, 0x0c, 0xf4, 0x30,
		0x2c, 0x29, 0xd0, 0xc3, 0x30, 0x9c, 0x0a, 0x6e, 0x38, 0xa1, 0xc4, 0x02, 0x10, 0x08, 0x10, 0x08,
		0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x48, 0x41, 0x10, 0x08, 0x4a, 0x2c, 0x00,
		0x83, 0x00, 0x83, 0xa0, 0xc4, 0xc2, 0xf4, 0x10, 0x70, 0x51, 0x03, 0xd6, 0x14, 0x13, 0xd6, 0xc0,
		0x45, 0x0d, 0x9c, 0xb3, 0x6c, 0x92, 0x51, 0x62, 0x01, 0xe8, 0x06, 0xe8, 0x06, 0x0c, 0x0b, 0xa0,
		0x08, 0xa0, 0x08, 0x18, 0x16, 0x20, 0x0f, 0x0d, 0x25, 0x16, 0x80, 0x41, 0x80, 0x41, 0x36, 0x0a,
		0x83, 0x20, 0x05, 0x00, 0xa0, 0x06, 0xa0, 0x06, 0xfc, 0x0a, 0x50, 0x8e, 0x04, 0x94, 0x83, 0x12,
		0x0b, 0xc0, 0x36, 0xc0, 0x36, 0xe0, 0x57, 0x00, 0x45, 0x00, 0x45, 0xc0, 0xaf, 0x00, 0x79, 0xa0,
		0xc4, 0x02, 0x30, 0x08, 0x30, 0x08, 0xf8, 0x15, 0xf0, 0x2b, 0x00, 0x35, 0x00, 0x35, 0xe0, 0x57,
		0x80, 0x72, 0x38, 0xaf, 0x28, 0x48, 0x89, 0x05, 0xe1, 0x0a, 0x01, 0x1a, 0x77, 0xc1, 0x85, 0x9b,
		0xf0, 0xd6, 0xcd, 0xe8, 0xce, 0x39, 0xa8, 0xbe, 0xe0, 0xd9, 0x1e, 0x47, 0x54, 0xf5, 0xe4, 0x2c,
		0xf5, 0x2f, 0x47, 0x8d, 0x05, 0x79, 0xf0, 0x12, 0x35, 0x16, 0x50, 0x63, 0x01, 0xb6, 0x19, 0x6c,
		0xb3, 0xcd, 0xb0, 0xcd, 0xc0, 0x0f, 0xc3, 0x94, 0x02, 0x3f, 0x0c, 0xcb, 0xa9, 0xe0, 0x96, 0x13,
		0x6a, 0x2c, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81,
		0x14, 0x04, 0x81, 0xa0, 0xc6, 0x02, 0x30, 0x08, 0x30, 0x08, 0x6a, 0x2c, 0x4c, 0x0f, 0x01, 0x1f,
		0x35, 0x60, 0x4d, 0x31, 0x61, 0x0d, 0x7c, 0xd4, 0xc0, 0x39, 0xcb, 0x26, 0x19, 0x35, 0x16, 0x80,
		0x6e, 0x80, 0x6e, 0xc0, 0xb0, 0x00, 0x8a, 0x00, 0x8a, 0x80, 0x61, 0x01, 0xf2, 0xd0, 0x50, 0x63,
		0x01, 0x18, 0x04, 0x18, 0x64, 0xa3, 0x30, 0x08, 0x72, 0x00, 0x00, 0x6a, 0x00, 0x6a, 0xc0, 0xaf,
		0x00, 0xe5, 0x48, 0x40, 0x39, 0xa8, 0xb1, 0x00, 0x6c, 0x03, 0x6c, 0x03, 0x7e, 0x05, 0x50, 0x04,
		0x50, 0x04, 0xfc, 0x0a, 0x90, 0x07, 0x6a, 0x2c, 0x00, 0x83, 0x00, 0x83, 0x80, 0x5f, 0x01, 0xbf,
		0x02, 0x50, 0x03, 0x50, 0x03, 0x7e, 0x05, 0x28, 0x87, 0xf3, 0x8a, 0x82, 0xd4, 0x58, 0xe0, 0x29,
		0x0a, 0xa0, 0x71, 0x97, 0x55, 0x68, 0xf9, 0x77, 0xcb, 0x41, 0x29, 0x85, 0x81, 0xcb, 0x1c, 0xfe,
		0x4a, 0x0a, 0xfe, 0xd5, 0x28, 0xa4, 0x20, 0x0f, 0x43, 0xa2, 0x90, 0x02, 0x0a, 0x29, 0xc0, 0x00,
		0x83, 0x01, 0xb6, 0x19, 0x06, 0x18, 0x48, 0x60, 0xd8, 0x4b, 0x20, 0x81, 0x61, 0x1e, 0x15, 0xdc,
		0x3c, 0x42, 0x21, 0x05, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10, 0x20, 0x10,
		0x20, 0x90, 0x82, 0x20, 0x10, 0x14, 0x52, 0x00, 0x06, 0x01, 0x06, 0x41, 0x21, 0x85, 0xe9, 0x21,
		0xe0, 0x88, 0x06, 0xac, 0x29, 0x26, 0xac, 0x81, 0x23, 0x1a, 0x38, 0x67, 0xd9, 0x24, 0xa3, 0x90,
		0x02, 0xd0, 0x0d, 0xd0, 0x0d, 0x18, 0x16, 0x40, 0x11, 0x40, 0x11, 0x30, 0x2c, 0x40, 0x1e, 0x1a,
		0x0a, 0x29, 0x00, 0x83, 0x00, 0x83, 0x6c, 0x14, 0x06, 0x41, 0xa0, 0x3f, 0x40, 0x0d, 0x40, 0x0d,
		0xf8, 0x15, 0xa0, 0x1c, 0x09, 0x28, 0x07, 0x85, 0x14, 0x80, 0x6d, 0x80, 0x6d, 0xc0, 0xaf, 0x00,
		0x8a, 0x00, 0x8a, 0x80, 0x5f, 0x01, 0xf2, 0x40, 0x21, 0x05, 0x60, 0x10, 0x60, 0x10, 0xf0, 0x2b,
		0xe0, 0x57, 0x00, 0x6a, 0x00, 0x6a, 0xc0, 0xaf, 0x00, 0xe5, 0x70, 0x5e, 0x51, 0x90, 0x42, 0x0a,
		0x1c, 0x35, 0x01, 0x34, 0xee, 0x3a, 0x0a, 0x5f, 0x46, 0x37, 0xcb, 0x41, 0x19, 0x85, 0xbf, 0x0c,
		0xd3, 0xe3, 0x2f, 0xa3, 0xe0, 0x5f, 0x8d, 0x32, 0x0a, 0xf2, 0x10, 0x24, 0xca, 0x28, 0xa0, 0x8c,
		0x02, 0xcc, 0x2f, 0x98, 0x5f, 0x9b, 0x61, 0x7e, 0x81, 0x02, 0x86, 0xb5, 0x04, 0x0a, 0x18, 0xc6,
		0x51, 0xc1, 0x8d, 0x23, 0x94, 0x51, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
		0x01, 0x02, 0x01, 0x02, 0x29, 0x08, 0x02, 0x41, 0x19, 0x05, 0x60, 0x10, 0x60, 0x10, 0x94, 0x51,
		0x98, 0x1e, 0x02, 0x6e, 0x68, 0xc0, 0x9a, 0x62, 0xc2, 0x1a, 0xb8, 0xa1, 0x81, 0x73, 0x96, 0x4d,
		0x32, 0xca, 0x28, 0x00, 0xdd, 0x00, 0xdd, 0x80, 0x61, 0x01, 0x14, 0x01, 0x14, 0x01, 0xc3, 0x02,
		0xe4, 0xa1, 0xa1, 0x8c, 0x02, 0x30, 0x08, 0x30, 0xc8, 0x46, 0x61, 0x10, 0x84, 0xf9, 0x03, 0xd4,
		0x00, 0xd4, 0x80, 0x5f, 0x01, 0xca, 0x91, 0x80, 0x72, 0x50, 0x46, 0x01, 0xd8, 0x06, 0xd8, 0x06,
		0xfc, 0x0a, 0xa0, 0x08, 0xa0, 0x08, 0xf8, 0x15, 0x20, 0x0f, 0x94, 0x51, 0x00, 0x06, 0x01, 0x06,
		0x01, 0xbf, 0x02, 0x7e, 0x05, 0xa0, 0x06, 0xa0, 0x06, 0xfc, 0x0a, 0x50, 0x0e, 0xe7, 0x15, 0x05,
		0x29, 0xa3, 0xc0, 0x51, 0x13, 0x40, 0xe3, 0x2e, 0xa3, 0xf0, 0xef, 0xd1, 0xcd, 0x64, 0x95, 0x51,
		0x78, 0x47, 0xb8, 0x2a, 0xbc, 0xab, 0xc1, 0xb9, 0x0a, 0x29, 0x16, 0x80, 0x6b, 0xe2, 0x93, 0xcd,
		0xf9, 0xea, 0x19, 0x7c, 0xfb, 0x1b, 0x2b, 0xe6, 0x76, 0x84, 0x07, 0x83, 0x80, 0xf3, 0x1e, 0x5b,
		0x05, 0x05, 0x4b, 0x67, 0xa6, 0xeb, 0xd5, 0x3d, 0x2f, 0x59, 0x65, 0x80, 0xd1, 0xf1, 0xda, 0xe8,
		0xb3, 0x11, 0x92, 0x4b, 0xa8, 0x20, 0x47, 0xa7, 0xc0, 0xd4, 0x15, 0x7c, 0xea, 0xbb, 0x74, 0xe9,
		0xf4, 0x98, 0xc3, 0x7a, 0x1f, 0x47, 0xaf, 0x65, 0x0d, 0xfa, 0xfd, 0x34, 0x97, 0xf8, 0x15, 0x45,
		0x92, 0x68, 0xde, 0x55, 0xb3, 0x9a, 0x52, 0x52, 0x53, 0x4b, 0x68, 0x02, 0xd9, 0x4c, 0x29, 0x93,
		0x6f, 0x4b, 0x63, 0xbc, 0x8c, 0x2d, 0xff, 0x97, 0x98, 0xf9, 0x49, 0x3a, 0x2f, 0xa9, 0xe6, 0xe3,
		0x8d, 0xb9, 0x48, 0x31, 0x07, 0xcb, 0xdf, 0x7f, 0xf1, 0xed, 0x96, 0xbc, 0x59, 0xa9, 0x67, 0xb9,
		0xb1, 0xaf, 0x13, 0x01, 0xfa, 0xd1, 0x97, 0x62, 0x66, 0xe5, 0xed, 0x72, 0x2e, 0x2b, 0x6d, 0xd9,
		0x24, 0xb6, 0x6a, 0xf2, 0x32, 0x2c, 0x49, 0x2d, 0xcd, 0xd4, 0x96, 0x64, 0x6a, 0x4b, 0x31, 0x55,
		0x99, 0x94, 0x74, 0x72, 0xb8, 0xaa, 0xbc, 0x49, 0xa9, 0x3b, 0x9e, 0xf3, 0x15, 0x93, 0x30, 0x9e,
		0xd6, 0xf0, 0xfb, 0xab, 0x94, 0x6d, 0xa2, 0xba, 0x3d, 0x89, 0xc9, 0x8b, 0x34, 0x24, 0x45, 0xfa,
		0x3a, 0x3c, 0x69, 0x29, 0x07, 0x6e, 0x6a, 0x81, 0x9b, 0x42, 0xe0, 0xaa, 0xa3, 0x23, 0x76, 0x5c,
		0x26, 0xad, 0x8b, 0x53, 0x72, 0x99, 0xe1, 0x74, 0x1f, 0x93, 0x4f, 0x5e, 0x94, 0xb9, 0x12, 0x5c,
		0x97, 0x70, 0x02, 0xd2, 0xb1, 0x64, 0xa9, 0x59, 0x31, 0x1e, 0x16, 0x8c, 0xbf, 0xe0, 0x13, 0x2f,
		0xc7, 0x25, 0xcc, 0x69, 0x09, 0x73, 0x58, 0x42, 0x05, 0x9d, 0x68, 0x31, 0x72, 0x6a, 0x06, 0x6a,
		0x72, 0x40, 0xd9, 0x4f, 0x86, 0x69, 0xe9, 0xfe, 0x61, 0x99, 0x62, 0xd1, 0xc6, 0x3a, 0x2d, 0x05,
		0xc5, 0x54, 0x3a, 0x63, 0xd6, 0x83, 0x7f, 0xb4, 0xa7, 0xe3, 0x80, 0x38, 0x0c, 0x30, 0x11, 0x8e,
		0x67, 0x42, 0x24, 0x70, 0xb2, 0x81, 0x54, 0x2c, 0x81, 0x38, 0x2b, 0xc0, 0xe3, 0x0b, 0x10, 0xe1,
		0x64, 0xa2, 0xa9, 0xab, 0xee, 0xef, 0x15, 0x7f, 0xf2, 0x24, 0x19, 0xc7, 0xed, 0x14, 0x3b, 0xe6,
		0xca, 0xf0, 0x3c, 0xe6, 0x58, 0xa9, 0xb7, 0x4c, 0x69, 0x6b, 0x6b, 0x6b, 0xeb, 0xd6, 0xd0, 0xff,
		0x5b, 0xd7, 0xff, 0xb3, 0xab, 0x1f, 0x75, 0xda, 0x53, 0xbf, 0x7c, 0xfb, 0xa6, 0x77, 0xda, 0xdb,
		0x3f, 0x77, 0xdf, 0x1f, 0x54, 0x86, 0xdb, 0xff, 0x9c, 0x7c, 0xde, 0xfe, 0xf6, 0x6d, 0x67, 0xfb,
		0xef, 0x3c, 0x57, 0xfd, 0x73, 0xfb, 0x75, 0x74, 0x6d, 0x49, 0xce, 0x14, 0x5c, 0xde, 0x34, 0x7f,
		0xe3, 0x9e, 0x87, 0x3f, 0xb2, 0x98, 0x88, 0xbf, 0xa5, 0x98, 0x09, 0xd2, 0x53, 0x20, 0x95, 0xa5,
		0xce, 0x6f, 0xb1, 0x93, 0x5a, 0xee, 0x4b, 0x2d, 0x78, 0xce, 0xa2, 0x9a, 0x1c, 0x75, 0x48, 0x45,
		0x3c, 0x6c, 0xd3, 0x08, 0xc4, 0x0e, 0x9e, 0x5e, 0xbf, 0x7b, 0xe1, 0x61, 0xf0, 0x28, 0xbc, 0x69,
		0x33, 0x68, 0x64, 0x90, 0x93, 0x22, 0xa9, 0xf3, 0x1c, 0xcb, 0xe8, 0xd5, 0x72, 0x41, 0x80, 0xc9,
		0xa2, 0x6a, 0x7a, 0x96, 0x5b, 0x4e, 0x64, 0x15, 0xa6, 0x20, 0x2a, 0x4e, 0x2d, 0xb7, 0x13, 0x62,
		0x78, 0x5e, 0xba, 0xe6, 0x0d, 0xc3, 0xff, 0xd1, 0x76, 0x3d, 0x9d, 0x59, 0x9e, 0x63, 0x32, 0x37,
		0xb9, 0xe5, 0x3b, 0x73, 0x15, 0xec, 0x5f, 0xd8, 0xbf, 0x73, 0xc2, 0xf4, 0x92, 0xde, 0x06, 0x9e,
		0xba, 0x36, 0x9d, 0x1d, 0x5c, 0x81, 0x1d, 0x0c, 0x3b, 0x38, 0x9d, 0xa0, 0xa6, 0x65, 0xfc, 0xc4,
		0x18, 0x40, 0x41, 0xc1, 0xe5, 0x16, 0x60, 0x11, 0x41, 0x16, 0x17, 0x68, 0x0a, 0x88, 0xa5, 0xa1,
		0x92, 0x37, 0x97, 0x29, 0x2f, 0x50, 0xc9, 0xbb, 0x6f, 0x1a, 0x2e, 0x41, 0x2d, 0x6f, 0x7f, 0x18,
		0x44, 0x01, 0xf2, 0x6f, 0x1b, 0xaa, 0xed, 0x43, 0xbe, 0x8d, 0xc8, 0xb7, 0x13, 0xe9, 0xb6, 0xe2,
		0xdb, 0x5e, 0x02, 0x8c, 0x99, 0x46, 0x5d, 0xc3, 0xca, 0x31, 0xad, 0x07, 0x82, 0xe0, 0xbf, 0xca,
		0x07, 0xa5, 0x33, 0xc0, 0xc5, 0x3d, 0xd0, 0x71, 0x11, 0x52, 0xb9, 0x89, 0x37, 0xb9, 0x8a, 0x64,
		0xd1, 0x06, 0x89, 0x2d, 0x64, 0xfe, 0xf8, 0x2f, 0x35, 0xb1, 0xe2, 0x23, 0x94, 0x1e, 0x1a, 0xac,
		0x82, 0x47, 0x44, 0x34, 0x12, 0x4e, 0x09, 0x9c, 0x12, 0x38, 0x25, 0x8a, 0x75, 0x4a, 0xa8, 0xa9,
		0xac, 0xfa, 0xfc, 0xbd, 0xa6, 0x1b, 0xbd, 0x9e, 0xc3, 0x5c, 0x02, 0x48, 0x3a, 0x33, 0x1a, 0x74,
		0x0e, 0x74, 0x0e, 0x74, 0x8e, 0xea, 0xfd, 0xa3, 0x71, 0x86, 0x0e, 0x2c, 0xee, 0x03, 0x4e, 0x87,
		0xe0, 0xc2, 0x40, 0x5b, 0xb7, 0xbb, 0xfa, 0x51, 0xfb, 0xf5, 0xb6, 0xa2, 0x1f, 0xb5, 0x83, 0x1f,
		0x2b, 0xfe, 0x5f, 0x3f, 0xab, 0xc3, 0xd7, 0xea, 0xed, 0xae, 0x5e, 0x0b, 0x3f, 0xad, 0xee, 0xdf,
		0xee, 0xea, 0xfb, 0xed, 0xed, 0xad, 0x6f, 0xdf, 0x76, 0xd2, 0x5e, 0xb3, 0xfd, 0x73, 0x6f, 0xc8,
		0x2f, 0x2e, 0x6d, 0x91, 0x69, 0x12, 0x71, 0x9e, 0x2e, 0x8c, 0xf6, 0xc7, 0x96, 0xaa, 0xd9, 0x4a,
		0xe3, 0x42, 0x5d, 0x98, 0x2f, 0x98, 0x3d, 0x30, 0x7b, 0x64, 0x40, 0x91, 0x03, 0x52, 0x28, 0x72,
		0x00, 0x28, 0x02, 0x28, 0x02, 0x28, 0x92, 0xd9, 0xfe, 0xc9, 0x21, 0x14, 0xf1, 0x4f, 0x4a, 0x43,
		0xbf, 0xaf, 0xeb, 0x9f, 0xda, 0x3f, 0x2b, 0xef, 0x6b, 0xc3, 0xe3, 0xed, 0x9f, 0x87, 0xc3, 0xf9,
		0x0f, 0x5f, 0x97, 0x7d, 0xad, 0xf2, 0xfe, 0x70, 0x78, 0x1c, 0xf3, 0x2f, 0x07, 0xc3, 0xe3, 0x84,
		0x63, 0xec, 0x0f, 0xb7, 0x16, 0xbe, 0x3a, 0xfa, 0xbc, 0x1a, 0x77, 0x41, 0x2d, 0xe6, 0x82, 0xbd,
		0xb8, 0x0b, 0xf6, 0x62, 0x2e, 0x88, 0x7d, 0xa4, 0x6a, 0xcc, 0x05, 0xfb, 0xc3, 0xd7, 0x85, 0xef,
		0x6f, 0x2d, 0xff, 0xea, 0xc1, 0x70, 0xfb, 0x35, 0xee, 0xdf, 0x0e, 0x87, 0xaf, 0xc7, 0xdb, 0xdb,
		0x6b, 0x04, 0xce, 0x20, 0x3e, 0xea, 0xc5, 0x07, 0x60, 0x15, 0x60, 0x55, 0x1e, 0x58, 0x5d, 0x8b,
		0x4c, 0xe7, 0x9e, 0xe5, 0x96, 0xa7, 0x43, 0xc6, 0x26, 0xbf, 0xbc, 0x94, 0xb9, 0x42, 0x28, 0xb4,
		0x74, 0xe1, 0x73, 0xbf, 0xda, 0xae, 0xd7, 0x08, 0x6e, 0x1d, 0xfd, 0xfc, 0x92, 0x28, 0xa8, 0x8e,
		0x7f, 0x3d, 0xd2, 0xc4, 0x49, 0x72, 0x7b, 0x55, 0x44, 0xbd, 0x29, 0x9c, 0x66, 0x04, 0x42, 0x51,
		0x10, 0x8a, 0x22, 0x1d, 0xf6, 0x47, 0xeb, 0xdd, 0x67, 0xc6, 0xbd, 0xc3, 0xee, 0x79, 0x16, 0x7c,
		0x8c, 0xf0, 0x0f, 0x39, 0xae, 0xbd, 0x0a, 0xd5, 0xda, 0xce, 0x4e, 0xa8, 0xa3, 0xca, 0xd1, 0x26,
		0xcb, 0x81, 0xca, 0x08, 0xaa, 0x15, 0x70, 0xeb, 0x8b, 0xb4, 0xc5, 0x0e, 0x34, 0x8a, 0xb8, 0xb5,
		0x2a, 0x94, 0x05, 0x94, 0xc5, 0x9b, 0x4f, 0x88, 0xb8, 0x35, 0x50, 0x72, 0xa0, 0xe4, 0x0a, 0x48,
		0xc9, 0x21, 0x6e, 0x0d, 0x36, 0x31, 0xe2, 0xd6, 0x70, 0x4a, 0xe0, 0x94, 0xc0, 0x29, 0x91, 0xe3,
		0x53, 0x02, 0x71, 0x6b, 0xd0, 0x39, 0xd0, 0x39, 0x1b, 0xa5, 0x73, 0x10, 0xb7, 0x86, 0xb8, 0x35,
		0xc4, 0xad, 0xc1, 0xec, 0x41, 0xdc, 0x1a, 0xe2, 0xd6, 0x00, 0x45, 0x00, 0x45, 0xb2, 0x85, 0x22,
		0x88, 0x5b, 0x43, 0xe0, 0x11, 0xe2, 0xd6, 0x16, 0xc0, 0x19, 0xc4, 0x07, 0x71, 0x6b, 0x00, 0xab,
		0x88, 0x5b, 0x4b, 0x0a, 0x26, 0x72, 0x10, 0xb7, 0xc6, 0x13, 0x41, 0xa1, 0x51, 0x84, 0xad, 0xa5,
		0xe8, 0x23, 0x91, 0x7e, 0x35, 0x68, 0xeb, 0x31, 0x85, 0x7d, 0x26, 0x52, 0xba, 0x4c, 0xd6, 0xa7,
		0x90, 0x65, 0xba, 0x0d, 0x2c, 0xb0, 0x61, 0xf3, 0xd2, 0x4c, 0xe5, 0x8d, 0x0d, 0x43, 0xdf, 0x59,
		0x25, 0x76, 0x8b, 0x94, 0xd6, 0xbe, 0xc6, 0x64, 0x8a, 0xfa, 0x8b, 0xfc, 0x13, 0x2a, 0xa3, 0xdc,
		0xa4, 0xcb, 0x9c, 0xef, 0xcc, 0x49, 0x51, 0x69, 0x72, 0x7c, 0x01, 0x8a, 0x4c, 0xa2, 0xc8, 0xe4,
		0xb4, 0x08, 0xf1, 0x34, 0x59, 0xf0, 0xaf, 0x43, 0x71, 0x49, 0x85, 0xbc, 0xd2, 0x46, 0x17, 0x97,
		0xe4, 0xe5, 0x5d, 0x27, 0xd1, 0x88, 0x5c, 0x54, 0x11, 0x62, 0xfa, 0x33, 0xa1, 0x4e, 0x11, 0xd3,
		0x9f, 0x66, 0xbd, 0x73, 0x13, 0xd3, 0x3f, 0xde, 0x63, 0x39, 0x08, 0xe9, 0x47, 0x31, 0x5a, 0x68,
		0x8b, 0x75, 0xd4, 0x16, 0xfc, 0x41, 0xfd, 0x54, 0x8e, 0x4b, 0xf8, 0x2c, 0xe1, 0xb3, 0xcc, 0x68,
		0x6b, 0xf1, 0x53, 0xa8, 0x5a, 0x4e, 0x7c, 0x96, 0x94, 0x1e, 0xcb, 0x23, 0x81, 0x31, 0xc2, 0x77,
		0xca, 0xbc, 0x83, 0x3c, 0x71, 0x60, 0xd9, 0xc2, 0x1c, 0x7d, 0x20, 0x18, 0x8b, 0xca, 0x3f, 0x17,
		0x0d, 0x98, 0xff, 0x80, 0xb3, 0xf1, 0x9f, 0x36, 0xc5, 0xf4, 0x51, 0xfa, 0x38, 0xa3, 0x51, 0x8b,
		0x11, 0x88, 0x16, 0xcd, 0xa3, 0x58, 0x0f, 0xf9, 0xf7, 0x39, 0xda, 0xa6, 0x07, 0x9b, 0xb3, 0x4d,
		0xe1, 0x4d, 0x2f, 0x5c, 0x30, 0x46, 0x61, 0x14, 0x17, 0xc4, 0xaa, 0x50, 0x41, 0x1a, 0x44, 0x8a,
		0x5c, 0x75, 0x90, 0x88, 0x92, 0xb8, 0xd8, 0x67, 0xdb, 0xf1, 0xc4, 0xcd, 0x4a, 0x7f, 0x14, 0x4e,
		0x84, 0x7e, 0xca, 0xee, 0x8d, 0x41, 0xdf, 0x13, 0xda, 0xa4, 0xa5, 0xfd, 0x3d, 0x3e, 0xf1, 0x68,
		0xc3, 0x10, 0x86, 0x21, 0x0c, 0x43, 0x38, 0xf5, 0x66, 0xd7, 0xad, 0xc1, 0xd3, 0x5d, 0xea, 0x26,
		0xa3, 0xcb, 0xb6, 0xd0, 0x81, 0xc0, 0x10, 0xd7, 0x86, 0xf5, 0x90, 0x0b, 0x4b, 0x58, 0xa4, 0xcf,
		0xf6, 0xc2, 0x60, 0xe3, 0xe6, 0xd1, 0xbb, 0xef, 0x69, 0xc6, 0xa3, 0x6a, 0x25, 0xbd, 0x28, 0x10,
		0xa2, 0xad, 0xa5, 0x89, 0x6d, 0x25, 0x4d, 0xb4, 0x6f, 0x77, 0xec, 0x52, 0x1c, 0xec, 0xef, 0xef,
		0xed, 0x6f, 0xde, 0x72, 0xac, 0x3b, 0x5e, 0x5a, 0x9b, 0xd0, 0xcc, 0x30, 0x36, 0x28, 0xfc, 0x5b,
		0x49, 0x25, 0xc1, 0x9b, 0xe0, 0x96, 0xe1, 0xdf, 0x39, 0x2a, 0x21, 0x88, 0x7a, 0x60, 0x92, 0x61,
		0x1f, 0x5c, 0x87, 0x19, 0x68, 0x13, 0xb8, 0x0e, 0x61, 0x31, 0xc1, 0x62, 0x82, 0xeb, 0x10, 0xae,
		0xc3, 0x44, 0x73, 0x04, 0xd7, 0xa1, 0x18, 0x53, 0x0a, 0xd7, 0x21, 0x5c, 0x87, 0x70, 0x1d, 0xc2,
		0xc7, 0x03, 0xd7, 0x21, 0x5c, 0x87, 0x70, 0x1d, 0xc2, 0x75, 0xb8, 0x4c, 0xa2, 0xe1, 0x3a, 0x84,
		0x21, 0x0c, 0x43, 0x18, 0x86, 0x70, 0xca, 0xcd, 0x0e, 0xd7, 0xe1, 0xcc, 0x83, 0xc0, 0x75, 0x08,
		0xd7, 0xe1, 0x1a, 0x2e, 0x07, 0x5c, 0x87, 0xfc, 0xc2, 0x99, 0xa5, 0xeb, 0x50, 0x41, 0x31, 0x97,
		0x39, 0xcf, 0x61, 0xf1, 0xaa, 0xb8, 0xa4, 0x23, 0x42, 0xd6, 0xa7, 0x88, 0x0b, 0xa7, 0x47, 0x75,
		0xe0, 0xa6, 0x3e, 0xed, 0x45, 0x60, 0xe1, 0x34, 0x14, 0xb4, 0x83, 0xa7, 0xd7, 0xef, 0x5e, 0x78,
		0x44, 0x9a, 0x02, 0x02, 0xce, 0xc0, 0x3e, 0x7f, 0x26, 0x72, 0xe0, 0x22, 0x9f, 0x2f, 0xaf, 0x33,
		0x7a, 0x35, 0xd2, 0x8d, 0xc2, 0x7e, 0x78, 0x8e, 0xa1, 0x0f, 0x2c, 0xd7, 0x33, 0xee, 0xfa, 0xe9,
		0x96, 0x71, 0x7a, 0xcd, 0xd2, 0xc2, 0x33, 0x01, 0x6f, 0x38, 0x87, 0x90, 0x6a, 0xc4, 0xbe, 0x70,
		0x21, 0x61, 0xd5, 0xa4, 0xf9, 0xc3, 0xd3, 0x0b, 0x2d, 0xc7, 0x01, 0xf9, 0x8e, 0xf6, 0x80, 0xcf,
		0x53, 0x15, 0xa8, 0xd9, 0x03, 0x56, 0x4e, 0xf1, 0xa7, 0xd9, 0x23, 0x75, 0xfd, 0xab, 0x3e, 0x25,
		0xab, 0x85, 0xc4, 0x37, 0x89, 0x52, 0x8a, 0x3d, 0x25, 0x8a, 0x49, 0x4a, 0x15, 0x83, 0x94, 0xba,
		0xd0, 0x53, 0x15, 0x85, 0x9e, 0xc8, 0xf9, 0x19, 0x65, 0x85, 0x9e, 0x0c, 0xa7, 0xfb, 0xc8, 0x53,
		0xe8, 0xc9, 0xbf, 0x2e, 0x5d, 0xa1, 0xa7, 0x5d, 0x14, 0x7a, 0x42, 0xa1, 0x27, 0x4e, 0xe2, 0x2f,
		0x5a, 0xaf, 0x9e, 0xfd, 0x64, 0x98, 0x96, 0x9e, 0xb2, 0x3d, 0x18, 0x8f, 0x5f, 0xb8, 0x74, 0xc6,
		0xac, 0x07, 0xff, 0xcc, 0x90, 0x8e, 0x15, 0x45, 0xa8, 0xba, 0x88, 0x0f, 0xaa, 0x70, 0x42, 0x32,
		0x2a, 0xee, 0x47, 0x9c, 0xeb, 0xe1, 0xf1, 0x15, 0x89, 0x50, 0x6b, 0xd1, 0xd4, 0x55, 0xf7, 0xf7,
		0x8a, 0x3f, 0x79, 0xb2, 0x70, 0x71, 0x8a, 0x1d, 0xc3, 0xeb, 0xdb, 0x2e, 0x6d, 0x6d, 0x6d, 0x6d,
		0xdd, 0x1a, 0xfa, 0x7f, 0xeb, 0xfa, 0x7f, 0x76, 0xf5, 0xa3, 0x4e, 0x7b, 0xea, 0x97, 0x6f, 0xdf,
		0xf4, 0x4e, 0x7b, 0xfb, 0xe7, 0xee, 0xfb, 0x83, 0xca, 0x70, 0xfb, 0x9f, 0x93, 0xcf, 0xdb, 0xdf,
		0xbe, 0xed, 0x6c, 0xff, 0x9d, 0xe7, 0xaa, 0x7f, 0x6e, 0xbf, 0x8e, 0xae, 0x2d, 0xc9, 0x99, 0x02,
		0x11, 0x1f, 0x7f, 0xe9, 0x8f, 0x2c, 0x26, 0x22, 0x85, 0x17, 0x9b, 0xd6, 0x48, 0x02, 0x7f, 0x05,
		0xfe, 0x6a, 0x5d, 0xf8, 0xab, 0x22, 0xdb, 0xbc, 0x09, 0x99, 0xf9, 0x34, 0x16, 0xef, 0x6a, 0xea,
		0xfd, 0x0d, 0x7b, 0xf7, 0x5d, 0x8a, 0x19, 0x4a, 0x3a, 0x33, 0x69, 0x66, 0xa4, 0xf4, 0xa6, 0xc1,
		0x9d, 0x70, 0x0e, 0x96, 0xbf, 0xfd, 0xe2, 0xbb, 0x2d, 0x79, 0xaf, 0x52, 0xdf, 0xec, 0x32, 0xcb,
		0x8d, 0xdf, 0xe5, 0x93, 0x1a, 0x8f, 0xe1, 0x17, 0x63, 0xe6, 0xe6, 0x6d, 0x4b, 0x7e, 0xa5, 0xa1,
		0x95, 0xc4, 0xb0, 0x9a, 0x36, 0xa4, 0xde, 0x7e, 0x9a, 0x34, 0xea, 0x2b, 0xb5, 0xb1, 0x94, 0x5a,
		0x25, 0xcd, 0x1b, 0x43, 0xe3, 0x67, 0x27, 0x92, 0xca, 0x55, 0x16, 0xf8, 0x78, 0xe5, 0x52, 0x94,
		0xe9, 0x8e, 0xae, 0x28, 0x46, 0x9d, 0xee, 0xd5, 0xc2, 0x50, 0x5c, 0x0a, 0x67, 0xa5, 0xb0, 0x28,
		0xa6, 0x71, 0x56, 0xe9, 0x0b, 0x4e, 0xfd, 0xc1, 0x29, 0x5a, 0x99, 0x11, 0x39, 0xe9, 0xde, 0x66,
		0xbd, 0xc8, 0x9c, 0xc4, 0x22, 0x29, 0x87, 0xd0, 0x49, 0x5d, 0xb9, 0x1b, 0x95, 0x78, 0xa5, 0x0a,
		0x36, 0x85, 0xbd, 0xa0, 0x15, 0x22, 0xa5, 0x36, 0xb5, 0xe0, 0x73, 0x12, 0x26, 0xca, 0xd2, 0x6a,
		0xbb, 0x21, 0x0d, 0x24, 0x9a, 0x55, 0x1b, 0x8c, 0x93, 0x65, 0x00, 0xb4, 0x4f, 0x64, 0x21, 0x06,
		0x3a, 0x93, 0x8d, 0x4f, 0xa5, 0x00, 0xc8, 0x15, 0x01, 0xb9, 0x42, 0x20, 0x57, 0x0c, 0x7c, 0x0a,
		0x42, 0x80, 0xc4, 0xd6, 0x68, 0x63, 0xa1, 0xef, 0x6c, 0xbb, 0xcf, 0x0c, 0x8b, 0x22, 0x23, 0xb8,
		0x92, 0xe3, 0x2c, 0x91, 0x70, 0x7d, 0xf5, 0x9e, 0xe1, 0x19, 0xe2, 0xea, 0x72, 0x66, 0x34, 0x28,
		0x1f, 0x28, 0x1f, 0x28, 0x1f, 0x3e, 0x4e, 0xdb, 0x32, 0x6d, 0x0b, 0xc5, 0x08, 0xe6, 0x34, 0xb2,
		0x69, 0x19, 0xce, 0x0b, 0x61, 0x7e, 0xf3, 0xd1, 0x9a, 0xa4, 0x7f, 0xbb, 0x9e, 0x63, 0x5a, 0x0f,
		0xa4, 0x89, 0xdf, 0xc8, 0xa7, 0x8c, 0x3d, 0x29, 0xcd, 0x1e, 0xdd, 0x39, 0x69, 0xf6, 0x70, 0x4a,
		0xe2, 0x94, 0xc4, 0x29, 0x99, 0x91, 0xde, 0x13, 0xd4, 0x77, 0x9b, 0x9a, 0x97, 0x14, 0x0a, 0xdc,
		0xf8, 0x6f, 0x37, 0xfa, 0x40, 0x76, 0x61, 0xc3, 0xb3, 0xe0, 0x3e, 0xe3, 0xbf, 0xdd, 0xe8, 0x83,
		0xfc, 0x94, 0x37, 0x14, 0x38, 0x25, 0xc4, 0x4f, 0x87, 0xa2, 0x76, 0x54, 0x04, 0x33, 0x2b, 0x41,
		0xbb, 0xa3, 0xb3, 0xe2, 0x72, 0x91, 0x5d, 0xe8, 0xac, 0x38, 0xb5, 0xdd, 0x50, 0x1f, 0x95, 0x4b,
		0x6d, 0x54, 0xa1, 0x36, 0xa0, 0x36, 0x12, 0x3d, 0x25, 0x1c, 0x3a, 0x70, 0xe8, 0xc0, 0x5a, 0x84,
		0xb5, 0x98, 0x81, 0xb5, 0xb8, 0x21, 0x0e, 0x9d, 0x1e, 0x73, 0xbb, 0x8e, 0xf9, 0xcc, 0x6d, 0x05,
		0xce, 0xcc, 0xd9, 0xf4, 0x60, 0x50, 0x3d, 0x50, 0x3d, 0x50, 0x3d, 0x9b, 0x42, 0x54, 0x71, 0x68,
		0x1e, 0xf6, 0xe3, 0xd9, 0x74, 0x7c, 0xfa, 0x49, 0xef, 0xf1, 0xd8, 0x30, 0x0b, 0xd3, 0x36, 0x3f,
		0x20, 0x34, 0x10, 0x34, 0x10, 0x34, 0x10, 0x97, 0xdc, 0x0c, 0x4c, 0xcb, 0x3b, 0xa8, 0x11, 0x68,
		0xa0, 0x0f, 0x28, 0xea, 0x37, 0x37, 0x18, 0x8a, 0xfa, 0x09, 0x2d, 0x85, 0x8c, 0xa2, 0x7e, 0x62,
		0x49, 0x89, 0xeb, 0xb2, 0x3a, 0xf0, 0xe1, 0x2f, 0x87, 0x28, 0xac, 0x47, 0x04, 0x4d, 0x18, 0xbc,
		0xf7, 0x80, 0x24, 0x80, 0x24, 0xe0, 0x63, 0xde, 0x7a, 0x46, 0xd3, 0xd2, 0x07, 0x2e, 0x81, 0x31,
		0x14, 0x8e, 0x03, 0x85, 0x03, 0x85, 0x03, 0x85, 0x03, 0x85, 0xf3, 0x86, 0xc2, 0x71, 0xdd, 0x01,
		0x23, 0x62, 0x60, 0xa6, 0xc6, 0x82, 0xe2, 0x81, 0xe2, 0x81, 0xe2, 0x01, 0xf9, 0x02, 0xf2, 0x05,
		0xe4, 0x0b, 0xc8, 0x17, 0x90, 0x2f, 0x48, 0x35, 0x04, 0x38, 0x01, 0x38, 0x59, 0x03, 0x70, 0x82,
		0x54, 0xc3, 0x25, 0xa6, 0x22, 0x52, 0x0d, 0x97, 0x4f, 0x0c, 0x52, 0x0d, 0x55, 0x9e, 0x94, 0x48,
		0x35, 0xc4, 0x29, 0x89, 0x53, 0x12, 0x11, 0x5c, 0xaa, 0xf4, 0xce, 0x77, 0xa3, 0x4f, 0xa1, 0x72,
		0x82, 0x61, 0xa0, 0x6d, 0xa0, 0x6d, 0xa0, 0x6d, 0xf8, 0xe0, 0x67, 0x01, 0x3d, 0x15, 0xeb, 0x9d,
		0xd9, 0x2c, 0xb9, 0xef, 0x62, 0x6c, 0x62, 0x73, 0xf1, 0xba, 0x2f, 0xa6, 0xc6, 0x9b, 0xeb, 0x53,
		0xc0, 0xde, 0x1a, 0xf4, 0xfb, 0x02, 0x65, 0xd2, 0x93, 0x33, 0x8f, 0x79, 0xe9, 0x9f, 0x16, 0xb7,
		0x5d, 0xe8, 0xbb, 0xa8, 0xc5, 0x6d, 0x90, 0xf5, 0xee, 0xa5, 0x36, 0x3f, 0xbf, 0x74, 0xe5, 0xe5,
		0xe7, 0xe7, 0xb3, 0x98, 0x55, 0xe6, 0x13, 0x94, 0x4a, 0x4f, 0x35, 0x1d, 0x42, 0xd5, 0xe6, 0xed,
		0x87, 0x87, 0x91, 0x89, 0xb0, 0xba, 0xda, 0x7c, 0xf8, 0xc5, 0x9c, 0x54, 0x9b, 0xb7, 0x1f, 0x8a,
		0x59, 0x69, 0xde, 0x7e, 0x50, 0x56, 0x65, 0xbe, 0x6b, 0x5b, 0xae, 0xdd, 0x4f, 0xd1, 0x20, 0x70,
		0x7c, 0x41, 0x41, 0x6a, 0xcc, 0xdb, 0x0f, 0xeb, 0x59, 0x5f, 0xde, 0x7e, 0xc8, 0x4d, 0x6d, 0xf9,
		0x94, 0x85, 0xba, 0xf9, 0x0a, 0x74, 0xe7, 0xbe, 0xb2, 0xbc, 0xfd, 0xb0, 0x99, 0x55, 0xe5, 0xed,
		0x87, 0xac, 0x2a, 0xca, 0x4b, 0x47, 0x80, 0xc1, 0x61, 0x56, 0x0e, 0x35, 0x5e, 0xfa, 0x0a, 0x50,
		0x49, 0x0f, 0xe8, 0xe0, 0x3e, 0x9d, 0x93, 0xe0, 0x3e, 0xa9, 0x0a, 0x3e, 0x25, 0x40, 0x7f, 0x49,
		0x70, 0x15, 0xeb, 0xb3, 0xae, 0x67, 0x3b, 0x2e, 0x4f, 0x9f, 0xcf, 0xf1, 0xa5, 0xd8, 0xc7, 0xd8,
		0xc7, 0x5c, 0xfb, 0x38, 0x75, 0x67, 0x88, 0xb1, 0xcc, 0x09, 0x54, 0x12, 0x1a, 0x8f, 0xb0, 0x21,
		0xdd, 0x21, 0xec, 0x07, 0x14, 0x12, 0x12, 0x15, 0x7a, 0x35, 0x6c, 0x20, 0x77, 0x11, 0x21, 0xce,
		0x76, 0x29, 0x62, 0xa8, 0x8c, 0x68, 0x83, 0xe4, 0xd7, 0xc3, 0x61, 0x3f, 0xc0, 0xbb, 0xa1, 0x6a,
		0x63, 0x65, 0xe3, 0xd9, 0xe0, 0xdd, 0x70, 0xd1, 0x00, 0xf7, 0x46, 0xd7, 0xec, 0x9b, 0xde, 0x8b,
		0xf8, 0x32, 0x8f, 0x05, 0x2f, 0x1a, 0x51, 0x70, 0x51, 0xc4, 0xdc, 0x8d, 0x64, 0x9b, 0x92, 0x72,
		0x73, 0xd2, 0x6f, 0x52, 0xea, 0xcd, 0x2a, 0x6d, 0xd3, 0x4a, 0xdb, 0xbc, 0x52, 0x36, 0xb1, 0xd8,
		0x66, 0x16, 0xdc, 0xd4, 0xd1, 0x1b, 0x09, 0xbb, 0x2d, 0x17, 0xe4, 0xcd, 0xec, 0x31, 0xcb, 0x33,
		0xbd, 0x17, 0xbe, 0xea, 0x9e, 0xb1, 0xe7, 0x25, 0x41, 0x14, 0x79, 0xa9, 0x19, 0x3e, 0xda, 0x47,
		0xc3, 0x25, 0x14, 0xe3, 0xf1, 0x8b, 0xdf, 0xfc, 0x7e, 0x73, 0x76, 0xf9, 0xb9, 0xf3, 0xa9, 0x7e,
		0xd2, 0x3c, 0x6b, 0xb6, 0x7e, 0xa7, 0x12, 0x66, 0x3f, 0xb2, 0xde, 0x15, 0x8e, 0x8f, 0x9c, 0xfe,
		0xf3, 0x93, 0x6c, 0xa4, 0x99, 0x09, 0xa8, 0x9f, 0x9d, 0x95, 0xc8, 0x46, 0x1e, 0xbe, 0xcf, 0xfd,
		0xeb, 0x7e, 0x39, 0x6d, 0xb6, 0x36, 0xeb, 0x85, 0x5b, 0xbf, 0x6e, 0xda, 0xfb, 0x5e, 0x5d, 0x37,
		0xbf, 0x6e, 0xd2, 0x3b, 0x9f, 0x5c, 0x5e, 0xdc, 0x5c, 0x9e, 0x35, 0x36, 0xe9, 0x95, 0xff, 0xd5,
		0xb8, 0xbe, 0x68, 0x6c, 0x94, 0xe6, 0x3a, 0xbb, 0x3c, 0xa9, 0x9f, 0xed, 0x6e, 0xdc, 0x1b, 0x57,
		0x36, 0xee, 0x8d, 0xab, 0x1b, 0xf7, 0xc6, 0x7b, 0x1b, 0xf7, 0xc6, 0xb5, 0x8d, 0x7b, 0xe3, 0xfd,
		0x8d, 0x7b, 0xe3, 0x83, 0x8d, 0x7b, 0xe3, 0xc3, 0x4d, 0x7a, 0xe3, 0xf3, 0x7a, 0x73, 0xa3, 0xf0,
		0xc7, 0x45, 0xeb, 0x6a, 0x93, 0x5e, 0x37, 0x20, 0x06, 0x36, 0xec, 0x8d, 0x5b, 0x8d, 0xf3, 0xce,
		0x69, 0xbd, 0x71, 0x7e, 0x79, 0xb1, 0x49, 0x2f, 0xfe, 0xe5, 0xa6, 0x71, 0x4d, 0xf8, 0xbe, 0x24,
		0x23, 0xb5, 0x0b, 0x5b, 0xcf, 0x40, 0x60, 0xbd, 0x4b, 0x2e, 0xfb, 0xce, 0x1c, 0x52, 0xa7, 0x43,
		0x34, 0x22, 0x9c, 0x0e, 0x2b, 0xe7, 0x0a, 0x4e, 0x07, 0x38, 0x1d, 0xe2, 0xdf, 0x88, 0xde, 0xe9,
		0xe0, 0xbe, 0xb8, 0x7d, 0xfb, 0x41, 0x27, 0xda, 0xa2, 0xd3, 0xdb, 0xb4, 0x52, 0x23, 0x18, 0xab,
		0x61, 0x0d, 0x9e, 0xe8, 0x44, 0xb8, 0x65, 0xdf, 0x04, 0x09, 0xa9, 0xc7, 0x84, 0xc7, 0x58, 0x69,
		0x77, 0x34, 0x8f, 0x8d, 0xf3, 0xc6, 0xf5, 0xe7, 0xc6, 0xc5, 0x09, 0x95, 0xf7, 0xc2, 0x1f, 0xb9,
		0x12, 0x38, 0x07, 0x1a, 0xd7, 0x2d, 0xca, 0x51, 0xab, 0x3e, 0x5d, 0x79, 0xdd, 0x6c, 0x35, 0x4f,
		0xea, 0x67, 0x94, 0x03, 0xef, 0xf9, 0x13, 0x71, 0x7d, 0x7d, 0x79, 0x4d, 0x39, 0x6a, 0x6d, 0x34,
		0xea, 0xbf, 0xeb, 0xd7, 0x17, 0xcd, 0x8b, 0xcf, 0x94, 0xe3, 0xee, 0xfb, 0x80, 0xfa, 0xb2, 0xd5,
		0x3c, 0x69, 0x50, 0x0e, 0x7b, 0x30, 0x1a, 0xb6, 0x79, 0xf1, 0xe9, 0xf2, 0xfa, 0xbc, 0xde, 0x6a,
		0x5e, 0x5e, 0xd0, 0x4e, 0xf1, 0xe1, 0x68, 0xf4, 0xd3, 0xc6, 0xc7, 0x2f, 0x44, 0xa8, 0x98, 0x08,
		0x18, 0x96, 0x5a, 0x76, 0xd3, 0xd7, 0xb3, 0x84, 0xdb, 0x2a, 0x90, 0x7b, 0xee, 0x80, 0x9f, 0xe5,
		0x47, 0xff, 0x58, 0xea, 0x53, 0x37, 0xdf, 0x7b, 0x73, 0xd8, 0x60, 0x41, 0x8e, 0xb5, 0x43, 0xc2,
		0x31, 0x27, 0x0a, 0x85, 0xac, 0x5e, 0x57, 0x30, 0xae, 0xbf, 0x3f, 0x8f, 0xb5, 0x3d, 0xc2, 0x31,
		0x67, 0xc5, 0xfd, 0x58, 0x3b, 0x20, 0x1c, 0x3b, 0xdc, 0xa1, 0xc7, 0xda, 0x3e, 0xe1, 0xa0, 0x63,
		0x75, 0x72, 0xac, 0xd5, 0xde, 0xe5, 0xc3, 0xde, 0xc8, 0xcc, 0x52, 0x50, 0x1a, 0x11, 0x25, 0x98,
		0x90, 0x3c, 0xb1, 0x51, 0x38, 0xe3, 0xec, 0xa3, 0x90, 0xf2, 0xe8, 0xa7, 0xb2, 0x50, 0x50, 0xa2,
		0xc6, 0x1f, 0x8a, 0x7f, 0x33, 0x7e, 0x94, 0xe8, 0x27, 0xae, 0x76, 0xcc, 0xfc, 0xeb, 0xc8, 0x53,
		0xe9, 0x42, 0x38, 0x20, 0x8d, 0x2a, 0x10, 0x6d, 0xed, 0xea, 0x5d, 0x20, 0x1a, 0x54, 0xbd, 0x4d,
		0x57, 0xd4, 0x3a, 0x17, 0xfc, 0x2d, 0xa0, 0x17, 0x6c, 0x34, 0x01, 0xc4, 0xb2, 0xa4, 0x25, 0x74,
		0xb4, 0xa9, 0x73, 0xac, 0xc2, 0x84, 0xe9, 0x2d, 0x2a, 0x5a, 0x0b, 0x2a, 0x0c, 0x2a, 0x0c, 0x2a,
		0x2c, 0x6f, 0x2a, 0x2c, 0xda, 0xd4, 0x79, 0x56, 0x61, 0x1e, 0x49, 0x97, 0x02, 0xde, 0xe2, 0x3c,
		0x1a, 0x65, 0x36, 0x4e, 0x15, 0xca, 0x0b, 0xca, 0x4b, 0x89, 0xf2, 0x42, 0x36, 0x8e, 0x6c, 0x44,
		0x41, 0xb9, 0x39, 0xe9, 0x37, 0x29, 0xf5, 0x66, 0x95, 0xb6, 0x69, 0xa5, 0x6d, 0x5e, 0x29, 0x9b,
		0x98, 0x88, 0xc0, 0x42, 0x36, 0x4e, 0xf2, 0xb1, 0x90, 0x8d, 0x13, 0xfc, 0x41, 0x36, 0x0e, 0xc9,
		0xeb, 0x22, 0x1b, 0x67, 0xfd, 0xdf, 0x17, 0xd9, 0x38, 0x6b, 0xff, 0xca, 0xc8, 0xc6, 0xd9, 0x90,
		0x37, 0x46, 0x36, 0xce, 0xfa, 0xbf, 0x31, 0xb2, 0x71, 0xd6, 0xff, 0x8d, 0x91, 0x8d, 0xb3, 0xfe,
		0x6f, 0x8c, 0x6c, 0x9c, 0x35, 0x7e, 0x5f, 0x64, 0xe3, 0xac, 0xff, 0x1b, 0x23, 0x1b, 0x87, 0xe0,
		0x7d, 0x91, 0x8d, 0xc3, 0xbd, 0x22, 0xc8, 0xc6, 0x49, 0x3a, 0x10, 0x9c, 0x0e, 0x24, 0x03, 0xc3,
		0xe9, 0x90, 0xf8, 0x8d, 0x90, 0x8d, 0x23, 0x36, 0x7d, 0xc8, 0xc6, 0x41, 0x36, 0xce, 0x78, 0x5c,
		0x64, 0xe3, 0x20, 0x1b, 0x87, 0x68, 0x58, 0x64, 0xe3, 0x20, 0x1b, 0xa7, 0xa8, 0x96, 0xc2, 0xa6,
		0x67, 0xe3, 0x88, 0xc4, 0x24, 0x6a, 0xa4, 0xc9, 0x38, 0x1c, 0x2d, 0x04, 0xf9, 0x57, 0x51, 0x6e,
		0xe1, 0xf7, 0xb0, 0xc5, 0xe0, 0x38, 0xda, 0x4c, 0xe3, 0x84, 0x97, 0x7c, 0x1d, 0x07, 0xa3, 0xab,
		0xb9, 0x3b, 0x0f, 0x4e, 0x46, 0x20, 0xec, 0x40, 0x18, 0x0d, 0xca, 0xdf, 0x89, 0x70, 0x71, 0x88,
		0xd4, 0x1d, 0x09, 0x79, 0x57, 0x54, 0x59, 0x63, 0xcf, 0x95, 0x3b, 0x56, 0x62, 0x73, 0xcf, 0x95,
		0x7b, 0xb4, 0x18, 0x0d, 0x3e, 0x55, 0xf7, 0x12, 0x4a, 0xdb, 0x36, 0x87, 0x62, 0x49, 0x94, 0x76,
		0x14, 0x4a, 0x15, 0xfd, 0xce, 0x15, 0xed, 0xce, 0xdd, 0x49, 0xa8, 0x8a, 0x4e, 0x42, 0x94, 0x5c,
		0xd2, 0x06, 0x77, 0x04, 0x4b, 0x0b, 0x84, 0x78, 0x77, 0x70, 0x72, 0x94, 0x53, 0xd8, 0x6e, 0xb0,
		0xb3, 0x33, 0x4b, 0xd8, 0x0c, 0x76, 0x76, 0x2e, 0xb9, 0x7b, 0xc1, 0xbe, 0xd1, 0x47, 0xf4, 0xde,
		0xec, 0x33, 0x37, 0x79, 0x03, 0xcd, 0xe0, 0xeb, 0x68, 0x9f, 0x89, 0xf6, 0x99, 0x13, 0xf1, 0x49,
		0x7f, 0x52, 0xfa, 0x57, 0xa1, 0xe5, 0x1e, 0x0e, 0x4a, 0xae, 0x83, 0x32, 0x75, 0xcb, 0x3d, 0xce,
		0xee, 0x62, 0x62, 0x5d, 0xc5, 0xd0, 0x6e, 0x4f, 0xa9, 0x80, 0x93, 0x09, 0x3a, 0x89, 0xc0, 0xab,
		0x61, 0x5d, 0xb8, 0xdb, 0xed, 0x8d, 0xf4, 0xef, 0x08, 0x7b, 0xe8, 0xcf, 0x62, 0x1e, 0xed, 0x19,
		0x85, 0x3e, 0x3d, 0x20, 0xea, 0x15, 0x20, 0xe5, 0x57, 0xf1, 0x56, 0xcb, 0x86, 0xe0, 0xa6, 0xab,
		0x57, 0xe0, 0x06, 0x9e, 0x6a, 0x82, 0x72, 0x05, 0x1f, 0x04, 0xc6, 0x38, 0x63, 0xd6, 0x83, 0x6f,
		0xee, 0x88, 0xe5, 0xd0, 0x11, 0x04, 0x2c, 0x9c, 0x9b, 0x16, 0x5d, 0x20, 0x80, 0x9f, 0x1a, 0x48,
		0xe7, 0x58, 0x2b, 0x7d, 0x72, 0x8c, 0xee, 0xc8, 0x8e, 0x3c, 0x35, 0x1f, 0x4c, 0x5e, 0xb2, 0x79,
		0xb9, 0x34, 0xb0, 0x07, 0xc3, 0x33, 0xbf, 0x33, 0x2e, 0x8e, 0x97, 0x50, 0xb0, 0xe7, 0x59, 0x71,
		0xfa, 0xa5, 0xa8, 0xee, 0xef, 0x6f, 0xde, 0x62, 0x64, 0xe4, 0xf4, 0x6b, 0xe7, 0xb8, 0xd4, 0xc8,
		0x93, 0xf1, 0x43, 0xb7, 0x9f, 0x99, 0xa5, 0x7b, 0xe6, 0x13, 0x41, 0xc9, 0x91, 0xd9, 0xe1, 0x78,
		0x0b, 0x39, 0xb0, 0x7b, 0x63, 0xd0, 0xf7, 0x84, 0xd4, 0x60, 0xa9, 0x52, 0xab, 0x71, 0x66, 0x8e,
		0xb5, 0x01, 0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x52, 0xc9, 0xcb, 0xc0, 0xb4, 0xbc, 0xbd, 0x2a, 0x01,
		0x7c, 0x12, 0x29, 0xf6, 0x74, 0x6d, 0x58, 0x0f, 0x0c, 0xe0, 0x09, 0xe0, 0x49, 0x36, 0x78, 0xaa,
		0x55, 0x8f, 0x6a, 0x47, 0x07, 0x87, 0xd5, 0x23, 0x60, 0x28, 0x60, 0xa8, 0x00, 0xf4, 0xb8, 0xe6,
		0x7f, 0x89, 0xe0, 0x93, 0x3f, 0x52, 0xa6, 0xc8, 0x69, 0x77, 0x17, 0xc8, 0x09, 0xc8, 0x09, 0xc8,
		0x09, 0xc8, 0x09, 0xc8, 0x09, 0xc8, 0x09, 0xc8, 0x09, 0xc8, 0x49, 0x16, 0x72, 0x0a, 0x83, 0x7b,
		0x04, 0x51, 0x93, 0x3f, 0x0a, 0xa0, 0x07, 0xa0, 0x07, 0xa0, 0x47, 0x2a, 0x79, 0x81, 0xcf, 0x0b,
		0xe0, 0x03, 0x3e, 0x2f, 0xa0, 0x8e, 0x4d, 0x43, 0x1d, 0x8e, 0x4d, 0x53, 0x5f, 0x3f, 0x1c, 0x27,
		0x4b, 0xae, 0x06, 0x44, 0x0d, 0xd0, 0x12, 0xd0, 0x12, 0x88, 0x1a, 0x60, 0x25, 0x60, 0x25, 0x10,
		0x35, 0x80, 0x4c, 0xf4, 0x57, 0xe4, 0x3d, 0x73, 0xd9, 0x4f, 0x89, 0xfa, 0xff, 0xd9, 0xfb, 0xd6,
		0xa6, 0xb6, 0x95, 0x6c, 0xed, 0xef, 0xf9, 0x15, 0x2a, 0xd5, 0x54, 0x4d, 0x38, 0x27, 0x02, 0x5b,
		0xbe, 0x01, 0x55, 0xa7, 0x76, 0x39, 0xe0, 0x64, 0x53, 0xc3, 0xed, 0x05, 0x67, 0x66, 0xf6, 0x04,
		0x8f, 0x4b, 0xd8, 0x0d, 0xd1, 0x89, 0x2c, 0xf9, 0x48, 0x32, 0x13, 0x76, 0xc2, 0x7f, 0x7f, 0x4b,
		0xb2, 0x2d, 0xdf, 0x41, 0xea, 0x5e, 0x2d, 0x4b, 0xf2, 0xb3, 0x3f, 0xec, 0x10, 0x62, 0x2d, 0xab,
		0xbb, 0xd7, 0xe5, 0x59, 0xab, 0xd7, 0x25, 0xfc, 0x3f, 0xff, 0xa4, 0xcf, 0x84, 0xf5, 0x60, 0x9f,
		0x82, 0xaf, 0x0c, 0xff, 0xcf, 0x35, 0xd1, 0x33, 0x41, 0x9d, 0x72, 0x82, 0xd2, 0x16, 0xd1, 0xa4,
		0x72, 0xa2, 0x64, 0x72, 0x4e, 0x88, 0x88, 0xba, 0x0b, 0xd4, 0x5d, 0x48, 0x87, 0x74, 0x04, 0xc3,
		0xe9, 0x44, 0x86, 0xd2, 0xad, 0x9b, 0xa7, 0xb9, 0x24, 0x6b, 0x19, 0xd0, 0x23, 0x5c, 0x21, 0x79,
		0x91, 0x50, 0x3c, 0x34, 0x06, 0x34, 0x06, 0x34, 0x46, 0x5c, 0x8d, 0x11, 0x0a, 0x58, 0x06, 0xd4,
		0xc4, 0xac, 0x09, 0x09, 0xb7, 0xae, 0xe0, 0xe9, 0x63, 0xa2, 0xa0, 0xb4, 0x13, 0x0a, 0x43, 0xc9,
		0x6e, 0x69, 0x67, 0xd4, 0x35, 0x89, 0x60, 0xf8, 0x34, 0x77, 0xff, 0x25, 0x85, 0x72, 0x7e, 0x2b,
		0x42, 0xb5, 0x08, 0xd5, 0xa6, 0x13, 0xaa, 0x15, 0x9e, 0xdf, 0xca, 0xd9, 0x68, 0x60, 0x23, 0xdb,
		0x71, 0xc7, 0x13, 0x08, 0x05, 0x91, 0x4c, 0x20, 0x29, 0x05, 0x93, 0x5e, 0x40, 0xa9, 0x05, 0x55,
		0x9a, 0xc0, 0x4a, 0x13, 0x5c, 0x29, 0x02, 0x4c, 0x14, 0xd2, 0x14, 0xe4, 0x38, 0x51, 0xc1, 0x9e,
		0xc5, 0xb8, 0xa8, 0x06, 0x34, 0xaf, 0x06, 0xbd, 0x68, 0x06, 0x35, 0x0b, 0xfa, 0xb4, 0xd2, 0x85,
		0x5f, 0x86, 0x12, 0x90, 0xa7, 0x0c, 0x64, 0x29, 0x05, 0xe9, 0xca, 0x41, 0xba, 0x92, 0x90, 0xaa,
		0x2c, 0x68, 0x94, 0x06, 0x91, 0xf2, 0x10, 0xf7, 0xe1, 0xdf, 0xe4, 0x57, 0xda, 0x41, 0xd0, 0x2b,
		0x76, 0x9f, 0xb2, 0x91, 0xb6, 0x94, 0xc1, 0xd0, 0x2b, 0x1b, 0x22, 0x67, 0x40, 0x74, 0xf4, 0x35,
		0x12, 0x06, 0x45, 0x4f, 0xff, 0xfb, 0x49, 0x4e, 0x51, 0x91, 0x36, 0x38, 0x9a, 0x58, 0x40, 0xd2,
		0xdc, 0x06, 0xda, 0x81, 0xd2, 0x79, 0xde, 0x08, 0xca, 0x41, 0xd3, 0xf9, 0xde, 0x07, 0xda, 0x01,
		0xd4, 0xf9, 0xdd, 0x0b, 0xf2, 0xc1, 0xd4, 0xf9, 0xdd, 0x0a, 0xea, 0x81, 0xd5, 0xf9, 0xdd, 0x09,
		0xea, 0x41, 0xd6, 0x39, 0xdf, 0x89, 0x32, 0x76, 0x82, 0x7e, 0xf0, 0x75, 0xce, 0x77, 0xa2, 0x82,
		0x9d, 0xa0, 0x1f, 0x94, 0x9d, 0xf3, 0x9d, 0xa8, 0x61, 0x27, 0xe8, 0x07, 0x6b, 0xe7, 0x7c, 0x27,
		0x1a, 0xd8, 0x09, 0xea, 0x41, 0xdc, 0xf9, 0xdd, 0x07, 0xd2, 0x01, 0xdd, 0xf9, 0xdd, 0x06, 0xea,
		0xc1, 0xdd, 0xb9, 0xde, 0x09, 0x19, 0x03, 0xbd, 0xf3, 0xbb, 0x21, 0xb4, 0x83, 0xbe, 0xa3, 0x7d,
		0x20, 0xa5, 0xd8, 0xc9, 0x5a, 0xc8, 0x3a, 0x13, 0x65, 0x1d, 0x64, 0x83, 0xc1, 0x57, 0x78, 0x82,
		0x70, 0xfa, 0xb0, 0x82, 0xcb, 0x2e, 0x5c, 0x76, 0x4d, 0xbe, 0x00, 0x97, 0x5d, 0x39, 0xb8, 0xec,
		0xa2, 0x1f, 0x40, 0xbe, 0xac, 0x06, 0x28, 0x06, 0x91, 0x47, 0x34, 0x49, 0x07, 0x92, 0xcf, 0xb6,
		0x57, 0xc6, 0x60, 0xf2, 0x88, 0xba, 0xb4, 0x01, 0xe5, 0xd1, 0x37, 0x48, 0x19, 0x54, 0x1e, 0x51,
		0x97, 0x35, 0xb0, 0x3c, 0xfa, 0x02, 0x29, 0x83, 0xcb, 0x23, 0xea, 0x92, 0x06, 0x98, 0x47, 0xf4,
		0xe5, 0x0c, 0x32, 0x8f, 0xc8, 0x4b, 0x1d, 0x68, 0x1e, 0x7d, 0x0b, 0xf5, 0x60, 0x73, 0x49, 0x00,
		0x59, 0xc2, 0xa0, 0xf3, 0x99, 0x35, 0xa1, 0x1f, 0x78, 0x3e, 0x83, 0x30, 0x52, 0x06, 0x9f, 0x47,
		0xe4, 0x25, 0x0c, 0x40, 0x9f, 0x69, 0x5c, 0x39, 0x83, 0xd0, 0x67, 0xf4, 0xe9, 0x07, 0xa2, 0x47,
		0xb4, 0x25, 0x0e, 0x46, 0x9f, 0x19, 0x52, 0x09, 0x03, 0xd2, 0x23, 0xe2, 0xd4, 0x83, 0xd2, 0xe9,
		0xfd, 0xb5, 0x97, 0x62, 0x0c, 0x70, 0x17, 0x4d, 0xb2, 0xa6, 0x19, 0xac, 0x3e, 0xf3, 0xf5, 0xf8,
		0x8b, 0x9e, 0xd7, 0xcc, 0x58, 0x27, 0xc9, 0x5b, 0x56, 0x84, 0xea, 0xa2, 0xd7, 0xcc, 0x5b, 0xe7,
		0x29, 0x95, 0xa6, 0x3b, 0x75, 0x81, 0x13, 0xa7, 0x4b, 0x3b, 0xa5, 0x4e, 0x37, 0x25, 0xf2, 0xbc,
		0x91, 0x5b, 0x9e, 0x2d, 0x8f, 0x1a, 0xb9, 0xe5, 0x5b, 0xf0, 0x94, 0x09, 0x4a, 0x3d, 0x37, 0x7a,
		0xc4, 0x04, 0x38, 0x6d, 0x5d, 0xf1, 0xf8, 0x54, 0x89, 0xe4, 0x50, 0xa5, 0x92, 0x05, 0x37, 0xa9,
		0x83, 0x9a, 0x50, 0xa9, 0x50, 0xa9, 0x50, 0xa9, 0xbb, 0xaa, 0x52, 0x23, 0x25, 0x92, 0x47, 0x95,
		0x2a, 0xd4, 0xd4, 0x72, 0x55, 0x9f, 0x0a, 0xf4, 0xb6, 0x5c, 0x39, 0x2d, 0x2a, 0x65, 0xaa, 0x43,
		0x99, 0x42, 0x99, 0xe6, 0x4a, 0x99, 0xa2, 0xf6, 0x51, 0x94, 0x1c, 0xae, 0x83, 0x71, 0x1d, 0x9c,
		0x9a, 0xb2, 0xa0, 0x0b, 0x50, 0x2a, 0xa8, 0x7d, 0x44, 0xed, 0xe3, 0xca, 0xd7, 0xa0, 0xf6, 0x51,
		0x86, 0x80, 0xa4, 0xb9, 0x0d, 0xa8, 0x7d, 0x44, 0xed, 0x23, 0x6a, 0x1f, 0xd7, 0xef, 0x05, 0x6a,
		0x1f, 0x51, 0xfb, 0xb8, 0xb2, 0x13, 0xa8, 0x7d, 0x44, 0xed, 0xe3, 0xda, 0x9d, 0x40, 0xed, 0x23,
		0x6a, 0x1f, 0x51, 0xfb, 0xb8, 0x69, 0x27, 0x50, 0xfb, 0x88, 0xda, 0x47, 0xd4, 0x3e, 0xae, 0xd9,
		0x09, 0xd4, 0x3e, 0xa2, 0xf6, 0x11, 0xb5, 0x8f, 0xeb, 0x77, 0x02, 0xb5, 0x8f, 0xa8, 0x7d, 0xdc,
		0x36, 0x15, 0xd4, 0x3e, 0x0a, 0x90, 0xc3, 0x65, 0x17, 0x2e, 0xbb, 0xd6, 0x7e, 0x01, 0x2e, 0xbb,
		0x08, 0x64, 0x1f, 0xb5, 0x8f, 0xa8, 0x7d, 0x7c, 0x9d, 0x3a, 0x6a, 0x1f, 0x5f, 0xa5, 0x8f, 0xda,
		0xc7, 0xf4, 0x00, 0x32, 0x6a, 0x1f, 0xd7, 0x92, 0x47, 0xed, 0xe3, 0x7a, 0xda, 0xa8, 0x7d, 0x94,
		0xee, 0xaf, 0xa1, 0xf6, 0x31, 0xfb, 0xb5, 0x8f, 0x14, 0x69, 0xcb, 0x0a, 0x75, 0xe9, 0xe3, 0x6d,
		0xf8, 0x52, 0xdb, 0xca, 0x29, 0x4f, 0x75, 0x88, 0xcf, 0xdf, 0xd8, 0xf3, 0x7c, 0x4e, 0xa9, 0x22,
		0x08, 0xb6, 0xd5, 0x73, 0xd3, 0xf3, 0x9b, 0xbe, 0x2f, 0x38, 0x19, 0xe8, 0xc2, 0xb4, 0x5b, 0x16,
		0x0b, 0xfc, 0x27, 0xc1, 0xc9, 0xd3, 0xea, 0x85, 0xf1, 0x63, 0x8e, 0x52, 0xf9, 0xb0, 0x5a, 0xad,
		0x37, 0xaa, 0xd5, 0x52, 0xa3, 0xd2, 0x28, 0x1d, 0xd5, 0x6a, 0xe5, 0xba, 0x48, 0xca, 0x9b, 0x7a,
		0xe5, 0xf6, 0x99, 0xcb, 0xfa, 0x1f, 0x83, 0x2d, 0xb4, 0x47, 0x96, 0x45, 0x41, 0xea, 0x8b, 0xc7,
		0x5c, 0xa1, 0xd1, 0xd8, 0xbc, 0x9c, 0x40, 0xa4, 0x27, 0x68, 0xf5, 0x83, 0x2a, 0x54, 0x60, 0x41,
		0xa6, 0x11, 0x54, 0x8c, 0xfa, 0x26, 0x3a, 0xd9, 0x54, 0xa7, 0x7d, 0x47, 0x07, 0x99, 0x89, 0x09,
		0x9c, 0x5c, 0xf5, 0x3e, 0x42, 0xf5, 0x3d, 0xc2, 0x93, 0x37, 0x75, 0x4c, 0xde, 0xdc, 0x66, 0x74,
		0xb1, 0xc8, 0x93, 0x37, 0x45, 0xe7, 0xdf, 0xaf, 0xf0, 0x8d, 0xd8, 0x1c, 0xfc, 0x65, 0x91, 0x29,
		0x61, 0x0e, 0x27, 0xe6, 0x70, 0xe6, 0x03, 0xc2, 0x0b, 0x07, 0xe0, 0xe7, 0x6c, 0x4c, 0x18, 0x69,
		0x16, 0xe0, 0x97, 0xa9, 0xc1, 0x39, 0x14, 0xa0, 0x71, 0xce, 0xec, 0xc7, 0x10, 0x62, 0x88, 0xd5,
		0x5c, 0x10, 0xb8, 0xba, 0x17, 0xa6, 0x4d, 0x77, 0xa3, 0x19, 0x96, 0x92, 0x10, 0xde, 0x14, 0x7e,
		0x72, 0x8d, 0x5e, 0x80, 0xe5, 0x4e, 0xcd, 0x47, 0x53, 0xd4, 0x4d, 0x5a, 0xe4, 0x06, 0xf6, 0x68,
		0xf8, 0xe6, 0x13, 0x13, 0xf2, 0x42, 0x88, 0x03, 0xad, 0x81, 0x1f, 0x47, 0x7f, 0x14, 0x7a, 0xad,
		0xb6, 0x7b, 0x87, 0xb1, 0xa5, 0xb0, 0x46, 0x27, 0x2d, 0x17, 0x8a, 0x03, 0x38, 0x0e, 0x8c, 0x1f,
		0x5a, 0xe0, 0xcd, 0x68, 0xbe, 0x39, 0x60, 0xe2, 0x48, 0x64, 0x91, 0x1c, 0xef, 0x74, 0x65, 0xf6,
		0x60, 0x8c, 0x2c, 0x5f, 0x48, 0x0d, 0xaa, 0xe5, 0x6a, 0x95, 0x33, 0x93, 0xbf, 0x03, 0xf8, 0x04,
		0xf8, 0x04, 0xf8, 0x94, 0x88, 0x5f, 0x46, 0xa6, 0xed, 0x57, 0x74, 0x02, 0xf8, 0x24, 0x70, 0x57,
		0xa6, 0xde, 0x18, 0xf6, 0x23, 0x03, 0x78, 0x02, 0x78, 0x92, 0x0d, 0x9e, 0xaa, 0xfa, 0x51, 0xf5,
		0xa8, 0xde, 0xd0, 0x8f, 0x80, 0xa1, 0x80, 0xa1, 0xc6, 0xa0, 0xc7, 0x33, 0xff, 0x24, 0x82, 0x4f,
		0x21, 0xa5, 0xad, 0x22, 0xa7, 0x52, 0x09, 0xc8, 0x09, 0xc8, 0x09, 0xc8, 0x09, 0xc8, 0x09, 0xc8,
		0x09, 0xc8, 0x09, 0xc8, 0x09, 0xc8, 0x49, 0x16, 0x72, 0x0a, 0x43, 0x45, 0x96, 0xf3, 0xf8, 0x60,
		0x5a, 0x04, 0xe8, 0x69, 0x81, 0x1a, 0xa0, 0x08, 0xa0, 0x08, 0xa0, 0x48, 0x22, 0x7e, 0xc1, 0x1d,
		0x18, 0xc0, 0xc8, 0x2e, 0x81, 0x91, 0x5a, 0xb9, 0x0c, 0x14, 0x02, 0x14, 0xa2, 0x4e, 0xd2, 0xfa,
		0x04, 0xd1, 0x47, 0x48, 0x05, 0xa8, 0x03, 0xa8, 0x03, 0xa8, 0x03, 0xa8, 0x03, 0xa8, 0x03, 0xa8,
		0x63, 0xc3, 0x51, 0x20, 0xf3, 0x06, 0xa8, 0x23, 0xd8, 0x64, 0xd7, 0x11, 0x9a, 0x82, 0x11, 0xe9,
		0xcf, 0x09, 0x9d, 0x6d, 0xde, 0x18, 0xe1, 0xba, 0x08, 0x68, 0x09, 0x68, 0x29, 0x15, 0xb4, 0x84,
		0xeb, 0x22, 0x60, 0x25, 0x5c, 0x17, 0x01, 0x32, 0xe5, 0x1f, 0x32, 0x15, 0xb6, 0xde, 0x93, 0x13,
		0x8e, 0x09, 0xd4, 0x7a, 0x26, 0xaf, 0xd9, 0x4f, 0x50, 0xe7, 0xf9, 0x8e, 0xf0, 0x7c, 0xa6, 0x35,
		0xf7, 0xc1, 0xc6, 0x2a, 0x7c, 0x55, 0x6b, 0x7c, 0x65, 0xf6, 0xfc, 0x65, 0xf5, 0xa4, 0x65, 0xf4,
		0x02, 0x65, 0xf3, 0x02, 0x65, 0xf2, 0x71, 0x0f, 0x87, 0x53, 0x68, 0x04, 0x84, 0x45, 0x4d, 0x54,
		0x44, 0xcc, 0x27, 0x1e, 0xf1, 0x04, 0xe3, 0x6d, 0x36, 0x7f, 0xfd, 0x13, 0x6f, 0xec, 0x71, 0xd2,
		0xbd, 0xe5, 0xdb, 0xd3, 0x18, 0xdb, 0xc9, 0xb3, 0x8d, 0xaf, 0xef, 0xe0, 0xe6, 0x7d, 0x79, 0x65,
		0x4f, 0x54, 0x97, 0x0d, 0x1c, 0x9f, 0x69, 0x1e, 0x73, 0x9f, 0x98, 0xeb, 0xbd, 0xb9, 0x27, 0x33,
		0x6f, 0x77, 0xf1, 0xb9, 0x37, 0x76, 0x3d, 0x5e, 0x11, 0x78, 0x6c, 0x8f, 0x30, 0x89, 0xe7, 0x97,
		0xdc, 0xc3, 0x4b, 0xea, 0xc9, 0x71, 0x7b, 0x6c, 0xdc, 0x9e, 0x19, 0x97, 0x07, 0x26, 0x26, 0x37,
		0x71, 0x8b, 0xac, 0x17, 0x19, 0x23, 0xfe, 0x1e, 0xae, 0xe5, 0xab, 0xb8, 0xfb, 0x98, 0xac, 0xc7,
		0x40, 0xe2, 0xc0, 0x03, 0x4f, 0xa0, 0x81, 0x3f, 0xb0, 0xc0, 0x1b, 0x48, 0x10, 0x0e, 0x1c, 0x08,
		0x07, 0x0a, 0x84, 0x02, 0x03, 0xb4, 0xf8, 0x26, 0x69, 0x4f, 0x00, 0xb5, 0x37, 0xe5, 0x09, 0xce,
		0xde, 0x18, 0x93, 0xe7, 0x53, 0x6e, 0x8e, 0x51, 0x42, 0x73, 0x8c, 0x6d, 0x46, 0xc4, 0x8a, 0xdc,
		0x1c, 0xe3, 0x9b, 0xe3, 0xf9, 0xe2, 0x41, 0xf1, 0x90, 0x0a, 0xc2, 0xcb, 0x08, 0x2f, 0x23, 0xbc,
		0x9c, 0x96, 0xdc, 0x2c, 0x18, 0x96, 0x23, 0x01, 0x1a, 0x93, 0xd5, 0x6c, 0x3d, 0xb8, 0x1c, 0x0d,
		0x9e, 0x1d, 0x6a, 0x46, 0xbf, 0xef, 0x32, 0xcf, 0xa3, 0x68, 0xd6, 0x48, 0xb0, 0x43, 0xb4, 0x3b,
		0x45, 0xb7, 0x63, 0x6b, 0x76, 0xee, 0xa9, 0x4a, 0xb8, 0x77, 0x2b, 0x7b, 0x78, 0x48, 0x48, 0xf3,
		0xda, 0xf0, 0x7d, 0xe6, 0xda, 0xe4, 0xf3, 0x6e, 0xd5, 0xf7, 0x5f, 0x4b, 0xda, 0x51, 0xe7, 0xd7,
		0xd7, 0xb2, 0x76, 0xd4, 0x19, 0xff, 0x58, 0x0e, 0xff, 0xf8, 0xa9, 0xbf, 0xfc, 0xd2, 0xbf, 0x96,
		0xb4, 0xea, 0xe4, 0xb7, 0x7a, 0xed, 0x6b, 0x49, 0xab, 0x75, 0xf6, 0xde, 0xdf, 0xdd, 0xed, 0x27,
		0x7d, 0x66, 0xef, 0x67, 0xe5, 0x85, 0xae, 0x43, 0x74, 0x87, 0x72, 0x5b, 0xaf, 0x6e, 0xcf, 0xfe,
		0x29, 0x6d, 0x6f, 0xff, 0xfd, 0x3e, 0xad, 0xdd, 0xdd, 0xfb, 0x0b, 0xe1, 0xfe, 0x66, 0x69, 0x88,
		0x81, 0x1c, 0xb1, 0xaf, 0x43, 0xec, 0x43, 0x2e, 0x33, 0xb4, 0x87, 0xa6, 0xf6, 0xa9, 0xf3, 0xb3,
		0xfc, 0xa1, 0xfa, 0x72, 0xbc, 0xf7, 0xb3, 0xf1, 0xb2, 0xfc, 0xcb, 0x5f, 0xeb, 0x3e, 0x56, 0xfe,
		0xd0, 0x78, 0x39, 0xde, 0xf0, 0x2f, 0xf5, 0x97, 0xe3, 0x98, 0x34, 0x6a, 0x2f, 0xef, 0x57, 0x3e,
		0x1a, 0xfc, 0x5e, 0xdf, 0xf4, 0x40, 0x75, 0xc3, 0x03, 0x95, 0x4d, 0x0f, 0x54, 0x36, 0x3c, 0xb0,
		0xf1, 0x95, 0xf4, 0x0d, 0x0f, 0xd4, 0x5e, 0x7e, 0xad, 0x7c, 0xfe, 0xfd, 0xfa, 0x8f, 0xd6, 0x5f,
		0xf6, 0x7e, 0x6d, 0xfa, 0xb7, 0xc6, 0xcb, 0xaf, 0xe3, 0xbd, 0xbd, 0x1d, 0x56, 0x84, 0x60, 0xb7,
		0xf4, 0xd9, 0x2d, 0x7b, 0x86, 0xe1, 0xdd, 0x76, 0xdf, 0x43, 0xd0, 0x30, 0x11, 0x22, 0xf7, 0xbe,
		0x33, 0x30, 0x4c, 0x5b, 0x0b, 0x2f, 0x3b, 0x08, 0xa1, 0x3b, 0x81, 0xfd, 0xa1, 0xca, 0x37, 0x96,
		0x60, 0xc5, 0x29, 0x73, 0x6a, 0x22, 0xa2, 0xd3, 0x84, 0x0e, 0xe2, 0x29, 0x1e, 0xd2, 0xf2, 0x39,
		0x66, 0xac, 0x44, 0x9d, 0xd7, 0x41, 0x0c, 0xdf, 0x14, 0xea, 0xdc, 0x9b, 0x95, 0x23, 0xd3, 0x6b,
		0x15, 0x1c, 0x1a, 0x99, 0x6a, 0x25, 0x52, 0xd0, 0x04, 0x1a, 0x88, 0x1a, 0x8b, 0xa8, 0xef, 0xdf,
		0xbf, 0x7f, 0xff, 0xd5, 0xd0, 0xfe, 0x6c, 0x6a, 0xff, 0x2a, 0x69, 0x47, 0xdd, 0xce, 0xdc, 0x5f,
		0xee, 0xee, 0xb4, 0x6e, 0x67, 0xef, 0x67, 0xe9, 0x43, 0xbd, 0xfc, 0xb2, 0xf7, 0xdb, 0xec, 0xf7,
		0x9d, 0xbb, 0xbb, 0xfd, 0xbd, 0xff, 0xe2, 0x79, 0xea, 0xb7, 0xbd, 0x5f, 0xc1, 0xb3, 0x6a, 0x36,
		0xb6, 0x52, 0x06, 0xb6, 0x0b, 0x30, 0x5d, 0xfa, 0x1b, 0x4a, 0x80, 0x66, 0x3a, 0x48, 0xf6, 0x5f,
		0x39, 0x4b, 0x9b, 0xf9, 0xff, 0x71, 0xdc, 0xef, 0x9a, 0x69, 0x7b, 0xbe, 0x61, 0xf7, 0x08, 0xd2,
		0xfe, 0x57, 0x28, 0xe2, 0xb6, 0x03, 0xb7, 0x1d, 0x09, 0x08, 0xe2, 0xb6, 0x63, 0x55, 0x86, 0x34,
		0x97, 0x3d, 0x50, 0xdc, 0x7e, 0x88, 0xe4, 0xd6, 0x5f, 0x47, 0x29, 0x5f, 0x3d, 0xcd, 0x66, 0x7e,
		0xf0, 0x6a, 0xc7, 0xcb, 0xef, 0xe9, 0xbd, 0xf6, 0x8f, 0xf3, 0xff, 0x36, 0xce, 0x0e, 0x58, 0xf8,
		0x74, 0xb0, 0xf4, 0x2c, 0x57, 0x45, 0x8d, 0xf3, 0x70, 0x86, 0x8e, 0x4b, 0x70, 0x0b, 0x3c, 0x4f,
		0x6c, 0x9b, 0xf5, 0x51, 0xb5, 0x72, 0x15, 0x15, 0x52, 0x50, 0xea, 0x50, 0xea, 0x69, 0x28, 0xf5,
		0x40, 0xda, 0x35, 0x7b, 0x34, 0xb8, 0x67, 0x2e, 0x81, 0x2e, 0xaf, 0xa3, 0x4c, 0x6a, 0x43, 0x5c,
		0x00, 0x65, 0x52, 0xdb, 0x0e, 0xd5, 0x44, 0x47, 0x51, 0xaf, 0xd5, 0x2a, 0xa8, 0x90, 0x82, 0x9f,
		0xa9, 0xa8, 0x5e, 0x68, 0xea, 0xa2, 0xcb, 0x57, 0x61, 0x04, 0xb5, 0x44, 0x0f, 0x70, 0x04, 0x70,
		0x04, 0x70, 0x24, 0x11, 0xbf, 0x90, 0x64, 0x8f, 0x15, 0x34, 0xaf, 0x8e, 0x34, 0x3b, 0x8c, 0xf4,
		0x7a, 0x8e, 0x3e, 0x38, 0x9e, 0x9b, 0x2c, 0xb0, 0x4c, 0x07, 0xc4, 0x73, 0x94, 0xed, 0x55, 0x94,
		0x4b, 0x74, 0xe2, 0x6c, 0xae, 0x8c, 0x8b, 0x29, 0xd2, 0x68, 0x72, 0x9b, 0xb5, 0x95, 0x79, 0xc5,
		0x05, 0xb6, 0xca, 0x65, 0x76, 0x56, 0x07, 0x9d, 0x38, 0xf8, 0x0d, 0x53, 0xea, 0x9d, 0x38, 0x16,
		0x0b, 0xc4, 0x17, 0xff, 0x7a, 0xc0, 0x55, 0x2d, 0xa9, 0x24, 0x2f, 0x9b, 0xbf, 0x09, 0xbf, 0xf5,
		0x76, 0xfc, 0x0e, 0x0b, 0x7f, 0xeb, 0x4e, 0x9c, 0xd9, 0x0c, 0x4c, 0x65, 0xe7, 0xaa, 0xb4, 0x13,
		0xa9, 0x14, 0xe2, 0x8c, 0x03, 0xa0, 0xec, 0x14, 0x65, 0xa7, 0xd2, 0xfd, 0xf6, 0xe8, 0xbc, 0x2d,
		0x66, 0x3c, 0xf0, 0x5d, 0x03, 0x8b, 0x5c, 0xff, 0x46, 0xd7, 0xbe, 0xfb, 0xfb, 0x13, 0x25, 0x75,
		0x10, 0x0a, 0x58, 0x06, 0xd4, 0x84, 0xc7, 0x2c, 0xd6, 0xf3, 0x1d, 0xd7, 0xe3, 0xd7, 0x15, 0x33,
		0x12, 0xa8, 0x53, 0x87, 0xc2, 0xc8, 0x94, 0xc2, 0xe0, 0xae, 0x53, 0x9f, 0xf2, 0x34, 0x41, 0x8c,
		0x7d, 0x4a, 0x49, 0x2c, 0xba, 0x5e, 0x46, 0x74, 0x1d, 0xd1, 0xf5, 0x7c, 0x44, 0xd7, 0x79, 0x85,
		0x2e, 0x22, 0xc0, 0xd9, 0x35, 0x65, 0x23, 0xdb, 0x71, 0xfb, 0x05, 0x84, 0x82, 0x48, 0x26, 0x90,
		0x94, 0x82, 0x49, 0x2f, 0xa0, 0xd4, 0x82, 0x2a, 0x4d, 0x60, 0xa5, 0x09, 0xae, 0x14, 0x01, 0x16,
		0x0f, 0x37, 0x10, 0x44, 0x9d, 0x85, 0x05, 0x3b, 0x22, 0xf4, 0x60, 0xf4, 0x4c, 0xcb, 0xf4, 0x9f,
		0xe9, 0xd8, 0x63, 0xca, 0xc0, 0x11, 0x65, 0xa2, 0x43, 0x14, 0xbb, 0xdb, 0x96, 0x26, 0xfc, 0x32,
		0x94, 0x80, 0x3c, 0x65, 0x20, 0x4b, 0x29, 0x48, 0x57, 0x0e, 0xd2, 0x95, 0x84, 0x54, 0x65, 0x41,
		0xa3, 0x34, 0x88, 0x94, 0x87, 0xb8, 0x0f, 0xff, 0x26, 0xbf, 0x9a, 0x7d, 0x66, 0xfb, 0xa6, 0xff,
		0x2c, 0x96, 0xe6, 0xbd, 0xd1, 0xee, 0xd7, 0x08, 0x69, 0x9e, 0x4d, 0x5e, 0xf5, 0xa3, 0xe1, 0x49,
		0x10, 0x87, 0xe9, 0x86, 0xdc, 0xfe, 0x71, 0x7b, 0x7e, 0xf5, 0xb9, 0xfb, 0xa9, 0x79, 0x72, 0x76,
		0x7e, 0xd6, 0xfe, 0x83, 0x5a, 0x28, 0xc2, 0xfc, 0x34, 0x8f, 0xbc, 0xda, 0x5d, 0x21, 0x2d, 0x78,
		0x5d, 0xbb, 0x31, 0xcd, 0xf3, 0x73, 0x95, 0xfc, 0x1b, 0x5e, 0x3e, 0xe4, 0x6e, 0x1b, 0xbe, 0x9c,
		0x9e, 0xb5, 0xb1, 0x11, 0xc1, 0x46, 0xb4, 0x7f, 0xc7, 0x3e, 0x8c, 0xf7, 0xe1, 0xfa, 0xe6, 0xec,
		0xef, 0xd8, 0x0b, 0x45, 0x3d, 0xb9, 0xba, 0xbc, 0xbd, 0x3a, 0x6f, 0x61, 0x2b, 0x14, 0xf5, 0x6f,
		0xad, 0x9b, 0xcb, 0x16, 0x34, 0xe6, 0xb1, 0xa2, 0x9e, 0x5f, 0x9d, 0x34, 0xcf, 0x4b, 0xd8, 0x89,
		0xc9, 0x4e, 0x94, 0xb1, 0x13, 0x93, 0x9d, 0xd0, 0xb1, 0x13, 0x93, 0x9d, 0xa8, 0x60, 0x27, 0x26,
		0x3b, 0x51, 0xc5, 0x4e, 0x4c, 0x76, 0xa2, 0x86, 0x9d, 0x98, 0xec, 0x44, 0x1d, 0x3b, 0x31, 0xd9,
		0x89, 0x06, 0x76, 0x42, 0x51, 0x2f, 0x9a, 0x67, 0xc0, 0x55, 0xc7, 0x8a, 0x7a, 0xd9, 0xbe, 0xc6,
		0x36, 0x4c, 0x03, 0x36, 0xd8, 0x89, 0x70, 0x27, 0xda, 0xad, 0x8b, 0xee, 0x69, 0xb3, 0x75, 0x71,
		0x75, 0x89, 0x0d, 0x51, 0xd4, 0x2f, 0xb7, 0xad, 0x1b, 0x09, 0xfb, 0x40, 0x4a, 0xb1, 0x53, 0xb8,
		0x4e, 0x5c, 0x14, 0x35, 0xc1, 0x1e, 0x7b, 0x62, 0xae, 0x94, 0xcb, 0xae, 0x88, 0x32, 0x2e, 0xbb,
		0x84, 0xf7, 0x12, 0x97, 0x5d, 0xd1, 0x17, 0xe0, 0xb2, 0x2b, 0x07, 0x97, 0x5d, 0xde, 0xb3, 0x67,
		0x39, 0x8f, 0x1a, 0xb1, 0x0a, 0x98, 0x57, 0x03, 0xe5, 0x2a, 0x21, 0xcd, 0x96, 0x3d, 0x1a, 0xd0,
		0x8b, 0x42, 0xdb, 0xb9, 0xf5, 0x5d, 0xd3, 0x7e, 0x24, 0xa7, 0xac, 0x8c, 0xe7, 0x9e, 0x1f, 0x2b,
		0x6a, 0xeb, 0xa2, 0x75, 0xf3, 0xb9, 0x75, 0x79, 0x42, 0x7d, 0x7b, 0x16, 0x7e, 0x43, 0x79, 0x7c,
		0x19, 0xd5, 0xba, 0x69, 0xcb, 0xa0, 0xae, 0x87, 0x61, 0xec, 0x9b, 0xb3, 0xf6, 0xd9, 0x49, 0xf3,
		0x5c, 0xc6, 0x17, 0x54, 0xc2, 0x0d, 0xba, 0xb9, 0xb9, 0xba, 0x91, 0x41, 0xbd, 0x1a, 0x50, 0xff,
		0x47, 0xf3, 0xe6, 0xf2, 0xec, 0xf2, 0xb3, 0x0c, 0xfa, 0xb5, 0xd0, 0xf1, 0xb8, 0x6a, 0x9f, 0x9d,
		0xb4, 0x64, 0x90, 0xaf, 0x07, 0xe4, 0xcf, 0x2e, 0x3f, 0x5d, 0xdd, 0x5c, 0x34, 0xdb, 0x67, 0x57,
		0x97, 0x72, 0x8e, 0xa0, 0x11, 0x7c, 0xcb, 0x69, 0xeb, 0xe3, 0x17, 0x62, 0xaf, 0x81, 0x18, 0x20,
		0xab, 0x6d, 0xe7, 0xcc, 0xf6, 0xe5, 0x88, 0xe9, 0x58, 0x7e, 0xc8, 0x9b, 0x0f, 0x8f, 0x21, 0xcc,
		0x54, 0x7a, 0x8e, 0x15, 0x5d, 0x02, 0xf9, 0xf1, 0xc1, 0x09, 0x4d, 0x6b, 0xdf, 0xac, 0x71, 0x23,
		0xc5, 0x45, 0xde, 0x81, 0x77, 0x4c, 0x3f, 0x94, 0xfb, 0x63, 0xa5, 0x22, 0x81, 0xf6, 0xa2, 0xd8,
		0x08, 0xb5, 0x69, 0xda, 0x6c, 0x48, 0xc7, 0x92, 0x7f, 0xac, 0xd4, 0x24, 0x10, 0x9f, 0xaa, 0xad,
		0x63, 0xa5, 0xfa, 0x2e, 0x9b, 0xfe, 0x5a, 0x66, 0x3c, 0xac, 0xad, 0x66, 0x34, 0x0a, 0x96, 0x2f,
		0xae, 0xfa, 0x7a, 0x94, 0xe5, 0x8c, 0x51, 0x5d, 0x4d, 0xf4, 0xd3, 0x01, 0x49, 0x26, 0xb3, 0x42,
		0x5a, 0xf1, 0x78, 0x3b, 0x7d, 0xcb, 0xe8, 0x27, 0xae, 0x22, 0x48, 0x3a, 0xbe, 0x10, 0xe0, 0x09,
		0xba, 0xc4, 0x54, 0xea, 0x84, 0x54, 0x22, 0xdf, 0x1c, 0xd9, 0xe7, 0xd9, 0xf2, 0xb9, 0x91, 0x7d,
		0xbe, 0x05, 0x5f, 0x9a, 0xa0, 0x18, 0x74, 0xa3, 0xcf, 0xdc, 0xa0, 0x69, 0x7b, 0xb2, 0x54, 0x2c,
		0x1a, 0x29, 0x91, 0x1c, 0xaa, 0x54, 0xb2, 0xf0, 0x27, 0x75, 0xd8, 0x13, 0x2a, 0x15, 0x2a, 0x15,
		0x2a, 0x75, 0x57, 0x55, 0x6a, 0xa4, 0x44, 0xf2, 0xa8, 0x52, 0x7d, 0xc3, 0x67, 0x84, 0xfa, 0x34,
		0x24, 0x97, 0xb1, 0xea, 0x48, 0x1d, 0xca, 0x14, 0xca, 0x34, 0x57, 0xca, 0x14, 0xd5, 0x91, 0xa2,
		0xe4, 0x70, 0x61, 0x8c, 0x0b, 0xe3, 0xd4, 0x94, 0x05, 0x5d, 0x08, 0x53, 0x41, 0x75, 0x24, 0xaa,
		0x23, 0x57, 0xbe, 0x06, 0xd5, 0x91, 0x32, 0x04, 0x24, 0xcd, 0x6d, 0x40, 0x75, 0x24, 0xaa, 0x23,
		0x51, 0x1d, 0xb9, 0x7e, 0x2f, 0x50, 0x1d, 0x89, 0xea, 0xc8, 0x95, 0x9d, 0x40, 0x75, 0x24, 0xaa,
		0x23, 0xd7, 0xee, 0x04, 0xaa, 0x23, 0x51, 0x1d, 0x89, 0xea, 0xc8, 0x4d, 0x3b, 0x81, 0xea, 0x48,
		0x54, 0x47, 0xa2, 0x3a, 0x72, 0xcd, 0x4e, 0xa0, 0x3a, 0x12, 0xd5, 0x91, 0xa8, 0x8e, 0x5c, 0xbf,
		0x13, 0xa8, 0x8e, 0x44, 0x75, 0xe4, 0xb6, 0xa9, 0xa0, 0x3a, 0x52, 0x80, 0x1c, 0x2e, 0xbb, 0x70,
		0xd9, 0xb5, 0xf6, 0x0b, 0x70, 0xd9, 0x45, 0x20, 0xfb, 0xa8, 0x8e, 0x44, 0x75, 0xe4, 0xeb, 0xd4,
		0x51, 0x1d, 0xf9, 0x2a, 0x7d, 0x54, 0x47, 0xa6, 0x07, 0x90, 0x51, 0x1d, 0xb9, 0x96, 0x3c, 0xaa,
		0x23, 0xd7, 0xd3, 0x46, 0x75, 0xa4, 0x74, 0x7f, 0x0d, 0xd5, 0x91, 0x79, 0xac, 0x8e, 0xa4, 0x48,
		0x64, 0x56, 0x64, 0x17, 0x47, 0xde, 0x86, 0x2f, 0xb9, 0xad, 0xac, 0xf3, 0x54, 0x07, 0x01, 0xfd,
		0x8d, 0x3d, 0xcf, 0x67, 0x9d, 0x2a, 0x82, 0x70, 0x5c, 0x3d, 0x37, 0x3d, 0xbf, 0xe9, 0xfb, 0x82,
		0xd3, 0x85, 0x2e, 0x4c, 0xbb, 0x65, 0xb1, 0xc0, 0xc3, 0xf2, 0xc4, 0x94, 0xbf, 0x7a, 0x61, 0xfc,
		0x98, 0xa3, 0x54, 0x3e, 0xac, 0x56, 0xeb, 0x8d, 0x6a, 0xb5, 0xd4, 0xa8, 0x34, 0x4a, 0x47, 0xb5,
		0x5a, 0xb9, 0x2e, 0x92, 0x14, 0xa7, 0x5e, 0xb9, 0x7d, 0xe6, 0xb2, 0xfe, 0xc7, 0x60, 0x0b, 0xed,
		0x91, 0x65, 0x51, 0x90, 0xfa, 0xe2, 0xb1, 0x60, 0xf3, 0x1e, 0x0c, 0xcb, 0x63, 0xa9, 0x72, 0x02,
		0x91, 0x26, 0x91, 0xad, 0x41, 0x54, 0xa1, 0xa2, 0x0c, 0x69, 0x3a, 0x43, 0xc5, 0xa8, 0x60, 0x69,
		0x67, 0xbf, 0xd5, 0x69, 0xc1, 0xd1, 0x51, 0x67, 0x62, 0x12, 0x28, 0x57, 0x55, 0x91, 0x50, 0x15,
		0x91, 0xf0, 0x04, 0x50, 0x1d, 0x13, 0x40, 0xb7, 0x19, 0xc3, 0x2c, 0xf2, 0x04, 0x50, 0xae, 0xf9,
		0xd9, 0x2b, 0xcc, 0xc2, 0x31, 0x47, 0x7b, 0x59, 0x38, 0x4a, 0x98, 0xfc, 0x89, 0xc9, 0x9f, 0xf9,
		0x00, 0xfc, 0xc2, 0x01, 0x7d, 0x0a, 0xb9, 0x59, 0x30, 0x2c, 0x47, 0x02, 0x34, 0x26, 0xab, 0x11,
		0xab, 0xdf, 0x20, 0x2c, 0x3f, 0x35, 0x87, 0x9a, 0xd1, 0xef, 0xbb, 0xcc, 0xf3, 0x28, 0xcb, 0xab,
		0x8f, 0x08, 0x68, 0x91, 0xec, 0x14, 0xdd, 0x8e, 0xad, 0xd9, 0xb9, 0xa7, 0x2a, 0xe1, 0xde, 0xad,
		0xec, 0xe1, 0x21, 0x21, 0xcd, 0x6b, 0xc3, 0xf7, 0x99, 0x6b, 0x93, 0x17, 0x0e, 0xa9, 0xef, 0xbf,
		0x96, 0xb4, 0xa3, 0xce, 0xaf, 0xaf, 0x65, 0xed, 0xa8, 0x33, 0xfe, 0xb1, 0x1c, 0xfe, 0xf1, 0x53,
		0x7f, 0xf9, 0xa5, 0x7f, 0x2d, 0x69, 0xd5, 0xc9, 0x6f, 0xf5, 0xda, 0xd7, 0x92, 0x56, 0xeb, 0xec,
		0xbd, 0xbf, 0xbb, 0xdb, 0x4f, 0xfa, 0xcc, 0xde, 0xcf, 0xca, 0x0b, 0x5d, 0xa8, 0xbd, 0x43, 0xb9,
		0xad, 0x57, 0xb7, 0x67, 0xff, 0x94, 0xb6, 0xb7, 0xff, 0x7e, 0x9f, 0xd6, 0xee, 0xee, 0xfd, 0x85,
		0x70, 0x7f, 0xb3, 0x74, 0x1b, 0x2c, 0x47, 0xec, 0xeb, 0x10, 0xfb, 0x90, 0xcb, 0x0c, 0xed, 0xa1,
		0xa9, 0x7d, 0xea, 0xfc, 0x2c, 0x7f, 0xa8, 0xbe, 0x1c, 0xef, 0xfd, 0x6c, 0xbc, 0x2c, 0xff, 0xf2,
		0xd7, 0xba, 0x8f, 0x95, 0x3f, 0x34, 0x5e, 0x8e, 0x37, 0xfc, 0x4b, 0xfd, 0xe5, 0x38, 0x26, 0x8d,
		0xda, 0xcb, 0xfb, 0x95, 0x8f, 0x06, 0xbf, 0xd7, 0x37, 0x3d, 0x50, 0xdd, 0xf0, 0x40, 0x65, 0xd3,
		0x03, 0x95, 0x0d, 0x0f, 0x6c, 0x7c, 0x25, 0x7d, 0xc3, 0x03, 0xb5, 0x97, 0x5f, 0x2b, 0x9f, 0x7f,
		0xbf, 0xfe, 0xa3, 0xf5, 0x97, 0xbd, 0x5f, 0x9b, 0xfe, 0xad, 0xf1, 0xf2, 0xeb, 0x78, 0x6f, 0x6f,
		0x87, 0x15, 0x21, 0xd8, 0x2d, 0x7d, 0x76, 0xcb, 0x9e, 0x61, 0x78, 0xb7, 0xdd, 0xf7, 0x10, 0x34,
		0x4c, 0x84, 0xc8, 0xbd, 0xef, 0x0c, 0x0c, 0xd3, 0xd6, 0xc2, 0x88, 0x21, 0x21, 0x74, 0x27, 0xb0,
		0x3f, 0xea, 0x39, 0xb3, 0x1f, 0xc3, 0x88, 0x6a, 0xe6, 0xc0, 0xfb, 0x85, 0x69, 0xd3, 0xe7, 0x44,
		0x85, 0x55, 0xf9, 0xf4, 0xe9, 0x10, 0xea, 0x27, 0xd7, 0xe8, 0xf9, 0xa6, 0x63, 0x9f, 0x9a, 0x8f,
		0xa6, 0xe8, 0xbd, 0xd2, 0x7a, 0x56, 0x62, 0x8f, 0x86, 0x6f, 0x3e, 0x31, 0xa1, 0xeb, 0x1b, 0x89,
		0xf0, 0x4d, 0x99, 0x5c, 0x88, 0xc9, 0x3b, 0x32, 0xbd, 0x56, 0xc1, 0xa1, 0x91, 0xa9, 0x56, 0x22,
		0x05, 0x4d, 0xd3, 0x9b, 0x8d, 0x14, 0x8b, 0xa8, 0xef, 0xdf, 0xbf, 0x7f, 0xff, 0xd5, 0xd0, 0xfe,
		0x6c, 0x6a, 0xff, 0x2a, 0x69, 0x47, 0xdd, 0xce, 0xdc, 0x5f, 0xee, 0xee, 0xb4, 0x6e, 0x67, 0xef,
		0x67, 0xe9, 0x43, 0xbd, 0xfc, 0xb2, 0xf7, 0xdb, 0xec, 0xf7, 0x9d, 0xbb, 0xbb, 0xfd, 0xbd, 0xff,
		0xe2, 0x79, 0xea, 0xb7, 0xbd, 0x5f, 0xc1, 0xb3, 0x6a, 0x36, 0xb6, 0x52, 0x06, 0xb6, 0x0b, 0x30,
		0x5d, 0xfa, 0x1b, 0x4a, 0x80, 0x66, 0x3a, 0x5b, 0x4a, 0xb2, 0xe8, 0xa4, 0x75, 0x5d, 0xcb, 0x71,
		0x05, 0x65, 0x33, 0xff, 0x3f, 0x8e, 0xfb, 0x5d, 0x33, 0x6d, 0xcf, 0x37, 0x6c, 0x91, 0xcb, 0xa8,
		0x29, 0xb6, 0x59, 0xa1, 0x88, 0xdb, 0x0e, 0xdc, 0x76, 0x24, 0x20, 0x88, 0xdb, 0x8e, 0x55, 0x19,
		0xd2, 0xc4, 0x9a, 0x74, 0x51, 0xb4, 0x4e, 0x8d, 0x5a, 0xa6, 0x1e, 0x38, 0x3d, 0xcd, 0x66, 0x7e,
		0xf0, 0x6a, 0xc7, 0xcb, 0xef, 0xe9, 0xbd, 0xf6, 0x8f, 0xf3, 0xff, 0x36, 0x69, 0xba, 0x3a, 0xff,
		0xe9, 0x60, 0xe9, 0x19, 0x56, 0x94, 0x93, 0x74, 0x91, 0xa1, 0xe3, 0x12, 0xdc, 0x02, 0xcf, 0x13,
		0xe3, 0x64, 0xb6, 0x53, 0xf6, 0x60, 0x8c, 0x2c, 0x5f, 0xc8, 0xaa, 0xab, 0xb5, 0x32, 0x67, 0xd7,
		0x85, 0x0e, 0x94, 0x3a, 0x94, 0x3a, 0x94, 0x7a, 0x22, 0x7e, 0x09, 0xa4, 0x5d, 0xb3, 0x47, 0x83,
		0x7b, 0xe6, 0x12, 0xe8, 0x72, 0x81, 0x24, 0x7f, 0xf5, 0xc6, 0xb0, 0x1f, 0x33, 0x71, 0x93, 0x4d,
		0x19, 0xd2, 0x89, 0xe2, 0x02, 0x54, 0xf5, 0xb3, 0xb2, 0xa2, 0x01, 0xf4, 0x51, 0x00, 0x8a, 0xba,
		0x6b, 0xca, 0x50, 0x4d, 0x74, 0x14, 0xf5, 0x5a, 0xad, 0x52, 0xdb, 0xbd, 0xe3, 0x80, 0x9f, 0xb9,
		0xb2, 0xc9, 0x5e, 0x68, 0xea, 0xa2, 0xcb, 0x57, 0x61, 0x04, 0xb5, 0x44, 0x0f, 0x70, 0x04, 0x70,
		0x04, 0x70, 0x24, 0x11, 0xbf, 0x90, 0x64, 0x8f, 0x15, 0x34, 0xaf, 0x8e, 0x34, 0x3b, 0x8c, 0xf4,
		0x7a, 0x8e, 0x3e, 0x38, 0x9e, 0x9b, 0x2c, 0xb0, 0x4c, 0x07, 0xc4, 0x73, 0x94, 0xed, 0x55, 0x94,
		0x4b, 0x74, 0xe2, 0x6c, 0xae, 0x8c, 0x8b, 0x29, 0xd2, 0x68, 0x72, 0x9b, 0xb5, 0x95, 0x79, 0xc5,
		0x05, 0xb6, 0xca, 0x65, 0x76, 0x56, 0xe1, 0xef, 0x33, 0x77, 0xa8, 0xfc, 0x94, 0xb3, 0x53, 0x01,
		0x61, 0xe9, 0x69, 0xf2, 0x36, 0x04, 0x09, 0xca, 0x4e, 0xdf, 0x11, 0x9e, 0xe0, 0xb4, 0x8d, 0x40,
		0x82, 0x92, 0x20, 0xbe, 0x4e, 0x01, 0xfc, 0x9d, 0x01, 0x48, 0x3b, 0x01, 0x08, 0x54, 0xfe, 0x0b,
		0x54, 0xfa, 0xc7, 0x3d, 0x0c, 0x4e, 0x31, 0x22, 0x15, 0x1f, 0x35, 0x51, 0x55, 0x33, 0x8d, 0xc0,
		0xc4, 0x13, 0x95, 0xb7, 0x19, 0xff, 0xf5, 0x4f, 0xbc, 0x71, 0x0a, 0x49, 0x77, 0x5f, 0x70, 0xd7,
		0x63, 0xec, 0xb3, 0xc8, 0xfe, 0xbe, 0xbe, 0xa5, 0x9b, 0x37, 0xea, 0x95, 0x4d, 0x52, 0x9f, 0x62,
		0x74, 0x12, 0x8d, 0x3c, 0x8a, 0xa7, 0x37, 0x5b, 0x91, 0xc4, 0x2c, 0x50, 0x8f, 0x1d, 0x19, 0x4c,
		0x12, 0x01, 0x4c, 0x1e, 0xe9, 0x4b, 0x1a, 0xd1, 0xe3, 0x8e, 0xdc, 0x71, 0x47, 0xe8, 0xb8, 0x22,
		0x71, 0x62, 0x22, 0x13, 0xb7, 0x00, 0x5c, 0xed, 0x4d, 0xcf, 0x30, 0xe6, 0xe6, 0x4d, 0x8f, 0x67,
		0xf2, 0x5c, 0x5c, 0x63, 0x96, 0xa8, 0xe3, 0x41, 0xe2, 0x90, 0x33, 0x4f, 0x88, 0x99, 0x3f, 0xa4,
		0xcc, 0x1b, 0x42, 0x16, 0x0e, 0x19, 0x0b, 0x87, 0x88, 0x85, 0x42, 0xc2, 0x2f, 0xb9, 0xb4, 0xa8,
		0x4f, 0xfe, 0xf3, 0x41, 0x22, 0x5e, 0xe5, 0xd0, 0xef, 0x7f, 0xf7, 0x9f, 0xbb, 0x13, 0x96, 0xa5,
		0xb2, 0x97, 0x71, 0x6c, 0x50, 0xd4, 0x46, 0x25, 0xb1, 0xf0, 0x26, 0xed, 0x03, 0x03, 0xf9, 0x85,
		0xfc, 0x72, 0x1a, 0x98, 0x15, 0x76, 0x15, 0xe8, 0xb5, 0xc3, 0xd7, 0xaf, 0x4a, 0xb8, 0xdd, 0x4e,
		0x09, 0xed, 0x76, 0x78, 0x08, 0xa1, 0xdd, 0x8e, 0x42, 0x8d, 0xbe, 0x68, 0xd0, 0x18, 0x91, 0x80,
		0x08, 0x0b, 0x0a, 0x85, 0xc0, 0xd0, 0x09, 0x0e, 0x95, 0x00, 0x91, 0x0b, 0x12, 0xb9, 0x40, 0x91,
		0x0a, 0x96, 0x58, 0xa0, 0x95, 0x37, 0x41, 0x40, 0x74, 0xea, 0x3c, 0xdd, 0xb4, 0x79, 0xea, 0x29,
		0xf3, 0x44, 0x03, 0x37, 0xc8, 0x06, 0x6d, 0x50, 0x0e, 0xd8, 0xa0, 0x1f, 0xac, 0x41, 0x3d, 0x50,
		0x43, 0xda, 0x20, 0x0d, 0x69, 0x03, 0x34, 0xa4, 0x0c, 0xce, 0xd8, 0x6e, 0x03, 0x66, 0xb2, 0x01,
		0x19, 0x92, 0xa6, 0xc0, 0x53, 0x4e, 0x7f, 0x97, 0x33, 0xf5, 0x5d, 0xf2, 0xb4, 0x77, 0x19, 0x53,
		0xde, 0x25, 0x8d, 0xbb, 0x27, 0x9d, 0xea, 0x4e, 0x58, 0x34, 0x2e, 0x6b, 0xb9, 0xb4, 0xd3, 0xdb,
		0xf3, 0xb0, 0x60, 0xca, 0x29, 0xed, 0xf9, 0x58, 0x2f, 0xed, 0x34, 0xf6, 0xec, 0xaf, 0x99, 0x7c,
		0xea, 0x7a, 0xf6, 0x97, 0x4c, 0x3d, 0x5d, 0x3d, 0xfb, 0x2b, 0xa6, 0x9e, 0xa2, 0x9e, 0x93, 0x15,
		0x97, 0x77, 0x6e, 0xc5, 0xfa, 0xce, 0xad, 0xb8, 0xb2, 0x73, 0x2b, 0xae, 0xee, 0xdc, 0x8a, 0x6b,
		0x3b, 0xb7, 0xe2, 0xfa, 0xce, 0xad, 0xb8, 0xb1, 0x4b, 0x2b, 0xa6, 0x9d, 0x42, 0x9e, 0xfd, 0xf5,
		0x92, 0x4e, 0x1b, 0xcf, 0xfe, 0x72, 0xa9, 0xa7, 0x8a, 0xe7, 0x62, 0xc5, 0x32, 0xa6, 0x87, 0x67,
		0x7f, 0xe1, 0xb4, 0x53, 0xc2, 0x69, 0x7a, 0xb0, 0x75, 0x72, 0x5b, 0x7e, 0xfc, 0x22, 0x32, 0x2c,
		0x89, 0x6a, 0xea, 0x37, 0xf5, 0xb4, 0x6f, 0x5c, 0x3a, 0x24, 0xa2, 0x88, 0x4b, 0x07, 0x5c, 0x3a,
		0xc4, 0x90, 0x4d, 0xf2, 0x69, 0xdc, 0x94, 0x53, 0xb8, 0x69, 0xa7, 0x6f, 0xcb, 0x99, 0xba, 0x2d,
		0x6f, 0xda, 0xb6, 0x9c, 0x29, 0xdb, 0xd2, 0xa6, 0x6b, 0xcb, 0x99, 0xaa, 0x2d, 0x6b, 0x9a, 0xb6,
		0xa4, 0x29, 0xda, 0x72, 0xa7, 0x67, 0x93, 0x4f, 0xcd, 0x26, 0x02, 0x86, 0x12, 0xa6, 0x64, 0xcb,
		0x98, 0x8e, 0x2d, 0x69, 0x2a, 0xb6, 0x8c, 0x69, 0xd8, 0xb2, 0xa6, 0x60, 0xcb, 0x98, 0x7e, 0x2d,
		0x73, 0xea, 0xb5, 0x94, 0x69, 0xd7, 0xe4, 0x53, 0xae, 0x5f, 0xf2, 0xeb, 0x29, 0xec, 0xc4, 0xac,
		0xd9, 0x27, 0xff, 0x79, 0xdd, 0x50, 0x6a, 0xa1, 0x84, 0x44, 0x85, 0x2f, 0x05, 0x7f, 0xcd, 0xd8,
		0xe9, 0x24, 0x59, 0xf9, 0xe2, 0xe7, 0xc7, 0xd3, 0x32, 0x4a, 0x38, 0x11, 0x8d, 0x2a, 0x01, 0x0d,
		0x6d, 0xa2, 0x64, 0xf8, 0x78, 0xc8, 0x02, 0x95, 0xa8, 0xf3, 0xe8, 0xda, 0x44, 0x59, 0xcc, 0x78,
		0xc8, 0x50, 0xf7, 0xe1, 0xfd, 0xfd, 0x89, 0x02, 0x3d, 0x88, 0x84, 0x3a, 0xcb, 0x5d, 0xef, 0x44,
		0xc3, 0x5a, 0x54, 0xe1, 0x2c, 0xa8, 0x30, 0xa8, 0x30, 0xa8, 0xb0, 0xac, 0xa9, 0xb0, 0x48, 0xa8,
		0xb3, 0xac, 0xc2, 0xb8, 0xa6, 0xc0, 0xaf, 0xea, 0x2f, 0xce, 0x06, 0x27, 0x0a, 0x65, 0x15, 0x8e,
		0x0e, 0xe5, 0x05, 0xe5, 0x95, 0x8a, 0xf2, 0x42, 0x15, 0x8e, 0x6c, 0x44, 0x41, 0x29, 0x9c, 0xf4,
		0x42, 0x4a, 0x2d, 0xac, 0xd2, 0x84, 0x56, 0x9a, 0xf0, 0x4a, 0x11, 0x62, 0xa2, 0xc0, 0x15, 0xaa,
		0x70, 0xe2, 0xd3, 0x42, 0x15, 0xce, 0xf8, 0x3f, 0x54, 0xe1, 0x90, 0x2c, 0x17, 0x55, 0x38, 0xc5,
		0x5f, 0x2f, 0xaa, 0x70, 0x0a, 0xbf, 0x64, 0x54, 0xe1, 0xec, 0xc8, 0x8a, 0x51, 0x85, 0x53, 0xfc,
		0x15, 0xa3, 0x0a, 0xa7, 0xf8, 0x2b, 0x46, 0x15, 0x4e, 0xf1, 0x57, 0x8c, 0x2a, 0x9c, 0x02, 0xaf,
		0x17, 0x55, 0x38, 0xc5, 0x5f, 0x31, 0xaa, 0x70, 0x08, 0xd6, 0x8b, 0x2a, 0x1c, 0xee, 0x13, 0x41,
		0x15, 0x4e, 0x5c, 0x42, 0xb8, 0x74, 0x20, 0x21, 0x8c, 0x4b, 0x87, 0xd8, 0x2b, 0x42, 0x15, 0x8e,
		0xd8, 0xf6, 0xa1, 0x0a, 0x07, 0x55, 0x38, 0x53, 0xba, 0xa8, 0xc2, 0x41, 0x15, 0x0e, 0x11, 0x59,
		0x54, 0xe1, 0xa0, 0x0a, 0x27, 0xaf, 0x9e, 0xc2, 0x2e, 0x57, 0xe1, 0x88, 0xe4, 0x23, 0x2a, 0x64,
		0x45, 0x38, 0x1c, 0x43, 0xd7, 0xf8, 0x4f, 0x4f, 0x6e, 0xa3, 0xf7, 0xc9, 0x50, 0xb6, 0x69, 0x96,
		0x99, 0xc2, 0x09, 0x2b, 0xf9, 0x26, 0xb5, 0x45, 0x4f, 0x73, 0x4f, 0x6c, 0x9b, 0x51, 0x20, 0x9c,
		0xdc, 0x16, 0x11, 0xe5, 0x9f, 0xe0, 0xb6, 0x4a, 0x22, 0xf1, 0x24, 0x37, 0xde, 0x13, 0x4d, 0x7b,
		0x40, 0xe2, 0x7a, 0x49, 0x95, 0x3f, 0x14, 0x71, 0xbd, 0x6c, 0xe6, 0x63, 0x14, 0x62, 0x9a, 0xb3,
		0x82, 0x92, 0x8e, 0xc6, 0x11, 0x3d, 0x8a, 0x54, 0x27, 0x06, 0x25, 0xca, 0x72, 0xe7, 0xca, 0x6a,
		0xe7, 0x9e, 0x14, 0xa4, 0x63, 0x52, 0x10, 0x65, 0xcc, 0x68, 0x47, 0x27, 0x7d, 0x25, 0x05, 0x3c,
		0x3c, 0x92, 0x1b, 0x1f, 0xcd, 0xe4, 0x7d, 0x2e, 0xe6, 0x53, 0x2c, 0x60, 0x93, 0x7c, 0x0f, 0xb9,
		0x47, 0x60, 0xbe, 0x4b, 0xb0, 0x4b, 0x71, 0x77, 0x27, 0xe9, 0xae, 0xbc, 0xb2, 0x23, 0xc9, 0x76,
		0x62, 0xfd, 0x2e, 0xac, 0xae, 0x71, 0xcd, 0xfa, 0xd4, 0x81, 0xd1, 0xd3, 0x8c, 0x7e, 0xdf, 0x65,
		0xde, 0xe6, 0xe9, 0x6f, 0x91, 0xda, 0x9b, 0xff, 0xf0, 0x86, 0xbd, 0x7a, 0x5d, 0x6b, 0xbf, 0x79,
		0xa3, 0x10, 0x47, 0x2b, 0xcf, 0x6b, 0x61, 0xef, 0xf9, 0x35, 0xf3, 0x1a, 0x57, 0xeb, 0x26, 0xd6,
		0xb2, 0x89, 0xb5, 0xea, 0xb2, 0x16, 0x0d, 0xde, 0x9b, 0x88, 0x3b, 0xdf, 0xaa, 0x9d, 0x89, 0x3b,
		0x1a, 0x2a, 0xd9, 0x08, 0xa8, 0xac, 0x4c, 0x76, 0x7d, 0x9d, 0x01, 0x78, 0xcd, 0xef, 0xf6, 0x27,
		0xbb, 0xbe, 0xca, 0x20, 0x34, 0x4a, 0x3f, 0xf6, 0x64, 0x57, 0xd7, 0x19, 0xf9, 0xa6, 0xfd, 0xa8,
		0x0d, 0x8c, 0x5e, 0x72, 0xcc, 0x37, 0xff, 0x70, 0x32, 0xe4, 0x57, 0xca, 0xe8, 0x8c, 0xc8, 0x78,
		0x2c, 0x57, 0x3c, 0xe4, 0x17, 0x8b, 0x25, 0xe5, 0x20, 0xbf, 0xc4, 0xb7, 0x79, 0x09, 0x4c, 0xd6,
		0xab, 0xda, 0xed, 0x30, 0xc1, 0x33, 0xd7, 0x86, 0xef, 0x33, 0xd7, 0x4e, 0x5c, 0x46, 0xa3, 0x7e,
		0x2d, 0x69, 0x47, 0x86, 0xf6, 0xd0, 0xd4, 0x3e, 0x75, 0x7e, 0xea, 0x2f, 0xef, 0x8f, 0x17, 0xff,
		0xbe, 0xf7, 0xb3, 0xf6, 0x12, 0x7f, 0xdf, 0x3b, 0x49, 0x5e, 0xf8, 0xea, 0xf6, 0xec, 0x9f, 0xdc,
		0x6f, 0xfd, 0xef, 0xb7, 0x5f, 0xfb, 0x2f, 0x09, 0xde, 0xbb, 0xd0, 0x38, 0x78, 0x8e, 0x0b, 0xe3,
		0x37, 0x34, 0x8a, 0x09, 0x02, 0x2f, 0x8c, 0x5e, 0x73, 0x4c, 0x3a, 0x56, 0x93, 0x22, 0xbe, 0xb9,
		0xf0, 0xf1, 0x1c, 0xfe, 0x44, 0x8e, 0x7e, 0x62, 0x04, 0xa1, 0x03, 0x41, 0x00, 0x41, 0x00, 0x41,
		0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0xec, 0x32, 0x82, 0x88, 0x1b, 0x9b, 0x4c, 0x0e, 0x20, 0x62,
		0x84, 0x24, 0xb3, 0x1a, 0x54, 0x8b, 0x27, 0xa6, 0x89, 0xb7, 0x44, 0x28, 0xb6, 0xc6, 0x06, 0x8e,
		0xfb, 0x1c, 0x23, 0xac, 0x36, 0xfe, 0x1c, 0x22, 0x6a, 0x88, 0xa8, 0x21, 0xa2, 0x96, 0x67, 0x3c,
		0x2c, 0x4d, 0xf9, 0x87, 0x0a, 0x82, 0xde, 0x73, 0x0c, 0xc9, 0xc2, 0x6b, 0x84, 0x94, 0x64, 0xd3,
		0x6b, 0xec, 0x39, 0x23, 0xdb, 0x67, 0xae, 0x97, 0xdc, 0x65, 0x8c, 0x9e, 0x94, 0x9c, 0x6b, 0x00,
		0x7f, 0xb1, 0xa8, 0xfe, 0x62, 0xd2, 0x8e, 0x74, 0x6a, 0xcf, 0x71, 0x5d, 0xd6, 0xf3, 0x8d, 0x7b,
		0x8b, 0x69, 0xac, 0xd7, 0xd3, 0x98, 0xeb, 0x3a, 0x09, 0x58, 0x77, 0x0d, 0x0b, 0xaf, 0xa5, 0x97,
		0x34, 0xcd, 0x90, 0xab, 0x10, 0x8c, 0xbb, 0xf0, 0x4b, 0xa4, 0xd0, 0x8b, 0x9f, 0xe1, 0x45, 0x19,
		0x9f, 0x4c, 0x00, 0xc8, 0x04, 0x81, 0x44, 0x20, 0x92, 0x09, 0x46, 0x42, 0x01, 0xe1, 0x0f, 0xac,
		0xac, 0x9c, 0xf7, 0xc8, 0xb4, 0xfd, 0x7a, 0x95, 0xe7, 0xbc, 0x27, 0xdc, 0x7d, 0xc8, 0xf1, 0xe8,
		0x8d, 0x61, 0x3f, 0x32, 0xee, 0x8e, 0x67, 0x02, 0x09, 0xd9, 0x17, 0xa6, 0x2d, 0x5e, 0x2f, 0x1a,
		0x36, 0x6c, 0x23, 0xa8, 0xcb, 0xfc, 0xe4, 0x1a, 0xbd, 0x00, 0xae, 0x9e, 0x9a, 0x8f, 0x26, 0x6f,
		0x0a, 0xf0, 0xe2, 0x99, 0xb2, 0x47, 0xc3, 0x37, 0x9f, 0x18, 0x57, 0xc6, 0xad, 0x00, 0x1b, 0x2e,
		0x6e, 0xb1, 0xf1, 0x83, 0x6e, 0x8b, 0x69, 0x52, 0x9a, 0xf3, 0xb2, 0xeb, 0x29, 0xe5, 0xd6, 0x77,
		0x64, 0x65, 0x0b, 0x27, 0x40, 0x49, 0xbe, 0xe3, 0x1b, 0x16, 0x89, 0xa9, 0x5e, 0xa1, 0x04, 0x23,
		0x0d, 0x23, 0x0d, 0x23, 0x0d, 0x23, 0x0d, 0x23, 0x0d, 0x23, 0x0d, 0x23, 0x2d, 0x62, 0xa4, 0x47,
		0x36, 0xb5, 0x5f, 0xbd, 0x91, 0x22, 0x8c, 0x36, 0x8c, 0x36, 0x8c, 0x36, 0x8c, 0x36, 0x8c, 0x36,
		0x8c, 0x36, 0x8c, 0x36, 0xdf, 0x27, 0xb3, 0x52, 0xc9, 0x37, 0xb9, 0x30, 0x0d, 0x2f, 0x14, 0x0f,
		0x12, 0x5e, 0x06, 0x29, 0x89, 0x2f, 0x50, 0xc3, 0xac, 0x99, 0xee, 0xc9, 0xf4, 0x6b, 0x52, 0xac,
		0xc3, 0x7d, 0x70, 0x19, 0x47, 0x19, 0x6e, 0xf8, 0x14, 0x32, 0x29, 0x53, 0x84, 0x2f, 0xc8, 0xa4,
		0xe4, 0x82, 0x23, 0x1c, 0x30, 0x84, 0x13, 0x7e, 0xf0, 0xf5, 0xce, 0xe0, 0xc7, 0xc3, 0x82, 0x30,
		0x83, 0xcc, 0xd0, 0x89, 0x1b, 0xb8, 0x17, 0xbe, 0xa6, 0x21, 0xe2, 0x5b, 0x47, 0x07, 0x1f, 0xb2,
		0xb4, 0x9b, 0x92, 0xcc, 0x77, 0x27, 0x45, 0xa3, 0x34, 0xfc, 0xf6, 0xec, 0x99, 0x3d, 0xc3, 0x4a,
		0x6e, 0x98, 0xa2, 0x27, 0x61, 0x9c, 0x60, 0x9c, 0x60, 0x9c, 0x60, 0x9c, 0x60, 0x9c, 0x60, 0x9c,
		0x68, 0x8d, 0x93, 0xcb, 0x3c, 0xe6, 0x3e, 0xb1, 0x3e, 0x47, 0x19, 0xda, 0xf4, 0x49, 0x18, 0x27,
		0x18, 0x27, 0x18, 0x27, 0x18, 0x27, 0x18, 0x27, 0x18, 0x27, 0x5a, 0xe3, 0x34, 0xf2, 0x78, 0x0c,
		0x53, 0xf8, 0x14, 0x8c, 0x12, 0x8c, 0x12, 0x8c, 0x12, 0x8c, 0x12, 0x8c, 0x12, 0x8c, 0x52, 0x02,
		0xa3, 0x94, 0xe5, 0x72, 0x47, 0xea, 0x32, 0xf7, 0xb9, 0xcb, 0xba, 0x9c, 0x96, 0xb8, 0xbf, 0x56,
		0x27, 0x9e, 0x78, 0x27, 0xc4, 0x2a, 0xdb, 0x3d, 0xcf, 0x78, 0x64, 0x71, 0x5a, 0x46, 0x4e, 0x3f,
		0x99, 0x8d, 0xea, 0xf6, 0x37, 0x5e, 0x47, 0xc9, 0x74, 0x89, 0x7b, 0xf4, 0xf2, 0xa8, 0x73, 0xe7,
		0xc4, 0x9c, 0x09, 0x59, 0x81, 0x17, 0x68, 0x6e, 0xbf, 0x8c, 0xf7, 0x6d, 0x56, 0xa1, 0x31, 0x01,
		0xb1, 0x6b, 0x79, 0x13, 0xcf, 0xca, 0xe3, 0x9d, 0x89, 0x97, 0x75, 0x17, 0x27, 0x01, 0xdb, 0x15,
		0xcf, 0xcf, 0x89, 0xcf, 0x96, 0x59, 0x73, 0x76, 0xf8, 0xa7, 0xbf, 0xf1, 0x4c, 0x79, 0xe3, 0x9b,
		0xe6, 0x26, 0x36, 0xb5, 0x4d, 0x7c, 0x3a, 0x9b, 0xd8, 0x14, 0x36, 0xe1, 0x69, 0x6b, 0x62, 0x53,
		0xd5, 0x44, 0xa7, 0xa7, 0x09, 0x4e, 0x49, 0xa3, 0x99, 0x86, 0xc6, 0x3d, 0xf5, 0x2c, 0x71, 0x6e,
		0x32, 0xf7, 0x14, 0x33, 0x91, 0x69, 0x65, 0x82, 0x53, 0xc9, 0x44, 0xa6, 0x8f, 0x89, 0x4e, 0x19,
		0x13, 0x99, 0x26, 0x46, 0x31, 0x35, 0x4c, 0x68, 0x3a, 0x18, 0xf7, 0x14, 0x30, 0xf2, 0xfc, 0xd2,
		0xdc, 0x7a, 0xb4, 0x63, 0xbb, 0x27, 0xa1, 0x85, 0xcf, 0x98, 0xb0, 0xc4, 0x26, 0x3e, 0x7d, 0x76,
		0x3f, 0x7a, 0xd4, 0x98, 0xed, 0xbb, 0x26, 0xf3, 0xe2, 0xfb, 0x02, 0x8b, 0x8f, 0xc1, 0x25, 0x80,
		0x4b, 0xb0, 0x9e, 0xb1, 0x3c, 0xe6, 0x3e, 0x99, 0x3d, 0x8e, 0x2c, 0xe6, 0xc5, 0xc7, 0x8b, 0xd1,
		0xe8, 0x07, 0xce, 0xc1, 0x16, 0x9d, 0x03, 0x8e, 0x96, 0x3f, 0xb1, 0xc2, 0x23, 0x62, 0xe1, 0x12,
		0x41, 0x16, 0xe6, 0x66, 0x65, 0x11, 0x96, 0x26, 0x62, 0x6d, 0x51, 0x16, 0x27, 0x63, 0x75, 0x32,
		0x96, 0xa7, 0x63, 0x7d, 0xce, 0x1b, 0x86, 0x84, 0x67, 0x9f, 0x54, 0x24, 0xa2, 0x07, 0x99, 0x6d,
		0xdc, 0x5b, 0x09, 0x2e, 0xb3, 0x37, 0x72, 0xce, 0x94, 0x10, 0xe7, 0x3e, 0x9f, 0xb2, 0x07, 0x63,
		0x64, 0xf9, 0xdc, 0xe5, 0x88, 0x21, 0x91, 0xf0, 0xee, 0x87, 0x6f, 0xec, 0x68, 0x87, 0xf3, 0xbd,
		0xf9, 0xaa, 0x8b, 0x85, 0x85, 0x9d, 0x42, 0xe8, 0x89, 0x85, 0x9f, 0x4a, 0x09, 0x90, 0x2b, 0x03,
		0x72, 0xa5, 0x40, 0xaf, 0x1c, 0xf8, 0x94, 0x04, 0xa7, 0xb2, 0xe0, 0x0f, 0xb2, 0x6d, 0xe4, 0x9c,
		0x7b, 0xc7, 0xb1, 0x98, 0x61, 0x8b, 0x70, 0xcd, 0xd4, 0x5a, 0x96, 0xd3, 0x9a, 0x1a, 0xcc, 0x33,
		0x7f, 0x35, 0x21, 0x04, 0xde, 0x1c, 0xa4, 0x4c, 0x04, 0x86, 0xa1, 0x74, 0xa0, 0x74, 0xa0, 0x74,
		0x56, 0x38, 0xc7, 0xec, 0x33, 0xdb, 0x37, 0xfd, 0x67, 0x97, 0x3d, 0x50, 0x28, 0x1e, 0x81, 0x92,
		0x76, 0xf5, 0x6c, 0xf2, 0x2a, 0x1f, 0x0d, 0x8f, 0x80, 0x07, 0xa7, 0x0b, 0x0c, 0xa3, 0xa0, 0xdd,
		0xdb, 0xd6, 0xcd, 0xdf, 0xcf, 0x4e, 0x5a, 0x6a, 0xe6, 0x2b, 0xda, 0x5f, 0x0a, 0x31, 0xb5, 0x3b,
		0x8a, 0x00, 0x2e, 0xc4, 0xc5, 0x0e, 0x16, 0x82, 0x18, 0x07, 0x5c, 0x0e, 0x21, 0x4f, 0xb4, 0xf0,
		0x34, 0xf8, 0xda, 0xd6, 0xf8, 0x1d, 0xc6, 0x7f, 0xb9, 0x1d, 0xbf, 0x42, 0xac, 0x38, 0xa2, 0x40,
		0x94, 0x37, 0x49, 0x09, 0x3e, 0xa7, 0x55, 0x14, 0xb4, 0x86, 0x79, 0x6d, 0xec, 0x03, 0xff, 0x3a,
		0x87, 0xfe, 0xb5, 0x78, 0x8b, 0x1f, 0x8b, 0x19, 0x0f, 0x7c, 0x96, 0x2a, 0xb2, 0x50, 0x3c, 0xb7,
		0x61, 0xd7, 0x13, 0x85, 0xb7, 0xbf, 0x3f, 0x51, 0x5a, 0x07, 0x53, 0x69, 0xcb, 0x82, 0xe6, 0x48,
		0x34, 0x9d, 0x7e, 0x55, 0x6f, 0x24, 0x1c, 0xfd, 0x4d, 0x12, 0x95, 0xd3, 0xa1, 0x35, 0xa0, 0x35,
		0x10, 0x95, 0x43, 0x54, 0x0e, 0x0e, 0x32, 0x1c, 0x64, 0x44, 0xe5, 0x10, 0x95, 0x83, 0xd2, 0x81,
		0xd2, 0x81, 0xd2, 0x41, 0x54, 0x0e, 0x51, 0xb9, 0x6d, 0x47, 0xe5, 0x78, 0xfc, 0x41, 0xda, 0xa0,
		0x5c, 0x8c, 0x9a, 0x35, 0x01, 0xcf, 0x9a, 0x34, 0x89, 0xe6, 0x6f, 0xec, 0x39, 0xb9, 0xcd, 0x53,
		0xcf, 0x4d, 0xcf, 0x6f, 0xfa, 0x7e, 0xc2, 0xfc, 0x9b, 0x0b, 0xd3, 0x6e, 0x59, 0x2c, 0x50, 0x8f,
		0x09, 0x8b, 0x3c, 0xd5, 0x0b, 0xe3, 0xc7, 0xdc, 0x93, 0x62, 0xa5, 0xa7, 0xea, 0x95, 0xdb, 0x67,
		0x2e, 0xeb, 0x7f, 0x0c, 0x16, 0x6e, 0x8f, 0x2c, 0x8b, 0xe7, 0xd1, 0x2f, 0x1e, 0x73, 0x13, 0x55,
		0x99, 0x66, 0xa7, 0xd3, 0xea, 0xdb, 0x12, 0x24, 0xa3, 0xf1, 0xea, 0x5b, 0x32, 0xa3, 0xee, 0x46,
		0x3e, 0x71, 0x92, 0x2c, 0x5b, 0xd1, 0xfd, 0xc5, 0x84, 0x50, 0x24, 0x13, 0x67, 0x36, 0x99, 0x78,
		0xf2, 0x42, 0xc9, 0xd3, 0x88, 0xa7, 0x0f, 0x4a, 0x4e, 0x20, 0xd6, 0x91, 0x40, 0x4c, 0xee, 0x2d,
		0xe5, 0x3e, 0x81, 0xd8, 0x18, 0x0e, 0xb5, 0x89, 0x2a, 0xe6, 0xbc, 0xab, 0x88, 0x28, 0xe0, 0x92,
		0x53, 0x72, 0xd0, 0x00, 0xd7, 0x15, 0xbc, 0xce, 0x9c, 0xf8, 0x25, 0xa7, 0x37, 0xae, 0x6a, 0x15,
		0xb8, 0xe3, 0x3c, 0x94, 0xba, 0x42, 0xf6, 0xc3, 0x77, 0x0d, 0x6d, 0x64, 0x7b, 0xe1, 0x50, 0x21,
		0xbe, 0xb5, 0xba, 0xec, 0x81, 0xb9, 0xcc, 0xee, 0x6d, 0x65, 0x74, 0xca, 0x74, 0xa3, 0xcf, 0x5a,
		0xed, 0x4f, 0xca, 0xcd, 0xa7, 0x13, 0xa5, 0x56, 0xd5, 0xab, 0x1f, 0x94, 0x5b, 0x16, 0xf6, 0xd1,
		0x51, 0xea, 0xfb, 0xfa, 0x7e, 0x6d, 0x3f, 0x63, 0x11, 0xbb, 0xd9, 0x86, 0x65, 0x39, 0x68, 0xf7,
		0xfa, 0x8e, 0x62, 0x06, 0x58, 0x8c, 0xed, 0x1c, 0x78, 0x02, 0x35, 0x36, 0xc1, 0xc3, 0xb0, 0x8d,
		0xb0, 0x8d, 0xb0, 0x8d, 0x54, 0xb6, 0x51, 0x96, 0x8c, 0x9b, 0x7d, 0x21, 0x29, 0x37, 0xfb, 0x90,
		0x73, 0xc8, 0x39, 0xe4, 0x1c, 0x18, 0x58, 0x1e, 0x06, 0x6e, 0x00, 0x03, 0x13, 0x63, 0xe0, 0x06,
		0x30, 0x70, 0xac, 0xed, 0x1c, 0xba, 0xa6, 0x93, 0xa8, 0x7d, 0xda, 0x0a, 0x5b, 0x47, 0x14, 0x60,
		0x25, 0x61, 0x25, 0x0b, 0x6b, 0x25, 0x47, 0xa6, 0xed, 0x1f, 0x0a, 0x18, 0xc9, 0x1a, 0x06, 0xde,
		0x72, 0xd2, 0xc1, 0xc0, 0xdb, 0x37, 0xb7, 0x58, 0xaf, 0x61, 0xbe, 0x6d, 0xca, 0xc6, 0x18, 0x20,
		0x76, 0x05, 0x72, 0x95, 0x81, 0x61, 0x69, 0x31, 0x6c, 0x19, 0x10, 0x36, 0x1e, 0x84, 0x75, 0x7a,
		0x22, 0x31, 0x9e, 0xc9, 0xf3, 0x80, 0xaf, 0x80, 0xaf, 0x08, 0xf2, 0x20, 0xc8, 0x23, 0xcd, 0x3e,
		0xd6, 0x11, 0xe4, 0x21, 0x36, 0x90, 0xf5, 0x5d, 0x0e, 0xf2, 0x90, 0x66, 0x18, 0xb5, 0x7e, 0x84,
		0xa8, 0x3f, 0xbe, 0xd8, 0xf0, 0xa7, 0x74, 0x39, 0x3d, 0x8d, 0xfd, 0xf0, 0x8f, 0x7d, 0x66, 0xb1,
		0x01, 0xf3, 0xdd, 0x67, 0xcd, 0xf0, 0x9d, 0x81, 0xd9, 0x13, 0xcb, 0xf1, 0x0a, 0x7d, 0x0c, 0x81,
		0x24, 0x2f, 0xea, 0xcc, 0xae, 0x98, 0x85, 0xa0, 0x22, 0x7a, 0x4f, 0x40, 0xdf, 0x09, 0x18, 0x92,
		0x05, 0x69, 0x54, 0x34, 0xa5, 0xfd, 0x8d, 0x29, 0xb7, 0x61, 0x0b, 0x7b, 0xe5, 0xda, 0x75, 0x7c,
		0xa7, 0xe7, 0x58, 0x5b, 0x86, 0x16, 0xa2, 0x5a, 0x4d, 0x0e, 0xba, 0x88, 0xb3, 0x6f, 0x79, 0x9b,
		0x02, 0x95, 0xb5, 0x4a, 0x81, 0x30, 0x89, 0xfb, 0x20, 0x59, 0xde, 0xad, 0xc2, 0x91, 0xbb, 0x1e,
		0x56, 0xcd, 0x4c, 0xff, 0xaa, 0xa6, 0x38, 0xc6, 0x11, 0xb3, 0x4e, 0x90, 0x8d, 0x8c, 0x59, 0x27,
		0xb1, 0x9f, 0xc1, 0xac, 0x13, 0xcc, 0x3a, 0xc1, 0xac, 0x93, 0x55, 0x65, 0x8d, 0x59, 0x27, 0x98,
		0x75, 0x22, 0xf0, 0x89, 0xad, 0xd7, 0x26, 0x92, 0xcf, 0xef, 0x9c, 0xc7, 0x75, 0x79, 0x9d, 0xe0,
		0xf9, 0xf6, 0xf8, 0xc9, 0x64, 0xbb, 0x21, 0x34, 0xc5, 0xd3, 0x19, 0xd9, 0xbe, 0x36, 0x74, 0xcc,
		0x71, 0x19, 0xf4, 0x5b, 0x93, 0x3c, 0xe7, 0x3f, 0x2d, 0x38, 0xcd, 0x53, 0xa7, 0x99, 0xe6, 0xf9,
		0xfa, 0xb8, 0xf0, 0xec, 0x0e, 0xf2, 0x7c, 0x75, 0xdc, 0x37, 0xf1, 0x0c, 0xcf, 0xb9, 0x63, 0x8b,
		0x5f, 0x67, 0x3b, 0xff, 0x50, 0x3e, 0x46, 0xf7, 0xc4, 0x9b, 0x1c, 0x9f, 0xbf, 0x42, 0xdb, 0x58,
		0x93, 0xe1, 0x53, 0xaa, 0xb1, 0x4d, 0x54, 0xaa, 0x18, 0x1d, 0x4e, 0x82, 0xf2, 0xc4, 0xac, 0xfb,
		0xb3, 0xf1, 0x98, 0xac, 0x78, 0xae, 0x6c, 0x2c, 0x26, 0xcc, 0x9a, 0x17, 0x9b, 0xbc, 0x33, 0x2a,
		0x4f, 0x47, 0xd4, 0xf9, 0x4e, 0xa8, 0xe3, 0xc0, 0x56, 0xc8, 0xef, 0x69, 0x46, 0x9b, 0x12, 0x75,
		0x3b, 0xe5, 0xea, 0x72, 0x9a, 0xf5, 0xaa, 0x77, 0xc8, 0x65, 0xea, 0x72, 0x99, 0xbc, 0xd6, 0xfd,
		0xc9, 0x30, 0x2d, 0xae, 0x5b, 0xe3, 0x59, 0xb1, 0x7b, 0x44, 0x62, 0x37, 0x92, 0x40, 0x92, 0xb1,
		0xb5, 0x28, 0x7b, 0x93, 0xb1, 0x39, 0x19, 0xbb, 0x93, 0xb0, 0x7d, 0x72, 0xf7, 0x5c, 0xd9, 0x5a,
		0xe6, 0x72, 0xbd, 0x2a, 0x90, 0xfa, 0x71, 0x88, 0xd4, 0x65, 0x4e, 0x3a, 0x48, 0x5d, 0x7e, 0x73,
		0x8b, 0xc5, 0x5a, 0xa4, 0xe5, 0x6d, 0xd7, 0x77, 0x28, 0x2b, 0x53, 0xac, 0xfd, 0xcc, 0x0e, 0xb5,
		0x9e, 0x81, 0x31, 0xde, 0x21, 0x63, 0x5c, 0x8c, 0xa2, 0x7a, 0xcf, 0xfc, 0x53, 0x64, 0x0c, 0x46,
		0xf0, 0x34, 0x64, 0x1b, 0xb2, 0x0d, 0xa0, 0x0d, 0xa0, 0x0d, 0xa0, 0x0d, 0xa0, 0x0d, 0xa0, 0x2d,
		0x64, 0x8c, 0x7d, 0xc7, 0x35, 0x1e, 0x99, 0xd6, 0x73, 0x06, 0x43, 0xc7, 0x66, 0x1c, 0x19, 0x25,
		0x73, 0xe8, 0x64, 0x99, 0x14, 0xcc, 0x34, 0xcc, 0x74, 0xc1, 0xcc, 0xf4, 0x96, 0x07, 0xdb, 0x1d,
		0x38, 0x3d, 0x6d, 0x68, 0x19, 0xfe, 0x83, 0xe3, 0x0e, 0x8e, 0x23, 0x41, 0xf3, 0xd6, 0xff, 0x7a,
		0xe1, 0xb7, 0xf1, 0xef, 0x7f, 0xe4, 0x2a, 0x9c, 0x91, 0x6f, 0x5a, 0xe6, 0x9f, 0x4c, 0xa0, 0xe2,
		0x32, 0xa2, 0x00, 0xf5, 0x02, 0xf5, 0x02, 0x2f, 0x00, 0x5e, 0x00, 0xbc, 0x00, 0x78, 0x01, 0xf0,
		0x02, 0xf8, 0x3e, 0x99, 0x99, 0x32, 0xac, 0xb9, 0x34, 0xce, 0xf9, 0xbf, 0x24, 0x1e, 0x73, 0x14,
		0x37, 0x51, 0x35, 0xf8, 0x8a, 0xeb, 0xf0, 0xeb, 0xe6, 0x7e, 0x4e, 0x32, 0xd2, 0x48, 0x76, 0x22,
		0xf4, 0x64, 0x64, 0x51, 0x8c, 0xbb, 0x8c, 0x64, 0x73, 0x8a, 0x92, 0xcf, 0x27, 0x22, 0x99, 0x4b,
		0xc4, 0x31, 0x8f, 0x88, 0x63, 0x0e, 0xd1, 0xd6, 0xb2, 0xcb, 0x37, 0xb0, 0x2f, 0x61, 0x9e, 0xf9,
		0x5a, 0x86, 0xcd, 0x69, 0xbe, 0xf9, 0xdb, 0x39, 0xdb, 0x7c, 0x3b, 0x23, 0x92, 0x76, 0x6e, 0xfb,
		0xc3, 0xb7, 0xb3, 0xcd, 0x83, 0x0f, 0x09, 0x26, 0x99, 0x97, 0x90, 0x64, 0x9e, 0x56, 0x92, 0x79,
		0x6f, 0xba, 0xe7, 0x31, 0xf3, 0xcb, 0x27, 0x9f, 0x47, 0x6a, 0x39, 0x52, 0xcb, 0xc7, 0x1f, 0x1c,
		0x0f, 0x14, 0xd7, 0x6c, 0x7f, 0xa8, 0x19, 0xa3, 0x50, 0xab, 0x25, 0x4c, 0x67, 0x5d, 0x26, 0x10,
		0x37, 0x8d, 0x91, 0x63, 0x12, 0x79, 0x92, 0xc9, 0xe3, 0x1d, 0x24, 0xbe, 0xa7, 0x18, 0x0a, 0x41,
		0xe2, 0x3b, 0xdf, 0x7c, 0xee, 0x84, 0xf3, 0xb8, 0x69, 0xf2, 0xd6, 0xc7, 0x12, 0xdb, 0xe7, 0x15,
		0xf5, 0x3e, 0x44, 0x1c, 0x22, 0x0e, 0x11, 0xdf, 0x9e, 0x88, 0x67, 0xd2, 0x3d, 0xb4, 0xfd, 0xe1,
		0x41, 0x2c, 0x70, 0x99, 0xc0, 0xed, 0xb9, 0xf4, 0x87, 0xdd, 0x89, 0x34, 0x4a, 0x98, 0x80, 0x1a,
		0x20, 0x96, 0xef, 0xec, 0xd9, 0x8b, 0x0f, 0x9e, 0xa3, 0x27, 0x00, 0x9f, 0x01, 0x9f, 0x17, 0x98,
		0x88, 0xa3, 0x38, 0x73, 0xf2, 0xa0, 0xe4, 0x3a, 0x30, 0xd8, 0xb0, 0xa2, 0xda, 0xb0, 0xc4, 0x75,
		0x60, 0x31, 0x43, 0x05, 0x62, 0xa1, 0x03, 0x41, 0xc6, 0xe5, 0x66, 0x60, 0x11, 0x46, 0x16, 0x67,
		0x68, 0x51, 0xc6, 0x26, 0x63, 0x70, 0x32, 0x46, 0x27, 0x61, 0xf8, 0x64, 0x8c, 0x9f, 0x50, 0x00,
		0xb8, 0x05, 0x21, 0x7a, 0xf0, 0x3b, 0x7b, 0xd6, 0x38, 0xfa, 0x62, 0xaf, 0xb0, 0xcb, 0x84, 0x0e,
		0xe7, 0x06, 0xf3, 0xe5, 0x6c, 0x08, 0x0b, 0x0a, 0x85, 0xc0, 0xd0, 0x09, 0x0e, 0x95, 0x00, 0x91,
		0x0b, 0x12, 0xb9, 0x40, 0x91, 0x0a, 0x16, 0x9f, 0x80, 0x71, 0x0a, 0x1a, 0xbf, 0xf7, 0xb4, 0x91,
		0x5f, 0x46, 0xa6, 0xed, 0x97, 0xeb, 0x22, 0xfc, 0x32, 0x91, 0x9e, 0xba, 0x00, 0x09, 0xb1, 0xdc,
		0x90, 0xe9, 0x7f, 0x62, 0xfc, 0xaa, 0x50, 0xe5, 0x8a, 0x44, 0xc4, 0x88, 0x72, 0x46, 0x22, 0x7a,
		0xd4, 0x59, 0x0c, 0x33, 0x5e, 0xa0, 0xca, 0x66, 0x10, 0x64, 0xeb, 0xc5, 0xa3, 0x20, 0xc8, 0x29,
		0x59, 0x39, 0x8a, 0x7a, 0xad, 0x56, 0xa9, 0xed, 0xde, 0x71, 0xbc, 0xdb, 0xce, 0xd3, 0x9d, 0x94,
		0x92, 0x5b, 0x38, 0xd8, 0x2d, 0x44, 0x0c, 0xbe, 0x88, 0x16, 0x5d, 0xc0, 0x1e, 0x21, 0x25, 0xa0,
		0x0f, 0xa0, 0x0f, 0xa0, 0x8f, 0x44, 0xfc, 0x62, 0xf6, 0x99, 0xed, 0x9b, 0xfe, 0x33, 0x5f, 0xb2,
		0xfb, 0x8a, 0x87, 0x2b, 0xa0, 0xda, 0xd5, 0xb3, 0xc9, 0xab, 0x7c, 0x34, 0x3c, 0x02, 0xf6, 0x9b,
		0x2e, 0xf0, 0xb2, 0x7d, 0xdd, 0x6d, 0x7e, 0x69, 0xff, 0xde, 0x6d, 0xff, 0x71, 0xdd, 0x12, 0x65,
		0xc1, 0xd0, 0x8a, 0x79, 0xc2, 0x38, 0x89, 0x06, 0x2b, 0xad, 0x5f, 0xe6, 0xc5, 0x69, 0x4d, 0xdd,
		0xb2, 0xbd, 0xea, 0x64, 0x3e, 0x19, 0x93, 0xd7, 0x5e, 0x3d, 0x4d, 0x50, 0x0c, 0x81, 0xc1, 0x1a,
		0x93, 0x82, 0xc5, 0x82, 0xc5, 0x82, 0xc5, 0x4a, 0xc4, 0x2f, 0xdc, 0xdd, 0x11, 0x56, 0x8c, 0xd5,
		0x61, 0x5a, 0xda, 0x46, 0x6a, 0xe8, 0x8f, 0x33, 0x65, 0x3b, 0x7a, 0x3e, 0xc9, 0xe5, 0xe6, 0xf4,
		0xf2, 0x6f, 0xfa, 0xc3, 0x01, 0x57, 0x3c, 0x5c, 0x49, 0x76, 0xfb, 0x79, 0xe9, 0x0f, 0xff, 0xc6,
		0x9e, 0xbd, 0xc9, 0x9f, 0xb1, 0x2e, 0x43, 0xf9, 0x4f, 0x20, 0x49, 0x8d, 0x1b, 0x67, 0xec, 0x54,
		0x2c, 0x66, 0x8a, 0xfa, 0xb6, 0xad, 0xe8, 0x74, 0xd4, 0xb7, 0x25, 0x39, 0xef, 0x2d, 0x97, 0xcf,
		0xee, 0xef, 0x4f, 0x14, 0xd3, 0xc1, 0x44, 0xc4, 0x32, 0x51, 0x81, 0x9f, 0xa4, 0x51, 0xea, 0x1a,
		0xab, 0x97, 0xac, 0x3e, 0x46, 0xa1, 0xb8, 0x77, 0xd4, 0xa1, 0x2a, 0xa0, 0x2a, 0x5e, 0x7d, 0x43,
		0xdc, 0x3b, 0xc2, 0x8f, 0x82, 0x1f, 0x95, 0x4b, 0x3f, 0x0a, 0xf7, 0x8e, 0xf3, 0x2f, 0x82, 0x7b,
		0x47, 0xdc, 0x3b, 0x16, 0xf0, 0x38, 0x70, 0xef, 0xb8, 0x16, 0x79, 0xe0, 0xde, 0x11, 0xe8, 0x03,
		0xe8, 0x63, 0x9b, 0xe8, 0x03, 0xf7, 0x8e, 0x89, 0xad, 0x18, 0xee, 0x1d, 0xa5, 0x58, 0x1d, 0x05,
		0xf7, 0x8e, 0xb0, 0x58, 0xb0, 0x58, 0xb0, 0x58, 0x6f, 0xf0, 0x0b, 0xee, 0x1d, 0x97, 0x78, 0x62,
		0x9b, 0xf7, 0x8e, 0x3c, 0xe1, 0x70, 0x45, 0xe8, 0xda, 0x31, 0x41, 0xcb, 0xa8, 0xe4, 0xfb, 0x4f,
		0x5b, 0x15, 0x35, 0x69, 0x29, 0x95, 0x28, 0x34, 0x9a, 0xac, 0xb9, 0xd4, 0x7c, 0xd8, 0x24, 0x59,
		0x93, 0xa9, 0x79, 0x2f, 0x5f, 0xb8, 0xd9, 0x54, 0x44, 0x2c, 0x79, 0xd3, 0xa9, 0xd5, 0x47, 0x63,
		0x37, 0x9f, 0x4a, 0x7a, 0x1c, 0xb2, 0x7b, 0xaa, 0xad, 0x13, 0x10, 0xfa, 0x4e, 0x6a, 0xab, 0x22,
		0xa1, 0x16, 0xbe, 0x96, 0x3b, 0x66, 0xad, 0x33, 0xdf, 0x2e, 0xca, 0x28, 0xe7, 0xf6, 0x98, 0xfb,
		0xc4, 0xdc, 0x04, 0xd5, 0xdc, 0xd3, 0x07, 0x50, 0xcc, 0x8d, 0x62, 0xee, 0x79, 0x16, 0xe2, 0x98,
		0xe8, 0x39, 0x7e, 0x0e, 0xa5, 0xdc, 0x29, 0x02, 0xff, 0xdd, 0x1e, 0xe9, 0xd9, 0xef, 0xbb, 0xcc,
		0xf3, 0x04, 0x06, 0x7a, 0x4e, 0x08, 0x20, 0xff, 0x4a, 0x9e, 0x8f, 0x8b, 0xa4, 0x8a, 0xdd, 0xce,
		0xbf, 0x9a, 0xca, 0x58, 0x06, 0x12, 0xb0, 0xd0, 0xfa, 0x01, 0xda, 0xa2, 0x88, 0xda, 0x82, 0x3b,
		0x05, 0x8b, 0xd7, 0x80, 0x12, 0x19, 0x52, 0x04, 0x95, 0x11, 0x54, 0xde, 0xf9, 0xa0, 0xf2, 0x37,
		0xc7, 0xf3, 0x29, 0x42, 0xca, 0x47, 0x02, 0x34, 0x26, 0xab, 0xd9, 0x7a, 0x0a, 0x56, 0x74, 0x35,
		0x3c, 0xd4, 0xc4, 0x34, 0x0a, 0xf5, 0x0e, 0xd1, 0xee, 0x14, 0xdd, 0x8e, 0xad, 0xd9, 0xb9, 0xa7,
		0x2a, 0xe1, 0xde, 0xad, 0xec, 0xe1, 0x21, 0x21, 0xcd, 0x6b, 0xc3, 0xf7, 0x99, 0x6b, 0x93, 0x6d,
		0x67, 0x44, 0xf8, 0xfd, 0xd7, 0x92, 0x76, 0xd4, 0xf9, 0xf5, 0xb5, 0xac, 0x1d, 0x75, 0xc6, 0x3f,
		0x96, 0xc3, 0x3f, 0x7e, 0xea, 0x2f, 0xbf, 0xf4, 0xaf, 0x25, 0xad, 0x3a, 0xf9, 0xad, 0x5e, 0xfb,
		0x5a, 0xd2, 0x6a, 0x9d, 0xbd, 0xf7, 0x77, 0x77, 0xfb, 0x49, 0x9f, 0xd9, 0xfb, 0x59, 0x79, 0x51,
		0xc9, 0x5e, 0xbb, 0x43, 0xb9, 0xad, 0x57, 0xb7, 0x67, 0xff, 0x94, 0xb6, 0xb7, 0xff, 0x7e, 0x9f,
		0xd6, 0xee, 0xee, 0xfd, 0x85, 0x70, 0x7f, 0x49, 0x28, 0xbd, 0x7c, 0xc8, 0xb0, 0xd8, 0xd7, 0x21,
		0xf6, 0x21, 0x97, 0x19, 0xda, 0x43, 0x53, 0xfb, 0xd4, 0xf9, 0x59, 0xfe, 0x50, 0x7d, 0x39, 0xde,
		0xfb, 0xd9, 0x78, 0x59, 0xfe, 0xe5, 0xaf, 0x75, 0x1f, 0x2b, 0x7f, 0x68, 0xbc, 0x1c, 0x6f, 0xf8,
		0x97, 0xfa, 0xcb, 0x71, 0x4c, 0x1a, 0xb5, 0x97, 0xf7, 0x2b, 0x1f, 0x0d, 0x7e, 0xaf, 0x6f, 0x7a,
		0xa0, 0xba, 0xe1, 0x81, 0xca, 0xa6, 0x07, 0x2a, 0x1b, 0x1e, 0xd8, 0xf8, 0x4a, 0xfa, 0x86, 0x07,
		0x6a, 0x2f, 0xbf, 0x56, 0x3e, 0xff, 0x7e, 0xfd, 0x47, 0xeb, 0x2f, 0x7b, 0xbf, 0x36, 0xfd, 0x5b,
		0xe3, 0xe5, 0xd7, 0xf1, 0xde, 0xde, 0x0e, 0x2b, 0x42, 0xb0, 0x5b, 0xfa, 0xec, 0x96, 0x3d, 0xc3,
		0xf0, 0x6e, 0xbb, 0xef, 0x21, 0x68, 0x98, 0x08, 0x91, 0x7b, 0xdf, 0x19, 0x18, 0xa6, 0xad, 0xc5,
		0x98, 0x65, 0x95, 0xb6, 0xfd, 0x51, 0xcf, 0x99, 0xfd, 0x18, 0x06, 0x27, 0x33, 0x07, 0xde, 0x29,
		0x2b, 0x4f, 0x22, 0xa2, 0xd1, 0x28, 0xbf, 0x0f, 0xb4, 0x74, 0x65, 0x95, 0x3e, 0xcc, 0x58, 0x89,
		0xba, 0x04, 0x82, 0x18, 0xbe, 0x29, 0xd4, 0x15, 0x2a, 0x2b, 0x47, 0xa6, 0xd7, 0x2a, 0x38, 0x34,
		0x32, 0xd5, 0x4a, 0xa4, 0xa0, 0x09, 0x34, 0x10, 0x35, 0x16, 0x51, 0xdf, 0xbf, 0x7f, 0xff, 0xfe,
		0xab, 0xa1, 0xfd, 0xd9, 0xd4, 0xfe, 0x55, 0xd2, 0x8e, 0xba, 0x9d, 0xb9, 0xbf, 0xdc, 0xdd, 0x69,
		0xdd, 0xce, 0xde, 0xcf, 0xd2, 0x87, 0x7a, 0xf9, 0x65, 0xef, 0xb7, 0xd9, 0xef, 0x3b, 0x77, 0x77,
		0xfb, 0x7b, 0xff, 0xc5, 0xf3, 0xd4, 0x6f, 0x7b, 0xbf, 0x82, 0x67, 0xd5, 0x6c, 0x6c, 0xa5, 0x0c,
		0x6c, 0x17, 0x60, 0xba, 0xf4, 0x37, 0x94, 0x00, 0xcd, 0x74, 0x50, 0xe4, 0xb5, 0x72, 0x96, 0x86,
		0xe7, 0x39, 0x3d, 0x33, 0x4c, 0x0b, 0x23, 0x2a, 0xf6, 0x5a, 0xa1, 0xc8, 0x19, 0x3b, 0xe6, 0x19,
		0x08, 0xb4, 0x42, 0xe4, 0xb6, 0x75, 0xf3, 0xf7, 0xd6, 0x0d, 0x1f, 0xeb, 0x74, 0x70, 0x4d, 0x83,
		0x6b, 0x9a, 0x04, 0x04, 0x71, 0x4d, 0xa3, 0xa8, 0xcc, 0x1e, 0x0d, 0x98, 0x3b, 0xce, 0x32, 0x25,
		0xb8, 0xad, 0xa9, 0x0a, 0xd0, 0x68, 0xd9, 0xa3, 0x81, 0x38, 0xdb, 0xb5, 0x9d, 0xdb, 0x71, 0x39,
		0x03, 0x05, 0x8c, 0x55, 0x4b, 0xc1, 0x1e, 0x4d, 0x74, 0x12, 0x81, 0x79, 0x2f, 0x07, 0xe4, 0xae,
		0x5b, 0x34, 0xc4, 0xf4, 0x90, 0xd8, 0xd5, 0xd5, 0xb9, 0xba, 0x4d, 0x27, 0x5b, 0x6d, 0x3b, 0x67,
		0xa1, 0x08, 0x11, 0xec, 0x76, 0xb8, 0x33, 0x24, 0xae, 0xdd, 0x78, 0x5f, 0x12, 0xf7, 0xf9, 0x79,
		0xcd, 0x24, 0x1d, 0x2b, 0xa5, 0x2d, 0xc1, 0x91, 0x2c, 0xd7, 0xf0, 0x99, 0xf7, 0x23, 0xd7, 0xf3,
		0xc5, 0x41, 0xc8, 0x84, 0xce, 0x36, 0xa1, 0x47, 0x82, 0xd9, 0x84, 0x40, 0x1e, 0x40, 0x1e, 0x40,
		0x1e, 0x62, 0xfc, 0x92, 0x7c, 0xd6, 0xe2, 0x46, 0xd4, 0x51, 0xce, 0xb0, 0x82, 0xb4, 0x99, 0xff,
		0x1f, 0xc7, 0xfd, 0xae, 0x99, 0xb6, 0xe7, 0x1b, 0x76, 0x8f, 0xc0, 0x5f, 0x5b, 0xa1, 0x08, 0xe5,
		0x03, 0xe5, 0x03, 0xe5, 0x23, 0x24, 0x43, 0x1a, 0x51, 0xb7, 0x8e, 0x86, 0x00, 0x8d, 0xeb, 0xa8,
		0x72, 0xaf, 0xa7, 0xd9, 0xcc, 0x0f, 0x5e, 0xed, 0x78, 0xf9, 0x3d, 0xbd, 0xd7, 0xfe, 0x71, 0xfe,
		0xdf, 0x26, 0x59, 0xea, 0xf3, 0x9f, 0x0e, 0x96, 0x9e, 0x61, 0x45, 0x39, 0x74, 0x5c, 0x02, 0x1c,
		0x19, 0x52, 0xd9, 0x26, 0x8a, 0x2c, 0xeb, 0x15, 0x60, 0x48, 0xa8, 0x71, 0xa8, 0xf1, 0x34, 0xd4,
		0x78, 0x20, 0xed, 0x9a, 0x3d, 0x1a, 0xdc, 0xc7, 0xae, 0xcf, 0x7c, 0x4d, 0x84, 0xd0, 0xee, 0x71,
		0x99, 0x18, 0xda, 0x3d, 0x0a, 0x1d, 0x05, 0xda, 0x3d, 0xa2, 0xdd, 0xa3, 0x44, 0xc0, 0xe4, 0xb2,
		0x07, 0xe6, 0x12, 0x40, 0xa6, 0x31, 0x1d, 0x84, 0xde, 0x00, 0x9b, 0x00, 0x9b, 0x10, 0x7a, 0x2b,
		0x4e, 0xe8, 0xcd, 0x0b, 0x99, 0x5a, 0x23, 0xab, 0x06, 0x5d, 0xa2, 0x07, 0xc5, 0x03, 0xc5, 0x03,
		0xc5, 0x93, 0x88, 0x5f, 0x48, 0x0a, 0x20, 0x0b, 0x5a, 0x1a, 0x4a, 0x5a, 0xe0, 0x48, 0x9a, 0x61,
		0x4e, 0x9f, 0xdf, 0x99, 0x9b, 0x42, 0xc6, 0x4c, 0xe7, 0x74, 0xe6, 0xa8, 0x60, 0xb1, 0x28, 0x75,
		0x20, 0xc4, 0x05, 0x89, 0x19, 0x17, 0x53, 0x54, 0x82, 0xe5, 0xb6, 0xf0, 0x30, 0xf3, 0x8a, 0x0b,
		0x6c, 0x95, 0xcb, 0x02, 0x43, 0xa4, 0xe4, 0xaf, 0x72, 0xf4, 0x13, 0x73, 0x3d, 0xde, 0x66, 0xd1,
		0x0b, 0xd6, 0x65, 0x4a, 0x68, 0x9b, 0xa1, 0xb8, 0x2a, 0xc2, 0x70, 0xf0, 0x86, 0xe1, 0x0d, 0xa7,
		0xe1, 0x0d, 0x8f, 0x4c, 0xdb, 0x3f, 0x24, 0x70, 0x84, 0x6b, 0xb8, 0xb7, 0x5c, 0x22, 0x46, 0x5c,
		0x24, 0x8c, 0x7b, 0x4b, 0xf1, 0xa3, 0xa8, 0xe2, 0xce, 0xb2, 0x68, 0x50, 0xa9, 0x30, 0x43, 0x38,
		0x26, 0xbd, 0xe2, 0x27, 0x7f, 0xa6, 0x32, 0xfa, 0xff, 0x76, 0xfc, 0x95, 0x93, 0x3f, 0x33, 0x34,
		0xfa, 0x1f, 0xd3, 0xbc, 0x25, 0x83, 0x3d, 0xb4, 0x92, 0xdd, 0x82, 0x36, 0x41, 0x2b, 0x59, 0xf8,
		0x49, 0xf0, 0x93, 0xd0, 0x4a, 0x96, 0x9b, 0x06, 0x5a, 0xc9, 0xa6, 0xba, 0x53, 0x74, 0x3b, 0xb6,
		0x66, 0xe7, 0xd0, 0x4a, 0x16, 0xad, 0x64, 0xd1, 0x4a, 0x96, 0xc4, 0x6b, 0x94, 0x10, 0x7e, 0x50,
		0xd0, 0x4a, 0x16, 0xad, 0x64, 0x71, 0xa3, 0x5b, 0x1c, 0x45, 0x08, 0x76, 0x43, 0x2b, 0x59, 0xb4,
		0x92, 0x45, 0x2b, 0x59, 0x91, 0x37, 0x43, 0x2b, 0xd9, 0x05, 0x56, 0x42, 0x2b, 0x59, 0xb4, 0x92,
		0x25, 0x54, 0xad, 0x0a, 0x5a, 0xc9, 0xa2, 0x95, 0x6c, 0x6c, 0x4c, 0x87, 0x56, 0xb2, 0xd2, 0xbf,
		0x17, 0xad, 0x64, 0xd1, 0x4a, 0x96, 0x4f, 0xe8, 0x71, 0x4d, 0x13, 0x87, 0x20, 0xae, 0x69, 0x96,
		0xc3, 0xf5, 0x68, 0x25, 0xbb, 0x66, 0x6b, 0xd0, 0x4a, 0x36, 0x55, 0xf7, 0x01, 0xad, 0x64, 0xa5,
		0xc3, 0x11, 0xb4, 0x92, 0x4d, 0x05, 0x7a, 0xa0, 0x9f, 0x05, 0x90, 0x07, 0x90, 0x47, 0x6a, 0xc8,
		0x03, 0xad, 0x64, 0x39, 0x37, 0x0e, 0xad, 0x64, 0xa1, 0x7c, 0xa0, 0x7c, 0x14, 0x52, 0x19, 0x42,
		0x2b, 0xd9, 0xad, 0x2b, 0x4a, 0xe7, 0xe1, 0xc1, 0x63, 0x04, 0x48, 0x72, 0x42, 0x07, 0x4a, 0x11,
		0x4a, 0x11, 0x4a, 0x31, 0x99, 0x0f, 0x66, 0xfb, 0xf5, 0x2a, 0x81, 0x16, 0xac, 0xa2, 0xb4, 0x71,
		0x89, 0xd8, 0xf4, 0x06, 0xf4, 0x48, 0xd7, 0x2b, 0x95, 0x86, 0x5e, 0xaa, 0xd4, 0x0f, 0x6b, 0xd5,
		0x46, 0xa3, 0x76, 0x58, 0x3a, 0xcc, 0x51, 0x85, 0x5d, 0x20, 0x66, 0xc5, 0xad, 0x75, 0x5c, 0x3d,
		0x9b, 0x06, 0xaa, 0x1f, 0x53, 0x7a, 0xba, 0x93, 0xaa, 0xc6, 0x64, 0x3f, 0x7c, 0xd7, 0xd0, 0x46,
		0x01, 0x6a, 0xba, 0xb7, 0x04, 0x75, 0x67, 0xd8, 0x86, 0x95, 0x8d, 0xfd, 0xba, 0xcc, 0xd4, 0x19,
		0xdc, 0x7c, 0x3a, 0x51, 0x6a, 0x47, 0xa5, 0x9a, 0xa2, 0x29, 0x97, 0x63, 0x8c, 0xa8, 0xb4, 0xcd,
		0x01, 0x53, 0xae, 0x5d, 0xc7, 0x77, 0x7a, 0x8e, 0xa5, 0xfc, 0x7d, 0xdc, 0xb3, 0x42, 0xa9, 0x1e,
		0xcf, 0x7e, 0x67, 0xd8, 0xfd, 0x3b, 0xbb, 0x69, 0x3d, 0x3a, 0xae, 0xe9, 0x7f, 0x1b, 0x78, 0xca,
		0xed, 0x90, 0xf5, 0xcc, 0x07, 0xb3, 0x17, 0xde, 0x0d, 0x7c, 0x50, 0x6e, 0x59, 0xc8, 0xc3, 0xca,
		0x21, 0x45, 0xe8, 0x9a, 0x08, 0x57, 0xac, 0xc3, 0x17, 0xb3, 0x03, 0x21, 0x12, 0x32, 0x6a, 0xa8,
		0xb1, 0x16, 0x72, 0xc8, 0x3d, 0x31, 0x54, 0x45, 0x4b, 0xf0, 0x57, 0x86, 0x8e, 0x65, 0x69, 0xa6,
		0xed, 0x33, 0xf7, 0xc9, 0xb0, 0x28, 0x66, 0x60, 0xcc, 0x93, 0x83, 0xf7, 0x02, 0xef, 0x05, 0xde,
		0x4b, 0x22, 0x7e, 0x19, 0x99, 0xb6, 0x5f, 0xd1, 0x09, 0xdc, 0x97, 0x06, 0xdc, 0x97, 0x0d, 0x10,
		0x19, 0x13, 0x25, 0x32, 0xe3, 0xad, 0x54, 0xf5, 0xa3, 0xea, 0x51, 0xbd, 0xa1, 0x1f, 0x61, 0xac,
		0x04, 0xc0, 0x08, 0xe6, 0x70, 0xe1, 0x02, 0x1e, 0x80, 0x09, 0x80, 0x29, 0xb9, 0xb4, 0x63, 0x0e,
		0x17, 0x50, 0x13, 0xe6, 0x70, 0x01, 0x30, 0xed, 0x1e, 0x60, 0xc2, 0x1c, 0x2e, 0xc0, 0x26, 0xc0,
		0x26, 0xc0, 0xa6, 0xc4, 0xfc, 0xb2, 0x23, 0x79, 0x8b, 0xae, 0xe3, 0xf8, 0x5a, 0x9f, 0x59, 0xc6,
		0xb3, 0xb8, 0x92, 0x9c, 0xa3, 0x05, 0x85, 0x03, 0x85, 0x03, 0x85, 0x93, 0x88, 0x5f, 0x90, 0x96,
		0x23, 0xdb, 0x43, 0x43, 0x5a, 0x0e, 0xd2, 0x72, 0xe0, 0xc0, 0x91, 0x39, 0x70, 0x48, 0xcb, 0x59,
		0xaf, 0xc8, 0x65, 0x26, 0x79, 0x34, 0xf6, 0x2b, 0x48, 0xcc, 0xc9, 0x59, 0x62, 0x4e, 0x70, 0x66,
		0x08, 0xee, 0x48, 0xf3, 0x5d, 0x4c, 0x6f, 0x48, 0x35, 0xe3, 0x69, 0x99, 0x20, 0xbc, 0x18, 0x78,
		0x31, 0xf0, 0x62, 0xe0, 0xc5, 0xc0, 0x8b, 0x81, 0x17, 0x03, 0x2f, 0x06, 0x5e, 0x0c, 0xbc, 0x18,
		0x1a, 0x44, 0x5c, 0x85, 0x0f, 0x93, 0x33, 0x1f, 0xa6, 0x0a, 0x0f, 0x46, 0x86, 0x07, 0xe3, 0x85,
		0x3c, 0xac, 0x91, 0x0d, 0x32, 0x5a, 0xa2, 0x07, 0xff, 0x05, 0xfe, 0x0b, 0xfc, 0x97, 0x64, 0xfe,
		0x0b, 0xc5, 0xec, 0x9e, 0x82, 0x4e, 0x35, 0x22, 0x9d, 0xcd, 0x43, 0xda, 0x1c, 0x9d, 0xbe, 0x35,
		0x71, 0x6e, 0x66, 0xf0, 0x64, 0xba, 0x1d, 0x71, 0x8e, 0x66, 0xed, 0x14, 0x65, 0x84, 0x01, 0xf1,
		0x2c, 0x9d, 0x8c, 0x8b, 0x29, 0x86, 0x98, 0xe4, 0x76, 0x66, 0x4e, 0xe6, 0x15, 0x17, 0xd8, 0x2a,
		0x97, 0xb3, 0x71, 0xd0, 0x4d, 0x7e, 0x8d, 0x9f, 0xe9, 0xbb, 0x86, 0x2f, 0xd0, 0x76, 0x79, 0x6e,
		0x84, 0xf4, 0x98, 0x10, 0x3c, 0x4b, 0x78, 0x96, 0xf0, 0x2c, 0x13, 0xf1, 0xcb, 0xc8, 0xb4, 0xfd,
		0x43, 0x02, 0xa7, 0xb2, 0x86, 0x9b, 0xb1, 0x25, 0x62, 0xa8, 0xc0, 0x12, 0x3a, 0x0a, 0x19, 0x17,
		0x61, 0x7a, 0x0d, 0xf5, 0x57, 0x19, 0x07, 0x1e, 0xb8, 0xf8, 0x5a, 0xaf, 0xa7, 0xe9, 0xaf, 0x51,
		0x70, 0xdb, 0x95, 0x8b, 0xdb, 0x2e, 0x5c, 0x71, 0xc9, 0x70, 0x3d, 0x9e, 0xa8, 0x92, 0xf3, 0x9e,
		0xc4, 0x92, 0xf2, 0x48, 0x6a, 0x30, 0xab, 0xa8, 0xbf, 0x84, 0xbb, 0x04, 0x77, 0x09, 0xee, 0x52,
		0x11, 0xdc, 0xa5, 0x32, 0xdc, 0xa5, 0xac, 0xb8, 0x4b, 0x55, 0x38, 0x4b, 0x45, 0x83, 0x4a, 0xef,
		0x24, 0x32, 0xa6, 0xda, 0xb4, 0x6d, 0xc7, 0x1f, 0x83, 0x56, 0x1e, 0x5e, 0x54, 0xbd, 0xde, 0x37,
		0x36, 0x30, 0x86, 0xd1, 0x24, 0x8a, 0x21, 0xb3, 0xc7, 0x93, 0x24, 0x02, 0x5b, 0xe3, 0xb3, 0xc1,
		0xc1, 0xe4, 0x0f, 0xdb, 0x1f, 0x1e, 0x78, 0xcc, 0x0d, 0xa0, 0xd7, 0xe4, 0xcf, 0x03, 0xcf, 0x37,
		0x7c, 0x1e, 0x4f, 0x41, 0xf5, 0x7c, 0x77, 0xd4, 0xf3, 0xed, 0x89, 0x7a, 0xbf, 0x8a, 0xbe, 0xf2,
		0x36, 0xfc, 0xaa, 0xee, 0xe4, 0x8f, 0x4b, 0x7f, 0xd8, 0xbd, 0x1d, 0x7f, 0xe3, 0xe4, 0xcf, 0xee,
		0x6d, 0xf8, 0x8d, 0xef, 0xe4, 0xec, 0x7e, 0xbc, 0x4f, 0xc6, 0x3c, 0x9f, 0x00, 0x5a, 0x84, 0xa3,
		0x56, 0x13, 0x5d, 0xbf, 0xaa, 0xe7, 0xa6, 0xe7, 0x37, 0x7d, 0x3f, 0x59, 0x9b, 0x92, 0xc0, 0x26,
		0xb4, 0x2c, 0x16, 0xc0, 0x84, 0x84, 0x82, 0x1e, 0xa8, 0xb0, 0xb9, 0x27, 0xcb, 0x87, 0xd5, 0x6a,
		0xbd, 0x51, 0xad, 0x96, 0x1a, 0x95, 0x46, 0xe9, 0xa8, 0x56, 0x2b, 0xd7, 0xcb, 0x09, 0x6c, 0xa6,
		0x7a, 0xe5, 0xf6, 0x99, 0xcb, 0xfa, 0x1f, 0x83, 0x85, 0xdb, 0x23, 0xcb, 0xe2, 0x79, 0xf4, 0x8b,
		0x17, 0xf6, 0x68, 0x89, 0xaf, 0x59, 0xe2, 0x9e, 0x07, 0xa7, 0x9c, 0x08, 0xc8, 0x47, 0x02, 0xc9,
		0xe0, 0x96, 0x88, 0x78, 0xb2, 0xf0, 0x36, 0x67, 0xbf, 0xfe, 0x89, 0x37, 0xf6, 0x38, 0xe9, 0xde,
		0xf2, 0xec, 0x69, 0x8c, 0xcd, 0x4c, 0xbe, 0x89, 0xaf, 0xef, 0xde, 0xe6, 0x3d, 0x79, 0x65, 0x3f,
		0xd4, 0xb1, 0x52, 0x7c, 0x6b, 0x1b, 0xe6, 0x6e, 0xd1, 0xde, 0xd6, 0xa1, 0x51, 0xe2, 0xc5, 0x1b,
		0x1f, 0x8b, 0x9c, 0xbc, 0x37, 0x66, 0x60, 0x26, 0x71, 0xe6, 0x92, 0x3b, 0x6d, 0x49, 0x9d, 0x33,
		0x6e, 0x27, 0x8c, 0xdb, 0xd9, 0xe2, 0x72, 0xaa, 0xc4, 0x24, 0xe4, 0xd4, 0x8c, 0xa7, 0xd2, 0x55,
		0x63, 0xe4, 0x7f, 0xd3, 0x06, 0xa6, 0x37, 0x30, 0xfc, 0xde, 0xb7, 0xf8, 0x7b, 0x18, 0x4d, 0xf6,
		0x5e, 0x78, 0x3c, 0xae, 0xa9, 0x4a, 0x14, 0x5b, 0x48, 0x1c, 0x4b, 0xe0, 0x89, 0x1d, 0xf0, 0xc7,
		0x0a, 0x78, 0x63, 0x03, 0xc2, 0xb1, 0x00, 0x61, 0xdf, 0x5f, 0xc8, 0xd7, 0xa7, 0x05, 0x2f, 0x89,
		0x7d, 0xf7, 0xe8, 0xbc, 0x7a, 0xce, 0xc8, 0xf6, 0x99, 0x9b, 0xa8, 0xf0, 0x6f, 0xca, 0x80, 0x09,
		0xf2, 0xca, 0x38, 0xfd, 0x71, 0x0e, 0x7c, 0x2c, 0xe2, 0x6f, 0x8b, 0x5e, 0x47, 0x92, 0x39, 0x71,
		0xe2, 0x4e, 0x1b, 0x4f, 0xbc, 0x57, 0xc4, 0x3f, 0x9e, 0x85, 0x26, 0x84, 0x30, 0x69, 0x56, 0x77,
		0x53, 0x92, 0x0b, 0xd3, 0xa1, 0x82, 0x83, 0x31, 0xcc, 0x3c, 0xb3, 0x8d, 0x7b, 0x8b, 0x69, 0xb6,
		0x3f, 0xd4, 0x02, 0xab, 0x93, 0xdc, 0x56, 0x2d, 0x13, 0x88, 0xa9, 0x9b, 0x78, 0xa2, 0xf7, 0x49,
		0x3a, 0x26, 0x76, 0x60, 0x35, 0x61, 0x35, 0x53, 0xb6, 0x9a, 0xc9, 0x3b, 0x0c, 0x26, 0xec, 0x28,
		0x48, 0x29, 0xf2, 0x7d, 0x5e, 0x51, 0xef, 0x43, 0xc4, 0x21, 0xe2, 0x10, 0xf1, 0xed, 0x89, 0x78,
		0x76, 0x83, 0x3c, 0x31, 0x23, 0xc9, 0x49, 0x42, 0x3c, 0x6f, 0x87, 0x8a, 0x5f, 0x09, 0xf0, 0xbc,
		0x4b, 0xb0, 0x43, 0x71, 0x77, 0x26, 0xc9, 0x8e, 0xa8, 0xaf, 0x46, 0x98, 0x62, 0xee, 0xc1, 0xfa,
		0xd5, 0xaf, 0xae, 0x6d, 0xcd, 0xba, 0xd4, 0xa1, 0xeb, 0xf4, 0x98, 0xe7, 0xb1, 0xcd, 0x95, 0xc8,
		0x73, 0x0d, 0xb1, 0xa7, 0x1f, 0xdd, 0xb0, 0x3f, 0xaf, 0x87, 0xaf, 0xde, 0x54, 0x9b, 0x71, 0xd4,
		0xe4, 0xbc, 0x5a, 0x0c, 0xde, 0xe7, 0xb5, 0xfd, 0x8b, 0xa9, 0x07, 0x13, 0xeb, 0xbd, 0xc4, 0x7a,
		0x6e, 0x59, 0xaf, 0x85, 0x2f, 0x4e, 0xc4, 0x93, 0x6f, 0x05, 0x9c, 0xa6, 0xa7, 0x16, 0x3f, 0x52,
		0x39, 0x7d, 0x20, 0x1f, 0xb1, 0xca, 0x37, 0x98, 0x20, 0xbf, 0xc1, 0xca, 0xd7, 0x99, 0x24, 0xe5,
		0x68, 0xe5, 0xd0, 0xe4, 0x00, 0x83, 0xc1, 0x43, 0xc5, 0x00, 0x60, 0x31, 0x99, 0xac, 0x78, 0x08,
		0x2c, 0x1e, 0x13, 0x66, 0x0d, 0x82, 0x59, 0xcc, 0x78, 0x70, 0xd9, 0x03, 0x0f, 0x04, 0x4b, 0xd0,
		0xbb, 0x49, 0xbd, 0x9e, 0x18, 0xf8, 0xfd, 0xfd, 0x31, 0xae, 0x39, 0x08, 0x18, 0x3e, 0x45, 0x2f,
		0x2d, 0xde, 0x0d, 0xd4, 0xca, 0xee, 0x24, 0xb9, 0xcd, 0x8f, 0xa9, 0xe5, 0x13, 0x6b, 0x7b, 0x08,
		0x66, 0x8e, 0x05, 0x33, 0xae, 0xd5, 0x88, 0x1e, 0x30, 0xdc, 0xc7, 0xe4, 0x8d, 0x6e, 0x66, 0x57,
		0x5d, 0xc1, 0xd3, 0x09, 0x77, 0x8b, 0x2f, 0x8b, 0x96, 0x3b, 0x7b, 0x56, 0x24, 0x6b, 0x56, 0x80,
		0x9d, 0x45, 0xd9, 0x9a, 0x8c, 0xbd, 0xc9, 0xd8, 0x9c, 0x86, 0xdd, 0x39, 0xa3, 0xef, 0x09, 0xcf,
		0x9c, 0x3b, 0xef, 0x75, 0xbe, 0xb2, 0xd6, 0xb4, 0x1f, 0x79, 0x0e, 0x3c, 0xea, 0xd0, 0x20, 0x75,
		0x85, 0x5c, 0x49, 0x4a, 0xd1, 0xd3, 0xdc, 0xc9, 0x4a, 0x33, 0x0a, 0x84, 0x49, 0x4b, 0x11, 0x51,
		0xfe, 0xe4, 0xa5, 0x55, 0x12, 0x89, 0x93, 0x98, 0x92, 0x73, 0x66, 0x82, 0x33, 0x53, 0x7b, 0xc3,
		0x91, 0x36, 0xf2, 0x8c, 0x47, 0x36, 0x89, 0x33, 0xf0, 0xeb, 0xdc, 0x15, 0x4a, 0xd0, 0xbf, 0xd0,
		0xbf, 0x85, 0xd3, 0xbf, 0x3c, 0x39, 0x0c, 0xcb, 0x2c, 0xce, 0xd1, 0x23, 0x47, 0xb0, 0xc6, 0x40,
		0xa0, 0xd0, 0x82, 0xa2, 0xa6, 0x80, 0xaa, 0xf4, 0x9a, 0x3c, 0x71, 0x9d, 0x2e, 0x61, 0x5d, 0xa0,
		0x66, 0x80, 0xa4, 0x56, 0x40, 0x42, 0x4e, 0x44, 0x1e, 0x76, 0x3d, 0xa5, 0x34, 0xfd, 0x4e, 0xa6,
		0x2c, 0xf5, 0xc8, 0xe3, 0x98, 0x55, 0xb9, 0xc6, 0x4e, 0x87, 0x74, 0x60, 0xa5, 0x61, 0xa5, 0x61,
		0xa5, 0x61, 0xa5, 0x61, 0xa5, 0x61, 0xa5, 0x61, 0xa5, 0x69, 0xac, 0xb4, 0x6f, 0x5a, 0xe6, 0x9f,
		0x7c, 0x75, 0x77, 0x8b, 0x66, 0x7a, 0x8e, 0x10, 0xec, 0x34, 0xec, 0x74, 0xe1, 0xec, 0xf4, 0x90,
		0xb9, 0x3d, 0x66, 0xfb, 0xc6, 0x23, 0x13, 0x30, 0xd4, 0x35, 0x18, 0x6a, 0x18, 0x6a, 0x69, 0x86,
		0xba, 0x54, 0x82, 0x5d, 0x2e, 0x80, 0x5d, 0x1e, 0xb0, 0x81, 0xe3, 0x3e, 0x8f, 0x1d, 0x5f, 0x7e,
		0xa3, 0xbc, 0x40, 0x05, 0x16, 0x19, 0x16, 0xb9, 0x70, 0x16, 0x79, 0xc4, 0x3b, 0x99, 0x0f, 0x6e,
		0x33, 0xac, 0x31, 0xdc, 0x66, 0x98, 0x67, 0x31, 0xf3, 0x4c, 0xe1, 0x39, 0xaf, 0xa1, 0x05, 0x53,
		0x0d, 0x53, 0x0d, 0xe7, 0x19, 0xce, 0x33, 0xcc, 0x35, 0x9c, 0x67, 0x58, 0xe7, 0xc4, 0xd6, 0x79,
		0x52, 0x4f, 0xc6, 0x69, 0x8f, 0xc3, 0xa7, 0x61, 0x81, 0x61, 0x81, 0x91, 0x8c, 0xbb, 0xcc, 0xdf,
		0x49, 0x93, 0x71, 0xa5, 0x48, 0x77, 0x92, 0x42, 0xad, 0x55, 0x10, 0x12, 0xbb, 0x60, 0x0b, 0xb2,
		0x0d, 0xd9, 0x46, 0x20, 0x0c, 0xc8, 0x1a, 0xc8, 0x1a, 0x81, 0x30, 0x40, 0xed, 0x4d, 0x9b, 0xe6,
		0xf9, 0x86, 0xeb, 0x6b, 0xbe, 0x29, 0x02, 0xb8, 0xe7, 0x68, 0xc0, 0x34, 0xc3, 0x34, 0x17, 0xce,
		0x34, 0x07, 0x9c, 0xed, 0x9b, 0xbd, 0xef, 0x5e, 0xea, 0xf6, 0xf9, 0x8b, 0x3d, 0x56, 0x8d, 0xaa,
		0x6d, 0xd8, 0x8e, 0xc7, 0x7a, 0x8e, 0xdd, 0xe7, 0x99, 0x55, 0x02, 0x3b, 0x0f, 0x3b, 0x0f, 0x3b,
		0x5f, 0x3c, 0x3b, 0x9f, 0xab, 0xa6, 0xf4, 0x51, 0x6b, 0xa6, 0xe9, 0x4f, 0x89, 0x67, 0x36, 0xc4,
		0xec, 0x36, 0x75, 0x3d, 0xfd, 0xa2, 0xe9, 0x4f, 0x49, 0x46, 0x35, 0xc8, 0xee, 0x5c, 0x36, 0x19,
		0xc5, 0xf0, 0x76, 0x18, 0x23, 0x59, 0x65, 0x73, 0xf2, 0x4a, 0x66, 0x92, 0xca, 0x65, 0x8e, 0x4a,
		0x65, 0x8e, 0xca, 0xe4, 0x6d, 0x75, 0x83, 0x5b, 0xe1, 0x58, 0xba, 0xae, 0x70, 0x2b, 0x3c, 0x9a,
		0xcf, 0xee, 0x70, 0x6f, 0xb5, 0x5b, 0xe3, 0xd9, 0x11, 0x91, 0x4e, 0x71, 0x9e, 0xf7, 0x4d, 0x9b,
		0x0c, 0xbc, 0x78, 0xb3, 0x55, 0xdc, 0xdc, 0x67, 0xb3, 0xd1, 0x2b, 0xce, 0x7b, 0xf6, 0x34, 0x9f,
		0xb9, 0x83, 0x5c, 0xf6, 0x8b, 0x8b, 0x5e, 0x3e, 0xad, 0x9e, 0x71, 0xbd, 0xe9, 0xee, 0xc7, 0x6c,
		0x19, 0x37, 0xf9, 0x3c, 0x71, 0xc7, 0xb8, 0x92, 0xb4, 0xe9, 0x16, 0x6f, 0xb1, 0x02, 0xaf, 0x53,
		0x99, 0x89, 0x11, 0x17, 0x6f, 0xb0, 0x0a, 0x8d, 0xa9, 0x8d, 0xdd, 0x39, 0x6e, 0xdc, 0x11, 0x98,
		0xb7, 0x93, 0xb0, 0xd4, 0x46, 0xc2, 0xc1, 0x2e, 0xef, 0x5a, 0x1f, 0xe1, 0xb8, 0x9c, 0x2f, 0x1a,
		0x56, 0xc9, 0x64, 0x33, 0xe1, 0x98, 0x92, 0x21, 0xc7, 0x05, 0x28, 0x7c, 0xd3, 0xf0, 0xe1, 0x64,
		0xe2, 0xb2, 0x96, 0x74, 0xfc, 0xef, 0x7c, 0xe7, 0xd1, 0x45, 0x0a, 0x32, 0xa5, 0xff, 0xef, 0x3a,
		0x64, 0x1f, 0xb2, 0x9f, 0x75, 0xd9, 0x67, 0xf6, 0x68, 0xc0, 0xdc, 0xa4, 0x89, 0xaf, 0x91, 0xfc,
		0x27, 0x18, 0x32, 0xaa, 0xb6, 0xec, 0x11, 0x47, 0xc7, 0xa8, 0xb6, 0x73, 0x3b, 0x4e, 0x9c, 0xe0,
		0x8a, 0x02, 0x97, 0x82, 0x35, 0xfe, 0x5d, 0xe7, 0x09, 0xbb, 0x96, 0xc3, 0x47, 0xcb, 0x3c, 0x8f,
		0xea, 0xe3, 0x47, 0xbb, 0x71, 0x55, 0x00, 0x77, 0x74, 0xdc, 0x39, 0x0b, 0x59, 0x90, 0x63, 0x63,
		0xfe, 0x5e, 0xe6, 0x9b, 0xd6, 0x3b, 0x59, 0x56, 0xec, 0x06, 0x9c, 0xcb, 0x2a, 0xf1, 0x58, 0x29,
		0x6d, 0x37, 0xa0, 0x46, 0x62, 0x8a, 0x5c, 0xc3, 0x67, 0x9a, 0x65, 0x0e, 0x4c, 0x3f, 0xb9, 0x11,
		0x9a, 0x7b, 0x16, 0x9a, 0x1f, 0x9a, 0x7f, 0x6b, 0x9a, 0x7f, 0x64, 0xda, 0x7e, 0xb9, 0xce, 0xa1,
		0xf4, 0xeb, 0x98, 0xae, 0xb6, 0xf4, 0x3c, 0xa6, 0xab, 0x29, 0xf5, 0x5a, 0xad, 0x82, 0x71, 0x6a,
		0x1b, 0x31, 0x7e, 0x9a, 0x5d, 0xbb, 0x99, 0x17, 0xf8, 0x36, 0xbc, 0xe6, 0x69, 0xf1, 0x71, 0x58,
		0x28, 0x58, 0x28, 0x58, 0x28, 0x58, 0x28, 0x58, 0x28, 0x58, 0x28, 0x32, 0x0b, 0xe5, 0x9b, 0x03,
		0xe6, 0x8c, 0x38, 0x6c, 0xd3, 0xf4, 0x41, 0x58, 0x25, 0x58, 0x25, 0x58, 0x25, 0x58, 0x25, 0x58,
		0x25, 0x58, 0xa5, 0x1c, 0x0f, 0xac, 0x9c, 0x25, 0xb1, 0x1c, 0xc4, 0x4a, 0x70, 0x50, 0xe2, 0x27,
		0xe4, 0xdc, 0x7a, 0xdf, 0x6e, 0x43, 0xca, 0xdd, 0x89, 0x55, 0xe3, 0xcd, 0x50, 0x7a, 0x35, 0x35,
		0x28, 0xce, 0x78, 0xa8, 0x44, 0x63, 0xa1, 0xb2, 0x32, 0xf4, 0x0f, 0x29, 0x1c, 0x04, 0x62, 0x83,
		0x14, 0x0e, 0x80, 0x52, 0x80, 0x52, 0x05, 0x29, 0x1c, 0xb3, 0xef, 0x44, 0x0a, 0x07, 0x64, 0x1f,
		0xb2, 0x4f, 0x2c, 0xfb, 0x48, 0xe1, 0xd8, 0xf4, 0x28, 0x52, 0x38, 0x36, 0x3c, 0x88, 0x14, 0x0e,
		0xa4, 0x70, 0x40, 0xf3, 0x23, 0x14, 0x89, 0x50, 0x24, 0x42, 0x91, 0x08, 0x45, 0xa6, 0x1b, 0x8a,
		0x44, 0x0a, 0x07, 0x2c, 0x14, 0x2c, 0x14, 0x2c, 0x14, 0x2c, 0x14, 0x2c, 0x54, 0x6e, 0x2d, 0x14,
		0x52, 0x38, 0x60, 0x95, 0x60, 0x95, 0x60, 0x95, 0x60, 0x95, 0x60, 0x95, 0x52, 0xb2, 0x4a, 0x59,
		0x4f, 0xe1, 0x88, 0xdb, 0x10, 0x29, 0x71, 0x06, 0x47, 0x8c, 0x06, 0x48, 0x59, 0x6d, 0x31, 0xf3,
		0x66, 0x9b, 0x16, 0x9e, 0x0d, 0x11, 0xea, 0x31, 0xf3, 0x6a, 0xce, 0x4a, 0xac, 0x5c, 0x95, 0xd8,
		0x9d, 0x65, 0x74, 0xb2, 0xce, 0x32, 0x79, 0x6d, 0x2a, 0x93, 0x5a, 0x3f, 0x99, 0x7b, 0xc7, 0x89,
		0xd9, 0x07, 0x75, 0xfe, 0xc6, 0x3c, 0x56, 0xdb, 0xd3, 0x98, 0x10, 0x34, 0x8d, 0xae, 0x32, 0x45,
		0xcd, 0x46, 0x92, 0x9d, 0x88, 0x14, 0x1b, 0x28, 0x72, 0x36, 0x0d, 0x4d, 0xd0, 0x24, 0x94, 0xb7,
		0x29, 0x68, 0x42, 0x34, 0x99, 0x00, 0x13, 0xf3, 0xa0, 0x47, 0x5e, 0xd4, 0x28, 0x0c, 0x77, 0xf8,
		0x61, 0x4e, 0x92, 0xb6, 0xca, 0x3c, 0xa8, 0x90, 0xb0, 0x09, 0xe7, 0x36, 0x77, 0x89, 0x08, 0xac,
		0x75, 0x24, 0xa4, 0x9b, 0xf6, 0x46, 0xae, 0xcb, 0x6c, 0x5f, 0xeb, 0x1b, 0x3e, 0x4b, 0xa6, 0xea,
		0x57, 0x9e, 0x84, 0xc6, 0x87, 0xc6, 0x5f, 0xda, 0xef, 0x80, 0x37, 0x34, 0xc3, 0xee, 0xc7, 0xed,
		0x84, 0x3e, 0x1b, 0xca, 0x12, 0xe3, 0xb3, 0xd7, 0x86, 0xef, 0x33, 0xd7, 0x8e, 0xad, 0xbe, 0xd5,
		0xaf, 0x25, 0xed, 0xa8, 0xf3, 0xb3, 0xfa, 0x72, 0x77, 0xa7, 0xbd, 0x2f, 0x7d, 0x2d, 0x6b, 0x47,
		0x9d, 0x5f, 0xe5, 0xaf, 0x25, 0x4d, 0xef, 0xec, 0xcd, 0xfd, 0xe6, 0x6b, 0x59, 0xef, 0x84, 0x1f,
		0xfc, 0x55, 0xf9, 0x5a, 0x2a, 0x77, 0xf6, 0xbe, 0xb6, 0xfd, 0xce, 0xfb, 0xd2, 0xf8, 0x37, 0xe5,
		0xf1, 0x1f, 0xfa, 0xd7, 0x92, 0x56, 0xe9, 0xec, 0x1d, 0x4f, 0x7f, 0xfd, 0xb5, 0xac, 0xd5, 0xc6,
		0xcf, 0xac, 0xfb, 0xdd, 0xaf, 0x7a, 0x69, 0xef, 0xfd, 0xdd, 0xdd, 0x7e, 0xf8, 0x97, 0xff, 0xde,
		0xfb, 0xed, 0xfd, 0xd7, 0x7f, 0xfd, 0xd9, 0xf9, 0xf5, 0xfe, 0xeb, 0x7f, 0x6b, 0x09, 0xe8, 0xee,
		0xed, 0xbd, 0x7d, 0xb8, 0x9d, 0x38, 0x7b, 0x76, 0x75, 0x7b, 0xf6, 0xcf, 0xc4, 0x1b, 0xf7, 0xef,
		0xf7, 0xb9, 0xde, 0xba, 0xbd, 0xbf, 0xa8, 0x5b, 0xd1, 0xad, 0x7d, 0x67, 0x60, 0x98, 0xb6, 0x16,
		0x6b, 0x74, 0xd7, 0x4c, 0x64, 0xe6, 0x1e, 0x82, 0x46, 0x85, 0x46, 0xe5, 0x66, 0x8f, 0xc4, 0xfa,
		0xf4, 0x9c, 0xd9, 0x8f, 0x61, 0xe8, 0x21, 0x5b, 0x68, 0xb8, 0x0c, 0x34, 0xbc, 0xbc, 0x25, 0x7a,
		0xad, 0xb2, 0x7b, 0xe0, 0x57, 0x06, 0x22, 0x78, 0xff, 0xfe, 0xfd, 0xfb, 0xaf, 0x86, 0xf6, 0x67,
		0x53, 0xfb, 0x57, 0x49, 0x3b, 0xea, 0x76, 0xe6, 0xfe, 0x72, 0x77, 0xa7, 0x75, 0x3b, 0x7b, 0x3f,
		0x4b, 0x1f, 0xea, 0xe5, 0x97, 0xbd, 0xdf, 0x66, 0xbf, 0xef, 0xdc, 0xdd, 0xed, 0xef, 0xfd, 0x17,
		0xcf, 0x53, 0xbf, 0xed, 0xfd, 0x0a, 0x9e, 0xdd, 0xae, 0x21, 0xdf, 0xc2, 0x82, 0xb7, 0x64, 0x7d,
		0xbf, 0x39, 0x9e, 0x9f, 0xcc, 0xf4, 0x46, 0x4f, 0xc0, 0xee, 0xc2, 0xee, 0xc2, 0xee, 0xc2, 0xee,
		0xc2, 0xee, 0xc2, 0xee, 0xc2, 0xee, 0x26, 0xb4, 0xbb, 0x96, 0xe1, 0xf9, 0xda, 0xf8, 0xaa, 0x71,
		0x34, 0xae, 0x9f, 0x0a, 0xa3, 0x3f, 0x9e, 0x6f, 0x0c, 0x86, 0xf1, 0x6d, 0xf1, 0xab, 0x54, 0x60,
		0x9f, 0x61, 0x9f, 0x71, 0xb7, 0x84, 0xbb, 0x25, 0xdc, 0x2d, 0x65, 0xfa, 0x6e, 0xc9, 0x72, 0x1e,
		0x4d, 0x5b, 0xbb, 0x37, 0x6c, 0x9b, 0xb9, 0x09, 0x34, 0xff, 0xfc, 0x53, 0xd0, 0xf4, 0xd0, 0xf4,
		0x4b, 0xfb, 0x1d, 0x7b, 0xe2, 0x7f, 0xcc, 0x09, 0xff, 0x7c, 0xbc, 0x3d, 0x70, 0xfc, 0x7e, 0x62,
		0xd6, 0x9e, 0x7f, 0x08, 0x9c, 0x0d, 0xce, 0xce, 0x24, 0x67, 0x7b, 0xce, 0x83, 0xff, 0x1f, 0xc3,
		0x65, 0xb1, 0xbb, 0x89, 0xcc, 0xde, 0x7f, 0xf9, 0x49, 0xf0, 0x38, 0x78, 0x3c, 0x93, 0x3c, 0x3e,
		0x1a, 0x26, 0xcc, 0x6b, 0x9c, 0x3e, 0x00, 0x8e, 0x06, 0x47, 0xc3, 0xf3, 0x84, 0xe7, 0x09, 0xcf,
		0x73, 0xfb, 0x9e, 0xe7, 0x76, 0x6b, 0x30, 0xde, 0xa8, 0x4b, 0x89, 0x5b, 0x7e, 0xb1, 0xb9, 0x0a,
		0x25, 0x5e, 0xe9, 0x85, 0xcf, 0x2c, 0x9b, 0xf9, 0xb1, 0x27, 0xfc, 0x2e, 0x7e, 0x1c, 0x43, 0x7e,
		0x31, 0xe4, 0x37, 0xce, 0x91, 0xa7, 0x09, 0x5c, 0xd0, 0x21, 0x16, 0x1d, 0x62, 0x15, 0x35, 0x34,
		0x45, 0x68, 0x13, 0x49, 0x2b, 0x02, 0xc2, 0xa2, 0x20, 0x2c, 0x12, 0xe2, 0xa2, 0x91, 0x10, 0x7d,
		0xa0, 0x45, 0xec, 0xf8, 0x3b, 0xd1, 0x97, 0x0f, 0xa2, 0x86, 0xfe, 0x12, 0x31, 0x1e, 0x41, 0x7f,
		0x89, 0x74, 0xbc, 0x47, 0x0e, 0x5f, 0x5b, 0xc8, 0xe7, 0x5e, 0xd9, 0x3a, 0xf4, 0x97, 0xe0, 0x77,
		0xca, 0x69, 0x6d, 0x13, 0xfa, 0xf2, 0xc1, 0x42, 0xc1, 0x42, 0xc1, 0x42, 0xc1, 0x42, 0xc1, 0x42,
		0xa1, 0x2f, 0x1f, 0xac, 0x12, 0xac, 0x12, 0xac, 0x12, 0xac, 0x12, 0xac, 0xd2, 0x4e, 0x5b, 0xa5,
		0x4c, 0xf6, 0xe5, 0x5b, 0xb8, 0x3d, 0x24, 0x9f, 0xae, 0xd8, 0x0e, 0xa9, 0x63, 0xc0, 0x22, 0xae,
		0xcf, 0x04, 0x0d, 0x30, 0xae, 0xcf, 0x70, 0x7d, 0x06, 0x6c, 0x9a, 0x0b, 0x6c, 0x8a, 0xeb, 0x33,
		0x88, 0x1a, 0x44, 0x0d, 0x6e, 0x20, 0xdc, 0x40, 0xb8, 0x81, 0x70, 0x03, 0xb9, 0x6c, 0x13, 0xae,
		0xcf, 0x60, 0xa1, 0x60, 0xa1, 0x60, 0xa1, 0x60, 0xa1, 0x60, 0xa1, 0x70, 0x7d, 0x06, 0xab, 0x04,
		0xab, 0x04, 0xab, 0x04, 0xab, 0x04, 0xab, 0xb4, 0xd3, 0x56, 0x29, 0x07, 0xd7, 0x67, 0xc4, 0x93,
		0xad, 0x16, 0x6e, 0xcf, 0x72, 0x3c, 0xdc, 0x2a, 0x4e, 0x85, 0x22, 0xe7, 0xb6, 0xc4, 0xae, 0xb3,
		0x7c, 0xf7, 0xca, 0xc2, 0xdf, 0x5a, 0x70, 0xdc, 0x85, 0xaa, 0x6b, 0xe7, 0x68, 0xc5, 0x58, 0xd2,
		0xe2, 0x2a, 0x66, 0xef, 0x3a, 0xf7, 0x9e, 0x6a, 0x60, 0x69, 0x4d, 0xdb, 0xb0, 0xb4, 0x3e, 0x7b,
		0x32, 0xd7, 0xe0, 0x87, 0xb9, 0x7a, 0xd0, 0xc5, 0x0f, 0x2e, 0xad, 0x75, 0xfd, 0xbd, 0xe6, 0x46,
		0xe4, 0xf4, 0x1a, 0x42, 0x9a, 0x47, 0x42, 0xce, 0xd0, 0xdf, 0x84, 0x84, 0xde, 0x42, 0x3c, 0xb1,
		0x91, 0x4d, 0x6c, 0x04, 0xb3, 0x8c, 0x54, 0xa2, 0x97, 0x4b, 0xc8, 0x17, 0x9b, 0xee, 0x0d, 0xdf,
		0xaa, 0xd8, 0x8c, 0x57, 0xa9, 0x99, 0x76, 0x51, 0xee, 0x2b, 0x47, 0x94, 0x14, 0x9c, 0xa6, 0x5f,
		0x94, 0xbb, 0xf9, 0x08, 0xb7, 0xa5, 0xe3, 0x96, 0xe4, 0xec, 0x60, 0xf9, 0xef, 0x6f, 0xe6, 0x52,
		0x6c, 0xd4, 0x0d, 0xed, 0x09, 0xa5, 0xd3, 0x90, 0x50, 0x77, 0xe9, 0xaf, 0xaf, 0xa5, 0x51, 0xc4,
		0x2b, 0x30, 0xb7, 0x9c, 0x47, 0xb3, 0x67, 0x58, 0x5a, 0xef, 0x9b, 0x61, 0xdb, 0xcc, 0xf2, 0xde,
		0xe6, 0xe3, 0x95, 0x27, 0xc0, 0xd1, 0x99, 0xe3, 0xe8, 0xb7, 0xcb, 0xcc, 0xc7, 0x87, 0x97, 0xa0,
		0xce, 0x7c, 0xf2, 0x40, 0x3e, 0x0a, 0xcd, 0x63, 0x30, 0x03, 0xaf, 0x0f, 0xbe, 0xfd, 0x4c, 0x99,
		0xb7, 0x99, 0x85, 0x06, 0x27, 0xc7, 0xce, 0x94, 0x89, 0xd9, 0xb3, 0x20, 0x99, 0x45, 0xe4, 0x64,
		0xad, 0xad, 0x85, 0x7f, 0x12, 0xb0, 0x5c, 0xf1, 0xc2, 0x3f, 0xf1, 0x59, 0x52, 0x4e, 0xf8, 0x27,
		0x2e, 0xab, 0x46, 0x0f, 0x18, 0xfd, 0x81, 0x69, 0x6b, 0xf1, 0x72, 0x05, 0x37, 0x9e, 0xfa, 0x3c,
		0x91, 0x84, 0xfb, 0x97, 0x2c, 0x96, 0xc9, 0xcd, 0xd4, 0x22, 0xcc, 0x4d, 0xc4, 0xe4, 0xa2, 0xcc,
		0x4e, 0xc6, 0xf4, 0x64, 0xcc, 0x4f, 0x27, 0x04, 0x9c, 0xf1, 0x96, 0x84, 0x67, 0x9f, 0x38, 0x36,
		0xfa, 0x1a, 0xa3, 0x6b, 0x7e, 0x40, 0x8d, 0xe3, 0xf8, 0xa7, 0xea, 0xbb, 0xca, 0xf1, 0x6c, 0xcb,
		0x1e, 0x0d, 0xf8, 0x19, 0xa7, 0xed, 0xdc, 0x8e, 0xbb, 0x12, 0xf2, 0x52, 0x08, 0xa9, 0x94, 0x82,
		0x8d, 0x68, 0x5d, 0x36, 0x3f, 0x9e, 0xb7, 0x4e, 0x39, 0x39, 0x2f, 0xa4, 0x53, 0x0e, 0xe8, 0x9c,
		0x9e, 0xdd, 0x0a, 0x13, 0xd2, 0x03, 0x42, 0x17, 0xcd, 0xb3, 0xcb, 0xb6, 0xca, 0x45, 0xe4, 0xe5,
		0x03, 0xef, 0x76, 0x9e, 0xd9, 0xbe, 0xd8, 0x5e, 0x46, 0xcb, 0x4f, 0x3c, 0x86, 0x64, 0x91, 0x2d,
		0x2e, 0xa7, 0x54, 0x4a, 0x02, 0x54, 0xc6, 0x5b, 0x78, 0xac, 0xe8, 0x7c, 0xbb, 0x98, 0x99, 0xe0,
		0x6a, 0x92, 0xb6, 0x76, 0x3d, 0xcb, 0x64, 0xb6, 0xaf, 0x0d, 0x8c, 0xe1, 0xd0, 0xb4, 0x1f, 0xb5,
		0x81, 0xd3, 0x17, 0x30, 0x83, 0xeb, 0x88, 0xc1, 0x1c, 0xc2, 0x1c, 0x16, 0xd6, 0x1c, 0x9a, 0x7d,
		0x66, 0xfb, 0xa6, 0xff, 0xec, 0xb2, 0x07, 0x11, 0x4b, 0xc8, 0x71, 0x4f, 0xa4, 0x9e, 0x4d, 0xbe,
		0xfa, 0xa3, 0xe1, 0x09, 0xf0, 0xce, 0x74, 0x21, 0x27, 0xe7, 0x67, 0xad, 0xcb, 0x76, 0xf7, 0xa2,
		0x79, 0x7d, 0x7d, 0x76, 0xf9, 0xb9, 0x7b, 0x71, 0x75, 0xda, 0xe2, 0xe5, 0xa2, 0xf0, 0x02, 0xcc,
		0x4b, 0x7c, 0xc5, 0x39, 0xff, 0x1f, 0xbf, 0x41, 0x59, 0x58, 0x54, 0xb0, 0x8a, 0x6e, 0xf9, 0x9f,
		0xe5, 0x52, 0xe9, 0xb3, 0xca, 0x4d, 0xf1, 0xe5, 0x43, 0x46, 0x96, 0xa1, 0x17, 0x63, 0x19, 0xd5,
		0x22, 0x2c, 0x43, 0x2f, 0x06, 0x53, 0xe9, 0xc5, 0x60, 0xaa, 0x4a, 0x31, 0x4e, 0xa3, 0x2a, 0xba,
		0x0c, 0xae, 0x27, 0x3b, 0xb9, 0x84, 0xad, 0x7d, 0xe6, 0xf5, 0x5c, 0x73, 0x18, 0xfb, 0xea, 0x7e,
		0xed, 0xae, 0xcf, 0x13, 0x01, 0x4c, 0x05, 0x4c, 0x2d, 0x2c, 0x4c, 0x8d, 0x3d, 0x8b, 0x61, 0x23,
		0x42, 0x3d, 0xcc, 0x80, 0xcc, 0x9b, 0x76, 0x9f, 0xfd, 0xe0, 0x97, 0xf6, 0xf1, 0xe3, 0x90, 0x73,
		0xc8, 0x79, 0x61, 0xe5, 0x7c, 0x64, 0xda, 0x7e, 0x45, 0x17, 0x90, 0xf3, 0x06, 0xc7, 0xa3, 0x7c,
		0x19, 0xad, 0xe2, 0x00, 0x4a, 0x28, 0xc3, 0x75, 0xd1, 0x5b, 0x15, 0x8b, 0x1b, 0x2a, 0x94, 0x29,
		0x9b, 0xb3, 0x33, 0x15, 0x4d, 0xdd, 0x24, 0x40, 0xb7, 0x42, 0x99, 0xb0, 0x2b, 0x5b, 0x5c, 0xd5,
		0x8f, 0xaa, 0x47, 0xf5, 0x86, 0x7e, 0x54, 0x2b, 0xee, 0x5e, 0xa7, 0x14, 0x39, 0xee, 0x64, 0xc0,
		0x1c, 0x2f, 0x65, 0xff, 0x8c, 0xaf, 0x83, 0xb8, 0xad, 0xf3, 0x5a, 0x6a, 0x30, 0xd6, 0x30, 0xd6,
		0x88, 0x1d, 0xbf, 0x8e, 0xcc, 0xb7, 0x1f, 0x3b, 0x3e, 0xbf, 0xfa, 0x7c, 0x76, 0xd2, 0x3c, 0xef,
		0xb6, 0xce, 0x5b, 0x17, 0xad, 0xcb, 0x76, 0xf7, 0xfa, 0xe6, 0xaa, 0x7d, 0x75, 0x72, 0x75, 0xde,
		0x6d, 0xff, 0x71, 0x5d, 0x80, 0x28, 0x72, 0xb0, 0x9c, 0x6e, 0xab, 0xfd, 0x7b, 0xeb, 0xe6, 0xb2,
		0xd5, 0xce, 0x73, 0x90, 0x29, 0x5c, 0xc8, 0x55, 0xfb, 0x12, 0x11, 0xa6, 0x78, 0xe6, 0xcd, 0x19,
		0xde, 0x1b, 0xbd, 0xef, 0x82, 0x57, 0xa2, 0x8b, 0x64, 0x60, 0xd0, 0x60, 0xd0, 0x0a, 0x6b, 0xd0,
		0x16, 0x58, 0x7d, 0xb7, 0xb3, 0x83, 0x2e, 0xaf, 0x2e, 0x5b, 0xc2, 0xa9, 0x41, 0x9f, 0x9a, 0x27,
		0x67, 0xe7, 0x67, 0xed, 0x3f, 0x84, 0x53, 0x83, 0xda, 0xad, 0x9b, 0x8b, 0xb3, 0xcb, 0xe6, 0xb9,
		0x08, 0xa1, 0x4a, 0x40, 0xa8, 0x79, 0x7b, 0x76, 0xd2, 0xbd, 0xfe, 0xfd, 0x8f, 0xee, 0xf9, 0xd5,
		0x89, 0x18, 0xb9, 0xea, 0x02, 0xb9, 0x9b, 0xd6, 0xc5, 0x55, 0x5b, 0x68, 0xc3, 0x6a, 0x11, 0xbd,
		0x8b, 0xe6, 0x89, 0xf8, 0xeb, 0xd5, 0x17, 0xc8, 0x4d, 0x5e, 0x2f, 0x6f, 0xb9, 0x55, 0x4b, 0xdb,
		0x71, 0xac, 0x08, 0xf8, 0xdd, 0x2b, 0x9b, 0x91, 0xa8, 0xea, 0x79, 0x3d, 0xb5, 0x19, 0x23, 0x1d,
		0x2b, 0x15, 0x0a, 0x62, 0xd1, 0xab, 0x55, 0x05, 0xa8, 0x45, 0x52, 0x27, 0x96, 0x91, 0x16, 0x6a,
		0x00, 0xb1, 0x74, 0xb4, 0x48, 0x6c, 0x53, 0xcc, 0x48, 0xe3, 0x50, 0xba, 0xb3, 0xbe, 0x95, 0xbc,
		0x6a, 0x2f, 0xb0, 0xb5, 0x33, 0x2a, 0x81, 0xa9, 0xcd, 0x00, 0xfe, 0x0b, 0xbb, 0xf9, 0xf5, 0x2c,
		0xc3, 0xf3, 0xf8, 0xc1, 0xdf, 0x1c, 0x0d, 0x20, 0x3f, 0x20, 0x3f, 0x84, 0x32, 0xb2, 0x1e, 0xca,
		0x68, 0xdf, 0x9c, 0x7d, 0xfc, 0xd2, 0x6e, 0xde, 0xfc, 0xd1, 0xbd, 0x69, 0xb6, 0x5b, 0xdd, 0x93,
		0xf3, 0xe6, 0xed, 0x6d, 0x41, 0xc2, 0x18, 0xc1, 0xd2, 0xc6, 0xab, 0x2a, 0x97, 0x72, 0x9e, 0x2d,
		0xb3, 0xb0, 0x94, 0xc2, 0xac, 0xa4, 0x56, 0x9c, 0xa5, 0x14, 0x65, 0x21, 0x05, 0x62, 0xaf, 0x72,
		0x71, 0xd8, 0x4b, 0x2f, 0xce, 0xa9, 0xe8, 0xc5, 0x39, 0x95, 0x4a, 0x71, 0x4e, 0xa5, 0x52, 0x9c,
		0x53, 0xa9, 0x16, 0xe7, 0x54, 0xaa, 0xc5, 0x39, 0x95, 0x5a, 0xa9, 0x40, 0x4b, 0x29, 0xcc, 0x4a,
		0x8a, 0xb3, 0x94, 0x7a, 0x71, 0xf8, 0xab, 0x5e, 0x9c, 0x53, 0x69, 0x14, 0xe7, 0x54, 0x1a, 0xc5,
		0x39, 0x95, 0xc3, 0xe2, 0x9c, 0xca, 0x61, 0x71, 0x4e, 0xe5, 0xa8, 0x38, 0xa7, 0x72, 0x54, 0x9c,
		0x53, 0x29, 0xc8, 0x3a, 0xf4, 0xfd, 0x5a, 0x51, 0x56, 0x52, 0x9c, 0x50, 0x9e, 0x5e, 0xa0, 0x95,
		0x14, 0x46, 0xe2, 0xf5, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0xb8, 0x2a, 0x7a, 0x81, 0x64, 0xa5, 0x38,
		0x11, 0x30, 0xbd, 0x38, 0x11, 0x30, 0xbd, 0x38, 0x11, 0x30, 0xbd, 0x38, 0x11, 0x30, 0xbd, 0x38,
		0x11, 0x30, 0xbd, 0x38, 0x11, 0xb0, 0x02, 0x29, 0xb0, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0,
		0xf4, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0,
		0xf4, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0x2a, 0xc5, 0x89, 0xb7,
		0x54, 0x0a, 0xb4, 0x92, 0xe2, 0xf0, 0x57, 0x71, 0xe2, 0x2d, 0x95, 0xe2, 0xc4, 0x5b, 0x2a, 0xc5,
		0x89, 0xb7, 0x14, 0xc7, 0xb1, 0x2f, 0x8e, 0x5f, 0x5f, 0x2d, 0xcc, 0x42, 0x0a, 0xc3, 0x5c, 0xc5,
		0x09, 0x4f, 0x14, 0xc7, 0xa7, 0x2f, 0x8e, 0x4b, 0x5f, 0x1c, 0x8f, 0xbe, 0x38, 0x0e, 0x7d, 0x71,
		0xfc, 0xf9, 0xe2, 0xb8, 0xf3, 0xc5, 0xf1, 0xe6, 0x8b, 0xe3, 0xcc, 0x0b, 0xfa, 0xf2, 0x3b, 0xd4,
		0x40, 0xc4, 0x67, 0x9e, 0xaf, 0x79, 0xe6, 0xa3, 0x6d, 0x58, 0xfc, 0x15, 0xa4, 0xf3, 0x44, 0x50,
		0x42, 0xfa, 0x16, 0x19, 0x94, 0x90, 0x52, 0x49, 0x44, 0xea, 0x25, 0xa4, 0xf7, 0x8e, 0x63, 0x31,
		0xc3, 0x16, 0x29, 0x1f, 0x2d, 0x67, 0x41, 0xe8, 0x5d, 0xf3, 0x5e, 0x1b, 0xba, 0x8e, 0xef, 0xf4,
		0x1c, 0x11, 0xb1, 0x5f, 0x20, 0x03, 0xc1, 0x87, 0xe0, 0xa3, 0x76, 0xfc, 0x75, 0xe1, 0xcf, 0x52,
		0xed, 0x78, 0x11, 0x1b, 0xe0, 0x95, 0x4b, 0xa5, 0xcf, 0xad, 0xdc, 0x77, 0xbf, 0x0b, 0x56, 0xd1,
		0xbd, 0x38, 0xff, 0x5c, 0x80, 0x85, 0x7c, 0x6e, 0x75, 0xcf, 0x9b, 0x97, 0xc5, 0x58, 0xc8, 0x3f,
		0x8a, 0xb0, 0x90, 0x02, 0x88, 0x47, 0xb5, 0x10, 0x42, 0x5e, 0x2d, 0xc2, 0x22, 0x0e, 0x0b, 0x71,
		0x14, 0x9f, 0xce, 0x5b, 0xff, 0xbc, 0xca, 0x7f, 0xcf, 0xd4, 0x93, 0xf2, 0x91, 0x5e, 0x80, 0x55,
		0x54, 0x0f, 0x0b, 0xb0, 0x88, 0x46, 0xbd, 0x00, 0xab, 0x38, 0xfd, 0xa2, 0x17, 0x62, 0x11, 0xad,
		0x22, 0xac, 0xa2, 0x52, 0x84, 0x45, 0x54, 0x8b, 0xb0, 0x88, 0x93, 0xcb, 0x22, 0xac, 0x22, 0x30,
		0x7a, 0xdd, 0x93, 0x8f, 0x37, 0x85, 0x59, 0xcb, 0xe7, 0x4f, 0xd7, 0x05, 0xe8, 0x7b, 0x7e, 0x7b,
		0xf6, 0xb9, 0x00, 0xab, 0xf8, 0x52, 0x6e, 0x15, 0x61, 0x15, 0x7a, 0x21, 0x16, 0x51, 0x88, 0xa3,
		0xa8, 0x14, 0x61, 0x11, 0xd5, 0x22, 0x2c, 0xa2, 0x00, 0xe6, 0xef, 0xb6, 0x7d, 0x51, 0xae, 0x17,
		0x61, 0x15, 0x7a, 0xad, 0x10, 0xcb, 0xa8, 0x57, 0x77, 0xf8, 0xb2, 0xfe, 0x1d, 0xe1, 0x59, 0xa9,
		0x4d, 0xdb, 0x76, 0x7c, 0x23, 0xf1, 0xc0, 0x59, 0xd5, 0xeb, 0x7d, 0x63, 0x03, 0x63, 0x68, 0xf8,
		0xdf, 0x82, 0x73, 0x39, 0x70, 0x86, 0xcc, 0xee, 0x85, 0x37, 0x6d, 0xe1, 0x7d, 0x8e, 0x69, 0x1b,
		0x96, 0xd6, 0x67, 0x4f, 0x66, 0x8f, 0x1d, 0x2c, 0xff, 0x7d, 0x69, 0x24, 0x96, 0x77, 0x30, 0xf9,
		0xe1, 0x60, 0xfc, 0x7c, 0x82, 0x8b, 0x05, 0xd5, 0xf3, 0xdd, 0x51, 0xcf, 0xb7, 0x27, 0xcc, 0x71,
		0x15, 0xbd, 0x43, 0x7b, 0xf2, 0x95, 0xa7, 0xe1, 0x37, 0x76, 0x97, 0xfe, 0x7a, 0x3e, 0x7e, 0x81,
		0x93, 0xc9, 0xf7, 0x77, 0x27, 0x3f, 0x74, 0x27, 0x37, 0x85, 0xef, 0x68, 0x0e, 0x21, 0xc6, 0x01,
		0xa8, 0xcc, 0xff, 0xc6, 0x5c, 0x9b, 0xc5, 0x6f, 0x88, 0x1f, 0x09, 0x42, 0xf4, 0x64, 0xcc, 0x63,
		0x9e, 0xde, 0x27, 0xc5, 0xfc, 0x78, 0xd2, 0x4b, 0x53, 0x9e, 0xcb, 0x52, 0xc1, 0x4b, 0x52, 0xde,
		0xcb, 0x51, 0xe1, 0x4b, 0x51, 0xe1, 0xcb, 0x50, 0xf1, 0x4b, 0x50, 0x5a, 0x15, 0x70, 0x6a, 0xba,
		0xc9, 0x0e, 0xae, 0x37, 0xe5, 0x0e, 0xce, 0x34, 0x80, 0xc4, 0x82, 0xce, 0xc1, 0xc2, 0xdc, 0xac,
		0x2c, 0xc2, 0xd2, 0x44, 0xac, 0x2d, 0xca, 0xe2, 0x64, 0xac, 0x4e, 0xc6, 0xf2, 0x74, 0xac, 0xcf,
		0x69, 0x5d, 0x13, 0x9e, 0x7d, 0x52, 0x91, 0x88, 0x1e, 0x34, 0x2c, 0x4f, 0xeb, 0x33, 0xcb, 0x78,
		0x16, 0xbf, 0x78, 0x9f, 0x91, 0xe2, 0xdc, 0xeb, 0xd9, 0xec, 0x89, 0xaf, 0x22, 0x73, 0x7f, 0xf8,
		0xe0, 0x12, 0xe7, 0x3b, 0xf3, 0x25, 0xf9, 0x08, 0x0b, 0x3b, 0x85, 0xd0, 0x13, 0x0b, 0x3f, 0x95,
		0x12, 0x20, 0x57, 0x06, 0xe4, 0x4a, 0x81, 0x5e, 0x39, 0x88, 0x41, 0x7d, 0xee, 0xd9, 0x46, 0xbc,
		0x49, 0x43, 0x2b, 0x9c, 0xc3, 0x3d, 0xf0, 0x7a, 0x59, 0x8e, 0x1a, 0x02, 0x24, 0xc4, 0x06, 0x60,
		0xd3, 0x38, 0x7e, 0x0a, 0xd5, 0x40, 0xec, 0x88, 0x18, 0xd1, 0x60, 0xec, 0x88, 0x1e, 0xf5, 0xd0,
		0xe6, 0x19, 0x2f, 0x50, 0x0d, 0x6f, 0x26, 0xf0, 0xde, 0x67, 0x47, 0x41, 0x30, 0x38, 0x7b, 0xe5,
		0x28, 0xa8, 0x06, 0x68, 0xe7, 0xf1, 0x4c, 0xde, 0x6d, 0xe7, 0xe9, 0x4e, 0x86, 0x07, 0x6f, 0xf5,
		0x2c, 0x93, 0xd9, 0xbe, 0x66, 0x58, 0x9e, 0x38, 0x86, 0x9a, 0xa3, 0xb5, 0x4d, 0x10, 0x25, 0x36,
		0x66, 0x17, 0x58, 0x0a, 0x58, 0x0a, 0x58, 0x8a, 0x97, 0x73, 0x98, 0x3d, 0x1a, 0x30, 0x77, 0x1c,
		0xe1, 0x14, 0x07, 0x54, 0x65, 0x91, 0x19, 0x8c, 0x42, 0x73, 0x5c, 0x67, 0x5b, 0x43, 0x31, 0xcf,
		0x75, 0xce, 0xbf, 0x13, 0x9f, 0xeb, 0x1a, 0x11, 0x0b, 0xe7, 0xbb, 0x9e, 0x37, 0x6f, 0x5b, 0x37,
		0xdd, 0xdb, 0xdf, 0xbf, 0xb4, 0x4f, 0xaf, 0xfe, 0x71, 0x49, 0x41, 0x36, 0x9c, 0xf6, 0x2a, 0x3e,
		0xaa, 0x9c, 0x00, 0x04, 0x11, 0xcc, 0x2f, 0x5d, 0x35, 0x0a, 0xc7, 0x8a, 0x4e, 0xb0, 0x49, 0x4b,
		0xdb, 0x2e, 0x34, 0xe6, 0x73, 0x26, 0x44, 0x93, 0x71, 0x9f, 0x5b, 0x82, 0x29, 0x2f, 0x69, 0xc1,
		0x14, 0xa9, 0xc1, 0x24, 0xce, 0x2b, 0x96, 0xe8, 0x79, 0x09, 0x57, 0x2d, 0xd3, 0xeb, 0x83, 0x03,
		0xae, 0x50, 0xac, 0x42, 0x7f, 0xf7, 0xd2, 0x9a, 0xbc, 0x50, 0xa2, 0x4b, 0x98, 0xe4, 0xc7, 0x97,
		0x68, 0x52, 0xbe, 0xd5, 0x1f, 0x0a, 0x0c, 0xc8, 0x0f, 0x9e, 0x46, 0x84, 0x5b, 0x32, 0x20, 0x43,
		0x84, 0x9b, 0x57, 0x29, 0x71, 0x47, 0xb8, 0x39, 0x2f, 0x7f, 0x56, 0x5d, 0x33, 0x5e, 0xcd, 0x23,
		0x20, 0x2a, 0xf0, 0x6d, 0xe0, 0xdb, 0x6c, 0xdf, 0xb7, 0xe1, 0x15, 0xbd, 0x88, 0x00, 0xb3, 0x8d,
		0x7b, 0x8b, 0xf5, 0xc5, 0x8f, 0x7a, 0xe6, 0x23, 0x8d, 0x09, 0x0a, 0x9e, 0x0b, 0x45, 0xac, 0x24,
		0x22, 0x16, 0x06, 0xd8, 0xc4, 0xc0, 0x7e, 0x47, 0x70, 0x3d, 0x62, 0x01, 0x14, 0x32, 0x65, 0x43,
		0xa9, 0x74, 0x24, 0x29, 0x1f, 0x6a, 0x25, 0x24, 0x4d, 0x19, 0x49, 0x53, 0x4a, 0xf2, 0x94, 0x93,
		0xb8, 0x1b, 0x45, 0xe2, 0xf8, 0x8a, 0x06, 0x64, 0x56, 0x38, 0x8f, 0xbf, 0x35, 0xc6, 0x46, 0x34,
		0x50, 0xde, 0x96, 0x9f, 0x2a, 0x60, 0xb6, 0x3d, 0xdb, 0x71, 0x86, 0x14, 0xe1, 0x9c, 0x68, 0x63,
		0x23, 0x8a, 0x50, 0xe7, 0x50, 0xe7, 0x50, 0xe7, 0x50, 0xe7, 0x50, 0xe7, 0x59, 0x76, 0x07, 0x04,
		0xc3, 0x83, 0xa9, 0x84, 0x09, 0x2d, 0xab, 0x3f, 0x3c, 0x10, 0xf2, 0xd8, 0x65, 0xc6, 0x0c, 0xcf,
		0xad, 0xfe, 0x90, 0x2b, 0x70, 0xc8, 0x7f, 0xe0, 0x3c, 0x17, 0xdb, 0x36, 0x33, 0x1f, 0xbf, 0xdd,
		0x3b, 0x2e, 0xc1, 0xbd, 0xf6, 0x8c, 0xd4, 0x96, 0xe3, 0x27, 0x3a, 0xe2, 0x27, 0x88, 0x9f, 0xe4,
		0x2d, 0x7e, 0x32, 0x95, 0x1e, 0x3a, 0xc8, 0x1d, 0x51, 0xa4, 0x81, 0xa8, 0x65, 0x40, 0x54, 0x40,
		0xd4, 0x5d, 0x87, 0xa8, 0xa2, 0x62, 0x1e, 0x11, 0x12, 0xbc, 0xb1, 0xd8, 0xc8, 0xc8, 0xc2, 0x78,
		0x48, 0x82, 0xe8, 0x93, 0xab, 0x00, 0x19, 0xaa, 0x40, 0xb2, 0x4a, 0x90, 0xa5, 0x1a, 0xa4, 0xab,
		0x08, 0xe9, 0xaa, 0x42, 0xbe, 0xca, 0xa0, 0x51, 0x1d, 0x44, 0x2a, 0x84, 0xda, 0xc5, 0x4a, 0xdf,
		0xe5, 0x8a, 0x70, 0x7e, 0xf4, 0xd3, 0x01, 0xa9, 0xd6, 0x91, 0xee, 0x95, 0x5d, 0x4e, 0x17, 0x10,
		0xfd, 0x24, 0xe4, 0xa8, 0xd1, 0xb3, 0x19, 0x45, 0x56, 0x7c, 0x6f, 0xe4, 0xf9, 0xce, 0x40, 0xf3,
		0xad, 0x27, 0x4f, 0x82, 0x95, 0x99, 0x23, 0x9e, 0x71, 0x53, 0xa3, 0xe7, 0xc3, 0xd4, 0x70, 0xa4,
		0xe6, 0xc0, 0xcc, 0x50, 0x98, 0x99, 0x70, 0xe3, 0x0b, 0x6a, 0x62, 0xa8, 0xd0, 0x6a, 0x44, 0xd0,
		0xb7, 0x9e, 0xe8, 0x59, 0x2a, 0x6a, 0xc4, 0x6e, 0x3d, 0x51, 0x33, 0x13, 0xad, 0x52, 0x91, 0x86,
		0x63, 0x65, 0x2a, 0x99, 0x14, 0x94, 0x8d, 0x6c, 0xa5, 0x93, 0x9a, 0xf2, 0x49, 0x4d, 0x09, 0xa5,
		0xa3, 0x8c, 0x68, 0x95, 0x12, 0xb1, 0x72, 0x92, 0xa6, 0xa4, 0x64, 0xb9, 0xd8, 0xe9, 0xb8, 0xdc,
		0x29, 0xa9, 0x30, 0xe9, 0xaa, 0x2c, 0x0d, 0x95, 0x96, 0xa2, 0x6a, 0x4b, 0x4b, 0xc5, 0xa5, 0xae,
		0xea, 0x52, 0x57, 0x79, 0xe9, 0xaa, 0x3e, 0x39, 0x2a, 0x50, 0x92, 0x2a, 0x94, 0x1d, 0x1a, 0xc8,
		0x46, 0xa8, 0x60, 0xe6, 0x3a, 0x1e, 0xf8, 0xd6, 0xd3, 0x81, 0x54, 0xed, 0xb9, 0x95, 0x50, 0x42,
		0xb8, 0xc0, 0xb6, 0xf5, 0xe4, 0x75, 0xdb, 0xd6, 0x13, 0x69, 0x64, 0x41, 0x3e, 0x57, 0x4b, 0xe0,
		0x68, 0xd5, 0x19, 0x99, 0xf2, 0x8d, 0x70, 0xf0, 0x25, 0x72, 0x2d, 0x70, 0x09, 0x16, 0x18, 0x16,
		0x18, 0x16, 0x78, 0x37, 0x2c, 0x30, 0x59, 0x2a, 0xda, 0x9b, 0x12, 0x63, 0x31, 0xe3, 0x81, 0x6f,
		0x1e, 0x57, 0x62, 0x17, 0xa2, 0x21, 0xf1, 0x3b, 0xae, 0x27, 0x20, 0x62, 0x7f, 0xff, 0xc0, 0xf3,
		0x0d, 0x9f, 0x1d, 0x04, 0x0a, 0x79, 0xb7, 0x8d, 0x9e, 0xe6, 0x8d, 0xee, 0x7d, 0x99, 0x7c, 0x34,
		0x6f, 0xfc, 0xa2, 0x2f, 0x83, 0x11, 0x84, 0x11, 0x84, 0x11, 0x84, 0x11, 0x84, 0x11, 0xcc, 0x86,
		0x11, 0x8c, 0x14, 0xf3, 0x0e, 0x1b, 0xc3, 0x70, 0x33, 0xe4, 0x9b, 0xc1, 0xf1, 0xd7, 0xe4, 0x3c,
		0x0e, 0xab, 0xc3, 0x00, 0xc2, 0x00, 0xc2, 0x00, 0x66, 0xc2, 0x00, 0xca, 0xba, 0x9a, 0x4a, 0x25,
		0x34, 0xb6, 0xce, 0x4b, 0x90, 0xcd, 0xbc, 0x72, 0xbd, 0x84, 0xd4, 0xbc, 0x85, 0x34, 0x95, 0xe6,
		0x16, 0x94, 0x67, 0xda, 0x4a, 0x74, 0x6b, 0xca, 0x74, 0x6b, 0x4a, 0x75, 0x3b, 0xca, 0x55, 0xae,
		0x92, 0x95, 0xac, 0x6c, 0xd3, 0xf3, 0x3a, 0xd6, 0xe0, 0x46, 0x57, 0xbc, 0x32, 0x3d, 0x11, 0x88,
		0x3c, 0x7c, 0x97, 0xcf, 0xf3, 0x97, 0x78, 0xf6, 0xa9, 0x44, 0xcc, 0xd6, 0xd9, 0x44, 0xc9, 0x91,
		0x33, 0xd8, 0x46, 0xd8, 0x46, 0xd8, 0x46, 0xd8, 0x46, 0xd8, 0x46, 0xd8, 0x46, 0xee, 0xbd, 0x49,
		0xd7, 0x28, 0xc2, 0x1a, 0xc2, 0x1a, 0xc2, 0x1a, 0xc2, 0x1a, 0xc2, 0x1a, 0x2e, 0x4b, 0x9c, 0xe8,
		0x08, 0xa4, 0xa4, 0xea, 0xb1, 0x92, 0xc2, 0x57, 0xd1, 0x8c, 0x54, 0x8a, 0xfb, 0x5f, 0x3a, 0xfa,
		0x43, 0xa1, 0x1e, 0xd1, 0x14, 0xfb, 0x4b, 0xa7, 0xf3, 0x83, 0xf4, 0x72, 0xb5, 0x51, 0x3d, 0xac,
		0xd4, 0xab, 0x87, 0x1f, 0xd2, 0x7d, 0x01, 0x59, 0x73, 0x86, 0xe2, 0xcb, 0xca, 0x6c, 0x1e, 0x51,
		0xa0, 0x3e, 0x53, 0xfb, 0xf2, 0x97, 0x0f, 0x29, 0xb2, 0x96, 0xf1, 0x23, 0x03, 0xac, 0xd5, 0xd8,
		0x61, 0xd6, 0xa2, 0x19, 0x75, 0x95, 0x0d, 0x3b, 0x99, 0xde, 0xb7, 0x74, 0xe0, 0x5b, 0xad, 0x30,
		0xd5, 0xd3, 0x44, 0xac, 0x52, 0x72, 0xae, 0xc6, 0x5f, 0x07, 0xef, 0x0a, 0xde, 0x15, 0xbc, 0x2b,
		0x78, 0x57, 0xf0, 0xae, 0xe6, 0xbb, 0xb5, 0x9a, 0xb6, 0xe1, 0x3e, 0xa7, 0xe8, 0x5e, 0x1d, 0xe5,
		0xd5, 0x1c, 0xa2, 0x9a, 0x71, 0xcd, 0xf7, 0x64, 0xa1, 0x9a, 0x51, 0x66, 0x0a, 0xa2, 0xb2, 0xfd,
		0x62, 0xc6, 0xdb, 0x70, 0x79, 0x3b, 0x9c, 0xc9, 0x9a, 0x4e, 0x3d, 0x07, 0x0a, 0x39, 0xb6, 0x0a,
		0x05, 0x91, 0xc7, 0x9a, 0x43, 0xa8, 0x87, 0x3c, 0xd6, 0x2d, 0x42, 0xb9, 0xc2, 0x17, 0x72, 0xe4,
		0xaa, 0x82, 0x23, 0xd3, 0xed, 0x7e, 0xfe, 0xc6, 0x9e, 0xa7, 0x26, 0x4e, 0x71, 0x46, 0xa6, 0x22,
		0x2f, 0x03, 0x4b, 0x3d, 0x37, 0x3d, 0xbf, 0xe9, 0xfb, 0x92, 0xda, 0x0b, 0x5d, 0x98, 0x76, 0xcb,
		0x62, 0x81, 0xc6, 0x91, 0x14, 0x0a, 0x55, 0x2f, 0x8c, 0x1f, 0x73, 0xdf, 0x50, 0x3e, 0xac, 0x56,
		0xeb, 0x8d, 0x6a, 0xb5, 0xd4, 0xa8, 0x34, 0x4a, 0x47, 0xb5, 0x5a, 0xb9, 0x5e, 0xae, 0x49, 0xf8,
		0xd2, 0x2b, 0xb7, 0xcf, 0x5c, 0xd6, 0xff, 0x18, 0x9c, 0x92, 0x3d, 0xb2, 0x2c, 0x99, 0x5f, 0xf1,
		0xc5, 0x63, 0xae, 0x94, 0x58, 0x2e, 0x35, 0xd3, 0x4a, 0x76, 0x61, 0xb2, 0xe0, 0xba, 0xa8, 0x52,
		0xea, 0xbe, 0xb6, 0xe8, 0xac, 0xd0, 0xaa, 0xeb, 0x17, 0x74, 0x21, 0xce, 0x13, 0x47, 0xe7, 0xb9,
		0x15, 0x71, 0xc4, 0xc5, 0x45, 0x6a, 0x47, 0x6c, 0xf6, 0xe9, 0xbb, 0x10, 0x9b, 0x7d, 0xe2, 0xe6,
		0xc3, 0x25, 0xf4, 0xb9, 0xcf, 0xba, 0x63, 0x8b, 0x3e, 0xf7, 0x79, 0xb3, 0x30, 0xe4, 0xce, 0xa7,
		0x44, 0x67, 0x53, 0x86, 0x73, 0xb9, 0xea, 0x4c, 0x9a, 0xfd, 0x22, 0x69, 0x76, 0xda, 0xe2, 0x7e,
		0x29, 0xc5, 0xfc, 0xbb, 0xde, 0x5c, 0x1e, 0xfa, 0x1d, 0xfa, 0x5d, 0x9a, 0x7e, 0x27, 0x6f, 0x32,
		0x6f, 0x3c, 0x32, 0x79, 0x4d, 0xe6, 0x03, 0xe2, 0x72, 0x9a, 0xcc, 0x97, 0xd0, 0x64, 0x1e, 0x4d,
		0xe6, 0xb3, 0xa4, 0x88, 0x36, 0x29, 0xa4, 0x5d, 0x6c, 0x32, 0x2f, 0xed, 0x06, 0x24, 0xe2, 0xf8,
		0x91, 0x69, 0xfb, 0xf5, 0xaa, 0x0c, 0x86, 0x9f, 0xe8, 0x17, 0x09, 0x89, 0xe4, 0x92, 0x73, 0xff,
		0x25, 0xde, 0x37, 0xa5, 0x91, 0xdb, 0x1f, 0x25, 0x5c, 0xcb, 0xce, 0x6e, 0x4c, 0x3b, 0xaf, 0x3a,
		0xbd, 0x3c, 0x6a, 0x99, 0x79, 0xbb, 0x69, 0xe4, 0xe0, 0x47, 0x2c, 0x90, 0xce, 0xe5, 0xcb, 0xae,
		0x70, 0x45, 0x4e, 0x2e, 0x52, 0x3b, 0x59, 0xbd, 0x41, 0x20, 0x74, 0xe3, 0x7a, 0xdf, 0x0c, 0xcf,
		0x33, 0x3d, 0x8d, 0x30, 0x3e, 0xbb, 0x62, 0x1a, 0xe7, 0xbe, 0x03, 0xd0, 0x1b, 0xd0, 0x1b, 0xd0,
		0x1b, 0xd0, 0x9b, 0x94, 0xe3, 0xa5, 0xf5, 0xa8, 0x90, 0xd4, 0x93, 0x22, 0xeb, 0x96, 0x40, 0x93,
		0x92, 0xe5, 0xba, 0xc6, 0x1c, 0x68, 0x32, 0xb2, 0x7e, 0x60, 0x13, 0x60, 0x13, 0x60, 0x13, 0x76,
		0xdd, 0x26, 0xc8, 0x55, 0x32, 0x0b, 0xc6, 0xa1, 0x2a, 0x81, 0x76, 0xcb, 0x1e, 0x0d, 0xe4, 0xc9,
		0x54, 0xdb, 0xb9, 0x1d, 0x9b, 0x4c, 0xa9, 0x39, 0xc1, 0xa5, 0xe0, 0x1c, 0x4e, 0x7e, 0x6f, 0xde,
		0xde, 0x9e, 0xdd, 0x76, 0x4f, 0xae, 0x2e, 0xae, 0xaf, 0x2e, 0x5b, 0x97, 0x6d, 0x99, 0xa9, 0xc1,
		0xe5, 0xe0, 0x1b, 0xcf, 0x2e, 0xdb, 0xad, 0x9b, 0x4f, 0xcd, 0x93, 0x56, 0xb7, 0x79, 0x7e, 0xd6,
		0xbc, 0x95, 0xf9, 0x7d, 0x7a, 0xf0, 0x7d, 0xd7, 0x57, 0x37, 0xed, 0x74, 0x96, 0x57, 0x09, 0xbe,
		0xee, 0xa2, 0x79, 0xd2, 0x6d, 0x9e, 0x9e, 0xde, 0xb4, 0x6e, 0xa5, 0x2e, 0xad, 0x1a, 0x7c, 0xd7,
		0x65, 0xab, 0xfd, 0x8f, 0xab, 0x9b, 0xbf, 0xa5, 0xf1, 0x7d, 0xb5, 0xc5, 0xa3, 0xbb, 0x6c, 0x5e,
		0xb4, 0x64, 0x7e, 0x5d, 0x3d, 0xf8, 0xba, 0xf3, 0xab, 0x93, 0xe6, 0xb9, 0x9a, 0xaf, 0x4c, 0x7e,
		0xe7, 0x2c, 0x34, 0x1c, 0x12, 0xc5, 0x76, 0x55, 0x62, 0xa5, 0x86, 0x9e, 0x56, 0xe4, 0x55, 0x5a,
		0x8f, 0xfd, 0xa5, 0x6f, 0x0b, 0x59, 0xec, 0x58, 0x91, 0x18, 0xc6, 0x9b, 0x30, 0xd8, 0xb1, 0x52,
		0x97, 0x19, 0x06, 0x9d, 0xd3, 0x07, 0x52, 0x1b, 0x06, 0xad, 0x68, 0x83, 0x63, 0xa5, 0x2a, 0xb3,
		0x04, 0x63, 0x51, 0xad, 0x1e, 0x2b, 0xfa, 0x6e, 0x96, 0x5f, 0x64, 0xd2, 0x57, 0x94, 0x19, 0x2d,
		0x44, 0x94, 0x10, 0x1e, 0x21, 0x3c, 0x42, 0x78, 0x84, 0xd4, 0x1c, 0x8f, 0x28, 0x21, 0xc5, 0x5a,
		0x2d, 0xc3, 0xf3, 0xb5, 0xd1, 0xb0, 0x2f, 0x63, 0xa0, 0xd3, 0x2c, 0xb1, 0x77, 0xee, 0x4b, 0x60,
		0x0b, 0x60, 0x0b, 0x60, 0x0b, 0x60, 0x0b, 0x68, 0x31, 0xa6, 0xe4, 0x5c, 0xad, 0x2a, 0x72, 0xb5,
		0xe6, 0x3c, 0xd4, 0x34, 0x73, 0xb5, 0x8e, 0x74, 0xbd, 0x52, 0x69, 0xe8, 0xa5, 0x4a, 0xfd, 0xb0,
		0x56, 0x6d, 0x34, 0x6a, 0x87, 0xa5, 0xc3, 0x02, 0xe7, 0xe9, 0x48, 0x6d, 0xb0, 0x5a, 0x98, 0xe4,
		0xad, 0x55, 0x9e, 0x68, 0x20, 0x77, 0x2b, 0x33, 0xf1, 0x12, 0x05, 0xb9, 0x5b, 0x9c, 0x87, 0x3e,
		0x30, 0x6c, 0xe3, 0x31, 0xec, 0x0f, 0xa1, 0x19, 0xfd, 0xbe, 0xcb, 0x3c, 0x4f, 0x1e, 0x24, 0x5f,
		0xf3, 0x5d, 0x40, 0xe6, 0x40, 0xe6, 0x40, 0xe6, 0x40, 0xe6, 0x88, 0xd2, 0xe4, 0xc0, 0x32, 0x48,
		0xce, 0xe9, 0xda, 0xf4, 0x85, 0xb0, 0x11, 0xb0, 0x11, 0xb0, 0x11, 0xb0, 0x11, 0xb0, 0x11, 0x99,
		0xb3, 0x11, 0x43, 0xc7, 0xf5, 0xb5, 0x3e, 0xf3, 0x7a, 0xae, 0x39, 0x94, 0xd2, 0xd9, 0x2c, 0x3a,
		0xaf, 0x95, 0x6f, 0x82, 0x55, 0x80, 0x55, 0x80, 0x55, 0x80, 0x55, 0x80, 0x55, 0xc8, 0xa6, 0x55,
		0x90, 0x99, 0xde, 0x33, 0xfd, 0x02, 0xd8, 0x00, 0xd8, 0x00, 0xd8, 0x00, 0xd8, 0x00, 0xd8, 0x80,
		0xac, 0xda, 0x00, 0xc9, 0x21, 0xa3, 0x85, 0x6f, 0x81, 0x35, 0x80, 0x35, 0x80, 0x35, 0x80, 0x35,
		0xc8, 0x8b, 0x86, 0x51, 0x50, 0x00, 0xf8, 0xf6, 0xb7, 0x94, 0x52, 0x2e, 0xc7, 0x2b, 0xa7, 0x5b,
		0x8e, 0xa7, 0xa7, 0x58, 0x8e, 0x57, 0x49, 0xb9, 0x1c, 0xaf, 0x9a, 0x6e, 0x39, 0x5e, 0x58, 0xfd,
		0xd7, 0xfc, 0xdc, 0xba, 0x6c, 0x77, 0x4f, 0xce, 0x6e, 0x4e, 0xbe, 0x9c, 0xb5, 0xbb, 0x67, 0xa7,
		0xa8, 0xff, 0x5b, 0x27, 0xb8, 0xd2, 0xeb, 0xff, 0x56, 0x8e, 0x41, 0x6e, 0x8d, 0xdc, 0x6a, 0xf9,
		0x5f, 0x29, 0xcd, 0xf2, 0xbf, 0x6a, 0xa1, 0xca, 0xff, 0xf4, 0x54, 0xcb, 0xff, 0x2a, 0x69, 0x96,
		0xff, 0x95, 0x51, 0xfe, 0x97, 0x19, 0x07, 0xd1, 0x7b, 0xf6, 0x7c, 0x36, 0x48, 0xe7, 0xf2, 0x68,
		0xcd, 0x77, 0xc1, 0x59, 0x84, 0xb3, 0x08, 0x67, 0x11, 0xce, 0x22, 0xad, 0x9e, 0x91, 0x1f, 0x3a,
		0x94, 0x40, 0xfb, 0x9c, 0xd9, 0x8f, 0xe1, 0x74, 0x09, 0x54, 0x85, 0xac, 0xfb, 0x12, 0x74, 0xf0,
		0xcd, 0xa8, 0x23, 0xa3, 0xa4, 0x5e, 0x04, 0xa2, 0xd7, 0xd0, 0xb0, 0x37, 0x3b, 0x28, 0x59, 0x41,
		0xd1, 0x87, 0x18, 0xf6, 0x9e, 0x8c, 0xa3, 0x93, 0x0b, 0xba, 0xc3, 0x2f, 0x01, 0xda, 0x06, 0xda,
		0x06, 0xda, 0x06, 0xda, 0x06, 0xda, 0x06, 0xda, 0x06, 0xda, 0x06, 0xda, 0x06, 0xda, 0x06, 0xda,
		0xde, 0x19, 0xb4, 0xed, 0xfb, 0x96, 0x3c, 0x94, 0x1d, 0x10, 0x07, 0xba, 0x06, 0xba, 0x06, 0xba,
		0x06, 0xba, 0x26, 0xe5, 0xf8, 0x91, 0x69, 0xfb, 0xe5, 0xba, 0x44, 0x74, 0x5d, 0x47, 0x7f, 0x23,
		0x60, 0x6b, 0x60, 0xeb, 0xed, 0x60, 0xeb, 0x7a, 0xad, 0x56, 0x01, 0xba, 0x06, 0xba, 0xde, 0x12,
		0xba, 0xce, 0xd4, 0xf0, 0xe9, 0xa6, 0x6d, 0x3b, 0xbe, 0x41, 0x9e, 0x81, 0xa2, 0x7a, 0xbd, 0x6f,
		0x6c, 0x60, 0x0c, 0x27, 0x93, 0xfb, 0x0f, 0x9c, 0x21, 0xb3, 0x7b, 0x21, 0x06, 0x0e, 0x47, 0x79,
		0x9b, 0xb6, 0x61, 0x69, 0x7d, 0xf6, 0x64, 0xf6, 0xd8, 0xc1, 0xf2, 0xdf, 0x2d, 0xe7, 0xd1, 0xec,
		0x19, 0x96, 0xd6, 0xfb, 0x66, 0xd8, 0x36, 0xb3, 0xbc, 0x83, 0xc9, 0x0f, 0x07, 0xcc, 0xff, 0xc6,
		0x5c, 0x9b, 0xf9, 0x07, 0x01, 0xe6, 0x39, 0xb0, 0x99, 0xf9, 0xf8, 0xed, 0xde, 0x71, 0xbd, 0xe8,
		0xa7, 0x03, 0xca, 0x89, 0xf7, 0xe3, 0x45, 0xf8, 0xee, 0xa8, 0xe7, 0x4f, 0x6e, 0x0a, 0xd4, 0xab,
		0x68, 0x0d, 0xed, 0xc9, 0x2b, 0x9f, 0x86, 0x6f, 0xdc, 0x5d, 0xfa, 0xeb, 0xf9, 0x78, 0x01, 0x27,
		0x93, 0xf7, 0xef, 0x4e, 0x7e, 0xe8, 0xb6, 0x26, 0xef, 0xdf, 0x3d, 0xb7, 0xfa, 0xc3, 0xee, 0xe5,
		0xf4, 0xfd, 0xa3, 0x9f, 0xba, 0xb7, 0xe1, 0xfb, 0xbf, 0xcb, 0x06, 0x93, 0x89, 0x51, 0x10, 0x64,
		0xcf, 0x00, 0xb7, 0x93, 0xb4, 0x32, 0x57, 0xcf, 0x4d, 0xcf, 0x6f, 0xfa, 0x3e, 0xcd, 0x84, 0xf5,
		0x00, 0xa9, 0xb4, 0xac, 0xb0, 0x4b, 0x0b, 0x91, 0x4a, 0x0f, 0x0c, 0xdf, 0x1c, 0x45, 0x39, 0x53,
		0x52, 0xd5, 0x2b, 0xb7, 0xcf, 0x5c, 0xd6, 0xff, 0x18, 0xec, 0xa9, 0x3d, 0xb2, 0x2c, 0x4a, 0x92,
		0x5f, 0x3c, 0xe6, 0x92, 0xd8, 0x1c, 0x51, 0x96, 0x61, 0x3f, 0x7c, 0xd7, 0xd0, 0x46, 0xb6, 0xe7,
		0x1b, 0xf7, 0x16, 0x8d, 0x7f, 0xa0, 0xba, 0xec, 0x81, 0xb9, 0xcc, 0xee, 0xd1, 0xc1, 0x6a, 0x42,
		0x15, 0x3b, 0x75, 0x56, 0xce, 0x5a, 0xad, 0x96, 0x72, 0xeb, 0xf7, 0x95, 0xc3, 0x92, 0xbe, 0x5f,
		0x6e, 0x7e, 0xd4, 0xf4, 0x52, 0xb9, 0xfe, 0x41, 0xf1, 0x58, 0x08, 0x40, 0x94, 0xc6, 0x7e, 0xf9,
		0x83, 0x72, 0xca, 0x3c, 0xdf, 0xb4, 0x43, 0x3d, 0xaf, 0xd0, 0xb7, 0x9f, 0x93, 0xe5, 0xc6, 0xcf,
		0xbb, 0xef, 0xb3, 0xa3, 0x20, 0xf6, 0x26, 0x65, 0x7b, 0xee, 0x0b, 0x1e, 0x3b, 0xef, 0x59, 0x65,
		0x0d, 0x7d, 0xbc, 0xdb, 0x2e, 0x3a, 0x13, 0xd5, 0x15, 0xc4, 0xa8, 0x67, 0x1b, 0x68, 0x87, 0x40,
		0x0c, 0x52, 0xc6, 0x37, 0x62, 0x4c, 0xcc, 0xcf, 0x72, 0x7c, 0x4f, 0x72, 0xb2, 0x18, 0x15, 0x6b,
		0xa5, 0xc8, 0x52, 0x02, 0x9c, 0x94, 0x0e, 0x07, 0xf1, 0x31, 0x4e, 0xf2, 0x63, 0xe7, 0x38, 0x72,
		0x75, 0xec, 0x73, 0xf0, 0x9e, 0xf4, 0xdc, 0x75, 0x3e, 0xbf, 0xeb, 0x12, 0xdd, 0xd8, 0x73, 0x3e,
		0x1e, 0xdd, 0x4d, 0x70, 0x16, 0xbf, 0x50, 0xdc, 0x41, 0xcc, 0xdf, 0x35, 0x38, 0x43, 0x3f, 0xe4,
		0x71, 0x11, 0xbe, 0x24, 0x02, 0x24, 0xe4, 0xf7, 0x07, 0xe4, 0x68, 0x63, 0xf9, 0x3e, 0x20, 0xda,
		0xbc, 0x9c, 0xa8, 0xcb, 0x53, 0x53, 0xcc, 0x35, 0x53, 0x7b, 0xce, 0xc8, 0xf6, 0x99, 0x2b, 0xde,
		0xb9, 0x79, 0x36, 0xf9, 0x74, 0x4a, 0x51, 0xd4, 0x87, 0x15, 0x12, 0xcb, 0x55, 0xf1, 0x14, 0x74,
		0x37, 0x29, 0xaf, 0x0a, 0x25, 0x5c, 0x0d, 0x52, 0xfb, 0x10, 0xd2, 0xae, 0xfe, 0xa4, 0x39, 0x0c,
		0x72, 0xae, 0xf6, 0xb6, 0x1b, 0xc7, 0x11, 0x15, 0xef, 0x88, 0xd0, 0x83, 0x6b, 0x0c, 0x98, 0xd6,
		0x37, 0xbd, 0x9e, 0xe1, 0xd2, 0x35, 0xd7, 0x8a, 0xf8, 0x78, 0x91, 0x3c, 0xd1, 0x79, 0xd2, 0xe6,
		0x12, 0x90, 0xe7, 0x10, 0xc8, 0xc8, 0x1d, 0x90, 0x98, 0x33, 0x90, 0x46, 0x90, 0x41, 0x4a, 0x8e,
		0x40, 0xba, 0x11, 0x06, 0xf2, 0x9c, 0x80, 0x6c, 0xdd, 0x57, 0x90, 0xdf, 0xfd, 0x2f, 0x9b, 0x7d,
		0xd2, 0xb1, 0x46, 0x53, 0x15, 0x40, 0x98, 0x4b, 0x2b, 0xe9, 0x9a, 0x5f, 0x42, 0x32, 0x85, 0xcc,
		0x6b, 0x7d, 0xd9, 0xd7, 0xf9, 0xa9, 0xdd, 0xdf, 0xca, 0xbf, 0xb7, 0x95, 0x70, 0x6d, 0x2f, 0xf5,
		0xba, 0x3e, 0x3a, 0x5a, 0x39, 0x97, 0x21, 0x45, 0x3f, 0xed, 0x8c, 0xde, 0x7a, 0x77, 0xb2, 0x72,
		0xad, 0xf9, 0x81, 0x0a, 0x8b, 0x32, 0xd7, 0x75, 0x5c, 0x8d, 0x50, 0xc7, 0x2d, 0x81, 0xd1, 0x88,
		0x3e, 0xd0, 0x28, 0xd0, 0x28, 0xd0, 0x28, 0xd0, 0x28, 0xd0, 0x28, 0xd0, 0x28, 0xd0, 0x28, 0xd0,
		0x28, 0xd0, 0x28, 0xd0, 0xe8, 0x06, 0x34, 0xea, 0x8c, 0x7c, 0xb9, 0x70, 0x34, 0xf8, 0x02, 0xe0,
		0x51, 0xe0, 0x51, 0xe0, 0x51, 0xe0, 0x51, 0xe0, 0x51, 0xe0, 0x51, 0xe0, 0x51, 0xe0, 0x51, 0xe0,
		0x51, 0xe0, 0xd1, 0x15, 0x3c, 0x2a, 0x2f, 0x2e, 0x8a, 0x88, 0x28, 0x10, 0x28, 0x10, 0x28, 0x10,
		0x28, 0x10, 0x28, 0x10, 0x28, 0x10, 0x28, 0x10, 0x28, 0x10, 0x28, 0x10, 0xe8, 0x3a, 0x04, 0x2a,
		0x31, 0x16, 0x8a, 0x28, 0x28, 0x30, 0x28, 0x30, 0x28, 0x30, 0x28, 0x30, 0x28, 0x30, 0x28, 0x30,
		0x28, 0x30, 0x28, 0x30, 0x28, 0x30, 0xe8, 0xd2, 0x21, 0x5a, 0x86, 0xe7, 0x6b, 0x3d, 0x8b, 0x19,
		0x2e, 0x3d, 0x08, 0x9d, 0xa3, 0x0d, 0x14, 0x0a, 0x14, 0x0a, 0x14, 0xba, 0x63, 0x28, 0xb4, 0x6f,
		0xf8, 0x4c, 0x33, 0xec, 0xbe, 0xe6, 0x9b, 0xa4, 0xe3, 0x45, 0x64, 0xb4, 0xfe, 0x57, 0xaf, 0x0d,
		0xdf, 0x67, 0xae, 0x4d, 0x0e, 0x46, 0xd5, 0xbb, 0xbb, 0xfe, 0xcf, 0xea, 0x8b, 0x16, 0xfc, 0xa1,
		0x4f, 0xff, 0x68, 0x8f, 0xff, 0x38, 0x5e, 0xf8, 0xe3, 0xfd, 0xdd, 0xdd, 0xfe, 0xdd, 0x5d, 0xff,
		0xbf, 0xf7, 0x7e, 0x7b, 0xff, 0xaf, 0x5f, 0x5f, 0xef, 0xee, 0xfe, 0xfb, 0xee, 0x4e, 0xeb, 0x2c,
		0x7c, 0x62, 0x4f, 0x85, 0x0d, 0x5b, 0xb3, 0xc3, 0xbe, 0xf5, 0x24, 0xaf, 0xe2, 0x76, 0x9e, 0x38,
		0xac, 0x18, 0xac, 0x18, 0xac, 0x18, 0x62, 0x29, 0x88, 0xa5, 0x20, 0x96, 0x82, 0x58, 0x0a, 0x62,
		0x29, 0x88, 0xa5, 0x00, 0x87, 0x2e, 0xe1, 0xd0, 0x91, 0xfd, 0xdd, 0x76, 0xfe, 0x63, 0xcb, 0xc1,
		0xa1, 0x53, 0xe2, 0xc0, 0xa1, 0xc0, 0xa1, 0xc0, 0xa1, 0xc0, 0xa1, 0xc0, 0xa1, 0xc0, 0xa1, 0xc0,
		0xa1, 0xc0, 0xa1, 0xc0, 0xa1, 0xc5, 0xc1, 0xa1, 0xe8, 0x37, 0x9e, 0xa4, 0x39, 0x74, 0xd8, 0x8f,
		0xf8, 0x80, 0xa8, 0x13, 0xaa, 0x22, 0xbb, 0x53, 0x74, 0x38, 0x38, 0xa5, 0x7b, 0x32, 0x7d, 0xdb,
		0x6d, 0xf5, 0x19, 0x17, 0xe8, 0x57, 0xcc, 0x6c, 0xe3, 0xde, 0x62, 0x7d, 0xba, 0x26, 0xb6, 0x53,
		0x82, 0xa2, 0xfd, 0x3b, 0xd9, 0x83, 0x31, 0xb2, 0x7c, 0x12, 0xd8, 0xa1, 0x86, 0x9a, 0x4f, 0xec,
		0x74, 0x3a, 0x34, 0x3d, 0x79, 0x4b, 0x05, 0xef, 0xc9, 0x4b, 0xd0, 0x42, 0x5b, 0x96, 0xfb, 0x95,
		0xff, 0xbe, 0xbc, 0xe2, 0x2d, 0xb6, 0xb3, 0x61, 0x94, 0xc8, 0x5c, 0xaa, 0x88, 0xf3, 0xee, 0x1d,
		0xc7, 0x62, 0x06, 0x45, 0x1c, 0x25, 0xba, 0x8a, 0x2e, 0xe7, 0x50, 0x99, 0x7b, 0xb6, 0xe3, 0x0c,
		0x4d, 0xfb, 0x91, 0x4e, 0x9b, 0x47, 0x14, 0xa1, 0xce, 0xa1, 0xce, 0xa1, 0xce, 0xa1, 0xce, 0xa1,
		0xce, 0xd3, 0x78, 0xb2, 0xf0, 0x33, 0x80, 0x44, 0x27, 0x66, 0xca, 0xf7, 0xea, 0x52, 0x9b, 0xfd,
		0xf3, 0x4e, 0x22, 0x63, 0x88, 0x32, 0x84, 0x74, 0x46, 0x50, 0xb9, 0x26, 0x1f, 0x49, 0x3b, 0xfa,
		0x64, 0x87, 0x1e, 0xff, 0xe8, 0x12, 0x1c, 0x1b, 0xe7, 0x60, 0x27, 0xa1, 0x81, 0x4e, 0x9c, 0x13,
		0x63, 0xb8, 0x07, 0x38, 0x89, 0xc0, 0x15, 0x22, 0x78, 0x22, 0x0a, 0x47, 0xc8, 0xe0, 0x07, 0x19,
		0xdc, 0xa0, 0x83, 0x17, 0x72, 0x55, 0x12, 0xef, 0x64, 0x16, 0xd5, 0xb0, 0x3c, 0xad, 0xcf, 0x2c,
		0xe3, 0x59, 0x7c, 0xea, 0xd9, 0x8c, 0x14, 0xef, 0xf4, 0x28, 0x02, 0x7f, 0x46, 0x2d, 0xf1, 0xd9,
		0x98, 0x8e, 0xd8, 0xb4, 0xb6, 0x92, 0xe8, 0xb4, 0xb6, 0x12, 0xa6, 0xb5, 0xc9, 0xf6, 0x45, 0x30,
		0xad, 0x8d, 0xda, 0xc7, 0x88, 0x38, 0x67, 0x64, 0xda, 0x7e, 0x45, 0x17, 0x61, 0x9a, 0x89, 0x1c,
		0x35, 0x04, 0x48, 0xd0, 0x5c, 0xa9, 0xd3, 0xcc, 0x15, 0xa7, 0xf3, 0xc8, 0x89, 0xaf, 0xc8, 0xa5,
		0x5d, 0x92, 0xd2, 0x5f, 0x8a, 0xbe, 0xd0, 0x0c, 0x64, 0xa7, 0x3f, 0x8a, 0xaa, 0x7e, 0x54, 0x3d,
		0xaa, 0x37, 0xf4, 0xa3, 0xda, 0xee, 0x9d, 0xc9, 0x96, 0x3c, 0xfe, 0x4e, 0x86, 0x87, 0xc6, 0xf6,
		0x2c, 0x93, 0xd9, 0xbe, 0x66, 0x58, 0x9e, 0x38, 0x86, 0x9a, 0xa3, 0xb5, 0x4d, 0x10, 0xd5, 0x6a,
		0xff, 0xde, 0xba, 0xb9, 0x6c, 0xb5, 0x81, 0xa5, 0x80, 0xa5, 0x80, 0xa5, 0xd2, 0xc5, 0x52, 0xcc,
		0x1e, 0x0d, 0x98, 0x3b, 0x0e, 0x2f, 0x89, 0x03, 0xaa, 0x72, 0x55, 0x80, 0x46, 0xcb, 0x1e, 0x0d,
		0xc4, 0x79, 0xaf, 0xed, 0xdc, 0xfa, 0x2e, 0xc5, 0x05, 0xda, 0xc4, 0xbf, 0x3b, 0x56, 0xd4, 0xcb,
		0xab, 0xcb, 0x16, 0x45, 0x20, 0xbb, 0x1c, 0x10, 0x3b, 0x6f, 0xde, 0xb6, 0x6e, 0xba, 0xb7, 0xbf,
		0x7f, 0x69, 0x9f, 0x5e, 0xfd, 0xe3, 0x92, 0x82, 0xac, 0x1e, 0x90, 0x15, 0xd3, 0xa1, 0x44, 0x20,
		0x48, 0x6d, 0x3b, 0x67, 0x36, 0x4d, 0xe7, 0xac, 0xd9, 0x82, 0xb8, 0x67, 0x8b, 0x2f, 0x90, 0x5b,
		0xda, 0x76, 0xe1, 0xd1, 0xca, 0x63, 0x21, 0x0a, 0x18, 0xe3, 0x58, 0x29, 0xe5, 0xeb, 0x62, 0x22,
		0x15, 0x98, 0xc2, 0x3c, 0xdb, 0x15, 0x07, 0x28, 0x21, 0x95, 0x2d, 0x4f, 0xb6, 0x87, 0x7d, 0x87,
		0x7d, 0xcf, 0xdd, 0x64, 0x7b, 0xe3, 0x89, 0x30, 0x83, 0x24, 0x20, 0x86, 0x64, 0x8b, 0x38, 0x42,
		0xea, 0x3f, 0x0f, 0x99, 0x87, 0x4c, 0x0b, 0x0a, 0xc2, 0x4b, 0x12, 0x3c, 0xde, 0x59, 0xa4, 0x59,
		0x2c, 0xf1, 0x5c, 0x9f, 0xf5, 0xcc, 0x81, 0x61, 0x91, 0x14, 0x20, 0x45, 0x16, 0x93, 0x02, 0x6f,
		0xad, 0x04, 0x99, 0x28, 0x88, 0xd2, 0x96, 0x31, 0x11, 0xd6, 0x83, 0xc9, 0x28, 0x5b, 0x8a, 0x02,
		0x80, 0x47, 0xba, 0x5e, 0xa9, 0x34, 0xf4, 0x52, 0xa5, 0x7e, 0x58, 0xab, 0x36, 0x1a, 0xb5, 0xc3,
		0xd2, 0x21, 0x71, 0x2d, 0xa0, 0x8c, 0xc3, 0xda, 0x14, 0x19, 0x0c, 0x54, 0x04, 0x5d, 0x9d, 0x21,
		0x61, 0x8d, 0x9c, 0x8c, 0xfa, 0xa4, 0x57, 0xce, 0xb0, 0x91, 0xe3, 0x33, 0xa4, 0x2d, 0x43, 0x7a,
		0xc9, 0x48, 0x99, 0x4f, 0x27, 0x87, 0xe9, 0xc2, 0xa6, 0xed, 0xf9, 0x06, 0x81, 0xcb, 0x1d, 0x19,
		0x94, 0x29, 0x41, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0,
		0x3d, 0xe0, 0x3d, 0xe0, 0xbd, 0x8c, 0xe0, 0x3d, 0x9f, 0xb9, 0x4f, 0x86, 0x45, 0x09, 0xf8, 0x26,
		0x14, 0x81, 0xf8, 0x80, 0xf8, 0x80, 0xf8, 0x32, 0x87, 0xf8, 0x3c, 0xdf, 0xf0, 0x35, 0x22, 0x21,
		0x55, 0x68, 0xdb, 0x0b, 0xa9, 0x5f, 0xec, 0xb1, 0xe9, 0x51, 0x6d, 0xc3, 0x76, 0x3c, 0xd6, 0x73,
		0xec, 0x3e, 0x89, 0x6c, 0xec, 0x26, 0xee, 0x2b, 0xc9, 0x46, 0x08, 0xa5, 0xdc, 0x20, 0x84, 0xbc,
		0xc0, 0x3c, 0xf9, 0xed, 0x86, 0xf2, 0x7c, 0x8a, 0xc0, 0x79, 0xdc, 0x87, 0x32, 0x20, 0xe0, 0xda,
		0xc8, 0x84, 0x04, 0xc4, 0x80, 0xee, 0x80, 0xee, 0x80, 0xee, 0x10, 0xcf, 0x43, 0x3c, 0x0f, 0xf1,
		0x3c, 0xc4, 0xf3, 0x10, 0xcf, 0x03, 0xce, 0xcb, 0x0a, 0xce, 0x1b, 0x4f, 0x62, 0xa2, 0x04, 0x7b,
		0x14, 0xb3, 0x9d, 0x80, 0xf8, 0x80, 0xf8, 0x80, 0xf8, 0x24, 0x20, 0xbe, 0x40, 0x36, 0x7d, 0xb3,
		0xf7, 0xdd, 0x23, 0xc5, 0x7c, 0x88, 0xe6, 0x21, 0x9a, 0x87, 0x68, 0x1e, 0xa2, 0x79, 0x40, 0x79,
		0x99, 0x44, 0x79, 0x04, 0x8a, 0x66, 0x06, 0xf0, 0x4c, 0x1b, 0xd8, 0x0e, 0xd8, 0x0e, 0xd8, 0x0e,
		0xd1, 0x3c, 0x44, 0xf3, 0x10, 0xcd, 0x43, 0x34, 0x0f, 0xd1, 0x3c, 0xe0, 0xbc, 0xcc, 0xe0, 0x3c,
		0xea, 0x68, 0xde, 0x94, 0x22, 0x10, 0x1f, 0x10, 0x1f, 0x10, 0x1f, 0xa2, 0x79, 0x88, 0xe6, 0x21,
		0x9a, 0x87, 0x68, 0x1e, 0xa2, 0x79, 0x40, 0x79, 0x98, 0xe9, 0x40, 0xda, 0xca, 0x7f, 0x3c, 0xb5,
		0x4f, 0xa0, 0xe1, 0x92, 0x22, 0xb1, 0xb1, 0xff, 0x78, 0x48, 0x5f, 0x2b, 0x78, 0xb9, 0x0c, 0xf7,
		0xbc, 0x7a, 0x60, 0x3d, 0x6d, 0x64, 0xf7, 0x1c, 0xd7, 0x65, 0x3d, 0xdf, 0xb8, 0xb7, 0x98, 0x76,
		0x6f, 0x39, 0xbd, 0xef, 0x04, 0x8d, 0x3a, 0x37, 0x52, 0x46, 0xef, 0x4b, 0xf4, 0xc6, 0x12, 0x44,
		0xf6, 0xbb, 0xdb, 0xfb, 0x92, 0x62, 0x7a, 0x37, 0x01, 0x64, 0x47, 0x2b, 0xf1, 0xad, 0x82, 0xad,
		0x1d, 0x6a, 0x25, 0x2e, 0x0f, 0x12, 0xa3, 0xa9, 0xb8, 0x24, 0xa8, 0x9b, 0x0e, 0x72, 0x31, 0x6d,
		0xed, 0xb0, 0xa4, 0x97, 0xff, 0x4f, 0x7b, 0x70, 0x8d, 0x01, 0x23, 0x00, 0x2c, 0xcb, 0x04, 0x81,
		0x53, 0x02, 0x53, 0xcb, 0xfc, 0x6f, 0x80, 0x28, 0x1c, 0x10, 0x25, 0xd8, 0x37, 0xa0, 0x13, 0xa0,
		0x13, 0xa0, 0x13, 0xa0, 0x13, 0xa0, 0x93, 0x5d, 0x44, 0x27, 0x61, 0xb8, 0x43, 0x63, 0xae, 0xeb,
		0xb8, 0x34, 0xe8, 0x64, 0x81, 0x20, 0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x09,
		0xd0, 0x09, 0xd0, 0x09, 0xd0, 0x49, 0x52, 0x74, 0xd2, 0x33, 0x5c, 0xd7, 0x64, 0x2e, 0x25, 0x3e,
		0x59, 0x22, 0x09, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84,
		0x52, 0x1c, 0x84, 0xc2, 0xa9, 0x25, 0xd9, 0x0f, 0xdf, 0x35, 0xb4, 0x91, 0xed, 0x85, 0xc9, 0x20,
		0x62, 0xfa, 0xd2, 0x65, 0x0f, 0xcc, 0x65, 0x76, 0x2f, 0x13, 0x3a, 0x6a, 0xaa, 0xbc, 0x6f, 0x3e,
		0x9d, 0x28, 0xe5, 0x7a, 0xb5, 0xa2, 0x9c, 0xb2, 0x07, 0xd3, 0x36, 0x03, 0xde, 0xf3, 0x14, 0xe7,
		0x41, 0xb9, 0x30, 0x6c, 0xe3, 0x91, 0xf5, 0xef, 0xec, 0xab, 0xfb, 0xff, 0x65, 0x3d, 0xdf, 0x53,
		0x1e, 0x1c, 0x57, 0xf1, 0xbf, 0x31, 0x65, 0x9a, 0x2a, 0xa4, 0x59, 0xe6, 0x77, 0xa6, 0x9c, 0x05,
		0x9a, 0xff, 0xc1, 0xe8, 0x31, 0x25, 0xb0, 0x27, 0xde, 0x7e, 0xc6, 0x53, 0xc2, 0x67, 0x47, 0x90,
		0xa7, 0xac, 0x70, 0xea, 0x33, 0x82, 0x77, 0x22, 0xc9, 0x3b, 0x71, 0x7b, 0xa4, 0x9e, 0xc9, 0x8c,
		0x1c, 0xbc, 0x12, 0x78, 0x25, 0xf0, 0x4a, 0xe0, 0x95, 0xc0, 0x2b, 0x81, 0x57, 0x02, 0xaf, 0x04,
		0x5e, 0xc9, 0x2e, 0x78, 0x25, 0xfa, 0x61, 0xf9, 0xe8, 0x58, 0xb9, 0x61, 0x03, 0xc7, 0x67, 0xca,
		0x25, 0xf3, 0xff, 0xe3, 0xb8, 0xdf, 0x95, 0x0b, 0xc7, 0x36, 0x7d, 0xc7, 0x35, 0xed, 0x47, 0xe5,
		0xe2, 0xec, 0xa3, 0xa2, 0xdd, 0xd9, 0x61, 0x5d, 0xc5, 0xad, 0x6f, 0xf8, 0xde, 0xc9, 0xcd, 0x49,
		0xd3, 0x32, 0x1f, 0xed, 0x96, 0x08, 0x66, 0x82, 0x27, 0xf2, 0x96, 0x27, 0x22, 0x7a, 0x2e, 0xf0,
		0x3e, 0xe4, 0x78, 0x1f, 0x0f, 0xae, 0xf1, 0x18, 0x9c, 0x13, 0x65, 0x6a, 0xe9, 0x32, 0x4d, 0xf8,
		0x21, 0xf0, 0x43, 0xe0, 0x87, 0xc0, 0x0f, 0x81, 0x1f, 0x02, 0x3f, 0x04, 0x7e, 0x08, 0x30, 0x4a,
		0x52, 0x8c, 0x12, 0x8e, 0xd7, 0x72, 0x47, 0x43, 0x9f, 0xf5, 0x35, 0xff, 0x07, 0x09, 0x44, 0x59,
		0x22, 0x09, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x52,
		0x1c, 0x84, 0x82, 0x48, 0xe9, 0x7a, 0xe5, 0x8d, 0xfc, 0x8d, 0x4c, 0x01, 0x8a, 0xb5, 0xc0, 0x02,
		0xf9, 0x1b, 0xf9, 0xf0, 0x4e, 0xfe, 0xd7, 0xb8, 0xbf, 0x67, 0x2e, 0x65, 0xfc, 0x74, 0x91, 0x22,
		0x7c, 0x13, 0xf8, 0x26, 0xf0, 0x4d, 0xe0, 0x9b, 0xc0, 0x37, 0x81, 0x6f, 0x02, 0xdf, 0x04, 0xf8,
		0x24, 0x29, 0x3e, 0xb1, 0x0c, 0x9f, 0x69, 0x3d, 0xc7, 0xb2, 0x4c, 0x4f, 0xa4, 0xc3, 0xe5, 0x3c,
		0x40, 0x59, 0x22, 0x09, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02, 0x84, 0x02,
		0x84, 0x52, 0x1c, 0x84, 0x82, 0xe8, 0xe9, 0x7a, 0xe5, 0x8d, 0xe8, 0x69, 0xa6, 0x00, 0xc5, 0x5a,
		0x60, 0x81, 0xe8, 0x69, 0x3e, 0xbc, 0x93, 0x81, 0xd1, 0xd3, 0x7a, 0x8e, 0xed, 0xbb, 0x8e, 0x45,
		0x19, 0x42, 0x5d, 0x43, 0x16, 0x5e, 0x0a, 0xbc, 0x14, 0x78, 0x29, 0xf0, 0x52, 0xe0, 0xa5, 0xc0,
		0x4b, 0x81, 0x97, 0x02, 0xa4, 0xc2, 0x83, 0x54, 0xc6, 0x85, 0xf5, 0x9a, 0xfb, 0x83, 0x0c, 0xa4,
		0xcc, 0x28, 0x02, 0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x00, 0x9f, 0x00, 0x9f,
		0x14, 0x07, 0x9f, 0x20, 0x8a, 0xba, 0x5e, 0x79, 0x23, 0x8a, 0x9a, 0x29, 0x40, 0xb1, 0x16, 0x58,
		0x20, 0x8a, 0x9a, 0x1f, 0xdf, 0x64, 0x68, 0x8c, 0x3c, 0x46, 0x1d, 0x43, 0x5d, 0x20, 0x0a, 0x0f,
		0x05, 0x1e, 0x0a, 0x3c, 0x14, 0x78, 0x28, 0xf0, 0x50, 0xe0, 0xa1, 0xc0, 0x43, 0x01, 0x4a, 0x49,
		0x8e, 0x52, 0x7e, 0x78, 0xe6, 0x9f, 0x4c, 0x63, 0x3f, 0x7a, 0x8c, 0xf5, 0x59, 0x9f, 0x08, 0xa5,
		0x2c, 0x11, 0x05, 0x4a, 0x01, 0x4a, 0x01, 0x4a, 0x01, 0x4a, 0x01, 0x4a, 0x01, 0x4a, 0x01, 0x4a,
		0x01, 0x4a, 0x49, 0x8a, 0x52, 0x9c, 0x27, 0xe6, 0x86, 0x88, 0x82, 0x30, 0x94, 0xb2, 0x4c, 0x13,
		0x18, 0x05, 0x18, 0x05, 0x18, 0x05, 0x18, 0x05, 0x18, 0x05, 0x18, 0x05, 0x18, 0x05, 0x18, 0x25,
		0x29, 0x46, 0x19, 0xf6, 0x3c, 0xed, 0xde, 0x1c, 0x52, 0xce, 0x8d, 0x59, 0x22, 0x09, 0x84, 0x12,
		0x58, 0x5a, 0x67, 0xe8, 0x6b, 0x3e, 0x73, 0x07, 0x80, 0x29, 0x1c, 0x30, 0x25, 0xda, 0x3c, 0x60,
		0x15, 0x60, 0x15, 0x60, 0x15, 0x60, 0x15, 0x60, 0x95, 0x5d, 0xc5, 0x2a, 0x21, 0xa8, 0x60, 0x7d,
		0xcd, 0x63, 0x3d, 0xc7, 0xee, 0xd3, 0x01, 0x96, 0x65, 0xba, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d,
		0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x40, 0x2d, 0x62, 0xa8, 0xc5, 0x63, 0x4f, 0xcc,
		0x65, 0xd6, 0xb3, 0x34, 0xf8, 0xb2, 0xf1, 0x0b, 0x80, 0x63, 0x80, 0x63, 0x80, 0x63, 0x80, 0x63,
		0x80, 0x63, 0x80, 0x63, 0x80, 0x63, 0x80, 0x63, 0xc4, 0x70, 0xcc, 0xc8, 0x36, 0x9e, 0x0c, 0xd3,
		0x32, 0xee, 0x2d, 0x46, 0x0e, 0x61, 0xd6, 0xd1, 0x06, 0x7a, 0x01, 0x7a, 0x01, 0x7a, 0x01, 0x7a,
		0x01, 0x7a, 0x01, 0x7a, 0x01, 0x7a, 0x01, 0x7a, 0xe1, 0x47, 0x2f, 0x9e, 0x69, 0x3f, 0x5a, 0xd4,
		0xdd, 0xeb, 0x57, 0x88, 0x02, 0xaf, 0x20, 0x1b, 0x97, 0x1f, 0xaa, 0x20, 0x1b, 0x17, 0x28, 0x05,
		0x28, 0x05, 0x28, 0x05, 0x28, 0x25, 0x6b, 0x28, 0x05, 0x9d, 0x97, 0xd6, 0x2b, 0x6f, 0x74, 0x5e,
		0xca, 0x14, 0xa0, 0x58, 0x0b, 0x2c, 0xd0, 0x79, 0x29, 0x27, 0x1e, 0xca, 0xf3, 0xe0, 0xde, 0xb1,
		0xc6, 0x17, 0xb8, 0x34, 0xde, 0xc9, 0x3c, 0x41, 0x78, 0x26, 0xf0, 0x4c, 0xe0, 0x99, 0xc0, 0x33,
		0x81, 0x67, 0x02, 0xcf, 0x04, 0x9e, 0x09, 0x3c, 0x13, 0x78, 0x26, 0xf0, 0x4c, 0xe0, 0x99, 0xc0,
		0x33, 0x89, 0xe3, 0x99, 0x8c, 0xec, 0x3e, 0x7d, 0x23, 0x93, 0x15, 0xa2, 0xf0, 0x50, 0xe0, 0xa1,
		0xc0, 0x43, 0x81, 0x87, 0x02, 0x0f, 0x05, 0x1e, 0x0a, 0x3c, 0x14, 0x78, 0x28, 0xbb, 0xe0, 0xa1,
		0xe8, 0x87, 0xe5, 0xa3, 0x63, 0xe5, 0x86, 0x0d, 0x1c, 0x9f, 0x29, 0x97, 0xcc, 0xff, 0x8f, 0xe3,
		0x7e, 0x57, 0x2e, 0x1c, 0xdb, 0xf4, 0x1d, 0xd7, 0xb4, 0x1f, 0x95, 0x8b, 0xb3, 0x8f, 0x8a, 0x76,
		0x67, 0xb3, 0x00, 0xf7, 0xde, 0xfa, 0x86, 0xef, 0x7d, 0x99, 0xa2, 0xa6, 0xeb, 0xef, 0xbe, 0x07,
		0xa7, 0x44, 0x92, 0x53, 0x22, 0x78, 0x2c, 0xf0, 0x43, 0x24, 0xf8, 0x21, 0xce, 0xc8, 0xd7, 0x0e,
		0x4b, 0x7a, 0xf9, 0xff, 0xc8, 0x9c, 0x90, 0x15, 0x8a, 0xf0, 0x40, 0xe0, 0x81, 0xc0, 0x03, 0x81,
		0x07, 0x02, 0x0f, 0x04, 0x1e, 0x08, 0x3c, 0x10, 0xe0, 0x93, 0xc4, 0xf8, 0xe4, 0xde, 0x72, 0x7a,
		0xdf, 0xc9, 0x5a, 0x29, 0xae, 0x50, 0x04, 0x3e, 0x41, 0x35, 0x9c, 0x20, 0x48, 0x41, 0x35, 0x1c,
		0x90, 0x0a, 0x90, 0x0a, 0x90, 0x0a, 0x90, 0xca, 0x6e, 0x23, 0x95, 0x9e, 0xdb, 0x23, 0xc5, 0x29,
		0x73, 0xf4, 0x80, 0x52, 0x80, 0x52, 0x80, 0x52, 0x80, 0x52, 0x80, 0x52, 0x80, 0x52, 0x80, 0x52,
		0x80, 0x52, 0x04, 0x50, 0xca, 0xc0, 0xe8, 0x69, 0x3d, 0xc7, 0xf6, 0x5d, 0xc7, 0x22, 0xbd, 0xf5,
		0x59, 0x43, 0x17, 0xa8, 0x05, 0x77, 0x3f, 0xfc, 0x80, 0x05, 0x77, 0x3f, 0xc0, 0x2a, 0xc0, 0x2a,
		0xc0, 0x2a, 0xc0, 0x2a, 0x3b, 0x8d, 0x55, 0xc6, 0x11, 0x10, 0xcd, 0xff, 0x41, 0x07, 0x53, 0x66,
		0x24, 0x81, 0x50, 0x80, 0x50, 0x80, 0x50, 0x80, 0x50, 0x80, 0x50, 0x80, 0x50, 0x80, 0x50, 0x8a,
		0x83, 0x50, 0x90, 0x1f, 0xbf, 0x5e, 0x79, 0xa3, 0x82, 0x37, 0x53, 0x80, 0x62, 0x2d, 0xb0, 0x40,
		0x05, 0x6f, 0x8e, 0xbc, 0x93, 0xa1, 0x31, 0xf2, 0x18, 0x79, 0x1c, 0x75, 0x81, 0x2a, 0x7c, 0x14,
		0xf8, 0x28, 0xf0, 0x51, 0xe0, 0xa3, 0xc0, 0x47, 0x81, 0x8f, 0x02, 0x1f, 0x05, 0x38, 0x25, 0x31,
		0x4e, 0x19, 0xf6, 0x3c, 0xed, 0xde, 0x1c, 0x92, 0xe6, 0xa6, 0x2d, 0xd1, 0x04, 0x46, 0x41, 0x7e,
		0x9a, 0x20, 0x50, 0x41, 0x7e, 0x1a, 0xd0, 0x0a, 0xd0, 0x0a, 0xd0, 0x0a, 0xd0, 0xca, 0xee, 0xa2,
		0x95, 0xa1, 0xe3, 0xf9, 0xda, 0x03, 0xeb, 0x69, 0xf7, 0x8c, 0xa0, 0x5d, 0xf3, 0x02, 0x35, 0x31,
		0x84, 0x52, 0x06, 0x42, 0x01, 0x42, 0xc9, 0x1b, 0x42, 0x39, 0x35, 0x5d, 0x31, 0xc6, 0x31, 0x9e,
		0x1e, 0xc5, 0x8f, 0x79, 0xca, 0x7d, 0x01, 0x31, 0xc1, 0xf3, 0x10, 0x73, 0x17, 0xc8, 0x84, 0x92,
		0x52, 0x38, 0x37, 0x0a, 0xe9, 0xf3, 0x90, 0x65, 0xbd, 0x17, 0x11, 0x89, 0xd4, 0x4a, 0x93, 0xde,
		0x57, 0xa5, 0x38, 0xdc, 0xdd, 0x6d, 0x9b, 0x70, 0x41, 0xee, 0x13, 0x76, 0x40, 0x56, 0x78, 0xaf,
		0xcf, 0x7a, 0xe6, 0xc0, 0xb0, 0x84, 0x1c, 0x91, 0x15, 0xcb, 0xa9, 0x13, 0xd0, 0x5a, 0x41, 0x75,
		0xe5, 0x43, 0x02, 0xaa, 0x34, 0xfe, 0x0e, 0x9d, 0xdf, 0x23, 0xc5, 0xff, 0x59, 0x01, 0xdf, 0x47,
		0xba, 0x5e, 0xa9, 0x34, 0xf4, 0x52, 0xa5, 0x7e, 0x58, 0xab, 0x36, 0x1a, 0xb5, 0xc3, 0xd2, 0xe1,
		0x07, 0xda, 0x6f, 0x92, 0x72, 0x5a, 0x9b, 0xc0, 0x78, 0xa0, 0x28, 0xc8, 0x88, 0xbf, 0x7c, 0x20,
		0x3c, 0x44, 0x42, 0xcf, 0x29, 0xc6, 0x21, 0x36, 0xf2, 0x7c, 0x88, 0x34, 0x1e, 0x15, 0x8d, 0x5a,
		0xa6, 0xa3, 0xd2, 0xd9, 0x92, 0x87, 0x27, 0xc0, 0xc5, 0xaa, 0x69, 0x7b, 0xbe, 0x11, 0xda, 0x4a,
		0x22, 0xd8, 0x37, 0x25, 0x08, 0xe8, 0x07, 0xe8, 0x07, 0xe8, 0x07, 0xe8, 0x07, 0xe8, 0x07, 0xe8,
		0x07, 0xe8, 0x07, 0xe8, 0x07, 0xe8, 0x97, 0x3d, 0xe8, 0xe7, 0x33, 0xf7, 0xc9, 0xb0, 0x28, 0xb1,
		0xdf, 0x84, 0x22, 0xc0, 0x5f, 0x1c, 0xf0, 0x07, 0xe0, 0x27, 0x0b, 0xf8, 0x01, 0xf4, 0xad, 0xe5,
		0x39, 0xcf, 0x37, 0x7c, 0x8d, 0x48, 0x48, 0x15, 0x9a, 0x24, 0x84, 0x88, 0xd4, 0x17, 0x7b, 0x6c,
		0x7b, 0x54, 0xdb, 0xb0, 0x1d, 0x8f, 0xf5, 0x1c, 0xbb, 0x4f, 0x22, 0x1b, 0xbb, 0x89, 0xfc, 0x4a,
		0xb2, 0x21, 0x42, 0x29, 0x37, 0x08, 0x21, 0x2f, 0x38, 0x4f, 0x5e, 0x92, 0x44, 0x11, 0x4e, 0x11,
		0x38, 0x8f, 0xfb, 0x50, 0x06, 0x04, 0x5c, 0x1b, 0x99, 0x90, 0x80, 0x18, 0xd0, 0x1d, 0x42, 0x7b,
		0x08, 0xed, 0x21, 0xb4, 0x87, 0xd0, 0x1e, 0x42, 0x7b, 0x08, 0xed, 0x21, 0xb4, 0x07, 0xc8, 0x97,
		0x41, 0xc8, 0xa7, 0xf9, 0xe6, 0x80, 0x91, 0xe2, 0xbe, 0x31, 0x45, 0x80, 0x3f, 0x84, 0xf6, 0x10,
		0xda, 0xcb, 0x1c, 0xe8, 0x0b, 0x64, 0xd3, 0x37, 0x7b, 0xdf, 0x3d, 0x52, 0xd8, 0x87, 0xc0, 0x1e,
		0x02, 0x7b, 0x08, 0xec, 0x21, 0xb0, 0x07, 0x94, 0x97, 0x49, 0x94, 0x47, 0xa0, 0x68, 0x66, 0x00,
		0xcf, 0xb4, 0x81, 0xed, 0x10, 0xd8, 0x43, 0x60, 0x0f, 0x81, 0x3d, 0x04, 0xf6, 0x10, 0xd8, 0x43,
		0x60, 0x0f, 0x81, 0x3d, 0x40, 0xbe, 0x2c, 0x42, 0x3e, 0xea, 0xc0, 0xde, 0x94, 0x22, 0xc0, 0x1f,
		0x02, 0x7b, 0x08, 0xec, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b, 0x08, 0xec, 0x21, 0xb0, 0x07,
		0x94, 0x27, 0x86, 0xf2, 0x52, 0x6d, 0xfd, 0xd2, 0xb4, 0x6d, 0xc7, 0x37, 0x02, 0x4e, 0x11, 0xeb,
		0x00, 0xe3, 0xf5, 0xbe, 0xb1, 0x81, 0x31, 0x34, 0xfc, 0x6f, 0x81, 0x62, 0x3f, 0x70, 0x86, 0xcc,
		0xee, 0x85, 0x88, 0x2c, 0x6c, 0x84, 0x63, 0xda, 0x86, 0xa5, 0xf5, 0xd9, 0x93, 0xd9, 0x63, 0x07,
		0xcb, 0x7f, 0xb7, 0x9c, 0x47, 0xb3, 0x67, 0x58, 0x5a, 0xef, 0x9b, 0x61, 0xdb, 0xcc, 0xf2, 0x0e,
		0x26, 0x3f, 0x1c, 0xb0, 0x49, 0xb7, 0xf2, 0x03, 0xcf, 0x37, 0x7c, 0x76, 0x40, 0xd0, 0xa4, 0x69,
		0xfc, 0xa6, 0xbe, 0x3b, 0xea, 0xf9, 0xf6, 0xc4, 0x4a, 0x5e, 0x45, 0x2f, 0xda, 0x9e, 0xbc, 0xd7,
		0x69, 0xf8, 0x5a, 0xdd, 0xa5, 0xbf, 0x9e, 0x8f, 0xdf, 0xf2, 0x64, 0xf2, 0x92, 0xdd, 0xc9, 0x0f,
		0xdd, 0x69, 0x4b, 0xf5, 0xee, 0x6d, 0xf0, 0x92, 0xdd, 0x6b, 0xc7, 0xf3, 0x3f, 0xb1, 0xde, 0x47,
		0xe6, 0xaa, 0x59, 0xee, 0x9e, 0xe5, 0x32, 0xc2, 0xe6, 0x59, 0x73, 0xc4, 0xd0, 0x3b, 0x0b, 0xbd,
		0xb3, 0x04, 0xd1, 0x3c, 0x7a, 0x67, 0x89, 0x70, 0x1f, 0x7a, 0x67, 0x25, 0x12, 0x52, 0xf8, 0xe4,
		0xb8, 0x8c, 0x49, 0xdb, 0x2f, 0xc7, 0x65, 0xcc, 0x0e, 0x38, 0xe5, 0xb8, 0x8c, 0x29, 0x80, 0x9b,
		0x8e, 0xcb, 0x18, 0xb8, 0xe9, 0x32, 0xb8, 0x18, 0xbd, 0xb3, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd,
		0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x76, 0x09, 0xfa, 0xa1, 0x77, 0xd6,
		0x56, 0xc1, 0x1f, 0x80, 0x1f, 0xf2, 0x70, 0x52, 0x05, 0x7d, 0xe8, 0x9d, 0xb5, 0x2b, 0xc8, 0x0f,
		0x99, 0x38, 0xb9, 0xc3, 0x79, 0xc8, 0xc4, 0x01, 0xce, 0x93, 0x82, 0xf3, 0xd0, 0x3b, 0x0b, 0xa1,
		0x3d, 0x84, 0xf6, 0x10, 0xda, 0x43, 0x68, 0x0f, 0xa1, 0x3d, 0x84, 0xf6, 0x10, 0xda, 0x03, 0xe4,
		0xdb, 0x05, 0xc8, 0x87, 0xde, 0x59, 0x08, 0xed, 0x21, 0xb4, 0xb7, 0x33, 0xa0, 0x0f, 0x25, 0x76,
		0x08, 0xec, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b, 0x3b, 0x84, 0xf2, 0xd0, 0x3b, 0x0b, 0x81,
		0x3d, 0x04, 0xf6, 0x10, 0xd8, 0x43, 0x60, 0x0f, 0x81, 0x3d, 0x04, 0xf6, 0x10, 0xd8, 0x03, 0xe4,
		0xdb, 0x01, 0xc8, 0x87, 0xde, 0x59, 0x08, 0xec, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b, 0x08,
		0xec, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x50, 0x5e, 0x36, 0x51, 0x1e, 0x7a, 0x67, 0xad, 0xef, 0x9d,
		0x25, 0xdc, 0xa3, 0x49, 0x91, 0xdf, 0x3a, 0xcb, 0x65, 0xd9, 0xef, 0x9c, 0xf5, 0x7f, 0xda, 0xd3,
		0x44, 0x0f, 0x09, 0x76, 0xcd, 0x9a, 0x12, 0x42, 0xc7, 0x2c, 0x74, 0xcc, 0x12, 0xc4, 0xf0, 0xe8,
		0x98, 0x25, 0xc2, 0x7d, 0xe8, 0x98, 0x05, 0x2f, 0x1c, 0x5e, 0x38, 0xae, 0x5e, 0x84, 0x1c, 0x04,
		0x1d, 0x1e, 0x38, 0xa7, 0x3b, 0xb7, 0x85, 0x9b, 0x17, 0x1d, 0x17, 0x2f, 0xb2, 0xcf, 0xb0, 0x91,
		0xe3, 0x33, 0x84, 0x47, 0x4e, 0xea, 0x91, 0xa3, 0x4d, 0x16, 0xf0, 0x1e, 0xf0, 0x1e, 0xf0, 0x1e,
		0xf0, 0x1e, 0xf0, 0x1e, 0xf0, 0x1e, 0xf0, 0x1e, 0xf0, 0x1e, 0xf0, 0xde, 0x46, 0xbc, 0x87, 0xde,
		0x58, 0x40, 0x7c, 0x40, 0x7c, 0xbb, 0x83, 0xf8, 0xd0, 0x1b, 0x6b, 0x57, 0x70, 0x1f, 0x32, 0x6d,
		0x72, 0x07, 0xf3, 0x90, 0x69, 0x03, 0x9c, 0x27, 0x05, 0xe7, 0xa1, 0x37, 0x16, 0xd0, 0x1d, 0xd0,
		0x1d, 0xe2, 0x79, 0x88, 0xe7, 0x21, 0x9e, 0x87, 0x78, 0x1e, 0xe2, 0x79, 0xc0, 0x79, 0x85, 0xc5,
		0x79, 0x68, 0x88, 0x05, 0xc4, 0x07, 0xc4, 0xb7, 0x33, 0x88, 0x0f, 0x75, 0x73, 0x88, 0xe6, 0x21,
		0x9a, 0x87, 0x68, 0x1e, 0xa2, 0x79, 0x3b, 0x84, 0xf2, 0xd0, 0x10, 0x0b, 0xd8, 0x0e, 0xd8, 0x0e,
		0xd1, 0x3c, 0x44, 0xf3, 0x10, 0xcd, 0x43, 0x34, 0x0f, 0xd1, 0x3c, 0xe0, 0xbc, 0xa2, 0xe2, 0x3c,
		0x74, 0xc1, 0x02, 0xe2, 0x03, 0xe2, 0x43, 0x34, 0x0f, 0xd1, 0x3c, 0x44, 0xf3, 0x10, 0xcd, 0x43,
		0x34, 0x0f, 0x28, 0x2f, 0x9b, 0x28, 0x0f, 0x5d, 0xb0, 0xd6, 0x76, 0xc1, 0x12, 0xeb, 0xb9, 0xa4,
		0x48, 0xef, 0x80, 0xf5, 0xff, 0xc6, 0xd2, 0x9d, 0x56, 0xfb, 0xab, 0x77, 0x12, 0xb9, 0x43, 0x94,
		0x2b, 0xe4, 0x73, 0x03, 0x07, 0x17, 0x48, 0x3d, 0xfd, 0x64, 0xc7, 0x1e, 0xff, 0xf0, 0xe2, 0x7d,
		0x32, 0xe6, 0xf1, 0xaa, 0xec, 0x87, 0xef, 0x1a, 0xda, 0xc8, 0xf6, 0x7c, 0xe3, 0xde, 0x4a, 0x06,
		0x37, 0xd5, 0xff, 0x7c, 0x63, 0x76, 0x62, 0x6c, 0xc5, 0xc1, 0x3a, 0x53, 0xf8, 0xba, 0x7f, 0x30,
		0x3e, 0x9d, 0x65, 0x8e, 0x08, 0xe1, 0xbe, 0xf2, 0x3f, 0xca, 0x5f, 0xaf, 0x6f, 0xae, 0xda, 0xdd,
		0x56, 0xfb, 0xf7, 0xd6, 0xcd, 0x65, 0xab, 0xfd, 0x57, 0x1e, 0x86, 0x10, 0xf4, 0xa4, 0xe6, 0x3d,
		0xa7, 0x70, 0x77, 0x38, 0x55, 0x30, 0x95, 0x9f, 0xb4, 0xe0, 0x17, 0x25, 0xdd, 0xbe, 0x54, 0xfa,
		0xef, 0x9d, 0x32, 0xaf, 0xe7, 0x9a, 0x43, 0x21, 0x6b, 0x13, 0x31, 0xc8, 0x99, 0xdd, 0xb3, 0x46,
		0x7d, 0xa6, 0xf8, 0xdf, 0x98, 0x32, 0x15, 0x46, 0x65, 0xe8, 0x3a, 0xbe, 0xd3, 0x73, 0x2c, 0x25,
		0xd0, 0x12, 0xa6, 0xe7, 0x9b, 0x3d, 0x4f, 0x71, 0x6c, 0xeb, 0x59, 0x09, 0x0e, 0x28, 0xf8, 0xe8,
		0x9d, 0x1d, 0x7d, 0x64, 0xe4, 0xb1, 0xbe, 0x72, 0xff, 0x1c, 0x12, 0xb0, 0x4c, 0xfb, 0xbb, 0x62,
		0x7a, 0x11, 0xa1, 0x7d, 0xde, 0xc3, 0x24, 0xf0, 0xce, 0xe7, 0xf9, 0xaa, 0x3f, 0xb7, 0x63, 0x02,
		0x86, 0x8f, 0xd2, 0x15, 0x5f, 0x60, 0x33, 0xc9, 0x87, 0x90, 0x4d, 0x63, 0xfa, 0x8e, 0x16, 0x42,
		0xc6, 0xd5, 0xde, 0x9c, 0x46, 0x59, 0xa6, 0x31, 0x4e, 0xc0, 0x93, 0x92, 0xcc, 0x6f, 0x3c, 0x16,
		0x79, 0xfb, 0xc8, 0x62, 0x1c, 0x82, 0x6a, 0xda, 0x7d, 0x16, 0xdf, 0x2b, 0x9c, 0x2b, 0x63, 0x0e,
		0x1e, 0x8b, 0x79, 0xc8, 0xc9, 0xa2, 0xa1, 0x89, 0xa3, 0x9e, 0x3c, 0xd1, 0x4d, 0xc1, 0x56, 0x9f,
		0xbc, 0x2a, 0x51, 0x38, 0x30, 0x29, 0xac, 0xf5, 0xc4, 0x5b, 0x75, 0xd2, 0xc2, 0xb7, 0xc4, 0x31,
		0xc2, 0xe8, 0xe4, 0x2c, 0x66, 0x3c, 0xb8, 0xec, 0x21, 0xc9, 0xa9, 0x4d, 0xef, 0x78, 0x13, 0x5c,
		0x3f, 0xa9, 0xd7, 0x13, 0x1d, 0xb3, 0x1f, 0xa1, 0x8f, 0x31, 0xef, 0xa7, 0x2a, 0xa3, 0x8f, 0x2e,
		0xf3, 0x3c, 0x1e, 0x29, 0x1d, 0x3f, 0x98, 0x4c, 0x4e, 0xcb, 0x90, 0x53, 0xc8, 0xe9, 0x0a, 0xcc,
		0x4d, 0xd8, 0x22, 0x57, 0xed, 0x4d, 0xb9, 0x23, 0xe1, 0xce, 0x4f, 0x0f, 0x7c, 0xf2, 0x7c, 0xc2,
		0x5d, 0xe3, 0xeb, 0x42, 0xcd, 0x7d, 0xd1, 0x26, 0x72, 0xb1, 0x46, 0xd4, 0x6d, 0x9a, 0xd2, 0xe3,
		0x13, 0xba, 0x2b, 0x93, 0xe3, 0xf3, 0x09, 0x75, 0x93, 0x96, 0x1b, 0x50, 0xe2, 0xed, 0x1a, 0x3d,
		0xee, 0x01, 0xf3, 0x60, 0xf4, 0x08, 0x9a, 0xb6, 0xcf, 0x48, 0x89, 0xb5, 0x6d, 0x2f, 0xa1, 0x6d,
		0x3b, 0xa5, 0xbb, 0xab, 0xa0, 0x6d, 0x7b, 0x0a, 0x71, 0x7e, 0xe1, 0xfb, 0xe5, 0x88, 0x73, 0xee,
		0x0d, 0x8f, 0x69, 0x91, 0x2c, 0x69, 0xc9, 0x60, 0x25, 0x05, 0xcc, 0xdc, 0x08, 0x3b, 0x0f, 0x9c,
		0x9e, 0x66, 0x3e, 0x1c, 0x47, 0xef, 0xe6, 0x2d, 0xff, 0x62, 0xf2, 0xf7, 0xd0, 0x07, 0xcd, 0xf0,
		0x98, 0x8a, 0xe1, 0xb7, 0x67, 0x6f, 0xde, 0xef, 0x16, 0x57, 0x7d, 0x2b, 0x14, 0xa1, 0x01, 0xa1,
		0x01, 0xa1, 0x01, 0x39, 0x39, 0x27, 0xb9, 0x37, 0x2d, 0x5d, 0xed, 0x0d, 0x2d, 0xc3, 0x7f, 0x70,
		0xdc, 0xc1, 0x71, 0xcf, 0x19, 0x0c, 0x1d, 0x9b, 0xd9, 0xbe, 0xb7, 0xfe, 0xd7, 0xc1, 0x6f, 0x7d,
		0xd7, 0xb0, 0xbd, 0x1e, 0x33, 0x9f, 0x98, 0x7b, 0x3c, 0xf7, 0xf3, 0xf2, 0x3f, 0x2d, 0x2b, 0x0d,
		0x6f, 0xf9, 0x03, 0xd3, 0x68, 0xe0, 0xd2, 0xaf, 0x13, 0xf8, 0xfc, 0x54, 0x67, 0x7b, 0x6e, 0x7a,
		0x7e, 0xd3, 0xf7, 0x05, 0x27, 0x93, 0x5c, 0x98, 0x76, 0xcb, 0x62, 0x01, 0x8b, 0x0b, 0x26, 0x4c,
		0xa8, 0x17, 0xc6, 0x8f, 0x39, 0x4a, 0xb4, 0xe9, 0x1e, 0xea, 0x95, 0xdb, 0x67, 0x2e, 0xeb, 0x7f,
		0x7c, 0x56, 0x8f, 0x15, 0x7b, 0x64, 0x59, 0x14, 0xa4, 0xbe, 0x78, 0xcc, 0x15, 0xca, 0xe4, 0x48,
		0xc7, 0x32, 0xce, 0xb1, 0x99, 0xb8, 0x51, 0x9c, 0x27, 0x06, 0x7b, 0x08, 0x7b, 0x08, 0x7b, 0xb8,
		0xa3, 0xf6, 0x30, 0xfa, 0x6d, 0xaa, 0x8e, 0xc1, 0xae, 0x25, 0xf0, 0x4c, 0x02, 0xec, 0x07, 0x5c,
		0xc1, 0x4a, 0x85, 0xfe, 0x06, 0xf1, 0x6c, 0xfc, 0x3e, 0xdd, 0x89, 0x12, 0x96, 0x95, 0xc0, 0x93,
		0xe8, 0x86, 0xd4, 0xf0, 0x19, 0x7f, 0x14, 0x98, 0x27, 0x31, 0x4a, 0x38, 0x08, 0xac, 0x23, 0x08,
		0x8c, 0x20, 0x30, 0x82, 0xc0, 0x80, 0x7c, 0x80, 0x7c, 0x08, 0x02, 0x23, 0x08, 0x8c, 0x20, 0x30,
		0x34, 0x20, 0x34, 0x20, 0x9c, 0x5e, 0x04, 0x81, 0x11, 0x04, 0x46, 0x10, 0x18, 0x41, 0x60, 0xd8,
		0x43, 0xd8, 0x43, 0xd8, 0x43, 0x04, 0x81, 0x11, 0x04, 0x5e, 0x0c, 0x02, 0x67, 0xa4, 0x88, 0x73,
		0x1a, 0x03, 0xce, 0x51, 0x0d, 0x67, 0x86, 0xaa, 0x80, 0x92, 0xa5, 0xcc, 0xcb, 0x3b, 0xbe, 0x34,
		0xeb, 0x0b, 0x96, 0xcb, 0x29, 0x0d, 0xcf, 0x33, 0x1f, 0xed, 0x29, 0xc8, 0x4b, 0x58, 0x73, 0xf0,
		0x1a, 0x31, 0xd4, 0x21, 0xa0, 0x0e, 0x41, 0x50, 0x55, 0x24, 0xae, 0x43, 0x98, 0xf1, 0x1f, 0xff,
		0x2d, 0xd4, 0x1c, 0x0d, 0xd4, 0x23, 0x48, 0xc6, 0xc9, 0xb8, 0x8a, 0xe2, 0x85, 0x46, 0xdc, 0x57,
		0x51, 0x9c, 0xa5, 0x3a, 0x2b, 0x8c, 0xc3, 0x7d, 0x0b, 0x2e, 0x20, 0x2a, 0x70, 0x39, 0xe1, 0x72,
		0x6e, 0xdf, 0xe5, 0xe4, 0x15, 0xbd, 0x99, 0x95, 0xb2, 0x2c, 0xa7, 0x27, 0xde, 0xb2, 0x68, 0xd1,
		0x6a, 0xcd, 0x68, 0xa2, 0x9d, 0x65, 0x4a, 0x22, 0x4b, 0x2d, 0xba, 0xd2, 0x44, 0x58, 0x9a, 0x28,
		0xcb, 0x13, 0x69, 0x31, 0xd1, 0x16, 0x14, 0x71, 0xba, 0xe8, 0xd2, 0x0a, 0xe7, 0xe5, 0xa7, 0x8d,
		0x79, 0x05, 0x0d, 0x2d, 0x13, 0x12, 0xdd, 0x62, 0x1b, 0xf3, 0x0a, 0xda, 0x98, 0xcb, 0x3e, 0xc3,
		0x46, 0x8e, 0xcf, 0x10, 0x0d, 0x2e, 0x29, 0xbf, 0x5f, 0xa4, 0x8d, 0xf9, 0x2c, 0xba, 0x10, 0x36,
		0x32, 0x23, 0x04, 0x80, 0x4b, 0x84, 0x81, 0x02, 0x81, 0x02, 0x81, 0x02, 0x33, 0x8a, 0x02, 0x99,
		0x3d, 0x1a, 0x30, 0x97, 0xc2, 0x5d, 0x5b, 0xc0, 0x81, 0x55, 0x02, 0x5a, 0x2d, 0x7b, 0x34, 0xa0,
		0xe3, 0xe1, 0xb6, 0x73, 0xeb, 0xbb, 0xa6, 0xfd, 0x48, 0x6a, 0xa8, 0xd5, 0x52, 0xb0, 0x87, 0xe7,
		0x57, 0x9f, 0xcf, 0x4e, 0x9a, 0xe7, 0xdd, 0x93, 0xdf, 0x9b, 0x97, 0x97, 0xad, 0x73, 0x95, 0x10,
		0x59, 0x94, 0xc3, 0xbb, 0x9d, 0xeb, 0xf6, 0x02, 0xfd, 0x77, 0x19, 0xc2, 0x3f, 0x6a, 0xdb, 0x39,
		0xe3, 0x88, 0x71, 0xbf, 0x4a, 0x72, 0x79, 0x3f, 0x49, 0x3b, 0x6e, 0xaf, 0xec, 0xe6, 0xb1, 0x52,
		0xce, 0x08, 0x8a, 0x78, 0xc9, 0x21, 0x8a, 0xe8, 0x13, 0xf4, 0x21, 0x5d, 0xe3, 0x9a, 0x52, 0xb4,
		0xea, 0x04, 0x7a, 0x00, 0x7a, 0x00, 0x7a, 0x90, 0x8a, 0x1e, 0xbc, 0xb1, 0x49, 0x25, 0x04, 0x0e,
		0x87, 0x39, 0xd4, 0x81, 0xc9, 0x9a, 0x99, 0xbe, 0xb9, 0xa9, 0x49, 0x9a, 0x9c, 0x42, 0xef, 0x41,
		0xef, 0x41, 0xef, 0xa5, 0xae, 0xf7, 0x46, 0xa6, 0xed, 0x57, 0x74, 0x42, 0xbd, 0xd7, 0x40, 0x88,
		0x3b, 0x21, 0x51, 0xcc, 0x6c, 0x92, 0xe4, 0xd1, 0x29, 0xd2, 0x23, 0xda, 0x55, 0xfd, 0xa8, 0x7a,
		0x54, 0x6f, 0xe8, 0x47, 0x98, 0xd4, 0x44, 0xe7, 0x3c, 0x2a, 0x3b, 0x1b, 0xc8, 0x5e, 0x4a, 0xfd,
		0xa4, 0x03, 0x62, 0xcb, 0x84, 0x01, 0xc9, 0x00, 0xc9, 0x00, 0xc9, 0x32, 0x0a, 0xc9, 0xc4, 0x8b,
		0x66, 0x56, 0x7c, 0x51, 0x0a, 0x50, 0x36, 0x5f, 0x44, 0x33, 0x3d, 0xbc, 0xe3, 0xe5, 0xb2, 0x80,
		0xf9, 0x7f, 0x5b, 0x29, 0x11, 0x98, 0xff, 0xc7, 0xb9, 0x0a, 0xd1, 0xe8, 0x77, 0x02, 0xe5, 0xa1,
		0x54, 0xa7, 0x29, 0x30, 0x0c, 0x6b, 0x23, 0xcd, 0xc1, 0xc8, 0xf3, 0xb3, 0x08, 0x66, 0xa3, 0xa1,
		0x5a, 0xfb, 0x07, 0x4b, 0x17, 0x9d, 0xca, 0xff, 0x28, 0x7f, 0x5d, 0x0a, 0x5d, 0xff, 0x95, 0xf2,
		0x2e, 0xe0, 0x94, 0x30, 0xd4, 0xba, 0x71, 0x59, 0xed, 0x6f, 0x4c, 0x59, 0x5e, 0x57, 0x70, 0x14,
		0xca, 0x3d, 0x53, 0x3c, 0xe6, 0x2b, 0xbe, 0xa3, 0x2c, 0xad, 0x51, 0x79, 0x70, 0xdc, 0x3b, 0xdb,
		0xff, 0x66, 0x7a, 0x4a, 0x20, 0x83, 0xc1, 0x27, 0xee, 0x99, 0xf2, 0x64, 0x58, 0x66, 0x5f, 0x25,
		0x86, 0x5f, 0xc4, 0xe6, 0x60, 0x93, 0x69, 0xa0, 0x0b, 0x3f, 0xa7, 0x6a, 0x2b, 0x36, 0xda, 0x0d,
		0xda, 0x33, 0x25, 0x7d, 0xd7, 0x17, 0x20, 0xe8, 0x0c, 0x20, 0xe8, 0x81, 0x31, 0x1c, 0x52, 0x5c,
		0x8d, 0xce, 0x06, 0xda, 0x4f, 0x08, 0x02, 0x31, 0x03, 0x31, 0x03, 0x31, 0x67, 0x14, 0x31, 0x9b,
		0x7d, 0x66, 0xfb, 0xa6, 0xff, 0x4c, 0x8c, 0x9a, 0x09, 0x82, 0x3a, 0xea, 0xd9, 0xe4, 0xd5, 0x3e,
		0x1a, 0x1e, 0x21, 0x2f, 0x4f, 0x17, 0xfe, 0xe9, 0xa6, 0x79, 0xd1, 0xea, 0x5e, 0x34, 0xaf, 0xaf,
		0xcf, 0x2e, 0x3f, 0x77, 0xaf, 0x6f, 0xae, 0xda, 0x57, 0x27, 0x57, 0x54, 0x69, 0x1b, 0xe3, 0x28,
		0x97, 0x47, 0x06, 0x5d, 0x69, 0xe1, 0xeb, 0xc2, 0x3e, 0x34, 0x2f, 0xae, 0xd5, 0x2c, 0x46, 0x1f,
		0x25, 0x2d, 0xf7, 0xe3, 0x6e, 0x2d, 0xf7, 0xe4, 0xe3, 0xcd, 0x2e, 0x2d, 0xf7, 0xf3, 0xa7, 0xeb,
		0xee, 0xa7, 0x5d, 0x5b, 0x70, 0x7b, 0xa7, 0x16, 0x4c, 0x2a, 0xbf, 0x24, 0x94, 0x3a, 0x3b, 0x99,
		0xf3, 0xe5, 0x0c, 0x7d, 0x39, 0x01, 0xf7, 0x65, 0xc2, 0x70, 0x1f, 0xe0, 0x3e, 0xc0, 0x7d, 0xc8,
		0xa8, 0xfb, 0x90, 0x83, 0x80, 0x7b, 0xda, 0x5d, 0xab, 0xa8, 0x0e, 0x0b, 0xf1, 0xf4, 0x69, 0x3c,
		0x7d, 0x29, 0x59, 0xbb, 0x90, 0xf1, 0xf4, 0xa5, 0x35, 0x22, 0x9e, 0x9e, 0x11, 0x53, 0xb0, 0xd1,
		0x2c, 0xd0, 0x9e, 0x29, 0xe2, 0xe9, 0x12, 0x21, 0xf6, 0x76, 0x00, 0xb2, 0xef, 0x9a, 0xf7, 0x23,
		0xdf, 0x70, 0x9f, 0x35, 0xcf, 0x72, 0x7c, 0x8d, 0x38, 0x3f, 0x78, 0x2d, 0x75, 0x40, 0x65, 0x40,
		0x65, 0x40, 0xe5, 0x8c, 0x42, 0x65, 0xea, 0x6c, 0x61, 0x34, 0xc4, 0x48, 0x4a, 0x74, 0x9a, 0x7a,
		0xaa, 0x97, 0xab, 0x8d, 0xea, 0x61, 0xa5, 0x5e, 0x3d, 0xcc, 0x71, 0xea, 0xe9, 0x6e, 0xf6, 0xc1,
		0x88, 0x8e, 0xae, 0x81, 0xac, 0x61, 0x60, 0x34, 0x81, 0x27, 0x79, 0xbb, 0xad, 0x09, 0xf6, 0x80,
		0x8e, 0xe8, 0x48, 0x68, 0x1f, 0xfc, 0x4a, 0xf7, 0xdb, 0x39, 0xaf, 0xfa, 0x40, 0xa8, 0x53, 0xa2,
		0x42, 0xdf, 0x74, 0x78, 0xf1, 0xf7, 0xcd, 0xd9, 0x4b, 0x77, 0x67, 0x3f, 0x73, 0x0d, 0x15, 0xe4,
		0x67, 0x10, 0x9e, 0x29, 0x0a, 0x62, 0xf8, 0x9e, 0xa4, 0xee, 0x0f, 0x93, 0x13, 0xa4, 0x01, 0x74,
		0xb4, 0xb1, 0x94, 0xad, 0x58, 0x0b, 0x3b, 0x39, 0x61, 0x7f, 0x7f, 0xa2, 0x72, 0x0f, 0x44, 0x66,
		0xf8, 0xa4, 0xa2, 0xc3, 0xf8, 0x06, 0xa6, 0xae, 0x1c, 0x00, 0xef, 0x30, 0x02, 0x85, 0xb2, 0x15,
		0xaf, 0x0e, 0x1d, 0x06, 0x1d, 0x86, 0x56, 0xbc, 0x68, 0xc5, 0x8b, 0xf8, 0x20, 0xe2, 0x83, 0x79,
		0x88, 0x0f, 0xa2, 0x15, 0x6f, 0xf1, 0x23, 0x8f, 0x68, 0xc5, 0x9b, 0xff, 0x10, 0x24, 0x5a, 0xf1,
		0x22, 0x16, 0x29, 0x81, 0x89, 0xd1, 0x8a, 0x17, 0x28, 0x10, 0x28, 0x70, 0xe7, 0x51, 0x20, 0x5a,
		0xf1, 0x0a, 0x51, 0x45, 0x2b, 0x5e, 0xb4, 0xe2, 0x25, 0x43, 0x11, 0x68, 0xc5, 0x8b, 0x56, 0xbc,
		0x40, 0x0f, 0x40, 0x0f, 0xf9, 0x41, 0x0f, 0x68, 0xc5, 0x8b, 0x56, 0xbc, 0xd0, 0x7b, 0xd0, 0x7b,
		0xbb, 0xa6, 0xf7, 0xd0, 0x8a, 0x37, 0xc9, 0x8b, 0xa1, 0x15, 0xef, 0x02, 0x0f, 0xa1, 0x15, 0x2f,
		0x5a, 0xf1, 0xd2, 0x3b, 0x8f, 0x0a, 0x5a, 0xf1, 0xa2, 0x15, 0x2f, 0x20, 0x19, 0x20, 0xd9, 0x8e,
		0x42, 0x32, 0xb4, 0xe2, 0xdd, 0xde, 0x69, 0xa2, 0x75, 0x00, 0x5a, 0xf1, 0xa2, 0x75, 0xc0, 0xb6,
		0x6d, 0xc5, 0x46, 0xbb, 0x81, 0x56, 0xbc, 0x40, 0xd0, 0xaf, 0xeb, 0x5a, 0xb4, 0xe2, 0x05, 0x62,
		0x06, 0x62, 0xde, 0x31, 0xc4, 0x8c, 0x56, 0xbc, 0x68, 0xc5, 0x8b, 0x56, 0xbc, 0x85, 0x5d, 0x2e,
		0x5a, 0xf1, 0x16, 0x7f, 0xc1, 0x68, 0xc5, 0xbb, 0x5d, 0x77, 0x01, 0xad, 0x78, 0xd1, 0x8a, 0x17,
		0xee, 0x03, 0xdc, 0x87, 0x5d, 0x74, 0x1f, 0xd0, 0x8a, 0x57, 0xda, 0x61, 0x21, 0x9e, 0x8e, 0x56,
		0xbc, 0x88, 0xa7, 0x6f, 0xdb, 0x14, 0x6c, 0x34, 0x0b, 0x68, 0xc5, 0x9b, 0x22, 0x15, 0xb4, 0xe2,
		0x5d, 0x56, 0x29, 0x68, 0xc5, 0x0b, 0xa8, 0x0c, 0xa8, 0x9c, 0x27, 0xa8, 0x8c, 0x56, 0xbc, 0x09,
		0x5e, 0x0c, 0xad, 0x78, 0xd7, 0xf3, 0x12, 0x5a, 0xf1, 0xa2, 0x15, 0x2f, 0x30, 0x1a, 0xc1, 0x93,
		0xbb, 0xdb, 0x8a, 0x57, 0xa4, 0x51, 0xa2, 0xb2, 0xa5, 0x4e, 0xbc, 0xb7, 0xe1, 0x3b, 0xa7, 0xd5,
		0xc4, 0xf2, 0x9d, 0x44, 0x46, 0x0a, 0x10, 0x1e, 0x6f, 0x7d, 0x9f, 0x7a, 0x6e, 0x7a, 0x7e, 0xd3,
		0xf7, 0xf9, 0xfa, 0xfd, 0x05, 0x36, 0xb5, 0x65, 0xb1, 0x70, 0x6f, 0xf9, 0xf4, 0x5b, 0xa0, 0xda,
		0xe7, 0x28, 0x94, 0x0f, 0xab, 0xd5, 0x7a, 0xa3, 0x5a, 0x2d, 0x35, 0x2a, 0x8d, 0xd2, 0x51, 0xad,
		0x56, 0xae, 0xf3, 0x5c, 0xfb, 0xab, 0x57, 0x6e, 0x9f, 0xb9, 0xac, 0xff, 0x31, 0xd8, 0x16, 0x7b,
		0x64, 0x59, 0x22, 0x24, 0xbe, 0x78, 0xcc, 0xe5, 0x52, 0xb0, 0x49, 0x4f, 0x51, 0x50, 0x0d, 0x6c,
		0x4f, 0xfc, 0x55, 0xae, 0x0e, 0xad, 0x69, 0x0b, 0x7c, 0x32, 0x51, 0x8f, 0x2f, 0xb0, 0xf1, 0x3e,
		0x19, 0x93, 0x19, 0x78, 0x99, 0x20, 0xe5, 0xc3, 0x4f, 0x70, 0xe2, 0x69, 0x9d, 0x74, 0xbc, 0xe3,
		0x7d, 0xfb, 0xb0, 0x62, 0x1c, 0x94, 0xea, 0xf8, 0xf1, 0x4f, 0x67, 0x16, 0x25, 0xf0, 0xe3, 0x06,
		0x29, 0x13, 0xb6, 0x0e, 0x4e, 0x1c, 0x1c, 0xe1, 0x09, 0x82, 0x08, 0x06, 0x3b, 0x78, 0x83, 0x1a,
		0xc2, 0xc1, 0x0b, 0xe1, 0x20, 0x85, 0x78, 0x30, 0x82, 0x56, 0x41, 0x24, 0x6d, 0xcd, 0xab, 0xf6,
		0xa6, 0xdc, 0x91, 0x70, 0xe7, 0xa7, 0x07, 0xce, 0x35, 0x66, 0x81, 0xb3, 0xfb, 0x35, 0x77, 0x9c,
		0x4f, 0x24, 0xae, 0x47, 0x14, 0xc7, 0x13, 0x8d, 0xdb, 0x91, 0xc5, 0xe9, 0xc8, 0xe2, 0x72, 0x74,
		0x71, 0x38, 0xb9, 0xf0, 0x97, 0xb7, 0x5b, 0xf5, 0x72, 0xc0, 0xfb, 0xd1, 0x35, 0xec, 0x91, 0x65,
		0xb8, 0xa6, 0xff, 0x2c, 0xde, 0x3b, 0xfe, 0x15, 0xda, 0x18, 0x8a, 0x81, 0x86, 0xf2, 0x5b, 0x0f,
		0x89, 0xe7, 0x75, 0x28, 0x06, 0x4d, 0x72, 0x39, 0x45, 0x52, 0x39, 0x6d, 0x32, 0xf9, 0xec, 0x62,
		0xff, 0xe6, 0xec, 0xe3, 0x97, 0x76, 0xf3, 0xe6, 0x8f, 0xee, 0xed, 0xf9, 0x55, 0xbb, 0xfb, 0xf9,
		0xa6, 0x79, 0xf9, 0xe5, 0xbc, 0x79, 0x73, 0xd6, 0xfe, 0x43, 0x94, 0x29, 0x09, 0x13, 0xc8, 0x89,
		0x13, 0xe7, 0x83, 0x35, 0x8f, 0x97, 0x5b, 0xde, 0xd7, 0x6b, 0x9f, 0x09, 0x2e, 0x7a, 0x3e, 0x64,
		0x77, 0x89, 0xfa, 0x7e, 0xd1, 0x57, 0x48, 0xb2, 0xbe, 0x77, 0xdb, 0x09, 0x1c, 0xbf, 0x64, 0x78,
		0xac, 0x8d, 0xef, 0x9b, 0xda, 0xc0, 0x7b, 0xd4, 0x8c, 0x91, 0xef, 0x10, 0x20, 0x94, 0x79, 0x6a,
		0xc0, 0x24, 0xc0, 0x24, 0xc0, 0x24, 0x9c, 0x9c, 0x73, 0xef, 0x38, 0x16, 0x33, 0x6c, 0x0a, 0x3c,
		0x52, 0xce, 0x81, 0xfa, 0x61, 0x3f, 0x86, 0xac, 0xe7, 0xb3, 0x3e, 0x9d, 0x0a, 0x8a, 0x28, 0x42,
		0x0d, 0x41, 0x0d, 0x41, 0x0d, 0x71, 0x72, 0x8e, 0x70, 0xd3, 0x54, 0xc1, 0x66, 0xa9, 0xe9, 0x6a,
		0x21, 0xdf, 0x35, 0x6c, 0x6f, 0x60, 0xfa, 0x74, 0x5a, 0x28, 0xa2, 0x08, 0x2d, 0x04, 0x2d, 0x04,
		0x2d, 0xb4, 0x3b, 0x5a, 0x68, 0xd7, 0xae, 0xf5, 0x1d, 0xdf, 0xe6, 0x9f, 0x9e, 0x4d, 0x7c, 0xa1,
		0x7b, 0xe5, 0xdb, 0x5c, 0x43, 0xb1, 0x13, 0x5c, 0xd0, 0x27, 0xba, 0xac, 0xe6, 0x19, 0x1c, 0x2b,
		0x34, 0x30, 0x56, 0xf8, 0xaa, 0x4c, 0xc7, 0x55, 0x19, 0xae, 0xca, 0x62, 0xbe, 0x26, 0xf7, 0x55,
		0xd9, 0xbd, 0xd1, 0xfb, 0xfe, 0xe8, 0x3a, 0x23, 0xbb, 0xaf, 0xdd, 0x5b, 0x4e, 0xef, 0xbb, 0xc6,
		0x5c, 0xd7, 0x71, 0x3d, 0x71, 0xf0, 0xb5, 0x89, 0x30, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x27,
		0xe7, 0xf4, 0x9c, 0x91, 0xed, 0x33, 0x57, 0x68, 0x04, 0xeb, 0x54, 0x94, 0x04, 0x0a, 0x1a, 0x88,
		0x6a, 0x41, 0x08, 0x0a, 0x66, 0x28, 0x6b, 0x3f, 0xa8, 0x3b, 0xc4, 0x4b, 0xab, 0x13, 0xa0, 0xaf,
		0x0f, 0x20, 0xb8, 0x74, 0x22, 0xad, 0xe5, 0x88, 0x8e, 0x82, 0x26, 0x6f, 0x38, 0xef, 0xa7, 0xb3,
		0xa5, 0x6a, 0x89, 0x4e, 0x86, 0xa3, 0x45, 0x3d, 0xa7, 0xcf, 0xb4, 0x27, 0xd3, 0xb1, 0x42, 0x0f,
		0x8c, 0x00, 0xaf, 0x2c, 0x13, 0x04, 0x4e, 0x01, 0x4e, 0x01, 0x4e, 0x01, 0x4e, 0x01, 0x4e, 0x01,
		0x4e, 0x01, 0x4e, 0x01, 0x4e, 0xe1, 0xc4, 0x29, 0x61, 0xd4, 0x83, 0x4d, 0x62, 0x20, 0x04, 0x30,
		0x65, 0x89, 0x1e, 0x50, 0x0a, 0x50, 0x0a, 0x50, 0x0a, 0x50, 0x0a, 0x50, 0x0a, 0x50, 0x0a, 0x50,
		0x4a, 0x11, 0x51, 0x0a, 0xa7, 0x96, 0x24, 0xec, 0x08, 0xa9, 0xba, 0xec, 0x81, 0xb9, 0xcc, 0xee,
		0x65, 0x42, 0x47, 0x4d, 0x95, 0xf7, 0x59, 0xfb, 0x8b, 0xd6, 0x56, 0x6e, 0x58, 0x6f, 0x5f, 0xf9,
		0xbc, 0x7f, 0xa8, 0xd7, 0x33, 0xde, 0xa1, 0x6b, 0xb6, 0x87, 0x79, 0x6a, 0xd2, 0xb5, 0xb2, 0xc9,
		0xf0, 0x11, 0x24, 0xfa, 0x08, 0x1e, 0xeb, 0x39, 0x76, 0x9f, 0xd0, 0x49, 0x98, 0x12, 0x84, 0x97,
		0x00, 0x2f, 0x01, 0x5e, 0x02, 0xbc, 0x04, 0x78, 0x09, 0xf0, 0x12, 0xe0, 0x25, 0x00, 0xa7, 0xf0,
		0xe2, 0x14, 0xcf, 0x76, 0x09, 0xc0, 0x49, 0x40, 0x45, 0x0c, 0x91, 0x94, 0x81, 0x48, 0x80, 0x48,
		0xf2, 0x86, 0x48, 0x78, 0x53, 0x34, 0x23, 0x02, 0xc6, 0x13, 0xe1, 0xc0, 0xcd, 0x80, 0x18, 0x5a,
		0x80, 0xc7, 0x11, 0x52, 0xff, 0x79, 0xc8, 0x3c, 0xf4, 0xff, 0xa6, 0x0e, 0x2d, 0x44, 0x3b, 0x8b,
		0xe6, 0xdf, 0x4b, 0x3c, 0xd7, 0x67, 0x3d, 0x73, 0x60, 0x58, 0x42, 0x0e, 0xc7, 0x8a, 0xc5, 0xd4,
		0x09, 0x68, 0xad, 0xa0, 0x37, 0x1d, 0x6d, 0xc5, 0x39, 0x31, 0xf6, 0x91, 0xae, 0x57, 0x2a, 0x0d,
		0xbd, 0x54, 0xa9, 0x1f, 0xd6, 0xaa, 0x8d, 0x46, 0xed, 0xb0, 0x24, 0xbd, 0xbf, 0xb8, 0x8e, 0xfe,
		0xe2, 0xb2, 0xcf, 0xb0, 0x91, 0xe3, 0x33, 0x44, 0xa3, 0x71, 0xca, 0xef, 0x17, 0x19, 0x06, 0x63,
		0xda, 0x9e, 0x6f, 0xd8, 0x3e, 0x1d, 0xd6, 0x9b, 0x12, 0x04, 0xde, 0x03, 0xde, 0x03, 0xde, 0x03,
		0xde, 0x03, 0xde, 0x03, 0xde, 0x03, 0xde, 0x03, 0xde, 0x03, 0xde, 0xcb, 0x08, 0xde, 0xf3, 0x99,
		0xfb, 0x64, 0x58, 0x94, 0x80, 0x6f, 0x42, 0x11, 0x88, 0x0f, 0x88, 0x0f, 0x88, 0x2f, 0x73, 0x88,
		0xcf, 0xf3, 0x0d, 0x5f, 0x23, 0x12, 0x52, 0x85, 0x26, 0xbd, 0x20, 0x22, 0xf5, 0xc5, 0x1e, 0x9b,
		0x1e, 0xd5, 0x36, 0x6c, 0x47, 0x2c, 0x81, 0x08, 0xb8, 0x8f, 0x7c, 0x32, 0x5c, 0x8e, 0x47, 0xcf,
		0xe5, 0x05, 0xe6, 0xc9, 0x4b, 0x7f, 0x28, 0xc2, 0x29, 0x02, 0xe7, 0x71, 0x1f, 0xca, 0xc0, 0x20,
		0x9c, 0xe9, 0x1c, 0x10, 0x03, 0xba, 0x03, 0xba, 0x03, 0xba, 0x43, 0x3c, 0x0f, 0xf1, 0x3c, 0xc4,
		0xf3, 0x10, 0xcf, 0x43, 0x3c, 0x0f, 0x38, 0x2f, 0x2b, 0x38, 0x4f, 0xf3, 0xcd, 0x01, 0x23, 0x05,
		0x7b, 0x63, 0x8a, 0x40, 0x7c, 0x40, 0x7c, 0x40, 0x7c, 0x99, 0x43, 0x7c, 0x81, 0x6c, 0xfa, 0x66,
		0xef, 0xbb, 0x47, 0x8a, 0xf9, 0x10, 0xcd, 0x43, 0x34, 0x0f, 0xd1, 0x3c, 0x44, 0xf3, 0x80, 0xf2,
		0x32, 0x89, 0xf2, 0x08, 0x14, 0xcd, 0x0c, 0xe0, 0x99, 0x36, 0xb0, 0x1d, 0xb0, 0x1d, 0xb0, 0x1d,
		0xa2, 0x79, 0x88, 0xe6, 0x21, 0x9a, 0x87, 0x68, 0x1e, 0xa2, 0x79, 0xc0, 0x79, 0x99, 0xc1, 0x79,
		0xd4, 0xd1, 0xbc, 0x29, 0x45, 0x20, 0x3e, 0x20, 0x3e, 0x20, 0x3e, 0x44, 0xf3, 0x10, 0xcd, 0x43,
		0x34, 0x0f, 0xd1, 0x3c, 0x44, 0xf3, 0x80, 0xf2, 0xc4, 0x50, 0x5e, 0xaa, 0xed, 0x5c, 0x04, 0xc7,
		0x7f, 0x46, 0x74, 0x24, 0x8d, 0x01, 0x0d, 0x27, 0x56, 0x1e, 0x08, 0xf4, 0x5a, 0x52, 0xe4, 0x8c,
		0x04, 0xbd, 0x0d, 0xde, 0xab, 0xdb, 0x0a, 0xde, 0x2b, 0xc3, 0x9d, 0xae, 0x1e, 0x58, 0x4f, 0xeb,
		0x39, 0xae, 0x1b, 0x0e, 0xaf, 0xd7, 0xee, 0xc7, 0x8a, 0x40, 0xb0, 0xef, 0xd5, 0x1a, 0x9a, 0xe8,
		0xcb, 0x89, 0x2e, 0x58, 0x82, 0x18, 0x1e, 0x7d, 0x39, 0xd1, 0x97, 0x53, 0x02, 0x58, 0x46, 0x5f,
		0xce, 0xcc, 0x80, 0x60, 0xf4, 0xe5, 0x24, 0x0c, 0x36, 0x14, 0xb2, 0x2f, 0xe7, 0x12, 0xb2, 0x78,
		0xf6, 0x19, 0x3d, 0x5c, 0x09, 0x89, 0x02, 0xaf, 0x00, 0xaf, 0x00, 0xaf, 0x00, 0xaf, 0x00, 0xaf,
		0x00, 0xaf, 0x00, 0xaf, 0x00, 0xaf, 0x08, 0xe0, 0x95, 0x91, 0x3d, 0x01, 0x17, 0xc6, 0xbd, 0xc5,
		0xc8, 0xa6, 0x23, 0x6e, 0xa4, 0x0c, 0xe4, 0x02, 0xe4, 0x02, 0xe4, 0x02, 0xe4, 0x02, 0xe4, 0x02,
		0xe4, 0x02, 0xe4, 0x02, 0xe4, 0x42, 0x86, 0x5c, 0x02, 0x1b, 0x26, 0x05, 0xb8, 0x8c, 0x09, 0x03,
		0xb7, 0x00, 0xb7, 0x00, 0xb7, 0x00, 0xb7, 0x00, 0xb7, 0x00, 0xb7, 0x00, 0xb7, 0x00, 0xb7, 0x70,
		0xe2, 0x96, 0xa1, 0xe3, 0xf9, 0x5a, 0x80, 0x31, 0xee, 0x19, 0xc1, 0x04, 0xb7, 0x05, 0x6a, 0x98,
		0xe4, 0x06, 0x84, 0xb2, 0x63, 0x08, 0x05, 0x93, 0xdc, 0xe4, 0x08, 0x25, 0xa5, 0x70, 0x6e, 0x14,
		0x52, 0x54, 0x93, 0x48, 0xaa, 0x26, 0x99, 0xed, 0x2e, 0x2a, 0x4a, 0x96, 0x78, 0x2f, 0x3f, 0x35,
		0xc4, 0xe5, 0x43, 0x94, 0x93, 0x70, 0x82, 0xef, 0x2d, 0x14, 0x11, 0x97, 0x0f, 0x51, 0x45, 0x2c,
		0xfb, 0x10, 0x1b, 0x79, 0x3e, 0x44, 0x14, 0x98, 0x50, 0x7e, 0x3f, 0x86, 0xba, 0x01, 0xfa, 0x01,
		0xfa, 0x01, 0xfa, 0x01, 0xfa, 0x01, 0xfa, 0x01, 0xfa, 0x01, 0xfa, 0x01, 0xfa, 0x01, 0xfa, 0xc5,
		0x82, 0x7e, 0x98, 0xef, 0xb6, 0x55, 0xf0, 0x07, 0xe0, 0x87, 0x0e, 0x32, 0xa9, 0x82, 0x3e, 0xcc,
		0x77, 0xdb, 0x15, 0xe4, 0x87, 0x1e, 0x32, 0xb9, 0xc3, 0x79, 0xe8, 0x21, 0x03, 0x9c, 0x27, 0x05,
		0xe7, 0x61, 0xbe, 0x1b, 0x42, 0x7b, 0x08, 0xed, 0x21, 0xb4, 0x87, 0xd0, 0x1e, 0x42, 0x7b, 0x08,
		0xed, 0x21, 0xb4, 0x07, 0xc8, 0xb7, 0x0b, 0x90, 0x0f, 0xa3, 0xde, 0x10, 0xda, 0x43, 0x68, 0x6f,
		0x67, 0x40, 0x1f, 0x9a, 0x43, 0x23, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b, 0x08, 0xec, 0xed, 0x10,
		0xca, 0xc3, 0xa8, 0x37, 0x04, 0xf6, 0x10, 0xd8, 0x43, 0x60, 0x0f, 0x81, 0x3d, 0x04, 0xf6, 0x10,
		0xd8, 0x43, 0x60, 0x0f, 0x90, 0x6f, 0x07, 0x20, 0x1f, 0xa6, 0xbe, 0x21, 0xb0, 0x87, 0xc0, 0x1e,
		0x02, 0x7b, 0x08, 0xec, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b, 0x40, 0x79, 0xd9, 0x44, 0x79,
		0x98, 0xfa, 0xb6, 0x3c, 0xf5, 0x8d, 0xa0, 0x3f, 0x93, 0x22, 0x73, 0xfa, 0xdb, 0xb5, 0xe3, 0xf9,
		0x9f, 0x58, 0xef, 0x23, 0xcb, 0xf4, 0x0c, 0xb8, 0xa1, 0xcb, 0x08, 0x5b, 0x66, 0xcd, 0x11, 0x43,
		0xc7, 0x2c, 0x74, 0xcc, 0x12, 0xc4, 0xf0, 0xe8, 0x98, 0x25, 0xc2, 0x7d, 0xe8, 0x98, 0x95, 0x48,
		0x48, 0xe1, 0x89, 0xe3, 0x0a, 0x26, 0x6d, 0x6f, 0x1c, 0x57, 0x30, 0x3b, 0xe0, 0x8a, 0xe3, 0x0a,
		0xa6, 0x00, 0xce, 0x39, 0xae, 0x60, 0xe0, 0x9c, 0xcb, 0xe0, 0x62, 0x74, 0xcc, 0x02, 0xf4, 0x03,
		0xf4, 0x03, 0xf4, 0x03, 0xf4, 0x03, 0xf4, 0x03, 0xf4, 0x03, 0xf4, 0x03, 0xf4, 0xdb, 0x25, 0xe8,
		0x87, 0x8e, 0x59, 0x5b, 0x05, 0x7f, 0x00, 0x7e, 0xc8, 0xbe, 0x49, 0x15, 0xf4, 0xa1, 0x63, 0xd6,
		0xae, 0x20, 0x3f, 0xe4, 0xdf, 0xe4, 0x0e, 0xe7, 0x21, 0xff, 0x06, 0x38, 0x4f, 0x0a, 0xce, 0x43,
		0xc7, 0x2c, 0x84, 0xf6, 0x10, 0xda, 0x43, 0x68, 0x0f, 0xa1, 0x3d, 0x84, 0xf6, 0x10, 0xda, 0x43,
		0x68, 0x0f, 0x90, 0x6f, 0x17, 0x20, 0x1f, 0x3a, 0x66, 0x21, 0xb4, 0x87, 0xd0, 0xde, 0xce, 0x80,
		0x3e, 0x14, 0xd6, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b, 0x08, 0xec, 0xed, 0x10, 0xca, 0x43,
		0xc7, 0x2c, 0x04, 0xf6, 0x10, 0xd8, 0x43, 0x60, 0x0f, 0x81, 0x3d, 0x04, 0xf6, 0x10, 0xd8, 0x43,
		0x60, 0x0f, 0x90, 0x6f, 0x07, 0x20, 0x1f, 0x3a, 0x66, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b,
		0x08, 0xec, 0x21, 0xb0, 0x87, 0xc0, 0x1e, 0x02, 0x7b, 0x40, 0x79, 0xd9, 0x44, 0x79, 0xe8, 0x98,
		0xb5, 0xd2, 0x31, 0x4b, 0xb8, 0x3d, 0x93, 0x22, 0xb5, 0x61, 0x96, 0xcb, 0xb2, 0xdf, 0x2f, 0xeb,
		0xff, 0xb4, 0xa7, 0x89, 0xf6, 0x11, 0xec, 0x95, 0x35, 0x25, 0x84, 0x3e, 0x59, 0xe8, 0x93, 0x25,
		0x88, 0xdc, 0xd1, 0x27, 0x4b, 0x84, 0xfb, 0xd0, 0x27, 0x0b, 0xbe, 0x37, 0x7c, 0x6f, 0x5c, 0xb8,
		0x08, 0xb9, 0x05, 0x3a, 0xfc, 0x6e, 0x4e, 0x27, 0x6e, 0x0b, 0xf7, 0x2d, 0x3a, 0xae, 0x5b, 0x64,
		0x9f, 0x61, 0x23, 0xc7, 0x67, 0x08, 0x3f, 0x9c, 0xd4, 0x0f, 0x47, 0x73, 0x2c, 0xe0, 0x3d, 0xe0,
		0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0x3d, 0xe0, 0xbd, 0x8d,
		0x78, 0x0f, 0x1d, 0xb1, 0x80, 0xf8, 0x80, 0xf8, 0x76, 0x07, 0xf1, 0xa1, 0x23, 0xd6, 0xae, 0xe0,
		0x3e, 0xe4, 0xd7, 0xe4, 0x0e, 0xe6, 0x21, 0xbf, 0x06, 0x38, 0x4f, 0x0a, 0xce, 0x43, 0x47, 0x2c,
		0xa0, 0x3b, 0xa0, 0x3b, 0xc4, 0xf3, 0x10, 0xcf, 0x43, 0x3c, 0x0f, 0xf1, 0x3c, 0xc4, 0xf3, 0x80,
		0xf3, 0x0a, 0x8b, 0xf3, 0xd0, 0x06, 0x0b, 0x88, 0x0f, 0x88, 0x6f, 0x67, 0x10, 0x1f, 0xaa, 0xe5,
		0x10, 0xcd, 0x43, 0x34, 0x0f, 0xd1, 0x3c, 0x44, 0xf3, 0x76, 0x08, 0xe5, 0xa1, 0x0d, 0x16, 0xb0,
		0x1d, 0xb0, 0x1d, 0xa2, 0x79, 0x88, 0xe6, 0x21, 0x9a, 0x87, 0x68, 0x1e, 0xa2, 0x79, 0xc0, 0x79,
		0x45, 0xc5, 0x79, 0xe8, 0x7d, 0x05, 0xc4, 0x07, 0xc4, 0x87, 0x68, 0x1e, 0xa2, 0x79, 0x88, 0xe6,
		0x21, 0x9a, 0x87, 0x68, 0x1e, 0x50, 0x5e, 0x36, 0x51, 0x1e, 0x7a, 0x5f, 0x2d, 0xf7, 0xbe, 0x12,
		0x6b, 0xb7, 0xa4, 0xc8, 0xec, 0x7b, 0xf5, 0xff, 0xc6, 0x32, 0x9d, 0xe1, 0xa6, 0x57, 0x6e, 0xdf,
		0xd4, 0x06, 0xde, 0xa3, 0x78, 0xd3, 0xab, 0x29, 0x21, 0xb1, 0xa6, 0x57, 0x25, 0x34, 0xbd, 0xa2,
		0x86, 0xf2, 0x68, 0x7a, 0x25, 0x5b, 0x4b, 0x0a, 0xa3, 0xf3, 0xb9, 0x9a, 0x19, 0xd7, 0xb4, 0x45,
		0x7a, 0x56, 0x45, 0xc1, 0xd7, 0xc3, 0x0c, 0xeb, 0x1c, 0x8f, 0x3d, 0x31, 0x97, 0x59, 0xcf, 0x1a,
		0x73, 0x5d, 0xc7, 0x65, 0x7d, 0x6d, 0x8a, 0xf2, 0x85, 0x95, 0xd0, 0x46, 0xca, 0xd0, 0x4a, 0xd0,
		0x4a, 0xd0, 0x4a, 0x9c, 0x9c, 0xd3, 0x73, 0x46, 0xb6, 0xcf, 0x5c, 0xa1, 0x48, 0x01, 0x41, 0x84,
		0x80, 0xc8, 0x83, 0x27, 0x08, 0xa2, 0x50, 0x7a, 0xec, 0xd4, 0x9e, 0xba, 0x34, 0xdf, 0x8e, 0xde,
		0xa7, 0x23, 0xf0, 0xc8, 0x49, 0x3d, 0xf1, 0x14, 0x3c, 0xf0, 0x3c, 0x9d, 0xce, 0x96, 0x3c, 0xdc,
		0x4e, 0x86, 0x91, 0x8b, 0xef, 0x9a, 0xf7, 0x23, 0xdf, 0x70, 0x9f, 0x35, 0xcf, 0x72, 0x7c, 0xed,
		0xd1, 0x35, 0xec, 0x91, 0x65, 0xb8, 0xa6, 0xff, 0x2c, 0x8e, 0x5d, 0x5e, 0xa1, 0x0d, 0xf4, 0x02,
		0xf4, 0x02, 0xf4, 0xc2, 0xc9, 0x39, 0x66, 0x9f, 0xd9, 0xbe, 0xe9, 0x3f, 0xbb, 0xec, 0x81, 0xc2,
		0xb1, 0x12, 0x30, 0x04, 0xea, 0xd9, 0xe4, 0x55, 0x3e, 0x1a, 0x1e, 0xe1, 0x55, 0x6b, 0xfb, 0xe6,
		0xec, 0xe3, 0x97, 0x76, 0xf3, 0xe6, 0x8f, 0xee, 0xed, 0xf9, 0x55, 0xbb, 0xfb, 0xf9, 0xa6, 0x79,
		0xf9, 0xe5, 0xbc, 0x79, 0x73, 0xd6, 0xfe, 0x43, 0x94, 0x29, 0x43, 0x7b, 0xe8, 0x91, 0xdc, 0x99,
		0x10, 0x59, 0xe8, 0xf9, 0x35, 0x8f, 0x97, 0x5b, 0xde, 0xd7, 0x6b, 0x9f, 0xd5, 0x2c, 0x60, 0x11,
		0x69, 0x4b, 0xd4, 0xf7, 0x8b, 0xbe, 0x42, 0x92, 0xf5, 0x09, 0x51, 0xe8, 0xa4, 0xad, 0x17, 0xd3,
		0xc1, 0x2b, 0x7e, 0x18, 0x94, 0xd5, 0x8c, 0x91, 0xef, 0x10, 0x20, 0x94, 0x79, 0x6a, 0xc0, 0x24,
		0xc0, 0x24, 0xc0, 0x24, 0x9c, 0x9c, 0x73, 0xef, 0x38, 0x16, 0x33, 0x6c, 0x0a, 0x3c, 0x52, 0xce,
		0x81, 0xfa, 0x61, 0x3f, 0x86, 0xac, 0xe7, 0xb3, 0x3e, 0x9d, 0x0a, 0x8a, 0x28, 0x42, 0x0d, 0x41,
		0x0d, 0x41, 0x0d, 0x71, 0x72, 0xce, 0x6e, 0x5c, 0x37, 0x4d, 0x75, 0x86, 0xcb, 0x7a, 0x4f, 0x74,
		0x1a, 0x28, 0xa4, 0x06, 0xed, 0x03, 0xed, 0x03, 0xed, 0x03, 0xed, 0x13, 0x43, 0xfb, 0xf8, 0xae,
		0x61, 0x7b, 0x03, 0xd3, 0xa7, 0xd3, 0x40, 0x11, 0x45, 0x68, 0x21, 0x68, 0x21, 0x68, 0x21, 0x68,
		0xa1, 0x57, 0xde, 0x71, 0x64, 0x1b, 0x4f, 0x86, 0x69, 0x19, 0xf7, 0x16, 0xa3, 0xcb, 0xb6, 0x59,
		0x47, 0x14, 0xba, 0x08, 0xba, 0x08, 0xba, 0x88, 0x93, 0x73, 0x90, 0x68, 0xb3, 0xf4, 0x22, 0x48,
		0xb4, 0x41, 0xa2, 0x4d, 0xf1, 0x4f, 0xa7, 0xe8, 0x89, 0x36, 0xef, 0x24, 0xf2, 0xaa, 0x68, 0x89,
		0x8a, 0xd4, 0xd2, 0x14, 0x95, 0x27, 0x39, 0x5a, 0x4e, 0x29, 0x4a, 0x32, 0x63, 0x1a, 0xff, 0xc8,
		0xe2, 0x7d, 0x32, 0xe6, 0xa1, 0xaa, 0xec, 0x87, 0xef, 0x1a, 0xda, 0xc8, 0xf6, 0xfc, 0x00, 0x54,
		0x26, 0x3a, 0x50, 0xf5, 0x3f, 0xdf, 0x98, 0x9d, 0xd8, 0x66, 0x71, 0x30, 0xcc, 0xd4, 0x58, 0xef,
		0x1f, 0x8c, 0x0f, 0x66, 0x99, 0x0f, 0xc2, 0x8a, 0x63, 0xe5, 0x7f, 0x94, 0xbf, 0x5e, 0xdf, 0x5c,
		0xb5, 0xbb, 0x57, 0xed, 0xcb, 0xbf, 0xf2, 0xb0, 0x81, 0x20, 0xfa, 0x9b, 0x47, 0x7d, 0xe1, 0xc6,
		0x70, 0x62, 0x1b, 0x2a, 0xac, 0xb7, 0x80, 0xf1, 0x12, 0xec, 0x5c, 0x2a, 0xce, 0xd1, 0x29, 0xf3,
		0x7a, 0xae, 0x39, 0x14, 0x2a, 0x73, 0x8b, 0xd8, 0xe2, 0xcc, 0xee, 0x59, 0xa3, 0x3e, 0x53, 0xfc,
		0x6f, 0x4c, 0xb9, 0x6a, 0x5f, 0x2a, 0x43, 0xd7, 0xf1, 0x9d, 0x9e, 0x63, 0x29, 0x7d, 0xc3, 0x37,
		0x14, 0xc7, 0xb6, 0x9e, 0x95, 0xe0, 0x40, 0x82, 0x7f, 0xbf, 0xb3, 0x27, 0x0b, 0x57, 0x4c, 0x4f,
		0x19, 0x79, 0xa6, 0xfd, 0x18, 0x3e, 0xf1, 0xe0, 0x1a, 0x03, 0xd3, 0x7e, 0xdc, 0xe7, 0x3d, 0x33,
		0x02, 0xc7, 0x61, 0x9e, 0x7d, 0xfa, 0x73, 0xbb, 0x23, 0x80, 0x29, 0x29, 0xbd, 0x86, 0x05, 0x6e,
		0x22, 0xdc, 0xf0, 0x6c, 0x1a, 0xc4, 0x77, 0xb4, 0x06, 0x3d, 0xae, 0x2e, 0xe6, 0x34, 0xac, 0x92,
		0x0c, 0x6a, 0x02, 0xd6, 0xa3, 0x37, 0xa1, 0xf1, 0x18, 0xe3, 0xed, 0x83, 0x8a, 0xb1, 0xf5, 0xea,
		0x18, 0x38, 0xc4, 0xdd, 0xf1, 0x85, 0x69, 0x4b, 0x71, 0xf1, 0x46, 0x14, 0xb1, 0x8a, 0xf9, 0xf1,
		0x28, 0xba, 0x12, 0xb3, 0x17, 0x10, 0x4f, 0x34, 0x45, 0x30, 0x7a, 0xc2, 0xab, 0xf4, 0x84, 0xa3,
		0x23, 0xc2, 0x7a, 0x4d, 0x3c, 0xfa, 0x41, 0x0b, 0xc1, 0x4e, 0x4d, 0x37, 0xd9, 0xc1, 0x19, 0xfd,
		0x81, 0x69, 0x6b, 0xc9, 0xd8, 0x76, 0xe5, 0xd4, 0xe7, 0x89, 0x24, 0xdc, 0x3f, 0xbe, 0xd0, 0x21,
		0x77, 0xc8, 0x50, 0x24, 0x54, 0x48, 0x14, 0x22, 0xa4, 0x04, 0x87, 0x42, 0x21, 0x41, 0x39, 0xf0,
		0x50, 0x28, 0x04, 0x28, 0xd7, 0xd9, 0xe4, 0x0e, 0xf5, 0xad, 0x63, 0xf4, 0x10, 0xee, 0xf2, 0x1c,
		0xff, 0x54, 0x7d, 0x57, 0x39, 0x9e, 0x6d, 0xd9, 0xa3, 0x01, 0x3f, 0xe3, 0xb4, 0x9d, 0xdb, 0xf1,
		0x75, 0x89, 0x10, 0xb8, 0x2c, 0x05, 0x1b, 0xd1, 0xba, 0x6c, 0x7e, 0x3c, 0x6f, 0x9d, 0x8a, 0x40,
		0xca, 0x72, 0x40, 0xe7, 0xf4, 0xec, 0x56, 0x98, 0x90, 0x1e, 0x10, 0xba, 0x68, 0x9e, 0x5d, 0xb6,
		0xd5, 0x74, 0x23, 0xc7, 0xce, 0x99, 0xe0, 0x08, 0xfc, 0xd9, 0xf2, 0x63, 0x9b, 0xf3, 0xf5, 0x6c,
		0x71, 0x39, 0xa5, 0x22, 0x10, 0x26, 0x9b, 0x6c, 0xe1, 0xb1, 0xa2, 0xe7, 0x1c, 0x48, 0x27, 0x38,
		0x4f, 0xb5, 0x67, 0x99, 0xcc, 0xf6, 0xb5, 0x81, 0x31, 0x1c, 0x9a, 0xf6, 0xa3, 0x36, 0x70, 0xfa,
		0x02, 0x66, 0x70, 0x1d, 0x31, 0x98, 0x43, 0x98, 0xc3, 0xc2, 0x9a, 0x43, 0xb1, 0xe2, 0x2c, 0x91,
		0xa2, 0x2c, 0x9a, 0x62, 0xac, 0x68, 0x21, 0x27, 0xe7, 0x67, 0xad, 0xcb, 0x76, 0xf7, 0xa2, 0x79,
		0x7d, 0x7d, 0x76, 0xf9, 0xb9, 0x7b, 0x71, 0x75, 0xda, 0xe2, 0xe5, 0x22, 0x82, 0xaa, 0x2b, 0xa2,
		0xca, 0xb2, 0x60, 0x15, 0xdd, 0xf2, 0x3f, 0xcb, 0xa5, 0x92, 0x40, 0x7d, 0x8e, 0xc0, 0xe5, 0x13,
		0xed, 0x32, 0xf4, 0x62, 0x2c, 0xa3, 0x5a, 0x84, 0x65, 0xe8, 0xc5, 0x60, 0x2a, 0xbd, 0x18, 0x4c,
		0x55, 0x29, 0xc6, 0x69, 0x54, 0x45, 0x97, 0xc1, 0xf5, 0x64, 0x27, 0x97, 0xb0, 0xb5, 0x2f, 0x70,
		0xe7, 0x31, 0x37, 0x36, 0x80, 0xf7, 0x6a, 0x00, 0x30, 0x15, 0x30, 0x35, 0x47, 0x30, 0x95, 0x3b,
		0x49, 0x94, 0x33, 0x39, 0x54, 0x8e, 0xcc, 0x9b, 0x76, 0x9f, 0xfd, 0xe0, 0x97, 0xf6, 0xf1, 0xe3,
		0x90, 0x73, 0xc8, 0x79, 0x61, 0xe5, 0x7c, 0x64, 0xda, 0x7e, 0x45, 0x17, 0x90, 0x73, 0x8e, 0x71,
		0x1c, 0x82, 0xd9, 0x96, 0x02, 0xb1, 0x43, 0x8a, 0xec, 0x4a, 0xaa, 0xac, 0x4a, 0xf2, 0x7c, 0x3d,
		0xba, 0x3c, 0x3d, 0x91, 0xc1, 0x1a, 0x14, 0x59, 0x93, 0xd1, 0x16, 0x57, 0xf5, 0xa3, 0xea, 0x51,
		0xbd, 0xa1, 0x1f, 0xd5, 0x8a, 0xbb, 0xd7, 0x29, 0x45, 0x8e, 0x3b, 0x19, 0x30, 0xc7, 0x96, 0x69,
		0x7f, 0x17, 0xbd, 0x37, 0x9d, 0xa3, 0x01, 0xc3, 0x0c, 0xc3, 0x5c, 0x58, 0xc3, 0xcc, 0xec, 0xd1,
		0x80, 0xb9, 0x06, 0x67, 0x12, 0x5a, 0x31, 0x6e, 0x4c, 0xbf, 0x5c, 0x8b, 0x5f, 0x96, 0x5e, 0xfd,
		0xe3, 0x52, 0xf8, 0xa2, 0xb4, 0xdd, 0xba, 0x6d, 0x9f, 0x5d, 0x7e, 0xce, 0xdf, 0x55, 0x69, 0xb0,
		0x78, 0xb1, 0x6b, 0xd2, 0xe9, 0xd2, 0x85, 0xc6, 0xa2, 0x05, 0x07, 0x79, 0xac, 0x94, 0x76, 0xe8,
		0x8e, 0x74, 0x5d, 0x9e, 0xaf, 0x80, 0xcd, 0x5b, 0x47, 0x0d, 0xd6, 0x0f, 0xd6, 0x0f, 0xb7, 0xa4,
		0xaf, 0x5b, 0xbf, 0xed, 0xdf, 0x92, 0x9e, 0x5f, 0x7d, 0x3e, 0x3b, 0x69, 0x9e, 0x77, 0x5b, 0xe7,
		0xad, 0x8b, 0xd6, 0x65, 0xbb, 0x7b, 0x7d, 0x73, 0xd5, 0xbe, 0x3a, 0xb9, 0x3a, 0xef, 0xb6, 0xff,
		0xb8, 0x2e, 0xc0, 0x7d, 0x69, 0x58, 0xb7, 0xd0, 0x6a, 0xff, 0xde, 0xba, 0xb9, 0x6c, 0xb5, 0xf3,
		0x7c, 0x9d, 0x32, 0x2d, 0xc0, 0xc0, 0x5d, 0x4a, 0x3c, 0xf3, 0xe6, 0x0c, 0xef, 0x8d, 0xde, 0x77,
		0xc1, 0xe4, 0x9f, 0x45, 0x32, 0x30, 0x68, 0x30, 0x68, 0x85, 0x35, 0x68, 0x0b, 0xac, 0xbe, 0xdb,
		0x79, 0xb0, 0x97, 0x57, 0x97, 0x2d, 0x61, 0xbf, 0xee, 0x53, 0xf3, 0xe4, 0xec, 0x5c, 0xac, 0xe1,
		0xf3, 0xd4, 0xb7, 0xbb, 0xb9, 0x38, 0xbb, 0x6c, 0x9e, 0x8b, 0x10, 0xaa, 0x04, 0x84, 0x9a, 0xb7,
		0x67, 0x27, 0xdd, 0xeb, 0xdf, 0xff, 0xe8, 0x9e, 0x5f, 0x9d, 0x88, 0x91, 0xab, 0x2e, 0x90, 0xbb,
		0x69, 0x5d, 0x5c, 0xb5, 0x85, 0x36, 0xac, 0x16, 0xd1, 0xbb, 0x68, 0x9e, 0x88, 0xbf, 0x5e, 0x7d,
		0x81, 0xdc, 0xe4, 0xf5, 0xf2, 0xe6, 0x1a, 0x2f, 0x6d, 0xc7, 0xb1, 0x22, 0xd2, 0xe5, 0x7c, 0x79,
		0x33, 0x8e, 0x95, 0xba, 0x28, 0xb5, 0x19, 0x23, 0x1d, 0x2b, 0x15, 0x0a, 0x62, 0xd1, 0xab, 0x55,
		0x05, 0xa8, 0x45, 0x52, 0x27, 0x16, 0x54, 0x08, 0x35, 0x80, 0x58, 0xe2, 0x75, 0x24, 0xb6, 0x29,
		0xe6, 0x5e, 0x73, 0x15, 0xda, 0x3e, 0x18, 0x23, 0xcb, 0x17, 0x50, 0x7b, 0x81, 0xad, 0x9d, 0x51,
		0x09, 0x4c, 0x6d, 0x06, 0xf0, 0x9f, 0x6b, 0xf8, 0x4c, 0xeb, 0x59, 0x86, 0xe7, 0xf1, 0x83, 0xbf,
		0x39, 0x1a, 0x40, 0x7e, 0x40, 0x7e, 0x08, 0x65, 0x64, 0x3d, 0x94, 0x31, 0x9b, 0xba, 0x71, 0xd3,
		0x6c, 0xb7, 0xba, 0x27, 0xe7, 0xcd, 0xdb, 0xdb, 0x82, 0x84, 0x31, 0xc2, 0xb9, 0x0c, 0xe1, 0xaa,
		0xca, 0xa5, 0x9c, 0xe7, 0x85, 0x2e, 0x2c, 0xa5, 0x30, 0x2b, 0xa9, 0x15, 0x67, 0x29, 0x45, 0x59,
		0x48, 0x81, 0xd8, 0xab, 0x5c, 0x1c, 0xf6, 0xd2, 0x8b, 0x73, 0x2a, 0x7a, 0x71, 0x4e, 0xa5, 0x52,
		0x9c, 0x53, 0xa9, 0x14, 0xe7, 0x54, 0xaa, 0xc5, 0x39, 0x95, 0x6a, 0x71, 0x4e, 0xa5, 0x56, 0x2a,
		0xd0, 0x52, 0x0a, 0xb3, 0x92, 0xe2, 0x2c, 0xa5, 0x5e, 0x1c, 0xfe, 0xaa, 0x17, 0xe7, 0x54, 0x1a,
		0xc5, 0x39, 0x95, 0x46, 0x71, 0x4e, 0xe5, 0xb0, 0x38, 0xa7, 0x72, 0x58, 0x9c, 0x53, 0x39, 0x2a,
		0xce, 0xa9, 0x1c, 0x15, 0xe7, 0x54, 0x0a, 0xb2, 0x0e, 0xb1, 0xd1, 0xab, 0x99, 0x5a, 0x49, 0x71,
		0x42, 0x79, 0x7a, 0x81, 0x56, 0x52, 0x18, 0x89, 0xd7, 0x8b, 0x13, 0x01, 0xd3, 0x8b, 0xe3, 0xaa,
		0xe8, 0x05, 0x92, 0x95, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0xf4,
		0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0xf4, 0xe2, 0x44, 0xc0, 0x0a, 0xa4, 0xc0, 0x8a, 0x13,
		0x01, 0xd3, 0x8b, 0x13, 0x01, 0xd3, 0x8b, 0x13, 0x01, 0xd3, 0x8b, 0x13, 0x01, 0xd3, 0x8b, 0x13,
		0x01, 0xd3, 0x8b, 0x13, 0x01, 0xd3, 0x8b, 0x13, 0x01, 0xd3, 0x8b, 0x13, 0x01, 0xd3, 0x8b, 0x13,
		0x01, 0xab, 0x14, 0x27, 0xde, 0x52, 0x29, 0xd0, 0x4a, 0x8a, 0xc3, 0x5f, 0xc5, 0x89, 0xb7, 0x54,
		0x8a, 0x13, 0x6f, 0xa9, 0x14, 0x27, 0xde, 0x52, 0x1c, 0xc7, 0xbe, 0x38, 0x7e, 0x7d, 0xb5, 0x30,
		0x0b, 0x29, 0x0c, 0x73, 0x15, 0x27, 0x3c, 0x51, 0x1c, 0x9f, 0xbe, 0x38, 0x2e, 0x7d, 0x71, 0x3c,
		0xfa, 0xe2, 0x38, 0xf4, 0xc5, 0xf1, 0xe7, 0x8b, 0xe3, 0xce, 0x17, 0xc7, 0x9b, 0x2f, 0x8e, 0x33,
		0x2f, 0xe8, 0xcb, 0xef, 0x50, 0x03, 0x11, 0x9f, 0x79, 0xbe, 0xe6, 0x99, 0x8f, 0xb6, 0x61, 0xf1,
		0x57, 0x90, 0xce, 0x13, 0x41, 0x09, 0xe9, 0x5b, 0x64, 0x50, 0x42, 0x4a, 0x25, 0x11, 0xa9, 0x97,
		0x90, 0xde, 0x3b, 0x8e, 0xc5, 0x0c, 0xa1, 0x3e, 0x90, 0xe5, 0x2c, 0x08, 0xbd, 0x6b, 0xde, 0x6b,
		0xd3, 0x61, 0xc5, 0x02, 0x62, 0xbf, 0x40, 0x06, 0x82, 0x0f, 0xc1, 0x47, 0xed, 0xf8, 0xeb, 0xc2,
		0x9f, 0xa5, 0xda, 0xf1, 0x22, 0x36, 0xc0, 0x2b, 0x97, 0x4a, 0x9f, 0x5b, 0xb9, 0xef, 0x7e, 0x17,
		0xac, 0xa2, 0x7b, 0x71, 0xfe, 0xb9, 0x00, 0x0b, 0xf9, 0xdc, 0xea, 0x9e, 0x37, 0x2f, 0x8b, 0xb1,
		0x90, 0x7f, 0x14, 0x61, 0x21, 0x05, 0x10, 0x8f, 0x6a, 0x21, 0x84, 0xbc, 0x5a, 0x84, 0x45, 0x1c,
		0x16, 0xe2, 0x28, 0x3e, 0x9d, 0xb7, 0xfe, 0x79, 0x95, 0xff, 0x9e, 0xa9, 0x27, 0xe5, 0x23, 0xbd,
		0x00, 0xab, 0xa8, 0x1e, 0x16, 0x60, 0x11, 0x8d, 0x7a, 0x01, 0x56, 0x71, 0xfa, 0x45, 0x2f, 0xc4,
		0x22, 0x5a, 0x45, 0x58, 0x45, 0xa5, 0x08, 0x8b, 0xa8, 0x16, 0x61, 0x11, 0x27, 0x97, 0x45, 0x58,
		0x45, 0x60, 0xf4, 0xba, 0x27, 0x1f, 0x6f, 0x0a, 0xb3, 0x96, 0xcf, 0x9f, 0xae, 0x0b, 0xd0, 0xf7,
		0xfc, 0xf6, 0xec, 0x73, 0x01, 0x56, 0xf1, 0xa5, 0xdc, 0x2a, 0xc2, 0x2a, 0xf4, 0x42, 0x2c, 0xa2,
		0x10, 0x47, 0x51, 0x29, 0xc2, 0x22, 0xaa, 0x45, 0x58, 0x44, 0x01, 0xcc, 0xdf, 0x6d, 0xfb, 0xa2,
		0x5c, 0x2f, 0xc2, 0x2a, 0xf4, 0x5a, 0x21, 0x96, 0x51, 0xaf, 0xee, 0xf0, 0x65, 0xfd, 0x3b, 0xc2,
		0xb3, 0x52, 0x9b, 0xb6, 0xed, 0xf8, 0x46, 0xe2, 0xd1, 0xea, 0xaa, 0xd7, 0xfb, 0xc6, 0x06, 0xc6,
		0xd0, 0xf0, 0xbf, 0x05, 0xe7, 0x72, 0xe0, 0x0c, 0x99, 0xdd, 0x0b, 0x6f, 0xda, 0xc2, 0xfb, 0x1c,
		0xd3, 0x36, 0x2c, 0xad, 0xcf, 0x9e, 0xcc, 0x1e, 0x3b, 0x58, 0xfe, 0xfb, 0xd2, 0x48, 0x2c, 0xef,
		0x60, 0xf2, 0xc3, 0x41, 0xd2, 0xd1, 0x90, 0xaa, 0xe7, 0xbb, 0xa3, 0x9e, 0x6f, 0x4f, 0x78, 0xe3,
		0x2a, 0x7a, 0x85, 0xf6, 0xe4, 0x1b, 0x4f, 0xc3, 0x2f, 0xec, 0x2e, 0xfd, 0xf5, 0x7c, 0xfc, 0xfd,
		0x27, 0x93, 0xaf, 0xef, 0x4e, 0x7e, 0xe8, 0xde, 0x86, 0x5f, 0xff, 0x8e, 0xe6, 0x08, 0x5e, 0xff,
		0xc4, 0x1b, 0x87, 0xa3, 0xfe, 0x8d, 0x3d, 0xc7, 0x1d, 0x62, 0xad, 0x9e, 0x9b, 0x9e, 0xdf, 0xf4,
		0x7d, 0x37, 0xd6, 0xf1, 0xa9, 0x17, 0xa6, 0xdd, 0xb2, 0xd8, 0x80, 0xd9, 0x71, 0x47, 0xa9, 0xaa,
		0x17, 0xc6, 0x8f, 0xb9, 0x27, 0xca, 0x87, 0xd5, 0x6a, 0xbd, 0x51, 0xad, 0x96, 0x1a, 0x95, 0x46,
		0xe9, 0xa8, 0x56, 0x2b, 0xd7, 0xe3, 0x5c, 0x51, 0xa9, 0x57, 0x6e, 0x9f, 0xb9, 0xac, 0xff, 0x31,
		0x58, 0x96, 0x3d, 0xb2, 0xac, 0x24, 0x8f, 0x7c, 0xf1, 0x98, 0x1b, 0x6b, 0x56, 0xeb, 0x5b, 0xbb,
		0x9a, 0x90, 0xd5, 0x25, 0xb0, 0x78, 0x0c, 0xe6, 0xa6, 0x65, 0xea, 0xd7, 0xd9, 0x79, 0x33, 0x93,
		0xae, 0xff, 0x97, 0x0d, 0x1b, 0x1c, 0x77, 0x63, 0x09, 0x37, 0xf4, 0x95, 0x8d, 0xa4, 0xd9, 0xc0,
		0xf5, 0x1b, 0xb7, 0xba, 0x2d, 0x6b, 0xb6, 0x44, 0x75, 0x86, 0x93, 0xe9, 0x9f, 0x86, 0x15, 0xce,
		0x8c, 0xd9, 0xdc, 0x69, 0x7f, 0x96, 0x27, 0xb0, 0xf2, 0xc8, 0x86, 0xad, 0x9e, 0xde, 0x0b, 0x6f,
		0xf8, 0xe7, 0xb7, 0x92, 0x1d, 0xe2, 0x24, 0x35, 0x24, 0x4c, 0x5e, 0x88, 0x9b, 0xa4, 0x90, 0x38,
		0x19, 0x21, 0x71, 0xd2, 0x41, 0xf2, 0xe4, 0x82, 0x64, 0x6c, 0x7e, 0x6a, 0xbe, 0xae, 0x64, 0xd5,
		0x58, 0x23, 0xb5, 0xa2, 0xed, 0x8d, 0x31, 0x39, 0xeb, 0x8d, 0xe3, 0x5e, 0x3d, 0xf6, 0x37, 0x26,
		0x7d, 0x26, 0xc9, 0x69, 0xe1, 0xcc, 0x61, 0x49, 0x9a, 0xb3, 0xc2, 0x9d, 0xa3, 0xc2, 0x9d, 0x93,
		0xc2, 0x9f, 0x83, 0x22, 0x66, 0xd4, 0xdf, 0x62, 0x9f, 0xe8, 0x83, 0xbd, 0xe9, 0x69, 0xc6, 0xdc,
		0xc1, 0xe9, 0x41, 0x4d, 0x9e, 0x8b, 0xb9, 0x0b, 0xf1, 0x58, 0x2b, 0xb6, 0x66, 0x11, 0x61, 0x35,
		0x41, 0x96, 0xe3, 0x65, 0x3d, 0x61, 0x16, 0x14, 0x66, 0x45, 0x71, 0x96, 0x2c, 0x8a, 0x53, 0xb0,
		0x62, 0x00, 0x0f, 0x82, 0xff, 0x1f, 0x24, 0x62, 0x69, 0x01, 0xeb, 0x7f, 0x35, 0xfb, 0xfa, 0x8b,
		0xe0, 0xdb, 0xbb, 0xc1, 0xff, 0xbb, 0x13, 0x9e, 0xa7, 0x72, 0x09, 0x62, 0x28, 0xcf, 0x70, 0xc4,
		0x9c, 0xd9, 0x4f, 0x2e, 0xfb, 0xd3, 0x07, 0x93, 0x09, 0x7f, 0x09, 0xc2, 0x0f, 0xe1, 0x5f, 0x7e,
		0x9d, 0xc4, 0xb9, 0x8f, 0xb3, 0x49, 0x89, 0xcc, 0x78, 0x48, 0x96, 0xef, 0x18, 0x59, 0xa1, 0x46,
		0x82, 0x67, 0xae, 0x27, 0xfa, 0x65, 0x7f, 0x7f, 0x1c, 0x32, 0x38, 0x98, 0x32, 0x7f, 0x8a, 0x82,
		0x3a, 0x8e, 0x55, 0x24, 0x16, 0xd3, 0x24, 0x21, 0x0e, 0x6e, 0x0b, 0xad, 0x43, 0x48, 0x0b, 0x2f,
		0xa4, 0x71, 0xc1, 0x64, 0xf4, 0x40, 0x9f, 0x79, 0x3d, 0xd7, 0x1c, 0x26, 0xb6, 0xe9, 0x0b, 0xa7,
		0x3e, 0x4f, 0x04, 0xd9, 0xfb, 0x92, 0x98, 0x9d, 0x8c, 0xe9, 0xc9, 0x98, 0x9f, 0x4e, 0x08, 0x38,
		0x63, 0xe3, 0xa9, 0x67, 0xef, 0x7b, 0xe3, 0x89, 0xb9, 0x02, 0x89, 0xfb, 0x87, 0x19, 0xa8, 0xda,
		0x49, 0x8a, 0x26, 0x05, 0x51, 0x25, 0x64, 0x1d, 0xb2, 0x9e, 0x43, 0x59, 0x1f, 0x99, 0xb6, 0x5f,
		0xae, 0x0b, 0xc8, 0x3a, 0xc7, 0xc4, 0x60, 0xf5, 0xc6, 0xb0, 0x1f, 0x19, 0x77, 0x15, 0x8c, 0xc0,
		0xf4, 0xe4, 0x0b, 0xd3, 0x16, 0x1a, 0xbf, 0xac, 0x44, 0x45, 0x3c, 0x62, 0x63, 0x80, 0x43, 0x3a,
		0x9f, 0x5c, 0xa3, 0x17, 0x80, 0x89, 0x53, 0xf3, 0xd1, 0x8c, 0x7b, 0x21, 0xf5, 0xfa, 0x99, 0xb2,
		0x47, 0xc3, 0x37, 0x9f, 0x58, 0xac, 0xfb, 0x22, 0x42, 0x36, 0x5c, 0xdc, 0x62, 0xe3, 0x07, 0xdd,
		0x16, 0xd7, 0x6b, 0xb5, 0x4a, 0xad, 0xb8, 0xdb, 0x9c, 0xd2, 0x00, 0xe8, 0x4e, 0x06, 0xac, 0xf1,
		0x13, 0xb3, 0xfb, 0x8e, 0x2b, 0x64, 0x8f, 0x67, 0x24, 0x60, 0x91, 0x61, 0x91, 0x81, 0xbe, 0xd3,
		0x47, 0xdf, 0xc5, 0x0c, 0xb3, 0xa7, 0x94, 0x79, 0xb3, 0x3e, 0xca, 0x9e, 0xbd, 0xbc, 0x9b, 0x78,
		0x6e, 0x0f, 0x32, 0x6f, 0x62, 0xef, 0x6b, 0x7a, 0x99, 0x37, 0xeb, 0x19, 0x5c, 0x5e, 0xde, 0xcd,
		0x5a, 0x96, 0x2e, 0x4a, 0xd6, 0x4d, 0xdc, 0xac, 0x14, 0xc2, 0xfd, 0x13, 0xc9, 0xbb, 0x79, 0x3d,
		0x26, 0x1f, 0x2b, 0x06, 0x1f, 0x3b, 0xbf, 0x46, 0x47, 0x7e, 0x0d, 0x79, 0x7e, 0x8d, 0x7c, 0x86,
		0x7e, 0xcb, 0xce, 0x71, 0x32, 0xf1, 0x2b, 0x16, 0x6c, 0x0d, 0xe7, 0xbe, 0x7b, 0x65, 0x2f, 0xde,
		0xda, 0x03, 0xfe, 0xb5, 0xab, 0x6b, 0x05, 0x86, 0x63, 0xb5, 0x8b, 0xeb, 0x9c, 0xad, 0x66, 0xfc,
		0xd3, 0x64, 0x3d, 0x9b, 0xd6, 0xa1, 0x9a, 0xde, 0x27, 0xe3, 0x3b, 0xbb, 0x71, 0x9c, 0x55, 0x96,
		0x5b, 0x5e, 0x9b, 0x3a, 0xff, 0x4f, 0x0b, 0x6f, 0x3a, 0xff, 0x22, 0x2f, 0xef, 0x5e, 0xfe, 0x3f,
		0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x98, 0x16, 0x6c, 0x11, 0x71, 0x8f,
		0x9c, 0x01,
	}
)

// ΛEnumTypes is a map, keyed by a YANG schema path, of the enumerated types that
// correspond with the leaf. The type is represented as a reflect.Type. The naming
// of the map ensures that there are no clashes with valid YANG identifiers.
func initΛEnumTypes() {
	ΛEnumTypes = map[string][]reflect.Type{
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/actions/config/forwarding-action": {
			reflect.TypeOf((E_OpenconfigAcl_FORWARDING_ACTION)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/actions/config/log-action": {
			reflect.TypeOf((E_OpenconfigAcl_LOG_ACTION)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/actions/state/forwarding-action": {
			reflect.TypeOf((E_OpenconfigAcl_FORWARDING_ACTION)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/actions/state/log-action": {
			reflect.TypeOf((E_OpenconfigAcl_LOG_ACTION)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/config/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/icmpv4/config/code": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_CODE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/icmpv4/config/type": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_TYPE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/icmpv4/state/code": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_CODE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/icmpv4/state/type": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_TYPE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/state/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/config/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/icmpv6/config/code": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_CODE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/icmpv6/config/type": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_TYPE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/icmpv6/state/code": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_CODE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/icmpv6/state/type": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_TYPE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/state/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/l2/config/ethertype": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_ETHERTYPE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/l2/state/ethertype": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_ETHERTYPE)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/config/end-label-value": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/config/start-label-value": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/state/end-label-value": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/mpls/state/start-label-value": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/builtin-detail": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/destination-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/detail-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/explicit-detail-match-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/explicit-tcp-flags": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_TCP_FLAGS)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/source-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/builtin-detail": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/destination-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/detail-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/explicit-detail-match-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/explicit-tcp-flags": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_TCP_FLAGS)(0)),
		},
		"/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/state/source-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/acl/acl-sets/acl-set/config/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/acl-sets/acl-set/state/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/acl-sets/acl-set/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/interfaces/interface/egress-acl-sets/egress-acl-set/config/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/interfaces/interface/egress-acl-sets/egress-acl-set/state/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/interfaces/interface/egress-acl-sets/egress-acl-set/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/config/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/state/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/interfaces/interface/ingress-acl-sets/ingress-acl-set/type": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_TYPE)(0)),
		},
		"/acl/state/counter-capability": {
			reflect.TypeOf((E_OpenconfigAcl_ACL_COUNTER_CAPABILITY)(0)),
		},
		"/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session/state/local-diagnostic-code": {
			reflect.TypeOf((E_OpenconfigBfd_BfdDiagnosticCode)(0)),
		},
		"/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session/state/remote-diagnostic-code": {
			reflect.TypeOf((E_OpenconfigBfd_BfdDiagnosticCode)(0)),
		},
		"/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session/state/remote-session-state": {
			reflect.TypeOf((E_OpenconfigBfd_BfdSessionState)(0)),
		},
		"/bfd/interfaces/interface/micro-bfd-sessions/micro-bfd-session/state/session-state": {
			reflect.TypeOf((E_OpenconfigBfd_BfdSessionState)(0)),
		},
		"/bfd/interfaces/interface/peers/peer/state/local-diagnostic-code": {
			reflect.TypeOf((E_OpenconfigBfd_BfdDiagnosticCode)(0)),
		},
		"/bfd/interfaces/interface/peers/peer/state/remote-diagnostic-code": {
			reflect.TypeOf((E_OpenconfigBfd_BfdDiagnosticCode)(0)),
		},
		"/bfd/interfaces/interface/peers/peer/state/remote-session-state": {
			reflect.TypeOf((E_OpenconfigBfd_BfdSessionState)(0)),
		},
		"/bfd/interfaces/interface/peers/peer/state/session-state": {
			reflect.TypeOf((E_OpenconfigBfd_BfdSessionState)(0)),
		},
		"/bfd/interfaces/interface/peers/peer/state/subscribed-protocols": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/components/component/port/breakout-mode/groups/group/config/breakout-speed": {
			reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)),
		},
		"/components/component/port/breakout-mode/groups/group/state/breakout-speed": {
			reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)),
		},
		"/components/component/state/last-reboot-reason": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_COMPONENT_REBOOT_REASON)(0)),
		},
		"/components/component/state/last-switchover-reason/trigger": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_ComponentRedundantRoleSwitchoverReasonTrigger)(0)),
		},
		"/components/component/state/oper-status": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS)(0)),
		},
		"/components/component/state/redundant-role": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_ComponentRedundantRole)(0)),
		},
		"/components/component/state/temperature/alarm-severity": {
			reflect.TypeOf((E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY)(0)),
		},
		"/components/component/state/type": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT)(0)),
			reflect.TypeOf((E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT)(0)),
		},
		"/components/component/transceiver/config/ethernet-pmd-preconf": {
			reflect.TypeOf((E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE)(0)),
		},
		"/components/component/transceiver/config/fec-mode": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_FEC_MODE_TYPE)(0)),
		},
		"/components/component/transceiver/config/form-factor-preconf": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE)(0)),
		},
		"/components/component/transceiver/config/module-functional-type": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE)(0)),
		},
		"/components/component/transceiver/state/connector-type": {
			reflect.TypeOf((E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE)(0)),
		},
		"/components/component/transceiver/state/ethernet-pmd": {
			reflect.TypeOf((E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE)(0)),
		},
		"/components/component/transceiver/state/ethernet-pmd-preconf": {
			reflect.TypeOf((E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE)(0)),
		},
		"/components/component/transceiver/state/fec-mode": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_FEC_MODE_TYPE)(0)),
		},
		"/components/component/transceiver/state/fec-status": {
			reflect.TypeOf((E_OpenconfigPlatformTypes_FEC_STATUS_TYPE)(0)),
		},
		"/components/component/transceiver/state/form-factor": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE)(0)),
		},
		"/components/component/transceiver/state/form-factor-preconf": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE)(0)),
		},
		"/components/component/transceiver/state/module-functional-type": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_MODULE_FUNCTIONAL_TYPE)(0)),
		},
		"/components/component/transceiver/state/otn-compliance-code": {
			reflect.TypeOf((E_OpenconfigTransportTypes_OTN_APPLICATION_CODE)(0)),
		},
		"/components/component/transceiver/state/present": {
			reflect.TypeOf((E_OpenconfigPlatform_Components_Component_Transceiver_State_Present)(0)),
		},
		"/components/component/transceiver/state/sonet-sdh-compliance-code": {
			reflect.TypeOf((E_OpenconfigTransportTypes_SONET_APPLICATION_CODE)(0)),
		},
		"/components/component/transceiver/thresholds/threshold/severity": {
			reflect.TypeOf((E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY)(0)),
		},
		"/components/component/transceiver/thresholds/threshold/state/severity": {
			reflect.TypeOf((E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY)(0)),
		},
		"/defined-sets/port-sets/port-set/config/port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/defined-sets/port-sets/port-set/state/port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/interfaces/interface/aggregation/config/lag-type": {
			reflect.TypeOf((E_OpenconfigIfAggregate_AggregationType)(0)),
		},
		"/interfaces/interface/aggregation/state/lag-type": {
			reflect.TypeOf((E_OpenconfigIfAggregate_AggregationType)(0)),
		},
		"/interfaces/interface/aggregation/switched-vlan/config/interface-mode": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanModeType)(0)),
		},
		"/interfaces/interface/aggregation/switched-vlan/state/interface-mode": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanModeType)(0)),
		},
		"/interfaces/interface/config/loopback-mode": {
			reflect.TypeOf((E_OpenconfigTransportTypes_LoopbackModeType)(0)),
		},
		"/interfaces/interface/config/tpid": {
			reflect.TypeOf((E_OpenconfigVlanTypes_TPID_TYPES)(0)),
		},
		"/interfaces/interface/config/type": {
			reflect.TypeOf((E_IETFInterfaces_InterfaceType)(0)),
		},
		"/interfaces/interface/ethernet/config/duplex-mode": {
			reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode)(0)),
		},
		"/interfaces/interface/ethernet/config/fec-mode": {
			reflect.TypeOf((E_OpenconfigIfEthernet_INTERFACE_FEC)(0)),
		},
		"/interfaces/interface/ethernet/config/port-speed": {
			reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)),
		},
		"/interfaces/interface/ethernet/state/duplex-mode": {
			reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode)(0)),
		},
		"/interfaces/interface/ethernet/state/fec-mode": {
			reflect.TypeOf((E_OpenconfigIfEthernet_INTERFACE_FEC)(0)),
		},
		"/interfaces/interface/ethernet/state/negotiated-duplex-mode": {
			reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode)(0)),
		},
		"/interfaces/interface/ethernet/state/negotiated-port-speed": {
			reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)),
		},
		"/interfaces/interface/ethernet/state/port-speed": {
			reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)),
		},
		"/interfaces/interface/ethernet/switched-vlan/config/interface-mode": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanModeType)(0)),
		},
		"/interfaces/interface/ethernet/switched-vlan/state/interface-mode": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanModeType)(0)),
		},
		"/interfaces/interface/state/admin-status": {
			reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus)(0)),
		},
		"/interfaces/interface/state/loopback-mode": {
			reflect.TypeOf((E_OpenconfigTransportTypes_LoopbackModeType)(0)),
		},
		"/interfaces/interface/state/oper-status": {
			reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus)(0)),
		},
		"/interfaces/interface/state/tpid": {
			reflect.TypeOf((E_OpenconfigVlanTypes_TPID_TYPES)(0)),
		},
		"/interfaces/interface/state/type": {
			reflect.TypeOf((E_IETFInterfaces_InterfaceType)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/state/admin-status": {
			reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/state/oper-status": {
			reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/egress-mapping/config/tpid": {
			reflect.TypeOf((E_OpenconfigVlanTypes_TPID_TYPES)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/egress-mapping/config/vlan-stack-action": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanStackAction)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/egress-mapping/state/tpid": {
			reflect.TypeOf((E_OpenconfigVlanTypes_TPID_TYPES)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/egress-mapping/state/vlan-stack-action": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanStackAction)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/ingress-mapping/config/tpid": {
			reflect.TypeOf((E_OpenconfigVlanTypes_TPID_TYPES)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/ingress-mapping/config/vlan-stack-action": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanStackAction)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/ingress-mapping/state/tpid": {
			reflect.TypeOf((E_OpenconfigVlanTypes_TPID_TYPES)(0)),
		},
		"/interfaces/interface/subinterfaces/subinterface/vlan/ingress-mapping/state/vlan-stack-action": {
			reflect.TypeOf((E_OpenconfigVlanTypes_VlanStackAction)(0)),
		},
		"/keychains/keychain/config/tolerance": {
			reflect.TypeOf((E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum)(0)),
		},
		"/keychains/keychain/keys/key/config/crypto-algorithm": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_CRYPTO_TYPE)(0)),
		},
		"/keychains/keychain/keys/key/state/crypto-algorithm": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_CRYPTO_TYPE)(0)),
		},
		"/keychains/keychain/state/tolerance": {
			reflect.TypeOf((E_OpenconfigKeychain_Keychains_Keychain_Config_Tolerance_Enum)(0)),
		},
		"/lldp/config/chassis-id-type": {
			reflect.TypeOf((E_OpenconfigLldpTypes_ChassisIdType)(0)),
		},
		"/lldp/config/suppress-tlv-advertisement": {
			reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_TLV)(0)),
		},
		"/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/name": {
			reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY)(0)),
		},
		"/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/state/name": {
			reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY)(0)),
		},
		"/lldp/interfaces/interface/neighbors/neighbor/state/chassis-id-type": {
			reflect.TypeOf((E_OpenconfigLldpTypes_ChassisIdType)(0)),
		},
		"/lldp/interfaces/interface/neighbors/neighbor/state/port-id-type": {
			reflect.TypeOf((E_OpenconfigLldpTypes_PortIdType)(0)),
		},
		"/lldp/state/chassis-id-type": {
			reflect.TypeOf((E_OpenconfigLldpTypes_ChassisIdType)(0)),
		},
		"/lldp/state/suppress-tlv-advertisement": {
			reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_TLV)(0)),
		},
		"/messages/config/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/messages/debug-entries/debug-service/config/service": {
			reflect.TypeOf((E_OpenconfigMessages_DEBUG_SERVICE)(0)),
		},
		"/messages/debug-entries/debug-service/service": {
			reflect.TypeOf((E_OpenconfigMessages_DEBUG_SERVICE)(0)),
		},
		"/messages/debug-entries/debug-service/state/service": {
			reflect.TypeOf((E_OpenconfigMessages_DEBUG_SERVICE)(0)),
		},
		"/messages/state/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/decapsulate-header": {
			reflect.TypeOf((E_OpenconfigAftTypes_EncapsulationHeaderType)(0)),
		},
		"/network-instances/network-instance/afts/ipv4-unicast/ipv4-entry/state/origin-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/decapsulate-header": {
			reflect.TypeOf((E_OpenconfigAftTypes_EncapsulationHeaderType)(0)),
		},
		"/network-instances/network-instance/afts/ipv6-unicast/ipv6-entry/state/origin-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/afts/mpls/label-entry/label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/afts/mpls/label-entry/state/label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/afts/mpls/label-entry/state/popped-mpls-label-stack": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/afts/next-hops/next-hop/state/decapsulate-header": {
			reflect.TypeOf((E_OpenconfigAftTypes_EncapsulationHeaderType)(0)),
		},
		"/network-instances/network-instance/afts/next-hops/next-hop/state/encapsulate-header": {
			reflect.TypeOf((E_OpenconfigAftTypes_EncapsulationHeaderType)(0)),
		},
		"/network-instances/network-instance/afts/next-hops/next-hop/state/origin-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/afts/next-hops/next-hop/state/pushed-mpls-label-stack": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/afts/policy-forwarding/policy-forwarding-entry/state/ip-protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/afts/policy-forwarding/policy-forwarding-entry/state/mpls-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/config/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/config/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_ENDPOINT_TYPE)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/endpoint-peer/state/peer-state": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointPeers_EndpointPeer_State_PeerState)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/state/learning-mode": {
			reflect.TypeOf((E_OpenconfigEvpnTypes_LearningMode)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/state/multidestination-traffic": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_MultidestinationTraffic_Enum)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/state/svi-state": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_SviState)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/state/vni-state": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniState)(0)),
		},
		"/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis/endpoint-vni/state/vni-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_ConnectionPoints_ConnectionPoint_Endpoints_Endpoint_Vxlan_EndpointVnis_EndpointVni_State_VniType)(0)),
		},
		"/network-instances/network-instance/encapsulation/config/encapsulation-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_ENCAPSULATION)(0)),
		},
		"/network-instances/network-instance/encapsulation/config/label-allocation-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE)(0)),
		},
		"/network-instances/network-instance/encapsulation/state/encapsulation-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_ENCAPSULATION)(0)),
		},
		"/network-instances/network-instance/encapsulation/state/label-allocation-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_LABEL_ALLOCATION_MODE)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/config/encapsulation-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_ENCAPSULATION)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/config/replication-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/config/route-distinguisher": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/config/service-type": {
			reflect.TypeOf((E_OpenconfigEvpnTypes_EVPN_TYPE)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/config/export-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/config/import-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/state/export-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/import-export-policy/state/import-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/state/encapsulation-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_ENCAPSULATION)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/state/replication-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_ReplicationMode)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/state/route-distinguisher": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_Config_RouteDistinguisher_Enum)(0)),
		},
		"/network-instances/network-instance/evpn/evpn-instances/evpn-instance/state/service-type": {
			reflect.TypeOf((E_OpenconfigEvpnTypes_EVPN_TYPE)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry/producers/producer/producer": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry/producers/producer/state/mobility-state": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-ip-table/entries/entry/producers/producer/state/producer": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-ip-table/next-hop-groups/next-hop-group/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry/producers/producer/producer": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry/producers/producer/state/mobility-state": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_MobilityState)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-table/entries/entry/producers/producer/state/producer": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_Entries_Entry_Producers_Producer_State_Producer)(0)),
		},
		"/network-instances/network-instance/fdb/l2rib/mac-table/next-hop-groups/next-hop-group/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_L2Rib_MacIpTable_NextHopGroups_NextHopGroup_State_Type)(0)),
		},
		"/network-instances/network-instance/fdb/mac-table/entries/entry/state/entry-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Fdb_MacTable_Entries_Entry_State_EntryType)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/apply-policy/config/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/apply-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/apply-policy/state/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/apply-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/import-export-policy/config/export-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/import-export-policy/config/import-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/import-export-policy/state/export-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ExportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/inter-instance-policies/import-export-policy/state/import-route-target": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Evpn_EvpnInstances_EvpnInstance_ImportExportPolicy_Config_ImportRouteTarget_Enum)(0)),
		},
		"/network-instances/network-instance/interfaces/interface/config/associated-address-families": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/interfaces/interface/config/irb-anycast-gateway": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway)(0)),
		},
		"/network-instances/network-instance/interfaces/interface/state/associated-address-families": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/interfaces/interface/state/irb-anycast-gateway": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Interfaces_Interface_Config_IrbAnycastGateway)(0)),
		},
		"/network-instances/network-instance/mpls/global/config/null-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_NULL_LABEL_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/global/config/pw-encapsulation": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION)(0)),
		},
		"/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/config/lower-bound": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/config/upper-bound": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/state/lower-bound": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/global/reserved-label-blocks/reserved-label-block/state/upper-bound": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/global/state/null-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_NULL_LABEL_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/global/state/pw-encapsulation": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PSEUDOWIRE_ENCAPSULATION)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/config/sid-selection-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/explicit-route-objects/explicit-route-object/config/hop-type": {
			reflect.TypeOf((E_OpenconfigMpls_MplsHopType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/explicit-route-objects/explicit-route-object/state/hop-type": {
			reflect.TypeOf((E_OpenconfigMpls_MplsHopType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/named-explicit-paths/named-explicit-path/state/sid-selection-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_Lsps_ConstrainedPath_NamedExplicitPaths_NamedExplicitPath_Config_SidSelectionMode)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/config/specification-type": {
			reflect.TypeOf((E_OpenconfigMpls_TeBandwidthType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/bandwidth/state/specification-type": {
			reflect.TypeOf((E_OpenconfigMpls_TeBandwidthType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/config/admin-status": {
			reflect.TypeOf((E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/config/metric-type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_LSP_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/config/protection-style-requested": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PROTECTION_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/config/signaling-protocol": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/config/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_TUNNEL_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/config/cspf-tiebreaker": {
			reflect.TypeOf((E_OpenconfigMpls_CspfTieBreaking)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/config/path-computation-method": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/config/path-control": {
			reflect.TypeOf((E_OpenconfigPcep_LspControlType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/path-metric-bound-constraints/path-metric-bound-constraint/config/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/path-metric-bound-constraints/path-metric-bound-constraint/state/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/path-metric-bound-constraints/path-metric-bound-constraint/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/state/cspf-tiebreaker": {
			reflect.TypeOf((E_OpenconfigMpls_CspfTieBreaking)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/state/path-computation-method": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-primary-path/p2p-primary-path/state/path-control": {
			reflect.TypeOf((E_OpenconfigPcep_LspControlType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/config/cspf-tiebreaker": {
			reflect.TypeOf((E_OpenconfigMpls_CspfTieBreaking)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/config/path-computation-method": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/config/path-control": {
			reflect.TypeOf((E_OpenconfigPcep_LspControlType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/path-metric-bound-constraints/path-metric-bound-constraint/config/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/path-metric-bound-constraints/path-metric-bound-constraint/state/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/path-metric-bound-constraints/path-metric-bound-constraint/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/state/cspf-tiebreaker": {
			reflect.TypeOf((E_OpenconfigMpls_CspfTieBreaking)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/state/path-computation-method": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_COMPUTATION_METHOD)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/p2p-tunnel-attributes/p2p-secondary-paths/p2p-secondary-path/state/path-control": {
			reflect.TypeOf((E_OpenconfigPcep_LspControlType)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/admin-status": {
			reflect.TypeOf((E_OpenconfigMplsTypes_TUNNEL_ADMIN_STATUS)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/metric-type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_LSP_METRIC_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/oper-status": {
			reflect.TypeOf((E_OpenconfigMplsTypes_LSP_OPER_STATUS)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/protection-style-requested": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PROTECTION_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/role": {
			reflect.TypeOf((E_OpenconfigMplsTypes_LSP_ROLE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/signaling-protocol": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/constrained-path/tunnels/tunnel/state/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_TUNNEL_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/config/incoming-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/config/push-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/state/incoming-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/egress/state/push-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/config/incoming-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/config/push-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/state/incoming-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/ingress/state/push-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/config/incoming-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/config/push-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/state/incoming-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/lsps/static-lsps/static-lsp/transit/state/push-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/address-families/address-family/afi-name": {
			reflect.TypeOf((E_OpenconfigMplsLdp_MplsLdpAfi)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/address-families/address-family/config/afi-name": {
			reflect.TypeOf((E_OpenconfigMplsLdp_MplsLdpAfi)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/interface-attributes/interfaces/interface/address-families/address-family/state/afi-name": {
			reflect.TypeOf((E_OpenconfigMplsLdp_MplsLdpAfi)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/hello-adjacencies/hello-adjacency/state/adjacency-type": {
			reflect.TypeOf((E_OpenconfigMplsLdp_MplsLdpAdjacencyType)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/state/negotiated-label-advertisement-mode": {
			reflect.TypeOf((E_OpenconfigMplsLdp_LabelAdvertisementMode)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/state/peer-label-advertisement-mode": {
			reflect.TypeOf((E_OpenconfigMplsLdp_LabelAdvertisementMode)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/neighbors/neighbor/state/session-state": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_Ldp_Neighbors_Neighbor_State_SessionState)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/afi-name": {
			reflect.TypeOf((E_OpenconfigMplsLdp_MplsLdpAfi)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/config/afi-name": {
			reflect.TypeOf((E_OpenconfigMplsLdp_MplsLdpAfi)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/ldp/targeted/address-families/address-family/state/afi-name": {
			reflect.TypeOf((E_OpenconfigMplsLdp_MplsLdpAfi)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/authentication/config/authentication-type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_RSVP_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/authentication/state/authentication-type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_RSVP_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/bandwidth-reservations/bandwidth-reservation/priority": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/bandwidth-reservations/bandwidth-reservation/state/priority": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_InterfaceAttributes_Interface_BandwidthReservations_BandwidthReservation_State_Priority_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/protection/config/link-protection-style-requested": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PROTECTION_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/interface-attributes/interface/protection/state/link-protection-style-requested": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PROTECTION_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/neighbors/neighbor/state/neighbor-status": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Neighbors_Neighbor_State_NeighborStatus)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/explicit-route-objects/explicit-route-object/state/label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/explicit-route-objects/explicit-route-object/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_ExplicitRouteObjects_ExplicitRouteObject_State_Type)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/record-route-objects/record-route-object/state/reported-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/label-in": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/label-out": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/protection-requested": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PROTECTION_TYPE)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/status": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_SignalingProtocols_RsvpTe_Sessions_Session_State_Status)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/rsvp-te/sessions/session/state/type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_LSP_ROLE)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/segment-routing/aggregate-sid-counters/aggregate-sid-counter/mpls-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/segment-routing/aggregate-sid-counters/aggregate-sid-counter/state/mpls-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter/mpls-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/signaling-protocols/segment-routing/interfaces/interface/sid-counters/sid-counter/state/mpls-label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/config/flooding-type": {
			reflect.TypeOf((E_OpenconfigMpls_MplsSrlgFloodingType)(0)),
		},
		"/network-instances/network-instance/mpls/te-global-attributes/srlgs/srlg/state/flooding-type": {
			reflect.TypeOf((E_OpenconfigMpls_MplsSrlgFloodingType)(0)),
		},
		"/network-instances/network-instance/mpls/te-interface-attributes/interface/igp-flooding-bandwidth/config/threshold-specification": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification)(0)),
		},
		"/network-instances/network-instance/mpls/te-interface-attributes/interface/igp-flooding-bandwidth/config/threshold-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType)(0)),
		},
		"/network-instances/network-instance/mpls/te-interface-attributes/interface/igp-flooding-bandwidth/state/threshold-specification": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdSpecification)(0)),
		},
		"/network-instances/network-instance/mpls/te-interface-attributes/interface/igp-flooding-bandwidth/state/threshold-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Mpls_TeInterfaceAttributes_Interface_IgpFloodingBandwidth_Config_ThresholdType)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/config/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/config/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/icmpv4/config/code": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_CODE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/icmpv4/config/type": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_TYPE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/icmpv4/state/code": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_CODE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/icmpv4/state/type": {
			reflect.TypeOf((E_OpenconfigIcmpv4Types_TYPE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv4/state/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/config/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/icmpv6/config/code": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_CODE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/icmpv6/config/type": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_TYPE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/icmpv6/state/code": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_CODE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/icmpv6/state/type": {
			reflect.TypeOf((E_OpenconfigIcmpv6Types_TYPE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/state/protocol": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_IP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/l2/config/ethertype": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_ETHERTYPE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/l2/state/ethertype": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_ETHERTYPE)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/builtin-detail": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/destination-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/detail-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/explicit-detail-match-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/explicit-tcp-flags": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_TCP_FLAGS)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/config/source-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/builtin-detail": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_BuiltinDetail)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/destination-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/detail-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_DetailMode)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/explicit-detail-match-mode": {
			reflect.TypeOf((E_OpenconfigAcl_Acl_AclSets_AclSet_AclEntries_AclEntry_Transport_Config_ExplicitDetailMatchMode)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/explicit-tcp-flags": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_TCP_FLAGS)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/transport/state/source-port": {
			reflect.TypeOf((E_OpenconfigPacketMatchTypes_PortNumRange_Enum)(0)),
		},
		"/network-instances/network-instance/policy-forwarding/policies/policy/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_PolicyForwarding_Policies_Policy_Config_Type)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/apply-policy/config/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/apply-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/apply-policy/state/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/apply-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/config/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/config/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/state/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/afi-safis/afi-safi/state/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/apply-policy/config/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/apply-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/apply-policy/state/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/global/apply-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/config/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/state/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/config/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/config/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/state/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/state/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/apply-policy/config/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/apply-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/apply-policy/state/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/apply-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/peer-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_PeerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/remove-private-as": {
			reflect.TypeOf((E_OpenconfigBgpTypes_RemovePrivateAsOption)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/send-community": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/config/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/graceful-restart/state/mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_GracefulRestart_State_Mode)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/messages/received/last-notification-error-code": {
			reflect.TypeOf((E_OpenconfigBgpTypes_BGP_ERROR_CODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/messages/received/last-notification-error-subcode": {
			reflect.TypeOf((E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/messages/sent/last-notification-error-code": {
			reflect.TypeOf((E_OpenconfigBgpTypes_BGP_ERROR_CODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/messages/sent/last-notification-error-subcode": {
			reflect.TypeOf((E_OpenconfigBgpTypes_BGP_ERROR_SUBCODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/peer-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_PeerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/remove-private-as": {
			reflect.TypeOf((E_OpenconfigBgpTypes_RemovePrivateAsOption)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/send-community": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/session-state": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Neighbors_Neighbor_State_SessionState)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/state/supported-capabilities": {
			reflect.TypeOf((E_OpenconfigBgpTypes_BGP_CAPABILITY)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy/config/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy/state/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/config/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/config/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/state/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/state/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/config/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/state/default-export-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/config/peer-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_PeerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/config/remove-private-as": {
			reflect.TypeOf((E_OpenconfigBgpTypes_RemovePrivateAsOption)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/config/send-community": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/config/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/state/peer-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_PeerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/state/remove-private-as": {
			reflect.TypeOf((E_OpenconfigBgpTypes_RemovePrivateAsOption)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/state/send-community": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/state/send-community-type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_CommunityType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/loc-rib/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/origin": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/loc-rib/routes/route/state/origin": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/loc-rib/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-in-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-srte-policy/neighbors/neighbor/adj-rib-out-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/origin": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/loc-rib/routes/route/state/origin": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-post/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-out-pre/routes/route/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-five-ip-prefix/type-five-route/paths/path/state/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-four-ethernet-segment/type-four-route/paths/path/state/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-one-ethernet-auto-discovery/type-one-route/paths/path/state/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-three-inclusive-multicast-ethernet-tag/type-three-route/paths/path/state/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_INVALID_ROUTE_REASON)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes/route-distinguisher/type-two-mac-ip-advertisement/type-two-route/paths/path/state/source-address-family": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/state/afi-safi-name": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as-path/as-segment/state/type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AsPathSegmentType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/as4-path/as4-segment/state/type": {
			reflect.TypeOf((E_OpenconfigBgpTypes_AsPathSegmentType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/state/origin": {
			reflect.TypeOf((E_OpenconfigBgpTypes_BgpOriginAttrType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/state/type": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list/segments/segment/state/sid": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/segment-lists/segment-list/segments/segment/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Bgp_Rib_AttrSets_AttrSet_TunnelEncapsulation_Tunnels_Tunnel_Subtlvs_Subtlv_SegmentLists_SegmentList_Segments_Segment_State_Type)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/state/binding-sid": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets/attr-set/tunnel-encapsulation/tunnels/tunnel/type": {
			reflect.TypeOf((E_OpenconfigRibBgpTypes_TUNNEL_ENCAPSULATION_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/bgp/rib/communities/community/state/community": {
			reflect.TypeOf((E_OpenconfigBgpTypes_BGP_WELL_KNOWN_STD_COMMUNITY)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/config/identifier": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/identifier": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/config/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/multi-topology/config/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/multi-topology/config/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/multi-topology/state/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/multi-topology/state/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/state/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/afi-safi/af/state/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/config/hello-padding": {
			reflect.TypeOf((E_OpenconfigIsisTypes_HelloPaddingType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/config/level-capability": {
			reflect.TypeOf((E_OpenconfigIsisTypes_LevelType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi/config/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi/config/nh-type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi/state/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/igp-shortcuts/afi/state/nh-type": {
			reflect.TypeOf((E_OpenconfigMplsTypes_PATH_SETUP_PROTOCOL)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level1-to-level2/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level1-to-level2/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level2-to-level1/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/inter-level-propagation-policies/level2-to-level1/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/reset-triggers/reset-trigger/config/reset-trigger": {
			reflect.TypeOf((E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/reset-triggers/reset-trigger/reset-trigger": {
			reflect.TypeOf((E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/lsp-bit/overload-bit/reset-triggers/reset-trigger/state/reset-trigger": {
			reflect.TypeOf((E_OpenconfigIsisTypes_OVERLOAD_RESET_TRIGGER_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/flex-algorithm-bindings/flex-algorithm-binding/config/isis-level": {
			reflect.TypeOf((E_OpenconfigIsisTypes_LevelType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/segment-routing/flex-algorithm-bindings/flex-algorithm-binding/state/isis-level": {
			reflect.TypeOf((E_OpenconfigIsisTypes_LevelType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/state/hello-padding": {
			reflect.TypeOf((E_OpenconfigIsisTypes_HelloPaddingType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/state/level-capability": {
			reflect.TypeOf((E_OpenconfigIsisTypes_LevelType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/timers/lsp-generation/state/adaptive-timer": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AdaptiveTimerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/global/timers/spf/state/adaptive-timer": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AdaptiveTimerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/config/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/config/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/state/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/afi-safi/af/state/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/authentication/config/auth-mode": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AUTH_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/authentication/config/auth-type": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/authentication/state/auth-mode": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AUTH_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/authentication/state/auth-type": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config/circuit-type": {
			reflect.TypeOf((E_OpenconfigIsisTypes_CircuitType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/config/hello-padding": {
			reflect.TypeOf((E_OpenconfigIsisTypes_HelloPaddingType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state/adjacency-state": {
			reflect.TypeOf((E_OpenconfigIsisTypes_IsisInterfaceAdjState)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state/adjacency-type": {
			reflect.TypeOf((E_OpenconfigIsisTypes_LevelType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state/neighbor-circuit-type": {
			reflect.TypeOf((E_OpenconfigIsisTypes_LevelType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state/nlpid": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_Adjacencies_Adjacency_State_Nlpid)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/adjacencies/adjacency/state/topology": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/config/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/config/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/config/sid-id": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/sid-id": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/state/allocated-dynamic-local": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/adjacency-sids/adjacency-sid/state/sid-id": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_AdjacencySids_AdjacencySid_Config_SidId_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids/flex-algo-prefix-sid/config/sid-id": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/flex-algo-prefix-sids/flex-algo-prefix-sid/state/sid-id": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/config/label-options": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/config/sid-id": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/state/label-options": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_Levels_Level_AfiSafi_Af_SegmentRouting_PrefixSids_PrefixSid_Config_LabelOptions)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/segment-routing/prefix-sids/prefix-sid/state/sid-id": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/state/afi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/afi-safi/af/state/safi-name": {
			reflect.TypeOf((E_OpenconfigIsisTypes_SAFI_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/hello-authentication/config/auth-mode": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AUTH_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/hello-authentication/config/auth-type": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/hello-authentication/state/auth-mode": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AUTH_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/levels/level/hello-authentication/state/auth-type": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/state/circuit-type": {
			reflect.TypeOf((E_OpenconfigIsisTypes_CircuitType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/state/hello-padding": {
			reflect.TypeOf((E_OpenconfigIsisTypes_HelloPaddingType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/weighted-ecmp/config/load-balancing-weight": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/interfaces/interface/weighted-ecmp/state/load-balancing-weight": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Interfaces_Interface_WeightedEcmp_Config_LoadBalancingWeight_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/authentication/config/auth-mode": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AUTH_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/authentication/config/auth-type": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/authentication/state/auth-mode": {
			reflect.TypeOf((E_OpenconfigIsisTypes_AUTH_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/authentication/state/auth-type": {
			reflect.TypeOf((E_OpenconfigKeychainTypes_AUTH_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/config/metric-style": {
			reflect.TypeOf((E_OpenconfigIsisTypes_MetricStyle)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/state/pdu-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_State_PduType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/authentication/state/crypto-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Authentication_State_CryptoType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state/local-protection": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-is-reachability/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/default-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/delay-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/error-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-external-reachability/prefixes/prefix/expense-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/default-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/delay-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/error-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-internal-reachability/prefixes/prefix/expense-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv4-srlgs/ipv4-srlg/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4Srlgs_Ipv4Srlg_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-reachability/prefixes/prefix/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/ipv6-srlgs/ipv6-srlg/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv6Srlgs_Ipv6Srlg_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/default-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Ipv4ExternalReachability_Prefixes_Prefix_DefaultMetric_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/delay-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/error-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/is-reachability/neighbors/neighbor/expense-metric/state/flags": {
			reflect.TypeOf((E_OpenconfigIsis_IsisMetricFlags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state/local-protection": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv4-reachability/prefixes/prefix/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_Flags_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/flags/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv4-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/ipv6-source-router-id/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/prefix-sids/prefix-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIpv4Reachability_Prefixes_Prefix_Subtlvs_Subtlv_PrefixSids_PrefixSid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-ipv6-reachability/prefixes/prefix/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state/local-protection": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isis-neighbor-attribute/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/adjacency-sids/adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_AdjacencySids_AdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/available-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/lan-adjacency-sids/lan-adjacency-sid/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LanAdjacencySids_LanAdjacencySid_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-attributes/state/local-protection": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkAttributes_State_LocalProtection)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/link-protection-type/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_ExtendedIsReachability_Neighbors_Neighbor_Instances_Instance_Subtlvs_Subtlv_LinkProtectionType_State_Type)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/unconstrained-lsp/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/instances/instance/subtlvs/subtlv/utilized-bandwidth/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/multi-topology/topologies/topology/state/attributes": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_MultiTopology_Topologies_Topology_State_Attributes)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/nlpid/state/nlpid": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_Nlpid_State_Nlpid)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-algorithms/state/algorithm": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingAlgorithms_State_Algorithm)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability/srgb-descriptors/srgb-descriptor/state/label": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/segment-routing-capability/state/flags": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Isis_Levels_Level_LinkStateDatabase_Lsp_Tlvs_Tlv_RouterCapabilities_Capability_Subtlvs_Subtlv_SegmentRoutingCapability_State_Flags)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/router-capabilities/capability/subtlvs/subtlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/type": {
			reflect.TypeOf((E_OpenconfigIsisLsdbTypes_ISIS_TLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/isis/levels/level/state/metric-style": {
			reflect.TypeOf((E_OpenconfigIsisTypes_MetricStyle)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/config/network-type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/neighbors/neighbor/state/adjacency-state": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/state/network-type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_NETWORK_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/as-external-lsa/state/metric-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/nssa-external-lsa/state/metric-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_AsExternalLsa_State_MetricType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/state/link-type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPFV2_ROUTER_LINK_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv/adjacency-sid/state/sid-type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_SrSidType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-link/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPFV2_EXTENDED_LINK_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/state/address-family": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/state/route-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_RouteType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/extended-prefix-range/state/address-family": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_State_AddressFamily)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/prefix-sid/state/sid-scope": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidScope)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/prefix-sid/state/sid-value-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_ExtendedPrefix_Tlvs_Tlv_PrefixSid_State_SidValueType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/ero-path/segments/segment/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/sid-label-binding/state/sid-type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_SrSidType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/sid-label-binding/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/extended-prefix/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa/tlvs/tlv/state/reason": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_GraceLsa_Tlvs_Tlv_State_Reason)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/grace-lsa/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_GRACE_LSA_TLV_TYPES)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-algorithm/state/supported-algorithms": {
			reflect.TypeOf((E_OpenconfigOspfTypes_SR_ALGORITHM)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/sid-label/state/entry-type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_SrSidType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/segment-routing-sid-label-range/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_RI_SR_SID_LABEL_TLV_TYPES)(0)),
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_SegmentRoutingSidLabelRange_Tlvs_Tlv_State_Type_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/router-information/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_RI_LSA_TLV_TYPES)(0)),
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_RouterInformation_Tlvs_Tlv_State_Type_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/state/scope": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_State_Scope)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_OPAQUE_LSA_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/state/link-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_LinkType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_TE_LINK_TLV_TYPE)(0)),
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_Link_SubTlvs_SubTlv_State_Type_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/node-attribute/sub-tlvs/sub-tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_TE_NODE_ATTRIBUTE_TLV_TYPE)(0)),
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Areas_Area_Lsdb_LsaTypes_LsaType_Lsas_Lsa_OpaqueLsa_TrafficEngineering_Tlvs_Tlv_NodeAttribute_SubTlvs_SubTlv_State_Type_Enum)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/opaque-lsa/traffic-engineering/tlvs/tlv/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_TE_LSA_TLV_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/lsas/lsa/router-lsa/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_ROUTER_LSA_TYPES)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/state/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_LSA_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/lsdb/lsa-types/lsa-type/type": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_LSA_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/virtual-links/virtual-link/state/adjacency-state": {
			reflect.TypeOf((E_OpenconfigOspfTypes_OSPF_NEIGHBOR_STATE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/config/summary-route-cost-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/inter-area-propagation-policies/inter-area-propagation-policy/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/inter-area-propagation-policies/inter-area-propagation-policy/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/state/summary-route-cost-mode": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Config_SummaryRouteCostMode)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/lsa-generation/state/timer-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/max-metric/config/include": {
			reflect.TypeOf((E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/max-metric/config/trigger": {
			reflect.TypeOf((E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/max-metric/state/include": {
			reflect.TypeOf((E_OpenconfigOspfTypes_MAX_METRIC_INCLUDE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/max-metric/state/trigger": {
			reflect.TypeOf((E_OpenconfigOspfTypes_MAX_METRIC_TRIGGER)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/ospfv2/global/timers/spf/state/timer-type": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Protocols_Protocol_Ospfv2_Global_Timers_LsaGeneration_State_TimerType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/config/pce-type": {
			reflect.TypeOf((E_OpenconfigPcep_PceModeType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/pcep/path-computation-servers/path-computation-server/state/pce-type": {
			reflect.TypeOf((E_OpenconfigPcep_PceModeType)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/config/mode": {
			reflect.TypeOf((E_OpenconfigPimTypes_PIM_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/neighbors/neighbor/state/mode": {
			reflect.TypeOf((E_OpenconfigPimTypes_PIM_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/pim/interfaces/interface/state/mode": {
			reflect.TypeOf((E_OpenconfigPimTypes_PIM_MODE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/state/identifier": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/config/next-hop": {
			reflect.TypeOf((E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP)(0)),
		},
		"/network-instances/network-instance/protocols/protocol/static-routes/static/next-hops/next-hop/state/next-hop": {
			reflect.TypeOf((E_OpenconfigLocalRouting_LOCAL_DEFINED_NEXT_HOP)(0)),
		},
		"/network-instances/network-instance/route-limits/route-limit/afi": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/route-limits/route-limit/config/afi": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/route-limits/route-limit/state/afi": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/segment-routing/srgbs/srgb/config/dataplane-type": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_SrDataplaneType)(0)),
		},
		"/network-instances/network-instance/segment-routing/srgbs/srgb/state/dataplane-type": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_SrDataplaneType)(0)),
		},
		"/network-instances/network-instance/segment-routing/srlbs/srlb/config/dataplane-type": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_SrDataplaneType)(0)),
		},
		"/network-instances/network-instance/segment-routing/srlbs/srlb/state/dataplane-type": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_SrDataplaneType)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/protocol-origin": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_SrteProtocolType)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/state/decapsulate-header": {
			reflect.TypeOf((E_OpenconfigAftTypes_EncapsulationHeaderType)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/state/encapsulate-header": {
			reflect.TypeOf((E_OpenconfigAftTypes_EncapsulationHeaderType)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/state/origin-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/next-hops/next-hop/state/pushed-mpls-label-stack": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/sids/sid/state/value": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/segment-lists/segment-list/state/invalid-reason": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_SrteInvalidSlReason)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/state/enlp": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_EnlpType)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/candidate-paths/candidate-path/state/protocol-origin": {
			reflect.TypeOf((E_OpenconfigSegmentRoutingTypes_SrteProtocolType)(0)),
		},
		"/network-instances/network-instance/segment-routing/te-policies/te-policy/state/bsid": {
			reflect.TypeOf((E_OpenconfigMplsTypes_MplsLabel_Enum)(0)),
		},
		"/network-instances/network-instance/state/type": {
			reflect.TypeOf((E_OpenconfigNetworkInstanceTypes_NETWORK_INSTANCE_TYPE)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/address-family": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/config/address-family": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/config/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/config/dst-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/config/src-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/dst-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/src-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/state/address-family": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/state/default-import-policy": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_DefaultPolicyType)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/state/dst-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/table-connections/table-connection/state/src-protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/tables/table/address-family": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/tables/table/config/address-family": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/tables/table/config/protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/tables/table/protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/tables/table/state/address-family": {
			reflect.TypeOf((E_OpenconfigTypes_ADDRESS_FAMILY)(0)),
		},
		"/network-instances/network-instance/tables/table/state/protocol": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/network-instances/network-instance/vlans/vlan/config/status": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status)(0)),
		},
		"/network-instances/network-instance/vlans/vlan/state/status": {
			reflect.TypeOf((E_OpenconfigNetworkInstance_NetworkInstances_NetworkInstance_Vlans_Vlan_Config_Status)(0)),
		},
		"/routing-policy/defined-sets/prefix-sets/prefix-set/config/mode": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode)(0)),
		},
		"/routing-policy/defined-sets/prefix-sets/prefix-set/state/mode": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_RoutingPolicy_DefinedSets_PrefixSets_PrefixSet_Config_Mode)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/actions/config/policy-result": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_PolicyResultType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/config/mode": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/actions/set-tag/state/mode": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_RoutingPolicy_PolicyDefinitions_PolicyDefinition_Statements_Statement_Actions_SetTag_Config_Mode)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/actions/state/policy-result": {
			reflect.TypeOf((E_OpenconfigRoutingPolicy_PolicyResultType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/config/install-protocol-eq": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-neighbor-set/config/match-set-options": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-neighbor-set/state/match-set-options": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/config/match-set-options": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-prefix-set/state/match-set-options": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-tag-set/config/match-set-options": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/match-tag-set/state/match-set-options": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_MatchSetOptionsRestrictedType)(0)),
		},
		"/routing-policy/policy-definitions/policy-definition/statements/statement/conditions/state/install-protocol-eq": {
			reflect.TypeOf((E_OpenconfigPolicyTypes_INSTALL_PROTOCOL_TYPE)(0)),
		},
		"/system/aaa/accounting/config/accounting-method": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_METHOD_TYPE)(0)),
		},
		"/system/aaa/accounting/events/event/config/event-type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE)(0)),
		},
		"/system/aaa/accounting/events/event/config/record": {
			reflect.TypeOf((E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record)(0)),
		},
		"/system/aaa/accounting/events/event/event-type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE)(0)),
		},
		"/system/aaa/accounting/events/event/state/event-type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_ACCOUNTING_EVENT_TYPE)(0)),
		},
		"/system/aaa/accounting/events/event/state/record": {
			reflect.TypeOf((E_OpenconfigSystem_System_Aaa_Accounting_Events_Event_Config_Record)(0)),
		},
		"/system/aaa/accounting/state/accounting-method": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_METHOD_TYPE)(0)),
		},
		"/system/aaa/authentication/config/authentication-method": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_METHOD_TYPE)(0)),
		},
		"/system/aaa/authentication/state/authentication-method": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_METHOD_TYPE)(0)),
		},
		"/system/aaa/authentication/users/user/config/role": {
			reflect.TypeOf((E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES)(0)),
		},
		"/system/aaa/authentication/users/user/state/role": {
			reflect.TypeOf((E_OpenconfigAaaTypes_SYSTEM_DEFINED_ROLES)(0)),
		},
		"/system/aaa/authorization/config/authorization-method": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_METHOD_TYPE)(0)),
		},
		"/system/aaa/authorization/events/event/config/event-type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE)(0)),
		},
		"/system/aaa/authorization/events/event/event-type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE)(0)),
		},
		"/system/aaa/authorization/events/event/state/event-type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_AUTHORIZATION_EVENT_TYPE)(0)),
		},
		"/system/aaa/authorization/state/authorization-method": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_METHOD_TYPE)(0)),
		},
		"/system/aaa/server-groups/server-group/config/type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_SERVER_TYPE)(0)),
		},
		"/system/aaa/server-groups/server-group/state/type": {
			reflect.TypeOf((E_OpenconfigAaaTypes_AAA_SERVER_TYPE)(0)),
		},
		"/system/alarms/alarm/state/severity": {
			reflect.TypeOf((E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY)(0)),
		},
		"/system/alarms/alarm/state/type-id": {
			reflect.TypeOf((E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_TYPE_ID)(0)),
		},
		"/system/cpus/cpu/index": {
			reflect.TypeOf((E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum)(0)),
		},
		"/system/cpus/cpu/state/index": {
			reflect.TypeOf((E_OpenconfigSystem_System_Cpus_Cpu_State_Index_Enum)(0)),
		},
		"/system/logging/console/selectors/selector/config/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/console/selectors/selector/config/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/console/selectors/selector/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/console/selectors/selector/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/console/selectors/selector/state/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/console/selectors/selector/state/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/files/file/selectors/selector/config/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/files/file/selectors/selector/config/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/files/file/selectors/selector/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/files/file/selectors/selector/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/files/file/selectors/selector/state/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/files/file/selectors/selector/state/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/remote-servers/remote-server/selectors/selector/config/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/remote-servers/remote-server/selectors/selector/config/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/remote-servers/remote-server/selectors/selector/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/remote-servers/remote-server/selectors/selector/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/remote-servers/remote-server/selectors/selector/state/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/remote-servers/remote-server/selectors/selector/state/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/vty/selectors/selector/config/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/vty/selectors/selector/config/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/vty/selectors/selector/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/vty/selectors/selector/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/logging/vty/selectors/selector/state/facility": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SYSLOG_FACILITY)(0)),
		},
		"/system/logging/vty/selectors/selector/state/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/messages/config/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/messages/debug-entries/debug-service/config/service": {
			reflect.TypeOf((E_OpenconfigMessages_DEBUG_SERVICE)(0)),
		},
		"/system/messages/debug-entries/debug-service/service": {
			reflect.TypeOf((E_OpenconfigMessages_DEBUG_SERVICE)(0)),
		},
		"/system/messages/debug-entries/debug-service/state/service": {
			reflect.TypeOf((E_OpenconfigMessages_DEBUG_SERVICE)(0)),
		},
		"/system/messages/state/severity": {
			reflect.TypeOf((E_OpenconfigSystemLogging_SyslogSeverity)(0)),
		},
		"/system/ntp/ntp-keys/ntp-key/config/key-type": {
			reflect.TypeOf((E_OpenconfigSystem_NTP_AUTH_TYPE)(0)),
		},
		"/system/ntp/ntp-keys/ntp-key/state/key-type": {
			reflect.TypeOf((E_OpenconfigSystem_NTP_AUTH_TYPE)(0)),
		},
		"/system/ntp/servers/server/config/association-type": {
			reflect.TypeOf((E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType)(0)),
		},
		"/system/ntp/servers/server/state/association-type": {
			reflect.TypeOf((E_OpenconfigSystem_System_Ntp_Servers_Server_Config_AssociationType)(0)),
		},
		"/system/ssh-server/config/protocol-version": {
			reflect.TypeOf((E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion)(0)),
		},
		"/system/ssh-server/state/protocol-version": {
			reflect.TypeOf((E_OpenconfigSystem_System_SshServer_Config_ProtocolVersion)(0)),
		},
		"/terminal-device/logical-channels/channel/config/admin-state": {
			reflect.TypeOf((E_OpenconfigTransportTypes_AdminStateType)(0)),
		},
		"/terminal-device/logical-channels/channel/config/client-mapping-mode": {
			reflect.TypeOf((E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE)(0)),
		},
		"/terminal-device/logical-channels/channel/config/logical-channel-type": {
			reflect.TypeOf((E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE)(0)),
		},
		"/terminal-device/logical-channels/channel/config/loopback-mode": {
			reflect.TypeOf((E_OpenconfigTransportTypes_LoopbackModeType)(0)),
		},
		"/terminal-device/logical-channels/channel/config/rate-class": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE)(0)),
		},
		"/terminal-device/logical-channels/channel/config/trib-protocol": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE)(0)),
		},
		"/terminal-device/logical-channels/channel/ethernet/config/client-als": {
			reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls)(0)),
		},
		"/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/state/chassis-id-type": {
			reflect.TypeOf((E_OpenconfigLldpTypes_ChassisIdType)(0)),
		},
		"/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/state/port-id-type": {
			reflect.TypeOf((E_OpenconfigLldpTypes_PortIdType)(0)),
		},
		"/terminal-device/logical-channels/channel/ethernet/state/client-als": {
			reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls)(0)),
		},
		"/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/config/assignment-type": {
			reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType)(0)),
		},
		"/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/config/mapping": {
			reflect.TypeOf((E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL)(0)),
		},
		"/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/state/assignment-type": {
			reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType)(0)),
		},
		"/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/state/mapping": {
			reflect.TypeOf((E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL)(0)),
		},
		"/terminal-device/logical-channels/channel/otn/config/tributary-slot-granularity": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY)(0)),
		},
		"/terminal-device/logical-channels/channel/otn/state/tributary-slot-granularity": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY)(0)),
		},
		"/terminal-device/logical-channels/channel/state/admin-state": {
			reflect.TypeOf((E_OpenconfigTransportTypes_AdminStateType)(0)),
		},
		"/terminal-device/logical-channels/channel/state/client-mapping-mode": {
			reflect.TypeOf((E_OpenconfigTransportTypes_CLIENT_MAPPING_MODE)(0)),
		},
		"/terminal-device/logical-channels/channel/state/link-state": {
			reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState)(0)),
		},
		"/terminal-device/logical-channels/channel/state/logical-channel-type": {
			reflect.TypeOf((E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE)(0)),
		},
		"/terminal-device/logical-channels/channel/state/loopback-mode": {
			reflect.TypeOf((E_OpenconfigTransportTypes_LoopbackModeType)(0)),
		},
		"/terminal-device/logical-channels/channel/state/rate-class": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE)(0)),
		},
		"/terminal-device/logical-channels/channel/state/trib-protocol": {
			reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE)(0)),
		},
	}
}
